@mdigital_ui/ui 0.4.8 → 0.5.0

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 (226) hide show
  1. package/dist/alert/index.d.ts.map +1 -1
  2. package/dist/alert/index.js +1 -1
  3. package/dist/autocomplete/index.d.ts.map +1 -1
  4. package/dist/autocomplete/index.js +3 -2
  5. package/dist/avatar/index.d.ts.map +1 -1
  6. package/dist/avatar/index.js +1 -1
  7. package/dist/breadcrumbs/index.js +4 -4
  8. package/dist/button/index.js +2 -2
  9. package/dist/calendar/index.d.ts.map +1 -1
  10. package/dist/calendar/index.js +2 -1
  11. package/dist/cascader/index.d.ts.map +1 -1
  12. package/dist/cascader/index.js +1 -1
  13. package/dist/checkbox/index.d.ts.map +1 -1
  14. package/dist/checkbox/index.js +1 -1
  15. package/dist/checkbox/types.d.ts +2 -0
  16. package/dist/checkbox/types.d.ts.map +1 -1
  17. package/dist/{chunk-Z3DIBMBQ.js → chunk-3K4GIXFA.js} +178 -118
  18. package/dist/chunk-3K4GIXFA.js.map +1 -0
  19. package/dist/{chunk-SJLH5ZDW.js → chunk-4QLYRAW2.js} +3 -3
  20. package/dist/{chunk-SJLH5ZDW.js.map → chunk-4QLYRAW2.js.map} +1 -1
  21. package/dist/{chunk-4TEZWGX7.js → chunk-64OCJYSH.js} +17 -8
  22. package/dist/chunk-64OCJYSH.js.map +1 -0
  23. package/dist/{chunk-5YEC6FDN.js → chunk-6CMHCCDO.js} +14 -7
  24. package/dist/chunk-6CMHCCDO.js.map +1 -0
  25. package/dist/{chunk-7RT65ZGV.js → chunk-6H2Y3QKP.js} +75 -23
  26. package/dist/chunk-6H2Y3QKP.js.map +1 -0
  27. package/dist/{chunk-UFYG3HKL.js → chunk-6K6RGQNL.js} +193 -94
  28. package/dist/chunk-6K6RGQNL.js.map +1 -0
  29. package/dist/{chunk-ROQGBDET.js → chunk-6XXAZ6P2.js} +15 -7
  30. package/dist/chunk-6XXAZ6P2.js.map +1 -0
  31. package/dist/{chunk-3Z7RLVWD.js → chunk-75T5BISG.js} +7 -13
  32. package/dist/chunk-75T5BISG.js.map +1 -0
  33. package/dist/{chunk-XAM5EKOS.js → chunk-7SKAAKBC.js} +13 -12
  34. package/dist/chunk-7SKAAKBC.js.map +1 -0
  35. package/dist/{chunk-6RZEJRTC.js → chunk-7ZUIX4NK.js} +3 -3
  36. package/dist/{chunk-6RZEJRTC.js.map → chunk-7ZUIX4NK.js.map} +1 -1
  37. package/dist/{chunk-NPK4ESMA.js → chunk-B75ICJCX.js} +9 -16
  38. package/dist/chunk-B75ICJCX.js.map +1 -0
  39. package/dist/chunk-CB7YOZWV.js +50 -0
  40. package/dist/chunk-CB7YOZWV.js.map +1 -0
  41. package/dist/{chunk-UFC3RGIN.js → chunk-DXAOZB6J.js} +4 -4
  42. package/dist/chunk-DXAOZB6J.js.map +1 -0
  43. package/dist/{chunk-75N6T3IS.js → chunk-ECBTSKES.js} +13 -10
  44. package/dist/chunk-ECBTSKES.js.map +1 -0
  45. package/dist/{chunk-J2WIZULN.js → chunk-FCIK35OY.js} +3 -3
  46. package/dist/{chunk-J2WIZULN.js.map → chunk-FCIK35OY.js.map} +1 -1
  47. package/dist/{chunk-FY2TZ2NT.js → chunk-GP7R3AFC.js} +58 -30
  48. package/dist/chunk-GP7R3AFC.js.map +1 -0
  49. package/dist/{chunk-ED4CQZ72.js → chunk-GQM5WLP5.js} +4 -4
  50. package/dist/{chunk-ED4CQZ72.js.map → chunk-GQM5WLP5.js.map} +1 -1
  51. package/dist/{chunk-TBKPQOXF.js → chunk-GSLNACUF.js} +3 -3
  52. package/dist/{chunk-TBKPQOXF.js.map → chunk-GSLNACUF.js.map} +1 -1
  53. package/dist/{chunk-OJAHIPPP.js → chunk-HGWD63IR.js} +3 -3
  54. package/dist/{chunk-OJAHIPPP.js.map → chunk-HGWD63IR.js.map} +1 -1
  55. package/dist/chunk-HKQOAEFY.js +1 -1
  56. package/dist/{chunk-PD3O6ZH4.js → chunk-JXOLZBXF.js} +19 -8
  57. package/dist/chunk-JXOLZBXF.js.map +1 -0
  58. package/dist/{chunk-CUXQZRDI.js → chunk-JZCONCJS.js} +13 -3
  59. package/dist/chunk-JZCONCJS.js.map +1 -0
  60. package/dist/{chunk-TDPJYCNI.js → chunk-KBT6UQNA.js} +14 -35
  61. package/dist/chunk-KBT6UQNA.js.map +1 -0
  62. package/dist/{chunk-VNH6R5EU.js → chunk-KR3GBSVA.js} +4 -6
  63. package/dist/chunk-KR3GBSVA.js.map +1 -0
  64. package/dist/{chunk-JWYBDNC6.js → chunk-KTK7LSKX.js} +7 -8
  65. package/dist/chunk-KTK7LSKX.js.map +1 -0
  66. package/dist/{chunk-J4SAIKKZ.js → chunk-L3ZFNHVX.js} +25 -22
  67. package/dist/chunk-L3ZFNHVX.js.map +1 -0
  68. package/dist/{chunk-PB5VGXS5.js → chunk-LBOQJHFH.js} +3 -3
  69. package/dist/{chunk-PB5VGXS5.js.map → chunk-LBOQJHFH.js.map} +1 -1
  70. package/dist/{chunk-XCK62GVU.js → chunk-LZ2MHSYF.js} +8 -5
  71. package/dist/chunk-LZ2MHSYF.js.map +1 -0
  72. package/dist/{chunk-LHZJ2GJU.js → chunk-MHRSK2QC.js} +8 -6
  73. package/dist/chunk-MHRSK2QC.js.map +1 -0
  74. package/dist/{chunk-JIXINKUJ.js → chunk-N742SARE.js} +8 -7
  75. package/dist/chunk-N742SARE.js.map +1 -0
  76. package/dist/{chunk-3XOHSE3X.js → chunk-NA6EVQ6T.js} +3 -3
  77. package/dist/{chunk-3XOHSE3X.js.map → chunk-NA6EVQ6T.js.map} +1 -1
  78. package/dist/{chunk-6ROGWFQ2.js → chunk-NKLKTAUP.js} +3 -3
  79. package/dist/{chunk-6ROGWFQ2.js.map → chunk-NKLKTAUP.js.map} +1 -1
  80. package/dist/{chunk-S6HO7HUY.js → chunk-OSD63E6O.js} +15 -19
  81. package/dist/chunk-OSD63E6O.js.map +1 -0
  82. package/dist/{chunk-QDJ5PZPP.js → chunk-PHA7SLBY.js} +3 -3
  83. package/dist/chunk-PHA7SLBY.js.map +1 -0
  84. package/dist/{chunk-6NXZWLSM.js → chunk-S4BF3Z6O.js} +4 -4
  85. package/dist/{chunk-6NXZWLSM.js.map → chunk-S4BF3Z6O.js.map} +1 -1
  86. package/dist/{chunk-C65SCJD6.js → chunk-SK6YMTMA.js} +5 -12
  87. package/dist/chunk-SK6YMTMA.js.map +1 -0
  88. package/dist/{chunk-DBPLQZJ2.js → chunk-SSISBOLO.js} +75 -22
  89. package/dist/chunk-SSISBOLO.js.map +1 -0
  90. package/dist/{chunk-LWYZCSX4.js → chunk-UBJK5623.js} +12 -11
  91. package/dist/chunk-UBJK5623.js.map +1 -0
  92. package/dist/{chunk-74AF6PO2.js → chunk-UEQ3NEVL.js} +48 -12
  93. package/dist/chunk-UEQ3NEVL.js.map +1 -0
  94. package/dist/{chunk-A4MYCEGM.js → chunk-UHHCUCEE.js} +19 -8
  95. package/dist/chunk-UHHCUCEE.js.map +1 -0
  96. package/dist/{chunk-X7JN7WPF.js → chunk-UIPDAD62.js} +3 -3
  97. package/dist/chunk-UIPDAD62.js.map +1 -0
  98. package/dist/{chunk-YUACN5GJ.js → chunk-UPBKLI62.js} +20 -13
  99. package/dist/chunk-UPBKLI62.js.map +1 -0
  100. package/dist/{chunk-3B32X5PU.js → chunk-UUXSTLOY.js} +7 -5
  101. package/dist/chunk-UUXSTLOY.js.map +1 -0
  102. package/dist/{chunk-HSMO2BR4.js → chunk-VNB7ZHCZ.js} +4 -13
  103. package/dist/chunk-VNB7ZHCZ.js.map +1 -0
  104. package/dist/{chunk-TQEMGWZ2.js → chunk-W4RYNHAG.js} +3 -3
  105. package/dist/{chunk-TQEMGWZ2.js.map → chunk-W4RYNHAG.js.map} +1 -1
  106. package/dist/{chunk-PRDJLQLB.js → chunk-XNV3YAJK.js} +5 -5
  107. package/dist/chunk-XNV3YAJK.js.map +1 -0
  108. package/dist/{chunk-I7HJBHQU.js → chunk-Y3PVWMUN.js} +7 -7
  109. package/dist/chunk-Y3PVWMUN.js.map +1 -0
  110. package/dist/clipboard/index.js +2 -2
  111. package/dist/collapse/index.js +2 -2
  112. package/dist/color-picker/index.d.ts +3 -3
  113. package/dist/color-picker/index.d.ts.map +1 -1
  114. package/dist/color-picker/index.js +3 -2
  115. package/dist/context-menu/index.d.ts +4 -6
  116. package/dist/context-menu/index.d.ts.map +1 -1
  117. package/dist/context-menu/index.js +2 -2
  118. package/dist/date-picker/PickerWrapper.d.ts +3 -3
  119. package/dist/date-picker/PickerWrapper.d.ts.map +1 -1
  120. package/dist/date-picker/index.d.ts.map +1 -1
  121. package/dist/date-picker/index.js +3 -2
  122. package/dist/descriptions/index.js +1 -1
  123. package/dist/dropdown/index.js +3 -3
  124. package/dist/hooks/useControllable.d.ts +9 -2
  125. package/dist/hooks/useControllable.d.ts.map +1 -1
  126. package/dist/hooks/useRipple.d.ts +0 -6
  127. package/dist/hooks/useRipple.d.ts.map +1 -1
  128. package/dist/index.js +46 -46
  129. package/dist/input/index.js +1 -1
  130. package/dist/input-password/index.js +2 -2
  131. package/dist/mentions/index.d.ts.map +1 -1
  132. package/dist/mentions/index.js +2 -1
  133. package/dist/menubar/index.js +2 -2
  134. package/dist/multi-select/index.d.ts.map +1 -1
  135. package/dist/multi-select/index.js +4 -4
  136. package/dist/navigation-menu/index.d.ts.map +1 -1
  137. package/dist/navigation-menu/index.js +1 -1
  138. package/dist/number-input/index.d.ts.map +1 -1
  139. package/dist/number-input/index.js +3 -3
  140. package/dist/pagination/index.js +2 -2
  141. package/dist/popover/index.d.ts +16 -1
  142. package/dist/popover/index.d.ts.map +1 -1
  143. package/dist/popover/index.js +1 -1
  144. package/dist/qr-code/index.d.ts +3 -3
  145. package/dist/qr-code/index.d.ts.map +1 -1
  146. package/dist/qr-code/index.js +1 -1
  147. package/dist/radio/index.d.ts.map +1 -1
  148. package/dist/radio/index.js +1 -1
  149. package/dist/rating/index.js +2 -2
  150. package/dist/resizable/index.d.ts +4 -3
  151. package/dist/resizable/index.d.ts.map +1 -1
  152. package/dist/resizable/index.js +1 -1
  153. package/dist/result/index.d.ts.map +1 -1
  154. package/dist/result/index.js +1 -1
  155. package/dist/select/index.d.ts.map +1 -1
  156. package/dist/select/index.js +4 -4
  157. package/dist/skeleton/index.d.ts +3 -3
  158. package/dist/skeleton/index.d.ts.map +1 -1
  159. package/dist/skeleton/index.js +1 -1
  160. package/dist/table/index.d.ts.map +1 -1
  161. package/dist/table/index.js +8 -8
  162. package/dist/table/types.d.ts +16 -2
  163. package/dist/table/types.d.ts.map +1 -1
  164. package/dist/tags-input/index.d.ts.map +1 -1
  165. package/dist/tags-input/index.js +2 -1
  166. package/dist/textarea/index.d.ts +3 -3
  167. package/dist/textarea/index.d.ts.map +1 -1
  168. package/dist/textarea/index.js +1 -1
  169. package/dist/theme/ThemeProvider.d.ts +18 -2
  170. package/dist/theme/ThemeProvider.d.ts.map +1 -1
  171. package/dist/theme/index.d.ts +1 -1
  172. package/dist/theme/index.d.ts.map +1 -1
  173. package/dist/theme/index.js +1 -1
  174. package/dist/timeline/index.d.ts.map +1 -1
  175. package/dist/timeline/index.js +1 -1
  176. package/dist/toggle/index.d.ts.map +1 -1
  177. package/dist/toggle/index.js +2 -2
  178. package/dist/toggle-group/index.d.ts.map +1 -1
  179. package/dist/toggle-group/index.js +2 -2
  180. package/dist/tour/index.d.ts.map +1 -1
  181. package/dist/tour/index.js +1 -1
  182. package/dist/transfer/index.js +2 -2
  183. package/dist/tree-select/index.js +2 -2
  184. package/dist/typography/index.d.ts.map +1 -1
  185. package/dist/typography/index.js +1 -1
  186. package/dist/upload/index.d.ts.map +1 -1
  187. package/dist/upload/index.js +2 -2
  188. package/package.json +4 -3
  189. package/styles/datepicker.css +126 -0
  190. package/styles/global.css +1 -113
  191. package/dist/chunk-3B32X5PU.js.map +0 -1
  192. package/dist/chunk-3Z7RLVWD.js.map +0 -1
  193. package/dist/chunk-4TEZWGX7.js.map +0 -1
  194. package/dist/chunk-5YEC6FDN.js.map +0 -1
  195. package/dist/chunk-74AF6PO2.js.map +0 -1
  196. package/dist/chunk-75N6T3IS.js.map +0 -1
  197. package/dist/chunk-7RT65ZGV.js.map +0 -1
  198. package/dist/chunk-A4MYCEGM.js.map +0 -1
  199. package/dist/chunk-C65SCJD6.js.map +0 -1
  200. package/dist/chunk-CUXQZRDI.js.map +0 -1
  201. package/dist/chunk-DBPLQZJ2.js.map +0 -1
  202. package/dist/chunk-FY2TZ2NT.js.map +0 -1
  203. package/dist/chunk-HSMO2BR4.js.map +0 -1
  204. package/dist/chunk-I7HJBHQU.js.map +0 -1
  205. package/dist/chunk-J4SAIKKZ.js.map +0 -1
  206. package/dist/chunk-JIXINKUJ.js.map +0 -1
  207. package/dist/chunk-JWYBDNC6.js.map +0 -1
  208. package/dist/chunk-LHZJ2GJU.js.map +0 -1
  209. package/dist/chunk-LWYZCSX4.js.map +0 -1
  210. package/dist/chunk-NPK4ESMA.js.map +0 -1
  211. package/dist/chunk-PD3O6ZH4.js.map +0 -1
  212. package/dist/chunk-PQOIW5CM.js +0 -27
  213. package/dist/chunk-PQOIW5CM.js.map +0 -1
  214. package/dist/chunk-PRDJLQLB.js.map +0 -1
  215. package/dist/chunk-QDJ5PZPP.js.map +0 -1
  216. package/dist/chunk-ROQGBDET.js.map +0 -1
  217. package/dist/chunk-S6HO7HUY.js.map +0 -1
  218. package/dist/chunk-TDPJYCNI.js.map +0 -1
  219. package/dist/chunk-UFC3RGIN.js.map +0 -1
  220. package/dist/chunk-UFYG3HKL.js.map +0 -1
  221. package/dist/chunk-VNH6R5EU.js.map +0 -1
  222. package/dist/chunk-X7JN7WPF.js.map +0 -1
  223. package/dist/chunk-XAM5EKOS.js.map +0 -1
  224. package/dist/chunk-XCK62GVU.js.map +0 -1
  225. package/dist/chunk-YUACN5GJ.js.map +0 -1
  226. package/dist/chunk-Z3DIBMBQ.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/alert/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,MAAM,OAAO,CAAA;AAKzB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAmCzC,QAAA,MAAM,KAAK,wCA6FV,CAAA;AAID,mBAAmB,SAAS,CAAA;AAC5B,eAAe,KAAK,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/alert/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,MAAM,OAAO,CAAA;AAKzB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AA4BzC,QAAA,MAAM,KAAK,wCA2FV,CAAA;AAID,mBAAmB,SAAS,CAAA;AAC5B,eAAe,KAAK,CAAA"}
