@mdigital_ui/ui 0.4.3 → 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 (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-442OQLPK.js → chunk-BGMYX7L5.js} +4 -4
  64. package/dist/chunk-BGMYX7L5.js.map +1 -0
  65. package/dist/chunk-BKLJDEUX.js +857 -0
  66. package/dist/chunk-BKLJDEUX.js.map +1 -0
  67. package/dist/{chunk-62LTLXVG.js → chunk-BS4PZPY6.js} +14 -9
  68. package/dist/chunk-BS4PZPY6.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-5CIJ7UCP.js → chunk-FU5Q4WVX.js} +5 -5
  78. package/dist/chunk-FU5Q4WVX.js.map +1 -0
  79. package/dist/{chunk-GLJDHW73.js → chunk-G6QIIWKU.js} +2 -2
  80. package/dist/chunk-G6QIIWKU.js.map +1 -0
  81. package/dist/{chunk-AOXTD7QZ.js → chunk-GOBUFGGJ.js} +9 -26
  82. package/dist/chunk-GOBUFGGJ.js.map +1 -0
  83. package/dist/{chunk-BLFXVSZU.js → chunk-HR5TGNOF.js} +3 -3
  84. package/dist/{chunk-BLFXVSZU.js.map → chunk-HR5TGNOF.js.map} +1 -1
  85. package/dist/{chunk-GPSZJWU3.js → chunk-HSMO2BR4.js} +5 -13
  86. package/dist/chunk-HSMO2BR4.js.map +1 -0
  87. package/dist/{chunk-UIVOI7HE.js → chunk-HVHQA34X.js} +15 -21
  88. package/dist/chunk-HVHQA34X.js.map +1 -0
  89. package/dist/{chunk-3QD7AQX7.js → chunk-I5AD247M.js} +9 -5
  90. package/dist/chunk-I5AD247M.js.map +1 -0
  91. package/dist/{chunk-DF2ICSNI.js → chunk-I7HJBHQU.js} +3 -3
  92. package/dist/{chunk-DF2ICSNI.js.map → chunk-I7HJBHQU.js.map} +1 -1
  93. package/dist/{chunk-NHM6DZOF.js → chunk-J2WIZULN.js} +23 -8
  94. package/dist/chunk-J2WIZULN.js.map +1 -0
  95. package/dist/{chunk-BMA4E3T6.js → chunk-JFTSWOGE.js} +9 -21
  96. package/dist/chunk-JFTSWOGE.js.map +1 -0
  97. package/dist/{chunk-G27HGKWO.js → chunk-JIXINKUJ.js} +7 -26
  98. package/dist/chunk-JIXINKUJ.js.map +1 -0
  99. package/dist/{chunk-DOI7OTYV.js → chunk-LJOQ2C5W.js} +4 -4
  100. package/dist/chunk-LJOQ2C5W.js.map +1 -0
  101. package/dist/chunk-LWYZCSX4.js +531 -0
  102. package/dist/chunk-LWYZCSX4.js.map +1 -0
  103. package/dist/{chunk-3FXOQC6P.js → chunk-LXHFGQOI.js} +3 -3
  104. package/dist/chunk-LXHFGQOI.js.map +1 -0
  105. package/dist/{chunk-W5L7C7WS.js → chunk-NMP4HY6M.js} +4 -4
  106. package/dist/chunk-NMP4HY6M.js.map +1 -0
  107. package/dist/{chunk-DPIXBBXK.js → chunk-NTCAZ2LF.js} +30 -10
  108. package/dist/chunk-NTCAZ2LF.js.map +1 -0
  109. package/dist/{chunk-VIK6UTVN.js → chunk-OGB5QPNZ.js} +10 -92
  110. package/dist/chunk-OGB5QPNZ.js.map +1 -0
  111. package/dist/{chunk-YSV5GQS7.js → chunk-OJAHIPPP.js} +21 -114
  112. package/dist/chunk-OJAHIPPP.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 +5 -2
  325. package/styles/global.css +359 -1119
  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
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/number-input/index.tsx"],"names":[],"mappings":"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","file":"chunk-X7MF3TIF.js","sourcesContent":["\"use client\";\n\nimport { cva } from \"class-variance-authority\";\nimport { Plus, Minus } from \"lucide-react\";\nimport React, { useId, useMemo, useCallback } from \"react\";\nimport { useControllable } from '../hooks/useControllable'\n\nimport { useRipple, RippleContainer } from \"../hooks/useRipple\";\nimport Spinner from \"../spinner\";\n\nimport {\n cn,\n getValidationStatus,\n iconSizes,\n statusMessageVariants,\n} from \"../utils\";\nimport type { NumberInputProps } from \"./types\";\n\nconst numberInputVariants = cva(\n \"w-full placeholder:text-text-secondary/50 rounded-md disabled:opacity-50 disabled:cursor-not-allowed read-only:bg-surface read-only:cursor-default outline-none text-text-primary transition-colors\",\n {\n variants: {\n status: {\n default: \"bg-background border border-border focus:border-primary\",\n error: \"bg-background border border-error focus:border-error\",\n warning: \"bg-background border border-warning focus:border-warning\",\n info: \"bg-background border border-info focus:border-info\",\n success: \"bg-background border border-success focus:border-success\",\n },\n size: {\n xs: \"h-(--input-height-xs) px-(--input-padding-x-xs) text-xs\",\n sm: \"h-(--input-height-sm) px-(--input-padding-x-sm) text-sm\",\n md: \"h-(--input-height-md) px-(--input-padding-x-md) text-base\",\n lg: \"h-(--input-height-lg) px-(--input-padding-x-lg) text-lg\",\n },\n fullWidth: {\n true: \"w-full\",\n false: \"max-w-full\",\n },\n controlsPosition: {\n right: \"\",\n sides: \"\",\n },\n },\n defaultVariants: {\n status: \"default\",\n size: \"md\",\n fullWidth: true,\n controlsPosition: \"right\",\n },\n },\n);\n\nconst controlButtonVariants = cva(\n \"flex items-center justify-center cursor-pointer transition-colors disabled:opacity-50 disabled:cursor-not-allowed\",\n {\n variants: {\n size: {\n xs: \"w-6 h-6\",\n sm: \"w-7 h-7\",\n md: \"w-8 h-8\",\n lg: \"w-10 h-10\",\n },\n position: {\n right: \"hover:bg-surface-hover\",\n sides: \"hover:bg-surface-hover\",\n },\n },\n defaultVariants: {\n size: \"md\",\n position: \"right\",\n },\n },\n);\n\nconst ControlButton = React.memo<React.ButtonHTMLAttributes<HTMLButtonElement> & { children: React.ReactNode }>(({ children, disabled, className, ...props }) => {\n const { ripples, onPointerDown, onKeyDown, onAnimationEnd } = useRipple(!disabled)\n return (\n <button className={cn(className, 'relative overflow-hidden')} onPointerDown={onPointerDown} onKeyDown={onKeyDown} disabled={disabled} {...props}>\n {children}\n <RippleContainer ripples={ripples} onAnimationEnd={onAnimationEnd} />\n </button>\n )\n});\n\nconst NumberInput = React.memo<NumberInputProps>(\n ({\n value,\n defaultValue,\n onChange,\n min,\n max,\n step = 1,\n precision,\n size = \"md\",\n label,\n placeholder,\n disabled = false,\n readOnly = false,\n required = false,\n controls = true,\n controlsPosition = \"right\",\n clampOnBlur = true,\n className,\n classNames,\n error,\n warning,\n info,\n success,\n helperText,\n loading = false,\n fullWidth = true,\n ref,\n id,\n name,\n }) => {\n const [currentValue, setCurrentValue] = useControllable<number | undefined>({ value, defaultValue, onChange });\n\n const uniqueId = useId();\n const inputId = id || `number-input-${uniqueId}`;\n const helperId = `number-input-helper-${uniqueId}`;\n\n // Use shared validation status utility - memoized\n const { status, message: helperMessage } = useMemo(\n () => getValidationStatus({ error, warning, info, success, helperText }),\n [error, warning, info, success, helperText],\n );\n\n // Format number to precision\n const formatValue = useCallback(\n (val: number | undefined): string => {\n if (val === undefined || isNaN(val)) return \"\";\n if (precision !== undefined) {\n return val.toFixed(precision);\n }\n return String(val);\n },\n [precision],\n );\n\n // Parse string to number\n const parseValue = useCallback((str: string): number | undefined => {\n if (str === \"\" || str === \"-\") return undefined;\n const parsed = parseFloat(str);\n return isNaN(parsed) ? undefined : parsed;\n }, []);\n\n // Clamp value to min/max\n const clampValue = useCallback(\n (val: number | undefined): number | undefined => {\n if (val === undefined) return undefined;\n let clamped = val;\n if (min !== undefined && clamped < min) clamped = min;\n if (max !== undefined && clamped > max) clamped = max;\n return clamped;\n },\n [min, max],\n );\n\n // Update value\n const updateValue = useCallback(\n (newValue: number | undefined) => {\n setCurrentValue(newValue);\n },\n [setCurrentValue],\n );\n\n // Handle input change\n const handleChange = useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n const inputValue = e.target.value;\n\n // Allow empty, minus sign, and valid numbers\n if (inputValue === \"\" || inputValue === \"-\") {\n updateValue(undefined);\n return;\n }\n\n const parsed = parseValue(inputValue);\n if (parsed === undefined) return // reject invalid input\n updateValue(parsed);\n },\n [parseValue, updateValue],\n );\n\n // Handle blur - clamp if needed\n const handleBlur = useCallback(() => {\n if (clampOnBlur && currentValue !== undefined) {\n const clamped = clampValue(currentValue);\n if (clamped !== currentValue) {\n updateValue(clamped);\n }\n }\n }, [clampOnBlur, currentValue, clampValue, updateValue]);\n\n // Increment value\n const handleIncrement = useCallback(() => {\n const newValue = (currentValue ?? 0) + step;\n const clamped = clampValue(newValue);\n updateValue(clamped);\n }, [currentValue, step, clampValue, updateValue]);\n\n // Decrement value\n const handleDecrement = useCallback(() => {\n const newValue = (currentValue ?? 0) - step;\n const clamped = clampValue(newValue);\n updateValue(clamped);\n }, [currentValue, step, clampValue, updateValue]);\n\n // Handle keyboard events\n const handleKeyDown = useCallback(\n (e: React.KeyboardEvent<HTMLInputElement>) => {\n if (readOnly || disabled) return;\n\n if (e.key === \"ArrowUp\") {\n e.preventDefault();\n handleIncrement();\n } else if (e.key === \"ArrowDown\") {\n e.preventDefault();\n handleDecrement();\n }\n },\n [readOnly, disabled, handleIncrement, handleDecrement],\n );\n\n // Check if buttons should be disabled\n const isIncrementDisabled = useMemo(() => {\n if (disabled || readOnly || loading) return true;\n if (\n max !== undefined &&\n currentValue !== undefined &&\n currentValue >= max\n )\n return true;\n return false;\n }, [disabled, readOnly, loading, max, currentValue]);\n\n const isDecrementDisabled = useMemo(() => {\n if (disabled || readOnly || loading) return true;\n if (\n min !== undefined &&\n currentValue !== undefined &&\n currentValue <= min\n )\n return true;\n return false;\n }, [disabled, readOnly, loading, min, currentValue]);\n\n // Memoize aria-describedby\n const ariaDescribedBy = useMemo(() => {\n return helperMessage ? helperId : undefined;\n }, [helperMessage, helperId]);\n\n // Memoized className computations\n const rootClass = useMemo(\n () =>\n cn(\n \"number-input_root\",\n \"w-full flex flex-col relative\",\n !fullWidth && \"inline-block\",\n classNames?.root,\n ),\n [fullWidth, classNames?.root],\n );\n\n const labelClass = useMemo(\n () =>\n cn(\n \"number-input_label\",\n \"text-sm font-medium text-text-secondary mb-0.5\",\n classNames?.label,\n ),\n [classNames?.label],\n );\n\n const wrapperClass = useMemo(\n () =>\n cn(\n \"number-input_wrapper\",\n \"relative flex items-center\",\n loading && \"opacity-50 cursor-not-allowed\",\n controlsPosition === \"sides\" && \"gap-1\",\n classNames?.wrapper,\n ),\n [loading, controlsPosition, classNames?.wrapper],\n );\n\n const inputClass = useMemo(\n () =>\n cn(\n \"number-input_input\",\n numberInputVariants({ status, size, fullWidth, controlsPosition }),\n controls && controlsPosition === \"right\" && \"pr-16\",\n controls && controlsPosition === \"sides\" && \"text-center\",\n className,\n classNames?.input,\n ),\n [\n status,\n size,\n fullWidth,\n controlsPosition,\n controls,\n className,\n classNames?.input,\n ],\n );\n\n const controlsClass = useMemo(\n () =>\n cn(\n \"number-input_controls\",\n \"flex\",\n controlsPosition === \"right\" &&\n \"absolute right-0 top-0 h-full border-l border-border\",\n controlsPosition === \"sides\" && \"gap-1\",\n classNames?.controls,\n ),\n [controlsPosition, classNames?.controls],\n );\n\n const helperClass = useMemo(\n () =>\n cn(\n \"number-input_helper\",\n statusMessageVariants({ status }),\n \"mt-0.5\",\n status === \"error\" ? classNames?.error : classNames?.helper,\n ),\n [status, classNames?.error, classNames?.helper],\n );\n\n const iconSize = iconSizes[size];\n\n const incrementButton = (\n <ControlButton\n type=\"button\"\n onClick={handleIncrement}\n disabled={isIncrementDisabled}\n data-slot=\"increment\"\n className={cn(\n \"number-input_increment h-full!\",\n controlButtonVariants({ size, position: controlsPosition }),\n controlsPosition === \"right\" && \"\",\n classNames?.increment,\n )}\n aria-label=\"Increment value\"\n tabIndex={-1}\n >\n <Plus className={iconSize} aria-hidden=\"true\" />\n </ControlButton>\n );\n\n const decrementButton = (\n <ControlButton\n type=\"button\"\n onClick={handleDecrement}\n disabled={isDecrementDisabled}\n data-slot=\"decrement\"\n className={cn(\n \"number-input_decrement h-full!\",\n controlButtonVariants({ size, position: controlsPosition }),\n controlsPosition === \"right\" && \"border-r border-border\",\n classNames?.decrement,\n )}\n aria-label=\"Decrement value\"\n tabIndex={-1}\n >\n <Minus className={iconSize} aria-hidden=\"true\" />\n </ControlButton>\n );\n\n const inputElement = (\n <div data-slot=\"wrapper\" className={wrapperClass}>\n {controls && controlsPosition === \"sides\" && decrementButton}\n <input\n ref={ref}\n id={inputId}\n name={name}\n type=\"text\"\n inputMode=\"decimal\"\n data-slot=\"input\"\n className={inputClass}\n value={formatValue(currentValue)}\n onChange={handleChange}\n onBlur={handleBlur}\n onKeyDown={handleKeyDown}\n disabled={disabled}\n readOnly={readOnly}\n placeholder={placeholder}\n aria-invalid={status === \"error\"}\n aria-describedby={ariaDescribedBy}\n aria-valuemin={min}\n aria-valuemax={max}\n aria-valuenow={currentValue}\n />\n {controls && controlsPosition === \"right\" && (\n <div data-slot=\"controls\" className={controlsClass}>\n <div className=\"flex flex-row h-full\">\n {decrementButton}\n {incrementButton}\n </div>\n </div>\n )}\n {controls && controlsPosition === \"sides\" && incrementButton}\n {loading && (\n <div className=\"absolute right-3 flex items-center\">\n <Spinner aria-hidden=\"true\" />\n </div>\n )}\n </div>\n );\n\n return (\n <div data-slot=\"root\" className={rootClass}>\n {label && (\n <label htmlFor={inputId} data-slot=\"label\" className={labelClass}>\n {label}\n {required && <span className=\"text-error ml-1\">*</span>}\n </label>\n )}\n {inputElement}\n {helperMessage && (\n <p id={helperId} data-slot=\"helper\" className={helperClass}>\n {helperMessage}\n </p>\n )}\n </div>\n );\n },\n);\n\nNumberInput.displayName = \"NumberInput\";\n\nexport type * from \"./types\";\nexport default NumberInput;\n"]}
@@ -1,25 +1,12 @@
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 } from './chunk-RAS6HUEI.js';
4
4
  import { cva } from 'class-variance-authority';
