@arbidocs/blocks 0.4.147 → 0.4.151

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 (339) hide show
  1. package/dist/ConnectedNativeDocxComparison-OFPIXNJB.js +35 -0
  2. package/dist/ConnectedNativeDocxComparison-OFPIXNJB.js.map +1 -0
  3. package/dist/ConnectedNativeDocxComparison-Y5BNLNH6.cjs +44 -0
  4. package/dist/ConnectedNativeDocxComparison-Y5BNLNH6.cjs.map +1 -0
  5. package/dist/ConnectedNativeDocxEditor-HTEW5JAH.cjs +46 -0
  6. package/dist/ConnectedNativeDocxEditor-HTEW5JAH.cjs.map +1 -0
  7. package/dist/ConnectedNativeDocxEditor-LRYU5HPA.js +33 -0
  8. package/dist/ConnectedNativeDocxEditor-LRYU5HPA.js.map +1 -0
  9. package/dist/ConnectedStreamedWordArtifact-QAUVUCSX.js +35 -0
  10. package/dist/ConnectedStreamedWordArtifact-QAUVUCSX.js.map +1 -0
  11. package/dist/ConnectedStreamedWordArtifact-QW74LKHN.cjs +44 -0
  12. package/dist/ConnectedStreamedWordArtifact-QW74LKHN.cjs.map +1 -0
  13. package/dist/FactTextEditor-YESAU2IJ.js +25 -0
  14. package/dist/FactTextEditor-YESAU2IJ.js.map +1 -0
  15. package/dist/FactTextEditor-YUPBCTXK.cjs +27 -0
  16. package/dist/FactTextEditor-YUPBCTXK.cjs.map +1 -0
  17. package/dist/{NativeDocxEditor-BE2OEOTJ.cjs → NativeDocxEditor-5VBNM5I7.cjs} +8 -8
  18. package/dist/{NativeDocxEditor-BE2OEOTJ.cjs.map → NativeDocxEditor-5VBNM5I7.cjs.map} +1 -1
  19. package/dist/{NativeDocxEditor-KOPFMRYW.js → NativeDocxEditor-XT5ZLFGU.js} +4 -4
  20. package/dist/{NativeDocxEditor-KOPFMRYW.js.map → NativeDocxEditor-XT5ZLFGU.js.map} +1 -1
  21. package/dist/agents/index.cjs +263 -264
  22. package/dist/agents/index.js +6 -7
  23. package/dist/calendar/index.cjs +117 -125
  24. package/dist/calendar/index.d.ts +0 -1
  25. package/dist/calendar/index.js +1 -1
  26. package/dist/chat/index.cjs +78 -78
  27. package/dist/chat/index.js +3 -3
  28. package/dist/{chunk-2FL7QJKJ.js → chunk-265GOG4W.js} +3 -3
  29. package/dist/{chunk-2FL7QJKJ.js.map → chunk-265GOG4W.js.map} +1 -1
  30. package/dist/{chunk-LTU35TQN.cjs → chunk-2FLWPM3B.cjs} +636 -31
  31. package/dist/chunk-2FLWPM3B.cjs.map +1 -0
  32. package/dist/{chunk-SUUPR735.js → chunk-3PCBYOIZ.js} +4 -4
  33. package/dist/{chunk-SUUPR735.js.map → chunk-3PCBYOIZ.js.map} +1 -1
  34. package/dist/{chunk-WIZ7Z7FN.js → chunk-4236BRZK.js} +46 -221
  35. package/dist/chunk-4236BRZK.js.map +1 -0
  36. package/dist/{chunk-IL3WB3YX.cjs → chunk-4JNKXOFZ.cjs} +3 -3
  37. package/dist/{chunk-IL3WB3YX.cjs.map → chunk-4JNKXOFZ.cjs.map} +1 -1
  38. package/dist/{chunk-ODRHHWHY.cjs → chunk-4KMLM3GY.cjs} +4 -4
  39. package/dist/chunk-4KMLM3GY.cjs.map +1 -0
  40. package/dist/chunk-6I6CVX5G.cjs +22 -0
  41. package/dist/chunk-6I6CVX5G.cjs.map +1 -0
  42. package/dist/{chunk-MHFF5N65.cjs → chunk-757OYF6G.cjs} +4 -38
  43. package/dist/chunk-757OYF6G.cjs.map +1 -0
  44. package/dist/chunk-B3FMUFAW.cjs +1956 -0
  45. package/dist/chunk-B3FMUFAW.cjs.map +1 -0
  46. package/dist/{chunk-B3AHCIV5.js → chunk-BJ24VPOA.js} +4 -55
  47. package/dist/chunk-BJ24VPOA.js.map +1 -0
  48. package/dist/chunk-C7PTF6BQ.cjs +172 -0
  49. package/dist/chunk-C7PTF6BQ.cjs.map +1 -0
  50. package/dist/{chunk-LZRMXJIE.js → chunk-COA3S3CZ.js} +3 -3
  51. package/dist/{chunk-LZRMXJIE.js.map → chunk-COA3S3CZ.js.map} +1 -1
  52. package/dist/{chunk-VUR63NMQ.js → chunk-CROTH2BS.js} +6 -6
  53. package/dist/{chunk-VUR63NMQ.js.map → chunk-CROTH2BS.js.map} +1 -1
  54. package/dist/{chunk-AO7SK6WP.cjs → chunk-CU2O32Z4.cjs} +31 -31
  55. package/dist/{chunk-AO7SK6WP.cjs.map → chunk-CU2O32Z4.cjs.map} +1 -1
  56. package/dist/chunk-D3WFIFRY.cjs +659 -0
  57. package/dist/chunk-D3WFIFRY.cjs.map +1 -0
  58. package/dist/{chunk-DAHCRVPM.js → chunk-DB2OXRQC.js} +84 -82
  59. package/dist/chunk-DB2OXRQC.js.map +1 -0
  60. package/dist/{chunk-QXMR5YHC.js → chunk-DIB4JYUY.js} +19 -3
  61. package/dist/chunk-DIB4JYUY.js.map +1 -0
  62. package/dist/chunk-DVB5ZKOF.js +22 -0
  63. package/dist/chunk-DVB5ZKOF.js.map +1 -0
  64. package/dist/chunk-EYJMMGXF.js +19 -0
  65. package/dist/chunk-EYJMMGXF.js.map +1 -0
  66. package/dist/chunk-FAXXN7KI.cjs +213 -0
  67. package/dist/chunk-FAXXN7KI.cjs.map +1 -0
  68. package/dist/{chunk-2MJWWPHY.js → chunk-G4IYES7G.js} +140 -15
  69. package/dist/chunk-G4IYES7G.js.map +1 -0
  70. package/dist/{chunk-T5I4NRFP.cjs → chunk-GFOEWPAP.cjs} +8 -8
  71. package/dist/{chunk-T5I4NRFP.cjs.map → chunk-GFOEWPAP.cjs.map} +1 -1
  72. package/dist/{chunk-QI6AIHWP.cjs → chunk-GOWXP5KT.cjs} +145 -14
  73. package/dist/chunk-GOWXP5KT.cjs.map +1 -0
  74. package/dist/chunk-HALD6ZB5.cjs +18 -0
  75. package/dist/chunk-HALD6ZB5.cjs.map +1 -0
  76. package/dist/chunk-HUJF2XM2.js +6584 -0
  77. package/dist/chunk-HUJF2XM2.js.map +1 -0
  78. package/dist/{chunk-NRFAWUVD.js → chunk-JAANWQGB.js} +157 -157
  79. package/dist/chunk-JAANWQGB.js.map +1 -0
  80. package/dist/{chunk-7RJTEWYM.js → chunk-JGOST4IL.js} +350 -64
  81. package/dist/chunk-JGOST4IL.js.map +1 -0
  82. package/dist/chunk-KHXEIEXN.js +41 -0
  83. package/dist/chunk-KHXEIEXN.js.map +1 -0
  84. package/dist/chunk-KQYPP72K.js +644 -0
  85. package/dist/chunk-KQYPP72K.js.map +1 -0
  86. package/dist/chunk-KUT2Y7JF.cjs +43 -0
  87. package/dist/chunk-KUT2Y7JF.cjs.map +1 -0
  88. package/dist/{chunk-6YTHQ73P.cjs → chunk-LLYZGH3L.cjs} +3 -56
  89. package/dist/chunk-LLYZGH3L.cjs.map +1 -0
  90. package/dist/{chunk-YSHIC4NJ.cjs → chunk-LXTOOUEN.cjs} +159 -154
  91. package/dist/chunk-LXTOOUEN.cjs.map +1 -0
  92. package/dist/{chunk-EVUEIBNU.js → chunk-M4S75AEJ.js} +44 -5
  93. package/dist/chunk-M4S75AEJ.js.map +1 -0
  94. package/dist/{chunk-V5OAXIBN.cjs → chunk-NPR5BGFF.cjs} +11 -11
  95. package/dist/{chunk-V5OAXIBN.cjs.map → chunk-NPR5BGFF.cjs.map} +1 -1
  96. package/dist/{chunk-PLJ7PHWU.cjs → chunk-NS7NVX4E.cjs} +3 -3
  97. package/dist/{chunk-PLJ7PHWU.cjs.map → chunk-NS7NVX4E.cjs.map} +1 -1
  98. package/dist/{chunk-AINU3EJ6.cjs → chunk-Q4BY2CQQ.cjs} +92 -90
  99. package/dist/chunk-Q4BY2CQQ.cjs.map +1 -0
  100. package/dist/chunk-QN47Q4N7.js +16 -0
  101. package/dist/chunk-QN47Q4N7.js.map +1 -0
  102. package/dist/{chunk-I2QSDQQV.cjs → chunk-QT3A4PFC.cjs} +21 -2
  103. package/dist/chunk-QT3A4PFC.cjs.map +1 -0
  104. package/dist/{chunk-ZM26YEOT.js → chunk-RY2SODRN.js} +3 -3
  105. package/dist/{chunk-ZM26YEOT.js.map → chunk-RY2SODRN.js.map} +1 -1
  106. package/dist/chunk-SDOEHEJP.js +208 -0
  107. package/dist/chunk-SDOEHEJP.js.map +1 -0
  108. package/dist/{chunk-DETZZBG2.cjs → chunk-SIB6C7P7.cjs} +43 -2
  109. package/dist/chunk-SIB6C7P7.cjs.map +1 -0
  110. package/dist/{chunk-MFY2ZNP6.cjs → chunk-SMN32BQ3.cjs} +4 -4
  111. package/dist/chunk-SMN32BQ3.cjs.map +1 -0
  112. package/dist/chunk-T74Q3MCZ.cjs +6751 -0
  113. package/dist/chunk-T74Q3MCZ.cjs.map +1 -0
  114. package/dist/{chunk-AOSUHWIL.js → chunk-TZOQKV64.js} +4 -37
  115. package/dist/chunk-TZOQKV64.js.map +1 -0
  116. package/dist/{chunk-U37AYUPI.cjs → chunk-U6JQ4KMX.cjs} +46 -233
  117. package/dist/chunk-U6JQ4KMX.cjs.map +1 -0
  118. package/dist/chunk-WFA2GVZJ.js +16 -0
  119. package/dist/chunk-WFA2GVZJ.js.map +1 -0
  120. package/dist/chunk-WU34CHU5.js +1907 -0
  121. package/dist/chunk-WU34CHU5.js.map +1 -0
  122. package/dist/{chunk-O4YPVYPO.cjs → chunk-YAEXSCUW.cjs} +364 -60
  123. package/dist/chunk-YAEXSCUW.cjs.map +1 -0
  124. package/dist/{chunk-H74HEPKT.js → chunk-YXNNNP57.js} +598 -13
  125. package/dist/chunk-YXNNNP57.js.map +1 -0
  126. package/dist/chunk-Z27QMJ6S.cjs +25 -0
  127. package/dist/chunk-Z27QMJ6S.cjs.map +1 -0
  128. package/dist/{chunk-CSI2B2H5.js → chunk-Z4NQ3TED.js} +4 -4
  129. package/dist/chunk-Z4NQ3TED.js.map +1 -0
  130. package/dist/{chunk-DGV7HQA7.js → chunk-ZLEYLCE4.js} +4 -4
  131. package/dist/chunk-ZLEYLCE4.js.map +1 -0
  132. package/dist/chunk-ZNLTEZEF.js +170 -0
  133. package/dist/chunk-ZNLTEZEF.js.map +1 -0
  134. package/dist/chunk-ZP6Q3KXU.cjs +18 -0
  135. package/dist/chunk-ZP6Q3KXU.cjs.map +1 -0
  136. package/dist/citations/index.cjs +14 -14
  137. package/dist/citations/index.js +2 -2
  138. package/dist/collaboration/index.cjs +35 -35
  139. package/dist/collaboration/index.js +1 -1
  140. package/dist/connect/docx.cjs +21 -26
  141. package/dist/connect/docx.cjs.map +1 -1
  142. package/dist/connect/docx.js +10 -26
  143. package/dist/connect/docx.js.map +1 -1
  144. package/dist/connect/index.cjs +8662 -2824
  145. package/dist/connect/index.cjs.map +1 -1
  146. package/dist/connect/index.d.ts +10 -2
  147. package/dist/connect/index.js +8467 -2670
  148. package/dist/connect/index.js.map +1 -1
  149. package/dist/connect/viewer.cjs +2357 -0
  150. package/dist/connect/viewer.cjs.map +1 -0
  151. package/dist/connect/viewer.d.ts +8 -0
  152. package/dist/connect/viewer.js +2350 -0
  153. package/dist/connect/viewer.js.map +1 -0
  154. package/dist/connection/ConnectedWorkflowsTable.d.ts +2 -12
  155. package/dist/connection/ai.d.ts +2 -9
  156. package/dist/connection/billing/AddAddonDialog.d.ts +24 -0
  157. package/dist/connection/billing/BillingCard.d.ts +18 -0
  158. package/dist/connection/billing/BillingProjectEntity.d.ts +9 -0
  159. package/dist/connection/billing/ChangePlanDialog.d.ts +20 -0
  160. package/dist/connection/billing/ChangeProPlan.d.ts +20 -0
  161. package/dist/connection/billing/CheckoutTotal.d.ts +12 -0
  162. package/dist/connection/billing/DailyCapEditor.d.ts +4 -0
  163. package/dist/connection/billing/InvoicesModal.d.ts +6 -0
  164. package/dist/connection/billing/NewProjectFlow.d.ts +14 -0
  165. package/dist/connection/billing/PlanChangeLines.d.ts +13 -0
  166. package/dist/connection/billing/PlanSelector.d.ts +50 -0
  167. package/dist/connection/billing/ProjectBilling.d.ts +24 -0
  168. package/dist/connection/billing/ProjectDetail.d.ts +16 -0
  169. package/dist/connection/billing/ProjectUsageCard.d.ts +21 -0
  170. package/dist/connection/billing/ProjectUsageContent.d.ts +18 -0
  171. package/dist/connection/billing/ProjectsTable.d.ts +13 -0
  172. package/dist/connection/billing/ReduceAddonDialog.d.ts +18 -0
  173. package/dist/connection/billing/ReferralReward.d.ts +32 -0
  174. package/dist/connection/billing/SharedProjects.d.ts +13 -0
  175. package/dist/connection/billing/StripeCheckoutModal.d.ts +32 -0
  176. package/dist/connection/billing/SubscriptionPlans.d.ts +15 -0
  177. package/dist/connection/billing/SubscriptionStatus.d.ts +10 -0
  178. package/dist/connection/billing/addon-pricing.d.ts +97 -0
  179. package/dist/connection/billing/api-error.d.ts +6 -0
  180. package/dist/connection/billing/billing-country.d.ts +14 -0
  181. package/dist/connection/billing/billing-focus.d.ts +11 -0
  182. package/dist/connection/billing/index.d.ts +22 -0
  183. package/dist/connection/billing/plan-badge.d.ts +15 -0
  184. package/dist/connection/billing/plan-change-outcome.d.ts +15 -0
  185. package/dist/connection/billing/plan-constants.d.ts +29 -0
  186. package/dist/connection/billing/plan-pricing.d.ts +67 -0
  187. package/dist/connection/billing/quota-items.d.ts +33 -0
  188. package/dist/connection/billing/referral-reward.d.ts +28 -0
  189. package/dist/connection/billing/refusal-copy.d.ts +5 -0
  190. package/dist/connection/billing/reward-balance.d.ts +19 -0
  191. package/dist/connection/billing/support.d.ts +35 -0
  192. package/dist/connection/billing/tax-quote.d.ts +36 -0
  193. package/dist/connection/billing/useAddonPurchase.d.ts +32 -0
  194. package/dist/connection/billing/useAutoRefreshPendingProjects.d.ts +11 -0
  195. package/dist/connection/billing/useCheckoutQuote.d.ts +30 -0
  196. package/dist/connection/billing/useOpenBillingPortal.d.ts +12 -0
  197. package/dist/connection/calendar/CalendarSettingsDialog.d.ts +1 -1
  198. package/dist/connection/facts/ConnectedFactsPage.d.ts +50 -0
  199. package/dist/connection/facts/FactMarkdownEditor.d.ts +57 -0
  200. package/dist/connection/facts/FactSourcesPopover.d.ts +38 -0
  201. package/dist/connection/facts/FactTextEditor.d.ts +2 -0
  202. package/dist/connection/facts/factNouns.d.ts +4 -0
  203. package/dist/connection/facts/factPageColumns.d.ts +37 -0
  204. package/dist/connection/facts/types.d.ts +127 -0
  205. package/dist/connection/facts/useFactActions.d.ts +10 -0
  206. package/dist/connection/facts/useFactComposer.d.ts +54 -0
  207. package/dist/connection/facts/useFactFilters.d.ts +101 -0
  208. package/dist/connection/facts/useFactSelection.d.ts +82 -0
  209. package/dist/connection/facts/useFactsGrid.d.ts +87 -0
  210. package/dist/connection/facts/useFactsPageView.d.ts +4 -0
  211. package/dist/connection/mail/ConnectedMailComposer.d.ts +3 -1
  212. package/dist/connection/mail/ConnectedMailbox.d.ts +4 -2
  213. package/dist/connection/mail/MailComposerForm.d.ts +4 -2
  214. package/dist/connection/mail/MailRecipientInput.d.ts +14 -0
  215. package/dist/connection/mail/index.d.ts +1 -1
  216. package/dist/connection/mail/types.d.ts +10 -0
  217. package/dist/connection/search/ConnectedSearchPage.d.ts +64 -0
  218. package/dist/connection/search/SearchResultRows.d.ts +38 -0
  219. package/dist/connection/search/index.d.ts +2 -0
  220. package/dist/connection/tags/ConnectedTagTable.d.ts +108 -0
  221. package/dist/connection/tags/ConnectedTagsPage.d.ts +55 -0
  222. package/dist/connection/tags/DocTagPassages.d.ts +25 -0
  223. package/dist/connection/tags/GlossaryExport.d.ts +7 -0
  224. package/dist/connection/tags/TagCombineFilter.d.ts +14 -0
  225. package/dist/connection/tags/TagPlacement.d.ts +16 -0
  226. package/dist/connection/tags/TagsPageSections.d.ts +36 -0
  227. package/dist/connection/tags/tagCombine.d.ts +55 -0
  228. package/dist/connection/useConnectedWorkNotifications.d.ts +7 -24
  229. package/dist/connection/viewer/ConnectedDocumentToolsProvider.d.ts +11 -0
  230. package/dist/connection/viewer/ConnectedDocumentViewer.d.ts +21 -0
  231. package/dist/connection/viewer/FinaliseTranslationButton.d.ts +15 -0
  232. package/dist/connection/viewer/ViewerPdfPane.d.ts +46 -0
  233. package/dist/connection/viewer/parsed/ParsedPassage.d.ts +48 -0
  234. package/dist/connection/viewer/parsed/ParsedTextView.d.ts +17 -0
  235. package/dist/connection/viewer/parsed/PassageTagPanel.d.ts +18 -0
  236. package/dist/connection/viewer/parsed/citation-line.d.ts +17 -0
  237. package/dist/connection/viewer/parsed/document-tags.d.ts +8 -0
  238. package/dist/connection/viewer/parsed/useChunkTagging.d.ts +46 -0
  239. package/dist/connection/viewer/parsed/useCitationSelection.d.ts +27 -0
  240. package/dist/connection/viewer/parsed/useDocumentLabels.d.ts +38 -0
  241. package/dist/connection/viewer/parsed/useLazyPages.d.ts +18 -0
  242. package/dist/connection/viewer/parsed/usePageScrollSync.d.ts +17 -0
  243. package/dist/connection/viewer/parsed/usePassageCopy.d.ts +25 -0
  244. package/dist/connection/viewer/support.d.ts +97 -0
  245. package/dist/connection/viewer/useImageCrop.d.ts +13 -0
  246. package/dist/connection/viewer/useViewedDocument.d.ts +70 -0
  247. package/dist/connection/viewer/useViewerBlobs.d.ts +15 -0
  248. package/dist/connection/viewer/useViewerTabs.d.ts +18 -0
  249. package/dist/connection/viewer/useViewerVersions.d.ts +11 -0
  250. package/dist/connection/workspace-settings/useConnectedWorkspaceSettings.d.ts +6 -0
  251. package/dist/document-tools/index.cjs +59 -652
  252. package/dist/document-tools/index.cjs.map +1 -1
  253. package/dist/document-tools/index.js +2 -641
  254. package/dist/document-tools/index.js.map +1 -1
  255. package/dist/docx/index.cjs +48 -47
  256. package/dist/docx/index.js +4 -3
  257. package/dist/facts/FactsBulkBar.d.ts +6 -3
  258. package/dist/facts/cited-version-ref.d.ts +1 -0
  259. package/dist/facts/index.cjs +204 -1940
  260. package/dist/facts/index.cjs.map +1 -1
  261. package/dist/facts/index.d.ts +1 -0
  262. package/dist/facts/index.js +13 -1895
  263. package/dist/facts/index.js.map +1 -1
  264. package/dist/files/TagPassagePanel.d.ts +2 -1
  265. package/dist/files/ViewerChrome.d.ts +5 -4
  266. package/dist/files/ViewerControlBar.d.ts +12 -0
  267. package/dist/files/doc-labels.d.ts +35 -0
  268. package/dist/files/grid/FilterButton.d.ts +12 -0
  269. package/dist/files/grid/RowDensityControl.d.ts +18 -0
  270. package/dist/files/grid/row-density.d.ts +27 -0
  271. package/dist/files/index.cjs +778 -7099
  272. package/dist/files/index.cjs.map +1 -1
  273. package/dist/files/index.d.ts +5 -0
  274. package/dist/files/index.js +13 -6918
  275. package/dist/files/index.js.map +1 -1
  276. package/dist/index.cjs +993 -1209
  277. package/dist/index.cjs.map +1 -1
  278. package/dist/index.js +22 -355
  279. package/dist/index.js.map +1 -1
  280. package/dist/retrieval/SearchSnippet.d.ts +6 -0
  281. package/dist/retrieval/index.cjs +74 -41
  282. package/dist/retrieval/index.d.ts +2 -0
  283. package/dist/retrieval/index.js +2 -1
  284. package/dist/retrieval/search-results.d.ts +46 -0
  285. package/dist/settings/Billing.d.ts +0 -66
  286. package/dist/settings/SubscriptionParts.d.ts +1 -50
  287. package/dist/settings/index.cjs +166 -214
  288. package/dist/settings/index.d.ts +3 -2
  289. package/dist/settings/index.js +1 -1
  290. package/dist/settings/inverted-index-filter.d.ts +26 -0
  291. package/dist/studio/index.cjs +3 -3
  292. package/dist/studio/index.js +2 -2
  293. package/dist/tags/definitions.d.ts +10 -0
  294. package/dist/tags/index.d.ts +4 -1
  295. package/dist/tags/page/ExtractEntitiesDialog.d.ts +24 -0
  296. package/dist/tags/page/TagPicker.d.ts +16 -0
  297. package/dist/tags/page/tagsPageLabels.d.ts +36 -0
  298. package/dist/workflow-canvas/index.cjs +19 -20
  299. package/dist/workflow-canvas/index.cjs.map +1 -1
  300. package/dist/workflow-canvas/index.js +6 -7
  301. package/dist/workflow-canvas/index.js.map +1 -1
  302. package/node_modules/@arbidocs/coedit/package.json +1 -1
  303. package/package.json +13 -4
  304. package/dist/calendar/access-setup.d.ts +0 -8
  305. package/dist/chunk-2MJWWPHY.js.map +0 -1
  306. package/dist/chunk-3AFWGEDJ.cjs +0 -53
  307. package/dist/chunk-3AFWGEDJ.cjs.map +0 -1
  308. package/dist/chunk-6YTHQ73P.cjs.map +0 -1
  309. package/dist/chunk-7RJTEWYM.js.map +0 -1
  310. package/dist/chunk-AINU3EJ6.cjs.map +0 -1
  311. package/dist/chunk-AOSUHWIL.js.map +0 -1
  312. package/dist/chunk-B3AHCIV5.js.map +0 -1
  313. package/dist/chunk-CSI2B2H5.js.map +0 -1
  314. package/dist/chunk-DAHCRVPM.js.map +0 -1
  315. package/dist/chunk-DETZZBG2.cjs.map +0 -1
  316. package/dist/chunk-DGV7HQA7.js.map +0 -1
  317. package/dist/chunk-EVUEIBNU.js.map +0 -1
  318. package/dist/chunk-H74HEPKT.js.map +0 -1
  319. package/dist/chunk-I2QSDQQV.cjs.map +0 -1
  320. package/dist/chunk-J5CWKFSC.js +0 -170
  321. package/dist/chunk-J5CWKFSC.js.map +0 -1
  322. package/dist/chunk-LTU35TQN.cjs.map +0 -1
  323. package/dist/chunk-MFY2ZNP6.cjs.map +0 -1
  324. package/dist/chunk-MHFF5N65.cjs.map +0 -1
  325. package/dist/chunk-NRFAWUVD.js.map +0 -1
  326. package/dist/chunk-O4YPVYPO.cjs.map +0 -1
  327. package/dist/chunk-ODRHHWHY.cjs.map +0 -1
  328. package/dist/chunk-QI6AIHWP.cjs.map +0 -1
  329. package/dist/chunk-QXMR5YHC.js.map +0 -1
  330. package/dist/chunk-RFXJYIDV.js +0 -50
  331. package/dist/chunk-RFXJYIDV.js.map +0 -1
  332. package/dist/chunk-U37AYUPI.cjs.map +0 -1
  333. package/dist/chunk-WIZ7Z7FN.js.map +0 -1
  334. package/dist/chunk-XVUOMWMD.cjs +0 -177
  335. package/dist/chunk-XVUOMWMD.cjs.map +0 -1
  336. package/dist/chunk-YSHIC4NJ.cjs.map +0 -1
  337. package/dist/connection/ConnectedTagTable.d.ts +0 -32
  338. package/dist/connection/calendar/CopyField.d.ts +0 -9
  339. package/dist/connection/calendar/OpenAccessPanel.d.ts +0 -7
