riverbankcms 0.8.0 → 0.9.0
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/acceptance/matrix.mjs +3 -3
- package/dist/cli/index.mjs +817 -576
- package/dist/cli/init-docs/content/cli-reference.md +2 -0
- package/dist/cli/init-docs/content/content-management.md +3 -1
- package/dist/{eventUpsertInputSchema-BE3nSNsn.mjs → eventUpsertInputSchema-CqHIJp9H.mjs} +2 -2
- package/dist/load-config-CKBdp8M0.mjs +4 -0
- package/dist/{load-config-De0cFlPg.mjs → load-config-Cf5uPEAn.mjs} +2 -2
- package/dist/{local-sync-EcUwLrRx.mjs → local-sync-DF-2DL_D.mjs} +12 -3
- package/dist/{plan-DtQEnwCM.mjs → plan-By0bjnd3.mjs} +1 -1
- package/dist/scaffold/index.mjs +2 -2
- package/dist/{sdk-event-upsert-Bf6wAl4s.mjs → sdk-event-upsert-BNxbxaA0.mjs} +57 -28
- package/dist/{src-B8fOSKJ6.mjs → src-DbmhanBI.mjs} +76 -1
- package/dist/testing.mjs +3 -3
- package/package.json +1 -1
- package/dist/load-config-Ca13nCpT.mjs +0 -4
|
@@ -377,11 +377,13 @@ For theme and footer pushes, stale resolution updates only the metadata timestam
|
|
|
377
377
|
"homepageId": null,
|
|
378
378
|
"seoDefaults": null,
|
|
379
379
|
"logoIdentifier": "positive-play-primary-logo",
|
|
380
|
+
"logoDarkBackgroundIdentifier": "positive-play-logo-light",
|
|
380
381
|
"faviconIdentifier": "positive-play-primary-logo"
|
|
381
382
|
}
|
|
382
383
|
```
|
|
383
384
|
|
|
384
385
|
- Use `logoIdentifier` / `faviconIdentifier` to manage the site logo and favicon from the repo
|
|
386
|
+
- `logoDarkBackgroundIdentifier` is optional: a version of the logo designed for dark backgrounds. The default header and footer use it on dark surfaces; without it, `logoIdentifier` is used everywhere
|
|
385
387
|
- The identifiers should match files in `content/media/`
|
|
386
388
|
- `riverbankcms push settings` reuses the normal local-media upload flow before updating site settings, without pushing unrelated content
|
|
387
389
|
- `riverbankcms pull settings` warns and omits a branding field if the current CMS asset cannot be represented by an identifier yet
|
|
@@ -216,6 +216,7 @@ Use `content/settings.json` as the repo-managed source of truth for branding:
|
|
|
216
216
|
"homepageId": null,
|
|
217
217
|
"seoDefaults": null,
|
|
218
218
|
"logoIdentifier": "positive-play-primary-logo",
|
|
219
|
+
"logoDarkBackgroundIdentifier": "positive-play-logo-light",
|
|
219
220
|
"faviconIdentifier": "positive-play-primary-logo"
|
|
220
221
|
}
|
|
221
222
|
```
|
|
@@ -230,7 +231,8 @@ Recommended workflow:
|
|
|
230
231
|
Notes:
|
|
231
232
|
|
|
232
233
|
- `riverbankcms push settings` uploads missing branding files through the normal local-media sync path before updating site settings, without pushing unrelated content
|
|
233
|
-
- `
|
|
234
|
+
- `logoDarkBackgroundIdentifier` is optional. It names a version of your logo designed for dark backgrounds; the default header and footer draw it when they sit on a dark surface, and fall back to `logoIdentifier` when it is absent. Custom headers and footers receive both as `logoVariants`
|
|
235
|
+
- `riverbankcms pull settings` warns and omits `logoIdentifier` / `logoDarkBackgroundIdentifier` / `faviconIdentifier` if the current CMS branding asset has no media identifier yet
|
|
234
236
|
- Dashboard branding edits and CLI pushes both update the same site settings row, so treat them as last-write-wins and pull before pushing after dashboard-side edits
|
|
235
237
|
|
|
236
238
|
### Configure the booking vertical
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import { a as classifySdkEventBookingOffer, i as classifySdkEventSchedule, r as sdkEventUpsertOptionalFieldSchemas } from "./sdk-event-upsert-
|
|
3
|
-
import { l as EVENT_PRESET_VALUES } from "./src-
|
|
2
|
+
import { a as classifySdkEventBookingOffer, i as classifySdkEventSchedule, r as sdkEventUpsertOptionalFieldSchemas } from "./sdk-event-upsert-BNxbxaA0.mjs";
|
|
3
|
+
import { l as EVENT_PRESET_VALUES } from "./src-DbmhanBI.mjs";
|
|
4
4
|
import { z } from "zod";
|
|
5
5
|
|
|
6
6
|
//#region ../blocks/src/lib/typeGuards.ts
|
|
@@ -7,7 +7,7 @@ import { existsSync as existsSync$1 } from "fs";
|
|
|
7
7
|
import { fileURLToPath } from "url";
|
|
8
8
|
|
|
9
9
|
//#region package.json
|
|
10
|
-
var version = "0.
|
|
10
|
+
var version = "0.9.0";
|
|
11
11
|
var peerDependencies = { "@riverbankcms/sdk": ">=0.139.0 <1.0.0" };
|
|
12
12
|
var package_default = {
|
|
13
13
|
name: "riverbankcms",
|
|
@@ -83,7 +83,7 @@ var package_default = {
|
|
|
83
83
|
//#endregion
|
|
84
84
|
//#region src/version.ts
|
|
85
85
|
/** The package manifest is the source-run fallback; builds inject this value. */
|
|
86
|
-
const CLI_VERSION = typeof "0.
|
|
86
|
+
const CLI_VERSION = typeof "0.9.0" === "string" ? "0.9.0" : version;
|
|
87
87
|
/**
|
|
88
88
|
* The CLI's SDK peer range is bundled from the CLI manifest alongside its
|
|
89
89
|
* version. Runtime config loading uses this value as the single compatibility
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import {
|
|
3
|
-
import { A as parseFooterCompositionV1, At as unsafeAsPositiveSeconds, Bt as unsafeAsUserId, Ct as unsafeAsEventOfferingId, Dt as unsafeAsOccurrenceId, Et as unsafeAsMediaAssetId, Ft as unsafeAsSiteScopedStoragePath, Ht as ok, K as parseUtcIsoDateTimeString, Lt as unsafeAsStorageBucketName, Mt as unsafeAsSafeDownloadFilename, Nt as unsafeAsSiteFontId, Ot as unsafeAsOriginalFilename, Pt as unsafeAsSiteId, Rt as unsafeAsStoragePath, St as unsafeAsEntitlementId, Tt as unsafeAsFileChecksumSha256, Vt as err, _t as unsafeAsBookingRequirementId, a as parseVerticalId, jt as unsafeAsProductId, kt as unsafeAsPositiveByteCount, l as EVENT_PRESET_VALUES, lt as assertNever, mt as parseSiteId, o as parseVerticalPresetId, ot as fromArray,
|
|
2
|
+
import { Nt as asAppearancePresetId, S as eventBookingOfferIntentSchema, V as buttonStyleSelectionSchema, c as stableStringify, dt as themeSchema, n as sdkEventOccurrenceInputSchema } from "./sdk-event-upsert-BNxbxaA0.mjs";
|
|
3
|
+
import { A as parseFooterCompositionV1, At as unsafeAsPositiveSeconds, Bt as unsafeAsUserId, Ct as unsafeAsEventOfferingId, Dt as unsafeAsOccurrenceId, Et as unsafeAsMediaAssetId, Ft as unsafeAsSiteScopedStoragePath, Ht as ok, K as parseUtcIsoDateTimeString, Lt as unsafeAsStorageBucketName, Mt as unsafeAsSafeDownloadFilename, Nt as unsafeAsSiteFontId, Ot as unsafeAsOriginalFilename, Pt as unsafeAsSiteId, Rt as unsafeAsStoragePath, St as unsafeAsEntitlementId, Tt as unsafeAsFileChecksumSha256, Vt as err, _t as unsafeAsBookingRequirementId, a as parseVerticalId, i as canonicalizeConfiguredBookingVerticalConfig, jt as unsafeAsProductId, kt as unsafeAsPositiveByteCount, l as EVENT_PRESET_VALUES, lt as assertNever, mt as parseSiteId, o as parseVerticalPresetId, ot as fromArray, s as resolveSiteVerticalBookingConfig, st as mapNonEmptyArray, v as exposeSecret, vt as unsafeAsBookingSessionId, wt as unsafeAsEventSeriesId, xt as unsafeAsDetectedMimeType, yt as unsafeAsDeclaredMimeType, zt as unsafeAsUploadSessionId } from "./src-DbmhanBI.mjs";
|
|
4
4
|
import * as fs from "fs/promises";
|
|
5
5
|
import * as path$1 from "path";
|
|
6
6
|
import { z } from "zod";
|
|
@@ -603,6 +603,7 @@ const sdkSettingsUpdateSchema = z.object({
|
|
|
603
603
|
homepageId: z.string().nullable().optional(),
|
|
604
604
|
seoDefaults: sdkSeoDefaultsSchema.nullable().optional(),
|
|
605
605
|
logoIdentifier: z.string().min(1).nullable().optional(),
|
|
606
|
+
logoDarkBackgroundIdentifier: z.string().min(1).nullable().optional(),
|
|
606
607
|
faviconIdentifier: z.string().min(1).nullable().optional()
|
|
607
608
|
}).strict();
|
|
608
609
|
const sdkPullSettingsSchema = sdkSettingsUpdateSchema.extend({
|
|
@@ -7460,13 +7461,18 @@ const SETTINGS_BASE_FIELDS = [
|
|
|
7460
7461
|
"homepageId",
|
|
7461
7462
|
"seoDefaults"
|
|
7462
7463
|
];
|
|
7463
|
-
const SETTINGS_BRANDING_FIELDS = [
|
|
7464
|
+
const SETTINGS_BRANDING_FIELDS = [
|
|
7465
|
+
"logoIdentifier",
|
|
7466
|
+
"logoDarkBackgroundIdentifier",
|
|
7467
|
+
"faviconIdentifier"
|
|
7468
|
+
];
|
|
7464
7469
|
const SETTINGS_FIELDS = [...SETTINGS_BASE_FIELDS, ...SETTINGS_BRANDING_FIELDS];
|
|
7465
7470
|
/** Fields owned by content/settings.json. Booking configuration has its own
|
|
7466
7471
|
* mutation operation and must never enter the generic settings update input. */
|
|
7467
7472
|
const SETTINGS_FILE_FIELDS = [...SETTINGS_FIELDS, "verticalConfig"];
|
|
7468
7473
|
const SETTINGS_BRANDING_LABELS = {
|
|
7469
7474
|
logoIdentifier: "logo",
|
|
7475
|
+
logoDarkBackgroundIdentifier: "dark-background logo",
|
|
7470
7476
|
faviconIdentifier: "favicon"
|
|
7471
7477
|
};
|
|
7472
7478
|
function hasOwnSettingsField(settings, field) {
|
|
@@ -7494,6 +7500,9 @@ function buildSettingsUpdateInput(settings) {
|
|
|
7494
7500
|
case "logoIdentifier":
|
|
7495
7501
|
update.logoIdentifier = settings.logoIdentifier;
|
|
7496
7502
|
break;
|
|
7503
|
+
case "logoDarkBackgroundIdentifier":
|
|
7504
|
+
update.logoDarkBackgroundIdentifier = settings.logoDarkBackgroundIdentifier;
|
|
7505
|
+
break;
|
|
7497
7506
|
case "faviconIdentifier":
|
|
7498
7507
|
update.faviconIdentifier = settings.faviconIdentifier;
|
|
7499
7508
|
break;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import { Ht as ok, Vt as err, mt as parseSiteId } from "./src-
|
|
2
|
+
import { Ht as ok, Vt as err, mt as parseSiteId } from "./src-DbmhanBI.mjs";
|
|
3
3
|
import { existsSync, readFileSync } from "node:fs";
|
|
4
4
|
import { dirname, isAbsolute, join, parse, relative, resolve, sep } from "node:path";
|
|
5
5
|
import { fileURLToPath } from "node:url";
|
package/dist/scaffold/index.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import "../src-
|
|
3
|
-
import { a as prepareScaffoldExecution, d as loadGeneratedPackageRanges, i as preflightScaffoldTargets, l as deriveGeneratedPackageRanges, o as writeScaffoldFiles, r as preflightScaffoldPlan, s as deriveScaffoldLocalManifest, t as deriveScaffoldPlan, u as findPackageManifestPath } from "../plan-
|
|
2
|
+
import "../src-DbmhanBI.mjs";
|
|
3
|
+
import { a as prepareScaffoldExecution, d as loadGeneratedPackageRanges, i as preflightScaffoldTargets, l as deriveGeneratedPackageRanges, o as writeScaffoldFiles, r as preflightScaffoldPlan, s as deriveScaffoldLocalManifest, t as deriveScaffoldPlan, u as findPackageManifestPath } from "../plan-By0bjnd3.mjs";
|
|
4
4
|
|
|
5
5
|
export { deriveGeneratedPackageRanges, deriveScaffoldLocalManifest, deriveScaffoldPlan, findPackageManifestPath, loadGeneratedPackageRanges, preflightScaffoldPlan, preflightScaffoldTargets, prepareScaffoldExecution, writeScaffoldFiles };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import { A as parseFooterCompositionV1, Ht as ok, K as parseUtcIsoDateTimeString, M as isCanonicalRichTextDoc, P as isPresent, Vt as err, X as parseBookingTimeZone, b as stableJsonStringify, k as footerNavigationLayouts, l as EVENT_PRESET_VALUES, lt as assertNever,
|
|
2
|
+
import { A as parseFooterCompositionV1, Ht as ok, K as parseUtcIsoDateTimeString, M as isCanonicalRichTextDoc, P as isPresent, Vt as err, X as parseBookingTimeZone, b as stableJsonStringify, k as footerNavigationLayouts, l as EVENT_PRESET_VALUES, lt as assertNever, n as NAVIGATION_LOCATIONS, s as resolveSiteVerticalBookingConfig, u as ORDINARY_EVENT_PRESET_VALUES } from "./src-DbmhanBI.mjs";
|
|
3
3
|
import "node:module";
|
|
4
4
|
import { z } from "zod";
|
|
5
5
|
|
|
@@ -2658,6 +2658,37 @@ function normalizedReference(value) {
|
|
|
2658
2658
|
return normalized.length > 0 ? normalized : null;
|
|
2659
2659
|
}
|
|
2660
2660
|
|
|
2661
|
+
//#endregion
|
|
2662
|
+
//#region ../theme-core/src/surfaces/logoVariant.ts
|
|
2663
|
+
/** Concrete hex behind a plain, opaque palette token, or null otherwise. */
|
|
2664
|
+
function opaquePaletteHexForToken(expandedPalette, token) {
|
|
2665
|
+
if (!token) return null;
|
|
2666
|
+
const parts = parseColorTokenParts(token);
|
|
2667
|
+
if (parts.kind !== "token" || parts.opacityPercent !== null) return null;
|
|
2668
|
+
return expandedPalette[parts.token] ?? null;
|
|
2669
|
+
}
|
|
2670
|
+
/**
|
|
2671
|
+
* Tone of the surface a foreground token was resolved for.
|
|
2672
|
+
*
|
|
2673
|
+
* A token with opacity has no known underlay to composite against, and a raw
|
|
2674
|
+
* or unrecognised token has no palette hex, so both are `unknown` rather than
|
|
2675
|
+
* a guess.
|
|
2676
|
+
*/
|
|
2677
|
+
function surfaceToneFromForegroundToken(expandedPalette, foregroundToken) {
|
|
2678
|
+
const hex = opaquePaletteHexForToken(expandedPalette, foregroundToken);
|
|
2679
|
+
if (!hex) return "unknown";
|
|
2680
|
+
return featuresFromHex(hex).Y >= .5 ? "dark" : "light";
|
|
2681
|
+
}
|
|
2682
|
+
/**
|
|
2683
|
+
* The logo to draw on a surface of the given tone. A missing variant falls
|
|
2684
|
+
* back to the other one, and an unknown tone uses the light-backgrounds logo,
|
|
2685
|
+
* which is what every site rendered before variants existed.
|
|
2686
|
+
*/
|
|
2687
|
+
function selectLogoVariant(tone, variants) {
|
|
2688
|
+
const { forLightBackgrounds, forDarkBackgrounds } = variants;
|
|
2689
|
+
return tone === "dark" ? forDarkBackgrounds ?? forLightBackgrounds : forLightBackgrounds ?? forDarkBackgrounds;
|
|
2690
|
+
}
|
|
2691
|
+
|
|
2661
2692
|
//#endregion
|
|
2662
2693
|
//#region ../theme-core/src/utils/colorStyles.ts
|
|
2663
2694
|
const COLOR_VAR_PREFIX = "--tb-";
|
|
@@ -2733,18 +2764,30 @@ function backgroundColorStyle(token) {
|
|
|
2733
2764
|
return { backgroundColor: rgbColorValue(token) };
|
|
2734
2765
|
}
|
|
2735
2766
|
/**
|
|
2736
|
-
*
|
|
2767
|
+
* Converts a text color token to a CSS color value that follows the enclosing
|
|
2768
|
+
* surface. The semantic text tokens (`text`, `heading`, `mutedText`) resolve
|
|
2769
|
+
* to the surface foreground variables, so text adapts when a section's
|
|
2770
|
+
* background changes; any other token is a fixed theme color.
|
|
2737
2771
|
*
|
|
2738
2772
|
* @param token - Theme color token
|
|
2739
|
-
* @returns
|
|
2773
|
+
* @returns CSS color value
|
|
2740
2774
|
*/
|
|
2741
|
-
function
|
|
2775
|
+
function textColorValue(token) {
|
|
2742
2776
|
const parsed = parseToken(token);
|
|
2743
2777
|
const surfaceRole = parsed.raw ? null : surfaceRoleForTextToken(parsed.token);
|
|
2744
|
-
if (surfaceRole) {
|
|
2745
|
-
return
|
|
2778
|
+
if (!surfaceRole) {
|
|
2779
|
+
return rgbColorValue(token);
|
|
2746
2780
|
}
|
|
2747
|
-
return
|
|
2781
|
+
return parsed.opacityPercent === undefined ? surfaceForegroundValue(surfaceRole) : surfaceForegroundValueWithOpacity(surfaceRole, parsed.opacityPercent);
|
|
2782
|
+
}
|
|
2783
|
+
/**
|
|
2784
|
+
* Creates a text color style object from a theme token.
|
|
2785
|
+
*
|
|
2786
|
+
* @param token - Theme color token
|
|
2787
|
+
* @returns CSSProperties with color
|
|
2788
|
+
*/
|
|
2789
|
+
function textColorStyle(token) {
|
|
2790
|
+
return { color: textColorValue(token) };
|
|
2748
2791
|
}
|
|
2749
2792
|
/**
|
|
2750
2793
|
* Creates a border color style object from a theme token.
|
|
@@ -6930,7 +6973,7 @@ function parseThemeForPersistence(value) {
|
|
|
6930
6973
|
* overriding the twelve styles that deliberately declare none. Whether a button
|
|
6931
6974
|
* carries a trailing affordance is the style's decision; the only caller that
|
|
6932
6975
|
* legitimately opts out is the authored-button renderer, which reaches it
|
|
6933
|
-
* through `
|
|
6976
|
+
* through `themeButtonExtraClassesWithTrailingIcon`.
|
|
6934
6977
|
*/
|
|
6935
6978
|
const AFFORDANCE_SUPPRESS_CLASS = "rb-affordance-off";
|
|
6936
6979
|
|
|
@@ -6970,19 +7013,10 @@ function themeButtonSelector(variant, size) {
|
|
|
6970
7013
|
}
|
|
6971
7014
|
return `${baseSelector}.${themeButtonSizeClassName(size)}`;
|
|
6972
7015
|
}
|
|
6973
|
-
function themeButtonClassName(spec) {
|
|
6974
|
-
const classes = [
|
|
6975
|
-
...themeButtonVariantClassNames(spec.variant),
|
|
6976
|
-
themeButtonSizeClassName(spec.size),
|
|
6977
|
-
spec.extraClassName
|
|
6978
|
-
];
|
|
6979
|
-
return classes.filter(Boolean).join(" ");
|
|
6980
|
-
}
|
|
6981
7016
|
/**
|
|
6982
|
-
*
|
|
7017
|
+
* Extra classes for an authored button that renders its own trailing icon.
|
|
6983
7018
|
*
|
|
6984
|
-
*
|
|
6985
|
-
* there is exactly one caller and it should stay visible in a diff. The name
|
|
7019
|
+
* This intent-named function has exactly one caller. The name
|
|
6986
7020
|
* states what the caller knows to be true of its own markup — that it renders a
|
|
6987
7021
|
* trailing icon — rather than what the theme does about it. The consequence is
|
|
6988
7022
|
* the theme's to decide and to change; a caller naming the consequence would be
|
|
@@ -6993,11 +7027,8 @@ function themeButtonClassName(spec) {
|
|
|
6993
7027
|
* affordance is declared by the button style, and a block overriding that is the
|
|
6994
7028
|
* defect this replaced.
|
|
6995
7029
|
*/
|
|
6996
|
-
function
|
|
6997
|
-
return
|
|
6998
|
-
...spec,
|
|
6999
|
-
extraClassName: [spec.extraClassName, AFFORDANCE_SUPPRESS_CLASS].filter(Boolean).join(" ")
|
|
7000
|
-
});
|
|
7030
|
+
function themeButtonExtraClassesWithTrailingIcon() {
|
|
7031
|
+
return AFFORDANCE_SUPPRESS_CLASS;
|
|
7001
7032
|
}
|
|
7002
7033
|
|
|
7003
7034
|
//#endregion
|
|
@@ -28678,9 +28709,7 @@ function isNavUnderlineEffect(effect) {
|
|
|
28678
28709
|
}
|
|
28679
28710
|
/** Concrete hex behind a plain palette token, or null when it is not one. */
|
|
28680
28711
|
function paletteHexForToken(theme, token) {
|
|
28681
|
-
|
|
28682
|
-
if (parts.kind !== "token" || parts.opacityPercent !== null) return null;
|
|
28683
|
-
return expandPalette(theme.palette)[parts.token] ?? null;
|
|
28712
|
+
return opaquePaletteHexForToken(expandPalette(theme.palette), token);
|
|
28684
28713
|
}
|
|
28685
28714
|
function compileHeaderScrollTreatment(theme, recipe, foregroundToken) {
|
|
28686
28715
|
if (recipe.scrollTreatment !== "contrast-glass") return undefined;
|
|
@@ -32848,4 +32877,4 @@ function parseSdkEventRunUpsertInput(input, runIndex, options) {
|
|
|
32848
32877
|
}
|
|
32849
32878
|
|
|
32850
32879
|
//#endregion
|
|
32851
|
-
export { generateBaseInteractiveCSS as $,
|
|
32880
|
+
export { generateBaseInteractiveCSS as $, parseBlockColorToken as $n, NAV_LINK_BORDER_RADIUS_MAP as $t, getGradientPreset as A, buildThemeTokens as An, resolveThemeColorReferenceValue as At, generateCssVars as B, surfaceForegroundValue as Bn, eyebrowTreatmentValues as Bt, retargetCompiledBoundaryRuntimeForContentAdjacency as C, textColorStyle as Cn, MQ_MD_DOWN as Ct, compileTransitionRuntime as D, resolveSurfaceForeground as Dn, headerVariantValues as Dt, getCuratedSiteStyle as E, surfaceToneFromForegroundToken as En, MQ_TABLET_ONLY as Et, parseBackgroundAppearanceColorToken as F, hexToRgb as Fn, assertNever$1 as Ft, resolvedButtonColourDeclarations as G, mediaIdentifierSchema as Gn, offeringsPreviewCompositionTreatmentValues as Gt, PUBLIC_BUTTON_ROLES as H, cardRoleSchema as Hn, headingDecorationColorTokenValues as Ht, defineBlockDesignMetadata as I, oklchToHexGamut as In, defineBlockDesignCapability as It, contextualButtonSurfaceStyles as J, persistableMediaSchema as Jn, visibleHeadingDecorationFamilyValues as Jt, resolvedButtonFocusDeclarations as K, mediaSchema as Kn, testimonialsCompositionTreatmentValues as Kt, require_jsx_runtime as L, DEFAULT_SURFACE_TEXT_COLOR as Ln, defineFrameCapability as Lt, boundaryRuntimeMetricsForTransition as M, ORDINARY_TEXT_MIN_CONTRAST_RATIO as Mn, pageDesignEditorBackgroundOverrideOwner as Mt, backgroundAppearanceColorTokenNames as N, contrastRatio as Nn, asAppearancePresetId as Nt, gradientToCss as O, isOnColorBackgroundCandidateToken as On, isCssColorLiteral as Ot, backgroundAppearanceQuickColorTokenNames as P, featuresFromHex as Pn, asDesignBlockId as Pt, generateEffectsCSS as Q, unsafeAsOpaqueButtonColourToken as Qn, parseCustomCssRules as Qt, require_react as R, surfaceForegroundDeclarations as Rn, defineNoBlockDesignCapability as Rt, eventBookingOfferIntentSchema as S, rgbColorValue as Sn, MQ_LG_UP as St, readHeaderNavFontSizePreference as T, selectLogoVariant as Tn, MQ_SM_UP as Tt, generateButtonCss as U, cardVariantRoleValues as Un, introCompositionTreatmentValues as Ut, buttonStyleSelectionSchema as V, generateShadowValue$1 as Vn, featureCardCompositionTreatmentValues as Vt, RESOLVED_BUTTON_DISABLED_DECLARATIONS as W, normalizeCardRole as Wn, makeBoundaryId as Wt, resolveContextualButtonRole as X, VARIANT_ROLES as Xn, getComponentShadowVar as Xt, deriveButtonSurfaceContext as Y, footerModeSchema as Yn, getComponentBorderWidthPx as Yt, generateDefaultButtonSystem as Z, buttonVariantIdSchema as Zn, parseBlockCustomCssRules as Zt, entryIdentifierForCommand as _, TokenResolver as _n, renderHeaderPaintTargetRules as _t, classifySdkEventBookingOffer as a, INPUT_FONT_SIZE_MAP as an, createEventSeriesRef as ar, parseThemeForPersistence as at, pagePathForCommand as b, cssVarValue as bn, BREAKPOINT_SM as bt, stableStringify as c, ACCORDION_OPEN_ACCENT_THICKNESS as cn, createNavigationRef as cr, generateShadowValue as ct, mapEventCommandContent as d, ACCORDION_TRIGGER_LETTER_SPACING as dn, createVenueRef as dr, themeSchema as dt, NAV_LINK_LETTER_SPACING_MAP as en, createBlockRef as er, generateInteractiveChildInheritanceCSS as et, evaluateSiteCommandBatchExposure as f, ICON_CONFIG as fn, refSlug as fr, boxBackgroundOverlaySchema as ft, blockOrderIdentifiersForCommand as g, generateCardCss as gn, getHeaderPaintTargets as gt, blockIdentifierForCommand as h, getDefaultCardVariants as hn, generateMobileOverlayBackdropFilterFix as ht, classifySdkEventSchedule as i, FONT_WEIGHT_MAP$1 as in, createEventCategoryRef as ir, themeButtonVariantClassNames as it, parseGradientPresetId as j, defaultThemeTokens as jn, resolveTokenOrCssColorValue as jt, GRADIENT_PRESET_IDS as k, onColorTokenName as kn, resolveOnColorForThemeToken as kt, createDryRunReport as l, ACCORDION_SPACING_MAP as ln, createPageRef as lr, expandPalette as lt, getSiteCommandMetadata as m, generateCardCoreCss as mn, __toESM as mr, generateHeaderScrollTreatmentStyles as mt, sdkEventOccurrenceInputSchema as n, NAV_LINK_PADDING_X_MAP as nn, createCommandRef as nr, themeButtonExtraClassesWithTrailingIcon as nt, venueManagementFields as o, INPUT_SPACING_MAP as on, createFooterRef as or, compileButtonColourStates as ot, evaluateSiteCommandExposure as p, ICON_SIZE_PX as pn, slugPart as pr, boxBackgroundSchema as pt, contextualButtonSurfaceResetStyles as q, mediaTypeDiscriminants as qn, tileTreatmentValues as qt, sdkEventUpsertOptionalFieldSchemas as r, NAV_LINK_TEXT_SIZE_MAP as rn, createContentEntryRef as rr, themeButtonSizeClassName as rt, sortRecord as s, LABEL_FONT_SIZE_MAP as sn, createFormRef as sr, formatButtonColourContractError as st, classifySdkEventTiming as t, NAV_LINK_PADDING_MAP as tn, createBlocksRef as tr, parseThemeButtonVariantId as tt, parseAndPlanCommandBatchForTypes as u, ACCORDION_TRIGGER_FONT_SCALE as un, createSiteCommandSiteRef as ur, getTextColorForBackground as ut, pageIdentifierForBlockCommand as v, backgroundColorStyle as vn, BREAKPOINT_LG as vt, mergeHeaderNavTypographyPreference as w, textColorValue as wn, MQ_SM_DOWN as wt, hasConfiguredBookingVertical as x, mergeStyles as xn, BREAKPOINT_XL as xt, pageIdentifierForCommand as y, borderColorStyle as yn, BREAKPOINT_MD as yt, pickShadeTowardBackground as z, surfaceForegroundStyle as zn, eventListTreatmentValues as zt };
|
|
@@ -7008,4 +7008,79 @@ function parseSiteNavigationLocations(rows) {
|
|
|
7008
7008
|
}
|
|
7009
7009
|
|
|
7010
7010
|
//#endregion
|
|
7011
|
-
|
|
7011
|
+
//#region ../core/src/event-preset-vocabulary.ts
|
|
7012
|
+
const EVENT_PRESET_VOCABULARY = {
|
|
7013
|
+
event: {
|
|
7014
|
+
label: "Event",
|
|
7015
|
+
pluralLabel: "Events",
|
|
7016
|
+
description: "Any event, repeating or manually dated, that does not fit the other categories."
|
|
7017
|
+
},
|
|
7018
|
+
class: {
|
|
7019
|
+
label: "Class",
|
|
7020
|
+
pluralLabel: "Classes",
|
|
7021
|
+
description: "Regular scheduled classes and group sessions."
|
|
7022
|
+
},
|
|
7023
|
+
course: {
|
|
7024
|
+
label: "Course",
|
|
7025
|
+
pluralLabel: "Courses",
|
|
7026
|
+
description: "A fixed set of dates that people book together."
|
|
7027
|
+
},
|
|
7028
|
+
term: {
|
|
7029
|
+
label: "Term",
|
|
7030
|
+
pluralLabel: "Terms",
|
|
7031
|
+
description: "A fixed term of sessions that people book together."
|
|
7032
|
+
},
|
|
7033
|
+
workshop: {
|
|
7034
|
+
label: "Workshop",
|
|
7035
|
+
pluralLabel: "Workshops",
|
|
7036
|
+
description: "One-off workshops, day sessions, or special events."
|
|
7037
|
+
},
|
|
7038
|
+
retreat: {
|
|
7039
|
+
label: "Retreat",
|
|
7040
|
+
pluralLabel: "Retreats",
|
|
7041
|
+
description: "Multi-day or residential immersive experiences."
|
|
7042
|
+
},
|
|
7043
|
+
performance: {
|
|
7044
|
+
label: "Performance",
|
|
7045
|
+
pluralLabel: "Performances",
|
|
7046
|
+
description: "Audience-facing shows, concerts, recitals, or showcases."
|
|
7047
|
+
}
|
|
7048
|
+
};
|
|
7049
|
+
|
|
7050
|
+
//#endregion
|
|
7051
|
+
//#region ../core/src/event-catalogue.ts
|
|
7052
|
+
/** Accepts validated settings; defaults and raw configuration parsing belong to the caller. */
|
|
7053
|
+
function resolveEventCatalogue(settings) {
|
|
7054
|
+
const entries = (settings.verticalConfig?.selectedPresetIds ?? []).map(getVerticalPresetDefinition).filter(isEventSeriesVerticalPresetDefinition).map((preset) => ({
|
|
7055
|
+
preset: eventPresetForVerticalPreset(preset),
|
|
7056
|
+
verticalPresetId: preset.id,
|
|
7057
|
+
label: preset.label,
|
|
7058
|
+
pluralLabel: preset.pluralLabel,
|
|
7059
|
+
description: preset.description
|
|
7060
|
+
}));
|
|
7061
|
+
if (entries.length > 0) return {
|
|
7062
|
+
source: "business_profile",
|
|
7063
|
+
entries,
|
|
7064
|
+
catchAll: "implicit"
|
|
7065
|
+
};
|
|
7066
|
+
return {
|
|
7067
|
+
source: "generic",
|
|
7068
|
+
entries: settings.eventTypePresets.filter((preset) => preset !== "event").map((preset) => ({
|
|
7069
|
+
preset,
|
|
7070
|
+
verticalPresetId: null,
|
|
7071
|
+
...EVENT_PRESET_VOCABULARY[preset]
|
|
7072
|
+
})),
|
|
7073
|
+
catchAll: settings.eventTypePresets.includes("event") ? "selected" : "unavailable"
|
|
7074
|
+
};
|
|
7075
|
+
}
|
|
7076
|
+
/** Named choices retain authored order; catch-all is consistently last. */
|
|
7077
|
+
function eventCatalogueChoices(catalogue) {
|
|
7078
|
+
return catalogue.catchAll === "unavailable" ? catalogue.entries : [...catalogue.entries, {
|
|
7079
|
+
preset: "event",
|
|
7080
|
+
verticalPresetId: null,
|
|
7081
|
+
...EVENT_PRESET_VOCABULARY.event
|
|
7082
|
+
}];
|
|
7083
|
+
}
|
|
7084
|
+
|
|
7085
|
+
//#endregion
|
|
7086
|
+
export { formatEventPricing as $, parseFooterCompositionV1 as A, unsafeAsPositiveSeconds as At, formatBookingTime as B, unsafeAsUserId as Bt, parseMailingListContentVersionId as C, unsafeAsEventOfferingId as Ct, DEFAULT_MAILING_LIST_SUCCESS_MESSAGE as D, unsafeAsOccurrenceId as Dt, planMailingListChoicePresentation as E, unsafeAsMediaAssetId as Et, normalizeLocationAddressText as F, unsafeAsSiteScopedStoragePath as Ft, getLocalScheduleTime as G, formatLocalScheduleTime as H, ok as Ht, toLocationCoordinates as I, unsafeAsStaffMemberId as It, toScheduledBookingDateRange as J, parseUtcIsoDateTimeString as K, buildBookingUtcDateWindow as L, unsafeAsStorageBucketName as Lt, isCanonicalRichTextDoc as M, unsafeAsSafeDownloadFilename as Mt, assertAllowedPublicUrl as N, unsafeAsSiteFontId as Nt, parseMailingListProviderScope as O, unsafeAsOriginalFilename as Ot, isPresent as P, unsafeAsSiteId as Pt, formatBookingPriceDisplay as Q, formatBookingDate as R, unsafeAsStoragePath as Rt, parseMailingListBlockId as S, unsafeAsEntitlementId as St, parseMailingListRuntimeContext as T, unsafeAsFileChecksumSha256 as Tt, getBookingLocalDateKey as U, formatLocalScheduleDate as V, err as Vt, getLocalScheduleDate as W, parseBookingTimeZone as X, toScheduledBookingDateTime as Y, parseEventPageSurfaceSubject as Z, createSecret as _, unsafeAsBookingRequirementId as _t, parseVerticalId as a, resolvePricingOptionsPriceDisplay as at, stableJsonStringify as b, unsafeAsDemoCapability as bt, DEFAULT_EVENT_TYPE_PRESETS as c, formatCurrencyAmount as ct, SURFACE_EVENT_PRESET_VALUES as d, parseEventSeriesId as dt, isPublicEventPricingOptionDisplayable as et, WHOLE_SERIES_EVENT_PRESET_VALUES as f, parseMediaAssetId as ft, resolveWholeSeriesBookingPhase as g, unsafeAsAppointmentResourceId as gt, orderedLiveRunSessions as h, parseUserId as ht, canonicalizeConfiguredBookingVerticalConfig as i, resolveExactOrFreePriceDisplay as it, parseMailingListPlacementTargeting as j, unsafeAsProductId as jt, footerNavigationLayouts as k, unsafeAsPositiveByteCount as kt, EVENT_PRESET_VALUES as l, assertNever as lt, CANCELLED_SESSION_STATUS as m, parseSiteId as mt, NAVIGATION_LOCATIONS as n, publicEventPricingDisplay as nt, parseVerticalPresetId as o, fromArray as ot, publicReadFreshnessSeconds as p, parsePageId as pt, toBookingTimeZone as q, areConfiguredBookingVerticalConfigsEqual as r, publicEventPricingType as rt, resolveSiteVerticalBookingConfig as s, mapNonEmptyArray as st, resolveEventCatalogue as t, publicEventPricingCurrency as tt, ORDINARY_EVENT_PRESET_VALUES as u, parseApiKeyId as ut, exposeSecret as v, unsafeAsBookingSessionId as vt, parseMailingListSignedSourceToken as w, unsafeAsEventSeriesId as wt, buildMailingListSignupBlockSourceRef as x, unsafeAsDetectedMimeType as xt, parseManagementKey as y, unsafeAsDeclaredMimeType as yt, formatBookingDateParts as z, unsafeAsUploadSessionId as zt };
|
package/dist/testing.mjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import "./sdk-event-upsert-
|
|
3
|
-
import "./src-
|
|
4
|
-
import { n as syncLocalMediaForPush, r as syncLocalMediaForPull, y as writeMediaManifest } from "./local-sync-
|
|
2
|
+
import "./sdk-event-upsert-BNxbxaA0.mjs";
|
|
3
|
+
import "./src-DbmhanBI.mjs";
|
|
4
|
+
import { n as syncLocalMediaForPush, r as syncLocalMediaForPull, y as writeMediaManifest } from "./local-sync-DF-2DL_D.mjs";
|
|
5
5
|
|
|
6
6
|
export { syncLocalMediaForPull, syncLocalMediaForPush, writeMediaManifest };
|
package/package.json
CHANGED