@@ -1,4 +1,4 @@
1
- export { alert_default as default } from '../chunk-C65SCJD6.js';
1
+ export { alert_default as default } from '../chunk-SK6YMTMA.js';
2
2
  import '../chunk-G6QIIWKU.js';
3
3
  import '../chunk-RAS6HUEI.js';
4
4
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/autocomplete/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,MAAM,OAAO,CAAA;AAMzB,OAAO,KAAK,EAAsB,iBAAiB,EAAE,MAAM,SAAS,CAAA;AA0CpE,QAAA,MAAM,YAAY,+CAqQjB,CAAA;AAID,mBAAmB,SAAS,CAAA;AAC5B,eAAe,YAAY,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/autocomplete/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,MAAM,OAAO,CAAA;AAOzB,OAAO,KAAK,EAAsB,iBAAiB,EAAE,MAAM,SAAS,CAAA;AA0CpE,QAAA,MAAM,YAAY,+CAkQjB,CAAA;AAID,mBAAmB,SAAS,CAAA;AAC5B,eAAe,YAAY,CAAA"}
@@ -1,5 +1,6 @@
1
- export { autocomplete_default as default } from '../chunk-JWYBDNC6.js';
2
- import '../chunk-ROQGBDET.js';
1
+ export { autocomplete_default as default } from '../chunk-KTK7LSKX.js';
2
+ import '../chunk-CB7YOZWV.js';
3
+ import '../chunk-6XXAZ6P2.js';
3
4
  import '../chunk-G6QIIWKU.js';
