Compare commits

..

11 Commits

Author SHA1 Message Date
Elliot DeNolf
429f1a1ccd chore(release): v3.0.0-beta.115 [skip ci] 2024-10-16 14:12:20 -04:00
Dan Ribbens
7019f22aad chore: bump drizzle-orm 0.35.1 (#8742) 2024-10-16 15:14:20 +00:00
Said Akhrarov
c4fa885e84 fix(ui): restrict file picking via upload config mimetypes (#8710)
Fixes #8673

This PR restricts inputs with `type="file"` to only those mimetypes
specified in collection upload configs. This also works for the input in
`bulkUpload` and drag-and-drop capabilities by omitting dropped files if
they do not conform to the upload config mimetypes. This PR also assumes
that an upload config with an empty mimetype array should accept all
files since the negation of that statement makes an upload collection
redundant.
2024-10-16 09:24:21 -04:00
Jarrod Flesch
a9c6a91c1c chore(examples): correct where path comes from in multi-tenant (#8698) 2024-10-16 08:28:28 -04:00
Jarrod Flesch
a19e8d382d fix: corrects schemaPath passing (#8726)
Fixes https://github.com/payloadcms/payload/issues/8690

Fixes an issue where unrelated schema paths were being joined and passed
into nested sanitizeFields function calls.
2024-10-16 06:59:37 -04:00
Paul
e6a1ca5049 fix(ui): add missing styles under the payload-default css layer (#8723) 2024-10-16 01:58:50 +00:00
Dan Ribbens
6d0676ab09 chore: bump drizzle-kit 0.26.1 (#8721) 2024-10-15 21:12:40 +00:00
Dan Ribbens
93545f3103 fix(db-postgres, db-sqlite)!: bump drizzle-kit drizzle-orm @libsql/client (#8617)
Inheriting all the fixes from drizzle moving to latest versions

## BREAKING CHANGES
If you have a prior version of @libsql/client installed in your project,
you must upgrade to 0.14.0
2024-10-15 20:20:50 +00:00
Patrik
8d10737b2f fix(ui): removes overflow: hidden style from actions wrapper (#8717)
`Before`:
![Screenshot 2024-10-15 at 2 55
22 PM](https://github.com/user-attachments/assets/39b261c4-bb72-4497-ab47-01d430255773)

`After`:
![Screenshot 2024-10-15 at 2 55
07 PM](https://github.com/user-attachments/assets/8913479a-9e0b-4edf-baa1-130dc179af34)
2024-10-15 15:58:36 -04:00
Paul
303a224072 fix(templates): website template issue with previewing drafts (#8714)
Fixes https://github.com/payloadcms/payload/issues/8708
2024-10-15 15:10:34 +00:00
Elliot DeNolf
2315719c28 chore(deps): bump turbo 2024-10-15 09:58:28 -04:00
74 changed files with 1376 additions and 1282 deletions

View File

@@ -1,13 +1,13 @@
'use client'
import { RelationshipField, useField } from '@payloadcms/ui'
import { RelationshipField, useField, useFieldProps } from '@payloadcms/ui'
import React from 'react'
type Props = {
initialValue?: string
path: string
readOnly: boolean
}
export function TenantFieldComponentClient({ initialValue, path, readOnly }: Props) {
export function TenantFieldComponentClient({ initialValue, readOnly }: Props) {
const { path } = useFieldProps()
const { formInitializing, setValue, value } = useField({ path })
const hasSetInitialValue = React.useRef(false)

View File

@@ -6,7 +6,6 @@ import React from 'react'
import { TenantFieldComponentClient } from './Field.client'
export const TenantFieldComponent: React.FC<{
path: string
payload: Payload
readOnly: boolean
}> = async (args) => {
@@ -22,7 +21,6 @@ export const TenantFieldComponent: React.FC<{
return (
<TenantFieldComponentClient
initialValue={cookies.get('payload-tenant')?.value || undefined}
path={args.path}
readOnly={args.readOnly}
/>
)

View File

@@ -1,6 +1,6 @@
{
"name": "payload-monorepo",
"version": "3.0.0-beta.114",
"version": "3.0.0-beta.115",
"private": true,
"type": "module",
"scripts": {
@@ -104,7 +104,7 @@
},
"devDependencies": {
"@jest/globals": "29.7.0",
"@libsql/client": "0.6.2",
"@libsql/client": "0.14.0",
"@next/bundle-analyzer": "15.0.0-canary.173",
"@payloadcms/db-postgres": "workspace:*",
"@payloadcms/eslint-config": "workspace:*",
@@ -132,8 +132,8 @@
"create-payload-app": "workspace:*",
"cross-env": "7.0.3",
"dotenv": "16.4.5",
"drizzle-kit": "0.23.2-df9e596",
"drizzle-orm": "0.32.1",
"drizzle-kit": "0.26.1",
"drizzle-orm": "0.35.1",
"escape-html": "^1.0.3",
"execa": "5.1.1",
"form-data": "3.0.1",
@@ -163,7 +163,7 @@
"swc-plugin-transform-remove-imports": "1.15.0",
"tempy": "1.0.1",
"tsx": "4.19.1",
"turbo": "^2.1.2",
"turbo": "^2.1.3",
"typescript": "5.6.2"
},
"peerDependencies": {

View File

@@ -1,6 +1,6 @@
{
"name": "create-payload-app",
"version": "3.0.0-beta.114",
"version": "3.0.0-beta.115",
"homepage": "https://payloadcms.com",
"repository": {
"type": "git",

View File

@@ -1,6 +1,6 @@
{
"name": "@payloadcms/db-mongodb",
"version": "3.0.0-beta.114",
"version": "3.0.0-beta.115",
"description": "The officially supported MongoDB database adapter for Payload",
"homepage": "https://payloadcms.com",
"repository": {

View File

@@ -1,6 +1,6 @@
{
"name": "@payloadcms/db-postgres",
"version": "3.0.0-beta.114",
"version": "3.0.0-beta.115",
"description": "The officially supported Postgres database adapter for Payload",
"homepage": "https://payloadcms.com",
"repository": {
@@ -50,8 +50,8 @@
"@payloadcms/drizzle": "workspace:*",
"@types/pg": "8.10.2",
"console-table-printer": "2.11.2",
"drizzle-kit": "0.23.2-df9e596",
"drizzle-orm": "0.32.1",
"drizzle-kit": "0.26.1",
"drizzle-orm": "0.35.1",
"pg": "8.11.3",
"prompts": "2.4.2",
"to-snake-case": "1.0.0",

View File

@@ -1,6 +1,6 @@
{
"name": "@payloadcms/db-sqlite",
"version": "3.0.0-beta.114",
"version": "3.0.0-beta.115",
"description": "The officially supported SQLite database adapter for Payload",
"homepage": "https://payloadcms.com",
"repository": {
@@ -45,11 +45,11 @@
"prepublishOnly": "pnpm clean && pnpm turbo build"
},
"dependencies": {
"@libsql/client": "^0.6.2",
"@libsql/client": "0.14.0",
"@payloadcms/drizzle": "workspace:*",
"console-table-printer": "2.11.2",
"drizzle-kit": "0.23.2-df9e596",
"drizzle-orm": "0.32.1",
"drizzle-kit": "0.26.1",
"drizzle-orm": "0.35.1",
"prompts": "2.4.2",
"to-snake-case": "1.0.0",
"uuid": "9.0.0"

View File

@@ -27,7 +27,7 @@ export const connect: Connect = async function connect(
}
const logger = this.logger || false
this.drizzle = drizzle(this.client, { logger, schema: this.schema }) as LibSQLDatabase
this.drizzle = drizzle(this.client, { logger, schema: this.schema })
if (!hotReload) {
if (process.env.PAYLOAD_DROP_DATABASE === 'true') {

View File

@@ -11,4 +11,5 @@ export const defaultDrizzleSnapshot: DrizzleSQLiteSnapshotJSON = {
prevId: '00000000-0000-0000-0000-00000000000',
tables: {},
version: '6',
views: {},
}

View File

@@ -117,7 +117,9 @@ export type SQLiteAdapter = {
countDistinct: CountDistinct
defaultDrizzleSnapshot: any
deleteWhere: DeleteWhere
drizzle: LibSQLDatabase
drizzle: { $client: Client } & LibSQLDatabase<
Record<string, GenericRelation | GenericTable> & Record<string, unknown>
>
dropDatabase: DropDatabase
execute: Execute<unknown>
/**

View File

@@ -1,6 +1,6 @@
{
"name": "@payloadcms/db-vercel-postgres",
"version": "3.0.0-beta.114",
"version": "3.0.0-beta.115",
"description": "Vercel Postgres adapter for Payload",
"homepage": "https://payloadcms.com",
"repository": {
@@ -50,8 +50,8 @@
"@payloadcms/drizzle": "workspace:*",
"@vercel/postgres": "^0.9.0",
"console-table-printer": "2.11.2",
"drizzle-kit": "0.23.2-df9e596",
"drizzle-orm": "0.32.1",
"drizzle-kit": "0.26.1",
"drizzle-orm": "0.35.1",
"pg": "8.11.3",
"prompts": "2.4.2",
"to-snake-case": "1.0.0",

View File

@@ -1,6 +1,6 @@
{
"name": "@payloadcms/drizzle",
"version": "3.0.0-beta.114",
"version": "3.0.0-beta.115",
"description": "A library of shared functions used by different payload database adapters",
"homepage": "https://payloadcms.com",
"repository": {
@@ -46,13 +46,13 @@
},
"dependencies": {
"console-table-printer": "2.11.2",
"drizzle-orm": "0.32.1",
"drizzle-orm": "0.34.1-1f15bfd",
"prompts": "2.4.2",
"to-snake-case": "1.0.0",
"uuid": "9.0.0"
},
"devDependencies": {
"@libsql/client": "^0.6.2",
"@libsql/client": "0.14.0",
"@payloadcms/eslint-config": "workspace:*",
"@types/pg": "8.10.2",
"@types/to-snake-case": "1.0.0",

View File

@@ -14,4 +14,5 @@ export const defaultDrizzleSnapshot: DrizzleSnapshotJSON = {
sequences: {},
tables: {},
version: '7',
views: {},
}

View File

@@ -106,7 +106,7 @@ export type CreateDatabase = (args?: {
type Schema =
| {
enum: typeof pgEnum
table: PgTableFn
table: PgTableFn<string>
}
| PgSchema
@@ -149,7 +149,7 @@ export type BasePostgresAdapter = {
localesSuffix?: string
logger: DrizzleConfig['logger']
operators: Operators
pgSchema?: Schema
pgSchema: Schema
poolOptions?: ClientConfig
prodMigrations?: {
down: (args: MigrateDownArgs) => Promise<void>

View File

@@ -1,6 +1,6 @@
{
"name": "@payloadcms/email-nodemailer",
"version": "3.0.0-beta.114",
"version": "3.0.0-beta.115",
"description": "Payload Nodemailer Email Adapter",
"homepage": "https://payloadcms.com",
"repository": {

View File

@@ -1,6 +1,6 @@
{
"name": "@payloadcms/email-resend",
"version": "3.0.0-beta.114",
"version": "3.0.0-beta.115",
"description": "Payload Resend Email Adapter",
"homepage": "https://payloadcms.com",
"repository": {

View File

@@ -1,6 +1,6 @@
{
"name": "@payloadcms/graphql",
"version": "3.0.0-beta.114",
"version": "3.0.0-beta.115",
"homepage": "https://payloadcms.com",
"repository": {
"type": "git",

View File

@@ -1,6 +1,6 @@
{
"name": "@payloadcms/live-preview-react",
"version": "3.0.0-beta.114",
"version": "3.0.0-beta.115",
"description": "The official React SDK for Payload Live Preview",
"homepage": "https://payloadcms.com",
"repository": {

View File

@@ -1,6 +1,6 @@
{
"name": "@payloadcms/live-preview-vue",
"version": "3.0.0-beta.114",
"version": "3.0.0-beta.115",
"description": "The official Vue SDK for Payload Live Preview",
"homepage": "https://payloadcms.com",
"repository": {

View File

@@ -1,6 +1,6 @@
{
"name": "@payloadcms/live-preview",
"version": "3.0.0-beta.114",
"version": "3.0.0-beta.115",
"description": "The official live preview JavaScript SDK for Payload",
"homepage": "https://payloadcms.com",
"repository": {

View File

@@ -1,6 +1,6 @@
{
"name": "@payloadcms/next",
"version": "3.0.0-beta.114",
"version": "3.0.0-beta.115",
"homepage": "https://payloadcms.com",
"repository": {
"type": "git",

View File

@@ -1,93 +1,95 @@
@import '../../../../scss/styles.scss';
.doc-tab {
@extend %h5;
position: relative;
@layer payload-default {
.doc-tab {
@extend %h5;
position: relative;
&__link {
text-decoration: none;
display: flex;
justify-content: center;
align-items: center;
white-space: nowrap;
&__link {
text-decoration: none;
display: flex;
justify-content: center;
align-items: center;
white-space: nowrap;
// Use a pseudo element for the accessability so that it doesn't take up DOM space
// Also because the parent element has `overflow: hidden` which would clip an outline
&:focus-visible::after {
content: '';
border: var(--accessibility-outline);
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
pointer-events: none;
}
}
&:focus:not(:focus-visible) {
opacity: 1;
}
&::before {
content: '';
display: block;
position: absolute;
width: 100%;
height: 100%;
border-radius: var(--style-radius-s);
background-color: var(--theme-elevation-50);
opacity: 0;
}
&:hover {
&::before {
opacity: 1;
}
.doc-tab__count {
background-color: var(--theme-elevation-150);
}
}
&--active {
font-weight: 600;
&::before {
opacity: 1;
background-color: var(--theme-elevation-100);
}
.doc-tab {
&__count {
background-color: var(--theme-elevation-250);
// Use a pseudo element for the accessability so that it doesn't take up DOM space
// Also because the parent element has `overflow: hidden` which would clip an outline
&:focus-visible::after {
content: '';
border: var(--accessibility-outline);
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
pointer-events: none;
}
}
&:focus:not(:focus-visible) {
opacity: 1;
}
&::before {
content: '';
display: block;
position: absolute;
width: 100%;
height: 100%;
border-radius: var(--style-radius-s);
background-color: var(--theme-elevation-50);
opacity: 0;
}
&:hover {
&::before {
opacity: 1;
}
.doc-tab__count {
background-color: var(--theme-elevation-150);
}
}
&--active {
font-weight: 600;
&::before {
opacity: 1;
background-color: var(--theme-elevation-100);
}
.doc-tab {
&__count {
background-color: var(--theme-elevation-250);
}
}
&:hover {
.doc-tab {
&__count {
background-color: var(--theme-elevation-250);
}
}
}
}
&__label {
display: flex;
position: relative;
align-items: center;
gap: 4px;
width: 100%;
height: 100%;
line-height: base(1.2);
padding: base(0.2) base(0.6);
}
&__count {
line-height: base(0.8);
min-width: base(0.8);
text-align: center;
background-color: var(--theme-elevation-100);
border-radius: var(--style-radius-s);
}
}
&__label {
display: flex;
position: relative;
align-items: center;
gap: 4px;
width: 100%;
height: 100%;
line-height: base(1.2);
padding: base(0.2) base(0.6);
}
&__count {
line-height: base(0.8);
min-width: base(0.8);
text-align: center;
background-color: var(--theme-elevation-100);
border-radius: var(--style-radius-s);
}
}

View File

@@ -1,52 +1,54 @@
@import '../../../scss/styles.scss';
.doc-tabs {
display: flex;
&__tabs {
@layer payload-default {
.doc-tabs {
display: flex;
gap: calc(var(--base) / 2);
list-style: none;
align-items: center;
margin: 0;
padding-left: 0;
}
@include mid-break {
width: 100%;
padding: 0;
overflow: auto;
// this container has a gradient overlay as visual indication of `overflow: scroll`
&::-webkit-scrollbar {
display: none;
}
&::after {
content: '';
display: block;
position: sticky;
right: 0;
width: calc(var(--base) * 2);
height: calc(var(--base) * 2);
background: linear-gradient(to right, transparent, var(--theme-bg));
flex-shrink: 0;
z-index: 1111;
pointer-events: none;
}
&__tabs {
display: flex;
gap: calc(var(--base) / 2);
list-style: none;
align-items: center;
margin: 0;
padding-left: 0;
}
@include mid-break {
width: 100%;
padding: 0;
}
}
overflow: auto;
@include small-break {
&__tabs-container {
margin-right: var(--gutter-h);
// this container has a gradient overlay as visual indication of `overflow: scroll`
&::-webkit-scrollbar {
display: none;
}
&::after {
content: '';
display: block;
position: sticky;
right: 0;
width: calc(var(--base) * 2);
height: calc(var(--base) * 2);
background: linear-gradient(to right, transparent, var(--theme-bg));
flex-shrink: 0;
z-index: 1111;
pointer-events: none;
}
&__tabs {
padding: 0;
}
}
&__tabs {
gap: var(--gutter-h);
@include small-break {
&__tabs-container {
margin-right: var(--gutter-h);
}
&__tabs {
gap: var(--gutter-h);
}
}
}
}

View File

@@ -1,52 +1,54 @@
@import '../../scss/styles.scss';
.doc-header {
width: 100%;
margin-top: base(0.4);
padding-bottom: calc(var(--base) * 1.2);
display: flex;
align-items: center;
position: relative;
display: flex;
gap: calc(var(--base) / 2);
&::after {
content: '';
display: block;
position: absolute;
height: 1px;
background: var(--theme-elevation-100);
@layer payload-default {
.doc-header {
width: 100%;
left: 0;
top: calc(100% - 1px);
}
&__title {
flex-grow: 1;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
margin: 0;
padding-bottom: base(0.4);
line-height: 1;
vertical-align: top;
}
@include mid-break {
padding-left: 0;
padding-right: 0;
margin-top: base(0.25);
padding-bottom: calc(var(--base) / 1.5);
flex-direction: column;
margin-top: base(0.4);
padding-bottom: calc(var(--base) * 1.2);
display: flex;
align-items: center;
position: relative;
display: flex;
gap: calc(var(--base) / 2);
padding-bottom: calc(var(--base) / 2);
&::after {
content: '';
display: block;
position: absolute;
height: 1px;
background: var(--theme-elevation-100);
width: 100%;
left: 0;
top: calc(100% - 1px);
}
&__title {
width: 100%;
flex-grow: 1;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
margin: 0;
padding-bottom: base(0.4);
line-height: 1;
vertical-align: top;
}
@include mid-break {
padding-left: 0;
padding-right: 0;
margin-top: base(0.25);
padding-bottom: calc(var(--base) / 1.5);
flex-direction: column;
gap: calc(var(--base) / 2);
padding-bottom: calc(var(--base) / 2);
&__title {
width: 100%;
}
}
@include small-break {
margin-top: 0;
}
}
@include small-break {
margin-top: 0;
}
}

View File

@@ -1,37 +1,39 @@
@import '../../scss/styles.scss';
.document-locked {
@include blur-bg;
display: flex;
align-items: center;
justify-content: center;
height: 100%;
&__wrapper {
z-index: 1;
position: relative;
@layer payload-default {
.document-locked {
@include blur-bg;
display: flex;
flex-direction: column;
gap: var(--base);
padding: base(2);
}
align-items: center;
justify-content: center;
height: 100%;
&__content {
display: flex;
flex-direction: column;
gap: var(--base);
> * {
margin: 0;
&__wrapper {
z-index: 1;
position: relative;
display: flex;
flex-direction: column;
gap: var(--base);
padding: base(2);
}
}
&__controls {
display: flex;
gap: var(--base);
&__content {
display: flex;
flex-direction: column;
gap: var(--base);
.btn {
margin: 0;
> * {
margin: 0;
}
}
&__controls {
display: flex;
gap: var(--base);
.btn {
margin: 0;
}
}
}
}

View File

@@ -1,37 +1,39 @@
@import '../../scss/styles.scss';
.document-take-over {
@include blur-bg;
display: flex;
align-items: center;
justify-content: center;
height: 100%;
&__wrapper {
z-index: 1;
position: relative;
@layer payload-default {
.document-take-over {
@include blur-bg;
display: flex;
flex-direction: column;
gap: var(--base);
padding: base(2);
}
align-items: center;
justify-content: center;
height: 100%;
&__content {
display: flex;
flex-direction: column;
gap: var(--base);
> * {
margin: 0;
&__wrapper {
z-index: 1;
position: relative;
display: flex;
flex-direction: column;
gap: var(--base);
padding: base(2);
}
}
&__controls {
display: flex;
gap: var(--base);
&__content {
display: flex;
flex-direction: column;
gap: var(--base);
.btn {
margin: 0;
> * {
margin: 0;
}
}
&__controls {
display: flex;
gap: var(--base);
.btn {
margin: 0;
}
}
}
}

View File

@@ -1,6 +1,8 @@
.form-header {
display: flex;
flex-direction: column;
gap: calc(var(--base) * .5);
margin-bottom: var(--base);
@layer payload-default {
.form-header {
display: flex;
flex-direction: column;
gap: calc(var(--base) * 0.5);
margin-bottom: var(--base);
}
}

View File

@@ -1,37 +1,39 @@
@import '../../scss/styles.scss';
.leave-without-saving {
@include blur-bg;
display: flex;
align-items: center;
justify-content: center;
height: 100%;
&__wrapper {
z-index: 1;
position: relative;
@layer payload-default {
.leave-without-saving {
@include blur-bg;
display: flex;
flex-direction: column;
gap: base(0.8);
padding: base(2);
}
align-items: center;
justify-content: center;
height: 100%;
&__content {
display: flex;
flex-direction: column;
gap: base(0.4);
> * {
margin: 0;
&__wrapper {
z-index: 1;
position: relative;
display: flex;
flex-direction: column;
gap: base(0.8);
padding: base(2);
}
}
&__controls {
display: flex;
gap: base(0.4);
&__content {
display: flex;
flex-direction: column;
gap: base(0.4);
.btn {
margin: 0;
> * {
margin: 0;
}
}
&__controls {
display: flex;
gap: base(0.4);
.btn {
margin: 0;
}
}
}
}

View File

@@ -1,25 +1,27 @@
@import '../../../scss/styles.scss';
.nav {
position: sticky;
top: 0;
left: 0;
flex-shrink: 0;
height: 100vh;
width: var(--nav-width);
border-right: 1px solid var(--theme-elevation-100);
opacity: 0;
@layer payload-default {
.nav {
position: sticky;
top: 0;
left: 0;
flex-shrink: 0;
height: 100vh;
width: var(--nav-width);
border-right: 1px solid var(--theme-elevation-100);
opacity: 0;
[dir='rtl'] & {
border-right: none;
border-left: 1px solid var(--theme-elevation-100);
}
[dir='rtl'] & {
border-right: none;
border-left: 1px solid var(--theme-elevation-100);
}
&--nav-animate {
transition: opacity var(--nav-trans-time) ease-in-out;
}
&--nav-animate {
transition: opacity var(--nav-trans-time) ease-in-out;
}
&--nav-open {
opacity: 1;
&--nav-open {
opacity: 1;
}
}
}

View File

@@ -1,160 +1,162 @@
@import '../../scss/styles.scss';
.nav {
position: sticky;
top: 0;
left: 0;
flex-shrink: 0;
height: 100vh;
width: var(--nav-width);
border-right: 1px solid var(--theme-elevation-100);
opacity: 0;
overflow: hidden;
[dir='rtl'] & {
border-right: none;
border-left: 1px solid var(--theme-elevation-100);
}
&--nav-animate {
transition: opacity var(--nav-trans-time) ease-in-out;
}
&--nav-open {
opacity: 1;
}
&__header {
position: absolute;
@layer payload-default {
.nav {
position: sticky;
top: 0;
width: 100vw;
height: var(--app-header-height);
}
left: 0;
flex-shrink: 0;
height: 100vh;
width: var(--nav-width);
border-right: 1px solid var(--theme-elevation-100);
opacity: 0;
overflow: hidden;
&__header-content {
z-index: 1;
position: relative;
height: 100%;
width: 100%;
}
&__mobile-close {
display: none;
background: none;
border: 0;
outline: 0;
padding: base(0.8) 0;
}
&__scroll {
height: 100%;
display: flex;
flex-direction: column;
padding: var(--app-header-height) base(1) base(2) base(1);
overflow-y: auto;
// remove the scrollbar here to prevent layout shift as nav groups are toggled
&::-webkit-scrollbar {
display: none;
}
}
&__wrap {
width: 100%;
display: flex;
flex-direction: column;
align-items: flex-start;
flex-grow: 1;
}
&__label {
color: var(--theme-elevation-400);
}
&__controls {
margin-top: auto;
margin-bottom: 0;
> * {
margin-top: base(1);
[dir='rtl'] & {
border-right: none;
border-left: 1px solid var(--theme-elevation-100);
}
a:focus-visible {
outline: var(--accessibility-outline);
&--nav-animate {
transition: opacity var(--nav-trans-time) ease-in-out;
}
}
&__log-out {
&:hover {
g {
transform: translateX(-#{base(0.125)});
}
&--nav-open {
opacity: 1;
}
}
nav {
a {
&__header {
position: absolute;
top: 0;
width: 100vw;
height: var(--app-header-height);
}
&__header-content {
z-index: 1;
position: relative;
padding-block: base(0.125);
padding-inline-start: 0;
padding-inline-end: base(1.5);
display: flex;
text-decoration: none;
&:focus:not(:focus-visible) {
box-shadow: none;
font-weight: 600;
}
&:hover,
&:focus-visible {
text-decoration: underline;
}
&.active {
font-weight: normal;
padding-left: 0;
font-weight: 600;
}
}
}
&__link {
display: flex;
align-items: center;
}
&__link-indicator {
position: absolute;
display: block;
// top: 0;
inset-inline-start: base(-1);
width: 2px;
height: 16px;
border-start-end-radius: 2px;
border-end-end-radius: 2px;
background: var(--theme-text);
}
@include mid-break {
&__scroll {
padding: var(--app-header-height) base(0.5) base(2);
}
}
@include small-break {
&__scroll {
padding: var(--app-header-height) var(--gutter-h) base(2);
}
nav a {
font-size: base(0.875);
line-height: base(1.5);
height: 100%;
width: 100%;
}
&__mobile-close {
display: none;
background: none;
border: 0;
outline: 0;
padding: base(0.8) 0;
}
&__scroll {
height: 100%;
display: flex;
flex-direction: column;
padding: var(--app-header-height) base(1) base(2) base(1);
overflow-y: auto;
// remove the scrollbar here to prevent layout shift as nav groups are toggled
&::-webkit-scrollbar {
display: none;
}
}
&__wrap {
width: 100%;
display: flex;
flex-direction: column;
align-items: flex-start;
flex-grow: 1;
}
&__label {
color: var(--theme-elevation-400);
}
&__controls {
margin-top: auto;
margin-bottom: 0;
> * {
margin-top: base(1);
}
a:focus-visible {
outline: var(--accessibility-outline);
}
}
&__log-out {
&:hover {
g {
transform: translateX(-#{base(0.125)});
}
}
}
nav {
a {
position: relative;
padding-block: base(0.125);
padding-inline-start: 0;
padding-inline-end: base(1.5);
display: flex;
text-decoration: none;
&:focus:not(:focus-visible) {
box-shadow: none;
font-weight: 600;
}
&:hover,
&:focus-visible {
text-decoration: underline;
}
&.active {
font-weight: normal;
padding-left: 0;
font-weight: 600;
}
}
}
&__link {
display: flex;
align-items: center;
}
&__link-indicator {
position: absolute;
display: block;
// top: 0;
inset-inline-start: base(-1);
width: 2px;
height: 16px;
border-start-end-radius: 2px;
border-end-end-radius: 2px;
background: var(--theme-text);
}
@include mid-break {
&__scroll {
padding: var(--app-header-height) base(0.5) base(2);
}
}
@include small-break {
&__scroll {
padding: var(--app-header-height) var(--gutter-h) base(2);
}
nav a {
font-size: base(0.875);
line-height: base(1.5);
}
&__mobile-close {
display: flex;
align-items: center;
}
}
}
}

View File

@@ -1,55 +1,57 @@
@import '../../../scss/styles.scss';
.template-default {
min-height: 100vh;
display: grid;
position: relative;
isolation: isolate;
@media (prefers-reduced-motion) {
transition: none;
}
&--nav-animate {
transition: grid-template-columns var(--nav-trans-time) linear;
}
&--nav-open {
.template-default {
&__nav-overlay {
transition: opacity var(--nav-trans-time) linear;
}
}
}
}
@media (min-width: 1441px) {
@layer payload-default {
.template-default {
grid-template-columns: 0 auto;
min-height: 100vh;
display: grid;
position: relative;
isolation: isolate;
@media (prefers-reduced-motion) {
transition: none;
}
&--nav-animate {
transition: grid-template-columns var(--nav-trans-time) linear;
}
&--nav-open {
grid-template-columns: var(--nav-width) auto;
.template-default {
&__nav-overlay {
transition: opacity var(--nav-trans-time) linear;
}
}
}
}
}
@media (max-width: 1440px) {
.template-default--nav-hydrated.template-default--nav-open {
grid-template-columns: var(--nav-width) auto;
}
.template-default {
grid-template-columns: 1fr auto;
.nav {
display: none;
}
&--nav-hydrated {
@media (min-width: 1441px) {
.template-default {
grid-template-columns: 0 auto;
&--nav-open {
grid-template-columns: var(--nav-width) auto;
}
}
}
@media (max-width: 1440px) {
.template-default--nav-hydrated.template-default--nav-open {
grid-template-columns: var(--nav-width) auto;
}
.template-default {
grid-template-columns: 1fr auto;
.nav {
display: unset;
display: none;
}
&--nav-hydrated {
grid-template-columns: 0 auto;
.nav {
display: unset;
}
}
}
}

View File

@@ -1,76 +1,78 @@
@import '../../scss/styles.scss';
.template-default {
background-color: var(--theme-bg);
color: var(--theme-text);
[dir='rtl'] &__nav-toggler-wrapper {
left: unset;
right: 0;
}
&__nav-toggler-wrapper {
position: sticky;
z-index: var(--z-modal);
top: 0;
left: 0;
height: 0;
width: var(--gutter-h);
display: flex;
justify-content: center;
}
&__nav-toggler-container {
height: var(--app-header-height);
display: flex;
align-items: center;
}
&__nav-toggler {
display: flex;
align-items: center;
}
&__wrap {
min-width: 0;
width: 100%;
flex-grow: 1;
position: relative;
@layer payload-default {
.template-default {
background-color: var(--theme-bg);
&:before {
content: '';
display: block;
position: absolute;
inset: 0;
background-color: inherit;
opacity: 0;
z-index: var(--z-status);
visibility: hidden;
transition: all var(--nav-trans-time) linear;
color: var(--theme-text);
[dir='rtl'] &__nav-toggler-wrapper {
left: unset;
right: 0;
}
}
@include mid-break {
&__nav-toggler-wrapper {
.hamburger {
left: unset;
}
position: sticky;
z-index: var(--z-modal);
top: 0;
left: 0;
height: 0;
width: var(--gutter-h);
display: flex;
justify-content: center;
}
}
@include small-break {
&__nav-toggler-wrapper {
width: unset;
justify-content: unset;
&__nav-toggler-container {
height: var(--app-header-height);
display: flex;
align-items: center;
}
.hamburger {
display: none;
&__nav-toggler {
display: flex;
align-items: center;
}
&__wrap {
min-width: 0;
width: 100%;
flex-grow: 1;
position: relative;
background-color: var(--theme-bg);
&:before {
content: '';
display: block;
position: absolute;
inset: 0;
background-color: inherit;
opacity: 0;
z-index: var(--z-status);
visibility: hidden;
transition: all var(--nav-trans-time) linear;
}
}
.template-default {
&__wrap {
min-width: 100%;
@include mid-break {
&__nav-toggler-wrapper {
.hamburger {
left: unset;
}
}
}
@include small-break {
&__nav-toggler-wrapper {
width: unset;
justify-content: unset;
.hamburger {
display: none;
}
}
.template-default {
&__wrap {
min-width: 100%;
}
}
}
}

View File

@@ -1,28 +1,30 @@
@import '../../scss/styles';
.template-minimal {
display: flex;
width: 100%;
justify-content: center;
align-items: center;
padding: base(3) $baseline;
margin-left: auto;
margin-right: auto;
min-height: 100%;
background-color: var(--theme-bg-color);
color: var(--theme-text);
@layer payload-default {
.template-minimal {
display: flex;
width: 100%;
justify-content: center;
align-items: center;
padding: base(3) $baseline;
margin-left: auto;
margin-right: auto;
min-height: 100%;
background-color: var(--theme-bg-color);
color: var(--theme-text);
&--width-normal {
.template-minimal__wrap {
max-width: base(24);
width: 100%;
&--width-normal {
.template-minimal__wrap {
max-width: base(24);
width: 100%;
}
}
}
&--width-wide {
.template-minimal__wrap {
max-width: base(48);
width: 100%;
&--width-wide {
.template-minimal__wrap {
max-width: base(48);
width: 100%;
}
}
}
}

View File

@@ -1,90 +1,92 @@
@import '../../../scss/styles.scss';
.query-inspector {
&__json-children {
position: relative;
@layer payload-default {
.query-inspector {
&__json-children {
position: relative;
&:before {
content: '';
position: absolute;
top: 0;
left: 8px;
width: 1px;
height: 100%;
border-left: 1px dashed var(--theme-elevation-200);
}
}
&__list-wrap {
position: relative;
}
&__list-toggle {
all: unset;
width: 100%;
text-align: left;
cursor: pointer;
border-radius: 3px;
border-top-right-radius: 0;
border-bottom-right-radius: 0;
position: relative;
display: flex;
gap: 10px;
align-items: center;
left: -3px;
width: calc(100% + 3px);
svg {
margin-left: 5px;
}
svg .stroke {
stroke: var(--theme-elevation-400);
}
&:hover {
background-color: var(--theme-elevation-100);
}
&--empty {
cursor: default;
pointer-events: none;
}
}
&__toggle-row-icon {
&--open {
transform: rotate(0deg);
}
&--closed {
transform: rotate(-90deg);
}
}
&__value-type {
&--number {
.query-inspector__value {
color: var(--number-color);
&:before {
content: '';
position: absolute;
top: 0;
left: 8px;
width: 1px;
height: 100%;
border-left: 1px dashed var(--theme-elevation-200);
}
}
&--string {
.query-inspector__value {
color: var(--string-color);
&__list-wrap {
position: relative;
}
&__list-toggle {
all: unset;
width: 100%;
text-align: left;
cursor: pointer;
border-radius: 3px;
border-top-right-radius: 0;
border-bottom-right-radius: 0;
position: relative;
display: flex;
gap: 10px;
align-items: center;
left: -3px;
width: calc(100% + 3px);
svg {
margin-left: 5px;
}
svg .stroke {
stroke: var(--theme-elevation-400);
}
&:hover {
background-color: var(--theme-elevation-100);
}
&--empty {
cursor: default;
pointer-events: none;
}
}
}
&__row-line--nested {
margin-left: 25px;
}
&__toggle-row-icon {
&--open {
transform: rotate(0deg);
}
&--closed {
transform: rotate(-90deg);
}
}
&__bracket {
position: relative;
&__value-type {
&--number {
.query-inspector__value {
color: var(--number-color);
}
}
&--position-end {
left: 5px;
width: calc(100% - 5px);
&--string {
.query-inspector__value {
color: var(--string-color);
}
}
}
&__row-line--nested {
margin-left: 25px;
}
&__bracket {
position: relative;
&--position-end {
left: 5px;
width: calc(100% - 5px);
}
}
}
}

View File

@@ -1,6 +1,6 @@
{
"name": "payload",
"version": "3.0.0-beta.114",
"version": "3.0.0-beta.115",
"description": "Node, React, Headless CMS and Application Framework built on Next.js",
"keywords": [
"admin panel",

View File

@@ -49,6 +49,13 @@ type Args = {
validRelationships: null | string[]
}
function generateSchemaPath({ name, path = '' }: { name?: string; path?: string }): string {
if (!name) {
return path
}
return path ? `${path}.${name}` : name
}
export const sanitizeFields = async ({
config,
existingFieldNames = new Set(),
@@ -57,15 +64,13 @@ export const sanitizeFields = async ({
parentIsLocalized,
requireFieldLevelRichTextEditor = false,
richTextSanitizationPromises,
schemaPath: schemaPathArg,
schemaPath = '',
validRelationships,
}: Args): Promise<Field[]> => {
if (!fields) {
return []
}
let schemaPath = schemaPathArg
for (let i = 0; i < fields.length; i++) {
const field = fields[i]
@@ -248,9 +253,6 @@ export const sanitizeFields = async ({
}
if ('fields' in field && field.fields) {
if ('name' in field && field.name) {
schemaPath = `${schemaPath || ''}${schemaPath ? '.' : ''}${field.name}`
}
field.fields = await sanitizeFields({
config,
existingFieldNames: fieldAffectsData(field) ? new Set() : existingFieldNames,
@@ -259,7 +261,10 @@ export const sanitizeFields = async ({
parentIsLocalized: parentIsLocalized || field.localized,
requireFieldLevelRichTextEditor,
richTextSanitizationPromises,
schemaPath,
schemaPath: generateSchemaPath({
name: 'name' in field ? field.name : undefined,
path: schemaPath,
}),
validRelationships,
})
}
@@ -268,7 +273,6 @@ export const sanitizeFields = async ({
for (let j = 0; j < field.tabs.length; j++) {
const tab = field.tabs[j]
if (tabHasName(tab)) {
schemaPath = `${schemaPath || ''}${schemaPath ? '.' : ''}${tab.name}`
if (typeof tab.label === 'undefined') {
tab.label = toWords(tab.name)
}
@@ -282,7 +286,10 @@ export const sanitizeFields = async ({
parentIsLocalized: parentIsLocalized || (tabHasName(tab) && tab.localized),
requireFieldLevelRichTextEditor,
richTextSanitizationPromises,
schemaPath,
schemaPath: generateSchemaPath({
name: 'name' in tab ? tab.name : undefined,
path: schemaPath,
}),
validRelationships,
})
field.tabs[j] = tab

View File

@@ -1,6 +1,6 @@
{
"name": "@payloadcms/plugin-cloud-storage",
"version": "3.0.0-beta.114",
"version": "3.0.0-beta.115",
"description": "The official cloud storage plugin for Payload CMS",
"homepage": "https://payloadcms.com",
"repository": {

View File

@@ -1,6 +1,6 @@
{
"name": "@payloadcms/plugin-cloud",
"version": "3.0.0-beta.114",
"version": "3.0.0-beta.115",
"description": "The official Payload Cloud plugin",
"homepage": "https://payloadcms.com",
"repository": {

View File

@@ -1,6 +1,6 @@
{
"name": "@payloadcms/plugin-form-builder",
"version": "3.0.0-beta.114",
"version": "3.0.0-beta.115",
"description": "Form builder plugin for Payload CMS",
"keywords": [
"payload",

View File

@@ -1,6 +1,6 @@
{
"name": "@payloadcms/plugin-nested-docs",
"version": "3.0.0-beta.114",
"version": "3.0.0-beta.115",
"description": "The official Nested Docs plugin for Payload",
"homepage": "https://payloadcms.com",
"repository": {

View File

@@ -1,6 +1,6 @@
{
"name": "@payloadcms/plugin-redirects",
"version": "3.0.0-beta.114",
"version": "3.0.0-beta.115",
"description": "Redirects plugin for Payload",
"keywords": [
"payload",

View File

@@ -1,6 +1,6 @@
{
"name": "@payloadcms/plugin-search",
"version": "3.0.0-beta.114",
"version": "3.0.0-beta.115",
"description": "Search plugin for Payload",
"keywords": [
"payload",

View File

@@ -1,6 +1,6 @@
{
"name": "@payloadcms/plugin-sentry",
"version": "3.0.0-beta.114",
"version": "3.0.0-beta.115",
"description": "Sentry plugin for Payload",
"keywords": [
"payload",

View File

@@ -1,6 +1,6 @@
{
"name": "@payloadcms/plugin-seo",
"version": "3.0.0-beta.114",
"version": "3.0.0-beta.115",
"description": "SEO plugin for Payload",
"keywords": [
"payload",

View File

@@ -1,6 +1,6 @@
{
"name": "@payloadcms/plugin-stripe",
"version": "3.0.0-beta.114",
"version": "3.0.0-beta.115",
"description": "Stripe plugin for Payload",
"keywords": [
"payload",

View File

@@ -1,6 +1,6 @@
{
"name": "@payloadcms/richtext-lexical",
"version": "3.0.0-beta.114",
"version": "3.0.0-beta.115",
"description": "The officially supported Lexical richtext adapter for Payload",
"homepage": "https://payloadcms.com",
"repository": {

View File

@@ -1,14 +1,16 @@
span.unknownConverted {
text-transform: uppercase;
font-family: 'Roboto Mono', monospace;
letter-spacing: 2px;
font-size: calc(var(--base) * 0.5);
margin: 0 0 var(--base);
background: red;
color: white;
display: inline-block;
div {
@layer payload-default {
span.unknownConverted {
text-transform: uppercase;
font-family: 'Roboto Mono', monospace;
letter-spacing: 2px;
font-size: calc(var(--base) * 0.5);
margin: 0 0 var(--base);
background: red;
color: white;
display: inline-block;
div {
background: red;
}
}
}

View File

@@ -1,14 +1,16 @@
span.unknownConverted {
text-transform: uppercase;
font-family: 'Roboto Mono', monospace;
letter-spacing: 2px;
font-size: calc(var(--base) * 0.5);
margin: 0 0 var(--base);
background: red;
color: white;
display: inline-block;
div {
@layer payload-default {
span.unknownConverted {
text-transform: uppercase;
font-family: 'Roboto Mono', monospace;
letter-spacing: 2px;
font-size: calc(var(--base) * 0.5);
margin: 0 0 var(--base);
background: red;
color: white;
display: inline-block;
div {
background: red;
}
}
}

View File

@@ -1,44 +1,46 @@
@import '../../../../scss/styles';
.toolbar-popup__button {
display: flex;
align-items: center;
vertical-align: middle;
justify-content: center;
height: 30px;
width: 30px;
border: 0;
background: none;
border-radius: $style-radius-m;
cursor: pointer;
padding: 0;
transition: background-color 0.15s cubic-bezier(0, 0.2, 0.2, 1);
@layer payload-default {
.toolbar-popup__button {
display: flex;
align-items: center;
vertical-align: middle;
justify-content: center;
height: 30px;
width: 30px;
border: 0;
background: none;
border-radius: $style-radius-m;
cursor: pointer;
padding: 0;
transition: background-color 0.15s cubic-bezier(0, 0.2, 0.2, 1);
&.spaced {
margin-right: 2px;
}
&:hover:not(.disabled) {
background-color: var(--theme-elevation-100);
}
&.active {
background-color: var(--theme-elevation-150);
color: var(--theme-text);
&:hover {
background-color: var(--theme-elevation-200);
&.spaced {
margin-right: 2px;
}
.icon {
opacity: 1;
&:hover:not(.disabled) {
background-color: var(--theme-elevation-100);
}
}
&.disabled {
cursor: not-allowed;
&.active {
background-color: var(--theme-elevation-150);
color: var(--theme-text);
&:hover {
background-color: var(--theme-elevation-200);
}
.icon {
opacity: 0.2;
.icon {
opacity: 1;
}
}
&.disabled {
cursor: not-allowed;
.icon {
opacity: 0.2;
}
}
}
}

View File

@@ -1,119 +1,121 @@
@import '../../../../scss/styles';
.toolbar-popup__dropdown {
display: flex;
align-items: center;
vertical-align: middle;
justify-content: center;
gap: base(0.2);
height: base(1.5);
border: 0;
background: none;
border-radius: $style-radius-m;
cursor: pointer;
position: relative;
padding: 0 base(0.4) 0 base(0.3);
transition: background-color 0.15s cubic-bezier(0, 0.2, 0.2, 1);
&-label {
color: var(--theme-elevation-600);
padding-block: 0;
padding-inline: base(0.2) base(0.4);
}
&:disabled {
cursor: not-allowed;
opacity: 0.2;
}
&:hover:not([disabled]) {
background-color: var(--theme-elevation-100);
}
.active {
background-color: var(--theme-elevation-100);
.toolbar-popup__dropdown-caret {
&:after {
transform: rotate(0deg);
}
}
}
&-caret {
width: base(0.4);
@layer payload-default {
.toolbar-popup__dropdown {
display: flex;
align-items: center;
vertical-align: middle;
justify-content: center;
transform: rotate(45deg);
&:after {
display: block;
content: ' ';
position: absolute;
/* Vector 3 */
width: 4px;
height: 4px;
transform: translateY(-2px);
border: solid 1px var(--theme-elevation-600);
border-width: 0 1px 1px 0;
}
}
&-items {
position: absolute;
background: var(--theme-elevation-0);
gap: base(0.2);
height: base(1.5);
border: 0;
background: none;
border-radius: $style-radius-m;
min-width: 132.5px;
max-width: 200px;
z-index: 100;
cursor: pointer;
position: relative;
padding: 0 base(0.4) 0 base(0.3);
transition: background-color 0.15s cubic-bezier(0, 0.2, 0.2, 1);
.toolbar-popup__dropdown-item {
all: unset; // reset all default button styles
cursor: pointer;
color: var(--theme-elevation-900);
transition: background-color 0.15s cubic-bezier(0, 0.2, 0.2, 1);
&-label {
color: var(--theme-elevation-600);
padding-block: 0;
padding-inline: base(0.2) base(0.4);
}
.text {
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
&:disabled {
cursor: not-allowed;
opacity: 0.2;
}
&:hover:not([disabled]) {
background-color: var(--theme-elevation-100);
}
.active {
background-color: var(--theme-elevation-100);
.toolbar-popup__dropdown-caret {
&:after {
transform: rotate(0deg);
}
}
}
&:hover:not([disabled]),
&.active {
background-color: var(--theme-elevation-100);
}
&.disabled {
cursor: not-allowed;
opacity: 0.2;
}
padding-left: 6.25px;
padding-right: 6.25px;
width: 100%;
height: 30px;
border-radius: $style-radius-m;
box-sizing: border-box;
&-caret {
width: base(0.4);
display: flex;
align-items: center;
gap: 6.25px;
justify-content: center;
transform: rotate(45deg);
&:after {
display: block;
content: ' ';
position: absolute;
.icon {
min-width: 20px;
height: 20px;
color: var(--theme-elevation-600);
/* Vector 3 */
width: 4px;
height: 4px;
transform: translateY(-2px);
border: solid 1px var(--theme-elevation-600);
border-width: 0 1px 1px 0;
}
}
&-items {
position: absolute;
background: var(--theme-elevation-0);
border-radius: $style-radius-m;
min-width: 132.5px;
max-width: 200px;
z-index: 100;
.toolbar-popup__dropdown-item {
all: unset; // reset all default button styles
cursor: pointer;
color: var(--theme-elevation-900);
transition: background-color 0.15s cubic-bezier(0, 0.2, 0.2, 1);
.text {
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}
&:hover:not([disabled]),
&.active {
background-color: var(--theme-elevation-100);
}
&.disabled {
cursor: not-allowed;
opacity: 0.2;
}
padding-left: 6.25px;
padding-right: 6.25px;
width: 100%;
height: 30px;
border-radius: $style-radius-m;
box-sizing: border-box;
display: flex;
align-items: center;
gap: 6.25px;
.icon {
min-width: 20px;
height: 20px;
color: var(--theme-elevation-600);
}
}
}
}
html[data-theme='light'] {
.toolbar-popup__dropdown {
&-items {
position: absolute;
@include shadow-m;
}
}
}
}
html[data-theme='light'] {
.toolbar-popup__dropdown {
&-items {
position: absolute;
@include shadow-m;
}
}
}

View File

@@ -1,6 +1,6 @@
{
"name": "@payloadcms/richtext-slate",
"version": "3.0.0-beta.114",
"version": "3.0.0-beta.115",
"description": "The officially supported Slate richtext adapter for Payload",
"homepage": "https://payloadcms.com",
"repository": {

View File

@@ -1,9 +1,11 @@
@import '../../../scss/styles.scss';
.rich-text-blockquote {
&[data-slate-node='element'] {
margin: base(0.625) 0;
padding-left: base(0.625);
border-left: 1px solid var(--theme-elevation-200);
@layer payload-default {
.rich-text-blockquote {
&[data-slate-node='element'] {
margin: base(0.625) 0;
padding-left: base(0.625);
border-left: 1px solid var(--theme-elevation-200);
}
}
}

View File

@@ -1,88 +1,90 @@
@import '../../../../scss/styles.scss';
.rich-text-link {
position: relative;
@layer payload-default {
.rich-text-link {
position: relative;
.popup {
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
.popup {
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
.popup__hide-scrollbar,
.popup__scroll-container {
overflow: visible;
.popup__hide-scrollbar,
.popup__scroll-container {
overflow: visible;
}
.popup__scroll-content {
white-space: pre;
}
}
.popup__scroll-content {
white-space: pre;
.icon--x line {
stroke-width: 2px;
}
}
.icon--x line {
stroke-width: 2px;
}
&__popup {
@extend %body;
font-family: var(--font-body);
display: flex;
&__popup {
@extend %body;
font-family: var(--font-body);
display: flex;
button {
@extend %btn-reset;
font-weight: 600;
cursor: pointer;
margin: 0;
button {
@extend %btn-reset;
font-weight: 600;
cursor: pointer;
margin: 0;
}
}
}
&__link-label {
max-width: base(8);
overflow: hidden;
text-overflow: ellipsis;
border-radius: 2px;
&__link-label {
max-width: base(8);
overflow: hidden;
text-overflow: ellipsis;
border-radius: 2px;
&:hover {
background-color: var(--popup-button-highlight);
}
}
}
.rich-text-link__popup {
display: flex;
gap: calc(var(--base) * 0.25);
button {
&:hover {
.btn__icon {
&:hover {
background-color: var(--popup-button-highlight);
.fill {
fill: var(--theme-text);
}
.stroke {
stroke: var(--theme-text);
}
}
}
.rich-text-link__popup {
display: flex;
gap: calc(var(--base) * 0.25);
button {
&:hover {
.btn__icon {
background-color: var(--popup-button-highlight);
.fill {
fill: var(--theme-text);
}
.stroke {
stroke: var(--theme-text);
}
}
}
}
}
}
.rich-text-link__popup-toggler {
position: relative;
border: 0;
background-color: transparent;
padding: 0;
color: var(--theme-success-600);
text-decoration: none;
border-bottom: 1px dotted;
cursor: text;
.rich-text-link__popup-toggler {
position: relative;
border: 0;
background-color: transparent;
padding: 0;
color: var(--theme-success-600);
text-decoration: none;
border-bottom: 1px dotted;
cursor: text;
&:focus,
&:focus-within {
outline: none;
}
&:focus,
&:focus-within {
outline: none;
}
&--open {
z-index: var(--z-popup);
&--open {
z-index: var(--z-popup);
}
}
}

View File

@@ -1,49 +1,51 @@
@import '../../../../scss/styles.scss';
.rich-text-link-edit-modal {
&__template {
position: relative;
z-index: 1;
padding-top: base(1);
padding-bottom: base(2);
}
&__header {
width: 100%;
margin-bottom: $baseline;
display: flex;
justify-content: space-between;
margin-top: base(2.5);
margin-bottom: base(1);
@include mid-break {
margin-top: base(1.5);
}
}
&__header-text {
margin: 0;
}
&__header-close {
border: 0;
background-color: transparent;
padding: 0;
cursor: pointer;
overflow: hidden;
width: base(1);
height: base(1);
svg {
width: base(2);
height: base(2);
@layer payload-default {
.rich-text-link-edit-modal {
&__template {
position: relative;
inset-inline-start: base(-0.5);
top: base(-0.5);
z-index: 1;
padding-top: base(1);
padding-bottom: base(2);
}
.stroke {
stroke-width: 2px;
vector-effect: non-scaling-stroke;
&__header {
width: 100%;
margin-bottom: $baseline;
display: flex;
justify-content: space-between;
margin-top: base(2.5);
margin-bottom: base(1);
@include mid-break {
margin-top: base(1.5);
}
}
&__header-text {
margin: 0;
}
&__header-close {
border: 0;
background-color: transparent;
padding: 0;
cursor: pointer;
overflow: hidden;
width: base(1);
height: base(1);
svg {
width: base(2);
height: base(2);
position: relative;
inset-inline-start: base(-0.5);
top: base(-0.5);
.stroke {
stroke-width: 2px;
vector-effect: non-scaling-stroke;
}
}
}
}

View File

@@ -1,7 +1,9 @@
@import '../../../scss/styles.scss';
.rich-text-ol {
&[data-slate-node='element'] {
margin: base(0.625) 0;
@layer payload-default {
.rich-text-ol {
&[data-slate-node='element'] {
margin: base(0.625) 0;
}
}
}

View File

@@ -1,7 +1,9 @@
@import '../../../../scss/styles.scss';
.relationship-rich-text-button {
display: flex;
align-items: center;
height: 100%;
@layer payload-default {
.relationship-rich-text-button {
display: flex;
align-items: center;
height: 100%;
}
}

View File

@@ -1,93 +1,95 @@
@import '../../../../scss/styles.scss';
.rich-text-relationship {
@extend %body;
@include shadow-sm;
padding: base(0.75);
display: flex;
align-items: center;
background: var(--theme-input-bg);
border: 1px solid var(--theme-elevation-100);
max-width: base(15);
font-family: var(--font-body);
&:hover {
border: 1px solid var(--theme-elevation-150);
}
&[data-slate-node='element'] {
margin: base(0.625) 0;
}
&__label {
margin-bottom: base(0.25);
}
&__title {
margin: 0;
}
&__label,
&__title {
white-space: nowrap;
text-overflow: ellipsis;
overflow: hidden;
line-height: 1 !important;
}
&__title {
font-weight: bold;
}
&__wrap {
flex-grow: 1;
overflow: hidden;
}
&--selected {
box-shadow: $focus-box-shadow;
outline: none;
}
.rich-text-relationship__doc-drawer-toggler {
text-decoration: underline;
pointer-events: all;
line-height: inherit;
}
&__actions {
@layer payload-default {
.rich-text-relationship {
@extend %body;
@include shadow-sm;
padding: base(0.75);
display: flex;
align-items: center;
flex-shrink: 0;
margin-left: base(0.5);
background: var(--theme-input-bg);
border: 1px solid var(--theme-elevation-100);
max-width: base(15);
font-family: var(--font-body);
& > *:not(:last-child) {
margin-right: base(0.25);
}
}
&__removeButton {
margin: 0;
line {
stroke-width: $style-stroke-width-m;
&:hover {
border: 1px solid var(--theme-elevation-150);
}
&:disabled {
color: var(--theme-elevation-300);
pointer-events: none;
&[data-slate-node='element'] {
margin: base(0.625) 0;
}
}
&__doc-drawer-toggler,
&__list-drawer-toggler {
& > * {
&__label {
margin-bottom: base(0.25);
}
&__title {
margin: 0;
}
&:disabled {
color: var(--theme-elevation-300);
pointer-events: none;
&__label,
&__title {
white-space: nowrap;
text-overflow: ellipsis;
overflow: hidden;
line-height: 1 !important;
}
&__title {
font-weight: bold;
}
&__wrap {
flex-grow: 1;
overflow: hidden;
}
&--selected {
box-shadow: $focus-box-shadow;
outline: none;
}
.rich-text-relationship__doc-drawer-toggler {
text-decoration: underline;
pointer-events: all;
line-height: inherit;
}
&__actions {
display: flex;
align-items: center;
flex-shrink: 0;
margin-left: base(0.5);
& > *:not(:last-child) {
margin-right: base(0.25);
}
}
&__removeButton {
margin: 0;
line {
stroke-width: $style-stroke-width-m;
}
&:disabled {
color: var(--theme-elevation-300);
pointer-events: none;
}
}
&__doc-drawer-toggler,
&__list-drawer-toggler {
& > * {
margin: 0;
}
&:disabled {
color: var(--theme-elevation-300);
pointer-events: none;
}
}
}
}

View File

@@ -1,7 +1,9 @@
@import '../../../scss/styles.scss';
.rich-text-ul {
&[data-slate-node='element'] {
margin: base(0.625) 0;
@layer payload-default {
.rich-text-ul {
&[data-slate-node='element'] {
margin: base(0.625) 0;
}
}
}

View File

@@ -1,7 +1,9 @@
@import '../../../../scss/styles.scss';
.upload-rich-text-button {
display: flex;
align-items: center;
height: 100%;
@layer payload-default {
.upload-rich-text-button {
display: flex;
align-items: center;
height: 100%;
}
}

View File

@@ -1,147 +1,149 @@
@import '../../../../scss/styles.scss';
.rich-text-upload {
@extend %body;
@include shadow-sm;
max-width: base(15);
display: flex;
align-items: center;
background: var(--theme-input-bg);
border: 1px solid var(--theme-elevation-100);
position: relative;
font-family: var(--font-body);
&:hover {
border: 1px solid var(--theme-elevation-150);
}
&[data-slate-node='element'] {
margin: base(0.625) 0;
}
&__card {
@include soft-shadow-bottom;
@layer payload-default {
.rich-text-upload {
@extend %body;
@include shadow-sm;
max-width: base(15);
display: flex;
flex-direction: column;
width: 100%;
}
&__topRow {
display: flex;
}
&__thumbnail {
width: base(3.25);
height: auto;
align-items: center;
background: var(--theme-input-bg);
border: 1px solid var(--theme-elevation-100);
position: relative;
overflow: hidden;
flex-shrink: 0;
font-family: var(--font-body);
img,
svg {
position: absolute;
object-fit: cover;
&:hover {
border: 1px solid var(--theme-elevation-150);
}
&[data-slate-node='element'] {
margin: base(0.625) 0;
}
&__card {
@include soft-shadow-bottom;
display: flex;
flex-direction: column;
width: 100%;
height: 100%;
background-color: var(--theme-elevation-800);
}
}
&__topRowRightPanel {
flex-grow: 1;
display: flex;
align-items: center;
padding: base(0.75);
justify-content: space-between;
max-width: calc(100% - #{base(3.25)});
}
&__actions {
display: flex;
align-items: center;
flex-shrink: 0;
margin-left: base(0.5);
.rich-text-upload__doc-drawer-toggler {
pointer-events: all;
}
& > *:not(:last-child) {
margin-right: base(0.25);
}
}
&__removeButton {
margin: 0;
line {
stroke-width: $style-stroke-width-m;
&__topRow {
display: flex;
}
&:disabled {
color: var(--theme-elevation-300);
pointer-events: none;
}
}
&__thumbnail {
width: base(3.25);
height: auto;
position: relative;
overflow: hidden;
flex-shrink: 0;
&__upload-drawer-toggler {
background-color: transparent;
border: none;
padding: 0;
margin: 0;
outline: none;
line-height: inherit;
}
&__doc-drawer-toggler {
text-decoration: underline;
}
&__doc-drawer-toggler,
&__list-drawer-toggler,
&__upload-drawer-toggler {
& > * {
margin: 0;
img,
svg {
position: absolute;
object-fit: cover;
width: 100%;
height: 100%;
background-color: var(--theme-elevation-800);
}
}
&:disabled {
color: var(--theme-elevation-300);
pointer-events: none;
}
}
&__collectionLabel {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
&__bottomRow {
padding: base(0.5);
border-top: 1px solid var(--theme-elevation-100);
}
h5 {
white-space: nowrap;
text-overflow: ellipsis;
overflow: hidden;
}
&__wrap {
padding: base(0.5) base(0.5) base(0.5) base(1);
text-align: left;
overflow: hidden;
text-overflow: ellipsis;
}
&--selected {
box-shadow: $focus-box-shadow;
outline: none;
}
@include small-break {
&__topRowRightPanel {
padding: base(0.75) base(0.5);
flex-grow: 1;
display: flex;
align-items: center;
padding: base(0.75);
justify-content: space-between;
max-width: calc(100% - #{base(3.25)});
}
&__actions {
display: flex;
align-items: center;
flex-shrink: 0;
margin-left: base(0.5);
.rich-text-upload__doc-drawer-toggler {
pointer-events: all;
}
& > *:not(:last-child) {
margin-right: base(0.25);
}
}
&__removeButton {
margin: 0;
line {
stroke-width: $style-stroke-width-m;
}
&:disabled {
color: var(--theme-elevation-300);
pointer-events: none;
}
}
&__upload-drawer-toggler {
background-color: transparent;
border: none;
padding: 0;
margin: 0;
outline: none;
line-height: inherit;
}
&__doc-drawer-toggler {
text-decoration: underline;
}
&__doc-drawer-toggler,
&__list-drawer-toggler,
&__upload-drawer-toggler {
& > * {
margin: 0;
}
&:disabled {
color: var(--theme-elevation-300);
pointer-events: none;
}
}
&__collectionLabel {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
&__bottomRow {
padding: base(0.5);
border-top: 1px solid var(--theme-elevation-100);
}
h5 {
white-space: nowrap;
text-overflow: ellipsis;
overflow: hidden;
}
&__wrap {
padding: base(0.5) base(0.5) base(0.5) base(1);
text-align: left;
overflow: hidden;
text-overflow: ellipsis;
}
&--selected {
box-shadow: $focus-box-shadow;
outline: none;
}
@include small-break {
&__topRowRightPanel {
padding: base(0.75) base(0.5);
}
}
}
}

View File

@@ -1,6 +1,6 @@
{
"name": "@payloadcms/storage-azure",
"version": "3.0.0-beta.114",
"version": "3.0.0-beta.115",
"description": "Payload storage adapter for Azure Blob Storage",
"homepage": "https://payloadcms.com",
"repository": {

View File

@@ -1,6 +1,6 @@
{
"name": "@payloadcms/storage-gcs",
"version": "3.0.0-beta.114",
"version": "3.0.0-beta.115",
"description": "Payload storage adapter for Google Cloud Storage",
"homepage": "https://payloadcms.com",
"repository": {

View File

@@ -1,6 +1,6 @@
{
"name": "@payloadcms/storage-s3",
"version": "3.0.0-beta.114",
"version": "3.0.0-beta.115",
"description": "Payload storage adapter for Amazon S3",
"homepage": "https://payloadcms.com",
"repository": {

View File

@@ -1,6 +1,6 @@
{
"name": "@payloadcms/storage-uploadthing",
"version": "3.0.0-beta.114",
"version": "3.0.0-beta.115",
"description": "Payload storage adapter for uploadthing",
"homepage": "https://payloadcms.com",
"repository": {

View File

@@ -1,6 +1,6 @@
{
"name": "@payloadcms/storage-vercel-blob",
"version": "3.0.0-beta.114",
"version": "3.0.0-beta.115",
"description": "Payload storage adapter for Vercel Blob Storage",
"homepage": "https://payloadcms.com",
"repository": {

View File

@@ -1,6 +1,6 @@
{
"name": "@payloadcms/translations",
"version": "3.0.0-beta.114",
"version": "3.0.0-beta.115",
"homepage": "https://payloadcms.com",
"repository": {
"type": "git",

View File

@@ -1,6 +1,6 @@
{
"name": "@payloadcms/ui",
"version": "3.0.0-beta.114",
"version": "3.0.0-beta.115",
"homepage": "https://payloadcms.com",
"repository": {
"type": "git",

View File

@@ -107,7 +107,6 @@
&__actions-wrapper {
position: relative;
overflow: hidden;
display: flex;
align-items: center;
gap: calc(var(--base) / 2);

View File

@@ -11,10 +11,11 @@ import './index.scss'
const baseClass = 'bulk-upload--add-files'
type Props = {
readonly acceptMimeTypes?: string
readonly onCancel: () => void
readonly onDrop: (acceptedFiles: FileList) => void
}
export function AddFilesView({ onCancel, onDrop }: Props) {
export function AddFilesView({ acceptMimeTypes, onCancel, onDrop }: Props) {
const { t } = useTranslation()
const inputRef = React.useRef(null)
@@ -37,6 +38,7 @@ export function AddFilesView({ onCancel, onDrop }: Props) {
{t('upload:selectFile')}
</Button>
<input
accept={acceptMimeTypes}
aria-hidden="true"
className={`${baseClass}__hidden-input`}
hidden

View File

@@ -5,6 +5,7 @@ import type { JsonObject } from 'payload'
import { useModal } from '@faceless-ui/modal'
import React from 'react'
import { useConfig } from '../../providers/Config/index.js'
import { EditDepthProvider, useEditDepth } from '../../providers/EditDepth/index.js'
import { Drawer } from '../Drawer/index.js'
import { AddFilesView } from './AddFilesView/index.js'
@@ -17,12 +18,27 @@ function DrawerContent() {
const { addFiles, forms, isInitializing } = useFormsManager()
const { closeModal } = useModal()
const { collectionSlug, drawerSlug } = useBulkUpload()
const { config } = useConfig()
const uploadCollection = config.collections.find((col) => col.slug === collectionSlug)
const uploadConfig = uploadCollection.upload
const uploadMimeTypes = uploadConfig.mimeTypes
const onDrop = React.useCallback(
(acceptedFiles: FileList) => {
void addFiles(acceptedFiles)
const fileTransfer = new DataTransfer()
for (const candidateFile of acceptedFiles) {
if (
uploadMimeTypes === undefined ||
uploadMimeTypes.length === 0 ||
uploadMimeTypes?.includes(candidateFile.type)
) {
fileTransfer.items.add(candidateFile)
}
}
void addFiles(fileTransfer.files)
},
[addFiles],
[addFiles, uploadMimeTypes],
)
if (!collectionSlug) {
@@ -30,7 +46,13 @@ function DrawerContent() {
}
if (!forms.length && !isInitializing) {
return <AddFilesView onCancel={() => closeModal(drawerSlug)} onDrop={onDrop} />
return (
<AddFilesView
acceptMimeTypes={uploadMimeTypes?.join(', ')}
onCancel={() => closeModal(drawerSlug)}
onDrop={onDrop}
/>
)
} else {
return <AddingFilesView />
}

View File

@@ -218,6 +218,8 @@ export const Upload: React.FC<UploadProps> = (props) => {
const showFocalPoint = focalPoint && (hasImageSizes || hasResizeOptions || focalPointEnabled)
const acceptMimeTypes = uploadConfig.mimeTypes?.join(', ')
return (
<div className={[fieldBaseClass, baseClass].filter(Boolean).join(' ')}>
<FieldError field={null} message={errorMessage} showError={showError} />
@@ -251,6 +253,7 @@ export const Upload: React.FC<UploadProps> = (props) => {
{t('upload:selectFile')}
</Button>
<input
accept={acceptMimeTypes}
aria-hidden="true"
className={`${baseClass}__hidden-input`}
hidden

240
pnpm-lock.yaml generated
View File

@@ -10,7 +10,7 @@ overrides:
copyfiles: 2.4.1
cross-env: 7.0.3
dotenv: 16.4.5
drizzle-orm: 0.32.1
drizzle-orm: 0.35.1
graphql: ^16.8.1
mongodb-memory-server: ^9.0
react: 19.0.0-rc-3edc000d-20240926
@@ -25,8 +25,8 @@ importers:
specifier: 29.7.0
version: 29.7.0
'@libsql/client':
specifier: 0.6.2
version: 0.6.2(bufferutil@4.0.8)(utf-8-validate@6.0.4)
specifier: 0.14.0
version: 0.14.0(bufferutil@4.0.8)(utf-8-validate@6.0.4)
'@next/bundle-analyzer':
specifier: 15.0.0-canary.173
version: 15.0.0-canary.173(bufferutil@4.0.8)
@@ -109,11 +109,11 @@ importers:
specifier: 16.4.5
version: 16.4.5
drizzle-kit:
specifier: 0.23.2-df9e596
version: 0.23.2-df9e596
specifier: 0.26.1
version: 0.26.1
drizzle-orm:
specifier: 0.32.1
version: 0.32.1(@libsql/client@0.6.2(bufferutil@4.0.8))(@neondatabase/serverless@0.9.4)(@opentelemetry/api@1.9.0)(@types/pg@8.11.6)(@vercel/postgres@0.9.0)(pg@8.11.3)(react@19.0.0-rc-3edc000d-20240926)(types-react@19.0.0-rc.1)
specifier: 0.35.1
version: 0.35.1(@libsql/client@0.14.0(bufferutil@4.0.8))(@neondatabase/serverless@0.9.4)(@opentelemetry/api@1.9.0)(@types/pg@8.11.6)(@vercel/postgres@0.9.0)(pg@8.11.3)(react@19.0.0-rc-3edc000d-20240926)(types-react@19.0.0-rc.1)
escape-html:
specifier: ^1.0.3
version: 1.0.3
@@ -202,8 +202,8 @@ importers:
specifier: 4.19.1
version: 4.19.1
turbo:
specifier: ^2.1.2
version: 2.1.2
specifier: ^2.1.3
version: 2.1.3
typescript:
specifier: 5.6.2
version: 5.6.2
@@ -315,11 +315,11 @@ importers:
specifier: 2.11.2
version: 2.11.2
drizzle-kit:
specifier: 0.23.2-df9e596
version: 0.23.2-df9e596
specifier: 0.26.1
version: 0.26.1
drizzle-orm:
specifier: 0.32.1
version: 0.32.1(@libsql/client@0.6.2(bufferutil@4.0.8)(utf-8-validate@6.0.4))(@neondatabase/serverless@0.9.4)(@opentelemetry/api@1.9.0)(@types/pg@8.10.2)(@vercel/postgres@0.9.0)(pg@8.11.3)(react@19.0.0-rc-3edc000d-20240926)(types-react@19.0.0-rc.1)
specifier: 0.35.1
version: 0.35.1(@libsql/client@0.14.0(bufferutil@4.0.8)(utf-8-validate@6.0.4))(@neondatabase/serverless@0.9.4)(@opentelemetry/api@1.9.0)(@types/pg@8.10.2)(@vercel/postgres@0.9.0)(pg@8.11.3)(react@19.0.0-rc-3edc000d-20240926)(types-react@19.0.0-rc.1)
pg:
specifier: 8.11.3
version: 8.11.3
@@ -352,8 +352,8 @@ importers:
packages/db-sqlite:
dependencies:
'@libsql/client':
specifier: ^0.6.2
version: 0.6.2(bufferutil@4.0.8)(utf-8-validate@6.0.4)
specifier: 0.14.0
version: 0.14.0(bufferutil@4.0.8)(utf-8-validate@6.0.4)
'@payloadcms/drizzle':
specifier: workspace:*
version: link:../drizzle
@@ -361,11 +361,11 @@ importers:
specifier: 2.11.2
version: 2.11.2
drizzle-kit:
specifier: 0.23.2-df9e596
version: 0.23.2-df9e596
specifier: 0.26.1
version: 0.26.1
drizzle-orm:
specifier: 0.32.1
version: 0.32.1(@libsql/client@0.6.2(bufferutil@4.0.8)(utf-8-validate@6.0.4))(@neondatabase/serverless@0.9.4)(@opentelemetry/api@1.9.0)(@types/pg@8.10.2)(@vercel/postgres@0.9.0)(pg@8.11.3)(react@19.0.0-rc-3edc000d-20240926)(types-react@19.0.0-rc.1)
specifier: 0.35.1
version: 0.35.1(@libsql/client@0.14.0(bufferutil@4.0.8)(utf-8-validate@6.0.4))(@neondatabase/serverless@0.9.4)(@opentelemetry/api@1.9.0)(@types/pg@8.10.2)(@vercel/postgres@0.9.0)(pg@8.11.3)(react@19.0.0-rc-3edc000d-20240926)(types-react@19.0.0-rc.1)
prompts:
specifier: 2.4.2
version: 2.4.2
@@ -401,11 +401,11 @@ importers:
specifier: 2.11.2
version: 2.11.2
drizzle-kit:
specifier: 0.23.2-df9e596
version: 0.23.2-df9e596
specifier: 0.26.1
version: 0.26.1
drizzle-orm:
specifier: 0.32.1
version: 0.32.1(@libsql/client@0.6.2(bufferutil@4.0.8)(utf-8-validate@6.0.4))(@neondatabase/serverless@0.9.4)(@opentelemetry/api@1.9.0)(@types/pg@8.10.2)(@vercel/postgres@0.9.0)(pg@8.11.3)(react@19.0.0-rc-3edc000d-20240926)(types-react@19.0.0-rc.1)
specifier: 0.35.1
version: 0.35.1(@libsql/client@0.14.0(bufferutil@4.0.8)(utf-8-validate@6.0.4))(@neondatabase/serverless@0.9.4)(@opentelemetry/api@1.9.0)(@types/pg@8.10.2)(@vercel/postgres@0.9.0)(pg@8.11.3)(react@19.0.0-rc-3edc000d-20240926)(types-react@19.0.0-rc.1)
pg:
specifier: 8.11.3
version: 8.11.3
@@ -444,8 +444,8 @@ importers:
specifier: 2.11.2
version: 2.11.2
drizzle-orm:
specifier: 0.32.1
version: 0.32.1(@libsql/client@0.6.2(bufferutil@4.0.8)(utf-8-validate@6.0.4))(@neondatabase/serverless@0.9.4)(@opentelemetry/api@1.9.0)(@types/pg@8.10.2)(@vercel/postgres@0.9.0)(pg@8.11.3)(react@19.0.0-rc-3edc000d-20240926)(types-react@19.0.0-rc.1)
specifier: 0.35.1
version: 0.35.1(@libsql/client@0.14.0(bufferutil@4.0.8)(utf-8-validate@6.0.4))(@neondatabase/serverless@0.9.4)(@opentelemetry/api@1.9.0)(@types/pg@8.10.2)(@vercel/postgres@0.9.0)(pg@8.11.3)(react@19.0.0-rc-3edc000d-20240926)(types-react@19.0.0-rc.1)
prompts:
specifier: 2.4.2
version: 2.4.2
@@ -457,8 +457,8 @@ importers:
version: 9.0.0
devDependencies:
'@libsql/client':
specifier: ^0.6.2
version: 0.6.2(bufferutil@4.0.8)(utf-8-validate@6.0.4)
specifier: 0.14.0
version: 0.14.0(bufferutil@4.0.8)(utf-8-validate@6.0.4)
'@payloadcms/eslint-config':
specifier: workspace:*
version: link:../eslint-config
@@ -1727,8 +1727,8 @@ importers:
specifier: 16.4.5
version: 16.4.5
drizzle-kit:
specifier: 0.23.2-df9e596
version: 0.23.2-df9e596
specifier: 0.26.1
version: 0.26.1
eslint-plugin-playwright:
specifier: 1.6.2
version: 1.6.2(eslint-plugin-jest@28.8.1(@typescript-eslint/eslint-plugin@8.3.0(@typescript-eslint/parser@8.3.0(eslint@9.9.1(jiti@1.21.6))(typescript@5.6.2))(eslint@9.9.1(jiti@1.21.6))(typescript@5.6.2))(eslint@9.9.1(jiti@1.21.6))(jest@29.7.0(@types/node@22.5.4)(babel-plugin-macros@3.1.0))(typescript@5.6.2))(eslint@9.9.1(jiti@1.21.6))
@@ -2724,8 +2724,8 @@ packages:
peerDependencies:
react: 19.0.0-rc-3edc000d-20240926
'@drizzle-team/brocli@0.8.2':
resolution: {integrity: sha512-zTrFENsqGvOkBOuHDC1pXCkDXNd2UhP4lI3gYGhQ1R1SPeAAfqzPsV1dcpMy4uNU6kB5VpU5NGhvwxVNETR02A==}
'@drizzle-team/brocli@0.10.1':
resolution: {integrity: sha512-AHy0vjc+n/4w/8Mif+w86qpppHuF3AyXbcWW+R/W7GNA3F5/p2nuhlkCJaTXSLZheB4l1rtHzOfr9A7NwoR/Zg==}
'@effect/schema@0.68.12':
resolution: {integrity: sha512-UWJsFXzeYTBQYnftwI1KR2uaxIZ8fk+kffDS7BnJwnGjPPgODq3/AzeoBDSu1MAlnwBKOz+QRdMuSMxrT/pHig==}
@@ -3642,54 +3642,54 @@ packages:
peerDependencies:
yjs: '>=13.5.22'
'@libsql/client@0.6.2':
resolution: {integrity: sha512-xRNfRLv/dOCbV4qd+M0baQwGmvuZpMd2wG2UAPs8XmcdaPvu5ErkcaeITkxlm3hDEJVabQM1cFhMBxsugWW9fQ==}
'@libsql/client@0.14.0':
resolution: {integrity: sha512-/9HEKfn6fwXB5aTEEoMeFh4CtG0ZzbncBb1e++OCdVpgKZ/xyMsIVYXm0w7Pv4RUel803vE6LwniB3PqD72R0Q==}
'@libsql/core@0.6.2':
resolution: {integrity: sha512-c2P4M+4u/4b2L02A0KjggO3UW51rGkhxr/7fzJO0fEAqsqrWGxuNj2YtRkina/oxfYvAof6xjp8RucNoIV/Odw==}
'@libsql/core@0.14.0':
resolution: {integrity: sha512-nhbuXf7GP3PSZgdCY2Ecj8vz187ptHlZQ0VRc751oB2C1W8jQUXKKklvt7t1LJiUTQBVJuadF628eUk+3cRi4Q==}
'@libsql/darwin-arm64@0.3.19':
resolution: {integrity: sha512-rmOqsLcDI65zzxlUOoEiPJLhqmbFsZF6p4UJQ2kMqB+Kc0Rt5/A1OAdOZ/Wo8fQfJWjR1IbkbpEINFioyKf+nQ==}
'@libsql/darwin-arm64@0.4.6':
resolution: {integrity: sha512-45i604CJ2Lubbg7NqtDodjarF6VgST8rS5R8xB++MoRqixtDns9PZ6tocT9pRJDWuTWEiy2sjthPOFWMKwYAsg==}
cpu: [arm64]
os: [darwin]
'@libsql/darwin-x64@0.3.19':
resolution: {integrity: sha512-q9O55B646zU+644SMmOQL3FIfpmEvdWpRpzubwFc2trsa+zoBlSkHuzU9v/C+UNoPHQVRMP7KQctJ455I/h/xw==}
'@libsql/darwin-x64@0.4.6':
resolution: {integrity: sha512-dRKliflhfr5zOPSNgNJ6C2nZDd4YA8bTXF3MUNqNkcxQ8BffaH9uUwL9kMq89LkFIZQHcyP75bBgZctxfJ/H5Q==}
cpu: [x64]
os: [darwin]
'@libsql/hrana-client@0.6.2':
resolution: {integrity: sha512-MWxgD7mXLNf9FXXiM0bc90wCjZSpErWKr5mGza7ERy2FJNNMXd7JIOv+DepBA1FQTIfI8TFO4/QDYgaQC0goNw==}
'@libsql/hrana-client@0.7.0':
resolution: {integrity: sha512-OF8fFQSkbL7vJY9rfuegK1R7sPgQ6kFMkDamiEccNUvieQ+3urzfDFI616oPl8V7T9zRmnTkSjMOImYCAVRVuw==}
'@libsql/isomorphic-fetch@0.2.5':
resolution: {integrity: sha512-8s/B2TClEHms2yb+JGpsVRTPBfy1ih/Pq6h6gvyaNcYnMVJvgQRY7wAa8U2nD0dppbCuDU5evTNMEhrQ17ZKKg==}
'@libsql/isomorphic-fetch@0.3.1':
resolution: {integrity: sha512-6kK3SUK5Uu56zPq/Las620n5aS9xJq+jMBcNSOmjhNf/MUvdyji4vrMTqD7ptY7/4/CAVEAYDeotUz60LNQHtw==}
engines: {node: '>=18.0.0'}
'@libsql/isomorphic-ws@0.1.5':
resolution: {integrity: sha512-DtLWIH29onUYR00i0GlQ3UdcTRC6EP4u9w/h9LxpUZJWRMARk6dQwZ6Jkd+QdwVpuAOrdxt18v0K2uIYR3fwFg==}
'@libsql/linux-arm64-gnu@0.3.19':
resolution: {integrity: sha512-mgeAUU1oqqh57k7I3cQyU6Trpdsdt607eFyEmH5QO7dv303ti+LjUvh1pp21QWV6WX7wZyjeJV1/VzEImB+jRg==}
'@libsql/linux-arm64-gnu@0.4.6':
resolution: {integrity: sha512-DMPavVyY6vYPAYcQR1iOotHszg+5xSjHSg6F9kNecPX0KKdGq84zuPJmORfKOPtaWvzPewNFdML/e+s1fu09XQ==}
cpu: [arm64]
os: [linux]
'@libsql/linux-arm64-musl@0.3.19':
resolution: {integrity: sha512-VEZtxghyK6zwGzU9PHohvNxthruSxBEnRrX7BSL5jQ62tN4n2JNepJ6SdzXp70pdzTfwroOj/eMwiPt94gkVRg==}
'@libsql/linux-arm64-musl@0.4.6':
resolution: {integrity: sha512-whuHSYAZyclGjM3L0mKGXyWqdAy7qYvPPn+J1ve7FtGkFlM0DiIPjA5K30aWSGJSRh72sD9DBZfnu8CpfSjT6w==}
cpu: [arm64]
os: [linux]
'@libsql/linux-x64-gnu@0.3.19':
resolution: {integrity: sha512-2t/J7LD5w2f63wGihEO+0GxfTyYIyLGEvTFEsMO16XI5o7IS9vcSHrxsvAJs4w2Pf907uDjmc7fUfMg6L82BrQ==}
'@libsql/linux-x64-gnu@0.4.6':
resolution: {integrity: sha512-0ggx+5RwEbYabIlDBBAvavdfIJCZ757u6nDZtBeQIhzW99EKbWG3lvkXHM3qudFb/pDWSUY4RFBm6vVtF1cJGA==}
cpu: [x64]
os: [linux]
'@libsql/linux-x64-musl@0.3.19':
resolution: {integrity: sha512-BLsXyJaL8gZD8+3W2LU08lDEd9MIgGds0yPy5iNPp8tfhXx3pV/Fge2GErN0FC+nzt4DYQtjL+A9GUMglQefXQ==}
'@libsql/linux-x64-musl@0.4.6':
resolution: {integrity: sha512-SWNrv7Hz72QWlbM/ZsbL35MPopZavqCUmQz2HNDZ55t0F+kt8pXuP+bbI2KvmaQ7wdsoqAA4qBmjol0+bh4ndw==}
cpu: [x64]
os: [linux]
'@libsql/win32-x64-msvc@0.3.19':
resolution: {integrity: sha512-ay1X9AobE4BpzG0XPw1gplyLZPGHIgJOovvW23gUrukRegiUP62uzhpRbKNogLlUOynyXeq//prHgPXiebUfWg==}
'@libsql/win32-x64-msvc@0.4.6':
resolution: {integrity: sha512-Q0axn110zDNELfkEog3Nl8p9BU4eI/UvgaHevGyOiSDN7s0KPfj0j6jwVHk4oz3o/d/Gg3DRIxomZ4ftfTOy/g==}
cpu: [x64]
os: [win32]
@@ -5869,17 +5869,17 @@ packages:
resolution: {integrity: sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==}
engines: {node: '>=12'}
drizzle-kit@0.23.2-df9e596:
resolution: {integrity: sha512-MOvoeDE1c05XGevXLqhRVu/TNHwueibPZqMUH/kG1v6DOHD5pB2poRpjphr4sjae2QDS6h+PU5pCfzqEa6le6Q==}
drizzle-kit@0.26.1:
resolution: {integrity: sha512-5/e1tzOPicPDooCm/uJIU9mWK3eD5dhW5EY61TQyVVo29xYxFLmZpXlBdOYlbfDHBsNhVzhb0XjWFmAAj7d7WA==}
hasBin: true
drizzle-orm@0.32.1:
resolution: {integrity: sha512-Wq1J+lL8PzwR5K3a1FfoWsbs8powjr3pGA4+5+2ueN1VTLDNFYEolUyUWFtqy8DVRvYbL2n7sXZkgVmK9dQkng==}
drizzle-orm@0.35.1:
resolution: {integrity: sha512-HQxDdYuXlZFuvDPztlUIzrX8TqWa/Ej6uN6L0hkbuGL4slexOUMc3u4nXVU15RQ5QYbk+uLQnR6v1+OIrdCTXQ==}
peerDependencies:
'@aws-sdk/client-rds-data': '>=3'
'@cloudflare/workers-types': '>=3'
'@electric-sql/pglite': '>=0.1.1'
'@libsql/client': '*'
'@libsql/client': '>=0.10.0'
'@neondatabase/serverless': '>=0.1'
'@op-engineering/op-sqlite': '>=2'
'@opentelemetry/api': ^1.4.1
@@ -7550,8 +7550,8 @@ packages:
engines: {node: '>=16'}
hasBin: true
libsql@0.3.19:
resolution: {integrity: sha512-Aj5cQ5uk/6fHdmeW0TiXK42FqUlwx7ytmMLPSaUQPin5HKKKuUPD62MAbN4OEweGBBI7q1BekoEN4gPUEL6MZA==}
libsql@0.4.6:
resolution: {integrity: sha512-F5M+ltteK6dCcpjMahrkgT96uFJvVI8aQ4r9f2AzHQjC7BkAYtvfMSTWGvRBezRgMUIU2h1Sy0pF9nOGOD5iyA==}
os: [darwin, linux, win32]
lie@3.1.1:
@@ -8431,6 +8431,9 @@ packages:
resolution: {integrity: sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==}
engines: {node: '>=0.4.0'}
promise-limit@2.7.0:
resolution: {integrity: sha512-7nJ6v5lnJsXwGprnGXga4wx6d1POjvi5Qmf1ivTRxTjH4Z/9Czja/UCMLVmB9N93GeWOU93XaFaEt6jbuoagNw==}
prompts@2.4.2:
resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==}
engines: {node: '>= 6'}
@@ -9565,38 +9568,38 @@ packages:
tunnel-agent@0.6.0:
resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==}
turbo-darwin-64@2.1.2:
resolution: {integrity: sha512-3TEBxHWh99h2yIzkuIigMEOXt/ItYQp0aPiJjPd1xN4oDcsKK5AxiFKPH9pdtfIBzYsY59kQhZiFj0ELnSP7Bw==}
turbo-darwin-64@2.1.3:
resolution: {integrity: sha512-ouJOm0g0YyoBuhmikEujVCBGo3Zr0lbSOWFIsQtWUTItC88F2w2byhjtsYGPXQwMlTbXwmoBU2lOCfWNkeEwHQ==}
cpu: [x64]
os: [darwin]
turbo-darwin-arm64@2.1.2:
resolution: {integrity: sha512-he0miWNq2WxJzsH82jS2Z4MXpnkzn9SH8a79iPXiJkq25QREImucscM4RPasXm8wARp91pyysJMq6aasD45CeA==}
turbo-darwin-arm64@2.1.3:
resolution: {integrity: sha512-j2FOJsK4LAOtHQlb3Oom0yWB/Vi0nF1ljInr311mVzHoFAJRZtfW2fRvdZRb/lBUwjSp8be58qWHzANIcrA0OA==}
cpu: [arm64]
os: [darwin]
turbo-linux-64@2.1.2:
resolution: {integrity: sha512-fKUBcc0rK8Vdqv5a/E3CSpMBLG1bzwv+Q0Q83F8fG2ZfNCNKGbcEYABdonNZkkx141Rj03cZQFCgxu3MVEGU+A==}
turbo-linux-64@2.1.3:
resolution: {integrity: sha512-ubRHkI1gSel7H7wsmxKK8C9UlLWqg/2dkCC88LFupaK6TKgvBKqDqA0Z1M9C/escK0Jsle2k0H8bybV9OYIl4Q==}
cpu: [x64]
os: [linux]
turbo-linux-arm64@2.1.2:
resolution: {integrity: sha512-sV8Bpmm0WiuxgbhxymcC7wSsuxfBBieI98GegSwbr/bs1ANAgzCg93urIrdKdQ3/b31zZxQwcaP4FBF1wx1Qdg==}
turbo-linux-arm64@2.1.3:
resolution: {integrity: sha512-LffUL+e5wv7BtD6DgnM2kKOlDkMo2eRjhbAjVnrCD3wi2ug0tl6NDzajnHHjtaMyOnIf4AvzSKdLWsBxafGBQA==}
cpu: [arm64]
os: [linux]
turbo-windows-64@2.1.2:
resolution: {integrity: sha512-wcmIJZI9ORT9ykHGliFE6kWRQrlH930QGSjSgWC8uFChFFuOyUlvC7ttcxuSvU9VqC7NF4C+GVAcFJQ8lTjN7g==}
turbo-windows-64@2.1.3:
resolution: {integrity: sha512-S9SvcZZoaq5jKr6kA6eF7/xgQhVn8Vh7PVy5lono9zybvhyL4eY++y2PaLToIgL8G9IcbLmgOC73ExNjFBg9XQ==}
cpu: [x64]
os: [win32]
turbo-windows-arm64@2.1.2:
resolution: {integrity: sha512-zdnXjrhk7YO6CP+Q5wPueEvOCLH4lDa6C4rrwiakcWcPgcQGbVozJlo4uaQ6awo8HLWQEvOwu84RkWTdLAc/Hw==}
turbo-windows-arm64@2.1.3:
resolution: {integrity: sha512-twlEo8lRrGbrR6T/ZklUIquW3IlFCEtywklgVA81aIrSBm56+GEVpSrHhIlsx1hiYeSNrs+GpDwZGe+V7fvEVQ==}
cpu: [arm64]
os: [win32]
turbo@2.1.2:
resolution: {integrity: sha512-Jb0rbU4iHEVQ18An/YfakdIv9rKnd3zUfSE117EngrfWXFHo3RndVH96US3GsT8VHpwTncPePDBT2t06PaFLrw==}
turbo@2.1.3:
resolution: {integrity: sha512-lY0yj2GH2a2a3NExZ3rGe+rHUVeFE2aXuRAue57n+08E7Z7N7YCmynju0kPC1grAQzERmoLpKrmzmWd+PNiADw==}
hasBin: true
type-check@0.4.0:
@@ -11683,7 +11686,7 @@ snapshots:
react: 19.0.0-rc-5dcb0097-20240918
tslib: 2.6.3
'@drizzle-team/brocli@0.8.2': {}
'@drizzle-team/brocli@0.10.1': {}
'@effect/schema@0.68.12(effect@3.4.5)':
dependencies:
@@ -12687,29 +12690,30 @@ snapshots:
lexical: 0.18.0
yjs: 13.6.18
'@libsql/client@0.6.2(bufferutil@4.0.8)(utf-8-validate@6.0.4)':
'@libsql/client@0.14.0(bufferutil@4.0.8)(utf-8-validate@6.0.4)':
dependencies:
'@libsql/core': 0.6.2
'@libsql/hrana-client': 0.6.2(bufferutil@4.0.8)(utf-8-validate@6.0.4)
'@libsql/core': 0.14.0
'@libsql/hrana-client': 0.7.0(bufferutil@4.0.8)(utf-8-validate@6.0.4)
js-base64: 3.7.7
libsql: 0.3.19
libsql: 0.4.6
promise-limit: 2.7.0
transitivePeerDependencies:
- bufferutil
- utf-8-validate
'@libsql/core@0.6.2':
'@libsql/core@0.14.0':
dependencies:
js-base64: 3.7.7
'@libsql/darwin-arm64@0.3.19':
'@libsql/darwin-arm64@0.4.6':
optional: true
'@libsql/darwin-x64@0.3.19':
'@libsql/darwin-x64@0.4.6':
optional: true
'@libsql/hrana-client@0.6.2(bufferutil@4.0.8)(utf-8-validate@6.0.4)':
'@libsql/hrana-client@0.7.0(bufferutil@4.0.8)(utf-8-validate@6.0.4)':
dependencies:
'@libsql/isomorphic-fetch': 0.2.5
'@libsql/isomorphic-fetch': 0.3.1
'@libsql/isomorphic-ws': 0.1.5(bufferutil@4.0.8)(utf-8-validate@6.0.4)
js-base64: 3.7.7
node-fetch: 3.3.2
@@ -12717,7 +12721,7 @@ snapshots:
- bufferutil
- utf-8-validate
'@libsql/isomorphic-fetch@0.2.5': {}
'@libsql/isomorphic-fetch@0.3.1': {}
'@libsql/isomorphic-ws@0.1.5(bufferutil@4.0.8)(utf-8-validate@6.0.4)':
dependencies:
@@ -12727,19 +12731,19 @@ snapshots:
- bufferutil
- utf-8-validate
'@libsql/linux-arm64-gnu@0.3.19':
'@libsql/linux-arm64-gnu@0.4.6':
optional: true
'@libsql/linux-arm64-musl@0.3.19':
'@libsql/linux-arm64-musl@0.4.6':
optional: true
'@libsql/linux-x64-gnu@0.3.19':
'@libsql/linux-x64-gnu@0.4.6':
optional: true
'@libsql/linux-x64-musl@0.3.19':
'@libsql/linux-x64-musl@0.4.6':
optional: true
'@libsql/win32-x64-msvc@0.3.19':
'@libsql/win32-x64-msvc@0.4.6':
optional: true
'@mole-inc/bin-wrapper@8.0.1':
@@ -15432,18 +15436,18 @@ snapshots:
dotenv@16.4.5: {}
drizzle-kit@0.23.2-df9e596:
drizzle-kit@0.26.1:
dependencies:
'@drizzle-team/brocli': 0.8.2
'@drizzle-team/brocli': 0.10.1
'@esbuild-kit/esm-loader': 2.6.5
esbuild: 0.19.12
esbuild-register: 3.6.0(esbuild@0.19.12)
transitivePeerDependencies:
- supports-color
drizzle-orm@0.32.1(@libsql/client@0.6.2(bufferutil@4.0.8)(utf-8-validate@6.0.4))(@neondatabase/serverless@0.9.4)(@opentelemetry/api@1.9.0)(@types/pg@8.10.2)(@vercel/postgres@0.9.0)(pg@8.11.3)(react@19.0.0-rc-3edc000d-20240926)(types-react@19.0.0-rc.1):
drizzle-orm@0.35.1(@libsql/client@0.14.0(bufferutil@4.0.8)(utf-8-validate@6.0.4))(@neondatabase/serverless@0.9.4)(@opentelemetry/api@1.9.0)(@types/pg@8.10.2)(@vercel/postgres@0.9.0)(pg@8.11.3)(react@19.0.0-rc-3edc000d-20240926)(types-react@19.0.0-rc.1):
optionalDependencies:
'@libsql/client': 0.6.2(bufferutil@4.0.8)(utf-8-validate@6.0.4)
'@libsql/client': 0.14.0(bufferutil@4.0.8)(utf-8-validate@6.0.4)
'@neondatabase/serverless': 0.9.4
'@opentelemetry/api': 1.9.0
'@types/pg': 8.10.2
@@ -15452,9 +15456,9 @@ snapshots:
pg: 8.11.3
react: 19.0.0-rc-3edc000d-20240926
drizzle-orm@0.32.1(@libsql/client@0.6.2(bufferutil@4.0.8))(@neondatabase/serverless@0.9.4)(@opentelemetry/api@1.9.0)(@types/pg@8.11.6)(@vercel/postgres@0.9.0)(pg@8.11.3)(react@19.0.0-rc-3edc000d-20240926)(types-react@19.0.0-rc.1):
drizzle-orm@0.35.1(@libsql/client@0.14.0(bufferutil@4.0.8))(@neondatabase/serverless@0.9.4)(@opentelemetry/api@1.9.0)(@types/pg@8.11.6)(@vercel/postgres@0.9.0)(pg@8.11.3)(react@19.0.0-rc-3edc000d-20240926)(types-react@19.0.0-rc.1):
optionalDependencies:
'@libsql/client': 0.6.2(bufferutil@4.0.8)(utf-8-validate@6.0.4)
'@libsql/client': 0.14.0(bufferutil@4.0.8)(utf-8-validate@6.0.4)
'@neondatabase/serverless': 0.9.4
'@opentelemetry/api': 1.9.0
'@types/pg': 8.11.6
@@ -17587,18 +17591,18 @@ snapshots:
dependencies:
isomorphic.js: 0.2.5
libsql@0.3.19:
libsql@0.4.6:
dependencies:
'@neon-rs/load': 0.0.4
detect-libc: 2.0.2
optionalDependencies:
'@libsql/darwin-arm64': 0.3.19
'@libsql/darwin-x64': 0.3.19
'@libsql/linux-arm64-gnu': 0.3.19
'@libsql/linux-arm64-musl': 0.3.19
'@libsql/linux-x64-gnu': 0.3.19
'@libsql/linux-x64-musl': 0.3.19
'@libsql/win32-x64-msvc': 0.3.19
'@libsql/darwin-arm64': 0.4.6
'@libsql/darwin-x64': 0.4.6
'@libsql/linux-arm64-gnu': 0.4.6
'@libsql/linux-arm64-musl': 0.4.6
'@libsql/linux-x64-gnu': 0.4.6
'@libsql/linux-x64-musl': 0.4.6
'@libsql/win32-x64-msvc': 0.4.6
lie@3.1.1:
dependencies:
@@ -18533,6 +18537,8 @@ snapshots:
progress@2.0.3: {}
promise-limit@2.7.0: {}
prompts@2.4.2:
dependencies:
kleur: 3.0.3
@@ -19750,32 +19756,32 @@ snapshots:
dependencies:
safe-buffer: 5.2.1
turbo-darwin-64@2.1.2:
turbo-darwin-64@2.1.3:
optional: true
turbo-darwin-arm64@2.1.2:
turbo-darwin-arm64@2.1.3:
optional: true
turbo-linux-64@2.1.2:
turbo-linux-64@2.1.3:
optional: true
turbo-linux-arm64@2.1.2:
turbo-linux-arm64@2.1.3:
optional: true
turbo-windows-64@2.1.2:
turbo-windows-64@2.1.3:
optional: true
turbo-windows-arm64@2.1.2:
turbo-windows-arm64@2.1.3:
optional: true
turbo@2.1.2:
turbo@2.1.3:
optionalDependencies:
turbo-darwin-64: 2.1.2
turbo-darwin-arm64: 2.1.2
turbo-linux-64: 2.1.2
turbo-linux-arm64: 2.1.2
turbo-windows-64: 2.1.2
turbo-windows-arm64: 2.1.2
turbo-darwin-64: 2.1.3
turbo-darwin-arm64: 2.1.3
turbo-linux-64: 2.1.3
turbo-linux-arm64: 2.1.3
turbo-windows-64: 2.1.3
turbo-windows-arm64: 2.1.3
type-check@0.4.0:
dependencies:

View File

@@ -68,6 +68,7 @@ export async function GET(
try {
const docs = await payload.find({
collection: collection,
draft: true,
where: {
slug: {
equals: slug,

View File

@@ -64,7 +64,7 @@
"comment-json": "^4.2.3",
"create-payload-app": "workspace:*",
"dotenv": "16.4.5",
"drizzle-kit": "0.23.2-df9e596",
"drizzle-kit": "0.26.1",
"eslint-plugin-playwright": "1.6.2",
"execa": "5.1.1",
"file-type": "19.3.0",