Unify workspace dropdowns; Update layouts (#458)

Unified Account and Workspace drop-downs; Layout updates, now header lives within the PageBody component; Sidebars now use floating variant
This commit is contained in:
Giancarlo Buomprisco
2026-03-11 14:45:42 +08:00
committed by GitHub
parent ca585e09be
commit 4bc8448a1d
530 changed files with 14398 additions and 11198 deletions

View File

@@ -1,4 +1,4 @@
import { z } from 'zod';
import * as z from 'zod';
const MAILER_PROVIDERS = [
'nodemailer',

View File

@@ -1,12 +1,12 @@
import 'server-only';
import { z } from 'zod';
import * as z from 'zod';
import { Mailer, MailerSchema } from '@kit/mailers-shared';
import { getSMTPConfiguration } from './smtp-configuration';
type Config = z.infer<typeof MailerSchema>;
type Config = z.output<typeof MailerSchema>;
export function createNodemailerService() {
return new Nodemailer();

View File

@@ -1,15 +1,14 @@
import 'server-only';
import { z } from 'zod';
import * as z from 'zod';
import { Mailer, MailerSchema } from '@kit/mailers-shared';
type Config = z.infer<typeof MailerSchema>;
type Config = z.output<typeof MailerSchema>;
const RESEND_API_KEY = z
.string({
description: 'The API key for the Resend API',
required_error: 'Please provide the API key for the Resend API',
error: 'Please provide the API key for the Resend API',
})
.parse(process.env.RESEND_API_KEY);

View File

@@ -1,7 +1,7 @@
import { z } from 'zod';
import * as z from 'zod';
import { MailerSchema } from './schema/mailer.schema';
export abstract class Mailer<Res = unknown> {
abstract sendEmail(data: z.infer<typeof MailerSchema>): Promise<Res>;
abstract sendEmail(data: z.output<typeof MailerSchema>): Promise<Res>;
}

View File

@@ -1,4 +1,4 @@
import { z } from 'zod';
import * as z from 'zod';
export const MailerSchema = z
.object({

View File

@@ -1,28 +1,21 @@
import 'server-only';
import { z } from 'zod';
import * as z from 'zod';
export const SmtpConfigSchema = z.object({
user: z.string({
description:
'This is the email account to send emails from. This is specific to the email provider.',
required_error: `Please provide the variable EMAIL_USER`,
error: `Please provide the variable EMAIL_USER`,
}),
pass: z.string({
description: 'This is the password for the email account',
required_error: `Please provide the variable EMAIL_PASSWORD`,
error: `Please provide the variable EMAIL_PASSWORD`,
}),
host: z.string({
description: 'This is the SMTP host for the email provider',
required_error: `Please provide the variable EMAIL_HOST`,
error: `Please provide the variable EMAIL_HOST`,
}),
port: z.number({
description:
'This is the port for the email provider. Normally 587 or 465.',
required_error: `Please provide the variable EMAIL_PORT`,
error: `Please provide the variable EMAIL_PORT`,
}),
secure: z.boolean({
description: 'This is whether the connection is secure or not',
required_error: `Please provide the variable EMAIL_TLS`,
error: `Please provide the variable EMAIL_TLS`,
}),
});