EsLint v9 (#154)
* Upgrade ESLint and related configurations to version 9 - Update ESLint to version 9.19.0 - Migrate ESLint configurations to flat config format - Remove deprecated ESLint config files - Update package dependencies and configurations - Simplify ESLint setup across packages - Remove unnecessary ESLint config blocks from package.json files - Improved CI caching with Turborepo tasks - Removed duplicate styles
This commit is contained in:
committed by
GitHub
parent
e2f45cae49
commit
6f9cf22fa8
17
.github/workflows/workflow.yml
vendored
17
.github/workflows/workflow.yml
vendored
@@ -7,13 +7,14 @@ on:
|
|||||||
jobs:
|
jobs:
|
||||||
typescript:
|
typescript:
|
||||||
name: ʦ TypeScript
|
name: ʦ TypeScript
|
||||||
timeout-minutes: 8
|
timeout-minutes: 10
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
env:
|
env:
|
||||||
SUPABASE_SERVICE_ROLE_KEY: ${{ secrets.SUPABASE_SERVICE_ROLE_KEY }}
|
SUPABASE_SERVICE_ROLE_KEY: ${{ secrets.SUPABASE_SERVICE_ROLE_KEY }}
|
||||||
SUPABASE_DB_WEBHOOK_SECRET: ${{ secrets.SUPABASE_DB_WEBHOOK_SECRET }}
|
SUPABASE_DB_WEBHOOK_SECRET: ${{ secrets.SUPABASE_DB_WEBHOOK_SECRET }}
|
||||||
STRIPE_SECRET_KEY: ${{ secrets.STRIPE_SECRET_KEY }}
|
STRIPE_SECRET_KEY: ${{ secrets.STRIPE_SECRET_KEY }}
|
||||||
STRIPE_WEBHOOK_SECRET: ${{ secrets.STRIPE_WEBHOOK_SECRET }}
|
STRIPE_WEBHOOK_SECRET: ${{ secrets.STRIPE_WEBHOOK_SECRET }}
|
||||||
|
DO_NOT_TRACK: 1
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
@@ -27,6 +28,9 @@ jobs:
|
|||||||
node-version: lts/*
|
node-version: lts/*
|
||||||
cache: 'pnpm'
|
cache: 'pnpm'
|
||||||
|
|
||||||
|
- name: Install dependencies
|
||||||
|
run: pnpm install
|
||||||
|
|
||||||
- uses: actions/cache@v4
|
- uses: actions/cache@v4
|
||||||
with:
|
with:
|
||||||
path: .turbo
|
path: .turbo
|
||||||
@@ -34,9 +38,6 @@ jobs:
|
|||||||
restore-keys: |
|
restore-keys: |
|
||||||
${{ runner.os }}-turbo-
|
${{ runner.os }}-turbo-
|
||||||
|
|
||||||
- name: Install dependencies
|
|
||||||
run: pnpm install
|
|
||||||
|
|
||||||
- name: Typecheck
|
- name: Typecheck
|
||||||
run: pnpm run typecheck
|
run: pnpm run typecheck
|
||||||
|
|
||||||
@@ -54,6 +55,7 @@ jobs:
|
|||||||
STRIPE_SECRET_KEY: ${{ secrets.STRIPE_SECRET_KEY }}
|
STRIPE_SECRET_KEY: ${{ secrets.STRIPE_SECRET_KEY }}
|
||||||
STRIPE_WEBHOOK_SECRET: ${{ secrets.STRIPE_WEBHOOK_SECRET }}
|
STRIPE_WEBHOOK_SECRET: ${{ secrets.STRIPE_WEBHOOK_SECRET }}
|
||||||
ENABLE_BILLING_TESTS: ${{ vars.ENABLE_BILLING_TESTS }}
|
ENABLE_BILLING_TESTS: ${{ vars.ENABLE_BILLING_TESTS }}
|
||||||
|
DO_NOT_TRACK: 1
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
@@ -62,13 +64,6 @@ jobs:
|
|||||||
|
|
||||||
- uses: pnpm/action-setup@v4
|
- uses: pnpm/action-setup@v4
|
||||||
|
|
||||||
- uses: actions/cache@v4
|
|
||||||
with:
|
|
||||||
path: .turbo
|
|
||||||
key: ${{ runner.os }}-turbo-${{ github.sha }}
|
|
||||||
restore-keys: |
|
|
||||||
${{ runner.os }}-turbo-
|
|
||||||
|
|
||||||
- uses: actions/setup-node@v4
|
- uses: actions/setup-node@v4
|
||||||
with:
|
with:
|
||||||
node-version: lts/*
|
node-version: lts/*
|
||||||
|
|||||||
@@ -2,10 +2,8 @@
|
|||||||
|
|
||||||
This is a Starter Kit for building SaaS applications using Supabase, Next.js, and Tailwind CSS.
|
This is a Starter Kit for building SaaS applications using Supabase, Next.js, and Tailwind CSS.
|
||||||
|
|
||||||
This version uses Turborepo to manage multiple packages in a single repository.
|
|
||||||
|
|
||||||
**This project is stable but still under development. Please update the repository daily**.
|
|
||||||
|
|
||||||
A demo version of this project can be found at [makerkit/next-supabase-saas-kit-turbo-demo](https://github.com/makerkit/next-supabase-saas-kit-turbo-demo). This version contains a tasks functionality that is not present in the original version, multiple languages, and other various modifications.
|
A demo version of this project can be found at [makerkit/next-supabase-saas-kit-turbo-demo](https://github.com/makerkit/next-supabase-saas-kit-turbo-demo). This version contains a tasks functionality that is not present in the original version, multiple languages, and other various modifications.
|
||||||
|
|
||||||
[Please follow the documentation to get started](https://makerkit.dev/docs/next-supabase-turbo/introduction).
|
[Please follow the documentation to get started](https://makerkit.dev/docs/next-supabase-turbo/introduction).
|
||||||
|
|
||||||
|
**Please remember to update the repository daily**.
|
||||||
@@ -13,7 +13,7 @@ export function CoverImage({ title, src, preloadImage, className }: Props) {
|
|||||||
return (
|
return (
|
||||||
<Image
|
<Image
|
||||||
className={cn(
|
className={cn(
|
||||||
'duration-250 block rounded-xl object-cover' +
|
'block rounded-xl object-cover duration-250' +
|
||||||
' transition-all hover:opacity-90',
|
' transition-all hover:opacity-90',
|
||||||
{
|
{
|
||||||
className,
|
className,
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ export function PostHeader({ post }: { post: Cms.ContentItem }) {
|
|||||||
<div className={'mx-auto flex max-w-3xl flex-col space-y-4'}>
|
<div className={'mx-auto flex max-w-3xl flex-col space-y-4'}>
|
||||||
<h1
|
<h1
|
||||||
className={
|
className={
|
||||||
'font-heading text-3xl font-semibold tracking-tighter dark:text-white xl:text-5xl'
|
'font-heading text-3xl font-semibold tracking-tighter xl:text-5xl dark:text-white'
|
||||||
}
|
}
|
||||||
>
|
>
|
||||||
{title}
|
{title}
|
||||||
@@ -27,7 +27,7 @@ export function PostHeader({ post }: { post: Cms.ContentItem }) {
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<h2
|
<h2
|
||||||
className={'text-base text-muted-foreground xl:text-lg'}
|
className={'text-muted-foreground text-base xl:text-lg'}
|
||||||
dangerouslySetInnerHTML={{ __html: description ?? '' }}
|
dangerouslySetInnerHTML={{ __html: description ?? '' }}
|
||||||
></h2>
|
></h2>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -63,7 +63,9 @@ async function DocumentationPage({ params }: DocumentationPageProps) {
|
|||||||
<div className={'flex overflow-y-hidden'}>
|
<div className={'flex overflow-y-hidden'}>
|
||||||
<article className={cn('gap-y-12 overflow-y-auto px-6')}>
|
<article className={cn('gap-y-12 overflow-y-auto px-6')}>
|
||||||
<section className={'flex flex-col gap-y-2.5'}>
|
<section className={'flex flex-col gap-y-2.5'}>
|
||||||
<h1 className={'text-3xl font-semibold text-foreground'}>{page.title}</h1>
|
<h1 className={'text-foreground text-3xl font-semibold'}>
|
||||||
|
{page.title}
|
||||||
|
</h1>
|
||||||
|
|
||||||
<h2 className={'text-muted-foreground text-lg'}>{description}</h2>
|
<h2 className={'text-muted-foreground text-lg'}>{description}</h2>
|
||||||
</section>
|
</section>
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ export function DocsPageLink({
|
|||||||
return (
|
return (
|
||||||
<Link
|
<Link
|
||||||
className={cn(
|
className={cn(
|
||||||
`flex w-full items-center space-x-8 rounded-xl p-6 font-medium text-current ring-2 ring-muted transition-all hover:ring-primary`,
|
`ring-muted hover:ring-primary flex w-full items-center space-x-8 rounded-xl p-6 font-medium text-current ring-2 transition-all`,
|
||||||
{
|
{
|
||||||
'justify-start': before,
|
'justify-start': before,
|
||||||
'justify-end self-end': after,
|
'justify-end self-end': after,
|
||||||
@@ -30,7 +30,7 @@ export function DocsPageLink({
|
|||||||
|
|
||||||
<span className={'flex flex-col space-y-1.5'}>
|
<span className={'flex flex-col space-y-1.5'}>
|
||||||
<span
|
<span
|
||||||
className={'text-xs font-semibold uppercase text-muted-foreground'}
|
className={'text-muted-foreground text-xs font-semibold uppercase'}
|
||||||
>
|
>
|
||||||
{before ? `Previous` : ``}
|
{before ? `Previous` : ``}
|
||||||
{after ? `Next` : ``}
|
{after ? `Next` : ``}
|
||||||
|
|||||||
@@ -54,8 +54,8 @@ export function FloatingDocumentationNavigation(
|
|||||||
<If condition={isVisible}>
|
<If condition={isVisible}>
|
||||||
<div
|
<div
|
||||||
className={
|
className={
|
||||||
'fixed left-0 top-0 z-10 h-screen w-full p-4' +
|
'fixed top-0 left-0 z-10 h-screen w-full p-4' +
|
||||||
' flex flex-col space-y-4 overflow-auto bg-white dark:bg-background'
|
' dark:bg-background flex flex-col space-y-4 overflow-auto bg-white'
|
||||||
}
|
}
|
||||||
>
|
>
|
||||||
{props.children}
|
{props.children}
|
||||||
@@ -63,7 +63,7 @@ export function FloatingDocumentationNavigation(
|
|||||||
</If>
|
</If>
|
||||||
|
|
||||||
<Button
|
<Button
|
||||||
className={'fixed bottom-5 right-5 z-10 h-16 w-16 rounded-full'}
|
className={'fixed right-5 bottom-5 z-10 h-16 w-16 rounded-full'}
|
||||||
onClick={onClick}
|
onClick={onClick}
|
||||||
>
|
>
|
||||||
<Menu className={'h-8'} />
|
<Menu className={'h-8'} />
|
||||||
|
|||||||
@@ -36,7 +36,7 @@ async function ReturnCheckoutSessionPage({ searchParams }: SessionPageProps) {
|
|||||||
|
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
<div className={'fixed left-0 top-48 z-50 mx-auto w-full'}>
|
<div className={'fixed top-48 left-0 z-50 mx-auto w-full'}>
|
||||||
<BillingSessionStatus
|
<BillingSessionStatus
|
||||||
redirectPath={'../billing'}
|
redirectPath={'../billing'}
|
||||||
customerEmail={customerEmail ?? ''}
|
customerEmail={customerEmail ?? ''}
|
||||||
@@ -54,7 +54,7 @@ function BlurryBackdrop() {
|
|||||||
return (
|
return (
|
||||||
<div
|
<div
|
||||||
className={
|
className={
|
||||||
'fixed left-0 top-0 w-full bg-background/30 backdrop-blur-sm' +
|
'bg-background/30 fixed top-0 left-0 w-full backdrop-blur-sm' +
|
||||||
' !m-0 h-full'
|
' !m-0 h-full'
|
||||||
}
|
}
|
||||||
/>
|
/>
|
||||||
|
|||||||
@@ -137,7 +137,7 @@ function InviteNotFoundOrExpired() {
|
|||||||
<Trans i18nKey={'teams:inviteNotFoundOrExpired'} />
|
<Trans i18nKey={'teams:inviteNotFoundOrExpired'} />
|
||||||
</Heading>
|
</Heading>
|
||||||
|
|
||||||
<p className={'text-sm text-muted-foreground'}>
|
<p className={'text-muted-foreground text-sm'}>
|
||||||
<Trans i18nKey={'teams:inviteNotFoundOrExpiredDescription'} />
|
<Trans i18nKey={'teams:inviteNotFoundOrExpiredDescription'} />
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
|||||||
4
apps/web/eslint.config.mjs
Normal file
4
apps/web/eslint.config.mjs
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
import eslintConfigApps from '@kit/eslint-config/apps.js';
|
||||||
|
import eslintConfigBase from '@kit/eslint-config/base.js';
|
||||||
|
|
||||||
|
export default [...eslintConfigBase, ...eslintConfigApps];
|
||||||
@@ -10,7 +10,8 @@
|
|||||||
"build:test": "NODE_ENV=test pnpm with-env:test next build",
|
"build:test": "NODE_ENV=test pnpm with-env:test next build",
|
||||||
"clean": "git clean -xdf .next .turbo node_modules",
|
"clean": "git clean -xdf .next .turbo node_modules",
|
||||||
"dev": "pnpm with-env next dev --turbo | pino-pretty -c",
|
"dev": "pnpm with-env next dev --turbo | pino-pretty -c",
|
||||||
"lint": "next lint && eslint .",
|
"lint": "eslint .",
|
||||||
|
"lint:fix": "next lint --fix",
|
||||||
"format": "prettier --check \"**/*.{js,cjs,mjs,ts,tsx,md,json}\"",
|
"format": "prettier --check \"**/*.{js,cjs,mjs,ts,tsx,md,json}\"",
|
||||||
"start": "pnpm with-env next start",
|
"start": "pnpm with-env next start",
|
||||||
"start:test": "NODE_ENV=test pnpm with-env:test next start",
|
"start:test": "NODE_ENV=test pnpm with-env:test next start",
|
||||||
@@ -75,17 +76,16 @@
|
|||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@kit/eslint-config": "workspace:*",
|
"@kit/eslint-config": "workspace:*",
|
||||||
"@kit/prettier-config": "workspace:*",
|
"@kit/prettier-config": "workspace:*",
|
||||||
"@kit/tailwind-config": "workspace:*",
|
|
||||||
"@kit/tsconfig": "workspace:*",
|
"@kit/tsconfig": "workspace:*",
|
||||||
"@next/bundle-analyzer": "15.1.6",
|
"@next/bundle-analyzer": "15.1.6",
|
||||||
|
"@tailwindcss/postcss": "^4.0.4",
|
||||||
"@types/mdx": "^2.0.13",
|
"@types/mdx": "^2.0.13",
|
||||||
"@types/node": "^22.13.0",
|
"@types/node": "^22.13.0",
|
||||||
"@types/react": "19.0.8",
|
"@types/react": "19.0.8",
|
||||||
"@types/react-dom": "19.0.3",
|
"@types/react-dom": "19.0.3",
|
||||||
"autoprefixer": "^10.4.20",
|
"autoprefixer": "^10.4.20",
|
||||||
"babel-plugin-react-compiler": "19.0.0-beta-e552027-20250112",
|
"babel-plugin-react-compiler": "beta",
|
||||||
"dotenv-cli": "^8.0.0",
|
"dotenv-cli": "^8.0.0",
|
||||||
"eslint": "^8.57.0",
|
|
||||||
"import-in-the-middle": "1.12.0",
|
"import-in-the-middle": "1.12.0",
|
||||||
"pino-pretty": "^13.0.0",
|
"pino-pretty": "^13.0.0",
|
||||||
"prettier": "^3.4.2",
|
"prettier": "^3.4.2",
|
||||||
|
|||||||
@@ -1,2 +0,0 @@
|
|||||||
// @ts-expect-error - No types for postcss
|
|
||||||
module.exports = require('@kit/tailwind-config/postcss');
|
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
module.exports = {
|
export default {
|
||||||
plugins: {
|
plugins: {
|
||||||
'@tailwindcss/postcss': {},
|
'@tailwindcss/postcss': {},
|
||||||
},
|
},
|
||||||
@@ -25,168 +25,6 @@
|
|||||||
@source "../../../packages/cms/*/src/**/*.{ts,tsx}";
|
@source "../../../packages/cms/*/src/**/*.{ts,tsx}";
|
||||||
@source "../{app,components,config,lib}/**/*.{ts,tsx}";
|
@source "../{app,components,config,lib}/**/*.{ts,tsx}";
|
||||||
|
|
||||||
@theme {
|
|
||||||
--font-cal: var(--font-cal);
|
|
||||||
--font-sans: -apple-system, var(--font-sans);
|
|
||||||
--font-heading: var(--font-heading);
|
|
||||||
|
|
||||||
--animate-fade-up: fade-up 0.5s;
|
|
||||||
--animate-fade-down: fade-down 0.5s;
|
|
||||||
--animate-accordion-down: accordion-down 0.2s ease-out;
|
|
||||||
--animate-accordion-up: accordion-up 0.2s ease-out;
|
|
||||||
|
|
||||||
@keyframes fade-up {
|
|
||||||
0% {
|
|
||||||
opacity: 0;
|
|
||||||
transform: translateY(10px);
|
|
||||||
}
|
|
||||||
80% {
|
|
||||||
opacity: 0.6;
|
|
||||||
}
|
|
||||||
100% {
|
|
||||||
opacity: 1;
|
|
||||||
transform: translateY(0px);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@keyframes fade-down {
|
|
||||||
0% {
|
|
||||||
opacity: 0;
|
|
||||||
transform: translateY(-10px);
|
|
||||||
}
|
|
||||||
80% {
|
|
||||||
opacity: 0.6;
|
|
||||||
}
|
|
||||||
100% {
|
|
||||||
opacity: 1;
|
|
||||||
transform: translateY(0px);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@keyframes accordion-down {
|
|
||||||
from {
|
|
||||||
height: 0;
|
|
||||||
}
|
|
||||||
to {
|
|
||||||
height: var(--radix-accordion-content-height);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@keyframes accordion-up {
|
|
||||||
from {
|
|
||||||
height: var(--radix-accordion-content-height);
|
|
||||||
}
|
|
||||||
to {
|
|
||||||
height: 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@theme {
|
|
||||||
--font-cal: var(--font-cal);
|
|
||||||
--font-sans: -apple-system, var(--font-sans);
|
|
||||||
--font-heading: var(--font-heading);
|
|
||||||
|
|
||||||
--animate-fade-up: fade-up 0.5s;
|
|
||||||
--animate-fade-down: fade-down 0.5s;
|
|
||||||
--animate-accordion-down: accordion-down 0.2s ease-out;
|
|
||||||
--animate-accordion-up: accordion-up 0.2s ease-out;
|
|
||||||
|
|
||||||
@keyframes fade-up {
|
|
||||||
0% {
|
|
||||||
opacity: 0;
|
|
||||||
transform: translateY(10px);
|
|
||||||
}
|
|
||||||
80% {
|
|
||||||
opacity: 0.6;
|
|
||||||
}
|
|
||||||
100% {
|
|
||||||
opacity: 1;
|
|
||||||
transform: translateY(0px);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@keyframes fade-down {
|
|
||||||
0% {
|
|
||||||
opacity: 0;
|
|
||||||
transform: translateY(-10px);
|
|
||||||
}
|
|
||||||
80% {
|
|
||||||
opacity: 0.6;
|
|
||||||
}
|
|
||||||
100% {
|
|
||||||
opacity: 1;
|
|
||||||
transform: translateY(0px);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@keyframes accordion-down {
|
|
||||||
from {
|
|
||||||
height: 0;
|
|
||||||
}
|
|
||||||
to {
|
|
||||||
height: var(--radix-accordion-content-height);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@keyframes accordion-up {
|
|
||||||
from {
|
|
||||||
height: var(--radix-accordion-content-height);
|
|
||||||
}
|
|
||||||
to {
|
|
||||||
height: 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
The default border color has changed to `currentColor` in Tailwind CSS v4,
|
|
||||||
so we've added these compatibility styles to make sure everything still
|
|
||||||
looks the same as it did with Tailwind CSS v3.
|
|
||||||
|
|
||||||
If we ever want to remove these styles, we need to add an explicit border
|
|
||||||
color utility to any element that depends on these defaults.
|
|
||||||
*/
|
|
||||||
@layer base {
|
|
||||||
*,
|
|
||||||
::after,
|
|
||||||
::before,
|
|
||||||
::backdrop,
|
|
||||||
::file-selector-button {
|
|
||||||
border-color: var(--color-gray-200, currentColor);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
The default border color has changed to `currentColor` in Tailwind CSS v4,
|
|
||||||
so we've added these compatibility styles to make sure everything still
|
|
||||||
looks the same as it did with Tailwind CSS v3.
|
|
||||||
|
|
||||||
If we ever want to remove these styles, we need to add an explicit border
|
|
||||||
color utility to any element that depends on these defaults.
|
|
||||||
*/
|
|
||||||
@layer base {
|
|
||||||
*,
|
|
||||||
::after,
|
|
||||||
::before,
|
|
||||||
::backdrop,
|
|
||||||
::file-selector-button {
|
|
||||||
border-color: var(--color-gray-200, currentColor);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
The default border color has changed to `currentColor` in Tailwind CSS v4,
|
|
||||||
so we've added these compatibility styles to make sure everything still
|
|
||||||
looks the same as it did with Tailwind CSS v3.
|
|
||||||
|
|
||||||
If we ever want to remove these styles, we need to add an explicit border
|
|
||||||
color utility to any element that depends on these defaults.
|
|
||||||
*/
|
|
||||||
@layer base {
|
|
||||||
*,
|
|
||||||
::after,
|
|
||||||
::before,
|
|
||||||
::backdrop,
|
|
||||||
::file-selector-button {
|
|
||||||
border-color: var(--color-gray-200, currentColor);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* variants - update the below if you add a new variant */
|
/* variants - update the below if you add a new variant */
|
||||||
@variant dark (&:where(.dark, .dark *));
|
@variant dark (&:where(.dark, .dark *));
|
||||||
|
|
||||||
|
|||||||
@@ -49,7 +49,8 @@
|
|||||||
--radius-md: calc(var(--radius) - 2px);
|
--radius-md: calc(var(--radius) - 2px);
|
||||||
--radius-lg: var(--radius);
|
--radius-lg: var(--radius);
|
||||||
|
|
||||||
--font-heading: var(--font-sans);
|
--font-sans: -apple-system, var(--font-sans);
|
||||||
|
--font-heading: var(--font-heading);
|
||||||
|
|
||||||
--color-sidebar: var(--sidebar-background);
|
--color-sidebar: var(--sidebar-background);
|
||||||
--color-sidebar-foreground: var(--sidebar-foreground);
|
--color-sidebar-foreground: var(--sidebar-foreground);
|
||||||
@@ -60,6 +61,8 @@
|
|||||||
--color-sidebar-border: var(--sidebar-border);
|
--color-sidebar-border: var(--sidebar-border);
|
||||||
--color-sidebar-ring: var(--sidebar-ring);
|
--color-sidebar-ring: var(--sidebar-ring);
|
||||||
|
|
||||||
|
--animate-fade-up: fade-up 0.5s;
|
||||||
|
--animate-fade-down: fade-down 0.5s;
|
||||||
--animate-accordion-down: accordion-down 0.2s ease-out;
|
--animate-accordion-down: accordion-down 0.2s ease-out;
|
||||||
--animate-accordion-up: accordion-up 0.2s ease-out;
|
--animate-accordion-up: accordion-up 0.2s ease-out;
|
||||||
|
|
||||||
@@ -83,11 +86,6 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
--animate-fade-up: fade-up 0.5s;
|
|
||||||
--animate-fade-down: fade-down 0.5s;
|
|
||||||
--animate-accordion-down: accordion-down 0.2s ease-out;
|
|
||||||
--animate-accordion-up: accordion-up 0.2s ease-out;
|
|
||||||
|
|
||||||
@keyframes fade-up {
|
@keyframes fade-up {
|
||||||
0% {
|
0% {
|
||||||
opacity: 0;
|
opacity: 0;
|
||||||
@@ -101,6 +99,7 @@
|
|||||||
transform: translateY(0px);
|
transform: translateY(0px);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@keyframes fade-down {
|
@keyframes fade-down {
|
||||||
0% {
|
0% {
|
||||||
opacity: 0;
|
opacity: 0;
|
||||||
@@ -114,20 +113,4 @@
|
|||||||
transform: translateY(0px);
|
transform: translateY(0px);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@keyframes accordion-down {
|
|
||||||
from {
|
|
||||||
height: 0;
|
|
||||||
}
|
|
||||||
to {
|
|
||||||
height: var(--radix-accordion-content-height);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@keyframes accordion-up {
|
|
||||||
from {
|
|
||||||
height: var(--radix-accordion-content-height);
|
|
||||||
}
|
|
||||||
to {
|
|
||||||
height: 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
@@ -20,7 +20,6 @@
|
|||||||
".next/types/**/*.ts",
|
".next/types/**/*.ts",
|
||||||
"*.ts",
|
"*.ts",
|
||||||
"*.tsx",
|
"*.tsx",
|
||||||
"*.mjs",
|
|
||||||
"./config/**/*.ts",
|
"./config/**/*.ts",
|
||||||
"components/**/*",
|
"components/**/*",
|
||||||
"lib/**/*.ts",
|
"lib/**/*.ts",
|
||||||
|
|||||||
@@ -19,9 +19,9 @@
|
|||||||
"dev": "cross-env FORCE_COLOR=1 turbo dev --parallel",
|
"dev": "cross-env FORCE_COLOR=1 turbo dev --parallel",
|
||||||
"format": "turbo format --cache-dir=.turbo --continue -- --cache --cache-location='node_modules/.cache/.prettiercache' --ignore-path='../../.gitignore'",
|
"format": "turbo format --cache-dir=.turbo --continue -- --cache --cache-location='node_modules/.cache/.prettiercache' --ignore-path='../../.gitignore'",
|
||||||
"format:fix": "turbo format --cache-dir=.turbo --continue -- --write --cache --cache-location='node_modules/.cache/.prettiercache' --ignore-path='../../.gitignore'",
|
"format:fix": "turbo format --cache-dir=.turbo --continue -- --write --cache --cache-location='node_modules/.cache/.prettiercache' --ignore-path='../../.gitignore'",
|
||||||
"lint": "turbo lint --cache-dir=.turbo --continue -- --cache --cache-location 'node_modules/.cache/.eslintcache' && manypkg check",
|
"lint": "turbo lint --cache-dir=.turbo --affected --continue -- --cache --cache-location 'node_modules/.cache/.eslintcache' && manypkg check",
|
||||||
"lint:fix": "turbo lint --cache-dir=.turbo --continue -- --fix --cache --cache-location 'node_modules/.cache/.eslintcache' && manypkg fix",
|
"lint:fix": "turbo lint --cache-dir=.turbo --affected --continue -- --fix --cache --cache-location 'node_modules/.cache/.eslintcache' && manypkg fix",
|
||||||
"typecheck": "turbo typecheck --cache-dir=.turbo",
|
"typecheck": "turbo typecheck --affected --cache-dir=.turbo",
|
||||||
"test": "turbo test --cache-dir=.turbo",
|
"test": "turbo test --cache-dir=.turbo",
|
||||||
"update": "pnpm update -r",
|
"update": "pnpm update -r",
|
||||||
"syncpack:list": "pnpm dlx syncpack list-mismatches",
|
"syncpack:list": "pnpm dlx syncpack list-mismatches",
|
||||||
|
|||||||
3
packages/analytics/eslint.config.mjs
Normal file
3
packages/analytics/eslint.config.mjs
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
import eslintConfigBase from '@kit/eslint-config/base.js';
|
||||||
|
|
||||||
|
export default eslintConfigBase;
|
||||||
@@ -18,13 +18,6 @@
|
|||||||
"@kit/tsconfig": "workspace:*",
|
"@kit/tsconfig": "workspace:*",
|
||||||
"@types/node": "^22.13.0"
|
"@types/node": "^22.13.0"
|
||||||
},
|
},
|
||||||
"eslintConfig": {
|
|
||||||
"root": true,
|
|
||||||
"extends": [
|
|
||||||
"@kit/eslint-config/base",
|
|
||||||
"@kit/eslint-config/react"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"typesVersions": {
|
"typesVersions": {
|
||||||
"*": {
|
"*": {
|
||||||
"*": [
|
"*": [
|
||||||
|
|||||||
@@ -3,7 +3,6 @@ import { AnalyticsService } from './types';
|
|||||||
const noop = (event: string) => {
|
const noop = (event: string) => {
|
||||||
// do nothing - this is to prevent errors when the analytics service is not initialized
|
// do nothing - this is to prevent errors when the analytics service is not initialized
|
||||||
|
|
||||||
// eslint-disable-next-line @typescript-eslint/require-await
|
|
||||||
return async (...args: unknown[]) => {
|
return async (...args: unknown[]) => {
|
||||||
console.debug(
|
console.debug(
|
||||||
`Noop analytics service called with event: ${event}`,
|
`Noop analytics service called with event: ${event}`,
|
||||||
|
|||||||
3
packages/billing/core/eslint.config.mjs
Normal file
3
packages/billing/core/eslint.config.mjs
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
import eslintConfigBase from '@kit/eslint-config/base.js';
|
||||||
|
|
||||||
|
export default eslintConfigBase;
|
||||||
@@ -19,18 +19,10 @@
|
|||||||
"@kit/eslint-config": "workspace:*",
|
"@kit/eslint-config": "workspace:*",
|
||||||
"@kit/prettier-config": "workspace:*",
|
"@kit/prettier-config": "workspace:*",
|
||||||
"@kit/supabase": "workspace:*",
|
"@kit/supabase": "workspace:*",
|
||||||
"@kit/tailwind-config": "workspace:*",
|
|
||||||
"@kit/tsconfig": "workspace:*",
|
"@kit/tsconfig": "workspace:*",
|
||||||
"@kit/ui": "workspace:*",
|
"@kit/ui": "workspace:*",
|
||||||
"zod": "^3.24.1"
|
"zod": "^3.24.1"
|
||||||
},
|
},
|
||||||
"eslintConfig": {
|
|
||||||
"root": true,
|
|
||||||
"extends": [
|
|
||||||
"@kit/eslint-config/base",
|
|
||||||
"@kit/eslint-config/react"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"typesVersions": {
|
"typesVersions": {
|
||||||
"*": {
|
"*": {
|
||||||
"*": [
|
"*": [
|
||||||
|
|||||||
3
packages/billing/gateway/eslint.config.mjs
Normal file
3
packages/billing/gateway/eslint.config.mjs
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
import eslintConfigBase from '@kit/eslint-config/base.js';
|
||||||
|
|
||||||
|
export default eslintConfigBase;
|
||||||
@@ -24,7 +24,6 @@
|
|||||||
"@kit/shared": "workspace:*",
|
"@kit/shared": "workspace:*",
|
||||||
"@kit/stripe": "workspace:*",
|
"@kit/stripe": "workspace:*",
|
||||||
"@kit/supabase": "workspace:*",
|
"@kit/supabase": "workspace:*",
|
||||||
"@kit/tailwind-config": "workspace:*",
|
|
||||||
"@kit/tsconfig": "workspace:*",
|
"@kit/tsconfig": "workspace:*",
|
||||||
"@kit/ui": "workspace:*",
|
"@kit/ui": "workspace:*",
|
||||||
"@supabase/supabase-js": "2.48.1",
|
"@supabase/supabase-js": "2.48.1",
|
||||||
@@ -37,13 +36,6 @@
|
|||||||
"react-i18next": "^15.4.0",
|
"react-i18next": "^15.4.0",
|
||||||
"zod": "^3.24.1"
|
"zod": "^3.24.1"
|
||||||
},
|
},
|
||||||
"eslintConfig": {
|
|
||||||
"root": true,
|
|
||||||
"extends": [
|
|
||||||
"@kit/eslint-config/base",
|
|
||||||
"@kit/eslint-config/react"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"typesVersions": {
|
"typesVersions": {
|
||||||
"*": {
|
"*": {
|
||||||
"*": [
|
"*": [
|
||||||
|
|||||||
@@ -469,7 +469,7 @@ function DefaultCheckoutButton(
|
|||||||
});
|
});
|
||||||
|
|
||||||
const linkHref =
|
const linkHref =
|
||||||
props.plan.href ?? `${signUpPath}?${searchParams.toString()}` ?? '';
|
props.plan.href ?? `${signUpPath}?${searchParams.toString()}`;
|
||||||
|
|
||||||
const label = props.plan.buttonLabel ?? 'common:getStartedWithPlan';
|
const label = props.plan.buttonLabel ?? 'common:getStartedWithPlan';
|
||||||
|
|
||||||
|
|||||||
3
packages/billing/lemon-squeezy/eslint.config.mjs
Normal file
3
packages/billing/lemon-squeezy/eslint.config.mjs
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
import eslintConfigBase from '@kit/eslint-config/base.js';
|
||||||
|
|
||||||
|
export default eslintConfigBase;
|
||||||
@@ -22,7 +22,6 @@
|
|||||||
"@kit/prettier-config": "workspace:*",
|
"@kit/prettier-config": "workspace:*",
|
||||||
"@kit/shared": "workspace:*",
|
"@kit/shared": "workspace:*",
|
||||||
"@kit/supabase": "workspace:*",
|
"@kit/supabase": "workspace:*",
|
||||||
"@kit/tailwind-config": "workspace:*",
|
|
||||||
"@kit/tsconfig": "workspace:*",
|
"@kit/tsconfig": "workspace:*",
|
||||||
"@kit/ui": "workspace:*",
|
"@kit/ui": "workspace:*",
|
||||||
"@types/react": "19.0.8",
|
"@types/react": "19.0.8",
|
||||||
@@ -30,13 +29,6 @@
|
|||||||
"react": "19.0.0",
|
"react": "19.0.0",
|
||||||
"zod": "^3.24.1"
|
"zod": "^3.24.1"
|
||||||
},
|
},
|
||||||
"eslintConfig": {
|
|
||||||
"root": true,
|
|
||||||
"extends": [
|
|
||||||
"@kit/eslint-config/base",
|
|
||||||
"@kit/eslint-config/react"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"typesVersions": {
|
"typesVersions": {
|
||||||
"*": {
|
"*": {
|
||||||
"*": [
|
"*": [
|
||||||
|
|||||||
3
packages/billing/stripe/eslint.config.mjs
Normal file
3
packages/billing/stripe/eslint.config.mjs
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
import eslintConfigBase from '@kit/eslint-config/base.js';
|
||||||
|
|
||||||
|
export default eslintConfigBase;
|
||||||
@@ -25,7 +25,6 @@
|
|||||||
"@kit/prettier-config": "workspace:*",
|
"@kit/prettier-config": "workspace:*",
|
||||||
"@kit/shared": "workspace:*",
|
"@kit/shared": "workspace:*",
|
||||||
"@kit/supabase": "workspace:*",
|
"@kit/supabase": "workspace:*",
|
||||||
"@kit/tailwind-config": "workspace:*",
|
|
||||||
"@kit/tsconfig": "workspace:*",
|
"@kit/tsconfig": "workspace:*",
|
||||||
"@kit/ui": "workspace:*",
|
"@kit/ui": "workspace:*",
|
||||||
"@types/react": "19.0.8",
|
"@types/react": "19.0.8",
|
||||||
@@ -34,13 +33,6 @@
|
|||||||
"react": "19.0.0",
|
"react": "19.0.0",
|
||||||
"zod": "^3.24.1"
|
"zod": "^3.24.1"
|
||||||
},
|
},
|
||||||
"eslintConfig": {
|
|
||||||
"root": true,
|
|
||||||
"extends": [
|
|
||||||
"@kit/eslint-config/base",
|
|
||||||
"@kit/eslint-config/react"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"typesVersions": {
|
"typesVersions": {
|
||||||
"*": {
|
"*": {
|
||||||
"*": [
|
"*": [
|
||||||
|
|||||||
3
packages/cms/core/eslint.config.mjs
Normal file
3
packages/cms/core/eslint.config.mjs
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
import eslintConfigBase from '@kit/eslint-config/base.js';
|
||||||
|
|
||||||
|
export default eslintConfigBase;
|
||||||
@@ -22,13 +22,6 @@
|
|||||||
"@kit/wordpress": "workspace:*",
|
"@kit/wordpress": "workspace:*",
|
||||||
"@types/node": "^22.13.0"
|
"@types/node": "^22.13.0"
|
||||||
},
|
},
|
||||||
"eslintConfig": {
|
|
||||||
"root": true,
|
|
||||||
"extends": [
|
|
||||||
"@kit/eslint-config/base",
|
|
||||||
"@kit/eslint-config/react"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"typesVersions": {
|
"typesVersions": {
|
||||||
"*": {
|
"*": {
|
||||||
"*": [
|
"*": [
|
||||||
|
|||||||
3
packages/cms/keystatic/eslint.config.mjs
Normal file
3
packages/cms/keystatic/eslint.config.mjs
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
import eslintConfigBase from '@kit/eslint-config/base.js';
|
||||||
|
|
||||||
|
export default eslintConfigBase;
|
||||||
@@ -31,13 +31,6 @@
|
|||||||
"react": "19.0.0",
|
"react": "19.0.0",
|
||||||
"zod": "^3.24.1"
|
"zod": "^3.24.1"
|
||||||
},
|
},
|
||||||
"eslintConfig": {
|
|
||||||
"root": true,
|
|
||||||
"extends": [
|
|
||||||
"@kit/eslint-config/base",
|
|
||||||
"@kit/eslint-config/react"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"typesVersions": {
|
"typesVersions": {
|
||||||
"*": {
|
"*": {
|
||||||
"*": [
|
"*": [
|
||||||
|
|||||||
3
packages/cms/types/eslint.config.mjs
Normal file
3
packages/cms/types/eslint.config.mjs
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
import eslintConfigBase from '@kit/eslint-config/base.js';
|
||||||
|
|
||||||
|
export default eslintConfigBase;
|
||||||
@@ -17,13 +17,6 @@
|
|||||||
"@kit/prettier-config": "workspace:*",
|
"@kit/prettier-config": "workspace:*",
|
||||||
"@kit/tsconfig": "workspace:*"
|
"@kit/tsconfig": "workspace:*"
|
||||||
},
|
},
|
||||||
"eslintConfig": {
|
|
||||||
"root": true,
|
|
||||||
"extends": [
|
|
||||||
"@kit/eslint-config/base",
|
|
||||||
"@kit/eslint-config/react"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"typesVersions": {
|
"typesVersions": {
|
||||||
"*": {
|
"*": {
|
||||||
"*": [
|
"*": [
|
||||||
|
|||||||
3
packages/cms/wordpress/eslint.config.mjs
Normal file
3
packages/cms/wordpress/eslint.config.mjs
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
import eslintConfigBase from '@kit/eslint-config/base.js';
|
||||||
|
|
||||||
|
export default eslintConfigBase;
|
||||||
@@ -24,13 +24,6 @@
|
|||||||
"@types/react": "19.0.8",
|
"@types/react": "19.0.8",
|
||||||
"wp-types": "^4.67.0"
|
"wp-types": "^4.67.0"
|
||||||
},
|
},
|
||||||
"eslintConfig": {
|
|
||||||
"root": true,
|
|
||||||
"extends": [
|
|
||||||
"@kit/eslint-config/base",
|
|
||||||
"@kit/eslint-config/react"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"typesVersions": {
|
"typesVersions": {
|
||||||
"*": {
|
"*": {
|
||||||
"*": [
|
"*": [
|
||||||
|
|||||||
@@ -75,10 +75,7 @@ class WordpressClient implements CmsClient {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (options?.tags) {
|
if (options?.tags) {
|
||||||
const allTags = [
|
const allTags = [...options.tags, options.language ?? ''].filter(Boolean);
|
||||||
...options.tags,
|
|
||||||
options.language ?? '',
|
|
||||||
].filter(Boolean);
|
|
||||||
|
|
||||||
const ids = await this.getTags({
|
const ids = await this.getTags({
|
||||||
slugs: allTags,
|
slugs: allTags,
|
||||||
|
|||||||
3
packages/database-webhooks/eslint.config.mjs
Normal file
3
packages/database-webhooks/eslint.config.mjs
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
import eslintConfigBase from '@kit/eslint-config/base.js';
|
||||||
|
|
||||||
|
export default eslintConfigBase;
|
||||||
@@ -25,13 +25,6 @@
|
|||||||
"@supabase/supabase-js": "2.48.1",
|
"@supabase/supabase-js": "2.48.1",
|
||||||
"zod": "^3.24.1"
|
"zod": "^3.24.1"
|
||||||
},
|
},
|
||||||
"eslintConfig": {
|
|
||||||
"root": true,
|
|
||||||
"extends": [
|
|
||||||
"@kit/eslint-config/base",
|
|
||||||
"@kit/eslint-config/react"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"typesVersions": {
|
"typesVersions": {
|
||||||
"*": {
|
"*": {
|
||||||
"*": [
|
"*": [
|
||||||
|
|||||||
@@ -30,8 +30,7 @@ class DatabaseWebhookHandlerService {
|
|||||||
* @description Handle the webhook event
|
* @description Handle the webhook event
|
||||||
* @param params
|
* @param params
|
||||||
*/
|
*/
|
||||||
async handleWebhook(
|
async handleWebhook(params: {
|
||||||
params: {
|
|
||||||
body: RecordChange<keyof Tables>;
|
body: RecordChange<keyof Tables>;
|
||||||
signature: string;
|
signature: string;
|
||||||
handleEvent?<Table extends keyof Tables>(
|
handleEvent?<Table extends keyof Tables>(
|
||||||
@@ -39,8 +38,7 @@ class DatabaseWebhookHandlerService {
|
|||||||
? DatabaseChangePayload<Table>
|
? DatabaseChangePayload<Table>
|
||||||
: never,
|
: never,
|
||||||
): unknown;
|
): unknown;
|
||||||
},
|
}) {
|
||||||
) {
|
|
||||||
const logger = await getLogger();
|
const logger = await getLogger();
|
||||||
const { table, type } = params.body;
|
const { table, type } = params.body;
|
||||||
|
|
||||||
|
|||||||
3
packages/email-templates/eslint.config.mjs
Normal file
3
packages/email-templates/eslint.config.mjs
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
import eslintConfigBase from '@kit/eslint-config/base.js';
|
||||||
|
|
||||||
|
export default eslintConfigBase;
|
||||||
@@ -19,16 +19,8 @@
|
|||||||
"@kit/eslint-config": "workspace:*",
|
"@kit/eslint-config": "workspace:*",
|
||||||
"@kit/i18n": "workspace:*",
|
"@kit/i18n": "workspace:*",
|
||||||
"@kit/prettier-config": "workspace:*",
|
"@kit/prettier-config": "workspace:*",
|
||||||
"@kit/tailwind-config": "workspace:*",
|
|
||||||
"@kit/tsconfig": "workspace:*"
|
"@kit/tsconfig": "workspace:*"
|
||||||
},
|
},
|
||||||
"eslintConfig": {
|
|
||||||
"root": true,
|
|
||||||
"extends": [
|
|
||||||
"@kit/eslint-config/base",
|
|
||||||
"@kit/eslint-config/react"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"typesVersions": {
|
"typesVersions": {
|
||||||
"*": {
|
"*": {
|
||||||
"*": [
|
"*": [
|
||||||
|
|||||||
3
packages/features/accounts/eslint.config.mjs
Normal file
3
packages/features/accounts/eslint.config.mjs
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
import eslintConfigBase from '@kit/eslint-config/base.js';
|
||||||
|
|
||||||
|
export default eslintConfigBase;
|
||||||
@@ -30,7 +30,6 @@
|
|||||||
"@kit/prettier-config": "workspace:*",
|
"@kit/prettier-config": "workspace:*",
|
||||||
"@kit/shared": "workspace:*",
|
"@kit/shared": "workspace:*",
|
||||||
"@kit/supabase": "workspace:*",
|
"@kit/supabase": "workspace:*",
|
||||||
"@kit/tailwind-config": "workspace:*",
|
|
||||||
"@kit/tsconfig": "workspace:*",
|
"@kit/tsconfig": "workspace:*",
|
||||||
"@kit/ui": "workspace:*",
|
"@kit/ui": "workspace:*",
|
||||||
"@radix-ui/react-icons": "^1.3.2",
|
"@radix-ui/react-icons": "^1.3.2",
|
||||||
@@ -49,13 +48,6 @@
|
|||||||
"zod": "^3.24.1"
|
"zod": "^3.24.1"
|
||||||
},
|
},
|
||||||
"prettier": "@kit/prettier-config",
|
"prettier": "@kit/prettier-config",
|
||||||
"eslintConfig": {
|
|
||||||
"root": true,
|
|
||||||
"extends": [
|
|
||||||
"@kit/eslint-config/base",
|
|
||||||
"@kit/eslint-config/react"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"typesVersions": {
|
"typesVersions": {
|
||||||
"*": {
|
"*": {
|
||||||
"*": [
|
"*": [
|
||||||
|
|||||||
@@ -74,7 +74,6 @@ export const UpdatePasswordForm = ({
|
|||||||
// if the user does not have an email assigned, it's possible they
|
// if the user does not have an email assigned, it's possible they
|
||||||
// don't have an email/password factor linked, and the UI is out of sync
|
// don't have an email/password factor linked, and the UI is out of sync
|
||||||
if (!email) {
|
if (!email) {
|
||||||
/* eslint-disable @typescript-eslint/prefer-promise-reject-errors */
|
|
||||||
return Promise.reject(t(`cannotUpdatePassword`));
|
return Promise.reject(t(`cannotUpdatePassword`));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
3
packages/features/admin/eslint.config.mjs
Normal file
3
packages/features/admin/eslint.config.mjs
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
import eslintConfigBase from '@kit/eslint-config/base.js';
|
||||||
|
|
||||||
|
export default eslintConfigBase;
|
||||||
@@ -16,7 +16,6 @@
|
|||||||
"@kit/prettier-config": "workspace:*",
|
"@kit/prettier-config": "workspace:*",
|
||||||
"@kit/shared": "workspace:*",
|
"@kit/shared": "workspace:*",
|
||||||
"@kit/supabase": "workspace:*",
|
"@kit/supabase": "workspace:*",
|
||||||
"@kit/tailwind-config": "workspace:*",
|
|
||||||
"@kit/tsconfig": "workspace:*",
|
"@kit/tsconfig": "workspace:*",
|
||||||
"@kit/ui": "workspace:*",
|
"@kit/ui": "workspace:*",
|
||||||
"@makerkit/data-loader-supabase-core": "^0.0.8",
|
"@makerkit/data-loader-supabase-core": "^0.0.8",
|
||||||
@@ -36,13 +35,6 @@
|
|||||||
".": "./src/index.ts",
|
".": "./src/index.ts",
|
||||||
"./components/*": "./src/components/*.tsx"
|
"./components/*": "./src/components/*.tsx"
|
||||||
},
|
},
|
||||||
"eslintConfig": {
|
|
||||||
"root": true,
|
|
||||||
"extends": [
|
|
||||||
"@kit/eslint-config/base",
|
|
||||||
"@kit/eslint-config/react"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"typesVersions": {
|
"typesVersions": {
|
||||||
"*": {
|
"*": {
|
||||||
"*": [
|
"*": [
|
||||||
|
|||||||
3
packages/features/auth/eslint.config.mjs
Normal file
3
packages/features/auth/eslint.config.mjs
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
import eslintConfigBase from '@kit/eslint-config/base.js';
|
||||||
|
|
||||||
|
export default eslintConfigBase;
|
||||||
@@ -24,7 +24,6 @@
|
|||||||
"@kit/prettier-config": "workspace:*",
|
"@kit/prettier-config": "workspace:*",
|
||||||
"@kit/shared": "workspace:*",
|
"@kit/shared": "workspace:*",
|
||||||
"@kit/supabase": "workspace:*",
|
"@kit/supabase": "workspace:*",
|
||||||
"@kit/tailwind-config": "workspace:*",
|
|
||||||
"@kit/tsconfig": "workspace:*",
|
"@kit/tsconfig": "workspace:*",
|
||||||
"@kit/ui": "workspace:*",
|
"@kit/ui": "workspace:*",
|
||||||
"@marsidev/react-turnstile": "^1.1.0",
|
"@marsidev/react-turnstile": "^1.1.0",
|
||||||
@@ -40,13 +39,6 @@
|
|||||||
"zod": "^3.24.1"
|
"zod": "^3.24.1"
|
||||||
},
|
},
|
||||||
"prettier": "@kit/prettier-config",
|
"prettier": "@kit/prettier-config",
|
||||||
"eslintConfig": {
|
|
||||||
"root": true,
|
|
||||||
"extends": [
|
|
||||||
"@kit/eslint-config/base",
|
|
||||||
"@kit/eslint-config/react"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"typesVersions": {
|
"typesVersions": {
|
||||||
"*": {
|
"*": {
|
||||||
"*": [
|
"*": [
|
||||||
|
|||||||
3
packages/features/notifications/eslint.config.mjs
Normal file
3
packages/features/notifications/eslint.config.mjs
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
import eslintConfigBase from '@kit/eslint-config/base.js';
|
||||||
|
|
||||||
|
export default eslintConfigBase;
|
||||||
@@ -17,7 +17,6 @@
|
|||||||
"@kit/eslint-config": "workspace:*",
|
"@kit/eslint-config": "workspace:*",
|
||||||
"@kit/prettier-config": "workspace:*",
|
"@kit/prettier-config": "workspace:*",
|
||||||
"@kit/supabase": "workspace:*",
|
"@kit/supabase": "workspace:*",
|
||||||
"@kit/tailwind-config": "workspace:*",
|
|
||||||
"@kit/tsconfig": "workspace:*",
|
"@kit/tsconfig": "workspace:*",
|
||||||
"@kit/ui": "workspace:*",
|
"@kit/ui": "workspace:*",
|
||||||
"@supabase/supabase-js": "2.48.1",
|
"@supabase/supabase-js": "2.48.1",
|
||||||
|
|||||||
3
packages/features/team-accounts/eslint.config.mjs
Normal file
3
packages/features/team-accounts/eslint.config.mjs
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
import eslintConfigBase from '@kit/eslint-config/base.js';
|
||||||
|
|
||||||
|
export default eslintConfigBase;
|
||||||
@@ -29,7 +29,6 @@
|
|||||||
"@kit/prettier-config": "workspace:*",
|
"@kit/prettier-config": "workspace:*",
|
||||||
"@kit/shared": "workspace:*",
|
"@kit/shared": "workspace:*",
|
||||||
"@kit/supabase": "workspace:*",
|
"@kit/supabase": "workspace:*",
|
||||||
"@kit/tailwind-config": "workspace:*",
|
|
||||||
"@kit/tsconfig": "workspace:*",
|
"@kit/tsconfig": "workspace:*",
|
||||||
"@kit/ui": "workspace:*",
|
"@kit/ui": "workspace:*",
|
||||||
"@supabase/supabase-js": "2.48.1",
|
"@supabase/supabase-js": "2.48.1",
|
||||||
@@ -49,13 +48,6 @@
|
|||||||
"zod": "^3.24.1"
|
"zod": "^3.24.1"
|
||||||
},
|
},
|
||||||
"prettier": "@kit/prettier-config",
|
"prettier": "@kit/prettier-config",
|
||||||
"eslintConfig": {
|
|
||||||
"root": true,
|
|
||||||
"extends": [
|
|
||||||
"@kit/eslint-config/base",
|
|
||||||
"@kit/eslint-config/react"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"typesVersions": {
|
"typesVersions": {
|
||||||
"*": {
|
"*": {
|
||||||
"*": [
|
"*": [
|
||||||
|
|||||||
3
packages/i18n/eslint.config.mjs
Normal file
3
packages/i18n/eslint.config.mjs
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
import eslintConfigBase from '@kit/eslint-config/base.js';
|
||||||
|
|
||||||
|
export default eslintConfigBase;
|
||||||
@@ -31,13 +31,6 @@
|
|||||||
"i18next-browser-languagedetector": "8.0.2",
|
"i18next-browser-languagedetector": "8.0.2",
|
||||||
"i18next-resources-to-backend": "^1.2.1"
|
"i18next-resources-to-backend": "^1.2.1"
|
||||||
},
|
},
|
||||||
"eslintConfig": {
|
|
||||||
"root": true,
|
|
||||||
"extends": [
|
|
||||||
"@kit/eslint-config/base",
|
|
||||||
"@kit/eslint-config/react"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"typesVersions": {
|
"typesVersions": {
|
||||||
"*": {
|
"*": {
|
||||||
"*": [
|
"*": [
|
||||||
|
|||||||
3
packages/mailers/core/eslint.config.mjs
Normal file
3
packages/mailers/core/eslint.config.mjs
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
import eslintConfigBase from '@kit/eslint-config/base.js';
|
||||||
|
|
||||||
|
export default eslintConfigBase;
|
||||||
@@ -23,13 +23,6 @@
|
|||||||
"@types/node": "^22.13.0",
|
"@types/node": "^22.13.0",
|
||||||
"zod": "^3.24.1"
|
"zod": "^3.24.1"
|
||||||
},
|
},
|
||||||
"eslintConfig": {
|
|
||||||
"root": true,
|
|
||||||
"extends": [
|
|
||||||
"@kit/eslint-config/base",
|
|
||||||
"@kit/eslint-config/react"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"typesVersions": {
|
"typesVersions": {
|
||||||
"*": {
|
"*": {
|
||||||
"*": [
|
"*": [
|
||||||
|
|||||||
3
packages/mailers/nodemailer/eslint.config.mjs
Normal file
3
packages/mailers/nodemailer/eslint.config.mjs
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
import eslintConfigBase from '@kit/eslint-config/base.js';
|
||||||
|
|
||||||
|
export default eslintConfigBase;
|
||||||
@@ -23,13 +23,6 @@
|
|||||||
"@types/nodemailer": "6.4.17",
|
"@types/nodemailer": "6.4.17",
|
||||||
"zod": "^3.24.1"
|
"zod": "^3.24.1"
|
||||||
},
|
},
|
||||||
"eslintConfig": {
|
|
||||||
"root": true,
|
|
||||||
"extends": [
|
|
||||||
"@kit/eslint-config/base",
|
|
||||||
"@kit/eslint-config/react"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"typesVersions": {
|
"typesVersions": {
|
||||||
"*": {
|
"*": {
|
||||||
"*": [
|
"*": [
|
||||||
|
|||||||
3
packages/mailers/resend/eslint.config.mjs
Normal file
3
packages/mailers/resend/eslint.config.mjs
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
import eslintConfigBase from '@kit/eslint-config/base.js';
|
||||||
|
|
||||||
|
export default eslintConfigBase;
|
||||||
@@ -20,13 +20,6 @@
|
|||||||
"@types/node": "^22.13.0",
|
"@types/node": "^22.13.0",
|
||||||
"zod": "^3.24.1"
|
"zod": "^3.24.1"
|
||||||
},
|
},
|
||||||
"eslintConfig": {
|
|
||||||
"root": true,
|
|
||||||
"extends": [
|
|
||||||
"@kit/eslint-config/base",
|
|
||||||
"@kit/eslint-config/react"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"typesVersions": {
|
"typesVersions": {
|
||||||
"*": {
|
"*": {
|
||||||
"*": [
|
"*": [
|
||||||
|
|||||||
3
packages/mailers/shared/eslint.config.mjs
Normal file
3
packages/mailers/shared/eslint.config.mjs
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
import eslintConfigBase from '@kit/eslint-config/base.js';
|
||||||
|
|
||||||
|
export default eslintConfigBase;
|
||||||
@@ -18,13 +18,6 @@
|
|||||||
"@kit/tsconfig": "workspace:*",
|
"@kit/tsconfig": "workspace:*",
|
||||||
"zod": "^3.24.1"
|
"zod": "^3.24.1"
|
||||||
},
|
},
|
||||||
"eslintConfig": {
|
|
||||||
"root": true,
|
|
||||||
"extends": [
|
|
||||||
"@kit/eslint-config/base",
|
|
||||||
"@kit/eslint-config/react"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"typesVersions": {
|
"typesVersions": {
|
||||||
"*": {
|
"*": {
|
||||||
"*": [
|
"*": [
|
||||||
|
|||||||
3
packages/monitoring/api/eslint.config.mjs
Normal file
3
packages/monitoring/api/eslint.config.mjs
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
import eslintConfigBase from '@kit/eslint-config/base.js';
|
||||||
|
|
||||||
|
export default eslintConfigBase;
|
||||||
@@ -28,13 +28,6 @@
|
|||||||
"react": "19.0.0",
|
"react": "19.0.0",
|
||||||
"zod": "^3.24.1"
|
"zod": "^3.24.1"
|
||||||
},
|
},
|
||||||
"eslintConfig": {
|
|
||||||
"root": true,
|
|
||||||
"extends": [
|
|
||||||
"@kit/eslint-config/base",
|
|
||||||
"@kit/eslint-config/react"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"typesVersions": {
|
"typesVersions": {
|
||||||
"*": {
|
"*": {
|
||||||
"*": [
|
"*": [
|
||||||
|
|||||||
3
packages/monitoring/baselime/eslint.config.mjs
Normal file
3
packages/monitoring/baselime/eslint.config.mjs
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
import eslintConfigBase from '@kit/eslint-config/base.js';
|
||||||
|
|
||||||
|
export default eslintConfigBase;
|
||||||
@@ -28,13 +28,6 @@
|
|||||||
"react": "19.0.0",
|
"react": "19.0.0",
|
||||||
"zod": "^3.24.1"
|
"zod": "^3.24.1"
|
||||||
},
|
},
|
||||||
"eslintConfig": {
|
|
||||||
"root": true,
|
|
||||||
"extends": [
|
|
||||||
"@kit/eslint-config/base",
|
|
||||||
"@kit/eslint-config/react"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"typesVersions": {
|
"typesVersions": {
|
||||||
"*": {
|
"*": {
|
||||||
"*": [
|
"*": [
|
||||||
|
|||||||
3
packages/monitoring/core/eslint.config.mjs
Normal file
3
packages/monitoring/core/eslint.config.mjs
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
import eslintConfigBase from '@kit/eslint-config/base.js';
|
||||||
|
|
||||||
|
export default eslintConfigBase;
|
||||||
@@ -20,13 +20,6 @@
|
|||||||
"@types/react": "19.0.8",
|
"@types/react": "19.0.8",
|
||||||
"react": "19.0.0"
|
"react": "19.0.0"
|
||||||
},
|
},
|
||||||
"eslintConfig": {
|
|
||||||
"root": true,
|
|
||||||
"extends": [
|
|
||||||
"@kit/eslint-config/base",
|
|
||||||
"@kit/eslint-config/react"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"typesVersions": {
|
"typesVersions": {
|
||||||
"*": {
|
"*": {
|
||||||
"*": [
|
"*": [
|
||||||
|
|||||||
3
packages/monitoring/sentry/eslint.config.mjs
Normal file
3
packages/monitoring/sentry/eslint.config.mjs
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
import eslintConfigBase from '@kit/eslint-config/base.js';
|
||||||
|
|
||||||
|
export default eslintConfigBase;
|
||||||
@@ -26,13 +26,6 @@
|
|||||||
"@types/react": "19.0.8",
|
"@types/react": "19.0.8",
|
||||||
"react": "19.0.0"
|
"react": "19.0.0"
|
||||||
},
|
},
|
||||||
"eslintConfig": {
|
|
||||||
"root": true,
|
|
||||||
"extends": [
|
|
||||||
"@kit/eslint-config/base",
|
|
||||||
"@kit/eslint-config/react"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"typesVersions": {
|
"typesVersions": {
|
||||||
"*": {
|
"*": {
|
||||||
"*": [
|
"*": [
|
||||||
|
|||||||
3
packages/next/eslint.config.mjs
Normal file
3
packages/next/eslint.config.mjs
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
import eslintConfigBase from '@kit/eslint-config/base.js';
|
||||||
|
|
||||||
|
export default eslintConfigBase;
|
||||||
@@ -24,13 +24,6 @@
|
|||||||
"next": "15.1.6",
|
"next": "15.1.6",
|
||||||
"zod": "^3.24.1"
|
"zod": "^3.24.1"
|
||||||
},
|
},
|
||||||
"eslintConfig": {
|
|
||||||
"root": true,
|
|
||||||
"extends": [
|
|
||||||
"@kit/eslint-config/base",
|
|
||||||
"@kit/eslint-config/react"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"typesVersions": {
|
"typesVersions": {
|
||||||
"*": {
|
"*": {
|
||||||
"*": [
|
"*": [
|
||||||
|
|||||||
3
packages/shared/eslint.config.mjs
Normal file
3
packages/shared/eslint.config.mjs
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
import eslintConfigBase from '@kit/eslint-config/base.js';
|
||||||
|
|
||||||
|
export default eslintConfigBase;
|
||||||
@@ -25,13 +25,6 @@
|
|||||||
"dependencies": {
|
"dependencies": {
|
||||||
"pino": "^9.6.0"
|
"pino": "^9.6.0"
|
||||||
},
|
},
|
||||||
"eslintConfig": {
|
|
||||||
"root": true,
|
|
||||||
"extends": [
|
|
||||||
"@kit/eslint-config/base",
|
|
||||||
"@kit/eslint-config/react"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"typesVersions": {
|
"typesVersions": {
|
||||||
"*": {
|
"*": {
|
||||||
"*": [
|
"*": [
|
||||||
|
|||||||
@@ -1,9 +1,7 @@
|
|||||||
/**
|
/**
|
||||||
* Implementation factory type
|
* Implementation factory type
|
||||||
*/
|
*/
|
||||||
export type ImplementationFactory<T> = () =>
|
export type ImplementationFactory<T> = () => T | Promise<T>;
|
||||||
| T
|
|
||||||
| Promise<T>;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Public API types with improved get method
|
* Public API types with improved get method
|
||||||
@@ -34,10 +32,10 @@ export interface Registry<T, Names extends string> {
|
|||||||
* @description Creates a new registry instance with the provided implementations.
|
* @description Creates a new registry instance with the provided implementations.
|
||||||
* @returns A new registry instance.
|
* @returns A new registry instance.
|
||||||
*/
|
*/
|
||||||
export function createRegistry<
|
export function createRegistry<T, Names extends string = string>(): Registry<
|
||||||
T,
|
T,
|
||||||
Names extends string = string,
|
Names
|
||||||
>(): Registry<T, Names> {
|
> {
|
||||||
const implementations = new Map<Names, ImplementationFactory<T>>();
|
const implementations = new Map<Names, ImplementationFactory<T>>();
|
||||||
const setupCallbacks = new Map<string, Array<() => Promise<void>>>();
|
const setupCallbacks = new Map<string, Array<() => Promise<void>>>();
|
||||||
const setupPromises = new Map<string, Promise<void>>();
|
const setupPromises = new Map<string, Promise<void>>();
|
||||||
|
|||||||
3
packages/supabase/eslint.config.mjs
Normal file
3
packages/supabase/eslint.config.mjs
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
import eslintConfigBase from '@kit/eslint-config/base.js';
|
||||||
|
|
||||||
|
export default eslintConfigBase;
|
||||||
@@ -26,7 +26,6 @@
|
|||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@kit/eslint-config": "workspace:*",
|
"@kit/eslint-config": "workspace:*",
|
||||||
"@kit/prettier-config": "workspace:*",
|
"@kit/prettier-config": "workspace:*",
|
||||||
"@kit/tailwind-config": "workspace:*",
|
|
||||||
"@kit/tsconfig": "workspace:*",
|
"@kit/tsconfig": "workspace:*",
|
||||||
"@supabase/ssr": "^0.5.2",
|
"@supabase/ssr": "^0.5.2",
|
||||||
"@supabase/supabase-js": "2.48.1",
|
"@supabase/supabase-js": "2.48.1",
|
||||||
@@ -37,13 +36,6 @@
|
|||||||
"server-only": "^0.0.1",
|
"server-only": "^0.0.1",
|
||||||
"zod": "^3.24.1"
|
"zod": "^3.24.1"
|
||||||
},
|
},
|
||||||
"eslintConfig": {
|
|
||||||
"root": true,
|
|
||||||
"extends": [
|
|
||||||
"@kit/eslint-config/base",
|
|
||||||
"@kit/eslint-config/react"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"typesVersions": {
|
"typesVersions": {
|
||||||
"*": {
|
"*": {
|
||||||
"*": [
|
"*": [
|
||||||
|
|||||||
3
packages/ui/eslint.config.mjs
Normal file
3
packages/ui/eslint.config.mjs
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
import eslintConfigBase from '@kit/eslint-config/base.js';
|
||||||
|
|
||||||
|
export default eslintConfigBase;
|
||||||
@@ -10,26 +10,26 @@
|
|||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@hookform/resolvers": "^3.10.0",
|
"@hookform/resolvers": "^3.10.0",
|
||||||
"@radix-ui/react-accordion": "1.2.2",
|
"@radix-ui/react-accordion": "1.2.3",
|
||||||
"@radix-ui/react-alert-dialog": "^1.1.5",
|
"@radix-ui/react-alert-dialog": "^1.1.6",
|
||||||
"@radix-ui/react-avatar": "^1.1.2",
|
"@radix-ui/react-avatar": "^1.1.3",
|
||||||
"@radix-ui/react-checkbox": "^1.1.3",
|
"@radix-ui/react-checkbox": "^1.1.4",
|
||||||
"@radix-ui/react-collapsible": "1.1.2",
|
"@radix-ui/react-collapsible": "1.1.3",
|
||||||
"@radix-ui/react-dialog": "^1.1.5",
|
"@radix-ui/react-dialog": "^1.1.6",
|
||||||
"@radix-ui/react-dropdown-menu": "^2.1.5",
|
"@radix-ui/react-dropdown-menu": "^2.1.6",
|
||||||
"@radix-ui/react-label": "^2.1.1",
|
"@radix-ui/react-label": "^2.1.2",
|
||||||
"@radix-ui/react-navigation-menu": "^1.2.4",
|
"@radix-ui/react-navigation-menu": "^1.2.5",
|
||||||
"@radix-ui/react-popover": "^1.1.5",
|
"@radix-ui/react-popover": "^1.1.6",
|
||||||
"@radix-ui/react-progress": "^1.1.1",
|
"@radix-ui/react-progress": "^1.1.2",
|
||||||
"@radix-ui/react-radio-group": "^1.2.2",
|
"@radix-ui/react-radio-group": "^1.2.3",
|
||||||
"@radix-ui/react-scroll-area": "^1.2.2",
|
"@radix-ui/react-scroll-area": "^1.2.3",
|
||||||
"@radix-ui/react-select": "^2.1.5",
|
"@radix-ui/react-select": "^2.1.6",
|
||||||
"@radix-ui/react-separator": "^1.1.1",
|
"@radix-ui/react-separator": "^1.1.2",
|
||||||
"@radix-ui/react-slot": "^1.1.1",
|
"@radix-ui/react-slot": "^1.1.2",
|
||||||
"@radix-ui/react-switch": "^1.1.2",
|
"@radix-ui/react-switch": "^1.1.3",
|
||||||
"@radix-ui/react-tabs": "^1.1.2",
|
"@radix-ui/react-tabs": "^1.1.3",
|
||||||
"@radix-ui/react-toast": "^1.2.5",
|
"@radix-ui/react-toast": "^1.2.6",
|
||||||
"@radix-ui/react-tooltip": "1.1.7",
|
"@radix-ui/react-tooltip": "1.1.8",
|
||||||
"clsx": "^2.1.1",
|
"clsx": "^2.1.1",
|
||||||
"cmdk": "1.0.4",
|
"cmdk": "1.0.4",
|
||||||
"input-otp": "1.4.2",
|
"input-otp": "1.4.2",
|
||||||
@@ -41,7 +41,6 @@
|
|||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@kit/eslint-config": "workspace:*",
|
"@kit/eslint-config": "workspace:*",
|
||||||
"@kit/prettier-config": "workspace:*",
|
"@kit/prettier-config": "workspace:*",
|
||||||
"@kit/tailwind-config": "workspace:*",
|
|
||||||
"@kit/tsconfig": "workspace:*",
|
"@kit/tsconfig": "workspace:*",
|
||||||
"@radix-ui/react-icons": "^1.3.2",
|
"@radix-ui/react-icons": "^1.3.2",
|
||||||
"@tanstack/react-query": "5.66.0",
|
"@tanstack/react-query": "5.66.0",
|
||||||
@@ -50,7 +49,7 @@
|
|||||||
"@types/react-dom": "19.0.3",
|
"@types/react-dom": "19.0.3",
|
||||||
"class-variance-authority": "^0.7.1",
|
"class-variance-authority": "^0.7.1",
|
||||||
"date-fns": "^4.1.0",
|
"date-fns": "^4.1.0",
|
||||||
"eslint": "^8.57.0",
|
"eslint": "^9.19.0",
|
||||||
"next": "15.1.6",
|
"next": "15.1.6",
|
||||||
"next-themes": "0.4.4",
|
"next-themes": "0.4.4",
|
||||||
"prettier": "^3.4.2",
|
"prettier": "^3.4.2",
|
||||||
@@ -63,13 +62,6 @@
|
|||||||
"typescript": "^5.7.3",
|
"typescript": "^5.7.3",
|
||||||
"zod": "^3.24.1"
|
"zod": "^3.24.1"
|
||||||
},
|
},
|
||||||
"eslintConfig": {
|
|
||||||
"root": true,
|
|
||||||
"extends": [
|
|
||||||
"@kit/eslint-config/base",
|
|
||||||
"@kit/eslint-config/react"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"prettier": "@kit/prettier-config",
|
"prettier": "@kit/prettier-config",
|
||||||
"exports": {
|
"exports": {
|
||||||
"./accordion": "./src/shadcn/accordion.tsx",
|
"./accordion": "./src/shadcn/accordion.tsx",
|
||||||
|
|||||||
@@ -32,7 +32,7 @@ export function CookieBanner() {
|
|||||||
<DialogPrimitive.Root open modal={false}>
|
<DialogPrimitive.Root open modal={false}>
|
||||||
<DialogPrimitive.Content
|
<DialogPrimitive.Content
|
||||||
onOpenAutoFocus={(e) => e.preventDefault()}
|
onOpenAutoFocus={(e) => e.preventDefault()}
|
||||||
className={`dark:shadow-primary-500/40 fixed bottom-0 w-full max-w-lg border bg-background p-6 shadow-2xl delay-1000 duration-1000 animate-in fade-in zoom-in-95 slide-in-from-bottom-16 fill-mode-both lg:bottom-[2rem] lg:left-[2rem] lg:h-48 lg:rounded-lg`}
|
className={`dark:shadow-primary-500/40 bg-background animate-in fade-in zoom-in-95 slide-in-from-bottom-16 fill-mode-both fixed bottom-0 w-full max-w-lg border p-6 shadow-2xl delay-1000 duration-1000 lg:bottom-[2rem] lg:left-[2rem] lg:h-48 lg:rounded-lg`}
|
||||||
>
|
>
|
||||||
<div className={'flex flex-col space-y-4'}>
|
<div className={'flex flex-col space-y-4'}>
|
||||||
<div>
|
<div>
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ export function GlobalLoader({
|
|||||||
<If condition={displaySpinner}>
|
<If condition={displaySpinner}>
|
||||||
<div
|
<div
|
||||||
className={
|
className={
|
||||||
'zoom-in-80 flex flex-1 flex-col items-center justify-center duration-500 animate-in fade-in slide-in-from-bottom-12'
|
'zoom-in-80 animate-in fade-in slide-in-from-bottom-12 flex flex-1 flex-col items-center justify-center duration-500'
|
||||||
}
|
}
|
||||||
>
|
>
|
||||||
<LoadingOverlay displayLogo={displayLogo} fullPage={fullPage} />
|
<LoadingOverlay displayLogo={displayLogo} fullPage={fullPage} />
|
||||||
|
|||||||
@@ -71,7 +71,7 @@ export function ImageUploader(
|
|||||||
|
|
||||||
return (
|
return (
|
||||||
<div className={'flex items-center space-x-4'}>
|
<div className={'flex items-center space-x-4'}>
|
||||||
<label className={'relative h-20 w-20 animate-in fade-in zoom-in-50'}>
|
<label className={'animate-in fade-in zoom-in-50 relative h-20 w-20'}>
|
||||||
<Image fill className={'h-20 w-20 rounded-full'} src={image} alt={''} />
|
<Image fill className={'h-20 w-20 rounded-full'} src={image} alt={''} />
|
||||||
|
|
||||||
<Input />
|
<Input />
|
||||||
@@ -95,10 +95,10 @@ function FallbackImage(
|
|||||||
<div className={'flex items-center space-x-4'}>
|
<div className={'flex items-center space-x-4'}>
|
||||||
<label
|
<label
|
||||||
className={
|
className={
|
||||||
'relative flex h-20 w-20 cursor-pointer flex-col items-center justify-center rounded-full border border-border animate-in fade-in zoom-in-50 hover:border-primary'
|
'border-border animate-in fade-in zoom-in-50 hover:border-primary relative flex h-20 w-20 cursor-pointer flex-col items-center justify-center rounded-full border'
|
||||||
}
|
}
|
||||||
>
|
>
|
||||||
<ImageIcon className={'h-8 text-primary'} />
|
<ImageIcon className={'text-primary h-8'} />
|
||||||
|
|
||||||
{props.children}
|
{props.children}
|
||||||
</label>
|
</label>
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ const ComingSoonText: React.FC<React.HTMLAttributes<HTMLParagraphElement>> = ({
|
|||||||
...props
|
...props
|
||||||
}) => (
|
}) => (
|
||||||
<GradientSecondaryText
|
<GradientSecondaryText
|
||||||
className={cn('text-lg text-muted-foreground md:text-xl', className)}
|
className={cn('text-muted-foreground text-lg md:text-xl', className)}
|
||||||
{...props}
|
{...props}
|
||||||
/>
|
/>
|
||||||
);
|
);
|
||||||
@@ -95,7 +95,7 @@ ComingSoon.displayName = 'ComingSoon';
|
|||||||
const ComingSoonLogo: React.FC<React.HTMLAttributes<HTMLImageElement>> = ({
|
const ComingSoonLogo: React.FC<React.HTMLAttributes<HTMLImageElement>> = ({
|
||||||
className,
|
className,
|
||||||
...props
|
...props
|
||||||
}) => <div className={cn(className, 'fixed left-8 top-8')} {...props} />;
|
}) => <div className={cn(className, 'fixed top-8 left-8')} {...props} />;
|
||||||
ComingSoonLogo.displayName = 'ComingSoonLogo';
|
ComingSoonLogo.displayName = 'ComingSoonLogo';
|
||||||
|
|
||||||
export {
|
export {
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ export const CtaButton: React.FC<React.ComponentProps<typeof Button>> =
|
|||||||
'h-12 rounded-xl px-4 text-base font-semibold',
|
'h-12 rounded-xl px-4 text-base font-semibold',
|
||||||
className,
|
className,
|
||||||
{
|
{
|
||||||
['transition-all hover:shadow-2xl dark:shadow-primary/30']:
|
['dark:shadow-primary/30 transition-all hover:shadow-2xl']:
|
||||||
props.variant === 'default' || !props.variant,
|
props.variant === 'default' || !props.variant,
|
||||||
},
|
},
|
||||||
)}
|
)}
|
||||||
|
|||||||
@@ -31,7 +31,7 @@ export const SecondaryHero: React.FC<SecondaryHeroProps> =
|
|||||||
{heading}
|
{heading}
|
||||||
</Heading>
|
</Heading>
|
||||||
|
|
||||||
<h3 className="font-sans text-xl font-normal tracking-tight text-muted-foreground">
|
<h3 className="text-muted-foreground font-sans text-xl font-normal tracking-tight">
|
||||||
{subheading}
|
{subheading}
|
||||||
</h3>
|
</h3>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -175,7 +175,10 @@ export function PageHeader({
|
|||||||
|
|
||||||
<If condition={description}>
|
<If condition={description}>
|
||||||
<If condition={displaySidebarTrigger}>
|
<If condition={displaySidebarTrigger}>
|
||||||
<Separator orientation="vertical" className="h-4 w-px hidden lg:block" />
|
<Separator
|
||||||
|
orientation="vertical"
|
||||||
|
className="hidden h-4 w-px lg:block"
|
||||||
|
/>
|
||||||
</If>
|
</If>
|
||||||
|
|
||||||
<PageDescription>{description}</PageDescription>
|
<PageDescription>{description}</PageDescription>
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ export function ProfileAvatar(props: ProfileAvatarProps) {
|
|||||||
<AvatarFallback
|
<AvatarFallback
|
||||||
className={cn(
|
className={cn(
|
||||||
props.fallbackClassName,
|
props.fallbackClassName,
|
||||||
'uppercase animate-in fade-in',
|
'animate-in fade-in uppercase',
|
||||||
)}
|
)}
|
||||||
>
|
>
|
||||||
{props.text.slice(0, 1)}
|
{props.text.slice(0, 1)}
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ export function Spinner(
|
|||||||
<svg
|
<svg
|
||||||
aria-hidden="true"
|
aria-hidden="true"
|
||||||
className={cn(
|
className={cn(
|
||||||
`h-8 w-8 animate-spin fill-primary-foreground text-primary dark:fill-primary dark:text-primary/30`,
|
`fill-primary-foreground text-primary dark:fill-primary dark:text-primary/30 h-8 w-8 animate-spin`,
|
||||||
props.className,
|
props.className,
|
||||||
)}
|
)}
|
||||||
viewBox="0 0 100 101"
|
viewBox="0 0 100 101"
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ const AccordionTrigger: React.FC<
|
|||||||
{...props}
|
{...props}
|
||||||
>
|
>
|
||||||
{children}
|
{children}
|
||||||
<ChevronDownIcon className="h-4 w-4 shrink-0 text-muted-foreground transition-transform duration-200" />
|
<ChevronDownIcon className="text-muted-foreground h-4 w-4 shrink-0 transition-transform duration-200" />
|
||||||
</AccordionPrimitive.Trigger>
|
</AccordionPrimitive.Trigger>
|
||||||
</AccordionPrimitive.Header>
|
</AccordionPrimitive.Header>
|
||||||
);
|
);
|
||||||
@@ -38,10 +38,10 @@ const AccordionContent: React.FC<
|
|||||||
React.ComponentPropsWithRef<typeof AccordionPrimitive.Content>
|
React.ComponentPropsWithRef<typeof AccordionPrimitive.Content>
|
||||||
> = ({ className, children, ...props }) => (
|
> = ({ className, children, ...props }) => (
|
||||||
<AccordionPrimitive.Content
|
<AccordionPrimitive.Content
|
||||||
className="overflow-hidden text-sm data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down"
|
className="data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down overflow-hidden text-sm"
|
||||||
{...props}
|
{...props}
|
||||||
>
|
>
|
||||||
<div className={cn('pb-4 pt-0', className)}>{children}</div>
|
<div className={cn('pt-0 pb-4', className)}>{children}</div>
|
||||||
</AccordionPrimitive.Content>
|
</AccordionPrimitive.Content>
|
||||||
);
|
);
|
||||||
AccordionContent.displayName = AccordionPrimitive.Content.displayName;
|
AccordionContent.displayName = AccordionPrimitive.Content.displayName;
|
||||||
|
|||||||
@@ -34,7 +34,7 @@ const AvatarFallback: React.FC<
|
|||||||
> = ({ className, ...props }) => (
|
> = ({ className, ...props }) => (
|
||||||
<AvatarPrimitive.Fallback
|
<AvatarPrimitive.Fallback
|
||||||
className={cn(
|
className={cn(
|
||||||
'flex h-full w-full items-center justify-center rounded-full bg-muted',
|
'bg-muted flex h-full w-full items-center justify-center rounded-full',
|
||||||
className,
|
className,
|
||||||
)}
|
)}
|
||||||
{...props}
|
{...props}
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ const BreadcrumbList: React.FC<React.ComponentPropsWithRef<'ol'>> = ({
|
|||||||
}) => (
|
}) => (
|
||||||
<ol
|
<ol
|
||||||
className={cn(
|
className={cn(
|
||||||
'flex flex-wrap items-center gap-1.5 break-words text-sm text-muted-foreground',
|
'text-muted-foreground flex flex-wrap items-center gap-1.5 text-sm break-words',
|
||||||
className,
|
className,
|
||||||
)}
|
)}
|
||||||
{...props}
|
{...props}
|
||||||
@@ -64,7 +64,7 @@ const BreadcrumbPage: React.FC<React.ComponentPropsWithoutRef<'span'>> = ({
|
|||||||
role="link"
|
role="link"
|
||||||
aria-disabled="true"
|
aria-disabled="true"
|
||||||
aria-current="page"
|
aria-current="page"
|
||||||
className={cn('font-normal text-foreground', className)}
|
className={cn('text-foreground font-normal', className)}
|
||||||
{...props}
|
{...props}
|
||||||
/>
|
/>
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ const Card: React.FC<React.HTMLAttributes<HTMLDivElement>> = ({
|
|||||||
...props
|
...props
|
||||||
}) => (
|
}) => (
|
||||||
<div
|
<div
|
||||||
className={cn('rounded-xl border bg-card text-card-foreground', className)}
|
className={cn('bg-card text-card-foreground rounded-xl border', className)}
|
||||||
{...props}
|
{...props}
|
||||||
/>
|
/>
|
||||||
);
|
);
|
||||||
@@ -26,7 +26,7 @@ const CardTitle: React.FC<React.HTMLAttributes<HTMLHeadingElement>> = ({
|
|||||||
...props
|
...props
|
||||||
}) => (
|
}) => (
|
||||||
<h3
|
<h3
|
||||||
className={cn('font-semibold leading-none tracking-tight', className)}
|
className={cn('leading-none font-semibold tracking-tight', className)}
|
||||||
{...props}
|
{...props}
|
||||||
/>
|
/>
|
||||||
);
|
);
|
||||||
@@ -36,7 +36,7 @@ const CardDescription: React.FC<React.HTMLAttributes<HTMLParagraphElement>> = ({
|
|||||||
className,
|
className,
|
||||||
...props
|
...props
|
||||||
}) => (
|
}) => (
|
||||||
<p className={cn('text-sm text-muted-foreground', className)} {...props} />
|
<p className={cn('text-muted-foreground text-sm', className)} {...props} />
|
||||||
);
|
);
|
||||||
CardDescription.displayName = 'CardDescription';
|
CardDescription.displayName = 'CardDescription';
|
||||||
|
|
||||||
|
|||||||
@@ -166,8 +166,7 @@ const ChartTooltipContent: React.FC<
|
|||||||
labelKey,
|
labelKey,
|
||||||
]);
|
]);
|
||||||
|
|
||||||
/* @ts-expect-error: TS issue */
|
if (!active || !payload?.length) {
|
||||||
if (!active ?? !payload?.length) {
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -286,7 +285,6 @@ const ChartLegendContent: React.FC<
|
|||||||
)}
|
)}
|
||||||
>
|
>
|
||||||
{payload.map((item) => {
|
{payload.map((item) => {
|
||||||
/* eslint-disable @typescript-eslint/restrict-template-expressions */
|
|
||||||
const key = `${nameKey ?? item.dataKey ?? 'value'}`;
|
const key = `${nameKey ?? item.dataKey ?? 'value'}`;
|
||||||
const itemConfig = getPayloadConfigFromPayload(config, item, key);
|
const itemConfig = getPayloadConfigFromPayload(config, item, key);
|
||||||
|
|
||||||
|
|||||||
@@ -39,7 +39,6 @@ const CommandDialog = ({ children, ...props }: CommandDialogProps) => {
|
|||||||
const CommandInput: React.FC<
|
const CommandInput: React.FC<
|
||||||
React.ComponentPropsWithRef<typeof CommandPrimitive.Input>
|
React.ComponentPropsWithRef<typeof CommandPrimitive.Input>
|
||||||
> = ({ className, ...props }) => (
|
> = ({ className, ...props }) => (
|
||||||
// eslint-disable-next-line react/no-unknown-property
|
|
||||||
<div className="flex items-center border-b px-3" cmdk-input-wrapper="">
|
<div className="flex items-center border-b px-3" cmdk-input-wrapper="">
|
||||||
<MagnifyingGlassIcon className="mr-2 h-4 w-4 shrink-0 opacity-50" />
|
<MagnifyingGlassIcon className="mr-2 h-4 w-4 shrink-0 opacity-50" />
|
||||||
<CommandPrimitive.Input
|
<CommandPrimitive.Input
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ export function Heading({
|
|||||||
return (
|
return (
|
||||||
<h1
|
<h1
|
||||||
className={cn(
|
className={cn(
|
||||||
`scroll-m-20 font-heading text-3xl font-bold tracking-tight dark:text-white lg:text-4xl`,
|
`font-heading scroll-m-20 text-3xl font-bold tracking-tight lg:text-4xl dark:text-white`,
|
||||||
className,
|
className,
|
||||||
)}
|
)}
|
||||||
>
|
>
|
||||||
@@ -23,7 +23,7 @@ export function Heading({
|
|||||||
return (
|
return (
|
||||||
<h2
|
<h2
|
||||||
className={cn(
|
className={cn(
|
||||||
`scroll-m-20 pb-2 font-heading text-2xl font-semibold tracking-tight transition-colors first:mt-0 lg:text-3xl`,
|
`font-heading scroll-m-20 pb-2 text-2xl font-semibold tracking-tight transition-colors first:mt-0 lg:text-3xl`,
|
||||||
className,
|
className,
|
||||||
)}
|
)}
|
||||||
>
|
>
|
||||||
@@ -34,7 +34,7 @@ export function Heading({
|
|||||||
return (
|
return (
|
||||||
<h3
|
<h3
|
||||||
className={cn(
|
className={cn(
|
||||||
'scroll-m-20 font-heading text-xl font-semibold tracking-tight lg:text-2xl',
|
'font-heading scroll-m-20 text-xl font-semibold tracking-tight lg:text-2xl',
|
||||||
className,
|
className,
|
||||||
)}
|
)}
|
||||||
>
|
>
|
||||||
@@ -45,7 +45,7 @@ export function Heading({
|
|||||||
return (
|
return (
|
||||||
<h4
|
<h4
|
||||||
className={cn(
|
className={cn(
|
||||||
'scroll-m-20 font-heading text-lg font-semibold tracking-tight lg:text-xl',
|
'font-heading scroll-m-20 text-lg font-semibold tracking-tight lg:text-xl',
|
||||||
className,
|
className,
|
||||||
)}
|
)}
|
||||||
>
|
>
|
||||||
@@ -56,7 +56,7 @@ export function Heading({
|
|||||||
return (
|
return (
|
||||||
<h5
|
<h5
|
||||||
className={cn(
|
className={cn(
|
||||||
'scroll-m-20 font-heading text-base font-medium lg:text-lg',
|
'font-heading scroll-m-20 text-base font-medium lg:text-lg',
|
||||||
className,
|
className,
|
||||||
)}
|
)}
|
||||||
>
|
>
|
||||||
@@ -67,7 +67,7 @@ export function Heading({
|
|||||||
return (
|
return (
|
||||||
<h6
|
<h6
|
||||||
className={cn(
|
className={cn(
|
||||||
'scroll-m-20 font-heading text-base font-medium',
|
'font-heading scroll-m-20 text-base font-medium',
|
||||||
className,
|
className,
|
||||||
)}
|
)}
|
||||||
>
|
>
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ import { type VariantProps, cva } from 'class-variance-authority';
|
|||||||
import { cn } from '../lib/utils';
|
import { cn } from '../lib/utils';
|
||||||
|
|
||||||
const labelVariants = cva(
|
const labelVariants = cva(
|
||||||
'text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70',
|
'text-sm leading-none font-medium peer-disabled:cursor-not-allowed peer-disabled:opacity-70',
|
||||||
);
|
);
|
||||||
|
|
||||||
const Label: React.FC<
|
const Label: React.FC<
|
||||||
|
|||||||
@@ -11,13 +11,13 @@ const Progress: React.FC<
|
|||||||
> = ({ className, value, ...props }) => (
|
> = ({ className, value, ...props }) => (
|
||||||
<ProgressPrimitive.Root
|
<ProgressPrimitive.Root
|
||||||
className={cn(
|
className={cn(
|
||||||
'relative h-2 w-full overflow-hidden rounded-full bg-primary/20',
|
'bg-primary/20 relative h-2 w-full overflow-hidden rounded-full',
|
||||||
className,
|
className,
|
||||||
)}
|
)}
|
||||||
{...props}
|
{...props}
|
||||||
>
|
>
|
||||||
<ProgressPrimitive.Indicator
|
<ProgressPrimitive.Indicator
|
||||||
className="h-full w-full flex-1 bg-primary transition-all"
|
className="bg-primary h-full w-full flex-1 transition-all"
|
||||||
style={{ transform: `translateX(-${100 - (value ?? 0)}%)` }}
|
style={{ transform: `translateX(-${100 - (value ?? 0)}%)` }}
|
||||||
/>
|
/>
|
||||||
</ProgressPrimitive.Root>
|
</ProgressPrimitive.Root>
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ const ScrollBar: React.FC<
|
|||||||
<ScrollAreaPrimitive.ScrollAreaScrollbar
|
<ScrollAreaPrimitive.ScrollAreaScrollbar
|
||||||
orientation={orientation}
|
orientation={orientation}
|
||||||
className={cn(
|
className={cn(
|
||||||
'flex touch-none select-none transition-colors',
|
'flex touch-none transition-colors select-none',
|
||||||
orientation === 'vertical' &&
|
orientation === 'vertical' &&
|
||||||
'h-full w-2.5 border-l border-l-transparent p-[1px]',
|
'h-full w-2.5 border-l border-l-transparent p-[1px]',
|
||||||
orientation === 'horizontal' &&
|
orientation === 'horizontal' &&
|
||||||
@@ -37,7 +37,7 @@ const ScrollBar: React.FC<
|
|||||||
)}
|
)}
|
||||||
{...props}
|
{...props}
|
||||||
>
|
>
|
||||||
<ScrollAreaPrimitive.ScrollAreaThumb className="relative flex-1 rounded-full bg-border" />
|
<ScrollAreaPrimitive.ScrollAreaThumb className="bg-border relative flex-1 rounded-full" />
|
||||||
</ScrollAreaPrimitive.ScrollAreaScrollbar>
|
</ScrollAreaPrimitive.ScrollAreaScrollbar>
|
||||||
);
|
);
|
||||||
ScrollBar.displayName = ScrollAreaPrimitive.ScrollAreaScrollbar.displayName;
|
ScrollBar.displayName = ScrollAreaPrimitive.ScrollAreaScrollbar.displayName;
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user