@orion-studios/payload-studio 0.6.0-beta.2 → 0.6.0-beta.20

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.
Files changed (36) hide show
  1. package/dist/admin/client.d.mts +1 -1
  2. package/dist/admin/client.d.ts +1 -1
  3. package/dist/admin/client.js +4485 -2425
  4. package/dist/admin/client.mjs +3870 -1816
  5. package/dist/admin/index.d.mts +2 -2
  6. package/dist/admin/index.d.ts +2 -2
  7. package/dist/admin/index.js +116 -5
  8. package/dist/admin/index.mjs +1 -1
  9. package/dist/admin-app/index.d.mts +2 -2
  10. package/dist/admin-app/index.d.ts +2 -2
  11. package/dist/admin-app/styles.css +466 -41
  12. package/dist/admin.css +18 -2
  13. package/dist/{chunk-QJAWO6K3.mjs → chunk-3AHBR7RI.mjs} +116 -5
  14. package/dist/{chunk-PF3EBZXF.mjs → chunk-4LSIUED5.mjs} +7 -2
  15. package/dist/{chunk-XKUTZ7IU.mjs → chunk-EDW7DPXW.mjs} +1 -1
  16. package/dist/{chunk-OTHERBGX.mjs → chunk-H4GTEY24.mjs} +1 -1
  17. package/dist/index-BV0vEGl6.d.ts +188 -0
  18. package/dist/{index-52HdVLQq.d.ts → index-DAdN56fM.d.ts} +1 -1
  19. package/dist/index-DLfPOqYA.d.mts +188 -0
  20. package/dist/{index-DEQC3Dwj.d.mts → index-G_uTNffQ.d.mts} +1 -1
  21. package/dist/index.d.mts +3 -3
  22. package/dist/index.d.ts +3 -3
  23. package/dist/index.js +123 -7
  24. package/dist/index.mjs +4 -4
  25. package/dist/nextjs/index.js +7 -2
  26. package/dist/nextjs/index.mjs +2 -2
  27. package/dist/{sitePreviewTypes-BkHCWxNW.d.mts → sitePreviewTypes-BrJwGzJj.d.mts} +1 -1
  28. package/dist/{sitePreviewTypes-BkHCWxNW.d.ts → sitePreviewTypes-BrJwGzJj.d.ts} +1 -1
  29. package/dist/studio-pages/builder.css +18 -5
  30. package/dist/studio-pages/client.js +11 -3
  31. package/dist/studio-pages/client.mjs +11 -3
  32. package/dist/studio-pages/index.js +7 -2
  33. package/dist/studio-pages/index.mjs +2 -2
  34. package/package.json +1 -1
  35. package/dist/index-B6_D4Hm4.d.ts +0 -439
  36. package/dist/index-CYaWadBl.d.mts +0 -439
@@ -53,7 +53,7 @@ var createThemePreferenceField = (defaultTheme = "brand-light") => ({
53
53
  var themePreferenceField = createThemePreferenceField("brand-light");
54
54
 
55
55
  // src/shared/studioSections.ts
56
- var studioRoles = /* @__PURE__ */ new Set(["admin", "editor", "client"]);
56
+ var studioRoles = /* @__PURE__ */ new Set(["admin", "developer", "editor", "client"]);
57
57
  var studioIcons = new Set(adminNavIcons);
58
58
  var isRecord = (value) => Boolean(value) && typeof value === "object" && !Array.isArray(value);
59
59
  var isAbsoluteExternalURL = (value) => /^[a-zA-Z][a-zA-Z\d+\-.]*:/.test(value) || value.startsWith("//");
@@ -186,8 +186,10 @@ function configureAdmin(config) {
186
186
  brandPrimary = "#3b82f6",
187
187
  brandSecondary = "#8b5cf6",
188
188
  defaultTheme = "brand-light",
189
+ logoOnDarkUrl,
189
190
  logoUrl,
190
- allowThemePreference = false
191
+ allowThemePreference = false,
192
+ userSessionDurationSeconds = 60 * 60 * 24
191
193
  } = config;
192
194
  const studioEnabled = config.studio?.enabled ?? true;
193
195
  const formsEnabled = config.studio?.forms?.enabled ?? false;
@@ -292,6 +294,49 @@ function configureAdmin(config) {
292
294
  }
293
295
  };
294
296
  };