4
5
  import '../chunk-RAS6HUEI.js';
5
6
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/avatar/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAInD,OAAO,KAAK,EAAE,gBAAgB,EAAE,WAAW,EAAc,MAAM,SAAS,CAAC;AAiGzE,QAAA,MAAM,MAAM,yCA6HX,CAAC;AAIF,QAAA,MAAM,WAAW,8CA+EhB,CAAC;AAIF,mBAAmB,SAAS,CAAC;AAC7B,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;AAC/B,eAAe,MAAM,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/avatar/index.tsx"],"names":[],"mappings":"AAIA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAInD,OAAO,KAAK,EAAE,gBAAgB,EAAE,WAAW,EAAc,MAAM,SAAS,CAAC;AAyFzE,QAAA,MAAM,MAAM,yCA6HX,CAAC;AAIF,QAAA,MAAM,WAAW,8CA+EhB,CAAC;AAIF,mBAAmB,SAAS,CAAC;AAC7B,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;AAC/B,eAAe,MAAM,CAAC"}
@@ -1,4 +1,4 @@
1
- export { Avatar, AvatarGroup, avatar_default as default } from '../chunk-HSMO2BR4.js';
1
+ export { Avatar, AvatarGroup, avatar_default as default } from '../chunk-VNB7ZHCZ.js';
2
2
  import '../chunk-G6QIIWKU.js';
3
3
  import '../chunk-RAS6HUEI.js';
