@zentauri-ui/zentauri-components 1.9.2 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (886) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/README.md +36 -8
  3. package/cli/cli.integration.test.ts +52 -0
  4. package/cli/index.mjs +288 -0
  5. package/cli/registry.json +14 -0
  6. package/dist/chunk-22FJROCI.js +70 -0
  7. package/dist/chunk-22FJROCI.js.map +1 -0
  8. package/dist/chunk-2NQKFH26.mjs +64 -0
  9. package/dist/chunk-2NQKFH26.mjs.map +1 -0
  10. package/dist/chunk-2VPXQ2LA.mjs +57 -0
  11. package/dist/chunk-2VPXQ2LA.mjs.map +1 -0
  12. package/dist/chunk-3453DQNL.js +63 -0
  13. package/dist/chunk-3453DQNL.js.map +1 -0
  14. package/dist/chunk-34LHS26H.mjs +240 -0
  15. package/dist/chunk-34LHS26H.mjs.map +1 -0
  16. package/dist/chunk-3CYJQ6KF.js +121 -0
  17. package/dist/chunk-3CYJQ6KF.js.map +1 -0
  18. package/dist/chunk-3EJCQXGV.js +169 -0
  19. package/dist/chunk-3EJCQXGV.js.map +1 -0
  20. package/dist/chunk-3VW4HMJT.mjs +58 -0
  21. package/dist/chunk-3VW4HMJT.mjs.map +1 -0
  22. package/dist/chunk-42ZSQNDF.mjs +64 -0
  23. package/dist/chunk-42ZSQNDF.mjs.map +1 -0
  24. package/dist/{chunk-V4FFKIX3.js → chunk-4LCH4OJ5.js} +10 -10
  25. package/dist/{chunk-V4FFKIX3.js.map → chunk-4LCH4OJ5.js.map} +1 -1
  26. package/dist/chunk-4TX7EQ5Y.js +19 -0
  27. package/dist/{chunk-AQHY4S33.js.map → chunk-4TX7EQ5Y.js.map} +1 -1
  28. package/dist/chunk-4WG3VNVL.mjs +69 -0
  29. package/dist/chunk-4WG3VNVL.mjs.map +1 -0
  30. package/dist/chunk-4ZBMDWWY.mjs +107 -0
  31. package/dist/chunk-4ZBMDWWY.mjs.map +1 -0
  32. package/dist/chunk-523VQLCW.mjs +62 -0
  33. package/dist/chunk-523VQLCW.mjs.map +1 -0
  34. package/dist/chunk-5AOVTY2X.mjs +68 -0
  35. package/dist/chunk-5AOVTY2X.mjs.map +1 -0
  36. package/dist/{chunk-GVGKISKD.js → chunk-5QLPZYWO.js} +9 -9
  37. package/dist/{chunk-GVGKISKD.js.map → chunk-5QLPZYWO.js.map} +1 -1
  38. package/dist/{chunk-VUIWYURS.js → chunk-6XVSACCS.js} +15 -15
  39. package/dist/{chunk-VUIWYURS.js.map → chunk-6XVSACCS.js.map} +1 -1
  40. package/dist/{chunk-7GIL24GK.js → chunk-7ARZ3MK2.js} +12 -12
  41. package/dist/{chunk-7GIL24GK.js.map → chunk-7ARZ3MK2.js.map} +1 -1
  42. package/dist/chunk-7DVECOO7.js +78 -0
  43. package/dist/chunk-7DVECOO7.js.map +1 -0
  44. package/dist/{chunk-O23PJPGM.mjs → chunk-7HQFFQSQ.mjs} +3 -3
  45. package/dist/{chunk-O23PJPGM.mjs.map → chunk-7HQFFQSQ.mjs.map} +1 -1
  46. package/dist/{chunk-2PWT2MB5.mjs → chunk-7KCX2FX2.mjs} +3 -3
  47. package/dist/{chunk-2PWT2MB5.mjs.map → chunk-7KCX2FX2.mjs.map} +1 -1
  48. package/dist/{chunk-ZCTSXNAE.mjs → chunk-7WQ5TWUO.mjs} +3 -3
  49. package/dist/{chunk-ZCTSXNAE.mjs.map → chunk-7WQ5TWUO.mjs.map} +1 -1
  50. package/dist/chunk-A7MU6SFI.js +254 -0
  51. package/dist/chunk-A7MU6SFI.js.map +1 -0
  52. package/dist/chunk-AOVZY2A3.js +80 -0
  53. package/dist/chunk-AOVZY2A3.js.map +1 -0
  54. package/dist/{chunk-D4B62J5C.js → chunk-APBQNYFN.js} +11 -11
  55. package/dist/{chunk-D4B62J5C.js.map → chunk-APBQNYFN.js.map} +1 -1
  56. package/dist/chunk-AZ26NZJV.mjs +66 -0
  57. package/dist/chunk-AZ26NZJV.mjs.map +1 -0
  58. package/dist/chunk-BBM4BKSN.js +65 -0
  59. package/dist/chunk-BBM4BKSN.js.map +1 -0
  60. package/dist/{chunk-I4TGI6U3.mjs → chunk-BGIWVTAU.mjs} +3 -3
  61. package/dist/{chunk-I4TGI6U3.mjs.map → chunk-BGIWVTAU.mjs.map} +1 -1
  62. package/dist/{chunk-OPUO55TO.mjs → chunk-BJRS5RXR.mjs} +3 -3
  63. package/dist/{chunk-OPUO55TO.mjs.map → chunk-BJRS5RXR.mjs.map} +1 -1
  64. package/dist/{chunk-RYJ5WEE3.js → chunk-BUBIH4LS.js} +9 -9
  65. package/dist/{chunk-RYJ5WEE3.js.map → chunk-BUBIH4LS.js.map} +1 -1
  66. package/dist/chunk-BUEI4RMR.mjs +82 -0
  67. package/dist/chunk-BUEI4RMR.mjs.map +1 -0
  68. package/dist/chunk-BVTYDGLM.mjs +68 -0
  69. package/dist/chunk-BVTYDGLM.mjs.map +1 -0
  70. package/dist/{chunk-7JBQ3ZJN.mjs → chunk-BYXFSXNG.mjs} +3 -3
  71. package/dist/{chunk-7JBQ3ZJN.mjs.map → chunk-BYXFSXNG.mjs.map} +1 -1
  72. package/dist/chunk-BZTAA3MK.js +62 -0
  73. package/dist/chunk-BZTAA3MK.js.map +1 -0
  74. package/dist/chunk-C6K2SWHC.mjs +74 -0
  75. package/dist/chunk-C6K2SWHC.mjs.map +1 -0
  76. package/dist/chunk-CJCOURVM.js +79 -0
  77. package/dist/chunk-CJCOURVM.js.map +1 -0
  78. package/dist/chunk-COVTMJIQ.mjs +171 -0
  79. package/dist/chunk-COVTMJIQ.mjs.map +1 -0
  80. package/dist/{chunk-ZY6O6Z2I.mjs → chunk-CQ2S43AD.mjs} +3 -3
  81. package/dist/{chunk-ZY6O6Z2I.mjs.map → chunk-CQ2S43AD.mjs.map} +1 -1
  82. package/dist/chunk-D7ATXPVI.js +70 -0
  83. package/dist/chunk-D7ATXPVI.js.map +1 -0
  84. package/dist/chunk-DOA4ESKS.mjs +58 -0
  85. package/dist/chunk-DOA4ESKS.mjs.map +1 -0
  86. package/dist/{chunk-QIUVXTLE.mjs → chunk-DSGPPYZ3.mjs} +3 -3
  87. package/dist/{chunk-QIUVXTLE.mjs.map → chunk-DSGPPYZ3.mjs.map} +1 -1
  88. package/dist/chunk-DYSXCJGL.js +47 -0
  89. package/dist/chunk-DYSXCJGL.js.map +1 -0
  90. package/dist/{chunk-P2DQP4J4.js → chunk-EDJ6TVL3.js} +117 -12
  91. package/dist/chunk-EDJ6TVL3.js.map +1 -0
  92. package/dist/chunk-EE53BIXR.mjs +112 -0
  93. package/dist/chunk-EE53BIXR.mjs.map +1 -0
  94. package/dist/chunk-EJ3UMMCS.mjs +65 -0
  95. package/dist/chunk-EJ3UMMCS.mjs.map +1 -0
  96. package/dist/chunk-ENYZGL4R.mjs +94 -0
  97. package/dist/chunk-ENYZGL4R.mjs.map +1 -0
  98. package/dist/{chunk-BZZVO4GL.mjs → chunk-F6W3GJJ2.mjs} +108 -3
  99. package/dist/chunk-F6W3GJJ2.mjs.map +1 -0
  100. package/dist/chunk-FBUY6K6S.js +69 -0
  101. package/dist/chunk-FBUY6K6S.js.map +1 -0
  102. package/dist/{chunk-QKZR2UTL.mjs → chunk-FEMXNI6E.mjs} +3 -3
  103. package/dist/{chunk-QKZR2UTL.mjs.map → chunk-FEMXNI6E.mjs.map} +1 -1
  104. package/dist/chunk-FX5KR2GP.mjs +81 -0
  105. package/dist/chunk-FX5KR2GP.mjs.map +1 -0
  106. package/dist/{chunk-3HSFL4WA.mjs → chunk-GENYOZN4.mjs} +3 -3
  107. package/dist/{chunk-3HSFL4WA.mjs.map → chunk-GENYOZN4.mjs.map} +1 -1
  108. package/dist/{chunk-C7F6OCGK.mjs → chunk-GFCT24TH.mjs} +3 -3
  109. package/dist/{chunk-C7F6OCGK.mjs.map → chunk-GFCT24TH.mjs.map} +1 -1
  110. package/dist/{chunk-IPUQBMAB.mjs → chunk-GH2GZFRD.mjs} +3 -3
  111. package/dist/{chunk-IPUQBMAB.mjs.map → chunk-GH2GZFRD.mjs.map} +1 -1
  112. package/dist/{chunk-NAHHFB2M.js → chunk-GICW4DH5.js} +9 -9
  113. package/dist/{chunk-NAHHFB2M.js.map → chunk-GICW4DH5.js.map} +1 -1
  114. package/dist/chunk-HFQJRAG7.mjs +116 -0
  115. package/dist/chunk-HFQJRAG7.mjs.map +1 -0
  116. package/dist/chunk-HNRCPZCK.js +107 -0
  117. package/dist/chunk-HNRCPZCK.js.map +1 -0
  118. package/dist/chunk-HOOZYA4N.js +92 -0
  119. package/dist/chunk-HOOZYA4N.js.map +1 -0
  120. package/dist/chunk-IEHY6KNM.js +122 -0
  121. package/dist/chunk-IEHY6KNM.js.map +1 -0
  122. package/dist/{chunk-BDBL4XXI.mjs → chunk-ILCT3P7D.mjs} +3 -3
  123. package/dist/{chunk-BDBL4XXI.mjs.map → chunk-ILCT3P7D.mjs.map} +1 -1
  124. package/dist/chunk-IR5SJ7AQ.js +87 -0
  125. package/dist/chunk-IR5SJ7AQ.js.map +1 -0
  126. package/dist/chunk-J2SUGU3X.js +63 -0
  127. package/dist/chunk-J2SUGU3X.js.map +1 -0
  128. package/dist/{chunk-4LVEWKXF.mjs → chunk-J7IATHJY.mjs} +3 -3
  129. package/dist/{chunk-4LVEWKXF.mjs.map → chunk-J7IATHJY.mjs.map} +1 -1
  130. package/dist/{chunk-EKBSSKJQ.js → chunk-JD7TCCMW.js} +10 -10
  131. package/dist/{chunk-EKBSSKJQ.js.map → chunk-JD7TCCMW.js.map} +1 -1
  132. package/dist/chunk-JEDMUBYI.mjs +75 -0
  133. package/dist/chunk-JEDMUBYI.mjs.map +1 -0
  134. package/dist/{chunk-L4PDJ6IB.mjs → chunk-JEZUMCJ6.mjs} +3 -3
  135. package/dist/{chunk-L4PDJ6IB.mjs.map → chunk-JEZUMCJ6.mjs.map} +1 -1
  136. package/dist/{chunk-KEGOUZL5.js → chunk-JGPG2D2Y.js} +7 -7
  137. package/dist/{chunk-KEGOUZL5.js.map → chunk-JGPG2D2Y.js.map} +1 -1
  138. package/dist/chunk-JOLSS7UY.mjs +61 -0
  139. package/dist/chunk-JOLSS7UY.mjs.map +1 -0
  140. package/dist/{chunk-ATMCT3A3.mjs → chunk-K2H6LIPQ.mjs} +3 -3
  141. package/dist/{chunk-ATMCT3A3.mjs.map → chunk-K2H6LIPQ.mjs.map} +1 -1
  142. package/dist/chunk-K7PR3XXT.mjs +128 -0
  143. package/dist/chunk-K7PR3XXT.mjs.map +1 -0
  144. package/dist/{chunk-LQPKZ5ZD.js → chunk-KCXTYTOY.js} +6 -6
  145. package/dist/{chunk-LQPKZ5ZD.js.map → chunk-KCXTYTOY.js.map} +1 -1
  146. package/dist/chunk-KJMW7S5X.js +78 -0
  147. package/dist/chunk-KJMW7S5X.js.map +1 -0
  148. package/dist/chunk-KOIXQXZB.js +49 -0
  149. package/dist/{chunk-NVTV3EQB.js.map → chunk-KOIXQXZB.js.map} +1 -1
  150. package/dist/{chunk-PKXDRTC7.js → chunk-KQZWTTY2.js} +13 -13
  151. package/dist/{chunk-PKXDRTC7.js.map → chunk-KQZWTTY2.js.map} +1 -1
  152. package/dist/chunk-KWBGLH7G.js +155 -0
  153. package/dist/chunk-KWBGLH7G.js.map +1 -0
  154. package/dist/chunk-L7W4NRK6.js +78 -0
  155. package/dist/chunk-L7W4NRK6.js.map +1 -0
  156. package/dist/chunk-LRYKMXKI.mjs +159 -0
  157. package/dist/chunk-LRYKMXKI.mjs.map +1 -0
  158. package/dist/chunk-MBEQ4GQ7.mjs +44 -0
  159. package/dist/chunk-MBEQ4GQ7.mjs.map +1 -0
  160. package/dist/{chunk-PAJYNQR3.mjs → chunk-MI3CVVNR.mjs} +3 -3
  161. package/dist/{chunk-PAJYNQR3.mjs.map → chunk-MI3CVVNR.mjs.map} +1 -1
  162. package/dist/{chunk-4FU6FDUT.mjs → chunk-MXYQOQJ4.mjs} +3 -3
  163. package/dist/{chunk-4FU6FDUT.mjs.map → chunk-MXYQOQJ4.mjs.map} +1 -1
  164. package/dist/chunk-N3FNN47Q.mjs +64 -0
  165. package/dist/chunk-N3FNN47Q.mjs.map +1 -0
  166. package/dist/chunk-NEFDIJ5N.js +672 -0
  167. package/dist/chunk-NEFDIJ5N.js.map +1 -0
  168. package/dist/chunk-NFUOJMNI.js +61 -0
  169. package/dist/chunk-NFUOJMNI.js.map +1 -0
  170. package/dist/chunk-NGZTAVQO.mjs +79 -0
  171. package/dist/chunk-NGZTAVQO.mjs.map +1 -0
  172. package/dist/chunk-NNGL2AFQ.js +181 -0
  173. package/dist/chunk-NNGL2AFQ.js.map +1 -0
  174. package/dist/{chunk-Q2NE2UAO.mjs → chunk-NXVSGMLI.mjs} +3 -3
  175. package/dist/{chunk-Q2NE2UAO.mjs.map → chunk-NXVSGMLI.mjs.map} +1 -1
  176. package/dist/chunk-NYO3W5GY.js +61 -0
  177. package/dist/chunk-NYO3W5GY.js.map +1 -0
  178. package/dist/{chunk-ZFNVFMWG.mjs → chunk-O22T5X4G.mjs} +3 -3
  179. package/dist/{chunk-ZFNVFMWG.mjs.map → chunk-O22T5X4G.mjs.map} +1 -1
  180. package/dist/{chunk-Y73U7C4T.js → chunk-OCKSRD6O.js} +16 -16
  181. package/dist/{chunk-Y73U7C4T.js.map → chunk-OCKSRD6O.js.map} +1 -1
  182. package/dist/{chunk-27PO2FY2.mjs → chunk-OO4IPM4F.mjs} +3 -3
  183. package/dist/{chunk-27PO2FY2.mjs.map → chunk-OO4IPM4F.mjs.map} +1 -1
  184. package/dist/chunk-PP3L6M62.js +126 -0
  185. package/dist/chunk-PP3L6M62.js.map +1 -0
  186. package/dist/{chunk-63YMCBGJ.js → chunk-PYNQZP4X.js} +12 -12
  187. package/dist/{chunk-63YMCBGJ.js.map → chunk-PYNQZP4X.js.map} +1 -1
  188. package/dist/{chunk-QDHARZDN.js → chunk-QGTLXKKB.js} +12 -12
  189. package/dist/{chunk-QDHARZDN.js.map → chunk-QGTLXKKB.js.map} +1 -1
  190. package/dist/chunk-QNRJT7R4.js +144 -0
  191. package/dist/chunk-QNRJT7R4.js.map +1 -0
  192. package/dist/chunk-QX6PPTWL.mjs +125 -0
  193. package/dist/chunk-QX6PPTWL.mjs.map +1 -0
  194. package/dist/{chunk-OPACTZGV.js → chunk-RRUVHDN6.js} +11 -11
  195. package/dist/{chunk-OPACTZGV.js.map → chunk-RRUVHDN6.js.map} +1 -1
  196. package/dist/{chunk-IQ6QVIZ3.mjs → chunk-RSMFWP5S.mjs} +3 -3
  197. package/dist/{chunk-IQ6QVIZ3.mjs.map → chunk-RSMFWP5S.mjs.map} +1 -1
  198. package/dist/chunk-SCOIRBML.js +705 -0
  199. package/dist/{chunk-WBRTXAKP.js.map → chunk-SCOIRBML.js.map} +1 -1
  200. package/dist/chunk-SCWQSQBJ.mjs +113 -0
  201. package/dist/chunk-SCWQSQBJ.mjs.map +1 -0
  202. package/dist/{chunk-LLNK24MM.js → chunk-SK24YZIC.js} +18 -18
  203. package/dist/{chunk-LLNK24MM.js.map → chunk-SK24YZIC.js.map} +1 -1
  204. package/dist/chunk-SRJCGSNX.js +74 -0
  205. package/dist/chunk-SRJCGSNX.js.map +1 -0
  206. package/dist/chunk-SRSRY5K2.js +71 -0
  207. package/dist/chunk-SRSRY5K2.js.map +1 -0
  208. package/dist/chunk-SS3T3BUL.mjs +70 -0
  209. package/dist/chunk-SS3T3BUL.mjs.map +1 -0
  210. package/dist/{chunk-L6PSW7JE.mjs → chunk-SUTFW53Y.mjs} +3 -3
  211. package/dist/{chunk-L6PSW7JE.mjs.map → chunk-SUTFW53Y.mjs.map} +1 -1
  212. package/dist/chunk-T4ZLTKV2.mjs +112 -0
  213. package/dist/chunk-T4ZLTKV2.mjs.map +1 -0
  214. package/dist/chunk-TCEGQIGW.mjs +653 -0
  215. package/dist/chunk-TCEGQIGW.mjs.map +1 -0
  216. package/dist/{chunk-MUKI3OHH.js → chunk-TDVHPNYI.js} +14 -14
  217. package/dist/{chunk-MUKI3OHH.js.map → chunk-TDVHPNYI.js.map} +1 -1
  218. package/dist/chunk-TKAOHMVA.mjs +120 -0
  219. package/dist/chunk-TKAOHMVA.mjs.map +1 -0
  220. package/dist/chunk-TT33BIIT.js +71 -0
  221. package/dist/chunk-TT33BIIT.js.map +1 -0
  222. package/dist/chunk-U64ISRUX.mjs +73 -0
  223. package/dist/chunk-U64ISRUX.mjs.map +1 -0
  224. package/dist/{chunk-O6R6OQXI.mjs → chunk-UFDJ5NIY.mjs} +3 -3
  225. package/dist/{chunk-O6R6OQXI.mjs.map → chunk-UFDJ5NIY.mjs.map} +1 -1
  226. package/dist/chunk-UG3GF2BD.js +120 -0
  227. package/dist/chunk-UG3GF2BD.js.map +1 -0
  228. package/dist/chunk-UJXFD4SK.js +65 -0
  229. package/dist/chunk-UJXFD4SK.js.map +1 -0
  230. package/dist/chunk-USLNTKVQ.js +114 -0
  231. package/dist/chunk-USLNTKVQ.js.map +1 -0
  232. package/dist/chunk-UT6QG35L.js +68 -0
  233. package/dist/chunk-UT6QG35L.js.map +1 -0
  234. package/dist/{chunk-37YQUTKG.js → chunk-VKEDTQY6.js} +8 -8
  235. package/dist/{chunk-37YQUTKG.js.map → chunk-VKEDTQY6.js.map} +1 -1
  236. package/dist/{chunk-I5TREZO5.js → chunk-VSD4KDZT.js} +10 -10
  237. package/dist/{chunk-I5TREZO5.js.map → chunk-VSD4KDZT.js.map} +1 -1
  238. package/dist/chunk-WGN2CBG6.js +82 -0
  239. package/dist/chunk-WGN2CBG6.js.map +1 -0
  240. package/dist/chunk-X7HK6RTF.js +83 -0
  241. package/dist/chunk-X7HK6RTF.js.map +1 -0
  242. package/dist/{chunk-34OSFCSH.js → chunk-XF3NHZZ3.js} +7 -7
  243. package/dist/{chunk-34OSFCSH.js.map → chunk-XF3NHZZ3.js.map} +1 -1
  244. package/dist/chunk-XUW42JAP.js +69 -0
  245. package/dist/chunk-XUW42JAP.js.map +1 -0
  246. package/dist/{chunk-EIX26RKN.js → chunk-XXGMFT6O.js} +9 -9
  247. package/dist/{chunk-EIX26RKN.js.map → chunk-XXGMFT6O.js.map} +1 -1
  248. package/dist/chunk-Y5JAQEBF.js +134 -0
  249. package/dist/chunk-Y5JAQEBF.js.map +1 -0
  250. package/dist/chunk-Y7BU5RC4.js +95 -0
  251. package/dist/chunk-Y7BU5RC4.js.map +1 -0
  252. package/dist/chunk-YH6MOKHR.mjs +65 -0
  253. package/dist/chunk-YH6MOKHR.mjs.map +1 -0
  254. package/dist/chunk-YKTANA3H.mjs +52 -0
  255. package/dist/chunk-YKTANA3H.mjs.map +1 -0
  256. package/dist/{chunk-NWMSIYZP.js → chunk-YNTUZCLI.js} +16 -16
  257. package/dist/{chunk-NWMSIYZP.js.map → chunk-YNTUZCLI.js.map} +1 -1
  258. package/dist/chunk-YPTHTFVF.mjs +144 -0
  259. package/dist/chunk-YPTHTFVF.mjs.map +1 -0
  260. package/dist/chunk-YPYPWALR.js +128 -0
  261. package/dist/chunk-YPYPWALR.js.map +1 -0
  262. package/dist/chunk-YXU2MJMT.mjs +52 -0
  263. package/dist/chunk-YXU2MJMT.mjs.map +1 -0
  264. package/dist/{chunk-ZITS2V53.js → chunk-ZIP7EX64.js} +9 -9
  265. package/dist/{chunk-ZITS2V53.js.map → chunk-ZIP7EX64.js.map} +1 -1
  266. package/dist/chunk-ZJWOSRAS.mjs +57 -0
  267. package/dist/chunk-ZJWOSRAS.mjs.map +1 -0
  268. package/dist/{chunk-ODT5TFIT.mjs → chunk-ZMFRJHO6.mjs} +3 -3
  269. package/dist/{chunk-ODT5TFIT.mjs.map → chunk-ZMFRJHO6.mjs.map} +1 -1
  270. package/dist/chunk-ZPGYR2UP.mjs +54 -0
  271. package/dist/chunk-ZPGYR2UP.mjs.map +1 -0
  272. package/dist/{chunk-XPHD3X4L.mjs → chunk-ZUQOQW5W.mjs} +3 -3
  273. package/dist/{chunk-XPHD3X4L.mjs.map → chunk-ZUQOQW5W.mjs.map} +1 -1
  274. package/dist/design-system/accordion.d.ts +85 -85
  275. package/dist/design-system/accordion.d.ts.map +1 -1
  276. package/dist/design-system/alert.d.ts +46 -46
  277. package/dist/design-system/alert.d.ts.map +1 -1
  278. package/dist/design-system/animated-number.d.ts +44 -44
  279. package/dist/design-system/avatar.d.ts +47 -47
  280. package/dist/design-system/avatar.d.ts.map +1 -1
  281. package/dist/design-system/badge.d.ts +92 -92
  282. package/dist/design-system/badge.d.ts.map +1 -1
  283. package/dist/design-system/breadcrumb.d.ts +38 -38
  284. package/dist/design-system/breadcrumb.d.ts.map +1 -1
  285. package/dist/design-system/button.d.ts +50 -50
  286. package/dist/design-system/button.d.ts.map +1 -1
  287. package/dist/design-system/card.d.ts +52 -52
  288. package/dist/design-system/card.d.ts.map +1 -1
  289. package/dist/design-system/checkbox.d.ts +32 -32
  290. package/dist/design-system/checkbox.d.ts.map +1 -1
  291. package/dist/design-system/combobox.d.ts +124 -0
  292. package/dist/design-system/combobox.d.ts.map +1 -0
  293. package/dist/design-system/command.d.ts +53 -53
  294. package/dist/design-system/command.d.ts.map +1 -1
  295. package/dist/design-system/context-menu.d.ts +51 -51
  296. package/dist/design-system/context-menu.d.ts.map +1 -1
  297. package/dist/design-system/copy-button.d.ts +49 -49
  298. package/dist/design-system/copy-button.d.ts.map +1 -1
  299. package/dist/design-system/divider.d.ts +47 -47
  300. package/dist/design-system/drawer.d.ts +90 -90
  301. package/dist/design-system/drawer.d.ts.map +1 -1
  302. package/dist/design-system/dropdown.d.ts +97 -97
  303. package/dist/design-system/dropdown.d.ts.map +1 -1
  304. package/dist/design-system/dynamic-stepper.d.ts +57 -57
  305. package/dist/design-system/empty-state.d.ts +25 -25
  306. package/dist/design-system/empty-state.d.ts.map +1 -1
  307. package/dist/design-system/facade.js +41 -40
  308. package/dist/design-system/facade.js.map +1 -1
  309. package/dist/design-system/facade.mjs +40 -39
  310. package/dist/design-system/facade.mjs.map +1 -1
  311. package/dist/design-system/file-upload.d.ts +36 -36
  312. package/dist/design-system/file-upload.d.ts.map +1 -1
  313. package/dist/design-system/index.d.ts +1 -0
  314. package/dist/design-system/index.d.ts.map +1 -1
  315. package/dist/design-system/inputs.d.ts +159 -159
  316. package/dist/design-system/inputs.d.ts.map +1 -1
  317. package/dist/design-system/kbd.d.ts +51 -51
  318. package/dist/design-system/kbd.d.ts.map +1 -1
  319. package/dist/design-system/marquee.d.ts +43 -43
  320. package/dist/design-system/marquee.d.ts.map +1 -1
  321. package/dist/design-system/modal.d.ts +90 -90
  322. package/dist/design-system/modal.d.ts.map +1 -1
  323. package/dist/design-system/otp-input.d.ts +38 -38
  324. package/dist/design-system/otp-input.d.ts.map +1 -1
  325. package/dist/design-system/pagination.d.ts +51 -51
  326. package/dist/design-system/pagination.d.ts.map +1 -1
  327. package/dist/design-system/popover.d.ts +44 -44
  328. package/dist/design-system/popover.d.ts.map +1 -1
  329. package/dist/design-system/progress.d.ts +47 -47
  330. package/dist/design-system/progress.d.ts.map +1 -1
  331. package/dist/design-system/radio-group.d.ts +32 -32
  332. package/dist/design-system/radio-group.d.ts.map +1 -1
  333. package/dist/design-system/rating.d.ts +54 -54
  334. package/dist/design-system/rating.d.ts.map +1 -1
  335. package/dist/design-system/scroll-area.d.ts +30 -30
  336. package/dist/design-system/scroll-area.d.ts.map +1 -1
  337. package/dist/design-system/select.d.ts +132 -132
  338. package/dist/design-system/select.d.ts.map +1 -1
  339. package/dist/design-system/skeleton.d.ts +67 -67
  340. package/dist/design-system/skeleton.d.ts.map +1 -1
  341. package/dist/design-system/slider.d.ts +45 -45
  342. package/dist/design-system/slider.d.ts.map +1 -1
  343. package/dist/design-system/spinner.d.ts +43 -43
  344. package/dist/design-system/table.d.ts +108 -108
  345. package/dist/design-system/table.d.ts.map +1 -1
  346. package/dist/design-system/tabs.d.ts +43 -43
  347. package/dist/design-system/tabs.d.ts.map +1 -1
  348. package/dist/design-system/timeline.d.ts +45 -45
  349. package/dist/design-system/timeline.d.ts.map +1 -1
  350. package/dist/design-system/toast.d.ts +47 -47
  351. package/dist/design-system/toast.d.ts.map +1 -1
  352. package/dist/design-system/toggle.d.ts +88 -88
  353. package/dist/design-system/toggle.d.ts.map +1 -1
  354. package/dist/design-system/tokens.d.ts +101 -0
  355. package/dist/design-system/tokens.d.ts.map +1 -1
  356. package/dist/design-system/tokens.js +11 -7
  357. package/dist/design-system/tokens.mjs +1 -1
  358. package/dist/design-system/tooltip.d.ts +44 -44
  359. package/dist/design-system/tooltip.d.ts.map +1 -1
  360. package/dist/design-system/tree-view.d.ts +92 -92
  361. package/dist/design-system/tree-view.d.ts.map +1 -1
  362. package/dist/hooks/index.d.ts +13 -0
  363. package/dist/hooks/index.d.ts.map +1 -1
  364. package/dist/hooks/useCookie/index.d.ts +2 -0
  365. package/dist/hooks/useCookie/index.d.ts.map +1 -0
  366. package/dist/hooks/useCookie/useCookie.d.ts +36 -0
  367. package/dist/hooks/useCookie/useCookie.d.ts.map +1 -0
  368. package/dist/hooks/useCookie.js +76 -0
  369. package/dist/hooks/useCookie.js.map +1 -0
  370. package/dist/hooks/useCookie.mjs +74 -0
  371. package/dist/hooks/useCookie.mjs.map +1 -0
  372. package/dist/hooks/useCountdown/index.d.ts +2 -0
  373. package/dist/hooks/useCountdown/index.d.ts.map +1 -0
  374. package/dist/hooks/useCountdown/useCountdown.d.ts +40 -0
  375. package/dist/hooks/useCountdown/useCountdown.d.ts.map +1 -0
  376. package/dist/hooks/useCountdown.js +60 -0
  377. package/dist/hooks/useCountdown.js.map +1 -0
  378. package/dist/hooks/useCountdown.mjs +58 -0
  379. package/dist/hooks/useCountdown.mjs.map +1 -0
  380. package/dist/hooks/useEventListener/index.d.ts +2 -0
  381. package/dist/hooks/useEventListener/index.d.ts.map +1 -0
  382. package/dist/hooks/useEventListener/useEventListener.d.ts +22 -0
  383. package/dist/hooks/useEventListener/useEventListener.d.ts.map +1 -0
  384. package/dist/hooks/useEventListener.js +45 -0
  385. package/dist/hooks/useEventListener.js.map +1 -0
  386. package/dist/hooks/useEventListener.mjs +43 -0
  387. package/dist/hooks/useEventListener.mjs.map +1 -0
  388. package/dist/hooks/useGeolocation/index.d.ts +2 -0
  389. package/dist/hooks/useGeolocation/index.d.ts.map +1 -0
  390. package/dist/hooks/useGeolocation/useGeolocation.d.ts +48 -0
  391. package/dist/hooks/useGeolocation/useGeolocation.d.ts.map +1 -0
  392. package/dist/hooks/useGeolocation.js +111 -0
  393. package/dist/hooks/useGeolocation.js.map +1 -0
  394. package/dist/hooks/useGeolocation.mjs +109 -0
  395. package/dist/hooks/useGeolocation.mjs.map +1 -0
  396. package/dist/hooks/useHotkeys/index.d.ts +2 -0
  397. package/dist/hooks/useHotkeys/index.d.ts.map +1 -0
  398. package/dist/hooks/useHotkeys/useHotkeys.d.ts +24 -0
  399. package/dist/hooks/useHotkeys/useHotkeys.d.ts.map +1 -0
  400. package/dist/hooks/useHotkeys.js +90 -0
  401. package/dist/hooks/useHotkeys.js.map +1 -0
  402. package/dist/hooks/useHotkeys.mjs +88 -0
  403. package/dist/hooks/useHotkeys.mjs.map +1 -0
  404. package/dist/hooks/useIdleTimeout/index.d.ts +2 -0
  405. package/dist/hooks/useIdleTimeout/index.d.ts.map +1 -0
  406. package/dist/hooks/useIdleTimeout/useIdleTimeout.d.ts +31 -0
  407. package/dist/hooks/useIdleTimeout/useIdleTimeout.d.ts.map +1 -0
  408. package/dist/hooks/useIdleTimeout.js +77 -0
  409. package/dist/hooks/useIdleTimeout.js.map +1 -0
  410. package/dist/hooks/useIdleTimeout.mjs +75 -0
  411. package/dist/hooks/useIdleTimeout.mjs.map +1 -0
  412. package/dist/hooks/useInterval/index.d.ts +2 -0
  413. package/dist/hooks/useInterval/index.d.ts.map +1 -0
  414. package/dist/hooks/useInterval/useInterval.d.ts +12 -0
  415. package/dist/hooks/useInterval/useInterval.d.ts.map +1 -0
  416. package/dist/hooks/useInterval.js +27 -0
  417. package/dist/hooks/useInterval.js.map +1 -0
  418. package/dist/hooks/useInterval.mjs +25 -0
  419. package/dist/hooks/useInterval.mjs.map +1 -0
  420. package/dist/hooks/useKeyPress/index.d.ts +2 -0
  421. package/dist/hooks/useKeyPress/index.d.ts.map +1 -0
  422. package/dist/hooks/useKeyPress/useKeyPress.d.ts +15 -0
  423. package/dist/hooks/useKeyPress/useKeyPress.d.ts.map +1 -0
  424. package/dist/hooks/useKeyPress.js +47 -0
  425. package/dist/hooks/useKeyPress.js.map +1 -0
  426. package/dist/hooks/useKeyPress.mjs +45 -0
  427. package/dist/hooks/useKeyPress.mjs.map +1 -0
  428. package/dist/hooks/useLongPress/index.d.ts +2 -0
  429. package/dist/hooks/useLongPress/index.d.ts.map +1 -0
  430. package/dist/hooks/useLongPress/useLongPress.d.ts +46 -0
  431. package/dist/hooks/useLongPress/useLongPress.d.ts.map +1 -0
  432. package/dist/hooks/useLongPress.js +116 -0
  433. package/dist/hooks/useLongPress.js.map +1 -0
  434. package/dist/hooks/useLongPress.mjs +114 -0
  435. package/dist/hooks/useLongPress.mjs.map +1 -0
  436. package/dist/hooks/usePrevious/index.d.ts +2 -0
  437. package/dist/hooks/usePrevious/index.d.ts.map +1 -0
  438. package/dist/hooks/usePrevious/usePrevious.d.ts +13 -0
  439. package/dist/hooks/usePrevious/usePrevious.d.ts.map +1 -0
  440. package/dist/hooks/usePrevious.js +17 -0
  441. package/dist/hooks/usePrevious.js.map +1 -0
  442. package/dist/hooks/usePrevious.mjs +15 -0
  443. package/dist/hooks/usePrevious.mjs.map +1 -0
  444. package/dist/hooks/useScrollPosition/index.d.ts +2 -0
  445. package/dist/hooks/useScrollPosition/index.d.ts.map +1 -0
  446. package/dist/hooks/useScrollPosition/useScrollPosition.d.ts +37 -0
  447. package/dist/hooks/useScrollPosition/useScrollPosition.d.ts.map +1 -0
  448. package/dist/hooks/useScrollPosition.js +41 -0
  449. package/dist/hooks/useScrollPosition.js.map +1 -0
  450. package/dist/hooks/useScrollPosition.mjs +39 -0
  451. package/dist/hooks/useScrollPosition.mjs.map +1 -0
  452. package/dist/hooks/useTimeout/index.d.ts +2 -0
  453. package/dist/hooks/useTimeout/index.d.ts.map +1 -0
  454. package/dist/hooks/useTimeout/useTimeout.d.ts +19 -0
  455. package/dist/hooks/useTimeout/useTimeout.d.ts.map +1 -0
  456. package/dist/hooks/useTimeout.js +38 -0
  457. package/dist/hooks/useTimeout.js.map +1 -0
  458. package/dist/hooks/useTimeout.mjs +36 -0
  459. package/dist/hooks/useTimeout.mjs.map +1 -0
  460. package/dist/hooks/useVirtualList/index.d.ts +2 -0
  461. package/dist/hooks/useVirtualList/index.d.ts.map +1 -0
  462. package/dist/hooks/useVirtualList/useVirtualList.d.ts +47 -0
  463. package/dist/hooks/useVirtualList/useVirtualList.d.ts.map +1 -0
  464. package/dist/hooks/useVirtualList.js +84 -0
  465. package/dist/hooks/useVirtualList.js.map +1 -0
  466. package/dist/hooks/useVirtualList.mjs +82 -0
  467. package/dist/hooks/useVirtualList.mjs.map +1 -0
  468. package/dist/lib/facade.d.ts.map +1 -1
  469. package/dist/ui/accordion/animated.js +8 -8
  470. package/dist/ui/accordion/animated.mjs +3 -3
  471. package/dist/ui/accordion.js +10 -10
  472. package/dist/ui/accordion.mjs +3 -3
  473. package/dist/ui/alert/animated.js +3 -3
  474. package/dist/ui/alert/animated.mjs +2 -2
  475. package/dist/ui/alert.js +11 -11
  476. package/dist/ui/alert.mjs +3 -3
  477. package/dist/ui/animated-number.js +4 -4
  478. package/dist/ui/animated-number.mjs +1 -1
  479. package/dist/ui/avatar/animated.js +6 -6
  480. package/dist/ui/avatar/animated.mjs +3 -3
  481. package/dist/ui/avatar.js +10 -10
  482. package/dist/ui/avatar.mjs +3 -3
  483. package/dist/ui/badge/animated.js +3 -3
  484. package/dist/ui/badge/animated.mjs +2 -2
  485. package/dist/ui/badge/variants.d.ts +45 -45
  486. package/dist/ui/badge.js +5 -5
  487. package/dist/ui/badge.mjs +3 -3
  488. package/dist/ui/breadcrumb.js +9 -9
  489. package/dist/ui/breadcrumb.mjs +1 -1
  490. package/dist/ui/buttons/animated.js +43 -42
  491. package/dist/ui/buttons/animated.js.map +1 -1
  492. package/dist/ui/buttons/animated.mjs +41 -40
  493. package/dist/ui/buttons/animated.mjs.map +1 -1
  494. package/dist/ui/buttons.js +44 -43
  495. package/dist/ui/buttons.mjs +42 -41
  496. package/dist/ui/card/animated.js +8 -8
  497. package/dist/ui/card/animated.mjs +3 -3
  498. package/dist/ui/card.js +13 -13
  499. package/dist/ui/card.mjs +3 -3
  500. package/dist/ui/checkbox/animated.js +5 -5
  501. package/dist/ui/checkbox/animated.mjs +2 -2
  502. package/dist/ui/checkbox.js +9 -9
  503. package/dist/ui/checkbox.mjs +3 -3
  504. package/dist/ui/combobox/combobox-base.d.ts +37 -0
  505. package/dist/ui/combobox/combobox-base.d.ts.map +1 -0
  506. package/dist/ui/combobox/combobox.d.ts +6 -0
  507. package/dist/ui/combobox/combobox.d.ts.map +1 -0
  508. package/dist/ui/combobox/index.d.ts +4 -0
  509. package/dist/ui/combobox/index.d.ts.map +1 -0
  510. package/dist/ui/combobox/types.d.ts +70 -0
  511. package/dist/ui/combobox/types.d.ts.map +1 -0
  512. package/dist/ui/combobox/variants.d.ts +17 -0
  513. package/dist/ui/combobox/variants.d.ts.map +1 -0
  514. package/dist/ui/combobox.js +510 -0
  515. package/dist/ui/combobox.js.map +1 -0
  516. package/dist/ui/combobox.mjs +495 -0
  517. package/dist/ui/combobox.mjs.map +1 -0
  518. package/dist/ui/command/animated.js +3 -3
  519. package/dist/ui/command/animated.mjs +2 -2
  520. package/dist/ui/command.js +16 -16
  521. package/dist/ui/command.mjs +3 -3
  522. package/dist/ui/context-menu.js +8 -8
  523. package/dist/ui/context-menu.mjs +2 -2
  524. package/dist/ui/copy-button/animated.js +3 -3
  525. package/dist/ui/copy-button/animated.mjs +2 -2
  526. package/dist/ui/copy-button.js +4 -4
  527. package/dist/ui/copy-button.mjs +3 -3
  528. package/dist/ui/divider/animated.js +3 -3
  529. package/dist/ui/divider/animated.mjs +2 -2
  530. package/dist/ui/divider.js +7 -7
  531. package/dist/ui/divider.mjs +3 -3
  532. package/dist/ui/drawer/animated.js +12 -12
  533. package/dist/ui/drawer/animated.mjs +3 -3
  534. package/dist/ui/drawer.js +12 -12
  535. package/dist/ui/drawer.mjs +2 -2
  536. package/dist/ui/dropdown.js +9 -9
  537. package/dist/ui/dropdown.mjs +1 -1
  538. package/dist/ui/dynamic-stepper/variants.d.ts +1 -1
  539. package/dist/ui/dynamic-stepper/variants.d.ts.map +1 -1
  540. package/dist/ui/dynamic-stepper.js +53 -52
  541. package/dist/ui/dynamic-stepper.js.map +1 -1
  542. package/dist/ui/dynamic-stepper.mjs +42 -41
  543. package/dist/ui/dynamic-stepper.mjs.map +1 -1
  544. package/dist/ui/empty-state/animated.js +3 -3
  545. package/dist/ui/empty-state/animated.mjs +2 -2
  546. package/dist/ui/empty-state.js +11 -11
  547. package/dist/ui/empty-state.mjs +3 -3
  548. package/dist/ui/file-upload.js +3 -3
  549. package/dist/ui/file-upload.mjs +1 -1
  550. package/dist/ui/inputs/animated.js +4 -4
  551. package/dist/ui/inputs/animated.mjs +2 -2
  552. package/dist/ui/inputs.js +5 -5
  553. package/dist/ui/inputs.mjs +3 -3
  554. package/dist/ui/kbd/animated.js +3 -3
  555. package/dist/ui/kbd/animated.mjs +2 -2
  556. package/dist/ui/kbd.js +5 -5
  557. package/dist/ui/kbd.mjs +3 -3
  558. package/dist/ui/marquee.js +6 -6
  559. package/dist/ui/marquee.mjs +1 -1
  560. package/dist/ui/modal/animated.js +5 -5
  561. package/dist/ui/modal/animated.mjs +2 -2
  562. package/dist/ui/modal.js +13 -13
  563. package/dist/ui/modal.mjs +3 -3
  564. package/dist/ui/otp-input.js +10 -10
  565. package/dist/ui/otp-input.mjs +1 -1
  566. package/dist/ui/pagination.js +49 -48
  567. package/dist/ui/pagination.js.map +1 -1
  568. package/dist/ui/pagination.mjs +41 -40
  569. package/dist/ui/pagination.mjs.map +1 -1
  570. package/dist/ui/popover/animated.js +5 -5
  571. package/dist/ui/popover/animated.mjs +2 -2
  572. package/dist/ui/popover.js +8 -8
  573. package/dist/ui/popover.mjs +2 -2
  574. package/dist/ui/progress/animated.js +9 -9
  575. package/dist/ui/progress/animated.mjs +3 -3
  576. package/dist/ui/progress.js +10 -10
  577. package/dist/ui/progress.mjs +3 -3
  578. package/dist/ui/radio-group/animated.js +8 -8
  579. package/dist/ui/radio-group/animated.mjs +2 -2
  580. package/dist/ui/radio-group.js +12 -12
  581. package/dist/ui/radio-group.mjs +3 -3
  582. package/dist/ui/rating.js +11 -11
  583. package/dist/ui/rating.mjs +1 -1
  584. package/dist/ui/scroll-area.js +7 -7
  585. package/dist/ui/scroll-area.mjs +1 -1
  586. package/dist/ui/search/search-suggestion-list.d.ts.map +1 -1
  587. package/dist/ui/search.js +12 -9
  588. package/dist/ui/search.js.map +1 -1
  589. package/dist/ui/search.mjs +11 -8
  590. package/dist/ui/search.mjs.map +1 -1
  591. package/dist/ui/select.js +11 -11
  592. package/dist/ui/select.mjs +1 -1
  593. package/dist/ui/skeleton/animated.js +9 -9
  594. package/dist/ui/skeleton/animated.mjs +2 -2
  595. package/dist/ui/skeleton/variants.d.ts +21 -21
  596. package/dist/ui/skeleton/variants.d.ts.map +1 -1
  597. package/dist/ui/skeleton.js +10 -10
  598. package/dist/ui/skeleton.mjs +2 -2
  599. package/dist/ui/slider.js +9 -9
  600. package/dist/ui/slider.mjs +1 -1
  601. package/dist/ui/spinner/animated.js +5 -5
  602. package/dist/ui/spinner/animated.mjs +1 -1
  603. package/dist/ui/table/animated.js +9 -9
  604. package/dist/ui/table/animated.mjs +3 -3
  605. package/dist/ui/table.js +15 -15
  606. package/dist/ui/table.mjs +2 -2
  607. package/dist/ui/tabs/animated.js +3 -3
  608. package/dist/ui/tabs/animated.mjs +2 -2
  609. package/dist/ui/tabs.js +10 -10
  610. package/dist/ui/tabs.mjs +2 -2
  611. package/dist/ui/timeline/animated.js +12 -12
  612. package/dist/ui/timeline/animated.mjs +3 -3
  613. package/dist/ui/timeline.js +15 -15
  614. package/dist/ui/timeline.mjs +3 -3
  615. package/dist/ui/toast/animated.js +8 -8
  616. package/dist/ui/toast/animated.mjs +2 -2
  617. package/dist/ui/toast.js +13 -13
  618. package/dist/ui/toast.mjs +2 -2
  619. package/dist/ui/toggle/animated.js +5 -5
  620. package/dist/ui/toggle/animated.mjs +2 -2
  621. package/dist/ui/toggle.js +5 -5
  622. package/dist/ui/toggle.mjs +3 -3
  623. package/dist/ui/tooltip/animated.js +4 -4
  624. package/dist/ui/tooltip/animated.mjs +2 -2
  625. package/dist/ui/tooltip.js +8 -8
  626. package/dist/ui/tooltip.mjs +2 -2
  627. package/dist/ui/tree-view/animated.js +3 -3
  628. package/dist/ui/tree-view/animated.mjs +2 -2
  629. package/dist/ui/tree-view.js +6 -6
  630. package/dist/ui/tree-view.mjs +3 -3
  631. package/package.json +2 -2
  632. package/src/design-system/accordion.ts +85 -85
  633. package/src/design-system/alert.ts +46 -46
  634. package/src/design-system/animated-number.ts +44 -44
  635. package/src/design-system/avatar.ts +47 -47
  636. package/src/design-system/badge.ts +50 -50
  637. package/src/design-system/breadcrumb.ts +38 -38
  638. package/src/design-system/button.ts +52 -52
  639. package/src/design-system/card.ts +54 -54
  640. package/src/design-system/checkbox.ts +32 -32
  641. package/src/design-system/combobox.ts +204 -0
  642. package/src/design-system/command.ts +53 -53
  643. package/src/design-system/context-menu.ts +24 -24
  644. package/src/design-system/copy-button.ts +51 -51
  645. package/src/design-system/divider.ts +47 -47
  646. package/src/design-system/drawer.ts +90 -90
  647. package/src/design-system/dropdown.ts +97 -97
  648. package/src/design-system/dynamic-stepper.ts +57 -57
  649. package/src/design-system/empty-state.ts +25 -25
  650. package/src/design-system/file-upload.ts +36 -36
  651. package/src/design-system/index.ts +1 -0
  652. package/src/design-system/inputs.ts +166 -166
  653. package/src/design-system/kbd.ts +52 -52
  654. package/src/design-system/marquee.ts +43 -43
  655. package/src/design-system/modal.ts +90 -90
  656. package/src/design-system/otp-input.ts +38 -38
  657. package/src/design-system/pagination.ts +51 -51
  658. package/src/design-system/popover.ts +44 -44
  659. package/src/design-system/progress.ts +47 -47
  660. package/src/design-system/radio-group.ts +32 -32
  661. package/src/design-system/rating.ts +54 -54
  662. package/src/design-system/scroll-area.ts +30 -30
  663. package/src/design-system/select.ts +132 -132
  664. package/src/design-system/skeleton.ts +67 -67
  665. package/src/design-system/slider.ts +45 -45
  666. package/src/design-system/spinner.ts +43 -43
  667. package/src/design-system/table.ts +108 -108
  668. package/src/design-system/tabs.ts +44 -43
  669. package/src/design-system/timeline.ts +45 -45
  670. package/src/design-system/toast.ts +47 -47
  671. package/src/design-system/toggle.ts +88 -88
  672. package/src/design-system/tokens.ts +102 -0
  673. package/src/design-system/tooltip.ts +44 -44
  674. package/src/design-system/tree-view.ts +92 -92
  675. package/src/hooks/index.ts +50 -0
  676. package/src/hooks/useCookie/index.ts +5 -0
  677. package/src/hooks/useCookie/useCookie.test.ts +57 -0
  678. package/src/hooks/useCookie/useCookie.ts +127 -0
  679. package/src/hooks/useCountdown/index.ts +5 -0
  680. package/src/hooks/useCountdown/useCountdown.test.ts +113 -0
  681. package/src/hooks/useCountdown/useCountdown.ts +106 -0
  682. package/src/hooks/useEventListener/index.ts +4 -0
  683. package/src/hooks/useEventListener/useEventListener.test.ts +60 -0
  684. package/src/hooks/useEventListener/useEventListener.ts +99 -0
  685. package/src/hooks/useGeolocation/index.ts +6 -0
  686. package/src/hooks/useGeolocation/useGeolocation.test.ts +110 -0
  687. package/src/hooks/useGeolocation/useGeolocation.ts +175 -0
  688. package/src/hooks/useHotkeys/index.ts +5 -0
  689. package/src/hooks/useHotkeys/useHotkeys.test.ts +82 -0
  690. package/src/hooks/useHotkeys/useHotkeys.ts +130 -0
  691. package/src/hooks/useIdleTimeout/index.ts +5 -0
  692. package/src/hooks/useIdleTimeout/useIdleTimeout.test.ts +95 -0
  693. package/src/hooks/useIdleTimeout/useIdleTimeout.ts +111 -0
  694. package/src/hooks/useInterval/index.ts +1 -0
  695. package/src/hooks/useInterval/useInterval.test.ts +56 -0
  696. package/src/hooks/useInterval/useInterval.ts +36 -0
  697. package/src/hooks/useKeyPress/index.ts +1 -0
  698. package/src/hooks/useKeyPress/useKeyPress.test.ts +67 -0
  699. package/src/hooks/useKeyPress/useKeyPress.ts +65 -0
  700. package/src/hooks/useLongPress/index.ts +5 -0
  701. package/src/hooks/useLongPress/useLongPress.test.ts +180 -0
  702. package/src/hooks/useLongPress/useLongPress.ts +177 -0
  703. package/src/hooks/usePrevious/index.ts +1 -0
  704. package/src/hooks/usePrevious/usePrevious.test.ts +33 -0
  705. package/src/hooks/usePrevious/usePrevious.ts +24 -0
  706. package/src/hooks/useScrollPosition/index.ts +5 -0
  707. package/src/hooks/useScrollPosition/useScrollPosition.test.ts +69 -0
  708. package/src/hooks/useScrollPosition/useScrollPosition.ts +88 -0
  709. package/src/hooks/useTimeout/index.ts +1 -0
  710. package/src/hooks/useTimeout/useTimeout.test.ts +63 -0
  711. package/src/hooks/useTimeout/useTimeout.ts +58 -0
  712. package/src/hooks/useVirtualList/index.ts +6 -0
  713. package/src/hooks/useVirtualList/useVirtualList.test.ts +102 -0
  714. package/src/hooks/useVirtualList/useVirtualList.ts +141 -0
  715. package/src/lib/facade.test.ts +29 -8
  716. package/src/lib/facade.ts +6 -2
  717. package/src/ui/combobox/combobox-base.tsx +552 -0
  718. package/src/ui/combobox/combobox.test.tsx +292 -0
  719. package/src/ui/combobox/combobox.tsx +8 -0
  720. package/src/ui/combobox/index.ts +33 -0
  721. package/src/ui/combobox/types.ts +91 -0
  722. package/src/ui/combobox/variants.ts +58 -0
  723. package/src/ui/search/search-suggestion-list.tsx +11 -6
  724. package/src/ui/skeleton/variants.ts +105 -0
  725. package/dist/chunk-22I54GJW.js +0 -69
  726. package/dist/chunk-22I54GJW.js.map +0 -1
  727. package/dist/chunk-3I6XR7KN.js +0 -87
  728. package/dist/chunk-3I6XR7KN.js.map +0 -1
  729. package/dist/chunk-3R6PQUG2.mjs +0 -144
  730. package/dist/chunk-3R6PQUG2.mjs.map +0 -1
  731. package/dist/chunk-3Z6L24ZK.js +0 -83
  732. package/dist/chunk-3Z6L24ZK.js.map +0 -1
  733. package/dist/chunk-44G3U35C.js +0 -181
  734. package/dist/chunk-44G3U35C.js.map +0 -1
  735. package/dist/chunk-456OEGUT.mjs +0 -58
  736. package/dist/chunk-456OEGUT.mjs.map +0 -1
  737. package/dist/chunk-45CGVW7S.js +0 -126
  738. package/dist/chunk-45CGVW7S.js.map +0 -1
  739. package/dist/chunk-4QLWSXXO.mjs +0 -65
  740. package/dist/chunk-4QLWSXXO.mjs.map +0 -1
  741. package/dist/chunk-4U7CDEN7.mjs +0 -57
  742. package/dist/chunk-4U7CDEN7.mjs.map +0 -1
  743. package/dist/chunk-4ZP444GA.mjs +0 -19
  744. package/dist/chunk-4ZP444GA.mjs.map +0 -1
  745. package/dist/chunk-56DECC6D.js +0 -95
  746. package/dist/chunk-56DECC6D.js.map +0 -1
  747. package/dist/chunk-56KZVM5D.mjs +0 -159
  748. package/dist/chunk-56KZVM5D.mjs.map +0 -1
  749. package/dist/chunk-5BSYGFN7.mjs +0 -94
  750. package/dist/chunk-5BSYGFN7.mjs.map +0 -1
  751. package/dist/chunk-5J6QMTES.js +0 -655
  752. package/dist/chunk-5J6QMTES.js.map +0 -1
  753. package/dist/chunk-5QSYJHWL.mjs +0 -75
  754. package/dist/chunk-5QSYJHWL.mjs.map +0 -1
  755. package/dist/chunk-5R6XJAXQ.mjs +0 -66
  756. package/dist/chunk-5R6XJAXQ.mjs.map +0 -1
  757. package/dist/chunk-5WWD3TZ2.mjs +0 -70
  758. package/dist/chunk-5WWD3TZ2.mjs.map +0 -1
  759. package/dist/chunk-63UE3BR4.mjs +0 -79
  760. package/dist/chunk-63UE3BR4.mjs.map +0 -1
  761. package/dist/chunk-7LFRU6AW.js +0 -254
  762. package/dist/chunk-7LFRU6AW.js.map +0 -1
  763. package/dist/chunk-7M4TUP4I.js +0 -74
  764. package/dist/chunk-7M4TUP4I.js.map +0 -1
  765. package/dist/chunk-AADGUMYW.js +0 -122
  766. package/dist/chunk-AADGUMYW.js.map +0 -1
  767. package/dist/chunk-AQHY4S33.js +0 -19
  768. package/dist/chunk-BTSCPOWZ.mjs +0 -171
  769. package/dist/chunk-BTSCPOWZ.mjs.map +0 -1
  770. package/dist/chunk-BZZVO4GL.mjs.map +0 -1
  771. package/dist/chunk-DWDDIG6R.js +0 -68
  772. package/dist/chunk-DWDDIG6R.js.map +0 -1
  773. package/dist/chunk-E7BPOL74.js +0 -155
  774. package/dist/chunk-E7BPOL74.js.map +0 -1
  775. package/dist/chunk-EP7WTIKH.mjs +0 -81
  776. package/dist/chunk-EP7WTIKH.mjs.map +0 -1
  777. package/dist/chunk-F6V74YMW.js +0 -71
  778. package/dist/chunk-F6V74YMW.js.map +0 -1
  779. package/dist/chunk-FNNIH7R2.js +0 -70
  780. package/dist/chunk-FNNIH7R2.js.map +0 -1
  781. package/dist/chunk-FWY22BZZ.js +0 -134
  782. package/dist/chunk-FWY22BZZ.js.map +0 -1
  783. package/dist/chunk-FXDHDQTH.js +0 -79
  784. package/dist/chunk-FXDHDQTH.js.map +0 -1
  785. package/dist/chunk-FZET7XQV.js +0 -169
  786. package/dist/chunk-FZET7XQV.js.map +0 -1
  787. package/dist/chunk-GDYSB7SB.js +0 -78
  788. package/dist/chunk-GDYSB7SB.js.map +0 -1
  789. package/dist/chunk-GPM2PRC5.js +0 -61
  790. package/dist/chunk-GPM2PRC5.js.map +0 -1
  791. package/dist/chunk-I55QC57T.js +0 -47
  792. package/dist/chunk-I55QC57T.js.map +0 -1
  793. package/dist/chunk-ISXAUMRW.js +0 -63
  794. package/dist/chunk-ISXAUMRW.js.map +0 -1
  795. package/dist/chunk-IULYVARJ.mjs +0 -107
  796. package/dist/chunk-IULYVARJ.mjs.map +0 -1
  797. package/dist/chunk-IZAQBJKT.mjs +0 -125
  798. package/dist/chunk-IZAQBJKT.mjs.map +0 -1
  799. package/dist/chunk-J6XKTPP5.js +0 -61
  800. package/dist/chunk-J6XKTPP5.js.map +0 -1
  801. package/dist/chunk-JF4BRFOG.mjs +0 -54
  802. package/dist/chunk-JF4BRFOG.mjs.map +0 -1
  803. package/dist/chunk-JI3IEKH6.mjs +0 -64
  804. package/dist/chunk-JI3IEKH6.mjs.map +0 -1
  805. package/dist/chunk-JTMRSRYD.js +0 -63
  806. package/dist/chunk-JTMRSRYD.js.map +0 -1
  807. package/dist/chunk-KXNMW4NV.mjs +0 -61
  808. package/dist/chunk-KXNMW4NV.mjs.map +0 -1
  809. package/dist/chunk-L67EJJFN.js +0 -82
  810. package/dist/chunk-L67EJJFN.js.map +0 -1
  811. package/dist/chunk-L6AS5AVO.js +0 -121
  812. package/dist/chunk-L6AS5AVO.js.map +0 -1
  813. package/dist/chunk-LL2UY6CD.mjs +0 -74
  814. package/dist/chunk-LL2UY6CD.mjs.map +0 -1
  815. package/dist/chunk-LU6VEI4B.js +0 -92
  816. package/dist/chunk-LU6VEI4B.js.map +0 -1
  817. package/dist/chunk-MCYFKM7T.js +0 -62
  818. package/dist/chunk-MCYFKM7T.js.map +0 -1
  819. package/dist/chunk-MUP7DVQR.js +0 -26
  820. package/dist/chunk-MUP7DVQR.js.map +0 -1
  821. package/dist/chunk-N2RUT33F.mjs +0 -68
  822. package/dist/chunk-N2RUT33F.mjs.map +0 -1
  823. package/dist/chunk-NMBSK44H.mjs +0 -44
  824. package/dist/chunk-NMBSK44H.mjs.map +0 -1
  825. package/dist/chunk-NVTV3EQB.js +0 -49
  826. package/dist/chunk-NXNL64Q7.mjs +0 -112
  827. package/dist/chunk-NXNL64Q7.mjs.map +0 -1
  828. package/dist/chunk-OGMIKRLJ.js +0 -78
  829. package/dist/chunk-OGMIKRLJ.js.map +0 -1
  830. package/dist/chunk-OOBA2MDD.mjs +0 -57
  831. package/dist/chunk-OOBA2MDD.mjs.map +0 -1
  832. package/dist/chunk-OQCI2IVL.mjs +0 -112
  833. package/dist/chunk-OQCI2IVL.mjs.map +0 -1
  834. package/dist/chunk-P25NI2HG.js +0 -114
  835. package/dist/chunk-P25NI2HG.js.map +0 -1
  836. package/dist/chunk-P2DQP4J4.js.map +0 -1
  837. package/dist/chunk-P43A2BPU.mjs +0 -82
  838. package/dist/chunk-P43A2BPU.mjs.map +0 -1
  839. package/dist/chunk-P54PZ72L.mjs +0 -65
  840. package/dist/chunk-P54PZ72L.mjs.map +0 -1
  841. package/dist/chunk-PNAFXOZC.mjs +0 -69
  842. package/dist/chunk-PNAFXOZC.mjs.map +0 -1
  843. package/dist/chunk-QTFOUK4H.js +0 -107
  844. package/dist/chunk-QTFOUK4H.js.map +0 -1
  845. package/dist/chunk-QW2ZHKPC.mjs +0 -64
  846. package/dist/chunk-QW2ZHKPC.mjs.map +0 -1
  847. package/dist/chunk-R2256VSD.js +0 -80
  848. package/dist/chunk-R2256VSD.js.map +0 -1
  849. package/dist/chunk-S4OSJ4ZN.js +0 -71
  850. package/dist/chunk-S4OSJ4ZN.js.map +0 -1
  851. package/dist/chunk-SWU5U5BB.mjs +0 -116
  852. package/dist/chunk-SWU5U5BB.mjs.map +0 -1
  853. package/dist/chunk-SYFTQAZG.mjs +0 -58
  854. package/dist/chunk-SYFTQAZG.mjs.map +0 -1
  855. package/dist/chunk-T5SPR27V.mjs +0 -64
  856. package/dist/chunk-T5SPR27V.mjs.map +0 -1
  857. package/dist/chunk-TD4W3AHI.mjs +0 -113
  858. package/dist/chunk-TD4W3AHI.mjs.map +0 -1
  859. package/dist/chunk-TMFXI5FH.mjs +0 -52
  860. package/dist/chunk-TMFXI5FH.mjs.map +0 -1
  861. package/dist/chunk-UJBXDDHN.mjs +0 -73
  862. package/dist/chunk-UJBXDDHN.mjs.map +0 -1
  863. package/dist/chunk-USLP5NY6.js +0 -69
  864. package/dist/chunk-USLP5NY6.js.map +0 -1
  865. package/dist/chunk-UU34Q42Q.js +0 -70
  866. package/dist/chunk-UU34Q42Q.js.map +0 -1
  867. package/dist/chunk-V4U6Q5NL.mjs +0 -68
  868. package/dist/chunk-V4U6Q5NL.mjs.map +0 -1
  869. package/dist/chunk-VIKQGO4W.mjs +0 -636
  870. package/dist/chunk-VIKQGO4W.mjs.map +0 -1
  871. package/dist/chunk-VWHER5XN.js +0 -65
  872. package/dist/chunk-VWHER5XN.js.map +0 -1
  873. package/dist/chunk-WBRTXAKP.js +0 -705
  874. package/dist/chunk-WN7XWKAS.mjs +0 -52
  875. package/dist/chunk-WN7XWKAS.mjs.map +0 -1
  876. package/dist/chunk-X3N4EVF7.mjs +0 -240
  877. package/dist/chunk-X3N4EVF7.mjs.map +0 -1
  878. package/dist/chunk-Y4YQSCNL.js +0 -65
  879. package/dist/chunk-Y4YQSCNL.js.map +0 -1
  880. package/dist/chunk-Y7NRTCAT.js +0 -78
  881. package/dist/chunk-Y7NRTCAT.js.map +0 -1
  882. package/dist/chunk-YDKAE7RM.mjs +0 -62
  883. package/dist/chunk-YDKAE7RM.mjs.map +0 -1
  884. package/dist/chunk-YN4ZS3R2.js +0 -120
  885. package/dist/chunk-YN4ZS3R2.js.map +0 -1
  886. package/src/ui/accessibility/axe-core.test.tsx +0 -139
