@primereact/headless 11.0.0 → 11.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (50) hide show
  1. package/README.md +26 -20
  2. package/animateonscroll/index.mjs +1 -1
  3. package/carousel/index.mjs +1 -1
  4. package/contextmenu/index.mjs +1 -1
  5. package/datatable/features/index.mjs +8 -8
  6. package/datatable/index.mjs +8 -8
  7. package/datepicker/index.mjs +1 -1
  8. package/dialog/index.mjs +1 -1
  9. package/dialog/useDialog.d.ts +12 -12
  10. package/divider/useDivider.d.ts +1 -1
  11. package/dnd/index.mjs +1 -1
  12. package/drawer/index.mjs +1 -1
  13. package/drawer/useDrawer.d.ts +3 -3
  14. package/gallery/index.mjs +1 -1
  15. package/gallery/item/index.mjs +1 -1
  16. package/inputcolor/index.mjs +1 -1
  17. package/inputpassword/index.mjs +1 -1
  18. package/listbox/index.mjs +1 -1
  19. package/menu/checkboxitem/index.mjs +1 -1
  20. package/menu/index.mjs +1 -1
  21. package/menu/radioitem/index.mjs +1 -1
  22. package/message/index.mjs +1 -1
  23. package/navigationmenu/index.mjs +1 -1
  24. package/orderlist/index.mjs +1 -1
  25. package/organizationchart/index.mjs +1 -1
  26. package/package.json +8 -4
  27. package/picklist/index.mjs +1 -1
  28. package/popover/index.mjs +1 -1
  29. package/progressbar/index.mjs +1 -1
  30. package/radiobutton/index.mjs +1 -1
  31. package/radiobuttongroup/index.mjs +1 -1
  32. package/scrollarea/index.mjs +1 -1
  33. package/sidebar/index.mjs +1 -1
  34. package/sidebar/useSidebar.d.ts +79 -25
  35. package/speeddial/index.mjs +1 -1
  36. package/styleclass/index.mjs +1 -1
  37. package/tabs/index.mjs +1 -1
  38. package/tabs/useTabs.d.ts +6 -0
  39. package/terminal/index.mjs +1 -1
  40. package/timeline/useTimeline.d.ts +4 -4
  41. package/toast/index.mjs +1 -1
  42. package/toast/useToast.d.ts +1 -1
  43. package/toaster/index.mjs +1 -1
  44. package/togglebutton/index.mjs +1 -1
  45. package/togglebuttongroup/index.mjs +1 -1
  46. package/toggleswitch/index.mjs +1 -1
  47. package/toggleswitch/useToggleSwitch.d.ts +14 -0
  48. package/tooltip/index.mjs +1 -1
  49. package/tree/index.mjs +1 -1
  50. package/tree/useTreeKeyboard.d.ts +1 -1
