@tlglobal/ui 2.0.0 → 2.0.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 (297) hide show
  1. package/README.md +70 -0
  2. package/dist/AI_CONTEXT.md +1 -1
  3. package/dist/AI_INVENTORY.md +1 -1
  4. package/dist/{chunk-L5ASRHVY.js → chunk-2HCSVAI5.js} +2 -2
  5. package/dist/{chunk-CVXFVAS4.cjs → chunk-2ZWGB3S2.cjs} +42 -29
  6. package/dist/chunk-2ZWGB3S2.cjs.map +1 -0
  7. package/dist/{chunk-Y523KUML.js → chunk-3G65Q7C4.js} +5 -2
  8. package/dist/chunk-3G65Q7C4.js.map +1 -0
  9. package/dist/{chunk-N7NOXL4I.js → chunk-3TYFCWQ3.js} +29 -24
  10. package/dist/chunk-3TYFCWQ3.js.map +1 -0
  11. package/dist/{chunk-43UYUOCI.cjs → chunk-44WYLL4S.cjs} +5 -2
  12. package/dist/chunk-44WYLL4S.cjs.map +1 -0
  13. package/dist/{chunk-IRV6TBCD.js → chunk-4NNTKMOB.js} +5 -3
  14. package/dist/chunk-4NNTKMOB.js.map +1 -0
  15. package/dist/{chunk-V3NEBNKV.js → chunk-4OS2O7Z4.js} +41 -28
  16. package/dist/chunk-4OS2O7Z4.js.map +1 -0
  17. package/dist/{chunk-F5XBFNFL.cjs → chunk-5H6YBTVY.cjs} +12 -10
  18. package/dist/chunk-5H6YBTVY.cjs.map +1 -0
  19. package/dist/{chunk-EADT2IDZ.cjs → chunk-5YRHXI5B.cjs} +5 -2
  20. package/dist/chunk-5YRHXI5B.cjs.map +1 -0
  21. package/dist/chunk-6HVA6YPU.js +92 -0
  22. package/dist/chunk-6HVA6YPU.js.map +1 -0
  23. package/dist/{chunk-CQNMLNRY.js → chunk-6MJNOSPS.js} +14 -11
  24. package/dist/chunk-6MJNOSPS.js.map +1 -0
  25. package/dist/{chunk-HJCCG7JW.js → chunk-6PBJ4G23.js} +11 -9
  26. package/dist/chunk-6PBJ4G23.js.map +1 -0
  27. package/dist/{chunk-DBCPNZ6H.js → chunk-7PGGVGL6.js} +5 -3
  28. package/dist/chunk-7PGGVGL6.js.map +1 -0
  29. package/dist/{chunk-HRO7NGJR.cjs → chunk-A2ZOWFFG.cjs} +27 -21
  30. package/dist/chunk-A2ZOWFFG.cjs.map +1 -0
  31. package/dist/{chunk-ENO36WFO.cjs → chunk-ACSNQJA2.cjs} +15 -12
  32. package/dist/chunk-ACSNQJA2.cjs.map +1 -0
  33. package/dist/{chunk-ASXOVY3O.js → chunk-AEQRMYFY.js} +6 -2
  34. package/dist/chunk-AEQRMYFY.js.map +1 -0
  35. package/dist/{chunk-SKQHJJ6L.js → chunk-AHTKZYY6.js} +5 -3
  36. package/dist/chunk-AHTKZYY6.js.map +1 -0
  37. package/dist/{chunk-BG3HP3NJ.cjs → chunk-ASR6S6DB.cjs} +6 -4
  38. package/dist/chunk-ASR6S6DB.cjs.map +1 -0
  39. package/dist/{chunk-5TOJI2VT.cjs → chunk-BUXNYXY3.cjs} +5 -2
  40. package/dist/chunk-BUXNYXY3.cjs.map +1 -0
  41. package/dist/{chunk-ATQSUWAB.cjs → chunk-C4F5WANA.cjs} +15 -12
  42. package/dist/chunk-C4F5WANA.cjs.map +1 -0
  43. package/dist/{chunk-QX75NAXT.js → chunk-COYRHKMS.js} +21 -13
  44. package/dist/chunk-COYRHKMS.js.map +1 -0
  45. package/dist/{chunk-KG4EGAMK.js → chunk-DRL2Z5QN.js} +14 -11
  46. package/dist/chunk-DRL2Z5QN.js.map +1 -0
  47. package/dist/{chunk-4XLHRXFU.cjs → chunk-DU6MB3UR.cjs} +18 -14
  48. package/dist/chunk-DU6MB3UR.cjs.map +1 -0
  49. package/dist/{chunk-VONXCRR4.cjs → chunk-E7VMBMME.cjs} +5 -2
  50. package/dist/chunk-E7VMBMME.cjs.map +1 -0
  51. package/dist/chunk-ERR4JYSK.js +37 -0
  52. package/dist/chunk-ERR4JYSK.js.map +1 -0
  53. package/dist/{chunk-GJQOXOSX.cjs → chunk-F6AMISYP.cjs} +12 -10
  54. package/dist/chunk-F6AMISYP.cjs.map +1 -0
  55. package/dist/{chunk-NCYN3QQU.cjs → chunk-GD6QZD2T.cjs} +22 -14
  56. package/dist/chunk-GD6QZD2T.cjs.map +1 -0
  57. package/dist/{chunk-GAIT5TGX.js → chunk-GLOGO66M.js} +2 -2
  58. package/dist/{chunk-QEVPIMPR.js → chunk-ITPU3GJP.js} +17 -13
  59. package/dist/chunk-ITPU3GJP.js.map +1 -0
  60. package/dist/{chunk-7VXLTE5S.cjs → chunk-JFDZ7CML.cjs} +8 -8
  61. package/dist/{chunk-7VXLTE5S.cjs.map → chunk-JFDZ7CML.cjs.map} +1 -1
  62. package/dist/{chunk-HWVBYDV7.cjs → chunk-JVNI5OEZ.cjs} +39 -15
  63. package/dist/chunk-JVNI5OEZ.cjs.map +1 -0
  64. package/dist/{chunk-3PA53VKD.js → chunk-KLCAYZB2.js} +37 -13
  65. package/dist/chunk-KLCAYZB2.js.map +1 -0
  66. package/dist/{chunk-77VS352K.js → chunk-KTKJUALJ.js} +5 -2
  67. package/dist/chunk-KTKJUALJ.js.map +1 -0
  68. package/dist/{chunk-H3RKRRVM.js → chunk-L5KEJ5FQ.js} +202 -190
  69. package/dist/chunk-L5KEJ5FQ.js.map +1 -0
  70. package/dist/chunk-LDABSX4U.js +9 -0
  71. package/dist/chunk-LDABSX4U.js.map +1 -0
  72. package/dist/chunk-LEAPQI7O.cjs +37 -0
  73. package/dist/chunk-LEAPQI7O.cjs.map +1 -0
  74. package/dist/{chunk-XGCIOWNR.cjs → chunk-LS6JKLML.cjs} +6 -4
  75. package/dist/chunk-LS6JKLML.cjs.map +1 -0
  76. package/dist/{chunk-GJGPQRIK.js → chunk-NKZBBAJ5.js} +2 -2
  77. package/dist/{chunk-QT6A3IGJ.js → chunk-ODXGLPJL.js} +11 -8
  78. package/dist/chunk-ODXGLPJL.js.map +1 -0
  79. package/dist/{chunk-2GWZWHLI.cjs → chunk-OFJMBPJN.cjs} +3 -3
  80. package/dist/{chunk-2GWZWHLI.cjs.map → chunk-OFJMBPJN.cjs.map} +1 -1
  81. package/dist/{chunk-3FJ2AYA2.js → chunk-OKUW3EEZ.js} +26 -20
  82. package/dist/chunk-OKUW3EEZ.js.map +1 -0
  83. package/dist/{chunk-ZWS4E67U.cjs → chunk-PSNYF5AW.cjs} +3 -3
  84. package/dist/{chunk-ZWS4E67U.cjs.map → chunk-PSNYF5AW.cjs.map} +1 -1
  85. package/dist/{chunk-QET47X4U.cjs → chunk-PXVC4OBB.cjs} +12 -9
  86. package/dist/chunk-PXVC4OBB.cjs.map +1 -0
  87. package/dist/{chunk-T4FTROIQ.cjs → chunk-PZN4WYN7.cjs} +20 -23
  88. package/dist/chunk-PZN4WYN7.cjs.map +1 -0
  89. package/dist/chunk-Q2JCE4CK.cjs +9 -0
  90. package/dist/chunk-Q2JCE4CK.cjs.map +1 -0
  91. package/dist/{chunk-XWMDE3D5.cjs → chunk-RKPN6UFK.cjs} +6 -4
  92. package/dist/chunk-RKPN6UFK.cjs.map +1 -0
  93. package/dist/{chunk-LZEQUT4L.cjs → chunk-RX5FOAD2.cjs} +15 -12
  94. package/dist/chunk-RX5FOAD2.cjs.map +1 -0
  95. package/dist/{chunk-XMCP5ITG.cjs → chunk-RXX2IGK5.cjs} +3 -3
  96. package/dist/{chunk-XMCP5ITG.cjs.map → chunk-RXX2IGK5.cjs.map} +1 -1
  97. package/dist/{chunk-JPABWZU4.js → chunk-S5CNVXZ3.js} +2 -2
  98. package/dist/{chunk-OZR3RLEW.cjs → chunk-SQAK5ZSK.cjs} +191 -179
  99. package/dist/chunk-SQAK5ZSK.cjs.map +1 -0
  100. package/dist/chunk-TAAZXDXC.cjs +92 -0
  101. package/dist/chunk-TAAZXDXC.cjs.map +1 -0
  102. package/dist/chunk-TS6NCZG4.cjs +84 -0
  103. package/dist/chunk-TS6NCZG4.cjs.map +1 -0
  104. package/dist/{chunk-PNBLW6BD.cjs → chunk-UAQVDWOH.cjs} +6 -2
  105. package/dist/chunk-UAQVDWOH.cjs.map +1 -0
  106. package/dist/{chunk-7KV2ASQZ.js → chunk-UC2Y7ECN.js} +5 -2
  107. package/dist/chunk-UC2Y7ECN.js.map +1 -0
  108. package/dist/{chunk-NROYDPOG.js → chunk-UCL2G3AW.js} +5 -2
  109. package/dist/chunk-UCL2G3AW.js.map +1 -0
  110. package/dist/{chunk-JSVWJPQG.js → chunk-UDYPJDYS.js} +5 -2
  111. package/dist/chunk-UDYPJDYS.js.map +1 -0
  112. package/dist/{chunk-HAMZFEZO.cjs → chunk-UMGGVQCD.cjs} +5 -2
  113. package/dist/chunk-UMGGVQCD.cjs.map +1 -0
  114. package/dist/{chunk-FSFKN344.js → chunk-VZSNQ6KY.js} +26 -19
  115. package/dist/chunk-VZSNQ6KY.js.map +1 -0
  116. package/dist/{chunk-G362MHBO.cjs → chunk-W2IIKFUQ.cjs} +5 -2
  117. package/dist/chunk-W2IIKFUQ.cjs.map +1 -0
  118. package/dist/{chunk-C35O5Z4E.js → chunk-WDQGXT4B.js} +11 -9
  119. package/dist/chunk-WDQGXT4B.js.map +1 -0
  120. package/dist/{chunk-KIAO4YXV.js → chunk-X2DTRB5I.js} +18 -21
  121. package/dist/chunk-X2DTRB5I.js.map +1 -0
  122. package/dist/chunk-XBXIJY6C.js +84 -0
  123. package/dist/chunk-XBXIJY6C.js.map +1 -0
  124. package/dist/{chunk-SN6MWJU6.js → chunk-YPW3ZNNH.js} +5 -2
  125. package/dist/chunk-YPW3ZNNH.js.map +1 -0
  126. package/dist/{chunk-YEH5VLWU.js → chunk-YY7LSY6F.js} +14 -11
  127. package/dist/chunk-YY7LSY6F.js.map +1 -0
  128. package/dist/{chunk-PFK42QIX.cjs → chunk-Z2LS4QUV.cjs} +27 -20
  129. package/dist/chunk-Z2LS4QUV.cjs.map +1 -0
  130. package/dist/{chunk-6LNO6LIW.cjs → chunk-ZSPEIPFP.cjs} +30 -25
  131. package/dist/chunk-ZSPEIPFP.cjs.map +1 -0
  132. package/dist/components/accordion/Accordion.d.ts +10 -4
  133. package/dist/components/accordion/index.cjs +2 -2
  134. package/dist/components/accordion/index.js +1 -1
  135. package/dist/components/alert-dialog/AlertDialog.d.ts +12 -5
  136. package/dist/components/alert-dialog/index.cjs +2 -2
  137. package/dist/components/alert-dialog/index.js +1 -1
  138. package/dist/components/attachment/Attachment.d.ts +16 -9
  139. package/dist/components/attachment/index.cjs +2 -2
  140. package/dist/components/attachment/index.js +1 -1
  141. package/dist/components/button/index.cjs +3 -2
  142. package/dist/components/button/index.cjs.map +1 -1
  143. package/dist/components/button/index.js +2 -1
  144. package/dist/components/calendar/index.cjs +3 -2
  145. package/dist/components/calendar/index.cjs.map +1 -1
  146. package/dist/components/calendar/index.js +2 -1
  147. package/dist/components/carousel/Carousel.d.ts +6 -6
  148. package/dist/components/carousel/index.cjs +4 -3
  149. package/dist/components/carousel/index.cjs.map +1 -1
  150. package/dist/components/carousel/index.js +3 -2
  151. package/dist/components/chart/Chart.d.ts +4 -4
  152. package/dist/components/chart/index.cjs +2 -2
  153. package/dist/components/chart/index.js +1 -1
  154. package/dist/components/combobox/index.cjs +3 -3
  155. package/dist/components/combobox/index.js +2 -2
  156. package/dist/components/command/Command.d.ts +11 -9
  157. package/dist/components/command/index.cjs +2 -2
  158. package/dist/components/command/index.js +1 -1
  159. package/dist/components/context-menu/ContextMenu.d.ts +33 -10
  160. package/dist/components/context-menu/index.cjs +2 -2
  161. package/dist/components/context-menu/index.js +1 -1
  162. package/dist/components/date-picker/index.cjs +4 -3
  163. package/dist/components/date-picker/index.cjs.map +1 -1
  164. package/dist/components/date-picker/index.js +3 -2
  165. package/dist/components/dialog/Dialog.d.ts +11 -5
  166. package/dist/components/dialog/index.cjs +2 -2
  167. package/dist/components/dialog/index.js +1 -1
  168. package/dist/components/drawer/Drawer.d.ts +11 -5
  169. package/dist/components/drawer/index.cjs +2 -2
  170. package/dist/components/drawer/index.js +1 -1
  171. package/dist/components/dropdown-menu/DropdownMenu.d.ts +33 -10
  172. package/dist/components/dropdown-menu/index.cjs +2 -2
  173. package/dist/components/dropdown-menu/index.js +1 -1
  174. package/dist/components/hover-card/HoverCard.d.ts +4 -2
  175. package/dist/components/hover-card/index.cjs +2 -2
  176. package/dist/components/hover-card/index.js +1 -1
  177. package/dist/components/icon-button/index.cjs +3 -2
  178. package/dist/components/icon-button/index.cjs.map +1 -1
  179. package/dist/components/icon-button/index.js +2 -1
  180. package/dist/components/menubar/Menubar.d.ts +34 -11
  181. package/dist/components/menubar/index.cjs +2 -2
  182. package/dist/components/menubar/index.js +1 -1
  183. package/dist/components/message/Message.d.ts +10 -10
  184. package/dist/components/message/index.cjs +2 -2
  185. package/dist/components/message/index.js +1 -1
  186. package/dist/components/message-scroller/MessageScroller.d.ts +5 -5
  187. package/dist/components/message-scroller/index.cjs +4 -3
  188. package/dist/components/message-scroller/index.cjs.map +1 -1
  189. package/dist/components/message-scroller/index.js +3 -2
  190. package/dist/components/navigation-menu/NavigationMenu.d.ts +18 -6
  191. package/dist/components/navigation-menu/index.cjs +2 -2
  192. package/dist/components/navigation-menu/index.js +1 -1
  193. package/dist/components/pagination/index.cjs +3 -2
  194. package/dist/components/pagination/index.cjs.map +1 -1
  195. package/dist/components/pagination/index.js +2 -1
  196. package/dist/components/popover/Popover.d.ts +4 -2
  197. package/dist/components/popover/index.cjs +2 -2
  198. package/dist/components/popover/index.js +1 -1
  199. package/dist/components/questionnaire/index.cjs +3 -2
  200. package/dist/components/questionnaire/index.cjs.map +1 -1
  201. package/dist/components/questionnaire/index.js +2 -1
  202. package/dist/components/resizable/Resizable.d.ts +4 -4
  203. package/dist/components/resizable/index.cjs +2 -2
  204. package/dist/components/resizable/index.js +1 -1
  205. package/dist/components/sheet/Sheet.d.ts +13 -7
  206. package/dist/components/sheet/index.cjs +2 -2
  207. package/dist/components/sheet/index.js +1 -1
  208. package/dist/components/sidebar/index.cjs +6 -5
  209. package/dist/components/sidebar/index.cjs.map +1 -1
  210. package/dist/components/sidebar/index.js +5 -4
  211. package/dist/components/slider/index.cjs +3 -2
  212. package/dist/components/slider/index.cjs.map +1 -1
  213. package/dist/components/slider/index.js +2 -1
  214. package/dist/components/tabs/Tabs.d.ts +7 -3
  215. package/dist/components/tabs/index.cjs +3 -2
  216. package/dist/components/tabs/index.cjs.map +1 -1
  217. package/dist/components/tabs/index.js +2 -1
  218. package/dist/components/toggle/index.cjs +4 -3
  219. package/dist/components/toggle/index.cjs.map +1 -1
  220. package/dist/components/toggle/index.js +3 -2
  221. package/dist/components/toggle-group/index.cjs +4 -3
  222. package/dist/components/toggle-group/index.cjs.map +1 -1
  223. package/dist/components/toggle-group/index.js +3 -2
  224. package/dist/components/tooltip/Tooltip.d.ts +2 -2
  225. package/dist/components/tooltip/index.cjs +2 -2
  226. package/dist/components/tooltip/index.js +1 -1
  227. package/dist/index.cjs +36 -35
  228. package/dist/index.cjs.map +1 -1
  229. package/dist/index.js +36 -35
  230. package/dist/ui-manifest.json +1 -1
  231. package/package.json +3 -3
  232. package/dist/chunk-3FJ2AYA2.js.map +0 -1
  233. package/dist/chunk-3PA53VKD.js.map +0 -1
  234. package/dist/chunk-3WN2VYVW.js +0 -74
  235. package/dist/chunk-3WN2VYVW.js.map +0 -1
  236. package/dist/chunk-43UYUOCI.cjs.map +0 -1
  237. package/dist/chunk-4XLHRXFU.cjs.map +0 -1
  238. package/dist/chunk-5TOJI2VT.cjs.map +0 -1
  239. package/dist/chunk-6LNO6LIW.cjs.map +0 -1
  240. package/dist/chunk-77VS352K.js.map +0 -1
  241. package/dist/chunk-7KV2ASQZ.js.map +0 -1
  242. package/dist/chunk-7USP3KPM.js +0 -74
  243. package/dist/chunk-7USP3KPM.js.map +0 -1
  244. package/dist/chunk-ASXOVY3O.js.map +0 -1
  245. package/dist/chunk-ATQSUWAB.cjs.map +0 -1
  246. package/dist/chunk-BG3HP3NJ.cjs.map +0 -1
  247. package/dist/chunk-C35O5Z4E.js.map +0 -1
  248. package/dist/chunk-C4M7CGEJ.cjs +0 -33
  249. package/dist/chunk-C4M7CGEJ.cjs.map +0 -1
  250. package/dist/chunk-CQNMLNRY.js.map +0 -1
  251. package/dist/chunk-CVXFVAS4.cjs.map +0 -1
  252. package/dist/chunk-DBCPNZ6H.js.map +0 -1
  253. package/dist/chunk-EADT2IDZ.cjs.map +0 -1
  254. package/dist/chunk-ENO36WFO.cjs.map +0 -1
  255. package/dist/chunk-F5XBFNFL.cjs.map +0 -1
  256. package/dist/chunk-FSFKN344.js.map +0 -1
  257. package/dist/chunk-G362MHBO.cjs.map +0 -1
  258. package/dist/chunk-GJQOXOSX.cjs.map +0 -1
  259. package/dist/chunk-H3RKRRVM.js.map +0 -1
  260. package/dist/chunk-HAMZFEZO.cjs.map +0 -1
  261. package/dist/chunk-HFYNUSDC.cjs +0 -74
  262. package/dist/chunk-HFYNUSDC.cjs.map +0 -1
  263. package/dist/chunk-HJCCG7JW.js.map +0 -1
  264. package/dist/chunk-HRO7NGJR.cjs.map +0 -1
  265. package/dist/chunk-HWVBYDV7.cjs.map +0 -1
  266. package/dist/chunk-IQ62AKGY.cjs +0 -74
  267. package/dist/chunk-IQ62AKGY.cjs.map +0 -1
  268. package/dist/chunk-IRV6TBCD.js.map +0 -1
  269. package/dist/chunk-JSVWJPQG.js.map +0 -1
  270. package/dist/chunk-K5CAZ7C4.js +0 -33
  271. package/dist/chunk-K5CAZ7C4.js.map +0 -1
  272. package/dist/chunk-KG4EGAMK.js.map +0 -1
  273. package/dist/chunk-KIAO4YXV.js.map +0 -1
  274. package/dist/chunk-LZEQUT4L.cjs.map +0 -1
  275. package/dist/chunk-N7NOXL4I.js.map +0 -1
  276. package/dist/chunk-NCYN3QQU.cjs.map +0 -1
  277. package/dist/chunk-NROYDPOG.js.map +0 -1
  278. package/dist/chunk-OZR3RLEW.cjs.map +0 -1
  279. package/dist/chunk-PFK42QIX.cjs.map +0 -1
  280. package/dist/chunk-PNBLW6BD.cjs.map +0 -1
  281. package/dist/chunk-QET47X4U.cjs.map +0 -1
  282. package/dist/chunk-QEVPIMPR.js.map +0 -1
  283. package/dist/chunk-QT6A3IGJ.js.map +0 -1
  284. package/dist/chunk-QX75NAXT.js.map +0 -1
  285. package/dist/chunk-SKQHJJ6L.js.map +0 -1
  286. package/dist/chunk-SN6MWJU6.js.map +0 -1
  287. package/dist/chunk-T4FTROIQ.cjs.map +0 -1
  288. package/dist/chunk-V3NEBNKV.js.map +0 -1
  289. package/dist/chunk-VONXCRR4.cjs.map +0 -1
  290. package/dist/chunk-XGCIOWNR.cjs.map +0 -1
  291. package/dist/chunk-XWMDE3D5.cjs.map +0 -1
  292. package/dist/chunk-Y523KUML.js.map +0 -1
  293. package/dist/chunk-YEH5VLWU.js.map +0 -1
  294. /package/dist/{chunk-L5ASRHVY.js.map → chunk-2HCSVAI5.js.map} +0 -0
  295. /package/dist/{chunk-GAIT5TGX.js.map → chunk-GLOGO66M.js.map} +0 -0
  296. /package/dist/{chunk-GJGPQRIK.js.map → chunk-NKZBBAJ5.js.map} +0 -0
  297. /package/dist/{chunk-JPABWZU4.js.map → chunk-S5CNVXZ3.js.map} +0 -0