@@ -0,0 +1,41 @@
1
+ "use client";
2
+ 'use strict';
3
+
4
+ require('../chunk-PZ5AY32C.js');
5
+ var react = require('react');
6
+
7
+ function useScrollPosition(params = {}) {
8
+ const { target } = params;
9
+ const [element, setElement] = react.useState(
10
+ () => target?.current ?? null
11
+ );
12
+ const [position, setPosition] = react.useState({ x: 0, y: 0 });
13
+ react.useEffect(() => {
14
+ if (target?.current != null) {
15
+ setElement(target.current);
16
+ }
17
+ }, [target]);
18
+ const setRef = react.useCallback((node) => {
19
+ setElement(node);
20
+ }, []);
21
+ react.useEffect(() => {
22
+ const node = element ?? (typeof window === "undefined" ? null : window);
23
+ if (node == null) {
24
+ return;
25
+ }
26
+ const read = () => element == null ? { x: window.scrollX, y: window.scrollY } : { x: element.scrollLeft, y: element.scrollTop };
27
+ const onScroll = () => {
28
+ setPosition(read());
29
+ };
30
+ onScroll();
31
+ node.addEventListener("scroll", onScroll, { passive: true });
32
+ return () => {
33
+ node.removeEventListener("scroll", onScroll);
34
+ };
35
+ }, [element]);
36
+ return { x: position.x, y: position.y, setRef };
37
+ }
38
+
39
+ exports.useScrollPosition = useScrollPosition;
40
+ //# sourceMappingURL=useScrollPosition.js.map
41
+ //# sourceMappingURL=useScrollPosition.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/hooks/useScrollPosition/useScrollPosition.ts"],"names":["useState","useEffect","useCallback"],"mappings":";;;;;AA2CO,SAAS,iBAAA,CACd,MAAA,GAAqC,EAAC,EACV;AAC5B,EAAA,MAAM,EAAE,QAAO,GAAI,MAAA;AAInB,EAAA,MAAM,CAAC,OAAA,EAAS,UAAU,CAAA,GAAIA,cAAA;AAAA,IAC5B,MAAM,QAAQ,OAAA,IAAW;AAAA,GAC3B;AACA,EAAA,MAAM,CAAC,QAAA,EAAU,WAAW,CAAA,GAAIA,cAAA,CAAyB,EAAE,CAAA,EAAG,CAAA,EAAG,CAAA,EAAG,CAAA,EAAG,CAAA;AAGvE,EAAAC,eAAA,CAAU,MAAM;AACd,IAAA,IAAI,MAAA,EAAQ,WAAW,IAAA,EAAM;AAC3B,MAAA,UAAA,CAAW,OAAO,OAAO,CAAA;AAAA,IAC3B;AAAA,EACF,CAAA,EAAG,CAAC,MAAM,CAAC,CAAA;AAEX,EAAA,MAAM,MAAA,GAASC,iBAAA,CAAY,CAAC,IAAA,KAAmB;AAC7C,IAAA,UAAA,CAAW,IAAI,CAAA;AAAA,EACjB,CAAA,EAAG,EAAE,CAAA;AAEL,EAAAD,eAAA,CAAU,MAAM;AACd,IAAA,MAAM,IAAA,GACJ,OAAA,KAAY,OAAO,MAAA,KAAW,cAAc,IAAA,GAAO,MAAA,CAAA;AACrD,IAAA,IAAI,QAAQ,IAAA,EAAM;AAChB,MAAA;AAAA,IACF;AACA,IAAA,MAAM,OAAO,MACX,OAAA,IAAW,OACP,EAAE,CAAA,EAAG,OAAO,OAAA,EAAS,CAAA,EAAG,MAAA,CAAO,OAAA,KAC/B,EAAE,CAAA,EAAG,QAAQ,UAAA,EAAY,CAAA,EAAG,QAAQ,SAAA,EAAU;AACpD,IAAA,MAAM,WAAW,MAAM;AACrB,MAAA,WAAA,CAAY,MAAM,CAAA;AAAA,IACpB,CAAA;AACA,IAAA,QAAA,EAAS;AACT,IAAA,IAAA,CAAK,iBAAiB,QAAA,EAAU,QAAA,EAAU,EAAE,OAAA,EAAS,MAAM,CAAA;AAC3D,IAAA,OAAO,MAAM;AACX,MAAA,IAAA,CAAK,mBAAA,CAAoB,UAAU,QAAQ,CAAA;AAAA,IAC7C,CAAA;AAAA,EACF,CAAA,EAAG,CAAC,OAAO,CAAC,CAAA;AAEZ,EAAA,OAAO,EAAE,CAAA,EAAG,QAAA,CAAS,GAAG,CAAA,EAAG,QAAA,CAAS,GAAG,MAAA,EAAO;AAChD","file":"useScrollPosition.js","sourcesContent":["\"use client\";\n\nimport type { RefCallback, RefObject } from \"react\";\nimport { useCallback, useEffect, useState } from \"react\";\n\nexport type ScrollPosition = {\n x: number;\n y: number;\n};\n\nexport type UseScrollPositionParams<T extends HTMLElement = HTMLElement> = {\n /**\n * Scroll container to observe via a pre-populated RefObject.\n * For elements that mount asynchronously, use the returned `setRef` callback ref instead.\n */\n target?: RefObject<T | null>;\n};\n\nexport type UseScrollPositionResult<T extends HTMLElement = HTMLElement> =\n ScrollPosition & {\n /**\n * Callback ref to attach to a scroll container — works correctly with elements\n * that are null on initial render (lazy / conditional mounts). Pass this as `ref`\n * on the scrollable element when you cannot guarantee the ref is populated at mount.\n */\n setRef: RefCallback<T>;\n };\n\n/**\n * Tracks the scroll offset of the window (default) or a scrollable element.\n *\n * - Window mode reads `scrollX` / `scrollY`; element mode reads `scrollLeft` / `scrollTop`.\n * - Subscribes with a passive `scroll` listener and reads the initial position on mount.\n * - Pass a pre-populated `target` RefObject **or** use the returned `setRef` callback ref on\n * the scrollable element. Prefer `setRef` for elements that may be null on the first render\n * (conditional mounts, portals) — it stores the element in state so the effect re-attaches\n * correctly when the element becomes available.\n * - For high-frequency consumers, derive throttled values downstream (e.g. with\n * `useThrottledCallback`) rather than throttling the source of truth.\n *\n * @param params - {@link UseScrollPositionParams}\n * @returns Latest `{ x, y }` scroll offset in pixels plus a `setRef` callback ref.\n */\nexport function useScrollPosition<T extends HTMLElement = HTMLElement>(\n params: UseScrollPositionParams<T> = {},\n): UseScrollPositionResult<T> {\n const { target } = params;\n\n // Track the element in state so the scroll listener effect reruns when the element\n // is assigned (handles callback-ref / lazy-mount patterns).\n const [element, setElement] = useState<T | null>(\n () => target?.current ?? null,\n );\n const [position, setPosition] = useState<ScrollPosition>({ x: 0, y: 0 });\n\n // Sync element state when the target RefObject changes (pre-populated refs).\n useEffect(() => {\n if (target?.current != null) {\n setElement(target.current);\n }\n }, [target]);\n\n const setRef = useCallback((node: T | null) => {\n setElement(node);\n }, []);\n\n useEffect(() => {\n const node: Window | T | null =\n element ?? (typeof window === \"undefined\" ? null : window);\n if (node == null) {\n return;\n }\n const read = (): ScrollPosition =>\n element == null\n ? { x: window.scrollX, y: window.scrollY }\n : { x: element.scrollLeft, y: element.scrollTop };\n const onScroll = () => {\n setPosition(read());\n };\n onScroll();\n node.addEventListener(\"scroll\", onScroll, { passive: true });\n return () => {\n node.removeEventListener(\"scroll\", onScroll);\n };\n }, [element]);\n\n return { x: position.x, y: position.y, setRef };\n}\n"]}
@@ -0,0 +1,39 @@
1
+ "use client";
2
+ import '../chunk-J5LGTIGS.mjs';
3
+ import { useState, useEffect, useCallback } from 'react';
4
+
5
+ function useScrollPosition(params = {}) {
6
+ const { target } = params;
7
+ const [element, setElement] = useState(
8
+ () => target?.current ?? null
9
+ );
10
+ const [position, setPosition] = useState({ x: 0, y: 0 });
11
+ useEffect(() => {
12
+ if (target?.current != null) {
13
+ setElement(target.current);
14
+ }
15
+ }, [target]);
16
+ const setRef = useCallback((node) => {
17
+ setElement(node);
18
+ }, []);
19
+ useEffect(() => {
20
+ const node = element ?? (typeof window === "undefined" ? null : window);
21
+ if (node == null) {
22
+ return;
23
+ }
24
+ const read = () => element == null ? { x: window.scrollX, y: window.scrollY } : { x: element.scrollLeft, y: element.scrollTop };
25
+ const onScroll = () => {
26
+ setPosition(read());
27
+ };
28
+ onScroll();
29
+ node.addEventListener("scroll", onScroll, { passive: true });
30
+ return () => {
31
+ node.removeEventListener("scroll", onScroll);
32
+ };
33
+ }, [element]);
34
+ return { x: position.x, y: position.y, setRef };
35
+ }
36
+
37
+ export { useScrollPosition };
38
+ //# sourceMappingURL=useScrollPosition.mjs.map
39
+ //# sourceMappingURL=useScrollPosition.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/hooks/useScrollPosition/useScrollPosition.ts"],"names":[],"mappings":";;;AA2CO,SAAS,iBAAA,CACd,MAAA,GAAqC,EAAC,EACV;AAC5B,EAAA,MAAM,EAAE,QAAO,GAAI,MAAA;AAInB,EAAA,MAAM,CAAC,OAAA,EAAS,UAAU,CAAA,GAAI,QAAA;AAAA,IAC5B,MAAM,QAAQ,OAAA,IAAW;AAAA,GAC3B;AACA,EAAA,MAAM,CAAC,QAAA,EAAU,WAAW,CAAA,GAAI,QAAA,CAAyB,EAAE,CAAA,EAAG,CAAA,EAAG,CAAA,EAAG,CAAA,EAAG,CAAA;AAGvE,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,IAAI,MAAA,EAAQ,WAAW,IAAA,EAAM;AAC3B,MAAA,UAAA,CAAW,OAAO,OAAO,CAAA;AAAA,IAC3B;AAAA,EACF,CAAA,EAAG,CAAC,MAAM,CAAC,CAAA;AAEX,EAAA,MAAM,MAAA,GAAS,WAAA,CAAY,CAAC,IAAA,KAAmB;AAC7C,IAAA,UAAA,CAAW,IAAI,CAAA;AAAA,EACjB,CAAA,EAAG,EAAE,CAAA;AAEL,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,MAAM,IAAA,GACJ,OAAA,KAAY,OAAO,MAAA,KAAW,cAAc,IAAA,GAAO,MAAA,CAAA;AACrD,IAAA,IAAI,QAAQ,IAAA,EAAM;AAChB,MAAA;AAAA,IACF;AACA,IAAA,MAAM,OAAO,MACX,OAAA,IAAW,OACP,EAAE,CAAA,EAAG,OAAO,OAAA,EAAS,CAAA,EAAG,MAAA,CAAO,OAAA,KAC/B,EAAE,CAAA,EAAG,QAAQ,UAAA,EAAY,CAAA,EAAG,QAAQ,SAAA,EAAU;AACpD,IAAA,MAAM,WAAW,MAAM;AACrB,MAAA,WAAA,CAAY,MAAM,CAAA;AAAA,IACpB,CAAA;AACA,IAAA,QAAA,EAAS;AACT,IAAA,IAAA,CAAK,iBAAiB,QAAA,EAAU,QAAA,EAAU,EAAE,OAAA,EAAS,MAAM,CAAA;AAC3D,IAAA,OAAO,MAAM;AACX,MAAA,IAAA,CAAK,mBAAA,CAAoB,UAAU,QAAQ,CAAA;AAAA,IAC7C,CAAA;AAAA,EACF,CAAA,EAAG,CAAC,OAAO,CAAC,CAAA;AAEZ,EAAA,OAAO,EAAE,CAAA,EAAG,QAAA,CAAS,GAAG,CAAA,EAAG,QAAA,CAAS,GAAG,MAAA,EAAO;AAChD","file":"useScrollPosition.mjs","sourcesContent":["\"use client\";\n\nimport type { RefCallback, RefObject } from \"react\";\nimport { useCallback, useEffect, useState } from \"react\";\n\nexport type ScrollPosition = {\n x: number;\n y: number;\n};\n\nexport type UseScrollPositionParams<T extends HTMLElement = HTMLElement> = {\n /**\n * Scroll container to observe via a pre-populated RefObject.\n * For elements that mount asynchronously, use the returned `setRef` callback ref instead.\n */\n target?: RefObject<T | null>;\n};\n\nexport type UseScrollPositionResult<T extends HTMLElement = HTMLElement> =\n ScrollPosition & {\n /**\n * Callback ref to attach to a scroll container — works correctly with elements\n * that are null on initial render (lazy / conditional mounts). Pass this as `ref`\n * on the scrollable element when you cannot guarantee the ref is populated at mount.\n */\n setRef: RefCallback<T>;\n };\n\n/**\n * Tracks the scroll offset of the window (default) or a scrollable element.\n *\n * - Window mode reads `scrollX` / `scrollY`; element mode reads `scrollLeft` / `scrollTop`.\n * - Subscribes with a passive `scroll` listener and reads the initial position on mount.\n * - Pass a pre-populated `target` RefObject **or** use the returned `setRef` callback ref on\n * the scrollable element. Prefer `setRef` for elements that may be null on the first render\n * (conditional mounts, portals) — it stores the element in state so the effect re-attaches\n * correctly when the element becomes available.\n * - For high-frequency consumers, derive throttled values downstream (e.g. with\n * `useThrottledCallback`) rather than throttling the source of truth.\n *\n * @param params - {@link UseScrollPositionParams}\n * @returns Latest `{ x, y }` scroll offset in pixels plus a `setRef` callback ref.\n */\nexport function useScrollPosition<T extends HTMLElement = HTMLElement>(\n params: UseScrollPositionParams<T> = {},\n): UseScrollPositionResult<T> {\n const { target } = params;\n\n // Track the element in state so the scroll listener effect reruns when the element\n // is assigned (handles callback-ref / lazy-mount patterns).\n const [element, setElement] = useState<T | null>(\n () => target?.current ?? null,\n );\n const [position, setPosition] = useState<ScrollPosition>({ x: 0, y: 0 });\n\n // Sync element state when the target RefObject changes (pre-populated refs).\n useEffect(() => {\n if (target?.current != null) {\n setElement(target.current);\n }\n }, [target]);\n\n const setRef = useCallback((node: T | null) => {\n setElement(node);\n }, []);\n\n useEffect(() => {\n const node: Window | T | null =\n element ?? (typeof window === \"undefined\" ? null : window);\n if (node == null) {\n return;\n }\n const read = (): ScrollPosition =>\n element == null\n ? { x: window.scrollX, y: window.scrollY }\n : { x: element.scrollLeft, y: element.scrollTop };\n const onScroll = () => {\n setPosition(read());\n };\n onScroll();\n node.addEventListener(\"scroll\", onScroll, { passive: true });\n return () => {\n node.removeEventListener(\"scroll\", onScroll);\n };\n }, [element]);\n\n return { x: position.x, y: position.y, setRef };\n}\n"]}
@@ -0,0 +1,2 @@
1
+ export { useTimeout, type UseTimeoutResult } from "./useTimeout";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/hooks/useTimeout/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,KAAK,gBAAgB,EAAE,MAAM,cAAc,CAAC"}
@@ -0,0 +1,19 @@
1
+ export type UseTimeoutResult = {
2
+ /** Cancel the pending timeout (no-op if already fired or cleared). */
3
+ clear: () => void;
4
+ /** Cancel any pending timeout and schedule a fresh one with the current delay. */
5
+ reset: () => void;
6
+ };
7
+ /**
8
+ * Declarative `setTimeout`: runs `callback` once after `delayMs` milliseconds with automatic cleanup.
9
+ *
10
+ * - The latest callback is kept in a ref, so a new inline function each render does not reschedule.
11
+ * - Pass `null` as the delay to cancel scheduling entirely.
12
+ * - Changing `delayMs` cancels the pending timeout and schedules a new one.
13
+ *
14
+ * @param callback - Function invoked when the timeout fires.
15
+ * @param delayMs - Delay in milliseconds, or `null` to disable.
16
+ * @returns `{ clear, reset }` to cancel or restart the timeout imperatively.
17
+ */
18
+ export declare function useTimeout(callback: () => void, delayMs: number | null): UseTimeoutResult;
19
+ //# sourceMappingURL=useTimeout.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useTimeout.d.ts","sourceRoot":"","sources":["../../../src/hooks/useTimeout/useTimeout.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,gBAAgB,GAAG;IAC7B,sEAAsE;IACtE,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,kFAAkF;IAClF,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB,CAAC;AAEF;;;;;;;;;;GAUG;AACH,wBAAgB,UAAU,CACxB,QAAQ,EAAE,MAAM,IAAI,EACpB,OAAO,EAAE,MAAM,GAAG,IAAI,GACrB,gBAAgB,CAgClB"}
@@ -0,0 +1,38 @@
1
+ "use client";
2
+ 'use strict';
3
+
4
+ require('../chunk-PZ5AY32C.js');
5
+ var react = require('react');
6
+
7
+ function useTimeout(callback, delayMs) {
8
+ const callbackRef = react.useRef(callback);
9
+ const timeoutRef = react.useRef(void 0);
10
+ react.useEffect(() => {
11
+ callbackRef.current = callback;
12
+ }, [callback]);
13
+ const clear = react.useCallback(() => {
14
+ if (timeoutRef.current !== void 0) {
15
+ window.clearTimeout(timeoutRef.current);
16
+ timeoutRef.current = void 0;
17
+ }
18
+ }, []);
19
+ const reset = react.useCallback(() => {
20
+ clear();
21
+ if (delayMs == null) {
22
+ return;
23
+ }
24
+ timeoutRef.current = window.setTimeout(() => {
25
+ timeoutRef.current = void 0;
26
+ callbackRef.current();
27
+ }, delayMs);
28
+ }, [clear, delayMs]);
29
+ react.useEffect(() => {
30
+ reset();
31
+ return clear;
32
+ }, [clear, reset]);
33
+ return { clear, reset };
34
+ }
35
+
36
+ exports.useTimeout = useTimeout;
37
+ //# sourceMappingURL=useTimeout.js.map
38
+ //# sourceMappingURL=useTimeout.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/hooks/useTimeout/useTimeout.ts"],"names":["useRef","useEffect","useCallback"],"mappings":";;;;;AAsBO,SAAS,UAAA,CACd,UACA,OAAA,EACkB;AAClB,EAAA,MAAM,WAAA,GAAcA,aAAO,QAAQ,CAAA;AACnC,EAAA,MAAM,UAAA,GAAaA,aAA2B,MAAS,CAAA;AAEvD,EAAAC,eAAA,CAAU,MAAM;AACd,IAAA,WAAA,CAAY,OAAA,GAAU,QAAA;AAAA,EACxB,CAAA,EAAG,CAAC,QAAQ,CAAC,CAAA;AAEb,EAAA,MAAM,KAAA,GAAQC,kBAAY,MAAM;AAC9B,IAAA,IAAI,UAAA,CAAW,YAAY,MAAA,EAAW;AACpC,MAAA,MAAA,CAAO,YAAA,CAAa,WAAW,OAAO,CAAA;AACtC,MAAA,UAAA,CAAW,OAAA,GAAU,MAAA;AAAA,IACvB;AAAA,EACF,CAAA,EAAG,EAAE,CAAA;AAEL,EAAA,MAAM,KAAA,GAAQA,kBAAY,MAAM;AAC9B,IAAA,KAAA,EAAM;AACN,IAAA,IAAI,WAAW,IAAA,EAAM;AACnB,MAAA;AAAA,IACF;AACA,IAAA,UAAA,CAAW,OAAA,GAAU,MAAA,CAAO,UAAA,CAAW,MAAM;AAC3C,MAAA,UAAA,CAAW,OAAA,GAAU,MAAA;AACrB,MAAA,WAAA,CAAY,OAAA,EAAQ;AAAA,IACtB,GAAG,OAAO,CAAA;AAAA,EACZ,CAAA,EAAG,CAAC,KAAA,EAAO,OAAO,CAAC,CAAA;AAEnB,EAAAD,eAAA,CAAU,MAAM;AACd,IAAA,KAAA,EAAM;AACN,IAAA,OAAO,KAAA;AAAA,EACT,CAAA,EAAG,CAAC,KAAA,EAAO,KAAK,CAAC,CAAA;AAEjB,EAAA,OAAO,EAAE,OAAO,KAAA,EAAM;AACxB","file":"useTimeout.js","sourcesContent":["\"use client\";\n\nimport { useCallback, useEffect, useRef } from \"react\";\n\nexport type UseTimeoutResult = {\n /** Cancel the pending timeout (no-op if already fired or cleared). */\n clear: () => void;\n /** Cancel any pending timeout and schedule a fresh one with the current delay. */\n reset: () => void;\n};\n\n/**\n * Declarative `setTimeout`: runs `callback` once after `delayMs` milliseconds with automatic cleanup.\n *\n * - The latest callback is kept in a ref, so a new inline function each render does not reschedule.\n * - Pass `null` as the delay to cancel scheduling entirely.\n * - Changing `delayMs` cancels the pending timeout and schedules a new one.\n *\n * @param callback - Function invoked when the timeout fires.\n * @param delayMs - Delay in milliseconds, or `null` to disable.\n * @returns `{ clear, reset }` to cancel or restart the timeout imperatively.\n */\nexport function useTimeout(\n callback: () => void,\n delayMs: number | null,\n): UseTimeoutResult {\n const callbackRef = useRef(callback);\n const timeoutRef = useRef<number | undefined>(undefined);\n\n useEffect(() => {\n callbackRef.current = callback;\n }, [callback]);\n\n const clear = useCallback(() => {\n if (timeoutRef.current !== undefined) {\n window.clearTimeout(timeoutRef.current);\n timeoutRef.current = undefined;\n }\n }, []);\n\n const reset = useCallback(() => {\n clear();\n if (delayMs == null) {\n return;\n }\n timeoutRef.current = window.setTimeout(() => {\n timeoutRef.current = undefined;\n callbackRef.current();\n }, delayMs);\n }, [clear, delayMs]);\n\n useEffect(() => {\n reset();\n return clear;\n }, [clear, reset]);\n\n return { clear, reset };\n}\n"]}
@@ -0,0 +1,36 @@
1
+ "use client";
2
+ import '../chunk-J5LGTIGS.mjs';
3
+ import { useRef, useEffect, useCallback } from 'react';
4
+
5
+ function useTimeout(callback, delayMs) {
6
+ const callbackRef = useRef(callback);
7
+ const timeoutRef = useRef(void 0);
8
+ useEffect(() => {
9
+ callbackRef.current = callback;
10
+ }, [callback]);
11
+ const clear = useCallback(() => {
12
+ if (timeoutRef.current !== void 0) {
13
+ window.clearTimeout(timeoutRef.current);
14
+ timeoutRef.current = void 0;
15
+ }
16
+ }, []);
17
+ const reset = useCallback(() => {
18
+ clear();
19
+ if (delayMs == null) {
20
+ return;
21
+ }
22
+ timeoutRef.current = window.setTimeout(() => {
23
+ timeoutRef.current = void 0;
24
+ callbackRef.current();
25
+ }, delayMs);
26
+ }, [clear, delayMs]);
27
+ useEffect(() => {
28
+ reset();
29
+ return clear;
30
+ }, [clear, reset]);
31
+ return { clear, reset };
32
+ }
33
+
34
+ export { useTimeout };
35
+ //# sourceMappingURL=useTimeout.mjs.map
36
+ //# sourceMappingURL=useTimeout.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/hooks/useTimeout/useTimeout.ts"],"names":[],"mappings":";;;AAsBO,SAAS,UAAA,CACd,UACA,OAAA,EACkB;AAClB,EAAA,MAAM,WAAA,GAAc,OAAO,QAAQ,CAAA;AACnC,EAAA,MAAM,UAAA,GAAa,OAA2B,MAAS,CAAA;AAEvD,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,WAAA,CAAY,OAAA,GAAU,QAAA;AAAA,EACxB,CAAA,EAAG,CAAC,QAAQ,CAAC,CAAA;AAEb,EAAA,MAAM,KAAA,GAAQ,YAAY,MAAM;AAC9B,IAAA,IAAI,UAAA,CAAW,YAAY,MAAA,EAAW;AACpC,MAAA,MAAA,CAAO,YAAA,CAAa,WAAW,OAAO,CAAA;AACtC,MAAA,UAAA,CAAW,OAAA,GAAU,MAAA;AAAA,IACvB;AAAA,EACF,CAAA,EAAG,EAAE,CAAA;AAEL,EAAA,MAAM,KAAA,GAAQ,YAAY,MAAM;AAC9B,IAAA,KAAA,EAAM;AACN,IAAA,IAAI,WAAW,IAAA,EAAM;AACnB,MAAA;AAAA,IACF;AACA,IAAA,UAAA,CAAW,OAAA,GAAU,MAAA,CAAO,UAAA,CAAW,MAAM;AAC3C,MAAA,UAAA,CAAW,OAAA,GAAU,MAAA;AACrB,MAAA,WAAA,CAAY,OAAA,EAAQ;AAAA,IACtB,GAAG,OAAO,CAAA;AAAA,EACZ,CAAA,EAAG,CAAC,KAAA,EAAO,OAAO,CAAC,CAAA;AAEnB,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,KAAA,EAAM;AACN,IAAA,OAAO,KAAA;AAAA,EACT,CAAA,EAAG,CAAC,KAAA,EAAO,KAAK,CAAC,CAAA;AAEjB,EAAA,OAAO,EAAE,OAAO,KAAA,EAAM;AACxB","file":"useTimeout.mjs","sourcesContent":["\"use client\";\n\nimport { useCallback, useEffect, useRef } from \"react\";\n\nexport type UseTimeoutResult = {\n /** Cancel the pending timeout (no-op if already fired or cleared). */\n clear: () => void;\n /** Cancel any pending timeout and schedule a fresh one with the current delay. */\n reset: () => void;\n};\n\n/**\n * Declarative `setTimeout`: runs `callback` once after `delayMs` milliseconds with automatic cleanup.\n *\n * - The latest callback is kept in a ref, so a new inline function each render does not reschedule.\n * - Pass `null` as the delay to cancel scheduling entirely.\n * - Changing `delayMs` cancels the pending timeout and schedules a new one.\n *\n * @param callback - Function invoked when the timeout fires.\n * @param delayMs - Delay in milliseconds, or `null` to disable.\n * @returns `{ clear, reset }` to cancel or restart the timeout imperatively.\n */\nexport function useTimeout(\n callback: () => void,\n delayMs: number | null,\n): UseTimeoutResult {\n const callbackRef = useRef(callback);\n const timeoutRef = useRef<number | undefined>(undefined);\n\n useEffect(() => {\n callbackRef.current = callback;\n }, [callback]);\n\n const clear = useCallback(() => {\n if (timeoutRef.current !== undefined) {\n window.clearTimeout(timeoutRef.current);\n timeoutRef.current = undefined;\n }\n }, []);\n\n const reset = useCallback(() => {\n clear();\n if (delayMs == null) {\n return;\n }\n timeoutRef.current = window.setTimeout(() => {\n timeoutRef.current = undefined;\n callbackRef.current();\n }, delayMs);\n }, [clear, delayMs]);\n\n useEffect(() => {\n reset();\n return clear;\n }, [clear, reset]);\n\n return { clear, reset };\n}\n"]}
@@ -0,0 +1,2 @@
1
+ export { useVirtualList, type UseVirtualListParams, type UseVirtualListResult, type VirtualItem, } from "./useVirtualList";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/hooks/useVirtualList/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,KAAK,oBAAoB,EACzB,KAAK,oBAAoB,EACzB,KAAK,WAAW,GACjB,MAAM,kBAAkB,CAAC"}
@@ -0,0 +1,47 @@
1
+ import type { RefCallback } from "react";
2
+ export type VirtualItem = {
3
+ /** Index into your data array. */
4
+ index: number;
5
+ /** Offset from the top of the scroll content in pixels (use for `translateY` / `top`). */
6
+ start: number;
7
+ /** Row height in pixels. */
8
+ size: number;
9
+ };
10
+ export type UseVirtualListParams = {
11
+ /** Total number of rows in the list. */
12
+ itemCount: number;
13
+ /** Fixed height of every row in pixels (must be > 0). */
14
+ itemHeight: number;
15
+ /** Extra rows rendered above and below the viewport (default `3`). */
16
+ overscan?: number;
17
+ };
18
+ export type UseVirtualListResult = {
19
+ /** Callback ref for the scrollable container (needs `overflow-y: auto` and a bounded height). */
20
+ setContainerRef: RefCallback<HTMLElement>;
21
+ /** The rows to render, each with its absolute `start` offset. */
22
+ virtualItems: VirtualItem[];
23
+ /** Height of the full list content; set it on an inner spacer element. */
24
+ totalHeight: number;
25
+ /** First rendered index (after overscan). */
26
+ startIndex: number;
27
+ /** Last rendered index (after overscan), `-1` when empty. */
28
+ endIndex: number;
29
+ /** Scroll the container so the given row is at the top. */
30
+ scrollToIndex: (index: number) => void;
31
+ };
32
+ /**
33
+ * Headless fixed-height list virtualization: renders only the rows visible in the
34
+ * scroll container (plus `overscan`), so lists of tens of thousands of rows stay cheap.
35
+ *
36
+ * Markup recipe: outer container gets `setContainerRef` + `overflow-y: auto` and a height;
37
+ * inside it, one relative spacer div with `height: totalHeight`; each virtual item is
38
+ * absolutely positioned at `translateY(item.start)` with `height: item.size`.
39
+ *
40
+ * Viewport size tracks `ResizeObserver` (when available) and scroll position tracks a
41
+ * passive `scroll` listener. For variable-height rows, reach for a dedicated virtualizer.
42
+ *
43
+ * @param params - {@link UseVirtualListParams}
44
+ * @returns {@link UseVirtualListResult}
45
+ */
46
+ export declare function useVirtualList({ itemCount, itemHeight, overscan, }: UseVirtualListParams): UseVirtualListResult;
47
+ //# sourceMappingURL=useVirtualList.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useVirtualList.d.ts","sourceRoot":"","sources":["../../../src/hooks/useVirtualList/useVirtualList.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAGzC,MAAM,MAAM,WAAW,GAAG;IACxB,kCAAkC;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,0FAA0F;IAC1F,KAAK,EAAE,MAAM,CAAC;IACd,4BAA4B;IAC5B,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,wCAAwC;IACxC,SAAS,EAAE,MAAM,CAAC;IAClB,yDAAyD;IACzD,UAAU,EAAE,MAAM,CAAC;IACnB,sEAAsE;IACtE,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,iGAAiG;IACjG,eAAe,EAAE,WAAW,CAAC,WAAW,CAAC,CAAC;IAC1C,iEAAiE;IACjE,YAAY,EAAE,WAAW,EAAE,CAAC;IAC5B,0EAA0E;IAC1E,WAAW,EAAE,MAAM,CAAC;IACpB,6CAA6C;IAC7C,UAAU,EAAE,MAAM,CAAC;IACnB,6DAA6D;IAC7D,QAAQ,EAAE,MAAM,CAAC;IACjB,2DAA2D;IAC3D,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACxC,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,wBAAgB,cAAc,CAAC,EAC7B,SAAS,EACT,UAAU,EACV,QAAY,GACb,EAAE,oBAAoB,GAAG,oBAAoB,CAoF7C"}
@@ -0,0 +1,84 @@
1
+ "use client";
2
+ 'use strict';
3
+
4
+ require('../chunk-PZ5AY32C.js');
5
+ var react = require('react');
6
+
7
+ function useVirtualList({
8
+ itemCount,
9
+ itemHeight,
10
+ overscan = 3
11
+ }) {
12
+ const [container, setContainer] = react.useState(null);
13
+ const [scrollTop, setScrollTop] = react.useState(0);
14
+ const [viewportHeight, setViewportHeight] = react.useState(0);
15
+ const setContainerRef = react.useCallback((node) => {
16
+ setContainer(node);
17
+ }, []);
18
+ react.useEffect(() => {
19
+ if (container == null) {
20
+ return;
21
+ }
22
+ const onScroll = () => {
23
+ setScrollTop(container.scrollTop);
24
+ };
25
+ const measure = () => {
26
+ setViewportHeight(container.clientHeight);
27
+ };
28
+ measure();
29
+ onScroll();
30
+ container.addEventListener("scroll", onScroll, { passive: true });
31
+ let observer;
32
+ if (typeof ResizeObserver !== "undefined") {
33
+ observer = new ResizeObserver(measure);
34
+ observer.observe(container);
35
+ }
36
+ return () => {
37
+ container.removeEventListener("scroll", onScroll);
38
+ observer?.disconnect();
39
+ };
40
+ }, [container]);
41
+ const safeItemCount = Math.max(0, Math.floor(itemCount));
42
+ const safeItemHeight = Math.max(1, itemHeight);
43
+ const safeOverscan = Math.max(0, Math.floor(overscan));
44
+ const totalHeight = safeItemCount * safeItemHeight;
45
+ const startIndex = safeItemCount === 0 ? 0 : Math.max(0, Math.floor(scrollTop / safeItemHeight) - safeOverscan);
46
+ const endIndex = safeItemCount === 0 ? -1 : Math.min(
47
+ safeItemCount - 1,
48
+ Math.ceil((scrollTop + viewportHeight) / safeItemHeight) - 1 + safeOverscan
49
+ );
50
+ const virtualItems = react.useMemo(() => {
51
+ const items = [];
52
+ for (let index = startIndex; index <= endIndex; index += 1) {
53
+ items.push({
54
+ index,
55
+ start: index * safeItemHeight,
56
+ size: safeItemHeight
57
+ });
58
+ }
59
+ return items;
60
+ }, [endIndex, safeItemHeight, startIndex]);
61
+ const scrollToIndex = react.useCallback(
62
+ (index) => {
63
+ if (container == null || safeItemCount === 0) {
64
+ return;
65
+ }
66
+ const clamped = Math.min(Math.max(index, 0), safeItemCount - 1);
67
+ container.scrollTop = clamped * safeItemHeight;
68
+ setScrollTop(container.scrollTop);
69
+ },
70
+ [container, safeItemCount, safeItemHeight]
71
+ );
72
+ return {
73
+ setContainerRef,
74
+ virtualItems,
75
+ totalHeight,
76
+ startIndex,
77
+ endIndex,
78
+ scrollToIndex
79
+ };
80
+ }
81
+
82
+ exports.useVirtualList = useVirtualList;
83
+ //# sourceMappingURL=useVirtualList.js.map
84
+ //# sourceMappingURL=useVirtualList.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/hooks/useVirtualList/useVirtualList.ts"],"names":["useState","useCallback","useEffect","useMemo"],"mappings":"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","file":"useVirtualList.js","sourcesContent":["\"use client\";\n\nimport type { RefCallback } from \"react\";\nimport { useCallback, useEffect, useMemo, useState } from \"react\";\n\nexport type VirtualItem = {\n /** Index into your data array. */\n index: number;\n /** Offset from the top of the scroll content in pixels (use for `translateY` / `top`). */\n start: number;\n /** Row height in pixels. */\n size: number;\n};\n\nexport type UseVirtualListParams = {\n /** Total number of rows in the list. */\n itemCount: number;\n /** Fixed height of every row in pixels (must be > 0). */\n itemHeight: number;\n /** Extra rows rendered above and below the viewport (default `3`). */\n overscan?: number;\n};\n\nexport type UseVirtualListResult = {\n /** Callback ref for the scrollable container (needs `overflow-y: auto` and a bounded height). */\n setContainerRef: RefCallback<HTMLElement>;\n /** The rows to render, each with its absolute `start` offset. */\n virtualItems: VirtualItem[];\n /** Height of the full list content; set it on an inner spacer element. */\n totalHeight: number;\n /** First rendered index (after overscan). */\n startIndex: number;\n /** Last rendered index (after overscan), `-1` when empty. */\n endIndex: number;\n /** Scroll the container so the given row is at the top. */\n scrollToIndex: (index: number) => void;\n};\n\n/**\n * Headless fixed-height list virtualization: renders only the rows visible in the\n * scroll container (plus `overscan`), so lists of tens of thousands of rows stay cheap.\n *\n * Markup recipe: outer container gets `setContainerRef` + `overflow-y: auto` and a height;\n * inside it, one relative spacer div with `height: totalHeight`; each virtual item is\n * absolutely positioned at `translateY(item.start)` with `height: item.size`.\n *\n * Viewport size tracks `ResizeObserver` (when available) and scroll position tracks a\n * passive `scroll` listener. For variable-height rows, reach for a dedicated virtualizer.\n *\n * @param params - {@link UseVirtualListParams}\n * @returns {@link UseVirtualListResult}\n */\nexport function useVirtualList({\n itemCount,\n itemHeight,\n overscan = 3,\n}: UseVirtualListParams): UseVirtualListResult {\n const [container, setContainer] = useState<HTMLElement | null>(null);\n const [scrollTop, setScrollTop] = useState(0);\n const [viewportHeight, setViewportHeight] = useState(0);\n\n const setContainerRef = useCallback((node: HTMLElement | null) => {\n setContainer(node);\n }, []);\n\n useEffect(() => {\n if (container == null) {\n return;\n }\n const onScroll = () => {\n setScrollTop(container.scrollTop);\n };\n const measure = () => {\n setViewportHeight(container.clientHeight);\n };\n measure();\n onScroll();\n container.addEventListener(\"scroll\", onScroll, { passive: true });\n let observer: ResizeObserver | undefined;\n if (typeof ResizeObserver !== \"undefined\") {\n observer = new ResizeObserver(measure);\n observer.observe(container);\n }\n return () => {\n container.removeEventListener(\"scroll\", onScroll);\n observer?.disconnect();\n };\n }, [container]);\n\n const safeItemCount = Math.max(0, Math.floor(itemCount));\n const safeItemHeight = Math.max(1, itemHeight);\n const safeOverscan = Math.max(0, Math.floor(overscan));\n\n const totalHeight = safeItemCount * safeItemHeight;\n const startIndex =\n safeItemCount === 0\n ? 0\n : Math.max(0, Math.floor(scrollTop / safeItemHeight) - safeOverscan);\n const endIndex =\n safeItemCount === 0\n ? -1\n : Math.min(\n safeItemCount - 1,\n Math.ceil((scrollTop + viewportHeight) / safeItemHeight) -\n 1 +\n safeOverscan,\n );\n\n const virtualItems = useMemo(() => {\n const items: VirtualItem[] = [];\n for (let index = startIndex; index <= endIndex; index += 1) {\n items.push({\n index,\n start: index * safeItemHeight,\n size: safeItemHeight,\n });\n }\n return items;\n }, [endIndex, safeItemHeight, startIndex]);\n\n const scrollToIndex = useCallback(\n (index: number) => {\n if (container == null || safeItemCount === 0) {\n return;\n }\n const clamped = Math.min(Math.max(index, 0), safeItemCount - 1);\n container.scrollTop = clamped * safeItemHeight;\n setScrollTop(container.scrollTop);\n },\n [container, safeItemCount, safeItemHeight],\n );\n\n return {\n setContainerRef,\n virtualItems,\n totalHeight,\n startIndex,\n endIndex,\n scrollToIndex,\n };\n}\n"]}
@@ -0,0 +1,82 @@
1
+ "use client";
2
+ import '../chunk-J5LGTIGS.mjs';
3
+ import { useState, useCallback, useEffect, useMemo } from 'react';
4
+
5
+ function useVirtualList({
6
+ itemCount,
7
+ itemHeight,
8
+ overscan = 3
9
+ }) {
10
+ const [container, setContainer] = useState(null);
11
+ const [scrollTop, setScrollTop] = useState(0);
12
+ const [viewportHeight, setViewportHeight] = useState(0);
13
+ const setContainerRef = useCallback((node) => {
14
+ setContainer(node);
15
+ }, []);
16
+ useEffect(() => {
17
+ if (container == null) {
18
+ return;
19
+ }
20
+ const onScroll = () => {
21
+ setScrollTop(container.scrollTop);
22
+ };
23
+ const measure = () => {
24
+ setViewportHeight(container.clientHeight);
25
+ };
26
+ measure();
27
+ onScroll();
28
+ container.addEventListener("scroll", onScroll, { passive: true });
29
+ let observer;
30
+ if (typeof ResizeObserver !== "undefined") {
31
+ observer = new ResizeObserver(measure);
32
+ observer.observe(container);
33
+ }
34
+ return () => {
35
+ container.removeEventListener("scroll", onScroll);
36
+ observer?.disconnect();
37
+ };
38
+ }, [container]);
39
+ const safeItemCount = Math.max(0, Math.floor(itemCount));
40
+ const safeItemHeight = Math.max(1, itemHeight);
41
+ const safeOverscan = Math.max(0, Math.floor(overscan));
42
+ const totalHeight = safeItemCount * safeItemHeight;
43
+ const startIndex = safeItemCount === 0 ? 0 : Math.max(0, Math.floor(scrollTop / safeItemHeight) - safeOverscan);
44
+ const endIndex = safeItemCount === 0 ? -1 : Math.min(
45
+ safeItemCount - 1,
46
+ Math.ceil((scrollTop + viewportHeight) / safeItemHeight) - 1 + safeOverscan
47
+ );
48
+ const virtualItems = useMemo(() => {
49
+ const items = [];
50
+ for (let index = startIndex; index <= endIndex; index += 1) {
51
+ items.push({
52
+ index,
53
+ start: index * safeItemHeight,
54
+ size: safeItemHeight
55
+ });
56
+ }
57
+ return items;
58
+ }, [endIndex, safeItemHeight, startIndex]);
59
+ const scrollToIndex = useCallback(
60
+ (index) => {
61
+ if (container == null || safeItemCount === 0) {
62
+ return;
63
+ }
64
+ const clamped = Math.min(Math.max(index, 0), safeItemCount - 1);
65
+ container.scrollTop = clamped * safeItemHeight;
66
+ setScrollTop(container.scrollTop);
67
+ },
68
+ [container, safeItemCount, safeItemHeight]
69
+ );
70
+ return {
71
+ setContainerRef,
72
+ virtualItems,
73
+ totalHeight,
74
+ startIndex,
75
+ endIndex,
76
+ scrollToIndex
77
+ };
78
+ }
79
+
80
+ export { useVirtualList };
81
+ //# sourceMappingURL=useVirtualList.mjs.map
82
+ //# sourceMappingURL=useVirtualList.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/hooks/useVirtualList/useVirtualList.ts"],"names":[],"mappings":"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","file":"useVirtualList.mjs","sourcesContent":["\"use client\";\n\nimport type { RefCallback } from \"react\";\nimport { useCallback, useEffect, useMemo, useState } from \"react\";\n\nexport type VirtualItem = {\n /** Index into your data array. */\n index: number;\n /** Offset from the top of the scroll content in pixels (use for `translateY` / `top`). */\n start: number;\n /** Row height in pixels. */\n size: number;\n};\n\nexport type UseVirtualListParams = {\n /** Total number of rows in the list. */\n itemCount: number;\n /** Fixed height of every row in pixels (must be > 0). */\n itemHeight: number;\n /** Extra rows rendered above and below the viewport (default `3`). */\n overscan?: number;\n};\n\nexport type UseVirtualListResult = {\n /** Callback ref for the scrollable container (needs `overflow-y: auto` and a bounded height). */\n setContainerRef: RefCallback<HTMLElement>;\n /** The rows to render, each with its absolute `start` offset. */\n virtualItems: VirtualItem[];\n /** Height of the full list content; set it on an inner spacer element. */\n totalHeight: number;\n /** First rendered index (after overscan). */\n startIndex: number;\n /** Last rendered index (after overscan), `-1` when empty. */\n endIndex: number;\n /** Scroll the container so the given row is at the top. */\n scrollToIndex: (index: number) => void;\n};\n\n/**\n * Headless fixed-height list virtualization: renders only the rows visible in the\n * scroll container (plus `overscan`), so lists of tens of thousands of rows stay cheap.\n *\n * Markup recipe: outer container gets `setContainerRef` + `overflow-y: auto` and a height;\n * inside it, one relative spacer div with `height: totalHeight`; each virtual item is\n * absolutely positioned at `translateY(item.start)` with `height: item.size`.\n *\n * Viewport size tracks `ResizeObserver` (when available) and scroll position tracks a\n * passive `scroll` listener. For variable-height rows, reach for a dedicated virtualizer.\n *\n * @param params - {@link UseVirtualListParams}\n * @returns {@link UseVirtualListResult}\n */\nexport function useVirtualList({\n itemCount,\n itemHeight,\n overscan = 3,\n}: UseVirtualListParams): UseVirtualListResult {\n const [container, setContainer] = useState<HTMLElement | null>(null);\n const [scrollTop, setScrollTop] = useState(0);\n const [viewportHeight, setViewportHeight] = useState(0);\n\n const setContainerRef = useCallback((node: HTMLElement | null) => {\n setContainer(node);\n }, []);\n\n useEffect(() => {\n if (container == null) {\n return;\n }\n const onScroll = () => {\n setScrollTop(container.scrollTop);\n };\n const measure = () => {\n setViewportHeight(container.clientHeight);\n };\n measure();\n onScroll();\n container.addEventListener(\"scroll\", onScroll, { passive: true });\n let observer: ResizeObserver | undefined;\n if (typeof ResizeObserver !== \"undefined\") {\n observer = new ResizeObserver(measure);\n observer.observe(container);\n }\n return () => {\n container.removeEventListener(\"scroll\", onScroll);\n observer?.disconnect();\n };\n }, [container]);\n\n const safeItemCount = Math.max(0, Math.floor(itemCount));\n const safeItemHeight = Math.max(1, itemHeight);\n const safeOverscan = Math.max(0, Math.floor(overscan));\n\n const totalHeight = safeItemCount * safeItemHeight;\n const startIndex =\n safeItemCount === 0\n ? 0\n : Math.max(0, Math.floor(scrollTop / safeItemHeight) - safeOverscan);\n const endIndex =\n safeItemCount === 0\n ? -1\n : Math.min(\n safeItemCount - 1,\n Math.ceil((scrollTop + viewportHeight) / safeItemHeight) -\n 1 +\n safeOverscan,\n );\n\n const virtualItems = useMemo(() => {\n const items: VirtualItem[] = [];\n for (let index = startIndex; index <= endIndex; index += 1) {\n items.push({\n index,\n start: index * safeItemHeight,\n size: safeItemHeight,\n });\n }\n return items;\n }, [endIndex, safeItemHeight, startIndex]);\n\n const scrollToIndex = useCallback(\n (index: number) => {\n if (container == null || safeItemCount === 0) {\n return;\n }\n const clamped = Math.min(Math.max(index, 0), safeItemCount - 1);\n container.scrollTop = clamped * safeItemHeight;\n setScrollTop(container.scrollTop);\n },\n [container, safeItemCount, safeItemHeight],\n );\n\n return {\n setContainerRef,\n virtualItems,\n totalHeight,\n startIndex,\n endIndex,\n scrollToIndex,\n };\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"facade.d.ts","sourceRoot":"","sources":["../../src/lib/facade.ts"],"names":[],"mappings":"AAcA,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,MAAM,GAAG,QAAQ,CAAC;AAErD,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,UAAU,CAAC;IAClB,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,8DAA8D;IAC9D,KAAK,EAAE,MAAM,CAAC;IACd,gFAAgF;IAChF,GAAG,EAAE,MAAM,CAAC;IACZ,mEAAmE;IACnE,IAAI,EAAE,MAAM,CAAC;IACb,iDAAiD;IACjD,SAAS,EAAE,MAAM,CAAC;IAClB,8EAA8E;IAC9E,SAAS,EAAE,MAAM,WAAW,EAAE,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,sEAAsE;IACtE,KAAK,EAAE,MAAM,MAAM,EAAE,CAAC;IACtB,mFAAmF;IACnF,MAAM,EAAE,MAAM,MAAM,EAAE,CAAC;IACvB,8DAA8D;IAC9D,WAAW,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,KAAK,MAAM,EAAE,CAAC;IACzC,wDAAwD;IACxD,KAAK,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,KAAK,MAAM,EAAE,CAAC;IACnC,gFAAgF;IAChF,UAAU,EAAE,CACV,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,KACxB,aAAa,GAAG,SAAS,CAAC;IAC/B,4DAA4D;IAC5D,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,aAAa,EAAE,CAAC;IAC1E,6EAA6E;IAC7E,SAAS,EAAE,MAAM,WAAW,EAAE,CAAC;CAChC,CAAC;AAotBF,eAAO,MAAM,YAAY;IACvB,sDAAsD;kBACxC,MAAM,EAAE;IAGtB,yEAAyE;uBACtD,MAAM,GAAG,eAAe,GAAG,SAAS;IAIvD,iDAAiD;sBAC/B,eAAe,EAAE;IAMnC,kEAAkE;qBACjD,MAAM,GAAG,WAAW,EAAE;CAGxC,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG,OAAO,YAAY,CAAC"}
1
+ {"version":3,"file":"facade.d.ts","sourceRoot":"","sources":["../../src/lib/facade.ts"],"names":[],"mappings":"AAcA,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,MAAM,GAAG,QAAQ,CAAC;AAErD,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,UAAU,CAAC;IAClB,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,8DAA8D;IAC9D,KAAK,EAAE,MAAM,CAAC;IACd,gFAAgF;IAChF,GAAG,EAAE,MAAM,CAAC;IACZ,mEAAmE;IACnE,IAAI,EAAE,MAAM,CAAC;IACb,iDAAiD;IACjD,SAAS,EAAE,MAAM,CAAC;IAClB,8EAA8E;IAC9E,SAAS,EAAE,MAAM,WAAW,EAAE,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,sEAAsE;IACtE,KAAK,EAAE,MAAM,MAAM,EAAE,CAAC;IACtB,mFAAmF;IACnF,MAAM,EAAE,MAAM,MAAM,EAAE,CAAC;IACvB,8DAA8D;IAC9D,WAAW,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,KAAK,MAAM,EAAE,CAAC;IACzC,wDAAwD;IACxD,KAAK,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,KAAK,MAAM,EAAE,CAAC;IACnC,gFAAgF;IAChF,UAAU,EAAE,CACV,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,KACxB,aAAa,GAAG,SAAS,CAAC;IAC/B,4DAA4D;IAC5D,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,aAAa,EAAE,CAAC;IAC1E,6EAA6E;IAC7E,SAAS,EAAE,MAAM,WAAW,EAAE,CAAC;CAChC,CAAC;AAwtBF,eAAO,MAAM,YAAY;IACvB,sDAAsD;kBACxC,MAAM,EAAE;IAGtB,yEAAyE;uBACtD,MAAM,GAAG,eAAe,GAAG,SAAS;IAIvD,iDAAiD;sBAC/B,eAAe,EAAE;IAMnC,kEAAkE;qBACjD,MAAM,GAAG,WAAW,EAAE;CAGxC,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG,OAAO,YAAY,CAAC"}
@@ -1,15 +1,15 @@
1
1
  "use client";
