@epicbagel/saas-kit 0.0.0-stage → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (659) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +108 -2
  3. package/THIRD_PARTY_NOTICES.md +53 -0
  4. package/dist/chunk-23UMHZ4S.cjs +124 -0
  5. package/dist/chunk-2AU7ZRGX.cjs +96 -0
  6. package/dist/chunk-2BHI5ZWJ.cjs +117 -0
  7. package/dist/chunk-2BTDBZYN.cjs +154 -0
  8. package/dist/chunk-2HTYXBDU.cjs +34 -0
  9. package/dist/chunk-2HV2KKOE.cjs +38 -0
  10. package/dist/chunk-2KFZQJH5.cjs +29 -0
  11. package/dist/chunk-2XDFTB2W.cjs +35 -0
  12. package/dist/chunk-32Q4XOTU.cjs +204 -0
  13. package/dist/chunk-35YMAIEL.js +135 -0
  14. package/dist/chunk-373W6VAD.cjs +82 -0
  15. package/dist/chunk-3BZ4CQHW.js +94 -0
  16. package/dist/chunk-3OWGL4Q2.js +65 -0
  17. package/dist/chunk-3QT5VYZ3.js +141 -0
  18. package/dist/chunk-42RTTHND.js +29 -0
  19. package/dist/chunk-4HWCNRK4.js +117 -0
  20. package/dist/chunk-4LXN6GLZ.cjs +44 -0
  21. package/dist/chunk-4NN7EA3W.js +222 -0
  22. package/dist/chunk-62UTAG2C.js +152 -0
  23. package/dist/chunk-667ZCM4X.cjs +72 -0
  24. package/dist/chunk-6FC65AZQ.js +38 -0
  25. package/dist/chunk-6RVPQGYS.js +181 -0
  26. package/dist/chunk-6T2EULKN.cjs +42 -0
  27. package/dist/chunk-6V4XMQ6D.js +118 -0
  28. package/dist/chunk-7CRDYV3C.js +137 -0
  29. package/dist/chunk-B765DSRG.cjs +66 -0
  30. package/dist/chunk-BEJJN2SY.cjs +73 -0
  31. package/dist/chunk-BGLGRUPP.cjs +31 -0
  32. package/dist/chunk-CS7DM3NV.js +98 -0
  33. package/dist/chunk-CTYOW3V2.cjs +59 -0
  34. package/dist/chunk-D4ZL2OEQ.js +61 -0
  35. package/dist/chunk-DFB4ILN6.cjs +137 -0
  36. package/dist/chunk-E2TQMDO7.js +34 -0
  37. package/dist/chunk-EIY5LLSP.js +82 -0
  38. package/dist/chunk-EJP2L5QV.cjs +74 -0
  39. package/dist/chunk-ELPV44S6.cjs +44 -0
  40. package/dist/chunk-EOUO3ORO.cjs +244 -0
  41. package/dist/chunk-EZCKWTH7.js +204 -0
  42. package/dist/chunk-F366BHWH.js +116 -0
  43. package/dist/chunk-F73ONTCK.js +73 -0
  44. package/dist/chunk-F7JHSZNT.js +73 -0
  45. package/dist/chunk-FJLINIC6.js +48 -0
  46. package/dist/chunk-FLPYZNWZ.js +124 -0
  47. package/dist/chunk-FNDBM67K.cjs +61 -0
  48. package/dist/chunk-G54TQV2R.cjs +222 -0
  49. package/dist/chunk-G6SRSWXB.js +32 -0
  50. package/dist/chunk-G76JANB4.js +138 -0
  51. package/dist/chunk-GFG2R5BZ.js +132 -0
  52. package/dist/chunk-GL5CV4FF.js +59 -0
  53. package/dist/chunk-GMJWBGTJ.js +34 -0
  54. package/dist/chunk-GRZMUGT6.cjs +94 -0
  55. package/dist/chunk-GXHGMI3Z.cjs +48 -0
  56. package/dist/chunk-H2O6NMLZ.js +52 -0
  57. package/dist/chunk-H2UFRLLN.cjs +100 -0
  58. package/dist/chunk-H7TETFLB.js +39 -0
  59. package/dist/chunk-HAC32ALJ.js +244 -0
  60. package/dist/chunk-HQRWRRZJ.js +179 -0
  61. package/dist/chunk-HRLP4BHJ.js +510 -0
  62. package/dist/chunk-HYSWE75T.js +67 -0
  63. package/dist/chunk-HYTILYE5.js +31 -0
  64. package/dist/chunk-I5UQSBBZ.cjs +118 -0
  65. package/dist/chunk-I6GUOEBO.cjs +61 -0
  66. package/dist/chunk-IH3COANJ.cjs +510 -0
  67. package/dist/chunk-INNGGLMZ.js +44 -0
  68. package/dist/chunk-IQZLUT2Y.cjs +34 -0
  69. package/dist/chunk-IW4ZIXXG.js +66 -0
  70. package/dist/chunk-J3GQXM37.js +61 -0
  71. package/dist/chunk-J6NXDZR5.js +145 -0
  72. package/dist/chunk-JH4GAGOQ.cjs +34 -0
  73. package/dist/chunk-JZOBIPFC.js +96 -0
  74. package/dist/chunk-KENBU3NV.cjs +27 -0
  75. package/dist/chunk-KGFL3VWY.cjs +62 -0
  76. package/dist/chunk-KN4RPX35.js +36 -0
  77. package/dist/chunk-KWLSBTB2.cjs +34 -0
  78. package/dist/chunk-L4DH72UF.cjs +179 -0
  79. package/dist/chunk-LELBCBDT.cjs +52 -0
  80. package/dist/chunk-LELFPLTE.js +55 -0
  81. package/dist/chunk-LI5EOSQG.js +171 -0
  82. package/dist/chunk-LIE6W3QT.js +42 -0
  83. package/dist/chunk-MHYAVXOE.js +159 -0
  84. package/dist/chunk-MLHNYRFX.js +411 -0
  85. package/dist/chunk-NBUWGRQO.js +31 -0
  86. package/dist/chunk-NE3ZVJ6G.cjs +67 -0
  87. package/dist/chunk-NQK5ZWC7.cjs +31 -0
  88. package/dist/chunk-NW3OWKBN.js +57 -0
  89. package/dist/chunk-OICAYRVH.js +34 -0
  90. package/dist/chunk-PIU5SSUV.js +25 -0
  91. package/dist/chunk-PNWNU6JW.cjs +171 -0
  92. package/dist/chunk-PPX2VPGI.cjs +138 -0
  93. package/dist/chunk-PQUSJEXL.cjs +51 -0
  94. package/dist/chunk-QD63LB2F.js +62 -0
  95. package/dist/chunk-QMA3WVB7.js +51 -0
  96. package/dist/chunk-QNZYQLNP.js +125 -0
  97. package/dist/chunk-R35FT53G.cjs +25 -0
  98. package/dist/chunk-R3DQS6U4.cjs +135 -0
  99. package/dist/chunk-R4AIM3BQ.js +72 -0
  100. package/dist/chunk-R5L4CM6V.cjs +202 -0
  101. package/dist/chunk-RIWLAMME.cjs +159 -0
  102. package/dist/chunk-RRRD5EUI.js +202 -0
  103. package/dist/chunk-RSFEKQDR.cjs +181 -0
  104. package/dist/chunk-SGW4FWBX.cjs +411 -0
  105. package/dist/chunk-SUB4BAYE.cjs +73 -0
  106. package/dist/chunk-T2ZFSPE4.cjs +36 -0
  107. package/dist/chunk-THWIJG5C.js +73 -0
  108. package/dist/chunk-U2NES7VR.cjs +32 -0
  109. package/dist/chunk-V4LE2HWP.js +166 -0
  110. package/dist/chunk-V4YWTRLD.cjs +116 -0
  111. package/dist/chunk-V5SPFLKW.cjs +145 -0
  112. package/dist/chunk-V7542UGX.js +31 -0
  113. package/dist/chunk-VBPPFC7X.cjs +66 -0
  114. package/dist/chunk-VGTINL5Q.cjs +39 -0
  115. package/dist/chunk-VKIGJNJR.cjs +57 -0
  116. package/dist/chunk-VY5U4VGV.js +27 -0
  117. package/dist/chunk-W5HPHEE7.cjs +31 -0
  118. package/dist/chunk-W5I4FN7G.cjs +78 -0
  119. package/dist/chunk-WABCLRBR.cjs +65 -0
  120. package/dist/chunk-WDXEJDMO.cjs +141 -0
  121. package/dist/chunk-WNXVGUBF.cjs +40 -0
  122. package/dist/chunk-WQJKUKBL.cjs +125 -0
  123. package/dist/chunk-XABXUP6L.cjs +132 -0
  124. package/dist/chunk-XAPPU3MD.js +35 -0
  125. package/dist/chunk-XLIAY56V.cjs +55 -0
  126. package/dist/chunk-YEW65ASC.js +66 -0
  127. package/dist/chunk-YG7FBJRM.js +40 -0
  128. package/dist/chunk-YWAQRAXP.js +78 -0
  129. package/dist/chunk-YYFVG5A6.cjs +152 -0
  130. package/dist/chunk-Z45YKVAM.js +154 -0
  131. package/dist/chunk-ZAITUDYD.cjs +166 -0
  132. package/dist/chunk-ZRLUUZHK.js +32 -0
  133. package/dist/chunk-ZWZAAGQF.js +44 -0
  134. package/dist/hooks/use-copy-to-clipboard.cjs +7 -0
  135. package/dist/hooks/use-copy-to-clipboard.d.cts +12 -0
  136. package/dist/hooks/use-copy-to-clipboard.d.ts +12 -0
  137. package/dist/hooks/use-copy-to-clipboard.js +7 -0
  138. package/dist/hooks/use-layout-preference.cjs +51 -0
  139. package/dist/hooks/use-layout-preference.d.cts +10 -0
  140. package/dist/hooks/use-layout-preference.d.ts +10 -0
  141. package/dist/hooks/use-layout-preference.js +51 -0
  142. package/dist/hooks/use-mobile.cjs +7 -0
  143. package/dist/hooks/use-mobile.d.cts +3 -0
  144. package/dist/hooks/use-mobile.d.ts +3 -0
  145. package/dist/hooks/use-mobile.js +7 -0
  146. package/dist/lib/date-utils.cjs +15 -0
  147. package/dist/lib/date-utils.d.cts +16 -0
  148. package/dist/lib/date-utils.d.ts +16 -0
  149. package/dist/lib/date-utils.js +14 -0
  150. package/dist/lib/filter-types.cjs +161 -0
  151. package/dist/lib/filter-types.d.cts +60 -0
  152. package/dist/lib/filter-types.d.ts +60 -0
  153. package/dist/lib/filter-types.js +160 -0
  154. package/dist/lib/neutral-theme.cjs +238 -0
  155. package/dist/lib/neutral-theme.d.cts +92 -0
  156. package/dist/lib/neutral-theme.d.ts +92 -0
  157. package/dist/lib/neutral-theme.js +236 -0
  158. package/dist/lib/status-colors.cjs +18 -0
  159. package/dist/lib/status-colors.d.cts +76 -0
  160. package/dist/lib/status-colors.d.ts +76 -0
  161. package/dist/lib/status-colors.js +17 -0
  162. package/dist/lib/utils.cjs +9 -0
  163. package/dist/lib/utils.d.cts +9 -0
  164. package/dist/lib/utils.d.ts +9 -0
  165. package/dist/lib/utils.js +8 -0
  166. package/dist/primitives/action-dock.cjs +8 -0
  167. package/dist/primitives/action-dock.d.cts +10 -0
  168. package/dist/primitives/action-dock.d.ts +10 -0
  169. package/dist/primitives/action-dock.js +8 -0
  170. package/dist/primitives/activity-feed.cjs +177 -0
  171. package/dist/primitives/activity-feed.d.cts +78 -0
  172. package/dist/primitives/activity-feed.d.ts +78 -0
  173. package/dist/primitives/activity-feed.js +177 -0
  174. package/dist/primitives/activity-log.cjs +79 -0
  175. package/dist/primitives/activity-log.d.cts +55 -0
  176. package/dist/primitives/activity-log.d.ts +55 -0
  177. package/dist/primitives/activity-log.js +79 -0
  178. package/dist/primitives/agent-comment.cjs +39 -0
  179. package/dist/primitives/agent-comment.d.cts +33 -0
  180. package/dist/primitives/agent-comment.d.ts +33 -0
  181. package/dist/primitives/agent-comment.js +39 -0
  182. package/dist/primitives/alert-dialog.cjs +30 -0
  183. package/dist/primitives/alert-dialog.d.cts +23 -0
  184. package/dist/primitives/alert-dialog.d.ts +23 -0
  185. package/dist/primitives/alert-dialog.js +30 -0
  186. package/dist/primitives/alert.cjs +12 -0
  187. package/dist/primitives/alert.d.cts +26 -0
  188. package/dist/primitives/alert.d.ts +26 -0
  189. package/dist/primitives/alert.js +12 -0
  190. package/dist/primitives/anchor-target.cjs +13 -0
  191. package/dist/primitives/anchor-target.d.cts +7 -0
  192. package/dist/primitives/anchor-target.d.ts +7 -0
  193. package/dist/primitives/anchor-target.js +13 -0
  194. package/dist/primitives/anchor.cjs +35 -0
  195. package/dist/primitives/anchor.d.cts +16 -0
  196. package/dist/primitives/anchor.d.ts +16 -0
  197. package/dist/primitives/anchor.js +35 -0
  198. package/dist/primitives/archive-confirmation-dialog.cjs +50 -0
  199. package/dist/primitives/archive-confirmation-dialog.d.cts +12 -0
  200. package/dist/primitives/archive-confirmation-dialog.d.ts +12 -0
  201. package/dist/primitives/archive-confirmation-dialog.js +50 -0
  202. package/dist/primitives/aspect-ratio.cjs +8 -0
  203. package/dist/primitives/aspect-ratio.d.cts +6 -0
  204. package/dist/primitives/aspect-ratio.d.ts +6 -0
  205. package/dist/primitives/aspect-ratio.js +8 -0
  206. package/dist/primitives/attachment.cjs +25 -0
  207. package/dist/primitives/attachment.d.cts +28 -0
  208. package/dist/primitives/attachment.d.ts +28 -0
  209. package/dist/primitives/attachment.js +25 -0
  210. package/dist/primitives/avatar.cjs +12 -0
  211. package/dist/primitives/avatar.d.cts +22 -0
  212. package/dist/primitives/avatar.d.ts +22 -0
  213. package/dist/primitives/avatar.js +12 -0
  214. package/dist/primitives/badge.cjs +10 -0
  215. package/dist/primitives/badge.d.cts +27 -0
  216. package/dist/primitives/badge.d.ts +27 -0
  217. package/dist/primitives/badge.js +10 -0
  218. package/dist/primitives/board-view-internals.cjs +16 -0
  219. package/dist/primitives/board-view-internals.d.cts +33 -0
  220. package/dist/primitives/board-view-internals.d.ts +33 -0
  221. package/dist/primitives/board-view-internals.js +16 -0
  222. package/dist/primitives/board-view.cjs +108 -0
  223. package/dist/primitives/board-view.d.cts +39 -0
  224. package/dist/primitives/board-view.d.ts +39 -0
  225. package/dist/primitives/board-view.js +108 -0
  226. package/dist/primitives/browser-preview.cjs +62 -0
  227. package/dist/primitives/browser-preview.d.cts +41 -0
  228. package/dist/primitives/browser-preview.d.ts +41 -0
  229. package/dist/primitives/browser-preview.js +62 -0
  230. package/dist/primitives/bubble.cjs +14 -0
  231. package/dist/primitives/bubble.d.cts +21 -0
  232. package/dist/primitives/bubble.d.ts +21 -0
  233. package/dist/primitives/bubble.js +14 -0
  234. package/dist/primitives/button.cjs +10 -0
  235. package/dist/primitives/button.d.cts +32 -0
  236. package/dist/primitives/button.d.ts +32 -0
  237. package/dist/primitives/button.js +10 -0
  238. package/dist/primitives/calendar.cjs +11 -0
  239. package/dist/primitives/calendar.d.cts +13 -0
  240. package/dist/primitives/calendar.d.ts +13 -0
  241. package/dist/primitives/calendar.js +11 -0
  242. package/dist/primitives/call-card.cjs +195 -0
  243. package/dist/primitives/call-card.d.cts +86 -0
  244. package/dist/primitives/call-card.d.ts +86 -0
  245. package/dist/primitives/call-card.js +195 -0
  246. package/dist/primitives/callout.cjs +8 -0
  247. package/dist/primitives/callout.d.cts +41 -0
  248. package/dist/primitives/callout.d.ts +41 -0
  249. package/dist/primitives/callout.js +8 -0
  250. package/dist/primitives/card.cjs +18 -0
  251. package/dist/primitives/card.d.cts +55 -0
  252. package/dist/primitives/card.d.ts +55 -0
  253. package/dist/primitives/card.js +18 -0
  254. package/dist/primitives/chat.cjs +864 -0
  255. package/dist/primitives/chat.d.cts +326 -0
  256. package/dist/primitives/chat.d.ts +326 -0
  257. package/dist/primitives/chat.js +864 -0
  258. package/dist/primitives/checkbox.cjs +8 -0
  259. package/dist/primitives/checkbox.d.cts +20 -0
  260. package/dist/primitives/checkbox.d.ts +20 -0
  261. package/dist/primitives/checkbox.js +8 -0
  262. package/dist/primitives/chip-tabs.cjs +10 -0
  263. package/dist/primitives/chip-tabs.d.cts +39 -0
  264. package/dist/primitives/chip-tabs.d.ts +39 -0
  265. package/dist/primitives/chip-tabs.js +10 -0
  266. package/dist/primitives/code-block.cjs +56 -0
  267. package/dist/primitives/code-block.d.cts +35 -0
  268. package/dist/primitives/code-block.d.ts +35 -0
  269. package/dist/primitives/code-block.js +56 -0
  270. package/dist/primitives/collapsible-section.cjs +69 -0
  271. package/dist/primitives/collapsible-section.d.cts +24 -0
  272. package/dist/primitives/collapsible-section.d.ts +24 -0
  273. package/dist/primitives/collapsible-section.js +69 -0
  274. package/dist/primitives/collapsible.cjs +12 -0
  275. package/dist/primitives/collapsible.d.cts +14 -0
  276. package/dist/primitives/collapsible.d.ts +14 -0
  277. package/dist/primitives/collapsible.js +12 -0
  278. package/dist/primitives/compact-app-shell.cjs +40 -0
  279. package/dist/primitives/compact-app-shell.d.cts +12 -0
  280. package/dist/primitives/compact-app-shell.d.ts +12 -0
  281. package/dist/primitives/compact-app-shell.js +40 -0
  282. package/dist/primitives/compact-log.cjs +39 -0
  283. package/dist/primitives/compact-log.d.cts +19 -0
  284. package/dist/primitives/compact-log.d.ts +19 -0
  285. package/dist/primitives/compact-log.js +39 -0
  286. package/dist/primitives/confirm-bar.cjs +101 -0
  287. package/dist/primitives/confirm-bar.d.cts +60 -0
  288. package/dist/primitives/confirm-bar.d.ts +60 -0
  289. package/dist/primitives/confirm-bar.js +101 -0
  290. package/dist/primitives/connection-status-bar.cjs +243 -0
  291. package/dist/primitives/connection-status-bar.d.cts +52 -0
  292. package/dist/primitives/connection-status-bar.d.ts +52 -0
  293. package/dist/primitives/connection-status-bar.js +243 -0
  294. package/dist/primitives/connection.cjs +206 -0
  295. package/dist/primitives/connection.d.cts +126 -0
  296. package/dist/primitives/connection.d.ts +126 -0
  297. package/dist/primitives/connection.js +206 -0
  298. package/dist/primitives/contact-header.cjs +60 -0
  299. package/dist/primitives/contact-header.d.cts +54 -0
  300. package/dist/primitives/contact-header.d.ts +54 -0
  301. package/dist/primitives/contact-header.js +60 -0
  302. package/dist/primitives/copy-button.cjs +10 -0
  303. package/dist/primitives/copy-button.d.cts +21 -0
  304. package/dist/primitives/copy-button.d.ts +21 -0
  305. package/dist/primitives/copy-button.js +10 -0
  306. package/dist/primitives/count-badge.cjs +9 -0
  307. package/dist/primitives/count-badge.d.cts +21 -0
  308. package/dist/primitives/count-badge.d.ts +21 -0
  309. package/dist/primitives/count-badge.js +9 -0
  310. package/dist/primitives/decision-actions.cjs +66 -0
  311. package/dist/primitives/decision-actions.d.cts +31 -0
  312. package/dist/primitives/decision-actions.d.ts +31 -0
  313. package/dist/primitives/decision-actions.js +66 -0
  314. package/dist/primitives/definition-list.cjs +65 -0
  315. package/dist/primitives/definition-list.d.cts +23 -0
  316. package/dist/primitives/definition-list.d.ts +23 -0
  317. package/dist/primitives/definition-list.js +65 -0
  318. package/dist/primitives/delete-confirmation-dialog.cjs +11 -0
  319. package/dist/primitives/delete-confirmation-dialog.d.cts +23 -0
  320. package/dist/primitives/delete-confirmation-dialog.d.ts +23 -0
  321. package/dist/primitives/delete-confirmation-dialog.js +11 -0
  322. package/dist/primitives/dialog.cjs +26 -0
  323. package/dist/primitives/dialog.d.cts +44 -0
  324. package/dist/primitives/dialog.d.ts +44 -0
  325. package/dist/primitives/dialog.js +26 -0
  326. package/dist/primitives/drawer.cjs +26 -0
  327. package/dist/primitives/drawer.d.cts +36 -0
  328. package/dist/primitives/drawer.d.ts +36 -0
  329. package/dist/primitives/drawer.js +26 -0
  330. package/dist/primitives/dropdown-menu.cjs +36 -0
  331. package/dist/primitives/dropdown-menu.d.cts +34 -0
  332. package/dist/primitives/dropdown-menu.d.ts +34 -0
  333. package/dist/primitives/dropdown-menu.js +36 -0
  334. package/dist/primitives/editable-list.cjs +108 -0
  335. package/dist/primitives/editable-list.d.cts +23 -0
  336. package/dist/primitives/editable-list.d.ts +23 -0
  337. package/dist/primitives/editable-list.js +108 -0
  338. package/dist/primitives/empty-state.cjs +9 -0
  339. package/dist/primitives/empty-state.d.cts +54 -0
  340. package/dist/primitives/empty-state.d.ts +54 -0
  341. package/dist/primitives/empty-state.js +9 -0
  342. package/dist/primitives/eyebrow.cjs +8 -0
  343. package/dist/primitives/eyebrow.d.cts +21 -0
  344. package/dist/primitives/eyebrow.d.ts +21 -0
  345. package/dist/primitives/eyebrow.js +8 -0
  346. package/dist/primitives/feature-empty-state.cjs +133 -0
  347. package/dist/primitives/feature-empty-state.d.cts +42 -0
  348. package/dist/primitives/feature-empty-state.d.ts +42 -0
  349. package/dist/primitives/feature-empty-state.js +133 -0
  350. package/dist/primitives/field.cjs +260 -0
  351. package/dist/primitives/field.d.cts +43 -0
  352. package/dist/primitives/field.d.ts +43 -0
  353. package/dist/primitives/field.js +260 -0
  354. package/dist/primitives/file-dropzone.cjs +12 -0
  355. package/dist/primitives/file-dropzone.d.cts +36 -0
  356. package/dist/primitives/file-dropzone.d.ts +36 -0
  357. package/dist/primitives/file-dropzone.js +12 -0
  358. package/dist/primitives/filter-bar.cjs +20 -0
  359. package/dist/primitives/filter-bar.d.cts +25 -0
  360. package/dist/primitives/filter-bar.d.ts +25 -0
  361. package/dist/primitives/filter-bar.js +20 -0
  362. package/dist/primitives/flex-item.cjs +34 -0
  363. package/dist/primitives/flex-item.d.cts +18 -0
  364. package/dist/primitives/flex-item.d.ts +18 -0
  365. package/dist/primitives/flex-item.js +34 -0
  366. package/dist/primitives/grid.cjs +47 -0
  367. package/dist/primitives/grid.d.cts +18 -0
  368. package/dist/primitives/grid.d.ts +18 -0
  369. package/dist/primitives/grid.js +47 -0
  370. package/dist/primitives/heading.cjs +8 -0
  371. package/dist/primitives/heading.d.cts +28 -0
  372. package/dist/primitives/heading.d.ts +28 -0
  373. package/dist/primitives/heading.js +8 -0
  374. package/dist/primitives/hidden-control.cjs +13 -0
  375. package/dist/primitives/hidden-control.d.cts +7 -0
  376. package/dist/primitives/hidden-control.d.ts +7 -0
  377. package/dist/primitives/hidden-control.js +13 -0
  378. package/dist/primitives/icon.cjs +8 -0
  379. package/dist/primitives/icon.d.cts +22 -0
  380. package/dist/primitives/icon.d.ts +22 -0
  381. package/dist/primitives/icon.js +8 -0
  382. package/dist/primitives/image.cjs +52 -0
  383. package/dist/primitives/image.d.cts +21 -0
  384. package/dist/primitives/image.d.ts +21 -0
  385. package/dist/primitives/image.js +52 -0
  386. package/dist/primitives/inline-code.cjs +34 -0
  387. package/dist/primitives/inline-code.d.cts +15 -0
  388. package/dist/primitives/inline-code.d.ts +15 -0
  389. package/dist/primitives/inline-code.js +34 -0
  390. package/dist/primitives/input-group.cjs +21 -0
  391. package/dist/primitives/input-group.d.cts +20 -0
  392. package/dist/primitives/input-group.d.ts +20 -0
  393. package/dist/primitives/input-group.js +21 -0
  394. package/dist/primitives/input.cjs +8 -0
  395. package/dist/primitives/input.d.cts +23 -0
  396. package/dist/primitives/input.d.ts +23 -0
  397. package/dist/primitives/input.js +8 -0
  398. package/dist/primitives/inset.cjs +20 -0
  399. package/dist/primitives/inset.d.cts +12 -0
  400. package/dist/primitives/inset.d.ts +12 -0
  401. package/dist/primitives/inset.js +20 -0
  402. package/dist/primitives/interactive-card.cjs +11 -0
  403. package/dist/primitives/interactive-card.d.cts +68 -0
  404. package/dist/primitives/interactive-card.d.ts +68 -0
  405. package/dist/primitives/interactive-card.js +11 -0
  406. package/dist/primitives/item.cjs +197 -0
  407. package/dist/primitives/item.d.cts +28 -0
  408. package/dist/primitives/item.d.ts +28 -0
  409. package/dist/primitives/item.js +197 -0
  410. package/dist/primitives/label.cjs +8 -0
  411. package/dist/primitives/label.d.cts +12 -0
  412. package/dist/primitives/label.d.ts +12 -0
  413. package/dist/primitives/label.js +8 -0
  414. package/dist/primitives/lazy-markdown.cjs +10 -0
  415. package/dist/primitives/lazy-markdown.d.cts +20 -0
  416. package/dist/primitives/lazy-markdown.d.ts +20 -0
  417. package/dist/primitives/lazy-markdown.js +10 -0
  418. package/dist/primitives/line-break.cjs +10 -0
  419. package/dist/primitives/line-break.d.cts +6 -0
  420. package/dist/primitives/line-break.d.ts +6 -0
  421. package/dist/primitives/line-break.js +10 -0
  422. package/dist/primitives/list.cjs +68 -0
  423. package/dist/primitives/list.d.cts +35 -0
  424. package/dist/primitives/list.d.ts +35 -0
  425. package/dist/primitives/list.js +68 -0
  426. package/dist/primitives/load-more-button.cjs +10 -0
  427. package/dist/primitives/load-more-button.d.cts +42 -0
  428. package/dist/primitives/load-more-button.d.ts +42 -0
  429. package/dist/primitives/load-more-button.js +10 -0
  430. package/dist/primitives/loading.cjs +10 -0
  431. package/dist/primitives/loading.d.cts +5 -0
  432. package/dist/primitives/loading.d.ts +5 -0
  433. package/dist/primitives/loading.js +10 -0
  434. package/dist/primitives/markdown.cjs +17 -0
  435. package/dist/primitives/markdown.d.cts +32 -0
  436. package/dist/primitives/markdown.d.ts +32 -0
  437. package/dist/primitives/markdown.js +17 -0
  438. package/dist/primitives/marker.cjs +14 -0
  439. package/dist/primitives/marker.d.cts +15 -0
  440. package/dist/primitives/marker.d.ts +15 -0
  441. package/dist/primitives/marker.js +14 -0
  442. package/dist/primitives/message-scroller.cjs +26 -0
  443. package/dist/primitives/message-scroller.d.cts +16 -0
  444. package/dist/primitives/message-scroller.d.ts +16 -0
  445. package/dist/primitives/message-scroller.js +26 -0
  446. package/dist/primitives/message.cjs +18 -0
  447. package/dist/primitives/message.d.cts +13 -0
  448. package/dist/primitives/message.d.ts +13 -0
  449. package/dist/primitives/message.js +18 -0
  450. package/dist/primitives/native-select.cjs +33 -0
  451. package/dist/primitives/native-select.d.cts +15 -0
  452. package/dist/primitives/native-select.d.ts +15 -0
  453. package/dist/primitives/native-select.js +33 -0
  454. package/dist/primitives/page-header-actions.cjs +11 -0
  455. package/dist/primitives/page-header-actions.d.cts +49 -0
  456. package/dist/primitives/page-header-actions.d.ts +49 -0
  457. package/dist/primitives/page-header-actions.js +11 -0
  458. package/dist/primitives/page-header.cjs +72 -0
  459. package/dist/primitives/page-header.d.cts +40 -0
  460. package/dist/primitives/page-header.d.ts +40 -0
  461. package/dist/primitives/page-header.js +72 -0
  462. package/dist/primitives/page-shell.cjs +46 -0
  463. package/dist/primitives/page-shell.d.cts +44 -0
  464. package/dist/primitives/page-shell.d.ts +44 -0
  465. package/dist/primitives/page-shell.js +46 -0
  466. package/dist/primitives/page-tabs.cjs +63 -0
  467. package/dist/primitives/page-tabs.d.cts +28 -0
  468. package/dist/primitives/page-tabs.d.ts +28 -0
  469. package/dist/primitives/page-tabs.js +63 -0
  470. package/dist/primitives/panel-section.cjs +52 -0
  471. package/dist/primitives/panel-section.d.cts +20 -0
  472. package/dist/primitives/panel-section.d.ts +20 -0
  473. package/dist/primitives/panel-section.js +52 -0
  474. package/dist/primitives/person-avatar.cjs +57 -0
  475. package/dist/primitives/person-avatar.d.cts +33 -0
  476. package/dist/primitives/person-avatar.d.ts +33 -0
  477. package/dist/primitives/person-avatar.js +57 -0
  478. package/dist/primitives/phone.cjs +69 -0
  479. package/dist/primitives/phone.d.cts +50 -0
  480. package/dist/primitives/phone.d.ts +50 -0
  481. package/dist/primitives/phone.js +69 -0
  482. package/dist/primitives/popover.cjs +12 -0
  483. package/dist/primitives/popover.d.cts +14 -0
  484. package/dist/primitives/popover.d.ts +14 -0
  485. package/dist/primitives/popover.js +12 -0
  486. package/dist/primitives/progress.cjs +31 -0
  487. package/dist/primitives/progress.d.cts +6 -0
  488. package/dist/primitives/progress.d.ts +6 -0
  489. package/dist/primitives/progress.js +31 -0
  490. package/dist/primitives/quick-filters.cjs +10 -0
  491. package/dist/primitives/quick-filters.d.cts +36 -0
  492. package/dist/primitives/quick-filters.d.ts +36 -0
  493. package/dist/primitives/quick-filters.js +10 -0
  494. package/dist/primitives/radio-group.cjs +46 -0
  495. package/dist/primitives/radio-group.d.cts +7 -0
  496. package/dist/primitives/radio-group.d.ts +7 -0
  497. package/dist/primitives/radio-group.js +46 -0
  498. package/dist/primitives/resource-card.cjs +104 -0
  499. package/dist/primitives/resource-card.d.cts +93 -0
  500. package/dist/primitives/resource-card.d.ts +93 -0
  501. package/dist/primitives/resource-card.js +104 -0
  502. package/dist/primitives/resource-list.cjs +28 -0
  503. package/dist/primitives/resource-list.d.cts +103 -0
  504. package/dist/primitives/resource-list.d.ts +103 -0
  505. package/dist/primitives/resource-list.js +28 -0
  506. package/dist/primitives/responsive-dialog.cjs +142 -0
  507. package/dist/primitives/responsive-dialog.d.cts +56 -0
  508. package/dist/primitives/responsive-dialog.d.ts +56 -0
  509. package/dist/primitives/responsive-dialog.js +142 -0
  510. package/dist/primitives/responsive-view.cjs +29 -0
  511. package/dist/primitives/responsive-view.d.cts +10 -0
  512. package/dist/primitives/responsive-view.d.ts +10 -0
  513. package/dist/primitives/responsive-view.js +29 -0
  514. package/dist/primitives/rich-text.cjs +8 -0
  515. package/dist/primitives/rich-text.d.cts +14 -0
  516. package/dist/primitives/rich-text.d.ts +14 -0
  517. package/dist/primitives/rich-text.js +8 -0
  518. package/dist/primitives/scroll-area.cjs +10 -0
  519. package/dist/primitives/scroll-area.d.cts +13 -0
  520. package/dist/primitives/scroll-area.d.ts +13 -0
  521. package/dist/primitives/scroll-area.js +10 -0
  522. package/dist/primitives/section-header.cjs +51 -0
  523. package/dist/primitives/section-header.d.cts +22 -0
  524. package/dist/primitives/section-header.d.ts +22 -0
  525. package/dist/primitives/section-header.js +51 -0
  526. package/dist/primitives/section.cjs +39 -0
  527. package/dist/primitives/section.d.cts +22 -0
  528. package/dist/primitives/section.d.ts +22 -0
  529. package/dist/primitives/section.js +39 -0
  530. package/dist/primitives/select.cjs +26 -0
  531. package/dist/primitives/select.d.cts +25 -0
  532. package/dist/primitives/select.d.ts +25 -0
  533. package/dist/primitives/select.js +26 -0
  534. package/dist/primitives/selection-overlay.cjs +24 -0
  535. package/dist/primitives/selection-overlay.d.cts +7 -0
  536. package/dist/primitives/selection-overlay.d.ts +7 -0
  537. package/dist/primitives/selection-overlay.js +24 -0
  538. package/dist/primitives/sentiment-dot.cjs +15 -0
  539. package/dist/primitives/sentiment-dot.d.cts +42 -0
  540. package/dist/primitives/sentiment-dot.d.ts +42 -0
  541. package/dist/primitives/sentiment-dot.js +15 -0
  542. package/dist/primitives/separator.cjs +8 -0
  543. package/dist/primitives/separator.d.cts +9 -0
  544. package/dist/primitives/separator.d.ts +9 -0
  545. package/dist/primitives/separator.js +8 -0
  546. package/dist/primitives/sheet.cjs +27 -0
  547. package/dist/primitives/sheet.d.cts +48 -0
  548. package/dist/primitives/sheet.d.ts +48 -0
  549. package/dist/primitives/sheet.js +27 -0
  550. package/dist/primitives/skeleton.cjs +8 -0
  551. package/dist/primitives/skeleton.d.cts +15 -0
  552. package/dist/primitives/skeleton.d.ts +15 -0
  553. package/dist/primitives/skeleton.js +8 -0
  554. package/dist/primitives/spacer.cjs +20 -0
  555. package/dist/primitives/spacer.d.cts +11 -0
  556. package/dist/primitives/spacer.d.ts +11 -0
  557. package/dist/primitives/spacer.js +20 -0
  558. package/dist/primitives/spinner.cjs +23 -0
  559. package/dist/primitives/spinner.d.cts +6 -0
  560. package/dist/primitives/spinner.d.ts +6 -0
  561. package/dist/primitives/spinner.js +23 -0
  562. package/dist/primitives/split-action-button.cjs +95 -0
  563. package/dist/primitives/split-action-button.d.cts +41 -0
  564. package/dist/primitives/split-action-button.d.ts +41 -0
  565. package/dist/primitives/split-action-button.js +95 -0
  566. package/dist/primitives/stack.cjs +8 -0
  567. package/dist/primitives/stack.d.cts +63 -0
  568. package/dist/primitives/stack.d.ts +63 -0
  569. package/dist/primitives/stack.js +8 -0
  570. package/dist/primitives/status-badge.cjs +9 -0
  571. package/dist/primitives/status-badge.d.cts +20 -0
  572. package/dist/primitives/status-badge.d.ts +20 -0
  573. package/dist/primitives/status-badge.js +9 -0
  574. package/dist/primitives/status-icon-tile.cjs +32 -0
  575. package/dist/primitives/status-icon-tile.d.cts +12 -0
  576. package/dist/primitives/status-icon-tile.d.ts +12 -0
  577. package/dist/primitives/status-icon-tile.js +32 -0
  578. package/dist/primitives/status-icon.cjs +8 -0
  579. package/dist/primitives/status-icon.d.cts +18 -0
  580. package/dist/primitives/status-icon.d.ts +18 -0
  581. package/dist/primitives/status-icon.js +8 -0
  582. package/dist/primitives/status-panel.cjs +83 -0
  583. package/dist/primitives/status-panel.d.cts +25 -0
  584. package/dist/primitives/status-panel.d.ts +25 -0
  585. package/dist/primitives/status-panel.js +83 -0
  586. package/dist/primitives/suggestion.cjs +11 -0
  587. package/dist/primitives/suggestion.d.cts +19 -0
  588. package/dist/primitives/suggestion.d.ts +19 -0
  589. package/dist/primitives/suggestion.js +11 -0
  590. package/dist/primitives/switch-field.cjs +44 -0
  591. package/dist/primitives/switch-field.d.cts +17 -0
  592. package/dist/primitives/switch-field.d.ts +17 -0
  593. package/dist/primitives/switch-field.js +44 -0
  594. package/dist/primitives/switch.cjs +8 -0
  595. package/dist/primitives/switch.d.cts +6 -0
  596. package/dist/primitives/switch.d.ts +6 -0
  597. package/dist/primitives/switch.js +8 -0
  598. package/dist/primitives/tabs.cjs +14 -0
  599. package/dist/primitives/tabs.d.cts +36 -0
  600. package/dist/primitives/tabs.d.ts +36 -0
  601. package/dist/primitives/tabs.js +14 -0
  602. package/dist/primitives/tag-input.cjs +90 -0
  603. package/dist/primitives/tag-input.d.cts +13 -0
  604. package/dist/primitives/tag-input.d.ts +13 -0
  605. package/dist/primitives/tag-input.js +90 -0
  606. package/dist/primitives/text.cjs +8 -0
  607. package/dist/primitives/text.d.cts +51 -0
  608. package/dist/primitives/text.d.ts +51 -0
  609. package/dist/primitives/text.js +8 -0
  610. package/dist/primitives/textarea.cjs +8 -0
  611. package/dist/primitives/textarea.d.cts +12 -0
  612. package/dist/primitives/textarea.d.ts +12 -0
  613. package/dist/primitives/textarea.js +8 -0
  614. package/dist/primitives/thinking-screen.cjs +87 -0
  615. package/dist/primitives/thinking-screen.d.cts +46 -0
  616. package/dist/primitives/thinking-screen.d.ts +46 -0
  617. package/dist/primitives/thinking-screen.js +87 -0
  618. package/dist/primitives/timeline.cjs +13 -0
  619. package/dist/primitives/timeline.d.cts +54 -0
  620. package/dist/primitives/timeline.d.ts +54 -0
  621. package/dist/primitives/timeline.js +13 -0
  622. package/dist/primitives/toggle-group.cjs +51 -0
  623. package/dist/primitives/toggle-group.d.cts +18 -0
  624. package/dist/primitives/toggle-group.d.ts +18 -0
  625. package/dist/primitives/toggle-group.js +51 -0
  626. package/dist/primitives/toggle.cjs +10 -0
  627. package/dist/primitives/toggle.d.cts +15 -0
  628. package/dist/primitives/toggle.d.ts +15 -0
  629. package/dist/primitives/toggle.js +10 -0
  630. package/dist/primitives/tooltip.cjs +14 -0
  631. package/dist/primitives/tooltip.d.cts +9 -0
  632. package/dist/primitives/tooltip.d.ts +9 -0
  633. package/dist/primitives/tooltip.js +14 -0
  634. package/dist/primitives/trace.cjs +23 -0
  635. package/dist/primitives/trace.d.cts +22 -0
  636. package/dist/primitives/trace.d.ts +22 -0
  637. package/dist/primitives/trace.js +23 -0
  638. package/dist/primitives/voice-dictation-button.cjs +10 -0
  639. package/dist/primitives/voice-dictation-button.d.cts +41 -0
  640. package/dist/primitives/voice-dictation-button.d.ts +41 -0
  641. package/dist/primitives/voice-dictation-button.js +10 -0
  642. package/package.json +1366 -3
  643. package/src/styles/components/attachment.css +61 -0
  644. package/src/styles/components/bubble.css +81 -0
  645. package/src/styles/components/marker.css +27 -0
  646. package/src/styles/components/message-scroller.css +11 -0
  647. package/src/styles/components/message.css +29 -0
  648. package/src/styles/components.css +6 -0
  649. package/src/styles/globals.css +10 -0
  650. package/src/styles/keyframes.css +26 -0
  651. package/src/styles/palette.gen.css +150 -0
  652. package/src/styles/shadcn.css +631 -0
  653. package/src/styles/source.css +4 -0
  654. package/src/styles/tokens/base.css +36 -0
  655. package/src/styles/tokens/container.css +9 -0
  656. package/src/styles/tokens/forms.css +61 -0
  657. package/src/styles/tokens/theme.css +93 -0
  658. package/src/styles/tokens.css +17 -0
  659. package/src/styles/utilities.css +10 -0