package/README.md ADDED
@@ -0,0 +1,70 @@
1
+ # @tlglobal/ui
2
+
3
+ 66 React components for TuringLab products — built on Radix primitives, styled with Tailwind v4,
4
+ themeable via [`@tlglobal/tokens`](https://www.npmjs.com/package/@tlglobal/tokens). Ships
5
+ pre-compiled JS (ESM + CJS) and hand-authored `.d.ts` types.
6
+
7
+ ## Install
8
+
9
+ ```sh
10
+ pnpm add @tlglobal/ui
11
+ # npm install @tlglobal/ui / yarn add @tlglobal/ui
12
+ ```
13
+
14
+ `react` and `react-dom` `>=18` are peer dependencies. `@tlglobal/tokens` and `@tlglobal/icons`
15
+ install automatically as dependencies.
16
+
17
+ ## Quick start
18
+
19
+ ```jsx
20
+ import { Button, Dialog } from "@tlglobal/ui";
21
+ import "@tlglobal/ui/styles.css"; // once, at the app root
22
+ ```
23
+
24
+ ```html
25
+ <html data-theme="dark"> <!-- or omit for light mode -->
26
+ ```
27
+
28
+ That's the minimum to get a themed, working component. **Before writing real code against this
29
+ library, read [`CONSUMING.md`](./CONSUMING.md)** (ships inside this package) — it covers the parts
30
+ that fail silently if skipped: the stylesheet import, why an unrelated Tailwind class can render as
31
+ nothing, the `data-theme` dark-mode contract, which components need a `.Provider` wrapper, and the
32
+ full design-token list.
33
+
34
+ ## For AI agents (Claude, Cursor, etc.)
35
+
36
+ This package ships machine-readable docs specifically so an agent can use it correctly without
37
+ guessing component names or props:
38
+
39
+ | File | Purpose |
40
+ |---|---|
41
+ | `dist/AI_INVENTORY.md` | Every component/hook name that exists, ~1k tokens. Load this always. |
42
+ | `dist/AI_CONTEXT.md` | Full props for every component, ~5k tokens. Load on demand. |
43
+ | `dist/ui-manifest.json` | Same data as structured JSON, for tooling/codemods. |
44
+ | `CONSUMING.md` | The setup/gotchas brief above. |
45
+
46
+ **To wire this into a consuming repo automatically**, add to that repo's `CLAUDE.md`:
47
+
48
+ ```markdown
49
+ ## UI: @tlglobal/ui
50
+
51
+ @node_modules/@tlglobal/ui/dist/AI_INVENTORY.md
52
+
53
+ For exact props read `node_modules/@tlglobal/ui/dist/AI_CONTEXT.md`; for setup and known
54
+ limits read `node_modules/@tlglobal/ui/CONSUMING.md`. Never guess a prop or invent a
55
+ component name — if it isn't in the inventory, it doesn't exist.
56
+ ```
57
+
58
+ The `@`-import line loads the full component/hook inventory into context on every session, so the
59
+ agent starts already knowing what exists — no need to ask it to "look at the package" each time.
60
+
61
+ ## Links
62
+
63
+ - [Full API reference / setup guide (`CONSUMING.md`)](./CONSUMING.md)
64
+ - [Source & Storybook](https://github.com/turinglabglobal/Atoms)
65
+ - [`@tlglobal/tokens`](https://www.npmjs.com/package/@tlglobal/tokens) — design tokens this package themes against
66
+ - [`@tlglobal/icons`](https://www.npmjs.com/package/@tlglobal/icons) — the icon set this package uses
67
+
68
+ ## License
69
+
70
+ Apache-2.0
@@ -1,5 +1,5 @@
1
1
  <!-- Generated by scripts/generate-ai-context.mjs — do not edit by hand. -->
2
- # @tlglobal/ui v2.0.0 — AI context
2
+ # @tlglobal/ui v2.0.1 — AI context
3
3
 
4
4
  Complete generated reference for an agent working in a repo that consumes this package.
5
5
  Usage rules, setup and known limits live in `CONSUMING.md` — read that first; this file is
@@ -1,5 +1,5 @@
1
1
  <!-- Generated by scripts/generate-ai-context.mjs — do not edit by hand. -->
2
- # @tlglobal/ui v2.0.0 — inventory
2
+ # @tlglobal/ui v2.0.1 — inventory
3
3
 
4
4
  66 components, 4 hooks. Full props: `AI_CONTEXT.md` in this same
5
5
  directory, or `dist/index.d.ts`. **Only these names exist — do not invent components.**
@@ -1,7 +1,7 @@
1
1
  'use client';
2
2
  import {
3
3
  Calendar
4
- } from "./chunk-NROYDPOG.js";
4
+ } from "./chunk-UCL2G3AW.js";
5
5
  import {
6
6
  cn
7
7
  } from "./chunk-74GQ35MJ.js";
@@ -57,4 +57,4 @@ var DatePicker = React.forwardRef(function DatePicker2({ value, onValueChange, p
57
57
  export {
58
58
  DatePicker
59
59
  };
60
- //# sourceMappingURL=chunk-L5ASRHVY.js.map
60
+ //# sourceMappingURL=chunk-2HCSVAI5.js.map
@@ -1,27 +1,30 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});'use client';
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }'use client';
2
2
 
3
3
 
4
4
  var _chunkNSTYHMFWcjs = require('./chunk-NSTYHMFW.cjs');
5
5
 
6
6
  // src/components/menubar/Menubar.jsx
7
+ var _react = require('react'); var _react2 = _interopRequireDefault(_react);
7
8
  var _radixui = require('radix-ui');
8
9
  var _icons = require('@tlglobal/icons');
9
10
  var _jsxruntime = require('react/jsx-runtime');
10
11
  var contentClass = "z-50 min-w-[10rem] overflow-hidden rounded-md border border-border-default bg-bg-page p-1 shadow-md";
11
12
  var itemClass = "relative flex h-9 cursor-pointer select-none items-center rounded-sm px-2 text-sm text-text-primary outline-none transition-colors data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[highlighted]:bg-bg-surface";
12
- function Root({ className, ...props }) {
13
+ var Root = _react2.default.forwardRef(function Root2({ className, ...props }, ref) {
13
14
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
14
15
  _radixui.Menubar.Root,
15
16
  {
17
+ ref,
16
18
  className: _chunkNSTYHMFWcjs.cn.call(void 0, "flex items-center gap-1 rounded-md border border-border-default bg-bg-page p-1 font-sans", className),
17
19
  ...props
18
20
  }
19
21
  );
20
- }
21
- function Trigger({ className, ...props }) {
22
+ });
23
+ var Trigger = _react2.default.forwardRef(function Trigger2({ className, ...props }, ref) {
22
24
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
23
25
  _radixui.Menubar.Trigger,
24
26
  {
27
+ ref,
25
28
  className: _chunkNSTYHMFWcjs.cn.call(void 0,
26
29
  "flex select-none items-center rounded-sm px-3 py-1.5 text-sm font-semibold text-text-primary outline-none data-[state=open]:bg-bg-surface",
27
30
  className
@@ -29,35 +32,45 @@ function Trigger({ className, ...props }) {
29
32
  ...props
30
33
  }
31
34
  );
32
- }
33
- function Content({ className, align = "start", sideOffset = 4, ...props }) {
34
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _radixui.Menubar.Portal, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _radixui.Menubar.Content, { align, sideOffset, className: _chunkNSTYHMFWcjs.cn.call(void 0, contentClass, className), ...props }) });
35
- }
36
- function Item({ className, inset, ...props }) {
37
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _radixui.Menubar.Item, { className: _chunkNSTYHMFWcjs.cn.call(void 0, itemClass, inset && "pl-8", className), ...props });
38
- }
39
- function CheckboxItem({ className, children, ...props }) {
40
- return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _radixui.Menubar.CheckboxItem, { className: _chunkNSTYHMFWcjs.cn.call(void 0, itemClass, "pl-8", className), ...props, children: [
35
+ });
36
+ var Content = _react2.default.forwardRef(function Content2({ className, align = "start", sideOffset = 4, ...props }, ref) {
37
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _radixui.Menubar.Portal, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
38
+ _radixui.Menubar.Content,
39
+ {
40
+ ref,
41
+ align,
42
+ sideOffset,
43
+ className: _chunkNSTYHMFWcjs.cn.call(void 0, contentClass, className),
44
+ ...props
45
+ }
46
+ ) });
47
+ });
48
+ var Item = _react2.default.forwardRef(function Item2({ className, inset, ...props }, ref) {
49
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _radixui.Menubar.Item, { ref, className: _chunkNSTYHMFWcjs.cn.call(void 0, itemClass, inset && "pl-8", className), ...props });
50
+ });
51
+ var CheckboxItem = _react2.default.forwardRef(function CheckboxItem2({ className, children, ...props }, ref) {
52
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _radixui.Menubar.CheckboxItem, { ref, className: _chunkNSTYHMFWcjs.cn.call(void 0, itemClass, "pl-8", className), ...props, children: [
41
53
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _radixui.Menubar.ItemIndicator, { className: "absolute left-2.5 inline-flex items-center", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _icons.Check, { size: 14, className: "text-accent" }) }),
42
54
  children
43
55
  ] });
