@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,63 @@
1
+ "use client";
2
+ import { jsx } from "react/jsx-runtime";
3
+ import { useState } from "react";
4
+ import { hueFor } from "./tones";
5
+ const initials = (name) => name.split(/[\s@._-]+/).filter(Boolean).slice(0, 2).map((p) => p[0]?.toUpperCase()).join("") || "?";
6
+ function EntityAvatar({
7
+ name,
8
+ src,
9
+ size = 40,
10
+ round = false
11
+ }) {
12
+ const [broken, setBroken] = useState(false);
13
+ const radius = round ? 999 : Math.round(size * 0.28);
14
+ const hue = hueFor(name);
15
+ if (src && !broken) {
16
+ return (
17
+ // eslint-disable-next-line @next/next/no-img-element -- remote merchant logos, any host
18
+ /* @__PURE__ */ jsx(
19
+ "img",
20
+ {
21
+ src,
22
+ alt: "",
23
+ width: size,
24
+ height: size,
25
+ onError: () => setBroken(true),
26
+ style: {
27
+ width: size,
28
+ height: size,
29
+ borderRadius: radius,
30
+ objectFit: "cover",
31
+ flexShrink: 0,
32
+ boxShadow: "0 0 0 1px var(--adm-line)"
33
+ }
34
+ }
35
+ )
36
+ );
37
+ }
38
+ return /* @__PURE__ */ jsx(
39
+ "span",
40
+ {
41
+ "aria-hidden": true,
42
+ style: {
43
+ display: "inline-grid",
44
+ placeItems: "center",
45
+ width: size,
46
+ height: size,
47
+ flexShrink: 0,
48
+ borderRadius: radius,
49
+ // Flat: a brand tint with the initials in the same hue, no gradient.
50
+ background: `color-mix(in srgb, ${hue} 14%, var(--bg-base))`,
51
+ color: `color-mix(in srgb, ${hue} 75%, var(--text-primary))`,
52
+ fontSize: Math.round(size * 0.36),
53
+ fontWeight: 600,
54
+ letterSpacing: "0.02em"
55
+ },
56
+ children: initials(name)
57
+ }
58
+ );
59
+ }
60
+ export {
61
+ EntityAvatar
62
+ };
63
+ //# sourceMappingURL=entity-avatar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/admin/_fx/entity-avatar.tsx"],"sourcesContent":["'use client';\n\nimport { useState } from 'react';\nimport { hueFor } from './tones';\n\nconst initials = (name: string) =>\n name\n .split(/[\\s@._-]+/)\n .filter(Boolean)\n .slice(0, 2)\n .map((p) => p[0]?.toUpperCase())\n .join('') || '?';\n\n/**\n * A merchant or person: their logo when they have one, otherwise initials on\n * a flat brand tint that is always the same for that name.\n */\nexport function EntityAvatar({\n name,\n src,\n size = 40,\n round = false,\n}: {\n name: string;\n src?: string | null;\n size?: number;\n round?: boolean;\n}) {\n const [broken, setBroken] = useState(false);\n const radius = round ? 999 : Math.round(size * 0.28);\n const hue = hueFor(name);\n\n if (src && !broken) {\n return (\n // eslint-disable-next-line @next/next/no-img-element -- remote merchant logos, any host\n <img\n src={src}\n alt=\"\"\n width={size}\n height={size}\n onError={() => setBroken(true)}\n style={{\n width: size,\n height: size,\n borderRadius: radius,\n objectFit: 'cover',\n flexShrink: 0,\n boxShadow: '0 0 0 1px var(--adm-line)',\n }}\n />\n );\n }\n\n return (\n <span\n aria-hidden\n style={{\n display: 'inline-grid',\n placeItems: 'center',\n width: size,\n height: size,\n flexShrink: 0,\n borderRadius: radius,\n // Flat: a brand tint with the initials in the same hue, no gradient.\n background: `color-mix(in srgb, ${hue} 14%, var(--bg-base))`,\n color: `color-mix(in srgb, ${hue} 75%, var(--text-primary))`,\n fontSize: Math.round(size * 0.36),\n fontWeight: 600,\n letterSpacing: '0.02em',\n }}\n >\n {initials(name)}\n </span>\n );\n}\n"],"mappings":";AAmCM;AAjCN,SAAS,gBAAgB;AACzB,SAAS,cAAc;AAEvB,MAAM,WAAW,CAAC,SAChB,KACG,MAAM,WAAW,EACjB,OAAO,OAAO,EACd,MAAM,GAAG,CAAC,EACV,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG,YAAY,CAAC,EAC9B,KAAK,EAAE,KAAK;AAMV,SAAS,aAAa;AAAA,EAC3B;AAAA,EACA;AAAA,EACA,OAAO;AAAA,EACP,QAAQ;AACV,GAKG;AACD,QAAM,CAAC,QAAQ,SAAS,IAAI,SAAS,KAAK;AAC1C,QAAM,SAAS,QAAQ,MAAM,KAAK,MAAM,OAAO,IAAI;AACnD,QAAM,MAAM,OAAO,IAAI;AAEvB,MAAI,OAAO,CAAC,QAAQ;AAClB;AAAA;AAAA,MAEE;AAAA,QAAC;AAAA;AAAA,UACC;AAAA,UACA,KAAI;AAAA,UACJ,OAAO;AAAA,UACP,QAAQ;AAAA,UACR,SAAS,MAAM,UAAU,IAAI;AAAA,UAC7B,OAAO;AAAA,YACL,OAAO;AAAA,YACP,QAAQ;AAAA,YACR,cAAc;AAAA,YACd,WAAW;AAAA,YACX,YAAY;AAAA,YACZ,WAAW;AAAA,UACb;AAAA;AAAA,MACF;AAAA;AAAA,EAEJ;AAEA,SACE;AAAA,IAAC;AAAA;AAAA,MACC,eAAW;AAAA,MACX,OAAO;AAAA,QACL,SAAS;AAAA,QACT,YAAY;AAAA,QACZ,OAAO;AAAA,QACP,QAAQ;AAAA,QACR,YAAY;AAAA,QACZ,cAAc;AAAA;AAAA,QAEd,YAAY,sBAAsB,GAAG;AAAA,QACrC,OAAO,sBAAsB,GAAG;AAAA,QAChC,UAAU,KAAK,MAAM,OAAO,IAAI;AAAA,QAChC,YAAY;AAAA,QACZ,eAAe;AAAA,MACjB;AAAA,MAEC,mBAAS,IAAI;AAAA;AAAA,EAChB;AAEJ;","names":[]}
@@ -0,0 +1,14 @@
1
+ import { Reveal, CountUp, SPRING } from "./motion";
2
+ import { PageTransition } from "./page-transition";
3
+ import { EntityAvatar } from "./entity-avatar";
4
+ import { TONE, hueFor } from "./tones";
5
+ export {
6
+ CountUp,
7
+ EntityAvatar,
8
+ PageTransition,
9
+ Reveal,
10
+ SPRING,
11
+ TONE,
12
+ hueFor
13
+ };
14
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/admin/_fx/index.ts"],"sourcesContent":["export { Reveal, CountUp, SPRING } from './motion';\nexport { PageTransition } from './page-transition';\nexport { EntityAvatar } from './entity-avatar';\nexport { TONE, hueFor } from './tones';\nexport type { Tone } from './tones';\n"],"mappings":"AAAA,SAAS,QAAQ,SAAS,cAAc;AACxC,SAAS,sBAAsB;AAC/B,SAAS,oBAAoB;AAC7B,SAAS,MAAM,cAAc;","names":[]}
@@ -0,0 +1,59 @@
1
+ "use client";
2
+ import { jsx } from "react/jsx-runtime";
3
+ import {
4
+ animate,
5
+ motion,
6
+ useInView,
7
+ useReducedMotionConfig
8
+ } from "motion/react";
9
+ import { useEffect, useRef, useState } from "react";
10
+ const SPRING = {
11
+ fast: { type: "spring", duration: 0.18, bounce: 0 },
12
+ moderate: { type: "spring", duration: 0.32, bounce: 0.08 },
13
+ slow: { type: "spring", duration: 0.48, bounce: 0.14 }
14
+ };
15
+ function Reveal({
16
+ children,
17
+ className,
18
+ as = "div"
19
+ }) {
20
+ const reduce = useReducedMotionConfig();
21
+ const Tag = motion[as];
22
+ return /* @__PURE__ */ jsx(
23
+ Tag,
24
+ {
25
+ className,
26
+ initial: { opacity: reduce ? 1 : 0 },
27
+ animate: { opacity: 1 },
28
+ transition: { duration: 0.16, ease: "easeOut" },
29
+ children
30
+ }
31
+ );
32
+ }
33
+ function CountUp({
34
+ value,
35
+ format = (n) => Math.round(n).toLocaleString()
36
+ }) {
37
+ const ref = useRef(null);
38
+ const inView = useInView(ref, { once: true });
39
+ const reduce = useReducedMotionConfig();
40
+ const [shown, setShown] = useState(reduce ? value : 0);
41
+ const [done, setDone] = useState(Boolean(reduce));
42
+ useEffect(() => {
43
+ if (!inView || done) return;
44
+ const controls = animate(0, value, {
45
+ duration: 0.6,
46
+ ease: [0.2, 0, 0, 1],
47
+ onUpdate: setShown,
48
+ onComplete: () => setDone(true)
49
+ });
50
+ return () => controls.stop();
51
+ }, [inView, done, value]);
52
+ return /* @__PURE__ */ jsx("span", { ref, children: format(done ? value : shown) });
53
+ }
54
+ export {
55
+ CountUp,
56
+ Reveal,
57
+ SPRING
58
+ };
59
+ //# sourceMappingURL=motion.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/admin/_fx/motion.tsx"],"sourcesContent":["'use client';\n\nimport {\n animate,\n motion,\n useInView,\n useReducedMotionConfig,\n} from 'motion/react';\nimport { useEffect, useRef, useState, type ReactNode } from 'react';\n\n/** Spring tiers (Fluid Functionalism): small things fast, big things slower. */\nexport const SPRING = {\n fast: { type: 'spring', duration: 0.18, bounce: 0 },\n moderate: { type: 'spring', duration: 0.32, bounce: 0.08 },\n slow: { type: 'spring', duration: 0.48, bounce: 0.14 },\n} as const;\n\n/**\n * Fades in once when mounted: one short fade, no rise and no stagger, so a\n * grid of cards simply appears. `index` is accepted for older callers and\n * ignored. Reduced motion: no fade.\n */\nexport function Reveal({\n children,\n className,\n as = 'div',\n}: {\n children: ReactNode;\n index?: number;\n className?: string;\n as?: 'div' | 'section' | 'li';\n}) {\n // Follows Settings → Motion (the shell's MotionConfig), then the OS.\n const reduce = useReducedMotionConfig();\n const Tag = motion[as];\n\n return (\n <Tag\n className={className}\n initial={{ opacity: reduce ? 1 : 0 }}\n animate={{ opacity: 1 }}\n transition={{ duration: 0.16, ease: 'easeOut' }}\n >\n {children}\n </Tag>\n );\n}\n\n/**\n * A headline number that counts up once, on the page's first load, when it\n * scrolls into view. After that (refetch, period change) it shows the new\n * figure straight away.\n */\nexport function CountUp({\n value,\n format = (n) => Math.round(n).toLocaleString(),\n}: {\n value: number;\n format?: (n: number) => string;\n}) {\n const ref = useRef<HTMLSpanElement>(null);\n const inView = useInView(ref, { once: true });\n // Follows Settings → Motion (the shell's MotionConfig), then the OS.\n const reduce = useReducedMotionConfig();\n const [shown, setShown] = useState(reduce ? value : 0);\n const [done, setDone] = useState(Boolean(reduce));\n\n useEffect(() => {\n if (!inView || done) return;\n\n const controls = animate(0, value, {\n duration: 0.6,\n ease: [0.2, 0, 0, 1],\n onUpdate: setShown,\n onComplete: () => setDone(true),\n });\n\n return () => controls.stop();\n }, [inView, done, value]);\n\n return <span ref={ref}>{format(done ? value : shown)}</span>;\n}\n"],"mappings":";AAqCI;AAnCJ;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAS,WAAW,QAAQ,gBAAgC;AAGrD,MAAM,SAAS;AAAA,EACpB,MAAM,EAAE,MAAM,UAAU,UAAU,MAAM,QAAQ,EAAE;AAAA,EAClD,UAAU,EAAE,MAAM,UAAU,UAAU,MAAM,QAAQ,KAAK;AAAA,EACzD,MAAM,EAAE,MAAM,UAAU,UAAU,MAAM,QAAQ,KAAK;AACvD;AAOO,SAAS,OAAO;AAAA,EACrB;AAAA,EACA;AAAA,EACA,KAAK;AACP,GAKG;AAED,QAAM,SAAS,uBAAuB;AACtC,QAAM,MAAM,OAAO,EAAE;AAErB,SACE;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA,SAAS,EAAE,SAAS,SAAS,IAAI,EAAE;AAAA,MACnC,SAAS,EAAE,SAAS,EAAE;AAAA,MACtB,YAAY,EAAE,UAAU,MAAM,MAAM,UAAU;AAAA,MAE7C;AAAA;AAAA,EACH;AAEJ;AAOO,SAAS,QAAQ;AAAA,EACtB;AAAA,EACA,SAAS,CAAC,MAAM,KAAK,MAAM,CAAC,EAAE,eAAe;AAC/C,GAGG;AACD,QAAM,MAAM,OAAwB,IAAI;AACxC,QAAM,SAAS,UAAU,KAAK,EAAE,MAAM,KAAK,CAAC;AAE5C,QAAM,SAAS,uBAAuB;AACtC,QAAM,CAAC,OAAO,QAAQ,IAAI,SAAS,SAAS,QAAQ,CAAC;AACrD,QAAM,CAAC,MAAM,OAAO,IAAI,SAAS,QAAQ,MAAM,CAAC;AAEhD,YAAU,MAAM;AACd,QAAI,CAAC,UAAU,KAAM;AAErB,UAAM,WAAW,QAAQ,GAAG,OAAO;AAAA,MACjC,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,GAAG,GAAG,CAAC;AAAA,MACnB,UAAU;AAAA,MACV,YAAY,MAAM,QAAQ,IAAI;AAAA,IAChC,CAAC;AAED,WAAO,MAAM,SAAS,KAAK;AAAA,EAC7B,GAAG,CAAC,QAAQ,MAAM,KAAK,CAAC;AAExB,SAAO,oBAAC,UAAK,KAAW,iBAAO,OAAO,QAAQ,KAAK,GAAE;AACvD;","names":[]}
@@ -0,0 +1,23 @@
1
+ "use client";
2
+ import { jsx } from "react/jsx-runtime";
3
+ import { motion, useReducedMotionConfig } from "motion/react";
4
+ function PageTransition({
5
+ routeKey,
6
+ children
7
+ }) {
8
+ const reduce = useReducedMotionConfig();
9
+ return /* @__PURE__ */ jsx(
10
+ motion.div,
11
+ {
12
+ initial: { opacity: reduce ? 1 : 0 },
13
+ animate: { opacity: 1 },
14
+ transition: { duration: 0.16, ease: "easeOut" },
15
+ children
16
+ },
17
+ routeKey
18
+ );
19
+ }
20
+ export {
21
+ PageTransition
22
+ };
23
+ //# sourceMappingURL=page-transition.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/admin/_fx/page-transition.tsx"],"sourcesContent":["'use client';\n\nimport { motion, useReducedMotionConfig } from 'motion/react';\nimport type { ReactNode } from 'react';\n\n/** Each route fades in briefly under the shell (no slide). */\nexport function PageTransition({\n routeKey,\n children,\n}: {\n routeKey: string;\n children: ReactNode;\n}) {\n // Follows Settings → Motion (the shell's MotionConfig), then the OS.\n const reduce = useReducedMotionConfig();\n\n return (\n <motion.div\n key={routeKey}\n initial={{ opacity: reduce ? 1 : 0 }}\n animate={{ opacity: 1 }}\n transition={{ duration: 0.16, ease: 'easeOut' }}\n >\n {children}\n </motion.div>\n );\n}\n"],"mappings":";AAiBI;AAfJ,SAAS,QAAQ,8BAA8B;AAIxC,SAAS,eAAe;AAAA,EAC7B;AAAA,EACA;AACF,GAGG;AAED,QAAM,SAAS,uBAAuB;AAEtC,SACE;AAAA,IAAC,OAAO;AAAA,IAAP;AAAA,MAEC,SAAS,EAAE,SAAS,SAAS,IAAI,EAAE;AAAA,MACnC,SAAS,EAAE,SAAS,EAAE;AAAA,MACtB,YAAY,EAAE,UAAU,MAAM,MAAM,UAAU;AAAA,MAE7C;AAAA;AAAA,IALI;AAAA,EAMP;AAEJ;","names":[]}
@@ -0,0 +1,28 @@
1
+ const tint = (token, pct = 10) => `color-mix(in srgb, ${token} ${pct}%, transparent)`;
2
+ const TONE = {
3
+ brand: { fg: "var(--brand-500)", bg: tint("var(--brand-500)") },
4
+ money: { fg: "var(--brand-700)", bg: tint("var(--brand-700)") },
5
+ ops: { fg: "var(--brand-400)", bg: tint("var(--brand-400)", 12) },
6
+ inbox: { fg: "var(--brand-600)", bg: tint("var(--brand-600)") },
7
+ platform: { fg: "var(--brand-800)", bg: tint("var(--brand-800)") },
8
+ risk: { fg: "var(--error)", bg: tint("var(--error)") }
9
+ };
10
+ const HUES = [
11
+ "var(--brand-400)",
12
+ "var(--brand-500)",
13
+ "var(--brand-600)",
14
+ "var(--brand-700)",
15
+ "var(--brand-800)",
16
+ "var(--brand-300)"
17
+ ];
18
+ function hueFor(name) {
19
+ let hash = 0;
20
+ for (let i = 0; i < name.length; i++)
21
+ hash = hash * 31 + name.charCodeAt(i) | 0;
22
+ return HUES[Math.abs(hash) % HUES.length];
23
+ }
24
+ export {
25
+ TONE,
26
+ hueFor
27
+ };
28
+ //# sourceMappingURL=tones.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/admin/_fx/tones.ts"],"sourcesContent":["/**\n * Section tones, drawn ONLY from the Box brand: the blue scale and ink.\n * Colour says which part of the console you are in, quietly; it never\n * shouts (no greens, violets or ambers as decoration). Red is kept for\n * risk because it carries meaning, not decoration.\n */\nexport type Tone = 'brand' | 'money' | 'ops' | 'inbox' | 'platform' | 'risk';\n\nconst tint = (token: string, pct = 10) =>\n `color-mix(in srgb, ${token} ${pct}%, transparent)`;\n\nexport const TONE: Record<Tone, { fg: string; bg: string }> = {\n brand: { fg: 'var(--brand-500)', bg: tint('var(--brand-500)') },\n money: { fg: 'var(--brand-700)', bg: tint('var(--brand-700)') },\n ops: { fg: 'var(--brand-400)', bg: tint('var(--brand-400)', 12) },\n inbox: { fg: 'var(--brand-600)', bg: tint('var(--brand-600)') },\n platform: { fg: 'var(--brand-800)', bg: tint('var(--brand-800)') },\n risk: { fg: 'var(--error)', bg: tint('var(--error)') },\n};\n\n/** Brand-family hues for avatars: a stable shade per name. */\nconst HUES = [\n 'var(--brand-400)',\n 'var(--brand-500)',\n 'var(--brand-600)',\n 'var(--brand-700)',\n 'var(--brand-800)',\n 'var(--brand-300)',\n];\n\nexport function hueFor(name: string): string {\n let hash = 0;\n\n for (let i = 0; i < name.length; i++)\n hash = (hash * 31 + name.charCodeAt(i)) | 0;\n\n return HUES[Math.abs(hash) % HUES.length];\n}\n"],"mappings":"AAQA,MAAM,OAAO,CAAC,OAAe,MAAM,OACjC,sBAAsB,KAAK,IAAI,GAAG;AAE7B,MAAM,OAAiD;AAAA,EAC5D,OAAO,EAAE,IAAI,oBAAoB,IAAI,KAAK,kBAAkB,EAAE;AAAA,EAC9D,OAAO,EAAE,IAAI,oBAAoB,IAAI,KAAK,kBAAkB,EAAE;AAAA,EAC9D,KAAK,EAAE,IAAI,oBAAoB,IAAI,KAAK,oBAAoB,EAAE,EAAE;AAAA,EAChE,OAAO,EAAE,IAAI,oBAAoB,IAAI,KAAK,kBAAkB,EAAE;AAAA,EAC9D,UAAU,EAAE,IAAI,oBAAoB,IAAI,KAAK,kBAAkB,EAAE;AAAA,EACjE,MAAM,EAAE,IAAI,gBAAgB,IAAI,KAAK,cAAc,EAAE;AACvD;AAGA,MAAM,OAAO;AAAA,EACX;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAEO,SAAS,OAAO,MAAsB;AAC3C,MAAI,OAAO;AAEX,WAAS,IAAI,GAAG,IAAI,KAAK,QAAQ;AAC/B,WAAQ,OAAO,KAAK,KAAK,WAAW,CAAC,IAAK;AAE5C,SAAO,KAAK,KAAK,IAAI,IAAI,IAAI,KAAK,MAAM;AAC1C;","names":[]}
@@ -0,0 +1 @@
1
+ export * from './_fx/index.js';
@@ -0,0 +1,27 @@
1
+ "use client";
2
+ import { jsx } from "react/jsx-runtime";
3
+ import {
4
+ useAdminInbox,
5
+ useInboxAlerts
6
+ } from "./use-admin-inbox";
7
+ import styles from "./nav-badge.module.css";
8
+ function NavBadge({
9
+ kind,
10
+ canSupport
11
+ }) {
12
+ const count = useAdminInbox(canSupport)[kind];
13
+ if (!count) return null;
14
+ return /* @__PURE__ */ jsx("span", { className: styles.badge, "aria-label": `${count} new`, children: count > 99 ? "99+" : count });
15
+ }
16
+ function InboxAlerts({
17
+ canSupport,
18
+ pathname
19
+ }) {
20
+ useInboxAlerts(canSupport, pathname);
21
+ return null;
22
+ }
23
+ export {
24
+ InboxAlerts,
25
+ NavBadge
26
+ };
27
+ //# sourceMappingURL=nav-badge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/admin/_inbox/nav-badge.tsx"],"sourcesContent":["'use client';\n\nimport {\n useAdminInbox,\n useInboxAlerts,\n type AdminInbox,\n} from './use-admin-inbox';\nimport styles from './nav-badge.module.css';\n\n/** A small count beside a nav label; hidden at zero. */\nexport function NavBadge({\n kind,\n canSupport,\n}: {\n kind: keyof AdminInbox;\n canSupport: boolean;\n}) {\n const count = useAdminInbox(canSupport)[kind];\n\n if (!count) return null;\n\n return (\n <span className={styles.badge} aria-label={`${count} new`}>\n {count > 99 ? '99+' : count}\n </span>\n );\n}\n\n/** Renders nothing; runs the new-item toast and tab-title count once. */\nexport function InboxAlerts({\n canSupport,\n pathname,\n}: {\n canSupport: boolean;\n pathname: string;\n}) {\n useInboxAlerts(canSupport, pathname);\n\n return null;\n}\n"],"mappings":";AAsBI;AApBJ;AAAA,EACE;AAAA,EACA;AAAA,OAEK;AACP,OAAO,YAAY;AAGZ,SAAS,SAAS;AAAA,EACvB;AAAA,EACA;AACF,GAGG;AACD,QAAM,QAAQ,cAAc,UAAU,EAAE,IAAI;AAE5C,MAAI,CAAC,MAAO,QAAO;AAEnB,SACE,oBAAC,UAAK,WAAW,OAAO,OAAO,cAAY,GAAG,KAAK,QAChD,kBAAQ,KAAK,QAAQ,OACxB;AAEJ;AAGO,SAAS,YAAY;AAAA,EAC1B;AAAA,EACA;AACF,GAGG;AACD,iBAAe,YAAY,QAAQ;AAEnC,SAAO;AACT;","names":[]}
@@ -0,0 +1,15 @@
1
+ .badge {
2
+ display: inline-grid;
3
+ min-width: 18px;
4
+ height: 18px;
5
+ margin-left: 4px;
6
+ padding: 0 4px;
7
+ place-items: center;
8
+ border-radius: 999px;
9
+ background: var(--error);
10
+ color: var(--adm-on-accent);
11
+ font-size: 11px;
12
+ font-weight: 600;
13
+ font-variant-numeric: tabular-nums;
14
+ line-height: 1;
15
+ }
@@ -0,0 +1,118 @@
1
+ "use client";
2
+ import { useCallback, useEffect, useRef, useSyncExternalStore } from "react";
3
+ import { useQuery } from "@tanstack/react-query";
4
+ import { useToast } from "@withpotter/ui-kit";
5
+ import { adminFeedbackApi } from "@withpotter/lib/admin-feedback-api";
6
+ import {
7
+ countUnseen,
8
+ inboxSeenStore,
9
+ newest
10
+ } from "@withpotter/lib/admin-inbox-seen";
11
+ import { adminServiceOperationsApi } from "@withpotter/lib/admin-service-operations-api";
12
+ import { playSound } from "@withpotter/lib/sound";
13
+ import { announce, pollMs, useSettings } from "../_settings";
14
+ const PAGE = 50;
15
+ const INBOX_ROUTES = {
16
+ support: "/admin/support",
17
+ feedback: "/admin/feedback"
18
+ };
19
+ async function loadStamps(canSupport) {
20
+ const cases = (status) => canSupport ? adminServiceOperationsApi.listCases({ status, pageSize: PAGE }).catch(() => null) : null;
21
+ const [open, waiting, feedback] = await Promise.all([
22
+ cases("open"),
23
+ cases("waiting_on_potter"),
24
+ adminFeedbackApi.list({ status: "open", pageSize: PAGE }).catch(() => null)
25
+ ]);
26
+ return {
27
+ support: [...open?.rows ?? [], ...waiting?.rows ?? []].map(
28
+ (c) => c.updatedAt
29
+ ),
30
+ feedback: (feedback?.items ?? []).map((f) => f.createdAt)
31
+ };
32
+ }
33
+ const EMPTY = { support: [], feedback: [] };
34
+ function useStamps(canSupport) {
35
+ const settings = useSettings();
36
+ const query = useQuery({
37
+ queryKey: ["platform-admin", "inbox", canSupport],
38
+ queryFn: () => loadStamps(canSupport),
39
+ refetchInterval: pollMs(settings),
40
+ refetchOnWindowFocus: true
41
+ });
42
+ return query.data;
43
+ }
44
+ function useAdminInbox(canSupport) {
45
+ const stamps = useStamps(canSupport) ?? EMPTY;
46
+ const { notifySupport, notifyFeedback } = useSettings();
47
+ const seen = useSyncExternalStore(
48
+ inboxSeenStore.subscribe,
49
+ inboxSeenStore.snapshot,
50
+ inboxSeenStore.serverSnapshot
51
+ );
52
+ return {
53
+ support: notifySupport === "off" ? 0 : countUnseen(stamps.support, seen.support),
54
+ feedback: notifyFeedback === "off" ? 0 : countUnseen(stamps.feedback, seen.feedback)
55
+ };
56
+ }
57
+ function useMarkInboxSeen(canSupport) {
58
+ const stamps = useStamps(canSupport);
59
+ return useCallback(() => {
60
+ if (!stamps) return;
61
+ Object.keys(INBOX_ROUTES).forEach((kind) => {
62
+ const latest = newest(stamps[kind]);
63
+ if (latest) inboxSeenStore.markSeen(kind, latest);
64
+ });
65
+ }, [stamps]);
66
+ }
67
+ function useInboxAlerts(canSupport, pathname) {
68
+ const { toast } = useToast();
69
+ const stamps = useStamps(canSupport);
70
+ const inbox = useAdminInbox(canSupport);
71
+ const settings = useSettings();
72
+ const previous = useRef(null);
73
+ useEffect(() => {
74
+ if (!stamps || settings.markSeen === "manual") return;
75
+ Object.keys(INBOX_ROUTES).forEach((kind) => {
76
+ const latest = newest(stamps[kind]);
77
+ if (latest && pathname.startsWith(INBOX_ROUTES[kind])) {
78
+ inboxSeenStore.markSeen(kind, latest);
79
+ }
80
+ });
81
+ }, [stamps, pathname, settings.markSeen]);
82
+ useEffect(() => {
83
+ if (!stamps) return;
84
+ const before = previous.current;
85
+ previous.current = inbox;
86
+ if (!before) return;
87
+ const newSupport = inbox.support - before.support;
88
+ const newFeedback = inbox.feedback - before.feedback;
89
+ if (newSupport > 0) {
90
+ if (settings.sound === "soft") playSound("potter");
91
+ announce(`${newSupport} new support case${newSupport === 1 ? "" : "s"}`);
92
+ }
93
+ if (newFeedback > 0) announce(`${newFeedback} new product feedback`);
94
+ if (newSupport > 0 && settings.notifySupport === "toast") {
95
+ toast({
96
+ title: `${newSupport} new support case${newSupport === 1 ? "" : "s"}`,
97
+ description: "A merchant is waiting on a reply. Open Support."
98
+ });
99
+ }
100
+ if (newFeedback > 0 && settings.notifyFeedback === "toast") {
101
+ toast({
102
+ title: `${newFeedback} new product feedback`,
103
+ description: "Open Product feedback to read it."
104
+ });
105
+ }
106
+ }, [stamps, inbox, toast, settings]);
107
+ useEffect(() => {
108
+ const total = settings.titleCount ? inbox.support + inbox.feedback : 0;
109
+ const base = document.title.replace(/^\(\d+\)\s*/, "");
110
+ document.title = total ? `(${total}) ${base}` : base;
111
+ }, [inbox, settings.titleCount]);
112
+ }
113
+ export {
114
+ useAdminInbox,
115
+ useInboxAlerts,
116
+ useMarkInboxSeen
117
+ };
118
+ //# sourceMappingURL=use-admin-inbox.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/admin/_inbox/use-admin-inbox.ts"],"sourcesContent":["'use client';\n\nimport { useCallback, useEffect, useRef, useSyncExternalStore } from 'react';\nimport { useQuery } from '@tanstack/react-query';\nimport { useToast } from '@withpotter/ui-kit';\nimport { adminFeedbackApi } from '@withpotter/lib/admin-feedback-api';\nimport {\n countUnseen,\n inboxSeenStore,\n newest,\n type InboxKind,\n} from '@withpotter/lib/admin-inbox-seen';\nimport { adminServiceOperationsApi } from '@withpotter/lib/admin-service-operations-api';\nimport { playSound } from '@withpotter/lib/sound';\nimport { announce, pollMs, useSettings } from '../_settings';\n\n/** Waiting items read per inbox; more than this is a backlog, not news. */\nconst PAGE = 50;\n\n/** Opening one of these pages means the admin has seen that inbox. */\nconst INBOX_ROUTES: Record<InboxKind, string> = {\n support: '/admin/support',\n feedback: '/admin/feedback',\n};\n\nexport type AdminInbox = Record<InboxKind, number>;\n\n/** When each waiting item last changed (a merchant reply bumps a case). */\ntype Stamps = Record<InboxKind, string[]>;\n\nasync function loadStamps(canSupport: boolean): Promise<Stamps> {\n const cases = (status: 'open' | 'waiting_on_potter') =>\n canSupport\n ? adminServiceOperationsApi\n .listCases({ status, pageSize: PAGE })\n .catch(() => null)\n : null;\n const [open, waiting, feedback] = await Promise.all([\n cases('open'),\n cases('waiting_on_potter'),\n adminFeedbackApi.list({ status: 'open', pageSize: PAGE }).catch(() => null),\n ]);\n\n return {\n support: [...(open?.rows ?? []), ...(waiting?.rows ?? [])].map(\n (c) => c.updatedAt,\n ),\n feedback: (feedback?.items ?? []).map((f) => f.createdAt),\n };\n}\n\nconst EMPTY: Stamps = { support: [], feedback: [] };\n\n/** Polled as often as the admin chose in Settings → Notifications. */\nfunction useStamps(canSupport: boolean) {\n const settings = useSettings();\n const query = useQuery({\n queryKey: ['platform-admin', 'inbox', canSupport],\n queryFn: () => loadStamps(canSupport),\n refetchInterval: pollMs(settings),\n refetchOnWindowFocus: true,\n });\n\n return query.data;\n}\n\n/** New since this admin last opened each inbox; an inbox set to Off counts 0. */\nexport function useAdminInbox(canSupport: boolean): AdminInbox {\n const stamps = useStamps(canSupport) ?? EMPTY;\n const { notifySupport, notifyFeedback } = useSettings();\n const seen = useSyncExternalStore(\n inboxSeenStore.subscribe,\n inboxSeenStore.snapshot,\n inboxSeenStore.serverSnapshot,\n );\n\n return {\n support:\n notifySupport === 'off' ? 0 : countUnseen(stamps.support, seen.support),\n feedback:\n notifyFeedback === 'off'\n ? 0\n : countUnseen(stamps.feedback, seen.feedback),\n };\n}\n\n/** Marks both inboxes seen now: the manual half of \"Mark inbox seen\". */\nexport function useMarkInboxSeen(canSupport: boolean) {\n const stamps = useStamps(canSupport);\n return useCallback(() => {\n if (!stamps) return;\n (Object.keys(INBOX_ROUTES) as InboxKind[]).forEach((kind) => {\n const latest = newest(stamps[kind]);\n if (latest) inboxSeenStore.markSeen(kind, latest);\n });\n }, [stamps]);\n}\n\n/**\n * Mounted once in the admin shell. Being on Support or Product feedback marks\n * that inbox seen (and keeps it seen as items arrive); otherwise a rise in\n * unseen items toasts, and the total rides in the browser tab title.\n */\nexport function useInboxAlerts(canSupport: boolean, pathname: string) {\n const { toast } = useToast();\n const stamps = useStamps(canSupport);\n const inbox = useAdminInbox(canSupport);\n const settings = useSettings();\n const previous = useRef<AdminInbox | null>(null);\n\n useEffect(() => {\n if (!stamps || settings.markSeen === 'manual') return;\n\n (Object.keys(INBOX_ROUTES) as InboxKind[]).forEach((kind) => {\n const latest = newest(stamps[kind]);\n\n if (latest && pathname.startsWith(INBOX_ROUTES[kind])) {\n inboxSeenStore.markSeen(kind, latest);\n }\n });\n }, [stamps, pathname, settings.markSeen]);\n\n useEffect(() => {\n if (!stamps) return;\n\n const before = previous.current;\n\n previous.current = inbox;\n\n if (!before) return;\n\n const newSupport = inbox.support - before.support;\n const newFeedback = inbox.feedback - before.feedback;\n\n if (newSupport > 0) {\n if (settings.sound === 'soft') playSound('potter');\n announce(`${newSupport} new support case${newSupport === 1 ? '' : 's'}`);\n }\n\n if (newFeedback > 0) announce(`${newFeedback} new product feedback`);\n\n if (newSupport > 0 && settings.notifySupport === 'toast') {\n toast({\n title: `${newSupport} new support case${newSupport === 1 ? '' : 's'}`,\n description: 'A merchant is waiting on a reply. Open Support.',\n });\n }\n\n if (newFeedback > 0 && settings.notifyFeedback === 'toast') {\n toast({\n title: `${newFeedback} new product feedback`,\n description: 'Open Product feedback to read it.',\n });\n }\n }, [stamps, inbox, toast, settings]);\n\n useEffect(() => {\n const total = settings.titleCount ? inbox.support + inbox.feedback : 0;\n const base = document.title.replace(/^\\(\\d+\\)\\s*/, '');\n\n document.title = total ? `(${total}) ${base}` : base;\n }, [inbox, settings.titleCount]);\n}\n"],"mappings":";AAEA,SAAS,aAAa,WAAW,QAAQ,4BAA4B;AACrE,SAAS,gBAAgB;AACzB,SAAS,gBAAgB;AACzB,SAAS,wBAAwB;AACjC;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,OAEK;AACP,SAAS,iCAAiC;AAC1C,SAAS,iBAAiB;AAC1B,SAAS,UAAU,QAAQ,mBAAmB;AAG9C,MAAM,OAAO;AAGb,MAAM,eAA0C;AAAA,EAC9C,SAAS;AAAA,EACT,UAAU;AACZ;AAOA,eAAe,WAAW,YAAsC;AAC9D,QAAM,QAAQ,CAAC,WACb,aACI,0BACG,UAAU,EAAE,QAAQ,UAAU,KAAK,CAAC,EACpC,MAAM,MAAM,IAAI,IACnB;AACN,QAAM,CAAC,MAAM,SAAS,QAAQ,IAAI,MAAM,QAAQ,IAAI;AAAA,IAClD,MAAM,MAAM;AAAA,IACZ,MAAM,mBAAmB;AAAA,IACzB,iBAAiB,KAAK,EAAE,QAAQ,QAAQ,UAAU,KAAK,CAAC,EAAE,MAAM,MAAM,IAAI;AAAA,EAC5E,CAAC;AAED,SAAO;AAAA,IACL,SAAS,CAAC,GAAI,MAAM,QAAQ,CAAC,GAAI,GAAI,SAAS,QAAQ,CAAC,CAAE,EAAE;AAAA,MACzD,CAAC,MAAM,EAAE;AAAA,IACX;AAAA,IACA,WAAW,UAAU,SAAS,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,SAAS;AAAA,EAC1D;AACF;AAEA,MAAM,QAAgB,EAAE,SAAS,CAAC,GAAG,UAAU,CAAC,EAAE;AAGlD,SAAS,UAAU,YAAqB;AACtC,QAAM,WAAW,YAAY;AAC7B,QAAM,QAAQ,SAAS;AAAA,IACrB,UAAU,CAAC,kBAAkB,SAAS,UAAU;AAAA,IAChD,SAAS,MAAM,WAAW,UAAU;AAAA,IACpC,iBAAiB,OAAO,QAAQ;AAAA,IAChC,sBAAsB;AAAA,EACxB,CAAC;AAED,SAAO,MAAM;AACf;AAGO,SAAS,cAAc,YAAiC;AAC7D,QAAM,SAAS,UAAU,UAAU,KAAK;AACxC,QAAM,EAAE,eAAe,eAAe,IAAI,YAAY;AACtD,QAAM,OAAO;AAAA,IACX,eAAe;AAAA,IACf,eAAe;AAAA,IACf,eAAe;AAAA,EACjB;AAEA,SAAO;AAAA,IACL,SACE,kBAAkB,QAAQ,IAAI,YAAY,OAAO,SAAS,KAAK,OAAO;AAAA,IACxE,UACE,mBAAmB,QACf,IACA,YAAY,OAAO,UAAU,KAAK,QAAQ;AAAA,EAClD;AACF;AAGO,SAAS,iBAAiB,YAAqB;AACpD,QAAM,SAAS,UAAU,UAAU;AACnC,SAAO,YAAY,MAAM;AACvB,QAAI,CAAC,OAAQ;AACb,IAAC,OAAO,KAAK,YAAY,EAAkB,QAAQ,CAAC,SAAS;AAC3D,YAAM,SAAS,OAAO,OAAO,IAAI,CAAC;AAClC,UAAI,OAAQ,gBAAe,SAAS,MAAM,MAAM;AAAA,IAClD,CAAC;AAAA,EACH,GAAG,CAAC,MAAM,CAAC;AACb;AAOO,SAAS,eAAe,YAAqB,UAAkB;AACpE,QAAM,EAAE,MAAM,IAAI,SAAS;AAC3B,QAAM,SAAS,UAAU,UAAU;AACnC,QAAM,QAAQ,cAAc,UAAU;AACtC,QAAM,WAAW,YAAY;AAC7B,QAAM,WAAW,OAA0B,IAAI;AAE/C,YAAU,MAAM;AACd,QAAI,CAAC,UAAU,SAAS,aAAa,SAAU;AAE/C,IAAC,OAAO,KAAK,YAAY,EAAkB,QAAQ,CAAC,SAAS;AAC3D,YAAM,SAAS,OAAO,OAAO,IAAI,CAAC;AAElC,UAAI,UAAU,SAAS,WAAW,aAAa,IAAI,CAAC,GAAG;AACrD,uBAAe,SAAS,MAAM,MAAM;AAAA,MACtC;AAAA,IACF,CAAC;AAAA,EACH,GAAG,CAAC,QAAQ,UAAU,SAAS,QAAQ,CAAC;AAExC,YAAU,MAAM;AACd,QAAI,CAAC,OAAQ;AAEb,UAAM,SAAS,SAAS;AAExB,aAAS,UAAU;AAEnB,QAAI,CAAC,OAAQ;AAEb,UAAM,aAAa,MAAM,UAAU,OAAO;AAC1C,UAAM,cAAc,MAAM,WAAW,OAAO;AAE5C,QAAI,aAAa,GAAG;AAClB,UAAI,SAAS,UAAU,OAAQ,WAAU,QAAQ;AACjD,eAAS,GAAG,UAAU,oBAAoB,eAAe,IAAI,KAAK,GAAG,EAAE;AAAA,IACzE;AAEA,QAAI,cAAc,EAAG,UAAS,GAAG,WAAW,uBAAuB;AAEnE,QAAI,aAAa,KAAK,SAAS,kBAAkB,SAAS;AACxD,YAAM;AAAA,QACJ,OAAO,GAAG,UAAU,oBAAoB,eAAe,IAAI,KAAK,GAAG;AAAA,QACnE,aAAa;AAAA,MACf,CAAC;AAAA,IACH;AAEA,QAAI,cAAc,KAAK,SAAS,mBAAmB,SAAS;AAC1D,YAAM;AAAA,QACJ,OAAO,GAAG,WAAW;AAAA,QACrB,aAAa;AAAA,MACf,CAAC;AAAA,IACH;AAAA,EACF,GAAG,CAAC,QAAQ,OAAO,OAAO,QAAQ,CAAC;AAEnC,YAAU,MAAM;AACd,UAAM,QAAQ,SAAS,aAAa,MAAM,UAAU,MAAM,WAAW;AACrE,UAAM,OAAO,SAAS,MAAM,QAAQ,eAAe,EAAE;AAErD,aAAS,QAAQ,QAAQ,IAAI,KAAK,KAAK,IAAI,KAAK;AAAA,EAClD,GAAG,CAAC,OAAO,SAAS,UAAU,CAAC;AACjC;","names":[]}
@@ -0,0 +1,65 @@
1
+ "use client";
2
+ import { jsx, jsxs } from "react/jsx-runtime";
3
+ import Link from "next/link";
4
+ import { Button, Card } from "@withpotter/ui-kit";
5
+ import { usePlatformTenant } from "../hooks";
6
+ import { CurrencyFilter, currenciesIn, useCurrencyParam } from "../_ui";
7
+ import { BusinessPicker } from "./business-picker";
8
+ import { LedgerBody } from "./ledger-body";
9
+ import { useMoneyPermissions } from "./permissions";
10
+ import { useTenantParam } from "./tenant-param";
11
+ import { useLedgerWallet } from "./use-ledger";
12
+ import styles from "./ledger.module.css";
13
+ function BusinessLedger() {
14
+ const [tenantId, setTenantId] = useTenantParam();
15
+ const { readWalletHint } = useMoneyPermissions();
16
+ const tenant = usePlatformTenant(tenantId);
17
+ const name = tenant.data?.businessName ?? "";
18
+ const [currency, setCurrency] = useCurrencyParam();
19
+ const wallet = useLedgerWallet(tenantId);
20
+ const currencies = currenciesIn(wallet.data?.balances.map((b) => b.currency));
21
+ if (!tenantId)
22
+ return /* @__PURE__ */ jsxs(Card, { children: [
23
+ /* @__PURE__ */ jsx(BusinessPicker, { picked: null, onPick: (t) => setTenantId(t.id) }),
24
+ readWalletHint && /* @__PURE__ */ jsx("span", { className: "adm-caption", children: readWalletHint })
25
+ ] });
26
+ return /* @__PURE__ */ jsxs("div", { children: [
27
+ /* @__PURE__ */ jsxs("div", { className: styles.chosen, children: [
28
+ /* @__PURE__ */ jsx("h3", { className: styles.chosenName, children: name || (tenant.isLoading ? "Loading business\u2026" : "Business") }),
29
+ /* @__PURE__ */ jsxs("div", { className: styles.chosenActions, children: [
30
+ /* @__PURE__ */ jsx(
31
+ CurrencyFilter,
32
+ {
33
+ value: currency,
34
+ onChange: setCurrency,
35
+ currencies
36
+ }
37
+ ),
38
+ /* @__PURE__ */ jsx(
39
+ Link,
40
+ {
41
+ href: `/admin/tenants/${tenantId}`,
42
+ className: "text-brand-500 hover:underline",
43
+ children: "Open profile"
44
+ }
45
+ ),
46
+ /* @__PURE__ */ jsx(Button, { variant: "secondary", onClick: () => setTenantId(null), children: "Change business" })
47
+ ] })
48
+ ] }),
49
+ readWalletHint && /* @__PURE__ */ jsx("p", { className: "adm-caption", children: readWalletHint }),
50
+ /* @__PURE__ */ jsx(
51
+ LedgerBody,
52
+ {
53
+ tenantId,
54
+ business: name,
55
+ currency,
56
+ onCurrency: setCurrency
57
+ },
58
+ tenantId
59
+ )
60
+ ] });
61
+ }
62
+ export {
63
+ BusinessLedger
64
+ };
65
+ //# sourceMappingURL=business-ledger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/admin/_money/business-ledger.tsx"],"sourcesContent":["'use client';\n\nimport Link from 'next/link';\nimport { Button, Card } from '@withpotter/ui-kit';\nimport { usePlatformTenant } from '../hooks';\nimport { CurrencyFilter, currenciesIn, useCurrencyParam } from '../_ui';\nimport { BusinessPicker } from './business-picker';\nimport { LedgerBody } from './ledger-body';\nimport { useMoneyPermissions } from './permissions';\nimport { useTenantParam } from './tenant-param';\nimport { useLedgerWallet } from './use-ledger';\nimport styles from './ledger.module.css';\n\n/**\n * One business's ledger: pick it, then read its balances, recent entries,\n * a statement for any window, and the holds on it. The ledger itself is the\n * merchant page's (`LedgerBody`), shared, not copied.\n */\nexport function BusinessLedger() {\n const [tenantId, setTenantId] = useTenantParam();\n const { readWalletHint } = useMoneyPermissions();\n // The name, for the heading and the CSV, survives a refresh this way.\n const tenant = usePlatformTenant(tenantId);\n const name = tenant.data?.businessName ?? '';\n const [currency, setCurrency] = useCurrencyParam();\n // The body's own wallet read (one shared query): its currencies are the\n // filter's choices.\n const wallet = useLedgerWallet(tenantId);\n const currencies = currenciesIn(wallet.data?.balances.map((b) => b.currency));\n\n if (!tenantId)\n return (\n <Card>\n <BusinessPicker picked={null} onPick={(t) => setTenantId(t.id)} />\n {readWalletHint && (\n <span className=\"adm-caption\">{readWalletHint}</span>\n )}\n </Card>\n );\n\n return (\n <div>\n <div className={styles.chosen}>\n <h3 className={styles.chosenName}>\n {name || (tenant.isLoading ? 'Loading business…' : 'Business')}\n </h3>\n <div className={styles.chosenActions}>\n <CurrencyFilter\n value={currency}\n onChange={setCurrency}\n currencies={currencies}\n />\n <Link\n href={`/admin/tenants/${tenantId}`}\n className=\"text-brand-500 hover:underline\"\n >\n Open profile\n </Link>\n <Button variant=\"secondary\" onClick={() => setTenantId(null)}>\n Change business\n </Button>\n </div>\n </div>\n {readWalletHint && <p className=\"adm-caption\">{readWalletHint}</p>}\n <LedgerBody\n key={tenantId}\n tenantId={tenantId}\n business={name}\n currency={currency}\n onCurrency={setCurrency}\n />\n </div>\n );\n}\n"],"mappings":";AAgCM,SACE,KADF;AA9BN,OAAO,UAAU;AACjB,SAAS,QAAQ,YAAY;AAC7B,SAAS,yBAAyB;AAClC,SAAS,gBAAgB,cAAc,wBAAwB;AAC/D,SAAS,sBAAsB;AAC/B,SAAS,kBAAkB;AAC3B,SAAS,2BAA2B;AACpC,SAAS,sBAAsB;AAC/B,SAAS,uBAAuB;AAChC,OAAO,YAAY;AAOZ,SAAS,iBAAiB;AAC/B,QAAM,CAAC,UAAU,WAAW,IAAI,eAAe;AAC/C,QAAM,EAAE,eAAe,IAAI,oBAAoB;AAE/C,QAAM,SAAS,kBAAkB,QAAQ;AACzC,QAAM,OAAO,OAAO,MAAM,gBAAgB;AAC1C,QAAM,CAAC,UAAU,WAAW,IAAI,iBAAiB;AAGjD,QAAM,SAAS,gBAAgB,QAAQ;AACvC,QAAM,aAAa,aAAa,OAAO,MAAM,SAAS,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC;AAE5E,MAAI,CAAC;AACH,WACE,qBAAC,QACC;AAAA,0BAAC,kBAAe,QAAQ,MAAM,QAAQ,CAAC,MAAM,YAAY,EAAE,EAAE,GAAG;AAAA,MAC/D,kBACC,oBAAC,UAAK,WAAU,eAAe,0BAAe;AAAA,OAElD;AAGJ,SACE,qBAAC,SACC;AAAA,yBAAC,SAAI,WAAW,OAAO,QACrB;AAAA,0BAAC,QAAG,WAAW,OAAO,YACnB,mBAAS,OAAO,YAAY,2BAAsB,aACrD;AAAA,MACA,qBAAC,SAAI,WAAW,OAAO,eACrB;AAAA;AAAA,UAAC;AAAA;AAAA,YACC,OAAO;AAAA,YACP,UAAU;AAAA,YACV;AAAA;AAAA,QACF;AAAA,QACA;AAAA,UAAC;AAAA;AAAA,YACC,MAAM,kBAAkB,QAAQ;AAAA,YAChC,WAAU;AAAA,YACX;AAAA;AAAA,QAED;AAAA,QACA,oBAAC,UAAO,SAAQ,aAAY,SAAS,MAAM,YAAY,IAAI,GAAG,6BAE9D;AAAA,SACF;AAAA,OACF;AAAA,IACC,kBAAkB,oBAAC,OAAE,WAAU,eAAe,0BAAe;AAAA,IAC9D;AAAA,MAAC;AAAA;AAAA,QAEC;AAAA,QACA,UAAU;AAAA,QACV;AAAA,QACA,YAAY;AAAA;AAAA,MAJP;AAAA,IAKP;AAAA,KACF;AAEJ;","names":[]}
@@ -0,0 +1,53 @@
1
+ "use client";
2
+ import { jsx, jsxs } from "react/jsx-runtime";
3
+ import { useDeferredValue, useState } from "react";
4
+ import { Button, SearchField } from "@withpotter/ui-kit";
5
+ import { Skeleton } from "../_ui";
6
+ import { usePlatformTenants } from "../hooks";
7
+ import { FinderRow } from "./finder-row";
8
+ import styles from "./page.module.css";
9
+ function BusinessPicker({
10
+ picked,
11
+ onPick
12
+ }) {
13
+ const [search, setSearch] = useState("");
14
+ const term = useDeferredValue(search.trim());
15
+ const { data, isLoading, isError, refetch } = usePlatformTenants({
16
+ page: 1,
17
+ pageSize: 5,
18
+ search: term || void 0
19
+ });
20
+ const rows = data?.rows ?? [];
21
+ return /* @__PURE__ */ jsxs("div", { style: { display: "grid", gap: 8 }, children: [
22
+ /* @__PURE__ */ jsx(
23
+ SearchField,
24
+ {
25
+ value: search,
26
+ onChange: setSearch,
27
+ "aria-label": "Search businesses by name",
28
+ placeholder: "Search businesses by name"
29
+ }
30
+ ),
31
+ /* @__PURE__ */ jsxs("ul", { className: styles.results, "aria-busy": isLoading || void 0, children: [
32
+ isLoading && Array.from({ length: 3 }, (_, i) => /* @__PURE__ */ jsx("li", { "aria-hidden": true, style: { padding: "8px 12px" }, children: /* @__PURE__ */ jsx(Skeleton, { height: 20, width: `${60 - i * 8}%` }) }, i)),
33
+ isError && /* @__PURE__ */ jsxs("li", { className: styles.failed, role: "alert", children: [
34
+ /* @__PURE__ */ jsx("span", { children: "Businesses did not load." }),
35
+ /* @__PURE__ */ jsx(Button, { variant: "secondary", onClick: () => refetch(), children: "Try again" })
36
+ ] }),
37
+ !isLoading && !isError && rows.length === 0 && /* @__PURE__ */ jsx("li", { className: styles.meta, children: term ? `No business matches \u201C${term}\u201D.` : "No businesses yet." }),
38
+ rows.map((t) => /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(
39
+ FinderRow,
40
+ {
41
+ t,
42
+ selected: picked?.id === t.id,
43
+ failedPayout: false,
44
+ onSelect: () => onPick(t)
45
+ }
46
+ ) }, t.id))
47
+ ] })
48
+ ] });
49
+ }
50
+ export {
51
+ BusinessPicker
52
+ };
53
+ //# sourceMappingURL=business-picker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/admin/_money/business-picker.tsx"],"sourcesContent":["'use client';\n\nimport { useDeferredValue, useState } from 'react';\nimport { Button, SearchField } from '@withpotter/ui-kit';\nimport type { TenantRow } from '@withpotter/lib/admin-api';\nimport { Skeleton } from '../_ui';\nimport { usePlatformTenants } from '../hooks';\nimport { FinderRow } from './finder-row';\nimport styles from './page.module.css';\n\n/**\n * The merchant finder's search and rows, for use inside a dialog: pressing a\n * row picks the business instead of opening the quick view, so no second\n * dialog opens over the first.\n */\nexport function BusinessPicker({\n picked,\n onPick,\n}: {\n picked: TenantRow | null;\n onPick: (t: TenantRow) => void;\n}) {\n const [search, setSearch] = useState('');\n const term = useDeferredValue(search.trim());\n const { data, isLoading, isError, refetch } = usePlatformTenants({\n page: 1,\n pageSize: 5,\n search: term || undefined,\n });\n const rows = data?.rows ?? [];\n\n return (\n <div style={{ display: 'grid', gap: 8 }}>\n <SearchField\n value={search}\n onChange={setSearch}\n aria-label=\"Search businesses by name\"\n placeholder=\"Search businesses by name\"\n />\n <ul className={styles.results} aria-busy={isLoading || undefined}>\n {isLoading &&\n Array.from({ length: 3 }, (_, i) => (\n <li key={i} aria-hidden style={{ padding: '8px 12px' }}>\n <Skeleton height={20} width={`${60 - i * 8}%`} />\n </li>\n ))}\n {isError && (\n <li className={styles.failed} role=\"alert\">\n <span>Businesses did not load.</span>\n <Button variant=\"secondary\" onClick={() => refetch()}>\n Try again\n </Button>\n </li>\n )}\n {!isLoading && !isError && rows.length === 0 && (\n <li className={styles.meta}>\n {term ? `No business matches “${term}”.` : 'No businesses yet.'}\n </li>\n )}\n {rows.map((t) => (\n <li key={t.id}>\n <FinderRow\n t={t}\n selected={picked?.id === t.id}\n failedPayout={false}\n onSelect={() => onPick(t)}\n />\n </li>\n ))}\n </ul>\n </div>\n );\n}\n"],"mappings":";AAiCM,cAcI,YAdJ;AA/BN,SAAS,kBAAkB,gBAAgB;AAC3C,SAAS,QAAQ,mBAAmB;AAEpC,SAAS,gBAAgB;AACzB,SAAS,0BAA0B;AACnC,SAAS,iBAAiB;AAC1B,OAAO,YAAY;AAOZ,SAAS,eAAe;AAAA,EAC7B;AAAA,EACA;AACF,GAGG;AACD,QAAM,CAAC,QAAQ,SAAS,IAAI,SAAS,EAAE;AACvC,QAAM,OAAO,iBAAiB,OAAO,KAAK,CAAC;AAC3C,QAAM,EAAE,MAAM,WAAW,SAAS,QAAQ,IAAI,mBAAmB;AAAA,IAC/D,MAAM;AAAA,IACN,UAAU;AAAA,IACV,QAAQ,QAAQ;AAAA,EAClB,CAAC;AACD,QAAM,OAAO,MAAM,QAAQ,CAAC;AAE5B,SACE,qBAAC,SAAI,OAAO,EAAE,SAAS,QAAQ,KAAK,EAAE,GACpC;AAAA;AAAA,MAAC;AAAA;AAAA,QACC,OAAO;AAAA,QACP,UAAU;AAAA,QACV,cAAW;AAAA,QACX,aAAY;AAAA;AAAA,IACd;AAAA,IACA,qBAAC,QAAG,WAAW,OAAO,SAAS,aAAW,aAAa,QACpD;AAAA,mBACC,MAAM,KAAK,EAAE,QAAQ,EAAE,GAAG,CAAC,GAAG,MAC5B,oBAAC,QAAW,eAAW,MAAC,OAAO,EAAE,SAAS,WAAW,GACnD,8BAAC,YAAS,QAAQ,IAAI,OAAO,GAAG,KAAK,IAAI,CAAC,KAAK,KADxC,CAET,CACD;AAAA,MACF,WACC,qBAAC,QAAG,WAAW,OAAO,QAAQ,MAAK,SACjC;AAAA,4BAAC,UAAK,sCAAwB;AAAA,QAC9B,oBAAC,UAAO,SAAQ,aAAY,SAAS,MAAM,QAAQ,GAAG,uBAEtD;AAAA,SACF;AAAA,MAED,CAAC,aAAa,CAAC,WAAW,KAAK,WAAW,KACzC,oBAAC,QAAG,WAAW,OAAO,MACnB,iBAAO,6BAAwB,IAAI,YAAO,sBAC7C;AAAA,MAED,KAAK,IAAI,CAAC,MACT,oBAAC,QACC;AAAA,QAAC;AAAA;AAAA,UACC;AAAA,UACA,UAAU,QAAQ,OAAO,EAAE;AAAA,UAC3B,cAAc;AAAA,UACd,UAAU,MAAM,OAAO,CAAC;AAAA;AAAA,MAC1B,KANO,EAAE,EAOX,CACD;AAAA,OACH;AAAA,KACF;AAEJ;","names":[]}
@@ -0,0 +1,42 @@
1
+ import { ApiRequestError } from "@withpotter/lib/api/core";
2
+ import { forbiddenText, isForbidden } from "./permissions";
3
+ const ACTION = {
4
+ propose: "propose cash postings",
5
+ approve: "approve cash postings",
6
+ reject: "reject cash postings"
7
+ };
8
+ const MAKER_CHECKER = "A different admin has to approve your proposal. You cannot decide one you proposed.";
9
+ const UNKNOWN_OR_DECIDED = "That proposal was not found, or it has already been approved or rejected.";
10
+ const BAD_WALLET = "The merchant wallet was not found or is not active. Check the wallet ID.";
11
+ const NO_CURRENCY = "That currency is not set up for cash postings yet. Ask engineering to enable it.";
12
+ const BY_TEXT = [
13
+ [/maker-checker|human maker/i, MAKER_CHECKER],
14
+ [/wallet/i, BAD_WALLET],
15
+ [/currency/i, NO_CURRENCY],
16
+ [
17
+ /not found|not approvable|not rejectable|outside the platform/i,
18
+ UNKNOWN_OR_DECIDED
19
+ ]
20
+ ];
21
+ const LIKELY = {
22
+ propose: `The proposal was not saved. Usually the wallet ID is wrong or the currency is not set up for cash postings.`,
23
+ approve: `The posting was not approved. Usually: you proposed it yourself (a different admin has to approve), the ID is unknown or already decided, the wallet is no longer valid, or the currency is not set up.`,
24
+ reject: `The rejection was not saved. Usually: the ID is unknown or already decided, or you proposed it yourself.`
25
+ };
26
+ function cashErrorText(error, step) {
27
+ if (isForbidden(error)) return forbiddenText(ACTION[step]);
28
+ const message = error instanceof Error ? error.message : "";
29
+ const known = BY_TEXT.find(([re]) => re.test(message));
30
+ if (known) return known[1];
31
+ if (error instanceof ApiRequestError) {
32
+ if (error.status === 404) return UNKNOWN_OR_DECIDED;
33
+ if (error.status === 409 || error.status === 422)
34
+ return message || LIKELY[step];
35
+ if (error.status >= 500) return LIKELY[step];
36
+ }
37
+ return message || LIKELY[step];
38
+ }
39
+ export {
40
+ cashErrorText
41
+ };
42
+ //# sourceMappingURL=cash-errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/admin/_money/cash-errors.ts"],"sourcesContent":["import { ApiRequestError } from '@withpotter/lib/api/core';\nimport { forbiddenText, isForbidden } from './permissions';\n\nexport type CashStep = 'propose' | 'approve' | 'reject';\n\nconst ACTION: Record<CashStep, string> = {\n propose: 'propose cash postings',\n approve: 'approve cash postings',\n reject: 'reject cash postings',\n};\n\nconst MAKER_CHECKER =\n 'A different admin has to approve your proposal. You cannot decide one you proposed.';\nconst UNKNOWN_OR_DECIDED =\n 'That proposal was not found, or it has already been approved or rejected.';\nconst BAD_WALLET =\n 'The merchant wallet was not found or is not active. Check the wallet ID.';\nconst NO_CURRENCY =\n 'That currency is not set up for cash postings yet. Ask engineering to enable it.';\n\n/** Known API wording → friendly copy, for when the message survives. */\nconst BY_TEXT: Array<[RegExp, string]> = [\n [/maker-checker|human maker/i, MAKER_CHECKER],\n [/wallet/i, BAD_WALLET],\n [/currency/i, NO_CURRENCY],\n [\n /not found|not approvable|not rejectable|outside the platform/i,\n UNKNOWN_OR_DECIDED,\n ],\n];\n\n/** What can go wrong at each step, for an opaque 500. */\nconst LIKELY: Record<CashStep, string> = {\n propose: `The proposal was not saved. Usually the wallet ID is wrong or the currency is not set up for cash postings.`,\n approve: `The posting was not approved. Usually: you proposed it yourself (a different admin has to approve), the ID is unknown or already decided, the wallet is no longer valid, or the currency is not set up.`,\n reject: `The rejection was not saved. Usually: the ID is unknown or already decided, or you proposed it yourself.`,\n};\n\n/**\n * Cash-posting failures in plain words. The API turns its plain Errors into\n * a 500 \"Internal server error\", so the step decides the likely causes.\n */\nexport function cashErrorText(error: unknown, step: CashStep): string {\n if (isForbidden(error)) return forbiddenText(ACTION[step]);\n\n const message = error instanceof Error ? error.message : '';\n const known = BY_TEXT.find(([re]) => re.test(message));\n\n if (known) return known[1];\n\n if (error instanceof ApiRequestError) {\n if (error.status === 404) return UNKNOWN_OR_DECIDED;\n\n if (error.status === 409 || error.status === 422)\n return message || LIKELY[step];\n\n if (error.status >= 500) return LIKELY[step];\n }\n\n return message || LIKELY[step];\n}\n"],"mappings":"AAAA,SAAS,uBAAuB;AAChC,SAAS,eAAe,mBAAmB;AAI3C,MAAM,SAAmC;AAAA,EACvC,SAAS;AAAA,EACT,SAAS;AAAA,EACT,QAAQ;AACV;AAEA,MAAM,gBACJ;AACF,MAAM,qBACJ;AACF,MAAM,aACJ;AACF,MAAM,cACJ;AAGF,MAAM,UAAmC;AAAA,EACvC,CAAC,8BAA8B,aAAa;AAAA,EAC5C,CAAC,WAAW,UAAU;AAAA,EACtB,CAAC,aAAa,WAAW;AAAA,EACzB;AAAA,IACE;AAAA,IACA;AAAA,EACF;AACF;AAGA,MAAM,SAAmC;AAAA,EACvC,SAAS;AAAA,EACT,SAAS;AAAA,EACT,QAAQ;AACV;AAMO,SAAS,cAAc,OAAgB,MAAwB;AACpE,MAAI,YAAY,KAAK,EAAG,QAAO,cAAc,OAAO,IAAI,CAAC;AAEzD,QAAM,UAAU,iBAAiB,QAAQ,MAAM,UAAU;AACzD,QAAM,QAAQ,QAAQ,KAAK,CAAC,CAAC,EAAE,MAAM,GAAG,KAAK,OAAO,CAAC;AAErD,MAAI,MAAO,QAAO,MAAM,CAAC;AAEzB,MAAI,iBAAiB,iBAAiB;AACpC,QAAI,MAAM,WAAW,IAAK,QAAO;AAEjC,QAAI,MAAM,WAAW,OAAO,MAAM,WAAW;AAC3C,aAAO,WAAW,OAAO,IAAI;AAE/B,QAAI,MAAM,UAAU,IAAK,QAAO,OAAO,IAAI;AAAA,EAC7C;AAEA,SAAO,WAAW,OAAO,IAAI;AAC/B;","names":[]}