@mdigital_ui/ui 0.4.8 → 0.5.1

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 (227) hide show
  1. package/README.md +279 -247
  2. package/dist/alert/index.d.ts.map +1 -1
  3. package/dist/alert/index.js +1 -1
  4. package/dist/autocomplete/index.d.ts.map +1 -1
  5. package/dist/autocomplete/index.js +3 -2
  6. package/dist/avatar/index.d.ts.map +1 -1
  7. package/dist/avatar/index.js +1 -1
  8. package/dist/breadcrumbs/index.js +4 -4
  9. package/dist/button/index.js +2 -2
  10. package/dist/calendar/index.d.ts.map +1 -1
  11. package/dist/calendar/index.js +2 -1
  12. package/dist/cascader/index.d.ts.map +1 -1
  13. package/dist/cascader/index.js +1 -1
  14. package/dist/checkbox/index.d.ts.map +1 -1
  15. package/dist/checkbox/index.js +1 -1
  16. package/dist/checkbox/types.d.ts +2 -0
  17. package/dist/checkbox/types.d.ts.map +1 -1
  18. package/dist/{chunk-Z3DIBMBQ.js → chunk-3K4GIXFA.js} +178 -118
  19. package/dist/chunk-3K4GIXFA.js.map +1 -0
  20. package/dist/{chunk-SJLH5ZDW.js → chunk-4QLYRAW2.js} +3 -3
  21. package/dist/{chunk-SJLH5ZDW.js.map → chunk-4QLYRAW2.js.map} +1 -1
  22. package/dist/{chunk-4TEZWGX7.js → chunk-64OCJYSH.js} +17 -8
  23. package/dist/chunk-64OCJYSH.js.map +1 -0
  24. package/dist/{chunk-5YEC6FDN.js → chunk-6CMHCCDO.js} +14 -7
  25. package/dist/chunk-6CMHCCDO.js.map +1 -0
  26. package/dist/{chunk-7RT65ZGV.js → chunk-6H2Y3QKP.js} +75 -23
  27. package/dist/chunk-6H2Y3QKP.js.map +1 -0
  28. package/dist/{chunk-UFYG3HKL.js → chunk-6K6RGQNL.js} +193 -94
  29. package/dist/chunk-6K6RGQNL.js.map +1 -0
  30. package/dist/{chunk-ROQGBDET.js → chunk-6XXAZ6P2.js} +15 -7
  31. package/dist/chunk-6XXAZ6P2.js.map +1 -0
  32. package/dist/{chunk-3Z7RLVWD.js → chunk-75T5BISG.js} +7 -13
  33. package/dist/chunk-75T5BISG.js.map +1 -0
  34. package/dist/{chunk-XAM5EKOS.js → chunk-7SKAAKBC.js} +13 -12
  35. package/dist/chunk-7SKAAKBC.js.map +1 -0
  36. package/dist/{chunk-6RZEJRTC.js → chunk-7ZUIX4NK.js} +3 -3
  37. package/dist/{chunk-6RZEJRTC.js.map → chunk-7ZUIX4NK.js.map} +1 -1
  38. package/dist/{chunk-NPK4ESMA.js → chunk-B75ICJCX.js} +9 -16
  39. package/dist/chunk-B75ICJCX.js.map +1 -0
  40. package/dist/chunk-CB7YOZWV.js +50 -0
  41. package/dist/chunk-CB7YOZWV.js.map +1 -0
  42. package/dist/{chunk-UFC3RGIN.js → chunk-DXAOZB6J.js} +4 -4
  43. package/dist/chunk-DXAOZB6J.js.map +1 -0
  44. package/dist/{chunk-75N6T3IS.js → chunk-ECBTSKES.js} +13 -10
  45. package/dist/chunk-ECBTSKES.js.map +1 -0
  46. package/dist/{chunk-J2WIZULN.js → chunk-FCIK35OY.js} +3 -3
  47. package/dist/{chunk-J2WIZULN.js.map → chunk-FCIK35OY.js.map} +1 -1
  48. package/dist/{chunk-FY2TZ2NT.js → chunk-GP7R3AFC.js} +58 -30
  49. package/dist/chunk-GP7R3AFC.js.map +1 -0
  50. package/dist/{chunk-ED4CQZ72.js → chunk-GQM5WLP5.js} +4 -4
  51. package/dist/{chunk-ED4CQZ72.js.map → chunk-GQM5WLP5.js.map} +1 -1
  52. package/dist/{chunk-TBKPQOXF.js → chunk-GSLNACUF.js} +3 -3
  53. package/dist/{chunk-TBKPQOXF.js.map → chunk-GSLNACUF.js.map} +1 -1
  54. package/dist/{chunk-OJAHIPPP.js → chunk-HGWD63IR.js} +3 -3
  55. package/dist/{chunk-OJAHIPPP.js.map → chunk-HGWD63IR.js.map} +1 -1
  56. package/dist/chunk-HKQOAEFY.js +1 -1
  57. package/dist/{chunk-PD3O6ZH4.js → chunk-JXOLZBXF.js} +19 -8
  58. package/dist/chunk-JXOLZBXF.js.map +1 -0
  59. package/dist/{chunk-CUXQZRDI.js → chunk-JZCONCJS.js} +13 -3
  60. package/dist/chunk-JZCONCJS.js.map +1 -0
  61. package/dist/{chunk-TDPJYCNI.js → chunk-KBT6UQNA.js} +14 -35
  62. package/dist/chunk-KBT6UQNA.js.map +1 -0
  63. package/dist/{chunk-VNH6R5EU.js → chunk-KR3GBSVA.js} +4 -6
  64. package/dist/chunk-KR3GBSVA.js.map +1 -0
  65. package/dist/{chunk-JWYBDNC6.js → chunk-KTK7LSKX.js} +7 -8
  66. package/dist/chunk-KTK7LSKX.js.map +1 -0
  67. package/dist/{chunk-J4SAIKKZ.js → chunk-L3ZFNHVX.js} +25 -22
  68. package/dist/chunk-L3ZFNHVX.js.map +1 -0
  69. package/dist/{chunk-PB5VGXS5.js → chunk-LBOQJHFH.js} +3 -3
  70. package/dist/{chunk-PB5VGXS5.js.map → chunk-LBOQJHFH.js.map} +1 -1
  71. package/dist/{chunk-XCK62GVU.js → chunk-LZ2MHSYF.js} +8 -5
  72. package/dist/chunk-LZ2MHSYF.js.map +1 -0
  73. package/dist/{chunk-LHZJ2GJU.js → chunk-MHRSK2QC.js} +8 -6
  74. package/dist/chunk-MHRSK2QC.js.map +1 -0
  75. package/dist/{chunk-JIXINKUJ.js → chunk-N742SARE.js} +8 -7
  76. package/dist/chunk-N742SARE.js.map +1 -0
  77. package/dist/{chunk-3XOHSE3X.js → chunk-NA6EVQ6T.js} +3 -3
  78. package/dist/{chunk-3XOHSE3X.js.map → chunk-NA6EVQ6T.js.map} +1 -1
  79. package/dist/{chunk-6ROGWFQ2.js → chunk-NKLKTAUP.js} +3 -3
  80. package/dist/{chunk-6ROGWFQ2.js.map → chunk-NKLKTAUP.js.map} +1 -1
  81. package/dist/{chunk-S6HO7HUY.js → chunk-OSD63E6O.js} +15 -19
  82. package/dist/chunk-OSD63E6O.js.map +1 -0
  83. package/dist/{chunk-QDJ5PZPP.js → chunk-PHA7SLBY.js} +3 -3
  84. package/dist/chunk-PHA7SLBY.js.map +1 -0
  85. package/dist/{chunk-6NXZWLSM.js → chunk-S4BF3Z6O.js} +4 -4
  86. package/dist/{chunk-6NXZWLSM.js.map → chunk-S4BF3Z6O.js.map} +1 -1
  87. package/dist/{chunk-C65SCJD6.js → chunk-SK6YMTMA.js} +5 -12
  88. package/dist/chunk-SK6YMTMA.js.map +1 -0
  89. package/dist/{chunk-DBPLQZJ2.js → chunk-SSISBOLO.js} +75 -22
  90. package/dist/chunk-SSISBOLO.js.map +1 -0
  91. package/dist/{chunk-LWYZCSX4.js → chunk-UBJK5623.js} +12 -11
  92. package/dist/chunk-UBJK5623.js.map +1 -0
  93. package/dist/{chunk-74AF6PO2.js → chunk-UEQ3NEVL.js} +48 -12
  94. package/dist/chunk-UEQ3NEVL.js.map +1 -0
  95. package/dist/{chunk-A4MYCEGM.js → chunk-UHHCUCEE.js} +19 -8
  96. package/dist/chunk-UHHCUCEE.js.map +1 -0
  97. package/dist/{chunk-X7JN7WPF.js → chunk-UIPDAD62.js} +3 -3
  98. package/dist/chunk-UIPDAD62.js.map +1 -0
  99. package/dist/{chunk-YUACN5GJ.js → chunk-UPBKLI62.js} +20 -13
  100. package/dist/chunk-UPBKLI62.js.map +1 -0
  101. package/dist/{chunk-3B32X5PU.js → chunk-UUXSTLOY.js} +7 -5
  102. package/dist/chunk-UUXSTLOY.js.map +1 -0
  103. package/dist/{chunk-HSMO2BR4.js → chunk-VNB7ZHCZ.js} +4 -13
  104. package/dist/chunk-VNB7ZHCZ.js.map +1 -0
  105. package/dist/{chunk-TQEMGWZ2.js → chunk-W4RYNHAG.js} +3 -3
  106. package/dist/{chunk-TQEMGWZ2.js.map → chunk-W4RYNHAG.js.map} +1 -1
  107. package/dist/{chunk-PRDJLQLB.js → chunk-XNV3YAJK.js} +5 -5
  108. package/dist/chunk-XNV3YAJK.js.map +1 -0
  109. package/dist/{chunk-I7HJBHQU.js → chunk-Y3PVWMUN.js} +7 -7
  110. package/dist/chunk-Y3PVWMUN.js.map +1 -0
  111. package/dist/clipboard/index.js +2 -2
  112. package/dist/collapse/index.js +2 -2
  113. package/dist/color-picker/index.d.ts +3 -3
  114. package/dist/color-picker/index.d.ts.map +1 -1
  115. package/dist/color-picker/index.js +3 -2
  116. package/dist/context-menu/index.d.ts +4 -6
  117. package/dist/context-menu/index.d.ts.map +1 -1
  118. package/dist/context-menu/index.js +2 -2
  119. package/dist/date-picker/PickerWrapper.d.ts +3 -3
  120. package/dist/date-picker/PickerWrapper.d.ts.map +1 -1
  121. package/dist/date-picker/index.d.ts.map +1 -1
  122. package/dist/date-picker/index.js +3 -2
  123. package/dist/descriptions/index.js +1 -1
  124. package/dist/dropdown/index.js +3 -3
  125. package/dist/hooks/useControllable.d.ts +9 -2
  126. package/dist/hooks/useControllable.d.ts.map +1 -1
  127. package/dist/hooks/useRipple.d.ts +0 -6
  128. package/dist/hooks/useRipple.d.ts.map +1 -1
  129. package/dist/index.js +46 -46
  130. package/dist/input/index.js +1 -1
  131. package/dist/input-password/index.js +2 -2
  132. package/dist/mentions/index.d.ts.map +1 -1
  133. package/dist/mentions/index.js +2 -1
  134. package/dist/menubar/index.js +2 -2
  135. package/dist/multi-select/index.d.ts.map +1 -1
  136. package/dist/multi-select/index.js +4 -4
  137. package/dist/navigation-menu/index.d.ts.map +1 -1
  138. package/dist/navigation-menu/index.js +1 -1
  139. package/dist/number-input/index.d.ts.map +1 -1
  140. package/dist/number-input/index.js +3 -3
  141. package/dist/pagination/index.js +2 -2
  142. package/dist/popover/index.d.ts +16 -1
  143. package/dist/popover/index.d.ts.map +1 -1
  144. package/dist/popover/index.js +1 -1
  145. package/dist/qr-code/index.d.ts +3 -3
  146. package/dist/qr-code/index.d.ts.map +1 -1
  147. package/dist/qr-code/index.js +1 -1
  148. package/dist/radio/index.d.ts.map +1 -1
  149. package/dist/radio/index.js +1 -1
  150. package/dist/rating/index.js +2 -2
  151. package/dist/resizable/index.d.ts +4 -3
  152. package/dist/resizable/index.d.ts.map +1 -1
  153. package/dist/resizable/index.js +1 -1
  154. package/dist/result/index.d.ts.map +1 -1
  155. package/dist/result/index.js +1 -1
  156. package/dist/select/index.d.ts.map +1 -1
  157. package/dist/select/index.js +4 -4
  158. package/dist/skeleton/index.d.ts +3 -3
  159. package/dist/skeleton/index.d.ts.map +1 -1
  160. package/dist/skeleton/index.js +1 -1
  161. package/dist/table/index.d.ts.map +1 -1
  162. package/dist/table/index.js +8 -8
  163. package/dist/table/types.d.ts +16 -2
  164. package/dist/table/types.d.ts.map +1 -1
  165. package/dist/tags-input/index.d.ts.map +1 -1
  166. package/dist/tags-input/index.js +2 -1
  167. package/dist/textarea/index.d.ts +3 -3
  168. package/dist/textarea/index.d.ts.map +1 -1
  169. package/dist/textarea/index.js +1 -1
  170. package/dist/theme/ThemeProvider.d.ts +18 -2
  171. package/dist/theme/ThemeProvider.d.ts.map +1 -1
  172. package/dist/theme/index.d.ts +1 -1
  173. package/dist/theme/index.d.ts.map +1 -1
  174. package/dist/theme/index.js +1 -1
  175. package/dist/timeline/index.d.ts.map +1 -1
  176. package/dist/timeline/index.js +1 -1
  177. package/dist/toggle/index.d.ts.map +1 -1
  178. package/dist/toggle/index.js +2 -2
  179. package/dist/toggle-group/index.d.ts.map +1 -1
  180. package/dist/toggle-group/index.js +2 -2
  181. package/dist/tour/index.d.ts.map +1 -1
  182. package/dist/tour/index.js +1 -1
  183. package/dist/transfer/index.js +2 -2
  184. package/dist/tree-select/index.js +2 -2
  185. package/dist/typography/index.d.ts.map +1 -1
  186. package/dist/typography/index.js +1 -1
  187. package/dist/upload/index.d.ts.map +1 -1
  188. package/dist/upload/index.js +2 -2
  189. package/package.json +4 -3
  190. package/styles/datepicker.css +126 -0
  191. package/styles/global.css +1 -113
  192. package/dist/chunk-3B32X5PU.js.map +0 -1
  193. package/dist/chunk-3Z7RLVWD.js.map +0 -1
  194. package/dist/chunk-4TEZWGX7.js.map +0 -1
  195. package/dist/chunk-5YEC6FDN.js.map +0 -1
  196. package/dist/chunk-74AF6PO2.js.map +0 -1
  197. package/dist/chunk-75N6T3IS.js.map +0 -1
  198. package/dist/chunk-7RT65ZGV.js.map +0 -1
  199. package/dist/chunk-A4MYCEGM.js.map +0 -1
  200. package/dist/chunk-C65SCJD6.js.map +0 -1
  201. package/dist/chunk-CUXQZRDI.js.map +0 -1
  202. package/dist/chunk-DBPLQZJ2.js.map +0 -1
  203. package/dist/chunk-FY2TZ2NT.js.map +0 -1
  204. package/dist/chunk-HSMO2BR4.js.map +0 -1
  205. package/dist/chunk-I7HJBHQU.js.map +0 -1
  206. package/dist/chunk-J4SAIKKZ.js.map +0 -1
  207. package/dist/chunk-JIXINKUJ.js.map +0 -1
  208. package/dist/chunk-JWYBDNC6.js.map +0 -1
  209. package/dist/chunk-LHZJ2GJU.js.map +0 -1
  210. package/dist/chunk-LWYZCSX4.js.map +0 -1
  211. package/dist/chunk-NPK4ESMA.js.map +0 -1
  212. package/dist/chunk-PD3O6ZH4.js.map +0 -1
  213. package/dist/chunk-PQOIW5CM.js +0 -27
  214. package/dist/chunk-PQOIW5CM.js.map +0 -1
  215. package/dist/chunk-PRDJLQLB.js.map +0 -1
  216. package/dist/chunk-QDJ5PZPP.js.map +0 -1
  217. package/dist/chunk-ROQGBDET.js.map +0 -1
  218. package/dist/chunk-S6HO7HUY.js.map +0 -1
  219. package/dist/chunk-TDPJYCNI.js.map +0 -1
  220. package/dist/chunk-UFC3RGIN.js.map +0 -1
  221. package/dist/chunk-UFYG3HKL.js.map +0 -1
  222. package/dist/chunk-VNH6R5EU.js.map +0 -1
  223. package/dist/chunk-X7JN7WPF.js.map +0 -1
  224. package/dist/chunk-XAM5EKOS.js.map +0 -1
  225. package/dist/chunk-XCK62GVU.js.map +0 -1
  226. package/dist/chunk-YUACN5GJ.js.map +0 -1
  227. package/dist/chunk-Z3DIBMBQ.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/typography/index.tsx"],"names":[],"mappings":";;;;AAOA,IAAM,aAAA,GAAiD;AAAA,EACrD,EAAA,EAAI,IAAA;AAAA,EAAM,EAAA,EAAI,IAAA;AAAA,EAAM,EAAA,EAAI,IAAA;AAAA,EAAM,EAAA,EAAI,IAAA;AAAA,EAAM,EAAA,EAAI,IAAA;AAAA,EAAM,EAAA,EAAI;AACxD,CAAA;AAEA,IAAM,YAAA,GAAgD;AAAA,EACpD,EAAA,EAAI,mCAAA;AAAA,EACJ,EAAA,EAAI,uCAAA;AAAA,EACJ,EAAA,EAAI,wBAAA;AAAA,EACJ,EAAA,EAAI,uBAAA;AAAA,EACJ,EAAA,EAAI,qBAAA;AAAA,EACJ,EAAA,EAAI;AACN,CAAA;AAEA,IAAM,WAAA,GAAwC;AAAA,EAC5C,EAAA,EAAI,SAAA;AAAA,EACJ,EAAA,EAAI,SAAA;AAAA,EACJ,EAAA,EAAI,WAAA;AAAA,EACJ,EAAA,EAAI,SAAA;AAAA,EACJ,EAAA,EAAI,SAAA;AAAA,EACJ,KAAA,EAAO;AACT,CAAA;AAEA,IAAM,aAAA,GAAgB;AAAA,EACpB,KAAA,EAAO,YAAA;AAAA,EACP,MAAA,EAAQ,aAAA;AAAA,EACR,MAAA,EAAQ,aAAA;AAAA,EACR,QAAA,EAAU,eAAA;AAAA,EACV,IAAA,EAAM;AACR,CAAA;AAEA,IAAM,gBAAA,GAAmB;AAAA,EACvB,OAAA,EAAS,mBAAA;AAAA,EACT,OAAA,EAAS,cAAA;AAAA,EACT,SAAA,EAAW,qBAAA;AAAA,EACX,QAAA,EAAU,wBAAA;AAAA,EACV,MAAA,EAAQ,aAAA;AAAA,EACR,OAAA,EAAS,cAAA;AAAA,EACT,KAAA,EAAO,YAAA;AAAA,EACP,OAAA,EAAS,cAAA;AAAA,EACT,IAAA,EAAM,WAAA;AAAA,EACN,OAAA,EAAS;AACX,CAAA;AAEA,SAAS,UAAA,CAAW,EAAE,IAAA,EAAK,EAAqB;AAC9C,EAAA,MAAM,CAAC,MAAA,EAAQ,SAAS,CAAA,GAAI,SAAS,KAAK,CAAA;AAE1C,EAAA,MAAM,UAAA,GAAa,YAAY,YAAY;AACzC,IAAA,IAAI;AACF,MAAA,MAAM,SAAA,CAAU,SAAA,CAAU,SAAA,CAAU,IAAI,CAAA;AACxC,MAAA,SAAA,CAAU,IAAI,CAAA;AACd,MAAA,UAAA,CAAW,MAAM,SAAA,CAAU,KAAK,CAAA,EAAG,GAAI,CAAA;AAAA,IACzC,CAAA,CAAA,MAAQ;AAAA,IAAa;AAAA,EACvB,CAAA,EAAG,CAAC,IAAI,CAAC,CAAA;AAET,EAAA,uBACE,GAAA;AAAA,IAAC,QAAA;AAAA,IAAA;AAAA,MACC,IAAA,EAAK,QAAA;AAAA,MACL,OAAA,EAAS,UAAA;AAAA,MACT,SAAA,EAAU,4GAAA;AAAA,MACV,YAAA,EAAW,mBAAA;AAAA,MAEV,mCACC,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,aAAA,EAAc,SAAQ,WAAA,EAAY,IAAA,EAAK,MAAA,EAAO,MAAA,EAAO,gBAAe,WAAA,EAAY,GAAA,EAAI,eAAc,OAAA,EAAQ,cAAA,EAAe,SACtI,QAAA,kBAAA,GAAA,CAAC,UAAA,EAAA,EAAS,MAAA,EAAO,gBAAA,EAAiB,GACpC,CAAA,mBAEA,IAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,eAAc,OAAA,EAAQ,WAAA,EAAY,IAAA,EAAK,MAAA,EAAO,QAAO,cAAA,EAAe,WAAA,EAAY,KAAI,aAAA,EAAc,OAAA,EAAQ,gBAAe,OAAA,EACtI,QAAA,EAAA;AAAA,wBAAA,GAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,GAAA,EAAI,CAAA,EAAE,GAAA,EAAI,KAAA,EAAM,IAAA,EAAK,MAAA,EAAO,IAAA,EAAK,EAAA,EAAG,GAAA,EAAI,EAAA,EAAG,GAAA,EAAI,CAAA;AAAA,wBACvD,GAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,oDAAA,EAAqD;AAAA,OAAA,EAC/D;AAAA;AAAA,GAEJ;AAEJ;AAEA,SAAS,aAAA,CAAc,UAAwC,GAAA,EAA0C;AACvG,EAAA,MAAM,CAAC,QAAA,EAAU,WAAW,CAAA,GAAI,SAAS,KAAK,CAAA;AAC9C,EAAA,MAAM,CAAC,WAAA,EAAa,cAAc,CAAA,GAAI,SAAS,KAAK,CAAA;AAEpD,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,IAAI,CAAC,QAAA,IAAY,QAAA,IAAY,CAAC,IAAI,OAAA,EAAS;AAC3C,IAAA,MAAM,KAAK,GAAA,CAAI,OAAA;AACf,IAAA,cAAA,CAAe,GAAG,YAAA,GAAe,EAAA,CAAG,gBAAgB,EAAA,CAAG,WAAA,GAAc,GAAG,WAAW,CAAA;AAAA,EACrF,CAAA,EAAG,CAAC,QAAA,EAAU,QAAA,EAAU,GAAG,CAAC,CAAA;AAE5B,EAAA,OAAO,EAAE,QAAA,EAAU,WAAA,EAAa,WAAA,EAAY;AAC9C;AAGA,IAAM,QAAQ,KAAA,CAAM,IAAA;AAAA,EAClB,CAAC,EAAE,KAAA,GAAQ,IAAA,EAAM,KAAA,GAAQ,SAAA,EAAW,QAAA,GAAW,KAAA,EAAO,SAAA,EAAW,QAAA,EAAU,GAAG,KAAA,EAAM,KAAM;AACxF,IAAA,MAAM,GAAA,GAAM,cAAc,KAAK,CAAA;AAC/B,IAAA,MAAM,WAAA,GAAc,OAAO,QAAA,KAAa,QAAA,GAAW,QAAA,GAAW,EAAA;AAE9D,IAAA,OAAO,KAAA,CAAM,aAAA;AAAA,MACX,GAAA;AAAA,MACA;AAAA,QACE,WAAA,EAAa,OAAA;AAAA,QACb,SAAA,EAAW,EAAA,CAAG,kBAAA,EAAoB,YAAA,CAAa,KAAK,GAAG,gBAAA,CAAiB,KAAK,CAAA,IAAK,EAAA,EAAI,SAAS,CAAA;AAAA,QAC/F,GAAG;AAAA,OACL;AAAA,sBACA,IAAA,CAAA,QAAA,EAAA,EACG,QAAA,EAAA;AAAA,QAAA,QAAA;AAAA,QACA,QAAA,IAAY,WAAA,oBAAe,GAAA,CAAC,UAAA,EAAA,EAAW,MAAM,WAAA,EAAa;AAAA,OAAA,EAC7D;AAAA,KACF;AAAA,EACF;AACF;AAEA,KAAA,CAAM,WAAA,GAAc,OAAA;AAGpB,IAAM,OAAO,KAAA,CAAM,IAAA;AAAA,EACjB,CAAC;AAAA,IACC,IAAA,GAAO,IAAA;AAAA,IACP,MAAA;AAAA,IACA,KAAA,GAAQ,SAAA;AAAA,IACR,QAAA;AAAA,IACA,QAAA,GAAW,KAAA;AAAA,IACX,IAAA,GAAO,KAAA;AAAA,IACP,IAAA,GAAO,KAAA;AAAA,IACP,KAAK,OAAA,GAAU,KAAA;AAAA,IACf,SAAA,GAAY,KAAA;AAAA,IACZ,MAAA,GAAS,KAAA;AAAA,IACT,MAAA,GAAS,KAAA;AAAA,IACT,IAAI,SAAA,GAAY,MAAA;AAAA,IAChB,SAAA;AAAA,IACA,QAAA;AAAA,IACA,GAAG;AAAA,GACL,KAAM;AACJ,IAAA,MAAM,GAAA,GAAM,OAAoB,IAAI,CAAA;AACpC,IAAA,MAAM,EAAE,QAAA,EAAU,WAAA,EAAa,aAAY,GAAI,aAAA,CAAc,UAAU,GAAG,CAAA;AAC1E,IAAA,MAAM,WAAA,GAAc,OAAO,QAAA,KAAa,QAAA,GAAW,QAAA,GAAW,EAAA;AAE9D,IAAA,MAAM,aAAA,GAAgB,CAAC,QAAA,IAAY,QAAA,GAC/B,OAAO,aAAa,QAAA,GAClB,CAAA,WAAA,EAAc,QAAQ,CAAA,CAAA,GACtB,UAAA,GACF,EAAA;AAEJ,IAAA,IAAI,OAAA,GAA2B,QAAA;AAC/B,IAAA,IAAI,MAAM,OAAA,mBAAU,GAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,oDAAoD,QAAA,EAAA,OAAA,EAAQ,CAAA;AAChG,IAAA,IAAI,MAAM,OAAA,mBAAU,GAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,mCAAmC,QAAA,EAAA,OAAA,EAAQ,CAAA;AAC/E,IAAA,IAAI,OAAA,EAAS,OAAA,mBAAU,GAAA,CAAC,KAAA,EAAA,EAAK,QAAA,EAAA,OAAA,EAAQ,CAAA;AACrC,IAAA,IAAI,SAAA,EAAW,OAAA,mBAAU,GAAA,CAAC,GAAA,EAAA,EAAG,QAAA,EAAA,OAAA,EAAQ,CAAA;AACrC,IAAA,IAAI,MAAA,EAAQ,OAAA,mBAAU,GAAA,CAAC,QAAA,EAAA,EAAQ,QAAA,EAAA,OAAA,EAAQ,CAAA;AACvC,IAAA,IAAI,MAAA,EAAQ,OAAA,mBAAU,GAAA,CAAC,IAAA,EAAA,EAAI,QAAA,EAAA,OAAA,EAAQ,CAAA;AAEnC,IAAA,OAAO,KAAA,CAAM,aAAA;AAAA,MACX,SAAA;AAAA,MACA;AAAA,QACE,GAAA;AAAA,QACA,WAAA,EAAa,MAAA;AAAA,QACb,SAAA,EAAW,EAAA;AAAA,UACT,iBAAA;AAAA,UACA,YAAY,IAAI,CAAA;AAAA,UAChB,MAAA,IAAU,cAAc,MAAM,CAAA;AAAA,UAC9B,gBAAA,CAAiB,KAAK,CAAA,IAAK,EAAA;AAAA,UAC3B,aAAA;AAAA,UACA;AAAA,SACF;AAAA,QACA,GAAG;AAAA,OACL;AAAA,sBACA,IAAA,CAAA,QAAA,EAAA,EACG,QAAA,EAAA;AAAA,QAAA,OAAA;AAAA,QACA,QAAA,IAAY,WAAA,oBAAe,GAAA,CAAC,UAAA,EAAA,EAAW,MAAM,WAAA,EAAa,CAAA;AAAA,QAC1D,WAAA,IAAe,CAAC,QAAA,oBACf,GAAA;AAAA,UAAC,QAAA;AAAA,UAAA;AAAA,YACC,IAAA,EAAK,QAAA;AAAA,YACL,OAAA,EAAS,MAAM,WAAA,CAAY,IAAI,CAAA;AAAA,YAC/B,SAAA,EAAU,qEAAA;AAAA,YACX,QAAA,EAAA;AAAA;AAAA;AAED,OAAA,EAEJ;AAAA,KACF;AAAA,EACF;AACF;AAEA,IAAA,CAAK,WAAA,GAAc,MAAA;AAGnB,IAAM,YAAY,KAAA,CAAM,IAAA;AAAA,EACtB,CAAC;AAAA,IACC,IAAA,GAAO,IAAA;AAAA,IACP,KAAA,GAAQ,SAAA;AAAA,IACR,QAAA;AAAA,IACA,QAAA,GAAW,KAAA;AAAA,IACX,SAAA;AAAA,IACA,QAAA;AAAA,IACA,GAAG;AAAA,GACL,KAAM;AACJ,IAAA,MAAM,GAAA,GAAM,OAA6B,IAAI,CAAA;AAC7C,IAAA,MAAM,EAAE,QAAA,EAAU,WAAA,EAAa,aAAY,GAAI,aAAA,CAAc,UAAU,GAAG,CAAA;AAC1E,IAAA,MAAM,WAAA,GAAc,OAAO,QAAA,KAAa,QAAA,GAAW,QAAA,GAAW,EAAA;AAE9D,IAAA,MAAM,aAAA,GAAgB,CAAC,QAAA,IAAY,QAAA,GAC/B,OAAO,aAAa,QAAA,GAClB,CAAA,WAAA,EAAc,QAAQ,CAAA,CAAA,GACtB,UAAA,GACF,EAAA;AAEJ,IAAA,uBACE,IAAA;AAAA,MAAC,GAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,WAAA,EAAU,WAAA;AAAA,QACV,SAAA,EAAW,EAAA;AAAA,UACT,sBAAA;AAAA,UACA,YAAY,IAAI,CAAA;AAAA,UAChB,gBAAA,CAAiB,KAAK,CAAA,IAAK,EAAA;AAAA,UAC3B,aAAA;AAAA,UACA,iBAAA;AAAA,UACA;AAAA,SACF;AAAA,QACC,GAAG,KAAA;AAAA,QAEH,QAAA,EAAA;AAAA,UAAA,QAAA;AAAA,UACA,QAAA,IAAY,WAAA,oBAAe,GAAA,CAAC,UAAA,EAAA,EAAW,MAAM,WAAA,EAAa,CAAA;AAAA,UAC1D,WAAA,IAAe,CAAC,QAAA,oBACf,GAAA;AAAA,YAAC,QAAA;AAAA,YAAA;AAAA,cACC,IAAA,EAAK,QAAA;AAAA,cACL,OAAA,EAAS,MAAM,WAAA,CAAY,IAAI,CAAA;AAAA,cAC/B,SAAA,EAAU,qEAAA;AAAA,cACX,QAAA,EAAA;AAAA;AAAA;AAED;AAAA;AAAA,KAEJ;AAAA,EAEJ;AACF;AAEA,SAAA,CAAU,WAAA,GAAc,WAAA","file":"chunk-VNH6R5EU.js","sourcesContent":["'use client'\n\nimport React, { useState, useCallback, useRef, useEffect } from 'react'\n\nimport { cn } from '../utils'\nimport type { TitleProps, TextProps, ParagraphProps, TypographyLevel, TextSize } from './types'\n\nconst levelElements: Record<TypographyLevel, string> = {\n h1: 'h1', h2: 'h2', h3: 'h3', h4: 'h4', h5: 'h5', h6: 'h6',\n}\n\nconst levelClasses: Record<TypographyLevel, string> = {\n h1: 'text-4xl font-bold tracking-tight',\n h2: 'text-3xl font-semibold tracking-tight',\n h3: 'text-2xl font-semibold',\n h4: 'text-xl font-semibold',\n h5: 'text-lg font-medium',\n h6: 'text-base font-medium',\n}\n\nconst sizeClasses: Record<TextSize, string> = {\n xs: 'text-xs',\n sm: 'text-sm',\n md: 'text-base',\n lg: 'text-lg',\n xl: 'text-xl',\n '2xl': 'text-2xl',\n}\n\nconst weightClasses = {\n light: 'font-light',\n normal: 'font-normal',\n medium: 'font-medium',\n semibold: 'font-semibold',\n bold: 'font-bold',\n}\n\nconst textColorClasses = {\n default: 'text-text-primary',\n primary: 'text-primary',\n secondary: 'text-text-secondary',\n tertiary: 'text-text-secondary/60',\n accent: 'text-accent',\n success: 'text-success',\n error: 'text-error',\n warning: 'text-warning',\n info: 'text-info',\n inherit: '',\n}\n\nfunction CopyButton({ text }: { text: string }) {\n const [copied, setCopied] = useState(false)\n\n const handleCopy = useCallback(async () => {\n try {\n await navigator.clipboard.writeText(text)\n setCopied(true)\n setTimeout(() => setCopied(false), 2000)\n } catch { /* noop */ }\n }, [text])\n\n return (\n <button\n type=\"button\"\n onClick={handleCopy}\n className=\"inline-flex items-center ml-1 text-text-secondary hover:text-text-primary transition-colors cursor-pointer\"\n aria-label=\"Copy to clipboard\"\n >\n {copied ? (\n <svg className=\"w-3.5 h-3.5\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\">\n <polyline points=\"20 6 9 17 4 12\" />\n </svg>\n ) : (\n <svg className=\"w-3.5 h-3.5\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\">\n <rect x=\"9\" y=\"9\" width=\"13\" height=\"13\" rx=\"2\" ry=\"2\" />\n <path d=\"M5 15H4a2 2 0 01-2-2V4a2 2 0 012-2h9a2 2 0 012 2v1\" />\n </svg>\n )}\n </button>\n )\n}\n\nfunction useTruncation(truncate: boolean | number | undefined, ref: React.RefObject<HTMLElement | null>) {\n const [expanded, setExpanded] = useState(false)\n const [isTruncated, setIsTruncated] = useState(false)\n\n useEffect(() => {\n if (!truncate || expanded || !ref.current) return\n const el = ref.current\n setIsTruncated(el.scrollHeight > el.clientHeight || el.scrollWidth > el.clientWidth)\n }, [truncate, expanded, ref])\n\n return { expanded, setExpanded, isTruncated }\n}\n\n// ── Title ────────────────────────────────────────────────────\nconst Title = React.memo<TitleProps>(\n ({ level = 'h1', color = 'default', copyable = false, className, children, ...props }) => {\n const Tag = levelElements[level]\n const textContent = typeof children === 'string' ? children : ''\n\n return React.createElement(\n Tag as any,\n {\n 'data-slot': 'title',\n className: cn('typography_title', levelClasses[level], textColorClasses[color] || '', className),\n ...props,\n },\n <>\n {children}\n {copyable && textContent && <CopyButton text={textContent} />}\n </>,\n )\n },\n)\n\nTitle.displayName = 'Title'\n\n// ── Text ─────────────────────────────────────────────────────\nconst Text = React.memo<TextProps>(\n ({\n size = 'md',\n weight,\n color = 'default',\n truncate,\n copyable = false,\n code = false,\n mark = false,\n del: deleted = false,\n underline = false,\n strong = false,\n italic = false,\n as: Component = 'span',\n className,\n children,\n ...props\n }) => {\n const ref = useRef<HTMLElement>(null)\n const { expanded, setExpanded, isTruncated } = useTruncation(truncate, ref)\n const textContent = typeof children === 'string' ? children : ''\n\n const truncateClass = !expanded && truncate\n ? typeof truncate === 'number'\n ? `line-clamp-${truncate}`\n : 'truncate'\n : ''\n\n let content: React.ReactNode = children\n if (code) content = <code className=\"px-1 py-0.5 rounded bg-surface text-sm font-mono\">{content}</code>\n if (mark) content = <mark className=\"bg-warning/20 px-0.5 rounded-sm\">{content}</mark>\n if (deleted) content = <del>{content}</del>\n if (underline) content = <u>{content}</u>\n if (strong) content = <strong>{content}</strong>\n if (italic) content = <em>{content}</em>\n\n return React.createElement(\n Component,\n {\n ref: ref as any,\n 'data-slot': 'text',\n className: cn(\n 'typography_text',\n sizeClasses[size],\n weight && weightClasses[weight],\n textColorClasses[color] || '',\n truncateClass,\n className,\n ),\n ...props,\n },\n <>\n {content}\n {copyable && textContent && <CopyButton text={textContent} />}\n {isTruncated && !expanded && (\n <button\n type=\"button\"\n onClick={() => setExpanded(true)}\n className=\"text-primary hover:text-primary/80 ml-1 text-inherit cursor-pointer\"\n >\n more\n </button>\n )}\n </>,\n )\n },\n)\n\nText.displayName = 'Text'\n\n// ── Paragraph ────────────────────────────────────────────────\nconst Paragraph = React.memo<ParagraphProps>(\n ({\n size = 'md',\n color = 'default',\n truncate,\n copyable = false,\n className,\n children,\n ...props\n }) => {\n const ref = useRef<HTMLParagraphElement>(null)\n const { expanded, setExpanded, isTruncated } = useTruncation(truncate, ref)\n const textContent = typeof children === 'string' ? children : ''\n\n const truncateClass = !expanded && truncate\n ? typeof truncate === 'number'\n ? `line-clamp-${truncate}`\n : 'truncate'\n : ''\n\n return (\n <p\n ref={ref}\n data-slot=\"paragraph\"\n className={cn(\n 'typography_paragraph',\n sizeClasses[size],\n textColorClasses[color] || '',\n truncateClass,\n 'leading-relaxed',\n className,\n )}\n {...props}\n >\n {children}\n {copyable && textContent && <CopyButton text={textContent} />}\n {isTruncated && !expanded && (\n <button\n type=\"button\"\n onClick={() => setExpanded(true)}\n className=\"text-primary hover:text-primary/80 ml-1 text-inherit cursor-pointer\"\n >\n more\n </button>\n )}\n </p>\n )\n },\n)\n\nParagraph.displayName = 'Paragraph'\n\nexport type * from './types'\nexport { Title, Text, Paragraph }\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/skeleton/index.tsx"],"names":[],"mappings":";;;;;;AASA,IAAM,gBAAA,GAAmB,IAAI,uBAAA,EAAyB;AAAA,EACpD,QAAA,EAAU;AAAA,IACR,IAAA,EAAM;AAAA,MACJ,EAAA,EAAI,KAAA;AAAA,MACJ,EAAA,EAAI,KAAA;AAAA,MACJ,EAAA,EAAI,KAAA;AAAA,MACJ,EAAA,EAAI;AAAA,KACN;AAAA,IACA,KAAA,EAAO;AAAA,GACT;AAAA,EACA,eAAA,EAAiB;AAAA,IACf,IAAA,EAAM,IAAA;AAAA,IACN,KAAA,EAAO;AAAA;AAEX,CAAC,CAAA;AAED,IAAM,WAAW,KAAA,CAAM,IAAA;AAAA,EACrB,CAAC,EAAE,KAAA,GAAQ,SAAA,EAAW,OAAO,IAAA,EAAM,SAAA,EAAW,MAAA,GAAS,KAAA,EAAM,KAAM;AACjE,IAAA,uBACE,GAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,WAAA,EAAU,MAAA;AAAA,QACV,IAAA,EAAK,QAAA;AAAA,QACL,WAAA,EAAU,MAAA;AAAA,QACV,YAAA,EAAW,SAAA;AAAA,QACX,SAAA,EAAW,EAAA;AAAA,UACT,eAAA;AAAA,UACA,gBAAA,CAAiB,EAAE,IAAA,EAAM,KAAA,EAAO,CAAA;AAAA,UAChC,YAAA;AAAA,UACA,MAAA,IAAU,4BAAA;AAAA,UACV;AAAA;AACF;AAAA,KACF;AAAA,EAEJ;AACF,CAAA;AAEA,QAAA,CAAS,WAAA,GAAc,UAAA;AAGvB,IAAO,gBAAA,GAAQ","file":"chunk-X7JN7WPF.js","sourcesContent":["'use client'\n\nimport { cva } from 'class-variance-authority'\nimport React from 'react'\n\nimport { cn } from '../utils'\nimport { colorVars } from '../variants'\nimport type { SkeletonProps } from './types'\n\nconst skeletonVariants = cva('animate-pulse rounded', {\n variants: {\n size: {\n xs: 'h-3',\n sm: 'h-4',\n md: 'h-5',\n lg: 'h-6',\n },\n color: colorVars,\n },\n defaultVariants: {\n size: 'md',\n color: 'default',\n },\n})\n\nconst Skeleton = React.memo<SkeletonProps>(\n ({ color = 'default', size = 'md', className, circle = false }) => {\n return (\n <div\n data-slot=\"root\"\n role=\"status\"\n aria-busy=\"true\"\n aria-label=\"Loading\"\n className={cn(\n 'skeleton_root',\n skeletonVariants({ size, color }),\n 'bg-slot-50',\n circle && 'rounded-full aspect-square',\n className,\n )}\n />\n )\n },\n)\n\nSkeleton.displayName = 'Skeleton'\n\nexport type * from './types'\nexport default Skeleton\n"]}
