@orion-studios/payload-studio 0.6.0-beta.4 → 0.6.0-beta.41

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 (46) hide show
  1. package/dist/admin/client.d.mts +1 -0
  2. package/dist/admin/client.d.ts +1 -0
  3. package/dist/admin/client.js +3924 -1355
  4. package/dist/admin/client.mjs +4090 -1533
  5. package/dist/admin/index.d.mts +2 -3
  6. package/dist/admin/index.d.ts +2 -3
  7. package/dist/admin/index.js +141 -1522
  8. package/dist/admin/index.mjs +2 -4
  9. package/dist/admin-app/client.js +11 -4
  10. package/dist/admin-app/client.mjs +1 -1
  11. package/dist/admin-app/index.d.mts +2 -2
  12. package/dist/admin-app/index.d.ts +2 -2
  13. package/dist/admin-app/index.mjs +4 -4
  14. package/dist/admin-app/styles.css +343 -41
  15. package/dist/admin.css +18 -2
  16. package/dist/{chunk-KPIX7OSV.mjs → chunk-2XH7X34N.mjs} +11 -4
  17. package/dist/{chunk-PF3EBZXF.mjs → chunk-7ZMXZRBP.mjs} +39 -3
  18. package/dist/chunk-JC3UV74N.mjs +1033 -0
  19. package/dist/{chunk-XKUTZ7IU.mjs → chunk-OL53KHTB.mjs} +46 -2
  20. package/dist/{chunk-EHUE4LCT.mjs → chunk-RKTIFEUY.mjs} +33 -3
  21. package/dist/chunk-W2UOCJDX.mjs +32 -0
  22. package/dist/{chunk-OTHERBGX.mjs → chunk-ZADL33R6.mjs} +1 -1
  23. package/dist/{index-bbA3HSxa.d.ts → index-BV0vEGl6.d.ts} +6 -9
  24. package/dist/{index-Cv-6qnrw.d.mts → index-D5zrOdyv.d.mts} +3 -1
  25. package/dist/{index-52HdVLQq.d.ts → index-DAdN56fM.d.ts} +1 -1
  26. package/dist/{index-DEkV-sMs.d.mts → index-DLfPOqYA.d.mts} +6 -9
  27. package/dist/{index-Crx_MtPw.d.ts → index-Dv-Alx4h.d.ts} +3 -1
  28. package/dist/{index-DEQC3Dwj.d.mts → index-G_uTNffQ.d.mts} +1 -1
  29. package/dist/index.d.mts +5 -5
  30. package/dist/index.d.ts +5 -5
  31. package/dist/index.js +287 -1542
  32. package/dist/index.mjs +6 -6
  33. package/dist/nextjs/index.js +39 -3
  34. package/dist/nextjs/index.mjs +2 -2
  35. package/dist/{sitePreviewTypes-BkHCWxNW.d.mts → sitePreviewTypes-BrJwGzJj.d.mts} +1 -1
  36. package/dist/{sitePreviewTypes-BkHCWxNW.d.ts → sitePreviewTypes-BrJwGzJj.d.ts} +1 -1
  37. package/dist/studio-pages/builder.css +24 -5
  38. package/dist/studio-pages/client.js +529 -63
  39. package/dist/studio-pages/client.mjs +529 -63
  40. package/dist/studio-pages/index.d.mts +1 -1
  41. package/dist/studio-pages/index.d.ts +1 -1
  42. package/dist/studio-pages/index.js +84 -4
  43. package/dist/studio-pages/index.mjs +2 -2
  44. package/package.json +1 -1
  45. package/dist/chunk-DYXSAVUQ.mjs +0 -2372
  46. package/dist/chunk-Z6L5K5MH.mjs +0 -64
package/dist/index.mjs CHANGED
@@ -1,22 +1,22 @@
1
1
  import {
2
2
  admin_exports
3
- } from "./chunk-DYXSAVUQ.mjs";
3
+ } from "./chunk-JC3UV74N.mjs";
4
4
  import {
5
5
  admin_app_exports
6
- } from "./chunk-EHUE4LCT.mjs";
7
- import "./chunk-Z6L5K5MH.mjs";
6
+ } from "./chunk-RKTIFEUY.mjs";
7
+ import "./chunk-W2UOCJDX.mjs";
8
8
  import {
9
9
  blocks_exports
10
10
  } from "./chunk-JQAHXYAM.mjs";
