@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.
- package/dist/admin/_fx/entity-avatar.js +63 -0
- package/dist/admin/_fx/entity-avatar.js.map +1 -0
- package/dist/admin/_fx/index.js +14 -0
- package/dist/admin/_fx/index.js.map +1 -0
- package/dist/admin/_fx/motion.js +59 -0
- package/dist/admin/_fx/motion.js.map +1 -0
- package/dist/admin/_fx/page-transition.js +23 -0
- package/dist/admin/_fx/page-transition.js.map +1 -0
- package/dist/admin/_fx/tones.js +28 -0
- package/dist/admin/_fx/tones.js.map +1 -0
- package/dist/admin/_fx.js +1 -0
- package/dist/admin/_inbox/nav-badge.js +27 -0
- package/dist/admin/_inbox/nav-badge.js.map +1 -0
- package/dist/admin/_inbox/nav-badge.module.css +15 -0
- package/dist/admin/_inbox/use-admin-inbox.js +118 -0
- package/dist/admin/_inbox/use-admin-inbox.js.map +1 -0
- package/dist/admin/_money/business-ledger.js +65 -0
- package/dist/admin/_money/business-ledger.js.map +1 -0
- package/dist/admin/_money/business-picker.js +53 -0
- package/dist/admin/_money/business-picker.js.map +1 -0
- package/dist/admin/_money/cash-errors.js +42 -0
- package/dist/admin/_money/cash-errors.js.map +1 -0
- package/dist/admin/_money/cash-postings.js +93 -0
- package/dist/admin/_money/cash-postings.js.map +1 -0
- package/dist/admin/_money/cash.module.css +128 -0
- package/dist/admin/_money/finder-format.js +42 -0
- package/dist/admin/_money/finder-format.js.map +1 -0
- package/dist/admin/_money/finder-row.js +51 -0
- package/dist/admin/_money/finder-row.js.map +1 -0
- package/dist/admin/_money/format.js +62 -0
- package/dist/admin/_money/format.js.map +1 -0
- package/dist/admin/_money/ledger-activity.js +90 -0
- package/dist/admin/_money/ledger-activity.js.map +1 -0
- package/dist/admin/_money/ledger-balances.js +32 -0
- package/dist/admin/_money/ledger-balances.js.map +1 -0
- package/dist/admin/_money/ledger-body.js +62 -0
- package/dist/admin/_money/ledger-body.js.map +1 -0
- package/dist/admin/_money/ledger-holds.js +70 -0
- package/dist/admin/_money/ledger-holds.js.map +1 -0
- package/dist/admin/_money/ledger-statement.js +120 -0
- package/dist/admin/_money/ledger-statement.js.map +1 -0
- package/dist/admin/_money/ledger.js +94 -0
- package/dist/admin/_money/ledger.js.map +1 -0
- package/dist/admin/_money/ledger.module.css +88 -0
- package/dist/admin/_money/money-section.js +19 -0
- package/dist/admin/_money/money-section.js.map +1 -0
- package/dist/admin/_money/open-as-owner.js +32 -0
- package/dist/admin/_money/open-as-owner.js.map +1 -0
- package/dist/admin/_money/page.module.css +149 -0
- package/dist/admin/_money/permissions.js +46 -0
- package/dist/admin/_money/permissions.js.map +1 -0
- package/dist/admin/_money/proposal-status.js +20 -0
- package/dist/admin/_money/proposal-status.js.map +1 -0
- package/dist/admin/_money/proposal-store.js +65 -0
- package/dist/admin/_money/proposal-store.js.map +1 -0
- package/dist/admin/_money/propose-dialog.js +124 -0
- package/dist/admin/_money/propose-dialog.js.map +1 -0
- package/dist/admin/_money/propose-draft.js +40 -0
- package/dist/admin/_money/propose-draft.js.map +1 -0
- package/dist/admin/_money/propose-fields.js +113 -0
- package/dist/admin/_money/propose-fields.js.map +1 -0
- package/dist/admin/_money/propose-steps.js +73 -0
- package/dist/admin/_money/propose-steps.js.map +1 -0
- package/dist/admin/_money/propose.module.css +105 -0
- package/dist/admin/_money/review-dialog.js +149 -0
- package/dist/admin/_money/review-dialog.js.map +1 -0
- package/dist/admin/_money/review-rules.js +31 -0
- package/dist/admin/_money/review-rules.js.map +1 -0
- package/dist/admin/_money/save-csv.js +12 -0
- package/dist/admin/_money/save-csv.js.map +1 -0
- package/dist/admin/_money/skeleton-rows.js +10 -0
- package/dist/admin/_money/skeleton-rows.js.map +1 -0
- package/dist/admin/_money/statement-export.js +57 -0
- package/dist/admin/_money/statement-export.js.map +1 -0
- package/dist/admin/_money/tenant-param.js +26 -0
- package/dist/admin/_money/tenant-param.js.map +1 -0
- package/dist/admin/_money/use-ledger.js +47 -0
- package/dist/admin/_money/use-ledger.js.map +1 -0
- package/dist/admin/_money/waiting-proposals.js +89 -0
- package/dist/admin/_money/waiting-proposals.js.map +1 -0
- package/dist/admin/_overview/activation-panel.js +55 -0
- package/dist/admin/_overview/activation-panel.js.map +1 -0
- package/dist/admin/_overview/attention-groups.js +83 -0
- package/dist/admin/_overview/attention-groups.js.map +1 -0
- package/dist/admin/_overview/attention-panel.js +58 -0
- package/dist/admin/_overview/attention-panel.js.map +1 -0
- package/dist/admin/_overview/attention.module.css +109 -0
- package/dist/admin/_overview/control-room.js +88 -0
- package/dist/admin/_overview/control-room.js.map +1 -0
- package/dist/admin/_overview/control-room.module.css +20 -0
- package/dist/admin/_overview/figures.module.css +155 -0
- package/dist/admin/_overview/kpi-row.js +77 -0
- package/dist/admin/_overview/kpi-row.js.map +1 -0
- package/dist/admin/_overview/leaders-panel.js +71 -0
- package/dist/admin/_overview/leaders-panel.js.map +1 -0
- package/dist/admin/_overview/overdue-outstanding.js +37 -0
- package/dist/admin/_overview/overdue-outstanding.js.map +1 -0
- package/dist/admin/_overview/portfolio-panel.js +69 -0
- package/dist/admin/_overview/portfolio-panel.js.map +1 -0
- package/dist/admin/_overview/position-panel.js +66 -0
- package/dist/admin/_overview/position-panel.js.map +1 -0
- package/dist/admin/_overview/position.module.css +52 -0
- package/dist/admin/_overview/use-waiting-cases.js +17 -0
- package/dist/admin/_overview/use-waiting-cases.js.map +1 -0
- package/dist/admin/_pos/action-dialog.js +66 -0
- package/dist/admin/_pos/action-dialog.js.map +1 -0
- package/dist/admin/_pos/close-shift-dialog.js +62 -0
- package/dist/admin/_pos/close-shift-dialog.js.map +1 -0
- package/dist/admin/_pos/pos-figures.js +82 -0
- package/dist/admin/_pos/pos-figures.js.map +1 -0
- package/dist/admin/_pos/pos-money.js +14 -0
- package/dist/admin/_pos/pos-money.js.map +1 -0
- package/dist/admin/_pos/pos-parts.js +68 -0
- package/dist/admin/_pos/pos-parts.js.map +1 -0
- package/dist/admin/_pos/pos-rules.js +43 -0
- package/dist/admin/_pos/pos-rules.js.map +1 -0
- package/dist/admin/_pos/pos-words.js +101 -0
- package/dist/admin/_pos/pos-words.js.map +1 -0
- package/dist/admin/_pos/pos.module.css +154 -0
- package/dist/admin/_pos/shift-row.js +107 -0
- package/dist/admin/_pos/shift-row.js.map +1 -0
- package/dist/admin/_pos/shifts-table.js +72 -0
- package/dist/admin/_pos/shifts-table.js.map +1 -0
- package/dist/admin/_pos/terminal-actions.js +104 -0
- package/dist/admin/_pos/terminal-actions.js.map +1 -0
- package/dist/admin/_pos/use-pos-access.js +20 -0
- package/dist/admin/_pos/use-pos-access.js.map +1 -0
- package/dist/admin/_pos/use-pos-period.js +39 -0
- package/dist/admin/_pos/use-pos-period.js.map +1 -0
- package/dist/admin/_pos/use-pos.js +89 -0
- package/dist/admin/_pos/use-pos.js.map +1 -0
- package/dist/admin/_pos/use-tenant-param.js +20 -0
- package/dist/admin/_pos/use-tenant-param.js.map +1 -0
- package/dist/admin/_settings/index.js +28 -0
- package/dist/admin/_settings/index.js.map +1 -0
- package/dist/admin/_settings/live-announcer.js +35 -0
- package/dist/admin/_settings/live-announcer.js.map +1 -0
- package/dist/admin/_settings/schema.js +82 -0
- package/dist/admin/_settings/schema.js.map +1 -0
- package/dist/admin/_settings/store.js +82 -0
- package/dist/admin/_settings/store.js.map +1 -0
- package/dist/admin/_settings/use-apply-preferences.js +38 -0
- package/dist/admin/_settings/use-apply-preferences.js.map +1 -0
- package/dist/admin/_settings/use-start-page.js +20 -0
- package/dist/admin/_settings/use-start-page.js.map +1 -0
- package/dist/admin/_settings.js +1 -0
- package/dist/admin/_shell/admin-brand.js +15 -0
- package/dist/admin/_shell/admin-brand.js.map +1 -0
- package/dist/admin/_shell/brand.module.css +147 -0
- package/dist/admin/_shell/command-palette.js +103 -0
- package/dist/admin/_shell/command-palette.js.map +1 -0
- package/dist/admin/_shell/command-palette.module.css +109 -0
- package/dist/admin/_shell/frame.module.css +92 -0
- package/dist/admin/_shell/inbox-bell.js +74 -0
- package/dist/admin/_shell/inbox-bell.js.map +1 -0
- package/dist/admin/_shell/inbox.module.css +107 -0
- package/dist/admin/_shell/menus.module.css +55 -0
- package/dist/admin/_shell/modules-context.js +17 -0
- package/dist/admin/_shell/modules-context.js.map +1 -0
- package/dist/admin/_shell/nav-config.js +168 -0
- package/dist/admin/_shell/nav-config.js.map +1 -0
- package/dist/admin/_shell/nav-filter.js +45 -0
- package/dist/admin/_shell/nav-filter.js.map +1 -0
- package/dist/admin/_shell/nav-fold.js +14 -0
- package/dist/admin/_shell/nav-fold.js.map +1 -0
- package/dist/admin/_shell/nav-group.js +78 -0
- package/dist/admin/_shell/nav-group.js.map +1 -0
- package/dist/admin/_shell/nav-modules.js +36 -0
- package/dist/admin/_shell/nav-modules.js.map +1 -0
- package/dist/admin/_shell/nav-row.js +62 -0
- package/dist/admin/_shell/nav-row.js.map +1 -0
- package/dist/admin/_shell/seam-toggle.js +26 -0
- package/dist/admin/_shell/seam-toggle.js.map +1 -0
- package/dist/admin/_shell/section-tabs.js +28 -0
- package/dist/admin/_shell/section-tabs.js.map +1 -0
- package/dist/admin/_shell/shell-skeleton.js +30 -0
- package/dist/admin/_shell/shell-skeleton.js.map +1 -0
- package/dist/admin/_shell/shell-skeleton.module.css +57 -0
- package/dist/admin/_shell/sidebar-footer.js +85 -0
- package/dist/admin/_shell/sidebar-footer.js.map +1 -0
- package/dist/admin/_shell/sidebar-footer.module.css +144 -0
- package/dist/admin/_shell/sidebar.js +87 -0
- package/dist/admin/_shell/sidebar.js.map +1 -0
- package/dist/admin/_shell/sidebar.module.css +259 -0
- package/dist/admin/_shell/sign-out.js +14 -0
- package/dist/admin/_shell/sign-out.js.map +1 -0
- package/dist/admin/_shell/system-status-panel.js +100 -0
- package/dist/admin/_shell/system-status-panel.js.map +1 -0
- package/dist/admin/_shell/system-status-panel.module.css +195 -0
- package/dist/admin/_shell/topbar.js +26 -0
- package/dist/admin/_shell/topbar.js.map +1 -0
- package/dist/admin/_shell/topbar.module.css +84 -0
- package/dist/admin/_shell/use-admin-query-defaults.js +18 -0
- package/dist/admin/_shell/use-admin-query-defaults.js.map +1 -0
- package/dist/admin/_shell/use-fluid-hover.js +62 -0
- package/dist/admin/_shell/use-fluid-hover.js.map +1 -0
- package/dist/admin/_shell/use-open-groups.js +64 -0
- package/dist/admin/_shell/use-open-groups.js.map +1 -0
- package/dist/admin/_shell/use-shell-prefs.js +87 -0
- package/dist/admin/_shell/use-shell-prefs.js.map +1 -0
- package/dist/admin/_shell/user-menu.js +80 -0
- package/dist/admin/_shell/user-menu.js.map +1 -0
- package/dist/admin/_ui/admin.css +801 -0
- package/dist/admin/_ui/chart-colors.js +46 -0
- package/dist/admin/_ui/chart-colors.js.map +1 -0
- package/dist/admin/_ui/column-picker.js +77 -0
- package/dist/admin/_ui/column-picker.js.map +1 -0
- package/dist/admin/_ui/country-label.js +42 -0
- package/dist/admin/_ui/country-label.js.map +1 -0
- package/dist/admin/_ui/country-label.module.css +31 -0
- package/dist/admin/_ui/country-text.js +21 -0
- package/dist/admin/_ui/country-text.js.map +1 -0
- package/dist/admin/_ui/currency-filter-model.js +53 -0
- package/dist/admin/_ui/currency-filter-model.js.map +1 -0
- package/dist/admin/_ui/currency-filter.js +64 -0
- package/dist/admin/_ui/currency-filter.js.map +1 -0
- package/dist/admin/_ui/data-table.js +107 -0
- package/dist/admin/_ui/data-table.js.map +1 -0
- package/dist/admin/_ui/donut-chart.js +193 -0
- package/dist/admin/_ui/donut-chart.js.map +1 -0
- package/dist/admin/_ui/drawer.js +82 -0
- package/dist/admin/_ui/drawer.js.map +1 -0
- package/dist/admin/_ui/drawer.module.css +157 -0
- package/dist/admin/_ui/empty-state.js +47 -0
- package/dist/admin/_ui/empty-state.js.map +1 -0
- package/dist/admin/_ui/filter-bar.js +24 -0
- package/dist/admin/_ui/filter-bar.js.map +1 -0
- package/dist/admin/_ui/filter-dates.js +67 -0
- package/dist/admin/_ui/filter-dates.js.map +1 -0
- package/dist/admin/_ui/filters.js +93 -0
- package/dist/admin/_ui/filters.js.map +1 -0
- package/dist/admin/_ui/filters.module.css +88 -0
- package/dist/admin/_ui/index.js +120 -0
- package/dist/admin/_ui/index.js.map +1 -0
- package/dist/admin/_ui/list-card.js +119 -0
- package/dist/admin/_ui/list-card.js.map +1 -0
- package/dist/admin/_ui/list-card.module.css +96 -0
- package/dist/admin/_ui/loading.js +29 -0
- package/dist/admin/_ui/loading.js.map +1 -0
- package/dist/admin/_ui/money-lines.js +19 -0
- package/dist/admin/_ui/money-lines.js.map +1 -0
- package/dist/admin/_ui/money-lines.module.css +4 -0
- package/dist/admin/_ui/money-view.js +43 -0
- package/dist/admin/_ui/money-view.js.map +1 -0
- package/dist/admin/_ui/motion.css +22 -0
- package/dist/admin/_ui/page-header.js +54 -0
- package/dist/admin/_ui/page-header.js.map +1 -0
- package/dist/admin/_ui/page-header.module.css +45 -0
- package/dist/admin/_ui/page-tabs.js +46 -0
- package/dist/admin/_ui/page-tabs.js.map +1 -0
- package/dist/admin/_ui/pagination.js +68 -0
- package/dist/admin/_ui/pagination.js.map +1 -0
- package/dist/admin/_ui/panel.js +38 -0
- package/dist/admin/_ui/panel.js.map +1 -0
- package/dist/admin/_ui/panel.module.css +87 -0
- package/dist/admin/_ui/period-selector.js +81 -0
- package/dist/admin/_ui/period-selector.js.map +1 -0
- package/dist/admin/_ui/period.js +52 -0
- package/dist/admin/_ui/period.js.map +1 -0
- package/dist/admin/_ui/period.module.css +43 -0
- package/dist/admin/_ui/preferences.css +121 -0
- package/dist/admin/_ui/prefs.js +62 -0
- package/dist/admin/_ui/prefs.js.map +1 -0
- package/dist/admin/_ui/skeleton.js +26 -0
- package/dist/admin/_ui/skeleton.js.map +1 -0
- package/dist/admin/_ui/sparkline.js +56 -0
- package/dist/admin/_ui/sparkline.js.map +1 -0
- package/dist/admin/_ui/stat-card.js +85 -0
- package/dist/admin/_ui/stat-card.js.map +1 -0
- package/dist/admin/_ui/styles.js +74 -0
- package/dist/admin/_ui/styles.js.map +1 -0
- package/dist/admin/_ui/tint.css +87 -0
- package/dist/admin/_ui/trend.js +58 -0
- package/dist/admin/_ui/trend.js.map +1 -0
- package/dist/admin/_ui/workspace-tab.js +25 -0
- package/dist/admin/_ui/workspace-tab.js.map +1 -0
- package/dist/admin/_ui.js +1 -0
- package/dist/admin/accounts/account-activity.js +64 -0
- package/dist/admin/accounts/account-activity.js.map +1 -0
- package/dist/admin/accounts/account-activity.module.css +83 -0
- package/dist/admin/accounts/account-panel.js +177 -0
- package/dist/admin/accounts/account-panel.js.map +1 -0
- package/dist/admin/accounts/account-panel.module.css +213 -0
- package/dist/admin/accounts/account-row.js +122 -0
- package/dist/admin/accounts/account-row.js.map +1 -0
- package/dist/admin/accounts/account-sessions.js +70 -0
- package/dist/admin/accounts/account-sessions.js.map +1 -0
- package/dist/admin/accounts/account-sessions.module.css +55 -0
- package/dist/admin/accounts/account-stage-filter.js +29 -0
- package/dist/admin/accounts/account-stage-filter.js.map +1 -0
- package/dist/admin/accounts/account-stage.js +81 -0
- package/dist/admin/accounts/account-stage.js.map +1 -0
- package/dist/admin/accounts/account-vitals.js +46 -0
- package/dist/admin/accounts/account-vitals.js.map +1 -0
- package/dist/admin/accounts/account-workspaces.js +56 -0
- package/dist/admin/accounts/account-workspaces.js.map +1 -0
- package/dist/admin/accounts/accounts-analytics.js +113 -0
- package/dist/admin/accounts/accounts-analytics.js.map +1 -0
- package/dist/admin/accounts/accounts-kpis.js +70 -0
- package/dist/admin/accounts/accounts-kpis.js.map +1 -0
- package/dist/admin/accounts/accounts-table.js +266 -0
- package/dist/admin/accounts/accounts-table.js.map +1 -0
- package/dist/admin/accounts/accounts-workspace.js +85 -0
- package/dist/admin/accounts/accounts-workspace.js.map +1 -0
- package/dist/admin/accounts/hint.js +12 -0
- package/dist/admin/accounts/hint.js.map +1 -0
- package/dist/admin/accounts/owner-session.js +30 -0
- package/dist/admin/accounts/owner-session.js.map +1 -0
- package/dist/admin/accounts/page.js +11 -0
- package/dist/admin/accounts/page.js.map +1 -0
- package/dist/admin/accounts/relative-time.js +28 -0
- package/dist/admin/accounts/relative-time.js.map +1 -0
- package/dist/admin/accounts/rows.module.css +84 -0
- package/dist/admin/accounts/top-accounts.js +56 -0
- package/dist/admin/accounts/top-accounts.js.map +1 -0
- package/dist/admin/accounts/use-account-actions.js +42 -0
- package/dist/admin/accounts/use-account-actions.js.map +1 -0
- package/dist/admin/accounts/use-account-activity.js +37 -0
- package/dist/admin/accounts/use-account-activity.js.map +1 -0
- package/dist/admin/admins/access-dialog.js +130 -0
- package/dist/admin/admins/access-dialog.js.map +1 -0
- package/dist/admin/admins/admin-row.js +74 -0
- package/dist/admin/admins/admin-row.js.map +1 -0
- package/dist/admin/admins/admins-activity.js +28 -0
- package/dist/admin/admins/admins-activity.js.map +1 -0
- package/dist/admin/admins/admins-analytics.js +116 -0
- package/dist/admin/admins/admins-analytics.js.map +1 -0
- package/dist/admin/admins/admins-kpis.js +77 -0
- package/dist/admin/admins/admins-kpis.js.map +1 -0
- package/dist/admin/admins/admins-table.js +75 -0
- package/dist/admin/admins/admins-table.js.map +1 -0
- package/dist/admin/admins/admins-workspace.js +109 -0
- package/dist/admin/admins/admins-workspace.js.map +1 -0
- package/dist/admin/admins/admins.module.css +191 -0
- package/dist/admin/admins/invite-dialog.js +134 -0
- package/dist/admin/admins/invite-dialog.js.map +1 -0
- package/dist/admin/admins/page.js +11 -0
- package/dist/admin/admins/page.js.map +1 -0
- package/dist/admin/admins/recent-activity.js +38 -0
- package/dist/admin/admins/recent-activity.js.map +1 -0
- package/dist/admin/admins/recent-activity.module.css +60 -0
- package/dist/admin/admins/role-choices.js +27 -0
- package/dist/admin/admins/role-choices.js.map +1 -0
- package/dist/admin/admins/secret-field.js +60 -0
- package/dist/admin/admins/secret-field.js.map +1 -0
- package/dist/admin/admins/temp-password-dialog.js +39 -0
- package/dist/admin/admins/temp-password-dialog.js.map +1 -0
- package/dist/admin/admins/use-admin-actions.js +57 -0
- package/dist/admin/admins/use-admin-actions.js.map +1 -0
- package/dist/admin/audit/action-meta.js +26 -0
- package/dist/admin/audit/action-meta.js.map +1 -0
- package/dist/admin/audit/activity-chart.js +117 -0
- package/dist/admin/audit/activity-chart.js.map +1 -0
- package/dist/admin/audit/activity-chart.module.css +44 -0
- package/dist/admin/audit/audit-analytics.js +146 -0
- package/dist/admin/audit/audit-analytics.js.map +1 -0
- package/dist/admin/audit/audit-filters.js +78 -0
- package/dist/admin/audit/audit-filters.js.map +1 -0
- package/dist/admin/audit/audit-log.js +132 -0
- package/dist/admin/audit/audit-log.js.map +1 -0
- package/dist/admin/audit/audit-workspace.js +84 -0
- package/dist/admin/audit/audit-workspace.js.map +1 -0
- package/dist/admin/audit/audit.module.css +135 -0
- package/dist/admin/audit/bar-list.js +27 -0
- package/dist/admin/audit/bar-list.js.map +1 -0
- package/dist/admin/audit/empty-block.js +13 -0
- package/dist/admin/audit/empty-block.js.map +1 -0
- package/dist/admin/audit/format.js +22 -0
- package/dist/admin/audit/format.js.map +1 -0
- package/dist/admin/audit/kpi-brand.module.css +7 -0
- package/dist/admin/audit/load-failed.js +20 -0
- package/dist/admin/audit/load-failed.js.map +1 -0
- package/dist/admin/audit/metric-card.module.css +10 -0
- package/dist/admin/audit/page.js +11 -0
- package/dist/admin/audit/page.js.map +1 -0
- package/dist/admin/audit/page.module.css +12 -0
- package/dist/admin/audit/section-header.js +13 -0
- package/dist/admin/audit/section-header.js.map +1 -0
- package/dist/admin/audit/section-header.module.css +5 -0
- package/dist/admin/audit/status-fill.js +14 -0
- package/dist/admin/audit/status-fill.js.map +1 -0
- package/dist/admin/audit/status-pill.js +52 -0
- package/dist/admin/audit/status-pill.js.map +1 -0
- package/dist/admin/audit/status-pill.module.css +58 -0
- package/dist/admin/audit/tinted.js +17 -0
- package/dist/admin/audit/tinted.js.map +1 -0
- package/dist/admin/audit/use-range.js +16 -0
- package/dist/admin/audit/use-range.js.map +1 -0
- package/dist/admin/audit/when.js +14 -0
- package/dist/admin/audit/when.js.map +1 -0
- package/dist/admin/cash/page.js +184 -0
- package/dist/admin/cash/page.js.map +1 -0
- package/dist/admin/change-password/page.js +164 -0
- package/dist/admin/change-password/page.js.map +1 -0
- package/dist/admin/commerce/commerce-console.js +106 -0
- package/dist/admin/commerce/commerce-console.js.map +1 -0
- package/dist/admin/commerce/commerce-overview.js +102 -0
- package/dist/admin/commerce/commerce-overview.js.map +1 -0
- package/dist/admin/commerce/console.module.css +63 -0
- package/dist/admin/commerce/merchant-meta.js +40 -0
- package/dist/admin/commerce/merchant-meta.js.map +1 -0
- package/dist/admin/commerce/merchant-picker.js +114 -0
- package/dist/admin/commerce/merchant-picker.js.map +1 -0
- package/dist/admin/commerce/merchant-view.js +113 -0
- package/dist/admin/commerce/merchant-view.js.map +1 -0
- package/dist/admin/commerce/overview-kpis.js +100 -0
- package/dist/admin/commerce/overview-kpis.js.map +1 -0
- package/dist/admin/commerce/overview-services.js +40 -0
- package/dist/admin/commerce/overview-services.js.map +1 -0
- package/dist/admin/commerce/overview-top-merchants.js +51 -0
- package/dist/admin/commerce/overview-top-merchants.js.map +1 -0
- package/dist/admin/commerce/overview.module.css +145 -0
- package/dist/admin/commerce/page.js +11 -0
- package/dist/admin/commerce/page.js.map +1 -0
- package/dist/admin/commerce/picker.module.css +98 -0
- package/dist/admin/feedback/answer-case-button.js +30 -0
- package/dist/admin/feedback/answer-case-button.js.map +1 -0
- package/dist/admin/feedback/answers-view.js +87 -0
- package/dist/admin/feedback/answers-view.js.map +1 -0
- package/dist/admin/feedback/category-label.js +12 -0
- package/dist/admin/feedback/category-label.js.map +1 -0
- package/dist/admin/feedback/comment-stream.js +62 -0
- package/dist/admin/feedback/comment-stream.js.map +1 -0
- package/dist/admin/feedback/feedback-access.js +21 -0
- package/dist/admin/feedback/feedback-access.js.map +1 -0
- package/dist/admin/feedback/feedback-detail-drawer.js +95 -0
- package/dist/admin/feedback/feedback-detail-drawer.js.map +1 -0
- package/dist/admin/feedback/feedback-drawer-footer.js +60 -0
- package/dist/admin/feedback/feedback-drawer-footer.js.map +1 -0
- package/dist/admin/feedback/feedback-drawer.module.css +162 -0
- package/dist/admin/feedback/feedback-facts.js +84 -0
- package/dist/admin/feedback/feedback-facts.js.map +1 -0
- package/dist/admin/feedback/feedback-kpis.js +50 -0
- package/dist/admin/feedback/feedback-kpis.js.map +1 -0
- package/dist/admin/feedback/feedback-options.js +49 -0
- package/dist/admin/feedback/feedback-options.js.map +1 -0
- package/dist/admin/feedback/feedback-sentiment.js +45 -0
- package/dist/admin/feedback/feedback-sentiment.js.map +1 -0
- package/dist/admin/feedback/feedback.module.css +136 -0
- package/dist/admin/feedback/new-prompt-button.js +13 -0
- package/dist/admin/feedback/new-prompt-button.js.map +1 -0
- package/dist/admin/feedback/page.js +57 -0
- package/dist/admin/feedback/page.js.map +1 -0
- package/dist/admin/feedback/prompt-audience-fields.js +63 -0
- package/dist/admin/feedback/prompt-audience-fields.js.map +1 -0
- package/dist/admin/feedback/prompt-builder.js +85 -0
- package/dist/admin/feedback/prompt-builder.js.map +1 -0
- package/dist/admin/feedback/prompt-builder.module.css +134 -0
- package/dist/admin/feedback/prompt-delivery-fields.js +134 -0
- package/dist/admin/feedback/prompt-delivery-fields.js.map +1 -0
- package/dist/admin/feedback/prompt-dialog.js +88 -0
- package/dist/admin/feedback/prompt-dialog.js.map +1 -0
- package/dist/admin/feedback/prompt-dialog.module.css +199 -0
- package/dist/admin/feedback/prompt-draft.js +71 -0
- package/dist/admin/feedback/prompt-draft.js.map +1 -0
- package/dist/admin/feedback/prompt-insights.js +120 -0
- package/dist/admin/feedback/prompt-insights.js.map +1 -0
- package/dist/admin/feedback/prompt-operations.js +89 -0
- package/dist/admin/feedback/prompt-operations.js.map +1 -0
- package/dist/admin/feedback/prompt-operations.module.css +128 -0
- package/dist/admin/feedback/prompt-preview.js +71 -0
- package/dist/admin/feedback/prompt-preview.js.map +1 -0
- package/dist/admin/feedback/prompt-preview.module.css +135 -0
- package/dist/admin/feedback/prompt-question-fields.js +83 -0
- package/dist/admin/feedback/prompt-question-fields.js.map +1 -0
- package/dist/admin/feedback/prompt-response-fields.js +103 -0
- package/dist/admin/feedback/prompt-response-fields.js.map +1 -0
- package/dist/admin/feedback/prompt-review.js +80 -0
- package/dist/admin/feedback/prompt-review.js.map +1 -0
- package/dist/admin/feedback/prompt-schedule-field.js +67 -0
- package/dist/admin/feedback/prompt-schedule-field.js.map +1 -0
- package/dist/admin/feedback/prompt-stepper.js +33 -0
- package/dist/admin/feedback/prompt-stepper.js.map +1 -0
- package/dist/admin/feedback/prompt-summary.module.css +39 -0
- package/dist/admin/feedback/prompt-validation.js +48 -0
- package/dist/admin/feedback/prompt-validation.js.map +1 -0
- package/dist/admin/feedback/prompt-wizard.js +147 -0
- package/dist/admin/feedback/prompt-wizard.js.map +1 -0
- package/dist/admin/feedback/prompts-table.js +85 -0
- package/dist/admin/feedback/prompts-table.js.map +1 -0
- package/dist/admin/feedback/prompts-view.js +132 -0
- package/dist/admin/feedback/prompts-view.js.map +1 -0
- package/dist/admin/feedback/response-card.js +78 -0
- package/dist/admin/feedback/response-card.js.map +1 -0
- package/dist/admin/feedback/responses-table.js +132 -0
- package/dist/admin/feedback/responses-table.js.map +1 -0
- package/dist/admin/feedback/responses-view.js +142 -0
- package/dist/admin/feedback/responses-view.js.map +1 -0
- package/dist/admin/feedback/responses.module.css +147 -0
- package/dist/admin/feedback/sentiment-overview.js +103 -0
- package/dist/admin/feedback/sentiment-overview.js.map +1 -0
- package/dist/admin/feedback/sentiment.module.css +150 -0
- package/dist/admin/feedback/use-admin-feedback.js +15 -0
- package/dist/admin/feedback/use-admin-feedback.js.map +1 -0
- package/dist/admin/feedback/use-admin-prompts.js +15 -0
- package/dist/admin/feedback/use-admin-prompts.js.map +1 -0
- package/dist/admin/feedback/use-admin-signals.js +22 -0
- package/dist/admin/feedback/use-admin-signals.js.map +1 -0
- package/dist/admin/feedback/use-open-case.js +53 -0
- package/dist/admin/feedback/use-open-case.js.map +1 -0
- package/dist/admin/feedback/use-prompt-save.js +59 -0
- package/dist/admin/feedback/use-prompt-save.js.map +1 -0
- package/dist/admin/feedback/use-steps.js +45 -0
- package/dist/admin/feedback/use-steps.js.map +1 -0
- package/dist/admin/feedback-signals/_components/comments-panel.js +72 -0
- package/dist/admin/feedback-signals/_components/comments-panel.js.map +1 -0
- package/dist/admin/feedback-signals/_components/health-panel.js +46 -0
- package/dist/admin/feedback-signals/_components/health-panel.js.map +1 -0
- package/dist/admin/feedback-signals/_components/messages-panel.js +96 -0
- package/dist/admin/feedback-signals/_components/messages-panel.js.map +1 -0
- package/dist/admin/feedback-signals/_components/movement.js +27 -0
- package/dist/admin/feedback-signals/_components/movement.js.map +1 -0
- package/dist/admin/feedback-signals/_components/pick-up.js +67 -0
- package/dist/admin/feedback-signals/_components/pick-up.js.map +1 -0
- package/dist/admin/feedback-signals/_components/scores-panel.js +68 -0
- package/dist/admin/feedback-signals/_components/scores-panel.js.map +1 -0
- package/dist/admin/feedback-signals/_components/signals-workspace.js +84 -0
- package/dist/admin/feedback-signals/_components/signals-workspace.js.map +1 -0
- package/dist/admin/feedback-signals/_components/use-feedback-signals.js +51 -0
- package/dist/admin/feedback-signals/_components/use-feedback-signals.js.map +1 -0
- package/dist/admin/feedback-signals/page.js +11 -0
- package/dist/admin/feedback-signals/page.js.map +1 -0
- package/dist/admin/growth-chart-model.js +75 -0
- package/dist/admin/growth-chart-model.js.map +1 -0
- package/dist/admin/growth-chart-parts.js +186 -0
- package/dist/admin/growth-chart-parts.js.map +1 -0
- package/dist/admin/growth-chart.js +177 -0
- package/dist/admin/growth-chart.js.map +1 -0
- package/dist/admin/hooks.js +257 -0
- package/dist/admin/hooks.js.map +1 -0
- package/dist/admin/layout.js +153 -0
- package/dist/admin/layout.js.map +1 -0
- package/dist/admin/login/page.js +215 -0
- package/dist/admin/login/page.js.map +1 -0
- package/dist/admin/newsletters/[id]/page.js +13 -0
- package/dist/admin/newsletters/[id]/page.js.map +1 -0
- package/dist/admin/newsletters/audience/[contactId]/page.js +12 -0
- package/dist/admin/newsletters/audience/[contactId]/page.js.map +1 -0
- package/dist/admin/newsletters/audience/audience-list.js +163 -0
- package/dist/admin/newsletters/audience/audience-list.js.map +1 -0
- package/dist/admin/newsletters/audience/contact-deliveries.js +90 -0
- package/dist/admin/newsletters/audience/contact-deliveries.js.map +1 -0
- package/dist/admin/newsletters/audience/contact-row.js +63 -0
- package/dist/admin/newsletters/audience/contact-row.js.map +1 -0
- package/dist/admin/newsletters/audience/contact-screen.js +59 -0
- package/dist/admin/newsletters/audience/contact-screen.js.map +1 -0
- package/dist/admin/newsletters/audience/contact-summary.js +70 -0
- package/dist/admin/newsletters/audience/contact-summary.js.map +1 -0
- package/dist/admin/newsletters/audience/contacts.js +99 -0
- package/dist/admin/newsletters/audience/contacts.js.map +1 -0
- package/dist/admin/newsletters/audience/page.js +11 -0
- package/dist/admin/newsletters/audience/page.js.map +1 -0
- package/dist/admin/newsletters/audience/status-change.js +53 -0
- package/dist/admin/newsletters/audience/status-change.js.map +1 -0
- package/dist/admin/newsletters/audience/status-dialog.js +103 -0
- package/dist/admin/newsletters/audience/status-dialog.js.map +1 -0
- package/dist/admin/newsletters/audience/use-contacts.js +84 -0
- package/dist/admin/newsletters/audience/use-contacts.js.map +1 -0
- package/dist/admin/newsletters/autosave.js +58 -0
- package/dist/admin/newsletters/autosave.js.map +1 -0
- package/dist/admin/newsletters/brand-image-field.js +38 -0
- package/dist/admin/newsletters/brand-image-field.js.map +1 -0
- package/dist/admin/newsletters/composer.js +122 -0
- package/dist/admin/newsletters/composer.js.map +1 -0
- package/dist/admin/newsletters/content.js +59 -0
- package/dist/admin/newsletters/content.js.map +1 -0
- package/dist/admin/newsletters/deliveries.js +111 -0
- package/dist/admin/newsletters/deliveries.js.map +1 -0
- package/dist/admin/newsletters/digest-items.js +91 -0
- package/dist/admin/newsletters/digest-items.js.map +1 -0
- package/dist/admin/newsletters/editor-fields.js +135 -0
- package/dist/admin/newsletters/editor-fields.js.map +1 -0
- package/dist/admin/newsletters/format-date.js +11 -0
- package/dist/admin/newsletters/format-date.js.map +1 -0
- package/dist/admin/newsletters/image-field.js +55 -0
- package/dist/admin/newsletters/image-field.js.map +1 -0
- package/dist/admin/newsletters/image-picker.js +86 -0
- package/dist/admin/newsletters/image-picker.js.map +1 -0
- package/dist/admin/newsletters/image-upload.js +37 -0
- package/dist/admin/newsletters/image-upload.js.map +1 -0
- package/dist/admin/newsletters/labels.js +32 -0
- package/dist/admin/newsletters/labels.js.map +1 -0
- package/dist/admin/newsletters/layout-picker.js +58 -0
- package/dist/admin/newsletters/layout-picker.js.map +1 -0
- package/dist/admin/newsletters/layout-schematic.js +46 -0
- package/dist/admin/newsletters/layout-schematic.js.map +1 -0
- package/dist/admin/newsletters/markdown-field.js +98 -0
- package/dist/admin/newsletters/markdown-field.js.map +1 -0
- package/dist/admin/newsletters/markdown-insert.js +45 -0
- package/dist/admin/newsletters/markdown-insert.js.map +1 -0
- package/dist/admin/newsletters/newsletter-row.js +69 -0
- package/dist/admin/newsletters/newsletter-row.js.map +1 -0
- package/dist/admin/newsletters/newsletter-screen.js +25 -0
- package/dist/admin/newsletters/newsletter-screen.js.map +1 -0
- package/dist/admin/newsletters/newsletters-list.js +140 -0
- package/dist/admin/newsletters/newsletters-list.js.map +1 -0
- package/dist/admin/newsletters/not-available.js +7 -0
- package/dist/admin/newsletters/not-available.js.map +1 -0
- package/dist/admin/newsletters/page.js +11 -0
- package/dist/admin/newsletters/page.js.map +1 -0
- package/dist/admin/newsletters/preview-pane.js +68 -0
- package/dist/admin/newsletters/preview-pane.js.map +1 -0
- package/dist/admin/newsletters/problems.js +73 -0
- package/dist/admin/newsletters/problems.js.map +1 -0
- package/dist/admin/newsletters/recipient-row.js +73 -0
- package/dist/admin/newsletters/recipient-row.js.map +1 -0
- package/dist/admin/newsletters/recipients-empty.js +21 -0
- package/dist/admin/newsletters/recipients-empty.js.map +1 -0
- package/dist/admin/newsletters/recipients-selection.js +32 -0
- package/dist/admin/newsletters/recipients-selection.js.map +1 -0
- package/dist/admin/newsletters/recipients-tab.js +172 -0
- package/dist/admin/newsletters/recipients-tab.js.map +1 -0
- package/dist/admin/newsletters/record-header.js +28 -0
- package/dist/admin/newsletters/record-header.js.map +1 -0
- package/dist/admin/newsletters/retry-selection.js +45 -0
- package/dist/admin/newsletters/retry-selection.js.map +1 -0
- package/dist/admin/newsletters/review-dialog.js +95 -0
- package/dist/admin/newsletters/review-dialog.js.map +1 -0
- package/dist/admin/newsletters/save-file.js +12 -0
- package/dist/admin/newsletters/save-file.js.map +1 -0
- package/dist/admin/newsletters/save-indicator.js +28 -0
- package/dist/admin/newsletters/save-indicator.js.map +1 -0
- package/dist/admin/newsletters/section-tabs.js +26 -0
- package/dist/admin/newsletters/section-tabs.js.map +1 -0
- package/dist/admin/newsletters/sending.js +36 -0
- package/dist/admin/newsletters/sending.js.map +1 -0
- package/dist/admin/newsletters/sent-summary.js +77 -0
- package/dist/admin/newsletters/sent-summary.js.map +1 -0
- package/dist/admin/newsletters/sent-view.js +60 -0
- package/dist/admin/newsletters/sent-view.js.map +1 -0
- package/dist/admin/newsletters/signature-editor-fields.js +75 -0
- package/dist/admin/newsletters/signature-editor-fields.js.map +1 -0
- package/dist/admin/newsletters/signature-editor.js +63 -0
- package/dist/admin/newsletters/signature-editor.js.map +1 -0
- package/dist/admin/newsletters/signature-field.js +44 -0
- package/dist/admin/newsletters/signature-field.js.map +1 -0
- package/dist/admin/newsletters/signature-preview.js +27 -0
- package/dist/admin/newsletters/signature-preview.js.map +1 -0
- package/dist/admin/newsletters/signature-row.js +54 -0
- package/dist/admin/newsletters/signature-row.js.map +1 -0
- package/dist/admin/newsletters/signature-values.js +75 -0
- package/dist/admin/newsletters/signature-values.js.map +1 -0
- package/dist/admin/newsletters/signatures-dialog.js +98 -0
- package/dist/admin/newsletters/signatures-dialog.js.map +1 -0
- package/dist/admin/newsletters/signatures.js +34 -0
- package/dist/admin/newsletters/signatures.js.map +1 -0
- package/dist/admin/newsletters/use-autosave.js +147 -0
- package/dist/admin/newsletters/use-autosave.js.map +1 -0
- package/dist/admin/newsletters/use-deliveries.js +90 -0
- package/dist/admin/newsletters/use-deliveries.js.map +1 -0
- package/dist/admin/newsletters/use-newsletter-actions.js +68 -0
- package/dist/admin/newsletters/use-newsletter-actions.js.map +1 -0
- package/dist/admin/newsletters/use-newsletters.js +83 -0
- package/dist/admin/newsletters/use-newsletters.js.map +1 -0
- package/dist/admin/newsletters/use-send-actions.js +62 -0
- package/dist/admin/newsletters/use-send-actions.js.map +1 -0
- package/dist/admin/newsletters/use-signature-preview.js +29 -0
- package/dist/admin/newsletters/use-signature-preview.js.map +1 -0
- package/dist/admin/newsletters/use-signatures.js +55 -0
- package/dist/admin/newsletters/use-signatures.js.map +1 -0
- package/dist/admin/page.js +179 -0
- package/dist/admin/page.js.map +1 -0
- package/dist/admin/payout-providers/add-flow.js +84 -0
- package/dist/admin/payout-providers/add-flow.js.map +1 -0
- package/dist/admin/payout-providers/attention-list.js +135 -0
- package/dist/admin/payout-providers/attention-list.js.map +1 -0
- package/dist/admin/payout-providers/connect-step.js +180 -0
- package/dist/admin/payout-providers/connect-step.js.map +1 -0
- package/dist/admin/payout-providers/editor/auth-section.js +166 -0
- package/dist/admin/payout-providers/editor/auth-section.js.map +1 -0
- package/dist/admin/payout-providers/editor/call-editor.js +107 -0
- package/dist/admin/payout-providers/editor/call-editor.js.map +1 -0
- package/dist/admin/payout-providers/editor/condition-editor.js +109 -0
- package/dist/admin/payout-providers/editor/condition-editor.js.map +1 -0
- package/dist/admin/payout-providers/editor/editor.module.css +123 -0
- package/dist/admin/payout-providers/editor/fields.js +144 -0
- package/dist/admin/payout-providers/editor/fields.js.map +1 -0
- package/dist/admin/payout-providers/editor/flow-editor.js +160 -0
- package/dist/admin/payout-providers/editor/flow-editor.js.map +1 -0
- package/dist/admin/payout-providers/editor/flow-parts.js +69 -0
- package/dist/admin/payout-providers/editor/flow-parts.js.map +1 -0
- package/dist/admin/payout-providers/editor/flow-sections.js +147 -0
- package/dist/admin/payout-providers/editor/flow-sections.js.map +1 -0
- package/dist/admin/payout-providers/editor/rules-editor.js +151 -0
- package/dist/admin/payout-providers/editor/rules-editor.js.map +1 -0
- package/dist/admin/payout-providers/editor/step-editor.js +157 -0
- package/dist/admin/payout-providers/editor/step-editor.js.map +1 -0
- package/dist/admin/payout-providers/editor/transfer-section.js +103 -0
- package/dist/admin/payout-providers/editor/transfer-section.js.map +1 -0
- package/dist/admin/payout-providers/page.js +94 -0
- package/dist/admin/payout-providers/page.js.map +1 -0
- package/dist/admin/payout-providers/payout-providers.module.css +179 -0
- package/dist/admin/payout-providers/pin-step.js +84 -0
- package/dist/admin/payout-providers/pin-step.js.map +1 -0
- package/dist/admin/payout-providers/provider-detail.js +148 -0
- package/dist/admin/payout-providers/provider-detail.js.map +1 -0
- package/dist/admin/payout-providers/provider-list.js +37 -0
- package/dist/admin/payout-providers/provider-list.js.map +1 -0
- package/dist/admin/payout-providers/sections.module.css +151 -0
- package/dist/admin/payout-providers/shared.js +34 -0
- package/dist/admin/payout-providers/shared.js.map +1 -0
- package/dist/admin/payout-providers/status.js +17 -0
- package/dist/admin/payout-providers/status.js.map +1 -0
- package/dist/admin/payout-providers/step.js +31 -0
- package/dist/admin/payout-providers/step.js.map +1 -0
- package/dist/admin/payout-providers/test-transfer.js +161 -0
- package/dist/admin/payout-providers/test-transfer.js.map +1 -0
- package/dist/admin/payout-providers/use-connect.js +108 -0
- package/dist/admin/payout-providers/use-connect.js.map +1 -0
- package/dist/admin/payout-providers/verify-step.js +57 -0
- package/dist/admin/payout-providers/verify-step.js.map +1 -0
- package/dist/admin/payout-tiers/_tier-dialog.js +205 -0
- package/dist/admin/payout-tiers/_tier-dialog.js.map +1 -0
- package/dist/admin/payout-tiers/page.js +11 -0
- package/dist/admin/payout-tiers/page.js.map +1 -0
- package/dist/admin/payout-tiers/tier-preview-result.js +58 -0
- package/dist/admin/payout-tiers/tier-preview-result.js.map +1 -0
- package/dist/admin/payout-tiers/tier-preview-tab.js +67 -0
- package/dist/admin/payout-tiers/tier-preview-tab.js.map +1 -0
- package/dist/admin/payout-tiers/tier-preview.js +41 -0
- package/dist/admin/payout-tiers/tier-preview.js.map +1 -0
- package/dist/admin/payout-tiers/tiers-table.js +151 -0
- package/dist/admin/payout-tiers/tiers-table.js.map +1 -0
- package/dist/admin/payout-tiers/tiers-workspace.js +56 -0
- package/dist/admin/payout-tiers/tiers-workspace.js.map +1 -0
- package/dist/admin/payout-tiers/use-tiers.js +14 -0
- package/dist/admin/payout-tiers/use-tiers.js.map +1 -0
- package/dist/admin/pos/page.js +11 -0
- package/dist/admin/pos/page.js.map +1 -0
- package/dist/admin/pos/pos-workspace.js +66 -0
- package/dist/admin/pos/pos-workspace.js.map +1 -0
- package/dist/admin/pos/shifts-tab.js +111 -0
- package/dist/admin/pos/shifts-tab.js.map +1 -0
- package/dist/admin/pos/terminal-row.js +94 -0
- package/dist/admin/pos/terminal-row.js.map +1 -0
- package/dist/admin/pos/terminals/[id]/page.js +12 -0
- package/dist/admin/pos/terminals/[id]/page.js.map +1 -0
- package/dist/admin/pos/terminals/[id]/terminal-page.js +119 -0
- package/dist/admin/pos/terminals/[id]/terminal-page.js.map +1 -0
- package/dist/admin/pos/terminals/[id]/terminal-panels.js +58 -0
- package/dist/admin/pos/terminals/[id]/terminal-panels.js.map +1 -0
- package/dist/admin/pos/terminals/[id]/terminal-people.js +63 -0
- package/dist/admin/pos/terminals/[id]/terminal-people.js.map +1 -0
- package/dist/admin/pos/terminals/[id]/terminal.module.css +103 -0
- package/dist/admin/pos/terminals-tab.js +147 -0
- package/dist/admin/pos/terminals-tab.js.map +1 -0
- package/dist/admin/pricing/approvals-tab.js +47 -0
- package/dist/admin/pricing/approvals-tab.js.map +1 -0
- package/dist/admin/pricing/cancel-plan-dialog.js +85 -0
- package/dist/admin/pricing/cancel-plan-dialog.js.map +1 -0
- package/dist/admin/pricing/change-list.js +9 -0
- package/dist/admin/pricing/change-list.js.map +1 -0
- package/dist/admin/pricing/change-plan-dialog.js +84 -0
- package/dist/admin/pricing/change-plan-dialog.js.map +1 -0
- package/dist/admin/pricing/display-preview.js +51 -0
- package/dist/admin/pricing/display-preview.js.map +1 -0
- package/dist/admin/pricing/display-tab.js +76 -0
- package/dist/admin/pricing/display-tab.js.map +1 -0
- package/dist/admin/pricing/features-tab.js +48 -0
- package/dist/admin/pricing/features-tab.js.map +1 -0
- package/dist/admin/pricing/page.js +30 -0
- package/dist/admin/pricing/page.js.map +1 -0
- package/dist/admin/pricing/plan-approval.js +97 -0
- package/dist/admin/pricing/plan-approval.js.map +1 -0
- package/dist/admin/pricing/plan-card-product.js +63 -0
- package/dist/admin/pricing/plan-card-product.js.map +1 -0
- package/dist/admin/pricing/plan-changes.js +54 -0
- package/dist/admin/pricing/plan-changes.js.map +1 -0
- package/dist/admin/pricing/plan-drawer.js +97 -0
- package/dist/admin/pricing/plan-drawer.js.map +1 -0
- package/dist/admin/pricing/plan-form-basics.js +59 -0
- package/dist/admin/pricing/plan-form-basics.js.map +1 -0
- package/dist/admin/pricing/plan-form-dialog.js +103 -0
- package/dist/admin/pricing/plan-form-dialog.js.map +1 -0
- package/dist/admin/pricing/plan-form-features.js +59 -0
- package/dist/admin/pricing/plan-form-features.js.map +1 -0
- package/dist/admin/pricing/plan-form-review.js +67 -0
- package/dist/admin/pricing/plan-form-review.js.map +1 -0
- package/dist/admin/pricing/plan-model.js +91 -0
- package/dist/admin/pricing/plan-model.js.map +1 -0
- package/dist/admin/pricing/plan-row.js +59 -0
- package/dist/admin/pricing/plan-row.js.map +1 -0
- package/dist/admin/pricing/plans-tab.js +84 -0
- package/dist/admin/pricing/plans-tab.js.map +1 -0
- package/dist/admin/pricing/price-form-dialog.js +133 -0
- package/dist/admin/pricing/price-form-dialog.js.map +1 -0
- package/dist/admin/pricing/price-history.js +25 -0
- package/dist/admin/pricing/price-history.js.map +1 -0
- package/dist/admin/pricing/price-model.js +47 -0
- package/dist/admin/pricing/price-model.js.map +1 -0
- package/dist/admin/pricing/price-review.js +104 -0
- package/dist/admin/pricing/price-review.js.map +1 -0
- package/dist/admin/pricing/price-tab.js +101 -0
- package/dist/admin/pricing/price-tab.js.map +1 -0
- package/dist/admin/pricing/pricing-tabs.js +28 -0
- package/dist/admin/pricing/pricing-tabs.js.map +1 -0
- package/dist/admin/pricing/pricing.module.css +188 -0
- package/dist/admin/pricing/subscription-events.js +33 -0
- package/dist/admin/pricing/subscription-events.js.map +1 -0
- package/dist/admin/pricing/subscription-history.js +103 -0
- package/dist/admin/pricing/subscription-history.js.map +1 -0
- package/dist/admin/pricing/subscription-plan.js +51 -0
- package/dist/admin/pricing/subscription-plan.js.map +1 -0
- package/dist/admin/pricing/subscription-row.js +70 -0
- package/dist/admin/pricing/subscription-row.js.map +1 -0
- package/dist/admin/pricing/subscriptions-tab.js +141 -0
- package/dist/admin/pricing/subscriptions-tab.js.map +1 -0
- package/dist/admin/pricing/use-plans.js +49 -0
- package/dist/admin/pricing/use-plans.js.map +1 -0
- package/dist/admin/pricing/use-pricing.js +38 -0
- package/dist/admin/pricing/use-pricing.js.map +1 -0
- package/dist/admin/pricing/use-subscriptions.js +21 -0
- package/dist/admin/pricing/use-subscriptions.js.map +1 -0
- package/dist/admin/product-insights/all-merchants-view.js +146 -0
- package/dist/admin/product-insights/all-merchants-view.js.map +1 -0
- package/dist/admin/product-insights/page.js +11 -0
- package/dist/admin/product-insights/page.js.map +1 -0
- package/dist/admin/product-insights/product-insights-workspace.js +112 -0
- package/dist/admin/product-insights/product-insights-workspace.js.map +1 -0
- package/dist/admin/product-insights/product-insights.module.css +114 -0
- package/dist/admin/product-insights/report-copy.js +69 -0
- package/dist/admin/product-insights/report-copy.js.map +1 -0
- package/dist/admin/product-insights/report-empty.js +14 -0
- package/dist/admin/product-insights/report-empty.js.map +1 -0
- package/dist/admin/product-insights/report-kpis.js +54 -0
- package/dist/admin/product-insights/report-kpis.js.map +1 -0
- package/dist/admin/product-insights/report-panel.js +129 -0
- package/dist/admin/product-insights/report-panel.js.map +1 -0
- package/dist/admin/product-insights/report-ranking.js +44 -0
- package/dist/admin/product-insights/report-ranking.js.map +1 -0
- package/dist/admin/product-insights/use-insight-report.js +59 -0
- package/dist/admin/product-insights/use-insight-report.js.map +1 -0
- package/dist/admin/revenue/channel-panel.js +49 -0
- package/dist/admin/revenue/channel-panel.js.map +1 -0
- package/dist/admin/revenue/channel-rows.js +17 -0
- package/dist/admin/revenue/channel-rows.js.map +1 -0
- package/dist/admin/revenue/cohort-panel.js +74 -0
- package/dist/admin/revenue/cohort-panel.js.map +1 -0
- package/dist/admin/revenue/download-button.js +40 -0
- package/dist/admin/revenue/download-button.js.map +1 -0
- package/dist/admin/revenue/figure-list.js +19 -0
- package/dist/admin/revenue/figure-list.js.map +1 -0
- package/dist/admin/revenue/health-panel.js +59 -0
- package/dist/admin/revenue/health-panel.js.map +1 -0
- package/dist/admin/revenue/ledger-model.js +84 -0
- package/dist/admin/revenue/ledger-model.js.map +1 -0
- package/dist/admin/revenue/ledger.module.css +101 -0
- package/dist/admin/revenue/merchant-payments-view.js +231 -0
- package/dist/admin/revenue/merchant-payments-view.js.map +1 -0
- package/dist/admin/revenue/method-cards.js +32 -0
- package/dist/admin/revenue/method-cards.js.map +1 -0
- package/dist/admin/revenue/page.js +11 -0
- package/dist/admin/revenue/page.js.map +1 -0
- package/dist/admin/revenue/plan-mix-panel.js +62 -0
- package/dist/admin/revenue/plan-mix-panel.js.map +1 -0
- package/dist/admin/revenue/platform-fees.js +9 -0
- package/dist/admin/revenue/platform-fees.js.map +1 -0
- package/dist/admin/revenue/quality-panel.js +71 -0
- package/dist/admin/revenue/quality-panel.js.map +1 -0
- package/dist/admin/revenue/revenue-kpis.js +73 -0
- package/dist/admin/revenue/revenue-kpis.js.map +1 -0
- package/dist/admin/revenue/revenue-overview.js +132 -0
- package/dist/admin/revenue/revenue-overview.js.map +1 -0
- package/dist/admin/revenue/revenue-retention.js +31 -0
- package/dist/admin/revenue/revenue-retention.js.map +1 -0
- package/dist/admin/revenue/revenue-workspace.js +171 -0
- package/dist/admin/revenue/revenue-workspace.js.map +1 -0
- package/dist/admin/revenue/revenue.module.css +196 -0
- package/dist/admin/revenue/subscriptions-panel.js +58 -0
- package/dist/admin/revenue/subscriptions-panel.js.map +1 -0
- package/dist/admin/revenue/subscriptions-view.js +188 -0
- package/dist/admin/revenue/subscriptions-view.js.map +1 -0
- package/dist/admin/revenue/top-tenants-panel.js +96 -0
- package/dist/admin/revenue/top-tenants-panel.js.map +1 -0
- package/dist/admin/reviews/merchant-filter.js +122 -0
- package/dist/admin/reviews/merchant-filter.js.map +1 -0
- package/dist/admin/reviews/merchant-filter.module.css +113 -0
- package/dist/admin/reviews/page.js +124 -0
- package/dist/admin/reviews/page.js.map +1 -0
- package/dist/admin/reviews/review-row.js +44 -0
- package/dist/admin/reviews/review-row.js.map +1 -0
- package/dist/admin/reviews/reviews-kpis.js +55 -0
- package/dist/admin/reviews/reviews-kpis.js.map +1 -0
- package/dist/admin/reviews/reviews.module.css +68 -0
- package/dist/admin/reviews/use-admin-reviews.js +22 -0
- package/dist/admin/reviews/use-admin-reviews.js.map +1 -0
- package/dist/admin/reviews/use-merchant-search.js +32 -0
- package/dist/admin/reviews/use-merchant-search.js.map +1 -0
- package/dist/admin/roles/more-chip.js +48 -0
- package/dist/admin/roles/more-chip.js.map +1 -0
- package/dist/admin/roles/more-chip.module.css +70 -0
- package/dist/admin/roles/page.js +159 -0
- package/dist/admin/roles/page.js.map +1 -0
- package/dist/admin/roles/permission-picker.js +71 -0
- package/dist/admin/roles/permission-picker.js.map +1 -0
- package/dist/admin/roles/permission-picker.module.css +81 -0
- package/dist/admin/roles/permissions.js +66 -0
- package/dist/admin/roles/permissions.js.map +1 -0
- package/dist/admin/roles/role-dialog.js +162 -0
- package/dist/admin/roles/role-dialog.js.map +1 -0
- package/dist/admin/roles/role-row.js +51 -0
- package/dist/admin/roles/role-row.js.map +1 -0
- package/dist/admin/roles/roles-kpis.js +45 -0
- package/dist/admin/roles/roles-kpis.js.map +1 -0
- package/dist/admin/roles/roles.module.css +141 -0
- package/dist/admin/sales/activity-log-tab.js +154 -0
- package/dist/admin/sales/activity-log-tab.js.map +1 -0
- package/dist/admin/sales/bucket.js +29 -0
- package/dist/admin/sales/bucket.js.map +1 -0
- package/dist/admin/sales/conversion-panel.js +59 -0
- package/dist/admin/sales/conversion-panel.js.map +1 -0
- package/dist/admin/sales/growth-analysis.js +78 -0
- package/dist/admin/sales/growth-analysis.js.map +1 -0
- package/dist/admin/sales/leads-tab.js +134 -0
- package/dist/admin/sales/leads-tab.js.map +1 -0
- package/dist/admin/sales/overview-tab.js +92 -0
- package/dist/admin/sales/overview-tab.js.map +1 -0
- package/dist/admin/sales/page.js +11 -0
- package/dist/admin/sales/page.js.map +1 -0
- package/dist/admin/sales/pipeline/add-lead-dialog.js +143 -0
- package/dist/admin/sales/pipeline/add-lead-dialog.js.map +1 -0
- package/dist/admin/sales/pipeline/lead-card.js +44 -0
- package/dist/admin/sales/pipeline/lead-card.js.map +1 -0
- package/dist/admin/sales/pipeline/lead-drawer.js +139 -0
- package/dist/admin/sales/pipeline/lead-drawer.js.map +1 -0
- package/dist/admin/sales/pipeline/lead-timeline.js +34 -0
- package/dist/admin/sales/pipeline/lead-timeline.js.map +1 -0
- package/dist/admin/sales/pipeline/log-contact-dialog.js +126 -0
- package/dist/admin/sales/pipeline/log-contact-dialog.js.map +1 -0
- package/dist/admin/sales/pipeline/move-stage-dialog.js +119 -0
- package/dist/admin/sales/pipeline/move-stage-dialog.js.map +1 -0
- package/dist/admin/sales/pipeline/pipeline-board.js +77 -0
- package/dist/admin/sales/pipeline/pipeline-board.js.map +1 -0
- package/dist/admin/sales/pipeline/pipeline-filters.js +46 -0
- package/dist/admin/sales/pipeline/pipeline-filters.js.map +1 -0
- package/dist/admin/sales/pipeline/pipeline.module.css +141 -0
- package/dist/admin/sales/report-math.js +17 -0
- package/dist/admin/sales/report-math.js.map +1 -0
- package/dist/admin/sales/reports-tab.js +147 -0
- package/dist/admin/sales/reports-tab.js.map +1 -0
- package/dist/admin/sales/sales-kpis.js +69 -0
- package/dist/admin/sales/sales-kpis.js.map +1 -0
- package/dist/admin/sales/sales-workspace.js +55 -0
- package/dist/admin/sales/sales-workspace.js.map +1 -0
- package/dist/admin/sales/sales.module.css +52 -0
- package/dist/admin/sales/sources-panel.js +19 -0
- package/dist/admin/sales/sources-panel.js.map +1 -0
- package/dist/admin/sales/stage-meta.js +73 -0
- package/dist/admin/sales/stage-meta.js.map +1 -0
- package/dist/admin/sales/use-debounced.js +14 -0
- package/dist/admin/sales/use-debounced.js.map +1 -0
- package/dist/admin/sales/use-sales.js +51 -0
- package/dist/admin/sales/use-sales.js.map +1 -0
- package/dist/admin/scores/page.js +8 -0
- package/dist/admin/scores/page.js.map +1 -0
- package/dist/admin/settings/accessibility-tab.js +135 -0
- package/dist/admin/settings/accessibility-tab.js.map +1 -0
- package/dist/admin/settings/account-tab.js +59 -0
- package/dist/admin/settings/account-tab.js.map +1 -0
- package/dist/admin/settings/change-password-dialog.js +112 -0
- package/dist/admin/settings/change-password-dialog.js.map +1 -0
- package/dist/admin/settings/general-tab.js +143 -0
- package/dist/admin/settings/general-tab.js.map +1 -0
- package/dist/admin/settings/notifications-tab.js +155 -0
- package/dist/admin/settings/notifications-tab.js.map +1 -0
- package/dist/admin/settings/page.js +11 -0
- package/dist/admin/settings/page.js.map +1 -0
- package/dist/admin/settings/profile-card.js +35 -0
- package/dist/admin/settings/profile-card.js.map +1 -0
- package/dist/admin/settings/setting-row.js +85 -0
- package/dist/admin/settings/setting-row.js.map +1 -0
- package/dist/admin/settings/settings-workspace.js +47 -0
- package/dist/admin/settings/settings-workspace.js.map +1 -0
- package/dist/admin/settings/settings.module.css +162 -0
- package/dist/admin/settings/shortcut-list.js +42 -0
- package/dist/admin/settings/shortcut-list.js.map +1 -0
- package/dist/admin/settings/shortcuts-tab.js +42 -0
- package/dist/admin/settings/shortcuts-tab.js.map +1 -0
- package/dist/admin/settings/use-inbox-on.js +11 -0
- package/dist/admin/settings/use-inbox-on.js.map +1 -0
- package/dist/admin/settings/use-save.js +35 -0
- package/dist/admin/settings/use-save.js.map +1 -0
- package/dist/admin/support/case-field-selects.js +125 -0
- package/dist/admin/support/case-field-selects.js.map +1 -0
- package/dist/admin/support/case-header-controls.js +98 -0
- package/dist/admin/support/case-header-controls.js.map +1 -0
- package/dist/admin/support/case-origin.js +26 -0
- package/dist/admin/support/case-origin.js.map +1 -0
- package/dist/admin/support/case-pills.js +41 -0
- package/dist/admin/support/case-pills.js.map +1 -0
- package/dist/admin/support/case-pills.module.css +36 -0
- package/dist/admin/support/case-row-menu.js +77 -0
- package/dist/admin/support/case-row-menu.js.map +1 -0
- package/dist/admin/support/case-row.js +70 -0
- package/dist/admin/support/case-row.js.map +1 -0
- package/dist/admin/support/case-timeline.js +82 -0
- package/dist/admin/support/case-timeline.js.map +1 -0
- package/dist/admin/support/cases-tab.js +55 -0
- package/dist/admin/support/cases-tab.js.map +1 -0
- package/dist/admin/support/composer-aids.js +29 -0
- package/dist/admin/support/composer-aids.js.map +1 -0
- package/dist/admin/support/composer-assist.js +32 -0
- package/dist/admin/support/composer-assist.js.map +1 -0
- package/dist/admin/support/composer-assist.module.css +23 -0
- package/dist/admin/support/composer-footer.js +56 -0
- package/dist/admin/support/composer-footer.js.map +1 -0
- package/dist/admin/support/composer-header.js +44 -0
- package/dist/admin/support/composer-header.js.map +1 -0
- package/dist/admin/support/composer-keys.js +25 -0
- package/dist/admin/support/composer-keys.js.map +1 -0
- package/dist/admin/support/composer-toolbar.js +69 -0
- package/dist/admin/support/composer-toolbar.js.map +1 -0
- package/dist/admin/support/inbox-address.js +36 -0
- package/dist/admin/support/inbox-address.js.map +1 -0
- package/dist/admin/support/inbox-header.js +19 -0
- package/dist/admin/support/inbox-header.js.map +1 -0
- package/dist/admin/support/inbox-header.module.css +28 -0
- package/dist/admin/support/kbd.js +9 -0
- package/dist/admin/support/kbd.js.map +1 -0
- package/dist/admin/support/kbd.module.css +19 -0
- package/dist/admin/support/page.js +95 -0
- package/dist/admin/support/page.js.map +1 -0
- package/dist/admin/support/queue-card.js +46 -0
- package/dist/admin/support/queue-card.js.map +1 -0
- package/dist/admin/support/queue-card.module.css +88 -0
- package/dist/admin/support/queue-filters.js +119 -0
- package/dist/admin/support/queue-filters.js.map +1 -0
- package/dist/admin/support/reply-picker-body.js +122 -0
- package/dist/admin/support/reply-picker-body.js.map +1 -0
- package/dist/admin/support/reply-picker.js +55 -0
- package/dist/admin/support/reply-picker.js.map +1 -0
- package/dist/admin/support/reply-picker.module.css +152 -0
- package/dist/admin/support/saved-replies/library-categories.js +48 -0
- package/dist/admin/support/saved-replies/library-categories.js.map +1 -0
- package/dist/admin/support/saved-replies/library.js +121 -0
- package/dist/admin/support/saved-replies/library.js.map +1 -0
- package/dist/admin/support/saved-replies/library.module.css +157 -0
- package/dist/admin/support/saved-replies/page.js +16 -0
- package/dist/admin/support/saved-replies/page.js.map +1 -0
- package/dist/admin/support/saved-replies/placeholders.js +51 -0
- package/dist/admin/support/saved-replies/placeholders.js.map +1 -0
- package/dist/admin/support/saved-replies/reply-fields.js +102 -0
- package/dist/admin/support/saved-replies/reply-fields.js.map +1 -0
- package/dist/admin/support/saved-replies/reply-list.js +60 -0
- package/dist/admin/support/saved-replies/reply-list.js.map +1 -0
- package/dist/admin/support/saved-replies/reply-list.module.css +74 -0
- package/dist/admin/support/saved-replies/reply-meta.js +78 -0
- package/dist/admin/support/saved-replies/reply-meta.js.map +1 -0
- package/dist/admin/support/saved-replies/reply-preview.js +48 -0
- package/dist/admin/support/saved-replies/reply-preview.js.map +1 -0
- package/dist/admin/support/saved-replies/save-reply-dialog.js +66 -0
- package/dist/admin/support/saved-replies/save-reply-dialog.js.map +1 -0
- package/dist/admin/support/saved-replies/saved-replies-kpis.js +55 -0
- package/dist/admin/support/saved-replies/saved-replies-kpis.js.map +1 -0
- package/dist/admin/support/saved-replies/saved-replies-tab.js +22 -0
- package/dist/admin/support/saved-replies/saved-replies-tab.js.map +1 -0
- package/dist/admin/support/saved-replies/saved-replies.module.css +95 -0
- package/dist/admin/support/saved-replies/saved-reply-editor.js +55 -0
- package/dist/admin/support/saved-replies/saved-reply-editor.js.map +1 -0
- package/dist/admin/support/saved-replies/use-saved-replies.js +40 -0
- package/dist/admin/support/saved-replies/use-saved-replies.js.map +1 -0
- package/dist/admin/support/suggestion-card.js +70 -0
- package/dist/admin/support/suggestion-card.js.map +1 -0
- package/dist/admin/support/suggestion-card.module.css +72 -0
- package/dist/admin/support/support-case-detail.js +16 -0
- package/dist/admin/support/support-case-detail.js.map +1 -0
- package/dist/admin/support/support-case-identity.js +80 -0
- package/dist/admin/support/support-case-identity.js.map +1 -0
- package/dist/admin/support/support-case-table.js +89 -0
- package/dist/admin/support/support-case-table.js.map +1 -0
- package/dist/admin/support/support-case-thread.js +64 -0
- package/dist/admin/support/support-case-thread.js.map +1 -0
- package/dist/admin/support/support-case.module.css +178 -0
- package/dist/admin/support/support-composer.js +171 -0
- package/dist/admin/support/support-composer.js.map +1 -0
- package/dist/admin/support/support-kpis.js +106 -0
- package/dist/admin/support/support-kpis.js.map +1 -0
- package/dist/admin/support/support-options.js +87 -0
- package/dist/admin/support/support-options.js.map +1 -0
- package/dist/admin/support/support-queue.module.css +82 -0
- package/dist/admin/support/support-thread.module.css +174 -0
- package/dist/admin/support/support-trend.js +59 -0
- package/dist/admin/support/support-trend.js.map +1 -0
- package/dist/admin/support/support-views.js +79 -0
- package/dist/admin/support/support-views.js.map +1 -0
- package/dist/admin/support/support-views.module.css +80 -0
- package/dist/admin/support/support.module.css +98 -0
- package/dist/admin/support/thread-attachment.js +54 -0
- package/dist/admin/support/thread-attachment.js.map +1 -0
- package/dist/admin/support/thread-bubble.js +46 -0
- package/dist/admin/support/thread-bubble.js.map +1 -0
- package/dist/admin/support/thread-event.module.css +35 -0
- package/dist/admin/support/use-admin-support.js +90 -0
- package/dist/admin/support/use-admin-support.js.map +1 -0
- package/dist/admin/support/use-case-activity.js +68 -0
- package/dist/admin/support/use-case-activity.js.map +1 -0
- package/dist/admin/support/use-close-case.js +26 -0
- package/dist/admin/support/use-close-case.js.map +1 -0
- package/dist/admin/support/use-composer-assist.js +114 -0
- package/dist/admin/support/use-composer-assist.js.map +1 -0
- package/dist/admin/support/use-queue-cases.js +17 -0
- package/dist/admin/support/use-queue-cases.js.map +1 -0
- package/dist/admin/support/use-send-reply.js +73 -0
- package/dist/admin/support/use-send-reply.js.map +1 -0
- package/dist/admin/support/use-support-insights.js +53 -0
- package/dist/admin/support/use-support-insights.js.map +1 -0
- package/dist/admin/support/use-view-counts.js +36 -0
- package/dist/admin/support/use-view-counts.js.map +1 -0
- package/dist/admin/support/workspace/action-bar.js +69 -0
- package/dist/admin/support/workspace/action-bar.js.map +1 -0
- package/dist/admin/support/workspace/action-bar.module.css +85 -0
- package/dist/admin/support/workspace/case-card.js +58 -0
- package/dist/admin/support/workspace/case-card.js.map +1 -0
- package/dist/admin/support/workspace/case-facts.js +41 -0
- package/dist/admin/support/workspace/case-facts.js.map +1 -0
- package/dist/admin/support/workspace/case-list-pane.js +126 -0
- package/dist/admin/support/workspace/case-list-pane.js.map +1 -0
- package/dist/admin/support/workspace/case-properties.js +91 -0
- package/dist/admin/support/workspace/case-properties.js.map +1 -0
- package/dist/admin/support/workspace/conversation-header.js +128 -0
- package/dist/admin/support/workspace/conversation-header.js.map +1 -0
- package/dist/admin/support/workspace/conversation-pane.js +90 -0
- package/dist/admin/support/workspace/conversation-pane.js.map +1 -0
- package/dist/admin/support/workspace/conversation.module.css +191 -0
- package/dist/admin/support/workspace/details-pane.js +99 -0
- package/dist/admin/support/workspace/details-pane.js.map +1 -0
- package/dist/admin/support/workspace/details.module.css +137 -0
- package/dist/admin/support/workspace/list.module.css +193 -0
- package/dist/admin/support/workspace/merchant-card.js +58 -0
- package/dist/admin/support/workspace/merchant-card.js.map +1 -0
- package/dist/admin/support/workspace/merchant.module.css +97 -0
- package/dist/admin/support/workspace/related-cases.js +51 -0
- package/dist/admin/support/workspace/related-cases.js.map +1 -0
- package/dist/admin/support/workspace/sort-cases.js +16 -0
- package/dist/admin/support/workspace/sort-cases.js.map +1 -0
- package/dist/admin/support/workspace/status-banner.js +101 -0
- package/dist/admin/support/workspace/status-banner.js.map +1 -0
- package/dist/admin/support/workspace/step-case.js +9 -0
- package/dist/admin/support/workspace/step-case.js.map +1 -0
- package/dist/admin/support/workspace/support-workspace.js +127 -0
- package/dist/admin/support/workspace/support-workspace.js.map +1 -0
- package/dist/admin/support/workspace/use-media.js +17 -0
- package/dist/admin/support/workspace/use-media.js.map +1 -0
- package/dist/admin/support/workspace/use-workspace-keys.js +46 -0
- package/dist/admin/support/workspace/use-workspace-keys.js.map +1 -0
- package/dist/admin/support/workspace/workspace.module.css +89 -0
- package/dist/admin/tenants/[id]/account-officer-dialog.js +58 -0
- package/dist/admin/tenants/[id]/account-officer-dialog.js.map +1 -0
- package/dist/admin/tenants/[id]/account-officer.js +59 -0
- package/dist/admin/tenants/[id]/account-officer.js.map +1 -0
- package/dist/admin/tenants/[id]/commerce/best-sellers.js +56 -0
- package/dist/admin/tenants/[id]/commerce/best-sellers.js.map +1 -0
- package/dist/admin/tenants/[id]/commerce/commerce-flow.js +84 -0
- package/dist/admin/tenants/[id]/commerce/commerce-flow.js.map +1 -0
- package/dist/admin/tenants/[id]/commerce/drawer.module.css +89 -0
- package/dist/admin/tenants/[id]/commerce/flow.module.css +110 -0
- package/dist/admin/tenants/[id]/commerce/format.js +74 -0
- package/dist/admin/tenants/[id]/commerce/format.js.map +1 -0
- package/dist/admin/tenants/[id]/commerce/health.module.css +144 -0
- package/dist/admin/tenants/[id]/commerce/index.js +5 -0
- package/dist/admin/tenants/[id]/commerce/index.js.map +1 -0
- package/dist/admin/tenants/[id]/commerce/inventory-health.js +82 -0
- package/dist/admin/tenants/[id]/commerce/inventory-health.js.map +1 -0
- package/dist/admin/tenants/[id]/commerce/item-card.js +37 -0
- package/dist/admin/tenants/[id]/commerce/item-card.js.map +1 -0
- package/dist/admin/tenants/[id]/commerce/items-gallery.js +155 -0
- package/dist/admin/tenants/[id]/commerce/items-gallery.js.map +1 -0
- package/dist/admin/tenants/[id]/commerce/items-table.js +49 -0
- package/dist/admin/tenants/[id]/commerce/items-table.js.map +1 -0
- package/dist/admin/tenants/[id]/commerce/items.module.css +125 -0
- package/dist/admin/tenants/[id]/commerce/layout.module.css +27 -0
- package/dist/admin/tenants/[id]/commerce/merchant-commerce.js +103 -0
- package/dist/admin/tenants/[id]/commerce/merchant-commerce.js.map +1 -0
- package/dist/admin/tenants/[id]/commerce/money-panel.js +52 -0
- package/dist/admin/tenants/[id]/commerce/money-panel.js.map +1 -0
- package/dist/admin/tenants/[id]/commerce/money.module.css +122 -0
- package/dist/admin/tenants/[id]/commerce/order-drawer.js +65 -0
- package/dist/admin/tenants/[id]/commerce/order-drawer.js.map +1 -0
- package/dist/admin/tenants/[id]/commerce/order-pipeline.js +50 -0
- package/dist/admin/tenants/[id]/commerce/order-pipeline.js.map +1 -0
- package/dist/admin/tenants/[id]/commerce/orders.module.css +154 -0
- package/dist/admin/tenants/[id]/commerce/owner-card.js +55 -0
- package/dist/admin/tenants/[id]/commerce/owner-card.js.map +1 -0
- package/dist/admin/tenants/[id]/commerce/pill.module.css +47 -0
- package/dist/admin/tenants/[id]/commerce/recent-orders.js +98 -0
- package/dist/admin/tenants/[id]/commerce/recent-orders.js.map +1 -0
- package/dist/admin/tenants/[id]/commerce/shell.module.css +64 -0
- package/dist/admin/tenants/[id]/commerce/status-pill.js +19 -0
- package/dist/admin/tenants/[id]/commerce/status-pill.js.map +1 -0
- package/dist/admin/tenants/[id]/commerce.js +1 -0
- package/dist/admin/tenants/[id]/copy-text.js +30 -0
- package/dist/admin/tenants/[id]/copy-text.js.map +1 -0
- package/dist/admin/tenants/[id]/merchant-ledger.js +47 -0
- package/dist/admin/tenants/[id]/merchant-ledger.js.map +1 -0
- package/dist/admin/tenants/[id]/message-merchant-button.js +38 -0
- package/dist/admin/tenants/[id]/message-merchant-button.js.map +1 -0
- package/dist/admin/tenants/[id]/message-merchant-dialog.js +96 -0
- package/dist/admin/tenants/[id]/message-merchant-dialog.js.map +1 -0
- package/dist/admin/tenants/[id]/page.js +2308 -0
- package/dist/admin/tenants/[id]/page.js.map +1 -0
- package/dist/admin/tenants/[id]/subaccounts-panel.js +40 -0
- package/dist/admin/tenants/[id]/subaccounts-panel.js.map +1 -0
- package/dist/admin/tenants/[id]/tenant-activity-feed.js +92 -0
- package/dist/admin/tenants/[id]/tenant-activity-feed.js.map +1 -0
- package/dist/admin/tenants/[id]/tenant-activity.module.css +94 -0
- package/dist/admin/tenants/[id]/tenant-attention.js +93 -0
- package/dist/admin/tenants/[id]/tenant-attention.js.map +1 -0
- package/dist/admin/tenants/[id]/tenant-header.js +125 -0
- package/dist/admin/tenants/[id]/tenant-header.js.map +1 -0
- package/dist/admin/tenants/[id]/tenant-invites.js +49 -0
- package/dist/admin/tenants/[id]/tenant-invites.js.map +1 -0
- package/dist/admin/tenants/[id]/tenant-layout.module.css +106 -0
- package/dist/admin/tenants/[id]/tenant-overview.js +182 -0
- package/dist/admin/tenants/[id]/tenant-overview.js.map +1 -0
- package/dist/admin/tenants/[id]/tenant-overview.module.css +151 -0
- package/dist/admin/tenants/[id]/tenant-people-panel.js +109 -0
- package/dist/admin/tenants/[id]/tenant-people-panel.js.map +1 -0
- package/dist/admin/tenants/[id]/tenant-people.module.css +121 -0
- package/dist/admin/tenants/[id]/tenant-pos.js +101 -0
- package/dist/admin/tenants/[id]/tenant-pos.js.map +1 -0
- package/dist/admin/tenants/[id]/tenant-sidebar.js +115 -0
- package/dist/admin/tenants/[id]/tenant-sidebar.js.map +1 -0
- package/dist/admin/tenants/[id]/tenant-sidebar.module.css +53 -0
- package/dist/admin/tenants/[id]/tenant-support.js +37 -0
- package/dist/admin/tenants/[id]/tenant-support.js.map +1 -0
- package/dist/admin/tenants/[id]/tenant-tabs.js +22 -0
- package/dist/admin/tenants/[id]/tenant-tabs.js.map +1 -0
- package/dist/admin/tenants/[id]/tenant-wallet-card.js +53 -0
- package/dist/admin/tenants/[id]/tenant-wallet-card.js.map +1 -0
- package/dist/admin/tenants/[id]/use-set-account-officer.js +31 -0
- package/dist/admin/tenants/[id]/use-set-account-officer.js.map +1 -0
- package/dist/admin/tenants/[id]/use-tenant-wallet.js +23 -0
- package/dist/admin/tenants/[id]/use-tenant-wallet.js.map +1 -0
- package/dist/admin/tenants/[id]/verification/business-records.js +70 -0
- package/dist/admin/tenants/[id]/verification/business-records.js.map +1 -0
- package/dist/admin/tenants/[id]/verification/case-checks.js +81 -0
- package/dist/admin/tenants/[id]/verification/case-checks.js.map +1 -0
- package/dist/admin/tenants/[id]/verification/case-events.js +44 -0
- package/dist/admin/tenants/[id]/verification/case-events.js.map +1 -0
- package/dist/admin/tenants/[id]/verification/case-form-dialog.js +58 -0
- package/dist/admin/tenants/[id]/verification/case-form-dialog.js.map +1 -0
- package/dist/admin/tenants/[id]/verification/case-history.js +27 -0
- package/dist/admin/tenants/[id]/verification/case-history.js.map +1 -0
- package/dist/admin/tenants/[id]/verification/case-rules.js +72 -0
- package/dist/admin/tenants/[id]/verification/case-rules.js.map +1 -0
- package/dist/admin/tenants/[id]/verification/case-status.js +47 -0
- package/dist/admin/tenants/[id]/verification/case-status.js.map +1 -0
- package/dist/admin/tenants/[id]/verification/case-words.js +104 -0
- package/dist/admin/tenants/[id]/verification/case-words.js.map +1 -0
- package/dist/admin/tenants/[id]/verification/decision-bar.js +59 -0
- package/dist/admin/tenants/[id]/verification/decision-bar.js.map +1 -0
- package/dist/admin/tenants/[id]/verification/decision-dialogs.js +152 -0
- package/dist/admin/tenants/[id]/verification/decision-dialogs.js.map +1 -0
- package/dist/admin/tenants/[id]/verification/document-file.js +78 -0
- package/dist/admin/tenants/[id]/verification/document-file.js.map +1 -0
- package/dist/admin/tenants/[id]/verification/document-view.js +28 -0
- package/dist/admin/tenants/[id]/verification/document-view.js.map +1 -0
- package/dist/admin/tenants/[id]/verification/document-viewer.js +46 -0
- package/dist/admin/tenants/[id]/verification/document-viewer.js.map +1 -0
- package/dist/admin/tenants/[id]/verification/document-viewer.module.css +98 -0
- package/dist/admin/tenants/[id]/verification/person-card.js +111 -0
- package/dist/admin/tenants/[id]/verification/person-card.js.map +1 -0
- package/dist/admin/tenants/[id]/verification/reveal-number.js +48 -0
- package/dist/admin/tenants/[id]/verification/reveal-number.js.map +1 -0
- package/dist/admin/tenants/[id]/verification/reverse-dialog.js +52 -0
- package/dist/admin/tenants/[id]/verification/reverse-dialog.js.map +1 -0
- package/dist/admin/tenants/[id]/verification/sent-files.js +33 -0
- package/dist/admin/tenants/[id]/verification/sent-files.js.map +1 -0
- package/dist/admin/tenants/[id]/verification/tenant-verification.js +103 -0
- package/dist/admin/tenants/[id]/verification/tenant-verification.js.map +1 -0
- package/dist/admin/tenants/[id]/verification/use-case.js +57 -0
- package/dist/admin/tenants/[id]/verification/use-case.js.map +1 -0
- package/dist/admin/tenants/[id]/verification/verification.module.css +168 -0
- package/dist/admin/tenants/account-officer-action.js +8 -0
- package/dist/admin/tenants/account-officer-action.js.map +1 -0
- package/dist/admin/tenants/account-officer-filter.js +43 -0
- package/dist/admin/tenants/account-officer-filter.js.map +1 -0
- package/dist/admin/tenants/account-officer-options.js +15 -0
- package/dist/admin/tenants/account-officer-options.js.map +1 -0
- package/dist/admin/tenants/country-filter.js +53 -0
- package/dist/admin/tenants/country-filter.js.map +1 -0
- package/dist/admin/tenants/country-options.js +22 -0
- package/dist/admin/tenants/country-options.js.map +1 -0
- package/dist/admin/tenants/message-merchant.js +61 -0
- package/dist/admin/tenants/message-merchant.js.map +1 -0
- package/dist/admin/tenants/page.js +11 -0
- package/dist/admin/tenants/page.js.map +1 -0
- package/dist/admin/tenants/tenant-list-row.js +169 -0
- package/dist/admin/tenants/tenant-list-row.js.map +1 -0
- package/dist/admin/tenants/tenants-analytics.js +119 -0
- package/dist/admin/tenants/tenants-analytics.js.map +1 -0
- package/dist/admin/tenants/tenants-kpis.js +98 -0
- package/dist/admin/tenants/tenants-kpis.js.map +1 -0
- package/dist/admin/tenants/tenants-logo.js +8 -0
- package/dist/admin/tenants/tenants-logo.js.map +1 -0
- package/dist/admin/tenants/tenants-table.js +135 -0
- package/dist/admin/tenants/tenants-table.js.map +1 -0
- package/dist/admin/tenants/tenants-workspace.js +98 -0
- package/dist/admin/tenants/tenants-workspace.js.map +1 -0
- package/dist/admin/till-requests/decision-dialog.js +59 -0
- package/dist/admin/till-requests/decision-dialog.js.map +1 -0
- package/dist/admin/till-requests/page.js +124 -0
- package/dist/admin/till-requests/page.js.map +1 -0
- package/dist/admin/till-requests/till-request-row.js +72 -0
- package/dist/admin/till-requests/till-request-row.js.map +1 -0
- package/dist/admin/verification/page.js +11 -0
- package/dist/admin/verification/page.js.map +1 -0
- package/dist/admin/verification/preview-dialog.js +111 -0
- package/dist/admin/verification/preview-dialog.js.map +1 -0
- package/dist/admin/verification/reject-dialog.js +94 -0
- package/dist/admin/verification/reject-dialog.js.map +1 -0
- package/dist/admin/verification/review-queue.js +124 -0
- package/dist/admin/verification/review-queue.js.map +1 -0
- package/dist/admin/verification/review-row.js +55 -0
- package/dist/admin/verification/review-row.js.map +1 -0
- package/dist/admin/verification/review.js +69 -0
- package/dist/admin/verification/review.js.map +1 -0
- package/dist/admin/verification/use-review.js +26 -0
- package/dist/admin/verification/use-review.js.map +1 -0
- package/dist/admin/verification/verification-page.js +35 -0
- package/dist/admin/verification/verification-page.js.map +1 -0
- package/dist/admin/verification/verification.module.css +30 -0
- package/dist/admin/verification/waiting-cases.js +94 -0
- package/dist/admin/verification/waiting-cases.js.map +1 -0
- package/dist/admin/wallets/page.js +11 -0
- package/dist/admin/wallets/page.js.map +1 -0
- package/dist/admin/wallets/wallets-workspace.js +37 -0
- package/dist/admin/wallets/wallets-workspace.js.map +1 -0
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -0
- package/package.json +56 -0
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { useEffect, useRef, useState } from "react";
|
|
4
|
+
import { ChevronDown, Search } from "lucide-react";
|
|
5
|
+
import { Input } from "@withpotter/ui-kit/input";
|
|
6
|
+
import { selectTriggerClass } from "@withpotter/ui-kit/select-trigger";
|
|
7
|
+
import { EntityAvatar } from "../_fx";
|
|
8
|
+
import { useMerchantSearch } from "./use-merchant-search";
|
|
9
|
+
import styles from "./merchant-filter.module.css";
|
|
10
|
+
function MerchantFilter({
|
|
11
|
+
value,
|
|
12
|
+
onChange,
|
|
13
|
+
allLabel,
|
|
14
|
+
placeholder = "Select merchant"
|
|
15
|
+
}) {
|
|
16
|
+
const [open, setOpen] = useState(false);
|
|
17
|
+
const [term, setTerm] = useState("");
|
|
18
|
+
const [cursor, setCursor] = useState(0);
|
|
19
|
+
const root = useRef(null);
|
|
20
|
+
const { merchants, isLoading, isError } = useMerchantSearch(term, open);
|
|
21
|
+
const options = allLabel ? [null, ...merchants] : merchants;
|
|
22
|
+
useEffect(() => {
|
|
23
|
+
if (!open) return;
|
|
24
|
+
const close = (e) => {
|
|
25
|
+
if (!root.current?.contains(e.target)) setOpen(false);
|
|
26
|
+
};
|
|
27
|
+
document.addEventListener("pointerdown", close);
|
|
28
|
+
return () => document.removeEventListener("pointerdown", close);
|
|
29
|
+
}, [open]);
|
|
30
|
+
const pick = (merchant) => {
|
|
31
|
+
onChange(merchant);
|
|
32
|
+
setOpen(false);
|
|
33
|
+
setTerm("");
|
|
34
|
+
};
|
|
35
|
+
const onKey = (e) => {
|
|
36
|
+
if (e.key === "Escape") {
|
|
37
|
+
e.stopPropagation();
|
|
38
|
+
setOpen(false);
|
|
39
|
+
} else if (e.key === "ArrowDown" || e.key === "ArrowUp") {
|
|
40
|
+
e.preventDefault();
|
|
41
|
+
const step = e.key === "ArrowDown" ? 1 : -1;
|
|
42
|
+
const n = options.length || 1;
|
|
43
|
+
setCursor((c) => (c + step + n) % n);
|
|
44
|
+
} else if (e.key === "Enter" && options.length > 0) {
|
|
45
|
+
e.preventDefault();
|
|
46
|
+
pick(options[Math.min(cursor, options.length - 1)]);
|
|
47
|
+
}
|
|
48
|
+
};
|
|
49
|
+
const label = value?.name ?? allLabel ?? placeholder;
|
|
50
|
+
return /* @__PURE__ */ jsxs("div", { ref: root, className: styles.root, children: [
|
|
51
|
+
open ? /* @__PURE__ */ jsxs("label", { className: styles.searchBox, children: [
|
|
52
|
+
/* @__PURE__ */ jsx(Search, { size: 16, "aria-hidden": true }),
|
|
53
|
+
/* @__PURE__ */ jsx(
|
|
54
|
+
Input,
|
|
55
|
+
{
|
|
56
|
+
variant: "bare",
|
|
57
|
+
autoFocus: true,
|
|
58
|
+
role: "combobox",
|
|
59
|
+
"aria-expanded": true,
|
|
60
|
+
"aria-controls": "merchant-filter-list",
|
|
61
|
+
"aria-label": "Search merchants",
|
|
62
|
+
className: styles.input,
|
|
63
|
+
value: term,
|
|
64
|
+
placeholder: "Search merchants\u2026",
|
|
65
|
+
onChange: (e) => {
|
|
66
|
+
setTerm(e.target.value);
|
|
67
|
+
setCursor(0);
|
|
68
|
+
},
|
|
69
|
+
onKeyDown: onKey
|
|
70
|
+
}
|
|
71
|
+
)
|
|
72
|
+
] }) : /* @__PURE__ */ jsxs(
|
|
73
|
+
"button",
|
|
74
|
+
{
|
|
75
|
+
type: "button",
|
|
76
|
+
"aria-haspopup": "listbox",
|
|
77
|
+
"aria-label": `Merchant: ${label}`,
|
|
78
|
+
className: `${selectTriggerClass({ isOpen: false, size: "sm" })} h-7 ${styles.trigger}`,
|
|
79
|
+
"data-applied": allLabel && value ? "true" : void 0,
|
|
80
|
+
onClick: () => setOpen(true),
|
|
81
|
+
children: [
|
|
82
|
+
/* @__PURE__ */ jsxs("span", { className: styles.chosen, children: [
|
|
83
|
+
value?.logoUrl && /* @__PURE__ */ jsx(EntityAvatar, { name: value.name, src: value.logoUrl, size: 20 }),
|
|
84
|
+
/* @__PURE__ */ jsx(
|
|
85
|
+
"span",
|
|
86
|
+
{
|
|
87
|
+
className: value ? styles.name : styles.placeholder,
|
|
88
|
+
title: label,
|
|
89
|
+
children: label
|
|
90
|
+
}
|
|
91
|
+
)
|
|
92
|
+
] }),
|
|
93
|
+
/* @__PURE__ */ jsx(ChevronDown, { size: 16, "aria-hidden": true, className: styles.icon })
|
|
94
|
+
]
|
|
95
|
+
}
|
|
96
|
+
),
|
|
97
|
+
open && /* @__PURE__ */ jsxs("ul", { id: "merchant-filter-list", role: "listbox", className: styles.menu, children: [
|
|
98
|
+
options.map((m, i) => /* @__PURE__ */ jsxs(
|
|
99
|
+
"li",
|
|
100
|
+
{
|
|
101
|
+
role: "option",
|
|
102
|
+
"aria-selected": (m?.id ?? null) === (value?.id ?? null),
|
|
103
|
+
"data-active": i === cursor || void 0,
|
|
104
|
+
className: styles.option,
|
|
105
|
+
onPointerEnter: () => setCursor(i),
|
|
106
|
+
onClick: () => pick(m),
|
|
107
|
+
children: [
|
|
108
|
+
m?.logoUrl && /* @__PURE__ */ jsx(EntityAvatar, { name: m.name, src: m.logoUrl, size: 24 }),
|
|
109
|
+
/* @__PURE__ */ jsx("span", { className: styles.name, title: m?.name ?? allLabel, children: m?.name ?? allLabel }),
|
|
110
|
+
m?.slug && /* @__PURE__ */ jsx("span", { className: styles.slug, title: m.slug, children: m.slug })
|
|
111
|
+
]
|
|
112
|
+
},
|
|
113
|
+
m?.id ?? "all"
|
|
114
|
+
)),
|
|
115
|
+
merchants.length === 0 && /* @__PURE__ */ jsx("li", { className: styles.note, role: "presentation", children: isError ? "Merchants could not be loaded." : isLoading ? "Searching\u2026" : "No merchants match." })
|
|
116
|
+
] })
|
|
117
|
+
] });
|
|
118
|
+
}
|
|
119
|
+
export {
|
|
120
|
+
MerchantFilter
|
|
121
|
+
};
|
|
122
|
+
//# sourceMappingURL=merchant-filter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/admin/reviews/merchant-filter.tsx"],"sourcesContent":["'use client';\n\nimport { useEffect, useRef, useState, type KeyboardEvent } from 'react';\nimport { ChevronDown, Search } from 'lucide-react';\nimport { Input } from '@withpotter/ui-kit/input';\nimport { selectTriggerClass } from '@withpotter/ui-kit/select-trigger';\nimport { EntityAvatar } from '../_fx';\nimport { useMerchantSearch, type Merchant } from './use-merchant-search';\nimport styles from './merchant-filter.module.css';\n\n/**\n * Pick a merchant by name instead of pasting a tenant UUID. Typing searches\n * the tenants endpoint (debounced); a row shows the merchant's logo when it\n * has one, and only then. Shared by Reviews and Product insights.\n */\nexport function MerchantFilter({\n value,\n onChange,\n allLabel,\n placeholder = 'Select merchant',\n}: {\n value: Merchant | null;\n onChange: (merchant: Merchant | null) => void;\n /** When set, the first option clears the filter and reads like this. */\n allLabel?: string;\n placeholder?: string;\n}) {\n const [open, setOpen] = useState(false);\n const [term, setTerm] = useState('');\n const [cursor, setCursor] = useState(0);\n const root = useRef<HTMLDivElement>(null);\n const { merchants, isLoading, isError } = useMerchantSearch(term, open);\n const options: Array<Merchant | null> = allLabel\n ? [null, ...merchants]\n : merchants;\n\n useEffect(() => {\n if (!open) return;\n const close = (e: PointerEvent) => {\n if (!root.current?.contains(e.target as Node)) setOpen(false);\n };\n document.addEventListener('pointerdown', close);\n return () => document.removeEventListener('pointerdown', close);\n }, [open]);\n\n const pick = (merchant: Merchant | null) => {\n onChange(merchant);\n setOpen(false);\n setTerm('');\n };\n\n const onKey = (e: KeyboardEvent) => {\n if (e.key === 'Escape') {\n e.stopPropagation();\n setOpen(false);\n } else if (e.key === 'ArrowDown' || e.key === 'ArrowUp') {\n e.preventDefault();\n const step = e.key === 'ArrowDown' ? 1 : -1;\n const n = options.length || 1;\n setCursor((c) => (c + step + n) % n);\n } else if (e.key === 'Enter' && options.length > 0) {\n e.preventDefault();\n pick(options[Math.min(cursor, options.length - 1)]);\n }\n };\n\n const label = value?.name ?? allLabel ?? placeholder;\n\n return (\n <div ref={root} className={styles.root}>\n {open ? (\n <label className={styles.searchBox}>\n <Search size={16} aria-hidden />\n <Input\n variant=\"bare\"\n autoFocus\n role=\"combobox\"\n aria-expanded\n aria-controls=\"merchant-filter-list\"\n aria-label=\"Search merchants\"\n className={styles.input}\n value={term}\n placeholder=\"Search merchants…\"\n onChange={(e) => {\n setTerm(e.target.value);\n setCursor(0);\n }}\n onKeyDown={onKey}\n />\n </label>\n ) : (\n <button\n type=\"button\"\n aria-haspopup=\"listbox\"\n aria-label={`Merchant: ${label}`}\n className={`${selectTriggerClass({ isOpen: false, size: 'sm' })} h-7 ${styles.trigger}`}\n data-applied={allLabel && value ? 'true' : undefined}\n onClick={() => setOpen(true)}\n >\n <span className={styles.chosen}>\n {value?.logoUrl && (\n <EntityAvatar name={value.name} src={value.logoUrl} size={20} />\n )}\n <span\n className={value ? styles.name : styles.placeholder}\n title={label}\n >\n {label}\n </span>\n </span>\n <ChevronDown size={16} aria-hidden className={styles.icon} />\n </button>\n )}\n\n {open && (\n <ul id=\"merchant-filter-list\" role=\"listbox\" className={styles.menu}>\n {options.map((m, i) => (\n <li\n key={m?.id ?? 'all'}\n role=\"option\"\n aria-selected={(m?.id ?? null) === (value?.id ?? null)}\n data-active={i === cursor || undefined}\n className={styles.option}\n onPointerEnter={() => setCursor(i)}\n onClick={() => pick(m)}\n >\n {m?.logoUrl && (\n <EntityAvatar name={m.name} src={m.logoUrl} size={24} />\n )}\n <span className={styles.name} title={m?.name ?? allLabel}>\n {m?.name ?? allLabel}\n </span>\n {m?.slug && (\n <span className={styles.slug} title={m.slug}>\n {m.slug}\n </span>\n )}\n </li>\n ))}\n {merchants.length === 0 && (\n <li className={styles.note} role=\"presentation\">\n {isError\n ? 'Merchants could not be loaded.'\n : isLoading\n ? 'Searching…'\n : 'No merchants match.'}\n </li>\n )}\n </ul>\n )}\n </div>\n );\n}\n"],"mappings":"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","names":[]}
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
/* The merchant picker: a select-look trigger that becomes a search box. */
|
|
2
|
+
|
|
3
|
+
.root {
|
|
4
|
+
position: relative;
|
|
5
|
+
min-width: 0;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
.chosen,
|
|
9
|
+
.searchBox {
|
|
10
|
+
display: flex;
|
|
11
|
+
align-items: center;
|
|
12
|
+
gap: 8px;
|
|
13
|
+
min-width: 0;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
.searchBox {
|
|
17
|
+
padding: 0 8px;
|
|
18
|
+
height: var(--adm-control-h);
|
|
19
|
+
border: 1px solid var(--brand-500);
|
|
20
|
+
border-radius: 10px;
|
|
21
|
+
background: var(--bg-base);
|
|
22
|
+
box-shadow: 0 0 0 1px var(--brand-500);
|
|
23
|
+
color: var(--text-tertiary);
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
/* Narrowing the list (Reviews): the trigger takes the console's tint. */
|
|
27
|
+
.trigger[data-applied] {
|
|
28
|
+
--bg-muted: var(--adm-tint);
|
|
29
|
+
--border-subtle: var(--adm-tint-line);
|
|
30
|
+
--border-default: var(--adm-tint-line);
|
|
31
|
+
--text-primary: var(--adm-tint-ink);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
.input {
|
|
35
|
+
flex: 1;
|
|
36
|
+
min-width: 0;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
.icon {
|
|
40
|
+
flex-shrink: 0;
|
|
41
|
+
color: var(--text-tertiary);
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
.name,
|
|
45
|
+
.placeholder {
|
|
46
|
+
overflow: hidden;
|
|
47
|
+
text-overflow: ellipsis;
|
|
48
|
+
white-space: nowrap;
|
|
49
|
+
font-size: 13px;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
.name {
|
|
53
|
+
color: var(--text-primary);
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
.placeholder {
|
|
57
|
+
color: var(--text-secondary);
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
.menu {
|
|
61
|
+
position: absolute;
|
|
62
|
+
top: calc(100% + 4px);
|
|
63
|
+
left: 0;
|
|
64
|
+
z-index: 30;
|
|
65
|
+
display: grid;
|
|
66
|
+
gap: 2px;
|
|
67
|
+
width: max(100%, 280px);
|
|
68
|
+
max-height: 320px;
|
|
69
|
+
margin: 0;
|
|
70
|
+
padding: 4px;
|
|
71
|
+
overflow: auto;
|
|
72
|
+
list-style: none;
|
|
73
|
+
border: 1px solid var(--border-subtle);
|
|
74
|
+
border-radius: 10px;
|
|
75
|
+
background: var(--bg-base);
|
|
76
|
+
box-shadow: var(--adm-shadow-pop);
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
.option {
|
|
80
|
+
display: flex;
|
|
81
|
+
align-items: center;
|
|
82
|
+
gap: 8px;
|
|
83
|
+
padding: 8px 12px;
|
|
84
|
+
border-radius: 10px;
|
|
85
|
+
cursor: pointer;
|
|
86
|
+
font-size: 13px;
|
|
87
|
+
transition: background var(--adm-fast);
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
.option[data-active] {
|
|
91
|
+
background: var(--adm-hover);
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
.option[aria-selected='true'] .name {
|
|
95
|
+
color: var(--brand-600);
|
|
96
|
+
font-weight: 500;
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
.slug {
|
|
100
|
+
margin-left: auto;
|
|
101
|
+
overflow: hidden;
|
|
102
|
+
text-overflow: ellipsis;
|
|
103
|
+
white-space: nowrap;
|
|
104
|
+
font-size: 12px;
|
|
105
|
+
color: var(--text-tertiary);
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
.note {
|
|
109
|
+
padding: 16px 12px;
|
|
110
|
+
text-align: center;
|
|
111
|
+
font-size: 13px;
|
|
112
|
+
color: var(--text-tertiary);
|
|
113
|
+
}
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { useState } from "react";
|
|
4
|
+
import { Th } from "@withpotter/ui-kit";
|
|
5
|
+
import { SectionHeader } from "../audit/section-header";
|
|
6
|
+
import { FilterSelect, Filters } from "../_ui";
|
|
7
|
+
import { ListCard, ListPager } from "../_ui/list-card";
|
|
8
|
+
import { MerchantFilter } from "./merchant-filter";
|
|
9
|
+
import { ReviewRow } from "./review-row";
|
|
10
|
+
import { ReviewsKpis } from "./reviews-kpis";
|
|
11
|
+
import { useAdminReviewAnalytics, useAdminReviews } from "./use-admin-reviews";
|
|
12
|
+
import styles from "./reviews.module.css";
|
|
13
|
+
const PAGE_SIZE = 20;
|
|
14
|
+
const RATING_OPTIONS = [
|
|
15
|
+
{ value: "", label: "All ratings" },
|
|
16
|
+
...[5, 4, 3, 2, 1].map((rating) => ({
|
|
17
|
+
value: String(rating),
|
|
18
|
+
label: `${rating} star${rating === 1 ? "" : "s"}`
|
|
19
|
+
}))
|
|
20
|
+
];
|
|
21
|
+
const STATUS_OPTIONS = [
|
|
22
|
+
{ value: "", label: "All statuses" },
|
|
23
|
+
...["pending", "approved", "rejected", "flagged"].map((value) => ({
|
|
24
|
+
value,
|
|
25
|
+
label: value.charAt(0).toUpperCase() + value.slice(1)
|
|
26
|
+
}))
|
|
27
|
+
];
|
|
28
|
+
function AdminReviewsPage() {
|
|
29
|
+
const [merchant, setMerchant] = useState(null);
|
|
30
|
+
const [rating, setRating] = useState("");
|
|
31
|
+
const [status, setStatus] = useState("");
|
|
32
|
+
const [page, setPage] = useState(1);
|
|
33
|
+
const query = {
|
|
34
|
+
tenantId: merchant?.id,
|
|
35
|
+
rating: rating ? Number(rating) : void 0,
|
|
36
|
+
status: status || void 0
|
|
37
|
+
};
|
|
38
|
+
const reviews = useAdminReviews({ ...query, page, pageSize: PAGE_SIZE });
|
|
39
|
+
const analytics = useAdminReviewAnalytics(query);
|
|
40
|
+
const hasFilters = Boolean(merchant || rating || status);
|
|
41
|
+
const totalPages = reviews.data ? Math.max(1, Math.ceil(reviews.data.total / reviews.data.pageSize)) : 1;
|
|
42
|
+
const filtered = (set) => (value) => {
|
|
43
|
+
set(value);
|
|
44
|
+
setPage(1);
|
|
45
|
+
};
|
|
46
|
+
return /* @__PURE__ */ jsxs("div", { children: [
|
|
47
|
+
/* @__PURE__ */ jsx(
|
|
48
|
+
SectionHeader,
|
|
49
|
+
{
|
|
50
|
+
title: "Customer reviews",
|
|
51
|
+
description: "Ratings and merchant responses across every merchant. Read-only."
|
|
52
|
+
}
|
|
53
|
+
),
|
|
54
|
+
/* @__PURE__ */ jsx(ReviewsKpis, { data: analytics.data, isLoading: analytics.isLoading }),
|
|
55
|
+
/* @__PURE__ */ jsx("div", { className: styles.list, children: /* @__PURE__ */ jsx(
|
|
56
|
+
ListCard,
|
|
57
|
+
{
|
|
58
|
+
title: merchant ? `Reviews for ${merchant.name}` : "All reviews",
|
|
59
|
+
count: reviews.data?.total,
|
|
60
|
+
columns: 6,
|
|
61
|
+
minWidth: 1080,
|
|
62
|
+
isLoading: reviews.isLoading,
|
|
63
|
+
isError: reviews.isError,
|
|
64
|
+
onRetry: () => void reviews.refetch(),
|
|
65
|
+
errorTitle: "Failed to load customer reviews.",
|
|
66
|
+
isEmpty: reviews.data?.rows.length === 0,
|
|
67
|
+
controls: /* @__PURE__ */ jsxs(Filters, { label: "Filter reviews", children: [
|
|
68
|
+
/* @__PURE__ */ jsx("div", { className: styles.merchant, children: /* @__PURE__ */ jsx(
|
|
69
|
+
MerchantFilter,
|
|
70
|
+
{
|
|
71
|
+
value: merchant,
|
|
72
|
+
onChange: filtered(setMerchant),
|
|
73
|
+
allLabel: "All merchants"
|
|
74
|
+
}
|
|
75
|
+
) }),
|
|
76
|
+
/* @__PURE__ */ jsx(
|
|
77
|
+
FilterSelect,
|
|
78
|
+
{
|
|
79
|
+
label: "Rating",
|
|
80
|
+
value: rating,
|
|
81
|
+
options: RATING_OPTIONS,
|
|
82
|
+
onChange: filtered(setRating)
|
|
83
|
+
}
|
|
84
|
+
),
|
|
85
|
+
/* @__PURE__ */ jsx(
|
|
86
|
+
FilterSelect,
|
|
87
|
+
{
|
|
88
|
+
label: "Status",
|
|
89
|
+
value: status,
|
|
90
|
+
options: STATUS_OPTIONS,
|
|
91
|
+
onChange: filtered(
|
|
92
|
+
(v) => setStatus(v)
|
|
93
|
+
)
|
|
94
|
+
}
|
|
95
|
+
)
|
|
96
|
+
] }),
|
|
97
|
+
emptyTitle: hasFilters ? "No reviews match this merchant, rating and status." : "Customer reviews appear here once they are submitted.",
|
|
98
|
+
head: /* @__PURE__ */ jsxs("tr", { children: [
|
|
99
|
+
/* @__PURE__ */ jsx(Th, { children: "Submitted" }),
|
|
100
|
+
/* @__PURE__ */ jsx(Th, { children: "Rating" }),
|
|
101
|
+
/* @__PURE__ */ jsx(Th, { children: "Review" }),
|
|
102
|
+
/* @__PURE__ */ jsx(Th, { children: "Tenant / content" }),
|
|
103
|
+
/* @__PURE__ */ jsx(Th, { children: "Status" }),
|
|
104
|
+
/* @__PURE__ */ jsx(Th, { children: "Merchant response" })
|
|
105
|
+
] }),
|
|
106
|
+
footer: reviews.data && reviews.data.total > 0 ? /* @__PURE__ */ jsx(
|
|
107
|
+
ListPager,
|
|
108
|
+
{
|
|
109
|
+
page,
|
|
110
|
+
totalPages,
|
|
111
|
+
total: reviews.data.total,
|
|
112
|
+
noun: "reviews",
|
|
113
|
+
onPage: setPage
|
|
114
|
+
}
|
|
115
|
+
) : void 0,
|
|
116
|
+
children: reviews.data?.rows.map((row) => /* @__PURE__ */ jsx(ReviewRow, { row }, row.id))
|
|
117
|
+
}
|
|
118
|
+
) })
|
|
119
|
+
] });
|
|
120
|
+
}
|
|
121
|
+
export {
|
|
122
|
+
AdminReviewsPage as default
|
|
123
|
+
};
|
|
124
|
+
//# sourceMappingURL=page.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/admin/reviews/page.tsx"],"sourcesContent":["'use client';\n\nimport { useState } from 'react';\nimport { Th } from '@withpotter/ui-kit';\nimport type { ReviewStatus } from '@withpotter/lib/admin-service-operations-api';\nimport { SectionHeader } from '../audit/section-header';\nimport { FilterSelect, Filters } from '../_ui';\nimport { ListCard, ListPager } from '../_ui/list-card';\nimport { MerchantFilter } from './merchant-filter';\nimport { ReviewRow } from './review-row';\nimport { ReviewsKpis } from './reviews-kpis';\nimport type { Merchant } from './use-merchant-search';\nimport { useAdminReviewAnalytics, useAdminReviews } from './use-admin-reviews';\nimport styles from './reviews.module.css';\n\nconst PAGE_SIZE = 20;\nconst RATING_OPTIONS = [\n { value: '', label: 'All ratings' },\n ...[5, 4, 3, 2, 1].map((rating) => ({\n value: String(rating),\n label: `${rating} star${rating === 1 ? '' : 's'}`,\n })),\n];\nconst STATUS_OPTIONS = [\n { value: '', label: 'All statuses' },\n ...['pending', 'approved', 'rejected', 'flagged'].map((value) => ({\n value,\n label: value.charAt(0).toUpperCase() + value.slice(1),\n })),\n];\n\nexport default function AdminReviewsPage() {\n const [merchant, setMerchant] = useState<Merchant | null>(null);\n const [rating, setRating] = useState('');\n const [status, setStatus] = useState<ReviewStatus | ''>('');\n const [page, setPage] = useState(1);\n const query = {\n tenantId: merchant?.id,\n rating: rating ? Number(rating) : undefined,\n status: status || undefined,\n };\n const reviews = useAdminReviews({ ...query, page, pageSize: PAGE_SIZE });\n const analytics = useAdminReviewAnalytics(query);\n const hasFilters = Boolean(merchant || rating || status);\n const totalPages = reviews.data\n ? Math.max(1, Math.ceil(reviews.data.total / reviews.data.pageSize))\n : 1;\n const filtered =\n <T,>(set: (value: T) => void) =>\n (value: T) => {\n set(value);\n setPage(1);\n };\n\n return (\n <div>\n <SectionHeader\n title=\"Customer reviews\"\n description=\"Ratings and merchant responses across every merchant. Read-only.\"\n />\n\n <ReviewsKpis data={analytics.data} isLoading={analytics.isLoading} />\n\n <div className={styles.list}>\n <ListCard\n title={merchant ? `Reviews for ${merchant.name}` : 'All reviews'}\n count={reviews.data?.total}\n columns={6}\n minWidth={1080}\n isLoading={reviews.isLoading}\n isError={reviews.isError}\n onRetry={() => void reviews.refetch()}\n errorTitle=\"Failed to load customer reviews.\"\n isEmpty={reviews.data?.rows.length === 0}\n controls={\n <Filters label=\"Filter reviews\">\n <div className={styles.merchant}>\n <MerchantFilter\n value={merchant}\n onChange={filtered(setMerchant)}\n allLabel=\"All merchants\"\n />\n </div>\n <FilterSelect\n label=\"Rating\"\n value={rating}\n options={RATING_OPTIONS}\n onChange={filtered(setRating)}\n />\n <FilterSelect\n label=\"Status\"\n value={status}\n options={STATUS_OPTIONS}\n onChange={filtered((v: string) =>\n setStatus(v as ReviewStatus | ''),\n )}\n />\n </Filters>\n }\n emptyTitle={\n hasFilters\n ? 'No reviews match this merchant, rating and status.'\n : 'Customer reviews appear here once they are submitted.'\n }\n head={\n <tr>\n <Th>Submitted</Th>\n <Th>Rating</Th>\n <Th>Review</Th>\n <Th>Tenant / content</Th>\n <Th>Status</Th>\n <Th>Merchant response</Th>\n </tr>\n }\n footer={\n reviews.data && reviews.data.total > 0 ? (\n <ListPager\n page={page}\n totalPages={totalPages}\n total={reviews.data.total}\n noun=\"reviews\"\n onPage={setPage}\n />\n ) : undefined\n }\n >\n {reviews.data?.rows.map((row) => (\n <ReviewRow key={row.id} row={row} />\n ))}\n </ListCard>\n </div>\n </div>\n );\n}\n"],"mappings":"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","names":[]}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Star } from "lucide-react";
|
|
3
|
+
import { TableRow } from "@withpotter/ui-kit";
|
|
4
|
+
import { StatusPill } from "../audit/status-pill";
|
|
5
|
+
import list from "../_ui/list-card.module.css";
|
|
6
|
+
import styles from "./reviews.module.css";
|
|
7
|
+
const sentence = (s) => s.charAt(0).toUpperCase() + s.slice(1);
|
|
8
|
+
function Rating({ value }) {
|
|
9
|
+
return /* @__PURE__ */ jsxs("span", { className: styles.rating, "aria-label": `${value} out of 5 stars`, children: [
|
|
10
|
+
/* @__PURE__ */ jsx(Star, { size: 13, className: styles.star, "aria-hidden": true }),
|
|
11
|
+
/* @__PURE__ */ jsx("strong", { children: value }),
|
|
12
|
+
/* @__PURE__ */ jsx("span", { children: "/ 5" })
|
|
13
|
+
] });
|
|
14
|
+
}
|
|
15
|
+
function ReviewRow({ row }) {
|
|
16
|
+
return /* @__PURE__ */ jsxs(TableRow, { children: [
|
|
17
|
+
/* @__PURE__ */ jsx("td", { className: `${list.nowrap} ${list.muted} ${styles.when}`, children: new Date(row.createdAt).toLocaleString() }),
|
|
18
|
+
/* @__PURE__ */ jsx("td", { className: list.nowrap, children: /* @__PURE__ */ jsx(Rating, { value: row.rating }) }),
|
|
19
|
+
/* @__PURE__ */ jsx("td", { children: /* @__PURE__ */ jsxs("div", { className: styles.reviewText, children: [
|
|
20
|
+
/* @__PURE__ */ jsx("strong", { children: row.title || "Untitled review" }),
|
|
21
|
+
/* @__PURE__ */ jsx("p", { children: row.body }),
|
|
22
|
+
/* @__PURE__ */ jsx("span", { children: row.reviewerName })
|
|
23
|
+
] }) }),
|
|
24
|
+
/* @__PURE__ */ jsx("td", { className: list.muted, children: /* @__PURE__ */ jsxs("div", { className: styles.identifiers, children: [
|
|
25
|
+
/* @__PURE__ */ jsxs("span", { children: [
|
|
26
|
+
"Tenant: ",
|
|
27
|
+
row.tenantId
|
|
28
|
+
] }),
|
|
29
|
+
/* @__PURE__ */ jsxs("span", { children: [
|
|
30
|
+
"Content: ",
|
|
31
|
+
row.contentId
|
|
32
|
+
] })
|
|
33
|
+
] }) }),
|
|
34
|
+
/* @__PURE__ */ jsx("td", { children: /* @__PURE__ */ jsxs("div", { className: styles.badges, children: [
|
|
35
|
+
/* @__PURE__ */ jsx(StatusPill, { status: row.status, label: sentence(row.status) }),
|
|
36
|
+
row.isVerifiedPurchase && /* @__PURE__ */ jsx(StatusPill, { status: "verified", label: "Verified" })
|
|
37
|
+
] }) }),
|
|
38
|
+
/* @__PURE__ */ jsx("td", { children: row.merchantResponse ? /* @__PURE__ */ jsx("p", { className: styles.response, children: row.merchantResponse }) : /* @__PURE__ */ jsx("span", { className: styles.muted, children: "No response" }) })
|
|
39
|
+
] });
|
|
40
|
+
}
|
|
41
|
+
export {
|
|
42
|
+
ReviewRow
|
|
43
|
+
};
|
|
44
|
+
//# sourceMappingURL=review-row.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/admin/reviews/review-row.tsx"],"sourcesContent":["import { Star } from 'lucide-react';\nimport { TableRow } from '@withpotter/ui-kit';\nimport { StatusPill } from '../audit/status-pill';\nimport type { PlatformReview } from '@withpotter/lib/admin-service-operations-api';\nimport list from '../_ui/list-card.module.css';\nimport styles from './reviews.module.css';\n\nconst sentence = (s: string) => s.charAt(0).toUpperCase() + s.slice(1);\n\nfunction Rating({ value }: { value: number }) {\n return (\n <span className={styles.rating} aria-label={`${value} out of 5 stars`}>\n <Star size={13} className={styles.star} aria-hidden />\n <strong>{value}</strong>\n <span>/ 5</span>\n </span>\n );\n}\n\n/** One review: when, how many stars, what was said, and who answered. */\nexport function ReviewRow({ row }: { row: PlatformReview }) {\n return (\n <TableRow>\n <td className={`${list.nowrap} ${list.muted} ${styles.when}`}>\n {new Date(row.createdAt).toLocaleString()}\n </td>\n <td className={list.nowrap}>\n <Rating value={row.rating} />\n </td>\n <td>\n <div className={styles.reviewText}>\n <strong>{row.title || 'Untitled review'}</strong>\n <p>{row.body}</p>\n <span>{row.reviewerName}</span>\n </div>\n </td>\n <td className={list.muted}>\n <div className={styles.identifiers}>\n <span>Tenant: {row.tenantId}</span>\n <span>Content: {row.contentId}</span>\n </div>\n </td>\n <td>\n <div className={styles.badges}>\n <StatusPill status={row.status} label={sentence(row.status)} />\n {row.isVerifiedPurchase && (\n <StatusPill status=\"verified\" label=\"Verified\" />\n )}\n </div>\n </td>\n <td>\n {row.merchantResponse ? (\n <p className={styles.response}>{row.merchantResponse}</p>\n ) : (\n <span className={styles.muted}>No response</span>\n )}\n </td>\n </TableRow>\n );\n}\n"],"mappings":"AAWI,SACE,KADF;AAXJ,SAAS,YAAY;AACrB,SAAS,gBAAgB;AACzB,SAAS,kBAAkB;AAE3B,OAAO,UAAU;AACjB,OAAO,YAAY;AAEnB,MAAM,WAAW,CAAC,MAAc,EAAE,OAAO,CAAC,EAAE,YAAY,IAAI,EAAE,MAAM,CAAC;AAErE,SAAS,OAAO,EAAE,MAAM,GAAsB;AAC5C,SACE,qBAAC,UAAK,WAAW,OAAO,QAAQ,cAAY,GAAG,KAAK,mBAClD;AAAA,wBAAC,QAAK,MAAM,IAAI,WAAW,OAAO,MAAM,eAAW,MAAC;AAAA,IACpD,oBAAC,YAAQ,iBAAM;AAAA,IACf,oBAAC,UAAK,iBAAG;AAAA,KACX;AAEJ;AAGO,SAAS,UAAU,EAAE,IAAI,GAA4B;AAC1D,SACE,qBAAC,YACC;AAAA,wBAAC,QAAG,WAAW,GAAG,KAAK,MAAM,IAAI,KAAK,KAAK,IAAI,OAAO,IAAI,IACvD,cAAI,KAAK,IAAI,SAAS,EAAE,eAAe,GAC1C;AAAA,IACA,oBAAC,QAAG,WAAW,KAAK,QAClB,8BAAC,UAAO,OAAO,IAAI,QAAQ,GAC7B;AAAA,IACA,oBAAC,QACC,+BAAC,SAAI,WAAW,OAAO,YACrB;AAAA,0BAAC,YAAQ,cAAI,SAAS,mBAAkB;AAAA,MACxC,oBAAC,OAAG,cAAI,MAAK;AAAA,MACb,oBAAC,UAAM,cAAI,cAAa;AAAA,OAC1B,GACF;AAAA,IACA,oBAAC,QAAG,WAAW,KAAK,OAClB,+BAAC,SAAI,WAAW,OAAO,aACrB;AAAA,2BAAC,UAAK;AAAA;AAAA,QAAS,IAAI;AAAA,SAAS;AAAA,MAC5B,qBAAC,UAAK;AAAA;AAAA,QAAU,IAAI;AAAA,SAAU;AAAA,OAChC,GACF;AAAA,IACA,oBAAC,QACC,+BAAC,SAAI,WAAW,OAAO,QACrB;AAAA,0BAAC,cAAW,QAAQ,IAAI,QAAQ,OAAO,SAAS,IAAI,MAAM,GAAG;AAAA,MAC5D,IAAI,sBACH,oBAAC,cAAW,QAAO,YAAW,OAAM,YAAW;AAAA,OAEnD,GACF;AAAA,IACA,oBAAC,QACE,cAAI,mBACH,oBAAC,OAAE,WAAW,OAAO,UAAW,cAAI,kBAAiB,IAErD,oBAAC,UAAK,WAAW,OAAO,OAAO,yBAAW,GAE9C;AAAA,KACF;AAEJ;","names":[]}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { MetricRow, MetricTile } from "@withpotter/ui-kit";
|
|
4
|
+
import { CountUp } from "../_fx";
|
|
5
|
+
function ReviewsKpis({
|
|
6
|
+
data,
|
|
7
|
+
isLoading
|
|
8
|
+
}) {
|
|
9
|
+
const count = (status) => data?.statusDistribution.find((row) => row.status === status)?.total ?? 0;
|
|
10
|
+
const total = data?.total ?? 0;
|
|
11
|
+
const share = (n) => total > 0 ? `${Math.round(n / total * 100)}% of reviews` : void 0;
|
|
12
|
+
const approved = count("approved");
|
|
13
|
+
const pending = count("pending");
|
|
14
|
+
const shown = (node) => isLoading ? null : node;
|
|
15
|
+
return /* @__PURE__ */ jsxs(MetricRow, { children: [
|
|
16
|
+
/* @__PURE__ */ jsx(
|
|
17
|
+
MetricTile,
|
|
18
|
+
{
|
|
19
|
+
label: "Reviews",
|
|
20
|
+
loading: isLoading,
|
|
21
|
+
value: shown(/* @__PURE__ */ jsx(CountUp, { value: total }))
|
|
22
|
+
}
|
|
23
|
+
),
|
|
24
|
+
/* @__PURE__ */ jsx(
|
|
25
|
+
MetricTile,
|
|
26
|
+
{
|
|
27
|
+
label: "Average rating",
|
|
28
|
+
loading: isLoading,
|
|
29
|
+
value: shown(`${(data?.averageRating ?? 0).toFixed(1)} / 5`)
|
|
30
|
+
}
|
|
31
|
+
),
|
|
32
|
+
/* @__PURE__ */ jsx(
|
|
33
|
+
MetricTile,
|
|
34
|
+
{
|
|
35
|
+
label: "Approved",
|
|
36
|
+
loading: isLoading,
|
|
37
|
+
value: shown(/* @__PURE__ */ jsx(CountUp, { value: approved })),
|
|
38
|
+
footnote: share(approved)
|
|
39
|
+
}
|
|
40
|
+
),
|
|
41
|
+
/* @__PURE__ */ jsx(
|
|
42
|
+
MetricTile,
|
|
43
|
+
{
|
|
44
|
+
label: "Awaiting moderation",
|
|
45
|
+
loading: isLoading,
|
|
46
|
+
value: shown(/* @__PURE__ */ jsx(CountUp, { value: pending })),
|
|
47
|
+
footnote: share(pending)
|
|
48
|
+
}
|
|
49
|
+
)
|
|
50
|
+
] });
|
|
51
|
+
}
|
|
52
|
+
export {
|
|
53
|
+
ReviewsKpis
|
|
54
|
+
};
|
|
55
|
+
//# sourceMappingURL=reviews-kpis.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/admin/reviews/reviews-kpis.tsx"],"sourcesContent":["'use client';\n\nimport type { ReactNode } from 'react';\nimport type { ReviewStatus } from '@withpotter/lib/admin-service-operations-api';\nimport { MetricRow, MetricTile } from '@withpotter/ui-kit';\nimport { CountUp } from '../_fx';\n\ninterface Analytics {\n total: number;\n averageRating: number;\n statusDistribution: Array<{ status: ReviewStatus; total: number }>;\n}\n\n/**\n * Four headline figures for the filtered reviews, all from the analytics\n * endpoint. \"Awaiting moderation\" is the pending status count: the API has\n * no figure for reviews still waiting on a merchant response.\n */\nexport function ReviewsKpis({\n data,\n isLoading,\n}: {\n data: Analytics | undefined;\n isLoading: boolean;\n}) {\n const count = (status: ReviewStatus) =>\n data?.statusDistribution.find((row) => row.status === status)?.total ?? 0;\n const total = data?.total ?? 0;\n const share = (n: number) =>\n total > 0 ? `${Math.round((n / total) * 100)}% of reviews` : undefined;\n const approved = count('approved');\n const pending = count('pending');\n // Null while loading, so each tile draws its placeholder instead of a 0.\n const shown = (node: ReactNode) => (isLoading ? null : node);\n\n return (\n <MetricRow>\n <MetricTile\n label=\"Reviews\"\n loading={isLoading}\n value={shown(<CountUp value={total} />)}\n />\n <MetricTile\n label=\"Average rating\"\n loading={isLoading}\n value={shown(`${(data?.averageRating ?? 0).toFixed(1)} / 5`)}\n />\n <MetricTile\n label=\"Approved\"\n loading={isLoading}\n value={shown(<CountUp value={approved} />)}\n footnote={share(approved)}\n />\n <MetricTile\n label=\"Awaiting moderation\"\n loading={isLoading}\n value={shown(<CountUp value={pending} />)}\n footnote={share(pending)}\n />\n </MetricRow>\n );\n}\n"],"mappings":";AAoCI,SAIiB,KAJjB;AAhCJ,SAAS,WAAW,kBAAkB;AACtC,SAAS,eAAe;AAajB,SAAS,YAAY;AAAA,EAC1B;AAAA,EACA;AACF,GAGG;AACD,QAAM,QAAQ,CAAC,WACb,MAAM,mBAAmB,KAAK,CAAC,QAAQ,IAAI,WAAW,MAAM,GAAG,SAAS;AAC1E,QAAM,QAAQ,MAAM,SAAS;AAC7B,QAAM,QAAQ,CAAC,MACb,QAAQ,IAAI,GAAG,KAAK,MAAO,IAAI,QAAS,GAAG,CAAC,iBAAiB;AAC/D,QAAM,WAAW,MAAM,UAAU;AACjC,QAAM,UAAU,MAAM,SAAS;AAE/B,QAAM,QAAQ,CAAC,SAAqB,YAAY,OAAO;AAEvD,SACE,qBAAC,aACC;AAAA;AAAA,MAAC;AAAA;AAAA,QACC,OAAM;AAAA,QACN,SAAS;AAAA,QACT,OAAO,MAAM,oBAAC,WAAQ,OAAO,OAAO,CAAE;AAAA;AAAA,IACxC;AAAA,IACA;AAAA,MAAC;AAAA;AAAA,QACC,OAAM;AAAA,QACN,SAAS;AAAA,QACT,OAAO,MAAM,IAAI,MAAM,iBAAiB,GAAG,QAAQ,CAAC,CAAC,MAAM;AAAA;AAAA,IAC7D;AAAA,IACA;AAAA,MAAC;AAAA;AAAA,QACC,OAAM;AAAA,QACN,SAAS;AAAA,QACT,OAAO,MAAM,oBAAC,WAAQ,OAAO,UAAU,CAAE;AAAA,QACzC,UAAU,MAAM,QAAQ;AAAA;AAAA,IAC1B;AAAA,IACA;AAAA,MAAC;AAAA;AAAA,QACC,OAAM;AAAA,QACN,SAAS;AAAA,QACT,OAAO,MAAM,oBAAC,WAAQ,OAAO,SAAS,CAAE;AAAA,QACxC,UAAU,MAAM,OAAO;AAAA;AAAA,IACzB;AAAA,KACF;AAEJ;","names":[]}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
/* The list sits a layout step under the KPIs; its filters live in the
|
|
2
|
+
card's own toolbar, right of the title. */
|
|
3
|
+
.list {
|
|
4
|
+
margin-top: 16px;
|
|
5
|
+
}
|
|
6
|
+
.merchant {
|
|
7
|
+
width: 240px;
|
|
8
|
+
max-width: 100%;
|
|
9
|
+
}
|
|
10
|
+
.when {
|
|
11
|
+
font-variant-numeric: tabular-nums;
|
|
12
|
+
}
|
|
13
|
+
.rating {
|
|
14
|
+
display: inline-flex;
|
|
15
|
+
align-items: center;
|
|
16
|
+
gap: 4px;
|
|
17
|
+
}
|
|
18
|
+
.rating strong {
|
|
19
|
+
font-variant-numeric: tabular-nums;
|
|
20
|
+
font-weight: 500;
|
|
21
|
+
}
|
|
22
|
+
.star {
|
|
23
|
+
color: var(--brand-500);
|
|
24
|
+
fill: var(--brand-500);
|
|
25
|
+
}
|
|
26
|
+
.rating span,
|
|
27
|
+
.reviewText span,
|
|
28
|
+
.muted {
|
|
29
|
+
color: var(--text-tertiary);
|
|
30
|
+
}
|
|
31
|
+
.reviewText {
|
|
32
|
+
min-width: 260px;
|
|
33
|
+
max-width: 440px;
|
|
34
|
+
}
|
|
35
|
+
.reviewText p,
|
|
36
|
+
.response {
|
|
37
|
+
margin: 4px 0;
|
|
38
|
+
line-height: 1.5;
|
|
39
|
+
overflow-wrap: anywhere;
|
|
40
|
+
white-space: pre-wrap;
|
|
41
|
+
}
|
|
42
|
+
.reviewText span {
|
|
43
|
+
font-size: 12px;
|
|
44
|
+
}
|
|
45
|
+
.identifiers {
|
|
46
|
+
display: grid;
|
|
47
|
+
gap: 4px;
|
|
48
|
+
min-width: 210px;
|
|
49
|
+
max-width: 260px;
|
|
50
|
+
overflow-wrap: anywhere;
|
|
51
|
+
}
|
|
52
|
+
.badges {
|
|
53
|
+
display: flex;
|
|
54
|
+
flex-wrap: wrap;
|
|
55
|
+
gap: 4px 12px;
|
|
56
|
+
}
|
|
57
|
+
.response {
|
|
58
|
+
min-width: 200px;
|
|
59
|
+
max-width: 340px;
|
|
60
|
+
}
|
|
61
|
+
@media (max-width: 800px) {
|
|
62
|
+
.merchant,
|
|
63
|
+
.select {
|
|
64
|
+
flex: 1 1 100%;
|
|
65
|
+
max-width: none;
|
|
66
|
+
width: 100%;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { useQuery } from "@tanstack/react-query";
|
|
3
|
+
import {
|
|
4
|
+
adminServiceOperationsApi
|
|
5
|
+
} from "@withpotter/lib/admin-service-operations-api";
|
|
6
|
+
function useAdminReviews(query) {
|
|
7
|
+
return useQuery({
|
|
8
|
+
queryKey: ["platform-admin", "reviews", "list", query],
|
|
9
|
+
queryFn: () => adminServiceOperationsApi.listReviews(query)
|
|
10
|
+
});
|
|
11
|
+
}
|
|
12
|
+
function useAdminReviewAnalytics(query) {
|
|
13
|
+
return useQuery({
|
|
14
|
+
queryKey: ["platform-admin", "reviews", "analytics", query],
|
|
15
|
+
queryFn: () => adminServiceOperationsApi.reviewAnalytics(query)
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
export {
|
|
19
|
+
useAdminReviewAnalytics,
|
|
20
|
+
useAdminReviews
|
|
21
|
+
};
|
|
22
|
+
//# sourceMappingURL=use-admin-reviews.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/admin/reviews/use-admin-reviews.ts"],"sourcesContent":["'use client';\n\nimport { useQuery } from '@tanstack/react-query';\nimport {\n adminServiceOperationsApi,\n type ReviewQuery,\n} from '@withpotter/lib/admin-service-operations-api';\n\nexport function useAdminReviews(query: ReviewQuery) {\n return useQuery({\n queryKey: ['platform-admin', 'reviews', 'list', query],\n queryFn: () => adminServiceOperationsApi.listReviews(query),\n });\n}\n\nexport function useAdminReviewAnalytics(query: ReviewQuery) {\n return useQuery({\n queryKey: ['platform-admin', 'reviews', 'analytics', query],\n queryFn: () => adminServiceOperationsApi.reviewAnalytics(query),\n });\n}\n"],"mappings":";AAEA,SAAS,gBAAgB;AACzB;AAAA,EACE;AAAA,OAEK;AAEA,SAAS,gBAAgB,OAAoB;AAClD,SAAO,SAAS;AAAA,IACd,UAAU,CAAC,kBAAkB,WAAW,QAAQ,KAAK;AAAA,IACrD,SAAS,MAAM,0BAA0B,YAAY,KAAK;AAAA,EAC5D,CAAC;AACH;AAEO,SAAS,wBAAwB,OAAoB;AAC1D,SAAO,SAAS;AAAA,IACd,UAAU,CAAC,kBAAkB,WAAW,aAAa,KAAK;AAAA,IAC1D,SAAS,MAAM,0BAA0B,gBAAgB,KAAK;AAAA,EAChE,CAAC;AACH;","names":[]}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { useQuery } from "@tanstack/react-query";
|
|
3
|
+
import { platformAdminApi } from "@withpotter/lib/admin-api";
|
|
4
|
+
import { useDebouncedValue } from "@withpotter/hooks/use-debounced-value";
|
|
5
|
+
const toMerchant = (t) => ({
|
|
6
|
+
id: t.id,
|
|
7
|
+
name: t.businessName,
|
|
8
|
+
slug: t.slug,
|
|
9
|
+
logoUrl: t.logoUrl ?? t.profile?.logoUrl ?? null
|
|
10
|
+
});
|
|
11
|
+
function useMerchantSearch(term, enabled = true, size = 8) {
|
|
12
|
+
const search = useDebouncedValue(term.trim());
|
|
13
|
+
const query = useQuery({
|
|
14
|
+
queryKey: ["platform-admin", "merchant-picker", search, size],
|
|
15
|
+
queryFn: () => platformAdminApi.tenants({
|
|
16
|
+
page: 1,
|
|
17
|
+
pageSize: size,
|
|
18
|
+
search: search || void 0
|
|
19
|
+
}),
|
|
20
|
+
enabled
|
|
21
|
+
});
|
|
22
|
+
return {
|
|
23
|
+
merchants: (query.data?.rows ?? []).map(toMerchant),
|
|
24
|
+
isLoading: query.isLoading || search !== term.trim(),
|
|
25
|
+
isError: query.isError
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
export {
|
|
29
|
+
toMerchant,
|
|
30
|
+
useMerchantSearch
|
|
31
|
+
};
|
|
32
|
+
//# sourceMappingURL=use-merchant-search.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/admin/reviews/use-merchant-search.ts"],"sourcesContent":["'use client';\n\nimport { useQuery } from '@tanstack/react-query';\nimport { platformAdminApi, type TenantRow } from '@withpotter/lib/admin-api';\nimport { useDebouncedValue } from '@withpotter/hooks/use-debounced-value';\n\n/** A merchant as the picker shows it: name, slug and a logo when one exists. */\nexport interface Merchant {\n id: string;\n name: string;\n slug?: string;\n logoUrl?: string | null;\n}\n\n/** The tenants list has no logo today; use one if the API starts sending it. */\nexport const toMerchant = (t: TenantRow): Merchant => ({\n id: t.id,\n name: t.businessName,\n slug: t.slug,\n logoUrl:\n (t as TenantRow & { logoUrl?: string | null }).logoUrl ??\n (t as TenantRow & { profile?: { logoUrl?: string | null } }).profile\n ?.logoUrl ??\n null,\n});\n\n/**\n * Merchants matching what was typed, from the tenants search endpoint. The\n * term is debounced so a fast typist sends one request, not one per letter.\n */\nexport function useMerchantSearch(term: string, enabled = true, size = 8) {\n const search = useDebouncedValue(term.trim());\n\n const query = useQuery({\n queryKey: ['platform-admin', 'merchant-picker', search, size],\n queryFn: () =>\n platformAdminApi.tenants({\n page: 1,\n pageSize: size,\n search: search || undefined,\n }),\n enabled,\n });\n\n return {\n merchants: (query.data?.rows ?? []).map(toMerchant),\n isLoading: query.isLoading || search !== term.trim(),\n isError: query.isError,\n };\n}\n"],"mappings":";AAEA,SAAS,gBAAgB;AACzB,SAAS,wBAAwC;AACjD,SAAS,yBAAyB;AAW3B,MAAM,aAAa,CAAC,OAA4B;AAAA,EACrD,IAAI,EAAE;AAAA,EACN,MAAM,EAAE;AAAA,EACR,MAAM,EAAE;AAAA,EACR,SACG,EAA8C,WAC9C,EAA4D,SACzD,WACJ;AACJ;AAMO,SAAS,kBAAkB,MAAc,UAAU,MAAM,OAAO,GAAG;AACxE,QAAM,SAAS,kBAAkB,KAAK,KAAK,CAAC;AAE5C,QAAM,QAAQ,SAAS;AAAA,IACrB,UAAU,CAAC,kBAAkB,mBAAmB,QAAQ,IAAI;AAAA,IAC5D,SAAS,MACP,iBAAiB,QAAQ;AAAA,MACvB,MAAM;AAAA,MACN,UAAU;AAAA,MACV,QAAQ,UAAU;AAAA,IACpB,CAAC;AAAA,IACH;AAAA,EACF,CAAC;AAED,SAAO;AAAA,IACL,YAAY,MAAM,MAAM,QAAQ,CAAC,GAAG,IAAI,UAAU;AAAA,IAClD,WAAW,MAAM,aAAa,WAAW,KAAK,KAAK;AAAA,IACnD,SAAS,MAAM;AAAA,EACjB;AACF;","names":[]}
|