@@ -0,0 +1,195 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }"use client";
2
+ "use client";
3
+
4
+
5
+ var _chunk6T2EULKNcjs = require('../chunk-6T2EULKN.cjs');
6
+
7
+
8
+ var _chunk373W6VADcjs = require('../chunk-373W6VAD.cjs');
9
+
10
+
11
+
12
+
13
+ var _chunkW5HPHEE7cjs = require('../chunk-W5HPHEE7.cjs');
14
+
15
+
16
+
17
+
18
+ var _chunkWABCLRBRcjs = require('../chunk-WABCLRBR.cjs');
19
+
20
+
21
+ var _chunkVBPPFC7Xcjs = require('../chunk-VBPPFC7X.cjs');
22
+
23
+
24
+ var _chunkKWLSBTB2cjs = require('../chunk-KWLSBTB2.cjs');
25
+
26
+ // src/primitives/call-card.tsx
27
+ var _react = require('react');
28
+ var _lucidereact = require('lucide-react');
29
+ var _jsxruntime = require('react/jsx-runtime');
30
+ var CallCard = _react.forwardRef.call(void 0,
31
+ function CallCard2({
32
+ title,
33
+ source,
34
+ timestamp,
35
+ duration,
36
+ participants,
37
+ summary,
38
+ summaryClampLines = 4,
39
+ segments,
40
+ transcript,
41
+ headerAside,
42
+ actions,
43
+ transcriptLabel = "Show transcript",
44
+ defaultTranscriptOpen = false,
45
+ transcriptOpen,
46
+ onTranscriptOpenChange,
47
+ onLoadTranscript,
48
+ loading = false,
49
+ className
50
+ }, ref) {
51
+ const [internalOpen, setInternalOpen] = _react.useState.call(void 0, defaultTranscriptOpen);
52
+ const [loadedOnce, setLoadedOnce] = _react.useState.call(void 0, defaultTranscriptOpen);
53
+ const open = _nullishCoalesce(transcriptOpen, () => ( internalOpen));
54
+ const summaryRef = _react.useRef.call(void 0, null);
55
+ const [summaryExpanded, setSummaryExpanded] = _react.useState.call(void 0, false);
56
+ const [summaryOverflows, setSummaryOverflows] = _react.useState.call(void 0, false);
57
+ _react.useEffect.call(void 0, () => {
58
+ const el = summaryRef.current;
59
+ if (el) setSummaryOverflows(el.scrollHeight - el.clientHeight > 4);
60
+ }, [summary]);
61
+ function handleOpenChange(next) {
62
+ if (next && !loadedOnce) {
63
+ setLoadedOnce(true);
64
+ _optionalChain([onLoadTranscript, 'optionalCall', _ => _()]);
65
+ }
66
+ if (transcriptOpen === void 0) setInternalOpen(next);
67
+ _optionalChain([onTranscriptOpenChange, 'optionalCall', _2 => _2(next)]);
68
+ }
69
+ const meta = [timestamp, source, duration].filter(Boolean);
70
+ const hasTranscript = segments && segments.length > 0 || transcript != null;
71
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
72
+ "div",
73
+ {
74
+ ref,
75
+ className: _chunkKWLSBTB2cjs.cn.call(void 0,
76
+ "overflow-hidden rounded-xl border border-border bg-card text-card-foreground",
77
+ className
78
+ ),
79
+ children: [
80
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-start gap-3 p-4 md:p-5", children: [
81
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
82
+ "span",
83
+ {
84
+ className: "grid h-9 w-9 shrink-0 place-items-center rounded-full bg-muted text-muted-foreground",
85
+ "aria-hidden": true,
86
+ children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.PhoneCall, { className: "h-4 w-4" })
87
+ }
88
+ ),
89
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "min-w-0 flex-1", children: [
90
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-start justify-between gap-2", children: [
91
+ loading ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVBPPFC7Xcjs.Skeleton, { className: "h-4 w-40" }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h3", { className: "min-w-0 flex-1 truncate text-sm font-semibold leading-tight", children: _nullishCoalesce(title, () => ( "Untitled call")) }),
92
+ headerAside && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "-mt-1 shrink-0", children: headerAside })
93
+ ] }),
94
+ meta.length > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "mt-1 truncate text-xs text-muted-foreground", children: meta.map((m, i) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { children: [
95
+ i > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "px-1.5 opacity-50", children: "\xB7" }),
96
+ m
97
+ ] }, i)) })
98
+ ] })
99
+ ] }),
100
+ participants && participants.length > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex flex-wrap gap-x-5 gap-y-3 border-t border-border px-4 py-3 md:px-5", children: participants.map((p, i) => {
101
+ const label = p.name || p.email || "Unknown";
102
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-w-0 items-center gap-2", children: [
103
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkWABCLRBRcjs.Avatar, { className: "h-7 w-7 text-[10px]", children: [
104
+ p.avatarUrl ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkWABCLRBRcjs.AvatarImage, { src: p.avatarUrl, alt: label }) : null,
105
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkWABCLRBRcjs.AvatarFallback, { children: initials(label) })
106
+ ] }),
107
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "min-w-0 leading-tight", children: [
108
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "truncate text-sm font-medium", children: label }),
109
+ p.email && p.name && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "truncate text-xs text-muted-foreground", children: p.email })
110
+ ] })
111
+ ] }, i);
112
+ }) }),
113
+ (summary || loading && !title) && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "border-t border-border px-4 py-3 md:px-5", children: [
114
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk6T2EULKNcjs.Eyebrow, { className: "mb-1.5", children: "Summary" }),
115
+ loading ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-1.5", children: [
116
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVBPPFC7Xcjs.Skeleton, { className: "h-3 w-full" }),
117
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVBPPFC7Xcjs.Skeleton, { className: "h-3 w-4/5" })
118
+ ] }) : /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
119
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
120
+ "div",
121
+ {
122
+ ref: summaryRef,
123
+ className: "whitespace-pre-wrap text-sm leading-relaxed text-muted-foreground",
124
+ style: summaryExpanded ? void 0 : {
125
+ display: "-webkit-box",
126
+ WebkitLineClamp: summaryClampLines,
127
+ WebkitBoxOrient: "vertical",
128
+ overflow: "hidden"
129
+ },
130
+ children: summary
131
+ }
132
+ ),
133
+ summaryOverflows && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
134
+ "button",
135
+ {
136
+ type: "button",
137
+ onClick: () => setSummaryExpanded((v) => !v),
138
+ className: "mt-1.5 text-xs font-medium text-muted-foreground transition-colors hover:text-foreground",
139
+ children: summaryExpanded ? "Show less" : "Show more"
140
+ }
141
+ )
142
+ ] })
143
+ ] }),
144
+ hasTranscript && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
145
+ _chunkW5HPHEE7cjs.Collapsible,
146
+ {
147
+ open,
148
+ onOpenChange: handleOpenChange,
149
+ className: "border-t border-border",
150
+ children: [
151
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkW5HPHEE7cjs.CollapsibleTrigger, { asChild: true, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
152
+ "button",
153
+ {
154
+ type: "button",
155
+ className: "flex w-full items-center gap-1.5 px-4 py-3 text-xs font-medium text-muted-foreground transition-colors hover:text-foreground md:px-5",
156
+ children: [
157
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
158
+ _lucidereact.ChevronRight,
159
+ {
160
+ className: _chunkKWLSBTB2cjs.cn.call(void 0,
161
+ "h-3.5 w-3.5 transition-transform",
162
+ open && "rotate-90"
163
+ )
164
+ }
165
+ ),
166
+ open ? "Hide transcript" : transcriptLabel
167
+ ]
168
+ }
169
+ ) }),
170
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkW5HPHEE7cjs.CollapsibleContent, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "max-h-80 space-y-3 overflow-y-auto px-4 pb-4 md:px-5", children: segments && segments.length > 0 ? segments.map((s, i) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { children: [
171
+ s.speaker && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-xs font-semibold text-foreground", children: s.speaker }),
172
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "mt-0.5 whitespace-pre-wrap text-sm leading-relaxed text-muted-foreground", children: s.text })
173
+ ] }, i)) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
174
+ _chunk373W6VADcjs.Text,
175
+ {
176
+ variant: "muted",
177
+ className: "whitespace-pre-wrap text-sm leading-relaxed",
178
+ children: transcript
179
+ }
180
+ ) }) })
181
+ ]
182
+ }
183
+ ),
184
+ actions && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex flex-wrap items-center justify-end gap-2 border-t border-border bg-muted/30 px-4 py-3 md:px-5", children: actions })
185
+ ]
186
+ }
187
+ );
188
+ }
189
+ );
190
+ function initials(value) {
191
+ return value.split(/\s+/).filter(Boolean).slice(0, 2).map((w) => w[0]).join("").toUpperCase();
192
+ }
193
+
194
+
195
+ exports.CallCard = CallCard;
@@ -0,0 +1,86 @@
1
+ import * as React from 'react';
2
+ import { ReactNode } from 'react';
3
+
4
+ interface CallParticipant {
5
+ /** Display name. Falls back to email when absent. */
6
+ name?: string;
7
+ /** Email, shown muted under the name. */
8
+ email?: string;
9
+ /** Avatar image; initials are used when omitted. */
10
+ avatarUrl?: string | null;
11
+ }
12
+ interface CallSegment {
13
+ /** Who is speaking this turn. */
14
+ speaker: string;
15
+ /** What they said. */
16
+ text: string;
17
+ }
18
+ interface CallCardProps {
19
+ /** Call title, e.g. "Weekly catch up". */
20
+ title?: ReactNode;
21
+ /** Provider label, e.g. "Meeting notes". */
22
+ source?: ReactNode;
23
+ /** Pre-formatted date/time — anything renderable. */
24
+ timestamp?: ReactNode;
25
+ /** Optional duration, e.g. "32 min". */
26
+ duration?: ReactNode;
27
+ /** Who was on the call. Rendered as avatar + name (+ muted email). */
28
+ participants?: CallParticipant[];
29
+ /**
30
+ * Short, human summary — the gist of the call. Kept visually distinct
31
+ * from the transcript (it is NOT a raw transcript snippet). Long summaries
32
+ * (e.g. a notes provider's full write-up) are clamped with a "Show more" toggle.
33
+ */
34
+ summary?: ReactNode;
35
+ /** Lines of summary shown before the "Show more" clamp. Default 4. */
36
+ summaryClampLines?: number;
37
+ /** Speaker-labelled turns — the formatted transcript. */
38
+ segments?: CallSegment[];
39
+ /** Flat transcript fallback, used when there are no `segments`. */
40
+ transcript?: ReactNode;
41
+ /** Top-right slot — a status Badge or a quiet action (Dismiss / overflow). */
42
+ headerAside?: ReactNode;
43
+ /** Footer action row (Attach, Unlink, …). Right-aligned, on a tinted bar. */
44
+ actions?: ReactNode;
45
+ /** Transcript trigger label when collapsed. Default "Show transcript". */
46
+ transcriptLabel?: string;
47
+ /** Uncontrolled initial open state for the transcript. */
48
+ defaultTranscriptOpen?: boolean;
49
+ /** Controlled transcript open state. */
50
+ transcriptOpen?: boolean;
51
+ onTranscriptOpenChange?: (open: boolean) => void;
52
+ /** Fired the first time the transcript expands — lazy-load the content. */
53
+ onLoadTranscript?: () => void;
54
+ /** Skeleton placeholder while the call loads. */
55
+ loading?: boolean;
56
+ className?: string;
57
+ }
58
+ /**
59
+ * CallCard — the cross-app representation of a recorded call: a sectioned
60
+ * card with a clear hierarchy of title → who was on it → summary → transcript
61
+ * → actions. Built so every "calls" surface across the product family reads
62
+ * the same, instead of each app re-stacking divs.
63
+ *
64
+ * Why sections (header / participants / summary / transcript / actions) instead
65
+ * of one block: a call answers five questions — what, who, the gist, the detail,
66
+ * and what can I do — and each deserves its own weight. The transcript is lazy
67
+ * (`onLoadTranscript`) because it's often fetched on demand. The summary is a
68
+ * first-class slot, never the raw transcript text.
69
+ *
70
+ * ```tsx
71
+ * <CallCard
72
+ * title="Weekly catch up"
73
+ * source="Meeting notes"
74
+ * timestamp="14 May 2026"
75
+ * participants={[{ name: "Jane Doe", email: "jane@example.com" }]}
76
+ * summary="Agreed next steps and a follow-up date."
77
+ * segments={segments}
78
+ * onLoadTranscript={fetchTranscript}
79
+ * headerAside={<Button variant="ghost" size="sm">Dismiss</Button>}
80
+ * actions={<Button size="sm">Attach</Button>}
81
+ * />
82
+ * ```
83
+ */
84
+ declare const CallCard: React.ForwardRefExoticComponent<CallCardProps & React.RefAttributes<HTMLDivElement>>;
85
+
86
+ export { CallCard, type CallCardProps, type CallParticipant, type CallSegment };
@@ -0,0 +1,86 @@
1
+ import * as React from 'react';
2
+ import { ReactNode } from 'react';
3
+
4
+ interface CallParticipant {
5
+ /** Display name. Falls back to email when absent. */
6
+ name?: string;
7
+ /** Email, shown muted under the name. */
8
+ email?: string;
9
+ /** Avatar image; initials are used when omitted. */
10
+ avatarUrl?: string | null;
11
+ }
12
+ interface CallSegment {
13
+ /** Who is speaking this turn. */
14
+ speaker: string;
15
+ /** What they said. */
16
+ text: string;
17
+ }
18
+ interface CallCardProps {
19
+ /** Call title, e.g. "Weekly catch up". */
20
+ title?: ReactNode;
21
+ /** Provider label, e.g. "Meeting notes". */
22
+ source?: ReactNode;
23
+ /** Pre-formatted date/time — anything renderable. */
24
+ timestamp?: ReactNode;
25
+ /** Optional duration, e.g. "32 min". */
26
+ duration?: ReactNode;
27
+ /** Who was on the call. Rendered as avatar + name (+ muted email). */
28
+ participants?: CallParticipant[];
29
+ /**
30
+ * Short, human summary — the gist of the call. Kept visually distinct
31
+ * from the transcript (it is NOT a raw transcript snippet). Long summaries
32
+ * (e.g. a notes provider's full write-up) are clamped with a "Show more" toggle.
33
+ */
34
+ summary?: ReactNode;
35
+ /** Lines of summary shown before the "Show more" clamp. Default 4. */
36
+ summaryClampLines?: number;
37
+ /** Speaker-labelled turns — the formatted transcript. */
38
+ segments?: CallSegment[];
39
+ /** Flat transcript fallback, used when there are no `segments`. */
40
+ transcript?: ReactNode;
41
+ /** Top-right slot — a status Badge or a quiet action (Dismiss / overflow). */
42
+ headerAside?: ReactNode;
43
+ /** Footer action row (Attach, Unlink, …). Right-aligned, on a tinted bar. */
44
+ actions?: ReactNode;
45
+ /** Transcript trigger label when collapsed. Default "Show transcript". */
46
+ transcriptLabel?: string;
47
+ /** Uncontrolled initial open state for the transcript. */
48
+ defaultTranscriptOpen?: boolean;
49
+ /** Controlled transcript open state. */
50
+ transcriptOpen?: boolean;
51
+ onTranscriptOpenChange?: (open: boolean) => void;
52
+ /** Fired the first time the transcript expands — lazy-load the content. */
53
+ onLoadTranscript?: () => void;
54
+ /** Skeleton placeholder while the call loads. */
55
+ loading?: boolean;
56
+ className?: string;
57
+ }
58
+ /**
59
+ * CallCard — the cross-app representation of a recorded call: a sectioned
60
+ * card with a clear hierarchy of title → who was on it → summary → transcript
61
+ * → actions. Built so every "calls" surface across the product family reads
62
+ * the same, instead of each app re-stacking divs.
63
+ *
64
+ * Why sections (header / participants / summary / transcript / actions) instead
65
+ * of one block: a call answers five questions — what, who, the gist, the detail,
66
+ * and what can I do — and each deserves its own weight. The transcript is lazy
67
+ * (`onLoadTranscript`) because it's often fetched on demand. The summary is a
68
+ * first-class slot, never the raw transcript text.
69
+ *
70
+ * ```tsx
71
+ * <CallCard
72
+ * title="Weekly catch up"
73
+ * source="Meeting notes"
74
+ * timestamp="14 May 2026"
75
+ * participants={[{ name: "Jane Doe", email: "jane@example.com" }]}
76
+ * summary="Agreed next steps and a follow-up date."
77
+ * segments={segments}
78
+ * onLoadTranscript={fetchTranscript}
79
+ * headerAside={<Button variant="ghost" size="sm">Dismiss</Button>}
80
+ * actions={<Button size="sm">Attach</Button>}
81
+ * />
82
+ * ```
83
+ */
84
+ declare const CallCard: React.ForwardRefExoticComponent<CallCardProps & React.RefAttributes<HTMLDivElement>>;
85
+
86
+ export { CallCard, type CallCardProps, type CallParticipant, type CallSegment };
@@ -0,0 +1,195 @@
1
+ "use client";
2
+ "use client";
3
+ import {
4
+ Eyebrow
5
+ } from "../chunk-LIE6W3QT.js";
6
+ import {
7
+ Text
8
+ } from "../chunk-EIY5LLSP.js";
9
+ import {
10
+ Collapsible,
11
+ CollapsibleContent,
12
+ CollapsibleTrigger
13
+ } from "../chunk-NBUWGRQO.js";
14
+ import {
15
+ Avatar,
16
+ AvatarFallback,
17
+ AvatarImage
18
+ } from "../chunk-3OWGL4Q2.js";
19
+ import {
20
+ Skeleton
21
+ } from "../chunk-YEW65ASC.js";
22
+ import {
23
+ cn
24
+ } from "../chunk-G6SRSWXB.js";
25
+
26
+ // src/primitives/call-card.tsx
27
+ import { forwardRef, useEffect, useRef, useState } from "react";
28
+ import { ChevronRight, PhoneCall } from "lucide-react";
29
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
30
+ var CallCard = forwardRef(
31
+ function CallCard2({
32
+ title,
33
+ source,
34
+ timestamp,
35
+ duration,
36
+ participants,
37
+ summary,
38
+ summaryClampLines = 4,
39
+ segments,
40
+ transcript,
41
+ headerAside,
42
+ actions,
43
+ transcriptLabel = "Show transcript",
44
+ defaultTranscriptOpen = false,
45
+ transcriptOpen,
46
+ onTranscriptOpenChange,
47
+ onLoadTranscript,
48
+ loading = false,
49
+ className
50
+ }, ref) {
51
+ const [internalOpen, setInternalOpen] = useState(defaultTranscriptOpen);
52
+ const [loadedOnce, setLoadedOnce] = useState(defaultTranscriptOpen);
53
+ const open = transcriptOpen ?? internalOpen;
54
+ const summaryRef = useRef(null);
55
+ const [summaryExpanded, setSummaryExpanded] = useState(false);
56
+ const [summaryOverflows, setSummaryOverflows] = useState(false);
57
+ useEffect(() => {
58
+ const el = summaryRef.current;
59
+ if (el) setSummaryOverflows(el.scrollHeight - el.clientHeight > 4);
60
+ }, [summary]);
61
+ function handleOpenChange(next) {
62
+ if (next && !loadedOnce) {
63
+ setLoadedOnce(true);
64
+ onLoadTranscript?.();
65
+ }
66
+ if (transcriptOpen === void 0) setInternalOpen(next);
67
+ onTranscriptOpenChange?.(next);
68
+ }
69
+ const meta = [timestamp, source, duration].filter(Boolean);
70
+ const hasTranscript = segments && segments.length > 0 || transcript != null;
71
+ return /* @__PURE__ */ jsxs(
72
+ "div",
73
+ {
74
+ ref,
75
+ className: cn(
76
+ "overflow-hidden rounded-xl border border-border bg-card text-card-foreground",
77
+ className
78
+ ),
79
+ children: [
80
+ /* @__PURE__ */ jsxs("div", { className: "flex items-start gap-3 p-4 md:p-5", children: [
81
+ /* @__PURE__ */ jsx(
82
+ "span",
83
+ {
84
+ className: "grid h-9 w-9 shrink-0 place-items-center rounded-full bg-muted text-muted-foreground",
85
+ "aria-hidden": true,
86
+ children: /* @__PURE__ */ jsx(PhoneCall, { className: "h-4 w-4" })
87
+ }
88
+ ),
89
+ /* @__PURE__ */ jsxs("div", { className: "min-w-0 flex-1", children: [
90
+ /* @__PURE__ */ jsxs("div", { className: "flex items-start justify-between gap-2", children: [
91
+ loading ? /* @__PURE__ */ jsx(Skeleton, { className: "h-4 w-40" }) : /* @__PURE__ */ jsx("h3", { className: "min-w-0 flex-1 truncate text-sm font-semibold leading-tight", children: title ?? "Untitled call" }),
92
+ headerAside && /* @__PURE__ */ jsx("div", { className: "-mt-1 shrink-0", children: headerAside })
93
+ ] }),
94
+ meta.length > 0 && /* @__PURE__ */ jsx("p", { className: "mt-1 truncate text-xs text-muted-foreground", children: meta.map((m, i) => /* @__PURE__ */ jsxs("span", { children: [
95
+ i > 0 && /* @__PURE__ */ jsx("span", { className: "px-1.5 opacity-50", children: "\xB7" }),
96
+ m
97
+ ] }, i)) })
98
+ ] })
99
+ ] }),
100
+ participants && participants.length > 0 && /* @__PURE__ */ jsx("div", { className: "flex flex-wrap gap-x-5 gap-y-3 border-t border-border px-4 py-3 md:px-5", children: participants.map((p, i) => {
101
+ const label = p.name || p.email || "Unknown";
102
+ return /* @__PURE__ */ jsxs("div", { className: "flex min-w-0 items-center gap-2", children: [
103
+ /* @__PURE__ */ jsxs(Avatar, { className: "h-7 w-7 text-[10px]", children: [
104
+ p.avatarUrl ? /* @__PURE__ */ jsx(AvatarImage, { src: p.avatarUrl, alt: label }) : null,
105
+ /* @__PURE__ */ jsx(AvatarFallback, { children: initials(label) })
106
+ ] }),
107
+ /* @__PURE__ */ jsxs("div", { className: "min-w-0 leading-tight", children: [
108
+ /* @__PURE__ */ jsx("p", { className: "truncate text-sm font-medium", children: label }),
109
+ p.email && p.name && /* @__PURE__ */ jsx("p", { className: "truncate text-xs text-muted-foreground", children: p.email })
110
+ ] })
111
+ ] }, i);
112
+ }) }),
113
+ (summary || loading && !title) && /* @__PURE__ */ jsxs("div", { className: "border-t border-border px-4 py-3 md:px-5", children: [
114
+ /* @__PURE__ */ jsx(Eyebrow, { className: "mb-1.5", children: "Summary" }),
115
+ loading ? /* @__PURE__ */ jsxs("div", { className: "space-y-1.5", children: [
116
+ /* @__PURE__ */ jsx(Skeleton, { className: "h-3 w-full" }),
117
+ /* @__PURE__ */ jsx(Skeleton, { className: "h-3 w-4/5" })
118
+ ] }) : /* @__PURE__ */ jsxs(Fragment, { children: [
119
+ /* @__PURE__ */ jsx(
120
+ "div",
121
+ {
122
+ ref: summaryRef,
123
+ className: "whitespace-pre-wrap text-sm leading-relaxed text-muted-foreground",
124
+ style: summaryExpanded ? void 0 : {
125
+ display: "-webkit-box",
126
+ WebkitLineClamp: summaryClampLines,
127
+ WebkitBoxOrient: "vertical",
128
+ overflow: "hidden"
129
+ },
130
+ children: summary
131
+ }
132
+ ),
133
+ summaryOverflows && /* @__PURE__ */ jsx(
134
+ "button",
135
+ {
136
+ type: "button",
137
+ onClick: () => setSummaryExpanded((v) => !v),
138
+ className: "mt-1.5 text-xs font-medium text-muted-foreground transition-colors hover:text-foreground",
139
+ children: summaryExpanded ? "Show less" : "Show more"
140
+ }
141
+ )
142
+ ] })
143
+ ] }),
144
+ hasTranscript && /* @__PURE__ */ jsxs(
145
+ Collapsible,
146
+ {
147
+ open,
148
+ onOpenChange: handleOpenChange,
149
+ className: "border-t border-border",
150
+ children: [
151
+ /* @__PURE__ */ jsx(CollapsibleTrigger, { asChild: true, children: /* @__PURE__ */ jsxs(
152
+ "button",
153
+ {
154
+ type: "button",
155
+ className: "flex w-full items-center gap-1.5 px-4 py-3 text-xs font-medium text-muted-foreground transition-colors hover:text-foreground md:px-5",
156
+ children: [
157
+ /* @__PURE__ */ jsx(
158
+ ChevronRight,
159
+ {
160
+ className: cn(
161
+ "h-3.5 w-3.5 transition-transform",
162
+ open && "rotate-90"
163
+ )
164
+ }
165
+ ),
166
+ open ? "Hide transcript" : transcriptLabel
167
+ ]
168
+ }
169
+ ) }),
170
+ /* @__PURE__ */ jsx(CollapsibleContent, { children: /* @__PURE__ */ jsx("div", { className: "max-h-80 space-y-3 overflow-y-auto px-4 pb-4 md:px-5", children: segments && segments.length > 0 ? segments.map((s, i) => /* @__PURE__ */ jsxs("div", { children: [
171
+ s.speaker && /* @__PURE__ */ jsx("p", { className: "text-xs font-semibold text-foreground", children: s.speaker }),
172
+ /* @__PURE__ */ jsx("p", { className: "mt-0.5 whitespace-pre-wrap text-sm leading-relaxed text-muted-foreground", children: s.text })
173
+ ] }, i)) : /* @__PURE__ */ jsx(
174
+ Text,
175
+ {
176
+ variant: "muted",
177
+ className: "whitespace-pre-wrap text-sm leading-relaxed",
178
+ children: transcript
179
+ }
180
+ ) }) })
181
+ ]
182
+ }
183
+ ),
184
+ actions && /* @__PURE__ */ jsx("div", { className: "flex flex-wrap items-center justify-end gap-2 border-t border-border bg-muted/30 px-4 py-3 md:px-5", children: actions })
185
+ ]
186
+ }
187
+ );
188
+ }
189
+ );
190
+ function initials(value) {
191
+ return value.split(/\s+/).filter(Boolean).slice(0, 2).map((w) => w[0]).join("").toUpperCase();
192
+ }
193
+ export {
194
+ CallCard
195
+ };
@@ -0,0 +1,8 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});"use client";
2
+
3
+
4
+ var _chunkCTYOW3V2cjs = require('../chunk-CTYOW3V2.cjs');
5
+ require('../chunk-KWLSBTB2.cjs');
6
+
7
+
8
+ exports.Callout = _chunkCTYOW3V2cjs.Callout;
@@ -0,0 +1,41 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import { ReactNode } from 'react';
3
+
4
+ type CalloutPointer = "top" | "top-left" | "top-right" | "bottom" | "bottom-left" | "bottom-right" | "left" | "right";
5
+ type CalloutPadding = "none" | "sm" | "compact" | "md" | "lg";
6
+ interface CalloutProps {
7
+ /**
8
+ * Optional pointer (small triangle on the edge) tying the callout to
9
+ * a related element on the page. Omit for a standalone well.
10
+ *
11
+ * - `top` / `bottom` / `left` / `right` — centered on that edge
12
+ * - `top-left`, `top-right`, etc — aligned near the start/end of the edge
13
+ */
14
+ pointer?: CalloutPointer;
15
+ /** Internal padding. Defaults to `md`. */
16
+ padding?: CalloutPadding;
17
+ children: ReactNode;
18
+ className?: string;
19
+ tone?: "default" | "warning";
20
+ marginBottom?: "none" | "md";
21
+ textSize?: "inherit" | "micro";
22
+ }
23
+ /**
24
+ * A muted well/card with an optional pointer triangle, used to visually
25
+ * tie a block of related content to a target element on the page.
26
+ *
27
+ * Common uses:
28
+ * - Suggestion / example pills under an input (pointer="top")
29
+ * - Inline help text under a form field (pointer="top")
30
+ * - Quick-action chips after a state change ("nice — what next?")
31
+ * - Onboarding nudges that point at a specific UI element
32
+ *
33
+ * Pointer-less callouts are valid too — drop the `pointer` prop for a
34
+ * generic muted well that just groups related content.
35
+ *
36
+ * Styling: subtle border + `bg-muted/40` so it reads as related-to
37
+ * rather than primary content. Override via `className`.
38
+ */
39
+ declare function Callout({ pointer, padding, children, className, tone, marginBottom, textSize, }: CalloutProps): react_jsx_runtime.JSX.Element;
40
+
41
+ export { Callout, type CalloutPadding, type CalloutPointer, type CalloutProps };
@@ -0,0 +1,41 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import { ReactNode } from 'react';
3
+
4
+ type CalloutPointer = "top" | "top-left" | "top-right" | "bottom" | "bottom-left" | "bottom-right" | "left" | "right";
5
+ type CalloutPadding = "none" | "sm" | "compact" | "md" | "lg";
6
+ interface CalloutProps {
7
+ /**
8
+ * Optional pointer (small triangle on the edge) tying the callout to
9
+ * a related element on the page. Omit for a standalone well.
10
+ *
11
+ * - `top` / `bottom` / `left` / `right` — centered on that edge
12
+ * - `top-left`, `top-right`, etc — aligned near the start/end of the edge
13
+ */
14
+ pointer?: CalloutPointer;
15
+ /** Internal padding. Defaults to `md`. */
16
+ padding?: CalloutPadding;
17
+ children: ReactNode;
18
+ className?: string;
19
+ tone?: "default" | "warning";
20
+ marginBottom?: "none" | "md";
21
+ textSize?: "inherit" | "micro";
22
+ }
23
+ /**
24
+ * A muted well/card with an optional pointer triangle, used to visually
25
+ * tie a block of related content to a target element on the page.
26
+ *
27
+ * Common uses:
28
+ * - Suggestion / example pills under an input (pointer="top")
29
+ * - Inline help text under a form field (pointer="top")
30
+ * - Quick-action chips after a state change ("nice — what next?")
31
+ * - Onboarding nudges that point at a specific UI element
32
+ *
33
+ * Pointer-less callouts are valid too — drop the `pointer` prop for a
34
+ * generic muted well that just groups related content.
35
+ *
36
+ * Styling: subtle border + `bg-muted/40` so it reads as related-to
37
+ * rather than primary content. Override via `className`.
38
+ */
39
+ declare function Callout({ pointer, padding, children, className, tone, marginBottom, textSize, }: CalloutProps): react_jsx_runtime.JSX.Element;
40
+
41
+ export { Callout, type CalloutPadding, type CalloutPointer, type CalloutProps };
@@ -0,0 +1,8 @@
1
+ "use client";
2
+ import {
3
+ Callout
4
+ } from "../chunk-GL5CV4FF.js";
5
+ import "../chunk-G6SRSWXB.js";
6
+ export {
7
+ Callout
8
+ };