@bison-lab/payload-core 3.25.0 → 3.26.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +10 -3
- package/dist/admin.d.mts +13 -4
- package/dist/admin.d.mts.map +1 -1
- package/dist/admin.mjs +289 -55
- package/dist/admin.mjs.map +1 -1
- package/dist/index.d.mts +47 -3
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +186 -39
- package/dist/index.mjs.map +1 -1
- package/package.json +4 -4
package/dist/index.d.mts
CHANGED
|
@@ -3,7 +3,7 @@ import { A as ThemeLibraryColorDoc, C as THEME_IDENTITY_SLUG, D as ThemeDoc, E a
|
|
|
3
3
|
import { a as NAVIGATION_FOOTER_DB_NAME, c as NavigationBar, d as NavigationHeader, i as NAVIGATION_FEATURE, l as NavigationDoc, n as CreateNavigationOptions, o as NAVIGATION_FOOTER_SLUG, r as NAVIGATION_DB_NAME, s as NAVIGATION_SLUG, t as getNavigation, u as NavigationFooter } from "./published-BtEiv0lH.mjs";
|
|
4
4
|
import { ThemeConfig } from "@bison-lab/tokens";
|
|
5
5
|
import * as payload$1 from "payload";
|
|
6
|
-
import { Access, Block, CheckboxField, CollectionAfterChangeHook, CollectionBeforeChangeHook, CollectionConfig, CollectionSlug, Field, GlobalConfig, ImageSize, Payload, PayloadRequest, Plugin, UploadCollectionSlug } from "payload";
|
|
6
|
+
import { Access, Block, CheckboxField, CollectionAfterChangeHook, CollectionBeforeChangeHook, CollectionBeforeValidateHook, CollectionConfig, CollectionSlug, Field, GlobalConfig, ImageSize, Payload, PayloadRequest, Plugin, UploadCollectionSlug } from "payload";
|
|
7
7
|
|
|
8
8
|
//#region src/seo/plugin.d.ts
|
|
9
9
|
/**
|
|
@@ -514,6 +514,20 @@ declare function validateFeaturesMatrix(value: unknown, extras?: readonly Featur
|
|
|
514
514
|
declare function featureGroupLabel(group: string): string;
|
|
515
515
|
//#endregion
|
|
516
516
|
//#region src/collections/pages.d.ts
|
|
517
|
+
/** Standing copy on the Layout field — same job as the hero description. */
|
|
518
|
+
declare const LAYOUT_DESCRIPTION = "Every page needs at least one section below the hero. A page cannot be published without one.";
|
|
519
|
+
/** Field error when Publish is clicked with an empty body. */
|
|
520
|
+
declare const LAYOUT_REQUIRED_MESSAGE = "Add at least one section. A page cannot be published without one.";
|
|
521
|
+
/**
|
|
522
|
+
* Toast label for that error. Payload's envelope is always
|
|
523
|
+
* "The following field is invalid: {label}", so the label has to name the fix.
|
|
524
|
+
*/
|
|
525
|
+
declare const LAYOUT_REQUIRED_LABEL = "Layout \u2014 add a section";
|
|
526
|
+
/**
|
|
527
|
+
* Drafts may be empty. Publish with no section is refused here so the toast
|
|
528
|
+
* names the fix — Payload's built-in minRows toast only says "Content → Layout".
|
|
529
|
+
*/
|
|
530
|
+
declare const requireLayoutOnPublish: CollectionBeforeValidateHook;
|
|
517
531
|
interface PagesOptions {
|
|
518
532
|
/**
|
|
519
533
|
* What a page may open with. One row, so this is the site's hero variants,
|
|
@@ -537,6 +551,12 @@ interface PagesOptions {
|
|
|
537
551
|
* site's committed `importMap.js`. Omit it for Payload's own button.
|
|
538
552
|
*/
|
|
539
553
|
previewButton?: string;
|
|
554
|
+
/**
|
|
555
|
+
* Standing folder roots (`patients`, `providers`). Shown on Parent even
|
|
556
|
+
* when no CMS page lives under them. Often the same paths `isReservedSlug`
|
|
557
|
+
* refuses as leaf pages.
|
|
558
|
+
*/
|
|
559
|
+
folderRoots?: string[];
|
|
540
560
|
}
|
|
541
561
|
/**
|
|
542
562
|
* CMS-managed pages: one required hero, then a reorderable body of sections.
|
|
@@ -544,6 +564,7 @@ interface PagesOptions {
|
|
|
544
564
|
* code-owned, which is why the blocks are an argument.
|
|
545
565
|
*/
|
|
546
566
|
declare function createPages({
|
|
567
|
+
folderRoots,
|
|
547
568
|
heroBlocks,
|
|
548
569
|
isReservedSlug,
|
|
549
570
|
layoutBlocks,
|
|
@@ -606,6 +627,10 @@ declare function createMedia({
|
|
|
606
627
|
//#endregion
|
|
607
628
|
//#region src/fields/slug.d.ts
|
|
608
629
|
declare const SLUG_FIELD = "@bison-lab/payload-core/admin#SlugField";
|
|
630
|
+
declare const PAGE_TITLE_CELL = "@bison-lab/payload-core/admin#PageTitleCell";
|
|
631
|
+
/** Sentinel the Parent control writes while the editor is naming a new folder. */
|
|
632
|
+
declare const NEW_FOLDER_PARENT = "__new__";
|
|
633
|
+
declare const EXISTING_PARENT_MESSAGE = "That folder is already in the list. Pick it from the list.";
|
|
609
634
|
declare const SLUG_UNLOCK_WARNING = "This page is live. Changing the address will send visitors from the old URL to the new one.";
|
|
610
635
|
interface SlugFieldOptions {
|
|
611
636
|
/** The collection the field sits on — what the duplicate check searches. */
|
|
@@ -616,12 +641,30 @@ interface SlugFieldOptions {
|
|
|
616
641
|
* those are is knowable only to the site, so it arrives as an option.
|
|
617
642
|
*/
|
|
618
643
|
isReserved: (slug: string) => boolean;
|
|
644
|
+
/**
|
|
645
|
+
* Standing folder roots the site owns in code (`patients`, `providers`).
|
|
646
|
+
* They appear on Parent even when no CMS page lives under them.
|
|
647
|
+
*/
|
|
648
|
+
folderRoots?: string[];
|
|
619
649
|
}
|
|
620
650
|
/**
|
|
621
651
|
* A stored slug from whatever was typed: NFKD, hyphenated, slash segments
|
|
622
652
|
* kept, so `Café / About Us` becomes `cafe/about-us`.
|
|
623
653
|
*/
|
|
624
654
|
declare function normalizeSlug(value: string): string;
|
|
655
|
+
/** The folder prefix Parent stores. `__new__` resolves through `newFolder`. */
|
|
656
|
+
declare function parentPrefix(parent: string | null | undefined, newFolder?: string | null): string;
|
|
657
|
+
/** Last segment of a stored slug — the title leaf once a folder is set. */
|
|
658
|
+
declare function slugLeaf(slug: string): string;
|
|
659
|
+
/**
|
|
660
|
+
* Address from a parent prefix and a title (or an existing leaf). Title-follow
|
|
661
|
+
* uses this so a folder is not wiped when the title changes.
|
|
662
|
+
*/
|
|
663
|
+
declare function composeSlug(parent: string | null | undefined, title: string, newFolder?: string | null): string;
|
|
664
|
+
/** Prefixes that exist only because a child slug lives under them. */
|
|
665
|
+
declare function inferredFolders(slugs: string[]): string[];
|
|
666
|
+
/** Slash count after the first segment — how far to indent a list row. */
|
|
667
|
+
declare function slugDepth(slug: string): number;
|
|
625
668
|
/**
|
|
626
669
|
* Locks the slug on first publish and remembers the live path so a later
|
|
627
670
|
* change can write a redirect. Unlock is a one-save flag and is cleared here.
|
|
@@ -635,7 +678,8 @@ declare const lockSlugOnPublish: CollectionBeforeChangeHook;
|
|
|
635
678
|
*/
|
|
636
679
|
declare function slugField({
|
|
637
680
|
collection,
|
|
638
|
-
isReserved
|
|
681
|
+
isReserved,
|
|
682
|
+
folderRoots
|
|
639
683
|
}: SlugFieldOptions): Field[];
|
|
640
684
|
//#endregion
|
|
641
685
|
//#region src/plugins/redirects.d.ts
|
|
@@ -863,5 +907,5 @@ declare function roleDescription(role: string, matrix?: readonly RoleRow[]): str
|
|
|
863
907
|
*/
|
|
864
908
|
declare function resetRolesMatrix(current: unknown): RoleRow[];
|
|
865
909
|
//#endregion
|
|
866
|
-
export { ADMIN_NAV, ADMIN_NAV_ENTITY_FIELD, ADMIN_NAV_ITEM_ROW_LABEL, ADMIN_NAV_ROW_LABEL, ADMIN_NAV_SLUG, type AdminNavConfig, type AdminNavDoc, type AdminNavGroup, type AdminNavItem, type AdminNavVisibleEntities, BRAND_ASSETS_MIME_TYPES, BRAND_ASSETS_SLUG, CAPABILITIES, CAPABILITY_FEATURES, type Capability, type ColorTokenHit, type ColorUsage, type ColorUsagesList, type ColorUsagesOption, type CreateBrandAssetsOptions, type CreateFeaturesOptions, type CreateNavigationOptions, type CreateRolesOptions, type CreateThemeOptions, DEFAULT_ROLE_GRANTS, DEFAULT_ROLE_MATRIX, DESCRIPTION_LENGTH, DEVELOPER_DESCRIPTION, DOCUMENT_CREATE_NEW, DOCUMENT_TITLE_ACTIONS, DUPLICATE_ROLE_NAME_MESSAGE, DUPLICATE_ROLE_SLUG_MESSAGE, type EditableTheme, FEATURES_MATRIX_FIELD, FEATURES_SLUG, FEATURE_GROUPS, FEATURE_GROUP_LABELS, type FeatureExtra, type FeatureGroupId, type FeatureRow, type FeaturesDoc, INVALID_ROLE_NAME_MESSAGE, LAST_ADMIN_DELETE_MESSAGE, LAST_ADMIN_DEMOTE_MESSAGE, LAST_USERS_TICK_MESSAGE, LOOK_FIELD, type LookFieldMode, type LookFieldOptions, type LookOption, MISSING_PACKAGE_FEATURES_MESSAGE, MISSING_SEED_ROLES_MESSAGE, type MaybeUser, type MediaId, type MediaOptions, NAVIGATION_DB_NAME, NAVIGATION_FEATURE, NAVIGATION_FOOTER_DB_NAME, NAVIGATION_FOOTER_SLUG, NAVIGATION_SLUG, type NavigationBar, type NavigationDoc, type NavigationFooter, type NavigationHeader, PACKAGE_FEATURES, PACKAGE_FEATURE_SLUGS, PAGE_EDITOR_SYSTEM_KEYS, type PackageFeature, type PackageFeatureSlug, type PageEditorSystemKey, type PagesOptions, REDIRECTS_SLUG, ROLES, ROLES_FIELD, ROLES_FIELD_DESCRIPTION, ROLES_GLOBAL_DESCRIPTION, ROLES_GRANTS_FIELD, ROLES_MATRIX_FIELD, ROLES_ROW_LABEL, ROLES_SLUG, ROLE_LABELS, ROLE_NAME_FIELD, ROLE_SLUG_FIELD, type ResolveAdminNavArgs, type ResolvedThemeIdentity, type Role, type RoleExtra, type RoleRow, type RolesDoc, SHARE_IMAGE_SIZE, SLUG_FIELD, SLUG_UNLOCK_WARNING, SYSTEM_COLOR_KEYS, type SeoDoc, type SeoImageDoc, type SeoImageSize, type SeoImageValue, type SeoMeta, type SeoPluginOptions, type SlugFieldOptions, type SystemColorKey, THEME_APPEARANCE_FIELD, THEME_APPEARANCE_SLUG, THEME_COLORS_SLUG, THEME_COLOR_FIELD, THEME_COLOR_SCALE_FIELD, THEME_CONTRAST_REPORT, THEME_DOCUMENT_CONTROLS, THEME_FEATURE_SLUGS, THEME_FONT_FIELD, THEME_GREY_SCALE_FIELD, THEME_IDENTITY_FALLBACK, THEME_IDENTITY_SLUG, THEME_LIBRARY_FIELD, THEME_PAIRING_FIELD, THEME_PREVIEW_BREAKPOINTS, THEME_PUBLISH_FIELD, THEME_SAVE_BUTTON, THEME_SECTION_HEADING, THEME_SLUG, THEME_TYPOGRAPHY_SLUG, type ThemeChild, type ThemeColorDoc, type ThemeDoc, type ThemeIdentityFallback, type ThemeLibraryColorDoc, type ThemeUploadDoc, type UsersOptions, adminNav, adminOnlyApiTab, allowedFeaturesForUser, applyRoleSlugsFromNames, authenticatedOrPublished, canManageBrand, canManageContent, canPublish, canUseFeature, colorTokenField, createAdminNav, createBrandAssets, createFeatures, createMedia, createNavigation, createPages, createRedirects, createRoles, createTheme, createUsers, defaultFeaturesFieldValue, defaultRolesFieldValue, deleteLibraryColor, developerOnlyAccess, documentCreateNew, documentTitle, documentTitleActions, featureCatalogue, featureGroupLabel, findColorTokens, findColorUsages, firstImageIn, getFeaturesMatrix, getNavigation, getRolesMatrix, hasCapability, hasFeature, hasGrant, hasRole, headerCtaEnabled, hideUnlessDeveloper, hideUnlessFeature, isAdmin, isAdminOrSelf, isAuthenticated, isDeveloper, isDeveloperTab, isFeatureGroupId, isFeatureSlug, isLockedFeature, isPackageFeatureSlug, isPrivilegedRole, isRole, isRoleName, isRoleSlug, lockSlugOnPublish, lookField, noIndexField, normalizeSlug, normalizeStoredRoles, pageEditorLooks, pageEditorTokens, parseFeaturesMatrix, parseRolesMatrix, persistThemeChild, publishThemeChild, recordPublishedSlugRedirect, redirectPath, resetRolesMatrix, resolveAdminNav, resolveThemeIdentity, rewriteColorToken, rewriteColorTokens, rewriteColorUsages, roleDescription, roleLabel, roleSelectOptions, sanitizeRoleNameInput, sanitizeSvg, seedFeatures, seedRoleRows, seedRoles, seedTheme, seoPlugin, slugField, slugifyRoleName, stampFeatureCatalogue, storedRoles, themeColorKeys, themeLibraryFromDoc, titleTemplate, truncateAtWord, validateFeaturesMatrix, validateHeaderCta, validateRolesMatrix, writePublishedSlugRedirect };
|
|
910
|
+
export { ADMIN_NAV, ADMIN_NAV_ENTITY_FIELD, ADMIN_NAV_ITEM_ROW_LABEL, ADMIN_NAV_ROW_LABEL, ADMIN_NAV_SLUG, type AdminNavConfig, type AdminNavDoc, type AdminNavGroup, type AdminNavItem, type AdminNavVisibleEntities, BRAND_ASSETS_MIME_TYPES, BRAND_ASSETS_SLUG, CAPABILITIES, CAPABILITY_FEATURES, type Capability, type ColorTokenHit, type ColorUsage, type ColorUsagesList, type ColorUsagesOption, type CreateBrandAssetsOptions, type CreateFeaturesOptions, type CreateNavigationOptions, type CreateRolesOptions, type CreateThemeOptions, DEFAULT_ROLE_GRANTS, DEFAULT_ROLE_MATRIX, DESCRIPTION_LENGTH, DEVELOPER_DESCRIPTION, DOCUMENT_CREATE_NEW, DOCUMENT_TITLE_ACTIONS, DUPLICATE_ROLE_NAME_MESSAGE, DUPLICATE_ROLE_SLUG_MESSAGE, EXISTING_PARENT_MESSAGE, type EditableTheme, FEATURES_MATRIX_FIELD, FEATURES_SLUG, FEATURE_GROUPS, FEATURE_GROUP_LABELS, type FeatureExtra, type FeatureGroupId, type FeatureRow, type FeaturesDoc, INVALID_ROLE_NAME_MESSAGE, LAST_ADMIN_DELETE_MESSAGE, LAST_ADMIN_DEMOTE_MESSAGE, LAST_USERS_TICK_MESSAGE, LAYOUT_DESCRIPTION, LAYOUT_REQUIRED_LABEL, LAYOUT_REQUIRED_MESSAGE, LOOK_FIELD, type LookFieldMode, type LookFieldOptions, type LookOption, MISSING_PACKAGE_FEATURES_MESSAGE, MISSING_SEED_ROLES_MESSAGE, type MaybeUser, type MediaId, type MediaOptions, NAVIGATION_DB_NAME, NAVIGATION_FEATURE, NAVIGATION_FOOTER_DB_NAME, NAVIGATION_FOOTER_SLUG, NAVIGATION_SLUG, NEW_FOLDER_PARENT, type NavigationBar, type NavigationDoc, type NavigationFooter, type NavigationHeader, PACKAGE_FEATURES, PACKAGE_FEATURE_SLUGS, PAGE_EDITOR_SYSTEM_KEYS, PAGE_TITLE_CELL, type PackageFeature, type PackageFeatureSlug, type PageEditorSystemKey, type PagesOptions, REDIRECTS_SLUG, ROLES, ROLES_FIELD, ROLES_FIELD_DESCRIPTION, ROLES_GLOBAL_DESCRIPTION, ROLES_GRANTS_FIELD, ROLES_MATRIX_FIELD, ROLES_ROW_LABEL, ROLES_SLUG, ROLE_LABELS, ROLE_NAME_FIELD, ROLE_SLUG_FIELD, type ResolveAdminNavArgs, type ResolvedThemeIdentity, type Role, type RoleExtra, type RoleRow, type RolesDoc, SHARE_IMAGE_SIZE, SLUG_FIELD, SLUG_UNLOCK_WARNING, SYSTEM_COLOR_KEYS, type SeoDoc, type SeoImageDoc, type SeoImageSize, type SeoImageValue, type SeoMeta, type SeoPluginOptions, type SlugFieldOptions, type SystemColorKey, THEME_APPEARANCE_FIELD, THEME_APPEARANCE_SLUG, THEME_COLORS_SLUG, THEME_COLOR_FIELD, THEME_COLOR_SCALE_FIELD, THEME_CONTRAST_REPORT, THEME_DOCUMENT_CONTROLS, THEME_FEATURE_SLUGS, THEME_FONT_FIELD, THEME_GREY_SCALE_FIELD, THEME_IDENTITY_FALLBACK, THEME_IDENTITY_SLUG, THEME_LIBRARY_FIELD, THEME_PAIRING_FIELD, THEME_PREVIEW_BREAKPOINTS, THEME_PUBLISH_FIELD, THEME_SAVE_BUTTON, THEME_SECTION_HEADING, THEME_SLUG, THEME_TYPOGRAPHY_SLUG, type ThemeChild, type ThemeColorDoc, type ThemeDoc, type ThemeIdentityFallback, type ThemeLibraryColorDoc, type ThemeUploadDoc, type UsersOptions, adminNav, adminOnlyApiTab, allowedFeaturesForUser, applyRoleSlugsFromNames, authenticatedOrPublished, canManageBrand, canManageContent, canPublish, canUseFeature, colorTokenField, composeSlug, createAdminNav, createBrandAssets, createFeatures, createMedia, createNavigation, createPages, createRedirects, createRoles, createTheme, createUsers, defaultFeaturesFieldValue, defaultRolesFieldValue, deleteLibraryColor, developerOnlyAccess, documentCreateNew, documentTitle, documentTitleActions, featureCatalogue, featureGroupLabel, findColorTokens, findColorUsages, firstImageIn, getFeaturesMatrix, getNavigation, getRolesMatrix, hasCapability, hasFeature, hasGrant, hasRole, headerCtaEnabled, hideUnlessDeveloper, hideUnlessFeature, inferredFolders, isAdmin, isAdminOrSelf, isAuthenticated, isDeveloper, isDeveloperTab, isFeatureGroupId, isFeatureSlug, isLockedFeature, isPackageFeatureSlug, isPrivilegedRole, isRole, isRoleName, isRoleSlug, lockSlugOnPublish, lookField, noIndexField, normalizeSlug, normalizeStoredRoles, pageEditorLooks, pageEditorTokens, parentPrefix, parseFeaturesMatrix, parseRolesMatrix, persistThemeChild, publishThemeChild, recordPublishedSlugRedirect, redirectPath, requireLayoutOnPublish, resetRolesMatrix, resolveAdminNav, resolveThemeIdentity, rewriteColorToken, rewriteColorTokens, rewriteColorUsages, roleDescription, roleLabel, roleSelectOptions, sanitizeRoleNameInput, sanitizeSvg, seedFeatures, seedRoleRows, seedRoles, seedTheme, seoPlugin, slugDepth, slugField, slugLeaf, slugifyRoleName, stampFeatureCatalogue, storedRoles, themeColorKeys, themeLibraryFromDoc, titleTemplate, truncateAtWord, validateFeaturesMatrix, validateHeaderCta, validateRolesMatrix, writePublishedSlugRedirect };
|
|
867
911
|
//# sourceMappingURL=index.d.mts.map
|
package/dist/index.d.mts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.mts","names":[],"sources":["../src/seo/plugin.ts","../src/seo/fields.ts","../src/seo/share-image.ts","../src/seo/text.ts","../src/theme/global.ts","../src/brand-assets/collection.ts","../src/brand-assets/sanitize.ts","../src/theme/seed.ts","../src/theme/preview.ts","../src/theme/publish.ts","../src/theme/fields.ts","../src/roles/types.ts","../src/roles/global.ts","../src/roles/seed.ts","../src/roles/fields.ts","../src/features/types.ts","../src/features/global.ts","../src/features/seed.ts","../src/features/fields.ts","../src/roles/access.ts","../src/features/access.ts","../src/features/matrix.ts","../src/collections/pages.ts","../src/collections/users.ts","../src/collections/media.ts","../src/fields/slug.ts","../src/plugins/redirects.ts","../src/admin-nav/global.ts","../src/admin-nav/plugin.ts","../src/admin-nav/types.ts","../src/admin-nav/resolve.ts","../src/admin-nav/fields.ts","../src/navigation/global.ts","../src/navigation/link.ts","../src/plugins/admin-only-api-tab.ts","../src/plugins/document-title-actions.ts","../src/admin/document-controls.ts","../src/roles/matrix.ts"],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.d.mts","names":[],"sources":["../src/seo/plugin.ts","../src/seo/fields.ts","../src/seo/share-image.ts","../src/seo/text.ts","../src/theme/global.ts","../src/brand-assets/collection.ts","../src/brand-assets/sanitize.ts","../src/theme/seed.ts","../src/theme/preview.ts","../src/theme/publish.ts","../src/theme/fields.ts","../src/roles/types.ts","../src/roles/global.ts","../src/roles/seed.ts","../src/roles/fields.ts","../src/features/types.ts","../src/features/global.ts","../src/features/seed.ts","../src/features/fields.ts","../src/roles/access.ts","../src/features/access.ts","../src/features/matrix.ts","../src/collections/pages.ts","../src/collections/users.ts","../src/collections/media.ts","../src/fields/slug.ts","../src/plugins/redirects.ts","../src/admin-nav/global.ts","../src/admin-nav/plugin.ts","../src/admin-nav/types.ts","../src/admin-nav/resolve.ts","../src/admin-nav/fields.ts","../src/navigation/global.ts","../src/navigation/link.ts","../src/plugins/admin-only-api-tab.ts","../src/plugins/document-title-actions.ts","../src/admin/document-controls.ts","../src/roles/matrix.ts"],"mappings":"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"}
|
package/dist/index.mjs
CHANGED
|
@@ -1755,7 +1755,36 @@ async function seedFeatures(payload, extras = []) {
|
|
|
1755
1755
|
//#endregion
|
|
1756
1756
|
//#region src/fields/slug.ts
|
|
1757
1757
|
const SLUG_FIELD = "@bison-lab/payload-core/admin#SlugField";
|
|
1758
|
+
const PAGE_TITLE_CELL = "@bison-lab/payload-core/admin#PageTitleCell";
|
|
1759
|
+
/** Sentinel the Parent control writes while the editor is naming a new folder. */
|
|
1760
|
+
const NEW_FOLDER_PARENT = "__new__";
|
|
1761
|
+
const EXISTING_PARENT_MESSAGE = "That folder is already in the list. Pick it from the list.";
|
|
1758
1762
|
const SLUG_UNLOCK_WARNING = "This page is live. Changing the address will send visitors from the old URL to the new one.";
|
|
1763
|
+
async function allSlugs({ collection, id, req }) {
|
|
1764
|
+
if (typeof req?.payload?.find !== "function") return [];
|
|
1765
|
+
const where = {};
|
|
1766
|
+
if (id !== void 0) where.id = { not_equals: id };
|
|
1767
|
+
const query = {
|
|
1768
|
+
collection,
|
|
1769
|
+
depth: 0,
|
|
1770
|
+
limit: 500,
|
|
1771
|
+
overrideAccess: true,
|
|
1772
|
+
pagination: false,
|
|
1773
|
+
req,
|
|
1774
|
+
where
|
|
1775
|
+
};
|
|
1776
|
+
const [live, drafts] = await Promise.all([req.payload.find(query), req.payload.find({
|
|
1777
|
+
...query,
|
|
1778
|
+
draft: true
|
|
1779
|
+
})]);
|
|
1780
|
+
return [...live.docs, ...drafts.docs].flatMap((doc) => typeof doc.slug === "string" && doc.slug ? [doc.slug] : []);
|
|
1781
|
+
}
|
|
1782
|
+
async function existingParents(prefix, args) {
|
|
1783
|
+
if (new Set((args.folderRoots ?? []).map(normalizeSlug).filter(Boolean)).has(prefix)) return true;
|
|
1784
|
+
const slugs = await allSlugs(args);
|
|
1785
|
+
if (slugs.includes(prefix)) return true;
|
|
1786
|
+
return inferredFolders(slugs).includes(prefix);
|
|
1787
|
+
}
|
|
1759
1788
|
function slugifySegment(segment) {
|
|
1760
1789
|
return segment.normalize("NFKD").replace(/\p{M}/gu, "").toLowerCase().replace(/[^a-z0-9]+/g, "-").replace(/^-+|-+$/g, "");
|
|
1761
1790
|
}
|
|
@@ -1766,6 +1795,52 @@ function slugifySegment(segment) {
|
|
|
1766
1795
|
function normalizeSlug(value) {
|
|
1767
1796
|
return value.split("/").map(slugifySegment).filter(Boolean).join("/");
|
|
1768
1797
|
}
|
|
1798
|
+
/** The folder prefix Parent stores. `__new__` resolves through `newFolder`. */
|
|
1799
|
+
function parentPrefix(parent, newFolder) {
|
|
1800
|
+
if (parent === "__new__") return normalizeSlug(newFolder ?? "");
|
|
1801
|
+
return typeof parent === "string" ? normalizeSlug(parent) : "";
|
|
1802
|
+
}
|
|
1803
|
+
/** Last segment of a stored slug — the title leaf once a folder is set. */
|
|
1804
|
+
function slugLeaf(slug) {
|
|
1805
|
+
const parts = normalizeSlug(slug).split("/");
|
|
1806
|
+
return parts[parts.length - 1] ?? "";
|
|
1807
|
+
}
|
|
1808
|
+
/**
|
|
1809
|
+
* Address from a parent prefix and a title (or an existing leaf). Title-follow
|
|
1810
|
+
* uses this so a folder is not wiped when the title changes.
|
|
1811
|
+
*/
|
|
1812
|
+
function composeSlug(parent, title, newFolder) {
|
|
1813
|
+
const prefix = parentPrefix(parent, newFolder);
|
|
1814
|
+
const leaf = slugifySegment(title);
|
|
1815
|
+
return prefix ? `${prefix}/${leaf}` : leaf;
|
|
1816
|
+
}
|
|
1817
|
+
/** Prefixes that exist only because a child slug lives under them. */
|
|
1818
|
+
function inferredFolders(slugs) {
|
|
1819
|
+
const folders = /* @__PURE__ */ new Set();
|
|
1820
|
+
for (const slug of slugs) {
|
|
1821
|
+
const parts = normalizeSlug(slug).split("/");
|
|
1822
|
+
for (let i = 1; i < parts.length; i += 1) folders.add(parts.slice(0, i).join("/"));
|
|
1823
|
+
}
|
|
1824
|
+
return [...folders].sort();
|
|
1825
|
+
}
|
|
1826
|
+
/** Slash count after the first segment — how far to indent a list row. */
|
|
1827
|
+
function slugDepth(slug) {
|
|
1828
|
+
const normalized = normalizeSlug(slug);
|
|
1829
|
+
if (!normalized) return 0;
|
|
1830
|
+
return normalized.split("/").length - 1;
|
|
1831
|
+
}
|
|
1832
|
+
function resolvePrefix(...sources) {
|
|
1833
|
+
let parent;
|
|
1834
|
+
let newFolder;
|
|
1835
|
+
for (const source of sources) {
|
|
1836
|
+
if (parent === void 0 && typeof source?.parent === "string") parent = source.parent;
|
|
1837
|
+
if (newFolder === void 0 && typeof source?.newFolder === "string") newFolder = source.newFolder;
|
|
1838
|
+
}
|
|
1839
|
+
return {
|
|
1840
|
+
parent,
|
|
1841
|
+
newFolder
|
|
1842
|
+
};
|
|
1843
|
+
}
|
|
1769
1844
|
function isLockedDoc(doc) {
|
|
1770
1845
|
return Boolean(doc?.slugLocked || doc?.publishedSlug);
|
|
1771
1846
|
}
|
|
@@ -1837,7 +1912,7 @@ function hiddenCheckbox(name, label) {
|
|
|
1837
1912
|
* `validate` is the message under the field; `beforeChange` is the enforcement
|
|
1838
1913
|
* on a draft save, where Payload skips field validation.
|
|
1839
1914
|
*/
|
|
1840
|
-
function slugField({ collection, isReserved }) {
|
|
1915
|
+
function slugField({ collection, isReserved, folderRoots = [] }) {
|
|
1841
1916
|
const validate = async (value, options) => {
|
|
1842
1917
|
try {
|
|
1843
1918
|
const builtIn = await validations.text(value, options);
|
|
@@ -1850,44 +1925,79 @@ function slugField({ collection, isReserved }) {
|
|
|
1850
1925
|
req: options.req
|
|
1851
1926
|
}) ?? true;
|
|
1852
1927
|
};
|
|
1928
|
+
const slug = {
|
|
1929
|
+
name: "slug",
|
|
1930
|
+
type: "text",
|
|
1931
|
+
required: true,
|
|
1932
|
+
unique: true,
|
|
1933
|
+
access: { update: slugUpdateAccess(collection) },
|
|
1934
|
+
admin: {
|
|
1935
|
+
description: "Path under the site root, no leading slash: \"about-us\" or \"patients/stories\".",
|
|
1936
|
+
components: { Field: SLUG_FIELD },
|
|
1937
|
+
custom: { folderRoots }
|
|
1938
|
+
},
|
|
1939
|
+
hooks: {
|
|
1940
|
+
beforeValidate: [({ data, originalDoc, siblingData, value }) => {
|
|
1941
|
+
const title = typeof data?.title === "string" ? data.title : "";
|
|
1942
|
+
const { parent, newFolder } = resolvePrefix(siblingData, data, originalDoc);
|
|
1943
|
+
if (!isLockedDoc(originalDoc) && !isUnlocking(data) && !isUnlocking(siblingData) && title) return composeSlug(parent, title, newFolder);
|
|
1944
|
+
if ((isUnlocking(data) || isUnlocking(siblingData)) && (parent !== void 0 || newFolder)) return composeSlug(parent, typeof value === "string" && value ? slugLeaf(value) : title ? slugifySegment(title) : "", newFolder);
|
|
1945
|
+
return typeof value === "string" ? normalizeSlug(value) : value;
|
|
1946
|
+
}],
|
|
1947
|
+
beforeChange: [async ({ data, originalDoc, req, value }) => {
|
|
1948
|
+
if (typeof value !== "string") return value;
|
|
1949
|
+
const problem = await slugProblem(value, {
|
|
1950
|
+
collection,
|
|
1951
|
+
id: originalDoc?.id ?? data?.id,
|
|
1952
|
+
isReserved,
|
|
1953
|
+
req
|
|
1954
|
+
});
|
|
1955
|
+
if (problem) throw new ValidationError({
|
|
1956
|
+
collection,
|
|
1957
|
+
errors: [{
|
|
1958
|
+
message: problem,
|
|
1959
|
+
path: "slug"
|
|
1960
|
+
}],
|
|
1961
|
+
req
|
|
1962
|
+
}, req?.t);
|
|
1963
|
+
return value;
|
|
1964
|
+
}]
|
|
1965
|
+
},
|
|
1966
|
+
validate
|
|
1967
|
+
};
|
|
1853
1968
|
return [
|
|
1854
1969
|
{
|
|
1855
|
-
name: "
|
|
1970
|
+
name: "parent",
|
|
1856
1971
|
type: "text",
|
|
1857
|
-
|
|
1858
|
-
unique: true,
|
|
1972
|
+
defaultValue: "",
|
|
1859
1973
|
access: { update: slugUpdateAccess(collection) },
|
|
1860
|
-
admin: {
|
|
1861
|
-
|
|
1862
|
-
|
|
1863
|
-
|
|
1864
|
-
|
|
1865
|
-
|
|
1866
|
-
|
|
1867
|
-
|
|
1868
|
-
|
|
1869
|
-
|
|
1870
|
-
|
|
1871
|
-
|
|
1872
|
-
|
|
1873
|
-
|
|
1874
|
-
|
|
1875
|
-
|
|
1876
|
-
|
|
1877
|
-
|
|
1878
|
-
|
|
1879
|
-
|
|
1880
|
-
|
|
1881
|
-
|
|
1882
|
-
|
|
1883
|
-
|
|
1884
|
-
|
|
1885
|
-
}, req?.t);
|
|
1886
|
-
return value;
|
|
1887
|
-
}]
|
|
1888
|
-
},
|
|
1889
|
-
validate
|
|
1974
|
+
admin: { hidden: true },
|
|
1975
|
+
hooks: { beforeValidate: [({ data, originalDoc, siblingData, value }) => {
|
|
1976
|
+
const { newFolder } = resolvePrefix(siblingData, data, originalDoc);
|
|
1977
|
+
if (value === "__new__") return parentPrefix(NEW_FOLDER_PARENT, newFolder);
|
|
1978
|
+
return typeof value === "string" ? normalizeSlug(value) : "";
|
|
1979
|
+
}] },
|
|
1980
|
+
validate: async (value, options) => {
|
|
1981
|
+
const { newFolder } = resolvePrefix(options.siblingData, options.data);
|
|
1982
|
+
if (value !== "__new__" && !newFolder) return true;
|
|
1983
|
+
const prefix = parentPrefix(NEW_FOLDER_PARENT, newFolder);
|
|
1984
|
+
if (!prefix) return true;
|
|
1985
|
+
return await existingParents(prefix, {
|
|
1986
|
+
collection,
|
|
1987
|
+
folderRoots,
|
|
1988
|
+
id: options.id,
|
|
1989
|
+
isReserved,
|
|
1990
|
+
req: options.req
|
|
1991
|
+
}) ? EXISTING_PARENT_MESSAGE : true;
|
|
1992
|
+
}
|
|
1993
|
+
},
|
|
1994
|
+
{
|
|
1995
|
+
name: "newFolder",
|
|
1996
|
+
type: "text",
|
|
1997
|
+
admin: { hidden: true },
|
|
1998
|
+
access: { update: slugUpdateAccess(collection) }
|
|
1890
1999
|
},
|
|
2000
|
+
slug,
|
|
1891
2001
|
hiddenCheckbox("slugLocked", "Slug locked"),
|
|
1892
2002
|
hiddenCheckbox("slugUnlock", "Unlock slug"),
|
|
1893
2003
|
{
|
|
@@ -1900,6 +2010,36 @@ function slugField({ collection, isReserved }) {
|
|
|
1900
2010
|
}
|
|
1901
2011
|
//#endregion
|
|
1902
2012
|
//#region src/collections/pages.ts
|
|
2013
|
+
/** Standing copy on the Layout field — same job as the hero description. */
|
|
2014
|
+
const LAYOUT_DESCRIPTION = "Every page needs at least one section below the hero. A page cannot be published without one.";
|
|
2015
|
+
/** Field error when Publish is clicked with an empty body. */
|
|
2016
|
+
const LAYOUT_REQUIRED_MESSAGE = "Add at least one section. A page cannot be published without one.";
|
|
2017
|
+
/**
|
|
2018
|
+
* Toast label for that error. Payload's envelope is always
|
|
2019
|
+
* "The following field is invalid: {label}", so the label has to name the fix.
|
|
2020
|
+
*/
|
|
2021
|
+
const LAYOUT_REQUIRED_LABEL = "Layout — add a section";
|
|
2022
|
+
function layoutRows(data, originalDoc) {
|
|
2023
|
+
if (data && "layout" in data && data.layout !== void 0) return Array.isArray(data.layout) ? data.layout : [];
|
|
2024
|
+
return Array.isArray(originalDoc?.layout) ? originalDoc.layout : [];
|
|
2025
|
+
}
|
|
2026
|
+
/**
|
|
2027
|
+
* Drafts may be empty. Publish with no section is refused here so the toast
|
|
2028
|
+
* names the fix — Payload's built-in minRows toast only says "Content → Layout".
|
|
2029
|
+
*/
|
|
2030
|
+
const requireLayoutOnPublish = ({ collection, data, originalDoc, req }) => {
|
|
2031
|
+
if (!data || data._status !== "published") return data;
|
|
2032
|
+
if (layoutRows(data, originalDoc).length >= 1) return data;
|
|
2033
|
+
throw new ValidationError({
|
|
2034
|
+
collection: typeof collection?.slug === "string" ? collection.slug : "pages",
|
|
2035
|
+
errors: [{
|
|
2036
|
+
label: LAYOUT_REQUIRED_LABEL,
|
|
2037
|
+
message: LAYOUT_REQUIRED_MESSAGE,
|
|
2038
|
+
path: "layout"
|
|
2039
|
+
}],
|
|
2040
|
+
req
|
|
2041
|
+
}, req?.t);
|
|
2042
|
+
};
|
|
1903
2043
|
/**
|
|
1904
2044
|
* Content to create or save a draft; Publish to publish or edit a live
|
|
1905
2045
|
* page. Without Publish, update is constrained to `_status: draft`.
|
|
@@ -1914,11 +2054,12 @@ const pagesUpdate = async (args) => {
|
|
|
1914
2054
|
* The CMS owns copy and the order of sections; what a section looks like is
|
|
1915
2055
|
* code-owned, which is why the blocks are an argument.
|
|
1916
2056
|
*/
|
|
1917
|
-
function createPages({ heroBlocks, isReservedSlug, layoutBlocks, previewPath, previewButton }) {
|
|
2057
|
+
function createPages({ folderRoots, heroBlocks, isReservedSlug, layoutBlocks, previewPath, previewButton }) {
|
|
1918
2058
|
const [defaultHero] = heroBlocks;
|
|
1919
2059
|
if (!defaultHero) throw new Error("createPages needs at least one hero block");
|
|
1920
2060
|
return {
|
|
1921
2061
|
slug: "pages",
|
|
2062
|
+
defaultSort: "slug",
|
|
1922
2063
|
admin: {
|
|
1923
2064
|
useAsTitle: "title",
|
|
1924
2065
|
group: "Content",
|
|
@@ -1943,15 +2084,20 @@ function createPages({ heroBlocks, isReservedSlug, layoutBlocks, previewPath, pr
|
|
|
1943
2084
|
drafts: { autosave: { interval: 375 } },
|
|
1944
2085
|
maxPerDoc: 50
|
|
1945
2086
|
},
|
|
1946
|
-
hooks: {
|
|
2087
|
+
hooks: {
|
|
2088
|
+
beforeValidate: [requireLayoutOnPublish],
|
|
2089
|
+
beforeChange: [lockSlugOnPublish]
|
|
2090
|
+
},
|
|
1947
2091
|
fields: [
|
|
1948
2092
|
{
|
|
1949
2093
|
name: "title",
|
|
1950
2094
|
type: "text",
|
|
1951
|
-
required: true
|
|
2095
|
+
required: true,
|
|
2096
|
+
admin: { components: { Cell: PAGE_TITLE_CELL } }
|
|
1952
2097
|
},
|
|
1953
2098
|
...slugField({
|
|
1954
2099
|
collection: "pages",
|
|
2100
|
+
folderRoots,
|
|
1955
2101
|
isReserved: isReservedSlug
|
|
1956
2102
|
}),
|
|
1957
2103
|
{
|
|
@@ -1973,7 +2119,8 @@ function createPages({ heroBlocks, isReservedSlug, layoutBlocks, previewPath, pr
|
|
|
1973
2119
|
labels: {
|
|
1974
2120
|
singular: "Section",
|
|
1975
2121
|
plural: "Sections"
|
|
1976
|
-
}
|
|
2122
|
+
},
|
|
2123
|
+
admin: { description: LAYOUT_DESCRIPTION }
|
|
1977
2124
|
}
|
|
1978
2125
|
]
|
|
1979
2126
|
};
|
|
@@ -2866,6 +3013,6 @@ const documentTitleActions = definePlugin({
|
|
|
2866
3013
|
plugin: ({ config }) => withTitleActions(config)
|
|
2867
3014
|
});
|
|
2868
3015
|
//#endregion
|
|
2869
|
-
export { ADMIN_NAV, ADMIN_NAV_ENTITY_FIELD, ADMIN_NAV_ITEM_ROW_LABEL, ADMIN_NAV_ROW_LABEL, ADMIN_NAV_SLUG, BRAND_ASSETS_MIME_TYPES, BRAND_ASSETS_SLUG, CAPABILITIES, CAPABILITY_FEATURES, DEFAULT_ROLE_GRANTS, DEFAULT_ROLE_MATRIX, DESCRIPTION_LENGTH, DEVELOPER_DESCRIPTION, DOCUMENT_CREATE_NEW, DOCUMENT_TITLE_ACTIONS, DUPLICATE_ROLE_NAME_MESSAGE, DUPLICATE_ROLE_SLUG_MESSAGE, FEATURES_MATRIX_FIELD, FEATURES_SLUG, FEATURE_GROUPS, FEATURE_GROUP_LABELS, INVALID_ROLE_NAME_MESSAGE, LAST_ADMIN_DELETE_MESSAGE, LAST_ADMIN_DEMOTE_MESSAGE, LAST_USERS_TICK_MESSAGE, LOOK_FIELD, MISSING_PACKAGE_FEATURES_MESSAGE, MISSING_SEED_ROLES_MESSAGE, NAVIGATION_DB_NAME, NAVIGATION_FEATURE, NAVIGATION_FOOTER_DB_NAME, NAVIGATION_FOOTER_SLUG, NAVIGATION_SLUG, PACKAGE_FEATURES, PACKAGE_FEATURE_SLUGS, PAGE_EDITOR_SYSTEM_KEYS, REDIRECTS_SLUG, ROLES, ROLES_FIELD, ROLES_FIELD_DESCRIPTION, ROLES_GLOBAL_DESCRIPTION, ROLES_GRANTS_FIELD, ROLES_MATRIX_FIELD, ROLES_ROW_LABEL, ROLES_SLUG, ROLE_LABELS, ROLE_NAME_FIELD, ROLE_SLUG_FIELD, SHARE_IMAGE_SIZE, SLUG_FIELD, SLUG_UNLOCK_WARNING, SYSTEM_COLOR_KEYS, THEME_APPEARANCE_FIELD, THEME_APPEARANCE_SLUG, THEME_COLORS_SLUG, THEME_COLOR_FIELD, THEME_COLOR_SCALE_FIELD, THEME_CONTRAST_REPORT, THEME_DOCUMENT_CONTROLS, THEME_FEATURE_SLUGS, THEME_FONT_FIELD, THEME_GREY_SCALE_FIELD, THEME_IDENTITY_FALLBACK, THEME_IDENTITY_SLUG, THEME_LIBRARY_FIELD, THEME_PAIRING_FIELD, THEME_PREVIEW_BREAKPOINTS, THEME_PUBLISH_FIELD, THEME_SAVE_BUTTON, THEME_SECTION_HEADING, THEME_SLUG, THEME_TYPOGRAPHY_SLUG, adminNav, adminOnlyApiTab, allowedFeaturesForUser, applyRoleSlugsFromNames, authenticatedOrPublished, canManageBrand, canManageContent, canPublish, canUseFeature, colorTokenField, createAdminNav, createBrandAssets, createFeatures, createMedia, createNavigation, createPages, createRedirects, createRoles, createTheme, createUsers, defaultFeaturesFieldValue, defaultRolesFieldValue, deleteLibraryColor, developerOnlyAccess, documentCreateNew, documentTitle, documentTitleActions, featureCatalogue, featureGroupLabel, findColorTokens, findColorUsages, firstImageIn, getFeaturesMatrix, getNavigation, getRolesMatrix, hasCapability, hasFeature, hasGrant, hasRole, headerCtaEnabled, hideUnlessDeveloper, hideUnlessFeature, isAdmin, isAdminOrSelf, isAuthenticated, isDeveloper, isDeveloperTab, isFeatureGroupId, isFeatureSlug, isLockedFeature, isPackageFeatureSlug, isPrivilegedRole, isRole, isRoleName, isRoleSlug, lockSlugOnPublish, lookField, noIndexField, normalizeSlug, normalizeStoredRoles, pageEditorLooks, pageEditorTokens, parseFeaturesMatrix, parseRolesMatrix, persistThemeChild, publishThemeChild, recordPublishedSlugRedirect, redirectPath, resetRolesMatrix, resolveAdminNav, resolveThemeIdentity, rewriteColorToken, rewriteColorTokens, rewriteColorUsages, roleDescription, roleLabel, roleSelectOptions, sanitizeRoleNameInput, sanitizeSvg, seedFeatures, seedRoleRows, seedRoles, seedTheme, seoPlugin, slugField, slugifyRoleName, stampFeatureCatalogue, storedRoles, themeColorKeys, themeLibraryFromDoc, titleTemplate, truncateAtWord, validateFeaturesMatrix, validateHeaderCta, validateRolesMatrix, writePublishedSlugRedirect };
|
|
3016
|
+
export { ADMIN_NAV, ADMIN_NAV_ENTITY_FIELD, ADMIN_NAV_ITEM_ROW_LABEL, ADMIN_NAV_ROW_LABEL, ADMIN_NAV_SLUG, BRAND_ASSETS_MIME_TYPES, BRAND_ASSETS_SLUG, CAPABILITIES, CAPABILITY_FEATURES, DEFAULT_ROLE_GRANTS, DEFAULT_ROLE_MATRIX, DESCRIPTION_LENGTH, DEVELOPER_DESCRIPTION, DOCUMENT_CREATE_NEW, DOCUMENT_TITLE_ACTIONS, DUPLICATE_ROLE_NAME_MESSAGE, DUPLICATE_ROLE_SLUG_MESSAGE, EXISTING_PARENT_MESSAGE, FEATURES_MATRIX_FIELD, FEATURES_SLUG, FEATURE_GROUPS, FEATURE_GROUP_LABELS, INVALID_ROLE_NAME_MESSAGE, LAST_ADMIN_DELETE_MESSAGE, LAST_ADMIN_DEMOTE_MESSAGE, LAST_USERS_TICK_MESSAGE, LAYOUT_DESCRIPTION, LAYOUT_REQUIRED_LABEL, LAYOUT_REQUIRED_MESSAGE, LOOK_FIELD, MISSING_PACKAGE_FEATURES_MESSAGE, MISSING_SEED_ROLES_MESSAGE, NAVIGATION_DB_NAME, NAVIGATION_FEATURE, NAVIGATION_FOOTER_DB_NAME, NAVIGATION_FOOTER_SLUG, NAVIGATION_SLUG, NEW_FOLDER_PARENT, PACKAGE_FEATURES, PACKAGE_FEATURE_SLUGS, PAGE_EDITOR_SYSTEM_KEYS, PAGE_TITLE_CELL, REDIRECTS_SLUG, ROLES, ROLES_FIELD, ROLES_FIELD_DESCRIPTION, ROLES_GLOBAL_DESCRIPTION, ROLES_GRANTS_FIELD, ROLES_MATRIX_FIELD, ROLES_ROW_LABEL, ROLES_SLUG, ROLE_LABELS, ROLE_NAME_FIELD, ROLE_SLUG_FIELD, SHARE_IMAGE_SIZE, SLUG_FIELD, SLUG_UNLOCK_WARNING, SYSTEM_COLOR_KEYS, THEME_APPEARANCE_FIELD, THEME_APPEARANCE_SLUG, THEME_COLORS_SLUG, THEME_COLOR_FIELD, THEME_COLOR_SCALE_FIELD, THEME_CONTRAST_REPORT, THEME_DOCUMENT_CONTROLS, THEME_FEATURE_SLUGS, THEME_FONT_FIELD, THEME_GREY_SCALE_FIELD, THEME_IDENTITY_FALLBACK, THEME_IDENTITY_SLUG, THEME_LIBRARY_FIELD, THEME_PAIRING_FIELD, THEME_PREVIEW_BREAKPOINTS, THEME_PUBLISH_FIELD, THEME_SAVE_BUTTON, THEME_SECTION_HEADING, THEME_SLUG, THEME_TYPOGRAPHY_SLUG, adminNav, adminOnlyApiTab, allowedFeaturesForUser, applyRoleSlugsFromNames, authenticatedOrPublished, canManageBrand, canManageContent, canPublish, canUseFeature, colorTokenField, composeSlug, createAdminNav, createBrandAssets, createFeatures, createMedia, createNavigation, createPages, createRedirects, createRoles, createTheme, createUsers, defaultFeaturesFieldValue, defaultRolesFieldValue, deleteLibraryColor, developerOnlyAccess, documentCreateNew, documentTitle, documentTitleActions, featureCatalogue, featureGroupLabel, findColorTokens, findColorUsages, firstImageIn, getFeaturesMatrix, getNavigation, getRolesMatrix, hasCapability, hasFeature, hasGrant, hasRole, headerCtaEnabled, hideUnlessDeveloper, hideUnlessFeature, inferredFolders, isAdmin, isAdminOrSelf, isAuthenticated, isDeveloper, isDeveloperTab, isFeatureGroupId, isFeatureSlug, isLockedFeature, isPackageFeatureSlug, isPrivilegedRole, isRole, isRoleName, isRoleSlug, lockSlugOnPublish, lookField, noIndexField, normalizeSlug, normalizeStoredRoles, pageEditorLooks, pageEditorTokens, parentPrefix, parseFeaturesMatrix, parseRolesMatrix, persistThemeChild, publishThemeChild, recordPublishedSlugRedirect, redirectPath, requireLayoutOnPublish, resetRolesMatrix, resolveAdminNav, resolveThemeIdentity, rewriteColorToken, rewriteColorTokens, rewriteColorUsages, roleDescription, roleLabel, roleSelectOptions, sanitizeRoleNameInput, sanitizeSvg, seedFeatures, seedRoleRows, seedRoles, seedTheme, seoPlugin, slugDepth, slugField, slugLeaf, slugifyRoleName, stampFeatureCatalogue, storedRoles, themeColorKeys, themeLibraryFromDoc, titleTemplate, truncateAtWord, validateFeaturesMatrix, validateHeaderCta, validateRolesMatrix, writePublishedSlugRedirect };
|
|
2870
3017
|
|
|
2871
3018
|
//# sourceMappingURL=index.mjs.map
|