Auth pages: - Create AuthSplitLayout with animated feature slides (6 slides, 3 languages) - All auth pages use split layout (form left, visual right) - Add show/hide password toggle with tooltip on Register - Legal footer only shown on Register via showLegal prop Subscribe page: - Redesign to match auth card pattern (centered, clean) - Platform icons, feature checklist, dynamic trial days (trialDays - 1) - Add "Switch workspace" link - Full i18n (en, es, pt-BR) Onboarding: - Rename URLs: step1 -> role, step2 -> connect - Add enforceStep() to prevent skipping/going back steps - Redirect /onboarding to /onboarding/role - Redesign Step2 with AuthSplitLayout and compact platform list - 21 tests covering all step enforcement scenarios Workspaces page: - Redesign with AuthSplitLayout (list with avatars, current badge) Language system: - Move locale from DB to cookie (forever, unencrypted, session.domain) - Create SetLocale middleware (sets cookie if missing, validates against config) - Rename lang/pt-br to lang/pt-BR - Add dayjs es locale Other: - Copy utils.ts from sendkit (formatNumber, formatMoney, copyToClipboard) - ConfirmDeleteModal with text confirmation (sendkit pattern) - i18n for ConfirmDeleteModal internal strings (common.php) - EmptyState component for posts index - Exact match for "All" posts in sidebar - Posts breadcrumbs show current status filter - DialogFooter buttons aligned left - API Keys page redesign with Table, DropdownMenu, EmptyState - Extract CreateApiKeyDialog and InviteMemberDialog to components - Remove API Keys from sidebar - DropdownMenuItem destructive variant for Remove action
117 lines
No EOL
8.3 KiB
PHP
117 lines
No EOL
8.3 KiB
PHP
<!DOCTYPE html>
|
|
<html lang="en" xmlns:v="urn:schemas-microsoft-com:vml">
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<meta name="x-apple-disable-message-reformatting">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
<meta name="format-detection" content="telephone=no, date=no, address=no, email=no, url=no">
|
|
<meta name="color-scheme" content="light">
|
|
<meta name="supported-color-schemes" content="light">
|
|
<!--[if mso]>
|
|
<noscript>
|
|
<xml>
|
|
<o:OfficeDocumentSettings xmlns:o="urn:schemas-microsoft-com:office:office">
|
|
<o:PixelsPerInch>96</o:PixelsPerInch>
|
|
</o:OfficeDocumentSettings>
|
|
</xml>
|
|
</noscript>
|
|
<style>
|
|
td,th,div,p,a,h1,h2,h3,h4,h5,h6 {font-family: "Segoe UI", sans-serif; mso-line-height-rule: exactly;}
|
|
</style>
|
|
<![endif]-->
|
|
@if(isset($title))
|
|
<title>{{ $title }}</title>
|
|
@endif
|
|
<link rel="preconnect" href="https://fonts.googleapis.com">
|
|
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
|
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;600&display=swap" rel="stylesheet" media="screen">
|
|
<style>
|
|
.hover-i-text-decoration-underline:hover {
|
|
text-decoration: underline !important
|
|
}
|
|
@media (max-width: 600px) {
|
|
.sm-my-8 {
|
|
margin-top: 32px !important;
|
|
margin-bottom: 32px !important
|
|
}
|
|
.sm-px-4 {
|
|
padding-left: 16px !important;
|
|
padding-right: 16px !important
|
|
}
|
|
.sm-px-6 {
|
|
padding-left: 24px !important;
|
|
padding-right: 24px !important
|
|
}
|
|
.sm-leading-8 {
|
|
line-height: 32px !important
|
|
}
|
|
}
|
|
</style>
|
|
</head>
|
|
<body style="margin: 0; width: 100%; padding: 0; -webkit-font-smoothing: antialiased; word-break: break-word">
|
|
@if(isset($previewText))
|
|
<div style="display: none">
|
|
{{ $previewText }}
|
|
 ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏
|
|
</div>
|
|
@endif
|
|
<div role="article" aria-roledescription="email" aria-label="{{ $title }}" lang="en">
|
|
<div class="sm-px-4" style="background-color: #fafafa; font-family: ui-sans-serif, system-ui, -apple-system, 'Segoe UI', sans-serif">
|
|
<table align="center" cellpadding="0" cellspacing="0" role="none">
|
|
<tr>
|
|
<td style="width: 552px; max-width: 100%">
|
|
<div class="sm-my-8" style="margin-top: 48px; margin-bottom: 48px; text-align: center">
|
|
<a href="https://trypost.it" target="_blank">
|
|
<img src="{{ email_asset('/images/emails/logo-header.png') }}" width="160" alt="Trypost" style="max-width: 100%; vertical-align: middle">
|
|
</a>
|
|
</div>
|
|
<table style="width: 100%" cellpadding="0" cellspacing="0" role="none">
|
|
<tr>
|
|
<td class="sm-px-6" style="border-radius: 4px; background-color: #fffffe; padding: 48px; font-size: 16px; color: #3f3f46; box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05)">
|
|
<h1 class="sm-leading-8" style="margin: 0 0 24px; font-size: 24px; font-weight: 600; color: #000001">
|
|
You've been invited!
|
|
</h1>
|
|
<p style="margin: 0; line-height: 24px">
|
|
You've been invited to collaborate on the <strong>{{ $invite->workspace->name }}</strong> workspace.
|
|
</p>
|
|
<p style="margin: 16px 0 0; line-height: 24px">
|
|
You've been invited as <strong>{{ $invite->role->label() }}</strong>.
|
|
</p>
|
|
<div role="separator" style="line-height: 24px">‍</div>
|
|
<div style="display: flex; align-items: center; justify-content: center">
|
|
<div>
|
|
<a href="{{ $url }}" style="display: inline-block; text-decoration: none; padding: 16px 24px; font-size: 16px; line-height: 1; border-radius: 8px; background-color: #262626; color: #ffffff">
|
|
<!--[if mso]><i style="mso-font-width: 150%; mso-text-raise: 31px" hidden> </i><![endif]-->
|
|
<span style="mso-text-raise: 16px">Accept Invite →</span>
|
|
<!--[if mso]><i hidden style="mso-font-width: 150%"> ​</i><![endif]-->
|
|
</a>
|
|
</div>
|
|
</div>
|
|
<div role="separator" style="line-height: 24px">‍</div>
|
|
<p style="margin: 0; font-size: 14px; line-height: 24px; color: #71717a">
|
|
This invite expires in 7 days.
|
|
</p>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="center" style="padding: 24px; text-align: center; font-size: 12px; color: #52525b">
|
|
<p style="margin: 0 0 8px">
|
|
Open-source social media scheduling tool
|
|
</p>
|
|
@if(isset($unsubscribe_url))
|
|
<p style="margin: 8px 0 0">
|
|
<a href="{{ unsubscribe_url }}" target="_blank" class="hover-i-text-decoration-underline" style="color: #52525b; text-decoration: none">
|
|
Unsubscribe
|
|
</a>
|
|
</p>
|
|
@endif
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
</body>
|
|
</html> |