4
4
  //# sourceMappingURL=index.js.map
@@ -1,8 +1,8 @@
1
- export { BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, breadcrumbs_default as default } from '../chunk-6ROGWFQ2.js';
2
- import '../chunk-6NXZWLSM.js';
1
+ export { BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, breadcrumbs_default as default } from '../chunk-NKLKTAUP.js';
2
+ import '../chunk-S4BF3Z6O.js';
3
3
  import '../chunk-NZHKNUGE.js';
4
- import '../chunk-4TEZWGX7.js';
5
- import '../chunk-ROQGBDET.js';
4
+ import '../chunk-64OCJYSH.js';
5
+ import '../chunk-6XXAZ6P2.js';
6
6
  import '../chunk-G6QIIWKU.js';
7
7
  import '../chunk-RAS6HUEI.js';
8
8
  //# sourceMappingURL=index.js.map
@@ -1,6 +1,6 @@
1
- export { buttonVariants, button_default as default } from '../chunk-SJLH5ZDW.js';
1
+ export { buttonVariants, button_default as default } from '../chunk-4QLYRAW2.js';
2
2
  import '../chunk-RRPMZYVN.js';
3
- import '../chunk-4TEZWGX7.js';
3
+ import '../chunk-64OCJYSH.js';
4
4
  import '../chunk-G6QIIWKU.js';
5
5
  import '../chunk-RAS6HUEI.js';
6
6
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/calendar/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,MAAM,OAAO,CAAA;AAIzB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AA8F5C,QAAA,MAAM,QAAQ,2CAuKb,CAAA;AAID,mBAAmB,SAAS,CAAA;AAC5B,eAAe,QAAQ,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/calendar/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,MAAM,OAAO,CAAA;AAKzB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AA8F5C,QAAA,MAAM,QAAQ,2CA2Kb,CAAA;AAID,mBAAmB,SAAS,CAAA;AAC5B,eAAe,QAAQ,CAAA"}
@@ -1,4 +1,5 @@
1
- export { calendar_default as default } from '../chunk-5YEC6FDN.js';
1
+ export { calendar_default as default } from '../chunk-6CMHCCDO.js';
2
+ import '../chunk-CB7YOZWV.js';
2
3
  import '../chunk-RAS6HUEI.js';
3
4
  //# sourceMappingURL=index.js.map
4
5
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cascader/index.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,MAAM,OAAO,CAAC;AAK1B,OAAO,KAAK,EAAkB,aAAa,EAAgB,MAAM,SAAS,CAAC;AAiC3E,QAAA,MAAM,QAAQ,2CAsXb,CAAC;AAIF,mBAAmB,SAAS,CAAC;AAC7B,eAAe,QAAQ,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cascader/index.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,MAAM,OAAO,CAAC;AAK1B,OAAO,KAAK,EAAkB,aAAa,EAAgB,MAAM,SAAS,CAAC;AAiC3E,QAAA,MAAM,QAAQ,2CAkXb,CAAC;AAIF,mBAAmB,SAAS,CAAC;AAC7B,eAAe,QAAQ,CAAC"}
@@ -1,4 +1,4 @@
1
- export { cascader_default as default } from '../chunk-LWYZCSX4.js';
1
+ export { cascader_default as default } from '../chunk-UBJK5623.js';
2
2
  import '../chunk-G6QIIWKU.js';
3
3
  import '../chunk-RAS6HUEI.js';
4
4
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/checkbox/index.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAkD,MAAM,OAAO,CAAC;AAIvE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AA0C7C,QAAA,MAAM,QAAQ,2CAuIb,CAAC;AAIF,mBAAmB,SAAS,CAAC;AAC7B,eAAe,QAAQ,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/checkbox/index.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAkD,MAAM,OAAO,CAAC;AAIvE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAyD7C,QAAA,MAAM,QAAQ,2CAuIb,CAAC;AAIF,mBAAmB,SAAS,CAAC;AAC7B,eAAe,QAAQ,CAAC"}
@@ -1,4 +1,4 @@
1
- export { checkbox_default as default } from '../chunk-A4MYCEGM.js';
1
+ export { checkbox_default as default } from '../chunk-UHHCUCEE.js';
2
2
  import '../chunk-G6QIIWKU.js';
3
3
  import '../chunk-RAS6HUEI.js';
4
4
  //# sourceMappingURL=index.js.map
@@ -1,6 +1,7 @@
1
1
  import type { ButtonColor, ComponentSize } from '../types';
2
2
  export type CheckboxColor = ButtonColor;
3
3
  export type CheckboxSize = ComponentSize;
