Files
klz-cables.com/.pnpm-store/v10/files/34/1e90cc41df0f27585bf9a7be9de1f02473b85ab9dd8516d003a4fb73cb0b02e88065fc2e481a1a91cc9e78197ade60d7b7b3a4347f8ffed8bc655566e46c58
Marc Mintel 5397309103
Some checks failed
Build & Deploy / 🔍 Prepare (push) Successful in 20s
Build & Deploy / 🧪 QA (push) Failing after 34s
Build & Deploy / 🏗️ Build (push) Has started running
Build & Deploy / 🚀 Deploy (push) Has been cancelled
Build & Deploy / 🧪 Smoke Test (push) Has been cancelled
Build & Deploy / ⚡ Lighthouse (push) Has been cancelled
Build & Deploy / 🔔 Notify (push) Has been cancelled
fix(products): fix breadcrumbs and product filtering (backport from main)
2026-02-24 16:04:21 +01:00

82 lines
3.1 KiB
Plaintext

import type { TextFieldClientProps } from '../../../admin/types.js';
import type { TypeWithID } from '../../../collections/config/types.js';
import type { FieldAdmin, RowField, TextField } from '../../../fields/config/types.js';
import type { PayloadRequest } from '../../../types/index.js';
export type Slugify<T extends TypeWithID = any> = (args: {
data: T;
req: PayloadRequest;
valueToSlugify?: any;
}) => Promise<string | undefined> | string | undefined;
export type SlugFieldArgs = {
/**
* Override for the `generateSlug` checkbox field name.
* @default 'generateSlug'
*/
checkboxName?: string;
/**
* @deprecated use `useAsSlug` instead.
*/
fieldToUse?: string;
/**
* Enable localization for the slug field.
*/
localized?: TextField['localized'];
/**
* Override for the `slug` field name.
* @default 'slug'
*/
name?: string;
/**
* A function used to override the slug field(s) at a granular level.
* Passes the row field to you to manipulate beyond the exposed options.
* @example
* ```ts
* slugField({
* overrides: (field) => {
* field.fields[1].label = 'Custom Slug Label'
* return field
* }
* })
* ```
*/
overrides?: (field: RowField) => RowField;
position?: FieldAdmin['position'];
/**
* Whether or not the `slug` field is required.
* @default true
*/
required?: TextField['required'];
/**
* Provide your own slugify function to override the default.
*/
slugify?: Slugify;
/**
* The name of the top-level field to generate the slug from, when applicable.
* @default 'title'
*/
useAsSlug?: string;
};
export type SlugField = (args?: SlugFieldArgs) => RowField;
export type SlugFieldClientPropsOnly = Pick<SlugFieldArgs, 'useAsSlug'>;
/**
* These are the props that the `SlugField` client component accepts.
* The `SlugField` server component is responsible for passing down the `slugify` function.
*/
export type SlugFieldClientProps = SlugFieldClientPropsOnly & TextFieldClientProps;
/**
* A slug is a unique, indexed, URL-friendly string that identifies a particular document, often used to construct the URL of a webpage.
* The `slug` field auto-generates its value based on another field, e.g. "My Title" → "my-title".
*
* The slug should continue to be generated through:
* 1. The `create` operation, unless the user has modified the slug manually
* 2. The `update` operation, if:
* a. Autosave is _not_ enabled and there is no slug
* b. Autosave _is_ enabled, the doc is unpublished, and the user has not modified the slug manually
*
* The slug should stabilize after all above criteria have been met, because the URL is typically derived from the slug.
* This is to protect modifying potentially live URLs, breaking links, etc. without explicit intent.
*
* @experimental This field is experimental and may change or be removed in the future. Use at your own risk.
*/
export declare const slugField: SlugField;
//# sourceMappingURL=index.d.ts.map