@aglyn/plugins-crm 1.0.0-beta.143

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 (669) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +7 -0
  3. package/package.json +57 -0
  4. package/src/index.d.ts +21 -0
  5. package/src/index.js +29 -0
  6. package/src/index.js.map +1 -0
  7. package/src/lib/components/activity-list.d.ts +98 -0
  8. package/src/lib/components/activity-list.js +321 -0
  9. package/src/lib/components/activity-list.js.map +1 -0
  10. package/src/lib/components/activity-queries.d.ts +117 -0
  11. package/src/lib/components/activity-queries.js +198 -0
  12. package/src/lib/components/activity-queries.js.map +1 -0
  13. package/src/lib/components/add-to-list-button.d.ts +25 -0
  14. package/src/lib/components/add-to-list-button.js +64 -0
  15. package/src/lib/components/add-to-list-button.js.map +1 -0
  16. package/src/lib/components/add-to-list-dialog.d.ts +24 -0
  17. package/src/lib/components/add-to-list-dialog.js +327 -0
  18. package/src/lib/components/add-to-list-dialog.js.map +1 -0
  19. package/src/lib/components/assignment-rule-drawer.d.ts +43 -0
  20. package/src/lib/components/assignment-rule-drawer.js +293 -0
  21. package/src/lib/components/assignment-rule-drawer.js.map +1 -0
  22. package/src/lib/components/companies-bulk-bar.d.ts +29 -0
  23. package/src/lib/components/companies-bulk-bar.js +274 -0
  24. package/src/lib/components/companies-bulk-bar.js.map +1 -0
  25. package/src/lib/components/companies-section.d.ts +54 -0
  26. package/src/lib/components/companies-section.js +522 -0
  27. package/src/lib/components/companies-section.js.map +1 -0
  28. package/src/lib/components/company-contacts-card.d.ts +49 -0
  29. package/src/lib/components/company-contacts-card.js +435 -0
  30. package/src/lib/components/company-contacts-card.js.map +1 -0
  31. package/src/lib/components/company-deals-card.d.ts +20 -0
  32. package/src/lib/components/company-deals-card.js +38 -0
  33. package/src/lib/components/company-deals-card.js.map +1 -0
  34. package/src/lib/components/company-detail-page.d.ts +20 -0
  35. package/src/lib/components/company-detail-page.js +165 -0
  36. package/src/lib/components/company-detail-page.js.map +1 -0
  37. package/src/lib/components/company-edit-drawer.d.ts +65 -0
  38. package/src/lib/components/company-edit-drawer.js +433 -0
  39. package/src/lib/components/company-edit-drawer.js.map +1 -0
  40. package/src/lib/components/company-import-drawer.d.ts +42 -0
  41. package/src/lib/components/company-import-drawer.js +99 -0
  42. package/src/lib/components/company-import-drawer.js.map +1 -0
  43. package/src/lib/components/company-picker.d.ts +127 -0
  44. package/src/lib/components/company-picker.js +323 -0
  45. package/src/lib/components/company-picker.js.map +1 -0
  46. package/src/lib/components/company-properties-card.d.ts +47 -0
  47. package/src/lib/components/company-properties-card.js +289 -0
  48. package/src/lib/components/company-properties-card.js.map +1 -0
  49. package/src/lib/components/contact-address-fields.d.ts +29 -0
  50. package/src/lib/components/contact-address-fields.js +149 -0
  51. package/src/lib/components/contact-address-fields.js.map +1 -0
  52. package/src/lib/components/contact-associations-card.d.ts +72 -0
  53. package/src/lib/components/contact-associations-card.js +296 -0
  54. package/src/lib/components/contact-associations-card.js.map +1 -0
  55. package/src/lib/components/contact-custom-columns.d.ts +38 -0
  56. package/src/lib/components/contact-custom-columns.js +102 -0
  57. package/src/lib/components/contact-custom-columns.js.map +1 -0
  58. package/src/lib/components/contact-custom-fields-card.d.ts +39 -0
  59. package/src/lib/components/contact-custom-fields-card.js +204 -0
  60. package/src/lib/components/contact-custom-fields-card.js.map +1 -0
  61. package/src/lib/components/contact-deals-card.d.ts +20 -0
  62. package/src/lib/components/contact-deals-card.js +38 -0
  63. package/src/lib/components/contact-deals-card.js.map +1 -0
  64. package/src/lib/components/contact-detail-page.d.ts +46 -0
  65. package/src/lib/components/contact-detail-page.js +535 -0
  66. package/src/lib/components/contact-detail-page.js.map +1 -0
  67. package/src/lib/components/contact-duplicates-card.d.ts +42 -0
  68. package/src/lib/components/contact-duplicates-card.js +167 -0
  69. package/src/lib/components/contact-duplicates-card.js.map +1 -0
  70. package/src/lib/components/contact-field-drawer.d.ts +64 -0
  71. package/src/lib/components/contact-field-drawer.js +251 -0
  72. package/src/lib/components/contact-field-drawer.js.map +1 -0
  73. package/src/lib/components/contact-import-drawer.d.ts +46 -0
  74. package/src/lib/components/contact-import-drawer.js +149 -0
  75. package/src/lib/components/contact-import-drawer.js.map +1 -0
  76. package/src/lib/components/contact-known-by-card.d.ts +39 -0
  77. package/src/lib/components/contact-known-by-card.js +142 -0
  78. package/src/lib/components/contact-known-by-card.js.map +1 -0
  79. package/src/lib/components/contact-list-columns.d.ts +53 -0
  80. package/src/lib/components/contact-list-columns.js +288 -0
  81. package/src/lib/components/contact-list-columns.js.map +1 -0
  82. package/src/lib/components/contact-merge-dialog.d.ts +79 -0
  83. package/src/lib/components/contact-merge-dialog.js +405 -0
  84. package/src/lib/components/contact-merge-dialog.js.map +1 -0
  85. package/src/lib/components/contact-properties-card.d.ts +89 -0
  86. package/src/lib/components/contact-properties-card.js +492 -0
  87. package/src/lib/components/contact-properties-card.js.map +1 -0
  88. package/src/lib/components/contact-timeline-card.d.ts +68 -0
  89. package/src/lib/components/contact-timeline-card.js +435 -0
  90. package/src/lib/components/contact-timeline-card.js.map +1 -0
  91. package/src/lib/components/contacts-bulk-bar.d.ts +91 -0
  92. package/src/lib/components/contacts-bulk-bar.js +493 -0
  93. package/src/lib/components/contacts-bulk-bar.js.map +1 -0
  94. package/src/lib/components/contacts-section.d.ts +26 -0
  95. package/src/lib/components/contacts-section.js +1025 -0
  96. package/src/lib/components/contacts-section.js.map +1 -0
  97. package/src/lib/components/copy-capture-address-button.d.ts +33 -0
  98. package/src/lib/components/copy-capture-address-button.js +60 -0
  99. package/src/lib/components/copy-capture-address-button.js.map +1 -0
  100. package/src/lib/components/crm-attribution-zone.d.ts +38 -0
  101. package/src/lib/components/crm-attribution-zone.js +36 -0
  102. package/src/lib/components/crm-attribution-zone.js.map +1 -0
  103. package/src/lib/components/crm-booking-zone.d.ts +61 -0
  104. package/src/lib/components/crm-booking-zone.js +50 -0
  105. package/src/lib/components/crm-booking-zone.js.map +1 -0
  106. package/src/lib/components/crm-bulk-bar-frame.d.ts +47 -0
  107. package/src/lib/components/crm-bulk-bar-frame.js +137 -0
  108. package/src/lib/components/crm-bulk-bar-frame.js.map +1 -0
  109. package/src/lib/components/crm-call-actions.d.ts +65 -0
  110. package/src/lib/components/crm-call-actions.js +110 -0
  111. package/src/lib/components/crm-call-actions.js.map +1 -0
  112. package/src/lib/components/crm-column-menu.d.ts +21 -0
  113. package/src/lib/components/crm-column-menu.js +103 -0
  114. package/src/lib/components/crm-column-menu.js.map +1 -0
  115. package/src/lib/components/crm-console-page.d.ts +19 -0
  116. package/src/lib/components/crm-console-page.js +151 -0
  117. package/src/lib/components/crm-console-page.js.map +1 -0
  118. package/src/lib/components/crm-console-sections.d.ts +52 -0
  119. package/src/lib/components/crm-console-sections.js +83 -0
  120. package/src/lib/components/crm-console-sections.js.map +1 -0
  121. package/src/lib/components/crm-custom-field-control.d.ts +26 -0
  122. package/src/lib/components/crm-custom-field-control.js +131 -0
  123. package/src/lib/components/crm-custom-field-control.js.map +1 -0
  124. package/src/lib/components/crm-email-template-tools.d.ts +69 -0
  125. package/src/lib/components/crm-email-template-tools.js +240 -0
  126. package/src/lib/components/crm-email-template-tools.js.map +1 -0
  127. package/src/lib/components/crm-export-all-button.d.ts +39 -0
  128. package/src/lib/components/crm-export-all-button.js +98 -0
  129. package/src/lib/components/crm-export-all-button.js.map +1 -0
  130. package/src/lib/components/crm-filter-bar.d.ts +53 -0
  131. package/src/lib/components/crm-filter-bar.js +294 -0
  132. package/src/lib/components/crm-filter-bar.js.map +1 -0
  133. package/src/lib/components/crm-glance-card.d.ts +54 -0
  134. package/src/lib/components/crm-glance-card.js +219 -0
  135. package/src/lib/components/crm-glance-card.js.map +1 -0
  136. package/src/lib/components/crm-next-activity-column.d.ts +35 -0
  137. package/src/lib/components/crm-next-activity-column.js +100 -0
  138. package/src/lib/components/crm-next-activity-column.js.map +1 -0
  139. package/src/lib/components/crm-record-header.d.ts +97 -0
  140. package/src/lib/components/crm-record-header.js +160 -0
  141. package/src/lib/components/crm-record-header.js.map +1 -0
  142. package/src/lib/components/crm-record-insights-zone.d.ts +50 -0
  143. package/src/lib/components/crm-record-insights-zone.js +169 -0
  144. package/src/lib/components/crm-record-insights-zone.js.map +1 -0
  145. package/src/lib/components/crm-record-picker.d.ts +42 -0
  146. package/src/lib/components/crm-record-picker.js +104 -0
  147. package/src/lib/components/crm-record-picker.js.map +1 -0
  148. package/src/lib/components/crm-send-email-button.d.ts +39 -0
  149. package/src/lib/components/crm-send-email-button.js +81 -0
  150. package/src/lib/components/crm-send-email-button.js.map +1 -0
  151. package/src/lib/components/crm-send-email-dialog.d.ts +61 -0
  152. package/src/lib/components/crm-send-email-dialog.js +851 -0
  153. package/src/lib/components/crm-send-email-dialog.js.map +1 -0
  154. package/src/lib/components/crm-site-picker.d.ts +61 -0
  155. package/src/lib/components/crm-site-picker.js +99 -0
  156. package/src/lib/components/crm-site-picker.js.map +1 -0
  157. package/src/lib/components/crm-suite-lock.d.ts +29 -0
  158. package/src/lib/components/crm-suite-lock.js +114 -0
  159. package/src/lib/components/crm-suite-lock.js.map +1 -0
  160. package/src/lib/components/crm-tasks-due-card.d.ts +42 -0
  161. package/src/lib/components/crm-tasks-due-card.js +225 -0
  162. package/src/lib/components/crm-tasks-due-card.js.map +1 -0
  163. package/src/lib/components/crm-views-control.d.ts +65 -0
  164. package/src/lib/components/crm-views-control.js +518 -0
  165. package/src/lib/components/crm-views-control.js.map +1 -0
  166. package/src/lib/components/csv-import-drawer.d.ts +132 -0
  167. package/src/lib/components/csv-import-drawer.js +746 -0
  168. package/src/lib/components/csv-import-drawer.js.map +1 -0
  169. package/src/lib/components/deal-board.d.ts +70 -0
  170. package/src/lib/components/deal-board.js +478 -0
  171. package/src/lib/components/deal-board.js.map +1 -0
  172. package/src/lib/components/deal-detail-page.d.ts +18 -0
  173. package/src/lib/components/deal-detail-page.js +323 -0
  174. package/src/lib/components/deal-detail-page.js.map +1 -0
  175. package/src/lib/components/deal-edit-drawer.d.ts +59 -0
  176. package/src/lib/components/deal-edit-drawer.js +640 -0
  177. package/src/lib/components/deal-edit-drawer.js.map +1 -0
  178. package/src/lib/components/deal-import-drawer.d.ts +24 -0
  179. package/src/lib/components/deal-import-drawer.js +83 -0
  180. package/src/lib/components/deal-import-drawer.js.map +1 -0
  181. package/src/lib/components/deal-products-card.d.ts +48 -0
  182. package/src/lib/components/deal-products-card.js +614 -0
  183. package/src/lib/components/deal-products-card.js.map +1 -0
  184. package/src/lib/components/deal-properties-card.d.ts +29 -0
  185. package/src/lib/components/deal-properties-card.js +144 -0
  186. package/src/lib/components/deal-properties-card.js.map +1 -0
  187. package/src/lib/components/deal-stage-card.d.ts +24 -0
  188. package/src/lib/components/deal-stage-card.js +199 -0
  189. package/src/lib/components/deal-stage-card.js.map +1 -0
  190. package/src/lib/components/deals-bulk-bar.d.ts +31 -0
  191. package/src/lib/components/deals-bulk-bar.js +340 -0
  192. package/src/lib/components/deals-bulk-bar.js.map +1 -0
  193. package/src/lib/components/deals-section.d.ts +49 -0
  194. package/src/lib/components/deals-section.js +767 -0
  195. package/src/lib/components/deals-section.js.map +1 -0
  196. package/src/lib/components/email-capture-card.d.ts +42 -0
  197. package/src/lib/components/email-capture-card.js +134 -0
  198. package/src/lib/components/email-capture-card.js.map +1 -0
  199. package/src/lib/components/email-template-drawer.d.ts +33 -0
  200. package/src/lib/components/email-template-drawer.js +209 -0
  201. package/src/lib/components/email-template-drawer.js.map +1 -0
  202. package/src/lib/components/email-templates-card.d.ts +33 -0
  203. package/src/lib/components/email-templates-card.js +370 -0
  204. package/src/lib/components/email-templates-card.js.map +1 -0
  205. package/src/lib/components/erase-person-action.d.ts +92 -0
  206. package/src/lib/components/erase-person-action.js +261 -0
  207. package/src/lib/components/erase-person-action.js.map +1 -0
  208. package/src/lib/components/fields-section.d.ts +37 -0
  209. package/src/lib/components/fields-section.js +641 -0
  210. package/src/lib/components/fields-section.js.map +1 -0
  211. package/src/lib/components/form-contact-fields-card.d.ts +46 -0
  212. package/src/lib/components/form-contact-fields-card.js +253 -0
  213. package/src/lib/components/form-contact-fields-card.js.map +1 -0
  214. package/src/lib/components/insert-link-at-caret.d.ts +28 -0
  215. package/src/lib/components/insert-link-at-caret.js +37 -0
  216. package/src/lib/components/insert-link-at-caret.js.map +1 -0
  217. package/src/lib/components/lead-convert-dialog.d.ts +32 -0
  218. package/src/lib/components/lead-convert-dialog.js +493 -0
  219. package/src/lib/components/lead-convert-dialog.js.map +1 -0
  220. package/src/lib/components/lead-detail-page.d.ts +16 -0
  221. package/src/lib/components/lead-detail-page.js +163 -0
  222. package/src/lib/components/lead-detail-page.js.map +1 -0
  223. package/src/lib/components/lead-history-card.d.ts +32 -0
  224. package/src/lib/components/lead-history-card.js +165 -0
  225. package/src/lib/components/lead-history-card.js.map +1 -0
  226. package/src/lib/components/lead-import-drawer.d.ts +24 -0
  227. package/src/lib/components/lead-import-drawer.js +95 -0
  228. package/src/lib/components/lead-import-drawer.js.map +1 -0
  229. package/src/lib/components/lead-owner-select.d.ts +35 -0
  230. package/src/lib/components/lead-owner-select.js +91 -0
  231. package/src/lib/components/lead-owner-select.js.map +1 -0
  232. package/src/lib/components/lead-properties-card.d.ts +61 -0
  233. package/src/lib/components/lead-properties-card.js +395 -0
  234. package/src/lib/components/lead-properties-card.js.map +1 -0
  235. package/src/lib/components/lead-status-chip.d.ts +12 -0
  236. package/src/lib/components/lead-status-chip.js +43 -0
  237. package/src/lib/components/lead-status-chip.js.map +1 -0
  238. package/src/lib/components/lead-surfaces-note.d.ts +126 -0
  239. package/src/lib/components/lead-surfaces-note.js +262 -0
  240. package/src/lib/components/lead-surfaces-note.js.map +1 -0
  241. package/src/lib/components/lead-unqualify-dialog.d.ts +24 -0
  242. package/src/lib/components/lead-unqualify-dialog.js +125 -0
  243. package/src/lib/components/lead-unqualify-dialog.js.map +1 -0
  244. package/src/lib/components/leads-bulk-bar.d.ts +58 -0
  245. package/src/lib/components/leads-bulk-bar.js +307 -0
  246. package/src/lib/components/leads-bulk-bar.js.map +1 -0
  247. package/src/lib/components/leads-section.d.ts +23 -0
  248. package/src/lib/components/leads-section.js +664 -0
  249. package/src/lib/components/leads-section.js.map +1 -0
  250. package/src/lib/components/linked-deals-card.d.ts +32 -0
  251. package/src/lib/components/linked-deals-card.js +163 -0
  252. package/src/lib/components/linked-deals-card.js.map +1 -0
  253. package/src/lib/components/log-activity-dialog.d.ts +60 -0
  254. package/src/lib/components/log-activity-dialog.js +368 -0
  255. package/src/lib/components/log-activity-dialog.js.map +1 -0
  256. package/src/lib/components/lost-reason-dialog.d.ts +26 -0
  257. package/src/lib/components/lost-reason-dialog.js +95 -0
  258. package/src/lib/components/lost-reason-dialog.js.map +1 -0
  259. package/src/lib/components/new-contact-drawer.d.ts +78 -0
  260. package/src/lib/components/new-contact-drawer.js +343 -0
  261. package/src/lib/components/new-contact-drawer.js.map +1 -0
  262. package/src/lib/components/org-lead-surfaces-note.d.ts +57 -0
  263. package/src/lib/components/org-lead-surfaces-note.js +172 -0
  264. package/src/lib/components/org-lead-surfaces-note.js.map +1 -0
  265. package/src/lib/components/owner-avatar.d.ts +18 -0
  266. package/src/lib/components/owner-avatar.js +61 -0
  267. package/src/lib/components/owner-avatar.js.map +1 -0
  268. package/src/lib/components/pipeline-stages-dialog.d.ts +43 -0
  269. package/src/lib/components/pipeline-stages-dialog.js +339 -0
  270. package/src/lib/components/pipeline-stages-dialog.js.map +1 -0
  271. package/src/lib/components/pipelines-dialog.d.ts +55 -0
  272. package/src/lib/components/pipelines-dialog.js +517 -0
  273. package/src/lib/components/pipelines-dialog.js.map +1 -0
  274. package/src/lib/components/recent-activity-feed.d.ts +39 -0
  275. package/src/lib/components/recent-activity-feed.js +103 -0
  276. package/src/lib/components/recent-activity-feed.js.map +1 -0
  277. package/src/lib/components/recipes-card.d.ts +39 -0
  278. package/src/lib/components/recipes-card.js +485 -0
  279. package/src/lib/components/recipes-card.js.map +1 -0
  280. package/src/lib/components/record-activity-card.d.ts +26 -0
  281. package/src/lib/components/record-activity-card.js +121 -0
  282. package/src/lib/components/record-activity-card.js.map +1 -0
  283. package/src/lib/components/record-files-card.d.ts +67 -0
  284. package/src/lib/components/record-files-card.js +290 -0
  285. package/src/lib/components/record-files-card.js.map +1 -0
  286. package/src/lib/components/record-tasks-card.d.ts +32 -0
  287. package/src/lib/components/record-tasks-card.js +306 -0
  288. package/src/lib/components/record-tasks-card.js.map +1 -0
  289. package/src/lib/components/reports/activity-card.d.ts +57 -0
  290. package/src/lib/components/reports/activity-card.js +281 -0
  291. package/src/lib/components/reports/activity-card.js.map +1 -0
  292. package/src/lib/components/reports/closed-deals-card.d.ts +20 -0
  293. package/src/lib/components/reports/closed-deals-card.js +194 -0
  294. package/src/lib/components/reports/closed-deals-card.js.map +1 -0
  295. package/src/lib/components/reports/contacts-mix-card.d.ts +27 -0
  296. package/src/lib/components/reports/contacts-mix-card.js +161 -0
  297. package/src/lib/components/reports/contacts-mix-card.js.map +1 -0
  298. package/src/lib/components/reports/contacts-trend-card.d.ts +31 -0
  299. package/src/lib/components/reports/contacts-trend-card.js +144 -0
  300. package/src/lib/components/reports/contacts-trend-card.js.map +1 -0
  301. package/src/lib/components/reports/forecast-card.d.ts +22 -0
  302. package/src/lib/components/reports/forecast-card.js +251 -0
  303. package/src/lib/components/reports/forecast-card.js.map +1 -0
  304. package/src/lib/components/reports/lead-counts.d.ts +32 -0
  305. package/src/lib/components/reports/lead-counts.js +44 -0
  306. package/src/lib/components/reports/lead-counts.js.map +1 -0
  307. package/src/lib/components/reports/lead-funnel-card.d.ts +38 -0
  308. package/src/lib/components/reports/lead-funnel-card.js +375 -0
  309. package/src/lib/components/reports/lead-funnel-card.js.map +1 -0
  310. package/src/lib/components/reports/pipeline-card.d.ts +19 -0
  311. package/src/lib/components/reports/pipeline-card.js +338 -0
  312. package/src/lib/components/reports/pipeline-card.js.map +1 -0
  313. package/src/lib/components/reports/report-bar-chart.d.ts +39 -0
  314. package/src/lib/components/reports/report-bar-chart.js +133 -0
  315. package/src/lib/components/reports/report-bar-chart.js.map +1 -0
  316. package/src/lib/components/reports/report-breakdown.d.ts +32 -0
  317. package/src/lib/components/reports/report-breakdown.js +105 -0
  318. package/src/lib/components/reports/report-breakdown.js.map +1 -0
  319. package/src/lib/components/reports/report-export.d.ts +37 -0
  320. package/src/lib/components/reports/report-export.js +66 -0
  321. package/src/lib/components/reports/report-export.js.map +1 -0
  322. package/src/lib/components/reports/report-format.d.ts +36 -0
  323. package/src/lib/components/reports/report-format.js +43 -0
  324. package/src/lib/components/reports/report-format.js.map +1 -0
  325. package/src/lib/components/reports/report-scope.d.ts +81 -0
  326. package/src/lib/components/reports/report-scope.js +58 -0
  327. package/src/lib/components/reports/report-scope.js.map +1 -0
  328. package/src/lib/components/reports/report-stat-tile.d.ts +47 -0
  329. package/src/lib/components/reports/report-stat-tile.js +96 -0
  330. package/src/lib/components/reports/report-stat-tile.js.map +1 -0
  331. package/src/lib/components/reports/source-conversion-card.d.ts +28 -0
  332. package/src/lib/components/reports/source-conversion-card.js +205 -0
  333. package/src/lib/components/reports/source-conversion-card.js.map +1 -0
  334. package/src/lib/components/reports/tasks-card.d.ts +26 -0
  335. package/src/lib/components/reports/tasks-card.js +279 -0
  336. package/src/lib/components/reports/tasks-card.js.map +1 -0
  337. package/src/lib/components/reports/use-aggregate-read.d.ts +99 -0
  338. package/src/lib/components/reports/use-aggregate-read.js +195 -0
  339. package/src/lib/components/reports/use-aggregate-read.js.map +1 -0
  340. package/src/lib/components/reports/won-lost-by-owner-card.d.ts +30 -0
  341. package/src/lib/components/reports/won-lost-by-owner-card.js +168 -0
  342. package/src/lib/components/reports/won-lost-by-owner-card.js.map +1 -0
  343. package/src/lib/components/reports-section.d.ts +42 -0
  344. package/src/lib/components/reports-section.js +308 -0
  345. package/src/lib/components/reports-section.js.map +1 -0
  346. package/src/lib/components/sending-addresses-card.d.ts +49 -0
  347. package/src/lib/components/sending-addresses-card.js +262 -0
  348. package/src/lib/components/sending-addresses-card.js.map +1 -0
  349. package/src/lib/components/settings-section.d.ts +151 -0
  350. package/src/lib/components/settings-section.js +783 -0
  351. package/src/lib/components/settings-section.js.map +1 -0
  352. package/src/lib/components/task-cells.d.ts +51 -0
  353. package/src/lib/components/task-cells.js +139 -0
  354. package/src/lib/components/task-cells.js.map +1 -0
  355. package/src/lib/components/task-edit-drawer.d.ts +53 -0
  356. package/src/lib/components/task-edit-drawer.js +483 -0
  357. package/src/lib/components/task-edit-drawer.js.map +1 -0
  358. package/src/lib/components/task-import-drawer.d.ts +24 -0
  359. package/src/lib/components/task-import-drawer.js +82 -0
  360. package/src/lib/components/task-import-drawer.js.map +1 -0
  361. package/src/lib/components/task-snooze-menu.d.ts +65 -0
  362. package/src/lib/components/task-snooze-menu.js +207 -0
  363. package/src/lib/components/task-snooze-menu.js.map +1 -0
  364. package/src/lib/components/tasks-bulk-bar.d.ts +25 -0
  365. package/src/lib/components/tasks-bulk-bar.js +348 -0
  366. package/src/lib/components/tasks-bulk-bar.js.map +1 -0
  367. package/src/lib/components/tasks-calendar.d.ts +38 -0
  368. package/src/lib/components/tasks-calendar.js +228 -0
  369. package/src/lib/components/tasks-calendar.js.map +1 -0
  370. package/src/lib/components/tasks-section.d.ts +27 -0
  371. package/src/lib/components/tasks-section.js +579 -0
  372. package/src/lib/components/tasks-section.js.map +1 -0
  373. package/src/lib/components/use-contact-campaign-emails.d.ts +32 -0
  374. package/src/lib/components/use-contact-campaign-emails.js +83 -0
  375. package/src/lib/components/use-contact-campaign-emails.js.map +1 -0
  376. package/src/lib/components/use-crm-api.d.ts +44 -0
  377. package/src/lib/components/use-crm-api.js +84 -0
  378. package/src/lib/components/use-crm-api.js.map +1 -0
  379. package/src/lib/components/use-crm-inbound-address.d.ts +60 -0
  380. package/src/lib/components/use-crm-inbound-address.js +124 -0
  381. package/src/lib/components/use-crm-inbound-address.js.map +1 -0
  382. package/src/lib/components/use-emails-hub-path.d.ts +24 -0
  383. package/src/lib/components/use-emails-hub-path.js +59 -0
  384. package/src/lib/components/use-emails-hub-path.js.map +1 -0
  385. package/src/lib/components/use-member-email-aliases.d.ts +54 -0
  386. package/src/lib/components/use-member-email-aliases.js +186 -0
  387. package/src/lib/components/use-member-email-aliases.js.map +1 -0
  388. package/src/lib/components/use-org-members.d.ts +40 -0
  389. package/src/lib/components/use-org-members.js +100 -0
  390. package/src/lib/components/use-org-members.js.map +1 -0
  391. package/src/lib/constants/api-routes.d.ts +109 -0
  392. package/src/lib/constants/api-routes.js +74 -0
  393. package/src/lib/constants/api-routes.js.map +1 -0
  394. package/src/lib/constants/bundle-common.d.ts +14 -0
  395. package/src/lib/constants/bundle-common.js +14 -0
  396. package/src/lib/constants/bundle-common.js.map +1 -0
  397. package/src/lib/constants/company-filters.d.ts +18 -0
  398. package/src/lib/constants/company-filters.js +51 -0
  399. package/src/lib/constants/company-filters.js.map +1 -0
  400. package/src/lib/constants/contact-filters.d.ts +38 -0
  401. package/src/lib/constants/contact-filters.js +294 -0
  402. package/src/lib/constants/contact-filters.js.map +1 -0
  403. package/src/lib/hooks/use-contact-field-definitions.d.ts +48 -0
  404. package/src/lib/hooks/use-contact-field-definitions.js +72 -0
  405. package/src/lib/hooks/use-contact-field-definitions.js.map +1 -0
  406. package/src/lib/hooks/use-contact-update.d.ts +25 -0
  407. package/src/lib/hooks/use-contact-update.js +80 -0
  408. package/src/lib/hooks/use-contact-update.js.map +1 -0
  409. package/src/lib/hooks/use-crm-activity-logger.d.ts +73 -0
  410. package/src/lib/hooks/use-crm-activity-logger.js +101 -0
  411. package/src/lib/hooks/use-crm-activity-logger.js.map +1 -0
  412. package/src/lib/hooks/use-crm-bulk-apply.d.ts +52 -0
  413. package/src/lib/hooks/use-crm-bulk-apply.js +112 -0
  414. package/src/lib/hooks/use-crm-bulk-apply.js.map +1 -0
  415. package/src/lib/hooks/use-crm-default-view.d.ts +24 -0
  416. package/src/lib/hooks/use-crm-default-view.js +64 -0
  417. package/src/lib/hooks/use-crm-default-view.js.map +1 -0
  418. package/src/lib/hooks/use-crm-email-templates.d.ts +59 -0
  419. package/src/lib/hooks/use-crm-email-templates.js +103 -0
  420. package/src/lib/hooks/use-crm-email-templates.js.map +1 -0
  421. package/src/lib/hooks/use-crm-hub-path.d.ts +29 -0
  422. package/src/lib/hooks/use-crm-hub-path.js +41 -0
  423. package/src/lib/hooks/use-crm-hub-path.js.map +1 -0
  424. package/src/lib/hooks/use-crm-org-mount.d.ts +97 -0
  425. package/src/lib/hooks/use-crm-org-mount.js +215 -0
  426. package/src/lib/hooks/use-crm-org-mount.js.map +1 -0
  427. package/src/lib/hooks/use-crm-record-names.d.ts +52 -0
  428. package/src/lib/hooks/use-crm-record-names.js +126 -0
  429. package/src/lib/hooks/use-crm-record-names.js.map +1 -0
  430. package/src/lib/hooks/use-crm-records-quota.d.ts +68 -0
  431. package/src/lib/hooks/use-crm-records-quota.js +118 -0
  432. package/src/lib/hooks/use-crm-records-quota.js.map +1 -0
  433. package/src/lib/hooks/use-crm-saved-view.d.ts +96 -0
  434. package/src/lib/hooks/use-crm-saved-view.js +329 -0
  435. package/src/lib/hooks/use-crm-saved-view.js.map +1 -0
  436. package/src/lib/hooks/use-crm-scope.d.ts +117 -0
  437. package/src/lib/hooks/use-crm-scope.js +147 -0
  438. package/src/lib/hooks/use-crm-scope.js.map +1 -0
  439. package/src/lib/hooks/use-crm-tasks.d.ts +85 -0
  440. package/src/lib/hooks/use-crm-tasks.js +153 -0
  441. package/src/lib/hooks/use-crm-tasks.js.map +1 -0
  442. package/src/lib/hooks/use-crm-view-grid.d.ts +55 -0
  443. package/src/lib/hooks/use-crm-view-grid.js +170 -0
  444. package/src/lib/hooks/use-crm-view-grid.js.map +1 -0
  445. package/src/lib/hooks/use-crm-views.d.ts +42 -0
  446. package/src/lib/hooks/use-crm-views.js +84 -0
  447. package/src/lib/hooks/use-crm-views.js.map +1 -0
  448. package/src/lib/hooks/use-deal-stage-api.d.ts +69 -0
  449. package/src/lib/hooks/use-deal-stage-api.js +78 -0
  450. package/src/lib/hooks/use-deal-stage-api.js.map +1 -0
  451. package/src/lib/hooks/use-deals.d.ts +47 -0
  452. package/src/lib/hooks/use-deals.js +105 -0
  453. package/src/lib/hooks/use-deals.js.map +1 -0
  454. package/src/lib/hooks/use-org-leads.d.ts +53 -0
  455. package/src/lib/hooks/use-org-leads.js +114 -0
  456. package/src/lib/hooks/use-org-leads.js.map +1 -0
  457. package/src/lib/hooks/use-org-member-directory.d.ts +36 -0
  458. package/src/lib/hooks/use-org-member-directory.js +116 -0
  459. package/src/lib/hooks/use-org-member-directory.js.map +1 -0
  460. package/src/lib/hooks/use-org-member-options.d.ts +38 -0
  461. package/src/lib/hooks/use-org-member-options.js +131 -0
  462. package/src/lib/hooks/use-org-member-options.js.map +1 -0
  463. package/src/lib/hooks/use-pipeline.d.ts +71 -0
  464. package/src/lib/hooks/use-pipeline.js +159 -0
  465. package/src/lib/hooks/use-pipeline.js.map +1 -0
  466. package/src/lib/model/companies-bulk-writes.d.ts +40 -0
  467. package/src/lib/model/companies-bulk-writes.js +103 -0
  468. package/src/lib/model/companies-bulk-writes.js.map +1 -0
  469. package/src/lib/model/companies-csv.d.ts +36 -0
  470. package/src/lib/model/companies-csv.js +38 -0
  471. package/src/lib/model/companies-csv.js.map +1 -0
  472. package/src/lib/model/companies.d.ts +99 -0
  473. package/src/lib/model/companies.js +168 -0
  474. package/src/lib/model/companies.js.map +1 -0
  475. package/src/lib/model/company-delete-route.d.ts +43 -0
  476. package/src/lib/model/company-delete-route.js +31 -0
  477. package/src/lib/model/company-delete-route.js.map +1 -0
  478. package/src/lib/model/company-delete.d.ts +42 -0
  479. package/src/lib/model/company-delete.js +52 -0
  480. package/src/lib/model/company-delete.js.map +1 -0
  481. package/src/lib/model/contact-duplicates.d.ts +58 -0
  482. package/src/lib/model/contact-duplicates.js +67 -0
  483. package/src/lib/model/contact-duplicates.js.map +1 -0
  484. package/src/lib/model/contact-record.d.ts +113 -0
  485. package/src/lib/model/contact-record.js +70 -0
  486. package/src/lib/model/contact-record.js.map +1 -0
  487. package/src/lib/model/contact-update.d.ts +93 -0
  488. package/src/lib/model/contact-update.js +50 -0
  489. package/src/lib/model/contact-update.js.map +1 -0
  490. package/src/lib/model/contacts-bulk-writes.d.ts +173 -0
  491. package/src/lib/model/contacts-bulk-writes.js +196 -0
  492. package/src/lib/model/contacts-bulk-writes.js.map +1 -0
  493. package/src/lib/model/contacts-csv.d.ts +54 -0
  494. package/src/lib/model/contacts-csv.js +67 -0
  495. package/src/lib/model/contacts-csv.js.map +1 -0
  496. package/src/lib/model/contacts-list-seed.d.ts +51 -0
  497. package/src/lib/model/contacts-list-seed.js +63 -0
  498. package/src/lib/model/contacts-list-seed.js.map +1 -0
  499. package/src/lib/model/crm-activity-report.d.ts +27 -0
  500. package/src/lib/model/crm-activity-report.js +56 -0
  501. package/src/lib/model/crm-activity-report.js.map +1 -0
  502. package/src/lib/model/crm-api.d.ts +49 -0
  503. package/src/lib/model/crm-api.js +47 -0
  504. package/src/lib/model/crm-api.js.map +1 -0
  505. package/src/lib/model/crm-bulk-writes.d.ts +147 -0
  506. package/src/lib/model/crm-bulk-writes.js +207 -0
  507. package/src/lib/model/crm-bulk-writes.js.map +1 -0
  508. package/src/lib/model/crm-company-import.d.ts +154 -0
  509. package/src/lib/model/crm-company-import.js +331 -0
  510. package/src/lib/model/crm-company-import.js.map +1 -0
  511. package/src/lib/model/crm-custom-draft.d.ts +62 -0
  512. package/src/lib/model/crm-custom-draft.js +67 -0
  513. package/src/lib/model/crm-custom-draft.js.map +1 -0
  514. package/src/lib/model/crm-deal-import.d.ts +112 -0
  515. package/src/lib/model/crm-deal-import.js +263 -0
  516. package/src/lib/model/crm-deal-import.js.map +1 -0
  517. package/src/lib/model/crm-import.d.ts +244 -0
  518. package/src/lib/model/crm-import.js +466 -0
  519. package/src/lib/model/crm-import.js.map +1 -0
  520. package/src/lib/model/crm-lead-import.d.ts +105 -0
  521. package/src/lib/model/crm-lead-import.js +255 -0
  522. package/src/lib/model/crm-lead-import.js.map +1 -0
  523. package/src/lib/model/crm-record-routes.d.ts +21 -0
  524. package/src/lib/model/crm-record-routes.js +70 -0
  525. package/src/lib/model/crm-record-routes.js.map +1 -0
  526. package/src/lib/model/crm-routes.d.ts +101 -0
  527. package/src/lib/model/crm-routes.js +92 -0
  528. package/src/lib/model/crm-routes.js.map +1 -0
  529. package/src/lib/model/crm-task-import.d.ts +94 -0
  530. package/src/lib/model/crm-task-import.js +275 -0
  531. package/src/lib/model/crm-task-import.js.map +1 -0
  532. package/src/lib/model/crm-view-param.d.ts +43 -0
  533. package/src/lib/model/crm-view-param.js +49 -0
  534. package/src/lib/model/crm-view-param.js.map +1 -0
  535. package/src/lib/model/deal-board-model.d.ts +241 -0
  536. package/src/lib/model/deal-board-model.js +439 -0
  537. package/src/lib/model/deal-board-model.js.map +1 -0
  538. package/src/lib/model/deal-form-model.d.ts +114 -0
  539. package/src/lib/model/deal-form-model.js +218 -0
  540. package/src/lib/model/deal-form-model.js.map +1 -0
  541. package/src/lib/model/deals-csv.d.ts +32 -0
  542. package/src/lib/model/deals-csv.js +37 -0
  543. package/src/lib/model/deals-csv.js.map +1 -0
  544. package/src/lib/model/import-column-shapes.d.ts +36 -0
  545. package/src/lib/model/import-column-shapes.js +76 -0
  546. package/src/lib/model/import-column-shapes.js.map +1 -0
  547. package/src/lib/model/lead-company-suggestion.d.ts +61 -0
  548. package/src/lib/model/lead-company-suggestion.js +65 -0
  549. package/src/lib/model/lead-company-suggestion.js.map +1 -0
  550. package/src/lib/model/lead-filters.d.ts +29 -0
  551. package/src/lib/model/lead-filters.js +39 -0
  552. package/src/lib/model/lead-filters.js.map +1 -0
  553. package/src/lib/model/lead-surfaces.d.ts +58 -0
  554. package/src/lib/model/lead-surfaces.js +67 -0
  555. package/src/lib/model/lead-surfaces.js.map +1 -0
  556. package/src/lib/model/leads-csv.d.ts +40 -0
  557. package/src/lib/model/leads-csv.js +40 -0
  558. package/src/lib/model/leads-csv.js.map +1 -0
  559. package/src/lib/model/next-activity-api.d.ts +31 -0
  560. package/src/lib/model/next-activity-api.js +57 -0
  561. package/src/lib/model/next-activity-api.js.map +1 -0
  562. package/src/lib/model/next-activity.d.ts +64 -0
  563. package/src/lib/model/next-activity.js +47 -0
  564. package/src/lib/model/next-activity.js.map +1 -0
  565. package/src/lib/model/person-key-web.d.ts +43 -0
  566. package/src/lib/model/person-key-web.js +52 -0
  567. package/src/lib/model/person-key-web.js.map +1 -0
  568. package/src/lib/model/record-facts.d.ts +282 -0
  569. package/src/lib/model/record-facts.js +434 -0
  570. package/src/lib/model/record-facts.js.map +1 -0
  571. package/src/lib/model/task-api.d.ts +28 -0
  572. package/src/lib/model/task-api.js +57 -0
  573. package/src/lib/model/task-api.js.map +1 -0
  574. package/src/lib/model/task-calendar.d.ts +108 -0
  575. package/src/lib/model/task-calendar.js +139 -0
  576. package/src/lib/model/task-calendar.js.map +1 -0
  577. package/src/lib/model/task-routes.d.ts +177 -0
  578. package/src/lib/model/task-routes.js +197 -0
  579. package/src/lib/model/task-routes.js.map +1 -0
  580. package/src/lib/model/task-scope.d.ts +45 -0
  581. package/src/lib/model/task-scope.js +51 -0
  582. package/src/lib/model/task-scope.js.map +1 -0
  583. package/src/lib/model/task-views.d.ts +149 -0
  584. package/src/lib/model/task-views.js +286 -0
  585. package/src/lib/model/task-views.js.map +1 -0
  586. package/src/lib/model/tasks-csv.d.ts +28 -0
  587. package/src/lib/model/tasks-csv.js +28 -0
  588. package/src/lib/model/tasks-csv.js.map +1 -0
  589. package/src/lib/plugin.d.ts +32 -0
  590. package/src/lib/plugin.js +208 -0
  591. package/src/lib/plugin.js.map +1 -0
  592. package/src/lib/server/companies-import.d.ts +57 -0
  593. package/src/lib/server/companies-import.js +242 -0
  594. package/src/lib/server/companies-import.js.map +1 -0
  595. package/src/lib/server/company-delete.d.ts +59 -0
  596. package/src/lib/server/company-delete.js +146 -0
  597. package/src/lib/server/company-delete.js.map +1 -0
  598. package/src/lib/server/contact-email-history.d.ts +82 -0
  599. package/src/lib/server/contact-email-history.js +264 -0
  600. package/src/lib/server/contact-email-history.js.map +1 -0
  601. package/src/lib/server/contact-profile.d.ts +41 -0
  602. package/src/lib/server/contact-profile.js +45 -0
  603. package/src/lib/server/contact-profile.js.map +1 -0
  604. package/src/lib/server/contact-update.d.ts +92 -0
  605. package/src/lib/server/contact-update.js +512 -0
  606. package/src/lib/server/contact-update.js.map +1 -0
  607. package/src/lib/server/contacts-import.d.ts +73 -0
  608. package/src/lib/server/contacts-import.js +263 -0
  609. package/src/lib/server/contacts-import.js.map +1 -0
  610. package/src/lib/server/contacts-merge.d.ts +86 -0
  611. package/src/lib/server/contacts-merge.js +206 -0
  612. package/src/lib/server/contacts-merge.js.map +1 -0
  613. package/src/lib/server/deals-import.d.ts +76 -0
  614. package/src/lib/server/deals-import.js +246 -0
  615. package/src/lib/server/deals-import.js.map +1 -0
  616. package/src/lib/server/email-send.d.ts +119 -0
  617. package/src/lib/server/email-send.js +667 -0
  618. package/src/lib/server/email-send.js.map +1 -0
  619. package/src/lib/server/email-template-duplicate.d.ts +19 -0
  620. package/src/lib/server/email-template-duplicate.js +206 -0
  621. package/src/lib/server/email-template-duplicate.js.map +1 -0
  622. package/src/lib/server/erase-person.d.ts +108 -0
  623. package/src/lib/server/erase-person.js +309 -0
  624. package/src/lib/server/erase-person.js.map +1 -0
  625. package/src/lib/server/import-context.d.ts +85 -0
  626. package/src/lib/server/import-context.js +181 -0
  627. package/src/lib/server/import-context.js.map +1 -0
  628. package/src/lib/server/inbound-address.d.ts +61 -0
  629. package/src/lib/server/inbound-address.js +188 -0
  630. package/src/lib/server/inbound-address.js.map +1 -0
  631. package/src/lib/server/lead-convert.d.ts +78 -0
  632. package/src/lib/server/lead-convert.js +250 -0
  633. package/src/lib/server/lead-convert.js.map +1 -0
  634. package/src/lib/server/leads-import.d.ts +84 -0
  635. package/src/lib/server/leads-import.js +261 -0
  636. package/src/lib/server/leads-import.js.map +1 -0
  637. package/src/lib/server/next-activity-routes.d.ts +33 -0
  638. package/src/lib/server/next-activity-routes.js +110 -0
  639. package/src/lib/server/next-activity-routes.js.map +1 -0
  640. package/src/lib/server/org-activity.d.ts +61 -0
  641. package/src/lib/server/org-activity.js +120 -0
  642. package/src/lib/server/org-activity.js.map +1 -0
  643. package/src/lib/server/org-caller.d.ts +110 -0
  644. package/src/lib/server/org-caller.js +154 -0
  645. package/src/lib/server/org-caller.js.map +1 -0
  646. package/src/lib/server/recipe-routes.d.ts +75 -0
  647. package/src/lib/server/recipe-routes.js +442 -0
  648. package/src/lib/server/recipe-routes.js.map +1 -0
  649. package/src/lib/server/record-facts.d.ts +65 -0
  650. package/src/lib/server/record-facts.js +337 -0
  651. package/src/lib/server/record-facts.js.map +1 -0
  652. package/src/lib/server/record-timeline.d.ts +51 -0
  653. package/src/lib/server/record-timeline.js +215 -0
  654. package/src/lib/server/record-timeline.js.map +1 -0
  655. package/src/lib/server/suite-gate.d.ts +42 -0
  656. package/src/lib/server/suite-gate.js +87 -0
  657. package/src/lib/server/suite-gate.js.map +1 -0
  658. package/src/lib/server/task-routes.d.ts +132 -0
  659. package/src/lib/server/task-routes.js +699 -0
  660. package/src/lib/server/task-routes.js.map +1 -0
  661. package/src/lib/server/tasks-import.d.ts +54 -0
  662. package/src/lib/server/tasks-import.js +157 -0
  663. package/src/lib/server/tasks-import.js.map +1 -0
  664. package/src/lib/server-deal-stage.d.ts +88 -0
  665. package/src/lib/server-deal-stage.js +316 -0
  666. package/src/lib/server-deal-stage.js.map +1 -0
  667. package/src/lib/server.d.ts +149 -0
  668. package/src/lib/server.js +615 -0
  669. package/src/lib/server.js.map +1 -0