@@ -29,7 +29,7 @@ export declare const useSidebar: (inProps?: unknown) => import("@primereact/type
29
29
  style: React.CSSProperties;
30
30
  onPointerEnter?: ((event?: React.SyntheticEvent) => void) | undefined;
31
31
  onPointerLeave?: ((event?: React.SyntheticEvent) => void) | undefined;
32
- onKeyDown: (event: React.KeyboardEvent) => void;
32
+ onKeyDown: (event: React.KeyboardEvent<HTMLElement>) => void;
33
33
  role?: "dialog" | undefined;
34
34
  'aria-modal'?: true | undefined;
35
35
  'data-overlay'?: "" | undefined;
@@ -37,9 +37,9 @@ export declare const useSidebar: (inProps?: unknown) => import("@primereact/type
37
37
  'data-part': string;
38
38
  'data-state': string;
39
39
  'data-collapsible': string | undefined;
40
- 'data-collapsible-mode': "icon" | "none" | "offcanvas" | undefined;
41
- 'data-variant': "inset" | "sidebar" | "floating" | undefined;
42
- 'data-side': "left" | "right" | undefined;
40
+ 'data-collapsible-mode': import("@primereact/types/headless/sidebar").SidebarCollapsible | undefined;
41
+ 'data-variant': import("@primereact/types/headless/sidebar").SidebarVariant | undefined;
42
+ 'data-side': import("@primereact/types/headless/sidebar").SidebarSide | undefined;
43
43
  id?: string | undefined;
44
44
  ref: (node: HTMLElement | null) => void;
45
45
  };
@@ -49,8 +49,8 @@ export declare const useSidebar: (inProps?: unknown) => import("@primereact/type
49
49
  'data-part': string;
50
50
  'data-state': string;
51
51
  'data-collapsible': string | undefined;
52
- 'data-variant': "inset" | "sidebar" | "floating" | undefined;
53
- 'data-side': "left" | "right" | undefined;
52
+ 'data-variant': import("@primereact/types/headless/sidebar").SidebarVariant | undefined;
53
+ 'data-side': import("@primereact/types/headless/sidebar").SidebarSide | undefined;
54
54
  };
55
55
  asideProps: {
56
56
  'data-overlay'?: "" | undefined;
@@ -58,8 +58,8 @@ export declare const useSidebar: (inProps?: unknown) => import("@primereact/type
58
58
  'data-part': string;
59
59
  'data-state': string;
60
60
  'data-collapsible': string | undefined;
61
- 'data-variant': "inset" | "sidebar" | "floating" | undefined;
62
- 'data-side': "left" | "right" | undefined;
61
+ 'data-variant': import("@primereact/types/headless/sidebar").SidebarVariant | undefined;
62
+ 'data-side': import("@primereact/types/headless/sidebar").SidebarSide | undefined;
63
63
  };
64
64
  panelProps: {
65
65
  'data-overlay'?: "" | undefined;
@@ -67,8 +67,8 @@ export declare const useSidebar: (inProps?: unknown) => import("@primereact/type
67
67
  'data-part': string;
68
68
  'data-state': string;
69
69
  'data-collapsible': string | undefined;
70
- 'data-variant': "inset" | "sidebar" | "floating" | undefined;
71
- 'data-side': "left" | "right" | undefined;
70
+ 'data-variant': import("@primereact/types/headless/sidebar").SidebarVariant | undefined;
71
+ 'data-side': import("@primereact/types/headless/sidebar").SidebarSide | undefined;
72
72
  };
73
73
  contentProps: {
74
74
  'data-overlay'?: "" | undefined;
@@ -76,8 +76,8 @@ export declare const useSidebar: (inProps?: unknown) => import("@primereact/type
76
76
  'data-part': string;
77
77
  'data-state': string;
78
78
  'data-collapsible': string | undefined;
79
- 'data-variant': "inset" | "sidebar" | "floating" | undefined;
80
- 'data-side': "left" | "right" | undefined;
79
+ 'data-variant': import("@primereact/types/headless/sidebar").SidebarVariant | undefined;
80
+ 'data-side': import("@primereact/types/headless/sidebar").SidebarSide | undefined;
81
81
  };
82
82
  headerProps: {
83
83
  'data-overlay'?: "" | undefined;
@@ -85,8 +85,8 @@ export declare const useSidebar: (inProps?: unknown) => import("@primereact/type
85
85
  'data-part': string;
86
86
  'data-state': string;
87
87
  'data-collapsible': string | undefined;
88
- 'data-variant': "inset" | "sidebar" | "floating" | undefined;
89
- 'data-side': "left" | "right" | undefined;
88
+ 'data-variant': import("@primereact/types/headless/sidebar").SidebarVariant | undefined;
89
+ 'data-side': import("@primereact/types/headless/sidebar").SidebarSide | undefined;
90
90
  };
91
91
  footerProps: {
92
92
  'data-overlay'?: "" | undefined;
@@ -94,8 +94,8 @@ export declare const useSidebar: (inProps?: unknown) => import("@primereact/type
94
94
  'data-part': string;
95
95
  'data-state': string;
96
96
  'data-collapsible': string | undefined;
97
- 'data-variant': "inset" | "sidebar" | "floating" | undefined;
98
- 'data-side': "left" | "right" | undefined;
97
+ 'data-variant': import("@primereact/types/headless/sidebar").SidebarVariant | undefined;
98
+ 'data-side': import("@primereact/types/headless/sidebar").SidebarSide | undefined;
99
99
  };
100
100
  triggerProps: {
101
101
  'data-overlay'?: "" | undefined;
@@ -105,8 +105,8 @@ export declare const useSidebar: (inProps?: unknown) => import("@primereact/type
105
105
  'data-part': string;
106
106
  'data-state': string;
107
107
  'data-collapsible': string | undefined;
108
- 'data-variant': "inset" | "sidebar" | "floating" | undefined;
109
- 'data-side': "left" | "right" | undefined;
108
+ 'data-variant': import("@primereact/types/headless/sidebar").SidebarVariant | undefined;
109
+ 'data-side': import("@primereact/types/headless/sidebar").SidebarSide | undefined;
110
110
  'aria-expanded': boolean;
111
111
  };
112
112
  railProps: {
@@ -118,8 +118,8 @@ export declare const useSidebar: (inProps?: unknown) => import("@primereact/type
118
118
  title: string;
119
119
  'data-state': string;
120
120
  'data-collapsible': string | undefined;
121
- 'data-variant': "inset" | "sidebar" | "floating" | undefined;
122
- 'data-side': "left" | "right" | undefined;
121
+ 'data-variant': import("@primereact/types/headless/sidebar").SidebarVariant | undefined;
122
+ 'data-side': import("@primereact/types/headless/sidebar").SidebarSide | undefined;
123
123
  };
124
124
  mainProps: {
125
125
  'data-overlay'?: "" | undefined;
@@ -127,17 +127,71 @@ export declare const useSidebar: (inProps?: unknown) => import("@primereact/type
127
127
  'data-part': string;
128
128
  'data-state': string;
129
129
  'data-collapsible': string | undefined;
130
- 'data-variant': "inset" | "sidebar" | "floating" | undefined;
131
- 'data-side': "left" | "right" | undefined;
130
+ 'data-variant': import("@primereact/types/headless/sidebar").SidebarVariant | undefined;
131
+ 'data-side': import("@primereact/types/headless/sidebar").SidebarSide | undefined;
132
132
  };
133
133
  backdropProps: {
134
134
  onClick?: ((event?: React.SyntheticEvent) => void) | undefined;
135
135
  'data-scope': string;
136
136
  'data-part': string;
137
137
  };
138
- variant: "inset" | "sidebar" | "floating" | undefined;
139
- collapsible: "icon" | "none" | "offcanvas" | undefined;
140
- side: "left" | "right" | undefined;
138
+ menuProps: {
139
+ 'data-scope': string;
140
+ 'data-part': string;
141
+ };
142
+ menuItemProps: {
143
+ 'data-scope': string;
144
+ 'data-part': string;
145
+ };
146
+ getMenuButtonProps: (isActive?: boolean) => {
147
+ 'data-active'?: boolean | undefined;
148
+ 'data-scope': string;
149
+ 'data-part': string;
150
+ 'data-menu-item': string;
151
+ };
152
+ getMenuActionProps: (showOnHover?: boolean) => {
153
+ 'data-show-on-hover'?: string | undefined;
154
+ 'data-scope': string;
155
+ 'data-part': string;
156
+ };
157
+ menuBadgeProps: {
158
+ 'data-scope': string;
159
+ 'data-part': string;
160
+ };
161
+ menuSubProps: {
162
+ 'data-scope': string;
163
+ 'data-part': string;
164
+ };
165
+ menuSubItemProps: {
166
+ 'data-scope': string;
167
+ 'data-part': string;
168
+ };
169
+ getMenuSubButtonProps: (isActive?: boolean, size?: string) => {
170
+ 'data-active'?: boolean | undefined;
171
+ 'data-scope': string;
172
+ 'data-part': string;
173
+ 'data-menu-item': string;
174
+ 'data-size': string | undefined;
175
+ };
176
+ groupProps: {
177
+ 'data-scope': string;
178
+ 'data-part': string;
179
+ };
180
+ groupLabelProps: {
181
+ 'data-scope': string;
182
+ 'data-part': string;
183
+ };
184
+ groupContentProps: {
185
+ 'data-scope': string;
186
+ 'data-part': string;
187
+ };
188
+ groupActionProps: {
189
+ 'data-scope': string;
190
+ 'data-part': string;
191
+ };
192
+ variant: import("@primereact/types/headless/sidebar").SidebarVariant | undefined;
193
+ collapsible: import("@primereact/types/headless/sidebar").SidebarCollapsible | undefined;
194
+ side: import("@primereact/types/headless/sidebar").SidebarSide | undefined;
141
195
  overlay: boolean | undefined;
142
196
  openOnHover: boolean | undefined;
143
197
  }>;
@@ -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 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};
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 V}from"@primeuix/utils/dom";import*as l from"react";var B={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:B,setup:({props:n,id:p,elementRef:S})=>{let[i,x]=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,S.current=e??void 0},[S]),N={visible:i,focusedOptionIndex:y},_=l.useCallback(e=>{f.current=e},[]),D=()=>de(d.current,'[data-scope="speeddial"][data-part="item"]'),L=()=>D().length,j=()=>{let e=h(d.current,'[data-scope="speeddial"][data-part="trigger"]');e&&V(e)},E=()=>x([!0,{value:!0}]),m=()=>x([!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,M]=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&&M()}),[i]),ie(()=>{M()});let Y=e=>{let t=L();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=L(),g=c||u*20,ee=b("item.diff.x").variable,te=b("item.diff.y").variable,O=s=>`calc(${s}px + ${ee})`,U=s=>`calc(${s}px + ${te})`;if(t==="circle"){let s=2*Math.PI/u;return{left:O(g*Math.cos(s*e)),top:U(g*Math.sin(s*e))}}let ne=t==="semi-circle"?u-1:2*(u-1),A=Math.PI/ne,se=O(g*Math.cos(A*e)),oe=U(g*Math.sin(A*e)),K={"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 K?K(se,oe):{}},k=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&&V(a)}},r=(e,t,a)=>{let c=z(t,a);G(c),e.preventDefault()},v=()=>{m(),w(-1),j()},I=()=>{i?m():E(),R.current=!0},P=e=>{switch(e.code){case"ArrowDown":case"ArrowLeft":E(),r(e,"next");break;case"ArrowUp":case"ArrowRight":E(),r(e,"prev");break;case"Escape":v();break}},H=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":v();break;case"Home":r(e,"next",-1);break;case"End":r(e,"prev",-1);break}},T=e=>{d.current?.contains(e.relatedTarget)||w(-1)},C=e=>{m(),R.current=!0,e.preventDefault?.()},$=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:I,onKeyDown:P},Z={ref:_,"data-scope":"speeddial","data-part":"list",...i?{"data-open":""}:{"data-closed":""},id:`${p}_list`,role:"menu",tabIndex:-1,onBlur:T,onKeyDown:H,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:k(e),...y===e?{"data-active":""}:{}}),actionProps:{"data-scope":"speeddial","data-part":"action",type:"button",tabIndex:-1,role:"menuitem",onClick:C,onKeyDown:$},getItemStyle:k,onBlur:T,onKeyDown:H,onTriggerClick:I,onTriggerKeyDown:P,onItemClick:C,onItemKeyDown:$}}});export{B as defaultProps,De as useSpeedDial};
@@ -1 +1 @@
1
- import{withHeadless as P}from"@primereact/core/headless";import{useEventListener as d}from"@primereact/hooks/use-event-listener";import{useMountEffect as S}from"@primereact/hooks/use-mount-effect";import{useUnmountEffect as U}from"@primereact/hooks/use-unmount-effect";import{useUpdateEffect as D}from"@primereact/hooks/use-update-effect";import{addClass as a,getTargetElement as R,hasClass as V,isElement as W,isVisible as f,removeClass as i,setAttribute as j,toElement as q}from"@primeuix/utils";import*as s from"react";var T={nodeRef:void 0,selector:void 0,enterFromClassName:void 0,enterActiveClassName:void 0,enterToClassName:void 0,leaveFromClassName:void 0,leaveActiveClassName:void 0,leaveToClassName:void 0,hiddenClassName:void 0,hideOnOutsideClick:!1,toggleClassName:void 0,hideOnResize:!1,resizeSelector:void 0};var _=P({name:"useStyleClass",defaultProps:T,setup({props:e,elementRef:n}){let l=s.useRef(!1),t=s.useRef(null),c=s.useRef(null),[C,z]=d({type:"animationend",listener(){i(t.current,e.enterActiveClassName??""),e.enterToClassName&&a(t.current,e.enterToClassName),z(),t.current&&e.enterActiveClassName?.includes("slidedown")&&(t.current.style.maxHeight=""),l.current=!1}}),[N,k]=d({type:"animationend",listener(){i(t.current,e.leaveActiveClassName??""),e.leaveToClassName&&a(t.current,e.leaveToClassName),k(),l.current=!1}}),[v,o]=d({type:"click",listener(r){!f(t.current)||getComputedStyle(t.current).getPropertyValue("position")==="static"?o():x(r)&&m()},when:e.hideOnOutsideClick}),[O,g]=d({type:"resize",listener(){f(t.current)?m():g()},when:e.hideOnResize}),[E,b]=d({type:"click",listener(){t.current=H(),e.toggleClassName?V(t.current,e.toggleClassName)?i(t.current,e.toggleClassName):a(t.current,e.toggleClassName):f(t.current)?m():h()}}),h=s.useCallback(()=>{t.current&&(e.enterActiveClassName?l.current||(l.current=!0,e.enterActiveClassName.includes("slidedown")&&(t.current.style.height="0px",i(t.current,(e.hiddenClassName||e.enterFromClassName)??""),t.current.style.maxHeight=t.current.scrollHeight+"px",a(t.current,e.hiddenClassName||e.enterActiveClassName),t.current.style.height=""),a(t.current,e.enterActiveClassName),e.enterFromClassName&&i(t.current,e.enterFromClassName),C({target:t.current})):(e.enterFromClassName&&i(t.current,e.enterFromClassName),e.enterToClassName&&a(t.current,e.enterToClassName)),e.hideOnOutsideClick&&v({target:n.current?.ownerDocument}),e.hideOnResize&&w())},[v,C,n,e]),m=s.useCallback(()=>{e.leaveActiveClassName?l.current||(l.current=!0,a(t.current,e.leaveActiveClassName),e.leaveFromClassName&&i(t.current,e.leaveFromClassName),N({target:t.current})):(e.leaveFromClassName&&i(t.current,e.leaveFromClassName),e.leaveToClassName&&a(t.current,e.leaveToClassName)),e.hideOnOutsideClick&&o(),e.hideOnResize&&y()},[N,e,o]),w=()=>{let r=R(e.resizeSelector??"window");W(r)?A(r):O({target:"window"})},y=()=>{g(),F()},A=r=>{if(!c.current&&r){let u=!0;c.current=new ResizeObserver(()=>{if(u){u=!1;return}f(t.current)&&m()}),c.current.observe(r)}},F=()=>{c.current&&(c.current.disconnect(),c.current=null)},H=s.useCallback(()=>t.current||R(e.selector,n.current),[n,e.selector]),L=s.useCallback(()=>{Promise.resolve().then(()=>{e.nodeRef?.current&&(n.current=q(e.nodeRef)),j(n.current,"data-pd-styleclass",!0),E({target:n.current})})},[E,n,e.nodeRef]),M=s.useCallback(()=>{b(),o(),y(),t.current=null},[]),x=r=>{let u=r?.target;return!n.current?.isSameNode(u)&&!n.current?.contains(u)&&!t.current?.contains(u)};return S(()=>{L()}),D(()=>(L(),()=>{b()})),U(()=>{M()}),{rootProps:{"data-scope":"styleclass","data-part":"root"},targetRef:t,enter:h,leave:m}}});export{T as defaultProps,_ as useStyleClass};
1
+ import{withHeadless as S}from"@primereact/core/headless";import{useEventListener as o}from"@primereact/hooks/use-event-listener";import{useMountEffect as P}from"@primereact/hooks/use-mount-effect";import{useUnmountEffect as U}from"@primereact/hooks/use-unmount-effect";import{useUpdateEffect as D}from"@primereact/hooks/use-update-effect";import{addClass as a,getTargetElement as w,hasClass as V,isElement as W,isVisible as C,removeClass as i,setAttribute as j,toElement as q}from"@primeuix/utils";import*as n from"react";var O={nodeRef:void 0,selector:void 0,enterFromClassName:void 0,enterActiveClassName:void 0,enterToClassName:void 0,leaveFromClassName:void 0,leaveActiveClassName:void 0,leaveToClassName:void 0,hiddenClassName:void 0,hideOnOutsideClick:!1,toggleClassName:void 0,hideOnResize:!1,resizeSelector:void 0};var _=S({name:"useStyleClass",defaultProps:O,setup({props:e,elementRef:s}){let l=n.useRef(!1),t=n.useRef(null),c=n.useRef(null),[g,A]=o({type:"animationend",listener(){i(t.current,e.enterActiveClassName??""),e.enterToClassName&&a(t.current,e.enterToClassName),A(),t.current&&e.enterActiveClassName?.includes("slidedown")&&(t.current.style.maxHeight=""),l.current=!1}}),[E,F]=o({type:"animationend",listener(){i(t.current,e.leaveActiveClassName??""),e.leaveToClassName&&a(t.current,e.leaveToClassName),F(),l.current=!1}}),[b,d]=o({type:"click",listener(r){!C(t.current)||getComputedStyle(t.current).getPropertyValue("position")==="static"?d():x(r)&&u()},when:e.hideOnOutsideClick}),[h,N]=o({type:"resize",listener(){C(t.current)?u():N()},when:e.hideOnResize}),[R,v]=o({type:"click",listener(){t.current=H(),e.toggleClassName?V(t.current,e.toggleClassName)?i(t.current,e.toggleClassName):a(t.current,e.toggleClassName):C(t.current)?u():k()}}),y=n.useCallback(()=>{c.current&&(c.current.disconnect(),c.current=null)},[]),f=n.useCallback(()=>{N(),y()},[N,y]),u=n.useCallback(()=>{e.leaveActiveClassName?l.current||(l.current=!0,a(t.current,e.leaveActiveClassName),e.leaveFromClassName&&i(t.current,e.leaveFromClassName),E({target:t.current})):(e.leaveFromClassName&&i(t.current,e.leaveFromClassName),e.leaveToClassName&&a(t.current,e.leaveToClassName)),e.hideOnOutsideClick&&d(),e.hideOnResize&&f()},[E,e,d,f]),L=n.useCallback(r=>{if(!c.current&&r){let m=!0;c.current=new ResizeObserver(()=>{if(m){m=!1;return}C(t.current)&&u()}),c.current.observe(r)}},[u]),T=n.useCallback(()=>{let r=w(e.resizeSelector??"window");W(r)?L(r):h({target:"window"})},[e.resizeSelector,L,h]),k=n.useCallback(()=>{t.current&&(e.enterActiveClassName?l.current||(l.current=!0,e.enterActiveClassName.includes("slidedown")&&(t.current.style.height="0px",i(t.current,(e.hiddenClassName||e.enterFromClassName)??""),t.current.style.maxHeight=t.current.scrollHeight+"px",a(t.current,e.hiddenClassName||e.enterActiveClassName),t.current.style.height=""),a(t.current,e.enterActiveClassName),e.enterFromClassName&&i(t.current,e.enterFromClassName),g({target:t.current})):(e.enterFromClassName&&i(t.current,e.enterFromClassName),e.enterToClassName&&a(t.current,e.enterToClassName)),e.hideOnOutsideClick&&b({target:s.current?.ownerDocument}),e.hideOnResize&&T())},[b,g,s,e,T]),H=n.useCallback(()=>t.current||w(e.selector,s.current),[s,e.selector]),z=n.useCallback(()=>{Promise.resolve().then(()=>{e.nodeRef?.current&&(s.current=q(e.nodeRef)),j(s.current,"data-pd-styleclass",!0),R({target:s.current})})},[R,s,e.nodeRef]),M=n.useCallback(()=>{v(),d(),f(),t.current=null},[v,d,f]),x=r=>{let m=r?.target;return!s.current?.isSameNode(m)&&!s.current?.contains(m)&&!t.current?.contains(m)};return P(()=>{z()}),D(()=>(z(),()=>{v()})),U(()=>{M()}),{rootProps:{"data-scope":"styleclass","data-part":"root"},targetRef:t,enter:k,leave:u}}});export{O as defaultProps,_ as useStyleClass};
package/tabs/index.mjs CHANGED
@@ -1 +1 @@
1
- import{withHeadless as K}from"@primereact/core/headless";import{useControlledState as j}from"@primereact/hooks/use-controlled-state";import{useDirection as U}from"@primereact/hooks/use-direction";import{focus as $,isRTL as F}from"@primeuix/utils";import*as s from"react";var C={value:void 0,defaultValue:void 0,onValueChange:void 0,selectOnFocus:!1,scrollStrategy:"nearest",tabIndex:0};var nt=K({name:"useTabs",defaultProps:C,setup:({props:l,id:W})=>{let[h,k]=j({value:l.value,defaultValue:l.defaultValue,onChange:l.onValueChange}),[b,O]=s.useState(!1),[m,V]=s.useState(!1),i=s.useRef(null),S=s.useRef(null),M=s.useRef(null),f=s.useRef(null),g=s.useRef(null),D=U(i),I={activeTab:h,canScrollPrev:b,canScrollNext:m},L=t=>{h!==t&&k([t,{value:t}])},H=t=>t==null?!1:h===t,R=()=>{let t=f.current,e=g.current;!t||!e||(t.style.setProperty("--px-active-bar-width",e.offsetWidth+"px"),t.style.setProperty("--px-active-bar-height",e.offsetHeight+"px"),t.style.setProperty("--px-active-bar-left",e.offsetLeft+"px"),t.style.setProperty("--px-active-bar-top",e.offsetTop+"px"))},p=(t,e)=>{let n='[role="tab"]',r='[role="tab"]:not([data-disabled])',o=(d,v)=>{let u=d[v==="next"?"nextElementSibling":"previousElementSibling"];return u?!u.matches(n)||u.hasAttribute("data-disabled")?o(u,v):u:null},c=(d,v)=>{let u=v.parentElement;if(!u)return null;let x=u.querySelectorAll(r);return x.length===0?null:d==="first"?x[0]:x[x.length-1]};if(!t)return;let a=null;switch(e){case"next":a=o(t,"next")??c("first",t);break;case"previous":a=o(t,"previous")??c("last",t);break;case"first":a=c("first",t);break;case"last":a=c("last",t);break}a&&$(a)},y=(t,e)=>{switch(t.code){case"ArrowRight":p(t.currentTarget,"next");break;case"ArrowLeft":p(t.currentTarget,"previous");break;case"Home":p(t.currentTarget,"first");break;case"End":p(t.currentTarget,"last");break;case"Enter":case"NumpadEnter":case"Space":L(e);break;case"Tab":return;default:break}t.preventDefault()},B=(t,e)=>{l.selectOnFocus||L(e)},w=(t,e)=>{l.selectOnFocus&&L(e)},N=()=>{let t=i.current,e=g.current;if(!t||!e||l.scrollStrategy===!1)return;if(typeof l.scrollStrategy=="function"){l.scrollStrategy(t,e);return}let n=t.getBoundingClientRect(),r=e.getBoundingClientRect(),o;if(l.scrollStrategy==="center")o=r.left+r.width/2-(n.left+n.width/2);else{let c=n.width*.1;if(r.left<n.left+c)o=r.left-(n.left+c);else if(r.right>n.right-c)o=r.right-(n.right-c);else return}t.scrollBy({left:o,behavior:"smooth"})};s.useEffect(()=>{let t=requestAnimationFrame(()=>{R(),N()});return()=>cancelAnimationFrame(t)},[h]),s.useEffect(()=>{let t=requestAnimationFrame(()=>{R(),T()});return()=>cancelAnimationFrame(t)},[D]),s.useEffect(()=>{if(!i.current)return;let t=i.current,e=0,n=()=>{T(),R()},r=new MutationObserver(()=>{cancelAnimationFrame(e),e=requestAnimationFrame(n)});r.observe(t,{childList:!0,subtree:!0}),T();let o=new ResizeObserver(n);return o.observe(t),window.addEventListener("resize",n),()=>{cancelAnimationFrame(e),r.disconnect(),o.disconnect(),window.removeEventListener("resize",n)}},[]);let E=()=>{T()},A=()=>{let[t,e]=[S.current,M.current],n=0;return t&&e&&(n=(t?.offsetWidth||0)+(e?.offsetWidth||0)),n},T=()=>{if(!i.current)return;let t=i.current,{scrollWidth:e,clientWidth:n}=t,r=Math.abs(t.scrollLeft);O(r>1),V(e-n-r>1)},_=()=>{let t=i.current;if(!t)return;let e=A(),n=t.clientWidth-e,r=Math.abs(t.scrollLeft),o=n*.8,c=r-o,a=Math.max(c,0);t.scrollLeft=F(t)?-1*a:a},q=()=>{let t=i.current;if(!t)return;let e=A(),n=t.clientWidth-e,r=Math.abs(t.scrollLeft),o=n*.8,c=r+o,a=t.scrollWidth-n,d=Math.min(c,a);t.scrollLeft=F(t)?-1*d:d},P=s.useMemo(()=>({...b&&{"data-can-scroll-prev":""},...m&&{"data-can-scroll-next":""}}),[b,m]),z=s.useMemo(()=>({onScroll:E,...b&&{"data-can-scroll-prev":""},...m&&{"data-can-scroll-next":""}}),[E,b,m]);return{state:I,updateValue:L,isItemActive:H,focusTab:p,onTabKeyDown:y,onTabClick:B,onTabFocus:w,getTabProps:(t,e)=>{let n=H(t);return{role:"tab",tabIndex:n?l.tabIndex??0:-1,ref:n?g:void 0,disabled:e,"aria-selected":n,"aria-disabled":e,"aria-controls":`${W}_tabpanel_${t}`,...n&&{"data-active":""},...e&&{"data-disabled":""},...P,onClick:r=>B(r,t),onFocus:r=>w(r,t),onKeyDown:r=>y(r,t)}},getIndicatorProps:()=>({ref:f,style:{"--px-active-bar-width":f.current?.offsetWidth+"px","--px-active-bar-height":f.current?.offsetHeight+"px","--px-active-bar-left":f.current?.offsetLeft+"px","--px-active-bar-top":f.current?.offsetTop+"px"}}),scrollPrev:_,scrollNext:q,updateScrollState:T,onContentScroll:E,scrollStateAttrs:P,contentProps:z,contentRef:i,prevButtonRef:S,nextButtonRef:M,activeBarRef:f,activeTabRef:g,updateActiveBar:R}}});export{C as defaultProps,nt as useTabs};
1
+ import{withHeadless as j}from"@primereact/core/headless";import{useControlledState as U}from"@primereact/hooks/use-controlled-state";import{useDirection as $}from"@primereact/hooks/use-direction";import{focus as G,isRTL as W}from"@primeuix/utils";import*as s from"react";var F={value:void 0,defaultValue:void 0,onValueChange:void 0,selectOnFocus:!1,scrollStrategy:"nearest",tabIndex:0};var rt=j({name:"useTabs",defaultProps:F,setup:({props:f,id:O})=>{let[L,V]=U({value:f.value,defaultValue:f.defaultValue,onChange:f.onValueChange}),[p,D]=s.useState(!1),[T,I]=s.useState(!1),l=s.useRef(null),M=s.useRef(null),H=s.useRef(null),d=s.useRef(null),g=s.useRef(null),N=$(l),_={activeTab:L,canScrollPrev:p,canScrollNext:T},v=t=>{L!==t&&V([t,{value:t}])},B=t=>t==null?!1:L===t,b=s.useCallback(()=>{let t=d.current,e=g.current;!t||!e||(t.style.setProperty("--px-active-bar-width",e.offsetWidth+"px"),t.style.setProperty("--px-active-bar-height",e.offsetHeight+"px"),t.style.setProperty("--px-active-bar-left",e.offsetLeft+"px"),t.style.setProperty("--px-active-bar-top",e.offsetTop+"px"))},[]),i=s.useCallback(()=>{if(!l.current)return;let t=l.current,{scrollWidth:e,clientWidth:n}=t,r=Math.abs(t.scrollLeft);D(r>1),I(e-n-r>1)},[]),h=(t,e)=>{let n='[role="tab"]',r='[role="tab"]:not([data-disabled])',a=(m,x)=>{let u=m[x==="next"?"nextElementSibling":"previousElementSibling"];return u?!u.matches(n)||u.hasAttribute("data-disabled")?a(u,x):u:null},o=(m,x)=>{let u=x.parentElement;if(!u)return null;let E=u.querySelectorAll(r);return E.length===0?null:m==="first"?E[0]:E[E.length-1]};if(!t)return;let c=null;switch(e){case"next":c=a(t,"next")??o("first",t);break;case"previous":c=a(t,"previous")??o("last",t);break;case"first":c=o("first",t);break;case"last":c=o("last",t);break}c&&G(c)},w=(t,e)=>{switch(t.code){case"ArrowRight":h(t.currentTarget,"next");break;case"ArrowLeft":h(t.currentTarget,"previous");break;case"Home":h(t.currentTarget,"first");break;case"End":h(t.currentTarget,"last");break;case"Enter":case"NumpadEnter":case"Space":v(e);break;case"Tab":return;default:break}t.preventDefault()},y=(t,e)=>{f.selectOnFocus||v(e)},A=(t,e)=>{f.selectOnFocus&&v(e)},{scrollStrategy:R}=f,C=s.useCallback(()=>{let t=l.current,e=g.current;if(!t||!e||R===!1)return;if(typeof R=="function"){R(t,e);return}let n=t.getBoundingClientRect(),r=e.getBoundingClientRect(),a;if(R==="center")a=r.left+r.width/2-(n.left+n.width/2);else{let o=n.width*.1;if(r.left<n.left+o)a=r.left-(n.left+o);else if(r.right>n.right-o)a=r.right-(n.right-o);else return}t.scrollBy({left:a,behavior:"smooth"})},[R]);s.useEffect(()=>{let t=requestAnimationFrame(()=>{b(),C()});return()=>cancelAnimationFrame(t)},[L,b,C]),s.useEffect(()=>{let t=requestAnimationFrame(()=>{b(),i()});return()=>cancelAnimationFrame(t)},[N,b,i]),s.useEffect(()=>{if(!l.current)return;let t=l.current,e=0,n=()=>{i(),b()},r=new MutationObserver(()=>{cancelAnimationFrame(e),e=requestAnimationFrame(n)});r.observe(t,{childList:!0,subtree:!0}),i();let a=new ResizeObserver(n);return a.observe(t),window.addEventListener("resize",n),()=>{cancelAnimationFrame(e),r.disconnect(),a.disconnect(),window.removeEventListener("resize",n)}},[b,i]);let S=s.useCallback(()=>{i()},[i]),P=()=>{let[t,e]=[M.current,H.current],n=0;return t&&e&&(n=(t?.offsetWidth||0)+(e?.offsetWidth||0)),n},q=()=>{let t=l.current;if(!t)return;let e=P(),n=t.clientWidth-e,r=Math.abs(t.scrollLeft),a=n*.8,o=r-a,c=Math.max(o,0);t.scrollLeft=W(t)?-1*c:c},z=()=>{let t=l.current;if(!t)return;let e=P(),n=t.clientWidth-e,r=Math.abs(t.scrollLeft),a=n*.8,o=r+a,c=t.scrollWidth-n,m=Math.min(o,c);t.scrollLeft=W(t)?-1*m:m},k=s.useMemo(()=>({...p&&{"data-can-scroll-prev":""},...T&&{"data-can-scroll-next":""}}),[p,T]),K=s.useMemo(()=>({"data-scope":"tabs","data-part":"content",onScroll:S,...p&&{"data-can-scroll-prev":""},...T&&{"data-can-scroll-next":""}}),[S,p,T]);return{state:_,updateValue:v,isItemActive:B,focusTab:h,onTabKeyDown:w,onTabClick:y,onTabFocus:A,getTabProps:(t,e)=>{let n=B(t);return{"data-scope":"tabs","data-part":"tab",role:"tab",tabIndex:n?f.tabIndex??0:-1,ref:n?g:void 0,disabled:e,"aria-selected":n,"aria-disabled":e,"aria-controls":`${O}_tabpanel_${t}`,...n&&{"data-active":""},...e&&{"data-disabled":""},...k,onClick:r=>y(r,t),onFocus:r=>A(r,t),onKeyDown:r=>w(r,t)}},getIndicatorProps:()=>({"data-scope":"tabs","data-part":"indicator",ref:d,style:{"--px-active-bar-width":d.current?.offsetWidth+"px","--px-active-bar-height":d.current?.offsetHeight+"px","--px-active-bar-left":d.current?.offsetLeft+"px","--px-active-bar-top":d.current?.offsetTop+"px"}}),scrollPrev:q,scrollNext:z,updateScrollState:i,onContentScroll:S,scrollStateAttrs:k,contentProps:K,contentRef:l,prevButtonRef:M,nextButtonRef:H,activeBarRef:d,activeTabRef:g,updateActiveBar:b}}});export{F as defaultProps,rt as useTabs};
package/tabs/useTabs.d.ts CHANGED
@@ -19,6 +19,8 @@ export declare const useTabs: (inProps?: unknown) => import("@primereact/types/c
19
19
  'data-can-scroll-prev'?: "" | undefined;
20
20
  'data-disabled'?: "" | undefined;
21
21
  'data-active'?: "" | undefined;
22
+ 'data-scope': "tabs";
23
+ 'data-part': "tab";
22
24
  role: "tab";
23
25
  tabIndex: number;
24
26
  ref: React.RefObject<HTMLButtonElement> | undefined;
@@ -28,6 +30,8 @@ export declare const useTabs: (inProps?: unknown) => import("@primereact/types/c
28
30
  'aria-controls': string;
29
31
  };
30
32
  getIndicatorProps: () => {
33
+ 'data-scope': "tabs";
34
+ 'data-part': "indicator";
31
35
  ref: React.RefObject<HTMLSpanElement>;
32
36
  style: React.CSSProperties;
33
37
  };
@@ -42,6 +46,8 @@ export declare const useTabs: (inProps?: unknown) => import("@primereact/types/c
42
46
  contentProps: {
43
47
  'data-can-scroll-next'?: "" | undefined;
44
48
  'data-can-scroll-prev'?: "" | undefined;
49
+ 'data-scope': "tabs";
50
+ 'data-part': "content";
45
51
  onScroll: () => void;
46
52
  };
47
53
  contentRef: React.RefObject<HTMLDivElement | null>;
@@ -1 +1 @@
1
- import{withHeadless as P}from"@primereact/core/headless";import{focus as S}from"@primeuix/utils";import*as t from"react";var T={prompt:void 0,onCommand:void 0};var H=P({name:"useTerminal",defaultProps:T,setup({props:m,elementRef:c}){let[s,p]=t.useState(""),[o,l]=t.useState([]),[f,i]=t.useState(0),r=t.useRef(null),h={commandText:s,commands:o},u=t.useCallback(()=>{l([]),i(0)},[]),d=t.useCallback(n=>{n===null?u():n!==void 0&&l(e=>{if(e.length===0)return e;let a=[...e];return a[a.length-1].response=n,a})},[u]),g=t.useCallback(async n=>{if(!m.onCommand)return;let e=m.onCommand(n);if(e instanceof Promise){let a=await e;d(a)}else d(e)},[m.onCommand,d]);t.useEffect(()=>{c.current&&(c.current.scrollTop=c.current.scrollHeight)});let C=()=>{r.current&&S(r.current)},R=n=>{switch(n.code){case"ArrowUp":if(o&&o.length){let e=f-1<0?o.length-1:f-1,a=o[e];i(e),p(a.text)}break;case"Enter":case"NumpadEnter":if(s){let e=[...o];e.push({text:s}),i(a=>a+1),p(""),l(e),g(s)}break;default:break}},x=n=>{p(n.target.value)};return{state:h,inputRef:r,rootProps:{"data-scope":"terminal","data-part":"root",onClick:C},promptValueProps:{ref:r,"data-scope":"terminal","data-part":"promptvalue",value:s,type:"text",autoComplete:"off",onChange:x,onKeyDown:R},commandResponseProps:{"data-scope":"terminal","data-part":"commandresponse","aria-live":"polite"},onClick:C,onKeyDown:R,onInputChange:x,clear:u}}});export{T as defaultProps,H as useTerminal};
1
+ import{withHeadless as S}from"@primereact/core/headless";import{focus as b}from"@primeuix/utils";import*as t from"react";var T={prompt:void 0,onCommand:void 0};var L=S({name:"useTerminal",defaultProps:T,setup({props:h,elementRef:c}){let{onCommand:m}=h,[s,p]=t.useState(""),[a,l]=t.useState([]),[f,i]=t.useState(0),r=t.useRef(null),g={commandText:s,commands:a},u=t.useCallback(()=>{l([]),i(0)},[]),d=t.useCallback(n=>{n===null?u():n!==void 0&&l(e=>{if(e.length===0)return e;let o=[...e];return o[o.length-1].response=n,o})},[u]),P=t.useCallback(async n=>{if(!m)return;let e=m(n);if(e instanceof Promise){let o=await e;d(o)}else d(e)},[m,d]);t.useEffect(()=>{c.current&&(c.current.scrollTop=c.current.scrollHeight)});let C=()=>{r.current&&b(r.current)},R=n=>{switch(n.code){case"ArrowUp":if(a&&a.length){let e=f-1<0?a.length-1:f-1,o=a[e];i(e),p(o.text)}break;case"Enter":case"NumpadEnter":if(s){let e=[...a];e.push({text:s}),i(o=>o+1),p(""),l(e),P(s)}break;default:break}},x=n=>{p(n.target.value)};return{state:g,inputRef:r,rootProps:{"data-scope":"terminal","data-part":"root",onClick:C},promptValueProps:{ref:r,"data-scope":"terminal","data-part":"promptvalue",value:s,type:"text",autoComplete:"off",onChange:x,onKeyDown:R},commandResponseProps:{"data-scope":"terminal","data-part":"commandresponse","aria-live":"polite"},onClick:C,onKeyDown:R,onInputChange:x,clear:u}}});export{T as defaultProps,L as useTerminal};
@@ -2,13 +2,13 @@ export declare const useTimeline: (inProps?: unknown) => import("@primereact/typ
2
2
  rootProps: {
3
3
  'data-scope': "timeline";
4
4
  'data-part': "root";
5
- 'data-align': "top" | "alternate" | "left" | "right" | "bottom" | undefined;
5
+ 'data-align': "top" | "left" | "bottom" | "alternate" | "right" | undefined;
6
6
  'data-orientation': "horizontal" | "vertical" | undefined;
7
7
  };
8
8
  eventProps: {
9
9
  'data-scope': "timeline";
10
10
  'data-part': "event";
11
- 'data-align': "top" | "alternate" | "left" | "right" | "bottom" | undefined;
11
+ 'data-align': "top" | "left" | "bottom" | "alternate" | "right" | undefined;
12
12
  'data-orientation': "horizontal" | "vertical" | undefined;
13
13
  };
14
14
  separatorProps: {
@@ -29,13 +29,13 @@ export declare const useTimeline: (inProps?: unknown) => import("@primereact/typ
29
29
  contentProps: {
30
30
  'data-scope': "timeline";
31
31
  'data-part': "content";
32
- 'data-align': "top" | "alternate" | "left" | "right" | "bottom" | undefined;
32
+ 'data-align': "top" | "left" | "bottom" | "alternate" | "right" | undefined;
33
33
  'data-orientation': "horizontal" | "vertical" | undefined;
34
34
  };
35
35
  oppositeProps: {
36
36
  'data-scope': "timeline";
37
37
  'data-part': "opposite";
38
- 'data-align': "top" | "alternate" | "left" | "right" | "bottom" | undefined;
38
+ 'data-align': "top" | "left" | "bottom" | "alternate" | "right" | undefined;
39
39
  'data-orientation': "horizontal" | "vertical" | undefined;
40
40
  };
41
41
  }>;
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(()=>{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};
1
+ import{withHeadless as ht}from"@primereact/core/headless";import{defaultToaster as xt}from"@primereact/headless/toaster";import{useMountEffect as yt}from"@primereact/hooks/use-mount-effect";import{useVisibilityChange as Rt}from"@primereact/hooks/use-visibility-change";import*as s from"react";var tt={toast:{},toaster:void 0};var bt=50,wt=.11,Ct=ht({name:"useToast",defaultProps:tt,setup:({props:et,elementRef:r})=>{let{toast:t,toaster:a}=et,c=s.useRef(a);c.current=a;let g=s.useMemo(()=>{if(!a?.toasts||!Array.isArray(a?.toasts))return 0;let e=a?.toasts.findIndex(o=>o.id===t.id)??-1;return e===-1?0:e},[a?.toasts,t.id]),A=Rt(),[y,st]=s.useState(!1),[p,S]=s.useState(null),[O,v]=s.useState(null),[R,nt]=s.useState(!1),[k,M]=s.useState(!1),[P,ot]=s.useState(!1),[V,F]=s.useState(!1),[E,H]=s.useState(0),[D,N]=s.useState(0),b=t.dismissible!==!1&&!t.loading,h=s.useRef(t.duration||a?.props.timeout||6e3),B=s.useRef(0),l=s.useRef(null),I=s.useRef(null),C=s.useRef(0),Y=s.useRef(0),w=s.useMemo(()=>a?.state.heights?.findIndex(e=>e.toastId===t.id)??0,[a?.state.heights,t.id]),U=s.useMemo(()=>t.duration||a?.props.timeout||6e3,[t.duration,a?.props.timeout]),m=s.useRef(0);m.current=a?.state.heights?.reduce((e,o,n)=>n>=w?e:e+o.height,0)??0;let X=t.loading===!0;s.useEffect(()=>{h.current=U},[U]),yt(()=>{nt(!0)}),s.useEffect(()=>{let e=r.current;if(!e||!t.id)return;let o=e.getBoundingClientRect().height;return N(o),c.current?.setHeights(n=>[{toastId:t.id,height:o},...n]),()=>c.current?.setHeights(n=>n.filter(i=>i.toastId!==t.id))},[t.id,r]),s.useLayoutEffect(()=>{if(!R||!t.id||!c.current?.setHeights)return;let e=r.current;if(!e)return;let o=e.style.height;e.style.height="auto";let n=e?.getBoundingClientRect().height;e.style.height=o,N(n),c.current?.setHeights(i=>i.find(u=>u.toastId===t.id)?i.map(u=>u.toastId===t.id?{...u,height:n}:u):[{toastId:t.id,height:n},...i])},[R,t.title,t.description,t.id,t.render,t.action,t.icon,r]);let d=s.useCallback(()=>{c.current?.handleFocusManagement(r.current??null),st(!0),H(m.current),c.current?.setHeights(e=>e.filter(o=>o.toastId!==t.id)),requestAnimationFrame(()=>{let e=r.current;if(!e)return;let n=getComputedStyle(e).transitionDuration,i=parseFloat(n)*(n.includes("ms")?1:1e3);setTimeout(()=>{t.id!==void 0&&c.current?.removeFromQueue(t.id)},i??10)})},[t,r]);s.useEffect(()=>xt.subscribe(e=>{if(e.action!=="dismiss")return;let o=e.id!==void 0&&e.id===t.id,n=e.id===void 0;(o||n)&&(d(),t.onDismiss?.(t))}),[t,d]);let $=s.useCallback(()=>{if(Y.current<C.current){let e=new Date().getTime()-C.current;h.current=h.current-e}Y.current=new Date().getTime()},[]),_=s.useCallback(()=>{h.current!==1/0&&(C.current=new Date().getTime(),I.current=setTimeout(()=>{t.onTimeout?.(t),d()},h.current))},[t,d]);s.useEffect(()=>{if(!(t.loading||t.duration===1/0))return a?.state.isHovered||a?.state.isInteracting||!A?$():_(),()=>{I.current&&clearTimeout(I.current)}},[a?.state.isHovered,a?.state.isInteracting,t,d,A,$,_]);let q=()=>{M(!1),S(null),l.current=null},z=e=>{e.button===0&&(X||!b||(B.current=new Date().getTime(),H(m.current),e.target.setPointerCapture(e.pointerId),M(!0),l.current={x:e.clientX,y:e.clientY}))},Q=e=>{if(!l.current||!b||(window.getSelection()?.toString().length??0)>0)return;let o=e.clientY-l.current.y,n=e.clientX-l.current.x,i=Math.abs(n)>1||Math.abs(o)>1,L=(a?.props.position??"bottom-right").split("-"),u=L[0],J=L[1];!p&&i&&S(Math.abs(n)>Math.abs(o)?"x":"y");let f={x:0,y:0},K=T=>{let Z=T*(gt=>1/(1.5+Math.abs(gt)/20))(T);return Math.abs(Z)<Math.abs(T)?Z:T};p==="x"?f.x=J==="left"&&n<0||J==="right"&&n>0?n:K(n):p==="y"&&(f.y=u==="top"&&o<0||u==="bottom"&&o>0?o:K(o)),(Math.abs(f.x)>0||Math.abs(f.y)>0)&&F(!0),r.current.style.setProperty("--px-swipe-amount-x",`${f.x}px`),r.current.style.setProperty("--px-swipe-amount-y",`${f.y}px`)},W=()=>{if(P||!b)return;M(!1),l.current=null;let e=Number(r.current.style.getPropertyValue("--px-swipe-amount-x").replace("px","")||0),o=Number(r.current.style.getPropertyValue("--px-swipe-amount-y").replace("px","")||0),n=p==="x"?e:o,i=Math.abs(n)/(new Date().getTime()-(B.current??0));if(Math.abs(n)>=bt||i>wt){H(m.current),v(p==="x"?e>0?"right":"left":o>0?"down":"up"),d(),t.onDismiss?.(t),ot(!0);return}else r.current.style.setProperty("--px-swipe-amount-x","0px"),r.current.style.setProperty("--px-swipe-amount-y","0px");F(!1),S(null)},j=()=>{X||!b||(d(),t.onDismiss?.(t))},at=s.useCallback(e=>{r.current=e??void 0},[r]),rt={mounted:R,swiping:k,swipeOut:P,swipeOutDirection:O,swipeDirection:p,initialHeight:D,isSwiped:V,offsetBeforeRemove:E,removed:y},x=w+1<=(a?.props.limit||3),G=g===0,it={ref:at,"data-scope":"toast","data-part":"root",tabIndex:x?0:-1,role:"alert",inert:!x,"aria-live":"assertive","aria-atomic":"true","aria-hidden":!x,"data-swipe-direction":O,"data-index":g,...R&&{"data-mounted":""},...y&&{"data-removed":""},...V&&{"data-swiped":""},...x&&{"data-visible":""},...k&&{"data-swiping":""},...t.dismissible&&{"data-dismissible":""},...a?.state.isExpanded&&{"data-expanded":""},...G&&{"data-front":""},...P&&{"data-swipe-out":""},style:{"--px-initial-height":D?`${D}px`:void 0,"--px-toast-index":y?g:w,"--px-toast-z-index":(a?.toasts?.length||0)-g,"--px-toast-offset":(y?E:m.current)+"px","--px-swipe-amount-x":"0px","--px-swipe-amount-y":"0px"},onPointerDown:z,onPointerMove:Q,onPointerUp:W,onDragEnd:q},ct={"data-scope":"toast","data-part":"action"},ut={"data-scope":"toast","data-part":"content"},dt={"data-scope":"toast","data-part":"message"},pt={"data-scope":"toast","data-part":"close",onClick:j},lt={"data-scope":"toast","data-part":"description"},mt={"data-scope":"toast","data-part":"icon"},ft={"data-scope":"toast","data-part":"title"};return{state:rt,offset:m.current,offsetBeforeRemove:E,index:g,visibleIndex:w,isVisible:x,isFront:G,toaster:a,rootProps:it,actionProps:ct,contentProps:ut,closeProps:pt,messageProps:dt,descriptionProps:lt,iconProps:mt,titleProps:ft,onPointerDown:z,onPointerMove:Q,onPointerUp:W,onDragEnd:q,handleCloseOnClick:j}}});export{tt as defaultProps,Ct as useToast};
@@ -10,7 +10,7 @@ export declare const useToast: (inProps?: unknown) => import("@primereact/types/
10
10
  swiping: boolean;
11
11
  swipeOut: boolean;
12
12
  swipeOutDirection: "left" | "right" | "up" | "down" | null;
13
- swipeDirection: "x" | "y" | null;
13
+ swipeDirection: "y" | "x" | null;
14
14
  initialHeight: number;
15
15
  isSwiped: boolean;
16
16
  offsetBeforeRemove: number;
package/toaster/index.mjs CHANGED
@@ -1 +1 @@
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};
1
+ var C=0,D=()=>`toast-${++C}-${Date.now()}`,S=e=>typeof e=="number"&&!Number.isNaN(e)||typeof e=="string"&&e.length>0?e:D();function k(){let e=[],f=new Set,T=s=>{f.forEach(t=>t(s))},g=()=>e,y=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)],T({action:"update",toast:o})}else{let o={...s,id:t,dismissible:i};e=[o,...e],T({action:"add",toast:o})}return t},E=(s,t)=>m({...t,id:s}),u=s=>{T({action:"dismiss",id:s})},p=s=>{let t=e.filter(i=>i.id!==s);t.length!==e.length&&(e=t,T({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:g,subscribe:y,add:m,update:E,dismiss:u,remove:p,promise:h,success:d("success"),info:d("info"),warn:d("warn"),error:d("error"),secondary:d("secondary"),contrast:d("contrast")}}var a=k(),U=e=>a.add(e),N=Object.assign(U,{update:a.update,dismiss:a.dismiss,promise:a.promise,success:a.success,info:a.info,warn:a.warn,error:a.error,secondary:a.secondary,contrast:a.contrast});import{withHeadless as $}from"@primereact/core/headless";import*as r from"react";var L={timeout:6e3,gap:12,position:"top-right",mode:"stacked",group:void 0,limit:3};var Q=$({name:"useToaster",defaultProps:L,setup:({props:e})=>{let f=r.useSyncExternalStore(a.subscribe,a.snapshot,a.snapshot),T=r.useCallback(n=>{a.remove(n)},[]),g=r.useMemo(()=>e.group?f.filter(n=>n.group===e.group):f.filter(n=>!n.group),[f,e.group]),[y,m]=r.useState([]),[E,u]=r.useState(!1),[p,h]=r.useState(!1),d=r.useRef(!1),s=e.mode==="expanded"||E,t={isExpanded:s,isHovered:E,isInteracting:p,heights:y},i=()=>{u(!0)},c=()=>{u(!0)},o=r.useCallback(()=>{!p&&!d.current&&u(!1)},[p]),x=()=>{u(!1)},b=n=>{n.target instanceof HTMLElement&&n.target.dataset.dismissible==="false"||h(!0)},M=()=>{h(!1)},I=n=>{let v=n.currentTarget,l=document.activeElement;l&&l.matches(":focus-visible")&&v.contains(l)&&(d.current=!0,u(!0))},R=r.useCallback(n=>{let v=n.currentTarget,l=n.relatedTarget;l&&v.contains(l)||(d.current=!1,!p&&u(!1))},[p]),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})})};r.useEffect(()=>{g.length<=1&&u(!1)},[g]);let w={"data-scope":"toaster","data-part":"root","data-position":e.position},F=r.useMemo(()=>({"data-scope":"toaster","data-part":"region",role:"region",tabIndex:0,onMouseEnter:i,onMouseLeave:o,onMouseMove:c,onDragEnd:x,onPointerDown:b,onPointerUp:M,onFocus:I,onBlur:R,"data-position":e.position,...s&&{"data-expanded":""},style:{"--px-gap":`${e.gap}px`,"--px-front-toast-height":`${y?.[0]?.height||0}px`}}),[e.position,e.gap,s,y,R,o]);return{state:t,toasts:g,setHeights:m,removeFromQueue:T,rootProps:w,regionProps:F,onRegionMouseEnter:i,onRegionMouseMove:c,onRegionMouseLeave:o,onRegionDragEnd:x,onRegionPointerDown:b,onRegionPointerUp:M,onRegionFocus:I,onRegionBlur:R,handleFocusManagement:H}}});export{k as createToastManager,L as defaultProps,a as defaultToaster,N as toast,Q as useToaster};
@@ -1 +1 @@
1
- import{withHeadless as l}from"@primereact/core/headless";import{useControlledState as p}from"@primereact/hooks/use-controlled-state";var a={pressed:void 0,defaultPressed:void 0,disabled:void 0,invalid:void 0,onPressedChange:void 0};var P=l({name:"useToggleButton",defaultProps:a,setup({props:s}){let[o,r]=p({value:s.pressed,defaultValue:s.defaultPressed??!1,onChange:s.onPressedChange}),d={pressed:o},n=e=>{let t=!o;r([t,{originalEvent:e,pressed:t}])};return{state:d,getRootProps:(e,t)=>({disabled:e,"aria-pressed":o,"aria-disabled":e,...o&&{"data-pressed":""},...e&&{"data-disabled":""},...!!t&&{"data-invalid":""},onClick:n}),getIndicatorProps:(e,t)=>({...o&&{"data-pressed":""},...e&&{"data-disabled":""},...!!t&&{"data-invalid":""}}),onChange:n}}});export{a as defaultProps,P as useToggleButton};
1
+ import{withHeadless as p}from"@primereact/core/headless";import{useControlledState as g}from"@primereact/hooks/use-controlled-state";var n={pressed:void 0,defaultPressed:void 0,disabled:void 0,invalid:void 0,onPressedChange:void 0};var P=p({name:"useToggleButton",defaultProps:n,setup({props:s}){let[o,r]=g({value:s.pressed,defaultValue:s.defaultPressed??!1,onChange:s.onPressedChange}),d={pressed:o},a=e=>{let t=!o;r([t,{originalEvent:e,pressed:t}])};return{state:d,getRootProps:(e,t)=>({"data-scope":"togglebutton","data-part":"root",disabled:e,"aria-pressed":o,"aria-disabled":e,...o&&{"data-pressed":""},...e&&{"data-disabled":""},...!!t&&{"data-invalid":""},onClick:a}),getIndicatorProps:(e,t)=>({"data-scope":"togglebutton","data-part":"indicator",...o&&{"data-pressed":""},...e&&{"data-disabled":""},...!!t&&{"data-invalid":""}}),onChange:a}}});export{n as defaultProps,P as useToggleButton};
@@ -1 +1 @@
1
- import{withHeadless as g}from"@primereact/core/headless";import{useControlledState as m}from"@primereact/hooks/use-controlled-state";import*as u from"react";var n={value:void 0,defaultValue:void 0,onValueChange:void 0,multiple:!1,allowEmpty:!0,disabled:!1,invalid:!1};var h=g({name:"useToggleButtonGroup",defaultProps:n,setup({props:e}){let[a,l]=m({value:e.value,defaultValue:e.defaultValue,onChange:e.onValueChange}),s={value:a},r=u.useCallback(t=>{let o=null;if(e.multiple){if(o=t.pressed?[...a||[],t.value]:(a||[]).filter(p=>p!==t.value),!e.allowEmpty&&o.length===0)return}else if(o=t.pressed?t.value:null,!e.allowEmpty&&o===null)return;l?.([o,{originalEvent:t.originalEvent,value:o}])},[a,l]),d=(t,o)=>{if(t!==void 0)return e.multiple?t?.includes(o):t===o},i={role:"group","data-scope":"togglebuttongroup","data-part":"root",...e.disabled&&{"data-disabled":""},...e.invalid&&{"data-invalid":""},...e.multiple&&{"data-multiple":""},...e.allowEmpty&&{"data-allow-empty":""}};return{state:s,rootProps:i,updateChange:r,isPressed:d}}});export{n as defaultProps,h as useToggleButtonGroup};
1
+ import{withHeadless as m}from"@primereact/core/headless";import{useControlledState as g}from"@primereact/hooks/use-controlled-state";import*as u from"react";var n={value:void 0,defaultValue:void 0,onValueChange:void 0,multiple:!1,allowEmpty:!0,disabled:!1,invalid:!1};var h=m({name:"useToggleButtonGroup",defaultProps:n,setup({props:e}){let[l,o]=g({value:e.value,defaultValue:e.defaultValue,onChange:e.onValueChange}),s={value:l},r=u.useCallback(t=>{let a=null;if(e.multiple){if(a=t.pressed?[...l||[],t.value]:(l||[]).filter(p=>p!==t.value),!e.allowEmpty&&a.length===0)return}else if(a=t.pressed?t.value:null,!e.allowEmpty&&a===null)return;o?.([a,{originalEvent:t.originalEvent,value:a}])},[l,o,e.allowEmpty,e.multiple]),d=(t,a)=>{if(t!==void 0)return e.multiple?t?.includes(a):t===a},i={role:"group","data-scope":"togglebuttongroup","data-part":"root",...e.disabled&&{"data-disabled":""},...e.invalid&&{"data-invalid":""},...e.multiple&&{"data-multiple":""},...e.allowEmpty&&{"data-allow-empty":""}};return{state:s,rootProps:i,updateChange:r,isPressed:d}}});export{n as defaultProps,h as useToggleButtonGroup};
@@ -1 +1 @@
1
- import{withHeadless as r}from"@primereact/core/headless";import{useControlledState as b}from"@primereact/hooks/use-controlled-state";var n={checked:void 0,defaultChecked:void 0,disabled:!1,invalid:!1,tabIndex:void 0,ariaLabel:void 0,ariaLabelledby:void 0,onFocus:void 0,onBlur:void 0,onCheckedChange:void 0};var v=r({name:"useToggleSwitch",defaultProps:n,setup({props:e}){let[a,c]=b({value:e.checked,defaultValue:e.defaultChecked??!1,onChange:e.onCheckedChange}),s={checked:a},t=u=>{let d=!a;c([d,{originalEvent:u,checked:d}])},i={...a?{"data-checked":""}:{"data-unchecked":""},...e.disabled&&{"data-disabled":""},...e.invalid&&{"data-invalid":""}},o={type:"checkbox",role:"switch",checked:a,disabled:e.disabled,"aria-checked":a,...e.invalid&&{"aria-invalid":!0},...e.tabIndex!==void 0&&{tabIndex:e.tabIndex},...e.ariaLabelledby&&{"aria-labelledby":e.ariaLabelledby},...e.ariaLabel&&{"aria-label":e.ariaLabel},...e.onFocus&&{onFocus:e.onFocus},...e.onBlur&&{onBlur:e.onBlur},onChange:t},l={...a?{"data-checked":""}:{"data-unchecked":""},...e.disabled&&{"data-disabled":""},...e.invalid&&{"data-invalid":""}},h={...a?{"data-checked":""}:{"data-unchecked":""},...e.disabled&&{"data-disabled":""},...e.invalid&&{"data-invalid":""}};return{state:s,onChange:t,rootProps:i,inputProps:o,controlProps:l,handleProps:h}}});export{n as defaultProps,v as useToggleSwitch};
1
+ import{withHeadless as u}from"@primereact/core/headless";import{useControlledState as g}from"@primereact/hooks/use-controlled-state";var n={checked:void 0,defaultChecked:void 0,disabled:!1,invalid:!1,tabIndex:void 0,ariaLabel:void 0,ariaLabelledby:void 0,onFocus:void 0,onBlur:void 0,onCheckedChange:void 0};var w=u({name:"useToggleSwitch",defaultProps:n,setup({props:e}){let[a,c]=g({value:e.checked,defaultValue:e.defaultChecked??!1,onChange:e.onCheckedChange}),s={checked:a},t=r=>{let d=!a;c([d,{originalEvent:r,checked:d}])},o={"data-scope":"toggleswitch","data-part":"root",...a?{"data-checked":""}:{"data-unchecked":""},...e.disabled&&{"data-disabled":""},...e.invalid&&{"data-invalid":""}},i={type:"checkbox","data-scope":"toggleswitch","data-part":"input",role:"switch",checked:a,disabled:e.disabled,"aria-checked":a,...e.invalid&&{"aria-invalid":!0},...e.tabIndex!==void 0&&{tabIndex:e.tabIndex},...e.ariaLabelledby&&{"aria-labelledby":e.ariaLabelledby},...e.ariaLabel&&{"aria-label":e.ariaLabel},...e.onFocus&&{onFocus:e.onFocus},...e.onBlur&&{onBlur:e.onBlur},onChange:t},l={"data-scope":"toggleswitch","data-part":"control",...a?{"data-checked":""}:{"data-unchecked":""},...e.disabled&&{"data-disabled":""},...e.invalid&&{"data-invalid":""}},h={"data-scope":"toggleswitch","data-part":"handle",...a?{"data-checked":""}:{"data-unchecked":""},...e.disabled&&{"data-disabled":""},...e.invalid&&{"data-invalid":""}};return{state:s,onChange:t,rootProps:o,inputProps:i,controlProps:l,handleProps:h}}});export{n as defaultProps,w as useToggleSwitch};
@@ -8,10 +8,14 @@ export declare const useToggleSwitch: (inProps?: unknown) => import("@primereact
8
8
  'data-invalid'?: "" | undefined;
9
9
  'data-disabled'?: "" | undefined;
10
10
  'data-checked': "";
11
+ 'data-scope': "toggleswitch";
12
+ 'data-part': "root";
11
13
  } | {
12
14
  'data-invalid'?: "" | undefined;
13
15
  'data-disabled'?: "" | undefined;
14
16
  'data-unchecked': "";
17
+ 'data-scope': "toggleswitch";
18
+ 'data-part': "root";
15
19
  };
