@primereact/headless 11.0.0-alpha.9 → 11.0.0-rc.1

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 (592) hide show
  1. package/LICENSE.md +45 -0
  2. package/README.md +35 -0
  3. package/accordion/index.d.ts +3 -0
  4. package/accordion/index.mjs +1 -1
  5. package/accordion/index.mjs.map +1 -1
  6. package/accordion/useAccordion.d.ts +7 -6
  7. package/accordion/useAccordion.props.d.ts +2 -2
  8. package/accordion/useAccordionPanel.d.ts +46 -0
  9. package/accordion/useAccordionPanel.props.d.ts +2 -0
  10. package/animateonscroll/index.d.ts +1 -0
  11. package/animateonscroll/index.mjs +1 -1
  12. package/animateonscroll/index.mjs.map +1 -1
  13. package/animateonscroll/useAnimateOnScroll.d.ts +6 -1
  14. package/animateonscroll/useAnimateOnScroll.props.d.ts +2 -2
  15. package/autocomplete/index.d.ts +3 -0
  16. package/autocomplete/index.mjs +2 -0
  17. package/autocomplete/index.mjs.map +1 -0
  18. package/autocomplete/useAutoComplete.d.ts +198 -0
  19. package/autocomplete/useAutoComplete.props.d.ts +2 -0
  20. package/avatar/index.d.ts +1 -0
  21. package/avatar/index.mjs +1 -1
  22. package/avatar/index.mjs.map +1 -1
  23. package/avatar/useAvatar.d.ts +5 -1
  24. package/avatar/useAvatar.props.d.ts +2 -2
  25. package/avatargroup/index.d.ts +3 -0
  26. package/avatargroup/index.mjs +2 -0
  27. package/avatargroup/index.mjs.map +1 -0
  28. package/avatargroup/useAvatarGroup.d.ts +6 -0
  29. package/avatargroup/useAvatarGroup.props.d.ts +2 -0
  30. package/badge/index.d.ts +1 -0
  31. package/badge/index.mjs +1 -1
  32. package/badge/index.mjs.map +1 -1
  33. package/badge/useBadge.d.ts +7 -1
  34. package/badge/useBadge.props.d.ts +2 -2
  35. package/breadcrumb/index.d.ts +1 -0
  36. package/breadcrumb/index.mjs +1 -1
  37. package/breadcrumb/index.mjs.map +1 -1
  38. package/breadcrumb/useBreadcrumb.d.ts +18 -2
  39. package/breadcrumb/useBreadcrumb.props.d.ts +2 -2
  40. package/button/index.d.ts +1 -0
  41. package/button/index.mjs +1 -1
  42. package/button/index.mjs.map +1 -1
  43. package/button/useButton.d.ts +6 -1
  44. package/button/useButton.props.d.ts +2 -2
  45. package/card/index.d.ts +1 -0
  46. package/card/index.mjs +1 -1
  47. package/card/index.mjs.map +1 -1
  48. package/card/useCard.d.ts +6 -1
  49. package/card/useCard.props.d.ts +2 -2
  50. package/carousel/index.d.ts +1 -0
  51. package/carousel/index.mjs +1 -1
  52. package/carousel/index.mjs.map +1 -1
  53. package/carousel/useCarousel.d.ts +101 -5
  54. package/carousel/useCarousel.props.d.ts +2 -2
  55. package/checkbox/index.d.ts +1 -0
  56. package/checkbox/index.mjs +1 -1
  57. package/checkbox/index.mjs.map +1 -1
  58. package/checkbox/useCheckbox.d.ts +44 -3
  59. package/checkbox/useCheckbox.props.d.ts +2 -2
  60. package/checkboxgroup/index.d.ts +3 -0
  61. package/checkboxgroup/index.mjs +2 -0
  62. package/checkboxgroup/index.mjs.map +1 -0
  63. package/checkboxgroup/useCheckboxGroup.d.ts +11 -0
  64. package/checkboxgroup/useCheckboxGroup.props.d.ts +2 -0
  65. package/chip/index.d.ts +1 -0
  66. package/chip/index.mjs +1 -1
  67. package/chip/index.mjs.map +1 -1
  68. package/chip/useChip.d.ts +9 -3
  69. package/chip/useChip.props.d.ts +2 -2
  70. package/collapsible/index.d.ts +3 -0
  71. package/collapsible/index.mjs +2 -0
  72. package/collapsible/index.mjs.map +1 -0
  73. package/collapsible/useCollapsible.d.ts +33 -0
  74. package/collapsible/useCollapsible.props.d.ts +2 -0
  75. package/compare/index.d.ts +3 -0
  76. package/compare/index.mjs +2 -0
  77. package/compare/index.mjs.map +1 -0
  78. package/compare/useCompare.d.ts +2 -0
  79. package/compare/useCompare.props.d.ts +2 -0
  80. package/contextmenu/index.d.ts +1 -0
  81. package/contextmenu/index.mjs +1 -1
  82. package/contextmenu/index.mjs.map +1 -1
  83. package/contextmenu/submenu/index.d.ts +2 -0
  84. package/contextmenu/submenu/index.mjs +2 -0
  85. package/contextmenu/submenu/index.mjs.map +1 -0
  86. package/contextmenu/submenu/useContextMenuSubmenu.d.ts +121 -0
  87. package/contextmenu/submenu/useContextMenuSubmenu.props.d.ts +2 -0
  88. package/contextmenu/useContextMenu.d.ts +413 -1
  89. package/contextmenu/useContextMenu.props.d.ts +2 -2
  90. package/datatable/features/index.d.ts +28 -0
  91. package/datatable/features/index.mjs +11 -0
  92. package/datatable/features/index.mjs.map +1 -0
  93. package/datatable/features/useDataTableColumnReorder.d.ts +52 -0
  94. package/datatable/features/useDataTableColumnResize.d.ts +20 -0
  95. package/datatable/features/useDataTableEditing.d.ts +69 -0
  96. package/datatable/features/useDataTableExpansion.d.ts +32 -0
  97. package/datatable/features/useDataTableExport.d.ts +43 -0
  98. package/datatable/features/useDataTableFilter.d.ts +95 -0
  99. package/datatable/features/useDataTableGrouping.d.ts +11 -0
  100. package/datatable/features/useDataTableKeyboard.d.ts +23 -0
  101. package/datatable/features/useDataTablePagination.d.ts +32 -0
  102. package/datatable/features/useDataTableRowReorder.d.ts +42 -0
  103. package/datatable/features/useDataTableSelection.d.ts +28 -0
  104. package/datatable/features/useDataTableSort.d.ts +51 -0
  105. package/datatable/features/useDataTableTree.d.ts +31 -0
  106. package/datatable/index.d.ts +7 -0
  107. package/datatable/index.mjs +11 -0
  108. package/datatable/index.mjs.map +1 -0
  109. package/datatable/useDataTable.d.ts +237 -0
  110. package/datatable/useDataTable.props.d.ts +2 -0
  111. package/datatable/useDataTableRow.d.ts +30 -0
  112. package/datatable/useDataTableRow.props.d.ts +2 -0
  113. package/datatable/utils/compareValues.d.ts +20 -0
  114. package/datatable/utils/index.d.ts +1 -0
  115. package/datatable/utils/index.mjs +2 -0
  116. package/datatable/utils/index.mjs.map +1 -0
  117. package/dataview/index.d.ts +1 -0
  118. package/dataview/index.mjs +1 -1
  119. package/dataview/index.mjs.map +1 -1
  120. package/dataview/useDataView.d.ts +25 -1
  121. package/dataview/useDataView.props.d.ts +2 -2
  122. package/datepicker/index.d.ts +1 -0
  123. package/datepicker/index.mjs +1 -1
  124. package/datepicker/index.mjs.map +1 -1
  125. package/datepicker/useDatePicker.d.ts +2 -114
  126. package/datepicker/useDatePicker.props.d.ts +2 -2
  127. package/dialog/index.d.ts +1 -0
  128. package/dialog/index.mjs +1 -1
  129. package/dialog/index.mjs.map +1 -1
  130. package/dialog/useDialog.d.ts +274 -24
  131. package/dialog/useDialog.props.d.ts +2 -2
  132. package/divider/index.d.ts +1 -0
  133. package/divider/index.mjs +1 -1
  134. package/divider/index.mjs.map +1 -1
  135. package/divider/useDivider.d.ts +14 -1
  136. package/divider/useDivider.props.d.ts +2 -2
  137. package/dnd/index.d.ts +11 -0
  138. package/dnd/index.mjs +2 -0
  139. package/dnd/index.mjs.map +1 -0
  140. package/dnd/useDnd.d.ts +45 -0
  141. package/dnd/useDnd.props.d.ts +2 -0
  142. package/dnd/useDraggable.d.ts +14 -0
  143. package/dnd/useDraggable.props.d.ts +2 -0
  144. package/dnd/useDroppable.d.ts +11 -0
  145. package/dnd/useDroppable.props.d.ts +2 -0
  146. package/dnd/useSortable.d.ts +11 -0
  147. package/dnd/useSortable.props.d.ts +2 -0
  148. package/dnd/useSortableContainer.d.ts +24 -0
  149. package/dnd/useSortableContainer.props.d.ts +2 -0
  150. package/drawer/index.d.ts +1 -0
  151. package/drawer/index.mjs +1 -1
  152. package/drawer/index.mjs.map +1 -1
  153. package/drawer/useDrawer.d.ts +78 -16
  154. package/drawer/useDrawer.props.d.ts +2 -2
  155. package/fieldset/index.d.ts +1 -0
  156. package/fieldset/index.mjs +1 -1
  157. package/fieldset/index.mjs.map +1 -1
  158. package/fieldset/useFieldset.d.ts +80 -1
  159. package/fieldset/useFieldset.props.d.ts +2 -2
  160. package/fileupload/index.d.ts +1 -0
  161. package/fileupload/index.mjs +1 -1
  162. package/fileupload/index.mjs.map +1 -1
  163. package/fileupload/useFileUpload.d.ts +73 -4
  164. package/fileupload/useFileUpload.props.d.ts +2 -2
  165. package/floatlabel/index.d.ts +3 -0
  166. package/floatlabel/index.mjs +2 -0
  167. package/floatlabel/index.mjs.map +1 -0
  168. package/floatlabel/useFloatLabel.d.ts +6 -0
  169. package/floatlabel/useFloatLabel.props.d.ts +2 -0
  170. package/fluid/index.d.ts +1 -0
  171. package/fluid/index.mjs +1 -1
  172. package/fluid/index.mjs.map +1 -1
  173. package/fluid/useFluid.d.ts +6 -1
  174. package/fluid/useFluid.props.d.ts +2 -2
  175. package/focustrap/index.d.ts +1 -0
  176. package/focustrap/index.mjs +1 -1
  177. package/focustrap/index.mjs.map +1 -1
  178. package/focustrap/useFocusTrap.d.ts +16 -3
  179. package/focustrap/useFocusTrap.props.d.ts +2 -2
  180. package/gallery/index.d.ts +1 -0
  181. package/gallery/index.mjs +1 -1
  182. package/gallery/index.mjs.map +1 -1
  183. package/gallery/item/index.mjs +1 -1
  184. package/gallery/item/index.mjs.map +1 -1
  185. package/gallery/item/useGalleryItem.d.ts +17 -7
  186. package/gallery/item/useGalleryItem.props.d.ts +2 -2
  187. package/gallery/useGallery.d.ts +147 -6
  188. package/gallery/useGallery.props.d.ts +2 -2
  189. package/iconfield/index.d.ts +1 -0
  190. package/iconfield/index.mjs +1 -1
  191. package/iconfield/index.mjs.map +1 -1
  192. package/iconfield/useIconField.d.ts +6 -1
  193. package/iconfield/useIconField.props.d.ts +2 -2
  194. package/iftalabel/index.d.ts +3 -0
  195. package/iftalabel/index.mjs +2 -0
  196. package/iftalabel/index.mjs.map +1 -0
  197. package/iftalabel/useIftaLabel.d.ts +6 -0
  198. package/iftalabel/useIftaLabel.props.d.ts +2 -0
  199. package/inplace/index.d.ts +1 -0
  200. package/inplace/index.mjs +1 -1
  201. package/inplace/index.mjs.map +1 -1
  202. package/inplace/useInplace.d.ts +21 -2
  203. package/inplace/useInplace.props.d.ts +2 -2
  204. package/{colorpicker → inputcolor}/colorManager.d.ts +3 -2
  205. package/inputcolor/index.d.ts +4 -0
  206. package/inputcolor/index.mjs +2 -0
  207. package/inputcolor/index.mjs.map +1 -0
  208. package/inputcolor/useInputColor.d.ts +119 -0
  209. package/inputcolor/useInputColor.props.d.ts +2 -0
  210. package/inputgroup/index.d.ts +1 -0
  211. package/inputgroup/index.mjs +1 -1
  212. package/inputgroup/index.mjs.map +1 -1
  213. package/inputgroup/useInputGroup.d.ts +6 -1
  214. package/inputgroup/useInputGroup.props.d.ts +2 -2
  215. package/inputnumber/index.d.ts +1 -0
  216. package/inputnumber/index.mjs +1 -1
  217. package/inputnumber/index.mjs.map +1 -1
  218. package/inputnumber/useInputNumber.d.ts +55 -17
  219. package/inputnumber/useInputNumber.props.d.ts +2 -2
  220. package/inputotp/index.d.ts +1 -0
  221. package/inputotp/index.mjs +1 -1
  222. package/inputotp/index.mjs.map +1 -1
  223. package/inputotp/useInputOtp.d.ts +25 -6
  224. package/inputotp/useInputOtp.props.d.ts +2 -2
  225. package/inputpassword/index.d.ts +3 -0
  226. package/inputpassword/index.mjs +2 -0
  227. package/inputpassword/index.mjs.map +1 -0
  228. package/inputpassword/useInputPassword.d.ts +15 -0
  229. package/inputpassword/useInputPassword.props.d.ts +2 -0
  230. package/inputtags/index.d.ts +1 -0
  231. package/inputtags/index.mjs +1 -1
  232. package/inputtags/index.mjs.map +1 -1
  233. package/inputtags/useInputTags.d.ts +42 -12
  234. package/inputtags/useInputTags.props.d.ts +2 -2
  235. package/inputtext/index.d.ts +1 -0
  236. package/inputtext/index.mjs +1 -1
  237. package/inputtext/index.mjs.map +1 -1
  238. package/inputtext/useInputText.d.ts +8 -1
  239. package/inputtext/useInputText.props.d.ts +2 -2
  240. package/knob/index.d.ts +1 -0
  241. package/knob/index.mjs +1 -1
  242. package/knob/index.mjs.map +1 -1
  243. package/knob/useKnob.d.ts +51 -10
  244. package/knob/useKnob.props.d.ts +2 -2
  245. package/label/index.d.ts +1 -0
  246. package/label/index.mjs +1 -1
  247. package/label/index.mjs.map +1 -1
  248. package/label/useLabel.d.ts +6 -1
  249. package/label/useLabel.props.d.ts +2 -2
  250. package/listbox/index.d.ts +3 -0
  251. package/listbox/index.mjs +1 -1
  252. package/listbox/index.mjs.map +1 -1
  253. package/listbox/useListbox.d.ts +56 -18
  254. package/listbox/useListbox.props.d.ts +2 -2
  255. package/listbox/useListboxOption.d.ts +21 -0
  256. package/listbox/useListboxOption.props.d.ts +2 -0
  257. package/menu/checkboxitem/index.d.ts +2 -0
  258. package/menu/checkboxitem/index.mjs +2 -0
  259. package/menu/checkboxitem/index.mjs.map +1 -0
  260. package/menu/checkboxitem/useMenuCheckboxItem.d.ts +112 -0
  261. package/menu/checkboxitem/useMenuCheckboxItem.props.d.ts +2 -0
  262. package/menu/index.d.ts +1 -0
  263. package/menu/index.mjs +1 -1
  264. package/menu/index.mjs.map +1 -1
  265. package/menu/radioitem/index.d.ts +2 -0
  266. package/menu/radioitem/index.mjs +2 -0
  267. package/menu/radioitem/index.mjs.map +1 -0
  268. package/menu/radioitem/useMenuRadioItem.d.ts +106 -0
  269. package/menu/radioitem/useMenuRadioItem.props.d.ts +2 -0
  270. package/menu/submenu/index.d.ts +2 -0
  271. package/menu/submenu/index.mjs +2 -0
  272. package/menu/submenu/index.mjs.map +1 -0
  273. package/menu/submenu/useMenuSubmenu.d.ts +97 -0
  274. package/menu/submenu/useMenuSubmenu.props.d.ts +2 -0
  275. package/menu/useMenu.d.ts +215 -22
  276. package/menu/useMenu.props.d.ts +2 -2
  277. package/message/index.d.ts +1 -0
  278. package/message/index.mjs +1 -1
  279. package/message/index.mjs.map +1 -1
  280. package/message/useMessage.d.ts +13 -1
  281. package/message/useMessage.props.d.ts +2 -2
  282. package/metergroup/index.d.ts +1 -0
  283. package/metergroup/index.mjs +1 -1
  284. package/metergroup/index.mjs.map +1 -1
  285. package/metergroup/useMeterGroup.d.ts +36 -5
  286. package/metergroup/useMeterGroup.props.d.ts +2 -2
  287. package/navigationmenu/index.d.ts +3 -0
  288. package/navigationmenu/index.mjs +2 -0
  289. package/navigationmenu/index.mjs.map +1 -0
  290. package/navigationmenu/useNavigationMenu.d.ts +30 -0
  291. package/navigationmenu/useNavigationMenu.props.d.ts +2 -0
  292. package/orderlist/index.d.ts +3 -0
  293. package/orderlist/index.mjs +2 -0
  294. package/orderlist/index.mjs.map +1 -0
  295. package/orderlist/useOrderList.d.ts +73 -0
  296. package/orderlist/useOrderList.props.d.ts +2 -0
  297. package/organizationchart/index.d.ts +3 -0
  298. package/organizationchart/index.mjs +2 -0
  299. package/organizationchart/index.mjs.map +1 -0
  300. package/organizationchart/useOrganizationChart.d.ts +69 -0
  301. package/organizationchart/useOrganizationChart.props.d.ts +2 -0
  302. package/overlaybadge/index.d.ts +3 -0
  303. package/overlaybadge/index.mjs +2 -0
  304. package/overlaybadge/index.mjs.map +1 -0
  305. package/overlaybadge/useOverlayBadge.d.ts +1 -0
  306. package/overlaybadge/useOverlayBadge.props.d.ts +2 -0
  307. package/package.json +12 -15
  308. package/paginator/index.d.ts +1 -0
  309. package/paginator/index.mjs +1 -1
  310. package/paginator/index.mjs.map +1 -1
  311. package/paginator/usePaginator.d.ts +47 -1
  312. package/paginator/usePaginator.props.d.ts +2 -2
  313. package/panel/index.d.ts +1 -0
  314. package/panel/index.mjs +1 -1
  315. package/panel/index.mjs.map +1 -1
  316. package/panel/usePanel.d.ts +76 -8
  317. package/panel/usePanel.props.d.ts +2 -2
  318. package/picklist/index.d.ts +3 -0
  319. package/picklist/index.mjs +2 -0
  320. package/picklist/index.mjs.map +1 -0
  321. package/picklist/usePickList.d.ts +153 -0
  322. package/picklist/usePickList.props.d.ts +2 -0
  323. package/popover/index.d.ts +1 -0
  324. package/popover/index.mjs +1 -7
  325. package/popover/index.mjs.map +1 -1
  326. package/popover/usePopover.d.ts +65 -12
  327. package/popover/usePopover.props.d.ts +2 -2
  328. package/portal/index.d.ts +1 -0
  329. package/portal/index.mjs +1 -1
  330. package/portal/index.mjs.map +1 -1
  331. package/portal/usePortal.d.ts +4 -2
  332. package/portal/usePortal.props.d.ts +2 -2
  333. package/positioner/index.d.ts +3 -0
  334. package/positioner/index.mjs +2 -0
  335. package/positioner/index.mjs.map +1 -0
  336. package/positioner/usePositioner.anchor.d.ts +7 -0
  337. package/positioner/usePositioner.d.ts +11 -0
  338. package/positioner/usePositioner.fallback.d.ts +13 -0
  339. package/positioner/usePositioner.props.d.ts +2 -0
  340. package/positioner/usePositioner.utils.d.ts +21 -0
  341. package/progressbar/index.d.ts +1 -0
  342. package/progressbar/index.mjs +1 -1
  343. package/progressbar/index.mjs.map +1 -1
  344. package/progressbar/useProgressBar.d.ts +13 -1
  345. package/progressbar/useProgressBar.props.d.ts +2 -2
  346. package/progressspinner/index.d.ts +1 -0
  347. package/progressspinner/index.mjs +1 -1
  348. package/progressspinner/index.mjs.map +1 -1
  349. package/progressspinner/useProgressSpinner.d.ts +50 -1
  350. package/progressspinner/useProgressSpinner.props.d.ts +2 -2
  351. package/radiobutton/index.d.ts +1 -0
  352. package/radiobutton/index.mjs +1 -1
  353. package/radiobutton/index.mjs.map +1 -1
  354. package/radiobutton/useRadioButton.d.ts +41 -3
  355. package/radiobutton/useRadioButton.props.d.ts +2 -2
  356. package/radiobuttongroup/index.d.ts +3 -0
  357. package/radiobuttongroup/index.mjs +2 -0
  358. package/radiobuttongroup/index.mjs.map +1 -0
  359. package/radiobuttongroup/useRadioButtonGroup.d.ts +11 -0
  360. package/radiobuttongroup/useRadioButtonGroup.props.d.ts +2 -0
  361. package/rating/index.d.ts +3 -0
  362. package/rating/index.mjs +1 -1
  363. package/rating/index.mjs.map +1 -1
  364. package/rating/useRating.d.ts +46 -12
  365. package/rating/useRating.props.d.ts +2 -2
  366. package/rating/useRatingOption.d.ts +69 -0
  367. package/rating/useRatingOption.props.d.ts +2 -0
  368. package/scrollarea/index.d.ts +1 -0
  369. package/scrollarea/index.mjs +1 -1
  370. package/scrollarea/index.mjs.map +1 -1
  371. package/scrollarea/useScrollArea.d.ts +120 -15
  372. package/scrollarea/useScrollArea.props.d.ts +2 -2
  373. package/select/index.d.ts +3 -0
  374. package/select/index.mjs +2 -0
  375. package/select/index.mjs.map +1 -0
  376. package/select/useSelect.d.ts +190 -0
  377. package/select/useSelect.props.d.ts +2 -0
  378. package/select/useSelect.test.d.ts +1 -0
  379. package/sidebar/index.d.ts +7 -0
  380. package/sidebar/index.mjs +2 -0
  381. package/sidebar/index.mjs.map +1 -0
  382. package/sidebar/useSidebar.d.ts +117 -0
  383. package/sidebar/useSidebar.props.d.ts +2 -0
  384. package/sidebar/useSidebarLayout.d.ts +24 -0
  385. package/sidebar/useSidebarLayout.props.d.ts +2 -0
  386. package/sidebar/useSidebarMenuItem.d.ts +11 -0
  387. package/sidebar/useSidebarMenuItem.props.d.ts +2 -0
  388. package/skeleton/index.d.ts +1 -0
  389. package/skeleton/index.mjs +1 -1
  390. package/skeleton/index.mjs.map +1 -1
  391. package/skeleton/useSkeleton.d.ts +7 -1
  392. package/skeleton/useSkeleton.props.d.ts +2 -2
  393. package/slider/index.d.ts +1 -0
  394. package/slider/index.mjs +1 -1
  395. package/slider/index.mjs.map +1 -1
  396. package/slider/useSlider.d.ts +81 -48
  397. package/slider/useSlider.props.d.ts +2 -2
  398. package/speeddial/index.d.ts +1 -0
  399. package/speeddial/index.mjs +1 -1
  400. package/speeddial/index.mjs.map +1 -1
  401. package/speeddial/useSpeedDial.d.ts +89 -32
  402. package/speeddial/useSpeedDial.props.d.ts +2 -2
  403. package/splitter/index.d.ts +1 -0
  404. package/splitter/index.mjs +1 -1
  405. package/splitter/index.mjs.map +1 -1
  406. package/splitter/useSplitter.d.ts +57 -14
  407. package/splitter/useSplitter.props.d.ts +2 -2
  408. package/stepper/index.d.ts +1 -0
  409. package/stepper/index.mjs +1 -1
  410. package/stepper/index.mjs.map +1 -1
  411. package/stepper/useStepper.d.ts +47 -2
  412. package/stepper/useStepper.props.d.ts +2 -2
  413. package/styleclass/index.d.ts +1 -0
  414. package/styleclass/index.mjs +1 -1
  415. package/styleclass/index.mjs.map +1 -1
  416. package/styleclass/useStyleClass.d.ts +5 -1
  417. package/styleclass/useStyleClass.props.d.ts +2 -2
  418. package/tabs/index.d.ts +1 -0
  419. package/tabs/index.mjs +1 -1
  420. package/tabs/index.mjs.map +1 -1
  421. package/tabs/useTabs.d.ts +42 -3
  422. package/tabs/useTabs.props.d.ts +2 -2
  423. package/tag/index.d.ts +1 -0
  424. package/tag/index.mjs +1 -1
  425. package/tag/index.mjs.map +1 -1
  426. package/tag/useTag.d.ts +6 -1
  427. package/tag/useTag.props.d.ts +2 -2
  428. package/terminal/index.d.ts +1 -0
  429. package/terminal/index.mjs +1 -1
  430. package/terminal/index.mjs.map +1 -1
  431. package/terminal/useTerminal.d.ts +23 -2
  432. package/terminal/useTerminal.props.d.ts +2 -2
  433. package/textarea/index.d.ts +1 -0
  434. package/textarea/index.mjs +1 -1
  435. package/textarea/index.mjs.map +1 -1
  436. package/textarea/useTextarea.d.ts +9 -2
  437. package/textarea/useTextarea.props.d.ts +2 -2
  438. package/timeline/index.d.ts +1 -0
  439. package/timeline/index.mjs +1 -1
  440. package/timeline/index.mjs.map +1 -1
  441. package/timeline/useTimeline.d.ts +41 -1
  442. package/timeline/useTimeline.props.d.ts +2 -2
  443. package/toast/index.d.ts +1 -1
  444. package/toast/index.mjs +1 -1
  445. package/toast/index.mjs.map +1 -1
  446. package/toast/useToast.d.ts +85 -23
  447. package/toast/useToast.props.d.ts +2 -2
  448. package/toaster/ToastManager.d.ts +14 -0
  449. package/toaster/index.d.ts +4 -0
  450. package/toaster/index.mjs +2 -0
  451. package/toaster/index.mjs.map +1 -0
  452. package/toaster/useToaster.d.ts +50 -0
  453. package/toaster/useToaster.props.d.ts +2 -0
  454. package/togglebutton/index.d.ts +1 -0
  455. package/togglebutton/index.mjs +1 -1
  456. package/togglebutton/index.mjs.map +1 -1
  457. package/togglebutton/useToggleButton.d.ts +5 -3
  458. package/togglebutton/useToggleButton.props.d.ts +2 -2
  459. package/togglebuttongroup/index.d.ts +3 -0
  460. package/togglebuttongroup/index.mjs +2 -0
  461. package/togglebuttongroup/index.mjs.map +1 -0
  462. package/togglebuttongroup/useToggleButtonGroup.d.ts +17 -0
  463. package/togglebuttongroup/useToggleButtonGroup.props.d.ts +2 -0
  464. package/toggleswitch/index.d.ts +3 -0
  465. package/toggleswitch/index.mjs +2 -0
  466. package/toggleswitch/index.mjs.map +1 -0
  467. package/toggleswitch/useToggleSwitch.d.ts +48 -0
  468. package/toggleswitch/useToggleSwitch.props.d.ts +2 -0
  469. package/toolbar/index.d.ts +1 -0
  470. package/toolbar/index.mjs +1 -1
  471. package/toolbar/index.mjs.map +1 -1
  472. package/toolbar/useToolbar.d.ts +7 -1
  473. package/toolbar/useToolbar.props.d.ts +2 -2
  474. package/tooltip/index.d.ts +1 -0
  475. package/tooltip/index.mjs +1 -1
  476. package/tooltip/index.mjs.map +1 -1
  477. package/tooltip/useTooltip.d.ts +43 -24
  478. package/tooltip/useTooltip.props.d.ts +2 -2
  479. package/tooltipmanager/index.d.ts +2 -0
  480. package/tooltipmanager/index.mjs +2 -0
  481. package/tooltipmanager/index.mjs.map +1 -0
  482. package/tooltipmanager/useTooltipManager.d.ts +12 -0
  483. package/tooltipmanager/useTooltipManager.props.d.ts +2 -0
  484. package/tooltipmanager/useTooltipManager.test.d.ts +0 -0
  485. package/tree/TreeDragDropService.d.ts +13 -5
  486. package/tree/index.d.ts +7 -0
  487. package/tree/index.mjs +1 -1
  488. package/tree/index.mjs.map +1 -1
  489. package/tree/useTree.d.ts +96 -16
  490. package/tree/useTree.props.d.ts +2 -2
  491. package/tree/useTreeDragDrop.d.ts +24 -0
  492. package/tree/useTreeFlatten.d.ts +13 -0
  493. package/tree/useTreeKeyboard.d.ts +18 -0
  494. package/tree/useTreeNode.d.ts +45 -0
  495. package/tree/useTreeNode.props.d.ts +2 -0
  496. package/tree/useTreeSelection.d.ts +31 -0
  497. package/utils/itemKey.d.ts +10 -0
  498. package/LICENSE +0 -21
  499. package/colorpicker/index.d.ts +0 -3
  500. package/colorpicker/index.mjs +0 -2
  501. package/colorpicker/index.mjs.map +0 -1
  502. package/colorpicker/input/index.d.ts +0 -2
  503. package/colorpicker/input/index.mjs +0 -2
  504. package/colorpicker/input/index.mjs.map +0 -1
  505. package/colorpicker/input/useColorPickerInput.d.ts +0 -11
  506. package/colorpicker/input/useColorPickerInput.props.d.ts +0 -2
  507. package/colorpicker/slider/index.d.ts +0 -2
  508. package/colorpicker/slider/index.mjs +0 -2
  509. package/colorpicker/slider/index.mjs.map +0 -1
  510. package/colorpicker/slider/useColorPickerSlider.d.ts +0 -13
  511. package/colorpicker/slider/useColorPickerSlider.props.d.ts +0 -2
  512. package/colorpicker/useColorPicker.d.ts +0 -26
  513. package/colorpicker/useColorPicker.props.d.ts +0 -2
  514. package/commandmenu/index.d.ts +0 -2
  515. package/commandmenu/index.mjs +0 -2
  516. package/commandmenu/index.mjs.map +0 -1
  517. package/commandmenu/useCommandMenu.d.ts +0 -11
  518. package/commandmenu/useCommandMenu.props.d.ts +0 -2
  519. package/confirmdialog/index.d.ts +0 -2
  520. package/confirmdialog/index.mjs +0 -2
  521. package/confirmdialog/index.mjs.map +0 -1
  522. package/confirmdialog/useConfirmDialog.d.ts +0 -1
  523. package/confirmdialog/useConfirmDialog.props.d.ts +0 -2
  524. package/confirmpopup/index.d.ts +0 -2
  525. package/confirmpopup/index.mjs +0 -2
  526. package/confirmpopup/index.mjs.map +0 -1
  527. package/confirmpopup/useConfirmPopup.d.ts +0 -25
  528. package/confirmpopup/useConfirmPopup.props.d.ts +0 -2
  529. package/imagecompare/index.d.ts +0 -2
  530. package/imagecompare/index.mjs +0 -2
  531. package/imagecompare/index.mjs.map +0 -1
  532. package/imagecompare/useImageCompare.d.ts +0 -8
  533. package/imagecompare/useImageCompare.props.d.ts +0 -2
  534. package/menu/sub/index.d.ts +0 -2
  535. package/menu/sub/index.mjs +0 -2
  536. package/menu/sub/index.mjs.map +0 -1
  537. package/menu/sub/useMenuSub.d.ts +0 -19
  538. package/menu/sub/useMenuSub.props.d.ts +0 -2
  539. package/orgchart/index.d.ts +0 -2
  540. package/orgchart/index.mjs +0 -2
  541. package/orgchart/index.mjs.map +0 -1
  542. package/orgchart/useOrgChart.d.ts +0 -20
  543. package/orgchart/useOrgChart.props.d.ts +0 -2
  544. package/overlay/index.d.ts +0 -2
  545. package/overlay/index.mjs +0 -2
  546. package/overlay/index.mjs.map +0 -1
  547. package/overlay/useOverlay.d.ts +0 -16
  548. package/overlay/useOverlay.props.d.ts +0 -2
  549. package/password/index.d.ts +0 -2
  550. package/password/index.mjs +0 -2
  551. package/password/index.mjs.map +0 -1
  552. package/password/usePassword.d.ts +0 -35
  553. package/password/usePassword.props.d.ts +0 -2
  554. package/placer/index.d.ts +0 -2
  555. package/placer/index.mjs +0 -2
  556. package/placer/index.mjs.map +0 -1
  557. package/placer/usePlacer.d.ts +0 -12
  558. package/placer/usePlacer.props.d.ts +0 -2
  559. package/switch/index.d.ts +0 -2
  560. package/switch/index.mjs +0 -2
  561. package/switch/index.mjs.map +0 -1
  562. package/switch/useSwitch.d.ts +0 -7
  563. package/switch/useSwitch.props.d.ts +0 -2
  564. package/toast/item/index.css +0 -2
  565. package/toast/item/index.css.map +0 -1
  566. package/toast/item/index.d.ts +0 -2
  567. package/toast/item/index.mjs +0 -2
  568. package/toast/item/index.mjs.map +0 -1
  569. package/toast/item/useToastItem.d.ts +0 -25
  570. package/toast/item/useToastItem.props.d.ts +0 -2
  571. package/toast/toastStore.d.ts +0 -40
  572. package/tooltip/group/index.d.ts +0 -2
  573. package/tooltip/group/index.mjs +0 -2
  574. package/tooltip/group/index.mjs.map +0 -1
  575. package/tooltip/group/useTooltipGroup.d.ts +0 -9
  576. package/tooltip/group/useTooltipGroup.props.d.ts +0 -2
  577. /package/{colorpicker/input/useColorPickerInput.test.d.ts → autocomplete/useAutoComplete.test.d.ts} +0 -0
  578. /package/{colorpicker/slider/useColorPickerSlider.test.d.ts → checkboxgroup/useCheckboxGroup.test.d.ts} +0 -0
  579. /package/{colorpicker/useColorPicker.test.d.ts → collapsible/useCollapsible.test.d.ts} +0 -0
  580. /package/{commandmenu/useCommandMenu.test.d.ts → compare/useCompare.test.d.ts} +0 -0
  581. /package/{confirmdialog/useConfirmDialog.test.d.ts → floatlabel/useFloatLabel.test.d.ts} +0 -0
  582. /package/{confirmpopup/useConfirmPopup.test.d.ts → iftalabel/useIftaLabel.test.d.ts} +0 -0
  583. /package/{imagecompare/useImageCompare.test.d.ts → inputcolor/useInputColor.test.d.ts} +0 -0
  584. /package/{orgchart/useOrgChart.test.d.ts → inputpassword/useInputPassword.test.d.ts} +0 -0
  585. /package/{overlay/useOverlay.test.d.ts → navigationmenu/useNavigationMenu.test.d.ts} +0 -0
  586. /package/{password/usePassword.test.d.ts → organizationchart/useOrganizationChart.test.d.ts} +0 -0
  587. /package/{placer/usePlacer.test.d.ts → overlaybadge/useOverlayBadge.test.d.ts} +0 -0
  588. /package/{progressspinner/useProgressSpinner.test.d.ts → positioner/usePositioner.test.d.ts} +0 -0
  589. /package/{rating/useRating.test.d.ts → radiobuttongroup/useRadioButtonGroup.test.d.ts} +0 -0
  590. /package/{switch/useSwitch.test.d.ts → toaster/useToaster.test.d.ts} +0 -0
  591. /package/{toast/item/useToastItem.test.d.ts → togglebuttongroup/useToggleButtonGroup.test.d.ts} +0 -0
  592. /package/{tooltip/group/useTooltipGroup.test.d.ts → toggleswitch/useToggleSwitch.test.d.ts} +0 -0