297
+ const attachStudioEditRedirectToCollection = (collection, options) => {
298
+ if (!studioEnabled) {
299
+ return collection;
300
+ }
301
+ const collectionWithBreadcrumb = attachStudioBackBreadcrumbToCollection(collection);
302
+ const existingViews = collectionWithBreadcrumb.admin?.components?.views;
303
+ const existingEditViews = existingViews?.edit;
304
+ const hasCustomEditView = Boolean(
305
+ existingEditViews?.root || existingEditViews?.default && typeof existingEditViews.default === "object" && existingEditViews.default.Component
306
+ );
307
+ if (hasCustomEditView) {
308
+ return collectionWithBreadcrumb;
309
+ }
310
+ return {
311
+ ...collectionWithBreadcrumb,
312
+ admin: {
313
+ ...collectionWithBreadcrumb.admin,
314
+ components: {
315
+ ...collectionWithBreadcrumb.admin?.components,
316
+ views: {
317
+ ...existingViews,
318
+ edit: {
319
+ ...existingEditViews,
320
+ default: {
321
+ ...typeof existingEditViews?.default === "object" ? existingEditViews.default : {},
322
+ Component: {
323
+ exportName: "StudioDocumentRedirect",
324
+ path: clientPath,
325
+ clientProps: {
326
+ description: options.description,
327
+ ...options.emptyHref ? { emptyHref: options.emptyHref } : {},
328
+ ...options.emptyLabel ? { emptyLabel: options.emptyLabel } : {},
329
+ pathBase: options.pathBase,
330
+ title: options.title
331
+ }
332
+ }
333
+ }
334
+ }
335
+ }
336
+ }
337
+ }
338
+ };
339
+ };
295
340
  return {
296
341
  admin: {
297
342
  css: cssPath,
@@ -309,6 +354,7 @@ function configureAdmin(config) {
309
354
  path: clientPath,
310
355
  clientProps: {
311
356
  brandName,
357
+ logoOnDarkUrl,
312
358
  logoUrl
313
359
  }
314
360
  },
@@ -317,6 +363,7 @@ function configureAdmin(config) {
317
363
  path: clientPath,
318
364
  clientProps: {
319
365
  brandName,
366
+ logoOnDarkUrl,
320
367
  logoUrl
321
368
  }
322
369
  }
@@ -400,6 +447,42 @@ function configureAdmin(config) {
400
447
  formUploadsCollectionSlug
401
448
  }
402
449
  }
450
+ },
451
+ studioFormSubmission: {
452
+ path: `${formsBasePath}/submissions/:id`,
453
+ Component: {
454
+ exportName: "AdminStudioFormSubmissionView",
455
+ path: clientPath,
456
+ clientProps: {
457
+ ...studioNavClientProps,
458
+ formsCollectionSlug,
459
+ formSubmissionsCollectionSlug,
460
+ formUploadsCollectionSlug
461
+ }
462
+ }
463
+ },
464
+ studioFormUpload: {
465
+ path: `${formsBasePath}/uploads/:id`,
466
+ Component: {
467
+ exportName: "AdminStudioFormUploadView",
468
+ path: clientPath,
469
+ clientProps: {
470
+ ...studioNavClientProps,
471
+ formUploadsCollectionSlug
472
+ }
473
+ }
474
+ },
475
+ studioFormDetail: {
476
+ path: `${formsBasePath}/:id`,
477
+ Component: {
478
+ exportName: "AdminStudioFormDetailView",
479
+ path: clientPath,
480
+ clientProps: {
481
+ ...studioNavClientProps,
482
+ formsCollectionSlug,
483
+ formSubmissionsCollectionSlug
484
+ }
485
+ }
403
486
  }
404
487
  } : {},
