@tlglobal/ui 2.0.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 (718) hide show
  1. package/CONSUMING.md +229 -0
  2. package/LICENSE +202 -0
  3. package/dist/AI_CONTEXT.md +621 -0
  4. package/dist/AI_INVENTORY.md +85 -0
  5. package/dist/chunk-2GWZWHLI.cjs +20 -0
  6. package/dist/chunk-2GWZWHLI.cjs.map +1 -0
  7. package/dist/chunk-2LZUUIC7.js +32 -0
  8. package/dist/chunk-2LZUUIC7.js.map +1 -0
  9. package/dist/chunk-3FJ2AYA2.js +89 -0
  10. package/dist/chunk-3FJ2AYA2.js.map +1 -0
  11. package/dist/chunk-3PA53VKD.js +125 -0
  12. package/dist/chunk-3PA53VKD.js.map +1 -0
  13. package/dist/chunk-3RZGAFXY.js +2 -0
  14. package/dist/chunk-3RZGAFXY.js.map +1 -0
  15. package/dist/chunk-3WN2VYVW.js +74 -0
  16. package/dist/chunk-3WN2VYVW.js.map +1 -0
  17. package/dist/chunk-43UYUOCI.cjs +48 -0
  18. package/dist/chunk-43UYUOCI.cjs.map +1 -0
  19. package/dist/chunk-44VPRRQ6.cjs +58 -0
  20. package/dist/chunk-44VPRRQ6.cjs.map +1 -0
  21. package/dist/chunk-4DRHQE74.js +24 -0
  22. package/dist/chunk-4DRHQE74.js.map +1 -0
  23. package/dist/chunk-4XLHRXFU.cjs +74 -0
  24. package/dist/chunk-4XLHRXFU.cjs.map +1 -0
  25. package/dist/chunk-4YEKNNGG.cjs +42 -0
  26. package/dist/chunk-4YEKNNGG.cjs.map +1 -0
  27. package/dist/chunk-52WJMKN4.js +2 -0
  28. package/dist/chunk-52WJMKN4.js.map +1 -0
  29. package/dist/chunk-5K47OTIO.cjs +2 -0
  30. package/dist/chunk-5K47OTIO.cjs.map +1 -0
  31. package/dist/chunk-5LY7WFC2.cjs +50 -0
  32. package/dist/chunk-5LY7WFC2.cjs.map +1 -0
  33. package/dist/chunk-5TOJI2VT.cjs +50 -0
  34. package/dist/chunk-5TOJI2VT.cjs.map +1 -0
  35. package/dist/chunk-6K77FYPP.cjs +27 -0
  36. package/dist/chunk-6K77FYPP.cjs.map +1 -0
  37. package/dist/chunk-6LNO6LIW.cjs +91 -0
  38. package/dist/chunk-6LNO6LIW.cjs.map +1 -0
  39. package/dist/chunk-6OKUL5O5.js +50 -0
  40. package/dist/chunk-6OKUL5O5.js.map +1 -0
  41. package/dist/chunk-72IENMXB.js +50 -0
  42. package/dist/chunk-72IENMXB.js.map +1 -0
  43. package/dist/chunk-74GQ35MJ.js +13 -0
  44. package/dist/chunk-74GQ35MJ.js.map +1 -0
  45. package/dist/chunk-7554LN2R.js +40 -0
  46. package/dist/chunk-7554LN2R.js.map +1 -0
  47. package/dist/chunk-77VS352K.js +26 -0
  48. package/dist/chunk-77VS352K.js.map +1 -0
  49. package/dist/chunk-7KV2ASQZ.js +54 -0
  50. package/dist/chunk-7KV2ASQZ.js.map +1 -0
  51. package/dist/chunk-7TQYKW62.js +2 -0
  52. package/dist/chunk-7TQYKW62.js.map +1 -0
  53. package/dist/chunk-7USP3KPM.js +74 -0
  54. package/dist/chunk-7USP3KPM.js.map +1 -0
  55. package/dist/chunk-7UWF7W5G.js +79 -0
  56. package/dist/chunk-7UWF7W5G.js.map +1 -0
  57. package/dist/chunk-7VXLTE5S.cjs +85 -0
  58. package/dist/chunk-7VXLTE5S.cjs.map +1 -0
  59. package/dist/chunk-A254FX7P.cjs +108 -0
  60. package/dist/chunk-A254FX7P.cjs.map +1 -0
  61. package/dist/chunk-ACCDNLKQ.cjs +2 -0
  62. package/dist/chunk-ACCDNLKQ.cjs.map +1 -0
  63. package/dist/chunk-AFU2TQBW.cjs +2 -0
  64. package/dist/chunk-AFU2TQBW.cjs.map +1 -0
  65. package/dist/chunk-ARIUBUZS.cjs +2 -0
  66. package/dist/chunk-ARIUBUZS.cjs.map +1 -0
  67. package/dist/chunk-ASXOVY3O.js +51 -0
  68. package/dist/chunk-ASXOVY3O.js.map +1 -0
  69. package/dist/chunk-ATQSUWAB.cjs +64 -0
  70. package/dist/chunk-ATQSUWAB.cjs.map +1 -0
  71. package/dist/chunk-B3JAASJA.cjs +52 -0
  72. package/dist/chunk-B3JAASJA.cjs.map +1 -0
  73. package/dist/chunk-BD2KPRJD.cjs +17 -0
  74. package/dist/chunk-BD2KPRJD.cjs.map +1 -0
  75. package/dist/chunk-BG3HP3NJ.cjs +34 -0
  76. package/dist/chunk-BG3HP3NJ.cjs.map +1 -0
  77. package/dist/chunk-BOLSRMRI.cjs +2 -0
  78. package/dist/chunk-BOLSRMRI.cjs.map +1 -0
  79. package/dist/chunk-BPH6SZFA.cjs +50 -0
  80. package/dist/chunk-BPH6SZFA.cjs.map +1 -0
  81. package/dist/chunk-BYEEPZYO.cjs +26 -0
  82. package/dist/chunk-BYEEPZYO.cjs.map +1 -0
  83. package/dist/chunk-C35O5Z4E.js +93 -0
  84. package/dist/chunk-C35O5Z4E.js.map +1 -0
  85. package/dist/chunk-C4M7CGEJ.cjs +33 -0
  86. package/dist/chunk-C4M7CGEJ.cjs.map +1 -0
  87. package/dist/chunk-C7ISP523.js +2 -0
  88. package/dist/chunk-C7ISP523.js.map +1 -0
  89. package/dist/chunk-CA2SLMZH.cjs +27 -0
  90. package/dist/chunk-CA2SLMZH.cjs.map +1 -0
  91. package/dist/chunk-CEQAANDU.cjs +26 -0
  92. package/dist/chunk-CEQAANDU.cjs.map +1 -0
  93. package/dist/chunk-CQNMLNRY.js +64 -0
  94. package/dist/chunk-CQNMLNRY.js.map +1 -0
  95. package/dist/chunk-CVXFVAS4.cjs +93 -0
  96. package/dist/chunk-CVXFVAS4.cjs.map +1 -0
  97. package/dist/chunk-DBCPNZ6H.js +34 -0
  98. package/dist/chunk-DBCPNZ6H.js.map +1 -0
  99. package/dist/chunk-DCBKSAUY.cjs +48 -0
  100. package/dist/chunk-DCBKSAUY.cjs.map +1 -0
  101. package/dist/chunk-DJGR4I4I.js +29 -0
  102. package/dist/chunk-DJGR4I4I.js.map +1 -0
  103. package/dist/chunk-DRPNHEYB.cjs +2 -0
  104. package/dist/chunk-DRPNHEYB.cjs.map +1 -0
  105. package/dist/chunk-E3KELI3Q.js +2 -0
  106. package/dist/chunk-E3KELI3Q.js.map +1 -0
  107. package/dist/chunk-EADT2IDZ.cjs +26 -0
  108. package/dist/chunk-EADT2IDZ.cjs.map +1 -0
  109. package/dist/chunk-EC6XXJRF.js +108 -0
  110. package/dist/chunk-EC6XXJRF.js.map +1 -0
  111. package/dist/chunk-EDAI4KEX.cjs +27 -0
  112. package/dist/chunk-EDAI4KEX.cjs.map +1 -0
  113. package/dist/chunk-EJ57LRPN.cjs +2 -0
  114. package/dist/chunk-EJ57LRPN.cjs.map +1 -0
  115. package/dist/chunk-ENO36WFO.cjs +54 -0
  116. package/dist/chunk-ENO36WFO.cjs.map +1 -0
  117. package/dist/chunk-ESRYVB7B.js +17 -0
  118. package/dist/chunk-ESRYVB7B.js.map +1 -0
  119. package/dist/chunk-EYC4OODR.js +2 -0
  120. package/dist/chunk-EYC4OODR.js.map +1 -0
  121. package/dist/chunk-F5XBFNFL.cjs +93 -0
  122. package/dist/chunk-F5XBFNFL.cjs.map +1 -0
  123. package/dist/chunk-F7UFCIDL.js +59 -0
  124. package/dist/chunk-F7UFCIDL.js.map +1 -0
  125. package/dist/chunk-FE6KOQUJ.js +2 -0
  126. package/dist/chunk-FE6KOQUJ.js.map +1 -0
  127. package/dist/chunk-FLP5UV2Q.js +2 -0
  128. package/dist/chunk-FLP5UV2Q.js.map +1 -0
  129. package/dist/chunk-FSFKN344.js +112 -0
  130. package/dist/chunk-FSFKN344.js.map +1 -0
  131. package/dist/chunk-G362MHBO.cjs +37 -0
  132. package/dist/chunk-G362MHBO.cjs.map +1 -0
  133. package/dist/chunk-GAIT5TGX.js +85 -0
  134. package/dist/chunk-GAIT5TGX.js.map +1 -0
  135. package/dist/chunk-GBHONUIG.js +52 -0
  136. package/dist/chunk-GBHONUIG.js.map +1 -0
  137. package/dist/chunk-GJGPQRIK.js +20 -0
  138. package/dist/chunk-GJGPQRIK.js.map +1 -0
  139. package/dist/chunk-GJQOXOSX.cjs +43 -0
  140. package/dist/chunk-GJQOXOSX.cjs.map +1 -0
  141. package/dist/chunk-GWLJZRZO.cjs +14 -0
  142. package/dist/chunk-GWLJZRZO.cjs.map +1 -0
  143. package/dist/chunk-H3RKRRVM.js +526 -0
  144. package/dist/chunk-H3RKRRVM.js.map +1 -0
  145. package/dist/chunk-HAMZFEZO.cjs +54 -0
  146. package/dist/chunk-HAMZFEZO.cjs.map +1 -0
  147. package/dist/chunk-HFYNUSDC.cjs +74 -0
  148. package/dist/chunk-HFYNUSDC.cjs.map +1 -0
  149. package/dist/chunk-HGP3RUO3.cjs +2 -0
  150. package/dist/chunk-HGP3RUO3.cjs.map +1 -0
  151. package/dist/chunk-HJCCG7JW.js +43 -0
  152. package/dist/chunk-HJCCG7JW.js.map +1 -0
  153. package/dist/chunk-HRO7NGJR.cjs +89 -0
  154. package/dist/chunk-HRO7NGJR.cjs.map +1 -0
  155. package/dist/chunk-HWVBYDV7.cjs +125 -0
  156. package/dist/chunk-HWVBYDV7.cjs.map +1 -0
  157. package/dist/chunk-IQ62AKGY.cjs +74 -0
  158. package/dist/chunk-IQ62AKGY.cjs.map +1 -0
  159. package/dist/chunk-IRV6TBCD.js +32 -0
  160. package/dist/chunk-IRV6TBCD.js.map +1 -0
  161. package/dist/chunk-IS7KJKLV.cjs +24 -0
  162. package/dist/chunk-IS7KJKLV.cjs.map +1 -0
  163. package/dist/chunk-JPABWZU4.js +24 -0
  164. package/dist/chunk-JPABWZU4.js.map +1 -0
  165. package/dist/chunk-JSVWJPQG.js +37 -0
  166. package/dist/chunk-JSVWJPQG.js.map +1 -0
  167. package/dist/chunk-K5CAZ7C4.js +33 -0
  168. package/dist/chunk-K5CAZ7C4.js.map +1 -0
  169. package/dist/chunk-KG4EGAMK.js +54 -0
  170. package/dist/chunk-KG4EGAMK.js.map +1 -0
  171. package/dist/chunk-KIAO4YXV.js +127 -0
  172. package/dist/chunk-KIAO4YXV.js.map +1 -0
  173. package/dist/chunk-KSKUVK6I.cjs +59 -0
  174. package/dist/chunk-KSKUVK6I.cjs.map +1 -0
  175. package/dist/chunk-KYDXKVSZ.js +46 -0
  176. package/dist/chunk-KYDXKVSZ.js.map +1 -0
  177. package/dist/chunk-L5ASRHVY.js +60 -0
  178. package/dist/chunk-L5ASRHVY.js.map +1 -0
  179. package/dist/chunk-LFFVW4TB.cjs +52 -0
  180. package/dist/chunk-LFFVW4TB.cjs.map +1 -0
  181. package/dist/chunk-LUBNRBQN.cjs +33 -0
  182. package/dist/chunk-LUBNRBQN.cjs.map +1 -0
  183. package/dist/chunk-LVFXPPPK.js +33 -0
  184. package/dist/chunk-LVFXPPPK.js.map +1 -0
  185. package/dist/chunk-LVL2KDBH.js +48 -0
  186. package/dist/chunk-LVL2KDBH.js.map +1 -0
  187. package/dist/chunk-LZEQUT4L.cjs +56 -0
  188. package/dist/chunk-LZEQUT4L.cjs.map +1 -0
  189. package/dist/chunk-MAN3LWOP.js +26 -0
  190. package/dist/chunk-MAN3LWOP.js.map +1 -0
  191. package/dist/chunk-MIKQY57Q.js +16 -0
  192. package/dist/chunk-MIKQY57Q.js.map +1 -0
  193. package/dist/chunk-MRFK7JYS.cjs +16 -0
  194. package/dist/chunk-MRFK7JYS.cjs.map +1 -0
  195. package/dist/chunk-MWMM3SXJ.cjs +107 -0
  196. package/dist/chunk-MWMM3SXJ.cjs.map +1 -0
  197. package/dist/chunk-N7NOXL4I.js +91 -0
  198. package/dist/chunk-N7NOXL4I.js.map +1 -0
  199. package/dist/chunk-NCYN3QQU.cjs +67 -0
  200. package/dist/chunk-NCYN3QQU.cjs.map +1 -0
  201. package/dist/chunk-NQDS423U.js +33 -0
  202. package/dist/chunk-NQDS423U.js.map +1 -0
  203. package/dist/chunk-NROYDPOG.js +48 -0
  204. package/dist/chunk-NROYDPOG.js.map +1 -0
  205. package/dist/chunk-NRP4NW7O.js +35 -0
  206. package/dist/chunk-NRP4NW7O.js.map +1 -0
  207. package/dist/chunk-NSTYHMFW.cjs +13 -0
  208. package/dist/chunk-NSTYHMFW.cjs.map +1 -0
  209. package/dist/chunk-NXR4JLHH.cjs +2 -0
  210. package/dist/chunk-NXR4JLHH.cjs.map +1 -0
  211. package/dist/chunk-NZ2HMIIP.cjs +35 -0
  212. package/dist/chunk-NZ2HMIIP.cjs.map +1 -0
  213. package/dist/chunk-ODN7NJ6D.cjs +46 -0
  214. package/dist/chunk-ODN7NJ6D.cjs.map +1 -0
  215. package/dist/chunk-OEOJQGHG.js +23 -0
  216. package/dist/chunk-OEOJQGHG.js.map +1 -0
  217. package/dist/chunk-OHI4DVYR.js +27 -0
  218. package/dist/chunk-OHI4DVYR.js.map +1 -0
  219. package/dist/chunk-OZR3RLEW.cjs +526 -0
  220. package/dist/chunk-OZR3RLEW.cjs.map +1 -0
  221. package/dist/chunk-P6HOIFVS.js +107 -0
  222. package/dist/chunk-P6HOIFVS.js.map +1 -0
  223. package/dist/chunk-PFK42QIX.cjs +112 -0
  224. package/dist/chunk-PFK42QIX.cjs.map +1 -0
  225. package/dist/chunk-PNBLW6BD.cjs +51 -0
  226. package/dist/chunk-PNBLW6BD.cjs.map +1 -0
  227. package/dist/chunk-PRVO66GL.js +2 -0
  228. package/dist/chunk-PRVO66GL.js.map +1 -0
  229. package/dist/chunk-PZH6B7X6.cjs +33 -0
  230. package/dist/chunk-PZH6B7X6.cjs.map +1 -0
  231. package/dist/chunk-QEIOHGNX.js +2 -0
  232. package/dist/chunk-QEIOHGNX.js.map +1 -0
  233. package/dist/chunk-QET47X4U.cjs +49 -0
  234. package/dist/chunk-QET47X4U.cjs.map +1 -0
  235. package/dist/chunk-QEVPIMPR.js +74 -0
  236. package/dist/chunk-QEVPIMPR.js.map +1 -0
  237. package/dist/chunk-QGPKRORJ.cjs +2 -0
  238. package/dist/chunk-QGPKRORJ.cjs.map +1 -0
  239. package/dist/chunk-QT6A3IGJ.js +49 -0
  240. package/dist/chunk-QT6A3IGJ.js.map +1 -0
  241. package/dist/chunk-QUXGSASA.js +2 -0
  242. package/dist/chunk-QUXGSASA.js.map +1 -0
  243. package/dist/chunk-QX75NAXT.js +67 -0
  244. package/dist/chunk-QX75NAXT.js.map +1 -0
  245. package/dist/chunk-R27ACM4Q.cjs +2 -0
  246. package/dist/chunk-R27ACM4Q.cjs.map +1 -0
  247. package/dist/chunk-R4RV6JMA.js +46 -0
  248. package/dist/chunk-R4RV6JMA.js.map +1 -0
  249. package/dist/chunk-RB7PFSP5.cjs +40 -0
  250. package/dist/chunk-RB7PFSP5.cjs.map +1 -0
  251. package/dist/chunk-RCUEVMFN.cjs +2 -0
  252. package/dist/chunk-RCUEVMFN.cjs.map +1 -0
  253. package/dist/chunk-RG5TWXHH.cjs +46 -0
  254. package/dist/chunk-RG5TWXHH.cjs.map +1 -0
  255. package/dist/chunk-RHIHSGAK.cjs +42 -0
  256. package/dist/chunk-RHIHSGAK.cjs.map +1 -0
  257. package/dist/chunk-RL3XVDMF.cjs +20 -0
  258. package/dist/chunk-RL3XVDMF.cjs.map +1 -0
  259. package/dist/chunk-SD2D5PZS.js +2 -0
  260. package/dist/chunk-SD2D5PZS.js.map +1 -0
  261. package/dist/chunk-SKQHJJ6L.js +34 -0
  262. package/dist/chunk-SKQHJJ6L.js.map +1 -0
  263. package/dist/chunk-SN6MWJU6.js +86 -0
  264. package/dist/chunk-SN6MWJU6.js.map +1 -0
  265. package/dist/chunk-SP36M6G5.js +52 -0
  266. package/dist/chunk-SP36M6G5.js.map +1 -0
  267. package/dist/chunk-SWBJF2XG.cjs +32 -0
  268. package/dist/chunk-SWBJF2XG.cjs.map +1 -0
  269. package/dist/chunk-T4FTROIQ.cjs +127 -0
  270. package/dist/chunk-T4FTROIQ.cjs.map +1 -0
  271. package/dist/chunk-TPTUGJYI.js +43 -0
  272. package/dist/chunk-TPTUGJYI.js.map +1 -0
  273. package/dist/chunk-TROOTXPG.cjs +34 -0
  274. package/dist/chunk-TROOTXPG.cjs.map +1 -0
  275. package/dist/chunk-TWFEHJMT.js +34 -0
  276. package/dist/chunk-TWFEHJMT.js.map +1 -0
  277. package/dist/chunk-UJVIWFHU.js +14 -0
  278. package/dist/chunk-UJVIWFHU.js.map +1 -0
  279. package/dist/chunk-ULWJ75EE.js +58 -0
  280. package/dist/chunk-ULWJ75EE.js.map +1 -0
  281. package/dist/chunk-UU2KZAA4.js +27 -0
  282. package/dist/chunk-UU2KZAA4.js.map +1 -0
  283. package/dist/chunk-UV46IHDR.cjs +79 -0
  284. package/dist/chunk-UV46IHDR.cjs.map +1 -0
  285. package/dist/chunk-V3NEBNKV.js +93 -0
  286. package/dist/chunk-V3NEBNKV.js.map +1 -0
  287. package/dist/chunk-VHWMJ4HO.js +42 -0
  288. package/dist/chunk-VHWMJ4HO.js.map +1 -0
  289. package/dist/chunk-VONXCRR4.cjs +86 -0
  290. package/dist/chunk-VONXCRR4.cjs.map +1 -0
  291. package/dist/chunk-VTNWJO3Y.js +2 -0
  292. package/dist/chunk-VTNWJO3Y.js.map +1 -0
  293. package/dist/chunk-VVZIMK6K.js +27 -0
  294. package/dist/chunk-VVZIMK6K.js.map +1 -0
  295. package/dist/chunk-WBWSA5SM.js +42 -0
  296. package/dist/chunk-WBWSA5SM.js.map +1 -0
  297. package/dist/chunk-WVEBD2II.cjs +2 -0
  298. package/dist/chunk-WVEBD2II.cjs.map +1 -0
  299. package/dist/chunk-XGCIOWNR.cjs +34 -0
  300. package/dist/chunk-XGCIOWNR.cjs.map +1 -0
  301. package/dist/chunk-XMCP5ITG.cjs +60 -0
  302. package/dist/chunk-XMCP5ITG.cjs.map +1 -0
  303. package/dist/chunk-XOBIDPEA.cjs +23 -0
  304. package/dist/chunk-XOBIDPEA.cjs.map +1 -0
  305. package/dist/chunk-XV2M2XOO.cjs +29 -0
  306. package/dist/chunk-XV2M2XOO.cjs.map +1 -0
  307. package/dist/chunk-XWMDE3D5.cjs +32 -0
  308. package/dist/chunk-XWMDE3D5.cjs.map +1 -0
  309. package/dist/chunk-Y523KUML.js +50 -0
  310. package/dist/chunk-Y523KUML.js.map +1 -0
  311. package/dist/chunk-YB4W5ROD.cjs +2 -0
  312. package/dist/chunk-YB4W5ROD.cjs.map +1 -0
  313. package/dist/chunk-YEH5VLWU.js +56 -0
  314. package/dist/chunk-YEH5VLWU.js.map +1 -0
  315. package/dist/chunk-YFS2VFC5.js +26 -0
  316. package/dist/chunk-YFS2VFC5.js.map +1 -0
  317. package/dist/chunk-YGWKQHA4.cjs +43 -0
  318. package/dist/chunk-YGWKQHA4.cjs.map +1 -0
  319. package/dist/chunk-YL5ANBN3.js +20 -0
  320. package/dist/chunk-YL5ANBN3.js.map +1 -0
  321. package/dist/chunk-Z3TON3YG.js +2 -0
  322. package/dist/chunk-Z3TON3YG.js.map +1 -0
  323. package/dist/chunk-ZWS4E67U.cjs +24 -0
  324. package/dist/chunk-ZWS4E67U.cjs.map +1 -0
  325. package/dist/components/accordion/Accordion.d.ts +9 -0
  326. package/dist/components/accordion/index.cjs +9 -0
  327. package/dist/components/accordion/index.cjs.map +1 -0
  328. package/dist/components/accordion/index.d.ts +1 -0
  329. package/dist/components/accordion/index.js +9 -0
  330. package/dist/components/accordion/index.js.map +1 -0
  331. package/dist/components/alert/Alert.d.ts +8 -0
  332. package/dist/components/alert/index.cjs +9 -0
  333. package/dist/components/alert/index.cjs.map +1 -0
  334. package/dist/components/alert/index.d.ts +2 -0
  335. package/dist/components/alert/index.js +9 -0
  336. package/dist/components/alert/index.js.map +1 -0
  337. package/dist/components/alert-dialog/AlertDialog.d.ts +13 -0
  338. package/dist/components/alert-dialog/index.cjs +9 -0
  339. package/dist/components/alert-dialog/index.cjs.map +1 -0
  340. package/dist/components/alert-dialog/index.d.ts +1 -0
  341. package/dist/components/alert-dialog/index.js +9 -0
  342. package/dist/components/alert-dialog/index.js.map +1 -0
  343. package/dist/components/aspect-ratio/AspectRatio.d.ts +6 -0
  344. package/dist/components/aspect-ratio/index.cjs +9 -0
  345. package/dist/components/aspect-ratio/index.cjs.map +1 -0
  346. package/dist/components/aspect-ratio/index.d.ts +2 -0
  347. package/dist/components/aspect-ratio/index.js +9 -0
  348. package/dist/components/aspect-ratio/index.js.map +1 -0
  349. package/dist/components/attachment/Attachment.d.ts +22 -0
  350. package/dist/components/attachment/index.cjs +11 -0
  351. package/dist/components/attachment/index.cjs.map +1 -0
  352. package/dist/components/attachment/index.d.ts +2 -0
  353. package/dist/components/attachment/index.js +11 -0
  354. package/dist/components/attachment/index.js.map +1 -0
  355. package/dist/components/avatar/Avatar.d.ts +11 -0
  356. package/dist/components/avatar/index.cjs +10 -0
  357. package/dist/components/avatar/index.cjs.map +1 -0
  358. package/dist/components/avatar/index.d.ts +2 -0
  359. package/dist/components/avatar/index.js +10 -0
  360. package/dist/components/avatar/index.js.map +1 -0
  361. package/dist/components/badge/Badge.d.ts +7 -0
  362. package/dist/components/badge/index.cjs +9 -0
  363. package/dist/components/badge/index.cjs.map +1 -0
  364. package/dist/components/badge/index.d.ts +2 -0
  365. package/dist/components/badge/index.js +9 -0
  366. package/dist/components/badge/index.js.map +1 -0
  367. package/dist/components/breadcrumb/Breadcrumb.d.ts +17 -0
  368. package/dist/components/breadcrumb/index.cjs +9 -0
  369. package/dist/components/breadcrumb/index.cjs.map +1 -0
  370. package/dist/components/breadcrumb/index.d.ts +1 -0
  371. package/dist/components/breadcrumb/index.js +9 -0
  372. package/dist/components/breadcrumb/index.js.map +1 -0
  373. package/dist/components/bubble/Bubble.d.ts +14 -0
  374. package/dist/components/bubble/index.cjs +10 -0
  375. package/dist/components/bubble/index.cjs.map +1 -0
  376. package/dist/components/bubble/index.d.ts +2 -0
  377. package/dist/components/bubble/index.js +10 -0
  378. package/dist/components/bubble/index.js.map +1 -0
  379. package/dist/components/button/Button.d.ts +10 -0
  380. package/dist/components/button/index.cjs +10 -0
  381. package/dist/components/button/index.cjs.map +1 -0
  382. package/dist/components/button/index.d.ts +2 -0
  383. package/dist/components/button/index.js +10 -0
  384. package/dist/components/button/index.js.map +1 -0
  385. package/dist/components/button-group/ButtonGroup.d.ts +5 -0
  386. package/dist/components/button-group/index.cjs +9 -0
  387. package/dist/components/button-group/index.cjs.map +1 -0
  388. package/dist/components/button-group/index.d.ts +2 -0
  389. package/dist/components/button-group/index.js +9 -0
  390. package/dist/components/button-group/index.js.map +1 -0
  391. package/dist/components/calendar/Calendar.d.ts +3 -0
  392. package/dist/components/calendar/index.cjs +10 -0
  393. package/dist/components/calendar/index.cjs.map +1 -0
  394. package/dist/components/calendar/index.d.ts +1 -0
  395. package/dist/components/calendar/index.js +10 -0
  396. package/dist/components/calendar/index.js.map +1 -0
  397. package/dist/components/card/Card.d.ts +7 -0
  398. package/dist/components/card/index.cjs +9 -0
  399. package/dist/components/card/index.cjs.map +1 -0
  400. package/dist/components/card/index.d.ts +2 -0
  401. package/dist/components/card/index.js +9 -0
  402. package/dist/components/card/index.js.map +1 -0
  403. package/dist/components/carousel/Carousel.d.ts +16 -0
  404. package/dist/components/carousel/index.cjs +10 -0
  405. package/dist/components/carousel/index.cjs.map +1 -0
  406. package/dist/components/carousel/index.d.ts +2 -0
  407. package/dist/components/carousel/index.js +10 -0
  408. package/dist/components/carousel/index.js.map +1 -0
  409. package/dist/components/chart/Chart.d.ts +23 -0
  410. package/dist/components/chart/index.cjs +9 -0
  411. package/dist/components/chart/index.cjs.map +1 -0
  412. package/dist/components/chart/index.d.ts +2 -0
  413. package/dist/components/chart/index.js +9 -0
  414. package/dist/components/chart/index.js.map +1 -0
  415. package/dist/components/checkbox/Checkbox.d.ts +8 -0
  416. package/dist/components/checkbox/index.cjs +9 -0
  417. package/dist/components/checkbox/index.cjs.map +1 -0
  418. package/dist/components/checkbox/index.d.ts +2 -0
  419. package/dist/components/checkbox/index.js +9 -0
  420. package/dist/components/checkbox/index.js.map +1 -0
  421. package/dist/components/collapsible/Collapsible.d.ts +7 -0
  422. package/dist/components/collapsible/index.cjs +8 -0
  423. package/dist/components/collapsible/index.cjs.map +1 -0
  424. package/dist/components/collapsible/index.d.ts +1 -0
  425. package/dist/components/collapsible/index.js +8 -0
  426. package/dist/components/collapsible/index.js.map +1 -0
  427. package/dist/components/combobox/Combobox.d.ts +20 -0
  428. package/dist/components/combobox/index.cjs +10 -0
  429. package/dist/components/combobox/index.cjs.map +1 -0
  430. package/dist/components/combobox/index.d.ts +2 -0
  431. package/dist/components/combobox/index.js +10 -0
  432. package/dist/components/combobox/index.js.map +1 -0
  433. package/dist/components/command/Command.d.ts +13 -0
  434. package/dist/components/command/index.cjs +10 -0
  435. package/dist/components/command/index.cjs.map +1 -0
  436. package/dist/components/command/index.d.ts +1 -0
  437. package/dist/components/command/index.js +10 -0
  438. package/dist/components/command/index.js.map +1 -0
  439. package/dist/components/context-menu/ContextMenu.d.ts +19 -0
  440. package/dist/components/context-menu/index.cjs +9 -0
  441. package/dist/components/context-menu/index.cjs.map +1 -0
  442. package/dist/components/context-menu/index.d.ts +1 -0
  443. package/dist/components/context-menu/index.js +9 -0
  444. package/dist/components/context-menu/index.js.map +1 -0
  445. package/dist/components/date-picker/DatePicker.d.ts +11 -0
  446. package/dist/components/date-picker/index.cjs +10 -0
  447. package/dist/components/date-picker/index.cjs.map +1 -0
  448. package/dist/components/date-picker/index.d.ts +2 -0
  449. package/dist/components/date-picker/index.js +10 -0
  450. package/dist/components/date-picker/index.js.map +1 -0
  451. package/dist/components/dialog/Dialog.d.ts +12 -0
  452. package/dist/components/dialog/index.cjs +9 -0
  453. package/dist/components/dialog/index.cjs.map +1 -0
  454. package/dist/components/dialog/index.d.ts +1 -0
  455. package/dist/components/dialog/index.js +9 -0
  456. package/dist/components/dialog/index.js.map +1 -0
  457. package/dist/components/direction/Direction.d.ts +16 -0
  458. package/dist/components/direction/index.cjs +11 -0
  459. package/dist/components/direction/index.cjs.map +1 -0
  460. package/dist/components/direction/index.d.ts +2 -0
  461. package/dist/components/direction/index.js +11 -0
  462. package/dist/components/direction/index.js.map +1 -0
  463. package/dist/components/drawer/Drawer.d.ts +12 -0
  464. package/dist/components/drawer/index.cjs +9 -0
  465. package/dist/components/drawer/index.cjs.map +1 -0
  466. package/dist/components/drawer/index.d.ts +1 -0
  467. package/dist/components/drawer/index.js +9 -0
  468. package/dist/components/drawer/index.js.map +1 -0
  469. package/dist/components/dropdown-menu/DropdownMenu.d.ts +19 -0
  470. package/dist/components/dropdown-menu/index.cjs +9 -0
  471. package/dist/components/dropdown-menu/index.cjs.map +1 -0
  472. package/dist/components/dropdown-menu/index.d.ts +1 -0
  473. package/dist/components/dropdown-menu/index.js +9 -0
  474. package/dist/components/dropdown-menu/index.js.map +1 -0
  475. package/dist/components/empty/Empty.d.ts +10 -0
  476. package/dist/components/empty/index.cjs +9 -0
  477. package/dist/components/empty/index.cjs.map +1 -0
  478. package/dist/components/empty/index.d.ts +2 -0
  479. package/dist/components/empty/index.js +9 -0
  480. package/dist/components/empty/index.js.map +1 -0
  481. package/dist/components/field/Field.d.ts +17 -0
  482. package/dist/components/field/index.cjs +11 -0
  483. package/dist/components/field/index.cjs.map +1 -0
  484. package/dist/components/field/index.d.ts +2 -0
  485. package/dist/components/field/index.js +11 -0
  486. package/dist/components/field/index.js.map +1 -0
  487. package/dist/components/hover-card/HoverCard.d.ts +8 -0
  488. package/dist/components/hover-card/index.cjs +9 -0
  489. package/dist/components/hover-card/index.cjs.map +1 -0
  490. package/dist/components/hover-card/index.d.ts +1 -0
  491. package/dist/components/hover-card/index.js +9 -0
  492. package/dist/components/hover-card/index.js.map +1 -0
  493. package/dist/components/icon-button/IconButton.d.ts +10 -0
  494. package/dist/components/icon-button/index.cjs +10 -0
  495. package/dist/components/icon-button/index.cjs.map +1 -0
  496. package/dist/components/icon-button/index.d.ts +2 -0
  497. package/dist/components/icon-button/index.js +10 -0
  498. package/dist/components/icon-button/index.js.map +1 -0
  499. package/dist/components/input/Input.d.ts +10 -0
  500. package/dist/components/input/index.cjs +12 -0
  501. package/dist/components/input/index.cjs.map +1 -0
  502. package/dist/components/input/index.d.ts +2 -0
  503. package/dist/components/input/index.js +12 -0
  504. package/dist/components/input/index.js.map +1 -0
  505. package/dist/components/input-group/InputGroup.d.ts +12 -0
  506. package/dist/components/input-group/index.cjs +9 -0
  507. package/dist/components/input-group/index.cjs.map +1 -0
  508. package/dist/components/input-group/index.d.ts +1 -0
  509. package/dist/components/input-group/index.js +9 -0
  510. package/dist/components/input-group/index.js.map +1 -0
  511. package/dist/components/input-otp/InputOTP.d.ts +13 -0
  512. package/dist/components/input-otp/index.cjs +9 -0
  513. package/dist/components/input-otp/index.cjs.map +1 -0
  514. package/dist/components/input-otp/index.d.ts +2 -0
  515. package/dist/components/input-otp/index.js +9 -0
  516. package/dist/components/input-otp/index.js.map +1 -0
  517. package/dist/components/item/Item.d.ts +10 -0
  518. package/dist/components/item/index.cjs +9 -0
  519. package/dist/components/item/index.cjs.map +1 -0
  520. package/dist/components/item/index.d.ts +2 -0
  521. package/dist/components/item/index.js +9 -0
  522. package/dist/components/item/index.js.map +1 -0
  523. package/dist/components/kbd/Kbd.d.ts +5 -0
  524. package/dist/components/kbd/index.cjs +9 -0
  525. package/dist/components/kbd/index.cjs.map +1 -0
  526. package/dist/components/kbd/index.d.ts +2 -0
  527. package/dist/components/kbd/index.js +9 -0
  528. package/dist/components/kbd/index.js.map +1 -0
  529. package/dist/components/label/Label.d.ts +6 -0
  530. package/dist/components/label/index.cjs +10 -0
  531. package/dist/components/label/index.cjs.map +1 -0
  532. package/dist/components/label/index.d.ts +2 -0
  533. package/dist/components/label/index.js +10 -0
  534. package/dist/components/label/index.js.map +1 -0
  535. package/dist/components/marker/Marker.d.ts +9 -0
  536. package/dist/components/marker/index.cjs +9 -0
  537. package/dist/components/marker/index.cjs.map +1 -0
  538. package/dist/components/marker/index.d.ts +2 -0
  539. package/dist/components/marker/index.js +9 -0
  540. package/dist/components/marker/index.js.map +1 -0
  541. package/dist/components/menubar/Menubar.d.ts +19 -0
  542. package/dist/components/menubar/index.cjs +9 -0
  543. package/dist/components/menubar/index.cjs.map +1 -0
  544. package/dist/components/menubar/index.d.ts +1 -0
  545. package/dist/components/menubar/index.js +9 -0
  546. package/dist/components/menubar/index.js.map +1 -0
  547. package/dist/components/message/Message.d.ts +20 -0
  548. package/dist/components/message/index.cjs +11 -0
  549. package/dist/components/message/index.cjs.map +1 -0
  550. package/dist/components/message/index.d.ts +2 -0
  551. package/dist/components/message/index.js +11 -0
  552. package/dist/components/message/index.js.map +1 -0
  553. package/dist/components/message-scroller/MessageScroller.d.ts +25 -0
  554. package/dist/components/message-scroller/index.cjs +12 -0
  555. package/dist/components/message-scroller/index.cjs.map +1 -0
  556. package/dist/components/message-scroller/index.d.ts +2 -0
  557. package/dist/components/message-scroller/index.js +12 -0
  558. package/dist/components/message-scroller/index.js.map +1 -0
  559. package/dist/components/native-select/NativeSelect.d.ts +18 -0
  560. package/dist/components/native-select/index.cjs +11 -0
  561. package/dist/components/native-select/index.cjs.map +1 -0
  562. package/dist/components/native-select/index.d.ts +2 -0
  563. package/dist/components/native-select/index.js +11 -0
  564. package/dist/components/native-select/index.js.map +1 -0
  565. package/dist/components/navigation-menu/NavigationMenu.d.ts +11 -0
  566. package/dist/components/navigation-menu/index.cjs +9 -0
  567. package/dist/components/navigation-menu/index.cjs.map +1 -0
  568. package/dist/components/navigation-menu/index.d.ts +1 -0
  569. package/dist/components/navigation-menu/index.js +9 -0
  570. package/dist/components/navigation-menu/index.js.map +1 -0
  571. package/dist/components/pagination/Pagination.d.ts +13 -0
  572. package/dist/components/pagination/index.cjs +9 -0
  573. package/dist/components/pagination/index.cjs.map +1 -0
  574. package/dist/components/pagination/index.d.ts +2 -0
  575. package/dist/components/pagination/index.js +9 -0
  576. package/dist/components/pagination/index.js.map +1 -0
  577. package/dist/components/popover/Popover.d.ts +10 -0
  578. package/dist/components/popover/index.cjs +9 -0
  579. package/dist/components/popover/index.cjs.map +1 -0
  580. package/dist/components/popover/index.d.ts +1 -0
  581. package/dist/components/popover/index.js +9 -0
  582. package/dist/components/popover/index.js.map +1 -0
  583. package/dist/components/progress/Progress.d.ts +8 -0
  584. package/dist/components/progress/index.cjs +9 -0
  585. package/dist/components/progress/index.cjs.map +1 -0
  586. package/dist/components/progress/index.d.ts +2 -0
  587. package/dist/components/progress/index.js +9 -0
  588. package/dist/components/progress/index.js.map +1 -0
  589. package/dist/components/questionnaire/Questionnaire.d.ts +20 -0
  590. package/dist/components/questionnaire/index.cjs +9 -0
  591. package/dist/components/questionnaire/index.cjs.map +1 -0
  592. package/dist/components/questionnaire/index.d.ts +2 -0
  593. package/dist/components/questionnaire/index.js +9 -0
  594. package/dist/components/questionnaire/index.js.map +1 -0
  595. package/dist/components/radio-group/RadioGroup.d.ts +13 -0
  596. package/dist/components/radio-group/index.cjs +11 -0
  597. package/dist/components/radio-group/index.cjs.map +1 -0
  598. package/dist/components/radio-group/index.d.ts +2 -0
  599. package/dist/components/radio-group/index.js +11 -0
  600. package/dist/components/radio-group/index.js.map +1 -0
  601. package/dist/components/resizable/Resizable.d.ts +11 -0
  602. package/dist/components/resizable/index.cjs +9 -0
  603. package/dist/components/resizable/index.cjs.map +1 -0
  604. package/dist/components/resizable/index.d.ts +2 -0
  605. package/dist/components/resizable/index.js +9 -0
  606. package/dist/components/resizable/index.js.map +1 -0
  607. package/dist/components/scroll-area/ScrollArea.d.ts +5 -0
  608. package/dist/components/scroll-area/index.cjs +9 -0
  609. package/dist/components/scroll-area/index.cjs.map +1 -0
  610. package/dist/components/scroll-area/index.d.ts +2 -0
  611. package/dist/components/scroll-area/index.js +9 -0
  612. package/dist/components/scroll-area/index.js.map +1 -0
  613. package/dist/components/select/Select.d.ts +24 -0
  614. package/dist/components/select/index.cjs +9 -0
  615. package/dist/components/select/index.cjs.map +1 -0
  616. package/dist/components/select/index.d.ts +2 -0
  617. package/dist/components/select/index.js +9 -0
  618. package/dist/components/select/index.js.map +1 -0
  619. package/dist/components/separator/Separator.d.ts +6 -0
  620. package/dist/components/separator/index.cjs +10 -0
  621. package/dist/components/separator/index.cjs.map +1 -0
  622. package/dist/components/separator/index.d.ts +2 -0
  623. package/dist/components/separator/index.js +10 -0
  624. package/dist/components/separator/index.js.map +1 -0
  625. package/dist/components/sheet/Sheet.d.ts +14 -0
  626. package/dist/components/sheet/index.cjs +10 -0
  627. package/dist/components/sheet/index.cjs.map +1 -0
  628. package/dist/components/sheet/index.d.ts +1 -0
  629. package/dist/components/sheet/index.js +10 -0
  630. package/dist/components/sheet/index.js.map +1 -0
  631. package/dist/components/sidebar/Sidebar.d.ts +108 -0
  632. package/dist/components/sidebar/index.cjs +19 -0
  633. package/dist/components/sidebar/index.cjs.map +1 -0
  634. package/dist/components/sidebar/index.d.ts +11 -0
  635. package/dist/components/sidebar/index.js +19 -0
  636. package/dist/components/sidebar/index.js.map +1 -0
  637. package/dist/components/skeleton/Skeleton.d.ts +5 -0
  638. package/dist/components/skeleton/index.cjs +10 -0
  639. package/dist/components/skeleton/index.cjs.map +1 -0
  640. package/dist/components/skeleton/index.d.ts +2 -0
  641. package/dist/components/skeleton/index.js +10 -0
  642. package/dist/components/skeleton/index.js.map +1 -0
  643. package/dist/components/slider/Slider.d.ts +6 -0
  644. package/dist/components/slider/index.cjs +9 -0
  645. package/dist/components/slider/index.cjs.map +1 -0
  646. package/dist/components/slider/index.d.ts +2 -0
  647. package/dist/components/slider/index.js +9 -0
  648. package/dist/components/slider/index.js.map +1 -0
  649. package/dist/components/spinner/Spinner.d.ts +7 -0
  650. package/dist/components/spinner/index.cjs +10 -0
  651. package/dist/components/spinner/index.cjs.map +1 -0
  652. package/dist/components/spinner/index.d.ts +2 -0
  653. package/dist/components/spinner/index.js +10 -0
  654. package/dist/components/spinner/index.js.map +1 -0
  655. package/dist/components/switch/Switch.d.ts +8 -0
  656. package/dist/components/switch/index.cjs +9 -0
  657. package/dist/components/switch/index.cjs.map +1 -0
  658. package/dist/components/switch/index.d.ts +2 -0
  659. package/dist/components/switch/index.js +9 -0
  660. package/dist/components/switch/index.js.map +1 -0
  661. package/dist/components/table/Table.d.ts +18 -0
  662. package/dist/components/table/index.cjs +9 -0
  663. package/dist/components/table/index.cjs.map +1 -0
  664. package/dist/components/table/index.d.ts +1 -0
  665. package/dist/components/table/index.js +9 -0
  666. package/dist/components/table/index.js.map +1 -0
  667. package/dist/components/tabs/Tabs.d.ts +9 -0
  668. package/dist/components/tabs/index.cjs +9 -0
  669. package/dist/components/tabs/index.cjs.map +1 -0
  670. package/dist/components/tabs/index.d.ts +1 -0
  671. package/dist/components/tabs/index.js +9 -0
  672. package/dist/components/tabs/index.js.map +1 -0
  673. package/dist/components/tag/Tag.d.ts +7 -0
  674. package/dist/components/tag/index.cjs +9 -0
  675. package/dist/components/tag/index.cjs.map +1 -0
  676. package/dist/components/tag/index.d.ts +2 -0
  677. package/dist/components/tag/index.js +9 -0
  678. package/dist/components/tag/index.js.map +1 -0
  679. package/dist/components/textarea/Textarea.d.ts +9 -0
  680. package/dist/components/textarea/index.cjs +11 -0
  681. package/dist/components/textarea/index.cjs.map +1 -0
  682. package/dist/components/textarea/index.d.ts +2 -0
  683. package/dist/components/textarea/index.js +11 -0
  684. package/dist/components/textarea/index.js.map +1 -0
  685. package/dist/components/toast/Toaster.d.ts +1 -0
  686. package/dist/components/toast/index.cjs +11 -0
  687. package/dist/components/toast/index.cjs.map +1 -0
  688. package/dist/components/toast/index.d.ts +3 -0
  689. package/dist/components/toast/index.js +11 -0
  690. package/dist/components/toast/index.js.map +1 -0
  691. package/dist/components/toast/useToast.d.ts +17 -0
  692. package/dist/components/toggle/Toggle.d.ts +9 -0
  693. package/dist/components/toggle/index.cjs +10 -0
  694. package/dist/components/toggle/index.cjs.map +1 -0
  695. package/dist/components/toggle/index.d.ts +2 -0
  696. package/dist/components/toggle/index.js +10 -0
  697. package/dist/components/toggle/index.js.map +1 -0
  698. package/dist/components/toggle-group/ToggleGroup.d.ts +14 -0
  699. package/dist/components/toggle-group/index.cjs +12 -0
  700. package/dist/components/toggle-group/index.cjs.map +1 -0
  701. package/dist/components/toggle-group/index.d.ts +2 -0
  702. package/dist/components/toggle-group/index.js +12 -0
  703. package/dist/components/toggle-group/index.js.map +1 -0
  704. package/dist/components/tooltip/Tooltip.d.ts +10 -0
  705. package/dist/components/tooltip/index.cjs +10 -0
  706. package/dist/components/tooltip/index.cjs.map +1 -0
  707. package/dist/components/tooltip/index.d.ts +2 -0
  708. package/dist/components/tooltip/index.js +10 -0
  709. package/dist/components/tooltip/index.js.map +1 -0
  710. package/dist/index.cjs +288 -0
  711. package/dist/index.cjs.map +1 -0
  712. package/dist/index.d.ts +123 -0
  713. package/dist/index.js +288 -0
  714. package/dist/index.js.map +1 -0
  715. package/dist/lib/cn.d.ts +3 -0
  716. package/dist/styles.css +2 -0
  717. package/dist/ui-manifest.json +1766 -0
  718. package/package.json +80 -0
