Expose gateway billing flows from the synced server baseline
The preserved local work adds PopiNewAPI billing checkout, gateway account binding, and matching web console/pricing surfaces on top of the current test-server baseline. During the merge, the start-end video helpers from the deployed baseline were kept alongside the actionGenerate prompt handling from the WIP.
Constraint: Current usable baseline is 7054436, already deployed on the test server.
Rejected: Commit the WIP before syncing the baseline | would have hidden conflicts with the deployed start-end-frame changes.
Confidence: medium
Scope-risk: broad
Directive: Do not deploy this commit to the test server without rechecking gateway credentials and billing checkout behavior in that environment.
Tested: go test ./...
Tested: make build
Tested: cd web && npm run build
This commit is contained in:
+120
-1
@@ -1084,6 +1084,113 @@ code {
|
||||
align-content: start;
|
||||
}
|
||||
|
||||
.billing-purchase-stack {
|
||||
display: grid;
|
||||
gap: 12px;
|
||||
}
|
||||
|
||||
.billing-purchase-actions {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
gap: 12px;
|
||||
}
|
||||
|
||||
.billing-purchase-result {
|
||||
display: grid;
|
||||
gap: 6px;
|
||||
}
|
||||
|
||||
.billing-purchase-result a {
|
||||
color: var(--accent-strong);
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
.billing-success-links {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
gap: 10px;
|
||||
margin-top: 6px;
|
||||
}
|
||||
|
||||
.billing-order-detail {
|
||||
border-top: 1px solid var(--line);
|
||||
}
|
||||
|
||||
.billing-order-detail:first-child {
|
||||
border-top: 0;
|
||||
}
|
||||
|
||||
.billing-order-summary {
|
||||
list-style: none;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.billing-order-summary::-webkit-details-marker {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.billing-order-body {
|
||||
padding: 0 0 12px;
|
||||
}
|
||||
|
||||
.billing-filter-row,
|
||||
.billing-filter-group,
|
||||
.billing-filter-links,
|
||||
.billing-pagination {
|
||||
display: flex;
|
||||
}
|
||||
|
||||
.billing-filter-row {
|
||||
justify-content: space-between;
|
||||
align-items: flex-start;
|
||||
gap: 20px;
|
||||
padding-bottom: 16px;
|
||||
border-bottom: 1px solid var(--line);
|
||||
}
|
||||
|
||||
.billing-filter-group {
|
||||
flex-direction: column;
|
||||
gap: 10px;
|
||||
}
|
||||
|
||||
.billing-filter-links {
|
||||
flex-wrap: wrap;
|
||||
gap: 10px;
|
||||
}
|
||||
|
||||
.billing-pagination {
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
gap: 16px;
|
||||
padding-top: 16px;
|
||||
}
|
||||
|
||||
.pill-active {
|
||||
background: rgba(44, 107, 255, 0.12);
|
||||
border-color: rgba(44, 107, 255, 0.18);
|
||||
color: var(--accent-strong);
|
||||
}
|
||||
|
||||
.button-disabled {
|
||||
pointer-events: none;
|
||||
opacity: 0.55;
|
||||
}
|
||||
|
||||
.billing-qr-block {
|
||||
display: grid;
|
||||
gap: 10px;
|
||||
margin-top: 8px;
|
||||
}
|
||||
|
||||
.billing-qr-image {
|
||||
width: 180px;
|
||||
height: 180px;
|
||||
border-radius: 18px;
|
||||
border: 1px solid var(--line);
|
||||
background: white;
|
||||
padding: 10px;
|
||||
}
|
||||
|
||||
.pricing-card h3 {
|
||||
margin: 12px 0 8px;
|
||||
font-family: var(--font-display);
|
||||
@@ -1399,7 +1506,7 @@ code {
|
||||
|
||||
.console-metrics-grid {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(3, minmax(0, 1fr));
|
||||
grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
|
||||
gap: 20px;
|
||||
}
|
||||
|
||||
@@ -1441,6 +1548,18 @@ code {
|
||||
padding: 30px;
|
||||
}
|
||||
|
||||
.gateway-bind-stack {
|
||||
display: grid;
|
||||
gap: 18px;
|
||||
}
|
||||
|
||||
.billing-nested-card {
|
||||
padding: 24px;
|
||||
border-radius: 24px;
|
||||
background: linear-gradient(180deg, rgba(250, 251, 255, 0.96) 0%, rgba(255, 255, 255, 0.98) 100%);
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
.console-key-list {
|
||||
display: grid;
|
||||
gap: 0;
|
||||
|
||||
Reference in New Issue
Block a user