{message}
10 | } 11 | -------------------------------------------------------------------------------- /src/app/(frontend)/(cloud)/cloud/[team-slug]/[project-slug]/(tabs)/settings/_layoutComponents/SectionHeader/index.module.scss: -------------------------------------------------------------------------------- 1 | .sectionHeader { 2 | margin-bottom: 1.75rem; 3 | } 4 | 5 | .titleAndLink { 6 | display: flex; 7 | justify-content: space-between; 8 | align-items: center; 9 | width: 100%; 10 | } 11 | 12 | .intro { 13 | margin-top: 0.25rem; 14 | display: block; 15 | color: var(--theme-elevation-450); 16 | } 17 | -------------------------------------------------------------------------------- /src/app/(frontend)/(cloud)/cloud/[team-slug]/[project-slug]/(tabs)/settings/billing/page.module.scss: -------------------------------------------------------------------------------- 1 | @use '@scss/common.scss' as *; 2 | 3 | .error { 4 | color: var(--theme-error-500); 5 | } 6 | 7 | .success { 8 | color: var(--theme-success-500); 9 | } 10 | 11 | .fields { 12 | display: flex; 13 | flex-direction: column; 14 | gap: 1rem; 15 | } 16 | -------------------------------------------------------------------------------- /src/app/(frontend)/(cloud)/cloud/[team-slug]/[project-slug]/(tabs)/settings/domains/AddDomain/index.module.scss: -------------------------------------------------------------------------------- 1 | @use '@scss/common' as *; 2 | 3 | .formContent { 4 | gap: 1rem; 5 | display: flex; 6 | flex-direction: column; 7 | } 8 | 9 | .actionFooter { 10 | display: flex; 11 | justify-content: flex-end; 12 | gap: 1rem; 13 | margin-top: 1rem; 14 | padding-top: 1rem; 15 | border-top: 1px solid var(--theme-border-color); 16 | } 17 | -------------------------------------------------------------------------------- /src/app/(frontend)/(cloud)/cloud/[team-slug]/[project-slug]/(tabs)/settings/email/AddEmailDomain/index.module.scss: -------------------------------------------------------------------------------- 1 | @use '@scss/common' as *; 2 | 3 | .formContent { 4 | gap: 1rem; 5 | display: flex; 6 | flex-direction: column; 7 | } 8 | 9 | .actionFooter { 10 | display: flex; 11 | justify-content: flex-end; 12 | gap: 1rem; 13 | margin-top: 1rem; 14 | padding-top: 1rem; 15 | border-top: 1px solid var(--theme-border-color); 16 | } 17 | -------------------------------------------------------------------------------- /src/app/(frontend)/(cloud)/cloud/[team-slug]/[project-slug]/(tabs)/settings/environment-variables/page.module.scss: -------------------------------------------------------------------------------- 1 | @use '@scss/common.scss' as *; 2 | 3 | .header { 4 | margin-bottom: 1rem; 5 | } 6 | 7 | .description { 8 | margin-bottom: 1.5rem; 9 | } 10 | 11 | .link { 12 | color: var(--color-blue-500); 13 | } 14 | -------------------------------------------------------------------------------- /src/app/(frontend)/(cloud)/cloud/[team-slug]/[project-slug]/(tabs)/settings/environment-variables/validations.ts: -------------------------------------------------------------------------------- 1 | export const validateKey = (key: string, existingKeys: string[]): string | true => { 2 | if (!key) { 3 | return 'Key is required' 4 | } 5 | 6 | if (!/^\w+$/.test(key)) { 7 | return 'Only alphanumeric characters and underscores are allowed' 8 | } 9 | 10 | if (existingKeys?.includes(key)) { 11 | return 'This key is already in use' 12 | } 13 | 14 | return true 15 | } 16 | 17 | export const validateValue = (value: string): string | true => { 18 | if (!value) { 19 | return 'Value is required' 20 | } 21 | 22 | return true 23 | } 24 | -------------------------------------------------------------------------------- /src/app/(frontend)/(cloud)/cloud/[team-slug]/[project-slug]/(tabs)/settings/plan/DeletePlanButton/index.tsx: -------------------------------------------------------------------------------- 1 | 'use client' 2 | 3 | import { Button } from '@components/Button/index' 4 | import { useModal } from '@faceless-ui/modal' 5 | import React from 'react' 6 | 7 | import { deletePlanModalSlug } from '../DeletePlanModal/index' 8 | 9 | export const DeletePlanButton: React.FC = () => { 10 | const { openModal } = useModal() 11 | 12 | return ( 13 |