@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,162 @@
1
+ "use client";
2
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
3
+ import { useState } from "react";
4
+ import { useMutation } from "@tanstack/react-query";
5
+ import { Button, FormDialog, Input, useToast } from "@withpotter/ui-kit";
6
+ import { platformAdminApi } from "@withpotter/lib/admin-api";
7
+ import { PermissionPicker, toggleIn } from "./permission-picker";
8
+ import styles from "./roles.module.css";
9
+ const COPY = {
10
+ create: { title: "Create role", action: "Create role" },
11
+ edit: { title: "Edit role", action: "Save changes" },
12
+ duplicate: { title: "Duplicate role", action: "Create copy" }
13
+ };
14
+ const FORM_ID = "role-dialog-form";
15
+ function RoleDialog({
16
+ mode,
17
+ catalog,
18
+ onClose,
19
+ onSaved
20
+ }) {
21
+ const [shown, setShown] = useState(mode);
22
+ const [opens, setOpens] = useState(0);
23
+ const [wasOpen, setWasOpen] = useState(false);
24
+ if (mode && mode !== shown) setShown(mode);
25
+ if (Boolean(mode) !== wasOpen) {
26
+ setWasOpen(Boolean(mode));
27
+ if (mode) setOpens((n) => n + 1);
28
+ }
29
+ const active = mode ?? shown;
30
+ if (!active) return null;
31
+ return /* @__PURE__ */ jsx(
32
+ RoleForm,
33
+ {
34
+ open: mode !== null,
35
+ mode: active,
36
+ catalog,
37
+ onClose,
38
+ onSaved
39
+ },
40
+ `${opens}-${active.kind}-${"role" in active ? active.role.id : ""}`
41
+ );
42
+ }
43
+ function RoleForm({
44
+ open,
45
+ mode,
46
+ catalog,
47
+ onClose,
48
+ onSaved
49
+ }) {
50
+ const { toast } = useToast();
51
+ const source = mode.kind === "create" ? null : mode.role;
52
+ const [name, setName] = useState(
53
+ !source ? "" : mode.kind === "duplicate" ? `${source.name} (copy)` : source.name
54
+ );
55
+ const [description, setDescription] = useState(source?.description ?? "");
56
+ const [perms, setPerms] = useState(source?.permissions ?? []);
57
+ const lockedName = mode.kind === "edit" && mode.role.isSystem;
58
+ const save = useMutation({
59
+ mutationFn: async () => mode.kind === "edit" ? platformAdminApi.updateRole(mode.role.id, {
60
+ ...lockedName ? {} : { name: name.trim(), description: description.trim() },
61
+ permissions: perms
62
+ }) : platformAdminApi.createRole(
63
+ name.trim(),
64
+ perms,
65
+ description.trim() || void 0
66
+ ),
67
+ onSuccess: () => {
68
+ toast({
69
+ title: mode.kind === "edit" ? `${name} updated` : `${name.trim()} created`
70
+ });
71
+ onSaved();
72
+ onClose();
73
+ },
74
+ onError: (error) => toast({
75
+ title: "The role was not saved",
76
+ description: error.message,
77
+ variant: "destructive"
78
+ })
79
+ });
80
+ const canSave = name.trim().length > 0 && !save.isPending;
81
+ return /* @__PURE__ */ jsx(
82
+ FormDialog,
83
+ {
84
+ open,
85
+ size: "lg",
86
+ title: COPY[mode.kind].title,
87
+ description: mode.kind === "edit" ? `Changes apply to every admin holding ${mode.role.name}.` : "Bundle permissions you can grant in one step.",
88
+ onClose,
89
+ footer: /* @__PURE__ */ jsxs(Fragment, { children: [
90
+ /* @__PURE__ */ jsxs("span", { className: styles.footNote, children: [
91
+ perms.length,
92
+ " permission",
93
+ perms.length === 1 ? "" : "s",
94
+ " selected"
95
+ ] }),
96
+ /* @__PURE__ */ jsxs("div", { className: styles.footActions, children: [
97
+ /* @__PURE__ */ jsx(Button, { type: "button", variant: "secondary", onClick: onClose, children: "Cancel" }),
98
+ /* @__PURE__ */ jsx(
99
+ Button,
100
+ {
101
+ type: "submit",
102
+ form: FORM_ID,
103
+ disabled: !canSave,
104
+ loading: save.isPending,
105
+ children: COPY[mode.kind].action
106
+ }
107
+ )
108
+ ] })
109
+ ] }),
110
+ children: /* @__PURE__ */ jsxs(
111
+ "form",
112
+ {
113
+ id: FORM_ID,
114
+ className: styles.dialogBody,
115
+ onSubmit: (e) => {
116
+ e.preventDefault();
117
+ if (canSave) save.mutate();
118
+ },
119
+ children: [
120
+ /* @__PURE__ */ jsxs("div", { className: styles.dialogFields, children: [
121
+ /* @__PURE__ */ jsx(
122
+ Input,
123
+ {
124
+ label: "Role name",
125
+ placeholder: "e.g. Support",
126
+ value: name,
127
+ disabled: lockedName,
128
+ onChange: (e) => setName(e.target.value),
129
+ autoFocus: !lockedName
130
+ }
131
+ ),
132
+ /* @__PURE__ */ jsx(
133
+ Input,
134
+ {
135
+ label: "Description (optional)",
136
+ placeholder: "What this role is for",
137
+ value: description,
138
+ disabled: lockedName,
139
+ onChange: (e) => setDescription(e.target.value)
140
+ }
141
+ )
142
+ ] }),
143
+ lockedName && /* @__PURE__ */ jsx("p", { className: styles.note, children: "Built-in roles keep their name. You can still change what they grant." }),
144
+ /* @__PURE__ */ jsx(
145
+ PermissionPicker,
146
+ {
147
+ keys: catalog,
148
+ value: perms,
149
+ onToggle: (key) => setPerms(toggleIn(key)),
150
+ onSet: setPerms
151
+ }
152
+ )
153
+ ]
154
+ }
155
+ )
156
+ }
157
+ );
158
+ }
159
+ export {
160
+ RoleDialog
161
+ };
162
+ //# sourceMappingURL=role-dialog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/admin/roles/role-dialog.tsx"],"sourcesContent":["'use client';\n\nimport { useState } from 'react';\nimport { useMutation } from '@tanstack/react-query';\nimport { Button, FormDialog, Input, useToast } from '@withpotter/ui-kit';\nimport { platformAdminApi, type RoleRow as Role } from '@withpotter/lib/admin-api';\nimport { PermissionPicker, toggleIn } from './permission-picker';\nimport styles from './roles.module.css';\n\nexport type RoleDialogMode =\n | { kind: 'create' }\n | { kind: 'edit'; role: Role }\n | { kind: 'duplicate'; role: Role };\n\nconst COPY = {\n create: { title: 'Create role', action: 'Create role' },\n edit: { title: 'Edit role', action: 'Save changes' },\n duplicate: { title: 'Duplicate role', action: 'Create copy' },\n} as const;\n\nconst FORM_ID = 'role-dialog-form';\n\n/** Create, edit or duplicate a role: name, purpose and grouped permissions. */\nexport function RoleDialog({\n mode,\n catalog,\n onClose,\n onSaved,\n}: {\n mode: RoleDialogMode | null;\n catalog: readonly string[];\n onClose: () => void;\n onSaved: () => void;\n}) {\n // Keep the last mode while the dialog animates out, and count each opening\n // so the form remounts fresh — a reopened Create must not show the last\n // role's name, nor a cancelled edit come back.\n const [shown, setShown] = useState(mode);\n const [opens, setOpens] = useState(0);\n const [wasOpen, setWasOpen] = useState(false);\n if (mode && mode !== shown) setShown(mode);\n if (Boolean(mode) !== wasOpen) {\n setWasOpen(Boolean(mode));\n if (mode) setOpens((n) => n + 1);\n }\n const active = mode ?? shown;\n\n if (!active) return null;\n return (\n <RoleForm\n key={`${opens}-${active.kind}-${'role' in active ? active.role.id : ''}`}\n open={mode !== null}\n mode={active}\n catalog={catalog}\n onClose={onClose}\n onSaved={onSaved}\n />\n );\n}\n\nfunction RoleForm({\n open,\n mode,\n catalog,\n onClose,\n onSaved,\n}: {\n open: boolean;\n mode: RoleDialogMode;\n catalog: readonly string[];\n onClose: () => void;\n onSaved: () => void;\n}) {\n const { toast } = useToast();\n const source = mode.kind === 'create' ? null : mode.role;\n const [name, setName] = useState(\n !source\n ? ''\n : mode.kind === 'duplicate'\n ? `${source.name} (copy)`\n : source.name,\n );\n const [description, setDescription] = useState(source?.description ?? '');\n const [perms, setPerms] = useState<string[]>(source?.permissions ?? []);\n const lockedName = mode.kind === 'edit' && mode.role.isSystem;\n\n const save = useMutation({\n mutationFn: async (): Promise<unknown> =>\n mode.kind === 'edit'\n ? platformAdminApi.updateRole(mode.role.id, {\n ...(lockedName\n ? {}\n : { name: name.trim(), description: description.trim() }),\n permissions: perms,\n })\n : platformAdminApi.createRole(\n name.trim(),\n perms,\n description.trim() || undefined,\n ),\n onSuccess: () => {\n toast({\n title:\n mode.kind === 'edit' ? `${name} updated` : `${name.trim()} created`,\n });\n onSaved();\n onClose();\n },\n onError: (error) =>\n toast({\n title: 'The role was not saved',\n description: error.message,\n variant: 'destructive',\n }),\n });\n const canSave = name.trim().length > 0 && !save.isPending;\n\n return (\n <FormDialog\n open={open}\n size=\"lg\"\n title={COPY[mode.kind].title}\n description={\n mode.kind === 'edit'\n ? `Changes apply to every admin holding ${mode.role.name}.`\n : 'Bundle permissions you can grant in one step.'\n }\n onClose={onClose}\n footer={\n <>\n <span className={styles.footNote}>\n {perms.length} permission{perms.length === 1 ? '' : 's'} selected\n </span>\n <div className={styles.footActions}>\n <Button type=\"button\" variant=\"secondary\" onClick={onClose}>\n Cancel\n </Button>\n <Button\n type=\"submit\"\n form={FORM_ID}\n disabled={!canSave}\n loading={save.isPending}\n >\n {COPY[mode.kind].action}\n </Button>\n </div>\n </>\n }\n >\n <form\n id={FORM_ID}\n className={styles.dialogBody}\n onSubmit={(e) => {\n e.preventDefault();\n if (canSave) save.mutate();\n }}\n >\n <div className={styles.dialogFields}>\n <Input\n label=\"Role name\"\n placeholder=\"e.g. Support\"\n value={name}\n disabled={lockedName}\n onChange={(e) => setName(e.target.value)}\n autoFocus={!lockedName}\n />\n <Input\n label=\"Description (optional)\"\n placeholder=\"What this role is for\"\n value={description}\n disabled={lockedName}\n onChange={(e) => setDescription(e.target.value)}\n />\n </div>\n {lockedName && (\n <p className={styles.note}>\n Built-in roles keep their name. You can still change what they\n grant.\n </p>\n )}\n <PermissionPicker\n keys={catalog}\n value={perms}\n onToggle={(key) => setPerms(toggleIn(key))}\n onSet={setPerms}\n />\n </form>\n </FormDialog>\n );\n}\n"],"mappings":"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","names":[]}
@@ -0,0 +1,51 @@
1
+ "use client";
2
+ import { jsx, jsxs } from "react/jsx-runtime";
3
+ import { OverflowItem, OverflowMenu, TableRow, Tooltip } from "@withpotter/ui-kit";
4
+ import { MoreChip } from "./more-chip";
5
+ import { permissionLabel } from "./permissions";
6
+ import styles from "./roles.module.css";
7
+ const ROLE_COLUMNS = 5;
8
+ const SHOWN = 3;
9
+ const adminCount = (n) => `${n} admin${n === 1 ? "" : "s"}`;
10
+ function PermissionChips({ keys }) {
11
+ if (keys.length === 0) return /* @__PURE__ */ jsx("span", { className: styles.muted, children: "\u2013" });
12
+ const shown = keys.slice(0, SHOWN).map(permissionLabel).join(", ");
13
+ return /* @__PURE__ */ jsxs("div", { className: styles.badges, children: [
14
+ /* @__PURE__ */ jsx("span", { className: styles.badge, title: shown, children: shown }),
15
+ /* @__PURE__ */ jsx(
16
+ MoreChip,
17
+ {
18
+ items: keys.slice(SHOWN).map(permissionLabel),
19
+ title: "More permissions"
20
+ }
21
+ )
22
+ ] });
23
+ }
24
+ function RoleRow({
25
+ r,
26
+ onEdit,
27
+ onDuplicate,
28
+ onDelete
29
+ }) {
30
+ return /* @__PURE__ */ jsxs(TableRow, { onClick: onEdit, children: [
31
+ /* @__PURE__ */ jsx("td", { className: styles.roleCell, children: /* @__PURE__ */ jsx("div", { className: styles.roleIdentity, children: /* @__PURE__ */ jsxs("div", { className: styles.roleText, children: [
32
+ /* @__PURE__ */ jsx("div", { className: styles.roleName, title: r.name, children: r.name }),
33
+ r.description && /* @__PURE__ */ jsx(Tooltip, { label: r.description, children: /* @__PURE__ */ jsx("span", { className: styles.roleDesc, tabIndex: 0, children: r.description }) })
34
+ ] }) }) }),
35
+ /* @__PURE__ */ jsx("td", { children: /* @__PURE__ */ jsx(PermissionChips, { keys: r.permissions ?? [] }) }),
36
+ /* @__PURE__ */ jsx("td", { className: `${styles.nowrap} ${r.isSystem ? styles.muted : ""}`, children: r.isSystem ? "Built-in" : "Custom" }),
37
+ /* @__PURE__ */ jsx("td", { className: styles.num, children: r.assignedCount > 0 ? adminCount(r.assignedCount) : /* @__PURE__ */ jsx("span", { className: styles.muted, children: "Unused" }) }),
38
+ /* @__PURE__ */ jsx("td", { className: styles.menuCell, onClick: (e) => e.stopPropagation(), children: /* @__PURE__ */ jsxs(OverflowMenu, { label: `Actions for ${r.name}`, children: [
39
+ /* @__PURE__ */ jsx(OverflowItem, { onClick: onEdit, children: "Edit" }),
40
+ /* @__PURE__ */ jsx(OverflowItem, { onClick: onDuplicate, children: "Duplicate" }),
41
+ r.isSystem ? /* @__PURE__ */ jsx(Tooltip, { label: "Built-in roles can\u2019t be deleted. Duplicate it to make a version you can change freely.", children: /* @__PURE__ */ jsx("span", { className: styles.lockedItem, tabIndex: 0, children: /* @__PURE__ */ jsx(OverflowItem, { onClick: () => {
42
+ }, disabled: true, children: "Delete" }) }) }) : /* @__PURE__ */ jsx(OverflowItem, { onClick: onDelete, destructive: true, children: "Delete" })
43
+ ] }) })
44
+ ] });
45
+ }
46
+ export {
47
+ ROLE_COLUMNS,
48
+ RoleRow,
49
+ adminCount
50
+ };
51
+ //# sourceMappingURL=role-row.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/admin/roles/role-row.tsx"],"sourcesContent":["'use client';\n\nimport { OverflowItem, OverflowMenu, TableRow, Tooltip } from '@withpotter/ui-kit';\nimport type { RoleRow as Role } from '@withpotter/lib/admin-api';\nimport { MoreChip } from './more-chip';\nimport { permissionLabel } from './permissions';\nimport styles from './roles.module.css';\n\nexport const ROLE_COLUMNS = 5;\nconst SHOWN = 3;\n\nexport const adminCount = (n: number) => `${n} admin${n === 1 ? '' : 's'}`;\n\n/** Three permissions as plain text, then \"+N\" that opens the rest. */\nfunction PermissionChips({ keys }: { keys: string[] }) {\n if (keys.length === 0) return <span className={styles.muted}>–</span>;\n const shown = keys.slice(0, SHOWN).map(permissionLabel).join(', ');\n return (\n <div className={styles.badges}>\n <span className={styles.badge} title={shown}>\n {shown}\n </span>\n <MoreChip\n items={keys.slice(SHOWN).map(permissionLabel)}\n title=\"More permissions\"\n />\n </div>\n );\n}\n\n/** One role: name, permissions, type, holders and its ••• menu. */\nexport function RoleRow({\n r,\n onEdit,\n onDuplicate,\n onDelete,\n}: {\n r: Role;\n onEdit: () => void;\n onDuplicate: () => void;\n onDelete: () => void;\n}) {\n return (\n <TableRow onClick={onEdit}>\n <td className={styles.roleCell}>\n <div className={styles.roleIdentity}>\n <div className={styles.roleText}>\n <div className={styles.roleName} title={r.name}>\n {r.name}\n </div>\n {r.description && (\n <Tooltip label={r.description}>\n <span className={styles.roleDesc} tabIndex={0}>\n {r.description}\n </span>\n </Tooltip>\n )}\n </div>\n </div>\n </td>\n <td>\n <PermissionChips keys={r.permissions ?? []} />\n </td>\n <td className={`${styles.nowrap} ${r.isSystem ? styles.muted : ''}`}>\n {r.isSystem ? 'Built-in' : 'Custom'}\n </td>\n <td className={styles.num}>\n {r.assignedCount > 0 ? (\n adminCount(r.assignedCount)\n ) : (\n <span className={styles.muted}>Unused</span>\n )}\n </td>\n <td className={styles.menuCell} onClick={(e) => e.stopPropagation()}>\n <OverflowMenu label={`Actions for ${r.name}`}>\n <OverflowItem onClick={onEdit}>Edit</OverflowItem>\n <OverflowItem onClick={onDuplicate}>Duplicate</OverflowItem>\n {r.isSystem ? (\n <Tooltip label=\"Built-in roles can’t be deleted. Duplicate it to make a version you can change freely.\">\n <span className={styles.lockedItem} tabIndex={0}>\n <OverflowItem onClick={() => {}} disabled>\n Delete\n </OverflowItem>\n </span>\n </Tooltip>\n ) : (\n <OverflowItem onClick={onDelete} destructive>\n Delete\n </OverflowItem>\n )}\n </OverflowMenu>\n </td>\n </TableRow>\n );\n}\n"],"mappings":";AAegC,cAG5B,YAH4B;AAbhC,SAAS,cAAc,cAAc,UAAU,eAAe;AAE9D,SAAS,gBAAgB;AACzB,SAAS,uBAAuB;AAChC,OAAO,YAAY;AAEZ,MAAM,eAAe;AAC5B,MAAM,QAAQ;AAEP,MAAM,aAAa,CAAC,MAAc,GAAG,CAAC,SAAS,MAAM,IAAI,KAAK,GAAG;AAGxE,SAAS,gBAAgB,EAAE,KAAK,GAAuB;AACrD,MAAI,KAAK,WAAW,EAAG,QAAO,oBAAC,UAAK,WAAW,OAAO,OAAO,oBAAC;AAC9D,QAAM,QAAQ,KAAK,MAAM,GAAG,KAAK,EAAE,IAAI,eAAe,EAAE,KAAK,IAAI;AACjE,SACE,qBAAC,SAAI,WAAW,OAAO,QACrB;AAAA,wBAAC,UAAK,WAAW,OAAO,OAAO,OAAO,OACnC,iBACH;AAAA,IACA;AAAA,MAAC;AAAA;AAAA,QACC,OAAO,KAAK,MAAM,KAAK,EAAE,IAAI,eAAe;AAAA,QAC5C,OAAM;AAAA;AAAA,IACR;AAAA,KACF;AAEJ;AAGO,SAAS,QAAQ;AAAA,EACtB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAKG;AACD,SACE,qBAAC,YAAS,SAAS,QACjB;AAAA,wBAAC,QAAG,WAAW,OAAO,UACpB,8BAAC,SAAI,WAAW,OAAO,cACrB,+BAAC,SAAI,WAAW,OAAO,UACrB;AAAA,0BAAC,SAAI,WAAW,OAAO,UAAU,OAAO,EAAE,MACvC,YAAE,MACL;AAAA,MACC,EAAE,eACD,oBAAC,WAAQ,OAAO,EAAE,aAChB,8BAAC,UAAK,WAAW,OAAO,UAAU,UAAU,GACzC,YAAE,aACL,GACF;AAAA,OAEJ,GACF,GACF;AAAA,IACA,oBAAC,QACC,8BAAC,mBAAgB,MAAM,EAAE,eAAe,CAAC,GAAG,GAC9C;AAAA,IACA,oBAAC,QAAG,WAAW,GAAG,OAAO,MAAM,IAAI,EAAE,WAAW,OAAO,QAAQ,EAAE,IAC9D,YAAE,WAAW,aAAa,UAC7B;AAAA,IACA,oBAAC,QAAG,WAAW,OAAO,KACnB,YAAE,gBAAgB,IACjB,WAAW,EAAE,aAAa,IAE1B,oBAAC,UAAK,WAAW,OAAO,OAAO,oBAAM,GAEzC;AAAA,IACA,oBAAC,QAAG,WAAW,OAAO,UAAU,SAAS,CAAC,MAAM,EAAE,gBAAgB,GAChE,+BAAC,gBAAa,OAAO,eAAe,EAAE,IAAI,IACxC;AAAA,0BAAC,gBAAa,SAAS,QAAQ,kBAAI;AAAA,MACnC,oBAAC,gBAAa,SAAS,aAAa,uBAAS;AAAA,MAC5C,EAAE,WACD,oBAAC,WAAQ,OAAM,+FACb,8BAAC,UAAK,WAAW,OAAO,YAAY,UAAU,GAC5C,8BAAC,gBAAa,SAAS,MAAM;AAAA,MAAC,GAAG,UAAQ,MAAC,oBAE1C,GACF,GACF,IAEA,oBAAC,gBAAa,SAAS,UAAU,aAAW,MAAC,oBAE7C;AAAA,OAEJ,GACF;AAAA,KACF;AAEJ;","names":[]}
@@ -0,0 +1,45 @@
1
+ import { jsx } from "react/jsx-runtime";
2
+ import { CountUp, Reveal } from "../_fx";
3
+ import { StatCard } from "../_ui";
4
+ function RolesKpis({
5
+ roles,
6
+ permissions,
7
+ isLoading
8
+ }) {
9
+ const custom = roles.filter((r) => !r.isSystem).length;
10
+ const kpis = [
11
+ {
12
+ label: "Total roles",
13
+ value: roles.length,
14
+ sub: `${custom} custom \xB7 ${roles.length - custom} built-in`
15
+ },
16
+ {
17
+ label: "In use",
18
+ value: roles.filter((r) => r.assignedCount > 0).length,
19
+ sub: "assigned to an admin"
20
+ },
21
+ {
22
+ label: "Custom roles",
23
+ value: custom,
24
+ sub: "editable and deletable"
25
+ },
26
+ {
27
+ label: "Permissions",
28
+ value: permissions,
29
+ sub: "available to grant"
30
+ }
31
+ ];
32
+ return /* @__PURE__ */ jsx("section", { "aria-label": "Role indicators", className: "adm-grid", children: kpis.map((k, i) => /* @__PURE__ */ jsx(Reveal, { index: i, className: "adm-span-3", children: /* @__PURE__ */ jsx(
33
+ StatCard,
34
+ {
35
+ label: k.label,
36
+ value: /* @__PURE__ */ jsx(CountUp, { value: k.value }),
37
+ sub: k.sub,
38
+ isLoading
39
+ }
40
+ ) }, k.label)) });
41
+ }
42
+ export {
43
+ RolesKpis
44
+ };
45
+ //# sourceMappingURL=roles-kpis.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/admin/roles/roles-kpis.tsx"],"sourcesContent":["import type { RoleRow as Role } from '@withpotter/lib/admin-api';\nimport { CountUp, Reveal } from '../_fx';\nimport { StatCard } from '../_ui';\n\n/** Four counts: roles, roles in use, custom roles, permissions on offer. */\nexport function RolesKpis({\n roles,\n permissions,\n isLoading,\n}: {\n roles: Role[];\n permissions: number;\n isLoading: boolean;\n}) {\n const custom = roles.filter((r) => !r.isSystem).length;\n const kpis = [\n {\n label: 'Total roles',\n value: roles.length,\n sub: `${custom} custom · ${roles.length - custom} built-in`,\n },\n {\n label: 'In use',\n value: roles.filter((r) => r.assignedCount > 0).length,\n sub: 'assigned to an admin',\n },\n {\n label: 'Custom roles',\n value: custom,\n sub: 'editable and deletable',\n },\n {\n label: 'Permissions',\n value: permissions,\n sub: 'available to grant',\n },\n ];\n\n return (\n <section aria-label=\"Role indicators\" className=\"adm-grid\">\n {kpis.map((k, i) => (\n <Reveal key={k.label} index={i} className=\"adm-span-3\">\n <StatCard\n label={k.label}\n value={<CountUp value={k.value} />}\n sub={k.sub}\n isLoading={isLoading}\n />\n </Reveal>\n ))}\n </section>\n );\n}\n"],"mappings":"AA4CmB;AA3CnB,SAAS,SAAS,cAAc;AAChC,SAAS,gBAAgB;AAGlB,SAAS,UAAU;AAAA,EACxB;AAAA,EACA;AAAA,EACA;AACF,GAIG;AACD,QAAM,SAAS,MAAM,OAAO,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE;AAChD,QAAM,OAAO;AAAA,IACX;AAAA,MACE,OAAO;AAAA,MACP,OAAO,MAAM;AAAA,MACb,KAAK,GAAG,MAAM,gBAAa,MAAM,SAAS,MAAM;AAAA,IAClD;AAAA,IACA;AAAA,MACE,OAAO;AAAA,MACP,OAAO,MAAM,OAAO,CAAC,MAAM,EAAE,gBAAgB,CAAC,EAAE;AAAA,MAChD,KAAK;AAAA,IACP;AAAA,IACA;AAAA,MACE,OAAO;AAAA,MACP,OAAO;AAAA,MACP,KAAK;AAAA,IACP;AAAA,IACA;AAAA,MACE,OAAO;AAAA,MACP,OAAO;AAAA,MACP,KAAK;AAAA,IACP;AAAA,EACF;AAEA,SACE,oBAAC,aAAQ,cAAW,mBAAkB,WAAU,YAC7C,eAAK,IAAI,CAAC,GAAG,MACZ,oBAAC,UAAqB,OAAO,GAAG,WAAU,cACxC;AAAA,IAAC;AAAA;AAAA,MACC,OAAO,EAAE;AAAA,MACT,OAAO,oBAAC,WAAQ,OAAO,EAAE,OAAO;AAAA,MAChC,KAAK,EAAE;AAAA,MACP;AAAA;AAAA,EACF,KANW,EAAE,KAOf,CACD,GACH;AAEJ;","names":[]}
@@ -0,0 +1,141 @@
1
+ /* Roles: the role table and the create/edit dialog's grouped picker. */
2
+
3
+ /* ---- Dialog body ---- */
4
+ .dialogBody {
5
+ display: grid;
6
+ gap: 24px;
7
+ }
8
+
9
+ .dialogFields {
10
+ display: grid;
11
+ grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr);
12
+ gap: 12px;
13
+ }
14
+
15
+ .footNote {
16
+ font-size: 13px;
17
+ line-height: 20px;
18
+ font-variant-numeric: tabular-nums;
19
+ color: var(--text-secondary);
20
+ }
21
+
22
+ .footActions {
23
+ display: flex;
24
+ gap: 8px;
25
+ }
26
+
27
+ @media (max-width: 719px) {
28
+ .dialogFields {
29
+ grid-template-columns: 1fr;
30
+ }
31
+ }
32
+
33
+ .note {
34
+ margin: 0;
35
+ font-size: 13px;
36
+ line-height: 20px;
37
+ color: var(--text-tertiary);
38
+ }
39
+
40
+ /* ---- Page: never wider than the content column ---- */
41
+ .page {
42
+ min-width: 0;
43
+ max-width: 100%;
44
+ }
45
+
46
+ /* ---- Role table: fixed columns, so long chips cannot push it wide ---- */
47
+ .colRole {
48
+ width: 32%;
49
+ }
50
+
51
+ .colType,
52
+ .colHeld {
53
+ width: 112px;
54
+ }
55
+
56
+ .colMenu {
57
+ width: 56px;
58
+ }
59
+
60
+ .roleCell {
61
+ overflow: hidden;
62
+ }
63
+
64
+ .roleIdentity {
65
+ display: flex;
66
+ align-items: center;
67
+ gap: 12px;
68
+ min-width: 0;
69
+ }
70
+
71
+ .roleText {
72
+ display: grid;
73
+ min-width: 0;
74
+ }
75
+
76
+ .roleName {
77
+ overflow: hidden;
78
+ font-weight: 500;
79
+ text-overflow: ellipsis;
80
+ white-space: nowrap;
81
+ color: var(--text-primary);
82
+ }
83
+
84
+ .roleDesc {
85
+ display: block;
86
+ max-width: 100%;
87
+ overflow: hidden;
88
+ border-radius: 4px;
89
+ font-size: 13px;
90
+ line-height: 20px;
91
+ text-overflow: ellipsis;
92
+ white-space: nowrap;
93
+ color: var(--text-tertiary);
94
+ }
95
+
96
+ .badges {
97
+ display: flex;
98
+ flex-wrap: nowrap;
99
+ align-items: center;
100
+ gap: 4px;
101
+ min-width: 0;
102
+ overflow: hidden;
103
+ }
104
+
105
+ .badge {
106
+ flex-shrink: 1;
107
+ min-width: 0;
108
+ overflow: hidden;
109
+ text-overflow: ellipsis;
110
+ white-space: nowrap;
111
+ color: var(--text-secondary);
112
+ }
113
+
114
+ .muted {
115
+ color: var(--text-tertiary);
116
+ }
117
+
118
+ .nowrap {
119
+ white-space: nowrap;
120
+ }
121
+
122
+ .num {
123
+ text-align: right;
124
+ white-space: nowrap;
125
+ font-variant-numeric: tabular-nums;
126
+ color: var(--text-secondary);
127
+ }
128
+
129
+ .menuCell {
130
+ width: 56px;
131
+ text-align: right;
132
+ }
133
+
134
+ .menuCell > div {
135
+ display: inline-flex;
136
+ }
137
+
138
+ .lockedItem {
139
+ display: block;
140
+ cursor: not-allowed;
141
+ }
@@ -0,0 +1,154 @@
1
+ "use client";
2
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
3
+ import { useMemo, useState } from "react";
4
+ import { OverflowItem, OverflowMenu, TableRow, Th } from "@withpotter/ui-kit";
5
+ import { toCsv } from "@withpotter/lib/csv";
6
+ import {
7
+ FilterSelect,
8
+ Filters,
9
+ customRange,
10
+ rangeFromKey
11
+ } from "../_ui";
12
+ import { ListCard, ListPager } from "../_ui/list-card";
13
+ import list from "../_ui/list-card.module.css";
14
+ import { activityLine } from "./pipeline/lead-timeline";
15
+ import { LeadDrawer } from "./pipeline/lead-drawer";
16
+ import { CONTACT_TYPES } from "./stage-meta";
17
+ import { useSalesActivities, useSalesOwners } from "./use-sales";
18
+ const PAGE = 50;
19
+ const when = (iso) => new Date(iso).toLocaleString("en-GB", {
20
+ dateStyle: "medium",
21
+ timeStyle: "short"
22
+ });
23
+ const TYPES = [
24
+ { value: "", label: "Everything" },
25
+ ...Object.entries(CONTACT_TYPES).map(([value, label]) => ({ value, label })),
26
+ { value: "stage_change", label: "Stage change" }
27
+ ];
28
+ function download(rows) {
29
+ const body = rows.map((r) => [
30
+ when(r.occurredAt),
31
+ r.businessName,
32
+ r.adminName ?? (r.adminId ? "Admin" : "Automatic"),
33
+ activityLine(r),
34
+ r.body ?? ""
35
+ ]);
36
+ const url = URL.createObjectURL(
37
+ new Blob([toCsv([["When", "Lead", "Who", "What", "Note"], ...body])], {
38
+ type: "text/csv"
39
+ })
40
+ );
41
+ const a = document.createElement("a");
42
+ a.href = url;
43
+ a.download = "sales-activity.csv";
44
+ a.click();
45
+ URL.revokeObjectURL(url);
46
+ }
47
+ function ActivityLogTab({
48
+ period
49
+ }) {
50
+ const range = useMemo(
51
+ () => period.rangeKey === "custom" ? customRange(period.customStart, period.customEnd) : rangeFromKey(period.rangeKey),
52
+ [period.rangeKey, period.customStart, period.customEnd]
53
+ );
54
+ const [admin, setAdmin] = useState("");
55
+ const [type, setType] = useState("");
56
+ const filterKey = `${range.startDate}|${range.endDate}|${admin}|${type}`;
57
+ const [paging, setPaging] = useState({ key: filterKey, page: 1 });
58
+ const page = paging.key === filterKey ? paging.page : 1;
59
+ const setPage = (next) => setPaging({ key: filterKey, page: next });
60
+ const [open, setOpen] = useState(null);
61
+ const { data: owners = [] } = useSalesOwners();
62
+ const { data, isLoading, isError, refetch } = useSalesActivities({
63
+ from: range.startDate ?? "2020-01-01T00:00:00.000Z",
64
+ to: range.endDate,
65
+ admin: admin || void 0,
66
+ type: type || void 0,
67
+ page,
68
+ pageSize: PAGE
69
+ });
70
+ const pick = (set) => (v) => set(v);
71
+ const reps = [
72
+ { value: "", label: "Everyone" },
73
+ { value: "box", label: "Automatic" },
74
+ ...owners.map((o) => ({ value: o.id, label: o.name ?? o.email }))
75
+ ];
76
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
77
+ /* @__PURE__ */ jsx(
78
+ ListCard,
79
+ {
80
+ title: "Activity log",
81
+ count: data?.total,
82
+ columns: 5,
83
+ minWidth: 860,
84
+ isLoading,
85
+ isError,
86
+ onRetry: () => void refetch(),
87
+ errorTitle: "Failed to load the activity log.",
88
+ isEmpty: data?.rows.length === 0,
89
+ emptyTitle: "No sales activity in this period",
90
+ controls: /* @__PURE__ */ jsxs(Filters, { label: "Filter activity", children: [
91
+ /* @__PURE__ */ jsx(
92
+ FilterSelect,
93
+ {
94
+ label: "Who",
95
+ value: admin,
96
+ onChange: pick(setAdmin),
97
+ options: reps,
98
+ allValue: "",
99
+ placeholder: "Everyone"
100
+ }
101
+ ),
102
+ /* @__PURE__ */ jsx(
103
+ FilterSelect,
104
+ {
105
+ label: "What",
106
+ value: type,
107
+ onChange: pick(setType),
108
+ options: TYPES,
109
+ allValue: "",
110
+ placeholder: "Everything"
111
+ }
112
+ ),
113
+ /* @__PURE__ */ jsx(OverflowMenu, { label: "Export", children: /* @__PURE__ */ jsx(
114
+ OverflowItem,
115
+ {
116
+ onClick: () => download(data?.rows ?? []),
117
+ disabled: !data?.rows.length,
118
+ children: "Export this page as CSV"
119
+ }
120
+ ) })
121
+ ] }),
122
+ head: /* @__PURE__ */ jsxs("tr", { children: [
123
+ /* @__PURE__ */ jsx(Th, { children: "When" }),
124
+ /* @__PURE__ */ jsx(Th, { children: "Lead" }),
125
+ /* @__PURE__ */ jsx(Th, { children: "Who" }),
126
+ /* @__PURE__ */ jsx(Th, { children: "What" }),
127
+ /* @__PURE__ */ jsx(Th, { children: "Note" })
128
+ ] }),
129
+ footer: /* @__PURE__ */ jsx(
130
+ ListPager,
131
+ {
132
+ page,
133
+ totalPages: data ? Math.max(1, Math.ceil(data.total / PAGE)) : 1,
134
+ total: data?.total,
135
+ noun: "entries",
136
+ onPage: setPage
137
+ }
138
+ ),
139
+ children: data?.rows.map((r) => /* @__PURE__ */ jsxs(TableRow, { onClick: () => setOpen(r.leadId), children: [
140
+ /* @__PURE__ */ jsx("td", { className: `${list.nowrap} ${list.muted}`, children: when(r.occurredAt) }),
141
+ /* @__PURE__ */ jsx("td", { className: list.nowrap, children: r.businessName }),
142
+ /* @__PURE__ */ jsx("td", { className: `${list.nowrap} ${list.muted}`, children: r.adminName ?? (r.adminId ? "Admin" : "Automatic") }),
143
+ /* @__PURE__ */ jsx("td", { className: list.nowrap, children: activityLine(r) }),
144
+ /* @__PURE__ */ jsx("td", { className: `${list.clip} ${list.muted}`, children: r.body ?? "\u2013" })
145
+ ] }, r.id))
146
+ }
147
+ ),
148
+ /* @__PURE__ */ jsx(LeadDrawer, { leadId: open, onClose: () => setOpen(null) })
149
+ ] });
150
+ }
151
+ export {
152
+ ActivityLogTab
153
+ };
154
+ //# sourceMappingURL=activity-log-tab.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/admin/sales/activity-log-tab.tsx"],"sourcesContent":["'use client';\n\nimport { useMemo, useState } from 'react';\nimport { OverflowItem, OverflowMenu, TableRow, Th } from '@withpotter/ui-kit';\nimport { toCsv } from '@withpotter/lib/csv';\nimport type { FeedEntry } from '@withpotter/lib/admin-sales-api';\nimport {\n FilterSelect,\n Filters,\n customRange,\n rangeFromKey,\n type usePersistedDateRange,\n} from '../_ui';\nimport { ListCard, ListPager } from '../_ui/list-card';\nimport list from '../_ui/list-card.module.css';\nimport { activityLine } from './pipeline/lead-timeline';\nimport { LeadDrawer } from './pipeline/lead-drawer';\nimport { CONTACT_TYPES } from './stage-meta';\nimport { useSalesActivities, useSalesOwners } from './use-sales';\n\nconst PAGE = 50;\nconst when = (iso: string) =>\n new Date(iso).toLocaleString('en-GB', {\n dateStyle: 'medium',\n timeStyle: 'short',\n });\nconst TYPES = [\n { value: '', label: 'Everything' },\n ...Object.entries(CONTACT_TYPES).map(([value, label]) => ({ value, label })),\n { value: 'stage_change', label: 'Stage change' },\n];\n\nfunction download(rows: FeedEntry[]) {\n const body = rows.map((r) => [\n when(r.occurredAt),\n r.businessName,\n r.adminName ?? (r.adminId ? 'Admin' : 'Automatic'),\n activityLine(r),\n r.body ?? '',\n ]);\n const url = URL.createObjectURL(\n new Blob([toCsv([['When', 'Lead', 'Who', 'What', 'Note'], ...body])], {\n type: 'text/csv',\n }),\n );\n const a = document.createElement('a');\n\n a.href = url;\n a.download = 'sales-activity.csv';\n a.click();\n URL.revokeObjectURL(url);\n}\n\n/**\n * The sales log: every call, message, meeting, note and stage change across\n * all leads, newest first, with who did it. Nothing in it can be edited.\n */\nexport function ActivityLogTab({\n period,\n}: {\n period: ReturnType<typeof usePersistedDateRange>;\n}) {\n const range = useMemo(\n () =>\n period.rangeKey === 'custom'\n ? customRange(period.customStart, period.customEnd)\n : rangeFromKey(period.rangeKey),\n [period.rangeKey, period.customStart, period.customEnd],\n );\n const [admin, setAdmin] = useState('');\n const [type, setType] = useState('');\n // The page belongs to one set of filters: a new period or filter starts\n // again at page 1 instead of landing past the end of a shorter list.\n const filterKey = `${range.startDate}|${range.endDate}|${admin}|${type}`;\n const [paging, setPaging] = useState({ key: filterKey, page: 1 });\n const page = paging.key === filterKey ? paging.page : 1;\n const setPage = (next: number) => setPaging({ key: filterKey, page: next });\n const [open, setOpen] = useState<string | null>(null);\n const { data: owners = [] } = useSalesOwners();\n const { data, isLoading, isError, refetch } = useSalesActivities({\n from: range.startDate ?? '2020-01-01T00:00:00.000Z',\n to: range.endDate,\n admin: admin || undefined,\n type: type || undefined,\n page,\n pageSize: PAGE,\n });\n const pick = (set: (v: string) => void) => (v: string) => set(v);\n const reps = [\n { value: '', label: 'Everyone' },\n { value: 'box', label: 'Automatic' },\n ...owners.map((o) => ({ value: o.id, label: o.name ?? o.email })),\n ];\n\n return (\n <>\n <ListCard\n title=\"Activity log\"\n count={data?.total}\n columns={5}\n minWidth={860}\n isLoading={isLoading}\n isError={isError}\n onRetry={() => void refetch()}\n errorTitle=\"Failed to load the activity log.\"\n isEmpty={data?.rows.length === 0}\n emptyTitle=\"No sales activity in this period\"\n controls={\n <Filters label=\"Filter activity\">\n <FilterSelect\n label=\"Who\"\n value={admin}\n onChange={pick(setAdmin)}\n options={reps}\n allValue=\"\"\n placeholder=\"Everyone\"\n />\n <FilterSelect\n label=\"What\"\n value={type}\n onChange={pick(setType)}\n options={TYPES}\n allValue=\"\"\n placeholder=\"Everything\"\n />\n <OverflowMenu label=\"Export\">\n <OverflowItem\n onClick={() => download(data?.rows ?? [])}\n disabled={!data?.rows.length}\n >\n Export this page as CSV\n </OverflowItem>\n </OverflowMenu>\n </Filters>\n }\n head={\n <tr>\n <Th>When</Th>\n <Th>Lead</Th>\n <Th>Who</Th>\n <Th>What</Th>\n <Th>Note</Th>\n </tr>\n }\n footer={\n <ListPager\n page={page}\n totalPages={data ? Math.max(1, Math.ceil(data.total / PAGE)) : 1}\n total={data?.total}\n noun=\"entries\"\n onPage={setPage}\n />\n }\n >\n {data?.rows.map((r) => (\n <TableRow key={r.id} onClick={() => setOpen(r.leadId)}>\n <td className={`${list.nowrap} ${list.muted}`}>\n {when(r.occurredAt)}\n </td>\n <td className={list.nowrap}>{r.businessName}</td>\n <td className={`${list.nowrap} ${list.muted}`}>\n {r.adminName ?? (r.adminId ? 'Admin' : 'Automatic')}\n </td>\n <td className={list.nowrap}>{activityLine(r)}</td>\n <td className={`${list.clip} ${list.muted}`}>{r.body ?? '–'}</td>\n </TableRow>\n ))}\n </ListCard>\n <LeadDrawer leadId={open} onClose={() => setOpen(null)} />\n </>\n );\n}\n"],"mappings":"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","names":[]}
@@ -0,0 +1,29 @@
1
+ function bucketStart(date, grain) {
2
+ const day = /* @__PURE__ */ new Date(`${date.slice(0, 10)}T00:00:00Z`);
3
+ if (grain === "monthly") {
4
+ return Date.UTC(day.getUTCFullYear(), day.getUTCMonth(), 1);
5
+ }
6
+ if (grain === "weekly") {
7
+ const back = (day.getUTCDay() + 6) % 7;
8
+ return day.getTime() - back * 864e5;
9
+ }
10
+ return day.getTime();
11
+ }
12
+ function bucketSeries(series, grain) {
13
+ const keys = Object.keys(series);
14
+ const buckets = /* @__PURE__ */ new Map();
15
+ for (const key of keys) {
16
+ for (const point of series[key] ?? []) {
17
+ const t = bucketStart(point.date, grain);
18
+ const values = buckets.get(t) ?? Object.fromEntries(keys.map((k) => [k, 0]));
19
+ values[key] = (values[key] ?? 0) + point.count;
20
+ buckets.set(t, values);
21
+ }
22
+ }
23
+ return [...buckets.entries()].sort(([a], [b]) => a - b).map(([t, values]) => ({ t, values }));
24
+ }
25
+ export {
26
+ bucketSeries,
27
+ bucketStart
28
+ };
29
+ //# sourceMappingURL=bucket.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/admin/sales/bucket.ts"],"sourcesContent":["export type Grain = 'daily' | 'weekly' | 'monthly';\n\n/** The UTC day a `YYYY-MM-DD` date falls in, moved to its bucket's start. */\nexport function bucketStart(date: string, grain: Grain): number {\n const day = new Date(`${date.slice(0, 10)}T00:00:00Z`);\n\n if (grain === 'monthly') {\n return Date.UTC(day.getUTCFullYear(), day.getUTCMonth(), 1);\n }\n if (grain === 'weekly') {\n // Weeks start on Monday: Sunday (0) steps back six days, Monday none.\n const back = (day.getUTCDay() + 6) % 7;\n\n return day.getTime() - back * 86_400_000;\n }\n\n return day.getTime();\n}\n\n/**\n * Several daily count series as one set of points, summed into the chosen\n * grain. A bucket any series reaches appears once, with a zero for each\n * series that has nothing in it, so every line spans the same axis.\n */\nexport function bucketSeries(\n series: Record<string, Array<{ date: string; count: number }> | undefined>,\n grain: Grain,\n): Array<{ t: number; values: Record<string, number> }> {\n const keys = Object.keys(series);\n const buckets = new Map<number, Record<string, number>>();\n\n for (const key of keys) {\n for (const point of series[key] ?? []) {\n const t = bucketStart(point.date, grain);\n const values =\n buckets.get(t) ?? Object.fromEntries(keys.map((k) => [k, 0]));\n\n values[key] = (values[key] ?? 0) + point.count;\n buckets.set(t, values);\n }\n }\n\n return [...buckets.entries()]\n .sort(([a], [b]) => a - b)\n .map(([t, values]) => ({ t, values }));\n}\n"],"mappings":"AAGO,SAAS,YAAY,MAAc,OAAsB;AAC9D,QAAM,MAAM,oBAAI,KAAK,GAAG,KAAK,MAAM,GAAG,EAAE,CAAC,YAAY;AAErD,MAAI,UAAU,WAAW;AACvB,WAAO,KAAK,IAAI,IAAI,eAAe,GAAG,IAAI,YAAY,GAAG,CAAC;AAAA,EAC5D;AACA,MAAI,UAAU,UAAU;AAEtB,UAAM,QAAQ,IAAI,UAAU,IAAI,KAAK;AAErC,WAAO,IAAI,QAAQ,IAAI,OAAO;AAAA,EAChC;AAEA,SAAO,IAAI,QAAQ;AACrB;AAOO,SAAS,aACd,QACA,OACsD;AACtD,QAAM,OAAO,OAAO,KAAK,MAAM;AAC/B,QAAM,UAAU,oBAAI,IAAoC;AAExD,aAAW,OAAO,MAAM;AACtB,eAAW,SAAS,OAAO,GAAG,KAAK,CAAC,GAAG;AACrC,YAAM,IAAI,YAAY,MAAM,MAAM,KAAK;AACvC,YAAM,SACJ,QAAQ,IAAI,CAAC,KAAK,OAAO,YAAY,KAAK,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;AAE9D,aAAO,GAAG,KAAK,OAAO,GAAG,KAAK,KAAK,MAAM;AACzC,cAAQ,IAAI,GAAG,MAAM;AAAA,IACvB;AAAA,EACF;AAEA,SAAO,CAAC,GAAG,QAAQ,QAAQ,CAAC,EACzB,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,IAAI,CAAC,EACxB,IAAI,CAAC,CAAC,GAAG,MAAM,OAAO,EAAE,GAAG,OAAO,EAAE;AACzC;","names":[]}