@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,103 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import { FilterDefinition } from '../lib/filter-types.cjs';
3
+ import { QuickFilter, QuickFiltersAppearance } from './quick-filters.cjs';
4
+ import { BoardColumn } from './board-view-internals.cjs';
5
+
6
+ interface BoardConfig<T> {
7
+ columns: BoardColumn[];
8
+ getColumnId: (_item: T) => string;
9
+ getItemId: (_item: T) => string | number;
10
+ renderCard: (_item: T, _columnId: string) => React.ReactNode;
11
+ renderColumnHeader?: (_column: BoardColumn, _items: T[]) => React.ReactNode;
12
+ renderColumnEmpty?: (_column: BoardColumn) => React.ReactNode;
13
+ onMove?: (_itemId: string | number, _fromColumn: string, _toColumn: string) => void;
14
+ columnWidth?: string;
15
+ columnMinHeight?: string;
16
+ viewport?: "auto" | "bounded";
17
+ }
18
+ interface ResourceListProps<T> {
19
+ data: T[] | undefined;
20
+ loading: boolean;
21
+ error: any;
22
+ refetch: () => void;
23
+ filterSchema: FilterDefinition[];
24
+ filters: Record<string, any>;
25
+ onFiltersChange: (_filters: Record<string, any>) => void;
26
+ quickFilters?: QuickFilter[];
27
+ /** Hide the "Quick filters:" label on the quick-filters row. */
28
+ quickFiltersShowLabel?: boolean;
29
+ /** Visual treatment for quick filters. Defaults to the compact surface. */
30
+ quickFiltersAppearance?: QuickFiltersAppearance;
31
+ searchTerm?: string;
32
+ onSearchChange?: (_searchTerm: string) => void;
33
+ enableServerSearch?: boolean;
34
+ searchFields?: string[];
35
+ searchPredicate?: (_item: T, _query: string) => boolean;
36
+ filterPredicate?: (_item: T, _filters: Record<string, any>) => boolean;
37
+ renderItem: (_item: T, _index: number) => React.ReactNode;
38
+ renderTable?: (_items: T[]) => React.ReactNode;
39
+ renderEmpty?: () => React.ReactNode;
40
+ renderLoading?: () => React.ReactNode;
41
+ renderError?: (_error: any) => React.ReactNode;
42
+ title: string;
43
+ showTitle?: boolean;
44
+ totalCount?: number;
45
+ searchPlaceholder?: string;
46
+ showSearch?: boolean;
47
+ showFilters?: boolean;
48
+ showViewToggle?: boolean;
49
+ /** Height and padding for the search/action toolbar. Defaults to roomy 48px controls. */
50
+ toolbarSize?: "compact" | "roomy";
51
+ /** Suppress search/filter chrome when the backing collection is truly empty. */
52
+ hideControlsWhenEmpty?: boolean;
53
+ viewMode?: "card" | "table" | "board";
54
+ onViewModeChange?: (_mode: "card" | "table" | "board") => void;
55
+ boardConfig?: BoardConfig<T>;
56
+ actions?: React.ReactNode;
57
+ filterActions?: React.ReactNode;
58
+ sortOptions?: any[];
59
+ sortValue?: string;
60
+ onSortChange?: (_value: string) => void;
61
+ className?: string;
62
+ containerClassName?: string;
63
+ cardGridClassName?: string;
64
+ showPagination?: boolean;
65
+ currentPage?: number;
66
+ onPreviousPage?: () => void;
67
+ onNextPage?: () => void;
68
+ useCompactSearch?: boolean;
69
+ /**
70
+ * Layout shape.
71
+ *
72
+ * - `"panel"` (default) — admin-shell layout: full-height flex
73
+ * container, padded `p-4 border-b` header, and a fixed-height
74
+ * ScrollArea around the content. Use when the list IS the page,
75
+ * inside an app shell that owns the chrome.
76
+ * - `"flush"` — inline layout: no padded header wrapper, no
77
+ * ScrollArea, no enforced height. Header controls (search +
78
+ * filters) sit flush with the page's own padding; content flows
79
+ * in normal document order. Use when the list is one block on a
80
+ * page that already has its own container and other sections
81
+ * above/below.
82
+ */
83
+ variant?: "panel" | "flush";
84
+ /**
85
+ * Cursor-style "load more" footer below the content. Pair with a
86
+ * server action that appends the next page to `data`. The parent
87
+ * still owns the list — this is just the button. `hasMore` toggles
88
+ * between the button and the "all caught up" line. Omit entirely
89
+ * to suppress (useful when `showPagination` page-based controls
90
+ * are in use instead).
91
+ */
92
+ loadMore?: {
93
+ onClick: () => void;
94
+ hasMore: boolean;
95
+ loading?: boolean;
96
+ label?: React.ReactNode;
97
+ loadingLabel?: React.ReactNode;
98
+ doneLabel?: React.ReactNode;
99
+ };
100
+ }
101
+ declare function ResourceList<T>({ data, loading, error, refetch: _refetch, filterSchema, filters, onFiltersChange, quickFilters, quickFiltersAppearance, searchTerm: externalSearchTerm, onSearchChange, enableServerSearch, searchFields, searchPredicate, filterPredicate, renderItem, renderTable, renderEmpty, renderLoading, renderError, title, showTitle, totalCount, searchPlaceholder, showSearch, showFilters, showViewToggle, toolbarSize, hideControlsWhenEmpty, quickFiltersShowLabel, viewMode, onViewModeChange, boardConfig, actions, filterActions, sortOptions, sortValue, onSortChange, className, containerClassName, cardGridClassName, showPagination, currentPage, onPreviousPage, onNextPage, useCompactSearch, variant, loadMore, }: ResourceListProps<T>): react_jsx_runtime.JSX.Element;
102
+
103
+ export { BoardColumn, type BoardConfig, ResourceList };
@@ -0,0 +1,103 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import { FilterDefinition } from '../lib/filter-types.js';
3
+ import { QuickFilter, QuickFiltersAppearance } from './quick-filters.js';
4
+ import { BoardColumn } from './board-view-internals.js';
5
+
6
+ interface BoardConfig<T> {
7
+ columns: BoardColumn[];
8
+ getColumnId: (_item: T) => string;
9
+ getItemId: (_item: T) => string | number;
10
+ renderCard: (_item: T, _columnId: string) => React.ReactNode;
11
+ renderColumnHeader?: (_column: BoardColumn, _items: T[]) => React.ReactNode;
12
+ renderColumnEmpty?: (_column: BoardColumn) => React.ReactNode;
13
+ onMove?: (_itemId: string | number, _fromColumn: string, _toColumn: string) => void;
14
+ columnWidth?: string;
15
+ columnMinHeight?: string;
16
+ viewport?: "auto" | "bounded";
17
+ }
18
+ interface ResourceListProps<T> {
19
+ data: T[] | undefined;
20
+ loading: boolean;
21
+ error: any;
22
+ refetch: () => void;
23
+ filterSchema: FilterDefinition[];
24
+ filters: Record<string, any>;
25
+ onFiltersChange: (_filters: Record<string, any>) => void;
26
+ quickFilters?: QuickFilter[];
27
+ /** Hide the "Quick filters:" label on the quick-filters row. */
28
+ quickFiltersShowLabel?: boolean;
29
+ /** Visual treatment for quick filters. Defaults to the compact surface. */
30
+ quickFiltersAppearance?: QuickFiltersAppearance;
31
+ searchTerm?: string;
32
+ onSearchChange?: (_searchTerm: string) => void;
33
+ enableServerSearch?: boolean;
34
+ searchFields?: string[];
35
+ searchPredicate?: (_item: T, _query: string) => boolean;
36
+ filterPredicate?: (_item: T, _filters: Record<string, any>) => boolean;
37
+ renderItem: (_item: T, _index: number) => React.ReactNode;
38
+ renderTable?: (_items: T[]) => React.ReactNode;
39
+ renderEmpty?: () => React.ReactNode;
40
+ renderLoading?: () => React.ReactNode;
41
+ renderError?: (_error: any) => React.ReactNode;
42
+ title: string;
43
+ showTitle?: boolean;
44
+ totalCount?: number;
45
+ searchPlaceholder?: string;
46
+ showSearch?: boolean;
47
+ showFilters?: boolean;
48
+ showViewToggle?: boolean;
49
+ /** Height and padding for the search/action toolbar. Defaults to roomy 48px controls. */
50
+ toolbarSize?: "compact" | "roomy";
51
+ /** Suppress search/filter chrome when the backing collection is truly empty. */
52
+ hideControlsWhenEmpty?: boolean;
53
+ viewMode?: "card" | "table" | "board";
54
+ onViewModeChange?: (_mode: "card" | "table" | "board") => void;
55
+ boardConfig?: BoardConfig<T>;
56
+ actions?: React.ReactNode;
57
+ filterActions?: React.ReactNode;
58
+ sortOptions?: any[];
59
+ sortValue?: string;
60
+ onSortChange?: (_value: string) => void;
61
+ className?: string;
62
+ containerClassName?: string;
63
+ cardGridClassName?: string;
64
+ showPagination?: boolean;
65
+ currentPage?: number;
66
+ onPreviousPage?: () => void;
67
+ onNextPage?: () => void;
68
+ useCompactSearch?: boolean;
69
+ /**
70
+ * Layout shape.
71
+ *
72
+ * - `"panel"` (default) — admin-shell layout: full-height flex
73
+ * container, padded `p-4 border-b` header, and a fixed-height
74
+ * ScrollArea around the content. Use when the list IS the page,
75
+ * inside an app shell that owns the chrome.
76
+ * - `"flush"` — inline layout: no padded header wrapper, no
77
+ * ScrollArea, no enforced height. Header controls (search +
78
+ * filters) sit flush with the page's own padding; content flows
79
+ * in normal document order. Use when the list is one block on a
80
+ * page that already has its own container and other sections
81
+ * above/below.
82
+ */
83
+ variant?: "panel" | "flush";
84
+ /**
85
+ * Cursor-style "load more" footer below the content. Pair with a
86
+ * server action that appends the next page to `data`. The parent
87
+ * still owns the list — this is just the button. `hasMore` toggles
88
+ * between the button and the "all caught up" line. Omit entirely
89
+ * to suppress (useful when `showPagination` page-based controls
90
+ * are in use instead).
91
+ */
92
+ loadMore?: {
93
+ onClick: () => void;
94
+ hasMore: boolean;
95
+ loading?: boolean;
96
+ label?: React.ReactNode;
97
+ loadingLabel?: React.ReactNode;
98
+ doneLabel?: React.ReactNode;
99
+ };
100
+ }
101
+ declare function ResourceList<T>({ data, loading, error, refetch: _refetch, filterSchema, filters, onFiltersChange, quickFilters, quickFiltersAppearance, searchTerm: externalSearchTerm, onSearchChange, enableServerSearch, searchFields, searchPredicate, filterPredicate, renderItem, renderTable, renderEmpty, renderLoading, renderError, title, showTitle, totalCount, searchPlaceholder, showSearch, showFilters, showViewToggle, toolbarSize, hideControlsWhenEmpty, quickFiltersShowLabel, viewMode, onViewModeChange, boardConfig, actions, filterActions, sortOptions, sortValue, onSortChange, className, containerClassName, cardGridClassName, showPagination, currentPage, onPreviousPage, onNextPage, useCompactSearch, variant, loadMore, }: ResourceListProps<T>): react_jsx_runtime.JSX.Element;
102
+
103
+ export { BoardColumn, type BoardConfig, ResourceList };
@@ -0,0 +1,28 @@
1
+ "use client";
2
+ "use client";
3
+ import {
4
+ ResourceList
5
+ } from "../chunk-UGF2K6NR.js";
6
+ import "../chunk-LI5EOSQG.js";
7
+ import "../chunk-J3GQXM37.js";
8
+ import "../chunk-ZRLUUZHK.js";
9
+ import "../chunk-MLHNYRFX.js";
10
+ import "../chunk-G76JANB4.js";
11
+ import "../chunk-YG7FBJRM.js";
12
+ import "../chunk-E2TQMDO7.js";
13
+ import "../chunk-H2O6NMLZ.js";
14
+ import "../chunk-RRRD5EUI.js";
15
+ import "../chunk-OICAYRVH.js";
16
+ import "../chunk-62UTAG2C.js";
17
+ import "../chunk-LELFPLTE.js";
18
+ import "../chunk-J6NXDZR5.js";
19
+ import "../chunk-QMA3WVB7.js";
20
+ import "../chunk-H7TETFLB.js";
21
+ import "../chunk-D4ZL2OEQ.js";
22
+ import "../chunk-YEW65ASC.js";
23
+ import "../chunk-HQRWRRZJ.js";
24
+ import "../chunk-PIU5SSUV.js";
25
+ import "../chunk-G6SRSWXB.js";
26
+ export {
27
+ ResourceList
28
+ };
@@ -0,0 +1,142 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { newObj[key] = obj[key]; } } } newObj.default = obj; return newObj; } }"use client";
2
+
3
+
4
+
5
+
6
+
7
+
8
+
9
+
10
+
11
+ var _chunk2BHI5ZWJcjs = require('../chunk-2BHI5ZWJ.cjs');
12
+
13
+
14
+
15
+
16
+
17
+
18
+
19
+
20
+
21
+ var _chunkWDXEJDMOcjs = require('../chunk-WDXEJDMO.cjs');
22
+
23
+
24
+ var _chunkKWLSBTB2cjs = require('../chunk-KWLSBTB2.cjs');
25
+
26
+ // src/primitives/responsive-dialog.tsx
27
+ var _react = require('react'); var React = _interopRequireWildcard(_react);
28
+ var _reactresponsive = require('react-responsive');
29
+ var _jsxruntime = require('react/jsx-runtime');
30
+ var DesktopContext = React.createContext(false);
31
+ var useIsDesktop = () => React.useContext(DesktopContext);
32
+ var DESKTOP_QUERY = { minWidth: 1024 };
33
+ var ResponsiveDialog = ({ children, ...props }) => {
34
+ const isDesktop = _reactresponsive.useMediaQuery.call(void 0, DESKTOP_QUERY);
35
+ const Root = isDesktop ? _chunkWDXEJDMOcjs.Dialog : _chunk2BHI5ZWJcjs.Drawer;
36
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, DesktopContext.Provider, { value: isDesktop, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Root, { ...props, children }) });
37
+ };
38
+ ResponsiveDialog.displayName = "ResponsiveDialog";
39
+ var ResponsiveDialogTrigger = ({
40
+ children,
41
+ ...props
42
+ }) => {
43
+ const Trigger = useIsDesktop() ? _chunkWDXEJDMOcjs.DialogTrigger : _chunk2BHI5ZWJcjs.DrawerTrigger;
44
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Trigger, { ...props, children });
45
+ };
46
+ ResponsiveDialogTrigger.displayName = "ResponsiveDialogTrigger";
47
+ var ResponsiveDialogClose = ({
48
+ children,
49
+ ...props
50
+ }) => {
51
+ const Close = useIsDesktop() ? _chunkWDXEJDMOcjs.DialogClose : _chunk2BHI5ZWJcjs.DrawerClose;
52
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Close, { ...props, children });
53
+ };
54
+ ResponsiveDialogClose.displayName = "ResponsiveDialogClose";
55
+ var ResponsiveDialogContent = React.forwardRef(({ className, children, presentation = "default", ...props }, ref) => {
56
+ if (useIsDesktop()) {
57
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
58
+ _chunkWDXEJDMOcjs.DialogContent,
59
+ {
60
+ ref,
61
+ className: _chunkKWLSBTB2cjs.cn.call(void 0,
62
+ "flex max-h-[85vh] max-w-md flex-col gap-0 overflow-hidden p-0",
63
+ presentation === "preview" && "max-w-2xl sm:h-[85vh] [&>button:last-child]:hidden",
64
+ className
65
+ ),
66
+ ...props,
67
+ children
68
+ }
69
+ );
70
+ }
71
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
72
+ _chunk2BHI5ZWJcjs.DrawerContent,
73
+ {
74
+ ref,
75
+ className: _chunkKWLSBTB2cjs.cn.call(void 0, "max-h-[92vh]", className),
76
+ ...props,
77
+ children
78
+ }
79
+ );
80
+ });
81
+ ResponsiveDialogContent.displayName = "ResponsiveDialogContent";
82
+ var ResponsiveDialogHeader = ({
83
+ className,
84
+ visibility = "visible",
85
+ ...props
86
+ }) => {
87
+ const Header = useIsDesktop() ? _chunkWDXEJDMOcjs.DialogHeader : _chunk2BHI5ZWJcjs.DrawerHeader;
88
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
89
+ Header,
90
+ {
91
+ className: _chunkKWLSBTB2cjs.cn.call(void 0, useIsDesktop() && "p-4", visibility === "screen-reader" && "sr-only", className),
92
+ ...props
93
+ }
94
+ );
95
+ };
96
+ ResponsiveDialogHeader.displayName = "ResponsiveDialogHeader";
97
+ var ResponsiveDialogBody = ({
98
+ className,
99
+ ...props
100
+ }) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunkKWLSBTB2cjs.cn.call(void 0, "min-h-0 flex-1 overflow-y-auto px-4 pb-6", className), ...props });
101
+ ResponsiveDialogBody.displayName = "ResponsiveDialogBody";
102
+ var ResponsiveDialogFooter = ({
103
+ className,
104
+ layout = "auto",
105
+ ...props
106
+ }) => {
107
+ const isDesktop = useIsDesktop();
108
+ const Footer = isDesktop ? _chunkWDXEJDMOcjs.DialogFooter : _chunk2BHI5ZWJcjs.DrawerFooter;
109
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
110
+ Footer,
111
+ {
112
+ className: _chunkKWLSBTB2cjs.cn.call(void 0,
113
+ "mt-0 shrink-0 gap-2 border-t bg-background p-4",
114
+ layout === "fill" ? "flex-row space-x-0 [&>*]:min-w-0 [&>*]:flex-1" : isDesktop ? "flex-row justify-end space-x-0 [&>*]:flex-none" : "grid grid-cols-2 [&>*]:w-full",
115
+ className
116
+ ),
117
+ ...props
118
+ }
119
+ );
120
+ };
121
+ ResponsiveDialogFooter.displayName = "ResponsiveDialogFooter";
122
+ var ResponsiveDialogTitle = React.forwardRef(({ className, visuallyHidden = false, ...props }, ref) => {
123
+ const Title = useIsDesktop() ? _chunkWDXEJDMOcjs.DialogTitle : _chunk2BHI5ZWJcjs.DrawerTitle;
124
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Title, { ref, className: _chunkKWLSBTB2cjs.cn.call(void 0, visuallyHidden && "sr-only", className), ...props });
125
+ });
126
+ ResponsiveDialogTitle.displayName = "ResponsiveDialogTitle";
127
+ var ResponsiveDialogDescription = React.forwardRef(({ className, visuallyHidden = false, ...props }, ref) => {
128
+ const Description = useIsDesktop() ? _chunkWDXEJDMOcjs.DialogDescription : _chunk2BHI5ZWJcjs.DrawerDescription;
129
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Description, { ref, className: _chunkKWLSBTB2cjs.cn.call(void 0, visuallyHidden && "sr-only", className), ...props });
130
+ });
131
+ ResponsiveDialogDescription.displayName = "ResponsiveDialogDescription";
132
+
133
+
134
+
135
+
136
+
137
+
138
+
139
+
140
+
141
+
142
+ exports.ResponsiveDialog = ResponsiveDialog; exports.ResponsiveDialogBody = ResponsiveDialogBody; exports.ResponsiveDialogClose = ResponsiveDialogClose; exports.ResponsiveDialogContent = ResponsiveDialogContent; exports.ResponsiveDialogDescription = ResponsiveDialogDescription; exports.ResponsiveDialogFooter = ResponsiveDialogFooter; exports.ResponsiveDialogHeader = ResponsiveDialogHeader; exports.ResponsiveDialogTitle = ResponsiveDialogTitle; exports.ResponsiveDialogTrigger = ResponsiveDialogTrigger;
@@ -0,0 +1,56 @@
1
+ import { Dialog, DialogClose, DialogContent, DialogDescriptionProps, DialogTitleProps, DialogTrigger } from './dialog.cjs';
2
+ import * as react_jsx_runtime from 'react/jsx-runtime';
3
+ import * as React from 'react';
4
+ import { Drawer } from './drawer.cjs';
5
+ import '@radix-ui/react-dialog';
6
+ import 'vaul';
7
+
8
+ type RootProps = React.ComponentProps<typeof Dialog> & React.ComponentProps<typeof Drawer>;
9
+ declare const ResponsiveDialog: {
10
+ ({ children, ...props }: RootProps): react_jsx_runtime.JSX.Element;
11
+ displayName: string;
12
+ };
13
+ declare const ResponsiveDialogTrigger: {
14
+ ({ children, ...props }: React.ComponentProps<typeof DialogTrigger>): react_jsx_runtime.JSX.Element;
15
+ displayName: string;
16
+ };
17
+ declare const ResponsiveDialogClose: {
18
+ ({ children, ...props }: React.ComponentProps<typeof DialogClose>): react_jsx_runtime.JSX.Element;
19
+ displayName: string;
20
+ };
21
+ /**
22
+ * Content. Desktop is a compact centered card (`max-w-md`); mobile is a
23
+ * tall bottom sheet. Both clamp height and own no inner padding — pad via
24
+ * <ResponsiveDialogHeader> (p-4) and <ResponsiveDialogBody> so the two
25
+ * presentations line up. The desktop card keeps the Dialog's built-in
26
+ * close "X"; mobile keeps the drawer grabber.
27
+ */
28
+ interface ResponsiveDialogContentProps extends React.ComponentProps<typeof DialogContent> {
29
+ presentation?: "default" | "preview";
30
+ }
31
+ declare const ResponsiveDialogContent: React.ForwardRefExoticComponent<Omit<ResponsiveDialogContentProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
32
+ interface ResponsiveDialogHeaderProps extends React.HTMLAttributes<HTMLDivElement> {
33
+ visibility?: "visible" | "screen-reader";
34
+ }
35
+ declare const ResponsiveDialogHeader: {
36
+ ({ className, visibility, ...props }: ResponsiveDialogHeaderProps): react_jsx_runtime.JSX.Element;
37
+ displayName: string;
38
+ };
39
+ /** Padded, scrollable body — identical markup in both presentations. */
40
+ declare const ResponsiveDialogBody: {
41
+ ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>): react_jsx_runtime.JSX.Element;
42
+ displayName: string;
43
+ };
44
+ interface ResponsiveDialogFooterProps extends React.HTMLAttributes<HTMLDivElement> {
45
+ /** `fill` mirrors a review action dock: direct children share the full row. */
46
+ layout?: "auto" | "fill";
47
+ }
48
+ /** Persistent action row outside the scrollable body. */
49
+ declare const ResponsiveDialogFooter: {
50
+ ({ className, layout, ...props }: ResponsiveDialogFooterProps): react_jsx_runtime.JSX.Element;
51
+ displayName: string;
52
+ };
53
+ declare const ResponsiveDialogTitle: React.ForwardRefExoticComponent<Omit<DialogTitleProps & React.RefAttributes<HTMLHeadingElement>, "ref"> & React.RefAttributes<HTMLHeadingElement>>;
54
+ declare const ResponsiveDialogDescription: React.ForwardRefExoticComponent<Omit<DialogDescriptionProps & React.RefAttributes<HTMLParagraphElement>, "ref"> & React.RefAttributes<HTMLParagraphElement>>;
55
+
56
+ export { ResponsiveDialog, ResponsiveDialogBody, ResponsiveDialogClose, ResponsiveDialogContent, ResponsiveDialogDescription, ResponsiveDialogFooter, ResponsiveDialogHeader, ResponsiveDialogTitle, ResponsiveDialogTrigger };
@@ -0,0 +1,56 @@
1
+ import { Dialog, DialogClose, DialogContent, DialogDescriptionProps, DialogTitleProps, DialogTrigger } from './dialog.js';
2
+ import * as react_jsx_runtime from 'react/jsx-runtime';
3
+ import * as React from 'react';
4
+ import { Drawer } from './drawer.js';
5
+ import '@radix-ui/react-dialog';
6
+ import 'vaul';
7
+
8
+ type RootProps = React.ComponentProps<typeof Dialog> & React.ComponentProps<typeof Drawer>;
9
+ declare const ResponsiveDialog: {
10
+ ({ children, ...props }: RootProps): react_jsx_runtime.JSX.Element;
11
+ displayName: string;
12
+ };
13
+ declare const ResponsiveDialogTrigger: {
14
+ ({ children, ...props }: React.ComponentProps<typeof DialogTrigger>): react_jsx_runtime.JSX.Element;
15
+ displayName: string;
16
+ };
17
+ declare const ResponsiveDialogClose: {
18
+ ({ children, ...props }: React.ComponentProps<typeof DialogClose>): react_jsx_runtime.JSX.Element;
19
+ displayName: string;
20
+ };
21
+ /**
22
+ * Content. Desktop is a compact centered card (`max-w-md`); mobile is a
23
+ * tall bottom sheet. Both clamp height and own no inner padding — pad via
24
+ * <ResponsiveDialogHeader> (p-4) and <ResponsiveDialogBody> so the two
25
+ * presentations line up. The desktop card keeps the Dialog's built-in
26
+ * close "X"; mobile keeps the drawer grabber.
27
+ */
28
+ interface ResponsiveDialogContentProps extends React.ComponentProps<typeof DialogContent> {
29
+ presentation?: "default" | "preview";
30
+ }
31
+ declare const ResponsiveDialogContent: React.ForwardRefExoticComponent<Omit<ResponsiveDialogContentProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
32
+ interface ResponsiveDialogHeaderProps extends React.HTMLAttributes<HTMLDivElement> {
33
+ visibility?: "visible" | "screen-reader";
34
+ }
35
+ declare const ResponsiveDialogHeader: {
36
+ ({ className, visibility, ...props }: ResponsiveDialogHeaderProps): react_jsx_runtime.JSX.Element;
37
+ displayName: string;
38
+ };
39
+ /** Padded, scrollable body — identical markup in both presentations. */
40
+ declare const ResponsiveDialogBody: {
41
+ ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>): react_jsx_runtime.JSX.Element;
42
+ displayName: string;
43
+ };
44
+ interface ResponsiveDialogFooterProps extends React.HTMLAttributes<HTMLDivElement> {
45
+ /** `fill` mirrors a review action dock: direct children share the full row. */
46
+ layout?: "auto" | "fill";
47
+ }
48
+ /** Persistent action row outside the scrollable body. */
49
+ declare const ResponsiveDialogFooter: {
50
+ ({ className, layout, ...props }: ResponsiveDialogFooterProps): react_jsx_runtime.JSX.Element;
51
+ displayName: string;
52
+ };
53
+ declare const ResponsiveDialogTitle: React.ForwardRefExoticComponent<Omit<DialogTitleProps & React.RefAttributes<HTMLHeadingElement>, "ref"> & React.RefAttributes<HTMLHeadingElement>>;
54
+ declare const ResponsiveDialogDescription: React.ForwardRefExoticComponent<Omit<DialogDescriptionProps & React.RefAttributes<HTMLParagraphElement>, "ref"> & React.RefAttributes<HTMLParagraphElement>>;
55
+
56
+ export { ResponsiveDialog, ResponsiveDialogBody, ResponsiveDialogClose, ResponsiveDialogContent, ResponsiveDialogDescription, ResponsiveDialogFooter, ResponsiveDialogHeader, ResponsiveDialogTitle, ResponsiveDialogTrigger };
@@ -0,0 +1,142 @@
1
+ "use client";
2
+ import {
3
+ Drawer,
4
+ DrawerClose,
5
+ DrawerContent,
6
+ DrawerDescription,
7
+ DrawerFooter,
8
+ DrawerHeader,
9
+ DrawerTitle,
10
+ DrawerTrigger
11
+ } from "../chunk-4HWCNRK4.js";
12
+ import {
13
+ Dialog,
14
+ DialogClose,
15
+ DialogContent,
16
+ DialogDescription,
17
+ DialogFooter,
18
+ DialogHeader,
19
+ DialogTitle,
20
+ DialogTrigger
21
+ } from "../chunk-3QT5VYZ3.js";
22
+ import {
23
+ cn
24
+ } from "../chunk-G6SRSWXB.js";
25
+
26
+ // src/primitives/responsive-dialog.tsx
27
+ import * as React from "react";
28
+ import { useMediaQuery } from "react-responsive";
29
+ import { jsx } from "react/jsx-runtime";
30
+ var DesktopContext = React.createContext(false);
31
+ var useIsDesktop = () => React.useContext(DesktopContext);
32
+ var DESKTOP_QUERY = { minWidth: 1024 };
33
+ var ResponsiveDialog = ({ children, ...props }) => {
34
+ const isDesktop = useMediaQuery(DESKTOP_QUERY);
35
+ const Root = isDesktop ? Dialog : Drawer;
36
+ return /* @__PURE__ */ jsx(DesktopContext.Provider, { value: isDesktop, children: /* @__PURE__ */ jsx(Root, { ...props, children }) });
37
+ };
38
+ ResponsiveDialog.displayName = "ResponsiveDialog";
39
+ var ResponsiveDialogTrigger = ({
40
+ children,
41
+ ...props
42
+ }) => {
43
+ const Trigger = useIsDesktop() ? DialogTrigger : DrawerTrigger;
44
+ return /* @__PURE__ */ jsx(Trigger, { ...props, children });
45
+ };
46
+ ResponsiveDialogTrigger.displayName = "ResponsiveDialogTrigger";
47
+ var ResponsiveDialogClose = ({
48
+ children,
49
+ ...props
50
+ }) => {
51
+ const Close = useIsDesktop() ? DialogClose : DrawerClose;
52
+ return /* @__PURE__ */ jsx(Close, { ...props, children });
53
+ };
54
+ ResponsiveDialogClose.displayName = "ResponsiveDialogClose";
55
+ var ResponsiveDialogContent = React.forwardRef(({ className, children, presentation = "default", ...props }, ref) => {
56
+ if (useIsDesktop()) {
57
+ return /* @__PURE__ */ jsx(
58
+ DialogContent,
59
+ {
60
+ ref,
61
+ className: cn(
62
+ "flex max-h-[85vh] max-w-md flex-col gap-0 overflow-hidden p-0",
63
+ presentation === "preview" && "max-w-2xl sm:h-[85vh] [&>button:last-child]:hidden",
64
+ className
65
+ ),
66
+ ...props,
67
+ children
68
+ }
69
+ );
70
+ }
71
+ return /* @__PURE__ */ jsx(
72
+ DrawerContent,
73
+ {
74
+ ref,
75
+ className: cn("max-h-[92vh]", className),
76
+ ...props,
77
+ children
78
+ }
79
+ );
80
+ });
81
+ ResponsiveDialogContent.displayName = "ResponsiveDialogContent";
82
+ var ResponsiveDialogHeader = ({
83
+ className,
84
+ visibility = "visible",
85
+ ...props
86
+ }) => {
87
+ const Header = useIsDesktop() ? DialogHeader : DrawerHeader;
88
+ return /* @__PURE__ */ jsx(
89
+ Header,
90
+ {
91
+ className: cn(useIsDesktop() && "p-4", visibility === "screen-reader" && "sr-only", className),
92
+ ...props
93
+ }
94
+ );
95
+ };
96
+ ResponsiveDialogHeader.displayName = "ResponsiveDialogHeader";
97
+ var ResponsiveDialogBody = ({
98
+ className,
99
+ ...props
100
+ }) => /* @__PURE__ */ jsx("div", { className: cn("min-h-0 flex-1 overflow-y-auto px-4 pb-6", className), ...props });
101
+ ResponsiveDialogBody.displayName = "ResponsiveDialogBody";
102
+ var ResponsiveDialogFooter = ({
103
+ className,
104
+ layout = "auto",
105
+ ...props
106
+ }) => {
107
+ const isDesktop = useIsDesktop();
108
+ const Footer = isDesktop ? DialogFooter : DrawerFooter;
109
+ return /* @__PURE__ */ jsx(
110
+ Footer,
111
+ {
112
+ className: cn(
113
+ "mt-0 shrink-0 gap-2 border-t bg-background p-4",
114
+ layout === "fill" ? "flex-row space-x-0 [&>*]:min-w-0 [&>*]:flex-1" : isDesktop ? "flex-row justify-end space-x-0 [&>*]:flex-none" : "grid grid-cols-2 [&>*]:w-full",
115
+ className
116
+ ),
117
+ ...props
118
+ }
119
+ );
120
+ };
121
+ ResponsiveDialogFooter.displayName = "ResponsiveDialogFooter";
122
+ var ResponsiveDialogTitle = React.forwardRef(({ className, visuallyHidden = false, ...props }, ref) => {
123
+ const Title = useIsDesktop() ? DialogTitle : DrawerTitle;
124
+ return /* @__PURE__ */ jsx(Title, { ref, className: cn(visuallyHidden && "sr-only", className), ...props });
125
+ });
126
+ ResponsiveDialogTitle.displayName = "ResponsiveDialogTitle";
127
+ var ResponsiveDialogDescription = React.forwardRef(({ className, visuallyHidden = false, ...props }, ref) => {
128
+ const Description = useIsDesktop() ? DialogDescription : DrawerDescription;
129
+ return /* @__PURE__ */ jsx(Description, { ref, className: cn(visuallyHidden && "sr-only", className), ...props });
130
+ });
131
+ ResponsiveDialogDescription.displayName = "ResponsiveDialogDescription";
132
+ export {
133
+ ResponsiveDialog,
134
+ ResponsiveDialogBody,
135
+ ResponsiveDialogClose,
136
+ ResponsiveDialogContent,
137
+ ResponsiveDialogDescription,
138
+ ResponsiveDialogFooter,
139
+ ResponsiveDialogHeader,
140
+ ResponsiveDialogTitle,
141
+ ResponsiveDialogTrigger
142
+ };
@@ -0,0 +1,29 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});"use client";
2
+
3
+ // src/primitives/responsive-view.tsx
4
+ var _reactresponsive = require('react-responsive');
5
+ var _jsxruntime = require('react/jsx-runtime');
6
+ function ResponsiveView({ mobile, desktop }) {
7
+ const isMobile = _reactresponsive.useMediaQuery.call(void 0, { maxWidth: 1024 });
8
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
9
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
10
+ "div",
11
+ {
12
+ className: "lg:hidden",
13
+ style: { display: isMobile ? void 0 : "none" },
14
+ children: mobile
15
+ }
16
+ ),
17
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
18
+ "div",
19
+ {
20
+ className: "hidden lg:block",
21
+ style: { display: isMobile ? "none" : void 0 },
22
+ children: desktop
23
+ }
24
+ )
25
+ ] });
26
+ }
27
+
28
+
29
+ exports.ResponsiveView = ResponsiveView;
@@ -0,0 +1,10 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import { ReactNode } from 'react';
3
+
4
+ interface ResponsiveViewProps {
5
+ mobile: ReactNode;
6
+ desktop: ReactNode;
7
+ }
8
+ declare function ResponsiveView({ mobile, desktop }: ResponsiveViewProps): react_jsx_runtime.JSX.Element;
9
+
10
+ export { ResponsiveView };