405
488
  studioMedia: {
@@ -469,6 +552,7 @@ function configureAdmin(config) {
469
552
  path: clientPath,
470
553
  clientProps: {
471
554
  brandName,
555
+ logoOnDarkUrl,
472
556
  logoUrl
473
557
  }
474
558
  }
@@ -505,8 +589,17 @@ function configureAdmin(config) {
505
589
  const hasThemePreference = existingFields.some(
506
590
  (field) => typeof field === "object" && field !== null && "name" in field && field.name === "themePreference"
507
591
  );
592
+ const normalizedAuth = usersCollection.auth === true ? {
593
+ tokenExpiration: userSessionDurationSeconds,
594
+ useSessions: true
595
+ } : usersCollection.auth && typeof usersCollection.auth === "object" ? {
596
+ ...usersCollection.auth,
597
+ tokenExpiration: usersCollection.auth.tokenExpiration ?? userSessionDurationSeconds,
598
+ useSessions: usersCollection.auth.useSessions ?? true
599
+ } : usersCollection.auth;
508
600
  const nextCollection = {
509
601
  ...usersCollection,
602
+ auth: normalizedAuth,
510
603
  fields: !allowThemePreference || hasThemePreference ? existingFields : [...existingFields, createThemePreferenceField(defaultTheme)]
511
604
  };
512
605
  return attachStudioBackBreadcrumbToCollection(nextCollection);
@@ -568,13 +661,31 @@ function configureAdmin(config) {
568
661
  return attachStudioBackBreadcrumbToCollection(mediaCollection);
569
662
  },
570
663
  wrapFormsCollection(formsCollection) {
571
- return attachStudioBackBreadcrumbToCollection(formsCollection);
664
+ return attachStudioEditRedirectToCollection(formsCollection, {
665
+ description: "Redirecting to the Studio form workspace.",
666
+ emptyHref: formsBasePath,
667
+ emptyLabel: "Open Forms",
668
+ pathBase: formsBasePath,
669
+ title: "Opening Form..."
670
+ });
572
671
  },
573
672
  wrapFormSubmissionsCollection(formSubmissionsCollection) {
574
- return attachStudioBackBreadcrumbToCollection(formSubmissionsCollection);
673
+ return attachStudioEditRedirectToCollection(formSubmissionsCollection, {
674
+ description: "Redirecting to the Studio submission workspace.",
675
+ emptyHref: formsBasePath,
676
+ emptyLabel: "Open Forms",
677
+ pathBase: `${formsBasePath}/submissions`,
678
+ title: "Opening Submission..."
679
+ });
575
680
  },
576
681
  wrapFormUploadsCollection(formUploadsCollection) {
577
- return attachStudioBackBreadcrumbToCollection(formUploadsCollection);
682
+ return attachStudioEditRedirectToCollection(formUploadsCollection, {
683
+ description: "Redirecting to the Studio upload workspace.",
684
+ emptyHref: formsBasePath,
685
+ emptyLabel: "Open Forms",
686
+ pathBase: `${formsBasePath}/uploads`,
687
+ title: "Opening Upload..."
688
+ });
578
689
  },
579
690
  wrapGlobals(globals2) {
580
691
  const labelMap = {
@@ -99,6 +99,7 @@ var defaultBuilderThemeTokens = {
99
99
 
100
100
  // src/studio-pages/builder/adapters/settingsV2.ts
101
101
  var isRecord = (value) => Boolean(value) && typeof value === "object" && !Array.isArray(value);
102
+ var isTextAlign = (value) => value === "left" || value === "center" || value === "right" || value === "justify";
102
103
  var parsePercent = (value) => {
103
104
  if (typeof value === "number" && Number.isFinite(value)) {
104
105
  return Math.max(0, Math.min(100, value));
@@ -141,6 +142,10 @@ var mergeSettings = (defaults, input) => {
141
142
  };
142
143
  var legacyBlockToV2Settings = (block) => {
143
144
  const current = structuredClone(defaultBuilderBlockSettingsV2);
145
+ if (block.blockType === "hero" && block.variant === "centered") {
146
+ current.typography.headingAlign = "center";
147
+ current.typography.bodyAlign = "center";
148
+ }
144
149
  current.layout.contentWidth = block.contentWidth === "narrow" || block.contentWidth === "content" || block.contentWidth === "wide" || block.contentWidth === "full" || block.contentWidth === "inherit" ? block.contentWidth : current.layout.contentWidth;
145
150
  current.layout.sectionPaddingX = block.sectionPaddingX === "none" || block.sectionPaddingX === "sm" || block.sectionPaddingX === "md" || block.sectionPaddingX === "lg" || block.sectionPaddingX === "inherit" ? block.sectionPaddingX : current.layout.sectionPaddingX;
146
151
  current.layout.sectionPaddingY = block.sectionPaddingY === "none" || block.sectionPaddingY === "sm" || block.sectionPaddingY === "lg" ? block.sectionPaddingY : current.layout.sectionPaddingY;
@@ -177,8 +182,8 @@ var legacyBlockToV2Settings = (block) => {
177
182
  current.media.positionX = parsePercent(block.imagePositionX ?? block.backgroundImagePositionX);
178
183
  current.media.positionY = parsePercent(block.imagePositionY ?? block.backgroundImagePositionY);
179
184
  current.media.height = parsePixel(block.imageHeight);
180
- current.typography.headingAlign = block.textHeadingAlign === "left" || block.textHeadingAlign === "center" || block.textHeadingAlign === "right" || block.textHeadingAlign === "justify" ? block.textHeadingAlign : current.typography.headingAlign;
181
- current.typography.bodyAlign = block.textBodyAlign === "left" || block.textBodyAlign === "center" || block.textBodyAlign === "right" || block.textBodyAlign === "justify" ? block.textBodyAlign : current.typography.bodyAlign;
185
+ current.typography.headingAlign = isTextAlign(block.textHeadingAlign) ? block.textHeadingAlign : current.typography.headingAlign;
186
+ current.typography.bodyAlign = isTextAlign(block.textBodyAlign) ? block.textBodyAlign : current.typography.bodyAlign;
182
187
  current.typography.maxTextWidth = block.textMaxWidth === "auto" || block.textMaxWidth === "sm" || block.textMaxWidth === "md" || block.textMaxWidth === "lg" || block.textMaxWidth === "full" ? block.textMaxWidth : current.typography.maxTextWidth;
183
188
  current.typography.lineHeightPreset = block.textLineHeightPreset === "tight" || block.textLineHeightPreset === "normal" || block.textLineHeightPreset === "relaxed" ? block.textLineHeightPreset : current.typography.lineHeightPreset;
184
189
  current.typography.letterSpacingPreset = block.textLetterSpacingPreset === "tight" || block.textLetterSpacingPreset === "normal" || block.textLetterSpacingPreset === "relaxed" ? block.textLetterSpacingPreset : current.typography.letterSpacingPreset;
@@ -7,7 +7,7 @@ import {
7
7
  layoutToStudioDocument,
8
8
  migrateBlockToSettingsV2,
9
9
  studioDocumentToLayout
10
- } from "./chunk-PF3EBZXF.mjs";
10
+ } from "./chunk-4LSIUED5.mjs";
11
11
  import {
12
12
  assertStudioDocumentV1,
13
13
  compileStudioDocument,
@@ -5,7 +5,7 @@ import {
5
5
  } from "./chunk-ZTXJG4K5.mjs";
6
6
  import {
7
7
  studioDocumentToLayout
8
- } from "./chunk-PF3EBZXF.mjs";
8
+ } from "./chunk-4LSIUED5.mjs";
9
9
  import {
10
10
  assertStudioDocumentV1
11
11
  } from "./chunk-ADIIWIYL.mjs";
@@ -0,0 +1,188 @@
1
+ import { Field, CollectionConfig, GlobalConfig } from 'payload';
2
+ import { a as AdminNavIcon, e as SitePreviewLink, f as SitePreviewLocationSummary } from './sitePreviewTypes-BrJwGzJj.js';
3
+ import { a as SocialMediaPlatform, b as SOCIAL_MEDIA_DEFAULT_ICON_BY_PLATFORM, c as SOCIAL_MEDIA_ICON_OPTIONS, d as SOCIAL_MEDIA_PLATFORMS, e as SOCIAL_MEDIA_PLATFORM_LABELS, S as SocialMediaGlobalData, f as SocialMediaIconLibrary, g as SocialMediaIconOption, h as SocialMediaProfileData, i as SocialMediaProfilesData } from './socialMedia-C05Iy-SV.js';
4
+
5
+ type ThemeOption = 'light' | 'dark' | 'brand-light' | 'brand-dark';
6
+ declare const createThemePreferenceField: (defaultTheme?: ThemeOption) => Field;
7
+ declare const themePreferenceField: Field;
8
+
9
+ type StudioSectionRole = 'admin' | 'developer' | 'editor' | 'client';
10
+ type StudioSectionCard = {
11
+ description?: string;
12
+ title: string;
13
+ };
14
+ type StudioSectionComponent = {
15
+ clientProps?: Record<string, unknown>;
16
+ exportName: string;
17
+ path: string;
18
+ };
19
+ type StudioSectionView = {
20
+ Component: StudioSectionComponent;
21
+ path: string;
22
+ };
23
+ type StudioDashboardPanelSpan = 'full' | 'half';
24
+ type StudioDashboardPanel = {
25
+ Component: StudioSectionComponent;
26
+ priority?: number;
27
+ roles?: StudioSectionRole[];
28
+ span?: StudioDashboardPanelSpan;
29
+ };
30
+ type StudioSection = {
31
+ card?: StudioSectionCard;
32
+ dashboard?: StudioDashboardPanel;
33
+ href?: string;
34
+ id: string;
35
+ icon?: AdminNavIcon;
36
+ label: string;
37
+ matchPrefixes?: string[];
38
+ roles?: StudioSectionRole[];
39
+ view?: StudioSectionView;
40
+ };
41
+ type ResolvedStudioSection = {
42
+ card?: StudioSectionCard;
43
+ href: string;
44
+ id: string;
45
+ icon?: AdminNavIcon;
46
+ label: string;
47
+ matchPrefixes: string[];
48
+ roles?: StudioSectionRole[];
49
+ };
50
+ type ResolvedStudioDashboardPanel = {
51
+ Component: StudioSectionComponent;
52
+ href: string;
53
+ id: string;
54
+ label: string;
55
+ priority: number;
56
+ roles?: StudioSectionRole[];
57
+ span: StudioDashboardPanelSpan;
58
+ };
59
+
60
+ type StudioGlobalLink = {
61
+ description?: string;
62
+ href?: string;
63
+ label: string;
64
+ slug: string;
65
+ };
66
+ type AdminStudioHeaderPreviewConfig = {
67
+ actionHref?: string;
68
+ actionLabel?: string;
69
+ };
70
+ type AdminStudioFooterPreviewConfig = {
71
+ builtByHref?: string;
72
+ builtByLabel?: string;
73
+ description?: string;
74
+ footerCategories?: string[];
75
+ footerLinks?: SitePreviewLink[];
76
+ };
77
+ type AdminStudioSitePreviewConfig = {
78
+ footer?: AdminStudioFooterPreviewConfig;
79
+ header?: AdminStudioHeaderPreviewConfig;
80
+ locationSummary?: SitePreviewLocationSummary;
81
+ };
82
+ interface AdminStudioConfig {
83
+ enabled?: boolean;
84
+ forms?: {
85
+ collectionSlug?: string;
86
+ enabled?: boolean;
87
+ submissionsCollectionSlug?: string;
88
+ uploadsCollectionSlug?: string;
89
+ };
90
+ globals?: StudioGlobalLink[];
91
+ media?: {
92
+ collectionSlug?: string;
93
+ };
94
+ pages?: {
95
+ builderBasePath?: string;
96
+ collectionSlug?: string;
97
+ };
98
+ sitePreview?: AdminStudioSitePreviewConfig;
99
+ sections?: StudioSection[];
100
+ }
101
+ interface AdminConfig {
102
+ allowThemePreference?: boolean;
103
+ brandName: string;
104
+ brandPrimary?: string;
105
+ brandSecondary?: string;
106
+ defaultTheme?: ThemeOption;
107
+ logoOnDarkUrl?: string;
108
+ logoUrl?: string;
109
+ basePath?: string;
110
+ studio?: AdminStudioConfig;
111
+ userSessionDurationSeconds?: number;
112
+ }
113
+ type ConfiguredAdmin = {
114
+ admin: Record<string, unknown>;
115
+ brandName: string;
116
+ brandPrimary: string;
117
+ brandSecondary: string;
118
+ defaultTheme: ThemeOption;
119
+ wrapUsers(usersCollection: CollectionConfig): CollectionConfig;
120
+ wrapPagesCollection(pagesCollection: CollectionConfig): CollectionConfig;
121
+ wrapMediaCollection(mediaCollection: CollectionConfig): CollectionConfig;
122
+ wrapFormsCollection(formsCollection: CollectionConfig): CollectionConfig;
123
+ wrapFormSubmissionsCollection(formSubmissionsCollection: CollectionConfig): CollectionConfig;
124
+ wrapFormUploadsCollection(formUploadsCollection: CollectionConfig): CollectionConfig;
125
+ wrapGlobals(globals: GlobalConfig[]): GlobalConfig[];
126
+ };
127
+ declare function configureAdmin(config: AdminConfig): ConfiguredAdmin;
128
+
129
+ declare function withTooltips(fields: Field[], customTooltips?: Record<string, string>): Field[];
130
+
131
+ declare const createHeaderNavItemsField: () => Field;
132
+
133
+ type CreateSocialMediaConnectionsFieldOptions = {
134
+ description?: string;
135
+ label?: string;
136
+ name?: string;
137
+ platforms?: SocialMediaPlatform[];
138
+ };
139
+ declare const createSocialMediaConnectionsField: (options?: CreateSocialMediaConnectionsFieldOptions) => Field;
140
+ declare const socialMediaConnectionsField: Field;
141
+
142
+ type CreateSocialMediaGlobalOptions = {
143
+ description?: string;
144
+ fieldOptions?: Omit<CreateSocialMediaConnectionsFieldOptions, 'label' | 'name'>;
145
+ slug?: string;
146
+ };
147
+ declare const createSocialMediaGlobal: (options?: CreateSocialMediaGlobalOptions) => GlobalConfig;
148
+
149
+ type index_AdminConfig = AdminConfig;
150
+ type index_AdminStudioConfig = AdminStudioConfig;
151
+ type index_AdminStudioFooterPreviewConfig = AdminStudioFooterPreviewConfig;
152
+ type index_AdminStudioHeaderPreviewConfig = AdminStudioHeaderPreviewConfig;
153
+ type index_AdminStudioSitePreviewConfig = AdminStudioSitePreviewConfig;
154
+ type index_CreateSocialMediaConnectionsFieldOptions = CreateSocialMediaConnectionsFieldOptions;
155
+ type index_CreateSocialMediaGlobalOptions = CreateSocialMediaGlobalOptions;
156
+ type index_ResolvedStudioDashboardPanel = ResolvedStudioDashboardPanel;
157
+ type index_ResolvedStudioSection = ResolvedStudioSection;
158
+ declare const index_SOCIAL_MEDIA_DEFAULT_ICON_BY_PLATFORM: typeof SOCIAL_MEDIA_DEFAULT_ICON_BY_PLATFORM;
159
+ declare const index_SOCIAL_MEDIA_ICON_OPTIONS: typeof SOCIAL_MEDIA_ICON_OPTIONS;
160
+ declare const index_SOCIAL_MEDIA_PLATFORMS: typeof SOCIAL_MEDIA_PLATFORMS;
161
+ declare const index_SOCIAL_MEDIA_PLATFORM_LABELS: typeof SOCIAL_MEDIA_PLATFORM_LABELS;
162
+ declare const index_SocialMediaGlobalData: typeof SocialMediaGlobalData;
163
+ declare const index_SocialMediaIconLibrary: typeof SocialMediaIconLibrary;
164
+ declare const index_SocialMediaIconOption: typeof SocialMediaIconOption;
165
+ declare const index_SocialMediaPlatform: typeof SocialMediaPlatform;
166
+ declare const index_SocialMediaProfileData: typeof SocialMediaProfileData;
167
+ declare const index_SocialMediaProfilesData: typeof SocialMediaProfilesData;
168
+ type index_StudioDashboardPanel = StudioDashboardPanel;
169
+ type index_StudioDashboardPanelSpan = StudioDashboardPanelSpan;
170
+ type index_StudioGlobalLink = StudioGlobalLink;
171
+ type index_StudioSection = StudioSection;
172
+ type index_StudioSectionCard = StudioSectionCard;
173
+ type index_StudioSectionComponent = StudioSectionComponent;
174
+ type index_StudioSectionRole = StudioSectionRole;
175
+ type index_StudioSectionView = StudioSectionView;
176
+ declare const index_configureAdmin: typeof configureAdmin;
177
+ declare const index_createHeaderNavItemsField: typeof createHeaderNavItemsField;
178
+ declare const index_createSocialMediaConnectionsField: typeof createSocialMediaConnectionsField;
179
+ declare const index_createSocialMediaGlobal: typeof createSocialMediaGlobal;
180
+ declare const index_createThemePreferenceField: typeof createThemePreferenceField;
181
+ declare const index_socialMediaConnectionsField: typeof socialMediaConnectionsField;
182
+ declare const index_themePreferenceField: typeof themePreferenceField;
183
+ declare const index_withTooltips: typeof withTooltips;
184
+ declare namespace index {
185
+ export { type index_AdminConfig as AdminConfig, type index_AdminStudioConfig as AdminStudioConfig, type index_AdminStudioFooterPreviewConfig as AdminStudioFooterPreviewConfig, type index_AdminStudioHeaderPreviewConfig as AdminStudioHeaderPreviewConfig, type index_AdminStudioSitePreviewConfig as AdminStudioSitePreviewConfig, type index_CreateSocialMediaConnectionsFieldOptions as CreateSocialMediaConnectionsFieldOptions, type index_CreateSocialMediaGlobalOptions as CreateSocialMediaGlobalOptions, type index_ResolvedStudioDashboardPanel as ResolvedStudioDashboardPanel, type index_ResolvedStudioSection as ResolvedStudioSection, index_SOCIAL_MEDIA_DEFAULT_ICON_BY_PLATFORM as SOCIAL_MEDIA_DEFAULT_ICON_BY_PLATFORM, index_SOCIAL_MEDIA_ICON_OPTIONS as SOCIAL_MEDIA_ICON_OPTIONS, index_SOCIAL_MEDIA_PLATFORMS as SOCIAL_MEDIA_PLATFORMS, index_SOCIAL_MEDIA_PLATFORM_LABELS as SOCIAL_MEDIA_PLATFORM_LABELS, index_SocialMediaGlobalData as SocialMediaGlobalData, index_SocialMediaIconLibrary as SocialMediaIconLibrary, index_SocialMediaIconOption as SocialMediaIconOption, index_SocialMediaPlatform as SocialMediaPlatform, index_SocialMediaProfileData as SocialMediaProfileData, index_SocialMediaProfilesData as SocialMediaProfilesData, type index_StudioDashboardPanel as StudioDashboardPanel, type index_StudioDashboardPanelSpan as StudioDashboardPanelSpan, type index_StudioGlobalLink as StudioGlobalLink, type index_StudioSection as StudioSection, type index_StudioSectionCard as StudioSectionCard, type index_StudioSectionComponent as StudioSectionComponent, type index_StudioSectionRole as StudioSectionRole, type index_StudioSectionView as StudioSectionView, index_configureAdmin as configureAdmin, index_createHeaderNavItemsField as createHeaderNavItemsField, index_createSocialMediaConnectionsField as createSocialMediaConnectionsField, index_createSocialMediaGlobal as createSocialMediaGlobal, index_createThemePreferenceField as createThemePreferenceField, index_socialMediaConnectionsField as socialMediaConnectionsField, index_themePreferenceField as themePreferenceField, index_withTooltips as withTooltips };
186
+ }
187
+
188
+ export { type AdminConfig as A, type CreateSocialMediaConnectionsFieldOptions as C, type ResolvedStudioDashboardPanel as R, type StudioDashboardPanel as S, type AdminStudioConfig as a, type AdminStudioFooterPreviewConfig as b, type AdminStudioHeaderPreviewConfig as c, type AdminStudioSitePreviewConfig as d, type CreateSocialMediaGlobalOptions as e, type ResolvedStudioSection as f, type StudioDashboardPanelSpan as g, type StudioGlobalLink as h, index as i, type StudioSection as j, type StudioSectionCard as k, type StudioSectionComponent as l, type StudioSectionRole as m, type StudioSectionView as n, configureAdmin as o, createHeaderNavItemsField as p, createSocialMediaConnectionsField as q, createSocialMediaGlobal as r, createThemePreferenceField as s, socialMediaConnectionsField as t, themePreferenceField as u, withTooltips as w };
@@ -1,5 +1,5 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
- import { A as AdminBreadcrumbItem, a as AdminNavIcon, b as AdminNavItem, c as AdminRole, S as SiteFooterPreviewData, d as SiteHeaderPreviewData, e as SitePreviewLink, f as SitePreviewLocationSummary, g as SitePreviewSocialLink, n as navItemIsActive, r as roleCanAccessNav } from './sitePreviewTypes-BkHCWxNW.js';
2
+ import { A as AdminBreadcrumbItem, a as AdminNavIcon, b as AdminNavItem, c as AdminRole, S as SiteFooterPreviewData, d as SiteHeaderPreviewData, e as SitePreviewLink, f as SitePreviewLocationSummary, g as SitePreviewSocialLink, n as navItemIsActive, r as roleCanAccessNav } from './sitePreviewTypes-BrJwGzJj.js';
3
3
  import { ReactNode } from 'react';
4
4
 
5
5
  type AdminBreadcrumbsProps = {
@@ -0,0 +1,188 @@
1
+ import { Field, CollectionConfig, GlobalConfig } from 'payload';
2
+ import { a as AdminNavIcon, e as SitePreviewLink, f as SitePreviewLocationSummary } from './sitePreviewTypes-BrJwGzJj.mjs';
3
+ import { a as SocialMediaPlatform, b as SOCIAL_MEDIA_DEFAULT_ICON_BY_PLATFORM, c as SOCIAL_MEDIA_ICON_OPTIONS, d as SOCIAL_MEDIA_PLATFORMS, e as SOCIAL_MEDIA_PLATFORM_LABELS, S as SocialMediaGlobalData, f as SocialMediaIconLibrary, g as SocialMediaIconOption, h as SocialMediaProfileData, i as SocialMediaProfilesData } from './socialMedia-C05Iy-SV.mjs';
4
+
5
+ type ThemeOption = 'light' | 'dark' | 'brand-light' | 'brand-dark';
6
+ declare const createThemePreferenceField: (defaultTheme?: ThemeOption) => Field;
7
+ declare const themePreferenceField: Field;
8
+
9
+ type StudioSectionRole = 'admin' | 'developer' | 'editor' | 'client';
10
+ type StudioSectionCard = {
11
+ description?: string;
12
+ title: string;
13
+ };
14
+ type StudioSectionComponent = {
15
+ clientProps?: Record<string, unknown>;
16
+ exportName: string;
17
+ path: string;
18
+ };
19
+ type StudioSectionView = {
20
+ Component: StudioSectionComponent;
21
+ path: string;
22
+ };
23
+ type StudioDashboardPanelSpan = 'full' | 'half';
24
+ type StudioDashboardPanel = {
25
+ Component: StudioSectionComponent;
26
+ priority?: number;
27
+ roles?: StudioSectionRole[];
28
+ span?: StudioDashboardPanelSpan;
29
+ };
30
+ type StudioSection = {
31
+ card?: StudioSectionCard;
32
+ dashboard?: StudioDashboardPanel;
33
+ href?: string;
34
+ id: string;
35
+ icon?: AdminNavIcon;
36
+ label: string;
37
+ matchPrefixes?: string[];
38
+ roles?: StudioSectionRole[];
39
+ view?: StudioSectionView;
40
+ };
41
+ type ResolvedStudioSection = {
42
+ card?: StudioSectionCard;
43
+ href: string;
44
+ id: string;
45
+ icon?: AdminNavIcon;
46
+ label: string;
47
+ matchPrefixes: string[];
48
+ roles?: StudioSectionRole[];
49
+ };
50
+ type ResolvedStudioDashboardPanel = {
51
+ Component: StudioSectionComponent;
52
+ href: string;
53
+ id: string;
54
+ label: string;
55
+ priority: number;
56
+ roles?: StudioSectionRole[];
57
+ span: StudioDashboardPanelSpan;
58
+ };
59
+
60
+ type StudioGlobalLink = {
61
+ description?: string;
62
+ href?: string;
63
+ label: string;
64
+ slug: string;
65
+ };
66
+ type AdminStudioHeaderPreviewConfig = {
67
+ actionHref?: string;
68
+ actionLabel?: string;
69
+ };
70
+ type AdminStudioFooterPreviewConfig = {
71
+ builtByHref?: string;
72
+ builtByLabel?: string;
73
+ description?: string;
74
+ footerCategories?: string[];
75
+ footerLinks?: SitePreviewLink[];
76
+ };
77
+ type AdminStudioSitePreviewConfig = {
78
+ footer?: AdminStudioFooterPreviewConfig;
79
+ header?: AdminStudioHeaderPreviewConfig;
80
+ locationSummary?: SitePreviewLocationSummary;
81
+ };
82
+ interface AdminStudioConfig {
83
+ enabled?: boolean;
84
+ forms?: {
85
+ collectionSlug?: string;
86
+ enabled?: boolean;
87
+ submissionsCollectionSlug?: string;
88
+ uploadsCollectionSlug?: string;
89
+ };
90
+ globals?: StudioGlobalLink[];
91
+ media?: {
92
+ collectionSlug?: string;
93
+ };
94
+ pages?: {
95
+ builderBasePath?: string;
96
+ collectionSlug?: string;
97
+ };
98
+ sitePreview?: AdminStudioSitePreviewConfig;
99
+ sections?: StudioSection[];
100
+ }
101
+ interface AdminConfig {
102
+ allowThemePreference?: boolean;
103
+ brandName: string;
104
+ brandPrimary?: string;
105
+ brandSecondary?: string;
106
+ defaultTheme?: ThemeOption;
107
+ logoOnDarkUrl?: string;
108
+ logoUrl?: string;
109
+ basePath?: string;
110
+ studio?: AdminStudioConfig;
111
+ userSessionDurationSeconds?: number;
112
+ }
113
+ type ConfiguredAdmin = {
114
+ admin: Record<string, unknown>;
115
+ brandName: string;
116
+ brandPrimary: string;
117
+ brandSecondary: string;
118
+ defaultTheme: ThemeOption;
119
+ wrapUsers(usersCollection: CollectionConfig): CollectionConfig;
120
+ wrapPagesCollection(pagesCollection: CollectionConfig): CollectionConfig;
121
+ wrapMediaCollection(mediaCollection: CollectionConfig): CollectionConfig;
122
+ wrapFormsCollection(formsCollection: CollectionConfig): CollectionConfig;
123
+ wrapFormSubmissionsCollection(formSubmissionsCollection: CollectionConfig): CollectionConfig;
124
+ wrapFormUploadsCollection(formUploadsCollection: CollectionConfig): CollectionConfig;
125
+ wrapGlobals(globals: GlobalConfig[]): GlobalConfig[];
126
+ };
127
+ declare function configureAdmin(config: AdminConfig): ConfiguredAdmin;
128
+
129
+ declare function withTooltips(fields: Field[], customTooltips?: Record<string, string>): Field[];
130
+
131
+ declare const createHeaderNavItemsField: () => Field;
132
+
133
+ type CreateSocialMediaConnectionsFieldOptions = {
134
+ description?: string;
135
+ label?: string;
136
+ name?: string;
137
+ platforms?: SocialMediaPlatform[];
138
+ };
139
+ declare const createSocialMediaConnectionsField: (options?: CreateSocialMediaConnectionsFieldOptions) => Field;
140
+ declare const socialMediaConnectionsField: Field;
141
+
142
+ type CreateSocialMediaGlobalOptions = {
143
+ description?: string;
144
+ fieldOptions?: Omit<CreateSocialMediaConnectionsFieldOptions, 'label' | 'name'>;
145
+ slug?: string;
146
+ };
147
+ declare const createSocialMediaGlobal: (options?: CreateSocialMediaGlobalOptions) => GlobalConfig;
148
+
149
+ type index_AdminConfig = AdminConfig;
150
+ type index_AdminStudioConfig = AdminStudioConfig;
151
+ type index_AdminStudioFooterPreviewConfig = AdminStudioFooterPreviewConfig;
152
+ type index_AdminStudioHeaderPreviewConfig = AdminStudioHeaderPreviewConfig;
153
+ type index_AdminStudioSitePreviewConfig = AdminStudioSitePreviewConfig;
154
+ type index_CreateSocialMediaConnectionsFieldOptions = CreateSocialMediaConnectionsFieldOptions;
155
+ type index_CreateSocialMediaGlobalOptions = CreateSocialMediaGlobalOptions;
156
+ type index_ResolvedStudioDashboardPanel = ResolvedStudioDashboardPanel;
157
+ type index_ResolvedStudioSection = ResolvedStudioSection;
158
+ declare const index_SOCIAL_MEDIA_DEFAULT_ICON_BY_PLATFORM: typeof SOCIAL_MEDIA_DEFAULT_ICON_BY_PLATFORM;
159
+ declare const index_SOCIAL_MEDIA_ICON_OPTIONS: typeof SOCIAL_MEDIA_ICON_OPTIONS;
160
+ declare const index_SOCIAL_MEDIA_PLATFORMS: typeof SOCIAL_MEDIA_PLATFORMS;
161
+ declare const index_SOCIAL_MEDIA_PLATFORM_LABELS: typeof SOCIAL_MEDIA_PLATFORM_LABELS;
162
+ declare const index_SocialMediaGlobalData: typeof SocialMediaGlobalData;
163
+ declare const index_SocialMediaIconLibrary: typeof SocialMediaIconLibrary;
164
+ declare const index_SocialMediaIconOption: typeof SocialMediaIconOption;
165
+ declare const index_SocialMediaPlatform: typeof SocialMediaPlatform;
166
+ declare const index_SocialMediaProfileData: typeof SocialMediaProfileData;
167
+ declare const index_SocialMediaProfilesData: typeof SocialMediaProfilesData;
168
+ type index_StudioDashboardPanel = StudioDashboardPanel;
169
+ type index_StudioDashboardPanelSpan = StudioDashboardPanelSpan;
170
+ type index_StudioGlobalLink = StudioGlobalLink;
171
+ type index_StudioSection = StudioSection;
172
+ type index_StudioSectionCard = StudioSectionCard;
173
+ type index_StudioSectionComponent = StudioSectionComponent;
174
+ type index_StudioSectionRole = StudioSectionRole;
175
+ type index_StudioSectionView = StudioSectionView;
176
+ declare const index_configureAdmin: typeof configureAdmin;
177
+ declare const index_createHeaderNavItemsField: typeof createHeaderNavItemsField;
178
+ declare const index_createSocialMediaConnectionsField: typeof createSocialMediaConnectionsField;
179
+ declare const index_createSocialMediaGlobal: typeof createSocialMediaGlobal;
180
+ declare const index_createThemePreferenceField: typeof createThemePreferenceField;
181
+ declare const index_socialMediaConnectionsField: typeof socialMediaConnectionsField;
182
+ declare const index_themePreferenceField: typeof themePreferenceField;
183
+ declare const index_withTooltips: typeof withTooltips;
184
+ declare namespace index {
185
+ export { type index_AdminConfig as AdminConfig, type index_AdminStudioConfig as AdminStudioConfig, type index_AdminStudioFooterPreviewConfig as AdminStudioFooterPreviewConfig, type index_AdminStudioHeaderPreviewConfig as AdminStudioHeaderPreviewConfig, type index_AdminStudioSitePreviewConfig as AdminStudioSitePreviewConfig, type index_CreateSocialMediaConnectionsFieldOptions as CreateSocialMediaConnectionsFieldOptions, type index_CreateSocialMediaGlobalOptions as CreateSocialMediaGlobalOptions, type index_ResolvedStudioDashboardPanel as ResolvedStudioDashboardPanel, type index_ResolvedStudioSection as ResolvedStudioSection, index_SOCIAL_MEDIA_DEFAULT_ICON_BY_PLATFORM as SOCIAL_MEDIA_DEFAULT_ICON_BY_PLATFORM, index_SOCIAL_MEDIA_ICON_OPTIONS as SOCIAL_MEDIA_ICON_OPTIONS, index_SOCIAL_MEDIA_PLATFORMS as SOCIAL_MEDIA_PLATFORMS, index_SOCIAL_MEDIA_PLATFORM_LABELS as SOCIAL_MEDIA_PLATFORM_LABELS, index_SocialMediaGlobalData as SocialMediaGlobalData, index_SocialMediaIconLibrary as SocialMediaIconLibrary, index_SocialMediaIconOption as SocialMediaIconOption, index_SocialMediaPlatform as SocialMediaPlatform, index_SocialMediaProfileData as SocialMediaProfileData, index_SocialMediaProfilesData as SocialMediaProfilesData, type index_StudioDashboardPanel as StudioDashboardPanel, type index_StudioDashboardPanelSpan as StudioDashboardPanelSpan, type index_StudioGlobalLink as StudioGlobalLink, type index_StudioSection as StudioSection, type index_StudioSectionCard as StudioSectionCard, type index_StudioSectionComponent as StudioSectionComponent, type index_StudioSectionRole as StudioSectionRole, type index_StudioSectionView as StudioSectionView, index_configureAdmin as configureAdmin, index_createHeaderNavItemsField as createHeaderNavItemsField, index_createSocialMediaConnectionsField as createSocialMediaConnectionsField, index_createSocialMediaGlobal as createSocialMediaGlobal, index_createThemePreferenceField as createThemePreferenceField, index_socialMediaConnectionsField as socialMediaConnectionsField, index_themePreferenceField as themePreferenceField, index_withTooltips as withTooltips };
186
+ }
187
+
188
+ export { type AdminConfig as A, type CreateSocialMediaConnectionsFieldOptions as C, type ResolvedStudioDashboardPanel as R, type StudioDashboardPanel as S, type AdminStudioConfig as a, type AdminStudioFooterPreviewConfig as b, type AdminStudioHeaderPreviewConfig as c, type AdminStudioSitePreviewConfig as d, type CreateSocialMediaGlobalOptions as e, type ResolvedStudioSection as f, type StudioDashboardPanelSpan as g, type StudioGlobalLink as h, index as i, type StudioSection as j, type StudioSectionCard as k, type StudioSectionComponent as l, type StudioSectionRole as m, type StudioSectionView as n, configureAdmin as o, createHeaderNavItemsField as p, createSocialMediaConnectionsField as q, createSocialMediaGlobal as r, createThemePreferenceField as s, socialMediaConnectionsField as t, themePreferenceField as u, withTooltips as w };
@@ -1,5 +1,5 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
- import { A as AdminBreadcrumbItem, a as AdminNavIcon, b as AdminNavItem, c as AdminRole, S as SiteFooterPreviewData, d as SiteHeaderPreviewData, e as SitePreviewLink, f as SitePreviewLocationSummary, g as SitePreviewSocialLink, n as navItemIsActive, r as roleCanAccessNav } from './sitePreviewTypes-BkHCWxNW.mjs';
2
+ import { A as AdminBreadcrumbItem, a as AdminNavIcon, b as AdminNavItem, c as AdminRole, S as SiteFooterPreviewData, d as SiteHeaderPreviewData, e as SitePreviewLink, f as SitePreviewLocationSummary, g as SitePreviewSocialLink, n as navItemIsActive, r as roleCanAccessNav } from './sitePreviewTypes-BrJwGzJj.mjs';
3
3
  import { ReactNode } from 'react';
4
4
 
5
5
  type AdminBreadcrumbsProps = {
package/dist/index.d.mts CHANGED
@@ -1,11 +1,11 @@
1
- export { i as admin } from './index-CYaWadBl.mjs';
2
- export { i as adminApp } from './index-DEQC3Dwj.mjs';
1
+ export { i as admin } from './index-DLfPOqYA.mjs';
2
+ export { i as adminApp } from './index-G_uTNffQ.mjs';
3
3
  export { i as blocks } from './index-CluwY0ZQ.mjs';
4
4
  export { i as nextjs } from './index-D8BNfUJb.mjs';
5
5
  export { i as studio } from './index-DWmudwDm.mjs';
6
6
  export { i as studioPages } from './index-Cv-6qnrw.mjs';
7
7
  import 'payload';
8
- import './sitePreviewTypes-BkHCWxNW.mjs';
8
+ import './sitePreviewTypes-BrJwGzJj.mjs';
9
9
  import './socialMedia-C05Iy-SV.mjs';
10
10
  import 'react/jsx-runtime';
11
11
  import 'react';
package/dist/index.d.ts CHANGED
@@ -1,11 +1,11 @@
1
- export { i as admin } from './index-B6_D4Hm4.js';
2
- export { i as adminApp } from './index-52HdVLQq.js';
1
+ export { i as admin } from './index-BV0vEGl6.js';
2
+ export { i as adminApp } from './index-DAdN56fM.js';
3
3
  export { i as blocks } from './index-CluwY0ZQ.js';
4
4
  export { i as nextjs } from './index-DD_E2UfJ.js';
5
5
  export { i as studio } from './index-DWmudwDm.js';
6
6
  export { i as studioPages } from './index-Crx_MtPw.js';
7
7
  import 'payload';
8
- import './sitePreviewTypes-BkHCWxNW.js';
8
+ import './sitePreviewTypes-BrJwGzJj.js';
9
9
  import './socialMedia-C05Iy-SV.js';
10
10
  import 'react/jsx-runtime';
11
11
  import 'react';