16
20
  inputProps: {
17
21
  onChange: (event: UseToggleSwitchChangeEvent) => void;
@@ -22,6 +26,8 @@ export declare const useToggleSwitch: (inProps?: unknown) => import("@primereact
22
26
  tabIndex?: number | undefined;
23
27
  'aria-invalid'?: true | undefined;
24
28
  type: "checkbox";
29
+ 'data-scope': "toggleswitch";
30
+ 'data-part': "input";
25
31
  role: "switch";
26
32
  checked: boolean | undefined;
27
33
  disabled: boolean | undefined;
@@ -31,18 +37,26 @@ export declare const useToggleSwitch: (inProps?: unknown) => import("@primereact
31
37
  'data-invalid'?: "" | undefined;
32
38
  'data-disabled'?: "" | undefined;
33
39
  'data-checked': "";
40
+ 'data-scope': "toggleswitch";
41
+ 'data-part': "control";
34
42
  } | {
35
43
  'data-invalid'?: "" | undefined;
36
44
  'data-disabled'?: "" | undefined;
37
45
  'data-unchecked': "";
46
+ 'data-scope': "toggleswitch";
47
+ 'data-part': "control";
38
48
  };
39
49
  handleProps: {
40
50
  'data-invalid'?: "" | undefined;
41
51
  'data-disabled'?: "" | undefined;
42
52
  'data-checked': "";
53
+ 'data-scope': "toggleswitch";
54
+ 'data-part': "handle";
43
55
  } | {
44
56
  'data-invalid'?: "" | undefined;
45
57
  'data-disabled'?: "" | undefined;
46
58
  'data-unchecked': "";
59
+ 'data-scope': "toggleswitch";
60
+ 'data-part': "handle";
47
61
  };
48
62
  }>;
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 ce}from"@primereact/core/headless";import{useControlledState as ue}from"@primereact/hooks/use-controlled-state";import*as t from"react";var _={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 ve=ce({name:"useTooltip",defaultProps:_,setup:({props:c})=>{let{tooltipManager:n,openDelay:G=600,closeDelay:C=0,interactive:b=!0,disabled:I,onExitComplete:O}=c,[o,N]=ue({value:c.open,defaultValue:c.defaultOpen,onChange:c.onOpenChange}),[H,S]=t.useState(c.anchor??null),[k,V]=t.useState(null),[j,q]=t.useState(null),[z,J]=t.useState(null),[d,i]=t.useState(void 0),[Q,x]=t.useState(!!o),u=t.useId(),v=t.useRef(null),T=t.useRef(null),M=t.useRef(null),K=t.useRef(null),R=t.useRef(null),a=t.useRef(null),P=t.useRef(!1),D=t.useRef(!1),L=t.useRef(o);L.current=o;let W=t.useCallback(e=>{c.anchor==null&&e!==v.current&&(v.current=e,S(e))},[c.anchor]);t.useEffect(()=>{c.anchor!==void 0&&(v.current=c.anchor,S(c.anchor??null))},[c.anchor]),t.useEffect(()=>{o&&x(!0)},[o]);let X=t.useCallback(e=>{e!==T.current&&(T.current=e,V(e))},[]),Y=t.useCallback(e=>{e!==K.current&&(K.current=e,J(e))},[]),Z=t.useCallback(e=>{e!==M.current&&(M.current=e,q(e))},[]),$=t.useCallback(()=>{},[]),ee=t.useCallback(()=>{O?.()},[O]),E=()=>{R.current&&(clearTimeout(R.current),R.current=null),a.current&&(clearTimeout(a.current),a.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?.(u)};let F=(e,r)=>{if(I)return;E();let l=n?.state?.isInstantPhase,f=n?.state?.lastClosedTooltipId,p=n?.state?.currentOpenTooltipId,w=n?.state?.openDelay,g=p!=null&&p!==u,B=l&&f===u,A=g||l&&f!==null&&f!==u,U=A||B?0:e??w??G;g&&n?.closeCurrentTooltip?.(),i(r||(A?"delay":void 0)),U===0?(y(!0),n?.notifyOpen?.(u,()=>h.current())):R.current=window.setTimeout(()=>{y(!0),n?.notifyOpen?.(u,()=>h.current()),R.current=null},U)},m=(e,r)=>{E();let l=n?.state?.isInstantPhase,f=n?.state?.closeDelay,p=l?0:e??f??C;r&&i(r),p===0?(y(!1),n?.notifyClose?.(u),r||i(void 0)):a.current=window.setTimeout(()=>{y(!1),n?.notifyClose?.(u),r||i(void 0),a.current=null},p)},s=t.useRef({onTriggerPointerEnter:()=>{},onTriggerPointerLeave:()=>{},onPositionerPointerLeave:()=>{},onFocus:()=>{},onBlur:()=>{},onDocumentPointerDown:e=>{},onKeyDown:e=>{}});s.current.onTriggerPointerEnter=()=>{P.current=!1,F()},s.current.onTriggerPointerLeave=()=>{if(!L.current){E();return}if(n){let e=n.state?.closeDelay??C;a.current=window.setTimeout(()=>{a.current=null,m(0)},e)}else m()},s.current.onPositionerPointerLeave=()=>{if(P.current=!1,n){let e=n.state?.closeDelay??C;a.current=window.setTimeout(()=>{a.current=null,m(0)},e)}else m()},s.current.onFocus=()=>{if(D.current){D.current=!1;return}v.current?.matches(":focus-visible")&&F(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(),l=()=>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",l),e.addEventListener("focus",f),e.addEventListener("blur",p),e.addEventListener("keydown",w),()=>{e.removeEventListener("pointerenter",r),e.removeEventListener("pointerleave",l),e.removeEventListener("focus",f),e.removeEventListener("blur",p),e.removeEventListener("keydown",w)}},[H,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,a.current&&(clearTimeout(a.current),a.current=null)},l=()=>s.current.onPositionerPointerLeave();return e.addEventListener("pointerenter",r),e.addEventListener("pointerleave",l),()=>{e.removeEventListener("pointerenter",r),e.removeEventListener("pointerleave",l),P.current=!1}},[k,o,b]),t.useEffect(()=>{o&&n&&n.notifyOpen(u,()=>h.current())},[o,u,n]),t.useEffect(()=>()=>E(),[]);let te={open:o,rendered:Q,anchorElement:H,positionerElement:k,popupElement:j,arrowElement:z,instantType:d},ne={...d&&{"data-instant":d}},re={"data-scope":"tooltip","data-part":"trigger",ref:W,...o&&{"data-popup-open":""}},oe={"data-scope":"tooltip","data-part":"positioner",ref:X,...o&&{"data-open":""}},se={"data-scope":"tooltip","data-part":"popup",ref:Z,...o&&{"data-open":""},...d&&{"data-instant":""},"data-instant-type":d},ae={"data-scope":"tooltip","data-part":"arrow",ref:Y,...o&&{"data-open":""},...d&&{"data-instant":d}};return{state:te,popupRef:M,rootProps:ne,triggerProps:re,positionerProps:oe,popupProps:se,arrowProps:ae,setRendered:x,onOpenComplete:$,onCloseComplete:ee}}});export{_ as defaultProps,ve as useTooltip};