@zentauri-ui/zentauri-components 1.4.61 → 1.4.63

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 (597) hide show
  1. package/README.md +73 -73
  2. package/dist/{chunk-JE3PD5ZA.js → chunk-2VUMVDR3.js} +8 -8
  3. package/dist/{chunk-JE3PD5ZA.js.map → chunk-2VUMVDR3.js.map} +1 -1
  4. package/dist/{chunk-DFEZH7TC.mjs → chunk-4D54YOL6.mjs} +2 -2
  5. package/dist/{chunk-DFEZH7TC.mjs.map → chunk-4D54YOL6.mjs.map} +1 -1
  6. package/dist/{chunk-UXGHUBNJ.mjs → chunk-4LT2GNJL.mjs} +13 -13
  7. package/dist/{chunk-UXGHUBNJ.mjs.map → chunk-4LT2GNJL.mjs.map} +1 -1
  8. package/dist/{chunk-BORK3BJO.mjs → chunk-5TV7EL3H.mjs} +19 -19
  9. package/dist/chunk-5TV7EL3H.mjs.map +1 -0
  10. package/dist/{chunk-BSWYZTYK.js → chunk-7DCFVPWN.js} +2 -2
  11. package/dist/chunk-7DCFVPWN.js.map +1 -0
  12. package/dist/{chunk-5QB2KNZQ.js → chunk-7TLKLMBM.js} +11 -9
  13. package/dist/chunk-7TLKLMBM.js.map +1 -0
  14. package/dist/{chunk-2P3UU2J3.mjs → chunk-A6KMZ5ZS.mjs} +12 -12
  15. package/dist/chunk-A6KMZ5ZS.mjs.map +1 -0
  16. package/dist/{chunk-OJ67PZ6N.js → chunk-BCZIYH53.js} +8 -8
  17. package/dist/{chunk-OJ67PZ6N.js.map → chunk-BCZIYH53.js.map} +1 -1
  18. package/dist/{chunk-3OR47XMY.js → chunk-E4FZY7O2.js} +52 -33
  19. package/dist/chunk-E4FZY7O2.js.map +1 -0
  20. package/dist/{chunk-XLAFQ24R.js → chunk-G3B6OHFG.js} +49 -41
  21. package/dist/chunk-G3B6OHFG.js.map +1 -0
  22. package/dist/{chunk-RDSPHBHK.mjs → chunk-G3LEYBRV.mjs} +50 -7
  23. package/dist/chunk-G3LEYBRV.mjs.map +1 -0
  24. package/dist/chunk-GBWGVNDA.js +160 -0
  25. package/dist/chunk-GBWGVNDA.js.map +1 -0
  26. package/dist/{chunk-LVUPECBT.mjs → chunk-H2I54QPJ.mjs} +12 -12
  27. package/dist/chunk-H2I54QPJ.mjs.map +1 -0
  28. package/dist/{chunk-XWM2S6VV.mjs → chunk-I6GR234Z.mjs} +22 -20
  29. package/dist/chunk-I6GR234Z.mjs.map +1 -0
  30. package/dist/{chunk-WZKGRU3U.js → chunk-JUDMPOCI.js} +103 -38
  31. package/dist/chunk-JUDMPOCI.js.map +1 -0
  32. package/dist/chunk-K6YI4FJO.mjs +158 -0
  33. package/dist/chunk-K6YI4FJO.mjs.map +1 -0
  34. package/dist/{chunk-WP7GYBRI.js → chunk-KC5LEZ6J.js} +2 -2
  35. package/dist/chunk-KC5LEZ6J.js.map +1 -0
  36. package/dist/{chunk-PCK6LX3K.js → chunk-KEKNNZD3.js} +19 -19
  37. package/dist/{chunk-PCK6LX3K.js.map → chunk-KEKNNZD3.js.map} +1 -1
  38. package/dist/{chunk-UBFKTC2P.mjs → chunk-LJ7AAIA3.mjs} +3 -3
  39. package/dist/{chunk-UBFKTC2P.mjs.map → chunk-LJ7AAIA3.mjs.map} +1 -1
  40. package/dist/{chunk-BVXTOEBI.mjs → chunk-LN77JJTY.mjs} +45 -26
  41. package/dist/chunk-LN77JJTY.mjs.map +1 -0
  42. package/dist/{chunk-E3DZNJAD.js → chunk-MCOQHXRW.js} +23 -21
  43. package/dist/chunk-MCOQHXRW.js.map +1 -0
  44. package/dist/{chunk-FLILFCQE.mjs → chunk-MTLLJFUI.mjs} +7 -8
  45. package/dist/chunk-MTLLJFUI.mjs.map +1 -0
  46. package/dist/{chunk-C2FCPQTO.js → chunk-MXKGDFQH.js} +7 -7
  47. package/dist/{chunk-C2FCPQTO.js.map → chunk-MXKGDFQH.js.map} +1 -1
  48. package/dist/{chunk-UOFTZKMM.js → chunk-MXLRXYIX.js} +18 -18
  49. package/dist/{chunk-UOFTZKMM.js.map → chunk-MXLRXYIX.js.map} +1 -1
  50. package/dist/{chunk-6I7X5BF2.js → chunk-N2OAI2HN.js} +18 -18
  51. package/dist/chunk-N2OAI2HN.js.map +1 -0
  52. package/dist/{chunk-BITDSQMR.js → chunk-OB4KJZK2.js} +19 -19
  53. package/dist/chunk-OB4KJZK2.js.map +1 -0
  54. package/dist/{chunk-2PQEXQVR.js → chunk-PWL5WD34.js} +76 -27
  55. package/dist/chunk-PWL5WD34.js.map +1 -0
  56. package/dist/{chunk-FT2LMA66.mjs → chunk-QADZK5R7.mjs} +2 -2
  57. package/dist/chunk-QADZK5R7.mjs.map +1 -0
  58. package/dist/{chunk-XIXF7UVM.mjs → chunk-QEGACUFU.mjs} +12 -12
  59. package/dist/chunk-QEGACUFU.mjs.map +1 -0
  60. package/dist/{chunk-WDCIZHXY.mjs → chunk-QZTEFGZF.mjs} +6 -4
  61. package/dist/chunk-QZTEFGZF.mjs.map +1 -0
  62. package/dist/{chunk-N4NO3SYL.js → chunk-SKPZCISM.js} +48 -40
  63. package/dist/chunk-SKPZCISM.js.map +1 -0
  64. package/dist/{chunk-7HL3A4YF.mjs → chunk-TJUNN2PT.mjs} +73 -24
  65. package/dist/chunk-TJUNN2PT.mjs.map +1 -0
  66. package/dist/{chunk-IXDJ3IPG.mjs → chunk-TTYZBO4E.mjs} +40 -32
  67. package/dist/chunk-TTYZBO4E.mjs.map +1 -0
  68. package/dist/{chunk-4B7KGBQB.js → chunk-UWA23DUC.js} +12 -13
  69. package/dist/chunk-UWA23DUC.js.map +1 -0
  70. package/dist/{chunk-CY5BQKRZ.mjs → chunk-VXDEPZKH.mjs} +2 -2
  71. package/dist/chunk-VXDEPZKH.mjs.map +1 -0
  72. package/dist/{chunk-TZ2JVWTZ.mjs → chunk-YNBJAFI2.mjs} +3 -3
  73. package/dist/{chunk-TZ2JVWTZ.mjs.map → chunk-YNBJAFI2.mjs.map} +1 -1
  74. package/dist/{chunk-P5HUBXUX.js → chunk-YTRGRHEB.js} +55 -12
  75. package/dist/chunk-YTRGRHEB.js.map +1 -0
  76. package/dist/{chunk-U4YQCAXW.js → chunk-Z7PHKV2T.js} +18 -18
  77. package/dist/chunk-Z7PHKV2T.js.map +1 -0
  78. package/dist/{chunk-YNCD6TKE.mjs → chunk-ZBBFOMSJ.mjs} +103 -38
  79. package/dist/chunk-ZBBFOMSJ.mjs.map +1 -0
  80. package/dist/{chunk-PGH27VTL.mjs → chunk-ZIDKBEQJ.mjs} +40 -32
  81. package/dist/chunk-ZIDKBEQJ.mjs.map +1 -0
  82. package/dist/{chunk-UOZYPWDZ.js → chunk-ZS5756ZC.js} +2 -2
  83. package/dist/{chunk-UOZYPWDZ.js.map → chunk-ZS5756ZC.js.map} +1 -1
  84. package/dist/{chunk-W6PRMYUC.mjs → chunk-ZYZJ74XB.mjs} +3 -3
  85. package/dist/{chunk-W6PRMYUC.mjs.map → chunk-ZYZJ74XB.mjs.map} +1 -1
  86. package/dist/hooks/index.d.ts +2 -2
  87. package/dist/hooks/index.d.ts.map +1 -1
  88. package/dist/hooks/useClickOutside/useClickOutside.d.ts.map +1 -1
  89. package/dist/hooks/useClickOutside.js +2 -2
  90. package/dist/hooks/useClickOutside.mjs +1 -1
  91. package/dist/hooks/useClipboard/useClipboard.d.ts.map +1 -1
  92. package/dist/hooks/useClipboard.js.map +1 -1
  93. package/dist/hooks/useClipboard.mjs.map +1 -1
  94. package/dist/hooks/useFocusManagement/useFocusManagement.d.ts +5 -14
  95. package/dist/hooks/useFocusManagement/useFocusManagement.d.ts.map +1 -1
  96. package/dist/hooks/useFocusManagement.js +2 -2
  97. package/dist/hooks/useFocusManagement.mjs +1 -1
  98. package/dist/hooks/useLocalStorage/index.d.ts +1 -1
  99. package/dist/hooks/useLocalStorage/index.d.ts.map +1 -1
  100. package/dist/hooks/useLocalStorage.js +1 -3
  101. package/dist/hooks/useLocalStorage.js.map +1 -1
  102. package/dist/hooks/useLocalStorage.mjs +1 -3
  103. package/dist/hooks/useLocalStorage.mjs.map +1 -1
  104. package/dist/hooks/useMediaQuery/useMediaQuery.d.ts.map +1 -1
  105. package/dist/hooks/useMediaQuery.js +2 -2
  106. package/dist/hooks/useMediaQuery.mjs +1 -1
  107. package/dist/hooks/usePagination.js +4 -4
  108. package/dist/hooks/usePagination.mjs +2 -2
  109. package/dist/hooks/usePrefersColorScheme.js +2 -2
  110. package/dist/hooks/usePrefersColorScheme.mjs +1 -1
  111. package/dist/hooks/usePrefersReducedMotion.js +2 -2
  112. package/dist/hooks/usePrefersReducedMotion.mjs +1 -1
  113. package/dist/hooks/useResizeObserver/index.d.ts +1 -1
  114. package/dist/hooks/useResizeObserver/index.d.ts.map +1 -1
  115. package/dist/hooks/useSessionStorage/useSessionStorage.d.ts.map +1 -1
  116. package/dist/hooks/useSessionStorage.js.map +1 -1
  117. package/dist/hooks/useSessionStorage.mjs.map +1 -1
  118. package/dist/hooks/useThrottledCallback/useThrottledCallback.d.ts.map +1 -1
  119. package/dist/hooks/useThrottledCallback.js.map +1 -1
  120. package/dist/hooks/useThrottledCallback.mjs.map +1 -1
  121. package/dist/hooks/useWindowSize/useWindowSize.d.ts.map +1 -1
  122. package/dist/hooks/useWindowSize.js +4 -1
  123. package/dist/hooks/useWindowSize.js.map +1 -1
  124. package/dist/hooks/useWindowSize.mjs +4 -1
  125. package/dist/hooks/useWindowSize.mjs.map +1 -1
  126. package/dist/hooks/utils.js +5 -5
  127. package/dist/hooks/utils.mjs +1 -1
  128. package/dist/lib/utils.d.ts.map +1 -1
  129. package/dist/ui/accordion/accordion.d.ts.map +1 -1
  130. package/dist/ui/accordion/animated/accordion-content-animated.d.ts.map +1 -1
  131. package/dist/ui/accordion/animated/index.d.ts +1 -1
  132. package/dist/ui/accordion/animated/index.d.ts.map +1 -1
  133. package/dist/ui/accordion/animated/types.d.ts.map +1 -1
  134. package/dist/ui/accordion/animated.js +8 -11
  135. package/dist/ui/accordion/animated.js.map +1 -1
  136. package/dist/ui/accordion/animated.mjs +4 -7
  137. package/dist/ui/accordion/animated.mjs.map +1 -1
  138. package/dist/ui/accordion.js +10 -10
  139. package/dist/ui/accordion.js.map +1 -1
  140. package/dist/ui/accordion.mjs +3 -3
  141. package/dist/ui/accordion.mjs.map +1 -1
  142. package/dist/ui/alert/alert-base.d.ts.map +1 -1
  143. package/dist/ui/alert/alert.d.ts.map +1 -1
  144. package/dist/ui/alert/animated/index.d.ts.map +1 -1
  145. package/dist/ui/alert/animated.js +3 -3
  146. package/dist/ui/alert/animated.mjs +2 -2
  147. package/dist/ui/alert/types.d.ts.map +1 -1
  148. package/dist/ui/alert.js +11 -11
  149. package/dist/ui/alert.js.map +1 -1
  150. package/dist/ui/alert.mjs +3 -3
  151. package/dist/ui/alert.mjs.map +1 -1
  152. package/dist/ui/avatar/animated/index.d.ts +1 -1
  153. package/dist/ui/avatar/animated/index.d.ts.map +1 -1
  154. package/dist/ui/avatar/animated.js +6 -6
  155. package/dist/ui/avatar/animated.mjs +3 -3
  156. package/dist/ui/avatar/avatar-base.d.ts.map +1 -1
  157. package/dist/ui/avatar/avatar.d.ts.map +1 -1
  158. package/dist/ui/avatar/variants.d.ts.map +1 -1
  159. package/dist/ui/avatar.js +10 -10
  160. package/dist/ui/avatar.js.map +1 -1
  161. package/dist/ui/avatar.mjs +3 -3
  162. package/dist/ui/avatar.mjs.map +1 -1
  163. package/dist/ui/badge/animated/index.d.ts +1 -1
  164. package/dist/ui/badge/animated/index.d.ts.map +1 -1
  165. package/dist/ui/badge/animated/types.d.ts.map +1 -1
  166. package/dist/ui/badge/animated.js +3 -3
  167. package/dist/ui/badge/animated.mjs +2 -2
  168. package/dist/ui/badge/badge-base.d.ts +1 -1
  169. package/dist/ui/badge/badge-base.d.ts.map +1 -1
  170. package/dist/ui/badge/types.d.ts +1 -0
  171. package/dist/ui/badge/types.d.ts.map +1 -1
  172. package/dist/ui/badge/variants.d.ts +16 -16
  173. package/dist/ui/badge/variants.d.ts.map +1 -1
  174. package/dist/ui/badge.js +5 -5
  175. package/dist/ui/badge.mjs +3 -3
  176. package/dist/ui/breadcrumb/breadcrumb.d.ts.map +1 -1
  177. package/dist/ui/breadcrumb/types.d.ts.map +1 -1
  178. package/dist/ui/breadcrumb/variants.d.ts.map +1 -1
  179. package/dist/ui/breadcrumb.js +47 -43
  180. package/dist/ui/breadcrumb.js.map +1 -1
  181. package/dist/ui/breadcrumb.mjs +43 -39
  182. package/dist/ui/breadcrumb.mjs.map +1 -1
  183. package/dist/ui/buttons/animated/index.d.ts +1 -1
  184. package/dist/ui/buttons/animated/index.d.ts.map +1 -1
  185. package/dist/ui/buttons/animated/types.d.ts.map +1 -1
  186. package/dist/ui/buttons/animated.js +4 -4
  187. package/dist/ui/buttons/animated.mjs +2 -2
  188. package/dist/ui/buttons/types.d.ts.map +1 -1
  189. package/dist/ui/buttons.js +5 -5
  190. package/dist/ui/buttons.mjs +3 -3
  191. package/dist/ui/card/animated.js +8 -8
  192. package/dist/ui/card/animated.mjs +3 -3
  193. package/dist/ui/card/card-base.d.ts.map +1 -1
  194. package/dist/ui/card/card.d.ts.map +1 -1
  195. package/dist/ui/card/index.d.ts +2 -2
  196. package/dist/ui/card/index.d.ts.map +1 -1
  197. package/dist/ui/card.js +13 -13
  198. package/dist/ui/card.js.map +1 -1
  199. package/dist/ui/card.mjs +3 -3
  200. package/dist/ui/card.mjs.map +1 -1
  201. package/dist/ui/divider/animated/index.d.ts +1 -1
  202. package/dist/ui/divider/animated/index.d.ts.map +1 -1
  203. package/dist/ui/divider/animated/types.d.ts.map +1 -1
  204. package/dist/ui/divider/animated.js +3 -3
  205. package/dist/ui/divider/animated.mjs +2 -2
  206. package/dist/ui/divider/divider-base.d.ts.map +1 -1
  207. package/dist/ui/divider.js +7 -7
  208. package/dist/ui/divider.mjs +3 -3
  209. package/dist/ui/drawer/animated/drawer-content-animated.d.ts.map +1 -1
  210. package/dist/ui/drawer/animated/index.d.ts +1 -1
  211. package/dist/ui/drawer/animated/index.d.ts.map +1 -1
  212. package/dist/ui/drawer/animated.js +19 -20
  213. package/dist/ui/drawer/animated.js.map +1 -1
  214. package/dist/ui/drawer/animated.mjs +9 -10
  215. package/dist/ui/drawer/animated.mjs.map +1 -1
  216. package/dist/ui/drawer/drawer-base.d.ts +1 -1
  217. package/dist/ui/drawer/drawer-base.d.ts.map +1 -1
  218. package/dist/ui/drawer/types.d.ts +1 -0
  219. package/dist/ui/drawer/types.d.ts.map +1 -1
  220. package/dist/ui/drawer.js +13 -13
  221. package/dist/ui/drawer.mjs +3 -3
  222. package/dist/ui/dropdown/dropdown.d.ts +1 -1
  223. package/dist/ui/dropdown/dropdown.d.ts.map +1 -1
  224. package/dist/ui/dropdown/types.d.ts +1 -0
  225. package/dist/ui/dropdown/types.d.ts.map +1 -1
  226. package/dist/ui/dropdown/variants.d.ts +1 -1
  227. package/dist/ui/dropdown.js +49 -31
  228. package/dist/ui/dropdown.js.map +1 -1
  229. package/dist/ui/dropdown.mjs +46 -28
  230. package/dist/ui/dropdown.mjs.map +1 -1
  231. package/dist/ui/empty-state/animated/empty-state-animated.d.ts.map +1 -1
  232. package/dist/ui/empty-state/animated/index.d.ts +2 -2
  233. package/dist/ui/empty-state/animated/index.d.ts.map +1 -1
  234. package/dist/ui/empty-state/animated.js +3 -3
  235. package/dist/ui/empty-state/animated.js.map +1 -1
  236. package/dist/ui/empty-state/animated.mjs +2 -2
  237. package/dist/ui/empty-state/animated.mjs.map +1 -1
  238. package/dist/ui/empty-state/empty-state-base.d.ts.map +1 -1
  239. package/dist/ui/empty-state/index.d.ts +1 -1
  240. package/dist/ui/empty-state/index.d.ts.map +1 -1
  241. package/dist/ui/empty-state/types.d.ts +1 -0
  242. package/dist/ui/empty-state/types.d.ts.map +1 -1
  243. package/dist/ui/empty-state.js +11 -11
  244. package/dist/ui/empty-state.mjs +3 -3
  245. package/dist/ui/file-upload/file-upload.d.ts.map +1 -1
  246. package/dist/ui/file-upload/variants.d.ts.map +1 -1
  247. package/dist/ui/file-upload.js +4 -6
  248. package/dist/ui/file-upload.js.map +1 -1
  249. package/dist/ui/file-upload.mjs +2 -4
  250. package/dist/ui/file-upload.mjs.map +1 -1
  251. package/dist/ui/inputs/animated/index.d.ts +1 -1
  252. package/dist/ui/inputs/animated/index.d.ts.map +1 -1
  253. package/dist/ui/inputs/animated.js +3 -3
  254. package/dist/ui/inputs/animated.mjs +1 -1
  255. package/dist/ui/inputs/input-base.d.ts.map +1 -1
  256. package/dist/ui/inputs/types.d.ts +3 -1
  257. package/dist/ui/inputs/types.d.ts.map +1 -1
  258. package/dist/ui/inputs.js +49 -5
  259. package/dist/ui/inputs.js.map +1 -1
  260. package/dist/ui/inputs.mjs +47 -3
  261. package/dist/ui/inputs.mjs.map +1 -1
  262. package/dist/ui/modal/animated/index.d.ts +1 -1
  263. package/dist/ui/modal/animated/index.d.ts.map +1 -1
  264. package/dist/ui/modal/animated/modal-content-animated.d.ts.map +1 -1
  265. package/dist/ui/modal/animated.js +12 -13
  266. package/dist/ui/modal/animated.js.map +1 -1
  267. package/dist/ui/modal/animated.mjs +8 -9
  268. package/dist/ui/modal/animated.mjs.map +1 -1
  269. package/dist/ui/modal/index.d.ts +1 -1
  270. package/dist/ui/modal/index.d.ts.map +1 -1
  271. package/dist/ui/modal/modal-base.d.ts +4 -2
  272. package/dist/ui/modal/modal-base.d.ts.map +1 -1
  273. package/dist/ui/modal/types.d.ts.map +1 -1
  274. package/dist/ui/modal.js +14 -14
  275. package/dist/ui/modal.js.map +1 -1
  276. package/dist/ui/modal.mjs +4 -4
  277. package/dist/ui/modal.mjs.map +1 -1
  278. package/dist/ui/pagination.js +25 -25
  279. package/dist/ui/pagination.js.map +1 -1
  280. package/dist/ui/pagination.mjs +15 -15
  281. package/dist/ui/pagination.mjs.map +1 -1
  282. package/dist/ui/progress/animated/progress-animated.d.ts.map +1 -1
  283. package/dist/ui/progress/animated.js +52 -14
  284. package/dist/ui/progress/animated.js.map +1 -1
  285. package/dist/ui/progress/animated.mjs +45 -7
  286. package/dist/ui/progress/animated.mjs.map +1 -1
  287. package/dist/ui/progress/index.d.ts +2 -2
  288. package/dist/ui/progress/index.d.ts.map +1 -1
  289. package/dist/ui/progress/progress-base.d.ts.map +1 -1
  290. package/dist/ui/progress/progress.d.ts.map +1 -1
  291. package/dist/ui/progress/types.d.ts +3 -0
  292. package/dist/ui/progress/types.d.ts.map +1 -1
  293. package/dist/ui/progress.js +10 -15
  294. package/dist/ui/progress.js.map +1 -1
  295. package/dist/ui/progress.mjs +4 -9
  296. package/dist/ui/progress.mjs.map +1 -1
  297. package/dist/ui/search/search-bar.d.ts +1 -1
  298. package/dist/ui/search/search-bar.d.ts.map +1 -1
  299. package/dist/ui/search/search-suggestion-list.d.ts.map +1 -1
  300. package/dist/ui/search/search-suggestion-utils.d.ts.map +1 -1
  301. package/dist/ui/search.js +15 -7
  302. package/dist/ui/search.js.map +1 -1
  303. package/dist/ui/search.mjs +11 -3
  304. package/dist/ui/search.mjs.map +1 -1
  305. package/dist/ui/select/select.d.ts +1 -1
  306. package/dist/ui/select/select.d.ts.map +1 -1
  307. package/dist/ui/select/types.d.ts +1 -0
  308. package/dist/ui/select/types.d.ts.map +1 -1
  309. package/dist/ui/select/variants.d.ts +1 -1
  310. package/dist/ui/select/variants.d.ts.map +1 -1
  311. package/dist/ui/select.js +145 -63
  312. package/dist/ui/select.js.map +1 -1
  313. package/dist/ui/select.mjs +141 -59
  314. package/dist/ui/select.mjs.map +1 -1
  315. package/dist/ui/skeleton/animated/skeleton-animated.d.ts.map +1 -1
  316. package/dist/ui/skeleton/animated/types.d.ts.map +1 -1
  317. package/dist/ui/skeleton/animated.js +34 -10
  318. package/dist/ui/skeleton/animated.js.map +1 -1
  319. package/dist/ui/skeleton/animated.mjs +29 -5
  320. package/dist/ui/skeleton/animated.mjs.map +1 -1
  321. package/dist/ui/skeleton/variants.d.ts +1 -1
  322. package/dist/ui/skeleton.js +10 -10
  323. package/dist/ui/skeleton.mjs +2 -2
  324. package/dist/ui/slider/slider.d.ts.map +1 -1
  325. package/dist/ui/slider/types.d.ts +8 -2
  326. package/dist/ui/slider/types.d.ts.map +1 -1
  327. package/dist/ui/slider.js +53 -17
  328. package/dist/ui/slider.js.map +1 -1
  329. package/dist/ui/slider.mjs +45 -9
  330. package/dist/ui/slider.mjs.map +1 -1
  331. package/dist/ui/spinner/animated/spinner.d.ts.map +1 -1
  332. package/dist/ui/spinner/animated.js +68 -56
  333. package/dist/ui/spinner/animated.js.map +1 -1
  334. package/dist/ui/spinner/animated.mjs +64 -52
  335. package/dist/ui/spinner/animated.mjs.map +1 -1
  336. package/dist/ui/stepper/stepper.d.ts +2 -7
  337. package/dist/ui/stepper/stepper.d.ts.map +1 -1
  338. package/dist/ui/stepper/types.d.ts +3 -3
  339. package/dist/ui/stepper/types.d.ts.map +1 -1
  340. package/dist/ui/stepper/variants.d.ts +1 -1
  341. package/dist/ui/stepper/variants.d.ts.map +1 -1
  342. package/dist/ui/stepper.js +12 -13
  343. package/dist/ui/stepper.js.map +1 -1
  344. package/dist/ui/stepper.mjs +9 -10
  345. package/dist/ui/stepper.mjs.map +1 -1
  346. package/dist/ui/table/animated/index.d.ts +2 -2
  347. package/dist/ui/table/animated/index.d.ts.map +1 -1
  348. package/dist/ui/table/animated.js +9 -9
  349. package/dist/ui/table/animated.mjs +3 -3
  350. package/dist/ui/table/table-base.d.ts +1 -1
  351. package/dist/ui/table/table-base.d.ts.map +1 -1
  352. package/dist/ui/table/types.d.ts +5 -1
  353. package/dist/ui/table/types.d.ts.map +1 -1
  354. package/dist/ui/table.js +15 -15
  355. package/dist/ui/table.mjs +2 -2
  356. package/dist/ui/tabs/animated/animations.d.ts.map +1 -1
  357. package/dist/ui/tabs/animated/index.d.ts +1 -1
  358. package/dist/ui/tabs/animated/index.d.ts.map +1 -1
  359. package/dist/ui/tabs/animated/types.d.ts.map +1 -1
  360. package/dist/ui/tabs/animated.js +4 -4
  361. package/dist/ui/tabs/animated.js.map +1 -1
  362. package/dist/ui/tabs/animated.mjs +2 -2
  363. package/dist/ui/tabs/animated.mjs.map +1 -1
  364. package/dist/ui/tabs/index.d.ts +1 -1
  365. package/dist/ui/tabs/index.d.ts.map +1 -1
  366. package/dist/ui/tabs/tabs-base.d.ts.map +1 -1
  367. package/dist/ui/tabs/tabs.d.ts +1 -1
  368. package/dist/ui/tabs/tabs.d.ts.map +1 -1
  369. package/dist/ui/tabs/types.d.ts +2 -1
  370. package/dist/ui/tabs/types.d.ts.map +1 -1
  371. package/dist/ui/tabs.js +10 -10
  372. package/dist/ui/tabs.mjs +2 -2
  373. package/dist/ui/toast/animated/toast-animated.d.ts.map +1 -1
  374. package/dist/ui/toast/animated.js +12 -10
  375. package/dist/ui/toast/animated.js.map +1 -1
  376. package/dist/ui/toast/animated.mjs +5 -3
  377. package/dist/ui/toast/animated.mjs.map +1 -1
  378. package/dist/ui/toast/types.d.ts.map +1 -1
  379. package/dist/ui/toast.js +13 -13
  380. package/dist/ui/toast.mjs +2 -2
  381. package/dist/ui/toggle/animated/index.d.ts +2 -2
  382. package/dist/ui/toggle/animated/index.d.ts.map +1 -1
  383. package/dist/ui/toggle/animated/types.d.ts.map +1 -1
  384. package/dist/ui/toggle/animated.js +3 -3
  385. package/dist/ui/toggle/animated.mjs +1 -1
  386. package/dist/ui/toggle/index.d.ts +1 -1
  387. package/dist/ui/toggle/index.d.ts.map +1 -1
  388. package/dist/ui/toggle/toggle-base.d.ts.map +1 -1
  389. package/dist/ui/toggle.js +31 -6
  390. package/dist/ui/toggle.js.map +1 -1
  391. package/dist/ui/toggle.mjs +30 -5
  392. package/dist/ui/toggle.mjs.map +1 -1
  393. package/dist/ui/tooltip/animated/animations.d.ts.map +1 -1
  394. package/dist/ui/tooltip/animated/types.d.ts.map +1 -1
  395. package/dist/ui/tooltip/animated.js +5 -5
  396. package/dist/ui/tooltip/animated.js.map +1 -1
  397. package/dist/ui/tooltip/animated.mjs +2 -2
  398. package/dist/ui/tooltip/animated.mjs.map +1 -1
  399. package/dist/ui/tooltip/tooltip-base.d.ts.map +1 -1
  400. package/dist/ui/tooltip/types.d.ts +1 -0
  401. package/dist/ui/tooltip/types.d.ts.map +1 -1
  402. package/dist/ui/tooltip/variants.d.ts.map +1 -1
  403. package/dist/ui/tooltip.js +8 -8
  404. package/dist/ui/tooltip.mjs +2 -2
  405. package/dist/ui/typography/blockquote-base.d.ts.map +1 -1
  406. package/dist/ui/typography/code-block-base.d.ts.map +1 -1
  407. package/dist/ui/typography/heading-base.d.ts.map +1 -1
  408. package/dist/ui/typography/list-base.d.ts.map +1 -1
  409. package/dist/ui/typography/types.d.ts.map +1 -1
  410. package/dist/ui/typography/variants.d.ts.map +1 -1
  411. package/dist/ui/typography.js +12 -34
  412. package/dist/ui/typography.js.map +1 -1
  413. package/dist/ui/typography.mjs +4 -26
  414. package/dist/ui/typography.mjs.map +1 -1
  415. package/package.json +1 -1
  416. package/src/hooks/index.ts +8 -2
  417. package/src/hooks/useClickOutside/useClickOutside.ts +1 -4
  418. package/src/hooks/useClipboard/useClipboard.test.ts +3 -1
  419. package/src/hooks/useClipboard/useClipboard.ts +1 -2
  420. package/src/hooks/useDisclosure/useDisclosure.test.ts +1 -2
  421. package/src/hooks/useDocumentTitle/useDocumentTitle.test.ts +1 -3
  422. package/src/hooks/useFocusManagement/useFocusManagement.test.tsx +8 -0
  423. package/src/hooks/useFocusManagement/useFocusManagement.ts +162 -34
  424. package/src/hooks/useInView/useInView.test.ts +6 -1
  425. package/src/hooks/useLocalStorage/index.ts +1 -4
  426. package/src/hooks/useLocalStorage/useLocalStorage.test.ts +8 -20
  427. package/src/hooks/useLocalStorage/useLocalStorage.ts +4 -4
  428. package/src/hooks/useMediaQuery/useMediaQuery.ts +1 -4
  429. package/src/hooks/usePrefersReducedMotion/usePrefersReducedMotion.test.ts +3 -1
  430. package/src/hooks/useResizeObserver/index.ts +1 -4
  431. package/src/hooks/useSessionStorage/useSessionStorage.test.ts +2 -6
  432. package/src/hooks/useSessionStorage/useSessionStorage.ts +4 -2
  433. package/src/hooks/useThrottledCallback/useThrottledCallback.ts +4 -3
  434. package/src/hooks/useWindowSize/useWindowSize.ts +4 -1
  435. package/src/lib/utils.ts +3 -3
  436. package/src/ui/accordion/accordion.tsx +6 -1
  437. package/src/ui/accordion/animated/accordion-content-animated.tsx +1 -4
  438. package/src/ui/accordion/animated/index.ts +4 -1
  439. package/src/ui/accordion/animated/types.ts +6 -2
  440. package/src/ui/alert/alert-base.tsx +6 -1
  441. package/src/ui/alert/alert.tsx +2 -2
  442. package/src/ui/alert/animated/index.ts +2 -2
  443. package/src/ui/alert/animated/types.ts +1 -1
  444. package/src/ui/alert/types.ts +1 -3
  445. package/src/ui/alert/variants.ts +9 -9
  446. package/src/ui/avatar/animated/index.ts +6 -2
  447. package/src/ui/avatar/avatar-base.tsx +2 -7
  448. package/src/ui/avatar/avatar.tsx +6 -1
  449. package/src/ui/avatar/variants.ts +23 -11
  450. package/src/ui/badge/animated/index.ts +6 -2
  451. package/src/ui/badge/animated/types.ts +1 -2
  452. package/src/ui/badge/badge-base.tsx +4 -1
  453. package/src/ui/badge/types.ts +1 -0
  454. package/src/ui/badge/variants.ts +16 -18
  455. package/src/ui/breadcrumb/breadcrumb.tsx +10 -2
  456. package/src/ui/breadcrumb/types.ts +20 -9
  457. package/src/ui/breadcrumb/variants.ts +34 -38
  458. package/src/ui/buttons/animated/index.ts +7 -1
  459. package/src/ui/buttons/animated/types.ts +0 -1
  460. package/src/ui/buttons/button.test.tsx +2 -2
  461. package/src/ui/buttons/types.ts +4 -5
  462. package/src/ui/buttons/variants.ts +17 -17
  463. package/src/ui/card/animated/types.ts +0 -1
  464. package/src/ui/card/card-base.tsx +1 -6
  465. package/src/ui/card/card.test.tsx +7 -3
  466. package/src/ui/card/card.tsx +1 -3
  467. package/src/ui/card/index.ts +7 -3
  468. package/src/ui/card/types.ts +1 -1
  469. package/src/ui/card/variants.ts +9 -9
  470. package/src/ui/divider/animated/index.ts +5 -1
  471. package/src/ui/divider/animated/types.ts +4 -2
  472. package/src/ui/divider/divider-base.tsx +0 -1
  473. package/src/ui/drawer/animated/drawer-content-animated.tsx +6 -11
  474. package/src/ui/drawer/animated/index.ts +6 -1
  475. package/src/ui/drawer/drawer-base.tsx +16 -8
  476. package/src/ui/drawer/types.ts +12 -3
  477. package/src/ui/drawer/variants.ts +18 -18
  478. package/src/ui/dropdown/dropdown.test.tsx +1 -3
  479. package/src/ui/dropdown/dropdown.tsx +30 -5
  480. package/src/ui/dropdown/types.ts +1 -0
  481. package/src/ui/dropdown/variants.ts +20 -20
  482. package/src/ui/empty-state/animated/empty-state-animated.tsx +2 -4
  483. package/src/ui/empty-state/animated/index.ts +8 -5
  484. package/src/ui/empty-state/empty-state-base.tsx +14 -2
  485. package/src/ui/empty-state/index.ts +7 -1
  486. package/src/ui/empty-state/types.ts +1 -0
  487. package/src/ui/file-upload/file-upload.tsx +3 -9
  488. package/src/ui/file-upload/variants.ts +18 -9
  489. package/src/ui/inputs/animated/index.ts +7 -1
  490. package/src/ui/inputs/input-base.tsx +60 -6
  491. package/src/ui/inputs/input.test.tsx +5 -1
  492. package/src/ui/inputs/types.ts +7 -2
  493. package/src/ui/modal/animated/index.ts +6 -1
  494. package/src/ui/modal/animated/modal-content-animated.tsx +4 -5
  495. package/src/ui/modal/index.ts +1 -1
  496. package/src/ui/modal/modal-base.tsx +19 -10
  497. package/src/ui/modal/modal.test.tsx +44 -4
  498. package/src/ui/modal/modal.tsx +1 -1
  499. package/src/ui/modal/types.ts +10 -2
  500. package/src/ui/modal/variants.ts +18 -18
  501. package/src/ui/pagination/pagination.tsx +2 -2
  502. package/src/ui/pagination/variants.ts +9 -9
  503. package/src/ui/progress/animated/progress-animated.tsx +43 -5
  504. package/src/ui/progress/animated/types.ts +1 -1
  505. package/src/ui/progress/index.ts +12 -2
  506. package/src/ui/progress/progress-base.tsx +61 -5
  507. package/src/ui/progress/progress.test.tsx +1 -3
  508. package/src/ui/progress/progress.tsx +2 -6
  509. package/src/ui/progress/types.ts +3 -0
  510. package/src/ui/search/filter-search-suggestions.test.ts +46 -12
  511. package/src/ui/search/filter-search-suggestions.ts +3 -3
  512. package/src/ui/search/search-bar.tsx +22 -22
  513. package/src/ui/search/search-suggestion-list.tsx +14 -5
  514. package/src/ui/search/search-suggestion-utils.ts +4 -1
  515. package/src/ui/select/select.tsx +96 -6
  516. package/src/ui/select/types.ts +1 -0
  517. package/src/ui/select/variants.ts +71 -68
  518. package/src/ui/skeleton/animated/skeleton-animated.tsx +25 -4
  519. package/src/ui/skeleton/animated/types.ts +0 -1
  520. package/src/ui/skeleton/skeleton-base.tsx +3 -3
  521. package/src/ui/skeleton/variants.ts +9 -9
  522. package/src/ui/slider/slider.test.tsx +23 -9
  523. package/src/ui/slider/slider.tsx +45 -4
  524. package/src/ui/slider/types.ts +9 -3
  525. package/src/ui/slider/variants.ts +1 -1
  526. package/src/ui/spinner/animated/spinner.tsx +6 -3
  527. package/src/ui/stepper/stepper.test.tsx +5 -6
  528. package/src/ui/stepper/stepper.tsx +12 -16
  529. package/src/ui/stepper/types.ts +11 -5
  530. package/src/ui/stepper/variants.ts +30 -15
  531. package/src/ui/table/animated/index.ts +6 -4
  532. package/src/ui/table/table-base.tsx +32 -11
  533. package/src/ui/table/types.ts +8 -1
  534. package/src/ui/tabs/animated/animations.ts +5 -1
  535. package/src/ui/tabs/animated/index.ts +7 -1
  536. package/src/ui/tabs/animated/types.ts +3 -3
  537. package/src/ui/tabs/index.ts +8 -1
  538. package/src/ui/tabs/tabs-base.tsx +71 -10
  539. package/src/ui/tabs/tabs.tsx +8 -1
  540. package/src/ui/tabs/types.ts +2 -1
  541. package/src/ui/tabs/variants.ts +10 -10
  542. package/src/ui/toast/animated/toast-animated.tsx +3 -1
  543. package/src/ui/toast/animated/types.ts +1 -1
  544. package/src/ui/toast/toast-base.tsx +1 -1
  545. package/src/ui/toast/types.ts +3 -1
  546. package/src/ui/toast/variants.ts +9 -9
  547. package/src/ui/toggle/animated/index.ts +7 -4
  548. package/src/ui/toggle/animated/types.ts +4 -2
  549. package/src/ui/toggle/index.ts +5 -1
  550. package/src/ui/toggle/toggle-base.tsx +36 -4
  551. package/src/ui/tooltip/animated/animations.ts +0 -1
  552. package/src/ui/tooltip/animated/types.ts +0 -1
  553. package/src/ui/tooltip/tooltip-base.tsx +118 -22
  554. package/src/ui/tooltip/types.ts +1 -0
  555. package/src/ui/tooltip/variants.ts +11 -13
  556. package/src/ui/typography/blockquote-base.tsx +1 -8
  557. package/src/ui/typography/code-block-base.tsx +19 -24
  558. package/src/ui/typography/heading-base.tsx +35 -38
  559. package/src/ui/typography/inline-code-base.tsx +15 -15
  560. package/src/ui/typography/list-base.tsx +1 -9
  561. package/src/ui/typography/text-base.tsx +32 -32
  562. package/src/ui/typography/types.ts +4 -17
  563. package/src/ui/typography/typography.test.tsx +3 -1
  564. package/src/ui/typography/variants.ts +16 -8
  565. package/dist/chunk-2P3UU2J3.mjs.map +0 -1
  566. package/dist/chunk-2PQEXQVR.js.map +0 -1
  567. package/dist/chunk-3OR47XMY.js.map +0 -1
  568. package/dist/chunk-4B7KGBQB.js.map +0 -1
  569. package/dist/chunk-5QB2KNZQ.js.map +0 -1
  570. package/dist/chunk-6I7X5BF2.js.map +0 -1
  571. package/dist/chunk-7HL3A4YF.mjs.map +0 -1
  572. package/dist/chunk-BITDSQMR.js.map +0 -1
  573. package/dist/chunk-BORK3BJO.mjs.map +0 -1
  574. package/dist/chunk-BSWYZTYK.js.map +0 -1
  575. package/dist/chunk-BVXTOEBI.mjs.map +0 -1
  576. package/dist/chunk-CY5BQKRZ.mjs.map +0 -1
  577. package/dist/chunk-E3DZNJAD.js.map +0 -1
  578. package/dist/chunk-FLILFCQE.mjs.map +0 -1
  579. package/dist/chunk-FT2LMA66.mjs.map +0 -1
  580. package/dist/chunk-IXDJ3IPG.mjs.map +0 -1
  581. package/dist/chunk-LVUPECBT.mjs.map +0 -1
  582. package/dist/chunk-N4NO3SYL.js.map +0 -1
  583. package/dist/chunk-P5HUBXUX.js.map +0 -1
  584. package/dist/chunk-PGH27VTL.mjs.map +0 -1
  585. package/dist/chunk-RDSPHBHK.mjs.map +0 -1
  586. package/dist/chunk-U4YQCAXW.js.map +0 -1
  587. package/dist/chunk-WDCIZHXY.mjs.map +0 -1
  588. package/dist/chunk-WL5I7RVS.mjs +0 -54
  589. package/dist/chunk-WL5I7RVS.mjs.map +0 -1
  590. package/dist/chunk-WP7GYBRI.js.map +0 -1
  591. package/dist/chunk-WZKGRU3U.js.map +0 -1
  592. package/dist/chunk-XIXF7UVM.mjs.map +0 -1
  593. package/dist/chunk-XLAFQ24R.js.map +0 -1
  594. package/dist/chunk-XWM2S6VV.mjs.map +0 -1
  595. package/dist/chunk-YNCD6TKE.mjs.map +0 -1
  596. package/dist/chunk-YPLVTUYL.js +0 -56
  597. package/dist/chunk-YPLVTUYL.js.map +0 -1