@@ -0,0 +1,225 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Aglyn LLC
4
+ *
5
+ * Licensed under the Apache License, Version 2.0 (the "License");
6
+ * you may not use this file except in compliance with the License.
7
+ * You may obtain a copy of the License at
8
+ *
9
+ * http://www.apache.org/licenses/LICENSE-2.0
10
+ *
11
+ * Unless required by applicable law or agreed to in writing, software
12
+ * distributed under the License is distributed on an "AS IS" BASIS,
13
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ * See the License for the specific language governing permissions and
15
+ * limitations under the License.
16
+ */ 'use client';
17
+ import { _ as _extends } from "@swc/helpers/_/_extends";
18
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
19
+ import { CRM_COLLECTIONS, pluginDocsHelp, taskDueState } from "@aglyn/aglyn";
20
+ import { AppLink, CardDisplay } from "@aglyn/shared-ui-jsx";
21
+ import { useFirestore, useFirestoreCollection, useUser } from "@aglyn/tenant-feature-instance";
22
+ import { Button, Stack, Typography } from "@mui/material";
23
+ import { collection, limit, orderBy, query, where } from "firebase/firestore";
24
+ import { useMemo } from "react";
25
+ import { useCrmHubPath } from "../hooks/use-crm-hub-path.js";
26
+ import { crmVisibleToClause, useCrmScope } from "../hooks/use-crm-scope.js";
27
+ import { useNowMs } from "../hooks/use-crm-tasks.js";
28
+ import { crmRoutes } from "../model/crm-routes.js";
29
+ import { orderTaskRows } from "../model/task-views.js";
30
+ import { TaskDueText, TaskKindCell } from "./task-cells.js";
31
+ /**
32
+ * How many of the reader's open tasks the widget reads. Enough to count
33
+ * what is overdue and due today for anyone with a working list; a person
34
+ * with more than fifty open tasks has a tasks section to open.
35
+ */ const MY_TASKS_WINDOW = 50;
36
+ const NEXT_UP = 5;
37
+ /**
38
+ * Dashboard glance at the reader's tasks (AGL-2599): how many are overdue,
39
+ * how many are due today, and the next five, linking into the tasks section.
40
+ *
41
+ * Registered on the shell's `hostDashboard` slot, so it appears only on
42
+ * workspaces with the CRM enabled and for readers who hold `data.manage` —
43
+ * the extension's own gate, which the slot composes for every card.
44
+ *
45
+ * Renders NOTHING when the org has no open tasks at all. A dashboard card
46
+ * saying "no tasks" on a workspace that has never made one is a card about a
47
+ * feature the reader has not adopted, and the dashboard is not the place to
48
+ * sell it. The absence is decided by a one-row probe on the whole org's open
49
+ * tasks rather than by the reader's own list, so a person with nothing
50
+ * assigned on a team that uses tasks still sees the card, saying so.
51
+ *
52
+ * ## The organization level (AGL-2636)
53
+ *
54
+ * Mounted with no site beneath the org hub's mount — the org's sites page
55
+ * hands the card `hostId: null` and the hub's `basePath` — the two reads
56
+ * carry no scope clause, exactly as the tasks section's do at that level:
57
+ * the reader is an org-wide member (the page admits nobody else to the
58
+ * row), the rules admit them to every row, and a clause listing every
59
+ * site's token would need the whole site list and still miss a site the
60
+ * list did not carry. `useCrmScope` spells both levels, so the card is one
61
+ * component: under a site it filters on the site's own group's tokens as
62
+ * it always has, and at the org level it filters on nothing.
63
+ */ export function CrmTasksDueCard(props) {
64
+ const { hostId, basePath } = props;
65
+ const firestore = useFirestore();
66
+ const { data: user } = useUser();
67
+ const uid = user == null ? void 0 : user.uid;
68
+ const hubPath = useCrmHubPath(basePath);
69
+ const nowMs = useNowMs();
70
+ // The widget is handed a host id (or none) and no org document, so under
71
+ // a site the read scope resolves to the group of one — which a task
72
+ // created on a grouped sibling still matches, since it carries every
73
+ // sibling's token — and at the org level to no clause at all.
74
+ const { scope, visibleTo } = useCrmScope({
75
+ hostId
76
+ });
77
+ const tasks = useMemo(()=>scope ? collection(firestore, scope[0], scope[1], CRM_COLLECTIONS.tasks) : null, [
78
+ firestore,
79
+ scope
80
+ ]);
81
+ const { data: probe, status: probeStatus } = useFirestoreCollection(()=>tasks ? query(tasks, ...crmVisibleToClause(visibleTo), where('status', '==', 'open'), orderBy('dueAtMs', 'asc'), limit(1)) : null, [
82
+ tasks,
83
+ visibleTo
84
+ ], {
85
+ idField: '$id'
86
+ });
87
+ const { data: mineDocs, status: mineStatus } = useFirestoreCollection(()=>tasks && uid ? query(tasks, ...crmVisibleToClause(visibleTo), where('assigneeUid', '==', uid), where('status', '==', 'open'), orderBy('dueAtMs', 'asc'), limit(MY_TASKS_WINDOW)) : null, [
88
+ tasks,
89
+ visibleTo,
90
+ uid
91
+ ], {
92
+ idField: '$id'
93
+ });
94
+ const mine = useMemo(()=>orderTaskRows(mineDocs != null ? mineDocs : []), [
95
+ mineDocs
96
+ ]);
97
+ const counts = useMemo(()=>{
98
+ let overdue = 0;
99
+ let today = 0;
100
+ for (const task of mine){
101
+ const state = taskDueState(task, nowMs);
102
+ if (state === 'overdue') overdue += 1;
103
+ else if (state === 'today') today += 1;
104
+ }
105
+ return {
106
+ overdue,
107
+ today
108
+ };
109
+ }, [
110
+ mine,
111
+ nowMs
112
+ ]);
113
+ const nextUp = useMemo(()=>mine.slice(0, NEXT_UP), [
114
+ mine
115
+ ]);
116
+ const tasksHref = crmRoutes(hubPath).section('tasks');
117
+ // Nothing until the probe has answered, and nothing when it answered
118
+ // "no open tasks anywhere": a card that flashes in and out is worse than
119
+ // one that arrives a moment late.
120
+ if (probeStatus !== 'success' || !(probe == null ? void 0 : probe.length)) return null;
121
+ return /*#__PURE__*/ _jsx(CardDisplay, {
122
+ header: 'Tasks due',
123
+ help: pluginDocsHelp('crmTasks', {
124
+ anchor: '#the-dashboard-card',
125
+ excerpt: 'Your overdue and due-today counts and the next five tasks ' + 'assigned to you. The Tasks section has every view.'
126
+ }),
127
+ contentGutterX: true,
128
+ contentGutterY: true,
129
+ HeaderProps: {
130
+ action: /*#__PURE__*/ _jsx(Button, _extends({
131
+ component: AppLink
132
+ }, {
133
+ componentVariant: 'naked',
134
+ nativeButton: false
135
+ }, {
136
+ href: tasksHref,
137
+ size: "small",
138
+ color: "primary",
139
+ children: 'View all'
140
+ }))
141
+ },
142
+ children: /*#__PURE__*/ _jsxs(Stack, {
143
+ spacing: 1.5,
144
+ children: [
145
+ /*#__PURE__*/ _jsxs(Stack, {
146
+ direction: "row",
147
+ spacing: 3,
148
+ children: [
149
+ /*#__PURE__*/ _jsxs(Stack, {
150
+ children: [
151
+ /*#__PURE__*/ _jsx(Typography, {
152
+ variant: "h5",
153
+ sx: {
154
+ color: counts.overdue ? 'error.main' : 'text.primary'
155
+ },
156
+ children: mine.length >= MY_TASKS_WINDOW ? `${counts.overdue}+` : counts.overdue
157
+ }),
158
+ /*#__PURE__*/ _jsx(Typography, {
159
+ variant: "caption",
160
+ color: "text.secondary",
161
+ children: 'Overdue'
162
+ })
163
+ ]
164
+ }),
165
+ /*#__PURE__*/ _jsxs(Stack, {
166
+ children: [
167
+ /*#__PURE__*/ _jsx(Typography, {
168
+ variant: "h5",
169
+ sx: {
170
+ color: counts.today ? 'warning.main' : 'text.primary'
171
+ },
172
+ children: counts.today
173
+ }),
174
+ /*#__PURE__*/ _jsx(Typography, {
175
+ variant: "caption",
176
+ color: "text.secondary",
177
+ children: 'Due today'
178
+ })
179
+ ]
180
+ })
181
+ ]
182
+ }),
183
+ mineStatus === 'success' && !nextUp.length ? /*#__PURE__*/ _jsx(Typography, {
184
+ variant: "body2",
185
+ color: "text.secondary",
186
+ children: 'Nothing is assigned to you.'
187
+ }) : /*#__PURE__*/ _jsx(Stack, {
188
+ spacing: 0.75,
189
+ children: nextUp.map((task)=>/*#__PURE__*/ _jsxs(Stack, {
190
+ direction: "row",
191
+ spacing: 1,
192
+ sx: {
193
+ alignItems: 'center',
194
+ minWidth: 0
195
+ },
196
+ children: [
197
+ /*#__PURE__*/ _jsx(TaskKindCell, {
198
+ kind: task.kind,
199
+ iconOnly: true
200
+ }),
201
+ /*#__PURE__*/ _jsx(Typography, {
202
+ variant: "body2",
203
+ noWrap: true,
204
+ sx: {
205
+ minWidth: 0,
206
+ flex: 1
207
+ },
208
+ children: task.title
209
+ }),
210
+ /*#__PURE__*/ _jsx(TaskDueText, {
211
+ task: task,
212
+ nowMs: nowMs,
213
+ variant: "caption"
214
+ })
215
+ ]
216
+ }, task.$id))
217
+ })
218
+ ]
219
+ })
220
+ });
221
+ }
222
+ CrmTasksDueCard.displayName = 'CrmTasksDueCard';
223
+ export default CrmTasksDueCard;
224
+
225
+ //# sourceMappingURL=crm-tasks-due-card.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../../../libs/plugins/crm/src/lib/components/crm-tasks-due-card.tsx"],"sourcesContent":["/**\n * @license\n * Copyright 2026 Aglyn LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n'use client'\n\nimport { CRM_COLLECTIONS, pluginDocsHelp, taskDueState } from '@aglyn/aglyn'\nimport { AppLink, CardDisplay } from '@aglyn/shared-ui-jsx'\nimport {\n useFirestore,\n useFirestoreCollection,\n useUser,\n} from '@aglyn/tenant-feature-instance'\nimport { Button, Stack, Typography } from '@mui/material'\nimport { collection, limit, orderBy, query, where } from 'firebase/firestore'\nimport { useMemo } from 'react'\nimport { useCrmHubPath } from '../hooks/use-crm-hub-path'\nimport { crmVisibleToClause, useCrmScope } from '../hooks/use-crm-scope'\nimport { type CrmTaskRow, useNowMs } from '../hooks/use-crm-tasks'\nimport { crmRoutes } from '../model/crm-routes'\nimport { orderTaskRows } from '../model/task-views'\nimport { TaskDueText, TaskKindCell } from './task-cells'\n\n/**\n * How many of the reader's open tasks the widget reads. Enough to count\n * what is overdue and due today for anyone with a working list; a person\n * with more than fifty open tasks has a tasks section to open.\n */\nconst MY_TASKS_WINDOW = 50\nconst NEXT_UP = 5\n\nexport interface CrmTasksDueCardProps {\n /**\n * The site the card is on the dashboard of, or `null` beneath the org\n * hub's mount (AGL-2636), where the reader's tasks are read across every\n * site of the organization at once.\n */\n hostId: string | null\n /** The org hub's own path, for the link when there is no site to derive it from. */\n basePath?: string\n}\n\n/**\n * Dashboard glance at the reader's tasks (AGL-2599): how many are overdue,\n * how many are due today, and the next five, linking into the tasks section.\n *\n * Registered on the shell's `hostDashboard` slot, so it appears only on\n * workspaces with the CRM enabled and for readers who hold `data.manage` —\n * the extension's own gate, which the slot composes for every card.\n *\n * Renders NOTHING when the org has no open tasks at all. A dashboard card\n * saying \"no tasks\" on a workspace that has never made one is a card about a\n * feature the reader has not adopted, and the dashboard is not the place to\n * sell it. The absence is decided by a one-row probe on the whole org's open\n * tasks rather than by the reader's own list, so a person with nothing\n * assigned on a team that uses tasks still sees the card, saying so.\n *\n * ## The organization level (AGL-2636)\n *\n * Mounted with no site beneath the org hub's mount — the org's sites page\n * hands the card `hostId: null` and the hub's `basePath` — the two reads\n * carry no scope clause, exactly as the tasks section's do at that level:\n * the reader is an org-wide member (the page admits nobody else to the\n * row), the rules admit them to every row, and a clause listing every\n * site's token would need the whole site list and still miss a site the\n * list did not carry. `useCrmScope` spells both levels, so the card is one\n * component: under a site it filters on the site's own group's tokens as\n * it always has, and at the org level it filters on nothing.\n */\nexport function CrmTasksDueCard(props: CrmTasksDueCardProps) {\n const { hostId, basePath } = props\n const firestore = useFirestore()\n const { data: user } = useUser()\n const uid = user?.uid\n const hubPath = useCrmHubPath(basePath)\n const nowMs = useNowMs()\n // The widget is handed a host id (or none) and no org document, so under\n // a site the read scope resolves to the group of one — which a task\n // created on a grouped sibling still matches, since it carries every\n // sibling's token — and at the org level to no clause at all.\n const { scope, visibleTo } = useCrmScope({ hostId })\n const tasks = useMemo(\n () =>\n scope ? collection(firestore, scope[0], scope[1], CRM_COLLECTIONS.tasks) : null,\n [firestore, scope],\n )\n\n const { data: probe, status: probeStatus } = useFirestoreCollection<CrmTaskRow>(\n () =>\n tasks\n ? query(\n tasks,\n ...crmVisibleToClause(visibleTo),\n where('status', '==', 'open'),\n orderBy('dueAtMs', 'asc'),\n limit(1),\n )\n : null,\n [tasks, visibleTo],\n { idField: '$id' },\n )\n const { data: mineDocs, status: mineStatus } = useFirestoreCollection<CrmTaskRow>(\n () =>\n tasks && uid\n ? query(\n tasks,\n ...crmVisibleToClause(visibleTo),\n where('assigneeUid', '==', uid),\n where('status', '==', 'open'),\n orderBy('dueAtMs', 'asc'),\n limit(MY_TASKS_WINDOW),\n )\n : null,\n [tasks, visibleTo, uid],\n { idField: '$id' },\n )\n\n const mine = useMemo(() => orderTaskRows(mineDocs ?? []), [mineDocs])\n const counts = useMemo(() => {\n let overdue = 0\n let today = 0\n for (const task of mine) {\n const state = taskDueState(task, nowMs)\n if (state === 'overdue') overdue += 1\n else if (state === 'today') today += 1\n }\n return { overdue, today }\n }, [mine, nowMs])\n const nextUp = useMemo(() => mine.slice(0, NEXT_UP), [mine])\n\n const tasksHref = crmRoutes(hubPath).section('tasks')\n\n // Nothing until the probe has answered, and nothing when it answered\n // \"no open tasks anywhere\": a card that flashes in and out is worse than\n // one that arrives a moment late.\n if (probeStatus !== 'success' || !probe?.length) return null\n\n return (\n <CardDisplay\n header={'Tasks due'}\n help={pluginDocsHelp('crmTasks', {\n anchor: '#the-dashboard-card',\n excerpt:\n 'Your overdue and due-today counts and the next five tasks ' +\n 'assigned to you. The Tasks section has every view.',\n })}\n contentGutterX\n contentGutterY\n HeaderProps={{\n action: (\n <Button\n component={AppLink as any}\n {...({ componentVariant: 'naked', nativeButton: false } as any)}\n href={tasksHref}\n size=\"small\"\n color=\"primary\"\n >\n {'View all'}\n </Button>\n ),\n }}\n >\n <Stack spacing={1.5}>\n <Stack direction=\"row\" spacing={3}>\n <Stack>\n <Typography\n variant=\"h5\"\n sx={{ color: counts.overdue ? 'error.main' : 'text.primary' }}\n >\n {mine.length >= MY_TASKS_WINDOW ? `${counts.overdue}+` : counts.overdue}\n </Typography>\n <Typography variant=\"caption\" color=\"text.secondary\">\n {'Overdue'}\n </Typography>\n </Stack>\n <Stack>\n <Typography\n variant=\"h5\"\n sx={{ color: counts.today ? 'warning.main' : 'text.primary' }}\n >\n {counts.today}\n </Typography>\n <Typography variant=\"caption\" color=\"text.secondary\">\n {'Due today'}\n </Typography>\n </Stack>\n </Stack>\n {mineStatus === 'success' && !nextUp.length ? (\n <Typography variant=\"body2\" color=\"text.secondary\">\n {'Nothing is assigned to you.'}\n </Typography>\n ) : (\n <Stack spacing={0.75}>\n {nextUp.map((task) => (\n <Stack\n key={task.$id}\n direction=\"row\"\n spacing={1}\n sx={{ alignItems: 'center', minWidth: 0 }}\n >\n <TaskKindCell kind={task.kind} iconOnly />\n <Typography variant=\"body2\" noWrap sx={{ minWidth: 0, flex: 1 }}>\n {task.title}\n </Typography>\n <TaskDueText task={task} nowMs={nowMs} variant=\"caption\" />\n </Stack>\n ))}\n </Stack>\n )}\n </Stack>\n </CardDisplay>\n )\n}\nCrmTasksDueCard.displayName = 'CrmTasksDueCard'\n\nexport default CrmTasksDueCard\n"],"names":["CRM_COLLECTIONS","pluginDocsHelp","taskDueState","AppLink","CardDisplay","useFirestore","useFirestoreCollection","useUser","Button","Stack","Typography","collection","limit","orderBy","query","where","useMemo","useCrmHubPath","crmVisibleToClause","useCrmScope","useNowMs","crmRoutes","orderTaskRows","TaskDueText","TaskKindCell","MY_TASKS_WINDOW","NEXT_UP","CrmTasksDueCard","props","hostId","basePath","firestore","data","user","uid","hubPath","nowMs","scope","visibleTo","tasks","probe","status","probeStatus","idField","mineDocs","mineStatus","mine","counts","overdue","today","task","state","nextUp","slice","tasksHref","section","length","header","help","anchor","excerpt","contentGutterX","contentGutterY","HeaderProps","action","component","componentVariant","nativeButton","href","size","color","spacing","direction","variant","sx","map","alignItems","minWidth","kind","iconOnly","noWrap","flex","title","$id","displayName"],"mappings":"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"}
@@ -0,0 +1,65 @@
1
+ import { type CrmViewFilterClause } from '@aglyn/aglyn';
2
+ import type { CrmSavedViewController } from '../hooks/use-crm-saved-view';
3
+ /** A filter set offered in the menu beside the saved views — a Contacts segment. */
4
+ export interface CrmViewPreset {
5
+ id: string;
6
+ label: string;
7
+ filters: CrmViewFilterClause[];
8
+ /** Removes the preset where it lives; absent when the reader may not. */
9
+ onRemove?: () => void | Promise<void>;
10
+ }
11
+ export interface CrmViewsControlProps {
12
+ controller: CrmSavedViewController;
13
+ /** What the plain, unnarrowed list is called — "All contacts". */
14
+ allLabel: string;
15
+ /** Filter sets from elsewhere, offered under their own heading. */
16
+ presets?: readonly CrmViewPreset[];
17
+ presetsLabel?: string;
18
+ /**
19
+ * Offered when the working filters can be kept as a segment; the section
20
+ * writes it, because a segment is the contacts list's own record.
21
+ */
22
+ onSaveAsSegment?: (() => void) | null;
23
+ /**
24
+ * The org's plan lacks the CRM, whose saved views are (AGL-2788).
25
+ * Every act on a view stands in the menu, locked; views already saved
26
+ * still open, and segments — which are not views — draw no lock here.
27
+ */
28
+ suiteLocked?: boolean;
29
+ }
30
+ /**
31
+ * The views control above a CRM list (AGL-2617): the current view's name,
32
+ * the menu of saved views, and everything a reader does to one.
33
+ *
34
+ * A button that reads as the list's title — "All contacts", "My open
35
+ * leads" — and opens a menu in two halves: the views to choose from (mine,
36
+ * then shared, then any presets the section offers), and the acts on the
37
+ * one that is open. Save, Save as, Rename, Share, Set as default and Delete
38
+ * sit in the same menu rather than in a toolbar, because most of them apply
39
+ * to the open view and a row of six buttons for one list says less than a
40
+ * menu that shows only what applies.
41
+ *
42
+ * ## What the reader can do to a view is decided here, once
43
+ *
44
+ * The rules let the creator or an org-wide member change a view; the
45
+ * controller says so as `canEdit`, and the menu shows the editing acts
46
+ * only then. A colleague opening a shared view sees Save as — a copy of
47
+ * their own — and not Save, so the one write the rules would refuse is the
48
+ * one the menu does not offer.
49
+ *
50
+ * ## "Modified" is said, not implied
51
+ *
52
+ * A view whose filters the reader has changed is shown as modified beside
53
+ * its name, so a list that reads "My open leads" and shows something else
54
+ * cannot pass for the saved one. Reset returns to the saved state; Save
55
+ * makes the change the view's.
56
+ *
57
+ * Naming happens in a dialog — a form above the list is what this feature
58
+ * is here to retire — and deleting asks first through the console's shared
59
+ * confirmation.
60
+ */
61
+ export declare function CrmViewsControl(props: CrmViewsControlProps): import("react").JSX.Element;
62
+ export declare namespace CrmViewsControl {
63
+ var displayName: string;
64
+ }
65
+ export default CrmViewsControl;