@orion-studios/payload-studio 0.6.0-beta.7 → 0.6.0-beta.71
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/dist/admin/client.js +2076 -618
- package/dist/admin/client.mjs +2037 -590
- package/dist/admin/index.d.mts +2 -2
- package/dist/admin/index.d.ts +2 -2
- package/dist/admin/index.js +140 -17
- package/dist/admin/index.mjs +2 -2
- package/dist/admin-app/client.js +11 -4
- package/dist/admin-app/client.mjs +1 -1
- package/dist/admin-app/index.d.mts +2 -2
- package/dist/admin-app/index.d.ts +2 -2
- package/dist/admin-app/styles.css +343 -41
- package/dist/admin.css +18 -2
- package/dist/builder-v2/client.d.mts +18 -0
- package/dist/builder-v2/client.d.ts +18 -0
- package/dist/builder-v2/client.js +1673 -0
- package/dist/builder-v2/client.mjs +1548 -0
- package/dist/builder-v2/index.d.mts +241 -0
- package/dist/builder-v2/index.d.ts +241 -0
- package/dist/builder-v2/index.js +760 -0
- package/dist/builder-v2/index.mjs +710 -0
- package/dist/builder-v2/styles.css +1524 -0
- package/dist/{chunk-XKUTZ7IU.mjs → chunk-276KAPGM.mjs} +56 -5
- package/dist/{chunk-KPIX7OSV.mjs → chunk-2XH7X34N.mjs} +11 -4
- package/dist/{chunk-PF3EBZXF.mjs → chunk-7ZMXZRBP.mjs} +39 -3
- package/dist/{chunk-5FNTVRCR.mjs → chunk-KHK6RTGC.mjs} +143 -20
- package/dist/{chunk-OTHERBGX.mjs → chunk-ZADL33R6.mjs} +1 -1
- package/dist/{index-QPDAedIX.d.ts → index-BV0vEGl6.d.ts} +4 -2
- package/dist/{index-Cv-6qnrw.d.mts → index-D5zrOdyv.d.mts} +3 -1
- package/dist/{index-52HdVLQq.d.ts → index-DAdN56fM.d.ts} +1 -1
- package/dist/{index-DyMmaRfI.d.mts → index-DLfPOqYA.d.mts} +4 -2
- package/dist/{index-Crx_MtPw.d.ts → index-Dv-Alx4h.d.ts} +3 -1
- package/dist/{index-DEQC3Dwj.d.mts → index-G_uTNffQ.d.mts} +1 -1
- package/dist/index.d.mts +4 -4
- package/dist/index.d.ts +4 -4
- package/dist/index.js +231 -21
- package/dist/index.mjs +10 -10
- package/dist/nextjs/index.js +39 -3
- package/dist/nextjs/index.mjs +2 -2
- package/dist/{sitePreviewTypes-BkHCWxNW.d.mts → sitePreviewTypes-BrJwGzJj.d.mts} +1 -1
- package/dist/{sitePreviewTypes-BkHCWxNW.d.ts → sitePreviewTypes-BrJwGzJj.d.ts} +1 -1
- package/dist/studio-pages/builder.css +24 -5
- package/dist/studio-pages/client.js +574 -64
- package/dist/studio-pages/client.mjs +574 -64
- package/dist/studio-pages/index.d.mts +1 -1
- package/dist/studio-pages/index.d.ts +1 -1
- package/dist/studio-pages/index.js +91 -4
- package/dist/studio-pages/index.mjs +3 -3
- package/package.json +22 -3
package/dist/index.js
CHANGED
|
@@ -107,7 +107,7 @@ var navItemIsActive = (pathname, item) => {
|
|
|
107
107
|
};
|
|
108
108
|
|
|
109
109
|
// src/shared/studioSections.ts
|
|
110
|
-
var studioRoles = /* @__PURE__ */ new Set(["admin", "editor", "client"]);
|
|
110
|
+
var studioRoles = /* @__PURE__ */ new Set(["admin", "developer", "editor", "client"]);
|
|
111
111
|
var studioIcons = new Set(adminNavIcons);
|
|
112
112
|
var isRecord = (value) => Boolean(value) && typeof value === "object" && !Array.isArray(value);
|
|
113
113
|
var isAbsoluteExternalURL = (value) => /^[a-zA-Z][a-zA-Z\d+\-.]*:/.test(value) || value.startsWith("//");
|
|
@@ -241,8 +241,10 @@ function configureAdmin(config) {
|
|
|
241
241
|
brandPrimary = "#3b82f6",
|
|
242
242
|
brandSecondary = "#8b5cf6",
|
|
243
243
|
defaultTheme = "brand-light",
|
|
244
|
+
logoOnDarkUrl,
|
|
244
245
|
logoUrl,
|
|
245
|
-
allowThemePreference = false
|
|
246
|
+
allowThemePreference = false,
|
|
247
|
+
userSessionDurationSeconds = 60 * 60 * 24
|
|
246
248
|
} = config;
|
|
247
249
|
const studioEnabled = config.studio?.enabled ?? true;
|
|
248
250
|
const formsEnabled = config.studio?.forms?.enabled ?? false;
|
|
@@ -347,6 +349,49 @@ function configureAdmin(config) {
|
|
|
347
349
|
}
|
|
348
350
|
};
|
|
349
351
|
};
|
|
352
|
+
const attachStudioEditRedirectToCollection = (collection, options) => {
|
|
353
|
+
if (!studioEnabled) {
|
|
354
|
+
return collection;
|
|
355
|
+
}
|
|
356
|
+
const collectionWithBreadcrumb = attachStudioBackBreadcrumbToCollection(collection);
|
|
357
|
+
const existingViews = collectionWithBreadcrumb.admin?.components?.views;
|
|
358
|
+
const existingEditViews = existingViews?.edit;
|
|
359
|
+
const hasCustomEditView = Boolean(
|
|
360
|
+
existingEditViews?.root || existingEditViews?.default && typeof existingEditViews.default === "object" && existingEditViews.default.Component
|
|
361
|
+
);
|
|
362
|
+
if (hasCustomEditView) {
|
|
363
|
+
return collectionWithBreadcrumb;
|
|
364
|
+
}
|
|
365
|
+
return {
|
|
366
|
+
...collectionWithBreadcrumb,
|
|
367
|
+
admin: {
|
|
368
|
+
...collectionWithBreadcrumb.admin,
|
|
369
|
+
components: {
|
|
370
|
+
...collectionWithBreadcrumb.admin?.components,
|
|
371
|
+
views: {
|
|
372
|
+
...existingViews,
|
|
373
|
+
edit: {
|
|
374
|
+
...existingEditViews,
|
|
375
|
+
default: {
|
|
376
|
+
...typeof existingEditViews?.default === "object" ? existingEditViews.default : {},
|
|
377
|
+
Component: {
|
|
378
|
+
exportName: "StudioDocumentRedirect",
|
|
379
|
+
path: clientPath,
|
|
380
|
+
clientProps: {
|
|
381
|
+
description: options.description,
|
|
382
|
+
...options.emptyHref ? { emptyHref: options.emptyHref } : {},
|
|
383
|
+
...options.emptyLabel ? { emptyLabel: options.emptyLabel } : {},
|
|
384
|
+
pathBase: options.pathBase,
|
|
385
|
+
title: options.title
|
|
386
|
+
}
|
|
387
|
+
}
|
|
388
|
+
}
|
|
389
|
+
}
|
|
390
|
+
}
|
|
391
|
+
}
|
|
392
|
+
}
|
|
393
|
+
};
|
|
394
|
+
};
|
|
350
395
|
return {
|
|
351
396
|
admin: {
|
|
352
397
|
css: cssPath,
|
|
@@ -364,6 +409,7 @@ function configureAdmin(config) {
|
|
|
364
409
|
path: clientPath,
|
|
365
410
|
clientProps: {
|
|
366
411
|
brandName,
|
|
412
|
+
logoOnDarkUrl,
|
|
367
413
|
logoUrl
|
|
368
414
|
}
|
|
369
415
|
},
|
|
@@ -372,6 +418,7 @@ function configureAdmin(config) {
|
|
|
372
418
|
path: clientPath,
|
|
373
419
|
clientProps: {
|
|
374
420
|
brandName,
|
|
421
|
+
logoOnDarkUrl,
|
|
375
422
|
logoUrl
|
|
376
423
|
}
|
|
377
424
|
}
|
|
@@ -386,6 +433,7 @@ function configureAdmin(config) {
|
|
|
386
433
|
},
|
|
387
434
|
...studioEnabled ? {
|
|
388
435
|
studioGlobals: {
|
|
436
|
+
exact: true,
|
|
389
437
|
path: globalsBasePath,
|
|
390
438
|
Component: {
|
|
391
439
|
exportName: "AdminStudioGlobalsView",
|
|
@@ -397,10 +445,11 @@ function configureAdmin(config) {
|
|
|
397
445
|
}
|
|
398
446
|
}
|
|
399
447
|
},
|
|
400
|
-
|
|
401
|
-
|
|
448
|
+
studioPageNew: {
|
|
449
|
+
exact: true,
|
|
450
|
+
path: `${pagesBasePath}/new`,
|
|
402
451
|
Component: {
|
|
403
|
-
exportName: "
|
|
452
|
+
exportName: "AdminStudioNewPageView",
|
|
404
453
|
path: clientPath,
|
|
405
454
|
clientProps: {
|
|
406
455
|
...studioNavClientProps,
|
|
@@ -409,6 +458,7 @@ function configureAdmin(config) {
|
|
|
409
458
|
}
|
|
410
459
|
},
|
|
411
460
|
studioPageEditor: {
|
|
461
|
+
exact: true,
|
|
412
462
|
path: `${pagesBasePath}/:id`,
|
|
413
463
|
Component: {
|
|
414
464
|
exportName: "AdminStudioPageEditView",
|
|
@@ -419,10 +469,11 @@ function configureAdmin(config) {
|
|
|
419
469
|
}
|
|
420
470
|
}
|
|
421
471
|
},
|
|
422
|
-
|
|
423
|
-
|
|
472
|
+
studioPages: {
|
|
473
|
+
exact: true,
|
|
474
|
+
path: pagesBasePath,
|
|
424
475
|
Component: {
|
|
425
|
-
exportName: "
|
|
476
|
+
exportName: "AdminStudioPagesListView",
|
|
426
477
|
path: clientPath,
|
|
427
478
|
clientProps: {
|
|
428
479
|
...studioNavClientProps,
|
|
@@ -431,6 +482,7 @@ function configureAdmin(config) {
|
|
|
431
482
|
}
|
|
432
483
|
},
|
|
433
484
|
studioContactForm: {
|
|
485
|
+
exact: true,
|
|
434
486
|
path: contactFormStudioPath,
|
|
435
487
|
Component: {
|
|
436
488
|
exportName: "AdminStudioContactFormView",
|
|
@@ -443,7 +495,47 @@ function configureAdmin(config) {
|
|
|
443
495
|
}
|
|
444
496
|
},
|
|
445
497
|
...formsEnabled ? {
|
|
498
|
+
studioFormSubmission: {
|
|
499
|
+
exact: true,
|
|
500
|
+
path: `${formsBasePath}/submissions/:id`,
|
|
501
|
+
Component: {
|
|
502
|
+
exportName: "AdminStudioFormSubmissionView",
|
|
503
|
+
path: clientPath,
|
|
504
|
+
clientProps: {
|
|
505
|
+
...studioNavClientProps,
|
|
506
|
+
formsCollectionSlug,
|
|
507
|
+
formSubmissionsCollectionSlug,
|
|
508
|
+
formUploadsCollectionSlug
|
|
509
|
+
}
|
|
510
|
+
}
|
|
511
|
+
},
|
|
512
|
+
studioFormUpload: {
|
|
513
|
+
exact: true,
|
|
514
|
+
path: `${formsBasePath}/uploads/:id`,
|
|
515
|
+
Component: {
|
|
516
|
+
exportName: "AdminStudioFormUploadView",
|
|
517
|
+
path: clientPath,
|
|
518
|
+
clientProps: {
|
|
519
|
+
...studioNavClientProps,
|
|
520
|
+
formUploadsCollectionSlug
|
|
521
|
+
}
|
|
522
|
+
}
|
|
523
|
+
},
|
|
524
|
+
studioFormDetail: {
|
|
525
|
+
exact: true,
|
|
526
|
+
path: `${formsBasePath}/:id`,
|
|
527
|
+
Component: {
|
|
528
|
+
exportName: "AdminStudioFormDetailView",
|
|
529
|
+
path: clientPath,
|
|
530
|
+
clientProps: {
|
|
531
|
+
...studioNavClientProps,
|
|
532
|
+
formsCollectionSlug,
|
|
533
|
+
formSubmissionsCollectionSlug
|
|
534
|
+
}
|
|
535
|
+
}
|
|
536
|
+
},
|
|
446
537
|
studioForms: {
|
|
538
|
+
exact: true,
|
|
447
539
|
path: formsBasePath,
|
|
448
540
|
Component: {
|
|
449
541
|
exportName: "AdminStudioFormsView",
|
|
@@ -457,10 +549,11 @@ function configureAdmin(config) {
|
|
|
457
549
|
}
|
|
458
550
|
}
|
|
459
551
|
} : {},
|
|
460
|
-
|
|
461
|
-
|
|
552
|
+
studioMediaItem: {
|
|
553
|
+
exact: true,
|
|
554
|
+
path: `${mediaBasePath}/:id`,
|
|
462
555
|
Component: {
|
|
463
|
-
exportName: "
|
|
556
|
+
exportName: "AdminStudioMediaItemView",
|
|
464
557
|
path: clientPath,
|
|
465
558
|
clientProps: {
|
|
466
559
|
...studioNavClientProps,
|
|
@@ -468,10 +561,11 @@ function configureAdmin(config) {
|
|
|
468
561
|
}
|
|
469
562
|
}
|
|
470
563
|
},
|
|
471
|
-
|
|
472
|
-
|
|
564
|
+
studioMedia: {
|
|
565
|
+
exact: true,
|
|
566
|
+
path: mediaBasePath,
|
|
473
567
|
Component: {
|
|
474
|
-
exportName: "
|
|
568
|
+
exportName: "AdminStudioMediaView",
|
|
475
569
|
path: clientPath,
|
|
476
570
|
clientProps: {
|
|
477
571
|
...studioNavClientProps,
|
|
@@ -480,6 +574,7 @@ function configureAdmin(config) {
|
|
|
480
574
|
}
|
|
481
575
|
},
|
|
482
576
|
studioTools: {
|
|
577
|
+
exact: true,
|
|
483
578
|
path: toolsBasePath,
|
|
484
579
|
Component: {
|
|
485
580
|
exportName: "AdminStudioToolsView",
|
|
@@ -524,6 +619,7 @@ function configureAdmin(config) {
|
|
|
524
619
|
path: clientPath,
|
|
525
620
|
clientProps: {
|
|
526
621
|
brandName,
|
|
622
|
+
logoOnDarkUrl,
|
|
527
623
|
logoUrl
|
|
528
624
|
}
|
|
529
625
|
}
|
|
@@ -560,8 +656,17 @@ function configureAdmin(config) {
|
|
|
560
656
|
const hasThemePreference = existingFields.some(
|
|
561
657
|
(field) => typeof field === "object" && field !== null && "name" in field && field.name === "themePreference"
|
|
562
658
|
);
|
|
659
|
+
const normalizedAuth = usersCollection.auth === true ? {
|
|
660
|
+
tokenExpiration: userSessionDurationSeconds,
|
|
661
|
+
useSessions: true
|
|
662
|
+
} : usersCollection.auth && typeof usersCollection.auth === "object" ? {
|
|
663
|
+
...usersCollection.auth,
|
|
664
|
+
tokenExpiration: usersCollection.auth.tokenExpiration ?? userSessionDurationSeconds,
|
|
665
|
+
useSessions: usersCollection.auth.useSessions ?? true
|
|
666
|
+
} : usersCollection.auth;
|
|
563
667
|
const nextCollection = {
|
|
564
668
|
...usersCollection,
|
|
669
|
+
auth: normalizedAuth,
|
|
565
670
|
fields: !allowThemePreference || hasThemePreference ? existingFields : [...existingFields, createThemePreferenceField(defaultTheme)]
|
|
566
671
|
};
|
|
567
672
|
return attachStudioBackBreadcrumbToCollection(nextCollection);
|
|
@@ -623,13 +728,31 @@ function configureAdmin(config) {
|
|
|
623
728
|
return attachStudioBackBreadcrumbToCollection(mediaCollection);
|
|
624
729
|
},
|
|
625
730
|
wrapFormsCollection(formsCollection) {
|
|
626
|
-
return
|
|
731
|
+
return attachStudioEditRedirectToCollection(formsCollection, {
|
|
732
|
+
description: "Redirecting to the Studio form workspace.",
|
|
733
|
+
emptyHref: formsBasePath,
|
|
734
|
+
emptyLabel: "Open Forms",
|
|
735
|
+
pathBase: formsBasePath,
|
|
736
|
+
title: "Opening Form..."
|
|
737
|
+
});
|
|
627
738
|
},
|
|
628
739
|
wrapFormSubmissionsCollection(formSubmissionsCollection) {
|
|
629
|
-
return
|
|
740
|
+
return attachStudioEditRedirectToCollection(formSubmissionsCollection, {
|
|
741
|
+
description: "Redirecting to the Studio submission workspace.",
|
|
742
|
+
emptyHref: formsBasePath,
|
|
743
|
+
emptyLabel: "Open Forms",
|
|
744
|
+
pathBase: `${formsBasePath}/submissions`,
|
|
745
|
+
title: "Opening Submission..."
|
|
746
|
+
});
|
|
630
747
|
},
|
|
631
748
|
wrapFormUploadsCollection(formUploadsCollection) {
|
|
632
|
-
return
|
|
749
|
+
return attachStudioEditRedirectToCollection(formUploadsCollection, {
|
|
750
|
+
description: "Redirecting to the Studio upload workspace.",
|
|
751
|
+
emptyHref: formsBasePath,
|
|
752
|
+
emptyLabel: "Open Forms",
|
|
753
|
+
pathBase: `${formsBasePath}/uploads`,
|
|
754
|
+
title: "Opening Upload..."
|
|
755
|
+
});
|
|
633
756
|
},
|
|
634
757
|
wrapGlobals(globals2) {
|
|
635
758
|
const labelMap = {
|
|
@@ -3570,7 +3693,9 @@ var defaultBuilderBlockSettingsV2 = {
|
|
|
3570
3693
|
},
|
|
3571
3694
|
typography: {
|
|
3572
3695
|
bodyAlign: "left",
|
|
3696
|
+
bodySizePt: null,
|
|
3573
3697
|
headingAlign: "left",
|
|
3698
|
+
headingSizePt: null,
|
|
3574
3699
|
letterSpacingPreset: "normal",
|
|
3575
3700
|
lineHeightPreset: "normal",
|
|
3576
3701
|
maxTextWidth: "auto"
|
|
@@ -3599,7 +3724,9 @@ var defaultBuilderItemSettingsV2 = {
|
|
|
3599
3724
|
},
|
|
3600
3725
|
typography: {
|
|
3601
3726
|
bodyAlign: "left",
|
|
3727
|
+
bodySizePt: null,
|
|
3602
3728
|
headingAlign: "left",
|
|
3729
|
+
headingSizePt: null,
|
|
3603
3730
|
letterSpacingPreset: "normal",
|
|
3604
3731
|
lineHeightPreset: "normal",
|
|
3605
3732
|
maxTextWidth: "auto"
|
|
@@ -3629,6 +3756,7 @@ var defaultBuilderThemeTokens = {
|
|
|
3629
3756
|
|
|
3630
3757
|
// src/studio-pages/builder/adapters/settingsV2.ts
|
|
3631
3758
|
var isRecord3 = (value) => Boolean(value) && typeof value === "object" && !Array.isArray(value);
|
|
3759
|
+
var isTextAlign = (value) => value === "left" || value === "center" || value === "right" || value === "justify";
|
|
3632
3760
|
var parsePercent = (value) => {
|
|
3633
3761
|
if (typeof value === "number" && Number.isFinite(value)) {
|
|
3634
3762
|
return Math.max(0, Math.min(100, value));
|
|
@@ -3653,6 +3781,18 @@ var parsePixel = (value) => {
|
|
|
3653
3781
|
}
|
|
3654
3782
|
return null;
|
|
3655
3783
|
};
|
|
3784
|
+
var parsePoint = (value) => {
|
|
3785
|
+
if (typeof value === "number" && Number.isFinite(value)) {
|
|
3786
|
+
return Math.max(6, Math.min(120, Math.round(value)));
|
|
3787
|
+
}
|
|
3788
|
+
if (typeof value === "string" && value.trim().length > 0) {
|
|
3789
|
+
const parsed = Number(value);
|
|
3790
|
+
if (Number.isFinite(parsed)) {
|
|
3791
|
+
return Math.max(6, Math.min(120, Math.round(parsed)));
|
|
3792
|
+
}
|
|
3793
|
+
}
|
|
3794
|
+
return null;
|
|
3795
|
+
};
|
|
3656
3796
|
var mergeSettings = (defaults, input) => {
|
|
3657
3797
|
if (!isRecord3(input)) {
|
|
3658
3798
|
return structuredClone(defaults);
|
|
@@ -3671,6 +3811,10 @@ var mergeSettings = (defaults, input) => {
|
|
|
3671
3811
|
};
|
|
3672
3812
|
var legacyBlockToV2Settings = (block) => {
|
|
3673
3813
|
const current = structuredClone(defaultBuilderBlockSettingsV2);
|
|
3814
|
+
if (block.blockType === "hero" && block.variant === "centered") {
|
|
3815
|
+
current.typography.headingAlign = "center";
|
|
3816
|
+
current.typography.bodyAlign = "center";
|
|
3817
|
+
}
|
|
3674
3818
|
current.layout.contentWidth = block.contentWidth === "narrow" || block.contentWidth === "content" || block.contentWidth === "wide" || block.contentWidth === "full" || block.contentWidth === "inherit" ? block.contentWidth : current.layout.contentWidth;
|
|
3675
3819
|
current.layout.sectionPaddingX = block.sectionPaddingX === "none" || block.sectionPaddingX === "sm" || block.sectionPaddingX === "md" || block.sectionPaddingX === "lg" || block.sectionPaddingX === "inherit" ? block.sectionPaddingX : current.layout.sectionPaddingX;
|
|
3676
3820
|
current.layout.sectionPaddingY = block.sectionPaddingY === "none" || block.sectionPaddingY === "sm" || block.sectionPaddingY === "lg" ? block.sectionPaddingY : current.layout.sectionPaddingY;
|
|
@@ -3707,15 +3851,28 @@ var legacyBlockToV2Settings = (block) => {
|
|
|
3707
3851
|
current.media.positionX = parsePercent(block.imagePositionX ?? block.backgroundImagePositionX);
|
|
3708
3852
|
current.media.positionY = parsePercent(block.imagePositionY ?? block.backgroundImagePositionY);
|
|
3709
3853
|
current.media.height = parsePixel(block.imageHeight);
|
|
3710
|
-
current.typography.headingAlign = block.textHeadingAlign
|
|
3711
|
-
current.typography.bodyAlign = block.textBodyAlign
|
|
3854
|
+
current.typography.headingAlign = isTextAlign(block.textHeadingAlign) ? block.textHeadingAlign : current.typography.headingAlign;
|
|
3855
|
+
current.typography.bodyAlign = isTextAlign(block.textBodyAlign) ? block.textBodyAlign : current.typography.bodyAlign;
|
|
3856
|
+
current.typography.headingSizePt = parsePoint(block.textHeadingSizePt);
|
|
3857
|
+
current.typography.bodySizePt = parsePoint(block.textBodySizePt);
|
|
3712
3858
|
current.typography.maxTextWidth = block.textMaxWidth === "auto" || block.textMaxWidth === "sm" || block.textMaxWidth === "md" || block.textMaxWidth === "lg" || block.textMaxWidth === "full" ? block.textMaxWidth : current.typography.maxTextWidth;
|
|
3713
3859
|
current.typography.lineHeightPreset = block.textLineHeightPreset === "tight" || block.textLineHeightPreset === "normal" || block.textLineHeightPreset === "relaxed" ? block.textLineHeightPreset : current.typography.lineHeightPreset;
|
|
3714
3860
|
current.typography.letterSpacingPreset = block.textLetterSpacingPreset === "tight" || block.textLetterSpacingPreset === "normal" || block.textLetterSpacingPreset === "relaxed" ? block.textLetterSpacingPreset : current.typography.letterSpacingPreset;
|
|
3715
3861
|
current.advanced.editCopyInPanel = Boolean(block.editCopyInPanel ?? current.advanced.editCopyInPanel);
|
|
3716
3862
|
current.advanced.customClassName = typeof block.customClassName === "string" ? block.customClassName : current.advanced.customClassName;
|
|
3717
3863
|
current.advanced.hideOnMobile = Boolean(block.hideOnMobile ?? current.advanced.hideOnMobile);
|
|
3718
|
-
|
|
3864
|
+
const settings = mergeSettings(current, block.settings);
|
|
3865
|
+
if (block.blockType === "hero") {
|
|
3866
|
+
const top = settings.layout.paddingTopPt;
|
|
3867
|
+
const bottom = settings.layout.paddingBottomPt;
|
|
3868
|
+
const hasLegacyLinkedHeroPadding = settings.layout.linkVerticalPadding !== false && (top === null || typeof top === "undefined" || top === 30) && (bottom === null || typeof bottom === "undefined" || bottom === 30 || bottom === 20);
|
|
3869
|
+
if (hasLegacyLinkedHeroPadding) {
|
|
3870
|
+
settings.layout.linkVerticalPadding = false;
|
|
3871
|
+
settings.layout.paddingTopPt = 30;
|
|
3872
|
+
settings.layout.paddingBottomPt = 20;
|
|
3873
|
+
}
|
|
3874
|
+
}
|
|
3875
|
+
return settings;
|
|
3719
3876
|
};
|
|
3720
3877
|
var v2SettingsToLegacyBlock = (blockWithSettings) => {
|
|
3721
3878
|
const settings = legacyBlockToV2Settings(blockWithSettings);
|
|
@@ -3741,6 +3898,8 @@ var v2SettingsToLegacyBlock = (blockWithSettings) => {
|
|
|
3741
3898
|
next.contentGradientAngle = settings.appearance.contentGradientAngle;
|
|
3742
3899
|
next.textHeadingAlign = settings.typography.headingAlign;
|
|
3743
3900
|
next.textBodyAlign = settings.typography.bodyAlign;
|
|
3901
|
+
next.textHeadingSizePt = settings.typography.headingSizePt;
|
|
3902
|
+
next.textBodySizePt = settings.typography.bodySizePt;
|
|
3744
3903
|
next.textMaxWidth = settings.typography.maxTextWidth;
|
|
3745
3904
|
next.textLineHeightPreset = settings.typography.lineHeightPreset;
|
|
3746
3905
|
next.textLetterSpacingPreset = settings.typography.letterSpacingPreset;
|
|
@@ -4164,8 +4323,52 @@ var alignOptions = [
|
|
|
4164
4323
|
{ label: "Right", value: "right" },
|
|
4165
4324
|
{ label: "Justify", value: "justify" }
|
|
4166
4325
|
];
|
|
4167
|
-
var layoutFieldSet = [
|
|
4326
|
+
var layoutFieldSet = [
|
|
4327
|
+
{
|
|
4328
|
+
group: "layout",
|
|
4329
|
+
key: "settings.layout.linkVerticalPadding",
|
|
4330
|
+
label: "Link Top/Bottom Padding",
|
|
4331
|
+
tags: ["spacing", "padding", "vertical"],
|
|
4332
|
+
type: "checkbox"
|
|
4333
|
+
},
|
|
4334
|
+
{
|
|
4335
|
+
group: "layout",
|
|
4336
|
+
key: "settings.layout.paddingTopPt",
|
|
4337
|
+
label: "Top Padding (pt)",
|
|
4338
|
+
max: 240,
|
|
4339
|
+
min: 0,
|
|
4340
|
+
tags: ["spacing", "padding", "top"],
|
|
4341
|
+
type: "number"
|
|
4342
|
+
},
|
|
4343
|
+
{
|
|
4344
|
+
group: "layout",
|
|
4345
|
+
key: "settings.layout.paddingBottomPt",
|
|
4346
|
+
label: "Bottom Padding (pt)",
|
|
4347
|
+
max: 240,
|
|
4348
|
+
min: 0,
|
|
4349
|
+
tags: ["spacing", "padding", "bottom"],
|
|
4350
|
+
type: "number"
|
|
4351
|
+
}
|
|
4352
|
+
];
|
|
4168
4353
|
var typographyFieldSet = [
|
|
4354
|
+
{
|
|
4355
|
+
group: "typography",
|
|
4356
|
+
key: "settings.typography.headingSizePt",
|
|
4357
|
+
label: "Heading Text Size (pt)",
|
|
4358
|
+
max: 120,
|
|
4359
|
+
min: 6,
|
|
4360
|
+
tags: ["text", "size", "heading", "font"],
|
|
4361
|
+
type: "number"
|
|
4362
|
+
},
|
|
4363
|
+
{
|
|
4364
|
+
group: "typography",
|
|
4365
|
+
key: "settings.typography.bodySizePt",
|
|
4366
|
+
label: "Body Text Size (pt)",
|
|
4367
|
+
max: 72,
|
|
4368
|
+
min: 6,
|
|
4369
|
+
tags: ["text", "size", "body", "paragraph", "font"],
|
|
4370
|
+
type: "number"
|
|
4371
|
+
},
|
|
4169
4372
|
{
|
|
4170
4373
|
group: "typography",
|
|
4171
4374
|
key: "settings.typography.headingAlign",
|
|
@@ -4382,6 +4585,13 @@ var inspectorDefinitionByBlockType = {
|
|
|
4382
4585
|
{ group: "basics", inlineEditable: true, key: "kicker", label: "Kicker", type: "text" },
|
|
4383
4586
|
{ group: "basics", inlineEditable: true, key: "headline", label: "Headline", type: "text" },
|
|
4384
4587
|
{ group: "basics", inlineEditable: true, key: "subheadline", label: "Subheadline", type: "textarea" },
|
|
4588
|
+
{
|
|
4589
|
+
group: "basics",
|
|
4590
|
+
key: "settings.marquee.itemsText",
|
|
4591
|
+
label: "Scrolling Bar Options",
|
|
4592
|
+
tags: ["marquee", "scrolling", "bar", "categories"],
|
|
4593
|
+
type: "textarea"
|
|
4594
|
+
},
|
|
4385
4595
|
{
|
|
4386
4596
|
group: "basics",
|
|
4387
4597
|
key: "variant",
|
package/dist/index.mjs
CHANGED
|
@@ -1,25 +1,25 @@
|
|
|
1
1
|
import {
|
|
2
2
|
admin_exports
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-KHK6RTGC.mjs";
|
|
4
4
|
import {
|
|
5
|
-
|
|
6
|
-
} from "./chunk-
|
|
7
|
-
import "./chunk-
|
|
5
|
+
nextjs_exports
|
|
6
|
+
} from "./chunk-ZADL33R6.mjs";
|
|
7
|
+
import "./chunk-ZTXJG4K5.mjs";
|
|
8
8
|
import {
|
|
9
9
|
blocks_exports
|
|
10
10
|
} from "./chunk-JQAHXYAM.mjs";
|
|
11
|
-
import {
|
|
12
|
-
nextjs_exports
|
|
13
|
-
} from "./chunk-OTHERBGX.mjs";
|
|
14
|
-
import "./chunk-ZTXJG4K5.mjs";
|
|
15
11
|
import {
|
|
16
12
|
studio_pages_exports
|
|
17
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-276KAPGM.mjs";
|
|
14
|
+
import "./chunk-7ZMXZRBP.mjs";
|
|
18
15
|
import "./chunk-OQSEJXC4.mjs";
|
|
19
|
-
import "./chunk-PF3EBZXF.mjs";
|
|
20
16
|
import {
|
|
21
17
|
studio_exports
|
|
22
18
|
} from "./chunk-ADIIWIYL.mjs";
|
|
19
|
+
import {
|
|
20
|
+
admin_app_exports
|
|
21
|
+
} from "./chunk-RKTIFEUY.mjs";
|
|
22
|
+
import "./chunk-W2UOCJDX.mjs";
|
|
23
23
|
import "./chunk-6BWS3CLP.mjs";
|
|
24
24
|
export {
|
|
25
25
|
admin_exports as admin,
|
package/dist/nextjs/index.js
CHANGED
|
@@ -127,7 +127,9 @@ var defaultBuilderBlockSettingsV2 = {
|
|
|
127
127
|
},
|
|
128
128
|
typography: {
|
|
129
129
|
bodyAlign: "left",
|
|
130
|
+
bodySizePt: null,
|
|
130
131
|
headingAlign: "left",
|
|
132
|
+
headingSizePt: null,
|
|
131
133
|
letterSpacingPreset: "normal",
|
|
132
134
|
lineHeightPreset: "normal",
|
|
133
135
|
maxTextWidth: "auto"
|
|
@@ -156,7 +158,9 @@ var defaultBuilderItemSettingsV2 = {
|
|
|
156
158
|
},
|
|
157
159
|
typography: {
|
|
158
160
|
bodyAlign: "left",
|
|
161
|
+
bodySizePt: null,
|
|
159
162
|
headingAlign: "left",
|
|
163
|
+
headingSizePt: null,
|
|
160
164
|
letterSpacingPreset: "normal",
|
|
161
165
|
lineHeightPreset: "normal",
|
|
162
166
|
maxTextWidth: "auto"
|
|
@@ -166,6 +170,7 @@ var defaultBuilderItemSettingsV2 = {
|
|
|
166
170
|
|
|
167
171
|
// src/studio-pages/builder/adapters/settingsV2.ts
|
|
168
172
|
var isRecord2 = (value) => Boolean(value) && typeof value === "object" && !Array.isArray(value);
|
|
173
|
+
var isTextAlign = (value) => value === "left" || value === "center" || value === "right" || value === "justify";
|
|
169
174
|
var parsePercent = (value) => {
|
|
170
175
|
if (typeof value === "number" && Number.isFinite(value)) {
|
|
171
176
|
return Math.max(0, Math.min(100, value));
|
|
@@ -190,6 +195,18 @@ var parsePixel = (value) => {
|
|
|
190
195
|
}
|
|
191
196
|
return null;
|
|
192
197
|
};
|
|
198
|
+
var parsePoint = (value) => {
|
|
199
|
+
if (typeof value === "number" && Number.isFinite(value)) {
|
|
200
|
+
return Math.max(6, Math.min(120, Math.round(value)));
|
|
201
|
+
}
|
|
202
|
+
if (typeof value === "string" && value.trim().length > 0) {
|
|
203
|
+
const parsed = Number(value);
|
|
204
|
+
if (Number.isFinite(parsed)) {
|
|
205
|
+
return Math.max(6, Math.min(120, Math.round(parsed)));
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
return null;
|
|
209
|
+
};
|
|
193
210
|
var mergeSettings = (defaults, input) => {
|
|
194
211
|
if (!isRecord2(input)) {
|
|
195
212
|
return structuredClone(defaults);
|
|
@@ -208,6 +225,10 @@ var mergeSettings = (defaults, input) => {
|
|
|
208
225
|
};
|
|
209
226
|
var legacyBlockToV2Settings = (block) => {
|
|
210
227
|
const current = structuredClone(defaultBuilderBlockSettingsV2);
|
|
228
|
+
if (block.blockType === "hero" && block.variant === "centered") {
|
|
229
|
+
current.typography.headingAlign = "center";
|
|
230
|
+
current.typography.bodyAlign = "center";
|
|
231
|
+
}
|
|
211
232
|
current.layout.contentWidth = block.contentWidth === "narrow" || block.contentWidth === "content" || block.contentWidth === "wide" || block.contentWidth === "full" || block.contentWidth === "inherit" ? block.contentWidth : current.layout.contentWidth;
|
|
212
233
|
current.layout.sectionPaddingX = block.sectionPaddingX === "none" || block.sectionPaddingX === "sm" || block.sectionPaddingX === "md" || block.sectionPaddingX === "lg" || block.sectionPaddingX === "inherit" ? block.sectionPaddingX : current.layout.sectionPaddingX;
|
|
213
234
|
current.layout.sectionPaddingY = block.sectionPaddingY === "none" || block.sectionPaddingY === "sm" || block.sectionPaddingY === "lg" ? block.sectionPaddingY : current.layout.sectionPaddingY;
|
|
@@ -244,15 +265,28 @@ var legacyBlockToV2Settings = (block) => {
|
|
|
244
265
|
current.media.positionX = parsePercent(block.imagePositionX ?? block.backgroundImagePositionX);
|
|
245
266
|
current.media.positionY = parsePercent(block.imagePositionY ?? block.backgroundImagePositionY);
|
|
246
267
|
current.media.height = parsePixel(block.imageHeight);
|
|
247
|
-
current.typography.headingAlign = block.textHeadingAlign
|
|
248
|
-
current.typography.bodyAlign = block.textBodyAlign
|
|
268
|
+
current.typography.headingAlign = isTextAlign(block.textHeadingAlign) ? block.textHeadingAlign : current.typography.headingAlign;
|
|
269
|
+
current.typography.bodyAlign = isTextAlign(block.textBodyAlign) ? block.textBodyAlign : current.typography.bodyAlign;
|
|
270
|
+
current.typography.headingSizePt = parsePoint(block.textHeadingSizePt);
|
|
271
|
+
current.typography.bodySizePt = parsePoint(block.textBodySizePt);
|
|
249
272
|
current.typography.maxTextWidth = block.textMaxWidth === "auto" || block.textMaxWidth === "sm" || block.textMaxWidth === "md" || block.textMaxWidth === "lg" || block.textMaxWidth === "full" ? block.textMaxWidth : current.typography.maxTextWidth;
|
|
250
273
|
current.typography.lineHeightPreset = block.textLineHeightPreset === "tight" || block.textLineHeightPreset === "normal" || block.textLineHeightPreset === "relaxed" ? block.textLineHeightPreset : current.typography.lineHeightPreset;
|
|
251
274
|
current.typography.letterSpacingPreset = block.textLetterSpacingPreset === "tight" || block.textLetterSpacingPreset === "normal" || block.textLetterSpacingPreset === "relaxed" ? block.textLetterSpacingPreset : current.typography.letterSpacingPreset;
|
|
252
275
|
current.advanced.editCopyInPanel = Boolean(block.editCopyInPanel ?? current.advanced.editCopyInPanel);
|
|
253
276
|
current.advanced.customClassName = typeof block.customClassName === "string" ? block.customClassName : current.advanced.customClassName;
|
|
254
277
|
current.advanced.hideOnMobile = Boolean(block.hideOnMobile ?? current.advanced.hideOnMobile);
|
|
255
|
-
|
|
278
|
+
const settings = mergeSettings(current, block.settings);
|
|
279
|
+
if (block.blockType === "hero") {
|
|
280
|
+
const top = settings.layout.paddingTopPt;
|
|
281
|
+
const bottom = settings.layout.paddingBottomPt;
|
|
282
|
+
const hasLegacyLinkedHeroPadding = settings.layout.linkVerticalPadding !== false && (top === null || typeof top === "undefined" || top === 30) && (bottom === null || typeof bottom === "undefined" || bottom === 30 || bottom === 20);
|
|
283
|
+
if (hasLegacyLinkedHeroPadding) {
|
|
284
|
+
settings.layout.linkVerticalPadding = false;
|
|
285
|
+
settings.layout.paddingTopPt = 30;
|
|
286
|
+
settings.layout.paddingBottomPt = 20;
|
|
287
|
+
}
|
|
288
|
+
}
|
|
289
|
+
return settings;
|
|
256
290
|
};
|
|
257
291
|
var v2SettingsToLegacyBlock = (blockWithSettings) => {
|
|
258
292
|
const settings = legacyBlockToV2Settings(blockWithSettings);
|
|
@@ -278,6 +312,8 @@ var v2SettingsToLegacyBlock = (blockWithSettings) => {
|
|
|
278
312
|
next.contentGradientAngle = settings.appearance.contentGradientAngle;
|
|
279
313
|
next.textHeadingAlign = settings.typography.headingAlign;
|
|
280
314
|
next.textBodyAlign = settings.typography.bodyAlign;
|
|
315
|
+
next.textHeadingSizePt = settings.typography.headingSizePt;
|
|
316
|
+
next.textBodySizePt = settings.typography.bodySizePt;
|
|
281
317
|
next.textMaxWidth = settings.typography.maxTextWidth;
|
|
282
318
|
next.textLineHeightPreset = settings.typography.lineHeightPreset;
|
|
283
319
|
next.textLetterSpacingPreset = settings.typography.letterSpacingPreset;
|
package/dist/nextjs/index.mjs
CHANGED
|
@@ -5,9 +5,9 @@ import {
|
|
|
5
5
|
createSiteQueries,
|
|
6
6
|
resolveMedia,
|
|
7
7
|
resolveSocialMediaLinks
|
|
8
|
-
} from "../chunk-
|
|
8
|
+
} from "../chunk-ZADL33R6.mjs";
|
|
9
9
|
import "../chunk-ZTXJG4K5.mjs";
|
|
10
|
-
import "../chunk-
|
|
10
|
+
import "../chunk-7ZMXZRBP.mjs";
|
|
11
11
|
import "../chunk-ADIIWIYL.mjs";
|
|
12
12
|
import "../chunk-6BWS3CLP.mjs";
|
|
13
13
|
export {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
type AdminRole = 'admin' | 'editor' | 'client';
|
|
1
|
+
type AdminRole = 'admin' | 'developer' | 'editor' | 'client';
|
|
2
2
|
declare const adminNavIcons: readonly ["dashboard", "pages", "forms", "globals", "media", "tools", "account", "analytics"];
|
|
3
3
|
type AdminNavIcon = (typeof adminNavIcons)[number];
|
|
4
4
|
type AdminNavItem = {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
type AdminRole = 'admin' | 'editor' | 'client';
|
|
1
|
+
type AdminRole = 'admin' | 'developer' | 'editor' | 'client';
|
|
2
2
|
declare const adminNavIcons: readonly ["dashboard", "pages", "forms", "globals", "media", "tools", "account", "analytics"];
|
|
3
3
|
type AdminNavIcon = (typeof adminNavIcons)[number];
|
|
4
4
|
type AdminNavItem = {
|