@mdigital_ui/ui 0.4.3 → 0.4.5

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 (389) hide show
  1. package/README.md +45 -5
  2. package/dist/accordion/index.js +2 -2
  3. package/dist/alert/index.d.ts +6 -0
  4. package/dist/alert/index.d.ts.map +1 -0
  5. package/dist/alert/index.js +5 -0
  6. package/dist/alert/types.d.ts +24 -0
  7. package/dist/alert/types.d.ts.map +1 -0
  8. package/dist/anchor/index.d.ts +6 -0
  9. package/dist/anchor/index.d.ts.map +1 -0
  10. package/dist/anchor/types.d.ts +26 -0
  11. package/dist/anchor/types.d.ts.map +1 -0
  12. package/dist/autocomplete/index.d.ts +6 -0
  13. package/dist/autocomplete/index.d.ts.map +1 -0
  14. package/dist/autocomplete/types.d.ts +39 -0
  15. package/dist/autocomplete/types.d.ts.map +1 -0
  16. package/dist/avatar/index.d.ts.map +1 -1
  17. package/dist/avatar/index.js +2 -1
  18. package/dist/badge/index.js +2 -2
  19. package/dist/breadcrumbs/index.d.ts.map +1 -1
  20. package/dist/breadcrumbs/index.js +4 -4
  21. package/dist/button/index.js +3 -3
  22. package/dist/calendar/index.d.ts +6 -0
  23. package/dist/calendar/index.d.ts.map +1 -0
  24. package/dist/calendar/types.d.ts +29 -0
  25. package/dist/calendar/types.d.ts.map +1 -0
  26. package/dist/card/index.d.ts +1 -1
  27. package/dist/card/index.d.ts.map +1 -1
  28. package/dist/card/index.js +2 -2
  29. package/dist/carousel/carousel-navigation.d.ts.map +1 -1
  30. package/dist/carousel/index.d.ts +1 -2
  31. package/dist/carousel/index.d.ts.map +1 -1
  32. package/dist/carousel/index.js +1 -1
  33. package/dist/carousel/styles.d.ts +12 -0
  34. package/dist/carousel/styles.d.ts.map +1 -0
  35. package/dist/cascader/CascaderMenu.d.ts +41 -0
  36. package/dist/cascader/CascaderMenu.d.ts.map +1 -0
  37. package/dist/cascader/index.d.ts.map +1 -1
  38. package/dist/cascader/index.js +2 -2
  39. package/dist/checkbox/index.d.ts.map +1 -1
  40. package/dist/checkbox/index.js +2 -2
  41. package/dist/{chunk-XWCWTPEM.js → chunk-253JZOYG.js} +4 -4
  42. package/dist/chunk-253JZOYG.js.map +1 -0
  43. package/dist/{chunk-VV3VO5TS.js → chunk-3D77IPKB.js} +7 -15
  44. package/dist/chunk-3D77IPKB.js.map +1 -0
  45. package/dist/{chunk-FCU2ENQQ.js → chunk-3XOHSE3X.js} +12 -7
  46. package/dist/chunk-3XOHSE3X.js.map +1 -0
  47. package/dist/{chunk-4WZDQI22.js → chunk-4HKPDSA6.js} +4 -4
  48. package/dist/chunk-4HKPDSA6.js.map +1 -0
  49. package/dist/{chunk-54Z7XTJA.js → chunk-4ZXHLPRS.js} +32 -34
  50. package/dist/chunk-4ZXHLPRS.js.map +1 -0
  51. package/dist/{chunk-H6PCGSIT.js → chunk-5MBKTMDW.js} +3 -3
  52. package/dist/{chunk-H6PCGSIT.js.map → chunk-5MBKTMDW.js.map} +1 -1
  53. package/dist/{chunk-ZZZGD5EF.js → chunk-5SEVPU6C.js} +3 -3
  54. package/dist/{chunk-ZZZGD5EF.js.map → chunk-5SEVPU6C.js.map} +1 -1
  55. package/dist/{chunk-ZNNIXMJZ.js → chunk-7RT65ZGV.js} +5 -7
  56. package/dist/chunk-7RT65ZGV.js.map +1 -0
  57. package/dist/{chunk-F4GLUQOF.js → chunk-A4MYCEGM.js} +9 -11
  58. package/dist/chunk-A4MYCEGM.js.map +1 -0
  59. package/dist/{chunk-EHNWVQBL.js → chunk-ADZWWBAX.js} +28 -79
  60. package/dist/chunk-ADZWWBAX.js.map +1 -0
  61. package/dist/{chunk-3KISIZGP.js → chunk-AFW2ORFT.js} +12 -4
  62. package/dist/chunk-AFW2ORFT.js.map +1 -0
  63. package/dist/{chunk-5CIJ7UCP.js → chunk-AL2EEKUY.js} +5 -5
  64. package/dist/chunk-AL2EEKUY.js.map +1 -0
  65. package/dist/{chunk-442OQLPK.js → chunk-BGMYX7L5.js} +4 -4
  66. package/dist/chunk-BGMYX7L5.js.map +1 -0
  67. package/dist/chunk-BKLJDEUX.js +857 -0
  68. package/dist/chunk-BKLJDEUX.js.map +1 -0
  69. package/dist/{chunk-QNLTSHMB.js → chunk-C32HL4XU.js} +3 -3
  70. package/dist/{chunk-QNLTSHMB.js.map → chunk-C32HL4XU.js.map} +1 -1
  71. package/dist/chunk-C65SCJD6.js +138 -0
  72. package/dist/chunk-C65SCJD6.js.map +1 -0
  73. package/dist/{chunk-C46VTIW7.js → chunk-CUXQZRDI.js} +6 -13
  74. package/dist/chunk-CUXQZRDI.js.map +1 -0
  75. package/dist/{chunk-MZDAQSI4.js → chunk-DDZCRCTQ.js} +4 -4
  76. package/dist/chunk-DDZCRCTQ.js.map +1 -0
  77. package/dist/{chunk-GLJDHW73.js → chunk-G6QIIWKU.js} +2 -2
  78. package/dist/chunk-G6QIIWKU.js.map +1 -0
  79. package/dist/{chunk-BLFXVSZU.js → chunk-HR5TGNOF.js} +3 -3
  80. package/dist/{chunk-BLFXVSZU.js.map → chunk-HR5TGNOF.js.map} +1 -1
  81. package/dist/{chunk-GPSZJWU3.js → chunk-HSMO2BR4.js} +5 -13
  82. package/dist/chunk-HSMO2BR4.js.map +1 -0
  83. package/dist/{chunk-UIVOI7HE.js → chunk-HVHQA34X.js} +15 -21
  84. package/dist/chunk-HVHQA34X.js.map +1 -0
  85. package/dist/{chunk-3QD7AQX7.js → chunk-I5AD247M.js} +9 -5
  86. package/dist/chunk-I5AD247M.js.map +1 -0
  87. package/dist/{chunk-DF2ICSNI.js → chunk-I7HJBHQU.js} +3 -3
  88. package/dist/{chunk-DF2ICSNI.js.map → chunk-I7HJBHQU.js.map} +1 -1
  89. package/dist/{chunk-NHM6DZOF.js → chunk-J2WIZULN.js} +23 -8
  90. package/dist/chunk-J2WIZULN.js.map +1 -0
  91. package/dist/{chunk-62LTLXVG.js → chunk-JBNFVXH5.js} +14 -9
  92. package/dist/chunk-JBNFVXH5.js.map +1 -0
  93. package/dist/{chunk-BMA4E3T6.js → chunk-JFTSWOGE.js} +9 -21
  94. package/dist/chunk-JFTSWOGE.js.map +1 -0
  95. package/dist/{chunk-G27HGKWO.js → chunk-JIXINKUJ.js} +7 -26
  96. package/dist/chunk-JIXINKUJ.js.map +1 -0
  97. package/dist/{chunk-DOI7OTYV.js → chunk-LJOQ2C5W.js} +4 -4
  98. package/dist/chunk-LJOQ2C5W.js.map +1 -0
  99. package/dist/chunk-LWYZCSX4.js +531 -0
  100. package/dist/chunk-LWYZCSX4.js.map +1 -0
  101. package/dist/{chunk-3FXOQC6P.js → chunk-LXHFGQOI.js} +3 -3
  102. package/dist/chunk-LXHFGQOI.js.map +1 -0
  103. package/dist/{chunk-W5L7C7WS.js → chunk-NMP4HY6M.js} +4 -4
  104. package/dist/chunk-NMP4HY6M.js.map +1 -0
  105. package/dist/{chunk-DPIXBBXK.js → chunk-NTCAZ2LF.js} +30 -10
  106. package/dist/chunk-NTCAZ2LF.js.map +1 -0
  107. package/dist/{chunk-VIK6UTVN.js → chunk-OGB5QPNZ.js} +10 -92
  108. package/dist/chunk-OGB5QPNZ.js.map +1 -0
  109. package/dist/{chunk-YSV5GQS7.js → chunk-OJAHIPPP.js} +21 -114
  110. package/dist/chunk-OJAHIPPP.js.map +1 -0
  111. package/dist/{chunk-AOXTD7QZ.js → chunk-OTNKP5CD.js} +9 -26
  112. package/dist/chunk-OTNKP5CD.js.map +1 -0
  113. package/dist/{chunk-VKY3JXAQ.js → chunk-PB5VGXS5.js} +4 -4
  114. package/dist/chunk-PB5VGXS5.js.map +1 -0
  115. package/dist/chunk-PQOIW5CM.js +27 -0
  116. package/dist/chunk-PQOIW5CM.js.map +1 -0
  117. package/dist/{chunk-CHGABWIV.js → chunk-PRDJLQLB.js} +22 -102
  118. package/dist/chunk-PRDJLQLB.js.map +1 -0
  119. package/dist/{chunk-7OYMEXY3.js → chunk-QEAALOJC.js} +9 -13
  120. package/dist/chunk-QEAALOJC.js.map +1 -0
  121. package/dist/{chunk-LM6CJZX5.js → chunk-ROQGBDET.js} +4 -4
  122. package/dist/{chunk-LM6CJZX5.js.map → chunk-ROQGBDET.js.map} +1 -1
  123. package/dist/{chunk-GGQF5PQN.js → chunk-RRPMZYVN.js} +3 -3
  124. package/dist/{chunk-GGQF5PQN.js.map → chunk-RRPMZYVN.js.map} +1 -1
  125. package/dist/{chunk-USHR3MWQ.js → chunk-S6HO7HUY.js} +8 -6
  126. package/dist/chunk-S6HO7HUY.js.map +1 -0
  127. package/dist/{chunk-K5RV3GF4.js → chunk-SFP77VS3.js} +3 -3
  128. package/dist/{chunk-K5RV3GF4.js.map → chunk-SFP77VS3.js.map} +1 -1
  129. package/dist/{chunk-LXHOS74B.js → chunk-SJLH5ZDW.js} +4 -4
  130. package/dist/{chunk-LXHOS74B.js.map → chunk-SJLH5ZDW.js.map} +1 -1
  131. package/dist/{chunk-5XLCUGLQ.js → chunk-TBKPQOXF.js} +48 -29
  132. package/dist/chunk-TBKPQOXF.js.map +1 -0
  133. package/dist/{chunk-X3CNTOKQ.js → chunk-TDNPACQD.js} +4 -4
  134. package/dist/chunk-TDNPACQD.js.map +1 -0
  135. package/dist/{chunk-QZ67UOPR.js → chunk-TQEMGWZ2.js} +16 -17
  136. package/dist/chunk-TQEMGWZ2.js.map +1 -0
  137. package/dist/{chunk-U3RHF7QF.js → chunk-U4JPTWK6.js} +4 -4
  138. package/dist/chunk-U4JPTWK6.js.map +1 -0
  139. package/dist/{chunk-S7R4NTOI.js → chunk-UFC3RGIN.js} +3 -3
  140. package/dist/{chunk-S7R4NTOI.js.map → chunk-UFC3RGIN.js.map} +1 -1
  141. package/dist/{chunk-2OBMSB5S.js → chunk-W5VLFE4U.js} +5 -5
  142. package/dist/chunk-W5VLFE4U.js.map +1 -0
  143. package/dist/{chunk-6ZPCKFRS.js → chunk-WG5AYAC6.js} +7 -16
  144. package/dist/chunk-WG5AYAC6.js.map +1 -0
  145. package/dist/{chunk-TS2PG6Z4.js → chunk-WQT24BGG.js} +4 -17
  146. package/dist/chunk-WQT24BGG.js.map +1 -0
  147. package/dist/{chunk-FZXMRXWE.js → chunk-X7MF3TIF.js} +8 -13
  148. package/dist/chunk-X7MF3TIF.js.map +1 -0
  149. package/dist/{chunk-SUNCSPDF.js → chunk-XAM5EKOS.js} +6 -19
  150. package/dist/chunk-XAM5EKOS.js.map +1 -0
  151. package/dist/{chunk-XKDN5PWJ.js → chunk-XBXPY7U3.js} +4 -4
  152. package/dist/{chunk-XKDN5PWJ.js.map → chunk-XBXPY7U3.js.map} +1 -1
  153. package/dist/{chunk-5PUATOLR.js → chunk-XCK62GVU.js} +4 -4
  154. package/dist/chunk-XCK62GVU.js.map +1 -0
  155. package/dist/{chunk-AEPBQO7U.js → chunk-XMBZBXXS.js} +5 -13
  156. package/dist/chunk-XMBZBXXS.js.map +1 -0
  157. package/dist/{chunk-2FYXBW4S.js → chunk-XOEEAMMY.js} +23 -36
  158. package/dist/chunk-XOEEAMMY.js.map +1 -0
  159. package/dist/{chunk-HSW64H23.js → chunk-Z3DIBMBQ.js} +20 -34
  160. package/dist/chunk-Z3DIBMBQ.js.map +1 -0
  161. package/dist/clipboard/index.d.ts.map +1 -1
  162. package/dist/clipboard/index.js +2 -2
  163. package/dist/collapse/index.d.ts.map +1 -1
  164. package/dist/collapse/index.js +3 -2
  165. package/dist/color-picker/index.d.ts +8 -0
  166. package/dist/color-picker/index.d.ts.map +1 -0
  167. package/dist/color-picker/types.d.ts +42 -0
  168. package/dist/color-picker/types.d.ts.map +1 -0
  169. package/dist/command/index.d.ts.map +1 -1
  170. package/dist/command/index.js +3 -2
  171. package/dist/context-menu/index.d.ts +2 -2
  172. package/dist/context-menu/index.d.ts.map +1 -1
  173. package/dist/context-menu/index.js +2 -1
  174. package/dist/context-menu/types.d.ts +12 -0
  175. package/dist/context-menu/types.d.ts.map +1 -1
  176. package/dist/date-picker/CalendarHeader.d.ts +18 -0
  177. package/dist/date-picker/CalendarHeader.d.ts.map +1 -0
  178. package/dist/date-picker/MonthSelector.d.ts +11 -0
  179. package/dist/date-picker/MonthSelector.d.ts.map +1 -0
  180. package/dist/date-picker/PickerWrapper.d.ts +18 -0
  181. package/dist/date-picker/PickerWrapper.d.ts.map +1 -0
  182. package/dist/date-picker/RangePicker.d.ts +4 -0
  183. package/dist/date-picker/RangePicker.d.ts.map +1 -0
  184. package/dist/date-picker/TimePicker.d.ts +4 -0
  185. package/dist/date-picker/TimePicker.d.ts.map +1 -0
  186. package/dist/date-picker/YearSelector.d.ts +10 -0
  187. package/dist/date-picker/YearSelector.d.ts.map +1 -0
  188. package/dist/date-picker/index.d.ts +6 -6
  189. package/dist/date-picker/index.d.ts.map +1 -1
  190. package/dist/date-picker/index.js +3 -3
  191. package/dist/date-picker/shared.d.ts +3 -0
  192. package/dist/date-picker/shared.d.ts.map +1 -0
  193. package/dist/date-picker/utils.d.ts +1 -1
  194. package/dist/date-picker/utils.d.ts.map +1 -1
  195. package/dist/descriptions/index.d.ts.map +1 -1
  196. package/dist/descriptions/index.js +2 -1
  197. package/dist/divider/index.d.ts.map +1 -1
  198. package/dist/divider/index.js +2 -2
  199. package/dist/drawer/index.js +1 -1
  200. package/dist/dropdown/index.d.ts.map +1 -1
  201. package/dist/dropdown/index.js +3 -3
  202. package/dist/fetching-overlay/index.js +3 -3
  203. package/dist/float-button/index.d.ts +9 -0
  204. package/dist/float-button/index.d.ts.map +1 -0
  205. package/dist/float-button/types.d.ts +45 -0
  206. package/dist/float-button/types.d.ts.map +1 -0
  207. package/dist/float-input/index.d.ts.map +1 -1
  208. package/dist/float-input/index.js +3 -3
  209. package/dist/index.d.ts +28 -2
  210. package/dist/index.d.ts.map +1 -1
  211. package/dist/index.js +3020 -81
  212. package/dist/index.js.map +1 -1
  213. package/dist/input/index.d.ts.map +1 -1
  214. package/dist/input/index.js +3 -3
  215. package/dist/input-otp/index.d.ts.map +1 -1
  216. package/dist/input-otp/index.js +1 -1
  217. package/dist/input-password/index.d.ts.map +1 -1
  218. package/dist/input-password/index.js +4 -4
  219. package/dist/kbd/index.js +2 -2
  220. package/dist/link/index.d.ts.map +1 -1
  221. package/dist/link/index.js +2 -1
  222. package/dist/mentions/index.d.ts +6 -0
  223. package/dist/mentions/index.d.ts.map +1 -0
  224. package/dist/mentions/types.d.ts +36 -0
  225. package/dist/mentions/types.d.ts.map +1 -0
  226. package/dist/menubar/index.d.ts.map +1 -1
  227. package/dist/menubar/index.js +3 -3
  228. package/dist/modal/index.d.ts +1 -1
  229. package/dist/modal/index.d.ts.map +1 -1
  230. package/dist/modal/index.js +1 -1
  231. package/dist/modal/types.d.ts +8 -0
  232. package/dist/modal/types.d.ts.map +1 -1
  233. package/dist/multi-select/index.d.ts.map +1 -1
  234. package/dist/multi-select/index.js +5 -4
  235. package/dist/navigation-menu/index.d.ts.map +1 -1
  236. package/dist/navigation-menu/index.js +1 -1
  237. package/dist/navigation-menu/types.d.ts +2 -0
  238. package/dist/navigation-menu/types.d.ts.map +1 -1
  239. package/dist/notification/index.d.ts.map +1 -1
  240. package/dist/notification/index.js +2 -2
  241. package/dist/number-input/index.d.ts.map +1 -1
  242. package/dist/number-input/index.js +4 -3
  243. package/dist/pagination/index.d.ts.map +1 -1
  244. package/dist/pagination/index.js +2 -2
  245. package/dist/popover/index.js +2 -2
  246. package/dist/progress/index.d.ts.map +1 -1
  247. package/dist/progress/index.js +2 -2
  248. package/dist/qr-code/index.d.ts +6 -0
  249. package/dist/qr-code/index.d.ts.map +1 -0
  250. package/dist/qr-code/types.d.ts +49 -0
  251. package/dist/qr-code/types.d.ts.map +1 -0
  252. package/dist/radio/index.js +2 -2
  253. package/dist/rating/index.d.ts.map +1 -1
  254. package/dist/rating/index.js +2 -1
  255. package/dist/resizable/index.d.ts +7 -0
  256. package/dist/resizable/index.d.ts.map +1 -0
  257. package/dist/resizable/types.d.ts +8 -0
  258. package/dist/resizable/types.d.ts.map +1 -0
  259. package/dist/result/index.d.ts +6 -0
  260. package/dist/result/index.d.ts.map +1 -0
  261. package/dist/result/types.d.ts +22 -0
  262. package/dist/result/types.d.ts.map +1 -0
  263. package/dist/scroll-area/index.d.ts.map +1 -1
  264. package/dist/scroll-area/index.js +1 -1
  265. package/dist/select/index.d.ts.map +1 -1
  266. package/dist/select/index.js +5 -4
  267. package/dist/skeleton/index.js +2 -2
  268. package/dist/slider/index.js +2 -2
  269. package/dist/spinner/index.js +2 -2
  270. package/dist/stepper/index.d.ts +3 -3
  271. package/dist/stepper/index.d.ts.map +1 -1
  272. package/dist/stepper/index.js +2 -2
  273. package/dist/switch/index.js +2 -2
  274. package/dist/table/TableHeaderCell.d.ts.map +1 -1
  275. package/dist/table/index.d.ts +1 -1
  276. package/dist/table/index.d.ts.map +1 -1
  277. package/dist/table/index.js +9 -9
  278. package/dist/table/types.d.ts +6 -0
  279. package/dist/table/types.d.ts.map +1 -1
  280. package/dist/tabs/index.d.ts.map +1 -1
  281. package/dist/tabs/index.js +2 -2
  282. package/dist/tag/index.d.ts.map +1 -1
  283. package/dist/tag/index.js +2 -2
  284. package/dist/tags-input/index.d.ts +6 -0
  285. package/dist/tags-input/index.d.ts.map +1 -0
  286. package/dist/tags-input/types.d.ts +36 -0
  287. package/dist/tags-input/types.d.ts.map +1 -0
  288. package/dist/textarea/index.d.ts.map +1 -1
  289. package/dist/textarea/index.js +1 -1
  290. package/dist/theme/ThemeProvider.d.ts +11 -3
  291. package/dist/theme/ThemeProvider.d.ts.map +1 -1
  292. package/dist/theme/index.js +1 -1
  293. package/dist/timeline/index.d.ts.map +1 -1
  294. package/dist/timeline/index.js +2 -1
  295. package/dist/toast/index.js +2 -2
  296. package/dist/toggle/index.js +2 -2
  297. package/dist/toggle-group/index.d.ts.map +1 -1
  298. package/dist/toggle-group/index.js +2 -2
  299. package/dist/tooltip/index.js +2 -2
  300. package/dist/tour/index.d.ts +6 -0
  301. package/dist/tour/index.d.ts.map +1 -0
  302. package/dist/tour/types.d.ts +45 -0
  303. package/dist/tour/types.d.ts.map +1 -0
  304. package/dist/transfer/index.d.ts.map +1 -1
  305. package/dist/transfer/index.js +3 -3
  306. package/dist/tree/index.d.ts.map +1 -1
  307. package/dist/tree/index.js +1 -1
  308. package/dist/tree-select/index.d.ts.map +1 -1
  309. package/dist/tree-select/index.js +4 -4
  310. package/dist/typography/index.d.ts +8 -0
  311. package/dist/typography/index.d.ts.map +1 -0
  312. package/dist/typography/types.d.ts +33 -0
  313. package/dist/typography/types.d.ts.map +1 -0
  314. package/dist/upload/index.d.ts.map +1 -1
  315. package/dist/upload/index.js +2 -1
  316. package/dist/upload/utils.d.ts +1 -1
  317. package/dist/upload/utils.d.ts.map +1 -1
  318. package/dist/variants.d.ts +1 -1
  319. package/dist/variants.d.ts.map +1 -1
  320. package/dist/watermark/index.d.ts +6 -0
  321. package/dist/watermark/index.d.ts.map +1 -0
  322. package/dist/watermark/types.d.ts +24 -0
  323. package/dist/watermark/types.d.ts.map +1 -0
  324. package/package.json +6 -3
  325. package/styles/global.css +506 -6787
  326. package/styles/themes/dark.css +15 -5
  327. package/styles/themes/light.css +20 -2
  328. package/styles/themes/presets/corporate.css +2 -0
  329. package/styles/themes/presets/minimal.css +2 -0
  330. package/styles/themes/presets/vibrant.css +2 -0
  331. package/dist/chunk-2FYXBW4S.js.map +0 -1
  332. package/dist/chunk-2OBMSB5S.js.map +0 -1
  333. package/dist/chunk-3FXOQC6P.js.map +0 -1
  334. package/dist/chunk-3KISIZGP.js.map +0 -1
  335. package/dist/chunk-3QD7AQX7.js.map +0 -1
  336. package/dist/chunk-442OQLPK.js.map +0 -1
  337. package/dist/chunk-4WZDQI22.js.map +0 -1
  338. package/dist/chunk-54Z7XTJA.js.map +0 -1
  339. package/dist/chunk-5CIJ7UCP.js.map +0 -1
  340. package/dist/chunk-5PUATOLR.js.map +0 -1
  341. package/dist/chunk-5XLCUGLQ.js.map +0 -1
  342. package/dist/chunk-62LTLXVG.js.map +0 -1
  343. package/dist/chunk-6ZPCKFRS.js.map +0 -1
  344. package/dist/chunk-7OYMEXY3.js.map +0 -1
  345. package/dist/chunk-AEPBQO7U.js.map +0 -1
  346. package/dist/chunk-AOXTD7QZ.js.map +0 -1
  347. package/dist/chunk-BMA4E3T6.js.map +0 -1
  348. package/dist/chunk-C46VTIW7.js.map +0 -1
  349. package/dist/chunk-CHGABWIV.js.map +0 -1
  350. package/dist/chunk-DOI7OTYV.js.map +0 -1
  351. package/dist/chunk-DPIXBBXK.js.map +0 -1
  352. package/dist/chunk-EC5DXYME.js +0 -1273
  353. package/dist/chunk-EC5DXYME.js.map +0 -1
  354. package/dist/chunk-EHNWVQBL.js.map +0 -1
  355. package/dist/chunk-F4GLUQOF.js.map +0 -1
  356. package/dist/chunk-FCU2ENQQ.js.map +0 -1
  357. package/dist/chunk-FZXMRXWE.js.map +0 -1
  358. package/dist/chunk-G27HGKWO.js.map +0 -1
  359. package/dist/chunk-GLJDHW73.js.map +0 -1
  360. package/dist/chunk-GPSZJWU3.js.map +0 -1
  361. package/dist/chunk-HSW64H23.js.map +0 -1
  362. package/dist/chunk-KZZJAZ5M.js +0 -146
  363. package/dist/chunk-KZZJAZ5M.js.map +0 -1
  364. package/dist/chunk-MZDAQSI4.js.map +0 -1
  365. package/dist/chunk-NHM6DZOF.js.map +0 -1
  366. package/dist/chunk-QZ67UOPR.js.map +0 -1
  367. package/dist/chunk-SHUHAORE.js +0 -821
  368. package/dist/chunk-SHUHAORE.js.map +0 -1
  369. package/dist/chunk-SUNCSPDF.js.map +0 -1
  370. package/dist/chunk-TS2PG6Z4.js.map +0 -1
  371. package/dist/chunk-U3RHF7QF.js.map +0 -1
  372. package/dist/chunk-UIVOI7HE.js.map +0 -1
  373. package/dist/chunk-USHR3MWQ.js.map +0 -1
  374. package/dist/chunk-VIK6UTVN.js.map +0 -1
  375. package/dist/chunk-VKY3JXAQ.js.map +0 -1
  376. package/dist/chunk-VV3VO5TS.js.map +0 -1
  377. package/dist/chunk-W5L7C7WS.js.map +0 -1
  378. package/dist/chunk-X3CNTOKQ.js.map +0 -1
  379. package/dist/chunk-XWCWTPEM.js.map +0 -1
  380. package/dist/chunk-YSV5GQS7.js.map +0 -1
  381. package/dist/chunk-ZNNIXMJZ.js.map +0 -1
  382. package/dist/empty/index.d.ts +0 -6
  383. package/dist/empty/index.d.ts.map +0 -1
  384. package/dist/empty/index.js +0 -4
  385. package/dist/empty/types.d.ts +0 -25
  386. package/dist/empty/types.d.ts.map +0 -1
  387. package/dist/styles/tokens.d.ts +0 -428
  388. package/dist/styles/tokens.d.ts.map +0 -1
  389. /package/dist/{empty → alert}/index.js.map +0 -0
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/toggle/index.tsx"],"names":[],"mappings":"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","file":"chunk-DF2ICSNI.js","sourcesContent":["'use client'\n\nimport { cva } from 'class-variance-authority'\nimport React, { useState } from 'react'\n\nimport { useRipple, RippleContainer } from '../hooks/useRipple'\nimport { cn } from '../utils'\nimport { colorVars } from '../variants'\nimport type { SingleToggleProps } from './types'\n\nconst getToggleClasses = (\n color: string,\n variant: string,\n isActive: boolean,\n) => {\n const baseColor = colorVars[color as keyof typeof colorVars] || colorVars.default\n\n if (!isActive) {\n // Inactive: text-secondary with hover to accent color\n return cn(baseColor, 'text-text-secondary hover:text-slot hover:bg-slot-10')\n }\n\n // Active state\n if (variant === 'solid') {\n return cn(baseColor, 'bg-slot text-slot-fg')\n }\n if (variant === 'soft') {\n return cn(baseColor, 'bg-slot-20 text-slot')\n }\n // default variant\n return cn(baseColor, 'border-slot bg-slot-10 text-slot')\n}\n\nconst singleToggleVariants = cva(\n 'inline-flex items-center gap-2 font-medium transition-colors cursor-pointer border rounded-md focus:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:ring-offset-background',\n {\n variants: {\n size: {\n xs: 'text-xs px-2 py-1',\n sm: 'text-sm px-3 py-1.5',\n md: 'text-base px-4 py-2',\n lg: 'text-lg px-5 py-2.5',\n },\n },\n defaultVariants: {\n size: 'md',\n },\n },\n)\n\nconst Toggle = React.memo<SingleToggleProps>(\n ({\n pressed: controlledPressed,\n defaultPressed = false,\n color = 'primary',\n size = 'md',\n variant = 'default',\n onChange,\n disabled = false,\n icon,\n children,\n 'aria-label': ariaLabel,\n className,\n classNames,\n ref,\n }) => {\n const [internalPressed, setInternalPressed] = useState(defaultPressed)\n const { ripples, onPointerDown: ripplePointerDown, onKeyDown: rippleKeyDown, onAnimationEnd: rippleAnimationEnd } = useRipple(!disabled)\n\n const pressed =\n controlledPressed !== undefined ? controlledPressed : internalPressed\n\n const handleClick = () => {\n if (disabled) return\n\n const newPressed = !pressed\n if (controlledPressed === undefined) {\n setInternalPressed(newPressed)\n }\n onChange?.(newPressed)\n }\n\n return (\n <button\n data-slot=\"root\"\n ref={ref}\n type=\"button\"\n className={cn(\n 'toggle_root',\n singleToggleVariants({ size }),\n getToggleClasses(color, variant, pressed),\n 'border relative overflow-hidden',\n disabled && 'opacity-50 cursor-not-allowed',\n classNames?.root,\n className,\n )}\n onClick={handleClick}\n onPointerDown={ripplePointerDown}\n onKeyDown={rippleKeyDown}\n disabled={disabled}\n aria-pressed={pressed}\n aria-label={ariaLabel}\n >\n {icon}\n {children}\n <RippleContainer ripples={ripples} onAnimationEnd={rippleAnimationEnd} />\n </button>\n )\n },\n)\n\nToggle.displayName = 'Toggle'\n\nexport type * from './types'\nexport default Toggle\n"]}
1
+ {"version":3,"sources":["../src/toggle/index.tsx"],"names":[],"mappings":"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","file":"chunk-I7HJBHQU.js","sourcesContent":["'use client'\n\nimport { cva } from 'class-variance-authority'\nimport React, { useState } from 'react'\n\nimport { useRipple, RippleContainer } from '../hooks/useRipple'\nimport { cn } from '../utils'\nimport { colorVars } from '../variants'\nimport type { SingleToggleProps } from './types'\n\nconst getToggleClasses = (\n color: string,\n variant: string,\n isActive: boolean,\n) => {\n const baseColor = colorVars[color as keyof typeof colorVars] || colorVars.default\n\n if (!isActive) {\n // Inactive: text-secondary with hover to accent color\n return cn(baseColor, 'text-text-secondary hover:text-slot hover:bg-slot-10')\n }\n\n // Active state\n if (variant === 'solid') {\n return cn(baseColor, 'bg-slot text-slot-fg')\n }\n if (variant === 'soft') {\n return cn(baseColor, 'bg-slot-20 text-slot')\n }\n // default variant\n return cn(baseColor, 'border-slot bg-slot-10 text-slot')\n}\n\nconst singleToggleVariants = cva(\n 'inline-flex items-center gap-2 font-medium transition-colors cursor-pointer border rounded-md focus:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:ring-offset-background',\n {\n variants: {\n size: {\n xs: 'text-xs px-2 py-1',\n sm: 'text-sm px-3 py-1.5',\n md: 'text-base px-4 py-2',\n lg: 'text-lg px-5 py-2.5',\n },\n },\n defaultVariants: {\n size: 'md',\n },\n },\n)\n\nconst Toggle = React.memo<SingleToggleProps>(\n ({\n pressed: controlledPressed,\n defaultPressed = false,\n color = 'primary',\n size = 'md',\n variant = 'default',\n onChange,\n disabled = false,\n icon,\n children,\n 'aria-label': ariaLabel,\n className,\n classNames,\n ref,\n }) => {\n const [internalPressed, setInternalPressed] = useState(defaultPressed)\n const { ripples, onPointerDown: ripplePointerDown, onKeyDown: rippleKeyDown, onAnimationEnd: rippleAnimationEnd } = useRipple(!disabled)\n\n const pressed =\n controlledPressed !== undefined ? controlledPressed : internalPressed\n\n const handleClick = () => {\n if (disabled) return\n\n const newPressed = !pressed\n if (controlledPressed === undefined) {\n setInternalPressed(newPressed)\n }\n onChange?.(newPressed)\n }\n\n return (\n <button\n data-slot=\"root\"\n ref={ref}\n type=\"button\"\n className={cn(\n 'toggle_root',\n singleToggleVariants({ size }),\n getToggleClasses(color, variant, pressed),\n 'border relative overflow-hidden',\n disabled && 'opacity-50 cursor-not-allowed',\n classNames?.root,\n className,\n )}\n onClick={handleClick}\n onPointerDown={ripplePointerDown}\n onKeyDown={rippleKeyDown}\n disabled={disabled}\n aria-pressed={pressed}\n aria-label={ariaLabel}\n >\n {icon}\n {children}\n <RippleContainer ripples={ripples} onAnimationEnd={rippleAnimationEnd} />\n </button>\n )\n },\n)\n\nToggle.displayName = 'Toggle'\n\nexport type * from './types'\nexport default Toggle\n"]}
@@ -1,5 +1,5 @@
1
1
  import { useRipple, RippleContainer } from './chunk-4TEZWGX7.js';
2
- import { colorVars } from './chunk-GLJDHW73.js';
2
+ import { colorVars } from './chunk-G6QIIWKU.js';
3
3
  import { cn, iconSizes } from './chunk-RAS6HUEI.js';
4
4
  import { cva } from 'class-variance-authority';
5
5
  import { Check, Copy } from 'lucide-react';
@@ -7,18 +7,33 @@ import React, { useState, useRef, useEffect } from 'react';
7
7
  import { jsxs, jsx } from 'react/jsx-runtime';
8
8
 
9
9
  async function copyToClipboard(text) {
10
- if (navigator.clipboard) {
10
+ if (navigator.clipboard?.writeText) {
11
11
  await navigator.clipboard.writeText(text);
12
12
  return;
13
13
  }
14
+ if (typeof ClipboardItem !== "undefined" && navigator.clipboard?.write) {
15
+ const blob = new Blob([text], { type: "text/plain" });
16
+ await navigator.clipboard.write([new ClipboardItem({ "text/plain": blob })]);
17
+ return;
18
+ }
14
19
  const textarea = document.createElement("textarea");
15
20
  textarea.value = text;
16
- textarea.style.position = "fixed";
17
- textarea.style.opacity = "0";
21
+ textarea.style.cssText = "position:fixed;opacity:0;left:-9999px";
18
22
  document.body.appendChild(textarea);
23
+ textarea.focus();
19
24
  textarea.select();
20
- document.execCommand("copy");
21
- document.body.removeChild(textarea);
25
+ try {
26
+ const selection = document.getSelection();
27
+ if (selection) {
28
+ const range = document.createRange();
29
+ range.selectNodeContents(textarea);
30
+ selection.removeAllRanges();
31
+ selection.addRange(range);
32
+ }
33
+ document.execCommand("copy");
34
+ } finally {
35
+ document.body.removeChild(textarea);
36
+ }
22
37
  }
23
38
  var clipboardVariants = cva(
24
39
  "inline-flex items-center justify-between gap-2 rounded-md font-medium transition-colors cursor-pointer border focus:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:ring-offset-background relative overflow-hidden",
@@ -163,5 +178,5 @@ Clipboard.displayName = "Clipboard";
163
178
  var clipboard_default = Clipboard;
164
179
 
165
180
  export { clipboard_default };
166
- //# sourceMappingURL=chunk-NHM6DZOF.js.map
167
- //# sourceMappingURL=chunk-NHM6DZOF.js.map
181
+ //# sourceMappingURL=chunk-J2WIZULN.js.map
182
+ //# sourceMappingURL=chunk-J2WIZULN.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/clipboard/index.tsx"],"names":[],"mappings":"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","file":"chunk-J2WIZULN.js","sourcesContent":["\"use client\";\n\nimport { cva } from \"class-variance-authority\";\nimport { Check, Copy } from \"lucide-react\";\nimport React, { useState, useRef, useEffect } from \"react\";\n\nimport { useRipple, RippleContainer } from \"../hooks/useRipple\";\nimport { cn, iconSizes } from \"../utils\";\nimport { colorVars } from \"../variants\";\nimport type { ClipboardProps } from \"./types\";\n\nasync function copyToClipboard(text: string): Promise<void> {\n if (navigator.clipboard?.writeText) {\n await navigator.clipboard.writeText(text);\n return;\n }\n // Fallback using ClipboardItem API (works in iframes / insecure contexts with user gesture)\n if (typeof ClipboardItem !== \"undefined\" && navigator.clipboard?.write) {\n const blob = new Blob([text], { type: \"text/plain\" });\n await navigator.clipboard.write([new ClipboardItem({ \"text/plain\": blob })]);\n return;\n }\n // Last resort: textarea + Selection API (no deprecated execCommand)\n const textarea = document.createElement(\"textarea\");\n textarea.value = text;\n textarea.style.cssText = \"position:fixed;opacity:0;left:-9999px\";\n document.body.appendChild(textarea);\n textarea.focus();\n textarea.select();\n try {\n const selection = document.getSelection();\n if (selection) {\n const range = document.createRange();\n range.selectNodeContents(textarea);\n selection.removeAllRanges();\n selection.addRange(range);\n }\n // execCommand is deprecated but still the only sync fallback in old browsers\n document.execCommand(\"copy\");\n } finally {\n document.body.removeChild(textarea);\n }\n}\n\nconst clipboardVariants = cva(\n \"inline-flex items-center justify-between gap-2 rounded-md font-medium transition-colors cursor-pointer border focus:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:ring-offset-background relative overflow-hidden\",\n {\n variants: {\n size: {\n xs: \"px-1.5 py-1 text-xs\",\n sm: \"px-2 py-1.5 text-xs\",\n md: \"px-2.5 py-2 text-sm\",\n lg: \"px-3.5 py-2 text-lg\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n },\n);\n\nconst getClipboardStyles = (color: string, variant: string) => {\n const baseColor = colorVars[color as keyof typeof colorVars] || colorVars.default\n\n if (variant === 'solid') {\n return cn(baseColor, 'bg-slot border-slot text-slot-fg hover:bg-slot-90')\n }\n if (variant === 'soft') {\n return cn(baseColor, 'bg-slot-10 border-slot-30 text-slot hover:bg-slot-20')\n }\n // default variant\n return cn(baseColor, 'bg-background border-slot text-slot hover:bg-slot-10')\n}\n\nconst Clipboard = React.memo<ClipboardProps>(\n ({\n value,\n color = \"default\",\n size = \"md\",\n variant = \"default\",\n showValue = true,\n successDuration = 2000,\n disabled = false,\n onCopy,\n className,\n classNames,\n ref,\n }) => {\n const [copied, setCopied] = useState(false);\n const timerRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n const isMountedRef = useRef(true);\n const { ripples, onPointerDown: ripplePointerDown, onKeyDown: rippleKeyDown, onAnimationEnd: rippleAnimationEnd } = useRipple(!disabled);\n\n // Cleanup timeout on unmount to prevent memory leak\n useEffect(() => {\n return () => {\n isMountedRef.current = false;\n if (timerRef.current) {\n clearTimeout(timerRef.current);\n }\n };\n }, []);\n\n const handleCopy = async () => {\n if (disabled) return;\n\n try {\n await copyToClipboard(value);\n if (isMountedRef.current) setCopied(true);\n onCopy?.();\n\n // Clear any existing timer before setting a new one\n if (timerRef.current) {\n clearTimeout(timerRef.current);\n }\n\n timerRef.current = setTimeout(() => {\n if (isMountedRef.current) setCopied(false);\n }, successDuration);\n } catch {\n // Copy failed - user can try again\n }\n };\n\n const handleKeyDown = (e: React.KeyboardEvent) => {\n if (e.key === \"Enter\" || e.key === \" \") {\n e.preventDefault();\n handleCopy();\n }\n };\n\n return (\n <div\n ref={ref}\n role=\"button\"\n tabIndex={disabled ? -1 : 0}\n onClick={handleCopy}\n onPointerDown={ripplePointerDown}\n onKeyDown={(e) => { rippleKeyDown(e); handleKeyDown(e); }}\n aria-label={\n copied\n ? \"Copied to clipboard\"\n : `Copy ${showValue ? value : \"to clipboard\"}`\n }\n aria-disabled={disabled}\n aria-live=\"polite\"\n className={cn(\n clipboardVariants({ size }),\n getClipboardStyles(color, variant),\n colorVars[color],\n 'focus-visible:ring-slot',\n disabled && \"opacity-50 cursor-not-allowed\",\n !showValue && \"aspect-square justify-center\",\n \"clipboard_root\",\n classNames?.root,\n className,\n )}\n data-slot=\"root\"\n >\n {showValue && (\n <span\n className={cn(\n \"font-mono truncate clipboard_input\",\n classNames?.input,\n )}\n data-slot=\"input\"\n >\n {value}\n </span>\n )}\n {copied ? (\n <Check\n className={cn(\n iconSizes[size],\n \"shrink-0 clipboard_button animate-in zoom-in-75 duration-200\",\n classNames?.button,\n )}\n data-slot=\"icon\"\n />\n ) : (\n <Copy\n className={cn(\n iconSizes[size],\n \"shrink-0 clipboard_button\",\n classNames?.button,\n )}\n data-slot=\"icon\"\n />\n )}\n <RippleContainer ripples={ripples} onAnimationEnd={rippleAnimationEnd} />\n </div>\n );\n },\n);\n\nClipboard.displayName = \"Clipboard\";\n\nexport type * from \"./types\";\nexport default Clipboard;\n"]}
@@ -1,12 +1,17 @@
1
- import { Popover, PopoverTrigger, PopoverContent } from './chunk-LM6CJZX5.js';
1
+ import { Popover, PopoverTrigger, PopoverContent } from './chunk-ROQGBDET.js';
2
2
  import { useMenuNavigation } from './chunk-NZHKNUGE.js';
3
3
  import { cn } from './chunk-RAS6HUEI.js';
4
- import { ChevronRight, Check, Circle } from 'lucide-react';
5
4
  import React, { useState, useMemo, useCallback, useEffect } from 'react';
5
+ import { ChevronRight, Check, Circle } from 'lucide-react';
6
6
  import { jsx, Fragment, jsxs } from 'react/jsx-runtime';
7
7
 
8
+ var ITEM_CLASS = "menubar_item relative flex items-center gap-2 px-3 py-1.5 text-sm cursor-pointer rounded-sm transition-colors mx-1";
8
9
  var MenuItems = React.memo(({ items, classNames, onItemClick, onClose }) => {
9
10
  const [activeSubmenu, setActiveSubmenu] = useState(null);
11
+ const hasAnyIcon = useMemo(
12
+ () => items.some((item) => !item.separator && item.type !== "label" && (item.icon || item.type === "checkbox" || item.type === "radio")),
13
+ [items]
14
+ );
10
15
  const enabledIndices = useMemo(
11
16
  () => items.map((item, i) => !item.separator && item.type !== "label" && !item.disabled ? i : -1).filter((i) => i !== -1),
12
17
  [items]
@@ -54,7 +59,7 @@ var MenuItems = React.memo(({ items, classNames, onItemClick, onClose }) => {
54
59
  {
55
60
  "data-slot": "label",
56
61
  className: cn(
57
- "menubar_label px-3 py-1.5 text-xs font-semibold text-text-secondary",
62
+ "menubar_label px-3 py-1.5 text-xs font-semibold text-text-secondary mx-1",
58
63
  classNames?.label
59
64
  ),
60
65
  role: "presentation",
@@ -78,7 +83,7 @@ var MenuItems = React.memo(({ items, classNames, onItemClick, onClose }) => {
78
83
  {
79
84
  "data-slot": "item",
80
85
  className: cn(
81
- "menubar_item relative flex items-center gap-2 px-3 py-2 text-sm cursor-pointer rounded-sm transition-colors mx-1",
86
+ ITEM_CLASS,
82
87
  item.disabled ? "opacity-50 cursor-not-allowed" : "hover:bg-surface focus-visible:bg-surface focus-visible:outline-none",
83
88
  isFocused && !item.disabled && "bg-surface",
84
89
  classNames?.item
@@ -89,7 +94,7 @@ var MenuItems = React.memo(({ items, classNames, onItemClick, onClose }) => {
89
94
  tabIndex: item.disabled ? -1 : 0,
90
95
  onMouseEnter: () => !item.disabled && setActiveSubmenu(item.key),
91
96
  children: [
92
- item.icon && /* @__PURE__ */ jsx("span", { className: "w-4 h-4 shrink-0", children: item.icon }),
97
+ item.icon ? /* @__PURE__ */ jsx("span", { className: "w-4 h-4 shrink-0", children: item.icon }) : hasAnyIcon && /* @__PURE__ */ jsx("span", { className: "w-4 h-4 shrink-0" }),
93
98
  /* @__PURE__ */ jsx("span", { className: "flex-1", children: item.label }),
94
99
  /* @__PURE__ */ jsx(ChevronRight, { className: "w-4 h-4 ml-2 shrink-0" })
95
100
  ]
@@ -121,7 +126,7 @@ var MenuItems = React.memo(({ items, classNames, onItemClick, onClose }) => {
121
126
  {
122
127
  "data-slot": "item",
123
128
  className: cn(
124
- "menubar_item relative flex items-center gap-2 px-3 py-2 text-sm cursor-pointer rounded-sm transition-colors mx-1",
129
+ ITEM_CLASS,
125
130
  item.disabled ? "opacity-50 cursor-not-allowed" : "hover:bg-surface focus-visible:bg-surface focus-visible:outline-none",
126
131
  isFocused && !item.disabled && "bg-surface",
127
132
  isCheckboxOrRadio && classNames?.checkboxItem,
@@ -138,7 +143,7 @@ var MenuItems = React.memo(({ items, classNames, onItemClick, onClose }) => {
138
143
  item.type === "checkbox" && /* @__PURE__ */ jsx(Check, { className: "w-4 h-4" }),
139
144
  item.type === "radio" && /* @__PURE__ */ jsx(Circle, { className: "w-4 h-4 fill-current" })
140
145
  ] }) }),
141
- item.icon && !isCheckboxOrRadio && /* @__PURE__ */ jsx("span", { className: "w-4 h-4 shrink-0", children: item.icon }),
146
+ !isCheckboxOrRadio && (item.icon ? /* @__PURE__ */ jsx("span", { className: "w-4 h-4 shrink-0", children: item.icon }) : hasAnyIcon && /* @__PURE__ */ jsx("span", { className: "w-4 h-4 shrink-0" })),
142
147
  /* @__PURE__ */ jsx("span", { className: "flex-1", children: item.label }),
143
148
  item.shortcut && /* @__PURE__ */ jsx(
144
149
  "span",
@@ -313,5 +318,5 @@ Menubar.displayName = "Menubar";
313
318
  var menubar_default = Menubar;
314
319
 
315
320
  export { menubar_default };
316
- //# sourceMappingURL=chunk-62LTLXVG.js.map
317
- //# sourceMappingURL=chunk-62LTLXVG.js.map
321
+ //# sourceMappingURL=chunk-JBNFVXH5.js.map
322
+ //# sourceMappingURL=chunk-JBNFVXH5.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/menubar/index.tsx"],"names":[],"mappings":"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","file":"chunk-JBNFVXH5.js","sourcesContent":["'use client'\n\nimport React, { useState, useCallback, useEffect, useMemo } from 'react'\n\nimport { ChevronRight, Check, Circle } from 'lucide-react'\n\nimport { useMenuNavigation } from '../hooks/useMenuNavigation'\nimport { Popover, PopoverTrigger, PopoverContent } from '../popover'\nimport { cn } from '../utils'\nimport type { MenubarProps, MenubarItem } from './types'\n\ninterface MenuItemsProps {\n items: MenubarItem[]\n classNames?: MenubarProps['classNames']\n onItemClick: (item: MenubarItem) => void\n onClose: () => void\n}\n\nconst ITEM_CLASS = 'menubar_item relative flex items-center gap-2 px-3 py-1.5 text-sm cursor-pointer rounded-sm transition-colors mx-1'\n\nconst MenuItems = React.memo<MenuItemsProps>(({ items, classNames, onItemClick, onClose }) => {\n const [activeSubmenu, setActiveSubmenu] = useState<string | null>(null)\n\n const hasAnyIcon = useMemo(\n () => items.some((item) => !item.separator && item.type !== 'label' && (item.icon || item.type === 'checkbox' || item.type === 'radio')),\n [items],\n )\n\n const enabledIndices = useMemo(\n () =>\n items\n .map((item, i) => (!item.separator && item.type !== 'label' && !item.disabled) ? i : -1)\n .filter((i) => i !== -1),\n [items],\n )\n\n const onMenuSelect = useCallback(\n (index: number) => {\n const item = items[index]\n if (!item || (item.children && item.children.length > 0)) return\n onItemClick(item)\n },\n [items, onItemClick],\n )\n\n const { highlightedIndex, handleKeyDown, highlightFirst } = useMenuNavigation({\n enabledIndices,\n isOpen: true,\n onClose,\n onSelect: onMenuSelect,\n })\n\n // Highlight first item on mount\n useEffect(() => {\n highlightFirst()\n }, [highlightFirst])\n\n // Document-level keyboard listener (content is in a portal)\n useEffect(() => {\n const listener = (e: KeyboardEvent) => {\n handleKeyDown(e)\n e.stopImmediatePropagation()\n }\n document.addEventListener('keydown', listener)\n return () => document.removeEventListener('keydown', listener)\n }, [handleKeyDown])\n\n return (\n <>\n {items.map((item, idx) => {\n if (item.separator) {\n return (\n <div\n key={item.key || `separator-${idx}`}\n data-slot=\"separator\"\n className={cn('menubar_separator h-px bg-border my-1', classNames?.separator)}\n role=\"separator\"\n />\n )\n }\n\n if (item.type === 'label') {\n return (\n <div\n key={item.key}\n data-slot=\"label\"\n className={cn(\n 'menubar_label px-3 py-1.5 text-xs font-semibold text-text-secondary mx-1',\n classNames?.label,\n )}\n role=\"presentation\"\n >\n {item.label}\n </div>\n )\n }\n\n const isCheckboxOrRadio = item.type === 'checkbox' || item.type === 'radio'\n const hasChildren = item.children && item.children.length > 0\n const isFocused = highlightedIndex === idx\n\n if (hasChildren) {\n return (\n <Popover\n key={item.key}\n open={activeSubmenu === item.key}\n onOpenChange={(open) => setActiveSubmenu(open ? item.key : null)}\n >\n <PopoverTrigger asChild>\n <div\n data-slot=\"item\"\n className={cn(\n ITEM_CLASS,\n item.disabled\n ? 'opacity-50 cursor-not-allowed'\n : 'hover:bg-surface focus-visible:bg-surface focus-visible:outline-none',\n isFocused && !item.disabled && 'bg-surface',\n classNames?.item,\n )}\n role=\"menuitem\"\n aria-disabled={item.disabled}\n aria-haspopup=\"menu\"\n tabIndex={item.disabled ? -1 : 0}\n onMouseEnter={() => !item.disabled && setActiveSubmenu(item.key)}\n >\n {item.icon ? <span className=\"w-4 h-4 shrink-0\">{item.icon}</span> : hasAnyIcon && <span className=\"w-4 h-4 shrink-0\" />}\n <span className=\"flex-1\">{item.label}</span>\n <ChevronRight className=\"w-4 h-4 ml-2 shrink-0\" />\n </div>\n </PopoverTrigger>\n <PopoverContent\n side=\"right\"\n align=\"start\"\n sideOffset={4}\n data-slot=\"submenu\"\n className={cn(\n 'menubar_submenu min-w-[200px] w-auto p-1 rounded-md',\n classNames?.submenu,\n )}\n onOpenAutoFocus={(e) => e.preventDefault()}\n onCloseAutoFocus={(e) => e.preventDefault()}\n >\n <MenuItems items={item.children!} classNames={classNames} onItemClick={onItemClick} onClose={onClose} />\n </PopoverContent>\n </Popover>\n )\n }\n\n return (\n <div\n key={item.key}\n data-slot=\"item\"\n className={cn(\n ITEM_CLASS,\n item.disabled\n ? 'opacity-50 cursor-not-allowed'\n : 'hover:bg-surface focus-visible:bg-surface focus-visible:outline-none',\n isFocused && !item.disabled && 'bg-surface',\n isCheckboxOrRadio && classNames?.checkboxItem,\n item.type === 'radio' && classNames?.radioItem,\n classNames?.item,\n )}\n role={\n item.type === 'checkbox'\n ? 'menuitemcheckbox'\n : item.type === 'radio'\n ? 'menuitemradio'\n : 'menuitem'\n }\n aria-disabled={item.disabled}\n aria-checked={isCheckboxOrRadio ? item.checked : undefined}\n tabIndex={item.disabled ? -1 : 0}\n onClick={() => !item.disabled && onItemClick(item)}\n >\n {isCheckboxOrRadio && (\n <span className=\"w-4 h-4 shrink-0\">\n {item.checked && (\n <>\n {item.type === 'checkbox' && <Check className=\"w-4 h-4\" />}\n {item.type === 'radio' && <Circle className=\"w-4 h-4 fill-current\" />}\n </>\n )}\n </span>\n )}\n {!isCheckboxOrRadio && (\n item.icon\n ? <span className=\"w-4 h-4 shrink-0\">{item.icon}</span>\n : hasAnyIcon && <span className=\"w-4 h-4 shrink-0\" />\n )}\n <span className=\"flex-1\">{item.label}</span>\n {item.shortcut && (\n <span\n data-slot=\"shortcut\"\n className={cn(\n 'menubar_shortcut text-xs text-text-secondary ml-auto',\n classNames?.shortcut,\n )}\n >\n {item.shortcut}\n </span>\n )}\n </div>\n )\n })}\n </>\n )\n})\n\nMenuItems.displayName = 'MenuItems'\n\nconst Menubar = React.memo<MenubarProps>(({ menus, className, classNames, ref }) => {\n const [activeMenu, setActiveMenu] = useState<string | null>(null)\n const [hoverMode, setHoverMode] = useState(false)\n\n const handleMenuClick = useCallback((menuKey: string, disabled?: boolean) => {\n if (disabled) return\n setActiveMenu((prev) => (prev === menuKey ? null : menuKey))\n setHoverMode(true)\n }, [])\n\n const handleMenuHover = useCallback(\n (menuKey: string, disabled?: boolean) => {\n if (disabled) return\n if (hoverMode && activeMenu !== null) {\n setActiveMenu(menuKey)\n }\n },\n [hoverMode, activeMenu],\n )\n\n const handleClose = useCallback(() => {\n setActiveMenu(null)\n setHoverMode(false)\n }, [])\n\n const handleItemClick = useCallback(\n (item: MenubarItem) => {\n if (item.type === 'checkbox') {\n item.onCheckedChange?.(!item.checked)\n } else if (item.type === 'radio') {\n item.onCheckedChange?.(true)\n } else {\n item.onClick?.()\n }\n if (item.type !== 'checkbox' && item.type !== 'radio') {\n handleClose()\n }\n },\n [handleClose],\n )\n\n // Top-level menu switching: ArrowLeft/Right and Escape\n useEffect(() => {\n if (!activeMenu) return\n\n const handler = (e: KeyboardEvent) => {\n const currentIndex = menus.findIndex((m) => m.key === activeMenu)\n\n if (e.key === 'ArrowRight') {\n e.preventDefault()\n e.stopImmediatePropagation()\n let next = (currentIndex + 1) % menus.length\n let attempts = 0\n while (attempts < menus.length && menus[next]?.disabled) {\n next = (next + 1) % menus.length\n attempts++\n }\n const nextMenu = menus[next]\n if (attempts < menus.length && nextMenu && !nextMenu.disabled) {\n setActiveMenu(nextMenu.key)\n }\n } else if (e.key === 'ArrowLeft') {\n e.preventDefault()\n e.stopImmediatePropagation()\n let prev = currentIndex - 1 < 0 ? menus.length - 1 : currentIndex - 1\n let attempts = 0\n while (attempts < menus.length && menus[prev]?.disabled) {\n prev = prev - 1 < 0 ? menus.length - 1 : prev - 1\n attempts++\n }\n const prevMenu = menus[prev]\n if (attempts < menus.length && prevMenu && !prevMenu.disabled) {\n setActiveMenu(prevMenu.key)\n }\n }\n }\n\n document.addEventListener('keydown', handler)\n return () => document.removeEventListener('keydown', handler)\n }, [activeMenu, menus])\n\n return (\n <div\n ref={ref}\n data-slot=\"root\"\n className={cn(\n 'menubar_root flex items-center gap-1 px-2 py-1 bg-background border-b border-border',\n className,\n classNames?.root,\n )}\n role=\"menubar\"\n >\n {menus.map((menu) => (\n <Popover\n key={menu.key}\n open={activeMenu === menu.key}\n onOpenChange={(open) => {\n if (open) {\n setActiveMenu(menu.key)\n setHoverMode(true)\n } else {\n handleClose()\n }\n }}\n >\n <PopoverTrigger asChild>\n <button\n data-slot=\"trigger\"\n className={cn(\n 'menubar_trigger px-3 py-1.5 text-sm rounded-sm transition-colors',\n menu.disabled\n ? 'opacity-50 cursor-not-allowed'\n : 'hover:bg-surface focus-visible:bg-surface focus-visible:outline-none',\n activeMenu === menu.key && 'bg-surface',\n classNames?.trigger,\n )}\n role=\"menuitem\"\n aria-haspopup=\"menu\"\n aria-expanded={activeMenu === menu.key}\n aria-disabled={menu.disabled}\n onClick={() => handleMenuClick(menu.key, menu.disabled)}\n onMouseEnter={() => handleMenuHover(menu.key, menu.disabled)}\n >\n {menu.label}\n </button>\n </PopoverTrigger>\n <PopoverContent\n side=\"bottom\"\n align=\"start\"\n sideOffset={2}\n data-slot=\"content\"\n className={cn(\n 'menubar_content min-w-[200px] w-auto p-1 rounded-md',\n classNames?.content,\n )}\n onOpenAutoFocus={(e) => e.preventDefault()}\n onCloseAutoFocus={(e) => e.preventDefault()}\n onPointerDownOutside={(e) => {\n const target = e.target as HTMLElement\n if (target.closest('[data-slot=\"root\"]')) {\n e.preventDefault()\n }\n }}\n >\n <MenuItems\n items={menu.items}\n classNames={classNames}\n onItemClick={handleItemClick}\n onClose={handleClose}\n />\n </PopoverContent>\n </Popover>\n ))}\n </div>\n )\n})\n\nMenubar.displayName = 'Menubar'\n\nexport type * from './types'\nexport default Menubar\n"]}
@@ -1,4 +1,4 @@
1
- import { colorVars } from './chunk-GLJDHW73.js';
1
+ import { colorVars } from './chunk-G6QIIWKU.js';
2
2
  import { cn } from './chunk-RAS6HUEI.js';
3
3
  import { cva } from 'class-variance-authority';
4
4
  import React from 'react';
@@ -21,16 +21,6 @@ var dividerVariants = cva("", {
21
21
  variant: "solid"
22
22
  }
23
23
  });
24
- var dividerBorderColorClasses = {
25
- default: "border-border",
26
- primary: "border-primary",
27
- secondary: "border-secondary",
28
- accent: "border-accent",
29
- success: "border-success",
30
- error: "border-error",
31
- warning: "border-warning",
32
- info: "border-info"
33
- };
34
24
  var textAlignClasses = {
35
25
  left: {
36
26
  before: "w-(--divider-left-before-width)",
@@ -85,9 +75,8 @@ var Divider = React.memo(
85
75
  "data-slot": "line",
86
76
  className: cn(
87
77
  "divider_line",
88
- "border-t",
78
+ "border-t border-slot",
89
79
  dividerVariants({ variant }),
90
- dividerBorderColorClasses[color],
91
80
  textAlignClasses[textAlign].before,
92
81
  classNames?.line
93
82
  )
@@ -111,9 +100,8 @@ var Divider = React.memo(
111
100
  "data-slot": "line",
112
101
  className: cn(
113
102
  "divider_line",
114
- "border-t",
103
+ "border-t border-slot",
115
104
  dividerVariants({ variant }),
116
- dividerBorderColorClasses[color],
117
105
  textAlignClasses[textAlign].after,
118
106
  classNames?.line
119
107
  )
@@ -132,9 +120,9 @@ var Divider = React.memo(
132
120
  "data-slot": "root",
133
121
  className: cn(
134
122
  "divider_root",
135
- "border-t",
123
+ "border-t border-slot",
124
+ colorVars[color],
136
125
  dividerVariants({ orientation, variant }),
137
- dividerBorderColorClasses[color],
138
126
  className,
139
127
  classNames?.root
140
128
  ),
@@ -152,9 +140,9 @@ var Divider = React.memo(
152
140
  "data-slot": "root",
153
141
  className: cn(
154
142
  "divider_root",
155
- "inline-block w-px border-l self-stretch",
143
+ "inline-block w-px border-l self-stretch border-slot",
144
+ colorVars[color],
156
145
  dividerVariants({ variant }),
157
- dividerBorderColorClasses[color],
158
146
  className,
159
147
  classNames?.root
160
148
  ),
@@ -168,5 +156,5 @@ Divider.displayName = "Divider";
168
156
  var divider_default = Divider;
169
157
 
170
158
  export { divider_default };
171
- //# sourceMappingURL=chunk-BMA4E3T6.js.map
172
- //# sourceMappingURL=chunk-BMA4E3T6.js.map
159
+ //# sourceMappingURL=chunk-JFTSWOGE.js.map
160
+ //# sourceMappingURL=chunk-JFTSWOGE.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/divider/index.tsx"],"names":[],"mappings":"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","file":"chunk-JFTSWOGE.js","sourcesContent":["'use client'\n\nimport { cva } from 'class-variance-authority'\nimport React from 'react'\n\nimport { cn } from '../utils'\nimport { colorVars } from '../variants'\nimport type { DividerProps } from './types'\n\n/**\n * Class variance authority configuration for the Divider component\n * Defines style variants for orientation, line style, and text alignment\n */\nconst dividerVariants = cva('', {\n variants: {\n orientation: {\n horizontal: 'w-full',\n vertical: 'h-full',\n },\n variant: {\n solid: 'border-solid',\n dashed: 'border-dashed',\n dotted: 'border-dotted',\n },\n },\n defaultVariants: {\n orientation: 'horizontal',\n variant: 'solid',\n },\n})\n\n/**\n * Text alignment styles for the label within the divider\n * Defines the width distribution of divider lines before and after the label\n * Uses design tokens for customizability\n */\nconst textAlignClasses = {\n left: {\n before: 'w-(--divider-left-before-width)',\n after: 'w-(--divider-left-after-width)',\n },\n center: {\n before: 'w-(--divider-center-before-width)',\n after: 'w-(--divider-center-after-width)',\n },\n right: {\n before: 'w-(--divider-right-before-width)',\n after: 'w-(--divider-right-after-width)',\n },\n}\n\n/**\n * Divider Component\n *\n * A visual separator that can be used to divide content sections.\n * Supports horizontal and vertical orientations, different line styles,\n * color variants, and optional label text.\n *\n * @component\n * @example\n * // Basic horizontal divider\n * <Divider />\n *\n * @example\n * // Divider with text label\n * <Divider>Section Title</Divider>\n *\n * @example\n * // Colored divider\n * <Divider color=\"primary\" />\n *\n * @example\n * // Vertical divider\n * <Divider orientation=\"vertical\" />\n *\n * @example\n * // Dashed divider with left-aligned text\n * <Divider variant=\"dashed\" textAlign=\"left\" color=\"accent\">\n * Options\n * </Divider>\n *\n * @param {DividerProps} props - Component props\n * @returns {JSX.Element} Rendered divider component\n */\nconst Divider = React.memo<DividerProps>(\n ({\n orientation = 'horizontal',\n variant = 'solid',\n color = 'default',\n children,\n textAlign = 'center',\n spacing,\n className,\n classNames,\n ref,\n ...props\n }) => {\n const hasText = Boolean(children)\n\n /**\n * Render horizontal divider\n * Supports optional text label with configurable alignment\n */\n if (orientation === 'horizontal') {\n if (hasText) {\n return (\n <div\n ref={ref as React.Ref<HTMLDivElement>}\n role=\"separator\"\n aria-orientation=\"horizontal\"\n data-slot=\"root\"\n className={cn(\n 'divider_root',\n 'flex items-center gap-(--divider-gap) text-sm',\n colorVars[color],\n 'text-slot',\n className,\n classNames?.root,\n )}\n style={spacing ? { margin: spacing } : undefined}\n {...props}\n >\n <div\n data-slot=\"line\"\n className={cn(\n 'divider_line',\n 'border-t border-slot',\n dividerVariants({ variant }),\n textAlignClasses[textAlign].before,\n classNames?.line,\n )}\n />\n <span\n data-slot=\"label\"\n className={cn(\n 'divider_label',\n 'whitespace-nowrap flex-shrink-0',\n classNames?.label,\n )}\n >\n {children}\n </span>\n <div\n data-slot=\"line\"\n className={cn(\n 'divider_line',\n 'border-t border-slot',\n dividerVariants({ variant }),\n textAlignClasses[textAlign].after,\n classNames?.line,\n )}\n />\n </div>\n )\n }\n\n return (\n <hr\n ref={ref as React.Ref<HTMLHRElement>}\n role=\"separator\"\n aria-orientation=\"horizontal\"\n data-slot=\"root\"\n className={cn(\n 'divider_root',\n 'border-t border-slot',\n colorVars[color],\n dividerVariants({ orientation, variant }),\n className,\n classNames?.root,\n )}\n style={spacing ? { margin: spacing } : undefined}\n {...props}\n />\n )\n }\n\n /**\n * Render vertical divider\n * Text labels are not supported in vertical orientation\n */\n\n return (\n <div\n ref={ref as React.Ref<HTMLDivElement>}\n role=\"separator\"\n aria-orientation=\"vertical\"\n data-slot=\"root\"\n className={cn(\n 'divider_root',\n 'inline-block w-px border-l self-stretch border-slot',\n colorVars[color],\n dividerVariants({ variant }),\n className,\n classNames?.root,\n )}\n style={spacing ? { margin: spacing } : undefined}\n {...props}\n />\n )\n },\n)\n\nDivider.displayName = 'Divider'\n\nexport type * from './types'\nexport default Divider\n"]}
@@ -1,10 +1,11 @@
1
+ import { colorVars } from './chunk-G6QIIWKU.js';
1
2
  import { cn, iconSizes } from './chunk-RAS6HUEI.js';
2
3
  import { cva } from 'class-variance-authority';
3
4
  import React from 'react';
4
5
  import { jsxs, jsx } from 'react/jsx-runtime';
5
6
 
6
7
  var dotVariants = cva(
7
- "rounded-full shrink-0 flex items-center justify-center z-10",
8
+ "rounded-full shrink-0 flex items-center justify-center z-10 bg-slot",
8
9
  {
9
10
  variants: {
10
11
  size: {
@@ -13,16 +14,7 @@ var dotVariants = cva(
13
14
  md: "w-4 h-4",
14
15
  lg: "w-5 h-5"
15
16
  },
16
- color: {
17
- default: "bg-border",
18
- primary: "bg-primary",
19
- secondary: "bg-secondary",
20
- accent: "bg-accent",
21
- success: "bg-success",
22
- error: "bg-error",
23
- warning: "bg-warning",
24
- info: "bg-info"
25
- }
17
+ color: colorVars
26
18
  },
27
19
  defaultVariants: {
28
20
  size: "md",
@@ -60,16 +52,6 @@ var iconDotSizes = {
60
52
  md: "w-8 h-8",
61
53
  lg: "w-10 h-10"
62
54
  };
63
- var iconDotColorClasses = {
64
- default: "bg-border",
65
- primary: "bg-primary",
66
- secondary: "bg-secondary",
67
- accent: "bg-accent",
68
- success: "bg-success",
69
- error: "bg-error",
70
- warning: "bg-warning",
71
- info: "bg-info"
72
- };
73
55
  var dotRowHeights = {
74
56
  xs: "min-h-5",
75
57
  sm: "min-h-6",
@@ -109,10 +91,9 @@ var Timeline = React.memo(
109
91
  {
110
92
  className: cn(
111
93
  "timeline_dot",
112
- "rounded-full shrink-0 flex items-center justify-center z-10",
94
+ "rounded-full shrink-0 flex items-center justify-center z-10 bg-slot text-slot-fg",
95
+ colorVars[itemColor],
113
96
  iconDotSizes[size],
114
- iconDotColorClasses[itemColor],
115
- "text-background",
116
97
  classNames?.dot
117
98
  ),
118
99
  "data-slot": "dot",
@@ -491,5 +472,5 @@ Timeline.displayName = "Timeline";
491
472
  var timeline_default = Timeline;
492
473
 
493
474
  export { timeline_default };
494
- //# sourceMappingURL=chunk-G27HGKWO.js.map
495
- //# sourceMappingURL=chunk-G27HGKWO.js.map
475
+ //# sourceMappingURL=chunk-JIXINKUJ.js.map
476
+ //# sourceMappingURL=chunk-JIXINKUJ.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/timeline/index.tsx"],"names":[],"mappings":"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","file":"chunk-JIXINKUJ.js","sourcesContent":["\"use client\";\n\nimport { cva } from \"class-variance-authority\";\nimport React from \"react\";\n\nimport { cn, iconSizes } from \"../utils\";\nimport { colorVars } from \"../variants\";\nimport type { TimelineProps } from \"./types\";\n\nconst dotVariants = cva(\n \"rounded-full shrink-0 flex items-center justify-center z-10 bg-slot\",\n {\n variants: {\n size: {\n xs: \"w-2 h-2\",\n sm: \"w-3 h-3\",\n md: \"w-4 h-4\",\n lg: \"w-5 h-5\",\n },\n color: colorVars,\n },\n defaultVariants: {\n size: \"md\",\n color: \"default\",\n },\n },\n);\n\nconst connectorSizes = {\n xs: { vertical: \"w-px\", horizontal: \"h-px\" },\n sm: { vertical: \"w-px\", horizontal: \"h-px\" },\n md: { vertical: \"w-0.5\", horizontal: \"h-0.5\" },\n lg: { vertical: \"w-0.5\", horizontal: \"h-0.5\" },\n} as const;\n\nconst trackWidths = {\n xs: \"w-4\",\n sm: \"w-5\",\n md: \"w-6\",\n lg: \"w-7\",\n} as const;\n\nconst contentSizes = {\n xs: \"text-xs\",\n sm: \"text-sm\",\n md: \"text-base\",\n lg: \"text-lg\",\n} as const;\n\nconst timestampSizes = {\n xs: \"text-[10px]\",\n sm: \"text-xs\",\n md: \"text-sm\",\n lg: \"text-base\",\n} as const;\n\nconst iconDotSizes = {\n xs: \"w-5 h-5\",\n sm: \"w-6 h-6\",\n md: \"w-8 h-8\",\n lg: \"w-10 h-10\",\n} as const;\n\n\n\nconst dotRowHeights = {\n xs: \"min-h-5\",\n sm: \"min-h-6\",\n md: \"min-h-8\",\n lg: \"min-h-10\",\n} as const;\n\nconst Timeline = React.memo<TimelineProps>(\n ({\n items,\n mode = \"left\",\n orientation = \"vertical\",\n size = \"md\",\n color = \"default\",\n pending = false,\n pendingText = \"Loading...\",\n reverse = false,\n className,\n classNames,\n ref,\n }) => {\n const isHorizontal = orientation === \"horizontal\";\n const displayItems = reverse ? [...items].reverse() : items;\n\n const renderDot = (\n item: (typeof displayItems)[number],\n itemColor: typeof color,\n ) => {\n if (item.dot) {\n return (\n <div\n className={cn(\"timeline_dot\", \"shrink-0 z-10\", classNames?.dot)}\n data-slot=\"dot\"\n >\n {item.dot}\n </div>\n );\n }\n\n if (item.icon) {\n return (\n <div\n className={cn(\n \"timeline_dot\",\n \"rounded-full shrink-0 flex items-center justify-center z-10 bg-slot text-slot-fg\",\n colorVars[itemColor],\n iconDotSizes[size],\n classNames?.dot,\n )}\n data-slot=\"dot\"\n >\n <span\n className={cn(\n \"timeline_icon\",\n \"flex items-center justify-center\",\n iconSizes[size],\n classNames?.icon,\n )}\n data-slot=\"icon\"\n >\n {item.icon}\n </span>\n </div>\n );\n }\n\n return (\n <div\n className={cn(\n \"timeline_dot\",\n dotVariants({ size, color: itemColor }),\n classNames?.dot,\n )}\n data-slot=\"dot\"\n />\n );\n };\n\n const renderContent = (\n item: (typeof displayItems)[number],\n align: \"left\" | \"right\",\n ) => (\n <div\n className={cn(\n \"timeline_content\",\n contentSizes[size],\n align === \"right\" ? \"text-right\" : \"text-left\",\n classNames?.content,\n )}\n data-slot=\"content\"\n >\n <div\n className={cn(\n \"timeline_title\",\n \"font-semibold text-text-primary -mt-1\",\n item.description && \"mb-1\",\n classNames?.title,\n )}\n data-slot=\"title\"\n >\n {item.title}\n </div>\n {item.description && (\n <div\n className={cn(\n \"timeline_description\",\n \"text-text-secondary\",\n classNames?.description,\n )}\n data-slot=\"description\"\n >\n {item.description}\n </div>\n )}\n </div>\n );\n\n const renderDate = (\n item: (typeof displayItems)[number],\n align: \"left\" | \"right\",\n ) => {\n if (!item.timestamp) return null;\n return (\n <div\n className={cn(\n \"timeline_date\",\n \"text-text-secondary\",\n timestampSizes[size],\n align === \"right\" ? \"text-right\" : \"text-left\",\n classNames?.date,\n )}\n data-slot=\"date\"\n >\n {item.timestamp}\n </div>\n );\n };\n\n // === VERTICAL ===\n\n const renderVerticalItem = (\n item: (typeof displayItems)[number],\n index: number,\n ) => {\n const isLast = index === displayItems.length - 1 && !pending;\n const itemColor = item.color || color;\n const contentOnRight =\n mode === \"left\" || (mode === \"center\" && index % 2 === 0);\n\n return (\n <div\n key={item.key ?? index}\n className={cn(\n \"timeline_item\",\n \"grid grid-cols-[1fr_auto_1fr]\",\n classNames?.item,\n )}\n data-slot=\"item\"\n >\n {/* Left column */}\n <div className=\"pb-8 pr-4\">\n {contentOnRight\n ? renderDate(item, \"right\")\n : renderContent(item, \"right\")}\n </div>\n\n {/* Track */}\n <div\n className={cn(\n \"timeline_track\",\n \"relative flex flex-col items-center\",\n trackWidths[size],\n )}\n >\n {renderDot(item, itemColor)}\n {!isLast && (\n <div\n className={cn(\n \"timeline_connector\",\n \"flex-1 bg-border\",\n connectorSizes[size].vertical,\n classNames?.connector,\n )}\n data-slot=\"connector\"\n />\n )}\n </div>\n\n {/* Right column */}\n <div className=\"pb-8 pl-4\">\n {contentOnRight\n ? renderContent(item, \"left\")\n : renderDate(item, \"left\")}\n </div>\n </div>\n );\n };\n\n const renderVerticalPending = () => {\n const pendingIndex = displayItems.length;\n const contentOnRight =\n mode === \"left\" || (mode === \"center\" && pendingIndex % 2 === 0);\n\n return (\n <div\n className={cn(\n \"timeline_item\",\n \"grid grid-cols-[1fr_auto_1fr]\",\n classNames?.item,\n )}\n data-slot=\"item\"\n >\n <div className=\"pr-4\">\n {!contentOnRight && (\n <div\n className={cn(\n \"text-text-secondary text-right\",\n contentSizes[size],\n )}\n >\n {pendingText}\n </div>\n )}\n </div>\n\n <div\n className={cn(\n \"timeline_track\",\n \"relative flex flex-col items-center\",\n trackWidths[size],\n )}\n >\n <div\n className={cn(\n \"timeline_dot\",\n dotVariants({ size, color: \"default\" }),\n \"animate-pulse\",\n classNames?.dot,\n )}\n data-slot=\"dot\"\n />\n </div>\n\n <div className=\"pl-4\">\n {contentOnRight && (\n <div\n className={cn(\n \"text-text-secondary\",\n contentSizes[size],\n classNames?.content,\n )}\n >\n {pendingText}\n </div>\n )}\n </div>\n </div>\n );\n };\n\n // === HORIZONTAL ===\n\n const renderHorizontalItem = (\n item: (typeof displayItems)[number],\n index: number,\n ) => {\n const isFirst = index === 0;\n const isLast = index === displayItems.length - 1 && !pending;\n const itemColor = item.color || color;\n\n return (\n <div\n key={item.key ?? index}\n className={cn(\n \"timeline_item\",\n \"flex-1 flex flex-col items-center min-w-0\",\n classNames?.item,\n )}\n data-slot=\"item\"\n >\n {/* Date above */}\n <div\n className={cn(\n \"timeline_date\",\n \"text-text-secondary text-center mb-2 min-h-[1em]\",\n timestampSizes[size],\n classNames?.date,\n )}\n data-slot=\"date\"\n >\n {item.timestamp}\n </div>\n\n {/* Dot row */}\n <div className={cn(\"flex items-center w-full\", dotRowHeights[size])}>\n <div\n className={cn(\n \"flex-1\",\n !isFirst && cn(\"bg-border\", connectorSizes[size].horizontal),\n )}\n />\n {renderDot(item, itemColor)}\n <div\n className={cn(\n \"flex-1\",\n !isLast && cn(\"bg-border\", connectorSizes[size].horizontal),\n )}\n />\n </div>\n\n {/* Content below */}\n <div\n className={cn(\n \"timeline_content\",\n \"text-center mt-1.5\",\n contentSizes[size],\n classNames?.content,\n )}\n data-slot=\"content\"\n >\n <div\n className={cn(\n \"timeline_title\",\n \"font-semibold text-text-primary\",\n item.description && \"mb-1\",\n classNames?.title,\n )}\n data-slot=\"title\"\n >\n {item.title}\n </div>\n {item.description && (\n <div\n className={cn(\n \"timeline_description\",\n \"text-text-secondary\",\n classNames?.description,\n )}\n data-slot=\"description\"\n >\n {item.description}\n </div>\n )}\n </div>\n </div>\n );\n };\n\n const renderHorizontalPending = () => (\n <div\n className={cn(\n \"timeline_item\",\n \"flex-1 flex flex-col items-center min-w-0\",\n classNames?.item,\n )}\n data-slot=\"item\"\n >\n <div\n className={cn(\n \"text-text-secondary text-center mb-2 min-h-[1em]\",\n timestampSizes[size],\n )}\n />\n\n <div className={cn(\"flex items-center w-full\", dotRowHeights[size])}>\n <div\n className={cn(\"flex-1 bg-border\", connectorSizes[size].horizontal)}\n />\n <div\n className={cn(\n \"timeline_dot\",\n dotVariants({ size, color: \"default\" }),\n \"animate-pulse\",\n classNames?.dot,\n )}\n data-slot=\"dot\"\n />\n <div className=\"flex-1\" />\n </div>\n\n <div\n className={cn(\n \"timeline_content\",\n \"text-center mt-1.5 text-text-secondary\",\n contentSizes[size],\n classNames?.content,\n )}\n data-slot=\"content\"\n >\n {pendingText}\n </div>\n </div>\n );\n\n // === RENDER ===\n\n if (isHorizontal) {\n return (\n <div\n ref={ref}\n className={cn(\n \"timeline_root\",\n \"relative flex w-full\",\n classNames?.root,\n className,\n )}\n data-slot=\"root\"\n >\n {displayItems.map((item, index) => renderHorizontalItem(item, index))}\n {pending && renderHorizontalPending()}\n </div>\n );\n }\n\n return (\n <div\n ref={ref}\n className={cn(\"timeline_root\", \"relative\", classNames?.root, className)}\n data-slot=\"root\"\n >\n {displayItems.map((item, index) => renderVerticalItem(item, index))}\n {pending && renderVerticalPending()}\n </div>\n );\n },\n);\n\nTimeline.displayName = \"Timeline\";\n\nexport type * from \"./types\";\nexport default Timeline;\n"]}
@@ -1,7 +1,7 @@
1
- import { input_default } from './chunk-2OBMSB5S.js';
1
+ import { input_default } from './chunk-W5VLFE4U.js';
2
2
  import { cn, iconSizes } from './chunk-RAS6HUEI.js';
3
- import { Eye, EyeOff } from 'lucide-react';
4
3
  import React from 'react';
4
+ import { Eye, EyeOff } from 'lucide-react';
5
5
  import { jsx } from 'react/jsx-runtime';
6
6
 
7
7
  var PasswordInput = React.memo(
@@ -77,5 +77,5 @@ PasswordInput.displayName = "PasswordInput";
77
77
  var input_password_default = PasswordInput;
78
78
 
79
79
  export { PasswordInput, input_password_default };
80
- //# sourceMappingURL=chunk-DOI7OTYV.js.map
81
- //# sourceMappingURL=chunk-DOI7OTYV.js.map
80
+ //# sourceMappingURL=chunk-LJOQ2C5W.js.map
81
+ //# sourceMappingURL=chunk-LJOQ2C5W.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/input-password/index.tsx"],"names":[],"mappings":";;;;;;AAUO,IAAM,gBAAgB,KAAA,CAAM,IAAA;AAAA,EACjC,CAAC,EAAE,gBAAA,GAAmB,IAAA,EAAM,IAAA,GAAO,MAAM,GAAA,EAAK,UAAA,EAAY,GAAG,KAAA,EAAM,KAAM;AACvE,IAAA,MAAM,CAAC,YAAA,EAAc,eAAe,CAAA,GAAI,KAAA,CAAM,SAAS,KAAK,CAAA;AAE5D,IAAA,MAAM,gBAAA,GAAmB,KAAA,CAAM,WAAA,CAAY,MAAM;AAC/C,MAAA,eAAA,CAAgB,CAAC,IAAA,KAAS,CAAC,IAAI,CAAA;AAAA,IACjC,CAAA,EAAG,EAAE,CAAA;AAEL,IAAA,MAAM,qBAAqB,KAAA,CAAM,OAAA;AAAA,MAC/B,OAAO;AAAA,QACL,IAAA,EAAM,EAAA,CAAG,oBAAA,EAAsB,UAAA,EAAY,IAAI,CAAA;AAAA,QAC/C,OAAA,EAAS,EAAA,CAAG,uBAAA,EAAyB,UAAA,EAAY,OAAO,CAAA;AAAA,QACxD,KAAA,EAAO,EAAA,CAAG,qBAAA,EAAuB,UAAA,EAAY,KAAK,CAAA;AAAA,QAClD,KAAA,EAAO,EAAA,CAAG,qBAAA,EAAuB,UAAA,EAAY,KAAK,CAAA;AAAA,QAClD,MAAA,EAAQ,EAAA,CAAG,sBAAA,EAAwB,UAAA,EAAY,MAAM,CAAA;AAAA,QACrD,KAAA,EAAO,EAAA,CAAG,qBAAA,EAAuB,UAAA,EAAY,KAAK;AAAA,OACpD,CAAA;AAAA,MACA,CAAC,UAAU;AAAA,KACb;AAEA,IAAA,MAAM,oBAAoB,KAAA,CAAM,OAAA;AAAA,MAC9B,MACE,gBAAA,mBACE,GAAA;AAAA,QAAC,QAAA;AAAA,QAAA;AAAA,UACC,IAAA,EAAK,QAAA;AAAA,UACL,OAAA,EAAS,gBAAA;AAAA,UACT,WAAA,EAAU,cAAA;AAAA,UACV,SAAA,EAAW,EAAA;AAAA,YACT,4BAAA;AAAA,YACA,0DAAA;AAAA,YACA,UAAA,EAAY;AAAA,WACd;AAAA,UACA,YAAA,EAAY,eAAe,eAAA,GAAkB,eAAA;AAAA,UAC7C,cAAA,EAAc,YAAA;AAAA,UAGb,QAAA,EAAA,YAAA,mBACC,GAAA;AAAA,YAAC,GAAA;AAAA,YAAA;AAAA,cACC,WAAA,EAAU,YAAA;AAAA,cACV,SAAA,EAAW,EAAA;AAAA,gBACT,0BAAA;AAAA,gBACA,UAAU,IAAI,CAAA;AAAA,gBACd,UAAA,EAAY;AAAA;AACd;AAAA,WACF,mBAEA,GAAA;AAAA,YAAC,MAAA;AAAA,YAAA;AAAA,cACC,WAAA,EAAU,YAAA;AAAA,cACV,SAAA,EAAW,EAAA;AAAA,gBACT,0BAAA;AAAA,gBACA,UAAU,IAAI,CAAA;AAAA,gBACd,UAAA,EAAY;AAAA;AACd;AAAA;AACF;AAAA,OAEJ,GACE,MAAA;AAAA,MACN,CAAC,gBAAA,EAAkB,gBAAA,EAAkB,YAAA,EAAc,MAAM,UAAU;AAAA,KACrE;AAEA,IAAA,uBACE,GAAA;AAAA,MAAC,aAAA;AAAA,MAAA;AAAA,QACE,GAAG,KAAA;AAAA,QACJ,IAAA;AAAA,QACA,GAAA;AAAA,QACA,IAAA,EAAM,eAAe,MAAA,GAAS,UAAA;AAAA,QAC9B,UAAA,EAAY,kBAAA;AAAA,QACZ,SAAA,EAAW;AAAA;AAAA,KACb;AAAA,EAEJ;AACF;AAEA,aAAA,CAAc,WAAA,GAAc,eAAA;AAG5B,IAAO,sBAAA,GAAQ","file":"chunk-LJOQ2C5W.js","sourcesContent":["'use client'\n\nimport React from 'react'\n\nimport { Eye, EyeOff } from 'lucide-react'\n\nimport Input from '../input'\nimport { cn, iconSizes } from '../utils'\nimport type { PasswordInputProps } from './types'\n\nexport const PasswordInput = React.memo<PasswordInputProps>(\n ({ visibilityToggle = true, size = 'md', ref, classNames, ...props }) => {\n const [showPassword, setShowPassword] = React.useState(false)\n\n const toggleVisibility = React.useCallback(() => {\n setShowPassword((prev) => !prev)\n }, [])\n\n const memoizedClassNames = React.useMemo(\n () => ({\n root: cn('inputPassword_root', classNames?.root),\n wrapper: cn('inputPassword_wrapper', classNames?.wrapper),\n label: cn('inputPassword_label', classNames?.label),\n input: cn('inputPassword_input', classNames?.input),\n helper: cn('inputPassword_helper', classNames?.helper),\n error: cn('inputPassword_error', classNames?.error),\n }),\n [classNames],\n )\n\n const memoizedRightIcon = React.useMemo(\n () =>\n visibilityToggle ? (\n <button\n type=\"button\"\n onClick={toggleVisibility}\n data-slot=\"toggleButton\"\n className={cn(\n 'inputPassword_toggleButton',\n 'cursor-pointer hover:text-text-primary transition-colors',\n classNames?.toggleButton,\n )}\n aria-label={showPassword ? 'Hide password' : 'Show password'}\n aria-pressed={showPassword}\n // tabIndex={-1}\n >\n {showPassword ? (\n <Eye\n data-slot=\"toggleIcon\"\n className={cn(\n 'inputPassword_toggleIcon',\n iconSizes[size],\n classNames?.toggleIcon,\n )}\n />\n ) : (\n <EyeOff\n data-slot=\"toggleIcon\"\n className={cn(\n 'inputPassword_toggleIcon',\n iconSizes[size],\n classNames?.toggleIcon,\n )}\n />\n )}\n </button>\n ) : undefined,\n [visibilityToggle, toggleVisibility, showPassword, size, classNames],\n )\n\n return (\n <Input\n {...props}\n size={size}\n ref={ref}\n type={showPassword ? 'text' : 'password'}\n classNames={memoizedClassNames}\n rightIcon={memoizedRightIcon}\n />\n )\n },\n)\n\nPasswordInput.displayName = 'PasswordInput'\n\nexport type * from './types'\nexport default PasswordInput\n"]}