@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
package/LICENSE.md ADDED
@@ -0,0 +1,45 @@
1
+ # PrimeUI License
2
+
3
+ This package is part of **PrimeUI**, a family of commercial UI libraries by PrimeTek Informatics.
4
+
5
+ ## How PrimeUI May Be Used
6
+
7
+ PrimeUI may be used under one of two licenses. You choose the one that applies to you based on eligibility.
8
+
9
+ ### Community License (Free)
10
+
11
+ Free for organizations that meet all of the following criteria:
12
+
13
+ - Less than $1,000,000 USD in annual gross revenue
14
+ - Fewer than 5 developers
15
+ - Fewer than 10 employees
16
+ - Less than $3,000,000 USD in venture capital or outside funding
17
+
18
+ Individuals, students, non-profits, and non-commercial open source projects also qualify.
19
+
20
+ The Community License provides full access to the core libraries and supports up to 4 developers. It requires annual renewal by confirming continued eligibility.
21
+
22
+ ### Commercial License (Paid)
23
+
24
+ For organizations that do not qualify for the Community License.
25
+
26
+ Licensed per developer, perpetual, with one year of updates included. Renewal is optional and extends access to new versions. The Commercial Suite also includes PrimeBlocks, Theme Designer, all PrimeUI Pro components, and Premium Support.
27
+
28
+ ## License Key
29
+
30
+ A valid license key is required to use this software. License verification is performed offline, with no telemetry and no remote connection. A missing, invalid, or expired key may cause the software to display a license notice.
31
+
32
+ ## Full Terms
33
+
34
+ The complete license terms, eligibility details, and renewal information are available at:
35
+
36
+ - Community License: https://primeui.dev/licenses/community
37
+ - Commercial License: https://primeui.dev/licenses/commercial
38
+
39
+ ## Restrictions
40
+
41
+ This software is distributed as a compiled package. You may not reverse-engineer, decompile, or extract its source code, redistribute it as a component library or development tool, or remove its license mechanisms. Redistributing the software so that third parties can develop with it requires a separate OEM License. See the full terms for details.
42
+
43
+ ---
44
+
45
+ © 2026 PrimeTek Informatics. All rights reserved.
package/README.md CHANGED
@@ -1 +1,36 @@
1
1
  # PrimeReact Headless
