@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
@@ -1,23 +1,66 @@
1
+ import type { UseSplitterPanelInfo, UseSplitterRegisterPanelProps } from '@primereact/types/headless/splitter';
1
2
  import * as React from 'react';
2
- export declare const useSplitter: (inProps?: unknown) => import("@primereact/types/core").HeadlessInstance<import("@primereact/types/shared/splitter").useSplitterProps, unknown, {
3
+ export declare const useSplitter: (inProps?: unknown) => import("@primereact/types/core").HeadlessInstance<import("@primereact/types/headless/splitter").UseSplitterProps, unknown, {
3
4
  state: {
4
- panels: React.ReactNode[];
5
+ resizing: boolean;
5
6
  };
6
- registerPanel: () => number;
7
+ registerPanel: (index: number | null, panelProps: UseSplitterRegisterPanelProps) => number;
7
8
  registerGutter: () => number;
8
- registerThumb: () => number;
9
9
  panelCounter: React.RefObject<number>;
10
+ panelRegistry: React.RefObject<UseSplitterPanelInfo[]>;
10
11
  panelSizes: number[];
11
- prevSize: number | null;
12
- gutterRef: React.RefObject<HTMLDivElement | null>;
13
- gutterRefs: React.RefObject<HTMLDivElement[]>;
14
- onResizeStart: (event: React.MouseEvent | React.TouchEvent | KeyboardEvent, index: number, isKeyDown?: boolean) => void;
15
- onResize: (event: React.MouseEvent | React.TouchEvent | KeyboardEvent, step?: number, isKeyDown?: boolean) => void;
12
+ onResizeStart: (event: React.PointerEvent | KeyboardEvent, index: number, isKeyDown?: boolean) => void;
13
+ onResize: (event: React.PointerEvent | KeyboardEvent, step?: number, isKeyDown?: boolean) => void;
16
14
  onResizeEnd: () => void;
17
- onGutterMouseDown: (event: React.MouseEvent, index: number) => void;
18
- onGutterTouchStart: (event: React.TouchEvent, index: number) => void;
19
- onGutterTouchMove: (event: React.TouchEvent) => void;
20
- onGutterTouchEnd: (event: React.TouchEvent) => void;
15
+ onGutterPointerDown: (event: React.PointerEvent, index: number, gutterDisabled?: boolean) => void;
21
16
  onGutterKeyUp: () => void;
22
- onGutterKeyDown: (event: React.KeyboardEvent, index: number) => void;
17
+ onGutterKeyDown: (event: React.KeyboardEvent, index: number, gutterDisabled?: boolean) => void;
18
+ getGutterProps: (index: number, options?: {
19
+ id?: string;
20
+ disabled?: boolean;
21
+ }) => {
22
+ onPointerDown: (e: React.PointerEvent) => void;
23
+ onKeyDown: (e: React.KeyboardEvent) => void;
24
+ onKeyUp: () => void;
25
+ 'data-disabled'?: "" | undefined;
26
+ 'data-resizing'?: "" | undefined;
27
+ 'aria-disabled': true | undefined;
28
+ style: {
29
+ touchAction: "none";
30
+ userSelect: "none";
31
+ };
32
+ 'data-orientation': "horizontal" | "vertical" | undefined;
33
+ 'aria-controls'?: string | undefined;
34
+ role: "separator";
35
+ tabIndex: number;
36
+ 'aria-valuenow': number;
37
+ 'aria-valuemin': number;
38
+ 'aria-valuemax': number;
39
+ id?: string | undefined;
40
+ 'data-scope': string;
41
+ 'data-part': string;
42
+ };
43
+ rootProps: {
44
+ 'data-disabled'?: "" | undefined;
45
+ 'data-resizing'?: "" | undefined;
46
+ ref: React.RefObject<HTMLDivElement>;
47
+ 'data-scope': string;
48
+ 'data-part': string;
49
+ 'data-orientation': "horizontal" | "vertical" | undefined;
50
+ };
51
+ getPanelProps: (index: number) => {
52
+ 'data-resizing'?: "" | undefined;
53
+ style: React.CSSProperties;
54
+ 'data-collapsed'?: "" | undefined;
55
+ 'data-scope': string;
56
+ 'data-part': string;
57
+ 'data-orientation': "horizontal" | "vertical" | undefined;
58
+ 'data-index': number;
59
+ };
60
+ handleProps: {
61
+ 'data-resizing'?: "" | undefined;
62
+ 'data-scope': string;
63
+ 'data-part': string;
64
+ 'data-orientation': "horizontal" | "vertical" | undefined;
65
+ };
23
66
  }>;
@@ -1,2 +1,2 @@
1
- import type { useSplitterProps } from '@primereact/types/shared/splitter';
2
- export declare const defaultProps: useSplitterProps;
1
+ import type { UseSplitterProps } from '@primereact/types/headless/splitter';
2
+ export declare const defaultProps: UseSplitterProps;
@@ -1,2 +1,3 @@
1
1
  export * from './useStepper';
2
2
  export * from './useStepper.props';
3
+ export type * from '@primereact/types/headless/stepper';
package/stepper/index.mjs CHANGED
@@ -1,2 +1,2 @@
1
- import{withHeadless as o}from"@primereact/core/headless";import*as l from"react";var a={defaultValue:null,value:null,linear:!1,onValueChange:void 0};var P=o({name:"useStepper",defaultProps:a,setup({props:t}){var s,n;let[r,i]=l.useState((n=(s=t.value)!=null?s:t.defaultValue)!=null?n:null);return{state:{value:r},setActiveStep:e=>{var u;e!==r&&(i(e),(u=t.onValueChange)==null||u.call(t,{value:e}))},isStepActive:e=>r===e,isStepDisabled:()=>{var e;return(e=t.linear)!=null?e:!1}}}});export{a as defaultProps,P as useStepper};
1
+ var b=Object.defineProperty;var c=Object.getOwnPropertySymbols;var P=Object.prototype.hasOwnProperty,g=Object.prototype.propertyIsEnumerable;var d=(t,s,a)=>s in t?b(t,s,{enumerable:!0,configurable:!0,writable:!0,value:a}):t[s]=a,o=(t,s)=>{for(var a in s||(s={}))P.call(s,a)&&d(t,a,s[a]);if(c)for(var a of c(s))g.call(s,a)&&d(t,a,s[a]);return t};import{withHeadless as S}from"@primereact/core/headless";import*as u from"react";var i={defaultValue:null,value:null,linear:!1,onValueChange:void 0};var I=S({name:"useStepper",defaultProps:i,setup({props:t,id:s}){var p,l;let[a,f]=u.useState((l=(p=t.value)!=null?p:t.defaultValue)!=null?l:null),m={value:a},r=e=>{var n;e!==a&&(f(e),(n=t.onValueChange)==null||n.call(t,{value:e}))};return{state:m,rootProps:{"data-scope":"stepper","data-part":"root"},getItemProps:({active:e})=>o({"data-scope":"stepper","data-part":"item"},e?{"data-active":""}:{}),getStepProps:({active:e,disabled:n})=>o(o({"data-scope":"stepper","data-part":"step","aria-current":e?"step":void 0,role:"presentation"},e?{"data-active":""}:{}),n?{"data-disabled":""}:{}),getHeaderProps:({activeValue:e,disabled:n})=>({"data-scope":"stepper","data-part":"header",type:"button",role:"tab",tabIndex:n?-1:void 0,"aria-controls":`${s}_steppanel_${e}`,disabled:n,onClick:()=>r(e)}),getPanelProps:({active:e,activeValue:n})=>o({"data-scope":"stepper","data-part":"panel",role:"tabpanel","aria-controls":`${s}_step_${n}`},e?{"data-active":""}:{}),setActiveStep:r,isStepActive:e=>a===e,isStepDisabled:()=>{var e;return(e=t.linear)!=null?e:!1}}}});export{i as defaultProps,I as useStepper};
2
2
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/stepper/useStepper.ts","../../src/stepper/useStepper.props.ts"],"sourcesContent":["import { withHeadless } from '@primereact/core/headless';\nimport { useStepperProps } from '@primereact/types/shared/stepper';\nimport * as React from 'react';\nimport { defaultProps } from './useStepper.props';\n\nexport const useStepper = withHeadless({\n name: 'useStepper',\n defaultProps,\n setup({ props }) {\n const [activeValue, setActiveValue] = React.useState<useStepperProps['value']>(props.value ?? props.defaultValue ?? null);\n\n const state = {\n value: activeValue\n };\n\n const setActiveStep = (value: null | undefined | string | number) => {\n if (value !== activeValue) {\n setActiveValue(value);\n\n props.onValueChange?.({\n value\n });\n }\n };\n\n const isStepActive = (value: null | undefined | string | number): boolean => {\n return activeValue === value;\n };\n\n const isStepDisabled = () => {\n return props.linear ?? false;\n };\n\n return {\n state,\n //methods\n setActiveStep,\n isStepActive,\n isStepDisabled\n };\n }\n});\n","import type { useStepperProps } from '@primereact/types/shared/stepper';\n\nexport const defaultProps: useStepperProps = {\n defaultValue: null,\n value: null,\n linear: false,\n onValueChange: undefined\n};\n"],"mappings":"AAAA,OAAS,gBAAAA,MAAoB,4BAE7B,UAAYC,MAAW,QCAhB,IAAMC,EAAgC,CACzC,aAAc,KACd,MAAO,KACP,OAAQ,GACR,cAAe,MACnB,EDFO,IAAMC,EAAaC,EAAa,CACnC,KAAM,aACN,aAAAC,EACA,MAAM,CAAE,MAAAC,CAAM,EAAG,CARrB,IAAAC,EAAAC,EASQ,GAAM,CAACC,EAAaC,CAAc,EAAU,YAAmCF,GAAAD,EAAAD,EAAM,QAAN,KAAAC,EAAeD,EAAM,eAArB,KAAAE,EAAqC,IAAI,EAwBxH,MAAO,CACH,MAvBU,CACV,MAAOC,CACX,EAuBI,cArBmBE,GAA8C,CAf7E,IAAAJ,EAgBgBI,IAAUF,IACVC,EAAeC,CAAK,GAEpBJ,EAAAD,EAAM,gBAAN,MAAAC,EAAA,KAAAD,EAAsB,CAClB,MAAAK,CACJ,GAER,EAcI,aAZkBA,GACXF,IAAgBE,EAYvB,eATmB,IAAM,CA7BrC,IAAAJ,EA8BY,OAAOA,EAAAD,EAAM,SAAN,KAAAC,EAAgB,EAC3B,CAQA,CACJ,CACJ,CAAC","names":["withHeadless","React","defaultProps","useStepper","withHeadless","defaultProps","props","_a","_b","activeValue","setActiveValue","value"]}
1
+ {"version":3,"sources":["../../src/stepper/useStepper.ts","../../src/stepper/useStepper.props.ts"],"sourcesContent":["import { withHeadless } from '@primereact/core/headless';\nimport { UseStepperProps } from '@primereact/types/headless/stepper';\nimport * as React from 'react';\nimport { defaultProps } from './useStepper.props';\n\nexport const useStepper = withHeadless({\n name: 'useStepper',\n defaultProps,\n setup({ props, id }) {\n const [activeValue, setActiveValue] = React.useState<UseStepperProps['value']>(props.value ?? props.defaultValue ?? null);\n\n const state = {\n value: activeValue\n };\n\n const setActiveStep = (value: null | undefined | string | number) => {\n if (value !== activeValue) {\n setActiveValue(value);\n\n props.onValueChange?.({\n value\n });\n }\n };\n\n const isStepActive = (value: null | undefined | string | number): boolean => {\n return activeValue === value;\n };\n\n const isStepDisabled = () => {\n return props.linear ?? false;\n };\n\n // prop getters\n const rootProps = {\n 'data-scope': 'stepper' as const,\n 'data-part': 'root' as const\n };\n\n const getItemProps = ({ active }: { active: boolean }) => ({\n 'data-scope': 'stepper' as const,\n 'data-part': 'item' as const,\n ...(active ? { 'data-active': '' as const } : {})\n });\n\n const getStepProps = ({ active, disabled }: { active: boolean; disabled: boolean | undefined | null }) => ({\n 'data-scope': 'stepper' as const,\n 'data-part': 'step' as const,\n 'aria-current': active ? ('step' as const) : undefined,\n role: 'presentation' as const,\n ...(active ? { 'data-active': '' as const } : {}),\n ...(disabled ? { 'data-disabled': '' as const } : {})\n });\n\n const getHeaderProps = ({ activeValue, disabled }: { activeValue: string | number | null | undefined; disabled: boolean | undefined | null }) => ({\n 'data-scope': 'stepper' as const,\n 'data-part': 'header' as const,\n type: 'button' as const,\n role: 'tab' as const,\n tabIndex: disabled ? -1 : undefined,\n 'aria-controls': `${id}_steppanel_${activeValue}`,\n disabled,\n onClick: () => setActiveStep(activeValue)\n });\n\n const getPanelProps = ({ active, activeValue }: { active: boolean; activeValue: string | number | null | undefined }) => ({\n 'data-scope': 'stepper' as const,\n 'data-part': 'panel' as const,\n role: 'tabpanel' as const,\n 'aria-controls': `${id}_step_${activeValue}`,\n ...(active ? { 'data-active': '' as const } : {})\n });\n\n return {\n state,\n // prop getters\n rootProps,\n getItemProps,\n getStepProps,\n getHeaderProps,\n getPanelProps,\n // methods\n setActiveStep,\n isStepActive,\n isStepDisabled\n };\n }\n});\n","import type { UseStepperProps } from '@primereact/types/headless/stepper';\n\nexport const defaultProps: UseStepperProps = {\n defaultValue: null,\n value: null,\n linear: false,\n onValueChange: undefined\n};\n"],"mappings":"yVAAA,OAAS,gBAAAA,MAAoB,4BAE7B,UAAYC,MAAW,QCAhB,IAAMC,EAAgC,CACzC,aAAc,KACd,MAAO,KACP,OAAQ,GACR,cAAe,MACnB,EDFO,IAAMC,EAAaC,EAAa,CACnC,KAAM,aACN,aAAAC,EACA,MAAM,CAAE,MAAAC,EAAO,GAAAC,CAAG,EAAG,CARzB,IAAAC,EAAAC,EASQ,GAAM,CAACC,EAAaC,CAAc,EAAU,YAAmCF,GAAAD,EAAAF,EAAM,QAAN,KAAAE,EAAeF,EAAM,eAArB,KAAAG,EAAqC,IAAI,EAElHG,EAAQ,CACV,MAAOF,CACX,EAEMG,EAAiBC,GAA8C,CAf7E,IAAAN,EAgBgBM,IAAUJ,IACVC,EAAeG,CAAK,GAEpBN,EAAAF,EAAM,gBAAN,MAAAE,EAAA,KAAAF,EAAsB,CAClB,MAAAQ,CACJ,GAER,EAkDA,MAAO,CACH,MAAAF,EAEA,UA1Cc,CACd,aAAc,UACd,YAAa,MACjB,EAwCI,aAtCiB,CAAC,CAAE,OAAAG,CAAO,IAA4BC,EAAA,CACvD,aAAc,UACd,YAAa,QACTD,EAAS,CAAE,cAAe,EAAY,EAAI,CAAC,GAoC/C,aAjCiB,CAAC,CAAE,OAAAA,EAAQ,SAAAE,CAAS,IAAkED,IAAA,CACvG,aAAc,UACd,YAAa,OACb,eAAgBD,EAAU,OAAmB,OAC7C,KAAM,gBACFA,EAAS,CAAE,cAAe,EAAY,EAAI,CAAC,GAC3CE,EAAW,CAAE,gBAAiB,EAAY,EAAI,CAAC,GA4BnD,eAzBmB,CAAC,CAAE,YAAAP,EAAa,SAAAO,CAAS,KAAkG,CAC9I,aAAc,UACd,YAAa,SACb,KAAM,SACN,KAAM,MACN,SAAUA,EAAW,GAAK,OAC1B,gBAAiB,GAAGV,CAAE,cAAcG,CAAW,GAC/C,SAAAO,EACA,QAAS,IAAMJ,EAAcH,CAAW,CAC5C,GAiBI,cAfkB,CAAC,CAAE,OAAAK,EAAQ,YAAAL,CAAY,IAA6EM,EAAA,CACtH,aAAc,UACd,YAAa,QACb,KAAM,WACN,gBAAiB,GAAGT,CAAE,SAASG,CAAW,IACtCK,EAAS,CAAE,cAAe,EAAY,EAAI,CAAC,GAY/C,cAAAF,EACA,aA1DkBC,GACXJ,IAAgBI,EA0DvB,eAvDmB,IAAM,CA7BrC,IAAAN,EA8BY,OAAOA,EAAAF,EAAM,SAAN,KAAAE,EAAgB,EAC3B,CAsDA,CACJ,CACJ,CAAC","names":["withHeadless","React","defaultProps","useStepper","withHeadless","defaultProps","props","id","_a","_b","activeValue","setActiveValue","state","setActiveStep","value","active","__spreadValues","disabled"]}
@@ -1,8 +1,53 @@
1
- import { useStepperProps } from '@primereact/types/shared/stepper';
2
- export declare const useStepper: (inProps?: unknown) => import("@primereact/types/core").HeadlessInstance<useStepperProps, unknown, {
1
+ import { UseStepperProps } from '@primereact/types/headless/stepper';
2
+ export declare const useStepper: (inProps?: unknown) => import("@primereact/types/core").HeadlessInstance<UseStepperProps, unknown, {
3
3
  state: {
4
4
  value: string | number | null | undefined;
5
5
  };
6
+ rootProps: {
7
+ 'data-scope': "stepper";
8
+ 'data-part': "root";
9
+ };
10
+ getItemProps: ({ active }: {
11
+ active: boolean;
12
+ }) => {
13
+ 'data-active'?: "" | undefined;
14
+ 'data-scope': "stepper";
15
+ 'data-part': "item";
16
+ };
17
+ getStepProps: ({ active, disabled }: {
18
+ active: boolean;
19
+ disabled: boolean | undefined | null;
20
+ }) => {
21
+ 'data-disabled'?: "" | undefined;
22
+ 'data-active'?: "" | undefined;
23
+ 'data-scope': "stepper";
24
+ 'data-part': "step";
25
+ 'aria-current': "step" | undefined;
26
+ role: "presentation";
27
+ };
28
+ getHeaderProps: ({ activeValue, disabled }: {
29
+ activeValue: string | number | null | undefined;
30
+ disabled: boolean | undefined | null;
31
+ }) => {
32
+ 'data-scope': "stepper";
33
+ 'data-part': "header";
34
+ type: "button";
35
+ role: "tab";
36
+ tabIndex: number | undefined;
37
+ 'aria-controls': string;
38
+ disabled: boolean | null | undefined;
39
+ onClick: () => void;
40
+ };
41
+ getPanelProps: ({ active, activeValue }: {
42
+ active: boolean;
43
+ activeValue: string | number | null | undefined;
44
+ }) => {
45
+ 'data-active'?: "" | undefined;
46
+ 'data-scope': "stepper";
47
+ 'data-part': "panel";
48
+ role: "tabpanel";
49
+ 'aria-controls': string;
50
+ };
6
51
  setActiveStep: (value: null | undefined | string | number) => void;
7
52
  isStepActive: (value: null | undefined | string | number) => boolean;
8
53
  isStepDisabled: () => boolean;
@@ -1,2 +1,2 @@
1
- import type { useStepperProps } from '@primereact/types/shared/stepper';
2
- export declare const defaultProps: useStepperProps;
1
+ import type { UseStepperProps } from '@primereact/types/headless/stepper';
2
+ export declare const defaultProps: UseStepperProps;
@@ -1,2 +1,3 @@
1
1
  export * from './useStyleClass';
2
2
  export * from './useStyleClass.props';
3
+ export type * from '@primereact/types/headless/styleclass';
@@ -1,2 +1,2 @@
1
- import{withHeadless as M}from"@primereact/core/headless";import{useEventListener as m}from"@primereact/hooks/use-event-listener";import{useMountEffect as O}from"@primereact/hooks/use-mount-effect";import{useUnmountEffect as P}from"@primereact/hooks/use-unmount-effect";import{useUpdateEffect as R}from"@primereact/hooks/use-update-effect";import{addClass as l,getTargetElement as S,hasClass as w,isVisible as b,removeClass as i,setAttribute as D,toElement as U}from"@primeuix/utils";import*as r from"react";var L={nodeRef:void 0,selector:void 0,enterFromClassName:void 0,enterActiveClassName:void 0,enterToClassName:void 0,leaveFromClassName:void 0,leaveActiveClassName:void 0,leaveToClassName:void 0,hiddenClassName:void 0,hideOnOutsideClick:!1,toggleClassName:void 0};var K=M({name:"useStyleClass",defaultProps:L,setup({props:e,elementRef:n}){let c=r.useRef(!1),t=r.useRef(null),[o,k]=m({type:"animationend",listener(){var a,s;i(t.current,(a=e.enterActiveClassName)!=null?a:""),e.enterToClassName&&l(t.current,e.enterToClassName),k(),t.current&&((s=e.enterActiveClassName)!=null&&s.includes("slidedown"))&&(t.current.style.maxHeight=""),c.current=!1}}),[C,A]=m({type:"animationend",listener(){var a;i(t.current,(a=e.leaveActiveClassName)!=null?a:""),e.leaveToClassName&&l(t.current,e.leaveToClassName),A(),c.current=!1}}),[f,u]=m({type:"click",listener(a){!b(t.current)||getComputedStyle(t.current).getPropertyValue("position")==="static"?u():x(a)&&d()},when:e.hideOnOutsideClick}),[N,g]=m({type:"click",listener(){t.current=F(),e.toggleClassName?w(t.current,e.toggleClassName)?i(t.current,e.toggleClassName):l(t.current,e.toggleClassName):b(t.current)?d():v()}}),v=r.useCallback(()=>{var a,s;t.current&&(e.enterActiveClassName?c.current||(c.current=!0,e.enterActiveClassName.includes("slidedown")&&(t.current.style.height="0px",i(t.current,(a=e.hiddenClassName||e.enterFromClassName)!=null?a:""),t.current.style.maxHeight=t.current.scrollHeight+"px",l(t.current,e.hiddenClassName||e.enterActiveClassName),t.current.style.height=""),l(t.current,e.enterActiveClassName),e.enterFromClassName&&i(t.current,e.enterFromClassName),o({target:t.current})):(e.enterFromClassName&&i(t.current,e.enterFromClassName),e.enterToClassName&&l(t.current,e.enterToClassName)),f({target:(s=n.current)==null?void 0:s.ownerDocument}))},[f,o,n,e]),d=r.useCallback(()=>{e.leaveActiveClassName?c.current||(c.current=!0,l(t.current,e.leaveActiveClassName),e.leaveFromClassName&&i(t.current,e.leaveFromClassName),C({target:t.current})):(e.leaveFromClassName&&i(t.current,e.leaveFromClassName),e.leaveToClassName&&l(t.current,e.leaveToClassName)),e.hideOnOutsideClick&&u()},[C,e,u]),F=r.useCallback(()=>t.current||S(e.selector,n.current),[n,e.selector]),E=r.useCallback(()=>{Promise.resolve().then(()=>{var a;(a=e.nodeRef)!=null&&a.current&&(n.current=U(e.nodeRef)),D(n.current,"data-pd-styleclass",!0),N({target:n.current})})},[N,n,e.nodeRef]),H=r.useCallback(()=>{g(),u(),t.current=null},[]),x=a=>{var T,y,h;let s=a==null?void 0:a.target;return!((T=n.current)!=null&&T.isSameNode(s))&&!((y=n.current)!=null&&y.contains(s))&&!((h=t.current)!=null&&h.contains(s))};return O(()=>{E()}),R(()=>(E(),()=>{g()})),P(()=>{H()}),{targetRef:t,enter:v,leave:d}}});export{L as defaultProps,K as useStyleClass};
1
+ import{withHeadless as D}from"@primereact/core/headless";import{useEventListener as d}from"@primereact/hooks/use-event-listener";import{useMountEffect as V}from"@primereact/hooks/use-mount-effect";import{useUnmountEffect as W}from"@primereact/hooks/use-unmount-effect";import{useUpdateEffect as j}from"@primereact/hooks/use-update-effect";import{addClass as i,getTargetElement as O,hasClass as q,isElement as B,isVisible as f,removeClass as l,setAttribute as G,toElement as I}from"@primeuix/utils";import*as a from"react";var k={nodeRef:void 0,selector:void 0,enterFromClassName:void 0,enterActiveClassName:void 0,enterToClassName:void 0,leaveFromClassName:void 0,leaveActiveClassName:void 0,leaveToClassName:void 0,hiddenClassName:void 0,hideOnOutsideClick:!1,toggleClassName:void 0,hideOnResize:!1,resizeSelector:void 0};var ee=D({name:"useStyleClass",defaultProps:k,setup({props:e,elementRef:r}){let c=a.useRef(!1),t=a.useRef(null),u=a.useRef(null),[C,w]=d({type:"animationend",listener(){var n,s;l(t.current,(n=e.enterActiveClassName)!=null?n:""),e.enterToClassName&&i(t.current,e.enterToClassName),w(),t.current&&((s=e.enterActiveClassName)!=null&&s.includes("slidedown"))&&(t.current.style.maxHeight=""),c.current=!1}}),[N,A]=d({type:"animationend",listener(){var n;l(t.current,(n=e.leaveActiveClassName)!=null?n:""),e.leaveToClassName&&i(t.current,e.leaveToClassName),A(),c.current=!1}}),[v,o]=d({type:"click",listener(n){!f(t.current)||getComputedStyle(t.current).getPropertyValue("position")==="static"?o():U(n)&&m()},when:e.hideOnOutsideClick}),[F,g]=d({type:"resize",listener(){f(t.current)?m():g()},when:e.hideOnResize}),[E,b]=d({type:"click",listener(){t.current=P(),e.toggleClassName?q(t.current,e.toggleClassName)?l(t.current,e.toggleClassName):i(t.current,e.toggleClassName):f(t.current)?m():h()}}),h=a.useCallback(()=>{var n,s;t.current&&(e.enterActiveClassName?c.current||(c.current=!0,e.enterActiveClassName.includes("slidedown")&&(t.current.style.height="0px",l(t.current,(n=e.hiddenClassName||e.enterFromClassName)!=null?n:""),t.current.style.maxHeight=t.current.scrollHeight+"px",i(t.current,e.hiddenClassName||e.enterActiveClassName),t.current.style.height=""),i(t.current,e.enterActiveClassName),e.enterFromClassName&&l(t.current,e.enterFromClassName),C({target:t.current})):(e.enterFromClassName&&l(t.current,e.enterFromClassName),e.enterToClassName&&i(t.current,e.enterToClassName)),e.hideOnOutsideClick&&v({target:(s=r.current)==null?void 0:s.ownerDocument}),e.hideOnResize&&H())},[v,C,r,e]),m=a.useCallback(()=>{e.leaveActiveClassName?c.current||(c.current=!0,i(t.current,e.leaveActiveClassName),e.leaveFromClassName&&l(t.current,e.leaveFromClassName),N({target:t.current})):(e.leaveFromClassName&&l(t.current,e.leaveFromClassName),e.leaveToClassName&&i(t.current,e.leaveToClassName)),e.hideOnOutsideClick&&o(),e.hideOnResize&&y()},[N,e,o]),H=()=>{var s;let n=O((s=e.resizeSelector)!=null?s:"window");B(n)?M(n):F({target:"window"})},y=()=>{g(),x()},M=n=>{if(!u.current&&n){let s=!0;u.current=new ResizeObserver(()=>{if(s){s=!1;return}f(t.current)&&m()}),u.current.observe(n)}},x=()=>{u.current&&(u.current.disconnect(),u.current=null)},P=a.useCallback(()=>t.current||O(e.selector,r.current),[r,e.selector]),L=a.useCallback(()=>{Promise.resolve().then(()=>{var n;(n=e.nodeRef)!=null&&n.current&&(r.current=I(e.nodeRef)),G(r.current,"data-pd-styleclass",!0),E({target:r.current})})},[E,r,e.nodeRef]),S=a.useCallback(()=>{b(),o(),y(),t.current=null},[]),U=n=>{var T,R,z;let s=n==null?void 0:n.target;return!((T=r.current)!=null&&T.isSameNode(s))&&!((R=r.current)!=null&&R.contains(s))&&!((z=t.current)!=null&&z.contains(s))};return V(()=>{L()}),j(()=>(L(),()=>{b()})),W(()=>{S()}),{rootProps:{"data-scope":"styleclass","data-part":"root"},targetRef:t,enter:h,leave:m}}});export{k as defaultProps,ee as useStyleClass};
2
2
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/styleclass/useStyleClass.ts","../../src/styleclass/useStyleClass.props.ts"],"sourcesContent":["import { withHeadless } from '@primereact/core/headless';\nimport { useEventListener } from '@primereact/hooks/use-event-listener';\nimport { useMountEffect } from '@primereact/hooks/use-mount-effect';\nimport { useUnmountEffect } from '@primereact/hooks/use-unmount-effect';\nimport { useUpdateEffect } from '@primereact/hooks/use-update-effect';\nimport { addClass, getTargetElement, hasClass, isVisible, removeClass, setAttribute, toElement } from '@primeuix/utils';\nimport * as React from 'react';\nimport { defaultProps } from './useStyleClass.props';\n\nexport const useStyleClass = withHeadless({\n name: 'useStyleClass',\n defaultProps,\n setup({ props, elementRef }) {\n const animating = React.useRef(false);\n\n // element refs\n const targetRef = React.useRef<HTMLElement | null>(null);\n\n // events\n const [bindTargetEnterListener, unbindTargetEnterListener] = useEventListener({\n type: 'animationend',\n listener() {\n removeClass(targetRef.current as Element, props.enterActiveClassName ?? '');\n\n if (props.enterToClassName) {\n addClass(targetRef.current as Element, props.enterToClassName);\n }\n\n unbindTargetEnterListener();\n\n if (targetRef.current && props.enterActiveClassName?.includes('slidedown')) {\n targetRef.current.style.maxHeight = '';\n }\n\n animating.current = false;\n }\n });\n\n const [bindTargetLeaveListener, unbindTargetLeaveListener] = useEventListener({\n type: 'animationend',\n listener() {\n removeClass(targetRef.current as Element, props.leaveActiveClassName ?? '');\n\n if (props.leaveToClassName) {\n addClass(targetRef.current as Element, props.leaveToClassName);\n }\n\n unbindTargetLeaveListener();\n animating.current = false;\n }\n });\n\n const [bindDocumentClickListener, unbindDocumentClickListener] = useEventListener({\n type: 'click',\n listener(event) {\n if (!isVisible(targetRef.current as HTMLElement) || getComputedStyle(targetRef.current as Element).getPropertyValue('position') === 'static') {\n unbindDocumentClickListener();\n } else if (isOutsideClick(event as MouseEvent)) {\n leave();\n }\n },\n when: props.hideOnOutsideClick\n });\n\n const [bindClickListener, unbindClickListener] = useEventListener({\n type: 'click',\n listener() {\n targetRef.current = resolveTarget() as HTMLElement;\n\n if (props.toggleClassName) {\n if (hasClass(targetRef.current, props.toggleClassName)) {\n removeClass(targetRef.current, props.toggleClassName);\n } else {\n addClass(targetRef.current, props.toggleClassName);\n }\n } else {\n if (isVisible(targetRef.current)) {\n leave();\n } else {\n enter();\n }\n }\n }\n });\n\n // methods\n const enter = React.useCallback(() => {\n if (!targetRef.current) return;\n\n if (props.enterActiveClassName) {\n if (!animating.current) {\n animating.current = true;\n\n if (props.enterActiveClassName.includes('slidedown')) {\n targetRef.current.style.height = '0px';\n removeClass(targetRef.current, (props.hiddenClassName || props.enterFromClassName) ?? '');\n targetRef.current.style.maxHeight = targetRef.current.scrollHeight + 'px';\n addClass(targetRef.current, props.hiddenClassName || props.enterActiveClassName);\n targetRef.current.style.height = '';\n }\n\n addClass(targetRef.current, props.enterActiveClassName);\n\n if (props.enterFromClassName) {\n removeClass(targetRef.current, props.enterFromClassName);\n }\n\n bindTargetEnterListener({ target: targetRef.current });\n }\n } else {\n if (props.enterFromClassName) {\n removeClass(targetRef.current, props.enterFromClassName);\n }\n\n if (props.enterToClassName) {\n addClass(targetRef.current, props.enterToClassName);\n }\n }\n\n bindDocumentClickListener({ target: elementRef.current?.ownerDocument });\n }, [bindDocumentClickListener, bindTargetEnterListener, elementRef, props]);\n\n const leave = React.useCallback(() => {\n if (props.leaveActiveClassName) {\n if (!animating.current) {\n animating.current = true;\n addClass(targetRef.current as Element, props.leaveActiveClassName);\n\n if (props.leaveFromClassName) {\n removeClass(targetRef.current as Element, props.leaveFromClassName);\n }\n\n bindTargetLeaveListener({ target: targetRef.current });\n }\n } else {\n if (props.leaveFromClassName) {\n removeClass(targetRef.current as Element, props.leaveFromClassName);\n }\n\n if (props.leaveToClassName) {\n addClass(targetRef.current as Element, props.leaveToClassName);\n }\n }\n\n if (props.hideOnOutsideClick) {\n unbindDocumentClickListener();\n }\n }, [bindTargetLeaveListener, props, unbindDocumentClickListener]);\n\n const resolveTarget = React.useCallback(() => {\n return targetRef.current || getTargetElement(props.selector, elementRef.current as Element);\n }, [elementRef, props.selector]);\n\n const init = React.useCallback(() => {\n Promise.resolve().then(() => {\n if (props.nodeRef?.current) {\n elementRef.current = toElement(props.nodeRef) as HTMLElement;\n }\n\n setAttribute(elementRef.current as HTMLElement, 'data-pd-styleclass', true);\n bindClickListener({ target: elementRef.current });\n });\n }, [bindClickListener, elementRef, props.nodeRef]);\n\n const destroy = React.useCallback(() => {\n unbindClickListener();\n unbindDocumentClickListener();\n targetRef.current = null;\n }, []);\n\n const isOutsideClick = (event: MouseEvent) => {\n const target = event?.target as Node;\n\n return !elementRef.current?.isSameNode(target) && !elementRef.current?.contains(target) && !targetRef.current?.contains(target);\n };\n\n // effects\n useMountEffect(() => {\n init();\n });\n\n useUpdateEffect(() => {\n init();\n\n return () => {\n unbindClickListener();\n };\n });\n\n useUnmountEffect(() => {\n destroy();\n });\n\n return {\n // element refs\n targetRef,\n // methods\n enter,\n leave\n };\n }\n});\n","import type { useStyleClassProps } from '@primereact/types/shared/styleclass';\n\nexport const defaultProps: useStyleClassProps = {\n nodeRef: undefined,\n selector: undefined,\n enterFromClassName: undefined,\n enterActiveClassName: undefined,\n enterToClassName: undefined,\n leaveFromClassName: undefined,\n leaveActiveClassName: undefined,\n leaveToClassName: undefined,\n hiddenClassName: undefined,\n hideOnOutsideClick: false,\n toggleClassName: undefined\n};\n"],"mappings":"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","names":["withHeadless","useEventListener","useMountEffect","useUnmountEffect","useUpdateEffect","addClass","getTargetElement","hasClass","isVisible","removeClass","setAttribute","toElement","React","defaultProps","useStyleClass","withHeadless","defaultProps","props","elementRef","animating","targetRef","bindTargetEnterListener","unbindTargetEnterListener","useEventListener","_a","_b","removeClass","addClass","bindTargetLeaveListener","unbindTargetLeaveListener","bindDocumentClickListener","unbindDocumentClickListener","event","isVisible","isOutsideClick","leave","bindClickListener","unbindClickListener","resolveTarget","hasClass","enter","getTargetElement","init","toElement","setAttribute","destroy","_c","target","useMountEffect","useUpdateEffect","useUnmountEffect"]}
1
+ {"version":3,"sources":["../../src/styleclass/useStyleClass.ts","../../src/styleclass/useStyleClass.props.ts"],"sourcesContent":["import { withHeadless } from '@primereact/core/headless';\nimport { useEventListener } from '@primereact/hooks/use-event-listener';\nimport { useMountEffect } from '@primereact/hooks/use-mount-effect';\nimport { useUnmountEffect } from '@primereact/hooks/use-unmount-effect';\nimport { useUpdateEffect } from '@primereact/hooks/use-update-effect';\nimport { addClass, getTargetElement, hasClass, isElement, isVisible, removeClass, setAttribute, toElement } from '@primeuix/utils';\nimport * as React from 'react';\nimport { defaultProps } from './useStyleClass.props';\n\nexport const useStyleClass = withHeadless({\n name: 'useStyleClass',\n defaultProps,\n setup({ props, elementRef }) {\n const animating = React.useRef(false);\n\n // element refs\n const targetRef = React.useRef<HTMLElement | null>(null);\n const resizeObserver = React.useRef<ResizeObserver | null>(null);\n\n // events\n const [bindTargetEnterListener, unbindTargetEnterListener] = useEventListener({\n type: 'animationend',\n listener() {\n removeClass(targetRef.current as Element, props.enterActiveClassName ?? '');\n\n if (props.enterToClassName) {\n addClass(targetRef.current as Element, props.enterToClassName);\n }\n\n unbindTargetEnterListener();\n\n if (targetRef.current && props.enterActiveClassName?.includes('slidedown')) {\n targetRef.current.style.maxHeight = '';\n }\n\n animating.current = false;\n }\n });\n\n const [bindTargetLeaveListener, unbindTargetLeaveListener] = useEventListener({\n type: 'animationend',\n listener() {\n removeClass(targetRef.current as Element, props.leaveActiveClassName ?? '');\n\n if (props.leaveToClassName) {\n addClass(targetRef.current as Element, props.leaveToClassName);\n }\n\n unbindTargetLeaveListener();\n animating.current = false;\n }\n });\n\n const [bindDocumentClickListener, unbindDocumentClickListener] = useEventListener({\n type: 'click',\n listener(event) {\n if (!isVisible(targetRef.current as HTMLElement) || getComputedStyle(targetRef.current as Element).getPropertyValue('position') === 'static') {\n unbindDocumentClickListener();\n } else if (isOutsideClick(event as MouseEvent)) {\n leave();\n }\n },\n when: props.hideOnOutsideClick\n });\n\n const [bindWindowResizeListener, unbindWindowResizeListener] = useEventListener({\n type: 'resize',\n listener() {\n if (!isVisible(targetRef.current as HTMLElement)) {\n unbindWindowResizeListener();\n } else {\n leave();\n }\n },\n when: props.hideOnResize\n });\n\n const [bindClickListener, unbindClickListener] = useEventListener({\n type: 'click',\n listener() {\n targetRef.current = resolveTarget() as HTMLElement;\n\n if (props.toggleClassName) {\n if (hasClass(targetRef.current, props.toggleClassName)) {\n removeClass(targetRef.current, props.toggleClassName);\n } else {\n addClass(targetRef.current, props.toggleClassName);\n }\n } else {\n if (isVisible(targetRef.current)) {\n leave();\n } else {\n enter();\n }\n }\n }\n });\n\n // methods\n const enter = React.useCallback(() => {\n if (!targetRef.current) return;\n\n if (props.enterActiveClassName) {\n if (!animating.current) {\n animating.current = true;\n\n if (props.enterActiveClassName.includes('slidedown')) {\n targetRef.current.style.height = '0px';\n removeClass(targetRef.current, (props.hiddenClassName || props.enterFromClassName) ?? '');\n targetRef.current.style.maxHeight = targetRef.current.scrollHeight + 'px';\n addClass(targetRef.current, props.hiddenClassName || props.enterActiveClassName);\n targetRef.current.style.height = '';\n }\n\n addClass(targetRef.current, props.enterActiveClassName);\n\n if (props.enterFromClassName) {\n removeClass(targetRef.current, props.enterFromClassName);\n }\n\n bindTargetEnterListener({ target: targetRef.current });\n }\n } else {\n if (props.enterFromClassName) {\n removeClass(targetRef.current, props.enterFromClassName);\n }\n\n if (props.enterToClassName) {\n addClass(targetRef.current, props.enterToClassName);\n }\n }\n\n if (props.hideOnOutsideClick) {\n bindDocumentClickListener({ target: elementRef.current?.ownerDocument });\n }\n\n if (props.hideOnResize) {\n bindResizeListener();\n }\n }, [bindDocumentClickListener, bindTargetEnterListener, elementRef, props]);\n\n const leave = React.useCallback(() => {\n if (props.leaveActiveClassName) {\n if (!animating.current) {\n animating.current = true;\n addClass(targetRef.current as Element, props.leaveActiveClassName);\n\n if (props.leaveFromClassName) {\n removeClass(targetRef.current as Element, props.leaveFromClassName);\n }\n\n bindTargetLeaveListener({ target: targetRef.current });\n }\n } else {\n if (props.leaveFromClassName) {\n removeClass(targetRef.current as Element, props.leaveFromClassName);\n }\n\n if (props.leaveToClassName) {\n addClass(targetRef.current as Element, props.leaveToClassName);\n }\n }\n\n if (props.hideOnOutsideClick) {\n unbindDocumentClickListener();\n }\n\n if (props.hideOnResize) {\n unbindResizeListener();\n }\n }, [bindTargetLeaveListener, props, unbindDocumentClickListener]);\n\n const bindResizeListener = () => {\n const resizeTarget = getTargetElement(props.resizeSelector ?? 'window');\n\n if (isElement(resizeTarget)) {\n bindElementResizeListener(resizeTarget);\n } else {\n bindWindowResizeListener({ target: 'window' });\n }\n };\n\n const unbindResizeListener = () => {\n unbindWindowResizeListener();\n unbindElementResizeListener();\n };\n\n const bindElementResizeListener = (resizeTarget: Element) => {\n if (!resizeObserver.current && resizeTarget) {\n let isFirstResize = true;\n\n resizeObserver.current = new ResizeObserver(() => {\n if (isFirstResize) {\n isFirstResize = false;\n\n return;\n }\n\n if (isVisible(targetRef.current as HTMLElement)) {\n leave();\n }\n });\n resizeObserver.current.observe(resizeTarget);\n }\n };\n\n const unbindElementResizeListener = () => {\n if (resizeObserver.current) {\n resizeObserver.current.disconnect();\n resizeObserver.current = null;\n }\n };\n\n const resolveTarget = React.useCallback(() => {\n return targetRef.current || getTargetElement(props.selector, elementRef.current as Element);\n }, [elementRef, props.selector]);\n\n const init = React.useCallback(() => {\n Promise.resolve().then(() => {\n if (props.nodeRef?.current) {\n elementRef.current = toElement(props.nodeRef) as HTMLElement;\n }\n\n setAttribute(elementRef.current as HTMLElement, 'data-pd-styleclass', true);\n bindClickListener({ target: elementRef.current });\n });\n }, [bindClickListener, elementRef, props.nodeRef]);\n\n const destroy = React.useCallback(() => {\n unbindClickListener();\n unbindDocumentClickListener();\n unbindResizeListener();\n targetRef.current = null;\n }, []);\n\n const isOutsideClick = (event: MouseEvent) => {\n const target = event?.target as Node;\n\n return !elementRef.current?.isSameNode(target) && !elementRef.current?.contains(target) && !targetRef.current?.contains(target);\n };\n\n // effects\n useMountEffect(() => {\n init();\n });\n\n useUpdateEffect(() => {\n init();\n\n return () => {\n unbindClickListener();\n };\n });\n\n useUnmountEffect(() => {\n destroy();\n });\n\n // prop getters\n const rootProps = {\n 'data-scope': 'styleclass',\n 'data-part': 'root'\n };\n\n return {\n // prop getters\n rootProps,\n // element refs\n targetRef,\n // methods\n enter,\n leave\n };\n }\n});\n","import type { UseStyleClassProps } from '@primereact/types/headless/styleclass';\n\nexport const defaultProps: UseStyleClassProps = {\n nodeRef: undefined,\n selector: undefined,\n enterFromClassName: undefined,\n enterActiveClassName: undefined,\n enterToClassName: undefined,\n leaveFromClassName: undefined,\n leaveActiveClassName: undefined,\n leaveToClassName: undefined,\n hiddenClassName: undefined,\n hideOnOutsideClick: false,\n toggleClassName: undefined,\n hideOnResize: false,\n resizeSelector: undefined\n};\n"],"mappings":"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","names":["withHeadless","useEventListener","useMountEffect","useUnmountEffect","useUpdateEffect","addClass","getTargetElement","hasClass","isElement","isVisible","removeClass","setAttribute","toElement","React","defaultProps","useStyleClass","withHeadless","defaultProps","props","elementRef","animating","targetRef","resizeObserver","bindTargetEnterListener","unbindTargetEnterListener","useEventListener","_a","_b","removeClass","addClass","bindTargetLeaveListener","unbindTargetLeaveListener","bindDocumentClickListener","unbindDocumentClickListener","event","isVisible","isOutsideClick","leave","bindWindowResizeListener","unbindWindowResizeListener","bindClickListener","unbindClickListener","resolveTarget","hasClass","enter","bindResizeListener","unbindResizeListener","resizeTarget","getTargetElement","isElement","bindElementResizeListener","unbindElementResizeListener","isFirstResize","init","toElement","setAttribute","destroy","_c","target","useMountEffect","useUpdateEffect","useUnmountEffect"]}
@@ -1,5 +1,9 @@
1
1
  import * as React from 'react';
2
- export declare const useStyleClass: (inProps?: unknown) => import("@primereact/types/core").HeadlessInstance<import("@primereact/types/shared/styleclass").useStyleClassProps, unknown, {
2
+ export declare const useStyleClass: (inProps?: unknown) => import("@primereact/types/core").HeadlessInstance<import("@primereact/types/headless/styleclass").UseStyleClassProps, unknown, {
3
+ rootProps: {
4
+ 'data-scope': string;
5
+ 'data-part': string;
6
+ };
3
7
  targetRef: React.RefObject<HTMLElement | null>;
4
8
  enter: () => void;
5
9
  leave: () => void;
@@ -1,2 +1,2 @@
1
- import type { useStyleClassProps } from '@primereact/types/shared/styleclass';
2
- export declare const defaultProps: useStyleClassProps;
1
+ import type { UseStyleClassProps } from '@primereact/types/headless/styleclass';
2
+ export declare const defaultProps: UseStyleClassProps;
package/tabs/index.d.ts CHANGED
@@ -1,2 +1,3 @@
1
1
  export * from './useTabs';
2
2
  export * from './useTabs.props';
3
+ export type * from '@primereact/types/headless/tabs';
package/tabs/index.mjs CHANGED
@@ -1,2 +1,2 @@
1
- import{withHeadless as C}from"@primereact/core/headless";import{findSingle as E,focus as D,getAttribute as q,getOffset as H,getOuterHeight as h,getOuterWidth as V}from"@primeuix/utils";import*as m from"react";var M={value:void 0,onValueChange:void 0,selectOnFocus:!1};var j=C({name:"useTabs",defaultProps:M,setup:({props:s,elementRef:f})=>{var v;let[d,L]=m.useState((v=s.value)!=null?v:void 0),[x,S]=m.useState({}),k={activeTab:d,inkBarDimensions:x},g=t=>{var e;d!==t&&(L(t),(e=s.onValueChange)==null||e.call(s,{value:t}))};m.useEffect(()=>{s.value!==d&&L(s.value)},[s.value]);let P=t=>t==null?!1:d===t,A=()=>{let t=f==null?void 0:f.current;if(!t)return;let e=E(t,'[data-pc-section="tab"][data-p-active="true"]');if(!e)return;let a=t.querySelector('[data-pc-section="content"]');if(!a)return;let b=(a==null?void 0:a.scrollLeft)||0,i=H(e),n=H(t),r=H(a),o=V(e),u=h(e),c=h(a),l=Number(i.left)-Number(r.left),p=Number(i.left)-Number(n.left)+b,w=a.offsetWidth-(l+o),F=Number(i.top)-Number(r.top),y=Number(r.top)+c-(u+Number(i.top));return{"--width":o+"px","--height":u+"px","--top":F+"px","--left":p+"px","--right":w+"px","--bottom":y+"px"}},T=(t,e)=>{let a=r=>E(r,'[data-pc-section="tab"]'),b=(r,o,u=!1)=>{let l=u?r:r[o==="next"?"nextElementSibling":"previousElementSibling"];return l?q(l,"data-p-disabled")?b(l,o):a(l):null},i=r=>{let o=E(f==null?void 0:f.current,'[data-pc-section="tablist"]');if(!o)return null;let u='[data-pc-section="tab"]',c=null;if(r==="first")c=o.querySelector(u);else{let p=o.querySelectorAll(u);c=p.length>0?p[p.length-1]:null}return c?b(c,r==="first"?"next":"previous",!0):null};if(!t)return;let n=null;switch(e){case"next":n=b(t,"next"),n||(n=i("first"));break;case"previous":n=b(t,"previous"),n||(n=i("last"));break;case"first":n=i("first");break;case"last":n=i("last");break}n&&D(n)},B=(t,e)=>{switch(t.code){case"ArrowRight":T(t.currentTarget,"next");break;case"ArrowLeft":T(t.currentTarget,"previous");break;case"Home":T(t.currentTarget,"first");break;case"End":T(t.currentTarget,"last");break;case"Enter":case"NumpadEnter":case"Space":g(e);break;case"Tab":return;default:break}t.preventDefault()},N=(t,e)=>{s.selectOnFocus||g(e)},O=(t,e)=>{s.selectOnFocus&&g(e)};return m.useEffect(()=>{let t=requestAnimationFrame(()=>{let e=A();e&&S(e)});return()=>cancelAnimationFrame(t)},[d]),{state:k,updateValue:g,isItemActive:P,focusTab:T,onTabKeyDown:B,onTabClick:N,onTabFocus:O}}});export{M as defaultProps,j as useTabs};
1
+ var J=Object.defineProperty,Q=Object.defineProperties;var X=Object.getOwnPropertyDescriptors;var V=Object.getOwnPropertySymbols;var Y=Object.prototype.hasOwnProperty,Z=Object.prototype.propertyIsEnumerable;var I=(s,l,c)=>l in s?J(s,l,{enumerable:!0,configurable:!0,writable:!0,value:c}):s[l]=c,p=(s,l)=>{for(var c in l||(l={}))Y.call(l,c)&&I(s,c,l[c]);if(V)for(var c of V(l))Z.call(l,c)&&I(s,c,l[c]);return s},D=(s,l)=>Q(s,X(l));import{withHeadless as tt}from"@primereact/core/headless";import{useControlledState as et}from"@primereact/hooks/use-controlled-state";import{focus as nt,isRTL as w}from"@primeuix/utils";import*as a from"react";var N={value:void 0,defaultValue:void 0,onValueChange:void 0,selectOnFocus:!1,scrollStrategy:"nearest",tabIndex:0};var ft=tt({name:"useTabs",defaultProps:N,setup:({props:s,id:l})=>{let[c,_]=et({value:s.value,defaultValue:s.defaultValue,onChange:s.onValueChange}),[L,z]=a.useState(!1),[v,K]=a.useState(!1),b=a.useRef(null),A=a.useRef(null),P=a.useRef(null),h=a.useRef(null),R=a.useRef(null),j={activeTab:c,canScrollPrev:L,canScrollNext:v},g=t=>{c!==t&&_([t,{value:t}])},W=t=>t==null?!1:c===t,H=()=>{let t=h.current,e=R.current;!t||!e||(t.style.setProperty("--px-active-bar-width",e.offsetWidth+"px"),t.style.setProperty("--px-active-bar-height",e.offsetHeight+"px"),t.style.setProperty("--px-active-bar-left",e.offsetLeft+"px"),t.style.setProperty("--px-active-bar-top",e.offsetTop+"px"))},x=(t,e)=>{var f,E;let n='[role="tab"]',o='[role="tab"]:not([data-disabled])',r=(T,d)=>{let m=T[d==="next"?"nextElementSibling":"previousElementSibling"];return m?!m.matches(n)||m.hasAttribute("data-disabled")?r(m,d):m:null},u=(T,d)=>{let m=d.parentElement;if(!m)return null;let M=m.querySelectorAll(o);return M.length===0?null:T==="first"?M[0]:M[M.length-1]};if(!t)return;let i=null;switch(e){case"next":i=(f=r(t,"next"))!=null?f:u("first",t);break;case"previous":i=(E=r(t,"previous"))!=null?E:u("last",t);break;case"first":i=u("first",t);break;case"last":i=u("last",t);break}i&&nt(i)},B=(t,e)=>{switch(t.code){case"ArrowRight":x(t.currentTarget,"next");break;case"ArrowLeft":x(t.currentTarget,"previous");break;case"Home":x(t.currentTarget,"first");break;case"End":x(t.currentTarget,"last");break;case"Enter":case"NumpadEnter":case"Space":g(e);break;case"Tab":return;default:break}t.preventDefault()},C=(t,e)=>{s.selectOnFocus||g(e)},F=(t,e)=>{s.selectOnFocus&&g(e)},q=()=>{let t=b.current,e=R.current;if(!t||!e||s.scrollStrategy===!1)return;if(typeof s.scrollStrategy=="function"){s.scrollStrategy(t,e);return}let n=t.clientWidth,o=Math.abs(t.scrollLeft),r=e.offsetLeft,u=e.offsetWidth,i=r+u,f;if(s.scrollStrategy==="center")f=r-(n-u)/2;else{let d=n*.1;if(r<o+d)f=r-d;else if(i>o+n-d)f=i-n+d;else return}let E=t.scrollWidth-n,T=Math.max(0,Math.min(f,E));t.scrollTo({left:w(t)?-T:T,behavior:"smooth"})};a.useEffect(()=>{let t=requestAnimationFrame(()=>{H(),q()});return()=>cancelAnimationFrame(t)},[c]),a.useEffect(()=>{if(!b.current)return;let t=b.current,e=0,n=()=>{S(),H()},o=new MutationObserver(()=>{cancelAnimationFrame(e),e=requestAnimationFrame(n)});o.observe(t,{childList:!0,subtree:!0}),S();let r=new ResizeObserver(n);return r.observe(t),window.addEventListener("resize",n),()=>{cancelAnimationFrame(e),o.disconnect(),r.disconnect(),window.removeEventListener("resize",n)}},[]);let y=()=>{S()},k=()=>{let[t,e]=[A.current,P.current],n=0;return t&&e&&(n=((t==null?void 0:t.offsetWidth)||0)+((e==null?void 0:e.offsetWidth)||0)),n},S=()=>{if(!b.current)return;let t=b.current,{scrollWidth:e,clientWidth:n}=t,o=Math.abs(t.scrollLeft);z(o>1),K(e-n-o>1)},U=()=>{let t=b.current;if(!t)return;let e=k(),n=t.clientWidth-e,o=Math.abs(t.scrollLeft),r=n*.8,u=o-r,i=Math.max(u,0);t.scrollLeft=w(t)?-1*i:i},$=()=>{let t=b.current;if(!t)return;let e=k(),n=t.clientWidth-e,o=Math.abs(t.scrollLeft),r=n*.8,u=o+r,i=t.scrollWidth-n,f=Math.min(u,i);t.scrollLeft=w(t)?-1*f:f},O=a.useMemo(()=>p(p({},L&&{"data-can-scroll-prev":""}),v&&{"data-can-scroll-next":""}),[L,v]),G=a.useMemo(()=>p(p({onScroll:y},L&&{"data-can-scroll-prev":""}),v&&{"data-can-scroll-next":""}),[y,L,v]);return{state:j,updateValue:g,isItemActive:W,focusTab:x,onTabKeyDown:B,onTabClick:C,onTabFocus:F,getTabProps:(t,e)=>{var o;let n=W(t);return D(p(p(p({role:"tab",tabIndex:n?(o=s.tabIndex)!=null?o:0:-1,ref:n?R:void 0,disabled:e,"aria-selected":n,"aria-disabled":e,"aria-controls":`${l}_tabpanel_${t}`},n&&{"data-active":""}),e&&{"data-disabled":""}),O),{onClick:r=>C(r,t),onFocus:r=>F(r,t),onKeyDown:r=>B(r,t)})},getIndicatorProps:()=>{var t,e,n,o;return{ref:h,style:{"--px-active-bar-width":((t=h.current)==null?void 0:t.offsetWidth)+"px","--px-active-bar-height":((e=h.current)==null?void 0:e.offsetHeight)+"px","--px-active-bar-left":((n=h.current)==null?void 0:n.offsetLeft)+"px","--px-active-bar-top":((o=h.current)==null?void 0:o.offsetTop)+"px"}}},scrollPrev:U,scrollNext:$,updateScrollState:S,onContentScroll:y,scrollStateAttrs:O,contentProps:G,contentRef:b,prevButtonRef:A,nextButtonRef:P,activeBarRef:h,activeTabRef:R,updateActiveBar:H}}});export{N as defaultProps,ft as useTabs};
2
2
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/tabs/useTabs.ts","../../src/tabs/useTabs.props.ts"],"sourcesContent":["import { withHeadless } from '@primereact/core/headless';\nimport { useTabsProps } from '@primereact/types/shared/tabs';\nimport { findSingle, focus, getAttribute, getOffset, getOuterHeight, getOuterWidth } from '@primeuix/utils';\nimport * as React from 'react';\nimport { defaultProps } from './useTabs.props';\n\nexport const useTabs = withHeadless({\n name: 'useTabs',\n defaultProps,\n setup: ({ props, elementRef }) => {\n const [activeTabState, setActiveTabState] = React.useState<useTabsProps['value']>(props.value ?? undefined);\n const [inkBarDimensionsState, setInkBarDimensionsState] = React.useState<React.CSSProperties>({});\n\n const state = {\n activeTab: activeTabState,\n inkBarDimensions: inkBarDimensionsState\n };\n\n // methods\n const updateValue = (value: string | number | undefined) => {\n if (activeTabState !== value) {\n setActiveTabState(value);\n props.onValueChange?.({\n value\n });\n }\n };\n\n React.useEffect(() => {\n if (props.value !== activeTabState) {\n setActiveTabState(props.value);\n }\n }, [props.value]);\n\n const isItemActive = (key: null | undefined | string | number): boolean => {\n if (key === null || key === undefined) return false;\n\n return activeTabState === key;\n };\n\n const updateInkBar = () => {\n const tabs = elementRef?.current;\n\n if (!tabs) return;\n\n const activeTab = findSingle(tabs, '[data-pc-section=\"tab\"][data-p-active=\"true\"]');\n\n if (!activeTab) return;\n\n // Get elements and their offsets\n const scrollContainer = tabs.querySelector('[data-pc-section=\"content\"]') as HTMLElement;\n\n if (!scrollContainer) return;\n\n const scrollLeft = scrollContainer?.scrollLeft || 0;\n\n const activeTabOffset = getOffset(activeTab as HTMLElement);\n const containerOffset = getOffset(tabs);\n const scrollContainerOffset = getOffset(scrollContainer);\n\n // Get dimensions\n const tabWidth = getOuterWidth(activeTab as HTMLElement);\n const tabHeight = getOuterHeight(activeTab as HTMLElement);\n const scrollContainerHeight = getOuterHeight(scrollContainer);\n\n // Calculate positions\n const leftFromViewport = Number(activeTabOffset.left) - Number(scrollContainerOffset.left);\n const relativeLeft = Number(activeTabOffset.left) - Number(containerOffset.left) + scrollLeft;\n const relativeRight = scrollContainer.offsetWidth - (leftFromViewport + tabWidth);\n const relativeTop = Number(activeTabOffset.top) - Number(scrollContainerOffset.top);\n const relativeBottom = Number(scrollContainerOffset.top) + scrollContainerHeight - (tabHeight + Number(activeTabOffset.top));\n\n return {\n '--width': tabWidth + 'px',\n '--height': tabHeight + 'px',\n '--top': relativeTop + 'px',\n '--left': relativeLeft + 'px',\n '--right': relativeRight + 'px',\n '--bottom': relativeBottom + 'px'\n } as React.CSSProperties;\n };\n\n const focusTab = (tabElement: HTMLElement | null, direction: 'next' | 'previous' | 'first' | 'last'): void => {\n const findTab = (listElement: HTMLElement): HTMLElement | null => {\n return findSingle(listElement, '[data-pc-section=\"tab\"]') as HTMLElement | null;\n };\n\n const findAdjacentTab = (listElement: HTMLElement, direction: 'next' | 'previous', selfCheck = false): HTMLElement | null => {\n const siblingProperty = direction === 'next' ? 'nextElementSibling' : 'previousElementSibling';\n const element = selfCheck ? listElement : (listElement[siblingProperty] as HTMLElement | null);\n\n if (!element) {\n return null;\n }\n\n if (getAttribute(element, 'data-p-disabled')) {\n return findAdjacentTab(element, direction);\n }\n\n return findTab(element);\n };\n\n const findBoundaryTab = (boundary: 'first' | 'last'): HTMLElement | null => {\n const listElement = findSingle(elementRef?.current as HTMLElement, '[data-pc-section=\"tablist\"]') as HTMLElement | null;\n\n if (!listElement) return null;\n\n const tabSelector = '[data-pc-section=\"tab\"]';\n let targetChild: HTMLElement | null = null;\n\n if (boundary === 'first') {\n targetChild = listElement.querySelector(tabSelector) as HTMLElement | null;\n } else {\n const allTabs = listElement.querySelectorAll(tabSelector);\n\n targetChild = allTabs.length > 0 ? (allTabs[allTabs.length - 1] as HTMLElement) : null;\n }\n\n if (!targetChild) return null;\n\n const direction = boundary === 'first' ? 'next' : 'previous';\n\n return findAdjacentTab(targetChild, direction, true);\n };\n\n if (!tabElement) return;\n\n let targetTab: HTMLElement | null = null;\n\n switch (direction) {\n case 'next':\n targetTab = findAdjacentTab(tabElement, 'next');\n\n if (!targetTab) {\n targetTab = findBoundaryTab('first');\n }\n\n break;\n\n case 'previous':\n targetTab = findAdjacentTab(tabElement, 'previous');\n\n if (!targetTab) {\n targetTab = findBoundaryTab('last');\n }\n\n break;\n\n case 'first':\n targetTab = findBoundaryTab('first');\n break;\n\n case 'last':\n targetTab = findBoundaryTab('last');\n break;\n }\n\n if (targetTab) {\n focus(targetTab);\n }\n };\n\n const onTabKeyDown = (event: React.KeyboardEvent<HTMLButtonElement>, value: undefined | string | number) => {\n switch (event.code) {\n case 'ArrowRight':\n focusTab(event.currentTarget, 'next');\n break;\n\n case 'ArrowLeft':\n focusTab(event.currentTarget, 'previous');\n break;\n\n case 'Home':\n focusTab(event.currentTarget, 'first');\n break;\n\n case 'End':\n focusTab(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 const onTabClick = (event: React.MouseEvent<HTMLButtonElement>, value: undefined | string | number) => {\n if (!props.selectOnFocus) {\n updateValue(value);\n }\n };\n\n const onTabFocus = (event: React.FocusEvent<HTMLButtonElement>, value: undefined | string | number) => {\n if (props.selectOnFocus) {\n updateValue(value);\n }\n };\n\n // effects\n React.useEffect(() => {\n const raf = requestAnimationFrame(() => {\n const dimensions = updateInkBar();\n\n if (dimensions) {\n setInkBarDimensionsState(dimensions);\n }\n });\n\n return () => cancelAnimationFrame(raf);\n }, [activeTabState]);\n\n return {\n state,\n // methods\n updateValue,\n isItemActive,\n focusTab,\n onTabKeyDown,\n onTabClick,\n onTabFocus\n };\n }\n});\n","import type { useTabsProps } from '@primereact/types/shared/tabs';\n\nexport const defaultProps: useTabsProps = {\n value: undefined,\n onValueChange: undefined,\n selectOnFocus: false\n};\n"],"mappings":"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","names":["withHeadless","findSingle","focus","getAttribute","getOffset","getOuterHeight","getOuterWidth","React","defaultProps","useTabs","withHeadless","defaultProps","props","elementRef","_a","activeTabState","setActiveTabState","inkBarDimensionsState","setInkBarDimensionsState","state","updateValue","value","isItemActive","key","updateInkBar","tabs","activeTab","findSingle","scrollContainer","scrollLeft","activeTabOffset","getOffset","containerOffset","scrollContainerOffset","tabWidth","getOuterWidth","tabHeight","getOuterHeight","scrollContainerHeight","leftFromViewport","relativeLeft","relativeRight","relativeTop","relativeBottom","focusTab","tabElement","direction","findTab","listElement","findAdjacentTab","selfCheck","element","getAttribute","findBoundaryTab","boundary","tabSelector","targetChild","allTabs","targetTab","focus","onTabKeyDown","event","onTabClick","onTabFocus","raf","dimensions"]}
1
+ {"version":3,"sources":["../../src/tabs/useTabs.ts","../../src/tabs/useTabs.props.ts"],"sourcesContent":["import { withHeadless } from '@primereact/core/headless';\nimport { useControlledState } from '@primereact/hooks/use-controlled-state';\nimport { focus, isRTL } from '@primeuix/utils';\nimport * as React from 'react';\nimport { defaultProps } from './useTabs.props';\n\nexport const useTabs = withHeadless({\n name: 'useTabs',\n defaultProps,\n setup: ({ props, id }) => {\n const [activeTabState, setActiveTabState] = useControlledState({\n value: props.value,\n defaultValue: props.defaultValue,\n onChange: props.onValueChange\n });\n const [canScrollPrev, setCanScrollPrev] = React.useState<boolean>(false);\n const [canScrollNext, setCanScrollNext] = React.useState<boolean>(false);\n\n const contentRef = React.useRef<HTMLDivElement>(null);\n const prevButtonRef = React.useRef<HTMLButtonElement>(null);\n const nextButtonRef = React.useRef<HTMLButtonElement>(null);\n const activeBarRef = React.useRef<HTMLElement>(null);\n const activeTabRef = React.useRef<HTMLElement>(null);\n\n const state = {\n activeTab: activeTabState,\n canScrollPrev,\n canScrollNext\n };\n\n // methods\n const updateValue = (value: string | number | undefined) => {\n if (activeTabState !== value) {\n setActiveTabState([value, { value }]);\n }\n };\n\n const isItemActive = (key: null | undefined | string | number): boolean => {\n if (key === null || key === undefined) return false;\n\n return activeTabState === key;\n };\n\n const updateActiveBar = () => {\n const bar = activeBarRef.current;\n const tab = activeTabRef.current;\n\n if (!bar || !tab) return;\n\n bar.style.setProperty('--px-active-bar-width', tab.offsetWidth + 'px');\n bar.style.setProperty('--px-active-bar-height', tab.offsetHeight + 'px');\n bar.style.setProperty('--px-active-bar-left', tab.offsetLeft + 'px');\n bar.style.setProperty('--px-active-bar-top', tab.offsetTop + 'px');\n };\n\n const focusTab = (tabElement: HTMLElement | null, direction: 'next' | 'previous' | 'first' | 'last'): void => {\n const TAB_SELECTOR = '[role=\"tab\"]';\n const ENABLED_TAB_SELECTOR = '[role=\"tab\"]:not([data-disabled])';\n\n const findAdjacentTab = (element: HTMLElement, dir: 'next' | 'previous'): HTMLElement | null => {\n const sibling = element[dir === 'next' ? 'nextElementSibling' : 'previousElementSibling'] as HTMLElement | null;\n\n if (!sibling) return null;\n\n if (!sibling.matches(TAB_SELECTOR) || sibling.hasAttribute('data-disabled')) return findAdjacentTab(sibling, dir);\n\n return sibling;\n };\n\n const findBoundaryTab = (boundary: 'first' | 'last', currentTab: HTMLElement): HTMLElement | null => {\n const container = currentTab.parentElement;\n\n if (!container) return null;\n\n const tabs = container.querySelectorAll<HTMLElement>(ENABLED_TAB_SELECTOR);\n\n if (tabs.length === 0) return null;\n\n return boundary === 'first' ? tabs[0] : tabs[tabs.length - 1];\n };\n\n if (!tabElement) return;\n\n let targetTab: HTMLElement | null = null;\n\n switch (direction) {\n case 'next':\n targetTab = findAdjacentTab(tabElement, 'next') ?? findBoundaryTab('first', tabElement);\n break;\n\n case 'previous':\n targetTab = findAdjacentTab(tabElement, 'previous') ?? findBoundaryTab('last', tabElement);\n break;\n\n case 'first':\n targetTab = findBoundaryTab('first', tabElement);\n break;\n\n case 'last':\n targetTab = findBoundaryTab('last', tabElement);\n break;\n }\n\n if (targetTab) {\n focus(targetTab);\n }\n };\n\n const onTabKeyDown = (event: React.KeyboardEvent<HTMLButtonElement>, value: undefined | string | number) => {\n switch (event.code) {\n case 'ArrowRight':\n focusTab(event.currentTarget, 'next');\n break;\n\n case 'ArrowLeft':\n focusTab(event.currentTarget, 'previous');\n break;\n\n case 'Home':\n focusTab(event.currentTarget, 'first');\n break;\n\n case 'End':\n focusTab(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 const onTabClick = (event: React.MouseEvent<HTMLButtonElement>, value: undefined | string | number) => {\n if (!props.selectOnFocus) {\n updateValue(value);\n }\n };\n\n const onTabFocus = (event: React.FocusEvent<HTMLButtonElement>, value: undefined | string | number) => {\n if (props.selectOnFocus) {\n updateValue(value);\n }\n };\n\n const scrollToActiveTab = () => {\n const content = contentRef.current;\n const tab = activeTabRef.current;\n\n if (!content || !tab || props.scrollStrategy === false) return;\n\n if (typeof props.scrollStrategy === 'function') {\n props.scrollStrategy(content, tab);\n\n return;\n }\n\n const contentWidth = content.clientWidth;\n const currentScrollLeft = Math.abs(content.scrollLeft);\n const tabLeft = tab.offsetLeft;\n const tabWidth = tab.offsetWidth;\n const tabRight = tabLeft + tabWidth;\n\n let targetScrollLeft: number;\n\n if (props.scrollStrategy === 'center') {\n targetScrollLeft = tabLeft - (contentWidth - tabWidth) / 2;\n } else {\n // nearest\n const padding = contentWidth * 0.1;\n\n if (tabLeft < currentScrollLeft + padding) {\n targetScrollLeft = tabLeft - padding;\n } else if (tabRight > currentScrollLeft + contentWidth - padding) {\n targetScrollLeft = tabRight - contentWidth + padding;\n } else {\n return;\n }\n }\n\n const maxScrollLeft = content.scrollWidth - contentWidth;\n const clampedScrollLeft = Math.max(0, Math.min(targetScrollLeft, maxScrollLeft));\n\n content.scrollTo({ left: isRTL(content) ? -clampedScrollLeft : clampedScrollLeft, behavior: 'smooth' });\n };\n\n // effects\n React.useEffect(() => {\n const raf = requestAnimationFrame(() => {\n updateActiveBar();\n scrollToActiveTab();\n });\n\n return () => cancelAnimationFrame(raf);\n }, [activeTabState]);\n\n // observers\n React.useEffect(() => {\n if (!contentRef.current) return;\n\n const content = contentRef.current;\n let raf = 0;\n\n const onResize = () => {\n updateScrollState();\n updateActiveBar();\n };\n\n const mo = new MutationObserver(() => {\n cancelAnimationFrame(raf);\n raf = requestAnimationFrame(onResize);\n });\n\n mo.observe(content, { childList: true, subtree: true });\n\n updateScrollState();\n\n const ro = new ResizeObserver(onResize);\n\n ro.observe(content);\n\n window.addEventListener('resize', onResize);\n\n return () => {\n cancelAnimationFrame(raf);\n mo.disconnect();\n ro.disconnect();\n window.removeEventListener('resize', onResize);\n };\n }, []);\n\n const onContentScroll = () => {\n updateScrollState();\n };\n\n const getVisibleButtonWidths = () => {\n const [prevButton, nextButton] = [prevButtonRef.current, nextButtonRef.current];\n let width = 0;\n\n if (prevButton && nextButton) {\n width = (prevButton?.offsetWidth || 0) + (nextButton?.offsetWidth || 0);\n }\n\n return width;\n };\n\n const updateScrollState = () => {\n if (!contentRef.current) return;\n\n const content = contentRef.current;\n const { scrollWidth, clientWidth } = content;\n const scrollLeft = Math.abs(content.scrollLeft);\n\n setCanScrollPrev(scrollLeft > 1);\n setCanScrollNext(scrollWidth - clientWidth - scrollLeft > 1);\n };\n\n const scrollPrev = () => {\n const content = contentRef.current;\n\n if (!content) return;\n\n const buttonWidths = getVisibleButtonWidths();\n const width = content.clientWidth - buttonWidths;\n const currentScrollLeft = Math.abs(content.scrollLeft);\n const scrollStep = width * 0.8;\n const targetScrollLeft = currentScrollLeft - scrollStep;\n const scrollLeft = Math.max(targetScrollLeft, 0);\n\n content.scrollLeft = isRTL(content) ? -1 * scrollLeft : scrollLeft;\n };\n\n const scrollNext = () => {\n const content = contentRef.current;\n\n if (!content) return;\n\n const buttonWidths = getVisibleButtonWidths();\n const width = content.clientWidth - buttonWidths;\n const currentScrollLeft = Math.abs(content.scrollLeft);\n const scrollStep = width * 0.8;\n const targetScrollLeft = currentScrollLeft + scrollStep;\n const maxScrollLeft = content.scrollWidth - width;\n const scrollLeft = Math.min(targetScrollLeft, maxScrollLeft);\n\n content.scrollLeft = isRTL(content) ? -1 * scrollLeft : scrollLeft;\n };\n\n const scrollStateAttrs = React.useMemo(\n () => ({\n ...(canScrollPrev && { 'data-can-scroll-prev': '' as const }),\n ...(canScrollNext && { 'data-can-scroll-next': '' as const })\n }),\n [canScrollPrev, canScrollNext]\n );\n\n // prop getters\n const contentProps = React.useMemo(\n () => ({\n onScroll: onContentScroll,\n ...(canScrollPrev && { 'data-can-scroll-prev': '' as const }),\n ...(canScrollNext && { 'data-can-scroll-next': '' as const })\n }),\n [onContentScroll, canScrollPrev, canScrollNext]\n );\n\n const getTabProps = (value: string | number | undefined, disabled?: boolean) => {\n const active = isItemActive(value);\n\n return {\n role: 'tab' as const,\n tabIndex: active ? (props.tabIndex ?? 0) : -1,\n ref: active ? (activeTabRef as React.RefObject<HTMLButtonElement>) : undefined,\n disabled,\n 'aria-selected': active,\n 'aria-disabled': disabled,\n 'aria-controls': `${id}_tabpanel_${value}`,\n ...(active && { 'data-active': '' as const }),\n ...(disabled && { 'data-disabled': '' as const }),\n ...scrollStateAttrs,\n onClick: (event: React.MouseEvent<HTMLButtonElement>) => onTabClick(event, value),\n onFocus: (event: React.FocusEvent<HTMLButtonElement>) => onTabFocus(event, value),\n onKeyDown: (event: React.KeyboardEvent<HTMLButtonElement>) => onTabKeyDown(event, value)\n };\n };\n\n const getIndicatorProps = () => {\n return {\n ref: activeBarRef as React.RefObject<HTMLSpanElement>,\n style: {\n '--px-active-bar-width': activeBarRef.current?.offsetWidth + 'px',\n '--px-active-bar-height': activeBarRef.current?.offsetHeight + 'px',\n '--px-active-bar-left': activeBarRef.current?.offsetLeft + 'px',\n '--px-active-bar-top': activeBarRef.current?.offsetTop + 'px'\n } as React.CSSProperties\n };\n };\n\n return {\n state,\n // methods\n updateValue,\n isItemActive,\n focusTab,\n onTabKeyDown,\n onTabClick,\n onTabFocus,\n // prop getters\n getTabProps,\n getIndicatorProps,\n // scroll\n scrollPrev,\n scrollNext,\n updateScrollState,\n onContentScroll,\n scrollStateAttrs,\n contentProps,\n contentRef,\n prevButtonRef,\n nextButtonRef,\n activeBarRef,\n activeTabRef,\n updateActiveBar\n };\n }\n});\n","import type { UseTabsProps } from '@primereact/types/headless/tabs';\n\nexport const defaultProps: UseTabsProps = {\n value: undefined,\n defaultValue: undefined,\n onValueChange: undefined,\n selectOnFocus: false,\n scrollStrategy: 'nearest',\n tabIndex: 0\n};\n"],"mappings":"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","names":["withHeadless","useControlledState","focus","isRTL","React","defaultProps","useTabs","withHeadless","defaultProps","props","id","activeTabState","setActiveTabState","useControlledState","canScrollPrev","setCanScrollPrev","canScrollNext","setCanScrollNext","contentRef","prevButtonRef","nextButtonRef","activeBarRef","activeTabRef","state","updateValue","value","isItemActive","key","updateActiveBar","bar","tab","focusTab","tabElement","direction","_a","_b","TAB_SELECTOR","ENABLED_TAB_SELECTOR","findAdjacentTab","element","dir","sibling","findBoundaryTab","boundary","currentTab","container","tabs","targetTab","focus","onTabKeyDown","event","onTabClick","onTabFocus","scrollToActiveTab","content","contentWidth","currentScrollLeft","tabLeft","tabWidth","tabRight","targetScrollLeft","padding","maxScrollLeft","clampedScrollLeft","isRTL","raf","onResize","updateScrollState","mo","ro","onContentScroll","getVisibleButtonWidths","prevButton","nextButton","width","scrollWidth","clientWidth","scrollLeft","scrollPrev","buttonWidths","scrollStep","scrollNext","scrollStateAttrs","__spreadValues","contentProps","disabled","active","__spreadProps","_c","_d"]}
package/tabs/useTabs.d.ts CHANGED
@@ -1,9 +1,9 @@
1
- import { useTabsProps } from '@primereact/types/shared/tabs';
2
1
  import * as React from 'react';
3
- export declare const useTabs: (inProps?: unknown) => import("@primereact/types/core").HeadlessInstance<useTabsProps, unknown, {
2
+ export declare const useTabs: (inProps?: unknown) => import("@primereact/types/core").HeadlessInstance<import("@primereact/types/headless/tabs").UseTabsProps, unknown, {
4
3
  state: {
5
4
  activeTab: string | number | undefined;
6
- inkBarDimensions: React.CSSProperties;
5
+ canScrollPrev: boolean;
6
+ canScrollNext: boolean;
7
7
  };
8
8
  updateValue: (value: string | number | undefined) => void;
9
9
  isItemActive: (key: null | undefined | string | number) => boolean;
@@ -11,4 +11,43 @@ export declare const useTabs: (inProps?: unknown) => import("@primereact/types/c
11
11
  onTabKeyDown: (event: React.KeyboardEvent<HTMLButtonElement>, value: undefined | string | number) => void;
12
12
  onTabClick: (event: React.MouseEvent<HTMLButtonElement>, value: undefined | string | number) => void;
13
13
  onTabFocus: (event: React.FocusEvent<HTMLButtonElement>, value: undefined | string | number) => void;
14
+ getTabProps: (value: string | number | undefined, disabled?: boolean) => {
15
+ onClick: (event: React.MouseEvent<HTMLButtonElement>) => void;
16
+ onFocus: (event: React.FocusEvent<HTMLButtonElement>) => void;
17
+ onKeyDown: (event: React.KeyboardEvent<HTMLButtonElement>) => void;
18
+ 'data-can-scroll-next'?: "" | undefined;
19
+ 'data-can-scroll-prev'?: "" | undefined;
20
+ 'data-disabled'?: "" | undefined;
21
+ 'data-active'?: "" | undefined;
22
+ role: "tab";
23
+ tabIndex: number;
24
+ ref: React.RefObject<HTMLButtonElement> | undefined;
25
+ disabled: boolean | undefined;
26
+ 'aria-selected': boolean;
27
+ 'aria-disabled': boolean | undefined;
28
+ 'aria-controls': string;
29
+ };
30
+ getIndicatorProps: () => {
31
+ ref: React.RefObject<HTMLSpanElement>;
32
+ style: React.CSSProperties;
33
+ };
34
+ scrollPrev: () => void;
35
+ scrollNext: () => void;
36
+ updateScrollState: () => void;
37
+ onContentScroll: () => void;
38
+ scrollStateAttrs: {
39
+ 'data-can-scroll-next'?: "" | undefined;
40
+ 'data-can-scroll-prev'?: "" | undefined;
41
+ };
42
+ contentProps: {
43
+ 'data-can-scroll-next'?: "" | undefined;
44
+ 'data-can-scroll-prev'?: "" | undefined;
45
+ onScroll: () => void;
46
+ };
47
+ contentRef: React.RefObject<HTMLDivElement | null>;
48
+ prevButtonRef: React.RefObject<HTMLButtonElement | null>;
49
+ nextButtonRef: React.RefObject<HTMLButtonElement | null>;
50
+ activeBarRef: React.RefObject<HTMLElement | null>;
51
+ activeTabRef: React.RefObject<HTMLElement | null>;
52
+ updateActiveBar: () => void;
14
53
  }>;
@@ -1,2 +1,2 @@
1
- import type { useTabsProps } from '@primereact/types/shared/tabs';
2
- export declare const defaultProps: useTabsProps;
1
+ import type { UseTabsProps } from '@primereact/types/headless/tabs';
2
+ export declare const defaultProps: UseTabsProps;
package/tag/index.d.ts CHANGED
@@ -1,2 +1,3 @@
1
1
  export * from './useTag';
2
2
  export * from './useTag.props';
3
+ export type * from '@primereact/types/headless/tag';
package/tag/index.mjs CHANGED
@@ -1,2 +1,2 @@
1
- import{withHeadless as e}from"@primereact/core/headless";var r={};var s=e({name:"useTag",defaultProps:r});export{r as defaultProps,s as useTag};
1
+ import{withHeadless as o}from"@primereact/core/headless";var t={};var a=o({name:"useTag",defaultProps:t,setup(){return{rootProps:{"data-scope":"tag","data-part":"root"}}}});export{t as defaultProps,a as useTag};
2
2
  //# sourceMappingURL=index.mjs.map
package/tag/index.mjs.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/tag/useTag.ts","../../src/tag/useTag.props.ts"],"sourcesContent":["import { withHeadless } from '@primereact/core/headless';\nimport { defaultProps } from './useTag.props';\n\nexport const useTag = withHeadless({\n name: 'useTag',\n defaultProps\n});\n","import type { useTagProps } from '@primereact/types/shared/tag';\n\nexport const defaultProps: useTagProps = {};\n"],"mappings":"AAAA,OAAS,gBAAAA,MAAoB,4BCEtB,IAAMC,EAA4B,CAAC,EDCnC,IAAMC,EAASC,EAAa,CAC/B,KAAM,SACN,aAAAC,CACJ,CAAC","names":["withHeadless","defaultProps","useTag","withHeadless","defaultProps"]}
1
+ {"version":3,"sources":["../../src/tag/useTag.ts","../../src/tag/useTag.props.ts"],"sourcesContent":["import { withHeadless } from '@primereact/core/headless';\nimport { defaultProps } from './useTag.props';\n\nexport const useTag = withHeadless({\n name: 'useTag',\n defaultProps,\n setup() {\n // prop getters\n const rootProps = {\n 'data-scope': 'tag',\n 'data-part': 'root'\n };\n\n return {\n rootProps\n };\n }\n});\n","import type { UseTagProps } from '@primereact/types/headless/tag';\n\nexport const defaultProps: UseTagProps = {};\n"],"mappings":"AAAA,OAAS,gBAAAA,MAAoB,4BCEtB,IAAMC,EAA4B,CAAC,EDCnC,IAAMC,EAASC,EAAa,CAC/B,KAAM,SACN,aAAAC,EACA,OAAQ,CAOJ,MAAO,CACH,UANc,CACd,aAAc,MACd,YAAa,MACjB,CAIA,CACJ,CACJ,CAAC","names":["withHeadless","defaultProps","useTag","withHeadless","defaultProps"]}
package/tag/useTag.d.ts CHANGED
@@ -1 +1,6 @@
1
- export declare const useTag: (inProps?: unknown) => import("@primereact/types/core").HeadlessInstance<import("@primereact/types/shared/tag").useTagProps, unknown, Record<PropertyKey, unknown>>;
1
+ export declare const useTag: (inProps?: unknown) => import("@primereact/types/core").HeadlessInstance<import("@primereact/types/headless/tag").UseTagProps, unknown, {
2
+ rootProps: {
3
+ 'data-scope': string;
4
+ 'data-part': string;
5
+ };
6
+ }>;
@@ -1,2 +1,2 @@
1
- import type { useTagProps } from '@primereact/types/shared/tag';
2
- export declare const defaultProps: useTagProps;
1
+ import type { UseTagProps } from '@primereact/types/headless/tag';
2
+ export declare const defaultProps: UseTagProps;
@@ -1,2 +1,3 @@
1
1
  export * from './useTerminal';
2
2
  export * from './useTerminal.props';
3
+ export type * from '@primereact/types/headless/terminal';
@@ -1,2 +1,2 @@
1
- import{withHeadless as E}from"@primereact/core/headless";import{focus as R}from"@primeuix/utils";import{EventBus as h}from"@primeuix/utils/eventbus";var r=h();import*as e from"react";var T={prompt:void 0};var D=E({name:"useTerminal",defaultProps:T,setup({elementRef:m}){let[s,c]=e.useState(""),[t,u]=e.useState([]),[d,i]=e.useState(0),[x,S]=e.useState(""),p=e.useRef(null),l=e.useRef(!1),g={commandText:s,commands:t};return e.useEffect(()=>{let o=a=>{if(t&&t.length>0){let f=[...t];f[f.length-1].response=String(a),u(f)}},n=()=>{u([]),i(0)};return r.on("response",o),r.on("clear",n),()=>{r.off("response",o),r.off("clear",n)}},[t]),e.useEffect(()=>{l.current&&(r.emit("command",x),l.current=!1),m.current&&(m.current.scrollTop=m.current.scrollHeight)}),{state:g,inputRef:p,onClick:()=>{p.current&&R(p.current)},onKeyDown:o=>{switch(o.code){case"ArrowUp":if(t&&t.length){let n=d-1<0?t.length-1:d-1,a=t[n];i(n),c(a.text)}break;case"Enter":case"NumpadEnter":if(s){let n=[...t];n.push({text:s}),i(a=>a+1),c(""),u(n),S(s),l.current=!0}break;default:break}},onInputChange:o=>{c(o.target.value)}}}});export{T as defaultProps,D as useTerminal};
1
+ var h=(c,p,a)=>new Promise((l,o)=>{var i=t=>{try{m(a.next(t))}catch(u){o(u)}},d=t=>{try{m(a.throw(t))}catch(u){o(u)}},m=t=>t.done?l(t.value):Promise.resolve(t.value).then(i,d);m((a=a.apply(c,p)).next())});import{withHeadless as S}from"@primereact/core/headless";import{focus as b}from"@primeuix/utils";import*as n from"react";var g={prompt:void 0,onCommand:void 0};var M=S({name:"useTerminal",defaultProps:g,setup({props:c,elementRef:p}){let[a,l]=n.useState(""),[o,i]=n.useState([]),[d,m]=n.useState(0),t=n.useRef(null),u={commandText:a,commands:o},f=n.useCallback(()=>{i([]),m(0)},[]),C=n.useCallback(s=>{s===null?f():s!==void 0&&i(e=>{if(e.length===0)return e;let r=[...e];return r[r.length-1].response=s,r})},[f]),P=n.useCallback(s=>h(null,null,function*(){if(!c.onCommand)return;let e=c.onCommand(s);if(e instanceof Promise){let r=yield e;C(r)}else C(e)}),[c.onCommand,C]);n.useEffect(()=>{p.current&&(p.current.scrollTop=p.current.scrollHeight)});let R=()=>{t.current&&b(t.current)},x=s=>{switch(s.code){case"ArrowUp":if(o&&o.length){let e=d-1<0?o.length-1:d-1,r=o[e];m(e),l(r.text)}break;case"Enter":case"NumpadEnter":if(a){let e=[...o];e.push({text:a}),m(r=>r+1),l(""),i(e),P(a)}break;default:break}},T=s=>{l(s.target.value)};return{state:u,inputRef:t,rootProps:{"data-scope":"terminal","data-part":"root",onClick:R},promptValueProps:{ref:t,"data-scope":"terminal","data-part":"promptvalue",value:a,type:"text",autoComplete:"off",onChange:T,onKeyDown:x},commandResponseProps:{"data-scope":"terminal","data-part":"commandresponse","aria-live":"polite"},onClick:R,onKeyDown:x,onInputChange:T,clear:f}}});export{g as defaultProps,M as useTerminal};
2
2
  //# sourceMappingURL=index.mjs.map