@zentauri-ui/zentauri-components 2.0.0 → 2.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (750) hide show
  1. package/CHANGELOG.md +18 -11
  2. package/README.md +12 -11
  3. package/cli/cli.integration.test.ts +52 -0
  4. package/cli/index.mjs +288 -0
  5. package/dist/chunk-22FJROCI.js +70 -0
  6. package/dist/chunk-22FJROCI.js.map +1 -0
  7. package/dist/chunk-2NQKFH26.mjs +64 -0
  8. package/dist/chunk-2NQKFH26.mjs.map +1 -0
  9. package/dist/chunk-2VPXQ2LA.mjs +57 -0
  10. package/dist/chunk-2VPXQ2LA.mjs.map +1 -0
  11. package/dist/chunk-3453DQNL.js +63 -0
  12. package/dist/chunk-3453DQNL.js.map +1 -0
  13. package/dist/chunk-34LHS26H.mjs +240 -0
  14. package/dist/chunk-34LHS26H.mjs.map +1 -0
  15. package/dist/chunk-3CYJQ6KF.js +121 -0
  16. package/dist/chunk-3CYJQ6KF.js.map +1 -0
  17. package/dist/chunk-3EJCQXGV.js +169 -0
  18. package/dist/chunk-3EJCQXGV.js.map +1 -0
  19. package/dist/chunk-3IE4IELX.mjs +64 -0
  20. package/dist/chunk-3IE4IELX.mjs.map +1 -0
  21. package/dist/{chunk-44NX3DAZ.mjs → chunk-3N575QVC.mjs} +3 -3
  22. package/dist/{chunk-44NX3DAZ.mjs.map → chunk-3N575QVC.mjs.map} +1 -1
  23. package/dist/chunk-3VW4HMJT.mjs +58 -0
  24. package/dist/chunk-3VW4HMJT.mjs.map +1 -0
  25. package/dist/chunk-42ZSQNDF.mjs +64 -0
  26. package/dist/chunk-42ZSQNDF.mjs.map +1 -0
  27. package/dist/{chunk-V4FFKIX3.js → chunk-4LCH4OJ5.js} +10 -10
  28. package/dist/{chunk-V4FFKIX3.js.map → chunk-4LCH4OJ5.js.map} +1 -1
  29. package/dist/chunk-4WG3VNVL.mjs +69 -0
  30. package/dist/chunk-4WG3VNVL.mjs.map +1 -0
  31. package/dist/chunk-4ZBMDWWY.mjs +107 -0
  32. package/dist/chunk-4ZBMDWWY.mjs.map +1 -0
  33. package/dist/chunk-523VQLCW.mjs +62 -0
  34. package/dist/chunk-523VQLCW.mjs.map +1 -0
  35. package/dist/chunk-5AOVTY2X.mjs +68 -0
  36. package/dist/chunk-5AOVTY2X.mjs.map +1 -0
  37. package/dist/{chunk-GVGKISKD.js → chunk-5QLPZYWO.js} +9 -9
  38. package/dist/{chunk-GVGKISKD.js.map → chunk-5QLPZYWO.js.map} +1 -1
  39. package/dist/{chunk-OPACTZGV.js → chunk-5TVBPPS6.js} +11 -11
  40. package/dist/{chunk-OPACTZGV.js.map → chunk-5TVBPPS6.js.map} +1 -1
  41. package/dist/{chunk-NWMSIYZP.js → chunk-642JVK45.js} +16 -16
  42. package/dist/{chunk-NWMSIYZP.js.map → chunk-642JVK45.js.map} +1 -1
  43. package/dist/chunk-6ERBVFDA.mjs +66 -0
  44. package/dist/chunk-6ERBVFDA.mjs.map +1 -0
  45. package/dist/chunk-6Q4EOLKN.js +74 -0
  46. package/dist/chunk-6Q4EOLKN.js.map +1 -0
  47. package/dist/{chunk-VUIWYURS.js → chunk-6XVSACCS.js} +15 -15
  48. package/dist/{chunk-VUIWYURS.js.map → chunk-6XVSACCS.js.map} +1 -1
  49. package/dist/{chunk-7GIL24GK.js → chunk-7ARZ3MK2.js} +12 -12
  50. package/dist/{chunk-7GIL24GK.js.map → chunk-7ARZ3MK2.js.map} +1 -1
  51. package/dist/chunk-7DVECOO7.js +78 -0
  52. package/dist/chunk-7DVECOO7.js.map +1 -0
  53. package/dist/{chunk-O23PJPGM.mjs → chunk-7HQFFQSQ.mjs} +3 -3
  54. package/dist/{chunk-O23PJPGM.mjs.map → chunk-7HQFFQSQ.mjs.map} +1 -1
  55. package/dist/{chunk-2PWT2MB5.mjs → chunk-7KCX2FX2.mjs} +3 -3
  56. package/dist/{chunk-2PWT2MB5.mjs.map → chunk-7KCX2FX2.mjs.map} +1 -1
  57. package/dist/chunk-7N2UYQBJ.mjs +655 -0
  58. package/dist/chunk-7N2UYQBJ.mjs.map +1 -0
  59. package/dist/{chunk-ZCTSXNAE.mjs → chunk-7WQ5TWUO.mjs} +3 -3
  60. package/dist/{chunk-ZCTSXNAE.mjs.map → chunk-7WQ5TWUO.mjs.map} +1 -1
  61. package/dist/chunk-A7MU6SFI.js +254 -0
  62. package/dist/chunk-A7MU6SFI.js.map +1 -0
  63. package/dist/{chunk-D4B62J5C.js → chunk-APBQNYFN.js} +11 -11
  64. package/dist/{chunk-D4B62J5C.js.map → chunk-APBQNYFN.js.map} +1 -1
  65. package/dist/{chunk-37YQUTKG.js → chunk-APCN6NUH.js} +8 -8
  66. package/dist/{chunk-37YQUTKG.js.map → chunk-APCN6NUH.js.map} +1 -1
  67. package/dist/chunk-BBM4BKSN.js +65 -0
  68. package/dist/chunk-BBM4BKSN.js.map +1 -0
  69. package/dist/chunk-BIQZC26Q.js +83 -0
  70. package/dist/chunk-BIQZC26Q.js.map +1 -0
  71. package/dist/{chunk-RYJ5WEE3.js → chunk-BUBIH4LS.js} +9 -9
  72. package/dist/{chunk-RYJ5WEE3.js.map → chunk-BUBIH4LS.js.map} +1 -1
  73. package/dist/chunk-BUEI4RMR.mjs +82 -0
  74. package/dist/chunk-BUEI4RMR.mjs.map +1 -0
  75. package/dist/{chunk-7JBQ3ZJN.mjs → chunk-BYXFSXNG.mjs} +3 -3
  76. package/dist/{chunk-7JBQ3ZJN.mjs.map → chunk-BYXFSXNG.mjs.map} +1 -1
  77. package/dist/chunk-BZTAA3MK.js +62 -0
  78. package/dist/chunk-BZTAA3MK.js.map +1 -0
  79. package/dist/chunk-CJCOURVM.js +79 -0
  80. package/dist/chunk-CJCOURVM.js.map +1 -0
  81. package/dist/chunk-COVTMJIQ.mjs +171 -0
  82. package/dist/chunk-COVTMJIQ.mjs.map +1 -0
  83. package/dist/{chunk-ZY6O6Z2I.mjs → chunk-CQ2S43AD.mjs} +3 -3
  84. package/dist/{chunk-ZY6O6Z2I.mjs.map → chunk-CQ2S43AD.mjs.map} +1 -1
  85. package/dist/chunk-D7ATXPVI.js +70 -0
  86. package/dist/chunk-D7ATXPVI.js.map +1 -0
  87. package/dist/chunk-DOA4ESKS.mjs +58 -0
  88. package/dist/chunk-DOA4ESKS.mjs.map +1 -0
  89. package/dist/{chunk-QIUVXTLE.mjs → chunk-DSGPPYZ3.mjs} +3 -3
  90. package/dist/{chunk-QIUVXTLE.mjs.map → chunk-DSGPPYZ3.mjs.map} +1 -1
  91. package/dist/chunk-DYSXCJGL.js +47 -0
  92. package/dist/chunk-DYSXCJGL.js.map +1 -0
  93. package/dist/{chunk-P2DQP4J4.js → chunk-EDJ6TVL3.js} +117 -12
  94. package/dist/chunk-EDJ6TVL3.js.map +1 -0
  95. package/dist/chunk-EE53BIXR.mjs +112 -0
  96. package/dist/chunk-EE53BIXR.mjs.map +1 -0
  97. package/dist/chunk-EJ3UMMCS.mjs +65 -0
  98. package/dist/chunk-EJ3UMMCS.mjs.map +1 -0
  99. package/dist/chunk-ENYZGL4R.mjs +94 -0
  100. package/dist/chunk-ENYZGL4R.mjs.map +1 -0
  101. package/dist/{chunk-BZZVO4GL.mjs → chunk-F6W3GJJ2.mjs} +108 -3
  102. package/dist/chunk-F6W3GJJ2.mjs.map +1 -0
  103. package/dist/chunk-FBUY6K6S.js +69 -0
  104. package/dist/chunk-FBUY6K6S.js.map +1 -0
  105. package/dist/{chunk-QKZR2UTL.mjs → chunk-FEMXNI6E.mjs} +3 -3
  106. package/dist/{chunk-QKZR2UTL.mjs.map → chunk-FEMXNI6E.mjs.map} +1 -1
  107. package/dist/chunk-FX5KR2GP.mjs +81 -0
  108. package/dist/chunk-FX5KR2GP.mjs.map +1 -0
  109. package/dist/{chunk-C7F6OCGK.mjs → chunk-GFCT24TH.mjs} +3 -3
  110. package/dist/{chunk-C7F6OCGK.mjs.map → chunk-GFCT24TH.mjs.map} +1 -1
  111. package/dist/{chunk-IPUQBMAB.mjs → chunk-GH2GZFRD.mjs} +3 -3
  112. package/dist/{chunk-IPUQBMAB.mjs.map → chunk-GH2GZFRD.mjs.map} +1 -1
  113. package/dist/{chunk-NAHHFB2M.js → chunk-GICW4DH5.js} +9 -9
  114. package/dist/{chunk-NAHHFB2M.js.map → chunk-GICW4DH5.js.map} +1 -1
  115. package/dist/{chunk-ATMCT3A3.mjs → chunk-GOH2THVW.mjs} +3 -3
  116. package/dist/{chunk-ATMCT3A3.mjs.map → chunk-GOH2THVW.mjs.map} +1 -1
  117. package/dist/chunk-GUB3RSPR.mjs +211 -0
  118. package/dist/chunk-GUB3RSPR.mjs.map +1 -0
  119. package/dist/chunk-HFQJRAG7.mjs +116 -0
  120. package/dist/chunk-HFQJRAG7.mjs.map +1 -0
  121. package/dist/chunk-HNRCPZCK.js +107 -0
  122. package/dist/chunk-HNRCPZCK.js.map +1 -0
  123. package/dist/chunk-HOOZYA4N.js +92 -0
  124. package/dist/chunk-HOOZYA4N.js.map +1 -0
  125. package/dist/{chunk-3HSFL4WA.mjs → chunk-HVMYPW3Q.mjs} +3 -3
  126. package/dist/{chunk-3HSFL4WA.mjs.map → chunk-HVMYPW3Q.mjs.map} +1 -1
  127. package/dist/chunk-IEHY6KNM.js +122 -0
  128. package/dist/chunk-IEHY6KNM.js.map +1 -0
  129. package/dist/{chunk-BDBL4XXI.mjs → chunk-ILCT3P7D.mjs} +3 -3
  130. package/dist/{chunk-BDBL4XXI.mjs.map → chunk-ILCT3P7D.mjs.map} +1 -1
  131. package/dist/chunk-IR5SJ7AQ.js +87 -0
  132. package/dist/chunk-IR5SJ7AQ.js.map +1 -0
  133. package/dist/chunk-J2SUGU3X.js +63 -0
  134. package/dist/chunk-J2SUGU3X.js.map +1 -0
  135. package/dist/chunk-J5NTJVKX.js +229 -0
  136. package/dist/chunk-J5NTJVKX.js.map +1 -0
  137. package/dist/{chunk-4LVEWKXF.mjs → chunk-J7IATHJY.mjs} +3 -3
  138. package/dist/{chunk-4LVEWKXF.mjs.map → chunk-J7IATHJY.mjs.map} +1 -1
  139. package/dist/{chunk-EKBSSKJQ.js → chunk-JD7TCCMW.js} +10 -10
  140. package/dist/{chunk-EKBSSKJQ.js.map → chunk-JD7TCCMW.js.map} +1 -1
  141. package/dist/chunk-JEDMUBYI.mjs +75 -0
  142. package/dist/chunk-JEDMUBYI.mjs.map +1 -0
  143. package/dist/{chunk-KEGOUZL5.js → chunk-JGPG2D2Y.js} +7 -7
  144. package/dist/{chunk-KEGOUZL5.js.map → chunk-JGPG2D2Y.js.map} +1 -1
  145. package/dist/chunk-JOLSS7UY.mjs +61 -0
  146. package/dist/chunk-JOLSS7UY.mjs.map +1 -0
  147. package/dist/chunk-KJMW7S5X.js +78 -0
  148. package/dist/chunk-KJMW7S5X.js.map +1 -0
  149. package/dist/chunk-KOIXQXZB.js +49 -0
  150. package/dist/{chunk-NVTV3EQB.js.map → chunk-KOIXQXZB.js.map} +1 -1
  151. package/dist/{chunk-PKXDRTC7.js → chunk-KQZWTTY2.js} +13 -13
  152. package/dist/{chunk-PKXDRTC7.js.map → chunk-KQZWTTY2.js.map} +1 -1
  153. package/dist/chunk-KWBGLH7G.js +155 -0
  154. package/dist/chunk-KWBGLH7G.js.map +1 -0
  155. package/dist/chunk-L7W4NRK6.js +78 -0
  156. package/dist/chunk-L7W4NRK6.js.map +1 -0
  157. package/dist/chunk-LRYKMXKI.mjs +159 -0
  158. package/dist/chunk-LRYKMXKI.mjs.map +1 -0
  159. package/dist/chunk-MBEQ4GQ7.mjs +44 -0
  160. package/dist/chunk-MBEQ4GQ7.mjs.map +1 -0
  161. package/dist/{chunk-PAJYNQR3.mjs → chunk-MI3CVVNR.mjs} +3 -3
  162. package/dist/{chunk-PAJYNQR3.mjs.map → chunk-MI3CVVNR.mjs.map} +1 -1
  163. package/dist/{chunk-4FU6FDUT.mjs → chunk-MXYQOQJ4.mjs} +3 -3
  164. package/dist/{chunk-4FU6FDUT.mjs.map → chunk-MXYQOQJ4.mjs.map} +1 -1
  165. package/dist/chunk-NFUOJMNI.js +61 -0
  166. package/dist/chunk-NFUOJMNI.js.map +1 -0
  167. package/dist/chunk-NGZTAVQO.mjs +79 -0
  168. package/dist/chunk-NGZTAVQO.mjs.map +1 -0
  169. package/dist/chunk-NNGL2AFQ.js +181 -0
  170. package/dist/chunk-NNGL2AFQ.js.map +1 -0
  171. package/dist/{chunk-Q2NE2UAO.mjs → chunk-NXVSGMLI.mjs} +3 -3
  172. package/dist/{chunk-Q2NE2UAO.mjs.map → chunk-NXVSGMLI.mjs.map} +1 -1
  173. package/dist/chunk-NYO3W5GY.js +61 -0
  174. package/dist/chunk-NYO3W5GY.js.map +1 -0
  175. package/dist/{chunk-ZFNVFMWG.mjs → chunk-O22T5X4G.mjs} +3 -3
  176. package/dist/{chunk-ZFNVFMWG.mjs.map → chunk-O22T5X4G.mjs.map} +1 -1
  177. package/dist/{chunk-Y73U7C4T.js → chunk-OCKSRD6O.js} +16 -16
  178. package/dist/{chunk-Y73U7C4T.js.map → chunk-OCKSRD6O.js.map} +1 -1
  179. package/dist/{chunk-27PO2FY2.mjs → chunk-OO4IPM4F.mjs} +3 -3
  180. package/dist/{chunk-27PO2FY2.mjs.map → chunk-OO4IPM4F.mjs.map} +1 -1
  181. package/dist/chunk-PP3L6M62.js +126 -0
  182. package/dist/chunk-PP3L6M62.js.map +1 -0
  183. package/dist/{chunk-63YMCBGJ.js → chunk-PYNQZP4X.js} +12 -12
  184. package/dist/{chunk-63YMCBGJ.js.map → chunk-PYNQZP4X.js.map} +1 -1
  185. package/dist/chunk-PZ25OHJE.js +69 -0
  186. package/dist/chunk-PZ25OHJE.js.map +1 -0
  187. package/dist/{chunk-O6R6OQXI.mjs → chunk-PZI2UVPL.mjs} +3 -3
  188. package/dist/{chunk-O6R6OQXI.mjs.map → chunk-PZI2UVPL.mjs.map} +1 -1
  189. package/dist/{chunk-QDHARZDN.js → chunk-QGTLXKKB.js} +12 -12
  190. package/dist/{chunk-QDHARZDN.js.map → chunk-QGTLXKKB.js.map} +1 -1
  191. package/dist/chunk-QX6PPTWL.mjs +125 -0
  192. package/dist/chunk-QX6PPTWL.mjs.map +1 -0
  193. package/dist/chunk-R4D5V7NT.js +19 -0
  194. package/dist/{chunk-FAMHSJTK.js.map → chunk-R4D5V7NT.js.map} +1 -1
  195. package/dist/{chunk-I4TGI6U3.mjs → chunk-RJ7L45SA.mjs} +3 -3
  196. package/dist/{chunk-I4TGI6U3.mjs.map → chunk-RJ7L45SA.mjs.map} +1 -1
  197. package/dist/{chunk-IQ6QVIZ3.mjs → chunk-RSMFWP5S.mjs} +3 -3
  198. package/dist/{chunk-IQ6QVIZ3.mjs.map → chunk-RSMFWP5S.mjs.map} +1 -1
  199. package/dist/chunk-SCOIRBML.js +705 -0
  200. package/dist/{chunk-WBRTXAKP.js.map → chunk-SCOIRBML.js.map} +1 -1
  201. package/dist/chunk-SCWQSQBJ.mjs +113 -0
  202. package/dist/chunk-SCWQSQBJ.mjs.map +1 -0
  203. package/dist/{chunk-LLNK24MM.js → chunk-SK24YZIC.js} +18 -18
  204. package/dist/{chunk-LLNK24MM.js.map → chunk-SK24YZIC.js.map} +1 -1
  205. package/dist/chunk-SRSRY5K2.js +71 -0
  206. package/dist/chunk-SRSRY5K2.js.map +1 -0
  207. package/dist/chunk-SS3T3BUL.mjs +70 -0
  208. package/dist/chunk-SS3T3BUL.mjs.map +1 -0
  209. package/dist/{chunk-L6PSW7JE.mjs → chunk-SUTFW53Y.mjs} +3 -3
  210. package/dist/{chunk-L6PSW7JE.mjs.map → chunk-SUTFW53Y.mjs.map} +1 -1
  211. package/dist/chunk-T4ZLTKV2.mjs +112 -0
  212. package/dist/chunk-T4ZLTKV2.mjs.map +1 -0
  213. package/dist/{chunk-MUKI3OHH.js → chunk-TDVHPNYI.js} +14 -14
  214. package/dist/{chunk-MUKI3OHH.js.map → chunk-TDVHPNYI.js.map} +1 -1
  215. package/dist/chunk-TKAOHMVA.mjs +120 -0
  216. package/dist/chunk-TKAOHMVA.mjs.map +1 -0
  217. package/dist/chunk-TT33BIIT.js +71 -0
  218. package/dist/chunk-TT33BIIT.js.map +1 -0
  219. package/dist/chunk-TVEK6PKH.mjs +74 -0
  220. package/dist/chunk-TVEK6PKH.mjs.map +1 -0
  221. package/dist/{chunk-JXSM2EHC.mjs → chunk-TYBQZO6Y.mjs} +3 -3
  222. package/dist/{chunk-JXSM2EHC.mjs.map → chunk-TYBQZO6Y.mjs.map} +1 -1
  223. package/dist/chunk-U64ISRUX.mjs +73 -0
  224. package/dist/chunk-U64ISRUX.mjs.map +1 -0
  225. package/dist/chunk-UG3GF2BD.js +120 -0
  226. package/dist/chunk-UG3GF2BD.js.map +1 -0
  227. package/dist/chunk-UJXFD4SK.js +65 -0
  228. package/dist/chunk-UJXFD4SK.js.map +1 -0
  229. package/dist/chunk-UQQHB3OI.js +80 -0
  230. package/dist/chunk-UQQHB3OI.js.map +1 -0
  231. package/dist/chunk-USLNTKVQ.js +114 -0
  232. package/dist/chunk-USLNTKVQ.js.map +1 -0
  233. package/dist/chunk-UT6QG35L.js +68 -0
  234. package/dist/chunk-UT6QG35L.js.map +1 -0
  235. package/dist/chunk-V2LI5QZD.js +674 -0
  236. package/dist/chunk-V2LI5QZD.js.map +1 -0
  237. package/dist/{chunk-LS4GY2ZQ.js → chunk-VHYUH5OH.js} +6 -6
  238. package/dist/{chunk-LS4GY2ZQ.js.map → chunk-VHYUH5OH.js.map} +1 -1
  239. package/dist/{chunk-I5TREZO5.js → chunk-VSD4KDZT.js} +10 -10
  240. package/dist/{chunk-I5TREZO5.js.map → chunk-VSD4KDZT.js.map} +1 -1
  241. package/dist/chunk-WGN2CBG6.js +82 -0
  242. package/dist/chunk-WGN2CBG6.js.map +1 -0
  243. package/dist/chunk-WIKNEHPJ.mjs +68 -0
  244. package/dist/chunk-WIKNEHPJ.mjs.map +1 -0
  245. package/dist/{chunk-EIX26RKN.js → chunk-XXGMFT6O.js} +9 -9
  246. package/dist/{chunk-EIX26RKN.js.map → chunk-XXGMFT6O.js.map} +1 -1
  247. package/dist/chunk-Y5JAQEBF.js +134 -0
  248. package/dist/chunk-Y5JAQEBF.js.map +1 -0
  249. package/dist/{chunk-34OSFCSH.js → chunk-Y6DFOQ5E.js} +7 -7
  250. package/dist/{chunk-34OSFCSH.js.map → chunk-Y6DFOQ5E.js.map} +1 -1
  251. package/dist/chunk-Y7BU5RC4.js +95 -0
  252. package/dist/chunk-Y7BU5RC4.js.map +1 -0
  253. package/dist/chunk-YH6MOKHR.mjs +65 -0
  254. package/dist/chunk-YH6MOKHR.mjs.map +1 -0
  255. package/dist/chunk-YKTANA3H.mjs +52 -0
  256. package/dist/chunk-YKTANA3H.mjs.map +1 -0
  257. package/dist/chunk-YPTHTFVF.mjs +144 -0
  258. package/dist/chunk-YPTHTFVF.mjs.map +1 -0
  259. package/dist/chunk-YPYPWALR.js +128 -0
  260. package/dist/chunk-YPYPWALR.js.map +1 -0
  261. package/dist/chunk-YXU2MJMT.mjs +52 -0
  262. package/dist/chunk-YXU2MJMT.mjs.map +1 -0
  263. package/dist/{chunk-ZITS2V53.js → chunk-ZIP7EX64.js} +9 -9
  264. package/dist/{chunk-ZITS2V53.js.map → chunk-ZIP7EX64.js.map} +1 -1
  265. package/dist/chunk-ZJWOSRAS.mjs +57 -0
  266. package/dist/chunk-ZJWOSRAS.mjs.map +1 -0
  267. package/dist/{chunk-ODT5TFIT.mjs → chunk-ZMFRJHO6.mjs} +3 -3
  268. package/dist/{chunk-ODT5TFIT.mjs.map → chunk-ZMFRJHO6.mjs.map} +1 -1
  269. package/dist/chunk-ZPGYR2UP.mjs +54 -0
  270. package/dist/chunk-ZPGYR2UP.mjs.map +1 -0
  271. package/dist/{chunk-XPHD3X4L.mjs → chunk-ZUQOQW5W.mjs} +3 -3
  272. package/dist/{chunk-XPHD3X4L.mjs.map → chunk-ZUQOQW5W.mjs.map} +1 -1
  273. package/dist/design-system/accordion.d.ts +85 -85
  274. package/dist/design-system/accordion.d.ts.map +1 -1
  275. package/dist/design-system/alert.d.ts +46 -46
  276. package/dist/design-system/alert.d.ts.map +1 -1
  277. package/dist/design-system/animated-number.d.ts +44 -44
  278. package/dist/design-system/avatar.d.ts +47 -47
  279. package/dist/design-system/avatar.d.ts.map +1 -1
  280. package/dist/design-system/badge.d.ts +92 -92
  281. package/dist/design-system/badge.d.ts.map +1 -1
  282. package/dist/design-system/breadcrumb.d.ts +38 -38
  283. package/dist/design-system/breadcrumb.d.ts.map +1 -1
  284. package/dist/design-system/button.d.ts +50 -50
  285. package/dist/design-system/button.d.ts.map +1 -1
  286. package/dist/design-system/card.d.ts +52 -52
  287. package/dist/design-system/card.d.ts.map +1 -1
  288. package/dist/design-system/checkbox.d.ts +32 -32
  289. package/dist/design-system/checkbox.d.ts.map +1 -1
  290. package/dist/design-system/combobox.d.ts +181 -98
  291. package/dist/design-system/combobox.d.ts.map +1 -1
  292. package/dist/design-system/command.d.ts +53 -53
  293. package/dist/design-system/command.d.ts.map +1 -1
  294. package/dist/design-system/context-menu.d.ts +51 -51
  295. package/dist/design-system/context-menu.d.ts.map +1 -1
  296. package/dist/design-system/copy-button.d.ts +49 -49
  297. package/dist/design-system/copy-button.d.ts.map +1 -1
  298. package/dist/design-system/divider.d.ts +47 -47
  299. package/dist/design-system/drawer.d.ts +90 -90
  300. package/dist/design-system/drawer.d.ts.map +1 -1
  301. package/dist/design-system/dropdown.d.ts +97 -97
  302. package/dist/design-system/dropdown.d.ts.map +1 -1
  303. package/dist/design-system/dynamic-stepper.d.ts +57 -57
  304. package/dist/design-system/empty-state.d.ts +25 -25
  305. package/dist/design-system/empty-state.d.ts.map +1 -1
  306. package/dist/design-system/facade.js +41 -41
  307. package/dist/design-system/facade.mjs +40 -40
  308. package/dist/design-system/file-upload.d.ts +36 -36
  309. package/dist/design-system/file-upload.d.ts.map +1 -1
  310. package/dist/design-system/inputs.d.ts +159 -159
  311. package/dist/design-system/inputs.d.ts.map +1 -1
  312. package/dist/design-system/kbd.d.ts +51 -51
  313. package/dist/design-system/kbd.d.ts.map +1 -1
  314. package/dist/design-system/marquee.d.ts +43 -43
  315. package/dist/design-system/marquee.d.ts.map +1 -1
  316. package/dist/design-system/modal.d.ts +90 -90
  317. package/dist/design-system/modal.d.ts.map +1 -1
  318. package/dist/design-system/otp-input.d.ts +38 -38
  319. package/dist/design-system/otp-input.d.ts.map +1 -1
  320. package/dist/design-system/pagination.d.ts +51 -51
  321. package/dist/design-system/pagination.d.ts.map +1 -1
  322. package/dist/design-system/popover.d.ts +44 -44
  323. package/dist/design-system/popover.d.ts.map +1 -1
  324. package/dist/design-system/progress.d.ts +47 -47
  325. package/dist/design-system/progress.d.ts.map +1 -1
  326. package/dist/design-system/radio-group.d.ts +32 -32
  327. package/dist/design-system/radio-group.d.ts.map +1 -1
  328. package/dist/design-system/rating.d.ts +54 -54
  329. package/dist/design-system/rating.d.ts.map +1 -1
  330. package/dist/design-system/scroll-area.d.ts +30 -30
  331. package/dist/design-system/scroll-area.d.ts.map +1 -1
  332. package/dist/design-system/select.d.ts +132 -132
  333. package/dist/design-system/select.d.ts.map +1 -1
  334. package/dist/design-system/skeleton.d.ts +67 -67
  335. package/dist/design-system/skeleton.d.ts.map +1 -1
  336. package/dist/design-system/slider.d.ts +45 -45
  337. package/dist/design-system/slider.d.ts.map +1 -1
  338. package/dist/design-system/spinner.d.ts +43 -43
  339. package/dist/design-system/table.d.ts +108 -108
  340. package/dist/design-system/table.d.ts.map +1 -1
  341. package/dist/design-system/tabs.d.ts +43 -43
  342. package/dist/design-system/tabs.d.ts.map +1 -1
  343. package/dist/design-system/timeline.d.ts +45 -45
  344. package/dist/design-system/timeline.d.ts.map +1 -1
  345. package/dist/design-system/toast.d.ts +47 -47
  346. package/dist/design-system/toast.d.ts.map +1 -1
  347. package/dist/design-system/toggle.d.ts +88 -88
  348. package/dist/design-system/toggle.d.ts.map +1 -1
  349. package/dist/design-system/tokens.d.ts +101 -0
  350. package/dist/design-system/tokens.d.ts.map +1 -1
  351. package/dist/design-system/tokens.js +11 -7
  352. package/dist/design-system/tokens.mjs +1 -1
  353. package/dist/design-system/tooltip.d.ts +44 -44
  354. package/dist/design-system/tooltip.d.ts.map +1 -1
  355. package/dist/design-system/tree-view.d.ts +92 -92
  356. package/dist/design-system/tree-view.d.ts.map +1 -1
  357. package/dist/hooks/useCookie/useCookie.d.ts.map +1 -1
  358. package/dist/hooks/useCookie.js +1 -7
  359. package/dist/hooks/useCookie.js.map +1 -1
  360. package/dist/hooks/useCookie.mjs +1 -7
  361. package/dist/hooks/useCookie.mjs.map +1 -1
  362. package/dist/hooks/useEventListener.js.map +1 -1
  363. package/dist/hooks/useEventListener.mjs.map +1 -1
  364. package/dist/hooks/useGeolocation/useGeolocation.d.ts.map +1 -1
  365. package/dist/hooks/useGeolocation.js.map +1 -1
  366. package/dist/hooks/useGeolocation.mjs.map +1 -1
  367. package/dist/hooks/useHotkeys/useHotkeys.d.ts.map +1 -1
  368. package/dist/hooks/useHotkeys.js +5 -1
  369. package/dist/hooks/useHotkeys.js.map +1 -1
  370. package/dist/hooks/useHotkeys.mjs +5 -1
  371. package/dist/hooks/useHotkeys.mjs.map +1 -1
  372. package/dist/hooks/useVirtualList/useVirtualList.d.ts.map +1 -1
  373. package/dist/hooks/useVirtualList.js +1 -4
  374. package/dist/hooks/useVirtualList.js.map +1 -1
  375. package/dist/hooks/useVirtualList.mjs +1 -4
  376. package/dist/hooks/useVirtualList.mjs.map +1 -1
  377. package/dist/ui/accordion/animated.js +8 -8
  378. package/dist/ui/accordion/animated.mjs +3 -3
  379. package/dist/ui/accordion.js +10 -10
  380. package/dist/ui/accordion.mjs +3 -3
  381. package/dist/ui/alert/animated.js +3 -3
  382. package/dist/ui/alert/animated.mjs +2 -2
  383. package/dist/ui/alert.js +11 -11
  384. package/dist/ui/alert.mjs +3 -3
  385. package/dist/ui/animated-number.js +4 -4
  386. package/dist/ui/animated-number.mjs +1 -1
  387. package/dist/ui/avatar/animated.js +6 -6
  388. package/dist/ui/avatar/animated.mjs +3 -3
  389. package/dist/ui/avatar.js +10 -10
  390. package/dist/ui/avatar.mjs +3 -3
  391. package/dist/ui/badge/animated.js +3 -3
  392. package/dist/ui/badge/animated.mjs +2 -2
  393. package/dist/ui/badge/variants.d.ts +45 -45
  394. package/dist/ui/badge.js +5 -5
  395. package/dist/ui/badge.mjs +3 -3
  396. package/dist/ui/breadcrumb.js +9 -9
  397. package/dist/ui/breadcrumb.mjs +1 -1
  398. package/dist/ui/buttons/animated.js +43 -43
  399. package/dist/ui/buttons/animated.mjs +41 -41
  400. package/dist/ui/buttons.js +44 -44
  401. package/dist/ui/buttons.mjs +42 -42
  402. package/dist/ui/card/animated.js +8 -8
  403. package/dist/ui/card/animated.mjs +3 -3
  404. package/dist/ui/card.js +13 -13
  405. package/dist/ui/card.mjs +3 -3
  406. package/dist/ui/checkbox/animated.js +5 -5
  407. package/dist/ui/checkbox/animated.mjs +2 -2
  408. package/dist/ui/checkbox.js +9 -9
  409. package/dist/ui/checkbox.mjs +3 -3
  410. package/dist/ui/combobox/combobox-base.d.ts.map +1 -1
  411. package/dist/ui/combobox/variants.d.ts +3 -3
  412. package/dist/ui/combobox.js +22 -20
  413. package/dist/ui/combobox.js.map +1 -1
  414. package/dist/ui/combobox.mjs +6 -4
  415. package/dist/ui/combobox.mjs.map +1 -1
  416. package/dist/ui/command/animated.js +3 -3
  417. package/dist/ui/command/animated.mjs +2 -2
  418. package/dist/ui/command.js +16 -16
  419. package/dist/ui/command.mjs +3 -3
  420. package/dist/ui/context-menu.js +8 -8
  421. package/dist/ui/context-menu.mjs +2 -2
  422. package/dist/ui/copy-button/animated.js +3 -3
  423. package/dist/ui/copy-button/animated.mjs +2 -2
  424. package/dist/ui/copy-button.js +4 -4
  425. package/dist/ui/copy-button.mjs +3 -3
  426. package/dist/ui/divider/animated.js +3 -3
  427. package/dist/ui/divider/animated.mjs +2 -2
  428. package/dist/ui/divider.js +7 -7
  429. package/dist/ui/divider.mjs +3 -3
  430. package/dist/ui/drawer/animated.js +12 -12
  431. package/dist/ui/drawer/animated.mjs +3 -3
  432. package/dist/ui/drawer.js +12 -12
  433. package/dist/ui/drawer.mjs +2 -2
  434. package/dist/ui/dropdown.js +9 -9
  435. package/dist/ui/dropdown.mjs +1 -1
  436. package/dist/ui/dynamic-stepper/variants.d.ts +1 -1
  437. package/dist/ui/dynamic-stepper/variants.d.ts.map +1 -1
  438. package/dist/ui/dynamic-stepper.js +53 -53
  439. package/dist/ui/dynamic-stepper.mjs +42 -42
  440. package/dist/ui/empty-state/animated.js +3 -3
  441. package/dist/ui/empty-state/animated.mjs +2 -2
  442. package/dist/ui/empty-state.js +11 -11
  443. package/dist/ui/empty-state.mjs +3 -3
  444. package/dist/ui/file-upload.js +3 -3
  445. package/dist/ui/file-upload.mjs +1 -1
  446. package/dist/ui/inputs/animated.js +4 -4
  447. package/dist/ui/inputs/animated.mjs +2 -2
  448. package/dist/ui/inputs.js +5 -5
  449. package/dist/ui/inputs.mjs +3 -3
  450. package/dist/ui/kbd/animated.js +3 -3
  451. package/dist/ui/kbd/animated.mjs +2 -2
  452. package/dist/ui/kbd.js +5 -5
  453. package/dist/ui/kbd.mjs +3 -3
  454. package/dist/ui/marquee.js +6 -6
  455. package/dist/ui/marquee.mjs +1 -1
  456. package/dist/ui/modal/animated.js +5 -5
  457. package/dist/ui/modal/animated.mjs +2 -2
  458. package/dist/ui/modal.js +13 -13
  459. package/dist/ui/modal.mjs +3 -3
  460. package/dist/ui/otp-input.js +10 -10
  461. package/dist/ui/otp-input.mjs +1 -1
  462. package/dist/ui/pagination.js +49 -49
  463. package/dist/ui/pagination.mjs +41 -41
  464. package/dist/ui/popover/animated.js +5 -5
  465. package/dist/ui/popover/animated.mjs +2 -2
  466. package/dist/ui/popover.js +8 -8
  467. package/dist/ui/popover.mjs +2 -2
  468. package/dist/ui/progress/animated.js +9 -9
  469. package/dist/ui/progress/animated.mjs +3 -3
  470. package/dist/ui/progress.js +10 -10
  471. package/dist/ui/progress.mjs +3 -3
  472. package/dist/ui/radio-group/animated.js +8 -8
  473. package/dist/ui/radio-group/animated.mjs +2 -2
  474. package/dist/ui/radio-group.js +12 -12
  475. package/dist/ui/radio-group.mjs +3 -3
  476. package/dist/ui/rating.js +11 -11
  477. package/dist/ui/rating.mjs +1 -1
  478. package/dist/ui/scroll-area.js +7 -7
  479. package/dist/ui/scroll-area.mjs +1 -1
  480. package/dist/ui/search/search-suggestion-list.d.ts.map +1 -1
  481. package/dist/ui/search.js +12 -9
  482. package/dist/ui/search.js.map +1 -1
  483. package/dist/ui/search.mjs +11 -8
  484. package/dist/ui/search.mjs.map +1 -1
  485. package/dist/ui/select.js +11 -11
  486. package/dist/ui/select.mjs +1 -1
  487. package/dist/ui/skeleton/animated.js +9 -9
  488. package/dist/ui/skeleton/animated.mjs +2 -2
  489. package/dist/ui/skeleton/variants.d.ts +21 -21
  490. package/dist/ui/skeleton/variants.d.ts.map +1 -1
  491. package/dist/ui/skeleton.js +10 -10
  492. package/dist/ui/skeleton.mjs +2 -2
  493. package/dist/ui/slider.js +9 -9
  494. package/dist/ui/slider.mjs +1 -1
  495. package/dist/ui/spinner/animated.js +5 -5
  496. package/dist/ui/spinner/animated.mjs +1 -1
  497. package/dist/ui/table/animated.js +9 -9
  498. package/dist/ui/table/animated.mjs +3 -3
  499. package/dist/ui/table.js +15 -15
  500. package/dist/ui/table.mjs +2 -2
  501. package/dist/ui/tabs/animated.js +3 -3
  502. package/dist/ui/tabs/animated.mjs +2 -2
  503. package/dist/ui/tabs.js +10 -10
  504. package/dist/ui/tabs.mjs +2 -2
  505. package/dist/ui/timeline/animated.js +12 -12
  506. package/dist/ui/timeline/animated.mjs +3 -3
  507. package/dist/ui/timeline.js +15 -15
  508. package/dist/ui/timeline.mjs +3 -3
  509. package/dist/ui/toast/animated.js +8 -8
  510. package/dist/ui/toast/animated.mjs +2 -2
  511. package/dist/ui/toast.js +13 -13
  512. package/dist/ui/toast.mjs +2 -2
  513. package/dist/ui/toggle/animated.js +5 -5
  514. package/dist/ui/toggle/animated.mjs +2 -2
  515. package/dist/ui/toggle.js +5 -5
  516. package/dist/ui/toggle.mjs +3 -3
  517. package/dist/ui/tooltip/animated.js +4 -4
  518. package/dist/ui/tooltip/animated.mjs +2 -2
  519. package/dist/ui/tooltip.js +8 -8
  520. package/dist/ui/tooltip.mjs +2 -2
  521. package/dist/ui/tree-view/animated.js +3 -3
  522. package/dist/ui/tree-view/animated.mjs +2 -2
  523. package/dist/ui/tree-view.js +6 -6
  524. package/dist/ui/tree-view.mjs +3 -3
  525. package/package.json +2 -2
  526. package/src/design-system/accordion.ts +85 -85
  527. package/src/design-system/alert.ts +46 -46
  528. package/src/design-system/animated-number.ts +44 -44
  529. package/src/design-system/avatar.ts +47 -47
  530. package/src/design-system/badge.ts +50 -50
  531. package/src/design-system/breadcrumb.ts +38 -38
  532. package/src/design-system/button.ts +52 -52
  533. package/src/design-system/card.ts +54 -54
  534. package/src/design-system/checkbox.ts +32 -32
  535. package/src/design-system/combobox.ts +237 -107
  536. package/src/design-system/command.ts +53 -53
  537. package/src/design-system/context-menu.ts +24 -24
  538. package/src/design-system/copy-button.ts +51 -51
  539. package/src/design-system/divider.ts +47 -47
  540. package/src/design-system/drawer.ts +90 -90
  541. package/src/design-system/dropdown.ts +97 -97
  542. package/src/design-system/dynamic-stepper.ts +57 -57
  543. package/src/design-system/empty-state.ts +25 -25
  544. package/src/design-system/file-upload.ts +36 -36
  545. package/src/design-system/inputs.ts +166 -166
  546. package/src/design-system/kbd.ts +52 -52
  547. package/src/design-system/marquee.ts +43 -43
  548. package/src/design-system/modal.ts +90 -90
  549. package/src/design-system/otp-input.ts +38 -38
  550. package/src/design-system/pagination.ts +51 -51
  551. package/src/design-system/popover.ts +44 -44
  552. package/src/design-system/progress.ts +47 -47
  553. package/src/design-system/radio-group.ts +32 -32
  554. package/src/design-system/rating.ts +54 -54
  555. package/src/design-system/scroll-area.ts +30 -30
  556. package/src/design-system/select.ts +132 -132
  557. package/src/design-system/skeleton.ts +67 -67
  558. package/src/design-system/slider.ts +45 -45
  559. package/src/design-system/spinner.ts +43 -43
  560. package/src/design-system/table.ts +108 -108
  561. package/src/design-system/tabs.ts +44 -43
  562. package/src/design-system/timeline.ts +45 -45
  563. package/src/design-system/toast.ts +47 -47
  564. package/src/design-system/toggle.ts +88 -88
  565. package/src/design-system/tokens.ts +102 -0
  566. package/src/design-system/tooltip.ts +44 -44
  567. package/src/design-system/tree-view.ts +92 -92
  568. package/src/hooks/useCookie/useCookie.ts +1 -7
  569. package/src/hooks/useEventListener/useEventListener.test.ts +3 -3
  570. package/src/hooks/useEventListener/useEventListener.ts +2 -1
  571. package/src/hooks/useGeolocation/useGeolocation.test.ts +6 -4
  572. package/src/hooks/useGeolocation/useGeolocation.ts +3 -1
  573. package/src/hooks/useHotkeys/useHotkeys.ts +6 -6
  574. package/src/hooks/useIdleTimeout/useIdleTimeout.test.ts +1 -3
  575. package/src/hooks/useVirtualList/useVirtualList.ts +1 -4
  576. package/src/lib/facade.test.ts +24 -3
  577. package/src/ui/combobox/combobox-base.tsx +5 -3
  578. package/src/ui/combobox/combobox.test.tsx +69 -0
  579. package/src/ui/command/command.test.tsx +15 -0
  580. package/src/ui/popover/popover.test.tsx +15 -0
  581. package/src/ui/search/search-suggestion-list.tsx +11 -6
  582. package/src/ui/skeleton/variants.ts +105 -0
  583. package/src/ui/tabs/tabs.test.tsx +15 -0
  584. package/src/ui/toast/toast.test.tsx +12 -0
  585. package/dist/chunk-22I54GJW.js +0 -69
  586. package/dist/chunk-22I54GJW.js.map +0 -1
  587. package/dist/chunk-3I6XR7KN.js +0 -87
  588. package/dist/chunk-3I6XR7KN.js.map +0 -1
  589. package/dist/chunk-3R6PQUG2.mjs +0 -144
  590. package/dist/chunk-3R6PQUG2.mjs.map +0 -1
  591. package/dist/chunk-3Z6L24ZK.js +0 -83
  592. package/dist/chunk-3Z6L24ZK.js.map +0 -1
  593. package/dist/chunk-44G3U35C.js +0 -181
  594. package/dist/chunk-44G3U35C.js.map +0 -1
  595. package/dist/chunk-456OEGUT.mjs +0 -58
  596. package/dist/chunk-456OEGUT.mjs.map +0 -1
  597. package/dist/chunk-45CGVW7S.js +0 -126
  598. package/dist/chunk-45CGVW7S.js.map +0 -1
  599. package/dist/chunk-4QLWSXXO.mjs +0 -65
  600. package/dist/chunk-4QLWSXXO.mjs.map +0 -1
  601. package/dist/chunk-4U7CDEN7.mjs +0 -57
  602. package/dist/chunk-4U7CDEN7.mjs.map +0 -1
  603. package/dist/chunk-4ZP444GA.mjs +0 -19
  604. package/dist/chunk-4ZP444GA.mjs.map +0 -1
  605. package/dist/chunk-56DECC6D.js +0 -95
  606. package/dist/chunk-56DECC6D.js.map +0 -1
  607. package/dist/chunk-56KZVM5D.mjs +0 -159
  608. package/dist/chunk-56KZVM5D.mjs.map +0 -1
  609. package/dist/chunk-5BSYGFN7.mjs +0 -94
  610. package/dist/chunk-5BSYGFN7.mjs.map +0 -1
  611. package/dist/chunk-5QSYJHWL.mjs +0 -75
  612. package/dist/chunk-5QSYJHWL.mjs.map +0 -1
  613. package/dist/chunk-5R6XJAXQ.mjs +0 -66
  614. package/dist/chunk-5R6XJAXQ.mjs.map +0 -1
  615. package/dist/chunk-5WWD3TZ2.mjs +0 -70
  616. package/dist/chunk-5WWD3TZ2.mjs.map +0 -1
  617. package/dist/chunk-63UE3BR4.mjs +0 -79
  618. package/dist/chunk-63UE3BR4.mjs.map +0 -1
  619. package/dist/chunk-7LFRU6AW.js +0 -254
  620. package/dist/chunk-7LFRU6AW.js.map +0 -1
  621. package/dist/chunk-7M4TUP4I.js +0 -74
  622. package/dist/chunk-7M4TUP4I.js.map +0 -1
  623. package/dist/chunk-AADGUMYW.js +0 -122
  624. package/dist/chunk-AADGUMYW.js.map +0 -1
  625. package/dist/chunk-BTSCPOWZ.mjs +0 -171
  626. package/dist/chunk-BTSCPOWZ.mjs.map +0 -1
  627. package/dist/chunk-BZZVO4GL.mjs.map +0 -1
  628. package/dist/chunk-DWDDIG6R.js +0 -68
  629. package/dist/chunk-DWDDIG6R.js.map +0 -1
  630. package/dist/chunk-E7BPOL74.js +0 -155
  631. package/dist/chunk-E7BPOL74.js.map +0 -1
  632. package/dist/chunk-EP7WTIKH.mjs +0 -81
  633. package/dist/chunk-EP7WTIKH.mjs.map +0 -1
  634. package/dist/chunk-F6V74YMW.js +0 -71
  635. package/dist/chunk-F6V74YMW.js.map +0 -1
  636. package/dist/chunk-FAMHSJTK.js +0 -19
  637. package/dist/chunk-FNNIH7R2.js +0 -70
  638. package/dist/chunk-FNNIH7R2.js.map +0 -1
  639. package/dist/chunk-FWY22BZZ.js +0 -134
  640. package/dist/chunk-FWY22BZZ.js.map +0 -1
  641. package/dist/chunk-FXDHDQTH.js +0 -79
  642. package/dist/chunk-FXDHDQTH.js.map +0 -1
  643. package/dist/chunk-FZET7XQV.js +0 -169
  644. package/dist/chunk-FZET7XQV.js.map +0 -1
  645. package/dist/chunk-GDYSB7SB.js +0 -78
  646. package/dist/chunk-GDYSB7SB.js.map +0 -1
  647. package/dist/chunk-GPM2PRC5.js +0 -61
  648. package/dist/chunk-GPM2PRC5.js.map +0 -1
  649. package/dist/chunk-I42UYWYA.mjs +0 -128
  650. package/dist/chunk-I42UYWYA.mjs.map +0 -1
  651. package/dist/chunk-I55QC57T.js +0 -47
  652. package/dist/chunk-I55QC57T.js.map +0 -1
  653. package/dist/chunk-IKXO5SJ4.js +0 -671
  654. package/dist/chunk-IKXO5SJ4.js.map +0 -1
  655. package/dist/chunk-ISXAUMRW.js +0 -63
  656. package/dist/chunk-ISXAUMRW.js.map +0 -1
  657. package/dist/chunk-IULYVARJ.mjs +0 -107
  658. package/dist/chunk-IULYVARJ.mjs.map +0 -1
  659. package/dist/chunk-IZAQBJKT.mjs +0 -125
  660. package/dist/chunk-IZAQBJKT.mjs.map +0 -1
  661. package/dist/chunk-J6XKTPP5.js +0 -61
  662. package/dist/chunk-J6XKTPP5.js.map +0 -1
  663. package/dist/chunk-JF4BRFOG.mjs +0 -54
  664. package/dist/chunk-JF4BRFOG.mjs.map +0 -1
  665. package/dist/chunk-JI3IEKH6.mjs +0 -64
  666. package/dist/chunk-JI3IEKH6.mjs.map +0 -1
  667. package/dist/chunk-JTMRSRYD.js +0 -63
  668. package/dist/chunk-JTMRSRYD.js.map +0 -1
  669. package/dist/chunk-KXNMW4NV.mjs +0 -61
  670. package/dist/chunk-KXNMW4NV.mjs.map +0 -1
  671. package/dist/chunk-L67EJJFN.js +0 -82
  672. package/dist/chunk-L67EJJFN.js.map +0 -1
  673. package/dist/chunk-L6AS5AVO.js +0 -121
  674. package/dist/chunk-L6AS5AVO.js.map +0 -1
  675. package/dist/chunk-LL2UY6CD.mjs +0 -74
  676. package/dist/chunk-LL2UY6CD.mjs.map +0 -1
  677. package/dist/chunk-LU6VEI4B.js +0 -92
  678. package/dist/chunk-LU6VEI4B.js.map +0 -1
  679. package/dist/chunk-MCYFKM7T.js +0 -62
  680. package/dist/chunk-MCYFKM7T.js.map +0 -1
  681. package/dist/chunk-MUP7DVQR.js +0 -26
  682. package/dist/chunk-MUP7DVQR.js.map +0 -1
  683. package/dist/chunk-N2RUT33F.mjs +0 -68
  684. package/dist/chunk-N2RUT33F.mjs.map +0 -1
  685. package/dist/chunk-NMBSK44H.mjs +0 -44
  686. package/dist/chunk-NMBSK44H.mjs.map +0 -1
  687. package/dist/chunk-NVTV3EQB.js +0 -49
  688. package/dist/chunk-NXNL64Q7.mjs +0 -112
  689. package/dist/chunk-NXNL64Q7.mjs.map +0 -1
  690. package/dist/chunk-OGMIKRLJ.js +0 -78
  691. package/dist/chunk-OGMIKRLJ.js.map +0 -1
  692. package/dist/chunk-OOBA2MDD.mjs +0 -57
  693. package/dist/chunk-OOBA2MDD.mjs.map +0 -1
  694. package/dist/chunk-OQCI2IVL.mjs +0 -112
  695. package/dist/chunk-OQCI2IVL.mjs.map +0 -1
  696. package/dist/chunk-P25NI2HG.js +0 -114
  697. package/dist/chunk-P25NI2HG.js.map +0 -1
  698. package/dist/chunk-P2DQP4J4.js.map +0 -1
  699. package/dist/chunk-P43A2BPU.mjs +0 -82
  700. package/dist/chunk-P43A2BPU.mjs.map +0 -1
  701. package/dist/chunk-P54PZ72L.mjs +0 -65
  702. package/dist/chunk-P54PZ72L.mjs.map +0 -1
  703. package/dist/chunk-PNAFXOZC.mjs +0 -69
  704. package/dist/chunk-PNAFXOZC.mjs.map +0 -1
  705. package/dist/chunk-QTFOUK4H.js +0 -107
  706. package/dist/chunk-QTFOUK4H.js.map +0 -1
  707. package/dist/chunk-QW2ZHKPC.mjs +0 -64
  708. package/dist/chunk-QW2ZHKPC.mjs.map +0 -1
  709. package/dist/chunk-R2256VSD.js +0 -80
  710. package/dist/chunk-R2256VSD.js.map +0 -1
  711. package/dist/chunk-S4OSJ4ZN.js +0 -71
  712. package/dist/chunk-S4OSJ4ZN.js.map +0 -1
  713. package/dist/chunk-SWU5U5BB.mjs +0 -116
  714. package/dist/chunk-SWU5U5BB.mjs.map +0 -1
  715. package/dist/chunk-SYFTQAZG.mjs +0 -58
  716. package/dist/chunk-SYFTQAZG.mjs.map +0 -1
  717. package/dist/chunk-T5SPR27V.mjs +0 -64
  718. package/dist/chunk-T5SPR27V.mjs.map +0 -1
  719. package/dist/chunk-TD4W3AHI.mjs +0 -113
  720. package/dist/chunk-TD4W3AHI.mjs.map +0 -1
  721. package/dist/chunk-TMFXI5FH.mjs +0 -52
  722. package/dist/chunk-TMFXI5FH.mjs.map +0 -1
  723. package/dist/chunk-UJBXDDHN.mjs +0 -73
  724. package/dist/chunk-UJBXDDHN.mjs.map +0 -1
  725. package/dist/chunk-USLP5NY6.js +0 -69
  726. package/dist/chunk-USLP5NY6.js.map +0 -1
  727. package/dist/chunk-UU34Q42Q.js +0 -70
  728. package/dist/chunk-UU34Q42Q.js.map +0 -1
  729. package/dist/chunk-V4U6Q5NL.mjs +0 -68
  730. package/dist/chunk-V4U6Q5NL.mjs.map +0 -1
  731. package/dist/chunk-VQQHVKEU.mjs +0 -652
  732. package/dist/chunk-VQQHVKEU.mjs.map +0 -1
  733. package/dist/chunk-VWHER5XN.js +0 -65
  734. package/dist/chunk-VWHER5XN.js.map +0 -1
  735. package/dist/chunk-WBRTXAKP.js +0 -705
  736. package/dist/chunk-WN7XWKAS.mjs +0 -52
  737. package/dist/chunk-WN7XWKAS.mjs.map +0 -1
  738. package/dist/chunk-X3N4EVF7.mjs +0 -240
  739. package/dist/chunk-X3N4EVF7.mjs.map +0 -1
  740. package/dist/chunk-Y4YQSCNL.js +0 -65
  741. package/dist/chunk-Y4YQSCNL.js.map +0 -1
  742. package/dist/chunk-Y7NRTCAT.js +0 -78
  743. package/dist/chunk-Y7NRTCAT.js.map +0 -1
  744. package/dist/chunk-YDKAE7RM.mjs +0 -62
  745. package/dist/chunk-YDKAE7RM.mjs.map +0 -1
  746. package/dist/chunk-YN4ZS3R2.js +0 -120
  747. package/dist/chunk-YN4ZS3R2.js.map +0 -1
  748. package/dist/chunk-ZVRGLG35.js +0 -144
  749. package/dist/chunk-ZVRGLG35.js.map +0 -1
  750. package/src/ui/accessibility/axe-core.test.tsx +0 -139
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/hooks/useGeolocation/useGeolocation.ts"],"names":["useState","useEffect"],"mappings":"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","file":"useGeolocation.js","sourcesContent":["\"use client\";\n\nimport { useEffect, useState } from \"react\";\n\nexport type GeolocationCoordinatesSnapshot = {\n latitude: number;\n longitude: number;\n accuracy: number;\n altitude: number | null;\n altitudeAccuracy: number | null;\n heading: number | null;\n speed: number | null;\n timestamp: number;\n};\n\nexport type UseGeolocationParams = {\n /** Start requesting the position (default `true`). Set `false` to defer the permission prompt. */\n enabled?: boolean;\n /** Keep watching for position updates instead of a one-shot read (default `true`). */\n watch?: boolean;\n /** `PositionOptions.enableHighAccuracy`. */\n enableHighAccuracy?: boolean;\n /** `PositionOptions.maximumAge` in milliseconds. */\n maximumAge?: number;\n /** `PositionOptions.timeout` in milliseconds. */\n timeout?: number;\n};\n\nexport type UseGeolocationResult = {\n /** Whether `navigator.geolocation` exists in this browser. */\n isSupported: boolean;\n /** True while enabled and no position or error has arrived yet. */\n loading: boolean;\n /** Permission state from the Permissions API (`\"unknown\"` where unsupported or before resolution). */\n permission: PermissionState | \"unknown\";\n /** Latest position snapshot, or `null` before the first fix. */\n position: GeolocationCoordinatesSnapshot | null;\n /** Latest geolocation error, cleared when a new fix succeeds. */\n error: GeolocationPositionError | null;\n};\n\nfunction toSnapshot(position: GeolocationPosition): GeolocationCoordinatesSnapshot {\n const { coords } = position;\n return {\n latitude: coords.latitude,\n longitude: coords.longitude,\n accuracy: coords.accuracy,\n altitude: coords.altitude,\n altitudeAccuracy: coords.altitudeAccuracy,\n heading: coords.heading,\n speed: coords.speed,\n timestamp: position.timestamp,\n };\n}\n\n/**\n * Browser geolocation with loading, error, and Permissions API state.\n *\n * - Requesting the position triggers the browser permission prompt; pass `enabled: false`\n * and flip it from a user gesture to avoid prompting on mount.\n * - `watch: true` (default) uses `watchPosition` for live updates; `false` reads once.\n * - `permission` mirrors `navigator.permissions.query({ name: \"geolocation\" })` including\n * change events, independent of whether a request is active.\n *\n * @param params - {@link UseGeolocationParams}\n * @returns {@link UseGeolocationResult}\n */\nexport function useGeolocation(\n params: UseGeolocationParams = {},\n): UseGeolocationResult {\n const {\n enabled = true,\n watch = true,\n enableHighAccuracy,\n maximumAge,\n timeout,\n } = params;\n\n const isSupported =\n typeof navigator !== \"undefined\" && \"geolocation\" in navigator;\n\n const [permission, setPermission] = useState<PermissionState | \"unknown\">(\n \"unknown\",\n );\n const [position, setPosition] =\n useState<GeolocationCoordinatesSnapshot | null>(null);\n const [error, setError] = useState<GeolocationPositionError | null>(null);\n const [settled, setSettled] = useState(false);\n\n useEffect(() => {\n if (\n typeof navigator === \"undefined\" ||\n navigator.permissions?.query == null\n ) {\n return;\n }\n let active = true;\n let status: PermissionStatus | undefined;\n const onChange = () => {\n if (active && status) {\n setPermission(status.state);\n }\n };\n navigator.permissions\n .query({ name: \"geolocation\" })\n .then((result) => {\n // Guard against the component unmounting before this promise resolves,\n // which would otherwise attach a listener that can never be cleaned up.\n if (!active) {\n return;\n }\n status = result;\n setPermission(result.state);\n result.addEventListener(\"change\", onChange);\n })\n .catch(() => {\n /* permissions API may reject for geolocation in some browsers */\n });\n return () => {\n active = false;\n status?.removeEventListener(\"change\", onChange);\n };\n }, []);\n\n useEffect(() => {\n if (!enabled || !isSupported) {\n return;\n }\n const geolocation = navigator.geolocation;\n let active = true;\n setSettled(false);\n const onSuccess = (next: GeolocationPosition) => {\n if (!active) {\n return;\n }\n setPosition(toSnapshot(next));\n setError(null);\n setSettled(true);\n };\n const onError = (nextError: GeolocationPositionError) => {\n if (!active) {\n return;\n }\n setError(nextError);\n setSettled(true);\n };\n const options: PositionOptions = {\n enableHighAccuracy,\n maximumAge,\n timeout,\n };\n let watchId: number | undefined;\n if (watch) {\n watchId = geolocation.watchPosition(onSuccess, onError, options);\n } else {\n geolocation.getCurrentPosition(onSuccess, onError, options);\n }\n return () => {\n active = false;\n if (watchId !== undefined) {\n geolocation.clearWatch(watchId);\n }\n };\n }, [enableHighAccuracy, enabled, isSupported, maximumAge, timeout, watch]);\n\n return {\n isSupported,\n loading: enabled && isSupported && !settled,\n permission,\n position,\n error,\n };\n}\n"]}
1
+ {"version":3,"sources":["../../src/hooks/useGeolocation/useGeolocation.ts"],"names":["useState","useEffect"],"mappings":"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","file":"useGeolocation.js","sourcesContent":["\"use client\";\n\nimport { useEffect, useState } from \"react\";\n\nexport type GeolocationCoordinatesSnapshot = {\n latitude: number;\n longitude: number;\n accuracy: number;\n altitude: number | null;\n altitudeAccuracy: number | null;\n heading: number | null;\n speed: number | null;\n timestamp: number;\n};\n\nexport type UseGeolocationParams = {\n /** Start requesting the position (default `true`). Set `false` to defer the permission prompt. */\n enabled?: boolean;\n /** Keep watching for position updates instead of a one-shot read (default `true`). */\n watch?: boolean;\n /** `PositionOptions.enableHighAccuracy`. */\n enableHighAccuracy?: boolean;\n /** `PositionOptions.maximumAge` in milliseconds. */\n maximumAge?: number;\n /** `PositionOptions.timeout` in milliseconds. */\n timeout?: number;\n};\n\nexport type UseGeolocationResult = {\n /** Whether `navigator.geolocation` exists in this browser. */\n isSupported: boolean;\n /** True while enabled and no position or error has arrived yet. */\n loading: boolean;\n /** Permission state from the Permissions API (`\"unknown\"` where unsupported or before resolution). */\n permission: PermissionState | \"unknown\";\n /** Latest position snapshot, or `null` before the first fix. */\n position: GeolocationCoordinatesSnapshot | null;\n /** Latest geolocation error, cleared when a new fix succeeds. */\n error: GeolocationPositionError | null;\n};\n\nfunction toSnapshot(\n position: GeolocationPosition,\n): GeolocationCoordinatesSnapshot {\n const { coords } = position;\n return {\n latitude: coords.latitude,\n longitude: coords.longitude,\n accuracy: coords.accuracy,\n altitude: coords.altitude,\n altitudeAccuracy: coords.altitudeAccuracy,\n heading: coords.heading,\n speed: coords.speed,\n timestamp: position.timestamp,\n };\n}\n\n/**\n * Browser geolocation with loading, error, and Permissions API state.\n *\n * - Requesting the position triggers the browser permission prompt; pass `enabled: false`\n * and flip it from a user gesture to avoid prompting on mount.\n * - `watch: true` (default) uses `watchPosition` for live updates; `false` reads once.\n * - `permission` mirrors `navigator.permissions.query({ name: \"geolocation\" })` including\n * change events, independent of whether a request is active.\n *\n * @param params - {@link UseGeolocationParams}\n * @returns {@link UseGeolocationResult}\n */\nexport function useGeolocation(\n params: UseGeolocationParams = {},\n): UseGeolocationResult {\n const {\n enabled = true,\n watch = true,\n enableHighAccuracy,\n maximumAge,\n timeout,\n } = params;\n\n const isSupported =\n typeof navigator !== \"undefined\" && \"geolocation\" in navigator;\n\n const [permission, setPermission] = useState<PermissionState | \"unknown\">(\n \"unknown\",\n );\n const [position, setPosition] =\n useState<GeolocationCoordinatesSnapshot | null>(null);\n const [error, setError] = useState<GeolocationPositionError | null>(null);\n const [settled, setSettled] = useState(false);\n\n useEffect(() => {\n if (\n typeof navigator === \"undefined\" ||\n navigator.permissions?.query == null\n ) {\n return;\n }\n let active = true;\n let status: PermissionStatus | undefined;\n const onChange = () => {\n if (active && status) {\n setPermission(status.state);\n }\n };\n navigator.permissions\n .query({ name: \"geolocation\" })\n .then((result) => {\n // Guard against the component unmounting before this promise resolves,\n // which would otherwise attach a listener that can never be cleaned up.\n if (!active) {\n return;\n }\n status = result;\n setPermission(result.state);\n result.addEventListener(\"change\", onChange);\n })\n .catch(() => {\n /* permissions API may reject for geolocation in some browsers */\n });\n return () => {\n active = false;\n status?.removeEventListener(\"change\", onChange);\n };\n }, []);\n\n useEffect(() => {\n if (!enabled || !isSupported) {\n return;\n }\n const geolocation = navigator.geolocation;\n let active = true;\n setSettled(false);\n const onSuccess = (next: GeolocationPosition) => {\n if (!active) {\n return;\n }\n setPosition(toSnapshot(next));\n setError(null);\n setSettled(true);\n };\n const onError = (nextError: GeolocationPositionError) => {\n if (!active) {\n return;\n }\n setError(nextError);\n setSettled(true);\n };\n const options: PositionOptions = {\n enableHighAccuracy,\n maximumAge,\n timeout,\n };\n let watchId: number | undefined;\n if (watch) {\n watchId = geolocation.watchPosition(onSuccess, onError, options);\n } else {\n geolocation.getCurrentPosition(onSuccess, onError, options);\n }\n return () => {\n active = false;\n if (watchId !== undefined) {\n geolocation.clearWatch(watchId);\n }\n };\n }, [enableHighAccuracy, enabled, isSupported, maximumAge, timeout, watch]);\n\n return {\n isSupported,\n loading: enabled && isSupported && !settled,\n permission,\n position,\n error,\n };\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/hooks/useGeolocation/useGeolocation.ts"],"names":[],"mappings":"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","file":"useGeolocation.mjs","sourcesContent":["\"use client\";\n\nimport { useEffect, useState } from \"react\";\n\nexport type GeolocationCoordinatesSnapshot = {\n latitude: number;\n longitude: number;\n accuracy: number;\n altitude: number | null;\n altitudeAccuracy: number | null;\n heading: number | null;\n speed: number | null;\n timestamp: number;\n};\n\nexport type UseGeolocationParams = {\n /** Start requesting the position (default `true`). Set `false` to defer the permission prompt. */\n enabled?: boolean;\n /** Keep watching for position updates instead of a one-shot read (default `true`). */\n watch?: boolean;\n /** `PositionOptions.enableHighAccuracy`. */\n enableHighAccuracy?: boolean;\n /** `PositionOptions.maximumAge` in milliseconds. */\n maximumAge?: number;\n /** `PositionOptions.timeout` in milliseconds. */\n timeout?: number;\n};\n\nexport type UseGeolocationResult = {\n /** Whether `navigator.geolocation` exists in this browser. */\n isSupported: boolean;\n /** True while enabled and no position or error has arrived yet. */\n loading: boolean;\n /** Permission state from the Permissions API (`\"unknown\"` where unsupported or before resolution). */\n permission: PermissionState | \"unknown\";\n /** Latest position snapshot, or `null` before the first fix. */\n position: GeolocationCoordinatesSnapshot | null;\n /** Latest geolocation error, cleared when a new fix succeeds. */\n error: GeolocationPositionError | null;\n};\n\nfunction toSnapshot(position: GeolocationPosition): GeolocationCoordinatesSnapshot {\n const { coords } = position;\n return {\n latitude: coords.latitude,\n longitude: coords.longitude,\n accuracy: coords.accuracy,\n altitude: coords.altitude,\n altitudeAccuracy: coords.altitudeAccuracy,\n heading: coords.heading,\n speed: coords.speed,\n timestamp: position.timestamp,\n };\n}\n\n/**\n * Browser geolocation with loading, error, and Permissions API state.\n *\n * - Requesting the position triggers the browser permission prompt; pass `enabled: false`\n * and flip it from a user gesture to avoid prompting on mount.\n * - `watch: true` (default) uses `watchPosition` for live updates; `false` reads once.\n * - `permission` mirrors `navigator.permissions.query({ name: \"geolocation\" })` including\n * change events, independent of whether a request is active.\n *\n * @param params - {@link UseGeolocationParams}\n * @returns {@link UseGeolocationResult}\n */\nexport function useGeolocation(\n params: UseGeolocationParams = {},\n): UseGeolocationResult {\n const {\n enabled = true,\n watch = true,\n enableHighAccuracy,\n maximumAge,\n timeout,\n } = params;\n\n const isSupported =\n typeof navigator !== \"undefined\" && \"geolocation\" in navigator;\n\n const [permission, setPermission] = useState<PermissionState | \"unknown\">(\n \"unknown\",\n );\n const [position, setPosition] =\n useState<GeolocationCoordinatesSnapshot | null>(null);\n const [error, setError] = useState<GeolocationPositionError | null>(null);\n const [settled, setSettled] = useState(false);\n\n useEffect(() => {\n if (\n typeof navigator === \"undefined\" ||\n navigator.permissions?.query == null\n ) {\n return;\n }\n let active = true;\n let status: PermissionStatus | undefined;\n const onChange = () => {\n if (active && status) {\n setPermission(status.state);\n }\n };\n navigator.permissions\n .query({ name: \"geolocation\" })\n .then((result) => {\n // Guard against the component unmounting before this promise resolves,\n // which would otherwise attach a listener that can never be cleaned up.\n if (!active) {\n return;\n }\n status = result;\n setPermission(result.state);\n result.addEventListener(\"change\", onChange);\n })\n .catch(() => {\n /* permissions API may reject for geolocation in some browsers */\n });\n return () => {\n active = false;\n status?.removeEventListener(\"change\", onChange);\n };\n }, []);\n\n useEffect(() => {\n if (!enabled || !isSupported) {\n return;\n }\n const geolocation = navigator.geolocation;\n let active = true;\n setSettled(false);\n const onSuccess = (next: GeolocationPosition) => {\n if (!active) {\n return;\n }\n setPosition(toSnapshot(next));\n setError(null);\n setSettled(true);\n };\n const onError = (nextError: GeolocationPositionError) => {\n if (!active) {\n return;\n }\n setError(nextError);\n setSettled(true);\n };\n const options: PositionOptions = {\n enableHighAccuracy,\n maximumAge,\n timeout,\n };\n let watchId: number | undefined;\n if (watch) {\n watchId = geolocation.watchPosition(onSuccess, onError, options);\n } else {\n geolocation.getCurrentPosition(onSuccess, onError, options);\n }\n return () => {\n active = false;\n if (watchId !== undefined) {\n geolocation.clearWatch(watchId);\n }\n };\n }, [enableHighAccuracy, enabled, isSupported, maximumAge, timeout, watch]);\n\n return {\n isSupported,\n loading: enabled && isSupported && !settled,\n permission,\n position,\n error,\n };\n}\n"]}
1
+ {"version":3,"sources":["../../src/hooks/useGeolocation/useGeolocation.ts"],"names":[],"mappings":"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","file":"useGeolocation.mjs","sourcesContent":["\"use client\";\n\nimport { useEffect, useState } from \"react\";\n\nexport type GeolocationCoordinatesSnapshot = {\n latitude: number;\n longitude: number;\n accuracy: number;\n altitude: number | null;\n altitudeAccuracy: number | null;\n heading: number | null;\n speed: number | null;\n timestamp: number;\n};\n\nexport type UseGeolocationParams = {\n /** Start requesting the position (default `true`). Set `false` to defer the permission prompt. */\n enabled?: boolean;\n /** Keep watching for position updates instead of a one-shot read (default `true`). */\n watch?: boolean;\n /** `PositionOptions.enableHighAccuracy`. */\n enableHighAccuracy?: boolean;\n /** `PositionOptions.maximumAge` in milliseconds. */\n maximumAge?: number;\n /** `PositionOptions.timeout` in milliseconds. */\n timeout?: number;\n};\n\nexport type UseGeolocationResult = {\n /** Whether `navigator.geolocation` exists in this browser. */\n isSupported: boolean;\n /** True while enabled and no position or error has arrived yet. */\n loading: boolean;\n /** Permission state from the Permissions API (`\"unknown\"` where unsupported or before resolution). */\n permission: PermissionState | \"unknown\";\n /** Latest position snapshot, or `null` before the first fix. */\n position: GeolocationCoordinatesSnapshot | null;\n /** Latest geolocation error, cleared when a new fix succeeds. */\n error: GeolocationPositionError | null;\n};\n\nfunction toSnapshot(\n position: GeolocationPosition,\n): GeolocationCoordinatesSnapshot {\n const { coords } = position;\n return {\n latitude: coords.latitude,\n longitude: coords.longitude,\n accuracy: coords.accuracy,\n altitude: coords.altitude,\n altitudeAccuracy: coords.altitudeAccuracy,\n heading: coords.heading,\n speed: coords.speed,\n timestamp: position.timestamp,\n };\n}\n\n/**\n * Browser geolocation with loading, error, and Permissions API state.\n *\n * - Requesting the position triggers the browser permission prompt; pass `enabled: false`\n * and flip it from a user gesture to avoid prompting on mount.\n * - `watch: true` (default) uses `watchPosition` for live updates; `false` reads once.\n * - `permission` mirrors `navigator.permissions.query({ name: \"geolocation\" })` including\n * change events, independent of whether a request is active.\n *\n * @param params - {@link UseGeolocationParams}\n * @returns {@link UseGeolocationResult}\n */\nexport function useGeolocation(\n params: UseGeolocationParams = {},\n): UseGeolocationResult {\n const {\n enabled = true,\n watch = true,\n enableHighAccuracy,\n maximumAge,\n timeout,\n } = params;\n\n const isSupported =\n typeof navigator !== \"undefined\" && \"geolocation\" in navigator;\n\n const [permission, setPermission] = useState<PermissionState | \"unknown\">(\n \"unknown\",\n );\n const [position, setPosition] =\n useState<GeolocationCoordinatesSnapshot | null>(null);\n const [error, setError] = useState<GeolocationPositionError | null>(null);\n const [settled, setSettled] = useState(false);\n\n useEffect(() => {\n if (\n typeof navigator === \"undefined\" ||\n navigator.permissions?.query == null\n ) {\n return;\n }\n let active = true;\n let status: PermissionStatus | undefined;\n const onChange = () => {\n if (active && status) {\n setPermission(status.state);\n }\n };\n navigator.permissions\n .query({ name: \"geolocation\" })\n .then((result) => {\n // Guard against the component unmounting before this promise resolves,\n // which would otherwise attach a listener that can never be cleaned up.\n if (!active) {\n return;\n }\n status = result;\n setPermission(result.state);\n result.addEventListener(\"change\", onChange);\n })\n .catch(() => {\n /* permissions API may reject for geolocation in some browsers */\n });\n return () => {\n active = false;\n status?.removeEventListener(\"change\", onChange);\n };\n }, []);\n\n useEffect(() => {\n if (!enabled || !isSupported) {\n return;\n }\n const geolocation = navigator.geolocation;\n let active = true;\n setSettled(false);\n const onSuccess = (next: GeolocationPosition) => {\n if (!active) {\n return;\n }\n setPosition(toSnapshot(next));\n setError(null);\n setSettled(true);\n };\n const onError = (nextError: GeolocationPositionError) => {\n if (!active) {\n return;\n }\n setError(nextError);\n setSettled(true);\n };\n const options: PositionOptions = {\n enableHighAccuracy,\n maximumAge,\n timeout,\n };\n let watchId: number | undefined;\n if (watch) {\n watchId = geolocation.watchPosition(onSuccess, onError, options);\n } else {\n geolocation.getCurrentPosition(onSuccess, onError, options);\n }\n return () => {\n active = false;\n if (watchId !== undefined) {\n geolocation.clearWatch(watchId);\n }\n };\n }, [enableHighAccuracy, enabled, isSupported, maximumAge, timeout, watch]);\n\n return {\n isSupported,\n loading: enabled && isSupported && !settled,\n permission,\n position,\n error,\n };\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"useHotkeys.d.ts","sourceRoot":"","sources":["../../../src/hooks/useHotkeys/useHotkeys.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,aAAa,GAAG,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC;AAE3D,MAAM,MAAM,iBAAiB,GAAG;IAC9B,gEAAgE;IAChE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,iEAAiE;IACjE,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,iGAAiG;IACjG,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB,CAAC;AAoEF;;;;;;;;;;;;GAYG;AACH,wBAAgB,UAAU,CACxB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,EACvC,OAAO,GAAE,iBAAsB,GAC9B,IAAI,CAgCN"}
1
+ {"version":3,"file":"useHotkeys.d.ts","sourceRoot":"","sources":["../../../src/hooks/useHotkeys/useHotkeys.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,aAAa,GAAG,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC;AAE3D,MAAM,MAAM,iBAAiB,GAAG;IAC9B,gEAAgE;IAChE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,iEAAiE;IACjE,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,iGAAiG;IACjG,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB,CAAC;AAiEF;;;;;;;;;;;;GAYG;AACH,wBAAgB,UAAU,CACxB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,EACvC,OAAO,GAAE,iBAAsB,GAC9B,IAAI,CAmCN"}
@@ -51,7 +51,11 @@ function isEditableTarget(target) {
51
51
  return target.tagName === "INPUT" || target.tagName === "TEXTAREA" || target.tagName === "SELECT" || target.isContentEditable;
52
52
  }
53
53
  function useHotkeys(bindings, options = {}) {
54
- const { enabled = true, preventDefault = true, allowInInputs = false } = options;
54
+ const {
55
+ enabled = true,
56
+ preventDefault = true,
57
+ allowInInputs = false
58
+ } = options;
55
59
  const bindingsRef = react.useRef(bindings);
56
60
  react.useEffect(() => {
57
61
  bindingsRef.current = bindings;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/hooks/useHotkeys/useHotkeys.ts"],"names":["useRef","useEffect"],"mappings":"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","file":"useHotkeys.js","sourcesContent":["\"use client\";\n\nimport { useEffect, useRef } from \"react\";\n\nexport type HotkeyHandler = (event: KeyboardEvent) => void;\n\nexport type UseHotkeysOptions = {\n /** Disable all bindings without unmounting (default `true`). */\n enabled?: boolean;\n /** Call `event.preventDefault()` on a match (default `true`). */\n preventDefault?: boolean;\n /** Fire even when typing in inputs, textareas, selects, or contentEditable (default `false`). */\n allowInInputs?: boolean;\n};\n\ntype ParsedHotkey = {\n key: string;\n ctrl: boolean;\n meta: boolean;\n alt: boolean;\n shift: boolean;\n mod: boolean;\n};\n\nfunction parseHotkey(combo: string): ParsedHotkey {\n const parsed: ParsedHotkey = {\n key: \"\",\n ctrl: false,\n meta: false,\n alt: false,\n shift: false,\n mod: false,\n };\n for (const raw of combo.split(\"+\")) {\n const token = raw.trim().toLowerCase();\n if (token === \"ctrl\" || token === \"control\") {\n parsed.ctrl = true;\n } else if (token === \"meta\" || token === \"cmd\" || token === \"command\") {\n parsed.meta = true;\n } else if (token === \"alt\" || token === \"option\") {\n parsed.alt = true;\n } else if (token === \"shift\") {\n parsed.shift = true;\n } else if (token === \"mod\") {\n parsed.mod = true;\n } else {\n parsed.key = token === \"space\" ? \" \" : token;\n }\n }\n return parsed;\n}\n\nfunction matchesHotkey(event: KeyboardEvent, hotkey: ParsedHotkey): boolean {\n if (hotkey.key !== event.key.toLowerCase()) {\n return false;\n }\n if (hotkey.mod) {\n if (!event.ctrlKey && !event.metaKey) {\n return false;\n }\n } else if (\n hotkey.ctrl !== event.ctrlKey ||\n hotkey.meta !== event.metaKey\n ) {\n return false;\n }\n return hotkey.alt === event.altKey && hotkey.shift === event.shiftKey;\n}\n\nfunction isEditableTarget(target: EventTarget | null): boolean {\n if (!(target instanceof HTMLElement)) {\n return false;\n }\n return (\n target.tagName === \"INPUT\" ||\n target.tagName === \"TEXTAREA\" ||\n target.tagName === \"SELECT\" ||\n target.isContentEditable\n );\n}\n\n/**\n * Binds keyboard shortcut combos (e.g. `\"mod+k\"`, `\"ctrl+shift+p\"`, `\"escape\"`) to handlers on `window`.\n *\n * - Combo syntax: modifier tokens (`ctrl`/`control`, `meta`/`cmd`/`command`, `alt`/`option`, `shift`,\n * `mod`) joined with `+` around a final key matched against `event.key` (use `space` for the spacebar).\n * - `mod` matches Cmd on macOS *or* Ctrl elsewhere (it accepts either modifier).\n * - Bindings are read from a ref on every keydown, so inline objects and closures stay fresh\n * without re-subscribing.\n * - Shortcuts are suppressed while typing in form fields or contentEditable unless `allowInInputs`.\n *\n * @param bindings - Map of combo string → handler. The first matching combo wins per event.\n * @param options - {@link UseHotkeysOptions}\n */\nexport function useHotkeys(\n bindings: Record<string, HotkeyHandler>,\n options: UseHotkeysOptions = {},\n): void {\n const { enabled = true, preventDefault = true, allowInInputs = false } =\n options;\n const bindingsRef = useRef(bindings);\n\n useEffect(() => {\n bindingsRef.current = bindings;\n }, [bindings]);\n\n useEffect(() => {\n if (!enabled) {\n return;\n }\n const onKeyDown = (event: KeyboardEvent) => {\n if (!allowInInputs && isEditableTarget(event.target)) {\n return;\n }\n for (const [combo, handler] of Object.entries(bindingsRef.current)) {\n if (matchesHotkey(event, parseHotkey(combo))) {\n if (preventDefault) {\n event.preventDefault();\n }\n handler(event);\n return;\n }\n }\n };\n window.addEventListener(\"keydown\", onKeyDown);\n return () => {\n window.removeEventListener(\"keydown\", onKeyDown);\n };\n }, [allowInInputs, enabled, preventDefault]);\n}\n"]}
1
+ {"version":3,"sources":["../../src/hooks/useHotkeys/useHotkeys.ts"],"names":["useRef","useEffect"],"mappings":"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","file":"useHotkeys.js","sourcesContent":["\"use client\";\n\nimport { useEffect, useRef } from \"react\";\n\nexport type HotkeyHandler = (event: KeyboardEvent) => void;\n\nexport type UseHotkeysOptions = {\n /** Disable all bindings without unmounting (default `true`). */\n enabled?: boolean;\n /** Call `event.preventDefault()` on a match (default `true`). */\n preventDefault?: boolean;\n /** Fire even when typing in inputs, textareas, selects, or contentEditable (default `false`). */\n allowInInputs?: boolean;\n};\n\ntype ParsedHotkey = {\n key: string;\n ctrl: boolean;\n meta: boolean;\n alt: boolean;\n shift: boolean;\n mod: boolean;\n};\n\nfunction parseHotkey(combo: string): ParsedHotkey {\n const parsed: ParsedHotkey = {\n key: \"\",\n ctrl: false,\n meta: false,\n alt: false,\n shift: false,\n mod: false,\n };\n for (const raw of combo.split(\"+\")) {\n const token = raw.trim().toLowerCase();\n if (token === \"ctrl\" || token === \"control\") {\n parsed.ctrl = true;\n } else if (token === \"meta\" || token === \"cmd\" || token === \"command\") {\n parsed.meta = true;\n } else if (token === \"alt\" || token === \"option\") {\n parsed.alt = true;\n } else if (token === \"shift\") {\n parsed.shift = true;\n } else if (token === \"mod\") {\n parsed.mod = true;\n } else {\n parsed.key = token === \"space\" ? \" \" : token;\n }\n }\n return parsed;\n}\n\nfunction matchesHotkey(event: KeyboardEvent, hotkey: ParsedHotkey): boolean {\n if (hotkey.key !== event.key.toLowerCase()) {\n return false;\n }\n if (hotkey.mod) {\n if (!event.ctrlKey && !event.metaKey) {\n return false;\n }\n } else if (hotkey.ctrl !== event.ctrlKey || hotkey.meta !== event.metaKey) {\n return false;\n }\n return hotkey.alt === event.altKey && hotkey.shift === event.shiftKey;\n}\n\nfunction isEditableTarget(target: EventTarget | null): boolean {\n if (!(target instanceof HTMLElement)) {\n return false;\n }\n return (\n target.tagName === \"INPUT\" ||\n target.tagName === \"TEXTAREA\" ||\n target.tagName === \"SELECT\" ||\n target.isContentEditable\n );\n}\n\n/**\n * Binds keyboard shortcut combos (e.g. `\"mod+k\"`, `\"ctrl+shift+p\"`, `\"escape\"`) to handlers on `window`.\n *\n * - Combo syntax: modifier tokens (`ctrl`/`control`, `meta`/`cmd`/`command`, `alt`/`option`, `shift`,\n * `mod`) joined with `+` around a final key matched against `event.key` (use `space` for the spacebar).\n * - `mod` matches Cmd on macOS *or* Ctrl elsewhere (it accepts either modifier).\n * - Bindings are read from a ref on every keydown, so inline objects and closures stay fresh\n * without re-subscribing.\n * - Shortcuts are suppressed while typing in form fields or contentEditable unless `allowInInputs`.\n *\n * @param bindings - Map of combo string → handler. The first matching combo wins per event.\n * @param options - {@link UseHotkeysOptions}\n */\nexport function useHotkeys(\n bindings: Record<string, HotkeyHandler>,\n options: UseHotkeysOptions = {},\n): void {\n const {\n enabled = true,\n preventDefault = true,\n allowInInputs = false,\n } = options;\n const bindingsRef = useRef(bindings);\n\n useEffect(() => {\n bindingsRef.current = bindings;\n }, [bindings]);\n\n useEffect(() => {\n if (!enabled) {\n return;\n }\n const onKeyDown = (event: KeyboardEvent) => {\n if (!allowInInputs && isEditableTarget(event.target)) {\n return;\n }\n for (const [combo, handler] of Object.entries(bindingsRef.current)) {\n if (matchesHotkey(event, parseHotkey(combo))) {\n if (preventDefault) {\n event.preventDefault();\n }\n handler(event);\n return;\n }\n }\n };\n window.addEventListener(\"keydown\", onKeyDown);\n return () => {\n window.removeEventListener(\"keydown\", onKeyDown);\n };\n }, [allowInInputs, enabled, preventDefault]);\n}\n"]}
@@ -49,7 +49,11 @@ function isEditableTarget(target) {
49
49
  return target.tagName === "INPUT" || target.tagName === "TEXTAREA" || target.tagName === "SELECT" || target.isContentEditable;
50
50
  }
51
51
  function useHotkeys(bindings, options = {}) {
52
- const { enabled = true, preventDefault = true, allowInInputs = false } = options;
52
+ const {
53
+ enabled = true,
54
+ preventDefault = true,
55
+ allowInInputs = false
56
+ } = options;
53
57
  const bindingsRef = useRef(bindings);
54
58
  useEffect(() => {
55
59
  bindingsRef.current = bindings;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/hooks/useHotkeys/useHotkeys.ts"],"names":[],"mappings":"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","file":"useHotkeys.mjs","sourcesContent":["\"use client\";\n\nimport { useEffect, useRef } from \"react\";\n\nexport type HotkeyHandler = (event: KeyboardEvent) => void;\n\nexport type UseHotkeysOptions = {\n /** Disable all bindings without unmounting (default `true`). */\n enabled?: boolean;\n /** Call `event.preventDefault()` on a match (default `true`). */\n preventDefault?: boolean;\n /** Fire even when typing in inputs, textareas, selects, or contentEditable (default `false`). */\n allowInInputs?: boolean;\n};\n\ntype ParsedHotkey = {\n key: string;\n ctrl: boolean;\n meta: boolean;\n alt: boolean;\n shift: boolean;\n mod: boolean;\n};\n\nfunction parseHotkey(combo: string): ParsedHotkey {\n const parsed: ParsedHotkey = {\n key: \"\",\n ctrl: false,\n meta: false,\n alt: false,\n shift: false,\n mod: false,\n };\n for (const raw of combo.split(\"+\")) {\n const token = raw.trim().toLowerCase();\n if (token === \"ctrl\" || token === \"control\") {\n parsed.ctrl = true;\n } else if (token === \"meta\" || token === \"cmd\" || token === \"command\") {\n parsed.meta = true;\n } else if (token === \"alt\" || token === \"option\") {\n parsed.alt = true;\n } else if (token === \"shift\") {\n parsed.shift = true;\n } else if (token === \"mod\") {\n parsed.mod = true;\n } else {\n parsed.key = token === \"space\" ? \" \" : token;\n }\n }\n return parsed;\n}\n\nfunction matchesHotkey(event: KeyboardEvent, hotkey: ParsedHotkey): boolean {\n if (hotkey.key !== event.key.toLowerCase()) {\n return false;\n }\n if (hotkey.mod) {\n if (!event.ctrlKey && !event.metaKey) {\n return false;\n }\n } else if (\n hotkey.ctrl !== event.ctrlKey ||\n hotkey.meta !== event.metaKey\n ) {\n return false;\n }\n return hotkey.alt === event.altKey && hotkey.shift === event.shiftKey;\n}\n\nfunction isEditableTarget(target: EventTarget | null): boolean {\n if (!(target instanceof HTMLElement)) {\n return false;\n }\n return (\n target.tagName === \"INPUT\" ||\n target.tagName === \"TEXTAREA\" ||\n target.tagName === \"SELECT\" ||\n target.isContentEditable\n );\n}\n\n/**\n * Binds keyboard shortcut combos (e.g. `\"mod+k\"`, `\"ctrl+shift+p\"`, `\"escape\"`) to handlers on `window`.\n *\n * - Combo syntax: modifier tokens (`ctrl`/`control`, `meta`/`cmd`/`command`, `alt`/`option`, `shift`,\n * `mod`) joined with `+` around a final key matched against `event.key` (use `space` for the spacebar).\n * - `mod` matches Cmd on macOS *or* Ctrl elsewhere (it accepts either modifier).\n * - Bindings are read from a ref on every keydown, so inline objects and closures stay fresh\n * without re-subscribing.\n * - Shortcuts are suppressed while typing in form fields or contentEditable unless `allowInInputs`.\n *\n * @param bindings - Map of combo string → handler. The first matching combo wins per event.\n * @param options - {@link UseHotkeysOptions}\n */\nexport function useHotkeys(\n bindings: Record<string, HotkeyHandler>,\n options: UseHotkeysOptions = {},\n): void {\n const { enabled = true, preventDefault = true, allowInInputs = false } =\n options;\n const bindingsRef = useRef(bindings);\n\n useEffect(() => {\n bindingsRef.current = bindings;\n }, [bindings]);\n\n useEffect(() => {\n if (!enabled) {\n return;\n }\n const onKeyDown = (event: KeyboardEvent) => {\n if (!allowInInputs && isEditableTarget(event.target)) {\n return;\n }\n for (const [combo, handler] of Object.entries(bindingsRef.current)) {\n if (matchesHotkey(event, parseHotkey(combo))) {\n if (preventDefault) {\n event.preventDefault();\n }\n handler(event);\n return;\n }\n }\n };\n window.addEventListener(\"keydown\", onKeyDown);\n return () => {\n window.removeEventListener(\"keydown\", onKeyDown);\n };\n }, [allowInInputs, enabled, preventDefault]);\n}\n"]}
1
+ {"version":3,"sources":["../../src/hooks/useHotkeys/useHotkeys.ts"],"names":[],"mappings":"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","file":"useHotkeys.mjs","sourcesContent":["\"use client\";\n\nimport { useEffect, useRef } from \"react\";\n\nexport type HotkeyHandler = (event: KeyboardEvent) => void;\n\nexport type UseHotkeysOptions = {\n /** Disable all bindings without unmounting (default `true`). */\n enabled?: boolean;\n /** Call `event.preventDefault()` on a match (default `true`). */\n preventDefault?: boolean;\n /** Fire even when typing in inputs, textareas, selects, or contentEditable (default `false`). */\n allowInInputs?: boolean;\n};\n\ntype ParsedHotkey = {\n key: string;\n ctrl: boolean;\n meta: boolean;\n alt: boolean;\n shift: boolean;\n mod: boolean;\n};\n\nfunction parseHotkey(combo: string): ParsedHotkey {\n const parsed: ParsedHotkey = {\n key: \"\",\n ctrl: false,\n meta: false,\n alt: false,\n shift: false,\n mod: false,\n };\n for (const raw of combo.split(\"+\")) {\n const token = raw.trim().toLowerCase();\n if (token === \"ctrl\" || token === \"control\") {\n parsed.ctrl = true;\n } else if (token === \"meta\" || token === \"cmd\" || token === \"command\") {\n parsed.meta = true;\n } else if (token === \"alt\" || token === \"option\") {\n parsed.alt = true;\n } else if (token === \"shift\") {\n parsed.shift = true;\n } else if (token === \"mod\") {\n parsed.mod = true;\n } else {\n parsed.key = token === \"space\" ? \" \" : token;\n }\n }\n return parsed;\n}\n\nfunction matchesHotkey(event: KeyboardEvent, hotkey: ParsedHotkey): boolean {\n if (hotkey.key !== event.key.toLowerCase()) {\n return false;\n }\n if (hotkey.mod) {\n if (!event.ctrlKey && !event.metaKey) {\n return false;\n }\n } else if (hotkey.ctrl !== event.ctrlKey || hotkey.meta !== event.metaKey) {\n return false;\n }\n return hotkey.alt === event.altKey && hotkey.shift === event.shiftKey;\n}\n\nfunction isEditableTarget(target: EventTarget | null): boolean {\n if (!(target instanceof HTMLElement)) {\n return false;\n }\n return (\n target.tagName === \"INPUT\" ||\n target.tagName === \"TEXTAREA\" ||\n target.tagName === \"SELECT\" ||\n target.isContentEditable\n );\n}\n\n/**\n * Binds keyboard shortcut combos (e.g. `\"mod+k\"`, `\"ctrl+shift+p\"`, `\"escape\"`) to handlers on `window`.\n *\n * - Combo syntax: modifier tokens (`ctrl`/`control`, `meta`/`cmd`/`command`, `alt`/`option`, `shift`,\n * `mod`) joined with `+` around a final key matched against `event.key` (use `space` for the spacebar).\n * - `mod` matches Cmd on macOS *or* Ctrl elsewhere (it accepts either modifier).\n * - Bindings are read from a ref on every keydown, so inline objects and closures stay fresh\n * without re-subscribing.\n * - Shortcuts are suppressed while typing in form fields or contentEditable unless `allowInInputs`.\n *\n * @param bindings - Map of combo string → handler. The first matching combo wins per event.\n * @param options - {@link UseHotkeysOptions}\n */\nexport function useHotkeys(\n bindings: Record<string, HotkeyHandler>,\n options: UseHotkeysOptions = {},\n): void {\n const {\n enabled = true,\n preventDefault = true,\n allowInInputs = false,\n } = options;\n const bindingsRef = useRef(bindings);\n\n useEffect(() => {\n bindingsRef.current = bindings;\n }, [bindings]);\n\n useEffect(() => {\n if (!enabled) {\n return;\n }\n const onKeyDown = (event: KeyboardEvent) => {\n if (!allowInInputs && isEditableTarget(event.target)) {\n return;\n }\n for (const [combo, handler] of Object.entries(bindingsRef.current)) {\n if (matchesHotkey(event, parseHotkey(combo))) {\n if (preventDefault) {\n event.preventDefault();\n }\n handler(event);\n return;\n }\n }\n };\n window.addEventListener(\"keydown\", onKeyDown);\n return () => {\n window.removeEventListener(\"keydown\", onKeyDown);\n };\n }, [allowInInputs, enabled, preventDefault]);\n}\n"]}
@@ -1 +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,CAuF7C"}
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"}
@@ -42,10 +42,7 @@ function useVirtualList({
42
42
  const safeItemHeight = Math.max(1, itemHeight);
43
43
  const safeOverscan = Math.max(0, Math.floor(overscan));
44
44
  const totalHeight = safeItemCount * safeItemHeight;
45
- const startIndex = safeItemCount === 0 ? 0 : Math.max(
46
- 0,
47
- Math.floor(scrollTop / safeItemHeight) - safeOverscan
48
- );
45
+ const startIndex = safeItemCount === 0 ? 0 : Math.max(0, Math.floor(scrollTop / safeItemHeight) - safeOverscan);
49
46
  const endIndex = safeItemCount === 0 ? -1 : Math.min(
50
47
  safeItemCount - 1,
51
48
  Math.ceil((scrollTop + viewportHeight) / safeItemHeight) - 1 + safeOverscan
@@ -1 +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(\n 0,\n Math.floor(scrollTop / safeItemHeight) - safeOverscan,\n );\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
+ {"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"]}
@@ -40,10 +40,7 @@ function useVirtualList({
40
40
  const safeItemHeight = Math.max(1, itemHeight);
41
41
  const safeOverscan = Math.max(0, Math.floor(overscan));
42
42
  const totalHeight = safeItemCount * safeItemHeight;
43
- const startIndex = safeItemCount === 0 ? 0 : Math.max(
44
- 0,
45
- Math.floor(scrollTop / safeItemHeight) - safeOverscan
46
- );
43
+ const startIndex = safeItemCount === 0 ? 0 : Math.max(0, Math.floor(scrollTop / safeItemHeight) - safeOverscan);
47
44
  const endIndex = safeItemCount === 0 ? -1 : Math.min(
48
45
  safeItemCount - 1,
49
46
  Math.ceil((scrollTop + viewportHeight) / safeItemHeight) - 1 + safeOverscan
@@ -1 +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(\n 0,\n Math.floor(scrollTop / safeItemHeight) - safeOverscan,\n );\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
+ {"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,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';
@@ -1,8 +1,8 @@
1
1
  "use client";
2
2
  'use strict';
3
3
 
4
- var chunkV4FFKIX3_js = require('../../chunk-V4FFKIX3.js');
5
- require('../../chunk-S4OSJ4ZN.js');
4
+ var chunk4LCH4OJ5_js = require('../../chunk-4LCH4OJ5.js');
5
+ require('../../chunk-TT33BIIT.js');
6
6
  require('../../chunk-ZS5756ZC.js');
7
7
  require('../../chunk-PZ5AY32C.js');
8
8
  var framerMotion = require('framer-motion');
@@ -33,7 +33,7 @@ var AlertAnimated = ({
33
33
  }) => {
34
34
  const motionProps = alertAnimationPresets[animation];
35
35
  return /* @__PURE__ */ jsxRuntime.jsx(
36
- chunkV4FFKIX3_js.AlertBase,
36
+ chunk4LCH4OJ5_js.AlertBase,
37
37
  {
38
38
  as: framerMotion.motion.div,
39
39
  initial: animation === "none" ? false : void 0,
@@ -1,6 +1,6 @@
1
1
  "use client";
2
- import { AlertBase } from '../../chunk-ODT5TFIT.mjs';
3
- import '../../chunk-T5SPR27V.mjs';
2
+ import { AlertBase } from '../../chunk-ZMFRJHO6.mjs';
3
+ import '../../chunk-42ZSQNDF.mjs';
4
4
  import '../../chunk-4D54YOL6.mjs';
5
5
  import '../../chunk-J5LGTIGS.mjs';
6
6
  import { motion } from 'framer-motion';
package/dist/ui/alert.js CHANGED
@@ -1,48 +1,48 @@
1
1
  "use client";
2
2
  'use strict';
3
3
 
4
- var chunkV4FFKIX3_js = require('../chunk-V4FFKIX3.js');
5
- require('../chunk-S4OSJ4ZN.js');
4
+ var chunk4LCH4OJ5_js = require('../chunk-4LCH4OJ5.js');
5
+ require('../chunk-TT33BIIT.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
  var Alert = (props) => {
11
- return /* @__PURE__ */ jsxRuntime.jsx(chunkV4FFKIX3_js.AlertBase, { ...props });
11
+ return /* @__PURE__ */ jsxRuntime.jsx(chunk4LCH4OJ5_js.AlertBase, { ...props });
12
12
  };
13
13
  Alert.displayName = "Alert";
14
14
 
15
15
  Object.defineProperty(exports, "AlertClose", {
16
16
  enumerable: true,
17
- get: function () { return chunkV4FFKIX3_js.AlertClose; }
17
+ get: function () { return chunk4LCH4OJ5_js.AlertClose; }
18
18
  });
19
19
  Object.defineProperty(exports, "AlertDefaultIcon", {
20
20
  enumerable: true,
21
- get: function () { return chunkV4FFKIX3_js.AlertDefaultIcon; }
21
+ get: function () { return chunk4LCH4OJ5_js.AlertDefaultIcon; }
22
22
  });
23
23
  Object.defineProperty(exports, "AlertDescription", {
24
24
  enumerable: true,
25
- get: function () { return chunkV4FFKIX3_js.AlertDescription; }
25
+ get: function () { return chunk4LCH4OJ5_js.AlertDescription; }
26
26
  });
27
27
  Object.defineProperty(exports, "AlertIcon", {
28
28
  enumerable: true,
29
- get: function () { return chunkV4FFKIX3_js.AlertIcon; }
29
+ get: function () { return chunk4LCH4OJ5_js.AlertIcon; }
30
30
  });
31
31
  Object.defineProperty(exports, "AlertTitle", {
32
32
  enumerable: true,
33
- get: function () { return chunkV4FFKIX3_js.AlertTitle; }
33
+ get: function () { return chunk4LCH4OJ5_js.AlertTitle; }
34
34
  });
35
35
  Object.defineProperty(exports, "alertDescriptionVariants", {
36
36
  enumerable: true,
37
- get: function () { return chunkV4FFKIX3_js.alertDescriptionVariants; }
37
+ get: function () { return chunk4LCH4OJ5_js.alertDescriptionVariants; }
38
38
  });
39
39
  Object.defineProperty(exports, "alertTitleVariants", {
40
40
  enumerable: true,
41
- get: function () { return chunkV4FFKIX3_js.alertTitleVariants; }
41
+ get: function () { return chunk4LCH4OJ5_js.alertTitleVariants; }
42
42
  });
43
43
  Object.defineProperty(exports, "alertVariants", {
44
44
  enumerable: true,
45
- get: function () { return chunkV4FFKIX3_js.alertVariants; }
45
+ get: function () { return chunk4LCH4OJ5_js.alertVariants; }
46
46
  });
47
47
  exports.Alert = Alert;
48
48
  //# sourceMappingURL=alert.js.map
package/dist/ui/alert.mjs CHANGED
@@ -1,7 +1,7 @@
1
1
  "use client";
2
- import { AlertBase } from '../chunk-ODT5TFIT.mjs';
3
- export { AlertClose, AlertDefaultIcon, AlertDescription, AlertIcon, AlertTitle, alertDescriptionVariants, alertTitleVariants, alertVariants } from '../chunk-ODT5TFIT.mjs';
4
- import '../chunk-T5SPR27V.mjs';
2
+ import { AlertBase } from '../chunk-ZMFRJHO6.mjs';
3
+ export { AlertClose, AlertDefaultIcon, AlertDescription, AlertIcon, AlertTitle, alertDescriptionVariants, alertTitleVariants, alertVariants } from '../chunk-ZMFRJHO6.mjs';
4
+ import '../chunk-42ZSQNDF.mjs';
5
5
  import '../chunk-4D54YOL6.mjs';
6
6
  import '../chunk-J5LGTIGS.mjs';
7
7
  import { jsx } from 'react/jsx-runtime';
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  'use strict';
3
3
 
4
- var chunkGPM2PRC5_js = require('../chunk-GPM2PRC5.js');
4
+ var chunkNFUOJMNI_js = require('../chunk-NFUOJMNI.js');
5
5
  var chunkZS5756ZC_js = require('../chunk-ZS5756ZC.js');
6
6
  require('../chunk-PZ5AY32C.js');
7
7
  var framerMotion = require('framer-motion');
@@ -11,8 +11,8 @@ var jsxRuntime = require('react/jsx-runtime');
11
11
 
12
12
  var animatedNumberAppearance = classVarianceAuthority.cva("inline-flex", {
13
13
  variants: {
14
- appearance: chunkGPM2PRC5_js.zuiAnimatedNumberAppearance,
15
- size: chunkGPM2PRC5_js.zuiAnimatedNumberSize
14
+ appearance: chunkNFUOJMNI_js.zuiAnimatedNumberAppearance,
15
+ size: chunkNFUOJMNI_js.zuiAnimatedNumberSize
16
16
  },
17
17
  defaultVariants: {
18
18
  appearance: "default",
@@ -76,7 +76,7 @@ var AnimatedNumber = ({
76
76
  transition: {
77
77
  staggerChildren: delayInSecond
78
78
  },
79
- className: chunkZS5756ZC_js.cn(wrapperClassName, chunkGPM2PRC5_js.zuiAnimatedNumberBase),
79
+ className: chunkZS5756ZC_js.cn(wrapperClassName, chunkNFUOJMNI_js.zuiAnimatedNumberBase),
80
80
  children: numbersList.map((digit, index) => /* @__PURE__ */ jsxRuntime.jsx(
81
81
  framerMotion.motion.span,
82
82
  {
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- import { zuiAnimatedNumberSize, zuiAnimatedNumberAppearance, zuiAnimatedNumberBase } from '../chunk-OOBA2MDD.mjs';
2
+ import { zuiAnimatedNumberSize, zuiAnimatedNumberAppearance, zuiAnimatedNumberBase } from '../chunk-ZJWOSRAS.mjs';
3
3
  import { cn } from '../chunk-4D54YOL6.mjs';
4
4
  import '../chunk-J5LGTIGS.mjs';
5
5
  import { useReducedMotion, motion, useInView, animate } from 'framer-motion';