package/README.md CHANGED
@@ -10,11 +10,11 @@ Published artifacts live under `dist/`. Imports use **per-entry subpaths**: `@ze
10
10
 
11
11
  ## Package exports
12
12
 
13
- | Subpath | Description |
14
- | ----------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------- |
15
- | `@zentauri-ui/zentauri-components/ui/<name>` | Single UI area: static primitives, compound parts, variants, and types. Does **not** include Framer Motion–based animated exports. |
16
- | `@zentauri-ui/zentauri-components/ui/<name>/animated` | Motion entry for that area when published: animated components, motion presets, and related types (depends on **framer-motion**). |
17
- | `@zentauri-ui/zentauri-components/hooks/<entry>` | One hook module or `utils` (`cn`, `clampPage`, `range` from `src/lib/utils.ts`). Entries match files under `src/hooks/` (see **React hooks**). |
13
+ | Subpath | Description |
14
+ | ----------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- |
15
+ | `@zentauri-ui/zentauri-components/ui/<name>` | Single UI area: static primitives, compound parts, variants, and types. Does **not** include Framer Motion–based animated exports. |
16
+ | `@zentauri-ui/zentauri-components/ui/<name>/animated` | Motion entry for that area when published: animated components, motion presets, and related types (depends on **framer-motion**). |
17
+ | `@zentauri-ui/zentauri-components/hooks/<entry>` | One hook module or `utils` (`cn`, `clampPage`, `range` from `src/lib/utils.ts`). Entries match files under `src/hooks/` (see **React hooks**). |
18
18
 
19
19
  The UI `<name>` segment matches the folder under `src/ui/` (for example `accordion`, `select`, `empty-state`, `buttons` for `Button`, `inputs` for `Input`, `typography` for `Heading` / `Text` and related primitives). The hooks `<entry>` is the file stem (for example `useMediaQuery`, `usePagination`) or `utils`.
20
20
 
@@ -40,36 +40,36 @@ Published motion entries (same `<name>` as the base UI folder):
40
40
 
41
41
  Import static primitives from `@zentauri-ui/zentauri-components/ui/<subpath>` when the **Base** column lists a path. When the **Animated** column lists a path, motion components and preset helpers come from `@zentauri-ui/zentauri-components/ui/<subpath>/animated` (they are not exported from the base entry). **Spinner** has no static bundle—use only the animated subpath.
42
42
 
43
- | Area | Base subpath `…/ui/…` | Animated subpath `…/ui/…/animated` |
44
- | -------------- | --------------------- | ------------------------------------ |
45
- | Accordion | `accordion` | `accordion/animated` |
46
- | Alert | `alert` | `alert/animated` |
47
- | Avatar | `avatar` | `avatar/animated` |
48
- | Badge | `badge` | `badge/animated` |
49
- | Breadcrumb | `breadcrumb` | — |
50
- | Button | `buttons` | `buttons/animated` |
51
- | Card | `card` | `card/animated` |
52
- | Divider | `divider` | `divider/animated` |
53
- | Drawer | `drawer` | `drawer/animated` |
54
- | Dropdown | `dropdown` | — |
55
- | Empty state | `empty-state` | `empty-state/animated` |
56
- | File upload | `file-upload` | — |
57
- | Input | `inputs` | `inputs/animated` |
58
- | Modal | `modal` | `modal/animated` |
59
- | Pagination | `pagination` | — |
60
- | Progress | `progress` | `progress/animated` |
61
- | Search | `search` | - |
62
- | Select | `select` | — |
63
- | Skeleton | `skeleton` | `skeleton/animated` |
64
- | Slider | `slider` | — |
65
- | Spinner | — | `spinner/animated` |
66
- | Stepper | `stepper` | — |
67
- | Table | `table` | `table/animated` |
68
- | Tabs | `tabs` | `tabs/animated` |
69
- | Toast | `toast` | `toast/animated` |
70
- | Toggle | `toggle` | `toggle/animated` |
71
- | Tooltip | `tooltip` | `tooltip/animated` |
72
- | Typography | `typography` | — |
43
+ | Area | Base subpath `…/ui/…` | Animated subpath `…/ui/…/animated` |
44
+ | ----------- | --------------------- | ---------------------------------- |
45
+ | Accordion | `accordion` | `accordion/animated` |
46
+ | Alert | `alert` | `alert/animated` |
47
+ | Avatar | `avatar` | `avatar/animated` |
48
+ | Badge | `badge` | `badge/animated` |
49
+ | Breadcrumb | `breadcrumb` | — |
50
+ | Button | `buttons` | `buttons/animated` |
51
+ | Card | `card` | `card/animated` |
52
+ | Divider | `divider` | `divider/animated` |
53
+ | Drawer | `drawer` | `drawer/animated` |
54
+ | Dropdown | `dropdown` | — |
55
+ | Empty state | `empty-state` | `empty-state/animated` |
56
+ | File upload | `file-upload` | — |
57
+ | Input | `inputs` | `inputs/animated` |
58
+ | Modal | `modal` | `modal/animated` |
59
+ | Pagination | `pagination` | — |
60
+ | Progress | `progress` | `progress/animated` |
61
+ | Search | `search` | - |
62
+ | Select | `select` | — |
63
+ | Skeleton | `skeleton` | `skeleton/animated` |
64
+ | Slider | `slider` | — |
65
+ | Spinner | — | `spinner/animated` |
66
+ | Stepper | `stepper` | — |
67
+ | Table | `table` | `table/animated` |
68
+ | Tabs | `tabs` | `tabs/animated` |
69
+ | Toast | `toast` | `toast/animated` |
70
+ | Toggle | `toggle` | `toggle/animated` |
71
+ | Tooltip | `tooltip` | `tooltip/animated` |
72
+ | Typography | `typography` | — |
73
73
 
74
74
  ## Typography
75
75
 
@@ -110,8 +110,7 @@ export function ArticleIntro() {
110
110
  Feature title
111
111
  </Heading>
112
112
  <Text as="p" size="sm" tone="muted">
113
- Supporting copy with{" "}
114
- <InlineCode tone="accent">inline code</InlineCode>.
113
+ Supporting copy with <InlineCode tone="accent">inline code</InlineCode>.
115
114
  </Text>
116
115
  <List marker="disc" tone="default">
117
116
  <List.Item>First item</List.Item>
@@ -136,34 +135,34 @@ export function ArticleIntro() {
136
135
 
137
136
  Hooks live in `src/hooks/`. Each hook is a separate published entry under `@zentauri-ui/zentauri-components/hooks/<name>` (same pattern as UI areas). Types are exported where the implementation defines them (for example `UseDisclosureResult`, `PaginationPageItem`). For class-name merging and pagination helpers used alongside hooks, import from `@zentauri-ui/zentauri-components/hooks/utils`.
138
137
 
139
- | Hook / module | Subpath `…/hooks/…` | Notes (selected exports) |
140
- | -------------------------- | ----------------------------- | -------------------------- |
141
- | `useBodyScrollLock` | `useBodyScrollLock` | Locks document scroll while open |
142
- | `useClickOutside` | `useClickOutside` | `ClickOutsideEventType`, `UseClickOutsideParams` |
143
- | `useClipboard` | `useClipboard` | `UseClipboardResult` |
144
- | `useControllableState` | `useControllableState` | `UseControllableStateParams` |
145
- | `useDebouncedValue` | `useDebouncedValue` | Debounced state from a value |
146
- | `useDisclosure` | `useDisclosure` | `UseDisclosureParams`, `UseDisclosureResult` |
147
- | `useDocumentTitle` | `useDocumentTitle` | `UseDocumentTitleParams` |
148
- | `useFocusManagement` | `useFocusManagement` | Focus trap / focus moves for overlays |
149
- | `useHover` | `useHover` | Pointer hover state |
150
- | `useInView` | `useInView` | `UseInViewParams` |
151
- | `useIntersectionObserver` | `useIntersectionObserver` | `UseIntersectionObserverParams` |
152
- | `useIsomorphicLayoutEffect`| `useIsomorphicLayoutEffect` | `useLayoutEffect` safe for SSR |
153
- | `useIsMounted` | `useIsMounted` | Ref / flag after mount |
154
- | `useLocalStorage` | `useLocalStorage` | `UseLocalStorageResult` |
155
- | `useMediaQuery` | `useMediaQuery` | Match CSS media queries |
156
- | `useNetworkStatus` | `useNetworkStatus` | Online / offline |
157
- | `usePageVisibility` | `usePageVisibility` | Document visibility API |
158
- | `usePagination` | `usePagination` | `buildPaginationItems`, `BuildPaginationItemsParams`, `PaginationPageItem` |
159
- | `usePrefersColorScheme` | `usePrefersColorScheme` | `ColorSchemePreference` |
160
- | `usePrefersReducedMotion` | `usePrefersReducedMotion` | `prefers-reduced-motion` |
161
- | `useResizeObserver` | `useResizeObserver` | `ElementSize` |
162
- | `useSessionStorage` | `useSessionStorage` | `UseSessionStorageResult` |
163
- | `useThrottledCallback` | `useThrottledCallback` | Throttled callback ref |
164
- | `useToggle` | `useToggle` | Boolean toggle state |
165
- | `useWindowSize` | `useWindowSize` | `WindowSize` |
166
- | `cn`, `clampPage`, `range` | `utils` | Shared helpers from `src/lib/utils.ts` |
138
+ | Hook / module | Subpath `…/hooks/…` | Notes (selected exports) |
139
+ | --------------------------- | --------------------------- | -------------------------------------------------------------------------- |
140
+ | `useBodyScrollLock` | `useBodyScrollLock` | Locks document scroll while open |
141
+ | `useClickOutside` | `useClickOutside` | `ClickOutsideEventType`, `UseClickOutsideParams` |
142
+ | `useClipboard` | `useClipboard` | `UseClipboardResult` |
143
+ | `useControllableState` | `useControllableState` | `UseControllableStateParams` |
144
+ | `useDebouncedValue` | `useDebouncedValue` | Debounced state from a value |
145
+ | `useDisclosure` | `useDisclosure` | `UseDisclosureParams`, `UseDisclosureResult` |
146
+ | `useDocumentTitle` | `useDocumentTitle` | `UseDocumentTitleParams` |
147
+ | `useFocusManagement` | `useFocusManagement` | Focus trap / focus moves for overlays |
148
+ | `useHover` | `useHover` | Pointer hover state |
149
+ | `useInView` | `useInView` | `UseInViewParams` |
150
+ | `useIntersectionObserver` | `useIntersectionObserver` | `UseIntersectionObserverParams` |
151
+ | `useIsomorphicLayoutEffect` | `useIsomorphicLayoutEffect` | `useLayoutEffect` safe for SSR |
152
+ | `useIsMounted` | `useIsMounted` | Ref / flag after mount |
153
+ | `useLocalStorage` | `useLocalStorage` | `UseLocalStorageResult` |
154
+ | `useMediaQuery` | `useMediaQuery` | Match CSS media queries |
155
+ | `useNetworkStatus` | `useNetworkStatus` | Online / offline |
156
+ | `usePageVisibility` | `usePageVisibility` | Document visibility API |
157
+ | `usePagination` | `usePagination` | `buildPaginationItems`, `BuildPaginationItemsParams`, `PaginationPageItem` |
158
+ | `usePrefersColorScheme` | `usePrefersColorScheme` | `ColorSchemePreference` |
159
+ | `usePrefersReducedMotion` | `usePrefersReducedMotion` | `prefers-reduced-motion` |
160
+ | `useResizeObserver` | `useResizeObserver` | `ElementSize` |
161
+ | `useSessionStorage` | `useSessionStorage` | `UseSessionStorageResult` |
162
+ | `useThrottledCallback` | `useThrottledCallback` | Throttled callback ref |
163
+ | `useToggle` | `useToggle` | Boolean toggle state |
164
+ | `useWindowSize` | `useWindowSize` | `WindowSize` |
165
+ | `cn`, `clampPage`, `range` | `utils` | Shared helpers from `src/lib/utils.ts` |
167
166
 
168
167
  #### Hook import example
169
168
 
@@ -373,10 +372,10 @@ node node_modules/@zentauri-ui/zentauri-components/cli/index.mjs add accordion
373
372
  node node_modules/@zentauri-ui/zentauri-components/cli/index.mjs add hook useWindowSize
374
373
  ```
