@taprootio/site-authoring 0.10.3 → 0.10.8
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
|
+
"version": "0.10.8",
|
|
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.
|
|
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.
|
|
2
|
+
export const CLI_VERSION = "0.10.8";
|
|
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";
|
|
@@ -157,6 +157,10 @@ const CTA = Object.freeze({
|
|
|
157
157
|
}),
|
|
158
158
|
imagePosition: enumOf("top", "left", "right"),
|
|
159
159
|
mediaImage: image(),
|
|
160
|
+
// TR00890: "waitlist" replaces the link button with an email-capture form
|
|
161
|
+
// that posts to the platform's public waitlist endpoint. buttonUrl is
|
|
162
|
+
// ignored in that mode; buttonText becomes the submit button's label.
|
|
163
|
+
formMode: enumOf("none", "waitlist"),
|
|
160
164
|
});
|
|
161
165
|
|
|
162
166
|
/** `FeatureGridData`. */
|
|
@@ -203,14 +207,25 @@ const TESTIMONIAL = Object.freeze({
|
|
|
203
207
|
|
|
204
208
|
/** `LatestPostsData` — resolved at generation time. */
|
|
205
209
|
const LATEST_POSTS = Object.freeze({
|
|
206
|
-
count: num({
|
|
207
|
-
|
|
210
|
+
count: num({
|
|
211
|
+
integer: true,
|
|
212
|
+
minimum: 1,
|
|
213
|
+
maximum: 12,
|
|
214
|
+
description: "How many posts to show, 1 to 12; a single post spans the full width.",
|
|
215
|
+
}),
|
|
216
|
+
columns: num({ values: Object.freeze([1, 2, 3, 4]) }),
|
|
208
217
|
pageTypes: list(enumOf(...LATEST_POST_PAGE_TYPES)),
|
|
209
218
|
showPinned: bool(),
|
|
210
219
|
highlightFirst: bool(),
|
|
211
220
|
showDescription: bool(),
|
|
212
221
|
showDate: bool(),
|
|
213
222
|
showAuthor: bool(),
|
|
223
|
+
borderWidth: num({
|
|
224
|
+
integer: true,
|
|
225
|
+
minimum: 0,
|
|
226
|
+
description: "Pixel border around each card, as on a card grid; the grid itself is never framed. 0 boxes nothing; omitted publishes 1.",
|
|
227
|
+
}),
|
|
228
|
+
bannerScheme: enumOf("auto", "light", "dark"),
|
|
214
229
|
});
|
|
215
230
|
|
|
216
231
|
/** `CardGridData`. `cropState` is the one genuinely optional field in types.ts. */
|
|
@@ -348,10 +363,12 @@ const COMPONENT_DEFINITIONS = Object.freeze({
|
|
|
348
363
|
borderWidth: 0,
|
|
349
364
|
imagePosition: "top",
|
|
350
365
|
mediaImage: null,
|
|
366
|
+
formMode: "none",
|
|
351
367
|
},
|
|
352
368
|
[
|
|
353
369
|
"Button text must describe its action or destination.",
|
|
354
370
|
"Give meaningful media a descriptive alt value and decorative media an empty alt value.",
|
|
371
|
+
"formMode \"waitlist\" renders an email-capture form instead of the link button; leave buttonUrl empty and use buttonText for the submit label.",
|
|
355
372
|
],
|
|
356
373
|
{
|
|
357
374
|
heading: "Ready to begin?",
|
|
@@ -435,6 +452,8 @@ const COMPONENT_DEFINITIONS = Object.freeze({
|
|
|
435
452
|
showDescription: true,
|
|
436
453
|
showDate: true,
|
|
437
454
|
showAuthor: false,
|
|
455
|
+
borderWidth: 1,
|
|
456
|
+
bannerScheme: "auto",
|
|
438
457
|
},
|
|
439
458
|
["Keep descriptions enabled when titles alone do not make each destination clear."],
|
|
440
459
|
{
|
|
@@ -446,6 +465,8 @@ const COMPONENT_DEFINITIONS = Object.freeze({
|
|
|
446
465
|
showDescription: true,
|
|
447
466
|
showDate: true,
|
|
448
467
|
showAuthor: false,
|
|
468
|
+
borderWidth: 1,
|
|
469
|
+
bannerScheme: "dark",
|
|
449
470
|
},
|
|
450
471
|
),
|
|
451
472
|
"card-grid": component(
|
|
@@ -732,10 +732,10 @@ function renderSection(
|
|
|
732
732
|
"--esp-section-padding-block: 0",
|
|
733
733
|
);
|
|
734
734
|
}
|
|
735
|
-
|
|
736
|
-
|
|
737
|
-
|
|
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,
|
package/src/reference-help.js
CHANGED
|
@@ -51,7 +51,7 @@ import {
|
|
|
51
51
|
|
|
52
52
|
export { getAppearanceReference, getFooterReference, getThemeReference };
|
|
53
53
|
|
|
54
|
-
export const REFERENCE_VERSION =
|
|
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:
|
|
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
|
{
|