@taprootio/site-authoring 0.10.3 → 0.10.7

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@taprootio/site-authoring",
3
- "version": "0.10.3",
3
+ "version": "0.10.7",
4
4
  "description": "Taproot site authoring CLI: sign in once in the browser, then pull, validate, push, preview, approve, and deploy a site from the terminal",
5
5
  "type": "module",
6
6
  "license": "ISC",
@@ -28,7 +28,7 @@
28
28
  "README.md"
29
29
  ],
30
30
  "dependencies": {
31
- "@taprootio/espalier": "4.19.0"
31
+ "@taprootio/espalier": "4.20.1"
32
32
  },
33
33
  "scripts": {
34
34
  "test": "node --test",
package/src/constants.js CHANGED
@@ -1,5 +1,5 @@
1
1
  export const CLI_NAME = "@taprootio/site-authoring";
2
- export const CLI_VERSION = "0.10.3";
2
+ export const CLI_VERSION = "0.10.7";
3
3
  export const CLI_BINARY_NAME = "taproot-site";
4
4
  export const RESULT_SCHEMA_VERSION = 1;
5
5
  export const CONFIG_FILE_NAME = "taproot-site.json";
@@ -203,14 +203,25 @@ const TESTIMONIAL = Object.freeze({
203
203
 
204
204
  /** `LatestPostsData` — resolved at generation time. */
205
205
  const LATEST_POSTS = Object.freeze({
206
- count: num({ values: Object.freeze([3, 6, 9, 12]) }),
207
- columns: num({ values: Object.freeze([2, 3, 4]) }),
206
+ count: num({
207
+ integer: true,
208
+ minimum: 1,
209
+ maximum: 12,
210
+ description: "How many posts to show, 1 to 12; a single post spans the full width.",
211
+ }),
212
+ columns: num({ values: Object.freeze([1, 2, 3, 4]) }),
208
213
  pageTypes: list(enumOf(...LATEST_POST_PAGE_TYPES)),
209
214
  showPinned: bool(),
210
215
  highlightFirst: bool(),
211
216
  showDescription: bool(),
212
217
  showDate: bool(),
213
218
  showAuthor: bool(),
219
+ borderWidth: num({
220
+ integer: true,
221
+ minimum: 0,
222
+ description: "Pixel border around each card, as on a card grid; the grid itself is never framed. 0 boxes nothing; omitted publishes 1.",
223
+ }),
224
+ bannerScheme: enumOf("auto", "light", "dark"),
214
225
  });
215
226
 
216
227
  /** `CardGridData`. `cropState` is the one genuinely optional field in types.ts. */
@@ -435,6 +446,8 @@ const COMPONENT_DEFINITIONS = Object.freeze({
435
446
  showDescription: true,
436
447
  showDate: true,
437
448
  showAuthor: false,
449
+ borderWidth: 1,
450
+ bannerScheme: "auto",
438
451
  },
439
452
  ["Keep descriptions enabled when titles alone do not make each destination clear."],
440
453
  {
@@ -446,6 +459,8 @@ const COMPONENT_DEFINITIONS = Object.freeze({
446
459
  showDescription: true,
447
460
  showDate: true,
448
461
  showAuthor: false,
462
+ borderWidth: 1,
463
+ bannerScheme: "dark",
449
464
  },
450
465
  ),
451
466
  "card-grid": component(
@@ -732,10 +732,10 @@ function renderSection(
732
732
  "--esp-section-padding-block: 0",
733
733
  );
734
734
  }
735
- if (kind === "explicit") {
736
- const decorationStyle = normalizedSectionDecorationStyle(attrs.decoration);
737
- if (decorationStyle) sectionStyleParts.push(...decorationStyle);
738
- }
735
+ // Espalier paints the decoration plane only on a section carrying the
736
+ // `decoration` attribute, so the hooks and the attribute travel together.
737
+ const decorationStyle = kind === "explicit" ? normalizedSectionDecorationStyle(attrs.decoration) : undefined;
738
+ if (decorationStyle) sectionStyleParts.push(...decorationStyle);
739
739
  const background = kind === "explicit" ? normalizeSectionBackground(attrs.background) : undefined;
740
740
  const backgroundPicture = background
741
741
  ? renderSectionBackgroundPicture(background, options.claimSectionBackgroundImage?.() === true)
@@ -773,6 +773,7 @@ function renderSection(
773
773
  "data-entrance": entrance,
774
774
  "data-entrance-stagger": entranceStagger,
775
775
  context,
776
+ decoration: decorationStyle ? true : undefined,
776
777
  style: sectionStyle,
777
778
  },
778
779
  surfaced,
@@ -51,7 +51,7 @@ import {
51
51
 
52
52
  export { getAppearanceReference, getFooterReference, getThemeReference };
53
53
 
54
- export const REFERENCE_VERSION = 24;
54
+ export const REFERENCE_VERSION = 26;
55
55
  export const PAGE_TYPES = Object.freeze(["free-form"]);
56
56
 
57
57
  function deepFreeze(value) {
@@ -177,7 +177,7 @@ const DESIGN_BLUEPRINTS = deepFreeze([
177
177
  section: { entrance: "fade", entranceStagger: "tight" },
178
178
  components: [
179
179
  { type: "image-banner", properties: { ratio: "2/1", heightMode: "ratio", contentPosition: "bottom-start", scrim: "bottom", imageMotion: "none" } },
180
- { type: "latest-posts", properties: { count: 6, columns: 3, highlightFirst: false, showDescription: true, showDate: true } },
180
+ { type: "latest-posts", properties: { count: 5, columns: 3, highlightFirst: false, showDescription: true, showDate: true, borderWidth: 1, bannerScheme: "auto" } },
181
181
  ],
182
182
  },
183
183
  {