@orion-studios/payload-studio 0.6.0-beta.13 → 0.6.0-beta.131

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 (38) hide show
  1. package/dist/admin/client.js +2061 -538
  2. package/dist/admin/client.mjs +2078 -568
  3. package/dist/admin/index.js +124 -15
  4. package/dist/admin/index.mjs +1 -1
  5. package/dist/admin-app/client.js +14 -5
  6. package/dist/admin-app/client.mjs +1 -1
  7. package/dist/admin-app/styles.css +277 -1
  8. package/dist/admin.css +98 -2
  9. package/dist/builder-v2/client.d.mts +18 -0
  10. package/dist/builder-v2/client.d.ts +18 -0
  11. package/dist/builder-v2/client.js +3837 -0
  12. package/dist/builder-v2/client.mjs +3712 -0
  13. package/dist/builder-v2/index.d.mts +248 -0
  14. package/dist/builder-v2/index.d.ts +248 -0
  15. package/dist/builder-v2/index.js +805 -0
  16. package/dist/builder-v2/index.mjs +755 -0
  17. package/dist/builder-v2/styles.css +2514 -0
  18. package/dist/{chunk-PF3EBZXF.mjs → chunk-7ZMXZRBP.mjs} +39 -3
  19. package/dist/{chunk-XZQILJK3.mjs → chunk-JC3UV74N.mjs} +124 -15
  20. package/dist/{chunk-KPIX7OSV.mjs → chunk-NF37A575.mjs} +14 -5
  21. package/dist/{chunk-XKUTZ7IU.mjs → chunk-NGLIA2OE.mjs} +53 -2
  22. package/dist/{chunk-OTHERBGX.mjs → chunk-ZADL33R6.mjs} +1 -1
  23. package/dist/{index-Cv-6qnrw.d.mts → index-D5zrOdyv.d.mts} +3 -1
  24. package/dist/{index-Crx_MtPw.d.ts → index-Dv-Alx4h.d.ts} +3 -1
  25. package/dist/index.d.mts +1 -1
  26. package/dist/index.d.ts +1 -1
  27. package/dist/index.js +215 -19
  28. package/dist/index.mjs +4 -4
  29. package/dist/nextjs/index.js +39 -3
  30. package/dist/nextjs/index.mjs +2 -2
  31. package/dist/studio-pages/builder.css +66 -5
  32. package/dist/studio-pages/client.js +618 -73
  33. package/dist/studio-pages/client.mjs +641 -96
  34. package/dist/studio-pages/index.d.mts +1 -1
  35. package/dist/studio-pages/index.d.ts +1 -1
  36. package/dist/studio-pages/index.js +91 -4
  37. package/dist/studio-pages/index.mjs +2 -2
  38. package/package.json +22 -3
@@ -40,7 +40,9 @@ var defaultBuilderBlockSettingsV2 = {
40
40
  },