@@ -1 +0,0 @@
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 +0,0 @@
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 +0,0 @@
1
- {"version":3,"sources":["../src/tour/index.tsx"],"names":[],"mappings":";;;;;AAQA,SAAS,iBAAiB,MAAA,EAAiE;AACzF,EAAA,IAAI,OAAO,MAAA,KAAW,UAAA,EAAY,OAAO,MAAA,EAAO;AAChD,EAAA,OAAO,QAAA,CAAS,cAAc,MAAM,CAAA;AACtC;AAEA,SAAS,sBAAsB,EAAA,EAAyB;AACtD,EAAA,IAAI,OAAO,MAAA,KAAW,WAAA,EAAa,OAAO,KAAA;AAC1C,EAAA,OAAO,gBAAA,CAAiB,EAAE,CAAA,CAAE,YAAA,IAAgB,KAAA;AAC9C;AAGA,SAAS,sBAAA,CACP,IAAA,EACA,SAAA,EACA,GAAA,EAC+B;AAC/B,EAAA,MAAM,IAAA,GAAO,SAAA,CAAU,KAAA,CAAM,GAAG,EAAE,CAAC,CAAA;AACnC,EAAA,MAAM,KAAA,GAAQ,SAAA,CAAU,KAAA,CAAM,GAAG,EAAE,CAAC,CAAA;AAEpC,EAAA,IAAI,GAAA,GAAM,CAAA;AACV,EAAA,IAAI,IAAA,GAAO,CAAA;AAEX,EAAA,MAAM,EAAA,GAAK,IAAA,CAAK,IAAA,GAAO,IAAA,CAAK,KAAA,GAAQ,CAAA;AACpC,EAAA,MAAM,EAAA,GAAK,IAAA,CAAK,GAAA,GAAM,IAAA,CAAK,MAAA,GAAS,CAAA;AAEpC,EAAA,IAAI,SAAS,QAAA,EAAU;AACrB,IAAA,GAAA,GAAM,KAAK,MAAA,GAAS,GAAA;AACpB,IAAA,IAAA,GAAO,UAAU,OAAA,GAAU,IAAA,CAAK,OAAO,KAAA,KAAU,KAAA,GAAQ,KAAK,KAAA,GAAQ,EAAA;AAAA,EACxE,CAAA,MAAA,IAAW,SAAS,KAAA,EAAO;AACzB,IAAA,GAAA,GAAM,KAAK,GAAA,GAAM,GAAA;AACjB,IAAA,IAAA,GAAO,UAAU,OAAA,GAAU,IAAA,CAAK,OAAO,KAAA,KAAU,KAAA,GAAQ,KAAK,KAAA,GAAQ,EAAA;AAAA,EACxE,CAAA,MAAA,IAAW,SAAS,MAAA,EAAQ;AAC1B,IAAA,GAAA,GAAM,UAAU,OAAA,GAAU,IAAA,CAAK,MAAM,KAAA,KAAU,KAAA,GAAQ,KAAK,MAAA,GAAS,EAAA;AACrE,IAAA,IAAA,GAAO,KAAK,IAAA,GAAO,GAAA;AAAA,EACrB,CAAA,MAAO;AACL,IAAA,GAAA,GAAM,UAAU,OAAA,GAAU,IAAA,CAAK,MAAM,KAAA,KAAU,KAAA,GAAQ,KAAK,MAAA,GAAS,EAAA;AACrE,IAAA,IAAA,GAAO,KAAK,KAAA,GAAQ,GAAA;AAAA,EACtB;AAEA,EAAA,OAAO,EAAE,KAAK,IAAA,EAAK;AACrB;AAEA,SAAS,eAAA,CACP,IAAA,EACA,SAAA,EACA,GAAA,EACqB;AACrB,EAAA,MAAM,IAAA,GAAO,SAAA,CAAU,KAAA,CAAM,GAAG,EAAE,CAAC,CAAA;AACnC,EAAA,MAAM,KAAA,GAAQ,SAAA,CAAU,KAAA,CAAM,GAAG,EAAE,CAAC,CAAA;AAEpC,EAAA,MAAM,GAAA,GAAM,sBAAA,CAAuB,IAAA,EAAM,SAAA,EAAW,GAAG,CAAA;AACvD,EAAA,MAAM,KAAA,GAA6B;AAAA,IACjC,QAAA,EAAU,OAAA;AAAA,IACV,KAAK,GAAA,CAAI,GAAA;AAAA,IACT,MAAM,GAAA,CAAI;AAAA,GACZ;AAGA,EAAA,IAAI,SAAS,QAAA,EAAU;AACrB,IAAA,IAAI,CAAC,KAAA,EAAO,KAAA,CAAM,SAAA,GAAY,kBAAA;AAAA,SAAA,IACrB,KAAA,KAAU,KAAA,EAAO,KAAA,CAAM,SAAA,GAAY,mBAAA;AAAA,EAC9C,CAAA,MAAA,IAAW,SAAS,KAAA,EAAO;AACzB,IAAA,IAAI,CAAC,KAAA,EAAO,KAAA,CAAM,SAAA,GAAY,wBAAA;AAAA,SAAA,IACrB,KAAA,KAAU,OAAA,EAAS,KAAA,CAAM,SAAA,GAAY,mBAAA;AAAA,eACnC,SAAA,GAAY,yBAAA;AAAA,EACzB,CAAA,MAAA,IAAW,SAAS,MAAA,EAAQ;AAC1B,IAAA,IAAI,CAAC,KAAA,EAAO,KAAA,CAAM,SAAA,GAAY,wBAAA;AAAA,SAAA,IACrB,KAAA,KAAU,OAAA,EAAS,KAAA,CAAM,SAAA,GAAY,mBAAA;AAAA,eACnC,SAAA,GAAY,yBAAA;AAAA,EACzB,CAAA,MAAO;AACL,IAAA,IAAI,CAAC,KAAA,EAAO,KAAA,CAAM,SAAA,GAAY,kBAAA;AAAA,SAAA,IACrB,KAAA,KAAU,KAAA,EAAO,KAAA,CAAM,SAAA,GAAY,mBAAA;AAAA,EAC9C;AAEA,EAAA,OAAO,KAAA;AACT;AAEA,IAAM,OAAA,GAAU;AAAA,EACd,EAAA,EAAI,EAAE,OAAA,EAAS,CAAA,EAAG,GAAA,EAAK,CAAA,EAAG,OAAA,EAAS,mBAAA,EAAqB,KAAA,EAAO,uBAAA,EAAyB,IAAA,EAAM,SAAA,EAAW,KAAK,oBAAA,EAAqB;AAAA,EACnI,EAAA,EAAI,EAAE,OAAA,EAAS,CAAA,EAAG,GAAA,EAAK,EAAA,EAAI,OAAA,EAAS,qBAAA,EAAuB,KAAA,EAAO,uBAAA,EAAyB,IAAA,EAAM,SAAA,EAAW,KAAK,kBAAA,EAAmB;AAAA,EACpI,EAAA,EAAI,EAAE,OAAA,EAAS,CAAA,EAAG,GAAA,EAAK,EAAA,EAAI,OAAA,EAAS,mBAAA,EAAqB,KAAA,EAAO,yBAAA,EAA2B,IAAA,EAAM,SAAA,EAAW,KAAK,kBAAA,EAAmB;AAAA,EACpI,EAAA,EAAI,EAAE,OAAA,EAAS,EAAA,EAAI,GAAA,EAAK,EAAA,EAAI,OAAA,EAAS,mBAAA,EAAqB,KAAA,EAAO,uBAAA,EAAyB,IAAA,EAAM,WAAA,EAAa,KAAK,kBAAA;AACpH,CAAA;AAGA,IAAM,IAAA,GAAO,8BAAA;AACb,IAAM,QAAA,GAAW,OAAA;AAEjB,IAAM,OAAO,KAAA,CAAM,IAAA;AAAA,EACjB,CAAC;AAAA,IACC,KAAA;AAAA,IACA,IAAA,EAAM,cAAA;AAAA,IACN,YAAA;AAAA,IACA,OAAA,EAAS,iBAAA;AAAA,IACT,eAAA;AAAA,IACA,KAAA,GAAQ,SAAA;AAAA,IACR,IAAA,GAAO,IAAA;AAAA,IACP,YAAA,GAAe,IAAA;AAAA,IACf,QAAA,GAAW,IAAA;AAAA,IACX,QAAA,GAAW,MAAA;AAAA,IACX,UAAA,GAAa,QAAA;AAAA,IACb,QAAA,GAAW,MAAA;AAAA,IACX,QAAA,GAAW,MAAA;AAAA,IACX,QAAA;AAAA,IACA,MAAA;AAAA,IACA,gBAAA,GAAmB,KAAA;AAAA,IACnB,SAAA;AAAA,IACA;AAAA,GACF,KAAM;AACJ,IAAA,MAAM,CAAC,YAAA,EAAc,eAAe,CAAA,GAAI,SAAS,KAAK,CAAA;AACtD,IAAA,MAAM,CAAC,eAAA,EAAiB,kBAAkB,CAAA,GAAI,SAAS,CAAC,CAAA;AACxD,IAAA,MAAM,MAAA,GAAS,cAAA,KAAmB,MAAA,GAAY,cAAA,GAAiB,YAAA;AAC/D,IAAA,MAAM,OAAA,GAAU,iBAAA,KAAsB,MAAA,GAAY,iBAAA,GAAoB,eAAA;AAEtE,IAAA,MAAM,CAAC,UAAA,EAAY,aAAa,CAAA,GAAI,SAAyB,IAAI,CAAA;AACjE,IAAA,MAAM,CAAC,YAAA,EAAc,eAAe,CAAA,GAAI,SAAS,KAAK,CAAA;AACtD,IAAA,MAAM,CAAC,QAAA,EAAU,WAAW,CAAA,GAAI,SAAS,KAAK,CAAA;AAC9C,IAAA,MAAM,CAAC,aAAA,EAAe,gBAAgB,CAAA,GAAI,SAAS,KAAK,CAAA;AACxD,IAAA,MAAM,UAAA,GAAa,OAAuB,IAAI,CAAA;AAE9C,IAAA,MAAM,OAAA,GAAU,WAAA;AAAA,MACd,CAAC,CAAA,KAAe;AACd,QAAA,IAAI,cAAA,KAAmB,MAAA,EAAW,eAAA,CAAgB,CAAC,CAAA;AACnD,QAAA,YAAA,GAAe,CAAC,CAAA;AAAA,MAClB,CAAA;AAAA,MACA,CAAC,gBAAgB,YAAY;AAAA,KAC/B;AAEA,IAAA,MAAM,UAAA,GAAa,WAAA;AAAA,MACjB,CAAC,CAAA,KAAc;AAEb,QAAA,gBAAA,CAAiB,IAAI,CAAA;AACrB,QAAA,UAAA,CAAW,MAAM;AACf,UAAA,IAAI,iBAAA,KAAsB,MAAA,EAAW,kBAAA,CAAmB,CAAC,CAAA;AACzD,UAAA,eAAA,GAAkB,CAAC,CAAA;AACnB,UAAA,gBAAA,CAAiB,KAAK,CAAA;AAAA,QACxB,GAAG,GAAG,CAAA;AAAA,MACR,CAAA;AAAA,MACA,CAAC,mBAAmB,eAAe;AAAA,KACrC;AAEA,IAAA,MAAM,IAAA,GAAO,MAAM,OAAO,CAAA;AAC1B,IAAA,MAAM,CAAA,GAAI,QAAQ,IAAI,CAAA;AAGtB,IAAA,SAAA,CAAU,MAAM;AACd,MAAA,IAAI,MAAA,EAAQ;AACV,QAAA,WAAA,CAAY,IAAI,CAAA;AAChB,QAAA,MAAM,IAAI,UAAA,CAAW,MAAM,WAAA,CAAY,KAAK,GAAG,GAAG,CAAA;AAClD,QAAA,OAAO,MAAM,aAAa,CAAC,CAAA;AAAA,MAC7B;AAAA,IACF,CAAA,EAAG,CAAC,MAAM,CAAC,CAAA;AAGX,IAAA,SAAA,CAAU,MAAM;AACd,MAAA,IAAI,CAAC,MAAA,IAAU,CAAC,IAAA,EAAM;AAAE,QAAA,aAAA,CAAc,IAAI,CAAA;AAAG,QAAA;AAAA,MAAO;AACpD,MAAA,MAAM,EAAA,GAAK,gBAAA,CAAiB,IAAA,CAAK,MAAM,CAAA;AACvC,MAAA,IAAI,CAAC,EAAA,EAAI;AAAE,QAAA,aAAA,CAAc,IAAI,CAAA;AAAG,QAAA;AAAA,MAAO;AAEvC,MAAA,MAAM,aAAa,MAAM;AACvB,QAAA,aAAA,CAAc,EAAA,CAAG,uBAAuB,CAAA;AACxC,QAAA,eAAA,CAAgB,qBAAA,CAAsB,EAAE,CAAC,CAAA;AAAA,MAC3C,CAAA;AACA,MAAA,UAAA,EAAW;AAEX,MAAA,EAAA,CAAG,eAAe,EAAE,QAAA,EAAU,QAAA,EAAU,KAAA,EAAO,UAAU,CAAA;AAEzD,MAAA,MAAM,EAAA,GAAK,IAAI,cAAA,CAAe,UAAU,CAAA;AACxC,MAAA,EAAA,CAAG,QAAQ,EAAE,CAAA;AACb,MAAA,MAAA,CAAO,iBAAiB,QAAA,EAAU,UAAA,EAAY,EAAE,OAAA,EAAS,MAAM,CAAA;AAC/D,MAAA,MAAA,CAAO,iBAAiB,QAAA,EAAU,UAAA,EAAY,EAAE,OAAA,EAAS,MAAM,CAAA;AAE/D,MAAA,OAAO,MAAM;AACX,QAAA,EAAA,CAAG,UAAA,EAAW;AACd,QAAA,MAAA,CAAO,mBAAA,CAAoB,UAAU,UAAU,CAAA;AAC/C,QAAA,MAAA,CAAO,mBAAA,CAAoB,UAAU,UAAU,CAAA;AAAA,MACjD,CAAA;AAAA,IACF,CAAA,EAAG,CAAC,MAAA,EAAQ,OAAA,EAAS,IAAI,CAAC,CAAA;AAE1B,IAAA,MAAM,aAAa,MAAM;AACvB,MAAA,IAAA,EAAM,MAAA,IAAS;AACf,MAAA,IAAI,UAAU,KAAA,CAAM,MAAA,GAAS,CAAA,EAAG,UAAA,CAAW,UAAU,CAAC,CAAA;AAAA,WACjD;AAAE,QAAA,OAAA,CAAQ,KAAK,CAAA;AAAG,QAAA,QAAA,IAAW;AAAA,MAAE;AAAA,IACtC,CAAA;AAEA,IAAA,MAAM,aAAa,MAAM;AACvB,MAAA,IAAA,EAAM,MAAA,IAAS;AACf,MAAA,IAAI,OAAA,GAAU,CAAA,EAAG,UAAA,CAAW,OAAA,GAAU,CAAC,CAAA;AAAA,IACzC,CAAA;AAEA,IAAA,MAAM,aAAa,MAAM;AACvB,MAAA,OAAA,CAAQ,KAAK,CAAA;AACb,MAAA,IAAI,iBAAA,KAAsB,MAAA,EAAW,kBAAA,CAAmB,CAAC,CAAA;AACzD,MAAA,MAAA,IAAS;AAAA,IACX,CAAA;AAEA,IAAA,SAAA,CAAU,MAAM;AACd,MAAA,IAAI,CAAC,MAAA,EAAQ;AACb,MAAA,MAAM,SAAA,GAAY,CAAC,CAAA,KAAqB;AAAE,QAAA,IAAI,CAAA,CAAE,GAAA,KAAQ,QAAA,EAAU,UAAA,EAAW;AAAA,MAAE,CAAA;AAC/E,MAAA,QAAA,CAAS,gBAAA,CAAiB,WAAW,SAAS,CAAA;AAC9C,MAAA,OAAO,MAAM,QAAA,CAAS,mBAAA,CAAoB,SAAA,EAAW,SAAS,CAAA;AAAA,IAChE,CAAA,EAAG,CAAC,MAAM,CAAC,CAAA;AAEX,IAAA,IAAI,CAAC,MAAA,IAAU,CAAC,IAAA,EAAM,OAAO,IAAA;AAE7B,IAAA,MAAM,SAAA,GAAY,KAAK,SAAA,IAAa,QAAA;AACpC,IAAA,MAAM,MAAA,GAAS,OAAA,KAAY,KAAA,CAAM,MAAA,GAAS,CAAA;AAK1C,IAAA,MAAM,iBAAsC,UAAA,GACxC;AAAA,MACE,QAAA,EAAU,OAAA;AAAA,MACV,GAAA,EAAK,UAAA,CAAW,GAAA,GAAM,CAAA,CAAE,OAAA;AAAA,MACxB,IAAA,EAAM,UAAA,CAAW,IAAA,GAAO,CAAA,CAAE,OAAA;AAAA,MAC1B,KAAA,EAAO,UAAA,CAAW,KAAA,GAAQ,CAAA,CAAE,OAAA,GAAU,CAAA;AAAA,MACtC,MAAA,EAAQ,UAAA,CAAW,MAAA,GAAS,CAAA,CAAE,OAAA,GAAU,CAAA;AAAA,MACxC,YAAA,EAAc,YAAA;AAAA,MACd,SAAA,EAAW,iCAAA;AAAA,MACX,UAAA,EAAY,WACR,MAAA,GACA,CAAA,IAAA,EAAO,QAAQ,CAAA,CAAA,EAAI,IAAI,CAAA,OAAA,EAAU,QAAQ,CAAA,CAAA,EAAI,IAAI,WAAW,QAAQ,CAAA,CAAA,EAAI,IAAI,CAAA,SAAA,EAAY,QAAQ,IAAI,IAAI,CAAA,gBAAA,EAAmB,QAAQ,CAAA,CAAA,EAAI,IAAI,CAAA,CAAA;AAAA,MAC/I,aAAA,EAAe,MAAA;AAAA,MACf,OAAA,EAAS,WAAW,CAAA,GAAI,CAAA;AAAA,MACxB,SAAA,EAAW,WAAW,MAAA,GAAS;AAAA,KACjC,GACA;AAAA,MACE,QAAA,EAAU,OAAA;AAAA,MACV,KAAA,EAAO,CAAA;AAAA,MACP,UAAA,EAAY;AAAA,KACd;AAGJ,IAAA,MAAM,eAAoC,UAAA,GACtC;AAAA,MACE,GAAG,eAAA,CAAgB,UAAA,EAAY,SAAA,EAAW,EAAE,GAAG,CAAA;AAAA,MAC/C,YAAY,QAAA,GACR,MAAA,GACA,OAAO,QAAQ,CAAA,CAAA,EAAI,IAAI,CAAA,OAAA,EAAU,QAAQ,CAAA,CAAA,EAAI,IAAI,YAAY,QAAQ,CAAA,CAAA,EAAI,IAAI,CAAA,QAAA,EAAW,QAAQ,IAAI,IAAI,CAAA,oBAAA,CAAA;AAAA,MAC5G,OAAA,EAAS,gBAAgB,CAAA,GAAI;AAAA,KAC/B,GACA,EAAE,QAAA,EAAU,OAAA,EAAS,SAAS,CAAA,EAAE;AAEpC,IAAA,uBACE,IAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,WAAA,EAAU,MAAA;AAAA,QACV,SAAA,EAAW,GAAG,WAAA,EAAa,SAAA,CAAU,KAAK,CAAA,EAAG,UAAA,EAAY,MAAM,SAAS,CAAA;AAAA,QACxE,KAAA,EAAO,EAAE,OAAA,EAAS,QAAA,GAAW,IAAI,CAAA,EAAG,UAAA,EAAY,CAAA,cAAA,EAAiB,IAAI,CAAA,CAAA,EAAG;AAAA,QACxE,GAAA,EAAK,CAAC,EAAA,KAAO;AAEX,UAAA,IAAI,MAAM,QAAA,EAAU,qBAAA,CAAsB,MAAM,WAAA,CAAY,KAAK,CAAC,CAAA;AAAA,QACpE,CAAA;AAAA,QAGA,QAAA,EAAA;AAAA,0BAAA,GAAA;AAAA,YAAC,KAAA;AAAA,YAAA;AAAA,cACC,WAAA,EAAU,SAAA;AAAA,cACV,SAAA,EAAW,EAAA,CAAG,cAAA,EAAgB,sBAAA,EAAwB,YAAY,OAAO,CAAA;AAAA,cACzE,OAAA,EAAS,mBAAmB,UAAA,GAAa,MAAA;AAAA,cACzC,KAAA,EAAO;AAAA;AAAA,WACT;AAAA,UAGC,UAAA,oBACC,GAAA;AAAA,YAAC,KAAA;AAAA,YAAA;AAAA,cACC,WAAA,EAAU,WAAA;AAAA,cACV,SAAA,EAAU,gDAAA;AAAA,cACV,KAAA,EAAO;AAAA,gBACL,GAAA,EAAK,UAAA,CAAW,GAAA,GAAM,CAAA,CAAE,OAAA;AAAA,gBACxB,IAAA,EAAM,UAAA,CAAW,IAAA,GAAO,CAAA,CAAE,OAAA;AAAA,gBAC1B,KAAA,EAAO,UAAA,CAAW,KAAA,GAAQ,CAAA,CAAE,OAAA,GAAU,CAAA;AAAA,gBACtC,MAAA,EAAQ,UAAA,CAAW,MAAA,GAAS,CAAA,CAAE,OAAA,GAAU,CAAA;AAAA,gBACxC,YAAA,EAAc,YAAA;AAAA,gBACd,SAAA,EAAW,oHAAA;AAAA,gBACX,UAAA,EAAY,OAAO,QAAQ,CAAA,CAAA,EAAI,IAAI,CAAA,OAAA,EAAU,QAAQ,IAAI,IAAI,CAAA,QAAA,EAAW,QAAQ,CAAA,CAAA,EAAI,IAAI,YAAY,QAAQ,CAAA,CAAA,EAAI,IAAI,CAAA,gBAAA,EAAmB,QAAQ,IAAI,IAAI,CAAA;AAAA;AACzJ;AAAA,WACF;AAAA,0BAIF,IAAA;AAAA,YAAC,KAAA;AAAA,YAAA;AAAA,cACC,GAAA,EAAK,UAAA;AAAA,cACL,WAAA,EAAU,SAAA;AAAA,cACV,SAAA,EAAW,EAAA;AAAA,gBACT,cAAA;AAAA,gBACA,sFAAA;AAAA,gBACA,CAAA,CAAE,OAAA;AAAA,gBACF,UAAA,EAAY;AAAA,eACd;AAAA,cACA,KAAA,EAAO,YAAA;AAAA,cAEN,QAAA,EAAA;AAAA,gBAAA,IAAA,CAAK,KAAA,oBACJ,GAAA,CAAC,KAAA,EAAA,EAAI,WAAA,EAAU,OAAA,EAAQ,SAAA,EAAW,EAAA,CAAG,YAAA,EAAc,iCAAA,EAAmC,UAAA,EAAY,KAAK,CAAA,EACpG,eAAK,KAAA,EACR,CAAA;AAAA,gCAGF,GAAA,CAAC,KAAA,EAAA,EAAI,WAAA,EAAU,OAAA,EAAQ,WAAW,EAAA,CAAG,YAAA,EAAc,CAAA,CAAE,KAAA,EAAO,mBAAA,EAAqB,UAAA,EAAY,KAAK,CAAA,EAC/F,eAAK,KAAA,EACR,CAAA;AAAA,gBAEC,KAAK,WAAA,oBACJ,GAAA,CAAC,KAAA,EAAA,EAAI,WAAA,EAAU,eAAc,SAAA,EAAW,EAAA,CAAG,kBAAA,EAAoB,CAAA,CAAE,MAAM,0BAAA,EAA4B,UAAA,EAAY,WAAW,CAAA,EACvH,eAAK,WAAA,EACR,CAAA;AAAA,gCAGF,IAAA,CAAC,KAAA,EAAA,EAAI,WAAA,EAAU,QAAA,EAAS,SAAA,EAAW,GAAG,aAAA,EAAe,8CAAA,EAAgD,UAAA,EAAY,MAAM,CAAA,EACrH,QAAA,EAAA;AAAA,kCAAA,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,yBAAA,EACZ,QAAA,EAAA,YAAA,yBACE,MAAA,EAAA,EAAK,WAAA,EAAU,WAAA,EAAY,SAAA,EAAW,EAAA,CAAG,gBAAA,EAAkB,6BAAA,EAA+B,UAAA,EAAY,SAAS,CAAA,EAC7G,QAAA,EAAA;AAAA,oBAAA,OAAA,GAAU,CAAA;AAAA,oBAAE,KAAA;AAAA,oBAAI,KAAA,CAAM;AAAA,mBAAA,EACzB,CAAA,EAEJ,CAAA;AAAA,kCAEA,IAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,yBAAA,EACZ,QAAA,EAAA;AAAA,oBAAA,QAAA,IAAY,CAAC,MAAA,oBACZ,GAAA;AAAA,sBAAC,QAAA;AAAA,sBAAA;AAAA,wBACC,IAAA,EAAK,QAAA;AAAA,wBACL,OAAA,EAAS,UAAA;AAAA,wBACT,SAAA,EAAW,EAAA,CAAG,6IAAA,EAA+I,CAAA,CAAE,GAAG,CAAA;AAAA,wBAEjK,QAAA,EAAA;AAAA;AAAA,qBACH;AAAA,oBAGD,UAAU,CAAA,oBACT,GAAA;AAAA,sBAAC,QAAA;AAAA,sBAAA;AAAA,wBACC,IAAA,EAAK,QAAA;AAAA,wBACL,OAAA,EAAS,UAAA;AAAA,wBACT,SAAA,EAAW,EAAA,CAAG,uKAAA,EAAyK,CAAA,CAAE,GAAG,CAAA;AAAA,wBAE3L,eAAK,QAAA,IAAY;AAAA;AAAA,qBACpB;AAAA,oCAGF,GAAA;AAAA,sBAAC,QAAA;AAAA,sBAAA;AAAA,wBACC,IAAA,EAAK,QAAA;AAAA,wBACL,OAAA,EAAS,UAAA;AAAA,wBACT,SAAA,EAAW,EAAA,CAAG,uIAAA,EAAyI,CAAA,CAAE,GAAG,CAAA;AAAA,wBAE3J,QAAA,EAAA,MAAA,GAAS,UAAA,GAAa,IAAA,CAAK,QAAA,IAAY;AAAA;AAAA;AAC1C,mBAAA,EACF;AAAA,iBAAA,EACF;AAAA;AAAA;AAAA;AACF;AAAA;AAAA,KACF;AAAA,EAEJ;AACF,CAAA;AAEA,IAAA,CAAK,WAAA,GAAc,MAAA;AAGnB,IAAO,YAAA,GAAQ","file":"chunk-YUACN5GJ.js","sourcesContent":["'use client'\n\nimport React, { useState, useEffect, useCallback, useRef } from 'react'\n\nimport { cn } from '../utils'\nimport { colorVars } from '../variants'\nimport type { TourProps, TourPlacement } from './types'\n\nfunction getTargetElement(target: string | (() => HTMLElement | null)): HTMLElement | null {\n if (typeof target === 'function') return target()\n return document.querySelector(target)\n}\n\nfunction getTargetBorderRadius(el: HTMLElement): string {\n if (typeof window === 'undefined') return '0px'\n return getComputedStyle(el).borderRadius || '0px'\n}\n\n// ── Popover positioning ─────────────────────────────────────\nfunction computePopoverPosition(\n rect: DOMRect,\n placement: TourPlacement,\n gap: number,\n): { top: number; left: number } {\n const base = placement.split('-')[0] as 'top' | 'right' | 'bottom' | 'left'\n const align = placement.split('-')[1] as 'start' | 'end' | undefined\n\n let top = 0\n let left = 0\n\n const cx = rect.left + rect.width / 2\n const cy = rect.top + rect.height / 2\n\n if (base === 'bottom') {\n top = rect.bottom + gap\n left = align === 'start' ? rect.left : align === 'end' ? rect.right : cx\n } else if (base === 'top') {\n top = rect.top - gap\n left = align === 'start' ? rect.left : align === 'end' ? rect.right : cx\n } else if (base === 'left') {\n top = align === 'start' ? rect.top : align === 'end' ? rect.bottom : cy\n left = rect.left - gap\n } else {\n top = align === 'start' ? rect.top : align === 'end' ? rect.bottom : cy\n left = rect.right + gap\n }\n\n return { top, left }\n}\n\nfunction getPopoverStyle(\n rect: DOMRect,\n placement: TourPlacement,\n gap: number,\n): React.CSSProperties {\n const base = placement.split('-')[0] as 'top' | 'right' | 'bottom' | 'left'\n const align = placement.split('-')[1] as 'start' | 'end' | undefined\n\n const pos = computePopoverPosition(rect, placement, gap)\n const style: React.CSSProperties = {\n position: 'fixed',\n top: pos.top,\n left: pos.left,\n }\n\n // Transform for anchoring\n if (base === 'bottom') {\n if (!align) style.transform = 'translateX(-50%)'\n else if (align === 'end') style.transform = 'translateX(-100%)'\n } else if (base === 'top') {\n if (!align) style.transform = 'translate(-50%, -100%)'\n else if (align === 'start') style.transform = 'translateY(-100%)'\n else style.transform = 'translate(-100%, -100%)'\n } else if (base === 'left') {\n if (!align) style.transform = 'translate(-100%, -50%)'\n else if (align === 'start') style.transform = 'translateX(-100%)'\n else style.transform = 'translate(-100%, -100%)'\n } else {\n if (!align) style.transform = 'translateY(-50%)'\n else if (align === 'end') style.transform = 'translateY(-100%)'\n }\n\n return style\n}\n\nconst sizeMap = {\n xs: { padding: 4, gap: 8, popover: 'p-3 max-w-[260px]', title: 'text-sm font-semibold', desc: 'text-xs', btn: 'h-6 px-2.5 text-xs' },\n sm: { padding: 6, gap: 10, popover: 'p-3.5 max-w-[300px]', title: 'text-sm font-semibold', desc: 'text-sm', btn: 'h-7 px-3 text-xs' },\n md: { padding: 8, gap: 12, popover: 'p-4 max-w-[340px]', title: 'text-base font-semibold', desc: 'text-sm', btn: 'h-8 px-3 text-sm' },\n lg: { padding: 10, gap: 14, popover: 'p-5 max-w-[400px]', title: 'text-lg font-semibold', desc: 'text-base', btn: 'h-9 px-4 text-sm' },\n}\n\n// Transition easing\nconst EASE = 'cubic-bezier(0.4, 0, 0.2, 1)'\nconst DURATION = '350ms'\n\nconst Tour = React.memo<TourProps>(\n ({\n steps,\n open: controlledOpen,\n onOpenChange,\n current: controlledCurrent,\n onCurrentChange,\n color = 'primary',\n size = 'md',\n showProgress = true,\n showSkip = true,\n skipText = 'Skip',\n finishText = 'Finish',\n nextText = 'Next',\n prevText = 'Back',\n onFinish,\n onSkip,\n overlayClickable = false,\n className,\n classNames,\n }) => {\n const [internalOpen, setInternalOpen] = useState(false)\n const [internalCurrent, setInternalCurrent] = useState(0)\n const isOpen = controlledOpen !== undefined ? controlledOpen : internalOpen\n const current = controlledCurrent !== undefined ? controlledCurrent : internalCurrent\n\n const [targetRect, setTargetRect] = useState<DOMRect | null>(null)\n const [targetRadius, setTargetRadius] = useState('0px')\n const [entering, setEntering] = useState(false)\n const [contentFading, setContentFading] = useState(false)\n const popoverRef = useRef<HTMLDivElement>(null)\n\n const setOpen = useCallback(\n (v: boolean) => {\n if (controlledOpen === undefined) setInternalOpen(v)\n onOpenChange?.(v)\n },\n [controlledOpen, onOpenChange],\n )\n\n const setCurrent = useCallback(\n (v: number) => {\n // Trigger content crossfade\n setContentFading(true)\n setTimeout(() => {\n if (controlledCurrent === undefined) setInternalCurrent(v)\n onCurrentChange?.(v)\n setContentFading(false)\n }, 150) // half of transition duration — content fades out then in\n },\n [controlledCurrent, onCurrentChange],\n )\n\n const step = steps[current]\n const s = sizeMap[size]\n\n // Initial entrance animation\n useEffect(() => {\n if (isOpen) {\n setEntering(true)\n const t = setTimeout(() => setEntering(false), 400)\n return () => clearTimeout(t)\n }\n }, [isOpen])\n\n // Track target rect + border-radius\n useEffect(() => {\n if (!isOpen || !step) { setTargetRect(null); return }\n const el = getTargetElement(step.target)\n if (!el) { setTargetRect(null); return }\n\n const updateRect = () => {\n setTargetRect(el.getBoundingClientRect())\n setTargetRadius(getTargetBorderRadius(el))\n }\n updateRect()\n\n el.scrollIntoView({ behavior: 'smooth', block: 'center' })\n\n const ro = new ResizeObserver(updateRect)\n ro.observe(el)\n window.addEventListener('scroll', updateRect, { passive: true })\n window.addEventListener('resize', updateRect, { passive: true })\n\n return () => {\n ro.disconnect()\n window.removeEventListener('scroll', updateRect)\n window.removeEventListener('resize', updateRect)\n }\n }, [isOpen, current, step])\n\n const handleNext = () => {\n step?.onNext?.()\n if (current < steps.length - 1) setCurrent(current + 1)\n else { setOpen(false); onFinish?.() }\n }\n\n const handlePrev = () => {\n step?.onPrev?.()\n if (current > 0) setCurrent(current - 1)\n }\n\n const handleSkip = () => {\n setOpen(false)\n if (controlledCurrent === undefined) setInternalCurrent(0)\n onSkip?.()\n }\n\n useEffect(() => {\n if (!isOpen) return\n const handleEsc = (e: KeyboardEvent) => { if (e.key === 'Escape') handleSkip() }\n document.addEventListener('keydown', handleEsc)\n return () => document.removeEventListener('keydown', handleEsc)\n }, [isOpen])\n\n if (!isOpen || !step) return null\n\n const placement = step.placement || 'bottom'\n const isLast = current === steps.length - 1\n\n // The spotlight element — uses box-shadow to create the overlay\n // As this element transitions position/size/border-radius, the\n // entire overlay smoothly morphs to follow the target.\n const spotlightStyle: React.CSSProperties = targetRect\n ? {\n position: 'fixed',\n top: targetRect.top - s.padding,\n left: targetRect.left - s.padding,\n width: targetRect.width + s.padding * 2,\n height: targetRect.height + s.padding * 2,\n borderRadius: targetRadius,\n boxShadow: '0 0 0 9999px rgba(0, 0, 0, 0.5)',\n transition: entering\n ? 'none'\n : `top ${DURATION} ${EASE}, left ${DURATION} ${EASE}, width ${DURATION} ${EASE}, height ${DURATION} ${EASE}, border-radius ${DURATION} ${EASE}`,\n pointerEvents: 'none' as const,\n opacity: entering ? 0 : 1,\n animation: entering ? 'none' : undefined,\n }\n : {\n position: 'fixed' as const,\n inset: 0,\n background: 'rgba(0,0,0,0.5)',\n }\n\n // Popover transitions position smoothly (no remount)\n const popoverStyle: React.CSSProperties = targetRect\n ? {\n ...getPopoverStyle(targetRect, placement, s.gap),\n transition: entering\n ? 'none'\n : `top ${DURATION} ${EASE}, left ${DURATION} ${EASE}, bottom ${DURATION} ${EASE}, right ${DURATION} ${EASE}, opacity 150ms ease`,\n opacity: contentFading ? 0 : 1,\n }\n : { position: 'fixed', opacity: 0 }\n\n return (\n <div\n data-slot=\"root\"\n className={cn('tour_root', colorVars[color], classNames?.root, className)}\n style={{ opacity: entering ? 0 : 1, transition: `opacity 300ms ${EASE}` }}\n ref={(el) => {\n // Trigger entrance fade after mount\n if (el && entering) requestAnimationFrame(() => setEntering(false))\n }}\n >\n {/* Spotlight overlay — single div, box-shadow creates darkened backdrop */}\n <div\n data-slot=\"overlay\"\n className={cn('tour_overlay', 'z-[var(--z-overlay)]', classNames?.overlay)}\n onClick={overlayClickable ? handleSkip : undefined}\n style={spotlightStyle}\n />\n\n {/* Highlight ring — follows target shape */}\n {targetRect && (\n <div\n data-slot=\"highlight\"\n className=\"fixed z-[var(--z-overlay)] pointer-events-none\"\n style={{\n top: targetRect.top - s.padding,\n left: targetRect.left - s.padding,\n width: targetRect.width + s.padding * 2,\n height: targetRect.height + s.padding * 2,\n borderRadius: targetRadius,\n boxShadow: '0 0 0 2px var(--color-slot, #3b82f6), 0 0 12px 2px color-mix(in srgb, var(--color-slot, #3b82f6) 30%, transparent)',\n transition: `top ${DURATION} ${EASE}, left ${DURATION} ${EASE}, width ${DURATION} ${EASE}, height ${DURATION} ${EASE}, border-radius ${DURATION} ${EASE}`,\n }}\n />\n )}\n\n {/* Popover — position transitions, content crossfades */}\n <div\n ref={popoverRef}\n data-slot=\"popover\"\n className={cn(\n 'tour_popover',\n 'z-[calc(var(--z-overlay)+1)] rounded-lg border border-border bg-background shadow-lg',\n s.popover,\n classNames?.popover,\n )}\n style={popoverStyle}\n >\n {step.cover && (\n <div data-slot=\"cover\" className={cn('tour_cover', 'mb-3 rounded-md overflow-hidden', classNames?.cover)}>\n {step.cover}\n </div>\n )}\n\n <div data-slot=\"title\" className={cn('tour_title', s.title, 'text-text-primary', classNames?.title)}>\n {step.title}\n </div>\n\n {step.description && (\n <div data-slot=\"description\" className={cn('tour_description', s.desc, 'text-text-secondary mt-1', classNames?.description)}>\n {step.description}\n </div>\n )}\n\n <div data-slot=\"footer\" className={cn('tour_footer', 'flex items-center justify-between mt-3 gap-2', classNames?.footer)}>\n <div className=\"flex items-center gap-2\">\n {showProgress && (\n <span data-slot=\"indicator\" className={cn('tour_indicator', 'text-xs text-text-secondary', classNames?.indicator)}>\n {current + 1} / {steps.length}\n </span>\n )}\n </div>\n\n <div className=\"flex items-center gap-2\">\n {showSkip && !isLast && (\n <button\n type=\"button\"\n onClick={handleSkip}\n className={cn('inline-flex items-center justify-center rounded-md text-text-secondary hover:text-text-primary transition-colors font-medium cursor-pointer', s.btn)}\n >\n {skipText}\n </button>\n )}\n\n {current > 0 && (\n <button\n type=\"button\"\n onClick={handlePrev}\n className={cn('inline-flex items-center justify-center rounded-md border border-border bg-background text-text-primary hover:bg-surface transition-colors font-medium cursor-pointer', s.btn)}\n >\n {step.prevText || prevText}\n </button>\n )}\n\n <button\n type=\"button\"\n onClick={handleNext}\n className={cn('inline-flex items-center justify-center rounded-md bg-slot text-slot-fg hover:bg-slot-90 transition-colors font-medium cursor-pointer', s.btn)}\n >\n {isLast ? finishText : step.nextText || nextText}\n </button>\n </div>\n </div>\n </div>\n </div>\n )\n },\n)\n\nTour.displayName = 'Tour'\n\nexport type * from './types'\nexport default Tour\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/context-menu/index.tsx"],"names":[],"mappings":";;;;;;;;;AAaA,IAAM,kBAAA,GAAyH,CAAC,EAAE,QAAA,EAAU,UAAU,SAAA,EAAW,GAAG,OAAM,KAAM;AAC9K,EAAA,MAAM,EAAE,OAAA,EAAS,aAAA,EAAe,gBAAe,GAAI,SAAA,CAAU,CAAC,QAAQ,CAAA;AACtE,EAAA,uBACE,IAAA,CAAC,SAAI,SAAA,EAAW,EAAA,CAAG,WAAW,0BAA0B,CAAA,EAAG,aAAA,EAA+B,GAAG,KAAA,EAC1F,QAAA,EAAA;AAAA,IAAA,QAAA;AAAA,oBACD,GAAA,CAAC,eAAA,EAAA,EAAgB,OAAA,EAAkB,cAAA,EAAgC;AAAA,GAAA,EACrE,CAAA;AAEJ,CAAA;AAKA,IAAM,kBAAA,GAAqB,CAAC,EAAE,IAAA,EAAM,OAAA,EAAS,KAAA,EAAO,UAAA,EAAY,KAAA,GAAQ,SAAA,EAAW,SAAA,GAAY,GAAA,EAAK,UAAA,GAAa,KAAI,KAA+B;AAClJ,EAAA,MAAM,CAAC,MAAA,EAAQ,SAAS,CAAA,GAAI,SAAS,KAAK,CAAA;AAC1C,EAAA,MAAM,eAAA,GAAkB,OAAkD,MAAS,CAAA;AACnF,EAAA,MAAM,eAAA,GAAkB,OAAkD,MAAS,CAAA;AAEnF,EAAA,MAAM,gBAAA,GAAmB,YAAY,MAAM;AACzC,IAAA,IAAI,KAAK,QAAA,EAAU;AAEnB,IAAA,IAAI,gBAAgB,OAAA,EAAS;AAC3B,MAAA,YAAA,CAAa,gBAAgB,OAAO,CAAA;AAAA,IACtC;AAEA,IAAA,eAAA,CAAgB,OAAA,GAAU,WAAW,MAAM;AACzC,MAAA,SAAA,CAAU,IAAI,CAAA;AAAA,IAChB,GAAG,SAAS,CAAA;AAAA,EACd,CAAA,EAAG,CAAC,IAAA,CAAK,QAAA,EAAU,SAAS,CAAC,CAAA;AAE7B,EAAA,MAAM,gBAAA,GAAmB,YAAY,MAAM;AACzC,IAAA,IAAI,gBAAgB,OAAA,EAAS;AAC3B,MAAA,YAAA,CAAa,gBAAgB,OAAO,CAAA;AAAA,IACtC;AAEA,IAAA,eAAA,CAAgB,OAAA,GAAU,WAAW,MAAM;AACzC,MAAA,SAAA,CAAU,KAAK,CAAA;AAAA,IACjB,GAAG,UAAU,CAAA;AAAA,EACf,CAAA,EAAG,CAAC,UAAU,CAAC,CAAA;AAEf,EAAA,MAAM,WAAA,GAAc,WAAA;AAAA,IAClB,CAAC,CAAA,KAAwB;AACvB,MAAA,IAAI,CAAC,IAAA,CAAK,QAAA,IAAY,CAAC,KAAK,QAAA,EAAU;AACpC,QAAA,CAAA,CAAE,eAAA,EAAgB;AAClB,QAAA,IAAA,CAAK,OAAA,IAAU;AACf,QAAA,OAAA,EAAQ;AAAA,MACV;AAAA,IACF,CAAA;AAAA,IACA,CAAC,MAAM,OAAO;AAAA,GAChB;AAEA,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,OAAO,MAAM;AACX,MAAA,IAAI,gBAAgB,OAAA,EAAS;AAC3B,QAAA,YAAA,CAAa,gBAAgB,OAAO,CAAA;AAAA,MACtC;AACA,MAAA,IAAI,gBAAgB,OAAA,EAAS;AAC3B,QAAA,YAAA,CAAa,gBAAgB,OAAO,CAAA;AAAA,MACtC;AAAA,IACF,CAAA;AAAA,EACF,CAAA,EAAG,EAAE,CAAA;AAEL,EAAA,4BACoB,gBAAA,CAAA,IAAA,EAAjB,EAAsB,IAAA,EAAM,MAAA,EAAQ,cAAc,SAAA,EACjD,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAkB,gBAAA,CAAA,OAAA,EAAjB,EAAyB,OAAA,EAAO,IAAA,EAC/B,QAAA,kBAAA,GAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,SAAA,EAAU,UAAA;AAAA,QACV,YAAA,EAAc,gBAAA;AAAA,QACd,YAAA,EAAc,gBAAA;AAAA,QACd,IAAA,EAAK,UAAA;AAAA,QACL,eAAA,EAAc,MAAA;AAAA,QACd,eAAA,EAAe,MAAA;AAAA,QACf,iBAAe,IAAA,CAAK,QAAA;AAAA,QACpB,QAAA,EAAU,EAAA;AAAA,QACV,WAAA,EAAU,iBAAA;AAAA,QAEV,QAAA,kBAAA,IAAA;AAAA,UAAC,kBAAA;AAAA,UAAA;AAAA,YACC,QAAA,EAAU,CAAC,CAAC,IAAA,CAAK,QAAA;AAAA,YACjB,SAAA,EAAW,EAAA;AAAA,cACT,6HAAA;AAAA,cACA,IAAA,CAAK,WAAW,+BAAA,GAAkC,8GAAA;AAAA,cAClD,UAAA,EAAY;AAAA,aACd;AAAA,YACA,OAAA,EAAS,WAAA;AAAA,YAET,QAAA,EAAA;AAAA,8BAAA,IAAA,CAAC,KAAA,EAAA,EAAI,WAAU,gCAAA,EACZ,QAAA,EAAA;AAAA,gBAAA,IAAA,CAAK,IAAA,oBACJ,GAAA;AAAA,kBAAC,MAAA;AAAA,kBAAA;AAAA,oBACC,SAAA,EAAW,EAAA;AAAA,sBACT,uCAAA;AAAA,sBACA,UAAA,EAAY;AAAA,qBACd;AAAA,oBAEC,QAAA,EAAA,IAAA,CAAK;AAAA;AAAA,iBACR;AAAA,gCAEF,GAAA;AAAA,kBAAC,MAAA;AAAA,kBAAA;AAAA,oBACC,SAAA,EAAW,EAAA;AAAA,sBACT,uBAAA;AAAA,sBACA,UAAA,EAAY;AAAA,qBACd;AAAA,oBAEC,QAAA,EAAA,IAAA,CAAK;AAAA;AAAA;AACR,eAAA,EACF,CAAA;AAAA,cACC,IAAA,CAAK,QAAA,oBAAY,GAAA,CAAC,YAAA,EAAA,EAAa,WAAU,sCAAA,EAAuC,CAAA;AAAA,cAChF,KAAK,QAAA,oBAAY,GAAA,CAAC,UAAK,SAAA,EAAU,sCAAA,EAAwC,eAAK,QAAA,EAAS;AAAA;AAAA;AAAA;AAC1F;AAAA,KACF,EACF,CAAA;AAAA,IAEC,IAAA,CAAK,QAAA,oBACJ,GAAA,CAAkB,gBAAA,CAAA,MAAA,EAAjB,EACC,QAAA,kBAAA,GAAA;AAAA,MAAkB,gBAAA,CAAA,OAAA;AAAA,MAAjB;AAAA,QACC,IAAA,EAAK,OAAA;AAAA,QACL,KAAA,EAAM,OAAA;AAAA,QACN,UAAA,EAAY,CAAA;AAAA,QACZ,WAAA,EAAa,EAAA;AAAA,QACb,YAAA,EAAc,gBAAA;AAAA,QACd,YAAA,EAAc,gBAAA;AAAA,QACd,SAAA,EAAW,EAAA;AAAA,UACT,8DAAA;AAAA,UACA,4DAAA;AAAA,UACA,8DAAA;AAAA,UACA,wCAAA;AAAA,UACA,wCAAA;AAAA,UACA,wCAAA;AAAA,UACA,wCAAA;AAAA,UACA,sBAAA;AAAA,UACA,UAAA,EAAY;AAAA,SACd;AAAA,QAEA,QAAA,kBAAA,GAAA,CAAC,kBAAA,EAAA,EAAmB,KAAA,EAAO,IAAA,CAAK,QAAA,EAAU,SAAkB,KAAA,EAAO,KAAA,GAAQ,CAAA,EAAG,UAAA,EAAwB,KAAA,EAAc;AAAA;AAAA,KACtH,EACF;AAAA,GAAA,EAEJ,CAAA;AAEJ,CAAA;AAEA,kBAAA,CAAmB,WAAA,GAAc,oBAAA;AAKjC,IAAM,qBAAqB,CAAC;AAAA,EAC1B,KAAA;AAAA,EACA,OAAA;AAAA,EACA,KAAA,GAAQ,CAAA;AAAA,EACR,SAAA;AAAA,EACA,UAAA;AAAA,EACA,KAAA;AAAA,EACA,KAAA,GAAQ,SAAA;AAAA,EACR,gBAAA;AAAA,EACA,iBAAA;AAAA,EACA,GAAG;AACL,CAAA,KAA+B;AAC7B,EAAA,MAAM,OAAA,GAAU,OAAuB,IAAI,CAAA;AAE3C,EAAA,MAAM,cAAA,GAAiB,OAAA;AAAA,IACrB,MACE,KAAA,CACG,GAAA,CAAI,CAAC,IAAA,EAAM,CAAA,KAAO,CAAC,IAAA,CAAK,SAAA,IAAa,CAAC,IAAA,CAAK,QAAA,GAAY,IAAI,EAAE,CAAA,CAC7D,OAAO,CAAC,CAAA,KAAM,MAAM,EAAE,CAAA;AAAA,IAC3B,CAAC,KAAK;AAAA,GACR;AAEA,EAAA,MAAM,YAAA,GAAe,WAAA;AAAA,IACnB,CAAC,KAAA,KAAkB;AACjB,MAAA,MAAM,IAAA,GAAO,MAAM,KAAK,CAAA;AACxB,MAAA,IAAI,IAAA,IAAQ,CAAC,IAAA,CAAK,QAAA,EAAU;AAC1B,QAAA,IAAA,CAAK,OAAA,IAAU;AACf,QAAA,OAAA,EAAQ;AAAA,MACV;AAAA,IACF,CAAA;AAAA,IACA,CAAC,OAAO,OAAO;AAAA,GACjB;AAEA,EAAA,MAAM,EAAE,gBAAA,EAAkB,aAAA,EAAe,cAAA,KAAmB,iBAAA,CAAkB;AAAA,IAC5E,cAAA;AAAA,IACA,MAAA,EAAQ,IAAA;AAAA,IACR,OAAA;AAAA,IACA,QAAA,EAAU;AAAA,GACX,CAAA;AAGD,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,cAAA,EAAe;AAAA,EACjB,CAAA,EAAG,CAAC,cAAc,CAAC,CAAA;AAGnB,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,MAAM,QAAA,GAAW,CAAC,CAAA,KAAqB;AACrC,MAAA,IAAI,CAAA,CAAE,GAAA,KAAQ,WAAA,IAAe,KAAA,GAAQ,CAAA,EAAG;AACtC,QAAA,CAAA,CAAE,cAAA,EAAe;AACjB,QAAA,CAAA,CAAE,wBAAA,EAAyB;AAC3B,QAAA,OAAA,EAAQ;AACR,QAAA;AAAA,MACF;AACA,MAAA,aAAA,CAAc,CAAC,CAAA;AACf,MAAA,CAAA,CAAE,wBAAA,EAAyB;AAAA,IAC7B,CAAA;AACA,IAAA,QAAA,CAAS,gBAAA,CAAiB,WAAW,QAAQ,CAAA;AAC7C,IAAA,OAAO,MAAM,QAAA,CAAS,mBAAA,CAAoB,SAAA,EAAW,QAAQ,CAAA;AAAA,EAC/D,CAAA,EAAG,CAAC,aAAA,EAAe,KAAA,EAAO,OAAO,CAAC,CAAA;AAElC,EAAA,uBACE,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,GAAA,EAAK,OAAA;AAAA,MACL,SAAA,EAAW,EAAA;AAAA,QACT,gGAAA;AAAA,QACA,UAAU,KAAK,CAAA;AAAA,QACf,UAAU,CAAA,IAAK,iCAAA;AAAA,QACf,SAAA;AAAA,QACA,UAAA,EAAY;AAAA,OACd;AAAA,MACA,KAAA;AAAA,MACA,IAAA,EAAK,MAAA;AAAA,MACL,kBAAA,EAAiB,UAAA;AAAA,MACjB,QAAA,EAAU,EAAA;AAAA,MACT,GAAG,KAAA;AAAA,MAEH,QAAA,EAAA,KAAA,CAAM,GAAA,CAAI,CAAC,IAAA,EAAM,KAAA,KAAU;AAC1B,QAAA,IAAI,KAAK,SAAA,EAAW;AAClB,UAAA,uBACE,GAAA;AAAA,YAAC,KAAA;AAAA,YAAA;AAAA,cAEC,SAAA,EAAW,EAAA;AAAA,gBACT,yCAAA;AAAA,gBACA,UAAA,EAAY;AAAA,eACd;AAAA,cACA,IAAA,EAAK,WAAA;AAAA,cACL,kBAAA,EAAiB,YAAA;AAAA,cACjB,WAAA,EAAU;AAAA,aAAA;AAAA,YAPL,aAAa,KAAK,CAAA;AAAA,WAQzB;AAAA,QAEJ;AAEA,QAAA,IAAI,KAAK,QAAA,EAAU;AACjB,UAAA,uBAAO,GAAA,CAAC,kBAAA,EAAA,EAAkC,IAAA,EAAY,OAAA,EAAkB,KAAA,EAAc,UAAA,EAAwB,KAAA,EAAc,SAAA,EAAW,gBAAA,EAAkB,UAAA,EAAY,iBAAA,EAAA,EAArI,IAAA,CAAK,GAAmJ,CAAA;AAAA,QAC1L;AAEA,QAAA,MAAM,YAAY,gBAAA,KAAqB,KAAA;AAEvC,QAAA,uBACE,IAAA;AAAA,UAAC,kBAAA;AAAA,UAAA;AAAA,YAEC,QAAA,EAAU,CAAC,CAAC,IAAA,CAAK,QAAA;AAAA,YACjB,SAAA,EAAW,EAAA;AAAA,cACT,6HAAA;AAAA,cACA,IAAA,CAAK,WACD,+BAAA,GACA,8GAAA;AAAA,cACJ,SAAA,IAAa,CAAC,IAAA,CAAK,QAAA,IAAY,sBAAA;AAAA,cAC/B,UAAA,EAAY;AAAA,aACd;AAAA,YACA,SAAS,MAAM;AACb,cAAA,IAAI,CAAC,KAAK,QAAA,EAAU;AAClB,gBAAA,IAAA,CAAK,OAAA,IAAU;AACf,gBAAA,OAAA,EAAQ;AAAA,cACV;AAAA,YACF,CAAA;AAAA,YACA,IAAA,EAAK,UAAA;AAAA,YACL,QAAA,EAAU,EAAA;AAAA,YACV,iBAAe,IAAA,CAAK,QAAA;AAAA,YACpB,WAAA,EAAU,MAAA;AAAA,YAEV,QAAA,EAAA;AAAA,8BAAA,IAAA,CAAC,KAAA,EAAA,EAAI,WAAU,gCAAA,EACZ,QAAA,EAAA;AAAA,gBAAA,IAAA,CAAK,IAAA,oBACJ,GAAA;AAAA,kBAAC,MAAA;AAAA,kBAAA;AAAA,oBACC,SAAA,EAAW,EAAA;AAAA,sBACT,uCAAA;AAAA,sBACA,UAAA,EAAY;AAAA,qBACd;AAAA,oBACA,WAAA,EAAU,WAAA;AAAA,oBAET,QAAA,EAAA,IAAA,CAAK;AAAA;AAAA,iBACR;AAAA,gCAEF,GAAA;AAAA,kBAAC,MAAA;AAAA,kBAAA;AAAA,oBACC,SAAA,EAAW,EAAA;AAAA,sBACT,uBAAA;AAAA,sBACA,UAAA,EAAY;AAAA,qBACd;AAAA,oBACA,WAAA,EAAU,YAAA;AAAA,oBAET,QAAA,EAAA,IAAA,CAAK;AAAA;AAAA;AACR,eAAA,EACF,CAAA;AAAA,cACC,IAAA,CAAK,4BAAY,GAAA,CAAC,MAAA,EAAA,EAAK,WAAU,sCAAA,EAAuC,WAAA,EAAU,UAAA,EAAY,QAAA,EAAA,IAAA,CAAK,QAAA,EAAS;AAAA;AAAA,WAAA;AAAA,UA3CxG,IAAA,CAAK;AAAA,SA4CZ;AAAA,MAEJ,CAAC;AAAA;AAAA,GACH;AAEJ;AAEA,kBAAA,CAAmB,WAAA,GAAc,oBAAA;AAKjC,IAAM,cAAc,CAAC;AAAA,EACnB,QAAA;AAAA,EACA,KAAA;AAAA,EACA,SAAA;AAAA,EACA,UAAA;AAAA,EACA,QAAA,GAAW,KAAA;AAAA,EACX,YAAA;AAAA,EACA,IAAA,EAAM,cAAA;AAAA,EACN,KAAA,GAAQ,SAAA;AAAA,EACR,gBAAA;AAAA,EACA;AACF,CAAA,KAAwB;AACtB,EAAA,MAAM,CAAC,YAAA,EAAc,eAAe,CAAA,GAAI,SAAS,KAAK,CAAA;AACtD,EAAA,MAAM,CAAC,QAAA,EAAU,WAAW,CAAA,GAAI,SAAyB,IAAI,CAAA;AAE7D,EAAA,MAAM,eAAe,cAAA,KAAmB,MAAA;AACxC,EAAA,MAAM,MAAA,GAAS,eAAe,cAAA,GAAiB,YAAA;AAE/C,EAAA,MAAM,OAAA,GAAU,WAAA;AAAA,IACd,CAAC,IAAA,KAAkB;AACjB,MAAA,IAAI,CAAC,YAAA,EAAc;AACjB,QAAA,eAAA,CAAgB,IAAI,CAAA;AAAA,MACtB;AACA,MAAA,YAAA,GAAe,IAAI,CAAA;AAAA,IACrB,CAAA;AAAA,IACA,CAAC,cAAc,YAAY;AAAA,GAC7B;AAEA,EAAA,MAAM,iBAAA,GAAoB,WAAA;AAAA,IACxB,CAAC,CAAA,KAAwB;AACvB,MAAA,IAAI,QAAA,EAAU;AAEd,MAAA,CAAA,CAAE,cAAA,EAAe;AACjB,MAAA,CAAA,CAAE,eAAA,EAAgB;AAElB,MAAA,WAAA,CAAY;AAAA,QACV,KAAA,EAAO,CAAA;AAAA,QACP,MAAA,EAAQ,CAAA;AAAA,QACR,GAAG,CAAA,CAAE,OAAA;AAAA,QACL,GAAG,CAAA,CAAE,OAAA;AAAA,QACL,KAAK,CAAA,CAAE,OAAA;AAAA,QACP,MAAM,CAAA,CAAE,OAAA;AAAA,QACR,OAAO,CAAA,CAAE,OAAA;AAAA,QACT,QAAQ,CAAA,CAAE,OAAA;AAAA,QACV,QAAQ,MAAM;AAAA,QAAC;AAAA,OACL,CAAA;AAEZ,MAAA,OAAA,CAAQ,IAAI,CAAA;AAAA,IACd,CAAA;AAAA,IACA,CAAC,UAAU,OAAO;AAAA,GACpB;AAEA,EAAA,MAAM,WAAA,GAAc,YAAY,MAAM;AACpC,IAAA,OAAA,CAAQ,KAAK,CAAA;AACb,IAAA,WAAA,CAAY,IAAI,CAAA;AAAA,EAClB,CAAA,EAAG,CAAC,OAAO,CAAC,CAAA;AAEZ,EAAA,4BACoB,gBAAA,CAAA,IAAA,EAAjB,EAAsB,IAAA,EAAM,MAAA,EAAQ,cAAc,OAAA,EAChD,QAAA,EAAA;AAAA,IAAA,QAAA,oBACC,GAAA;AAAA,MAAkB,gBAAA,CAAA,MAAA;AAAA,MAAjB;AAAA,QACC,UAAA,EAAY;AAAA,UACV,OAAA,EAAS;AAAA,YACP,uBAAuB,MAAM;AAAA;AAC/B;AACF;AAAA,KACF;AAAA,oBAEF,GAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,aAAA,EAAe,iBAAA;AAAA,QACf,SAAA,EAAW,EAAA,CAAG,+BAAA,EAAiC,SAAA,EAAW,YAAY,IAAI,CAAA;AAAA,QAC1E,IAAA,EAAK,cAAA;AAAA,QACL,WAAA,EAAU,MAAA;AAAA,QAET;AAAA;AAAA,KACH;AAAA,oBAEA,GAAA,CAAkB,yBAAjB,EACC,QAAA,kBAAA,GAAA;AAAA,MAAkB,gBAAA,CAAA,OAAA;AAAA,MAAjB;AAAA,QACC,IAAA,EAAK,QAAA;AAAA,QACL,KAAA,EAAM,OAAA;AAAA,QACN,UAAA,EAAY,CAAA;AAAA,QACZ,WAAA,EAAa,CAAA;AAAA,QACb,eAAA,EAAiB,CAAC,CAAA,KAAa,CAAA,CAAE,cAAA,EAAe;AAAA,QAChD,gBAAA,EAAkB,CAAC,CAAA,KAAa,CAAA,CAAE,cAAA,EAAe;AAAA,QACjD,eAAA,EAAiB,WAAA;AAAA,QACjB,oBAAA,EAAsB,WAAA;AAAA,QACtB,iBAAA,EAAmB,WAAA;AAAA,QACnB,SAAA,EAAU,sBAAA;AAAA,QAEV,QAAA,kBAAA,GAAA,CAAC,sBAAmB,KAAA,EAAc,OAAA,EAAS,aAAa,UAAA,EAAwB,KAAA,EAAc,kBAAoC,iBAAA,EAAsC;AAAA;AAAA,KAC1K,EACF;AAAA,GAAA,EACF,CAAA;AAEJ;AAEA,WAAA,CAAY,WAAA,GAAc,aAAA;AAI1B,IAAO,oBAAA,GAAQ","file":"chunk-Z3DIBMBQ.js","sourcesContent":["'use client'\n\nimport * as PopoverPrimitive from '@radix-ui/react-popover';\nimport React, { useCallback, useEffect, useMemo, useRef, useState } 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 { ContextMenuContentProps, ContextMenuProps, ContextMenuSubMenuProps } from './types';\n\nconst ContextMenuItemDiv: React.FC<React.HTMLAttributes<HTMLDivElement> & { children: React.ReactNode; disabled?: boolean }> = ({ children, disabled, className, ...props }) => {\n const { ripples, onPointerDown, onAnimationEnd } = useRipple(!disabled)\n return (\n <div className={cn(className, 'relative overflow-hidden')} onPointerDown={onPointerDown} {...props}>\n {children}\n <RippleContainer ripples={ripples} onAnimationEnd={onAnimationEnd} />\n </div>\n )\n}\n\n/**\n * Submenu component based on Popover\n */\nconst ContextMenuSubMenu = ({ item, onClose, level, classNames, color = 'default', openDelay = 200, closeDelay = 300 }: ContextMenuSubMenuProps) => {\n const [isOpen, setIsOpen] = useState(false);\n const hoverTimeoutRef = useRef<ReturnType<typeof setTimeout> | undefined>(undefined);\n const leaveTimeoutRef = useRef<ReturnType<typeof setTimeout> | undefined>(undefined);\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 ? 'opacity-50 cursor-not-allowed' : '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(\n 'contextMenu_itemLabel',\n classNames?.itemLabel,\n )}\n >\n {item.label}\n </span>\n </div>\n {item.children && <ChevronRight className='w-4 h-4 text-text-secondary shrink-0' />}\n {item.shortcut && <span className='text-xs text-text-secondary shrink-0'>{item.shortcut}</span>}\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={8}\n alignOffset={-8}\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-[var(--z-popover)]',\n classNames?.submenu,\n )}\n >\n <ContextMenuContent items={item.children} onClose={onClose} level={level + 1} classNames={classNames} color={color} />\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 enabledIndices,\n isOpen: true,\n onClose,\n onSelect: onMenuSelect,\n });\n\n // Highlight first item on mount\n useEffect(() => {\n highlightFirst()\n }, [highlightFirst])\n\n // Document-level keyboard listener (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 <ContextMenuSubMenu key={item.key} item={item} onClose={onClose} level={level} classNames={classNames} color={color} openDelay={submenuOpenDelay} closeDelay={submenuCloseDelay} />;\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(\n 'contextMenu_itemLabel',\n classNames?.itemLabel,\n )}\n data-slot='item-label'\n >\n {item.label}\n </span>\n </div>\n {item.shortcut && <span className='text-xs text-text-secondary shrink-0' data-slot='shortcut'>{item.shortcut}</span>}\n </ContextMenuItemDiv>\n );\n })}\n </div>\n );\n};\n\nContextMenuContent.displayName = 'ContextMenuContent';\n\n/**\n * ContextMenu component based on Popover\n */\nconst ContextMenu = ({\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('contextMenu_root inline-block', className, classNames?.root)}\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 items={items} onClose={handleClose} classNames={classNames} color={color} submenuOpenDelay={submenuOpenDelay} submenuCloseDelay={submenuCloseDelay} />\n </PopoverPrimitive.Content>\n </PopoverPrimitive.Portal>\n </PopoverPrimitive.Root>\n );\n};\n\nContextMenu.displayName = 'ContextMenu';\n\nexport type * from './types';\nexport { ContextMenu, ContextMenuContent };\nexport default ContextMenu;\n"]}