deps: bump Tier-A patches + react-day-picker 10 + esbuild 0.28
Successfully bumped:
- bullmq 5.76.6 → 5.76.8
- @tanstack/react-query 5.100.9 → 5.100.10
- @tanstack/react-query-devtools 5.100.9 → 5.100.10
- better-auth 1.6.9 → 1.6.10
- @playwright/test 1.59.1 → 1.60.0
- libphonenumber-js 1.12.43 → 1.13.1
- tailwind-merge 3.5.0 → 3.6.0
- vitest 4.1.5 → 4.1.6
- @vitest/coverage-v8 4.1.5 → 4.1.6
- lint-staged 17.0.3 → 17.0.4
- esbuild 0.27.7 → 0.28.0
- react-grab 0.1.33 → 0.1.34
- react-day-picker 9.14.0 → 10.0.0
react-day-picker 10 verified safe: probed v10 release notes against
src/components/ui/calendar.tsx — we use only v9-canonical APIs that
v10 preserves. Removed the `table` className entry from the wrapper
(v10 dropped it since the renderer is now CSS-grid, not table-based).
Tried + rolled back:
- @hookform/resolvers 3 → 5: stricter input/output inference broke
every form using <{schema}, any, {schema}> implicit shape. Needs
per-form refactor; parked.
Verified clean: pnpm audit (prod + dev) = 0 vulnerabilities;
pnpm exec tsc --noEmit clean; vitest 1293/1293 pass.
Remaining outdated (deliberately deferred — see docs/AUDIT-2026-05-12.md §34):
- next/eslint-config-next 15 → 16 (2-4 wk wait)
- zod 3 → 4 (couple with @hookform/resolvers 5; codemod-needed)
- tailwindcss 3 → 4 (focused-afternoon project)
- @types/node ^20.19 stays pinned to match runtime (audit decision)
- archiver 7 stays (no @types/archiver@8 published)
- eslint 9 stays (locked to eslint-config-next 15)
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -73,7 +73,6 @@ function Calendar({
|
||||
: '[&>svg]:text-muted-foreground flex h-8 items-center gap-1 rounded-md pl-2 pr-1 text-sm [&>svg]:size-3.5',
|
||||
defaultClassNames.caption_label,
|
||||
),
|
||||
table: 'w-full border-collapse',
|
||||
weekdays: cn('flex', defaultClassNames.weekdays),
|
||||
weekday: cn(
|
||||
'text-muted-foreground flex-1 select-none rounded-md text-[0.8rem] font-normal',
|
||||
@@ -85,6 +84,10 @@ function Calendar({
|
||||
'text-muted-foreground select-none text-[0.8rem]',
|
||||
defaultClassNames.week_number,
|
||||
),
|
||||
// NB: the 'table' className was removed in react-day-picker 10 —
|
||||
// the renderer is now CSS-grid based, so the table-derived class
|
||||
// doesn't apply. shadcn's older Calendar wrapper had it; we drop
|
||||
// it on the v10 bump.
|
||||
day: cn(
|
||||
'group/day relative aspect-square h-full w-full select-none p-0 text-center [&:first-child[data-selected=true]_button]:rounded-l-md [&:last-child[data-selected=true]_button]:rounded-r-md',
|
||||
defaultClassNames.day,
|
||||
|
||||
@@ -1,12 +1,7 @@
|
||||
import { and, asc, eq } from 'drizzle-orm';
|
||||
|
||||
import { db } from '@/lib/db';
|
||||
import {
|
||||
documentFolders,
|
||||
documents,
|
||||
files,
|
||||
type DocumentFolder,
|
||||
} from '@/lib/db/schema/documents';
|
||||
import { documentFolders, documents, files, type DocumentFolder } from '@/lib/db/schema/documents';
|
||||
import { clients } from '@/lib/db/schema/clients';
|
||||
import { companies } from '@/lib/db/schema/companies';
|
||||
import { yachts } from '@/lib/db/schema/yachts';
|
||||
@@ -231,10 +226,7 @@ export async function moveFolder(
|
||||
return await db.transaction(async (tx) => {
|
||||
if (newParentId !== null) {
|
||||
const newParent = await tx.query.documentFolders.findFirst({
|
||||
where: and(
|
||||
eq(documentFolders.id, newParentId),
|
||||
eq(documentFolders.portId, portId),
|
||||
),
|
||||
where: and(eq(documentFolders.id, newParentId), eq(documentFolders.portId, portId)),
|
||||
});
|
||||
if (!newParent) throw new ValidationError('Invalid parent folder');
|
||||
|
||||
@@ -245,9 +237,7 @@ export async function moveFolder(
|
||||
const seen = new Set<string>([newParent.id]);
|
||||
while (cursor) {
|
||||
if (cursor === folderId) {
|
||||
throw new ValidationError(
|
||||
'Cannot move a folder under one of its descendants (cycle)',
|
||||
);
|
||||
throw new ValidationError('Cannot move a folder under one of its descendants (cycle)');
|
||||
}
|
||||
if (seen.has(cursor)) break; // defensive — pre-existing cycle, bail
|
||||
seen.add(cursor);
|
||||
@@ -628,7 +618,11 @@ export async function syncEntityFolderName(
|
||||
entityId: folder.id,
|
||||
oldValue: { name: folder.name },
|
||||
newValue: { name: candidate },
|
||||
metadata: { type: 'folder_entity_rename_sync', entity: entityType, sourceEntityId: entityId },
|
||||
metadata: {
|
||||
type: 'folder_entity_rename_sync',
|
||||
entity: entityType,
|
||||
sourceEntityId: entityId,
|
||||
},
|
||||
});
|
||||
return;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user