2
+
3
+ Unstyled, behavior-only React hooks for 80+ components. Each hook handles accessibility, keyboard navigation, focus management, state, and ARIA attributes — with no CSS or visual assumptions attached.
4
+
5
+ ## What's inside
6
+
7
+ Every component has its own hook that returns prop getters and internal state handlers:
8
+
9
+ ```tsx
10
+ import { useButton } from '@primereact/headless/button';
11
+
12
+ const { rootProps, labelProps, iconProps, loadingIconProps } = useButton({
13
+ label: 'Submit',
14
+ loading: isPending,
15
+ onClick: handleSubmit
16
+ });
17
+
18
+ return (
19
+ <button {...rootProps}>
20
+ {loadingIconProps && <span {...loadingIconProps} />}
21
+ <span {...labelProps} />
22
+ </button>
23
+ );
24
+ ```
25
+
26
+ Prop getters include `data-scope` / `data-part` attributes so CSS can target elements without class-name coupling. Interaction behavior — keyboard shortcuts, focus trapping, selection logic, virtual scrolling, typeahead — is all handled inside the hook.
27
+
28
+ ## Available hooks
29
+
30
+ Covers the full PrimeReact component set: `useButton`, `useAccordion`, `useAutocomplete`, `useSelect`, `useDatePicker`, `useDataTable`, `useDialog`, `useTree`, `useListbox`, `useCarousel`, `useTabView`, `useSteps`, and more.
31
+
32
+ Each hook lives in its own subpath (`@primereact/headless/button`, `@primereact/headless/datatable`) so only the hooks in use are included in the bundle.
33
+
34
+ ## License
35
+
36
+ Licensed under the [PrimeUI License](https://primeui.dev/licenses) - Copyright (c) [PrimeTek Informatics](https://www.primetek.com.tr)
@@ -1,2 +1,5 @@
1
1
  export * from './useAccordion';
2
2
  export * from './useAccordion.props';
3
+ export * from './useAccordionPanel';
4
+ export * from './useAccordionPanel.props';
5
+ export type * from '@primereact/types/headless/accordion';
@@ -1,2 +1,2 @@
1
- import{withHeadless as P}from"@primereact/core/headless";import{findSingle as x,focus as h,getAttribute as V}from"@primeuix/utils/dom";import*as T from"react";var H={defaultValue:null,value:null,multiple:!1,onValueChange:void 0,selectOnFocus:!1};var k=P({name:"useAccordion",defaultProps:H,setup({props:a,elementRef:p}){var g,v;let[i,A]=T.useState((v=(g=a.value)!=null?g:a.defaultValue)!=null?v:null),M={value:i},o=e=>{if(e===void 0)return;let t=i,d=E(e);if(a.multiple){let r=Array.isArray(t)?t:[];t=d?r.filter(s=>s!==e):e!=null?[...r,e]:r}else t=d?null:e;A(t)},E=e=>{if(e==null)return!1;if(a.multiple){let t=i;return Array.isArray(t)&&t.includes(e)}else return i===e},c=(e,t)=>{let d=l=>x(l,'[data-pc-name="accordionheader"]'),r=(l,u,f=!1)=>{let m=f?l:l[u==="next"?"nextElementSibling":"previousElementSibling"];return m?V(m,"data-p-disabled")?r(m,u):d(m):null},s=l=>{let u=p==null?void 0:p.current;if(!u)return null;let f=l==="first"?u.firstElementChild:u.lastElementChild;return f?r(f,l==="first"?"next":"previous",!0):null},b=e==null?void 0:e.closest('[data-pc-name="accordionpanel"]');if(!b)return;let n=null;switch(t){case"next":n=r(b,"next"),n||(n=s("first"));break;case"previous":n=r(b,"previous"),n||(n=s("last"));break;case"first":n=s("first");break;case"last":n=s("last");break}n&&h(n)};return{state:M,updateValue:o,isItemActive:E,onHeaderClick:(e,t)=>{a.selectOnFocus||o(t)},onHeaderFocus:(e,t)=>{a.selectOnFocus&&o(t)},onHeaderKeyDown:(e,t)=>{switch(e.code){case"ArrowDown":c(e.currentTarget,"next");break;case"ArrowUp":c(e.currentTarget,"previous");break;case"Home":c(e.currentTarget,"first");break;case"End":c(e.currentTarget,"last");break;case"Enter":case"NumpadEnter":case"Space":o(t);break;case"Tab":return;default:break}e.preventDefault()}}}});export{H as defaultProps,k as useAccordion};
1
+ var F=Object.defineProperty,N=Object.defineProperties;var k=Object.getOwnPropertyDescriptors;var w=Object.getOwnPropertySymbols;var K=Object.prototype.hasOwnProperty,O=Object.prototype.propertyIsEnumerable;var x=(t,a,e)=>a in t?F(t,a,{enumerable:!0,configurable:!0,writable:!0,value:e}):t[a]=e,T=(t,a)=>{for(var e in a||(a={}))K.call(a,e)&&x(t,e,a[e]);if(w)for(var e of w(a))O.call(a,e)&&x(t,e,a[e]);return t},C=(t,a)=>N(t,k(a));import{withHeadless as j}from"@primereact/core/headless";import{useControlledState as _}from"@primereact/hooks/use-controlled-state";var S={defaultValue:void 0,value:void 0,multiple:!1,disabled:!1,tabIndex:0,onValueChange:void 0,openOnFocus:!1};var Z=j({name:"useAccordion",defaultProps:S,setup({props:t}){var b;let[a,e]=_({value:t.value,defaultValue:(b=t.defaultValue)!=null?b:null,onChange:t.onValueChange}),o={value:a},d=(i,n)=>{if(n===void 0)return;let l=a,g=m(n);if(t.multiple){let p=Array.isArray(l)?l:[];l=g?p.filter(M=>M!==n):n!=null?[...p,n]:p}else l=g?null:n;e([l,{originalEvent:i,value:l}])},m=i=>{if(i==null)return!1;if(t.multiple){let n=a;return Array.isArray(n)&&n.includes(i)}else return a===i},h=T({"data-scope":"accordion","data-part":"root"},t.disabled?{"data-disabled":""}:void 0);return{state:o,rootProps:h,updateValue:d,isItemActive:m}}});import{withHeadless as $}from"@primereact/core/headless";import{findSingle as q,focus as z,getAttribute as G}from"@primeuix/utils/dom";var R={value:void 0,disabled:!1,context:void 0};var se=$({name:"useAccordionPanel",defaultProps:R,setup({props:t,id:a}){var L,V,y;let e=t.context,o=(L=e==null?void 0:e.isItemActive(t.value))!=null?L:!1,d=t.disabled||((V=e==null?void 0:e.props)==null?void 0:V.disabled),m={open:o,disabled:d},h=r=>{e==null||e.updateValue(r,t.value)},b=r=>{var P;(P=e==null?void 0:e.props)!=null&&P.openOnFocus&&(e==null||e.updateValue(r,t.value))},i=r=>{switch(r.code){case"ArrowDown":n(r.currentTarget,"next");break;case"ArrowUp":n(r.currentTarget,"previous");break;case"Home":n(r.currentTarget,"first");break;case"End":n(r.currentTarget,"last");break;case"Enter":case"NumpadEnter":case"Space":e==null||e.updateValue(r,t.value);break;case"Tab":return;default:break}r.preventDefault()},n=(r,P)=>{let U=u=>q(u,'[data-scope="accordion"][data-part="trigger"]'),v=(u,f,A=!1)=>{let c=A?u:u[f==="next"?"nextElementSibling":"previousElementSibling"];return c?G(c,"data-disabled")?v(c,f):U(c):null},E=u=>{var c;let f=(c=e==null?void 0:e.elementRef)==null?void 0:c.current;if(!f)return null;let A=u==="first"?f.firstElementChild:f.lastElementChild;return A?v(A,u==="first"?"next":"previous",!0):null},H=r==null?void 0:r.closest('[data-scope="accordion"][data-part="panel"]');if(!H)return;let s=null;switch(P){case"next":s=v(H,"next"),s||(s=E("first"));break;case"previous":s=v(H,"previous"),s||(s=E("last"));break;case"first":s=E("first");break;case"last":s=E("last");break}s&&z(s)},l=a?`${a}_content`:void 0,g={id:l,"data-scope":"accordion","data-part":"content",role:"region","aria-hidden":!o,[o?"data-open":"data-closed"]:"","data-disabled":t.disabled||void 0},p={"data-scope":"accordion","data-part":"trigger",type:"button",tabIndex:d?-1:(y=e==null?void 0:e.props)==null?void 0:y.tabIndex,disabled:d||void 0,"aria-expanded":o,"aria-disabled":d||void 0,"aria-controls":l,[o?"data-content-open":"data-content-closed"]:"","data-disabled":d||void 0,onClick:h,onFocus:b,onKeyDown:i},M={"data-scope":"accordion","data-part":"indicator",[o?"data-open":"data-closed"]:""},I={"data-scope":"accordion","data-part":"header",[o?"data-open":"data-closed"]:""},D=C(T({"data-scope":"accordion","data-part":"panel"},d?{"data-disabled":""}:void 0),{[o?"data-open":"data-closed"]:""});return{state:m,panelProps:D,headerProps:I,triggerProps:p,contentProps:g,indicatorProps:M}}});export{R as defaultPanelProps,S as defaultProps,Z as useAccordion,se as useAccordionPanel};
2
2
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/accordion/useAccordion.ts","../../src/accordion/useAccordion.props.ts"],"sourcesContent":["import { withHeadless } from '@primereact/core/headless';\nimport type { NavigationDirection } from '@primereact/types/shared/accordion';\nimport { useAccordionProps } from '@primereact/types/shared/accordion';\nimport { findSingle, focus, getAttribute } from '@primeuix/utils/dom';\nimport * as React from 'react';\nimport { defaultProps } from './useAccordion.props';\n\nexport const useAccordion = withHeadless({\n name: 'useAccordion',\n defaultProps,\n setup({ props, elementRef }) {\n const [activeValueState, setActiveValueState] = React.useState<useAccordionProps['value']>(props.value ?? props.defaultValue ?? null);\n\n const state = {\n value: activeValueState\n };\n\n // methods\n const updateValue = (key: null | undefined | string | number) => {\n if (key === undefined) return;\n\n let activeValue = activeValueState;\n const isActive = isItemActive(key);\n\n if (props.multiple) {\n const arrayValue = Array.isArray(activeValue) ? activeValue : [];\n\n activeValue = isActive ? arrayValue.filter((k) => k !== key) : key !== null && key !== undefined ? [...arrayValue, key] : arrayValue;\n } else {\n activeValue = isActive ? null : key;\n }\n\n setActiveValueState(activeValue);\n };\n\n const isItemActive = (key: null | undefined | string | number): boolean => {\n if (key === null || key === undefined) return false;\n\n if (props.multiple) {\n const arrayValue = activeValueState as (string | number)[] | null | undefined;\n\n return Array.isArray(arrayValue) && arrayValue.includes(key as string | number);\n } else {\n return activeValueState === key;\n }\n };\n\n const focusPanel = (accordionHeader: HTMLElement | null, direction: NavigationDirection): void => {\n const findHeader = (panelElement: HTMLElement): HTMLElement | null => {\n return findSingle(panelElement, '[data-pc-name=\"accordionheader\"]') as HTMLElement | null;\n };\n\n const findAdjacentPanel = (panelElement: HTMLElement, direction: 'next' | 'previous', selfCheck = false): HTMLElement | null => {\n const siblingProperty = direction === 'next' ? 'nextElementSibling' : 'previousElementSibling';\n const element = selfCheck ? panelElement : (panelElement[siblingProperty] as HTMLElement | null);\n\n if (!element) {\n return null;\n }\n\n if (getAttribute(element, 'data-p-disabled')) {\n return findAdjacentPanel(element, direction);\n }\n\n return findHeader(element);\n };\n\n const findBoundaryPanel = (boundary: 'first' | 'last'): HTMLElement | null => {\n const accordionElement = elementRef?.current;\n\n if (!accordionElement) return null;\n\n const targetChild = boundary === 'first' ? accordionElement.firstElementChild : accordionElement.lastElementChild;\n\n if (!targetChild) return null;\n\n const direction = boundary === 'first' ? 'next' : 'previous';\n\n return findAdjacentPanel(targetChild as HTMLElement, direction, true);\n };\n\n const currentPanel = accordionHeader?.closest('[data-pc-name=\"accordionpanel\"]') as HTMLElement | null;\n\n if (!currentPanel) return;\n\n let targetPanel: HTMLElement | null = null;\n\n switch (direction) {\n case 'next':\n targetPanel = findAdjacentPanel(currentPanel, 'next');\n\n if (!targetPanel) {\n targetPanel = findBoundaryPanel('first');\n }\n\n break;\n\n case 'previous':\n targetPanel = findAdjacentPanel(currentPanel, 'previous');\n\n if (!targetPanel) {\n targetPanel = findBoundaryPanel('last');\n }\n\n break;\n\n case 'first':\n targetPanel = findBoundaryPanel('first');\n break;\n\n case 'last':\n targetPanel = findBoundaryPanel('last');\n break;\n }\n\n if (targetPanel) {\n focus(targetPanel);\n }\n };\n\n const onHeaderClick = (event: React.MouseEvent<HTMLButtonElement>, value: null | undefined | string | number) => {\n if (!props.selectOnFocus) {\n updateValue(value);\n }\n };\n\n const onHeaderFocus = (event: React.FocusEvent<HTMLButtonElement>, value: null | undefined | string | number) => {\n if (props.selectOnFocus) {\n updateValue(value);\n }\n };\n\n const onHeaderKeyDown = (event: React.KeyboardEvent<HTMLButtonElement>, value: null | undefined | string | number) => {\n switch (event.code) {\n case 'ArrowDown':\n focusPanel(event.currentTarget, 'next');\n break;\n\n case 'ArrowUp':\n focusPanel(event.currentTarget, 'previous');\n break;\n\n case 'Home':\n focusPanel(event.currentTarget, 'first');\n break;\n\n case 'End':\n focusPanel(event.currentTarget, 'last');\n break;\n\n case 'Enter':\n case 'NumpadEnter':\n case 'Space':\n updateValue(value);\n break;\n\n case 'Tab':\n return;\n\n default:\n break;\n }\n\n event.preventDefault();\n };\n\n // effects\n\n return {\n state,\n // methods\n updateValue,\n isItemActive,\n onHeaderClick,\n onHeaderFocus,\n onHeaderKeyDown\n };\n }\n});\n","import type { useAccordionProps } from '@primereact/types/shared/accordion';\n\nexport const defaultProps: useAccordionProps = {\n defaultValue: null,\n value: null,\n multiple: false,\n onValueChange: undefined,\n selectOnFocus: false\n};\n"],"mappings":"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","names":["withHeadless","findSingle","focus","getAttribute","React","defaultProps","useAccordion","withHeadless","defaultProps","props","elementRef","_a","_b","activeValueState","setActiveValueState","state","updateValue","key","activeValue","isActive","isItemActive","arrayValue","k","focusPanel","accordionHeader","direction","findHeader","panelElement","findSingle","findAdjacentPanel","selfCheck","element","getAttribute","findBoundaryPanel","boundary","accordionElement","targetChild","currentPanel","targetPanel","focus","event","value"]}
1
+ {"version":3,"sources":["../../src/accordion/useAccordion.ts","../../src/accordion/useAccordion.props.ts","../../src/accordion/useAccordionPanel.ts","../../src/accordion/useAccordionPanel.props.ts"],"sourcesContent":["import { withHeadless } from '@primereact/core/headless';\nimport { useControlledState } from '@primereact/hooks/use-controlled-state';\nimport * as React from 'react';\nimport { defaultProps } from './useAccordion.props';\n\nexport const useAccordion = withHeadless({\n name: 'useAccordion',\n defaultProps,\n setup({ props }) {\n const [activeValueState, setActiveValueState] = useControlledState({\n value: props.value,\n defaultValue: props.defaultValue ?? null,\n onChange: props.onValueChange\n });\n\n const state = {\n value: activeValueState\n };\n\n // methods\n const updateValue = (event: React.SyntheticEvent, key: null | undefined | string | number) => {\n if (key === undefined) return;\n\n let activeValue = activeValueState;\n const isActive = isItemActive(key);\n\n if (props.multiple) {\n const arrayValue = Array.isArray(activeValue) ? activeValue : [];\n\n activeValue = isActive ? arrayValue.filter((k) => k !== key) : key !== null && key !== undefined ? [...arrayValue, key] : arrayValue;\n } else {\n activeValue = isActive ? null : key;\n }\n\n setActiveValueState([\n activeValue,\n {\n originalEvent: event,\n value: activeValue\n }\n ]);\n };\n\n const isItemActive = (key: null | undefined | string | number): boolean => {\n if (key === null || key === undefined) return false;\n\n if (props.multiple) {\n const arrayValue = activeValueState as (string | number)[] | null | undefined;\n\n return Array.isArray(arrayValue) && arrayValue.includes(key as string | number);\n } else {\n return activeValueState === key;\n }\n };\n\n // prop getters\n const rootProps = {\n 'data-scope': 'accordion',\n 'data-part': 'root',\n ...(props.disabled ? { 'data-disabled': '' } : undefined)\n };\n\n return {\n state,\n // prop getters\n rootProps,\n // methods\n updateValue,\n isItemActive\n };\n }\n});\n","import type { UseAccordionProps } from '@primereact/types/headless/accordion';\n\nexport const defaultProps: UseAccordionProps = {\n defaultValue: undefined,\n value: undefined,\n multiple: false,\n disabled: false,\n tabIndex: 0,\n onValueChange: undefined,\n openOnFocus: false\n};\n","import { withHeadless } from '@primereact/core/headless';\nimport { findSingle, focus, getAttribute } from '@primeuix/utils/dom';\nimport * as React from 'react';\nimport { defaultPanelProps } from './useAccordionPanel.props';\n\ntype NavigationDirection = 'next' | 'previous' | 'first' | 'last';\n\nexport const useAccordionPanel = withHeadless({\n name: 'useAccordionPanel',\n defaultProps: defaultPanelProps,\n setup({ props, id }) {\n const context = props.context;\n const open = context?.isItemActive(props.value) ?? false;\n const disabled = props.disabled || context?.props?.disabled;\n\n const state = {\n open,\n disabled\n };\n\n // methods\n const onClick = (event: React.MouseEvent<HTMLButtonElement>) => {\n context?.updateValue(event, props.value);\n };\n\n const onFocus = (event: React.FocusEvent<HTMLButtonElement>) => {\n if (context?.props?.openOnFocus) {\n context?.updateValue(event, props.value);\n }\n };\n\n const onKeyDown = (event: React.KeyboardEvent<HTMLButtonElement>) => {\n switch (event.code) {\n case 'ArrowDown':\n focusPanel(event.currentTarget, 'next');\n break;\n\n case 'ArrowUp':\n focusPanel(event.currentTarget, 'previous');\n break;\n\n case 'Home':\n focusPanel(event.currentTarget, 'first');\n break;\n\n case 'End':\n focusPanel(event.currentTarget, 'last');\n break;\n\n case 'Enter':\n case 'NumpadEnter':\n case 'Space':\n context?.updateValue(event, props.value);\n break;\n\n case 'Tab':\n return;\n\n default:\n break;\n }\n\n event.preventDefault();\n };\n\n const focusPanel = (accordionHeader: HTMLElement | null, direction: NavigationDirection): void => {\n const findHeader = (panelElement: HTMLElement): HTMLElement | null => {\n return findSingle(panelElement, '[data-scope=\"accordion\"][data-part=\"trigger\"]') as HTMLElement | null;\n };\n\n const findAdjacentPanel = (panelElement: HTMLElement, dir: 'next' | 'previous', selfCheck = false): HTMLElement | null => {\n const siblingProperty = dir === 'next' ? 'nextElementSibling' : 'previousElementSibling';\n const element = selfCheck ? panelElement : (panelElement[siblingProperty] as HTMLElement | null);\n\n if (!element) {\n return null;\n }\n\n if (getAttribute(element, 'data-disabled')) {\n return findAdjacentPanel(element, dir);\n }\n\n return findHeader(element);\n };\n\n const findBoundaryPanel = (boundary: 'first' | 'last'): HTMLElement | null => {\n const accordionElement = context?.elementRef?.current;\n\n if (!accordionElement) return null;\n\n const targetChild = boundary === 'first' ? accordionElement.firstElementChild : accordionElement.lastElementChild;\n\n if (!targetChild) return null;\n\n const dir = boundary === 'first' ? 'next' : 'previous';\n\n return findAdjacentPanel(targetChild as HTMLElement, dir, true);\n };\n\n const currentPanel = accordionHeader?.closest('[data-scope=\"accordion\"][data-part=\"panel\"]') as HTMLElement | null;\n\n if (!currentPanel) return;\n\n let targetPanel: HTMLElement | null = null;\n\n switch (direction) {\n case 'next':\n targetPanel = findAdjacentPanel(currentPanel, 'next');\n\n if (!targetPanel) {\n targetPanel = findBoundaryPanel('first');\n }\n\n break;\n\n case 'previous':\n targetPanel = findAdjacentPanel(currentPanel, 'previous');\n\n if (!targetPanel) {\n targetPanel = findBoundaryPanel('last');\n }\n\n break;\n\n case 'first':\n targetPanel = findBoundaryPanel('first');\n break;\n\n case 'last':\n targetPanel = findBoundaryPanel('last');\n break;\n }\n\n if (targetPanel) {\n focus(targetPanel);\n }\n };\n\n // prop getters\n const contentId = id ? `${id}_content` : undefined;\n\n const contentProps = {\n id: contentId,\n 'data-scope': 'accordion',\n 'data-part': 'content',\n role: 'region' as const,\n 'aria-hidden': !open,\n [open ? 'data-open' : 'data-closed']: '',\n 'data-disabled': props.disabled || undefined\n };\n\n const triggerProps = {\n 'data-scope': 'accordion',\n 'data-part': 'trigger',\n type: 'button' as const,\n tabIndex: disabled ? -1 : context?.props?.tabIndex,\n disabled: disabled || undefined,\n 'aria-expanded': open,\n 'aria-disabled': disabled || undefined,\n 'aria-controls': contentId,\n [open ? 'data-content-open' : 'data-content-closed']: '',\n 'data-disabled': disabled || undefined,\n onClick,\n onFocus,\n onKeyDown\n };\n\n const indicatorProps = {\n 'data-scope': 'accordion',\n 'data-part': 'indicator',\n [open ? 'data-open' : 'data-closed']: ''\n };\n\n const headerProps = {\n 'data-scope': 'accordion',\n 'data-part': 'header',\n [open ? 'data-open' : 'data-closed']: ''\n };\n\n const panelProps = {\n 'data-scope': 'accordion',\n 'data-part': 'panel',\n ...(disabled ? { 'data-disabled': '' } : undefined),\n [open ? 'data-open' : 'data-closed']: ''\n };\n\n return {\n state,\n // prop getters\n panelProps,\n headerProps,\n triggerProps,\n contentProps,\n indicatorProps\n };\n }\n});\n","import type { UseAccordionPanelProps } from '@primereact/types/headless/accordion';\n\nexport const defaultPanelProps: UseAccordionPanelProps = {\n value: undefined,\n disabled: false,\n context: undefined\n};\n"],"mappings":"6aAAA,OAAS,gBAAAA,MAAoB,4BAC7B,OAAS,sBAAAC,MAA0B,yCCC5B,IAAMC,EAAkC,CAC3C,aAAc,OACd,MAAO,OACP,SAAU,GACV,SAAU,GACV,SAAU,EACV,cAAe,OACf,YAAa,EACjB,EDLO,IAAMC,EAAeC,EAAa,CACrC,KAAM,eACN,aAAAC,EACA,MAAM,CAAE,MAAAC,CAAM,EAAG,CARrB,IAAAC,EASQ,GAAM,CAACC,EAAkBC,CAAmB,EAAIC,EAAmB,CAC/D,MAAOJ,EAAM,MACb,cAAcC,EAAAD,EAAM,eAAN,KAAAC,EAAsB,KACpC,SAAUD,EAAM,aACpB,CAAC,EAEKK,EAAQ,CACV,MAAOH,CACX,EAGMI,EAAc,CAACC,EAA6BC,IAA4C,CAC1F,GAAIA,IAAQ,OAAW,OAEvB,IAAIC,EAAcP,EACZQ,EAAWC,EAAaH,CAAG,EAEjC,GAAIR,EAAM,SAAU,CAChB,IAAMY,EAAa,MAAM,QAAQH,CAAW,EAAIA,EAAc,CAAC,EAE/DA,EAAcC,EAAWE,EAAW,OAAQC,GAAMA,IAAML,CAAG,EAAIA,GAAQ,KAA4B,CAAC,GAAGI,EAAYJ,CAAG,EAAII,CAC9H,MACIH,EAAcC,EAAW,KAAOF,EAGpCL,EAAoB,CAChBM,EACA,CACI,cAAeF,EACf,MAAOE,CACX,CACJ,CAAC,CACL,EAEME,EAAgBH,GAAqD,CACvE,GAAIA,GAAQ,KAA2B,MAAO,GAE9C,GAAIR,EAAM,SAAU,CAChB,IAAMY,EAAaV,EAEnB,OAAO,MAAM,QAAQU,CAAU,GAAKA,EAAW,SAASJ,CAAsB,CAClF,KACI,QAAON,IAAqBM,CAEpC,EAGMM,EAAYC,EAAA,CACd,aAAc,YACd,YAAa,QACTf,EAAM,SAAW,CAAE,gBAAiB,EAAG,EAAI,QAGnD,MAAO,CACH,MAAAK,EAEA,UAAAS,EAEA,YAAAR,EACA,aAAAK,CACJ,CACJ,CACJ,CAAC,EEvED,OAAS,gBAAAK,MAAoB,4BAC7B,OAAS,cAAAC,EAAY,SAAAC,EAAO,gBAAAC,MAAoB,sBCCzC,IAAMC,EAA4C,CACrD,MAAO,OACP,SAAU,GACV,QAAS,MACb,EDCO,IAAMC,GAAoBC,EAAa,CAC1C,KAAM,oBACN,aAAcC,EACd,MAAM,CAAE,MAAAC,EAAO,GAAAC,CAAG,EAAG,CAVzB,IAAAC,EAAAC,EAAAC,EAWQ,IAAMC,EAAUL,EAAM,QAChBM,GAAOJ,EAAAG,GAAA,YAAAA,EAAS,aAAaL,EAAM,SAA5B,KAAAE,EAAsC,GAC7CK,EAAWP,EAAM,YAAYG,EAAAE,GAAA,YAAAA,EAAS,QAAT,YAAAF,EAAgB,UAE7CK,EAAQ,CACV,KAAAF,EACA,SAAAC,CACJ,EAGME,EAAWC,GAA+C,CAC5DL,GAAA,MAAAA,EAAS,YAAYK,EAAOV,EAAM,MACtC,EAEMW,EAAWD,GAA+C,CAzBxE,IAAAR,GA0BgBA,EAAAG,GAAA,YAAAA,EAAS,QAAT,MAAAH,EAAgB,cAChBG,GAAA,MAAAA,EAAS,YAAYK,EAAOV,EAAM,OAE1C,EAEMY,EAAaF,GAAkD,CACjE,OAAQA,EAAM,KAAM,CAChB,IAAK,YACDG,EAAWH,EAAM,cAAe,MAAM,EACtC,MAEJ,IAAK,UACDG,EAAWH,EAAM,cAAe,UAAU,EAC1C,MAEJ,IAAK,OACDG,EAAWH,EAAM,cAAe,OAAO,EACvC,MAEJ,IAAK,MACDG,EAAWH,EAAM,cAAe,MAAM,EACtC,MAEJ,IAAK,QACL,IAAK,cACL,IAAK,QACDL,GAAA,MAAAA,EAAS,YAAYK,EAAOV,EAAM,OAClC,MAEJ,IAAK,MACD,OAEJ,QACI,KACR,CAEAU,EAAM,eAAe,CACzB,EAEMG,EAAa,CAACC,EAAqCC,IAAyC,CAC9F,IAAMC,EAAcC,GACTC,EAAWD,EAAc,+CAA+C,EAG7EE,EAAoB,CAACF,EAA2BG,EAA0BC,EAAY,KAA8B,CAEtH,IAAMC,EAAUD,EAAYJ,EAAgBA,EADpBG,IAAQ,OAAS,qBAAuB,wBACQ,EAExE,OAAKE,EAIDC,EAAaD,EAAS,eAAe,EAC9BH,EAAkBG,EAASF,CAAG,EAGlCJ,EAAWM,CAAO,EAPd,IAQf,EAEME,EAAqBC,GAAmD,CArF1F,IAAAvB,EAsFgB,IAAMwB,GAAmBxB,EAAAG,GAAA,YAAAA,EAAS,aAAT,YAAAH,EAAqB,QAE9C,GAAI,CAACwB,EAAkB,OAAO,KAE9B,IAAMC,EAAcF,IAAa,QAAUC,EAAiB,kBAAoBA,EAAiB,iBAEjG,OAAKC,EAIER,EAAkBQ,EAFbF,IAAa,QAAU,OAAS,WAEc,EAAI,EAJrC,IAK7B,EAEMG,EAAed,GAAA,YAAAA,EAAiB,QAAQ,+CAE9C,GAAI,CAACc,EAAc,OAEnB,IAAIC,EAAkC,KAEtC,OAAQd,EAAW,CACf,IAAK,OACDc,EAAcV,EAAkBS,EAAc,MAAM,EAE/CC,IACDA,EAAcL,EAAkB,OAAO,GAG3C,MAEJ,IAAK,WACDK,EAAcV,EAAkBS,EAAc,UAAU,EAEnDC,IACDA,EAAcL,EAAkB,MAAM,GAG1C,MAEJ,IAAK,QACDK,EAAcL,EAAkB,OAAO,EACvC,MAEJ,IAAK,OACDK,EAAcL,EAAkB,MAAM,EACtC,KACR,CAEIK,GACAC,EAAMD,CAAW,CAEzB,EAGME,EAAY9B,EAAK,GAAGA,CAAE,WAAa,OAEnC+B,EAAe,CACjB,GAAID,EACJ,aAAc,YACd,YAAa,UACb,KAAM,SACN,cAAe,CAACzB,EAChB,CAACA,EAAO,YAAc,aAAa,EAAG,GACtC,gBAAiBN,EAAM,UAAY,MACvC,EAEMiC,EAAe,CACjB,aAAc,YACd,YAAa,UACb,KAAM,SACN,SAAU1B,EAAW,IAAKH,EAAAC,GAAA,YAAAA,EAAS,QAAT,YAAAD,EAAgB,SAC1C,SAAUG,GAAY,OACtB,gBAAiBD,EACjB,gBAAiBC,GAAY,OAC7B,gBAAiBwB,EACjB,CAACzB,EAAO,oBAAsB,qBAAqB,EAAG,GACtD,gBAAiBC,GAAY,OAC7B,QAAAE,EACA,QAAAE,EACA,UAAAC,CACJ,EAEMsB,EAAiB,CACnB,aAAc,YACd,YAAa,YACb,CAAC5B,EAAO,YAAc,aAAa,EAAG,EAC1C,EAEM6B,EAAc,CAChB,aAAc,YACd,YAAa,SACb,CAAC7B,EAAO,YAAc,aAAa,EAAG,EAC1C,EAEM8B,EAAaC,EAAAC,EAAA,CACf,aAAc,YACd,YAAa,SACT/B,EAAW,CAAE,gBAAiB,EAAG,EAAI,QAH1B,CAIf,CAACD,EAAO,YAAc,aAAa,EAAG,EAC1C,GAEA,MAAO,CACH,MAAAE,EAEA,WAAA4B,EACA,YAAAD,EACA,aAAAF,EACA,aAAAD,EACA,eAAAE,CACJ,CACJ,CACJ,CAAC","names":["withHeadless","useControlledState","defaultProps","useAccordion","withHeadless","defaultProps","props","_a","activeValueState","setActiveValueState","useControlledState","state","updateValue","event","key","activeValue","isActive","isItemActive","arrayValue","k","rootProps","__spreadValues","withHeadless","findSingle","focus","getAttribute","defaultPanelProps","useAccordionPanel","withHeadless","defaultPanelProps","props","id","_a","_b","_c","context","open","disabled","state","onClick","event","onFocus","onKeyDown","focusPanel","accordionHeader","direction","findHeader","panelElement","findSingle","findAdjacentPanel","dir","selfCheck","element","getAttribute","findBoundaryPanel","boundary","accordionElement","targetChild","currentPanel","targetPanel","focus","contentId","contentProps","triggerProps","indicatorProps","headerProps","panelProps","__spreadProps","__spreadValues"]}
@@ -1,12 +1,13 @@
1
- import { useAccordionProps } from '@primereact/types/shared/accordion';
2
1
  import * as React from 'react';
3
- export declare const useAccordion: (inProps?: unknown) => import("@primereact/types/core").HeadlessInstance<useAccordionProps, unknown, {
2
+ export declare const useAccordion: (inProps?: unknown) => import("@primereact/types/core").HeadlessInstance<import("@primereact/types/headless/accordion").UseAccordionProps, unknown, {
4
3
  state: {
5
4
  value: string | number | (string | number)[] | null | undefined;
6
5
  };
7
- updateValue: (key: null | undefined | string | number) => void;
6
+ rootProps: {
7
+ 'data-disabled'?: string | undefined;
8
+ 'data-scope': string;
9
+ 'data-part': string;
10
+ };
11
+ updateValue: (event: React.SyntheticEvent, key: null | undefined | string | number) => void;
8
12
  isItemActive: (key: null | undefined | string | number) => boolean;
9
- onHeaderClick: (event: React.MouseEvent<HTMLButtonElement>, value: null | undefined | string | number) => void;
10
- onHeaderFocus: (event: React.FocusEvent<HTMLButtonElement>, value: null | undefined | string | number) => void;
11
- onHeaderKeyDown: (event: React.KeyboardEvent<HTMLButtonElement>, value: null | undefined | string | number) => void;
12
13
  }>;
@@ -1,2 +1,2 @@
1
- import type { useAccordionProps } from '@primereact/types/shared/accordion';
2
- export declare const defaultProps: useAccordionProps;
1
+ import type { UseAccordionProps } from '@primereact/types/headless/accordion';
2
+ export declare const defaultProps: UseAccordionProps;
@@ -0,0 +1,46 @@
1
+ import * as React from 'react';
2
+ export declare const useAccordionPanel: (inProps?: unknown) => import("@primereact/types/core").HeadlessInstance<import("@primereact/types/headless/accordion").UseAccordionPanelProps, unknown, {
3
+ state: {
4
+ open: boolean;
5
+ disabled: boolean | undefined;
6
+ };
7
+ panelProps: {
8
+ 'data-disabled'?: string | undefined;
9
+ 'data-scope': string;
10
+ 'data-part': string;
11
+ };
12
+ headerProps: {
13
+ [x: string]: string;
14
+ 'data-scope': string;
15
+ 'data-part': string;
16
+ };
17
+ triggerProps: {
18
+ [x: string]: string | number | boolean | ((event: React.MouseEvent<HTMLButtonElement>) => void) | ((event: React.FocusEvent<HTMLButtonElement>) => void) | ((event: React.KeyboardEvent<HTMLButtonElement>) => void) | undefined;
19
+ 'data-scope': string;
20
+ 'data-part': string;
21
+ type: "button";
22
+ tabIndex: number | undefined;
23
+ disabled: true | undefined;
24
+ 'aria-expanded': boolean;
25
+ 'aria-disabled': true | undefined;
26
+ 'aria-controls': string | undefined;
27
+ 'data-disabled': true | undefined;
28
+ onClick: (event: React.MouseEvent<HTMLButtonElement>) => void;
29
+ onFocus: (event: React.FocusEvent<HTMLButtonElement>) => void;
30
+ onKeyDown: (event: React.KeyboardEvent<HTMLButtonElement>) => void;
31
+ };
32
+ contentProps: {
33
+ [x: string]: string | boolean | undefined;
34
+ id: string | undefined;
35
+ 'data-scope': string;
36
+ 'data-part': string;
37
+ role: "region";
38
+ 'aria-hidden': boolean;
39
+ 'data-disabled': true | undefined;
40
+ };
41
+ indicatorProps: {
42
+ [x: string]: string;
43
+ 'data-scope': string;
44
+ 'data-part': string;
45
+ };
46
+ }>;
@@ -0,0 +1,2 @@
1
+ import type { UseAccordionPanelProps } from '@primereact/types/headless/accordion';
2
+ export declare const defaultPanelProps: UseAccordionPanelProps;
@@ -1,2 +1,3 @@
1
1
  export * from './useAnimateOnScroll';
2
2
  export * from './useAnimateOnScroll.props';
3
+ export type * from '@primereact/types/headless/animateonscroll';
@@ -1,2 +1,2 @@
1
- var H=Object.defineProperty,U=Object.defineProperties;var j=Object.getOwnPropertyDescriptors;var f=Object.getOwnPropertySymbols;var O=Object.prototype.hasOwnProperty,h=Object.prototype.propertyIsEnumerable;var C=(o,e,r)=>e in o?H(o,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):o[e]=r,I=(o,e)=>{for(var r in e||(e={}))O.call(e,r)&&C(o,r,e[r]);if(f)for(var r of f(e))h.call(e,r)&&C(o,r,e[r]);return o},L=(o,e)=>U(o,j(e));var k=(o,e)=>{var r={};for(var n in o)O.call(o,n)&&e.indexOf(n)<0&&(r[n]=o[n]);if(o!=null&&f)for(var n of f(o))e.indexOf(n)<0&&h.call(o,n)&&(r[n]=o[n]);return r};import{withHeadless as q}from"@primereact/core/headless";import{useIntersectionObserver as g}from"@primereact/hooks/use-intersection-observer";import{useMountEffect as z}from"@primereact/hooks/use-mount-effect";import{useUnmountEffect as B}from"@primereact/hooks/use-unmount-effect";import{addClass as x,removeClass as u}from"@primeuix/utils/dom";import*as i from"react";var S={enterClassName:"",leaveClassName:"",once:!1,root:void 0,rootMargin:void 0,threshold:.5};var X=q({name:"useAnimateOnScroll",defaultProps:S,setup({props:o,elementRef:e}){let E=o,{enterClassName:r,leaveClassName:n,once:l}=E,P=k(E,["enterClassName","leaveClassName","once"]),m=i.useRef(!1),c=i.useRef(null),s=i.useRef(void 0),{observe:M,unobserve:p}=g(L(I({},P),{onIntersect:([t])=>{t.isIntersecting?T():w(),m.current=!0}})),{observe:v,unobserve:d}=g({threshold:0,onIntersect:([t])=>{let a=e.current;a&&(t==null?void 0:t.boundingClientRect.top)>0&&!t.isIntersecting&&(a.style.opacity=r?"0":"",r&&u(a,r),n&&u(a,n),d(a),a.removeAttribute("data-pd-animateonscroll-state"),s.current=void 0)}}),b=i.useCallback(()=>{let t=e.current;t&&(p(t),d(t),m.current=!1)},[p,d,e]),T=i.useCallback(()=>{let t=e.current;!t||s.current!==void 0||s.current!=="enter"&&(t.style.opacity="",r&&(n&&u(t,n),x(t,r!=null?r:""),t.setAttribute("data-pd-animateonscroll-state","enter"),s.current="enter",A(),l&&setTimeout(()=>{b()},0)))},[s,r,n,l,b]),w=i.useCallback(()=>{let t=e.current;!t||s.current!==void 0||s.current!=="leave"&&(n?(r&&u(t,r),x(t,n!=null?n:""),A(),s.current="leave",t.setAttribute("data-pd-animateonscroll-state","leave")):t.style.opacity="0")},[s,r,n]),A=i.useCallback(()=>{let t=e.current;t&&(c.current||(c.current=()=>{t&&(r&&u(t,r),n&&u(t,n),l||v(t),y(),s.current==="leave"&&(t.style.opacity="0"),s.current==="enter"&&(t.style.opacity=""),t.removeAttribute("data-pd-animateonscroll-state"),s.current=void 0)},t.addEventListener("animationend",c.current),t.addEventListener("transitionend",c.current)))},[r,n,l,v]),y=i.useCallback(()=>{let t=e.current;t&&c.current&&(t.removeEventListener("animationend",c.current),t.removeEventListener("transitionend",c.current),c.current=null)},[]);return i.useLayoutEffect(()=>{e.current&&r&&(e.current.style.opacity="0")},[e,r]),z(()=>{e.current&&(e.current.setAttribute("data-pd-animateonscroll","true"),setTimeout(()=>e.current&&M(e.current),0))}),B(()=>{e.current&&(e.current.removeAttribute("data-pd-animateonscroll"),e.current.removeAttribute("data-pd-animateonscroll-state"),p(e.current),d(e.current),y())}),{state:{}}}});export{S as defaultProps,X as useAnimateOnScroll};
1
+ var U=Object.defineProperty,w=Object.defineProperties;var j=Object.getOwnPropertyDescriptors;var d=Object.getOwnPropertySymbols;var C=Object.prototype.hasOwnProperty,L=Object.prototype.propertyIsEnumerable;var E=(n,t,r)=>t in n?U(n,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):n[t]=r,h=(n,t)=>{for(var r in t||(t={}))C.call(t,r)&&E(n,r,t[r]);if(d)for(var r of d(t))L.call(t,r)&&E(n,r,t[r]);return n},O=(n,t)=>w(n,j(t));var k=(n,t)=>{var r={};for(var s in n)C.call(n,s)&&t.indexOf(s)<0&&(r[s]=n[s]);if(n!=null&&d)for(var s of d(n))t.indexOf(s)<0&&L.call(n,s)&&(r[s]=n[s]);return r};import{withHeadless as q}from"@primereact/core/headless";import{useIntersectionObserver as P}from"@primereact/hooks/use-intersection-observer";import{useMountEffect as z}from"@primereact/hooks/use-mount-effect";import{useUnmountEffect as B}from"@primereact/hooks/use-unmount-effect";import{addClass as x,removeClass as l}from"@primeuix/utils/dom";import*as c from"react";var I={enterClassName:"",leaveClassName:"",once:!1,root:void 0,rootMargin:void 0,threshold:.5};var Y=q({name:"useAnimateOnScroll",defaultProps:I,setup({props:n}){let y=n,{enterClassName:t,leaveClassName:r,once:s}=y,S=k(y,["enterClassName","leaveClassName","once"]),o=c.useRef(null),p=c.useRef(!1),a=c.useRef(null),i=c.useRef(void 0),g=c.useCallback(e=>{o.current=e},[]),{observe:M,unobserve:m}=P(O(h({},S),{onIntersect:([e])=>{e.isIntersecting?T():H(),p.current=!0}})),{observe:v,unobserve:f}=P({threshold:0,onIntersect:([e])=>{let u=o.current;u&&(e==null?void 0:e.boundingClientRect.top)>0&&!e.isIntersecting&&(u.style.opacity=t?"0":"",t&&l(u,t),r&&l(u,r),f(u),u.removeAttribute("data-enter"),u.removeAttribute("data-leave"),i.current=void 0)}}),b=c.useCallback(()=>{let e=o.current;e&&(m(e),f(e),p.current=!1)},[m,f]),T=c.useCallback(()=>{let e=o.current;!e||i.current!==void 0||i.current!=="enter"&&(e.style.opacity="",t&&(r&&l(e,r),x(e,t!=null?t:""),e.setAttribute("data-enter",""),i.current="enter",R(),s&&setTimeout(()=>{b()},0)))},[i,t,r,s,b]),H=c.useCallback(()=>{let e=o.current;!e||i.current!==void 0||i.current!=="leave"&&(r?(t&&l(e,t),x(e,r!=null?r:""),R(),i.current="leave",e.setAttribute("data-leave","")):e.style.opacity="0")},[i,t,r]),R=c.useCallback(()=>{let e=o.current;e&&(a.current||(a.current=()=>{e&&(t&&l(e,t),r&&l(e,r),s||v(e),A(),i.current==="leave"&&(e.style.opacity="0"),i.current==="enter"&&(e.style.opacity=""),e.removeAttribute("data-enter"),e.removeAttribute("data-leave"),i.current=void 0)},e.addEventListener("animationend",a.current),e.addEventListener("transitionend",a.current)))},[t,r,s,v]),A=c.useCallback(()=>{let e=o.current;e&&a.current&&(e.removeEventListener("animationend",a.current),e.removeEventListener("transitionend",a.current),a.current=null)},[]);return c.useLayoutEffect(()=>{o.current&&t&&(o.current.style.opacity="0")},[t]),z(()=>{o.current&&setTimeout(()=>o.current&&M(o.current),0)}),B(()=>{o.current&&(o.current.removeAttribute("data-enter"),o.current.removeAttribute("data-leave"),m(o.current),f(o.current),A())}),{state:{},rootProps:{ref:g,"data-scope":"animateonscroll","data-part":"root"}}}});export{I as defaultProps,Y as useAnimateOnScroll};
2
2
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/animateonscroll/useAnimateOnScroll.ts","../../src/animateonscroll/useAnimateOnScroll.props.ts"],"sourcesContent":["import { withHeadless } from '@primereact/core/headless';\nimport { useIntersectionObserver } from '@primereact/hooks/use-intersection-observer';\nimport { useMountEffect } from '@primereact/hooks/use-mount-effect';\nimport { useUnmountEffect } from '@primereact/hooks/use-unmount-effect';\nimport { addClass, removeClass } from '@primeuix/utils/dom';\nimport * as React from 'react';\nimport { defaultProps } from './useAnimateOnScroll.props';\n\nexport const useAnimateOnScroll = withHeadless({\n name: 'useAnimateOnScroll',\n defaultProps,\n setup({ props, elementRef }) {\n const { enterClassName, leaveClassName, once, ...rest } = props;\n const isObserverActiveRef = React.useRef(false);\n const animationEndListener = React.useRef<(() => void) | null>(null);\n const animationState = React.useRef<'enter' | 'leave' | undefined>(undefined);\n const { observe, unobserve } = useIntersectionObserver({\n ...rest,\n onIntersect: ([entry]) => {\n if (entry.isIntersecting) {\n enter();\n } else {\n leave();\n }\n\n isObserverActiveRef.current = true;\n }\n });\n\n const { observe: observeReset, unobserve: unobserveReset } = useIntersectionObserver({\n threshold: 0,\n onIntersect: ([entry]) => {\n const el = elementRef.current;\n\n if (!el) return;\n\n if (entry?.boundingClientRect.top > 0 && !entry.isIntersecting) {\n el.style.opacity = enterClassName ? '0' : '';\n\n if (enterClassName) {\n removeClass(el, enterClassName);\n }\n\n if (leaveClassName) {\n removeClass(el, leaveClassName);\n }\n\n unobserveReset(el);\n el.removeAttribute('data-pd-animateonscroll-state');\n animationState.current = undefined;\n }\n }\n });\n const unbindIntersectionObserver = React.useCallback(() => {\n const el = elementRef.current;\n\n if (el) {\n unobserve(el);\n unobserveReset(el);\n isObserverActiveRef.current = false;\n }\n }, [unobserve, unobserveReset, elementRef]);\n\n const enter = React.useCallback(() => {\n const el = elementRef.current;\n\n if (!el || animationState.current !== undefined) return;\n\n if (animationState.current === 'enter') return;\n\n el.style.opacity = '';\n\n if (enterClassName) {\n if (leaveClassName) {\n removeClass(el, leaveClassName);\n }\n\n addClass(el, enterClassName ?? '');\n el.setAttribute('data-pd-animateonscroll-state', 'enter');\n animationState.current = 'enter';\n\n bindAnimationEvents();\n\n if (once) {\n setTimeout(() => {\n unbindIntersectionObserver();\n }, 0);\n }\n }\n }, [animationState, enterClassName, leaveClassName, once, unbindIntersectionObserver]);\n\n const leave = React.useCallback(() => {\n const el = elementRef.current;\n\n if (!el || animationState.current !== undefined) return;\n\n if (animationState.current === 'leave') return;\n\n if (leaveClassName) {\n if (enterClassName) {\n removeClass(el, enterClassName);\n }\n\n addClass(el, leaveClassName ?? '');\n bindAnimationEvents();\n animationState.current = 'leave';\n el.setAttribute('data-pd-animateonscroll-state', 'leave');\n } else {\n el.style.opacity = '0';\n }\n }, [animationState, enterClassName, leaveClassName]);\n\n const bindAnimationEvents = React.useCallback(() => {\n const el = elementRef.current;\n\n if (!el) return;\n\n if (!animationEndListener.current) {\n animationEndListener.current = () => {\n if (el) {\n if (enterClassName) {\n removeClass(el, enterClassName);\n }\n\n if (leaveClassName) {\n removeClass(el, leaveClassName);\n }\n\n if (!once) {\n observeReset(el);\n }\n\n unbindAnimationEvents();\n\n if (animationState.current === 'leave') {\n el.style.opacity = '0';\n }\n\n if (animationState.current === 'enter') {\n el.style.opacity = '';\n }\n\n el.removeAttribute('data-pd-animateonscroll-state');\n animationState.current = undefined;\n }\n };\n\n el.addEventListener('animationend', animationEndListener.current);\n el.addEventListener('transitionend', animationEndListener.current);\n }\n }, [enterClassName, leaveClassName, once, observeReset]);\n\n const unbindAnimationEvents = React.useCallback(() => {\n const el = elementRef.current;\n\n if (!el) return;\n\n if (animationEndListener.current) {\n el.removeEventListener('animationend', animationEndListener.current);\n el.removeEventListener('transitionend', animationEndListener.current);\n animationEndListener.current = null;\n }\n }, []);\n\n // Effects\n React.useLayoutEffect(() => {\n if (elementRef.current && enterClassName) {\n elementRef.current.style.opacity = '0';\n }\n }, [elementRef, enterClassName]);\n\n useMountEffect(() => {\n if (elementRef.current) {\n elementRef.current.setAttribute('data-pd-animateonscroll', 'true');\n setTimeout(() => elementRef.current && observe(elementRef.current), 0);\n }\n });\n\n useUnmountEffect(() => {\n if (elementRef.current) {\n elementRef.current.removeAttribute('data-pd-animateonscroll');\n elementRef.current.removeAttribute('data-pd-animateonscroll-state');\n unobserve(elementRef.current);\n unobserveReset(elementRef.current);\n unbindAnimationEvents();\n }\n });\n\n const state = {};\n\n return {\n state\n };\n }\n});\n","import type { useAnimateOnScrollProps } from '@primereact/types/shared/animateonscroll';\n\nexport const defaultProps: useAnimateOnScrollProps = {\n enterClassName: '',\n leaveClassName: '',\n once: false,\n root: undefined,\n rootMargin: undefined,\n threshold: 0.5\n};\n"],"mappings":"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","names":["withHeadless","useIntersectionObserver","useMountEffect","useUnmountEffect","addClass","removeClass","React","defaultProps","useAnimateOnScroll","withHeadless","defaultProps","props","elementRef","_a","enterClassName","leaveClassName","once","rest","__objRest","isObserverActiveRef","animationEndListener","animationState","observe","unobserve","useIntersectionObserver","__spreadProps","__spreadValues","entry","enter","leave","observeReset","unobserveReset","el","removeClass","unbindIntersectionObserver","addClass","bindAnimationEvents","unbindAnimationEvents","useMountEffect","useUnmountEffect"]}
1
+ {"version":3,"sources":["../../src/animateonscroll/useAnimateOnScroll.ts","../../src/animateonscroll/useAnimateOnScroll.props.ts"],"sourcesContent":["import { withHeadless } from '@primereact/core/headless';\nimport { useIntersectionObserver } from '@primereact/hooks/use-intersection-observer';\nimport { useMountEffect } from '@primereact/hooks/use-mount-effect';\nimport { useUnmountEffect } from '@primereact/hooks/use-unmount-effect';\nimport { addClass, removeClass } from '@primeuix/utils/dom';\nimport * as React from 'react';\nimport { defaultProps } from './useAnimateOnScroll.props';\n\nexport const useAnimateOnScroll = withHeadless({\n name: 'useAnimateOnScroll',\n defaultProps,\n setup({ props }) {\n const { enterClassName, leaveClassName, once, ...rest } = props;\n const rootRef = React.useRef<HTMLElement | null>(null);\n const isObserverActiveRef = React.useRef(false);\n const animationEndListener = React.useRef<(() => void) | null>(null);\n const animationState = React.useRef<'enter' | 'leave' | undefined>(undefined);\n\n const setRootRef = React.useCallback((node: HTMLElement | null) => {\n rootRef.current = node;\n }, []);\n\n const { observe, unobserve } = useIntersectionObserver({\n ...rest,\n onIntersect: ([entry]) => {\n if (entry.isIntersecting) {\n enter();\n } else {\n leave();\n }\n\n isObserverActiveRef.current = true;\n }\n });\n\n const { observe: observeReset, unobserve: unobserveReset } = useIntersectionObserver({\n threshold: 0,\n onIntersect: ([entry]) => {\n const el = rootRef.current;\n\n if (!el) return;\n\n if (entry?.boundingClientRect.top > 0 && !entry.isIntersecting) {\n el.style.opacity = enterClassName ? '0' : '';\n\n if (enterClassName) {\n removeClass(el, enterClassName);\n }\n\n if (leaveClassName) {\n removeClass(el, leaveClassName);\n }\n\n unobserveReset(el);\n el.removeAttribute('data-enter');\n el.removeAttribute('data-leave');\n animationState.current = undefined;\n }\n }\n });\n\n const unbindIntersectionObserver = React.useCallback(() => {\n const el = rootRef.current;\n\n if (el) {\n unobserve(el);\n unobserveReset(el);\n isObserverActiveRef.current = false;\n }\n }, [unobserve, unobserveReset]);\n\n const enter = React.useCallback(() => {\n const el = rootRef.current;\n\n if (!el || animationState.current !== undefined) return;\n\n if (animationState.current === 'enter') return;\n\n el.style.opacity = '';\n\n if (enterClassName) {\n if (leaveClassName) {\n removeClass(el, leaveClassName);\n }\n\n addClass(el, enterClassName ?? '');\n el.setAttribute('data-enter', '');\n animationState.current = 'enter';\n\n bindAnimationEvents();\n\n if (once) {\n setTimeout(() => {\n unbindIntersectionObserver();\n }, 0);\n }\n }\n }, [animationState, enterClassName, leaveClassName, once, unbindIntersectionObserver]);\n\n const leave = React.useCallback(() => {\n const el = rootRef.current;\n\n if (!el || animationState.current !== undefined) return;\n\n if (animationState.current === 'leave') return;\n\n if (leaveClassName) {\n if (enterClassName) {\n removeClass(el, enterClassName);\n }\n\n addClass(el, leaveClassName ?? '');\n bindAnimationEvents();\n animationState.current = 'leave';\n el.setAttribute('data-leave', '');\n } else {\n el.style.opacity = '0';\n }\n }, [animationState, enterClassName, leaveClassName]);\n\n const bindAnimationEvents = React.useCallback(() => {\n const el = rootRef.current;\n\n if (!el) return;\n\n if (!animationEndListener.current) {\n animationEndListener.current = () => {\n if (el) {\n if (enterClassName) {\n removeClass(el, enterClassName);\n }\n\n if (leaveClassName) {\n removeClass(el, leaveClassName);\n }\n\n if (!once) {\n observeReset(el);\n }\n\n unbindAnimationEvents();\n\n if (animationState.current === 'leave') {\n el.style.opacity = '0';\n }\n\n if (animationState.current === 'enter') {\n el.style.opacity = '';\n }\n\n el.removeAttribute('data-enter');\n el.removeAttribute('data-leave');\n animationState.current = undefined;\n }\n };\n\n el.addEventListener('animationend', animationEndListener.current);\n el.addEventListener('transitionend', animationEndListener.current);\n }\n }, [enterClassName, leaveClassName, once, observeReset]);\n\n const unbindAnimationEvents = React.useCallback(() => {\n const el = rootRef.current;\n\n if (!el) return;\n\n if (animationEndListener.current) {\n el.removeEventListener('animationend', animationEndListener.current);\n el.removeEventListener('transitionend', animationEndListener.current);\n animationEndListener.current = null;\n }\n }, []);\n\n // Effects\n React.useLayoutEffect(() => {\n if (rootRef.current && enterClassName) {\n rootRef.current.style.opacity = '0';\n }\n }, [enterClassName]);\n\n useMountEffect(() => {\n if (rootRef.current) {\n setTimeout(() => rootRef.current && observe(rootRef.current), 0);\n }\n });\n\n useUnmountEffect(() => {\n if (rootRef.current) {\n rootRef.current.removeAttribute('data-enter');\n rootRef.current.removeAttribute('data-leave');\n unobserve(rootRef.current);\n unobserveReset(rootRef.current);\n unbindAnimationEvents();\n }\n });\n\n const state = {};\n\n // prop getters\n const rootProps = {\n ref: setRootRef,\n 'data-scope': 'animateonscroll',\n 'data-part': 'root'\n };\n\n return {\n state,\n // prop getters\n rootProps\n };\n }\n});\n","import type { UseAnimateOnScrollProps } from '@primereact/types/headless/animateonscroll';\n\nexport const defaultProps: UseAnimateOnScrollProps = {\n enterClassName: '',\n leaveClassName: '',\n once: false,\n root: undefined,\n rootMargin: undefined,\n threshold: 0.5\n};\n"],"mappings":"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","names":["withHeadless","useIntersectionObserver","useMountEffect","useUnmountEffect","addClass","removeClass","React","defaultProps","useAnimateOnScroll","withHeadless","defaultProps","props","_a","enterClassName","leaveClassName","once","rest","__objRest","rootRef","isObserverActiveRef","animationEndListener","animationState","setRootRef","node","observe","unobserve","useIntersectionObserver","__spreadProps","__spreadValues","entry","enter","leave","observeReset","unobserveReset","el","removeClass","unbindIntersectionObserver","addClass","bindAnimationEvents","unbindAnimationEvents","useMountEffect","useUnmountEffect"]}
@@ -1,3 +1,8 @@
1
- export declare const useAnimateOnScroll: (inProps?: unknown) => import("@primereact/types/core").HeadlessInstance<import("@primereact/types/shared/animateonscroll").useAnimateOnScrollProps, unknown, {
1
+ export declare const useAnimateOnScroll: (inProps?: unknown) => import("@primereact/types/core").HeadlessInstance<import("@primereact/types/headless/animateonscroll").UseAnimateOnScrollProps, unknown, {
2
2
  state: {};
3
+ rootProps: {
4
+ ref: (node: HTMLElement | null) => void;
5
+ 'data-scope': string;
6
+ 'data-part': string;
7
+ };
3
8
  }>;
@@ -1,2 +1,2 @@
1
- import type { useAnimateOnScrollProps } from '@primereact/types/shared/animateonscroll';
2
- export declare const defaultProps: useAnimateOnScrollProps;
1
+ import type { UseAnimateOnScrollProps } from '@primereact/types/headless/animateonscroll';
2
+ export declare const defaultProps: UseAnimateOnScrollProps;
@@ -0,0 +1,3 @@
1
+ export * from './useAutoComplete';
2
+ export * from './useAutoComplete.props';
3
+ export type * from '@primereact/types/headless/autocomplete';
@@ -0,0 +1,2 @@
1
+ var fe=Object.defineProperty,me=Object.defineProperties;var ge=Object.getOwnPropertyDescriptors;var A=Object.getOwnPropertySymbols;var Ee=Object.prototype.hasOwnProperty,Oe=Object.prototype.propertyIsEnumerable;var D=(t,i,c)=>i in t?fe(t,i,{enumerable:!0,configurable:!0,writable:!0,value:c}):t[i]=c,p=(t,i)=>{for(var c in i||(i={}))Ee.call(i,c)&&D(t,c,i[c]);if(A)for(var c of A(i))Oe.call(i,c)&&D(t,c,i[c]);return t},R=(t,i)=>me(t,ge(i));import{withHeadless as be}from"@primereact/core/headless";import{useListbox as he}from"@primereact/headless/listbox";import{usePopover as ve}from"@primereact/headless/popover";import{useControlledState as M}from"@primereact/hooks/use-controlled-state";import{useEventListener as U}from"@primereact/hooks/use-event-listener";import{getOuterWidth as Re,isNotEmpty as ye,focus as we,toElement as Le}from"@primeuix/utils";import*as u from"react";var H={open:void 0,defaultOpen:void 0,value:void 0,defaultValue:void 0,inputValue:void 0,defaultInputValue:"",options:[],optionKey:void 0,optionLabel:void 0,optionValue:void 0,optionDisabled:void 0,optionGroupLabel:void 0,optionGroupChildren:void 0,disabled:!1,invalid:!1,locale:void 0,metaKeySelection:!1,multiple:!1,autoOptionFocus:!1,selectOnFocus:!1,focusOnHover:!0,closeOnEscape:!1,autoFocus:!1,trapped:!1,minLength:1,delay:0,forceSelection:!1,onOpenChange:void 0,onValueChange:void 0,onInputValueChange:void 0,onComplete:void 0};var Te=be({name:"useAutoComplete",defaultProps:H,setup({props:t,id:i}){var S,T;let c=u.useRef(null),q=e=>{var o;(o=c.current)==null||o.call(c,e)},G=e=>{var o;(o=t.onOpenChange)==null||o.call(t,{value:!!e.value})},n=he({value:t.value,defaultValue:t.defaultValue,options:t.options,optionKey:t.optionKey,optionLabel:t.optionLabel,optionValue:t.optionValue,optionDisabled:t.optionDisabled,optionGroupLabel:t.optionGroupLabel,optionGroupChildren:t.optionGroupChildren,disabled:t.disabled,locale:t.locale,autoOptionFocus:t.autoOptionFocus,selectOnFocus:t.selectOnFocus,focusOnHover:t.focusOnHover,multiple:!1,metaKeySelection:t.metaKeySelection,onValueChange:q}),a=ve({open:t.open,defaultOpen:(S=t.defaultOpen)!=null?S:!1,closeOnEscape:t.closeOnEscape,autoFocus:t.autoFocus,trapped:t.trapped,onOpenChange:G}),[y,g]=M({value:t.value,defaultValue:t.defaultValue,onChange:t.onValueChange}),[l,E]=M({value:t.inputValue,defaultValue:(T=t.defaultInputValue)!=null?T:"",onChange:t.onInputValueChange}),[B,I]=u.useState(!1),[_,w]=u.useState(!1),f=u.useRef(null),v=u.useRef(!1),L=u.useRef(!1),$={value:y,inputValue:l,opened:a.state.open,focused:B,focusedOptionIndex:n.state.focusedOptionIndex,searching:_,anchorElement:a.state.anchorElement,positionerElement:a.state.positionerElement,popupElement:a.state.popupElement,arrowElement:a.state.arrowElement,rendered:a.state.rendered},O=(e,o)=>{o!=null&&t.onComplete&&t.onComplete({originalEvent:e,query:o})},b=()=>{a.setOpen(!0)},d=()=>{a.setOpen(!1),w(!1),n.changeFocusedOptionIndex(new Event("blur"),n.findFirstFocusedOptionIndex())},z=e=>{var s;f.current&&clearTimeout(f.current);let o=e.target.value;if(C()){let r=n.findSelectedOptionIndex(),m=r!==-1?n.getOptions()[r]:null,x=m?n.getOptionLabel(m):"";o!==x&&(g([null,{originalEvent:e,value:null,option:null}]),n.updateModel(e,null))}o.length===0?(O(e,""),d()):o.length>=((s=t.minLength)!=null?s:1)?(w(!0),f.current=setTimeout(()=>{O(e,o),b(),n.changeFocusedOptionIndex(new Event("input"),-1)},t.delay)):d(),E([o,{originalEvent:e,query:o}])},N=e=>{var o,s;t.disabled||(L.current?L.current=!1:t.autoOptionFocus&&O(e,e.target.value),(s=(o=n.listProps).onFocus)==null||s.call(o),I(!0))},W=e=>{var o,s;(s=(o=n.listProps).onBlur)==null||s.call(o),I(!1),t.forceSelection&&ee(e)},P=e=>{let o=e.value,s=n.getOptions().find(m=>{let x=n.getOptionValue(m);return n.isEquals(x,o)}),r=s?n.getOptionLabel(s):"";g([o,{originalEvent:e.originalEvent,value:o,option:s}]),E([r,{originalEvent:e.originalEvent,query:r}]),d(),L.current=!0,h()};c.current=P;let F=e=>{e.preventDefault(),e.stopPropagation(),g([null,{originalEvent:e,value:null,option:null}]),E(["",{originalEvent:e,query:""}]),n.updateModel(e,null),a.state.open&&d(),h()},j=e=>{(e.code==="Enter"||e.code==="Space")&&F(e)},J=e=>{switch(e.code){case"ArrowDown":Q(e);break;case"ArrowUp":X(e);break;case"ArrowLeft":case"ArrowRight":n.changeFocusedOptionIndex(e,-1);break;case"Enter":case"NumpadEnter":Y(e);break;case"Space":!t.autoOptionFocus&&n.state.focusedOptionIndex!==-1&&n.onOptionSelect(e,n.getOptions()[n.state.focusedOptionIndex]);break;case"Home":case"End":case"PageUp":case"PageDown":a.state.open&&n.listProps.onKeyDown(e);break;case"Escape":a.state.open&&(d(),h(),e.stopPropagation());break;case"Tab":a.state.open&&d();break;default:break}},Q=e=>{var o;!a.state.open&&l&&(l==null?void 0:l.length)>=((o=t.minLength)!=null?o:1)&&(v.current=!0,O(e,l!=null?l:""),b()),n.listProps.onKeyDown(e),e.preventDefault()},X=e=>{var o;if(!a.state.open&&l&&(l==null?void 0:l.length)>=((o=t.minLength)!=null?o:1)&&(v.current=!0,O(e,l!=null?l:""),b()),e.altKey){let s=n.state.focusedOptionIndex;if(s!==-1){let r=n.getOptions()[s];r&&P({originalEvent:e,value:n.getOptionValue(r)})}a.state.open&&d()}else n.listProps.onKeyDown(e);e.preventDefault()},Y=e=>{let o=n.state.focusedOptionIndex;if(a.state.open&&o!==-1){let s=n.getOptions()[o];s&&!n.isOptionDisabled(s)&&(n.onOptionSelect(e,s),e.preventDefault())}},Z=(e,o)=>{var s;return n.isValidOption(e)&&((s=n.getOptionLabel(e))==null?void 0:s.toLocaleLowerCase(t.locale))===o.toLocaleLowerCase(t.locale)},ee=e=>{if(t.options&&t.options.length>0){let o=n.getOptions().find(s=>Z(s,l||""));if(o!==void 0){let s=n.getOptions().find(m=>n.getOptionValue(m)===o),r=s?n.getOptionLabel(s):"";g([o,{originalEvent:e,value:o,option:s}]),E([r,{originalEvent:e,query:r}])}else E(["",{originalEvent:e,query:""}]),g([null,{originalEvent:e,value:null,option:null}])}},C=()=>ye(y),V=()=>{a.state.open?d():b()},h=()=>{let e=Le(a.state.anchorElement);e&&we(e)},te=()=>{t.disabled||V()},ne=()=>{if(!C())return null;let e=n.getOptions().find(o=>{let s=n.getOptionValue(o);return n.isEquals(s,y)});return e?n.getOptionLabel(e):null},[oe]=U({target:()=>document.querySelector(`label[for="${i}"]`),type:"click",listener:()=>{h()}}),[k,K]=U({target:"window",type:"resize",listener:()=>{a.state.open&&d()}});u.useEffect(()=>{oe()},[i]),u.useEffect(()=>{f.current&&(clearTimeout(f.current),f.current=null)},[]),u.useEffect(()=>{w(!1)},[t.options]),u.useEffect(()=>{a.state.open?k():K()},[a.state.open,k,K]),u.useEffect(()=>{a.state.open&&a.state.positionerElement&&(a.state.anchorElement&&(a.state.positionerElement.style.minWidth=Re(a.state.anchorElement)+"px"),(v.current||t.autoOptionFocus)&&requestAnimationFrame(()=>{requestAnimationFrame(()=>{let e=n.state.focusedOptionIndex,o=e!==-1?e:n.findFirstFocusedOptionIndex();n.changeFocusedOptionIndex(new Event("focus"),o),v.current=!1})}))},[a.state.open,a.state.positionerElement]);let ae=p(p({id:i,"data-scope":"autocomplete","data-part":"root"},t.disabled&&{"data-disabled":""}),t.invalid&&{"data-invalid":""}),se=R(p({"data-scope":"autocomplete","data-part":"input",ref:a.setAnchorRef,tabIndex:t.disabled?-1:t.tabIndex,value:l!=null?l:"",autoComplete:"off",role:"combobox",name:t.name,disabled:t.disabled,"aria-autocomplete":"list","aria-haspopup":"listbox","aria-expanded":!!a.state.open,"aria-controls":a.state.open?`${i}_list`:void 0,"aria-activedescendant":a.state.open?n==null?void 0:n.getFocusedOptionId():void 0},t.invalid&&{"data-invalid":"","aria-invalid":!0}),{onChange:z,onFocus:N,onBlur:W,onKeyDown:J}),ie=p({"data-scope":"autocomplete","data-part":"indicator","aria-hidden":!0},a.state.open?{"data-open":""}:{"data-closed":""}),le={"data-scope":"autocomplete","data-part":"clear","aria-label":"Clear",tabIndex:t.disabled?-1:0,onClick:F,onKeyDown:j},ce=R(p({},n==null?void 0:n.listProps),{id:`${i}_list`,tabIndex:-1,"data-scope":"autocomplete","data-part":"list"}),ue={"data-scope":"autocomplete","data-part":"positioner",ref:a.setPositionerRef},re=p({"data-scope":"autocomplete","data-part":"popup",ref:a.setPopupRef},a.state.open&&{"data-open":""}),de={"data-scope":"autocomplete","data-part":"arrow",ref:a.setArrowRef},pe=R(p({"data-scope":"autocomplete","data-part":"trigger",type:"button",tabIndex:t.disabled?-1:t.tabIndex,disabled:t.disabled,"aria-label":"Show suggestions","aria-haspopup":"listbox","aria-expanded":!!a.state.open,"aria-controls":a.state.open?`${i}_list`:void 0},a.state.open&&{"data-positioner-open":""}),{onClick:te});return{state:$,listbox:n,rootProps:ae,triggerProps:pe,inputProps:se,listProps:ce,indicatorProps:ie,clearProps:le,positionerProps:ue,popupProps:re,arrowProps:de,setAnchorRef:a.setAnchorRef,setPositionerRef:a.setPositionerRef,setPopupRef:a.setPopupRef,setArrowRef:a.setArrowRef,setRendered:a.setRendered,getSelectedOptionLabel:ne,hasValue:C,show:b,hide:d,toggle:V,focus:h}}});export{H as defaultProps,Te as useAutoComplete};
2
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/autocomplete/useAutoComplete.ts","../../src/autocomplete/useAutoComplete.props.ts"],"sourcesContent":["import { withHeadless } from '@primereact/core/headless';\nimport { useListbox } from '@primereact/headless/listbox';\nimport { usePopover } from '@primereact/headless/popover';\nimport { useControlledState } from '@primereact/hooks/use-controlled-state';\nimport { useEventListener } from '@primereact/hooks/use-event-listener';\nimport type { UseListboxValueChangeEvent } from '@primereact/types/headless/listbox';\nimport type { UsePopoverOpenChangeEvent } from '@primereact/types/headless/popover';\nimport { getOuterWidth, isNotEmpty, focus as primeuix_focus, toElement } from '@primeuix/utils';\nimport * as React from 'react';\nimport { defaultProps } from './useAutoComplete.props';\n\nexport const useAutoComplete = withHeadless({\n name: 'useAutoComplete',\n defaultProps,\n setup({ props, id }) {\n const onListboxValueChange = React.useRef<((event: UseListboxValueChangeEvent) => void) | null>(null);\n\n const handleListboxValueChange = (event: UseListboxValueChangeEvent) => {\n onListboxValueChange.current?.(event);\n };\n\n const handleOpenChange = (event: UsePopoverOpenChangeEvent) => {\n props.onOpenChange?.({ value: !!event.value });\n };\n\n const listbox = useListbox({\n value: props.value,\n defaultValue: props.defaultValue,\n options: props.options,\n optionKey: props.optionKey,\n optionLabel: props.optionLabel,\n optionValue: props.optionValue,\n optionDisabled: props.optionDisabled,\n optionGroupLabel: props.optionGroupLabel,\n optionGroupChildren: props.optionGroupChildren,\n disabled: props.disabled,\n locale: props.locale,\n autoOptionFocus: props.autoOptionFocus,\n selectOnFocus: props.selectOnFocus,\n focusOnHover: props.focusOnHover,\n multiple: false,\n metaKeySelection: props.metaKeySelection,\n onValueChange: handleListboxValueChange\n });\n\n const popover = usePopover({\n open: props.open,\n defaultOpen: props.defaultOpen ?? false,\n closeOnEscape: props.closeOnEscape,\n autoFocus: props.autoFocus,\n trapped: props.trapped,\n onOpenChange: handleOpenChange\n });\n\n const [valueState, setValueState] = useControlledState({\n value: props.value,\n defaultValue: props.defaultValue,\n onChange: props.onValueChange\n });\n\n const [inputValueState, setInputValueState] = useControlledState({\n value: props.inputValue,\n defaultValue: props.defaultInputValue ?? '',\n onChange: props.onInputValueChange\n });\n\n const [focusedState, setFocusedState] = React.useState(false);\n const [searchingState, setSearchingState] = React.useState<boolean>(false);\n const searchTimeout = React.useRef<NodeJS.Timeout | null>(null);\n const focusOnShow = React.useRef<boolean>(false);\n const justSelectedRef = React.useRef<boolean>(false);\n\n const state = {\n value: valueState,\n inputValue: inputValueState,\n opened: popover.state.open,\n focused: focusedState,\n focusedOptionIndex: listbox.state.focusedOptionIndex,\n searching: searchingState,\n anchorElement: popover.state.anchorElement,\n positionerElement: popover.state.positionerElement,\n popupElement: popover.state.popupElement,\n arrowElement: popover.state.arrowElement,\n rendered: popover.state.rendered\n };\n\n const search = (event: React.SyntheticEvent, query: string) => {\n if (query === undefined || query === null) {\n return;\n }\n\n if (props.onComplete) {\n props.onComplete({\n originalEvent: event,\n query\n });\n }\n };\n\n const show = () => {\n popover.setOpen(true);\n };\n\n const hide = () => {\n popover.setOpen(false);\n setSearchingState(false);\n listbox.changeFocusedOptionIndex(new Event('blur') as unknown as React.KeyboardEvent, listbox.findFirstFocusedOptionIndex());\n };\n\n const onChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n if (searchTimeout.current) {\n clearTimeout(searchTimeout.current);\n }\n\n const inputValue = event.target.value;\n\n if (hasValue()) {\n const selectedOptionIndex = listbox.findSelectedOptionIndex();\n const selectedOption = selectedOptionIndex !== -1 ? listbox.getOptions()[selectedOptionIndex] : null;\n const selectedLabel = selectedOption ? listbox.getOptionLabel(selectedOption) : '';\n\n if (inputValue !== selectedLabel) {\n setValueState([\n null,\n {\n originalEvent: event,\n value: null,\n option: null\n }\n ]);\n\n listbox.updateModel(event, null);\n }\n }\n\n if (inputValue.length === 0) {\n search(event, '');\n hide();\n } else {\n if (inputValue.length >= (props.minLength ?? 1)) {\n setSearchingState(true);\n\n searchTimeout.current = setTimeout(() => {\n search(event, inputValue);\n show();\n\n listbox.changeFocusedOptionIndex(new Event('input') as unknown as React.KeyboardEvent, -1);\n }, props.delay);\n } else {\n hide();\n }\n }\n\n setInputValueState([\n inputValue,\n {\n originalEvent: event,\n query: inputValue\n }\n ]);\n };\n\n const onFocus = (event: React.FocusEvent) => {\n if (props.disabled) {\n return;\n }\n\n if (justSelectedRef.current) {\n justSelectedRef.current = false;\n } else if (props.autoOptionFocus) {\n search(event, (event.target as HTMLInputElement).value);\n }\n\n listbox.listProps.onFocus?.();\n setFocusedState(true);\n };\n\n const onBlur = (event: React.FocusEvent) => {\n listbox.listProps.onBlur?.();\n setFocusedState(false);\n\n if (props.forceSelection) {\n applyForceSelection(event);\n }\n };\n\n const onOptionSelect = (event: { originalEvent: React.SyntheticEvent; value: unknown }) => {\n const selectedValue = event.value;\n\n const option = listbox.getOptions().find((opt: unknown) => {\n const optValue = listbox.getOptionValue(opt);\n\n return listbox.isEquals(optValue, selectedValue);\n });\n\n const optionLabel = option ? listbox.getOptionLabel(option) : '';\n\n setValueState([\n selectedValue,\n {\n originalEvent: event.originalEvent,\n value: selectedValue,\n option\n }\n ]);\n\n setInputValueState([\n optionLabel,\n {\n originalEvent: event.originalEvent,\n query: optionLabel\n }\n ]);\n\n hide();\n justSelectedRef.current = true;\n focus();\n };\n\n onListboxValueChange.current = onOptionSelect;\n\n const onClearClick = (event: React.MouseEvent<HTMLButtonElement>) => {\n event.preventDefault();\n event.stopPropagation();\n\n setValueState([\n null,\n {\n originalEvent: event,\n value: null,\n option: null\n }\n ]);\n\n setInputValueState([\n '',\n {\n originalEvent: event,\n query: ''\n }\n ]);\n\n listbox.updateModel(event, null);\n\n if (popover.state.open) {\n hide();\n }\n\n focus();\n };\n\n const onClearKeyDown = (event: React.KeyboardEvent<HTMLButtonElement>) => {\n if (event.code === 'Enter' || event.code === 'Space') {\n onClearClick(event as unknown as React.MouseEvent<HTMLButtonElement>);\n }\n };\n\n const onKeyDown = (event: React.KeyboardEvent<HTMLElement>) => {\n switch (event.code) {\n case 'ArrowDown':\n onArrowDownKey(event);\n break;\n\n case 'ArrowUp':\n onArrowUpKey(event);\n break;\n\n case 'ArrowLeft':\n case 'ArrowRight':\n listbox.changeFocusedOptionIndex(event, -1);\n break;\n\n case 'Enter':\n case 'NumpadEnter':\n onEnterKey(event);\n break;\n\n case 'Space':\n if (!props.autoOptionFocus && listbox.state.focusedOptionIndex !== -1) {\n listbox.onOptionSelect(event, listbox.getOptions()[listbox.state.focusedOptionIndex]);\n }\n\n break;\n\n case 'Home':\n case 'End':\n case 'PageUp':\n case 'PageDown':\n if (popover.state.open) {\n listbox.listProps.onKeyDown(event);\n }\n\n break;\n\n case 'Escape':\n if (popover.state.open) {\n hide();\n focus();\n\n event.stopPropagation();\n }\n\n break;\n\n case 'Tab':\n if (popover.state.open) {\n hide();\n }\n\n break;\n\n default:\n break;\n }\n };\n\n const onArrowDownKey = (event: React.KeyboardEvent<HTMLElement>) => {\n if (!popover.state.open && inputValueState && inputValueState?.length >= (props.minLength ?? 1)) {\n focusOnShow.current = true;\n search(event, inputValueState ?? '');\n show();\n }\n\n listbox.listProps.onKeyDown(event);\n\n event.preventDefault();\n };\n\n const onArrowUpKey = (event: React.KeyboardEvent<HTMLElement>) => {\n if (!popover.state.open && inputValueState && inputValueState?.length >= (props.minLength ?? 1)) {\n focusOnShow.current = true;\n search(event, inputValueState ?? '');\n show();\n }\n\n if (event.altKey) {\n const focusedOptionIndex = listbox.state.focusedOptionIndex;\n\n if (focusedOptionIndex !== -1) {\n const focusedOption = listbox.getOptions()[focusedOptionIndex];\n\n if (focusedOption) {\n onOptionSelect({\n originalEvent: event,\n value: listbox.getOptionValue(focusedOption)\n });\n }\n }\n\n if (popover.state.open) {\n hide();\n }\n } else {\n listbox.listProps.onKeyDown(event);\n }\n\n event.preventDefault();\n };\n\n const onEnterKey = (event: React.KeyboardEvent<HTMLElement>) => {\n const focusedOptionIndex = listbox.state.focusedOptionIndex;\n\n if (popover.state.open && focusedOptionIndex !== -1) {\n const focusedOption = listbox.getOptions()[focusedOptionIndex];\n\n if (focusedOption && !listbox.isOptionDisabled(focusedOption)) {\n listbox.onOptionSelect(event, focusedOption);\n\n event.preventDefault();\n }\n }\n };\n\n const isOptionMatched = (option: unknown, value: string) => {\n return listbox.isValidOption(option) && listbox.getOptionLabel(option)?.toLocaleLowerCase(props.locale) === value.toLocaleLowerCase(props.locale);\n };\n\n const applyForceSelection = (event: React.FocusEvent) => {\n if (props.options && props.options.length > 0) {\n const matchedValue = listbox.getOptions().find((option) => isOptionMatched(option, inputValueState || ''));\n\n if (matchedValue !== undefined) {\n const matchedOption = listbox.getOptions().find((opt: unknown) => listbox.getOptionValue(opt) === matchedValue);\n const matchedLabel = matchedOption ? listbox.getOptionLabel(matchedOption) : '';\n\n setValueState([\n matchedValue,\n {\n originalEvent: event,\n value: matchedValue,\n option: matchedOption\n }\n ]);\n\n setInputValueState([\n matchedLabel,\n {\n originalEvent: event as unknown as React.ChangeEvent<HTMLInputElement>,\n query: matchedLabel\n }\n ]);\n } else {\n setInputValueState([\n '',\n {\n originalEvent: event as unknown as React.ChangeEvent<HTMLInputElement>,\n query: ''\n }\n ]);\n\n setValueState([\n null,\n {\n originalEvent: event,\n value: null,\n option: null\n }\n ]);\n }\n }\n };\n\n const hasValue = () => {\n return isNotEmpty(valueState);\n };\n\n const toggle = () => {\n if (popover.state.open) {\n hide();\n } else {\n show();\n }\n };\n\n const focus = () => {\n const target = toElement(popover.state.anchorElement);\n\n if (target) {\n primeuix_focus(target);\n }\n };\n\n const onClick = () => {\n if (!props.disabled) {\n toggle();\n }\n };\n\n const getSelectedOptionLabel = () => {\n if (!hasValue()) {\n return null;\n }\n\n const selectedOption = listbox.getOptions().find((opt: unknown) => {\n const optValue = listbox.getOptionValue(opt);\n\n return listbox.isEquals(optValue, valueState);\n });\n\n return selectedOption ? listbox.getOptionLabel(selectedOption) : null;\n };\n\n const [bindLabelClick] = useEventListener({\n target: () => document.querySelector(`label[for=\"${id}\"]`) as HTMLElement,\n type: 'click',\n listener: () => {\n focus();\n }\n });\n\n const [bindResizeListener, unbindResizeListener] = useEventListener({\n target: 'window',\n type: 'resize',\n listener: () => {\n if (popover.state.open) {\n hide();\n }\n }\n });\n\n React.useEffect(() => {\n bindLabelClick();\n }, [id]);\n\n React.useEffect(() => {\n if (searchTimeout.current) {\n clearTimeout(searchTimeout.current);\n searchTimeout.current = null;\n }\n }, []);\n\n React.useEffect(() => {\n setSearchingState(false);\n }, [props.options]);\n\n React.useEffect(() => {\n if (popover.state.open) {\n bindResizeListener();\n } else {\n unbindResizeListener();\n }\n }, [popover.state.open, bindResizeListener, unbindResizeListener]);\n\n React.useEffect(() => {\n if (popover.state.open && popover.state.positionerElement) {\n if (popover.state.anchorElement) {\n popover.state.positionerElement.style.minWidth = getOuterWidth(popover.state.anchorElement) + 'px';\n }\n\n if (focusOnShow.current || props.autoOptionFocus) {\n requestAnimationFrame(() => {\n requestAnimationFrame(() => {\n const focusedOptionIndex = listbox.state.focusedOptionIndex;\n const indexToFocus = focusedOptionIndex !== -1 ? focusedOptionIndex : listbox.findFirstFocusedOptionIndex();\n\n listbox.changeFocusedOptionIndex(new Event('focus') as unknown as React.KeyboardEvent, indexToFocus);\n focusOnShow.current = false;\n });\n });\n }\n }\n }, [popover.state.open, popover.state.positionerElement]);\n\n const rootProps = {\n id,\n 'data-scope': 'autocomplete' as const,\n 'data-part': 'root' as const,\n ...(props.disabled && { 'data-disabled': '' as const }),\n ...(props.invalid && { 'data-invalid': '' as const })\n };\n\n const inputProps = {\n 'data-scope': 'autocomplete',\n 'data-part': 'input',\n ref: popover.setAnchorRef,\n tabIndex: props.disabled ? -1 : props.tabIndex,\n value: inputValueState ?? '',\n autoComplete: 'off' as const,\n role: 'combobox' as const,\n name: props.name,\n disabled: props.disabled,\n 'aria-autocomplete': 'list' as const,\n 'aria-haspopup': 'listbox' as const,\n 'aria-expanded': !!popover.state.open,\n 'aria-controls': popover.state.open ? `${id}_list` : undefined,\n 'aria-activedescendant': popover.state.open ? listbox?.getFocusedOptionId() : undefined,\n ...(props.invalid && { 'data-invalid': '', 'aria-invalid': true }),\n onChange,\n onFocus,\n onBlur,\n onKeyDown\n };\n\n const indicatorProps = {\n 'data-scope': 'autocomplete',\n 'data-part': 'indicator',\n 'aria-hidden': true as const,\n ...(popover.state.open ? { 'data-open': '' } : { 'data-closed': '' })\n };\n\n const clearProps = {\n 'data-scope': 'autocomplete',\n 'data-part': 'clear',\n 'aria-label': 'Clear',\n tabIndex: props.disabled ? -1 : 0,\n onClick: onClearClick,\n onKeyDown: onClearKeyDown\n };\n\n const listProps = {\n ...listbox?.listProps,\n id: `${id}_list`,\n tabIndex: -1,\n 'data-scope': 'autocomplete' as const,\n 'data-part': 'list' as const\n };\n\n const positionerProps = {\n 'data-scope': 'autocomplete' as const,\n 'data-part': 'positioner' as const,\n ref: popover.setPositionerRef\n };\n\n const popupProps = {\n 'data-scope': 'autocomplete' as const,\n 'data-part': 'popup' as const,\n ref: popover.setPopupRef,\n ...(popover.state.open && { 'data-open': '' })\n };\n\n const arrowProps = {\n 'data-scope': 'autocomplete',\n 'data-part': 'arrow',\n ref: popover.setArrowRef\n };\n\n const triggerProps = {\n 'data-scope': 'autocomplete',\n 'data-part': 'trigger',\n type: 'button' as const,\n tabIndex: props.disabled ? -1 : props.tabIndex,\n disabled: props.disabled,\n 'aria-label': 'Show suggestions',\n 'aria-haspopup': 'listbox' as const,\n 'aria-expanded': !!popover.state.open,\n 'aria-controls': popover.state.open ? `${id}_list` : undefined,\n ...(popover.state.open && { 'data-positioner-open': '' }),\n onClick\n };\n\n return {\n state,\n listbox,\n // prop getters\n rootProps,\n triggerProps,\n inputProps,\n listProps,\n indicatorProps,\n clearProps,\n positionerProps,\n popupProps,\n arrowProps,\n // ref setters\n setAnchorRef: popover.setAnchorRef,\n setPositionerRef: popover.setPositionerRef,\n setPopupRef: popover.setPopupRef,\n setArrowRef: popover.setArrowRef,\n // methods\n setRendered: popover.setRendered,\n getSelectedOptionLabel,\n hasValue,\n show,\n hide,\n toggle,\n focus\n };\n }\n});\n","import type { UseAutoCompleteProps } from '@primereact/types/headless/autocomplete';\n\nexport const defaultProps: UseAutoCompleteProps = {\n open: undefined,\n defaultOpen: undefined,\n value: undefined,\n defaultValue: undefined,\n inputValue: undefined,\n defaultInputValue: '',\n options: [],\n optionKey: undefined,\n optionLabel: undefined,\n optionValue: undefined,\n optionDisabled: undefined,\n optionGroupLabel: undefined,\n optionGroupChildren: undefined,\n disabled: false,\n invalid: false,\n locale: undefined,\n metaKeySelection: false,\n multiple: false,\n autoOptionFocus: false,\n selectOnFocus: false,\n focusOnHover: true,\n closeOnEscape: false,\n autoFocus: false,\n trapped: false,\n minLength: 1,\n delay: 0,\n forceSelection: false,\n onOpenChange: undefined,\n onValueChange: undefined,\n onInputValueChange: undefined,\n onComplete: undefined\n};\n"],"mappings":"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","names":["withHeadless","useListbox","usePopover","useControlledState","useEventListener","getOuterWidth","isNotEmpty","primeuix_focus","toElement","React","defaultProps","useAutoComplete","withHeadless","defaultProps","props","id","_a","_b","onListboxValueChange","handleListboxValueChange","event","handleOpenChange","listbox","useListbox","popover","usePopover","valueState","setValueState","useControlledState","inputValueState","setInputValueState","focusedState","setFocusedState","searchingState","setSearchingState","searchTimeout","focusOnShow","justSelectedRef","state","search","query","show","hide","onChange","inputValue","hasValue","selectedOptionIndex","selectedOption","selectedLabel","onFocus","onBlur","applyForceSelection","onOptionSelect","selectedValue","option","opt","optValue","optionLabel","focus","onClearClick","onClearKeyDown","onKeyDown","onArrowDownKey","onArrowUpKey","onEnterKey","focusedOptionIndex","focusedOption","isOptionMatched","value","matchedValue","matchedOption","matchedLabel","isNotEmpty","toggle","target","toElement","primeuix_focus","onClick","getSelectedOptionLabel","bindLabelClick","useEventListener","bindResizeListener","unbindResizeListener","getOuterWidth","indexToFocus","rootProps","__spreadValues","inputProps","__spreadProps","indicatorProps","clearProps","listProps","positionerProps","popupProps","arrowProps","triggerProps"]}