375
374
 
376
- | Command | What it does |
377
- | ------- | -------------- |
378
- | `init` | Writes **`components.json`** in the current working directory (or `--cwd`) with default `aliases` and `resolvedPaths`. Refuses to overwrite an existing file. |
379
- | `add <names...>` | Walks up from `--cwd` (default `.`) to find `components.json`, then copies each resolved **UI** folder under `src/ui`, pulls in hooks those files depend on (including transitive hook imports), and creates **`lib/utils`** at `resolvedPaths.utils` from the package template if it is missing. |
375
+ | Command | What it does |
376
+ | --------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
377
+ | `init` | Writes **`components.json`** in the current working directory (or `--cwd`) with default `aliases` and `resolvedPaths`. Refuses to overwrite an existing file. |
378
+ | `add <names...>` | Walks up from `--cwd` (default `.`) to find `components.json`, then copies each resolved **UI** folder under `src/ui`, pulls in hooks those files depend on (including transitive hook imports), and creates **`lib/utils`** at `resolvedPaths.utils` from the package template if it is missing. |
380
379
  | `add hook <names...>` | Same config lookup; copies only **hook** folders listed under `registry.hooks` (from `hooksEntryNames` in `tsup.config.ts`), including transitive sibling-hook imports. Does not copy UI unless a hook’s imports require you to add a component separately (for example `usePagination` imports types from `ui/pagination`). |
