CluPilotCloud/resources/views/livewire
nexxo 2a97d76b2d Rebuild the settings page out of panels and rows
**The withdrawal was invisible in two different ways.** It rendered only
while the fourteen days were still running, so the moment they expired the
whole block vanished — indistinguishable from a feature nobody built. And
the account it was looked for on has no contract at all: no package, no
subscription, nothing to withdraw from, so there was never anything for it
to be about.

It is now a row for every CONSUMER who has a contract, open or not: while
it runs, the deadline and the button; afterwards, the sentence saying why
it is over. A business never sees it — WithdrawalRight answers that, and
Settings::withdraw() refuses them again on the server. And an account with
no package says so and offers the packages, instead of a dead sentence in
a box.

**The page is built out of two pieces now.** x-ui.panel is a group: a card
with a header that names it. x-ui.row is a setting inside it: what it is
on the left, the control on the right, dividers between rows. That is the
shape every settings page worth copying uses, and it is the shape that
uses the width — a 280px label column with the control beside it fills the
line, where a stack of full-width inputs leaves two thirds of it empty and
a grid of cards of different heights walks down the screen as a staircase.

All four tabs are rebuilt on it, so the page reads as one designed thing
rather than four pages that happen to share a tab bar. Below `sm` the rows
stack, because on a telephone a label belongs above its field.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-30 17:38:57 +02:00
..
admin Store the agreement where the web process can actually read it 2026-07-30 17:19:39 +02:00
auth Accept terms instead of a start date, and fix the sender no server accepts 2026-07-30 15:22:35 +02:00
backups.blade.php Match the panel to the approved template, measured rather than assumed 2026-07-27 17:08:05 +02:00
billing.blade.php Sell the year as well as the month, and say what it saves 2026-07-30 15:44:35 +02:00
checkout.blade.php Give the order a checkout page, and stop hiding what a year costs 2026-07-30 16:00:08 +02:00
cloud.blade.php Restart a machine, enforce the quota that was sold, end a route that ended 2026-07-29 18:28:28 +02:00
confirm-book-storage.blade.php Deliver the storage a customer actually buys 2026-07-29 19:13:10 +02:00
confirm-cancel-addon.blade.php Ask whether they are a consumer, and let one change their mind 2026-07-29 21:06:06 +02:00
confirm-cancel-package.blade.php Take the address by field, fix the customer type, ask why they leave 2026-07-30 16:41:32 +02:00
confirm-close-account.blade.php R24: a modal is never taller than the screen 2026-07-29 23:33:57 +02:00
confirm-delete-own-account.blade.php Discard an unconfirmed registration, and sweep the abandoned ones 2026-07-30 14:08:02 +02:00
confirm-disable-two-factor.blade.php Replace native confirm() dialogs with the app's own modal pattern 2026-07-28 19:34:27 +02:00
confirm-end-other-sessions.blade.php Show where an account is signed in, and let it sign the other places out 2026-07-28 23:38:17 +02:00
confirm-remove-order.blade.php feat(billing): a cart you can actually read and change 2026-07-26 05:26:49 +02:00
confirm-restart-cloud.blade.php Restart a machine, enforce the quota that was sold, end a route that ended 2026-07-29 18:28:28 +02:00
confirm-revoke-seat.blade.php Replace native confirm() dialogs with the app's own modal pattern 2026-07-28 19:34:27 +02:00
confirm-withdraw.blade.php Charge the price the website shows, and hand a withdrawal back in full 2026-07-29 22:42:02 +02:00
custom-domain.blade.php Serve the custom domain, not just announce it 2026-07-29 16:44:52 +02:00
customer-provisioning.blade.php Take the order, park it, and say when it will be delivered 2026-07-29 18:50:46 +02:00
dashboard.blade.php Let the customer buy it themselves, and tab the integrations page 2026-07-29 19:42:28 +02:00
edit-mailbox.blade.php R24: a modal is never taller than the screen 2026-07-29 23:33:57 +02:00
edit-seat.blade.php R24: a modal is never taller than the screen 2026-07-29 23:33:57 +02:00
invoices.blade.php Say the same thing to the customer, the register and the bank 2026-07-30 01:30:24 +02:00
new-support-request.blade.php R24: a modal is never taller than the screen 2026-07-29 23:33:57 +02:00
order.blade.php Fix the checkout link, and stop the switch moving under the cursor 2026-07-30 16:05:56 +02:00
sessions.blade.php Show where an account is signed in, and let it sign the other places out 2026-07-28 23:38:17 +02:00
settings.blade.php Rebuild the settings page out of panels and rows 2026-07-30 17:38:57 +02:00
support.blade.php Editing in modals, an update button that is not gated on a stale reading, and a support page that is real 2026-07-27 17:55:49 +02:00
users.blade.php Replace native confirm() dialogs with the app's own modal pattern 2026-07-28 19:34:27 +02:00