@epicbagel/saas-kit 0.0.0-stage → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (580) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +71 -2
  3. package/THIRD_PARTY_NOTICES.md +47 -0
  4. package/dist/chunk-23UMHZ4S.cjs +124 -0
  5. package/dist/chunk-2BHI5ZWJ.cjs +117 -0
  6. package/dist/chunk-2HTYXBDU.cjs +34 -0
  7. package/dist/chunk-2XDFTB2W.cjs +35 -0
  8. package/dist/chunk-35YMAIEL.js +135 -0
  9. package/dist/chunk-373W6VAD.cjs +82 -0
  10. package/dist/chunk-3BZ4CQHW.js +94 -0
  11. package/dist/chunk-3OWGL4Q2.js +65 -0
  12. package/dist/chunk-3QT5VYZ3.js +141 -0
  13. package/dist/chunk-4HWCNRK4.js +117 -0
  14. package/dist/chunk-4LXN6GLZ.cjs +44 -0
  15. package/dist/chunk-4NN7EA3W.js +222 -0
  16. package/dist/chunk-62UTAG2C.js +152 -0
  17. package/dist/chunk-667ZCM4X.cjs +72 -0
  18. package/dist/chunk-6RVPQGYS.js +181 -0
  19. package/dist/chunk-6T2EULKN.cjs +42 -0
  20. package/dist/chunk-7CRDYV3C.js +137 -0
  21. package/dist/chunk-BEJJN2SY.cjs +73 -0
  22. package/dist/chunk-BGLGRUPP.cjs +31 -0
  23. package/dist/chunk-CS7DM3NV.js +98 -0
  24. package/dist/chunk-CTYOW3V2.cjs +59 -0
  25. package/dist/chunk-D4ZL2OEQ.js +61 -0
  26. package/dist/chunk-DFB4ILN6.cjs +137 -0
  27. package/dist/chunk-E2TQMDO7.js +34 -0
  28. package/dist/chunk-EIY5LLSP.js +82 -0
  29. package/dist/chunk-EJP2L5QV.cjs +74 -0
  30. package/dist/chunk-F73ONTCK.js +73 -0
  31. package/dist/chunk-F7JHSZNT.js +73 -0
  32. package/dist/chunk-FJLINIC6.js +48 -0
  33. package/dist/chunk-FLPYZNWZ.js +124 -0
  34. package/dist/chunk-FNDBM67K.cjs +61 -0
  35. package/dist/chunk-G54TQV2R.cjs +222 -0
  36. package/dist/chunk-G6SRSWXB.js +32 -0
  37. package/dist/chunk-G76JANB4.js +138 -0
  38. package/dist/chunk-GL5CV4FF.js +59 -0
  39. package/dist/chunk-GMJWBGTJ.js +34 -0
  40. package/dist/chunk-GRZMUGT6.cjs +94 -0
  41. package/dist/chunk-GXHGMI3Z.cjs +48 -0
  42. package/dist/chunk-H2O6NMLZ.js +52 -0
  43. package/dist/chunk-H2UFRLLN.cjs +100 -0
  44. package/dist/chunk-H7TETFLB.js +39 -0
  45. package/dist/chunk-HQRWRRZJ.js +179 -0
  46. package/dist/chunk-HYSWE75T.js +67 -0
  47. package/dist/chunk-HYTILYE5.js +31 -0
  48. package/dist/chunk-I6GUOEBO.cjs +61 -0
  49. package/dist/chunk-IQZLUT2Y.cjs +34 -0
  50. package/dist/chunk-J3GQXM37.js +61 -0
  51. package/dist/chunk-J6NXDZR5.js +145 -0
  52. package/dist/chunk-JH4GAGOQ.cjs +34 -0
  53. package/dist/chunk-KGFL3VWY.cjs +62 -0
  54. package/dist/chunk-KN4RPX35.js +36 -0
  55. package/dist/chunk-KWLSBTB2.cjs +34 -0
  56. package/dist/chunk-L4DH72UF.cjs +179 -0
  57. package/dist/chunk-LELBCBDT.cjs +52 -0
  58. package/dist/chunk-LELFPLTE.js +55 -0
  59. package/dist/chunk-LI5EOSQG.js +171 -0
  60. package/dist/chunk-LIE6W3QT.js +42 -0
  61. package/dist/chunk-MLHNYRFX.js +411 -0
  62. package/dist/chunk-NBUWGRQO.js +31 -0
  63. package/dist/chunk-NE3ZVJ6G.cjs +67 -0
  64. package/dist/chunk-NQK5ZWC7.cjs +31 -0
  65. package/dist/chunk-NW3OWKBN.js +57 -0
  66. package/dist/chunk-OICAYRVH.js +34 -0
  67. package/dist/chunk-PIU5SSUV.js +25 -0
  68. package/dist/chunk-PNWNU6JW.cjs +171 -0
  69. package/dist/chunk-PPX2VPGI.cjs +138 -0
  70. package/dist/chunk-PQUSJEXL.cjs +51 -0
  71. package/dist/chunk-QD63LB2F.js +62 -0
  72. package/dist/chunk-QMA3WVB7.js +51 -0
  73. package/dist/chunk-QNZYQLNP.js +125 -0
  74. package/dist/chunk-R35FT53G.cjs +25 -0
  75. package/dist/chunk-R3DQS6U4.cjs +135 -0
  76. package/dist/chunk-R4AIM3BQ.js +72 -0
  77. package/dist/chunk-R5L4CM6V.cjs +202 -0
  78. package/dist/chunk-RRRD5EUI.js +202 -0
  79. package/dist/chunk-RSFEKQDR.cjs +181 -0
  80. package/dist/chunk-RWWOFWLP.cjs +510 -0
  81. package/dist/chunk-SGW4FWBX.cjs +411 -0
  82. package/dist/chunk-T2ZFSPE4.cjs +36 -0
  83. package/dist/chunk-U2NES7VR.cjs +32 -0
  84. package/dist/chunk-UGF2K6NR.js +510 -0
  85. package/dist/chunk-V4LE2HWP.js +166 -0
  86. package/dist/chunk-V5SPFLKW.cjs +145 -0
  87. package/dist/chunk-V7542UGX.js +31 -0
  88. package/dist/chunk-VBPPFC7X.cjs +66 -0
  89. package/dist/chunk-VGTINL5Q.cjs +39 -0
  90. package/dist/chunk-VKIGJNJR.cjs +57 -0
  91. package/dist/chunk-W5HPHEE7.cjs +31 -0
  92. package/dist/chunk-W5I4FN7G.cjs +78 -0
  93. package/dist/chunk-WABCLRBR.cjs +65 -0
  94. package/dist/chunk-WDXEJDMO.cjs +141 -0
  95. package/dist/chunk-WNXVGUBF.cjs +40 -0
  96. package/dist/chunk-WQJKUKBL.cjs +125 -0
  97. package/dist/chunk-XAPPU3MD.js +35 -0
  98. package/dist/chunk-XLIAY56V.cjs +55 -0
  99. package/dist/chunk-YEW65ASC.js +66 -0
  100. package/dist/chunk-YG7FBJRM.js +40 -0
  101. package/dist/chunk-YWAQRAXP.js +78 -0
  102. package/dist/chunk-YYFVG5A6.cjs +152 -0
  103. package/dist/chunk-ZAITUDYD.cjs +166 -0
  104. package/dist/chunk-ZRLUUZHK.js +32 -0
  105. package/dist/chunk-ZWZAAGQF.js +44 -0
  106. package/dist/hooks/use-copy-to-clipboard.cjs +7 -0
  107. package/dist/hooks/use-copy-to-clipboard.d.cts +12 -0
  108. package/dist/hooks/use-copy-to-clipboard.d.ts +12 -0
  109. package/dist/hooks/use-copy-to-clipboard.js +7 -0
  110. package/dist/hooks/use-layout-preference.cjs +51 -0
  111. package/dist/hooks/use-layout-preference.d.cts +10 -0
  112. package/dist/hooks/use-layout-preference.d.ts +10 -0
  113. package/dist/hooks/use-layout-preference.js +51 -0
  114. package/dist/hooks/use-mobile.cjs +7 -0
  115. package/dist/hooks/use-mobile.d.cts +3 -0
  116. package/dist/hooks/use-mobile.d.ts +3 -0
  117. package/dist/hooks/use-mobile.js +7 -0
  118. package/dist/lib/date-utils.cjs +15 -0
  119. package/dist/lib/date-utils.d.cts +16 -0
  120. package/dist/lib/date-utils.d.ts +16 -0
  121. package/dist/lib/date-utils.js +14 -0
  122. package/dist/lib/filter-types.cjs +161 -0
  123. package/dist/lib/filter-types.d.cts +60 -0
  124. package/dist/lib/filter-types.d.ts +60 -0
  125. package/dist/lib/filter-types.js +160 -0
  126. package/dist/lib/neutral-theme.cjs +238 -0
  127. package/dist/lib/neutral-theme.d.cts +92 -0
  128. package/dist/lib/neutral-theme.d.ts +92 -0
  129. package/dist/lib/neutral-theme.js +236 -0
  130. package/dist/lib/status-colors.cjs +18 -0
  131. package/dist/lib/status-colors.d.cts +76 -0
  132. package/dist/lib/status-colors.d.ts +76 -0
  133. package/dist/lib/status-colors.js +17 -0
  134. package/dist/lib/utils.cjs +9 -0
  135. package/dist/lib/utils.d.cts +9 -0
  136. package/dist/lib/utils.d.ts +9 -0
  137. package/dist/lib/utils.js +8 -0
  138. package/dist/primitives/activity-feed.cjs +177 -0
  139. package/dist/primitives/activity-feed.d.cts +78 -0
  140. package/dist/primitives/activity-feed.d.ts +78 -0
  141. package/dist/primitives/activity-feed.js +177 -0
  142. package/dist/primitives/activity-log.cjs +79 -0
  143. package/dist/primitives/activity-log.d.cts +55 -0
  144. package/dist/primitives/activity-log.d.ts +55 -0
  145. package/dist/primitives/activity-log.js +79 -0
  146. package/dist/primitives/agent-comment.cjs +39 -0
  147. package/dist/primitives/agent-comment.d.cts +33 -0
  148. package/dist/primitives/agent-comment.d.ts +33 -0
  149. package/dist/primitives/agent-comment.js +39 -0
  150. package/dist/primitives/alert-dialog.cjs +30 -0
  151. package/dist/primitives/alert-dialog.d.cts +23 -0
  152. package/dist/primitives/alert-dialog.d.ts +23 -0
  153. package/dist/primitives/alert-dialog.js +30 -0
  154. package/dist/primitives/alert.cjs +12 -0
  155. package/dist/primitives/alert.d.cts +26 -0
  156. package/dist/primitives/alert.d.ts +26 -0
  157. package/dist/primitives/alert.js +12 -0
  158. package/dist/primitives/anchor-target.cjs +13 -0
  159. package/dist/primitives/anchor-target.d.cts +7 -0
  160. package/dist/primitives/anchor-target.d.ts +7 -0
  161. package/dist/primitives/anchor-target.js +13 -0
  162. package/dist/primitives/anchor.cjs +35 -0
  163. package/dist/primitives/anchor.d.cts +16 -0
  164. package/dist/primitives/anchor.d.ts +16 -0
  165. package/dist/primitives/anchor.js +35 -0
  166. package/dist/primitives/archive-confirmation-dialog.cjs +50 -0
  167. package/dist/primitives/archive-confirmation-dialog.d.cts +12 -0
  168. package/dist/primitives/archive-confirmation-dialog.d.ts +12 -0
  169. package/dist/primitives/archive-confirmation-dialog.js +50 -0
  170. package/dist/primitives/aspect-ratio.cjs +8 -0
  171. package/dist/primitives/aspect-ratio.d.cts +6 -0
  172. package/dist/primitives/aspect-ratio.d.ts +6 -0
  173. package/dist/primitives/aspect-ratio.js +8 -0
  174. package/dist/primitives/attachment.cjs +203 -0
  175. package/dist/primitives/attachment.d.cts +28 -0
  176. package/dist/primitives/attachment.d.ts +28 -0
  177. package/dist/primitives/attachment.js +203 -0
  178. package/dist/primitives/avatar.cjs +12 -0
  179. package/dist/primitives/avatar.d.cts +22 -0
  180. package/dist/primitives/avatar.d.ts +22 -0
  181. package/dist/primitives/avatar.js +12 -0
  182. package/dist/primitives/badge.cjs +10 -0
  183. package/dist/primitives/badge.d.cts +27 -0
  184. package/dist/primitives/badge.d.ts +27 -0
  185. package/dist/primitives/badge.js +10 -0
  186. package/dist/primitives/board-view-internals.cjs +16 -0
  187. package/dist/primitives/board-view-internals.d.cts +33 -0
  188. package/dist/primitives/board-view-internals.d.ts +33 -0
  189. package/dist/primitives/board-view-internals.js +16 -0
  190. package/dist/primitives/board-view.cjs +108 -0
  191. package/dist/primitives/board-view.d.cts +39 -0
  192. package/dist/primitives/board-view.d.ts +39 -0
  193. package/dist/primitives/board-view.js +108 -0
  194. package/dist/primitives/browser-preview.cjs +62 -0
  195. package/dist/primitives/browser-preview.d.cts +41 -0
  196. package/dist/primitives/browser-preview.d.ts +41 -0
  197. package/dist/primitives/browser-preview.js +62 -0
  198. package/dist/primitives/button.cjs +10 -0
  199. package/dist/primitives/button.d.cts +32 -0
  200. package/dist/primitives/button.d.ts +32 -0
  201. package/dist/primitives/button.js +10 -0
  202. package/dist/primitives/calendar.cjs +11 -0
  203. package/dist/primitives/calendar.d.cts +13 -0
  204. package/dist/primitives/calendar.d.ts +13 -0
  205. package/dist/primitives/calendar.js +11 -0
  206. package/dist/primitives/call-card.cjs +195 -0
  207. package/dist/primitives/call-card.d.cts +86 -0
  208. package/dist/primitives/call-card.d.ts +86 -0
  209. package/dist/primitives/call-card.js +195 -0
  210. package/dist/primitives/callout.cjs +8 -0
  211. package/dist/primitives/callout.d.cts +41 -0
  212. package/dist/primitives/callout.d.ts +41 -0
  213. package/dist/primitives/callout.js +8 -0
  214. package/dist/primitives/card.cjs +18 -0
  215. package/dist/primitives/card.d.cts +55 -0
  216. package/dist/primitives/card.d.ts +55 -0
  217. package/dist/primitives/card.js +18 -0
  218. package/dist/primitives/checkbox.cjs +8 -0
  219. package/dist/primitives/checkbox.d.cts +20 -0
  220. package/dist/primitives/checkbox.d.ts +20 -0
  221. package/dist/primitives/checkbox.js +8 -0
  222. package/dist/primitives/chip-tabs.cjs +10 -0
  223. package/dist/primitives/chip-tabs.d.cts +39 -0
  224. package/dist/primitives/chip-tabs.d.ts +39 -0
  225. package/dist/primitives/chip-tabs.js +10 -0
  226. package/dist/primitives/code-block.cjs +56 -0
  227. package/dist/primitives/code-block.d.cts +35 -0
  228. package/dist/primitives/code-block.d.ts +35 -0
  229. package/dist/primitives/code-block.js +56 -0
  230. package/dist/primitives/collapsible-section.cjs +69 -0
  231. package/dist/primitives/collapsible-section.d.cts +24 -0
  232. package/dist/primitives/collapsible-section.d.ts +24 -0
  233. package/dist/primitives/collapsible-section.js +69 -0
  234. package/dist/primitives/collapsible.cjs +12 -0
  235. package/dist/primitives/collapsible.d.cts +14 -0
  236. package/dist/primitives/collapsible.d.ts +14 -0
  237. package/dist/primitives/collapsible.js +12 -0
  238. package/dist/primitives/compact-app-shell.cjs +40 -0
  239. package/dist/primitives/compact-app-shell.d.cts +12 -0
  240. package/dist/primitives/compact-app-shell.d.ts +12 -0
  241. package/dist/primitives/compact-app-shell.js +40 -0
  242. package/dist/primitives/compact-log.cjs +39 -0
  243. package/dist/primitives/compact-log.d.cts +19 -0
  244. package/dist/primitives/compact-log.d.ts +19 -0
  245. package/dist/primitives/compact-log.js +39 -0
  246. package/dist/primitives/confirm-bar.cjs +101 -0
  247. package/dist/primitives/confirm-bar.d.cts +60 -0
  248. package/dist/primitives/confirm-bar.d.ts +60 -0
  249. package/dist/primitives/confirm-bar.js +101 -0
  250. package/dist/primitives/connection-status-bar.cjs +243 -0
  251. package/dist/primitives/connection-status-bar.d.cts +52 -0
  252. package/dist/primitives/connection-status-bar.d.ts +52 -0
  253. package/dist/primitives/connection-status-bar.js +243 -0
  254. package/dist/primitives/connection.cjs +206 -0
  255. package/dist/primitives/connection.d.cts +126 -0
  256. package/dist/primitives/connection.d.ts +126 -0
  257. package/dist/primitives/connection.js +206 -0
  258. package/dist/primitives/contact-header.cjs +60 -0
  259. package/dist/primitives/contact-header.d.cts +54 -0
  260. package/dist/primitives/contact-header.d.ts +54 -0
  261. package/dist/primitives/contact-header.js +60 -0
  262. package/dist/primitives/copy-button.cjs +10 -0
  263. package/dist/primitives/copy-button.d.cts +21 -0
  264. package/dist/primitives/copy-button.d.ts +21 -0
  265. package/dist/primitives/copy-button.js +10 -0
  266. package/dist/primitives/count-badge.cjs +9 -0
  267. package/dist/primitives/count-badge.d.cts +21 -0
  268. package/dist/primitives/count-badge.d.ts +21 -0
  269. package/dist/primitives/count-badge.js +9 -0
  270. package/dist/primitives/decision-actions.cjs +66 -0
  271. package/dist/primitives/decision-actions.d.cts +31 -0
  272. package/dist/primitives/decision-actions.d.ts +31 -0
  273. package/dist/primitives/decision-actions.js +66 -0
  274. package/dist/primitives/definition-list.cjs +65 -0
  275. package/dist/primitives/definition-list.d.cts +23 -0
  276. package/dist/primitives/definition-list.d.ts +23 -0
  277. package/dist/primitives/definition-list.js +65 -0
  278. package/dist/primitives/delete-confirmation-dialog.cjs +11 -0
  279. package/dist/primitives/delete-confirmation-dialog.d.cts +23 -0
  280. package/dist/primitives/delete-confirmation-dialog.d.ts +23 -0
  281. package/dist/primitives/delete-confirmation-dialog.js +11 -0
  282. package/dist/primitives/dialog.cjs +26 -0
  283. package/dist/primitives/dialog.d.cts +44 -0
  284. package/dist/primitives/dialog.d.ts +44 -0
  285. package/dist/primitives/dialog.js +26 -0
  286. package/dist/primitives/drawer.cjs +26 -0
  287. package/dist/primitives/drawer.d.cts +36 -0
  288. package/dist/primitives/drawer.d.ts +36 -0
  289. package/dist/primitives/drawer.js +26 -0
  290. package/dist/primitives/dropdown-menu.cjs +36 -0
  291. package/dist/primitives/dropdown-menu.d.cts +34 -0
  292. package/dist/primitives/dropdown-menu.d.ts +34 -0
  293. package/dist/primitives/dropdown-menu.js +36 -0
  294. package/dist/primitives/editable-list.cjs +108 -0
  295. package/dist/primitives/editable-list.d.cts +23 -0
  296. package/dist/primitives/editable-list.d.ts +23 -0
  297. package/dist/primitives/editable-list.js +108 -0
  298. package/dist/primitives/empty-state.cjs +9 -0
  299. package/dist/primitives/empty-state.d.cts +54 -0
  300. package/dist/primitives/empty-state.d.ts +54 -0
  301. package/dist/primitives/empty-state.js +9 -0
  302. package/dist/primitives/eyebrow.cjs +8 -0
  303. package/dist/primitives/eyebrow.d.cts +21 -0
  304. package/dist/primitives/eyebrow.d.ts +21 -0
  305. package/dist/primitives/eyebrow.js +8 -0
  306. package/dist/primitives/feature-empty-state.cjs +133 -0
  307. package/dist/primitives/feature-empty-state.d.cts +42 -0
  308. package/dist/primitives/feature-empty-state.d.ts +42 -0
  309. package/dist/primitives/feature-empty-state.js +133 -0
  310. package/dist/primitives/field.cjs +260 -0
  311. package/dist/primitives/field.d.cts +43 -0
  312. package/dist/primitives/field.d.ts +43 -0
  313. package/dist/primitives/field.js +260 -0
  314. package/dist/primitives/file-dropzone.cjs +118 -0
  315. package/dist/primitives/file-dropzone.d.cts +36 -0
  316. package/dist/primitives/file-dropzone.d.ts +36 -0
  317. package/dist/primitives/file-dropzone.js +118 -0
  318. package/dist/primitives/filter-bar.cjs +20 -0
  319. package/dist/primitives/filter-bar.d.cts +25 -0
  320. package/dist/primitives/filter-bar.d.ts +25 -0
  321. package/dist/primitives/filter-bar.js +20 -0
  322. package/dist/primitives/flex-item.cjs +34 -0
  323. package/dist/primitives/flex-item.d.cts +18 -0
  324. package/dist/primitives/flex-item.d.ts +18 -0
  325. package/dist/primitives/flex-item.js +34 -0
  326. package/dist/primitives/grid.cjs +47 -0
  327. package/dist/primitives/grid.d.cts +18 -0
  328. package/dist/primitives/grid.d.ts +18 -0
  329. package/dist/primitives/grid.js +47 -0
  330. package/dist/primitives/heading.cjs +8 -0
  331. package/dist/primitives/heading.d.cts +28 -0
  332. package/dist/primitives/heading.d.ts +28 -0
  333. package/dist/primitives/heading.js +8 -0
  334. package/dist/primitives/hidden-control.cjs +13 -0
  335. package/dist/primitives/hidden-control.d.cts +7 -0
  336. package/dist/primitives/hidden-control.d.ts +7 -0
  337. package/dist/primitives/hidden-control.js +13 -0
  338. package/dist/primitives/icon.cjs +8 -0
  339. package/dist/primitives/icon.d.cts +22 -0
  340. package/dist/primitives/icon.d.ts +22 -0
  341. package/dist/primitives/icon.js +8 -0
  342. package/dist/primitives/image.cjs +52 -0
  343. package/dist/primitives/image.d.cts +21 -0
  344. package/dist/primitives/image.d.ts +21 -0
  345. package/dist/primitives/image.js +52 -0
  346. package/dist/primitives/inline-code.cjs +34 -0
  347. package/dist/primitives/inline-code.d.cts +15 -0
  348. package/dist/primitives/inline-code.d.ts +15 -0
  349. package/dist/primitives/inline-code.js +34 -0
  350. package/dist/primitives/input.cjs +8 -0
  351. package/dist/primitives/input.d.cts +23 -0
  352. package/dist/primitives/input.d.ts +23 -0
  353. package/dist/primitives/input.js +8 -0
  354. package/dist/primitives/inset.cjs +20 -0
  355. package/dist/primitives/inset.d.cts +12 -0
  356. package/dist/primitives/inset.d.ts +12 -0
  357. package/dist/primitives/inset.js +20 -0
  358. package/dist/primitives/interactive-card.cjs +11 -0
  359. package/dist/primitives/interactive-card.d.cts +68 -0
  360. package/dist/primitives/interactive-card.d.ts +68 -0
  361. package/dist/primitives/interactive-card.js +11 -0
  362. package/dist/primitives/label.cjs +8 -0
  363. package/dist/primitives/label.d.cts +12 -0
  364. package/dist/primitives/label.d.ts +12 -0
  365. package/dist/primitives/label.js +8 -0
  366. package/dist/primitives/line-break.cjs +10 -0
  367. package/dist/primitives/line-break.d.cts +6 -0
  368. package/dist/primitives/line-break.d.ts +6 -0
  369. package/dist/primitives/line-break.js +10 -0
  370. package/dist/primitives/list.cjs +68 -0
  371. package/dist/primitives/list.d.cts +35 -0
  372. package/dist/primitives/list.d.ts +35 -0
  373. package/dist/primitives/list.js +68 -0
  374. package/dist/primitives/load-more-button.cjs +10 -0
  375. package/dist/primitives/load-more-button.d.cts +42 -0
  376. package/dist/primitives/load-more-button.d.ts +42 -0
  377. package/dist/primitives/load-more-button.js +10 -0
  378. package/dist/primitives/loading.cjs +10 -0
  379. package/dist/primitives/loading.d.cts +5 -0
  380. package/dist/primitives/loading.d.ts +5 -0
  381. package/dist/primitives/loading.js +10 -0
  382. package/dist/primitives/message.cjs +95 -0
  383. package/dist/primitives/message.d.cts +13 -0
  384. package/dist/primitives/message.d.ts +13 -0
  385. package/dist/primitives/message.js +95 -0
  386. package/dist/primitives/native-select.cjs +33 -0
  387. package/dist/primitives/native-select.d.cts +15 -0
  388. package/dist/primitives/native-select.d.ts +15 -0
  389. package/dist/primitives/native-select.js +33 -0
  390. package/dist/primitives/page-header-actions.cjs +11 -0
  391. package/dist/primitives/page-header-actions.d.cts +49 -0
  392. package/dist/primitives/page-header-actions.d.ts +49 -0
  393. package/dist/primitives/page-header-actions.js +11 -0
  394. package/dist/primitives/page-header.cjs +72 -0
  395. package/dist/primitives/page-header.d.cts +40 -0
  396. package/dist/primitives/page-header.d.ts +40 -0
  397. package/dist/primitives/page-header.js +72 -0
  398. package/dist/primitives/page-shell.cjs +46 -0
  399. package/dist/primitives/page-shell.d.cts +44 -0
  400. package/dist/primitives/page-shell.d.ts +44 -0
  401. package/dist/primitives/page-shell.js +46 -0
  402. package/dist/primitives/page-tabs.cjs +63 -0
  403. package/dist/primitives/page-tabs.d.cts +28 -0
  404. package/dist/primitives/page-tabs.d.ts +28 -0
  405. package/dist/primitives/page-tabs.js +63 -0
  406. package/dist/primitives/panel-section.cjs +52 -0
  407. package/dist/primitives/panel-section.d.cts +20 -0
  408. package/dist/primitives/panel-section.d.ts +20 -0
  409. package/dist/primitives/panel-section.js +52 -0
  410. package/dist/primitives/person-avatar.cjs +57 -0
  411. package/dist/primitives/person-avatar.d.cts +33 -0
  412. package/dist/primitives/person-avatar.d.ts +33 -0
  413. package/dist/primitives/person-avatar.js +57 -0
  414. package/dist/primitives/phone.cjs +69 -0
  415. package/dist/primitives/phone.d.cts +50 -0
  416. package/dist/primitives/phone.d.ts +50 -0
  417. package/dist/primitives/phone.js +69 -0
  418. package/dist/primitives/popover.cjs +12 -0
  419. package/dist/primitives/popover.d.cts +14 -0
  420. package/dist/primitives/popover.d.ts +14 -0
  421. package/dist/primitives/popover.js +12 -0
  422. package/dist/primitives/progress.cjs +31 -0
  423. package/dist/primitives/progress.d.cts +6 -0
  424. package/dist/primitives/progress.d.ts +6 -0
  425. package/dist/primitives/progress.js +31 -0
  426. package/dist/primitives/quick-filters.cjs +10 -0
  427. package/dist/primitives/quick-filters.d.cts +36 -0
  428. package/dist/primitives/quick-filters.d.ts +36 -0
  429. package/dist/primitives/quick-filters.js +10 -0
  430. package/dist/primitives/radio-group.cjs +46 -0
  431. package/dist/primitives/radio-group.d.cts +7 -0
  432. package/dist/primitives/radio-group.d.ts +7 -0
  433. package/dist/primitives/radio-group.js +46 -0
  434. package/dist/primitives/resource-card.cjs +104 -0
  435. package/dist/primitives/resource-card.d.cts +93 -0
  436. package/dist/primitives/resource-card.d.ts +93 -0
  437. package/dist/primitives/resource-card.js +104 -0
  438. package/dist/primitives/resource-list.cjs +28 -0
  439. package/dist/primitives/resource-list.d.cts +103 -0
  440. package/dist/primitives/resource-list.d.ts +103 -0
  441. package/dist/primitives/resource-list.js +28 -0
  442. package/dist/primitives/responsive-dialog.cjs +142 -0
  443. package/dist/primitives/responsive-dialog.d.cts +56 -0
  444. package/dist/primitives/responsive-dialog.d.ts +56 -0
  445. package/dist/primitives/responsive-dialog.js +142 -0
  446. package/dist/primitives/responsive-view.cjs +29 -0
  447. package/dist/primitives/responsive-view.d.cts +10 -0
  448. package/dist/primitives/responsive-view.d.ts +10 -0
  449. package/dist/primitives/responsive-view.js +29 -0
  450. package/dist/primitives/rich-text.cjs +43 -0
  451. package/dist/primitives/rich-text.d.cts +14 -0
  452. package/dist/primitives/rich-text.d.ts +14 -0
  453. package/dist/primitives/rich-text.js +43 -0
  454. package/dist/primitives/scroll-area.cjs +10 -0
  455. package/dist/primitives/scroll-area.d.cts +13 -0
  456. package/dist/primitives/scroll-area.d.ts +13 -0
  457. package/dist/primitives/scroll-area.js +10 -0
  458. package/dist/primitives/section-header.cjs +51 -0
  459. package/dist/primitives/section-header.d.cts +22 -0
  460. package/dist/primitives/section-header.d.ts +22 -0
  461. package/dist/primitives/section-header.js +51 -0
  462. package/dist/primitives/section.cjs +39 -0
  463. package/dist/primitives/section.d.cts +22 -0
  464. package/dist/primitives/section.d.ts +22 -0
  465. package/dist/primitives/section.js +39 -0
  466. package/dist/primitives/select.cjs +26 -0
  467. package/dist/primitives/select.d.cts +25 -0
  468. package/dist/primitives/select.d.ts +25 -0
  469. package/dist/primitives/select.js +26 -0
  470. package/dist/primitives/selection-overlay.cjs +24 -0
  471. package/dist/primitives/selection-overlay.d.cts +7 -0
  472. package/dist/primitives/selection-overlay.d.ts +7 -0
  473. package/dist/primitives/selection-overlay.js +24 -0
  474. package/dist/primitives/sentiment-dot.cjs +15 -0
  475. package/dist/primitives/sentiment-dot.d.cts +42 -0
  476. package/dist/primitives/sentiment-dot.d.ts +42 -0
  477. package/dist/primitives/sentiment-dot.js +15 -0
  478. package/dist/primitives/separator.cjs +8 -0
  479. package/dist/primitives/separator.d.cts +9 -0
  480. package/dist/primitives/separator.d.ts +9 -0
  481. package/dist/primitives/separator.js +8 -0
  482. package/dist/primitives/sheet.cjs +27 -0
  483. package/dist/primitives/sheet.d.cts +48 -0
  484. package/dist/primitives/sheet.d.ts +48 -0
  485. package/dist/primitives/sheet.js +27 -0
  486. package/dist/primitives/skeleton.cjs +8 -0
  487. package/dist/primitives/skeleton.d.cts +15 -0
  488. package/dist/primitives/skeleton.d.ts +15 -0
  489. package/dist/primitives/skeleton.js +8 -0
  490. package/dist/primitives/spacer.cjs +20 -0
  491. package/dist/primitives/spacer.d.cts +11 -0
  492. package/dist/primitives/spacer.d.ts +11 -0
  493. package/dist/primitives/spacer.js +20 -0
  494. package/dist/primitives/split-action-button.cjs +95 -0
  495. package/dist/primitives/split-action-button.d.cts +41 -0
  496. package/dist/primitives/split-action-button.d.ts +41 -0
  497. package/dist/primitives/split-action-button.js +95 -0
  498. package/dist/primitives/stack.cjs +8 -0
  499. package/dist/primitives/stack.d.cts +63 -0
  500. package/dist/primitives/stack.d.ts +63 -0
  501. package/dist/primitives/stack.js +8 -0
  502. package/dist/primitives/status-badge.cjs +9 -0
  503. package/dist/primitives/status-badge.d.cts +20 -0
  504. package/dist/primitives/status-badge.d.ts +20 -0
  505. package/dist/primitives/status-badge.js +9 -0
  506. package/dist/primitives/status-icon-tile.cjs +32 -0
  507. package/dist/primitives/status-icon-tile.d.cts +12 -0
  508. package/dist/primitives/status-icon-tile.d.ts +12 -0
  509. package/dist/primitives/status-icon-tile.js +32 -0
  510. package/dist/primitives/status-icon.cjs +8 -0
  511. package/dist/primitives/status-icon.d.cts +18 -0
  512. package/dist/primitives/status-icon.d.ts +18 -0
  513. package/dist/primitives/status-icon.js +8 -0
  514. package/dist/primitives/status-panel.cjs +83 -0
  515. package/dist/primitives/status-panel.d.cts +25 -0
  516. package/dist/primitives/status-panel.d.ts +25 -0
  517. package/dist/primitives/status-panel.js +83 -0
  518. package/dist/primitives/switch-field.cjs +44 -0
  519. package/dist/primitives/switch-field.d.cts +17 -0
  520. package/dist/primitives/switch-field.d.ts +17 -0
  521. package/dist/primitives/switch-field.js +44 -0
  522. package/dist/primitives/switch.cjs +8 -0
  523. package/dist/primitives/switch.d.cts +6 -0
  524. package/dist/primitives/switch.d.ts +6 -0
  525. package/dist/primitives/switch.js +8 -0
  526. package/dist/primitives/tabs.cjs +14 -0
  527. package/dist/primitives/tabs.d.cts +36 -0
  528. package/dist/primitives/tabs.d.ts +36 -0
  529. package/dist/primitives/tabs.js +14 -0
  530. package/dist/primitives/tag-input.cjs +90 -0
  531. package/dist/primitives/tag-input.d.cts +13 -0
  532. package/dist/primitives/tag-input.d.ts +13 -0
  533. package/dist/primitives/tag-input.js +90 -0
  534. package/dist/primitives/text.cjs +8 -0
  535. package/dist/primitives/text.d.cts +51 -0
  536. package/dist/primitives/text.d.ts +51 -0
  537. package/dist/primitives/text.js +8 -0
  538. package/dist/primitives/textarea.cjs +37 -0
  539. package/dist/primitives/textarea.d.cts +12 -0
  540. package/dist/primitives/textarea.d.ts +12 -0
  541. package/dist/primitives/textarea.js +37 -0
  542. package/dist/primitives/thinking-screen.cjs +87 -0
  543. package/dist/primitives/thinking-screen.d.cts +46 -0
  544. package/dist/primitives/thinking-screen.d.ts +46 -0
  545. package/dist/primitives/thinking-screen.js +87 -0
  546. package/dist/primitives/timeline.cjs +13 -0
  547. package/dist/primitives/timeline.d.cts +54 -0
  548. package/dist/primitives/timeline.d.ts +54 -0
  549. package/dist/primitives/timeline.js +13 -0
  550. package/dist/primitives/toggle-group.cjs +51 -0
  551. package/dist/primitives/toggle-group.d.cts +18 -0
  552. package/dist/primitives/toggle-group.d.ts +18 -0
  553. package/dist/primitives/toggle-group.js +51 -0
  554. package/dist/primitives/toggle.cjs +10 -0
  555. package/dist/primitives/toggle.d.cts +15 -0
  556. package/dist/primitives/toggle.d.ts +15 -0
  557. package/dist/primitives/toggle.js +10 -0
  558. package/dist/primitives/tooltip.cjs +14 -0
  559. package/dist/primitives/tooltip.d.cts +9 -0
  560. package/dist/primitives/tooltip.d.ts +9 -0
  561. package/dist/primitives/tooltip.js +14 -0
  562. package/dist/primitives/voice-dictation-button.cjs +244 -0
  563. package/dist/primitives/voice-dictation-button.d.cts +41 -0
  564. package/dist/primitives/voice-dictation-button.d.ts +41 -0
  565. package/dist/primitives/voice-dictation-button.js +244 -0
  566. package/package.json +1243 -3
  567. package/src/styles/components/attachment.css +61 -0
  568. package/src/styles/components/message.css +29 -0
  569. package/src/styles/components.css +3 -0
  570. package/src/styles/globals.css +10 -0
  571. package/src/styles/keyframes.css +26 -0
  572. package/src/styles/palette.gen.css +150 -0
  573. package/src/styles/shadcn.css +631 -0
  574. package/src/styles/source.css +4 -0
  575. package/src/styles/tokens/base.css +36 -0
  576. package/src/styles/tokens/container.css +9 -0
  577. package/src/styles/tokens/forms.css +61 -0
  578. package/src/styles/tokens/theme.css +93 -0
  579. package/src/styles/tokens.css +17 -0
  580. package/src/styles/utilities.css +9 -0