44
- }
45
- function RadioItem({ className, children, ...props }) {
46
- return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _radixui.Menubar.RadioItem, { className: _chunkNSTYHMFWcjs.cn.call(void 0, itemClass, "pl-8", className), ...props, children: [
56
+ });
57
+ var RadioItem = _react2.default.forwardRef(function RadioItem2({ className, children, ...props }, ref) {
58
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _radixui.Menubar.RadioItem, { ref, className: _chunkNSTYHMFWcjs.cn.call(void 0, itemClass, "pl-8", className), ...props, children: [
47
59
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _radixui.Menubar.ItemIndicator, { className: "absolute left-2.5 inline-flex items-center", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _icons.Circle, { size: 8, className: "fill-accent text-accent" }) }),
48
60
  children
49
61
  ] });
50
- }
51
- function Separator({ className, ...props }) {
52
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _radixui.Menubar.Separator, { className: _chunkNSTYHMFWcjs.cn.call(void 0, "my-1 h-px bg-border-default", className), ...props });
53
- }
54
- function Shortcut({ className, ...props }) {
55
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunkNSTYHMFWcjs.cn.call(void 0, "ml-auto pl-4 text-xs tracking-widest text-text-muted", className), ...props });
56
- }
57
- function SubTrigger({ className, inset, children, ...props }) {
62
+ });
63
+ var Separator = _react2.default.forwardRef(function Separator2({ className, ...props }, ref) {
64
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _radixui.Menubar.Separator, { ref, className: _chunkNSTYHMFWcjs.cn.call(void 0, "my-1 h-px bg-border-default", className), ...props });
65
+ });
66
+ var Shortcut = _react2.default.forwardRef(function Shortcut2({ className, ...props }, ref) {
67
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { ref, className: _chunkNSTYHMFWcjs.cn.call(void 0, "ml-auto pl-4 text-xs tracking-widest text-text-muted", className), ...props });
68
+ });
69
+ var SubTrigger = _react2.default.forwardRef(function SubTrigger2({ className, inset, children, ...props }, ref) {
58
70
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
59
71
  _radixui.Menubar.SubTrigger,
60
72
  {
73
+ ref,
61
74
  className: _chunkNSTYHMFWcjs.cn.call(void 0, itemClass, "data-[state=open]:bg-bg-surface", inset && "pl-8", className),
62
75
  ...props,
63
76
  children: [
@@ -66,10 +79,10 @@ function SubTrigger({ className, inset, children, ...props }) {
66
79
  ]
67
80
  }
68
81
  );
69
- }
70
- function SubContent({ className, ...props }) {
71
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _radixui.Menubar.Portal, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _radixui.Menubar.SubContent, { className: _chunkNSTYHMFWcjs.cn.call(void 0, contentClass, className), ...props }) });
72
- }
82
+ });
83
+ var SubContent = _react2.default.forwardRef(function SubContent2({ className, ...props }, ref) {
84
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _radixui.Menubar.Portal, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _radixui.Menubar.SubContent, { ref, className: _chunkNSTYHMFWcjs.cn.call(void 0, contentClass, className), ...props }) });
85
+ });
73
86
  var Menubar = {
74
87
  Root,
75
88
  Menu: _radixui.Menubar.Menu,
@@ -90,4 +103,4 @@ var Menubar = {
90
103
 
91
104
 
92
105
  exports.Menubar = Menubar;
93
- //# sourceMappingURL=chunk-CVXFVAS4.cjs.map
106
+ //# sourceMappingURL=chunk-2ZWGB3S2.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/home/runner/work/Atoms/Atoms/packages/ui/dist/chunk-2ZWGB3S2.cjs","../src/components/menubar/Menubar.jsx"],"names":["Root","Trigger","Content","Item","CheckboxItem","RadioItem","Separator","Shortcut","SubTrigger","SubContent"],"mappings":"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","file":"/home/runner/work/Atoms/Atoms/packages/ui/dist/chunk-2ZWGB3S2.cjs","sourcesContent":[null,"import React from \"react\";\nimport { Menubar as RadixMenubar } from \"radix-ui\";\nimport { Check, ChevronRight, Circle } from \"@tlglobal/icons\";\nimport { cn } from \"../../lib/cn.js\";\n\n// Matches DropdownMenu/ContextMenu's content and item classes so a menu looks identical\n// regardless of which trigger mechanism opened it.\nconst contentClass =\n \"z-50 min-w-[10rem] overflow-hidden rounded-md border border-border-default bg-bg-page p-1 shadow-md\";\nconst itemClass =\n \"relative flex h-9 cursor-pointer select-none items-center rounded-sm px-2 text-sm text-text-primary outline-none transition-colors data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[highlighted]:bg-bg-surface\";\n\nconst Root = React.forwardRef(function Root({ className, ...props }, ref) {\n return (\n <RadixMenubar.Root\n ref={ref}\n className={cn(\"flex items-center gap-1 rounded-md border border-border-default bg-bg-page p-1 font-sans\", className)}\n {...props}\n />\n );\n});\n\nconst Trigger = React.forwardRef(function Trigger({ className, ...props }, ref) {\n return (\n <RadixMenubar.Trigger\n ref={ref}\n className={cn(\n \"flex select-none items-center rounded-sm px-3 py-1.5 text-sm font-semibold text-text-primary outline-none data-[state=open]:bg-bg-surface\",\n className,\n )}\n {...props}\n />\n );\n});\n\nconst Content = React.forwardRef(function Content({ className, align = \"start\", sideOffset = 4, ...props }, ref) {\n return (\n <RadixMenubar.Portal>\n <RadixMenubar.Content\n ref={ref}\n align={align}\n sideOffset={sideOffset}\n className={cn(contentClass, className)}\n {...props}\n />\n </RadixMenubar.Portal>\n );\n});\n\nconst Item = React.forwardRef(function Item({ className, inset, ...props }, ref) {\n return <RadixMenubar.Item ref={ref} className={cn(itemClass, inset && \"pl-8\", className)} {...props} />;\n});\n\nconst CheckboxItem = React.forwardRef(function CheckboxItem({ className, children, ...props }, ref) {\n return (\n <RadixMenubar.CheckboxItem ref={ref} className={cn(itemClass, \"pl-8\", className)} {...props}>\n <RadixMenubar.ItemIndicator className=\"absolute left-2.5 inline-flex items-center\">\n <Check size={14} className=\"text-accent\" />\n </RadixMenubar.ItemIndicator>\n {children}\n </RadixMenubar.CheckboxItem>\n );\n});\n\nconst RadioItem = React.forwardRef(function RadioItem({ className, children, ...props }, ref) {\n return (\n <RadixMenubar.RadioItem ref={ref} className={cn(itemClass, \"pl-8\", className)} {...props}>\n <RadixMenubar.ItemIndicator className=\"absolute left-2.5 inline-flex items-center\">\n <Circle size={8} className=\"fill-accent text-accent\" />\n </RadixMenubar.ItemIndicator>\n {children}\n </RadixMenubar.RadioItem>\n );\n});\n\nconst Separator = React.forwardRef(function Separator({ className, ...props }, ref) {\n return <RadixMenubar.Separator ref={ref} className={cn(\"my-1 h-px bg-border-default\", className)} {...props} />;\n});\n\nconst Shortcut = React.forwardRef(function Shortcut({ className, ...props }, ref) {\n return <span ref={ref} className={cn(\"ml-auto pl-4 text-xs tracking-widest text-text-muted\", className)} {...props} />;\n});\n\nconst SubTrigger = React.forwardRef(function SubTrigger({ className, inset, children, ...props }, ref) {\n return (\n <RadixMenubar.SubTrigger\n ref={ref}\n className={cn(itemClass, \"data-[state=open]:bg-bg-surface\", inset && \"pl-8\", className)}\n {...props}\n >\n {children}\n <ChevronRight size={14} className=\"ml-auto text-text-muted\" />\n </RadixMenubar.SubTrigger>\n );\n});\n\nconst SubContent = React.forwardRef(function SubContent({ className, ...props }, ref) {\n return (\n <RadixMenubar.Portal>\n <RadixMenubar.SubContent ref={ref} className={cn(contentClass, className)} {...props} />\n </RadixMenubar.Portal>\n );\n});\n\nexport const Menubar = {\n Root,\n Menu: RadixMenubar.Menu,\n Trigger,\n Content,\n Item,\n CheckboxItem,\n RadioGroup: RadixMenubar.RadioGroup,\n RadioItem,\n Separator,\n Shortcut,\n Group: RadixMenubar.Group,\n Sub: RadixMenubar.Sub,\n SubTrigger,\n SubContent,\n};\n"]}
@@ -1,4 +1,7 @@
1
1
  'use client';
2
+ import {
3
+ disabledClass
4
+ } from "./chunk-LDABSX4U.js";
2
5
  import {
3
6
  cn
4
7
  } from "./chunk-74GQ35MJ.js";
@@ -9,7 +12,7 @@ import React from "react";
9
12
  // src/components/icon-button/IconButton.variants.js
10
13
  import { cva } from "class-variance-authority";
11
14
  var iconButtonVariants = cva(
12
- "inline-flex items-center justify-center rounded-md transition-[background-color,border-color] duration-150 ease-out disabled:pointer-events-none disabled:opacity-50 focus-visible:outline-none focus-visible:border-border-focus focus-visible:shadow-[var(--shadow-focus-ring)]",
15
+ `inline-flex items-center justify-center rounded-md transition-[background-color,border-color] duration-150 ease-out ${disabledClass} focus-visible:outline-none focus-visible:border-border-focus focus-visible:shadow-[var(--shadow-focus-ring)]`,
13
16
  {
14
17
  variants: {
15
18
  variant: {
@@ -47,4 +50,4 @@ var IconButton = React.forwardRef(function IconButton2({ variant, size, disabled
47
50
  export {
48
51
  IconButton
49
52
  };
50
- //# sourceMappingURL=chunk-Y523KUML.js.map
53
+ //# sourceMappingURL=chunk-3G65Q7C4.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/icon-button/IconButton.jsx","../src/components/icon-button/IconButton.variants.js"],"sourcesContent":["import React from \"react\";\nimport { cn } from \"../../lib/cn.js\";\nimport { iconButtonVariants } from \"./IconButton.variants.js\";\n\nexport const IconButton = React.forwardRef(function IconButton(\n { variant, size, disabled, icon, className, type = \"button\", \"aria-label\": ariaLabel, ...props },\n ref,\n) {\n return (\n <button\n ref={ref}\n type={type}\n disabled={disabled}\n aria-label={ariaLabel}\n className={cn(iconButtonVariants({ variant, size }), className)}\n {...props}\n >\n {icon}\n </button>\n );\n});\n","import { cva } from \"class-variance-authority\";\nimport { disabledClass } from \"../../lib/disabled.js\";\n\nexport const iconButtonVariants = cva(\n `inline-flex items-center justify-center rounded-md transition-[background-color,border-color] duration-150 ease-out ${disabledClass} 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-secondary hover:bg-bg-surface\",\n },\n size: {\n sm: \"h-7 w-7\",\n md: \"h-8.5 w-8.5\",\n lg: \"h-10 w-10\",\n },\n },\n defaultVariants: { variant: \"ghost\", size: \"md\" },\n },\n);\n"],"mappings":";;;;;;;;;AAAA,OAAO,WAAW;;;ACAlB,SAAS,WAAW;AAGb,IAAM,qBAAqB;AAAA,EAChC,uHAAuH,aAAa;AAAA,EACpI;AAAA,IACE,UAAU;AAAA,MACR,SAAS;AAAA,QACP,SAAS;AAAA,QACT,WAAW;AAAA,QACX,OAAO;AAAA,MACT;AAAA,MACA,MAAM;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,MACN;AAAA,IACF;AAAA,IACA,iBAAiB,EAAE,SAAS,SAAS,MAAM,KAAK;AAAA,EAClD;AACF;;;ADXI;AALG,IAAM,aAAa,MAAM,WAAW,SAASA,YAClD,EAAE,SAAS,MAAM,UAAU,MAAM,WAAW,OAAO,UAAU,cAAc,WAAW,GAAG,MAAM,GAC/F,KACA;AACA,SACE;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA;AAAA,MACA;AAAA,MACA,cAAY;AAAA,MACZ,WAAW,GAAG,mBAAmB,EAAE,SAAS,KAAK,CAAC,GAAG,SAAS;AAAA,MAC7D,GAAG;AAAA,MAEH;AAAA;AAAA,EACH;AAEJ,CAAC;","names":["IconButton"]}
@@ -11,12 +11,14 @@ import {
11
11
  } from "./chunk-74GQ35MJ.js";
12
12
 
13
13
  // src/components/message/Message.jsx
14
+ import React from "react";
14
15
  import { jsx } from "react/jsx-runtime";
15
- function Root({ direction, className, children, ...props }) {
16
+ var Root = React.forwardRef(function Root2({ direction, className, children, ...props }, ref) {
16
17
  const resolvedDirection = useDirection(direction);
17
18
  return /* @__PURE__ */ jsx(Direction.Provider, { value: resolvedDirection, children: /* @__PURE__ */ jsx(
18
19
  "div",
19
20
  {
21
+ ref,
20
22
  "data-slot": "message",
21
23
  "data-direction": resolvedDirection,
22
24
  className: cn(
@@ -28,15 +30,16 @@ function Root({ direction, className, children, ...props }) {
28
30
  children
29
31
  }
30
32
  ) });
31
- }
32
- function Avatar2({ className, ...props }) {
33
- return /* @__PURE__ */ jsx(Avatar, { size: "sm", className: cn("mt-0.5 shrink-0", className), ...props });
34
- }
35
- function Body({ className, ...props }) {
33
+ });
34
+ var Avatar2 = React.forwardRef(function Avatar3({ className, ...props }, ref) {
35
+ return /* @__PURE__ */ jsx(Avatar, { ref, size: "sm", className: cn("mt-0.5 shrink-0", className), ...props });
36
+ });
37
+ var Body = React.forwardRef(function Body2({ className, ...props }, ref) {
36
38
  const direction = useDirection();
37
39
  return /* @__PURE__ */ jsx(
38
40
  "div",
39
41
  {
42
+ ref,
40
43
  "data-slot": "message-body",
41
44
  className: cn(
42
45
  "flex min-w-0 flex-1 flex-col gap-1",
@@ -46,30 +49,32 @@ function Body({ className, ...props }) {
46
49
  ...props
47
50
  }
48
51
  );
49
- }
50
- function Header({ className, ...props }) {
52
+ });
53
+ var Header = React.forwardRef(function Header2({ className, ...props }, ref) {
51
54
  return /* @__PURE__ */ jsx(
52
55
  "div",
53
56
  {
57
+ ref,
54
58
  "data-slot": "message-header",
55
59
  className: cn("flex items-baseline gap-2 text-xs text-text-secondary", className),
56
60
  ...props
57
61
  }
58
62
  );
59
- }
60
- function Author({ className, ...props }) {
61
- return /* @__PURE__ */ jsx("span", { "data-slot": "message-author", className: cn("font-semibold text-text-primary", className), ...props });
62
- }
63
- function Time({ className, ...props }) {
64
- return /* @__PURE__ */ jsx("time", { "data-slot": "message-time", className: cn("tabular-nums text-text-muted", className), ...props });
65
- }
66
- function Content({ className, ...props }) {
67
- return /* @__PURE__ */ jsx("div", { "data-slot": "message-content", className: cn("flex flex-col gap-1.5", className), ...props });
68
- }
69
- function Actions({ className, ...props }) {
63
+ });
64
+ var Author = React.forwardRef(function Author2({ className, ...props }, ref) {
65
+ return /* @__PURE__ */ jsx("span", { ref, "data-slot": "message-author", className: cn("font-semibold text-text-primary", className), ...props });
66
+ });
67
+ var Time = React.forwardRef(function Time2({ className, ...props }, ref) {
68
+ return /* @__PURE__ */ jsx("time", { ref, "data-slot": "message-time", className: cn("tabular-nums text-text-muted", className), ...props });
69
+ });
70
+ var Content = React.forwardRef(function Content2({ className, ...props }, ref) {
71
+ return /* @__PURE__ */ jsx("div", { ref, "data-slot": "message-content", className: cn("flex flex-col gap-1.5", className), ...props });
72
+ });
73
+ var Actions = React.forwardRef(function Actions2({ className, ...props }, ref) {
70
74
  return /* @__PURE__ */ jsx(
71
75
  "div",
72
76
  {
77
+ ref,
73
78
  "data-slot": "message-actions",
74
79
  className: cn(
75
80
  "flex items-center gap-0.5 opacity-0 transition-opacity",
@@ -79,13 +84,13 @@ function Actions({ className, ...props }) {
79
84
  ...props
80
85
  }
81
86
  );
82
- }
83
- function Footer({ className, ...props }) {
84
- return /* @__PURE__ */ jsx("div", { "data-slot": "message-footer", className: cn("text-xs text-text-muted", className), ...props });
85
- }
87
+ });
88
+ var Footer = React.forwardRef(function Footer2({ className, ...props }, ref) {
89
+ return /* @__PURE__ */ jsx("div", { ref, "data-slot": "message-footer", className: cn("text-xs text-text-muted", className), ...props });
90
+ });
86
91
  var Message = { Root, Avatar: Avatar2, Body, Header, Author, Time, Content, Actions, Footer };
87
92
 
88
93
  export {
89
94
  Message
90
95
  };
91
- //# sourceMappingURL=chunk-N7NOXL4I.js.map
96
+ //# sourceMappingURL=chunk-3TYFCWQ3.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/message/Message.jsx"],"sourcesContent":["import React from \"react\";\nimport { cn } from \"../../lib/cn.js\";\nimport { Avatar as BaseAvatar } from \"../avatar/Avatar.jsx\";\nimport { Direction, useDirection } from \"../direction/Direction.jsx\";\n\n/*\n * Root doubles as a Direction provider so a caller writes `<Message.Root direction=\"outgoing\">`\n * once and every part below it — including a Bubble or Attachment nested arbitrarily deep — lines\n * up without being told again.\n */\nconst Root = React.forwardRef(function Root({ direction, className, children, ...props }, ref) {\n const resolvedDirection = useDirection(direction);\n\n return (\n <Direction.Provider value={resolvedDirection}>\n <div\n ref={ref}\n data-slot=\"message\"\n data-direction={resolvedDirection}\n className={cn(\n \"group/message flex w-full items-start gap-2.5 font-sans\",\n resolvedDirection === \"outgoing\" && \"flex-row-reverse\",\n className,\n )}\n {...props}\n >\n {children}\n </div>\n </Direction.Provider>\n );\n});\n\nconst Avatar = React.forwardRef(function Avatar({ className, ...props }, ref) {\n return <BaseAvatar ref={ref} size=\"sm\" className={cn(\"mt-0.5 shrink-0\", className)} {...props} />;\n});\n\n// min-w-0 is load-bearing: without it a long unbroken token in the bubble blows the flex row out\n// past the container instead of wrapping.\nconst Body = React.forwardRef(function Body({ className, ...props }, ref) {\n const direction = useDirection();\n return (\n <div\n ref={ref}\n data-slot=\"message-body\"\n className={cn(\n \"flex min-w-0 flex-1 flex-col gap-1\",\n direction === \"outgoing\" && \"items-end\",\n className,\n )}\n {...props}\n />\n );\n});\n\nconst Header = React.forwardRef(function Header({ className, ...props }, ref) {\n return (\n <div\n ref={ref}\n data-slot=\"message-header\"\n className={cn(\"flex items-baseline gap-2 text-xs text-text-secondary\", className)}\n {...props}\n />\n );\n});\n\nconst Author = React.forwardRef(function Author({ className, ...props }, ref) {\n return (\n <span ref={ref} data-slot=\"message-author\" className={cn(\"font-semibold text-text-primary\", className)} {...props} />\n );\n});\n\nconst Time = React.forwardRef(function Time({ className, ...props }, ref) {\n return <time ref={ref} data-slot=\"message-time\" className={cn(\"tabular-nums text-text-muted\", className)} {...props} />;\n});\n\nconst Content = React.forwardRef(function Content({ className, ...props }, ref) {\n return <div ref={ref} data-slot=\"message-content\" className={cn(\"flex flex-col gap-1.5\", className)} {...props} />;\n});\n\n/*\n * Hidden until the row is hovered or something inside it takes focus. The focus-within half is the\n * keyboard path — without it these buttons would be reachable by Tab but invisible while focused.\n */\nconst Actions = React.forwardRef(function Actions({ className, ...props }, ref) {\n return (\n <div\n ref={ref}\n data-slot=\"message-actions\"\n className={cn(\n \"flex items-center gap-0.5 opacity-0 transition-opacity\",\n \"group-hover/message:opacity-100 group-focus-within/message:opacity-100\",\n className,\n )}\n {...props}\n />\n );\n});\n\nconst Footer = React.forwardRef(function Footer({ className, ...props }, ref) {\n return <div ref={ref} data-slot=\"message-footer\" className={cn(\"text-xs text-text-muted\", className)} {...props} />;\n});\n\nexport const Message = { Root, Avatar, Body, Header, Author, Time, Content, Actions, Footer };\n"],"mappings":";;;;;;;;;;;;;AAAA,OAAO,WAAW;AAeZ;AALN,IAAM,OAAO,MAAM,WAAW,SAASA,MAAK,EAAE,WAAW,WAAW,UAAU,GAAG,MAAM,GAAG,KAAK;AAC7F,QAAM,oBAAoB,aAAa,SAAS;AAEhD,SACE,oBAAC,UAAU,UAAV,EAAmB,OAAO,mBACzB;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA,aAAU;AAAA,MACV,kBAAgB;AAAA,MAChB,WAAW;AAAA,QACT;AAAA,QACA,sBAAsB,cAAc;AAAA,QACpC;AAAA,MACF;AAAA,MACC,GAAG;AAAA,MAEH;AAAA;AAAA,EACH,GACF;AAEJ,CAAC;AAED,IAAMC,UAAS,MAAM,WAAW,SAASA,QAAO,EAAE,WAAW,GAAG,MAAM,GAAG,KAAK;AAC5E,SAAO,oBAAC,UAAW,KAAU,MAAK,MAAK,WAAW,GAAG,mBAAmB,SAAS,GAAI,GAAG,OAAO;AACjG,CAAC;AAID,IAAM,OAAO,MAAM,WAAW,SAASC,MAAK,EAAE,WAAW,GAAG,MAAM,GAAG,KAAK;AACxE,QAAM,YAAY,aAAa;AAC/B,SACE;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA,aAAU;AAAA,MACV,WAAW;AAAA,QACT;AAAA,QACA,cAAc,cAAc;AAAA,QAC5B;AAAA,MACF;AAAA,MACC,GAAG;AAAA;AAAA,EACN;AAEJ,CAAC;AAED,IAAM,SAAS,MAAM,WAAW,SAASC,QAAO,EAAE,WAAW,GAAG,MAAM,GAAG,KAAK;AAC5E,SACE;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA,aAAU;AAAA,MACV,WAAW,GAAG,yDAAyD,SAAS;AAAA,MAC/E,GAAG;AAAA;AAAA,EACN;AAEJ,CAAC;AAED,IAAM,SAAS,MAAM,WAAW,SAASC,QAAO,EAAE,WAAW,GAAG,MAAM,GAAG,KAAK;AAC5E,SACE,oBAAC,UAAK,KAAU,aAAU,kBAAiB,WAAW,GAAG,mCAAmC,SAAS,GAAI,GAAG,OAAO;AAEvH,CAAC;AAED,IAAM,OAAO,MAAM,WAAW,SAASC,MAAK,EAAE,WAAW,GAAG,MAAM,GAAG,KAAK;AACxE,SAAO,oBAAC,UAAK,KAAU,aAAU,gBAAe,WAAW,GAAG,gCAAgC,SAAS,GAAI,GAAG,OAAO;AACvH,CAAC;AAED,IAAM,UAAU,MAAM,WAAW,SAASC,SAAQ,EAAE,WAAW,GAAG,MAAM,GAAG,KAAK;AAC9E,SAAO,oBAAC,SAAI,KAAU,aAAU,mBAAkB,WAAW,GAAG,yBAAyB,SAAS,GAAI,GAAG,OAAO;AAClH,CAAC;AAMD,IAAM,UAAU,MAAM,WAAW,SAASC,SAAQ,EAAE,WAAW,GAAG,MAAM,GAAG,KAAK;AAC9E,SACE;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA,aAAU;AAAA,MACV,WAAW;AAAA,QACT;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA;AAAA,EACN;AAEJ,CAAC;AAED,IAAM,SAAS,MAAM,WAAW,SAASC,QAAO,EAAE,WAAW,GAAG,MAAM,GAAG,KAAK;AAC5E,SAAO,oBAAC,SAAI,KAAU,aAAU,kBAAiB,WAAW,GAAG,2BAA2B,SAAS,GAAI,GAAG,OAAO;AACnH,CAAC;AAEM,IAAM,UAAU,EAAE,MAAM,QAAAP,SAAQ,MAAM,QAAQ,QAAQ,MAAM,SAAS,SAAS,OAAO;","names":["Root","Avatar","Body","Header","Author","Time","Content","Actions","Footer"]}
@@ -1,6 +1,9 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } }'use client';
2
2
 
3
3
 
4
+ var _chunkQ2JCE4CKcjs = require('./chunk-Q2JCE4CK.cjs');
5
+
6
+
4
7
  var _chunkNSTYHMFWcjs = require('./chunk-NSTYHMFW.cjs');
5
8
 
6
9
  // src/components/calendar/Calendar.jsx
@@ -26,7 +29,7 @@ function Calendar({ className, classNames, showOutsideDays = true, ...props }) {
26
29
  weekday: "w-9 text-xs font-medium text-text-muted",
27
30
  week: "mt-1 flex w-full",
28
31
  day: "p-0 text-center text-sm",
29
- day_button: "rdp-day-btn flex h-9 w-9 items-center justify-center rounded-md text-text-primary transition-colors hover:bg-bg-surface disabled:pointer-events-none disabled:opacity-50",
32
+ day_button: `rdp-day-btn flex h-9 w-9 items-center justify-center rounded-md text-text-primary transition-colors hover:bg-bg-surface ${_chunkQ2JCE4CKcjs.disabledClass}`,
30
33
  today: "[&>.rdp-day-btn]:font-semibold [&>.rdp-day-btn]:text-accent",
31
34
  selected: "[&>.rdp-day-btn]:bg-accent [&>.rdp-day-btn]:text-text-inverse [&>.rdp-day-btn]:hover:bg-accent-hover",
32
35
  outside: "[&>.rdp-day-btn]:text-text-muted [&>.rdp-day-btn]:opacity-60",
@@ -45,4 +48,4 @@ function Calendar({ className, classNames, showOutsideDays = true, ...props }) {
45
48
 
46
49
 
47
50
  exports.Calendar = Calendar;
48
- //# sourceMappingURL=chunk-43UYUOCI.cjs.map
51
+ //# sourceMappingURL=chunk-44WYLL4S.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/home/runner/work/Atoms/Atoms/packages/ui/dist/chunk-44WYLL4S.cjs","../src/components/calendar/Calendar.jsx"],"names":[],"mappings":"AAAA,yLAAY;AACZ;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACA;ACRA,kDAA0B;AAC1B,wCAA0C;AAyC9B,+CAAA;AAhCL,SAAS,QAAA,CAAS,EAAE,SAAA,EAAW,UAAA,EAAY,gBAAA,EAAkB,IAAA,EAAM,GAAG,MAAM,CAAA,EAAG;AACpF,EAAA,uBACE,6BAAA;AAAA,IAAC,yBAAA;AAAA,IAAA;AAAA,MACC,eAAA;AAAA,MACA,SAAA,EAAW,kCAAA,eAAG,EAAiB,SAAS,CAAA;AAAA,MACxC,UAAA,EAAY;AAAA,QACV,MAAA,EAAQ,qBAAA;AAAA,QACR,KAAA,EAAO,qBAAA;AAAA,QACP,aAAA,EAAe,gDAAA;AAAA,QACf,aAAA,EAAe,yCAAA;AAAA,QACf,GAAA,EAAK,4DAAA;AAAA,QACL,eAAA,EACE,+LAAA;AAAA,QACF,WAAA,EACE,+LAAA;AAAA,QACF,UAAA,EAAY,wBAAA;AAAA,QACZ,QAAA,EAAU,MAAA;AAAA,QACV,OAAA,EAAS,yCAAA;AAAA,QACT,IAAA,EAAM,kBAAA;AAAA,QACN,GAAA,EAAK,yBAAA;AAAA,QACL,UAAA,EAAY,CAAA,wHAAA,EAA2H,+BAAa,CAAA,CAAA;AAC7I,QAAA;AAEL,QAAA;AACO,QAAA;AACC,QAAA;AACF,QAAA;AACL,QAAA;AACL,MAAA;AACY,MAAA;AAGyB,QAAA;AAIrC,MAAA;AACI,MAAA;AAAA,IAAA;AACN,EAAA;AAEJ;ADJ6J;AACA;AACA;AACA","file":"/home/runner/work/Atoms/Atoms/packages/ui/dist/chunk-44WYLL4S.cjs","sourcesContent":[null,"import { DayPicker } from \"react-day-picker\";\nimport { ChevronLeft, ChevronRight } from \"@tlglobal/icons\";\nimport { cn } from \"../../lib/cn.js\";\nimport { disabledClass } from \"../../lib/disabled.js\";\n\n// react-day-picker v10 applies day-state modifiers (selected/today/outside/disabled) as extra\n// CSS classes on the day CELL, not on the button inside it — \"rdp-day-btn\" is a stable marker\n// class (not a Tailwind-generated one) so those modifier classNames can reach the button via a\n// plain child-combinator selector, since the utility classes on day_button itself aren't a\n// reliable selector target.\nexport function Calendar({ className, classNames, showOutsideDays = true, ...props }) {\n return (\n <DayPicker\n showOutsideDays={showOutsideDays}\n className={cn(\"p-3 font-sans\", className)}\n classNames={{\n months: \"flex flex-col gap-4\",\n month: \"flex flex-col gap-3\",\n month_caption: \"relative flex items-center justify-center pt-1\",\n caption_label: \"text-sm font-semibold text-text-primary\",\n nav: \"absolute inset-x-0 top-1 flex items-center justify-between\",\n button_previous:\n \"inline-flex h-7 w-7 items-center justify-center rounded-md text-text-secondary transition-colors hover:bg-bg-surface hover:text-text-primary disabled:pointer-events-none disabled:opacity-30\",\n button_next:\n \"inline-flex h-7 w-7 items-center justify-center rounded-md text-text-secondary transition-colors hover:bg-bg-surface hover:text-text-primary disabled:pointer-events-none disabled:opacity-30\",\n month_grid: \"w-full border-collapse\",\n weekdays: \"flex\",\n weekday: \"w-9 text-xs font-medium text-text-muted\",\n week: \"mt-1 flex w-full\",\n day: \"p-0 text-center text-sm\",\n day_button: `rdp-day-btn flex h-9 w-9 items-center justify-center rounded-md text-text-primary transition-colors hover:bg-bg-surface ${disabledClass}`,\n today: \"[&>.rdp-day-btn]:font-semibold [&>.rdp-day-btn]:text-accent\",\n selected:\n \"[&>.rdp-day-btn]:bg-accent [&>.rdp-day-btn]:text-text-inverse [&>.rdp-day-btn]:hover:bg-accent-hover\",\n outside: \"[&>.rdp-day-btn]:text-text-muted [&>.rdp-day-btn]:opacity-60\",\n disabled: \"[&>.rdp-day-btn]:pointer-events-none [&>.rdp-day-btn]:opacity-40\",\n hidden: \"invisible\",\n ...classNames,\n }}\n components={{\n Chevron: ({ orientation, size, className: chevronClassName }) =>\n orientation === \"left\" ? (\n <ChevronLeft size={size ?? 16} className={chevronClassName} />\n ) : (\n <ChevronRight size={size ?? 16} className={chevronClassName} />\n ),\n }}\n {...props}\n />\n );\n}\n"]}
@@ -4,12 +4,14 @@ import {
4
4
  } from "./chunk-74GQ35MJ.js";
5
5
 
6
6
  // src/components/hover-card/HoverCard.jsx
7
+ import React from "react";
7
8
  import { HoverCard as RadixHoverCard } from "radix-ui";
8
9
  import { jsx } from "react/jsx-runtime";
9
- function Content({ className, align = "center", sideOffset = 8, ...props }) {
10
+ var Content = React.forwardRef(function Content2({ className, align = "center", sideOffset = 8, ...props }, ref) {
10
11
  return /* @__PURE__ */ jsx(RadixHoverCard.Portal, { children: /* @__PURE__ */ jsx(
11
12
  RadixHoverCard.Content,
12
13
  {
14
+ ref,
13
15
  align,
14
16
  sideOffset,
15
17
  className: cn(
@@ -19,7 +21,7 @@ function Content({ className, align = "center", sideOffset = 8, ...props }) {
19
21
  ...props
20
22
  }
21
23
  ) });
22
- }
24
+ });
23
25
  var HoverCard = {
24
26
  Root: RadixHoverCard.Root,
25
27
  Trigger: RadixHoverCard.Trigger,
@@ -29,4 +31,4 @@ var HoverCard = {
29
31
  export {
30
32
  HoverCard
31
33
  };
32
- //# sourceMappingURL=chunk-IRV6TBCD.js.map
34
+ //# sourceMappingURL=chunk-4NNTKMOB.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/hover-card/HoverCard.jsx"],"sourcesContent":["import React from \"react\";\nimport { HoverCard as RadixHoverCard } from \"radix-ui\";\nimport { cn } from \"../../lib/cn.js\";\n\nconst Content = React.forwardRef(function Content({ className, align = \"center\", sideOffset = 8, ...props }, ref) {\n return (\n <RadixHoverCard.Portal>\n <RadixHoverCard.Content\n ref={ref}\n align={align}\n sideOffset={sideOffset}\n className={cn(\n \"z-50 w-72 rounded-lg border border-border-default bg-bg-page p-4 shadow-md outline-none\",\n className,\n )}\n {...props}\n />\n </RadixHoverCard.Portal>\n );\n});\n\nexport const HoverCard = {\n Root: RadixHoverCard.Root,\n Trigger: RadixHoverCard.Trigger,\n Content,\n};\n"],"mappings":";;;;;;AAAA,OAAO,WAAW;AAClB,SAAS,aAAa,sBAAsB;AAMtC;AAHN,IAAM,UAAU,MAAM,WAAW,SAASA,SAAQ,EAAE,WAAW,QAAQ,UAAU,aAAa,GAAG,GAAG,MAAM,GAAG,KAAK;AAChH,SACE,oBAAC,eAAe,QAAf,EACC;AAAA,IAAC,eAAe;AAAA,IAAf;AAAA,MACC;AAAA,MACA;AAAA,MACA;AAAA,MACA,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA;AAAA,EACN,GACF;AAEJ,CAAC;AAEM,IAAM,YAAY;AAAA,EACvB,MAAM,eAAe;AAAA,EACrB,SAAS,eAAe;AAAA,EACxB;AACF;","names":["Content"]}
@@ -4,24 +4,27 @@ import {
4
4
  } from "./chunk-74GQ35MJ.js";
5
5
 
6
6
  // src/components/menubar/Menubar.jsx
7
+ import React from "react";
7
8
  import { Menubar as RadixMenubar } from "radix-ui";
8
9
  import { Check, ChevronRight, Circle } from "@tlglobal/icons";
9
10
  import { jsx, jsxs } from "react/jsx-runtime";
10
11
  var contentClass = "z-50 min-w-[10rem] overflow-hidden rounded-md border border-border-default bg-bg-page p-1 shadow-md";
11
12
  var itemClass = "relative flex h-9 cursor-pointer select-none items-center rounded-sm px-2 text-sm text-text-primary outline-none transition-colors data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[highlighted]:bg-bg-surface";
12
- function Root({ className, ...props }) {
13
+ var Root = React.forwardRef(function Root2({ className, ...props }, ref) {
13
14
  return /* @__PURE__ */ jsx(
14
15
  RadixMenubar.Root,
15
16
  {
17
+ ref,
16
18
  className: cn("flex items-center gap-1 rounded-md border border-border-default bg-bg-page p-1 font-sans", className),
17
19
  ...props
18
20
  }
19
21
  );
20
- }
21
- function Trigger({ className, ...props }) {
22
+ });
23
+ var Trigger = React.forwardRef(function Trigger2({ className, ...props }, ref) {
22
24
  return /* @__PURE__ */ jsx(
23
25
  RadixMenubar.Trigger,
24
26
  {
27
+ ref,
25
28
  className: cn(
26
29
  "flex select-none items-center rounded-sm px-3 py-1.5 text-sm font-semibold text-text-primary outline-none data-[state=open]:bg-bg-surface",
27
30
  className
@@ -29,35 +32,45 @@ function Trigger({ className, ...props }) {
29
32
  ...props
30
33
  }
31
34
  );
32
- }
33
- function Content({ className, align = "start", sideOffset = 4, ...props }) {
34
- return /* @__PURE__ */ jsx(RadixMenubar.Portal, { children: /* @__PURE__ */ jsx(RadixMenubar.Content, { align, sideOffset, className: cn(contentClass, className), ...props }) });
35
- }
36
- function Item({ className, inset, ...props }) {
37
- return /* @__PURE__ */ jsx(RadixMenubar.Item, { className: cn(itemClass, inset && "pl-8", className), ...props });
38
- }
39
- function CheckboxItem({ className, children, ...props }) {
40
- return /* @__PURE__ */ jsxs(RadixMenubar.CheckboxItem, { className: cn(itemClass, "pl-8", className), ...props, children: [
35
+ });
36
+ var Content = React.forwardRef(function Content2({ className, align = "start", sideOffset = 4, ...props }, ref) {
37
+ return /* @__PURE__ */ jsx(RadixMenubar.Portal, { children: /* @__PURE__ */ jsx(
38
+ RadixMenubar.Content,
39
+ {
40
+ ref,
41
+ align,
42
+ sideOffset,
43
+ className: cn(contentClass, className),
44
+ ...props
45
+ }
46
+ ) });
47
+ });
48
+ var Item = React.forwardRef(function Item2({ className, inset, ...props }, ref) {
49
+ return /* @__PURE__ */ jsx(RadixMenubar.Item, { ref, className: cn(itemClass, inset && "pl-8", className), ...props });
50
+ });
51
+ var CheckboxItem = React.forwardRef(function CheckboxItem2({ className, children, ...props }, ref) {
52
+ return /* @__PURE__ */ jsxs(RadixMenubar.CheckboxItem, { ref, className: cn(itemClass, "pl-8", className), ...props, children: [
41
53
  /* @__PURE__ */ jsx(RadixMenubar.ItemIndicator, { className: "absolute left-2.5 inline-flex items-center", children: /* @__PURE__ */ jsx(Check, { size: 14, className: "text-accent" }) }),
42
54
  children
43
55
  ] });
44
- }
45
- function RadioItem({ className, children, ...props }) {
46
- return /* @__PURE__ */ jsxs(RadixMenubar.RadioItem, { className: cn(itemClass, "pl-8", className), ...props, children: [
56
+ });
57
+ var RadioItem = React.forwardRef(function RadioItem2({ className, children, ...props }, ref) {
58
+ return /* @__PURE__ */ jsxs(RadixMenubar.RadioItem, { ref, className: cn(itemClass, "pl-8", className), ...props, children: [
47
59
  /* @__PURE__ */ jsx(RadixMenubar.ItemIndicator, { className: "absolute left-2.5 inline-flex items-center", children: /* @__PURE__ */ jsx(Circle, { size: 8, className: "fill-accent text-accent" }) }),
48
60
  children
49
61
  ] });
50
- }
51
- function Separator({ className, ...props }) {
52
- return /* @__PURE__ */ jsx(RadixMenubar.Separator, { className: cn("my-1 h-px bg-border-default", className), ...props });
53
- }
54
- function Shortcut({ className, ...props }) {
55
- return /* @__PURE__ */ jsx("span", { className: cn("ml-auto pl-4 text-xs tracking-widest text-text-muted", className), ...props });
56
- }
57
- function SubTrigger({ className, inset, children, ...props }) {
62
+ });
63
+ var Separator = React.forwardRef(function Separator2({ className, ...props }, ref) {
64
+ return /* @__PURE__ */ jsx(RadixMenubar.Separator, { ref, className: cn("my-1 h-px bg-border-default", className), ...props });
65
+ });
66
+ var Shortcut = React.forwardRef(function Shortcut2({ className, ...props }, ref) {
67
+ return /* @__PURE__ */ jsx("span", { ref, className: cn("ml-auto pl-4 text-xs tracking-widest text-text-muted", className), ...props });
68
+ });
69
+ var SubTrigger = React.forwardRef(function SubTrigger2({ className, inset, children, ...props }, ref) {
58
70
  return /* @__PURE__ */ jsxs(
59
71
  RadixMenubar.SubTrigger,
60
72
  {
73
+ ref,
61
74
  className: cn(itemClass, "data-[state=open]:bg-bg-surface", inset && "pl-8", className),
62
75
  ...props,
63
76
  children: [
@@ -66,10 +79,10 @@ function SubTrigger({ className, inset, children, ...props }) {
66
79
  ]
67
80
  }
68
81
  );
69
- }
70
- function SubContent({ className, ...props }) {
71
- return /* @__PURE__ */ jsx(RadixMenubar.Portal, { children: /* @__PURE__ */ jsx(RadixMenubar.SubContent, { className: cn(contentClass, className), ...props }) });
72
- }
82
+ });
83
+ var SubContent = React.forwardRef(function SubContent2({ className, ...props }, ref) {
84
+ return /* @__PURE__ */ jsx(RadixMenubar.Portal, { children: /* @__PURE__ */ jsx(RadixMenubar.SubContent, { ref, className: cn(contentClass, className), ...props }) });
85
+ });
73
86
  var Menubar = {
74
87
  Root,
75
88
  Menu: RadixMenubar.Menu,
@@ -90,4 +103,4 @@ var Menubar = {
90
103
  export {
91
104
  Menubar
92
105
  };
93
- //# sourceMappingURL=chunk-V3NEBNKV.js.map
106
+ //# sourceMappingURL=chunk-4OS2O7Z4.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/menubar/Menubar.jsx"],"sourcesContent":["import React from \"react\";\nimport { Menubar as RadixMenubar } from \"radix-ui\";\nimport { Check, ChevronRight, Circle } from \"@tlglobal/icons\";\nimport { cn } from \"../../lib/cn.js\";\n\n// Matches DropdownMenu/ContextMenu's content and item classes so a menu looks identical\n// regardless of which trigger mechanism opened it.\nconst contentClass =\n \"z-50 min-w-[10rem] overflow-hidden rounded-md border border-border-default bg-bg-page p-1 shadow-md\";\nconst itemClass =\n \"relative flex h-9 cursor-pointer select-none items-center rounded-sm px-2 text-sm text-text-primary outline-none transition-colors data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[highlighted]:bg-bg-surface\";\n\nconst Root = React.forwardRef(function Root({ className, ...props }, ref) {\n return (\n <RadixMenubar.Root\n ref={ref}\n className={cn(\"flex items-center gap-1 rounded-md border border-border-default bg-bg-page p-1 font-sans\", className)}\n {...props}\n />\n );\n});\n\nconst Trigger = React.forwardRef(function Trigger({ className, ...props }, ref) {\n return (\n <RadixMenubar.Trigger\n ref={ref}\n className={cn(\n \"flex select-none items-center rounded-sm px-3 py-1.5 text-sm font-semibold text-text-primary outline-none data-[state=open]:bg-bg-surface\",\n className,\n )}\n {...props}\n />\n );\n});\n\nconst Content = React.forwardRef(function Content({ className, align = \"start\", sideOffset = 4, ...props }, ref) {\n return (\n <RadixMenubar.Portal>\n <RadixMenubar.Content\n ref={ref}\n align={align}\n sideOffset={sideOffset}\n className={cn(contentClass, className)}\n {...props}\n />\n </RadixMenubar.Portal>\n );\n});\n\nconst Item = React.forwardRef(function Item({ className, inset, ...props }, ref) {\n return <RadixMenubar.Item ref={ref} className={cn(itemClass, inset && \"pl-8\", className)} {...props} />;\n});\n\nconst CheckboxItem = React.forwardRef(function CheckboxItem({ className, children, ...props }, ref) {\n return (\n <RadixMenubar.CheckboxItem ref={ref} className={cn(itemClass, \"pl-8\", className)} {...props}>\n <RadixMenubar.ItemIndicator className=\"absolute left-2.5 inline-flex items-center\">\n <Check size={14} className=\"text-accent\" />\n </RadixMenubar.ItemIndicator>\n {children}\n </RadixMenubar.CheckboxItem>\n );\n});\n\nconst RadioItem = React.forwardRef(function RadioItem({ className, children, ...props }, ref) {\n return (\n <RadixMenubar.RadioItem ref={ref} className={cn(itemClass, \"pl-8\", className)} {...props}>\n <RadixMenubar.ItemIndicator className=\"absolute left-2.5 inline-flex items-center\">\n <Circle size={8} className=\"fill-accent text-accent\" />\n </RadixMenubar.ItemIndicator>\n {children}\n </RadixMenubar.RadioItem>\n );\n});\n\nconst Separator = React.forwardRef(function Separator({ className, ...props }, ref) {\n return <RadixMenubar.Separator ref={ref} className={cn(\"my-1 h-px bg-border-default\", className)} {...props} />;\n});\n\nconst Shortcut = React.forwardRef(function Shortcut({ className, ...props }, ref) {\n return <span ref={ref} className={cn(\"ml-auto pl-4 text-xs tracking-widest text-text-muted\", className)} {...props} />;\n});\n\nconst SubTrigger = React.forwardRef(function SubTrigger({ className, inset, children, ...props }, ref) {\n return (\n <RadixMenubar.SubTrigger\n ref={ref}\n className={cn(itemClass, \"data-[state=open]:bg-bg-surface\", inset && \"pl-8\", className)}\n {...props}\n >\n {children}\n <ChevronRight size={14} className=\"ml-auto text-text-muted\" />\n </RadixMenubar.SubTrigger>\n );\n});\n\nconst SubContent = React.forwardRef(function SubContent({ className, ...props }, ref) {\n return (\n <RadixMenubar.Portal>\n <RadixMenubar.SubContent ref={ref} className={cn(contentClass, className)} {...props} />\n </RadixMenubar.Portal>\n );\n});\n\nexport const Menubar = {\n Root,\n Menu: RadixMenubar.Menu,\n Trigger,\n Content,\n Item,\n CheckboxItem,\n RadioGroup: RadixMenubar.RadioGroup,\n RadioItem,\n Separator,\n Shortcut,\n Group: RadixMenubar.Group,\n Sub: RadixMenubar.Sub,\n SubTrigger,\n SubContent,\n};\n"],"mappings":"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","names":["Root","Trigger","Content","Item","CheckboxItem","RadioItem","Separator","Shortcut","SubTrigger","SubContent"]}