41
41
  typography: {
42
42
  bodyAlign: "left",
43
+ bodySizePt: null,
43
44
  headingAlign: "left",
45
+ headingSizePt: null,
44
46
  letterSpacingPreset: "normal",
45
47
  lineHeightPreset: "normal",
46
48
  maxTextWidth: "auto"
@@ -69,7 +71,9 @@ var defaultBuilderItemSettingsV2 = {
69
71
  },
70
72
  typography: {
71
73
  bodyAlign: "left",
74
+ bodySizePt: null,
72
75
  headingAlign: "left",
76
+ headingSizePt: null,
73
77
  letterSpacingPreset: "normal",
74
78
  lineHeightPreset: "normal",
75
79
  maxTextWidth: "auto"
@@ -99,6 +103,7 @@ var defaultBuilderThemeTokens = {
99
103
 
100
104
  // src/studio-pages/builder/adapters/settingsV2.ts
101
105
  var isRecord = (value) => Boolean(value) && typeof value === "object" && !Array.isArray(value);
106
+ var isTextAlign = (value) => value === "left" || value === "center" || value === "right" || value === "justify";
102
107
  var parsePercent = (value) => {
103
108
  if (typeof value === "number" && Number.isFinite(value)) {
104
109
  return Math.max(0, Math.min(100, value));
@@ -123,6 +128,18 @@ var parsePixel = (value) => {
123
128
  }
124
129
  return null;
125
130
  };
131
+ var parsePoint = (value) => {
132
+ if (typeof value === "number" && Number.isFinite(value)) {
133
+ return Math.max(6, Math.min(120, Math.round(value)));
134
+ }
135
+ if (typeof value === "string" && value.trim().length > 0) {
136
+ const parsed = Number(value);
137
+ if (Number.isFinite(parsed)) {
138
+ return Math.max(6, Math.min(120, Math.round(parsed)));
139
+ }
140
+ }
141
+ return null;
142
+ };
126
143
  var mergeSettings = (defaults, input) => {
127
144
  if (!isRecord(input)) {
128
145
  return structuredClone(defaults);
@@ -141,6 +158,10 @@ var mergeSettings = (defaults, input) => {
141
158
  };
142
159
  var legacyBlockToV2Settings = (block) => {
143
160
  const current = structuredClone(defaultBuilderBlockSettingsV2);
161
+ if (block.blockType === "hero" && block.variant === "centered") {
162
+ current.typography.headingAlign = "center";
163
+ current.typography.bodyAlign = "center";
164
+ }
144
165
  current.layout.contentWidth = block.contentWidth === "narrow" || block.contentWidth === "content" || block.contentWidth === "wide" || block.contentWidth === "full" || block.contentWidth === "inherit" ? block.contentWidth : current.layout.contentWidth;
145
166
  current.layout.sectionPaddingX = block.sectionPaddingX === "none" || block.sectionPaddingX === "sm" || block.sectionPaddingX === "md" || block.sectionPaddingX === "lg" || block.sectionPaddingX === "inherit" ? block.sectionPaddingX : current.layout.sectionPaddingX;
146
167
  current.layout.sectionPaddingY = block.sectionPaddingY === "none" || block.sectionPaddingY === "sm" || block.sectionPaddingY === "lg" ? block.sectionPaddingY : current.layout.sectionPaddingY;
@@ -177,15 +198,28 @@ var legacyBlockToV2Settings = (block) => {
177
198
  current.media.positionX = parsePercent(block.imagePositionX ?? block.backgroundImagePositionX);
178
199
  current.media.positionY = parsePercent(block.imagePositionY ?? block.backgroundImagePositionY);
179
200
  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;
201
+ current.typography.headingAlign = isTextAlign(block.textHeadingAlign) ? block.textHeadingAlign : current.typography.headingAlign;
202
+ current.typography.bodyAlign = isTextAlign(block.textBodyAlign) ? block.textBodyAlign : current.typography.bodyAlign;
203
+ current.typography.headingSizePt = parsePoint(block.textHeadingSizePt);
204
+ current.typography.bodySizePt = parsePoint(block.textBodySizePt);
182
205
  current.typography.maxTextWidth = block.textMaxWidth === "auto" || block.textMaxWidth === "sm" || block.textMaxWidth === "md" || block.textMaxWidth === "lg" || block.textMaxWidth === "full" ? block.textMaxWidth : current.typography.maxTextWidth;
183
206
  current.typography.lineHeightPreset = block.textLineHeightPreset === "tight" || block.textLineHeightPreset === "normal" || block.textLineHeightPreset === "relaxed" ? block.textLineHeightPreset : current.typography.lineHeightPreset;
184
207
  current.typography.letterSpacingPreset = block.textLetterSpacingPreset === "tight" || block.textLetterSpacingPreset === "normal" || block.textLetterSpacingPreset === "relaxed" ? block.textLetterSpacingPreset : current.typography.letterSpacingPreset;
185
208
  current.advanced.editCopyInPanel = Boolean(block.editCopyInPanel ?? current.advanced.editCopyInPanel);
186
209
  current.advanced.customClassName = typeof block.customClassName === "string" ? block.customClassName : current.advanced.customClassName;
187
210
  current.advanced.hideOnMobile = Boolean(block.hideOnMobile ?? current.advanced.hideOnMobile);
188
- return mergeSettings(current, block.settings);
211
+ const settings = mergeSettings(current, block.settings);
212
+ if (block.blockType === "hero") {
213
+ const top = settings.layout.paddingTopPt;
214
+ const bottom = settings.layout.paddingBottomPt;
215
+ const hasLegacyLinkedHeroPadding = settings.layout.linkVerticalPadding !== false && (top === null || typeof top === "undefined" || top === 30) && (bottom === null || typeof bottom === "undefined" || bottom === 30 || bottom === 20);
216
+ if (hasLegacyLinkedHeroPadding) {
217
+ settings.layout.linkVerticalPadding = false;
218
+ settings.layout.paddingTopPt = 30;
219
+ settings.layout.paddingBottomPt = 20;
220
+ }
221
+ }
222
+ return settings;
189
223
  };
190
224
  var v2SettingsToLegacyBlock = (blockWithSettings) => {
191
225
  const settings = legacyBlockToV2Settings(blockWithSettings);
@@ -211,6 +245,8 @@ var v2SettingsToLegacyBlock = (blockWithSettings) => {
211
245
  next.contentGradientAngle = settings.appearance.contentGradientAngle;
212
246
  next.textHeadingAlign = settings.typography.headingAlign;
213
247
  next.textBodyAlign = settings.typography.bodyAlign;
248
+ next.textHeadingSizePt = settings.typography.headingSizePt;
249
+ next.textBodySizePt = settings.typography.bodySizePt;
214
250
  next.textMaxWidth = settings.typography.maxTextWidth;
215
251
  next.textLineHeightPreset = settings.typography.lineHeightPreset;
216
252
  next.textLetterSpacingPreset = settings.typography.letterSpacingPreset;
@@ -294,6 +294,49 @@ function configureAdmin(config) {
294
294
  }
295
295
  };
296
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
+ };
297
340
  return {
298
341
  admin: {
299
342
  css: cssPath,
@@ -335,6 +378,7 @@ function configureAdmin(config) {
335
378
  },
336
379
  ...studioEnabled ? {
337
380
  studioGlobals: {
381
+ exact: true,
338
382
  path: globalsBasePath,
339
383
  Component: {
340
384
  exportName: "AdminStudioGlobalsView",
@@ -346,10 +390,11 @@ function configureAdmin(config) {
346
390
  }
347
391
  }
348
392
  },
349
- studioPages: {
350
- path: pagesBasePath,
393
+ studioPageNew: {
394
+ exact: true,
395
+ path: `${pagesBasePath}/new`,
351
396
  Component: {
352
- exportName: "AdminStudioPagesListView",
397
+ exportName: "AdminStudioNewPageView",
353
398
  path: clientPath,
354
399
  clientProps: {
355
400
  ...studioNavClientProps,
@@ -358,6 +403,7 @@ function configureAdmin(config) {
358
403
  }
359
404
  },
360
405
  studioPageEditor: {
406
+ exact: true,
361
407
  path: `${pagesBasePath}/:id`,
362
408
  Component: {
363
409
  exportName: "AdminStudioPageEditView",
@@ -368,10 +414,11 @@ function configureAdmin(config) {
368
414
  }
369
415
  }
370
416
  },
371
- studioPageNew: {
372
- path: `${pagesBasePath}/new`,
417
+ studioPages: {
418
+ exact: true,
419
+ path: pagesBasePath,
373
420
  Component: {
374
- exportName: "AdminStudioNewPageView",
421
+ exportName: "AdminStudioPagesListView",
375
422
  path: clientPath,
376
423
  clientProps: {
377
424
  ...studioNavClientProps,
@@ -380,6 +427,7 @@ function configureAdmin(config) {
380
427
  }
381
428
  },
382
429
  studioContactForm: {
430
+ exact: true,
383
431
  path: contactFormStudioPath,
384
432
  Component: {
385
433
  exportName: "AdminStudioContactFormView",
@@ -392,7 +440,47 @@ function configureAdmin(config) {
392
440
  }
393
441
  },
394
442
  ...formsEnabled ? {
443
+ studioFormSubmission: {
444
+ exact: true,
445
+ path: `${formsBasePath}/submissions/:id`,
446
+ Component: {
447
+ exportName: "AdminStudioFormSubmissionView",
448
+ path: clientPath,
449
+ clientProps: {
450
+ ...studioNavClientProps,
451
+ formsCollectionSlug,
452
+ formSubmissionsCollectionSlug,
453
+ formUploadsCollectionSlug
454
+ }
455
+ }
456
+ },
457
+ studioFormUpload: {
458
+ exact: true,
459
+ path: `${formsBasePath}/uploads/:id`,
460
+ Component: {
461
+ exportName: "AdminStudioFormUploadView",
462
+ path: clientPath,
463
+ clientProps: {
464
+ ...studioNavClientProps,
465
+ formUploadsCollectionSlug
466
+ }
467
+ }
468
+ },
469
+ studioFormDetail: {
470
+ exact: true,
471
+ path: `${formsBasePath}/:id`,
472
+ Component: {
473
+ exportName: "AdminStudioFormDetailView",
474
+ path: clientPath,
475
+ clientProps: {
476
+ ...studioNavClientProps,
477
+ formsCollectionSlug,
478
+ formSubmissionsCollectionSlug
479
+ }
480
+ }
481
+ },
395
482
  studioForms: {
483
+ exact: true,
396
484
  path: formsBasePath,
397
485
  Component: {
398
486
  exportName: "AdminStudioFormsView",
@@ -406,10 +494,11 @@ function configureAdmin(config) {
406
494
  }
407
495
  }
408
496
  } : {},
409
- studioMedia: {
410
- path: mediaBasePath,
497
+ studioMediaItem: {
498
+ exact: true,
499
+ path: `${mediaBasePath}/:id`,
411
500
  Component: {
412
- exportName: "AdminStudioMediaView",
501
+ exportName: "AdminStudioMediaItemView",
413
502
  path: clientPath,
414
503
  clientProps: {
415
504
  ...studioNavClientProps,
@@ -417,10 +506,11 @@ function configureAdmin(config) {
417
506
  }
418
507
  }
419
508
  },
420
- studioMediaItem: {
421
- path: `${mediaBasePath}/:id`,
509
+ studioMedia: {
510
+ exact: true,
511
+ path: mediaBasePath,
422
512
  Component: {
423
- exportName: "AdminStudioMediaItemView",
513
+ exportName: "AdminStudioMediaView",
424
514
  path: clientPath,
425
515
  clientProps: {
426
516
  ...studioNavClientProps,
@@ -429,6 +519,7 @@ function configureAdmin(config) {
429
519
  }
430
520
  },
431
521
  studioTools: {
522
+ exact: true,
432
523
  path: toolsBasePath,
433
524
  Component: {
434
525
  exportName: "AdminStudioToolsView",
@@ -582,13 +673,31 @@ function configureAdmin(config) {
582
673
  return attachStudioBackBreadcrumbToCollection(mediaCollection);
583
674
  },
584
675
  wrapFormsCollection(formsCollection) {
585
- return attachStudioBackBreadcrumbToCollection(formsCollection);
676
+ return attachStudioEditRedirectToCollection(formsCollection, {
677
+ description: "Redirecting to the Studio form workspace.",
678
+ emptyHref: formsBasePath,
679
+ emptyLabel: "Open Forms",
680
+ pathBase: formsBasePath,
681
+ title: "Opening Form..."
682
+ });
586
683
  },
587
684
  wrapFormSubmissionsCollection(formSubmissionsCollection) {
588
- return attachStudioBackBreadcrumbToCollection(formSubmissionsCollection);
685
+ return attachStudioEditRedirectToCollection(formSubmissionsCollection, {
686
+ description: "Redirecting to the Studio submission workspace.",
687
+ emptyHref: formsBasePath,
688
+ emptyLabel: "Open Forms",
689
+ pathBase: `${formsBasePath}/submissions`,
690
+ title: "Opening Submission..."
691
+ });
589
692
  },
590
693
  wrapFormUploadsCollection(formUploadsCollection) {
591
- return attachStudioBackBreadcrumbToCollection(formUploadsCollection);
694
+ return attachStudioEditRedirectToCollection(formUploadsCollection, {
695
+ description: "Redirecting to the Studio upload workspace.",
696
+ emptyHref: formsBasePath,
697
+ emptyLabel: "Open Forms",
698
+ pathBase: `${formsBasePath}/uploads`,
699
+ title: "Opening Upload..."
700
+ });
592
701
  },
593
702
  wrapGlobals(globals2) {
594
703
  const labelMap = {
@@ -92,6 +92,14 @@ function NavIcon({ name }) {
92
92
  return null;
93
93
  }
94
94
  }
95
+ function LogoutIcon() {
96
+ const props = { width: iconSize, height: iconSize, viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: 2, strokeLinecap: "round", strokeLinejoin: "round", style: iconStyle };
97
+ return /* @__PURE__ */ jsxs("svg", { ...props, "aria-hidden": "true", children: [
98
+ /* @__PURE__ */ jsx("path", { d: "M15 3h4a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2h-4" }),
99
+ /* @__PURE__ */ jsx("polyline", { points: "10 17 5 12 10 7" }),
100
+ /* @__PURE__ */ jsx("line", { x1: "5", y1: "12", x2: "17", y2: "12" })
101
+ ] });
102
+ }
95
103
  function AdminShellClient({
96
104
  children,
97
105
  brandName,
@@ -103,14 +111,12 @@ function AdminShellClient({
103
111
  onLogout,
104
112
  storageKey = "orion-admin-shell-collapsed"
105
113
  }) {
106
- const [collapsed, setCollapsed] = useState(false);
114
+ const [collapsed, setCollapsed] = useState(true);
107
115
  const [loggingOut, setLoggingOut] = useState(false);
108
116
  useEffect(() => {
109
117
  try {
110
118
  const stored = window.localStorage.getItem(storageKey);
111
- if (stored === "1") {
112
- setCollapsed(true);
113
- }
119
+ setCollapsed(stored === "1");
114
120
  } catch {
115
121
  }
116
122
  }, [storageKey]);
@@ -172,7 +178,10 @@ function AdminShellClient({
172
178
  /* @__PURE__ */ jsx("div", { className: "orion-admin-user-label", children: "Signed in as" }),
173
179
  /* @__PURE__ */ jsx("div", { className: "orion-admin-user-email", children: userEmail })
174
180
  ] }) : null,
175
- /* @__PURE__ */ jsx("button", { className: "orion-admin-logout", disabled: loggingOut, onClick: handleLogout, type: "button", children: loggingOut ? "..." : "Log out" })
181
+ /* @__PURE__ */ jsxs("button", { className: "orion-admin-logout", disabled: loggingOut, onClick: handleLogout, type: "button", children: [
182
+ /* @__PURE__ */ jsx(LogoutIcon, {}),
183
+ /* @__PURE__ */ jsx("span", { children: loggingOut ? "Logging out..." : "Log out" })
184
+ ] })
176
185
  ] })
177
186
  ] }),
178
187
  /* @__PURE__ */ jsx("main", { className: "orion-admin-main", children })
@@ -7,7 +7,7 @@ import {
7
7
  layoutToStudioDocument,
8
8
  migrateBlockToSettingsV2,
9
9
  studioDocumentToLayout
10
- } from "./chunk-PF3EBZXF.mjs";
10
+ } from "./chunk-7ZMXZRBP.mjs";
11
11
  import {
12
12
  assertStudioDocumentV1,
13
13
  compileStudioDocument,
@@ -66,8 +66,52 @@ var alignOptions = [
66
66
  { label: "Right", value: "right" },
67
67
  { label: "Justify", value: "justify" }
68
68
  ];
69
- var layoutFieldSet = [];
69
+ var layoutFieldSet = [
70
+ {
71
+ group: "layout",
72
+ key: "settings.layout.linkVerticalPadding",
73
+ label: "Link Top/Bottom Padding",
74
+ tags: ["spacing", "padding", "vertical"],
75
+ type: "checkbox"
76
+ },
77
+ {
78
+ group: "layout",
79
+ key: "settings.layout.paddingTopPt",
80
+ label: "Top Padding (pt)",
81
+ max: 240,
82
+ min: 0,
83
+ tags: ["spacing", "padding", "top"],
84
+ type: "number"
85
+ },
86
+ {
87
+ group: "layout",
88
+ key: "settings.layout.paddingBottomPt",
89
+ label: "Bottom Padding (pt)",
90
+ max: 240,
91
+ min: 0,
92
+ tags: ["spacing", "padding", "bottom"],
93
+ type: "number"
94
+ }
95
+ ];
70
96
  var typographyFieldSet = [
97
+ {
98
+ group: "typography",
99
+ key: "settings.typography.headingSizePt",
100
+ label: "Heading Text Size (pt)",
101
+ max: 120,
102
+ min: 6,
103
+ tags: ["text", "size", "heading", "font"],
104
+ type: "number"
105
+ },
106
+ {
107
+ group: "typography",
108
+ key: "settings.typography.bodySizePt",
109
+ label: "Body Text Size (pt)",
110
+ max: 72,
111
+ min: 6,
112
+ tags: ["text", "size", "body", "paragraph", "font"],
113
+ type: "number"
114
+ },
71
115
  {
72
116
  group: "typography",
73
117
  key: "settings.typography.headingAlign",
@@ -284,6 +328,13 @@ var inspectorDefinitionByBlockType = {
284
328
  { group: "basics", inlineEditable: true, key: "kicker", label: "Kicker", type: "text" },
285
329
  { group: "basics", inlineEditable: true, key: "headline", label: "Headline", type: "text" },
286
330
  { group: "basics", inlineEditable: true, key: "subheadline", label: "Subheadline", type: "textarea" },
331
+ {
332
+ group: "basics",
333
+ key: "settings.marquee.itemsText",
334
+ label: "Scrolling Bar Options",
335
+ tags: ["marquee", "scrolling", "bar", "categories"],
336
+ type: "textarea"
337
+ },
287
338
  {
288
339
  group: "basics",
289
340
  key: "variant",
@@ -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-7ZMXZRBP.mjs";
9
9
  import {
10
10
  assertStudioDocumentV1
11
11
  } from "./chunk-ADIIWIYL.mjs";
@@ -2,7 +2,7 @@ import { S as StudioDocumentV1, a as StudioModuleManifest, b as StudioPageServic
2
2
  import { Payload } from 'payload';
3
3
  import { ComponentType, CSSProperties, ReactNode } from 'react';
4
4
 
5
- type InspectorGroupKey = 'advanced' | 'basics' | 'media' | 'typography';
5
+ type InspectorGroupKey = 'advanced' | 'basics' | 'layout' | 'media' | 'typography';
6
6
  type InspectorFieldType = 'checkbox' | 'color' | 'number' | 'search' | 'select' | 'text' | 'textarea';
7
7
 
8
8
  type BuilderSettingsPanelMode = 'advanced' | 'basic';
@@ -21,7 +21,9 @@ type BuilderLayoutSettingsV2 = {
21
21
  };
22
22
  type BuilderTypographySettingsV2 = {
23
23
  bodyAlign?: BuilderTextAlign;
24
+ bodySizePt?: number | null;
24
25
  headingAlign?: BuilderTextAlign;
26
+ headingSizePt?: number | null;
25
27
  letterSpacingPreset?: BuilderTypographySpacingPreset;
26
28
  lineHeightPreset?: BuilderTypographySpacingPreset;
27
29
  maxTextWidth?: 'auto' | 'full' | 'lg' | 'md' | 'sm';
@@ -2,7 +2,7 @@ import { S as StudioDocumentV1, a as StudioModuleManifest, b as StudioPageServic
2
2
  import { Payload } from 'payload';
3
3
  import { ComponentType, CSSProperties, ReactNode } from 'react';
4
4
 
5
- type InspectorGroupKey = 'advanced' | 'basics' | 'media' | 'typography';
5
+ type InspectorGroupKey = 'advanced' | 'basics' | 'layout' | 'media' | 'typography';
6
6
  type InspectorFieldType = 'checkbox' | 'color' | 'number' | 'search' | 'select' | 'text' | 'textarea';
7
7
 
8
8
  type BuilderSettingsPanelMode = 'advanced' | 'basic';
@@ -21,7 +21,9 @@ type BuilderLayoutSettingsV2 = {
21
21
  };
22
22
  type BuilderTypographySettingsV2 = {
23
23
  bodyAlign?: BuilderTextAlign;
24
+ bodySizePt?: number | null;
24
25
  headingAlign?: BuilderTextAlign;
26
+ headingSizePt?: number | null;
25
27
  letterSpacingPreset?: BuilderTypographySpacingPreset;
26
28
  lineHeightPreset?: BuilderTypographySpacingPreset;
27
29
  maxTextWidth?: 'auto' | 'full' | 'lg' | 'md' | 'sm';
package/dist/index.d.mts CHANGED
@@ -3,7 +3,7 @@ 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
- export { i as studioPages } from './index-Cv-6qnrw.mjs';
6
+ export { i as studioPages } from './index-D5zrOdyv.mjs';
7
7
  import 'payload';
8
8
  import './sitePreviewTypes-BrJwGzJj.mjs';
9
9
  import './socialMedia-C05Iy-SV.mjs';
package/dist/index.d.ts CHANGED
@@ -3,7 +3,7 @@ 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
- export { i as studioPages } from './index-Crx_MtPw.js';
6
+ export { i as studioPages } from './index-Dv-Alx4h.js';
7
7
  import 'payload';
8
8
  import './sitePreviewTypes-BrJwGzJj.js';
9
9
  import './socialMedia-C05Iy-SV.js';