@@ -0,0 +1,62 @@
1
+ "use client";
2
+ import {
3
+ cn
4
+ } from "../chunk-G6SRSWXB.js";
5
+
6
+ // src/primitives/browser-preview.tsx
7
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
8
+ function BrowserPreview({
9
+ url,
10
+ label,
11
+ children,
12
+ dots = true,
13
+ watermark = false,
14
+ className
15
+ }) {
16
+ return /* @__PURE__ */ jsxs(
17
+ "div",
18
+ {
19
+ className: cn(
20
+ "border border-border bg-card overflow-hidden rounded-md",
21
+ className
22
+ ),
23
+ children: [
24
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3 px-3 py-2 bg-muted border-b border-border", children: [
25
+ dots && /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-1.5", "aria-hidden": true, children: [
26
+ /* @__PURE__ */ jsx("span", { className: "w-2.5 h-2.5 rounded-full bg-muted-foreground/50 inline-block" }),
27
+ /* @__PURE__ */ jsx("span", { className: "w-2.5 h-2.5 rounded-full bg-muted-foreground/50 inline-block" }),
28
+ /* @__PURE__ */ jsx("span", { className: "w-2.5 h-2.5 rounded-full bg-muted-foreground/50 inline-block" })
29
+ ] }),
30
+ /* @__PURE__ */ jsx("div", { className: "flex-1 border border-border bg-background px-3 py-1 font-mono text-xs text-muted-foreground truncate rounded-sm", children: url }),
31
+ label && /* @__PURE__ */ jsx("span", { className: "font-mono text-xs uppercase tracking-wider text-muted-foreground whitespace-nowrap", children: label })
32
+ ] }),
33
+ /* @__PURE__ */ jsxs("div", { className: "relative bg-background", children: [
34
+ children,
35
+ watermark && /* @__PURE__ */ jsxs(Fragment, { children: [
36
+ /* @__PURE__ */ jsx(
37
+ "div",
38
+ {
39
+ "aria-hidden": true,
40
+ className: "absolute inset-0 pointer-events-none opacity-[0.04]",
41
+ style: {
42
+ backgroundImage: "repeating-linear-gradient(45deg, currentColor 0, currentColor 1px, transparent 1px, transparent 10px)"
43
+ }
44
+ }
45
+ ),
46
+ /* @__PURE__ */ jsx(
47
+ "div",
48
+ {
49
+ "aria-hidden": true,
50
+ className: "absolute top-3 right-3 pointer-events-none",
51
+ children: /* @__PURE__ */ jsx("span", { className: "font-mono text-[0.65rem] uppercase tracking-widest text-muted-foreground/70 bg-background/80 border border-border/60 px-2 py-0.5 rounded-sm", children: "Preview" })
52
+ }
53
+ )
54
+ ] })
55
+ ] })
56
+ ]
57
+ }
58
+ );
59
+ }
60
+ export {
61
+ BrowserPreview
62
+ };
@@ -0,0 +1,10 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});"use client";
2
+
3
+
4
+
5
+ var _chunkL4DH72UFcjs = require('../chunk-L4DH72UF.cjs');
6
+ require('../chunk-KWLSBTB2.cjs');
7
+
8
+
9
+
10
+ exports.Button = _chunkL4DH72UFcjs.Button; exports.buttonVariants = _chunkL4DH72UFcjs.buttonVariants;
@@ -0,0 +1,32 @@
1
+ import * as React from 'react';
2
+ import { ButtonHTMLAttributes } from 'react';
3
+ import * as class_variance_authority_types from 'class-variance-authority/types';
4
+ import { VariantProps } from 'class-variance-authority';
5
+
6
+ declare const buttonVariants: (props?: ({
7
+ variant?: "link" | "default" | "secondary" | "destructive" | "outline" | "outline-muted" | "ghost" | "quiet" | "ghost-destructive" | "link-muted" | "inverted" | "status-error" | "status-warning" | "status-muted" | null | undefined;
8
+ size?: "filter" | "status" | "icon" | "toolbar" | "sm" | "lg" | "default" | "micro" | "compact" | "hero" | "icon-lg" | "icon-sm" | "icon-md" | "icon-xs" | "icon-compact" | "icon-micro" | "bare" | "voice-sm" | "voice" | "suggestion" | "tone" | null | undefined;
9
+ width?: "auto" | "full" | "responsive" | null | undefined;
10
+ align?: "center" | "start" | null | undefined;
11
+ shrink?: boolean | null | undefined;
12
+ shape?: "circle" | "default" | null | undefined;
13
+ ring?: "surface" | "none" | null | undefined;
14
+ grow?: boolean | null | undefined;
15
+ minWidth?: "auto" | "zero" | null | undefined;
16
+ textAlign?: "center" | "start" | null | undefined;
17
+ marginTop?: "none" | "xs" | "sm" | null | undefined;
18
+ marginStart?: "none" | "auto" | "sm" | "negative-sm" | null | undefined;
19
+ reveal?: "always" | "parent-hover" | "parent-hover-responsive" | null | undefined;
20
+ interaction?: "none" | "group" | null | undefined;
21
+ position?: "static" | "relative" | "viewport-top-end" | null | undefined;
22
+ transform?: "none" | "capitalize" | null | undefined;
23
+ marginEnd?: "none" | "negative-xs" | null | undefined;
24
+ gap?: "xs" | "default" | null | undefined;
25
+ numeric?: "normal" | "tabular" | null | undefined;
26
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
27
+ interface ButtonProps extends ButtonHTMLAttributes<HTMLButtonElement>, VariantProps<typeof buttonVariants> {
28
+ asChild?: boolean;
29
+ }
30
+ declare const Button: React.ForwardRefExoticComponent<ButtonProps & React.RefAttributes<HTMLButtonElement>>;
31
+
32
+ export { Button, type ButtonProps, buttonVariants };
@@ -0,0 +1,32 @@
1
+ import * as React from 'react';
2
+ import { ButtonHTMLAttributes } from 'react';
3
+ import * as class_variance_authority_types from 'class-variance-authority/types';
4
+ import { VariantProps } from 'class-variance-authority';
5
+
6
+ declare const buttonVariants: (props?: ({
7
+ variant?: "link" | "default" | "secondary" | "destructive" | "outline" | "outline-muted" | "ghost" | "quiet" | "ghost-destructive" | "link-muted" | "inverted" | "status-error" | "status-warning" | "status-muted" | null | undefined;
8
+ size?: "filter" | "status" | "icon" | "toolbar" | "sm" | "lg" | "default" | "micro" | "compact" | "hero" | "icon-lg" | "icon-sm" | "icon-md" | "icon-xs" | "icon-compact" | "icon-micro" | "bare" | "voice-sm" | "voice" | "suggestion" | "tone" | null | undefined;
9
+ width?: "auto" | "full" | "responsive" | null | undefined;
10
+ align?: "center" | "start" | null | undefined;
11
+ shrink?: boolean | null | undefined;
12
+ shape?: "circle" | "default" | null | undefined;
13
+ ring?: "surface" | "none" | null | undefined;
14
+ grow?: boolean | null | undefined;
15
+ minWidth?: "auto" | "zero" | null | undefined;
16
+ textAlign?: "center" | "start" | null | undefined;
17
+ marginTop?: "none" | "xs" | "sm" | null | undefined;
18
+ marginStart?: "none" | "auto" | "sm" | "negative-sm" | null | undefined;
19
+ reveal?: "always" | "parent-hover" | "parent-hover-responsive" | null | undefined;
20
+ interaction?: "none" | "group" | null | undefined;
21
+ position?: "static" | "relative" | "viewport-top-end" | null | undefined;
22
+ transform?: "none" | "capitalize" | null | undefined;
23
+ marginEnd?: "none" | "negative-xs" | null | undefined;
24
+ gap?: "xs" | "default" | null | undefined;
25
+ numeric?: "normal" | "tabular" | null | undefined;
26
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
27
+ interface ButtonProps extends ButtonHTMLAttributes<HTMLButtonElement>, VariantProps<typeof buttonVariants> {
28
+ asChild?: boolean;
29
+ }
30
+ declare const Button: React.ForwardRefExoticComponent<ButtonProps & React.RefAttributes<HTMLButtonElement>>;
31
+
32
+ export { Button, type ButtonProps, buttonVariants };
@@ -0,0 +1,10 @@
1
+ "use client";
2
+ import {
3
+ Button,
4
+ buttonVariants
5
+ } from "../chunk-HQRWRRZJ.js";
6
+ import "../chunk-G6SRSWXB.js";
7
+ export {
8
+ Button,
9
+ buttonVariants
10
+ };
@@ -0,0 +1,11 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});"use client";
2
+
3
+
4
+
5
+ var _chunkR5L4CM6Vcjs = require('../chunk-R5L4CM6V.cjs');
6
+ require('../chunk-L4DH72UF.cjs');
7
+ require('../chunk-KWLSBTB2.cjs');
8
+
9
+
10
+
11
+ exports.Calendar = _chunkR5L4CM6Vcjs.Calendar; exports.CalendarDayButton = _chunkR5L4CM6Vcjs.CalendarDayButton;
@@ -0,0 +1,13 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import { Button } from './button.cjs';
3
+ import { ComponentProps } from 'react';
4
+ import { DayPicker, DayButton } from 'react-day-picker';
5
+ import 'class-variance-authority/types';
6
+ import 'class-variance-authority';
7
+
8
+ declare function Calendar({ className, classNames, showOutsideDays, captionLayout, buttonVariant, formatters, components, ...props }: ComponentProps<typeof DayPicker> & {
9
+ buttonVariant?: ComponentProps<typeof Button>["variant"];
10
+ }): react_jsx_runtime.JSX.Element;
11
+ declare function CalendarDayButton({ className, day, modifiers, ...props }: ComponentProps<typeof DayButton>): react_jsx_runtime.JSX.Element;
12
+
13
+ export { Calendar, CalendarDayButton };
@@ -0,0 +1,13 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import { Button } from './button.js';
3
+ import { ComponentProps } from 'react';
4
+ import { DayPicker, DayButton } from 'react-day-picker';
5
+ import 'class-variance-authority/types';
6
+ import 'class-variance-authority';
7
+
8
+ declare function Calendar({ className, classNames, showOutsideDays, captionLayout, buttonVariant, formatters, components, ...props }: ComponentProps<typeof DayPicker> & {
9
+ buttonVariant?: ComponentProps<typeof Button>["variant"];
10
+ }): react_jsx_runtime.JSX.Element;
11
+ declare function CalendarDayButton({ className, day, modifiers, ...props }: ComponentProps<typeof DayButton>): react_jsx_runtime.JSX.Element;
12
+
13
+ export { Calendar, CalendarDayButton };
@@ -0,0 +1,11 @@
1
+ "use client";
2
+ import {
3
+ Calendar,
4
+ CalendarDayButton
5
+ } from "../chunk-RRRD5EUI.js";
6
+ import "../chunk-HQRWRRZJ.js";
7
+ import "../chunk-G6SRSWXB.js";
8
+ export {
9
+ Calendar,
10
+ CalendarDayButton
11
+ };
@@ -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 };