@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,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 };
@@ -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 };
@@ -0,0 +1,133 @@
1
+ "use client";
2
+ import {
3
+ Eyebrow
4
+ } from "../chunk-LIE6W3QT.js";
5
+ import {
6
+ cn
7
+ } from "../chunk-G6SRSWXB.js";
8
+
9
+ // src/primitives/feature-empty-state.tsx
10
+ import { jsx, jsxs } from "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__ */ jsxs(
25
+ "section",
26
+ {
27
+ "data-slot": "feature-empty-state",
28
+ className: cn(
29
+ "overflow-hidden rounded-xl border border-border bg-card",
30
+ className
31
+ ),
32
+ children: [
33
+ /* @__PURE__ */ jsxs(
34
+ "div",
35
+ {
36
+ className: cn(
37
+ "grid",
38
+ preview && "lg:grid-cols-[minmax(0,0.9fr)_minmax(24rem,1.1fr)]"
39
+ ),
40
+ children: [
41
+ /* @__PURE__ */ jsxs(
42
+ "div",
43
+ {
44
+ "data-slot": "feature-empty-state-intro",
45
+ className: cn(
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__ */ jsxs(
51
+ "div",
52
+ {
53
+ className: cn(
54
+ "mb-5 flex items-center gap-3",
55
+ !preview && "justify-center"
56
+ ),
57
+ children: [
58
+ icon && /* @__PURE__ */ jsx("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__ */ jsx(Eyebrow, { children: eyebrow })
60
+ ]
61
+ }
62
+ ),
63
+ /* @__PURE__ */ jsx("h2", { className: "text-3xl font-medium leading-tight tracking-tight text-foreground sm:text-4xl", children: title }),
64
+ description && /* @__PURE__ */ jsx(
65
+ "p",
66
+ {
67
+ className: cn(
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__ */ jsx(
75
+ "div",
76
+ {
77
+ "data-slot": "feature-empty-state-actions",
78
+ className: cn(
79
+ "mt-7 flex flex-wrap items-center gap-3",
80
+ !preview && "justify-center"
81
+ ),
82
+ children: actions
83
+ }
84
+ ),
85
+ note && /* @__PURE__ */ jsx("p", { className: "mt-4 text-xs leading-relaxed text-muted-foreground", children: note })
86
+ ]
87
+ }
88
+ ),
89
+ preview && /* @__PURE__ */ jsxs(
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__ */ jsx(Eyebrow, { className: "mb-3 block", children: previewLabel }),
96
+ preview
97
+ ]
98
+ }
99
+ )
100
+ ]
101
+ }
102
+ ),
103
+ steps && steps.length > 0 && /* @__PURE__ */ jsx(
104
+ "ol",
105
+ {
106
+ "data-slot": "feature-empty-state-steps",
107
+ className: cn(
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__ */ jsxs(
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__ */ jsx("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: step.icon ?? String(index + 1).padStart(2, "0") }),
117
+ /* @__PURE__ */ jsxs("span", { className: "min-w-0", children: [
118
+ /* @__PURE__ */ jsx("span", { className: "block text-sm font-medium text-foreground", children: step.title }),
119
+ step.description && /* @__PURE__ */ jsx("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
+ export {
132
+ FeatureEmptyState
133
+ };
@@ -0,0 +1,260 @@
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
+ "use client";
3
+
4
+
5
+ var _chunkNQK5ZWC7cjs = require('../chunk-NQK5ZWC7.cjs');
6
+
7
+
8
+ var _chunkIQZLUT2Ycjs = require('../chunk-IQZLUT2Y.cjs');
9
+
10
+
11
+ var _chunkKWLSBTB2cjs = require('../chunk-KWLSBTB2.cjs');
12
+
13
+ // src/primitives/field.tsx
14
+ var _react = require('react');
15
+ var _classvarianceauthority = require('class-variance-authority');
16
+ var _jsxruntime = require('react/jsx-runtime');
17
+ function FieldSet({ className, ...props }) {
18
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
19
+ "fieldset",
20
+ {
21
+ "data-slot": "field-set",
22
+ className: _chunkKWLSBTB2cjs.cn.call(void 0,
23
+ "flex flex-col gap-6",
24
+ "has-[>[data-slot=checkbox-group]]:gap-3 has-[>[data-slot=radio-group]]:gap-3",
25
+ className
26
+ ),
27
+ ...props
28
+ }
29
+ );
30
+ }
31
+ function FieldLegend({
32
+ className,
33
+ variant = "legend",
34
+ ...props
35
+ }) {
36
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
37
+ "legend",
38
+ {
39
+ "data-slot": "field-legend",
40
+ "data-variant": variant,
41
+ className: _chunkKWLSBTB2cjs.cn.call(void 0,
42
+ "mb-3 font-medium",
43
+ "data-[variant=legend]:text-base",
44
+ "data-[variant=label]:text-sm",
45
+ className
46
+ ),
47
+ ...props
48
+ }
49
+ );
50
+ }
51
+ function FieldGroup({ className, ...props }) {
52
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
53
+ "div",
54
+ {
55
+ "data-slot": "field-group",
56
+ className: _chunkKWLSBTB2cjs.cn.call(void 0,
57
+ "group/field-group @container/field-group flex w-full flex-col gap-7 data-[slot=checkbox-group]:gap-3 [&>[data-slot=field-group]]:gap-4",
58
+ className
59
+ ),
60
+ ...props
61
+ }
62
+ );
63
+ }
64
+ var fieldVariants = _classvarianceauthority.cva.call(void 0,
65
+ "group/field flex w-full gap-3 data-[invalid=true]:text-destructive",
66
+ {
67
+ variants: {
68
+ orientation: {
69
+ vertical: ["flex-col [&>*]:w-full [&>.sr-only]:w-auto"],
70
+ horizontal: [
71
+ "flex-row items-center",
72
+ "[&>[data-slot=field-label]]:flex-auto",
73
+ "has-[>[data-slot=field-content]]:items-start has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px"
74
+ ],
75
+ responsive: [
76
+ "flex-col @md/field-group:flex-row @md/field-group:items-center [&>*]:w-full @md/field-group:[&>*]:w-auto [&>.sr-only]:w-auto",
77
+ "@md/field-group:[&>[data-slot=field-label]]:flex-auto",
78
+ "@md/field-group:has-[>[data-slot=field-content]]:items-start @md/field-group:has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px"
79
+ ]
80
+ }
81
+ },
82
+ defaultVariants: { orientation: "vertical" }
83
+ }
84
+ );
85
+ function Field({
86
+ className,
87
+ orientation = "vertical",
88
+ ...props
89
+ }) {
90
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
91
+ "div",
92
+ {
93
+ role: "group",
94
+ "data-slot": "field",
95
+ "data-orientation": orientation,
96
+ className: _chunkKWLSBTB2cjs.cn.call(void 0, fieldVariants({ orientation }), className),
97
+ ...props
98
+ }
99
+ );
100
+ }
101
+ function FieldContent({ className, ...props }) {
102
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
103
+ "div",
104
+ {
105
+ "data-slot": "field-content",
106
+ className: _chunkKWLSBTB2cjs.cn.call(void 0,
107
+ "group/field-content flex flex-1 flex-col gap-1.5 leading-snug",
108
+ className
109
+ ),
110
+ ...props
111
+ }
112
+ );
113
+ }
114
+ function FieldLabel({ className, ...props }) {
115
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
116
+ _chunkIQZLUT2Ycjs.Label,
117
+ {
118
+ "data-slot": "field-label",
119
+ className: _chunkKWLSBTB2cjs.cn.call(void 0,
120
+ "group/field-label peer/field-label flex w-fit gap-2 leading-snug group-data-[disabled=true]/field:opacity-50",
121
+ "has-[>[data-slot=field]]:w-full has-[>[data-slot=field]]:flex-col has-[>[data-slot=field]]:rounded-md has-[>[data-slot=field]]:border [&>*]:data-[slot=field]:p-4",
122
+ "has-data-[state=checked]:border-primary has-data-[state=checked]:bg-primary/5 dark:has-data-[state=checked]:bg-primary/10",
123
+ className
124
+ ),
125
+ ...props
126
+ }
127
+ );
128
+ }
129
+ function FieldTitle({ className, ...props }) {
130
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
131
+ "div",
132
+ {
133
+ "data-slot": "field-label",
134
+ className: _chunkKWLSBTB2cjs.cn.call(void 0,
135
+ "flex w-fit items-center gap-2 text-sm leading-snug font-medium group-data-[disabled=true]/field:opacity-50",
136
+ className
137
+ ),
138
+ ...props
139
+ }
140
+ );
141
+ }
142
+ function FieldDescription({ className, ...props }) {
143
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
144
+ "p",
145
+ {
146
+ "data-slot": "field-description",
147
+ className: _chunkKWLSBTB2cjs.cn.call(void 0,
148
+ "text-sm leading-normal font-normal text-muted-foreground group-has-[[data-orientation=horizontal]]/field:text-balance",
149
+ "last:mt-0 nth-last-2:-mt-1 [[data-variant=legend]+&]:-mt-1.5",
150
+ "[&>a]:underline [&>a]:underline-offset-4 [&>a:hover]:text-primary",
151
+ className
152
+ ),
153
+ ...props
154
+ }
155
+ );
156
+ }
157
+ function FieldSeparator({
158
+ children,
159
+ className,
160
+ ...props
161
+ }) {
162
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
163
+ "div",
164
+ {
165
+ "data-slot": "field-separator",
166
+ "data-content": !!children,
167
+ className: _chunkKWLSBTB2cjs.cn.call(void 0,
168
+ "relative -my-2 h-5 text-sm group-data-[variant=outline]/field-group:-mb-2",
169
+ className
170
+ ),
171
+ ...props,
172
+ children: [
173
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkNQK5ZWC7cjs.Separator, { className: "absolute inset-0 top-1/2" }),
174
+ children && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
175
+ "span",
176
+ {
177
+ className: "relative mx-auto block w-fit bg-background px-2 text-muted-foreground",
178
+ "data-slot": "field-separator-content",
179
+ children
180
+ }
181
+ )
182
+ ]
183
+ }
184
+ );
185
+ }
186
+ function FieldError({
187
+ className,
188
+ children,
189
+ errors,
190
+ ...props
191
+ }) {
192
+ const content = _react.useMemo.call(void 0, () => {
193
+ if (children) return children;
194
+ if (!_optionalChain([errors, 'optionalAccess', _ => _.length])) return null;
195
+ const uniqueErrors = [
196
+ ...new Map(errors.map((error) => [_optionalChain([error, 'optionalAccess', _2 => _2.message]), error])).values()
197
+ ];
198
+ if (uniqueErrors.length === 1) return _optionalChain([uniqueErrors, 'access', _3 => _3[0], 'optionalAccess', _4 => _4.message]);
199
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "ul", { className: "ml-4 flex list-disc flex-col gap-1", children: uniqueErrors.map(
200
+ (error, index) => _optionalChain([error, 'optionalAccess', _5 => _5.message]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "li", { children: error.message }, index)
201
+ ) });
202
+ }, [children, errors]);
203
+ if (!content) return null;
204
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
205
+ "div",
206
+ {
207
+ role: "alert",
208
+ "data-slot": "field-error",
209
+ className: _chunkKWLSBTB2cjs.cn.call(void 0, "text-sm font-normal text-destructive", className),
210
+ ...props,
211
+ children: content
212
+ }
213
+ );
214
+ }
215
+ function FormField({
216
+ label,
217
+ htmlFor,
218
+ actions,
219
+ description,
220
+ children,
221
+ className,
222
+ ...props
223
+ }) {
224
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunkKWLSBTB2cjs.cn.call(void 0, "space-y-1.5", className), ...props, children: [
225
+ (label || actions) && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center justify-between gap-2", children: [
226
+ typeof label === "string" ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkIQZLUT2Ycjs.Label, { htmlFor, children: label }) : label,
227
+ actions && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex items-center gap-1", children: actions })
228
+ ] }),
229
+ children,
230
+ description && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-sm leading-relaxed text-muted-foreground", children: description })
231
+ ] });
232
+ }
233
+ var columnStyles = {
234
+ 1: "grid-cols-1",
235
+ 2: "grid-cols-1 sm:grid-cols-2",
236
+ 3: "grid-cols-1 sm:grid-cols-3"
237
+ };
238
+ function FieldGrid({ columns = 2, gap = "default", className, ...props }) {
239
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
240
+ "div",
241
+ {
242
+ className: _chunkKWLSBTB2cjs.cn.call(void 0, "grid", gap === "default" ? "gap-4" : "gap-8", columnStyles[columns], className),
243
+ ...props
244
+ }
245
+ );
246
+ }
247
+
248
+
249
+
250
+
251
+
252
+
253
+
254
+
255
+
256
+
257
+
258
+
259
+
260
+ exports.Field = Field; exports.FieldContent = FieldContent; exports.FieldDescription = FieldDescription; exports.FieldError = FieldError; exports.FieldGrid = FieldGrid; exports.FieldGroup = FieldGroup; exports.FieldLabel = FieldLabel; exports.FieldLegend = FieldLegend; exports.FieldSeparator = FieldSeparator; exports.FieldSet = FieldSet; exports.FieldTitle = FieldTitle; exports.FormField = FormField;