@withpotter/pages-admin 0.13.0-next.103 → 0.13.0-next.105
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/_overview/activation-panel.js +6 -6
- package/dist/admin/_overview/activation-panel.js.map +1 -1
- package/dist/admin/_overview/attention-groups.js +8 -8
- package/dist/admin/_overview/attention-groups.js.map +1 -1
- package/dist/admin/_overview/attention-panel.js +3 -3
- package/dist/admin/_overview/attention-panel.js.map +1 -1
- package/dist/admin/_overview/control-room.js +9 -9
- package/dist/admin/_overview/control-room.js.map +1 -1
- package/dist/admin/_overview/kpi-row.js +7 -7
- package/dist/admin/_overview/kpi-row.js.map +1 -1
- package/dist/admin/_overview/leaders-panel.js +1 -1
- package/dist/admin/_overview/leaders-panel.js.map +1 -1
- package/dist/admin/_overview/portfolio-panel.js +5 -5
- package/dist/admin/_overview/portfolio-panel.js.map +1 -1
- package/dist/admin/_overview/position-panel.js +6 -6
- package/dist/admin/_overview/position-panel.js.map +1 -1
- package/dist/admin/_pos/olive-balance.js +40 -0
- package/dist/admin/_pos/olive-balance.js.map +1 -0
- package/dist/admin/_pos/olive-state.js +23 -0
- package/dist/admin/_pos/olive-state.js.map +1 -0
- package/dist/admin/_pos/pos-rules.js +2 -0
- package/dist/admin/_pos/pos-rules.js.map +1 -1
- package/dist/admin/_pos/tenant-operators.js +36 -46
- package/dist/admin/_pos/tenant-operators.js.map +1 -1
- package/dist/admin/_pos/tenant-outlets.js +77 -0
- package/dist/admin/_pos/tenant-outlets.js.map +1 -0
- package/dist/admin/_pos/tenant-requests.js +64 -0
- package/dist/admin/_pos/tenant-requests.js.map +1 -0
- package/dist/admin/_pos/tenant-transactions.js +145 -0
- package/dist/admin/_pos/tenant-transactions.js.map +1 -0
- package/dist/admin/_pos/use-pos.js +60 -11
- package/dist/admin/_pos/use-pos.js.map +1 -1
- package/dist/admin/_ui/data-table.js +1 -1
- package/dist/admin/_ui/data-table.js.map +1 -1
- package/dist/admin/_ui/list-card.js +1 -1
- package/dist/admin/_ui/list-card.js.map +1 -1
- package/dist/admin/_ui/trend.js +2 -2
- package/dist/admin/_ui/trend.js.map +1 -1
- package/dist/admin/page.js +6 -6
- package/dist/admin/page.js.map +1 -1
- package/dist/admin/payout-tiers/_tier-dialog.js +31 -21
- package/dist/admin/payout-tiers/_tier-dialog.js.map +1 -1
- package/dist/admin/payout-tiers/requirement-labels.js +70 -0
- package/dist/admin/payout-tiers/requirement-labels.js.map +1 -0
- package/dist/admin/payout-tiers/tier-preview-result.js +10 -9
- package/dist/admin/payout-tiers/tier-preview-result.js.map +1 -1
- package/dist/admin/payout-tiers/tiers-table.js +6 -7
- package/dist/admin/payout-tiers/tiers-table.js.map +1 -1
- package/dist/admin/payout-tiers/tiers-workspace.js +2 -2
- package/dist/admin/payout-tiers/tiers-workspace.js.map +1 -1
- package/dist/admin/revenue/cohort-panel.js +1 -1
- package/dist/admin/revenue/cohort-panel.js.map +1 -1
- package/dist/admin/revenue/plan-mix-panel.js +2 -2
- package/dist/admin/revenue/plan-mix-panel.js.map +1 -1
- package/dist/admin/revenue/revenue-kpis.js +3 -3
- package/dist/admin/revenue/revenue-kpis.js.map +1 -1
- package/dist/admin/revenue/revenue-overview.js +1 -1
- package/dist/admin/revenue/revenue-overview.js.map +1 -1
- package/dist/admin/revenue/subscriptions-view.js +3 -3
- package/dist/admin/revenue/subscriptions-view.js.map +1 -1
- package/dist/admin/revenue/top-tenants-panel.js +3 -3
- package/dist/admin/revenue/top-tenants-panel.js.map +1 -1
- package/dist/admin/tenants/[id]/tenant-pos.js +13 -2
- package/dist/admin/tenants/[id]/tenant-pos.js.map +1 -1
- package/package.json +4 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/admin/tenants/%5Bid%5D/tenant-pos.tsx"],"sourcesContent":["'use client';\n\nimport Link from 'next/link';\nimport { useRouter } from 'next/navigation';\nimport { EmptyNote } from '@withpotter/ui-kit';\nimport {\n AdmLoading,\n CurrencyFilter,\n PageTabs,\n currenciesIn,\n useCurrencyParam,\n useTabParam,\n} from '../../_ui';\nimport { ListCard } from '../../_ui/list-card';\nimport { LoadError, MoneyLines } from '../../_pos/pos-parts';\nimport { count } from '../../_pos/pos-words';\nimport { terminalHref } from '../../_pos/shift-row';\nimport { ShiftsTable } from '../../_pos/shifts-table';\nimport { usePosAccess } from '../../_pos/use-pos-access';\nimport { usePosPeriod } from '../../_pos/use-pos-period';\nimport { useTenantPos } from '../../_pos/use-pos';\nimport pos from '../../_pos/pos.module.css';\nimport { TenantOperators } from '../../_pos/tenant-operators';\nimport { TenantPosFigures } from '../../_pos/tenant-pos-figures';\nimport { ShiftsTab } from '../../pos/shifts-tab';\nimport {\n TerminalHead,\n TerminalRow,\n terminalColumns,\n} from '../../pos/terminal-row';\n\nconst VIEWS = [\n { id: 'overview', label: 'Overview' },\n { id: 'terminals', label: 'Terminals' },\n { id: 'sessions', label: 'Sessions' },\n { id: 'operators', label: 'Operators' },\n] as const;\n\nconst VIEW_KEYS = VIEWS.map((v) => v.id);\n\n/**\n * Merchant 360 → POS: the business's terminals, the shifts open now, and\n * what its terminals took in the period, per currency.\n */\nexport function TenantPos({ tenantId }: { tenantId: string }) {\n const router = useRouter();\n const { isLoading: accessLoading, canRead } = usePosAccess();\n const [view, setView] = useTabParam(VIEW_KEYS, 'view');\n const { period, phrase, control } = usePosPeriod();\n const [currency, setCurrency] = useCurrencyParam();\n const query = useTenantPos(tenantId, period, canRead);\n const data = query.data;\n\n if (accessLoading || (canRead && query.isLoading))\n return <AdmLoading label=\"Loading POS…\" />;\n\n if (!canRead)\n return (\n <EmptyNote well>\n {\"You don't have permission to see this business's POS.\"}\n </EmptyNote>\n );\n\n if (query.isError || !data)\n return (\n <LoadError\n error={query.error}\n what=\"this business's POS\"\n onRetry={() => void query.refetch()}\n />\n );\n\n const live = data.terminals.filter((t) => t.status !== 'revoked').length;\n const revoked = data.terminals.length - live;\n\n return (\n <div className={pos.stack}>\n <div className={pos.toolbarRow}>\n <span className=\"adm-caption\">\n {`${count(live, 'terminal')} in use`}\n {revoked ? `, ${revoked} revoked` : ''}\n {' · '}\n {data.takings.count > 0 ? (\n <>\n <MoneyLines amounts={data.takings.amounts} currency={currency} />\n {` taken, ${phrase} · `}\n </>\n ) : null}\n <Link\n href={`/admin/pos?tenant=${tenantId}`}\n className=\"text-brand-500 hover:underline\"\n >\n Open in POS\n </Link>\n </span>\n <div className=\"adm-toolbar\">\n <CurrencyFilter\n value={currency}\n onChange={setCurrency}\n currencies={currenciesIn(\n data.takings.amounts.map((a) => a.currency),\n )}\n />\n {control}\n </div>\n </div>\n\n <PageTabs tabs={VIEWS} active={view} onChange={setView} />\n\n {view === 'overview' && (\n <>\n <TenantPosFigures data={data} phrase={phrase} currency={currency} />\n <ShiftsTable\n title=\"Open shifts\"\n rows={data.openShifts}\n total={data.openShifts.length}\n withBusiness={false}\n currency={currency}\n emptyTitle=\"No till is open right now.\"\n />\n </>\n )}\n\n {view === 'terminals' && (\n <ListCard\n title=\"Terminals\"\n count={data.terminals.length}\n columns={terminalColumns(false)}\n minWidth={860}\n errorTitle=\"\"\n isEmpty={data.terminals.length === 0}\n emptyTitle=\"This business has no terminals.\"\n head={<TerminalHead withBusiness={false} />}\n >\n {data.terminals.map((t) => (\n <TerminalRow\n key={t.id}\n t={t}\n currency={currency}\n onOpen={() => router.push(terminalHref(t.id))}\n />\n ))}\n </ListCard>\n )}\n\n {view === 'sessions' && (\n <ShiftsTab tenantId={tenantId} currency={currency} title=\"Sessions\" />\n )}\n\n {view === 'operators' &&
|
|
1
|
+
{"version":3,"sources":["../../../../src/admin/tenants/%5Bid%5D/tenant-pos.tsx"],"sourcesContent":["'use client';\n\nimport Link from 'next/link';\nimport { useRouter } from 'next/navigation';\nimport { EmptyNote } from '@withpotter/ui-kit';\nimport {\n AdmLoading,\n CurrencyFilter,\n PageTabs,\n currenciesIn,\n useCurrencyParam,\n useTabParam,\n} from '../../_ui';\nimport { ListCard } from '../../_ui/list-card';\nimport { LoadError, MoneyLines } from '../../_pos/pos-parts';\nimport { count } from '../../_pos/pos-words';\nimport { terminalHref } from '../../_pos/shift-row';\nimport { ShiftsTable } from '../../_pos/shifts-table';\nimport { usePosAccess } from '../../_pos/use-pos-access';\nimport { usePosPeriod } from '../../_pos/use-pos-period';\nimport { useTenantPos } from '../../_pos/use-pos';\nimport pos from '../../_pos/pos.module.css';\nimport { OliveBalance } from '../../_pos/olive-balance';\nimport { TenantOperators } from '../../_pos/tenant-operators';\nimport { TenantOutlets } from '../../_pos/tenant-outlets';\nimport { TenantRequests } from '../../_pos/tenant-requests';\nimport { TenantTransactions } from '../../_pos/tenant-transactions';\nimport { TenantPosFigures } from '../../_pos/tenant-pos-figures';\nimport { ShiftsTab } from '../../pos/shifts-tab';\nimport {\n TerminalHead,\n TerminalRow,\n terminalColumns,\n} from '../../pos/terminal-row';\n\nconst VIEWS = [\n { id: 'overview', label: 'Overview' },\n { id: 'terminals', label: 'Terminals' },\n { id: 'sessions', label: 'Sessions' },\n { id: 'operators', label: 'Operators' },\n { id: 'outlets', label: 'Outlets' },\n { id: 'transactions', label: 'Transactions' },\n { id: 'requests', label: 'Requests' },\n] as const;\n\nconst VIEW_KEYS = VIEWS.map((v) => v.id);\n\n/**\n * Merchant 360 → POS: the business's terminals, the shifts open now, and\n * what its terminals took in the period, per currency.\n */\nexport function TenantPos({ tenantId }: { tenantId: string }) {\n const router = useRouter();\n const { isLoading: accessLoading, canRead } = usePosAccess();\n const [view, setView] = useTabParam(VIEW_KEYS, 'view');\n const { period, phrase, control } = usePosPeriod();\n const [currency, setCurrency] = useCurrencyParam();\n const query = useTenantPos(tenantId, period, canRead);\n const data = query.data;\n\n if (accessLoading || (canRead && query.isLoading))\n return <AdmLoading label=\"Loading POS…\" />;\n\n if (!canRead)\n return (\n <EmptyNote well>\n {\"You don't have permission to see this business's POS.\"}\n </EmptyNote>\n );\n\n if (query.isError || !data)\n return (\n <LoadError\n error={query.error}\n what=\"this business's POS\"\n onRetry={() => void query.refetch()}\n />\n );\n\n const live = data.terminals.filter((t) => t.status !== 'revoked').length;\n const revoked = data.terminals.length - live;\n\n return (\n <div className={pos.stack}>\n <div className={pos.toolbarRow}>\n <span className=\"adm-caption\">\n {`${count(live, 'terminal')} in use`}\n {revoked ? `, ${revoked} revoked` : ''}\n {' · '}\n {data.takings.count > 0 ? (\n <>\n <MoneyLines amounts={data.takings.amounts} currency={currency} />\n {` taken, ${phrase} · `}\n </>\n ) : null}\n <Link\n href={`/admin/pos?tenant=${tenantId}`}\n className=\"text-brand-500 hover:underline\"\n >\n Open in POS\n </Link>\n </span>\n <div className=\"adm-toolbar\">\n <CurrencyFilter\n value={currency}\n onChange={setCurrency}\n currencies={currenciesIn(\n data.takings.amounts.map((a) => a.currency),\n )}\n />\n {control}\n </div>\n </div>\n\n <PageTabs tabs={VIEWS} active={view} onChange={setView} />\n\n {view === 'overview' && (\n <>\n <TenantPosFigures data={data} phrase={phrase} currency={currency} />\n <OliveBalance tenantId={tenantId} />\n <ShiftsTable\n title=\"Open shifts\"\n rows={data.openShifts}\n total={data.openShifts.length}\n withBusiness={false}\n currency={currency}\n emptyTitle=\"No till is open right now.\"\n />\n </>\n )}\n\n {view === 'terminals' && (\n <ListCard\n title=\"Terminals\"\n count={data.terminals.length}\n columns={terminalColumns(false)}\n minWidth={860}\n errorTitle=\"\"\n isEmpty={data.terminals.length === 0}\n emptyTitle=\"This business has no terminals.\"\n head={<TerminalHead withBusiness={false} />}\n >\n {data.terminals.map((t) => (\n <TerminalRow\n key={t.id}\n t={t}\n currency={currency}\n onOpen={() => router.push(terminalHref(t.id))}\n />\n ))}\n </ListCard>\n )}\n\n {view === 'sessions' && (\n <ShiftsTab tenantId={tenantId} currency={currency} title=\"Sessions\" />\n )}\n\n {view === 'operators' && <TenantOperators tenantId={tenantId} />}\n\n {view === 'outlets' && <TenantOutlets tenantId={tenantId} />}\n\n {view === 'transactions' && <TenantTransactions tenantId={tenantId} />}\n\n {view === 'requests' && <TenantRequests tenantId={tenantId} />}\n </div>\n );\n}\n"],"mappings":"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","names":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@withpotter/pages-admin",
|
|
3
|
-
"version": "0.13.0-next.
|
|
3
|
+
"version": "0.13.0-next.105",
|
|
4
4
|
"description": "Box console platform-admin routes: overview, revenue, accounts, tenants, admins, roles, audit.",
|
|
5
5
|
"license": "UNLICENSED",
|
|
6
6
|
"sideEffects": false,
|
|
@@ -31,9 +31,9 @@
|
|
|
31
31
|
"dependencies": {
|
|
32
32
|
"@radix-ui/react-popover": "^1.1.23",
|
|
33
33
|
"@tanstack/react-query": "^5.90.20",
|
|
34
|
-
"@withpotter/lib": "^0.13.0-next.
|
|
35
|
-
"@withpotter/platform-admin": "^0.13.0-next.
|
|
36
|
-
"@withpotter/ui-kit": "^0.13.0-next.
|
|
34
|
+
"@withpotter/lib": "^0.13.0-next.105",
|
|
35
|
+
"@withpotter/platform-admin": "^0.13.0-next.105",
|
|
36
|
+
"@withpotter/ui-kit": "^0.13.0-next.105",
|
|
37
37
|
"lucide-react": "^0.562.0",
|
|
38
38
|
"motion": "^12.42.2"
|
|
39
39
|
},
|