@@ -0,0 +1,29 @@
1
+ /** Pro's allowance per month (one licence) — must match the backend. Legacy multi-pack plans get it per pack.
2
+ * The live numbers for an existing project come from `project.addons`; these are only for
3
+ * describing the plan before a project exists (new-project dialog, upgrade picker). */
4
+ export declare const PRO_AI_GBP = 10;
5
+ export declare const PRO_STORAGE_GB = 5;
6
+ /**
7
+ * Add-on block sizes (£25 of AI usage or 25 GB), the same on every plan. Their prices come from the
8
+ * products API (`addon_prices`) before a project exists, and from `project.addons` after.
9
+ */
10
+ export declare const ADDON_BLOCK_AI_GBP = 25;
11
+ export declare const STORAGE_BLOCK_GB = 25;
12
+ /** Default monthly usage cap for a new Pro project (pence); it limits automatic top-ups only. 0 = no automatic
13
+ * top-ups, null = no limit. */
14
+ export declare const DEFAULT_SPEND_CAP_PENCE = 10000;
15
+ /** The automatic add-on triggers when less than this much AI usage (£) remains; the backend minimum. */
16
+ export declare const MIN_AUTO_TOPUP_THRESHOLD_GBP = 1;
17
+ /** Free-tier quotas — must match backend FREE_* constants in src/constants.py
18
+ * (FREE_AI_GBP=1, FREE_STORAGE_GB=0.05 → 50 MB, FREE_COLLABORATORS=0). */
19
+ export declare const FREE_AI_GBP = 1;
20
+ export declare const FREE_STORAGE_MB = 50;
21
+ export declare const FREE_COLLABORATORS = 0;
22
+ /** Collaborator limits at or above this are "unlimited" (the backend reports 999 for Pro/dev). */
23
+ export declare const UNLIMITED_COLLABORATORS = 999;
24
+ /**
25
+ * Suggested initial daily per-user AI usage cap (£), pre-filled when creating
26
+ * a new project. The user can clear it to create a project with no cap.
27
+ * Backend treats null as "no enforcement" — there is no server-side default.
28
+ */
29
+ export declare const SUGGESTED_DAILY_CAP_PER_USER = 10;
@@ -0,0 +1,67 @@
1
+ /**
2
+ * Pro plan price helpers. Prices come from Stripe via GET /v1/user/products (source of truth).
3
+ * One plan is sold: Pro, one licence (£10 of AI usage + 5 GB a month). Each price lists
4
+ * `pack_prices` for that one licence — `amount` incl. UK VAT and `amount_ex_vat` — and
5
+ * `addon_prices` (one add-on block on that interval). Display them as-is.
6
+ * Legacy subscriptions with several packs keep working; their name and price come from the project.
7
+ */
8
+ import type { components } from '@arbidocs/client';
9
+ type PlanChangePreview = components['schemas']['PlanChangePreview'];
10
+ type ProductPrice = components['schemas']['ProductPrice'];
11
+ type ProductResponse = components['schemas']['ProductResponse'];
12
+ type PackPrice = components['schemas']['PackPrice'];
13
+ type AddonPrice = components['schemas']['AddonPrice'];
14
+ export type PlanInterval = 'month' | 'year';
15
+ /** The headline price: "£40 + VAT". */
16
+ export declare function plusVat(exVatPence: number, currency?: string): string;
17
+ /** The one licence Pro sells. Other pack counts exist only on legacy subscriptions (displayed, not sold). */
18
+ export declare const PRO_PACKS = 1;
19
+ /** A plan the pickers offer. */
20
+ export type PlanChoice = 'free' | 'pro';
21
+ /** Packs per plan choice (0 = Free). */
22
+ export declare const PLAN_CHOICE_PACKS: Record<PlanChoice, number>;
23
+ /** "Free" (0), "Pro" (1), otherwise "Pro ×N" (a legacy multi-pack plan; the API's own name wins). */
24
+ export declare function planNameForPacks(packs: number | null | undefined): string;
25
+ /** The plan-change panel's fixed lines, each with a test id. */
26
+ export interface PlanChangeLine {
27
+ id: 'pay-today' | 'from' | 'current-until' | 'no-change' | 'awaiting-bank';
28
+ text: string;
29
+ }
30
+ /**
31
+ * What a plan change costs, from the backend's Stripe invoice preview (taxed for the customer's
32
+ * address), as fixed lines:
33
+ * - "Pay today £42.00 incl. VAT (£35.00 + £7.00 VAT 20%)" ("Pay today £0" for a change that waits)
34
+ * - "From 16 Nov 2026: £210.00 incl. VAT (£175.00 + £35.00 VAT 20%) a month"
35
+ * - "Current plan until 16 Nov 2026" for a change that waits for the period end.
36
+ * "No change" when the selection is what the project already has; "Waiting for your bank" while
37
+ * an earlier upgrade payment awaits 3-D Secure.
38
+ */
39
+ export declare function planPreviewLines(preview: PlanChangePreview): PlanChangeLine[];
40
+ /** Stand-in for "Pay today" when the preview failed for an upgrade. */
41
+ export declare const PAY_TODAY_UNPRICED = "Pay today: the difference for the rest of this period";
42
+ /** One add-on block's price on this interval's plan price (`addon_prices`), if listed. */
43
+ export declare function addonPrice(price: ProductPrice | undefined, kind?: 'ai_usage' | 'storage'): AddonPrice | undefined;
44
+ /** Per add-on block of `kind` per month, ex VAT (annual plans: the monthly equivalent). */
45
+ export declare function addonMonthlyExVat(price: ProductPrice | undefined, kind?: 'ai_usage' | 'storage'): number | undefined;
46
+ /**
47
+ * The add-on offer on this interval's price, each block with its own price:
48
+ * "£25 of AI usage for £25/month + VAT or 25 GB for £25/month + VAT". Null when unlisted.
49
+ */
50
+ export declare function addonOfferText(price: ProductPrice | undefined): string | null;
51
+ /** What a checkout buys: "Pro", "Pro + 2 × £25 of AI usage + 1 × 25 GB". */
52
+ export declare function checkoutItemsLabel(aiBlocks: number, storageBlocks: number): string;
53
+ /** The price of `packs` packs on this interval's price, if Stripe lists it (only one licence is listed). */
54
+ export declare function packPrice(price: ProductPrice | undefined, packs?: number): PackPrice | undefined;
55
+ export interface ProPrices {
56
+ monthly?: ProductPrice;
57
+ annual?: ProductPrice;
58
+ }
59
+ /** The Pro product's monthly and annual prices (default price per interval wins). */
60
+ export declare function findProPrices(products: ProductResponse[] | undefined): ProPrices;
61
+ /** Annual savings vs 12 × monthly, as a whole percent (e.g. £360 vs £480 → 25). */
62
+ export declare function calcSavingsPercent(monthlyPrice: ProductPrice | undefined, annualPrice: ProductPrice | undefined): number | null;
63
+ /** Most add-on blocks of each kind a checkout may include (the backend's limit). */
64
+ export declare const MAX_CHECKOUT_BLOCKS = 100;
65
+ /** "£25/month + VAT each", annual: "£225/year + VAT each": one block on the chosen interval. */
66
+ export declare function checkoutBlockPriceText(price: ProductPrice | undefined, kind: 'ai_usage' | 'storage'): string | null;
67
+ export {};
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Quota display — single source of truth.
3
+ *
4
+ * Builds the icon / label / formatted used-of-limit strings for a project's
5
+ * quotas (AI usage in £, storage, collaborators). Shared by QuotaBadges and the
6
+ * project tooltip so the numbers and units can never disagree (storage in GB on
7
+ * plans of 1 GB or more, MB below).
8
+ */
9
+ import type { QuotaMeterItem } from '../../settings';
10
+ import type { components } from '@arbidocs/client';
11
+ type Quotas = components['schemas']['ProjectResponse']['quotas'];
12
+ /** "May 31, 2025" — the one format every AI-usage-reset mention uses. */
13
+ export declare function formatResetDate(unixTimestamp: number | null | undefined): string | null;
14
+ /**
15
+ * When the project's AI usage allowance next resets, as a unix timestamp.
16
+ * Pro projects report it directly (`addons.ai_usage_reset_at` — monthly, even on an
17
+ * annual plan); monthly subscriptions otherwise reset with the billing period
18
+ * (`current_period_end`); free projects reset on the backend-stamped signup
19
+ * anniversary (`quotas.budget_reset_at`). Only a FUTURE date is returned — a stale
20
+ * past stamp would read as a bug, not a promise.
21
+ */
22
+ export declare function aiUsageResetTimestamp(project: {
23
+ quotas?: {
24
+ budget_reset_at?: number | null;
25
+ } | null;
26
+ current_period_end?: number | null;
27
+ plan_interval?: string | null;
28
+ addons?: {
29
+ ai_usage_reset_at?: number | null;
30
+ } | null;
31
+ }): number | null;
32
+ export declare function getQuotaItems(quotas: Quotas): QuotaMeterItem[];
33
+ export {};
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Referral-reward logic (hook + pure helpers) shared across the pricing UI.
3
+ *
4
+ * The reward is a single GLOBAL per-user number — a Stripe account balance mirrored
5
+ * read-only into `settings.extra_discount`. It auto-applies to the user's NEXT invoice.
6
+ * `applyReferralReward` mirrors Stripe's customer-balance logic: applied to the charge,
7
+ * clamped at zero, remainder rolls forward. Components live in `./ReferralReward`.
8
+ */
9
+ export { formatMoney } from './reward-balance';
10
+ export interface ReferralReward {
11
+ amount: number;
12
+ currency: string;
13
+ }
14
+ /** The standing referral offer — what one successful invite earns. One constant
15
+ * so the welcome modal and the rewards modal can never quote different money. */
16
+ export declare const REFERRAL_OFFER: ReferralReward;
17
+ /** The user's available referral reward, or null if none. */
18
+ export declare function useReferralReward(): ReferralReward | null;
19
+ /**
20
+ * Apply the reward to a charge, mirroring Stripe's customer-balance behaviour.
21
+ * Returns null when there's no usable reward or the currency doesn't match the price.
22
+ */
23
+ export declare function applyReferralReward(totalCents: number, reward: ReferralReward | null, priceCurrency: string): {
24
+ bonus: number;
25
+ youPay: number;
26
+ remaining: number;
27
+ currency: string;
28
+ } | null;
@@ -0,0 +1,5 @@
1
+ /**
2
+ * One template for every refusal where money is involved (declined card, failed or timed-out
3
+ * upgrade): "<What happened>. Nothing was charged. <Next step>."
4
+ */
5
+ export declare function refusal(what: string, next: string): string;
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Reward-balance logic (hook + money formatter).
3
+ *
4
+ * A user's reward balance is their available account balance — a single GLOBAL per-user
5
+ * number, the Stripe customer account balance mirrored read-only into
6
+ * `settings.extra_discount`. It auto-applies to the user's NEXT invoice.
7
+ *
8
+ * "Rewards" is the broad concept: the balance can be fed by several sources (referral
9
+ * reward is just one). The referral pricing surfaces of the billing kit
10
+ * speak to the referral source specifically; this module owns the balance itself.
11
+ */
12
+ export interface RewardBalance {
13
+ amount: number;
14
+ currency: string;
15
+ }
16
+ /** The user's available reward balance (all sources), or null if none. */
17
+ export declare function useRewardBalance(): RewardBalance | null;
18
+ /** Format minor units as a localized money string, e.g. `£20` (whole) or `£29.99`. */
19
+ export declare function formatMoney(cents: number, currency?: string): string;
@@ -0,0 +1,35 @@
1
+ /**
2
+ * What a host adds to the billing kit. Selling plans needs Stripe, which stays the host's: whether
3
+ * this deployment sells plans (a publishable key is configured), and its embedded checkout. Without
4
+ * a `BillingSupportProvider` nothing is for sale: projects show their limits and usage only.
5
+ */
6
+ import { type ReactNode } from 'react';
7
+ export interface BillingCheckoutSupport {
8
+ /** Load the host's Stripe (lazily, when a checkout opens); `null` when it cannot. */
9
+ load(): Promise<unknown> | null;
10
+ /** Stripe's embedded checkout for a session, on the loaded Stripe. */
11
+ render(stripe: unknown, session: {
12
+ clientSecret: string;
13
+ onComplete: () => void;
14
+ }): ReactNode;
15
+ }
16
+ export interface BillingSupport {
17
+ /** This deployment sells plans (Stripe is configured). */
18
+ stripeEnabled: boolean;
19
+ checkout?: BillingCheckoutSupport;
20
+ /**
21
+ * Add-on blocks the user just bought here, so the host does not announce them later as having
22
+ * arrived on their own.
23
+ */
24
+ onAddonBlocksBought?: (projectExtId: string, blocks: {
25
+ ai: number;
26
+ storage: number;
27
+ }) => void;
28
+ }
29
+ export declare function BillingSupportProvider({ value, children, }: {
30
+ value: BillingSupport;
31
+ children: ReactNode;
32
+ }): import("react").JSX.Element;
33
+ export declare function useBillingSupport(): BillingSupport;
34
+ /** The signed-in user's id (`usr-…`), to tell the projects they own from the others. */
35
+ export declare function useSelfExtId(): string | undefined;
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Tax-inclusive totals from the backend's Stripe Tax quotes (`TaxQuoteResponse`, plan-change
3
+ * previews, add-on quotes): "£48.00 incl. VAT (£40.00 + £8.00 VAT 20%)", "£40.00 · no VAT
4
+ * (reverse charge)", "£40.00 · no tax".
5
+ */
6
+ import type { components } from '@arbidocs/client';
7
+ export type TaxQuote = components['schemas']['TaxQuoteResponse'];
8
+ /** Countries whose tax depends on the postcode: the field is shown up front. */
9
+ export declare const POSTCODE_COUNTRIES: readonly string[];
10
+ /** The quote error that asks for a ZIP / postal code. */
11
+ export declare const TAX_LOCATION_INVALID = "TAX_LOCATION_INVALID";
12
+ /** "£42.00" — always pence, so the parts of a total add up on screen. */
13
+ export declare function money2(pence: number, currency?: string): string;
14
+ export interface TaxParts {
15
+ subtotal: number;
16
+ tax: number;
17
+ total: number;
18
+ /** "VAT 20%"; null when no tax is due. */
19
+ label?: string | null;
20
+ reverseCharge?: boolean;
21
+ }
22
+ /** What follows the total: "incl. VAT (£40.00 + £8.00 VAT 20%)", "· no VAT (reverse charge)", "· no tax". */
23
+ export declare function taxDetail({ subtotal, tax, label, reverseCharge }: TaxParts): string;
24
+ /** "£48.00 incl. VAT (£40.00 + £8.00 VAT 20%)", "£40.00 · no VAT (reverse charge)", "£40.00 · no tax". */
25
+ export declare function taxSummary(parts: TaxParts): string;
26
+ /** "£21.00 incl. VAT" / "£17.50" — a total with only the word for its tax. */
27
+ export declare function totalWithTaxWord({ total, tax, label }: TaxParts): string;
28
+ /** The parts of a quote response. */
29
+ export declare function quoteParts(quote: TaxQuote): TaxParts;
30
+ /** "Total today £48.00 incl. VAT (£40.00 + £8.00 VAT 20%)". */
31
+ export declare function quoteTotalLine(quote: TaxQuote): string;
32
+ /** The API error code (`detail.code`) and message, if any. */
33
+ export declare function quoteError(error: unknown): {
34
+ code?: string;
35
+ message?: string;
36
+ };
@@ -0,0 +1,32 @@
1
+ /**
2
+ * useAddonPurchase — buy one add-on block (+£25 of AI usage or +25 GB) for a Pro project and tell
3
+ * the user what happened. The monthly usage cap limits automatic top-ups only, so it never refuses a block
4
+ * bought here. The block is charged now for the current period and then renews every
5
+ * period until the user reduces it. Shared by the add-on confirm dialog (project Add-ons card,
6
+ * quota-exceeded modal).
7
+ *
8
+ * - `paid` → the block is live now.
9
+ * - `requires_action` → the bank wants 3-D Secure: open Stripe's hosted invoice in a new tab;
10
+ * the block is added once confirmed (the next refresh picks it up).
11
+ * - 402 `{code, message}` (declined / no card / no billing address) → the
12
+ * refusal template ("… Nothing was charged. …"); any other failure leaves the outcome unknown:
13
+ * `onUnknownError` lets the caller check the project before saying what happened.
14
+ */
15
+ export type AddonKind = 'ai_usage' | 'storage';
16
+ export type AddonErrorCode = 'PAYMENT_DECLINED' | 'PAYMENT_METHOD_REQUIRED' | 'BILLING_ADDRESS_REQUIRED';
17
+ /** The user-facing message for a failed add-on request (402 detail object or plain detail). */
18
+ export declare function addonErrorMessage(error: unknown): string;
19
+ /** The refusal for a charge the backend turned down (402 with a known code), else null. */
20
+ export declare function chargeRefusalMessage(error: unknown): string | null;
21
+ /** The 402 code of a failed add-on request, if it has one. */
22
+ export declare function addonErrorCode(error: unknown): AddonErrorCode | null;
23
+ export declare function useAddonPurchase(): {
24
+ buy: (kind: AddonKind, projectExtId: string, options?: {
25
+ onPaid?: () => void;
26
+ onRequiresAction?: () => void;
27
+ onError?: (code: AddonErrorCode | null) => void;
28
+ /** A failure that doesn't say whether the charge went through (timeout, 5xx). */
29
+ onUnknownError?: () => void;
30
+ }) => void;
31
+ isPending: boolean;
32
+ };
@@ -0,0 +1,11 @@
1
+ /**
2
+ * useAutoRefreshPendingProjects
3
+ *
4
+ * Auto-refreshes owned projects stuck at subscription="none" (checkout
5
+ * completed but not yet synced). Skips member-of projects: refresh requires
6
+ * owner, and non-owner projects already have `subscription` blanked to
7
+ * "none" by the backend regardless of real state.
8
+ *
9
+ * Each project is refreshed at most once per mount (refreshedRef guard).
10
+ */
11
+ export declare function useAutoRefreshPendingProjects(): void;
@@ -0,0 +1,30 @@
1
+ /**
2
+ * useCheckoutQuote — the tax-inclusive total of a plan purchase for the billing country (and
3
+ * ZIP / postcode where the tax depends on it), from the backend's Stripe Tax quote. Shown by
4
+ * `CheckoutTotal` before Stripe opens.
5
+ */
6
+ import type { PlanInterval } from './plan-pricing';
7
+ import { type TaxQuote } from './tax-quote';
8
+ export interface CheckoutQuoteState {
9
+ quote?: TaxQuote;
10
+ isLoading: boolean;
11
+ /** Show the ZIP / postcode field. */
12
+ showPostcode: boolean;
13
+ /** Why there is no total (e.g. "Enter your ZIP / postal code to see the total."). */
14
+ error: string | null;
15
+ /** Continue to payment: priced, or the pricing failed for a reason other than the address. */
16
+ canContinue: boolean;
17
+ }
18
+ /**
19
+ * Prices the plan, plus any add-on blocks picked at checkout (one period of each), for the billing address.
20
+ * `projectExtId` for an existing project.
21
+ */
22
+ export declare function useCheckoutQuote({ projectExtId, interval, country, postalCode, aiBlocks, storageBlocks, enabled, }: {
23
+ projectExtId?: string | null;
24
+ interval: PlanInterval;
25
+ country: string;
26
+ postalCode: string;
27
+ aiBlocks?: number;
28
+ storageBlocks?: number;
29
+ enabled?: boolean;
30
+ }): CheckoutQuoteState;
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Opens a fresh Stripe billing-portal link for a project in a new tab.
3
+ *
4
+ * The tab is opened synchronously inside the click: browsers only allow
5
+ * window.open() during the user gesture, and the portal link arrives after an
6
+ * await. The tab starts on about:blank and is pointed at the Stripe URL once the
7
+ * link is ready.
8
+ */
9
+ export declare function useOpenBillingPortal(): {
10
+ open: (projectExtId: string) => void;
11
+ isPending: boolean;
12
+ };
@@ -1,6 +1,6 @@
1
1
  import { type CalendarSettings } from '@arbidocs/react';