11
11
  import {
12
12
  nextjs_exports
13
- } from "./chunk-OTHERBGX.mjs";
13
+ } from "./chunk-ZADL33R6.mjs";
14
14
  import "./chunk-ZTXJG4K5.mjs";
15
15
  import {
16
16
  studio_pages_exports
17
- } from "./chunk-XKUTZ7IU.mjs";
17
+ } from "./chunk-OL53KHTB.mjs";
18
18
  import "./chunk-OQSEJXC4.mjs";
19
- import "./chunk-PF3EBZXF.mjs";
19
+ import "./chunk-7ZMXZRBP.mjs";
20
20
  import {
21
21
  studio_exports
22
22
  } from "./chunk-ADIIWIYL.mjs";
@@ -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 === "left" || block.textHeadingAlign === "center" || block.textHeadingAlign === "right" || block.textHeadingAlign === "justify" ? block.textHeadingAlign : current.typography.headingAlign;
248
- current.typography.bodyAlign = block.textBodyAlign === "left" || block.textBodyAlign === "center" || block.textBodyAlign === "right" || block.textBodyAlign === "justify" ? block.textBodyAlign : current.typography.bodyAlign;
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
- return mergeSettings(current, block.settings);
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;
@@ -5,9 +5,9 @@ import {
5
5
  createSiteQueries,
6
6
  resolveMedia,
7
7
  resolveSocialMediaLinks
8
- } from "../chunk-OTHERBGX.mjs";
8
+ } from "../chunk-ZADL33R6.mjs";
9
9
  import "../chunk-ZTXJG4K5.mjs";
10
- import "../chunk-PF3EBZXF.mjs";
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 = {
@@ -116,6 +116,12 @@ h4 {
116
116
  --orion-shell-max: 100%;
117
117
  }
118
118
 
119
+ @media (max-width: 767px) {
120
+ .orion-builder-hide-mobile {
121
+ display: none !important;
122
+ }
123
+ }
124
+
119
125
  .orion-builder-content {
120
126
  width: min(var(--orion-shell-max), calc(100% - (var(--orion-shell-inline) * 2)));
121
127
  margin-inline: auto;
@@ -256,36 +262,44 @@ h4 {
256
262
  }
257
263
 
258
264
  .hero-content {
259
- position: absolute;
260
- inset: 0;
261
265
  display: flex;
262
266
  flex-direction: column;
263
267
  justify-content: center;
264
- padding: 2rem;
268
+ inset: 0;
265
269
  max-width: 610px;
270
+ padding: 2rem;
271
+ position: absolute;
272
+ text-align: var(--orion-builder-body-align, left);
266
273
  }
267
274
 
268
275
  .hero h1 {
269
276
  font-size: clamp(2rem, 4vw, 3.1rem);
270
277
  letter-spacing: -0.02em;
271
278
  margin: 0;
279
+ text-align: var(--orion-builder-heading-align, var(--orion-builder-body-align, left));
272
280
  }
273
281
 
274
282
  .hero p {
283
+ color: color-mix(in srgb, var(--orion-studio-accent-contrast) 90%, transparent);
275
284
  margin-top: 0.75rem;
276
285
  max-width: 48ch;
277
- color: color-mix(in srgb, var(--orion-studio-accent-contrast) 90%, transparent);
286
+ text-align: var(--orion-builder-body-align, left);
278
287
  }
279
288
 
280
289
  .hero-actions {
281
290
  display: flex;
282
291
  flex-wrap: wrap;
283
292
  gap: 0.75rem;
293
+ justify-content: var(--orion-builder-actions-align, flex-start);
284
294
  margin-top: 1.1rem;
285
295
  }
286
296
 
287
297
  .hero-centered .hero-content {
288
- text-align: center;
298
+ text-align: var(--orion-builder-body-align, center);
299
+ }
300
+
301
+ .hero .kicker {
302
+ text-align: var(--orion-builder-heading-align, var(--orion-builder-body-align, left));
289
303
  }
290
304
 
291
305
  .features {
@@ -984,6 +998,11 @@ h4 {
984
998
  text-align: var(--orion-builder-heading-align, inherit);
985
999
  }
986
1000
 
1001
+ .orion-builder-content p,
1002
+ .orion-builder-content li {
1003
+ text-align: var(--orion-builder-body-align, inherit);
1004
+ }
1005
+
987
1006
  /* Builder-only override: show full testimonial copy even if host app globals clamp it. */
988
1007
  .orion-builder-shell .orion-builder-content .testimonial-quote {
989
1008
  -webkit-box-orient: initial;