feat(mail): center-align action button in email template

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-04-14 00:49:41 +02:00
parent 172a6a12d3
commit ef195a6777
14 changed files with 336 additions and 141 deletions

View File

@@ -1,47 +1,53 @@
import { breakpointsVuetifyV3 } from '@vueuse/core'
import { h } from 'vue'
import { VIcon } from 'vuetify/components/VIcon'
import { defineThemeConfig } from '@core'
import { Skins } from '@core/enums'
import { breakpointsVuetifyV3 } from "@vueuse/core";
import { h } from "vue";
import { VIcon } from "vuetify/components/VIcon";
import { defineThemeConfig } from "@core";
import { Skins } from "@core/enums";
import { AppContentLayoutNav, ContentWidth, FooterType, NavbarType } from '@layouts/enums'
import {
AppContentLayoutNav,
ContentWidth,
FooterType,
NavbarType,
} from "@layouts/enums";
export const { themeConfig, layoutConfig } = defineThemeConfig({
app: {
title: 'Crewli',
title: "Crewli",
logo: h(
'span',
"span",
{
class: 'crewli-mark text-h5 font-weight-bold',
style: 'line-height: 1.2; letter-spacing: -0.02em; color: rgb(var(--v-theme-primary));',
class: "crewli-mark text-h5 font-weight-bold",
style:
"line-height: 1.2; letter-spacing: -0.02em; color: rgb(var(--v-theme-primary));",
},
'C',
"C",
),
contentWidth: ContentWidth.Boxed,
contentLayoutNav: AppContentLayoutNav.Vertical,
overlayNavFromBreakpoint: breakpointsVuetifyV3.lg - 1, // 1 for matching with vuetify breakpoint. Docs: https://next.vuetifyjs.com/en/features/display-and-platform/
i18n: {
enable: false,
defaultLocale: 'en',
defaultLocale: "en",
langConfig: [
{
label: 'English',
i18nLang: 'en',
label: "English",
i18nLang: "en",
isRTL: false,
},
{
label: 'French',
i18nLang: 'fr',
label: "French",
i18nLang: "fr",
isRTL: false,
},
{
label: 'Arabic',
i18nLang: 'ar',
label: "Arabic",
i18nLang: "ar",
isRTL: true,
},
],
},
theme: 'system',
theme: "system",
skin: Skins.Default,
iconRenderer: VIcon,
},
@@ -52,12 +58,12 @@ export const { themeConfig, layoutConfig } = defineThemeConfig({
footer: { type: FooterType.Static },
verticalNav: {
isVerticalNavCollapsed: false,
defaultNavItemIconProps: { icon: 'tabler-circle' },
defaultNavItemIconProps: { icon: "tabler-circle" },
isVerticalNavSemiDark: true,
},
horizontalNav: {
type: 'sticky',
transition: 'slide-y-reverse-transition',
type: "sticky",
transition: "slide-y-reverse-transition",
popoverOffset: 6,
},
@@ -66,11 +72,11 @@ export const { themeConfig, layoutConfig } = defineThemeConfig({
// Such as: chevronDown: { icon: 'tabler-chevron-down', color:'primary', size: '24' },
*/
icons: {
chevronDown: { icon: 'tabler-chevron-down' },
chevronRight: { icon: 'tabler-chevron-right', size: 20 },
close: { icon: 'tabler-x', size: 20 },
verticalNavPinned: { icon: 'tabler-circle-dot', size: 20 },
verticalNavUnPinned: { icon: 'tabler-circle', size: 20 },
sectionTitlePlaceholder: { icon: 'tabler-minus' },
chevronDown: { icon: "tabler-chevron-down" },
chevronRight: { icon: "tabler-chevron-right", size: 20 },
close: { icon: "tabler-x", size: 20 },
verticalNavPinned: { icon: "tabler-circle-dot", size: 20 },
verticalNavUnPinned: { icon: "tabler-circle", size: 20 },
sectionTitlePlaceholder: { icon: "tabler-minus" },
},
})
});