2
2
  'use strict';
3
3
 
4
- var chunk63YMCBGJ_js = require('../../chunk-63YMCBGJ.js');
5
- require('../../chunk-45CGVW7S.js');
4
+ var chunkPYNQZP4X_js = require('../../chunk-PYNQZP4X.js');
5
+ require('../../chunk-PP3L6M62.js');
6
6
  var chunkZS5756ZC_js = require('../../chunk-ZS5756ZC.js');
7
7
  require('../../chunk-PZ5AY32C.js');
8
8
  var jsxRuntime = require('react/jsx-runtime');
9
9
  var framerMotion = require('framer-motion');
10
10
 
11
11
  function Accordion(props) {
12
- return /* @__PURE__ */ jsxRuntime.jsx(chunk63YMCBGJ_js.AccordionBase, { ...props });
12
+ return /* @__PURE__ */ jsxRuntime.jsx(chunkPYNQZP4X_js.AccordionBase, { ...props });
13
13
  }
14
14
  Accordion.displayName = "Accordion";
15
15
 
@@ -26,8 +26,8 @@ function AccordionContentAnimated({
26
26
  transitionVariant = "default",
27
27
  ref
28
28
  }) {
29
- const itemValue = chunk63YMCBGJ_js.useAccordionItemValue("AccordionContent");
30
- const { isOpen, size } = chunk63YMCBGJ_js.useAccordionContext("AccordionContent");
29
+ const itemValue = chunkPYNQZP4X_js.useAccordionItemValue("AccordionContent");
30
+ const { isOpen, size } = chunkPYNQZP4X_js.useAccordionContext("AccordionContent");
31
31
  const open = isOpen(itemValue);
32
32
  const panelId = `${itemValue}-panel`;
33
33
  const transitionConfig = accordionContentTransitionPresets[transitionVariant];
@@ -39,7 +39,7 @@ function AccordionContentAnimated({
39
39
  id: panelId,
40
40
  role: "region",
41
41
  "data-slot": "accordion-content",
42
- className: chunkZS5756ZC_js.cn(chunk63YMCBGJ_js.accordionContentVariants({ size }), className),
42
+ className: chunkZS5756ZC_js.cn(chunkPYNQZP4X_js.accordionContentVariants({ size }), className),
43
43
  initial: motionless ? false : { opacity: 0 },
44
44
  animate: motionless ? void 0 : { opacity: 1 },
45
45
  exit: motionless ? void 0 : { opacity: 0 },
@@ -53,11 +53,11 @@ AccordionContentAnimated.displayName = "AccordionContentAnimated";
53
53
 
54
54
  Object.defineProperty(exports, "AccordionItem", {
55
55
  enumerable: true,
56
- get: function () { return chunk63YMCBGJ_js.AccordionItem; }
56
+ get: function () { return chunkPYNQZP4X_js.AccordionItem; }
57
57
  });
58
58
  Object.defineProperty(exports, "AccordionTrigger", {
59
59
  enumerable: true,
60
- get: function () { return chunk63YMCBGJ_js.AccordionTrigger; }
60
+ get: function () { return chunkPYNQZP4X_js.AccordionTrigger; }
61
61
  });
62
62
  exports.Accordion = Accordion;
63
63
  exports.AccordionContentAnimated = AccordionContentAnimated;
@@ -1,7 +1,7 @@
1
1
  "use client";
2
- import { AccordionBase, useAccordionItemValue, useAccordionContext, accordionContentVariants } from '../../chunk-L6PSW7JE.mjs';
3
- export { AccordionItem, AccordionTrigger } from '../../chunk-L6PSW7JE.mjs';
4
- import '../../chunk-SWU5U5BB.mjs';
2
+ import { AccordionBase, useAccordionItemValue, useAccordionContext, accordionContentVariants } from '../../chunk-SUTFW53Y.mjs';
3
+ export { AccordionItem, AccordionTrigger } from '../../chunk-SUTFW53Y.mjs';
4
+ import '../../chunk-HFQJRAG7.mjs';
5
5
  import { cn } from '../../chunk-4D54YOL6.mjs';
6
6
  import '../../chunk-J5LGTIGS.mjs';
7
7
  import { jsx } from 'react/jsx-runtime';
@@ -1,44 +1,44 @@
1
1
  "use client";
2
2
  'use strict';
3
3
 
4
- var chunk63YMCBGJ_js = require('../chunk-63YMCBGJ.js');
5
- require('../chunk-45CGVW7S.js');
4
+ var chunkPYNQZP4X_js = require('../chunk-PYNQZP4X.js');
5
+ require('../chunk-PP3L6M62.js');
6
6
  require('../chunk-ZS5756ZC.js');
7
7
  require('../chunk-PZ5AY32C.js');
8
8
  var jsxRuntime = require('react/jsx-runtime');
9
9
 
10
10
  function Accordion(props) {
11
- return /* @__PURE__ */ jsxRuntime.jsx(chunk63YMCBGJ_js.AccordionBase, { ...props });
11
+ return /* @__PURE__ */ jsxRuntime.jsx(chunkPYNQZP4X_js.AccordionBase, { ...props });
12
12
  }
13
13
  Accordion.displayName = "Accordion";
14
14
 
15
15
  Object.defineProperty(exports, "AccordionContent", {
16
16
  enumerable: true,
17
- get: function () { return chunk63YMCBGJ_js.AccordionContent; }
17
+ get: function () { return chunkPYNQZP4X_js.AccordionContent; }
18
18
  });
19
19
  Object.defineProperty(exports, "AccordionItem", {
20
20
  enumerable: true,
21
- get: function () { return chunk63YMCBGJ_js.AccordionItem; }
21
+ get: function () { return chunkPYNQZP4X_js.AccordionItem; }
22
22
  });
23
23
  Object.defineProperty(exports, "AccordionTrigger", {
24
24
  enumerable: true,
25
- get: function () { return chunk63YMCBGJ_js.AccordionTrigger; }
25
+ get: function () { return chunkPYNQZP4X_js.AccordionTrigger; }
26
26
  });
27
27
  Object.defineProperty(exports, "accordionContentVariants", {
28
28
  enumerable: true,
29
- get: function () { return chunk63YMCBGJ_js.accordionContentVariants; }
29
+ get: function () { return chunkPYNQZP4X_js.accordionContentVariants; }
30
30
  });
31
31
  Object.defineProperty(exports, "accordionItemVariants", {
32
32
  enumerable: true,
33
- get: function () { return chunk63YMCBGJ_js.accordionItemVariants; }
33
+ get: function () { return chunkPYNQZP4X_js.accordionItemVariants; }
34
34
  });
35
35
  Object.defineProperty(exports, "accordionTriggerVariants", {
36
36
  enumerable: true,
37
- get: function () { return chunk63YMCBGJ_js.accordionTriggerVariants; }
37
+ get: function () { return chunkPYNQZP4X_js.accordionTriggerVariants; }
38
38
  });
39
39
  Object.defineProperty(exports, "accordionVariants", {
40
40
  enumerable: true,
41
- get: function () { return chunk63YMCBGJ_js.accordionVariants; }
41
+ get: function () { return chunkPYNQZP4X_js.accordionVariants; }
42
42
  });
43
43
  exports.Accordion = Accordion;
44
44
  //# sourceMappingURL=accordion.js.map
@@ -1,7 +1,7 @@
1
1
  "use client";
2
- import { AccordionBase } from '../chunk-L6PSW7JE.mjs';
3
- export { AccordionContent, AccordionItem, AccordionTrigger, accordionContentVariants, accordionItemVariants, accordionTriggerVariants, accordionVariants } from '../chunk-L6PSW7JE.mjs';
4
- import '../chunk-SWU5U5BB.mjs';
2
+ import { AccordionBase } from '../chunk-SUTFW53Y.mjs';
3
+ export { AccordionContent, AccordionItem, AccordionTrigger, accordionContentVariants, accordionItemVariants, accordionTriggerVariants, accordionVariants } from '../chunk-SUTFW53Y.mjs';
4
+ import '../chunk-HFQJRAG7.mjs';
5
5
  import '../chunk-4D54YOL6.mjs';
6
6
  import '../chunk-J5LGTIGS.mjs';
7
7
  import { jsx } from 'react/jsx-runtime';