diff --git a/apps/cms/scripts/migrate.ts b/apps/cms/scripts/migrate.ts index 5d3a12c11e7..f0b0d17c9d6 100644 --- a/apps/cms/scripts/migrate.ts +++ b/apps/cms/scripts/migrate.ts @@ -1,4 +1,5 @@ import payload from 'payload' + // Use a minimal config for migrations to avoid importing the full app graph during build import payloadConfig from '../src/payload.migrate.config.ts' diff --git a/apps/cms/src/access/isAdmin.ts b/apps/cms/src/access/isAdmin.ts index 5e1261e26fb..cb8123e95fb 100644 --- a/apps/cms/src/access/isAdmin.ts +++ b/apps/cms/src/access/isAdmin.ts @@ -1,4 +1,5 @@ import type { AccessArgs, FieldAccess } from 'payload' + import type { User } from '../payload-types' type isAdmin = (args: AccessArgs) => boolean diff --git a/apps/cms/src/blocks/Banner/Component.tsx b/apps/cms/src/blocks/Banner/Component.tsx index c395d687801..ec5fd59dcac 100644 --- a/apps/cms/src/blocks/Banner/Component.tsx +++ b/apps/cms/src/blocks/Banner/Component.tsx @@ -1,8 +1,8 @@ -import type { BannerBlock as BannerBlockProps } from '@/payload-types' - -import { cn } from '@/utilities/ui' import React from 'react' + import RichText from '@/components/RichText' +import type { BannerBlock as BannerBlockProps } from '@/payload-types' +import { cn } from '@/utilities/ui' type Props = { className?: string diff --git a/apps/cms/src/blocks/Banner/config.ts b/apps/cms/src/blocks/Banner/config.ts index 53e46b5cbc4..5bfdc1aa1a3 100644 --- a/apps/cms/src/blocks/Banner/config.ts +++ b/apps/cms/src/blocks/Banner/config.ts @@ -1,10 +1,9 @@ -import type { Block } from 'payload' - import { FixedToolbarFeature, InlineToolbarFeature, lexicalEditor, } from '@payloadcms/richtext-lexical' +import type { Block } from 'payload' export const Banner: Block = { slug: 'banner', diff --git a/apps/cms/src/blocks/Code/Component.client.tsx b/apps/cms/src/blocks/Code/Component.client.tsx index fc8fb62545a..93901f52206 100644 --- a/apps/cms/src/blocks/Code/Component.client.tsx +++ b/apps/cms/src/blocks/Code/Component.client.tsx @@ -1,6 +1,8 @@ 'use client' + import { Highlight, themes } from 'prism-react-renderer' import React from 'react' + import { CopyButton } from './CopyButton' type Props = { diff --git a/apps/cms/src/blocks/Code/CopyButton.tsx b/apps/cms/src/blocks/Code/CopyButton.tsx index 546148fa740..3af833cb68d 100644 --- a/apps/cms/src/blocks/Code/CopyButton.tsx +++ b/apps/cms/src/blocks/Code/CopyButton.tsx @@ -1,8 +1,10 @@ 'use client' -import { Button } from '@/components/ui/button' + import { CopyIcon } from '@payloadcms/ui/icons/Copy' import { useState } from 'react' +import { Button } from '@/components/ui/button' + export function CopyButton({ code }: { code: string }) { const [text, setText] = useState('Copy') diff --git a/apps/cms/src/blocks/MediaBlock/Component.tsx b/apps/cms/src/blocks/MediaBlock/Component.tsx index 013fd87f849..21ed856bd2d 100644 --- a/apps/cms/src/blocks/MediaBlock/Component.tsx +++ b/apps/cms/src/blocks/MediaBlock/Component.tsx @@ -1,12 +1,10 @@ import type { StaticImageData } from 'next/image' - -import { cn } from '@/utilities/ui' import React from 'react' -import RichText from '@/components/RichText' - -import type { MediaBlock as MediaBlockProps } from '@/payload-types' import { Media } from '../../components/Media' +import RichText from '@/components/RichText' +import type { MediaBlock as MediaBlockProps } from '@/payload-types' +import { cn } from '@/utilities/ui' type Props = MediaBlockProps & { breakout?: boolean diff --git a/apps/cms/src/blocks/Quote/Component.tsx b/apps/cms/src/blocks/Quote/Component.tsx index 1689a82a535..0bf925e9518 100644 --- a/apps/cms/src/blocks/Quote/Component.tsx +++ b/apps/cms/src/blocks/Quote/Component.tsx @@ -1,7 +1,7 @@ -import type { QuoteBlock as QuoteBlockProps } from '@/payload-types' - import React from 'react' +import type { QuoteBlock as QuoteBlockProps } from '@/payload-types' + type Props = { className?: string } & QuoteBlockProps diff --git a/apps/cms/src/blocks/YouTube/Component.tsx b/apps/cms/src/blocks/YouTube/Component.tsx index 2d903a2a6ca..f0c389bc39d 100644 --- a/apps/cms/src/blocks/YouTube/Component.tsx +++ b/apps/cms/src/blocks/YouTube/Component.tsx @@ -1,8 +1,8 @@ -import type { YouTubeBlock as YouTubeBlockProps } from '@/payload-types' - -import { cn } from '@/utilities/ui' import React from 'react' +import type { YouTubeBlock as YouTubeBlockProps } from '@/payload-types' +import { cn } from '@/utilities/ui' + type Props = { className?: string } & YouTubeBlockProps diff --git a/apps/cms/src/collections/Categories.ts b/apps/cms/src/collections/Categories.ts index d5b20b6d0e3..e9dbfc9d382 100644 --- a/apps/cms/src/collections/Categories.ts +++ b/apps/cms/src/collections/Categories.ts @@ -1,4 +1,5 @@ import type { CollectionConfig } from 'payload' + import { isAdmin } from '../access/isAdmin' export const Categories: CollectionConfig = { diff --git a/apps/cms/src/collections/Customers/index.ts b/apps/cms/src/collections/Customers/index.ts index 56bf14bf318..9e1f2e47abf 100644 --- a/apps/cms/src/collections/Customers/index.ts +++ b/apps/cms/src/collections/Customers/index.ts @@ -1,5 +1,10 @@ -import type { CollectionConfig } from 'payload' - +import { + MetaDescriptionField, + MetaImageField, + MetaTitleField, + OverviewField, + PreviewField, +} from '@payloadcms/plugin-seo/fields' import { BlocksFeature, FixedToolbarFeature, @@ -8,26 +13,18 @@ import { InlineToolbarFeature, lexicalEditor, } from '@payloadcms/richtext-lexical' +import type { CollectionConfig } from 'payload' import { isAnyone } from '../../access/isAnyone.ts' import { isAuthenticated } from '../../access/isAuthenticated.ts' - import { Banner } from '../../blocks/Banner/config.ts' import { Code } from '../../blocks/Code/config.ts' import { MediaBlock } from '../../blocks/MediaBlock/config.ts' import { Quote } from '../../blocks/Quote/config.ts' import { YouTube } from '../../blocks/YouTube/config.ts' -import { revalidateDelete, revalidateCustomer } from './hooks/revalidateCustomer.ts' - -import { - MetaDescriptionField, - MetaImageField, - MetaTitleField, - OverviewField, - PreviewField, -} from '@payloadcms/plugin-seo/fields' import { slugField } from '../../fields/slug/index.ts' import { WWW_SITE_ORIGIN } from '../../utilities/constants.ts' +import { revalidateCustomer, revalidateDelete } from './hooks/revalidateCustomer.ts' const industryOptions = [ { label: 'Healthcare', value: 'healthcare' }, diff --git a/apps/cms/src/collections/Events/index.ts b/apps/cms/src/collections/Events/index.ts index de909c08e8c..1f3896b5e3a 100644 --- a/apps/cms/src/collections/Events/index.ts +++ b/apps/cms/src/collections/Events/index.ts @@ -1,5 +1,10 @@ -import type { CollectionConfig } from 'payload' - +import { + MetaDescriptionField, + MetaImageField, + MetaTitleField, + OverviewField, + PreviewField, +} from '@payloadcms/plugin-seo/fields' import { BlocksFeature, FixedToolbarFeature, @@ -8,27 +13,19 @@ import { InlineToolbarFeature, lexicalEditor, } from '@payloadcms/richtext-lexical' +import type { CollectionConfig } from 'payload' import { isAnyone } from '../../access/isAnyone.ts' import { isAuthenticated } from '../../access/isAuthenticated.ts' - import { Banner } from '../../blocks/Banner/config.ts' import { Code } from '../../blocks/Code/config.ts' import { MediaBlock } from '../../blocks/MediaBlock/config.ts' import { Quote } from '../../blocks/Quote/config.ts' import { YouTube } from '../../blocks/YouTube/config.ts' -import { revalidateDelete, revalidateEvent } from './hooks/revalidateEvent.ts' - -import { - MetaDescriptionField, - MetaImageField, - MetaTitleField, - OverviewField, - PreviewField, -} from '@payloadcms/plugin-seo/fields' import { slugField } from '../../fields/slug/index.ts' -import { timezoneOptions } from '../../utilities/timezones.ts' import { WWW_SITE_ORIGIN } from '../../utilities/constants.ts' +import { timezoneOptions } from '../../utilities/timezones.ts' +import { revalidateDelete, revalidateEvent } from './hooks/revalidateEvent.ts' const eventTypeOptions = [ { label: 'Conference', value: 'conference' }, diff --git a/apps/cms/src/collections/Media.ts b/apps/cms/src/collections/Media.ts index 9b8f9c70ae8..2d29b0ac2a4 100644 --- a/apps/cms/src/collections/Media.ts +++ b/apps/cms/src/collections/Media.ts @@ -1,9 +1,9 @@ -import type { CollectionConfig } from 'payload' import { FixedToolbarFeature, InlineToolbarFeature, lexicalEditor, } from '@payloadcms/richtext-lexical' +import type { CollectionConfig } from 'payload' import { isAnyone } from '../access/isAnyone.ts' import { isAuthenticated } from '../access/isAuthenticated.ts' diff --git a/apps/cms/src/collections/Posts/hooks/populateAuthors.ts b/apps/cms/src/collections/Posts/hooks/populateAuthors.ts index 6a57e36534a..8d854d65d26 100644 --- a/apps/cms/src/collections/Posts/hooks/populateAuthors.ts +++ b/apps/cms/src/collections/Posts/hooks/populateAuthors.ts @@ -1,4 +1,5 @@ import type { CollectionAfterReadHook } from 'payload' + import type { Author } from '../../../payload-types' export const populateAuthors: CollectionAfterReadHook = async ({ doc, req: { payload } }) => { diff --git a/apps/cms/src/collections/Posts/index.ts b/apps/cms/src/collections/Posts/index.ts index 72e8830bb39..51fc3534420 100644 --- a/apps/cms/src/collections/Posts/index.ts +++ b/apps/cms/src/collections/Posts/index.ts @@ -1,5 +1,10 @@ -import type { CollectionConfig } from 'payload' - +import { + MetaDescriptionField, + MetaImageField, + MetaTitleField, + OverviewField, + PreviewField, +} from '@payloadcms/plugin-seo/fields' import { BlocksFeature, FixedToolbarFeature, @@ -8,27 +13,19 @@ import { InlineToolbarFeature, lexicalEditor, } from '@payloadcms/richtext-lexical' +import type { CollectionConfig } from 'payload' import { isAnyone } from '../../access/isAnyone.ts' import { isAuthenticated } from '../../access/isAuthenticated.ts' - import { Banner } from '../../blocks/Banner/config.ts' import { Code } from '../../blocks/Code/config.ts' import { MediaBlock } from '../../blocks/MediaBlock/config.ts' import { Quote } from '../../blocks/Quote/config.ts' import { YouTube } from '../../blocks/YouTube/config.ts' -import { populateAuthors } from './hooks/populateAuthors.ts' -import { revalidateDelete, revalidatePost } from './hooks/revalidatePost.ts' - -import { - MetaDescriptionField, - MetaImageField, - MetaTitleField, - OverviewField, - PreviewField, -} from '@payloadcms/plugin-seo/fields' import { slugField } from '../../fields/slug/index.ts' import { WWW_SITE_ORIGIN } from '../../utilities/constants.ts' +import { populateAuthors } from './hooks/populateAuthors.ts' +import { revalidateDelete, revalidatePost } from './hooks/revalidatePost.ts' const launchweekOptions = [ { label: '6', value: '6' }, diff --git a/apps/cms/src/collections/Users.ts b/apps/cms/src/collections/Users.ts index de665459f8e..e7d8db53cbf 100644 --- a/apps/cms/src/collections/Users.ts +++ b/apps/cms/src/collections/Users.ts @@ -1,4 +1,5 @@ import type { CollectionConfig } from 'payload' + import { isAdmin, isAdminFieldLevel } from '../access/isAdmin.ts' import { isAdminOrSelf } from '../access/isAdminOrSelf.ts' diff --git a/apps/cms/src/components/AdminBar/index.tsx b/apps/cms/src/components/AdminBar/index.tsx index 08c5c6c2e9d..f2d320a5f61 100644 --- a/apps/cms/src/components/AdminBar/index.tsx +++ b/apps/cms/src/components/AdminBar/index.tsx @@ -1,12 +1,11 @@ 'use client' import type { PayloadAdminBarProps, PayloadMeUser } from '@payloadcms/admin-bar' +import { PayloadAdminBar } from '@payloadcms/admin-bar' +import { useRouter, useSelectedLayoutSegments } from 'next/navigation' +import React, { useState } from 'react' import { cn } from '@/utilities/ui' -import { useSelectedLayoutSegments } from 'next/navigation' -import { PayloadAdminBar } from '@payloadcms/admin-bar' -import React, { useState } from 'react' -import { useRouter } from 'next/navigation' import './index.scss' diff --git a/apps/cms/src/components/Card/index.tsx b/apps/cms/src/components/Card/index.tsx index 72c44d27f72..23f5aa30afb 100644 --- a/apps/cms/src/components/Card/index.tsx +++ b/apps/cms/src/components/Card/index.tsx @@ -1,12 +1,12 @@ 'use client' -import { cn } from '@/utilities/ui' -import useClickableCard from '@/utilities/useClickableCard' + import Link from 'next/link' import React, { Fragment } from 'react' -import type { Post } from '@/payload-types' - import { Media } from '@/components/Media' +import type { Post } from '@/payload-types' +import { cn } from '@/utilities/ui' +import useClickableCard from '@/utilities/useClickableCard' export type CardPostData = Pick diff --git a/apps/cms/src/components/CollectionArchive/index.tsx b/apps/cms/src/components/CollectionArchive/index.tsx index b0a2a1c4935..c88528f365c 100644 --- a/apps/cms/src/components/CollectionArchive/index.tsx +++ b/apps/cms/src/components/CollectionArchive/index.tsx @@ -1,7 +1,7 @@ -import { cn } from '@/utilities/ui' import React from 'react' import { Card, CardPostData } from '@/components/Card' +import { cn } from '@/utilities/ui' export type Props = { posts: CardPostData[] diff --git a/apps/cms/src/components/Link/index.tsx b/apps/cms/src/components/Link/index.tsx index ed9f7be0b23..39a429b40cc 100644 --- a/apps/cms/src/components/Link/index.tsx +++ b/apps/cms/src/components/Link/index.tsx @@ -1,9 +1,9 @@ -import { Button, type ButtonProps } from '@/components/ui/button' -import { cn } from '@/utilities/ui' import Link from 'next/link' import React from 'react' +import { Button, type ButtonProps } from '@/components/ui/button' import type { Post } from '@/payload-types' +import { cn } from '@/utilities/ui' type CMSLinkType = { appearance?: 'inline' | ButtonProps['variant'] diff --git a/apps/cms/src/components/LivePreviewListener/index.tsx b/apps/cms/src/components/LivePreviewListener/index.tsx index 8b40675e7fa..856d773acd4 100644 --- a/apps/cms/src/components/LivePreviewListener/index.tsx +++ b/apps/cms/src/components/LivePreviewListener/index.tsx @@ -1,9 +1,11 @@ 'use client' -import { getClientSideURL } from '@/utilities/getURL' + import { RefreshRouteOnSave as PayloadLivePreview } from '@payloadcms/live-preview-react' import { useRouter } from 'next/navigation' import React from 'react' +import { getClientSideURL } from '@/utilities/getURL' + export const LivePreviewListener: React.FC = () => { const router = useRouter() return diff --git a/apps/cms/src/components/Media/ImageMedia/index.tsx b/apps/cms/src/components/Media/ImageMedia/index.tsx index c472254da6c..5cd28b8e23d 100644 --- a/apps/cms/src/components/Media/ImageMedia/index.tsx +++ b/apps/cms/src/components/Media/ImageMedia/index.tsx @@ -1,15 +1,13 @@ 'use client' import type { StaticImageData } from 'next/image' - -import { cn } from '@/utilities/ui' import NextImage from 'next/image' import React from 'react' import type { Props as MediaProps } from '../types' - import { cssVariables } from '@/cssVariables' import { getClientSideURL } from '@/utilities/getURL' +import { cn } from '@/utilities/ui' const { breakpoints } = cssVariables diff --git a/apps/cms/src/components/Media/VideoMedia/index.tsx b/apps/cms/src/components/Media/VideoMedia/index.tsx index 873eaacda51..93632475505 100644 --- a/apps/cms/src/components/Media/VideoMedia/index.tsx +++ b/apps/cms/src/components/Media/VideoMedia/index.tsx @@ -1,11 +1,10 @@ 'use client' -import { cn } from '@/utilities/ui' import React, { useEffect, useRef } from 'react' import type { Props as MediaProps } from '../types' - import { getClientSideURL } from '@/utilities/getURL' +import { cn } from '@/utilities/ui' export const VideoMedia: React.FC = (props) => { const { onClick, resource, videoClassName } = props diff --git a/apps/cms/src/components/Media/index.tsx b/apps/cms/src/components/Media/index.tsx index a4e2b9d0ef3..56bf75d872e 100644 --- a/apps/cms/src/components/Media/index.tsx +++ b/apps/cms/src/components/Media/index.tsx @@ -1,8 +1,7 @@ import React, { Fragment } from 'react' -import type { Props } from './types' - import { ImageMedia } from './ImageMedia' +import type { Props } from './types' import { VideoMedia } from './VideoMedia' export const Media: React.FC = (props) => { diff --git a/apps/cms/src/components/Pagination/index.tsx b/apps/cms/src/components/Pagination/index.tsx index 448b301df2d..bac01a968c4 100644 --- a/apps/cms/src/components/Pagination/index.tsx +++ b/apps/cms/src/components/Pagination/index.tsx @@ -1,4 +1,8 @@ 'use client' + +import { useRouter } from 'next/navigation' +import React from 'react' + import { Pagination as PaginationComponent, PaginationContent, @@ -9,8 +13,6 @@ import { PaginationPrevious, } from '@/components/ui/pagination' import { cn } from '@/utilities/ui' -import { useRouter } from 'next/navigation' -import React from 'react' export const Pagination: React.FC<{ className?: string diff --git a/apps/cms/src/components/RichText/index.tsx b/apps/cms/src/components/RichText/index.tsx index 727236737d4..50a48615ffb 100644 --- a/apps/cms/src/components/RichText/index.tsx +++ b/apps/cms/src/components/RichText/index.tsx @@ -1,4 +1,3 @@ -import { MediaBlock } from '@/blocks/MediaBlock/Component' import { DefaultNodeTypes, SerializedBlockNode, @@ -6,22 +5,22 @@ import { type DefaultTypedEditorState, } from '@payloadcms/richtext-lexical' import { + RichText as ConvertRichText, JSXConvertersFunction, LinkJSXConverter, - RichText as ConvertRichText, } from '@payloadcms/richtext-lexical/react' +import { BannerBlock } from '@/blocks/Banner/Component' import { CodeBlock, CodeBlockProps } from '@/blocks/Code/Component' - +import { MediaBlock } from '@/blocks/MediaBlock/Component' +import { QuoteBlock } from '@/blocks/Quote/Component' +import { YouTubeBlock } from '@/blocks/YouTube/Component' import type { BannerBlock as BannerBlockProps, MediaBlock as MediaBlockProps, QuoteBlock as QuoteBlockProps, YouTubeBlock as YouTubeBlockProps, } from '@/payload-types' -import { BannerBlock } from '@/blocks/Banner/Component' -import { QuoteBlock } from '@/blocks/Quote/Component' -import { YouTubeBlock } from '@/blocks/YouTube/Component' import { cn } from '@/utilities/ui' type NodeTypes = diff --git a/apps/cms/src/components/ui/button.tsx b/apps/cms/src/components/ui/button.tsx index 9cb36846b2e..34e2a4435fa 100644 --- a/apps/cms/src/components/ui/button.tsx +++ b/apps/cms/src/components/ui/button.tsx @@ -1,8 +1,9 @@ -import { cn } from '@/utilities/ui' import { Slot } from '@radix-ui/react-slot' -import { type VariantProps, cva } from 'class-variance-authority' +import { cva, type VariantProps } from 'class-variance-authority' import * as React from 'react' +import { cn } from '@/utilities/ui' + const buttonVariants = cva( 'inline-flex items-center justify-center whitespace-nowrap rounded text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50', { diff --git a/apps/cms/src/components/ui/card.tsx b/apps/cms/src/components/ui/card.tsx index 54b8b442d00..7a37960d69f 100644 --- a/apps/cms/src/components/ui/card.tsx +++ b/apps/cms/src/components/ui/card.tsx @@ -1,6 +1,7 @@ -import { cn } from '@/utilities/ui' import * as React from 'react' +import { cn } from '@/utilities/ui' + const Card: React.FC< { ref?: React.Ref } & React.HTMLAttributes > = ({ className, ref, ...props }) => ( diff --git a/apps/cms/src/components/ui/checkbox.tsx b/apps/cms/src/components/ui/checkbox.tsx index 1f91c2ec9b9..0a83952d88e 100644 --- a/apps/cms/src/components/ui/checkbox.tsx +++ b/apps/cms/src/components/ui/checkbox.tsx @@ -1,10 +1,11 @@ 'use client' -import { cn } from '@/utilities/ui' import * as CheckboxPrimitive from '@radix-ui/react-checkbox' import { Check } from 'lucide-react' import * as React from 'react' +import { cn } from '@/utilities/ui' + const Checkbox: React.FC< { ref?: React.Ref diff --git a/apps/cms/src/components/ui/input.tsx b/apps/cms/src/components/ui/input.tsx index 3a2208f2471..b8a2213b694 100644 --- a/apps/cms/src/components/ui/input.tsx +++ b/apps/cms/src/components/ui/input.tsx @@ -1,6 +1,7 @@ -import { cn } from '@/utilities/ui' import * as React from 'react' +import { cn } from '@/utilities/ui' + const Input: React.FC< { ref?: React.Ref diff --git a/apps/cms/src/components/ui/label.tsx b/apps/cms/src/components/ui/label.tsx index ff6a510afad..270f65df45f 100644 --- a/apps/cms/src/components/ui/label.tsx +++ b/apps/cms/src/components/ui/label.tsx @@ -1,10 +1,11 @@ 'use client' -import { cn } from '@/utilities/ui' import * as LabelPrimitive from '@radix-ui/react-label' -import { type VariantProps, cva } from 'class-variance-authority' +import { cva, type VariantProps } from 'class-variance-authority' import * as React from 'react' +import { cn } from '@/utilities/ui' + const labelVariants = cva( 'text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70' ) diff --git a/apps/cms/src/components/ui/pagination.tsx b/apps/cms/src/components/ui/pagination.tsx index 12d4f1dfb40..37f29bf5ac3 100644 --- a/apps/cms/src/components/ui/pagination.tsx +++ b/apps/cms/src/components/ui/pagination.tsx @@ -1,10 +1,10 @@ -import type { ButtonProps } from '@/components/ui/button' - -import { buttonVariants } from '@/components/ui/button' -import { cn } from '@/utilities/ui' import { ChevronLeft, ChevronRight, MoreHorizontal } from 'lucide-react' import * as React from 'react' +import type { ButtonProps } from '@/components/ui/button' +import { buttonVariants } from '@/components/ui/button' +import { cn } from '@/utilities/ui' + const Pagination = ({ className, ...props }: React.ComponentProps<'nav'>) => (