@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,108 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); 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
+
3
+
4
+ var _chunkW5I4FN7Gcjs = require('../chunk-W5I4FN7G.cjs');
5
+
6
+
7
+ var _chunk373W6VADcjs = require('../chunk-373W6VAD.cjs');
8
+
9
+
10
+ var _chunkPQUSJEXLcjs = require('../chunk-PQUSJEXL.cjs');
11
+
12
+
13
+ var _chunkL4DH72UFcjs = require('../chunk-L4DH72UF.cjs');
14
+ require('../chunk-EJP2L5QV.cjs');
15
+
16
+
17
+ var _chunkKWLSBTB2cjs = require('../chunk-KWLSBTB2.cjs');
18
+
19
+ // src/primitives/editable-list.tsx
20
+ var _react = require('react');
21
+ var _lucidereact = require('lucide-react');
22
+ var _jsxruntime = require('react/jsx-runtime');
23
+ function EditableList({
24
+ label,
25
+ items,
26
+ onChange,
27
+ sentiment = "neutral",
28
+ itemName = "item",
29
+ emptyText = "None set",
30
+ placeholder = `Add ${itemName}\u2026`,
31
+ className
32
+ }) {
33
+ const [draft, setDraft] = _react.useState.call(void 0, "");
34
+ const [editing, setEditing] = _react.useState.call(void 0, null);
35
+ const readOnly = !onChange;
36
+ if (readOnly && items.length === 0) return null;
37
+ const add = () => {
38
+ const value = draft.trim();
39
+ if (!value || !onChange) return;
40
+ onChange([...items, value]);
41
+ setDraft("");
42
+ };
43
+ const commitEdit = () => {
44
+ const value = _optionalChain([editing, 'optionalAccess', _2 => _2.value, 'access', _3 => _3.trim, 'call', _4 => _4()]);
45
+ if (editing && value && onChange) {
46
+ onChange(items.map((item, index) => index === editing.index ? value : item));
47
+ }
48
+ setEditing(null);
49
+ };
50
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "section", { className: _chunkKWLSBTB2cjs.cn.call(void 0, "border-t border-border pt-4", className), children: [
51
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk373W6VADcjs.Text, { as: "span", variant: "caption", className: "text-xs font-medium uppercase tracking-wider", children: label }),
52
+ items.length === 0 ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk373W6VADcjs.Text, { variant: "caption", className: "mt-3 italic", children: emptyText }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "ul", { className: "mt-3 space-y-3", children: items.map((item, index) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "li", { className: "group flex items-start gap-3", children: [
53
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkW5I4FN7Gcjs.SentimentDot, { sentiment, className: "mt-[5px] shrink-0" }),
54
+ !readOnly && _optionalChain([editing, 'optionalAccess', _5 => _5.index]) === index ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
55
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
56
+ _chunkPQUSJEXLcjs.Input,
57
+ {
58
+ autoFocus: true,
59
+ value: editing.value,
60
+ "aria-label": `Edit ${itemName}`,
61
+ onChange: (event) => setEditing({ index, value: event.target.value }),
62
+ onKeyDown: (event) => {
63
+ if (event.key === "Enter") {
64
+ event.preventDefault();
65
+ commitEdit();
66
+ }
67
+ if (event.key === "Escape") setEditing(null);
68
+ },
69
+ grow: true
70
+ }
71
+ ),
72
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkL4DH72UFcjs.Button, { type: "button", variant: "ghost", size: "icon-sm", shrink: true, className: "text-emerald-600", "aria-label": `Save ${itemName}`, onClick: commitEdit, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Check, { className: "h-4 w-4" }) }),
73
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkL4DH72UFcjs.Button, { type: "button", variant: "quiet", size: "icon-sm", shrink: true, marginEnd: "negative-xs", "aria-label": `Cancel editing ${itemName}`, onClick: () => setEditing(null), children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.X, { className: "h-4 w-4" }) })
74
+ ] }) : /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
75
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk373W6VADcjs.Text, { as: "span", variant: "small", className: "flex-1 leading-snug", children: item }),
76
+ !readOnly && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
77
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkL4DH72UFcjs.Button, { type: "button", variant: "ghost", size: "icon", className: "h-8 w-8 shrink-0 text-muted-foreground opacity-0 transition-opacity group-hover:opacity-100 focus:opacity-100", "aria-label": `Edit ${itemName}`, onClick: () => setEditing({ index, value: item }), children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Pencil, { className: "h-4 w-4" }) }),
78
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkL4DH72UFcjs.Button, { type: "button", variant: "ghost", size: "icon", className: "-mr-1 h-8 w-8 shrink-0 text-muted-foreground opacity-0 transition-opacity group-hover:opacity-100 focus:opacity-100", "aria-label": `Remove ${itemName}`, onClick: () => onChange(items.filter((_, itemIndex) => itemIndex !== index)), children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.X, { className: "h-4 w-4" }) })
79
+ ] })
80
+ ] })
81
+ ] }, `${item}-${index}`)) }),
82
+ !readOnly && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "mt-3 flex items-center gap-2", children: [
83
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
84
+ _chunkPQUSJEXLcjs.Input,
85
+ {
86
+ value: draft,
87
+ "aria-label": `New ${itemName}`,
88
+ onChange: (event) => setDraft(event.target.value),
89
+ onKeyDown: (event) => {
90
+ if (event.key === "Enter") {
91
+ event.preventDefault();
92
+ add();
93
+ }
94
+ },
95
+ placeholder,
96
+ grow: true
97
+ }
98
+ ),
99
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkL4DH72UFcjs.Button, { type: "button", size: "sm", variant: "outline", shrink: true, disabled: !draft.trim(), onClick: add, children: [
100
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Plus, { className: "mr-1 h-4 w-4" }),
101
+ " Add"
102
+ ] })
103
+ ] })
104
+ ] });
105
+ }
106
+
107
+
108
+ exports.EditableList = EditableList;
@@ -0,0 +1,23 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import { ReactNode } from 'react';
3
+ import { Sentiment } from './sentiment-dot.cjs';
4
+ import '../lib/status-colors.cjs';
5
+
6
+ interface EditableListProps {
7
+ label: ReactNode;
8
+ items: string[];
9
+ onChange?: (items: string[]) => void;
10
+ sentiment?: Sentiment;
11
+ itemName?: string;
12
+ emptyText?: string;
13
+ placeholder?: string;
14
+ className?: string;
15
+ }
16
+ /**
17
+ * A compact string list with optional inline add, edit and remove controls.
18
+ * Omit `onChange` for a read-only list. Domain labels and meaning stay with
19
+ * the consumer.
20
+ */
21
+ declare function EditableList({ label, items, onChange, sentiment, itemName, emptyText, placeholder, className, }: EditableListProps): react_jsx_runtime.JSX.Element | null;
22
+
23
+ export { EditableList, type EditableListProps };
@@ -0,0 +1,23 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import { ReactNode } from 'react';
3
+ import { Sentiment } from './sentiment-dot.js';
4
+ import '../lib/status-colors.js';
5
+
6
+ interface EditableListProps {
7
+ label: ReactNode;
8
+ items: string[];
9
+ onChange?: (items: string[]) => void;
10
+ sentiment?: Sentiment;
11
+ itemName?: string;
12
+ emptyText?: string;
13
+ placeholder?: string;
14
+ className?: string;
15
+ }
16
+ /**
17
+ * A compact string list with optional inline add, edit and remove controls.
18
+ * Omit `onChange` for a read-only list. Domain labels and meaning stay with
19
+ * the consumer.
20
+ */
21
+ declare function EditableList({ label, items, onChange, sentiment, itemName, emptyText, placeholder, className, }: EditableListProps): react_jsx_runtime.JSX.Element | null;
22
+
23
+ export { EditableList, type EditableListProps };
@@ -0,0 +1,108 @@
1
+ "use client";
2
+ import {
3
+ SentimentDot
4
+ } from "../chunk-YWAQRAXP.js";
5
+ import {
6
+ Text
7
+ } from "../chunk-EIY5LLSP.js";
8
+ import {
9
+ Input
10
+ } from "../chunk-QMA3WVB7.js";
11
+ import {
12
+ Button
13
+ } from "../chunk-HQRWRRZJ.js";
14
+ import "../chunk-F7JHSZNT.js";
15
+ import {
16
+ cn
17
+ } from "../chunk-G6SRSWXB.js";
18
+
19
+ // src/primitives/editable-list.tsx
20
+ import { useState } from "react";
21
+ import { Check, Pencil, Plus, X } from "lucide-react";
22
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
23
+ function EditableList({
24
+ label,
25
+ items,
26
+ onChange,
27
+ sentiment = "neutral",
28
+ itemName = "item",
29
+ emptyText = "None set",
30
+ placeholder = `Add ${itemName}\u2026`,
31
+ className
32
+ }) {
33
+ const [draft, setDraft] = useState("");
34
+ const [editing, setEditing] = useState(null);
35
+ const readOnly = !onChange;
36
+ if (readOnly && items.length === 0) return null;
37
+ const add = () => {
38
+ const value = draft.trim();
39
+ if (!value || !onChange) return;
40
+ onChange([...items, value]);
41
+ setDraft("");
42
+ };
43
+ const commitEdit = () => {
44
+ const value = editing?.value.trim();
45
+ if (editing && value && onChange) {
46
+ onChange(items.map((item, index) => index === editing.index ? value : item));
47
+ }
48
+ setEditing(null);
49
+ };
50
+ return /* @__PURE__ */ jsxs("section", { className: cn("border-t border-border pt-4", className), children: [
51
+ /* @__PURE__ */ jsx(Text, { as: "span", variant: "caption", className: "text-xs font-medium uppercase tracking-wider", children: label }),
52
+ items.length === 0 ? /* @__PURE__ */ jsx(Text, { variant: "caption", className: "mt-3 italic", children: emptyText }) : /* @__PURE__ */ jsx("ul", { className: "mt-3 space-y-3", children: items.map((item, index) => /* @__PURE__ */ jsxs("li", { className: "group flex items-start gap-3", children: [
53
+ /* @__PURE__ */ jsx(SentimentDot, { sentiment, className: "mt-[5px] shrink-0" }),
54
+ !readOnly && editing?.index === index ? /* @__PURE__ */ jsxs(Fragment, { children: [
55
+ /* @__PURE__ */ jsx(
56
+ Input,
57
+ {
58
+ autoFocus: true,
59
+ value: editing.value,
60
+ "aria-label": `Edit ${itemName}`,
61
+ onChange: (event) => setEditing({ index, value: event.target.value }),
62
+ onKeyDown: (event) => {
63
+ if (event.key === "Enter") {
64
+ event.preventDefault();
65
+ commitEdit();
66
+ }
67
+ if (event.key === "Escape") setEditing(null);
68
+ },
69
+ grow: true
70
+ }
71
+ ),
72
+ /* @__PURE__ */ jsx(Button, { type: "button", variant: "ghost", size: "icon-sm", shrink: true, className: "text-emerald-600", "aria-label": `Save ${itemName}`, onClick: commitEdit, children: /* @__PURE__ */ jsx(Check, { className: "h-4 w-4" }) }),
73
+ /* @__PURE__ */ jsx(Button, { type: "button", variant: "quiet", size: "icon-sm", shrink: true, marginEnd: "negative-xs", "aria-label": `Cancel editing ${itemName}`, onClick: () => setEditing(null), children: /* @__PURE__ */ jsx(X, { className: "h-4 w-4" }) })
74
+ ] }) : /* @__PURE__ */ jsxs(Fragment, { children: [
75
+ /* @__PURE__ */ jsx(Text, { as: "span", variant: "small", className: "flex-1 leading-snug", children: item }),
76
+ !readOnly && /* @__PURE__ */ jsxs(Fragment, { children: [
77
+ /* @__PURE__ */ jsx(Button, { type: "button", variant: "ghost", size: "icon", className: "h-8 w-8 shrink-0 text-muted-foreground opacity-0 transition-opacity group-hover:opacity-100 focus:opacity-100", "aria-label": `Edit ${itemName}`, onClick: () => setEditing({ index, value: item }), children: /* @__PURE__ */ jsx(Pencil, { className: "h-4 w-4" }) }),
78
+ /* @__PURE__ */ jsx(Button, { type: "button", variant: "ghost", size: "icon", className: "-mr-1 h-8 w-8 shrink-0 text-muted-foreground opacity-0 transition-opacity group-hover:opacity-100 focus:opacity-100", "aria-label": `Remove ${itemName}`, onClick: () => onChange(items.filter((_, itemIndex) => itemIndex !== index)), children: /* @__PURE__ */ jsx(X, { className: "h-4 w-4" }) })
79
+ ] })
80
+ ] })
81
+ ] }, `${item}-${index}`)) }),
82
+ !readOnly && /* @__PURE__ */ jsxs("div", { className: "mt-3 flex items-center gap-2", children: [
83
+ /* @__PURE__ */ jsx(
84
+ Input,
85
+ {
86
+ value: draft,
87
+ "aria-label": `New ${itemName}`,
88
+ onChange: (event) => setDraft(event.target.value),
89
+ onKeyDown: (event) => {
90
+ if (event.key === "Enter") {
91
+ event.preventDefault();
92
+ add();
93
+ }
94
+ },
95
+ placeholder,
96
+ grow: true
97
+ }
98
+ ),
99
+ /* @__PURE__ */ jsxs(Button, { type: "button", size: "sm", variant: "outline", shrink: true, disabled: !draft.trim(), onClick: add, children: [
100
+ /* @__PURE__ */ jsx(Plus, { className: "mr-1 h-4 w-4" }),
101
+ " Add"
102
+ ] })
103
+ ] })
104
+ ] });
105
+ }
106
+ export {
107
+ EditableList
108
+ };
@@ -0,0 +1,9 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});"use client";
2
+
3
+
4
+ var _chunkG54TQV2Rcjs = require('../chunk-G54TQV2R.cjs');
5
+ require('../chunk-L4DH72UF.cjs');
6
+ require('../chunk-KWLSBTB2.cjs');
7
+
8
+
9
+ exports.EmptyState = _chunkG54TQV2Rcjs.EmptyState;
@@ -0,0 +1,54 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import { ReactNode } from 'react';
3
+ import { LucideIcon } from 'lucide-react';
4
+
5
+ interface EmptyStateProps {
6
+ /** Visual variant for different scenarios */
7
+ variant?: "select" | "search" | "empty" | "error" | "success";
8
+ /**
9
+ * Icon to display. Accepts either a Lucide component reference
10
+ * (`Inbox`) or an already-instantiated React element (`<Inbox />`).
11
+ *
12
+ * **Pass an element when calling from a server component** — Component
13
+ * references can't cross the server→client boundary, but elements can.
14
+ */
15
+ icon?: LucideIcon | ReactNode;
16
+ /** Canonical motion for loading or in-progress blank slates. */
17
+ iconMotion?: "none" | "spin" | "pulse";
18
+ /** Main heading text */
19
+ title?: string;
20
+ /** Supporting description text */
21
+ description?: string;
22
+ /** Optional action button */
23
+ action?: {
24
+ label: string;
25
+ onClick: () => void;
26
+ variant?: "default" | "outline" | "secondary";
27
+ };
28
+ /** Entity type for auto-generated title (e.g., "note", "file") */
29
+ entityType?: string;
30
+ /** Enable gentle animations */
31
+ animated?: boolean;
32
+ /**
33
+ * Placement density. `inline` is for an empty subsection inside an otherwise
34
+ * populated surface; the other sizes are centred panel/page blank slates.
35
+ */
36
+ size?: "inline" | "sm" | "md" | "lg";
37
+ /** Optional rich starter content, rendered below the canonical heading. */
38
+ children?: ReactNode;
39
+ /** Additional CSS classes */
40
+ className?: string;
41
+ /** Show decorative background gradient */
42
+ showGradient?: boolean;
43
+ /**
44
+ * Visual containment for the blank slate. `subtle` is the default so an
45
+ * empty area reads as an intentional product surface instead of floating
46
+ * copy; use `plain` only when an existing parent already owns the surface.
47
+ */
48
+ surface?: "plain" | "subtle";
49
+ minHeight?: "none" | "viewport";
50
+ paddingY?: "none" | "lg" | "xl";
51
+ }
52
+ declare function EmptyState({ variant, icon: Icon, iconMotion, title, description, action, entityType, animated, size, children, className, showGradient, surface, minHeight, paddingY, }: EmptyStateProps): react_jsx_runtime.JSX.Element;
53
+
54
+ export { EmptyState, type EmptyStateProps };
@@ -0,0 +1,54 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import { ReactNode } from 'react';
3
+ import { LucideIcon } from 'lucide-react';
4
+
5
+ interface EmptyStateProps {
6
+ /** Visual variant for different scenarios */
7
+ variant?: "select" | "search" | "empty" | "error" | "success";
8
+ /**
9
+ * Icon to display. Accepts either a Lucide component reference
10
+ * (`Inbox`) or an already-instantiated React element (`<Inbox />`).
11
+ *
12
+ * **Pass an element when calling from a server component** — Component
13
+ * references can't cross the server→client boundary, but elements can.
14
+ */
15
+ icon?: LucideIcon | ReactNode;
16
+ /** Canonical motion for loading or in-progress blank slates. */
17
+ iconMotion?: "none" | "spin" | "pulse";
18
+ /** Main heading text */
19
+ title?: string;
20
+ /** Supporting description text */
21
+ description?: string;
22
+ /** Optional action button */
23
+ action?: {
24
+ label: string;
25
+ onClick: () => void;
26
+ variant?: "default" | "outline" | "secondary";
27
+ };
28
+ /** Entity type for auto-generated title (e.g., "note", "file") */
29
+ entityType?: string;
30
+ /** Enable gentle animations */
31
+ animated?: boolean;
32
+ /**
33
+ * Placement density. `inline` is for an empty subsection inside an otherwise
34
+ * populated surface; the other sizes are centred panel/page blank slates.
35
+ */
36
+ size?: "inline" | "sm" | "md" | "lg";
37
+ /** Optional rich starter content, rendered below the canonical heading. */
38
+ children?: ReactNode;
39
+ /** Additional CSS classes */
40
+ className?: string;
41
+ /** Show decorative background gradient */
42
+ showGradient?: boolean;
43
+ /**
44
+ * Visual containment for the blank slate. `subtle` is the default so an
45
+ * empty area reads as an intentional product surface instead of floating
46
+ * copy; use `plain` only when an existing parent already owns the surface.
47
+ */
48
+ surface?: "plain" | "subtle";
49
+ minHeight?: "none" | "viewport";
50
+ paddingY?: "none" | "lg" | "xl";
51
+ }
52
+ declare function EmptyState({ variant, icon: Icon, iconMotion, title, description, action, entityType, animated, size, children, className, showGradient, surface, minHeight, paddingY, }: EmptyStateProps): react_jsx_runtime.JSX.Element;
53
+
54
+ export { EmptyState, type EmptyStateProps };
@@ -0,0 +1,9 @@
1
+ "use client";
2
+ import {
3
+ EmptyState
4
+ } from "../chunk-4NN7EA3W.js";
5
+ import "../chunk-HQRWRRZJ.js";
6
+ import "../chunk-G6SRSWXB.js";
7
+ export {
8
+ EmptyState
9
+ };
@@ -0,0 +1,8 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});"use client";
2
+
3
+
4
+ var _chunk6T2EULKNcjs = require('../chunk-6T2EULKN.cjs');
5
+ require('../chunk-KWLSBTB2.cjs');
6
+
7
+
8
+ exports.Eyebrow = _chunk6T2EULKNcjs.Eyebrow;
@@ -0,0 +1,21 @@
1
+ import * as React from 'react';
2
+ import { HTMLAttributes, ElementType } from 'react';
3
+
4
+ /**
5
+ * Eyebrow — small uppercase label that sits above a heading
6
+ * or section ("GETTING STARTED", "QUICK FILTERS").
7
+ *
8
+ * Mono font, generous tracking, muted color. One canonical
9
+ * treatment so every eyebrow matches.
10
+ */
11
+ interface EyebrowProps extends HTMLAttributes<HTMLSpanElement> {
12
+ /** Override the rendered tag. Defaults to <span>. */
13
+ as?: ElementType;
14
+ /** Prefix the label with a small accent dot (the brand kicker treatment). */
15
+ dot?: boolean;
16
+ display?: "inline" | "block";
17
+ marginBottom?: "none" | "sm" | "md";
18
+ }
19
+ declare const Eyebrow: React.ForwardRefExoticComponent<EyebrowProps & React.RefAttributes<HTMLSpanElement>>;
20
+
21
+ export { Eyebrow };
@@ -0,0 +1,21 @@
1
+ import * as React from 'react';
2
+ import { HTMLAttributes, ElementType } from 'react';
3
+
4
+ /**
5
+ * Eyebrow — small uppercase label that sits above a heading
6
+ * or section ("GETTING STARTED", "QUICK FILTERS").
7
+ *
8
+ * Mono font, generous tracking, muted color. One canonical
9
+ * treatment so every eyebrow matches.
10
+ */
11
+ interface EyebrowProps extends HTMLAttributes<HTMLSpanElement> {
12
+ /** Override the rendered tag. Defaults to <span>. */
13
+ as?: ElementType;
14
+ /** Prefix the label with a small accent dot (the brand kicker treatment). */
15
+ dot?: boolean;
16
+ display?: "inline" | "block";
17
+ marginBottom?: "none" | "sm" | "md";
18
+ }
19
+ declare const Eyebrow: React.ForwardRefExoticComponent<EyebrowProps & React.RefAttributes<HTMLSpanElement>>;
20
+
21
+ export { Eyebrow };
@@ -0,0 +1,8 @@
1
+ "use client";
2
+ import {
3
+ Eyebrow
4
+ } from "../chunk-LIE6W3QT.js";
5
+ import "../chunk-G6SRSWXB.js";
6
+ export {
7
+ Eyebrow
8
+ };
@@ -0,0 +1,133 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } }"use client";
2
+
3
+
4
+ var _chunk6T2EULKNcjs = require('../chunk-6T2EULKN.cjs');
5
+
6
+
7
+ var _chunkKWLSBTB2cjs = require('../chunk-KWLSBTB2.cjs');
8
+
9
+ // src/primitives/feature-empty-state.tsx
10
+ var _jsxruntime = require('react/jsx-runtime');
11
+ function FeatureEmptyState({
12
+ eyebrow,
13
+ icon,
14
+ title,
15
+ description,
16
+ actions,
17
+ note,
18
+ preview,
19
+ previewLabel,
20
+ steps,
21
+ className
22
+ }) {
23
+ const hasIntroMeta = icon || eyebrow;
24
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
25
+ "section",
26
+ {
27
+ "data-slot": "feature-empty-state",
28
+ className: _chunkKWLSBTB2cjs.cn.call(void 0,
29
+ "overflow-hidden rounded-xl border border-border bg-card",
30
+ className
31
+ ),
32
+ children: [
33
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
34
+ "div",
35
+ {
36
+ className: _chunkKWLSBTB2cjs.cn.call(void 0,
37
+ "grid",
38
+ preview && "lg:grid-cols-[minmax(0,0.9fr)_minmax(24rem,1.1fr)]"
39
+ ),
40
+ children: [
41
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
42
+ "div",
43
+ {
44
+ "data-slot": "feature-empty-state-intro",
45
+ className: _chunkKWLSBTB2cjs.cn.call(void 0,
46
+ "flex flex-col justify-center px-6 py-9 sm:px-9 sm:py-12",
47
+ !preview && "mx-auto max-w-3xl text-center sm:px-12"
48
+ ),
49
+ children: [
50
+ hasIntroMeta && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
51
+ "div",
52
+ {
53
+ className: _chunkKWLSBTB2cjs.cn.call(void 0,
54
+ "mb-5 flex items-center gap-3",
55
+ !preview && "justify-center"
56
+ ),
57
+ children: [
58
+ icon && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "flex h-10 w-10 items-center justify-center rounded-lg bg-primary/10 text-primary [&_svg]:h-5 [&_svg]:w-5", children: icon }),
59
+ eyebrow && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk6T2EULKNcjs.Eyebrow, { children: eyebrow })
60
+ ]
61
+ }
62
+ ),
63
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h2", { className: "text-3xl font-medium leading-tight tracking-tight text-foreground sm:text-4xl", children: title }),
64
+ description && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
65
+ "p",
66
+ {
67
+ className: _chunkKWLSBTB2cjs.cn.call(void 0,
68
+ "mt-4 text-base leading-relaxed text-muted-foreground sm:text-lg",
69
+ !preview && "mx-auto max-w-2xl"
70
+ ),
71
+ children: description
72
+ }
73
+ ),
74
+ actions && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
75
+ "div",
76
+ {
77
+ "data-slot": "feature-empty-state-actions",
78
+ className: _chunkKWLSBTB2cjs.cn.call(void 0,
79
+ "mt-7 flex flex-wrap items-center gap-3",
80
+ !preview && "justify-center"
81
+ ),
82
+ children: actions
83
+ }
84
+ ),
85
+ note && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "mt-4 text-xs leading-relaxed text-muted-foreground", children: note })
86
+ ]
87
+ }
88
+ ),
89
+ preview && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
90
+ "div",
91
+ {
92
+ "data-slot": "feature-empty-state-preview",
93
+ className: "flex min-w-0 flex-col justify-center border-t border-border bg-muted/30 p-5 sm:p-7 lg:border-l lg:border-t-0",
94
+ children: [
95
+ previewLabel && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk6T2EULKNcjs.Eyebrow, { className: "mb-3 block", children: previewLabel }),
96
+ preview
97
+ ]
98
+ }
99
+ )
100
+ ]
101
+ }
102
+ ),
103
+ steps && steps.length > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
104
+ "ol",
105
+ {
106
+ "data-slot": "feature-empty-state-steps",
107
+ className: _chunkKWLSBTB2cjs.cn.call(void 0,
108
+ "grid border-t border-border bg-background/40",
109
+ steps.length === 2 ? "md:grid-cols-2" : "md:grid-cols-3"
110
+ ),
111
+ children: steps.map((step, index) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
112
+ "li",
113
+ {
114
+ className: "flex gap-3 border-t border-border px-6 py-5 first:border-t-0 md:border-l md:border-t-0 md:first:border-l-0",
115
+ children: [
116
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "flex h-8 w-8 shrink-0 items-center justify-center rounded-md bg-muted font-mono text-xs text-muted-foreground [&_svg]:h-4 [&_svg]:w-4", children: _nullishCoalesce(step.icon, () => ( String(index + 1).padStart(2, "0"))) }),
117
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "min-w-0", children: [
118
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "block text-sm font-medium text-foreground", children: step.title }),
119
+ step.description && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "mt-1 block text-xs leading-relaxed text-muted-foreground", children: step.description })
120
+ ] })
121
+ ]
122
+ },
123
+ index
124
+ ))
125
+ }
126
+ )
127
+ ]
128
+ }
129
+ );
130
+ }
131
+
132
+
133
+ exports.FeatureEmptyState = FeatureEmptyState;
@@ -0,0 +1,42 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import { ReactNode } from 'react';
3
+
4
+ interface FeatureEmptyStateStep {
5
+ title: ReactNode;
6
+ description?: ReactNode;
7
+ /** Optional rendered icon. When omitted, the step number is shown. */
8
+ icon?: ReactNode;
9
+ }
10
+ interface FeatureEmptyStateProps {
11
+ /** Quiet product or workflow label above the main promise. */
12
+ eyebrow?: ReactNode;
13
+ /** Optional rendered icon beside the eyebrow. */
14
+ icon?: ReactNode;
15
+ /** The user-facing outcome, not a description of the missing data. */
16
+ title: ReactNode;
17
+ /** A concise explanation of why the feature is useful. */
18
+ description?: ReactNode;
19
+ /** Primary and secondary kit buttons. */
20
+ actions?: ReactNode;
21
+ /** Small reassurance or constraint beneath the actions. */
22
+ note?: ReactNode;
23
+ /** Product mock, example record, browser preview, or other visual proof. */
24
+ preview?: ReactNode;
25
+ /** Label above the preview, such as “What you’ll get”. */
26
+ previewLabel?: ReactNode;
27
+ /** Optional three-step explanation of the first-run workflow. */
28
+ steps?: FeatureEmptyStateStep[];
29
+ className?: string;
30
+ }
31
+ /**
32
+ * A first-run, feature-level empty state for major product areas.
33
+ *
34
+ * This is intentionally separate from `EmptyState`: use `EmptyState` for
35
+ * local absence (no notes, no search results, no history) and this component
36
+ * when an entire feature needs to explain its value before the user begins.
37
+ * The slots stay product-agnostic so consumers can compose truthful previews
38
+ * from BrowserPreview, ResourceCard, FileDropzone, and other primitives.
39
+ */
40
+ declare function FeatureEmptyState({ eyebrow, icon, title, description, actions, note, preview, previewLabel, steps, className, }: FeatureEmptyStateProps): react_jsx_runtime.JSX.Element;
41
+
42
+ export { FeatureEmptyState, type FeatureEmptyStateProps, type FeatureEmptyStateStep };