Dependencies Updates, Sidebar fixes, default plan, Radix single package (#297)

* Refactor Radix UI imports and update package dependencies, fix Sidebar "group" references, add default value to plan picker to preselect a plan
This commit is contained in:
Giancarlo Buomprisco
2025-07-11 16:57:27 +07:00
committed by GitHub
parent 1d734e6818
commit 50337298fd
72 changed files with 1902 additions and 1263 deletions

View File

@@ -8,13 +8,13 @@
"format": "prettier --check --write \"**/*.{js,cjs,mjs,ts,tsx,md,json}\""
},
"dependencies": {
"@ai-sdk/openai": "^1.3.22",
"@ai-sdk/openai": "^1.3.23",
"@hookform/resolvers": "^5.1.1",
"@tanstack/react-query": "5.81.2",
"ai": "4.3.16",
"lucide-react": "^0.523.0",
"next": "15.3.4",
"nodemailer": "^7.0.3",
"@tanstack/react-query": "5.82.0",
"ai": "4.3.17",
"lucide-react": "^0.525.0",
"next": "15.3.5",
"nodemailer": "^7.0.5",
"react": "19.1.0",
"react-dom": "19.1.0",
"rxjs": "^7.8.2"
@@ -25,18 +25,18 @@
"@kit/shared": "workspace:*",
"@kit/tsconfig": "workspace:*",
"@kit/ui": "workspace:*",
"@tailwindcss/postcss": "^4.1.10",
"@types/node": "^24.0.4",
"@tailwindcss/postcss": "^4.1.11",
"@types/node": "^24.0.13",
"@types/nodemailer": "6.4.17",
"@types/react": "19.1.8",
"@types/react-dom": "19.1.6",
"babel-plugin-react-compiler": "19.1.0-rc.2",
"pino-pretty": "^13.0.0",
"react-hook-form": "^7.58.1",
"tailwindcss": "4.1.10",
"react-hook-form": "^7.60.0",
"tailwindcss": "4.1.11",
"tailwindcss-animate": "^1.0.7",
"typescript": "^5.8.3",
"zod": "^3.25.67"
"zod": "^3.25.74"
},
"prettier": "@kit/prettier-config",
"browserslist": [

View File

@@ -12,9 +12,9 @@
"author": "",
"license": "ISC",
"devDependencies": {
"@playwright/test": "^1.53.1",
"@types/node": "^24.0.4",
"dotenv": "16.5.0",
"@playwright/test": "^1.54.0",
"@types/node": "^24.0.13",
"dotenv": "17.2.0",
"node-html-parser": "^7.0.1",
"totp-generator": "^1.0.0"
}

View File

@@ -35,7 +35,7 @@ export function HomeSidebar(props: HomeSidebarProps) {
fallback={
<AppLogo
className={cn(
'p-2 group-data-[minimized=true]:max-w-full group-data-[minimized=true]:py-0',
'p-2 group-data-[minimized=true]/sidebar:max-w-full group-data-[minimized=true]/sidebar:py-0',
)}
/>
}
@@ -43,7 +43,7 @@ export function HomeSidebar(props: HomeSidebarProps) {
<HomeAccountSelector userId={user.id} accounts={accounts} />
</If>
<div className={'group-data-[minimized=true]:hidden'}>
<div className={'group-data-[minimized=true]/sidebar:hidden'}>
<UserNotifications userId={user.id} />
</div>
</div>

View File

@@ -58,7 +58,7 @@ function SidebarContainer(props: {
accounts={accounts}
/>
<div className={'group-data-[minimized=true]:hidden'}>
<div className={'group-data-[minimized=true]/sidebar:hidden'}>
<TeamAccountNotifications
userId={userId}
accountId={props.accountId}

View File

@@ -61,7 +61,7 @@ export function RootProviders({
<ReactQueryProvider>
<I18nProvider settings={i18nSettings} resolver={i18nResolver}>
<CaptchaProvider>
<CaptchaTokenSetter siteKey={captchaSiteKey} />
<CaptchaTokenSetter siteKey={captchaSiteKey} nonce={nonce} />
<AuthProvider>
<ThemeProvider

View File

@@ -54,39 +54,39 @@
"@makerkit/data-loader-supabase-core": "^0.0.10",
"@makerkit/data-loader-supabase-nextjs": "^1.2.5",
"@marsidev/react-turnstile": "^1.1.0",
"@nosecone/next": "1.0.0-beta.8",
"@nosecone/next": "1.0.0-beta.9",
"@radix-ui/react-icons": "^1.3.2",
"@supabase/supabase-js": "2.50.2",
"@tanstack/react-query": "5.81.2",
"@supabase/supabase-js": "2.50.5",
"@tanstack/react-query": "5.82.0",
"@tanstack/react-table": "^8.21.3",
"date-fns": "^4.1.0",
"lucide-react": "^0.523.0",
"next": "15.3.4",
"lucide-react": "^0.525.0",
"next": "15.3.5",
"next-sitemap": "^4.2.3",
"next-themes": "0.4.6",
"react": "19.1.0",
"react-dom": "19.1.0",
"react-hook-form": "^7.58.1",
"react-i18next": "^15.5.3",
"react-hook-form": "^7.60.0",
"react-i18next": "^15.6.0",
"recharts": "2.15.3",
"tailwind-merge": "^3.3.1",
"zod": "^3.25.67"
"zod": "^3.25.74"
},
"devDependencies": {
"@kit/eslint-config": "workspace:*",
"@kit/prettier-config": "workspace:*",
"@kit/tsconfig": "workspace:*",
"@next/bundle-analyzer": "15.3.4",
"@tailwindcss/postcss": "^4.1.10",
"@types/node": "^24.0.4",
"@next/bundle-analyzer": "15.3.5",
"@tailwindcss/postcss": "^4.1.11",
"@types/node": "^24.0.13",
"@types/react": "19.1.8",
"@types/react-dom": "19.1.6",
"babel-plugin-react-compiler": "19.1.0-rc.2",
"cssnano": "^7.0.7",
"pino-pretty": "^13.0.0",
"prettier": "^3.6.1",
"supabase": "^2.26.9",
"tailwindcss": "4.1.10",
"prettier": "^3.6.2",
"supabase": "^2.30.4",
"tailwindcss": "4.1.11",
"tailwindcss-animate": "^1.0.7",
"typescript": "^5.8.3"
},

View File

@@ -48,7 +48,7 @@
"@manypkg/cli": "^0.24.0",
"@turbo/gen": "^2.5.4",
"cross-env": "^7.0.3",
"prettier": "^3.6.1",
"prettier": "^3.6.2",
"turbo": "2.5.4",
"typescript": "^5.8.3"
}

View File

@@ -16,7 +16,7 @@
"@kit/eslint-config": "workspace:*",
"@kit/prettier-config": "workspace:*",
"@kit/tsconfig": "workspace:*",
"@types/node": "^24.0.4"
"@types/node": "^24.0.13"
},
"typesVersions": {
"*": {

View File

@@ -21,7 +21,7 @@
"@kit/supabase": "workspace:*",
"@kit/tsconfig": "workspace:*",
"@kit/ui": "workspace:*",
"zod": "^3.25.67"
"zod": "^3.25.74"
},
"typesVersions": {
"*": {

View File

@@ -26,15 +26,15 @@
"@kit/supabase": "workspace:*",
"@kit/tsconfig": "workspace:*",
"@kit/ui": "workspace:*",
"@supabase/supabase-js": "2.50.2",
"@supabase/supabase-js": "2.50.5",
"@types/react": "19.1.8",
"date-fns": "^4.1.0",
"lucide-react": "^0.523.0",
"next": "15.3.4",
"lucide-react": "^0.525.0",
"next": "15.3.5",
"react": "19.1.0",
"react-hook-form": "^7.58.1",
"react-i18next": "^15.5.3",
"zod": "^3.25.67"
"react-hook-form": "^7.60.0",
"react-i18next": "^15.6.0",
"zod": "^3.25.74"
},
"typesVersions": {
"*": {

View File

@@ -45,6 +45,11 @@ export function PlanPicker(
onSubmit: (data: { planId: string; productId: string }) => void;
canStartTrial?: boolean;
pending?: boolean;
value?: {
interval: string;
planId: string;
productId: string;
};
}>,
) {
const { t } = useTranslation(`billing`);
@@ -81,9 +86,9 @@ export function PlanPicker(
),
),
defaultValues: {
interval: intervals[0],
planId: '',
productId: '',
interval: props.value?.interval ?? intervals[0],
planId: props.value?.planId ?? '',
productId: props.value?.productId ?? '',
},
});

View File

@@ -25,9 +25,9 @@
"@kit/tsconfig": "workspace:*",
"@kit/ui": "workspace:*",
"@types/react": "19.1.8",
"next": "15.3.4",
"next": "15.3.5",
"react": "19.1.0",
"zod": "^3.25.67"
"zod": "^3.25.74"
},
"typesVersions": {
"*": {

View File

@@ -17,7 +17,7 @@
"dependencies": {
"@stripe/react-stripe-js": "^3.7.0",
"@stripe/stripe-js": "^7.4.0",
"stripe": "^18.2.1"
"stripe": "^18.3.0"
},
"devDependencies": {
"@kit/billing": "workspace:*",
@@ -29,9 +29,9 @@
"@kit/ui": "workspace:*",
"@types/react": "19.1.8",
"date-fns": "^4.1.0",
"next": "15.3.4",
"next": "15.3.5",
"react": "19.1.0",
"zod": "^3.25.67"
"zod": "^3.25.74"
},
"typesVersions": {
"*": {

View File

@@ -2,7 +2,7 @@ import 'server-only';
import { StripeServerEnvSchema } from '../schema/stripe-server-env.schema';
const STRIPE_API_VERSION = '2025-05-28.basil';
const STRIPE_API_VERSION = '2025-06-30.basil';
/**
* @description returns a Stripe instance

View File

@@ -20,7 +20,7 @@
"@kit/shared": "workspace:*",
"@kit/tsconfig": "workspace:*",
"@kit/wordpress": "workspace:*",
"@types/node": "^24.0.4"
"@types/node": "^24.0.13"
},
"typesVersions": {
"*": {

View File

@@ -26,10 +26,10 @@
"@kit/prettier-config": "workspace:*",
"@kit/tsconfig": "workspace:*",
"@kit/ui": "workspace:*",
"@types/node": "^24.0.4",
"@types/node": "^24.0.13",
"@types/react": "19.1.8",
"react": "19.1.0",
"zod": "^3.25.67"
"zod": "^3.25.74"
},
"typesVersions": {
"*": {

View File

@@ -20,9 +20,9 @@
"@kit/prettier-config": "workspace:*",
"@kit/tsconfig": "workspace:*",
"@kit/ui": "workspace:*",
"@types/node": "^24.0.4",
"@types/node": "^24.0.13",
"@types/react": "19.1.8",
"wp-types": "^4.68.0"
"wp-types": "^4.68.1"
},
"typesVersions": {
"*": {

View File

@@ -22,8 +22,8 @@
"@kit/supabase": "workspace:*",
"@kit/team-accounts": "workspace:*",
"@kit/tsconfig": "workspace:*",
"@supabase/supabase-js": "2.50.2",
"zod": "^3.25.67"
"@supabase/supabase-js": "2.50.5",
"zod": "^3.25.74"
},
"typesVersions": {
"*": {

View File

@@ -13,7 +13,7 @@
".": "./src/index.ts"
},
"dependencies": {
"@react-email/components": "0.1.1"
"@react-email/components": "0.2.0"
},
"devDependencies": {
"@kit/eslint-config": "workspace:*",

View File

@@ -34,18 +34,18 @@
"@kit/tsconfig": "workspace:*",
"@kit/ui": "workspace:*",
"@radix-ui/react-icons": "^1.3.2",
"@supabase/supabase-js": "2.50.2",
"@tanstack/react-query": "5.81.2",
"@supabase/supabase-js": "2.50.5",
"@tanstack/react-query": "5.82.0",
"@types/react": "19.1.8",
"@types/react-dom": "19.1.6",
"lucide-react": "^0.523.0",
"next": "15.3.4",
"lucide-react": "^0.525.0",
"next": "15.3.5",
"next-themes": "0.4.6",
"react": "19.1.0",
"react-dom": "19.1.0",
"react-hook-form": "^7.58.1",
"react-i18next": "^15.5.3",
"zod": "^3.25.67"
"react-hook-form": "^7.60.0",
"react-i18next": "^15.6.0",
"zod": "^3.25.74"
},
"prettier": "@kit/prettier-config",
"typesVersions": {

View File

@@ -91,7 +91,7 @@ export function PersonalAccountDropdown({
aria-label="Open your profile menu"
data-test={'account-dropdown-trigger'}
className={cn(
'animate-in group/trigger fade-in focus:outline-primary flex cursor-pointer items-center group-data-[minimized=true]:px-0',
'animate-in group/trigger fade-in focus:outline-primary flex cursor-pointer items-center group-data-[minimized=true]/sidebar:px-0',
className ?? '',
{
['active:bg-secondary/50 items-center gap-4 rounded-md' +
@@ -112,7 +112,7 @@ export function PersonalAccountDropdown({
<If condition={showProfileName}>
<div
className={
'fade-in animate-in flex w-full flex-col truncate text-left group-data-[minimized=true]:hidden'
'fade-in animate-in flex w-full flex-col truncate text-left group-data-[minimized=true]/sidebar:hidden'
}
>
<span
@@ -132,7 +132,7 @@ export function PersonalAccountDropdown({
<ChevronsUpDown
className={
'text-muted-foreground mr-1 h-8 group-data-[minimized=true]:hidden'
'text-muted-foreground mr-1 h-8 group-data-[minimized=true]/sidebar:hidden'
}
/>
</If>

View File

@@ -2,6 +2,7 @@ import { useCallback } from 'react';
import { useQuery, useQueryClient } from '@tanstack/react-query';
import { Json } from '@kit/supabase/database';
import { useSupabase } from '@kit/supabase/hooks/use-supabase';
export function usePersonalAccountData(
@@ -10,6 +11,7 @@ export function usePersonalAccountData(
id: string | null;
name: string | null;
picture_url: string | null;
public_data?: Json;
},
) {
const client = useSupabase();
@@ -26,7 +28,8 @@ export function usePersonalAccountData(
`
id,
name,
picture_url
picture_url,
public_data
`,
)
.eq('primary_owner_user_id', userId)
@@ -51,6 +54,7 @@ export function usePersonalAccountData(
id: partialAccount.id,
name: partialAccount.name,
picture_url: partialAccount.picture_url,
public_data: partialAccount.public_data,
}
: undefined,
});

View File

@@ -20,16 +20,16 @@
"@kit/ui": "workspace:*",
"@makerkit/data-loader-supabase-core": "^0.0.10",
"@makerkit/data-loader-supabase-nextjs": "^1.2.5",
"@supabase/supabase-js": "2.50.2",
"@tanstack/react-query": "5.81.2",
"@supabase/supabase-js": "2.50.5",
"@tanstack/react-query": "5.82.0",
"@tanstack/react-table": "^8.21.3",
"@types/react": "19.1.8",
"lucide-react": "^0.523.0",
"next": "15.3.4",
"lucide-react": "^0.525.0",
"next": "15.3.5",
"react": "19.1.0",
"react-dom": "19.1.0",
"react-hook-form": "^7.58.1",
"zod": "^3.25.67"
"react-hook-form": "^7.60.0",
"zod": "^3.25.74"
},
"exports": {
".": "./src/index.ts",

View File

@@ -29,15 +29,15 @@
"@kit/ui": "workspace:*",
"@marsidev/react-turnstile": "^1.1.0",
"@radix-ui/react-icons": "^1.3.2",
"@supabase/supabase-js": "2.50.2",
"@tanstack/react-query": "5.81.2",
"@supabase/supabase-js": "2.50.5",
"@tanstack/react-query": "5.82.0",
"@types/react": "19.1.8",
"lucide-react": "^0.523.0",
"next": "15.3.4",
"react-hook-form": "^7.58.1",
"react-i18next": "^15.5.3",
"sonner": "^2.0.5",
"zod": "^3.25.67"
"lucide-react": "^0.525.0",
"next": "15.3.5",
"react-hook-form": "^7.60.0",
"react-i18next": "^15.6.0",
"sonner": "^2.0.6",
"zod": "^3.25.74"
},
"prettier": "@kit/prettier-config",
"typesVersions": {

View File

@@ -9,6 +9,7 @@ import { Captcha } from './captcha-provider';
export function CaptchaTokenSetter(props: {
siteKey: string | undefined;
options?: TurnstileProps;
nonce?: string;
}) {
const { setToken, setInstance } = useContext(Captcha);
@@ -31,6 +32,9 @@ export function CaptchaTokenSetter(props: {
}}
siteKey={props.siteKey}
onSuccess={setToken}
scriptOptions={{
nonce: props.nonce,
}}
{...options}
/>
);

View File

@@ -19,13 +19,13 @@
"@kit/supabase": "workspace:*",
"@kit/tsconfig": "workspace:*",
"@kit/ui": "workspace:*",
"@supabase/supabase-js": "2.50.2",
"@tanstack/react-query": "5.81.2",
"@supabase/supabase-js": "2.50.5",
"@tanstack/react-query": "5.82.0",
"@types/react": "19.1.8",
"lucide-react": "^0.523.0",
"lucide-react": "^0.525.0",
"react": "19.1.0",
"react-dom": "19.1.0",
"react-i18next": "^15.5.3"
"react-i18next": "^15.6.0"
},
"prettier": "@kit/prettier-config",
"typesVersions": {

View File

@@ -32,20 +32,20 @@
"@kit/supabase": "workspace:*",
"@kit/tsconfig": "workspace:*",
"@kit/ui": "workspace:*",
"@supabase/supabase-js": "2.50.2",
"@tanstack/react-query": "5.81.2",
"@supabase/supabase-js": "2.50.5",
"@tanstack/react-query": "5.82.0",
"@tanstack/react-table": "^8.21.3",
"@types/react": "19.1.8",
"@types/react-dom": "19.1.6",
"class-variance-authority": "^0.7.1",
"date-fns": "^4.1.0",
"lucide-react": "^0.523.0",
"next": "15.3.4",
"lucide-react": "^0.525.0",
"next": "15.3.5",
"react": "19.1.0",
"react-dom": "19.1.0",
"react-hook-form": "^7.58.1",
"react-i18next": "^15.5.3",
"zod": "^3.25.67"
"react-hook-form": "^7.60.0",
"react-i18next": "^15.6.0",
"zod": "^3.25.74"
},
"prettier": "@kit/prettier-config",
"typesVersions": {

View File

@@ -20,14 +20,14 @@
"@kit/prettier-config": "workspace:*",
"@kit/shared": "workspace:*",
"@kit/tsconfig": "workspace:*",
"@tanstack/react-query": "5.81.2",
"next": "15.3.4",
"@tanstack/react-query": "5.82.0",
"next": "15.3.5",
"react": "19.1.0",
"react-dom": "19.1.0",
"react-i18next": "^15.5.3"
"react-i18next": "^15.6.0"
},
"dependencies": {
"i18next": "25.2.1",
"i18next": "25.3.2",
"i18next-browser-languagedetector": "8.2.0",
"i18next-resources-to-backend": "^1.2.1"
},

View File

@@ -20,8 +20,8 @@
"@kit/resend": "workspace:*",
"@kit/shared": "workspace:*",
"@kit/tsconfig": "workspace:*",
"@types/node": "^24.0.4",
"zod": "^3.25.67"
"@types/node": "^24.0.13",
"zod": "^3.25.74"
},
"typesVersions": {
"*": {

View File

@@ -13,7 +13,7 @@
".": "./src/index.ts"
},
"dependencies": {
"nodemailer": "^7.0.3"
"nodemailer": "^7.0.5"
},
"devDependencies": {
"@kit/eslint-config": "workspace:*",
@@ -21,7 +21,7 @@
"@kit/prettier-config": "workspace:*",
"@kit/tsconfig": "workspace:*",
"@types/nodemailer": "6.4.17",
"zod": "^3.25.67"
"zod": "^3.25.74"
},
"typesVersions": {
"*": {

View File

@@ -17,8 +17,8 @@
"@kit/mailers-shared": "workspace:*",
"@kit/prettier-config": "workspace:*",
"@kit/tsconfig": "workspace:*",
"@types/node": "^24.0.4",
"zod": "^3.25.67"
"@types/node": "^24.0.13",
"zod": "^3.25.74"
},
"typesVersions": {
"*": {

View File

@@ -16,7 +16,7 @@
"@kit/eslint-config": "workspace:*",
"@kit/prettier-config": "workspace:*",
"@kit/tsconfig": "workspace:*",
"zod": "^3.25.67"
"zod": "^3.25.74"
},
"typesVersions": {
"*": {

View File

@@ -26,7 +26,7 @@
"@kit/tsconfig": "workspace:*",
"@types/react": "19.1.8",
"react": "19.1.0",
"zod": "^3.25.67"
"zod": "^3.25.74"
},
"typesVersions": {
"*": {

View File

@@ -26,7 +26,7 @@
"@kit/tsconfig": "workspace:*",
"@types/react": "19.1.8",
"react": "19.1.0",
"zod": "^3.25.67"
"zod": "^3.25.74"
},
"typesVersions": {
"*": {

View File

@@ -16,7 +16,7 @@
"./config/server": "./src/sentry.client.server.ts"
},
"dependencies": {
"@sentry/nextjs": "^9.32.0",
"@sentry/nextjs": "^9.37.0",
"import-in-the-middle": "1.14.2"
},
"devDependencies": {

View File

@@ -20,9 +20,9 @@
"@kit/prettier-config": "workspace:*",
"@kit/supabase": "workspace:*",
"@kit/tsconfig": "workspace:*",
"@supabase/supabase-js": "2.50.2",
"next": "15.3.4",
"zod": "^3.25.67"
"@supabase/supabase-js": "2.50.5",
"next": "15.3.5",
"zod": "^3.25.74"
},
"typesVersions": {
"*": {

View File

@@ -25,13 +25,13 @@
"@kit/tsconfig": "workspace:*",
"@kit/ui": "workspace:*",
"@radix-ui/react-icons": "^1.3.2",
"@supabase/supabase-js": "2.50.2",
"@supabase/supabase-js": "2.50.5",
"@types/react": "19.1.8",
"@types/react-dom": "19.1.6",
"react": "19.1.0",
"react-dom": "19.1.0",
"react-hook-form": "^7.58.1",
"zod": "^3.25.67"
"react-hook-form": "^7.60.0",
"zod": "^3.25.74"
},
"typesVersions": {
"*": {

View File

@@ -25,13 +25,13 @@
"@kit/prettier-config": "workspace:*",
"@kit/tsconfig": "workspace:*",
"@supabase/ssr": "^0.6.1",
"@supabase/supabase-js": "2.50.2",
"@tanstack/react-query": "5.81.2",
"@supabase/supabase-js": "2.50.5",
"@tanstack/react-query": "5.82.0",
"@types/react": "19.1.8",
"next": "15.3.4",
"next": "15.3.5",
"react": "19.1.0",
"server-only": "^0.0.1",
"zod": "^3.25.67"
"zod": "^3.25.74"
},
"typesVersions": {
"*": {

View File

@@ -10,30 +10,12 @@
},
"dependencies": {
"@hookform/resolvers": "^5.1.1",
"@radix-ui/react-accordion": "1.2.11",
"@radix-ui/react-alert-dialog": "^1.1.14",
"@radix-ui/react-avatar": "^1.1.10",
"@radix-ui/react-checkbox": "^1.3.2",
"@radix-ui/react-collapsible": "1.1.11",
"@radix-ui/react-dialog": "^1.1.14",
"@radix-ui/react-dropdown-menu": "^2.1.15",
"@radix-ui/react-label": "^2.1.7",
"@radix-ui/react-navigation-menu": "^1.2.13",
"@radix-ui/react-popover": "^1.1.14",
"@radix-ui/react-progress": "^1.1.7",
"@radix-ui/react-radio-group": "^1.3.7",
"@radix-ui/react-scroll-area": "^1.2.9",
"@radix-ui/react-select": "^2.2.5",
"@radix-ui/react-separator": "^1.1.7",
"@radix-ui/react-slot": "1.2.3",
"@radix-ui/react-switch": "^1.2.5",
"@radix-ui/react-tabs": "^1.1.12",
"@radix-ui/react-toast": "^1.2.14",
"@radix-ui/react-tooltip": "1.2.7",
"@radix-ui/react-icons": "^1.3.2",
"clsx": "^2.1.1",
"cmdk": "1.1.1",
"input-otp": "1.4.2",
"lucide-react": "^0.523.0",
"lucide-react": "^0.525.0",
"radix-ui": "1.4.2",
"react-dropzone": "^14.3.8",
"react-top-loading-bar": "3.0.2",
"recharts": "2.15.3",
@@ -43,26 +25,25 @@
"@kit/eslint-config": "workspace:*",
"@kit/prettier-config": "workspace:*",
"@kit/tsconfig": "workspace:*",
"@radix-ui/react-icons": "^1.3.2",
"@supabase/supabase-js": "2.50.2",
"@tanstack/react-query": "5.81.2",
"@supabase/supabase-js": "2.50.5",
"@tanstack/react-query": "5.82.0",
"@tanstack/react-table": "^8.21.3",
"@types/react": "19.1.8",
"@types/react-dom": "19.1.6",
"class-variance-authority": "^0.7.1",
"date-fns": "^4.1.0",
"eslint": "^9.29.0",
"next": "15.3.4",
"eslint": "^9.30.1",
"next": "15.3.5",
"next-themes": "0.4.6",
"prettier": "^3.6.1",
"react-day-picker": "^9.7.0",
"react-hook-form": "^7.58.1",
"react-i18next": "^15.5.3",
"sonner": "^2.0.5",
"tailwindcss": "4.1.10",
"prettier": "^3.6.2",
"react-day-picker": "^9.8.0",
"react-hook-form": "^7.60.0",
"react-i18next": "^15.6.0",
"sonner": "^2.0.6",
"tailwindcss": "4.1.11",
"tailwindcss-animate": "^1.0.7",
"typescript": "^5.8.3",
"zod": "^3.25.67"
"zod": "^3.25.74"
},
"prettier": "@kit/prettier-config",
"imports": {

View File

@@ -1,7 +1,7 @@
import * as React from 'react';
import { Slot, Slottable } from '@radix-ui/react-slot';
import { ChevronRight } from 'lucide-react';
import { Slot } from 'radix-ui';
import { cn } from '../lib/utils';
@@ -12,7 +12,7 @@ export const CardButton: React.FC<
children: React.ReactNode;
} & React.ButtonHTMLAttributes<HTMLButtonElement>
> = function CardButton({ className, asChild, ...props }) {
const Comp = asChild ? Slot : 'button';
const Comp = asChild ? Slot.Root : 'button';
return (
<Comp
@@ -22,7 +22,7 @@ export const CardButton: React.FC<
)}
{...props}
>
<Slottable>{props.children}</Slottable>
<Slot.Slottable>{props.children}</Slot.Slottable>
</Comp>
);
};
@@ -33,7 +33,7 @@ export const CardButtonTitle: React.FC<
children: React.ReactNode;
} & React.HTMLAttributes<HTMLDivElement>
> = function CardButtonTitle({ className, asChild, ...props }) {
const Comp = asChild ? Slot : 'div';
const Comp = asChild ? Slot.Root : 'div';
return (
<Comp
@@ -43,7 +43,7 @@ export const CardButtonTitle: React.FC<
)}
{...props}
>
<Slottable>{props.children}</Slottable>
<Slot.Slottable>{props.children}</Slot.Slottable>
</Comp>
);
};
@@ -60,11 +60,11 @@ export const CardButtonHeader: React.FC<
displayArrow = true,
...props
}) {
const Comp = asChild ? Slot : 'div';
const Comp = asChild ? Slot.Root : 'div';
return (
<Comp className={cn(className, 'p-4')} {...props}>
<Slottable>
<Slot.Slottable>
{props.children}
<ChevronRight
@@ -75,7 +75,7 @@ export const CardButtonHeader: React.FC<
},
)}
/>
</Slottable>
</Slot.Slottable>
</Comp>
);
};
@@ -86,11 +86,11 @@ export const CardButtonContent: React.FC<
children: React.ReactNode;
} & React.HTMLAttributes<HTMLDivElement>
> = function CardButtonContent({ className, asChild, ...props }) {
const Comp = asChild ? Slot : 'div';
const Comp = asChild ? Slot.Root : 'div';
return (
<Comp className={cn(className, 'flex flex-1 flex-col px-4')} {...props}>
<Slottable>{props.children}</Slottable>
<Slot.Slottable>{props.children}</Slot.Slottable>
</Comp>
);
};
@@ -101,7 +101,7 @@ export const CardButtonFooter: React.FC<
children: React.ReactNode;
} & React.HTMLAttributes<HTMLDivElement>
> = function CardButtonFooter({ className, asChild, ...props }) {
const Comp = asChild ? Slot : 'div';
const Comp = asChild ? Slot.Root : 'div';
return (
<Comp
@@ -111,7 +111,7 @@ export const CardButtonFooter: React.FC<
)}
{...props}
>
<Slottable>{props.children}</Slottable>
<Slot.Slottable>{props.children}</Slot.Slottable>
</Comp>
);
};

View File

@@ -2,7 +2,7 @@
import { useCallback, useMemo, useState } from 'react';
import * as DialogPrimitive from '@radix-ui/react-dialog';
import { Dialog as DialogPrimitive } from 'radix-ui';
import { Button } from '../shadcn/button';
import { Heading } from '../shadcn/heading';

View File

@@ -1,4 +1,4 @@
import { Slot, Slottable } from '@radix-ui/react-slot';
import { Slot } from 'radix-ui';
import { cn } from '../../lib/utils';
@@ -7,7 +7,7 @@ export const GradientSecondaryText: React.FC<
asChild?: boolean;
}
> = function GradientSecondaryTextComponent({ className, ...props }) {
const Comp = props.asChild ? Slot : 'span';
const Comp = props.asChild ? Slot.Root : 'span';
return (
<Comp
@@ -17,7 +17,7 @@ export const GradientSecondaryText: React.FC<
)}
{...props}
>
<Slottable>{props.children}</Slottable>
<Slot.Slottable>{props.children}</Slot.Slottable>
</Comp>
);
};

View File

@@ -1,4 +1,4 @@
import { Slot, Slottable } from '@radix-ui/react-slot';
import { Slot } from 'radix-ui';
import { cn } from '../../lib/utils';
@@ -7,7 +7,7 @@ export const HeroTitle: React.FC<
asChild?: boolean;
}
> = function HeroTitleComponent({ children, className, ...props }) {
const Comp = props.asChild ? Slot : 'h1';
const Comp = props.asChild ? Slot.Root : 'h1';
return (
<Comp
@@ -17,7 +17,7 @@ export const HeroTitle: React.FC<
)}
{...props}
>
<Slottable>{children}</Slottable>
<Slot.Slottable>{children}</Slot.Slottable>
</Comp>
);
};

View File

@@ -1,4 +1,4 @@
import { Slot, Slottable } from '@radix-ui/react-slot';
import { Slot } from 'radix-ui';
import { cn } from '../../lib/utils';
import { GradientSecondaryText } from './gradient-secondary-text';
@@ -9,7 +9,7 @@ export const Pill: React.FC<
asChild?: boolean;
}
> = function PillComponent({ className, asChild, ...props }) {
const Comp = asChild ? Slot : 'h3';
const Comp = asChild ? Slot.Root : 'h3';
return (
<Comp
@@ -28,13 +28,13 @@ export const Pill: React.FC<
{props.label}
</span>
)}
<Slottable>
<Slot.Slottable>
<GradientSecondaryText
className={'flex items-center gap-x-2 font-semibold tracking-tight'}
>
{props.children}
</GradientSecondaryText>
</Slottable>
</Slot.Slottable>
</Comp>
);
};
@@ -44,7 +44,7 @@ export const PillActionButton: React.FC<
asChild?: boolean;
}
> = ({ asChild, ...props }) => {
const Comp = asChild ? Slot : 'button';
const Comp = asChild ? Slot.Root : 'button';
return (
<Comp

View File

@@ -11,8 +11,8 @@ import React, {
useState,
} from 'react';
import { Slot, Slottable } from '@radix-ui/react-slot';
import { useMutation } from '@tanstack/react-query';
import { Slot } from 'radix-ui';
import { Path, UseFormReturn } from 'react-hook-form';
import { z } from 'zod';
@@ -136,11 +136,11 @@ export const MultiStepFormStep: React.FC<
} & HTMLProps<HTMLDivElement>
>
> = function MultiStepFormStep({ children, asChild, ...props }) {
const Cmp = asChild ? Slot : 'div';
const Cmp = asChild ? Slot.Root : 'div';
return (
<Cmp {...props}>
<Slottable>{children}</Slottable>
<Slot.Slottable>{children}</Slot.Slottable>
</Cmp>
);
};
@@ -331,11 +331,11 @@ export const MultiStepFormHeader: React.FC<
} & HTMLProps<HTMLDivElement>
>
> = function MultiStepFormHeader({ children, asChild, ...props }) {
const Cmp = asChild ? Slot : 'div';
const Cmp = asChild ? Slot.Root : 'div';
return (
<Cmp {...props}>
<Slottable>{children}</Slottable>
<Slot.Slottable>{children}</Slot.Slottable>
</Cmp>
);
};
@@ -347,11 +347,11 @@ export const MultiStepFormFooter: React.FC<
} & HTMLProps<HTMLDivElement>
>
> = function MultiStepFormFooter({ children, asChild, ...props }) {
const Cmp = asChild ? Slot : 'div';
const Cmp = asChild ? Slot.Root : 'div';
return (
<Cmp {...props}>
<Slottable>{children}</Slottable>
<Slot.Slottable>{children}</Slot.Slottable>
</Cmp>
);
};

View File

@@ -2,8 +2,8 @@
import * as React from 'react';
import * as AccordionPrimitive from '@radix-ui/react-accordion';
import { ChevronDownIcon } from '@radix-ui/react-icons';
import { Accordion as AccordionPrimitive } from 'radix-ui';
import { cn } from '../lib/utils';

View File

@@ -2,7 +2,7 @@
import * as React from 'react';
import * as AlertDialogPrimitive from '@radix-ui/react-alert-dialog';
import { AlertDialog as AlertDialogPrimitive } from 'radix-ui';
import { cn } from '../lib/utils';
import { buttonVariants } from './button';

View File

@@ -2,7 +2,7 @@
import * as React from 'react';
import * as AvatarPrimitive from '@radix-ui/react-avatar';
import { Avatar as AvatarPrimitive } from 'radix-ui';
import { cn } from '../lib/utils';

View File

@@ -1,7 +1,7 @@
import * as React from 'react';
import { ChevronRightIcon, DotsHorizontalIcon } from '@radix-ui/react-icons';
import { Slot } from '@radix-ui/react-slot';
import { Slot } from 'radix-ui';
import { cn } from '../lib/utils';
@@ -42,7 +42,7 @@ const BreadcrumbLink: React.FC<
asChild?: boolean;
}
> = ({ asChild, className, ...props }) => {
const Comp = asChild ? Slot : 'a';
const Comp = asChild ? Slot.Root : 'a';
return (
<Comp

View File

@@ -1,8 +1,8 @@
import * as React from 'react';
import { Slot } from '@radix-ui/react-slot';
import { cva } from 'class-variance-authority';
import type { VariantProps } from 'class-variance-authority';
import { Slot } from 'radix-ui';
import { cn } from '../lib/utils';
@@ -49,7 +49,7 @@ const Button: React.FC<ButtonProps> = ({
asChild = false,
...props
}) => {
const Comp = asChild ? Slot : 'button';
const Comp = asChild ? Slot.Root : 'button';
return (
<Comp

View File

@@ -2,8 +2,8 @@
import * as React from 'react';
import * as CheckboxPrimitive from '@radix-ui/react-checkbox';
import { CheckIcon } from '@radix-ui/react-icons';
import { Checkbox as CheckboxPrimitive } from 'radix-ui';
import { cn } from '../lib/utils';

View File

@@ -1,6 +1,6 @@
'use client';
import * as CollapsiblePrimitive from '@radix-ui/react-collapsible';
import { Collapsible as CollapsiblePrimitive } from 'radix-ui';
const Collapsible = CollapsiblePrimitive.Root;

View File

@@ -2,7 +2,6 @@
import * as React from 'react';
import { type DialogProps } from '@radix-ui/react-dialog';
import { MagnifyingGlassIcon } from '@radix-ui/react-icons';
import { Command as CommandPrimitive } from 'cmdk';
@@ -22,7 +21,7 @@ const Command: React.FC<
);
Command.displayName = CommandPrimitive.displayName;
type CommandDialogProps = DialogProps;
type CommandDialogProps = React.ComponentProps<typeof Dialog>;
const CommandDialog = ({ children, ...props }: CommandDialogProps) => {
return (

View File

@@ -2,8 +2,8 @@
import * as React from 'react';
import * as DialogPrimitive from '@radix-ui/react-dialog';
import { Cross2Icon } from '@radix-ui/react-icons';
import { Dialog as DialogPrimitive } from 'radix-ui';
import { cn } from '../lib/utils';

View File

@@ -2,12 +2,12 @@
import * as React from 'react';
import * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu';
import {
CheckIcon,
ChevronRightIcon,
DotFilledIcon,
} from '@radix-ui/react-icons';
import { DropdownMenu as DropdownMenuPrimitive } from 'radix-ui';
import { cn } from '../lib/utils';

View File

@@ -2,8 +2,8 @@
import * as React from 'react';
import type * as LabelPrimitive from '@radix-ui/react-label';
import { Slot } from '@radix-ui/react-slot';
import { Label as LabelPrimitive } from 'radix-ui';
import { Slot } from 'radix-ui';
import type { ControllerProps, FieldPath, FieldValues } from 'react-hook-form';
import { Controller, FormProvider, useFormContext } from 'react-hook-form';
@@ -97,14 +97,14 @@ const FormLabel: React.FC<
};
FormLabel.displayName = 'FormLabel';
const FormControl: React.FC<React.ComponentPropsWithoutRef<typeof Slot>> = ({
...props
}) => {
const FormControl: React.FC<
React.ComponentPropsWithoutRef<typeof Slot.Root>
> = ({ ...props }) => {
const { error, formItemId, formDescriptionId, formMessageId } =
useFormField();
return (
<Slot
<Slot.Root
id={formItemId}
aria-describedby={
!error

View File

@@ -2,8 +2,8 @@
import * as React from 'react';
import * as LabelPrimitive from '@radix-ui/react-label';
import { type VariantProps, cva } from 'class-variance-authority';
import { Label as LabelPrimitive } from 'radix-ui';
import { cn } from '../lib/utils';

View File

@@ -3,8 +3,8 @@
import * as React from 'react';
import { ChevronDownIcon } from '@radix-ui/react-icons';
import * as NavigationMenuPrimitive from '@radix-ui/react-navigation-menu';
import { cva } from 'class-variance-authority';
import { NavigationMenu as NavigationMenuPrimitive } from 'radix-ui';
import { cn } from '../lib/utils';

View File

@@ -2,7 +2,7 @@
import * as React from 'react';
import * as PopoverPrimitive from '@radix-ui/react-popover';
import { Popover as PopoverPrimitive } from 'radix-ui';
import { cn } from '../lib/utils';

View File

@@ -2,7 +2,7 @@
import * as React from 'react';
import * as ProgressPrimitive from '@radix-ui/react-progress';
import { Progress as ProgressPrimitive } from 'radix-ui';
import { cn } from '../lib/utils';

View File

@@ -3,7 +3,7 @@
import * as React from 'react';
import { CheckIcon } from '@radix-ui/react-icons';
import * as RadioGroupPrimitive from '@radix-ui/react-radio-group';
import { RadioGroup as RadioGroupPrimitive } from 'radix-ui';
import { cn } from '../lib/utils';

View File

@@ -2,7 +2,7 @@
import * as React from 'react';
import * as ScrollAreaPrimitive from '@radix-ui/react-scroll-area';
import { ScrollArea as ScrollAreaPrimitive } from 'radix-ui';
import { cn } from '../lib/utils';

View File

@@ -8,7 +8,7 @@ import {
ChevronDownIcon,
ChevronUpIcon,
} from '@radix-ui/react-icons';
import * as SelectPrimitive from '@radix-ui/react-select';
import { Select as SelectPrimitive } from 'radix-ui';
import { cn } from '../lib/utils';

View File

@@ -2,7 +2,7 @@
import * as React from 'react';
import * as SeparatorPrimitive from '@radix-ui/react-separator';
import { Separator as SeparatorPrimitive } from 'radix-ui';
import { cn } from '../lib/utils';

View File

@@ -2,9 +2,9 @@
import * as React from 'react';
import * as SheetPrimitive from '@radix-ui/react-dialog';
import { Cross2Icon } from '@radix-ui/react-icons';
import { type VariantProps, cva } from 'class-variance-authority';
import { Dialog as SheetPrimitive } from 'radix-ui';
import { cn } from '../lib/utils';

View File

@@ -5,9 +5,9 @@ import * as React from 'react';
import Link from 'next/link';
import { usePathname } from 'next/navigation';
import { Slot } from '@radix-ui/react-slot';
import { VariantProps, cva } from 'class-variance-authority';
import { ChevronDown, PanelLeft } from 'lucide-react';
import { Slot } from 'radix-ui';
import { useTranslation } from 'react-i18next';
import { useIsMobile } from '../hooks/use-mobile';
@@ -149,26 +149,24 @@ const SidebarProvider: React.FC<
return (
<SidebarContext.Provider value={contextValue}>
<TooltipProvider delayDuration={0}>
<div
style={
{
'--sidebar-width': sidebarWidth,
'--sidebar-width-icon': SIDEBAR_WIDTH_ICON,
...style,
} as React.CSSProperties
}
data-minimized={!open}
className={cn(
'group text-sidebar-foreground has-data-[variant=inset]:bg-sidebar flex min-h-svh w-full',
className,
)}
ref={ref}
{...props}
>
{children}
</div>
</TooltipProvider>
<div
style={
{
'--sidebar-width': sidebarWidth,
'--sidebar-width-icon': SIDEBAR_WIDTH_ICON,
...style,
} as React.CSSProperties
}
data-minimized={!open}
className={cn(
'group/sidebar text-sidebar-foreground has-data-[variant=inset]:bg-sidebar flex min-h-svh w-full',
className,
)}
ref={ref}
{...props}
>
{children}
</div>
</SidebarContext.Provider>
);
};
@@ -464,7 +462,7 @@ SidebarGroup.displayName = 'SidebarGroup';
const SidebarGroupLabel: React.FC<
React.ComponentProps<'div'> & { asChild?: boolean }
> = ({ className, asChild = false, ...props }) => {
const Comp = asChild ? Slot : 'div';
const Comp = asChild ? Slot.Root : 'div';
return (
<Comp
@@ -483,7 +481,7 @@ SidebarGroupLabel.displayName = 'SidebarGroupLabel';
const SidebarGroupAction: React.FC<
React.ComponentProps<'button'> & { asChild?: boolean }
> = ({ className, asChild = false, ...props }) => {
const Comp = asChild ? Slot : 'button';
const Comp = asChild ? Slot.Root : 'button';
return (
<Comp
@@ -520,7 +518,7 @@ const SidebarMenu: React.FC<React.ComponentProps<'ul'>> = ({
<ul
data-sidebar="menu"
className={cn(
'flex w-full min-w-0 flex-col gap-1 group-data-[minimized=true]:items-center',
'flex w-full min-w-0 flex-col gap-1 group-data-[minimized=true]/sidebar:items-center',
className,
)}
{...props}
@@ -580,7 +578,7 @@ const SidebarMenuButton: React.FC<
className,
...props
}) => {
const Comp = asChild ? Slot : 'button';
const Comp = asChild ? Slot.Root : 'button';
const { isMobile, open } = useSidebar();
const { t } = useTranslation();
@@ -607,15 +605,17 @@ const SidebarMenuButton: React.FC<
}
return (
<Tooltip>
<TooltipTrigger asChild>{button}</TooltipTrigger>
<TooltipContent
side="right"
align="center"
hidden={isMobile || open}
{...tooltip}
/>
</Tooltip>
<TooltipProvider delayDuration={0}>
<Tooltip>
<TooltipTrigger asChild>{button}</TooltipTrigger>
<TooltipContent
side="right"
align="center"
hidden={isMobile || open}
{...tooltip}
/>
</Tooltip>
</TooltipProvider>
);
};
@@ -627,7 +627,7 @@ const SidebarMenuAction: React.FC<
showOnHover?: boolean;
}
> = ({ className, asChild = false, showOnHover = false, ...props }) => {
const Comp = asChild ? Slot : 'button';
const Comp = asChild ? Slot.Root : 'button';
return (
<Comp
@@ -735,7 +735,7 @@ const SidebarMenuSubButton: React.FC<
isActive?: boolean;
}
> = ({ asChild = false, size = 'md', isActive, className, ...props }) => {
const Comp = asChild ? Slot : 'a';
const Comp = asChild ? Slot.Root : 'a';
return (
<Comp

View File

@@ -2,7 +2,7 @@
import * as React from 'react';
import * as SwitchPrimitives from '@radix-ui/react-switch';
import { Switch as SwitchPrimitives } from 'radix-ui';
import { cn } from '../lib/utils';

View File

@@ -2,7 +2,7 @@
import * as React from 'react';
import * as TabsPrimitive from '@radix-ui/react-tabs';
import { Tabs as TabsPrimitive } from 'radix-ui';
import { cn } from '../lib/utils';

View File

@@ -2,7 +2,7 @@
import * as React from 'react';
import * as TooltipPrimitive from '@radix-ui/react-tooltip';
import { Tooltip as TooltipPrimitive } from 'radix-ui';
import { cn } from '../lib/utils';

2662
pnpm-lock.yaml generated

File diff suppressed because it is too large Load Diff

View File

@@ -13,16 +13,16 @@
"format": "prettier --check \"**/*.{js,json}\""
},
"dependencies": {
"@next/eslint-plugin-next": "15.3.4",
"@next/eslint-plugin-next": "15.3.5",
"@types/eslint": "9.6.1",
"eslint-config-next": "15.3.4",
"eslint-config-next": "15.3.5",
"eslint-config-turbo": "^2.5.4",
"typescript-eslint": "8.35.0"
"typescript-eslint": "8.36.0"
},
"devDependencies": {
"@kit/prettier-config": "workspace:*",
"@kit/tsconfig": "workspace:*",
"eslint": "^9.29.0",
"eslint": "^9.30.1",
"typescript": "^5.8.3"
},
"prettier": "@kit/prettier-config"

View File

@@ -10,8 +10,8 @@
},
"dependencies": {
"@trivago/prettier-plugin-sort-imports": "5.2.2",
"prettier": "^3.6.1",
"prettier-plugin-tailwindcss": "^0.6.13"
"prettier": "^3.6.2",
"prettier-plugin-tailwindcss": "^0.6.14"
},
"devDependencies": {
"@kit/tsconfig": "workspace:*",