@@ -0,0 +1,526 @@
1
+ 'use client';
2
+ import {
3
+ Tooltip
4
+ } from "./chunk-SKQHJJ6L.js";
5
+ import {
6
+ Separator
7
+ } from "./chunk-YFS2VFC5.js";
8
+ import {
9
+ Sheet
10
+ } from "./chunk-QX75NAXT.js";
11
+ import {
12
+ Skeleton
13
+ } from "./chunk-MIKQY57Q.js";
14
+ import {
15
+ Input
16
+ } from "./chunk-72IENMXB.js";
17
+ import {
18
+ IconButton
19
+ } from "./chunk-Y523KUML.js";
20
+ import {
21
+ cn
22
+ } from "./chunk-74GQ35MJ.js";
23
+
24
+ // src/components/sidebar/Sidebar.jsx
25
+ import React, { createContext, useCallback, useContext, useEffect, useMemo, useState } from "react";
26
+ import { Slot } from "radix-ui";
27
+ import { PanelLeft } from "@tlglobal/icons";
28
+
29
+ // src/components/sidebar/Sidebar.variants.js
30
+ import { cva } from "class-variance-authority";
31
+ var sidebarMenuButtonVariants = cva(
32
+ [
33
+ "group/menu-button peer/menu-button relative flex w-full items-center gap-2 overflow-hidden rounded-md",
34
+ "px-2 py-2 text-left font-sans text-text-primary outline-none transition-colors",
35
+ "hover:bg-bg-surface-hover",
36
+ "focus-visible:outline-none focus-visible:shadow-[var(--shadow-focus-ring)]",
37
+ "disabled:pointer-events-none disabled:opacity-50",
38
+ "aria-disabled:pointer-events-none aria-disabled:opacity-50",
39
+ "data-[active=true]:bg-bg-surface-hover data-[active=true]:font-medium data-[active=true]:text-text-primary",
40
+ "[&>svg]:h-4 [&>svg]:w-4 [&>svg]:shrink-0 [&>svg]:text-text-secondary",
41
+ "data-[active=true]:[&>svg]:text-text-primary",
42
+ // In the icon rail only the leading icon survives: the label collapses to zero width rather
43
+ // than unmounting, so expanding again doesn't re-run the consumer's render.
44
+ "group-data-[collapsible=icon]:justify-center group-data-[collapsible=icon]:px-0",
45
+ "group-data-[collapsible=icon]:[&>span]:hidden"
46
+ ],
47
+ {
48
+ variants: {
49
+ variant: {
50
+ default: "",
51
+ outline: [
52
+ "bg-bg-page shadow-[0_0_0_1px_var(--border-default)]",
53
+ "hover:shadow-[0_0_0_1px_var(--border-strong)]"
54
+ ]
55
+ },
56
+ size: {
57
+ sm: "h-7 text-xs",
58
+ md: "h-8 text-sm",
59
+ lg: "h-12 text-sm"
60
+ }
61
+ },
62
+ defaultVariants: { variant: "default", size: "md" }
63
+ }
64
+ );
65
+ var sidebarMenuSubButtonVariants = cva(
66
+ [
67
+ "relative flex h-7 w-full items-center gap-2 overflow-hidden rounded-md px-2",
68
+ "font-sans text-text-secondary outline-none transition-colors",
69
+ "hover:bg-bg-surface-hover hover:text-text-primary",
70
+ "focus-visible:outline-none focus-visible:shadow-[var(--shadow-focus-ring)]",
71
+ "aria-disabled:pointer-events-none aria-disabled:opacity-50",
72
+ "data-[active=true]:bg-bg-surface-hover data-[active=true]:font-medium data-[active=true]:text-text-primary",
73
+ "[&>svg]:h-4 [&>svg]:w-4 [&>svg]:shrink-0",
74
+ "[&>span]:truncate"
75
+ ],
76
+ {
77
+ variants: {
78
+ size: {
79
+ sm: "text-xs",
80
+ md: "text-sm"
81
+ }
82
+ },
83
+ defaultVariants: { size: "md" }
84
+ }
85
+ );
86
+
87
+ // src/components/sidebar/Sidebar.jsx
88
+ import { jsx, jsxs } from "react/jsx-runtime";
89
+ var SIDEBAR_WIDTH = "16rem";
90
+ var SIDEBAR_WIDTH_ICON = "3rem";
91
+ var SIDEBAR_WIDTH_MOBILE = "18rem";
92
+ var SidebarContext = createContext(null);
93
+ function useSidebar() {
94
+ const context = useContext(SidebarContext);
95
+ if (!context) throw new Error("Sidebar parts must be used within Sidebar.Provider");
96
+ return context;
97
+ }
98
+ function useIsMobile(breakpoint) {
99
+ const [isMobile, setIsMobile] = useState(false);
100
+ useEffect(() => {
101
+ const query = window.matchMedia(`(max-width: ${breakpoint - 1}px)`);
102
+ const update = () => setIsMobile(query.matches);
103
+ update();
104
+ query.addEventListener("change", update);
105
+ return () => query.removeEventListener("change", update);
106
+ }, [breakpoint]);
107
+ return isMobile;
108
+ }
109
+ function Provider({
110
+ defaultOpen = true,
111
+ open: openProp,
112
+ onOpenChange,
113
+ persistKey,
114
+ mobileBreakpoint = 768,
115
+ keyboardShortcut = "b",
116
+ className,
117
+ style,
118
+ children,
119
+ ...props
120
+ }) {
121
+ const isMobile = useIsMobile(mobileBreakpoint);
122
+ const [openMobile, setOpenMobile] = useState(false);
123
+ const [uncontrolledOpen, setUncontrolledOpen] = useState(defaultOpen);
124
+ const isControlled = openProp !== void 0;
125
+ const open = isControlled ? openProp : uncontrolledOpen;
126
+ const setOpen = useCallback(
127
+ (value) => {
128
+ const next = typeof value === "function" ? value(open) : value;
129
+ if (!isControlled) setUncontrolledOpen(next);
130
+ onOpenChange == null ? void 0 : onOpenChange(next);
131
+ if (persistKey) {
132
+ try {
133
+ window.localStorage.setItem(persistKey, String(next));
134
+ } catch {
135
+ }
136
+ }
137
+ },
138
+ [open, isControlled, onOpenChange, persistKey]
139
+ );
140
+ useEffect(() => {
141
+ if (!persistKey || isControlled) return;
142
+ try {
143
+ const stored = window.localStorage.getItem(persistKey);
144
+ if (stored !== null) setUncontrolledOpen(stored === "true");
145
+ } catch {
146
+ }
147
+ }, [persistKey, isControlled]);
148
+ const toggleSidebar = useCallback(() => {
149
+ if (isMobile) setOpenMobile((value) => !value);
150
+ else setOpen((value) => !value);
151
+ }, [isMobile, setOpen]);
152
+ useEffect(() => {
153
+ if (!keyboardShortcut) return void 0;
154
+ const onKeyDown = (event) => {
155
+ if (event.key.toLowerCase() !== keyboardShortcut.toLowerCase()) return;
156
+ if (!event.metaKey && !event.ctrlKey) return;
157
+ event.preventDefault();
158
+ toggleSidebar();
159
+ };
160
+ window.addEventListener("keydown", onKeyDown);
161
+ return () => window.removeEventListener("keydown", onKeyDown);
162
+ }, [keyboardShortcut, toggleSidebar]);
163
+ const state = open ? "expanded" : "collapsed";
164
+ const context = useMemo(
165
+ () => ({ state, open, setOpen, openMobile, setOpenMobile, isMobile, toggleSidebar }),
166
+ [state, open, setOpen, openMobile, isMobile, toggleSidebar]
167
+ );
168
+ return /* @__PURE__ */ jsx(SidebarContext.Provider, { value: context, children: /* @__PURE__ */ jsx(
169
+ "div",
170
+ {
171
+ "data-slot": "sidebar-wrapper",
172
+ style: {
173
+ "--sidebar-width": SIDEBAR_WIDTH,
174
+ "--sidebar-width-icon": SIDEBAR_WIDTH_ICON,
175
+ "--sidebar-width-mobile": SIDEBAR_WIDTH_MOBILE,
176
+ ...style
177
+ },
178
+ className: cn("group/sidebar-wrapper flex min-h-svh w-full font-sans", className),
179
+ ...props,
180
+ children
181
+ }
182
+ ) });
183
+ }
184
+ function Root({
185
+ side = "left",
186
+ variant = "sidebar",
187
+ collapsible = "offcanvas",
188
+ mobileTitle = "Sidebar",
189
+ className,
190
+ children,
191
+ ...props
192
+ }) {
193
+ const { isMobile, state, openMobile, setOpenMobile } = useSidebar();
194
+ const detached = variant === "floating" || variant === "inset";
195
+ if (collapsible === "none") {
196
+ return /* @__PURE__ */ jsx(
197
+ "div",
198
+ {
199
+ "data-sidebar": "root",
200
+ className: cn("flex h-full w-[var(--sidebar-width)] flex-col bg-bg-surface", className),
201
+ ...props,
202
+ children
203
+ }
204
+ );
205
+ }
206
+ if (isMobile) {
207
+ return /* @__PURE__ */ jsx(Sheet.Root, { open: openMobile, onOpenChange: setOpenMobile, children: /* @__PURE__ */ jsxs(
208
+ Sheet.Content,
209
+ {
210
+ side,
211
+ "data-sidebar": "root",
212
+ "data-mobile": "true",
213
+ className: cn("w-[var(--sidebar-width-mobile)] gap-0 bg-bg-surface p-0", className),
214
+ ...props,
215
+ children: [
216
+ /* @__PURE__ */ jsx(Sheet.Title, { className: "sr-only", children: mobileTitle }),
217
+ /* @__PURE__ */ jsx("div", { className: "flex h-full w-full flex-col", children })
218
+ ]
219
+ }
220
+ ) });
221
+ }
222
+ return /* @__PURE__ */ jsxs(
223
+ "div",
224
+ {
225
+ className: "group peer hidden md:block",
226
+ "data-sidebar": "wrapper",
227
+ "data-state": state,
228
+ "data-collapsible": state === "collapsed" ? collapsible : "",
229
+ "data-variant": variant,
230
+ "data-side": side,
231
+ children: [
232
+ /* @__PURE__ */ jsx(
233
+ "div",
234
+ {
235
+ "aria-hidden": "true",
236
+ className: cn(
237
+ "relative h-svh w-[var(--sidebar-width)] bg-transparent transition-[width] duration-200 ease-linear",
238
+ "group-data-[collapsible=offcanvas]:w-0",
239
+ detached ? "group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+1rem)]" : "group-data-[collapsible=icon]:w-[var(--sidebar-width-icon)]"
240
+ )
241
+ }
242
+ ),
243
+ /* @__PURE__ */ jsx(
244
+ "div",
245
+ {
246
+ "data-sidebar": "root",
247
+ className: cn(
248
+ "fixed inset-y-0 z-30 hidden h-svh w-[var(--sidebar-width)] md:flex",
249
+ "transition-[left,right,width] duration-200 ease-linear",
250
+ side === "left" ? "left-0 group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)]" : "right-0 group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)]",
251
+ detached ? "p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+1rem)]" : "group-data-[collapsible=icon]:w-[var(--sidebar-width-icon)]",
252
+ !detached && (side === "left" ? "border-r border-border-default" : "border-l border-border-default"),
253
+ className
254
+ ),
255
+ ...props,
256
+ children: /* @__PURE__ */ jsx(
257
+ "div",
258
+ {
259
+ "data-sidebar": "panel",
260
+ className: cn(
261
+ "relative flex h-full w-full flex-col overflow-hidden bg-bg-surface",
262
+ detached && "rounded-lg border border-border-default shadow-sm"
263
+ ),
264
+ children
265
+ }
266
+ )
267
+ }
268
+ )
269
+ ]
270
+ }
271
+ );
272
+ }
273
+ function Inset({ className, ...props }) {
274
+ return /* @__PURE__ */ jsx(
275
+ "main",
276
+ {
277
+ className: cn(
278
+ "relative flex min-h-svh flex-1 flex-col bg-bg-page",
279
+ "peer-data-[variant=inset]:m-2 peer-data-[variant=inset]:min-h-[calc(100svh-1rem)]",
280
+ "peer-data-[variant=inset]:rounded-xl peer-data-[variant=inset]:border peer-data-[variant=inset]:border-border-default",
281
+ className
282
+ ),
283
+ ...props
284
+ }
285
+ );
286
+ }
287
+ var Trigger = React.forwardRef(function Trigger2({ className, onClick, ...props }, ref) {
288
+ const { toggleSidebar } = useSidebar();
289
+ return /* @__PURE__ */ jsx(
290
+ IconButton,
291
+ {
292
+ ref,
293
+ variant: "ghost",
294
+ size: "sm",
295
+ "aria-label": "Toggle sidebar",
296
+ icon: /* @__PURE__ */ jsx(PanelLeft, { size: 16 }),
297
+ onClick: (event) => {
298
+ onClick == null ? void 0 : onClick(event);
299
+ toggleSidebar();
300
+ },
301
+ className: cn("shrink-0", className),
302
+ ...props
303
+ }
304
+ );
305
+ });
306
+ function Rail({ className, ...props }) {
307
+ const { toggleSidebar } = useSidebar();
308
+ return /* @__PURE__ */ jsx(
309
+ "button",
310
+ {
311
+ type: "button",
312
+ tabIndex: -1,
313
+ "aria-hidden": "true",
314
+ title: "Toggle sidebar",
315
+ "data-sidebar": "rail",
316
+ onClick: toggleSidebar,
317
+ className: cn(
318
+ "absolute inset-y-0 z-20 hidden w-4 cursor-pointer transition-colors sm:block",
319
+ "after:absolute after:inset-y-0 after:left-1/2 after:w-px after:-translate-x-1/2",
320
+ "hover:after:bg-border-strong",
321
+ "group-data-[side=left]:right-0 group-data-[side=right]:left-0",
322
+ className
323
+ ),
324
+ ...props
325
+ }
326
+ );
327
+ }
328
+ function Header({ className, ...props }) {
329
+ return /* @__PURE__ */ jsx("div", { "data-sidebar": "header", className: cn("flex flex-col gap-2 p-2", className), ...props });
330
+ }
331
+ function Footer({ className, ...props }) {
332
+ return /* @__PURE__ */ jsx("div", { "data-sidebar": "footer", className: cn("mt-auto flex flex-col gap-2 p-2", className), ...props });
333
+ }
334
+ function Content({ className, ...props }) {
335
+ return /* @__PURE__ */ jsx(
336
+ "div",
337
+ {
338
+ "data-sidebar": "content",
339
+ className: cn(
340
+ "flex min-h-0 flex-1 flex-col gap-2 overflow-auto",
341
+ "group-data-[collapsible=icon]:overflow-hidden",
342
+ className
343
+ ),
344
+ ...props
345
+ }
346
+ );
347
+ }
348
+ function SidebarSeparator({ className, ...props }) {
349
+ return /* @__PURE__ */ jsx(Separator, { "data-sidebar": "separator", className: cn("mx-2 w-auto", className), ...props });
350
+ }
351
+ function SidebarInput({ className, ...props }) {
352
+ return /* @__PURE__ */ jsx(Input, { "data-sidebar": "input", className: cn("h-8 w-full bg-bg-page", className), ...props });
353
+ }
354
+ function Group({ className, ...props }) {
355
+ return /* @__PURE__ */ jsx("div", { "data-sidebar": "group", className: cn("relative flex w-full min-w-0 flex-col p-2", className), ...props });
356
+ }
357
+ function GroupLabel({ className, ...props }) {
358
+ return /* @__PURE__ */ jsx(
359
+ "div",
360
+ {
361
+ "data-sidebar": "group-label",
362
+ className: cn(
363
+ "flex h-8 shrink-0 items-center rounded-md px-2 text-xs font-medium text-text-secondary",
364
+ "transition-[margin,opacity] duration-200 ease-linear",
365
+ "group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0",
366
+ className
367
+ ),
368
+ ...props
369
+ }
370
+ );
371
+ }
372
+ function GroupAction({ className, ...props }) {
373
+ return /* @__PURE__ */ jsx(
374
+ "button",
375
+ {
376
+ type: "button",
377
+ "data-sidebar": "group-action",
378
+ className: cn(
379
+ "absolute right-3 top-3.5 flex h-5 w-5 items-center justify-center rounded-md",
380
+ "text-text-secondary outline-none transition-colors",
381
+ "hover:bg-bg-surface-hover hover:text-text-primary",
382
+ "focus-visible:outline-none focus-visible:shadow-[var(--shadow-focus-ring)]",
383
+ "[&>svg]:h-4 [&>svg]:w-4 [&>svg]:shrink-0",
384
+ "group-data-[collapsible=icon]:hidden",
385
+ className
386
+ ),
387
+ ...props
388
+ }
389
+ );
390
+ }
391
+ function GroupContent({ className, ...props }) {
392
+ return /* @__PURE__ */ jsx("div", { "data-sidebar": "group-content", className: cn("w-full text-sm", className), ...props });
393
+ }
394
+ function Menu({ className, ...props }) {
395
+ return /* @__PURE__ */ jsx("ul", { "data-sidebar": "menu", className: cn("flex w-full min-w-0 flex-col gap-1", className), ...props });
396
+ }
397
+ function MenuItem({ className, ...props }) {
398
+ return /* @__PURE__ */ jsx("li", { "data-sidebar": "menu-item", className: cn("group/menu-item relative", className), ...props });
399
+ }
400
+ var MenuButton = React.forwardRef(function MenuButton2({ asChild = false, isActive = false, variant, size, tooltip, className, ...props }, ref) {
401
+ const { state, isMobile } = useSidebar();
402
+ const Comp = asChild ? Slot.Root : "button";
403
+ const button = /* @__PURE__ */ jsx(
404
+ Comp,
405
+ {
406
+ ref,
407
+ type: asChild ? void 0 : "button",
408
+ "data-sidebar": "menu-button",
409
+ "data-active": isActive,
410
+ className: cn(sidebarMenuButtonVariants({ variant, size }), className),
411
+ ...props
412
+ }
413
+ );
414
+ if (!tooltip || state !== "collapsed" || isMobile) return button;
415
+ return /* @__PURE__ */ jsx(Tooltip, { label: tooltip, side: "right", children: button });
416
+ });
417
+ function MenuAction({ className, showOnHover = false, ...props }) {
418
+ return /* @__PURE__ */ jsx(
419
+ "button",
420
+ {
421
+ type: "button",
422
+ "data-sidebar": "menu-action",
423
+ className: cn(
424
+ "absolute right-1 top-1/2 flex h-6 w-6 -translate-y-1/2 items-center justify-center rounded-md",
425
+ "text-text-secondary outline-none transition-colors",
426
+ "hover:bg-bg-surface-hover hover:text-text-primary",
427
+ "focus-visible:outline-none focus-visible:shadow-[var(--shadow-focus-ring)]",
428
+ "[&>svg]:h-4 [&>svg]:w-4 [&>svg]:shrink-0",
429
+ "group-data-[collapsible=icon]:hidden",
430
+ showOnHover && "opacity-0 focus-within:opacity-100 group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100",
431
+ className
432
+ ),
433
+ ...props
434
+ }
435
+ );
436
+ }
437
+ function MenuBadge({ className, ...props }) {
438
+ return /* @__PURE__ */ jsx(
439
+ "div",
440
+ {
441
+ "data-sidebar": "menu-badge",
442
+ className: cn(
443
+ "pointer-events-none absolute right-2 top-1/2 flex h-5 min-w-5 -translate-y-1/2 select-none",
444
+ "items-center justify-center rounded-md px-1 text-xs font-medium tabular-nums text-text-secondary",
445
+ "group-data-[collapsible=icon]:hidden",
446
+ className
447
+ ),
448
+ ...props
449
+ }
450
+ );
451
+ }
452
+ function MenuSkeleton({ showIcon = false, width = "70%", className, ...props }) {
453
+ return /* @__PURE__ */ jsxs(
454
+ "div",
455
+ {
456
+ "data-sidebar": "menu-skeleton",
457
+ className: cn("flex h-8 items-center gap-2 rounded-md px-2", className),
458
+ ...props,
459
+ children: [
460
+ showIcon && /* @__PURE__ */ jsx(Skeleton, { className: "h-4 w-4 shrink-0 rounded-sm" }),
461
+ /* @__PURE__ */ jsx(Skeleton, { className: "h-4 max-w-full flex-1", style: { width } })
462
+ ]
463
+ }
464
+ );
465
+ }
466
+ function MenuSub({ className, ...props }) {
467
+ return /* @__PURE__ */ jsx(
468
+ "ul",
469
+ {
470
+ "data-sidebar": "menu-sub",
471
+ className: cn(
472
+ "mx-3.5 flex min-w-0 flex-col gap-1 border-l border-border-default px-2.5 py-0.5",
473
+ "group-data-[collapsible=icon]:hidden",
474
+ className
475
+ ),
476
+ ...props
477
+ }
478
+ );
479
+ }
480
+ function MenuSubItem({ className, ...props }) {
481
+ return /* @__PURE__ */ jsx("li", { "data-sidebar": "menu-sub-item", className: cn("group/menu-sub-item relative", className), ...props });
482
+ }
483
+ var MenuSubButton = React.forwardRef(function MenuSubButton2({ asChild = false, isActive = false, size, className, ...props }, ref) {
484
+ const Comp = asChild ? Slot.Root : "a";
485
+ return /* @__PURE__ */ jsx(
486
+ Comp,
487
+ {
488
+ ref,
489
+ "data-sidebar": "menu-sub-button",
490
+ "data-active": isActive,
491
+ className: cn(sidebarMenuSubButtonVariants({ size }), className),
492
+ ...props
493
+ }
494
+ );
495
+ });
496
+ var Sidebar = {
497
+ Provider,
498
+ Root,
499
+ Inset,
500
+ Trigger,
501
+ Rail,
502
+ Header,
503
+ Footer,
504
+ Content,
505
+ Separator: SidebarSeparator,
506
+ Input: SidebarInput,
507
+ Group,
508
+ GroupLabel,
509
+ GroupAction,
510
+ GroupContent,
511
+ Menu,
512
+ MenuItem,
513
+ MenuButton,
514
+ MenuAction,
515
+ MenuBadge,
516
+ MenuSkeleton,
517
+ MenuSub,
518
+ MenuSubItem,
519
+ MenuSubButton
520
+ };
521
+
522
+ export {
523
+ useSidebar,
524
+ Sidebar
525
+ };
526
+ //# sourceMappingURL=chunk-H3RKRRVM.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/sidebar/Sidebar.jsx","../src/components/sidebar/Sidebar.variants.js"],"sourcesContent":["import React, { createContext, useCallback, useContext, useEffect, useMemo, useState } from \"react\";\nimport { Slot } from \"radix-ui\";\nimport { PanelLeft } from \"@tlglobal/icons\";\nimport { cn } from \"../../lib/cn.js\";\nimport { IconButton } from \"../icon-button/IconButton.jsx\";\nimport { Input } from \"../input/Input.jsx\";\nimport { Separator as BaseSeparator } from \"../separator/Separator.jsx\";\nimport { Sheet } from \"../sheet/Sheet.jsx\";\nimport { Skeleton } from \"../skeleton/Skeleton.jsx\";\nimport { Tooltip } from \"../tooltip/Tooltip.jsx\";\nimport { sidebarMenuButtonVariants, sidebarMenuSubButtonVariants } from \"./Sidebar.variants.js\";\n\nconst SIDEBAR_WIDTH = \"16rem\";\nconst SIDEBAR_WIDTH_ICON = \"3rem\";\nconst SIDEBAR_WIDTH_MOBILE = \"18rem\";\n\nconst SidebarContext = createContext(null);\n\nexport function useSidebar() {\n const context = useContext(SidebarContext);\n if (!context) throw new Error(\"Sidebar parts must be used within Sidebar.Provider\");\n return context;\n}\n\n/*\n * Starts false so the first render matches what a server would produce, then corrects on mount.\n * The desktop panel is `hidden md:block` in CSS anyway, so the pre-hydration frame is already\n * correct at both sizes — this hook only drives *which tree* renders (fixed panel vs. Sheet).\n */\nfunction useIsMobile(breakpoint) {\n const [isMobile, setIsMobile] = useState(false);\n\n useEffect(() => {\n const query = window.matchMedia(`(max-width: ${breakpoint - 1}px)`);\n const update = () => setIsMobile(query.matches);\n update();\n query.addEventListener(\"change\", update);\n return () => query.removeEventListener(\"change\", update);\n }, [breakpoint]);\n\n return isMobile;\n}\n\nfunction Provider({\n defaultOpen = true,\n open: openProp,\n onOpenChange,\n persistKey,\n mobileBreakpoint = 768,\n keyboardShortcut = \"b\",\n className,\n style,\n children,\n ...props\n}) {\n const isMobile = useIsMobile(mobileBreakpoint);\n const [openMobile, setOpenMobile] = useState(false);\n const [uncontrolledOpen, setUncontrolledOpen] = useState(defaultOpen);\n\n const isControlled = openProp !== undefined;\n const open = isControlled ? openProp : uncontrolledOpen;\n\n const setOpen = useCallback(\n (value) => {\n const next = typeof value === \"function\" ? value(open) : value;\n if (!isControlled) setUncontrolledOpen(next);\n onOpenChange?.(next);\n if (persistKey) {\n // Storage throws in Safari private mode and when cookies/storage are blocked outright;\n // persistence is a nicety, so a failure here must never take the sidebar down with it.\n try {\n window.localStorage.setItem(persistKey, String(next));\n } catch {\n /* ignore */\n }\n }\n },\n [open, isControlled, onOpenChange, persistKey],\n );\n\n /*\n * Rehydrate after mount rather than in the useState initializer: reading localStorage during\n * render would produce server/client markup that disagrees and blow up hydration. The cost is\n * one corrective frame — SSR apps that care should read their own cookie and pass `defaultOpen`.\n */\n useEffect(() => {\n if (!persistKey || isControlled) return;\n try {\n const stored = window.localStorage.getItem(persistKey);\n if (stored !== null) setUncontrolledOpen(stored === \"true\");\n } catch {\n /* ignore */\n }\n }, [persistKey, isControlled]);\n\n const toggleSidebar = useCallback(() => {\n if (isMobile) setOpenMobile((value) => !value);\n else setOpen((value) => !value);\n }, [isMobile, setOpen]);\n\n useEffect(() => {\n if (!keyboardShortcut) return undefined;\n const onKeyDown = (event) => {\n if (event.key.toLowerCase() !== keyboardShortcut.toLowerCase()) return;\n if (!event.metaKey && !event.ctrlKey) return;\n event.preventDefault();\n toggleSidebar();\n };\n window.addEventListener(\"keydown\", onKeyDown);\n return () => window.removeEventListener(\"keydown\", onKeyDown);\n }, [keyboardShortcut, toggleSidebar]);\n\n const state = open ? \"expanded\" : \"collapsed\";\n\n const context = useMemo(\n () => ({ state, open, setOpen, openMobile, setOpenMobile, isMobile, toggleSidebar }),\n [state, open, setOpen, openMobile, isMobile, toggleSidebar],\n );\n\n return (\n <SidebarContext.Provider value={context}>\n <div\n data-slot=\"sidebar-wrapper\"\n style={{\n \"--sidebar-width\": SIDEBAR_WIDTH,\n \"--sidebar-width-icon\": SIDEBAR_WIDTH_ICON,\n \"--sidebar-width-mobile\": SIDEBAR_WIDTH_MOBILE,\n ...style,\n }}\n className={cn(\"group/sidebar-wrapper flex min-h-svh w-full font-sans\", className)}\n {...props}\n >\n {children}\n </div>\n </SidebarContext.Provider>\n );\n}\n\nfunction Root({\n side = \"left\",\n variant = \"sidebar\",\n collapsible = \"offcanvas\",\n mobileTitle = \"Sidebar\",\n className,\n children,\n ...props\n}) {\n const { isMobile, state, openMobile, setOpenMobile } = useSidebar();\n const detached = variant === \"floating\" || variant === \"inset\";\n\n if (collapsible === \"none\") {\n return (\n <div\n data-sidebar=\"root\"\n className={cn(\"flex h-full w-[var(--sidebar-width)] flex-col bg-bg-surface\", className)}\n {...props}\n >\n {children}\n </div>\n );\n }\n\n if (isMobile) {\n return (\n <Sheet.Root open={openMobile} onOpenChange={setOpenMobile}>\n <Sheet.Content\n side={side}\n data-sidebar=\"root\"\n data-mobile=\"true\"\n className={cn(\"w-[var(--sidebar-width-mobile)] gap-0 bg-bg-surface p-0\", className)}\n {...props}\n >\n <Sheet.Title className=\"sr-only\">{mobileTitle}</Sheet.Title>\n <div className=\"flex h-full w-full flex-col\">{children}</div>\n </Sheet.Content>\n </Sheet.Root>\n );\n }\n\n /*\n * Two elements, deliberately: the first is an inert spacer that occupies the sidebar's width in\n * normal flow so Sidebar.Inset lays out beside it, and the second is the fixed panel the user\n * actually sees. Collapsing animates both — the spacer's width and the panel's offset — which is\n * what lets the main content reflow in step with the panel sliding away, without either element\n * needing to know about the other.\n */\n return (\n <div\n className=\"group peer hidden md:block\"\n data-sidebar=\"wrapper\"\n data-state={state}\n data-collapsible={state === \"collapsed\" ? collapsible : \"\"}\n data-variant={variant}\n data-side={side}\n >\n <div\n aria-hidden=\"true\"\n className={cn(\n \"relative h-svh w-[var(--sidebar-width)] bg-transparent transition-[width] duration-200 ease-linear\",\n \"group-data-[collapsible=offcanvas]:w-0\",\n detached\n ? \"group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+1rem)]\"\n : \"group-data-[collapsible=icon]:w-[var(--sidebar-width-icon)]\",\n )}\n />\n <div\n data-sidebar=\"root\"\n className={cn(\n \"fixed inset-y-0 z-30 hidden h-svh w-[var(--sidebar-width)] md:flex\",\n \"transition-[left,right,width] duration-200 ease-linear\",\n side === \"left\"\n ? \"left-0 group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)]\"\n : \"right-0 group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)]\",\n detached\n ? \"p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+1rem)]\"\n : \"group-data-[collapsible=icon]:w-[var(--sidebar-width-icon)]\",\n !detached && (side === \"left\" ? \"border-r border-border-default\" : \"border-l border-border-default\"),\n className,\n )}\n {...props}\n >\n <div\n data-sidebar=\"panel\"\n className={cn(\n \"relative flex h-full w-full flex-col overflow-hidden bg-bg-surface\",\n detached && \"rounded-lg border border-border-default shadow-sm\",\n )}\n >\n {children}\n </div>\n </div>\n </div>\n );\n}\n\nfunction Inset({ className, ...props }) {\n return (\n <main\n className={cn(\n \"relative flex min-h-svh flex-1 flex-col bg-bg-page\",\n \"peer-data-[variant=inset]:m-2 peer-data-[variant=inset]:min-h-[calc(100svh-1rem)]\",\n \"peer-data-[variant=inset]:rounded-xl peer-data-[variant=inset]:border peer-data-[variant=inset]:border-border-default\",\n className,\n )}\n {...props}\n />\n );\n}\n\nconst Trigger = React.forwardRef(function Trigger({ className, onClick, ...props }, ref) {\n const { toggleSidebar } = useSidebar();\n return (\n <IconButton\n ref={ref}\n variant=\"ghost\"\n size=\"sm\"\n aria-label=\"Toggle sidebar\"\n icon={<PanelLeft size={16} />}\n onClick={(event) => {\n onClick?.(event);\n toggleSidebar();\n }}\n className={cn(\"shrink-0\", className)}\n {...props}\n />\n );\n});\n\n/*\n * The hit strip along the panel's outer edge. tabIndex={-1} is deliberate: Sidebar.Trigger is the\n * keyboard-and-screen-reader path, and exposing a second focusable control that does exactly the\n * same thing just adds a stop to the tab order for no benefit. aria-hidden matches that intent.\n */\nfunction Rail({ className, ...props }) {\n const { toggleSidebar } = useSidebar();\n return (\n <button\n type=\"button\"\n tabIndex={-1}\n aria-hidden=\"true\"\n title=\"Toggle sidebar\"\n data-sidebar=\"rail\"\n onClick={toggleSidebar}\n className={cn(\n \"absolute inset-y-0 z-20 hidden w-4 cursor-pointer transition-colors sm:block\",\n \"after:absolute after:inset-y-0 after:left-1/2 after:w-px after:-translate-x-1/2\",\n \"hover:after:bg-border-strong\",\n \"group-data-[side=left]:right-0 group-data-[side=right]:left-0\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction Header({ className, ...props }) {\n return <div data-sidebar=\"header\" className={cn(\"flex flex-col gap-2 p-2\", className)} {...props} />;\n}\n\nfunction Footer({ className, ...props }) {\n return <div data-sidebar=\"footer\" className={cn(\"mt-auto flex flex-col gap-2 p-2\", className)} {...props} />;\n}\n\nfunction Content({ className, ...props }) {\n return (\n <div\n data-sidebar=\"content\"\n className={cn(\n \"flex min-h-0 flex-1 flex-col gap-2 overflow-auto\",\n \"group-data-[collapsible=icon]:overflow-hidden\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction SidebarSeparator({ className, ...props }) {\n return <BaseSeparator data-sidebar=\"separator\" className={cn(\"mx-2 w-auto\", className)} {...props} />;\n}\n\nfunction SidebarInput({ className, ...props }) {\n return <Input data-sidebar=\"input\" className={cn(\"h-8 w-full bg-bg-page\", className)} {...props} />;\n}\n\nfunction Group({ className, ...props }) {\n return (\n <div data-sidebar=\"group\" className={cn(\"relative flex w-full min-w-0 flex-col p-2\", className)} {...props} />\n );\n}\n\n/*\n * Collapses upward into the group above it rather than disappearing outright — the negative margin\n * plus opacity keeps the transition continuous, where `hidden` would snap the whole menu up a row.\n */\nfunction GroupLabel({ className, ...props }) {\n return (\n <div\n data-sidebar=\"group-label\"\n className={cn(\n \"flex h-8 shrink-0 items-center rounded-md px-2 text-xs font-medium text-text-secondary\",\n \"transition-[margin,opacity] duration-200 ease-linear\",\n \"group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction GroupAction({ className, ...props }) {\n return (\n <button\n type=\"button\"\n data-sidebar=\"group-action\"\n className={cn(\n \"absolute right-3 top-3.5 flex h-5 w-5 items-center justify-center rounded-md\",\n \"text-text-secondary outline-none transition-colors\",\n \"hover:bg-bg-surface-hover hover:text-text-primary\",\n \"focus-visible:outline-none focus-visible:shadow-[var(--shadow-focus-ring)]\",\n \"[&>svg]:h-4 [&>svg]:w-4 [&>svg]:shrink-0\",\n \"group-data-[collapsible=icon]:hidden\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction GroupContent({ className, ...props }) {\n return <div data-sidebar=\"group-content\" className={cn(\"w-full text-sm\", className)} {...props} />;\n}\n\nfunction Menu({ className, ...props }) {\n return <ul data-sidebar=\"menu\" className={cn(\"flex w-full min-w-0 flex-col gap-1\", className)} {...props} />;\n}\n\nfunction MenuItem({ className, ...props }) {\n return <li data-sidebar=\"menu-item\" className={cn(\"group/menu-item relative\", className)} {...props} />;\n}\n\nconst MenuButton = React.forwardRef(function MenuButton(\n { asChild = false, isActive = false, variant, size, tooltip, className, ...props },\n ref,\n) {\n const { state, isMobile } = useSidebar();\n const Comp = asChild ? Slot.Root : \"button\";\n\n const button = (\n <Comp\n ref={ref}\n type={asChild ? undefined : \"button\"}\n data-sidebar=\"menu-button\"\n data-active={isActive}\n className={cn(sidebarMenuButtonVariants({ variant, size }), className)}\n {...props}\n />\n );\n\n // Only worth mounting once the label is actually hidden — the mobile panel is full-width, so\n // there's nothing a tooltip could reveal there.\n if (!tooltip || state !== \"collapsed\" || isMobile) return button;\n\n return (\n <Tooltip label={tooltip} side=\"right\">\n {button}\n </Tooltip>\n );\n});\n\nfunction MenuAction({ className, showOnHover = false, ...props }) {\n return (\n <button\n type=\"button\"\n data-sidebar=\"menu-action\"\n className={cn(\n \"absolute right-1 top-1/2 flex h-6 w-6 -translate-y-1/2 items-center justify-center rounded-md\",\n \"text-text-secondary outline-none transition-colors\",\n \"hover:bg-bg-surface-hover hover:text-text-primary\",\n \"focus-visible:outline-none focus-visible:shadow-[var(--shadow-focus-ring)]\",\n \"[&>svg]:h-4 [&>svg]:w-4 [&>svg]:shrink-0\",\n \"group-data-[collapsible=icon]:hidden\",\n showOnHover &&\n \"opacity-0 focus-within:opacity-100 group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction MenuBadge({ className, ...props }) {\n return (\n <div\n data-sidebar=\"menu-badge\"\n className={cn(\n \"pointer-events-none absolute right-2 top-1/2 flex h-5 min-w-5 -translate-y-1/2 select-none\",\n \"items-center justify-center rounded-md px-1 text-xs font-medium tabular-nums text-text-secondary\",\n \"group-data-[collapsible=icon]:hidden\",\n className,\n )}\n {...props}\n />\n );\n}\n\n/*\n * `width` is a prop rather than the randomised value shadcn uses, so a page of skeletons renders\n * identically every time — otherwise visual-regression snapshots would diff on every run.\n */\nfunction MenuSkeleton({ showIcon = false, width = \"70%\", className, ...props }) {\n return (\n <div\n data-sidebar=\"menu-skeleton\"\n className={cn(\"flex h-8 items-center gap-2 rounded-md px-2\", className)}\n {...props}\n >\n {showIcon && <Skeleton className=\"h-4 w-4 shrink-0 rounded-sm\" />}\n <Skeleton className=\"h-4 max-w-full flex-1\" style={{ width }} />\n </div>\n );\n}\n\nfunction MenuSub({ className, ...props }) {\n return (\n <ul\n data-sidebar=\"menu-sub\"\n className={cn(\n \"mx-3.5 flex min-w-0 flex-col gap-1 border-l border-border-default px-2.5 py-0.5\",\n \"group-data-[collapsible=icon]:hidden\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction MenuSubItem({ className, ...props }) {\n return <li data-sidebar=\"menu-sub-item\" className={cn(\"group/menu-sub-item relative\", className)} {...props} />;\n}\n\nconst MenuSubButton = React.forwardRef(function MenuSubButton(\n { asChild = false, isActive = false, size, className, ...props },\n ref,\n) {\n const Comp = asChild ? Slot.Root : \"a\";\n return (\n <Comp\n ref={ref}\n data-sidebar=\"menu-sub-button\"\n data-active={isActive}\n className={cn(sidebarMenuSubButtonVariants({ size }), className)}\n {...props}\n />\n );\n});\n\nexport const Sidebar = {\n Provider,\n Root,\n Inset,\n Trigger,\n Rail,\n Header,\n Footer,\n Content,\n Separator: SidebarSeparator,\n Input: SidebarInput,\n Group,\n GroupLabel,\n GroupAction,\n GroupContent,\n Menu,\n MenuItem,\n MenuButton,\n MenuAction,\n MenuBadge,\n MenuSkeleton,\n MenuSub,\n MenuSubItem,\n MenuSubButton,\n};\n","import { cva } from \"class-variance-authority\";\n\n/*\n * The `group-data-[collapsible=icon]:` variants throughout this file key off the data attributes\n * set by Sidebar.Root's outer wrapper — that's how every nested part knows the rail has collapsed\n * without each one subscribing to context. Anything that should vanish in the icon rail (labels,\n * badges, actions, sub-menus) hides itself here rather than being conditionally rendered, so the\n * collapse stays a pure CSS transition with no remount.\n */\nexport const sidebarMenuButtonVariants = cva(\n [\n \"group/menu-button peer/menu-button relative flex w-full items-center gap-2 overflow-hidden rounded-md\",\n \"px-2 py-2 text-left font-sans text-text-primary outline-none transition-colors\",\n \"hover:bg-bg-surface-hover\",\n \"focus-visible:outline-none focus-visible:shadow-[var(--shadow-focus-ring)]\",\n \"disabled:pointer-events-none disabled:opacity-50\",\n \"aria-disabled:pointer-events-none aria-disabled:opacity-50\",\n \"data-[active=true]:bg-bg-surface-hover data-[active=true]:font-medium data-[active=true]:text-text-primary\",\n \"[&>svg]:h-4 [&>svg]:w-4 [&>svg]:shrink-0 [&>svg]:text-text-secondary\",\n \"data-[active=true]:[&>svg]:text-text-primary\",\n // In the icon rail only the leading icon survives: the label collapses to zero width rather\n // than unmounting, so expanding again doesn't re-run the consumer's render.\n \"group-data-[collapsible=icon]:justify-center group-data-[collapsible=icon]:px-0\",\n \"group-data-[collapsible=icon]:[&>span]:hidden\",\n ],\n {\n variants: {\n variant: {\n default: \"\",\n outline: [\n \"bg-bg-page shadow-[0_0_0_1px_var(--border-default)]\",\n \"hover:shadow-[0_0_0_1px_var(--border-strong)]\",\n ],\n },\n size: {\n sm: \"h-7 text-xs\",\n md: \"h-8 text-sm\",\n lg: \"h-12 text-sm\",\n },\n },\n defaultVariants: { variant: \"default\", size: \"md\" },\n },\n);\n\nexport const sidebarMenuSubButtonVariants = cva(\n [\n \"relative flex h-7 w-full items-center gap-2 overflow-hidden rounded-md px-2\",\n \"font-sans text-text-secondary outline-none transition-colors\",\n \"hover:bg-bg-surface-hover hover:text-text-primary\",\n \"focus-visible:outline-none focus-visible:shadow-[var(--shadow-focus-ring)]\",\n \"aria-disabled:pointer-events-none aria-disabled:opacity-50\",\n \"data-[active=true]:bg-bg-surface-hover data-[active=true]:font-medium data-[active=true]:text-text-primary\",\n \"[&>svg]:h-4 [&>svg]:w-4 [&>svg]:shrink-0\",\n \"[&>span]:truncate\",\n ],\n {\n variants: {\n size: {\n sm: \"text-xs\",\n md: \"text-sm\",\n },\n },\n defaultVariants: { size: \"md\" },\n },\n);\n"],"mappings":"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","names":["Trigger","MenuButton","MenuSubButton"]}
@@ -0,0 +1,54 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }'use client';
2
+
3
+
4
+ var _chunkNSTYHMFWcjs = require('./chunk-NSTYHMFW.cjs');
5
+
6
+ // src/components/button/Button.jsx
7
+ var _react = require('react'); var _react2 = _interopRequireDefault(_react);
8
+
9
+ // src/components/button/Button.variants.js
10
+ var _classvarianceauthority = require('class-variance-authority');
11
+ var buttonVariants = _classvarianceauthority.cva.call(void 0,
12
+ "inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md font-sans font-semibold transition-[background-color,border-color,transform] duration-150 ease-out active:scale-[0.98] disabled:pointer-events-none disabled:opacity-50 focus-visible:outline-none focus-visible:border-border-focus focus-visible:shadow-[var(--shadow-focus-ring)]",
13
+ {
14
+ variants: {
15
+ variant: {
16
+ primary: "border border-accent bg-accent text-text-inverse hover:bg-accent-hover",
17
+ secondary: "border border-border-strong bg-bg-page text-text-primary hover:bg-bg-surface",
18
+ ghost: "border border-transparent bg-transparent text-text-primary hover:bg-bg-surface",
19
+ danger: "border border-danger-500 bg-danger-500 text-text-inverse hover:bg-danger-700"
20
+ },
21
+ size: {
22
+ sm: "h-8 gap-1.5 px-3 text-sm",
23
+ md: "h-[38px] gap-2 px-4 text-base",
24
+ lg: "h-11 gap-2 px-5 text-md"
25
+ }
26
+ },
27
+ defaultVariants: { variant: "primary", size: "md" }
28
+ }
29
+ );
30
+
31
+ // src/components/button/Button.jsx
32
+ var _jsxruntime = require('react/jsx-runtime');
33
+ var Button = _react2.default.forwardRef(function Button2({ variant, size, disabled, iconLeft, iconRight, children, className, type = "button", ...props }, ref) {
34
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
35
+ "button",
36
+ {
37
+ ref,
38
+ type,
39
+ disabled,
40
+ className: _chunkNSTYHMFWcjs.cn.call(void 0, buttonVariants({ variant, size }), className),
41
+ ...props,
42
+ children: [
43
+ iconLeft,
44
+ children,
45
+ iconRight
46
+ ]
47
+ }
48
+ );
49
+ });
50
+
51
+
52
+
53
+ exports.Button = Button;
54
+ //# sourceMappingURL=chunk-HAMZFEZO.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/home/runner/work/Atoms/Atoms/packages/ui/dist/chunk-HAMZFEZO.cjs","../src/components/button/Button.jsx","../src/components/button/Button.variants.js"],"names":["Button"],"mappings":"AAAA,qLAAY;AACZ;AACE;AACF,wDAA6B;AAC7B;AACA;ACLA,4EAAkB;ADOlB;AACA;AERA,kEAAoB;AAEb,IAAM,eAAA,EAAiB,yCAAA;AAAA,EAC5B,iWAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,OAAA,EAAS;AAAA,QACP,OAAA,EAAS,wEAAA;AAAA,QACT,SAAA,EAAW,8EAAA;AAAA,QACX,KAAA,EAAO,gFAAA;AAAA,QACP,MAAA,EAAQ;AAAA,MACV,CAAA;AAAA,MACA,IAAA,EAAM;AAAA,QACJ,EAAA,EAAI,0BAAA;AAAA,QACJ,EAAA,EAAI,+BAAA;AAAA,QACJ,EAAA,EAAI;AAAA,MACN;AAAA,IACF,CAAA;AAAA,IACA,eAAA,EAAiB,EAAE,OAAA,EAAS,SAAA,EAAW,IAAA,EAAM,KAAK;AAAA,EACpD;AACF,CAAA;AFSA;AACA;ACrBI,+CAAA;AALG,IAAM,OAAA,EAAS,eAAA,CAAM,UAAA,CAAW,SAASA,OAAAA,CAC9C,EAAE,OAAA,EAAS,IAAA,EAAM,QAAA,EAAU,QAAA,EAAU,SAAA,EAAW,QAAA,EAAU,SAAA,EAAW,KAAA,EAAO,QAAA,EAAU,GAAG,MAAM,CAAA,EAC/F,GAAA,EACA;AACA,EAAA,uBACE,8BAAA;AAAA,IAAC,QAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,IAAA;AAAA,MACA,QAAA;AAAA,MACA,SAAA,EAAW,kCAAA,cAAG,CAAe,EAAE,OAAA,EAAS,KAAK,CAAC,CAAA,EAAG,SAAS,CAAA;AAAA,MACzD,GAAG,KAAA;AAAA,MAEH,QAAA,EAAA;AAAA,QAAA,QAAA;AAAA,QACA,QAAA;AAAA,QACA;AAAA,MAAA;AAAA,IAAA;AAAA,EACH,CAAA;AAEJ,CAAC,CAAA;AD4BD;AACA;AACE;AACF,wBAAC","file":"/home/runner/work/Atoms/Atoms/packages/ui/dist/chunk-HAMZFEZO.cjs","sourcesContent":[null,"import React from \"react\";\nimport { cn } from \"../../lib/cn.js\";\nimport { buttonVariants } from \"./Button.variants.js\";\n\nexport const Button = React.forwardRef(function Button(\n { variant, size, disabled, iconLeft, iconRight, children, className, type = \"button\", ...props },\n ref,\n) {\n return (\n <button\n ref={ref}\n type={type}\n disabled={disabled}\n className={cn(buttonVariants({ variant, size }), className)}\n {...props}\n >\n {iconLeft}\n {children}\n {iconRight}\n </button>\n );\n});\n","import { cva } from \"class-variance-authority\";\n\nexport const buttonVariants = cva(\n \"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md font-sans font-semibold transition-[background-color,border-color,transform] duration-150 ease-out active:scale-[0.98] disabled:pointer-events-none disabled:opacity-50 focus-visible:outline-none focus-visible:border-border-focus focus-visible:shadow-[var(--shadow-focus-ring)]\",\n {\n variants: {\n variant: {\n primary: \"border border-accent bg-accent text-text-inverse hover:bg-accent-hover\",\n secondary: \"border border-border-strong bg-bg-page text-text-primary hover:bg-bg-surface\",\n ghost: \"border border-transparent bg-transparent text-text-primary hover:bg-bg-surface\",\n danger: \"border border-danger-500 bg-danger-500 text-text-inverse hover:bg-danger-700\",\n },\n size: {\n sm: \"h-8 gap-1.5 px-3 text-sm\",\n md: \"h-[38px] gap-2 px-4 text-base\",\n lg: \"h-11 gap-2 px-5 text-md\",\n },\n },\n defaultVariants: { variant: \"primary\", size: \"md\" },\n },\n);\n"]}