2
2
  import { type CalendarListItem } from '../../calendar';
3
- export type CalendarSettingsTab = 'general' | 'accounts' | 'access' | 'booking' | 'rooms';
3
+ export type CalendarSettingsTab = 'general' | 'accounts' | 'booking' | 'rooms';
4
4
  export interface CalendarSettingsDialogProps {
5
5
  open: boolean;
6
6
  settings: CalendarSettings;
@@ -0,0 +1,50 @@
1
+ /**
2
+ * The Facts page: the open workspace's facts — what it knows, a date, a decision, a preference —
3
+ * written by hand or kept by the assistant. A table (with labels, sources, verified and shared
4
+ * toggles, inline edits and bulk actions), a calendar and a timeline of the dated ones, and Smart
5
+ * Search when the host has one. A fact is written or edited in the composer above them: its text
6
+ * (rich markdown), its date, labels, sources (whole documents or passages picked in the viewer),
7
+ * and whether it is shared and verified.
8
+ *
9
+ * Data is `@arbidocs/react` (facts, tags) and the connected workspace documents. The host plugs in
10
+ * what lives elsewhere in it (see `types.ts`): the current chat's facts, the viewer's passage
11
+ * collection, where the view choices are kept, a request from another surface, and its own labels
12
+ * panel, export and Smart Search.
13
+ */
14
+ import { type ReactNode } from 'react';
15
+ import type { FactCreator, LookupUser } from './factPageColumns';
16
+ import type { FactPassageCollector, FactsChat, FactsPageRequest, FactsPageSlots, FactsPageView } from './types';
17
+ /** Who may do something to a fact, by its creator's id. */
18
+ export type FactCreatorCheck = (creatorExtId: string | null | undefined) => boolean;
19
+ export interface ConnectedFactsPageProps extends FactsPageSlots {
20
+ /** The current chat's facts (absent: no In chat column, filter or bulk action). */
21
+ chat?: FactsChat;
22
+ /** The viewer's passage collection (absent: citing a document opens it). */
23
+ collector?: FactPassageCollector;
24
+ /** Where the view choices are kept (default: in the page). */
25
+ view?: FactsPageView;
26
+ /** A one-off request from another surface; each part done is reported. */
27
+ request?: FactsPageRequest;
28
+ onRequestHandled?: (part: keyof FactsPageRequest) => void;
29
+ /** Open the labels panel for the selected facts (with `renderLabelsPanel`). */
30
+ onOpenLabels?: () => void;
31
+ /**
32
+ * Who may change who sees a fact (default: its creator) and who may reword or delete it (default:
33
+ * its creator; a host adds the workspace's owners).
34
+ */
35
+ permissions?: {
36
+ canChangeSharing: FactCreatorCheck;
37
+ canRewrite: FactCreatorCheck;
38
+ };
39
+ /** A creator by id (default: the workspace's members). */
40
+ lookupUser?: LookupUser;
41
+ /** A creator's avatar (default: the shared one). */
42
+ renderUser?: (user: FactCreator | null) => ReactNode;
43
+ }
44
+ /** One id for the grid's persisted column state and its row-height density.
45
+ * v11: reset so the Dates column opens beside the fact text.
46
+ * v12: reset so the table opens in date order (a saved column state would override the default sort).
47
+ * v13: the Pinned column became In chat (colId `in_chat`).
48
+ * Bump to reset state. */
49
+ export declare const FACTS_GRID_ID = "facts-grid-v13";
50
+ export declare function ConnectedFactsPage({ chat, collector, view: hostView, request, onRequestHandled, onOpenLabels, permissions, lookupUser: hostLookupUser, renderUser, renderLabelsPanel, renderExport, renderSmartSearch, emptyStateExtra, }: ConnectedFactsPageProps): import("react").JSX.Element;
@@ -0,0 +1,57 @@
1
+ /**
2
+ * FactMarkdownEditor
3
+ *
4
+ * A WYSIWYG editor for a fact: the text is edited as rendered markdown (via the
5
+ * shared MDXEditor, same engine the document artifacts use), and the fact's
6
+ * source citations are preserved and managed beneath it exactly as the packaged
7
+ * CitationEditor did — per-document rows with page refs and a remove control,
8
+ * and the document picker wired to the viewer's passage-collection flow.
9
+ *
10
+ * The editor is heavy (Lexical), so it is lazy-loaded. It adopts its markdown on mount only, so
11
+ * the parent bumps `editorKey` each time the composer opens to reload the right fact's text.
12
+ */
13
+ import type { components } from '@arbidocs/client';
14
+ import { type ReactNode } from 'react';
15
+ import type { FactPassageCollector } from './types';
16
+ type CitationSources = components['schemas']['CitationSources'];
17
+ type DocResponse = components['schemas']['DocResponse'];
18
+ export interface FactMarkdownEditorProps {
19
+ /** Remount key so the editor adopts a different fact's markdown on open. */
20
+ editorKey: string;
21
+ value: string;
22
+ citations: CitationSources | null;
23
+ onChange: (text: string, citations: CitationSources | null) => void;
24
+ /** Open a document in the viewer, armed to collect passages for this fact.
25
+ * `toggle: false` always opens (the picker's list); otherwise clicking the
26
+ * document already in view closes it. */
27
+ onCiteDocument: (docExtId: string, opts?: {
28
+ toggle?: boolean;
29
+ }) => void;
30
+ /** The viewer's passage collection, while a source's popover is open. */
31
+ collector?: FactPassageCollector;
32
+ /** Resolved cited documents, keyed by external id. */
33
+ citedDocs?: Record<string, DocResponse>;
34
+ /** The document currently on display in the viewer (null when closed). Its
35
+ * Source row is highlighted so it's clear which cited doc you're reading. */
36
+ viewingDocId?: string | null;
37
+ /** The workspace document picker (Sources title + combobox), injected.
38
+ * `sourcesToggle` is the control that opens the sources popup (every cited
39
+ * document with its passages) — place it in front of the combobox (null when
40
+ * the fact has no sources to show). */
41
+ renderDocumentPicker: (onSelect: (docExtId: string) => void, selectedIds: string[], onOpen: (docExtId: string) => void, sourcesToggle: ReactNode,
42
+ /** True while the Sources popup is open — shut the picker's list then. */
43
+ sourcesOpen: boolean) => ReactNode;
44
+ /** The markdown MDXEditor produces on mount (its canonical round-trip of
45
+ * `value`) — use as the "unchanged" baseline for a dirty check. */
46
+ onNormalized?: (normalized: string) => void;
47
+ /** Keep the sources toggle in place (disabled) even when the fact has no
48
+ * sources, so selecting different events doesn't change the Sources row
49
+ * geometry (used by the timeline/calendar). */
50
+ reserveSourcesSpace?: boolean;
51
+ /** The fact section element the source Citation popovers portal into and are
52
+ * kept within (see FactSourcesPopover), so it never spills over the sidebar. */
53
+ citationContainer?: HTMLElement | null;
54
+ 'data-testid'?: string;
55
+ }
56
+ export declare function FactMarkdownEditor({ editorKey, value, citations, onChange, onCiteDocument, collector, citedDocs, viewingDocId, renderDocumentPicker, onNormalized, reserveSourcesSpace, citationContainer, 'data-testid': dataTestId, }: FactMarkdownEditorProps): import("react").JSX.Element;
57
+ export {};
@@ -0,0 +1,38 @@
1
+ /**
2
+ * The fact's sources as ONE popup off the "Sources" control in the Sources row — every cited
3
+ * document, each with the passages the fact draws from it listed beneath (page + excerpt), laid out
4
+ * like the chat's citations. Being a popover (not an in-flow list) it never pushes the rest of the
5
+ * composer up or down. Clicking a document opens it in the viewer; clicking a passage jumps to and
6
+ * highlights it there, exactly like a chat citation. Excerpts are resolved live
7
+ * (`usePassageQuotes`), never stored on the fact. The viewer side goes through the host's
8
+ * `FactPassageCollector`.
9
+ */
10
+ import type { components } from '@arbidocs/client';
11
+ import { type OrderResolver, type QuoteResolver } from '@arbidocs/react';
12
+ import { type ReactNode } from 'react';
13
+ import type { FactCitations } from '../../facts/fact-citations';
14
+ import type { FactPassageCollector } from './types';
15
+ type DocResponse = components['schemas']['DocResponse'];
16
+ export interface FactSourcesPopoverProps {
17
+ open: boolean;
18
+ onOpenChange: (open: boolean) => void;
19
+ /** The Sources row (picker + the PopoverTrigger toggle) this popup hangs off. */
20
+ children: ReactNode;
21
+ /** Cited documents in citation order, each with its passages. */
22
+ citations: FactCitations;
23
+ citedDocs?: Record<string, DocResponse>;
24
+ quoteFor: QuoteResolver;
25
+ orderOf?: OrderResolver;
26
+ /** The document currently on display in the viewer (null when closed). */
27
+ viewingDocId?: string | null;
28
+ /** Open a document in the viewer, armed to collect passages for this fact. */
29
+ onCiteDocument: (docExtId: string) => void;
30
+ onRemoveDoc: (docExtId: string) => void;
31
+ /** The viewer's passage collection (absent: passages open the document, nothing is marked). */
32
+ collector?: FactPassageCollector;
33
+ /** The fact section the popover is portalled INTO and fenced WITHIN, so it
34
+ * opens into the fact content rather than across the app sidebar. */
35
+ container?: HTMLElement | null;
36
+ }
37
+ export declare function FactSourcesPopover({ open, onOpenChange, children, citations, citedDocs, quoteFor, orderOf, viewingDocId, onCiteDocument, onRemoveDoc, collector, container, }: FactSourcesPopoverProps): import("react").JSX.Element;
38
+ export {};
@@ -0,0 +1,2 @@
1
+ import { type ArtifactMarkdownEditorProps } from '../../artifacts/editor/ArtifactMarkdownEditor';
2
+ export default function FactTextEditor(props: Omit<ArtifactMarkdownEditorProps, 'dictation'>): import("react").JSX.Element;
@@ -0,0 +1,4 @@
1
+ export declare const factNouns: () => {
2
+ SINGULAR: string;
3
+ PLURAL: string;
4
+ };
@@ -0,0 +1,37 @@
1
+ import type { ColDef } from 'ag-grid-community';
2
+ import { type ReactNode } from 'react';
3
+ import type { Fact } from './types';
4
+ /** A fact's creator, as the page knows them. */
5
+ export interface FactCreator {
6
+ external_id: string;
7
+ given_name?: string | null;
8
+ family_name?: string | null;
9
+ email?: string | null;
10
+ picture?: string | null;
11
+ }
12
+ /** Resolves a creator's external id to the user. */
13
+ export type LookupUser = (externalId: string | null | undefined) => FactCreator | null;
14
+ export interface FactGridContext {
15
+ lookupUser?: LookupUser;
16
+ /** The host's own creator avatar. */
17
+ renderUser?: (user: FactCreator | null) => ReactNode;
18
+ renderFactTags?: (fact: Fact, rowHeight?: number) => ReactNode;
19
+ openEdit?: (fact: Fact) => void;
20
+ removeFact?: (fact: Fact) => void;
21
+ /** Who may change who can see a fact: its creator or a workspace owner. */
22
+ canChangeSharing?: (fact: Fact) => boolean;
23
+ /** Who may reword a fact (it replaces the note): its creator or a workspace owner. */
24
+ canRewrite?: (fact: Fact) => boolean;
25
+ /** Whether the fact is in the current chat (read live: the column defs are built once). */
26
+ isInChat?: (fact: Fact) => boolean;
27
+ }
28
+ interface FactColumnCallbacks {
29
+ /** Add the fact to the current chat, or take it out (absent: no chat, no In chat column). */
30
+ onToggleInChat?: (fact: Fact) => void;
31
+ /** Whether the fact is in the current chat. */
32
+ isInChat?: (fact: Fact) => boolean;
33
+ onToggleConfirmed: (fact: Fact) => void;
34
+ onToggleShared: (fact: Fact) => void;
35
+ }
36
+ export declare function createFactPageColumns({ onToggleInChat, isInChat, onToggleConfirmed, onToggleShared, }: FactColumnCallbacks): ColDef<Fact>[];
37
+ export {};