381
380
 
382
381
  Global flags: `-h` / `--help`, `-v` / `--version`, `--cwd <dir>` (relative to `process.cwd()`).
@@ -417,10 +416,10 @@ After `add`, imports inside copied `.ts`/`.tsx` files are rewritten using your `
417
416
 
418
417
  ### When to use the CLI vs npm imports
419
418
 
420
- | Approach | Best when |
421
- | -------- | ----------- |
422
- | **`npm` + package `exports`** (earlier sections) | You want versioned dependencies, smallest app-owned surface, and tree-shaken `dist/` entries. |
423
- | **`init` / `add`** | You want vendored source under your repo (customize primitives, match shadcn-style workflows, or lock file-level behavior). |
419
+ | Approach | Best when |
420
+ | ------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------- |
421
+ | **`npm` + package `exports`** (earlier sections) | You want versioned dependencies, smallest app-owned surface, and tree-shaken `dist/` entries. |
422
+ | **`init` / `add`** | You want vendored source under your repo (customize primitives, match shadcn-style workflows, or lock file-level behavior). |
424
423
 
425
424
  Tailwind still needs to see the classes your **copied** files use—point `@source` at those paths (for example your `src/components/ui`) rather than only at `node_modules/@zentauri-ui/zentauri-components` if you no longer rely on scanning the published package.
426
425
 
@@ -439,6 +438,7 @@ From this package directory in the monorepo:
439
438
  - **`prepack`** — invokes `generate:registry` automatically before `npm pack` / publish so the published tarball always ships an up-to-date registry alongside `cli/index.mjs`.
440
439
 
441
440
  ## Github Release log
441
+
442
442
  https://github.com/ShubhamTiwari909/zentauri-ui/releases
443
443
 
444
444
  ## NOTE:
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var chunkUOZYPWDZ_js = require('./chunk-UOZYPWDZ.js');
3
+ var chunkZS5756ZC_js = require('./chunk-ZS5756ZC.js');
4
4
  var react = require('react');
5
5
 
6
6
  function usePagination({
@@ -12,13 +12,13 @@ function usePagination({
12
12
  onPageChange
13
13
  }) {
14
14
  const [internalPage, setInternalPage] = react.useState(
15
- () => chunkUOZYPWDZ_js.clampPage(defaultPage, pageCount)
15
+ () => chunkZS5756ZC_js.clampPage(defaultPage, pageCount)
16
16
  );
17
17
  const isControlled = page !== void 0;
18
- const currentPage = chunkUOZYPWDZ_js.clampPage(isControlled ? page : internalPage, pageCount);
18
+ const currentPage = chunkZS5756ZC_js.clampPage(isControlled ? page : internalPage, pageCount);
19
19
  const setPage = react.useCallback(
20
20
  (next) => {
21
- const clamped = chunkUOZYPWDZ_js.clampPage(next, pageCount);
21
+ const clamped = chunkZS5756ZC_js.clampPage(next, pageCount);
22
22
  if (!isControlled) {
23
23
  setInternalPage(clamped);
24
24
  }
@@ -69,10 +69,10 @@ function buildPaginationItems({
69
69
  }
70
70
  const safeBoundary = Math.max(1, boundaryCount);
71
71
  const safeSibling = Math.max(0, siblingCount);
72
- const current = chunkUOZYPWDZ_js.clampPage(currentPage, pageCount);
72
+ const current = chunkZS5756ZC_js.clampPage(currentPage, pageCount);
73
73
  const totalNumbers = safeBoundary * 2 + safeSibling * 2 + 1;
74
74
  if (pageCount <= totalNumbers) {
75
- return chunkUOZYPWDZ_js.range(1, pageCount).map((value) => ({ type: "page", value }));
75
+ return chunkZS5756ZC_js.range(1, pageCount).map((value) => ({ type: "page", value }));
76
76
  }
77
77
  const leftBoundaryEnd = safeBoundary;
78
78
  const rightBoundaryStart = pageCount - safeBoundary + 1;
@@ -103,5 +103,5 @@ function buildPaginationItems({
103
103
 
104
104
  exports.buildPaginationItems = buildPaginationItems;
105
105
  exports.usePagination = usePagination;
106
- //# sourceMappingURL=chunk-JE3PD5ZA.js.map
107
- //# sourceMappingURL=chunk-JE3PD5ZA.js.map
106
+ //# sourceMappingURL=chunk-2VUMVDR3.js.map
107
+ //# sourceMappingURL=chunk-2VUMVDR3.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/hooks/usePagination/usePagination.ts"],"names":["useState","clampPage","useCallback","useMemo","range"],"mappings":"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","file":"chunk-JE3PD5ZA.js","sourcesContent":["\"use client\";\n\nimport { useCallback, useMemo, useState } from \"react\";\n\nimport type {\n PaginationPageItem,\n UsePaginationParams,\n UsePaginationResult,\n} from \"../../ui/pagination/types\";\nimport { clampPage, range } from \"../../lib/utils\";\n\nexport type { PaginationPageItem } from \"../../ui/pagination/types\";\n\nexport type BuildPaginationItemsParams = {\n pageCount: number;\n currentPage: number;\n siblingCount: number;\n boundaryCount: number;\n};\n\n/**\n * Headless pagination state: current page, derived page button items, and prev/next helpers.\n *\n * Supports controlled mode when `page` is passed from the parent, or internal state seeded by `defaultPage`.\n * All page indices are **1-based** and clamped to `[1, pageCount]` via {@link clampPage}. `items` is memoized from\n * {@link buildPaginationItems} for rendering numeric pages and ellipsis gaps.\n *\n * @param params - See `UsePaginationParams` in `../ui/pagination/types` for full fields (`pageCount`, `page`, `onPageChange`, etc.).\n * @returns Current page, item list, `setPage`, navigation helpers, and `canGoPrev` / `canGoNext` flags.\n */\nexport function usePagination({\n pageCount,\n page,\n defaultPage = 1,\n siblingCount = 1,\n boundaryCount = 1,\n onPageChange,\n}: UsePaginationParams): UsePaginationResult {\n const [internalPage, setInternalPage] = useState(() =>\n clampPage(defaultPage, pageCount),\n );\n\n const isControlled = page !== undefined;\n const currentPage = clampPage(isControlled ? page : internalPage, pageCount);\n\n const setPage = useCallback(\n (next: number) => {\n const clamped = clampPage(next, pageCount);\n if (!isControlled) {\n setInternalPage(clamped);\n }\n onPageChange?.(clamped);\n },\n [isControlled, onPageChange, pageCount],\n );\n\n const items = useMemo(\n () =>\n buildPaginationItems({\n pageCount,\n currentPage,\n siblingCount,\n boundaryCount,\n }),\n [boundaryCount, currentPage, pageCount, siblingCount],\n );\n\n const canGoPrev = pageCount > 0 && currentPage > 1;\n const canGoNext = pageCount > 0 && currentPage < pageCount;\n\n const goPrev = useCallback(() => {\n if (canGoPrev) {\n setPage(currentPage - 1);\n }\n }, [canGoPrev, currentPage, setPage]);\n\n const goNext = useCallback(() => {\n if (canGoNext) {\n setPage(currentPage + 1);\n }\n }, [canGoNext, currentPage, setPage]);\n\n return {\n currentPage,\n pageCount,\n items,\n setPage,\n goPrev,\n goNext,\n canGoPrev,\n canGoNext,\n };\n}\n\n/**\n * Builds the ordered list of page numbers and ellipsis markers for a pagination control.\n *\n * @param params.pageCount - Total number of pages (must be >= 0; empty list when 0).\n * @param params.currentPage - Active page index (1-based).\n * @param params.siblingCount - How many page buttons to show on each side of the current page.\n * @param params.boundaryCount - How many pages to pin at the start and end of the range.\n * @returns Items suitable for rendering, e.g. page `1`, ellipsis gap, middle window, ellipsis, last page.\n */\nexport function buildPaginationItems({\n pageCount,\n currentPage,\n siblingCount,\n boundaryCount,\n}: BuildPaginationItemsParams): PaginationPageItem[] {\n if (pageCount <= 0) {\n return [];\n }\n\n const safeBoundary = Math.max(1, boundaryCount);\n const safeSibling = Math.max(0, siblingCount);\n const current = clampPage(currentPage, pageCount);\n\n const totalNumbers = safeBoundary * 2 + safeSibling * 2 + 1;\n if (pageCount <= totalNumbers) {\n return range(1, pageCount).map((value) => ({ type: \"page\", value }));\n }\n\n const leftBoundaryEnd = safeBoundary;\n const rightBoundaryStart = pageCount - safeBoundary + 1;\n\n const siblingsStart = Math.max(current - safeSibling, leftBoundaryEnd + 1);\n const siblingsEnd = Math.min(current + safeSibling, rightBoundaryStart - 1);\n\n const pages = new Set<number>();\n for (let p = 1; p <= leftBoundaryEnd; p += 1) {\n pages.add(p);\n }\n for (let p = rightBoundaryStart; p <= pageCount; p += 1) {\n pages.add(p);\n }\n for (let p = siblingsStart; p <= siblingsEnd; p += 1) {\n pages.add(p);\n }\n\n const sorted = [...pages].sort((a, b) => a - b);\n const items: PaginationPageItem[] = [];\n\n for (let i = 0; i < sorted.length; i += 1) {\n const value = sorted[i];\n const prev = sorted[i - 1];\n if (i > 0 && prev !== undefined && value && value - prev > 1) {\n items.push({ type: \"ellipsis\", key: `gap-${prev}-${value}` });\n }\n items.push({ type: \"page\", value: value as number });\n }\n\n return items;\n}\n"]}
1
+ {"version":3,"sources":["../src/hooks/usePagination/usePagination.ts"],"names":["useState","clampPage","useCallback","useMemo","range"],"mappings":"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","file":"chunk-2VUMVDR3.js","sourcesContent":["\"use client\";\n\nimport { useCallback, useMemo, useState } from \"react\";\n\nimport type {\n PaginationPageItem,\n UsePaginationParams,\n UsePaginationResult,\n} from \"../../ui/pagination/types\";\nimport { clampPage, range } from \"../../lib/utils\";\n\nexport type { PaginationPageItem } from \"../../ui/pagination/types\";\n\nexport type BuildPaginationItemsParams = {\n pageCount: number;\n currentPage: number;\n siblingCount: number;\n boundaryCount: number;\n};\n\n/**\n * Headless pagination state: current page, derived page button items, and prev/next helpers.\n *\n * Supports controlled mode when `page` is passed from the parent, or internal state seeded by `defaultPage`.\n * All page indices are **1-based** and clamped to `[1, pageCount]` via {@link clampPage}. `items` is memoized from\n * {@link buildPaginationItems} for rendering numeric pages and ellipsis gaps.\n *\n * @param params - See `UsePaginationParams` in `../ui/pagination/types` for full fields (`pageCount`, `page`, `onPageChange`, etc.).\n * @returns Current page, item list, `setPage`, navigation helpers, and `canGoPrev` / `canGoNext` flags.\n */\nexport function usePagination({\n pageCount,\n page,\n defaultPage = 1,\n siblingCount = 1,\n boundaryCount = 1,\n onPageChange,\n}: UsePaginationParams): UsePaginationResult {\n const [internalPage, setInternalPage] = useState(() =>\n clampPage(defaultPage, pageCount),\n );\n\n const isControlled = page !== undefined;\n const currentPage = clampPage(isControlled ? page : internalPage, pageCount);\n\n const setPage = useCallback(\n (next: number) => {\n const clamped = clampPage(next, pageCount);\n if (!isControlled) {\n setInternalPage(clamped);\n }\n onPageChange?.(clamped);\n },\n [isControlled, onPageChange, pageCount],\n );\n\n const items = useMemo(\n () =>\n buildPaginationItems({\n pageCount,\n currentPage,\n siblingCount,\n boundaryCount,\n }),\n [boundaryCount, currentPage, pageCount, siblingCount],\n );\n\n const canGoPrev = pageCount > 0 && currentPage > 1;\n const canGoNext = pageCount > 0 && currentPage < pageCount;\n\n const goPrev = useCallback(() => {\n if (canGoPrev) {\n setPage(currentPage - 1);\n }\n }, [canGoPrev, currentPage, setPage]);\n\n const goNext = useCallback(() => {\n if (canGoNext) {\n setPage(currentPage + 1);\n }\n }, [canGoNext, currentPage, setPage]);\n\n return {\n currentPage,\n pageCount,\n items,\n setPage,\n goPrev,\n goNext,\n canGoPrev,\n canGoNext,\n };\n}\n\n/**\n * Builds the ordered list of page numbers and ellipsis markers for a pagination control.\n *\n * @param params.pageCount - Total number of pages (must be >= 0; empty list when 0).\n * @param params.currentPage - Active page index (1-based).\n * @param params.siblingCount - How many page buttons to show on each side of the current page.\n * @param params.boundaryCount - How many pages to pin at the start and end of the range.\n * @returns Items suitable for rendering, e.g. page `1`, ellipsis gap, middle window, ellipsis, last page.\n */\nexport function buildPaginationItems({\n pageCount,\n currentPage,\n siblingCount,\n boundaryCount,\n}: BuildPaginationItemsParams): PaginationPageItem[] {\n if (pageCount <= 0) {\n return [];\n }\n\n const safeBoundary = Math.max(1, boundaryCount);\n const safeSibling = Math.max(0, siblingCount);\n const current = clampPage(currentPage, pageCount);\n\n const totalNumbers = safeBoundary * 2 + safeSibling * 2 + 1;\n if (pageCount <= totalNumbers) {\n return range(1, pageCount).map((value) => ({ type: \"page\", value }));\n }\n\n const leftBoundaryEnd = safeBoundary;\n const rightBoundaryStart = pageCount - safeBoundary + 1;\n\n const siblingsStart = Math.max(current - safeSibling, leftBoundaryEnd + 1);\n const siblingsEnd = Math.min(current + safeSibling, rightBoundaryStart - 1);\n\n const pages = new Set<number>();\n for (let p = 1; p <= leftBoundaryEnd; p += 1) {\n pages.add(p);\n }\n for (let p = rightBoundaryStart; p <= pageCount; p += 1) {\n pages.add(p);\n }\n for (let p = siblingsStart; p <= siblingsEnd; p += 1) {\n pages.add(p);\n }\n\n const sorted = [...pages].sort((a, b) => a - b);\n const items: PaginationPageItem[] = [];\n\n for (let i = 0; i < sorted.length; i += 1) {\n const value = sorted[i];\n const prev = sorted[i - 1];\n if (i > 0 && prev !== undefined && value && value - prev > 1) {\n items.push({ type: \"ellipsis\", key: `gap-${prev}-${value}` });\n }\n items.push({ type: \"page\", value: value as number });\n }\n\n return items;\n}\n"]}
@@ -23,5 +23,5 @@ var clamp = (value, min, max) => {
23
23
  };
24
24
 
25
25
  export { clamp, clampPage, cn, range };
26
- //# sourceMappingURL=chunk-DFEZH7TC.mjs.map
27
- //# sourceMappingURL=chunk-DFEZH7TC.mjs.map
26
+ //# sourceMappingURL=chunk-4D54YOL6.mjs.map
27
+ //# sourceMappingURL=chunk-4D54YOL6.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/lib/utils.ts"],"names":[],"mappings":";;;;AAGO,SAAS,MAAM,MAAA,EAAsB;AAC1C,EAAA,OAAO,OAAA,CAAQ,IAAA,CAAK,MAAM,CAAC,CAAA;AAC7B;AAEO,IAAM,SAAA,GAAY,CAAC,IAAA,EAAc,SAAA,KAA8B;AACpE,EAAA,IAAI,aAAa,CAAA,EAAG;AAClB,IAAA,OAAO,CAAA;AAAA,EACT;AACA,EAAA,OAAO,IAAA,CAAK,GAAA,CAAI,SAAA,EAAW,IAAA,CAAK,GAAA,CAAI,GAAG,IAAA,CAAK,KAAA,CAAM,IAAI,CAAC,CAAC,CAAA;AAC1D;AAEO,IAAM,KAAA,GAAQ,CAAC,IAAA,EAAc,EAAA,KAAyB;AAC3D,EAAA,MAAM,MAAgB,EAAC;AACvB,EAAA,KAAA,IAAS,CAAA,GAAI,IAAA,EAAM,CAAA,IAAK,EAAA,EAAI,KAAK,CAAA,EAAG;AAClC,IAAA,GAAA,CAAI,KAAK,CAAC,CAAA;AAAA,EACZ;AACA,EAAA,OAAO,GAAA;AACT;AAEO,IAAM,KAAA,GAAQ,CAAC,KAAA,EAAe,GAAA,EAAa,GAAA,KAAgB;AAChE,EAAA,OAAO,KAAK,GAAA,CAAI,GAAA,EAAK,KAAK,GAAA,CAAI,GAAA,EAAK,KAAK,CAAC,CAAA;AAC3C","file":"chunk-DFEZH7TC.mjs","sourcesContent":["import { type ClassValue, clsx } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n\nexport const clampPage = (page: number, pageCount: number): number => {\n if (pageCount <= 0) {\n return 1;\n }\n return Math.min(pageCount, Math.max(1, Math.floor(page)));\n}\n\nexport const range = (from: number, to: number): number[] => {\n const out: number[] = [];\n for (let i = from; i <= to; i += 1) {\n out.push(i);\n }\n return out;\n}\n\nexport const clamp = (value: number, min: number, max: number) => {\n return Math.min(max, Math.max(min, value));\n}\n"]}
1
+ {"version":3,"sources":["../src/lib/utils.ts"],"names":[],"mappings":";;;;AAGO,SAAS,MAAM,MAAA,EAAsB;AAC1C,EAAA,OAAO,OAAA,CAAQ,IAAA,CAAK,MAAM,CAAC,CAAA;AAC7B;AAEO,IAAM,SAAA,GAAY,CAAC,IAAA,EAAc,SAAA,KAA8B;AACpE,EAAA,IAAI,aAAa,CAAA,EAAG;AAClB,IAAA,OAAO,CAAA;AAAA,EACT;AACA,EAAA,OAAO,IAAA,CAAK,GAAA,CAAI,SAAA,EAAW,IAAA,CAAK,GAAA,CAAI,GAAG,IAAA,CAAK,KAAA,CAAM,IAAI,CAAC,CAAC,CAAA;AAC1D;AAEO,IAAM,KAAA,GAAQ,CAAC,IAAA,EAAc,EAAA,KAAyB;AAC3D,EAAA,MAAM,MAAgB,EAAC;AACvB,EAAA,KAAA,IAAS,CAAA,GAAI,IAAA,EAAM,CAAA,IAAK,EAAA,EAAI,KAAK,CAAA,EAAG;AAClC,IAAA,GAAA,CAAI,KAAK,CAAC,CAAA;AAAA,EACZ;AACA,EAAA,OAAO,GAAA;AACT;AAEO,IAAM,KAAA,GAAQ,CAAC,KAAA,EAAe,GAAA,EAAa,GAAA,KAAgB;AAChE,EAAA,OAAO,KAAK,GAAA,CAAI,GAAA,EAAK,KAAK,GAAA,CAAI,GAAA,EAAK,KAAK,CAAC,CAAA;AAC3C","file":"chunk-4D54YOL6.mjs","sourcesContent":["import { type ClassValue, clsx } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n\nexport const clampPage = (page: number, pageCount: number): number => {\n if (pageCount <= 0) {\n return 1;\n }\n return Math.min(pageCount, Math.max(1, Math.floor(page)));\n};\n\nexport const range = (from: number, to: number): number[] => {\n const out: number[] = [];\n for (let i = from; i <= to; i += 1) {\n out.push(i);\n }\n return out;\n};\n\nexport const clamp = (value: number, min: number, max: number) => {\n return Math.min(max, Math.max(min, value));\n};\n"]}
@@ -1,4 +1,4 @@
1
- import { cn } from './chunk-DFEZH7TC.mjs';
1
+ import { cn } from './chunk-4D54YOL6.mjs';
2
2
  import { cva } from 'class-variance-authority';
3
3
  import { createContext, useContext, useState, useRef, useCallback, useMemo, useEffect } from 'react';
4
4
  import { createPortal } from 'react-dom';
@@ -43,15 +43,15 @@ var toastRootVariants = cva(
43
43
  gray: "border-gray-600 bg-gray-950/70 backdrop-blur-xl",
44
44
  amber: "border-amber-600 bg-amber-950/70 backdrop-blur-xl",
45
45
  violet: "border-violet-600 bg-violet-950/70 backdrop-blur-xl",
46
- "gradient-blue": "border-gradient-to-r from-blue-600 to-purple-600 bg-gradient-to-r from-blue-950/70 to-purple-950/70 backdrop-blur-xl",
47
- "gradient-green": "border-gradient-to-r from-green-600 to-lime-600 bg-gradient-to-r from-green-950/70 to-lime-950/70 backdrop-blur-xl",
48
- "gradient-red": "border-gradient-to-r from-red-600 to-pink-600 bg-gradient-to-r from-red-950/70 to-pink-950/70 backdrop-blur-xl",
49
- "gradient-yellow": "border-gradient-to-r from-yellow-600 to-orange-600 bg-gradient-to-r from-yellow-950/70 to-orange-950/70 backdrop-blur-xl",
50
- "gradient-purple": "border-gradient-to-r from-purple-600 to-pink-600 bg-gradient-to-r from-purple-950/70 to-pink-950/70 backdrop-blur-xl",
51
- "gradient-teal": "border-gradient-to-r from-teal-600 to-cyan-600 bg-gradient-to-r from-teal-950/70 to-cyan-950/70 backdrop-blur-xl",
52
- "gradient-indigo": "border-gradient-to-r from-indigo-600 to-purple-600 bg-gradient-to-r from-indigo-950/70 to-purple-950/70 backdrop-blur-xl",
53
- "gradient-pink": "border-gradient-to-r from-pink-600 to-rose-600 bg-gradient-to-r from-pink-950/70 to-rose-950/70 backdrop-blur-xl",
54
- "gradient-orange": "border-gradient-to-r from-orange-600 to-red-600 bg-gradient-to-r from-orange-950/70 to-red-950/70 backdrop-blur-xl"
46
+ "gradient-blue": "border-gradient-to-r from-blue-600 to-purple-600 bg-linear-to-r from-blue-950/70 to-purple-950/70 backdrop-blur-xl",
47
+ "gradient-green": "border-gradient-to-r from-green-600 to-lime-600 bg-linear-to-r from-green-950/70 to-lime-950/70 backdrop-blur-xl",
48
+ "gradient-red": "border-gradient-to-r from-red-600 to-pink-600 bg-linear-to-r from-red-950/70 to-pink-950/70 backdrop-blur-xl",
49
+ "gradient-yellow": "border-gradient-to-r from-yellow-600 to-orange-600 bg-linear-to-r from-yellow-950/70 to-orange-950/70 backdrop-blur-xl",
50
+ "gradient-purple": "border-gradient-to-r from-purple-600 to-pink-600 bg-linear-to-r from-purple-950/70 to-pink-950/70 backdrop-blur-xl",
51
+ "gradient-teal": "border-gradient-to-r from-teal-600 to-cyan-600 bg-linear-to-r from-teal-950/70 to-cyan-950/70 backdrop-blur-xl",
52
+ "gradient-indigo": "border-gradient-to-r from-indigo-600 to-purple-600 bg-linear-to-r from-indigo-950/70 to-purple-950/70 backdrop-blur-xl",
53
+ "gradient-pink": "border-gradient-to-r from-pink-600 to-rose-600 bg-linear-to-r from-pink-950/70 to-rose-950/70 backdrop-blur-xl",
54
+ "gradient-orange": "border-gradient-to-r from-orange-600 to-red-600 bg-linear-to-r from-orange-950/70 to-red-950/70 backdrop-blur-xl"
55
55
  },
56
56
  size: {
57
57
  sm: "p-3 text-xs",
@@ -224,7 +224,7 @@ function ToastClose({
224
224
  "data-slot": "toast-close",
225
225
  "aria-label": "Dismiss notification",
226
226
  className: cn(
227
- "absolute right-3 top-3 inline-flex size-8 items-center justify-center rounded-md text-slate-200 transition hover:bg-white/10",
227
+ "absolute right-3 top-3 inline-flex size-8 items-center justify-center rounded-md text-slate-200 transition hover:bg-white/10 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-white/40 focus-visible:ring-offset-2 focus-visible:ring-offset-slate-950",
228
228
  className
229
229
  ),
230
230
  onClick,
@@ -236,5 +236,5 @@ function ToastClose({
236
236
  ToastClose.displayName = "ToastClose";
237
237
 
238
238
  export { Toast, ToastAction, ToastClose, ToastDescription, ToastProvider, ToastStoreContext, ToastTitle, ToastViewport, toast, toastRootVariants, toastViewportVariants, useToast };
239
- //# sourceMappingURL=chunk-UXGHUBNJ.mjs.map
240
- //# sourceMappingURL=chunk-UXGHUBNJ.mjs.map
239
+ //# sourceMappingURL=chunk-4LT2GNJL.mjs.map
240
+ //# sourceMappingURL=chunk-4LT2GNJL.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/ui/toast/variants.ts","../src/ui/toast/toast-base.tsx"],"names":[],"mappings":";;;;;;AAEO,IAAM,qBAAA,GAAwB,GAAA;AAAA,EACnC,mDAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,QAAA,EAAU;AAAA,QACR,UAAA,EAAY,0BAAA;AAAA,QACZ,YAAA,EAAc,8CAAA;AAAA,QACd,WAAA,EAAa,yBAAA;AAAA,QACb,aAAA,EAAe,6BAAA;AAAA,QACf,eAAA,EAAiB,iDAAA;AAAA,QACjB,cAAA,EAAgB;AAAA;AAClB,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,QAAA,EAAU;AAAA;AACZ;AAEJ;AAEO,IAAM,iBAAA,GAAoB,GAAA;AAAA,EAC/B,yJAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,UAAA,EAAY;AAAA,QACV,OAAA,EAAS,cAAA;AAAA,QACT,OAAA,EAAS,sCAAA;AAAA,QACT,OAAA,EAAS,kCAAA;AAAA,QACT,KAAA,EAAO,gCAAA;AAAA,QACP,IAAA,EAAM,8BAAA;AAAA,QACN,KAAA,EAAO,kDAAA;AAAA,QACP,MAAA,EAAQ,qDAAA;AAAA,QACR,IAAA,EAAM,iDAAA;AAAA,QACN,MAAA,EAAQ,qDAAA;AAAA,QACR,MAAA,EAAQ,qDAAA;AAAA,QACR,IAAA,EAAM,iDAAA;AAAA,QACN,MAAA,EAAQ,qDAAA;AAAA,QACR,OAAA,EAAS,uDAAA;AAAA,QACT,IAAA,EAAM,iDAAA;AAAA,QACN,KAAA,EAAO,mDAAA;AAAA,QACP,MAAA,EAAQ,qDAAA;AAAA,QACR,eAAA,EACE,sHAAA;AAAA,QACF,gBAAA,EACE,oHAAA;AAAA,QACF,cAAA,EACE,gHAAA;AAAA,QACF,iBAAA,EACE,0HAAA;AAAA,QACF,iBAAA,EACE,sHAAA;AAAA,QACF,eAAA,EACE,kHAAA;AAAA,QACF,iBAAA,EACE,0HAAA;AAAA,QACF,eAAA,EACE,kHAAA;AAAA,QACF,iBAAA,EACE;AAAA,OACJ;AAAA,MACA,IAAA,EAAM;AAAA,QACJ,EAAA,EAAI,aAAA;AAAA,QACJ,EAAA,EAAI,aAAA;AAAA,QACJ,EAAA,EAAI;AAAA;AACN,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,UAAA,EAAY,SAAA;AAAA,MACZ,IAAA,EAAM;AAAA;AACR;AAEJ;AC7CO,IAAM,iBAAA,GAAoB,aAAA;AAAA,EAC/B;AACF;AAEA,IAAI,eAAA,GAAyD,IAAA;AAEtD,SAAS,MAAM,KAAA,EAAmB;AACvC,EAAA,IAAI,CAAC,eAAA,EAAiB;AACpB,IAAA,OAAO,EAAA;AAAA,EACT;AACA,EAAA,OAAO,gBAAgB,KAAK,CAAA;AAC9B;AAEO,SAAS,QAAA,GAA8B;AAC5C,EAAA,MAAM,GAAA,GAAM,WAAW,iBAAiB,CAAA;AACxC,EAAA,IAAI,CAAC,GAAA,EAAK;AACR,IAAA,MAAM,IAAI,MAAM,8CAA8C,CAAA;AAAA,EAChE;AACA,EAAA,OAAO,EAAE,KAAA,EAAO,GAAA,CAAI,IAAA,EAAM,OAAA,EAAS,IAAI,OAAA,EAAQ;AACjD;AAEO,SAAS,aAAA,CAAc,EAAE,QAAA,EAAS,EAAuB;AAC9D,EAAA,MAAM,CAAC,MAAA,EAAQ,SAAS,CAAA,GAAI,QAAA,CAA0B,EAAE,CAAA;AACxD,EAAA,MAAM,MAAA,GAAS,MAAA,iBAA4B,IAAI,GAAA,EAAK,CAAA;AAEpD,EAAA,MAAM,OAAA,GAAU,WAAA,CAAY,CAAC,EAAA,KAAe;AAC1C,IAAA,MAAM,OAAA,GAAU,MAAA,CAAO,OAAA,CAAQ,GAAA,CAAI,EAAE,CAAA;AACrC,IAAA,IAAI,OAAA,EAAS;AACX,MAAA,MAAA,CAAO,aAAa,OAAO,CAAA;AAC3B,MAAA,MAAA,CAAO,OAAA,CAAQ,OAAO,EAAE,CAAA;AAAA,IAC1B;AACA,IAAA,SAAA,CAAU,CAAC,SAAS,IAAA,CAAK,MAAA,CAAO,CAAC,SAAA,KAAc,SAAA,CAAU,EAAA,KAAO,EAAE,CAAC,CAAA;AAAA,EACrE,CAAA,EAAG,EAAE,CAAA;AAEL,EAAA,MAAM,IAAA,GAAO,WAAA;AAAA,IACX,CAAC,KAAA,KAAsB;AACrB,MAAA,MAAM,EAAA,GAAK,KAAA,CAAM,EAAA,IAAM,CAAA,MAAA,EAAS,IAAA,CAAK,MAAA,EAAO,CAAE,QAAA,CAAS,EAAE,CAAA,CAAE,KAAA,CAAM,CAAC,CAAC,CAAA,CAAA;AACnE,MAAA,MAAM,UAAA,GAAa,MAAM,UAAA,IAAc,IAAA;AACvC,MAAA,MAAM,MAAA,GAAwB;AAAA,QAC5B,GAAG,KAAA;AAAA,QACH,EAAA;AAAA,QACA,UAAA;AAAA,QACA,SAAA,EAAW,MAAM,SAAA,IAAa;AAAA,OAChC;AACA,MAAA,SAAA,CAAU,CAAC,IAAA,KAAS,CAAC,GAAG,IAAA,EAAM,MAAM,CAAC,CAAA;AACrC,MAAA,MAAM,UAAU,MAAA,CAAO,UAAA,CAAW,MAAM,OAAA,CAAQ,EAAE,GAAG,UAAU,CAAA;AAC/D,MAAA,MAAA,CAAO,OAAA,CAAQ,GAAA,CAAI,EAAA,EAAI,OAAO,CAAA;AAC9B,MAAA,OAAO,EAAA;AAAA,IACT,CAAA;AAAA,IACA,CAAC,OAAO;AAAA,GACV;AAEA,EAAA,MAAM,GAAA,GAAM,OAAA;AAAA,IACV,OAAO;AAAA,MACL,MAAA;AAAA,MACA,IAAA;AAAA,MACA;AAAA,KACF,CAAA;AAAA,IACA,CAAC,OAAA,EAAS,IAAA,EAAM,MAAM;AAAA,GACxB;AAEA,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,eAAA,GAAkB,IAAA;AAClB,IAAA,OAAO,MAAM;AACX,MAAA,eAAA,GAAkB,IAAA;AAAA,IACpB,CAAA;AAAA,EACF,CAAA,EAAG,CAAC,IAAI,CAAC,CAAA;AAET,EAAA,2BACG,iBAAA,CAAkB,QAAA,EAAlB,EAA2B,KAAA,EAAO,KAChC,QAAA,EACH,CAAA;AAEJ;AAEA,aAAA,CAAc,WAAA,GAAc,eAAA;AAErB,SAAS,aAAA,CAAc;AAAA,EAC5B,QAAA,GAAW,cAAA;AAAA,EACX;AACF,CAAA,EAAuB;AACrB,EAAA,MAAM,GAAA,GAAM,WAAW,iBAAiB,CAAA;AACxC,EAAA,IAAI,CAAC,GAAA,EAAK;AACR,IAAA,MAAM,IAAI,MAAM,mDAAmD,CAAA;AAAA,EACrE;AAEA,EAAA,MAAM,YAAA,GAAe,OAAO,QAAA,KAAa,WAAA,GAAc,SAAS,IAAA,GAAO,IAAA;AACvE,EAAA,IAAI,CAAC,YAAA,EAAc;AACjB,IAAA,OAAO,IAAA;AAAA,EACT;AAEA,EAAA,OAAO,YAAA;AAAA,oBACL,GAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,WAAW,EAAA,CAAG,qBAAA,CAAsB,EAAE,QAAA,EAAU,GAAG,SAAS,CAAA;AAAA,QAC5D,WAAA,EAAU,gBAAA;AAAA,QAET,QAAA,EAAA,GAAA,CAAI,MAAA,CAAO,GAAA,CAAI,CAAC,IAAA,qBACf,IAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YAEC,SAAS,IAAA,CAAK,EAAA;AAAA,YACd,YAAY,IAAA,CAAK,UAAA;AAAA,YACjB,MAAM,IAAA,CAAK,IAAA;AAAA,YACX,WAAW,IAAA,CAAK,SAAA;AAAA,YAEhB,QAAA,EAAA;AAAA,8BAAA,GAAA,CAAC,UAAA,EAAA,EAAY,eAAK,KAAA,EAAM,CAAA;AAAA,cACvB,KAAK,WAAA,mBACJ,GAAA,CAAC,gBAAA,EAAA,EAAkB,QAAA,EAAA,IAAA,CAAK,aAAY,CAAA,GAClC,IAAA;AAAA,8BACJ,GAAA,CAAC,cAAW,OAAA,EAAS,MAAM,IAAI,OAAA,CAAQ,IAAA,CAAK,EAAE,CAAA,EAAG;AAAA;AAAA,WAAA;AAAA,UAV5C,IAAA,CAAK;AAAA,SAYb;AAAA;AAAA,KACH;AAAA,IACA;AAAA,GACF;AACF;AAEA,aAAA,CAAc,WAAA,GAAc,eAAA;AAErB,SAAS,KAAA,CAAM;AAAA,EACpB,OAAA,EAAS,QAAA;AAAA,EACT,UAAA;AAAA,EACA,IAAA;AAAA,EACA,WAAW,UAAA,GAAa,OAAA;AAAA,EACxB,SAAA;AAAA,EACA;AACF,CAAA,EAAe;AACb,EAAA,MAAM,IAAA,GAAO,UAAA,KAAe,OAAA,GAAU,WAAA,GAAc,QAAA;AAEpD,EAAA,uBACE,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,WAAA,EAAU,OAAA;AAAA,MACV,IAAA,EAAM,UAAA,KAAe,OAAA,GAAU,OAAA,GAAU,QAAA;AAAA,MACzC,WAAA,EAAW,IAAA;AAAA,MACX,aAAA,EAAY,MAAA;AAAA,MACZ,SAAA,EAAW,EAAA;AAAA,QACT,UAAA;AAAA,QACA,iBAAA,CAAkB,EAAE,UAAA,EAAY,IAAA,EAAM,CAAA;AAAA,QACtC;AAAA,OACF;AAAA,MAEC;AAAA;AAAA,GACH;AAEJ;AAEA,KAAA,CAAM,WAAA,GAAc,OAAA;AAEb,SAAS,UAAA,CAAW,EAAE,SAAA,EAAW,QAAA,EAAS,EAAsB;AACrE,EAAA,uBACE,GAAA,CAAC,SAAI,WAAA,EAAU,aAAA,EAAc,WAAW,EAAA,CAAG,eAAA,EAAiB,SAAS,CAAA,EAClE,QAAA,EACH,CAAA;AAEJ;AAEA,UAAA,CAAW,WAAA,GAAc,YAAA;AAElB,SAAS,gBAAA,CAAiB,EAAE,SAAA,EAAW,QAAA,EAAS,EAAsB;AAC3E,EAAA,uBACE,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,WAAA,EAAU,mBAAA;AAAA,MACV,SAAA,EAAW,EAAA,CAAG,wBAAA,EAA0B,SAAS,CAAA;AAAA,MAEhD;AAAA;AAAA,GACH;AAEJ;AAEA,gBAAA,CAAiB,WAAA,GAAc,kBAAA;AAExB,SAAS,WAAA,CAAY,EAAE,SAAA,EAAW,QAAA,EAAS,EAAsB;AACtE,EAAA,uBACE,GAAA,CAAC,SAAI,WAAA,EAAU,cAAA,EAAe,WAAW,EAAA,CAAG,MAAA,EAAQ,SAAS,CAAA,EAC1D,QAAA,EACH,CAAA;AAEJ;AAEA,WAAA,CAAY,WAAA,GAAc,aAAA;AAEnB,SAAS,UAAA,CAAW;AAAA,EACzB,SAAA;AAAA,EACA,QAAA;AAAA,EACA,OAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAiD;AAC/C,EAAA,uBACE,GAAA;AAAA,IAAC,QAAA;AAAA,IAAA;AAAA,MACC,IAAA,EAAK,QAAA;AAAA,MACL,WAAA,EAAU,aAAA;AAAA,MACV,YAAA,EAAW,sBAAA;AAAA,MACX,SAAA,EAAW,EAAA;AAAA,QACT,8HAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,OAAA;AAAA,MACC,GAAG,IAAA;AAAA,MAEH,QAAA,EAAA,QAAA,IAAY;AAAA;AAAA,GACf;AAEJ;AAEA,UAAA,CAAW,WAAA,GAAc,YAAA","file":"chunk-UXGHUBNJ.mjs","sourcesContent":["import { cva } from \"class-variance-authority\";\n\nexport const toastViewportVariants = cva(\n \"fixed z-[60] flex max-h-screen flex-col gap-2 p-4\",\n {\n variants: {\n position: {\n \"top-left\": \"left-0 top-0 items-start\",\n \"top-center\": \"left-1/2 top-0 -translate-x-1/2 items-center\",\n \"top-right\": \"right-0 top-0 items-end\",\n \"bottom-left\": \"bottom-0 left-0 items-start\",\n \"bottom-center\": \"bottom-0 left-1/2 -translate-x-1/2 items-center\",\n \"bottom-right\": \"bottom-0 right-0 items-end\",\n },\n },\n defaultVariants: {\n position: \"bottom-right\",\n },\n },\n);\n\nexport const toastRootVariants = cva(\n \"pointer-events-auto w-[min(100vw-2rem,380px)] rounded-xl border border-white/10 bg-slate-950 p-4 text-slate-50 shadow-[0_18px_48px_rgba(15,23,42,0.45)]\",\n {\n variants: {\n appearance: {\n default: \"bg-slate-950\",\n success: \"border-emerald-500/40 bg-emerald-950\",\n warning: \"border-amber-500/40 bg-amber-950\",\n error: \"border-rose-500/50 bg-rose-950\",\n info: \"border-sky-500/40 bg-sky-950\",\n ghost: \"border-transparent bg-transparent text-slate-200\",\n purple: \"border-purple-600 bg-purple-950/70 backdrop-blur-xl\",\n pink: \"border-pink-600 bg-pink-950/70 backdrop-blur-xl\",\n orange: \"border-orange-600 bg-orange-950/70 backdrop-blur-xl\",\n yellow: \"border-yellow-600 bg-yellow-950/70 backdrop-blur-xl\",\n teal: \"border-teal-600 bg-teal-950/70 backdrop-blur-xl\",\n indigo: \"border-indigo-600 bg-indigo-950/70 backdrop-blur-xl\",\n emerald: \"border-emerald-600 bg-emerald-950/70 backdrop-blur-xl\",\n gray: \"border-gray-600 bg-gray-950/70 backdrop-blur-xl\",\n amber: \"border-amber-600 bg-amber-950/70 backdrop-blur-xl\",\n violet: \"border-violet-600 bg-violet-950/70 backdrop-blur-xl\",\n \"gradient-blue\":\n \"border-gradient-to-r from-blue-600 to-purple-600 bg-gradient-to-r from-blue-950/70 to-purple-950/70 backdrop-blur-xl\",\n \"gradient-green\":\n \"border-gradient-to-r from-green-600 to-lime-600 bg-gradient-to-r from-green-950/70 to-lime-950/70 backdrop-blur-xl\",\n \"gradient-red\":\n \"border-gradient-to-r from-red-600 to-pink-600 bg-gradient-to-r from-red-950/70 to-pink-950/70 backdrop-blur-xl\",\n \"gradient-yellow\":\n \"border-gradient-to-r from-yellow-600 to-orange-600 bg-gradient-to-r from-yellow-950/70 to-orange-950/70 backdrop-blur-xl\",\n \"gradient-purple\":\n \"border-gradient-to-r from-purple-600 to-pink-600 bg-gradient-to-r from-purple-950/70 to-pink-950/70 backdrop-blur-xl\",\n \"gradient-teal\":\n \"border-gradient-to-r from-teal-600 to-cyan-600 bg-gradient-to-r from-teal-950/70 to-cyan-950/70 backdrop-blur-xl\",\n \"gradient-indigo\":\n \"border-gradient-to-r from-indigo-600 to-purple-600 bg-gradient-to-r from-indigo-950/70 to-purple-950/70 backdrop-blur-xl\",\n \"gradient-pink\":\n \"border-gradient-to-r from-pink-600 to-rose-600 bg-gradient-to-r from-pink-950/70 to-rose-950/70 backdrop-blur-xl\",\n \"gradient-orange\":\n \"border-gradient-to-r from-orange-600 to-red-600 bg-gradient-to-r from-orange-950/70 to-red-950/70 backdrop-blur-xl\",\n },\n size: {\n sm: \"p-3 text-xs\",\n md: \"p-4 text-sm\",\n lg: \"p-5 text-base\",\n },\n },\n defaultVariants: {\n appearance: \"default\",\n size: \"md\",\n },\n },\n);\n","\"use client\";\n\nimport {\n createContext,\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport { createPortal } from \"react-dom\";\n\nimport { cn } from \"../../lib/utils\";\n\nimport type {\n ToastContextValue,\n ToastStoreContextValue,\n InternalToast,\n ToastInput,\n ToastProps,\n ToastProviderProps,\n ToastSectionProps,\n ToastViewportProps,\n} from \"./types\";\nimport { toastRootVariants, toastViewportVariants } from \"./variants\";\n\nexport const ToastStoreContext = createContext<ToastStoreContextValue | null>(\n null,\n);\n\nlet toastDispatcher: ToastStoreContextValue[\"push\"] | null = null;\n\nexport function toast(input: ToastInput) {\n if (!toastDispatcher) {\n return \"\";\n }\n return toastDispatcher(input);\n}\n\nexport function useToast(): ToastContextValue {\n const ctx = useContext(ToastStoreContext);\n if (!ctx) {\n throw new Error(\"useToast must be used within <ToastProvider>\");\n }\n return { toast: ctx.push, dismiss: ctx.dismiss };\n}\n\nexport function ToastProvider({ children }: ToastProviderProps) {\n const [toasts, setToasts] = useState<InternalToast[]>([]);\n const timers = useRef<Map<string, number>>(new Map());\n\n const dismiss = useCallback((id: string) => {\n const timerId = timers.current.get(id);\n if (timerId) {\n window.clearTimeout(timerId);\n timers.current.delete(id);\n }\n setToasts((prev) => prev.filter((toastItem) => toastItem.id !== id));\n }, []);\n\n const push = useCallback(\n (input: ToastInput) => {\n const id = input.id ?? `toast-${Math.random().toString(16).slice(2)}`;\n const durationMs = input.durationMs ?? 4500;\n const record: InternalToast = {\n ...input,\n id,\n durationMs,\n animation: input.animation ?? \"slide\",\n };\n setToasts((prev) => [...prev, record]);\n const timerId = window.setTimeout(() => dismiss(id), durationMs);\n timers.current.set(id, timerId);\n return id;\n },\n [dismiss],\n );\n\n const ctx = useMemo(\n () => ({\n toasts,\n push,\n dismiss,\n }),\n [dismiss, push, toasts],\n );\n\n useEffect(() => {\n toastDispatcher = push;\n return () => {\n toastDispatcher = null;\n };\n }, [push]);\n\n return (\n <ToastStoreContext.Provider value={ctx}>\n {children}\n </ToastStoreContext.Provider>\n );\n}\n\nToastProvider.displayName = \"ToastProvider\";\n\nexport function ToastViewport({\n position = \"bottom-right\",\n className,\n}: ToastViewportProps) {\n const ctx = useContext(ToastStoreContext);\n if (!ctx) {\n throw new Error(\"ToastViewport must be used within <ToastProvider>\");\n }\n\n const portalTarget = typeof document !== \"undefined\" ? document.body : null;\n if (!portalTarget) {\n return null;\n }\n\n return createPortal(\n <div\n className={cn(toastViewportVariants({ position }), className)}\n data-slot=\"toast-viewport\"\n >\n {ctx.toasts.map((item) => (\n <Toast\n key={item.id}\n toastId={item.id}\n appearance={item.appearance}\n size={item.size}\n animation={item.animation}\n >\n <ToastTitle>{item.title}</ToastTitle>\n {item.description ? (\n <ToastDescription>{item.description}</ToastDescription>\n ) : null}\n <ToastClose onClick={() => ctx.dismiss(item.id)} />\n </Toast>\n ))}\n </div>,\n portalTarget,\n );\n}\n\nToastViewport.displayName = \"ToastViewport\";\n\nexport function Toast({\n toastId: _toastId,\n appearance,\n size,\n animation: _animation = \"slide\",\n className,\n children,\n}: ToastProps) {\n const live = appearance === \"error\" ? \"assertive\" : \"polite\";\n\n return (\n <div\n data-slot=\"toast\"\n role={appearance === \"error\" ? \"alert\" : \"status\"}\n aria-live={live}\n aria-atomic=\"true\"\n className={cn(\n \"relative\",\n toastRootVariants({ appearance, size }),\n className,\n )}\n >\n {children}\n </div>\n );\n}\n\nToast.displayName = \"Toast\";\n\nexport function ToastTitle({ className, children }: ToastSectionProps) {\n return (\n <div data-slot=\"toast-title\" className={cn(\"font-semibold\", className)}>\n {children}\n </div>\n );\n}\n\nToastTitle.displayName = \"ToastTitle\";\n\nexport function ToastDescription({ className, children }: ToastSectionProps) {\n return (\n <div\n data-slot=\"toast-description\"\n className={cn(\"text-sm text-slate-300\", className)}\n >\n {children}\n </div>\n );\n}\n\nToastDescription.displayName = \"ToastDescription\";\n\nexport function ToastAction({ className, children }: ToastSectionProps) {\n return (\n <div data-slot=\"toast-action\" className={cn(\"mt-3\", className)}>\n {children}\n </div>\n );\n}\n\nToastAction.displayName = \"ToastAction\";\n\nexport function ToastClose({\n className,\n children,\n onClick,\n ...rest\n}: ToastSectionProps & { onClick?: () => void }) {\n return (\n <button\n type=\"button\"\n data-slot=\"toast-close\"\n aria-label=\"Dismiss notification\"\n className={cn(\n \"absolute right-3 top-3 inline-flex size-8 items-center justify-center rounded-md text-slate-200 transition hover:bg-white/10\",\n className,\n )}\n onClick={onClick}\n {...rest}\n >\n {children ?? \"×\"}\n </button>\n );\n}\n\nToastClose.displayName = \"ToastClose\";\n"]}
1
+ {"version":3,"sources":["../src/ui/toast/variants.ts","../src/ui/toast/toast-base.tsx"],"names":[],"mappings":"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","file":"chunk-4LT2GNJL.mjs","sourcesContent":["import { cva } from \"class-variance-authority\";\n\nexport const toastViewportVariants = cva(\n \"fixed z-[60] flex max-h-screen flex-col gap-2 p-4\",\n {\n variants: {\n position: {\n \"top-left\": \"left-0 top-0 items-start\",\n \"top-center\": \"left-1/2 top-0 -translate-x-1/2 items-center\",\n \"top-right\": \"right-0 top-0 items-end\",\n \"bottom-left\": \"bottom-0 left-0 items-start\",\n \"bottom-center\": \"bottom-0 left-1/2 -translate-x-1/2 items-center\",\n \"bottom-right\": \"bottom-0 right-0 items-end\",\n },\n },\n defaultVariants: {\n position: \"bottom-right\",\n },\n },\n);\n\nexport const toastRootVariants = cva(\n \"pointer-events-auto w-[min(100vw-2rem,380px)] rounded-xl border border-white/10 bg-slate-950 p-4 text-slate-50 shadow-[0_18px_48px_rgba(15,23,42,0.45)]\",\n {\n variants: {\n appearance: {\n default: \"bg-slate-950\",\n success: \"border-emerald-500/40 bg-emerald-950\",\n warning: \"border-amber-500/40 bg-amber-950\",\n error: \"border-rose-500/50 bg-rose-950\",\n info: \"border-sky-500/40 bg-sky-950\",\n ghost: \"border-transparent bg-transparent text-slate-200\",\n purple: \"border-purple-600 bg-purple-950/70 backdrop-blur-xl\",\n pink: \"border-pink-600 bg-pink-950/70 backdrop-blur-xl\",\n orange: \"border-orange-600 bg-orange-950/70 backdrop-blur-xl\",\n yellow: \"border-yellow-600 bg-yellow-950/70 backdrop-blur-xl\",\n teal: \"border-teal-600 bg-teal-950/70 backdrop-blur-xl\",\n indigo: \"border-indigo-600 bg-indigo-950/70 backdrop-blur-xl\",\n emerald: \"border-emerald-600 bg-emerald-950/70 backdrop-blur-xl\",\n gray: \"border-gray-600 bg-gray-950/70 backdrop-blur-xl\",\n amber: \"border-amber-600 bg-amber-950/70 backdrop-blur-xl\",\n violet: \"border-violet-600 bg-violet-950/70 backdrop-blur-xl\",\n \"gradient-blue\":\n \"border-gradient-to-r from-blue-600 to-purple-600 bg-linear-to-r from-blue-950/70 to-purple-950/70 backdrop-blur-xl\",\n \"gradient-green\":\n \"border-gradient-to-r from-green-600 to-lime-600 bg-linear-to-r from-green-950/70 to-lime-950/70 backdrop-blur-xl\",\n \"gradient-red\":\n \"border-gradient-to-r from-red-600 to-pink-600 bg-linear-to-r from-red-950/70 to-pink-950/70 backdrop-blur-xl\",\n \"gradient-yellow\":\n \"border-gradient-to-r from-yellow-600 to-orange-600 bg-linear-to-r from-yellow-950/70 to-orange-950/70 backdrop-blur-xl\",\n \"gradient-purple\":\n \"border-gradient-to-r from-purple-600 to-pink-600 bg-linear-to-r from-purple-950/70 to-pink-950/70 backdrop-blur-xl\",\n \"gradient-teal\":\n \"border-gradient-to-r from-teal-600 to-cyan-600 bg-linear-to-r from-teal-950/70 to-cyan-950/70 backdrop-blur-xl\",\n \"gradient-indigo\":\n \"border-gradient-to-r from-indigo-600 to-purple-600 bg-linear-to-r from-indigo-950/70 to-purple-950/70 backdrop-blur-xl\",\n \"gradient-pink\":\n \"border-gradient-to-r from-pink-600 to-rose-600 bg-linear-to-r from-pink-950/70 to-rose-950/70 backdrop-blur-xl\",\n \"gradient-orange\":\n \"border-gradient-to-r from-orange-600 to-red-600 bg-linear-to-r from-orange-950/70 to-red-950/70 backdrop-blur-xl\",\n },\n size: {\n sm: \"p-3 text-xs\",\n md: \"p-4 text-sm\",\n lg: \"p-5 text-base\",\n },\n },\n defaultVariants: {\n appearance: \"default\",\n size: \"md\",\n },\n },\n);\n","\"use client\";\n\nimport {\n createContext,\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport { createPortal } from \"react-dom\";\n\nimport { cn } from \"../../lib/utils\";\n\nimport type {\n ToastContextValue,\n ToastStoreContextValue,\n InternalToast,\n ToastInput,\n ToastProps,\n ToastProviderProps,\n ToastSectionProps,\n ToastViewportProps,\n} from \"./types\";\nimport { toastRootVariants, toastViewportVariants } from \"./variants\";\n\nexport const ToastStoreContext = createContext<ToastStoreContextValue | null>(\n null,\n);\n\nlet toastDispatcher: ToastStoreContextValue[\"push\"] | null = null;\n\nexport function toast(input: ToastInput) {\n if (!toastDispatcher) {\n return \"\";\n }\n return toastDispatcher(input);\n}\n\nexport function useToast(): ToastContextValue {\n const ctx = useContext(ToastStoreContext);\n if (!ctx) {\n throw new Error(\"useToast must be used within <ToastProvider>\");\n }\n return { toast: ctx.push, dismiss: ctx.dismiss };\n}\n\nexport function ToastProvider({ children }: ToastProviderProps) {\n const [toasts, setToasts] = useState<InternalToast[]>([]);\n const timers = useRef<Map<string, number>>(new Map());\n\n const dismiss = useCallback((id: string) => {\n const timerId = timers.current.get(id);\n if (timerId) {\n window.clearTimeout(timerId);\n timers.current.delete(id);\n }\n setToasts((prev) => prev.filter((toastItem) => toastItem.id !== id));\n }, []);\n\n const push = useCallback(\n (input: ToastInput) => {\n const id = input.id ?? `toast-${Math.random().toString(16).slice(2)}`;\n const durationMs = input.durationMs ?? 4500;\n const record: InternalToast = {\n ...input,\n id,\n durationMs,\n animation: input.animation ?? \"slide\",\n };\n setToasts((prev) => [...prev, record]);\n const timerId = window.setTimeout(() => dismiss(id), durationMs);\n timers.current.set(id, timerId);\n return id;\n },\n [dismiss],\n );\n\n const ctx = useMemo(\n () => ({\n toasts,\n push,\n dismiss,\n }),\n [dismiss, push, toasts],\n );\n\n useEffect(() => {\n toastDispatcher = push;\n return () => {\n toastDispatcher = null;\n };\n }, [push]);\n\n return (\n <ToastStoreContext.Provider value={ctx}>\n {children}\n </ToastStoreContext.Provider>\n );\n}\n\nToastProvider.displayName = \"ToastProvider\";\n\nexport function ToastViewport({\n position = \"bottom-right\",\n className,\n}: ToastViewportProps) {\n const ctx = useContext(ToastStoreContext);\n if (!ctx) {\n throw new Error(\"ToastViewport must be used within <ToastProvider>\");\n }\n\n const portalTarget = typeof document !== \"undefined\" ? document.body : null;\n if (!portalTarget) {\n return null;\n }\n\n return createPortal(\n <div\n className={cn(toastViewportVariants({ position }), className)}\n data-slot=\"toast-viewport\"\n >\n {ctx.toasts.map((item) => (\n <Toast\n key={item.id}\n toastId={item.id}\n appearance={item.appearance}\n size={item.size}\n animation={item.animation}\n >\n <ToastTitle>{item.title}</ToastTitle>\n {item.description ? (\n <ToastDescription>{item.description}</ToastDescription>\n ) : null}\n <ToastClose onClick={() => ctx.dismiss(item.id)} />\n </Toast>\n ))}\n </div>,\n portalTarget,\n );\n}\n\nToastViewport.displayName = \"ToastViewport\";\n\nexport function Toast({\n toastId: _toastId,\n appearance,\n size,\n animation: _animation = \"slide\",\n className,\n children,\n}: ToastProps) {\n const live = appearance === \"error\" ? \"assertive\" : \"polite\";\n\n return (\n <div\n data-slot=\"toast\"\n role={appearance === \"error\" ? \"alert\" : \"status\"}\n aria-live={live}\n aria-atomic=\"true\"\n className={cn(\n \"relative\",\n toastRootVariants({ appearance, size }),\n className,\n )}\n >\n {children}\n </div>\n );\n}\n\nToast.displayName = \"Toast\";\n\nexport function ToastTitle({ className, children }: ToastSectionProps) {\n return (\n <div data-slot=\"toast-title\" className={cn(\"font-semibold\", className)}>\n {children}\n </div>\n );\n}\n\nToastTitle.displayName = \"ToastTitle\";\n\nexport function ToastDescription({ className, children }: ToastSectionProps) {\n return (\n <div\n data-slot=\"toast-description\"\n className={cn(\"text-sm text-slate-300\", className)}\n >\n {children}\n </div>\n );\n}\n\nToastDescription.displayName = \"ToastDescription\";\n\nexport function ToastAction({ className, children }: ToastSectionProps) {\n return (\n <div data-slot=\"toast-action\" className={cn(\"mt-3\", className)}>\n {children}\n </div>\n );\n}\n\nToastAction.displayName = \"ToastAction\";\n\nexport function ToastClose({\n className,\n children,\n onClick,\n ...rest\n}: ToastSectionProps & { onClick?: () => void }) {\n return (\n <button\n type=\"button\"\n data-slot=\"toast-close\"\n aria-label=\"Dismiss notification\"\n className={cn(\n \"absolute right-3 top-3 inline-flex size-8 items-center justify-center rounded-md text-slate-200 transition hover:bg-white/10 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-white/40 focus-visible:ring-offset-2 focus-visible:ring-offset-slate-950\",\n className,\n )}\n onClick={onClick}\n {...rest}\n >\n {children ?? \"×\"}\n </button>\n );\n}\n\nToastClose.displayName = \"ToastClose\";\n"]}
@@ -14,32 +14,32 @@ var buttonVariants = cva(
14
14
  appearance: {
15
15
  default: "bg-slate-50 text-slate-950 shadow-[0_1px_2px_rgba(15,23,42,0.12)] hover:bg-white",
16
16
  secondary: "bg-slate-800 text-slate-50 hover:bg-slate-700",
17
- destructive: "bg-rose-600 text-white hover:bg-rose-600",
17
+ destructive: "bg-rose-700 text-white hover:bg-rose-800",
18
18
  outline: "border border-white/10 bg-white/5 text-slate-50 hover:bg-white/10",
19
19
  ghost: "bg-transparent text-slate-200 hover:bg-white/5",
20
20
  link: "bg-transparent text-cyan-300 underline-offset-4 hover:underline",
21
21
  glass: "border border-white/15 bg-white/10 text-white backdrop-blur-md hover:bg-white/15",
22
- emerald: "bg-emerald-600 text-white hover:bg-emerald-600",
22
+ emerald: "bg-emerald-800 text-white hover:bg-emerald-900",
23
23
  indigo: "bg-indigo-600 text-white hover:bg-indigo-600",
24
24
  purple: "bg-purple-600 text-white hover:bg-purple-600",
25
25
  pink: "bg-pink-600 text-white hover:bg-pink-600",
26
26
  rose: "bg-rose-600 text-white hover:bg-rose-600",
27
- sky: "bg-sky-600 text-white hover:bg-sky-600",
28
- teal: "bg-teal-600 text-white hover:bg-teal-600",
29
- yellow: "bg-yellow-600 text-white hover:bg-yellow-600",
30
- orange: "bg-orange-600 text-white hover:bg-orange-600",
31
- gray: "bg-gray-600 text-white hover:bg-gray-600",
32
- amber: "bg-amber-600 text-white hover:bg-amber-600",
27
+ sky: "bg-sky-700 text-white hover:bg-sky-800",
28
+ teal: "bg-teal-700 text-white hover:bg-teal-800",
29
+ yellow: "bg-yellow-800 text-white hover:bg-yellow-900",
30
+ orange: "bg-orange-800 text-white hover:bg-orange-900",
31
+ gray: "bg-gray-700 text-white hover:bg-gray-800",
32
+ amber: "bg-amber-800 text-white hover:bg-amber-900",
33
33
  violet: "bg-violet-600 text-white hover:bg-violet-600",
34
- "gradient-blue": "bg-gradient-to-r from-blue-600 to-purple-600 text-white hover:from-blue-600 hover:to-purple-600",
35
- "gradient-green": "bg-gradient-to-r from-green-600 to-lime-600 text-white hover:from-green-600 hover:to-lime-600",
36
- "gradient-red": "bg-gradient-to-r from-red-600 to-pink-600 text-white hover:from-red-600 hover:to-pink-600",
37
- "gradient-yellow": "bg-gradient-to-r from-yellow-600 to-orange-600 text-white hover:from-yellow-600 hover:to-orange-600",
38
- "gradient-purple": "bg-gradient-to-r from-purple-600 to-pink-600 text-white hover:from-purple-600 hover:to-pink-600",
39
- "gradient-teal": "bg-gradient-to-r from-teal-600 to-cyan-600 text-white hover:from-teal-600 hover:to-cyan-600",
40
- "gradient-indigo": "bg-gradient-to-r from-indigo-600 to-purple-600 text-white hover:from-indigo-600 hover:to-purple-600",
41
- "gradient-pink": "bg-gradient-to-r from-pink-600 to-rose-600 text-white hover:from-pink-600 hover:to-rose-600",
42
- "gradient-orange": "bg-gradient-to-r from-orange-600 to-red-600 text-white hover:from-orange-600 hover:to-red-600"
34
+ "gradient-blue": "bg-linear-to-r from-blue-600 to-purple-600 text-white hover:from-blue-600 hover:to-purple-600",
35
+ "gradient-green": "bg-linear-to-r from-green-600 to-lime-600 text-white hover:from-green-600 hover:to-lime-600",
36
+ "gradient-red": "bg-linear-to-r from-red-600 to-pink-600 text-white hover:from-red-600 hover:to-pink-600",
37
+ "gradient-yellow": "bg-linear-to-r from-yellow-600 to-orange-600 text-white hover:from-yellow-600 hover:to-orange-600",
38
+ "gradient-purple": "bg-linear-to-r from-purple-600 to-pink-600 text-white hover:from-purple-600 hover:to-pink-600",
39
+ "gradient-teal": "bg-linear-to-r from-teal-600 to-cyan-600 text-white hover:from-teal-600 hover:to-cyan-600",
40
+ "gradient-indigo": "bg-linear-to-r from-indigo-600 to-purple-600 text-white hover:from-indigo-600 hover:to-purple-600",
41
+ "gradient-pink": "bg-linear-to-r from-pink-600 to-rose-600 text-white hover:from-pink-600 hover:to-rose-600",
42
+ "gradient-orange": "bg-linear-to-r from-orange-600 to-red-600 text-white hover:from-orange-600 hover:to-red-600"
43
43
  },
44
44
  size: {
45
45
  sm: "h-7 md:h-9 px-3 text-xs",
@@ -66,5 +66,5 @@ var buttonVariants = cva(
66
66
  );
67
67
 
68
68
  export { buttonVariants };
69
- //# sourceMappingURL=chunk-BORK3BJO.mjs.map
70
- //# sourceMappingURL=chunk-BORK3BJO.mjs.map
69
+ //# sourceMappingURL=chunk-5TV7EL3H.mjs.map
70
+ //# sourceMappingURL=chunk-5TV7EL3H.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/ui/buttons/variants.ts"],"names":[],"mappings":";;;AAEO,IAAM,cAAA,GAAiB,GAAA;AAAA,EAC5B;AAAA,IACE,4EAAA;AAAA,IACA,6DAAA;AAAA,IACA,0GAAA;AAAA,IACA,kDAAA;AAAA,IACA;AAAA,GACF;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,UAAA,EAAY;AAAA,QACV,OAAA,EACE,kFAAA;AAAA,QACF,SAAA,EAAW,+CAAA;AAAA,QACX,WAAA,EAAa,0CAAA;AAAA,QACb,OAAA,EACE,mEAAA;AAAA,QACF,KAAA,EAAO,gDAAA;AAAA,QACP,IAAA,EAAM,iEAAA;AAAA,QACN,KAAA,EACE,kFAAA;AAAA,QACF,OAAA,EAAS,gDAAA;AAAA,QACT,MAAA,EAAQ,8CAAA;AAAA,QACR,MAAA,EAAQ,8CAAA;AAAA,QACR,IAAA,EAAM,0CAAA;AAAA,QACN,IAAA,EAAM,0CAAA;AAAA,QACN,GAAA,EAAK,wCAAA;AAAA,QACL,IAAA,EAAM,0CAAA;AAAA,QACN,MAAA,EAAQ,8CAAA;AAAA,QACR,MAAA,EAAQ,8CAAA;AAAA,QACR,IAAA,EAAM,0CAAA;AAAA,QACN,KAAA,EAAO,4CAAA;AAAA,QACP,MAAA,EAAQ,8CAAA;AAAA,QACR,eAAA,EACE,+FAAA;AAAA,QACF,gBAAA,EACE,6FAAA;AAAA,QACF,cAAA,EACE,yFAAA;AAAA,QACF,iBAAA,EACE,mGAAA;AAAA,QACF,iBAAA,EACE,+FAAA;AAAA,QACF,eAAA,EACE,2FAAA;AAAA,QACF,iBAAA,EACE,mGAAA;AAAA,QACF,eAAA,EACE,2FAAA;AAAA,QACF,iBAAA,EACE;AAAA,OACJ;AAAA,MACA,IAAA,EAAM;AAAA,QACJ,EAAA,EAAI,yBAAA;AAAA,QACJ,EAAA,EAAI,kBAAA;AAAA,QACJ,EAAA,EAAI,6BAAA;AAAA,QACJ,EAAA,EAAI,2BAAA;AAAA,QACJ,KAAA,EAAO,mCAAA;AAAA,QACP,KAAA,EAAO,qCAAA;AAAA,QACP,KAAA,EAAO,sCAAA;AAAA,QACP,KAAA,EAAO,sCAAA;AAAA,QACP,KAAA,EAAO,sCAAA;AAAA,QACP,KAAA,EAAO,sCAAA;AAAA,QACP,KAAA,EAAO,6BAAA;AAAA,QACP,KAAA,EAAO,sCAAA;AAAA,QACP,MAAA,EAAQ,sCAAA;AAAA,QACR,IAAA,EAAM;AAAA;AACR,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,UAAA,EAAY,SAAA;AAAA,MACZ,IAAA,EAAM;AAAA;AACR;AAEJ","file":"chunk-5TV7EL3H.mjs","sourcesContent":["import { cva } from \"class-variance-authority\";\n\nexport const buttonVariants = cva(\n [\n \"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-xl\",\n \"text-sm font-medium ring-offset-slate-950 transition-colors\",\n \"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-slate-300 focus-visible:ring-offset-2\",\n \"disabled:pointer-events-none disabled:opacity-50\",\n \"select-none\",\n ],\n {\n variants: {\n appearance: {\n default:\n \"bg-slate-50 text-slate-950 shadow-[0_1px_2px_rgba(15,23,42,0.12)] hover:bg-white\",\n secondary: \"bg-slate-800 text-slate-50 hover:bg-slate-700\",\n destructive: \"bg-rose-700 text-white hover:bg-rose-800\",\n outline:\n \"border border-white/10 bg-white/5 text-slate-50 hover:bg-white/10\",\n ghost: \"bg-transparent text-slate-200 hover:bg-white/5\",\n link: \"bg-transparent text-cyan-300 underline-offset-4 hover:underline\",\n glass:\n \"border border-white/15 bg-white/10 text-white backdrop-blur-md hover:bg-white/15\",\n emerald: \"bg-emerald-800 text-white hover:bg-emerald-900\",\n indigo: \"bg-indigo-600 text-white hover:bg-indigo-600\",\n purple: \"bg-purple-600 text-white hover:bg-purple-600\",\n pink: \"bg-pink-600 text-white hover:bg-pink-600\",\n rose: \"bg-rose-600 text-white hover:bg-rose-600\",\n sky: \"bg-sky-700 text-white hover:bg-sky-800\",\n teal: \"bg-teal-700 text-white hover:bg-teal-800\",\n yellow: \"bg-yellow-800 text-white hover:bg-yellow-900\",\n orange: \"bg-orange-800 text-white hover:bg-orange-900\",\n gray: \"bg-gray-700 text-white hover:bg-gray-800\",\n amber: \"bg-amber-800 text-white hover:bg-amber-900\",\n violet: \"bg-violet-600 text-white hover:bg-violet-600\",\n \"gradient-blue\":\n \"bg-linear-to-r from-blue-600 to-purple-600 text-white hover:from-blue-600 hover:to-purple-600\",\n \"gradient-green\":\n \"bg-linear-to-r from-green-600 to-lime-600 text-white hover:from-green-600 hover:to-lime-600\",\n \"gradient-red\":\n \"bg-linear-to-r from-red-600 to-pink-600 text-white hover:from-red-600 hover:to-pink-600\",\n \"gradient-yellow\":\n \"bg-linear-to-r from-yellow-600 to-orange-600 text-white hover:from-yellow-600 hover:to-orange-600\",\n \"gradient-purple\":\n \"bg-linear-to-r from-purple-600 to-pink-600 text-white hover:from-purple-600 hover:to-pink-600\",\n \"gradient-teal\":\n \"bg-linear-to-r from-teal-600 to-cyan-600 text-white hover:from-teal-600 hover:to-cyan-600\",\n \"gradient-indigo\":\n \"bg-linear-to-r from-indigo-600 to-purple-600 text-white hover:from-indigo-600 hover:to-purple-600\",\n \"gradient-pink\":\n \"bg-linear-to-r from-pink-600 to-rose-600 text-white hover:from-pink-600 hover:to-rose-600\",\n \"gradient-orange\":\n \"bg-linear-to-r from-orange-600 to-red-600 text-white hover:from-orange-600 hover:to-red-600\",\n },\n size: {\n sm: \"h-7 md:h-9 px-3 text-xs\",\n md: \"h-9 md:h-11 px-4\",\n lg: \"h-10 md:h-12 px-5 text-base\",\n xl: \"h-12 md:h-14 px-6 text-lg\",\n \"2xl\": \"h-14 md:h-16 px-6 md:px-8 text-xl\",\n \"3xl\": \"h-16 md:h-18 px-8 md:px-10 text-2xl\",\n \"4xl\": \"h-18 md:h-20 px-10 md:px-12 text-2xl\",\n \"5xl\": \"h-20 md:h-22 px-12 md:px-14 text-2xl\",\n \"6xl\": \"h-22 md:h-24 px-14 md:px-16 text-2xl\",\n \"7xl\": \"h-24 md:h-26 px-16 md:px-18 text-2xl\",\n \"8xl\": \"h-26 md:h-28 px-20 text-2xl\",\n \"9xl\": \"h-24 md:h-30 px-18 md:px-22 text-2xl\",\n \"10xl\": \"h-26 md:h-32 px-20 md:px-24 text-2xl\",\n icon: \"h-10 w-10\",\n },\n },\n defaultVariants: {\n appearance: \"default\",\n size: \"md\",\n },\n },\n);\n"]}
@@ -27,5 +27,5 @@ var useClickOutside = ({
27
27
  };
28
28
 
29
29
  exports.useClickOutside = useClickOutside;
30
- //# sourceMappingURL=chunk-BSWYZTYK.js.map
31
- //# sourceMappingURL=chunk-BSWYZTYK.js.map
30
+ //# sourceMappingURL=chunk-7DCFVPWN.js.map
31
+ //# sourceMappingURL=chunk-7DCFVPWN.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/hooks/useClickOutside/useClickOutside.ts"],"names":["useEffect"],"mappings":";;;;;AAyBO,IAAM,kBAAkB,CAAC;AAAA,EAC9B,OAAA;AAAA,EACA,GAAA;AAAA,EACA;AACF,CAAA,KAA6B;AAC3B,EAAAA,eAAA,CAAU,MAAM;AACd,IAAA,MAAM,SACJ,YAAA,IAAgB,YAAA,CAAa,SAAS,CAAA,GAAI,YAAA,GAAe,CAAC,WAAW,CAAA;AACvE,IAAA,MAAM,kBAAA,GAAqB,CAAC,KAAA,KAAiB;AAC3C,MAAA,IAAI,GAAA,CAAI,WAAW,CAAC,GAAA,CAAI,QAAQ,QAAA,CAAS,KAAA,CAAM,MAAc,CAAA,EAAG;AAC9D,QAAA,OAAA,CAAQ,KAAK,CAAA;AAAA,MACf;AAAA,IACF,CAAA;AAEA,IAAA,KAAA,MAAW,aAAa,MAAA,EAAQ;AAC9B,MAAA,QAAA,CAAS,gBAAA,CAAiB,WAAW,kBAAkB,CAAA;AAAA,IACzD;AACA,IAAA,OAAO,MAAM;AACX,MAAA,KAAA,MAAW,aAAa,MAAA,EAAQ;AAC9B,QAAA,QAAA,CAAS,mBAAA,CAAoB,WAAW,kBAAkB,CAAA;AAAA,MAC5D;AAAA,IACF,CAAA;AAAA,EACF,CAAA,EAAG,CAAC,YAAA,EAAc,GAAA,EAAK,OAAO,CAAC,CAAA;AACjC","file":"chunk-7DCFVPWN.js","sourcesContent":["\"use client\";\n\nimport type { RefObject } from \"react\";\nimport { Dispatch, SetStateAction, useEffect } from \"react\";\n\n/** DOM events that can represent an “outside” press for closing overlays. */\nexport type ClickOutsideEventType = \"mousedown\" | \"pointerdown\" | \"touchstart\";\n\nexport type UseClickOutsideParams = {\n /** Called with `false` when a qualifying event target is outside `ref.current`. */\n setOpen: (open: boolean) => void | Dispatch<SetStateAction<boolean>>;\n /** Root element of the floating UI; clicks inside this node do not close. */\n ref: RefObject<HTMLElement | null>;\n /** Defaults to `[\"mousedown\"]` for backward compatibility */\n listenEvents?: ClickOutsideEventType[];\n};\n\n/**\n * Registers document-level listeners so that when the user activates outside of `ref`, `setOpen(false)`\n * runs. Useful for dropdowns, popovers, and menus paired with `open` state.\n *\n * @param params.setOpen - State setter or callback that closes the surface.\n * @param params.ref - Container ref; outside is determined with `contains()` on the event target.\n * @param params.listenEvents - Which events to listen for; default is `mousedown` only.\n */\nexport const useClickOutside = ({\n setOpen,\n ref,\n listenEvents,\n}: UseClickOutsideParams) => {\n useEffect(() => {\n const events =\n listenEvents && listenEvents.length > 0 ? listenEvents : [\"mousedown\"];\n const handleClickOutside = (event: Event) => {\n if (ref.current && !ref.current.contains(event.target as Node)) {\n setOpen(false);\n }\n };\n\n for (const eventName of events) {\n document.addEventListener(eventName, handleClickOutside);\n }\n return () => {\n for (const eventName of events) {\n document.removeEventListener(eventName, handleClickOutside);\n }\n };\n }, [listenEvents, ref, setOpen]);\n};\n"]}