diff --git a/bun.lock b/bun.lock index 2a0eabd..e7033a6 100644 --- a/bun.lock +++ b/bun.lock @@ -7,56 +7,57 @@ "dependencies": { "@awesome.me/kit-3dc4522338": "^1.0.4", "@fortawesome/react-fontawesome": "^3.3.1", - "@payloadcms/admin-bar": "3.83.0", - "@payloadcms/db-postgres": "3.83.0", - "@payloadcms/live-preview-react": "3.83.0", - "@payloadcms/next": "3.83.0", - "@payloadcms/plugin-form-builder": "3.83.0", - "@payloadcms/plugin-nested-docs": "3.83.0", - "@payloadcms/plugin-redirects": "3.83.0", - "@payloadcms/plugin-search": "3.83.0", - "@payloadcms/plugin-seo": "3.83.0", - "@payloadcms/richtext-lexical": "3.83.0", - "@payloadcms/ui": "3.83.0", - "@radix-ui/react-checkbox": "^1.0.4", - "@radix-ui/react-label": "^2.0.2", - "@radix-ui/react-select": "^2.0.0", - "@radix-ui/react-slot": "^1.0.2", - "class-variance-authority": "^0.7.0", + "@payloadcms/admin-bar": "^3.84.1", + "@payloadcms/db-postgres": "^3.84.1", + "@payloadcms/email-nodemailer": "^3.84.1", + "@payloadcms/live-preview-react": "^3.84.1", + "@payloadcms/next": "^3.84.1", + "@payloadcms/plugin-form-builder": "^3.84.1", + "@payloadcms/plugin-nested-docs": "^3.84.1", + "@payloadcms/plugin-redirects": "^3.84.1", + "@payloadcms/plugin-search": "^3.84.1", + "@payloadcms/plugin-seo": "^3.84.1", + "@payloadcms/richtext-lexical": "^3.84.1", + "@payloadcms/ui": "^3.84.1", + "@radix-ui/react-checkbox": "^1.3.3", + "@radix-ui/react-label": "^2.1.8", + "@radix-ui/react-select": "^2.2.6", + "@radix-ui/react-slot": "^1.2.4", + "class-variance-authority": "^0.7.1", "clsx": "^2.1.1", "cross-env": "^7.0.3", "dotenv": "16.4.7", - "geist": "^1.3.0", - "graphql": "^16.8.2", + "geist": "^1.7.0", + "graphql": "^16.13.2", "lucide-react": "0.563.0", "next": "16.2.3", "next-sitemap": "^4.2.3", - "payload": "3.83.0", - "prism-react-renderer": "^2.3.1", + "payload": "^3.84.1", + "prism-react-renderer": "^2.4.1", "react": "19.2.4", "react-dom": "19.2.4", "react-hook-form": "7.71.1", "sharp": "0.34.2", - "tailwind-merge": "^3.4.0", + "tailwind-merge": "^3.5.0", }, "devDependencies": { - "@eslint/eslintrc": "^3.2.0", + "@eslint/eslintrc": "^3.3.5", "@playwright/test": "1.58.2", - "@tailwindcss/postcss": "^4.1.18", + "@tailwindcss/postcss": "^4.2.4", "@tailwindcss/typography": "^0.5.19", "@testing-library/react": "16.3.0", - "@types/escape-html": "^1.0.2", + "@types/escape-html": "^1.0.4", "@types/node": "22.19.9", "@types/react": "19.2.14", "@types/react-dom": "19.2.3", "@vitejs/plugin-react": "4.5.2", - "autoprefixer": "^10.4.19", - "eslint": "^9.16.0", + "autoprefixer": "^10.5.0", + "eslint": "^9.39.4", "eslint-config-next": "16.2.3", "jsdom": "28.0.0", - "postcss": "^8.4.38", - "prettier": "^3.4.2", - "tailwindcss": "^4.1.18", + "postcss": "^8.5.12", + "prettier": "^3.8.3", + "tailwindcss": "^4.2.4", "tsx": "4.21.0", "tw-animate-css": "^1.4.0", "typescript": "5.7.3", @@ -428,35 +429,37 @@ "@nolyfill/is-core-module": ["@nolyfill/is-core-module@1.0.39", "", {}, "sha512-nn5ozdjYQpUCZlWGuxcJY/KpxkWQs4DcbMCmKojjyrYDEAGy4Ce19NN4v5MduafTwJlbKc99UA8YhSVqq9yPZA=="], - "@payloadcms/admin-bar": ["@payloadcms/admin-bar@3.83.0", "", { "peerDependencies": { "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.1 || ^19.1.2 || ^19.2.1", "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.1 || ^19.1.2 || ^19.2.1" } }, "sha512-Fai0A66pdSIGvxMvyIbCeOY+oSE0N8/6u7//lNC3cnqrTGmuUdNhObKG2tDXMEWA7u8eHTg3B2UgiZTBdbALjw=="], + "@payloadcms/admin-bar": ["@payloadcms/admin-bar@3.84.1", "", { "peerDependencies": { "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.1 || ^19.1.2 || ^19.2.1", "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.1 || ^19.1.2 || ^19.2.1" } }, "sha512-ihHiIDWp7Fx6FDfhxXX8q24iogbjkERy+KKF9t7pxEzCcJgXP8PCb2PqnyVQq98YCwxx6vOmVQolhxt5Fhumvw=="], - "@payloadcms/db-postgres": ["@payloadcms/db-postgres@3.83.0", "", { "dependencies": { "@payloadcms/drizzle": "3.83.0", "@types/pg": "8.20.0", "console-table-printer": "2.12.1", "drizzle-kit": "0.31.7", "drizzle-orm": "0.45.2", "pg": "8.20.0", "prompts": "2.4.2", "to-snake-case": "1.0.0", "uuid": "11.1.0" }, "peerDependencies": { "payload": "3.83.0" } }, "sha512-Y7/ZvFDmZgZgoViA+Mg7alkG2f+UxW1NPjd1J6/Y31nrDaKlb5LRt8FAwchyqCR/Vu1FiUTM4DDASOHhByCjyg=="], + "@payloadcms/db-postgres": ["@payloadcms/db-postgres@3.84.1", "", { "dependencies": { "@payloadcms/drizzle": "3.84.1", "@types/pg": "8.20.0", "console-table-printer": "2.12.1", "drizzle-kit": "0.31.7", "drizzle-orm": "0.45.2", "pg": "8.20.0", "prompts": "2.4.2", "to-snake-case": "1.0.0", "uuid": "11.1.0" }, "peerDependencies": { "payload": "3.84.1" } }, "sha512-/r1+7k58529ziTwqzySXsZb4x3FcfQIQH8R6gXLM3bTU9JA8wfLBraIgSyVKl6B3p+/EQYcaQ1DUlfrzVRxo1A=="], - "@payloadcms/drizzle": ["@payloadcms/drizzle@3.83.0", "", { "dependencies": { "console-table-printer": "2.12.1", "dequal": "2.0.3", "drizzle-orm": "0.45.2", "prompts": "2.4.2", "to-snake-case": "1.0.0", "uuid": "11.1.0" }, "peerDependencies": { "payload": "3.83.0" } }, "sha512-gavwuiEJpFd7/+nwup2d+ZuE9D8kJs0B8W60CGI0MySEzWrz11tTMPAvfNaOzjoh81sETdVejaCG1iEep4+L/g=="], + "@payloadcms/drizzle": ["@payloadcms/drizzle@3.84.1", "", { "dependencies": { "console-table-printer": "2.12.1", "dequal": "2.0.3", "drizzle-orm": "0.45.2", "prompts": "2.4.2", "to-snake-case": "1.0.0", "uuid": "11.1.0" }, "peerDependencies": { "payload": "3.84.1" } }, "sha512-n/1fgH3fh6omGNecjhOJ32wrxio5ph2VhfQDwMvSEViTUPD9JXp0yJiOUEqzYK/cxoRQWfwBIbvgzpC/a6FsEw=="], - "@payloadcms/graphql": ["@payloadcms/graphql@3.83.0", "", { "dependencies": { "graphql-scalars": "1.22.2", "pluralize": "8.0.0", "ts-essentials": "10.0.3", "tsx": "4.21.0" }, "peerDependencies": { "graphql": "^16.8.1", "payload": "3.83.0" }, "bin": { "payload-graphql": "bin.js" } }, "sha512-HBy7OI+rDLpeN+KEXlcEk/3ohOzrCJApoS9vtWfoAnDh7N3kDr/fHSTsUlAlMrH5f5OU0fOMyx1V88J9zdBDiw=="], + "@payloadcms/email-nodemailer": ["@payloadcms/email-nodemailer@3.84.1", "", { "dependencies": { "nodemailer": "7.0.12" }, "peerDependencies": { "payload": "3.84.1" } }, "sha512-pTXl9dfIoXLpdI2BbK0h64Y9I3RLGOG1QkWokSdCDWr+qkOiRkbO7W8dOEtK6Nh8eIwNOMJLA7Og3x4EbGMPxg=="], - "@payloadcms/live-preview": ["@payloadcms/live-preview@3.83.0", "", {}, "sha512-dzGQxUhEZ9SjQ0L3aZkWNsV0o8vHyBOcS3Qk/ULMf8Fuc7jOzKJfvXyjE0vNxWVKNrpuZOekUhXouPOY/XXX1w=="], + "@payloadcms/graphql": ["@payloadcms/graphql@3.84.1", "", { "dependencies": { "graphql-scalars": "1.22.2", "pluralize": "8.0.0", "ts-essentials": "10.0.3", "tsx": "4.21.0" }, "peerDependencies": { "graphql": "^16.8.1", "payload": "3.84.1" }, "bin": { "payload-graphql": "bin.js" } }, "sha512-pVJdgihEEexpK+kANSozAMf3PQfd6p51/G3cK+rkPzSjghf7X+cQQ8NFOmAMDTpijM5YaowQYTuEje3KaLVXuQ=="], - "@payloadcms/live-preview-react": ["@payloadcms/live-preview-react@3.83.0", "", { "dependencies": { "@payloadcms/live-preview": "3.83.0" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.1 || ^19.1.2 || ^19.2.1", "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.1 || ^19.1.2 || ^19.2.1" } }, "sha512-gbYtfgoMUKgGngecCP92M/kLKu/qzlCImG2JEuaL85gi852xYQw8CC8oUV/YCXLEAMdr71+UVGyj4lK3rOD9ZQ=="], + "@payloadcms/live-preview": ["@payloadcms/live-preview@3.84.1", "", {}, "sha512-FiimjzLX/nBCXa00EOTm+U1I7PufcNItB023I9eu7ZpxiDNulg6kSBT9A37LJif5C9napaePu4l5vXB/5qSGYg=="], - "@payloadcms/next": ["@payloadcms/next@3.83.0", "", { "dependencies": { "@dnd-kit/core": "6.3.1", "@dnd-kit/modifiers": "9.0.0", "@dnd-kit/sortable": "10.0.0", "@payloadcms/graphql": "3.83.0", "@payloadcms/translations": "3.83.0", "@payloadcms/ui": "3.83.0", "busboy": "^1.6.0", "dequal": "2.0.3", "file-type": "21.3.4", "graphql-http": "^1.22.0", "graphql-playground-html": "1.6.30", "http-status": "2.1.0", "path-to-regexp": "6.3.0", "qs-esm": "8.0.1", "sass": "1.77.4", "uuid": "11.1.0" }, "peerDependencies": { "graphql": "^16.8.1", "next": ">=15.2.9 <15.3.0 || >=15.3.9 <15.4.0 || >=15.4.11 <15.5.0 || >=16.2.2 <17.0.0", "payload": "3.83.0" } }, "sha512-N4pmZSfVEylajGxTXc/69EGJT4tZWgVIA4U6rV9rGqD7FkHTXVut4tz/WyR2gZuSryHsFP0OobMEACCPs5YLIA=="], + "@payloadcms/live-preview-react": ["@payloadcms/live-preview-react@3.84.1", "", { "dependencies": { "@payloadcms/live-preview": "3.84.1" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.1 || ^19.1.2 || ^19.2.1", "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.1 || ^19.1.2 || ^19.2.1" } }, "sha512-jKG1llQh0QMwltSaZJ0fDzxj8bdllboQYBlJnv2kYs1HW4ZgIRbVtvtcvOEInooi9yUManjzr/r5GOxTNsLryg=="], - "@payloadcms/plugin-form-builder": ["@payloadcms/plugin-form-builder@3.83.0", "", { "dependencies": { "@payloadcms/ui": "3.83.0", "escape-html": "^1.0.3" }, "peerDependencies": { "payload": "3.83.0", "react": "^19.0.1 || ^19.1.2 || ^19.2.1", "react-dom": "^19.0.1 || ^19.1.2 || ^19.2.1" } }, "sha512-nNU15s9fV7Td8us8F9UdVfDFjuc0vOKr9pQKCeYjjYvelIlBvGLmiFkz737CjDx1fBRu9OKlYOvUov0+JfXnEw=="], + "@payloadcms/next": ["@payloadcms/next@3.84.1", "", { "dependencies": { "@dnd-kit/core": "6.3.1", "@dnd-kit/modifiers": "9.0.0", "@dnd-kit/sortable": "10.0.0", "@payloadcms/graphql": "3.84.1", "@payloadcms/translations": "3.84.1", "@payloadcms/ui": "3.84.1", "busboy": "^1.6.0", "dequal": "2.0.3", "file-type": "21.3.4", "graphql-http": "^1.22.0", "graphql-playground-html": "1.6.30", "http-status": "2.1.0", "path-to-regexp": "6.3.0", "qs-esm": "8.0.1", "sass": "1.77.4", "uuid": "11.1.0" }, "peerDependencies": { "graphql": "^16.8.1", "next": ">=15.2.9 <15.3.0 || >=15.3.9 <15.4.0 || >=15.4.11 <15.5.0 || >=16.2.2 <17.0.0", "payload": "3.84.1" } }, "sha512-T7f7Ja4l4Z6QM/oSM8MWJY63xyNQmWxUswDgssXl1/D0hQIVQASXMeZvXiXLQwg/g4f9s5anKTUNIx32dtHxWg=="], - "@payloadcms/plugin-nested-docs": ["@payloadcms/plugin-nested-docs@3.83.0", "", { "peerDependencies": { "payload": "3.83.0" } }, "sha512-3qrr9xRFmvNiakfcYpVKHrm+UQMqRMOvYnptRO1J4zBm9FyBX44GvnNIsbjzjo9yuoVXl4eRxXTM/Ya9nw/p4Q=="], + "@payloadcms/plugin-form-builder": ["@payloadcms/plugin-form-builder@3.84.1", "", { "dependencies": { "@payloadcms/ui": "3.84.1", "escape-html": "^1.0.3" }, "peerDependencies": { "payload": "3.84.1", "react": "^19.0.1 || ^19.1.2 || ^19.2.1", "react-dom": "^19.0.1 || ^19.1.2 || ^19.2.1" } }, "sha512-pEr4QFceswL+3dpZWtzlLHyED8nxk7iukm/eNUxNn9vaUfb2xcqzQf6xRmoJra9R1yDx6mdC/DU+Whg5Op/yfQ=="], - "@payloadcms/plugin-redirects": ["@payloadcms/plugin-redirects@3.83.0", "", { "dependencies": { "@payloadcms/translations": "3.83.0", "payload": "3.83.0" } }, "sha512-dpoa9wLhizUqYkgJD1uMzrnEDkyWxndhZ3JUivzstjKi24vZ5M2u2nixsnVvPUcwGoG0CHQ4JSUnAk02oCdgaA=="], + "@payloadcms/plugin-nested-docs": ["@payloadcms/plugin-nested-docs@3.84.1", "", { "peerDependencies": { "payload": "3.84.1" } }, "sha512-5UuyTkzuc/ALC9oPz8dGQkQ/eOF/HrxKVi88YnKsBHnG4mCWTRxXVMYXjuIb8pH8UFhZpQgphuQqDljw9ZcOqA=="], - "@payloadcms/plugin-search": ["@payloadcms/plugin-search@3.83.0", "", { "dependencies": { "@payloadcms/next": "3.83.0", "@payloadcms/ui": "3.83.0" }, "peerDependencies": { "payload": "3.83.0", "react": "^19.0.1 || ^19.1.2 || ^19.2.1", "react-dom": "^19.0.1 || ^19.1.2 || ^19.2.1" } }, "sha512-qSF+I1vBpmUDMhSnkzzZ1cJWEiS18qJUMiZ0uK4kKT2uyVX0KQ1DcUr1ynhvs/xW6IWGEk5j/kZAKJch/GjX4w=="], + "@payloadcms/plugin-redirects": ["@payloadcms/plugin-redirects@3.84.1", "", { "dependencies": { "@payloadcms/translations": "3.84.1", "payload": "3.84.1" } }, "sha512-izKKI5Mm6nosetsAxlqbdOKxraYPlHSGy246D4YbsDemAV4CLOpGcQKTaeTW/JAqYt+RlcvzcWXm0qNMX+2MeQ=="], - "@payloadcms/plugin-seo": ["@payloadcms/plugin-seo@3.83.0", "", { "dependencies": { "@payloadcms/translations": "3.83.0", "@payloadcms/ui": "3.83.0" }, "peerDependencies": { "payload": "3.83.0", "react": "^19.0.1 || ^19.1.2 || ^19.2.1", "react-dom": "^19.0.1 || ^19.1.2 || ^19.2.1" } }, "sha512-QxuoH5VtApkPC7FM1girzbCo++/GNoli49YiMlcvZH9h5Jpl2S8ARCY46EsgS3B+dgYN2q/KpTDvXTpI/AmBFA=="], + "@payloadcms/plugin-search": ["@payloadcms/plugin-search@3.84.1", "", { "dependencies": { "@payloadcms/next": "3.84.1", "@payloadcms/ui": "3.84.1" }, "peerDependencies": { "payload": "3.84.1", "react": "^19.0.1 || ^19.1.2 || ^19.2.1", "react-dom": "^19.0.1 || ^19.1.2 || ^19.2.1" } }, "sha512-rBWyJqh9WQEZojMwYuotg8OldBuypmyYYO0kx19QKh2EB2GaVmR+/9bSlZIlJwqSBOxcJmPAkfLgzPdD2FaJlw=="], - "@payloadcms/richtext-lexical": ["@payloadcms/richtext-lexical@3.83.0", "", { "dependencies": { "@lexical/clipboard": "0.41.0", "@lexical/headless": "0.41.0", "@lexical/html": "0.41.0", "@lexical/link": "0.41.0", "@lexical/list": "0.41.0", "@lexical/mark": "0.41.0", "@lexical/react": "0.41.0", "@lexical/rich-text": "0.41.0", "@lexical/selection": "0.41.0", "@lexical/table": "0.41.0", "@lexical/utils": "0.41.0", "@payloadcms/translations": "3.83.0", "@payloadcms/ui": "3.83.0", "acorn": "8.16.0", "bson-objectid": "2.0.4", "csstype": "3.1.3", "dequal": "2.0.3", "escape-html": "1.0.3", "jsox": "1.2.121", "lexical": "0.41.0", "mdast-util-from-markdown": "2.0.2", "mdast-util-mdx-jsx": "3.1.3", "micromark-extension-mdx-jsx": "3.0.1", "qs-esm": "8.0.1", "react-error-boundary": "4.1.2", "ts-essentials": "10.0.3", "uuid": "11.1.0" }, "peerDependencies": { "@faceless-ui/modal": "3.0.0", "@faceless-ui/scroll-info": "2.0.0", "@payloadcms/next": "3.83.0", "payload": "3.83.0", "react": "^19.0.1 || ^19.1.2 || ^19.2.1", "react-dom": "^19.0.1 || ^19.1.2 || ^19.2.1" } }, "sha512-JKuMe70oSxkhgoJTFtiWM7hBmLMXGudmaD9DX1HWLgUoIw4AcKOUcRvoIuAnM2pCee27JdtEqYlXhJQWX34sCw=="], + "@payloadcms/plugin-seo": ["@payloadcms/plugin-seo@3.84.1", "", { "dependencies": { "@payloadcms/translations": "3.84.1", "@payloadcms/ui": "3.84.1" }, "peerDependencies": { "payload": "3.84.1", "react": "^19.0.1 || ^19.1.2 || ^19.2.1", "react-dom": "^19.0.1 || ^19.1.2 || ^19.2.1" } }, "sha512-9FYs5ML/eWR/A/rQfHt2NhPzkJWbUx5SN/+lEQ90r3c3Z8CQUVpt4vETXSI9Gxi764lTutIGemuZAJK9WRy3Lw=="], - "@payloadcms/translations": ["@payloadcms/translations@3.83.0", "", { "dependencies": { "date-fns": "4.1.0" } }, "sha512-Ie7Ty9Myb75wQ/gEedal+1PInrOtCeJJxjQAfG8C6hg9tBKYtwnW1IoRp4HrN7vHyYVyG15LKhXC40TevQU9Zw=="], + "@payloadcms/richtext-lexical": ["@payloadcms/richtext-lexical@3.84.1", "", { "dependencies": { "@lexical/clipboard": "0.41.0", "@lexical/headless": "0.41.0", "@lexical/html": "0.41.0", "@lexical/link": "0.41.0", "@lexical/list": "0.41.0", "@lexical/mark": "0.41.0", "@lexical/react": "0.41.0", "@lexical/rich-text": "0.41.0", "@lexical/selection": "0.41.0", "@lexical/table": "0.41.0", "@lexical/utils": "0.41.0", "@payloadcms/translations": "3.84.1", "@payloadcms/ui": "3.84.1", "acorn": "8.16.0", "bson-objectid": "2.0.4", "csstype": "3.1.3", "dequal": "2.0.3", "escape-html": "1.0.3", "jsox": "1.2.121", "lexical": "0.41.0", "mdast-util-from-markdown": "2.0.2", "mdast-util-mdx-jsx": "3.1.3", "micromark-extension-mdx-jsx": "3.0.1", "qs-esm": "8.0.1", "react-error-boundary": "4.1.2", "ts-essentials": "10.0.3", "uuid": "11.1.0" }, "peerDependencies": { "@faceless-ui/modal": "3.0.0", "@faceless-ui/scroll-info": "2.0.0", "@payloadcms/next": "3.84.1", "payload": "3.84.1", "react": "^19.0.1 || ^19.1.2 || ^19.2.1", "react-dom": "^19.0.1 || ^19.1.2 || ^19.2.1" } }, "sha512-KaNSz0RJFLnLc/hBRGg8Lgwk5FjCZSskA6KuufNWG5QdgUsgQe4Dx4Vr7G+VSR9zSZj+R4TVVSC0aVv4z7vL3g=="], - "@payloadcms/ui": ["@payloadcms/ui@3.83.0", "", { "dependencies": { "@date-fns/tz": "1.2.0", "@dnd-kit/core": "6.3.1", "@dnd-kit/sortable": "10.0.0", "@dnd-kit/utilities": "3.2.2", "@faceless-ui/modal": "3.0.0", "@faceless-ui/scroll-info": "2.0.0", "@faceless-ui/window-info": "3.0.1", "@monaco-editor/react": "4.7.0", "@payloadcms/translations": "3.83.0", "bson-objectid": "2.0.4", "date-fns": "4.1.0", "dequal": "2.0.3", "md5": "2.3.0", "object-to-formdata": "4.5.1", "qs-esm": "8.0.1", "react-datepicker": "7.6.0", "react-image-crop": "10.1.8", "react-select": "5.9.0", "scheduler": "0.25.0", "sonner": "^1.7.2", "ts-essentials": "10.0.3", "use-context-selector": "2.0.0", "uuid": "11.1.0" }, "peerDependencies": { "next": ">=15.2.9 <15.3.0 || >=15.3.9 <15.4.0 || >=15.4.11 <15.5.0 || >=16.2.2 <17.0.0", "payload": "3.83.0", "react": "^19.0.1 || ^19.1.2 || ^19.2.1", "react-dom": "^19.0.1 || ^19.1.2 || ^19.2.1" } }, "sha512-biAf76mUZraa4cdwH9fTVYQLxn9zC2B/LPhmDz69hiZR0PPWp4u1GJU7CHOpzRxWx7I2PcJiTW2rt1q3GJ19bg=="], + "@payloadcms/translations": ["@payloadcms/translations@3.84.1", "", { "dependencies": { "date-fns": "4.1.0" } }, "sha512-1g4IsXvRfeQCn8YmPweaj8MMAFK9oSxYWKJG15j+Ah9Nra+f35/ZdOt/k80+vfoJmdKsOK/AnuzVdSTWy2GQpg=="], + + "@payloadcms/ui": ["@payloadcms/ui@3.84.1", "", { "dependencies": { "@date-fns/tz": "1.2.0", "@dnd-kit/core": "6.3.1", "@dnd-kit/sortable": "10.0.0", "@dnd-kit/utilities": "3.2.2", "@faceless-ui/modal": "3.0.0", "@faceless-ui/scroll-info": "2.0.0", "@faceless-ui/window-info": "3.0.1", "@monaco-editor/react": "4.7.0", "@payloadcms/translations": "3.84.1", "bson-objectid": "2.0.4", "date-fns": "4.1.0", "dequal": "2.0.3", "md5": "2.3.0", "object-to-formdata": "4.5.1", "qs-esm": "8.0.1", "react-datepicker": "7.6.0", "react-image-crop": "10.1.8", "react-select": "5.9.0", "scheduler": "0.25.0", "sonner": "^1.7.2", "ts-essentials": "10.0.3", "use-context-selector": "2.0.0", "uuid": "11.1.0" }, "peerDependencies": { "next": ">=15.2.9 <15.3.0 || >=15.3.9 <15.4.0 || >=15.4.11 <15.5.0 || >=16.2.2 <17.0.0", "payload": "3.84.1", "react": "^19.0.1 || ^19.1.2 || ^19.2.1", "react-dom": "^19.0.1 || ^19.1.2 || ^19.2.1" } }, "sha512-L9trD3/LcK1fiGg4AFexy9AQm4upMzRbicZFTNU/ac+x5o6Pwyr7FzrvbtfCr0l2t6QhawLBZmBCZJA8oBF2uA=="], "@pinojs/redact": ["@pinojs/redact@0.4.0", "", {}, "sha512-k2ENnmBugE/rzQfEcdWHcCY+/FM3VLzH9cYEsbdsoqrvzAKRhUZeRNhAZvB8OitQJ1TBed3yqWtdjzS6wJKBwg=="], @@ -580,35 +583,35 @@ "@swc/helpers": ["@swc/helpers@0.5.15", "", { "dependencies": { "tslib": "^2.8.0" } }, "sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g=="], - "@tailwindcss/node": ["@tailwindcss/node@4.2.3", "", { "dependencies": { "@jridgewell/remapping": "^2.3.5", "enhanced-resolve": "^5.19.0", "jiti": "^2.6.1", "lightningcss": "1.32.0", "magic-string": "^0.30.21", "source-map-js": "^1.2.1", "tailwindcss": "4.2.3" } }, "sha512-dhXFXkW2dGvX4r/fi24gyXM0t1mFMrpykQjqrdA4SuavaMagm4SY1u5G2SCJwu1/0x/5RlZJ2VPjP3mKYQfCkA=="], + "@tailwindcss/node": ["@tailwindcss/node@4.2.4", "", { "dependencies": { "@jridgewell/remapping": "^2.3.5", "enhanced-resolve": "^5.19.0", "jiti": "^2.6.1", "lightningcss": "1.32.0", "magic-string": "^0.30.21", "source-map-js": "^1.2.1", "tailwindcss": "4.2.4" } }, "sha512-Ai7+yQPxz3ddrDQzFfBKdHEVBg0w3Zl83jnjuwxnZOsnH9pGn93QHQtpU0p/8rYWxvbFZHneni6p1BSLK4DkGA=="], - "@tailwindcss/oxide": ["@tailwindcss/oxide@4.2.3", "", { "optionalDependencies": { "@tailwindcss/oxide-android-arm64": "4.2.3", "@tailwindcss/oxide-darwin-arm64": "4.2.3", "@tailwindcss/oxide-darwin-x64": "4.2.3", "@tailwindcss/oxide-freebsd-x64": "4.2.3", "@tailwindcss/oxide-linux-arm-gnueabihf": "4.2.3", "@tailwindcss/oxide-linux-arm64-gnu": "4.2.3", "@tailwindcss/oxide-linux-arm64-musl": "4.2.3", "@tailwindcss/oxide-linux-x64-gnu": "4.2.3", "@tailwindcss/oxide-linux-x64-musl": "4.2.3", "@tailwindcss/oxide-wasm32-wasi": "4.2.3", "@tailwindcss/oxide-win32-arm64-msvc": "4.2.3", "@tailwindcss/oxide-win32-x64-msvc": "4.2.3" } }, "sha512-YyhwSBcxHLS3CU2Mk3dXDuVm8/Ia0+XvfpT8s9YQoICppkUeoobB3hgyGMYbyQ4vn6VgWH9bdv5UnzhTz2NPTQ=="], + "@tailwindcss/oxide": ["@tailwindcss/oxide@4.2.4", "", { "optionalDependencies": { "@tailwindcss/oxide-android-arm64": "4.2.4", "@tailwindcss/oxide-darwin-arm64": "4.2.4", "@tailwindcss/oxide-darwin-x64": "4.2.4", "@tailwindcss/oxide-freebsd-x64": "4.2.4", "@tailwindcss/oxide-linux-arm-gnueabihf": "4.2.4", "@tailwindcss/oxide-linux-arm64-gnu": "4.2.4", "@tailwindcss/oxide-linux-arm64-musl": "4.2.4", "@tailwindcss/oxide-linux-x64-gnu": "4.2.4", "@tailwindcss/oxide-linux-x64-musl": "4.2.4", "@tailwindcss/oxide-wasm32-wasi": "4.2.4", "@tailwindcss/oxide-win32-arm64-msvc": "4.2.4", "@tailwindcss/oxide-win32-x64-msvc": "4.2.4" } }, "sha512-9El/iI069DKDSXwTvB9J4BwdO5JhRrOweGaK25taBAvBXyXqJAX+Jqdvs8r8gKpsI/1m0LeJLyQYTf/WLrBT1Q=="], - "@tailwindcss/oxide-android-arm64": ["@tailwindcss/oxide-android-arm64@4.2.3", "", { "os": "android", "cpu": "arm64" }, "sha512-0Jmt1U/zPqeKp1+fvgI3qMqrV5b/EcFIbE5Dl5KdPl5Ri6e+95nlYNjfB3w8hJBeASI4IQSnIMz0tdVP1AVO4g=="], + "@tailwindcss/oxide-android-arm64": ["@tailwindcss/oxide-android-arm64@4.2.4", "", { "os": "android", "cpu": "arm64" }, "sha512-e7MOr1SAn9U8KlZzPi1ZXGZHeC5anY36qjNwmZv9pOJ8E4Q6jmD1vyEHkQFmNOIN7twGPEMXRHmitN4zCMN03g=="], - "@tailwindcss/oxide-darwin-arm64": ["@tailwindcss/oxide-darwin-arm64@4.2.3", "", { "os": "darwin", "cpu": "arm64" }, "sha512-c+/Etn/nghKBhd9fh2diG+3SEV1VTTPLlqH209yleofi28H87Cy6g1vsd3W3kf6r/dR5g4G4TEwHxo2Ydn6yFw=="], + "@tailwindcss/oxide-darwin-arm64": ["@tailwindcss/oxide-darwin-arm64@4.2.4", "", { "os": "darwin", "cpu": "arm64" }, "sha512-tSC/Kbqpz/5/o/C2sG7QvOxAKqyd10bq+ypZNf+9Fi2TvbVbv1zNpcEptcsU7DPROaSbVgUXmrzKhurFvo5eDg=="], - "@tailwindcss/oxide-darwin-x64": ["@tailwindcss/oxide-darwin-x64@4.2.3", "", { "os": "darwin", "cpu": "x64" }, "sha512-1DrKKsdJTLuLWVdpaLZ0j/g9YbCZyP9xnwSqEvl3gY4ZHdXmX7TwVAHkoWUljOq7JK5zvzIGhrYmfE/2DJ5qaA=="], + "@tailwindcss/oxide-darwin-x64": ["@tailwindcss/oxide-darwin-x64@4.2.4", "", { "os": "darwin", "cpu": "x64" }, "sha512-yPyUXn3yO/ufR6+Kzv0t4fCg2qNr90jxXc5QqBpjlPNd0NqyDXcmQb/6weunH/MEDXW5dhyEi+agTDiqa3WsGg=="], - "@tailwindcss/oxide-freebsd-x64": ["@tailwindcss/oxide-freebsd-x64@4.2.3", "", { "os": "freebsd", "cpu": "x64" }, "sha512-HE6HHZYF8k7m80eVQ0RBvRGBdvvLvCpHiT38IRH9JSnBlt1T7gDzWoslWjmpXQFuqlRpzkCpbdKJa3NxWMfgVA=="], + "@tailwindcss/oxide-freebsd-x64": ["@tailwindcss/oxide-freebsd-x64@4.2.4", "", { "os": "freebsd", "cpu": "x64" }, "sha512-BoMIB4vMQtZsXdGLVc2z+P9DbETkiopogfWZKbWwM8b/1Vinbs4YcUwo+kM/KeLkX3Ygrf4/PsRndKaYhS8Eiw=="], - "@tailwindcss/oxide-linux-arm-gnueabihf": ["@tailwindcss/oxide-linux-arm-gnueabihf@4.2.3", "", { "os": "linux", "cpu": "arm" }, "sha512-Li2wVd2kkKlKkTdpo7ujHSv6kxD1UYMvulAraikyvVf6AKNZ/VHbm8XoSNimZ+dF7SOFaDD2VAT64SK7WKcbjQ=="], + "@tailwindcss/oxide-linux-arm-gnueabihf": ["@tailwindcss/oxide-linux-arm-gnueabihf@4.2.4", "", { "os": "linux", "cpu": "arm" }, "sha512-7pIHBLTHYRAlS7V22JNuTh33yLH4VElwKtB3bwchK/UaKUPpQ0lPQiOWcbm4V3WP2I6fNIJ23vABIvoy2izdwA=="], - "@tailwindcss/oxide-linux-arm64-gnu": ["@tailwindcss/oxide-linux-arm64-gnu@4.2.3", "", { "os": "linux", "cpu": "arm64" }, "sha512-otIiImZaHj9MiDK02ItoWxIVcMTZVAX2F1c32bg9y7ecV0AnN5JHDZqIO8LxWsTuig1d+Bjg0cBWn4A9sGJO9Q=="], + "@tailwindcss/oxide-linux-arm64-gnu": ["@tailwindcss/oxide-linux-arm64-gnu@4.2.4", "", { "os": "linux", "cpu": "arm64" }, "sha512-+E4wxJ0ZGOzSH325reXTWB48l42i93kQqMvDyz5gqfRzRZ7faNhnmvlV4EPGJU3QJM/3Ab5jhJ5pCRUsKn6OQw=="], - "@tailwindcss/oxide-linux-arm64-musl": ["@tailwindcss/oxide-linux-arm64-musl@4.2.3", "", { "os": "linux", "cpu": "arm64" }, "sha512-MmIA32rNEOrjh6wnevlR3OjjlCuwgZ4JMJo7Vrhk4Fk56Vxi7EeF7cekSKwvlrnfcn/ERC1LdcG3sFneU8WdoA=="], + "@tailwindcss/oxide-linux-arm64-musl": ["@tailwindcss/oxide-linux-arm64-musl@4.2.4", "", { "os": "linux", "cpu": "arm64" }, "sha512-bBADEGAbo4ASnppIziaQJelekCxdMaxisrk+fB7Thit72IBnALp9K6ffA2G4ruj90G9XRS2VQ6q2bCKbfFV82g=="], - "@tailwindcss/oxide-linux-x64-gnu": ["@tailwindcss/oxide-linux-x64-gnu@4.2.3", "", { "os": "linux", "cpu": "x64" }, "sha512-BiCy1YV0IKO+xbD7gyZnENU4jdwDygeGQjncJoeIE5Kp4UqWHFsKUSJ3pp7vYURrqVzwJX2xD5gQeGnoXp4xPQ=="], + "@tailwindcss/oxide-linux-x64-gnu": ["@tailwindcss/oxide-linux-x64-gnu@4.2.4", "", { "os": "linux", "cpu": "x64" }, "sha512-7Mx25E4WTfnht0TVRTyC00j3i0M+EeFe7wguMDTlX4mRxafznw0CA8WJkFjWYH5BlgELd1kSjuU2JiPnNZbJDA=="], - "@tailwindcss/oxide-linux-x64-musl": ["@tailwindcss/oxide-linux-x64-musl@4.2.3", "", { "os": "linux", "cpu": "x64" }, "sha512-venvyAu0AMKdr0c1Oz23IJJdZ72zSwKyHrLvqQV1cn49vPAJk3AuVtDkJ1ayk1sYI4M4j8Jv6ZGflpaP0QVSXQ=="], + "@tailwindcss/oxide-linux-x64-musl": ["@tailwindcss/oxide-linux-x64-musl@4.2.4", "", { "os": "linux", "cpu": "x64" }, "sha512-2wwJRF7nyhOR0hhHoChc04xngV3iS+akccHTGtz965FwF0up4b2lOdo6kI1EbDaEXKgvcrFBYcYQQ/rrnWFVfA=="], - "@tailwindcss/oxide-wasm32-wasi": ["@tailwindcss/oxide-wasm32-wasi@4.2.3", "", { "dependencies": { "@emnapi/core": "^1.8.1", "@emnapi/runtime": "^1.8.1", "@emnapi/wasi-threads": "^1.1.0", "@napi-rs/wasm-runtime": "^1.1.1", "@tybys/wasm-util": "^0.10.1", "tslib": "^2.8.1" }, "cpu": "none" }, "sha512-e3kColrZZCdtbwIOc07cNQ2zNf1sTPXTYLjjPlsgsaf+ttzAg/hOlDyEgHoOlBGxM88nPxeVaOGe9ThqVzPncg=="], + "@tailwindcss/oxide-wasm32-wasi": ["@tailwindcss/oxide-wasm32-wasi@4.2.4", "", { "dependencies": { "@emnapi/core": "^1.8.1", "@emnapi/runtime": "^1.8.1", "@emnapi/wasi-threads": "^1.1.0", "@napi-rs/wasm-runtime": "^1.1.1", "@tybys/wasm-util": "^0.10.1", "tslib": "^2.8.1" }, "cpu": "none" }, "sha512-FQsqApeor8Fo6gUEklzmaa9994orJZZDBAlQpK2Mq+DslRKFJeD6AjHpBQ0kZFQohVr8o85PPh8eOy86VlSCmw=="], - "@tailwindcss/oxide-win32-arm64-msvc": ["@tailwindcss/oxide-win32-arm64-msvc@4.2.3", "", { "os": "win32", "cpu": "arm64" }, "sha512-qpwoUPzfu71cppxOtcz4LXMR1brljS13yOcAAnVHKIL++NJvSQKZBKlP39pVowd+G6Mq34YAbf4CUUYdLWL9gQ=="], + "@tailwindcss/oxide-win32-arm64-msvc": ["@tailwindcss/oxide-win32-arm64-msvc@4.2.4", "", { "os": "win32", "cpu": "arm64" }, "sha512-L9BXqxC4ToVgwMFqj3pmZRqyHEztulpUJzCxUtLjobMCzTPsGt1Fa9enKbOpY2iIyVtaHNeNvAK8ERP/64sqGQ=="], - "@tailwindcss/oxide-win32-x64-msvc": ["@tailwindcss/oxide-win32-x64-msvc@4.2.3", "", { "os": "win32", "cpu": "x64" }, "sha512-dTRIlLRC5lCRHqO5DLb+A18HCvS394axmzqfnRNLptKVw7WuckpUwo1Z87Yw74mesbeIhnQTA2SZbRcIfVlwxg=="], + "@tailwindcss/oxide-win32-x64-msvc": ["@tailwindcss/oxide-win32-x64-msvc@4.2.4", "", { "os": "win32", "cpu": "x64" }, "sha512-ESlKG0EpVJQwRjXDDa9rLvhEAh0mhP1sF7sap9dNZT0yyl9SAG6T7gdP09EH0vIv0UNTlo6jPWyujD6559fZvw=="], - "@tailwindcss/postcss": ["@tailwindcss/postcss@4.2.3", "", { "dependencies": { "@alloc/quick-lru": "^5.2.0", "@tailwindcss/node": "4.2.3", "@tailwindcss/oxide": "4.2.3", "postcss": "^8.5.6", "tailwindcss": "4.2.3" } }, "sha512-MehdHOQRVFf300r8F430s4cf2QL+nSjFUNIndX5ZMqDLyMwTnyL4RDZsoDsDU+ThzT5eCj1+erSDKBWdn462Nw=="], + "@tailwindcss/postcss": ["@tailwindcss/postcss@4.2.4", "", { "dependencies": { "@alloc/quick-lru": "^5.2.0", "@tailwindcss/node": "4.2.4", "@tailwindcss/oxide": "4.2.4", "postcss": "^8.5.6", "tailwindcss": "4.2.4" } }, "sha512-wgAVj6nUWAolAu8YFvzT2cTBIElWHkjZwFYovF+xsqKsW2ADxM/X2opxj5NsF/qVccAOjRNe8X2IdPzMsWyHTg=="], "@tailwindcss/typography": ["@tailwindcss/typography@0.5.19", "", { "dependencies": { "postcss-selector-parser": "6.0.10" }, "peerDependencies": { "tailwindcss": ">=3.0.0 || insiders || >=4.0.0-alpha.20 || >=4.0.0-beta.1" } }, "sha512-w31dd8HOx3k9vPtcQh5QHP9GwKcgbMp87j58qi6xgiBnFFtKEAgCWnDw4qUT8aHwkCp8bKvb/KGKWWHedP0AAg=="], @@ -1428,6 +1431,8 @@ "node-releases": ["node-releases@2.0.37", "", {}, "sha512-1h5gKZCF+pO/o3Iqt5Jp7wc9rH3eJJ0+nh/CIoiRwjRxde/hAHyLPXYN4V3CqKAbiZPSeJFSWHmJsbkicta0Eg=="], + "nodemailer": ["nodemailer@7.0.12", "", {}, "sha512-H+rnK5bX2Pi/6ms3sN4/jRQvYSMltV6vqup/0SFOrxYYY/qoNvhXPlYq3e+Pm9RFJRwrMGbMIwi81M4dxpomhA=="], + "normalize-path": ["normalize-path@3.0.0", "", {}, "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA=="], "object-assign": ["object-assign@4.1.1", "", {}, "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg=="], @@ -1482,7 +1487,7 @@ "pathe": ["pathe@2.0.3", "", {}, "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w=="], - "payload": ["payload@3.83.0", "", { "dependencies": { "@next/env": "^15.1.5", "@payloadcms/translations": "3.83.0", "@types/busboy": "1.5.4", "ajv": "8.18.0", "bson-objectid": "2.0.4", "busboy": "^1.6.0", "ci-info": "^4.1.0", "console-table-printer": "2.12.1", "croner": "10.0.1", "dataloader": "2.2.3", "deepmerge": "4.3.1", "file-type": "21.3.4", "get-tsconfig": "4.8.1", "http-status": "2.1.0", "image-size": "2.0.2", "ipaddr.js": "2.2.0", "jose": "5.10.0", "json-schema-to-typescript": "15.0.3", "minimist": "1.2.8", "path-to-regexp": "6.3.0", "pino": "9.14.0", "pino-pretty": "13.1.2", "pluralize": "8.0.0", "qs-esm": "8.0.1", "range-parser": "1.2.1", "sanitize-filename": "1.6.3", "ts-essentials": "10.0.3", "tsx": "4.21.0", "undici": "7.24.4", "uuid": "11.1.0", "ws": "^8.16.0" }, "peerDependencies": { "graphql": "^16.8.1" }, "bin": { "payload": "bin.js" } }, "sha512-3DMcqYVn2pg6b1tqfFtkpuDKgHiqDXLKEDYg3kGAYucqa0AYo2E+EPA1QGNNQ2AIduLf9vbn43nmSMAEq/QC/g=="], + "payload": ["payload@3.84.1", "", { "dependencies": { "@next/env": "^15.1.5", "@payloadcms/translations": "3.84.1", "@types/busboy": "1.5.4", "ajv": "8.18.0", "bson-objectid": "2.0.4", "busboy": "^1.6.0", "ci-info": "^4.1.0", "console-table-printer": "2.12.1", "croner": "10.0.1", "dataloader": "2.2.3", "deepmerge": "4.3.1", "file-type": "21.3.4", "get-tsconfig": "4.8.1", "http-status": "2.1.0", "image-size": "2.0.2", "ipaddr.js": "2.2.0", "jose": "5.10.0", "json-schema-to-typescript": "15.0.3", "minimist": "1.2.8", "path-to-regexp": "6.3.0", "pino": "9.14.0", "pino-pretty": "13.1.2", "pluralize": "8.0.0", "qs-esm": "8.0.1", "range-parser": "1.2.1", "sanitize-filename": "1.6.3", "ts-essentials": "10.0.3", "tsx": "4.21.0", "undici": "7.24.4", "uuid": "11.1.0", "ws": "^8.16.0" }, "peerDependencies": { "graphql": "^16.8.1" }, "bin": { "payload": "bin.js" } }, "sha512-+aPqqeYsffrzaYmsX/Qt+mHNgcTUyc5TIjjPOaMIrG6nDx6siZ2h9Gv3b3RKAVPt7PWkHI+ooEW3cQbwiDd99Q=="], "pg": ["pg@8.20.0", "", { "dependencies": { "pg-connection-string": "^2.12.0", "pg-pool": "^3.13.0", "pg-protocol": "^1.13.0", "pg-types": "2.2.0", "pgpass": "1.0.5" }, "optionalDependencies": { "pg-cloudflare": "^1.3.0" }, "peerDependencies": { "pg-native": ">=3.0.1" }, "optionalPeers": ["pg-native"] }, "sha512-ldhMxz2r8fl/6QkXnBD3CR9/xg694oT6DZQ2s6c/RI28OjtSOpxnPrUCGOBJ46RCUxcWdx3p6kw/xnDHjKvaRA=="], @@ -1520,7 +1525,7 @@ "possible-typed-array-names": ["possible-typed-array-names@1.1.0", "", {}, "sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg=="], - "postcss": ["postcss@8.5.10", "", { "dependencies": { "nanoid": "^3.3.11", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" } }, "sha512-pMMHxBOZKFU6HgAZ4eyGnwXF/EvPGGqUr0MnZ5+99485wwW41kW91A4LOGxSHhgugZmSChL5AlElNdwlNgcnLQ=="], + "postcss": ["postcss@8.5.12", "", { "dependencies": { "nanoid": "^3.3.11", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" } }, "sha512-W62t/Se6rA0Az3DfCL0AqJwXuKwBeYg6nOaIgzP+xZ7N5BFCI7DYi1qs6ygUYT6rvfi6t9k65UMLJC+PHZpDAA=="], "postcss-selector-parser": ["postcss-selector-parser@6.0.10", "", { "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" } }, "sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w=="], @@ -1716,7 +1721,7 @@ "tailwind-merge": ["tailwind-merge@3.5.0", "", {}, "sha512-I8K9wewnVDkL1NTGoqWmVEIlUcB9gFriAEkXkfCjX5ib8ezGxtR3xD7iZIxrfArjEsH7F1CHD4RFUtxefdqV/A=="], - "tailwindcss": ["tailwindcss@4.2.3", "", {}, "sha512-fA/NX5gMf0ooCLISgB0wScaWgaj6rjTN2SVAwleURjiya7ITNkV+VMmoHtKkldP6CIZoYCZyxb8zP/e2TWoEtQ=="], + "tailwindcss": ["tailwindcss@4.2.4", "", {}, "sha512-HhKppgO81FQof5m6TEnuBWCZGgfRAWbaeOaGT00KOy/Pf/j6oUihdvBpA7ltCeAvZpFhW3j0PTclkxsd4IXYDA=="], "tapable": ["tapable@2.3.2", "", {}, "sha512-1MOpMXuhGzGL5TTCZFItxCc0AARf1EZFQkGqMm7ERKj8+Hgr5oLvJOVFcC+lRmR8hCe2S3jC4T5D7Vg/d7/fhA=="], @@ -1988,6 +1993,8 @@ "tsconfig-paths/json5": ["json5@1.0.2", "", { "dependencies": { "minimist": "^1.2.0" }, "bin": { "json5": "lib/cli.js" } }, "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA=="], + "vite/postcss": ["postcss@8.5.10", "", { "dependencies": { "nanoid": "^3.3.11", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" } }, "sha512-pMMHxBOZKFU6HgAZ4eyGnwXF/EvPGGqUr0MnZ5+99485wwW41kW91A4LOGxSHhgugZmSChL5AlElNdwlNgcnLQ=="], + "@esbuild-kit/core-utils/esbuild/@esbuild/android-arm": ["@esbuild/android-arm@0.18.20", "", { "os": "android", "cpu": "arm" }, "sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw=="], "@esbuild-kit/core-utils/esbuild/@esbuild/android-arm64": ["@esbuild/android-arm64@0.18.20", "", { "os": "android", "cpu": "arm64" }, "sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ=="], diff --git a/next-env.d.ts b/next-env.d.ts index 9edff1c..c4b7818 100644 --- a/next-env.d.ts +++ b/next-env.d.ts @@ -1,6 +1,6 @@ /// /// -import "./.next/types/routes.d.ts"; +import "./.next/dev/types/routes.d.ts"; // NOTE: This file should not be edited // see https://nextjs.org/docs/app/api-reference/config/typescript for more information. diff --git a/package.json b/package.json index 7d336f6..0d3dce3 100644 --- a/package.json +++ b/package.json @@ -27,56 +27,57 @@ "dependencies": { "@awesome.me/kit-3dc4522338": "^1.0.4", "@fortawesome/react-fontawesome": "^3.3.1", - "@payloadcms/admin-bar": "3.83.0", - "@payloadcms/db-postgres": "3.83.0", - "@payloadcms/live-preview-react": "3.83.0", - "@payloadcms/next": "3.83.0", - "@payloadcms/plugin-form-builder": "3.83.0", - "@payloadcms/plugin-nested-docs": "3.83.0", - "@payloadcms/plugin-redirects": "3.83.0", - "@payloadcms/plugin-search": "3.83.0", - "@payloadcms/plugin-seo": "3.83.0", - "@payloadcms/richtext-lexical": "3.83.0", - "@payloadcms/ui": "3.83.0", - "@radix-ui/react-checkbox": "^1.0.4", - "@radix-ui/react-label": "^2.0.2", - "@radix-ui/react-select": "^2.0.0", - "@radix-ui/react-slot": "^1.0.2", - "class-variance-authority": "^0.7.0", + "@payloadcms/admin-bar": "^3.84.1", + "@payloadcms/db-postgres": "^3.84.1", + "@payloadcms/email-nodemailer": "^3.84.1", + "@payloadcms/live-preview-react": "^3.84.1", + "@payloadcms/next": "^3.84.1", + "@payloadcms/plugin-form-builder": "^3.84.1", + "@payloadcms/plugin-nested-docs": "^3.84.1", + "@payloadcms/plugin-redirects": "^3.84.1", + "@payloadcms/plugin-search": "^3.84.1", + "@payloadcms/plugin-seo": "^3.84.1", + "@payloadcms/richtext-lexical": "^3.84.1", + "@payloadcms/ui": "^3.84.1", + "@radix-ui/react-checkbox": "^1.3.3", + "@radix-ui/react-label": "^2.1.8", + "@radix-ui/react-select": "^2.2.6", + "@radix-ui/react-slot": "^1.2.4", + "class-variance-authority": "^0.7.1", "clsx": "^2.1.1", "cross-env": "^7.0.3", "dotenv": "16.4.7", - "geist": "^1.3.0", - "graphql": "^16.8.2", + "geist": "^1.7.0", + "graphql": "^16.13.2", "lucide-react": "0.563.0", "next": "16.2.3", "next-sitemap": "^4.2.3", - "payload": "3.83.0", - "prism-react-renderer": "^2.3.1", + "payload": "^3.84.1", + "prism-react-renderer": "^2.4.1", "react": "19.2.4", "react-dom": "19.2.4", "react-hook-form": "7.71.1", "sharp": "0.34.2", - "tailwind-merge": "^3.4.0" + "tailwind-merge": "^3.5.0" }, "devDependencies": { - "@eslint/eslintrc": "^3.2.0", + "@eslint/eslintrc": "^3.3.5", "@playwright/test": "1.58.2", - "@tailwindcss/postcss": "^4.1.18", + "@tailwindcss/postcss": "^4.2.4", "@tailwindcss/typography": "^0.5.19", "@testing-library/react": "16.3.0", - "@types/escape-html": "^1.0.2", + "@types/escape-html": "^1.0.4", "@types/node": "22.19.9", "@types/react": "19.2.14", "@types/react-dom": "19.2.3", "@vitejs/plugin-react": "4.5.2", - "autoprefixer": "^10.4.19", - "eslint": "^9.16.0", + "autoprefixer": "^10.5.0", + "eslint": "^9.39.4", "eslint-config-next": "16.2.3", "jsdom": "28.0.0", - "postcss": "^8.4.38", - "prettier": "^3.4.2", - "tailwindcss": "^4.1.18", + "postcss": "^8.5.12", + "prettier": "^3.8.3", + "tailwindcss": "^4.2.4", "tsx": "4.21.0", "tw-animate-css": "^1.4.0", "typescript": "5.7.3", diff --git a/public/logo-white-large.svg b/public/logo-white-large.svg new file mode 100644 index 0000000..196ede9 --- /dev/null +++ b/public/logo-white-large.svg @@ -0,0 +1,67 @@ + + + + diff --git a/src/Footer/Component.tsx b/src/Footer/Component.tsx index 737a295..26e1646 100644 --- a/src/Footer/Component.tsx +++ b/src/Footer/Component.tsx @@ -1,32 +1,33 @@ -import { getCachedGlobal } from '@/utilities/getGlobals' -import Link from 'next/link' -import React from 'react' +import { getCachedGlobal } from "@/utilities/getGlobals"; +import Link from "next/link"; +import React from "react"; -import { ThemeSelector } from '@/providers/Theme/ThemeSelector' -import { CMSLink } from '@/components/Link' -import { Logo } from '@/components/Logo/Logo' +import { ThemeSelector } from "@/providers/Theme/ThemeSelector"; +import { CMSLink } from "@/components/Link"; +import { Logo } from "@/components/Logo/Logo"; +import LogoLarge from "@/components/Logo/LogoLarge"; export async function Footer() { - const footerData = await getCachedGlobal('footer', 1)() + const footerData = await getCachedGlobal("footer", 1)(); - const navItems = footerData?.navItems || [] + const navItems = footerData?.navItems || []; return (
- +
- +
- ) + ); } diff --git a/src/Header/Component.client.tsx b/src/Header/Component.client.tsx index a4bd658..1545e9f 100644 --- a/src/Header/Component.client.tsx +++ b/src/Header/Component.client.tsx @@ -8,6 +8,7 @@ import type { Header } from '@/payload-types' import { Logo } from '@/components/Logo/Logo' import { HeaderNav } from './Nav' +import { LogoLarge } from "@/components/Logo/LogoLarge"; interface HeaderClientProps { data: Header @@ -33,7 +34,7 @@ export const HeaderClient: React.FC = ({ data }) => {
- +
diff --git a/src/app/(payload)/admin/importMap.js b/src/app/(payload)/admin/importMap.js index 18b27e8..6720791 100644 --- a/src/app/(payload)/admin/importMap.js +++ b/src/app/(payload)/admin/importMap.js @@ -8,9 +8,10 @@ import { ParagraphFeatureClient as ParagraphFeatureClient_e70f5e05f09f93e00b997e import { UnderlineFeatureClient as UnderlineFeatureClient_e70f5e05f09f93e00b997edb1ef0c864 } from '@payloadcms/richtext-lexical/client' import { BoldFeatureClient as BoldFeatureClient_e70f5e05f09f93e00b997edb1ef0c864 } from '@payloadcms/richtext-lexical/client' import { ItalicFeatureClient as ItalicFeatureClient_e70f5e05f09f93e00b997edb1ef0c864 } from '@payloadcms/richtext-lexical/client' -import { LinkFeatureClient as LinkFeatureClient_e70f5e05f09f93e00b997edb1ef0c864 } from '@payloadcms/richtext-lexical/client' +import { AlignFeatureClient as AlignFeatureClient_e70f5e05f09f93e00b997edb1ef0c864 } from '@payloadcms/richtext-lexical/client' import { UnorderedListFeatureClient as UnorderedListFeatureClient_e70f5e05f09f93e00b997edb1ef0c864 } from '@payloadcms/richtext-lexical/client' import { OrderedListFeatureClient as OrderedListFeatureClient_e70f5e05f09f93e00b997edb1ef0c864 } from '@payloadcms/richtext-lexical/client' +import { LinkFeatureClient as LinkFeatureClient_e70f5e05f09f93e00b997edb1ef0c864 } from '@payloadcms/richtext-lexical/client' import { OverviewComponent as OverviewComponent_a8a977ebc872c5d5ea7ee689724c0860 } from '@payloadcms/plugin-seo/client' import { MetaTitleComponent as MetaTitleComponent_a8a977ebc872c5d5ea7ee689724c0860 } from '@payloadcms/plugin-seo/client' import { MetaImageComponent as MetaImageComponent_a8a977ebc872c5d5ea7ee689724c0860 } from '@payloadcms/plugin-seo/client' @@ -26,6 +27,8 @@ import { ReindexButton as ReindexButton_aead06e4cbf6b2620c5c51c9ab283634 } from import { FolderTypeField as FolderTypeField_2b8867833a34864a02ddf429b0728a40 } from '@payloadcms/next/client' import { RowLabel as RowLabel_ec255a65fa6fa8d1faeb09cf35284224 } from '@/Header/RowLabel' import { RowLabel as RowLabel_1f6ff6ff633e3695d348f4f3c58f1466 } from '@/Footer/RowLabel' +import { default as default_566629f80931517f5befb54103e89cc5 } from '@/components/Logo/Logo.tsx' +import { default as default_6c2236c4a7e461fdc53e5e596733fd61 } from '@/components/Logo/LogoLarge.tsx' import { default as default_1a7510af427896d367a49dbf838d2de6 } from '@/components/BeforeDashboard' import { default as default_8a7ab0eb7ab5c511aba12e68480bfe5e } from '@/components/BeforeLogin' import { CollectionCards as CollectionCards_f9c02e79a4aed9a3924487c0cd4cafb1 } from '@payloadcms/next/rsc' @@ -42,9 +45,10 @@ export const importMap = { "@payloadcms/richtext-lexical/client#UnderlineFeatureClient": UnderlineFeatureClient_e70f5e05f09f93e00b997edb1ef0c864, "@payloadcms/richtext-lexical/client#BoldFeatureClient": BoldFeatureClient_e70f5e05f09f93e00b997edb1ef0c864, "@payloadcms/richtext-lexical/client#ItalicFeatureClient": ItalicFeatureClient_e70f5e05f09f93e00b997edb1ef0c864, - "@payloadcms/richtext-lexical/client#LinkFeatureClient": LinkFeatureClient_e70f5e05f09f93e00b997edb1ef0c864, + "@payloadcms/richtext-lexical/client#AlignFeatureClient": AlignFeatureClient_e70f5e05f09f93e00b997edb1ef0c864, "@payloadcms/richtext-lexical/client#UnorderedListFeatureClient": UnorderedListFeatureClient_e70f5e05f09f93e00b997edb1ef0c864, "@payloadcms/richtext-lexical/client#OrderedListFeatureClient": OrderedListFeatureClient_e70f5e05f09f93e00b997edb1ef0c864, + "@payloadcms/richtext-lexical/client#LinkFeatureClient": LinkFeatureClient_e70f5e05f09f93e00b997edb1ef0c864, "@payloadcms/plugin-seo/client#OverviewComponent": OverviewComponent_a8a977ebc872c5d5ea7ee689724c0860, "@payloadcms/plugin-seo/client#MetaTitleComponent": MetaTitleComponent_a8a977ebc872c5d5ea7ee689724c0860, "@payloadcms/plugin-seo/client#MetaImageComponent": MetaImageComponent_a8a977ebc872c5d5ea7ee689724c0860, @@ -60,6 +64,8 @@ export const importMap = { "@payloadcms/next/client#FolderTypeField": FolderTypeField_2b8867833a34864a02ddf429b0728a40, "@/Header/RowLabel#RowLabel": RowLabel_ec255a65fa6fa8d1faeb09cf35284224, "@/Footer/RowLabel#RowLabel": RowLabel_1f6ff6ff633e3695d348f4f3c58f1466, + "@/components/Logo/Logo.tsx#default": default_566629f80931517f5befb54103e89cc5, + "@/components/Logo/LogoLarge.tsx#default": default_6c2236c4a7e461fdc53e5e596733fd61, "@/components/BeforeDashboard#default": default_1a7510af427896d367a49dbf838d2de6, "@/components/BeforeLogin#default": default_8a7ab0eb7ab5c511aba12e68480bfe5e, "@payloadcms/next/rsc#CollectionCards": CollectionCards_f9c02e79a4aed9a3924487c0cd4cafb1 diff --git a/src/blocks/ProjectDisplayBlock/Component.tsx b/src/blocks/ProjectDisplayBlock/Component.tsx index 4c2d4af..68cd30c 100644 --- a/src/blocks/ProjectDisplayBlock/Component.tsx +++ b/src/blocks/ProjectDisplayBlock/Component.tsx @@ -46,7 +46,7 @@ export const ProjectDisplayBlock: React.FC = (props) => { >
{(media || staticImage) && ( diff --git a/src/components/Logo/Logo.tsx b/src/components/Logo/Logo.tsx index 7886720..a50a0fb 100644 --- a/src/components/Logo/Logo.tsx +++ b/src/components/Logo/Logo.tsx @@ -37,3 +37,5 @@ export const Logo = (props: Props) => { />*/ ) } + +export default Logo; \ No newline at end of file diff --git a/src/components/Logo/LogoLarge.tsx b/src/components/Logo/LogoLarge.tsx new file mode 100644 index 0000000..5d3caaf --- /dev/null +++ b/src/components/Logo/LogoLarge.tsx @@ -0,0 +1,41 @@ +import clsx from 'clsx' +import React from 'react' + +interface Props { + className?: string + loading?: 'lazy' | 'eager' + priority?: 'auto' | 'high' | 'low' +} + +export const LogoLarge = (props: Props) => { + const { loading: loadingFromProps, priority: priorityFromProps, className } = props + + const loading = loadingFromProps || 'lazy' + const priority = priorityFromProps || 'low' + + return ( + /* eslint-disable @next/next/no-img-element */ + ONYXSimple Logo + /*Payload Logo*/ + ) +} + +export default LogoLarge; \ No newline at end of file diff --git a/src/fields/defaultLexical.ts b/src/fields/defaultLexical.ts index 2468d6e..507969c 100644 --- a/src/fields/defaultLexical.ts +++ b/src/fields/defaultLexical.ts @@ -1,4 +1,4 @@ -import type { TextFieldSingleValidation } from 'payload' +import type { TextFieldSingleValidation } from "payload"; import { BoldFeature, ItalicFeature, @@ -6,42 +6,47 @@ import { ParagraphFeature, lexicalEditor, UnderlineFeature, - type LinkFields, -} from '@payloadcms/richtext-lexical' + type LinkFields, HeadingFeature, FixedToolbarFeature, UnorderedListFeature, OrderedListFeature, AlignFeature, +} from "@payloadcms/richtext-lexical"; export const defaultLexical = lexicalEditor({ features: [ + FixedToolbarFeature(), ParagraphFeature(), UnderlineFeature(), BoldFeature(), ItalicFeature(), + AlignFeature(), + UnorderedListFeature(), + OrderedListFeature(), + HeadingFeature({ enabledHeadingSizes: ["h2", "h3", "h4"] }), LinkFeature({ - enabledCollections: ['pages', 'posts'], + enabledCollections: ["pages", "posts"], fields: ({ defaultFields }) => { const defaultFieldsWithoutUrl = defaultFields.filter((field) => { - if ('name' in field && field.name === 'url') return false - return true - }) + if ("name" in field && field.name === "url") return false; + return true; + }); return [ ...defaultFieldsWithoutUrl, { - name: 'url', - type: 'text', + name: "url", + type: "text", admin: { - condition: (_data, siblingData) => siblingData?.linkType !== 'internal', + condition: (_data, siblingData) => siblingData?.linkType !== "internal", }, - label: ({ t }) => t('fields:enterURL'), + label: ({ t }) => t("fields:enterURL"), required: true, validate: ((value, options) => { - if ((options?.siblingData as LinkFields)?.linkType === 'internal') { - return true // no validation needed, as no url should exist for internal links + if ((options?.siblingData as LinkFields)?.linkType === "internal") { + return true; // no validation needed, as no url should exist for internal links } - return value ? true : 'URL is required' + return value ? true : "URL is required"; }) as TextFieldSingleValidation, }, - ] + ]; }, }), ], -}) +}); diff --git a/src/payload.config.ts b/src/payload.config.ts index 738308b..01dbd83 100644 --- a/src/payload.config.ts +++ b/src/payload.config.ts @@ -1,32 +1,37 @@ -import { postgresAdapter } from '@payloadcms/db-postgres' -import sharp from 'sharp' -import path from 'path' -import { buildConfig, PayloadRequest } from 'payload' -import { fileURLToPath } from 'url' +import { postgresAdapter } from "@payloadcms/db-postgres"; +import sharp from "sharp"; +import path from "path"; +import { buildConfig, PayloadRequest } from "payload"; +import { fileURLToPath } from "url"; -import { Categories } from './collections/Categories' -import { Media } from './collections/Media' -import { Pages } from './collections/Pages' -import { Posts } from './collections/Posts' -import { Users } from './collections/Users' -import { Footer } from './Footer/config' -import { Header } from './Header/config' -import { plugins } from './plugins' -import { defaultLexical } from '@/fields/defaultLexical' -import { getServerSideURL } from './utilities/getURL' +import { Categories } from "./collections/Categories"; +import { Media } from "./collections/Media"; +import { Pages } from "./collections/Pages"; +import { Posts } from "./collections/Posts"; +import { Users } from "./collections/Users"; +import { Footer } from "./Footer/config"; +import { Header } from "./Header/config"; +import { plugins } from "./plugins"; +import { defaultLexical } from "@/fields/defaultLexical"; +import { getServerSideURL } from "./utilities/getURL"; +import { nodemailerAdapter } from "@payloadcms/email-nodemailer"; -const filename = fileURLToPath(import.meta.url) -const dirname = path.dirname(filename) +const filename = fileURLToPath(import.meta.url); +const dirname = path.dirname(filename); export default buildConfig({ admin: { components: { // The `BeforeLogin` component renders a message that you see while logging into your admin panel. // Feel free to delete this at any time. Simply remove the line below. - beforeLogin: ['@/components/BeforeLogin'], + beforeLogin: ["@/components/BeforeLogin"], // The `BeforeDashboard` component renders the 'welcome' block that you see after logging into your admin panel. // Feel free to delete this at any time. Simply remove the line below. - beforeDashboard: ['@/components/BeforeDashboard'], + beforeDashboard: ["@/components/BeforeDashboard"], + graphics: { + Icon: "@/components/Logo/Logo.tsx", + Logo: "@/components/Logo/LogoLarge.tsx", + }, }, importMap: { baseDir: path.resolve(dirname), @@ -35,20 +40,20 @@ export default buildConfig({ livePreview: { breakpoints: [ { - label: 'Mobile', - name: 'mobile', + label: "Mobile", + name: "mobile", width: 375, height: 667, }, { - label: 'Tablet', - name: 'tablet', + label: "Tablet", + name: "tablet", width: 768, height: 1024, }, { - label: 'Desktop', - name: 'desktop', + label: "Desktop", + name: "desktop", width: 1440, height: 900, }, @@ -59,9 +64,22 @@ export default buildConfig({ editor: defaultLexical, db: postgresAdapter({ pool: { - connectionString: process.env.DATABASE_URL || '', + connectionString: process.env.DATABASE_URL || "", }, }), + email: nodemailerAdapter({ + defaultFromAddress: 'no-reply@onyxsimple.com', + defaultFromName: 'ONYXSimple', + transportOptions: { + service: process.env.SMTP_SERVICE, + host: process.env.SMTP_HOST, + port: Number(process.env.SMTP_PORT) || 587, + auth: { + user: process.env.SMTP_USER, + pass: process.env.SMTP_PASS, + } + } + }), collections: [Pages, Posts, Media, Categories, Users], cors: [getServerSideURL()].filter(Boolean), globals: [Header, Footer], @@ -69,24 +87,24 @@ export default buildConfig({ secret: process.env.PAYLOAD_SECRET, sharp, typescript: { - outputFile: path.resolve(dirname, 'payload-types.ts'), + outputFile: path.resolve(dirname, "payload-types.ts"), }, jobs: { access: { run: ({ req }: { req: PayloadRequest }): boolean => { // Allow logged in users to execute this endpoint (default) - if (req.user) return true + if (req.user) return true; - const secret = process.env.CRON_SECRET - if (!secret) return false + const secret = process.env.CRON_SECRET; + if (!secret) return false; // If there is no logged in user, then check // for the Vercel Cron secret to be present as an // Authorization header: - const authHeader = req.headers.get('authorization') - return authHeader === `Bearer ${secret}` + const authHeader = req.headers.get("authorization"); + return authHeader === `Bearer ${secret}`; }, }, tasks: [], }, -}) +}); diff --git a/src/plugins/index.ts b/src/plugins/index.ts index e68c728..8c15370 100644 --- a/src/plugins/index.ts +++ b/src/plugins/index.ts @@ -1,45 +1,45 @@ -import { formBuilderPlugin } from '@payloadcms/plugin-form-builder' -import { nestedDocsPlugin } from '@payloadcms/plugin-nested-docs' -import { redirectsPlugin } from '@payloadcms/plugin-redirects' -import { seoPlugin } from '@payloadcms/plugin-seo' -import { searchPlugin } from '@payloadcms/plugin-search' -import { Plugin } from 'payload' -import { revalidateRedirects } from '@/hooks/revalidateRedirects' -import { GenerateTitle, GenerateURL } from '@payloadcms/plugin-seo/types' -import { FixedToolbarFeature, HeadingFeature, lexicalEditor } from '@payloadcms/richtext-lexical' -import { searchFields } from '@/search/fieldOverrides' -import { beforeSyncWithSearch } from '@/search/beforeSync' +import { formBuilderPlugin } from "@payloadcms/plugin-form-builder"; +import { nestedDocsPlugin } from "@payloadcms/plugin-nested-docs"; +import { redirectsPlugin } from "@payloadcms/plugin-redirects"; +import { seoPlugin } from "@payloadcms/plugin-seo"; +import { searchPlugin } from "@payloadcms/plugin-search"; +import { Plugin } from "payload"; +import { revalidateRedirects } from "@/hooks/revalidateRedirects"; +import { GenerateTitle, GenerateURL } from "@payloadcms/plugin-seo/types"; +import { FixedToolbarFeature, HeadingFeature, lexicalEditor } from "@payloadcms/richtext-lexical"; +import { searchFields } from "@/search/fieldOverrides"; +import { beforeSyncWithSearch } from "@/search/beforeSync"; -import { Page, Post } from '@/payload-types' -import { getServerSideURL } from '@/utilities/getURL' +import { Page, Post } from "@/payload-types"; +import { getServerSideURL } from "@/utilities/getURL"; const generateTitle: GenerateTitle = ({ doc }) => { - return doc?.title ? `${doc.title} | ONYXSimple` : 'ONYXSimple' -} + return doc?.title ? `${doc.title} | ONYXSimple` : "ONYXSimple"; +}; const generateURL: GenerateURL = ({ doc }) => { - const url = getServerSideURL() + const url = getServerSideURL(); - return doc?.slug ? `${url}/${doc.slug}` : url -} + return doc?.slug ? `${url}/${doc.slug}` : url; +}; export const plugins: Plugin[] = [ redirectsPlugin({ - collections: ['pages', 'posts'], + collections: ["pages", "posts"], overrides: { // @ts-expect-error - This is a valid override, mapped fields don't resolve to the same type fields: ({ defaultFields }) => { return defaultFields.map((field) => { - if ('name' in field && field.name === 'from') { + if ("name" in field && field.name === "from") { return { ...field, admin: { - description: 'You will need to rebuild the website when changing this field.', + description: "You will need to rebuild the website when changing this field.", }, - } + }; } - return field - }) + return field; + }); }, hooks: { afterChange: [revalidateRedirects], @@ -47,8 +47,8 @@ export const plugins: Plugin[] = [ }, }), nestedDocsPlugin({ - collections: ['categories'], - generateURL: (docs) => docs.reduce((url, doc) => `${url}/${doc.slug}`, ''), + collections: ["categories"], + generateURL: (docs) => docs.reduce((url, doc) => `${url}/${doc.slug}`, ""), }), seoPlugin({ generateTitle, @@ -61,7 +61,7 @@ export const plugins: Plugin[] = [ formOverrides: { fields: ({ defaultFields }) => { return defaultFields.map((field) => { - if ('name' in field && field.name === 'confirmationMessage') { + if ("name" in field && field.name === "confirmationMessage") { return { ...field, editor: lexicalEditor({ @@ -69,24 +69,24 @@ export const plugins: Plugin[] = [ return [ ...rootFeatures, FixedToolbarFeature(), - HeadingFeature({ enabledHeadingSizes: ['h1', 'h2', 'h3', 'h4'] }), - ] + HeadingFeature({ enabledHeadingSizes: ["h1", "h2", "h3", "h4"] }), + ]; }, }), - } + }; } - return field - }) + return field; + }); }, }, }), searchPlugin({ - collections: ['posts'], + collections: ["posts"], beforeSync: beforeSyncWithSearch, searchOverrides: { fields: ({ defaultFields }) => { - return [...defaultFields, ...searchFields] + return [...defaultFields, ...searchFields]; }, }, }), -] +];