@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
@@ -1,9 +1,10 @@
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/sheet/Sheet.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
 
@@ -26,10 +27,10 @@ var sheetContentVariants = _classvarianceauthority.cva.call(void 0,
26
27
 
27
28
  // src/components/sheet/Sheet.jsx
28
29
  var _jsxruntime = require('react/jsx-runtime');
29
- function Content({ className, side, children, ...props }) {
30
+ var Content = _react2.default.forwardRef(function Content2({ className, side, children, ...props }, ref) {
30
31
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _radixui.Dialog.Portal, { children: [
31
32
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _radixui.Dialog.Overlay, { className: "fixed inset-0 z-[100] bg-neutral-900/40" }),
32
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _radixui.Dialog.Content, { className: _chunkNSTYHMFWcjs.cn.call(void 0, sheetContentVariants({ side }), className), ...props, children: [
33
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _radixui.Dialog.Content, { ref, className: _chunkNSTYHMFWcjs.cn.call(void 0, sheetContentVariants({ side }), className), ...props, children: [
33
34
  children,
34
35
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
35
36
  _radixui.Dialog.Close,
@@ -41,16 +42,23 @@ function Content({ className, side, children, ...props }) {
41
42
  )
42
43
  ] })
43
44
  ] });
44
- }
45
- function Title({ className, ...props }) {
46
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _radixui.Dialog.Title, { className: _chunkNSTYHMFWcjs.cn.call(void 0, "text-lg font-bold text-text-primary", className), ...props });
47
- }
48
- function Description({ className, ...props }) {
49
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _radixui.Dialog.Description, { className: _chunkNSTYHMFWcjs.cn.call(void 0, "text-base leading-relaxed text-text-secondary", className), ...props });
50
- }
51
- function Footer({ className, ...props }) {
52
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunkNSTYHMFWcjs.cn.call(void 0, "mt-auto flex justify-end gap-2.5", className), ...props });
53
- }
45
+ });
46
+ var Title = _react2.default.forwardRef(function Title2({ className, ...props }, ref) {
47
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _radixui.Dialog.Title, { ref, className: _chunkNSTYHMFWcjs.cn.call(void 0, "text-lg font-bold text-text-primary", className), ...props });
48
+ });
49
+ var Description = _react2.default.forwardRef(function Description2({ className, ...props }, ref) {
50
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
51
+ _radixui.Dialog.Description,
52
+ {
53
+ ref,
54
+ className: _chunkNSTYHMFWcjs.cn.call(void 0, "text-base leading-relaxed text-text-secondary", className),
55
+ ...props
56
+ }
57
+ );
58
+ });
59
+ var Footer = _react2.default.forwardRef(function Footer2({ className, ...props }, ref) {
60
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ref, className: _chunkNSTYHMFWcjs.cn.call(void 0, "mt-auto flex justify-end gap-2.5", className), ...props });
61
+ });
54
62
  var Sheet = {
55
63
  Root: _radixui.Dialog.Root,
56
64
  Trigger: _radixui.Dialog.Trigger,
@@ -64,4 +72,4 @@ var Sheet = {
64
72
 
65
73
 
66
74
  exports.Sheet = Sheet;
67
- //# sourceMappingURL=chunk-NCYN3QQU.cjs.map
75
+ //# sourceMappingURL=chunk-GD6QZD2T.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/home/runner/work/Atoms/Atoms/packages/ui/dist/chunk-GD6QZD2T.cjs","../src/components/sheet/Sheet.jsx","../src/components/sheet/Sheet.variants.js"],"names":["Content","Title","Description","Footer"],"mappings":"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","file":"/home/runner/work/Atoms/Atoms/packages/ui/dist/chunk-GD6QZD2T.cjs","sourcesContent":[null,"import React from \"react\";\nimport { Dialog as RadixDialog } from \"radix-ui\";\nimport { X } from \"@tlglobal/icons\";\nimport { cn } from \"../../lib/cn.js\";\nimport { sheetContentVariants } from \"./Sheet.variants.js\";\n\nconst Content = React.forwardRef(function Content({ className, side, children, ...props }, ref) {\n return (\n <RadixDialog.Portal>\n <RadixDialog.Overlay className=\"fixed inset-0 z-[100] bg-neutral-900/40\" />\n <RadixDialog.Content ref={ref} className={cn(sheetContentVariants({ side }), className)} {...props}>\n {children}\n <RadixDialog.Close\n aria-label=\"Close\"\n className=\"absolute right-4 top-4 inline-flex h-6 w-6 items-center justify-center rounded-md text-text-muted transition-colors hover:bg-bg-surface hover:text-text-primary focus-visible:outline-none focus-visible:shadow-[var(--shadow-focus-ring)]\"\n >\n <X size={16} />\n </RadixDialog.Close>\n </RadixDialog.Content>\n </RadixDialog.Portal>\n );\n});\n\nconst Title = React.forwardRef(function Title({ className, ...props }, ref) {\n return <RadixDialog.Title ref={ref} className={cn(\"text-lg font-bold text-text-primary\", className)} {...props} />;\n});\n\nconst Description = React.forwardRef(function Description({ className, ...props }, ref) {\n return (\n <RadixDialog.Description\n ref={ref}\n className={cn(\"text-base leading-relaxed text-text-secondary\", className)}\n {...props}\n />\n );\n});\n\nconst Footer = React.forwardRef(function Footer({ className, ...props }, ref) {\n return <div ref={ref} className={cn(\"mt-auto flex justify-end gap-2.5\", className)} {...props} />;\n});\n\nexport const Sheet = {\n Root: RadixDialog.Root,\n Trigger: RadixDialog.Trigger,\n Close: RadixDialog.Close,\n Content,\n Title,\n Description,\n Footer,\n};\n","import { cva } from \"class-variance-authority\";\n\nexport const sheetContentVariants = cva(\n \"fixed z-[100] flex flex-col gap-4 border-border-default bg-bg-page p-6 shadow-md focus:outline-none\",\n {\n variants: {\n side: {\n top: \"inset-x-0 top-0 max-h-[80vh] border-b\",\n bottom: \"inset-x-0 bottom-0 max-h-[80vh] border-t\",\n left: \"inset-y-0 left-0 h-full w-[320px] max-w-[calc(100vw-2rem)] border-r\",\n right: \"inset-y-0 right-0 h-full w-[320px] max-w-[calc(100vw-2rem)] border-l\",\n },\n },\n defaultVariants: { side: \"right\" },\n },\n);\n"]}
@@ -1,7 +1,7 @@
1
1
  'use client';
2
2
  import {
3
3
  Command
4
- } from "./chunk-3FJ2AYA2.js";
4
+ } from "./chunk-OKUW3EEZ.js";
5
5
  import {
6
6
  cn
7
7
  } from "./chunk-74GQ35MJ.js";
@@ -82,4 +82,4 @@ var Combobox = React.forwardRef(function Combobox2({
82
82
  export {
83
83
  Combobox
84
84
  };
85
- //# sourceMappingURL=chunk-GAIT5TGX.js.map
85
+ //# sourceMappingURL=chunk-GLOGO66M.js.map
@@ -4,25 +4,27 @@ import {
4
4
  } from "./chunk-74GQ35MJ.js";
5
5
 
6
6
  // src/components/navigation-menu/NavigationMenu.jsx
7
+ import React from "react";
7
8
  import { NavigationMenu as RadixNavigationMenu } from "radix-ui";
8
9
  import { ChevronDown } from "@tlglobal/icons";
9
10
  import { jsx, jsxs } from "react/jsx-runtime";
10
11
  function Viewport() {
11
12
  return /* @__PURE__ */ jsx("div", { className: "absolute left-0 top-full flex justify-center", children: /* @__PURE__ */ jsx(RadixNavigationMenu.Viewport, { className: "mt-2 w-full origin-top overflow-hidden rounded-md" }) });
12
13
  }
13
- function Root({ className, children, ...props }) {
14
- return /* @__PURE__ */ jsxs(RadixNavigationMenu.Root, { className: cn("relative z-10 flex font-sans", className), ...props, children: [
14
+ var Root = React.forwardRef(function Root2({ className, children, ...props }, ref) {
15
+ return /* @__PURE__ */ jsxs(RadixNavigationMenu.Root, { ref, className: cn("relative z-10 flex font-sans", className), ...props, children: [
15
16
  children,
16
17
  /* @__PURE__ */ jsx(Viewport, {})
17
18
  ] });
18
- }
19
- function List({ className, ...props }) {
20
- return /* @__PURE__ */ jsx(RadixNavigationMenu.List, { className: cn("flex items-center gap-1", className), ...props });
21
- }
22
- function Trigger({ className, children, ...props }) {
19
+ });
20
+ var List = React.forwardRef(function List2({ className, ...props }, ref) {
21
+ return /* @__PURE__ */ jsx(RadixNavigationMenu.List, { ref, className: cn("flex items-center gap-1", className), ...props });
22
+ });
23
+ var Trigger = React.forwardRef(function Trigger2({ className, children, ...props }, ref) {
23
24
  return /* @__PURE__ */ jsxs(
24
25
  RadixNavigationMenu.Trigger,
25
26
  {
27
+ ref,
26
28
  className: cn(
27
29
  "flex items-center gap-1 rounded-md px-3 py-2 text-sm font-semibold text-text-secondary outline-none transition-colors hover:bg-bg-surface hover:text-text-primary data-[state=open]:text-text-primary [&[data-state=open]>svg]:rotate-180",
28
30
  className
@@ -34,11 +36,12 @@ function Trigger({ className, children, ...props }) {
34
36
  ]
35
37
  }
36
38
  );
37
- }
38
- function Content({ className, ...props }) {
39
+ });
40
+ var Content = React.forwardRef(function Content2({ className, ...props }, ref) {
39
41
  return /* @__PURE__ */ jsx(
40
42
  RadixNavigationMenu.Content,
41
43
  {
44
+ ref,
42
45
  className: cn(
43
46
  "w-full min-w-[280px] rounded-md border border-border-default bg-bg-page p-3 shadow-md",
44
47
  className
@@ -46,11 +49,12 @@ function Content({ className, ...props }) {
46
49
  ...props
47
50
  }
48
51
  );
49
- }
50
- function Link({ className, ...props }) {
52
+ });
53
+ var Link = React.forwardRef(function Link2({ className, ...props }, ref) {
51
54
  return /* @__PURE__ */ jsx(
52
55
  RadixNavigationMenu.Link,
53
56
  {
57
+ ref,
54
58
  className: cn(
55
59
  "flex items-center rounded-md px-3 py-2 text-sm font-semibold text-text-secondary outline-none transition-colors hover:bg-bg-surface hover:text-text-primary data-[active]:text-accent",
56
60
  className
@@ -58,7 +62,7 @@ function Link({ className, ...props }) {
58
62
  ...props
59
63
  }
60
64
  );
61
- }
65
+ });
62
66
  var NavigationMenu = {
63
67
  Root,
64
68
  List,
@@ -71,4 +75,4 @@ var NavigationMenu = {
71
75
  export {
72
76
  NavigationMenu
73
77
  };
74
- //# sourceMappingURL=chunk-QEVPIMPR.js.map
78
+ //# sourceMappingURL=chunk-ITPU3GJP.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/navigation-menu/NavigationMenu.jsx"],"sourcesContent":["import React from \"react\";\nimport { NavigationMenu as RadixNavigationMenu } from \"radix-ui\";\nimport { ChevronDown } from \"@tlglobal/icons\";\nimport { cn } from \"../../lib/cn.js\";\n\nfunction Viewport() {\n return (\n <div className=\"absolute left-0 top-full flex justify-center\">\n <RadixNavigationMenu.Viewport className=\"mt-2 w-full origin-top overflow-hidden rounded-md\" />\n </div>\n );\n}\n\nconst Root = React.forwardRef(function Root({ className, children, ...props }, ref) {\n return (\n <RadixNavigationMenu.Root ref={ref} className={cn(\"relative z-10 flex font-sans\", className)} {...props}>\n {children}\n <Viewport />\n </RadixNavigationMenu.Root>\n );\n});\n\nconst List = React.forwardRef(function List({ className, ...props }, ref) {\n return <RadixNavigationMenu.List ref={ref} className={cn(\"flex items-center gap-1\", className)} {...props} />;\n});\n\nconst Trigger = React.forwardRef(function Trigger({ className, children, ...props }, ref) {\n return (\n <RadixNavigationMenu.Trigger\n ref={ref}\n className={cn(\n \"flex items-center gap-1 rounded-md px-3 py-2 text-sm font-semibold text-text-secondary outline-none transition-colors hover:bg-bg-surface hover:text-text-primary data-[state=open]:text-text-primary [&[data-state=open]>svg]:rotate-180\",\n className,\n )}\n {...props}\n >\n {children}\n <ChevronDown size={14} className=\"relative top-px transition-transform duration-200\" />\n </RadixNavigationMenu.Trigger>\n );\n});\n\nconst Content = React.forwardRef(function Content({ className, ...props }, ref) {\n return (\n <RadixNavigationMenu.Content\n ref={ref}\n className={cn(\n \"w-full min-w-[280px] rounded-md border border-border-default bg-bg-page p-3 shadow-md\",\n className,\n )}\n {...props}\n />\n );\n});\n\nconst Link = React.forwardRef(function Link({ className, ...props }, ref) {\n return (\n <RadixNavigationMenu.Link\n ref={ref}\n className={cn(\n \"flex items-center rounded-md px-3 py-2 text-sm font-semibold text-text-secondary outline-none transition-colors hover:bg-bg-surface hover:text-text-primary data-[active]:text-accent\",\n className,\n )}\n {...props}\n />\n );\n});\n\nexport const NavigationMenu = {\n Root,\n List,\n Item: RadixNavigationMenu.Item,\n Trigger,\n Content,\n Link,\n};\n"],"mappings":";;;;;;AAAA,OAAO,WAAW;AAClB,SAAS,kBAAkB,2BAA2B;AACtD,SAAS,mBAAmB;AAMtB,cAOF,YAPE;AAHN,SAAS,WAAW;AAClB,SACE,oBAAC,SAAI,WAAU,gDACb,8BAAC,oBAAoB,UAApB,EAA6B,WAAU,qDAAoD,GAC9F;AAEJ;AAEA,IAAM,OAAO,MAAM,WAAW,SAASA,MAAK,EAAE,WAAW,UAAU,GAAG,MAAM,GAAG,KAAK;AAClF,SACE,qBAAC,oBAAoB,MAApB,EAAyB,KAAU,WAAW,GAAG,gCAAgC,SAAS,GAAI,GAAG,OAC/F;AAAA;AAAA,IACD,oBAAC,YAAS;AAAA,KACZ;AAEJ,CAAC;AAED,IAAM,OAAO,MAAM,WAAW,SAASC,MAAK,EAAE,WAAW,GAAG,MAAM,GAAG,KAAK;AACxE,SAAO,oBAAC,oBAAoB,MAApB,EAAyB,KAAU,WAAW,GAAG,2BAA2B,SAAS,GAAI,GAAG,OAAO;AAC7G,CAAC;AAED,IAAM,UAAU,MAAM,WAAW,SAASC,SAAQ,EAAE,WAAW,UAAU,GAAG,MAAM,GAAG,KAAK;AACxF,SACE;AAAA,IAAC,oBAAoB;AAAA,IAApB;AAAA,MACC;AAAA,MACA,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA,MAEH;AAAA;AAAA,QACD,oBAAC,eAAY,MAAM,IAAI,WAAU,qDAAoD;AAAA;AAAA;AAAA,EACvF;AAEJ,CAAC;AAED,IAAM,UAAU,MAAM,WAAW,SAASC,SAAQ,EAAE,WAAW,GAAG,MAAM,GAAG,KAAK;AAC9E,SACE;AAAA,IAAC,oBAAoB;AAAA,IAApB;AAAA,MACC;AAAA,MACA,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA;AAAA,EACN;AAEJ,CAAC;AAED,IAAM,OAAO,MAAM,WAAW,SAASC,MAAK,EAAE,WAAW,GAAG,MAAM,GAAG,KAAK;AACxE,SACE;AAAA,IAAC,oBAAoB;AAAA,IAApB;AAAA,MACC;AAAA,MACA,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA;AAAA,EACN;AAEJ,CAAC;AAEM,IAAM,iBAAiB;AAAA,EAC5B;AAAA,EACA;AAAA,EACA,MAAM,oBAAoB;AAAA,EAC1B;AAAA,EACA;AAAA,EACA;AACF;","names":["Root","List","Trigger","Content","Link"]}
@@ -1,7 +1,7 @@
1
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
- var _chunkHRO7NGJRcjs = require('./chunk-HRO7NGJR.cjs');
4
+ var _chunkA2ZOWFFGcjs = require('./chunk-A2ZOWFFG.cjs');
5
5
 
6
6
 
7
7
  var _chunkNSTYHMFWcjs = require('./chunk-NSTYHMFW.cjs');
@@ -46,12 +46,12 @@ var Combobox = _react2.default.forwardRef(function Combobox2({
46
46
  align: "start",
47
47
  sideOffset: 4,
48
48
  className: "z-50 w-[var(--radix-popover-trigger-width)] overflow-hidden rounded-md border border-border-default bg-bg-page p-0 shadow-md outline-none",
49
- children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkHRO7NGJRcjs.Command.Root, { children: [
50
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkHRO7NGJRcjs.Command.Input, { placeholder: searchPlaceholder }),
51
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkHRO7NGJRcjs.Command.List, { children: [
52
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkHRO7NGJRcjs.Command.Empty, { children: emptyMessage }),
53
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkHRO7NGJRcjs.Command.Group, { children: options.map((option) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
54
- _chunkHRO7NGJRcjs.Command.Item,
49
+ children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkA2ZOWFFGcjs.Command.Root, { children: [
50
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkA2ZOWFFGcjs.Command.Input, { placeholder: searchPlaceholder }),
51
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkA2ZOWFFGcjs.Command.List, { children: [
52
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkA2ZOWFFGcjs.Command.Empty, { children: emptyMessage }),
53
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkA2ZOWFFGcjs.Command.Group, { children: options.map((option) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
54
+ _chunkA2ZOWFFGcjs.Command.Item,
55
55
  {
56
56
  value: option.label,
57
57
  disabled: option.disabled,
@@ -82,4 +82,4 @@ var Combobox = _react2.default.forwardRef(function Combobox2({
82
82
 
83
83
 
84
84
  exports.Combobox = Combobox;
85
- //# sourceMappingURL=chunk-7VXLTE5S.cjs.map
85
+ //# sourceMappingURL=chunk-JFDZ7CML.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/runner/work/Atoms/Atoms/packages/ui/dist/chunk-7VXLTE5S.cjs","../src/components/combobox/Combobox.jsx"],"names":["Combobox"],"mappings":"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","file":"/home/runner/work/Atoms/Atoms/packages/ui/dist/chunk-7VXLTE5S.cjs","sourcesContent":[null,"import React, { useState } from \"react\";\nimport { Popover as RadixPopover } from \"radix-ui\";\nimport { Check, ChevronsUpDown } from \"@tlglobal/icons\";\nimport { cn } from \"../../lib/cn.js\";\nimport { Command } from \"../command/Command.jsx\";\n\n// Built directly on Radix Popover (not our styled Popover component) since Popover.Content bakes\n// in a fixed width/padding meant for free-form content — Combobox needs the content to match the\n// trigger's width and hold a Command list with no padding, so it goes straight to the primitive.\nexport const Combobox = React.forwardRef(function Combobox(\n {\n options = [],\n value,\n onValueChange,\n placeholder = \"Select…\",\n searchPlaceholder = \"Search…\",\n emptyMessage = \"No results found.\",\n disabled,\n className,\n ...props\n },\n ref,\n) {\n const [open, setOpen] = useState(false);\n const selected = options.find((option) => option.value === value);\n\n return (\n <RadixPopover.Root open={open} onOpenChange={setOpen} {...props}>\n <RadixPopover.Trigger\n ref={ref}\n disabled={disabled}\n className={cn(\n \"flex h-[38px] w-full items-center justify-between gap-2 rounded-md border border-border-default bg-bg-page px-3 font-sans text-base text-text-primary outline-none transition-[border-color,box-shadow] duration-150 ease-out data-[state=open]:border-border-focus data-[state=open]:shadow-[var(--shadow-focus-ring)] disabled:cursor-not-allowed disabled:bg-bg-surface\",\n className,\n )}\n >\n <span className={cn(\"truncate\", !selected && \"text-text-muted\")}>\n {selected ? selected.label : placeholder}\n </span>\n <ChevronsUpDown size={16} className=\"shrink-0 text-text-muted\" />\n </RadixPopover.Trigger>\n <RadixPopover.Portal>\n <RadixPopover.Content\n align=\"start\"\n sideOffset={4}\n className=\"z-50 w-[var(--radix-popover-trigger-width)] overflow-hidden rounded-md border border-border-default bg-bg-page p-0 shadow-md outline-none\"\n >\n <Command.Root>\n <Command.Input placeholder={searchPlaceholder} />\n <Command.List>\n <Command.Empty>{emptyMessage}</Command.Empty>\n <Command.Group>\n {options.map((option) => (\n <Command.Item\n key={option.value}\n value={option.label}\n disabled={option.disabled}\n onSelect={() => {\n onValueChange?.(option.value === value ? undefined : option.value);\n setOpen(false);\n }}\n >\n <Check\n size={14}\n className={cn(\"shrink-0 text-accent\", option.value === value ? \"opacity-100\" : \"opacity-0\")}\n />\n {option.label}\n </Command.Item>\n ))}\n </Command.Group>\n </Command.List>\n </Command.Root>\n </RadixPopover.Content>\n </RadixPopover.Portal>\n </RadixPopover.Root>\n );\n});\n"]}
1
+ {"version":3,"sources":["/home/runner/work/Atoms/Atoms/packages/ui/dist/chunk-JFDZ7CML.cjs","../src/components/combobox/Combobox.jsx"],"names":["Combobox"],"mappings":"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","file":"/home/runner/work/Atoms/Atoms/packages/ui/dist/chunk-JFDZ7CML.cjs","sourcesContent":[null,"import React, { useState } from \"react\";\nimport { Popover as RadixPopover } from \"radix-ui\";\nimport { Check, ChevronsUpDown } from \"@tlglobal/icons\";\nimport { cn } from \"../../lib/cn.js\";\nimport { Command } from \"../command/Command.jsx\";\n\n// Built directly on Radix Popover (not our styled Popover component) since Popover.Content bakes\n// in a fixed width/padding meant for free-form content — Combobox needs the content to match the\n// trigger's width and hold a Command list with no padding, so it goes straight to the primitive.\nexport const Combobox = React.forwardRef(function Combobox(\n {\n options = [],\n value,\n onValueChange,\n placeholder = \"Select…\",\n searchPlaceholder = \"Search…\",\n emptyMessage = \"No results found.\",\n disabled,\n className,\n ...props\n },\n ref,\n) {\n const [open, setOpen] = useState(false);\n const selected = options.find((option) => option.value === value);\n\n return (\n <RadixPopover.Root open={open} onOpenChange={setOpen} {...props}>\n <RadixPopover.Trigger\n ref={ref}\n disabled={disabled}\n className={cn(\n \"flex h-[38px] w-full items-center justify-between gap-2 rounded-md border border-border-default bg-bg-page px-3 font-sans text-base text-text-primary outline-none transition-[border-color,box-shadow] duration-150 ease-out data-[state=open]:border-border-focus data-[state=open]:shadow-[var(--shadow-focus-ring)] disabled:cursor-not-allowed disabled:bg-bg-surface\",\n className,\n )}\n >\n <span className={cn(\"truncate\", !selected && \"text-text-muted\")}>\n {selected ? selected.label : placeholder}\n </span>\n <ChevronsUpDown size={16} className=\"shrink-0 text-text-muted\" />\n </RadixPopover.Trigger>\n <RadixPopover.Portal>\n <RadixPopover.Content\n align=\"start\"\n sideOffset={4}\n className=\"z-50 w-[var(--radix-popover-trigger-width)] overflow-hidden rounded-md border border-border-default bg-bg-page p-0 shadow-md outline-none\"\n >\n <Command.Root>\n <Command.Input placeholder={searchPlaceholder} />\n <Command.List>\n <Command.Empty>{emptyMessage}</Command.Empty>\n <Command.Group>\n {options.map((option) => (\n <Command.Item\n key={option.value}\n value={option.label}\n disabled={option.disabled}\n onSelect={() => {\n onValueChange?.(option.value === value ? undefined : option.value);\n setOpen(false);\n }}\n >\n <Check\n size={14}\n className={cn(\"shrink-0 text-accent\", option.value === value ? \"opacity-100\" : \"opacity-0\")}\n />\n {option.label}\n </Command.Item>\n ))}\n </Command.Group>\n </Command.List>\n </Command.Root>\n </RadixPopover.Content>\n </RadixPopover.Portal>\n </RadixPopover.Root>\n );\n});\n"]}
@@ -1,14 +1,34 @@
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
- var _chunkHAMZFEZOcjs = require('./chunk-HAMZFEZO.cjs');
4
+ var _chunkUMGGVQCDcjs = require('./chunk-UMGGVQCD.cjs');
5
5
 
6
6
 
7
7
  var _chunkNSTYHMFWcjs = require('./chunk-NSTYHMFW.cjs');
8
8
 
9
9
  // src/components/message-scroller/MessageScroller.jsx
10
- var _react = require('react');
10
+
11
+
12
+
13
+
14
+
15
+
16
+
17
+
18
+ var _react = require('react'); var _react2 = _interopRequireDefault(_react);
11
19
  var _icons = require('@tlglobal/icons');
20
+
21
+ // src/lib/mergeRefs.js
22
+ function mergeRefs(...refs) {
23
+ return (node) => {
24
+ for (const ref of refs) {
25
+ if (typeof ref === "function") ref(node);
26
+ else if (ref && typeof ref === "object") ref.current = node;
27
+ }
28
+ };
29
+ }
30
+
31
+ // src/components/message-scroller/MessageScroller.jsx
12
32
  var _jsxruntime = require('react/jsx-runtime');
13
33
  var MessageScrollerContext = _react.createContext.call(void 0, null);
14
34
  function useMessageScroller() {
@@ -16,7 +36,7 @@ function useMessageScroller() {
16
36
  if (!context) throw new Error("MessageScroller parts must be used within MessageScroller.Root");
17
37
  return context;
18
38
  }
19
- function Root({ threshold = 32, className, children, ...props }) {
39
+ var Root = _react2.default.forwardRef(function Root2({ threshold = 32, className, children, ...props }, ref) {
20
40
  const viewportRef = _react.useRef.call(void 0, null);
21
41
  const contentRef = _react.useRef.call(void 0, null);
22
42
  const [isPinned, setIsPinned] = _react.useState.call(void 0, true);
@@ -60,6 +80,7 @@ function Root({ threshold = 32, className, children, ...props }) {
60
80
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, MessageScrollerContext.Provider, { value: context, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
61
81
  "div",
62
82
  {
83
+ ref,
63
84
  "data-slot": "message-scroller",
64
85
  "data-pinned": isPinned || void 0,
65
86
  className: _chunkNSTYHMFWcjs.cn.call(void 0, "relative flex min-h-0 flex-1 flex-col", className),
@@ -67,13 +88,14 @@ function Root({ threshold = 32, className, children, ...props }) {
67
88
  children
68
89
  }
69
90
  ) });
70
- }
71
- function Viewport({ className, ...props }) {
91
+ });
92
+ var Viewport = _react2.default.forwardRef(function Viewport2({ className, ...props }, ref) {
72
93
  const { viewportRef, handleScroll } = useMessageScroller();
94
+ const setRef = _react.useMemo.call(void 0, () => mergeRefs(viewportRef, ref), [viewportRef, ref]);
73
95
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
74
96
  "div",
75
97
  {
76
- ref: viewportRef,
98
+ ref: setRef,
77
99
  onScroll: handleScroll,
78
100
  "data-slot": "message-scroller-viewport",
79
101
  tabIndex: 0,
@@ -83,25 +105,27 @@ function Viewport({ className, ...props }) {
83
105
  ...props
84
106
  }
85
107
  );
86
- }
87
- function Content({ className, ...props }) {
108
+ });
109
+ var Content = _react2.default.forwardRef(function Content2({ className, ...props }, ref) {
88
110
  const { contentRef } = useMessageScroller();
111
+ const setRef = _react.useMemo.call(void 0, () => mergeRefs(contentRef, ref), [contentRef, ref]);
89
112
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
90
113
  "div",
91
114
  {
92
- ref: contentRef,
115
+ ref: setRef,
93
116
  "data-slot": "message-scroller-content",
94
117
  className: _chunkNSTYHMFWcjs.cn.call(void 0, "flex flex-col gap-4 p-4", className),
95
118
  ...props
96
119
  }
97
120
  );
98
- }
99
- function JumpToLatest({ className, children = "Jump to latest", onClick, ...props }) {
121
+ });
122
+ var JumpToLatest = _react2.default.forwardRef(function JumpToLatest2({ className, children = "Jump to latest", onClick, ...props }, ref) {
100
123
  const { isPinned, scrollToBottom } = useMessageScroller();
101
124
  if (isPinned) return null;
102
125
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
103
- _chunkHAMZFEZOcjs.Button,
126
+ _chunkUMGGVQCDcjs.Button,
104
127
  {
128
+ ref,
105
129
  variant: "secondary",
106
130
  size: "sm",
107
131
  iconRight: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _icons.ChevronDown, { size: 14 }),
@@ -115,11 +139,11 @@ function JumpToLatest({ className, children = "Jump to latest", onClick, ...prop
115
139
  children
116
140
  }
117
141
  );
118
- }
142
+ });
119
143
  var MessageScroller = { Root, Viewport, Content, JumpToLatest };
120
144
 
121
145
 
122
146
 
123
147
 
124
148
  exports.useMessageScroller = useMessageScroller; exports.MessageScroller = MessageScroller;
125
- //# sourceMappingURL=chunk-HWVBYDV7.cjs.map
149
+ //# sourceMappingURL=chunk-JVNI5OEZ.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/home/runner/work/Atoms/Atoms/packages/ui/dist/chunk-JVNI5OEZ.cjs","../src/components/message-scroller/MessageScroller.jsx","../src/lib/mergeRefs.js"],"names":["Root","Viewport","Content","JumpToLatest"],"mappings":"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","file":"/home/runner/work/Atoms/Atoms/packages/ui/dist/chunk-JVNI5OEZ.cjs","sourcesContent":[null,"import React, {\n createContext,\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport { ChevronDown } from \"@tlglobal/icons\";\nimport { cn } from \"../../lib/cn.js\";\nimport { mergeRefs } from \"../../lib/mergeRefs.js\";\nimport { Button } from \"../button/Button.jsx\";\n\nconst MessageScrollerContext = createContext(null);\n\nexport function useMessageScroller() {\n const context = useContext(MessageScrollerContext);\n if (!context) throw new Error(\"MessageScroller parts must be used within MessageScroller.Root\");\n return context;\n}\n\nconst Root = React.forwardRef(function Root({ threshold = 32, className, children, ...props }, ref) {\n const viewportRef = useRef(null);\n const contentRef = useRef(null);\n const [isPinned, setIsPinned] = useState(true);\n\n /*\n * The observers below must not re-subscribe every time `isPinned` flips — that would tear down\n * and rebuild a ResizeObserver on every scroll. They read this ref instead, which is kept in\n * sync with the state that drives rendering.\n */\n const pinnedRef = useRef(true);\n const setPinned = useCallback((value) => {\n pinnedRef.current = value;\n setIsPinned(value);\n }, []);\n\n const scrollToBottom = useCallback((options) => {\n const el = viewportRef.current;\n if (!el) return;\n // Assigning scrollTop is the fallback rather than the exception: jsdom has no\n // Element.prototype.scrollTo at all, so smooth scrolling can't be the only path.\n if (options?.behavior === \"smooth\" && typeof el.scrollTo === \"function\") {\n el.scrollTo({ top: el.scrollHeight, behavior: \"smooth\" });\n } else {\n el.scrollTop = el.scrollHeight;\n }\n setPinned(true);\n }, [setPinned]);\n\n const handleScroll = useCallback(() => {\n const el = viewportRef.current;\n if (!el) return;\n const distanceFromBottom = el.scrollHeight - el.scrollTop - el.clientHeight;\n setPinned(distanceFromBottom <= threshold);\n }, [threshold, setPinned]);\n\n // Start at the newest message, without an animation the user didn't ask for.\n useEffect(() => {\n scrollToBottom({ behavior: \"auto\" });\n }, [scrollToBottom]);\n\n /*\n * Follow new content only while the user is still at the bottom. Yanking them back down mid-scroll\n * because a reply streamed in is the single most annoying failure mode of a chat log, so once they\n * scroll away we leave them alone and surface JumpToLatest instead.\n */\n useEffect(() => {\n const content = contentRef.current;\n if (!content || typeof ResizeObserver === \"undefined\") return undefined;\n\n const observer = new ResizeObserver(() => {\n if (pinnedRef.current) scrollToBottom({ behavior: \"auto\" });\n });\n observer.observe(content);\n return () => observer.disconnect();\n }, [scrollToBottom]);\n\n const context = useMemo(\n () => ({ viewportRef, contentRef, isPinned, scrollToBottom, handleScroll }),\n [isPinned, scrollToBottom, handleScroll],\n );\n\n return (\n <MessageScrollerContext.Provider value={context}>\n <div\n ref={ref}\n data-slot=\"message-scroller\"\n data-pinned={isPinned || undefined}\n className={cn(\"relative flex min-h-0 flex-1 flex-col\", className)}\n {...props}\n >\n {children}\n </div>\n </MessageScrollerContext.Provider>\n );\n});\n\nconst Viewport = React.forwardRef(function Viewport({ className, ...props }, ref) {\n const { viewportRef, handleScroll } = useMessageScroller();\n const setRef = useMemo(() => mergeRefs(viewportRef, ref), [viewportRef, ref]);\n return (\n <div\n ref={setRef}\n onScroll={handleScroll}\n data-slot=\"message-scroller-viewport\"\n /*\n * Chrome won't let a keyboard user scroll an overflow container that isn't focusable, so\n * WCAG 2.1.1 wants tabIndex={0} here. jsx-a11y flags it because `log` isn't a tabbable role —\n * a known gap in the rule for scrollable regions, not a real finding. role + aria-label give\n * the region a name so it isn't announced as an anonymous scrollable group.\n */\n // eslint-disable-next-line jsx-a11y/no-noninteractive-tabindex\n tabIndex={0}\n role=\"log\"\n aria-label=\"Conversation\"\n className={cn(\"min-h-0 flex-1 overflow-y-auto overscroll-contain focus-visible:outline-none\", className)}\n {...props}\n />\n );\n});\n\nconst Content = React.forwardRef(function Content({ className, ...props }, ref) {\n const { contentRef } = useMessageScroller();\n const setRef = useMemo(() => mergeRefs(contentRef, ref), [contentRef, ref]);\n return (\n <div\n ref={setRef}\n data-slot=\"message-scroller-content\"\n className={cn(\"flex flex-col gap-4 p-4\", className)}\n {...props}\n />\n );\n});\n\nconst JumpToLatest = React.forwardRef(function JumpToLatest(\n { className, children = \"Jump to latest\", onClick, ...props },\n ref,\n) {\n const { isPinned, scrollToBottom } = useMessageScroller();\n if (isPinned) return null;\n\n return (\n <Button\n ref={ref}\n variant=\"secondary\"\n size=\"sm\"\n iconRight={<ChevronDown size={14} />}\n onClick={(event) => {\n onClick?.(event);\n scrollToBottom({ behavior: \"smooth\" });\n }}\n data-slot=\"message-scroller-jump\"\n className={cn(\"absolute bottom-4 left-1/2 -translate-x-1/2 rounded-full shadow-md\", className)}\n {...props}\n >\n {children}\n </Button>\n );\n});\n\nexport const MessageScroller = { Root, Viewport, Content, JumpToLatest };\n","/**\n * Combines multiple refs (callback or object) into one callback ref, so a component that already\n * owns an internal ref (e.g. for scroll tracking) can still forward an external one to the same\n * DOM node.\n */\nexport function mergeRefs(...refs) {\n return (node) => {\n for (const ref of refs) {\n if (typeof ref === \"function\") ref(node);\n else if (ref && typeof ref === \"object\") ref.current = node;\n }\n };\n}\n"]}
@@ -1,14 +1,34 @@
1
1
  'use client';
2
2
  import {
3
3
  Button
4
- } from "./chunk-7KV2ASQZ.js";
4
+ } from "./chunk-UC2Y7ECN.js";
5
5
  import {
6
6
  cn
7
7
  } from "./chunk-74GQ35MJ.js";
8
8
 
9
9
  // src/components/message-scroller/MessageScroller.jsx
10
- import { createContext, useCallback, useContext, useEffect, useMemo, useRef, useState } from "react";
10
+ import React, {
11
+ createContext,
12
+ useCallback,
13
+ useContext,
14
+ useEffect,
15
+ useMemo,
16
+ useRef,
17
+ useState
18
+ } from "react";
11
19
  import { ChevronDown } from "@tlglobal/icons";
20
+
21
+ // src/lib/mergeRefs.js
22
+ function mergeRefs(...refs) {
23
+ return (node) => {
24
+ for (const ref of refs) {
25
+ if (typeof ref === "function") ref(node);
26
+ else if (ref && typeof ref === "object") ref.current = node;
27
+ }
28
+ };
29
+ }
30
+
31
+ // src/components/message-scroller/MessageScroller.jsx
12
32
  import { jsx } from "react/jsx-runtime";
13
33
  var MessageScrollerContext = createContext(null);
14
34
  function useMessageScroller() {
@@ -16,7 +36,7 @@ function useMessageScroller() {
16
36
  if (!context) throw new Error("MessageScroller parts must be used within MessageScroller.Root");
17
37
  return context;
18
38
  }
19
- function Root({ threshold = 32, className, children, ...props }) {
39
+ var Root = React.forwardRef(function Root2({ threshold = 32, className, children, ...props }, ref) {
20
40
  const viewportRef = useRef(null);
21
41
  const contentRef = useRef(null);
22
42
  const [isPinned, setIsPinned] = useState(true);
@@ -60,6 +80,7 @@ function Root({ threshold = 32, className, children, ...props }) {
60
80
  return /* @__PURE__ */ jsx(MessageScrollerContext.Provider, { value: context, children: /* @__PURE__ */ jsx(
61
81
  "div",
62
82
  {
83
+ ref,
63
84
  "data-slot": "message-scroller",
64
85
  "data-pinned": isPinned || void 0,
65
86
  className: cn("relative flex min-h-0 flex-1 flex-col", className),
@@ -67,13 +88,14 @@ function Root({ threshold = 32, className, children, ...props }) {
67
88
  children
68
89
  }
69
90
  ) });
70
- }
71
- function Viewport({ className, ...props }) {
91
+ });
92
+ var Viewport = React.forwardRef(function Viewport2({ className, ...props }, ref) {
72
93
  const { viewportRef, handleScroll } = useMessageScroller();
94
+ const setRef = useMemo(() => mergeRefs(viewportRef, ref), [viewportRef, ref]);
73
95
  return /* @__PURE__ */ jsx(
74
96
  "div",
75
97
  {
76
- ref: viewportRef,
98
+ ref: setRef,
77
99
  onScroll: handleScroll,
78
100
  "data-slot": "message-scroller-viewport",
79
101
  tabIndex: 0,
@@ -83,25 +105,27 @@ function Viewport({ className, ...props }) {
83
105
  ...props
84
106
  }
85
107
  );
86
- }
87
- function Content({ className, ...props }) {
108
+ });
109
+ var Content = React.forwardRef(function Content2({ className, ...props }, ref) {
88
110
  const { contentRef } = useMessageScroller();
111
+ const setRef = useMemo(() => mergeRefs(contentRef, ref), [contentRef, ref]);
89
112
  return /* @__PURE__ */ jsx(
90
113
  "div",
91
114
  {
92
- ref: contentRef,
115
+ ref: setRef,
93
116
  "data-slot": "message-scroller-content",
94
117
  className: cn("flex flex-col gap-4 p-4", className),
95
118
  ...props
96
119
  }
97
120
  );
98
- }
99
- function JumpToLatest({ className, children = "Jump to latest", onClick, ...props }) {
121
+ });
122
+ var JumpToLatest = React.forwardRef(function JumpToLatest2({ className, children = "Jump to latest", onClick, ...props }, ref) {
100
123
  const { isPinned, scrollToBottom } = useMessageScroller();
101
124
  if (isPinned) return null;
102
125
  return /* @__PURE__ */ jsx(
103
126
  Button,
104
127
  {
128
+ ref,
105
129
  variant: "secondary",
106
130
  size: "sm",
107
131
  iconRight: /* @__PURE__ */ jsx(ChevronDown, { size: 14 }),
@@ -115,11 +139,11 @@ function JumpToLatest({ className, children = "Jump to latest", onClick, ...prop
115
139
  children
116
140
  }
117
141
  );
118
- }
142
+ });
119
143
  var MessageScroller = { Root, Viewport, Content, JumpToLatest };
120
144
 
121
145
  export {
122
146
  useMessageScroller,
123
147
  MessageScroller
124
148
  };
125
- //# sourceMappingURL=chunk-3PA53VKD.js.map
149
+ //# sourceMappingURL=chunk-KLCAYZB2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/message-scroller/MessageScroller.jsx","../src/lib/mergeRefs.js"],"sourcesContent":["import React, {\n createContext,\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport { ChevronDown } from \"@tlglobal/icons\";\nimport { cn } from \"../../lib/cn.js\";\nimport { mergeRefs } from \"../../lib/mergeRefs.js\";\nimport { Button } from \"../button/Button.jsx\";\n\nconst MessageScrollerContext = createContext(null);\n\nexport function useMessageScroller() {\n const context = useContext(MessageScrollerContext);\n if (!context) throw new Error(\"MessageScroller parts must be used within MessageScroller.Root\");\n return context;\n}\n\nconst Root = React.forwardRef(function Root({ threshold = 32, className, children, ...props }, ref) {\n const viewportRef = useRef(null);\n const contentRef = useRef(null);\n const [isPinned, setIsPinned] = useState(true);\n\n /*\n * The observers below must not re-subscribe every time `isPinned` flips — that would tear down\n * and rebuild a ResizeObserver on every scroll. They read this ref instead, which is kept in\n * sync with the state that drives rendering.\n */\n const pinnedRef = useRef(true);\n const setPinned = useCallback((value) => {\n pinnedRef.current = value;\n setIsPinned(value);\n }, []);\n\n const scrollToBottom = useCallback((options) => {\n const el = viewportRef.current;\n if (!el) return;\n // Assigning scrollTop is the fallback rather than the exception: jsdom has no\n // Element.prototype.scrollTo at all, so smooth scrolling can't be the only path.\n if (options?.behavior === \"smooth\" && typeof el.scrollTo === \"function\") {\n el.scrollTo({ top: el.scrollHeight, behavior: \"smooth\" });\n } else {\n el.scrollTop = el.scrollHeight;\n }\n setPinned(true);\n }, [setPinned]);\n\n const handleScroll = useCallback(() => {\n const el = viewportRef.current;\n if (!el) return;\n const distanceFromBottom = el.scrollHeight - el.scrollTop - el.clientHeight;\n setPinned(distanceFromBottom <= threshold);\n }, [threshold, setPinned]);\n\n // Start at the newest message, without an animation the user didn't ask for.\n useEffect(() => {\n scrollToBottom({ behavior: \"auto\" });\n }, [scrollToBottom]);\n\n /*\n * Follow new content only while the user is still at the bottom. Yanking them back down mid-scroll\n * because a reply streamed in is the single most annoying failure mode of a chat log, so once they\n * scroll away we leave them alone and surface JumpToLatest instead.\n */\n useEffect(() => {\n const content = contentRef.current;\n if (!content || typeof ResizeObserver === \"undefined\") return undefined;\n\n const observer = new ResizeObserver(() => {\n if (pinnedRef.current) scrollToBottom({ behavior: \"auto\" });\n });\n observer.observe(content);\n return () => observer.disconnect();\n }, [scrollToBottom]);\n\n const context = useMemo(\n () => ({ viewportRef, contentRef, isPinned, scrollToBottom, handleScroll }),\n [isPinned, scrollToBottom, handleScroll],\n );\n\n return (\n <MessageScrollerContext.Provider value={context}>\n <div\n ref={ref}\n data-slot=\"message-scroller\"\n data-pinned={isPinned || undefined}\n className={cn(\"relative flex min-h-0 flex-1 flex-col\", className)}\n {...props}\n >\n {children}\n </div>\n </MessageScrollerContext.Provider>\n );\n});\n\nconst Viewport = React.forwardRef(function Viewport({ className, ...props }, ref) {\n const { viewportRef, handleScroll } = useMessageScroller();\n const setRef = useMemo(() => mergeRefs(viewportRef, ref), [viewportRef, ref]);\n return (\n <div\n ref={setRef}\n onScroll={handleScroll}\n data-slot=\"message-scroller-viewport\"\n /*\n * Chrome won't let a keyboard user scroll an overflow container that isn't focusable, so\n * WCAG 2.1.1 wants tabIndex={0} here. jsx-a11y flags it because `log` isn't a tabbable role —\n * a known gap in the rule for scrollable regions, not a real finding. role + aria-label give\n * the region a name so it isn't announced as an anonymous scrollable group.\n */\n // eslint-disable-next-line jsx-a11y/no-noninteractive-tabindex\n tabIndex={0}\n role=\"log\"\n aria-label=\"Conversation\"\n className={cn(\"min-h-0 flex-1 overflow-y-auto overscroll-contain focus-visible:outline-none\", className)}\n {...props}\n />\n );\n});\n\nconst Content = React.forwardRef(function Content({ className, ...props }, ref) {\n const { contentRef } = useMessageScroller();\n const setRef = useMemo(() => mergeRefs(contentRef, ref), [contentRef, ref]);\n return (\n <div\n ref={setRef}\n data-slot=\"message-scroller-content\"\n className={cn(\"flex flex-col gap-4 p-4\", className)}\n {...props}\n />\n );\n});\n\nconst JumpToLatest = React.forwardRef(function JumpToLatest(\n { className, children = \"Jump to latest\", onClick, ...props },\n ref,\n) {\n const { isPinned, scrollToBottom } = useMessageScroller();\n if (isPinned) return null;\n\n return (\n <Button\n ref={ref}\n variant=\"secondary\"\n size=\"sm\"\n iconRight={<ChevronDown size={14} />}\n onClick={(event) => {\n onClick?.(event);\n scrollToBottom({ behavior: \"smooth\" });\n }}\n data-slot=\"message-scroller-jump\"\n className={cn(\"absolute bottom-4 left-1/2 -translate-x-1/2 rounded-full shadow-md\", className)}\n {...props}\n >\n {children}\n </Button>\n );\n});\n\nexport const MessageScroller = { Root, Viewport, Content, JumpToLatest };\n","/**\n * Combines multiple refs (callback or object) into one callback ref, so a component that already\n * owns an internal ref (e.g. for scroll tracking) can still forward an external one to the same\n * DOM node.\n */\nexport function mergeRefs(...refs) {\n return (node) => {\n for (const ref of refs) {\n if (typeof ref === \"function\") ref(node);\n else if (ref && typeof ref === \"object\") ref.current = node;\n }\n };\n}\n"],"mappings":"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","names":["Root","Viewport","Content","JumpToLatest"]}
@@ -1,9 +1,12 @@
1
1
  'use client';
2
+ import {
3
+ disabledClass
4
+ } from "./chunk-LDABSX4U.js";
2
5
 
3
6
  // src/components/toggle/Toggle.variants.js
4
7
  import { cva } from "class-variance-authority";
5
8
  var toggleVariants = cva(
6
- "inline-flex items-center justify-center gap-1.5 rounded-md font-sans text-sm font-medium text-text-secondary transition-colors hover:bg-bg-surface hover:text-text-primary data-[state=on]:bg-accent-100 data-[state=on]:text-accent-700 disabled:pointer-events-none disabled:opacity-50 focus-visible:outline-none focus-visible:shadow-[var(--shadow-focus-ring)]",
9
+ `inline-flex items-center justify-center gap-1.5 rounded-md font-sans text-sm font-medium text-text-secondary transition-colors hover:bg-bg-surface hover:text-text-primary data-[state=on]:bg-accent-100 data-[state=on]:text-accent-700 ${disabledClass} focus-visible:outline-none focus-visible:shadow-[var(--shadow-focus-ring)]`,
7
10
  {
8
11
  variants: {
9
12
  variant: {
@@ -23,4 +26,4 @@ var toggleVariants = cva(
23
26
  export {
24
27
  toggleVariants
25
28
  };
26
- //# sourceMappingURL=chunk-77VS352K.js.map
29
+ //# sourceMappingURL=chunk-KTKJUALJ.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/toggle/Toggle.variants.js"],"sourcesContent":["import { cva } from \"class-variance-authority\";\nimport { disabledClass } from \"../../lib/disabled.js\";\n\nexport const toggleVariants = cva(\n `inline-flex items-center justify-center gap-1.5 rounded-md font-sans text-sm font-medium text-text-secondary transition-colors hover:bg-bg-surface hover:text-text-primary data-[state=on]:bg-accent-100 data-[state=on]:text-accent-700 ${disabledClass} focus-visible:outline-none focus-visible:shadow-[var(--shadow-focus-ring)]`,\n {\n variants: {\n variant: {\n default: \"border border-transparent\",\n outline: \"border border-border-default\",\n },\n size: {\n sm: \"h-8 px-2\",\n md: \"h-[38px] px-2.5\",\n lg: \"h-11 px-3\",\n },\n },\n defaultVariants: { variant: \"default\", size: \"md\" },\n },\n);\n"],"mappings":";;;;;;AAAA,SAAS,WAAW;AAGb,IAAM,iBAAiB;AAAA,EAC5B,4OAA4O,aAAa;AAAA,EACzP;AAAA,IACE,UAAU;AAAA,MACR,SAAS;AAAA,QACP,SAAS;AAAA,QACT,SAAS;AAAA,MACX;AAAA,MACA,MAAM;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,MACN;AAAA,IACF;AAAA,IACA,iBAAiB,EAAE,SAAS,WAAW,MAAM,KAAK;AAAA,EACpD;AACF;","names":[]}