@withpotter/pages-admin 0.13.0-next.101

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 (1331) hide show
  1. package/dist/admin/_fx/entity-avatar.js +63 -0
  2. package/dist/admin/_fx/entity-avatar.js.map +1 -0
  3. package/dist/admin/_fx/index.js +14 -0
  4. package/dist/admin/_fx/index.js.map +1 -0
  5. package/dist/admin/_fx/motion.js +59 -0
  6. package/dist/admin/_fx/motion.js.map +1 -0
  7. package/dist/admin/_fx/page-transition.js +23 -0
  8. package/dist/admin/_fx/page-transition.js.map +1 -0
  9. package/dist/admin/_fx/tones.js +28 -0
  10. package/dist/admin/_fx/tones.js.map +1 -0
  11. package/dist/admin/_fx.js +1 -0
  12. package/dist/admin/_inbox/nav-badge.js +27 -0
  13. package/dist/admin/_inbox/nav-badge.js.map +1 -0
  14. package/dist/admin/_inbox/nav-badge.module.css +15 -0
  15. package/dist/admin/_inbox/use-admin-inbox.js +118 -0
  16. package/dist/admin/_inbox/use-admin-inbox.js.map +1 -0
  17. package/dist/admin/_money/business-ledger.js +65 -0
  18. package/dist/admin/_money/business-ledger.js.map +1 -0
  19. package/dist/admin/_money/business-picker.js +53 -0
  20. package/dist/admin/_money/business-picker.js.map +1 -0
  21. package/dist/admin/_money/cash-errors.js +42 -0
  22. package/dist/admin/_money/cash-errors.js.map +1 -0
  23. package/dist/admin/_money/cash-postings.js +93 -0
  24. package/dist/admin/_money/cash-postings.js.map +1 -0
  25. package/dist/admin/_money/cash.module.css +128 -0
  26. package/dist/admin/_money/finder-format.js +42 -0
  27. package/dist/admin/_money/finder-format.js.map +1 -0
  28. package/dist/admin/_money/finder-row.js +51 -0
  29. package/dist/admin/_money/finder-row.js.map +1 -0
  30. package/dist/admin/_money/format.js +62 -0
  31. package/dist/admin/_money/format.js.map +1 -0
  32. package/dist/admin/_money/ledger-activity.js +90 -0
  33. package/dist/admin/_money/ledger-activity.js.map +1 -0
  34. package/dist/admin/_money/ledger-balances.js +32 -0
  35. package/dist/admin/_money/ledger-balances.js.map +1 -0
  36. package/dist/admin/_money/ledger-body.js +62 -0
  37. package/dist/admin/_money/ledger-body.js.map +1 -0
  38. package/dist/admin/_money/ledger-holds.js +70 -0
  39. package/dist/admin/_money/ledger-holds.js.map +1 -0
  40. package/dist/admin/_money/ledger-statement.js +120 -0
  41. package/dist/admin/_money/ledger-statement.js.map +1 -0
  42. package/dist/admin/_money/ledger.js +94 -0
  43. package/dist/admin/_money/ledger.js.map +1 -0
  44. package/dist/admin/_money/ledger.module.css +88 -0
  45. package/dist/admin/_money/money-section.js +19 -0
  46. package/dist/admin/_money/money-section.js.map +1 -0
  47. package/dist/admin/_money/open-as-owner.js +32 -0
  48. package/dist/admin/_money/open-as-owner.js.map +1 -0
  49. package/dist/admin/_money/page.module.css +149 -0
  50. package/dist/admin/_money/permissions.js +46 -0
  51. package/dist/admin/_money/permissions.js.map +1 -0
  52. package/dist/admin/_money/proposal-status.js +20 -0
  53. package/dist/admin/_money/proposal-status.js.map +1 -0
  54. package/dist/admin/_money/proposal-store.js +65 -0
  55. package/dist/admin/_money/proposal-store.js.map +1 -0
  56. package/dist/admin/_money/propose-dialog.js +124 -0
  57. package/dist/admin/_money/propose-dialog.js.map +1 -0
  58. package/dist/admin/_money/propose-draft.js +40 -0
  59. package/dist/admin/_money/propose-draft.js.map +1 -0
  60. package/dist/admin/_money/propose-fields.js +113 -0
  61. package/dist/admin/_money/propose-fields.js.map +1 -0
  62. package/dist/admin/_money/propose-steps.js +73 -0
  63. package/dist/admin/_money/propose-steps.js.map +1 -0
  64. package/dist/admin/_money/propose.module.css +105 -0
  65. package/dist/admin/_money/review-dialog.js +149 -0
  66. package/dist/admin/_money/review-dialog.js.map +1 -0
  67. package/dist/admin/_money/review-rules.js +31 -0
  68. package/dist/admin/_money/review-rules.js.map +1 -0
  69. package/dist/admin/_money/save-csv.js +12 -0
  70. package/dist/admin/_money/save-csv.js.map +1 -0
  71. package/dist/admin/_money/skeleton-rows.js +10 -0
  72. package/dist/admin/_money/skeleton-rows.js.map +1 -0
  73. package/dist/admin/_money/statement-export.js +57 -0
  74. package/dist/admin/_money/statement-export.js.map +1 -0
  75. package/dist/admin/_money/tenant-param.js +26 -0
  76. package/dist/admin/_money/tenant-param.js.map +1 -0
  77. package/dist/admin/_money/use-ledger.js +47 -0
  78. package/dist/admin/_money/use-ledger.js.map +1 -0
  79. package/dist/admin/_money/waiting-proposals.js +89 -0
  80. package/dist/admin/_money/waiting-proposals.js.map +1 -0
  81. package/dist/admin/_overview/activation-panel.js +55 -0
  82. package/dist/admin/_overview/activation-panel.js.map +1 -0
  83. package/dist/admin/_overview/attention-groups.js +83 -0
  84. package/dist/admin/_overview/attention-groups.js.map +1 -0
  85. package/dist/admin/_overview/attention-panel.js +58 -0
  86. package/dist/admin/_overview/attention-panel.js.map +1 -0
  87. package/dist/admin/_overview/attention.module.css +109 -0
  88. package/dist/admin/_overview/control-room.js +88 -0
  89. package/dist/admin/_overview/control-room.js.map +1 -0
  90. package/dist/admin/_overview/control-room.module.css +20 -0
  91. package/dist/admin/_overview/figures.module.css +155 -0
  92. package/dist/admin/_overview/kpi-row.js +77 -0
  93. package/dist/admin/_overview/kpi-row.js.map +1 -0
  94. package/dist/admin/_overview/leaders-panel.js +71 -0
  95. package/dist/admin/_overview/leaders-panel.js.map +1 -0
  96. package/dist/admin/_overview/overdue-outstanding.js +37 -0
  97. package/dist/admin/_overview/overdue-outstanding.js.map +1 -0
  98. package/dist/admin/_overview/portfolio-panel.js +69 -0
  99. package/dist/admin/_overview/portfolio-panel.js.map +1 -0
  100. package/dist/admin/_overview/position-panel.js +66 -0
  101. package/dist/admin/_overview/position-panel.js.map +1 -0
  102. package/dist/admin/_overview/position.module.css +52 -0
  103. package/dist/admin/_overview/use-waiting-cases.js +17 -0
  104. package/dist/admin/_overview/use-waiting-cases.js.map +1 -0
  105. package/dist/admin/_pos/action-dialog.js +66 -0
  106. package/dist/admin/_pos/action-dialog.js.map +1 -0
  107. package/dist/admin/_pos/close-shift-dialog.js +62 -0
  108. package/dist/admin/_pos/close-shift-dialog.js.map +1 -0
  109. package/dist/admin/_pos/pos-figures.js +82 -0
  110. package/dist/admin/_pos/pos-figures.js.map +1 -0
  111. package/dist/admin/_pos/pos-money.js +14 -0
  112. package/dist/admin/_pos/pos-money.js.map +1 -0
  113. package/dist/admin/_pos/pos-parts.js +68 -0
  114. package/dist/admin/_pos/pos-parts.js.map +1 -0
  115. package/dist/admin/_pos/pos-rules.js +43 -0
  116. package/dist/admin/_pos/pos-rules.js.map +1 -0
  117. package/dist/admin/_pos/pos-words.js +101 -0
  118. package/dist/admin/_pos/pos-words.js.map +1 -0
  119. package/dist/admin/_pos/pos.module.css +154 -0
  120. package/dist/admin/_pos/shift-row.js +107 -0
  121. package/dist/admin/_pos/shift-row.js.map +1 -0
  122. package/dist/admin/_pos/shifts-table.js +72 -0
  123. package/dist/admin/_pos/shifts-table.js.map +1 -0
  124. package/dist/admin/_pos/terminal-actions.js +104 -0
  125. package/dist/admin/_pos/terminal-actions.js.map +1 -0
  126. package/dist/admin/_pos/use-pos-access.js +20 -0
  127. package/dist/admin/_pos/use-pos-access.js.map +1 -0
  128. package/dist/admin/_pos/use-pos-period.js +39 -0
  129. package/dist/admin/_pos/use-pos-period.js.map +1 -0
  130. package/dist/admin/_pos/use-pos.js +89 -0
  131. package/dist/admin/_pos/use-pos.js.map +1 -0
  132. package/dist/admin/_pos/use-tenant-param.js +20 -0
  133. package/dist/admin/_pos/use-tenant-param.js.map +1 -0
  134. package/dist/admin/_settings/index.js +28 -0
  135. package/dist/admin/_settings/index.js.map +1 -0
  136. package/dist/admin/_settings/live-announcer.js +35 -0
  137. package/dist/admin/_settings/live-announcer.js.map +1 -0
  138. package/dist/admin/_settings/schema.js +82 -0
  139. package/dist/admin/_settings/schema.js.map +1 -0
  140. package/dist/admin/_settings/store.js +82 -0
  141. package/dist/admin/_settings/store.js.map +1 -0
  142. package/dist/admin/_settings/use-apply-preferences.js +38 -0
  143. package/dist/admin/_settings/use-apply-preferences.js.map +1 -0
  144. package/dist/admin/_settings/use-start-page.js +20 -0
  145. package/dist/admin/_settings/use-start-page.js.map +1 -0
  146. package/dist/admin/_settings.js +1 -0
  147. package/dist/admin/_shell/admin-brand.js +15 -0
  148. package/dist/admin/_shell/admin-brand.js.map +1 -0
  149. package/dist/admin/_shell/brand.module.css +147 -0
  150. package/dist/admin/_shell/command-palette.js +103 -0
  151. package/dist/admin/_shell/command-palette.js.map +1 -0
  152. package/dist/admin/_shell/command-palette.module.css +109 -0
  153. package/dist/admin/_shell/frame.module.css +92 -0
  154. package/dist/admin/_shell/inbox-bell.js +74 -0
  155. package/dist/admin/_shell/inbox-bell.js.map +1 -0
  156. package/dist/admin/_shell/inbox.module.css +107 -0
  157. package/dist/admin/_shell/menus.module.css +55 -0
  158. package/dist/admin/_shell/modules-context.js +17 -0
  159. package/dist/admin/_shell/modules-context.js.map +1 -0
  160. package/dist/admin/_shell/nav-config.js +168 -0
  161. package/dist/admin/_shell/nav-config.js.map +1 -0
  162. package/dist/admin/_shell/nav-filter.js +45 -0
  163. package/dist/admin/_shell/nav-filter.js.map +1 -0
  164. package/dist/admin/_shell/nav-fold.js +14 -0
  165. package/dist/admin/_shell/nav-fold.js.map +1 -0
  166. package/dist/admin/_shell/nav-group.js +78 -0
  167. package/dist/admin/_shell/nav-group.js.map +1 -0
  168. package/dist/admin/_shell/nav-modules.js +36 -0
  169. package/dist/admin/_shell/nav-modules.js.map +1 -0
  170. package/dist/admin/_shell/nav-row.js +62 -0
  171. package/dist/admin/_shell/nav-row.js.map +1 -0
  172. package/dist/admin/_shell/seam-toggle.js +26 -0
  173. package/dist/admin/_shell/seam-toggle.js.map +1 -0
  174. package/dist/admin/_shell/section-tabs.js +28 -0
  175. package/dist/admin/_shell/section-tabs.js.map +1 -0
  176. package/dist/admin/_shell/shell-skeleton.js +30 -0
  177. package/dist/admin/_shell/shell-skeleton.js.map +1 -0
  178. package/dist/admin/_shell/shell-skeleton.module.css +57 -0
  179. package/dist/admin/_shell/sidebar-footer.js +85 -0
  180. package/dist/admin/_shell/sidebar-footer.js.map +1 -0
  181. package/dist/admin/_shell/sidebar-footer.module.css +144 -0
  182. package/dist/admin/_shell/sidebar.js +87 -0
  183. package/dist/admin/_shell/sidebar.js.map +1 -0
  184. package/dist/admin/_shell/sidebar.module.css +259 -0
  185. package/dist/admin/_shell/sign-out.js +14 -0
  186. package/dist/admin/_shell/sign-out.js.map +1 -0
  187. package/dist/admin/_shell/system-status-panel.js +100 -0
  188. package/dist/admin/_shell/system-status-panel.js.map +1 -0
  189. package/dist/admin/_shell/system-status-panel.module.css +195 -0
  190. package/dist/admin/_shell/topbar.js +26 -0
  191. package/dist/admin/_shell/topbar.js.map +1 -0
  192. package/dist/admin/_shell/topbar.module.css +84 -0
  193. package/dist/admin/_shell/use-admin-query-defaults.js +18 -0
  194. package/dist/admin/_shell/use-admin-query-defaults.js.map +1 -0
  195. package/dist/admin/_shell/use-fluid-hover.js +62 -0
  196. package/dist/admin/_shell/use-fluid-hover.js.map +1 -0
  197. package/dist/admin/_shell/use-open-groups.js +64 -0
  198. package/dist/admin/_shell/use-open-groups.js.map +1 -0
  199. package/dist/admin/_shell/use-shell-prefs.js +87 -0
  200. package/dist/admin/_shell/use-shell-prefs.js.map +1 -0
  201. package/dist/admin/_shell/user-menu.js +80 -0
  202. package/dist/admin/_shell/user-menu.js.map +1 -0
  203. package/dist/admin/_ui/admin.css +801 -0
  204. package/dist/admin/_ui/chart-colors.js +46 -0
  205. package/dist/admin/_ui/chart-colors.js.map +1 -0
  206. package/dist/admin/_ui/column-picker.js +77 -0
  207. package/dist/admin/_ui/column-picker.js.map +1 -0
  208. package/dist/admin/_ui/country-label.js +42 -0
  209. package/dist/admin/_ui/country-label.js.map +1 -0
  210. package/dist/admin/_ui/country-label.module.css +31 -0
  211. package/dist/admin/_ui/country-text.js +21 -0
  212. package/dist/admin/_ui/country-text.js.map +1 -0
  213. package/dist/admin/_ui/currency-filter-model.js +53 -0
  214. package/dist/admin/_ui/currency-filter-model.js.map +1 -0
  215. package/dist/admin/_ui/currency-filter.js +64 -0
  216. package/dist/admin/_ui/currency-filter.js.map +1 -0
  217. package/dist/admin/_ui/data-table.js +107 -0
  218. package/dist/admin/_ui/data-table.js.map +1 -0
  219. package/dist/admin/_ui/donut-chart.js +193 -0
  220. package/dist/admin/_ui/donut-chart.js.map +1 -0
  221. package/dist/admin/_ui/drawer.js +82 -0
  222. package/dist/admin/_ui/drawer.js.map +1 -0
  223. package/dist/admin/_ui/drawer.module.css +157 -0
  224. package/dist/admin/_ui/empty-state.js +47 -0
  225. package/dist/admin/_ui/empty-state.js.map +1 -0
  226. package/dist/admin/_ui/filter-bar.js +24 -0
  227. package/dist/admin/_ui/filter-bar.js.map +1 -0
  228. package/dist/admin/_ui/filter-dates.js +67 -0
  229. package/dist/admin/_ui/filter-dates.js.map +1 -0
  230. package/dist/admin/_ui/filters.js +93 -0
  231. package/dist/admin/_ui/filters.js.map +1 -0
  232. package/dist/admin/_ui/filters.module.css +88 -0
  233. package/dist/admin/_ui/index.js +120 -0
  234. package/dist/admin/_ui/index.js.map +1 -0
  235. package/dist/admin/_ui/list-card.js +119 -0
  236. package/dist/admin/_ui/list-card.js.map +1 -0
  237. package/dist/admin/_ui/list-card.module.css +96 -0
  238. package/dist/admin/_ui/loading.js +29 -0
  239. package/dist/admin/_ui/loading.js.map +1 -0
  240. package/dist/admin/_ui/money-lines.js +19 -0
  241. package/dist/admin/_ui/money-lines.js.map +1 -0
  242. package/dist/admin/_ui/money-lines.module.css +4 -0
  243. package/dist/admin/_ui/money-view.js +43 -0
  244. package/dist/admin/_ui/money-view.js.map +1 -0
  245. package/dist/admin/_ui/motion.css +22 -0
  246. package/dist/admin/_ui/page-header.js +54 -0
  247. package/dist/admin/_ui/page-header.js.map +1 -0
  248. package/dist/admin/_ui/page-header.module.css +45 -0
  249. package/dist/admin/_ui/page-tabs.js +46 -0
  250. package/dist/admin/_ui/page-tabs.js.map +1 -0
  251. package/dist/admin/_ui/pagination.js +68 -0
  252. package/dist/admin/_ui/pagination.js.map +1 -0
  253. package/dist/admin/_ui/panel.js +38 -0
  254. package/dist/admin/_ui/panel.js.map +1 -0
  255. package/dist/admin/_ui/panel.module.css +87 -0
  256. package/dist/admin/_ui/period-selector.js +81 -0
  257. package/dist/admin/_ui/period-selector.js.map +1 -0
  258. package/dist/admin/_ui/period.js +52 -0
  259. package/dist/admin/_ui/period.js.map +1 -0
  260. package/dist/admin/_ui/period.module.css +43 -0
  261. package/dist/admin/_ui/preferences.css +121 -0
  262. package/dist/admin/_ui/prefs.js +62 -0
  263. package/dist/admin/_ui/prefs.js.map +1 -0
  264. package/dist/admin/_ui/skeleton.js +26 -0
  265. package/dist/admin/_ui/skeleton.js.map +1 -0
  266. package/dist/admin/_ui/sparkline.js +56 -0
  267. package/dist/admin/_ui/sparkline.js.map +1 -0
  268. package/dist/admin/_ui/stat-card.js +85 -0
  269. package/dist/admin/_ui/stat-card.js.map +1 -0
  270. package/dist/admin/_ui/styles.js +74 -0
  271. package/dist/admin/_ui/styles.js.map +1 -0
  272. package/dist/admin/_ui/tint.css +87 -0
  273. package/dist/admin/_ui/trend.js +58 -0
  274. package/dist/admin/_ui/trend.js.map +1 -0
  275. package/dist/admin/_ui/workspace-tab.js +25 -0
  276. package/dist/admin/_ui/workspace-tab.js.map +1 -0
  277. package/dist/admin/_ui.js +1 -0
  278. package/dist/admin/accounts/account-activity.js +64 -0
  279. package/dist/admin/accounts/account-activity.js.map +1 -0
  280. package/dist/admin/accounts/account-activity.module.css +83 -0
  281. package/dist/admin/accounts/account-panel.js +177 -0
  282. package/dist/admin/accounts/account-panel.js.map +1 -0
  283. package/dist/admin/accounts/account-panel.module.css +213 -0
  284. package/dist/admin/accounts/account-row.js +122 -0
  285. package/dist/admin/accounts/account-row.js.map +1 -0
  286. package/dist/admin/accounts/account-sessions.js +70 -0
  287. package/dist/admin/accounts/account-sessions.js.map +1 -0
  288. package/dist/admin/accounts/account-sessions.module.css +55 -0
  289. package/dist/admin/accounts/account-stage-filter.js +29 -0
  290. package/dist/admin/accounts/account-stage-filter.js.map +1 -0
  291. package/dist/admin/accounts/account-stage.js +81 -0
  292. package/dist/admin/accounts/account-stage.js.map +1 -0
  293. package/dist/admin/accounts/account-vitals.js +46 -0
  294. package/dist/admin/accounts/account-vitals.js.map +1 -0
  295. package/dist/admin/accounts/account-workspaces.js +56 -0
  296. package/dist/admin/accounts/account-workspaces.js.map +1 -0
  297. package/dist/admin/accounts/accounts-analytics.js +113 -0
  298. package/dist/admin/accounts/accounts-analytics.js.map +1 -0
  299. package/dist/admin/accounts/accounts-kpis.js +70 -0
  300. package/dist/admin/accounts/accounts-kpis.js.map +1 -0
  301. package/dist/admin/accounts/accounts-table.js +266 -0
  302. package/dist/admin/accounts/accounts-table.js.map +1 -0
  303. package/dist/admin/accounts/accounts-workspace.js +85 -0
  304. package/dist/admin/accounts/accounts-workspace.js.map +1 -0
  305. package/dist/admin/accounts/hint.js +12 -0
  306. package/dist/admin/accounts/hint.js.map +1 -0
  307. package/dist/admin/accounts/owner-session.js +30 -0
  308. package/dist/admin/accounts/owner-session.js.map +1 -0
  309. package/dist/admin/accounts/page.js +11 -0
  310. package/dist/admin/accounts/page.js.map +1 -0
  311. package/dist/admin/accounts/relative-time.js +28 -0
  312. package/dist/admin/accounts/relative-time.js.map +1 -0
  313. package/dist/admin/accounts/rows.module.css +84 -0
  314. package/dist/admin/accounts/top-accounts.js +56 -0
  315. package/dist/admin/accounts/top-accounts.js.map +1 -0
  316. package/dist/admin/accounts/use-account-actions.js +42 -0
  317. package/dist/admin/accounts/use-account-actions.js.map +1 -0
  318. package/dist/admin/accounts/use-account-activity.js +37 -0
  319. package/dist/admin/accounts/use-account-activity.js.map +1 -0
  320. package/dist/admin/admins/access-dialog.js +130 -0
  321. package/dist/admin/admins/access-dialog.js.map +1 -0
  322. package/dist/admin/admins/admin-row.js +74 -0
  323. package/dist/admin/admins/admin-row.js.map +1 -0
  324. package/dist/admin/admins/admins-activity.js +28 -0
  325. package/dist/admin/admins/admins-activity.js.map +1 -0
  326. package/dist/admin/admins/admins-analytics.js +116 -0
  327. package/dist/admin/admins/admins-analytics.js.map +1 -0
  328. package/dist/admin/admins/admins-kpis.js +77 -0
  329. package/dist/admin/admins/admins-kpis.js.map +1 -0
  330. package/dist/admin/admins/admins-table.js +75 -0
  331. package/dist/admin/admins/admins-table.js.map +1 -0
  332. package/dist/admin/admins/admins-workspace.js +109 -0
  333. package/dist/admin/admins/admins-workspace.js.map +1 -0
  334. package/dist/admin/admins/admins.module.css +191 -0
  335. package/dist/admin/admins/invite-dialog.js +134 -0
  336. package/dist/admin/admins/invite-dialog.js.map +1 -0
  337. package/dist/admin/admins/page.js +11 -0
  338. package/dist/admin/admins/page.js.map +1 -0
  339. package/dist/admin/admins/recent-activity.js +38 -0
  340. package/dist/admin/admins/recent-activity.js.map +1 -0
  341. package/dist/admin/admins/recent-activity.module.css +60 -0
  342. package/dist/admin/admins/role-choices.js +27 -0
  343. package/dist/admin/admins/role-choices.js.map +1 -0
  344. package/dist/admin/admins/secret-field.js +60 -0
  345. package/dist/admin/admins/secret-field.js.map +1 -0
  346. package/dist/admin/admins/temp-password-dialog.js +39 -0
  347. package/dist/admin/admins/temp-password-dialog.js.map +1 -0
  348. package/dist/admin/admins/use-admin-actions.js +57 -0
  349. package/dist/admin/admins/use-admin-actions.js.map +1 -0
  350. package/dist/admin/audit/action-meta.js +26 -0
  351. package/dist/admin/audit/action-meta.js.map +1 -0
  352. package/dist/admin/audit/activity-chart.js +117 -0
  353. package/dist/admin/audit/activity-chart.js.map +1 -0
  354. package/dist/admin/audit/activity-chart.module.css +44 -0
  355. package/dist/admin/audit/audit-analytics.js +146 -0
  356. package/dist/admin/audit/audit-analytics.js.map +1 -0
  357. package/dist/admin/audit/audit-filters.js +78 -0
  358. package/dist/admin/audit/audit-filters.js.map +1 -0
  359. package/dist/admin/audit/audit-log.js +132 -0
  360. package/dist/admin/audit/audit-log.js.map +1 -0
  361. package/dist/admin/audit/audit-workspace.js +84 -0
  362. package/dist/admin/audit/audit-workspace.js.map +1 -0
  363. package/dist/admin/audit/audit.module.css +135 -0
  364. package/dist/admin/audit/bar-list.js +27 -0
  365. package/dist/admin/audit/bar-list.js.map +1 -0
  366. package/dist/admin/audit/empty-block.js +13 -0
  367. package/dist/admin/audit/empty-block.js.map +1 -0
  368. package/dist/admin/audit/format.js +22 -0
  369. package/dist/admin/audit/format.js.map +1 -0
  370. package/dist/admin/audit/kpi-brand.module.css +7 -0
  371. package/dist/admin/audit/load-failed.js +20 -0
  372. package/dist/admin/audit/load-failed.js.map +1 -0
  373. package/dist/admin/audit/metric-card.module.css +10 -0
  374. package/dist/admin/audit/page.js +11 -0
  375. package/dist/admin/audit/page.js.map +1 -0
  376. package/dist/admin/audit/page.module.css +12 -0
  377. package/dist/admin/audit/section-header.js +13 -0
  378. package/dist/admin/audit/section-header.js.map +1 -0
  379. package/dist/admin/audit/section-header.module.css +5 -0
  380. package/dist/admin/audit/status-fill.js +14 -0
  381. package/dist/admin/audit/status-fill.js.map +1 -0
  382. package/dist/admin/audit/status-pill.js +52 -0
  383. package/dist/admin/audit/status-pill.js.map +1 -0
  384. package/dist/admin/audit/status-pill.module.css +58 -0
  385. package/dist/admin/audit/tinted.js +17 -0
  386. package/dist/admin/audit/tinted.js.map +1 -0
  387. package/dist/admin/audit/use-range.js +16 -0
  388. package/dist/admin/audit/use-range.js.map +1 -0
  389. package/dist/admin/audit/when.js +14 -0
  390. package/dist/admin/audit/when.js.map +1 -0
  391. package/dist/admin/cash/page.js +184 -0
  392. package/dist/admin/cash/page.js.map +1 -0
  393. package/dist/admin/change-password/page.js +164 -0
  394. package/dist/admin/change-password/page.js.map +1 -0
  395. package/dist/admin/commerce/commerce-console.js +106 -0
  396. package/dist/admin/commerce/commerce-console.js.map +1 -0
  397. package/dist/admin/commerce/commerce-overview.js +102 -0
  398. package/dist/admin/commerce/commerce-overview.js.map +1 -0
  399. package/dist/admin/commerce/console.module.css +63 -0
  400. package/dist/admin/commerce/merchant-meta.js +40 -0
  401. package/dist/admin/commerce/merchant-meta.js.map +1 -0
  402. package/dist/admin/commerce/merchant-picker.js +114 -0
  403. package/dist/admin/commerce/merchant-picker.js.map +1 -0
  404. package/dist/admin/commerce/merchant-view.js +113 -0
  405. package/dist/admin/commerce/merchant-view.js.map +1 -0
  406. package/dist/admin/commerce/overview-kpis.js +100 -0
  407. package/dist/admin/commerce/overview-kpis.js.map +1 -0
  408. package/dist/admin/commerce/overview-services.js +40 -0
  409. package/dist/admin/commerce/overview-services.js.map +1 -0
  410. package/dist/admin/commerce/overview-top-merchants.js +51 -0
  411. package/dist/admin/commerce/overview-top-merchants.js.map +1 -0
  412. package/dist/admin/commerce/overview.module.css +145 -0
  413. package/dist/admin/commerce/page.js +11 -0
  414. package/dist/admin/commerce/page.js.map +1 -0
  415. package/dist/admin/commerce/picker.module.css +98 -0
  416. package/dist/admin/feedback/answer-case-button.js +30 -0
  417. package/dist/admin/feedback/answer-case-button.js.map +1 -0
  418. package/dist/admin/feedback/answers-view.js +87 -0
  419. package/dist/admin/feedback/answers-view.js.map +1 -0
  420. package/dist/admin/feedback/category-label.js +12 -0
  421. package/dist/admin/feedback/category-label.js.map +1 -0
  422. package/dist/admin/feedback/comment-stream.js +62 -0
  423. package/dist/admin/feedback/comment-stream.js.map +1 -0
  424. package/dist/admin/feedback/feedback-access.js +21 -0
  425. package/dist/admin/feedback/feedback-access.js.map +1 -0
  426. package/dist/admin/feedback/feedback-detail-drawer.js +95 -0
  427. package/dist/admin/feedback/feedback-detail-drawer.js.map +1 -0
  428. package/dist/admin/feedback/feedback-drawer-footer.js +60 -0
  429. package/dist/admin/feedback/feedback-drawer-footer.js.map +1 -0
  430. package/dist/admin/feedback/feedback-drawer.module.css +162 -0
  431. package/dist/admin/feedback/feedback-facts.js +84 -0
  432. package/dist/admin/feedback/feedback-facts.js.map +1 -0
  433. package/dist/admin/feedback/feedback-kpis.js +50 -0
  434. package/dist/admin/feedback/feedback-kpis.js.map +1 -0
  435. package/dist/admin/feedback/feedback-options.js +49 -0
  436. package/dist/admin/feedback/feedback-options.js.map +1 -0
  437. package/dist/admin/feedback/feedback-sentiment.js +45 -0
  438. package/dist/admin/feedback/feedback-sentiment.js.map +1 -0
  439. package/dist/admin/feedback/feedback.module.css +136 -0
  440. package/dist/admin/feedback/new-prompt-button.js +13 -0
  441. package/dist/admin/feedback/new-prompt-button.js.map +1 -0
  442. package/dist/admin/feedback/page.js +57 -0
  443. package/dist/admin/feedback/page.js.map +1 -0
  444. package/dist/admin/feedback/prompt-audience-fields.js +63 -0
  445. package/dist/admin/feedback/prompt-audience-fields.js.map +1 -0
  446. package/dist/admin/feedback/prompt-builder.js +85 -0
  447. package/dist/admin/feedback/prompt-builder.js.map +1 -0
  448. package/dist/admin/feedback/prompt-builder.module.css +134 -0
  449. package/dist/admin/feedback/prompt-delivery-fields.js +134 -0
  450. package/dist/admin/feedback/prompt-delivery-fields.js.map +1 -0
  451. package/dist/admin/feedback/prompt-dialog.js +88 -0
  452. package/dist/admin/feedback/prompt-dialog.js.map +1 -0
  453. package/dist/admin/feedback/prompt-dialog.module.css +199 -0
  454. package/dist/admin/feedback/prompt-draft.js +71 -0
  455. package/dist/admin/feedback/prompt-draft.js.map +1 -0
  456. package/dist/admin/feedback/prompt-insights.js +120 -0
  457. package/dist/admin/feedback/prompt-insights.js.map +1 -0
  458. package/dist/admin/feedback/prompt-operations.js +89 -0
  459. package/dist/admin/feedback/prompt-operations.js.map +1 -0
  460. package/dist/admin/feedback/prompt-operations.module.css +128 -0
  461. package/dist/admin/feedback/prompt-preview.js +71 -0
  462. package/dist/admin/feedback/prompt-preview.js.map +1 -0
  463. package/dist/admin/feedback/prompt-preview.module.css +135 -0
  464. package/dist/admin/feedback/prompt-question-fields.js +83 -0
  465. package/dist/admin/feedback/prompt-question-fields.js.map +1 -0
  466. package/dist/admin/feedback/prompt-response-fields.js +103 -0
  467. package/dist/admin/feedback/prompt-response-fields.js.map +1 -0
  468. package/dist/admin/feedback/prompt-review.js +80 -0
  469. package/dist/admin/feedback/prompt-review.js.map +1 -0
  470. package/dist/admin/feedback/prompt-schedule-field.js +67 -0
  471. package/dist/admin/feedback/prompt-schedule-field.js.map +1 -0
  472. package/dist/admin/feedback/prompt-stepper.js +33 -0
  473. package/dist/admin/feedback/prompt-stepper.js.map +1 -0
  474. package/dist/admin/feedback/prompt-summary.module.css +39 -0
  475. package/dist/admin/feedback/prompt-validation.js +48 -0
  476. package/dist/admin/feedback/prompt-validation.js.map +1 -0
  477. package/dist/admin/feedback/prompt-wizard.js +147 -0
  478. package/dist/admin/feedback/prompt-wizard.js.map +1 -0
  479. package/dist/admin/feedback/prompts-table.js +85 -0
  480. package/dist/admin/feedback/prompts-table.js.map +1 -0
  481. package/dist/admin/feedback/prompts-view.js +132 -0
  482. package/dist/admin/feedback/prompts-view.js.map +1 -0
  483. package/dist/admin/feedback/response-card.js +78 -0
  484. package/dist/admin/feedback/response-card.js.map +1 -0
  485. package/dist/admin/feedback/responses-table.js +132 -0
  486. package/dist/admin/feedback/responses-table.js.map +1 -0
  487. package/dist/admin/feedback/responses-view.js +142 -0
  488. package/dist/admin/feedback/responses-view.js.map +1 -0
  489. package/dist/admin/feedback/responses.module.css +147 -0
  490. package/dist/admin/feedback/sentiment-overview.js +103 -0
  491. package/dist/admin/feedback/sentiment-overview.js.map +1 -0
  492. package/dist/admin/feedback/sentiment.module.css +150 -0
  493. package/dist/admin/feedback/use-admin-feedback.js +15 -0
  494. package/dist/admin/feedback/use-admin-feedback.js.map +1 -0
  495. package/dist/admin/feedback/use-admin-prompts.js +15 -0
  496. package/dist/admin/feedback/use-admin-prompts.js.map +1 -0
  497. package/dist/admin/feedback/use-admin-signals.js +22 -0
  498. package/dist/admin/feedback/use-admin-signals.js.map +1 -0
  499. package/dist/admin/feedback/use-open-case.js +53 -0
  500. package/dist/admin/feedback/use-open-case.js.map +1 -0
  501. package/dist/admin/feedback/use-prompt-save.js +59 -0
  502. package/dist/admin/feedback/use-prompt-save.js.map +1 -0
  503. package/dist/admin/feedback/use-steps.js +45 -0
  504. package/dist/admin/feedback/use-steps.js.map +1 -0
  505. package/dist/admin/feedback-signals/_components/comments-panel.js +72 -0
  506. package/dist/admin/feedback-signals/_components/comments-panel.js.map +1 -0
  507. package/dist/admin/feedback-signals/_components/health-panel.js +46 -0
  508. package/dist/admin/feedback-signals/_components/health-panel.js.map +1 -0
  509. package/dist/admin/feedback-signals/_components/messages-panel.js +96 -0
  510. package/dist/admin/feedback-signals/_components/messages-panel.js.map +1 -0
  511. package/dist/admin/feedback-signals/_components/movement.js +27 -0
  512. package/dist/admin/feedback-signals/_components/movement.js.map +1 -0
  513. package/dist/admin/feedback-signals/_components/pick-up.js +67 -0
  514. package/dist/admin/feedback-signals/_components/pick-up.js.map +1 -0
  515. package/dist/admin/feedback-signals/_components/scores-panel.js +68 -0
  516. package/dist/admin/feedback-signals/_components/scores-panel.js.map +1 -0
  517. package/dist/admin/feedback-signals/_components/signals-workspace.js +84 -0
  518. package/dist/admin/feedback-signals/_components/signals-workspace.js.map +1 -0
  519. package/dist/admin/feedback-signals/_components/use-feedback-signals.js +51 -0
  520. package/dist/admin/feedback-signals/_components/use-feedback-signals.js.map +1 -0
  521. package/dist/admin/feedback-signals/page.js +11 -0
  522. package/dist/admin/feedback-signals/page.js.map +1 -0
  523. package/dist/admin/growth-chart-model.js +75 -0
  524. package/dist/admin/growth-chart-model.js.map +1 -0
  525. package/dist/admin/growth-chart-parts.js +186 -0
  526. package/dist/admin/growth-chart-parts.js.map +1 -0
  527. package/dist/admin/growth-chart.js +177 -0
  528. package/dist/admin/growth-chart.js.map +1 -0
  529. package/dist/admin/hooks.js +257 -0
  530. package/dist/admin/hooks.js.map +1 -0
  531. package/dist/admin/layout.js +153 -0
  532. package/dist/admin/layout.js.map +1 -0
  533. package/dist/admin/login/page.js +215 -0
  534. package/dist/admin/login/page.js.map +1 -0
  535. package/dist/admin/newsletters/[id]/page.js +13 -0
  536. package/dist/admin/newsletters/[id]/page.js.map +1 -0
  537. package/dist/admin/newsletters/audience/[contactId]/page.js +12 -0
  538. package/dist/admin/newsletters/audience/[contactId]/page.js.map +1 -0
  539. package/dist/admin/newsletters/audience/audience-list.js +163 -0
  540. package/dist/admin/newsletters/audience/audience-list.js.map +1 -0
  541. package/dist/admin/newsletters/audience/contact-deliveries.js +90 -0
  542. package/dist/admin/newsletters/audience/contact-deliveries.js.map +1 -0
  543. package/dist/admin/newsletters/audience/contact-row.js +63 -0
  544. package/dist/admin/newsletters/audience/contact-row.js.map +1 -0
  545. package/dist/admin/newsletters/audience/contact-screen.js +59 -0
  546. package/dist/admin/newsletters/audience/contact-screen.js.map +1 -0
  547. package/dist/admin/newsletters/audience/contact-summary.js +70 -0
  548. package/dist/admin/newsletters/audience/contact-summary.js.map +1 -0
  549. package/dist/admin/newsletters/audience/contacts.js +99 -0
  550. package/dist/admin/newsletters/audience/contacts.js.map +1 -0
  551. package/dist/admin/newsletters/audience/page.js +11 -0
  552. package/dist/admin/newsletters/audience/page.js.map +1 -0
  553. package/dist/admin/newsletters/audience/status-change.js +53 -0
  554. package/dist/admin/newsletters/audience/status-change.js.map +1 -0
  555. package/dist/admin/newsletters/audience/status-dialog.js +103 -0
  556. package/dist/admin/newsletters/audience/status-dialog.js.map +1 -0
  557. package/dist/admin/newsletters/audience/use-contacts.js +84 -0
  558. package/dist/admin/newsletters/audience/use-contacts.js.map +1 -0
  559. package/dist/admin/newsletters/autosave.js +58 -0
  560. package/dist/admin/newsletters/autosave.js.map +1 -0
  561. package/dist/admin/newsletters/brand-image-field.js +38 -0
  562. package/dist/admin/newsletters/brand-image-field.js.map +1 -0
  563. package/dist/admin/newsletters/composer.js +122 -0
  564. package/dist/admin/newsletters/composer.js.map +1 -0
  565. package/dist/admin/newsletters/content.js +59 -0
  566. package/dist/admin/newsletters/content.js.map +1 -0
  567. package/dist/admin/newsletters/deliveries.js +111 -0
  568. package/dist/admin/newsletters/deliveries.js.map +1 -0
  569. package/dist/admin/newsletters/digest-items.js +91 -0
  570. package/dist/admin/newsletters/digest-items.js.map +1 -0
  571. package/dist/admin/newsletters/editor-fields.js +135 -0
  572. package/dist/admin/newsletters/editor-fields.js.map +1 -0
  573. package/dist/admin/newsletters/format-date.js +11 -0
  574. package/dist/admin/newsletters/format-date.js.map +1 -0
  575. package/dist/admin/newsletters/image-field.js +55 -0
  576. package/dist/admin/newsletters/image-field.js.map +1 -0
  577. package/dist/admin/newsletters/image-picker.js +86 -0
  578. package/dist/admin/newsletters/image-picker.js.map +1 -0
  579. package/dist/admin/newsletters/image-upload.js +37 -0
  580. package/dist/admin/newsletters/image-upload.js.map +1 -0
  581. package/dist/admin/newsletters/labels.js +32 -0
  582. package/dist/admin/newsletters/labels.js.map +1 -0
  583. package/dist/admin/newsletters/layout-picker.js +58 -0
  584. package/dist/admin/newsletters/layout-picker.js.map +1 -0
  585. package/dist/admin/newsletters/layout-schematic.js +46 -0
  586. package/dist/admin/newsletters/layout-schematic.js.map +1 -0
  587. package/dist/admin/newsletters/markdown-field.js +98 -0
  588. package/dist/admin/newsletters/markdown-field.js.map +1 -0
  589. package/dist/admin/newsletters/markdown-insert.js +45 -0
  590. package/dist/admin/newsletters/markdown-insert.js.map +1 -0
  591. package/dist/admin/newsletters/newsletter-row.js +69 -0
  592. package/dist/admin/newsletters/newsletter-row.js.map +1 -0
  593. package/dist/admin/newsletters/newsletter-screen.js +25 -0
  594. package/dist/admin/newsletters/newsletter-screen.js.map +1 -0
  595. package/dist/admin/newsletters/newsletters-list.js +140 -0
  596. package/dist/admin/newsletters/newsletters-list.js.map +1 -0
  597. package/dist/admin/newsletters/not-available.js +7 -0
  598. package/dist/admin/newsletters/not-available.js.map +1 -0
  599. package/dist/admin/newsletters/page.js +11 -0
  600. package/dist/admin/newsletters/page.js.map +1 -0
  601. package/dist/admin/newsletters/preview-pane.js +68 -0
  602. package/dist/admin/newsletters/preview-pane.js.map +1 -0
  603. package/dist/admin/newsletters/problems.js +73 -0
  604. package/dist/admin/newsletters/problems.js.map +1 -0
  605. package/dist/admin/newsletters/recipient-row.js +73 -0
  606. package/dist/admin/newsletters/recipient-row.js.map +1 -0
  607. package/dist/admin/newsletters/recipients-empty.js +21 -0
  608. package/dist/admin/newsletters/recipients-empty.js.map +1 -0
  609. package/dist/admin/newsletters/recipients-selection.js +32 -0
  610. package/dist/admin/newsletters/recipients-selection.js.map +1 -0
  611. package/dist/admin/newsletters/recipients-tab.js +172 -0
  612. package/dist/admin/newsletters/recipients-tab.js.map +1 -0
  613. package/dist/admin/newsletters/record-header.js +28 -0
  614. package/dist/admin/newsletters/record-header.js.map +1 -0
  615. package/dist/admin/newsletters/retry-selection.js +45 -0
  616. package/dist/admin/newsletters/retry-selection.js.map +1 -0
  617. package/dist/admin/newsletters/review-dialog.js +95 -0
  618. package/dist/admin/newsletters/review-dialog.js.map +1 -0
  619. package/dist/admin/newsletters/save-file.js +12 -0
  620. package/dist/admin/newsletters/save-file.js.map +1 -0
  621. package/dist/admin/newsletters/save-indicator.js +28 -0
  622. package/dist/admin/newsletters/save-indicator.js.map +1 -0
  623. package/dist/admin/newsletters/section-tabs.js +26 -0
  624. package/dist/admin/newsletters/section-tabs.js.map +1 -0
  625. package/dist/admin/newsletters/sending.js +36 -0
  626. package/dist/admin/newsletters/sending.js.map +1 -0
  627. package/dist/admin/newsletters/sent-summary.js +77 -0
  628. package/dist/admin/newsletters/sent-summary.js.map +1 -0
  629. package/dist/admin/newsletters/sent-view.js +60 -0
  630. package/dist/admin/newsletters/sent-view.js.map +1 -0
  631. package/dist/admin/newsletters/signature-editor-fields.js +75 -0
  632. package/dist/admin/newsletters/signature-editor-fields.js.map +1 -0
  633. package/dist/admin/newsletters/signature-editor.js +63 -0
  634. package/dist/admin/newsletters/signature-editor.js.map +1 -0
  635. package/dist/admin/newsletters/signature-field.js +44 -0
  636. package/dist/admin/newsletters/signature-field.js.map +1 -0
  637. package/dist/admin/newsletters/signature-preview.js +27 -0
  638. package/dist/admin/newsletters/signature-preview.js.map +1 -0
  639. package/dist/admin/newsletters/signature-row.js +54 -0
  640. package/dist/admin/newsletters/signature-row.js.map +1 -0
  641. package/dist/admin/newsletters/signature-values.js +75 -0
  642. package/dist/admin/newsletters/signature-values.js.map +1 -0
  643. package/dist/admin/newsletters/signatures-dialog.js +98 -0
  644. package/dist/admin/newsletters/signatures-dialog.js.map +1 -0
  645. package/dist/admin/newsletters/signatures.js +34 -0
  646. package/dist/admin/newsletters/signatures.js.map +1 -0
  647. package/dist/admin/newsletters/use-autosave.js +147 -0
  648. package/dist/admin/newsletters/use-autosave.js.map +1 -0
  649. package/dist/admin/newsletters/use-deliveries.js +90 -0
  650. package/dist/admin/newsletters/use-deliveries.js.map +1 -0
  651. package/dist/admin/newsletters/use-newsletter-actions.js +68 -0
  652. package/dist/admin/newsletters/use-newsletter-actions.js.map +1 -0
  653. package/dist/admin/newsletters/use-newsletters.js +83 -0
  654. package/dist/admin/newsletters/use-newsletters.js.map +1 -0
  655. package/dist/admin/newsletters/use-send-actions.js +62 -0
  656. package/dist/admin/newsletters/use-send-actions.js.map +1 -0
  657. package/dist/admin/newsletters/use-signature-preview.js +29 -0
  658. package/dist/admin/newsletters/use-signature-preview.js.map +1 -0
  659. package/dist/admin/newsletters/use-signatures.js +55 -0
  660. package/dist/admin/newsletters/use-signatures.js.map +1 -0
  661. package/dist/admin/page.js +179 -0
  662. package/dist/admin/page.js.map +1 -0
  663. package/dist/admin/payout-providers/add-flow.js +84 -0
  664. package/dist/admin/payout-providers/add-flow.js.map +1 -0
  665. package/dist/admin/payout-providers/attention-list.js +135 -0
  666. package/dist/admin/payout-providers/attention-list.js.map +1 -0
  667. package/dist/admin/payout-providers/connect-step.js +180 -0
  668. package/dist/admin/payout-providers/connect-step.js.map +1 -0
  669. package/dist/admin/payout-providers/editor/auth-section.js +166 -0
  670. package/dist/admin/payout-providers/editor/auth-section.js.map +1 -0
  671. package/dist/admin/payout-providers/editor/call-editor.js +107 -0
  672. package/dist/admin/payout-providers/editor/call-editor.js.map +1 -0
  673. package/dist/admin/payout-providers/editor/condition-editor.js +109 -0
  674. package/dist/admin/payout-providers/editor/condition-editor.js.map +1 -0
  675. package/dist/admin/payout-providers/editor/editor.module.css +123 -0
  676. package/dist/admin/payout-providers/editor/fields.js +144 -0
  677. package/dist/admin/payout-providers/editor/fields.js.map +1 -0
  678. package/dist/admin/payout-providers/editor/flow-editor.js +160 -0
  679. package/dist/admin/payout-providers/editor/flow-editor.js.map +1 -0
  680. package/dist/admin/payout-providers/editor/flow-parts.js +69 -0
  681. package/dist/admin/payout-providers/editor/flow-parts.js.map +1 -0
  682. package/dist/admin/payout-providers/editor/flow-sections.js +147 -0
  683. package/dist/admin/payout-providers/editor/flow-sections.js.map +1 -0
  684. package/dist/admin/payout-providers/editor/rules-editor.js +151 -0
  685. package/dist/admin/payout-providers/editor/rules-editor.js.map +1 -0
  686. package/dist/admin/payout-providers/editor/step-editor.js +157 -0
  687. package/dist/admin/payout-providers/editor/step-editor.js.map +1 -0
  688. package/dist/admin/payout-providers/editor/transfer-section.js +103 -0
  689. package/dist/admin/payout-providers/editor/transfer-section.js.map +1 -0
  690. package/dist/admin/payout-providers/page.js +94 -0
  691. package/dist/admin/payout-providers/page.js.map +1 -0
  692. package/dist/admin/payout-providers/payout-providers.module.css +179 -0
  693. package/dist/admin/payout-providers/pin-step.js +84 -0
  694. package/dist/admin/payout-providers/pin-step.js.map +1 -0
  695. package/dist/admin/payout-providers/provider-detail.js +148 -0
  696. package/dist/admin/payout-providers/provider-detail.js.map +1 -0
  697. package/dist/admin/payout-providers/provider-list.js +37 -0
  698. package/dist/admin/payout-providers/provider-list.js.map +1 -0
  699. package/dist/admin/payout-providers/sections.module.css +151 -0
  700. package/dist/admin/payout-providers/shared.js +34 -0
  701. package/dist/admin/payout-providers/shared.js.map +1 -0
  702. package/dist/admin/payout-providers/status.js +17 -0
  703. package/dist/admin/payout-providers/status.js.map +1 -0
  704. package/dist/admin/payout-providers/step.js +31 -0
  705. package/dist/admin/payout-providers/step.js.map +1 -0
  706. package/dist/admin/payout-providers/test-transfer.js +161 -0
  707. package/dist/admin/payout-providers/test-transfer.js.map +1 -0
  708. package/dist/admin/payout-providers/use-connect.js +108 -0
  709. package/dist/admin/payout-providers/use-connect.js.map +1 -0
  710. package/dist/admin/payout-providers/verify-step.js +57 -0
  711. package/dist/admin/payout-providers/verify-step.js.map +1 -0
  712. package/dist/admin/payout-tiers/_tier-dialog.js +205 -0
  713. package/dist/admin/payout-tiers/_tier-dialog.js.map +1 -0
  714. package/dist/admin/payout-tiers/page.js +11 -0
  715. package/dist/admin/payout-tiers/page.js.map +1 -0
  716. package/dist/admin/payout-tiers/tier-preview-result.js +58 -0
  717. package/dist/admin/payout-tiers/tier-preview-result.js.map +1 -0
  718. package/dist/admin/payout-tiers/tier-preview-tab.js +67 -0
  719. package/dist/admin/payout-tiers/tier-preview-tab.js.map +1 -0
  720. package/dist/admin/payout-tiers/tier-preview.js +41 -0
  721. package/dist/admin/payout-tiers/tier-preview.js.map +1 -0
  722. package/dist/admin/payout-tiers/tiers-table.js +151 -0
  723. package/dist/admin/payout-tiers/tiers-table.js.map +1 -0
  724. package/dist/admin/payout-tiers/tiers-workspace.js +56 -0
  725. package/dist/admin/payout-tiers/tiers-workspace.js.map +1 -0
  726. package/dist/admin/payout-tiers/use-tiers.js +14 -0
  727. package/dist/admin/payout-tiers/use-tiers.js.map +1 -0
  728. package/dist/admin/pos/page.js +11 -0
  729. package/dist/admin/pos/page.js.map +1 -0
  730. package/dist/admin/pos/pos-workspace.js +66 -0
  731. package/dist/admin/pos/pos-workspace.js.map +1 -0
  732. package/dist/admin/pos/shifts-tab.js +111 -0
  733. package/dist/admin/pos/shifts-tab.js.map +1 -0
  734. package/dist/admin/pos/terminal-row.js +94 -0
  735. package/dist/admin/pos/terminal-row.js.map +1 -0
  736. package/dist/admin/pos/terminals/[id]/page.js +12 -0
  737. package/dist/admin/pos/terminals/[id]/page.js.map +1 -0
  738. package/dist/admin/pos/terminals/[id]/terminal-page.js +119 -0
  739. package/dist/admin/pos/terminals/[id]/terminal-page.js.map +1 -0
  740. package/dist/admin/pos/terminals/[id]/terminal-panels.js +58 -0
  741. package/dist/admin/pos/terminals/[id]/terminal-panels.js.map +1 -0
  742. package/dist/admin/pos/terminals/[id]/terminal-people.js +63 -0
  743. package/dist/admin/pos/terminals/[id]/terminal-people.js.map +1 -0
  744. package/dist/admin/pos/terminals/[id]/terminal.module.css +103 -0
  745. package/dist/admin/pos/terminals-tab.js +147 -0
  746. package/dist/admin/pos/terminals-tab.js.map +1 -0
  747. package/dist/admin/pricing/approvals-tab.js +47 -0
  748. package/dist/admin/pricing/approvals-tab.js.map +1 -0
  749. package/dist/admin/pricing/cancel-plan-dialog.js +85 -0
  750. package/dist/admin/pricing/cancel-plan-dialog.js.map +1 -0
  751. package/dist/admin/pricing/change-list.js +9 -0
  752. package/dist/admin/pricing/change-list.js.map +1 -0
  753. package/dist/admin/pricing/change-plan-dialog.js +84 -0
  754. package/dist/admin/pricing/change-plan-dialog.js.map +1 -0
  755. package/dist/admin/pricing/display-preview.js +51 -0
  756. package/dist/admin/pricing/display-preview.js.map +1 -0
  757. package/dist/admin/pricing/display-tab.js +76 -0
  758. package/dist/admin/pricing/display-tab.js.map +1 -0
  759. package/dist/admin/pricing/features-tab.js +48 -0
  760. package/dist/admin/pricing/features-tab.js.map +1 -0
  761. package/dist/admin/pricing/page.js +30 -0
  762. package/dist/admin/pricing/page.js.map +1 -0
  763. package/dist/admin/pricing/plan-approval.js +97 -0
  764. package/dist/admin/pricing/plan-approval.js.map +1 -0
  765. package/dist/admin/pricing/plan-card-product.js +63 -0
  766. package/dist/admin/pricing/plan-card-product.js.map +1 -0
  767. package/dist/admin/pricing/plan-changes.js +54 -0
  768. package/dist/admin/pricing/plan-changes.js.map +1 -0
  769. package/dist/admin/pricing/plan-drawer.js +97 -0
  770. package/dist/admin/pricing/plan-drawer.js.map +1 -0
  771. package/dist/admin/pricing/plan-form-basics.js +59 -0
  772. package/dist/admin/pricing/plan-form-basics.js.map +1 -0
  773. package/dist/admin/pricing/plan-form-dialog.js +103 -0
  774. package/dist/admin/pricing/plan-form-dialog.js.map +1 -0
  775. package/dist/admin/pricing/plan-form-features.js +59 -0
  776. package/dist/admin/pricing/plan-form-features.js.map +1 -0
  777. package/dist/admin/pricing/plan-form-review.js +67 -0
  778. package/dist/admin/pricing/plan-form-review.js.map +1 -0
  779. package/dist/admin/pricing/plan-model.js +91 -0
  780. package/dist/admin/pricing/plan-model.js.map +1 -0
  781. package/dist/admin/pricing/plan-row.js +59 -0
  782. package/dist/admin/pricing/plan-row.js.map +1 -0
  783. package/dist/admin/pricing/plans-tab.js +84 -0
  784. package/dist/admin/pricing/plans-tab.js.map +1 -0
  785. package/dist/admin/pricing/price-form-dialog.js +133 -0
  786. package/dist/admin/pricing/price-form-dialog.js.map +1 -0
  787. package/dist/admin/pricing/price-history.js +25 -0
  788. package/dist/admin/pricing/price-history.js.map +1 -0
  789. package/dist/admin/pricing/price-model.js +47 -0
  790. package/dist/admin/pricing/price-model.js.map +1 -0
  791. package/dist/admin/pricing/price-review.js +104 -0
  792. package/dist/admin/pricing/price-review.js.map +1 -0
  793. package/dist/admin/pricing/price-tab.js +101 -0
  794. package/dist/admin/pricing/price-tab.js.map +1 -0
  795. package/dist/admin/pricing/pricing-tabs.js +28 -0
  796. package/dist/admin/pricing/pricing-tabs.js.map +1 -0
  797. package/dist/admin/pricing/pricing.module.css +188 -0
  798. package/dist/admin/pricing/subscription-events.js +33 -0
  799. package/dist/admin/pricing/subscription-events.js.map +1 -0
  800. package/dist/admin/pricing/subscription-history.js +103 -0
  801. package/dist/admin/pricing/subscription-history.js.map +1 -0
  802. package/dist/admin/pricing/subscription-plan.js +51 -0
  803. package/dist/admin/pricing/subscription-plan.js.map +1 -0
  804. package/dist/admin/pricing/subscription-row.js +70 -0
  805. package/dist/admin/pricing/subscription-row.js.map +1 -0
  806. package/dist/admin/pricing/subscriptions-tab.js +141 -0
  807. package/dist/admin/pricing/subscriptions-tab.js.map +1 -0
  808. package/dist/admin/pricing/use-plans.js +49 -0
  809. package/dist/admin/pricing/use-plans.js.map +1 -0
  810. package/dist/admin/pricing/use-pricing.js +38 -0
  811. package/dist/admin/pricing/use-pricing.js.map +1 -0
  812. package/dist/admin/pricing/use-subscriptions.js +21 -0
  813. package/dist/admin/pricing/use-subscriptions.js.map +1 -0
  814. package/dist/admin/product-insights/all-merchants-view.js +146 -0
  815. package/dist/admin/product-insights/all-merchants-view.js.map +1 -0
  816. package/dist/admin/product-insights/page.js +11 -0
  817. package/dist/admin/product-insights/page.js.map +1 -0
  818. package/dist/admin/product-insights/product-insights-workspace.js +112 -0
  819. package/dist/admin/product-insights/product-insights-workspace.js.map +1 -0
  820. package/dist/admin/product-insights/product-insights.module.css +114 -0
  821. package/dist/admin/product-insights/report-copy.js +69 -0
  822. package/dist/admin/product-insights/report-copy.js.map +1 -0
  823. package/dist/admin/product-insights/report-empty.js +14 -0
  824. package/dist/admin/product-insights/report-empty.js.map +1 -0
  825. package/dist/admin/product-insights/report-kpis.js +54 -0
  826. package/dist/admin/product-insights/report-kpis.js.map +1 -0
  827. package/dist/admin/product-insights/report-panel.js +129 -0
  828. package/dist/admin/product-insights/report-panel.js.map +1 -0
  829. package/dist/admin/product-insights/report-ranking.js +44 -0
  830. package/dist/admin/product-insights/report-ranking.js.map +1 -0
  831. package/dist/admin/product-insights/use-insight-report.js +59 -0
  832. package/dist/admin/product-insights/use-insight-report.js.map +1 -0
  833. package/dist/admin/revenue/channel-panel.js +49 -0
  834. package/dist/admin/revenue/channel-panel.js.map +1 -0
  835. package/dist/admin/revenue/channel-rows.js +17 -0
  836. package/dist/admin/revenue/channel-rows.js.map +1 -0
  837. package/dist/admin/revenue/cohort-panel.js +74 -0
  838. package/dist/admin/revenue/cohort-panel.js.map +1 -0
  839. package/dist/admin/revenue/download-button.js +40 -0
  840. package/dist/admin/revenue/download-button.js.map +1 -0
  841. package/dist/admin/revenue/figure-list.js +19 -0
  842. package/dist/admin/revenue/figure-list.js.map +1 -0
  843. package/dist/admin/revenue/health-panel.js +59 -0
  844. package/dist/admin/revenue/health-panel.js.map +1 -0
  845. package/dist/admin/revenue/ledger-model.js +84 -0
  846. package/dist/admin/revenue/ledger-model.js.map +1 -0
  847. package/dist/admin/revenue/ledger.module.css +101 -0
  848. package/dist/admin/revenue/merchant-payments-view.js +231 -0
  849. package/dist/admin/revenue/merchant-payments-view.js.map +1 -0
  850. package/dist/admin/revenue/method-cards.js +32 -0
  851. package/dist/admin/revenue/method-cards.js.map +1 -0
  852. package/dist/admin/revenue/page.js +11 -0
  853. package/dist/admin/revenue/page.js.map +1 -0
  854. package/dist/admin/revenue/plan-mix-panel.js +62 -0
  855. package/dist/admin/revenue/plan-mix-panel.js.map +1 -0
  856. package/dist/admin/revenue/platform-fees.js +9 -0
  857. package/dist/admin/revenue/platform-fees.js.map +1 -0
  858. package/dist/admin/revenue/quality-panel.js +71 -0
  859. package/dist/admin/revenue/quality-panel.js.map +1 -0
  860. package/dist/admin/revenue/revenue-kpis.js +73 -0
  861. package/dist/admin/revenue/revenue-kpis.js.map +1 -0
  862. package/dist/admin/revenue/revenue-overview.js +132 -0
  863. package/dist/admin/revenue/revenue-overview.js.map +1 -0
  864. package/dist/admin/revenue/revenue-retention.js +31 -0
  865. package/dist/admin/revenue/revenue-retention.js.map +1 -0
  866. package/dist/admin/revenue/revenue-workspace.js +171 -0
  867. package/dist/admin/revenue/revenue-workspace.js.map +1 -0
  868. package/dist/admin/revenue/revenue.module.css +196 -0
  869. package/dist/admin/revenue/subscriptions-panel.js +58 -0
  870. package/dist/admin/revenue/subscriptions-panel.js.map +1 -0
  871. package/dist/admin/revenue/subscriptions-view.js +188 -0
  872. package/dist/admin/revenue/subscriptions-view.js.map +1 -0
  873. package/dist/admin/revenue/top-tenants-panel.js +96 -0
  874. package/dist/admin/revenue/top-tenants-panel.js.map +1 -0
  875. package/dist/admin/reviews/merchant-filter.js +122 -0
  876. package/dist/admin/reviews/merchant-filter.js.map +1 -0
  877. package/dist/admin/reviews/merchant-filter.module.css +113 -0
  878. package/dist/admin/reviews/page.js +124 -0
  879. package/dist/admin/reviews/page.js.map +1 -0
  880. package/dist/admin/reviews/review-row.js +44 -0
  881. package/dist/admin/reviews/review-row.js.map +1 -0
  882. package/dist/admin/reviews/reviews-kpis.js +55 -0
  883. package/dist/admin/reviews/reviews-kpis.js.map +1 -0
  884. package/dist/admin/reviews/reviews.module.css +68 -0
  885. package/dist/admin/reviews/use-admin-reviews.js +22 -0
  886. package/dist/admin/reviews/use-admin-reviews.js.map +1 -0
  887. package/dist/admin/reviews/use-merchant-search.js +32 -0
  888. package/dist/admin/reviews/use-merchant-search.js.map +1 -0
  889. package/dist/admin/roles/more-chip.js +48 -0
  890. package/dist/admin/roles/more-chip.js.map +1 -0
  891. package/dist/admin/roles/more-chip.module.css +70 -0
  892. package/dist/admin/roles/page.js +159 -0
  893. package/dist/admin/roles/page.js.map +1 -0
  894. package/dist/admin/roles/permission-picker.js +71 -0
  895. package/dist/admin/roles/permission-picker.js.map +1 -0
  896. package/dist/admin/roles/permission-picker.module.css +81 -0
  897. package/dist/admin/roles/permissions.js +66 -0
  898. package/dist/admin/roles/permissions.js.map +1 -0
  899. package/dist/admin/roles/role-dialog.js +162 -0
  900. package/dist/admin/roles/role-dialog.js.map +1 -0
  901. package/dist/admin/roles/role-row.js +51 -0
  902. package/dist/admin/roles/role-row.js.map +1 -0
  903. package/dist/admin/roles/roles-kpis.js +45 -0
  904. package/dist/admin/roles/roles-kpis.js.map +1 -0
  905. package/dist/admin/roles/roles.module.css +141 -0
  906. package/dist/admin/sales/activity-log-tab.js +154 -0
  907. package/dist/admin/sales/activity-log-tab.js.map +1 -0
  908. package/dist/admin/sales/bucket.js +29 -0
  909. package/dist/admin/sales/bucket.js.map +1 -0
  910. package/dist/admin/sales/conversion-panel.js +59 -0
  911. package/dist/admin/sales/conversion-panel.js.map +1 -0
  912. package/dist/admin/sales/growth-analysis.js +78 -0
  913. package/dist/admin/sales/growth-analysis.js.map +1 -0
  914. package/dist/admin/sales/leads-tab.js +134 -0
  915. package/dist/admin/sales/leads-tab.js.map +1 -0
  916. package/dist/admin/sales/overview-tab.js +92 -0
  917. package/dist/admin/sales/overview-tab.js.map +1 -0
  918. package/dist/admin/sales/page.js +11 -0
  919. package/dist/admin/sales/page.js.map +1 -0
  920. package/dist/admin/sales/pipeline/add-lead-dialog.js +143 -0
  921. package/dist/admin/sales/pipeline/add-lead-dialog.js.map +1 -0
  922. package/dist/admin/sales/pipeline/lead-card.js +44 -0
  923. package/dist/admin/sales/pipeline/lead-card.js.map +1 -0
  924. package/dist/admin/sales/pipeline/lead-drawer.js +139 -0
  925. package/dist/admin/sales/pipeline/lead-drawer.js.map +1 -0
  926. package/dist/admin/sales/pipeline/lead-timeline.js +34 -0
  927. package/dist/admin/sales/pipeline/lead-timeline.js.map +1 -0
  928. package/dist/admin/sales/pipeline/log-contact-dialog.js +126 -0
  929. package/dist/admin/sales/pipeline/log-contact-dialog.js.map +1 -0
  930. package/dist/admin/sales/pipeline/move-stage-dialog.js +119 -0
  931. package/dist/admin/sales/pipeline/move-stage-dialog.js.map +1 -0
  932. package/dist/admin/sales/pipeline/pipeline-board.js +77 -0
  933. package/dist/admin/sales/pipeline/pipeline-board.js.map +1 -0
  934. package/dist/admin/sales/pipeline/pipeline-filters.js +46 -0
  935. package/dist/admin/sales/pipeline/pipeline-filters.js.map +1 -0
  936. package/dist/admin/sales/pipeline/pipeline.module.css +141 -0
  937. package/dist/admin/sales/report-math.js +17 -0
  938. package/dist/admin/sales/report-math.js.map +1 -0
  939. package/dist/admin/sales/reports-tab.js +147 -0
  940. package/dist/admin/sales/reports-tab.js.map +1 -0
  941. package/dist/admin/sales/sales-kpis.js +69 -0
  942. package/dist/admin/sales/sales-kpis.js.map +1 -0
  943. package/dist/admin/sales/sales-workspace.js +55 -0
  944. package/dist/admin/sales/sales-workspace.js.map +1 -0
  945. package/dist/admin/sales/sales.module.css +52 -0
  946. package/dist/admin/sales/sources-panel.js +19 -0
  947. package/dist/admin/sales/sources-panel.js.map +1 -0
  948. package/dist/admin/sales/stage-meta.js +73 -0
  949. package/dist/admin/sales/stage-meta.js.map +1 -0
  950. package/dist/admin/sales/use-debounced.js +14 -0
  951. package/dist/admin/sales/use-debounced.js.map +1 -0
  952. package/dist/admin/sales/use-sales.js +51 -0
  953. package/dist/admin/sales/use-sales.js.map +1 -0
  954. package/dist/admin/scores/page.js +8 -0
  955. package/dist/admin/scores/page.js.map +1 -0
  956. package/dist/admin/settings/accessibility-tab.js +135 -0
  957. package/dist/admin/settings/accessibility-tab.js.map +1 -0
  958. package/dist/admin/settings/account-tab.js +59 -0
  959. package/dist/admin/settings/account-tab.js.map +1 -0
  960. package/dist/admin/settings/change-password-dialog.js +112 -0
  961. package/dist/admin/settings/change-password-dialog.js.map +1 -0
  962. package/dist/admin/settings/general-tab.js +143 -0
  963. package/dist/admin/settings/general-tab.js.map +1 -0
  964. package/dist/admin/settings/notifications-tab.js +155 -0
  965. package/dist/admin/settings/notifications-tab.js.map +1 -0
  966. package/dist/admin/settings/page.js +11 -0
  967. package/dist/admin/settings/page.js.map +1 -0
  968. package/dist/admin/settings/profile-card.js +35 -0
  969. package/dist/admin/settings/profile-card.js.map +1 -0
  970. package/dist/admin/settings/setting-row.js +85 -0
  971. package/dist/admin/settings/setting-row.js.map +1 -0
  972. package/dist/admin/settings/settings-workspace.js +47 -0
  973. package/dist/admin/settings/settings-workspace.js.map +1 -0
  974. package/dist/admin/settings/settings.module.css +162 -0
  975. package/dist/admin/settings/shortcut-list.js +42 -0
  976. package/dist/admin/settings/shortcut-list.js.map +1 -0
  977. package/dist/admin/settings/shortcuts-tab.js +42 -0
  978. package/dist/admin/settings/shortcuts-tab.js.map +1 -0
  979. package/dist/admin/settings/use-inbox-on.js +11 -0
  980. package/dist/admin/settings/use-inbox-on.js.map +1 -0
  981. package/dist/admin/settings/use-save.js +35 -0
  982. package/dist/admin/settings/use-save.js.map +1 -0
  983. package/dist/admin/support/case-field-selects.js +125 -0
  984. package/dist/admin/support/case-field-selects.js.map +1 -0
  985. package/dist/admin/support/case-header-controls.js +98 -0
  986. package/dist/admin/support/case-header-controls.js.map +1 -0
  987. package/dist/admin/support/case-origin.js +26 -0
  988. package/dist/admin/support/case-origin.js.map +1 -0
  989. package/dist/admin/support/case-pills.js +41 -0
  990. package/dist/admin/support/case-pills.js.map +1 -0
  991. package/dist/admin/support/case-pills.module.css +36 -0
  992. package/dist/admin/support/case-row-menu.js +77 -0
  993. package/dist/admin/support/case-row-menu.js.map +1 -0
  994. package/dist/admin/support/case-row.js +70 -0
  995. package/dist/admin/support/case-row.js.map +1 -0
  996. package/dist/admin/support/case-timeline.js +82 -0
  997. package/dist/admin/support/case-timeline.js.map +1 -0
  998. package/dist/admin/support/cases-tab.js +55 -0
  999. package/dist/admin/support/cases-tab.js.map +1 -0
  1000. package/dist/admin/support/composer-aids.js +29 -0
  1001. package/dist/admin/support/composer-aids.js.map +1 -0
  1002. package/dist/admin/support/composer-assist.js +32 -0
  1003. package/dist/admin/support/composer-assist.js.map +1 -0
  1004. package/dist/admin/support/composer-assist.module.css +23 -0
  1005. package/dist/admin/support/composer-footer.js +56 -0
  1006. package/dist/admin/support/composer-footer.js.map +1 -0
  1007. package/dist/admin/support/composer-header.js +44 -0
  1008. package/dist/admin/support/composer-header.js.map +1 -0
  1009. package/dist/admin/support/composer-keys.js +25 -0
  1010. package/dist/admin/support/composer-keys.js.map +1 -0
  1011. package/dist/admin/support/composer-toolbar.js +69 -0
  1012. package/dist/admin/support/composer-toolbar.js.map +1 -0
  1013. package/dist/admin/support/inbox-address.js +36 -0
  1014. package/dist/admin/support/inbox-address.js.map +1 -0
  1015. package/dist/admin/support/inbox-header.js +19 -0
  1016. package/dist/admin/support/inbox-header.js.map +1 -0
  1017. package/dist/admin/support/inbox-header.module.css +28 -0
  1018. package/dist/admin/support/kbd.js +9 -0
  1019. package/dist/admin/support/kbd.js.map +1 -0
  1020. package/dist/admin/support/kbd.module.css +19 -0
  1021. package/dist/admin/support/page.js +95 -0
  1022. package/dist/admin/support/page.js.map +1 -0
  1023. package/dist/admin/support/queue-card.js +46 -0
  1024. package/dist/admin/support/queue-card.js.map +1 -0
  1025. package/dist/admin/support/queue-card.module.css +88 -0
  1026. package/dist/admin/support/queue-filters.js +119 -0
  1027. package/dist/admin/support/queue-filters.js.map +1 -0
  1028. package/dist/admin/support/reply-picker-body.js +122 -0
  1029. package/dist/admin/support/reply-picker-body.js.map +1 -0
  1030. package/dist/admin/support/reply-picker.js +55 -0
  1031. package/dist/admin/support/reply-picker.js.map +1 -0
  1032. package/dist/admin/support/reply-picker.module.css +152 -0
  1033. package/dist/admin/support/saved-replies/library-categories.js +48 -0
  1034. package/dist/admin/support/saved-replies/library-categories.js.map +1 -0
  1035. package/dist/admin/support/saved-replies/library.js +121 -0
  1036. package/dist/admin/support/saved-replies/library.js.map +1 -0
  1037. package/dist/admin/support/saved-replies/library.module.css +157 -0
  1038. package/dist/admin/support/saved-replies/page.js +16 -0
  1039. package/dist/admin/support/saved-replies/page.js.map +1 -0
  1040. package/dist/admin/support/saved-replies/placeholders.js +51 -0
  1041. package/dist/admin/support/saved-replies/placeholders.js.map +1 -0
  1042. package/dist/admin/support/saved-replies/reply-fields.js +102 -0
  1043. package/dist/admin/support/saved-replies/reply-fields.js.map +1 -0
  1044. package/dist/admin/support/saved-replies/reply-list.js +60 -0
  1045. package/dist/admin/support/saved-replies/reply-list.js.map +1 -0
  1046. package/dist/admin/support/saved-replies/reply-list.module.css +74 -0
  1047. package/dist/admin/support/saved-replies/reply-meta.js +78 -0
  1048. package/dist/admin/support/saved-replies/reply-meta.js.map +1 -0
  1049. package/dist/admin/support/saved-replies/reply-preview.js +48 -0
  1050. package/dist/admin/support/saved-replies/reply-preview.js.map +1 -0
  1051. package/dist/admin/support/saved-replies/save-reply-dialog.js +66 -0
  1052. package/dist/admin/support/saved-replies/save-reply-dialog.js.map +1 -0
  1053. package/dist/admin/support/saved-replies/saved-replies-kpis.js +55 -0
  1054. package/dist/admin/support/saved-replies/saved-replies-kpis.js.map +1 -0
  1055. package/dist/admin/support/saved-replies/saved-replies-tab.js +22 -0
  1056. package/dist/admin/support/saved-replies/saved-replies-tab.js.map +1 -0
  1057. package/dist/admin/support/saved-replies/saved-replies.module.css +95 -0
  1058. package/dist/admin/support/saved-replies/saved-reply-editor.js +55 -0
  1059. package/dist/admin/support/saved-replies/saved-reply-editor.js.map +1 -0
  1060. package/dist/admin/support/saved-replies/use-saved-replies.js +40 -0
  1061. package/dist/admin/support/saved-replies/use-saved-replies.js.map +1 -0
  1062. package/dist/admin/support/suggestion-card.js +70 -0
  1063. package/dist/admin/support/suggestion-card.js.map +1 -0
  1064. package/dist/admin/support/suggestion-card.module.css +72 -0
  1065. package/dist/admin/support/support-case-detail.js +16 -0
  1066. package/dist/admin/support/support-case-detail.js.map +1 -0
  1067. package/dist/admin/support/support-case-identity.js +80 -0
  1068. package/dist/admin/support/support-case-identity.js.map +1 -0
  1069. package/dist/admin/support/support-case-table.js +89 -0
  1070. package/dist/admin/support/support-case-table.js.map +1 -0
  1071. package/dist/admin/support/support-case-thread.js +64 -0
  1072. package/dist/admin/support/support-case-thread.js.map +1 -0
  1073. package/dist/admin/support/support-case.module.css +178 -0
  1074. package/dist/admin/support/support-composer.js +171 -0
  1075. package/dist/admin/support/support-composer.js.map +1 -0
  1076. package/dist/admin/support/support-kpis.js +106 -0
  1077. package/dist/admin/support/support-kpis.js.map +1 -0
  1078. package/dist/admin/support/support-options.js +87 -0
  1079. package/dist/admin/support/support-options.js.map +1 -0
  1080. package/dist/admin/support/support-queue.module.css +82 -0
  1081. package/dist/admin/support/support-thread.module.css +174 -0
  1082. package/dist/admin/support/support-trend.js +59 -0
  1083. package/dist/admin/support/support-trend.js.map +1 -0
  1084. package/dist/admin/support/support-views.js +79 -0
  1085. package/dist/admin/support/support-views.js.map +1 -0
  1086. package/dist/admin/support/support-views.module.css +80 -0
  1087. package/dist/admin/support/support.module.css +98 -0
  1088. package/dist/admin/support/thread-attachment.js +54 -0
  1089. package/dist/admin/support/thread-attachment.js.map +1 -0
  1090. package/dist/admin/support/thread-bubble.js +46 -0
  1091. package/dist/admin/support/thread-bubble.js.map +1 -0
  1092. package/dist/admin/support/thread-event.module.css +35 -0
  1093. package/dist/admin/support/use-admin-support.js +90 -0
  1094. package/dist/admin/support/use-admin-support.js.map +1 -0
  1095. package/dist/admin/support/use-case-activity.js +68 -0
  1096. package/dist/admin/support/use-case-activity.js.map +1 -0
  1097. package/dist/admin/support/use-close-case.js +26 -0
  1098. package/dist/admin/support/use-close-case.js.map +1 -0
  1099. package/dist/admin/support/use-composer-assist.js +114 -0
  1100. package/dist/admin/support/use-composer-assist.js.map +1 -0
  1101. package/dist/admin/support/use-queue-cases.js +17 -0
  1102. package/dist/admin/support/use-queue-cases.js.map +1 -0
  1103. package/dist/admin/support/use-send-reply.js +73 -0
  1104. package/dist/admin/support/use-send-reply.js.map +1 -0
  1105. package/dist/admin/support/use-support-insights.js +53 -0
  1106. package/dist/admin/support/use-support-insights.js.map +1 -0
  1107. package/dist/admin/support/use-view-counts.js +36 -0
  1108. package/dist/admin/support/use-view-counts.js.map +1 -0
  1109. package/dist/admin/support/workspace/action-bar.js +69 -0
  1110. package/dist/admin/support/workspace/action-bar.js.map +1 -0
  1111. package/dist/admin/support/workspace/action-bar.module.css +85 -0
  1112. package/dist/admin/support/workspace/case-card.js +58 -0
  1113. package/dist/admin/support/workspace/case-card.js.map +1 -0
  1114. package/dist/admin/support/workspace/case-facts.js +41 -0
  1115. package/dist/admin/support/workspace/case-facts.js.map +1 -0
  1116. package/dist/admin/support/workspace/case-list-pane.js +126 -0
  1117. package/dist/admin/support/workspace/case-list-pane.js.map +1 -0
  1118. package/dist/admin/support/workspace/case-properties.js +91 -0
  1119. package/dist/admin/support/workspace/case-properties.js.map +1 -0
  1120. package/dist/admin/support/workspace/conversation-header.js +128 -0
  1121. package/dist/admin/support/workspace/conversation-header.js.map +1 -0
  1122. package/dist/admin/support/workspace/conversation-pane.js +90 -0
  1123. package/dist/admin/support/workspace/conversation-pane.js.map +1 -0
  1124. package/dist/admin/support/workspace/conversation.module.css +191 -0
  1125. package/dist/admin/support/workspace/details-pane.js +99 -0
  1126. package/dist/admin/support/workspace/details-pane.js.map +1 -0
  1127. package/dist/admin/support/workspace/details.module.css +137 -0
  1128. package/dist/admin/support/workspace/list.module.css +193 -0
  1129. package/dist/admin/support/workspace/merchant-card.js +58 -0
  1130. package/dist/admin/support/workspace/merchant-card.js.map +1 -0
  1131. package/dist/admin/support/workspace/merchant.module.css +97 -0
  1132. package/dist/admin/support/workspace/related-cases.js +51 -0
  1133. package/dist/admin/support/workspace/related-cases.js.map +1 -0
  1134. package/dist/admin/support/workspace/sort-cases.js +16 -0
  1135. package/dist/admin/support/workspace/sort-cases.js.map +1 -0
  1136. package/dist/admin/support/workspace/status-banner.js +101 -0
  1137. package/dist/admin/support/workspace/status-banner.js.map +1 -0
  1138. package/dist/admin/support/workspace/step-case.js +9 -0
  1139. package/dist/admin/support/workspace/step-case.js.map +1 -0
  1140. package/dist/admin/support/workspace/support-workspace.js +127 -0
  1141. package/dist/admin/support/workspace/support-workspace.js.map +1 -0
  1142. package/dist/admin/support/workspace/use-media.js +17 -0
  1143. package/dist/admin/support/workspace/use-media.js.map +1 -0
  1144. package/dist/admin/support/workspace/use-workspace-keys.js +46 -0
  1145. package/dist/admin/support/workspace/use-workspace-keys.js.map +1 -0
  1146. package/dist/admin/support/workspace/workspace.module.css +89 -0
  1147. package/dist/admin/tenants/[id]/account-officer-dialog.js +58 -0
  1148. package/dist/admin/tenants/[id]/account-officer-dialog.js.map +1 -0
  1149. package/dist/admin/tenants/[id]/account-officer.js +59 -0
  1150. package/dist/admin/tenants/[id]/account-officer.js.map +1 -0
  1151. package/dist/admin/tenants/[id]/commerce/best-sellers.js +56 -0
  1152. package/dist/admin/tenants/[id]/commerce/best-sellers.js.map +1 -0
  1153. package/dist/admin/tenants/[id]/commerce/commerce-flow.js +84 -0
  1154. package/dist/admin/tenants/[id]/commerce/commerce-flow.js.map +1 -0
  1155. package/dist/admin/tenants/[id]/commerce/drawer.module.css +89 -0
  1156. package/dist/admin/tenants/[id]/commerce/flow.module.css +110 -0
  1157. package/dist/admin/tenants/[id]/commerce/format.js +74 -0
  1158. package/dist/admin/tenants/[id]/commerce/format.js.map +1 -0
  1159. package/dist/admin/tenants/[id]/commerce/health.module.css +144 -0
  1160. package/dist/admin/tenants/[id]/commerce/index.js +5 -0
  1161. package/dist/admin/tenants/[id]/commerce/index.js.map +1 -0
  1162. package/dist/admin/tenants/[id]/commerce/inventory-health.js +82 -0
  1163. package/dist/admin/tenants/[id]/commerce/inventory-health.js.map +1 -0
  1164. package/dist/admin/tenants/[id]/commerce/item-card.js +37 -0
  1165. package/dist/admin/tenants/[id]/commerce/item-card.js.map +1 -0
  1166. package/dist/admin/tenants/[id]/commerce/items-gallery.js +155 -0
  1167. package/dist/admin/tenants/[id]/commerce/items-gallery.js.map +1 -0
  1168. package/dist/admin/tenants/[id]/commerce/items-table.js +49 -0
  1169. package/dist/admin/tenants/[id]/commerce/items-table.js.map +1 -0
  1170. package/dist/admin/tenants/[id]/commerce/items.module.css +125 -0
  1171. package/dist/admin/tenants/[id]/commerce/layout.module.css +27 -0
  1172. package/dist/admin/tenants/[id]/commerce/merchant-commerce.js +103 -0
  1173. package/dist/admin/tenants/[id]/commerce/merchant-commerce.js.map +1 -0
  1174. package/dist/admin/tenants/[id]/commerce/money-panel.js +52 -0
  1175. package/dist/admin/tenants/[id]/commerce/money-panel.js.map +1 -0
  1176. package/dist/admin/tenants/[id]/commerce/money.module.css +122 -0
  1177. package/dist/admin/tenants/[id]/commerce/order-drawer.js +65 -0
  1178. package/dist/admin/tenants/[id]/commerce/order-drawer.js.map +1 -0
  1179. package/dist/admin/tenants/[id]/commerce/order-pipeline.js +50 -0
  1180. package/dist/admin/tenants/[id]/commerce/order-pipeline.js.map +1 -0
  1181. package/dist/admin/tenants/[id]/commerce/orders.module.css +154 -0
  1182. package/dist/admin/tenants/[id]/commerce/owner-card.js +55 -0
  1183. package/dist/admin/tenants/[id]/commerce/owner-card.js.map +1 -0
  1184. package/dist/admin/tenants/[id]/commerce/pill.module.css +47 -0
  1185. package/dist/admin/tenants/[id]/commerce/recent-orders.js +98 -0
  1186. package/dist/admin/tenants/[id]/commerce/recent-orders.js.map +1 -0
  1187. package/dist/admin/tenants/[id]/commerce/shell.module.css +64 -0
  1188. package/dist/admin/tenants/[id]/commerce/status-pill.js +19 -0
  1189. package/dist/admin/tenants/[id]/commerce/status-pill.js.map +1 -0
  1190. package/dist/admin/tenants/[id]/commerce.js +1 -0
  1191. package/dist/admin/tenants/[id]/copy-text.js +30 -0
  1192. package/dist/admin/tenants/[id]/copy-text.js.map +1 -0
  1193. package/dist/admin/tenants/[id]/merchant-ledger.js +47 -0
  1194. package/dist/admin/tenants/[id]/merchant-ledger.js.map +1 -0
  1195. package/dist/admin/tenants/[id]/message-merchant-button.js +38 -0
  1196. package/dist/admin/tenants/[id]/message-merchant-button.js.map +1 -0
  1197. package/dist/admin/tenants/[id]/message-merchant-dialog.js +96 -0
  1198. package/dist/admin/tenants/[id]/message-merchant-dialog.js.map +1 -0
  1199. package/dist/admin/tenants/[id]/page.js +2308 -0
  1200. package/dist/admin/tenants/[id]/page.js.map +1 -0
  1201. package/dist/admin/tenants/[id]/subaccounts-panel.js +40 -0
  1202. package/dist/admin/tenants/[id]/subaccounts-panel.js.map +1 -0
  1203. package/dist/admin/tenants/[id]/tenant-activity-feed.js +92 -0
  1204. package/dist/admin/tenants/[id]/tenant-activity-feed.js.map +1 -0
  1205. package/dist/admin/tenants/[id]/tenant-activity.module.css +94 -0
  1206. package/dist/admin/tenants/[id]/tenant-attention.js +93 -0
  1207. package/dist/admin/tenants/[id]/tenant-attention.js.map +1 -0
  1208. package/dist/admin/tenants/[id]/tenant-header.js +125 -0
  1209. package/dist/admin/tenants/[id]/tenant-header.js.map +1 -0
  1210. package/dist/admin/tenants/[id]/tenant-invites.js +49 -0
  1211. package/dist/admin/tenants/[id]/tenant-invites.js.map +1 -0
  1212. package/dist/admin/tenants/[id]/tenant-layout.module.css +106 -0
  1213. package/dist/admin/tenants/[id]/tenant-overview.js +182 -0
  1214. package/dist/admin/tenants/[id]/tenant-overview.js.map +1 -0
  1215. package/dist/admin/tenants/[id]/tenant-overview.module.css +151 -0
  1216. package/dist/admin/tenants/[id]/tenant-people-panel.js +109 -0
  1217. package/dist/admin/tenants/[id]/tenant-people-panel.js.map +1 -0
  1218. package/dist/admin/tenants/[id]/tenant-people.module.css +121 -0
  1219. package/dist/admin/tenants/[id]/tenant-pos.js +101 -0
  1220. package/dist/admin/tenants/[id]/tenant-pos.js.map +1 -0
  1221. package/dist/admin/tenants/[id]/tenant-sidebar.js +115 -0
  1222. package/dist/admin/tenants/[id]/tenant-sidebar.js.map +1 -0
  1223. package/dist/admin/tenants/[id]/tenant-sidebar.module.css +53 -0
  1224. package/dist/admin/tenants/[id]/tenant-support.js +37 -0
  1225. package/dist/admin/tenants/[id]/tenant-support.js.map +1 -0
  1226. package/dist/admin/tenants/[id]/tenant-tabs.js +22 -0
  1227. package/dist/admin/tenants/[id]/tenant-tabs.js.map +1 -0
  1228. package/dist/admin/tenants/[id]/tenant-wallet-card.js +53 -0
  1229. package/dist/admin/tenants/[id]/tenant-wallet-card.js.map +1 -0
  1230. package/dist/admin/tenants/[id]/use-set-account-officer.js +31 -0
  1231. package/dist/admin/tenants/[id]/use-set-account-officer.js.map +1 -0
  1232. package/dist/admin/tenants/[id]/use-tenant-wallet.js +23 -0
  1233. package/dist/admin/tenants/[id]/use-tenant-wallet.js.map +1 -0
  1234. package/dist/admin/tenants/[id]/verification/business-records.js +70 -0
  1235. package/dist/admin/tenants/[id]/verification/business-records.js.map +1 -0
  1236. package/dist/admin/tenants/[id]/verification/case-checks.js +81 -0
  1237. package/dist/admin/tenants/[id]/verification/case-checks.js.map +1 -0
  1238. package/dist/admin/tenants/[id]/verification/case-events.js +44 -0
  1239. package/dist/admin/tenants/[id]/verification/case-events.js.map +1 -0
  1240. package/dist/admin/tenants/[id]/verification/case-form-dialog.js +58 -0
  1241. package/dist/admin/tenants/[id]/verification/case-form-dialog.js.map +1 -0
  1242. package/dist/admin/tenants/[id]/verification/case-history.js +27 -0
  1243. package/dist/admin/tenants/[id]/verification/case-history.js.map +1 -0
  1244. package/dist/admin/tenants/[id]/verification/case-rules.js +72 -0
  1245. package/dist/admin/tenants/[id]/verification/case-rules.js.map +1 -0
  1246. package/dist/admin/tenants/[id]/verification/case-status.js +47 -0
  1247. package/dist/admin/tenants/[id]/verification/case-status.js.map +1 -0
  1248. package/dist/admin/tenants/[id]/verification/case-words.js +104 -0
  1249. package/dist/admin/tenants/[id]/verification/case-words.js.map +1 -0
  1250. package/dist/admin/tenants/[id]/verification/decision-bar.js +59 -0
  1251. package/dist/admin/tenants/[id]/verification/decision-bar.js.map +1 -0
  1252. package/dist/admin/tenants/[id]/verification/decision-dialogs.js +152 -0
  1253. package/dist/admin/tenants/[id]/verification/decision-dialogs.js.map +1 -0
  1254. package/dist/admin/tenants/[id]/verification/document-file.js +78 -0
  1255. package/dist/admin/tenants/[id]/verification/document-file.js.map +1 -0
  1256. package/dist/admin/tenants/[id]/verification/document-view.js +28 -0
  1257. package/dist/admin/tenants/[id]/verification/document-view.js.map +1 -0
  1258. package/dist/admin/tenants/[id]/verification/document-viewer.js +46 -0
  1259. package/dist/admin/tenants/[id]/verification/document-viewer.js.map +1 -0
  1260. package/dist/admin/tenants/[id]/verification/document-viewer.module.css +98 -0
  1261. package/dist/admin/tenants/[id]/verification/person-card.js +111 -0
  1262. package/dist/admin/tenants/[id]/verification/person-card.js.map +1 -0
  1263. package/dist/admin/tenants/[id]/verification/reveal-number.js +48 -0
  1264. package/dist/admin/tenants/[id]/verification/reveal-number.js.map +1 -0
  1265. package/dist/admin/tenants/[id]/verification/reverse-dialog.js +52 -0
  1266. package/dist/admin/tenants/[id]/verification/reverse-dialog.js.map +1 -0
  1267. package/dist/admin/tenants/[id]/verification/sent-files.js +33 -0
  1268. package/dist/admin/tenants/[id]/verification/sent-files.js.map +1 -0
  1269. package/dist/admin/tenants/[id]/verification/tenant-verification.js +103 -0
  1270. package/dist/admin/tenants/[id]/verification/tenant-verification.js.map +1 -0
  1271. package/dist/admin/tenants/[id]/verification/use-case.js +57 -0
  1272. package/dist/admin/tenants/[id]/verification/use-case.js.map +1 -0
  1273. package/dist/admin/tenants/[id]/verification/verification.module.css +168 -0
  1274. package/dist/admin/tenants/account-officer-action.js +8 -0
  1275. package/dist/admin/tenants/account-officer-action.js.map +1 -0
  1276. package/dist/admin/tenants/account-officer-filter.js +43 -0
  1277. package/dist/admin/tenants/account-officer-filter.js.map +1 -0
  1278. package/dist/admin/tenants/account-officer-options.js +15 -0
  1279. package/dist/admin/tenants/account-officer-options.js.map +1 -0
  1280. package/dist/admin/tenants/country-filter.js +53 -0
  1281. package/dist/admin/tenants/country-filter.js.map +1 -0
  1282. package/dist/admin/tenants/country-options.js +22 -0
  1283. package/dist/admin/tenants/country-options.js.map +1 -0
  1284. package/dist/admin/tenants/message-merchant.js +61 -0
  1285. package/dist/admin/tenants/message-merchant.js.map +1 -0
  1286. package/dist/admin/tenants/page.js +11 -0
  1287. package/dist/admin/tenants/page.js.map +1 -0
  1288. package/dist/admin/tenants/tenant-list-row.js +169 -0
  1289. package/dist/admin/tenants/tenant-list-row.js.map +1 -0
  1290. package/dist/admin/tenants/tenants-analytics.js +119 -0
  1291. package/dist/admin/tenants/tenants-analytics.js.map +1 -0
  1292. package/dist/admin/tenants/tenants-kpis.js +98 -0
  1293. package/dist/admin/tenants/tenants-kpis.js.map +1 -0
  1294. package/dist/admin/tenants/tenants-logo.js +8 -0
  1295. package/dist/admin/tenants/tenants-logo.js.map +1 -0
  1296. package/dist/admin/tenants/tenants-table.js +135 -0
  1297. package/dist/admin/tenants/tenants-table.js.map +1 -0
  1298. package/dist/admin/tenants/tenants-workspace.js +98 -0
  1299. package/dist/admin/tenants/tenants-workspace.js.map +1 -0
  1300. package/dist/admin/till-requests/decision-dialog.js +59 -0
  1301. package/dist/admin/till-requests/decision-dialog.js.map +1 -0
  1302. package/dist/admin/till-requests/page.js +124 -0
  1303. package/dist/admin/till-requests/page.js.map +1 -0
  1304. package/dist/admin/till-requests/till-request-row.js +72 -0
  1305. package/dist/admin/till-requests/till-request-row.js.map +1 -0
  1306. package/dist/admin/verification/page.js +11 -0
  1307. package/dist/admin/verification/page.js.map +1 -0
  1308. package/dist/admin/verification/preview-dialog.js +111 -0
  1309. package/dist/admin/verification/preview-dialog.js.map +1 -0
  1310. package/dist/admin/verification/reject-dialog.js +94 -0
  1311. package/dist/admin/verification/reject-dialog.js.map +1 -0
  1312. package/dist/admin/verification/review-queue.js +124 -0
  1313. package/dist/admin/verification/review-queue.js.map +1 -0
  1314. package/dist/admin/verification/review-row.js +55 -0
  1315. package/dist/admin/verification/review-row.js.map +1 -0
  1316. package/dist/admin/verification/review.js +69 -0
  1317. package/dist/admin/verification/review.js.map +1 -0
  1318. package/dist/admin/verification/use-review.js +26 -0
  1319. package/dist/admin/verification/use-review.js.map +1 -0
  1320. package/dist/admin/verification/verification-page.js +35 -0
  1321. package/dist/admin/verification/verification-page.js.map +1 -0
  1322. package/dist/admin/verification/verification.module.css +30 -0
  1323. package/dist/admin/verification/waiting-cases.js +94 -0
  1324. package/dist/admin/verification/waiting-cases.js.map +1 -0
  1325. package/dist/admin/wallets/page.js +11 -0
  1326. package/dist/admin/wallets/page.js.map +1 -0
  1327. package/dist/admin/wallets/wallets-workspace.js +37 -0
  1328. package/dist/admin/wallets/wallets-workspace.js.map +1 -0
  1329. package/dist/index.js +1 -0
  1330. package/dist/index.js.map +1 -0
  1331. package/package.json +56 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/admin/login/page.tsx"],"sourcesContent":["'use client';\n\nimport { useState } from 'react';\nimport { useRouter } from 'next/navigation';\nimport { useQueryClient } from '@tanstack/react-query';\nimport { TrendingUp } from 'lucide-react';\nimport { Button, Input } from '@withpotter/ui-kit';\nimport {\n platformAdminApi,\n type AdminLoginCodeRequired,\n} from '@withpotter/lib/admin-api';\nimport { adminReturnPath } from '@withpotter/lib/api/session-scope';\nimport { ADMIN_NAME, useAdminBrand } from '../_shell/admin-brand';\n\nexport default function AdminLoginPage() {\n const router = useRouter();\n const brand = useAdminBrand();\n const queryClient = useQueryClient();\n const [email, setEmail] = useState('');\n const [password, setPassword] = useState('');\n const [error, setError] = useState('');\n const [loading, setLoading] = useState(false);\n // Set once the password was right and a code was emailed.\n const [challenge, setChallenge] = useState<AdminLoginCodeRequired | null>(\n null,\n );\n const [code, setCode] = useState('');\n const [note, setNote] = useState('');\n\n const finish = async (mustChangePassword: boolean) => {\n await queryClient.invalidateQueries({\n queryKey: ['platform-admin', 'session'],\n });\n const back = adminReturnPath(\n new URLSearchParams(window.location.search).get('redirect'),\n );\n router.replace(\n mustChangePassword\n ? `/admin/change-password?redirect=${encodeURIComponent(back)}`\n : back,\n );\n };\n\n const handleSubmit = async (e: React.FormEvent) => {\n e.preventDefault();\n setError('');\n setNote('');\n setLoading(true);\n try {\n if (challenge) {\n const done = await platformAdminApi.verifyLoginCode(\n challenge.challengeId,\n code.trim(),\n );\n await finish(done.mustChangePassword);\n return;\n }\n const answer = await platformAdminApi.login(email, password);\n if (answer.codeRequired) {\n setChallenge(answer);\n setLoading(false);\n return;\n }\n await finish(answer.mustChangePassword);\n } catch (err: unknown) {\n setError(err instanceof Error ? err.message : 'Login failed');\n setLoading(false);\n }\n };\n\n const resend = async () => {\n if (!challenge) return;\n setError('');\n setNote('');\n try {\n const next = await platformAdminApi.resendLoginCode(\n challenge.challengeId,\n );\n setChallenge(next);\n setNote(`A new code is on its way to ${next.sentTo}.`);\n } catch (err: unknown) {\n setError(err instanceof Error ? err.message : 'Could not send a code');\n }\n };\n\n return (\n <div\n style={{\n minHeight: '100vh',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n background: 'var(--bg-base)',\n color: 'var(--text-primary)',\n padding: 24,\n }}\n >\n <form\n onSubmit={handleSubmit}\n style={{\n width: '100%',\n maxWidth: 380,\n display: 'flex',\n flexDirection: 'column',\n gap: 16,\n }}\n >\n <div\n style={{\n display: 'flex',\n alignItems: 'center',\n gap: 8,\n fontFamily: 'var(--font-display)',\n fontWeight: 600,\n fontSize: 20,\n marginBottom: 8,\n }}\n >\n {brand ? (\n <>\n {brand.logo}\n <span style={{ color: 'var(--text-secondary)' }}>Admin</span>\n </>\n ) : (\n <>\n <TrendingUp size={20} color=\"var(--accent-primary)\" />\n {ADMIN_NAME} Admin\n </>\n )}\n </div>\n <p\n style={{\n fontSize: 14,\n color: 'var(--text-secondary)',\n marginTop: -8,\n }}\n >\n Platform administrators only.\n </p>\n {challenge ? (\n <>\n <p style={{ fontSize: 14, color: 'var(--text-secondary)' }}>\n We emailed a 6-digit code to {challenge.sentTo}. It works for 10\n minutes.\n </p>\n <Input\n inputMode=\"numeric\"\n autoComplete=\"one-time-code\"\n aria-label=\"Sign-in code\"\n placeholder=\"6-digit code\"\n maxLength={6}\n value={code}\n onChange={(e) => setCode(e.target.value.replace(/\\D/g, ''))}\n required\n autoFocus\n />\n </>\n ) : (\n <>\n <Input\n type=\"email\"\n aria-label=\"Email\"\n placeholder=\"Email\"\n value={email}\n onChange={(e) => setEmail(e.target.value)}\n required\n autoFocus\n />\n <Input\n type=\"password\"\n aria-label=\"Password\"\n placeholder=\"Password\"\n value={password}\n onChange={(e) => setPassword(e.target.value)}\n required\n />\n </>\n )}\n {error && (\n <div style={{ color: 'var(--error)', fontSize: 13 }}>{error}</div>\n )}\n {note && (\n <div style={{ color: 'var(--text-secondary)', fontSize: 13 }}>\n {note}\n </div>\n )}\n <Button\n type=\"submit\"\n disabled={loading || (!!challenge && code.length !== 6)}\n >\n {loading\n ? 'Signing in…'\n : challenge\n ? 'Verify and sign in'\n : 'Sign in'}\n </Button>\n {challenge && (\n <>\n <Button type=\"button\" variant=\"ghost\" onClick={resend}>\n Email me a new code\n </Button>\n <Button\n type=\"button\"\n variant=\"ghost\"\n onClick={() => {\n setChallenge(null);\n setCode('');\n setError('');\n setNote('');\n }}\n >\n Back\n </Button>\n </>\n )}\n </form>\n </div>\n );\n}\n"],"mappings":"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","names":[]}
@@ -0,0 +1,13 @@
1
+ "use client";
2
+ import { jsx } from "react/jsx-runtime";
3
+ import { Suspense } from "react";
4
+ import { useParams } from "next/navigation";
5
+ import { NewsletterScreen } from "../newsletter-screen";
6
+ function Page() {
7
+ const { id } = useParams();
8
+ return /* @__PURE__ */ jsx(Suspense, { children: /* @__PURE__ */ jsx(NewsletterScreen, { id }, id) });
9
+ }
10
+ export {
11
+ Page as default
12
+ };
13
+ //# sourceMappingURL=page.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/admin/newsletters/%5Bid%5D/page.tsx"],"sourcesContent":["'use client';\n\nimport { Suspense } from 'react';\nimport { useParams } from 'next/navigation';\nimport { NewsletterScreen } from '../newsletter-screen';\n\n/** `/admin/newsletters/[id]`: a draft to write, or a sent newsletter to read. */\nexport default function Page() {\n const { id } = useParams<{ id: string }>();\n\n // The sent view reads `?tab=` and `?status=`, so it waits on the params.\n return (\n <Suspense>\n <NewsletterScreen key={id} id={id} />\n </Suspense>\n );\n}\n"],"mappings":";AAaM;AAXN,SAAS,gBAAgB;AACzB,SAAS,iBAAiB;AAC1B,SAAS,wBAAwB;AAGlB,SAAR,OAAwB;AAC7B,QAAM,EAAE,GAAG,IAAI,UAA0B;AAGzC,SACE,oBAAC,YACC,8BAAC,oBAA0B,MAAJ,EAAY,GACrC;AAEJ;","names":[]}
@@ -0,0 +1,12 @@
1
+ "use client";
2
+ import { jsx } from "react/jsx-runtime";
3
+ import { useParams } from "next/navigation";
4
+ import { ContactScreen } from "../contact-screen";
5
+ function Page() {
6
+ const { contactId } = useParams();
7
+ return /* @__PURE__ */ jsx(ContactScreen, { id: contactId }, contactId);
8
+ }
9
+ export {
10
+ Page as default
11
+ };
12
+ //# sourceMappingURL=page.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../src/admin/newsletters/audience/%5BcontactId%5D/page.tsx"],"sourcesContent":["'use client';\n\nimport { useParams } from 'next/navigation';\nimport { ContactScreen } from '../contact-screen';\n\n/** `/admin/newsletters/audience/[contactId]`: one person in the audience. */\nexport default function Page() {\n const { contactId } = useParams<{ contactId: string }>();\n\n return <ContactScreen key={contactId} id={contactId} />;\n}\n"],"mappings":";AASS;AAPT,SAAS,iBAAiB;AAC1B,SAAS,qBAAqB;AAGf,SAAR,OAAwB;AAC7B,QAAM,EAAE,UAAU,IAAI,UAAiC;AAEvD,SAAO,oBAAC,iBAA8B,IAAI,aAAf,SAA0B;AACvD;","names":[]}
@@ -0,0 +1,163 @@
1
+ "use client";
2
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
3
+ import { useState } from "react";
4
+ import { usePathname, useRouter, useSearchParams } from "next/navigation";
5
+ import {
6
+ Button,
7
+ OverflowItem,
8
+ OverflowMenu,
9
+ TabNav,
10
+ Th
11
+ } from "@withpotter/ui-kit";
12
+ import {
13
+ EmptyState,
14
+ FilterSearch,
15
+ FilterSelect,
16
+ Filters,
17
+ PageHeader
18
+ } from "../../_ui";
19
+ import { ListCard, ListPager } from "../../_ui/list-card";
20
+ import { isNotAvailable } from "../not-available";
21
+ import { NewsletterTabs } from "../section-tabs";
22
+ import { PAGE_SIZE } from "../use-newsletters";
23
+ import { ContactRow } from "./contact-row";
24
+ import {
25
+ SOURCE_OPTIONS,
26
+ groupFromParam,
27
+ groupOfTab,
28
+ groupTabs,
29
+ sourceFromValue
30
+ } from "./contacts";
31
+ import { useContacts, useContactsExport } from "./use-contacts";
32
+ function AudienceList() {
33
+ const router = useRouter();
34
+ const pathname = usePathname();
35
+ const params = useSearchParams();
36
+ const group = groupFromParam(params.get("status"));
37
+ const [search, setSearch] = useState("");
38
+ const [source, setSource] = useState("");
39
+ const scope = `${group.id}|${source}|${search}`;
40
+ const [paging, setPaging] = useState({ scope, page: 1 });
41
+ const page = paging.scope === scope ? paging.page : 1;
42
+ const filter = {
43
+ status: group.id || void 0,
44
+ source: sourceFromValue(source),
45
+ search
46
+ };
47
+ const { data, error, isLoading, isError, refetch } = useContacts(
48
+ filter,
49
+ page
50
+ );
51
+ const exporter = useContactsExport();
52
+ const missing = isNotAvailable(error);
53
+ const items = data?.items ?? [];
54
+ const total = data?.total ?? 0;
55
+ const totalPages = Math.max(1, Math.ceil(total / PAGE_SIZE));
56
+ const leaving = group.id === "unsubscribed";
57
+ const columns = leaving ? 9 : 6;
58
+ const narrowed = Boolean(group.id || source || search.trim());
59
+ const setGroup = (id) => router.replace(id ? `${pathname}?status=${id}` : pathname, {
60
+ scroll: false
61
+ });
62
+ const clear = () => {
63
+ setSearch("");
64
+ setSource("");
65
+ setGroup("");
66
+ };
67
+ const state = /* @__PURE__ */ jsx("tr", { children: /* @__PURE__ */ jsx("td", { colSpan: columns, className: "!p-0", children: missing ? /* @__PURE__ */ jsx(EmptyState, { title: "Contacts could not be loaded" }) : narrowed ? /* @__PURE__ */ jsx(
68
+ EmptyState,
69
+ {
70
+ title: "No contacts match",
71
+ action: /* @__PURE__ */ jsx(Button, { size: "sm", variant: "secondary", onClick: clear, children: "Clear filters" })
72
+ }
73
+ ) : /* @__PURE__ */ jsx(EmptyState, { title: "No contacts yet" }) }) });
74
+ return /* @__PURE__ */ jsxs("div", { children: [
75
+ /* @__PURE__ */ jsx(PageHeader, { title: "Newsletters" }),
76
+ /* @__PURE__ */ jsx(NewsletterTabs, { active: "audience" }),
77
+ /* @__PURE__ */ jsx("div", { className: "mb-4", children: /* @__PURE__ */ jsx(
78
+ TabNav,
79
+ {
80
+ tabs: groupTabs(data?.counts),
81
+ activeTab: group.id || "all",
82
+ onTabChange: (tab) => setGroup(groupOfTab(tab))
83
+ }
84
+ ) }),
85
+ /* @__PURE__ */ jsx(
86
+ ListCard,
87
+ {
88
+ title: group.title,
89
+ count: data ? total : void 0,
90
+ columns,
91
+ minWidth: leaving ? 1180 : 860,
92
+ isLoading,
93
+ isError: isError && !missing,
94
+ onRetry: () => void refetch(),
95
+ errorTitle: "Failed to load the audience.",
96
+ emptyTitle: "No contacts yet",
97
+ controls: /* @__PURE__ */ jsxs(Filters, { label: "Filter contacts", children: [
98
+ /* @__PURE__ */ jsx(
99
+ FilterSearch,
100
+ {
101
+ value: search,
102
+ onChange: setSearch,
103
+ placeholder: "Search by email or name\u2026",
104
+ label: "Search contacts by email or name"
105
+ }
106
+ ),
107
+ /* @__PURE__ */ jsx(
108
+ FilterSelect,
109
+ {
110
+ label: "Source",
111
+ value: source,
112
+ onChange: setSource,
113
+ options: SOURCE_OPTIONS
114
+ }
115
+ ),
116
+ /* @__PURE__ */ jsx(OverflowMenu, { label: "Export", children: /* @__PURE__ */ jsx(
117
+ OverflowItem,
118
+ {
119
+ onClick: () => void exporter.exportCsv(filter),
120
+ disabled: exporter.exporting || missing || !total,
121
+ children: exporter.exporting ? "Exporting\u2026" : "Export CSV"
122
+ }
123
+ ) })
124
+ ] }),
125
+ footer: totalPages > 1 && /* @__PURE__ */ jsx(
126
+ ListPager,
127
+ {
128
+ page,
129
+ totalPages,
130
+ total,
131
+ noun: "contacts",
132
+ onPage: (next) => setPaging({ scope, page: next })
133
+ }
134
+ ),
135
+ head: /* @__PURE__ */ jsxs("tr", { children: [
136
+ /* @__PURE__ */ jsx(Th, { children: "Email" }),
137
+ /* @__PURE__ */ jsx(Th, { children: "Name" }),
138
+ /* @__PURE__ */ jsx(Th, { children: "Status" }),
139
+ /* @__PURE__ */ jsx(Th, { children: "Source" }),
140
+ /* @__PURE__ */ jsx(Th, { children: "Added" }),
141
+ /* @__PURE__ */ jsx(Th, { children: "Last sent" }),
142
+ leaving && /* @__PURE__ */ jsxs(Fragment, { children: [
143
+ /* @__PURE__ */ jsx(Th, { children: "Unsubscribed" }),
144
+ /* @__PURE__ */ jsx(Th, { children: "How" }),
145
+ /* @__PURE__ */ jsx(Th, { children: "From newsletter" })
146
+ ] })
147
+ ] }),
148
+ children: missing || items.length === 0 ? state : items.map((contact) => /* @__PURE__ */ jsx(
149
+ ContactRow,
150
+ {
151
+ contact,
152
+ leaving
153
+ },
154
+ contact.id
155
+ ))
156
+ }
157
+ )
158
+ ] });
159
+ }
160
+ export {
161
+ AudienceList
162
+ };
163
+ //# sourceMappingURL=audience-list.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/admin/newsletters/audience/audience-list.tsx"],"sourcesContent":["'use client';\n\nimport { useState } from 'react';\nimport { usePathname, useRouter, useSearchParams } from 'next/navigation';\nimport {\n Button,\n OverflowItem,\n OverflowMenu,\n TabNav,\n Th,\n} from '@withpotter/ui-kit';\nimport {\n EmptyState,\n FilterSearch,\n FilterSelect,\n Filters,\n PageHeader,\n} from '../../_ui';\nimport { ListCard, ListPager } from '../../_ui/list-card';\nimport { isNotAvailable } from '../not-available';\nimport { NewsletterTabs } from '../section-tabs';\nimport { PAGE_SIZE } from '../use-newsletters';\nimport { ContactRow } from './contact-row';\nimport {\n SOURCE_OPTIONS,\n groupFromParam,\n groupOfTab,\n groupTabs,\n sourceFromValue,\n} from './contacts';\nimport { useContacts, useContactsExport } from './use-contacts';\n\n/**\n * Everyone the newsletter knows about, one row per address. The group lives\n * in `?status=`: it narrows this one list, so it is kept where a link can\n * carry it.\n */\nexport function AudienceList() {\n const router = useRouter();\n const pathname = usePathname();\n const params = useSearchParams();\n const group = groupFromParam(params.get('status'));\n const [search, setSearch] = useState('');\n const [source, setSource] = useState('');\n // The page belongs to one filter: a new group, source or search starts at 1.\n const scope = `${group.id}|${source}|${search}`;\n const [paging, setPaging] = useState({ scope, page: 1 });\n const page = paging.scope === scope ? paging.page : 1;\n const filter = {\n status: group.id || undefined,\n source: sourceFromValue(source),\n search,\n };\n const { data, error, isLoading, isError, refetch } = useContacts(\n filter,\n page,\n );\n const exporter = useContactsExport();\n const missing = isNotAvailable(error);\n const items = data?.items ?? [];\n const total = data?.total ?? 0;\n const totalPages = Math.max(1, Math.ceil(total / PAGE_SIZE));\n const leaving = group.id === 'unsubscribed';\n const columns = leaving ? 9 : 6;\n const narrowed = Boolean(group.id || source || search.trim());\n const setGroup = (id: string) =>\n router.replace(id ? `${pathname}?status=${id}` : pathname, {\n scroll: false,\n });\n const clear = () => {\n setSearch('');\n setSource('');\n setGroup('');\n };\n const state = (\n <tr>\n <td colSpan={columns} className=\"!p-0\">\n {missing ? (\n <EmptyState title=\"Contacts could not be loaded\" />\n ) : narrowed ? (\n <EmptyState\n title=\"No contacts match\"\n action={\n <Button size=\"sm\" variant=\"secondary\" onClick={clear}>\n Clear filters\n </Button>\n }\n />\n ) : (\n <EmptyState title=\"No contacts yet\" />\n )}\n </td>\n </tr>\n );\n\n return (\n <div>\n <PageHeader title=\"Newsletters\" />\n <NewsletterTabs active=\"audience\" />\n <div className=\"mb-4\">\n <TabNav\n tabs={groupTabs(data?.counts)}\n activeTab={group.id || 'all'}\n onTabChange={(tab) => setGroup(groupOfTab(tab))}\n />\n </div>\n <ListCard\n title={group.title}\n count={data ? total : undefined}\n columns={columns}\n minWidth={leaving ? 1180 : 860}\n isLoading={isLoading}\n isError={isError && !missing}\n onRetry={() => void refetch()}\n errorTitle=\"Failed to load the audience.\"\n emptyTitle=\"No contacts yet\"\n controls={\n <Filters label=\"Filter contacts\">\n <FilterSearch\n value={search}\n onChange={setSearch}\n placeholder=\"Search by email or name…\"\n label=\"Search contacts by email or name\"\n />\n <FilterSelect\n label=\"Source\"\n value={source}\n onChange={setSource}\n options={SOURCE_OPTIONS}\n />\n <OverflowMenu label=\"Export\">\n <OverflowItem\n onClick={() => void exporter.exportCsv(filter)}\n disabled={exporter.exporting || missing || !total}\n >\n {exporter.exporting ? 'Exporting…' : 'Export CSV'}\n </OverflowItem>\n </OverflowMenu>\n </Filters>\n }\n footer={\n totalPages > 1 && (\n <ListPager\n page={page}\n totalPages={totalPages}\n total={total}\n noun=\"contacts\"\n onPage={(next) => setPaging({ scope, page: next })}\n />\n )\n }\n head={\n <tr>\n <Th>Email</Th>\n <Th>Name</Th>\n <Th>Status</Th>\n <Th>Source</Th>\n <Th>Added</Th>\n <Th>Last sent</Th>\n {leaving && (\n <>\n <Th>Unsubscribed</Th>\n <Th>How</Th>\n <Th>From newsletter</Th>\n </>\n )}\n </tr>\n }\n >\n {missing || items.length === 0\n ? state\n : items.map((contact) => (\n <ContactRow\n key={contact.id}\n contact={contact}\n leaving={leaving}\n />\n ))}\n </ListCard>\n </div>\n );\n}\n"],"mappings":"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","names":[]}
@@ -0,0 +1,90 @@
1
+ "use client";
2
+ import { jsx, jsxs } from "react/jsx-runtime";
3
+ import { useState } from "react";
4
+ import Link from "next/link";
5
+ import { Th } from "@withpotter/ui-kit";
6
+ import { StatusBadge } from "@withpotter/components/shared/status-badge";
7
+ import { EmptyState } from "../../_ui";
8
+ import list from "../../_ui/list-card.module.css";
9
+ import { EMPTY, ListCard, ListPager } from "../../_ui/list-card";
10
+ import rows from "../../accounts/rows.module.css";
11
+ import { When } from "../../audit/when";
12
+ import { DELIVERY_STATUS, reasonOf, timeOf } from "../deliveries";
13
+ import { hrefOf } from "../labels";
14
+ import { isNotAvailable } from "../not-available";
15
+ import { PAGE_SIZE } from "../use-newsletters";
16
+ import { useContactDeliveries } from "./use-contacts";
17
+ const COLUMNS = 5;
18
+ function ContactDeliveries({ id }) {
19
+ const [page, setPage] = useState(1);
20
+ const { data, error, isLoading, isError, refetch } = useContactDeliveries(
21
+ id,
22
+ page
23
+ );
24
+ const missing = isNotAvailable(error);
25
+ const items = data?.items ?? [];
26
+ const total = data?.total ?? 0;
27
+ const totalPages = Math.max(1, Math.ceil(total / PAGE_SIZE));
28
+ return /* @__PURE__ */ jsx(
29
+ ListCard,
30
+ {
31
+ title: "Newsletters sent",
32
+ count: data ? total : void 0,
33
+ columns: COLUMNS,
34
+ minWidth: 640,
35
+ isLoading,
36
+ isError: isError && !missing,
37
+ onRetry: () => void refetch(),
38
+ errorTitle: "Failed to load what they were sent.",
39
+ isEmpty: !missing && items.length === 0,
40
+ emptyTitle: "Nothing sent yet",
41
+ emptyDescription: "No newsletter has been sent to this address.",
42
+ footer: totalPages > 1 && /* @__PURE__ */ jsx(
43
+ ListPager,
44
+ {
45
+ page,
46
+ totalPages,
47
+ total,
48
+ noun: "newsletters",
49
+ onPage: setPage
50
+ }
51
+ ),
52
+ head: /* @__PURE__ */ jsxs("tr", { children: [
53
+ /* @__PURE__ */ jsx(Th, { children: "Newsletter" }),
54
+ /* @__PURE__ */ jsx(Th, { children: "Status" }),
55
+ /* @__PURE__ */ jsx(Th, { children: "Reason" }),
56
+ /* @__PURE__ */ jsx(Th, { align: "right", children: "Tries" }),
57
+ /* @__PURE__ */ jsx(Th, { children: "Time" })
58
+ ] }),
59
+ children: missing ? /* @__PURE__ */ jsx("tr", { children: /* @__PURE__ */ jsx("td", { colSpan: COLUMNS, className: "!p-0", children: /* @__PURE__ */ jsx(EmptyState, { title: "Sending history could not be loaded" }) }) }) : items.map((delivery) => {
60
+ const status = DELIVERY_STATUS[delivery.status];
61
+ const reason = reasonOf(delivery);
62
+ return /* @__PURE__ */ jsxs("tr", { children: [
63
+ /* @__PURE__ */ jsx("td", { children: /* @__PURE__ */ jsx("span", { className: rows.identityText, children: /* @__PURE__ */ jsx(
64
+ Link,
65
+ {
66
+ href: hrefOf(delivery.newsletterId),
67
+ className: rows.primary,
68
+ children: delivery.subject?.trim() || "Untitled newsletter"
69
+ }
70
+ ) }) }),
71
+ /* @__PURE__ */ jsx("td", { className: list.nowrap, children: /* @__PURE__ */ jsx(
72
+ StatusBadge,
73
+ {
74
+ status: status.key,
75
+ label: status.label,
76
+ neutral: status.quiet
77
+ }
78
+ ) }),
79
+ /* @__PURE__ */ jsx("td", { className: reason ? void 0 : list.dash, children: reason ?? EMPTY }),
80
+ /* @__PURE__ */ jsx("td", { className: list.num, children: delivery.attempts }),
81
+ /* @__PURE__ */ jsx("td", { className: `${list.nowrap} ${list.muted}`, children: /* @__PURE__ */ jsx(When, { iso: timeOf(delivery) }) })
82
+ ] }, delivery.id);
83
+ })
84
+ }
85
+ );
86
+ }
87
+ export {
88
+ ContactDeliveries
89
+ };
90
+ //# sourceMappingURL=contact-deliveries.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/admin/newsletters/audience/contact-deliveries.tsx"],"sourcesContent":["'use client';\n\nimport { useState } from 'react';\nimport Link from 'next/link';\nimport { Th } from '@withpotter/ui-kit';\nimport { StatusBadge } from '@withpotter/components/shared/status-badge';\nimport { EmptyState } from '../../_ui';\nimport list from '../../_ui/list-card.module.css';\nimport { EMPTY, ListCard, ListPager } from '../../_ui/list-card';\nimport rows from '../../accounts/rows.module.css';\nimport { When } from '../../audit/when';\nimport { DELIVERY_STATUS, reasonOf, timeOf } from '../deliveries';\nimport { hrefOf } from '../labels';\nimport { isNotAvailable } from '../not-available';\nimport { PAGE_SIZE } from '../use-newsletters';\nimport { useContactDeliveries } from './use-contacts';\n\nconst COLUMNS = 5;\n\n/** Every newsletter one contact was sent, newest first, and how each went. */\nexport function ContactDeliveries({ id }: { id: string }) {\n const [page, setPage] = useState(1);\n const { data, error, isLoading, isError, refetch } = useContactDeliveries(\n id,\n page,\n );\n const missing = isNotAvailable(error);\n const items = data?.items ?? [];\n const total = data?.total ?? 0;\n const totalPages = Math.max(1, Math.ceil(total / PAGE_SIZE));\n\n return (\n <ListCard\n title=\"Newsletters sent\"\n count={data ? total : undefined}\n columns={COLUMNS}\n minWidth={640}\n isLoading={isLoading}\n isError={isError && !missing}\n onRetry={() => void refetch()}\n errorTitle=\"Failed to load what they were sent.\"\n isEmpty={!missing && items.length === 0}\n emptyTitle=\"Nothing sent yet\"\n emptyDescription=\"No newsletter has been sent to this address.\"\n footer={\n totalPages > 1 && (\n <ListPager\n page={page}\n totalPages={totalPages}\n total={total}\n noun=\"newsletters\"\n onPage={setPage}\n />\n )\n }\n head={\n <tr>\n <Th>Newsletter</Th>\n <Th>Status</Th>\n <Th>Reason</Th>\n <Th align=\"right\">Tries</Th>\n <Th>Time</Th>\n </tr>\n }\n >\n {missing ? (\n <tr>\n <td colSpan={COLUMNS} className=\"!p-0\">\n <EmptyState title=\"Sending history could not be loaded\" />\n </td>\n </tr>\n ) : (\n items.map((delivery) => {\n const status = DELIVERY_STATUS[delivery.status];\n const reason = reasonOf(delivery);\n\n return (\n <tr key={delivery.id}>\n <td>\n <span className={rows.identityText}>\n <Link\n href={hrefOf(delivery.newsletterId)}\n className={rows.primary}\n >\n {delivery.subject?.trim() || 'Untitled newsletter'}\n </Link>\n </span>\n </td>\n <td className={list.nowrap}>\n <StatusBadge\n status={status.key}\n label={status.label}\n neutral={status.quiet}\n />\n </td>\n <td className={reason ? undefined : list.dash}>\n {reason ?? EMPTY}\n </td>\n <td className={list.num}>{delivery.attempts}</td>\n <td className={`${list.nowrap} ${list.muted}`}>\n <When iso={timeOf(delivery)} />\n </td>\n </tr>\n );\n })\n )}\n </ListCard>\n );\n}\n"],"mappings":";AA8CU,cAUF,YAVE;AA5CV,SAAS,gBAAgB;AACzB,OAAO,UAAU;AACjB,SAAS,UAAU;AACnB,SAAS,mBAAmB;AAC5B,SAAS,kBAAkB;AAC3B,OAAO,UAAU;AACjB,SAAS,OAAO,UAAU,iBAAiB;AAC3C,OAAO,UAAU;AACjB,SAAS,YAAY;AACrB,SAAS,iBAAiB,UAAU,cAAc;AAClD,SAAS,cAAc;AACvB,SAAS,sBAAsB;AAC/B,SAAS,iBAAiB;AAC1B,SAAS,4BAA4B;AAErC,MAAM,UAAU;AAGT,SAAS,kBAAkB,EAAE,GAAG,GAAmB;AACxD,QAAM,CAAC,MAAM,OAAO,IAAI,SAAS,CAAC;AAClC,QAAM,EAAE,MAAM,OAAO,WAAW,SAAS,QAAQ,IAAI;AAAA,IACnD;AAAA,IACA;AAAA,EACF;AACA,QAAM,UAAU,eAAe,KAAK;AACpC,QAAM,QAAQ,MAAM,SAAS,CAAC;AAC9B,QAAM,QAAQ,MAAM,SAAS;AAC7B,QAAM,aAAa,KAAK,IAAI,GAAG,KAAK,KAAK,QAAQ,SAAS,CAAC;AAE3D,SACE;AAAA,IAAC;AAAA;AAAA,MACC,OAAM;AAAA,MACN,OAAO,OAAO,QAAQ;AAAA,MACtB,SAAS;AAAA,MACT,UAAU;AAAA,MACV;AAAA,MACA,SAAS,WAAW,CAAC;AAAA,MACrB,SAAS,MAAM,KAAK,QAAQ;AAAA,MAC5B,YAAW;AAAA,MACX,SAAS,CAAC,WAAW,MAAM,WAAW;AAAA,MACtC,YAAW;AAAA,MACX,kBAAiB;AAAA,MACjB,QACE,aAAa,KACX;AAAA,QAAC;AAAA;AAAA,UACC;AAAA,UACA;AAAA,UACA;AAAA,UACA,MAAK;AAAA,UACL,QAAQ;AAAA;AAAA,MACV;AAAA,MAGJ,MACE,qBAAC,QACC;AAAA,4BAAC,MAAG,wBAAU;AAAA,QACd,oBAAC,MAAG,oBAAM;AAAA,QACV,oBAAC,MAAG,oBAAM;AAAA,QACV,oBAAC,MAAG,OAAM,SAAQ,mBAAK;AAAA,QACvB,oBAAC,MAAG,kBAAI;AAAA,SACV;AAAA,MAGD,oBACC,oBAAC,QACC,8BAAC,QAAG,SAAS,SAAS,WAAU,QAC9B,8BAAC,cAAW,OAAM,uCAAsC,GAC1D,GACF,IAEA,MAAM,IAAI,CAAC,aAAa;AACtB,cAAM,SAAS,gBAAgB,SAAS,MAAM;AAC9C,cAAM,SAAS,SAAS,QAAQ;AAEhC,eACE,qBAAC,QACC;AAAA,8BAAC,QACC,8BAAC,UAAK,WAAW,KAAK,cACpB;AAAA,YAAC;AAAA;AAAA,cACC,MAAM,OAAO,SAAS,YAAY;AAAA,cAClC,WAAW,KAAK;AAAA,cAEf,mBAAS,SAAS,KAAK,KAAK;AAAA;AAAA,UAC/B,GACF,GACF;AAAA,UACA,oBAAC,QAAG,WAAW,KAAK,QAClB;AAAA,YAAC;AAAA;AAAA,cACC,QAAQ,OAAO;AAAA,cACf,OAAO,OAAO;AAAA,cACd,SAAS,OAAO;AAAA;AAAA,UAClB,GACF;AAAA,UACA,oBAAC,QAAG,WAAW,SAAS,SAAY,KAAK,MACtC,oBAAU,OACb;AAAA,UACA,oBAAC,QAAG,WAAW,KAAK,KAAM,mBAAS,UAAS;AAAA,UAC5C,oBAAC,QAAG,WAAW,GAAG,KAAK,MAAM,IAAI,KAAK,KAAK,IACzC,8BAAC,QAAK,KAAK,OAAO,QAAQ,GAAG,GAC/B;AAAA,aAxBO,SAAS,EAyBlB;AAAA,MAEJ,CAAC;AAAA;AAAA,EAEL;AAEJ;","names":[]}
@@ -0,0 +1,63 @@
1
+ "use client";
2
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
3
+ import Link from "next/link";
4
+ import { useRouter } from "next/navigation";
5
+ import { TableRow } from "@withpotter/ui-kit";
6
+ import { StatusBadge } from "@withpotter/components/shared/status-badge";
7
+ import list from "../../_ui/list-card.module.css";
8
+ import { EMPTY } from "../../_ui/list-card";
9
+ import rows from "../../accounts/rows.module.css";
10
+ import { When } from "../../audit/when";
11
+ import { hrefOf } from "../labels";
12
+ import {
13
+ CONTACT_STATUS,
14
+ SOURCE_LABEL,
15
+ VIA_LABEL,
16
+ contactHref
17
+ } from "./contacts";
18
+ const dash = (value) => value ? void 0 : list.dash;
19
+ function ContactRow({
20
+ contact,
21
+ leaving
22
+ }) {
23
+ const router = useRouter();
24
+ const href = contactHref(contact.id);
25
+ const status = CONTACT_STATUS[contact.status];
26
+ const { lastSent, unsubscribedNewsletter: from } = contact;
27
+ const stop = (e) => e.stopPropagation();
28
+ return /* @__PURE__ */ jsxs(TableRow, { onClick: () => router.push(href), children: [
29
+ /* @__PURE__ */ jsx("td", { children: /* @__PURE__ */ jsx("span", { className: rows.identityText, children: /* @__PURE__ */ jsx(Link, { href, className: rows.primary, onClick: stop, children: contact.email }) }) }),
30
+ /* @__PURE__ */ jsx("td", { className: dash(contact.name), children: contact.name || EMPTY }),
31
+ /* @__PURE__ */ jsx("td", { className: list.nowrap, children: /* @__PURE__ */ jsx(
32
+ StatusBadge,
33
+ {
34
+ status: status.key,
35
+ label: status.label,
36
+ neutral: status.quiet
37
+ }
38
+ ) }),
39
+ /* @__PURE__ */ jsx("td", { className: `${list.nowrap} ${list.muted}`, children: SOURCE_LABEL[contact.source] }),
40
+ /* @__PURE__ */ jsx("td", { className: `${list.nowrap} ${list.muted}`, children: /* @__PURE__ */ jsx(When, { iso: contact.createdAt }) }),
41
+ /* @__PURE__ */ jsx("td", { className: lastSent ? list.muted : list.dash, children: lastSent ? /* @__PURE__ */ jsxs("span", { className: rows.identityText, children: [
42
+ /* @__PURE__ */ jsx("span", { className: list.clip, children: lastSent.subject }),
43
+ /* @__PURE__ */ jsx(When, { iso: lastSent.sentAt, className: rows.secondary })
44
+ ] }) : EMPTY }),
45
+ leaving && /* @__PURE__ */ jsxs(Fragment, { children: [
46
+ /* @__PURE__ */ jsx("td", { className: `${list.nowrap} ${dash(contact.unsubscribedAt)}`, children: contact.unsubscribedAt ? /* @__PURE__ */ jsx(When, { iso: contact.unsubscribedAt }) : EMPTY }),
47
+ /* @__PURE__ */ jsx("td", { className: dash(contact.unsubscribedVia), children: contact.unsubscribedVia ? VIA_LABEL[contact.unsubscribedVia] : EMPTY }),
48
+ /* @__PURE__ */ jsx("td", { className: dash(from), children: from ? /* @__PURE__ */ jsx(
49
+ Link,
50
+ {
51
+ href: hrefOf(from.id),
52
+ className: `${list.clip} block underline underline-offset-2`,
53
+ onClick: stop,
54
+ children: from.subject || "Untitled newsletter"
55
+ }
56
+ ) : EMPTY })
57
+ ] })
58
+ ] });
59
+ }
60
+ export {
61
+ ContactRow
62
+ };
63
+ //# sourceMappingURL=contact-row.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/admin/newsletters/audience/contact-row.tsx"],"sourcesContent":["'use client';\n\nimport type { MouseEvent } from 'react';\nimport Link from 'next/link';\nimport { useRouter } from 'next/navigation';\nimport { TableRow } from '@withpotter/ui-kit';\nimport { StatusBadge } from '@withpotter/components/shared/status-badge';\nimport type { Contact } from '@withpotter/lib/admin-newsletter-contacts-api';\nimport list from '../../_ui/list-card.module.css';\nimport { EMPTY } from '../../_ui/list-card';\nimport rows from '../../accounts/rows.module.css';\nimport { When } from '../../audit/when';\nimport { hrefOf } from '../labels';\nimport {\n CONTACT_STATUS,\n SOURCE_LABEL,\n VIA_LABEL,\n contactHref,\n} from './contacts';\n\nconst dash = (value: unknown) => (value ? undefined : list.dash);\n\n/** One contact in the audience. The row opens the contact's own page. */\nexport function ContactRow({\n contact,\n leaving,\n}: {\n contact: Contact;\n /** Also show when and how they unsubscribed. */\n leaving: boolean;\n}) {\n const router = useRouter();\n const href = contactHref(contact.id);\n const status = CONTACT_STATUS[contact.status];\n const { lastSent, unsubscribedNewsletter: from } = contact;\n const stop = (e: MouseEvent) => e.stopPropagation();\n\n return (\n <TableRow onClick={() => router.push(href)}>\n <td>\n <span className={rows.identityText}>\n <Link href={href} className={rows.primary} onClick={stop}>\n {contact.email}\n </Link>\n </span>\n </td>\n <td className={dash(contact.name)}>{contact.name || EMPTY}</td>\n <td className={list.nowrap}>\n <StatusBadge\n status={status.key}\n label={status.label}\n neutral={status.quiet}\n />\n </td>\n <td className={`${list.nowrap} ${list.muted}`}>\n {SOURCE_LABEL[contact.source]}\n </td>\n <td className={`${list.nowrap} ${list.muted}`}>\n <When iso={contact.createdAt} />\n </td>\n <td className={lastSent ? list.muted : list.dash}>\n {lastSent ? (\n <span className={rows.identityText}>\n <span className={list.clip}>{lastSent.subject}</span>\n <When iso={lastSent.sentAt} className={rows.secondary} />\n </span>\n ) : (\n EMPTY\n )}\n </td>\n {leaving && (\n <>\n <td className={`${list.nowrap} ${dash(contact.unsubscribedAt)}`}>\n {contact.unsubscribedAt ? (\n <When iso={contact.unsubscribedAt} />\n ) : (\n EMPTY\n )}\n </td>\n <td className={dash(contact.unsubscribedVia)}>\n {contact.unsubscribedVia\n ? VIA_LABEL[contact.unsubscribedVia]\n : EMPTY}\n </td>\n <td className={dash(from)}>\n {from ? (\n <Link\n href={hrefOf(from.id)}\n className={`${list.clip} block underline underline-offset-2`}\n onClick={stop}\n >\n {from.subject || 'Untitled newsletter'}\n </Link>\n ) : (\n EMPTY\n )}\n </td>\n </>\n )}\n </TableRow>\n );\n}\n"],"mappings":";AAyCU,SA8BF,UA9BE,KAqBA,YArBA;AAtCV,OAAO,UAAU;AACjB,SAAS,iBAAiB;AAC1B,SAAS,gBAAgB;AACzB,SAAS,mBAAmB;AAE5B,OAAO,UAAU;AACjB,SAAS,aAAa;AACtB,OAAO,UAAU;AACjB,SAAS,YAAY;AACrB,SAAS,cAAc;AACvB;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAEP,MAAM,OAAO,CAAC,UAAoB,QAAQ,SAAY,KAAK;AAGpD,SAAS,WAAW;AAAA,EACzB;AAAA,EACA;AACF,GAIG;AACD,QAAM,SAAS,UAAU;AACzB,QAAM,OAAO,YAAY,QAAQ,EAAE;AACnC,QAAM,SAAS,eAAe,QAAQ,MAAM;AAC5C,QAAM,EAAE,UAAU,wBAAwB,KAAK,IAAI;AACnD,QAAM,OAAO,CAAC,MAAkB,EAAE,gBAAgB;AAElD,SACE,qBAAC,YAAS,SAAS,MAAM,OAAO,KAAK,IAAI,GACvC;AAAA,wBAAC,QACC,8BAAC,UAAK,WAAW,KAAK,cACpB,8BAAC,QAAK,MAAY,WAAW,KAAK,SAAS,SAAS,MACjD,kBAAQ,OACX,GACF,GACF;AAAA,IACA,oBAAC,QAAG,WAAW,KAAK,QAAQ,IAAI,GAAI,kBAAQ,QAAQ,OAAM;AAAA,IAC1D,oBAAC,QAAG,WAAW,KAAK,QAClB;AAAA,MAAC;AAAA;AAAA,QACC,QAAQ,OAAO;AAAA,QACf,OAAO,OAAO;AAAA,QACd,SAAS,OAAO;AAAA;AAAA,IAClB,GACF;AAAA,IACA,oBAAC,QAAG,WAAW,GAAG,KAAK,MAAM,IAAI,KAAK,KAAK,IACxC,uBAAa,QAAQ,MAAM,GAC9B;AAAA,IACA,oBAAC,QAAG,WAAW,GAAG,KAAK,MAAM,IAAI,KAAK,KAAK,IACzC,8BAAC,QAAK,KAAK,QAAQ,WAAW,GAChC;AAAA,IACA,oBAAC,QAAG,WAAW,WAAW,KAAK,QAAQ,KAAK,MACzC,qBACC,qBAAC,UAAK,WAAW,KAAK,cACpB;AAAA,0BAAC,UAAK,WAAW,KAAK,MAAO,mBAAS,SAAQ;AAAA,MAC9C,oBAAC,QAAK,KAAK,SAAS,QAAQ,WAAW,KAAK,WAAW;AAAA,OACzD,IAEA,OAEJ;AAAA,IACC,WACC,iCACE;AAAA,0BAAC,QAAG,WAAW,GAAG,KAAK,MAAM,IAAI,KAAK,QAAQ,cAAc,CAAC,IAC1D,kBAAQ,iBACP,oBAAC,QAAK,KAAK,QAAQ,gBAAgB,IAEnC,OAEJ;AAAA,MACA,oBAAC,QAAG,WAAW,KAAK,QAAQ,eAAe,GACxC,kBAAQ,kBACL,UAAU,QAAQ,eAAe,IACjC,OACN;AAAA,MACA,oBAAC,QAAG,WAAW,KAAK,IAAI,GACrB,iBACC;AAAA,QAAC;AAAA;AAAA,UACC,MAAM,OAAO,KAAK,EAAE;AAAA,UACpB,WAAW,GAAG,KAAK,IAAI;AAAA,UACvB,SAAS;AAAA,UAER,eAAK,WAAW;AAAA;AAAA,MACnB,IAEA,OAEJ;AAAA,OACF;AAAA,KAEJ;AAEJ;","names":[]}
@@ -0,0 +1,59 @@
1
+ "use client";
2
+ import { jsx, jsxs } from "react/jsx-runtime";
3
+ import { useState } from "react";
4
+ import { Banner, Button, DetailColumns } from "@withpotter/ui-kit";
5
+ import { AdmLoading } from "../../_ui";
6
+ import { LoadFailed } from "../../audit/load-failed";
7
+ import { isNotAvailable } from "../not-available";
8
+ import { RecordHeader } from "../record-header";
9
+ import { useNewsletterAccess } from "../use-newsletters";
10
+ import { ContactDeliveries } from "./contact-deliveries";
11
+ import { ContactSummary } from "./contact-summary";
12
+ import { AUDIENCE_HREF } from "./contacts";
13
+ import { CHANGE_COPY, changeFor } from "./status-change";
14
+ import { StatusDialog } from "./status-dialog";
15
+ import { useContact } from "./use-contacts";
16
+ const PARENT = { label: "Audience", href: AUDIENCE_HREF };
17
+ function ContactScreen({ id }) {
18
+ const { canManage } = useNewsletterAccess();
19
+ const { data, error, isLoading, isError, refetch } = useContact(id);
20
+ const [changing, setChanging] = useState(false);
21
+ if (isError && !data) {
22
+ return /* @__PURE__ */ jsxs("div", { children: [
23
+ /* @__PURE__ */ jsx(RecordHeader, { title: "Contact", parent: PARENT }),
24
+ isNotAvailable(error) ? /* @__PURE__ */ jsx(Banner, { tone: "info", title: "There is no contact at this address" }) : /* @__PURE__ */ jsx(
25
+ LoadFailed,
26
+ {
27
+ message: "This contact could not be loaded.",
28
+ onRetry: () => void refetch()
29
+ }
30
+ )
31
+ ] });
32
+ }
33
+ if (isLoading || !data) return /* @__PURE__ */ jsx(AdmLoading, { label: "Loading contact\u2026" });
34
+ const change = changeFor(data);
35
+ return /* @__PURE__ */ jsxs("div", { children: [
36
+ /* @__PURE__ */ jsx(RecordHeader, { title: data.email, parent: PARENT, children: canManage && change && /* @__PURE__ */ jsx(
37
+ Button,
38
+ {
39
+ variant: change === "unsubscribe" ? "danger" : "secondary",
40
+ onClick: () => setChanging(true),
41
+ children: CHANGE_COPY[change].action
42
+ }
43
+ ) }),
44
+ /* @__PURE__ */ jsx(DetailColumns, { aside: /* @__PURE__ */ jsx(ContactSummary, { contact: data }), children: /* @__PURE__ */ jsx(ContactDeliveries, { id }) }),
45
+ change && /* @__PURE__ */ jsx(
46
+ StatusDialog,
47
+ {
48
+ open: changing,
49
+ contact: data,
50
+ change,
51
+ onClose: () => setChanging(false)
52
+ }
53
+ )
54
+ ] });
55
+ }
56
+ export {
57
+ ContactScreen
58
+ };
59
+ //# sourceMappingURL=contact-screen.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/admin/newsletters/audience/contact-screen.tsx"],"sourcesContent":["'use client';\n\nimport { useState } from 'react';\nimport { Banner, Button, DetailColumns } from '@withpotter/ui-kit';\nimport { AdmLoading } from '../../_ui';\nimport { LoadFailed } from '../../audit/load-failed';\nimport { isNotAvailable } from '../not-available';\nimport { RecordHeader } from '../record-header';\nimport { useNewsletterAccess } from '../use-newsletters';\nimport { ContactDeliveries } from './contact-deliveries';\nimport { ContactSummary } from './contact-summary';\nimport { AUDIENCE_HREF } from './contacts';\nimport { CHANGE_COPY, changeFor } from './status-change';\nimport { StatusDialog } from './status-dialog';\nimport { useContact } from './use-contacts';\n\nconst PARENT = { label: 'Audience', href: AUDIENCE_HREF };\n\n/**\n * One person in the audience: where they stand and why, what they were sent,\n * and the one change an admin may make by hand.\n */\nexport function ContactScreen({ id }: { id: string }) {\n const { canManage } = useNewsletterAccess();\n const { data, error, isLoading, isError, refetch } = useContact(id);\n const [changing, setChanging] = useState(false);\n\n if (isError && !data) {\n return (\n <div>\n <RecordHeader title=\"Contact\" parent={PARENT} />\n {isNotAvailable(error) ? (\n <Banner tone=\"info\" title=\"There is no contact at this address\" />\n ) : (\n <LoadFailed\n message=\"This contact could not be loaded.\"\n onRetry={() => void refetch()}\n />\n )}\n </div>\n );\n }\n\n if (isLoading || !data) return <AdmLoading label=\"Loading contact…\" />;\n\n const change = changeFor(data);\n\n return (\n <div>\n <RecordHeader title={data.email} parent={PARENT}>\n {canManage && change && (\n <Button\n variant={change === 'unsubscribe' ? 'danger' : 'secondary'}\n onClick={() => setChanging(true)}\n >\n {CHANGE_COPY[change].action}\n </Button>\n )}\n </RecordHeader>\n <DetailColumns aside={<ContactSummary contact={data} />}>\n <ContactDeliveries id={id} />\n </DetailColumns>\n {change && (\n <StatusDialog\n open={changing}\n contact={data}\n change={change}\n onClose={() => setChanging(false)}\n />\n )}\n </div>\n );\n}\n"],"mappings":";AA6BM,SACE,KADF;AA3BN,SAAS,gBAAgB;AACzB,SAAS,QAAQ,QAAQ,qBAAqB;AAC9C,SAAS,kBAAkB;AAC3B,SAAS,kBAAkB;AAC3B,SAAS,sBAAsB;AAC/B,SAAS,oBAAoB;AAC7B,SAAS,2BAA2B;AACpC,SAAS,yBAAyB;AAClC,SAAS,sBAAsB;AAC/B,SAAS,qBAAqB;AAC9B,SAAS,aAAa,iBAAiB;AACvC,SAAS,oBAAoB;AAC7B,SAAS,kBAAkB;AAE3B,MAAM,SAAS,EAAE,OAAO,YAAY,MAAM,cAAc;AAMjD,SAAS,cAAc,EAAE,GAAG,GAAmB;AACpD,QAAM,EAAE,UAAU,IAAI,oBAAoB;AAC1C,QAAM,EAAE,MAAM,OAAO,WAAW,SAAS,QAAQ,IAAI,WAAW,EAAE;AAClE,QAAM,CAAC,UAAU,WAAW,IAAI,SAAS,KAAK;AAE9C,MAAI,WAAW,CAAC,MAAM;AACpB,WACE,qBAAC,SACC;AAAA,0BAAC,gBAAa,OAAM,WAAU,QAAQ,QAAQ;AAAA,MAC7C,eAAe,KAAK,IACnB,oBAAC,UAAO,MAAK,QAAO,OAAM,uCAAsC,IAEhE;AAAA,QAAC;AAAA;AAAA,UACC,SAAQ;AAAA,UACR,SAAS,MAAM,KAAK,QAAQ;AAAA;AAAA,MAC9B;AAAA,OAEJ;AAAA,EAEJ;AAEA,MAAI,aAAa,CAAC,KAAM,QAAO,oBAAC,cAAW,OAAM,yBAAmB;AAEpE,QAAM,SAAS,UAAU,IAAI;AAE7B,SACE,qBAAC,SACC;AAAA,wBAAC,gBAAa,OAAO,KAAK,OAAO,QAAQ,QACtC,uBAAa,UACZ;AAAA,MAAC;AAAA;AAAA,QACC,SAAS,WAAW,gBAAgB,WAAW;AAAA,QAC/C,SAAS,MAAM,YAAY,IAAI;AAAA,QAE9B,sBAAY,MAAM,EAAE;AAAA;AAAA,IACvB,GAEJ;AAAA,IACA,oBAAC,iBAAc,OAAO,oBAAC,kBAAe,SAAS,MAAM,GACnD,8BAAC,qBAAkB,IAAQ,GAC7B;AAAA,IACC,UACC;AAAA,MAAC;AAAA;AAAA,QACC,MAAM;AAAA,QACN,SAAS;AAAA,QACT;AAAA,QACA,SAAS,MAAM,YAAY,KAAK;AAAA;AAAA,IAClC;AAAA,KAEJ;AAEJ;","names":[]}
@@ -0,0 +1,70 @@
1
+ import { jsx, jsxs } from "react/jsx-runtime";
2
+ import Link from "next/link";
3
+ import { Card, Fact, FactList } from "@withpotter/ui-kit";
4
+ import { StatusBadge } from "@withpotter/components/shared/status-badge";
5
+ import { hrefOf } from "../labels";
6
+ import {
7
+ CONTACT_STATUS,
8
+ SOURCE_LABEL,
9
+ VIA_LABEL,
10
+ statusReason
11
+ } from "./contacts";
12
+ import { formatMoment } from "../format-date";
13
+ function ContactSummary({ contact }) {
14
+ const status = CONTACT_STATUS[contact.status];
15
+ const from = contact.unsubscribedNewsletter;
16
+ return /* @__PURE__ */ jsx(Card, { children: /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-4", children: [
17
+ /* @__PURE__ */ jsxs(FactList, { columns: 1, children: [
18
+ /* @__PURE__ */ jsx(Fact, { label: "Email", value: contact.email }),
19
+ /* @__PURE__ */ jsx(Fact, { label: "Name", value: contact.name }),
20
+ /* @__PURE__ */ jsx(
21
+ Fact,
22
+ {
23
+ label: "Status",
24
+ value: /* @__PURE__ */ jsx(
25
+ StatusBadge,
26
+ {
27
+ status: status.key,
28
+ label: status.label,
29
+ neutral: status.quiet
30
+ }
31
+ )
32
+ }
33
+ ),
34
+ /* @__PURE__ */ jsx(Fact, { label: "Why", value: statusReason(contact) }),
35
+ contact.unsubscribedAt && /* @__PURE__ */ jsx(
36
+ Fact,
37
+ {
38
+ label: "Unsubscribed on",
39
+ value: formatMoment(contact.unsubscribedAt)
40
+ }
41
+ ),
42
+ contact.unsubscribedVia && /* @__PURE__ */ jsx(Fact, { label: "How", value: VIA_LABEL[contact.unsubscribedVia] }),
43
+ from && /* @__PURE__ */ jsx(
44
+ Fact,
45
+ {
46
+ label: "From newsletter",
47
+ value: /* @__PURE__ */ jsx(
48
+ Link,
49
+ {
50
+ href: hrefOf(from.id),
51
+ className: "underline underline-offset-2",
52
+ children: from.subject || "Untitled newsletter"
53
+ }
54
+ )
55
+ }
56
+ ),
57
+ contact.bouncedAt && /* @__PURE__ */ jsx(Fact, { label: "Bounced on", value: formatMoment(contact.bouncedAt) }),
58
+ contact.statusNote && /* @__PURE__ */ jsx(Fact, { label: "Admin note", value: contact.statusNote })
59
+ ] }),
60
+ /* @__PURE__ */ jsxs(FactList, { columns: 1, children: [
61
+ /* @__PURE__ */ jsx(Fact, { label: "Source", value: SOURCE_LABEL[contact.source] }),
62
+ contact.sourceNote && /* @__PURE__ */ jsx(Fact, { label: "Source note", value: contact.sourceNote }),
63
+ /* @__PURE__ */ jsx(Fact, { label: "Added", value: formatMoment(contact.createdAt) })
64
+ ] })
65
+ ] }) });
66
+ }
67
+ export {
68
+ ContactSummary
69
+ };
70
+ //# sourceMappingURL=contact-summary.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/admin/newsletters/audience/contact-summary.tsx"],"sourcesContent":["import Link from 'next/link';\nimport { Card, Fact, FactList } from '@withpotter/ui-kit';\nimport { StatusBadge } from '@withpotter/components/shared/status-badge';\nimport type { Contact } from '@withpotter/lib/admin-newsletter-contacts-api';\nimport { hrefOf } from '../labels';\nimport {\n CONTACT_STATUS,\n SOURCE_LABEL,\n VIA_LABEL,\n statusReason,\n} from './contacts';\nimport { formatMoment } from '../format-date';\n\n\n/**\n * Where a contact stands and how they got there: the status and its reason,\n * when and how they left or bounced, the note an admin left, and where the\n * address came from. A fact with nothing to say is left out.\n */\nexport function ContactSummary({ contact }: { contact: Contact }) {\n const status = CONTACT_STATUS[contact.status];\n const from = contact.unsubscribedNewsletter;\n\n return (\n <Card>\n <div className=\"flex flex-col gap-4\">\n <FactList columns={1}>\n <Fact label=\"Email\" value={contact.email} />\n <Fact label=\"Name\" value={contact.name} />\n <Fact\n label=\"Status\"\n value={\n <StatusBadge\n status={status.key}\n label={status.label}\n neutral={status.quiet}\n />\n }\n />\n <Fact label=\"Why\" value={statusReason(contact)} />\n {contact.unsubscribedAt && (\n <Fact\n label=\"Unsubscribed on\"\n value={formatMoment(contact.unsubscribedAt)}\n />\n )}\n {contact.unsubscribedVia && (\n <Fact label=\"How\" value={VIA_LABEL[contact.unsubscribedVia]} />\n )}\n {from && (\n <Fact\n label=\"From newsletter\"\n value={\n <Link\n href={hrefOf(from.id)}\n className=\"underline underline-offset-2\"\n >\n {from.subject || 'Untitled newsletter'}\n </Link>\n }\n />\n )}\n {contact.bouncedAt && (\n <Fact label=\"Bounced on\" value={formatMoment(contact.bouncedAt)} />\n )}\n {contact.statusNote && (\n <Fact label=\"Admin note\" value={contact.statusNote} />\n )}\n </FactList>\n <FactList columns={1}>\n <Fact label=\"Source\" value={SOURCE_LABEL[contact.source]} />\n {contact.sourceNote && (\n <Fact label=\"Source note\" value={contact.sourceNote} />\n )}\n <Fact label=\"Added\" value={formatMoment(contact.createdAt)} />\n </FactList>\n </div>\n </Card>\n );\n}\n"],"mappings":"AA0BQ,SACE,KADF;AA1BR,OAAO,UAAU;AACjB,SAAS,MAAM,MAAM,gBAAgB;AACrC,SAAS,mBAAmB;AAE5B,SAAS,cAAc;AACvB;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAS,oBAAoB;AAQtB,SAAS,eAAe,EAAE,QAAQ,GAAyB;AAChE,QAAM,SAAS,eAAe,QAAQ,MAAM;AAC5C,QAAM,OAAO,QAAQ;AAErB,SACE,oBAAC,QACC,+BAAC,SAAI,WAAU,uBACb;AAAA,yBAAC,YAAS,SAAS,GACjB;AAAA,0BAAC,QAAK,OAAM,SAAQ,OAAO,QAAQ,OAAO;AAAA,MAC1C,oBAAC,QAAK,OAAM,QAAO,OAAO,QAAQ,MAAM;AAAA,MACxC;AAAA,QAAC;AAAA;AAAA,UACC,OAAM;AAAA,UACN,OACE;AAAA,YAAC;AAAA;AAAA,cACC,QAAQ,OAAO;AAAA,cACf,OAAO,OAAO;AAAA,cACd,SAAS,OAAO;AAAA;AAAA,UAClB;AAAA;AAAA,MAEJ;AAAA,MACA,oBAAC,QAAK,OAAM,OAAM,OAAO,aAAa,OAAO,GAAG;AAAA,MAC/C,QAAQ,kBACP;AAAA,QAAC;AAAA;AAAA,UACC,OAAM;AAAA,UACN,OAAO,aAAa,QAAQ,cAAc;AAAA;AAAA,MAC5C;AAAA,MAED,QAAQ,mBACP,oBAAC,QAAK,OAAM,OAAM,OAAO,UAAU,QAAQ,eAAe,GAAG;AAAA,MAE9D,QACC;AAAA,QAAC;AAAA;AAAA,UACC,OAAM;AAAA,UACN,OACE;AAAA,YAAC;AAAA;AAAA,cACC,MAAM,OAAO,KAAK,EAAE;AAAA,cACpB,WAAU;AAAA,cAET,eAAK,WAAW;AAAA;AAAA,UACnB;AAAA;AAAA,MAEJ;AAAA,MAED,QAAQ,aACP,oBAAC,QAAK,OAAM,cAAa,OAAO,aAAa,QAAQ,SAAS,GAAG;AAAA,MAElE,QAAQ,cACP,oBAAC,QAAK,OAAM,cAAa,OAAO,QAAQ,YAAY;AAAA,OAExD;AAAA,IACA,qBAAC,YAAS,SAAS,GACjB;AAAA,0BAAC,QAAK,OAAM,UAAS,OAAO,aAAa,QAAQ,MAAM,GAAG;AAAA,MACzD,QAAQ,cACP,oBAAC,QAAK,OAAM,eAAc,OAAO,QAAQ,YAAY;AAAA,MAEvD,oBAAC,QAAK,OAAM,SAAQ,OAAO,aAAa,QAAQ,SAAS,GAAG;AAAA,OAC9D;AAAA,KACF,GACF;AAEJ;","names":[]}