5
5
  import React, { useState, useCallback } from 'react';
6
6
  import { jsxs, jsx } from 'react/jsx-runtime';
7
7
 
8
8
  var toggleGroupVariants = cva(
9
- "inline-flex border rounded-md overflow-hidden",
10
- {
11
- variants: {
12
- size: {
13
- xs: "gap-0",
14
- sm: "gap-0",
15
- md: "gap-0",
16
- lg: "gap-0"
17
- }
18
- },
19
- defaultVariants: {
20
- size: "md"
21
- }
22
- }
9
+ "inline-flex border rounded-md overflow-hidden"
23
10
  );
24
11
  var toggleItemVariants = cva(
25
12
  "font-medium transition-colors cursor-pointer border-r last:border-r-0 focus:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:ring-offset-background",
@@ -75,7 +62,7 @@ var ToggleGroup = React.memo(
75
62
  ref
76
63
  }) => {
77
64
  const [internalValue, setInternalValue] = useState(
78
- defaultValue || (multiple ? [] : options[0]?.value || "")
65
+ defaultValue || (multiple ? [] : options?.[0]?.value || "")
79
66
  );
80
67
  const value = controlledValue !== void 0 ? controlledValue : internalValue;
81
68
  const handleToggleClick = useCallback(
@@ -115,7 +102,7 @@ var ToggleGroup = React.memo(
115
102
  role: "group",
116
103
  className: cn(
117
104
  "toggleGroup_root",
118
- toggleGroupVariants({ size }),
105
+ toggleGroupVariants(),
119
106
  "border-border bg-background",
120
107
  classNames?.root,
121
108
  className,
@@ -159,5 +146,5 @@ ToggleGroup.displayName = "ToggleGroup";
159
146
  var toggle_group_default = ToggleGroup;
160
147
 
161
148
  export { ToggleGroup, toggle_group_default };
162
- //# sourceMappingURL=chunk-SUNCSPDF.js.map
163
- //# sourceMappingURL=chunk-SUNCSPDF.js.map
149
+ //# sourceMappingURL=chunk-XAM5EKOS.js.map
150
+ //# sourceMappingURL=chunk-XAM5EKOS.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/toggle-group/index.tsx"],"names":[],"mappings":"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","file":"chunk-XAM5EKOS.js","sourcesContent":["'use client'\n\nimport { cva } from 'class-variance-authority'\nimport React, { useState, useCallback } from 'react'\n\nimport { useRipple, RippleContainer } from '../hooks/useRipple'\nimport { cn } from '../utils'\nimport { colorVars } from '../variants'\nimport type { ToggleGroupProps } from './types'\n\nconst toggleGroupVariants = cva(\n 'inline-flex border rounded-md overflow-hidden',\n)\n\nconst toggleItemVariants = cva(\n 'font-medium transition-colors cursor-pointer border-r last:border-r-0 focus:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:ring-offset-background',\n {\n variants: {\n size: {\n xs: 'h-(--toggle-height-xs) px-(--toggle-padding-x-xs) text-xs',\n sm: 'h-(--toggle-height-sm) px-(--toggle-padding-x-sm) text-sm',\n md: 'h-(--toggle-height-md) px-(--toggle-padding-x-md) text-base',\n lg: 'h-(--toggle-height-lg) px-(--toggle-padding-x-lg) text-lg',\n },\n },\n defaultVariants: {\n size: 'md',\n },\n },\n)\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 ToggleItemButton = React.memo<React.ButtonHTMLAttributes<HTMLButtonElement> & { children: React.ReactNode }>(({ children, disabled, className, ...props }) => {\n const { ripples, onPointerDown, onKeyDown, onAnimationEnd } = useRipple(!disabled)\n return (\n <button className={cn(className, 'relative overflow-hidden')} onPointerDown={onPointerDown} onKeyDown={onKeyDown} disabled={disabled} {...props}>\n {children}\n <RippleContainer ripples={ripples} onAnimationEnd={onAnimationEnd} />\n </button>\n )\n})\n\nexport const ToggleGroup = React.memo<ToggleGroupProps>(\n ({\n options,\n value: controlledValue,\n defaultValue,\n multiple = false,\n color = 'primary',\n size = 'md',\n variant = 'default',\n onChange,\n fullWidth = false,\n disabled = false,\n className,\n centered = false,\n classNames,\n ref,\n }) => {\n const [internalValue, setInternalValue] = useState<string | string[]>(\n defaultValue || (multiple ? [] : options?.[0]?.value || ''),\n )\n\n const value =\n controlledValue !== undefined ? controlledValue : internalValue\n\n const handleToggleClick = useCallback(\n (e: React.MouseEvent<HTMLButtonElement>) => {\n const optionValue = e.currentTarget.dataset.value\n const optionDisabled = e.currentTarget.dataset.disabled === 'true'\n\n if (!optionValue || disabled || optionDisabled) return\n\n setInternalValue((prevValue) => {\n const currentValues = Array.isArray(prevValue) ? prevValue : []\n let newValue: string | string[]\n\n if (multiple) {\n if (currentValues.includes(optionValue)) {\n newValue = currentValues.filter((v) => v !== optionValue)\n } else {\n newValue = [...currentValues, optionValue]\n }\n } else {\n newValue = optionValue\n }\n\n onChange?.(newValue)\n return controlledValue !== undefined ? prevValue : newValue\n })\n },\n [disabled, multiple, onChange, controlledValue],\n )\n\n const isActive = (optionValue: string) => {\n if (multiple && Array.isArray(value)) {\n return value.includes(optionValue)\n }\n return optionValue === value\n }\n\n return (\n <div\n data-slot=\"root\"\n ref={ref}\n role=\"group\"\n className={cn(\n 'toggleGroup_root',\n toggleGroupVariants(),\n 'border-border bg-background',\n classNames?.root,\n className,\n fullWidth && 'grid w-full',\n )}\n style={fullWidth ? { gridTemplateColumns: `repeat(${options.length}, 1fr)` } : undefined}\n >\n {options.map((option) => {\n const active = isActive(option.value)\n const isDisabled = disabled || option.disabled\n\n return (\n <ToggleItemButton\n type=\"button\"\n key={option.value}\n className={cn(\n 'toggleGroup_item',\n toggleItemVariants({ size }),\n getToggleClasses(color, variant, active),\n\n 'border-border flex items-center justify-center',\n isDisabled && 'opacity-50 cursor-not-allowed',\n centered && 'text-center',\n classNames?.item,\n )}\n data-value={option.value}\n data-disabled={option.disabled}\n onClick={handleToggleClick}\n disabled={isDisabled}\n aria-pressed={active}\n >\n <div className=\"flex items-center gap-2\">\n {option.icon}\n {option.label}\n </div>\n </ToggleItemButton>\n )\n })}\n </div>\n )\n },\n)\n\nToggleGroup.displayName = 'ToggleGroup'\n\nexport type * from './types'\nexport default ToggleGroup\n"]}
@@ -1,4 +1,4 @@
1
- import { Spinner } from './chunk-GGQF5PQN.js';
1
+ import { Spinner } from './chunk-RRPMZYVN.js';
2
2
  import { cn } from './chunk-RAS6HUEI.js';
3
3
  import React from 'react';
4
4
  import { jsx } from 'react/jsx-runtime';
@@ -18,7 +18,7 @@ var FetchingOverlay = React.memo(({
18
18
  className: cn(
19
19
  "fetchingOverlay_root",
20
20
  "absolute inset-0 flex items-center justify-center transition-opacity duration-300",
21
- fullscreen && "fixed w-full h-screen z-50",
21
+ fullscreen && "fixed w-full h-screen z-[var(--z-overlay)]",
22
22
  isFetching ? "opacity-100" : "opacity-0 pointer-events-none",
23
23
  className
24
24
  ),
@@ -40,5 +40,5 @@ FetchingOverlay.displayName = "FetchingOverlay";
40
40
  var fetching_overlay_default = FetchingOverlay;
41
41
 
42
42
  export { fetching_overlay_default };
43
- //# sourceMappingURL=chunk-XKDN5PWJ.js.map
44
- //# sourceMappingURL=chunk-XKDN5PWJ.js.map
43
+ //# sourceMappingURL=chunk-XBXPY7U3.js.map
44
+ //# sourceMappingURL=chunk-XBXPY7U3.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/fetching-overlay/index.tsx"],"names":[],"mappings":";;;;;AAcA,IAAM,eAAA,GAAkB,KAAA,CAAM,IAAA,CAA2B,CAAC;AAAA,EACxD,UAAA;AAAA,EACA,IAAA,GAAO,IAAA;AAAA,EACP,UAAA,GAAa,IAAA;AAAA,EACb,eAAA,GAAkB,EAAA;AAAA,EAClB,SAAA;AAAA,EACA,GAAG;AACL,CAAA,KAAM;AACJ,EAAA,uBACE,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,WAAA,EAAU,MAAA;AAAA,MACV,SAAA,EAAW,EAAA;AAAA,QACT,sBAAA;AAAA,QACA,mFAAA;AAAA,QACA,UAAA,IAAc,4BAAA;AAAA,QACd,aAAa,aAAA,GAAgB,+BAAA;AAAA,QAC7B;AAAA,OACF;AAAA,MACA,KAAA,EAAO,aAAa,EAAE,eAAA,EAAiB,iBAAiB,eAAA,GAAkB,GAAG,KAAI,GAAI,MAAA;AAAA,MACrF,IAAA,EAAK,QAAA;AAAA,MACL,WAAA,EAAW,UAAA;AAAA,MACX,YAAA,EAAY,aAAa,iBAAA,GAAoB,MAAA;AAAA,MAE5C,QAAA,EAAA,UAAA,oBACC,GAAA;AAAA,QAAC,OAAA;AAAA,QAAA;AAAA,UACC,IAAA;AAAA,UACC,GAAG;AAAA;AAAA;AACN;AAAA,GAEJ;AAEJ,CAAC,CAAA;AAED,eAAA,CAAgB,WAAA,GAAc,iBAAA;AAE9B,IAAO,wBAAA,GAAQ","file":"chunk-XKDN5PWJ.js","sourcesContent":["'use client'\n\nimport React from 'react'\n\nimport { Spinner } from '../spinner'\nimport { SpinnerProps } from '../spinner/types'\nimport { cn } from '../utils'\n\nexport interface FetchingOverlayProps extends SpinnerProps {\n isFetching: boolean\n fullscreen?: boolean\n backdropOpacity?: number\n}\n\nconst FetchingOverlay = React.memo<FetchingOverlayProps>(({\n isFetching,\n size = 'lg',\n fullscreen = true,\n backdropOpacity = 30,\n className,\n ...rest\n}) => {\n return (\n <div\n data-slot=\"root\"\n className={cn(\n 'fetchingOverlay_root',\n 'absolute inset-0 flex items-center justify-center transition-opacity duration-300',\n fullscreen && 'fixed w-full h-screen z-50',\n isFetching ? 'opacity-100' : 'opacity-0 pointer-events-none',\n className,\n )}\n style={isFetching ? { backgroundColor: `rgba(0, 0, 0, ${backdropOpacity / 100})` } : undefined}\n role=\"status\"\n aria-busy={isFetching}\n aria-label={isFetching ? \"Loading content\" : undefined}\n >\n {isFetching && (\n <Spinner\n size={size}\n {...rest}\n />\n )}\n </div>\n )\n})\n\nFetchingOverlay.displayName = 'FetchingOverlay'\n\nexport default FetchingOverlay\n"]}
1
+ {"version":3,"sources":["../src/fetching-overlay/index.tsx"],"names":[],"mappings":";;;;;AAcA,IAAM,eAAA,GAAkB,KAAA,CAAM,IAAA,CAA2B,CAAC;AAAA,EACxD,UAAA;AAAA,EACA,IAAA,GAAO,IAAA;AAAA,EACP,UAAA,GAAa,IAAA;AAAA,EACb,eAAA,GAAkB,EAAA;AAAA,EAClB,SAAA;AAAA,EACA,GAAG;AACL,CAAA,KAAM;AACJ,EAAA,uBACE,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,WAAA,EAAU,MAAA;AAAA,MACV,SAAA,EAAW,EAAA;AAAA,QACT,sBAAA;AAAA,QACA,mFAAA;AAAA,QACA,UAAA,IAAc,4CAAA;AAAA,QACd,aAAa,aAAA,GAAgB,+BAAA;AAAA,QAC7B;AAAA,OACF;AAAA,MACA,KAAA,EAAO,aAAa,EAAE,eAAA,EAAiB,iBAAiB,eAAA,GAAkB,GAAG,KAAI,GAAI,MAAA;AAAA,MACrF,IAAA,EAAK,QAAA;AAAA,MACL,WAAA,EAAW,UAAA;AAAA,MACX,YAAA,EAAY,aAAa,iBAAA,GAAoB,MAAA;AAAA,MAE5C,QAAA,EAAA,UAAA,oBACC,GAAA;AAAA,QAAC,OAAA;AAAA,QAAA;AAAA,UACC,IAAA;AAAA,UACC,GAAG;AAAA;AAAA;AACN;AAAA,GAEJ;AAEJ,CAAC,CAAA;AAED,eAAA,CAAgB,WAAA,GAAc,iBAAA;AAE9B,IAAO,wBAAA,GAAQ","file":"chunk-XBXPY7U3.js","sourcesContent":["'use client'\n\nimport React from 'react'\n\nimport { Spinner } from '../spinner'\nimport { SpinnerProps } from '../spinner/types'\nimport { cn } from '../utils'\n\nexport interface FetchingOverlayProps extends SpinnerProps {\n isFetching: boolean\n fullscreen?: boolean\n backdropOpacity?: number\n}\n\nconst FetchingOverlay = React.memo<FetchingOverlayProps>(({\n isFetching,\n size = 'lg',\n fullscreen = true,\n backdropOpacity = 30,\n className,\n ...rest\n}) => {\n return (\n <div\n data-slot=\"root\"\n className={cn(\n 'fetchingOverlay_root',\n 'absolute inset-0 flex items-center justify-center transition-opacity duration-300',\n fullscreen && 'fixed w-full h-screen z-[var(--z-overlay)]',\n isFetching ? 'opacity-100' : 'opacity-0 pointer-events-none',\n className,\n )}\n style={isFetching ? { backgroundColor: `rgba(0, 0, 0, ${backdropOpacity / 100})` } : undefined}\n role=\"status\"\n aria-busy={isFetching}\n aria-label={isFetching ? \"Loading content\" : undefined}\n >\n {isFetching && (\n <Spinner\n size={size}\n {...rest}\n />\n )}\n </div>\n )\n})\n\nFetchingOverlay.displayName = 'FetchingOverlay'\n\nexport default FetchingOverlay\n"]}
@@ -37,9 +37,9 @@ var applyTheme = (theme, disableTransitionOnChange) => {
37
37
  document.head.removeChild(css);
38
38
  }, 1);
39
39
  }
40
- root.setAttribute("data-theme", theme);
41
40
  root.classList.remove("light", "dark");
42
41
  root.classList.add(theme);
42
+ root.setAttribute("data-mode", theme);
43
43
  };
44
44
  var ThemeProvider = ({
45
45
  children,
@@ -116,12 +116,12 @@ var themeScript = `
116
116
  resolved = window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light';
117
117
  }
118
118
 
119
- document.documentElement.setAttribute('data-theme', resolved);
120
119
  document.documentElement.classList.add(resolved);
120
+ document.documentElement.setAttribute('data-mode', resolved);
121
121
  } catch (e) {}
122
122
  })();
123
123
  `;
124
124
 
125
125
  export { ThemeProvider, themeScript, useTheme };
126
- //# sourceMappingURL=chunk-5PUATOLR.js.map
127
- //# sourceMappingURL=chunk-5PUATOLR.js.map
126
+ //# sourceMappingURL=chunk-XCK62GVU.js.map
127
+ //# sourceMappingURL=chunk-XCK62GVU.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/theme/ThemeProvider.tsx"],"names":[],"mappings":"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","file":"chunk-XCK62GVU.js","sourcesContent":["'use client'\n\n/**\n * ThemeProvider\n * Production-ready theme management with React context\n *\n * Dark/light mode: controlled via `.dark` / `.light` class on <html>\n * Theme presets: controlled via `data-theme` attribute on <html> (e.g. data-theme=\"corporate\")\n *\n * These are independent — you can combine any preset with any mode:\n * <html class=\"dark\" data-theme=\"corporate\">\n */\n\nimport React, {\n createContext,\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useState,\n} from 'react';\nimport type { Theme, ThemeProviderProps, ThemeProviderState } from './types';\n\nconst ThemeProviderContext = createContext<ThemeProviderState | undefined>(\n undefined\n);\n\nconst MEDIA_QUERY = '(prefers-color-scheme: dark)';\n\n/**\n * Get stored theme from localStorage (SSR-safe)\n */\nconst getStoredTheme = (storageKey: string): Theme | null => {\n if (typeof window === 'undefined') return null;\n try {\n return (localStorage.getItem(storageKey) as Theme) || null;\n } catch {\n return null;\n }\n};\n\n/**\n * Store theme to localStorage (SSR-safe)\n */\nconst setStoredTheme = (storageKey: string, theme: Theme): void => {\n if (typeof window === 'undefined') return;\n try {\n localStorage.setItem(storageKey, theme);\n } catch {\n // Silently fail if localStorage is not available\n }\n};\n\n/**\n * Get system theme preference (SSR-safe)\n */\nconst getSystemTheme = (): 'light' | 'dark' => {\n if (typeof window === 'undefined') return 'light';\n return window.matchMedia(MEDIA_QUERY).matches ? 'dark' : 'light';\n};\n\n/**\n * Apply theme mode to document (SSR-safe)\n * Only touches the class (.dark / .light) and data-mode attribute.\n * Does NOT touch data-theme — that's reserved for preset names.\n */\nconst applyTheme = (\n theme: 'light' | 'dark',\n disableTransitionOnChange: boolean\n): void => {\n if (typeof window === 'undefined') return;\n\n const root = document.documentElement;\n\n // Disable transitions temporarily if requested\n if (disableTransitionOnChange) {\n const css = document.createElement('style');\n css.textContent = '* { transition: none !important; }';\n document.head.appendChild(css);\n\n // Force reflow\n void root.offsetHeight;\n\n setTimeout(() => {\n document.head.removeChild(css);\n }, 1);\n }\n\n // Apply mode via class only — data-theme is reserved for presets\n root.classList.remove('light', 'dark');\n root.classList.add(theme);\n // Also set data-mode for CSS selectors that prefer attribute-based targeting\n root.setAttribute('data-mode', theme);\n};\n\n/**\n * ThemeProvider Component\n * Provides theme context and manages theme state with persistence\n */\nexport const ThemeProvider: React.FC<ThemeProviderProps> = ({\n children,\n defaultTheme = 'system',\n storageKey = 'ui-theme',\n disableTransitionOnChange = false,\n // enableStrictMode is defined in props but reserved for future use\n}) => {\n // Initialize theme state (SSR-safe)\n const [theme, setThemeState] = useState<Theme>(() => {\n if (typeof window === 'undefined') return defaultTheme;\n const stored = getStoredTheme(storageKey);\n return stored ?? defaultTheme;\n });\n\n const [resolvedTheme, setResolvedTheme] = useState<'light' | 'dark'>(() => {\n if (typeof window === 'undefined') return 'light';\n const stored = getStoredTheme(storageKey) ?? defaultTheme;\n if (stored === 'system') return getSystemTheme();\n return stored;\n });\n\n // Handle theme changes\n const setTheme = useCallback(\n (newTheme: Theme) => {\n setThemeState(newTheme);\n setStoredTheme(storageKey, newTheme);\n\n const resolved = newTheme === 'system' ? getSystemTheme() : newTheme;\n setResolvedTheme(resolved);\n applyTheme(resolved, disableTransitionOnChange);\n },\n [storageKey, disableTransitionOnChange]\n );\n\n // Listen for system theme changes\n useEffect(() => {\n if (theme !== 'system') return;\n\n const mediaQuery = window.matchMedia(MEDIA_QUERY);\n\n const handleChange = (e: MediaQueryListEvent | MediaQueryList) => {\n const systemTheme = e.matches ? 'dark' : 'light';\n setResolvedTheme(systemTheme);\n applyTheme(systemTheme, disableTransitionOnChange);\n };\n\n // Initial check\n handleChange(mediaQuery);\n\n // Modern browsers\n if (mediaQuery.addEventListener) {\n mediaQuery.addEventListener('change', handleChange);\n return () => mediaQuery.removeEventListener('change', handleChange);\n }\n\n // Legacy browsers\n mediaQuery.addListener(handleChange);\n return () => mediaQuery.removeListener(handleChange);\n }, [theme, disableTransitionOnChange]);\n\n // Apply initial theme on mount (client-side only)\n useEffect(() => {\n applyTheme(resolvedTheme, false);\n }, [resolvedTheme]);\n\n // Memoize context value\n const value = useMemo<ThemeProviderState>(\n () => ({\n theme,\n resolvedTheme,\n setTheme,\n }),\n [theme, resolvedTheme, setTheme]\n );\n\n return (\n <ThemeProviderContext.Provider value={value}>\n {children}\n </ThemeProviderContext.Provider>\n );\n};\n\n/**\n * useTheme Hook\n * Access theme context from any component\n *\n * @throws {Error} When used outside ThemeProvider (in strict mode)\n * @returns {ThemeProviderState} Theme state and setTheme function\n *\n * @example\n * ```tsx\n * const { theme, setTheme, resolvedTheme } = useTheme();\n *\n * // Current theme setting\n * console.log(theme); // 'light' | 'dark' | 'system'\n *\n * // Resolved theme (actual theme being displayed)\n * console.log(resolvedTheme); // 'light' | 'dark'\n *\n * // Change theme\n * setTheme('dark');\n * ```\n */\nexport const useTheme = (): ThemeProviderState => {\n const context = useContext(ThemeProviderContext);\n\n if (context === undefined) {\n throw new Error('useTheme must be used within a ThemeProvider');\n }\n\n return context;\n};\n\n/**\n * Script to inject in <head> for SSR apps to prevent flash of unstyled content.\n * Place this in your HTML template before any styles.\n *\n * Only sets class and data-mode — does NOT touch data-theme (preset).\n *\n * @example\n * ```html\n * <script dangerouslySetInnerHTML={{ __html: themeScript }} />\n * ```\n */\nexport const themeScript = `\n(function() {\n try {\n var storageKey = 'ui-theme';\n var theme = localStorage.getItem(storageKey) || 'system';\n var resolved = theme;\n\n if (theme === 'system') {\n resolved = window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light';\n }\n\n document.documentElement.classList.add(resolved);\n document.documentElement.setAttribute('data-mode', resolved);\n } catch (e) {}\n})();\n`;\n"]}
@@ -1,3 +1,4 @@
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 { ExternalLink } from 'lucide-react';
@@ -5,19 +6,10 @@ import React from 'react';
5
6
  import { jsxs, jsx } from 'react/jsx-runtime';
6
7
 
7
8
  var linkVariants = cva(
8
- "inline-flex items-center gap-1 font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary focus-visible:ring-offset-2 focus-visible:ring-offset-background",
9
+ "inline-flex items-center gap-1 font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-slot focus-visible:ring-offset-2 focus-visible:ring-offset-background text-slot hover:text-slot-80",
9
10
  {
10
11
  variants: {
11
- color: {
12
- default: "text-text-primary hover:text-text-primary/80",
13
- primary: "text-primary hover:text-primary/80",
14
- secondary: "text-secondary hover:text-secondary/80",
15
- accent: "text-accent hover:text-accent/80",
16
- success: "text-success hover:text-success/80",
17
- error: "text-error hover:text-error/80",
18
- warning: "text-warning hover:text-warning/80",
19
- info: "text-info hover:text-info/80"
20
- },
12
+ color: colorVars,
21
13
  size: {
22
14
  xs: "text-xs",
23
15
  sm: "text-sm",
@@ -141,5 +133,5 @@ Link.displayName = "Link";
141
133
  var link_default = Link;
142
134
 
143
135
  export { link_default };
144
- //# sourceMappingURL=chunk-AEPBQO7U.js.map
145
- //# sourceMappingURL=chunk-AEPBQO7U.js.map
136
+ //# sourceMappingURL=chunk-XMBZBXXS.js.map
137
+ //# sourceMappingURL=chunk-XMBZBXXS.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/link/index.tsx"],"names":[],"mappings":"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","file":"chunk-XMBZBXXS.js","sourcesContent":["\"use client\";\n\nimport { cva } from \"class-variance-authority\";\nimport { ExternalLink } from \"lucide-react\";\nimport React from \"react\";\n\nimport { cn, iconSizes } from \"../utils\";\nimport { colorVars } from \"../variants\";\nimport type { LinkProps, LinkSize } from \"./types\";\n\n/**\n * Link variants\n */\nconst linkVariants = cva(\n \"inline-flex items-center gap-1 font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-slot focus-visible:ring-offset-2 focus-visible:ring-offset-background text-slot hover:text-slot-80\",\n {\n variants: {\n color: colorVars,\n size: {\n xs: \"text-xs\",\n sm: \"text-sm\",\n md: \"text-base\",\n lg: \"text-lg\",\n },\n underline: {\n always: \"underline\",\n hover: \"no-underline hover:underline\",\n none: \"no-underline\",\n },\n disabled: {\n true: \"opacity-50 pointer-events-none cursor-not-allowed\",\n false: \"cursor-pointer\",\n },\n },\n defaultVariants: {\n color: \"default\",\n size: \"md\",\n underline: \"hover\",\n disabled: false,\n },\n },\n);\n\n/**\n * Link Component\n */\nconst Link = React.memo<LinkProps>(({\n children,\n color = \"default\",\n size = \"md\",\n underline = \"hover\",\n external = false,\n showExternalIcon = true,\n disabled = false,\n leftIcon,\n rightIcon,\n className,\n classNames,\n href,\n ref,\n onClick,\n ...props\n}) => {\n const handleClick = (e: React.MouseEvent<HTMLAnchorElement>) => {\n if (disabled) {\n e.preventDefault();\n return;\n }\n onClick?.(e);\n };\n\n const externalProps = external\n ? {\n target: \"_blank\",\n rel: \"noopener noreferrer\",\n }\n : {};\n\n const showExternalIconRendered = external && showExternalIcon;\n\n return (\n <a\n ref={ref}\n href={disabled ? undefined : href}\n className={cn(\n \"link_root\",\n (leftIcon || rightIcon) && \"align-top\",\n linkVariants({\n color,\n size,\n underline,\n disabled,\n }),\n classNames?.root,\n className,\n )}\n onClick={handleClick}\n aria-disabled={disabled || undefined}\n data-slot=\"root\"\n {...externalProps}\n {...props}\n >\n {leftIcon && (\n <span\n className={cn(\n \"link_icon\",\n \"inline-flex items-center justify-center shrink-0\",\n iconSizes[size as LinkSize],\n classNames?.icon,\n )}\n data-slot=\"icon\"\n >\n {leftIcon}\n </span>\n )}\n {children}\n {rightIcon && (\n <span\n className={cn(\n \"link_icon\",\n \"inline-flex items-center justify-center shrink-0\",\n iconSizes[size as LinkSize],\n classNames?.icon,\n )}\n data-slot=\"icon\"\n >\n {rightIcon}\n </span>\n )}\n {showExternalIconRendered && (\n <ExternalLink\n className={cn(\n \"link_externalIcon\",\n iconSizes[size as LinkSize],\n classNames?.externalIcon,\n )}\n aria-label=\"Opens in new tab\"\n data-slot=\"externalIcon\"\n />\n )}\n </a>\n );\n});\n\nLink.displayName = \"Link\";\n\nexport type * from \"./types\";\nexport default Link;\n"]}
@@ -1,6 +1,8 @@
1
1
  import { useSelectBase } from './chunk-HJITFPBT.js';
2
- import { Popover, PopoverTrigger, PopoverContent } from './chunk-LM6CJZX5.js';
3
- import { spinner_default } from './chunk-GGQF5PQN.js';
2
+ import { useControllable } from './chunk-PQOIW5CM.js';
3
+ import { Popover, PopoverTrigger, PopoverContent } from './chunk-ROQGBDET.js';
4
+ import { spinner_default } from './chunk-RRPMZYVN.js';
5
+ import { colorVars } from './chunk-G6QIIWKU.js';
4
6
  import { cn, iconSizes } from './chunk-RAS6HUEI.js';
5
7
  import { ChevronUp, Check, ChevronDown, X, Search } from 'lucide-react';
6
8
  import React from 'react';
@@ -37,14 +39,14 @@ var multiSelectTriggerVariants = cva(
37
39
  }
38
40
  );
39
41
  cva(
40
- "absolute z-50 mt-1 overflow-auto rounded-md border border-border bg-background"
42
+ "absolute z-[var(--z-dropdown)] mt-1 overflow-auto rounded-md border border-border bg-background"
41
43
  );
42
44
  var multiSelectOptionVariants = cva(
43
45
  "relative cursor-pointer select-none px-3 py-2 text-text-primary",
44
46
  {
45
47
  variants: {
46
48
  selected: {
47
- true: "bg-primary/10 text-primary font-medium",
49
+ true: "bg-slot-10 text-slot font-medium",
48
50
  false: "hover:bg-surface"
49
51
  },
50
52
  disabled: {
@@ -88,26 +90,16 @@ var MultiSelect = React.memo(
88
90
  ref,
89
91
  ...props
90
92
  }) => {
91
- const [internalValue, setInternalValue] = React.useState(
92
- defaultValue ?? []
93
- );
93
+ const [controlledVal, setCurrentValue] = useControllable({ value, defaultValue: defaultValue ?? [], onChange });
94
+ const currentValue = controlledVal ?? [];
94
95
  const [visibleChipsCount, setVisibleChipsCount] = React.useState(maxChipsVisible);
95
- const currentValue = value !== void 0 ? value : internalValue;
96
96
  const handleSelect = React.useCallback(
97
97
  (optionValue) => {
98
- if (value === void 0) {
99
- setInternalValue((prev) => {
100
- const newValue = prev.includes(optionValue) ? prev.filter((v) => v !== optionValue) : [...prev, optionValue];
101
- onChange?.(newValue);
102
- return newValue;
103
- });
104
- } else {
105
- const newValue = currentValue.includes(optionValue) ? currentValue.filter((v) => v !== optionValue) : [...currentValue, optionValue];
106
- onChange?.(newValue);
107
- }
98
+ const newValue = (currentValue || []).includes(optionValue) ? (currentValue || []).filter((v) => v !== optionValue) : [...currentValue || [], optionValue];
99
+ setCurrentValue(newValue);
108
100
  setHighlightedIndex(-1);
109
101
  },
110
- [value, onChange, currentValue]
102
+ [currentValue, setCurrentValue]
111
103
  );
112
104
  const {
113
105
  // State
@@ -164,23 +156,17 @@ var MultiSelect = React.memo(
164
156
  const handleRemoveChip = React.useCallback(
165
157
  (optionValue, e) => {
166
158
  e.stopPropagation();
167
- const newValue = currentValue.filter((v) => v !== optionValue);
168
- if (value === void 0) {
169
- setInternalValue(newValue);
170
- }
171
- onChange?.(newValue);
159
+ const newValue = (currentValue || []).filter((v) => v !== optionValue);
160
+ setCurrentValue(newValue);
172
161
  },
173
- [value, onChange, currentValue]
162
+ [currentValue, setCurrentValue]
174
163
  );
175
164
  const handleClear = React.useCallback(
176
165
  (e) => {
177
166
  e.stopPropagation();
178
- if (value === void 0) {
179
- setInternalValue([]);
180
- }
181
- onChange?.([]);
167
+ setCurrentValue([]);
182
168
  },
183
- [value, onChange]
169
+ [setCurrentValue]
184
170
  );
185
171
  const handleInputKeyDown = React.useCallback(
186
172
  (e) => {
@@ -345,7 +331,7 @@ var MultiSelect = React.memo(
345
331
  isSelected && /* @__PURE__ */ jsx("span", { className: "absolute right-3 top-1/2 -translate-y-1/2", children: /* @__PURE__ */ jsx(
346
332
  Check,
347
333
  {
348
- className: cn("text-primary", iconSizes[size])
334
+ className: cn("text-slot", iconSizes[size])
349
335
  }
350
336
  ) })
351
337
  ]
@@ -397,7 +383,7 @@ var MultiSelect = React.memo(
397
383
  isSelected && /* @__PURE__ */ jsx("span", { className: "absolute right-3 top-1/2 -translate-y-1/2", children: /* @__PURE__ */ jsx(
398
384
  Check,
399
385
  {
400
- className: cn("text-primary", iconSizes[size])
386
+ className: cn("text-slot", iconSizes[size])
401
387
  }
402
388
  ) })
403
389
  ]
@@ -454,7 +440,7 @@ var MultiSelect = React.memo(
454
440
  "span",
455
441
  {
456
442
  className: cn(
457
- "multiSelect_tag inline-flex items-center gap-1 px-2 bg-primary/10 text-primary rounded text-sm whitespace-nowrap",
443
+ "multiSelect_tag inline-flex items-center gap-1 px-2 bg-slot-10 text-slot rounded text-sm whitespace-nowrap",
458
444
  classNames?.tag
459
445
  ),
460
446
  "data-slot": "multiSelect_tag",
@@ -500,7 +486,7 @@ var MultiSelect = React.memo(
500
486
  "span",
501
487
  {
502
488
  "data-hidden-chip": true,
503
- className: "inline-flex items-center gap-1 px-2 py-0.5 bg-primary/10 text-primary rounded text-sm whitespace-nowrap",
489
+ className: "inline-flex items-center gap-1 px-2 py-0.5 bg-slot-10 text-slot rounded text-sm whitespace-nowrap",
504
490
  children: [
505
491
  option.label,
506
492
  /* @__PURE__ */ jsx(X, { className: "h-3 w-3" })
@@ -555,6 +541,7 @@ var MultiSelect = React.memo(
555
541
  {
556
542
  className: cn(
557
543
  "multiSelect_root relative group",
544
+ colorVars.primary,
558
545
  fullWidth ? "w-full" : "inline-block",
559
546
  classNames?.root
560
547
  ),
@@ -622,5 +609,5 @@ MultiSelect.displayName = "MultiSelect";
622
609
  var multi_select_default = MultiSelect;
623
610
 
624
611
  export { multi_select_default };
625
- //# sourceMappingURL=chunk-2FYXBW4S.js.map
626
- //# sourceMappingURL=chunk-2FYXBW4S.js.map
612
+ //# sourceMappingURL=chunk-XOEEAMMY.js.map
613
+ //# sourceMappingURL=chunk-XOEEAMMY.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/multi-select/utils.ts","../src/multi-select/index.tsx"],"names":[],"mappings":"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","file":"chunk-XOEEAMMY.js","sourcesContent":["import { cva } from \"class-variance-authority\";\n\nexport const multiSelectTriggerVariants = cva(\n \"w-full flex items-center justify-between rounded-md bg-background text-text-primary border focus:border-primary outline-none disabled:opacity-50 disabled:cursor-not-allowed cursor-pointer gap-1\",\n {\n variants: {\n status: {\n default: \"border-border\",\n error: \"border-error\",\n warning: \"border-warning\",\n info: \"border-info\",\n success: \"border-success\",\n },\n size: {\n xs: \"h-(--select-height-xs) px-(--select-padding-x-xs) text-xs\",\n sm: \"h-(--select-height-sm) px-(--select-padding-x-sm) text-sm\",\n md: \"h-(--select-height-md) px-(--select-padding-x-md) text-base\",\n lg: \"h-(--select-height-lg) px-(--select-padding-x-lg) text-lg\",\n },\n fullWidth: {\n true: \"w-full\",\n false: \"max-w-full\",\n },\n },\n defaultVariants: {\n status: \"default\",\n size: \"md\",\n fullWidth: true,\n },\n },\n);\n\nexport const multiSelectDropdownVariants = cva(\n \"absolute z-[var(--z-dropdown)] mt-1 overflow-auto rounded-md border border-border bg-background\",\n);\n\nexport const multiSelectOptionVariants = cva(\n \"relative cursor-pointer select-none px-3 py-2 text-text-primary\",\n {\n variants: {\n selected: {\n true: \"bg-slot-10 text-slot font-medium\",\n false: \"hover:bg-surface\",\n },\n disabled: {\n true: \"opacity-50 cursor-not-allowed\",\n false: \"\",\n },\n },\n defaultVariants: {\n selected: false,\n disabled: false,\n },\n },\n);\n\nexport const multiSelectGroupVariants = cva(\n \"px-3 py-2 text-xs font-semibold text-text-secondary uppercase tracking-wider bg-surface\",\n);\n","\"use client\";\n\nimport { Check, ChevronDown, ChevronUp, Search, X } from \"lucide-react\";\nimport React from \"react\";\nimport { useControllable } from '../hooks/useControllable'\n\nimport { Popover, PopoverContent, PopoverTrigger } from \"../popover\";\nimport Spinner from \"../spinner\";\nimport { useSelectBase } from \"../shared/useSelectBase\";\nimport type { FlattenedItem } from \"../shared/useSelectBase\";\nimport { cn, iconSizes } from \"../utils\";\nimport { colorVars } from \"../variants\";\nimport type { MultiSelectOption, MultiSelectProps } from \"./types\";\nimport {\n multiSelectGroupVariants,\n multiSelectOptionVariants,\n multiSelectTriggerVariants,\n} from \"./utils\";\n\nconst MultiSelect = React.memo<MultiSelectProps>(\n ({\n size = \"md\",\n label,\n helperText,\n error,\n warning,\n info,\n success,\n options = [],\n placeholder = \"Select options\",\n loading = false,\n fullWidth = true,\n maxChipsVisible = 3,\n value,\n defaultValue,\n onChange,\n disabled,\n required,\n clearable = false,\n virtualizeThreshold = 50,\n maxDropdownHeight = 300,\n className,\n classNames,\n ref,\n ...props\n }) => {\n const [controlledVal, setCurrentValue] = useControllable<string[]>({ value, defaultValue: defaultValue ?? [], onChange });\n const currentValue = controlledVal ?? [];\n const [visibleChipsCount, setVisibleChipsCount] =\n React.useState(maxChipsVisible);\n\n const handleSelect = React.useCallback(\n (optionValue: string) => {\n const newValue = (currentValue || []).includes(optionValue)\n ? (currentValue || []).filter((v) => v !== optionValue)\n : [...(currentValue || []), optionValue];\n setCurrentValue(newValue);\n setHighlightedIndex(-1);\n },\n [currentValue, setCurrentValue],\n );\n\n const {\n // State\n isOpen,\n setIsOpen,\n searchQuery,\n setSearchQuery: _setSearchQuery,\n setHighlightedIndex,\n highlightedIndex,\n showTopArrow,\n showBottomArrow,\n // Refs\n triggerRef,\n inputRef,\n scrollContainerRef,\n // Computed\n filteredOptions,\n selectableOptions,\n shouldVirtualize,\n virtualizer,\n // IDs & validation\n labelId,\n listboxId,\n helperId,\n status,\n helperMessage,\n // Handlers\n handleInputChange,\n handleInputClick,\n handleScroll,\n handleKeyDown,\n handleKeyUp,\n refCallback,\n } = useSelectBase<MultiSelectOption>({\n options,\n onSelectOption: (option) => handleSelect(option.value),\n virtualizeThreshold,\n maxDropdownHeight,\n label,\n idPrefix: \"multiselect\",\n error,\n warning,\n info,\n success,\n helperText,\n });\n\n const selectedOptions = React.useMemo(\n () => {\n const valueSet = new Set(currentValue)\n return options.filter(opt => valueSet.has(opt.value))\n },\n [options, currentValue]\n );\n\n const handleRemoveChip = React.useCallback(\n (optionValue: string, e: React.MouseEvent | React.KeyboardEvent) => {\n e.stopPropagation();\n const newValue = (currentValue || []).filter((v) => v !== optionValue);\n setCurrentValue(newValue);\n },\n [currentValue, setCurrentValue],\n );\n\n const handleClear = React.useCallback(\n (e: React.MouseEvent) => {\n e.stopPropagation();\n setCurrentValue([]);\n },\n [setCurrentValue],\n );\n\n const handleInputKeyDown = React.useCallback(\n (e: React.KeyboardEvent<HTMLInputElement>) => {\n if (e.key === \"Backspace\" && !searchQuery && currentValue.length > 0) {\n e.preventDefault();\n const lastValue = currentValue[currentValue.length - 1];\n handleRemoveChip(lastValue!, e);\n } else {\n handleKeyDown(e);\n }\n },\n [searchQuery, currentValue, handleRemoveChip, handleKeyDown],\n );\n\n React.useEffect(() => {\n if (selectedOptions.length === 0 || !triggerRef.current) {\n setVisibleChipsCount(maxChipsVisible);\n return;\n }\n\n const calculateVisibleChips = () => {\n const container = triggerRef.current;\n if (!container) return;\n\n const hiddenChips = container.querySelectorAll(\"[data-hidden-chip]\");\n if (hiddenChips.length === 0) return;\n\n const containerWidth = container.offsetWidth;\n const padding =\n size === \"sm\" ? 12 : size === \"md\" ? 16 : size === \"lg\" ? 20 : 24;\n const chevronWidth = 32;\n const gap = 4;\n const plusIndicatorWidth = 50;\n\n const availableWidth = containerWidth - padding * 2 - chevronWidth;\n let totalWidth = 0;\n let visibleCount = 0;\n\n for (let i = 0; i < hiddenChips.length; i++) {\n const chip = hiddenChips[i];\n if (!chip) continue;\n const chipWidth = chip.getBoundingClientRect().width;\n const requiredSpace =\n totalWidth + chipWidth + (visibleCount > 0 ? gap : 0);\n\n const needsPlusIndicator = i < hiddenChips.length - 1;\n const spaceWithIndicator =\n requiredSpace + (needsPlusIndicator ? gap + plusIndicatorWidth : 0);\n\n if (spaceWithIndicator <= availableWidth) {\n totalWidth = requiredSpace;\n visibleCount++;\n } else {\n break;\n }\n }\n\n setVisibleChipsCount(Math.max(1, visibleCount));\n };\n\n const timeoutId = setTimeout(calculateVisibleChips, 0);\n\n const resizeObserver = new ResizeObserver(() => {\n requestAnimationFrame(calculateVisibleChips);\n });\n\n if (triggerRef.current) {\n resizeObserver.observe(triggerRef.current);\n }\n\n return () => {\n clearTimeout(timeoutId);\n resizeObserver.disconnect();\n };\n }, [currentValue.length, size, maxChipsVisible, triggerRef]);\n\n const handleOptionClick = React.useCallback(\n (optionValue: string) => {\n handleSelect(optionValue);\n },\n [handleSelect],\n );\n\n const renderOptionsList = React.useMemo(\n () => (\n <div className=\"relative\" data-slot=\"multiSelect_dropdown\">\n {/* Top scroll indicator */}\n {showTopArrow && (\n <div className=\"flex items-center justify-center\">\n <ChevronUp className=\"h-4 w-4 text-text-primary\" />\n </div>\n )}\n\n <div\n ref={scrollContainerRef}\n className={cn(\"overflow-auto relative\", classNames?.dropdown)}\n style={{ maxHeight: maxDropdownHeight }}\n role=\"listbox\"\n id={listboxId}\n aria-multiselectable=\"true\"\n aria-labelledby={label ? labelId : undefined}\n onScroll={handleScroll}\n >\n {filteredOptions.length === 0 ? (\n <div\n className={cn(\n \"multiSelect_empty px-3 py-4 text-center text-sm text-text-secondary\",\n classNames?.empty,\n )}\n data-slot=\"multiSelect_empty\"\n >\n No options found\n </div>\n ) : shouldVirtualize ? (\n <div\n ref={refCallback}\n style={{\n height: `${Math.min(virtualizer.getTotalSize(), maxDropdownHeight)}px`,\n overflow: \"auto\",\n }}\n onScroll={handleScroll}\n >\n <div\n style={{\n height: `${virtualizer.getTotalSize()}px`,\n width: \"100%\",\n position: \"relative\",\n }}\n >\n {virtualizer.getVirtualItems().map((virtualItem) => {\n const item = filteredOptions[virtualItem.index];\n\n if (item?.type === \"group\") {\n return (\n <div\n key={`group-${virtualItem.index}`}\n style={{\n position: \"absolute\",\n top: 0,\n left: 0,\n width: \"100%\",\n height: `${virtualItem.size}px`,\n transform: `translateY(${virtualItem.start}px)`,\n }}\n className={multiSelectGroupVariants()}\n >\n {item?.data as string}\n </div>\n );\n }\n\n const option = item?.data as MultiSelectOption;\n const isSelected = currentValue.includes(option.value);\n const selectableIndex = selectableOptions.indexOf(\n item as FlattenedItem<MultiSelectOption>,\n );\n const isHighlighted = selectableIndex === highlightedIndex;\n\n return (\n <div\n key={option.value}\n data-value={option.value}\n style={{\n position: \"absolute\",\n top: 0,\n left: 0,\n width: \"100%\",\n height: `${virtualItem.size}px`,\n transform: `translateY(${virtualItem.start}px)`,\n }}\n className={cn(\n \"multiSelect_option\",\n multiSelectOptionVariants({\n selected: isSelected,\n disabled: !!option.disabled,\n }),\n isHighlighted && \"bg-surface\",\n classNames?.option,\n isSelected && classNames?.optionSelected,\n )}\n onClick={() =>\n !option.disabled && handleOptionClick(option.value)\n }\n role=\"option\"\n aria-selected={isSelected}\n aria-disabled={option.disabled}\n data-slot=\"multiSelect_option\"\n >\n {option.label}\n {isSelected && (\n <span className=\"absolute right-3 top-1/2 -translate-y-1/2\">\n <Check\n className={cn(\"text-slot\", iconSizes[size])}\n />\n </span>\n )}\n </div>\n );\n })}\n </div>\n </div>\n ) : (\n <div>\n {filteredOptions.map((item, index) => {\n if (item.type === \"group\") {\n return (\n <div\n key={`group-${index}`}\n className={multiSelectGroupVariants()}\n >\n {item.data as string}\n </div>\n );\n }\n\n const option = item.data as MultiSelectOption;\n const isSelected = currentValue.includes(option.value);\n const selectableIndex = selectableOptions.indexOf(\n item as FlattenedItem<MultiSelectOption>,\n );\n const isHighlighted = selectableIndex === highlightedIndex;\n\n return (\n <div\n key={option.value}\n data-value={option.value}\n className={cn(\n \"multiSelect_option\",\n multiSelectOptionVariants({\n selected: isSelected,\n disabled: !!option.disabled,\n }),\n isHighlighted && \"bg-surface\",\n classNames?.option,\n isSelected && classNames?.optionSelected,\n )}\n onClick={() =>\n !option.disabled && handleOptionClick(option.value)\n }\n role=\"option\"\n aria-selected={isSelected}\n aria-disabled={option.disabled}\n data-slot=\"multiSelect_option\"\n >\n {option.label}\n {isSelected && (\n <span className=\"absolute right-3 top-1/2 -translate-y-1/2\">\n <Check\n className={cn(\"text-slot\", iconSizes[size])}\n />\n </span>\n )}\n </div>\n );\n })}\n </div>\n )}\n </div>\n\n {/* Bottom scroll indicator */}\n {showBottomArrow && (\n <div className=\"flex items-center justify-center\">\n <ChevronDown className=\"h-4 w-4 text-text-primary\" />\n </div>\n )}\n </div>\n ),\n [\n showTopArrow,\n showBottomArrow,\n filteredOptions,\n shouldVirtualize,\n virtualizer,\n currentValue,\n selectableOptions,\n highlightedIndex,\n handleOptionClick,\n maxDropdownHeight,\n listboxId,\n label,\n labelId,\n handleScroll,\n refCallback,\n classNames,\n size,\n ],\n );\n\n // Trigger button (used in both desktop and mobile)\n const triggerButton = (\n <button\n ref={triggerRef}\n type=\"button\"\n className={cn(\n \"multiSelect_trigger\",\n multiSelectTriggerVariants({ status, size, fullWidth }),\n loading && \"opacity-50\",\n classNames?.trigger,\n className,\n )}\n disabled={disabled || loading}\n aria-haspopup=\"listbox\"\n aria-expanded={isOpen}\n aria-controls={listboxId}\n aria-labelledby={label ? labelId : undefined}\n aria-describedby={helperMessage ? helperId : undefined}\n data-slot=\"multiSelect_trigger\"\n >\n {selectedOptions.length > 0 && (\n <div className=\"flex gap-1 shrink-0\">\n {selectedOptions.slice(0, visibleChipsCount).map((option) => (\n <span\n key={option.value}\n className={cn(\n \"multiSelect_tag inline-flex items-center gap-1 px-2 bg-slot-10 text-slot rounded text-sm whitespace-nowrap\",\n classNames?.tag,\n )}\n data-slot=\"multiSelect_tag\"\n >\n {option.label}\n <span\n role=\"button\"\n tabIndex={disabled ? -1 : 0}\n onClick={(e) => handleRemoveChip(option.value, e)}\n onKeyDown={(e) => { if (e.key === 'Enter' || e.key === ' ') { e.preventDefault(); handleRemoveChip(option.value, e as unknown as React.MouseEvent); } }}\n className={cn(\n \"multiSelect_tagRemove hover:text-error cursor-pointer\",\n disabled && \"pointer-events-none\",\n classNames?.tagRemove,\n )}\n aria-disabled={disabled}\n data-slot=\"multiSelect_tagRemove\"\n >\n <X className=\"h-3 w-3\" />\n </span>\n </span>\n ))}\n {selectedOptions.length > visibleChipsCount && (\n <span className=\"inline-flex items-center px-2 py-0.5 bg-surface text-text-secondary rounded text-sm whitespace-nowrap\">\n +{selectedOptions.length - visibleChipsCount}\n </span>\n )}\n </div>\n )}\n <div\n className=\"absolute opacity-0 pointer-events-none whitespace-nowrap\"\n aria-hidden=\"true\"\n >\n {selectedOptions.map((option) => (\n <span\n key={option.value}\n data-hidden-chip\n className=\"inline-flex items-center gap-1 px-2 py-0.5 bg-slot-10 text-slot rounded text-sm whitespace-nowrap\"\n >\n {option.label}\n <X className=\"h-3 w-3\" />\n </span>\n ))}\n </div>\n <input\n ref={inputRef}\n type=\"text\"\n className=\"bg-transparent outline-none cursor-pointer placeholder:text-text-secondary/50 flex-1 min-w-0 pointer-events-none\"\n placeholder={selectedOptions.length > 0 ? \"\" : placeholder}\n value={searchQuery}\n onChange={handleInputChange}\n onClick={handleInputClick}\n onKeyDown={handleInputKeyDown}\n onKeyUp={handleKeyUp}\n disabled={disabled || loading}\n readOnly={!isOpen}\n tabIndex={0}\n />\n <div className=\"flex items-center gap-1 text-text-secondary\">\n {loading ? (\n <Spinner />\n ) : (\n <>\n {clearable && selectedOptions.length > 0 && !disabled && (\n <span\n role=\"button\"\n tabIndex={-1}\n onClick={handleClear}\n onKeyDown={(e) => { if (e.key === 'Enter' || e.key === ' ') { e.preventDefault(); handleClear(e as unknown as React.MouseEvent); } }}\n className=\"hover:text-text-primary transition-colors cursor-pointer\"\n aria-label=\"Clear selection\"\n >\n <X className={iconSizes[size]} />\n </span>\n )}\n {isOpen ? (\n <Search className={iconSizes[size]} />\n ) : (\n <ChevronDown className={iconSizes[size]} />\n )}\n </>\n )}\n </div>\n </button>\n );\n\n const selectElement = (\n <div\n className={cn(\n \"multiSelect_root relative group\",\n colorVars.primary,\n fullWidth ? \"w-full\" : \"inline-block\",\n classNames?.root,\n )}\n ref={ref}\n data-slot=\"multiSelect_root\"\n {...props}\n >\n <Popover open={isOpen} onOpenChange={setIsOpen}>\n <PopoverTrigger asChild>{triggerButton}</PopoverTrigger>\n\n <PopoverContent\n className=\"p-0 w-(--radix-popover-trigger-width)\"\n align=\"start\"\n sideOffset={4}\n onOpenAutoFocus={(e: Event) => {\n e.preventDefault();\n inputRef.current?.focus();\n }}\n >\n {renderOptionsList}\n </PopoverContent>\n </Popover>\n </div>\n );\n\n return (\n <div className={cn(\"w-full flex flex-col\", !fullWidth && \"inline-block\")}>\n <div className=\"flex gap-2 items-center\">\n {label && (\n <label\n id={labelId}\n className={cn(\n \"multiSelect_label block mb-0.5\",\n classNames?.label,\n )}\n data-slot=\"multiSelect_label\"\n >\n <span className=\"text-sm font-medium text-text-secondary\">\n {label}\n {required && <span className=\"text-error ml-1\">*</span>}\n </span>\n </label>\n )}\n {helperMessage && (\n <p\n id={helperId}\n className={cn(\n \"multiSelect_helper text-xs\",\n status === \"error\" && \"text-error\",\n status === \"warning\" && \"text-warning\",\n status === \"info\" && \"text-info\",\n status === \"success\" && \"text-success\",\n status === \"default\" && \"text-text-secondary\",\n classNames?.helper,\n )}\n data-slot=\"multiSelect_helper\"\n >\n {helperMessage}\n </p>\n )}\n </div>\n {selectElement}\n </div>\n );\n },\n);\n\nMultiSelect.displayName = \"MultiSelect\";\n\nexport type * from \"./types\";\nexport default MultiSelect;\n"]}