@@ -0,0 +1,2 @@
1
+ import type { UsePickListProps } from '@primereact/types/headless/picklist';
2
+ export declare const defaultProps: UsePickListProps;
@@ -1,2 +1,3 @@
1
1
  export * from './usePopover';
2
2
  export * from './usePopover.props';
3
+ export type * from '@primereact/types/headless/popover';
package/popover/index.mjs CHANGED
@@ -1,8 +1,2 @@
1
- import{withHeadless as _}from"@primereact/core/headless";import{ConnectedOverlayScrollHandler as ee}from"@primereact/core/utils";import{useMountEffect as te}from"@primereact/hooks/use-mount-effect";import{useUnmountEffect as ne}from"@primereact/hooks/use-unmount-effect";import{$dt as re}from"@primeuix/styled";import{absolutePosition as oe,addClass as ce,addStyle as se,focus as ue,getOffset as N,isClient as le,isTouchDevice as ie,setAttribute as ae}from"@primeuix/utils/dom";import{ZIndex as T}from"@primeuix/utils/zindex";import{EventBus as Y}from"@primeuix/utils/eventbus";var v=Y();import*as n from"react";var K={dismissable:!0,appendTo:"body",baseZIndex:0,autoZIndex:!0,breakpoints:{},closeOnEscape:!0,defaultOpen:void 0,open:void 0,onOpenChange:void 0};var Ce=_({name:"usePopover",defaultProps:K,setup:({props:z,$attrSelector:I})=>{let{dismissable:C,baseZIndex:Z=0,autoZIndex:L,closeOnEscape:k,defaultOpen:O,open:S,onOpenChange:a,breakpoints:E}=z,[f,H]=n.useState(!1),w=n.useRef(!1),u=n.useRef(null),l=n.useRef(null),d=n.useRef(null),m=n.useRef(null),s=n.useRef(null),p=n.useRef(null),r=n.useRef(null),o=n.useRef(null),$={visible:f},b=n.useCallback(()=>{var e,t;return r!=null&&r.current&&(r==null?void 0:r.current)instanceof HTMLElement?r==null?void 0:r.current:(t=(e=r==null?void 0:r.current)==null?void 0:e.elementRef.current)!=null?t:null},[r]),y=n.useCallback(()=>{var e,t;return o!=null&&o.current&&(o==null?void 0:o.current)instanceof HTMLElement?o==null?void 0:o.current:(t=(e=o==null?void 0:o.current)==null?void 0:e.elementRef.current)!=null?t:null},[o]),R=()=>{f||(H(!0),a==null||a({value:!0}))},i=()=>{f&&(H(!1),a==null||a({value:!1}),setTimeout(()=>{let e=b();e&&ue(e)},10))},B=()=>{let e=y();e&&(se(e,{position:"absolute",top:"0"}),M(),C&&g(),F(),J(),L&&T.set("overlay",e,Z+10),u.current=t=>{let c=t;e.contains(c.target)&&(w.current=!0)},v.on("overlay-click",u.current),k&&j())},A=()=>{P(),G(),h(),q(),u.current&&(v.off("overlay-click",u.current),u.current=null),i()},U=()=>{let e=y();L&&e&&T.clear(e)},M=()=>{let e=y(),t=b();if(!t||!e)return;oe(e,t,!1);let c=N(e),x=N(t),D=0;Number(c.left)<Number(x.left)&&(D=Number(x.left)-Number(c.left)),e.style.setProperty(re("popover.arrow.left").name,`${D}px`),c.top<x.top&&(ce(e,"p-popover-flipped"),e.setAttribute("data-p-popover-flipped","true"))},V=e=>{e.code==="Escape"&&k&&i()},g=()=>{!m.current&&le()&&(m.current=e=>{let t=e,c=y();f&&!(t.target===c||c!=null&&c.contains(t.target))&&i(),w.current=!1},document.addEventListener("click",m.current))},P=()=>{m.current&&(document.removeEventListener("click",m.current),m.current=null,w.current=!1)},j=()=>{p.current||(p.current=e=>{e.code==="Escape"&&k&&i()},window.document.addEventListener("keydown",p.current))},q=()=>{p.current&&(window.document.removeEventListener("keydown",p.current),p.current=null)},F=()=>{var e;l.current||(l.current=new ee((e=b())!=null?e:null,()=>{f&&i()})),l.current.bindScrollListener()},G=()=>{l.current&&l.current.unbindScrollListener()},J=()=>{d.current||(d.current=()=>{f&&!ie()&&M()},window.addEventListener("resize",d.current))},h=()=>{d.current&&(window.removeEventListener("resize",d.current),d.current=null)},Q=e=>{v.emit("overlay-click",{originalEvent:e,target:b()})},W=()=>{if(!E||!s.current){s.current=document.createElement("style"),s.current.type="text/css",ae(s.current,"nonce","nonce"),document.head.appendChild(s.current);let e="";for(let t in E)e+=`
2
- @media screen and (max-width: ${t}) {
3
- .p-popover[${I}] {
4
- width: ${E[t]} !important;
5
- }
6
- }
7
- `;s.current.innerHTML=e}},X=()=>{s.current&&(document.head.removeChild(s.current),s.current=null)};return n.useEffect(()=>{S?setTimeout(()=>{R()},0):i()},[S]),n.useEffect(()=>{O?setTimeout(()=>{R()},0):i()},[O]),te(()=>{E&&W()}),ne(()=>{C&&P(),l.current&&(l.current.destroy(),l.current=null),X(),h();let e=y();e&&L&&T.clear(e),u.current&&(v.off("overlay-click",u.current),u.current=null)}),{state:$,show:R,hide:i,onBeforeEnter:B,onAfterLeave:U,onOverlayClick:Q,onLeave:A,onContentKeydown:V,triggerRef:r,containerRef:o}}});export{K as defaultProps,Ce as usePopover};
1
+ var ce=Object.defineProperty;var U=Object.getOwnPropertySymbols;var le=Object.prototype.hasOwnProperty,se=Object.prototype.propertyIsEnumerable;var B=(r,c,s)=>c in r?ce(r,c,{enumerable:!0,configurable:!0,writable:!0,value:s}):r[c]=s,L=(r,c)=>{for(var s in c||(c={}))le.call(c,s)&&B(r,s,c[s]);if(U)for(var s of U(c))se.call(c,s)&&B(r,s,c[s]);return r};import{withHeadless as ae}from"@primereact/core/headless";import{OverlayEventBus as K}from"@primereact/core/utils";import{useFocusTrap as ue}from"@primereact/headless/focustrap";import{useControlledState as ie}from"@primereact/hooks/use-controlled-state";import{useEventListener as V}from"@primereact/hooks/use-event-listener";import{focus as T,getFirstFocusableElement as fe,toElement as d}from"@primeuix/utils/dom";import*as o from"react";var I={anchor:void 0,defaultOpen:void 0,open:void 0,trapped:!1,autoFocus:!0,closeOnEscape:!0,onOpenChange:void 0,onExitComplete:void 0};var be=ae({name:"usePopover",defaultProps:I,setup:({props:r})=>{var x;let[c,s,k]=ie({value:r.open,defaultValue:r.defaultOpen,onChange:r.onOpenChange}),[j,b]=o.useState(!!c),[q,m]=o.useState((x=r.anchor)!=null?x:null),[z,G]=o.useState(null),[h,J]=o.useState(null),[Q,W]=o.useState(null),X={open:c,rendered:j,trapped:!!r.trapped,anchorElement:q,positionerElement:z,popupElement:h,arrowElement:Q},l=o.useRef(null),u=o.useRef(null),f=o.useRef(null),E=o.useRef(null),M=o.useRef(null),H=ue({trapped:!!r.trapped&&!!h,autoFocus:!1}),g=o.useCallback(t=>{var n;let e=(n=d(t))!=null?n:null;!e||e===l.current||(l.current=e,m(e||u.current))},[]),Y=o.useCallback(t=>{var n;let e=(n=d(t))!=null?n:null;if(e!==u.current){if(u.current=e,!e){l.current&&!l.current.isConnected&&(l.current=null,m(null));return}l.current||(l.current=e,m(e))}},[]),P=o.useCallback(t=>{var n;let e=(n=d(t))!=null?n:null;e!==f.current&&(f.current=e,G(e))},[]),F=o.useCallback(t=>{var n;let e=(n=d(t))!=null?n:null;e!==E.current&&(E.current=e,H.containerRef.current=e,J(e))},[]),O=o.useCallback(t=>{var n;let e=(n=d(t))!=null?n:null;e!==M.current&&(M.current=e,W(e))},[]),R=o.useRef(!1);function p(t,e){s([t,{originalEvent:e,value:t}])}let v=t=>{var n,a,i;if(R.current)return;let e=t.relatedTarget;!e||(n=f.current)!=null&&n.contains(e)||(a=l.current)!=null&&a.contains(e)||(i=u.current)!=null&&i.contains(e)||p(!1,t)},Z=t=>{p(!c,t.nativeEvent)},_=t=>{p(!1,t.nativeEvent)},$=o.useCallback(()=>{if(r.autoFocus===!1)return;let t=E.current;if(!t)return;let e=document.activeElement,n=l.current||u.current;if(e&&(n!=null&&n.contains(e))&&n!==e)return;R.current=!0;let a=fe(t);a?T(a,{preventScroll:!0}):T(t,{preventScroll:!0}),R.current=!1},[r.autoFocus]),ee=o.useCallback(()=>{var t;(t=r.onExitComplete)==null||t.call(r)},[r.onExitComplete]),C=o.useRef(!1),[S,w]=V({type:"pointerdown",listener:t=>{let e=t.target;if(!e||!document.documentElement.contains(e))return;if(C.current){C.current=!1;return}let n=f.current,a=l.current,i=u.current;c&&n&&!n.contains(e)&&(!a||!a.contains(e))&&(!i||!i.contains(e))&&p(!1,t)}});o.useEffect(()=>{if(!c)return;let t=e=>{var A;let n=(A=e==null?void 0:e.target)!=null?A:null;if(!n)return;let a=f.current,i=l.current,D=u.current;(a&&a.contains(n)||i&&i.contains(n)||D&&D.contains(n))&&(C.current=!0)};return K.on("overlay-click",t),()=>{K.off("overlay-click",t)}},[c]);let[y,N]=V({type:"keydown",listener:t=>{t.key==="Escape"&&(p(!1,t),T(l.current||u.current,{preventScroll:!0}))}});o.useEffect(()=>{r.anchor!==void 0&&(l.current=r.anchor,m(r.anchor))},[r.anchor]),o.useEffect(()=>{c&&b(!0)},[c]),o.useEffect(()=>{c?(S(),r.closeOnEscape&&y()):(w(),N())},[c,r.closeOnEscape,S,w,y,N]),o.useEffect(()=>{let t=f.current;if(!(!c||!t||r.trapped||k))return t.addEventListener("focusout",v),()=>{t.removeEventListener("focusout",v)}},[c,r.trapped,k,v]);let te=L({"data-scope":"popover","data-part":"trigger",ref:g,onClick:Z},c?{"data-positioner-open":""}:{}),ne={"data-scope":"popover","data-part":"positioner",ref:P},re={"data-scope":"popover","data-part":"arrow",ref:O},oe=L({"data-scope":"popover","data-part":"popup",ref:F,tabIndex:-1},c?{"data-open":""}:{});return{state:X,focusTrap:H,setArrowRef:O,setAnchorRef:g,setAnchorFallbackRef:Y,setPopupRef:F,setPositionerRef:P,triggerProps:te,popupProps:oe,closeProps:{"data-scope":"popover","data-part":"close",type:"button",onClick:_},positionerProps:ne,arrowProps:re,setOpen:p,setRendered:b,onOpenComplete:$,onCloseComplete:ee}}});export{I as defaultProps,be as usePopover};
8
2
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/popover/usePopover.ts","../../../primereact/src/overlayeventbus/OverlayEventBus.ts","../../src/popover/usePopover.props.ts"],"sourcesContent":["import { withHeadless } from '@primereact/core/headless';\nimport { ConnectedOverlayScrollHandler } from '@primereact/core/utils';\nimport { useMountEffect } from '@primereact/hooks/use-mount-effect';\nimport { useUnmountEffect } from '@primereact/hooks/use-unmount-effect';\nimport { $dt } from '@primeuix/styled';\nimport { absolutePosition, addClass, addStyle, focus, getOffset, isClient, isTouchDevice, setAttribute } from '@primeuix/utils/dom';\nimport { ZIndex } from '@primeuix/utils/zindex';\nimport { OverlayEventBus } from 'primereact/overlayeventbus';\nimport * as React from 'react';\nimport { defaultProps } from './usePopover.props';\n\nexport const usePopover = withHeadless({\n name: 'usePopover',\n defaultProps,\n setup: ({ props, $attrSelector }) => {\n const { dismissable, baseZIndex = 0, autoZIndex, closeOnEscape, defaultOpen, open, onOpenChange, breakpoints } = props;\n const [visibleState, setVisibleState] = React.useState(false);\n const selfClick = React.useRef(false);\n const overlayEventListeners = React.useRef<((e: unknown) => void) | null>(null);\n const scrollHandler = React.useRef<ConnectedOverlayScrollHandler | null>(null);\n const resizeListener = React.useRef<() => void | null>(null);\n const outsideClickListener = React.useRef<((e: unknown) => void) | null>(null);\n const styleElement = React.useRef<HTMLStyleElement | null>(null);\n const documentKeydownListener = React.useRef<((e: unknown) => void) | null>(null);\n const triggerRef = React.useRef<HTMLElement | null>(null);\n const containerRef = React.useRef<HTMLElement | null>(null);\n\n const state = {\n visible: visibleState\n };\n\n const getTrigger = React.useCallback(() => {\n if (triggerRef?.current && triggerRef?.current instanceof HTMLElement) {\n return triggerRef?.current;\n }\n\n // @ts-expect-error - Temporary fix for elementRef property access\n return triggerRef?.current?.elementRef.current ?? null;\n }, [triggerRef]);\n\n const getContainer = React.useCallback(() => {\n if (containerRef?.current && containerRef?.current instanceof HTMLElement) {\n return containerRef?.current;\n }\n\n // @ts-expect-error - Temporary fix for elementRef property access\n return containerRef?.current?.elementRef.current ?? null;\n }, [containerRef]);\n\n const show = () => {\n if (visibleState) return;\n\n setVisibleState(true);\n onOpenChange?.({\n value: true\n });\n };\n\n const hide = () => {\n if (!visibleState) return;\n\n setVisibleState(false);\n onOpenChange?.({\n value: false\n });\n\n setTimeout(() => {\n const trigger = getTrigger();\n\n if (trigger) {\n focus(trigger);\n }\n }, 10);\n };\n\n const onBeforeEnter = () => {\n const container = getContainer();\n\n if (!container) return;\n\n addStyle(container, { position: 'absolute', top: '0' });\n alignOverlay();\n\n if (dismissable) {\n bindOutsideClickListener();\n }\n\n bindScrollListener();\n bindResizeListener();\n\n if (autoZIndex) {\n // Fix\n ZIndex.set('overlay', container, baseZIndex + 10);\n }\n\n overlayEventListeners.current = (e: unknown) => {\n const event = e as Event;\n\n if (container.contains(event.target as Node)) {\n selfClick.current = true;\n }\n };\n\n OverlayEventBus.on('overlay-click', overlayEventListeners.current);\n\n if (closeOnEscape) {\n bindDocumentKeyDownListener();\n }\n };\n\n const onLeave = () => {\n unbindOutsideClickListener();\n unbindScrollListener();\n unbindResizeListener();\n unbindDocumentKeyDownListener();\n\n if (overlayEventListeners.current) {\n OverlayEventBus.off('overlay-click', overlayEventListeners.current);\n overlayEventListeners.current = null;\n }\n\n hide();\n };\n\n const onAfterLeave = () => {\n const container = getContainer();\n\n if (autoZIndex && container) {\n ZIndex.clear(container);\n }\n };\n\n const alignOverlay = () => {\n const container = getContainer();\n\n const trigger = getTrigger();\n\n if (!trigger || !container) return;\n\n absolutePosition(container, trigger, false);\n\n const containerOffset = getOffset(container);\n const targetOffset = getOffset(trigger);\n let arrowLeft = 0;\n\n if (Number(containerOffset.left) < Number(targetOffset.left)) {\n arrowLeft = Number(targetOffset.left) - Number(containerOffset.left);\n }\n\n container.style.setProperty($dt('popover.arrow.left').name, `${arrowLeft}px`);\n\n if (containerOffset.top < targetOffset.top) {\n addClass(container, 'p-popover-flipped');\n container.setAttribute('data-p-popover-flipped', 'true');\n }\n };\n\n const onContentKeydown = (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (event.code === 'Escape' && closeOnEscape) {\n hide();\n }\n };\n\n const bindOutsideClickListener = () => {\n if (!outsideClickListener.current && isClient()) {\n outsideClickListener.current = (event: unknown) => {\n const clickEvent = event as MouseEvent;\n\n const container = getContainer();\n\n if (visibleState && !(clickEvent.target === container || container?.contains(clickEvent.target as Node))) {\n hide();\n }\n\n selfClick.current = false;\n };\n\n document.addEventListener('click', outsideClickListener.current);\n }\n };\n\n const unbindOutsideClickListener = () => {\n if (outsideClickListener.current) {\n document.removeEventListener('click', outsideClickListener.current);\n outsideClickListener.current = null;\n selfClick.current = false;\n }\n };\n\n const bindDocumentKeyDownListener = () => {\n if (!documentKeydownListener.current) {\n documentKeydownListener.current = (event: unknown) => {\n const keyboardEvent = event as KeyboardEvent;\n\n if (keyboardEvent.code === 'Escape' && closeOnEscape) {\n hide();\n }\n };\n\n window.document.addEventListener('keydown', documentKeydownListener.current);\n }\n };\n\n const unbindDocumentKeyDownListener = () => {\n if (documentKeydownListener.current) {\n window.document.removeEventListener('keydown', documentKeydownListener.current);\n documentKeydownListener.current = null;\n }\n };\n\n const bindScrollListener = () => {\n if (!scrollHandler.current) {\n scrollHandler.current = new ConnectedOverlayScrollHandler(getTrigger() ?? null, () => {\n if (visibleState) {\n hide();\n }\n });\n }\n\n scrollHandler.current.bindScrollListener();\n };\n\n const unbindScrollListener = () => {\n if (scrollHandler.current) {\n scrollHandler.current.unbindScrollListener();\n }\n };\n\n const bindResizeListener = () => {\n if (!resizeListener.current) {\n resizeListener.current = () => {\n if (visibleState && !isTouchDevice()) {\n alignOverlay();\n }\n };\n\n window.addEventListener('resize', resizeListener.current);\n }\n };\n\n const unbindResizeListener = () => {\n if (resizeListener.current) {\n window.removeEventListener('resize', resizeListener.current);\n resizeListener.current = null;\n }\n };\n\n const onOverlayClick = (event: Event) => {\n OverlayEventBus.emit('overlay-click', {\n originalEvent: event,\n target: getTrigger()\n });\n };\n\n const createStyle = () => {\n if (!breakpoints || !styleElement.current) {\n styleElement.current = document.createElement('style');\n styleElement.current.type = 'text/css';\n setAttribute(styleElement.current, 'nonce', 'nonce');\n document.head.appendChild(styleElement.current);\n\n let innerHTML = '';\n\n for (const breakpoint in breakpoints) {\n innerHTML += `\n @media screen and (max-width: ${breakpoint}) {\n .p-popover[${$attrSelector}] {\n width: ${breakpoints[breakpoint]} !important;\n }\n }\n `;\n }\n\n styleElement.current.innerHTML = innerHTML;\n }\n };\n\n const destroyStyle = () => {\n if (styleElement.current) {\n document.head.removeChild(styleElement.current);\n styleElement.current = null;\n }\n };\n\n React.useEffect(() => {\n if (open) {\n setTimeout(() => {\n show();\n }, 0);\n } else {\n hide();\n }\n }, [open]);\n\n React.useEffect(() => {\n if (defaultOpen) {\n setTimeout(() => {\n show();\n }, 0);\n } else {\n hide();\n }\n }, [defaultOpen]);\n\n useMountEffect(() => {\n if (breakpoints) {\n createStyle();\n }\n });\n\n useUnmountEffect(() => {\n if (dismissable) {\n unbindOutsideClickListener();\n }\n\n if (scrollHandler.current) {\n scrollHandler.current.destroy();\n scrollHandler.current = null;\n }\n\n destroyStyle();\n unbindResizeListener();\n\n const container = getContainer();\n\n if (container && autoZIndex) {\n ZIndex.clear(container);\n }\n\n if (overlayEventListeners.current) {\n OverlayEventBus.off('overlay-click', overlayEventListeners.current);\n overlayEventListeners.current = null;\n }\n });\n\n return {\n state,\n show,\n hide,\n onBeforeEnter,\n onAfterLeave,\n onOverlayClick,\n onLeave,\n onContentKeydown,\n triggerRef,\n containerRef\n };\n }\n});\n","import { EventBus } from '@primeuix/utils/eventbus';\n\nexport default EventBus();\n","import type { usePopoverProps } from '@primereact/types/shared/popover';\n\nexport const defaultProps: usePopoverProps = {\n dismissable: true,\n appendTo: 'body',\n baseZIndex: 0,\n autoZIndex: true,\n breakpoints: {},\n closeOnEscape: true,\n defaultOpen: undefined,\n open: undefined,\n onOpenChange: undefined\n};\n"],"mappings":"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","names":["withHeadless","ConnectedOverlayScrollHandler","useMountEffect","useUnmountEffect","$dt","absolutePosition","addClass","addStyle","focus","getOffset","isClient","isTouchDevice","setAttribute","ZIndex","EventBus","OverlayEventBus_default","React","defaultProps","usePopover","withHeadless","defaultProps","props","$attrSelector","dismissable","baseZIndex","autoZIndex","closeOnEscape","defaultOpen","open","onOpenChange","breakpoints","visibleState","setVisibleState","selfClick","overlayEventListeners","scrollHandler","resizeListener","outsideClickListener","styleElement","documentKeydownListener","triggerRef","containerRef","state","getTrigger","_a","_b","getContainer","show","hide","trigger","focus","onBeforeEnter","container","addStyle","alignOverlay","bindOutsideClickListener","bindScrollListener","bindResizeListener","ZIndex","e","event","OverlayEventBus_default","bindDocumentKeyDownListener","onLeave","unbindOutsideClickListener","unbindScrollListener","unbindResizeListener","unbindDocumentKeyDownListener","onAfterLeave","absolutePosition","containerOffset","getOffset","targetOffset","arrowLeft","$dt","addClass","onContentKeydown","isClient","clickEvent","ConnectedOverlayScrollHandler","isTouchDevice","onOverlayClick","createStyle","setAttribute","innerHTML","breakpoint","destroyStyle","useMountEffect","useUnmountEffect"]}
1
+ {"version":3,"sources":["../../src/popover/usePopover.ts","../../src/popover/usePopover.props.ts"],"sourcesContent":["import { withHeadless } from '@primereact/core/headless';\nimport { OverlayEventBus } from '@primereact/core/utils';\nimport { useFocusTrap } from '@primereact/headless/focustrap';\nimport { useControlledState } from '@primereact/hooks/use-controlled-state';\nimport { useEventListener } from '@primereact/hooks/use-event-listener';\nimport { focus, getFirstFocusableElement, toElement } from '@primeuix/utils/dom';\nimport * as React from 'react';\nimport { defaultProps } from './usePopover.props';\n\nexport const usePopover = withHeadless({\n name: 'usePopover',\n defaultProps,\n setup: ({ props }) => {\n const [openState, setOpenState, isControlled] = useControlledState({\n value: props.open,\n defaultValue: props.defaultOpen,\n onChange: props.onOpenChange\n });\n const [rendered, setRendered] = React.useState<boolean>(!!openState);\n\n // elements\n const [anchorElement, setAnchorElement] = React.useState<HTMLElement | null>(props.anchor ?? null);\n const [positionerElement, setPositionerElement] = React.useState<HTMLDivElement | null>(null);\n const [popupElement, setPopupElement] = React.useState<HTMLElement | null>(null);\n const [arrowElement, setArrowElement] = React.useState<HTMLDivElement | null>(null);\n\n const state = {\n open: openState,\n rendered,\n trapped: !!props.trapped,\n anchorElement,\n positionerElement,\n popupElement,\n arrowElement\n };\n\n const anchorRef = React.useRef<HTMLElement | null>(null);\n const anchorFallbackRef = React.useRef<HTMLElement | null>(null);\n const positionerRef = React.useRef<HTMLDivElement | null>(null);\n const popupRef = React.useRef<HTMLElement | null>(null);\n const arrowRef = React.useRef<HTMLDivElement | null>(null);\n\n const focusTrap = useFocusTrap({\n trapped: !!props.trapped && !!popupElement,\n autoFocus: false\n });\n\n const setAnchorRef = React.useCallback((node: HTMLElement | null) => {\n const element = toElement(node) ?? null;\n\n if (!element || element === anchorRef.current) return;\n\n anchorRef.current = element;\n setAnchorElement(element || anchorFallbackRef.current);\n }, []);\n\n const setAnchorFallbackRef = React.useCallback((node: HTMLElement | null) => {\n const element = toElement(node) ?? null;\n\n if (element === anchorFallbackRef.current) return;\n\n anchorFallbackRef.current = element;\n\n if (!element) {\n if (anchorRef.current && !anchorRef.current.isConnected) {\n anchorRef.current = null;\n setAnchorElement(null);\n }\n\n return;\n }\n\n if (!anchorRef.current) {\n anchorRef.current = element;\n setAnchorElement(element);\n }\n }, []);\n\n const setPositionerRef = React.useCallback((node: HTMLDivElement | null) => {\n const element = (toElement(node) ?? null) as HTMLDivElement | null;\n\n if (element === positionerRef.current) return;\n\n positionerRef.current = element;\n setPositionerElement(element);\n }, []);\n\n const setPopupRef = React.useCallback((node: HTMLElement | null) => {\n const element = toElement(node) ?? null;\n\n if (element === popupRef.current) return;\n\n popupRef.current = element;\n focusTrap.containerRef.current = element;\n setPopupElement(element);\n }, []);\n\n const setArrowRef = React.useCallback((node: HTMLDivElement | null) => {\n const element = (toElement(node) ?? null) as HTMLDivElement | null;\n\n if (element === arrowRef.current) return;\n\n arrowRef.current = element;\n setArrowElement(element);\n }, []);\n\n const isAutoFocusingRef = React.useRef(false);\n\n function setOpen(open: boolean, originalEvent?: Event) {\n setOpenState([\n open,\n {\n originalEvent,\n value: open\n }\n ]);\n }\n\n const handleFocusOut = (event: FocusEvent) => {\n if (isAutoFocusingRef.current) return;\n\n const relatedTarget = event.relatedTarget as Node | null;\n\n if (!relatedTarget || positionerRef.current?.contains(relatedTarget) || anchorRef.current?.contains(relatedTarget) || anchorFallbackRef.current?.contains(relatedTarget)) return;\n\n setOpen(false, event);\n };\n\n const onTriggerClick = (event: React.MouseEvent) => {\n setOpen(!openState, event.nativeEvent);\n };\n\n const onCloseClick = (event: React.MouseEvent) => {\n setOpen(false, event.nativeEvent);\n };\n\n const onOpenComplete = React.useCallback(() => {\n if (props.autoFocus === false) return;\n\n const popupNode = popupRef.current;\n\n if (!popupNode) return;\n\n const activeElement = document.activeElement as HTMLElement | null;\n const anchorNode = anchorRef.current || anchorFallbackRef.current;\n\n if (activeElement && anchorNode?.contains(activeElement) && anchorNode !== activeElement) {\n return;\n }\n\n isAutoFocusingRef.current = true;\n\n const firstFocusable = getFirstFocusableElement(popupNode);\n\n if (firstFocusable) {\n focus(firstFocusable as HTMLElement, { preventScroll: true });\n } else {\n focus(popupNode, { preventScroll: true });\n }\n\n isAutoFocusingRef.current = false;\n }, [props.autoFocus]);\n\n const onCloseComplete = React.useCallback(() => {\n props.onExitComplete?.();\n }, [props.onExitComplete]);\n\n const overlaySelfClickRef = React.useRef(false);\n\n const [bindOutsideClickListener, unbindOutsideClickListener] = useEventListener({\n type: 'pointerdown',\n listener: (event: Event) => {\n const target = event.target as Node;\n\n if (!target || !document.documentElement.contains(target)) return;\n\n if (overlaySelfClickRef.current) {\n overlaySelfClickRef.current = false;\n\n return;\n }\n\n const positionerNode = positionerRef.current;\n const anchorNode = anchorRef.current;\n const anchorFallbackNode = anchorFallbackRef.current;\n\n if (openState && positionerNode && !positionerNode.contains(target) && (!anchorNode || !anchorNode.contains(target)) && (!anchorFallbackNode || !anchorFallbackNode.contains(target))) {\n setOpen(false, event);\n }\n }\n });\n\n React.useEffect(() => {\n if (!openState) return;\n\n const listener = (payload: unknown) => {\n const emittedTarget = (payload as { target?: Node | null } | undefined)?.target ?? null;\n\n if (!emittedTarget) return;\n\n const positionerNode = positionerRef.current;\n const anchorNode = anchorRef.current;\n const anchorFallbackNode = anchorFallbackRef.current;\n\n if ((positionerNode && positionerNode.contains(emittedTarget)) || (anchorNode && anchorNode.contains(emittedTarget)) || (anchorFallbackNode && anchorFallbackNode.contains(emittedTarget))) {\n overlaySelfClickRef.current = true;\n }\n };\n\n OverlayEventBus.on('overlay-click', listener);\n\n return () => {\n OverlayEventBus.off('overlay-click', listener);\n };\n }, [openState]);\n\n const [bindEscapeListener, unbindEscapeListener] = useEventListener({\n type: 'keydown',\n listener: (event: Event) => {\n if ((event as KeyboardEvent).key === 'Escape') {\n setOpen(false, event);\n focus((anchorRef.current || anchorFallbackRef.current) as HTMLElement, { preventScroll: true });\n }\n }\n });\n\n // effects\n React.useEffect(() => {\n if (props.anchor !== undefined) {\n anchorRef.current = props.anchor;\n setAnchorElement(props.anchor);\n }\n }, [props.anchor]);\n\n React.useEffect(() => {\n if (openState) {\n setRendered(true);\n }\n }, [openState]);\n\n React.useEffect(() => {\n if (openState) {\n bindOutsideClickListener();\n\n if (props.closeOnEscape) {\n bindEscapeListener();\n }\n } else {\n unbindOutsideClickListener();\n unbindEscapeListener();\n }\n }, [openState, props.closeOnEscape, bindOutsideClickListener, unbindOutsideClickListener, bindEscapeListener, unbindEscapeListener]);\n\n React.useEffect(() => {\n const positionerNode = positionerRef.current;\n\n if (!openState || !positionerNode || props.trapped || isControlled) return;\n\n positionerNode.addEventListener('focusout', handleFocusOut);\n\n return () => {\n positionerNode.removeEventListener('focusout', handleFocusOut);\n };\n }, [openState, props.trapped, isControlled, handleFocusOut]);\n\n // prop getters\n const triggerProps = {\n 'data-scope': 'popover',\n 'data-part': 'trigger',\n ref: setAnchorRef,\n onClick: onTriggerClick,\n ...(openState ? { 'data-positioner-open': '' } : {})\n };\n\n const positionerProps = {\n 'data-scope': 'popover',\n 'data-part': 'positioner',\n ref: setPositionerRef\n };\n\n const arrowProps = {\n 'data-scope': 'popover',\n 'data-part': 'arrow',\n ref: setArrowRef\n };\n\n const popupProps = {\n 'data-scope': 'popover',\n 'data-part': 'popup',\n ref: setPopupRef,\n tabIndex: -1,\n ...(openState ? { 'data-open': '' } : {})\n };\n\n const closeProps = {\n 'data-scope': 'popover',\n 'data-part': 'close',\n type: 'button' as const,\n onClick: onCloseClick\n };\n\n return {\n state,\n focusTrap,\n // refs\n setArrowRef,\n setAnchorRef,\n setAnchorFallbackRef,\n setPopupRef,\n setPositionerRef,\n // prop getters\n triggerProps,\n popupProps,\n closeProps,\n positionerProps,\n arrowProps,\n // methods\n setOpen,\n setRendered,\n onOpenComplete,\n onCloseComplete\n };\n }\n});\n","import type { UsePopoverProps } from '@primereact/types/headless/popover';\n\nexport const defaultProps: UsePopoverProps = {\n anchor: undefined,\n defaultOpen: undefined,\n open: undefined,\n trapped: false,\n autoFocus: true,\n closeOnEscape: true,\n onOpenChange: undefined,\n onExitComplete: undefined\n};\n"],"mappings":"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","names":["withHeadless","OverlayEventBus","useFocusTrap","useControlledState","useEventListener","focus","getFirstFocusableElement","toElement","React","defaultProps","usePopover","withHeadless","defaultProps","props","_a","openState","setOpenState","isControlled","useControlledState","rendered","setRendered","anchorElement","setAnchorElement","positionerElement","setPositionerElement","popupElement","setPopupElement","arrowElement","setArrowElement","state","anchorRef","anchorFallbackRef","positionerRef","popupRef","arrowRef","focusTrap","useFocusTrap","setAnchorRef","node","element","toElement","setAnchorFallbackRef","setPositionerRef","setPopupRef","setArrowRef","isAutoFocusingRef","setOpen","open","originalEvent","handleFocusOut","event","_b","_c","relatedTarget","onTriggerClick","onCloseClick","onOpenComplete","popupNode","activeElement","anchorNode","firstFocusable","getFirstFocusableElement","focus","onCloseComplete","overlaySelfClickRef","bindOutsideClickListener","unbindOutsideClickListener","useEventListener","target","positionerNode","anchorFallbackNode","listener","payload","emittedTarget","OverlayEventBus","bindEscapeListener","unbindEscapeListener","triggerProps","__spreadValues","positionerProps","arrowProps","popupProps"]}
@@ -1,15 +1,68 @@
1
1
  import * as React from 'react';
2
- export declare const usePopover: (inProps?: unknown) => import("@primereact/types/core").HeadlessInstance<import("@primereact/types/shared/popover").usePopoverProps, unknown, {
2
+ export declare const usePopover: (inProps?: unknown) => import("@primereact/types/core").HeadlessInstance<import("@primereact/types/headless/popover").UsePopoverProps, unknown, {
3
3
  state: {
4
- visible: boolean;
5
- };
6
- show: () => void;
7
- hide: () => void;
8
- onBeforeEnter: () => void;
9
- onAfterLeave: () => void;
10
- onOverlayClick: (event: Event) => void;
11
- onLeave: () => void;
12
- onContentKeydown: (event: React.KeyboardEvent<HTMLDivElement>) => void;
13
- triggerRef: React.RefObject<HTMLElement | null>;
14
- containerRef: React.RefObject<HTMLElement | null>;
4
+ open: boolean | undefined;
5
+ rendered: boolean;
6
+ trapped: boolean;
7
+ anchorElement: HTMLElement | null;
8
+ positionerElement: HTMLDivElement | null;
9
+ popupElement: HTMLElement | null;
10
+ arrowElement: HTMLDivElement | null;
11
+ };
12
+ focusTrap: import("@primereact/types/core").HeadlessInstance<import("@primereact/headless/focustrap").UseFocusTrapProps, unknown, {
13
+ containerRef: React.RefObject<HTMLElement | null>;
14
+ firstHiddenElementRef: React.RefObject<HTMLSpanElement | null>;
15
+ lastHiddenElementRef: React.RefObject<HTMLSpanElement | null>;
16
+ firstHiddenProps: {
17
+ role: "presentation";
18
+ 'aria-hidden': true;
19
+ 'data-focus-guard': string;
20
+ onFocus: (event: React.FocusEvent<HTMLSpanElement>) => void;
21
+ };
22
+ lastHiddenProps: {
23
+ role: "presentation";
24
+ 'aria-hidden': true;
25
+ 'data-focus-guard': string;
26
+ onFocus: (event: React.FocusEvent<HTMLSpanElement>) => void;
27
+ };
28
+ }>;
29
+ setArrowRef: (node: HTMLDivElement | null) => void;
30
+ setAnchorRef: (node: HTMLElement | null) => void;
31
+ setAnchorFallbackRef: (node: HTMLElement | null) => void;
32
+ setPopupRef: (node: HTMLElement | null) => void;
33
+ setPositionerRef: (node: HTMLDivElement | null) => void;
34
+ triggerProps: {
35
+ 'data-positioner-open'?: string | undefined;
36
+ 'data-scope': string;
37
+ 'data-part': string;
38
+ ref: (node: HTMLElement | null) => void;
39
+ onClick: (event: React.MouseEvent) => void;
40
+ };
41
+ popupProps: {
42
+ 'data-open'?: string | undefined;
43
+ 'data-scope': string;
44
+ 'data-part': string;
45
+ ref: (node: HTMLElement | null) => void;
46
+ tabIndex: number;
47
+ };
48
+ closeProps: {
49
+ 'data-scope': string;
50
+ 'data-part': string;
51
+ type: "button";
52
+ onClick: (event: React.MouseEvent) => void;
53
+ };
54
+ positionerProps: {
55
+ 'data-scope': string;
56
+ 'data-part': string;
57
+ ref: (node: HTMLDivElement | null) => void;
58
+ };
59
+ arrowProps: {
60
+ 'data-scope': string;
61
+ 'data-part': string;
62
+ ref: (node: HTMLDivElement | null) => void;
63
+ };
64
+ setOpen: (open: boolean, originalEvent?: Event) => void;
65
+ setRendered: React.Dispatch<React.SetStateAction<boolean>>;
66
+ onOpenComplete: () => void;
67
+ onCloseComplete: () => void;
15
68
  }>;
@@ -1,2 +1,2 @@
1
- import type { usePopoverProps } from '@primereact/types/shared/popover';
2
- export declare const defaultProps: usePopoverProps;
1
+ import type { UsePopoverProps } from '@primereact/types/headless/popover';
2
+ export declare const defaultProps: UsePopoverProps;
package/portal/index.d.ts CHANGED
@@ -1,2 +1,3 @@
1
1
  export * from './usePortal';
2
2
  export * from './usePortal.props';
3
+ export type * from '@primereact/types/headless/portal';
package/portal/index.mjs CHANGED
@@ -1,2 +1,2 @@
1
- import{withHeadless as f}from"@primereact/core/headless";import{useMountEffect as d,useUnmountEffect as i,useUpdateEffect as m}from"@primereact/hooks";import{isClient as n}from"@primeuix/utils";import*as u from"react";var o={visible:!1,onMounted:void 0,onUnmounted:void 0};var P=f({name:"usePortal",defaultProps:o,setup({props:e}){let[t,r]=u.useState(e.visible&&n());return d(()=>{n()&&!t&&(r(!0),e.onMounted&&e.onMounted())}),m(()=>{e.onMounted&&e.onMounted()},[t]),i(()=>{e.onUnmounted&&e.onUnmounted()}),{mountedState:t}}});export{o as defaultProps,P as usePortal};
1
+ import{withHeadless as t}from"@primereact/core/headless";import{useMounted as r}from"@primereact/hooks";var o={onMounted:void 0,onUnmounted:void 0};var a=t({name:"usePortal",defaultProps:o,setup({props:e}){return{state:{mounted:r({onMounted:e.onMounted,onUnmounted:e.onUnmounted})}}}});export{o as defaultProps,a as usePortal};
2
2
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/portal/usePortal.ts","../../src/portal/usePortal.props.ts"],"sourcesContent":["import { withHeadless } from '@primereact/core/headless';\nimport { useMountEffect, useUnmountEffect, useUpdateEffect } from '@primereact/hooks';\nimport { isClient } from '@primeuix/utils';\nimport * as React from 'react';\nimport { defaultProps } from './usePortal.props';\n\nexport const usePortal = withHeadless({\n name: 'usePortal',\n defaultProps,\n setup({ props }) {\n const [mountedState, setMountedState] = React.useState<boolean | undefined>(props.visible && isClient());\n\n useMountEffect(() => {\n if (isClient() && !mountedState) {\n setMountedState(true);\n\n if (props.onMounted) {\n props.onMounted();\n }\n }\n });\n\n useUpdateEffect(() => {\n if (props.onMounted) {\n props.onMounted();\n }\n }, [mountedState]);\n\n useUnmountEffect(() => {\n if (props.onUnmounted) {\n props.onUnmounted();\n }\n });\n\n return {\n mountedState\n };\n }\n});\n","import type { usePortalProps } from '@primereact/types/shared/portal';\n\nexport const defaultProps: usePortalProps = {\n visible: false,\n onMounted: undefined,\n onUnmounted: undefined\n};\n"],"mappings":"AAAA,OAAS,gBAAAA,MAAoB,4BAC7B,OAAS,kBAAAC,EAAgB,oBAAAC,EAAkB,mBAAAC,MAAuB,oBAClE,OAAS,YAAAC,MAAgB,kBACzB,UAAYC,MAAW,QCDhB,IAAMC,EAA+B,CACxC,QAAS,GACT,UAAW,OACX,YAAa,MACjB,EDAO,IAAMC,EAAYC,EAAa,CAClC,KAAM,YACN,aAAAC,EACA,MAAM,CAAE,MAAAC,CAAM,EAAG,CACb,GAAM,CAACC,EAAcC,CAAe,EAAU,WAA8BF,EAAM,SAAWG,EAAS,CAAC,EAEvG,OAAAC,EAAe,IAAM,CACbD,EAAS,GAAK,CAACF,IACfC,EAAgB,EAAI,EAEhBF,EAAM,WACNA,EAAM,UAAU,EAG5B,CAAC,EAEDK,EAAgB,IAAM,CACdL,EAAM,WACNA,EAAM,UAAU,CAExB,EAAG,CAACC,CAAY,CAAC,EAEjBK,EAAiB,IAAM,CACfN,EAAM,aACNA,EAAM,YAAY,CAE1B,CAAC,EAEM,CACH,aAAAC,CACJ,CACJ,CACJ,CAAC","names":["withHeadless","useMountEffect","useUnmountEffect","useUpdateEffect","isClient","React","defaultProps","usePortal","withHeadless","defaultProps","props","mountedState","setMountedState","isClient","useMountEffect","useUpdateEffect","useUnmountEffect"]}
1
+ {"version":3,"sources":["../../src/portal/usePortal.ts","../../src/portal/usePortal.props.ts"],"sourcesContent":["import { withHeadless } from '@primereact/core/headless';\nimport { useMounted } from '@primereact/hooks';\nimport { defaultProps } from './usePortal.props';\n\nexport const usePortal = withHeadless({\n name: 'usePortal',\n defaultProps,\n setup({ props }) {\n const mounted = useMounted({\n onMounted: props.onMounted,\n onUnmounted: props.onUnmounted\n });\n\n const state = {\n mounted\n };\n\n return {\n state\n };\n }\n});\n","import type { UsePortalProps } from '@primereact/types/headless/portal';\n\nexport const defaultProps: UsePortalProps = {\n onMounted: undefined,\n onUnmounted: undefined\n};\n"],"mappings":"AAAA,OAAS,gBAAAA,MAAoB,4BAC7B,OAAS,cAAAC,MAAkB,oBCCpB,IAAMC,EAA+B,CACxC,UAAW,OACX,YAAa,MACjB,EDDO,IAAMC,EAAYC,EAAa,CAClC,KAAM,YACN,aAAAC,EACA,MAAM,CAAE,MAAAC,CAAM,EAAG,CAUb,MAAO,CACH,MALU,CACV,QANYC,EAAW,CACvB,UAAWD,EAAM,UACjB,YAAaA,EAAM,WACvB,CAAC,CAID,CAIA,CACJ,CACJ,CAAC","names":["withHeadless","useMounted","defaultProps","usePortal","withHeadless","defaultProps","props","useMounted"]}
@@ -1,3 +1,5 @@
1
- export declare const usePortal: (inProps?: unknown) => import("@primereact/types/core").HeadlessInstance<import("@primereact/types/shared/portal").usePortalProps, unknown, {
2
- mountedState: boolean | undefined;
1
+ export declare const usePortal: (inProps?: unknown) => import("@primereact/types/core").HeadlessInstance<import("@primereact/types/headless/portal").UsePortalProps, unknown, {
2
+ state: {
3
+ mounted: boolean;
4
+ };
3
5
  }>;
@@ -1,2 +1,2 @@
1
- import type { usePortalProps } from '@primereact/types/shared/portal';
2
- export declare const defaultProps: usePortalProps;
1
+ import type { UsePortalProps } from '@primereact/types/headless/portal';
2
+ export declare const defaultProps: UsePortalProps;
@@ -0,0 +1,3 @@
1
+ export * from './usePositioner';
2
+ export * from './usePositioner.props';
3
+ export type * from '@primereact/types/headless/positioner';
@@ -0,0 +1,2 @@
1
+ var bt=Object.defineProperty,wt=Object.defineProperties;var St=Object.getOwnPropertyDescriptors;var ot=Object.getOwnPropertySymbols;var Pt=Object.prototype.hasOwnProperty,Tt=Object.prototype.propertyIsEnumerable;var rt=(e,t,n)=>t in e?bt(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,nt=(e,t)=>{for(var n in t||(t={}))Pt.call(t,n)&&rt(e,n,t[n]);if(ot)for(var n of ot(t))Tt.call(t,n)&&rt(e,n,t[n]);return e},it=(e,t)=>wt(e,St(t));import{withHeadless as $t}from"@primereact/core/headless";import{getScrollableParents as Mt}from"@primeuix/utils/dom";import{ZIndex as gt}from"@primeuix/utils/zindex";import*as u from"react";function st(e,t){let n=e.left+e.width/2,i=e.top+e.height/2,m=t.left+t.width/2,l=t.top+t.height/2,f=m-n,s=l-i,g={top:e.top-t.bottom,bottom:t.top-e.bottom,left:e.left-t.right,right:t.left-e.right},S=Object.entries(g).filter(([,v])=>v>=0),F=S.length>0?S.sort((v,X)=>v[1]-X[1])[0][0]:Math.abs(f)>Math.abs(s)?f>0?"right":"left":s>0?"bottom":"top",L=4,w="center";return F==="top"||F==="bottom"?Math.abs(t.left-e.left)<=L?w="start":Math.abs(t.right-e.right)<=L&&(w="end"):Math.abs(t.top-e.top)<=L?w="start":Math.abs(t.bottom-e.bottom)<=L&&(w="end"),{side:F,align:w}}function at(e,t,n,i,m,l,f){let s={left:"",right:"",top:"",bottom:"",marginTop:"",marginRight:"",marginBottom:"",marginLeft:"",positionTryFallbacks:""};s.positionArea=e!=null?e:"";let g={top:"marginBottom",bottom:"marginTop",left:"marginRight",right:"marginLeft"};return n&&(s[g[e]]=`${n}px`),t!=="center"&&(e==="top"||e==="bottom"?t==="start"?s.left=`calc(anchor(start) + ${i}px)`:s.right=`calc(anchor(end) - ${i}px)`:t==="start"?s.top=`calc(anchor(start) + ${i}px)`:s.bottom=`calc(anchor(end) - ${i}px)`),(m||l)&&(s.positionTryFallbacks="flip-block, flip-inline, flip-block flip-inline"),f?s.positionVisibility="anchors-visible":s.positionVisibility="always",s}import{isCssSupported as Ct}from"@primeuix/utils";var U=null;function I(){return U===null&&(U=Ct("anchor-name","--a")),U}function H(e,t,n){return Math.min(Math.max(e,t),n)}function lt(e){if(e){let t=e.getBoundingClientRect();return{x:t.left,y:t.top,width:t.width,height:t.height}}return{x:0,y:0,width:window.innerWidth,height:window.innerHeight}}function ct(e,t){let n=e.offsetWidth||t.width,i=e.offsetHeight||t.height;if(!n||!i)return t;let m=t.width/n||1,l=t.height/i||1,f=t.left-(n*m-n)/2,s=t.top-(i*l-i)/2;return{left:f,top:s,width:n,height:i}}function _(e,t,n,i,m,l,f){let s=l/2;return f?e==="top"?`${t}px calc(${m}px + ${s}px)`:e==="bottom"?`${t}px calc(0px - ${s}px)`:e==="left"?`calc(${i}px + ${s}px) ${n}px`:`calc(0px - ${s}px) ${n}px`:`${t}px ${n}px`}var vt={top:"bottom",bottom:"top",left:"right",right:"left"};function ft(e,t,n,i,m,l,f){let s=0,g=0,S=i==="top"||i==="bottom";return i==="top"?g=e.y-n-l:i==="bottom"?g=e.y+e.height+l:i==="left"?s=e.x-t-l:s=e.x+e.width+l,S?m==="start"?s=e.x+f:m==="end"?s=e.x+e.width-t-f:s=e.x+(e.width-t)/2:m==="start"?g=e.y+f:m==="end"?g=e.y+e.height-n-f:g=e.y+(e.height-n)/2,{x:s,y:g}}function pt(e,t,n,i,m,l){let f=vt[i],s={top:e.y-l.y-m,bottom:l.y+l.height-(e.y+e.height)-m,left:e.x-l.x-m,right:l.x+l.width-(e.x+e.width)-m},g=i==="top"||i==="bottom"?n:t;return s[i]>=g?i:s[f]>=g||s[f]>s[i]?f:i}var At=5;function mt(e,t,n,i,m,l,f=At){return m==="top"||m==="bottom"?e=H(e,l.x+f,l.x+l.width-n-f):t=H(t,l.y+f,l.y+l.height-i-f),{x:e,y:t}}function dt(e,t,n,i,m,l,f){let s=l/2,g=Math.max(8,s),S=f==="top"||f==="bottom",F=e.x+e.width/2,L=e.y+e.height/2,w,v;return S?(w=H(F-t,g,i-g),v=f==="bottom"?0:m):(w=f==="right"?0:i,v=H(L-n,g,m-g)),{arrowX:w,arrowY:v,arrowLeft:w-s,arrowTop:v-s}}function ut(e,t){return e.x+e.width<=t.x||e.y+e.height<=t.y||e.x>=t.x+t.width||e.y>=t.y+t.height}function ht(e,t,n,i,m,l){if(l==="top"||l==="bottom"){if(Math.abs(e-n.x)<=4)return"start";if(Math.abs(e+i-(n.x+n.width))<=4)return"end"}else{if(Math.abs(t-n.y)<=4)return"start";if(Math.abs(t+m-(n.y+n.height))<=4)return"end"}return"center"}var yt={side:"bottom",align:"center",sideOffset:void 0,alignOffset:0,flip:!0,shift:!0,hideWhenDetached:!1,strategy:"fixed",boundary:void 0,anchor:void 0,content:void 0,arrow:void 0,autoZIndex:!0,baseZIndex:0,onPlacementChange:void 0};var Nt=$t({name:"usePositioner",defaultProps:yt,setup({id:e,props:t,$primereact:n}){var tt,et;let[i,m]=u.useState(),[l,f]=u.useState(),s=`--positioner-trigger-${e}`,g=`--positioner-content-${e}`,S=u.useRef(t);S.current=t;let F=u.useRef(i);F.current=i;let L=u.useCallback(()=>{var x;let r=S.current,a=r.arrow;if(!a)return 0;let o=window.getComputedStyle(a),p=(x=F.current)!=null?x:r.side,c=p==="top"||p==="bottom"?parseFloat(o.height||"0")||a.offsetHeight:parseFloat(o.width||"0")||a.offsetWidth,d=parseFloat(o.borderTopWidth||"0");return Math.ceil(c/2+d)},[]),w=u.useCallback(()=>{let r=S.current;return r.sideOffset!=null?r.sideOffset:r.arrow?L():0},[L]),v=u.useRef(t.side),X=u.useRef(t.align);(v.current!==t.side||X.current!==t.align)&&(v.current=t.side,X.current=t.align,m(void 0),f(void 0));let G=u.useCallback(()=>{var d;let r=S.current,a=(d=F.current)!=null?d:r.side,o=l!=null?l:r.align,p=a==="top"||a==="bottom",h={top:"bottom",bottom:"top",left:"right",right:"left"}[a],c;return p?c=o==="start"?"left":o==="end"?"right":"center":c=o==="start"?"top":o==="end"?"bottom":"center",`${c} ${h}`},[l]),J=u.useCallback(()=>{if(!I())return{};let r=S.current;return at(r.side,r.align,w(),r.alignOffset,r.flip,r.shift,r.hideWhenDetached)},[w]),K=u.useCallback(()=>{let r=S.current,a=r.anchor,o=r.content;if(!a||!o)return;let p=a.getBoundingClientRect(),h=o.getBoundingClientRect(),c=ct(o,h),{side:d,align:x}=st(p,h);o.dataset.side!==d&&(o.dataset.side=d),o.dataset.align!==x&&(o.dataset.align=x),r.arrow&&(r.arrow.dataset.side!==d&&(r.arrow.dataset.side=d),r.arrow.dataset.align!==x&&(r.arrow.dataset.align=x)),m(C=>C===d?C:d),f(C=>C===x?C:x);let $=w(),O=window.innerWidth,T=window.innerHeight,j=d==="top"||d==="bottom",b=j?d==="bottom"?T-(p.bottom+$):p.top-$:T,M=j?O:d==="right"?O-(p.right+$):p.left-$;o.style.setProperty("--px-available-height",`${Math.max(0,b)}px`),o.style.setProperty("--px-available-width",`${Math.max(0,M)}px`);let A=p.left+p.width/2,R=p.top+p.height/2,V=r.arrow;if(V){let C=window.getComputedStyle(V),k=parseFloat(C.width||"0")||parseFloat(C.height||"0")||0,q=Math.max(V.offsetWidth,V.offsetHeight,k),B=q/2,P=Math.max(8,B),D=H(A-c.left,P,c.width-P),y=H(R-c.top,P,c.height-P),W=D-B,z=y-B;o.style.setProperty("--px-placer-arrow-x",`${D}px`),o.style.setProperty("--px-placer-arrow-y",`${y}px`),o.style.setProperty("--px-placer-arrow-left",`${W}px`),o.style.setProperty("--px-placer-arrow-top",`${z}px`);let E=_(d,D,y,c.width,c.height,q,!0);o.style.setProperty("--px-transform-origin",E)}else{let C=A-c.left,k=R-c.top;o.style.removeProperty("--px-placer-arrow-x"),o.style.removeProperty("--px-placer-arrow-y"),o.style.removeProperty("--px-placer-arrow-left"),o.style.removeProperty("--px-placer-arrow-top"),o.style.setProperty("--px-transform-origin",`${C}px ${k}px`)}},[w]),Q=u.useCallback(()=>{var D;let r=S.current,a=r.anchor,o=r.content;if(!a||!o)return;let p=lt(r.boundary),h=a.getBoundingClientRect(),c={x:h.left,y:h.top,width:h.width,height:h.height},d=o.offsetWidth,x=o.offsetHeight,$=r.side,O=r.align,T=w(),j=(D=r.alignOffset)!=null?D:0;if(r.hideWhenDetached&&ut(c,p)){o.style.visibility="hidden";return}else o.style.visibility="";let b=$;r.flip&&(b=pt(c,d,x,$,T,p));let{x:M,y:A}=ft(c,d,x,b,O,T,j),R=O;if(r.shift){let y=mt(M,A,d,x,b,p);M=y.x,A=y.y,R=ht(M,A,c,d,x,b)}if(r.strategy==="absolute"){let y=o.offsetParent||document.documentElement,W=y.getBoundingClientRect();M=M-W.left+y.scrollLeft,A=A-W.top+y.scrollTop}let V=window.innerWidth,C=window.innerHeight,k=b==="top"||b==="bottom",q=k?b==="bottom"?C-(c.y+c.height+T):c.y-T:C,B=k?V:b==="right"?V-(c.x+c.width+T):c.x-T;o.style.setProperty("--px-available-height",`${Math.max(0,q)}px`),o.style.setProperty("--px-available-width",`${Math.max(0,B)}px`),o.style.top=`${A}px`,o.style.left=`${M}px`,o.dataset.side!==b&&(o.dataset.side=b),o.dataset.align!==R&&(o.dataset.align=R);let P=r.arrow;if(P&&(P.dataset.side!==b&&(P.dataset.side=b),P.dataset.align!==R&&(P.dataset.align=R)),m(y=>y===b?y:b),f(y=>y===R?y:R),P){let y=window.getComputedStyle(P),W=parseFloat(y.width||"0")||parseFloat(y.height||"0")||0,z=Math.max(P.offsetWidth,P.offsetHeight,W),E=dt(c,M,A,d,x,z,b);o.style.setProperty("--px-placer-arrow-x",`${E.arrowX}px`),o.style.setProperty("--px-placer-arrow-y",`${E.arrowY}px`),o.style.setProperty("--px-placer-arrow-left",`${E.arrowLeft}px`),o.style.setProperty("--px-placer-arrow-top",`${E.arrowTop}px`);let xt=_(b,E.arrowX,E.arrowY,d,x,z,!0);o.style.setProperty("--px-transform-origin",xt)}else{let y=c.x+c.width/2,W=c.y+c.height/2,z=y-M,E=W-A;o.style.removeProperty("--px-placer-arrow-x"),o.style.removeProperty("--px-placer-arrow-y"),o.style.removeProperty("--px-placer-arrow-left"),o.style.removeProperty("--px-placer-arrow-top"),o.style.setProperty("--px-transform-origin",`${z}px ${E}px`)}},[w]),N=u.useCallback(()=>{let r=S.current,a=r.anchor,o=r.content;if(!a||!o)return;let p=a.getBoundingClientRect().width;o.style.setProperty("--px-positioner-anchor-width",`${p}px`),I()?K():Q()},[K,Q]),Y=u.useRef(N);Y.current=N,u.useEffect(()=>{var p;let r=t.anchor,a=t.content;if(!r||!a)return;let o=(p=t.strategy)!=null?p:"fixed";return I()?(Object.assign(a.style,it(nt({position:o,positionAnchor:s,anchorName:g},J()),{"--px-transform-origin":G()})),Object.assign(r.style,{anchorName:s})):Object.assign(a.style,{position:o,top:"0",left:"0",margin:"0"}),()=>{a.style.position="",a.style.top="",a.style.left="",a.style.right="",a.style.bottom="",a.style.margin="",a.style.visibility="",["--px-transform-origin","--px-positioner-anchor-width","--px-available-height","--px-available-width","--px-placer-arrow-x","--px-placer-arrow-y","--px-placer-arrow-left","--px-placer-arrow-top"].forEach(h=>a.style.removeProperty(h)),I()&&(["position-anchor","anchor-name","position-area","position-try-fallbacks","position-visibility"].forEach(h=>a.style.removeProperty(h)),a.style.marginTop="",a.style.marginRight="",a.style.marginBottom="",a.style.marginLeft="",r.style.removeProperty("anchor-name"))}},[t.anchor,t.content,t.strategy,t.side,t.align,t.sideOffset,t.alignOffset,t.flip,t.shift,t.hideWhenDetached]),u.useEffect(()=>{var r,a,o,p;if(t.content)return t.autoZIndex&&gt.set("overlay",t.content,((r=t.baseZIndex)!=null?r:0)+((p=(o=(a=n.config)==null?void 0:a.zIndex)==null?void 0:o.overlay)!=null?p:1e3)),()=>{t.autoZIndex&&t.content&&gt.clear(t.content)}},[t.content,t.autoZIndex,t.baseZIndex,(et=(tt=n.config)==null?void 0:tt.zIndex)==null?void 0:et.overlay]),u.useLayoutEffect(()=>{if(!t.anchor||!t.content)return;let r=0,a=0,o=!1,p=!1,h=()=>{o||p||(o=!0,r=requestAnimationFrame(()=>{o=!1,p||Y.current()}))},c=new ResizeObserver(h);t.anchor instanceof Element&&c.observe(t.anchor),t.content instanceof Element&&c.observe(t.content),window.addEventListener("resize",h,{passive:!0});let d=null;if(I())window.addEventListener("scroll",h,{capture:!0,passive:!0});else{d=Mt(t.anchor);for(let T of d)T.addEventListener("scroll",h,{passive:!0})}let x=I()?5:3,$=0,O=()=>{p||(Y.current(),$+=1,$<x&&(a=requestAnimationFrame(O)))};return a=requestAnimationFrame(O),()=>{if(p=!0,window.removeEventListener("resize",h),I())window.removeEventListener("scroll",h,{capture:!0});else if(d)for(let T of d)T.removeEventListener("scroll",h);c.disconnect(),cancelAnimationFrame(r),cancelAnimationFrame(a)}},[t.anchor,t.content]),u.useEffect(()=>{!t.anchor||!t.content||Y.current()},[t.anchor,t.content,t.arrow,t.side,t.align,t.sideOffset,t.alignOffset,t.flip,t.shift,t.hideWhenDetached,t.boundary,t.strategy]);let Z=u.useRef(t.onPlacementChange);return Z.current=t.onPlacementChange,u.useEffect(()=>{var r;i!==void 0&&l!==void 0&&((r=Z.current)==null||r.call(Z,{side:i,align:l}))},[i,l]),{state:{actualSide:i,actualAlign:l},getTransformOrigin:G,computePosition:J,updatePlacement:N}}});export{yt as defaultProps,Nt as usePositioner};
2
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/positioner/usePositioner.ts","../../src/positioner/usePositioner.anchor.ts","../../src/positioner/usePositioner.utils.ts","../../src/positioner/usePositioner.fallback.ts","../../src/positioner/usePositioner.props.ts"],"sourcesContent":["import { withHeadless } from '@primereact/core/headless';\nimport { AlignType, SideType } from '@primereact/types/headless/positioner';\nimport { getScrollableParents } from '@primeuix/utils/dom';\nimport { ZIndex } from '@primeuix/utils/zindex';\nimport * as React from 'react';\nimport { computeCSSPosition, getPlacementFromRects } from './usePositioner.anchor';\nimport { computeArrowPosition, computeCoordsFromPlacement, deriveAlignFromCoords, getFlippedSide, isAnchorDetached, shiftCoords } from './usePositioner.fallback';\nimport { defaultProps } from './usePositioner.props';\nimport { Rect, clamp, computeTransformOrigin, getBoundaryRect, getLayoutRect, isCssAnchorSupported } from './usePositioner.utils';\n\nexport const usePositioner = withHeadless({\n name: 'usePositioner',\n defaultProps,\n setup({ id, props, $primereact }) {\n const [actualSide, setActualSide] = React.useState<SideType>();\n const [actualAlign, setActualAlign] = React.useState<AlignType>();\n\n const anchorName = `--positioner-trigger-${id}`;\n const contentAnchor = `--positioner-content-${id}`;\n\n // ── Stable refs for props accessed in updatePlacement ──\n\n const propsRef = React.useRef(props);\n\n propsRef.current = props;\n\n const actualSideRef = React.useRef(actualSide);\n\n actualSideRef.current = actualSide;\n\n // ── Helper: getArrowOffset ──\n\n const getArrowOffset = React.useCallback((): number => {\n const p = propsRef.current;\n const arrow = p.arrow;\n\n if (!arrow) return 0;\n\n const computed = window.getComputedStyle(arrow);\n const side = actualSideRef.current ?? p.side;\n const isVertical = side === 'top' || side === 'bottom';\n const size = isVertical ? parseFloat(computed.height || '0') || arrow.offsetHeight : parseFloat(computed.width || '0') || arrow.offsetWidth;\n const borderTop = parseFloat(computed.borderTopWidth || '0');\n\n return Math.ceil(size / 2 + borderTop);\n }, []);\n\n const resolveSideOffset = React.useCallback((): number => {\n const p = propsRef.current;\n\n if (p.sideOffset != null) return p.sideOffset;\n\n return p.arrow ? getArrowOffset() : 0;\n }, [getArrowOffset]);\n\n // ── Reset actual placement when desired placement changes ──\n\n const prevSideRef = React.useRef(props.side);\n const prevAlignRef = React.useRef(props.align);\n\n if (prevSideRef.current !== props.side || prevAlignRef.current !== props.align) {\n prevSideRef.current = props.side;\n prevAlignRef.current = props.align;\n setActualSide(undefined);\n setActualAlign(undefined);\n }\n\n // ── CSS Anchor Mode: getTransformOrigin ──\n\n const getTransformOrigin = React.useCallback((): string => {\n const p = propsRef.current;\n const originSide = actualSideRef.current ?? p.side;\n const originAlign = actualAlign ?? p.align;\n const isVertical = originSide === 'top' || originSide === 'bottom';\n\n const primary = {\n top: 'bottom',\n bottom: 'top',\n left: 'right',\n right: 'left'\n }[originSide as SideType];\n\n let secondary: string;\n\n if (isVertical) {\n secondary = originAlign === 'start' ? 'left' : originAlign === 'end' ? 'right' : 'center';\n } else {\n secondary = originAlign === 'start' ? 'top' : originAlign === 'end' ? 'bottom' : 'center';\n }\n\n return `${secondary} ${primary}`;\n }, [actualAlign]);\n\n // ── CSS Anchor Mode: computePosition ──\n\n const computePosition = React.useCallback((): React.CSSProperties => {\n if (!isCssAnchorSupported()) {\n return {};\n }\n\n const p = propsRef.current;\n\n return computeCSSPosition(p.side as SideType, p.align as AlignType, resolveSideOffset(), p.alignOffset, p.flip, p.shift, p.hideWhenDetached) as React.CSSProperties;\n }, [resolveSideOffset]);\n\n // ── CSS Anchor Mode: updatePlacement ──\n\n const updatePlacementCSS = React.useCallback(() => {\n const p = propsRef.current;\n const trigger = p.anchor;\n const content = p.content;\n\n if (!trigger || !content) return;\n\n const triggerRect = trigger.getBoundingClientRect();\n const contentRect = content.getBoundingClientRect();\n const positionerLayout = getLayoutRect(content, contentRect);\n const { side: nextSide, align: nextAlign } = getPlacementFromRects(triggerRect, contentRect);\n\n if (content.dataset.side !== nextSide) content.dataset.side = nextSide;\n\n if (content.dataset.align !== nextAlign) content.dataset.align = nextAlign;\n\n if (p.arrow) {\n if (p.arrow.dataset.side !== nextSide) p.arrow.dataset.side = nextSide;\n\n if (p.arrow.dataset.align !== nextAlign) p.arrow.dataset.align = nextAlign;\n }\n\n setActualSide((prev) => (prev === nextSide ? prev : nextSide));\n setActualAlign((prev) => (prev === nextAlign ? prev : nextAlign));\n\n // Available space\n const sOffset = resolveSideOffset();\n const viewportWidth = window.innerWidth;\n const viewportHeight = window.innerHeight;\n const isVertical = nextSide === 'top' || nextSide === 'bottom';\n const availableHeight = isVertical ? (nextSide === 'bottom' ? viewportHeight - (triggerRect.bottom + sOffset) : triggerRect.top - sOffset) : viewportHeight;\n const availableWidth = isVertical ? viewportWidth : nextSide === 'right' ? viewportWidth - (triggerRect.right + sOffset) : triggerRect.left - sOffset;\n\n content.style.setProperty('--px-available-height', `${Math.max(0, availableHeight)}px`);\n content.style.setProperty('--px-available-width', `${Math.max(0, availableWidth)}px`);\n\n const triggerCenterX = triggerRect.left + triggerRect.width / 2;\n const triggerCenterY = triggerRect.top + triggerRect.height / 2;\n const arrow = p.arrow;\n\n if (arrow) {\n const computed = window.getComputedStyle(arrow);\n const cssArrowSize = parseFloat(computed.width || '0') || parseFloat(computed.height || '0') || 0;\n const arrowSize = Math.max(arrow.offsetWidth, arrow.offsetHeight, cssArrowSize);\n const arrowHalf = arrowSize / 2;\n const arrowInset = Math.max(8, arrowHalf);\n const arrowX = clamp(triggerCenterX - positionerLayout.left, arrowInset, positionerLayout.width - arrowInset);\n const arrowY = clamp(triggerCenterY - positionerLayout.top, arrowInset, positionerLayout.height - arrowInset);\n const arrowLeft = arrowX - arrowHalf;\n const arrowTop = arrowY - arrowHalf;\n\n content.style.setProperty('--px-placer-arrow-x', `${arrowX}px`);\n content.style.setProperty('--px-placer-arrow-y', `${arrowY}px`);\n content.style.setProperty('--px-placer-arrow-left', `${arrowLeft}px`);\n content.style.setProperty('--px-placer-arrow-top', `${arrowTop}px`);\n\n const transformOrigin = computeTransformOrigin(nextSide, arrowX, arrowY, positionerLayout.width, positionerLayout.height, arrowSize, true);\n\n content.style.setProperty('--px-transform-origin', transformOrigin);\n } else {\n const originX = triggerCenterX - positionerLayout.left;\n const originY = triggerCenterY - positionerLayout.top;\n\n content.style.removeProperty('--px-placer-arrow-x');\n content.style.removeProperty('--px-placer-arrow-y');\n content.style.removeProperty('--px-placer-arrow-left');\n content.style.removeProperty('--px-placer-arrow-top');\n content.style.setProperty('--px-transform-origin', `${originX}px ${originY}px`);\n }\n }, [resolveSideOffset]);\n\n // ── JS Fallback Mode: updatePlacement ──\n\n const updatePlacementJS = React.useCallback(() => {\n const p = propsRef.current;\n const anchor = p.anchor;\n const content = p.content;\n\n if (!anchor || !content) return;\n\n const boundary = getBoundaryRect(p.boundary);\n const anchorDomRect = anchor.getBoundingClientRect();\n const anchorRect: Rect = { x: anchorDomRect.left, y: anchorDomRect.top, width: anchorDomRect.width, height: anchorDomRect.height };\n const contentWidth = content.offsetWidth;\n const contentHeight = content.offsetHeight;\n const side = p.side as SideType;\n const align = p.align as AlignType;\n const sideOffset = resolveSideOffset();\n const alignOffset = p.alignOffset ?? 0;\n\n // hideWhenDetached\n if (p.hideWhenDetached && isAnchorDetached(anchorRect, boundary)) {\n content.style.visibility = 'hidden';\n\n return;\n } else {\n content.style.visibility = '';\n }\n\n // Flip\n let resolvedSide = side;\n\n if (p.flip) {\n resolvedSide = getFlippedSide(anchorRect, contentWidth, contentHeight, side, sideOffset, boundary);\n }\n\n // Compute coords\n let { x, y } = computeCoordsFromPlacement(anchorRect, contentWidth, contentHeight, resolvedSide, align, sideOffset, alignOffset);\n\n // Shift\n let resolvedAlign = align;\n\n if (p.shift) {\n const shifted = shiftCoords(x, y, contentWidth, contentHeight, resolvedSide, boundary);\n\n x = shifted.x;\n y = shifted.y;\n resolvedAlign = deriveAlignFromCoords(x, y, anchorRect, contentWidth, contentHeight, resolvedSide);\n }\n\n // Convert to offsetParent-relative coords for absolute strategy\n if (p.strategy === 'absolute') {\n const offsetParent = (content.offsetParent as HTMLElement) || document.documentElement;\n const parentRect = offsetParent.getBoundingClientRect();\n\n x = x - parentRect.left + offsetParent.scrollLeft;\n y = y - parentRect.top + offsetParent.scrollTop;\n }\n\n // Available space\n const viewportWidth = window.innerWidth;\n const viewportHeight = window.innerHeight;\n const isVertical = resolvedSide === 'top' || resolvedSide === 'bottom';\n const availableHeight = isVertical ? (resolvedSide === 'bottom' ? viewportHeight - (anchorRect.y + anchorRect.height + sideOffset) : anchorRect.y - sideOffset) : viewportHeight;\n const availableWidth = isVertical ? viewportWidth : resolvedSide === 'right' ? viewportWidth - (anchorRect.x + anchorRect.width + sideOffset) : anchorRect.x - sideOffset;\n\n content.style.setProperty('--px-available-height', `${Math.max(0, availableHeight)}px`);\n content.style.setProperty('--px-available-width', `${Math.max(0, availableWidth)}px`);\n\n // Apply position\n content.style.top = `${y}px`;\n content.style.left = `${x}px`;\n\n // Update data attributes\n if (content.dataset.side !== resolvedSide) content.dataset.side = resolvedSide;\n\n if (content.dataset.align !== resolvedAlign) content.dataset.align = resolvedAlign;\n\n const arrow = p.arrow;\n\n if (arrow) {\n if (arrow.dataset.side !== resolvedSide) arrow.dataset.side = resolvedSide;\n\n if (arrow.dataset.align !== resolvedAlign) arrow.dataset.align = resolvedAlign;\n }\n\n setActualSide((prev) => (prev === resolvedSide ? prev : resolvedSide));\n setActualAlign((prev) => (prev === resolvedAlign ? prev : resolvedAlign));\n\n if (arrow) {\n const computed = window.getComputedStyle(arrow);\n const cssArrowSize = parseFloat(computed.width || '0') || parseFloat(computed.height || '0') || 0;\n const arrowSize = Math.max(arrow.offsetWidth, arrow.offsetHeight, cssArrowSize);\n const arrowPos = computeArrowPosition(anchorRect, x, y, contentWidth, contentHeight, arrowSize, resolvedSide);\n\n content.style.setProperty('--px-placer-arrow-x', `${arrowPos.arrowX}px`);\n content.style.setProperty('--px-placer-arrow-y', `${arrowPos.arrowY}px`);\n content.style.setProperty('--px-placer-arrow-left', `${arrowPos.arrowLeft}px`);\n content.style.setProperty('--px-placer-arrow-top', `${arrowPos.arrowTop}px`);\n\n const transformOrigin = computeTransformOrigin(resolvedSide, arrowPos.arrowX, arrowPos.arrowY, contentWidth, contentHeight, arrowSize, true);\n\n content.style.setProperty('--px-transform-origin', transformOrigin);\n } else {\n const anchorCenterX = anchorRect.x + anchorRect.width / 2;\n const anchorCenterY = anchorRect.y + anchorRect.height / 2;\n const originX = anchorCenterX - x;\n const originY = anchorCenterY - y;\n\n content.style.removeProperty('--px-placer-arrow-x');\n content.style.removeProperty('--px-placer-arrow-y');\n content.style.removeProperty('--px-placer-arrow-left');\n content.style.removeProperty('--px-placer-arrow-top');\n content.style.setProperty('--px-transform-origin', `${originX}px ${originY}px`);\n }\n }, [resolveSideOffset]);\n\n // ── Unified updatePlacement (stable - reads from ref) ──\n\n const updatePlacement = React.useCallback(() => {\n const p = propsRef.current;\n const anchor = p.anchor;\n const content = p.content;\n\n if (!anchor || !content) return;\n\n const anchorWidth = anchor.getBoundingClientRect().width;\n\n content.style.setProperty('--px-positioner-anchor-width', `${anchorWidth}px`);\n\n if (isCssAnchorSupported()) {\n updatePlacementCSS();\n } else {\n updatePlacementJS();\n }\n }, [updatePlacementCSS, updatePlacementJS]);\n\n // Keep a stable ref for updatePlacement so listener effects don't re-run\n const updatePlacementRef = React.useRef(updatePlacement);\n\n updatePlacementRef.current = updatePlacement;\n\n // ── Effect: Initial style setup (branched by mode) ──\n\n React.useEffect(() => {\n const anchor = props.anchor;\n const content = props.content;\n\n if (!anchor || !content) return;\n\n const position = props.strategy ?? 'fixed';\n\n if (isCssAnchorSupported()) {\n Object.assign(content.style, {\n position,\n positionAnchor: anchorName,\n anchorName: contentAnchor,\n ...(computePosition() as React.CSSProperties | undefined),\n ['--px-transform-origin' as keyof React.CSSProperties]: getTransformOrigin()\n });\n\n Object.assign(anchor.style, {\n anchorName\n });\n } else {\n Object.assign(content.style, {\n position,\n top: '0',\n left: '0',\n margin: '0'\n });\n }\n\n return () => {\n // Reset positioning styles\n content.style.position = '';\n content.style.top = '';\n content.style.left = '';\n content.style.right = '';\n content.style.bottom = '';\n content.style.margin = '';\n content.style.visibility = '';\n\n // Clear CSS custom properties\n ['--px-transform-origin', '--px-positioner-anchor-width', '--px-available-height', '--px-available-width', '--px-placer-arrow-x', '--px-placer-arrow-y', '--px-placer-arrow-left', '--px-placer-arrow-top'].forEach((prop) =>\n content.style.removeProperty(prop)\n );\n\n // Clear CSS Anchor properties\n if (isCssAnchorSupported()) {\n ['position-anchor', 'anchor-name', 'position-area', 'position-try-fallbacks', 'position-visibility'].forEach((prop) => content.style.removeProperty(prop));\n content.style.marginTop = '';\n content.style.marginRight = '';\n content.style.marginBottom = '';\n content.style.marginLeft = '';\n anchor.style.removeProperty('anchor-name');\n }\n };\n }, [props.anchor, props.content, props.strategy, props.side, props.align, props.sideOffset, props.alignOffset, props.flip, props.shift, props.hideWhenDetached]);\n\n // ── Effect: ZIndex management ──\n\n React.useEffect(() => {\n if (!props.content) return;\n\n if (props.autoZIndex) {\n ZIndex.set('overlay', props.content, (props.baseZIndex ?? 0) + ($primereact.config?.zIndex?.overlay ?? 1000));\n }\n\n return () => {\n if (props.autoZIndex && props.content) {\n ZIndex.clear(props.content);\n }\n };\n }, [props.content, props.autoZIndex, props.baseZIndex, $primereact.config?.zIndex?.overlay]);\n\n // ── Effect: Scroll/Resize listeners (stable - uses ref) ──\n\n React.useLayoutEffect(() => {\n if (!props.anchor || !props.content) return;\n\n let scheduleRafId = 0;\n let tickRafId = 0;\n let rafScheduled = false;\n let disposed = false;\n\n const scheduleUpdate = () => {\n if (rafScheduled || disposed) return;\n\n rafScheduled = true;\n scheduleRafId = requestAnimationFrame(() => {\n rafScheduled = false;\n\n if (!disposed) {\n updatePlacementRef.current();\n }\n });\n };\n\n // ResizeObserver for both anchor and content\n const resizeObserver = new ResizeObserver(scheduleUpdate);\n\n if (props.anchor instanceof Element) resizeObserver.observe(props.anchor);\n\n if (props.content instanceof Element) resizeObserver.observe(props.content);\n\n // Window resize (passive)\n window.addEventListener('resize', scheduleUpdate, { passive: true });\n\n // Scroll listeners\n let scrollParents: Element[] | null = null;\n\n if (isCssAnchorSupported()) {\n // CSS mode: capture-phase scroll on window\n window.addEventListener('scroll', scheduleUpdate, { capture: true, passive: true });\n } else {\n // JS mode: targeted scroll parents only\n scrollParents = getScrollableParents(props.anchor);\n\n for (const parent of scrollParents) {\n parent.addEventListener('scroll', scheduleUpdate, { passive: true });\n }\n }\n\n // Initial placement frames\n const maxFrames = isCssAnchorSupported() ? 5 : 3;\n let frame = 0;\n\n const tick = () => {\n if (disposed) return;\n\n updatePlacementRef.current();\n frame += 1;\n\n if (frame < maxFrames) {\n tickRafId = requestAnimationFrame(tick);\n }\n };\n\n tickRafId = requestAnimationFrame(tick);\n\n return () => {\n disposed = true;\n\n window.removeEventListener('resize', scheduleUpdate);\n\n if (isCssAnchorSupported()) {\n window.removeEventListener('scroll', scheduleUpdate, { capture: true } as EventListenerOptions);\n } else if (scrollParents) {\n for (const parent of scrollParents) {\n parent.removeEventListener('scroll', scheduleUpdate);\n }\n }\n\n resizeObserver.disconnect();\n cancelAnimationFrame(scheduleRafId);\n cancelAnimationFrame(tickRafId);\n };\n }, [props.anchor, props.content]);\n\n // ── Effect: trigger update on prop changes ──\n\n React.useEffect(() => {\n if (!props.anchor || !props.content) return;\n\n updatePlacementRef.current();\n }, [props.anchor, props.content, props.arrow, props.side, props.align, props.sideOffset, props.alignOffset, props.flip, props.shift, props.hideWhenDetached, props.boundary, props.strategy]);\n\n // ── Effect: onPlacementChange callback ──\n\n const onPlacementChangeRef = React.useRef(props.onPlacementChange);\n\n onPlacementChangeRef.current = props.onPlacementChange;\n\n React.useEffect(() => {\n if (actualSide !== undefined && actualAlign !== undefined) {\n onPlacementChangeRef.current?.({ side: actualSide, align: actualAlign });\n }\n }, [actualSide, actualAlign]);\n\n const state = {\n actualSide,\n actualAlign\n };\n\n return {\n state,\n getTransformOrigin,\n computePosition,\n updatePlacement\n };\n }\n});\n","import { AlignType, SideType } from '@primereact/types/headless/positioner';\n\n// ── CSS Anchor Mode: Detect actual placement from rendered rects ──\n\nexport function getPlacementFromRects(triggerRect: DOMRect, contentRect: DOMRect): { side: SideType; align: AlignType } {\n const triggerCenterX = triggerRect.left + triggerRect.width / 2;\n const triggerCenterY = triggerRect.top + triggerRect.height / 2;\n const contentCenterX = contentRect.left + contentRect.width / 2;\n const contentCenterY = contentRect.top + contentRect.height / 2;\n const dx = contentCenterX - triggerCenterX;\n const dy = contentCenterY - triggerCenterY;\n\n const separations: Record<SideType, number> = {\n top: triggerRect.top - contentRect.bottom,\n bottom: contentRect.top - triggerRect.bottom,\n left: triggerRect.left - contentRect.right,\n right: contentRect.left - triggerRect.right\n };\n\n const separated = (Object.entries(separations) as Array<[SideType, number]>).filter(([, value]) => value >= 0);\n const side: SideType = separated.length > 0 ? separated.sort((a, b) => a[1] - b[1])[0][0] : Math.abs(dx) > Math.abs(dy) ? (dx > 0 ? 'right' : 'left') : dy > 0 ? 'bottom' : 'top';\n const epsilon = 4;\n let align: AlignType = 'center';\n\n if (side === 'top' || side === 'bottom') {\n if (Math.abs(contentRect.left - triggerRect.left) <= epsilon) align = 'start';\n else if (Math.abs(contentRect.right - triggerRect.right) <= epsilon) align = 'end';\n } else {\n if (Math.abs(contentRect.top - triggerRect.top) <= epsilon) align = 'start';\n else if (Math.abs(contentRect.bottom - triggerRect.bottom) <= epsilon) align = 'end';\n }\n\n return { side, align };\n}\n\n// ── CSS Anchor Mode: Generate CSS Anchor positioning styles ──\n\nexport type CSSPositionStyle = Record<string, string | undefined>;\n\nexport function computeCSSPosition(side?: SideType, align?: AlignType, sideOffset?: number, alignOffset?: number, flip?: boolean, shift?: boolean, hideWhenDetached?: boolean): CSSPositionStyle {\n const style: Record<string, string> = {\n left: '',\n right: '',\n top: '',\n bottom: '',\n marginTop: '',\n marginRight: '',\n marginBottom: '',\n marginLeft: '',\n positionTryFallbacks: ''\n };\n\n style.positionArea = side ?? '';\n\n const sideMarginMap: Record<SideType, string> = {\n top: 'marginBottom',\n bottom: 'marginTop',\n left: 'marginRight',\n right: 'marginLeft'\n };\n\n if (sideOffset) {\n style[sideMarginMap[side as SideType]] = `${sideOffset}px`;\n }\n\n if (align !== 'center') {\n const isVertical = side === 'top' || side === 'bottom';\n\n if (isVertical) {\n if (align === 'start') {\n style.left = `calc(anchor(start) + ${alignOffset}px)`;\n } else {\n style.right = `calc(anchor(end) - ${alignOffset}px)`;\n }\n } else {\n if (align === 'start') {\n style.top = `calc(anchor(start) + ${alignOffset}px)`;\n } else {\n style.bottom = `calc(anchor(end) - ${alignOffset}px)`;\n }\n }\n }\n\n if (flip || shift) {\n style.positionTryFallbacks = 'flip-block, flip-inline, flip-block flip-inline';\n }\n\n if (hideWhenDetached) {\n style.positionVisibility = 'anchors-visible';\n } else {\n style.positionVisibility = 'always';\n }\n\n return style;\n}\n","import { SideType } from '@primereact/types/headless/positioner';\nimport { isCssSupported } from '@primeuix/utils';\n\n// ── Feature Detection (lazy, cached — SSR-safe) ──\n\nlet _cssAnchorSupported: boolean | null = null;\n\nexport function isCssAnchorSupported(): boolean {\n if (_cssAnchorSupported === null) {\n _cssAnchorSupported = isCssSupported('anchor-name', '--a');\n }\n\n return _cssAnchorSupported;\n}\n\n// ── Shared Types ──\n\nexport interface Rect {\n x: number;\n y: number;\n width: number;\n height: number;\n}\n\nexport interface ComputedCoords {\n x: number;\n y: number;\n}\n\n// ── Shared Utilities ──\n\nexport function clamp(value: number, min: number, max: number) {\n return Math.min(Math.max(value, min), max);\n}\n\nexport function getBoundaryRect(boundary?: HTMLElement | null): Rect {\n if (boundary) {\n const rect = boundary.getBoundingClientRect();\n\n return { x: rect.left, y: rect.top, width: rect.width, height: rect.height };\n }\n\n return { x: 0, y: 0, width: window.innerWidth, height: window.innerHeight };\n}\n\nexport function getLayoutRect(element: HTMLElement, rect: DOMRect) {\n const layoutWidth = element.offsetWidth || rect.width;\n const layoutHeight = element.offsetHeight || rect.height;\n\n if (!layoutWidth || !layoutHeight) {\n return rect;\n }\n\n const scaleX = rect.width / layoutWidth || 1;\n const scaleY = rect.height / layoutHeight || 1;\n const left = rect.left - (layoutWidth * scaleX - layoutWidth) / 2;\n const top = rect.top - (layoutHeight * scaleY - layoutHeight) / 2;\n\n return {\n left,\n top,\n width: layoutWidth,\n height: layoutHeight\n };\n}\n\n// ── Transform Origin (shared by both modes) ──\n\nexport function computeTransformOrigin(side: SideType, arrowX: number, arrowY: number, contentWidth: number, contentHeight: number, arrowSize: number, hasArrow: boolean): string {\n const arrowTip = arrowSize / 2;\n\n if (hasArrow) {\n if (side === 'top') {\n return `${arrowX}px calc(${contentHeight}px + ${arrowTip}px)`;\n }\n\n if (side === 'bottom') {\n return `${arrowX}px calc(0px - ${arrowTip}px)`;\n }\n\n if (side === 'left') {\n return `calc(${contentWidth}px + ${arrowTip}px) ${arrowY}px`;\n }\n\n return `calc(0px - ${arrowTip}px) ${arrowY}px`;\n }\n\n return `${arrowX}px ${arrowY}px`;\n}\n","import { AlignType, SideType } from '@primereact/types/headless/positioner';\nimport { ComputedCoords, Rect, clamp } from './usePositioner.utils';\n\n// ── Opposite Side Map ──\n\nconst OPPOSITE_SIDE: Record<SideType, SideType> = {\n top: 'bottom',\n bottom: 'top',\n left: 'right',\n right: 'left'\n};\n\n// ── Compute Initial Coords ──\n\nexport function computeCoordsFromPlacement(anchorRect: Rect, contentWidth: number, contentHeight: number, side: SideType, align: AlignType, sideOffset: number, alignOffset: number): ComputedCoords {\n let x = 0;\n let y = 0;\n const isVertical = side === 'top' || side === 'bottom';\n\n // Primary axis (side)\n if (side === 'top') {\n y = anchorRect.y - contentHeight - sideOffset;\n } else if (side === 'bottom') {\n y = anchorRect.y + anchorRect.height + sideOffset;\n } else if (side === 'left') {\n x = anchorRect.x - contentWidth - sideOffset;\n } else {\n x = anchorRect.x + anchorRect.width + sideOffset;\n }\n\n // Cross axis (align)\n if (isVertical) {\n if (align === 'start') {\n x = anchorRect.x + alignOffset;\n } else if (align === 'end') {\n x = anchorRect.x + anchorRect.width - contentWidth - alignOffset;\n } else {\n x = anchorRect.x + (anchorRect.width - contentWidth) / 2;\n }\n } else {\n if (align === 'start') {\n y = anchorRect.y + alignOffset;\n } else if (align === 'end') {\n y = anchorRect.y + anchorRect.height - contentHeight - alignOffset;\n } else {\n y = anchorRect.y + (anchorRect.height - contentHeight) / 2;\n }\n }\n\n return { x, y };\n}\n\n// ── Flip Side ──\n\nexport function getFlippedSide(anchorRect: Rect, contentWidth: number, contentHeight: number, side: SideType, sideOffset: number, boundary: Rect): SideType {\n const opposite = OPPOSITE_SIDE[side];\n\n const spaceMap: Record<SideType, number> = {\n top: anchorRect.y - boundary.y - sideOffset,\n bottom: boundary.y + boundary.height - (anchorRect.y + anchorRect.height) - sideOffset,\n left: anchorRect.x - boundary.x - sideOffset,\n right: boundary.x + boundary.width - (anchorRect.x + anchorRect.width) - sideOffset\n };\n\n const neededSize = side === 'top' || side === 'bottom' ? contentHeight : contentWidth;\n\n // Preferred side has enough space\n if (spaceMap[side] >= neededSize) return side;\n\n // Opposite side has enough space\n if (spaceMap[opposite] >= neededSize) return opposite;\n\n // Pick side with most available space\n if (spaceMap[opposite] > spaceMap[side]) return opposite;\n\n return side;\n}\n\n// ── Shift Coords ──\n\nconst VIEWPORT_PADDING = 5;\n\nexport function shiftCoords(x: number, y: number, contentWidth: number, contentHeight: number, side: SideType, boundary: Rect, padding: number = VIEWPORT_PADDING): ComputedCoords {\n const isVertical = side === 'top' || side === 'bottom';\n\n if (isVertical) {\n // Clamp horizontal (cross axis)\n x = clamp(x, boundary.x + padding, boundary.x + boundary.width - contentWidth - padding);\n } else {\n // Clamp vertical (cross axis)\n y = clamp(y, boundary.y + padding, boundary.y + boundary.height - contentHeight - padding);\n }\n\n return { x, y };\n}\n\n// ── Arrow Position ──\n\nexport function computeArrowPosition(anchorRect: Rect, contentX: number, contentY: number, contentWidth: number, contentHeight: number, arrowSize: number, side: SideType): { arrowX: number; arrowY: number; arrowLeft: number; arrowTop: number } {\n const arrowHalf = arrowSize / 2;\n const arrowInset = Math.max(8, arrowHalf);\n const isVertical = side === 'top' || side === 'bottom';\n\n const anchorCenterX = anchorRect.x + anchorRect.width / 2;\n const anchorCenterY = anchorRect.y + anchorRect.height / 2;\n\n let arrowX: number;\n let arrowY: number;\n\n if (isVertical) {\n arrowX = clamp(anchorCenterX - contentX, arrowInset, contentWidth - arrowInset);\n arrowY = side === 'bottom' ? 0 : contentHeight;\n } else {\n arrowX = side === 'right' ? 0 : contentWidth;\n arrowY = clamp(anchorCenterY - contentY, arrowInset, contentHeight - arrowInset);\n }\n\n return {\n arrowX,\n arrowY,\n arrowLeft: arrowX - arrowHalf,\n arrowTop: arrowY - arrowHalf\n };\n}\n\n// ── Anchor Detached Check ──\n\nexport function isAnchorDetached(anchorRect: Rect, boundary: Rect): boolean {\n return anchorRect.x + anchorRect.width <= boundary.x || anchorRect.y + anchorRect.height <= boundary.y || anchorRect.x >= boundary.x + boundary.width || anchorRect.y >= boundary.y + boundary.height;\n}\n\n// ── Derive Align from Final Coords ──\n\nexport function deriveAlignFromCoords(x: number, y: number, anchorRect: Rect, contentWidth: number, contentHeight: number, side: SideType): AlignType {\n const epsilon = 4;\n const isVertical = side === 'top' || side === 'bottom';\n\n if (isVertical) {\n if (Math.abs(x - anchorRect.x) <= epsilon) {\n return 'start';\n }\n\n if (Math.abs(x + contentWidth - (anchorRect.x + anchorRect.width)) <= epsilon) {\n return 'end';\n }\n } else {\n if (Math.abs(y - anchorRect.y) <= epsilon) {\n return 'start';\n }\n\n if (Math.abs(y + contentHeight - (anchorRect.y + anchorRect.height)) <= epsilon) {\n return 'end';\n }\n }\n\n return 'center';\n}\n","import type { UsePositionerProps } from '@primereact/types/headless/positioner';\n\nexport const defaultProps: UsePositionerProps = {\n side: 'bottom',\n align: 'center',\n sideOffset: undefined,\n alignOffset: 0,\n flip: true,\n shift: true,\n hideWhenDetached: false,\n strategy: 'fixed',\n boundary: undefined,\n anchor: undefined,\n content: undefined,\n arrow: undefined,\n autoZIndex: true,\n baseZIndex: 0,\n onPlacementChange: undefined\n};\n"],"mappings":"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","names":["withHeadless","getScrollableParents","ZIndex","React","getPlacementFromRects","triggerRect","contentRect","triggerCenterX","triggerCenterY","contentCenterX","contentCenterY","dx","dy","separations","separated","value","side","a","b","epsilon","align","computeCSSPosition","sideOffset","alignOffset","flip","shift","hideWhenDetached","style","sideMarginMap","isCssSupported","_cssAnchorSupported","isCssAnchorSupported","clamp","value","min","max","getBoundaryRect","boundary","rect","getLayoutRect","element","layoutWidth","layoutHeight","scaleX","scaleY","left","top","computeTransformOrigin","side","arrowX","arrowY","contentWidth","contentHeight","arrowSize","hasArrow","arrowTip","OPPOSITE_SIDE","computeCoordsFromPlacement","anchorRect","contentWidth","contentHeight","side","align","sideOffset","alignOffset","x","y","isVertical","getFlippedSide","boundary","opposite","spaceMap","neededSize","VIEWPORT_PADDING","shiftCoords","padding","clamp","computeArrowPosition","contentX","contentY","arrowSize","arrowHalf","arrowInset","anchorCenterX","anchorCenterY","arrowX","arrowY","isAnchorDetached","deriveAlignFromCoords","defaultProps","usePositioner","withHeadless","defaultProps","id","props","$primereact","_a","_b","actualSide","setActualSide","actualAlign","setActualAlign","anchorName","contentAnchor","propsRef","actualSideRef","getArrowOffset","p","arrow","computed","side","size","borderTop","resolveSideOffset","prevSideRef","prevAlignRef","getTransformOrigin","originSide","originAlign","isVertical","primary","secondary","computePosition","isCssAnchorSupported","computeCSSPosition","updatePlacementCSS","trigger","content","triggerRect","contentRect","positionerLayout","getLayoutRect","nextSide","nextAlign","getPlacementFromRects","prev","sOffset","viewportWidth","viewportHeight","availableHeight","availableWidth","triggerCenterX","triggerCenterY","cssArrowSize","arrowSize","arrowHalf","arrowInset","arrowX","clamp","arrowY","arrowLeft","arrowTop","transformOrigin","computeTransformOrigin","originX","originY","updatePlacementJS","anchor","boundary","getBoundaryRect","anchorDomRect","anchorRect","contentWidth","contentHeight","align","sideOffset","alignOffset","isAnchorDetached","resolvedSide","getFlippedSide","x","y","computeCoordsFromPlacement","resolvedAlign","shifted","shiftCoords","deriveAlignFromCoords","offsetParent","parentRect","arrowPos","computeArrowPosition","anchorCenterX","anchorCenterY","updatePlacement","anchorWidth","updatePlacementRef","position","__spreadProps","__spreadValues","prop","_c","_d","ZIndex","scheduleRafId","tickRafId","rafScheduled","disposed","scheduleUpdate","resizeObserver","scrollParents","getScrollableParents","parent","maxFrames","frame","tick","onPlacementChangeRef"]}
@@ -0,0 +1,7 @@
1
+ import { AlignType, SideType } from '@primereact/types/headless/positioner';
2
+ export declare function getPlacementFromRects(triggerRect: DOMRect, contentRect: DOMRect): {
3
+ side: SideType;
4
+ align: AlignType;
5
+ };
6
+ export type CSSPositionStyle = Record<string, string | undefined>;
7
+ export declare function computeCSSPosition(side?: SideType, align?: AlignType, sideOffset?: number, alignOffset?: number, flip?: boolean, shift?: boolean, hideWhenDetached?: boolean): CSSPositionStyle;
@@ -0,0 +1,11 @@
1
+ import { AlignType, SideType } from '@primereact/types/headless/positioner';
2
+ import * as React from 'react';
3
+ export declare const usePositioner: (inProps?: unknown) => import("@primereact/types/core").HeadlessInstance<import("@primereact/types/headless/positioner").UsePositionerProps, unknown, {
4
+ state: {
5
+ actualSide: SideType | undefined;
6
+ actualAlign: AlignType | undefined;
7
+ };
8
+ getTransformOrigin: () => string;
9
+ computePosition: () => React.CSSProperties;
10
+ updatePlacement: () => void;
11
+ }>;
@@ -0,0 +1,13 @@
1
+ import { AlignType, SideType } from '@primereact/types/headless/positioner';
2
+ import { ComputedCoords, Rect } from './usePositioner.utils';
3
+ export declare function computeCoordsFromPlacement(anchorRect: Rect, contentWidth: number, contentHeight: number, side: SideType, align: AlignType, sideOffset: number, alignOffset: number): ComputedCoords;
4
+ export declare function getFlippedSide(anchorRect: Rect, contentWidth: number, contentHeight: number, side: SideType, sideOffset: number, boundary: Rect): SideType;
5
+ export declare function shiftCoords(x: number, y: number, contentWidth: number, contentHeight: number, side: SideType, boundary: Rect, padding?: number): ComputedCoords;
6
+ export declare function computeArrowPosition(anchorRect: Rect, contentX: number, contentY: number, contentWidth: number, contentHeight: number, arrowSize: number, side: SideType): {
7
+ arrowX: number;
8
+ arrowY: number;
9
+ arrowLeft: number;
10
+ arrowTop: number;
11
+ };
12
+ export declare function isAnchorDetached(anchorRect: Rect, boundary: Rect): boolean;
13
+ export declare function deriveAlignFromCoords(x: number, y: number, anchorRect: Rect, contentWidth: number, contentHeight: number, side: SideType): AlignType;
@@ -0,0 +1,2 @@
1
+ import type { UsePositionerProps } from '@primereact/types/headless/positioner';
2
+ export declare const defaultProps: UsePositionerProps;
@@ -0,0 +1,21 @@
1
+ import { SideType } from '@primereact/types/headless/positioner';
2
+ export declare function isCssAnchorSupported(): boolean;
3
+ export interface Rect {
4
+ x: number;
5
+ y: number;
6
+ width: number;
7
+ height: number;
8
+ }
9
+ export interface ComputedCoords {
10
+ x: number;
11
+ y: number;
12
+ }
13
+ export declare function clamp(value: number, min: number, max: number): number;
14
+ export declare function getBoundaryRect(boundary?: HTMLElement | null): Rect;
15
+ export declare function getLayoutRect(element: HTMLElement, rect: DOMRect): DOMRect | {
16
+ left: number;
17
+ top: number;
18
+ width: number;
19
+ height: number;
20
+ };
21
+ export declare function computeTransformOrigin(side: SideType, arrowX: number, arrowY: number, contentWidth: number, contentHeight: number, arrowSize: number, hasArrow: boolean): string;
@@ -1,2 +1,3 @@
1
1
  export * from './useProgressBar';
2
2
  export * from './useProgressBar.props';
3
+ export type * from '@primereact/types/headless/progressbar';
@@ -1,2 +1,2 @@
1
- import{withHeadless as l}from"@primereact/core/headless";import*as n from"react";var u={value:void 0,max:100,min:0,formatter:e=>new Intl.NumberFormat(void 0,{minimumFractionDigits:0,maximumFractionDigits:2}).format(e)+"%"};var h=l({name:"useProgressBar",defaultProps:u,setup({props:e}){let i=t=>{var o,s;let r=(o=e.min)!=null?o:0,m=(s=e.max)!=null?s:100;if(r>=m)return console.error("[ProgressBar] min must be less than max."),0;let d=(Math.min(Math.max(t!=null?t:r,r),m)-r)/(m-r)*100;return Math.min(Math.max(d,0),100)},a=n.useMemo(()=>i(e.value),[e.value,e.min,e.max]),c=n.useMemo(()=>{var t;return(t=e.formatter)==null?void 0:t.call(e,a)},[a,e.formatter]);return{state:{computedValue:a,formattedValue:c}}}});export{u as defaultProps,h as useProgressBar};
1
+ import{withHeadless as P}from"@primereact/core/headless";import*as o from"react";var i={value:void 0,max:100,min:0,formatter:e=>new Intl.NumberFormat(void 0,{minimumFractionDigits:0,maximumFractionDigits:2}).format(e)+"%"};var w=P({name:"useProgressBar",defaultProps:i,setup({props:e}){var m,n;let d=a=>{var u,c;let r=(u=e.min)!=null?u:0,s=(c=e.max)!=null?c:100;if(r>=s)return console.error("[ProgressBar] min must be less than max."),0;let b=(Math.min(Math.max(a!=null?a:r,r),s)-r)/(s-r)*100;return Math.min(Math.max(b,0),100)},t=o.useMemo(()=>d(e.value),[e.value,e.min,e.max]),l=o.useMemo(()=>{var a;return(a=e.formatter)==null?void 0:a.call(e,t)},[t,e.formatter]),f={computedValue:t,formattedValue:l},x={"data-scope":"progressbar","data-part":"root"},g={"data-scope":"progressbar","data-part":"track",role:"progressbar","aria-valuemin":(m=e.min)!=null?m:0,"aria-valuenow":t,"aria-valuemax":(n=e.max)!=null?n:100};return{state:f,rootProps:x,trackProps:g}}});export{i as defaultProps,w as useProgressBar};
2
2
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/progressbar/useProgressBar.ts","../../src/progressbar/useProgressBar.props.ts"],"sourcesContent":["import { withHeadless } from '@primereact/core/headless';\nimport * as React from 'react';\nimport { defaultProps } from './useProgressBar.props';\n\nexport const useProgressBar = withHeadless({\n name: 'useProgressBar',\n defaultProps,\n setup({ props }) {\n // methods\n const handleProgressValue = (value: number | undefined): number => {\n const minValue = props.min ?? 0;\n const maxValue = props.max ?? 100;\n\n if (minValue >= maxValue) {\n // eslint-disable-next-line no-console\n console.error('[ProgressBar] min must be less than max.');\n\n return 0;\n }\n\n const clampedValue = Math.min(Math.max(value ?? minValue, minValue), maxValue);\n const newValue = ((clampedValue - minValue) / (maxValue - minValue)) * 100;\n const boundedValue = Math.min(Math.max(newValue, 0), 100);\n\n return boundedValue;\n };\n\n const computedValue = React.useMemo(() => {\n return handleProgressValue(props.value);\n }, [props.value, props.min, props.max]);\n\n const formattedValue = React.useMemo(() => {\n return props.formatter?.(computedValue);\n }, [computedValue, props.formatter]);\n\n const state = {\n computedValue,\n formattedValue\n };\n\n return {\n state\n };\n }\n});\n","import type { useProgressBarProps } from '@primereact/types/shared/progressbar';\n\nexport const defaultProps: useProgressBarProps = {\n value: undefined,\n max: 100,\n min: 0,\n formatter: (value: number) =>\n new Intl.NumberFormat(undefined, {\n minimumFractionDigits: 0,\n maximumFractionDigits: 2\n }).format(value) + '%'\n};\n"],"mappings":"AAAA,OAAS,gBAAAA,MAAoB,4BAC7B,UAAYC,MAAW,QCChB,IAAMC,EAAoC,CAC7C,MAAO,OACP,IAAK,IACL,IAAK,EACL,UAAYC,GACR,IAAI,KAAK,aAAa,OAAW,CAC7B,sBAAuB,EACvB,sBAAuB,CAC3B,CAAC,EAAE,OAAOA,CAAK,EAAI,GAC3B,EDPO,IAAMC,EAAiBC,EAAa,CACvC,KAAM,iBACN,aAAAC,EACA,MAAM,CAAE,MAAAC,CAAM,EAAG,CAEb,IAAMC,EAAuBC,GAAsC,CAT3E,IAAAC,EAAAC,EAUY,IAAMC,GAAWF,EAAAH,EAAM,MAAN,KAAAG,EAAa,EACxBG,GAAWF,EAAAJ,EAAM,MAAN,KAAAI,EAAa,IAE9B,GAAIC,GAAYC,EAEZ,eAAQ,MAAM,0CAA0C,EAEjD,EAIX,IAAMC,GADe,KAAK,IAAI,KAAK,IAAIL,GAAA,KAAAA,EAASG,EAAUA,CAAQ,EAAGC,CAAQ,EAC3CD,IAAaC,EAAWD,GAAa,IAGvE,OAFqB,KAAK,IAAI,KAAK,IAAIE,EAAU,CAAC,EAAG,GAAG,CAG5D,EAEMC,EAAsB,UAAQ,IACzBP,EAAoBD,EAAM,KAAK,EACvC,CAACA,EAAM,MAAOA,EAAM,IAAKA,EAAM,GAAG,CAAC,EAEhCS,EAAuB,UAAQ,IAAM,CA/BnD,IAAAN,EAgCY,OAAOA,EAAAH,EAAM,YAAN,YAAAG,EAAA,KAAAH,EAAkBQ,EAC7B,EAAG,CAACA,EAAeR,EAAM,SAAS,CAAC,EAOnC,MAAO,CACH,MANU,CACV,cAAAQ,EACA,eAAAC,CACJ,CAIA,CACJ,CACJ,CAAC","names":["withHeadless","React","defaultProps","value","useProgressBar","withHeadless","defaultProps","props","handleProgressValue","value","_a","_b","minValue","maxValue","newValue","computedValue","formattedValue"]}
1
+ {"version":3,"sources":["../../src/progressbar/useProgressBar.ts","../../src/progressbar/useProgressBar.props.ts"],"sourcesContent":["import { withHeadless } from '@primereact/core/headless';\nimport * as React from 'react';\nimport { defaultProps } from './useProgressBar.props';\n\nexport const useProgressBar = withHeadless({\n name: 'useProgressBar',\n defaultProps,\n setup({ props }) {\n // methods\n const handleProgressValue = (value: number | undefined): number => {\n const minValue = props.min ?? 0;\n const maxValue = props.max ?? 100;\n\n if (minValue >= maxValue) {\n // eslint-disable-next-line no-console\n console.error('[ProgressBar] min must be less than max.');\n\n return 0;\n }\n\n const clampedValue = Math.min(Math.max(value ?? minValue, minValue), maxValue);\n const newValue = ((clampedValue - minValue) / (maxValue - minValue)) * 100;\n const boundedValue = Math.min(Math.max(newValue, 0), 100);\n\n return boundedValue;\n };\n\n const computedValue = React.useMemo(() => {\n return handleProgressValue(props.value);\n }, [props.value, props.min, props.max]);\n\n const formattedValue = React.useMemo(() => {\n return props.formatter?.(computedValue);\n }, [computedValue, props.formatter]);\n\n const state = {\n computedValue,\n formattedValue\n };\n\n // prop getters\n const rootProps = {\n 'data-scope': 'progressbar' as const,\n 'data-part': 'root' as const\n };\n\n const trackProps = {\n 'data-scope': 'progressbar' as const,\n 'data-part': 'track' as const,\n role: 'progressbar' as const,\n 'aria-valuemin': props.min ?? 0,\n 'aria-valuenow': computedValue,\n 'aria-valuemax': props.max ?? 100\n };\n\n return {\n state,\n // prop getters\n rootProps,\n trackProps\n };\n }\n});\n","import type { UseProgressBarProps } from '@primereact/types/headless/progressbar';\n\nexport const defaultProps: UseProgressBarProps = {\n value: undefined,\n max: 100,\n min: 0,\n formatter: (value: number) =>\n new Intl.NumberFormat(undefined, {\n minimumFractionDigits: 0,\n maximumFractionDigits: 2\n }).format(value) + '%'\n};\n"],"mappings":"AAAA,OAAS,gBAAAA,MAAoB,4BAC7B,UAAYC,MAAW,QCChB,IAAMC,EAAoC,CAC7C,MAAO,OACP,IAAK,IACL,IAAK,EACL,UAAYC,GACR,IAAI,KAAK,aAAa,OAAW,CAC7B,sBAAuB,EACvB,sBAAuB,CAC3B,CAAC,EAAE,OAAOA,CAAK,EAAI,GAC3B,EDPO,IAAMC,EAAiBC,EAAa,CACvC,KAAM,iBACN,aAAAC,EACA,MAAM,CAAE,MAAAC,CAAM,EAAG,CAPrB,IAAAC,EAAAC,EASQ,IAAMC,EAAuBC,GAAsC,CAT3E,IAAAH,EAAAC,EAUY,IAAMG,GAAWJ,EAAAD,EAAM,MAAN,KAAAC,EAAa,EACxBK,GAAWJ,EAAAF,EAAM,MAAN,KAAAE,EAAa,IAE9B,GAAIG,GAAYC,EAEZ,eAAQ,MAAM,0CAA0C,EAEjD,EAIX,IAAMC,GADe,KAAK,IAAI,KAAK,IAAIH,GAAA,KAAAA,EAASC,EAAUA,CAAQ,EAAGC,CAAQ,EAC3CD,IAAaC,EAAWD,GAAa,IAGvE,OAFqB,KAAK,IAAI,KAAK,IAAIE,EAAU,CAAC,EAAG,GAAG,CAG5D,EAEMC,EAAsB,UAAQ,IACzBL,EAAoBH,EAAM,KAAK,EACvC,CAACA,EAAM,MAAOA,EAAM,IAAKA,EAAM,GAAG,CAAC,EAEhCS,EAAuB,UAAQ,IAAM,CA/BnD,IAAAR,EAgCY,OAAOA,EAAAD,EAAM,YAAN,YAAAC,EAAA,KAAAD,EAAkBQ,EAC7B,EAAG,CAACA,EAAeR,EAAM,SAAS,CAAC,EAE7BU,EAAQ,CACV,cAAAF,EACA,eAAAC,CACJ,EAGME,EAAY,CACd,aAAc,cACd,YAAa,MACjB,EAEMC,EAAa,CACf,aAAc,cACd,YAAa,QACb,KAAM,cACN,iBAAiBX,EAAAD,EAAM,MAAN,KAAAC,EAAa,EAC9B,gBAAiBO,EACjB,iBAAiBN,EAAAF,EAAM,MAAN,KAAAE,EAAa,GAClC,EAEA,MAAO,CACH,MAAAQ,EAEA,UAAAC,EACA,WAAAC,CACJ,CACJ,CACJ,CAAC","names":["withHeadless","React","defaultProps","value","useProgressBar","withHeadless","defaultProps","props","_a","_b","handleProgressValue","value","minValue","maxValue","newValue","computedValue","formattedValue","state","rootProps","trackProps"]}
@@ -1,6 +1,18 @@
1
- export declare const useProgressBar: (inProps?: unknown) => import("@primereact/types/core").HeadlessInstance<import("@primereact/types/shared/progressbar").useProgressBarProps, unknown, {
1
+ export declare const useProgressBar: (inProps?: unknown) => import("@primereact/types/core").HeadlessInstance<import("@primereact/types/headless/progressbar").UseProgressBarProps, unknown, {
2
2
  state: {
3
3
  computedValue: number;
4
4
  formattedValue: string | undefined;
5
5
  };
6
+ rootProps: {
7
+ 'data-scope': "progressbar";
8
+ 'data-part': "root";
9
+ };
10
+ trackProps: {
11
+ 'data-scope': "progressbar";
12
+ 'data-part': "track";
13
+ role: "progressbar";
14
+ 'aria-valuemin': number;
15
+ 'aria-valuenow': number;
16
+ 'aria-valuemax': number;
17
+ };
6
18
  }>;
@@ -1,2 +1,2 @@
1
- import type { useProgressBarProps } from '@primereact/types/shared/progressbar';
2
- export declare const defaultProps: useProgressBarProps;
1
+ import type { UseProgressBarProps } from '@primereact/types/headless/progressbar';
2
+ export declare const defaultProps: UseProgressBarProps;
@@ -1,2 +1,3 @@
1
1
  export * from './useProgressSpinner';
2
2
  export * from './useProgressSpinner.props';
3
+ export type * from '@primereact/types/headless/progressspinner';