@primereact/headless 11.0.0-rc.2 → 11.0.0-rc.4

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.
@@ -1 +1 @@
1
- import{withHeadless as C}from"@primereact/core/headless";import{useControlledState as S}from"@primereact/hooks/use-controlled-state";var T={defaultValue:void 0,value:void 0,multiple:!1,disabled:!1,tabIndex:0,onValueChange:void 0,openOnFocus:!1};var K=C({name:"useAccordion",defaultProps:T,setup({props:e}){let[i,r]=S({value:e.value,defaultValue:e.defaultValue??null,onChange:e.onValueChange}),o={value:i},l=(d,a)=>{if(a===void 0)return;let n=i,f=m(a);if(e.multiple){let p=Array.isArray(n)?n:[];n=f?p.filter(x=>x!==a):a!=null?[...p,a]:p}else n=f?null:a;r([n,{originalEvent:d,value:n}])},m=d=>{if(d==null)return!1;if(e.multiple){let a=i;return Array.isArray(a)&&a.includes(d)}else return i===d},E={"data-scope":"accordion","data-part":"root",...e.disabled?{"data-disabled":""}:void 0};return{state:o,rootProps:E,updateValue:l,isItemActive:m}}});import{withHeadless as R}from"@primereact/core/headless";import{findSingle as I,focus as D,getAttribute as U}from"@primeuix/utils/dom";var H={value:void 0,disabled:!1,context:void 0};var z=R({name:"useAccordionPanel",defaultProps:H,setup({props:e,id:i}){let r=e.context,o=r?.isItemActive(e.value)??!1,l=e.disabled||r?.props?.disabled,m={open:o,disabled:l},E=t=>{r?.updateValue(t,e.value)},d=t=>{r?.props?.openOnFocus&&r?.updateValue(t,e.value)},a=t=>{switch(t.code){case"ArrowDown":n(t.currentTarget,"next");break;case"ArrowUp":n(t.currentTarget,"previous");break;case"Home":n(t.currentTarget,"first");break;case"End":n(t.currentTarget,"last");break;case"Enter":case"NumpadEnter":case"Space":r?.updateValue(t,e.value);break;case"Tab":return;default:break}t.preventDefault()},n=(t,V)=>{let y=c=>I(c,'[data-scope="accordion"][data-part="trigger"]'),b=(c,u,P=!1)=>{let v=P?c:c[u==="next"?"nextElementSibling":"previousElementSibling"];return v?U(v,"data-disabled")?b(v,u):y(v):null},g=c=>{let u=r?.elementRef?.current;if(!u)return null;let P=c==="first"?u.firstElementChild:u.lastElementChild;return P?b(P,c==="first"?"next":"previous",!0):null},A=t?.closest('[data-scope="accordion"][data-part="panel"]');if(!A)return;let s=null;switch(V){case"next":s=b(A,"next"),s||(s=g("first"));break;case"previous":s=b(A,"previous"),s||(s=g("last"));break;case"first":s=g("first");break;case"last":s=g("last");break}s&&D(s)},f=i?`${i}_content`:void 0,p={id:f,"data-scope":"accordion","data-part":"content",role:"region","aria-hidden":!o,[o?"data-open":"data-closed"]:"","data-disabled":e.disabled||void 0},x={"data-scope":"accordion","data-part":"trigger",type:"button",tabIndex:l?-1:r?.props?.tabIndex,disabled:l||void 0,"aria-expanded":o,"aria-disabled":l||void 0,"aria-controls":f,[o?"data-content-open":"data-content-closed"]:"","data-disabled":l||void 0,onClick:E,onFocus:d,onKeyDown:a},h={"data-scope":"accordion","data-part":"indicator",[o?"data-open":"data-closed"]:""},M={"data-scope":"accordion","data-part":"header",[o?"data-open":"data-closed"]:""},L={"data-scope":"accordion","data-part":"panel",...l?{"data-disabled":""}:void 0,[o?"data-open":"data-closed"]:""};return{state:m,panelProps:L,headerProps:M,triggerProps:x,contentProps:p,indicatorProps:h}}});export{H as defaultPanelProps,T as defaultProps,K as useAccordion,z as useAccordionPanel};
1
+ import{withHeadless as C}from"@primereact/core/headless";import{useControlledState as S}from"@primereact/hooks/use-controlled-state";var T={defaultValue:void 0,value:void 0,multiple:!1,disabled:!1,tabIndex:0,onValueChange:void 0,openOnFocus:!1};var k=C({name:"useAccordion",defaultProps:T,setup({props:e}){let[i,r]=S({value:e.value,defaultValue:e.defaultValue??null,onChange:e.onValueChange}),o={value:i},l=(d,a)=>{if(a===void 0)return;let n=i,f=m(a);if(e.multiple){let p=Array.isArray(n)?n:[];n=f?p.filter(x=>x!==a):a!=null?[...p,a]:p}else n=f?null:a;r([n,{originalEvent:d,value:n}])},m=d=>{if(d==null)return!1;if(e.multiple){let a=i;return Array.isArray(a)&&a.includes(d)}else return i===d},E={"data-scope":"accordion","data-part":"root",...e.disabled?{"data-disabled":""}:void 0};return{state:o,rootProps:E,updateValue:l,isItemActive:m}}});import{withHeadless as R}from"@primereact/core/headless";import{findSingle as I,focus as D}from"@primeuix/utils/dom";var h={value:void 0,disabled:!1,context:void 0};var q=R({name:"useAccordionPanel",defaultProps:h,setup({props:e,id:i}){let r=e.context,o=r?.isItemActive(e.value)??!1,l=e.disabled||r?.props?.disabled,m={open:o,disabled:l},E=t=>{r?.updateValue(t,e.value)},d=t=>{r?.props?.openOnFocus&&r?.updateValue(t,e.value)},a=t=>{switch(t.code){case"ArrowDown":n(t.currentTarget,"next");break;case"ArrowUp":n(t.currentTarget,"previous");break;case"Home":n(t.currentTarget,"first");break;case"End":n(t.currentTarget,"last");break;case"Enter":case"NumpadEnter":case"Space":r?.updateValue(t,e.value);break;case"Tab":return;default:break}t.preventDefault()},n=(t,V)=>{let y=c=>I(c,'[data-scope="accordion"][data-part="trigger"]'),b=(c,u,P=!1)=>{let v=P?c:c[u==="next"?"nextElementSibling":"previousElementSibling"];return v?v.hasAttribute("data-disabled")?b(v,u):y(v):null},g=c=>{let u=r?.elementRef?.current;if(!u)return null;let P=c==="first"?u.firstElementChild:u.lastElementChild;return P?b(P,c==="first"?"next":"previous",!0):null},A=t?.closest('[data-scope="accordion"][data-part="panel"]');if(!A)return;let s=null;switch(V){case"next":s=b(A,"next"),s||(s=g("first"));break;case"previous":s=b(A,"previous"),s||(s=g("last"));break;case"first":s=g("first");break;case"last":s=g("last");break}s&&D(s)},f=i?`${i}_content`:void 0,p={id:f,"data-scope":"accordion","data-part":"content",role:"region","aria-hidden":!o,[o?"data-open":"data-closed"]:"","data-disabled":e.disabled||void 0},x={"data-scope":"accordion","data-part":"trigger",type:"button",tabIndex:l?-1:r?.props?.tabIndex,disabled:l||void 0,"aria-expanded":o,"aria-disabled":l||void 0,"aria-controls":f,[o?"data-content-open":"data-content-closed"]:"","data-disabled":l||void 0,onClick:E,onFocus:d,onKeyDown:a},H={"data-scope":"accordion","data-part":"indicator",[o?"data-open":"data-closed"]:""},M={"data-scope":"accordion","data-part":"header",[o?"data-open":"data-closed"]:""},L={"data-scope":"accordion","data-part":"panel",...l?{"data-disabled":""}:void 0,[o?"data-open":"data-closed"]:""};return{state:m,panelProps:L,headerProps:M,triggerProps:x,contentProps:p,indicatorProps:H}}});export{h as defaultPanelProps,T as defaultProps,k as useAccordion,q as useAccordionPanel};
@@ -1 +1 @@
1
- import{withHeadless as le}from"@primereact/core/headless";import{useListbox as ue}from"@primereact/headless/listbox";import{usePopover as ce}from"@primereact/headless/popover";import{useControlledState as F}from"@primereact/hooks/use-controlled-state";import{useEventListener as k}from"@primereact/hooks/use-event-listener";import{getOuterWidth as re,isNotEmpty as de,focus as pe,toElement as fe}from"@primeuix/utils";import*as i from"react";var S={open:void 0,defaultOpen:void 0,value:void 0,defaultValue:void 0,inputValue:void 0,defaultInputValue:"",options:[],optionKey:void 0,optionLabel:void 0,optionValue:void 0,optionDisabled:void 0,optionGroupLabel:void 0,optionGroupChildren:void 0,disabled:!1,invalid:!1,locale:void 0,metaKeySelection:!1,multiple:!1,autoOptionFocus:!1,selectOnFocus:!1,focusOnHover:!0,closeOnEscape:!1,autoFocus:!1,trapped:!1,minLength:1,delay:0,forceSelection:!1,onOpenChange:void 0,onValueChange:void 0,onInputValueChange:void 0,onComplete:void 0};var ye=le({name:"useAutoComplete",defaultProps:S,setup({props:t,id:r}){let L=i.useRef(null),K=e=>{L.current?.(e)},T=e=>{t.onOpenChange?.({value:!!e.value})},n=ue({value:t.value,defaultValue:t.defaultValue,options:t.options,optionKey:t.optionKey,optionLabel:t.optionLabel,optionValue:t.optionValue,optionDisabled:t.optionDisabled,optionGroupLabel:t.optionGroupLabel,optionGroupChildren:t.optionGroupChildren,disabled:t.disabled,locale:t.locale,autoOptionFocus:t.autoOptionFocus,selectOnFocus:t.selectOnFocus,focusOnHover:t.focusOnHover,multiple:!1,metaKeySelection:t.metaKeySelection,onValueChange:K}),o=ce({open:t.open,defaultOpen:t.defaultOpen??!1,closeOnEscape:t.closeOnEscape,autoFocus:t.autoFocus,trapped:t.trapped,onOpenChange:T}),[O,p]=F({value:t.value,defaultValue:t.defaultValue,onChange:t.onValueChange}),[u,f]=F({value:t.inputValue,defaultValue:t.defaultInputValue??"",onChange:t.onInputValueChange}),[A,w]=i.useState(!1),[D,v]=i.useState(!1),d=i.useRef(null),h=i.useRef(!1),R=i.useRef(!1),H={value:O,inputValue:u,opened:o.state.open,focused:A,focusedOptionIndex:n.state.focusedOptionIndex,searching:D,anchorElement:o.state.anchorElement,positionerElement:o.state.positionerElement,popupElement:o.state.popupElement,arrowElement:o.state.arrowElement,rendered:o.state.rendered},m=(e,a)=>{a!=null&&t.onComplete&&t.onComplete({originalEvent:e,query:a})},g=()=>{o.setOpen(!0)},l=()=>{o.setOpen(!1),v(!1),n.changeFocusedOptionIndex(new Event("blur"),n.findFirstFocusedOptionIndex())},M=e=>{d.current&&clearTimeout(d.current);let a=e.target.value;if(y()){let s=n.findSelectedOptionIndex(),c=s!==-1?n.getOptions()[s]:null,b=c?n.getOptionLabel(c):"";a!==b&&(p([null,{originalEvent:e,value:null,option:null}]),n.updateModel(e,null))}a.length===0?(m(e,""),l()):a.length>=(t.minLength??1)?(v(!0),d.current=setTimeout(()=>{m(e,a),g(),n.changeFocusedOptionIndex(new Event("input"),-1)},t.delay)):l(),f([a,{originalEvent:e,query:a}])},U=e=>{t.disabled||(R.current?R.current=!1:t.autoOptionFocus&&m(e,e.target.value),n.listProps.onFocus?.(),w(!0))},q=e=>{n.listProps.onBlur?.(),w(!1),t.forceSelection&&W(e)},x=e=>{let a=e.value,s=n.getOptions().find(b=>{let ie=n.getOptionValue(b);return n.isEquals(ie,a)}),c=s?n.getOptionLabel(s):"";p([a,{originalEvent:e.originalEvent,value:a,option:s}]),f([c,{originalEvent:e.originalEvent,query:c}]),l(),R.current=!0,E()};L.current=x;let C=e=>{e.preventDefault(),e.stopPropagation(),p([null,{originalEvent:e,value:null,option:null}]),f(["",{originalEvent:e,query:""}]),n.updateModel(e,null),o.state.open&&l(),E()},G=e=>{(e.code==="Enter"||e.code==="Space")&&C(e)},B=e=>{switch(e.code){case"ArrowDown":_(e);break;case"ArrowUp":$(e);break;case"ArrowLeft":case"ArrowRight":n.changeFocusedOptionIndex(e,-1);break;case"Enter":case"NumpadEnter":z(e);break;case"Space":!t.autoOptionFocus&&n.state.focusedOptionIndex!==-1&&n.onOptionSelect(e,n.getOptions()[n.state.focusedOptionIndex]);break;case"Home":case"End":case"PageUp":case"PageDown":o.state.open&&n.listProps.onKeyDown(e);break;case"Escape":o.state.open&&(l(),E(),e.stopPropagation());break;case"Tab":o.state.open&&l();break;default:break}},_=e=>{!o.state.open&&u&&u?.length>=(t.minLength??1)&&(h.current=!0,m(e,u??""),g()),n.listProps.onKeyDown(e),e.preventDefault()},$=e=>{if(!o.state.open&&u&&u?.length>=(t.minLength??1)&&(h.current=!0,m(e,u??""),g()),e.altKey){let a=n.state.focusedOptionIndex;if(a!==-1){let s=n.getOptions()[a];s&&x({originalEvent:e,value:n.getOptionValue(s)})}o.state.open&&l()}else n.listProps.onKeyDown(e);e.preventDefault()},z=e=>{let a=n.state.focusedOptionIndex;if(o.state.open&&a!==-1){let s=n.getOptions()[a];s&&!n.isOptionDisabled(s)&&(n.onOptionSelect(e,s),e.preventDefault())}},N=(e,a)=>n.isValidOption(e)&&n.getOptionLabel(e)?.toLocaleLowerCase(t.locale)===a.toLocaleLowerCase(t.locale),W=e=>{if(t.options&&t.options.length>0){let a=n.getOptions().find(s=>N(s,u||""));if(a!==void 0){let s=n.getOptions().find(b=>n.getOptionValue(b)===a),c=s?n.getOptionLabel(s):"";p([a,{originalEvent:e,value:a,option:s}]),f([c,{originalEvent:e,query:c}])}else f(["",{originalEvent:e,query:""}]),p([null,{originalEvent:e,value:null,option:null}])}},y=()=>de(O),V=()=>{o.state.open?l():g()},E=()=>{let e=fe(o.state.anchorElement);e&&pe(e)},j=()=>{t.disabled||V()},J=()=>{if(!y())return null;let e=n.getOptions().find(a=>{let s=n.getOptionValue(a);return n.isEquals(s,O)});return e?n.getOptionLabel(e):null},[Q]=k({target:()=>document.querySelector(`label[for="${r}"]`),type:"click",listener:()=>{E()}}),[I,P]=k({target:"window",type:"resize",listener:()=>{o.state.open&&l()}});i.useEffect(()=>{Q()},[r]),i.useEffect(()=>{d.current&&(clearTimeout(d.current),d.current=null)},[]),i.useEffect(()=>{v(!1)},[t.options]),i.useEffect(()=>{o.state.open?I():P()},[o.state.open,I,P]),i.useEffect(()=>{o.state.open&&o.state.positionerElement&&(o.state.anchorElement&&(o.state.positionerElement.style.minWidth=re(o.state.anchorElement)+"px"),(h.current||t.autoOptionFocus)&&requestAnimationFrame(()=>{requestAnimationFrame(()=>{let e=n.state.focusedOptionIndex,a=e!==-1?e:n.findFirstFocusedOptionIndex();n.changeFocusedOptionIndex(new Event("focus"),a),h.current=!1})}))},[o.state.open,o.state.positionerElement]);let X={id:r,"data-scope":"autocomplete","data-part":"root",...t.disabled&&{"data-disabled":""},...t.invalid&&{"data-invalid":""}},Y={"data-scope":"autocomplete","data-part":"input",ref:o.setAnchorRef,tabIndex:t.disabled?-1:t.tabIndex,value:u??"",autoComplete:"off",role:"combobox",name:t.name,disabled:t.disabled,"aria-autocomplete":"list","aria-haspopup":"listbox","aria-expanded":!!o.state.open,"aria-controls":o.state.open?`${r}_list`:void 0,"aria-activedescendant":o.state.open?n?.getFocusedOptionId():void 0,...t.invalid&&{"data-invalid":"","aria-invalid":!0},onChange:M,onFocus:U,onBlur:q,onKeyDown:B},Z={"data-scope":"autocomplete","data-part":"indicator","aria-hidden":!0,...o.state.open?{"data-open":""}:{"data-closed":""}},ee={"data-scope":"autocomplete","data-part":"clear","aria-label":"Clear",tabIndex:t.disabled?-1:0,onClick:C,onKeyDown:G},te={...n?.listProps,id:`${r}_list`,tabIndex:-1,"data-scope":"autocomplete","data-part":"list"},ne={"data-scope":"autocomplete","data-part":"positioner",ref:o.setPositionerRef},oe={"data-scope":"autocomplete","data-part":"popup",ref:o.setPopupRef,...o.state.open&&{"data-open":""}},ae={"data-scope":"autocomplete","data-part":"arrow",ref:o.setArrowRef},se={"data-scope":"autocomplete","data-part":"trigger",type:"button",tabIndex:t.disabled?-1:t.tabIndex,disabled:t.disabled,"aria-label":"Show suggestions","aria-haspopup":"listbox","aria-expanded":!!o.state.open,"aria-controls":o.state.open?`${r}_list`:void 0,...o.state.open&&{"data-positioner-open":""},onClick:j};return{state:H,listbox:n,rootProps:X,triggerProps:se,inputProps:Y,listProps:te,indicatorProps:Z,clearProps:ee,positionerProps:ne,popupProps:oe,arrowProps:ae,setAnchorRef:o.setAnchorRef,setPositionerRef:o.setPositionerRef,setPopupRef:o.setPopupRef,setArrowRef:o.setArrowRef,setRendered:o.setRendered,getSelectedOptionLabel:J,hasValue:y,show:g,hide:l,toggle:V,focus:E}}});export{S as defaultProps,ye as useAutoComplete};
1
+ import{withHeadless as ue}from"@primereact/core/headless";import{useListbox as ce}from"@primereact/headless/listbox";import{usePopover as re}from"@primereact/headless/popover";import{useControlledState as k}from"@primereact/hooks/use-controlled-state";import{useEventListener as K}from"@primereact/hooks/use-event-listener";import{getOuterWidth as de,isNotEmpty as pe,focus as fe,toElement as me}from"@primeuix/utils";import*as i from"react";var F={open:void 0,defaultOpen:void 0,value:void 0,defaultValue:void 0,inputValue:void 0,defaultInputValue:"",options:[],optionKey:void 0,optionLabel:void 0,optionValue:void 0,optionDisabled:void 0,optionGroupLabel:void 0,optionGroupChildren:void 0,disabled:!1,invalid:!1,name:void 0,locale:void 0,metaKeySelection:!1,multiple:!1,autoOptionFocus:!1,selectOnFocus:!1,focusOnHover:!0,closeOnEscape:!1,autoFocus:!1,trapped:!1,minLength:1,delay:0,forceSelection:!1,onOpenChange:void 0,onValueChange:void 0,onInputValueChange:void 0,onComplete:void 0};var Le=ue({name:"useAutoComplete",defaultProps:F,setup({props:t,id:r}){let w=i.useRef(null),T=e=>{w.current?.(e)},A=e=>{t.onOpenChange?.({value:!!e.value})},n=ce({value:t.value,defaultValue:t.defaultValue,options:t.options,optionKey:t.optionKey,optionLabel:t.optionLabel,optionValue:t.optionValue,optionDisabled:t.optionDisabled,optionGroupLabel:t.optionGroupLabel,optionGroupChildren:t.optionGroupChildren,disabled:t.disabled,locale:t.locale,autoOptionFocus:t.autoOptionFocus,selectOnFocus:t.selectOnFocus,focusOnHover:t.focusOnHover,multiple:!1,metaKeySelection:t.metaKeySelection,onValueChange:T}),o=re({open:t.open,defaultOpen:t.defaultOpen??!1,closeOnEscape:t.closeOnEscape,autoFocus:t.autoFocus,trapped:t.trapped,onOpenChange:A}),[R,p]=k({value:t.value,defaultValue:t.defaultValue,onChange:t.onValueChange}),[u,f]=k({value:t.inputValue,defaultValue:t.defaultInputValue??"",onChange:t.onInputValueChange}),[D,x]=i.useState(!1),[H,v]=i.useState(!1),d=i.useRef(null),h=i.useRef(!1),O=i.useRef(!1),y=i.useRef(!1),M={value:R,inputValue:u,opened:o.state.open,focused:D,focusedOptionIndex:n.state.focusedOptionIndex,searching:H,anchorElement:o.state.anchorElement,positionerElement:o.state.positionerElement,popupElement:o.state.popupElement,arrowElement:o.state.arrowElement,rendered:o.state.rendered},m=(e,a)=>{a!=null&&t.onComplete&&t.onComplete({originalEvent:e,query:a})},g=()=>{o.setOpen(!0)},l=()=>{o.setOpen(!1),v(!1),n.changeFocusedOptionIndex(new Event("blur"),n.findFirstFocusedOptionIndex())},U=e=>{d.current&&clearTimeout(d.current);let a=e.target.value;if(L()){let s=n.findSelectedOptionIndex(),c=s!==-1?n.getOptions()[s]:null,b=c?n.getOptionLabel(c):"";a!==b&&(p([null,{originalEvent:e,value:null,option:null}]),n.updateModel(e,null))}a.length===0?(m(e,""),l()):a.length>=(t.minLength??1)?(v(!0),d.current=setTimeout(()=>{m(e,a),g(),n.changeFocusedOptionIndex(new Event("input"),-1)},t.delay)):l(),f([a,{originalEvent:e,query:a}])},q=e=>{t.disabled||(O.current?O.current=!1:t.autoOptionFocus&&m(e,e.target.value),n.listProps.onFocus?.(),x(!0))},G=e=>{n.listProps.onBlur?.(),x(!1),t.forceSelection&&j(e)},C=e=>{let a=e.value;if(y.current){y.current=!1;return}let s=n.getOptions().find(b=>{let le=n.getOptionValue(b);return n.isEquals(le,a)}),c=s?n.getOptionLabel(s):"";p([a,{originalEvent:e.originalEvent,value:a,option:s}]),f([c,{originalEvent:e.originalEvent,query:c}]),l(),O.current=!0,E()};w.current=C;let V=e=>{e.preventDefault(),e.stopPropagation(),p([null,{originalEvent:e,value:null,option:null}]),f(["",{originalEvent:e,query:""}]),y.current=!0,n.updateModel(e,null),o.state.open&&l(),O.current=!0,E()},B=e=>{(e.code==="Enter"||e.code==="Space")&&V(e)},_=e=>{switch(e.code){case"ArrowDown":$(e);break;case"ArrowUp":z(e);break;case"ArrowLeft":case"ArrowRight":n.changeFocusedOptionIndex(e,-1);break;case"Enter":case"NumpadEnter":N(e);break;case"Space":!t.autoOptionFocus&&n.state.focusedOptionIndex!==-1&&n.onOptionSelect(e,n.getOptions()[n.state.focusedOptionIndex]);break;case"Home":case"End":case"PageUp":case"PageDown":o.state.open&&n.listProps.onKeyDown(e);break;case"Escape":o.state.open&&(l(),E(),e.stopPropagation());break;case"Tab":o.state.open&&l();break;default:break}},$=e=>{!o.state.open&&u&&u?.length>=(t.minLength??1)&&(h.current=!0,m(e,u??""),g()),n.listProps.onKeyDown(e),e.preventDefault()},z=e=>{if(!o.state.open&&u&&u?.length>=(t.minLength??1)&&(h.current=!0,m(e,u??""),g()),e.altKey){let a=n.state.focusedOptionIndex;if(a!==-1){let s=n.getOptions()[a];s&&C({originalEvent:e,value:n.getOptionValue(s)})}o.state.open&&l()}else n.listProps.onKeyDown(e);e.preventDefault()},N=e=>{let a=n.state.focusedOptionIndex;if(o.state.open&&a!==-1){let s=n.getOptions()[a];s&&!n.isOptionDisabled(s)&&(n.onOptionSelect(e,s),e.preventDefault())}},W=(e,a)=>n.isValidOption(e)&&n.getOptionLabel(e)?.toLocaleLowerCase(t.locale)===a.toLocaleLowerCase(t.locale),j=e=>{if(t.options&&t.options.length>0){let a=n.getOptions().find(s=>W(s,u||""));if(a!==void 0){let s=n.getOptions().find(b=>n.getOptionValue(b)===a),c=s?n.getOptionLabel(s):"";p([a,{originalEvent:e,value:a,option:s}]),f([c,{originalEvent:e,query:c}])}else f(["",{originalEvent:e,query:""}]),p([null,{originalEvent:e,value:null,option:null}])}},L=()=>pe(R),I=()=>{o.state.open?l():g()},E=()=>{let e=me(o.state.anchorElement);e&&fe(e)},J=()=>{t.disabled||I()},Q=()=>{if(!L())return null;let e=n.getOptions().find(a=>{let s=n.getOptionValue(a);return n.isEquals(s,R)});return e?n.getOptionLabel(e):null},[X]=K({target:()=>document.querySelector(`label[for="${r}"]`),type:"click",listener:()=>{E()}}),[P,S]=K({target:"window",type:"resize",listener:()=>{o.state.open&&l()}});i.useEffect(()=>{X()},[r]),i.useEffect(()=>{d.current&&(clearTimeout(d.current),d.current=null)},[]),i.useEffect(()=>{v(!1)},[t.options]),i.useEffect(()=>{o.state.open?P():S()},[o.state.open,P,S]),i.useEffect(()=>{o.state.open&&o.state.positionerElement&&(o.state.anchorElement&&(o.state.positionerElement.style.minWidth=de(o.state.anchorElement)+"px"),(h.current||t.autoOptionFocus)&&requestAnimationFrame(()=>{requestAnimationFrame(()=>{let e=n.state.focusedOptionIndex,a=e!==-1?e:n.findFirstFocusedOptionIndex();n.changeFocusedOptionIndex(new Event("focus"),a),h.current=!1})}))},[o.state.open,o.state.positionerElement]);let Y={id:r,"data-scope":"autocomplete","data-part":"root",...t.disabled&&{"data-disabled":""},...t.invalid&&{"data-invalid":""}},Z={"data-scope":"autocomplete","data-part":"input",ref:o.setAnchorRef,tabIndex:t.disabled?-1:t.tabIndex,value:u??"",autoComplete:"off",role:"combobox",name:t.name,disabled:t.disabled,"aria-autocomplete":"list","aria-haspopup":"listbox","aria-expanded":!!o.state.open,"aria-controls":o.state.open?`${r}_list`:void 0,"aria-activedescendant":o.state.open?n?.getFocusedOptionId():void 0,...t.invalid&&{"data-invalid":"","aria-invalid":!0},onChange:U,onFocus:q,onBlur:G,onKeyDown:_},ee={"data-scope":"autocomplete","data-part":"indicator","aria-hidden":!0,...o.state.open?{"data-open":""}:{"data-closed":""}},te={"data-scope":"autocomplete","data-part":"clear","aria-label":"Clear",tabIndex:t.disabled?-1:0,onClick:V,onKeyDown:B},ne={...n?.listProps,id:`${r}_list`,tabIndex:-1,"data-scope":"autocomplete","data-part":"list"},oe={"data-scope":"autocomplete","data-part":"positioner",ref:o.setPositionerRef},ae={"data-scope":"autocomplete","data-part":"popup",ref:o.setPopupRef,...o.state.open&&{"data-open":""}},se={"data-scope":"autocomplete","data-part":"arrow",ref:o.setArrowRef},ie={"data-scope":"autocomplete","data-part":"trigger",type:"button",tabIndex:t.disabled?-1:t.tabIndex,disabled:t.disabled,"aria-label":"Show suggestions","aria-haspopup":"listbox","aria-expanded":!!o.state.open,"aria-controls":o.state.open?`${r}_list`:void 0,...o.state.open&&{"data-positioner-open":""},onClick:J};return{state:M,listbox:n,rootProps:Y,triggerProps:ie,inputProps:Z,listProps:ne,indicatorProps:ee,clearProps:te,positionerProps:oe,popupProps:ae,arrowProps:se,setAnchorRef:o.setAnchorRef,setPositionerRef:o.setPositionerRef,setPopupRef:o.setPopupRef,setArrowRef:o.setArrowRef,setRendered:o.setRendered,getSelectedOptionLabel:Q,hasValue:L,show:g,hide:l,toggle:I,focus:E}}});export{F as defaultProps,Le as useAutoComplete};
@@ -73,7 +73,7 @@ export declare const useAutoComplete: (inProps?: unknown) => import("@primereact
73
73
  getOptionId: (index: number) => string;
74
74
  getOptionLabel: (option: unknown) => any;
75
75
  getOptionValue: (option: unknown) => any;
76
- isOptionDisabled: (option: unknown) => any;
76
+ isOptionDisabled: (option: unknown) => boolean;
77
77
  isOptionGroup: (option: unknown) => boolean;
78
78
  getOptionGroupLabel: (optionGroup: unknown) => any;
79
79
  getOptionGroupChildren: (optionGroup: unknown) => any;
@@ -1 +1 @@
1
- import{withHeadless as Re}from"@primereact/core/headless";import{useDirection as ve}from"@primereact/hooks/use-direction";import{isRTL as ae}from"@primeuix/utils";import*as r from"react";var re={orientation:"horizontal",align:"start",loop:!1,snapType:"mandatory",spacing:16,autoSize:!1,slidesPerPage:1,page:void 0,defaultPage:0,onPageChange:void 0,slide:void 0,onSlideChange:void 0};var se="[data-item]";function he(t,u){if(t.size!==u.size)return!1;for(let P of t)if(!u.has(P))return!1;return!0}var Me=Re({name:"useCarousel",defaultProps:re,setup({props:t}){let[u,P]=r.useState(!1),[U,oe]=r.useState(!1),[q,ce]=r.useState(!1),[m,ie]=r.useState(new Set),[c,le]=r.useState(t.page??t.defaultPage??0),b=r.useRef(c);b.current=c;let i=r.useRef(null),g=r.useRef(new Set),w=r.useRef([]),B=r.useRef(!1),y=r.useRef(!1),p=r.useRef(null),T=r.useRef(null),S=r.useRef(null),v=r.useRef(null),h=r.useRef(null),M=r.useRef(new Set),D=r.useCallback(e=>{let n=requestAnimationFrame(()=>{M.current.delete(n),e()});return M.current.add(n),n},[]),L=r.useRef({x:0,y:0}),C=r.useRef(!1),ue=ve(i),$=r.useRef(new Set),F=r.useRef(new Set);function J(e,n,a){if(!n)return;let s=new Set(e.querySelectorAll(se));a.forEach(o=>{s.has(o)||(n.unobserve(o),a.delete(o))}),s.forEach(o=>{a.has(o)||(n.observe(o),a.add(o))})}function G(e){J(e,S.current,$.current)}function _(e){J(e,T.current,F.current)}function E(){let e=i.current;if(!e)return[];let n=t.orientation!=="vertical",a=n&&ae(e),s=n?e.clientWidth:e.clientHeight,o=Math.max(0,n?e.scrollWidth-s:e.scrollHeight-s),l=[];w.current=[],e.querySelectorAll(se).forEach(R=>{let X=n?R.clientWidth:R.clientHeight,Y=n?a?e.scrollWidth-R.offsetLeft-X:R.offsetLeft:R.offsetTop,K=Y;t.align==="center"?K=Y-(s-X)/2:t.align==="end"&&(K=Y-(s-X));let ne=Math.max(0,Math.min(K,o));w.current.push(ne),l.push(ne)});let d=new Set(l.map(Number));he(m,d)||(g.current=d,ie(d))}function I(e,n){if(!t.loop){let a=g.current.size||m.size,s=!1,o=!1;e===0&&(o=!0),e===a-1&&(s=!0),oe(s),ce(o)}le(e),t.onPageChange?.({originalEvent:n,value:e}),t.onSlideChange?.({originalEvent:n,value:e})}function x(){let e=i.current,n=g.current;if(!e||n.size===0)return;let a=t.orientation==="horizontal"?Math.abs(e.scrollLeft):e.scrollTop,s=Array.from(n).reduce((l,d)=>Math.abs(d-a)<Math.abs(l-a)?d:l,1/0),o=Array.from(n).indexOf(s);return I(o),o}function f(e,n=!1,a){let s=g.current;if(s.size===0)return;let o=e??c,l=t.loop?(o+s.size)%s.size:Math.max(0,Math.min(o,s.size-1));I(l,a),O(Array.from(s)[l],n)}function H(e){f(c+1,!1,e)}function A(e){f(c-1,!1,e)}function O(e,n=!1){let a=i.current;if(!a)return;let s=t.orientation==="horizontal",o=s&&ae(a);a.scrollTo({[s?"left":"top"]:o?-e:e,behavior:n?"instant":"smooth"})}function j(e,n=!1){let a=g.current,s=w.current;if(a.size===0||s.length===0)return;let o=Math.max(0,Math.min(e,s.length-1)),l=s[o];O(l,n);let d=Array.from(a).indexOf(l);I(d)}let k=r.useRef(E),z=r.useRef(x),W=r.useRef(f);k.current=E,z.current=x,W.current=f,r.useLayoutEffect(()=>{let e=i.current;if(e)return S.current=new ResizeObserver(()=>{k.current();let n=z.current();W.current(n??b.current,!0)}),S.current.observe(e),G(e),E(),()=>{S.current?.disconnect(),S.current=null,$.current.clear()}},[]),r.useLayoutEffect(()=>{i.current&&(E(),f(b.current,!0))},[ue]),r.useLayoutEffect(()=>{B.current||t.page!==void 0&&t.page!==null||t.slide!==void 0&&t.slide!==null||(g.current.size||m.size)===0||(B.current=!0,f(t.defaultPage??0,!0))},[m,t.page,t.defaultPage]),r.useLayoutEffect(()=>{if(t.page===void 0||t.page===null||t.slide!==void 0&&t.slide!==null||g.current.size===0&&m.size===0)return;let e=!y.current;y.current=!0,f(t.page,e)},[t.page,t.slide,m]),r.useLayoutEffect(()=>{if(t.slide===void 0||t.slide===null||g.current.size===0&&m.size===0)return;let e=!y.current;y.current=!0,j(t.slide,e)},[t.slide,m]),r.useEffect(()=>{let e=i.current;if(e)return p.current=new MutationObserver(()=>{k.current(),G(e),_(e),D(()=>{let n=z.current();W.current(n??b.current,!0)})}),p.current.observe(e,{childList:!0,subtree:!0}),()=>{p.current?.disconnect(),p.current=null}},[]),r.useEffect(()=>{let e=i.current;if(e)return T.current=new IntersectionObserver(n=>{n.forEach(a=>{a.isIntersecting?a.target.setAttribute("data-inview",""):a.target.removeAttribute("data-inview")})},{root:i.current,threshold:.6}),_(e),()=>{T.current?.disconnect(),T.current=null,F.current.clear()}},[]),r.useEffect(()=>{let e=i.current;if(!e)return;let n=()=>{v.current&&clearTimeout(v.current),v.current=setTimeout(()=>{z.current()},80)};return n(),e.addEventListener("scroll",n,{passive:!0}),()=>{v.current&&clearTimeout(v.current),v.current=null,e.removeEventListener("scroll",n)}},[]),r.useEffect(()=>()=>{h.current&&clearTimeout(h.current),h.current=null},[]),r.useEffect(()=>{let e=M.current;return()=>{e.forEach(n=>cancelAnimationFrame(n)),e.clear()}},[]);function Q(e){e.button===0&&e.pointerType!=="touch"&&(P(!0),L.current={x:e.clientX,y:e.clientY},C.current=!1)}function V(e){let n=i.current;if(!u||!n||e.pointerType==="touch")return;let a=e.clientX-L.current.x,s=e.clientY-L.current.y;Math.abs(a)+Math.abs(s)<6||(window.getSelection()?.toString().length??0)>0||(e.currentTarget.setPointerCapture(e.pointerId),n.style.userSelect="none",C.current=!0,n.style.scrollSnapType="none",n.scrollBy({left:-e.movementX,top:-e.movementY,behavior:"instant"}),e.preventDefault())}function Z(e){if(P(!1),e.currentTarget.releasePointerCapture(e.pointerId),!C.current)return;let n=i.current;if(!n)return;n.style.userSelect="";let a=t.orientation==="horizontal"?Math.abs(n.scrollLeft):n.scrollTop,s=g.current,o=Array.from(s).reduce((d,R)=>Math.abs(R-a)<Math.abs(d-a)?R:d,1/0),l=Array.from(s).indexOf(o);D(()=>{o!==void 0&&f(l),D(()=>{n.style.scrollSnapType=N()})})}function ee(e){h.current&&clearTimeout(h.current),h.current=setTimeout(()=>{let n=t.orientation==="horizontal"?e.deltaX||e.deltaY:e.deltaY||e.deltaX;n>0&&U||n<0&&q||x()},80)}let N=()=>`${t.orientation==="vertical"?"y":"x"} ${t.snapType??"mandatory"}`,te=t.slidesPerPage&&t.slidesPerPage>0?t.slidesPerPage:1,fe={swiping:u,isNextDisabled:U,isPrevDisabled:q,snapPoints:m,page:c},de={role:"region","aria-roledescription":"carousel",tabIndex:0,onKeyDown:e=>{if(e.target!==e.currentTarget)return;let n=t.orientation==="vertical",a=n?"ArrowUp":"ArrowLeft",s=n?"ArrowDown":"ArrowRight";e.key===a?(e.preventDefault(),A(e)):e.key===s?(e.preventDefault(),H(e)):e.key==="Home"?(e.preventDefault(),f(0,!1,e)):e.key==="End"&&(e.preventDefault(),f(g.current.size-1,!1,e))},"data-scope":"carousel","data-part":"root","data-orientation":t.orientation,"data-align":t.align,"data-page":c,...u?{"data-swiping":""}:{},...t.autoSize?{"data-autosize":""}:{}},ge={ref:i,"aria-live":"polite","aria-atomic":!1,"data-scope":"carousel","data-part":"content","data-orientation":t.orientation,"data-align":t.align,"data-page":c,...t.autoSize?{"data-autosize":""}:{},...u?{"data-swiping":""}:{},onPointerDown:Q,onPointerMove:V,onPointerUp:Z,onWheel:ee,style:{"--px-slides-per-page":te,"--px-spacing-items":t.spacing+"px","--px-scroll-snap-type":N(),position:"relative",scrollbarWidth:"none",display:"flex",flexDirection:t.orientation==="vertical"?"column":"row",overflowX:t.orientation==="horizontal"?"scroll":void 0,overflowY:t.orientation==="vertical"?"scroll":void 0,overscrollBehaviorX:t.orientation==="horizontal"?"contain":void 0,overscrollBehaviorY:t.orientation==="vertical"?"contain":void 0,gap:"var(--px-spacing-items)",scrollSnapType:"var(--px-scroll-snap-type)"}},me={"data-scope":"carousel","data-part":"indicators","data-orientation":t.orientation,"data-align":t.align,"data-page":c,...u?{"data-swiping":""}:{}};return{state:fe,slidesPerPage:te,rootProps:de,contentProps:ge,indicatorsProps:me,getItemProps:(e,n,a)=>({role:"group","aria-roledescription":"slide",...n!=null?{"aria-label":a!=null?`${n+1} / ${a}`:String(n+1)}:{},"data-scope":"carousel","data-part":"item","data-value":e,"data-item":"","data-inview":"false","data-orientation":t.orientation,"data-align":t.align,"data-page":c,...u?{"data-swiping":""}:{},...t.autoSize?{"data-autosize":""}:{},style:{flexGrow:0,flexShrink:0,minWidth:0,flexBasis:t.autoSize?"auto":"calc(100% / var(--px-slides-per-page) - var(--px-spacing-items) * (var(--px-slides-per-page) - 1) / var(--px-slides-per-page))",scrollSnapAlign:t.align}}),getNextProps:e=>({"data-scope":"carousel","data-part":"next",type:"button",disabled:e,"data-orientation":t.orientation,"data-align":t.align,"data-page":c,"data-disabled":e,...u?{"data-swiping":""}:{},onClick:H}),getPrevProps:e=>({"data-scope":"carousel","data-part":"prev",type:"button",disabled:e,"data-orientation":t.orientation,"data-align":t.align,"data-page":c,"data-disabled":e,...u?{"data-swiping":""}:{},onClick:A}),getIndicatorProps:e=>{let n=c===e,a=s=>f(e,!1,s);return{"data-scope":"carousel","data-part":"indicator",type:"button","aria-current":n||void 0,"data-orientation":t.orientation,"data-align":t.align,"data-page":c,...n?{"data-active":""}:{},...u?{"data-swiping":""}:{},onClick:a}},onContentPointerDown:Q,onContentPointerMove:V,onContentPointerUp:Z,onContentWheel:ee,next:H,prev:A,scrollToPage:f,scrollTo:O,scrollToSlide:j,setToClosest:x,resolveSnapType:N}}});export{re as defaultProps,Me as useCarousel};
1
+ import{withHeadless as Se}from"@primereact/core/headless";import{useDirection as Pe}from"@primereact/hooks/use-direction";import{isRTL as oe}from"@primeuix/utils";import*as a from"react";var se={orientation:"horizontal",align:"start",loop:!1,snapType:"mandatory",spacing:16,autoSize:!1,slidesPerPage:1,page:void 0,defaultPage:0,onPageChange:void 0,slide:void 0,onSlideChange:void 0};var ce="[data-item]";function be(t,u){if(t.size!==u.size)return!1;for(let P of t)if(!u.has(P))return!1;return!0}var Ce=Se({name:"useCarousel",defaultProps:se,setup({props:t}){let[u,P]=a.useState(!1),[B,ie]=a.useState(!1),[$,le]=a.useState(!1),[m,ue]=a.useState(new Set),[c,fe]=a.useState(t.page??t.defaultPage??0),b=a.useRef(c);b.current=c;let i=a.useRef(null),d=a.useRef(new Set),M=a.useRef([]),F=a.useRef(!1),y=a.useRef(!1),p=a.useRef(null),T=a.useRef(null),S=a.useRef(null),R=a.useRef(null),v=a.useRef(null),D=a.useRef(new Set),L=a.useCallback(e=>{let n=requestAnimationFrame(()=>{D.current.delete(n),e()});return D.current.add(n),n},[]),C=a.useRef({x:0,y:0}),I=a.useRef(!1),de=Pe(i),J=a.useRef(new Set),G=a.useRef(new Set);function _(e,n,s){if(!n)return;let r=new Set(e.querySelectorAll(ce));s.forEach(o=>{r.has(o)||(n.unobserve(o),s.delete(o))}),r.forEach(o=>{s.has(o)||(n.observe(o),s.add(o))})}function j(e){_(e,S.current,J.current)}function Q(e){_(e,T.current,G.current)}function E(){let e=i.current;if(!e)return[];let n=t.orientation!=="vertical",s=n&&oe(e),r=n?e.clientWidth:e.clientHeight,o=Math.max(0,n?e.scrollWidth-r:e.scrollHeight-r),l=[];M.current=[];let g=e.querySelectorAll(ce),w=g.length;g.forEach((h,he)=>{h.setAttribute("aria-label",`${he+1} / ${w}`);let K=n?h.clientWidth:h.clientHeight,U=n?s?e.scrollWidth-h.offsetLeft-K:h.offsetLeft:h.offsetTop,q=U;t.align==="center"?q=U-(r-K)/2:t.align==="end"&&(q=U-(r-K));let re=Math.max(0,Math.min(q,o));M.current.push(re),l.push(re)});let Y=new Set(l.map(Number));be(m,Y)||(d.current=Y,ue(Y))}function H(e,n){if(!t.loop){let s=d.current.size||m.size,r=!1,o=!1;e===0&&(o=!0),e===s-1&&(r=!0),ie(r),le(o)}fe(e),t.onPageChange?.({originalEvent:n,value:e}),t.onSlideChange?.({originalEvent:n,value:e})}function x(){let e=i.current,n=d.current;if(!e||n.size===0)return;let s=t.orientation==="horizontal"?Math.abs(e.scrollLeft):e.scrollTop,r=Array.from(n).reduce((l,g)=>Math.abs(g-s)<Math.abs(l-s)?g:l,1/0),o=Array.from(n).indexOf(r);return H(o),o}function f(e,n=!1,s){let r=d.current;if(r.size===0)return;let o=e??c,l=t.loop?(o+r.size)%r.size:Math.max(0,Math.min(o,r.size-1));H(l,s),k(Array.from(r)[l],n)}function A(e){f(c+1,!1,e)}function O(e){f(c-1,!1,e)}function k(e,n=!1){let s=i.current;if(!s)return;let r=t.orientation==="horizontal",o=r&&oe(s);s.scrollTo({[r?"left":"top"]:o?-e:e,behavior:n?"instant":"smooth"})}function V(e,n=!1){let s=d.current,r=M.current;if(s.size===0||r.length===0)return;let o=Math.max(0,Math.min(e,r.length-1)),l=r[o];k(l,n);let g=Array.from(s).indexOf(l);H(g)}let W=a.useRef(E),z=a.useRef(x),N=a.useRef(f);W.current=E,z.current=x,N.current=f,a.useLayoutEffect(()=>{let e=i.current;if(e)return S.current=new ResizeObserver(()=>{W.current();let n=z.current();N.current(n??b.current,!0)}),S.current.observe(e),j(e),E(),()=>{S.current?.disconnect(),S.current=null,J.current.clear()}},[]),a.useLayoutEffect(()=>{i.current&&(E(),f(b.current,!0))},[de]),a.useLayoutEffect(()=>{F.current||t.page!==void 0&&t.page!==null||t.slide!==void 0&&t.slide!==null||(d.current.size||m.size)===0||(F.current=!0,f(t.defaultPage??0,!0))},[m,t.page,t.defaultPage]),a.useLayoutEffect(()=>{if(t.page===void 0||t.page===null||t.slide!==void 0&&t.slide!==null||d.current.size===0&&m.size===0)return;let e=!y.current;y.current=!0,f(t.page,e)},[t.page,t.slide,m]),a.useLayoutEffect(()=>{if(t.slide===void 0||t.slide===null||d.current.size===0&&m.size===0)return;let e=!y.current;y.current=!0,V(t.slide,e)},[t.slide,m]),a.useEffect(()=>{let e=i.current;if(e)return p.current=new MutationObserver(()=>{W.current(),j(e),Q(e),L(()=>{let n=z.current();N.current(n??b.current,!0)})}),p.current.observe(e,{childList:!0,subtree:!0}),()=>{p.current?.disconnect(),p.current=null}},[]),a.useEffect(()=>{let e=i.current;if(e)return T.current=new IntersectionObserver(n=>{n.forEach(s=>{s.isIntersecting?s.target.setAttribute("data-inview",""):s.target.removeAttribute("data-inview")})},{root:i.current,threshold:.6}),Q(e),()=>{T.current?.disconnect(),T.current=null,G.current.clear()}},[]),a.useEffect(()=>{let e=i.current;if(!e)return;let n=()=>{R.current&&clearTimeout(R.current),R.current=setTimeout(()=>{z.current()},80)};return n(),e.addEventListener("scroll",n,{passive:!0}),()=>{R.current&&clearTimeout(R.current),R.current=null,e.removeEventListener("scroll",n)}},[]),a.useEffect(()=>()=>{v.current&&clearTimeout(v.current),v.current=null},[]),a.useEffect(()=>{let e=D.current;return()=>{e.forEach(n=>cancelAnimationFrame(n)),e.clear()}},[]);function Z(e){e.button===0&&e.pointerType!=="touch"&&(P(!0),C.current={x:e.clientX,y:e.clientY},I.current=!1)}function ee(e){let n=i.current;if(!u||!n||e.pointerType==="touch")return;let s=e.clientX-C.current.x,r=e.clientY-C.current.y;Math.abs(s)+Math.abs(r)<6||(window.getSelection()?.toString().length??0)>0||(e.currentTarget.setPointerCapture(e.pointerId),n.style.userSelect="none",I.current=!0,n.style.scrollSnapType="none",n.scrollBy({left:-e.movementX,top:-e.movementY,behavior:"instant"}),e.preventDefault())}function te(e){if(P(!1),e.currentTarget.releasePointerCapture(e.pointerId),!I.current)return;let n=i.current;if(!n)return;n.style.userSelect="";let s=t.orientation==="horizontal"?Math.abs(n.scrollLeft):n.scrollTop,r=d.current,o=Array.from(r).reduce((g,w)=>Math.abs(w-s)<Math.abs(g-s)?w:g,1/0),l=Array.from(r).indexOf(o);L(()=>{o!==void 0&&f(l),L(()=>{n.style.scrollSnapType=X()})})}function ne(e){v.current&&clearTimeout(v.current),v.current=setTimeout(()=>{let n=t.orientation==="horizontal"?e.deltaX||e.deltaY:e.deltaY||e.deltaX;n>0&&B||n<0&&$||x()},80)}let X=()=>`${t.orientation==="vertical"?"y":"x"} ${t.snapType??"mandatory"}`,ae=t.slidesPerPage&&t.slidesPerPage>0?t.slidesPerPage:1,ge={swiping:u,isNextDisabled:B,isPrevDisabled:$,snapPoints:m,page:c},me={role:"region","aria-roledescription":"carousel",tabIndex:0,onKeyDown:e=>{if(e.target!==e.currentTarget)return;let n=t.orientation==="vertical",s=n?"ArrowUp":"ArrowLeft",r=n?"ArrowDown":"ArrowRight";e.key===s?(e.preventDefault(),O(e)):e.key===r?(e.preventDefault(),A(e)):e.key==="Home"?(e.preventDefault(),f(0,!1,e)):e.key==="End"&&(e.preventDefault(),f(d.current.size-1,!1,e))},"data-scope":"carousel","data-part":"root","data-orientation":t.orientation,"data-align":t.align,"data-page":c,...u?{"data-swiping":""}:{},...t.autoSize?{"data-autosize":""}:{}},Re={ref:i,"aria-live":"polite","aria-atomic":!1,"data-scope":"carousel","data-part":"content","data-orientation":t.orientation,"data-align":t.align,"data-page":c,...t.autoSize?{"data-autosize":""}:{},...u?{"data-swiping":""}:{},onPointerDown:Z,onPointerMove:ee,onPointerUp:te,onWheel:ne,style:{"--px-slides-per-page":ae,"--px-spacing-items":t.spacing+"px","--px-scroll-snap-type":X(),position:"relative",scrollbarWidth:"none",display:"flex",flexDirection:t.orientation==="vertical"?"column":"row",overflowX:t.orientation==="horizontal"?"scroll":void 0,overflowY:t.orientation==="vertical"?"scroll":void 0,overscrollBehaviorX:t.orientation==="horizontal"?"contain":void 0,overscrollBehaviorY:t.orientation==="vertical"?"contain":void 0,gap:"var(--px-spacing-items)",scrollSnapType:"var(--px-scroll-snap-type)"}},ve={"data-scope":"carousel","data-part":"indicators","data-orientation":t.orientation,"data-align":t.align,"data-page":c,...u?{"data-swiping":""}:{}};return{state:ge,slidesPerPage:ae,rootProps:me,contentProps:Re,indicatorsProps:ve,getItemProps:e=>({role:"group","aria-roledescription":"slide","data-scope":"carousel","data-part":"item","data-value":e,"data-item":"","data-inview":"false","data-orientation":t.orientation,"data-align":t.align,"data-page":c,...u?{"data-swiping":""}:{},...t.autoSize?{"data-autosize":""}:{},style:{flexGrow:0,flexShrink:0,minWidth:0,flexBasis:t.autoSize?"auto":"calc(100% / var(--px-slides-per-page) - var(--px-spacing-items) * (var(--px-slides-per-page) - 1) / var(--px-slides-per-page))",scrollSnapAlign:t.align}}),getNextProps:e=>({"data-scope":"carousel","data-part":"next",type:"button",disabled:e,"data-orientation":t.orientation,"data-align":t.align,"data-page":c,"data-disabled":e,...u?{"data-swiping":""}:{},onClick:A}),getPrevProps:e=>({"data-scope":"carousel","data-part":"prev",type:"button",disabled:e,"data-orientation":t.orientation,"data-align":t.align,"data-page":c,"data-disabled":e,...u?{"data-swiping":""}:{},onClick:O}),getIndicatorProps:e=>{let n=c===e,s=r=>f(e,!1,r);return{"data-scope":"carousel","data-part":"indicator",type:"button","aria-current":n||void 0,"data-orientation":t.orientation,"data-align":t.align,"data-page":c,...n?{"data-active":""}:{},...u?{"data-swiping":""}:{},onClick:s}},onContentPointerDown:Z,onContentPointerMove:ee,onContentPointerUp:te,onContentWheel:ne,next:A,prev:O,scrollToPage:f,scrollTo:k,scrollToSlide:V,setToClosest:x,resolveSnapType:X}}});export{se as defaultProps,Ce as useCarousel};
@@ -60,7 +60,7 @@ export declare const useCarousel: (inProps?: unknown) => import("@primereact/typ
60
60
  'data-align': "center" | "start" | "end" | undefined;
61
61
  'data-page': number;
62
62
  };
63
- getItemProps: (value: unknown, index?: number, total?: number) => {
63
+ getItemProps: (value: unknown) => {
64
64
  style: {
65
65
  flexGrow: number;
66
66
  flexShrink: number;
@@ -70,6 +70,8 @@ export declare const useCarousel: (inProps?: unknown) => import("@primereact/typ
70
70
  };
71
71
  'data-autosize'?: "" | undefined;
72
72
  'data-swiping'?: "" | undefined;
73
+ role: "group";
74
+ 'aria-roledescription': "slide";
73
75
  'data-scope': "carousel";
74
76
  'data-part': "item";
75
77
  'data-value': unknown;
@@ -78,9 +80,6 @@ export declare const useCarousel: (inProps?: unknown) => import("@primereact/typ
78
80
  'data-orientation': "horizontal" | "vertical" | undefined;
79
81
  'data-align': "center" | "start" | "end" | undefined;
80
82
  'data-page': number;
81
- 'aria-label'?: string | undefined;
82
- role: "group";
83
- 'aria-roledescription': "slide";
84
83
  };
85
84
  getNextProps: (disabled: boolean) => {
86
85
  onClick: (originalEvent?: React.SyntheticEvent | Event) => void;
package/dialog/index.mjs CHANGED
@@ -1 +1 @@
1
- import{withHeadless as Pe}from"@primereact/core/headless";import{useFocusTrap as xe}from"@primereact/headless/focustrap";import{useControlledState as ke}from"@primereact/hooks/use-controlled-state";import{$dt as V}from"@primeuix/styled";import{blockBodyScroll as ye,focus as x,toElement as g,unblockBodyScroll as Ce}from"@primeuix/utils/dom";import{ZIndex as k}from"@primeuix/utils/zindex";import*as t from"react";var A={open:void 0,defaultOpen:void 0,draggable:!1,modal:!0,dismissable:!0,closeOnEscape:!0,blockScroll:!0,keepInViewport:!0,minX:0,minY:0,trapped:!0,baseZIndex:0,autoZIndex:!0,appendTo:"body",position:"center",fullScreen:!1,scrollBehavior:"inside",onOpenChange:void 0,onExitComplete:void 0};var ze=Pe({name:"useDialog",defaultProps:A,setup:({props:e,id:u,$primereact:L})=>{let[o,y]=ke({value:e.open,defaultValue:e.defaultOpen??!1,onChange:e.onOpenChange}),[d,H]=t.useState(e.fullScreen??!1),[F,K]=t.useState(null),[f,N]=t.useState(null),[i,_]=t.useState(null),s=t.useRef(null),C=t.useRef(null),T=t.useRef(null),R=t.useRef(null),b=t.useRef(null),E=t.useRef(null),v=t.useRef(null),S=xe({trapped:!!e.trapped,autoFocus:!1});t.useEffect(()=>{H(e.fullScreen??!1)},[e.fullScreen]);let D=t.useCallback(n=>{let a=g(n)??null;a!==s.current&&(s.current=a,S.containerRef.current=a,K(a))},[]),z=t.useCallback(n=>{let a=g(n)??null;a!==C.current&&(C.current=a,N(a))},[]),B=t.useCallback(n=>{let a=g(n)??null;a!==T.current&&(T.current=a,_(a))},[]),q=t.useCallback(n=>{let a=g(n)??null;a!==R.current&&(R.current=a)},[]),W=t.useCallback(n=>{let a=g(n)??null;a!==b.current&&(b.current=a)},[]);function I(){y([!o,{originalEvent:void 0,value:!o}])}function j(){y([!0,{originalEvent:void 0,value:!0}])}function m(){y([!1,{originalEvent:void 0,value:!1}])}function X(){H(n=>!n)}let G=t.useCallback(()=>{if(!s.current)return;let n=s.current.querySelector("[autoFocus]");n?x(n):b.current?x(b.current):R.current&&x(R.current)},[]),J=t.useCallback(()=>{e.onExitComplete?.()},[e.onExitComplete]);t.useEffect(()=>{o?E.current=document.activeElement:E.current&&(x(E.current),E.current=null)},[o]),t.useEffect(()=>{if(!o||!e.closeOnEscape)return;let n=a=>{a.key==="Escape"&&m()};return document.addEventListener("keydown",n),()=>document.removeEventListener("keydown",n)},[o,e.closeOnEscape]);let Q=t.useCallback(n=>{v.current=n.target},[]),$=t.useCallback(()=>{e.dismissable&&T.current===v.current&&m(),v.current=null},[e.dismissable]),h=t.useRef(null),ee=t.useCallback(n=>{h.current=n.target},[]),te=t.useCallback(()=>{e.dismissable&&C.current===h.current&&m(),h.current=null},[e.dismissable]),r=t.useRef({dragging:!1,startX:0,startY:0,dx:0,dy:0}),ne=t.useCallback(n=>{if(!e.draggable||d||e.scrollBehavior==="outside")return;let a=n.target;if(a.closest('[data-part="close"]')||a.closest('[data-part="maximizable"]'))return;let l=s.current;l&&(r.current.dragging=!0,r.current.startX=n.clientX-r.current.dx,r.current.startY=n.clientY-r.current.dy,l.setPointerCapture(n.pointerId),l.setAttribute("data-dragging",""),l.style.setProperty("user-select","none"))},[e.draggable,d]),ae=t.useCallback(n=>{if(!r.current.dragging)return;let a=s.current;if(!a)return;let l=n.clientX-r.current.startX,p=n.clientY-r.current.startY;if(e.keepInViewport){let c=a.getBoundingClientRect(),Y=window.innerWidth,O=window.innerHeight,M=r.current.dx,w=r.current.dy,Z=c.left+(l-M),U=c.top+(p-w);Z<(e.minX??0)&&(l=M-(c.left-(e.minX??0))),U<(e.minY??0)&&(p=w-(c.top-(e.minY??0))),Z+c.width>Y&&(l=M+(Y-c.left-c.width)),U+c.height>O&&(p=w+(O-c.top-c.height))}r.current.dx=l,r.current.dy=p,a.style.setProperty("--px-drag-x",l+"px"),a.style.setProperty("--px-drag-y",p+"px")},[e.keepInViewport,e.minX,e.minY]),oe=t.useCallback(()=>{r.current.dragging&&(r.current.dragging=!1,s.current?.removeAttribute("data-dragging"),s.current?.style.removeProperty("user-select"))},[]);t.useEffect(()=>{o||(r.current={dragging:!1,startX:0,startY:0,dx:0,dy:0})},[o]),t.useEffect(()=>{if(!(!o||!e.blockScroll))return ye({variableName:V("scrollbar.width").name}),()=>{Ce({variableName:V("scrollbar.width").name})}},[o,e.blockScroll]),t.useEffect(()=>{if(f){if(e.autoZIndex){let n=(e.baseZIndex??0)+(L.config?.zIndex?.modal??1100);i&&k.set("modal",i,n),k.set("modal",f,n)}return()=>{e.autoZIndex&&(i&&k.clear(i),k.clear(f))}}},[f,i,e.autoZIndex,e.baseZIndex,L.config?.zIndex?.modal]);let P=d?{"data-maximized":""}:{},re={id:u,"data-scope":"dialog","data-part":"root",...o?{"data-open":""}:{"data-closed":""},...P},le=e.modal!==!1?{"data-modal":""}:{},ce={"data-scope":"dialog","data-part":"positioner","data-position":e.position,"data-scroll-behavior":e.scrollBehavior,...o?{"data-open":""}:{"data-closed":""},...P,...le,onPointerDown:ee,onPointerUp:te,ref:z},se={type:"button","data-scope":"dialog","data-part":"trigger","aria-haspopup":"dialog","aria-expanded":o,"aria-controls":u,...o?{"data-popup-open":""}:{},onClick:I},ie={"data-scope":"dialog","data-part":"portal"},ue={"data-scope":"dialog","data-part":"backdrop",...o?{"data-open":""}:{"data-closed":""},onPointerDown:Q,onPointerUp:$,ref:B},de={id:u,role:"dialog","aria-labelledby":u+"_header","data-scope":"dialog","data-part":"popup","data-position":e.position,...o?{"data-open":""}:{"data-closed":""},...P,...e.draggable?{"data-draggable":""}:{},onPointerMove:ae,onPointerUp:oe,ref:D},fe={"data-scope":"dialog","data-part":"header",id:u+"_header",...e.draggable?{style:{cursor:"move"}}:{},onPointerDown:ne},me={"data-scope":"dialog","data-part":"header-actions"},pe={"data-scope":"dialog","data-part":"title"},ge={"data-scope":"dialog","data-part":"maximizable",...d?{"data-maximized":""}:{"data-minimized":""},ref:W,onClick:X},Re={"data-scope":"dialog","data-part":"close",ref:q,onClick:m},be={"data-scope":"dialog","data-part":"content",...P},Ee={"data-scope":"dialog","data-part":"footer"};return{state:{open:o,maximized:d,trapped:!!e.trapped,popupElement:F,positionerElement:f,backdropElement:i},focusTrap:S,setPopupRef:D,setPositionerRef:z,setBackdropRef:B,rootProps:re,positionerProps:ce,triggerProps:se,portalProps:ie,backdropProps:ue,popupProps:de,headerProps:fe,headerActionsProps:me,titleProps:pe,maximizableProps:ge,closeProps:Re,contentProps:be,footerProps:Ee,toggle:I,open:j,close:m,toggleMaximized:X,onOpenComplete:G,onCloseComplete:J}}});export{A as defaultProps,ze as useDialog};
1
+ import{withHeadless as xe}from"@primereact/core/headless";import{useFocusTrap as ke}from"@primereact/headless/focustrap";import{useControlledState as Ce}from"@primereact/hooks/use-controlled-state";import{$dt as F}from"@primeuix/styled";import{blockBodyScroll as Te,focus as ye,toElement as u,unblockBodyScroll as ve}from"@primeuix/utils/dom";import{ZIndex as E}from"@primeuix/utils/zindex";import*as t from"react";var V={open:void 0,defaultOpen:void 0,draggable:!1,modal:!0,dismissable:!0,closeOnEscape:!0,blockScroll:!0,keepInViewport:!0,minX:0,minY:0,trapped:!0,baseZIndex:0,autoZIndex:!0,appendTo:"body",position:"center",fullScreen:!1,scrollBehavior:"inside",onOpenChange:void 0,onExitComplete:void 0};var Be=xe({name:"useDialog",defaultProps:V,setup:({props:e,id:d,$primereact:M})=>{let[o,P]=Ce({value:e.open,defaultValue:e.defaultOpen??!1,onChange:e.onOpenChange}),[f,h]=t.useState(e.fullScreen??!1),[w,K]=t.useState(null),[m,N]=t.useState(null),[s,_]=t.useState(null),i=t.useRef(null),x=t.useRef(null),k=t.useRef(null),L=t.useRef(null),H=t.useRef(null),S=t.useRef(null),R=t.useRef(null),C=t.useRef(null),D=ke({trapped:!!e.trapped&&!!w,autoFocus:!0});t.useEffect(()=>{h(e.fullScreen??!1)},[e.fullScreen]);let z=t.useCallback(n=>{let a=u(n)??null;a!==i.current&&(i.current=a,D.containerRef.current=a,K(a))},[]),I=t.useCallback(n=>{let a=u(n)??null;a!==x.current&&(x.current=a,N(a))},[]),B=t.useCallback(n=>{let a=u(n)??null;a!==k.current&&(k.current=a,_(a))},[]),W=t.useCallback(n=>{let a=u(n)??null;a!==H.current&&(H.current=a)},[]),j=t.useCallback(n=>{let a=u(n)??null;a!==S.current&&(S.current=a)},[]),q=t.useCallback(n=>{L.current=u(n)??null},[]);function X(){P([!o,{originalEvent:void 0,value:!o}])}function G(){P([!0,{originalEvent:void 0,value:!0}])}function p(){P([!1,{originalEvent:void 0,value:!1}])}function Y(){h(n=>!n)}let J=t.useCallback(()=>{},[]),Q=t.useCallback(()=>{e.onExitComplete?.()},[e.onExitComplete]);t.useEffect(()=>{if(o)R.current=document.activeElement;else if(R.current){let n=R.current,a=n.isConnected&&n!==document.body?n:L.current;a&&ye(a,{preventScroll:!0}),R.current=null}},[o]),t.useEffect(()=>{if(!o||!e.closeOnEscape)return;let n=a=>{a.key==="Escape"&&p()};return document.addEventListener("keydown",n),()=>document.removeEventListener("keydown",n)},[o,e.closeOnEscape]);let $=t.useCallback(n=>{C.current=n.target},[]),ee=t.useCallback(()=>{e.dismissable&&k.current===C.current&&p(),C.current=null},[e.dismissable]),T=t.useRef(null),te=t.useCallback(n=>{T.current=n.target},[]),ne=t.useCallback(()=>{e.dismissable&&x.current===T.current&&p(),T.current=null},[e.dismissable]),r=t.useRef({dragging:!1,startX:0,startY:0,dx:0,dy:0}),ae=t.useCallback(n=>{if(!e.draggable||f||e.scrollBehavior==="outside")return;let a=n.target;if(a.closest('[data-part="close"]')||a.closest('[data-part="maximizable"]'))return;let l=i.current;l&&(r.current.dragging=!0,r.current.startX=n.clientX-r.current.dx,r.current.startY=n.clientY-r.current.dy,l.setPointerCapture(n.pointerId),l.setAttribute("data-dragging",""),l.style.setProperty("user-select","none"))},[e.draggable,f]),oe=t.useCallback(n=>{if(!r.current.dragging)return;let a=i.current;if(!a)return;let l=n.clientX-r.current.startX,g=n.clientY-r.current.startY;if(e.keepInViewport){let c=a.getBoundingClientRect(),O=window.innerWidth,Z=window.innerHeight,y=r.current.dx,v=r.current.dy,U=c.left+(l-y),A=c.top+(g-v);U<(e.minX??0)&&(l=y-(c.left-(e.minX??0))),A<(e.minY??0)&&(g=v-(c.top-(e.minY??0))),U+c.width>O&&(l=y+(O-c.left-c.width)),A+c.height>Z&&(g=v+(Z-c.top-c.height))}r.current.dx=l,r.current.dy=g,a.style.setProperty("--px-drag-x",l+"px"),a.style.setProperty("--px-drag-y",g+"px")},[e.keepInViewport,e.minX,e.minY]),re=t.useCallback(()=>{r.current.dragging&&(r.current.dragging=!1,i.current?.removeAttribute("data-dragging"),i.current?.style.removeProperty("user-select"))},[]);t.useEffect(()=>{o||(r.current={dragging:!1,startX:0,startY:0,dx:0,dy:0})},[o]),t.useEffect(()=>{if(!(!o||!e.blockScroll))return Te({variableName:F("scrollbar.width").name}),()=>{ve({variableName:F("scrollbar.width").name})}},[o,e.blockScroll]),t.useEffect(()=>{if(m){if(e.autoZIndex){let n=(e.baseZIndex??0)+(M.config?.zIndex?.modal??1100);s&&E.set("modal",s,n),E.set("modal",m,n)}return()=>{e.autoZIndex&&(s&&E.clear(s),E.clear(m))}}},[m,s,e.autoZIndex,e.baseZIndex,M.config?.zIndex?.modal]);let b=f?{"data-maximized":""}:{},le={id:d,"data-scope":"dialog","data-part":"root",...o?{"data-open":""}:{"data-closed":""},...b},ce=e.modal!==!1?{"data-modal":""}:{},se={"data-scope":"dialog","data-part":"positioner","data-position":e.position,"data-scroll-behavior":e.scrollBehavior,...o?{"data-open":""}:{"data-closed":""},...b,...ce,onPointerDown:te,onPointerUp:ne,ref:I},ie={type:"button","data-scope":"dialog","data-part":"trigger","aria-haspopup":"dialog","aria-expanded":o,"aria-controls":d,...o?{"data-popup-open":""}:{},onClick:X,ref:q},ue={"data-scope":"dialog","data-part":"portal"},de={"data-scope":"dialog","data-part":"backdrop",...o?{"data-open":""}:{"data-closed":""},onPointerDown:$,onPointerUp:ee,ref:B},fe={id:d,role:"dialog","aria-labelledby":d+"_header",tabIndex:-1,"data-scope":"dialog","data-part":"popup","data-position":e.position,...o?{"data-open":""}:{"data-closed":""},...b,...e.draggable?{"data-draggable":""}:{},onPointerMove:oe,onPointerUp:re,ref:z},me={"data-scope":"dialog","data-part":"header",id:d+"_header",...e.draggable?{style:{cursor:"move"}}:{},onPointerDown:ae},pe={"data-scope":"dialog","data-part":"header-actions"},ge={"data-scope":"dialog","data-part":"title"},Re={"data-scope":"dialog","data-part":"maximizable",...f?{"data-maximized":""}:{"data-minimized":""},ref:j,onClick:Y},be={"data-scope":"dialog","data-part":"close",ref:W,onClick:p},Ee={"data-scope":"dialog","data-part":"content",...b},Pe={"data-scope":"dialog","data-part":"footer"};return{state:{open:o,maximized:f,trapped:!!e.trapped,popupElement:w,positionerElement:m,backdropElement:s},focusTrap:D,setPopupRef:z,setPositionerRef:I,setBackdropRef:B,rootProps:le,positionerProps:se,triggerProps:ie,portalProps:ue,backdropProps:de,popupProps:fe,headerProps:me,headerActionsProps:pe,titleProps:ge,maximizableProps:Re,closeProps:be,contentProps:Ee,footerProps:Pe,toggle:X,open:G,close:p,toggleMaximized:Y,onOpenComplete:J,onCloseComplete:Q}}});export{V as defaultProps,Be as useDialog};
@@ -144,6 +144,7 @@ export declare const useDialog: (inProps?: unknown) => import("@primereact/types
144
144
  };
145
145
  triggerProps: {
146
146
  onClick: () => void;
147
+ ref: (node: HTMLElement | null) => void;
147
148
  'data-popup-open'?: "" | undefined;
148
149
  type: "button";
149
150
  'data-scope': string;
@@ -181,6 +182,7 @@ export declare const useDialog: (inProps?: unknown) => import("@primereact/types
181
182
  id: string | undefined;
182
183
  role: "dialog";
183
184
  'aria-labelledby': string;
185
+ tabIndex: -1;
184
186
  'data-scope': string;
185
187
  'data-part': string;
186
188
  'data-position': "center" | "top" | "left" | "right" | "bottom" | "topleft" | "topright" | "bottomleft" | "bottomright" | undefined;
@@ -194,6 +196,7 @@ export declare const useDialog: (inProps?: unknown) => import("@primereact/types
194
196
  id: string | undefined;
195
197
  role: "dialog";
196
198
  'aria-labelledby': string;
199
+ tabIndex: -1;
197
200
  'data-scope': string;
198
201
  'data-part': string;
199
202
  'data-position': "center" | "top" | "left" | "right" | "bottom" | "topleft" | "topright" | "bottomleft" | "bottomright" | undefined;
@@ -207,6 +210,7 @@ export declare const useDialog: (inProps?: unknown) => import("@primereact/types
207
210
  id: string | undefined;
208
211
  role: "dialog";
209
212
  'aria-labelledby': string;
213
+ tabIndex: -1;
210
214
  'data-scope': string;
211
215
  'data-part': string;
212
216
  'data-position': "center" | "top" | "left" | "right" | "bottom" | "topleft" | "topright" | "bottomleft" | "bottomright" | undefined;
@@ -220,6 +224,7 @@ export declare const useDialog: (inProps?: unknown) => import("@primereact/types
220
224
  id: string | undefined;
221
225
  role: "dialog";
222
226
  'aria-labelledby': string;
227
+ tabIndex: -1;
223
228
  'data-scope': string;
224
229
  'data-part': string;
225
230
  'data-position': "center" | "top" | "left" | "right" | "bottom" | "topleft" | "topright" | "bottomleft" | "bottomright" | undefined;
package/divider/index.mjs CHANGED
@@ -1 +1 @@
1
- import{withHeadless as r}from"@primereact/core/headless";var e={};var d=r({name:"useDivider",defaultProps:e,setup({props:t}){return{rootProps:{"data-scope":"divider","data-part":"root",role:"separator","aria-orientation":t.orientation,"data-orientation":t.orientation,"data-align":t.align},contentProps:{"data-scope":"divider","data-part":"content"}}}});export{e as defaultProps,d as useDivider};
1
+ import{withHeadless as o}from"@primereact/core/headless";var e={align:void 0,orientation:"horizontal",type:"solid"};var d=o({name:"useDivider",defaultProps:e,setup({props:t}){return{rootProps:{"data-scope":"divider","data-part":"root",role:"separator","aria-orientation":t.orientation,"data-orientation":t.orientation,"data-align":t.align},contentProps:{"data-scope":"divider","data-part":"content"}}}});export{e as defaultProps,d as useDivider};
package/drawer/index.mjs CHANGED
@@ -1 +1 @@
1
- import{withHeadless as G}from"@primereact/core/headless";import{useFocusTrap as J}from"@primereact/headless/focustrap";import{useEventListener as v,useUnmountEffect as Q}from"@primereact/hooks";import{useControlledState as W}from"@primereact/hooks/use-controlled-state";import{$dt as y}from"@primeuix/styled";import{blockBodyScroll as X,focus as p,toElement as E,unblockBodyScroll as Y,ZIndex as u}from"@primeuix/utils";import*as n from"react";var x={open:void 0,defaultOpen:void 0,trapped:!0,blockScroll:!1,dismissable:!0,baseZIndex:0,autoZIndex:!0,position:"left",onOpenChange:void 0,onExitComplete:void 0};var se=G({name:"useDrawer",defaultProps:x,setup:({props:t,id:d,elementRef:R,$primereact:b})=>{let[a,k]=W({value:t.open,defaultValue:t.defaultOpen,onChange:t.onOpenChange}),[r,H]=n.useState(null),[l,g]=n.useState(null),s=n.useRef(null),m=n.useRef(null),i=n.useRef(null),M=n.useRef(null),f=n.useRef(null),D={open:!!a,trapped:!!t.trapped,popupElement:r,backdropElement:l},w=J({trapped:!!t.trapped&&!!r,autoFocus:!1});Q(()=>{t.autoZIndex&&s.current&&u.clear(s.current)});let O=n.useCallback(e=>{let o=E(e)??null;o!==s.current&&(s.current=o,w.containerRef.current=o,H(o))},[]),S=n.useCallback(e=>{let o=E(e)??null;o!==m.current&&(m.current=o,g(o))},[]),h=n.useCallback(e=>{let o=E(e)??null;o!==i.current&&(i.current=o)},[]),c=()=>{k([!1,{value:!1}])},C=()=>{let e=!a;k([e,{value:e}])},P=n.useCallback(()=>{if(!s.current)return;let e=s.current.querySelector("[autoFocus]");e?p(e):i.current&&p(i.current)},[]),I=n.useCallback(()=>{t.onExitComplete?.()},[t.onExitComplete]);n.useEffect(()=>{a?(f.current=document.activeElement,Z(),t.dismissable&&K(),t.blockScroll&&X({variableName:y("scrollbar.width").name})):(B(),U(),t.blockScroll&&Y({variableName:y("scrollbar.width").name}),f.current&&(p(f.current),f.current=null))},[a]),n.useEffect(()=>{if(r){if(t.autoZIndex){let e=(t.baseZIndex??0)+(b.config?.zIndex?.modal??1100);l&&u.set("modal",l,e),u.set("modal",r,e)}return()=>{t.autoZIndex&&(l&&u.clear(l),u.clear(r))}}},[r,l,t.autoZIndex,t.baseZIndex,b.config?.zIndex?.modal]);let[Z,B]=v({type:"keydown",listener:e=>N(e)}),[K,U]=v({type:"click",listener:e=>{F(e)&&c()}}),F=e=>R.current&&!R.current.contains(e.target),N=e=>{e.code==="Escape"&&c()},L=e=>{M.current=e.target},T=()=>{t.dismissable&&m.current===M.current&&c()},j={id:d,"data-scope":"drawer","data-part":"root",...a?{"data-open":""}:{"data-closed":""},"data-position":t.position},z={"data-scope":"drawer","data-part":"trigger",type:"button","aria-expanded":a??!1,"aria-controls":d??"",onClick:C},q={ref:S,onMouseDown:L,onMouseUp:T},V={"data-scope":"drawer","data-part":"close",type:"button",ref:h,onClick:c},_={id:d+"_header","data-scope":"drawer","data-part":"header"},A={id:d,ref:O,role:"complementary","aria-modal":!0,"data-scope":"drawer","data-part":"root","data-position":t.position,...a&&{"data-open":""}};return{state:D,focusTrap:w,triggerProps:z,rootProps:j,backdropProps:q,closeProps:V,headerProps:_,popupProps:A,close:c,onOpenStateChange:C,onMaskMouseDown:L,onMaskMouseUp:T,onOpenComplete:P,onCloseComplete:I}}});export{x as defaultProps,se as useDrawer};
1
+ import{withHeadless as A}from"@primereact/core/headless";import{useFocusTrap as G}from"@primereact/headless/focustrap";import{useEventListener as T,useUnmountEffect as J}from"@primereact/hooks";import{useControlledState as Q}from"@primereact/hooks/use-controlled-state";import{$dt as v}from"@primeuix/styled";import{blockBodyScroll as W,focus as X,toElement as f,unblockBodyScroll as Y,ZIndex as c}from"@primeuix/utils";import*as n from"react";var L={open:void 0,defaultOpen:void 0,trapped:!0,blockScroll:!1,dismissable:!0,baseZIndex:0,autoZIndex:!0,position:"left",onOpenChange:void 0,onExitComplete:void 0};var le=A({name:"useDrawer",defaultProps:L,setup:({props:t,id:u,elementRef:p,$primereact:E})=>{let[a,R]=Q({value:t.open,defaultValue:t.defaultOpen,onChange:t.onOpenChange}),[r,y]=n.useState(null),[s,H]=n.useState(null),d=n.useRef(null),m=n.useRef(null),b=n.useRef(null),k=n.useRef(null),i=n.useRef(null),D={open:!!a,trapped:!!t.trapped,popupElement:r,backdropElement:s},M=G({trapped:!!t.trapped&&!!r,autoFocus:!0});J(()=>{t.autoZIndex&&d.current&&c.clear(d.current)});let g=n.useCallback(e=>{let o=f(e)??null;o!==d.current&&(d.current=o,M.containerRef.current=o,y(o))},[]),O=n.useCallback(e=>{let o=f(e)??null;o!==m.current&&(m.current=o,H(o))},[]),h=n.useCallback(e=>{let o=f(e)??null;o!==b.current&&(b.current=o)},[]),l=()=>{R([!1,{value:!1}])},w=()=>{let e=!a;R([e,{value:e}])},I=n.useCallback(()=>{},[]),P=n.useCallback(()=>{t.onExitComplete?.()},[t.onExitComplete]),[S,Z]=T({type:"keydown",listener:e=>N(e)}),[B,K]=T({type:"click",listener:e=>{U(e)&&l()}});n.useEffect(()=>{a?(i.current=document.activeElement,S(),t.dismissable&&B(),t.blockScroll&&W({variableName:v("scrollbar.width").name})):(Z(),K(),t.blockScroll&&Y({variableName:v("scrollbar.width").name}),i.current&&(X(i.current),i.current=null))},[a]),n.useEffect(()=>{if(r){if(t.autoZIndex){let e=(t.baseZIndex??0)+(E.config?.zIndex?.modal??1100);s&&c.set("modal",s,e),c.set("modal",r,e)}return()=>{t.autoZIndex&&(s&&c.clear(s),c.clear(r))}}},[r,s,t.autoZIndex,t.baseZIndex,E.config?.zIndex?.modal]);let U=e=>p.current&&!p.current.contains(e.target),N=e=>{e.code==="Escape"&&l()},C=e=>{k.current=e.target},x=()=>{t.dismissable&&m.current===k.current&&l()},j={id:u,"data-scope":"drawer","data-part":"root",...a?{"data-open":""}:{"data-closed":""},"data-position":t.position},z={"data-scope":"drawer","data-part":"trigger",type:"button","aria-expanded":a??!1,"aria-controls":u??"",onClick:w},F={ref:O,onMouseDown:C,onMouseUp:x},V={"data-scope":"drawer","data-part":"close",type:"button",ref:h,onClick:l},_={id:u+"_header","data-scope":"drawer","data-part":"header"},q={id:u,ref:g,role:"complementary","aria-modal":!0,tabIndex:-1,"data-scope":"drawer","data-part":"root","data-position":t.position,...a&&{"data-open":""}};return{state:D,focusTrap:M,triggerProps:z,rootProps:j,backdropProps:F,closeProps:V,headerProps:_,popupProps:q,close:l,onOpenStateChange:w,onMaskMouseDown:C,onMaskMouseUp:x,onOpenComplete:I,onCloseComplete:P}}});export{L as defaultProps,le as useDrawer};
@@ -71,6 +71,7 @@ export declare const useDrawer: (inProps?: unknown) => import("@primereact/types
71
71
  } | null) => void;
72
72
  role: "complementary";
73
73
  'aria-modal': true;
74
+ tabIndex: -1;
74
75
  'data-scope': string;
75
76
  'data-part': string;
76
77
  'data-position': "top" | "left" | "right" | "bottom" | "full" | undefined;
@@ -1 +1 @@
1
- import{withHeadless as ae}from"@primereact/core/headless";import{$t as ne}from"@primereact/core/locale";import{addClass as ie,isNotEmpty as R,removeClass as I}from"@primeuix/utils";import*as l from"react";var k={name:void 0,url:void 0,multiple:!1,accept:void 0,disabled:!1,auto:!1,maxFileSize:void 0,fileLimit:void 0,withCredentials:!1,customUpload:!1,invalidFileLimitMessage:"Maximum number of files exceeded, limit is {0} at most.",invalidFileSizeMessage:"{0}: Invalid file size, file size should be smaller than {1}.",invalidFileTypeMessage:"{0}: Invalid file type, allowed file types: {1}.",uploadHandler:void 0,onSelect:void 0,onChange:void 0,onBeforeUpload:void 0,onUpload:void 0,onError:void 0,onProgress:void 0,onBeforeSend:void 0,onClear:void 0,onRemove:void 0};var Fe=ae({name:"useFileUpload",defaultProps:k,setup({props:e}){let f=l.useRef(null),c=l.useRef(null),u=l.useRef(0),m=l.useRef(null),B=l.useCallback(t=>{f.current=t},[]),A=l.useCallback(t=>{c.current=t},[]),[s,g]=l.useState([]),[p,S]=l.useState([]),[F,v]=l.useState(0),d=l.useMemo(()=>R(s),[s]),O=l.useMemo(()=>R(p),[p]),N={files:s,progress:F,uploadedFiles:p},T=t=>{let a=m.current;a&&(a.onreadystatechange=null,a.abort(),m.current=null,t&&v(0))},$=()=>T(!0);l.useEffect(()=>()=>{T(!1)},[]);let M=()=>{d&&L(s)},E=t=>{let a=o=>"dataTransfer"in o&&!!o.dataTransfer;d&&g([]);let n=[];e.multiple&&(n=s?[...s]:[]);let r=a(t)?t.dataTransfer?.files:t.target?.files;if(!r)return;let i=[];for(let o of Array.from(r)){if(j(o)||D())continue;let w=X(o);if(w.length){i.push({file:o,errors:w});continue}n.push(o)}if(g(n),e.fileLimit){let o=K();o&&i.push({errors:[o]})}i.length&&e.onError&&e.onError({type:"validation",rejectedFiles:i}),e.onChange&&e.onChange({acceptedFiles:n,rejectedFiles:i}),e.auto&&R(n)&&!D()&&L(n),e.onSelect&&e.onSelect({originalEvent:t,files:n}),b()},P=()=>{f.current&&f.current.click()},L=(t=s)=>{let a=t??s??[];if(e.customUpload)e.fileLimit&&(u.current+=a.length),e.uploadHandler&&e.uploadHandler({files:a,options:{clear:h,props:e}});else{let n=new XMLHttpRequest;m.current=n;let r=new FormData;e.onBeforeUpload&&e.onBeforeUpload({xhr:n,files:a});for(let i of a)r.append(e.name,i,i.name);n.upload.addEventListener("progress",i=>{let o=i.lengthComputable?Math.round(i.loaded*100/i.total):0;i.lengthComputable&&v(o),e.onProgress?.({originalEvent:i,progress:o})}),n.onreadystatechange=()=>{n.readyState===4&&(v(0),m.current=null,n.status>=200&&n.status<300?(e.fileLimit&&(u.current+=a.length),e.onUpload&&e.onUpload({xhr:n,files:a}),S(i=>[...i,...a])):e.onError&&e.onError({type:"upload",reason:"upload",xhr:n,files:a}),h())},e.url&&(n.open("POST",e.url,!0),e.onBeforeSend&&e.onBeforeSend({xhr:n,formData:r}),n.withCredentials=!!e.withCredentials,n.send(r))}},h=()=>{g([]),e.onClear&&e.onClear(),e.onChange&&e.onChange({acceptedFiles:[],rejectedFiles:[]}),b()},j=t=>{if(s&&s.length){for(let a of s)if(a.name+a.type+a.size===t.name+t.type+t.size)return!0}return!1},X=t=>{let a=[];return e.accept&&!q(t)&&a.push({reason:"fileType",message:e.invalidFileTypeMessage.replace("{0}",t.name).replace("{1}",e.accept)}),e.maxFileSize&&t.size>e.maxFileSize&&a.push({reason:"fileSize",message:e.invalidFileSizeMessage.replace("{0}",t.name).replace("{1}",x(e.maxFileSize))}),a},q=t=>{let a=e.accept.split(",").map(n=>n.trim());for(let n of a)if(V(n)?C(t.type)===C(n):t.type==n||W(t).toLowerCase()===n.toLowerCase())return!0;return!1},C=t=>t.substring(0,t.indexOf("/")),V=t=>t.indexOf("*")!==-1,W=t=>"."+t.name.split(".").pop(),y=t=>{!e.disabled&&(!d||e.multiple)&&(t.stopPropagation(),t.preventDefault())},H=t=>{!e.disabled&&(!d||e.multiple)&&(ie(c.current,"p-fileupload-highlight"),c.current.setAttribute("data-highlight","true"),t.stopPropagation(),t.preventDefault())},z=()=>{e.disabled||(I(c.current,"p-fileupload-highlight"),c.current.setAttribute("data-highlight","false"))},U=t=>{if(!e.disabled){I(c.current,"p-fileupload-highlight"),c.current.setAttribute("data-highlight","false"),t.stopPropagation(),t.preventDefault();let a=t.dataTransfer?.files;(e.multiple||a&&a.length===1)&&E(t)}},G=t=>{b();let a=[...s],n=s[t];a.splice(t,1),g(a),e.onRemove&&e.onRemove({file:n}),e.onChange&&e.onChange({acceptedFiles:a,rejectedFiles:[]})},J=t=>{let a=[...p];a.splice(t,1),S(a),e.onRemove&&e.onRemove({file:s[t]})},b=()=>{f.current&&(f.current.value="")},x=t=>{let r=ne("fileSizeTypes");if(t===0)return`0 ${r[0]}`;let i=Math.floor(Math.log(t)/Math.log(1024));return`${parseFloat((t/Math.pow(1024,i)).toFixed(3))} ${r[i]}`},D=()=>e.fileLimit&&e.fileLimit<s.length+u.current,K=()=>D()?{reason:"fileLimit",message:e.invalidFileLimitMessage.replace("{0}",e.fileLimit.toString())}:null,Q={"data-scope":"fileupload","data-part":"root",...e.disabled&&{"data-disabled":""}},Y={ref:B,"data-scope":"fileupload","data-part":"text",type:"file",accept:e.accept,multiple:e.multiple,disabled:e.disabled,onChange:E},Z={ref:A,"data-scope":"fileupload","data-part":"content",role:"region","aria-busy":F>0&&F<100,onDragEnter:y,onDragOver:H,onDragLeave:z,onDrop:U},_={"data-scope":"fileupload","data-part":"choose",onClick:P,...e.disabled&&{"data-disabled":""}},ee={"data-scope":"fileupload","data-part":"upload",onClick:M,disabled:!d,...e.disabled&&{"data-disabled":""}},te={"data-scope":"fileupload","data-part":"clear",onClick:h,disabled:!d,...e.disabled&&{"data-disabled":""}};return{state:N,uploadedFileCount:u,hasFiles:d,hasUploadedFiles:O,rootProps:Q,chooseProps:_,uploadProps:ee,clearProps:te,inputProps:Y,contentProps:Z,fileRemoveProps:{"data-scope":"fileupload","data-part":"fileRemove"},fileProps:{"data-scope":"fileupload","data-part":"file"},fileThumbnailProps:{"data-scope":"fileupload","data-part":"fileThumbnail"},fileInfoProps:{"data-scope":"fileupload","data-part":"fileInfo"},fileNameProps:{"data-scope":"fileupload","data-part":"fileName"},fileSizeProps:{"data-scope":"fileupload","data-part":"fileSize"},fileListProps:{"data-scope":"fileupload","data-part":"fileList"},upload:M,cancelUpload:$,onFileSelect:E,choose:P,uploader:L,clear:h,remove:G,removeUploadedFile:J,formatSize:x,onDragEnter:y,onDragOver:H,onDragLeave:z,onDrop:U}}});export{k as defaultProps,Fe as useFileUpload};
1
+ import{withHeadless as ae}from"@primereact/core/headless";import{$t as ne}from"@primereact/core/locale";import{addClass as ie,isNotEmpty as D,removeClass as k}from"@primeuix/utils";import*as l from"react";var w={name:void 0,url:void 0,multiple:!1,accept:void 0,disabled:!1,auto:!1,maxFileSize:void 0,fileLimit:void 0,withCredentials:!1,customUpload:!1,invalidFileLimitMessage:"Maximum number of files exceeded, limit is {0} at most.",invalidFileSizeMessage:"{0}: Invalid file size, file size should be smaller than {1}.",invalidFileTypeMessage:"{0}: Invalid file type, allowed file types: {1}.",uploadHandler:void 0,onSelect:void 0,onChange:void 0,onBeforeUpload:void 0,onUpload:void 0,onError:void 0,onProgress:void 0,onBeforeSend:void 0,onClear:void 0,onRemove:void 0};var ve=ae({name:"useFileUpload",defaultProps:w,setup({props:e}){let f=l.useRef(null),c=l.useRef(null),u=l.useRef(0),m=l.useRef(null),I=l.useCallback(t=>{f.current=t},[]),B=l.useCallback(t=>{c.current=t},[]),[s,g]=l.useState([]),[p,R]=l.useState([]),[v,F]=l.useState(0),d=l.useMemo(()=>D(s),[s]),A=l.useMemo(()=>D(p),[p]),O={files:s,progress:v,uploadedFiles:p},S=t=>{let n=m.current;n&&(n.onreadystatechange=null,n.abort(),m.current=null,t&&F(0))},N=()=>S(!0);l.useEffect(()=>()=>{S(!1)},[]);let T=()=>{d&&L(s)},E=t=>{let n=o=>"dataTransfer"in o&&!!o.dataTransfer;d&&g([]);let a=[];e.multiple&&(a=s?[...s]:[]);let r=n(t)?t.dataTransfer?.files:t.target?.files;if(!r)return;let i=[];for(let o of Array.from(r)){if($(o,a))continue;if(e.fileLimit!=null&&a.length+u.current>=e.fileLimit){i.push({file:o,errors:[K()]});continue}let x=j(o);if(x.length){i.push({file:o,errors:x});continue}a.push(o)}g(a),i.length&&e.onError&&e.onError({type:"validation",rejectedFiles:i}),e.onChange&&e.onChange({acceptedFiles:a,rejectedFiles:i}),e.auto&&D(a)&&!J(a)&&L(a),e.onSelect&&e.onSelect({originalEvent:t,files:a}),b()},M=()=>{f.current&&f.current.click()},L=(t=s)=>{let n=t??s??[];if(e.customUpload)e.fileLimit!=null&&(u.current+=n.length),e.uploadHandler&&e.uploadHandler({files:n,options:{clear:h,props:e}});else{let a=new XMLHttpRequest;m.current=a;let r=new FormData;e.onBeforeUpload&&e.onBeforeUpload({xhr:a,files:n});for(let i of n)r.append(e.name,i,i.name);a.upload.addEventListener("progress",i=>{let o=i.lengthComputable?Math.round(i.loaded*100/i.total):0;i.lengthComputable&&F(o),e.onProgress?.({originalEvent:i,progress:o})}),a.onreadystatechange=()=>{a.readyState===4&&(F(0),m.current=null,a.status>=200&&a.status<300?(e.fileLimit!=null&&(u.current+=n.length),e.onUpload&&e.onUpload({xhr:a,files:n}),R(i=>[...i,...n])):e.onError&&e.onError({type:"upload",reason:"upload",xhr:a,files:n}),h())},e.url&&(a.open("POST",e.url,!0),e.onBeforeSend&&e.onBeforeSend({xhr:a,formData:r}),a.withCredentials=!!e.withCredentials,a.send(r))}},h=()=>{g([]),e.onClear&&e.onClear(),e.onChange&&e.onChange({acceptedFiles:[],rejectedFiles:[]}),b()},$=(t,n=s)=>n.some(a=>a.name+a.type+a.size===t.name+t.type+t.size),j=t=>{let n=[];return e.accept&&!X(t)&&n.push({reason:"fileType",message:e.invalidFileTypeMessage.replace("{0}",t.name).replace("{1}",e.accept)}),e.maxFileSize&&t.size>e.maxFileSize&&n.push({reason:"fileSize",message:e.invalidFileSizeMessage.replace("{0}",t.name).replace("{1}",U(e.maxFileSize))}),n},X=t=>{let n=e.accept.split(",").map(a=>a.trim());for(let a of n)if(q(a)?P(t.type)===P(a):t.type==a||V(t).toLowerCase()===a.toLowerCase())return!0;return!1},P=t=>t.substring(0,t.indexOf("/")),q=t=>t.indexOf("*")!==-1,V=t=>"."+t.name.split(".").pop(),C=t=>{!e.disabled&&(!d||e.multiple)&&(t.stopPropagation(),t.preventDefault())},y=t=>{!e.disabled&&(!d||e.multiple)&&(ie(c.current,"p-fileupload-highlight"),c.current.setAttribute("data-highlight","true"),t.stopPropagation(),t.preventDefault())},H=()=>{e.disabled||(k(c.current,"p-fileupload-highlight"),c.current.setAttribute("data-highlight","false"))},z=t=>{if(!e.disabled){k(c.current,"p-fileupload-highlight"),c.current.setAttribute("data-highlight","false"),t.stopPropagation(),t.preventDefault();let n=t.dataTransfer?.files;(e.multiple||n&&n.length===1)&&E(t)}},W=t=>{b();let n=[...s],a=s[t];n.splice(t,1),g(n),e.onRemove&&e.onRemove({file:a}),e.onChange&&e.onChange({acceptedFiles:n,rejectedFiles:[]})},G=t=>{let n=[...p];n.splice(t,1),R(n),e.onRemove&&e.onRemove({file:s[t]})},b=()=>{f.current&&(f.current.value="")},U=t=>{let r=ne("fileSizeTypes");if(t===0)return`0 ${r[0]}`;let i=Math.floor(Math.log(t)/Math.log(1024));return`${parseFloat((t/Math.pow(1024,i)).toFixed(3))} ${r[i]}`},J=(t=s)=>e.fileLimit!=null&&e.fileLimit<t.length+u.current,K=()=>({reason:"fileLimit",message:e.invalidFileLimitMessage.replace("{0}",e.fileLimit.toString())}),Q={"data-scope":"fileupload","data-part":"root",...e.disabled&&{"data-disabled":""}},Y={ref:I,"data-scope":"fileupload","data-part":"text",type:"file",accept:e.accept,multiple:e.multiple,disabled:e.disabled,onChange:E},Z={ref:B,"data-scope":"fileupload","data-part":"content",role:"region","aria-busy":v>0&&v<100,onDragEnter:C,onDragOver:y,onDragLeave:H,onDrop:z},_={"data-scope":"fileupload","data-part":"choose",onClick:M,...e.disabled&&{"data-disabled":""}},ee={"data-scope":"fileupload","data-part":"upload",onClick:T,disabled:!d,...e.disabled&&{"data-disabled":""}},te={"data-scope":"fileupload","data-part":"clear",onClick:h,disabled:!d,...e.disabled&&{"data-disabled":""}};return{state:O,uploadedFileCount:u,hasFiles:d,hasUploadedFiles:A,rootProps:Q,chooseProps:_,uploadProps:ee,clearProps:te,inputProps:Y,contentProps:Z,fileRemoveProps:{"data-scope":"fileupload","data-part":"fileRemove"},fileProps:{"data-scope":"fileupload","data-part":"file"},fileThumbnailProps:{"data-scope":"fileupload","data-part":"fileThumbnail"},fileInfoProps:{"data-scope":"fileupload","data-part":"fileInfo"},fileNameProps:{"data-scope":"fileupload","data-part":"fileName"},fileSizeProps:{"data-scope":"fileupload","data-part":"fileSize"},fileListProps:{"data-scope":"fileupload","data-part":"fileList"},upload:T,cancelUpload:N,onFileSelect:E,choose:M,uploader:L,clear:h,remove:W,removeUploadedFile:G,formatSize:U,onDragEnter:C,onDragOver:y,onDragLeave:H,onDrop:z}}});export{w as defaultProps,ve as useFileUpload};
@@ -1 +1 @@
1
- import{withHeadless as P}from"@primereact/core/headless";import{focus as i,getFirstFocusableElement as d,getLastFocusableElement as S,isFocusableElement as y,toElement as a}from"@primeuix/utils";import{isNotEmpty as w}from"@primeuix/utils/object";import*as s from"react";var k={trapped:!0,autoFocus:!0,initialFocusRef:void 0,onEscape:void 0,onTabFirst:void 0,onTabLast:void 0};var j=P({name:"useFocusTrap",defaultProps:k,setup:({props:h})=>{let{trapped:c,autoFocus:H,initialFocusRef:p,onEscape:R,onTabFirst:E,onTabLast:b}=h,L=s.useRef(null),F=s.useRef(null),f=s.useRef(null),u=s.useRef(null),T=s.useRef(null),r=e=>`:not([data-focus-guard])${e??""}`,x=s.useCallback(e=>{if(!c)return;if(E){E(e);return}let t=a(u),l=e.relatedTarget,n=a(F);if(!t||!n)return;let o=l===n||!t.contains(l)?d(t,r()):n;o&&i(o)},[c,E]),C=s.useCallback(e=>{if(!c)return;if(b){b(e);return}let t=a(u),l=e.relatedTarget,n=a(L);if(!t||!n)return;let o=l===n||!t.contains(l)?S(t,r()):n;o&&i(o)},[c,b]),M=s.useCallback(()=>{if(!H)return;let e=a(u);if(!e)return;if(p?.current){i(a(p));return}let t=d(e,`[autofocus]${r()}, [data-autofocus]${r()}`);t||(t=d(e,r())),t&&i(t)},[H,p]),m=s.useCallback(e=>{e.key==="Escape"&&R?.(e)},[R]),v=s.useCallback(()=>{let e=a(u);!e||!c||!(e instanceof Element)||(T.current=document.activeElement,e.setAttribute("data-focus-trap",""),e.addEventListener("keydown",m),f.current=new MutationObserver(t=>{for(let l of t)if(l.type==="childList"&&!e.contains(document.activeElement)){let n=l.nextSibling,o=null;for(;n&&!(n instanceof Element&&(y(n)?o=y(n,r(""))?n:d(e,r("")):o=d(n,`[autofocus]${r()}, [data-autofocus]${r()}`),w(o)));)n=n.nextSibling;o&&i(o)}}),f.current.observe(e,{childList:!0}))},[c,m]),g=s.useCallback(()=>{let e=a(u);e&&(e.removeAttribute("data-focus-trap"),e.removeEventListener("keydown",m)),f.current&&(f.current.disconnect(),f.current=null);let t=T.current;t?.isConnected&&i(t,{preventScroll:!0}),T.current=null},[m]);return s.useEffect(()=>{if(!(!c||!a(u)))return v(),M(),()=>g()},[c,v,M,g]),{containerRef:u,firstHiddenElementRef:L,lastHiddenElementRef:F,firstHiddenProps:{role:"presentation","aria-hidden":!0,"data-focus-guard":"",onFocus:x},lastHiddenProps:{role:"presentation","aria-hidden":!0,"data-focus-guard":"",onFocus:C}}}});export{k as defaultProps,j as useFocusTrap};
1
+ import{withHeadless as P}from"@primereact/core/headless";import{focus as f,getFirstFocusableElement as m,getLastFocusableElement as w,isFocusableElement as h,toElement as c}from"@primeuix/utils";import{isNotEmpty as A}from"@primeuix/utils/object";import*as s from"react";var k={trapped:!0,autoFocus:!0,initialFocusRef:void 0,onEscape:void 0,onTabFirst:void 0,onTabLast:void 0};var D=P({name:"useFocusTrap",defaultProps:k,setup:({props:S})=>{let{trapped:l,autoFocus:H,initialFocusRef:b,onEscape:R,onTabFirst:p,onTabLast:E}=S,L=s.useRef(null),F=s.useRef(null),i=s.useRef(null),u=s.useRef(null),T=s.useRef(null),a=e=>`:not([data-focus-guard])${e??""}`,C=s.useCallback(e=>{if(!l)return;if(p){p(e);return}let n=c(u),r=e.relatedTarget,t=c(F);if(!n||!t)return;let o=r===t||!n.contains(r)?m(n,a()):t;o&&f(o)},[l,p]),x=s.useCallback(e=>{if(!l)return;if(E){E(e);return}let n=c(u),r=e.relatedTarget,t=c(L);if(!n||!t)return;let o=r===t||!n.contains(r)?w(n,a()):t;o&&f(o)},[l,E]),M=s.useCallback(()=>{let e=c(u);if(!e)return;let n=document.activeElement;if(!!n&&n!==e&&e.contains(n)&&!n.hasAttribute("data-focus-guard"))return;let t=c(b)??e.querySelector(`[autofocus]${a()},[data-autofocus]${a()}`)??m(e,a())??e;f(t,{preventScroll:!0})},[b]),v=s.useCallback(()=>{H&&M()},[H,M]),d=s.useCallback(e=>{e.key==="Escape"&&R?.(e)},[R]),g=s.useCallback(()=>{let e=c(u);!e||!l||!(e instanceof Element)||(T.current=document.activeElement,e.setAttribute("data-focus-trap",""),e.addEventListener("keydown",d),i.current=new MutationObserver(n=>{for(let r of n)if(r.type==="childList"&&!e.contains(document.activeElement)){let t=r.nextSibling,o=null;for(;t&&!(t instanceof Element&&(h(t)?o=h(t,a(""))?t:m(e,a("")):o=m(t,`[autofocus]${a()}, [data-autofocus]${a()}`),A(o)));)t=t.nextSibling;o&&f(o)}}),i.current.observe(e,{childList:!0}))},[l,d]),y=s.useCallback(()=>{let e=c(u);e&&(e.removeAttribute("data-focus-trap"),e.removeEventListener("keydown",d)),i.current&&(i.current.disconnect(),i.current=null);let n=T.current;n?.isConnected&&f(n,{preventScroll:!0}),T.current=null},[d]);return s.useEffect(()=>{if(!(!l||!c(u)))return g(),v(),()=>y()},[l,g,v,y]),{containerRef:u,firstHiddenElementRef:L,lastHiddenElementRef:F,firstHiddenProps:{role:"presentation","aria-hidden":!0,"data-focus-guard":"",onFocus:C},lastHiddenProps:{role:"presentation","aria-hidden":!0,"data-focus-guard":"",onFocus:x}}}});export{k as defaultProps,D as useFocusTrap};
@@ -1 +1 @@
1
- import{withHeadless as xt}from"@primereact/core/headless";import*as e from"react";var at={context:void 0,normalScale:1,zoomedScale:3};var Rt=xt({name:"useGalleryItem",defaultProps:at,setup:({props:ot,elementRef:n})=>{let{context:c,normalScale:d=1,zoomedScale:y=3}=ot,[m,it]=e.useState(-1),[R,O]=e.useState(!1),[Y,C]=e.useState({x:0,y:0}),[g,T]=e.useState(1),[x,B]=e.useState(0),[I,j]=e.useState({x:1,y:1}),[$,F]=e.useState(!1),D=e.useRef(null),M=e.useRef(new Map),U=e.useRef({x:0,y:0}),N=e.useRef(0),z=e.useRef(0),H=e.useRef(1),q=e.useRef(!1),p=e.useRef(1),h=e.useRef({x:0,y:0}),L=e.useRef(!1),G=e.useRef({x:0,y:0}),k=e.useRef(!1),b=e.useRef(null);e.useLayoutEffect(()=>{if(c?.registerItem){let t=c.registerItem(D.current?.index??null);D.current=t,t.index!==m&&it(t.index)}return()=>{D.current?.unregister(),D.current=null}},[c]),e.useEffect(()=>{p.current=g},[g]),e.useEffect(()=>{h.current=Y},[Y]);let S=e.useCallback(()=>{if(!c?.contentRef.current||!n.current)return;let t=c?.contentRef.current.getBoundingClientRect(),r=n.current.firstElementChild;if(!r)return;let a=r.naturalWidth||r.offsetWidth,s=r.naturalHeight||r.offsetHeight;if(a===0||s===0)return;let l=Math.abs(x)%180===90;l&&([a,s]=[s,a]);let i=a/s,f=t.width/t.height,o,u;i>f?(o=Math.min(t.width*.99,a),u=o/i):(u=Math.min(t.height*.99,s),o=u*i),l?(r.style.width=`${u}px`,r.style.height=`${o}px`,n.current.style.width=`${u>0?u:"auto"}px`,n.current.style.height=`${o>0?o:"auto"}px`):(r.style.width=`${o}px`,r.style.height=`${u}px`,n.current.style.width=`${o>0?o:"auto"}px`,n.current.style.height=`${u>0?u:"auto"}px`),n.current.style.aspectRatio=`${a/s}`},[c?.contentRef,x]),P=e.useCallback(t=>{if(!c?.contentRef.current||!n.current)return{minX:0,maxX:0,minY:0,maxY:0};let r=c?.contentRef.current.getBoundingClientRect(),a=t!==void 0?t:p.current,s=n.current.firstElementChild;if(!s)return{minX:0,maxX:0,minY:0,maxY:0};let l=s.offsetWidth,i=s.offsetHeight;Math.abs(x)%180===90&&([l,i]=[i,l]);let o=l*a,u=i*a,v=r.width/2,E=r.height/2,X=o/2,w=u/2,ft=X>v?X-v:0,pt=X>v?-(X-v):0,dt=w>E?w-E:0,mt=w>E?-(w-E):0;return{minX:pt,maxX:ft,minY:mt,maxY:dt}},[c?.contentRef,x]),W=e.useCallback(()=>{T(y),n.current&&(n.current.style.cursor="zoom-out")},[y]),A=e.useCallback(()=>{T(d),C({x:0,y:0}),n.current&&(n.current.style.cursor="zoom-in")},[d]),K=()=>{F(!0),n.current&&(n.current.style.transition=""),B(t=>t-90)},V=()=>{F(!0),n.current&&(n.current.style.transition=""),B(t=>t+90)},_=()=>{j(t=>({...t,x:Math.sign(t.x)*-1}))},J=()=>{j(t=>({...t,y:Math.sign(t.y)*-1}))},Q=()=>{if(!n.current)return;let t=n.current.querySelector("img");if(!t||!t.src)return;let r=t.src;if(!/^(https?:|blob:|data:image\/)/i.test(r))return;let s=document.createElement("a");s.href=r;let l=r.split("/"),f=(l[l.length-1]||"").split(/[?#]/)[0].replace(/[\\/:*?"<>|]/g,"")||"image.jpg";s.download=f,s.target="_blank",s.rel="noopener",document.body.appendChild(s),s.click(),document.body.removeChild(s)},Z=e.useCallback(t=>{if(k.current){k.current=!1;return}if(p.current===d){if(n.current){let r=n.current.getBoundingClientRect(),a=r.width/2,s=r.height/2,l=t.clientX-r.left,i=t.clientY-r.top,f=a-l,o=s-i,u=f*(y-1),v=o*(y-1),E=P(y),X=Math.max(E.minX,Math.min(E.maxX,u)),w=Math.max(E.minY,Math.min(E.maxY,v));C({x:X,y:w})}W()}else A()},[d,y,P,W,A]),tt=e.useCallback(t=>{t.preventDefault()},[]),et=e.useCallback(t=>{t.currentTarget.setPointerCapture(t.pointerId),M.current.set(t.pointerId,{x:t.clientX,y:t.clientY}),U.current={x:t.clientX,y:t.clientY},t.pointerType==="touch"&&M.current.size>=2?(L.current=!1,z.current=0,H.current=p.current):p.current>1&&(t.pointerType==="mouse"||t.pointerType==="touch"&&M.current.size===1)&&(L.current=!0,G.current={x:t.clientX-h.current.x,y:t.clientY-h.current.y},k.current=!1)},[]),nt=e.useCallback(t=>{if(!M.current.has(t.pointerId)||!n.current)return;n.current.style.transition="none",t.pointerType==="mouse"&&!n.current.style.cursor&&(n.current.style.cursor=p.current>d?"zoom-out":"zoom-in"),M.current.set(t.pointerId,{x:t.clientX,y:t.clientY});let r=Array.from(M.current.values());if(r.length===2){let[a,s]=r,l=Math.hypot(s.x-a.x,s.y-a.y);if(q.current=!0,k.current=!0,z.current===0)z.current=l,H.current=p.current;else{let i=l/z.current,f=Math.max(d,Math.min(y,H.current*i)),o=P(f),u=Math.max(o.minX,Math.min(o.maxX,h.current.x)),v=Math.max(o.minY,Math.min(o.maxY,h.current.y));p.current=f,h.current={x:u,y:v},n.current.style.setProperty("--px-scale",`${f}`),n.current.style.setProperty("--px-position-x",`${u}px`),n.current.style.setProperty("--px-position-y",`${v}px`)}N.current=l}else if(r.length===1&&L.current){let a=r[0],s=a.x-G.current.x,l=a.y-G.current.y,i=P(p.current),f=Math.max(i.minX,Math.min(i.maxX,s)),o=Math.max(i.minY,Math.min(i.maxY,l));h.current={x:f,y:o},n.current.style.setProperty("--px-position-x",`${f}px`),n.current.style.setProperty("--px-position-y",`${o}px`),Math.hypot(a.x-U.current.x,a.y-U.current.y)>5&&(k.current=!0)}},[d,y,P]),rt=e.useCallback(t=>{n.current&&(n.current.style.transition="",t.pointerType==="mouse"&&(n.current.style.cursor=p.current>d?"zoom-out":"zoom-in"),t.currentTarget.releasePointerCapture(t.pointerId),M.current.delete(t.pointerId),M.current.size<2&&(N.current=0,z.current=0,H.current=1,q.current=!1),M.current.size===0&&(L.current=!1,T(p.current),C(h.current)))},[d]);e.useEffect(()=>{g<=1&&C({x:0,y:0})},[g]),e.useEffect(()=>{c?.state.activeIndex===m&&document.readyState==="complete"&&S()},[c?.state.activeIndex,m,S]),e.useEffect(()=>{c?.state.activeIndex===m&&S()},[x,S,c?.state.activeIndex,m]),e.useEffect(()=>{c?.state.activeIndex===m&&c?.state.isFullscreen!==void 0&&S()},[c?.state.isFullscreen,S,c?.state.activeIndex,m]),e.useEffect(()=>{let t=()=>{c?.state.activeIndex===m&&S()};return window.addEventListener("resize",t),()=>window.removeEventListener("resize",t)},[c?.state.activeIndex,m,S]),e.useEffect(()=>{let t=c?.state.pendingAction;if(!(!t||!R)){switch(t.type){case"zoom-in":W();break;case"zoom-out":A();break;case"rotate-left":K();break;case"rotate-right":V();break;case"flip-x":_();break;case"flip-y":J();break;case"download":Q();break}c?.clearPendingAction()}},[c?.state.pendingAction,R]),e.useEffect(()=>{let t=n.current;if(!t||!R)return;let r=a=>{if(!a.ctrlKey)return;a.preventDefault(),t.style.transition="none";let l=1+-a.deltaY*.01,i=Math.max(d,Math.min(y,p.current*l)),f=P(i),o=Math.max(f.minX,Math.min(f.maxX,h.current.x)),u=Math.max(f.minY,Math.min(f.maxY,h.current.y));p.current=i,h.current={x:o,y:u},t.style.setProperty("--px-scale",`${i}`),t.style.setProperty("--px-position-x",`${o}px`),t.style.setProperty("--px-position-y",`${u}px`),b.current&&clearTimeout(b.current),b.current=setTimeout(()=>{t.style.transition="",t.style.cursor=p.current>d?"zoom-out":"zoom-in",T(p.current),C(h.current),b.current=null},150)};return t.addEventListener("wheel",r,{passive:!1}),()=>{t.removeEventListener("wheel",r),b.current&&(clearTimeout(b.current),b.current=null)}},[R,d,y,P]),e.useEffect(()=>{c?.state.activeIndex===m?O(!0):O(!1)},[c?.state.activeIndex,m]),e.useEffect(()=>{R&&c?.reportItemState&&c.reportItemState({zoomed:g>d,rotated:x!==0,flipped:I.x===-1||I.y===-1,scale:g,rotation:x,flip:I})},[R,g,d,x,I,c?.reportItemState]),e.useLayoutEffect(()=>{if(!$)return;let t=setTimeout(()=>F(!1),300);return()=>clearTimeout(t)},[$,x]);let ct=e.useMemo(()=>({...R?{"data-active":""}:{},...$?{"data-rotating":""}:{}}),[R,$]),st=e.useMemo(()=>({"--px-position-x":`${Y.x}px`,"--px-position-y":`${Y.y}px`,"--px-scale":`${g}`,"--px-rotation":`${x}deg`,"--px-flip-x":I.x,"--px-flip-y":I.y}),[Y,g,x,I]),ut={index:m,position:Y,scale:g,rotation:x,flip:I,isActive:R},lt={ref:n,"data-scope":"gallery","data-part":"item","data-index":m,onClick:Z,onPointerDown:et,onPointerMove:nt,onPointerUp:rt,onDragStart:tt,style:st,...ct};return{state:ut,attributes:ct,CSSVariables:st,itemProps:lt,handlePointerUp:rt,handlePointerMove:nt,handlePointerDown:et,handleClick:Z,handleDragStart:tt,zoomIn:W,zoomOut:A,rotateLeft:K,rotateRight:V,flipX:_,flipY:J,download:Q,calculateConstraints:P,calculateItemSize:S}}});export{at as defaultItemProps,Rt as useGalleryItem};
1
+ import{withHeadless as xt}from"@primereact/core/headless";import*as e from"react";var at={context:void 0,normalScale:1,zoomedScale:3};var Rt=xt({name:"useGalleryItem",defaultProps:at,setup:({props:ot,elementRef:n})=>{let{context:c,normalScale:p=1,zoomedScale:y=3}=ot,[m,it]=e.useState(-1),[R,O]=e.useState(!1),[Y,C]=e.useState({x:0,y:0}),[g,T]=e.useState(p),[x,B]=e.useState(0),[I,j]=e.useState({x:1,y:1}),[$,F]=e.useState(!1),D=e.useRef(null),M=e.useRef(new Map),U=e.useRef({x:0,y:0}),N=e.useRef(0),z=e.useRef(0),H=e.useRef(1),q=e.useRef(!1),d=e.useRef(1),h=e.useRef({x:0,y:0}),L=e.useRef(!1),G=e.useRef({x:0,y:0}),k=e.useRef(!1),b=e.useRef(null);e.useLayoutEffect(()=>{if(c?.registerItem){let t=c.registerItem(D.current?.index??null);D.current=t,t.index!==m&&it(t.index)}return()=>{D.current?.unregister(),D.current=null}},[c]),e.useEffect(()=>{d.current=g},[g]),e.useEffect(()=>{h.current=Y},[Y]);let S=e.useCallback(()=>{if(!c?.contentRef.current||!n.current)return;let t=c?.contentRef.current.getBoundingClientRect(),r=n.current.firstElementChild;if(!r)return;let a=r.naturalWidth||r.offsetWidth,s=r.naturalHeight||r.offsetHeight;if(a===0||s===0)return;let l=Math.abs(x)%180===90;l&&([a,s]=[s,a]);let i=a/s,f=t.width/t.height,o,u;i>f?(o=Math.min(t.width*.99,a),u=o/i):(u=Math.min(t.height*.99,s),o=u*i),l?(r.style.width=`${u}px`,r.style.height=`${o}px`,n.current.style.width=`${u>0?u:"auto"}px`,n.current.style.height=`${o>0?o:"auto"}px`):(r.style.width=`${o}px`,r.style.height=`${u}px`,n.current.style.width=`${o>0?o:"auto"}px`,n.current.style.height=`${u>0?u:"auto"}px`),n.current.style.aspectRatio=`${a/s}`},[c?.contentRef,x]),P=e.useCallback(t=>{if(!c?.contentRef.current||!n.current)return{minX:0,maxX:0,minY:0,maxY:0};let r=c?.contentRef.current.getBoundingClientRect(),a=t!==void 0?t:d.current,s=n.current.firstElementChild;if(!s)return{minX:0,maxX:0,minY:0,maxY:0};let l=s.offsetWidth,i=s.offsetHeight;Math.abs(x)%180===90&&([l,i]=[i,l]);let o=l*a,u=i*a,v=r.width/2,E=r.height/2,X=o/2,w=u/2,ft=X>v?X-v:0,pt=X>v?-(X-v):0,dt=w>E?w-E:0,mt=w>E?-(w-E):0;return{minX:pt,maxX:ft,minY:mt,maxY:dt}},[c?.contentRef,x]),W=e.useCallback(()=>{T(y),n.current&&(n.current.style.cursor="zoom-out")},[y]),A=e.useCallback(()=>{T(p),C({x:0,y:0}),n.current&&(n.current.style.cursor="zoom-in")},[p]),K=()=>{F(!0),n.current&&(n.current.style.transition=""),B(t=>t-90)},V=()=>{F(!0),n.current&&(n.current.style.transition=""),B(t=>t+90)},_=()=>{j(t=>({...t,x:Math.sign(t.x)*-1}))},J=()=>{j(t=>({...t,y:Math.sign(t.y)*-1}))},Q=()=>{if(!n.current)return;let t=n.current.querySelector("img");if(!t||!t.src)return;let r=t.src;if(!/^(https?:|blob:|data:image\/)/i.test(r))return;let s=document.createElement("a");s.href=r;let l=r.split("/"),f=(l[l.length-1]||"").split(/[?#]/)[0].replace(/[\\/:*?"<>|]/g,"")||"image.jpg";s.download=f,s.target="_blank",s.rel="noopener",document.body.appendChild(s),s.click(),document.body.removeChild(s)},Z=e.useCallback(t=>{if(k.current){k.current=!1;return}if(d.current===p){if(n.current){let r=n.current.getBoundingClientRect(),a=r.width/2,s=r.height/2,l=t.clientX-r.left,i=t.clientY-r.top,f=a-l,o=s-i,u=f*(y-1),v=o*(y-1),E=P(y),X=Math.max(E.minX,Math.min(E.maxX,u)),w=Math.max(E.minY,Math.min(E.maxY,v));C({x:X,y:w})}W()}else A()},[p,y,P,W,A]),tt=e.useCallback(t=>{t.preventDefault()},[]),et=e.useCallback(t=>{t.currentTarget.setPointerCapture(t.pointerId),M.current.set(t.pointerId,{x:t.clientX,y:t.clientY}),U.current={x:t.clientX,y:t.clientY},t.pointerType==="touch"&&M.current.size>=2?(L.current=!1,z.current=0,H.current=d.current):d.current>1&&(t.pointerType==="mouse"||t.pointerType==="touch"&&M.current.size===1)&&(L.current=!0,G.current={x:t.clientX-h.current.x,y:t.clientY-h.current.y},k.current=!1)},[]),nt=e.useCallback(t=>{if(!M.current.has(t.pointerId)||!n.current)return;n.current.style.transition="none",t.pointerType==="mouse"&&!n.current.style.cursor&&(n.current.style.cursor=d.current>p?"zoom-out":"zoom-in"),M.current.set(t.pointerId,{x:t.clientX,y:t.clientY});let r=Array.from(M.current.values());if(r.length===2){let[a,s]=r,l=Math.hypot(s.x-a.x,s.y-a.y);if(q.current=!0,k.current=!0,z.current===0)z.current=l,H.current=d.current;else{let i=l/z.current,f=Math.max(p,Math.min(y,H.current*i)),o=P(f),u=Math.max(o.minX,Math.min(o.maxX,h.current.x)),v=Math.max(o.minY,Math.min(o.maxY,h.current.y));d.current=f,h.current={x:u,y:v},n.current.style.setProperty("--px-scale",`${f}`),n.current.style.setProperty("--px-position-x",`${u}px`),n.current.style.setProperty("--px-position-y",`${v}px`)}N.current=l}else if(r.length===1&&L.current){let a=r[0],s=a.x-G.current.x,l=a.y-G.current.y,i=P(d.current),f=Math.max(i.minX,Math.min(i.maxX,s)),o=Math.max(i.minY,Math.min(i.maxY,l));h.current={x:f,y:o},n.current.style.setProperty("--px-position-x",`${f}px`),n.current.style.setProperty("--px-position-y",`${o}px`),Math.hypot(a.x-U.current.x,a.y-U.current.y)>5&&(k.current=!0)}},[p,y,P]),rt=e.useCallback(t=>{n.current&&(n.current.style.transition="",t.pointerType==="mouse"&&(n.current.style.cursor=d.current>p?"zoom-out":"zoom-in"),t.currentTarget.releasePointerCapture(t.pointerId),M.current.delete(t.pointerId),M.current.size<2&&(N.current=0,z.current=0,H.current=1,q.current=!1),M.current.size===0&&(L.current=!1,T(d.current),C(h.current)))},[p]);e.useEffect(()=>{g<=1&&C({x:0,y:0})},[g]),e.useEffect(()=>{c?.state.activeIndex===m&&document.readyState==="complete"&&S()},[c?.state.activeIndex,m,S]),e.useEffect(()=>{c?.state.activeIndex===m&&S()},[x,S,c?.state.activeIndex,m]),e.useEffect(()=>{c?.state.activeIndex===m&&c?.state.isFullscreen!==void 0&&S()},[c?.state.isFullscreen,S,c?.state.activeIndex,m]),e.useEffect(()=>{let t=()=>{c?.state.activeIndex===m&&S()};return window.addEventListener("resize",t),()=>window.removeEventListener("resize",t)},[c?.state.activeIndex,m,S]),e.useEffect(()=>{let t=c?.state.pendingAction;if(!(!t||!R)){switch(t.type){case"zoom-in":W();break;case"zoom-out":A();break;case"rotate-left":K();break;case"rotate-right":V();break;case"flip-x":_();break;case"flip-y":J();break;case"download":Q();break}c?.clearPendingAction()}},[c?.state.pendingAction,R]),e.useEffect(()=>{let t=n.current;if(!t||!R)return;let r=a=>{if(!a.ctrlKey)return;a.preventDefault(),t.style.transition="none";let l=1+-a.deltaY*.01,i=Math.max(p,Math.min(y,d.current*l)),f=P(i),o=Math.max(f.minX,Math.min(f.maxX,h.current.x)),u=Math.max(f.minY,Math.min(f.maxY,h.current.y));d.current=i,h.current={x:o,y:u},t.style.setProperty("--px-scale",`${i}`),t.style.setProperty("--px-position-x",`${o}px`),t.style.setProperty("--px-position-y",`${u}px`),b.current&&clearTimeout(b.current),b.current=setTimeout(()=>{t.style.transition="",t.style.cursor=d.current>p?"zoom-out":"zoom-in",T(d.current),C(h.current),b.current=null},150)};return t.addEventListener("wheel",r,{passive:!1}),()=>{t.removeEventListener("wheel",r),b.current&&(clearTimeout(b.current),b.current=null)}},[R,p,y,P]),e.useEffect(()=>{c?.state.activeIndex===m?O(!0):O(!1)},[c?.state.activeIndex,m]),e.useEffect(()=>{R&&c?.reportItemState&&c.reportItemState({zoomed:g>p,rotated:x!==0,flipped:I.x===-1||I.y===-1,scale:g,rotation:x,flip:I})},[R,g,p,x,I,c?.reportItemState]),e.useLayoutEffect(()=>{if(!$)return;let t=setTimeout(()=>F(!1),300);return()=>clearTimeout(t)},[$,x]);let ct=e.useMemo(()=>({...R?{"data-active":""}:{},...$?{"data-rotating":""}:{}}),[R,$]),st=e.useMemo(()=>({"--px-position-x":`${Y.x}px`,"--px-position-y":`${Y.y}px`,"--px-scale":`${g}`,"--px-rotation":`${x}deg`,"--px-flip-x":I.x,"--px-flip-y":I.y}),[Y,g,x,I]),ut={index:m,position:Y,scale:g,rotation:x,flip:I,isActive:R},lt={ref:n,"data-scope":"gallery","data-part":"item","data-index":m,onClick:Z,onPointerDown:et,onPointerMove:nt,onPointerUp:rt,onDragStart:tt,style:st,...ct};return{state:ut,attributes:ct,CSSVariables:st,itemProps:lt,handlePointerUp:rt,handlePointerMove:nt,handlePointerDown:et,handleClick:Z,handleDragStart:tt,zoomIn:W,zoomOut:A,rotateLeft:K,rotateRight:V,flipX:_,flipY:J,download:Q,calculateConstraints:P,calculateItemSize:S}}});export{at as defaultItemProps,Rt as useGalleryItem};
@@ -1 +1 @@
1
- var ft=/hsb\(([-+]?\d+(?:.\d+)?\s*,\s*[-+]?\d+(?:.\d+)?%\s*,\s*[-+]?\d+(?:.\d+)?%)\)|hsba\(([-+]?\d+(?:.\d+)?\s*,\s*[-+]?\d+(?:.\d+)?%\s*,\s*[-+]?\d+(?:.\d+)?%\s*,\s*[-+]?\d(.\d+)?)\)/,St=/hsl\(([-+]?\d+(?:.\d+)?\s*,\s*[-+]?\d+(?:.\d+)?%\s*,\s*[-+]?\d+(?:.\d+)?%)\)|hsla\(([-+]?\d+(?:.\d+)?\s*,\s*[-+]?\d+(?:.\d+)?%\s*,\s*[-+]?\d+(?:.\d+)?%\s*,\s*[-+]?\d(.\d+)?)\)/,Rt=/^#?([a-fA-F0-9]{3,8})$/,wt=/^rgba?\(\s*([^)]+)\s*\)$/,Mt=/oklch\(\s*([\d.]+)%?\s+([\d.]+)\s+([\d.]+)(deg)?(?:\s*\/\s*([\d.]+))?\)/i;function R(e,t,n){return Math.min(Math.max(e,t),n)}var kt=(e,t)=>JSON.stringify(e)===JSON.stringify(t),B=(e,t)=>[e[0]*t[0]+e[1]*t[1]+e[2]*t[2],e[3]*t[0]+e[4]*t[1]+e[5]*t[2],e[6]*t[0]+e[7]*t[1]+e[8]*t[2]];function Et(e,t,n,r){let o=R(e,t,n)-t,i=Math.round(o/r),l=t+i*r,u=(r.toString().split(".")[1]||"").length;return parseFloat(l.toFixed(u))}var v=class{getChannelValue(t){if(t in this)return this[t];throw new Error(`Unknown color channel: ${t}`)}withChannelValue(t,n){let{min:r,max:a}=this.getChannelRange(t);if(t in this){let o=this.clone();return o[t]=R(n,r,a),o}throw new Error(`Unknown color channel: ${t}`)}getSpaceAxes(t){let{xChannel:n,yChannel:r}=t;if(n===r)throw new Error("xChannel and yChannel cannot be the same");let a=this.getChannels().find(o=>o!==n&&o!==r);if(!a)throw new Error("zChannel not found");return{xChannel:n,yChannel:r,zChannel:a}}incChannelValue(t,n){let{min:r,max:a,step:o}=this.getChannelRange(t),i=Et(R(this.getChannelValue(t)+n,r,a),r,a,o);return this.withChannelValue(t,i)}decChannelValue(t,n){return this.incChannelValue(t,-n)}},P=class e extends v{constructor(t,n,r,a){super(),this.hue=t,this.saturation=n,this.brightness=r,this.alpha=a}static parse(t){let n=t.match(ft);if(!n)return;let[r,a,o,i]=(n[1]??n[2]).split(",").map(l=>Number(l.trim().replace("%","")));return new e(r%360,R(a,0,100),R(o,0,100),R(i??1,0,1))}toRGB(){let t=this.hue,n=this.saturation/100,r=this.brightness/100;function a(o){let i=(o+t/60)%6;return r-r*n*Math.max(0,Math.min(i,4-i,1))}return new L(Math.round(a(5)*255),Math.round(a(3)*255),Math.round(a(1)*255),Number(this.alpha.toFixed(2)))}toHSL(){let t=this.hue,n=this.saturation/100,r=this.brightness/100,a=r*(1-n/2);return a===0||a===1?n=0:n=(r-a)/Math.min(a,1-a),new D(Number(t.toFixed(2)),Number((n*100).toFixed(2)),Number((a*100).toFixed(2)),Number(this.alpha.toFixed(2)))}toFormat(t){switch(t){case"hsba":return this;case"rgba":return this.toRGB();case"hsla":return this.toHSL();case"oklcha":return this.toRGB().toFormat("oklcha");default:throw new Error(`Invalid format: ${t}`)}}toString(t){switch(t){case"css":return this.toHSL().toString("css");case"hex":return this.toRGB().toString("hex");case"hexa":return this.toRGB().toString("hexa");case"hsb":return`hsb(${this.hue}, ${this.saturation.toFixed(2)}%, ${this.brightness.toFixed(2)}%)`;case"hsba":return`hsba(${this.hue}, ${this.saturation.toFixed(2)}%, ${this.brightness.toFixed(2)}%, ${this.alpha})`;case"hsl":return this.toHSL().toString("hsl");case"rgb":return this.toRGB().toString("rgb");case"oklch":return this.toRGB().toFormat("oklcha").toString("oklch");default:return this.toFormat(t).toString(t)}}toJSON(){return{hue:this.hue,saturation:this.saturation,brightness:this.brightness,alpha:this.alpha}}clone(){return new e(this.hue,this.saturation,this.brightness,this.alpha)}getChannelRange(t){switch(t){case"hue":return{min:0,max:360,step:1};case"saturation":case"brightness":return{min:0,max:100,step:1};case"alpha":return{min:0,max:1,step:.01};default:throw new Error(`Unknown color channel: ${t}`)}}getFormat(){return"hsba"}getChannels(){return["hue","saturation","brightness"]}},D=class e extends v{constructor(t,n,r,a){super(),this.hue=t,this.saturation=n,this.lightness=r,this.alpha=a}static parse(t){let n=t.match(St);if(!n)return;let[r,a,o,i]=(n[1]||n[2])?.split(",").map(l=>Number(l.trim().replace("%","")))??[];return new e(r%360,R(a,0,100),R(o,0,100),R(i??1,0,1))}toRGB(){let t=this.hue,n=this.saturation/100,r=this.lightness/100;function a(o){let i=(o+t/30)%12,l=n*Math.min(r,1-r);return r-l*Math.max(-1,Math.min(i-3,9-i,1))}return new L(Math.round(a(0)*255),Math.round(a(8)*255),Math.round(a(4)*255),Number(this.alpha.toFixed(2)))}toHSB(){let t=this.hue,n=this.saturation/100,r=this.lightness/100,a=r+n*Math.min(r,1-r);return a===0?n=0:n=2*(1-r/a),new P(Number(t.toFixed(2)),Number((n*100).toFixed(2)),Number((a*100).toFixed(2)),Number(this.alpha.toFixed(2)))}toFormat(t){switch(t){case"hsla":return this;case"rgba":return this.toRGB();case"hsba":return this.toHSB();case"oklcha":return this.toRGB().toFormat("oklcha");default:throw new Error(`Invalid format: ${t}`)}}toString(t){switch(t){case"hex":return this.toRGB().toString("hex");case"hexa":return this.toRGB().toString("hexa");case"hsl":return`hsl(${this.hue}, ${this.saturation.toFixed(2)}%, ${this.lightness.toFixed(2)}%)`;case"css":case"hsla":return`hsla(${this.hue}, ${this.saturation.toFixed(2)}%, ${this.lightness.toFixed(2)}%, ${this.alpha})`;case"rgb":return this.toRGB().toString("rgb");case"hsb":return this.toHSB().toString("hsb");case"oklch":return this.toRGB().toFormat("oklcha").toString("oklch");default:return this.toFormat(t).toString(t)}}toJSON(){return{hue:this.hue,saturation:this.saturation,lightness:this.lightness,alpha:this.alpha}}clone(){return new e(this.hue,this.saturation,this.lightness,this.alpha)}getChannelRange(t){switch(t){case"hue":return{min:0,max:360,step:1};case"saturation":case"lightness":return{min:0,max:100,step:1};case"alpha":return{min:0,max:1,step:.01};default:throw new Error(`Unknown color channel: ${t}`)}}getFormat(){return"hsla"}getChannels(){return["hue","saturation","lightness"]}},L=class e extends v{constructor(t,n,r,a){super(),this.red=t,this.green=n,this.blue=r,this.alpha=a}static parse(t){if(!t)return;let n=t.trim();return this.parseHexColor(n)??this.parseRgbFunction(n)}static expandShortHex(t){return t.split("").map(n=>n+n).join("")}static parseHexColor(t){let n=t.match(Rt);if(!n)return;let r=n[1];if(r.length<=4&&(r=this.expandShortHex(r)),![6,8].includes(r.length))return;let a=parseInt(r.slice(0,2),16),o=parseInt(r.slice(2,4),16),i=parseInt(r.slice(4,6),16),l=r.length===8?parseInt(r.slice(6,8),16)/255:1;return new e(a,o,i,l)}static parseRgbFunction(t){let n=t.match(wt);if(!n?.[1])return;let[r,a,o,i]=n[1].split(",").map(g=>g.trim()),l=R(Number(r),0,255),u=R(Number(a),0,255),c=R(Number(o),0,255),x=i!==void 0?R(Number(i),0,1):1;if(![l,u,c,x].some(g=>Number.isNaN(g)))return new e(l,u,c,x)}toHSB(){let[t,n,r]=[this.red/255,this.green/255,this.blue/255],a=Math.max(t,n,r),o=Math.min(t,n,r),i=a-o,l=a,u=a===0?0:i/a,c=0;if(i!==0){switch(a){case t:c=(n-r)/i%6;break;case n:c=(r-t)/i+2;break;case r:c=(t-n)/i+4;break}c*=60,c<0&&(c+=360)}return new P(Number(c.toFixed(2)),Number((u*100).toFixed(2)),Number((l*100).toFixed(2)),Number(this.alpha.toFixed(2)))}toHSL(){let[t,n,r]=[this.red/255,this.green/255,this.blue/255],a=Math.max(t,n,r),o=Math.min(t,n,r),i=(a+o)/2,l=a-o,u=0,c=-1;if(l!==0){switch(a){case t:u=(n-r)/l%6;break;case n:u=(r-t)/l+2;break;case r:u=(t-n)/l+4;break}u*=60,u<0&&(u+=360)}return i===0||i===1?c=0:c=l/(1-Math.abs(2*a-l-1)),new D(Number(u.toFixed(2)),Number((c*100).toFixed(2)),Number((i*100).toFixed(2)),Number(this.alpha.toFixed(2)))}toOKLCH(){let n=[this.red/255,this.green/255,this.blue/255].map(H=>Math.abs(H)<=.04045?H/12.92:(H<0?-1:1)*((Math.abs(H)+.055)/1.055)**2.4),r=B([.41239079926595934,.357584339383878,.1804807884018343,.21263900587151027,.715168678767756,.07219231536073371,.01933081871559182,.11919477979462598,.9505321522496607],n),o=B([.819022437996703,.3619062600528904,-.1288737815209879,.0329836539323885,.9292868615863434,.0361446663506424,.0481771893596242,.2642395317527308,.6335478284694309],r).map(H=>Math.cbrt(H)),[i,l,u]=B([.210454268309314,.7936177747023054,-.0040720430116193,1.9779985324311684,-2.42859224204858,.450593709617411,.0259040424655478,.7827717124575296,-.8086757549230774],o),c=Math.sqrt(l**2+u**2),x=Math.abs(l)<2e-4&&Math.abs(u)<2e-4?NaN:(Math.atan2(u,l)*180/Math.PI%360+360)%360,g=Number(Math.min(1,Math.max(0,i)).toFixed(4)),T=Number(c.toFixed(4)),m=Number.isNaN(x)?NaN:Number(x.toFixed(2));return new U(g,T,m,Number(this.alpha.toFixed(2)))}toHexInt(){return this.red<<16|this.green<<8|this.blue}toFormat(t){switch(t){case"rgba":return this;case"hsla":return this.toHSL();case"hsba":return this.toHSB();case"oklcha":return this.toOKLCH();default:throw new Error(`Invalid format: ${t}`)}}toString(t){switch(t){case"hex":return`#${this.red.toString(16).padStart(2,"0")}${this.green.toString(16).padStart(2,"0")}${this.blue.toString(16).padStart(2,"0")}`;case"hexa":return`#${this.red.toString(16).padStart(2,"0")}${this.green.toString(16).padStart(2,"0")}${this.blue.toString(16).padStart(2,"0")}${Math.round(this.alpha*255).toString(16).padStart(2,"0")}`;case"rgb":return`rgb(${this.red}, ${this.green}, ${this.blue})`;case"rgba":case"css":return`rgba(${this.red}, ${this.green}, ${this.blue}, ${this.alpha})`;case"hsl":return this.toHSL().toString("hsl");case"hsb":return this.toHSB().toString("hsb");case"oklch":return this.toOKLCH().toString("oklch");default:return this.toFormat(t).toString(t)}}toJSON(){return{red:this.red,green:this.green,blue:this.blue,alpha:this.alpha}}clone(){return new e(this.red,this.green,this.blue,this.alpha)}getChannelRange(t){switch(t){case"red":case"green":case"blue":return{min:0,max:255,step:1};case"alpha":return{min:0,max:1,step:.01};default:throw new Error(`Unknown color channel: ${t}`)}}getFormat(){return"rgba"}getChannels(){return["red","green","blue"]}},U=class e extends v{constructor(t,n,r,a){super(),this.L=t,this.C=n,this.H=r,this.alpha=a}static parse(t){if(!t)return;let n=t.trim().match(Mt);if(!n)return;let r=Number(n[1])/100,a=Number(n[2]),o=Number(n[3]),i=n[5]!==void 0?Number(n[5]):1;return new e(r,a,o,i)}toRGB(){let t=this.L,n=Number.isNaN(this.H)?0:this.C*Math.cos(this.H*Math.PI/180),r=Number.isNaN(this.H)?0:this.C*Math.sin(this.H*Math.PI/180),o=B([1,.3963377774,.2158037573,1,-.1055613458,-.0638541728,1,-.0894841775,-1.291485548],[t,n,r]).map(x=>x**3),i=B([1.2268798758,-.5578149945,.2813910457,-.0405757452,1.1122868033,-.0717110581,-.0763729367,-.4214933324,1.5869240198],o),[l,u,c]=B([3.240969942,-1.537383178,-.49861076,-.969243636,1.875967502,.041555057,.05563008,-.203976959,1.056971514],i);return[l,u,c]=[l,u,c].map(x=>Math.abs(x)>.0031308?(x<0?-1:1)*(1.055*Math.abs(x)**(1/2.4)-.055):12.92*x),new L(Math.round(R(l,0,1)*255),Math.round(R(u,0,1)*255),Math.round(R(c,0,1)*255),Number(this.alpha.toFixed(2)))}toJSON(){return{L:this.L,C:this.C,H:this.H,alpha:this.alpha}}clone(){return new e(this.L,this.C,this.H,this.alpha)}toFormat(t){switch(t){case"oklcha":return this;case"rgba":return this.toRGB();case"hsla":return this.toRGB().toFormat("hsla");case"hsba":return this.toRGB().toFormat("hsba");default:throw new Error(`Invalid format: ${t}`)}}toString(t){switch(t){case"hex":return this.toRGB().toString("hex");case"hexa":return this.toRGB().toString("hexa");case"oklch":{let n=Number.isNaN(this.L)?0:Number((this.L*100).toFixed(2)),r=Number.isNaN(this.C)?0:Number(this.C.toFixed(4)),a=Number.isNaN(this.H)?0:Number(this.H.toFixed(2));return`oklch(${n}% ${r} ${a})`}case"oklcha":case"css":{let n=Number.isNaN(this.L)?0:Number((this.L*100).toFixed(2)),r=Number.isNaN(this.C)?0:Number(this.C.toFixed(4)),a=Number.isNaN(this.H)?0:Number(this.H.toFixed(2)),o=Number.isNaN(this.alpha)?1:Number(this.alpha.toFixed(2));return`oklch(${n}% ${r} ${a} / ${o})`}case"hsl":return this.toRGB().toString("hsl");case"hsb":return this.toRGB().toString("hsb");case"rgb":return this.toRGB().toString("rgb");default:return this.toFormat(t).toString(t)}}getChannelRange(t){switch(t){case"L":return{min:0,max:1,step:.01};case"C":return{min:0,max:.4,step:.01};case"H":return{min:0,max:360,step:1};case"alpha":return{min:0,max:1,step:.01};default:throw new Error(`Unknown color channel: ${t}`)}}getFormat(){return"oklcha"}getChannels(){return["L","C","H"]}},V=e=>{let t=L.parse(e)??D.parse(e)??P.parse(e)??void 0;if(!t)throw new Error(`Invalid color: ${e}`);return t};function rt(e,t,n,r=!1){let{min:a,max:o}=t.getChannelRange(e),i=n==="horizontal"?r?"left":"right":"bottom";switch(e){case"hue":return`linear-gradient(to ${i}, rgb(255, 0, 0) 0%, rgb(255, 255, 0) 17%, rgb(0, 255, 0) 33%, rgb(0, 255, 255) 50%, rgb(0, 0, 255) 67%, rgb(255, 0, 255) 83%, rgb(255, 0, 0) 100%)`;case"lightness":{let l=t.withChannelValue(e,a).toString("css"),u=t.withChannelValue(e,(o-a)/2).toString("css"),c=t.withChannelValue(e,o).toString("css");return`linear-gradient(to ${i}, ${l}, ${u}, ${c})`}case"red":case"green":case"blue":case"saturation":case"brightness":case"alpha":{let l=t.withChannelValue(e,a).toString("css"),u=t.withChannelValue(e,o).toString("css");return`linear-gradient(to ${i}, ${l}, ${u})`}default:throw new Error(`Unknown color channel: ${e}`)}}function at(e,t){switch(t){case"hue":return V(`hsl(${e.getChannelValue("hue")}, 100%, 50%)`);case"red":case"green":case"blue":case"lightness":case"brightness":case"saturation":return e.withChannelValue("alpha",1);case"alpha":return e;default:throw new Error(`Unknown color channel: ${t}`)}}var Ft={hue:e=>[0,60,120,180,240,300,360].map(t=>e.withChannelValue("hue",t).toString("css")).join(", "),saturation:e=>`${e.withChannelValue("saturation",0).toString("css")}, transparent`,lightness:()=>"black, transparent, white",brightness:()=>"black, transparent"};function st(e,t){let{xChannel:n,zChannel:r}=e.getSpaceAxes(t),a=e.getChannelValue(r),o=e.getFormat(),l=V((o==="rgba"||o==="oklcha"?"hsba":o)==="hsla"?"hsl(0, 100%, 50%)":"hsb(0, 100%, 100%)").withChannelValue(r,a),u=e.getChannels(),c=g=>g===n?"right":"top",x=u.filter(g=>g!==r).map(g=>`linear-gradient(to ${c(g)}, ${Ft[g](l)})`).reverse();return r==="hue"&&x.push(l.toString("css")),{"--px-area-gradient":x.join(", ")}}function K(e,t,n="hsba"){let r=e.getFormat()==="hsla";switch(t){case"hex":return e.getChannelValue("alpha")<e.getChannelRange("alpha").max?e.toString("hexa"):e.toString("hex");case"css":return e.toFormat(n).toString("css");case"red":case"green":case"blue":return e.toFormat("rgba").getChannelValue(t).toString();case"hue":return e.toFormat(r?"hsla":"hsba").getChannelValue("hue").toString();case"saturation":return e.toFormat(r?"hsla":"hsba").getChannelValue("saturation").toString();case"lightness":return e.toFormat("hsla").getChannelValue("lightness").toString();case"brightness":return e.toFormat("hsba").getChannelValue("brightness").toString();case"C":return e.toFormat("oklcha").getChannelValue("C").toString();case"H":return e.toFormat("oklcha").getChannelValue("H").toString();case"L":return e.toFormat("oklcha").getChannelValue("L").toString();default:return e.getChannelValue(t).toString()}}function ot(e,t="hex"){switch(t){case"hex":return{min:V("#000000").toHexInt(),max:V("#FFFFFF").toHexInt(),step:1};case"css":return;case"red":case"green":case"blue":return e.toFormat("rgba").getChannelRange(t);case"hue":case"lightness":case"saturation":return e.toFormat("hsla").getChannelRange(t);case"brightness":return e.toFormat("hsba").getChannelRange(t);case"L":case"C":case"H":return e.toFormat("oklcha").getChannelRange(t);default:return e.getChannelRange(t)}}import{withHeadless as Nt}from"@primereact/core/headless";import{useControlledState as Vt}from"@primereact/hooks/use-controlled-state";import{useDirection as Ht}from"@primereact/hooks/use-direction";import*as N from"react";var it={defaultValue:void 0,value:void 0,format:"hsba",disabled:!1,onValueChange:void 0,onValueChangeEnd:void 0};var It=/^[0-9a-fA-F]{3,8}$/;function yt(e){return It.test(e)}function Gt(e){return e.startsWith("#")?e:yt(e)?`#${e}`:e}function $t(e){return e.replace("to bottom","to top")}var Ut=Nt({name:"useInputColor",defaultProps:it,setup({props:e}){let{format:t="hsba",disabled:n}=e,[r,a]=N.useState(!1),o=Ht()==="rtl",i=N.useRef([]),l=N.useRef({x:0,y:0}),u=N.useRef(e.defaultValue??V("#ff0000").toFormat(e.format||"hsba")),[c,x]=Vt({value:e.value,defaultValue:u.current,onChange:e.onValueChange}),g=N.useMemo(()=>c??V("#ff0000").toFormat(t),[c,t]),T=t.startsWith("hsl")?"hsla":"hsba",m=N.useMemo(()=>g.toFormat(T),[g,T]),H={value:g,isAreaDragging:r},k=(s,h)=>{x([s,{color:s.toString(t),value:s,...h?.originalEvent?{originalEvent:h.originalEvent}:{}}]),O(s)},z=(s,h,w)=>{if(!w||n)return;let C=w.getBoundingClientRect(),p=Math.max(0,Math.min(1,(s-l.current.x-C.left)/C.width)),S=Math.max(0,Math.min(1,(h-l.current.y-C.top)/C.height)),{xChannel:b,yChannel:F}=_(),G=m.getChannelRange(b),I=m.getChannelRange(F),A=p*(G.max-G.min)+G.min,X=(1-S)*(I.max-I.min)+I.min,E=A-m.getChannelValue(b),d=X-m.getChannelValue(F),f=m.incChannelValue(b,E).incChannelValue(F,d);k(f)},J=s=>{let h=s.currentTarget;if(!h||s.button!==0)return;let C=s.target?.closest?.('[data-part="area-handle"], .p-input-color-area-handle');if(C){let p=C.getBoundingClientRect(),S=p.left+p.width/2,b=p.top+p.height/2;l.current={x:s.clientX-S,y:s.clientY-b}}else l.current={x:0,y:0};h.setPointerCapture(s.pointerId),a(!0),z(s.clientX,s.clientY,h)},Y=s=>{r&&z(s.clientX,s.clientY,s.currentTarget)},j=s=>{let h=s.currentTarget;h&&(h.releasePointerCapture(s.pointerId),a(!1),l.current={x:0,y:0},e.onValueChangeEnd&&e.onValueChangeEnd({originalEvent:s,color:g.toString(t),value:g}))},q=s=>{e.onValueChangeEnd&&e.onValueChangeEnd({originalEvent:s,color:g.toString(t),value:g})},W=s=>{if(n)return;let h=s.key;if(!["ArrowRight","ArrowLeft","ArrowUp","ArrowDown"].includes(h))return;s.preventDefault();let{xChannel:w,yChannel:C}=_(),{step:p}=m.getChannelRange(w),{step:S}=m.getChannelRange(C),b=m;h==="ArrowRight"&&(b=b.incChannelValue(w,p)),h==="ArrowLeft"&&(b=b.decChannelValue(w,p)),h==="ArrowUp"&&(b=b.incChannelValue(C,S)),h==="ArrowDown"&&(b=b.decChannelValue(C,S)),k(b),e.onValueChangeEnd&&e.onValueChangeEnd({originalEvent:s,color:b.toString(t),value:b})},_=()=>{let s=m.getChannels();return{xChannel:s[1],yChannel:s[2]}},Q=()=>{if(typeof window<"u"&&!window.EyeDropper||n)return;new window.EyeDropper().open().then(h=>{let w=V(h.sRGBHex);k(w)}).catch(h=>{console.error("Error opening eyedropper",h)})},M=_(),{min:Z,max:lt}=m.getChannelRange(M.xChannel),{min:tt,max:ht}=m.getChannelRange(M.yChannel),ut=m.getChannelValue(M.xChannel),ct=m.getChannelValue(M.yChannel),et={...st(m,M),"--px-handle-background":m.withChannelValue("alpha",1).toString("css"),"--px-handle-position-left":(ut-Z)/(lt-Z)*100+"%","--px-handle-position-top":(1-(ct-tt)/(ht-tt))*100+"%"},nt={"--px-swatch-background":g.toString("css")},gt=({channel:s="hue",orientation:h="horizontal",disabled:w}={})=>{let C=n||w,p=s==="alpha"?m:g.getChannels().includes(s)?g:m.getChannels().includes(s)?m:g.toFormat(t),S=p.getChannelRange(s),b=p.getChannelValue(s),F=rt(s,p,h,o),I={"--px-slider-background":h==="vertical"?$t(F):F,"--px-slider-handle-background":at(p,s).toString("css")},A=E=>{if(C)return;let d=Array.isArray(E.value)?E.value[0]:E.value;if(d===void 0||Number.isNaN(d))return;let f=p.withChannelValue(s,d);k(f,{originalEvent:E.originalEvent})},X=E=>{if(C||!e.onValueChangeEnd)return;let d=Array.isArray(E.value)?E.value[0]:E.value;if(d===void 0||Number.isNaN(d))return;let f=p.withChannelValue(s,d);e.onValueChangeEnd({originalEvent:E.originalEvent,color:f.toString(t),value:f})};return{"data-scope":"inputcolor","data-part":"slider","data-orientation":h,"data-channel":s,orientation:h,style:I,value:b,min:S.min,max:S.max,step:S.step,disabled:C,onValueChange:A,onValueChangeEnd:X}},dt=s=>{let h=s.elementRef.current;i.current.includes(h)||i.current.push(h)},O=s=>{requestAnimationFrame(()=>{let h=s||g;i.current.forEach(C=>{let p=C.getAttribute("data-channel");if(p){let S=K(h,p,t);C.value=String(S)}})})};N.useEffect(()=>{O()},[g,t]);let mt=({channel:s="hex",disabled:h}={})=>{let w=n||h,C=g,p=t,S=ot(C,s),b=K(C,s,p),F=s==="hex"||s==="css",G=d=>{if(w)return;let f;if(F)try{f=V(s==="hex"?Gt(String(d)):String(d))}catch{f=C}else{let y=C;s!=="alpha"&&(y=y.toFormat(p));let $=Number.parseFloat(String(d)),xt=Number.isNaN($)?y.getChannelValue(s):$;f=y.withChannelValue(s,xt)}return k(f),f},I=d=>{let f=d.currentTarget,y=F?f.value:f.valueAsNumber,$=G(y);!$||!e.onValueChangeEnd||e.onValueChangeEnd({originalEvent:d,color:$.toString(t),value:$})},A=d=>{let f=d.currentTarget,y=F?f.value:f.valueAsNumber;G(y)},X=d=>{I(d)},E=d=>{d.defaultPrevented||d.key==="Enter"&&(I(d),d.preventDefault())};return{"data-scope":"inputcolor","data-part":"input",type:F?"text":"number",spellCheck:!1,autoComplete:"off",disabled:!!w,"data-channel":s,"aria-label":s,min:S?.min,max:S?.max,step:S?.step,channelValue:b,onChange:A,onBlur:X,onKeyDown:E}},Ct={"data-scope":"inputcolor","data-part":"root",...n&&{"data-disabled":""},...r&&{"data-dragging":""}},pt={"data-scope":"inputcolor","data-part":"area",style:et,onPointerDown:J,onPointerMove:Y,onPointerUp:j},bt={"data-scope":"inputcolor","data-part":"area-handle",role:"slider",tabIndex:n?-1:0,"aria-disabled":n,"aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":m.getChannelValue(M.xChannel),"aria-label":`${M.xChannel} and ${M.yChannel}`,"aria-roledescription":"2d slider","aria-valuetext":`${M.xChannel} ${m.getChannelValue(M.xChannel)}, ${M.yChannel} ${m.getChannelValue(M.yChannel)}`,onKeyDown:W,onBlur:q};return{state:H,value:c,areaValue:m,areaChannels:M,rootProps:Ct,areaProps:pt,areaHandleProps:bt,swatchProps:{"data-scope":"inputcolor","data-part":"swatch",style:nt},eyeDropperProps:{"data-scope":"inputcolor","data-part":"eye-dropper",disabled:!!n,onClick:Q},sliderHandleProps:{"data-scope":"inputcolor","data-part":"slider-handle",role:"slider",tabIndex:n?-1:0,"aria-disabled":n},getInputProps:mt,getSliderProps:gt,setValue:x,handleAreaPointerDown:J,handleAreaPointerMove:Y,handleAreaPointerUp:j,handleAreaBlur:q,handleAreaKeyDown:W,areaStyles:et,swatchStyles:nt,openEyeDropper:Q,syncChannelInputs:O,registerInputEl:dt}}});export{P as HSBColor,D as HSLColor,U as OKLCHColor,L as RGBColor,it as defaultProps,st as getAreaGradient,at as getChannelColor,rt as getChannelGradient,ot as getInputChannelRange,K as getInputChannelValue,kt as isEqual,V as parseColor,Ut as useInputColor};
1
+ var wt=/hsb\(([-+]?\d+(?:.\d+)?\s*,\s*[-+]?\d+(?:.\d+)?%\s*,\s*[-+]?\d+(?:.\d+)?%)\)|hsba\(([-+]?\d+(?:.\d+)?\s*,\s*[-+]?\d+(?:.\d+)?%\s*,\s*[-+]?\d+(?:.\d+)?%\s*,\s*[-+]?\d(.\d+)?)\)/,Mt=/hsl\(([-+]?\d+(?:.\d+)?\s*,\s*[-+]?\d+(?:.\d+)?%\s*,\s*[-+]?\d+(?:.\d+)?%)\)|hsla\(([-+]?\d+(?:.\d+)?\s*,\s*[-+]?\d+(?:.\d+)?%\s*,\s*[-+]?\d+(?:.\d+)?%\s*,\s*[-+]?\d(.\d+)?)\)/,Et=/^#?([a-fA-F0-9]{3,8})$/,Ft=/^rgba?\(\s*([^)]+)\s*\)$/,Nt=/oklch\(\s*([\d.]+)%?\s+([\d.]+)\s+([\d.]+)(deg)?(?:\s*\/\s*([\d.]+))?\)/i;function S(e,t,n){return Math.min(Math.max(e,t),n)}var Pt=(e,t)=>JSON.stringify(e)===JSON.stringify(t),L=(e,t)=>[e[0]*t[0]+e[1]*t[1]+e[2]*t[2],e[3]*t[0]+e[4]*t[1]+e[5]*t[2],e[6]*t[0]+e[7]*t[1]+e[8]*t[2]];function Vt(e,t,n,a){let o=S(e,t,n)-t,i=Math.round(o/a),l=t+i*a,u=(a.toString().split(".")[1]||"").length;return parseFloat(l.toFixed(u))}var k=class{getChannelValue(t){if(t in this)return this[t];throw new Error(`Unknown color channel: ${t}`)}withChannelValue(t,n){let{min:a,max:r}=this.getChannelRange(t);if(t in this){let o=this.clone();return o[t]=S(n,a,r),o}throw new Error(`Unknown color channel: ${t}`)}getSpaceAxes(t){let{xChannel:n,yChannel:a}=t;if(n===a)throw new Error("xChannel and yChannel cannot be the same");let r=this.getChannels().find(o=>o!==n&&o!==a);if(!r)throw new Error("zChannel not found");return{xChannel:n,yChannel:a,zChannel:r}}incChannelValue(t,n){let{min:a,max:r,step:o}=this.getChannelRange(t),i=Vt(S(this.getChannelValue(t)+n,a,r),a,r,o);return this.withChannelValue(t,i)}decChannelValue(t,n){return this.incChannelValue(t,-n)}},D=class e extends k{constructor(t,n,a,r){super(),this.hue=t,this.saturation=n,this.brightness=a,this.alpha=r}static parse(t){let n=t.match(wt);if(!n)return;let[a,r,o,i]=(n[1]??n[2]).split(",").map(l=>Number(l.trim().replace("%","")));return new e(a%360,S(r,0,100),S(o,0,100),S(i??1,0,1))}toRGB(){let t=this.hue,n=this.saturation/100,a=this.brightness/100;function r(o){let i=(o+t/60)%6;return a-a*n*Math.max(0,Math.min(i,4-i,1))}return new A(Math.round(r(5)*255),Math.round(r(3)*255),Math.round(r(1)*255),Number(this.alpha.toFixed(2)))}toHSL(){let t=this.hue,n=this.saturation/100,a=this.brightness/100,r=a*(1-n/2);return r===0||r===1?n=0:n=(a-r)/Math.min(r,1-r),new T(Number(t.toFixed(2)),Number((n*100).toFixed(2)),Number((r*100).toFixed(2)),Number(this.alpha.toFixed(2)))}toFormat(t){switch(t){case"hsba":return this;case"rgba":return this.toRGB();case"hsla":return this.toHSL();case"oklcha":return this.toRGB().toFormat("oklcha");default:throw new Error(`Invalid format: ${t}`)}}toString(t){switch(t){case"css":return this.toHSL().toString("css");case"hex":return this.toRGB().toString("hex");case"hexa":return this.toRGB().toString("hexa");case"hsb":return`hsb(${this.hue}, ${this.saturation.toFixed(2)}%, ${this.brightness.toFixed(2)}%)`;case"hsba":return`hsba(${this.hue}, ${this.saturation.toFixed(2)}%, ${this.brightness.toFixed(2)}%, ${this.alpha})`;case"hsl":return this.toHSL().toString("hsl");case"rgb":return this.toRGB().toString("rgb");case"oklch":return this.toRGB().toFormat("oklcha").toString("oklch");default:return this.toFormat(t).toString(t)}}toJSON(){return{hue:this.hue,saturation:this.saturation,brightness:this.brightness,alpha:this.alpha}}clone(){return new e(this.hue,this.saturation,this.brightness,this.alpha)}getChannelRange(t){switch(t){case"hue":return{min:0,max:360,step:1};case"saturation":case"brightness":return{min:0,max:100,step:1};case"alpha":return{min:0,max:1,step:.01};default:throw new Error(`Unknown color channel: ${t}`)}}getFormat(){return"hsba"}getChannels(){return["hue","saturation","brightness"]}},T=class e extends k{constructor(t,n,a,r){super(),this.hue=t,this.saturation=n,this.lightness=a,this.alpha=r}static parse(t){let n=t.match(Mt);if(!n)return;let[a,r,o,i]=(n[1]||n[2])?.split(",").map(l=>Number(l.trim().replace("%","")))??[];return new e(a%360,S(r,0,100),S(o,0,100),S(i??1,0,1))}toRGB(){let t=this.hue,n=this.saturation/100,a=this.lightness/100;function r(o){let i=(o+t/30)%12,l=n*Math.min(a,1-a);return a-l*Math.max(-1,Math.min(i-3,9-i,1))}return new A(Math.round(r(0)*255),Math.round(r(8)*255),Math.round(r(4)*255),Number(this.alpha.toFixed(2)))}toHSB(){let t=this.hue,n=this.saturation/100,a=this.lightness/100,r=a+n*Math.min(a,1-a);return r===0?n=0:n=2*(1-a/r),new D(Number(t.toFixed(2)),Number((n*100).toFixed(2)),Number((r*100).toFixed(2)),Number(this.alpha.toFixed(2)))}toFormat(t){switch(t){case"hsla":return this;case"rgba":return this.toRGB();case"hsba":return this.toHSB();case"oklcha":return this.toRGB().toFormat("oklcha");default:throw new Error(`Invalid format: ${t}`)}}toString(t){switch(t){case"hex":return this.toRGB().toString("hex");case"hexa":return this.toRGB().toString("hexa");case"hsl":return`hsl(${this.hue}, ${this.saturation.toFixed(2)}%, ${this.lightness.toFixed(2)}%)`;case"css":case"hsla":return`hsla(${this.hue}, ${this.saturation.toFixed(2)}%, ${this.lightness.toFixed(2)}%, ${this.alpha})`;case"rgb":return this.toRGB().toString("rgb");case"hsb":return this.toHSB().toString("hsb");case"oklch":return this.toRGB().toFormat("oklcha").toString("oklch");default:return this.toFormat(t).toString(t)}}toJSON(){return{hue:this.hue,saturation:this.saturation,lightness:this.lightness,alpha:this.alpha}}clone(){return new e(this.hue,this.saturation,this.lightness,this.alpha)}getChannelRange(t){switch(t){case"hue":return{min:0,max:360,step:1};case"saturation":case"lightness":return{min:0,max:100,step:1};case"alpha":return{min:0,max:1,step:.01};default:throw new Error(`Unknown color channel: ${t}`)}}getFormat(){return"hsla"}getChannels(){return["hue","saturation","lightness"]}},A=class e extends k{constructor(t,n,a,r){super(),this.red=t,this.green=n,this.blue=a,this.alpha=r}static parse(t){if(!t)return;let n=t.trim();return this.parseHexColor(n)??this.parseRgbFunction(n)}static expandShortHex(t){return t.split("").map(n=>n+n).join("")}static parseHexColor(t){let n=t.match(Et);if(!n)return;let a=n[1];if(a.length<=4&&(a=this.expandShortHex(a)),![6,8].includes(a.length))return;let r=parseInt(a.slice(0,2),16),o=parseInt(a.slice(2,4),16),i=parseInt(a.slice(4,6),16),l=a.length===8?parseInt(a.slice(6,8),16)/255:1;return new e(r,o,i,l)}static parseRgbFunction(t){let n=t.match(Ft);if(!n?.[1])return;let[a,r,o,i]=n[1].split(",").map(g=>g.trim()),l=S(Number(a),0,255),u=S(Number(r),0,255),c=S(Number(o),0,255),f=i!==void 0?S(Number(i),0,1):1;if(![l,u,c,f].some(g=>Number.isNaN(g)))return new e(l,u,c,f)}toHSB(){let[t,n,a]=[this.red/255,this.green/255,this.blue/255],r=Math.max(t,n,a),o=Math.min(t,n,a),i=r-o,l=r,u=r===0?0:i/r,c=0;if(i!==0){switch(r){case t:c=(n-a)/i%6;break;case n:c=(a-t)/i+2;break;case a:c=(t-n)/i+4;break}c*=60,c<0&&(c+=360)}return new D(Number(c.toFixed(2)),Number((u*100).toFixed(2)),Number((l*100).toFixed(2)),Number(this.alpha.toFixed(2)))}toHSL(){let[t,n,a]=[this.red/255,this.green/255,this.blue/255],r=Math.max(t,n,a),o=Math.min(t,n,a),i=(r+o)/2,l=r-o,u=0,c=-1;if(l!==0){switch(r){case t:u=(n-a)/l%6;break;case n:u=(a-t)/l+2;break;case a:u=(t-n)/l+4;break}u*=60,u<0&&(u+=360)}return i===0||i===1?c=0:c=l/(1-Math.abs(2*r-l-1)),new T(Number(u.toFixed(2)),Number((c*100).toFixed(2)),Number((i*100).toFixed(2)),Number(this.alpha.toFixed(2)))}toOKLCH(){let n=[this.red/255,this.green/255,this.blue/255].map(I=>Math.abs(I)<=.04045?I/12.92:(I<0?-1:1)*((Math.abs(I)+.055)/1.055)**2.4),a=L([.41239079926595934,.357584339383878,.1804807884018343,.21263900587151027,.715168678767756,.07219231536073371,.01933081871559182,.11919477979462598,.9505321522496607],n),o=L([.819022437996703,.3619062600528904,-.1288737815209879,.0329836539323885,.9292868615863434,.0361446663506424,.0481771893596242,.2642395317527308,.6335478284694309],a).map(I=>Math.cbrt(I)),[i,l,u]=L([.210454268309314,.7936177747023054,-.0040720430116193,1.9779985324311684,-2.42859224204858,.450593709617411,.0259040424655478,.7827717124575296,-.8086757549230774],o),c=Math.sqrt(l**2+u**2),f=Math.abs(l)<2e-4&&Math.abs(u)<2e-4?NaN:(Math.atan2(u,l)*180/Math.PI%360+360)%360,g=Number(Math.min(1,Math.max(0,i)).toFixed(4)),_=Number(c.toFixed(4)),d=Number.isNaN(f)?NaN:Number(f.toFixed(2));return new K(g,_,d,Number(this.alpha.toFixed(2)))}toHexInt(){return this.red<<16|this.green<<8|this.blue}toFormat(t){switch(t){case"rgba":return this;case"hsla":return this.toHSL();case"hsba":return this.toHSB();case"oklcha":return this.toOKLCH();default:throw new Error(`Invalid format: ${t}`)}}toString(t){switch(t){case"hex":return`#${this.red.toString(16).padStart(2,"0")}${this.green.toString(16).padStart(2,"0")}${this.blue.toString(16).padStart(2,"0")}`;case"hexa":return`#${this.red.toString(16).padStart(2,"0")}${this.green.toString(16).padStart(2,"0")}${this.blue.toString(16).padStart(2,"0")}${Math.round(this.alpha*255).toString(16).padStart(2,"0")}`;case"rgb":return`rgb(${this.red}, ${this.green}, ${this.blue})`;case"rgba":case"css":return`rgba(${this.red}, ${this.green}, ${this.blue}, ${this.alpha})`;case"hsl":return this.toHSL().toString("hsl");case"hsb":return this.toHSB().toString("hsb");case"oklch":return this.toOKLCH().toString("oklch");default:return this.toFormat(t).toString(t)}}toJSON(){return{red:this.red,green:this.green,blue:this.blue,alpha:this.alpha}}clone(){return new e(this.red,this.green,this.blue,this.alpha)}getChannelRange(t){switch(t){case"red":case"green":case"blue":return{min:0,max:255,step:1};case"alpha":return{min:0,max:1,step:.01};default:throw new Error(`Unknown color channel: ${t}`)}}getFormat(){return"rgba"}getChannels(){return["red","green","blue"]}},K=class e extends k{constructor(t,n,a,r){super(),this.L=t,this.C=n,this.H=a,this.alpha=r}static parse(t){if(!t)return;let n=t.trim().match(Nt);if(!n)return;let a=Number(n[1])/100,r=Number(n[2]),o=Number(n[3]),i=n[5]!==void 0?Number(n[5]):1;return new e(a,r,o,i)}toRGB(){let t=this.L,n=Number.isNaN(this.H)?0:this.C*Math.cos(this.H*Math.PI/180),a=Number.isNaN(this.H)?0:this.C*Math.sin(this.H*Math.PI/180),o=L([1,.3963377774,.2158037573,1,-.1055613458,-.0638541728,1,-.0894841775,-1.291485548],[t,n,a]).map(f=>f**3),i=L([1.2268798758,-.5578149945,.2813910457,-.0405757452,1.1122868033,-.0717110581,-.0763729367,-.4214933324,1.5869240198],o),[l,u,c]=L([3.240969942,-1.537383178,-.49861076,-.969243636,1.875967502,.041555057,.05563008,-.203976959,1.056971514],i);return[l,u,c]=[l,u,c].map(f=>Math.abs(f)>.0031308?(f<0?-1:1)*(1.055*Math.abs(f)**(1/2.4)-.055):12.92*f),new A(Math.round(S(l,0,1)*255),Math.round(S(u,0,1)*255),Math.round(S(c,0,1)*255),Number(this.alpha.toFixed(2)))}toJSON(){return{L:this.L,C:this.C,H:this.H,alpha:this.alpha}}clone(){return new e(this.L,this.C,this.H,this.alpha)}toFormat(t){switch(t){case"oklcha":return this;case"rgba":return this.toRGB();case"hsla":return this.toRGB().toFormat("hsla");case"hsba":return this.toRGB().toFormat("hsba");default:throw new Error(`Invalid format: ${t}`)}}toString(t){switch(t){case"hex":return this.toRGB().toString("hex");case"hexa":return this.toRGB().toString("hexa");case"oklch":{let n=Number.isNaN(this.L)?0:Number((this.L*100).toFixed(2)),a=Number.isNaN(this.C)?0:Number(this.C.toFixed(4)),r=Number.isNaN(this.H)?0:Number(this.H.toFixed(2));return`oklch(${n}% ${a} ${r})`}case"oklcha":case"css":{let n=Number.isNaN(this.L)?0:Number((this.L*100).toFixed(2)),a=Number.isNaN(this.C)?0:Number(this.C.toFixed(4)),r=Number.isNaN(this.H)?0:Number(this.H.toFixed(2)),o=Number.isNaN(this.alpha)?1:Number(this.alpha.toFixed(2));return`oklch(${n}% ${a} ${r} / ${o})`}case"hsl":return this.toRGB().toString("hsl");case"hsb":return this.toRGB().toString("hsb");case"rgb":return this.toRGB().toString("rgb");default:return this.toFormat(t).toString(t)}}getChannelRange(t){switch(t){case"L":return{min:0,max:1,step:.01};case"C":return{min:0,max:.4,step:.01};case"H":return{min:0,max:360,step:1};case"alpha":return{min:0,max:1,step:.01};default:throw new Error(`Unknown color channel: ${t}`)}}getFormat(){return"oklcha"}getChannels(){return["L","C","H"]}},H=e=>{let t=A.parse(e)??T.parse(e)??D.parse(e)??void 0;if(!t)throw new Error(`Invalid color: ${e}`);return t};function ot(e,t,n,a=!1){let{min:r,max:o}=t.getChannelRange(e),i=n==="horizontal"?a?"left":"right":"bottom";switch(e){case"hue":return`linear-gradient(to ${i}, rgb(255, 0, 0) 0%, rgb(255, 255, 0) 17%, rgb(0, 255, 0) 33%, rgb(0, 255, 255) 50%, rgb(0, 0, 255) 67%, rgb(255, 0, 255) 83%, rgb(255, 0, 0) 100%)`;case"lightness":{let l=t.withChannelValue(e,r).toString("css"),u=t.withChannelValue(e,(o-r)/2).toString("css"),c=t.withChannelValue(e,o).toString("css");return`linear-gradient(to ${i}, ${l}, ${u}, ${c})`}case"red":case"green":case"blue":case"saturation":case"brightness":case"alpha":{let l=t.withChannelValue(e,r).toString("css"),u=t.withChannelValue(e,o).toString("css");return`linear-gradient(to ${i}, ${l}, ${u})`}default:throw new Error(`Unknown color channel: ${e}`)}}function it(e,t){switch(t){case"hue":return H(`hsl(${e.getChannelValue("hue")}, 100%, 50%)`);case"red":case"green":case"blue":case"lightness":case"brightness":case"saturation":return e.withChannelValue("alpha",1);case"alpha":return e;default:throw new Error(`Unknown color channel: ${t}`)}}var Ht={hue:e=>[0,60,120,180,240,300,360].map(t=>e.withChannelValue("hue",t).toString("css")).join(", "),saturation:e=>`${e.withChannelValue("saturation",0).toString("css")}, transparent`,lightness:()=>"black, transparent, white",brightness:()=>"black, transparent"};function lt(e,t){let{xChannel:n,zChannel:a}=e.getSpaceAxes(t),r=e.getChannelValue(a),o=e.getFormat(),l=H((o==="rgba"||o==="oklcha"?"hsba":o)==="hsla"?"hsl(0, 100%, 50%)":"hsb(0, 100%, 100%)").withChannelValue(a,r),u=e.getChannels(),c=g=>g===n?"right":"top",f=u.filter(g=>g!==a).map(g=>`linear-gradient(to ${c(g)}, ${Ht[g](l)})`).reverse();return a==="hue"&&f.push(l.toString("css")),{"--px-area-gradient":f.join(", ")}}function z(e,t,n="hsba"){let a=e.getFormat()==="hsla";switch(t){case"hex":return e.getChannelValue("alpha")<e.getChannelRange("alpha").max?e.toString("hexa"):e.toString("hex");case"css":return e.toFormat(n).toString("css");case"red":case"green":case"blue":return e.toFormat("rgba").getChannelValue(t).toString();case"hue":return e.toFormat(a?"hsla":"hsba").getChannelValue("hue").toString();case"saturation":return e.toFormat(a?"hsla":"hsba").getChannelValue("saturation").toString();case"lightness":return e.toFormat("hsla").getChannelValue("lightness").toString();case"brightness":return e.toFormat("hsba").getChannelValue("brightness").toString();case"C":return e.toFormat("oklcha").getChannelValue("C").toString();case"H":return e.toFormat("oklcha").getChannelValue("H").toString();case"L":return e.toFormat("oklcha").getChannelValue("L").toString();default:return e.getChannelValue(t).toString()}}function ht(e,t="hex"){switch(t){case"hex":return{min:H("#000000").toHexInt(),max:H("#FFFFFF").toHexInt(),step:1};case"css":return;case"red":case"green":case"blue":return e.toFormat("rgba").getChannelRange(t);case"hue":case"lightness":case"saturation":return e.toFormat("hsla").getChannelRange(t);case"brightness":return e.toFormat("hsba").getChannelRange(t);case"L":case"C":case"H":return e.toFormat("oklcha").getChannelRange(t);default:return e.getChannelRange(t)}}import{withHeadless as It}from"@primereact/core/headless";import{useControlledState as yt}from"@primereact/hooks/use-controlled-state";import{useDirection as Gt}from"@primereact/hooks/use-direction";import*as F from"react";var ut={defaultValue:void 0,value:void 0,format:"hsba",disabled:!1,onValueChange:void 0,onValueChangeEnd:void 0};var $t=/^[0-9a-fA-F]{3,8}$/;function Bt(e){return $t.test(e)}function vt(e){return e.startsWith("#")?e:Bt(e)?`#${e}`:e}function Lt(e){return e.replace("to bottom","to top")}var Jt=It({name:"useInputColor",defaultProps:ut,setup({props:e}){let{format:t="hsba",disabled:n}=e,[a,r]=F.useState(!1),o=Gt()==="rtl",i=F.useRef([]),l=F.useRef({x:0,y:0}),u=F.useRef(e.defaultValue??H("#ff0000").toFormat(e.format||"hsba")),[c,f]=yt({value:e.value,defaultValue:u.current,onChange:e.onValueChange}),g=F.useMemo(()=>c??H("#ff0000").toFormat(t),[c,t]),_=t.startsWith("hsl")?"hsla":"hsba",d=F.useMemo(()=>g.toFormat(_),[g,_]),I={value:g,isAreaDragging:a},X=(s,h)=>{f([s,{color:s.toString(t),value:s,...h?.originalEvent?{originalEvent:h.originalEvent}:{}}]),U(s)},J=(s,h,R)=>{if(!R||n)return;let m=R.getBoundingClientRect(),C=Math.max(0,Math.min(1,(s-l.current.x-m.left)/m.width)),x=Math.max(0,Math.min(1,(h-l.current.y-m.top)/m.height)),{xChannel:b,yChannel:M}=O(),G=d.getChannelRange(b),y=d.getChannelRange(M),$=C*(G.max-G.min)+G.min,P=(1-x)*(y.max-y.min)+y.min,E=$-d.getChannelValue(b),N=P-d.getChannelValue(M),p=d.incChannelValue(b,E).incChannelValue(M,N);X(p)},Y=s=>{let h=s.currentTarget;if(!h||s.button!==0)return;let m=s.target?.closest?.('[data-part="area-handle"], .p-input-color-area-handle');if(m){let C=m.getBoundingClientRect(),x=C.left+C.width/2,b=C.top+C.height/2;l.current={x:s.clientX-x,y:s.clientY-b}}else l.current={x:0,y:0};h.setPointerCapture(s.pointerId),r(!0),J(s.clientX,s.clientY,h)},j=s=>{a&&J(s.clientX,s.clientY,s.currentTarget)},q=s=>{let h=s.currentTarget;h&&(h.releasePointerCapture(s.pointerId),r(!1),l.current={x:0,y:0},e.onValueChangeEnd&&e.onValueChangeEnd({originalEvent:s,color:g.toString(t),value:g}))},W=s=>{e.onValueChangeEnd&&e.onValueChangeEnd({originalEvent:s,color:g.toString(t),value:g})},Q=s=>{if(n)return;let h=s.key;if(!["ArrowRight","ArrowLeft","ArrowUp","ArrowDown"].includes(h))return;s.preventDefault();let{xChannel:R,yChannel:m}=O(),{step:C}=d.getChannelRange(R),{step:x}=d.getChannelRange(m),b=d;h==="ArrowRight"&&(b=b.incChannelValue(R,C)),h==="ArrowLeft"&&(b=b.decChannelValue(R,C)),h==="ArrowUp"&&(b=b.incChannelValue(m,x)),h==="ArrowDown"&&(b=b.decChannelValue(m,x)),X(b),e.onValueChangeEnd&&e.onValueChangeEnd({originalEvent:s,color:b.toString(t),value:b})},O=()=>{let s=d.getChannels();return{xChannel:s[1],yChannel:s[2]}},Z=()=>{if(typeof window<"u"&&!window.EyeDropper||n)return;new window.EyeDropper().open().then(h=>{let R=H(h.sRGBHex);X(R)}).catch(h=>{console.error("Error opening eyedropper",h)})},w=O(),{min:tt,max:ct}=d.getChannelRange(w.xChannel),{min:et,max:gt}=d.getChannelRange(w.yChannel),dt=d.getChannelValue(w.xChannel),mt=d.getChannelValue(w.yChannel),nt={...lt(d,w),"--px-handle-background":d.withChannelValue("alpha",1).toString("css"),"--px-handle-position-left":(dt-tt)/(ct-tt)*100+"%","--px-handle-position-top":(1-(mt-et)/(gt-et))*100+"%"},at={"--px-swatch-background":g.toString("css")},Ct=({channel:s="hue",orientation:h="horizontal",disabled:R}={})=>{let m=n||R,C=s==="alpha"?d:g.getChannels().includes(s)?g:d.getChannels().includes(s)?d:g.toFormat(t),x=C.getChannelRange(s),b=C.getChannelValue(s),M=ot(s,C,h,o),y={"--px-slider-background":h==="vertical"?Lt(M):M,"--px-slider-handle-background":it(C,s).toString("css")},$=E=>{if(m)return;let N=Array.isArray(E.value)?E.value[0]:E.value;if(N===void 0||Number.isNaN(N))return;let p=C.withChannelValue(s,N);X(p,{originalEvent:E.originalEvent})},P=E=>{if(m||!e.onValueChangeEnd)return;let N=Array.isArray(E.value)?E.value[0]:E.value;if(N===void 0||Number.isNaN(N))return;let p=C.withChannelValue(s,N);e.onValueChangeEnd({originalEvent:E.originalEvent,color:p.toString(t),value:p})};return{"data-scope":"inputcolor","data-part":"slider","data-orientation":h,"data-channel":s,orientation:h,style:y,value:b,min:x.min,max:x.max,step:x.step,disabled:m,onValueChange:$,onValueChangeEnd:P}},pt=s=>{let h=s.elementRef.current;i.current.includes(h)||i.current.push(h)},U=s=>{requestAnimationFrame(()=>{let h=s||g;i.current.forEach(m=>{let C=m.getAttribute("data-channel");if(C){let x=z(h,C,t);m.value=String(x)}})})};F.useEffect(()=>{U()},[g,t]);let[rt,st]=F.useState(null),bt=({channel:s="hex",disabled:h}={})=>{let R=n||h,m=g,C=t,x=ht(m,s),b=z(m,s,C),M=s==="hex"||s==="css",G=M&&rt!==null?rt:b,y=p=>{if(R)return;let V;if(M)try{V=H(s==="hex"?vt(String(p)):String(p))}catch{V=m}else{let B=m;s!=="alpha"&&(B=B.toFormat(C));let v=Number.parseFloat(String(p)),Rt=Number.isNaN(v)?B.getChannelValue(s):v;V=B.withChannelValue(s,Rt)}return X(V),V},$=p=>{let V=p.currentTarget,B=M?V.value:V.valueAsNumber,v=y(B);M&&st(null),!(!v||!e.onValueChangeEnd)&&e.onValueChangeEnd({originalEvent:p,color:v.toString(t),value:v})},P=p=>{let V=p.currentTarget;M?st(V.value):y(V.valueAsNumber)},E=p=>{$(p)},N=p=>{p.defaultPrevented||p.key==="Enter"&&($(p),p.preventDefault())};return{"data-scope":"inputcolor","data-part":"input",type:M?"text":"number",spellCheck:!1,autoComplete:"off",disabled:!!R,"data-channel":s,"aria-label":s,min:x?.min,max:x?.max,step:x?.step,value:G,onChange:P,onBlur:E,onKeyDown:N}},ft={"data-scope":"inputcolor","data-part":"root",...n&&{"data-disabled":""},...a&&{"data-dragging":""}},xt={"data-scope":"inputcolor","data-part":"area",style:nt,onPointerDown:Y,onPointerMove:j,onPointerUp:q},St={"data-scope":"inputcolor","data-part":"area-handle",role:"slider",tabIndex:n?-1:0,"aria-disabled":n,"aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":d.getChannelValue(w.xChannel),"aria-label":`${w.xChannel} and ${w.yChannel}`,"aria-roledescription":"2d slider","aria-valuetext":`${w.xChannel} ${d.getChannelValue(w.xChannel)}, ${w.yChannel} ${d.getChannelValue(w.yChannel)}`,onKeyDown:Q,onBlur:W};return{state:I,value:c,areaValue:d,areaChannels:w,rootProps:ft,areaProps:xt,areaHandleProps:St,swatchProps:{"data-scope":"inputcolor","data-part":"swatch",style:at},eyeDropperProps:{"data-scope":"inputcolor","data-part":"eye-dropper",disabled:!!n,onClick:Z},sliderHandleProps:{"data-scope":"inputcolor","data-part":"slider-handle",role:"slider",tabIndex:n?-1:0,"aria-disabled":n},getInputProps:bt,getSliderProps:Ct,setValue:f,handleAreaPointerDown:Y,handleAreaPointerMove:j,handleAreaPointerUp:q,handleAreaBlur:W,handleAreaKeyDown:Q,areaStyles:nt,swatchStyles:at,openEyeDropper:Z,syncChannelInputs:U,registerInputEl:pt}}});export{D as HSBColor,T as HSLColor,K as OKLCHColor,A as RGBColor,ut as defaultProps,lt as getAreaGradient,it as getChannelColor,ot as getChannelGradient,ht as getInputChannelRange,z as getInputChannelValue,Pt as isEqual,H as parseColor,Jt as useInputColor};
@@ -73,7 +73,7 @@ export declare const useInputColor: (inProps?: unknown) => import("@primereact/t
73
73
  min: number | undefined;
74
74
  max: number | undefined;
75
75
  step: number | undefined;
76
- channelValue: string;
76
+ value: string;
77
77
  onChange: (event: React.ChangeEvent<HTMLInputElement>) => void;
78
78
  onBlur: (event: React.FocusEvent<HTMLInputElement>) => void;
79
79
  onKeyDown: (event: React.KeyboardEvent<HTMLInputElement>) => void;
@@ -103,7 +103,7 @@ export declare const useInputColor: (inProps?: unknown) => import("@primereact/t
103
103
  value: number | number[] | undefined;
104
104
  }) => void;
105
105
  };
106
- setValue: (inValue: unknown | ((prev?: ColorInstance | undefined) => unknown)) => void;
106
+ setValue: import("@primereact/hooks").UseControlledStateSetter<ColorInstance | undefined>;
107
107
  handleAreaPointerDown: (event: React.PointerEvent<HTMLElement>) => void;
108
108
  handleAreaPointerMove: (event: React.PointerEvent<HTMLElement>) => void;
109
109
  handleAreaPointerUp: (event: React.PointerEvent<HTMLElement>) => void;
package/listbox/index.mjs CHANGED
@@ -1 +1 @@
1
- import{withHeadless as Je}from"@primereact/core/headless";import{useControlledState as We}from"@primereact/hooks/use-controlled-state";import{equals as je,findLastIndex as B,findSingle as Qe,focus as J,getFirstFocusableElement as fe,isElement as Xe,isNotEmpty as W,isNumber as Ye,isPrintableCharacter as Ze,isString as pe,nextFrame as et,resolveFieldData as v,toElement as K}from"@primeuix/utils";import*as u from"react";var de={value:void 0,defaultValue:void 0,options:[],optionKey:void 0,optionLabel:void 0,optionValue:void 0,optionDisabled:void 0,optionGroupLabel:void 0,optionGroupChildren:void 0,disabled:!1,invalid:!1,locale:void 0,multiple:!1,metaKeySelection:!1,autoOptionFocus:!0,selectOnFocus:!1,focusOnHover:!0,tabIndex:void 0,onValueChange:void 0};var ct=Je({name:"useListbox",defaultProps:de,setup({id:p,props:o,elementRef:y}){let[d,S]=u.useState(!1),[a,l]=u.useState(-1),[c,$]=We({value:o.value,defaultValue:o.defaultValue??null,onChange:o.onValueChange}),q={value:c,focused:d,focusedOptionIndex:a},R=u.useRef(null),O=u.useRef(null),g=u.useRef(null),L=u.useRef(!1),m=u.useRef(-1),h=u.useRef(null),w=u.useRef(""),r=()=>Ne||[],H=e=>`${p}_${e}`,f=e=>o.optionLabel?v(e,o.optionLabel):pe(e)||Ye(e)?e:null,b=e=>o.optionValue?v(e,o.optionValue):e,_=e=>o.optionDisabled?v(e,o.optionDisabled):!1,j=e=>!!(o.optionGroupLabel&&e?.optionGroup&&e?.group),ye=e=>o.optionGroupLabel?v(e,o.optionGroupLabel):pe(e)?e:null,Q=e=>o.optionGroupChildren?v(e,o.optionGroupChildren):null,V=()=>a!==-1?H(a):void 0,he=()=>{J(R.current);let e=fe(y.current,":not([data-focus-guard])"),t=K(g);t&&(t.tabIndex=Xe(e)?0:-1);let n=K(O);n&&(n.tabIndex=-1)},xe=e=>{if(e.relatedTarget===R.current){let s=fe(y.current,":not([data-focus-guard])");s instanceof HTMLElement&&J(s);let i=K(O);i&&(i.tabIndex=0)}else J(K(O));let n=K(g);n&&(n.tabIndex=-1)},Ee=e=>{let t=y.current instanceof HTMLElement&&y.current.contains(e.relatedTarget),n=K(g),s=K(O);!t&&n&&s&&(n.tabIndex=0,s.tabIndex=0)},Oe=e=>{let t=e?.currentTarget?.dataset?.dndFocusIndex,n=t!==void 0?parseInt(t,10):a!==-1?a:o.autoOptionFocus?T():ae();S(!0),l(n),z(),C(n)},ge=()=>{S(!1),l(-1),m.current=-1,w.current=""},we=e=>{let t=e.metaKey||e.ctrlKey;switch(e.code){case"ArrowDown":X(e);break;case"ArrowUp":Y(e);break;case"Home":Z(e);break;case"End":ee(e);break;case"PageDown":Pe(e);break;case"PageUp":He(e);break;case"Enter":case"NumpadEnter":case"Space":De(e);break;case"Tab":break;case"ShiftLeft":case"ShiftRight":ne();break;default:if(o.multiple&&e.code==="KeyA"&&t){let n=r().filter(s=>x(s)).map(s=>b(s));M(e,n),e.preventDefault();break}!t&&Ze(e.key)&&(Ge(e,e.key),e.preventDefault());break}},G=(e,t,n=-1)=>{o.disabled||_(t)||(o.multiple?ke(e,t):Re(e,t),L.current=!1,n!==-1&&l(n))},Ie=()=>{o.disabled||(L.current=!0)},Re=(e,t)=>{let n=N(t),s=L.current?!1:o.metaKeySelection,i=!1,E=null;if(s){let A=e&&(e.metaKey||e.ctrlKey);n?A&&(E=null,i=!0):(E=b(t),i=!0)}else E=n?null:b(t),i=!0;i&&M(e,E)},ke=(e,t)=>{let n=N(t),s=L.current?!1:o.metaKeySelection,i=null;if(s){let E=e.metaKey||e.ctrlKey;n?i=E?ue(t):[b(t)]:(i=E?Array.isArray(c)?c:[]:[],i=[...i,b(t)])}else i=n?ue(t):[...Array.isArray(c)?c:[],b(t)];M(e,i)},P=(e,t=-1,n=-1)=>{if(t=t===-1?ie(n,!0):t,n=n===-1?ie(t):n,t!==-1&&n!==-1){let s=Math.min(t,n),i=Math.max(t,n),E=r().slice(s,i+1).filter(A=>x(A)).map(A=>b(A));M(e,E)}},Ke=()=>{l(-1),m.current=-1},Se=()=>{l(-1),m.current=-1},Le=e=>{switch(e.code){case"ArrowDown":X(e);break;case"ArrowUp":Y(e);break;case"ArrowLeft":case"ArrowRight":Me(e,!0);break;case"Home":Z(e,!0);break;case"End":ee(e,!0);break;case"Enter":case"NumpadEnter":te(e);break;case"ShiftLeft":case"ShiftRight":ne();break;default:break}},Fe=e=>{o.disabled||M(e,o.multiple?[]:null)},X=e=>{let t=a!==-1?Te(a):T();o.multiple&&e.shiftKey&&P(e,m.current,t),F(e,t),e.preventDefault()},Y=e=>{let t=a!==-1?Ce(a):Ve();o.multiple&&e.shiftKey&&P(e,t,m.current),F(e,t),e.preventDefault()},Me=(e,t=!1)=>{t&&l(-1)},Z=(e,t=!1)=>{if(t){let n=e.currentTarget;e.shiftKey?n?.setSelectionRange(0,n.selectionStart):(n?.setSelectionRange(0,0),l(-1))}else{let n=e.metaKey||e.ctrlKey,s=oe();o.multiple&&e.shiftKey&&n&&P(e,s,m.current),F(e,s)}e.preventDefault()},ee=(e,t=!1)=>{if(t){let n=e.currentTarget,s=n.value.length;e.shiftKey?n.setSelectionRange(n.selectionStart,s):(n.setSelectionRange(s,s),l(-1))}else{let n=e.metaKey||e.ctrlKey,s=se();o.multiple&&e.shiftKey&&n&&P(e,m.current,s),F(e,s)}e.preventDefault()},He=e=>{C(0),e.preventDefault()},Pe=e=>{C(r().length-1),e.preventDefault()},te=e=>{a!==-1&&(o.multiple&&e.shiftKey?P(e,a):G(e,r()[a]))},De=e=>{e.preventDefault(),te(e)},ne=()=>{m.current=a},U=e=>x(e)&&f(e)?.toLocaleLowerCase(o.locale).startsWith(w.current?.toLocaleLowerCase(o.locale)),x=e=>W(e)&&!_(e)&&!j(e),k=e=>x(e)&&N(e),D=(e,t)=>je(e,t,le),N=e=>{let t=b(e);return o.multiple?Array.isArray(c)&&c.some(n=>D(n,t)):D(c,t)},oe=()=>r().findIndex(e=>x(e)),se=()=>B(r(),e=>x(e)),Te=e=>{let t=e<r().length-1?r().slice(e+1).findIndex(n=>x(n)):-1;return t>-1?t+e+1:e},Ce=e=>{let t=e>0?B(r().slice(0,e),n=>x(n)):-1;return t>-1?t:e},ae=()=>{if(I())if(o.multiple&&Array.isArray(c))for(let e=c.length-1;e>=0;e--){let t=c[e],n=r().findIndex(s=>k(s)&&D(t,b(s)));if(n>-1)return n}else return r().findIndex(e=>k(e));return-1},Ae=()=>I()?r().findIndex(e=>k(e)):-1,ve=()=>I()?B(r(),e=>k(e)):-1,re=e=>{let t=I()&&e<r().length-1?r().slice(e+1).findIndex(n=>k(n)):-1;return t>-1?t+e+1:-1},ce=e=>{let t=I()&&e>0?B(r().slice(0,e),n=>k(n)):-1;return t>-1?t:-1},ie=(e,t=!1)=>{let n=-1;return I()&&(t?(n=ce(e),n=n===-1?re(e):n):(n=re(e),n=n===-1?ce(e):n)),n>-1?n:e},T=()=>{let e=Ae();return e<0?oe():e},Ve=()=>{let e=ve();return e<0?se():e},Ge=(e,t)=>{w.current=(w.current||"")+t;let n=-1;W(w.current)&&(a!==-1?(n=r().slice(a).findIndex(s=>U(s)),n=n===-1?r().slice(0,a).findIndex(s=>U(s)):n+a):n=r().findIndex(s=>U(s)),n===-1&&a===-1&&(n=T()??-1),n!==-1&&F(e,n)),h.current&&clearTimeout(h.current),h.current=setTimeout(()=>{w.current="",h.current=null},500)},ue=e=>Array.isArray(c)?c.filter(t=>!D(t,b(e))):[],F=(e,t=-1)=>{a!==t&&(l(t),C(t),o.selectOnFocus&&!o.multiple&&t!==-1&&G(e,r()[t]))},C=(e=-1)=>{et().then(()=>{let t=e!==-1?H(e):V();Qe(R.current,`[id="${t}"]`)?.scrollIntoView?.({block:"nearest",inline:"nearest",behavior:"smooth"})})},z=()=>{if(o.selectOnFocus&&o.autoOptionFocus&&!I()&&!o.multiple&&d){let e=T();l(e),G(null,r()[e])}},M=(e,t)=>{$([t,{originalEvent:e,value:t}])},I=()=>W(c);u.useEffect(()=>(z(),()=>{h.current&&(clearTimeout(h.current),h.current=null)}),[]);let Ue=u.useMemo(()=>{let e=[];return(o.options||[]).forEach(t=>{let n=Q(t)||[];n?.length&&e.push({optionGroup:t,group:!0},...n)}),e},[o.options]),Ne=o.optionGroupLabel?Ue:o.options,le=o.optionValue?void 0:o.optionKey,Be={role:"presentation",ref:g,"aria-hidden":!0,"data-focus-guard":"",onFocus:xe},$e={role:"presentation",ref:O,"aria-hidden":!0,"data-focus-guard":"",onFocus:he},qe={role:"searchbox",autoComplete:"off",disabled:o.disabled,tabIndex:void 0,"aria-owns":p?`${p}_list`:void 0,"aria-activedescendant":V(),"data-scope":"listbox","data-part":"filter",onBlur:Se,onChange:Ke,onKeyDown:Le},_e={id:`${p}_list`,role:"listbox",ref:R,tabIndex:-1,"aria-activedescendant":d?V():void 0,"data-scope":"listbox","data-part":"list",onFocus:Oe,onBlur:ge,onKeyDown:we},ze={id:p,"data-scope":"listbox","data-part":"root","data-disabled":o.disabled||void 0,"data-invalid":o.invalid||void 0,onBlur:Ee};return{state:q,listRef:R,firstHiddenElementRef:O,lastHiddenElementRef:g,rootProps:ze,listProps:_e,filterProps:qe,firstHiddenProps:$e,lastHiddenProps:Be,getOptions:r,getOptionId:H,getOptionLabel:f,getOptionValue:b,isOptionDisabled:_,isOptionGroup:j,getOptionGroupLabel:ye,getOptionGroupChildren:Q,getFocusedOptionId:V,onOptionSelect:G,onOptionTouchEnd:Ie,onClearClick:Fe,isOptionMatched:U,isValidOption:x,isValidSelectedOption:k,isSelected:N,changeFocusedOptionIndex:F,findSelectedOptionIndex:ae,findFirstFocusedOptionIndex:T,scrollInView:C,updateModel:M,autoUpdateModel:z,equalityKey:le,hasValue:I,isEquals:D}}});import{withHeadless as tt}from"@primereact/core/headless";import*as me from"react";var be={option:void 0,index:void 0,group:!1,disabled:void 0,context:void 0};var ft=tt({name:"useListboxOption",defaultProps:be,setup({props:p}){let o=p.context,y=p.option,d=p.index??-1,S=p.group??!1,a=o?.isSelected(y)??!1,l=o?.state?.focusedOptionIndex===d,c=p.disabled??o?.isOptionDisabled(y)??!1,$={selected:a,focused:l,disabled:c,group:S},q=me.useMemo(()=>{if(S)return{};let g=o?.getOptions()??[],L=g.filter(f=>!o?.isOptionGroup(f)).length,m=(o?.props?.optionGroupLabel?d-(g.slice(0,d).filter(f=>o?.isOptionGroup(f)).length||0):d)+1,h=f=>o?.onOptionSelect(f,y,d),w=f=>{o?.changeFocusedOptionIndex(f,d)},r=f=>{o?.props?.focusOnHover&&o?.state?.focused&&o?.changeFocusedOptionIndex(f,d)},H=()=>o?.onOptionTouchEnd();return{id:o?.getOptionId(d)??"",role:"option","aria-selected":a,"aria-disabled":c,"aria-setsize":L,"aria-posinset":m,[a?"data-selected":"data-unselected"]:"",...c&&{"data-disabled":""},...l&&{"data-focused":""},"data-scope":"listbox","data-part":"option",onClick:h,onMouseDown:w,onMouseMove:r,onTouchEnd:H}},[o,y,d,a,c,l,S]),R={role:"presentation","data-scope":"listbox","data-part":"optionGroup"},O={"aria-hidden":!0,"data-scope":"listbox","data-part":"optionindicator",[a?"data-selected":"data-unselected"]:""};return{state:$,optionProps:q,groupProps:R,optionIndicatorProps:O}}});export{be as defaultOptionProps,de as defaultProps,ct as useListbox,ft as useListboxOption};
1
+ import{withHeadless as Je}from"@primereact/core/headless";import{useControlledState as We}from"@primereact/hooks/use-controlled-state";import{equals as je,findLastIndex as B,findSingle as Qe,focus as J,getFirstFocusableElement as fe,isElement as Xe,isNotEmpty as W,isNumber as Ye,isPrintableCharacter as Ze,isString as pe,nextFrame as et,resolveFieldData as v,toElement as K}from"@primeuix/utils";import*as u from"react";var de={value:void 0,defaultValue:void 0,options:[],optionKey:void 0,optionLabel:void 0,optionValue:void 0,optionDisabled:void 0,optionGroupLabel:void 0,optionGroupChildren:void 0,disabled:!1,invalid:!1,locale:void 0,multiple:!1,metaKeySelection:!1,autoOptionFocus:!0,selectOnFocus:!1,focusOnHover:!0,tabIndex:void 0,onValueChange:void 0};var ct=Je({name:"useListbox",defaultProps:de,setup({id:p,props:o,elementRef:y}){let[d,S]=u.useState(!1),[a,l]=u.useState(-1),[c,$]=We({value:o.value,defaultValue:o.defaultValue??null,onChange:o.onValueChange}),q={value:c,focused:d,focusedOptionIndex:a},R=u.useRef(null),O=u.useRef(null),g=u.useRef(null),L=u.useRef(!1),m=u.useRef(-1),h=u.useRef(null),w=u.useRef(""),r=()=>Ne||[],H=e=>`${p}_${e}`,f=e=>o.optionLabel?v(e,o.optionLabel):pe(e)||Ye(e)?e:null,b=e=>o.optionValue?v(e,o.optionValue):e,_=e=>o.optionDisabled?!!v(e,o.optionDisabled):!1,j=e=>!!(o.optionGroupLabel&&e?.optionGroup&&e?.group),ye=e=>o.optionGroupLabel?v(e,o.optionGroupLabel):pe(e)?e:null,Q=e=>o.optionGroupChildren?v(e,o.optionGroupChildren):null,V=()=>a!==-1?H(a):void 0,he=()=>{J(R.current);let e=fe(y.current,":not([data-focus-guard])"),t=K(g);t&&(t.tabIndex=Xe(e)?0:-1);let n=K(O);n&&(n.tabIndex=-1)},xe=e=>{if(e.relatedTarget===R.current){let s=fe(y.current,":not([data-focus-guard])");s instanceof HTMLElement&&J(s);let i=K(O);i&&(i.tabIndex=0)}else J(K(O));let n=K(g);n&&(n.tabIndex=-1)},Ee=e=>{let t=y.current instanceof HTMLElement&&y.current.contains(e.relatedTarget),n=K(g),s=K(O);!t&&n&&s&&(n.tabIndex=0,s.tabIndex=0)},Oe=e=>{let t=e?.currentTarget?.dataset?.dndFocusIndex,n=t!==void 0?parseInt(t,10):a!==-1?a:o.autoOptionFocus?T():ae();S(!0),l(n),z(),C(n)},ge=()=>{S(!1),l(-1),m.current=-1,w.current=""},we=e=>{let t=e.metaKey||e.ctrlKey;switch(e.code){case"ArrowDown":X(e);break;case"ArrowUp":Y(e);break;case"Home":Z(e);break;case"End":ee(e);break;case"PageDown":Pe(e);break;case"PageUp":He(e);break;case"Enter":case"NumpadEnter":case"Space":De(e);break;case"Tab":break;case"ShiftLeft":case"ShiftRight":ne();break;default:if(o.multiple&&e.code==="KeyA"&&t){let n=r().filter(s=>x(s)).map(s=>b(s));M(e,n),e.preventDefault();break}!t&&Ze(e.key)&&(Ge(e,e.key),e.preventDefault());break}},G=(e,t,n=-1)=>{o.disabled||_(t)||(o.multiple?ke(e,t):Re(e,t),L.current=!1,n!==-1&&l(n))},Ie=()=>{o.disabled||(L.current=!0)},Re=(e,t)=>{let n=N(t),s=L.current?!1:o.metaKeySelection,i=!1,E=null;if(s){let A=e&&(e.metaKey||e.ctrlKey);n?A&&(E=null,i=!0):(E=b(t),i=!0)}else E=n?null:b(t),i=!0;i&&M(e,E)},ke=(e,t)=>{let n=N(t),s=L.current?!1:o.metaKeySelection,i=null;if(s){let E=e.metaKey||e.ctrlKey;n?i=E?ue(t):[b(t)]:(i=E?Array.isArray(c)?c:[]:[],i=[...i,b(t)])}else i=n?ue(t):[...Array.isArray(c)?c:[],b(t)];M(e,i)},P=(e,t=-1,n=-1)=>{if(t=t===-1?ie(n,!0):t,n=n===-1?ie(t):n,t!==-1&&n!==-1){let s=Math.min(t,n),i=Math.max(t,n),E=r().slice(s,i+1).filter(A=>x(A)).map(A=>b(A));M(e,E)}},Ke=()=>{l(-1),m.current=-1},Se=()=>{l(-1),m.current=-1},Le=e=>{switch(e.code){case"ArrowDown":X(e);break;case"ArrowUp":Y(e);break;case"ArrowLeft":case"ArrowRight":Me(e,!0);break;case"Home":Z(e,!0);break;case"End":ee(e,!0);break;case"Enter":case"NumpadEnter":te(e);break;case"ShiftLeft":case"ShiftRight":ne();break;default:break}},Fe=e=>{o.disabled||M(e,o.multiple?[]:null)},X=e=>{let t=a!==-1?Te(a):T();o.multiple&&e.shiftKey&&P(e,m.current,t),F(e,t),e.preventDefault()},Y=e=>{let t=a!==-1?Ce(a):Ve();o.multiple&&e.shiftKey&&P(e,t,m.current),F(e,t),e.preventDefault()},Me=(e,t=!1)=>{t&&l(-1)},Z=(e,t=!1)=>{if(t){let n=e.currentTarget;e.shiftKey?n?.setSelectionRange(0,n.selectionStart):(n?.setSelectionRange(0,0),l(-1))}else{let n=e.metaKey||e.ctrlKey,s=oe();o.multiple&&e.shiftKey&&n&&P(e,s,m.current),F(e,s)}e.preventDefault()},ee=(e,t=!1)=>{if(t){let n=e.currentTarget,s=n.value.length;e.shiftKey?n.setSelectionRange(n.selectionStart,s):(n.setSelectionRange(s,s),l(-1))}else{let n=e.metaKey||e.ctrlKey,s=se();o.multiple&&e.shiftKey&&n&&P(e,m.current,s),F(e,s)}e.preventDefault()},He=e=>{C(0),e.preventDefault()},Pe=e=>{C(r().length-1),e.preventDefault()},te=e=>{a!==-1&&(o.multiple&&e.shiftKey?P(e,a):G(e,r()[a]))},De=e=>{e.preventDefault(),te(e)},ne=()=>{m.current=a},U=e=>x(e)&&f(e)?.toLocaleLowerCase(o.locale).startsWith(w.current?.toLocaleLowerCase(o.locale)),x=e=>W(e)&&!_(e)&&!j(e),k=e=>x(e)&&N(e),D=(e,t)=>je(e,t,le),N=e=>{let t=b(e);return o.multiple?Array.isArray(c)&&c.some(n=>D(n,t)):D(c,t)},oe=()=>r().findIndex(e=>x(e)),se=()=>B(r(),e=>x(e)),Te=e=>{let t=e<r().length-1?r().slice(e+1).findIndex(n=>x(n)):-1;return t>-1?t+e+1:e},Ce=e=>{let t=e>0?B(r().slice(0,e),n=>x(n)):-1;return t>-1?t:e},ae=()=>{if(I())if(o.multiple&&Array.isArray(c))for(let e=c.length-1;e>=0;e--){let t=c[e],n=r().findIndex(s=>k(s)&&D(t,b(s)));if(n>-1)return n}else return r().findIndex(e=>k(e));return-1},Ae=()=>I()?r().findIndex(e=>k(e)):-1,ve=()=>I()?B(r(),e=>k(e)):-1,re=e=>{let t=I()&&e<r().length-1?r().slice(e+1).findIndex(n=>k(n)):-1;return t>-1?t+e+1:-1},ce=e=>{let t=I()&&e>0?B(r().slice(0,e),n=>k(n)):-1;return t>-1?t:-1},ie=(e,t=!1)=>{let n=-1;return I()&&(t?(n=ce(e),n=n===-1?re(e):n):(n=re(e),n=n===-1?ce(e):n)),n>-1?n:e},T=()=>{let e=Ae();return e<0?oe():e},Ve=()=>{let e=ve();return e<0?se():e},Ge=(e,t)=>{w.current=(w.current||"")+t;let n=-1;W(w.current)&&(a!==-1?(n=r().slice(a).findIndex(s=>U(s)),n=n===-1?r().slice(0,a).findIndex(s=>U(s)):n+a):n=r().findIndex(s=>U(s)),n===-1&&a===-1&&(n=T()??-1),n!==-1&&F(e,n)),h.current&&clearTimeout(h.current),h.current=setTimeout(()=>{w.current="",h.current=null},500)},ue=e=>Array.isArray(c)?c.filter(t=>!D(t,b(e))):[],F=(e,t=-1)=>{a!==t&&(l(t),C(t),o.selectOnFocus&&!o.multiple&&t!==-1&&G(e,r()[t]))},C=(e=-1)=>{et().then(()=>{let t=e!==-1?H(e):V();Qe(R.current,`[id="${t}"]`)?.scrollIntoView?.({block:"nearest",inline:"nearest",behavior:"smooth"})})},z=()=>{if(o.selectOnFocus&&o.autoOptionFocus&&!I()&&!o.multiple&&d){let e=T();l(e),G(null,r()[e])}},M=(e,t)=>{$([t,{originalEvent:e,value:t}])},I=()=>W(c);u.useEffect(()=>(z(),()=>{h.current&&(clearTimeout(h.current),h.current=null)}),[]);let Ue=u.useMemo(()=>{let e=[];return(o.options||[]).forEach(t=>{let n=Q(t)||[];n?.length&&e.push({optionGroup:t,group:!0},...n)}),e},[o.options]),Ne=o.optionGroupLabel?Ue:o.options,le=o.optionValue?void 0:o.optionKey,Be={role:"presentation",ref:g,"aria-hidden":!0,"data-focus-guard":"",onFocus:xe},$e={role:"presentation",ref:O,"aria-hidden":!0,"data-focus-guard":"",onFocus:he},qe={role:"searchbox",autoComplete:"off",disabled:o.disabled,tabIndex:void 0,"aria-owns":p?`${p}_list`:void 0,"aria-activedescendant":V(),"data-scope":"listbox","data-part":"filter",onBlur:Se,onChange:Ke,onKeyDown:Le},_e={id:`${p}_list`,role:"listbox",ref:R,tabIndex:-1,"aria-activedescendant":d?V():void 0,"data-scope":"listbox","data-part":"list",onFocus:Oe,onBlur:ge,onKeyDown:we},ze={id:p,"data-scope":"listbox","data-part":"root","data-disabled":o.disabled||void 0,"data-invalid":o.invalid||void 0,onBlur:Ee};return{state:q,listRef:R,firstHiddenElementRef:O,lastHiddenElementRef:g,rootProps:ze,listProps:_e,filterProps:qe,firstHiddenProps:$e,lastHiddenProps:Be,getOptions:r,getOptionId:H,getOptionLabel:f,getOptionValue:b,isOptionDisabled:_,isOptionGroup:j,getOptionGroupLabel:ye,getOptionGroupChildren:Q,getFocusedOptionId:V,onOptionSelect:G,onOptionTouchEnd:Ie,onClearClick:Fe,isOptionMatched:U,isValidOption:x,isValidSelectedOption:k,isSelected:N,changeFocusedOptionIndex:F,findSelectedOptionIndex:ae,findFirstFocusedOptionIndex:T,scrollInView:C,updateModel:M,autoUpdateModel:z,equalityKey:le,hasValue:I,isEquals:D}}});import{withHeadless as tt}from"@primereact/core/headless";import*as me from"react";var be={option:void 0,index:void 0,group:!1,disabled:void 0,context:void 0};var ft=tt({name:"useListboxOption",defaultProps:be,setup({props:p}){let o=p.context,y=p.option,d=p.index??-1,S=p.group??!1,a=o?.isSelected(y)??!1,l=o?.state?.focusedOptionIndex===d,c=p.disabled??o?.isOptionDisabled(y)??!1,$={selected:a,focused:l,disabled:c,group:S},q=me.useMemo(()=>{if(S)return{};let g=o?.getOptions()??[],L=g.filter(f=>!o?.isOptionGroup(f)).length,m=(o?.props?.optionGroupLabel?d-(g.slice(0,d).filter(f=>o?.isOptionGroup(f)).length||0):d)+1,h=f=>o?.onOptionSelect(f,y,d),w=f=>{o?.changeFocusedOptionIndex(f,d)},r=f=>{o?.props?.focusOnHover&&o?.state?.focused&&o?.changeFocusedOptionIndex(f,d)},H=()=>o?.onOptionTouchEnd();return{id:o?.getOptionId(d)??"",role:"option","aria-selected":a,"aria-disabled":c,"aria-setsize":L,"aria-posinset":m,[a?"data-selected":"data-unselected"]:"",...c&&{"data-disabled":""},...l&&{"data-focused":""},"data-scope":"listbox","data-part":"option",onClick:h,onMouseDown:w,onMouseMove:r,onTouchEnd:H}},[o,y,d,a,c,l,S]),R={role:"presentation","data-scope":"listbox","data-part":"optionGroup"},O={"aria-hidden":!0,"data-scope":"listbox","data-part":"optionindicator",[a?"data-selected":"data-unselected"]:""};return{state:$,optionProps:q,groupProps:R,optionIndicatorProps:O}}});export{be as defaultOptionProps,de as defaultProps,ct as useListbox,ft as useListboxOption};
@@ -59,7 +59,7 @@ export declare const useListbox: (inProps?: unknown) => import("@primereact/type
59
59
  getOptionId: (index: number) => string;
60
60
  getOptionLabel: (option: unknown) => any;
61
61
  getOptionValue: (option: unknown) => any;
62
- isOptionDisabled: (option: unknown) => any;
62
+ isOptionDisabled: (option: unknown) => boolean;
63
63
  isOptionGroup: (option: unknown) => boolean;
64
64
  getOptionGroupLabel: (optionGroup: unknown) => any;
65
65
  getOptionGroupChildren: (optionGroup: unknown) => any;
package/menu/index.mjs CHANGED
@@ -1 +1 @@
1
- import{withHeadless as rt}from"@primereact/core/headless";import{usePopover as ot}from"@primereact/headless/popover";import{focus as V,isPrintableCharacter as st,toElement as A}from"@primeuix/utils";import*as i from"react";var Re={open:void 0,defaultOpen:void 0,composite:!0,appendTo:"body",baseZIndex:0,autoZIndex:!0,tabIndex:0,openDelay:100,closeDelay:0,openOnHover:!1,onOpenChange:void 0,context:void 0,navigationmenu:void 0,navigationmenuMenuId:void 0};var B=(o,O)=>{let N=o.compareDocumentPosition(O);return N&Node.DOCUMENT_POSITION_FOLLOWING?-1:N&Node.DOCUMENT_POSITION_PRECEDING?1:0},ft=rt({name:"useMenu",defaultProps:Re,setup({props:o,id:O}){let N=!!(o.navigationmenu&&o.navigationmenuMenuId),ye=N?o.navigationmenu.isMenuOpen(o.navigationmenuMenuId):o.open,ne=o.onOpenChange,Le=N?t=>{ne?.(t),o.navigationmenu.onMenuOpenChange(o.navigationmenuMenuId,!!t.value)}:ne,Ie=ot({open:ye,defaultOpen:o.defaultOpen,onOpenChange:Le}),u=o.context?.popover??Ie,[Te,re]=i.useState(!1),[d,f]=i.useState(o.composite?[]:""),[w,oe]=i.useState(void 0),se=i.useRef(!1),ae=i.useRef(!0),x=i.useRef(new Map),k=i.useRef(new Map),R=(t,e)=>{let n=t.current.get(e);n!==void 0&&(window.clearTimeout(n),t.current.delete(e))},_=(t,e,n,r)=>{let s=e==="open"?x:k;if(R(e==="open"?k:x,t),R(s,t),n<=0){r();return}let c=window.setTimeout(()=>{s.current.delete(t),r()},n);s.current.set(t,c)};i.useEffect(()=>{let t=x.current,e=k.current;return()=>{t.forEach(n=>window.clearTimeout(n)),e.forEach(n=>window.clearTimeout(n)),t.clear(),e.clear()}},[]);let g=i.useRef(new Map),h=i.useRef(new Map),H=i.useRef(new Map),W=i.useRef(new Map),ce=i.useRef(new Map),v=i.useRef(null),Ae=i.useCallback(t=>{v.current=A(t)},[]),y={open:!!u.state.open,focused:Te,focusedOptionId:d,anchorElement:u.state.anchorElement,positionerElement:u.state.positionerElement,popupElement:u.state.popupElement,arrowElement:u.state.arrowElement},q=i.useCallback(t=>`${O}_item_${t}`,[O]),z=i.useCallback(t=>t?`${O}_list_${t}`:`${O}_list`,[O]),L=i.useCallback(t=>{let e=0,n=t.parentElement;for(;n&&(n.getAttribute("role")==="menu"&&e++,n!==v.current);)n=n.parentElement;if(n!==v.current){let r=t.closest('[role="menu"]');if(r){for(let[s,a]of H.current.entries())if(a.current===r){let c=g.current.get(s);if(c)return L(c)+1}}}return Math.max(0,e-1)},[]),ie=i.useCallback(t=>{let e=t.closest('[role="menu"]');if(!e)return[];let n=[];return g.current.forEach((r,s)=>{r.closest('[role="menu"]')===e&&!r.hasAttribute("data-disabled")&&n.push({id:s,element:r})}),n.sort((r,s)=>B(r.element,s.element)),n},[]),Z=i.useCallback(()=>{if(!v.current)return[];let t=[];return g.current.forEach((e,n)=>{e.closest('[role="menu"]')===v.current&&!e.hasAttribute("data-disabled")&&t.push({id:n,element:e})}),t.sort((e,n)=>B(e.element,n.element)),t},[]),ue=i.useCallback(t=>{let e=H.current.get(t)?.current;if(!e){let r=g.current.get(t);if(!r)return[];let s=r.closest('[data-scope="menu"][data-part="submenu"]')||r.parentElement;if(!s)return[];if(e=s.querySelector('[role="menu"]'),!e)return[]}let n=[];return g.current.forEach((r,s)=>{r.closest('[role="menu"]')===e&&!r.hasAttribute("data-disabled")&&n.push({id:s,element:r})}),n.sort((r,s)=>B(r.element,s.element)),n},[]),J=i.useCallback(t=>{if(!t)return;let e=L(t)+1;t.setAttribute("aria-level",String(e));let n=t.closest('[role="menu"]');if(n){let r=[];g.current.forEach(a=>{a.closest('[role="menu"]')===n&&r.push(a)}),r.sort(B);let s=String(r.length);r.forEach((a,c)=>{a.setAttribute("aria-posinset",String(c+1)),a.setAttribute("aria-setsize",s)})}},[L]),le=i.useRef(J);le.current=J;let de=i.useCallback(t=>(W.current.has(t)||W.current.set(t,e=>{A(e)?(g.current.set(t,A(e)),le.current(A(e))):(g.current.delete(t),W.current.delete(t))}),W.current.get(t)),[]),Q=t=>{t||h.current.forEach(e=>{e.close()}),u.setOpen?.(t)},U=i.useCallback(t=>d?Array.isArray(d)?d.includes(t):d===t:!1,[d]),C=i.useCallback(()=>{let t=[];return g.current.forEach((e,n)=>{if(e.hasAttribute("data-disabled"))return;let s=e,a=!0;for(;s&&s!==v.current;){let c=s.closest('[data-part="list"]');if(!c||c===v.current)break;let b=c.previousElementSibling;if(b&&b.getAttribute("aria-expanded")==="false"){a=!1;break}s=c.parentElement}a&&t.push({id:n,element:e})}),t.sort((e,n)=>B(e.element,n.element)),t},[]),D=i.useCallback(()=>{let t=T();if(!t)return Z();let e=g.current.get(t);return e?ie(e):Z()},[d,ie,Z]),E=t=>{se.current=t},p=t=>{E(!0),o.composite?f(e=>{let n=Array.isArray(e)?e:[];if(n.length===0)return[t];let r=g.current.get(t);if(!r)return[t];let s=L(r),a=n.findIndex(b=>{let l=g.current.get(b);return l&&L(l)===s});return a!==-1?[...n.slice(0,a),t]:[...n.filter(b=>{let l=g.current.get(b);return l&&L(l)<s}),t]}):f(t)},T=()=>o.composite&&Array.isArray(d)?d[d.length-1]||"":typeof d=="string"?d:"",Oe=t=>{let e=o.composite?D():C();if(e.length===0)return;let n=T(),r=n?e.findIndex(a=>a.id===n)+1:0,s=t.toLowerCase();for(let a=r;a<e.length;a++){let c=e[a];if((c.element.textContent?.trim().toLowerCase()||"").startsWith(s)){o.composite?p(c.id):f(c.id);return}}for(let a=0;a<r;a++){let c=e[a];if((c.element.textContent?.trim().toLowerCase()||"").startsWith(s)){o.composite?p(c.id):f(c.id);return}}},fe=()=>{if(!o.composite||!Array.isArray(d))return;let t=d[d.length-1];if(!t)return;let e=h.current.get(t);if(e){let n=g.current.get(t);n&&n.getAttribute("aria-expanded")==="true"&&e.close()}},G=()=>{o.composite?(h.current.forEach(t=>{t.close()}),f([])):f("")},X=t=>{if(!o.composite||!Array.isArray(d))return;let e=g.current.get(t);if(!e)return;let n=L(e);h.current.forEach((r,s)=>{let a=g.current.get(s);if(!a)return;L(a)>=n&&a.getAttribute("aria-expanded")==="true"&&r.close()}),f(r=>(Array.isArray(r)?r:[]).filter(a=>{let c=g.current.get(a);return c&&L(c)<n}))},ke=t=>{t.preventDefault();let e=o.composite?D():C();if(e.length===0)return;let n=T();if(!n){o.composite?p(e[0].id):f(e[0].id);return}let r=e.findIndex(a=>a.id===n),s=r<e.length-1?r+1:0;o.composite?(fe(),p(e[s].id)):f(e[s].id)},Pe=t=>{if(t.preventDefault(),t.altKey){pe();return}let e=o.composite?D():C();if(e.length===0)return;let n=T();if(!n){o.composite?p(e[e.length-1].id):f(e[e.length-1].id);return}let r=e.findIndex(a=>a.id===n),s=r>0?r-1:e.length-1;o.composite?(fe(),p(e[s].id)):f(e[s].id)},we=t=>{if(!o.composite&&!o.navigationmenu)return;t.preventDefault();let e=T(),r=(e?g.current.get(e):null)?.getAttribute("aria-expanded")??null;if(e&&r!==null){if(r==="false"){let c=h.current.get(e);c&&c.open()}let s=0,a=()=>{let c=ue(e);if(c.length>0){o.composite?f(b=>[...Array.isArray(b)?b:[],c[0].id]):f(c[0].id);return}s++<5&&requestAnimationFrame(a)};requestAnimationFrame(a);return}o.navigationmenu&&o.navigationmenuMenuId&&o.navigationmenu.focusSibling(o.navigationmenuMenuId,"next")},He=t=>{if(!(!o.composite&&!o.navigationmenu)){if(t.preventDefault(),o.composite&&Array.isArray(d)&&d.length>1){let e=d[d.length-2];h.current.get(e)?.close(),f(n=>(Array.isArray(n)?n:[]).slice(0,-1));return}if(o.navigationmenu&&o.navigationmenuMenuId&&!o.composite){let e=T(),r=(e?g.current.get(e):null)?.closest('[role="menu"]');if(!!r&&r!==v.current){let a;H.current.forEach((c,b)=>{c.current===r&&(a=b)}),a&&(h.current.get(a)?.close(),f(a));return}}o.navigationmenu&&o.navigationmenuMenuId&&o.navigationmenu.focusSibling(o.navigationmenuMenuId,"previous")}},xe=t=>{t.preventDefault();let e=o.composite?D():C();e.length!==0&&(o.composite?p(e[0].id):f(e[0].id))},Ce=t=>{t.preventDefault();let e=o.composite?D():C();e.length!==0&&(o.composite?p(e[e.length-1].id):f(e[e.length-1].id))},De=t=>{let e=T();if(!e)return;let n=h.current.get(e);if(n){n.toggle(),t.preventDefault();return}if(v.current){if(!g.current.get(e))return;let a=ce.current.get(e);(!a||a(t))&&$(t,!1,!!u.state.open)}t.preventDefault()},Se=()=>{G(),requestAnimationFrame(()=>{u.state.anchorElement&&V(u.state.anchorElement)})},Fe=()=>{E(!1),y.open&&Q(!1)},me=t=>{let e=t.metaKey||t.ctrlKey;switch(t.key){case"ArrowDown":ke(t);break;case"ArrowUp":Pe(t);break;case"ArrowRight":(o.composite||o.navigationmenu)&&we(t);break;case"ArrowLeft":(o.composite||o.navigationmenu)&&He(t);break;case"Home":xe(t);break;case"End":Ce(t);break;case"Enter":case" ":De(t);break;case"Escape":Se();break;case"Tab":Fe();break;case"PageDown":case"PageUp":case"Backspace":case"ShiftLeft":case"ShiftRight":break;default:!e&&st(t.key)&&Oe(t.key);break}},ge=()=>{if(re(!0),T()===""&&ae.current){let e=o.composite?D():C(),n=[],r=e;for(;r.length>0;){let s=r.find(c=>h.current.get(c.id)?.isOpen?.());if(!s)break;n.push(s.id);let a=ue(s.id);if(a.length===0)break;r=a}if(n.length>0&&r.length>0){let s=r[0].id;o.composite?f([...n,s]):f(s),E(!1);return}if(se.current){E(!1);return}if(e.length>0)if(o.navigationmenu){let s=o.navigationmenu.consumePendingFocus?.()??null;if(s){let a=s==="last"?e[e.length-1]:e[0];f(a.id)}}else o.composite?p(e[0].id):f(e[0].id)}E(!1)},be=()=>{re(!1),o.composite?u.state.open&&G():f("")},pe=()=>{h.current.forEach(t=>{t.close()}),u.setOpen?.(!1),o.composite?f([]):f(""),requestAnimationFrame(()=>{u.state.anchorElement&&V(u.state.anchorElement)})},ve=(t=!0)=>{ae.current=t,requestAnimationFrame(()=>{requestAnimationFrame(()=>{A(v.current)&&V(A(v.current))})})},he=()=>{R(x,"trigger"),R(k,"trigger"),E(!0),u.setOpen?.(!u?.state.open)},Ke=()=>{if(!o.openOnHover)return;let t=o.openDelay??100;_("trigger","open",t,()=>{u.state.open||(E(!0),u.setOpen?.(!0))})},Ne=()=>{if(!o.openOnHover)return;let t=Math.max(o.closeDelay??0,150);_("trigger","close",t,()=>{u.state.open&&u.setOpen?.(!1)});let e=u.state.positionerElement??u.state.popupElement??null;if(e){let n=()=>{R(k,"trigger"),e.removeEventListener("mouseenter",n),e.removeEventListener("pointerenter",n),r!==null&&window.clearTimeout(r)};e.addEventListener("mouseenter",n),e.addEventListener("pointerenter",n);let r=window.setTimeout(()=>{e.removeEventListener("mouseenter",n),e.removeEventListener("pointerenter",n)},t+50)}},$=(t,e=!1,n=!1)=>{if(t.preventDefault(),o.composite&&!n){let r=Array.isArray(d)&&d.length>0?d[0]:null;G(),r&&f([r])}else n&&pe();v.current&&e&&!n&&(v.current.blur(),Q(!1))},_e=i.useCallback(t=>{let{value:e,disabled:n,type:r="item",checked:s,inPortal:a,closeOnSelect:c=!0,onSelect:b}=t,l=q(e),S=U(l),Y=r==="checkbox"?"menuitemcheckbox":r==="radio"?"menuitemradio":"menuitem",m=M=>{if(n)return!1;let F=!1;return b?.({originalEvent:M,value:e,preventDefault:()=>{F=!0},get defaultPrevented(){return F}}),!F&&c};return ce.current.set(l,m),{ref:de(l),id:l,role:Y,tabIndex:-1,"aria-disabled":n||void 0,"aria-checked":r!=="item"?s:void 0,"data-scope":"menu","data-part":"item","data-value":e,...S&&{"data-focused":""},...r!=="item"&&(s?{"data-checked":""}:{"data-unchecked":""}),...n&&{"data-disabled":""},onMouseDown:M=>{if(n)return;if(!m(M)){E(!0),p(l);return}if(o.composite&&!a&&M.detail>0){$(M,!1,a);return}E(!0);let j=g.current.get(l);M.detail===0&&j&&j.click(),a?(o.composite&&M.detail>0||!o.composite)&&$(M,!1,a):setTimeout(()=>{$(M,!0,a)},0)},onMouseMove:()=>{!n&&y.focused&&p(l)},onMouseEnter:o.composite?()=>{!n&&y.focused&&(X(l),p(l))}:void 0}},[d,o.composite,y.focused,y.open,U,L,q]),qe=i.useCallback(t=>{let{value:e,disabled:n,sub:r}=t,s=r?.state.open,a=r?.openDelay??100,c=r?.closeDelay??0,b=r?.openOnHover??!0,l=r?{open:r.open,close:r.close,toggle:r.toggle,isOpen:()=>!!r.state.open}:void 0,S=r?.listRef,Y=r?.subtriggerProps?.ref,m=q(e),M=U(m),F=de(m),j=P=>{F(P),Y?.(P),P?(l&&h.current.set(m,l),S&&H.current.set(m,S)):(h.current.delete(m),H.current.delete(m))};return l&&h.current.set(m,l),S&&H.current.set(m,S),{ref:j,id:m,role:"menuitem",tabIndex:-1,"aria-expanded":s,"aria-disabled":n||void 0,"data-scope":"menu","data-part":"subtrigger","data-value":e,...M&&{"data-focused":""},...n&&{"data-disabled":""},...s&&{"data-open":""},onMouseDown:P=>{P.preventDefault(),R(x,m),R(k,m),!n&&P.detail>0&&(p(m),l?.toggle()),!n&&A(v.current)&&V(A(v.current))},onMouseMove:()=>{E(!0),!n&&y.focused&&p(m)},onMouseEnter:()=>{b&&o.composite&&!n&&y.focused&&(s?p(m):(X(m),p(m),l&&_(m,"open",a,()=>{r?.state.open||l.open()})))},onMouseLeave:P=>{if(b&&(R(x,m),o.composite&&s&&l)){let ee=H.current.get(m)?.current??null,nt=ee?.closest('[data-part="popup"]')??null,I=ee?.closest('[data-part="positioner"]')??null??nt??ee,te=A(P.relatedTarget);if(te&&I&&(I===te||I.contains(te)))return;let Ee=Math.max(c,150);if(_(m,"close",Ee,()=>{l.close()}),I){let K=()=>{R(k,m),I.removeEventListener("mouseenter",K),I.removeEventListener("pointerenter",K),Me!==null&&window.clearTimeout(Me)};I.addEventListener("mouseenter",K),I.addEventListener("pointerenter",K);let Me=window.setTimeout(()=>{I.removeEventListener("mouseenter",K),I.removeEventListener("pointerenter",K)},Ee+50)}}}}},[d,o.composite,y.focused,y.open,U,q]),Ue=i.useCallback(t=>{let{type:e,checked:n,submenuOpen:r,match:s}=t,a=e==="checkbox"?"checkbox":e==="radio"?"radio":r!==void 0?"submenu":null,c=e==="checkbox"||e==="radio"?n??!1:r!==void 0?r:!1;return{matchVisible:s?c===(s==="open"||s==="checked"):!0,[a==="submenu"?c?"data-open":"data-closed":c?"data-checked":"data-unchecked"]:"","data-scope":"menu","data-part":"indicator"}},[]),$e={"data-scope":"menu","data-part":"indicator"},je={"data-scope":"menu","data-part":"indicator"},Be={"data-scope":"menu","data-part":"indicator"},We=i.useCallback((t={})=>{let{value:e,sub:n}=t,r=!!n,s=n?.listProps?.ref,a=z(e),c=T()||void 0;return{...!r&&{ref:Ae},...r&&s&&{ref:s},id:a,role:"menu","aria-activedescendant":r?void 0:c,tabIndex:r?-1:o.tabIndex??0,"data-scope":"menu","data-part":"list",...r&&o.composite&&{"data-composite":""},onKeyDown:me,...r?{}:{onFocus:ge,onBlur:be}}},[d,o.tabIndex,z]),Ge={...u.triggerProps,"aria-haspopup":"true","aria-expanded":!!u.state.open,"data-scope":"menu","data-part":"trigger",...u.state.open&&{"data-open":""},...u.state.open&&{"data-expanded":""},onClick:he,...o.openOnHover&&{onPointerEnter:Ke,onPointerLeave:Ne}},Ve={...u.arrowProps,...w&&{"data-instant":w}},ze=()=>{o.openOnHover&&R(k,"trigger")},Ze=()=>{if(!o.openOnHover)return;let t=Math.max(o.closeDelay??0,150);_("trigger","close",t,()=>{u.state.open&&u.setOpen?.(!1)})},Je={...u.popupProps,...w&&{"data-instant":""},...w&&{"data-instant-type":w},...o.openOnHover&&{onPointerEnter:ze,onPointerLeave:Ze}},Qe={...u.positionerProps},Xe={role:"none","data-scope":"menu","data-part":"label"},Ye={role:"separator","data-scope":"menu","data-part":"separator"},et={role:"group","data-scope":"menu","data-part":"radiogroup"},tt={id:O,"data-scope":"menu","data-part":"root"};return i.useEffect(()=>{u.state.rendered&&ve()},[u.state.rendered]),i.useEffect(()=>{u.state.open||h.current.forEach(t=>{t.close()})},[u.state.open]),i.useEffect(()=>!o.navigationmenu||!o.navigationmenuMenuId?void 0:o.navigationmenu.registerInstantSignal(o.navigationmenuMenuId,()=>{oe("switch")}),[o.navigationmenu,o.navigationmenuMenuId]),i.useEffect(()=>{if(w===void 0)return;let t=window.setTimeout(()=>oe(void 0),50);return()=>window.clearTimeout(t)},[w,u.state.open]),{state:y,popover:u,rootProps:tt,triggerProps:Ge,arrowProps:Ve,popupProps:Je,positionerProps:Qe,labelProps:Xe,separatorProps:Ye,radioGroupProps:et,getItemProps:_e,getSubTriggerProps:qe,getListProps:We,getIndicatorProps:Ue,checkboxItemIndicatorProps:$e,radioItemIndicatorProps:je,submenuIndicatorProps:Be,updateItemAria:J,isFocused:U,getItemId:q,getListId:z,changeVisibleState:Q,markMouseInteraction:E,changeFocusedOptionId:p,hideSubmenusAfterLevel:X,hideAllSubmenus:G,onListKeyDown:me,onListFocus:ge,onListBlur:be,onOverlayEnter:ve,onTriggerClick:he,onItemClick:$}}});export{Re as defaultProps,ft as useMenu};
1
+ import{withHeadless as rt}from"@primereact/core/headless";import{usePopover as ot}from"@primereact/headless/popover";import{focus as B,isPrintableCharacter as st,toElement as A}from"@primeuix/utils";import*as i from"react";var Re={open:void 0,defaultOpen:void 0,composite:!0,appendTo:"body",baseZIndex:0,autoZIndex:!0,tabIndex:0,openDelay:100,closeDelay:0,openOnHover:!1,onOpenChange:void 0,context:void 0,navigationmenu:void 0,navigationmenuMenuId:void 0};var W=(o,O)=>{let N=o.compareDocumentPosition(O);return N&Node.DOCUMENT_POSITION_FOLLOWING?-1:N&Node.DOCUMENT_POSITION_PRECEDING?1:0},ft=rt({name:"useMenu",defaultProps:Re,setup({props:o,id:O}){let N=!!(o.navigationmenu&&o.navigationmenuMenuId),ye=N?o.navigationmenu.isMenuOpen(o.navigationmenuMenuId):o.open,ne=o.onOpenChange,Le=N?t=>{ne?.(t),o.navigationmenu.onMenuOpenChange(o.navigationmenuMenuId,!!t.value)}:ne,Ie=ot({open:ye,defaultOpen:o.defaultOpen,onOpenChange:Le}),u=o.context?.popover??Ie,[Te,re]=i.useState(!1),[d,f]=i.useState(o.composite?[]:""),[w,oe]=i.useState(void 0),se=i.useRef(!1),ae=i.useRef(!0),x=i.useRef(new Map),k=i.useRef(new Map),y=(t,e)=>{let n=t.current.get(e);n!==void 0&&(window.clearTimeout(n),t.current.delete(e))},_=(t,e,n,r)=>{let s=e==="open"?x:k;if(y(e==="open"?k:x,t),y(s,t),n<=0){r();return}let c=window.setTimeout(()=>{s.current.delete(t),r()},n);s.current.set(t,c)};i.useEffect(()=>{let t=x.current,e=k.current;return()=>{t.forEach(n=>window.clearTimeout(n)),e.forEach(n=>window.clearTimeout(n)),t.clear(),e.clear()}},[]);let g=i.useRef(new Map),h=i.useRef(new Map),H=i.useRef(new Map),G=i.useRef(new Map),ce=i.useRef(new Map),v=i.useRef(null),Ae=i.useCallback(t=>{v.current=A(t)},[]),E={open:!!u.state.open,focused:Te,focusedOptionId:d,anchorElement:u.state.anchorElement,positionerElement:u.state.positionerElement,popupElement:u.state.popupElement,arrowElement:u.state.arrowElement},q=i.useCallback(t=>`${O}_item_${t}`,[O]),z=i.useCallback(t=>t?`${O}_list_${t}`:`${O}_list`,[O]),L=i.useCallback(t=>{let e=0,n=t.parentElement;for(;n&&(n.getAttribute("role")==="menu"&&e++,n!==v.current);)n=n.parentElement;if(n!==v.current){let r=t.closest('[role="menu"]');if(r){for(let[s,a]of H.current.entries())if(a.current===r){let c=g.current.get(s);if(c)return L(c)+1}}}return Math.max(0,e-1)},[]),ie=i.useCallback(t=>{let e=t.closest('[role="menu"]');if(!e)return[];let n=[];return g.current.forEach((r,s)=>{r.closest('[role="menu"]')===e&&!r.hasAttribute("data-disabled")&&n.push({id:s,element:r})}),n.sort((r,s)=>W(r.element,s.element)),n},[]),Z=i.useCallback(()=>{if(!v.current)return[];let t=[];return g.current.forEach((e,n)=>{e.closest('[role="menu"]')===v.current&&!e.hasAttribute("data-disabled")&&t.push({id:n,element:e})}),t.sort((e,n)=>W(e.element,n.element)),t},[]),ue=i.useCallback(t=>{let e=H.current.get(t)?.current;if(!e){let r=g.current.get(t);if(!r)return[];let s=r.closest('[data-scope="menu"][data-part="submenu"]')||r.parentElement;if(!s)return[];if(e=s.querySelector('[role="menu"]'),!e)return[]}let n=[];return g.current.forEach((r,s)=>{r.closest('[role="menu"]')===e&&!r.hasAttribute("data-disabled")&&n.push({id:s,element:r})}),n.sort((r,s)=>W(r.element,s.element)),n},[]),J=i.useCallback(t=>{if(!t)return;let e=L(t)+1;t.setAttribute("aria-level",String(e));let n=t.closest('[role="menu"]');if(n){let r=[];g.current.forEach(a=>{a.closest('[role="menu"]')===n&&r.push(a)}),r.sort(W);let s=String(r.length);r.forEach((a,c)=>{a.setAttribute("aria-posinset",String(c+1)),a.setAttribute("aria-setsize",s)})}},[L]),le=i.useRef(J);le.current=J;let de=i.useCallback(t=>(G.current.has(t)||G.current.set(t,e=>{A(e)?(g.current.set(t,A(e)),le.current(A(e))):(g.current.delete(t),G.current.delete(t))}),G.current.get(t)),[]),Q=t=>{t||h.current.forEach(e=>{e.close()}),u.setOpen?.(t)},U=i.useCallback(t=>d?Array.isArray(d)?d.includes(t):d===t:!1,[d]),C=i.useCallback(()=>{let t=[];return g.current.forEach((e,n)=>{if(e.hasAttribute("data-disabled"))return;let s=e,a=!0;for(;s&&s!==v.current;){let c=s.closest('[data-part="list"]');if(!c||c===v.current)break;let b=c.previousElementSibling;if(b&&b.getAttribute("aria-expanded")==="false"){a=!1;break}s=c.parentElement}a&&t.push({id:n,element:e})}),t.sort((e,n)=>W(e.element,n.element)),t},[]),D=i.useCallback(()=>{let t=T();if(!t)return Z();let e=g.current.get(t);return e?ie(e):Z()},[d,ie,Z]),M=t=>{se.current=t},p=t=>{M(!0),o.composite?f(e=>{let n=Array.isArray(e)?e:[];if(n.length===0)return[t];let r=g.current.get(t);if(!r)return[t];let s=L(r),a=n.findIndex(b=>{let l=g.current.get(b);return l&&L(l)===s});return a!==-1?[...n.slice(0,a),t]:[...n.filter(b=>{let l=g.current.get(b);return l&&L(l)<s}),t]}):f(t)},T=()=>o.composite&&Array.isArray(d)?d[d.length-1]||"":typeof d=="string"?d:"",Oe=t=>{let e=o.composite?D():C();if(e.length===0)return;let n=T(),r=n?e.findIndex(a=>a.id===n)+1:0,s=t.toLowerCase();for(let a=r;a<e.length;a++){let c=e[a];if((c.element.textContent?.trim().toLowerCase()||"").startsWith(s)){o.composite?p(c.id):f(c.id);return}}for(let a=0;a<r;a++){let c=e[a];if((c.element.textContent?.trim().toLowerCase()||"").startsWith(s)){o.composite?p(c.id):f(c.id);return}}},fe=()=>{if(!o.composite||!Array.isArray(d))return;let t=d[d.length-1];if(!t)return;let e=h.current.get(t);if(e){let n=g.current.get(t);n&&n.getAttribute("aria-expanded")==="true"&&e.close()}},V=()=>{o.composite?(h.current.forEach(t=>{t.close()}),f([])):f("")},X=t=>{if(!o.composite||!Array.isArray(d))return;let e=g.current.get(t);if(!e)return;let n=L(e);h.current.forEach((r,s)=>{let a=g.current.get(s);if(!a)return;L(a)>=n&&a.getAttribute("aria-expanded")==="true"&&r.close()}),f(r=>(Array.isArray(r)?r:[]).filter(a=>{let c=g.current.get(a);return c&&L(c)<n}))},ke=t=>{t.preventDefault();let e=o.composite?D():C();if(e.length===0)return;let n=T();if(!n){o.composite?p(e[0].id):f(e[0].id);return}let r=e.findIndex(a=>a.id===n),s=r<e.length-1?r+1:0;o.composite?(fe(),p(e[s].id)):f(e[s].id)},Pe=t=>{if(t.preventDefault(),t.altKey){pe();return}let e=o.composite?D():C();if(e.length===0)return;let n=T();if(!n){o.composite?p(e[e.length-1].id):f(e[e.length-1].id);return}let r=e.findIndex(a=>a.id===n),s=r>0?r-1:e.length-1;o.composite?(fe(),p(e[s].id)):f(e[s].id)},we=t=>{if(!o.composite&&!o.navigationmenu)return;t.preventDefault();let e=T(),r=(e?g.current.get(e):null)?.getAttribute("aria-expanded")??null;if(e&&r!==null){if(r==="false"){let c=h.current.get(e);c&&c.open()}let s=0,a=()=>{let c=ue(e);if(c.length>0){o.composite?f(b=>[...Array.isArray(b)?b:[],c[0].id]):f(c[0].id);return}s++<5&&requestAnimationFrame(a)};requestAnimationFrame(a);return}o.navigationmenu&&o.navigationmenuMenuId&&o.navigationmenu.focusSibling(o.navigationmenuMenuId,"next")},He=t=>{if(!(!o.composite&&!o.navigationmenu)){if(t.preventDefault(),o.composite&&Array.isArray(d)&&d.length>1){let e=d[d.length-2];h.current.get(e)?.close(),f(n=>(Array.isArray(n)?n:[]).slice(0,-1));return}if(o.navigationmenu&&o.navigationmenuMenuId&&!o.composite){let e=T(),r=(e?g.current.get(e):null)?.closest('[role="menu"]');if(!!r&&r!==v.current){let a;H.current.forEach((c,b)=>{c.current===r&&(a=b)}),a&&(h.current.get(a)?.close(),f(a));return}}o.navigationmenu&&o.navigationmenuMenuId&&o.navigationmenu.focusSibling(o.navigationmenuMenuId,"previous")}},xe=t=>{t.preventDefault();let e=o.composite?D():C();e.length!==0&&(o.composite?p(e[0].id):f(e[0].id))},Ce=t=>{t.preventDefault();let e=o.composite?D():C();e.length!==0&&(o.composite?p(e[e.length-1].id):f(e[e.length-1].id))},De=t=>{let e=T();if(!e)return;let n=h.current.get(e);if(n){n.toggle(),t.preventDefault();return}if(v.current){if(!g.current.get(e))return;let a=ce.current.get(e);(!a||a(t))&&$(t,!1,!!u.state.open)}t.preventDefault()},Se=()=>{V(),requestAnimationFrame(()=>{u.state.anchorElement&&B(u.state.anchorElement)})},Fe=()=>{M(!1),E.open&&(u.state.anchorElement&&B(u.state.anchorElement),Q(!1))},me=t=>{let e=t.metaKey||t.ctrlKey;switch(t.key){case"ArrowDown":ke(t);break;case"ArrowUp":Pe(t);break;case"ArrowRight":(o.composite||o.navigationmenu)&&we(t);break;case"ArrowLeft":(o.composite||o.navigationmenu)&&He(t);break;case"Home":xe(t);break;case"End":Ce(t);break;case"Enter":case" ":De(t);break;case"Escape":Se();break;case"Tab":Fe();break;case"PageDown":case"PageUp":case"Backspace":case"ShiftLeft":case"ShiftRight":break;default:!e&&st(t.key)&&Oe(t.key);break}},ge=()=>{if(re(!0),T()===""&&ae.current){let e=o.composite?D():C(),n=[],r=e;for(;r.length>0;){let s=r.find(c=>h.current.get(c.id)?.isOpen?.());if(!s)break;n.push(s.id);let a=ue(s.id);if(a.length===0)break;r=a}if(n.length>0&&r.length>0){let s=r[0].id;o.composite?f([...n,s]):f(s),M(!1);return}if(se.current){M(!1);return}if(e.length>0)if(o.navigationmenu){let s=o.navigationmenu.consumePendingFocus?.()??null;if(s){let a=s==="last"?e[e.length-1]:e[0];f(a.id)}}else o.composite?p(e[0].id):f(e[0].id)}M(!1)},be=()=>{re(!1),o.composite?u.state.open&&V():f("")},pe=()=>{h.current.forEach(t=>{t.close()}),u.setOpen?.(!1),o.composite?f([]):f(""),requestAnimationFrame(()=>{u.state.anchorElement&&B(u.state.anchorElement)})},ve=(t=!0)=>{ae.current=t,requestAnimationFrame(()=>{requestAnimationFrame(()=>{A(v.current)&&B(A(v.current))})})},he=()=>{y(x,"trigger"),y(k,"trigger"),M(!0),u.setOpen?.(!u?.state.open)},Ke=()=>{if(!o.openOnHover)return;let t=o.openDelay??100;_("trigger","open",t,()=>{u.state.open||(M(!0),u.setOpen?.(!0))})},Ne=()=>{if(!o.openOnHover)return;let t=Math.max(o.closeDelay??0,150);_("trigger","close",t,()=>{u.state.open&&u.setOpen?.(!1)});let e=u.state.positionerElement??u.state.popupElement??null;if(e){let n=()=>{y(k,"trigger"),e.removeEventListener("mouseenter",n),e.removeEventListener("pointerenter",n),r!==null&&window.clearTimeout(r)};e.addEventListener("mouseenter",n),e.addEventListener("pointerenter",n);let r=window.setTimeout(()=>{e.removeEventListener("mouseenter",n),e.removeEventListener("pointerenter",n)},t+50)}},$=(t,e=!1,n=!1)=>{if(t.preventDefault(),o.composite&&!n){let r=Array.isArray(d)&&d.length>0?d[0]:null;V(),r&&f([r])}else n&&pe();v.current&&e&&!n&&(v.current.blur(),Q(!1))},_e=i.useCallback(t=>{let{value:e,disabled:n,type:r="item",checked:s,inPortal:a,closeOnSelect:c=!0,onSelect:b}=t,l=q(e),S=U(l),Y=r==="checkbox"?"menuitemcheckbox":r==="radio"?"menuitemradio":"menuitem",m=R=>{if(n)return!1;let F=!1;return b?.({originalEvent:R,value:e,preventDefault:()=>{F=!0},get defaultPrevented(){return F}}),!F&&c};return ce.current.set(l,m),{ref:de(l),id:l,role:Y,tabIndex:-1,"aria-disabled":n||void 0,"aria-checked":r!=="item"?s:void 0,"data-scope":"menu","data-part":"item","data-value":e,...S&&{"data-focused":""},...r!=="item"&&(s?{"data-checked":""}:{"data-unchecked":""}),...n&&{"data-disabled":""},onMouseDown:R=>{if(n)return;if(!m(R)){M(!0),p(l);return}if(o.composite&&!a&&R.detail>0){$(R,!1,a);return}M(!0);let j=g.current.get(l);R.detail===0&&j&&j.click(),a?(o.composite&&R.detail>0||!o.composite)&&$(R,!1,a):setTimeout(()=>{$(R,!0,a)},0)},onMouseMove:()=>{!n&&E.focused&&p(l)},onMouseEnter:o.composite?()=>{!n&&E.focused&&(X(l),p(l))}:void 0}},[d,o.composite,E.focused,E.open,U,L,q]),qe=i.useCallback(t=>{let{value:e,disabled:n,sub:r}=t,s=r?.state.open,a=r?.openDelay??100,c=r?.closeDelay??0,b=r?.openOnHover??!0,l=r?{open:r.open,close:r.close,toggle:r.toggle,isOpen:()=>!!r.state.open}:void 0,S=r?.listRef,Y=r?.subtriggerProps?.ref,m=q(e),R=U(m),F=de(m),j=P=>{F(P),Y?.(P),P?(l&&h.current.set(m,l),S&&H.current.set(m,S)):(h.current.delete(m),H.current.delete(m))};return l&&h.current.set(m,l),S&&H.current.set(m,S),{ref:j,id:m,role:"menuitem",tabIndex:-1,"aria-expanded":s,"aria-disabled":n||void 0,"data-scope":"menu","data-part":"subtrigger","data-value":e,...R&&{"data-focused":""},...n&&{"data-disabled":""},...s&&{"data-open":""},onMouseDown:P=>{P.preventDefault(),y(x,m),y(k,m),!n&&P.detail>0&&(p(m),l?.toggle()),!n&&A(v.current)&&B(A(v.current))},onMouseMove:()=>{M(!0),!n&&E.focused&&p(m)},onMouseEnter:()=>{b&&o.composite&&!n&&E.focused&&(s?p(m):(X(m),p(m),l&&_(m,"open",a,()=>{r?.state.open||l.open()})))},onMouseLeave:P=>{if(b&&(y(x,m),o.composite&&s&&l)){let ee=H.current.get(m)?.current??null,nt=ee?.closest('[data-part="popup"]')??null,I=ee?.closest('[data-part="positioner"]')??null??nt??ee,te=A(P.relatedTarget);if(te&&I&&(I===te||I.contains(te)))return;let Ee=Math.max(c,150);if(_(m,"close",Ee,()=>{l.close()}),I){let K=()=>{y(k,m),I.removeEventListener("mouseenter",K),I.removeEventListener("pointerenter",K),Me!==null&&window.clearTimeout(Me)};I.addEventListener("mouseenter",K),I.addEventListener("pointerenter",K);let Me=window.setTimeout(()=>{I.removeEventListener("mouseenter",K),I.removeEventListener("pointerenter",K)},Ee+50)}}}}},[d,o.composite,E.focused,E.open,U,q]),Ue=i.useCallback(t=>{let{type:e,checked:n,submenuOpen:r,match:s}=t,a=e==="checkbox"?"checkbox":e==="radio"?"radio":r!==void 0?"submenu":null,c=e==="checkbox"||e==="radio"?n??!1:r!==void 0?r:!1;return{matchVisible:s?c===(s==="open"||s==="checked"):!0,[a==="submenu"?c?"data-open":"data-closed":c?"data-checked":"data-unchecked"]:"","data-scope":"menu","data-part":"indicator"}},[]),$e={"data-scope":"menu","data-part":"indicator"},je={"data-scope":"menu","data-part":"indicator"},Be={"data-scope":"menu","data-part":"indicator"},We=i.useCallback((t={})=>{let{value:e,sub:n}=t,r=!!n,s=n?.listProps?.ref,a=z(e),c=T()||void 0;return{...!r&&{ref:Ae},...r&&s&&{ref:s},id:a,role:"menu","aria-activedescendant":r?void 0:c,tabIndex:r?-1:o.tabIndex??0,"data-scope":"menu","data-part":"list",...r&&o.composite&&{"data-composite":""},onKeyDown:me,...r?{}:{onFocus:ge,onBlur:be}}},[d,o.tabIndex,z,E.open]),Ge={...u.triggerProps,"aria-haspopup":"true","aria-expanded":!!u.state.open,"data-scope":"menu","data-part":"trigger",...u.state.open&&{"data-open":""},...u.state.open&&{"data-expanded":""},onClick:he,...o.openOnHover&&{onPointerEnter:Ke,onPointerLeave:Ne}},Ve={...u.arrowProps,...w&&{"data-instant":w}},ze=()=>{o.openOnHover&&y(k,"trigger")},Ze=()=>{if(!o.openOnHover)return;let t=Math.max(o.closeDelay??0,150);_("trigger","close",t,()=>{u.state.open&&u.setOpen?.(!1)})},Je={...u.popupProps,...w&&{"data-instant":""},...w&&{"data-instant-type":w},...o.openOnHover&&{onPointerEnter:ze,onPointerLeave:Ze}},Qe={...u.positionerProps},Xe={role:"none","data-scope":"menu","data-part":"label"},Ye={role:"separator","data-scope":"menu","data-part":"separator"},et={role:"group","data-scope":"menu","data-part":"radiogroup"},tt={id:O,"data-scope":"menu","data-part":"root"};return i.useEffect(()=>{u.state.rendered&&ve()},[u.state.rendered]),i.useEffect(()=>{u.state.open||h.current.forEach(t=>{t.close()})},[u.state.open]),i.useEffect(()=>!o.navigationmenu||!o.navigationmenuMenuId?void 0:o.navigationmenu.registerInstantSignal(o.navigationmenuMenuId,()=>{oe("switch")}),[o.navigationmenu,o.navigationmenuMenuId]),i.useEffect(()=>{if(w===void 0)return;let t=window.setTimeout(()=>oe(void 0),50);return()=>window.clearTimeout(t)},[w,u.state.open]),{state:E,popover:u,rootProps:tt,triggerProps:Ge,arrowProps:Ve,popupProps:Je,positionerProps:Qe,labelProps:Xe,separatorProps:Ye,radioGroupProps:et,getItemProps:_e,getSubTriggerProps:qe,getListProps:We,getIndicatorProps:Ue,checkboxItemIndicatorProps:$e,radioItemIndicatorProps:je,submenuIndicatorProps:Be,updateItemAria:J,isFocused:U,getItemId:q,getListId:z,changeVisibleState:Q,markMouseInteraction:M,changeFocusedOptionId:p,hideSubmenusAfterLevel:X,hideAllSubmenus:V,onListKeyDown:me,onListFocus:ge,onListBlur:be,onOverlayEnter:ve,onTriggerClick:he,onItemClick:$}}});export{Re as defaultProps,ft as useMenu};
@@ -1 +1 @@
1
- import{withHeadless as h}from"@primereact/core/headless";import{useRadioButton as f}from"@primereact/headless/radiobutton";import{equals as c}from"@primeuix/utils";import*as o from"react";var l={checked:void 0,defaultChecked:void 0,inputId:void 0,name:void 0,value:void 0,disabled:void 0,closeOnSelect:!1,group:null,onSelect:void 0,onCheckedChange:void 0};var I=h({name:"useMenuRadioItem",defaultProps:l,setup({props:e}){let t=e.group??null,i=t?{...e,checked:c(t.value,e.value),defaultChecked:c(t.defaultValue,e.value),name:e.name??t.name,disabled:e.disabled,value:e.value,onCheckedChange:n=>{t.updateChange({...n,value:e.value}),e.onCheckedChange?.({...n,value:e.value})}}:{...e,value:e.value,onCheckedChange:n=>e.onCheckedChange?.({...n,value:e.value})},a=f(i),d=!!a.state.checked,u=!!e.disabled,m=e.closeOnSelect??!1,s=o.useCallback(n=>{u||(d||a.onChange({target:{checked:!0}}),e.onSelect?.(n))},[a,d,u,e.onSelect]);return{...a,state:{...a.state,checked:d},closeOnSelect:m,onSelect:s}}});export{l as defaultProps,I as useMenuRadioItem};
1
+ import{withHeadless as s}from"@primereact/core/headless";import{useRadioButton as h}from"@primereact/headless/radiobutton";import{equals as f}from"@primeuix/utils";import*as l from"react";var c={checked:void 0,defaultChecked:void 0,inputId:void 0,name:void 0,value:void 0,disabled:void 0,closeOnSelect:!1,group:null,onSelect:void 0,onCheckedChange:void 0};var I=s({name:"useMenuRadioItem",defaultProps:c,setup({props:e}){let a=e.group??null,o=a?{...e,checked:f(a.value,e.value),name:e.name??a.name,disabled:e.disabled,value:e.value,onCheckedChange:n=>{a.updateChange({...n,value:e.value}),e.onCheckedChange?.({...n,value:e.value})}}:{...e,value:e.value,onCheckedChange:n=>e.onCheckedChange?.({...n,value:e.value})},t=h(o),d=!!t.state.checked,u=!!e.disabled,i=e.closeOnSelect??!1,m=l.useCallback(n=>{u||(d||t.onChange({target:{checked:!0}}),e.onSelect?.(n))},[t,d,u,e.onSelect]);return{...t,state:{...t.state,checked:d},closeOnSelect:i,onSelect:m}}});export{c as defaultProps,I as useMenuRadioItem};
@@ -1 +1 @@
1
- import{withHeadless as f}from"@primereact/core/headless";import{usePopover as d}from"@primereact/headless/popover";import*as n from"react";var s={open:void 0,defaultOpen:void 0,openDelay:100,closeDelay:0,openOnHover:!0,onOpenChange:void 0};var y=f({name:"useMenuSubmenu",defaultProps:s,setup({props:t}){let e=d({open:t.open,defaultOpen:t.defaultOpen,onOpenChange:t.onOpenChange}),o=n.useRef(null),a=n.useCallback(i=>{o.current=i},[]),l={open:!!e.state.open,anchorElement:e.state.anchorElement,positionerElement:e.state.positionerElement,popupElement:e.state.popupElement,arrowElement:e.state.arrowElement},r=()=>{t.disabled||e.setOpen?.(!e.state.open)},p=()=>{t.disabled||e.setOpen?.(!0)},u=()=>{t.disabled||e.setOpen?.(!1)},c={ref:e.setAnchorFallbackRef},m={...e.state.open&&{"data-open":""},"data-scope":"menu","data-part":"sub"};return{state:l,popover:e,listRef:o,subtriggerProps:c,subProps:m,listProps:{ref:a,"data-scope":"menu","data-part":"list"},toggle:r,open:p,close:u,openDelay:t.openDelay??100,closeDelay:t.closeDelay??0,openOnHover:t.openOnHover??!0}}});export{s as defaultProps,y as useMenuSubmenu};
1
+ import{withHeadless as d}from"@primereact/core/headless";import{usePopover as f}from"@primereact/headless/popover";import*as n from"react";var s={open:void 0,defaultOpen:void 0,disabled:!1,openDelay:100,closeDelay:0,openOnHover:!0,onOpenChange:void 0};var y=d({name:"useMenuSubmenu",defaultProps:s,setup({props:t}){let e=f({open:t.open,defaultOpen:t.defaultOpen,onOpenChange:t.onOpenChange}),o=n.useRef(null),a=n.useCallback(i=>{o.current=i},[]),l={open:!!e.state.open,anchorElement:e.state.anchorElement,positionerElement:e.state.positionerElement,popupElement:e.state.popupElement,arrowElement:e.state.arrowElement},r=()=>{t.disabled||e.setOpen?.(!e.state.open)},p=()=>{t.disabled||e.setOpen?.(!0)},u=()=>{t.disabled||e.setOpen?.(!1)},c={ref:e.setAnchorFallbackRef},m={...e.state.open&&{"data-open":""},"data-scope":"menu","data-part":"sub"};return{state:l,popover:e,listRef:o,subtriggerProps:c,subProps:m,listProps:{ref:a,"data-scope":"menu","data-part":"list"},toggle:r,open:p,close:u,openDelay:t.openDelay??100,closeDelay:t.closeDelay??0,openOnHover:t.openOnHover??!0}}});export{s as defaultProps,y as useMenuSubmenu};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@primereact/headless",
3
- "version": "11.0.0-rc.2",
3
+ "version": "11.0.0-rc.4",
4
4
  "author": "PrimeTek Informatics",
5
5
  "description": "Headless components for PrimeReact.",
6
6
  "homepage": "https://primereact.dev",
@@ -28,11 +28,11 @@
28
28
  "access": "public"
29
29
  },
30
30
  "dependencies": {
31
- "@primeui/license-manager": "^1.0.0-rc.2",
32
- "@primeuix/styled": "^1.0.0-rc.3",
33
- "@primeuix/utils": "^0.8.0-rc.2",
34
- "@primereact/core": "11.0.0-rc.2",
35
- "@primereact/hooks": "11.0.0-rc.2"
31
+ "@primeui/license-manager": "^1.0.0-rc.4",
32
+ "@primeuix/styled": "^1.0.0-rc.5",
33
+ "@primeuix/utils": "^0.8.0-rc.4",
34
+ "@primereact/core": "11.0.0-rc.4",
35
+ "@primereact/hooks": "11.0.0-rc.4"
36
36
  },
37
37
  "repository": {},
38
38
  "type": "module"
@@ -1 +1 @@
1
- import{withHeadless as y}from"@primereact/core/headless";var m={value:null,min:0,max:100,strokeWidth:4};var r=100,a=r/2,$=y({name:"useProgressSpinner",defaultProps:m,setup({props:t}){let s=t.min??0,o=t.max??100,n=t.strokeWidth??4,c=(r-n)/2,i=2*Math.PI*c,e=t.value==null,d=e?0:Math.min(Math.max(t.value,s),o),p=e?0:(d-s)/(o-s)*100,l=e?"indeterminate":"determinate",u=`${i}`,f=e?void 0:`${i-p/100*i}`,g={value:t.value??null,percent:p,indeterminate:e},x={"data-scope":"progress","data-part":"root","data-state":l,...e?{}:{"data-value":d},role:"progressbar","aria-valuemin":s,"aria-valuemax":o,"aria-valuenow":e?void 0:d,...t.disabled?{"data-disabled":""}:{}},h={"data-scope":"progress","data-part":"circle",viewBox:`0 0 ${r} ${r}`},P={"data-scope":"progress","data-part":"circleTrack","data-state":l,cx:a,cy:a,r:c,fill:"none",strokeWidth:n},v={"data-scope":"progress","data-part":"circleRange","data-state":l,cx:a,cy:a,r:c,fill:"none",strokeWidth:n,...e?{}:{strokeDasharray:u,strokeDashoffset:f,strokeLinecap:"round",style:{transformOrigin:"center",transform:"rotate(-90deg)"}}};return{state:g,rootProps:x,circleProps:h,circleTrackProps:P,circleRangeProps:v}}});export{m as defaultProps,$ as useProgressSpinner};
1
+ import{withHeadless as y}from"@primereact/core/headless";var m={value:null,disabled:!1,min:0,max:100,strokeWidth:4};var r=100,a=r/2,w=y({name:"useProgressSpinner",defaultProps:m,setup({props:s}){let t=s.min??0,o=s.max??100,n=s.strokeWidth??4,c=(r-n)/2,i=2*Math.PI*c,e=s.value==null,d=e?0:Math.min(Math.max(s.value,t),o),p=e?0:(d-t)/(o-t)*100,l=e?"indeterminate":"determinate",u=`${i}`,f=e?void 0:`${i-p/100*i}`,g={value:s.value??null,percent:p,indeterminate:e},x={"data-scope":"progress","data-part":"root","data-state":l,...e?{}:{"data-value":d},role:"progressbar","aria-valuemin":t,"aria-valuemax":o,"aria-valuenow":e?void 0:d,...s.disabled?{"data-disabled":""}:{}},h={"data-scope":"progress","data-part":"circle",viewBox:`0 0 ${r} ${r}`},P={"data-scope":"progress","data-part":"circleTrack","data-state":l,cx:a,cy:a,r:c,fill:"none",strokeWidth:n},v={"data-scope":"progress","data-part":"circleRange","data-state":l,cx:a,cy:a,r:c,fill:"none",strokeWidth:n,...e?{}:{strokeDasharray:u,strokeDashoffset:f,strokeLinecap:"round",style:{transformOrigin:"center",transform:"rotate(-90deg)"}}};return{state:g,rootProps:x,circleProps:h,circleTrackProps:P,circleRangeProps:v}}});export{m as defaultProps,w as useProgressSpinner};
@@ -71,7 +71,7 @@ export declare const useSelect: (inProps?: unknown) => import("@primereact/types
71
71
  getOptionId: (index: number) => string;
72
72
  getOptionLabel: (option: unknown) => any;
73
73
  getOptionValue: (option: unknown) => any;
74
- isOptionDisabled: (option: unknown) => any;
74
+ isOptionDisabled: (option: unknown) => boolean;
75
75
  isOptionGroup: (option: unknown) => boolean;
76
76
  getOptionGroupLabel: (optionGroup: unknown) => any;
77
77
  getOptionGroupChildren: (optionGroup: unknown) => any;
@@ -1 +1 @@
1
- import{withHeadless as ae}from"@primereact/core/headless";import{useEventListener as re,useUnmountEffect as ie,useUpdateEffect as ce}from"@primereact/hooks";import{useControlledState as le}from"@primereact/hooks/use-controlled-state";import{$dt as y}from"@primeuix/styled";import{find as de,findSingle as w,focus as B}from"@primeuix/utils/dom";import*as c from"react";var K={visible:void 0,defaultVisible:void 0,direction:"up",transitionDelay:30,type:"linear",radius:0,hideOnClickOutside:!0,onVisibleChange:void 0};var De=ae({name:"useSpeedDial",defaultProps:K,setup:({props:n,id:p,elementRef:V})=>{let[i,S]=le({value:n.visible,defaultValue:n.defaultVisible??!1,onChange:n.onVisibleChange}),[m,u]=c.useState(-1),l=c.useRef(null),f=c.useRef(null),R=c.useRef(!1),F=c.useCallback(e=>{l.current=e,V.current=e??void 0},[]),N={visible:i,focusedOptionIndex:m},_=c.useCallback(e=>{f.current=e},[]),D=()=>de(l.current,'[data-scope="speeddial"][data-part="item"]'),x=()=>D().length,j=()=>{let e=w(l.current,'[data-scope="speeddial"][data-part="trigger"]');e&&B(e)},E=()=>S([!0,{value:!0}]),g=()=>S([!1,{value:!1}]),q=c.useCallback(()=>{if(n.type!=="linear"){let e=w(l.current,'[data-scope="speeddial"][data-part="trigger"]'),t=w(f.current,'[data-scope="speeddial"][data-part="item"]');if(e&&t){let o=Math.abs(e.offsetWidth-t.offsetWidth),d=Math.abs(e.offsetHeight-t.offsetHeight);f.current.style.setProperty(y("item.diff.x").name,`${o/2}px`),f.current.style.setProperty(y("item.diff.y").name,`${d/2}px`)}}},[n.type]),[W,L]=re({type:"click",listener:e=>{let t=e.target,o=l.current&&!l.current.contains(t);i&&o&&g(),R.current=!1}});ce(()=>(i&&(requestAnimationFrame(q),n.hideOnClickOutside&&W()),()=>{n.hideOnClickOutside&&L()}),[i]),ie(()=>{L()});let Y=e=>{let t=x();return(i?e:t-e-1)*(n.transitionDelay??30)},X=e=>{let{type:t,direction:o,radius:d}=n;if(t==="linear")return{};let b=x(),h=d||b*20,ee=y("item.diff.x").variable,te=y("item.diff.y").variable,$=s=>`calc(${s}px + ${ee})`,O=s=>`calc(${s}px + ${te})`;if(t==="circle"){let s=2*Math.PI/b;return{left:$(h*Math.cos(s*e)),top:O(h*Math.sin(s*e))}}let ne=t==="semi-circle"?b-1:2*(b-1),U=Math.PI/ne,se=$(h*Math.cos(U*e)),oe=O(h*Math.sin(U*e)),A={"semi-circle":{up:(s,a)=>({left:s,bottom:a}),down:(s,a)=>({left:s,top:a}),left:(s,a)=>({right:a,top:s}),right:(s,a)=>({left:a,top:s})},"quarter-circle":{"up-left":(s,a)=>({right:s,bottom:a}),"up-right":(s,a)=>({left:s,bottom:a}),"down-left":(s,a)=>({right:a,top:s}),"down-right":(s,a)=>({left:a,top:s})}}[t]?.[o];return A?A(se,oe):{}},M=e=>({transitionDelay:`${Y(e)}ms`,...X(e)}),z=e=>{let t=D(),o=e==="next",d=o?0:t.length-1;return m===-1?d:m+(o?1:-1)},G=e=>{let t=D();if(t[e]){u(e??-1);let o=w(t[e],'[data-part="action"]');o&&B(o)}},r=(e,t)=>{let o=z(t);G(o),e.preventDefault()},k=()=>{g(),u(-1),j()},v=()=>{i?g():E(),R.current=!0},I=e=>{switch(e.code){case"ArrowDown":case"ArrowLeft":E(),r(e,"next");break;case"ArrowUp":case"ArrowRight":E(),r(e,"prev");break;case"Escape":k();break}},P=e=>{let t=n.direction,o=["left","up-right","down-left"],d=["right","up-left","down-right"];switch(e.code){case"ArrowDown":t==="down"?r(e,"next"):r(e,"prev");break;case"ArrowUp":t==="down"?r(e,"prev"):r(e,"next");break;case"ArrowLeft":o.includes(t)||t==="down"?r(e,"next"):r(e,"prev");break;case"ArrowRight":d.includes(t)||t==="up"?r(e,"next"):r(e,"prev");break;case"Enter":case"NumpadEnter":case"Space":case"Escape":k();break;case"Home":u(-1),r(e,"next");break;case"End":u(-1),r(e,"prev");break}},H=e=>{l.current?.contains(e.relatedTarget)||u(-1)},C=e=>{g(),R.current=!0,e.preventDefault?.()},T=e=>{e.code==="Enter"&&C(e)},J={ref:F,id:p,"data-scope":"speeddial","data-part":"root",...i?{"data-open":""}:{"data-closed":""},style:{alignItems:n.direction==="up"||n.direction==="down"?"center":void 0,justifyContent:n.direction==="left"||n.direction==="right"?"center":void 0,flexDirection:n.direction==="up"?"column-reverse":n.direction==="down"?"column":n.direction==="left"?"row-reverse":n.direction==="right"?"row":void 0}},Q={"data-scope":"speeddial","data-part":"trigger",type:"button","aria-expanded":i,"aria-haspopup":"true","aria-controls":`${p}_list`,...i?{"data-open":""}:{"data-closed":""},onClick:v,onKeyDown:I},Z={ref:_,"data-scope":"speeddial","data-part":"list",...i?{"data-open":""}:{"data-closed":""},id:`${p}_list`,role:"menu",tabIndex:-1,onBlur:H,onKeyDown:P,style:{flexDirection:n.direction==="up"?"column-reverse":n.direction==="down"?"column":n.direction==="left"?"row-reverse":n.direction==="right"?"row":void 0}};return{state:N,listRef:f,rootProps:J,triggerProps:Q,listProps:Z,getItemProps:e=>({id:`${p}_${e}`,"data-scope":"speeddial","data-part":"item",role:"none",style:M(e),...m===e?{"data-active":""}:{}}),actionProps:{"data-scope":"speeddial","data-part":"action",type:"button",tabIndex:-1,role:"menuitem",onClick:C,onKeyDown:T},getItemStyle:M,onBlur:H,onKeyDown:P,onTriggerClick:v,onTriggerKeyDown:I,onItemClick:C,onItemKeyDown:T}}});export{K as defaultProps,De as useSpeedDial};
1
+ import{withHeadless as ae}from"@primereact/core/headless";import{useEventListener as re,useUnmountEffect as ie,useUpdateEffect as ce}from"@primereact/hooks";import{useControlledState as le}from"@primereact/hooks/use-controlled-state";import{$dt as b}from"@primeuix/styled";import{find as de,findSingle as h,focus as B}from"@primeuix/utils/dom";import*as l from"react";var K={visible:void 0,defaultVisible:void 0,direction:"up",transitionDelay:30,type:"linear",radius:0,hideOnClickOutside:!0,onVisibleChange:void 0};var De=ae({name:"useSpeedDial",defaultProps:K,setup:({props:n,id:p,elementRef:V})=>{let[i,S]=le({value:n.visible,defaultValue:n.defaultVisible??!1,onChange:n.onVisibleChange}),[y,w]=l.useState(-1),d=l.useRef(null),f=l.useRef(null),R=l.useRef(!1),F=l.useCallback(e=>{d.current=e,V.current=e??void 0},[]),N={visible:i,focusedOptionIndex:y},_=l.useCallback(e=>{f.current=e},[]),D=()=>de(d.current,'[data-scope="speeddial"][data-part="item"]'),x=()=>D().length,j=()=>{let e=h(d.current,'[data-scope="speeddial"][data-part="trigger"]');e&&B(e)},E=()=>S([!0,{value:!0}]),m=()=>S([!1,{value:!1}]),q=l.useCallback(()=>{if(n.type!=="linear"){let e=h(d.current,'[data-scope="speeddial"][data-part="trigger"]'),t=h(f.current,'[data-scope="speeddial"][data-part="item"]');if(e&&t){let a=Math.abs(e.offsetWidth-t.offsetWidth),c=Math.abs(e.offsetHeight-t.offsetHeight);f.current.style.setProperty(b("item.diff.x").name,`${a/2}px`),f.current.style.setProperty(b("item.diff.y").name,`${c/2}px`)}}},[n.type]),[W,L]=re({type:"click",listener:e=>{let t=e.target,a=d.current&&!d.current.contains(t);i&&a&&m(),R.current=!1}});ce(()=>(i&&(requestAnimationFrame(q),n.hideOnClickOutside&&W()),()=>{n.hideOnClickOutside&&L()}),[i]),ie(()=>{L()});let Y=e=>{let t=x();return(i?e:t-e-1)*(n.transitionDelay??30)},X=e=>{let{type:t,direction:a,radius:c}=n;if(t==="linear")return{};let u=x(),g=c||u*20,ee=b("item.diff.x").variable,te=b("item.diff.y").variable,$=s=>`calc(${s}px + ${ee})`,O=s=>`calc(${s}px + ${te})`;if(t==="circle"){let s=2*Math.PI/u;return{left:$(g*Math.cos(s*e)),top:O(g*Math.sin(s*e))}}let ne=t==="semi-circle"?u-1:2*(u-1),U=Math.PI/ne,se=$(g*Math.cos(U*e)),oe=O(g*Math.sin(U*e)),A={"semi-circle":{up:(s,o)=>({left:s,bottom:o}),down:(s,o)=>({left:s,top:o}),left:(s,o)=>({right:o,top:s}),right:(s,o)=>({left:o,top:s})},"quarter-circle":{"up-left":(s,o)=>({right:s,bottom:o}),"up-right":(s,o)=>({left:s,bottom:o}),"down-left":(s,o)=>({right:o,top:s}),"down-right":(s,o)=>({left:o,top:s})}}[t]?.[a];return A?A(se,oe):{}},M=e=>({transitionDelay:`${Y(e)}ms`,...X(e)}),z=(e,t=y)=>{let a=D(),c=e==="next",u=c?0:a.length-1;return t===-1?u:t+(c?1:-1)},G=e=>{let t=D();if(t[e]){w(e??-1);let a=h(t[e],'[data-part="action"]');a&&B(a)}},r=(e,t,a)=>{let c=z(t,a);G(c),e.preventDefault()},k=()=>{m(),w(-1),j()},v=()=>{i?m():E(),R.current=!0},I=e=>{switch(e.code){case"ArrowDown":case"ArrowLeft":E(),r(e,"next");break;case"ArrowUp":case"ArrowRight":E(),r(e,"prev");break;case"Escape":k();break}},P=e=>{let t=n.direction,a=["left","up-right","down-left"],c=["right","up-left","down-right"];switch(e.code){case"ArrowDown":t==="down"?r(e,"next"):r(e,"prev");break;case"ArrowUp":t==="down"?r(e,"prev"):r(e,"next");break;case"ArrowLeft":a.includes(t)||t==="down"?r(e,"next"):r(e,"prev");break;case"ArrowRight":c.includes(t)||t==="up"?r(e,"next"):r(e,"prev");break;case"Enter":case"NumpadEnter":case"Space":case"Escape":k();break;case"Home":r(e,"next",-1);break;case"End":r(e,"prev",-1);break}},H=e=>{d.current?.contains(e.relatedTarget)||w(-1)},C=e=>{m(),R.current=!0,e.preventDefault?.()},T=e=>{e.code==="Enter"&&C(e)},J={ref:F,id:p,"data-scope":"speeddial","data-part":"root",...i?{"data-open":""}:{"data-closed":""},style:{alignItems:n.direction==="up"||n.direction==="down"?"center":void 0,justifyContent:n.direction==="left"||n.direction==="right"?"center":void 0,flexDirection:n.direction==="up"?"column-reverse":n.direction==="down"?"column":n.direction==="left"?"row-reverse":n.direction==="right"?"row":void 0}},Q={"data-scope":"speeddial","data-part":"trigger",type:"button","aria-expanded":i,"aria-haspopup":"true","aria-controls":`${p}_list`,...i?{"data-open":""}:{"data-closed":""},onClick:v,onKeyDown:I},Z={ref:_,"data-scope":"speeddial","data-part":"list",...i?{"data-open":""}:{"data-closed":""},id:`${p}_list`,role:"menu",tabIndex:-1,onBlur:H,onKeyDown:P,style:{flexDirection:n.direction==="up"?"column-reverse":n.direction==="down"?"column":n.direction==="left"?"row-reverse":n.direction==="right"?"row":void 0}};return{state:N,listRef:f,rootProps:J,triggerProps:Q,listProps:Z,getItemProps:e=>({id:`${p}_${e}`,"data-scope":"speeddial","data-part":"item",role:"none",style:M(e),...y===e?{"data-active":""}:{}}),actionProps:{"data-scope":"speeddial","data-part":"action",type:"button",tabIndex:-1,role:"menuitem",onClick:C,onKeyDown:T},getItemStyle:M,onBlur:H,onKeyDown:P,onTriggerClick:v,onTriggerKeyDown:I,onItemClick:C,onItemKeyDown:T}}});export{K as defaultProps,De as useSpeedDial};
package/stepper/index.mjs CHANGED
@@ -1 +1 @@
1
- import{withHeadless as d}from"@primereact/core/headless";import*as p from"react";var r={defaultValue:null,value:null,linear:!1,onValueChange:void 0};var h=d({name:"useStepper",defaultProps:r,setup({props:a,id:o}){let[s,l]=p.useState(a.value??a.defaultValue??null),c={value:s},n=e=>{e!==s&&(l(e),a.onValueChange?.({value:e}))};return{state:c,rootProps:{"data-scope":"stepper","data-part":"root"},getItemProps:({active:e})=>({"data-scope":"stepper","data-part":"item",...e?{"data-active":""}:{}}),getStepProps:({active:e,disabled:t})=>({"data-scope":"stepper","data-part":"step","aria-current":e?"step":void 0,role:"presentation",...e?{"data-active":""}:{},...t?{"data-disabled":""}:{}}),getHeaderProps:({activeValue:e,disabled:t})=>({"data-scope":"stepper","data-part":"header",type:"button",role:"tab",tabIndex:t?-1:void 0,"aria-controls":`${o}_steppanel_${e}`,disabled:t,onClick:()=>n(e)}),getPanelProps:({active:e,activeValue:t})=>({"data-scope":"stepper","data-part":"panel",role:"tabpanel","aria-controls":`${o}_step_${t}`,...e?{"data-active":""}:{}}),setActiveStep:n,isStepActive:e=>s===e,isStepDisabled:()=>a.linear??!1}}});export{r as defaultProps,h as useStepper};
1
+ import{withHeadless as c}from"@primereact/core/headless";import{useControlledState as d}from"@primereact/hooks/use-controlled-state";var r={defaultValue:null,value:null,linear:!1,onValueChange:void 0};var x=c({name:"useStepper",defaultProps:r,setup({props:a,id:n}){let[s,p]=d({value:a.value??void 0,defaultValue:a.defaultValue??null,onChange:a.onValueChange}),l={value:s},o=e=>{e!==s&&p([e,{value:e}])};return{state:l,rootProps:{"data-scope":"stepper","data-part":"root"},getItemProps:({active:e})=>({"data-scope":"stepper","data-part":"item",...e?{"data-active":""}:{}}),getStepProps:({active:e,disabled:t})=>({"data-scope":"stepper","data-part":"step","aria-current":e?"step":void 0,role:"presentation",...e?{"data-active":""}:{},...t?{"data-disabled":""}:{}}),getHeaderProps:({activeValue:e,disabled:t})=>({"data-scope":"stepper","data-part":"header",type:"button",role:"tab",tabIndex:t?-1:void 0,"aria-controls":`${n}_steppanel_${e}`,disabled:t,onClick:()=>o(e)}),getPanelProps:({active:e,activeValue:t})=>({"data-scope":"stepper","data-part":"panel",role:"tabpanel","aria-controls":`${n}_step_${t}`,...e?{"data-active":""}:{}}),setActiveStep:o,isStepActive:e=>s===e,isStepDisabled:()=>a.linear??!1}}});export{r as defaultProps,x as useStepper};
@@ -1,5 +1,4 @@
1
- import { UseStepperProps } from '@primereact/types/headless/stepper';
2
- export declare const useStepper: (inProps?: unknown) => import("@primereact/types/core").HeadlessInstance<UseStepperProps, unknown, {
1
+ export declare const useStepper: (inProps?: unknown) => import("@primereact/types/core").HeadlessInstance<import("@primereact/types/headless/stepper").UseStepperProps, unknown, {
3
2
  state: {
4
3
  value: string | number | null | undefined;
5
4
  };
@@ -1 +1 @@
1
- import{withHeadless as p}from"@primereact/core/headless";import{isCssSupported as l}from"@primeuix/utils";import*as e from"react";var d={autoResize:void 0};var y=p({name:"useTextarea",defaultProps:d,setup({props:i}){let o=e.useMemo(()=>l("field-sizing","content"),[]),s=e.useCallback(t=>{if(!(!t||!t.offsetParent))if(o)t.style.minHeight||(t.style.minHeight=t.offsetHeight+"px"),t.style.width||(t.style.width=t.offsetWidth+"px"),t.style.fieldSizing="content";else{let f=window.getComputedStyle(t),a=parseFloat(f.maxHeight)||1/0;t.style.height="auto";let r=t.scrollHeight;r>=a?(t.style.overflowY="scroll",t.style.height=a+"px"):(t.style.overflowY="hidden",t.style.height=r+"px")}},[o]),n=e.useCallback(t=>{i.autoResize&&s(t.currentTarget)},[i.autoResize,s]);return{rootProps:{"data-scope":"textarea","data-part":"root","aria-invalid":!!i.invalid||void 0,...i.invalid?{"data-invalid":""}:void 0,onInput:n}}}});export{d as defaultProps,y as useTextarea};
1
+ import{withHeadless as p}from"@primereact/core/headless";import{isCssSupported as l}from"@primeuix/utils";import*as e from"react";var d={autoResize:void 0,invalid:!1};var y=p({name:"useTextarea",defaultProps:d,setup({props:i}){let o=e.useMemo(()=>l("field-sizing","content"),[]),s=e.useCallback(t=>{if(!(!t||!t.offsetParent))if(o)t.style.minHeight||(t.style.minHeight=t.offsetHeight+"px"),t.style.width||(t.style.width=t.offsetWidth+"px"),t.style.fieldSizing="content";else{let f=window.getComputedStyle(t),a=parseFloat(f.maxHeight)||1/0;t.style.height="auto";let r=t.scrollHeight;r>=a?(t.style.overflowY="scroll",t.style.height=a+"px"):(t.style.overflowY="hidden",t.style.height=r+"px")}},[o]),n=e.useCallback(t=>{i.autoResize&&s(t.currentTarget)},[i.autoResize,s]);return{rootProps:{"data-scope":"textarea","data-part":"root","aria-invalid":!!i.invalid||void 0,...i.invalid?{"data-invalid":""}:void 0,onInput:n}}}});export{d as defaultProps,y as useTextarea};
package/toast/index.mjs CHANGED
@@ -1 +1 @@
1
- import{withHeadless as gt}from"@primereact/core/headless";import{defaultToaster as ht}from"@primereact/headless/toaster";import{useMountEffect as xt}from"@primereact/hooks/use-mount-effect";import{useVisibilityChange as yt}from"@primereact/hooks/use-visibility-change";import*as s from"react";var J={toast:{},toaster:void 0};var Rt=50,bt=.11,It=gt({name:"useToast",defaultProps:J,setup:({props:K,elementRef:i})=>{let{toast:t,toaster:n}=K,f=s.useMemo(()=>!n?.toasts||!Array.isArray(n?.toasts)?0:n?.toasts.findIndex(e=>e.id===t.id)||0,[n?.toasts,t.id]),L=yt(),[x,Z]=s.useState(!1),[d,T]=s.useState(null),[A,O]=s.useState(null),[y,tt]=s.useState(!1),[v,S]=s.useState(!1),[H,et]=s.useState(!1),[k,V]=s.useState(!1),[M,P]=s.useState(0),[E,F]=s.useState(0),R=t.dismissible!==!1&&!t.loading,g=s.useRef(t.duration||n?.props.timeout||6e3),N=s.useRef(0),p=s.useRef(null),D=s.useRef(null),I=s.useRef(0),B=s.useRef(0),b=s.useMemo(()=>n?.state.heights?.findIndex(e=>e.toastId===t.id)??0,[n?.state.heights,t.id]),Y=s.useMemo(()=>t.duration||n?.props.timeout||6e3,[t.duration,n?.props.timeout]),l=s.useRef(0);l.current=n?.state.heights?.reduce((e,a,o)=>o>=b?e:e+a.height,0)??0;let U=t.loading===!0;s.useEffect(()=>{g.current=Y},[Y]),xt(()=>{tt(!0)}),s.useEffect(()=>{let e=i.current;if(!e||!t.id)return;let a=e.getBoundingClientRect().height;return F(a),n?.setHeights(o=>[{toastId:t.id,height:a},...o]),()=>n?.setHeights(o=>o.filter(r=>r.toastId!==t.id))},[n?.setHeights,t.id]),s.useLayoutEffect(()=>{if(!y||!t.id||!n?.setHeights)return;let e=i.current;if(!e)return;let a=e.style.height;e.style.height="auto";let o=e?.getBoundingClientRect().height;e.style.height=a,F(o),n?.setHeights(r=>r.find(c=>c.toastId===t.id)?r.map(c=>c.toastId===t.id?{...c,height:o}:c):[{toastId:t.id,height:o},...r])},[y,t.title,t.description,t.id,t.render,t.action,t.icon,n?.setHeights]);let u=s.useCallback(()=>{n?.handleFocusManagement(i.current??null),Z(!0),P(l.current),n?.setHeights(e=>e.filter(a=>a.toastId!==t.id)),requestAnimationFrame(()=>{let e=i.current;if(!e)return;let o=getComputedStyle(e).transitionDuration,r=parseFloat(o)*(o.includes("ms")?1:1e3);setTimeout(()=>{t.id!==void 0&&n?.removeFromQueue(t.id)},r??10)})},[t,n?.setHeights]);s.useEffect(()=>ht.subscribe(e=>{if(e.action!=="dismiss")return;let a=e.id!==void 0&&e.id===t.id,o=e.id===void 0;(a||o)&&(u(),t.onDismiss?.(t))}),[t,u]);let st=s.useCallback(()=>{if(B.current<I.current){let e=new Date().getTime()-I.current;g.current=g.current-e}B.current=new Date().getTime()},[]),nt=s.useCallback(()=>{g.current!==1/0&&(I.current=new Date().getTime(),D.current=setTimeout(()=>{t.onTimeout?.(t),u()},g.current))},[t,u]);s.useEffect(()=>{if(!(t.loading||t.duration===1/0))return n?.state.isHovered||n?.state.isInteracting||!L?st():nt(),()=>{D.current&&clearTimeout(D.current)}},[n?.state.isHovered,n?.state.isInteracting,t,u,L]);let X=()=>{S(!1),T(null),p.current=null},$=e=>{e.button===0&&(U||!R||(N.current=new Date().getTime(),P(l.current),e.target.setPointerCapture(e.pointerId),S(!0),p.current={x:e.clientX,y:e.clientY}))},_=e=>{if(!p.current||!R||(window.getSelection()?.toString().length??0)>0)return;let a=e.clientY-p.current.y,o=e.clientX-p.current.x,r=Math.abs(o)>1||Math.abs(a)>1,C=(n?.props.position??"bottom-right").split("-"),c=C[0],W=C[1];!d&&r&&T(Math.abs(o)>Math.abs(a)?"x":"y");let m={x:0,y:0},j=w=>{let G=w*(ft=>1/(1.5+Math.abs(ft)/20))(w);return Math.abs(G)<Math.abs(w)?G:w};d==="x"?m.x=W==="left"&&o<0||W==="right"&&o>0?o:j(o):d==="y"&&(m.y=c==="top"&&a<0||c==="bottom"&&a>0?a:j(a)),(Math.abs(m.x)>0||Math.abs(m.y)>0)&&V(!0),i.current.style.setProperty("--px-swipe-amount-x",`${m.x}px`),i.current.style.setProperty("--px-swipe-amount-y",`${m.y}px`)},q=()=>{if(H||!R)return;S(!1),p.current=null;let e=Number(i.current.style.getPropertyValue("--px-swipe-amount-x").replace("px","")||0),a=Number(i.current.style.getPropertyValue("--px-swipe-amount-y").replace("px","")||0),o=d==="x"?e:a,r=Math.abs(o)/(new Date().getTime()-(N.current??0));if(Math.abs(o)>=Rt||r>bt){P(l.current),O(d==="x"?e>0?"right":"left":a>0?"down":"up"),u(),t.onDismiss?.(t),et(!0);return}else i.current.style.setProperty("--px-swipe-amount-x","0px"),i.current.style.setProperty("--px-swipe-amount-y","0px");V(!1),T(null)},z=()=>{U||!R||(u(),t.onDismiss?.(t))},ot=s.useCallback(e=>{i.current=e??void 0},[i]),at={mounted:y,swiping:v,swipeOut:H,swipeOutDirection:A,swipeDirection:d,initialHeight:E,isSwiped:k,offsetBeforeRemove:M,removed:x},h=b+1<=(n?.props.limit||3),Q=f===0,it={ref:ot,"data-scope":"toast","data-part":"root",tabIndex:h?0:-1,role:"alert",inert:!h,"aria-live":"assertive","aria-atomic":"true","aria-hidden":!h,"data-id":t?.id,"data-swipe-direction":A,"data-index":f,...y&&{"data-mounted":""},...x&&{"data-removed":""},...k&&{"data-swiped":""},...h&&{"data-visible":""},...v&&{"data-swiping":""},...t.dismissible&&{"data-dismissible":""},...n?.state.isExpanded&&{"data-expanded":""},...Q&&{"data-front":""},...H&&{"data-swipe-out":""},style:{"--px-initial-height":E?`${E}px`:void 0,"--px-toast-index":x?f:b,"--px-toast-z-index":(n?.toasts?.length||0)-f,"--px-toast-offset":(x?M:l.current)+"px","--px-swipe-amount-x":"0px","--px-swipe-amount-y":"0px"},onPointerDown:$,onPointerMove:_,onPointerUp:q,onDragEnd:X},rt={"data-scope":"toast","data-part":"action"},ct={"data-scope":"toast","data-part":"content"},ut={"data-scope":"toast","data-part":"message"},dt={"data-scope":"toast","data-part":"close",onClick:z},pt={"data-scope":"toast","data-part":"description"},lt={"data-scope":"toast","data-part":"icon"},mt={"data-scope":"toast","data-part":"title"};return{state:at,offset:l.current,offsetBeforeRemove:M,index:f,visibleIndex:b,isVisible:h,isFront:Q,toaster:n,rootProps:it,actionProps:rt,contentProps:ct,closeProps:dt,messageProps:ut,descriptionProps:pt,iconProps:lt,titleProps:mt,onPointerDown:$,onPointerMove:_,onPointerUp:q,onDragEnd:X,handleCloseOnClick:z}}});export{J as defaultProps,It as useToast};
1
+ import{withHeadless as gt}from"@primereact/core/headless";import{defaultToaster as ht}from"@primereact/headless/toaster";import{useMountEffect as xt}from"@primereact/hooks/use-mount-effect";import{useVisibilityChange as yt}from"@primereact/hooks/use-visibility-change";import*as s from"react";var J={toast:{},toaster:void 0};var Rt=50,bt=.11,It=gt({name:"useToast",defaultProps:J,setup:({props:K,elementRef:i})=>{let{toast:t,toaster:n}=K,f=s.useMemo(()=>{if(!n?.toasts||!Array.isArray(n?.toasts))return 0;let e=n?.toasts.findIndex(a=>a.id===t.id)??-1;return e===-1?0:e},[n?.toasts,t.id]),L=yt(),[x,Z]=s.useState(!1),[d,T]=s.useState(null),[A,O]=s.useState(null),[y,tt]=s.useState(!1),[v,S]=s.useState(!1),[H,et]=s.useState(!1),[k,V]=s.useState(!1),[M,P]=s.useState(0),[E,F]=s.useState(0),R=t.dismissible!==!1&&!t.loading,g=s.useRef(t.duration||n?.props.timeout||6e3),N=s.useRef(0),p=s.useRef(null),D=s.useRef(null),I=s.useRef(0),B=s.useRef(0),b=s.useMemo(()=>n?.state.heights?.findIndex(e=>e.toastId===t.id)??0,[n?.state.heights,t.id]),Y=s.useMemo(()=>t.duration||n?.props.timeout||6e3,[t.duration,n?.props.timeout]),l=s.useRef(0);l.current=n?.state.heights?.reduce((e,a,o)=>o>=b?e:e+a.height,0)??0;let U=t.loading===!0;s.useEffect(()=>{g.current=Y},[Y]),xt(()=>{tt(!0)}),s.useEffect(()=>{let e=i.current;if(!e||!t.id)return;let a=e.getBoundingClientRect().height;return F(a),n?.setHeights(o=>[{toastId:t.id,height:a},...o]),()=>n?.setHeights(o=>o.filter(r=>r.toastId!==t.id))},[n?.setHeights,t.id]),s.useLayoutEffect(()=>{if(!y||!t.id||!n?.setHeights)return;let e=i.current;if(!e)return;let a=e.style.height;e.style.height="auto";let o=e?.getBoundingClientRect().height;e.style.height=a,F(o),n?.setHeights(r=>r.find(c=>c.toastId===t.id)?r.map(c=>c.toastId===t.id?{...c,height:o}:c):[{toastId:t.id,height:o},...r])},[y,t.title,t.description,t.id,t.render,t.action,t.icon,n?.setHeights]);let u=s.useCallback(()=>{n?.handleFocusManagement(i.current??null),Z(!0),P(l.current),n?.setHeights(e=>e.filter(a=>a.toastId!==t.id)),requestAnimationFrame(()=>{let e=i.current;if(!e)return;let o=getComputedStyle(e).transitionDuration,r=parseFloat(o)*(o.includes("ms")?1:1e3);setTimeout(()=>{t.id!==void 0&&n?.removeFromQueue(t.id)},r??10)})},[t,n?.setHeights]);s.useEffect(()=>ht.subscribe(e=>{if(e.action!=="dismiss")return;let a=e.id!==void 0&&e.id===t.id,o=e.id===void 0;(a||o)&&(u(),t.onDismiss?.(t))}),[t,u]);let st=s.useCallback(()=>{if(B.current<I.current){let e=new Date().getTime()-I.current;g.current=g.current-e}B.current=new Date().getTime()},[]),nt=s.useCallback(()=>{g.current!==1/0&&(I.current=new Date().getTime(),D.current=setTimeout(()=>{t.onTimeout?.(t),u()},g.current))},[t,u]);s.useEffect(()=>{if(!(t.loading||t.duration===1/0))return n?.state.isHovered||n?.state.isInteracting||!L?st():nt(),()=>{D.current&&clearTimeout(D.current)}},[n?.state.isHovered,n?.state.isInteracting,t,u,L]);let X=()=>{S(!1),T(null),p.current=null},$=e=>{e.button===0&&(U||!R||(N.current=new Date().getTime(),P(l.current),e.target.setPointerCapture(e.pointerId),S(!0),p.current={x:e.clientX,y:e.clientY}))},_=e=>{if(!p.current||!R||(window.getSelection()?.toString().length??0)>0)return;let a=e.clientY-p.current.y,o=e.clientX-p.current.x,r=Math.abs(o)>1||Math.abs(a)>1,C=(n?.props.position??"bottom-right").split("-"),c=C[0],W=C[1];!d&&r&&T(Math.abs(o)>Math.abs(a)?"x":"y");let m={x:0,y:0},j=w=>{let G=w*(ft=>1/(1.5+Math.abs(ft)/20))(w);return Math.abs(G)<Math.abs(w)?G:w};d==="x"?m.x=W==="left"&&o<0||W==="right"&&o>0?o:j(o):d==="y"&&(m.y=c==="top"&&a<0||c==="bottom"&&a>0?a:j(a)),(Math.abs(m.x)>0||Math.abs(m.y)>0)&&V(!0),i.current.style.setProperty("--px-swipe-amount-x",`${m.x}px`),i.current.style.setProperty("--px-swipe-amount-y",`${m.y}px`)},q=()=>{if(H||!R)return;S(!1),p.current=null;let e=Number(i.current.style.getPropertyValue("--px-swipe-amount-x").replace("px","")||0),a=Number(i.current.style.getPropertyValue("--px-swipe-amount-y").replace("px","")||0),o=d==="x"?e:a,r=Math.abs(o)/(new Date().getTime()-(N.current??0));if(Math.abs(o)>=Rt||r>bt){P(l.current),O(d==="x"?e>0?"right":"left":a>0?"down":"up"),u(),t.onDismiss?.(t),et(!0);return}else i.current.style.setProperty("--px-swipe-amount-x","0px"),i.current.style.setProperty("--px-swipe-amount-y","0px");V(!1),T(null)},z=()=>{U||!R||(u(),t.onDismiss?.(t))},ot=s.useCallback(e=>{i.current=e??void 0},[i]),at={mounted:y,swiping:v,swipeOut:H,swipeOutDirection:A,swipeDirection:d,initialHeight:E,isSwiped:k,offsetBeforeRemove:M,removed:x},h=b+1<=(n?.props.limit||3),Q=f===0,it={ref:ot,"data-scope":"toast","data-part":"root",tabIndex:h?0:-1,role:"alert",inert:!h,"aria-live":"assertive","aria-atomic":"true","aria-hidden":!h,"data-swipe-direction":A,"data-index":f,...y&&{"data-mounted":""},...x&&{"data-removed":""},...k&&{"data-swiped":""},...h&&{"data-visible":""},...v&&{"data-swiping":""},...t.dismissible&&{"data-dismissible":""},...n?.state.isExpanded&&{"data-expanded":""},...Q&&{"data-front":""},...H&&{"data-swipe-out":""},style:{"--px-initial-height":E?`${E}px`:void 0,"--px-toast-index":x?f:b,"--px-toast-z-index":(n?.toasts?.length||0)-f,"--px-toast-offset":(x?M:l.current)+"px","--px-swipe-amount-x":"0px","--px-swipe-amount-y":"0px"},onPointerDown:$,onPointerMove:_,onPointerUp:q,onDragEnd:X},rt={"data-scope":"toast","data-part":"action"},ct={"data-scope":"toast","data-part":"content"},ut={"data-scope":"toast","data-part":"message"},dt={"data-scope":"toast","data-part":"close",onClick:z},pt={"data-scope":"toast","data-part":"description"},lt={"data-scope":"toast","data-part":"icon"},mt={"data-scope":"toast","data-part":"title"};return{state:at,offset:l.current,offsetBeforeRemove:M,index:f,visibleIndex:b,isVisible:h,isFront:Q,toaster:n,rootProps:it,actionProps:rt,contentProps:ct,closeProps:dt,messageProps:ut,descriptionProps:pt,iconProps:lt,titleProps:mt,onPointerDown:$,onPointerMove:_,onPointerUp:q,onDragEnd:X,handleCloseOnClick:z}}});export{J as defaultProps,It as useToast};
@@ -47,7 +47,6 @@ export declare const useToast: (inProps?: unknown) => import("@primereact/types/
47
47
  'aria-live': "assertive";
48
48
  'aria-atomic': "true";
49
49
  'aria-hidden': boolean;
50
- 'data-id': import("@primereact/types/primitive/toaster").ToastId | undefined;
51
50
  'data-swipe-direction': "left" | "right" | "up" | "down" | null;
52
51
  'data-index': number;
53
52
  };
package/toaster/index.mjs CHANGED
@@ -1 +1 @@
1
- var $=0,C=()=>`toast-${++$}-${Date.now()}`,L=e=>typeof e=="number"&&!Number.isNaN(e)||typeof e=="string"&&e.length>0?e:C();function N(){let e=[],m=new Set,p=s=>{m.forEach(t=>t(s))},v=()=>e,E=s=>(m.add(s),()=>{m.delete(s)}),f=s=>{let t=L(s.id),d=s.dismissible??!0,c=e.findIndex(n=>n.id===t);if(c!==-1){let n={...e[c],...s,id:t,dismissible:d};e=[...e.slice(0,c),n,...e.slice(c+1)],p({action:"update",toast:n})}else{let n={...s,id:t,dismissible:d};e=[n,...e],p({action:"add",toast:n})}return t},T=(s,t)=>f({...t,id:s}),g=s=>{p({action:"dismiss",id:s})},y=async(s,t)=>{let d=L(t.loading.id);f({...t.loading,id:d,loading:!0,dismissible:t.loading.dismissible??!1});try{let c=await s,n=typeof t.success=="function"?t.success(c):t.success;return n?f({icon:void 0,...n,id:d,severity:n.severity??"success",loading:!1}):g(d),c}catch(c){let n=typeof t.error=="function"?t.error(c):t.error;throw n?f({icon:void 0,...n,id:d,severity:n.severity??"error",loading:!1}):g(d),c}},i=s=>t=>f({...t,severity:s});return{snapshot:v,subscribe:E,add:f,update:T,dismiss:g,promise:y,success:i("success"),info:i("info"),warn:i("warn"),error:i("error"),secondary:i("secondary"),contrast:i("contrast")}}var u=N(),k=e=>u.add(e),j=Object.assign(k,{update:u.update,dismiss:u.dismiss,promise:u.promise,success:u.success,info:u.info,warn:u.warn,error:u.error,secondary:u.secondary,contrast:u.contrast});import{withHeadless as B}from"@primereact/core/headless";import*as a from"react";var H={timeout:6e3,gap:12,position:"top-right",mode:"stacked",group:void 0,limit:3};var Q=B({name:"useToaster",defaultProps:H,setup:({props:e})=>{let m=a.useSyncExternalStore(u.subscribe,u.snapshot,u.snapshot),[p,v]=a.useState(()=>new Set),E=a.useCallback(o=>{v(r=>{if(r.has(o))return r;let l=new Set(r);return l.add(o),l})},[]),f=a.useMemo(()=>{let o=e.group?m.filter(r=>r.group===e.group):m.filter(r=>!r.group);return p.size?o.filter(r=>r.id===void 0||!p.has(r.id)):o},[m,e.group,p]),[T,g]=a.useState([]),[y,i]=a.useState(!1),[s,t]=a.useState(!1),d=a.useRef(!1),c=e.mode==="expanded"||y,n={isExpanded:c,isHovered:y,isInteracting:s,heights:T},h=()=>{i(!0)},R=()=>{i(!0)},x=()=>{!s&&!d.current&&i(!1)},I=()=>{i(!1)},M=o=>{o.target instanceof HTMLElement&&o.target.dataset.dismissible==="false"||t(!0)},b=()=>{t(!1)},S=o=>{let r=o.currentTarget,l=document.activeElement;l&&l.matches(":focus-visible")&&r.contains(l)&&(d.current=!0,i(!0))},P=o=>{let r=o.currentTarget,l=o.relatedTarget;l&&r.contains(l)||(d.current=!1,!s&&i(!1))},F=o=>{if(!o)return;let r=document.activeElement;if(!o.contains(r))return;let l=o.nextElementSibling,w=o.previousElementSibling;requestAnimationFrame(()=>{l?l.focus({preventScroll:!0}):w&&w.focus({preventScroll:!0})})};a.useEffect(()=>{f.length<=1&&i(!1)},[f]);let D={"data-scope":"toaster","data-part":"root","data-position":e.position},U=a.useMemo(()=>({"data-scope":"toaster","data-part":"region",role:"region",tabIndex:0,onMouseEnter:h,onMouseLeave:x,onMouseMove:R,onDragEnd:I,onPointerDown:M,onPointerUp:b,onFocus:S,onBlur:P,"data-position":e.position,...c&&{"data-expanded":""},style:{"--px-gap":`${e.gap}px`,"--px-front-toast-height":`${T?.[0]?.height||0}px`}}),[e.position,e.gap,c,T]);return{state:n,toasts:f,setHeights:g,removeFromQueue:E,rootProps:D,regionProps:U,onRegionMouseEnter:h,onRegionMouseMove:R,onRegionMouseLeave:x,onRegionDragEnd:I,onRegionPointerDown:M,onRegionPointerUp:b,onRegionFocus:S,onRegionBlur:P,handleFocusManagement:F}}});export{N as createToastManager,H as defaultProps,u as defaultToaster,j as toast,Q as useToaster};
1
+ var D=0,U=()=>`toast-${++D}-${Date.now()}`,S=e=>typeof e=="number"&&!Number.isNaN(e)||typeof e=="string"&&e.length>0?e:U();function $(){let e=[],f=new Set,p=s=>{f.forEach(t=>t(s))},T=()=>e,g=s=>(f.add(s),()=>{f.delete(s)}),m=s=>{let t=S(s.id),i=s.dismissible??!0,c=e.findIndex(o=>o.id===t);if(c!==-1){let o={...e[c],...s,id:t,dismissible:i};e=[...e.slice(0,c),o,...e.slice(c+1)],p({action:"update",toast:o})}else{let o={...s,id:t,dismissible:i};e=[o,...e],p({action:"add",toast:o})}return t},E=(s,t)=>m({...t,id:s}),u=s=>{p({action:"dismiss",id:s})},y=s=>{let t=e.filter(i=>i.id!==s);t.length!==e.length&&(e=t,p({action:"remove",id:s}))},h=async(s,t)=>{let i=S(t.loading.id);m({...t.loading,id:i,loading:!0,dismissible:t.loading.dismissible??!1});try{let c=await s,o=typeof t.success=="function"?t.success(c):t.success;return o?m({icon:void 0,...o,id:i,severity:o.severity??"success",loading:!1}):u(i),c}catch(c){let o=typeof t.error=="function"?t.error(c):t.error;throw o?m({icon:void 0,...o,id:i,severity:o.severity??"error",loading:!1}):u(i),c}},d=s=>t=>m({...t,severity:s});return{snapshot:T,subscribe:g,add:m,update:E,dismiss:u,remove:y,promise:h,success:d("success"),info:d("info"),warn:d("warn"),error:d("error"),secondary:d("secondary"),contrast:d("contrast")}}var r=$(),C=e=>r.add(e),k=Object.assign(C,{update:r.update,dismiss:r.dismiss,promise:r.promise,success:r.success,info:r.info,warn:r.warn,error:r.error,secondary:r.secondary,contrast:r.contrast});import{withHeadless as N}from"@primereact/core/headless";import*as a from"react";var L={timeout:6e3,gap:12,position:"top-right",mode:"stacked",group:void 0,limit:3};var Q=N({name:"useToaster",defaultProps:L,setup:({props:e})=>{let f=a.useSyncExternalStore(r.subscribe,r.snapshot,r.snapshot),p=a.useCallback(n=>{r.remove(n)},[]),T=a.useMemo(()=>e.group?f.filter(n=>n.group===e.group):f.filter(n=>!n.group),[f,e.group]),[g,m]=a.useState([]),[E,u]=a.useState(!1),[y,h]=a.useState(!1),d=a.useRef(!1),s=e.mode==="expanded"||E,t={isExpanded:s,isHovered:E,isInteracting:y,heights:g},i=()=>{u(!0)},c=()=>{u(!0)},o=()=>{!y&&!d.current&&u(!1)},x=()=>{u(!1)},R=n=>{n.target instanceof HTMLElement&&n.target.dataset.dismissible==="false"||h(!0)},M=()=>{h(!1)},b=n=>{let v=n.currentTarget,l=document.activeElement;l&&l.matches(":focus-visible")&&v.contains(l)&&(d.current=!0,u(!0))},I=n=>{let v=n.currentTarget,l=n.relatedTarget;l&&v.contains(l)||(d.current=!1,!y&&u(!1))},H=n=>{if(!n)return;let v=document.activeElement;if(!n.contains(v))return;let l=n.nextElementSibling,P=n.previousElementSibling;requestAnimationFrame(()=>{l?l.focus({preventScroll:!0}):P&&P.focus({preventScroll:!0})})};a.useEffect(()=>{T.length<=1&&u(!1)},[T]);let w={"data-scope":"toaster","data-part":"root","data-position":e.position},F=a.useMemo(()=>({"data-scope":"toaster","data-part":"region",role:"region",tabIndex:0,onMouseEnter:i,onMouseLeave:o,onMouseMove:c,onDragEnd:x,onPointerDown:R,onPointerUp:M,onFocus:b,onBlur:I,"data-position":e.position,...s&&{"data-expanded":""},style:{"--px-gap":`${e.gap}px`,"--px-front-toast-height":`${g?.[0]?.height||0}px`}}),[e.position,e.gap,s,g]);return{state:t,toasts:T,setHeights:m,removeFromQueue:p,rootProps:w,regionProps:F,onRegionMouseEnter:i,onRegionMouseMove:c,onRegionMouseLeave:o,onRegionDragEnd:x,onRegionPointerDown:R,onRegionPointerUp:M,onRegionFocus:b,onRegionBlur:I,handleFocusManagement:H}}});export{$ as createToastManager,L as defaultProps,r as defaultToaster,k as toast,Q as useToaster};
package/tooltip/index.mjs CHANGED
@@ -1 +1 @@
1
- import{withHeadless as ae}from"@primereact/core/headless";import{useControlledState as ce}from"@primereact/hooks/use-controlled-state";import*as t from"react";var U={anchor:void 0,open:void 0,defaultOpen:!1,onOpenChange:void 0,onExitComplete:void 0,disabled:!1,openDelay:600,closeDelay:100,interactive:!0,tooltipManager:void 0};var me=ae({name:"useTooltip",defaultProps:U,setup:({props:a})=>{let{tooltipManager:n,openDelay:G=600,closeDelay:C=0,interactive:b=!0,disabled:I}=a,[o,N]=ce({value:a.open,defaultValue:a.defaultOpen,onChange:a.onOpenChange}),[O,H]=t.useState(a.anchor??null),[S,V]=t.useState(null),[_,j]=t.useState(null),[q,z]=t.useState(null),[d,i]=t.useState(void 0),[J,k]=t.useState(!!o),l=t.useId(),v=t.useRef(null),T=t.useRef(null),M=t.useRef(null),x=t.useRef(null),R=t.useRef(null),c=t.useRef(null),P=t.useRef(!1),D=t.useRef(!1),L=t.useRef(o);L.current=o;let Q=t.useCallback(e=>{a.anchor==null&&e!==v.current&&(v.current=e,H(e))},[a.anchor]);t.useEffect(()=>{a.anchor!==void 0&&(v.current=a.anchor,H(a.anchor??null))},[a.anchor]),t.useEffect(()=>{o&&k(!0)},[o]);let W=t.useCallback(e=>{e!==T.current&&(T.current=e,V(e))},[]),X=t.useCallback(e=>{e!==x.current&&(x.current=e,z(e))},[]),Y=t.useCallback(e=>{e!==M.current&&(M.current=e,j(e))},[]),Z=t.useCallback(()=>{},[]),$=t.useCallback(()=>{a.onExitComplete?.()},[a.onExitComplete]),E=()=>{R.current&&(clearTimeout(R.current),R.current=null),c.current&&(clearTimeout(c.current),c.current=null)};function y(e,r){N([e,{originalEvent:r,value:e}])}let h=t.useRef(()=>{});h.current=()=>{E(),i("delay"),y(!1),n?.notifyClose?.(l)};let K=(e,r)=>{if(I)return;E();let u=n?.state?.isInstantPhase,f=n?.state?.lastClosedTooltipId,p=n?.state?.currentOpenTooltipId,w=n?.state?.openDelay,g=p!==null&&p!==l,F=u&&f===l,B=g||u&&f!==null&&f!==l,A=B||F?0:e??w??G;g&&n?.closeCurrentTooltip?.(),i(r||(B?"delay":void 0)),A===0?(y(!0),n?.notifyOpen?.(l,()=>h.current())):R.current=window.setTimeout(()=>{y(!0),n?.notifyOpen?.(l,()=>h.current()),R.current=null},A)},m=(e,r)=>{E();let u=n?.state?.isInstantPhase,f=n?.state?.closeDelay,p=u?0:e??f??C;r&&i(r),p===0?(y(!1),n?.notifyClose?.(l),r||i(void 0)):c.current=window.setTimeout(()=>{y(!1),n?.notifyClose?.(l),r||i(void 0),c.current=null},p)},s=t.useRef({onTriggerPointerEnter:()=>{},onTriggerPointerLeave:()=>{},onPositionerPointerLeave:()=>{},onFocus:()=>{},onBlur:()=>{},onDocumentPointerDown:e=>{},onKeyDown:e=>{}});s.current.onTriggerPointerEnter=()=>{P.current=!1,K()},s.current.onTriggerPointerLeave=()=>{if(!L.current){E();return}if(n){let e=n.state?.closeDelay??C;c.current=window.setTimeout(()=>{c.current=null,m(0)},e)}else m()},s.current.onPositionerPointerLeave=()=>{if(P.current=!1,n){let e=n.state?.closeDelay??C;c.current=window.setTimeout(()=>{c.current=null,m(0)},e)}else m()},s.current.onFocus=()=>{if(D.current){D.current=!1;return}v.current?.matches(":focus-visible")&&K(0,"focus")},s.current.onBlur=()=>{D.current=!1,document.hasFocus()&&m(0,"focus")},s.current.onDocumentPointerDown=e=>{L.current&&(b&&T.current?.contains(e.target)||(D.current=!0,m(0,"dismiss")))},s.current.onKeyDown=e=>{e.key==="Escape"&&L.current&&m(0,"dismiss")},t.useEffect(()=>{let e=v.current;if(!e||I)return;let r=()=>s.current.onTriggerPointerEnter(),u=()=>s.current.onTriggerPointerLeave(),f=()=>s.current.onFocus(),p=()=>s.current.onBlur(),w=g=>s.current.onKeyDown(g);return e.addEventListener("pointerenter",r),e.addEventListener("pointerleave",u),e.addEventListener("focus",f),e.addEventListener("blur",p),e.addEventListener("keydown",w),()=>{e.removeEventListener("pointerenter",r),e.removeEventListener("pointerleave",u),e.removeEventListener("focus",f),e.removeEventListener("blur",p),e.removeEventListener("keydown",w)}},[O,I]),t.useEffect(()=>{if(!o)return;let e=r=>s.current.onDocumentPointerDown(r);return document.addEventListener("pointerdown",e),()=>{document.removeEventListener("pointerdown",e)}},[o]),t.useEffect(()=>{let e=T.current;if(!e||!o||!b)return;let r=()=>{P.current=!0,c.current&&(clearTimeout(c.current),c.current=null)},u=()=>s.current.onPositionerPointerLeave();return e.addEventListener("pointerenter",r),e.addEventListener("pointerleave",u),()=>{e.removeEventListener("pointerenter",r),e.removeEventListener("pointerleave",u),P.current=!1}},[S,o,b]),t.useEffect(()=>{o&&n&&n.notifyOpen(l,()=>h.current())},[o]),t.useEffect(()=>()=>E(),[]);let ee={open:o,rendered:J,anchorElement:O,positionerElement:S,popupElement:_,arrowElement:q,instantType:d},te={...d&&{"data-instant":d}},ne={"data-scope":"tooltip","data-part":"trigger",ref:Q,...o&&{"data-popup-open":""}},re={"data-scope":"tooltip","data-part":"positioner",ref:W,...o&&{"data-open":""}},oe={"data-scope":"tooltip","data-part":"popup",ref:Y,...o&&{"data-open":""},...d&&{"data-instant":""},"data-instant-type":d},se={"data-scope":"tooltip","data-part":"arrow",ref:X,...o&&{"data-open":""},...d&&{"data-instant":d}};return{state:ee,popupRef:M,rootProps:te,triggerProps:ne,positionerProps:re,popupProps:oe,arrowProps:se,setRendered:k,onOpenComplete:Z,onCloseComplete:$}}});export{U as defaultProps,me as useTooltip};
1
+ import{withHeadless as ae}from"@primereact/core/headless";import{useControlledState as ce}from"@primereact/hooks/use-controlled-state";import*as t from"react";var U={anchor:void 0,open:void 0,defaultOpen:!1,onOpenChange:void 0,onExitComplete:void 0,disabled:!1,openDelay:600,closeDelay:100,interactive:!0,tooltipManager:void 0};var me=ae({name:"useTooltip",defaultProps:U,setup:({props:a})=>{let{tooltipManager:n,openDelay:G=600,closeDelay:C=0,interactive:b=!0,disabled:I}=a,[o,N]=ce({value:a.open,defaultValue:a.defaultOpen,onChange:a.onOpenChange}),[O,H]=t.useState(a.anchor??null),[S,V]=t.useState(null),[_,j]=t.useState(null),[q,z]=t.useState(null),[d,i]=t.useState(void 0),[J,k]=t.useState(!!o),l=t.useId(),v=t.useRef(null),T=t.useRef(null),M=t.useRef(null),x=t.useRef(null),R=t.useRef(null),c=t.useRef(null),P=t.useRef(!1),D=t.useRef(!1),L=t.useRef(o);L.current=o;let Q=t.useCallback(e=>{a.anchor==null&&e!==v.current&&(v.current=e,H(e))},[a.anchor]);t.useEffect(()=>{a.anchor!==void 0&&(v.current=a.anchor,H(a.anchor??null))},[a.anchor]),t.useEffect(()=>{o&&k(!0)},[o]);let W=t.useCallback(e=>{e!==T.current&&(T.current=e,V(e))},[]),X=t.useCallback(e=>{e!==x.current&&(x.current=e,z(e))},[]),Y=t.useCallback(e=>{e!==M.current&&(M.current=e,j(e))},[]),Z=t.useCallback(()=>{},[]),$=t.useCallback(()=>{a.onExitComplete?.()},[a.onExitComplete]),E=()=>{R.current&&(clearTimeout(R.current),R.current=null),c.current&&(clearTimeout(c.current),c.current=null)};function y(e,r){N([e,{originalEvent:r,value:e}])}let h=t.useRef(()=>{});h.current=()=>{E(),i("delay"),y(!1),n?.notifyClose?.(l)};let K=(e,r)=>{if(I)return;E();let u=n?.state?.isInstantPhase,f=n?.state?.lastClosedTooltipId,p=n?.state?.currentOpenTooltipId,w=n?.state?.openDelay,g=p!=null&&p!==l,F=u&&f===l,B=g||u&&f!==null&&f!==l,A=B||F?0:e??w??G;g&&n?.closeCurrentTooltip?.(),i(r||(B?"delay":void 0)),A===0?(y(!0),n?.notifyOpen?.(l,()=>h.current())):R.current=window.setTimeout(()=>{y(!0),n?.notifyOpen?.(l,()=>h.current()),R.current=null},A)},m=(e,r)=>{E();let u=n?.state?.isInstantPhase,f=n?.state?.closeDelay,p=u?0:e??f??C;r&&i(r),p===0?(y(!1),n?.notifyClose?.(l),r||i(void 0)):c.current=window.setTimeout(()=>{y(!1),n?.notifyClose?.(l),r||i(void 0),c.current=null},p)},s=t.useRef({onTriggerPointerEnter:()=>{},onTriggerPointerLeave:()=>{},onPositionerPointerLeave:()=>{},onFocus:()=>{},onBlur:()=>{},onDocumentPointerDown:e=>{},onKeyDown:e=>{}});s.current.onTriggerPointerEnter=()=>{P.current=!1,K()},s.current.onTriggerPointerLeave=()=>{if(!L.current){E();return}if(n){let e=n.state?.closeDelay??C;c.current=window.setTimeout(()=>{c.current=null,m(0)},e)}else m()},s.current.onPositionerPointerLeave=()=>{if(P.current=!1,n){let e=n.state?.closeDelay??C;c.current=window.setTimeout(()=>{c.current=null,m(0)},e)}else m()},s.current.onFocus=()=>{if(D.current){D.current=!1;return}v.current?.matches(":focus-visible")&&K(0,"focus")},s.current.onBlur=()=>{D.current=!1,document.hasFocus()&&m(0,"focus")},s.current.onDocumentPointerDown=e=>{L.current&&(b&&T.current?.contains(e.target)||(D.current=!0,m(0,"dismiss")))},s.current.onKeyDown=e=>{e.key==="Escape"&&L.current&&m(0,"dismiss")},t.useEffect(()=>{let e=v.current;if(!e||I)return;let r=()=>s.current.onTriggerPointerEnter(),u=()=>s.current.onTriggerPointerLeave(),f=()=>s.current.onFocus(),p=()=>s.current.onBlur(),w=g=>s.current.onKeyDown(g);return e.addEventListener("pointerenter",r),e.addEventListener("pointerleave",u),e.addEventListener("focus",f),e.addEventListener("blur",p),e.addEventListener("keydown",w),()=>{e.removeEventListener("pointerenter",r),e.removeEventListener("pointerleave",u),e.removeEventListener("focus",f),e.removeEventListener("blur",p),e.removeEventListener("keydown",w)}},[O,I]),t.useEffect(()=>{if(!o)return;let e=r=>s.current.onDocumentPointerDown(r);return document.addEventListener("pointerdown",e),()=>{document.removeEventListener("pointerdown",e)}},[o]),t.useEffect(()=>{let e=T.current;if(!e||!o||!b)return;let r=()=>{P.current=!0,c.current&&(clearTimeout(c.current),c.current=null)},u=()=>s.current.onPositionerPointerLeave();return e.addEventListener("pointerenter",r),e.addEventListener("pointerleave",u),()=>{e.removeEventListener("pointerenter",r),e.removeEventListener("pointerleave",u),P.current=!1}},[S,o,b]),t.useEffect(()=>{o&&n&&n.notifyOpen(l,()=>h.current())},[o]),t.useEffect(()=>()=>E(),[]);let ee={open:o,rendered:J,anchorElement:O,positionerElement:S,popupElement:_,arrowElement:q,instantType:d},te={...d&&{"data-instant":d}},ne={"data-scope":"tooltip","data-part":"trigger",ref:Q,...o&&{"data-popup-open":""}},re={"data-scope":"tooltip","data-part":"positioner",ref:W,...o&&{"data-open":""}},oe={"data-scope":"tooltip","data-part":"popup",ref:Y,...o&&{"data-open":""},...d&&{"data-instant":""},"data-instant-type":d},se={"data-scope":"tooltip","data-part":"arrow",ref:X,...o&&{"data-open":""},...d&&{"data-instant":d}};return{state:ee,popupRef:M,rootProps:te,triggerProps:ne,positionerProps:re,popupProps:oe,arrowProps:se,setRendered:k,onOpenComplete:Z,onCloseComplete:$}}});export{U as defaultProps,me as useTooltip};