4
+ export type CheckboxVariant = 'solid' | 'outline' | 'soft';
4
5
  export interface CheckboxClassNames {
5
6
  root?: string;
6
7
  checkbox?: string;
@@ -9,6 +10,7 @@ export interface CheckboxClassNames {
9
10
  description?: string;
10
11
  }
11
12
  export interface CheckboxProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'size' | 'type'> {
13
+ variant?: CheckboxVariant;
12
14
  color?: CheckboxColor;
13
15
  size?: CheckboxSize;
14
16
  label?: React.ReactNode;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/checkbox/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAE1D,MAAM,MAAM,aAAa,GAAG,WAAW,CAAA;AAEvC,MAAM,MAAM,YAAY,GAAG,aAAa,CAAA;AAExC,MAAM,WAAW,kBAAkB;IACjC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAED,MAAM,WAAW,aACf,SAAQ,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC1E,KAAK,CAAC,EAAE,aAAa,CAAA;IACrB,IAAI,CAAC,EAAE,YAAY,CAAA;IACnB,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACvB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;IACxB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAA;IACjC,UAAU,CAAC,EAAE,kBAAkB,CAAA;CAChC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/checkbox/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAE1D,MAAM,MAAM,aAAa,GAAG,WAAW,CAAA;AAEvC,MAAM,MAAM,YAAY,GAAG,aAAa,CAAA;AAExC,MAAM,MAAM,eAAe,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,CAAA;AAE1D,MAAM,WAAW,kBAAkB;IACjC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAED,MAAM,WAAW,aACf,SAAQ,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC1E,OAAO,CAAC,EAAE,eAAe,CAAA;IACzB,KAAK,CAAC,EAAE,aAAa,CAAA;IACrB,IAAI,CAAC,EAAE,YAAY,CAAA;IACnB,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACvB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;IACxB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAA;IACjC,UAAU,CAAC,EAAE,kBAAkB,CAAA;CAChC"}
@@ -1,23 +1,43 @@
1
1
  import { useMenuNavigation } from './chunk-NZHKNUGE.js';
2
- import { useRipple, RippleContainer } from './chunk-4TEZWGX7.js';
2
+ import { useRipple, RippleContainer } from './chunk-64OCJYSH.js';
3
3
  import { colorVars } from './chunk-G6QIIWKU.js';
4
4
  import { cn } from './chunk-RAS6HUEI.js';
5
5
  import * as PopoverPrimitive from '@radix-ui/react-popover';
6
- import { useRef, useMemo, useCallback, useEffect, useState } from 'react';
6
+ import React, { useState, useCallback, useRef, useMemo, useEffect } from 'react';
7
7
  import { ChevronRight } from 'lucide-react';
8
- import { jsx, jsxs } from 'react/jsx-runtime';
8
+ import { jsxs, jsx } from 'react/jsx-runtime';
9
9
 
10
10
  var ContextMenuItemDiv = ({ children, disabled, className, ...props }) => {
11
11
  const { ripples, onPointerDown, onAnimationEnd } = useRipple(!disabled);
12
- return /* @__PURE__ */ jsxs("div", { className: cn(className, "relative overflow-hidden"), onPointerDown, ...props, children: [
13
- children,
14
- /* @__PURE__ */ jsx(RippleContainer, { ripples, onAnimationEnd })
15
- ] });
12
+ return /* @__PURE__ */ jsxs(
13
+ "div",
14
+ {
15
+ className: cn(className, "relative overflow-hidden"),
16
+ onPointerDown,
17
+ ...props,
18
+ children: [
19
+ children,
20
+ /* @__PURE__ */ jsx(RippleContainer, { ripples, onAnimationEnd })
21
+ ]
22
+ }
23
+ );
16
24
  };
17
- var ContextMenuSubMenu = ({ item, onClose, level, classNames, color = "default", openDelay = 200, closeDelay = 300 }) => {
25
+ var ContextMenuSubMenu = ({
26
+ item,
27
+ onClose,
28
+ level,
29
+ classNames,
30
+ color = "default",
31
+ openDelay = 200,
32
+ closeDelay = 300
33
+ }) => {
18
34
  const [isOpen, setIsOpen] = useState(false);
19
- const hoverTimeoutRef = useRef(void 0);
20
- const leaveTimeoutRef = useRef(void 0);
35
+ const hoverTimeoutRef = useRef(
36
+ void 0
37
+ );
38
+ const leaveTimeoutRef = useRef(
39
+ void 0
40
+ );
21
41
  const handleMouseEnter = useCallback(() => {
22
42
  if (item.disabled) return;
23
43
  if (leaveTimeoutRef.current) {
@@ -93,10 +113,7 @@ var ContextMenuSubMenu = ({ item, onClose, level, classNames, color = "default",
93
113
  /* @__PURE__ */ jsx(
94
114
  "span",
95
115
  {
96
- className: cn(
97
- "contextMenu_itemLabel",
98
- classNames?.itemLabel
99
- ),
116
+ className: cn("contextMenu_itemLabel", classNames?.itemLabel),
100
117
  children: item.label
101
118
  }
102
119
  )
@@ -113,8 +130,8 @@ var ContextMenuSubMenu = ({ item, onClose, level, classNames, color = "default",
113
130
  {
114
131
  side: "right",
115
132
  align: "start",
116
- sideOffset: 8,
117
- alignOffset: -8,
133
+ sideOffset: 4,
134
+ alignOffset: -4,
118
135
  onMouseEnter: handleMouseEnter,
119
136
  onMouseLeave: handleMouseLeave,
120
137
  className: cn(
@@ -125,10 +142,19 @@ var ContextMenuSubMenu = ({ item, onClose, level, classNames, color = "default",
125
142
  "data-[side=left]:slide-in-from-right-2",
126
143
  "data-[side=right]:slide-in-from-left-2",
127
144
  "data-[side=top]:slide-in-from-bottom-2",
128
- "z-[var(--z-popover)]",
145
+ "z-(--z-popover)",
129
146
  classNames?.submenu
130
147
  ),
131
- children: /* @__PURE__ */ jsx(ContextMenuContent, { items: item.children, onClose, level: level + 1, classNames, color })
148
+ children: /* @__PURE__ */ jsx(
149
+ ContextMenuContent,
150
+ {
151
+ items: item.children,
152
+ onClose,
153
+ level: level + 1,
154
+ classNames,
155
+ color
156
+ }
157
+ )
132
158
  }
133
159
  ) })
134
160
  ] });
@@ -161,12 +187,14 @@ var ContextMenuContent = ({
161
187
  },
162
188
  [items, onClose]
163
189
  );
164
- const { highlightedIndex, handleKeyDown, highlightFirst } = useMenuNavigation({
165
- enabledIndices,
166
- isOpen: true,
167
- onClose,
168
- onSelect: onMenuSelect
169
- });
190
+ const { highlightedIndex, handleKeyDown, highlightFirst } = useMenuNavigation(
191
+ {
192
+ enabledIndices,
193
+ isOpen: true,
194
+ onClose,
195
+ onSelect: onMenuSelect
196
+ }
197
+ );
170
198
  useEffect(() => {
171
199
  highlightFirst();
172
200
  }, [highlightFirst]);
@@ -217,7 +245,19 @@ var ContextMenuContent = ({
217
245
  );
218
246
  }
219
247
  if (item.children) {
220
- return /* @__PURE__ */ jsx(ContextMenuSubMenu, { item, onClose, level, classNames, color, openDelay: submenuOpenDelay, closeDelay: submenuCloseDelay }, item.key);
248
+ return /* @__PURE__ */ jsx(
249
+ ContextMenuSubMenu,
250
+ {
251
+ item,
252
+ onClose,
253
+ level,
254
+ classNames,
255
+ color,
256
+ openDelay: submenuOpenDelay,
257
+ closeDelay: submenuCloseDelay
258
+ },
259
+ item.key
260
+ );
221
261
  }
222
262
  const isFocused = highlightedIndex === index;
223
263
  return /* @__PURE__ */ jsxs(
@@ -256,16 +296,20 @@ var ContextMenuContent = ({
256
296
  /* @__PURE__ */ jsx(
257
297
  "span",
258
298
  {
259
- className: cn(
260
- "contextMenu_itemLabel",
261
- classNames?.itemLabel
262
- ),
299
+ className: cn("contextMenu_itemLabel", classNames?.itemLabel),
263
300
  "data-slot": "item-label",
264
301
  children: item.label
265
302
  }
266
303
  )
267
304
  ] }),
268
- item.shortcut && /* @__PURE__ */ jsx("span", { className: "text-xs text-text-secondary shrink-0", "data-slot": "shortcut", children: item.shortcut })
305
+ item.shortcut && /* @__PURE__ */ jsx(
306
+ "span",
307
+ {
308
+ className: "text-xs text-text-secondary shrink-0",
309
+ "data-slot": "shortcut",
310
+ children: item.shortcut
311
+ }
312
+ )
269
313
  ]
270
314
  },
271
315
  item.key
@@ -275,98 +319,114 @@ var ContextMenuContent = ({
275
319
  );
276
320
  };
277
321
  ContextMenuContent.displayName = "ContextMenuContent";
278
- var ContextMenu = ({
279
- children,
280
- items,
281
- className,
282
- classNames,
283
- disabled = false,
284
- onOpenChange,
285
- open: controlledOpen,
286
- color = "default",
287
- submenuOpenDelay,
288
- submenuCloseDelay
289
- }) => {
290
- const [internalOpen, setInternalOpen] = useState(false);
291
- const [position, setPosition] = useState(null);
292
- const isControlled = controlledOpen !== void 0;
293
- const isOpen = isControlled ? controlledOpen : internalOpen;
294
- const setOpen = useCallback(
295
- (open) => {
296
- if (!isControlled) {
297
- setInternalOpen(open);
298
- }
299
- onOpenChange?.(open);
300
- },
301
- [isControlled, onOpenChange]
302
- );
303
- const handleContextMenu = useCallback(
304
- (e) => {
305
- if (disabled) return;
306
- e.preventDefault();
307
- e.stopPropagation();
308
- setPosition({
309
- width: 0,
310
- height: 0,
311
- x: e.clientX,
312
- y: e.clientY,
313
- top: e.clientY,
314
- left: e.clientX,
315
- right: e.clientX,
316
- bottom: e.clientY,
317
- toJSON: () => {
322
+ var ContextMenu = React.memo(
323
+ ({
324
+ children,
325
+ items,
326
+ className,
327
+ classNames,
328
+ disabled = false,
329
+ onOpenChange,
330
+ open: controlledOpen,
331
+ color = "default",
332
+ submenuOpenDelay,
333
+ submenuCloseDelay
334
+ }) => {
335
+ const [internalOpen, setInternalOpen] = useState(false);
336
+ const [position, setPosition] = useState(null);
337
+ const isControlled = controlledOpen !== void 0;
338
+ const isOpen = isControlled ? controlledOpen : internalOpen;
339
+ const setOpen = useCallback(
340
+ (open) => {
341
+ if (!isControlled) {
342
+ setInternalOpen(open);
318
343
  }
319
- });
320
- setOpen(true);
321
- },
322
- [disabled, setOpen]
323
- );
324
- const handleClose = useCallback(() => {
325
- setOpen(false);
326
- setPosition(null);
327
- }, [setOpen]);
328
- return /* @__PURE__ */ jsxs(PopoverPrimitive.Root, { open: isOpen, onOpenChange: setOpen, children: [
329
- position && /* @__PURE__ */ jsx(
330
- PopoverPrimitive.Anchor,
331
- {
332
- virtualRef: {
333
- current: {
334
- getBoundingClientRect: () => position
344
+ onOpenChange?.(open);
345
+ },
346
+ [isControlled, onOpenChange]
347
+ );
348
+ const handleContextMenu = useCallback(
349
+ (e) => {
350
+ if (disabled) return;
351
+ e.preventDefault();
352
+ e.stopPropagation();
353
+ setPosition({
354
+ width: 0,
355
+ height: 0,
356
+ x: e.clientX,
357
+ y: e.clientY,
358
+ top: e.clientY,
359
+ left: e.clientX,
360
+ right: e.clientX,
361
+ bottom: e.clientY,
362
+ toJSON: () => {
363
+ }
364
+ });
365
+ setOpen(true);
366
+ },
367
+ [disabled, setOpen]
368
+ );
369
+ const handleClose = useCallback(() => {
370
+ setOpen(false);
371
+ setPosition(null);
372
+ }, [setOpen]);
373
+ return /* @__PURE__ */ jsxs(PopoverPrimitive.Root, { open: isOpen, onOpenChange: setOpen, children: [
374
+ position && /* @__PURE__ */ jsx(
375
+ PopoverPrimitive.Anchor,
376
+ {
377
+ virtualRef: {
378
+ current: {
379
+ getBoundingClientRect: () => position
380
+ }
335
381
  }
336
382
  }
337
- }
338
- ),
339
- /* @__PURE__ */ jsx(
340
- "div",
341
- {
342
- onContextMenu: handleContextMenu,
343
- className: cn("contextMenu_root inline-block", className, classNames?.root),
344
- role: "presentation",
345
- "data-slot": "root",
346
- children
347
- }
348
- ),
349
- /* @__PURE__ */ jsx(PopoverPrimitive.Portal, { children: /* @__PURE__ */ jsx(
350
- PopoverPrimitive.Content,
351
- {
352
- side: "bottom",
353
- align: "start",
354
- sideOffset: 0,
355
- alignOffset: 0,
356
- onOpenAutoFocus: (e) => e.preventDefault(),
357
- onCloseAutoFocus: (e) => e.preventDefault(),
358
- onEscapeKeyDown: handleClose,
359
- onPointerDownOutside: handleClose,
360
- onInteractOutside: handleClose,
361
- className: "z-[var(--z-popover)]",
362
- children: /* @__PURE__ */ jsx(ContextMenuContent, { items, onClose: handleClose, classNames, color, submenuOpenDelay, submenuCloseDelay })
363
- }
364
- ) })
365
- ] });
366
- };
383
+ ),
384
+ /* @__PURE__ */ jsx(
385
+ "div",
386
+ {
387
+ onContextMenu: handleContextMenu,
388
+ className: cn(
389
+ "contextMenu_root inline-block",
390
+ className,
391
+ classNames?.root
392
+ ),
393
+ role: "presentation",
394
+ "data-slot": "root",
395
+ children
396
+ }
397
+ ),
398
+ /* @__PURE__ */ jsx(PopoverPrimitive.Portal, { children: /* @__PURE__ */ jsx(
399
+ PopoverPrimitive.Content,
400
+ {
401
+ side: "bottom",
402
+ align: "start",
403
+ sideOffset: 0,
404
+ alignOffset: 0,
405
+ onOpenAutoFocus: (e) => e.preventDefault(),
406
+ onCloseAutoFocus: (e) => e.preventDefault(),
407
+ onEscapeKeyDown: handleClose,
408
+ onPointerDownOutside: handleClose,
409
+ onInteractOutside: handleClose,
410
+ className: "z-[var(--z-popover)]",
411
+ children: /* @__PURE__ */ jsx(
412
+ ContextMenuContent,
413
+ {
414
+ items,
415
+ onClose: handleClose,
416
+ classNames,
417
+ color,
418
+ submenuOpenDelay,
419
+ submenuCloseDelay
420
+ }
421
+ )
422
+ }
423
+ ) })
424
+ ] });
425
+ }
426
+ );
367
427
  ContextMenu.displayName = "ContextMenu";
368
428
  var context_menu_default = ContextMenu;
369
429
 
370
430
  export { ContextMenu, ContextMenuContent, context_menu_default };
371
- //# sourceMappingURL=chunk-Z3DIBMBQ.js.map
372
- //# sourceMappingURL=chunk-Z3DIBMBQ.js.map
431
+ //# sourceMappingURL=chunk-3K4GIXFA.js.map
432
+ //# sourceMappingURL=chunk-3K4GIXFA.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/context-menu/index.tsx"],"names":[],"mappings":"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","file":"chunk-3K4GIXFA.js","sourcesContent":["\"use client\";\n\nimport * as PopoverPrimitive from \"@radix-ui/react-popover\";\nimport React, {\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\n\nimport { ChevronRight } from \"lucide-react\";\n\nimport { useRipple, RippleContainer } from \"../hooks/useRipple\";\nimport { useMenuNavigation } from \"../hooks/useMenuNavigation\";\nimport { cn } from \"../utils\";\nimport { colorVars } from \"../variants\";\nimport type {\n ContextMenuContentProps,\n ContextMenuProps,\n ContextMenuSubMenuProps,\n} from \"./types\";\n\nconst ContextMenuItemDiv: React.FC<\n React.HTMLAttributes<HTMLDivElement> & {\n children: React.ReactNode;\n disabled?: boolean;\n }\n> = ({ children, disabled, className, ...props }) => {\n const { ripples, onPointerDown, onAnimationEnd } = useRipple(!disabled);\n return (\n <div\n className={cn(className, \"relative overflow-hidden\")}\n onPointerDown={onPointerDown}\n {...props}\n >\n {children}\n <RippleContainer ripples={ripples} onAnimationEnd={onAnimationEnd} />\n </div>\n );\n};\n\n/**\n * Submenu component based on Popover\n */\nconst ContextMenuSubMenu = ({\n item,\n onClose,\n level,\n classNames,\n color = \"default\",\n openDelay = 200,\n closeDelay = 300,\n}: ContextMenuSubMenuProps) => {\n const [isOpen, setIsOpen] = useState(false);\n const hoverTimeoutRef = useRef<ReturnType<typeof setTimeout> | undefined>(\n undefined,\n );\n const leaveTimeoutRef = useRef<ReturnType<typeof setTimeout> | undefined>(\n undefined,\n );\n\n const handleMouseEnter = useCallback(() => {\n if (item.disabled) return;\n\n if (leaveTimeoutRef.current) {\n clearTimeout(leaveTimeoutRef.current);\n }\n\n hoverTimeoutRef.current = setTimeout(() => {\n setIsOpen(true);\n }, openDelay);\n }, [item.disabled, openDelay]);\n\n const handleMouseLeave = useCallback(() => {\n if (hoverTimeoutRef.current) {\n clearTimeout(hoverTimeoutRef.current);\n }\n\n leaveTimeoutRef.current = setTimeout(() => {\n setIsOpen(false);\n }, closeDelay);\n }, [closeDelay]);\n\n const handleClick = useCallback(\n (e: React.MouseEvent) => {\n if (!item.disabled && !item.children) {\n e.stopPropagation();\n item.onClick?.();\n onClose();\n }\n },\n [item, onClose],\n );\n\n useEffect(() => {\n return () => {\n if (hoverTimeoutRef.current) {\n clearTimeout(hoverTimeoutRef.current);\n }\n if (leaveTimeoutRef.current) {\n clearTimeout(leaveTimeoutRef.current);\n }\n };\n }, []);\n\n return (\n <PopoverPrimitive.Root open={isOpen} onOpenChange={setIsOpen}>\n <PopoverPrimitive.Trigger asChild>\n <div\n className=\"relative\"\n onMouseEnter={handleMouseEnter}\n onMouseLeave={handleMouseLeave}\n role=\"menuitem\"\n aria-haspopup=\"true\"\n aria-expanded={isOpen}\n aria-disabled={item.disabled}\n tabIndex={-1}\n data-slot=\"submenu-trigger\"\n >\n <ContextMenuItemDiv\n disabled={!!item.disabled}\n className={cn(\n \"contextMenu_item flex items-center justify-between gap-3 px-3 py-2 text-sm cursor-pointer rounded-sm transition-colors mx-1\",\n item.disabled\n ? \"opacity-50 cursor-not-allowed\"\n : \"hover:bg-slot-10 hover:text-slot focus-visible:bg-slot-10 focus-visible:text-slot focus-visible:outline-none\",\n classNames?.item,\n )}\n onClick={handleClick}\n >\n <div className=\"flex items-center gap-2 flex-1\">\n {item.icon && (\n <span\n className={cn(\n \"contextMenu_itemIcon shrink-0 w-4 h-4\",\n classNames?.itemIcon,\n )}\n >\n {item.icon}\n </span>\n )}\n <span\n className={cn(\"contextMenu_itemLabel\", classNames?.itemLabel)}\n >\n {item.label}\n </span>\n </div>\n {item.children && (\n <ChevronRight className=\"w-4 h-4 text-text-secondary shrink-0\" />\n )}\n {item.shortcut && (\n <span className=\"text-xs text-text-secondary shrink-0\">\n {item.shortcut}\n </span>\n )}\n </ContextMenuItemDiv>\n </div>\n </PopoverPrimitive.Trigger>\n\n {item.children && (\n <PopoverPrimitive.Portal>\n <PopoverPrimitive.Content\n side=\"right\"\n align=\"start\"\n sideOffset={4}\n alignOffset={-4}\n onMouseEnter={handleMouseEnter}\n onMouseLeave={handleMouseLeave}\n className={cn(\n \"data-[state=open]:animate-in data-[state=closed]:animate-out\",\n \"data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\",\n \"data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95\",\n \"data-[side=bottom]:slide-in-from-top-2\",\n \"data-[side=left]:slide-in-from-right-2\",\n \"data-[side=right]:slide-in-from-left-2\",\n \"data-[side=top]:slide-in-from-bottom-2\",\n \"z-(--z-popover)\",\n classNames?.submenu,\n )}\n >\n <ContextMenuContent\n items={item.children}\n onClose={onClose}\n level={level + 1}\n classNames={classNames}\n color={color}\n />\n </PopoverPrimitive.Content>\n </PopoverPrimitive.Portal>\n )}\n </PopoverPrimitive.Root>\n );\n};\n\nContextMenuSubMenu.displayName = \"ContextMenuSubMenu\";\n\n/**\n * Context menu content component\n */\nconst ContextMenuContent = ({\n items,\n onClose,\n level = 0,\n className,\n classNames,\n style,\n color = \"default\",\n submenuOpenDelay,\n submenuCloseDelay,\n ...props\n}: ContextMenuContentProps) => {\n const menuRef = useRef<HTMLDivElement>(null);\n\n const enabledIndices = useMemo(\n () =>\n items\n .map((item, i) => (!item.separator && !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) {\n item.onClick?.();\n onClose();\n }\n },\n [items, onClose],\n );\n\n const { highlightedIndex, handleKeyDown, highlightFirst } = useMenuNavigation(\n {\n enabledIndices,\n isOpen: true,\n onClose,\n onSelect: onMenuSelect,\n },\n );\n\n // Highlight first item on mount\n useEffect(() => {\n highlightFirst();\n }, [highlightFirst]);\n\n // Document-level keyboard listener (menu is in a portal, no focus bubbling)\n useEffect(() => {\n const listener = (e: KeyboardEvent) => {\n if (e.key === \"ArrowLeft\" && level > 0) {\n e.preventDefault();\n e.stopImmediatePropagation();\n onClose();\n return;\n }\n handleKeyDown(e);\n e.stopImmediatePropagation();\n };\n document.addEventListener(\"keydown\", listener);\n return () => document.removeEventListener(\"keydown\", listener);\n }, [handleKeyDown, level, onClose]);\n\n return (\n <div\n ref={menuRef}\n className={cn(\n \"contextMenu_content min-w-[180px] rounded-md border border-border bg-background shadow-lg py-1\",\n colorVars[color],\n level === 0 && \"animate-in fade-in-0 zoom-in-95\",\n className,\n classNames?.content,\n )}\n style={style}\n role=\"menu\"\n aria-orientation=\"vertical\"\n tabIndex={-1}\n {...props}\n >\n {items.map((item, index) => {\n if (item.separator) {\n return (\n <div\n key={`separator-${index}`}\n className={cn(\n \"contextMenu_divider h-px bg-border my-1\",\n classNames?.divider,\n )}\n role=\"separator\"\n aria-orientation=\"horizontal\"\n data-slot=\"separator\"\n />\n );\n }\n\n if (item.children) {\n return (\n <ContextMenuSubMenu\n key={item.key}\n item={item}\n onClose={onClose}\n level={level}\n classNames={classNames}\n color={color}\n openDelay={submenuOpenDelay}\n closeDelay={submenuCloseDelay}\n />\n );\n }\n\n const isFocused = highlightedIndex === index;\n\n return (\n <ContextMenuItemDiv\n key={item.key}\n disabled={!!item.disabled}\n className={cn(\n \"contextMenu_item flex items-center justify-between gap-3 px-3 py-2 text-sm cursor-pointer rounded-sm transition-colors mx-1\",\n item.disabled\n ? \"opacity-50 cursor-not-allowed\"\n : \"hover:bg-slot-10 hover:text-slot focus-visible:bg-slot-10 focus-visible:text-slot focus-visible:outline-none\",\n isFocused && !item.disabled && \"bg-slot-10 text-slot\",\n classNames?.item,\n )}\n onClick={() => {\n if (!item.disabled) {\n item.onClick?.();\n onClose();\n }\n }}\n role=\"menuitem\"\n tabIndex={-1}\n aria-disabled={item.disabled}\n data-slot=\"item\"\n >\n <div className=\"flex items-center gap-2 flex-1\">\n {item.icon && (\n <span\n className={cn(\n \"contextMenu_itemIcon shrink-0 w-4 h-4\",\n classNames?.itemIcon,\n )}\n data-slot=\"item-icon\"\n >\n {item.icon}\n </span>\n )}\n <span\n className={cn(\"contextMenu_itemLabel\", classNames?.itemLabel)}\n data-slot=\"item-label\"\n >\n {item.label}\n </span>\n </div>\n {item.shortcut && (\n <span\n className=\"text-xs text-text-secondary shrink-0\"\n data-slot=\"shortcut\"\n >\n {item.shortcut}\n </span>\n )}\n </ContextMenuItemDiv>\n );\n })}\n </div>\n );\n};\n\nContextMenuContent.displayName = \"ContextMenuContent\";\n\n/**\n * ContextMenu component based on Popover\n */\nconst ContextMenu = React.memo(\n ({\n children,\n items,\n className,\n classNames,\n disabled = false,\n onOpenChange,\n open: controlledOpen,\n color = \"default\",\n submenuOpenDelay,\n submenuCloseDelay,\n }: ContextMenuProps) => {\n const [internalOpen, setInternalOpen] = useState(false);\n const [position, setPosition] = useState<DOMRect | null>(null);\n\n const isControlled = controlledOpen !== undefined;\n const isOpen = isControlled ? controlledOpen : internalOpen;\n\n const setOpen = useCallback(\n (open: boolean) => {\n if (!isControlled) {\n setInternalOpen(open);\n }\n onOpenChange?.(open);\n },\n [isControlled, onOpenChange],\n );\n\n const handleContextMenu = useCallback(\n (e: React.MouseEvent) => {\n if (disabled) return;\n\n e.preventDefault();\n e.stopPropagation();\n\n setPosition({\n width: 0,\n height: 0,\n x: e.clientX,\n y: e.clientY,\n top: e.clientY,\n left: e.clientX,\n right: e.clientX,\n bottom: e.clientY,\n toJSON: () => {},\n } as DOMRect);\n\n setOpen(true);\n },\n [disabled, setOpen],\n );\n\n const handleClose = useCallback(() => {\n setOpen(false);\n setPosition(null);\n }, [setOpen]);\n\n return (\n <PopoverPrimitive.Root open={isOpen} onOpenChange={setOpen}>\n {position && (\n <PopoverPrimitive.Anchor\n virtualRef={{\n current: {\n getBoundingClientRect: () => position,\n },\n }}\n />\n )}\n <div\n onContextMenu={handleContextMenu}\n className={cn(\n \"contextMenu_root inline-block\",\n className,\n classNames?.root,\n )}\n role=\"presentation\"\n data-slot=\"root\"\n >\n {children}\n </div>\n\n <PopoverPrimitive.Portal>\n <PopoverPrimitive.Content\n side=\"bottom\"\n align=\"start\"\n sideOffset={0}\n alignOffset={0}\n onOpenAutoFocus={(e: Event) => e.preventDefault()}\n onCloseAutoFocus={(e: Event) => e.preventDefault()}\n onEscapeKeyDown={handleClose}\n onPointerDownOutside={handleClose}\n onInteractOutside={handleClose}\n className=\"z-[var(--z-popover)]\"\n >\n <ContextMenuContent\n items={items}\n onClose={handleClose}\n classNames={classNames}\n color={color}\n submenuOpenDelay={submenuOpenDelay}\n submenuCloseDelay={submenuCloseDelay}\n />\n </PopoverPrimitive.Content>\n </PopoverPrimitive.Portal>\n </PopoverPrimitive.Root>\n );\n },\n);\n\nContextMenu.displayName = \"ContextMenu\";\n\nexport type * from \"./types\";\nexport { ContextMenu, ContextMenuContent };\nexport default ContextMenu;\n"]}
@@ -1,5 +1,5 @@
1
1
  import { Spinner } from './chunk-RRPMZYVN.js';
2
- import { useRipple, RippleContainer } from './chunk-4TEZWGX7.js';
2
+ import { useRipple, RippleContainer } from './chunk-64OCJYSH.js';
3
3
  import { buttonColorVars } from './chunk-G6QIIWKU.js';
4
4
  import { cn } from './chunk-RAS6HUEI.js';
5
5
  import { Slot } from '@radix-ui/react-slot';
@@ -224,5 +224,5 @@ Button.displayName = "Button";
224
224
  var button_default = Button;
225
225
 
226
226
  export { buttonVariants, button_default };
227
- //# sourceMappingURL=chunk-SJLH5ZDW.js.map
228
- //# sourceMappingURL=chunk-SJLH5ZDW.js.map
227
+ //# sourceMappingURL=chunk-4QLYRAW2.js.map
228
+ //# sourceMappingURL=chunk-4QLYRAW2.js.map