@mdigital_ui/ui 0.4.2 → 0.4.4

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 (591) hide show
  1. package/README.md +45 -5
  2. package/dist/accordion/index.d.ts.map +1 -1
  3. package/dist/accordion/index.js +3 -3
  4. package/dist/accordion/types.d.ts +2 -42
  5. package/dist/accordion/types.d.ts.map +1 -1
  6. package/dist/alert/index.d.ts +6 -0
  7. package/dist/alert/index.d.ts.map +1 -0
  8. package/dist/alert/index.js +5 -0
  9. package/dist/alert/types.d.ts +24 -0
  10. package/dist/alert/types.d.ts.map +1 -0
  11. package/dist/anchor/index.d.ts +6 -0
  12. package/dist/anchor/index.d.ts.map +1 -0
  13. package/dist/anchor/types.d.ts +26 -0
  14. package/dist/anchor/types.d.ts.map +1 -0
  15. package/dist/autocomplete/index.d.ts +6 -0
  16. package/dist/autocomplete/index.d.ts.map +1 -0
  17. package/dist/autocomplete/types.d.ts +39 -0
  18. package/dist/autocomplete/types.d.ts.map +1 -0
  19. package/dist/avatar/index.d.ts +0 -6
  20. package/dist/avatar/index.d.ts.map +1 -1
  21. package/dist/avatar/index.js +3 -2
  22. package/dist/avatar/types.d.ts +0 -48
  23. package/dist/avatar/types.d.ts.map +1 -1
  24. package/dist/badge/index.d.ts +1 -23
  25. package/dist/badge/index.d.ts.map +1 -1
  26. package/dist/badge/index.js +3 -3
  27. package/dist/badge/types.d.ts +1 -20
  28. package/dist/badge/types.d.ts.map +1 -1
  29. package/dist/breadcrumbs/index.d.ts.map +1 -1
  30. package/dist/breadcrumbs/index.js +7 -6
  31. package/dist/breadcrumbs/types.d.ts +3 -38
  32. package/dist/breadcrumbs/types.d.ts.map +1 -1
  33. package/dist/button/index.d.ts +1 -1
  34. package/dist/button/index.d.ts.map +1 -1
  35. package/dist/button/index.js +5 -5
  36. package/dist/button/types.d.ts +2 -8
  37. package/dist/button/types.d.ts.map +1 -1
  38. package/dist/button-group/index.d.ts +0 -28
  39. package/dist/button-group/index.d.ts.map +1 -1
  40. package/dist/button-group/index.js +2 -2
  41. package/dist/button-group/types.d.ts +0 -19
  42. package/dist/button-group/types.d.ts.map +1 -1
  43. package/dist/calendar/index.d.ts +6 -0
  44. package/dist/calendar/index.d.ts.map +1 -0
  45. package/dist/calendar/types.d.ts +29 -0
  46. package/dist/calendar/types.d.ts.map +1 -0
  47. package/dist/card/index.d.ts +1 -41
  48. package/dist/card/index.d.ts.map +1 -1
  49. package/dist/card/index.js +3 -3
  50. package/dist/card/types.d.ts +3 -29
  51. package/dist/card/types.d.ts.map +1 -1
  52. package/dist/carousel/carousel-navigation.d.ts.map +1 -1
  53. package/dist/carousel/index.d.ts +5 -2
  54. package/dist/carousel/index.d.ts.map +1 -1
  55. package/dist/carousel/index.js +2 -2
  56. package/dist/carousel/styles.d.ts +12 -0
  57. package/dist/carousel/styles.d.ts.map +1 -0
  58. package/dist/cascader/CascaderMenu.d.ts +41 -0
  59. package/dist/cascader/CascaderMenu.d.ts.map +1 -0
  60. package/dist/cascader/index.d.ts +0 -21
  61. package/dist/cascader/index.d.ts.map +1 -1
  62. package/dist/cascader/index.js +3 -3
  63. package/dist/cascader/types.d.ts +3 -89
  64. package/dist/cascader/types.d.ts.map +1 -1
  65. package/dist/checkbox/index.d.ts.map +1 -1
  66. package/dist/checkbox/index.js +3 -3
  67. package/dist/checkbox/types.d.ts +2 -2
  68. package/dist/checkbox/types.d.ts.map +1 -1
  69. package/dist/checkbox-group/index.d.ts.map +1 -1
  70. package/dist/checkbox-group/index.js +2 -2
  71. package/dist/checkbox-group/types.d.ts +0 -24
  72. package/dist/checkbox-group/types.d.ts.map +1 -1
  73. package/dist/{chunk-HCOTO5WX.js → chunk-253JZOYG.js} +8 -9
  74. package/dist/chunk-253JZOYG.js.map +1 -0
  75. package/dist/{chunk-FZSCLZF6.js → chunk-3D77IPKB.js} +68 -113
  76. package/dist/chunk-3D77IPKB.js.map +1 -0
  77. package/dist/{chunk-GJPZOMFE.js → chunk-3XOHSE3X.js} +71 -34
  78. package/dist/chunk-3XOHSE3X.js.map +1 -0
  79. package/dist/{chunk-ROA7BYGB.js → chunk-3YP7HY3Y.js} +7 -5
  80. package/dist/chunk-3YP7HY3Y.js.map +1 -0
  81. package/dist/chunk-4HKPDSA6.js +378 -0
  82. package/dist/chunk-4HKPDSA6.js.map +1 -0
  83. package/dist/{chunk-OFUPJH35.js → chunk-4TEZWGX7.js} +3 -3
  84. package/dist/{chunk-OFUPJH35.js.map → chunk-4TEZWGX7.js.map} +1 -1
  85. package/dist/{chunk-TLNHWOQQ.js → chunk-4ZXHLPRS.js} +53 -44
  86. package/dist/chunk-4ZXHLPRS.js.map +1 -0
  87. package/dist/{chunk-6LYRMQOI.js → chunk-5MBKTMDW.js} +21 -16
  88. package/dist/chunk-5MBKTMDW.js.map +1 -0
  89. package/dist/{chunk-CN74CNAN.js → chunk-5SEVPU6C.js} +8 -22
  90. package/dist/chunk-5SEVPU6C.js.map +1 -0
  91. package/dist/{chunk-6JGNJI5T.js → chunk-7RT65ZGV.js} +38 -26
  92. package/dist/chunk-7RT65ZGV.js.map +1 -0
  93. package/dist/{chunk-I32ZQUYY.js → chunk-A4MYCEGM.js} +15 -16
  94. package/dist/chunk-A4MYCEGM.js.map +1 -0
  95. package/dist/{chunk-KJTMZJ7V.js → chunk-ADZWWBAX.js} +76 -110
  96. package/dist/chunk-ADZWWBAX.js.map +1 -0
  97. package/dist/{chunk-YXLIGJTN.js → chunk-AFW2ORFT.js} +16 -8
  98. package/dist/chunk-AFW2ORFT.js.map +1 -0
  99. package/dist/{chunk-OLTQAMV2.js → chunk-BGMYX7L5.js} +9 -24
  100. package/dist/chunk-BGMYX7L5.js.map +1 -0
  101. package/dist/chunk-BKLJDEUX.js +857 -0
  102. package/dist/chunk-BKLJDEUX.js.map +1 -0
  103. package/dist/{chunk-4FFVNUTK.js → chunk-BNHRUHI4.js} +7 -6
  104. package/dist/chunk-BNHRUHI4.js.map +1 -0
  105. package/dist/{chunk-DUIL5BYS.js → chunk-BS4PZPY6.js} +82 -53
  106. package/dist/chunk-BS4PZPY6.js.map +1 -0
  107. package/dist/{chunk-POLVJ36Y.js → chunk-C32HL4XU.js} +13 -38
  108. package/dist/chunk-C32HL4XU.js.map +1 -0
  109. package/dist/chunk-C65SCJD6.js +138 -0
  110. package/dist/chunk-C65SCJD6.js.map +1 -0
  111. package/dist/{chunk-3BZE6BBJ.js → chunk-CUXQZRDI.js} +45 -34
  112. package/dist/chunk-CUXQZRDI.js.map +1 -0
  113. package/dist/{chunk-674JC24S.js → chunk-DDZCRCTQ.js} +28 -29
  114. package/dist/chunk-DDZCRCTQ.js.map +1 -0
  115. package/dist/{chunk-64NHVOZS.js → chunk-FU5Q4WVX.js} +26 -16
  116. package/dist/chunk-FU5Q4WVX.js.map +1 -0
  117. package/dist/chunk-G6QIIWKU.js +24 -0
  118. package/dist/chunk-G6QIIWKU.js.map +1 -0
  119. package/dist/{chunk-UTWQ2FZK.js → chunk-GOBUFGGJ.js} +45 -108
  120. package/dist/chunk-GOBUFGGJ.js.map +1 -0
  121. package/dist/{chunk-WRSG7WU5.js → chunk-HJITFPBT.js} +78 -94
  122. package/dist/chunk-HJITFPBT.js.map +1 -0
  123. package/dist/{chunk-ZJNGZCRB.js → chunk-HR5TGNOF.js} +54 -153
  124. package/dist/chunk-HR5TGNOF.js.map +1 -0
  125. package/dist/{chunk-HECAAILV.js → chunk-HRVOTFU4.js} +24 -16
  126. package/dist/chunk-HRVOTFU4.js.map +1 -0
  127. package/dist/{chunk-LX4FDH4J.js → chunk-HSMO2BR4.js} +13 -22
  128. package/dist/chunk-HSMO2BR4.js.map +1 -0
  129. package/dist/chunk-HVHQA34X.js +534 -0
  130. package/dist/chunk-HVHQA34X.js.map +1 -0
  131. package/dist/{chunk-6G3BMY4N.js → chunk-I5AD247M.js} +80 -85
  132. package/dist/chunk-I5AD247M.js.map +1 -0
  133. package/dist/chunk-I7HJBHQU.js +99 -0
  134. package/dist/chunk-I7HJBHQU.js.map +1 -0
  135. package/dist/{chunk-3PWILVOE.js → chunk-J2WIZULN.js} +50 -50
  136. package/dist/chunk-J2WIZULN.js.map +1 -0
  137. package/dist/{chunk-VOODO2ZE.js → chunk-JFTSWOGE.js} +12 -32
  138. package/dist/chunk-JFTSWOGE.js.map +1 -0
  139. package/dist/{chunk-LOYLJRCF.js → chunk-JIXINKUJ.js} +8 -17
  140. package/dist/chunk-JIXINKUJ.js.map +1 -0
  141. package/dist/{chunk-6HGUDHHE.js → chunk-L5BU2QTI.js} +3 -5
  142. package/dist/chunk-L5BU2QTI.js.map +1 -0
  143. package/dist/chunk-LJOQ2C5W.js +81 -0
  144. package/dist/chunk-LJOQ2C5W.js.map +1 -0
  145. package/dist/chunk-LWYZCSX4.js +531 -0
  146. package/dist/chunk-LWYZCSX4.js.map +1 -0
  147. package/dist/{chunk-3BIV3QE2.js → chunk-LXHFGQOI.js} +61 -29
  148. package/dist/chunk-LXHFGQOI.js.map +1 -0
  149. package/dist/{chunk-ZIYA7TGX.js → chunk-NMP4HY6M.js} +13 -23
  150. package/dist/chunk-NMP4HY6M.js.map +1 -0
  151. package/dist/{chunk-2TLOWZE4.js → chunk-NTCAZ2LF.js} +64 -183
  152. package/dist/chunk-NTCAZ2LF.js.map +1 -0
  153. package/dist/chunk-NZHKNUGE.js +96 -0
  154. package/dist/chunk-NZHKNUGE.js.map +1 -0
  155. package/dist/{chunk-764UKE6X.js → chunk-OGB5QPNZ.js} +11 -92
  156. package/dist/chunk-OGB5QPNZ.js.map +1 -0
  157. package/dist/chunk-OJAHIPPP.js +198 -0
  158. package/dist/chunk-OJAHIPPP.js.map +1 -0
  159. package/dist/{chunk-2PNLIQYM.js → chunk-ON76IMMI.js} +3 -3
  160. package/dist/chunk-ON76IMMI.js.map +1 -0
  161. package/dist/{chunk-HUXODBIO.js → chunk-PB5VGXS5.js} +42 -101
  162. package/dist/chunk-PB5VGXS5.js.map +1 -0
  163. package/dist/chunk-PQOIW5CM.js +27 -0
  164. package/dist/chunk-PQOIW5CM.js.map +1 -0
  165. package/dist/{chunk-BVO2BNFG.js → chunk-PRDJLQLB.js} +23 -103
  166. package/dist/chunk-PRDJLQLB.js.map +1 -0
  167. package/dist/{chunk-N2WHJ3FI.js → chunk-QEAALOJC.js} +14 -16
  168. package/dist/chunk-QEAALOJC.js.map +1 -0
  169. package/dist/{chunk-NGYLRX6F.js → chunk-RAS6HUEI.js} +2 -2
  170. package/dist/chunk-RAS6HUEI.js.map +1 -0
  171. package/dist/{chunk-C5IGZLIT.js → chunk-ROQGBDET.js} +9 -23
  172. package/dist/chunk-ROQGBDET.js.map +1 -0
  173. package/dist/{chunk-Y4XAXZHB.js → chunk-RRPMZYVN.js} +9 -8
  174. package/dist/chunk-RRPMZYVN.js.map +1 -0
  175. package/dist/{chunk-D4SUSZDN.js → chunk-S6HO7HUY.js} +19 -17
  176. package/dist/chunk-S6HO7HUY.js.map +1 -0
  177. package/dist/{chunk-YS5AIY4A.js → chunk-SFP77VS3.js} +6 -5
  178. package/dist/chunk-SFP77VS3.js.map +1 -0
  179. package/dist/{chunk-RFHTC6AH.js → chunk-SJLH5ZDW.js} +16 -38
  180. package/dist/chunk-SJLH5ZDW.js.map +1 -0
  181. package/dist/{chunk-SGRACNBP.js → chunk-STAYOHDI.js} +13 -5
  182. package/dist/chunk-STAYOHDI.js.map +1 -0
  183. package/dist/{chunk-ON2CMF6J.js → chunk-TBKPQOXF.js} +58 -35
  184. package/dist/chunk-TBKPQOXF.js.map +1 -0
  185. package/dist/{chunk-GOLARX5K.js → chunk-TDNPACQD.js} +14 -11
  186. package/dist/chunk-TDNPACQD.js.map +1 -0
  187. package/dist/{chunk-7UCNBMCV.js → chunk-TQEMGWZ2.js} +27 -34
  188. package/dist/chunk-TQEMGWZ2.js.map +1 -0
  189. package/dist/{chunk-X3YNHX77.js → chunk-U4JPTWK6.js} +33 -34
  190. package/dist/chunk-U4JPTWK6.js.map +1 -0
  191. package/dist/{chunk-R3TLU26W.js → chunk-UFC3RGIN.js} +9 -7
  192. package/dist/chunk-UFC3RGIN.js.map +1 -0
  193. package/dist/{chunk-KH577UDI.js → chunk-W5VLFE4U.js} +11 -8
  194. package/dist/chunk-W5VLFE4U.js.map +1 -0
  195. package/dist/{chunk-G6NVGBYZ.js → chunk-WG5AYAC6.js} +27 -35
  196. package/dist/chunk-WG5AYAC6.js.map +1 -0
  197. package/dist/{chunk-YJOLLSHH.js → chunk-WQT24BGG.js} +44 -49
  198. package/dist/chunk-WQT24BGG.js.map +1 -0
  199. package/dist/{chunk-JWTWPZ32.js → chunk-X7MF3TIF.js} +15 -19
  200. package/dist/chunk-X7MF3TIF.js.map +1 -0
  201. package/dist/chunk-XAM5EKOS.js +150 -0
  202. package/dist/chunk-XAM5EKOS.js.map +1 -0
  203. package/dist/{chunk-EHWXPH76.js → chunk-XBXPY7U3.js} +9 -7
  204. package/dist/chunk-XBXPY7U3.js.map +1 -0
  205. package/dist/{chunk-5PUATOLR.js → chunk-XCK62GVU.js} +4 -4
  206. package/dist/chunk-XCK62GVU.js.map +1 -0
  207. package/dist/{chunk-ONGJXAYQ.js → chunk-XMBZBXXS.js} +9 -16
  208. package/dist/chunk-XMBZBXXS.js.map +1 -0
  209. package/dist/{chunk-H6G4BUPA.js → chunk-XOEEAMMY.js} +210 -183
  210. package/dist/chunk-XOEEAMMY.js.map +1 -0
  211. package/dist/{chunk-O3V3BTIJ.js → chunk-Z3DIBMBQ.js} +60 -107
  212. package/dist/chunk-Z3DIBMBQ.js.map +1 -0
  213. package/dist/clipboard/index.d.ts.map +1 -1
  214. package/dist/clipboard/index.js +4 -4
  215. package/dist/clipboard/types.d.ts +2 -35
  216. package/dist/clipboard/types.d.ts.map +1 -1
  217. package/dist/collapse/index.d.ts.map +1 -1
  218. package/dist/collapse/index.js +4 -3
  219. package/dist/collapse/types.d.ts +2 -35
  220. package/dist/collapse/types.d.ts.map +1 -1
  221. package/dist/color-picker/index.d.ts +8 -0
  222. package/dist/color-picker/index.d.ts.map +1 -0
  223. package/dist/color-picker/types.d.ts +42 -0
  224. package/dist/color-picker/types.d.ts.map +1 -0
  225. package/dist/command/index.d.ts +39 -66
  226. package/dist/command/index.d.ts.map +1 -1
  227. package/dist/command/index.js +4 -3
  228. package/dist/command/types.d.ts +2 -2
  229. package/dist/command/types.d.ts.map +1 -1
  230. package/dist/context-menu/index.d.ts +2 -46
  231. package/dist/context-menu/index.d.ts.map +1 -1
  232. package/dist/context-menu/index.js +5 -3
  233. package/dist/context-menu/types.d.ts +21 -63
  234. package/dist/context-menu/types.d.ts.map +1 -1
  235. package/dist/date-picker/CalendarHeader.d.ts +18 -0
  236. package/dist/date-picker/CalendarHeader.d.ts.map +1 -0
  237. package/dist/date-picker/MonthSelector.d.ts +11 -0
  238. package/dist/date-picker/MonthSelector.d.ts.map +1 -0
  239. package/dist/date-picker/PickerWrapper.d.ts +18 -0
  240. package/dist/date-picker/PickerWrapper.d.ts.map +1 -0
  241. package/dist/date-picker/RangePicker.d.ts +4 -0
  242. package/dist/date-picker/RangePicker.d.ts.map +1 -0
  243. package/dist/date-picker/TimePicker.d.ts +4 -0
  244. package/dist/date-picker/TimePicker.d.ts.map +1 -0
  245. package/dist/date-picker/YearSelector.d.ts +10 -0
  246. package/dist/date-picker/YearSelector.d.ts.map +1 -0
  247. package/dist/date-picker/index.d.ts +6 -6
  248. package/dist/date-picker/index.d.ts.map +1 -1
  249. package/dist/date-picker/index.js +4 -4
  250. package/dist/date-picker/shared.d.ts +3 -0
  251. package/dist/date-picker/shared.d.ts.map +1 -0
  252. package/dist/date-picker/types.d.ts +2 -2
  253. package/dist/date-picker/types.d.ts.map +1 -1
  254. package/dist/date-picker/utils.d.ts +1 -1
  255. package/dist/date-picker/utils.d.ts.map +1 -1
  256. package/dist/descriptions/index.d.ts.map +1 -1
  257. package/dist/descriptions/index.js +3 -2
  258. package/dist/divider/index.d.ts.map +1 -1
  259. package/dist/divider/index.js +3 -2
  260. package/dist/divider/types.d.ts +0 -12
  261. package/dist/divider/types.d.ts.map +1 -1
  262. package/dist/drawer/index.d.ts +4 -1
  263. package/dist/drawer/index.d.ts.map +1 -1
  264. package/dist/drawer/index.js +2 -2
  265. package/dist/drawer/types.d.ts +2 -145
  266. package/dist/drawer/types.d.ts.map +1 -1
  267. package/dist/dropdown/index.d.ts.map +1 -1
  268. package/dist/dropdown/index.js +6 -5
  269. package/dist/dropdown/types.d.ts +2 -71
  270. package/dist/dropdown/types.d.ts.map +1 -1
  271. package/dist/fetching-overlay/index.d.ts.map +1 -1
  272. package/dist/fetching-overlay/index.js +4 -4
  273. package/dist/float-button/index.d.ts +9 -0
  274. package/dist/float-button/index.d.ts.map +1 -0
  275. package/dist/float-button/types.d.ts +45 -0
  276. package/dist/float-button/types.d.ts.map +1 -0
  277. package/dist/float-input/index.d.ts.map +1 -1
  278. package/dist/float-input/index.js +4 -4
  279. package/dist/float-input/types.d.ts +5 -10
  280. package/dist/float-input/types.d.ts.map +1 -1
  281. package/dist/grid/index.d.ts +1 -1
  282. package/dist/grid/index.d.ts.map +1 -1
  283. package/dist/grid/index.js +2 -2
  284. package/dist/grid/types.d.ts +1 -9
  285. package/dist/grid/types.d.ts.map +1 -1
  286. package/dist/hooks/index.d.ts +1 -0
  287. package/dist/hooks/index.d.ts.map +1 -1
  288. package/dist/hooks/useMenuNavigation.d.ts +18 -0
  289. package/dist/hooks/useMenuNavigation.d.ts.map +1 -0
  290. package/dist/image/index.d.ts.map +1 -1
  291. package/dist/image/index.js +2 -2
  292. package/dist/image/types.d.ts +2 -34
  293. package/dist/image/types.d.ts.map +1 -1
  294. package/dist/index.d.ts +30 -3
  295. package/dist/index.d.ts.map +1 -1
  296. package/dist/index.js +3030 -90
  297. package/dist/index.js.map +1 -1
  298. package/dist/input/index.d.ts.map +1 -1
  299. package/dist/input/index.js +4 -4
  300. package/dist/input/types.d.ts +9 -4
  301. package/dist/input/types.d.ts.map +1 -1
  302. package/dist/input-group/index.d.ts.map +1 -1
  303. package/dist/input-group/index.js +2 -2
  304. package/dist/input-group/types.d.ts +7 -19
  305. package/dist/input-group/types.d.ts.map +1 -1
  306. package/dist/input-otp/index.d.ts.map +1 -1
  307. package/dist/input-otp/index.js +2 -2
  308. package/dist/input-otp/types.d.ts +3 -81
  309. package/dist/input-otp/types.d.ts.map +1 -1
  310. package/dist/input-password/index.d.ts.map +1 -1
  311. package/dist/input-password/index.js +5 -5
  312. package/dist/input-password/types.d.ts +0 -6
  313. package/dist/input-password/types.d.ts.map +1 -1
  314. package/dist/kbd/index.d.ts.map +1 -1
  315. package/dist/kbd/index.js +3 -3
  316. package/dist/kbd/types.d.ts +2 -17
  317. package/dist/kbd/types.d.ts.map +1 -1
  318. package/dist/link/index.d.ts +1 -1
  319. package/dist/link/index.d.ts.map +1 -1
  320. package/dist/link/index.js +3 -2
  321. package/dist/mentions/index.d.ts +6 -0
  322. package/dist/mentions/index.d.ts.map +1 -0
  323. package/dist/mentions/types.d.ts +36 -0
  324. package/dist/mentions/types.d.ts.map +1 -0
  325. package/dist/menubar/index.d.ts.map +1 -1
  326. package/dist/menubar/index.js +5 -4
  327. package/dist/modal/index.d.ts +1 -1
  328. package/dist/modal/index.d.ts.map +1 -1
  329. package/dist/modal/index.js +2 -2
  330. package/dist/modal/types.d.ts +7 -41
  331. package/dist/modal/types.d.ts.map +1 -1
  332. package/dist/multi-select/index.d.ts.map +1 -1
  333. package/dist/multi-select/index.js +8 -6
  334. package/dist/multi-select/types.d.ts +2 -34
  335. package/dist/multi-select/types.d.ts.map +1 -1
  336. package/dist/navigation-menu/index.d.ts.map +1 -1
  337. package/dist/navigation-menu/index.js +2 -2
  338. package/dist/navigation-menu/types.d.ts +2 -0
  339. package/dist/navigation-menu/types.d.ts.map +1 -1
  340. package/dist/notification/index.d.ts.map +1 -1
  341. package/dist/notification/index.js +3 -3
  342. package/dist/notification/types.d.ts +2 -62
  343. package/dist/notification/types.d.ts.map +1 -1
  344. package/dist/number-input/index.d.ts.map +1 -1
  345. package/dist/number-input/index.js +6 -5
  346. package/dist/number-input/types.d.ts +5 -2
  347. package/dist/number-input/types.d.ts.map +1 -1
  348. package/dist/pagination/index.d.ts.map +1 -1
  349. package/dist/pagination/index.js +4 -3
  350. package/dist/pagination/types.d.ts +3 -53
  351. package/dist/pagination/types.d.ts.map +1 -1
  352. package/dist/popover/index.d.ts +1 -1
  353. package/dist/popover/index.d.ts.map +1 -1
  354. package/dist/popover/index.js +3 -3
  355. package/dist/popover/types.d.ts +3 -17
  356. package/dist/popover/types.d.ts.map +1 -1
  357. package/dist/progress/index.d.ts.map +1 -1
  358. package/dist/progress/index.js +3 -2
  359. package/dist/progress/styles.d.ts +4 -5
  360. package/dist/progress/styles.d.ts.map +1 -1
  361. package/dist/progress/types.d.ts +2 -44
  362. package/dist/progress/types.d.ts.map +1 -1
  363. package/dist/qr-code/index.d.ts +6 -0
  364. package/dist/qr-code/index.d.ts.map +1 -0
  365. package/dist/qr-code/types.d.ts +49 -0
  366. package/dist/qr-code/types.d.ts.map +1 -0
  367. package/dist/radio/index.d.ts.map +1 -1
  368. package/dist/radio/index.js +3 -3
  369. package/dist/radio/types.d.ts +2 -2
  370. package/dist/radio/types.d.ts.map +1 -1
  371. package/dist/radio-group/index.d.ts.map +1 -1
  372. package/dist/radio-group/index.js +2 -2
  373. package/dist/radio-group/types.d.ts +0 -24
  374. package/dist/radio-group/types.d.ts.map +1 -1
  375. package/dist/rating/index.d.ts.map +1 -1
  376. package/dist/rating/index.js +3 -2
  377. package/dist/rating/types.d.ts +2 -2
  378. package/dist/rating/types.d.ts.map +1 -1
  379. package/dist/resizable/index.d.ts +7 -0
  380. package/dist/resizable/index.d.ts.map +1 -0
  381. package/dist/resizable/types.d.ts +8 -0
  382. package/dist/resizable/types.d.ts.map +1 -0
  383. package/dist/result/index.d.ts +6 -0
  384. package/dist/result/index.d.ts.map +1 -0
  385. package/dist/result/types.d.ts +22 -0
  386. package/dist/result/types.d.ts.map +1 -0
  387. package/dist/scroll-area/index.d.ts.map +1 -1
  388. package/dist/scroll-area/index.js +2 -2
  389. package/dist/select/index.d.ts.map +1 -1
  390. package/dist/select/index.js +8 -6
  391. package/dist/select/types.d.ts +8 -3
  392. package/dist/select/types.d.ts.map +1 -1
  393. package/dist/shared/useSelectBase.d.ts +4 -2
  394. package/dist/shared/useSelectBase.d.ts.map +1 -1
  395. package/dist/skeleton/index.d.ts.map +1 -1
  396. package/dist/skeleton/index.js +3 -3
  397. package/dist/skeleton/types.d.ts +1 -1
  398. package/dist/skeleton/types.d.ts.map +1 -1
  399. package/dist/slider/index.d.ts.map +1 -1
  400. package/dist/slider/index.js +3 -2
  401. package/dist/slider/types.d.ts +2 -36
  402. package/dist/slider/types.d.ts.map +1 -1
  403. package/dist/spinner/index.d.ts +2 -1
  404. package/dist/spinner/index.d.ts.map +1 -1
  405. package/dist/spinner/index.js +3 -3
  406. package/dist/spinner/types.d.ts +1 -1
  407. package/dist/spinner/types.d.ts.map +1 -1
  408. package/dist/stepper/index.d.ts +3 -3
  409. package/dist/stepper/index.d.ts.map +1 -1
  410. package/dist/stepper/index.js +3 -2
  411. package/dist/stepper/types.d.ts +3 -2
  412. package/dist/stepper/types.d.ts.map +1 -1
  413. package/dist/switch/index.d.ts.map +1 -1
  414. package/dist/switch/index.js +3 -3
  415. package/dist/switch/types.d.ts +2 -31
  416. package/dist/switch/types.d.ts.map +1 -1
  417. package/dist/table/TableHeaderCell.d.ts.map +1 -1
  418. package/dist/table/index.d.ts +1 -1
  419. package/dist/table/index.d.ts.map +1 -1
  420. package/dist/table/index.js +11 -11
  421. package/dist/table/types.d.ts +8 -2
  422. package/dist/table/types.d.ts.map +1 -1
  423. package/dist/tabs/index.d.ts.map +1 -1
  424. package/dist/tabs/index.js +3 -3
  425. package/dist/tabs/types.d.ts +3 -53
  426. package/dist/tabs/types.d.ts.map +1 -1
  427. package/dist/tag/index.d.ts +1 -1
  428. package/dist/tag/index.d.ts.map +1 -1
  429. package/dist/tag/index.js +3 -3
  430. package/dist/tag/types.d.ts +1 -1
  431. package/dist/tag/types.d.ts.map +1 -1
  432. package/dist/tags-input/index.d.ts +6 -0
  433. package/dist/tags-input/index.d.ts.map +1 -0
  434. package/dist/tags-input/types.d.ts +36 -0
  435. package/dist/tags-input/types.d.ts.map +1 -0
  436. package/dist/textarea/index.d.ts.map +1 -1
  437. package/dist/textarea/index.js +2 -2
  438. package/dist/textarea/types.d.ts +3 -54
  439. package/dist/textarea/types.d.ts.map +1 -1
  440. package/dist/theme/ThemeProvider.d.ts +11 -3
  441. package/dist/theme/ThemeProvider.d.ts.map +1 -1
  442. package/dist/theme/index.js +1 -1
  443. package/dist/theme/types.d.ts +0 -12
  444. package/dist/theme/types.d.ts.map +1 -1
  445. package/dist/timeline/index.d.ts.map +1 -1
  446. package/dist/timeline/index.js +3 -2
  447. package/dist/toast/index.d.ts.map +1 -1
  448. package/dist/toast/index.js +3 -3
  449. package/dist/toast/types.d.ts +0 -6
  450. package/dist/toast/types.d.ts.map +1 -1
  451. package/dist/toggle/index.d.ts.map +1 -1
  452. package/dist/toggle/index.js +4 -3
  453. package/dist/toggle/types.d.ts +3 -26
  454. package/dist/toggle/types.d.ts.map +1 -1
  455. package/dist/toggle-group/index.d.ts.map +1 -1
  456. package/dist/toggle-group/index.js +4 -3
  457. package/dist/toggle-group/types.d.ts +3 -44
  458. package/dist/toggle-group/types.d.ts.map +1 -1
  459. package/dist/tooltip/index.d.ts.map +1 -1
  460. package/dist/tooltip/index.js +3 -3
  461. package/dist/tooltip/types.d.ts +2 -44
  462. package/dist/tooltip/types.d.ts.map +1 -1
  463. package/dist/tour/index.d.ts +6 -0
  464. package/dist/tour/index.d.ts.map +1 -0
  465. package/dist/tour/types.d.ts +45 -0
  466. package/dist/tour/types.d.ts.map +1 -0
  467. package/dist/transfer/index.d.ts.map +1 -1
  468. package/dist/transfer/index.js +4 -4
  469. package/dist/transfer/types.d.ts +0 -20
  470. package/dist/transfer/types.d.ts.map +1 -1
  471. package/dist/transfer/utils.d.ts.map +1 -1
  472. package/dist/tree/index.d.ts.map +1 -1
  473. package/dist/tree/index.js +2 -2
  474. package/dist/tree/types.d.ts +2 -73
  475. package/dist/tree/types.d.ts.map +1 -1
  476. package/dist/tree-select/index.d.ts.map +1 -1
  477. package/dist/tree-select/index.js +5 -5
  478. package/dist/tree-select/types.d.ts +3 -91
  479. package/dist/tree-select/types.d.ts.map +1 -1
  480. package/dist/types.d.ts +1 -35
  481. package/dist/types.d.ts.map +1 -1
  482. package/dist/typography/index.d.ts +8 -0
  483. package/dist/typography/index.d.ts.map +1 -0
  484. package/dist/typography/types.d.ts +33 -0
  485. package/dist/typography/types.d.ts.map +1 -0
  486. package/dist/upload/index.d.ts.map +1 -1
  487. package/dist/upload/index.js +4 -3
  488. package/dist/upload/types.d.ts +5 -32
  489. package/dist/upload/types.d.ts.map +1 -1
  490. package/dist/upload/utils.d.ts +2 -1
  491. package/dist/upload/utils.d.ts.map +1 -1
  492. package/dist/utils.d.ts +0 -39
  493. package/dist/utils.d.ts.map +1 -1
  494. package/dist/variants.d.ts +3 -314
  495. package/dist/variants.d.ts.map +1 -1
  496. package/dist/watermark/index.d.ts +6 -0
  497. package/dist/watermark/index.d.ts.map +1 -0
  498. package/dist/watermark/types.d.ts +24 -0
  499. package/dist/watermark/types.d.ts.map +1 -0
  500. package/package.json +5 -2
  501. package/styles/global.css +575 -2012
  502. package/styles/themes/dark.css +15 -5
  503. package/styles/themes/light.css +20 -2
  504. package/styles/themes/presets/corporate.css +2 -0
  505. package/styles/themes/presets/minimal.css +2 -0
  506. package/styles/themes/presets/vibrant.css +2 -0
  507. package/dist/chunk-2PNLIQYM.js.map +0 -1
  508. package/dist/chunk-2TLOWZE4.js.map +0 -1
  509. package/dist/chunk-2WZVD7P3.js +0 -145
  510. package/dist/chunk-2WZVD7P3.js.map +0 -1
  511. package/dist/chunk-3BIV3QE2.js.map +0 -1
  512. package/dist/chunk-3BZE6BBJ.js.map +0 -1
  513. package/dist/chunk-3PWILVOE.js.map +0 -1
  514. package/dist/chunk-4FFVNUTK.js.map +0 -1
  515. package/dist/chunk-5PUATOLR.js.map +0 -1
  516. package/dist/chunk-64NHVOZS.js.map +0 -1
  517. package/dist/chunk-674JC24S.js.map +0 -1
  518. package/dist/chunk-6BAP6QUT.js +0 -72
  519. package/dist/chunk-6BAP6QUT.js.map +0 -1
  520. package/dist/chunk-6G3BMY4N.js.map +0 -1
  521. package/dist/chunk-6HGUDHHE.js.map +0 -1
  522. package/dist/chunk-6JGNJI5T.js.map +0 -1
  523. package/dist/chunk-6LYRMQOI.js.map +0 -1
  524. package/dist/chunk-6YOOKE6C.js +0 -138
  525. package/dist/chunk-6YOOKE6C.js.map +0 -1
  526. package/dist/chunk-764UKE6X.js.map +0 -1
  527. package/dist/chunk-7UCNBMCV.js.map +0 -1
  528. package/dist/chunk-BPRCBPVJ.js +0 -253
  529. package/dist/chunk-BPRCBPVJ.js.map +0 -1
  530. package/dist/chunk-BVO2BNFG.js.map +0 -1
  531. package/dist/chunk-C5IGZLIT.js.map +0 -1
  532. package/dist/chunk-CN74CNAN.js.map +0 -1
  533. package/dist/chunk-D4SUSZDN.js.map +0 -1
  534. package/dist/chunk-DUIL5BYS.js.map +0 -1
  535. package/dist/chunk-EHWXPH76.js.map +0 -1
  536. package/dist/chunk-ERRZ2CSG.js +0 -192
  537. package/dist/chunk-ERRZ2CSG.js.map +0 -1
  538. package/dist/chunk-EZGK67T6.js +0 -383
  539. package/dist/chunk-EZGK67T6.js.map +0 -1
  540. package/dist/chunk-FZSCLZF6.js.map +0 -1
  541. package/dist/chunk-G6NVGBYZ.js.map +0 -1
  542. package/dist/chunk-GJPZOMFE.js.map +0 -1
  543. package/dist/chunk-GOLARX5K.js.map +0 -1
  544. package/dist/chunk-GVVP5TZM.js +0 -506
  545. package/dist/chunk-GVVP5TZM.js.map +0 -1
  546. package/dist/chunk-H6G4BUPA.js.map +0 -1
  547. package/dist/chunk-HCOTO5WX.js.map +0 -1
  548. package/dist/chunk-HECAAILV.js.map +0 -1
  549. package/dist/chunk-HUXODBIO.js.map +0 -1
  550. package/dist/chunk-I32ZQUYY.js.map +0 -1
  551. package/dist/chunk-JWTWPZ32.js.map +0 -1
  552. package/dist/chunk-KH577UDI.js.map +0 -1
  553. package/dist/chunk-KJTMZJ7V.js.map +0 -1
  554. package/dist/chunk-L5UYN5LX.js +0 -787
  555. package/dist/chunk-L5UYN5LX.js.map +0 -1
  556. package/dist/chunk-LOYLJRCF.js.map +0 -1
  557. package/dist/chunk-LX4FDH4J.js.map +0 -1
  558. package/dist/chunk-N2WHJ3FI.js.map +0 -1
  559. package/dist/chunk-NGYLRX6F.js.map +0 -1
  560. package/dist/chunk-O3V3BTIJ.js.map +0 -1
  561. package/dist/chunk-OLTQAMV2.js.map +0 -1
  562. package/dist/chunk-ON2CMF6J.js.map +0 -1
  563. package/dist/chunk-ONGJXAYQ.js.map +0 -1
  564. package/dist/chunk-OQFYIKWR.js +0 -1264
  565. package/dist/chunk-OQFYIKWR.js.map +0 -1
  566. package/dist/chunk-POLVJ36Y.js.map +0 -1
  567. package/dist/chunk-POXI7JJ4.js +0 -351
  568. package/dist/chunk-POXI7JJ4.js.map +0 -1
  569. package/dist/chunk-R3TLU26W.js.map +0 -1
  570. package/dist/chunk-RFHTC6AH.js.map +0 -1
  571. package/dist/chunk-ROA7BYGB.js.map +0 -1
  572. package/dist/chunk-SGRACNBP.js.map +0 -1
  573. package/dist/chunk-TLNHWOQQ.js.map +0 -1
  574. package/dist/chunk-UTWQ2FZK.js.map +0 -1
  575. package/dist/chunk-VOODO2ZE.js.map +0 -1
  576. package/dist/chunk-WRSG7WU5.js.map +0 -1
  577. package/dist/chunk-X3YNHX77.js.map +0 -1
  578. package/dist/chunk-Y4XAXZHB.js.map +0 -1
  579. package/dist/chunk-YJOLLSHH.js.map +0 -1
  580. package/dist/chunk-YS5AIY4A.js.map +0 -1
  581. package/dist/chunk-YXLIGJTN.js.map +0 -1
  582. package/dist/chunk-ZIYA7TGX.js.map +0 -1
  583. package/dist/chunk-ZJNGZCRB.js.map +0 -1
  584. package/dist/empty/index.d.ts +0 -6
  585. package/dist/empty/index.d.ts.map +0 -1
  586. package/dist/empty/index.js +0 -4
  587. package/dist/empty/types.d.ts +0 -62
  588. package/dist/empty/types.d.ts.map +0 -1
  589. package/dist/styles/tokens.d.ts +0 -428
  590. package/dist/styles/tokens.d.ts.map +0 -1
  591. /package/dist/{empty → alert}/index.js.map +0 -0
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/styles/themes/presets/index.ts","../src/hooks/useDebounce.ts","../src/hooks/useThrottle.ts","../src/hooks/useControllable.ts","../src/hooks/useMediaQuery.ts"],"names":["useState","useEffect"],"mappings":"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","file":"index.js","sourcesContent":["/**\n * Theme Presets\n *\n * Pre-configured color schemes for the UIKit\n * Each preset includes light and dark mode variants\n *\n * Usage:\n * ```tsx\n * <div data-theme=\"corporate\">\n * // Your components will use the corporate color scheme\n * </div>\n * ```\n *\n * Available presets:\n * - corporate: Professional blue/gray palette for business applications\n * - vibrant: Bold, saturated colors with purple/pink/teal\n * - minimal: Muted, low-contrast palette with subtle accents\n */\n\nexport const themePresets = ['corporate', 'vibrant', 'minimal'] as const\n\nexport type ThemePreset = typeof themePresets[number]\n","import { useEffect, useState } from 'react'\n\nexport function useDebounce<T>(value: T, delay: number): T {\n const [debouncedValue, setDebouncedValue] = useState(value)\n\n useEffect(() => {\n const handler = setTimeout(() => setDebouncedValue(value), delay)\n return () => clearTimeout(handler)\n }, [value, delay])\n\n return debouncedValue\n}\n","import { useEffect, useRef, useState } from 'react'\n\nexport function useThrottle<T>(value: T, interval: number): T {\n const [throttledValue, setThrottledValue] = useState(value)\n const lastUpdated = useRef(Date.now())\n\n useEffect(() => {\n const now = Date.now()\n if (now - lastUpdated.current >= interval) {\n lastUpdated.current = now\n setThrottledValue(value)\n } else {\n const timer = setTimeout(() => {\n lastUpdated.current = Date.now()\n setThrottledValue(value)\n }, interval - (now - lastUpdated.current))\n return () => clearTimeout(timer)\n }\n }, [value, interval])\n\n return throttledValue\n}\n","import { useCallback, useState } from 'react'\n\nexport function useControllable<T>({\n value,\n defaultValue,\n onChange,\n}: {\n value?: T\n defaultValue?: T\n onChange?: (value: T) => void\n}) {\n const isControlled = value !== undefined\n const [internalValue, setInternalValue] = useState(defaultValue)\n\n const currentValue = isControlled ? value : internalValue\n\n const setValue = useCallback(\n (next: T | ((prev: T | undefined) => T)) => {\n const nextValue = typeof next === 'function' ? (next as (prev: T | undefined) => T)(currentValue) : next\n if (!isControlled) {\n setInternalValue(nextValue)\n }\n onChange?.(nextValue)\n },\n [isControlled, currentValue, onChange],\n )\n\n return [currentValue, setValue] as const\n}\n","import { useEffect, useState } from 'react'\n\nexport function useMediaQuery(query: string): boolean {\n const [matches, setMatches] = useState(false)\n\n useEffect(() => {\n const media = window.matchMedia(query)\n setMatches(media.matches)\n\n const listener = (e: MediaQueryListEvent) => setMatches(e.matches)\n media.addEventListener('change', listener)\n return () => media.removeEventListener('change', listener)\n }, [query])\n\n return matches\n}\n"]}
1
+ {"version":3,"sources":["../src/styles/themes/presets/index.ts","../src/anchor/index.tsx","../src/autocomplete/index.tsx","../src/calendar/index.tsx","../src/color-picker/index.tsx","../src/float-button/index.tsx","../src/mentions/index.tsx","../src/qr-code/index.tsx","../src/resizable/index.tsx","../src/result/index.tsx","../src/tags-input/index.tsx","../src/tour/index.tsx","../src/typography/index.tsx","../src/watermark/index.tsx","../src/hooks/useDebounce.ts","../src/hooks/useThrottle.ts","../src/hooks/useMediaQuery.ts"],"names":["React","jsxs","jsx","cva","inputVariants","useState","useCallback","X","useEffect","useRef","useMemo","sizeMap","sizeClasses"],"mappings":"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","file":"index.js","sourcesContent":["/**\n * Theme Presets\n *\n * Pre-configured color schemes for the UIKit\n * Each preset includes light and dark mode variants\n *\n * Usage:\n * ```tsx\n * <div data-theme=\"corporate\">\n * // Your components will use the corporate color scheme\n * </div>\n * ```\n *\n * Available presets:\n * - corporate: Professional blue/gray palette for business applications\n * - vibrant: Bold, saturated colors with purple/pink/teal\n * - minimal: Muted, low-contrast palette with subtle accents\n */\n\nexport const themePresets = ['corporate', 'vibrant', 'minimal'] as const\n\nexport type ThemePreset = typeof themePresets[number]\n","'use client'\n\nimport React, { useState, useEffect, useCallback, useRef } from 'react'\n\nimport { cn } from '../utils'\nimport type { AnchorItem, AnchorProps } from './types'\n\nconst sizeClasses = {\n xs: { link: 'text-xs py-0.5 pl-3', indicator: 'w-0.5' },\n sm: { link: 'text-sm py-0.5 pl-3', indicator: 'w-0.5' },\n md: { link: 'text-sm py-1 pl-4', indicator: 'w-0.5' },\n lg: { link: 'text-base py-1 pl-5', indicator: 'w-1' },\n}\n\nfunction flattenIds(list: AnchorItem[]): string[] {\n return list.flatMap((item) => [item.id, ...(item.children ? flattenIds(item.children) : [])])\n}\n\nfunction getScrollContainer(getContainer?: () => HTMLElement | Window): HTMLElement | Window {\n if (getContainer) return getContainer()\n return typeof window !== 'undefined' ? window : (null as any)\n}\n\nfunction getContainerRect(container: HTMLElement | Window): { top: number } {\n if (!container || container === window || container instanceof Window) return { top: 0 }\n return (container as HTMLElement).getBoundingClientRect()\n}\n\nfunction scrollTo(container: HTMLElement | Window, top: number) {\n container.scrollTo({ top, behavior: 'smooth' })\n}\n\nconst Anchor = React.memo<AnchorProps>(\n ({\n items,\n offset = 0,\n targetOffset = 0,\n size = 'md',\n affix = false,\n affixTop = 0,\n getContainer,\n className,\n classNames,\n onChange,\n }) => {\n const [activeId, setActiveId] = useState<string>('')\n const [indicatorTop, setIndicatorTop] = useState(0)\n const [indicatorHeight, setIndicatorHeight] = useState(0)\n const navRef = useRef<HTMLElement>(null)\n const linkRefs = useRef<Map<string, HTMLAnchorElement>>(new Map())\n const isScrolling = useRef(false)\n\n const allIds = flattenIds(items)\n\n const updateActive = useCallback(() => {\n if (isScrolling.current) return\n if (typeof window === 'undefined') return\n\n const container = getScrollContainer(getContainer)\n const containerTop = getContainerRect(container).top\n\n let current = ''\n for (const id of allIds) {\n const el = document.getElementById(id)\n if (el) {\n const rect = el.getBoundingClientRect()\n // Position relative to scroll container\n const relativeTop = rect.top - containerTop\n if (relativeTop <= offset + 10) current = id\n }\n }\n if (current && current !== activeId) {\n setActiveId(current)\n onChange?.(current)\n }\n }, [allIds, offset, activeId, onChange, getContainer])\n\n useEffect(() => {\n if (typeof window === 'undefined') return\n const container = getScrollContainer(getContainer)\n const target = container instanceof Window ? window : container\n\n target.addEventListener('scroll', updateActive, { passive: true })\n updateActive()\n return () => target.removeEventListener('scroll', updateActive)\n }, [updateActive, getContainer])\n\n useEffect(() => {\n if (!activeId || !navRef.current) return\n const linkEl = linkRefs.current.get(activeId)\n if (linkEl) {\n const navRect = navRef.current.getBoundingClientRect()\n const linkRect = linkEl.getBoundingClientRect()\n setIndicatorTop(linkRect.top - navRect.top)\n setIndicatorHeight(linkRect.height)\n }\n }, [activeId])\n\n const handleClick = useCallback(\n (e: React.MouseEvent<HTMLAnchorElement>, id: string) => {\n e.preventDefault()\n const el = document.getElementById(id)\n if (!el) return\n\n const container = getScrollContainer(getContainer)\n\n isScrolling.current = true\n setActiveId(id)\n onChange?.(id)\n\n if (container instanceof Window) {\n const y = el.getBoundingClientRect().top + window.scrollY - targetOffset\n scrollTo(container, y)\n } else {\n const y = el.offsetTop - targetOffset\n scrollTo(container, y)\n }\n\n setTimeout(() => { isScrolling.current = false }, 800)\n },\n [targetOffset, onChange, getContainer],\n )\n\n const s = sizeClasses[size]\n const depthPadding = { 0: '', 1: 'pl-6', 2: 'pl-10', 3: 'pl-14' } as Record<number, string>\n\n const renderLink = (item: AnchorItem, depth = 0) => (\n <React.Fragment key={item.id}>\n <a\n ref={(el) => { if (el) linkRefs.current.set(item.id, el) }}\n href={`#${item.id}`}\n onClick={(e) => handleClick(e, item.id)}\n data-slot=\"link\"\n className={cn(\n 'anchor_link',\n 'block text-text-secondary hover:text-text-primary transition-colors truncate',\n s.link,\n depth > 0 && (depthPadding[depth] || 'pl-14'),\n activeId === item.id && 'text-primary font-medium',\n activeId === item.id && classNames?.activeLink,\n classNames?.link,\n )}\n >\n {item.label}\n </a>\n {item.children?.map((child) => renderLink(child, depth + 1))}\n </React.Fragment>\n )\n\n return (\n <nav\n ref={navRef}\n data-slot=\"root\"\n className={cn(\n 'anchor_root',\n 'relative',\n affix && 'sticky',\n classNames?.root,\n className,\n )}\n style={affix ? { top: affixTop } : undefined}\n aria-label=\"Table of contents\"\n >\n <div\n data-slot=\"indicator\"\n className={cn(\n 'anchor_indicator',\n 'absolute left-0 rounded-full bg-primary transition-all duration-200',\n s.indicator,\n classNames?.indicator,\n )}\n style={{\n top: indicatorTop,\n height: indicatorHeight,\n opacity: activeId ? 1 : 0,\n }}\n />\n\n <div className=\"absolute left-0 top-0 bottom-0 w-px bg-border\" />\n\n {items.map((item) => renderLink(item))}\n </nav>\n )\n },\n)\n\nAnchor.displayName = 'Anchor'\n\nexport type * from './types'\nexport default Anchor\n","'use client'\n\nimport { cva } from 'class-variance-authority'\nimport React from 'react'\n\nimport { Loader2, X, ChevronDown } from 'lucide-react'\nimport { Popover, PopoverAnchor, PopoverContent } from '../popover'\nimport { cn, iconSizes, statusMessageVariants } from '../utils'\nimport { colorVars } from '../variants'\nimport type { AutocompleteOption, AutocompleteProps } from './types'\n\nconst inputVariants = cva(\n 'w-full flex items-center rounded-md bg-background text-text-primary border outline-none transition-colors',\n {\n variants: {\n status: {\n default: 'border-border focus-within:border-slot hover:border-slot-50',\n primary: 'border-slot', secondary: 'border-slot', accent: 'border-slot',\n success: 'border-slot', error: 'border-slot', warning: 'border-slot', info: 'border-slot',\n },\n size: {\n xs: 'h-(--input-height-xs) px-2 text-xs gap-1.5',\n sm: 'h-(--input-height-sm) px-2.5 text-sm gap-2',\n md: 'h-(--input-height-md) px-3 text-base gap-2',\n lg: 'h-(--input-height-lg) px-3.5 text-lg gap-2.5',\n },\n fullWidth: {\n true: 'w-full',\n false: '',\n },\n disabled: {\n true: 'opacity-50 cursor-not-allowed',\n false: '',\n },\n },\n defaultVariants: {\n status: 'default',\n size: 'md',\n fullWidth: true,\n disabled: false,\n },\n },\n)\n\nfunction normalizeOption(opt: string | AutocompleteOption): AutocompleteOption {\n return typeof opt === 'string' ? { label: opt, value: opt } : opt\n}\n\nconst defaultFilter = (query: string, option: AutocompleteOption) =>\n option.label.toLowerCase().includes(query.toLowerCase())\n\nconst Autocomplete = React.memo<AutocompleteProps>(\n ({\n value,\n defaultValue = '',\n onChange,\n onSelect,\n options: rawOptions,\n placeholder,\n label,\n helperText,\n error,\n size = 'md',\n status: statusProp,\n disabled = false,\n loading = false,\n clearable = false,\n filter = defaultFilter,\n limit = 10,\n emptyMessage = 'No results',\n fullWidth = true,\n className,\n classNames,\n }) => {\n const [internalValue, setInternalValue] = React.useState(defaultValue)\n const [isOpen, setIsOpen] = React.useState(false)\n const [highlightIdx, setHighlightIdx] = React.useState(-1)\n const inputRef = React.useRef<HTMLInputElement>(null)\n const listRef = React.useRef<HTMLDivElement>(null)\n const labelId = React.useId()\n // Guard against blur closing the dropdown while clicking an option\n const selectingRef = React.useRef(false)\n\n const currentValue = value !== undefined ? value : internalValue\n const status = error ? 'error' : statusProp || 'default'\n\n const options = React.useMemo(\n () => rawOptions.map(normalizeOption),\n [rawOptions],\n )\n\n const filtered = React.useMemo(() => {\n if (!currentValue) return options.slice(0, limit)\n return options.filter((o) => filter(currentValue, o)).slice(0, limit)\n }, [currentValue, options, filter, limit])\n\n // Reset highlight when filtered list changes\n React.useEffect(() => {\n setHighlightIdx(-1)\n }, [filtered.length])\n\n const updateValue = (v: string) => {\n if (value === undefined) setInternalValue(v)\n onChange?.(v)\n }\n\n const open = () => {\n if (!disabled) setIsOpen(true)\n }\n\n const close = () => {\n setIsOpen(false)\n setHighlightIdx(-1)\n }\n\n const handleInputChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n updateValue(e.target.value)\n open()\n }\n\n const handleSelect = (option: AutocompleteOption) => {\n if (option.disabled) return\n updateValue(option.label)\n onSelect?.(option)\n close()\n // Refocus input after selection\n requestAnimationFrame(() => inputRef.current?.focus())\n }\n\n const handleClear = () => {\n updateValue('')\n inputRef.current?.focus()\n }\n\n const handleKeyDown = (e: React.KeyboardEvent) => {\n if (e.key === 'ArrowDown') {\n e.preventDefault()\n if (!isOpen) { open(); return }\n setHighlightIdx((i) => Math.min(i + 1, filtered.length - 1))\n } else if (e.key === 'ArrowUp') {\n e.preventDefault()\n if (!isOpen) { open(); return }\n setHighlightIdx((i) => Math.max(i - 1, 0))\n } else if (e.key === 'Enter' && highlightIdx >= 0 && isOpen) {\n e.preventDefault()\n handleSelect(filtered[highlightIdx])\n } else if (e.key === 'Escape') {\n close()\n } else if (e.key === 'Tab') {\n close()\n }\n }\n\n const handleFocus = () => {\n open()\n }\n\n const handleBlur = () => {\n // Delay close so option mousedown/click can fire first\n setTimeout(() => {\n if (!selectingRef.current) close()\n selectingRef.current = false\n }, 150)\n }\n\n React.useEffect(() => {\n if (highlightIdx >= 0 && listRef.current) {\n const el = listRef.current.children[highlightIdx] as HTMLElement\n el?.scrollIntoView?.({ block: 'nearest' })\n }\n }, [highlightIdx])\n\n return (\n <div\n data-slot=\"root\"\n className={cn(\n 'autocomplete_root',\n 'flex flex-col gap-1.5',\n colorVars[status === 'default' ? 'primary' : status],\n fullWidth ? 'w-full' : 'inline-flex',\n classNames?.root,\n className,\n )}\n >\n {label && (\n <label\n id={labelId}\n className=\"text-sm font-medium text-text-primary\"\n >\n {label}\n </label>\n )}\n\n <Popover open={isOpen && !disabled} onOpenChange={(v) => { if (!v) close() }}>\n <PopoverAnchor asChild>\n <div\n className={inputVariants({ status, size, fullWidth, disabled })}\n onClick={() => { if (!isOpen) open(); inputRef.current?.focus() }}\n >\n <input\n ref={inputRef}\n type=\"text\"\n role=\"combobox\"\n aria-expanded={isOpen}\n aria-autocomplete=\"list\"\n aria-labelledby={label ? labelId : undefined}\n className=\"flex-1 min-w-0 bg-transparent outline-none placeholder:text-text-secondary/50\"\n placeholder={placeholder}\n value={currentValue}\n onChange={handleInputChange}\n onFocus={handleFocus}\n onBlur={handleBlur}\n onKeyDown={handleKeyDown}\n disabled={disabled}\n />\n {loading && (\n <Loader2 className={cn('animate-spin text-text-secondary', iconSizes[size])} />\n )}\n {clearable && currentValue && !disabled && !loading && (\n <button\n type=\"button\"\n onMouseDown={(e) => e.preventDefault()}\n onClick={(e) => { e.stopPropagation(); handleClear() }}\n className=\"text-text-secondary hover:text-text-primary transition-colors cursor-pointer\"\n tabIndex={-1}\n aria-label=\"Clear\"\n >\n <X className={iconSizes[size]} />\n </button>\n )}\n {!loading && !clearable && (\n <ChevronDown\n className={cn(\n 'text-text-secondary transition-transform duration-200',\n iconSizes[size],\n isOpen && 'rotate-180',\n )}\n />\n )}\n </div>\n </PopoverAnchor>\n\n <PopoverContent\n className={cn(\n 'autocomplete_dropdown',\n 'p-1 w-[var(--radix-popover-trigger-width)] max-h-60 overflow-y-auto',\n classNames?.dropdown,\n )}\n align=\"start\"\n onOpenAutoFocus={(e) => e.preventDefault()}\n onCloseAutoFocus={(e) => e.preventDefault()}\n onInteractOutside={(e) => {\n // Don't close if clicking the anchor/input area\n const target = e.target as HTMLElement\n if (inputRef.current?.contains(target)) {\n e.preventDefault()\n }\n }}\n >\n <div ref={listRef} role=\"listbox\">\n {filtered.length === 0 ? (\n <div\n className={cn(\n 'autocomplete_empty',\n 'px-3 py-2 text-sm text-text-secondary text-center',\n classNames?.empty,\n )}\n >\n {emptyMessage}\n </div>\n ) : (\n filtered.map((option, idx) => (\n <div\n key={option.value}\n role=\"option\"\n aria-selected={idx === highlightIdx}\n aria-disabled={option.disabled}\n onMouseDown={(e) => {\n // Prevent blur from firing before select\n e.preventDefault()\n selectingRef.current = true\n }}\n onClick={() => handleSelect(option)}\n onMouseEnter={() => setHighlightIdx(idx)}\n className={cn(\n 'autocomplete_option',\n 'px-3 py-2 text-sm rounded-md cursor-pointer transition-colors',\n idx === highlightIdx && 'bg-surface',\n option.disabled && 'opacity-50 cursor-not-allowed',\n !option.disabled && 'hover:bg-surface',\n classNames?.option,\n )}\n >\n {option.label}\n </div>\n ))\n )}\n </div>\n </PopoverContent>\n </Popover>\n\n {(error || helperText) && (\n <p className={cn(\n 'text-xs',\n error ? statusMessageVariants({ status: 'error' }) : 'text-text-secondary',\n )}>\n {error || helperText}\n </p>\n )}\n </div>\n )\n },\n)\n\nAutocomplete.displayName = 'Autocomplete'\n\nexport type * from './types'\nexport default Autocomplete\n","'use client'\n\nimport { cva } from 'class-variance-authority'\nimport React from 'react'\n\nimport { ChevronLeft, ChevronRight } from 'lucide-react'\nimport { cn } from '../utils'\nimport type { CalendarProps } from './types'\n\nconst calendarVariants = cva('inline-flex flex-col select-none', {\n variants: {\n size: {\n xs: 'text-xs gap-1',\n sm: 'text-sm gap-1.5',\n md: 'text-sm gap-2',\n lg: 'text-base gap-2.5',\n },\n },\n defaultVariants: { size: 'md' },\n})\n\nconst cellVariants = cva(\n 'flex items-center justify-center rounded-md transition-colors cursor-pointer font-normal',\n {\n variants: {\n size: {\n xs: 'w-7 h-7 text-xs',\n sm: 'w-8 h-8 text-sm',\n md: 'w-9 h-9 text-sm',\n lg: 'w-10 h-10 text-base',\n },\n },\n defaultVariants: { size: 'md' },\n },\n)\n\nconst navBtnClass =\n 'inline-flex items-center justify-center rounded-md w-7 h-7 hover:bg-surface transition-colors cursor-pointer text-text-secondary hover:text-text-primary'\n\nfunction isSameDay(a: Date, b: Date) {\n return (\n a.getFullYear() === b.getFullYear() &&\n a.getMonth() === b.getMonth() &&\n a.getDate() === b.getDate()\n )\n}\n\nfunction getDaysInMonth(year: number, month: number) {\n return new Date(year, month + 1, 0).getDate()\n}\n\nfunction getMonthGrid(\n year: number,\n month: number,\n weekStartsOn: number,\n showOutside: boolean,\n) {\n const firstDay = new Date(year, month, 1).getDay()\n const daysInMonth = getDaysInMonth(year, month)\n const daysInPrevMonth = getDaysInMonth(year, month - 1)\n const offset = (firstDay - weekStartsOn + 7) % 7\n\n const weeks: Array<Array<{ date: Date; outside: boolean }>> = []\n let week: Array<{ date: Date; outside: boolean }> = []\n\n for (let i = 0; i < offset; i++) {\n const day = daysInPrevMonth - offset + 1 + i\n week.push({ date: new Date(year, month - 1, day), outside: true })\n }\n\n for (let day = 1; day <= daysInMonth; day++) {\n week.push({ date: new Date(year, month, day), outside: false })\n if (week.length === 7) {\n weeks.push(week)\n week = []\n }\n }\n\n if (week.length > 0) {\n let nextDay = 1\n while (week.length < 7) {\n week.push({ date: new Date(year, month + 1, nextDay++), outside: true })\n }\n weeks.push(week)\n }\n\n if (!showOutside) {\n return weeks.map((w) =>\n w.map((d) => (d.outside ? { ...d, date: d.date } : d)),\n )\n }\n\n return weeks\n}\n\nconst DAY_NAMES_SHORT = ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa']\nconst MONTH_NAMES = [\n 'January', 'February', 'March', 'April', 'May', 'June',\n 'July', 'August', 'September', 'October', 'November', 'December',\n]\n\nconst Calendar = React.memo<CalendarProps>(\n ({\n value,\n defaultValue,\n onChange,\n month: controlledMonth,\n defaultMonth,\n onMonthChange,\n minDate,\n maxDate,\n disabledDates,\n size = 'md',\n weekStartsOn = 0,\n showOutsideDays = true,\n className,\n classNames,\n }) => {\n const today = new Date()\n const [internalValue, setInternalValue] = React.useState<Date | null>(\n defaultValue ?? null,\n )\n const [internalMonth, setInternalMonth] = React.useState<Date>(\n defaultMonth ?? defaultValue ?? today,\n )\n\n const selected = value !== undefined ? value : internalValue\n const currentMonth = controlledMonth ?? internalMonth\n\n const year = currentMonth.getFullYear()\n const monthIdx = currentMonth.getMonth()\n\n const weeks = React.useMemo(\n () => getMonthGrid(year, monthIdx, weekStartsOn, showOutsideDays),\n [year, monthIdx, weekStartsOn, showOutsideDays],\n )\n\n const dayNames = React.useMemo(() => {\n const names = []\n for (let i = 0; i < 7; i++) {\n names.push(DAY_NAMES_SHORT[(weekStartsOn + i) % 7])\n }\n return names\n }, [weekStartsOn])\n\n const navigate = (offset: number) => {\n const next = new Date(year, monthIdx + offset, 1)\n if (controlledMonth === undefined) setInternalMonth(next)\n onMonthChange?.(next)\n }\n\n const isDisabled = (date: Date) => {\n if (minDate && date < new Date(minDate.getFullYear(), minDate.getMonth(), minDate.getDate()))\n return true\n if (maxDate && date > new Date(maxDate.getFullYear(), maxDate.getMonth(), maxDate.getDate()))\n return true\n return disabledDates?.(date) ?? false\n }\n\n const handleSelect = (date: Date) => {\n if (isDisabled(date)) return\n if (value === undefined) setInternalValue(date)\n onChange?.(date)\n if (date.getMonth() !== monthIdx) {\n navigate(date.getMonth() - monthIdx)\n }\n }\n\n return (\n <div\n data-slot=\"root\"\n className={cn(\n 'calendar_root',\n calendarVariants({ size }),\n classNames?.root,\n className,\n )}\n >\n {/* Header */}\n <div\n data-slot=\"header\"\n className={cn(\n 'calendar_header',\n 'flex items-center justify-between px-1',\n classNames?.header,\n )}\n >\n <button\n type=\"button\"\n onClick={() => navigate(-1)}\n className={navBtnClass}\n aria-label=\"Previous month\"\n >\n <ChevronLeft className=\"w-4 h-4\" />\n </button>\n <span className=\"font-semibold text-text-primary\">\n {MONTH_NAMES[monthIdx]} {year}\n </span>\n <button\n type=\"button\"\n onClick={() => navigate(1)}\n className={navBtnClass}\n aria-label=\"Next month\"\n >\n <ChevronRight className=\"w-4 h-4\" />\n </button>\n </div>\n\n {/* Grid */}\n <div\n data-slot=\"grid\"\n className={cn('calendar_grid', 'grid grid-cols-7', classNames?.grid)}\n role=\"grid\"\n >\n {dayNames.map((name) => (\n <div\n key={name}\n role=\"columnheader\"\n className={cn(\n 'calendar_dayName',\n cellVariants({ size }),\n 'font-medium text-text-secondary cursor-default',\n classNames?.dayName,\n )}\n >\n {name}\n </div>\n ))}\n {weeks.map((week, wi) =>\n week.map(({ date, outside }) => {\n const disabled = isDisabled(date)\n const isToday = isSameDay(date, today)\n const isSelected = selected ? isSameDay(date, selected) : false\n\n return (\n <button\n key={`${wi}-${date.toISOString()}`}\n type=\"button\"\n role=\"gridcell\"\n disabled={disabled}\n onClick={() => handleSelect(date)}\n aria-selected={isSelected}\n aria-current={isToday ? 'date' : undefined}\n className={cn(\n 'calendar_day',\n cellVariants({ size }),\n outside && 'text-text-secondary/40',\n outside && !showOutsideDays && 'invisible',\n disabled && 'opacity-30 cursor-not-allowed',\n !disabled && !isSelected && 'hover:bg-surface',\n isToday && !isSelected && 'border border-primary text-primary',\n isSelected && 'bg-primary text-primary-foreground',\n classNames?.day,\n isToday && classNames?.today,\n isSelected && classNames?.selected,\n outside && classNames?.outside,\n disabled && classNames?.disabled,\n )}\n >\n {date.getDate()}\n </button>\n )\n }),\n )}\n </div>\n </div>\n )\n },\n)\n\nCalendar.displayName = 'Calendar'\n\nexport type * from './types'\nexport default Calendar\n","'use client'\n\nimport { cva } from 'class-variance-authority'\nimport React from 'react'\n\nimport { Popover, PopoverContent, PopoverTrigger } from '../popover'\nimport { cn } from '../utils'\nimport type { ColorPickerProps, ColorInputProps } from './types'\n\n// ── Color utilities ──────────────────────────────────────────\nfunction hexToHsv(hex: string): [number, number, number] {\n const r = parseInt(hex.slice(1, 3), 16) / 255\n const g = parseInt(hex.slice(3, 5), 16) / 255\n const b = parseInt(hex.slice(5, 7), 16) / 255\n const max = Math.max(r, g, b), min = Math.min(r, g, b)\n const d = max - min\n let h = 0\n if (d !== 0) {\n if (max === r) h = ((g - b) / d + 6) % 6\n else if (max === g) h = (b - r) / d + 2\n else h = (r - g) / d + 4\n h *= 60\n }\n const s = max === 0 ? 0 : d / max\n return [h, s, max]\n}\n\nfunction hsvToHex(h: number, s: number, v: number): string {\n const c = v * s\n const x = c * (1 - Math.abs(((h / 60) % 2) - 1))\n const m = v - c\n let r = 0, g = 0, b = 0\n if (h < 60) { r = c; g = x }\n else if (h < 120) { r = x; g = c }\n else if (h < 180) { g = c; b = x }\n else if (h < 240) { g = x; b = c }\n else if (h < 300) { r = x; b = c }\n else { r = c; b = x }\n const toHex = (n: number) => Math.round((n + m) * 255).toString(16).padStart(2, '0')\n return `#${toHex(r)}${toHex(g)}${toHex(b)}`\n}\n\nfunction isValidHex(v: string): boolean {\n return /^#[0-9a-fA-F]{6}$/.test(v)\n}\n\nfunction normalizeHex(v: string): string {\n if (!v) return '#000000'\n const clean = v.startsWith('#') ? v : `#${v}`\n return isValidHex(clean) ? clean.toLowerCase() : '#000000'\n}\n\n// ── Size variants ────────────────────────────────────────────\nconst sizeMap = {\n xs: { area: 'w-40 h-28', hue: 'h-2', swatch: 'w-4 h-4' },\n sm: { area: 'w-48 h-32', hue: 'h-2.5', swatch: 'w-5 h-5' },\n md: { area: 'w-56 h-36', hue: 'h-3', swatch: 'w-6 h-6' },\n lg: { area: 'w-64 h-44', hue: 'h-3.5', swatch: 'w-7 h-7' },\n}\n\nconst inputVariants = cva(\n 'flex items-center rounded-md border border-border bg-background text-text-primary transition-colors focus-within:border-primary',\n {\n variants: {\n size: {\n xs: 'h-7 px-2 text-xs gap-1.5',\n sm: 'h-8 px-2.5 text-sm gap-2',\n md: 'h-9 px-3 text-sm gap-2',\n lg: 'h-10 px-3.5 text-base gap-2.5',\n },\n },\n defaultVariants: { size: 'md' },\n },\n)\n\n// ── Saturation Area ──────────────────────────────────────────\nfunction SaturationArea({\n hue, sat, val, onChangeSV, areaClass, disabled,\n}: {\n hue: number; sat: number; val: number\n onChangeSV: (s: number, v: number) => void\n areaClass: string; disabled?: boolean\n}) {\n const ref = React.useRef<HTMLDivElement>(null)\n\n const update = React.useCallback(\n (clientX: number, clientY: number) => {\n if (!ref.current || disabled) return\n const rect = ref.current.getBoundingClientRect()\n const s = Math.max(0, Math.min(1, (clientX - rect.left) / rect.width))\n const v = Math.max(0, Math.min(1, 1 - (clientY - rect.top) / rect.height))\n onChangeSV(s, v)\n },\n [onChangeSV, disabled],\n )\n\n const handlePointerDown = (e: React.PointerEvent) => {\n if (disabled) return\n e.currentTarget.setPointerCapture(e.pointerId)\n update(e.clientX, e.clientY)\n }\n\n const handlePointerMove = (e: React.PointerEvent) => {\n if (e.currentTarget.hasPointerCapture(e.pointerId)) {\n update(e.clientX, e.clientY)\n }\n }\n\n return (\n <div\n ref={ref}\n className={cn('colorPicker_saturation', 'relative rounded-md cursor-crosshair', areaClass)}\n style={{ background: `hsl(${hue}, 100%, 50%)` }}\n onPointerDown={handlePointerDown}\n onPointerMove={handlePointerMove}\n >\n <div className=\"absolute inset-0 rounded-md\" style={{ background: 'linear-gradient(to right, white, transparent)' }} />\n <div className=\"absolute inset-0 rounded-md\" style={{ background: 'linear-gradient(to top, black, transparent)' }} />\n <div\n className=\"absolute w-3.5 h-3.5 rounded-full border-2 border-white shadow-md -translate-x-1/2 -translate-y-1/2 pointer-events-none\"\n style={{ left: `${sat * 100}%`, top: `${(1 - val) * 100}%` }}\n />\n </div>\n )\n}\n\n// ── Hue Slider ───────────────────────────────────────────────\nfunction HueSlider({\n hue, onChange, hueClass, disabled,\n}: {\n hue: number; onChange: (h: number) => void; hueClass: string; disabled?: boolean\n}) {\n const ref = React.useRef<HTMLDivElement>(null)\n\n const update = React.useCallback(\n (clientX: number) => {\n if (!ref.current || disabled) return\n const rect = ref.current.getBoundingClientRect()\n const h = Math.max(0, Math.min(360, ((clientX - rect.left) / rect.width) * 360))\n onChange(h)\n },\n [onChange, disabled],\n )\n\n const handlePointerDown = (e: React.PointerEvent) => {\n if (disabled) return\n e.currentTarget.setPointerCapture(e.pointerId)\n update(e.clientX)\n }\n\n const handlePointerMove = (e: React.PointerEvent) => {\n if (e.currentTarget.hasPointerCapture(e.pointerId)) update(e.clientX)\n }\n\n return (\n <div\n ref={ref}\n className={cn('colorPicker_hue', 'relative rounded-full cursor-pointer', hueClass)}\n style={{ background: 'linear-gradient(to right, #f00 0%, #ff0 17%, #0f0 33%, #0ff 50%, #00f 67%, #f0f 83%, #f00 100%)' }}\n onPointerDown={handlePointerDown}\n onPointerMove={handlePointerMove}\n >\n <div\n className=\"absolute w-3.5 h-3.5 rounded-full border-2 border-white shadow-md -translate-x-1/2 top-1/2 -translate-y-1/2 pointer-events-none\"\n style={{ left: `${(hue / 360) * 100}%` }}\n />\n </div>\n )\n}\n\n// ── ColorPicker ──────────────────────────────────────────────\nconst ColorPicker = React.memo<ColorPickerProps>(\n ({\n value,\n defaultValue = '#3b82f6',\n onChange,\n swatches,\n size = 'md',\n disabled = false,\n label,\n className,\n classNames,\n }) => {\n const [internalValue, setInternalValue] = React.useState(normalizeHex(defaultValue))\n const currentValue = value !== undefined ? normalizeHex(value) : internalValue\n\n const [h, s, v] = React.useMemo(() => hexToHsv(currentValue), [currentValue])\n const [hue, setHue] = React.useState(h)\n\n React.useEffect(() => {\n if (s > 0.01 || v > 0.01) setHue(h)\n }, [h, s, v])\n\n const [inputText, setInputText] = React.useState(currentValue)\n React.useEffect(() => setInputText(currentValue), [currentValue])\n\n const update = (hex: string) => {\n const valid = normalizeHex(hex)\n if (value === undefined) setInternalValue(valid)\n onChange?.(valid)\n }\n\n const handleSVChange = (ns: number, nv: number) => {\n update(hsvToHex(hue, ns, nv))\n }\n\n const handleHueChange = (nh: number) => {\n setHue(nh)\n update(hsvToHex(nh, s, v))\n }\n\n const handleInputBlur = () => {\n if (isValidHex(inputText) || isValidHex(`#${inputText}`)) {\n update(inputText.startsWith('#') ? inputText : `#${inputText}`)\n } else {\n setInputText(currentValue)\n }\n }\n\n const sizes = sizeMap[size]\n\n return (\n <div\n data-slot=\"root\"\n className={cn(\n 'colorPicker_root',\n 'inline-flex flex-col gap-2',\n disabled && 'opacity-50 pointer-events-none',\n classNames?.root,\n className,\n )}\n >\n {label && (\n <span className=\"text-sm font-medium text-text-primary\">{label}</span>\n )}\n\n <SaturationArea\n hue={hue} sat={s} val={v}\n onChangeSV={handleSVChange}\n areaClass={cn(sizes.area, classNames?.saturation)}\n disabled={disabled}\n />\n\n <HueSlider\n hue={hue}\n onChange={handleHueChange}\n hueClass={cn(sizes.hue, classNames?.hueSlider)}\n disabled={disabled}\n />\n\n {/* Input + preview */}\n <div className=\"flex items-center gap-2\">\n <div\n data-slot=\"preview\"\n className={cn(\n 'colorPicker_preview',\n 'w-8 h-8 rounded-md border border-border shrink-0',\n classNames?.preview,\n )}\n style={{ backgroundColor: currentValue }}\n />\n <input\n type=\"text\"\n value={inputText}\n onChange={(e) => setInputText(e.target.value)}\n onBlur={handleInputBlur}\n onKeyDown={(e) => e.key === 'Enter' && handleInputBlur()}\n className={cn(\n 'colorPicker_input',\n 'flex-1 min-w-0 bg-transparent border border-border rounded-md px-2 py-1 text-sm text-text-primary outline-none focus:border-primary font-mono',\n classNames?.input,\n )}\n disabled={disabled}\n />\n </div>\n\n {/* Swatches */}\n {swatches && swatches.length > 0 && (\n <div\n data-slot=\"swatches\"\n className={cn(\n 'colorPicker_swatches',\n 'flex flex-wrap gap-1',\n classNames?.swatches,\n )}\n >\n {swatches.map((swatch) => (\n <button\n key={swatch}\n type=\"button\"\n onClick={() => update(swatch)}\n className={cn(\n 'colorPicker_swatch',\n sizes.swatch,\n 'rounded-md border border-border cursor-pointer transition-transform hover:scale-110',\n currentValue === normalizeHex(swatch) && 'ring-2 ring-primary ring-offset-1 ring-offset-background',\n classNames?.swatch,\n )}\n style={{ backgroundColor: swatch }}\n aria-label={`Select color ${swatch}`}\n />\n ))}\n </div>\n )}\n </div>\n )\n },\n)\n\nColorPicker.displayName = 'ColorPicker'\n\n// ── ColorInput ───────────────────────────────────────────────\nconst ColorInput = React.memo<ColorInputProps>(\n ({\n value,\n defaultValue = '#3b82f6',\n onChange,\n swatches,\n size = 'md',\n disabled = false,\n label,\n fullWidth = true,\n className,\n classNames,\n }) => {\n const [internalValue, setInternalValue] = React.useState(normalizeHex(defaultValue))\n const currentValue = value !== undefined ? normalizeHex(value) : internalValue\n\n const update = (hex: string) => {\n const valid = normalizeHex(hex)\n if (value === undefined) setInternalValue(valid)\n onChange?.(valid)\n }\n\n return (\n <div\n data-slot=\"root\"\n className={cn(\n 'colorInput_root',\n 'flex flex-col gap-1.5',\n fullWidth ? 'w-full' : 'inline-flex',\n className,\n )}\n >\n {label && (\n <span className=\"text-sm font-medium text-text-primary\">{label}</span>\n )}\n\n <Popover>\n <PopoverTrigger asChild>\n <div className={cn(inputVariants({ size }), disabled && 'opacity-50 cursor-not-allowed', fullWidth && 'w-full')}>\n <div\n className=\"w-5 h-5 rounded border border-border shrink-0\"\n style={{ backgroundColor: currentValue }}\n />\n <span className=\"flex-1 truncate text-text-primary font-mono\">\n {currentValue}\n </span>\n </div>\n </PopoverTrigger>\n <PopoverContent className=\"w-auto p-3\" align=\"start\">\n <ColorPicker\n value={currentValue}\n onChange={update}\n swatches={swatches}\n size={size}\n disabled={disabled}\n classNames={classNames}\n />\n </PopoverContent>\n </Popover>\n </div>\n )\n },\n)\n\nColorInput.displayName = 'ColorInput'\n\nexport type * from './types'\nexport { ColorPicker, ColorInput }\nexport default ColorPicker\n","'use client'\n\nimport { cva } from 'class-variance-authority'\nimport React, { useState, useEffect, useCallback } from 'react'\n\nimport { ArrowUp, X, Plus } from 'lucide-react'\nimport { cn } from '../utils'\nimport { colorVars } from '../variants'\nimport type { FloatButtonProps, FloatButtonGroupProps, BackTopProps } from './types'\n\nconst buttonVariants = cva(\n 'inline-flex items-center justify-center shadow-lg transition-all hover:scale-105 active:scale-95 disabled:opacity-50 disabled:pointer-events-none cursor-pointer',\n {\n variants: {\n size: {\n xs: 'w-8 h-8 text-sm',\n sm: 'w-10 h-10 text-base',\n md: 'w-12 h-12 text-lg',\n lg: 'w-14 h-14 text-xl',\n },\n shape: {\n circle: 'rounded-full',\n square: 'rounded-lg',\n },\n variant: {\n default: 'bg-background border border-border text-text-primary hover:bg-surface',\n colored: 'bg-slot text-slot-fg hover:bg-slot-90',\n },\n },\n defaultVariants: { size: 'md', shape: 'circle', variant: 'default' },\n },\n)\n\nconst FloatButton = React.memo<FloatButtonProps>(\n ({\n icon,\n label,\n tooltip,\n badge,\n onClick,\n href,\n target,\n color = 'default',\n size = 'md',\n shape = 'circle',\n disabled = false,\n className,\n classNames,\n style,\n }) => {\n const variant = color === 'default' ? 'default' : 'colored'\n const Component = href ? 'a' : 'button'\n\n const content = (\n <Component\n {...(href ? { href, target } : { type: 'button' as const, onClick, disabled })}\n data-slot=\"button\"\n title={tooltip}\n className={cn(\n 'floatButton_button',\n buttonVariants({ size, shape, variant }),\n color !== 'default' && colorVars[color],\n 'relative',\n classNames?.button,\n className,\n )}\n style={style}\n >\n {icon}\n {label && !icon && <span className=\"text-xs font-medium\">{label}</span>}\n {badge !== undefined && (\n <span\n data-slot=\"badge\"\n className={cn(\n 'floatButton_badge',\n 'absolute -top-1 -right-1 min-w-[18px] h-[18px] px-1 rounded-full bg-error text-error-foreground text-[10px] font-medium flex items-center justify-center',\n classNames?.badge,\n )}\n >\n {badge}\n </span>\n )}\n </Component>\n )\n\n return content\n },\n)\n\nFloatButton.displayName = 'FloatButton'\n\nconst FloatButtonGroup = React.memo<FloatButtonGroupProps>(\n ({\n children,\n trigger = 'click',\n icon,\n closeIcon,\n open: controlledOpen,\n onOpenChange,\n shape = 'circle',\n color = 'primary',\n size = 'md',\n placement = 'top',\n className,\n classNames,\n style,\n }) => {\n const [internalOpen, setInternalOpen] = useState(false)\n const isOpen = controlledOpen !== undefined ? controlledOpen : internalOpen\n\n const setOpen = useCallback(\n (v: boolean) => {\n if (controlledOpen === undefined) setInternalOpen(v)\n onOpenChange?.(v)\n },\n [controlledOpen, onOpenChange],\n )\n\n const placementClasses = {\n top: 'flex-col-reverse gap-3 bottom-0',\n bottom: 'flex-col gap-3 top-0',\n left: 'flex-row-reverse gap-3 right-0',\n right: 'flex-row gap-3 left-0',\n }\n\n const openIcon = icon ?? <Plus className=\"w-5 h-5\" />\n const closedIcon = closeIcon ?? <X className=\"w-5 h-5\" />\n\n return (\n <div\n data-slot=\"group\"\n className={cn('floatButton_group', 'relative inline-flex', classNames?.group, className)}\n style={style}\n onMouseEnter={trigger === 'hover' ? () => setOpen(true) : undefined}\n onMouseLeave={trigger === 'hover' ? () => setOpen(false) : undefined}\n >\n <FloatButton\n icon={\n <span className={cn('transition-transform duration-200', isOpen && 'rotate-45')}>\n {isOpen ? closedIcon : openIcon}\n </span>\n }\n color={color}\n size={size}\n shape={shape}\n onClick={trigger === 'click' ? () => setOpen(!isOpen) : undefined}\n />\n\n {isOpen && (\n <div className={cn('absolute flex items-center', placementClasses[placement])}>\n {React.Children.map(children, (child, idx) => {\n if (!React.isValidElement(child)) return child\n return (\n <div\n key={idx}\n className=\"animate-in fade-in zoom-in-75\"\n style={{ animationDelay: `${idx * 50}ms`, animationFillMode: 'both', animationDuration: '150ms' }}\n >\n {React.cloneElement(child as React.ReactElement<FloatButtonProps>, {\n size: (child as React.ReactElement<FloatButtonProps>).props.size || size,\n shape: (child as React.ReactElement<FloatButtonProps>).props.shape || shape,\n })}\n </div>\n )\n })}\n </div>\n )}\n </div>\n )\n },\n)\n\nFloatButtonGroup.displayName = 'FloatButtonGroup'\n\nconst BackTop = React.memo<BackTopProps>(\n ({\n visibilityHeight = 400,\n onClick,\n icon,\n size = 'md',\n shape = 'circle',\n color = 'default',\n ...props\n }) => {\n const [visible, setVisible] = useState(false)\n\n useEffect(() => {\n if (typeof window === 'undefined') return\n const handleScroll = () => setVisible(window.scrollY >= visibilityHeight)\n handleScroll()\n window.addEventListener('scroll', handleScroll, { passive: true })\n return () => window.removeEventListener('scroll', handleScroll)\n }, [visibilityHeight])\n\n const handleClick = useCallback(() => {\n window.scrollTo({ top: 0, behavior: 'smooth' })\n onClick?.()\n }, [onClick])\n\n if (!visible) return null\n\n return (\n <FloatButton\n icon={icon ?? <ArrowUp className=\"w-5 h-5\" />}\n tooltip=\"Back to top\"\n onClick={handleClick}\n size={size}\n shape={shape}\n color={color}\n {...props}\n />\n )\n },\n)\n\nBackTop.displayName = 'BackTop'\n\nexport type * from './types'\nexport { FloatButton, FloatButtonGroup, BackTop }\nexport default FloatButton\n","'use client'\n\nimport { cva } from 'class-variance-authority'\nimport React, { useState, useRef, useCallback, useMemo, useEffect } from 'react'\n\nimport { cn, statusMessageVariants } from '../utils'\nimport type { MentionOption, MentionsProps } from './types'\n\nconst textareaVariants = cva(\n 'w-full rounded-md border bg-background text-text-primary placeholder:text-text-secondary/50 outline-none transition-colors disabled:opacity-50 disabled:cursor-not-allowed read-only:bg-surface read-only:cursor-default',\n {\n variants: {\n size: {\n xs: 'px-(--input-padding-x-xs) py-1.5 text-xs',\n sm: 'px-(--input-padding-x-sm) py-2 text-sm',\n md: 'px-(--input-padding-x-md) py-2 text-sm',\n lg: 'px-(--input-padding-x-lg) py-2.5 text-base',\n },\n status: {\n default: 'border-border focus:border-primary',\n error: 'border-error focus:border-error',\n },\n },\n defaultVariants: { size: 'md', status: 'default' },\n },\n)\n\nfunction getCaretCoordinates(element: HTMLTextAreaElement, position: number) {\n const div = document.createElement('div')\n const style = getComputedStyle(element)\n const props = [\n 'fontFamily', 'fontSize', 'fontWeight', 'letterSpacing', 'lineHeight',\n 'paddingTop', 'paddingRight', 'paddingBottom', 'paddingLeft',\n 'borderTopWidth', 'borderRightWidth', 'borderBottomWidth', 'borderLeftWidth',\n 'wordWrap', 'whiteSpace', 'overflowWrap',\n ] as const\n\n div.style.position = 'absolute'\n div.style.visibility = 'hidden'\n div.style.whiteSpace = 'pre-wrap'\n div.style.wordWrap = 'break-word'\n div.style.width = `${element.offsetWidth}px`\n for (const prop of props) div.style[prop as any] = style.getPropertyValue(prop.replace(/[A-Z]/g, (m) => `-${m.toLowerCase()}`))\n\n div.textContent = element.value.substring(0, position)\n const span = document.createElement('span')\n span.textContent = element.value.substring(position) || '.'\n div.appendChild(span)\n document.body.appendChild(div)\n\n const top = span.offsetTop - element.scrollTop\n const left = span.offsetLeft - element.scrollLeft\n document.body.removeChild(div)\n return { top, left }\n}\n\nconst Mentions = React.memo<MentionsProps>(\n ({\n value,\n defaultValue = '',\n onChange,\n onSelect,\n options = [],\n triggers = ['@'],\n loading = false,\n size = 'md',\n disabled = false,\n readOnly = false,\n placeholder,\n rows = 3,\n label,\n error,\n helperText,\n fullWidth = true,\n className,\n classNames,\n }) => {\n const [internalValue, setInternalValue] = useState(defaultValue)\n const currentValue = value !== undefined ? value : internalValue\n const [showDropdown, setShowDropdown] = useState(false)\n const [query, setQuery] = useState('')\n const [activeTrigger, setActiveTrigger] = useState('')\n const [triggerStart, setTriggerStart] = useState(-1)\n const [highlightedIdx, setHighlightedIdx] = useState(0)\n const [dropdownPos, setDropdownPos] = useState({ top: 0, left: 0 })\n const textareaRef = useRef<HTMLTextAreaElement>(null)\n\n const update = useCallback(\n (v: string) => {\n if (value === undefined) setInternalValue(v)\n onChange?.(v)\n },\n [value, onChange],\n )\n\n const filteredOptions = useMemo(() => {\n if (!query) return options\n const q = query.toLowerCase()\n return options.filter(\n (o) => o.label.toLowerCase().includes(q) || o.value.toLowerCase().includes(q),\n )\n }, [options, query])\n\n const insertMention = useCallback(\n (option: MentionOption) => {\n const before = currentValue.substring(0, triggerStart)\n const after = currentValue.substring(textareaRef.current?.selectionStart ?? triggerStart)\n const mention = `${activeTrigger}${option.value} `\n const next = before + mention + after\n update(next)\n onSelect?.(option, activeTrigger)\n setShowDropdown(false)\n setQuery('')\n\n requestAnimationFrame(() => {\n if (textareaRef.current) {\n const pos = before.length + mention.length\n textareaRef.current.selectionStart = pos\n textareaRef.current.selectionEnd = pos\n textareaRef.current.focus()\n }\n })\n },\n [currentValue, triggerStart, activeTrigger, update, onSelect],\n )\n\n const handleChange = (e: React.ChangeEvent<HTMLTextAreaElement>) => {\n const v = e.target.value\n update(v)\n\n const cursor = e.target.selectionStart\n const textBefore = v.substring(0, cursor)\n\n let found = false\n for (const trigger of triggers) {\n const lastTrigger = textBefore.lastIndexOf(trigger)\n if (lastTrigger >= 0) {\n const between = textBefore.substring(lastTrigger + trigger.length)\n const charBefore = lastTrigger > 0 ? textBefore[lastTrigger - 1] : ' '\n if (/\\s/.test(charBefore) || lastTrigger === 0) {\n if (!/\\s/.test(between)) {\n setActiveTrigger(trigger)\n setTriggerStart(lastTrigger)\n setQuery(between)\n setShowDropdown(true)\n setHighlightedIdx(0)\n found = true\n\n if (typeof window !== 'undefined' && textareaRef.current) {\n const coords = getCaretCoordinates(textareaRef.current, lastTrigger)\n setDropdownPos({ top: coords.top + 24, left: coords.left })\n }\n break\n }\n }\n }\n }\n if (!found) setShowDropdown(false)\n }\n\n const handleKeyDown = (e: React.KeyboardEvent<HTMLTextAreaElement>) => {\n if (!showDropdown || filteredOptions.length === 0) return\n if (e.key === 'ArrowDown') {\n e.preventDefault()\n setHighlightedIdx((p) => Math.min(p + 1, filteredOptions.length - 1))\n } else if (e.key === 'ArrowUp') {\n e.preventDefault()\n setHighlightedIdx((p) => Math.max(p - 1, 0))\n } else if (e.key === 'Enter' || e.key === 'Tab') {\n e.preventDefault()\n if (filteredOptions[highlightedIdx]) insertMention(filteredOptions[highlightedIdx])\n } else if (e.key === 'Escape') {\n setShowDropdown(false)\n }\n }\n\n useEffect(() => {\n if (highlightedIdx >= filteredOptions.length) setHighlightedIdx(Math.max(0, filteredOptions.length - 1))\n }, [filteredOptions.length, highlightedIdx])\n\n return (\n <div\n data-slot=\"root\"\n className={cn(\n 'mentions_root',\n 'flex flex-col gap-1.5',\n fullWidth ? 'w-full' : 'inline-flex',\n classNames?.root,\n className,\n )}\n >\n {label && (\n <label data-slot=\"label\" className=\"text-sm font-medium text-text-primary\">\n {label}\n </label>\n )}\n\n <div className=\"relative\">\n <textarea\n ref={textareaRef}\n value={currentValue}\n onChange={handleChange}\n onKeyDown={handleKeyDown}\n onBlur={() => setTimeout(() => setShowDropdown(false), 150)}\n placeholder={placeholder}\n rows={rows}\n disabled={disabled}\n readOnly={readOnly}\n data-slot=\"textarea\"\n className={cn(\n 'mentions_textarea',\n textareaVariants({ size, status: error ? 'error' : 'default' }),\n 'resize-y',\n classNames?.textarea,\n )}\n />\n\n {showDropdown && filteredOptions.length > 0 && (\n <div\n data-slot=\"dropdown\"\n className={cn(\n 'mentions_dropdown',\n 'absolute z-[var(--z-popover)] rounded-md border border-border bg-background shadow-md max-h-[200px] overflow-auto min-w-[180px]',\n classNames?.dropdown,\n )}\n style={{ top: dropdownPos.top, left: Math.min(dropdownPos.left, 200) }}\n >\n {loading ? (\n <div className=\"px-3 py-2 text-sm text-text-secondary\">Loading...</div>\n ) : (\n filteredOptions.map((option, idx) => (\n <div\n key={option.value}\n onMouseDown={(e) => { e.preventDefault(); insertMention(option) }}\n onMouseEnter={() => setHighlightedIdx(idx)}\n data-slot=\"option\"\n className={cn(\n 'mentions_option',\n 'flex items-center gap-2 px-3 py-1.5 text-sm cursor-pointer transition-colors',\n idx === highlightedIdx ? 'bg-surface text-text-primary' : 'text-text-primary hover:bg-surface',\n classNames?.option,\n )}\n >\n {option.icon && <span className=\"shrink-0 w-5 h-5\">{option.icon}</span>}\n <div className=\"flex-1 min-w-0\">\n <div className=\"font-medium truncate\">{option.label}</div>\n {option.description && (\n <div className=\"text-xs text-text-secondary truncate\">{option.description}</div>\n )}\n </div>\n </div>\n ))\n )}\n </div>\n )}\n </div>\n\n {(error || helperText) && (\n <p data-slot=\"message\" className={cn('text-xs', error ? statusMessageVariants({ status: 'error' }) : 'text-text-secondary')}>\n {error || helperText}\n </p>\n )}\n </div>\n )\n },\n)\n\nMentions.displayName = 'Mentions'\n\nexport type * from './types'\nexport default Mentions\n","'use client'\n\nimport React, { useRef, useEffect, useMemo, useCallback, useState } from 'react'\n\nimport { cn } from '../utils'\nimport { colorVars } from '../variants'\nimport type { QRCodeProps, QRModuleStyle, QRFinderStyle } from './types'\nimport type { ComponentColor } from '../types'\n\n// ── QR generation ───────────────────────────────────────────\n\ninterface QRMatrix {\n size: number\n get(row: number, col: number): number\n}\n\nlet _createFn: ((text: string, opts?: any) => { modules: QRMatrix }) | null = null\n\nasync function loadQRLib(): Promise<boolean> {\n if (_createFn) return true\n try {\n const mod: any = await import('qrcode')\n _createFn = mod.create || mod.default?.create || null\n return !!_createFn\n } catch {\n return false\n }\n}\n\nfunction createQRMatrixSync(text: string, errorLevel: string): QRMatrix | null {\n if (!_createFn) return null\n try {\n const result = _createFn(text, { errorCorrectionLevel: errorLevel })\n return result.modules as QRMatrix\n } catch {\n return null\n }\n}\n\n// ── Resolve computed color from an element's CSS var ────────\n\nfunction resolveColor(el: Element, varName: string): string | null {\n if (typeof window === 'undefined') return null\n try {\n const raw = getComputedStyle(el).getPropertyValue(varName).trim()\n if (!raw) return null\n // Convert oklch / any CSS color to a canvas-usable string\n const probe = document.createElement('div')\n probe.style.color = raw\n document.body.appendChild(probe)\n const computed = getComputedStyle(probe).color\n document.body.removeChild(probe)\n return computed || null\n } catch {\n return null\n }\n}\n\n// ── Hook: read a slot CSS var from an element ref ───────────\n// Watches for theme mutations and re-resolves automatically.\n\nfunction useSlotColor(\n rootRef: React.RefObject<HTMLElement | null>,\n explicitColor: string | undefined,\n slotVar: string,\n fallback: string,\n): string {\n const [resolved, setResolved] = useState(explicitColor || fallback)\n\n useEffect(() => {\n if (explicitColor) {\n setResolved(explicitColor)\n return\n }\n\n const update = () => {\n const el = rootRef.current\n if (!el) return\n const computed = resolveColor(el, slotVar)\n setResolved(computed || fallback)\n }\n\n // Initial + delayed resolve (slot vars need the element to be in the DOM)\n update()\n const raf = requestAnimationFrame(update)\n\n // Re-resolve when theme changes\n const observer = new MutationObserver(update)\n observer.observe(document.documentElement, {\n attributes: true,\n attributeFilter: ['class', 'data-theme', 'data-mode'],\n })\n\n return () => {\n cancelAnimationFrame(raf)\n observer.disconnect()\n }\n }, [explicitColor, slotVar, fallback, rootRef])\n\n return resolved\n}\n\n// ── Finder pattern detection ────────────────────────────────\n\nfunction isFinderModule(row: number, col: number, size: number): boolean {\n if (row < 7 && col < 7) return true\n if (row < 7 && col >= size - 7) return true\n if (row >= size - 7 && col < 7) return true\n return false\n}\n\n// ── Canvas renderer ─────────────────────────────────────────\n\nfunction drawCanvasQR(\n canvas: HTMLCanvasElement,\n matrix: QRMatrix,\n pixelSize: number,\n color: string,\n bgColor: string,\n moduleStyle: QRModuleStyle,\n finderStyle: QRFinderStyle,\n iconArea?: { x: number; y: number; w: number; h: number },\n) {\n const ctx = canvas.getContext('2d')\n if (!ctx) return\n\n const ratio = typeof window !== 'undefined' ? window.devicePixelRatio || 1 : 1\n canvas.width = pixelSize * ratio\n canvas.height = pixelSize * ratio\n canvas.style.width = `${pixelSize}px`\n canvas.style.height = `${pixelSize}px`\n ctx.scale(ratio, ratio)\n\n const moduleCount = matrix.size\n const cellSize = pixelSize / moduleCount\n\n ctx.fillStyle = bgColor\n ctx.fillRect(0, 0, pixelSize, pixelSize)\n\n ctx.fillStyle = color\n\n for (let row = 0; row < moduleCount; row++) {\n for (let col = 0; col < moduleCount; col++) {\n if (!matrix.get(row, col)) continue\n\n const x = col * cellSize\n const y = row * cellSize\n\n if (iconArea && x + cellSize > iconArea.x && x < iconArea.x + iconArea.w && y + cellSize > iconArea.y && y < iconArea.y + iconArea.h) {\n continue\n }\n\n const isFinder = isFinderModule(row, col, moduleCount)\n\n if (isFinder) {\n drawFinderModule(ctx, x, y, cellSize, finderStyle)\n } else {\n drawDataModule(ctx, x, y, cellSize, moduleStyle)\n }\n }\n }\n}\n\nfunction drawDataModule(\n ctx: CanvasRenderingContext2D,\n x: number,\n y: number,\n size: number,\n style: QRModuleStyle,\n) {\n const gap = size * 0.1\n\n switch (style) {\n case 'dots': {\n const radius = (size - gap * 2) / 2\n ctx.beginPath()\n ctx.arc(x + size / 2, y + size / 2, radius, 0, Math.PI * 2)\n ctx.fill()\n break\n }\n case 'rounded': {\n const r = size * 0.3\n const s = size - gap\n const ox = x + gap / 2\n const oy = y + gap / 2\n ctx.beginPath()\n ctx.moveTo(ox + r, oy)\n ctx.arcTo(ox + s, oy, ox + s, oy + s, r)\n ctx.arcTo(ox + s, oy + s, ox, oy + s, r)\n ctx.arcTo(ox, oy + s, ox, oy, r)\n ctx.arcTo(ox, oy, ox + s, oy, r)\n ctx.closePath()\n ctx.fill()\n break\n }\n case 'squares':\n default: {\n ctx.fillRect(x + gap / 2, y + gap / 2, size - gap, size - gap)\n break\n }\n }\n}\n\nfunction drawFinderModule(\n ctx: CanvasRenderingContext2D,\n x: number,\n y: number,\n size: number,\n style: QRFinderStyle,\n) {\n switch (style) {\n case 'dot': {\n const r = size / 2\n ctx.beginPath()\n ctx.arc(x + r, y + r, r * 0.9, 0, Math.PI * 2)\n ctx.fill()\n break\n }\n case 'rounded': {\n const radius = size * 0.3\n ctx.beginPath()\n ctx.moveTo(x + radius, y)\n ctx.arcTo(x + size, y, x + size, y + size, radius)\n ctx.arcTo(x + size, y + size, x, y + size, radius)\n ctx.arcTo(x, y + size, x, y, radius)\n ctx.arcTo(x, y, x + size, y, radius)\n ctx.closePath()\n ctx.fill()\n break\n }\n case 'square':\n default:\n ctx.fillRect(x, y, size, size)\n break\n }\n}\n\n// ── SVG renderer ────────────────────────────────────────────\n\nfunction buildSVGPaths(\n matrix: QRMatrix,\n cellSize: number,\n moduleStyle: QRModuleStyle,\n finderStyle: QRFinderStyle,\n iconArea?: { x: number; y: number; w: number; h: number },\n): string {\n const paths: string[] = []\n const moduleCount = matrix.size\n\n for (let row = 0; row < moduleCount; row++) {\n for (let col = 0; col < moduleCount; col++) {\n if (!matrix.get(row, col)) continue\n\n const x = col * cellSize\n const y = row * cellSize\n\n if (iconArea && x + cellSize > iconArea.x && x < iconArea.x + iconArea.w && y + cellSize > iconArea.y && y < iconArea.y + iconArea.h) {\n continue\n }\n\n const isFinder = isFinderModule(row, col, moduleCount)\n const style = isFinder ? finderStyle : moduleStyle as string\n const gap = cellSize * 0.1\n\n if (style === 'dots' || style === 'dot') {\n const r = (cellSize - (isFinder ? 0 : gap * 2)) / 2\n const cx = x + cellSize / 2\n const cy = y + cellSize / 2\n paths.push(`M${cx - r},${cy}a${r},${r} 0 1,0 ${r * 2},0a${r},${r} 0 1,0 ${-r * 2},0`)\n } else if (style === 'rounded') {\n const r = cellSize * 0.3\n const s = cellSize - (isFinder ? 0 : gap)\n const ox = x + (isFinder ? 0 : gap / 2)\n const oy = y + (isFinder ? 0 : gap / 2)\n paths.push(\n `M${ox + r},${oy}H${ox + s - r}Q${ox + s},${oy} ${ox + s},${oy + r}V${oy + s - r}Q${ox + s},${oy + s} ${ox + s - r},${oy + s}H${ox + r}Q${ox},${oy + s} ${ox},${oy + s - r}V${oy + r}Q${ox},${oy} ${ox + r},${oy}Z`,\n )\n } else {\n const g = isFinder ? 0 : gap / 2\n paths.push(`M${x + g},${y + g}h${cellSize - g * 2}v${cellSize - g * 2}h${-(cellSize - g * 2)}Z`)\n }\n }\n }\n\n return paths.join('')\n}\n\n// ── Component ───────────────────────────────────────────────\n\nconst QRCode = React.memo<QRCodeProps>(\n ({\n value,\n size = 128,\n color = 'default' as ComponentColor,\n fgColor,\n bgColor: bgColorProp,\n errorLevel = 'M',\n type = 'canvas',\n moduleStyle = 'squares',\n finderStyle = 'square',\n icon,\n iconSize = 40,\n iconBorderRadius = 4,\n bordered = true,\n status = 'active',\n onRefresh,\n refreshText = 'Refresh',\n expiredText = 'QR code expired',\n className,\n classNames,\n }) => {\n const canvasRef = useRef<HTMLCanvasElement>(null)\n const rootRef = useRef<HTMLDivElement>(null)\n const [libLoaded, setLibLoaded] = useState(!!_createFn)\n\n // Slot system: colorVars sets --_c on the root element.\n // We read --_c (fg) and --color-background (bg) from computed style.\n const resolvedFg = useSlotColor(rootRef, fgColor, '--_c', '#000000')\n const resolvedBg = useSlotColor(rootRef, bgColorProp, '--color-background', '#ffffff')\n\n useEffect(() => {\n if (_createFn) { setLibLoaded(true); return }\n loadQRLib().then((ok) => setLibLoaded(ok))\n }, [])\n\n const matrix = useMemo(() => {\n if (!value || !libLoaded) return null\n return createQRMatrixSync(value, errorLevel)\n }, [value, errorLevel, libLoaded])\n\n const iconArea = useMemo(() => {\n if (!icon || !matrix) return undefined\n const moduleCount = matrix.size\n const cellSize = size / moduleCount\n const centerX = (size - iconSize) / 2\n const centerY = (size - iconSize) / 2\n const pad = cellSize * 2\n return { x: centerX - pad, y: centerY - pad, w: iconSize + pad * 2, h: iconSize + pad * 2 }\n }, [icon, matrix, size, iconSize])\n\n const renderCanvas = useCallback(() => {\n if (!canvasRef.current || !matrix || typeof window === 'undefined') return\n drawCanvasQR(canvasRef.current, matrix, size, resolvedFg, resolvedBg, moduleStyle, finderStyle, iconArea)\n }, [matrix, size, resolvedFg, resolvedBg, moduleStyle, finderStyle, iconArea])\n\n useEffect(() => {\n if (type === 'canvas') renderCanvas()\n }, [type, renderCanvas])\n\n const svgContent = useMemo(() => {\n if (type !== 'svg' || !matrix) return null\n const cellSize = size / matrix.size\n const d = buildSVGPaths(matrix, cellSize, moduleStyle, finderStyle, iconArea)\n return d\n }, [type, matrix, size, moduleStyle, finderStyle, iconArea])\n\n return (\n <div\n ref={rootRef}\n data-slot=\"root\"\n className={cn(\n 'qrCode_root',\n 'relative inline-flex flex-col items-center',\n colorVars[color],\n bordered && 'p-3 rounded-lg border border-slot bg-background',\n classNames?.root,\n className,\n )}\n >\n {type === 'canvas' ? (\n <canvas\n ref={canvasRef}\n data-slot=\"canvas\"\n className={cn('qrCode_canvas', classNames?.canvas)}\n style={{ width: size, height: size }}\n />\n ) : (\n <svg\n data-slot=\"svg\"\n width={size}\n height={size}\n viewBox={`0 0 ${size} ${size}`}\n className={cn('qrCode_svg', classNames?.svg)}\n >\n <rect width={size} height={size} fill={resolvedBg} />\n {svgContent && <path d={svgContent} fill={resolvedFg} />}\n </svg>\n )}\n\n {/* Icon overlay */}\n {icon && status === 'active' && (\n <div\n data-slot=\"icon\"\n className={cn('qrCode_icon', 'absolute', classNames?.icon)}\n style={{\n width: iconSize,\n height: iconSize,\n top: `calc(50% - ${iconSize / 2}px)`,\n left: `calc(50% - ${iconSize / 2}px)`,\n backgroundColor: resolvedBg,\n borderRadius: iconBorderRadius,\n padding: 3,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n }}\n >\n <img\n src={icon}\n alt=\"\"\n style={{\n width: '100%',\n height: '100%',\n objectFit: 'contain',\n borderRadius: Math.max(0, iconBorderRadius - 2),\n }}\n />\n </div>\n )}\n\n {/* Loading overlay */}\n {status === 'loading' && (\n <div\n data-slot=\"overlay\"\n className={cn(\n 'qrCode_overlay',\n 'absolute inset-0 flex items-center justify-center bg-background/80 rounded-lg',\n bordered && 'm-3',\n classNames?.overlay,\n )}\n >\n <div className=\"w-6 h-6 border-2 border-slot border-t-transparent rounded-full animate-spin\" />\n </div>\n )}\n\n {/* Expired overlay */}\n {status === 'expired' && (\n <div\n data-slot=\"overlay\"\n className={cn(\n 'qrCode_overlay',\n 'absolute inset-0 flex flex-col items-center justify-center bg-background/90 rounded-lg gap-2',\n bordered && 'm-3',\n classNames?.overlay,\n )}\n >\n <p className=\"text-sm text-text-secondary\">{expiredText}</p>\n {onRefresh && (\n <button\n type=\"button\"\n onClick={onRefresh}\n className=\"text-sm text-slot hover:opacity-80 font-medium cursor-pointer\"\n >\n {refreshText}\n </button>\n )}\n </div>\n )}\n </div>\n )\n },\n)\n\nQRCode.displayName = 'QRCode'\n\nexport type * from './types'\nexport default QRCode\n","'use client'\n\nimport {\n Group,\n Panel,\n Separator,\n} from 'react-resizable-panels'\n\nimport React from 'react'\nimport { MoreVertical } from 'lucide-react'\nimport { cn } from '../utils'\nimport type {\n ResizableHandleProps,\n ResizablePanelGroupProps,\n ResizablePanelProps,\n} from './types'\n\nfunction ResizablePanelGroup({\n className,\n ...props\n}: ResizablePanelGroupProps) {\n return (\n <Group\n data-slot=\"resizable-group\"\n className={cn(\n 'resizable_group',\n 'flex h-full w-full',\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction ResizablePanel({ className, ...props }: ResizablePanelProps) {\n return (\n <Panel\n data-slot=\"resizable-panel\"\n className={cn('resizable_panel', className)}\n {...props}\n />\n )\n}\n\nfunction ResizableHandle({\n withHandle = false,\n className,\n ...props\n}: ResizableHandleProps) {\n const elRef = React.useRef<HTMLDivElement>(null)\n const [isVertical, setIsVertical] = React.useState(false)\n\n React.useEffect(() => {\n const el = elRef.current\n if (!el) return\n const parent = el.parentElement\n if (!parent) return\n const dir = getComputedStyle(parent).flexDirection\n setIsVertical(dir === 'column')\n }, [])\n\n return (\n <Separator\n elementRef={elRef}\n data-slot=\"resizable-handle\"\n className={cn(\n 'resizable_handle',\n 'group relative flex items-center justify-center',\n 'bg-border',\n 'focus-visible:outline-none',\n isVertical ? 'h-px' : 'w-px',\n className,\n )}\n {...props}\n >\n {withHandle && (\n <div className={cn(\n 'z-10 flex items-center justify-center rounded-sm border border-border bg-background',\n 'opacity-0 transition-opacity group-hover:opacity-100',\n isVertical ? 'w-4 h-3' : 'h-4 w-3',\n )}>\n <MoreVertical className={cn(\n 'w-2.5 h-2.5 text-text-secondary',\n isVertical && 'rotate-90',\n )} />\n </div>\n )}\n </Separator>\n )\n}\n\nexport type * from './types'\nexport { ResizablePanelGroup, ResizablePanel, ResizableHandle }\n","'use client'\n\nimport React from 'react'\n\nimport { cn } from '../utils'\nimport type { ResultProps, ResultStatus } from './types'\n\nconst statusConfig: Record<ResultStatus, { color: string; defaultTitle: string }> = {\n success: { color: 'text-success', defaultTitle: 'Successfully Done' },\n error: { color: 'text-error', defaultTitle: 'Something Went Wrong' },\n info: { color: 'text-info', defaultTitle: 'Information' },\n warning: { color: 'text-warning', defaultTitle: 'Warning' },\n '403': { color: 'text-warning', defaultTitle: '403 — Access Denied' },\n '404': { color: 'text-info', defaultTitle: '404 — Page Not Found' },\n '500': { color: 'text-error', defaultTitle: '500 — Server Error' },\n}\n\nconst sizeMap = {\n xs: { icon: 'w-10 h-10', title: 'text-base font-semibold', subtitle: 'text-xs', padding: 'py-6 px-4', maxW: 'max-w-xs' },\n sm: { icon: 'w-12 h-12', title: 'text-lg font-semibold', subtitle: 'text-sm', padding: 'py-8 px-4', maxW: 'max-w-sm' },\n md: { icon: 'w-16 h-16', title: 'text-xl font-semibold', subtitle: 'text-sm', padding: 'py-12 px-6', maxW: 'max-w-md' },\n lg: { icon: 'w-20 h-20', title: 'text-2xl font-bold', subtitle: 'text-base', padding: 'py-16 px-8', maxW: 'max-w-lg' },\n}\n\nfunction StatusIcon({ status, sizeClass }: { status: ResultStatus; sizeClass: string }) {\n const className = cn(sizeClass, statusConfig[status].color)\n\n if (status === 'success') {\n return (\n <svg className={className} viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\">\n <circle cx=\"12\" cy=\"12\" r=\"10\" />\n <path d=\"M9 12l2 2 4-4\" />\n </svg>\n )\n }\n\n if (status === 'error' || status === '500') {\n return (\n <svg className={className} viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\">\n <circle cx=\"12\" cy=\"12\" r=\"10\" />\n <line x1=\"15\" y1=\"9\" x2=\"9\" y2=\"15\" />\n <line x1=\"9\" y1=\"9\" x2=\"15\" y2=\"15\" />\n </svg>\n )\n }\n\n if (status === 'warning' || status === '403') {\n return (\n <svg className={className} viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\">\n <path d=\"M10.29 3.86L1.82 18a2 2 0 001.71 3h16.94a2 2 0 001.71-3L13.71 3.86a2 2 0 00-3.42 0z\" />\n <line x1=\"12\" y1=\"9\" x2=\"12\" y2=\"13\" />\n <line x1=\"12\" y1=\"17\" x2=\"12.01\" y2=\"17\" />\n </svg>\n )\n }\n\n if (status === '404') {\n return (\n <svg className={className} viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\">\n <circle cx=\"11\" cy=\"11\" r=\"8\" />\n <line x1=\"21\" y1=\"21\" x2=\"16.65\" y2=\"16.65\" />\n <line x1=\"8\" y1=\"11\" x2=\"14\" y2=\"11\" />\n </svg>\n )\n }\n\n // info\n return (\n <svg className={className} viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\">\n <circle cx=\"12\" cy=\"12\" r=\"10\" />\n <line x1=\"12\" y1=\"16\" x2=\"12\" y2=\"12\" />\n <line x1=\"12\" y1=\"8\" x2=\"12.01\" y2=\"8\" />\n </svg>\n )\n}\n\nconst Result = React.memo<ResultProps>(\n ({\n status = 'info',\n icon,\n title,\n subtitle,\n extra,\n children,\n size = 'md',\n className,\n classNames,\n }) => {\n const config = statusConfig[status]\n const s = sizeMap[size]\n\n return (\n <div\n data-slot=\"root\"\n className={cn(\n 'result_root',\n 'flex flex-col items-center text-center',\n s.padding,\n classNames?.root,\n className,\n )}\n >\n <div data-slot=\"icon\" className={cn('result_icon', 'mb-6', classNames?.icon)}>\n {icon ?? <StatusIcon status={status} sizeClass={s.icon} />}\n </div>\n\n <h3 data-slot=\"title\" className={cn('result_title', s.title, 'text-text-primary mb-2', classNames?.title)}>\n {title ?? config.defaultTitle}\n </h3>\n\n {subtitle && (\n <p data-slot=\"subtitle\" className={cn('result_subtitle', s.subtitle, 'text-text-secondary', s.maxW, 'mb-6', classNames?.subtitle)}>\n {subtitle}\n </p>\n )}\n\n {extra && (\n <div data-slot=\"extra\" className={cn('result_extra', 'flex items-center gap-3 mb-6', classNames?.extra)}>\n {extra}\n </div>\n )}\n\n {children && (\n <div data-slot=\"content\" className={cn('result_content', 'w-full', s.maxW, classNames?.content)}>\n {children}\n </div>\n )}\n </div>\n )\n },\n)\n\nResult.displayName = 'Result'\n\nexport type * from './types'\nexport default Result\n","'use client'\n\nimport { cva } from 'class-variance-authority'\nimport React, { useState, useRef, useCallback, useMemo } from 'react'\n\nimport { X } from 'lucide-react'\nimport { cn, statusMessageVariants } from '../utils'\nimport { colorVars } from '../variants'\nimport type { TagsInputProps } from './types'\n\nconst wrapperVariants = cva(\n 'flex flex-wrap items-center gap-1 rounded-md border bg-background text-text-primary transition-colors cursor-text',\n {\n variants: {\n size: {\n xs: 'min-h-(--input-height-xs) px-(--input-padding-x-xs) py-0.5 text-xs',\n sm: 'min-h-(--input-height-sm) px-(--input-padding-x-sm) py-1 text-sm',\n md: 'min-h-(--input-height-md) px-(--input-padding-x-md) py-1 text-sm',\n lg: 'min-h-(--input-height-lg) px-(--input-padding-x-lg) py-1.5 text-base',\n },\n status: {\n default: 'border-border focus-within:border-primary',\n error: 'border-error focus-within:border-error',\n },\n },\n defaultVariants: { size: 'md', status: 'default' },\n },\n)\n\nconst tagVariants = cva(\n 'inline-flex items-center gap-0.5 rounded-md font-medium transition-colors bg-slot-10 text-slot',\n {\n variants: {\n size: {\n xs: 'h-4 px-1 text-[10px]',\n sm: 'h-5 px-1.5 text-xs',\n md: 'h-6 px-2 text-xs',\n lg: 'h-7 px-2.5 text-sm',\n },\n },\n defaultVariants: { size: 'md' },\n },\n)\n\nconst TagsInput = React.memo<TagsInputProps>(\n ({\n value,\n defaultValue = [],\n onChange,\n suggestions,\n placeholder = 'Add tag...',\n maxTags,\n allowDuplicates = false,\n separator = ',',\n addOnBlur = true,\n addOnPaste = true,\n validate,\n onTagAdd,\n onTagRemove,\n size = 'md',\n color = 'primary',\n disabled = false,\n readOnly = false,\n label,\n error,\n helperText,\n clearable = false,\n fullWidth = true,\n className,\n classNames,\n }) => {\n const [internalValue, setInternalValue] = useState(defaultValue)\n const tags = value !== undefined ? value : internalValue\n const [inputValue, setInputValue] = useState('')\n const [showSuggestions, setShowSuggestions] = useState(false)\n const [highlightedIdx, setHighlightedIdx] = useState(-1)\n const inputRef = useRef<HTMLInputElement>(null)\n\n const separators = useMemo(\n () => (Array.isArray(separator) ? separator : [separator]),\n [separator],\n )\n\n const update = useCallback(\n (next: string[]) => {\n if (value === undefined) setInternalValue(next)\n onChange?.(next)\n },\n [value, onChange],\n )\n\n const addTag = useCallback(\n (raw: string) => {\n const tag = raw.trim()\n if (!tag) return false\n if (maxTags && tags.length >= maxTags) return false\n if (!allowDuplicates && tags.includes(tag)) return false\n if (validate && !validate(tag)) return false\n update([...tags, tag])\n onTagAdd?.(tag)\n return true\n },\n [tags, maxTags, allowDuplicates, validate, update, onTagAdd],\n )\n\n const removeTag = useCallback(\n (idx: number) => {\n const tag = tags[idx]\n const next = tags.filter((_, i) => i !== idx)\n update(next)\n if (tag) onTagRemove?.(tag)\n },\n [tags, update, onTagRemove],\n )\n\n const handleKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => {\n if (e.key === 'Enter' || separators.includes(e.key)) {\n e.preventDefault()\n if (showSuggestions && highlightedIdx >= 0 && filteredSuggestions[highlightedIdx]) {\n addTag(filteredSuggestions[highlightedIdx])\n setInputValue('')\n setShowSuggestions(false)\n setHighlightedIdx(-1)\n } else if (addTag(inputValue)) {\n setInputValue('')\n setShowSuggestions(false)\n }\n } else if (e.key === 'Backspace' && !inputValue && tags.length > 0) {\n removeTag(tags.length - 1)\n } else if (e.key === 'Escape') {\n setShowSuggestions(false)\n } else if (e.key === 'ArrowDown' && showSuggestions) {\n e.preventDefault()\n setHighlightedIdx((p) => Math.min(p + 1, filteredSuggestions.length - 1))\n } else if (e.key === 'ArrowUp' && showSuggestions) {\n e.preventDefault()\n setHighlightedIdx((p) => Math.max(p - 1, 0))\n }\n }\n\n const handlePaste = (e: React.ClipboardEvent<HTMLInputElement>) => {\n if (!addOnPaste) return\n e.preventDefault()\n const text = e.clipboardData.getData('text')\n const parts = text.split(new RegExp(`[${separators.map((s) => s.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&')).join('')}]`))\n let added = false\n for (const part of parts) {\n if (addTag(part)) added = true\n }\n if (added) setInputValue('')\n }\n\n const handleBlur = () => {\n setShowSuggestions(false)\n if (addOnBlur && inputValue.trim()) {\n if (addTag(inputValue)) setInputValue('')\n }\n }\n\n const filteredSuggestions = useMemo(() => {\n if (!suggestions || !inputValue.trim()) return []\n const q = inputValue.toLowerCase()\n return suggestions.filter(\n (s) => s.toLowerCase().includes(q) && (allowDuplicates || !tags.includes(s)),\n )\n }, [suggestions, inputValue, tags, allowDuplicates])\n\n const handleInputChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n setInputValue(e.target.value)\n setShowSuggestions(!!e.target.value.trim() && !!suggestions?.length)\n setHighlightedIdx(-1)\n }\n\n const atMax = !!maxTags && tags.length >= maxTags\n\n return (\n <div\n data-slot=\"root\"\n className={cn(\n 'tagsInput_root',\n 'flex flex-col gap-1.5',\n fullWidth ? 'w-full' : 'inline-flex',\n colorVars[color],\n classNames?.root,\n className,\n )}\n >\n {label && (\n <label data-slot=\"label\" className=\"text-sm font-medium text-text-primary\">\n {label}\n </label>\n )}\n\n <div className=\"relative\">\n <div\n data-slot=\"wrapper\"\n className={cn(\n 'tagsInput_wrapper',\n wrapperVariants({ size, status: error ? 'error' : 'default' }),\n disabled && 'opacity-50 cursor-not-allowed',\n classNames?.wrapper,\n )}\n onClick={() => !disabled && !readOnly && inputRef.current?.focus()}\n >\n {tags.map((tag, idx) => (\n <span\n key={`${tag}-${idx}`}\n data-slot=\"tag\"\n className={cn('tagsInput_tag', tagVariants({ size }), classNames?.tag)}\n >\n <span className={cn('tagsInput_tagLabel truncate max-w-[150px]', classNames?.tagLabel)}>\n {tag}\n </span>\n {!readOnly && !disabled && (\n <button\n type=\"button\"\n onClick={(e) => { e.stopPropagation(); removeTag(idx) }}\n className={cn('tagsInput_tagClose shrink-0 hover:text-slot-80 cursor-pointer', classNames?.tagClose)}\n aria-label={`Remove ${tag}`}\n tabIndex={-1}\n >\n <X className=\"w-3 h-3\" />\n </button>\n )}\n </span>\n ))}\n\n {!atMax && !readOnly && !disabled && (\n <input\n ref={inputRef}\n type=\"text\"\n value={inputValue}\n onChange={handleInputChange}\n onKeyDown={handleKeyDown}\n onPaste={handlePaste}\n onBlur={handleBlur}\n onFocus={() => inputValue.trim() && suggestions?.length && setShowSuggestions(true)}\n placeholder={tags.length === 0 ? placeholder : ''}\n disabled={disabled}\n readOnly={readOnly}\n data-slot=\"input\"\n className={cn(\n 'tagsInput_input',\n 'flex-1 min-w-[60px] bg-transparent outline-none placeholder:text-text-secondary/50',\n classNames?.input,\n )}\n />\n )}\n\n {clearable && tags.length > 0 && !disabled && !readOnly && (\n <button\n type=\"button\"\n onClick={(e) => { e.stopPropagation(); update([]) }}\n className=\"shrink-0 text-text-secondary hover:text-text-primary\"\n aria-label=\"Clear all tags\"\n tabIndex={-1}\n >\n <X className=\"w-3.5 h-3.5\" />\n </button>\n )}\n </div>\n\n {showSuggestions && filteredSuggestions.length > 0 && (\n <div className=\"absolute z-[var(--z-popover)] mt-1 w-full rounded-md border border-border bg-background shadow-md max-h-[200px] overflow-auto\">\n {filteredSuggestions.map((s, idx) => (\n <div\n key={s}\n onMouseDown={(e) => {\n e.preventDefault()\n addTag(s)\n setInputValue('')\n setShowSuggestions(false)\n }}\n onMouseEnter={() => setHighlightedIdx(idx)}\n className={cn(\n 'px-3 py-1.5 text-sm cursor-pointer transition-colors',\n idx === highlightedIdx ? 'bg-surface text-text-primary' : 'text-text-primary hover:bg-surface',\n )}\n >\n {s}\n </div>\n ))}\n </div>\n )}\n </div>\n\n {(error || helperText) && (\n <p data-slot=\"message\" className={cn('text-xs', error ? statusMessageVariants({ status: 'error' }) : 'text-text-secondary')}>\n {error || helperText}\n </p>\n )}\n </div>\n )\n },\n)\n\nTagsInput.displayName = 'TagsInput'\n\nexport type * from './types'\nexport default TagsInput\n","'use client'\n\nimport React, { useState, useEffect, useCallback, useRef } from 'react'\n\nimport { cn } from '../utils'\nimport { colorVars } from '../variants'\nimport type { TourProps, TourPlacement } from './types'\n\nfunction getTargetElement(target: string | (() => HTMLElement | null)): HTMLElement | null {\n if (typeof target === 'function') return target()\n return document.querySelector(target)\n}\n\nfunction getTargetBorderRadius(el: HTMLElement): string {\n if (typeof window === 'undefined') return '0px'\n return getComputedStyle(el).borderRadius || '0px'\n}\n\n// ── Popover positioning ─────────────────────────────────────\nfunction computePopoverPosition(\n rect: DOMRect,\n placement: TourPlacement,\n gap: number,\n): { top: number; left: number } {\n const base = placement.split('-')[0] as 'top' | 'right' | 'bottom' | 'left'\n const align = placement.split('-')[1] as 'start' | 'end' | undefined\n\n let top = 0\n let left = 0\n\n const cx = rect.left + rect.width / 2\n const cy = rect.top + rect.height / 2\n\n if (base === 'bottom') {\n top = rect.bottom + gap\n left = align === 'start' ? rect.left : align === 'end' ? rect.right : cx\n } else if (base === 'top') {\n top = rect.top - gap\n left = align === 'start' ? rect.left : align === 'end' ? rect.right : cx\n } else if (base === 'left') {\n top = align === 'start' ? rect.top : align === 'end' ? rect.bottom : cy\n left = rect.left - gap\n } else {\n top = align === 'start' ? rect.top : align === 'end' ? rect.bottom : cy\n left = rect.right + gap\n }\n\n return { top, left }\n}\n\nfunction getPopoverStyle(\n rect: DOMRect,\n placement: TourPlacement,\n gap: number,\n): React.CSSProperties {\n const base = placement.split('-')[0] as 'top' | 'right' | 'bottom' | 'left'\n const align = placement.split('-')[1] as 'start' | 'end' | undefined\n\n const pos = computePopoverPosition(rect, placement, gap)\n const style: React.CSSProperties = {\n position: 'fixed',\n top: pos.top,\n left: pos.left,\n }\n\n // Transform for anchoring\n if (base === 'bottom') {\n if (!align) style.transform = 'translateX(-50%)'\n else if (align === 'end') style.transform = 'translateX(-100%)'\n } else if (base === 'top') {\n if (!align) style.transform = 'translate(-50%, -100%)'\n else if (align === 'start') style.transform = 'translateY(-100%)'\n else style.transform = 'translate(-100%, -100%)'\n } else if (base === 'left') {\n if (!align) style.transform = 'translate(-100%, -50%)'\n else if (align === 'start') style.transform = 'translateX(-100%)'\n else style.transform = 'translate(-100%, -100%)'\n } else {\n if (!align) style.transform = 'translateY(-50%)'\n else if (align === 'end') style.transform = 'translateY(-100%)'\n }\n\n return style\n}\n\nconst sizeMap = {\n xs: { padding: 4, gap: 8, popover: 'p-3 max-w-[260px]', title: 'text-sm font-semibold', desc: 'text-xs', btn: 'h-6 px-2.5 text-xs' },\n sm: { padding: 6, gap: 10, popover: 'p-3.5 max-w-[300px]', title: 'text-sm font-semibold', desc: 'text-sm', btn: 'h-7 px-3 text-xs' },\n md: { padding: 8, gap: 12, popover: 'p-4 max-w-[340px]', title: 'text-base font-semibold', desc: 'text-sm', btn: 'h-8 px-3 text-sm' },\n lg: { padding: 10, gap: 14, popover: 'p-5 max-w-[400px]', title: 'text-lg font-semibold', desc: 'text-base', btn: 'h-9 px-4 text-sm' },\n}\n\n// Transition easing\nconst EASE = 'cubic-bezier(0.4, 0, 0.2, 1)'\nconst DURATION = '350ms'\n\nconst Tour = React.memo<TourProps>(\n ({\n steps,\n open: controlledOpen,\n onOpenChange,\n current: controlledCurrent,\n onCurrentChange,\n color = 'primary',\n size = 'md',\n showProgress = true,\n showSkip = true,\n skipText = 'Skip',\n finishText = 'Finish',\n nextText = 'Next',\n prevText = 'Back',\n onFinish,\n onSkip,\n overlayClickable = false,\n className,\n classNames,\n }) => {\n const [internalOpen, setInternalOpen] = useState(false)\n const [internalCurrent, setInternalCurrent] = useState(0)\n const isOpen = controlledOpen !== undefined ? controlledOpen : internalOpen\n const current = controlledCurrent !== undefined ? controlledCurrent : internalCurrent\n\n const [targetRect, setTargetRect] = useState<DOMRect | null>(null)\n const [targetRadius, setTargetRadius] = useState('0px')\n const [entering, setEntering] = useState(false)\n const [contentFading, setContentFading] = useState(false)\n const popoverRef = useRef<HTMLDivElement>(null)\n\n const setOpen = useCallback(\n (v: boolean) => {\n if (controlledOpen === undefined) setInternalOpen(v)\n onOpenChange?.(v)\n },\n [controlledOpen, onOpenChange],\n )\n\n const setCurrent = useCallback(\n (v: number) => {\n // Trigger content crossfade\n setContentFading(true)\n setTimeout(() => {\n if (controlledCurrent === undefined) setInternalCurrent(v)\n onCurrentChange?.(v)\n setContentFading(false)\n }, 150) // half of transition duration — content fades out then in\n },\n [controlledCurrent, onCurrentChange],\n )\n\n const step = steps[current]\n const s = sizeMap[size]\n\n // Initial entrance animation\n useEffect(() => {\n if (isOpen) {\n setEntering(true)\n const t = setTimeout(() => setEntering(false), 400)\n return () => clearTimeout(t)\n }\n }, [isOpen])\n\n // Track target rect + border-radius\n useEffect(() => {\n if (!isOpen || !step) { setTargetRect(null); return }\n const el = getTargetElement(step.target)\n if (!el) { setTargetRect(null); return }\n\n const updateRect = () => {\n setTargetRect(el.getBoundingClientRect())\n setTargetRadius(getTargetBorderRadius(el))\n }\n updateRect()\n\n el.scrollIntoView({ behavior: 'smooth', block: 'center' })\n\n const ro = new ResizeObserver(updateRect)\n ro.observe(el)\n window.addEventListener('scroll', updateRect, { passive: true })\n window.addEventListener('resize', updateRect, { passive: true })\n\n return () => {\n ro.disconnect()\n window.removeEventListener('scroll', updateRect)\n window.removeEventListener('resize', updateRect)\n }\n }, [isOpen, current, step])\n\n const handleNext = () => {\n step?.onNext?.()\n if (current < steps.length - 1) setCurrent(current + 1)\n else { setOpen(false); onFinish?.() }\n }\n\n const handlePrev = () => {\n step?.onPrev?.()\n if (current > 0) setCurrent(current - 1)\n }\n\n const handleSkip = () => {\n setOpen(false)\n if (controlledCurrent === undefined) setInternalCurrent(0)\n onSkip?.()\n }\n\n useEffect(() => {\n if (!isOpen) return\n const handleEsc = (e: KeyboardEvent) => { if (e.key === 'Escape') handleSkip() }\n document.addEventListener('keydown', handleEsc)\n return () => document.removeEventListener('keydown', handleEsc)\n }, [isOpen])\n\n if (!isOpen || !step) return null\n\n const placement = step.placement || 'bottom'\n const isLast = current === steps.length - 1\n\n // The spotlight element — uses box-shadow to create the overlay\n // As this element transitions position/size/border-radius, the\n // entire overlay smoothly morphs to follow the target.\n const spotlightStyle: React.CSSProperties = targetRect\n ? {\n position: 'fixed',\n top: targetRect.top - s.padding,\n left: targetRect.left - s.padding,\n width: targetRect.width + s.padding * 2,\n height: targetRect.height + s.padding * 2,\n borderRadius: targetRadius,\n boxShadow: '0 0 0 9999px rgba(0, 0, 0, 0.5)',\n transition: entering\n ? 'none'\n : `top ${DURATION} ${EASE}, left ${DURATION} ${EASE}, width ${DURATION} ${EASE}, height ${DURATION} ${EASE}, border-radius ${DURATION} ${EASE}`,\n pointerEvents: 'none' as const,\n opacity: entering ? 0 : 1,\n animation: entering ? 'none' : undefined,\n }\n : {\n position: 'fixed' as const,\n inset: 0,\n background: 'rgba(0,0,0,0.5)',\n }\n\n // Popover transitions position smoothly (no remount)\n const popoverStyle: React.CSSProperties = targetRect\n ? {\n ...getPopoverStyle(targetRect, placement, s.gap),\n transition: entering\n ? 'none'\n : `top ${DURATION} ${EASE}, left ${DURATION} ${EASE}, bottom ${DURATION} ${EASE}, right ${DURATION} ${EASE}, opacity 150ms ease`,\n opacity: contentFading ? 0 : 1,\n }\n : { position: 'fixed', opacity: 0 }\n\n return (\n <div\n data-slot=\"root\"\n className={cn('tour_root', colorVars[color], classNames?.root, className)}\n style={{ opacity: entering ? 0 : 1, transition: `opacity 300ms ${EASE}` }}\n ref={(el) => {\n // Trigger entrance fade after mount\n if (el && entering) requestAnimationFrame(() => setEntering(false))\n }}\n >\n {/* Spotlight overlay — single div, box-shadow creates darkened backdrop */}\n <div\n data-slot=\"overlay\"\n className={cn('tour_overlay', 'z-[var(--z-overlay)]', classNames?.overlay)}\n onClick={overlayClickable ? handleSkip : undefined}\n style={spotlightStyle}\n />\n\n {/* Highlight ring — follows target shape */}\n {targetRect && (\n <div\n data-slot=\"highlight\"\n className=\"fixed z-[var(--z-overlay)] pointer-events-none\"\n style={{\n top: targetRect.top - s.padding,\n left: targetRect.left - s.padding,\n width: targetRect.width + s.padding * 2,\n height: targetRect.height + s.padding * 2,\n borderRadius: targetRadius,\n boxShadow: '0 0 0 2px var(--color-slot, #3b82f6), 0 0 12px 2px color-mix(in srgb, var(--color-slot, #3b82f6) 30%, transparent)',\n transition: `top ${DURATION} ${EASE}, left ${DURATION} ${EASE}, width ${DURATION} ${EASE}, height ${DURATION} ${EASE}, border-radius ${DURATION} ${EASE}`,\n }}\n />\n )}\n\n {/* Popover — position transitions, content crossfades */}\n <div\n ref={popoverRef}\n data-slot=\"popover\"\n className={cn(\n 'tour_popover',\n 'z-[calc(var(--z-overlay)+1)] rounded-lg border border-border bg-background shadow-lg',\n s.popover,\n classNames?.popover,\n )}\n style={popoverStyle}\n >\n {step.cover && (\n <div data-slot=\"cover\" className={cn('tour_cover', 'mb-3 rounded-md overflow-hidden', classNames?.cover)}>\n {step.cover}\n </div>\n )}\n\n <div data-slot=\"title\" className={cn('tour_title', s.title, 'text-text-primary', classNames?.title)}>\n {step.title}\n </div>\n\n {step.description && (\n <div data-slot=\"description\" className={cn('tour_description', s.desc, 'text-text-secondary mt-1', classNames?.description)}>\n {step.description}\n </div>\n )}\n\n <div data-slot=\"footer\" className={cn('tour_footer', 'flex items-center justify-between mt-3 gap-2', classNames?.footer)}>\n <div className=\"flex items-center gap-2\">\n {showProgress && (\n <span data-slot=\"indicator\" className={cn('tour_indicator', 'text-xs text-text-secondary', classNames?.indicator)}>\n {current + 1} / {steps.length}\n </span>\n )}\n </div>\n\n <div className=\"flex items-center gap-2\">\n {showSkip && !isLast && (\n <button\n type=\"button\"\n onClick={handleSkip}\n className={cn('inline-flex items-center justify-center rounded-md text-text-secondary hover:text-text-primary transition-colors font-medium cursor-pointer', s.btn)}\n >\n {skipText}\n </button>\n )}\n\n {current > 0 && (\n <button\n type=\"button\"\n onClick={handlePrev}\n className={cn('inline-flex items-center justify-center rounded-md border border-border bg-background text-text-primary hover:bg-surface transition-colors font-medium cursor-pointer', s.btn)}\n >\n {step.prevText || prevText}\n </button>\n )}\n\n <button\n type=\"button\"\n onClick={handleNext}\n className={cn('inline-flex items-center justify-center rounded-md bg-slot text-slot-fg hover:bg-slot-90 transition-colors font-medium cursor-pointer', s.btn)}\n >\n {isLast ? finishText : step.nextText || nextText}\n </button>\n </div>\n </div>\n </div>\n </div>\n )\n },\n)\n\nTour.displayName = 'Tour'\n\nexport type * from './types'\nexport default Tour\n","'use client'\n\nimport React, { useState, useCallback, useRef, useEffect } from 'react'\n\nimport { cn } from '../utils'\nimport type { TitleProps, TextProps, ParagraphProps, TypographyLevel, TextSize } from './types'\n\nconst levelElements: Record<TypographyLevel, string> = {\n h1: 'h1', h2: 'h2', h3: 'h3', h4: 'h4', h5: 'h5', h6: 'h6',\n}\n\nconst levelClasses: Record<TypographyLevel, string> = {\n h1: 'text-4xl font-bold tracking-tight',\n h2: 'text-3xl font-semibold tracking-tight',\n h3: 'text-2xl font-semibold',\n h4: 'text-xl font-semibold',\n h5: 'text-lg font-medium',\n h6: 'text-base font-medium',\n}\n\nconst sizeClasses: Record<TextSize, string> = {\n xs: 'text-xs',\n sm: 'text-sm',\n md: 'text-base',\n lg: 'text-lg',\n xl: 'text-xl',\n '2xl': 'text-2xl',\n}\n\nconst weightClasses = {\n light: 'font-light',\n normal: 'font-normal',\n medium: 'font-medium',\n semibold: 'font-semibold',\n bold: 'font-bold',\n}\n\nconst textColorClasses = {\n default: 'text-text-primary',\n primary: 'text-primary',\n secondary: 'text-text-secondary',\n tertiary: 'text-text-secondary/60',\n accent: 'text-accent',\n success: 'text-success',\n error: 'text-error',\n warning: 'text-warning',\n info: 'text-info',\n inherit: '',\n}\n\nfunction CopyButton({ text }: { text: string }) {\n const [copied, setCopied] = useState(false)\n\n const handleCopy = useCallback(async () => {\n try {\n await navigator.clipboard.writeText(text)\n setCopied(true)\n setTimeout(() => setCopied(false), 2000)\n } catch { /* noop */ }\n }, [text])\n\n return (\n <button\n type=\"button\"\n onClick={handleCopy}\n className=\"inline-flex items-center ml-1 text-text-secondary hover:text-text-primary transition-colors cursor-pointer\"\n aria-label=\"Copy to clipboard\"\n >\n {copied ? (\n <svg className=\"w-3.5 h-3.5\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\">\n <polyline points=\"20 6 9 17 4 12\" />\n </svg>\n ) : (\n <svg className=\"w-3.5 h-3.5\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\">\n <rect x=\"9\" y=\"9\" width=\"13\" height=\"13\" rx=\"2\" ry=\"2\" />\n <path d=\"M5 15H4a2 2 0 01-2-2V4a2 2 0 012-2h9a2 2 0 012 2v1\" />\n </svg>\n )}\n </button>\n )\n}\n\nfunction useTruncation(truncate: boolean | number | undefined, ref: React.RefObject<HTMLElement | null>) {\n const [expanded, setExpanded] = useState(false)\n const [isTruncated, setIsTruncated] = useState(false)\n\n useEffect(() => {\n if (!truncate || expanded || !ref.current) return\n const el = ref.current\n setIsTruncated(el.scrollHeight > el.clientHeight || el.scrollWidth > el.clientWidth)\n }, [truncate, expanded, ref])\n\n return { expanded, setExpanded, isTruncated }\n}\n\n// ── Title ────────────────────────────────────────────────────\nconst Title = React.memo<TitleProps>(\n ({ level = 'h1', color = 'default', copyable = false, className, children, ...props }) => {\n const Tag = levelElements[level]\n const textContent = typeof children === 'string' ? children : ''\n\n return React.createElement(\n Tag as any,\n {\n 'data-slot': 'title',\n className: cn('typography_title', levelClasses[level], textColorClasses[color] || '', className),\n ...props,\n },\n <>\n {children}\n {copyable && textContent && <CopyButton text={textContent} />}\n </>,\n )\n },\n)\n\nTitle.displayName = 'Title'\n\n// ── Text ─────────────────────────────────────────────────────\nconst Text = React.memo<TextProps>(\n ({\n size = 'md',\n weight,\n color = 'default',\n truncate,\n copyable = false,\n code = false,\n mark = false,\n del: deleted = false,\n underline = false,\n strong = false,\n italic = false,\n as: Component = 'span',\n className,\n children,\n ...props\n }) => {\n const ref = useRef<HTMLElement>(null)\n const { expanded, setExpanded, isTruncated } = useTruncation(truncate, ref)\n const textContent = typeof children === 'string' ? children : ''\n\n const truncateClass = !expanded && truncate\n ? typeof truncate === 'number'\n ? `line-clamp-${truncate}`\n : 'truncate'\n : ''\n\n let content: React.ReactNode = children\n if (code) content = <code className=\"px-1 py-0.5 rounded bg-surface text-sm font-mono\">{content}</code>\n if (mark) content = <mark className=\"bg-warning/20 px-0.5 rounded-sm\">{content}</mark>\n if (deleted) content = <del>{content}</del>\n if (underline) content = <u>{content}</u>\n if (strong) content = <strong>{content}</strong>\n if (italic) content = <em>{content}</em>\n\n return React.createElement(\n Component,\n {\n ref: ref as any,\n 'data-slot': 'text',\n className: cn(\n 'typography_text',\n sizeClasses[size],\n weight && weightClasses[weight],\n textColorClasses[color] || '',\n truncateClass,\n className,\n ),\n ...props,\n },\n <>\n {content}\n {copyable && textContent && <CopyButton text={textContent} />}\n {isTruncated && !expanded && (\n <button\n type=\"button\"\n onClick={() => setExpanded(true)}\n className=\"text-primary hover:text-primary/80 ml-1 text-inherit cursor-pointer\"\n >\n more\n </button>\n )}\n </>,\n )\n },\n)\n\nText.displayName = 'Text'\n\n// ── Paragraph ────────────────────────────────────────────────\nconst Paragraph = React.memo<ParagraphProps>(\n ({\n size = 'md',\n color = 'default',\n truncate,\n copyable = false,\n className,\n children,\n ...props\n }) => {\n const ref = useRef<HTMLParagraphElement>(null)\n const { expanded, setExpanded, isTruncated } = useTruncation(truncate, ref)\n const textContent = typeof children === 'string' ? children : ''\n\n const truncateClass = !expanded && truncate\n ? typeof truncate === 'number'\n ? `line-clamp-${truncate}`\n : 'truncate'\n : ''\n\n return (\n <p\n ref={ref}\n data-slot=\"paragraph\"\n className={cn(\n 'typography_paragraph',\n sizeClasses[size],\n textColorClasses[color] || '',\n truncateClass,\n 'leading-relaxed',\n className,\n )}\n {...props}\n >\n {children}\n {copyable && textContent && <CopyButton text={textContent} />}\n {isTruncated && !expanded && (\n <button\n type=\"button\"\n onClick={() => setExpanded(true)}\n className=\"text-primary hover:text-primary/80 ml-1 text-inherit cursor-pointer\"\n >\n more\n </button>\n )}\n </p>\n )\n },\n)\n\nParagraph.displayName = 'Paragraph'\n\nexport type * from './types'\nexport { Title, Text, Paragraph }\n","'use client'\n\nimport React, { useState, useEffect, useCallback, useRef } from 'react'\n\nimport { cn } from '../utils'\nimport type { WatermarkProps } from './types'\n\nfunction generateWatermark({\n text,\n image,\n width = 120,\n height = 64,\n rotate = -22,\n gap = [100, 100] as [number, number],\n offset = [0, 0] as [number, number],\n fontSize = 14,\n fontFamily = 'sans-serif',\n fontWeight = 'normal',\n fontColor = 'rgba(0,0,0,0.15)',\n opacity = 1,\n}: Omit<WatermarkProps, 'children' | 'className' | 'classNames' | 'zIndex'>): Promise<string> {\n return new Promise((resolve) => {\n const canvas = document.createElement('canvas')\n const ctx = canvas.getContext('2d')!\n const ratio = window.devicePixelRatio || 1\n\n const cellWidth = width + gap[0]\n const cellHeight = height + gap[1]\n canvas.width = cellWidth * ratio\n canvas.height = cellHeight * ratio\n ctx.scale(ratio, ratio)\n\n ctx.globalAlpha = opacity\n ctx.translate(cellWidth / 2 + offset[0], cellHeight / 2 + offset[1])\n ctx.rotate((rotate * Math.PI) / 180)\n\n if (image) {\n const img = new Image()\n img.crossOrigin = 'anonymous'\n img.onload = () => {\n ctx.drawImage(img, -width / 2, -height / 2, width, height)\n resolve(canvas.toDataURL())\n }\n img.onerror = () => resolve('')\n img.src = image\n } else if (text) {\n ctx.font = `${fontWeight} ${fontSize}px ${fontFamily}`\n ctx.fillStyle = fontColor\n ctx.textAlign = 'center'\n ctx.textBaseline = 'middle'\n\n const lines = Array.isArray(text) ? text : [text]\n const lineHeight = fontSize * 1.5\n const startY = -((lines.length - 1) * lineHeight) / 2\n\n lines.forEach((line, i) => {\n ctx.fillText(line, 0, startY + i * lineHeight)\n })\n resolve(canvas.toDataURL())\n } else {\n resolve('')\n }\n })\n}\n\nconst Watermark = React.memo<WatermarkProps>(\n ({\n children,\n text,\n image,\n width = 120,\n height = 64,\n rotate = -22,\n gap = [100, 100],\n offset = [0, 0],\n fontSize = 14,\n fontFamily = 'sans-serif',\n fontWeight = 'normal',\n fontColor = 'rgba(0,0,0,0.15)',\n opacity = 1,\n zIndex = 10,\n className,\n classNames,\n }) => {\n const [bgImage, setBgImage] = useState('')\n const containerRef = useRef<HTMLDivElement>(null)\n const watermarkRef = useRef<HTMLDivElement>(null)\n const observerRef = useRef<MutationObserver | null>(null)\n\n const render = useCallback(async () => {\n if (typeof window === 'undefined') return\n const dataUrl = await generateWatermark({\n text, image, width, height, rotate, gap, offset, fontSize, fontFamily, fontWeight, fontColor, opacity,\n })\n setBgImage(dataUrl)\n }, [text, image, width, height, rotate, gap, offset, fontSize, fontFamily, fontWeight, fontColor, opacity])\n\n useEffect(() => { render() }, [render])\n\n // Tamper protection: re-render if watermark DOM is modified\n useEffect(() => {\n if (!watermarkRef.current || !containerRef.current) return\n observerRef.current = new MutationObserver((mutations) => {\n for (const m of mutations) {\n if (m.type === 'childList') {\n const removed = Array.from(m.removedNodes)\n if (removed.includes(watermarkRef.current!)) { render(); return }\n }\n if (m.type === 'attributes' && m.target === watermarkRef.current) { render(); return }\n }\n })\n observerRef.current.observe(containerRef.current, {\n childList: true,\n subtree: true,\n attributes: true,\n attributeFilter: ['style', 'class'],\n })\n return () => observerRef.current?.disconnect()\n }, [render])\n\n return (\n <div\n ref={containerRef}\n data-slot=\"root\"\n className={cn('watermark_root', 'relative', classNames?.root, className)}\n >\n <div data-slot=\"content\" className={cn('watermark_content', 'relative', classNames?.content)}>\n {children}\n </div>\n {bgImage && (\n <div\n ref={watermarkRef}\n data-slot=\"watermark\"\n className={cn('watermark_layer', 'absolute inset-0 pointer-events-none', classNames?.watermark)}\n style={{\n backgroundImage: `url(${bgImage})`,\n backgroundRepeat: 'repeat',\n zIndex,\n }}\n />\n )}\n </div>\n )\n },\n)\n\nWatermark.displayName = 'Watermark'\n\nexport type * from './types'\nexport default Watermark\n","import { useEffect, useState } from 'react'\n\nexport function useDebounce<T>(value: T, delay: number): T {\n const [debouncedValue, setDebouncedValue] = useState(value)\n\n useEffect(() => {\n const handler = setTimeout(() => setDebouncedValue(value), delay)\n return () => clearTimeout(handler)\n }, [value, delay])\n\n return debouncedValue\n}\n","import { useEffect, useRef, useState } from 'react'\n\nexport function useThrottle<T>(value: T, interval: number): T {\n const [throttledValue, setThrottledValue] = useState(value)\n const lastUpdated = useRef(Date.now())\n\n useEffect(() => {\n const now = Date.now()\n if (now - lastUpdated.current >= interval) {\n lastUpdated.current = now\n setThrottledValue(value)\n } else {\n const timer = setTimeout(() => {\n lastUpdated.current = Date.now()\n setThrottledValue(value)\n }, interval - (now - lastUpdated.current))\n return () => clearTimeout(timer)\n }\n }, [value, interval])\n\n return throttledValue\n}\n","import { useEffect, useState } from 'react'\n\nexport function useMediaQuery(query: string): boolean {\n const [matches, setMatches] = useState(false)\n\n useEffect(() => {\n const media = window.matchMedia(query)\n setMatches(media.matches)\n\n const listener = (e: MediaQueryListEvent) => setMatches(e.matches)\n media.addEventListener('change', listener)\n return () => media.removeEventListener('change', listener)\n }, [query])\n\n return matches\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/input/index.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAyB,MAAM,OAAO,CAAC;AAU9C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAqC1C,QAAA,MAAM,KAAK,wCAiNV,CAAC;AAIF,mBAAmB,SAAS,CAAC;AAC7B,eAAe,KAAK,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/input/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAyB,MAAM,OAAO,CAAC;AAY9C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAqC1C,QAAA,MAAM,KAAK,wCAuNV,CAAC;AAIF,mBAAmB,SAAS,CAAC;AAC7B,eAAe,KAAK,CAAC"}
@@ -1,6 +1,6 @@
1
- export { input_default as default } from '../chunk-KH577UDI.js';
2
- import '../chunk-Y4XAXZHB.js';
3
- import '../chunk-POXI7JJ4.js';
4
- import '../chunk-NGYLRX6F.js';
1
+ export { input_default as default } from '../chunk-W5VLFE4U.js';
2
+ import '../chunk-RRPMZYVN.js';
3
+ import '../chunk-G6QIIWKU.js';
4
+ import '../chunk-RAS6HUEI.js';
5
5
  //# sourceMappingURL=index.js.map
6
6
  //# sourceMappingURL=index.js.map
@@ -1,6 +1,6 @@
1
- import type { FullWidthProps, IconProps, LoadingProps, MessagePosition, ValidationMessages } from '../types';
1
+ import type { ComponentSize, ValidationMessages } from '../types';
2
2
  export type InputVariant = 'outline' | 'filled';
3
- export type InputSize = 'xs' | 'sm' | 'md' | 'lg';
3
+ export type InputSize = ComponentSize;
4
4
  export interface InputClassNames {
5
5
  root?: string;
6
6
  wrapper?: string;
@@ -12,11 +12,16 @@ export interface InputClassNames {
12
12
  helper?: string;
13
13
  error?: string;
14
14
  }
15
- export interface InputProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'size'>, ValidationMessages, Partial<IconProps>, Partial<LoadingProps>, Partial<FullWidthProps> {
15
+ export interface InputProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'size'>, ValidationMessages {
16
16
  variant?: InputVariant;
17
17
  size?: InputSize;
18
18
  label?: string;
19
- messagePosition?: MessagePosition;
19
+ messagePosition?: 'top' | 'bottom';
20
+ leftIcon?: React.ReactNode;
21
+ rightIcon?: React.ReactNode;
22
+ loading?: boolean;
23
+ loadingText?: string;
24
+ fullWidth?: boolean;
20
25
  clearable?: boolean;
21
26
  onClear?: () => void;
22
27
  maxLength?: number;