riverbankcms 0.25.0 → 0.26.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 +354 -221
- package/dist/{entryCommands-nATGxgma.mjs → entryCommands-61TwBBCA.mjs} +11 -3
- package/dist/{eventUpsertInputSchema-XRzH6yFb.mjs → eventUpsertInputSchema-zAAQrjXE.mjs} +2 -2
- package/dist/{load-config-DwiS-Ibn.mjs → load-config-C7Ght4_r.mjs} +2 -2
- package/dist/load-config-DAdJwh-i.mjs +4 -0
- package/dist/{plan-ChNV88KF.mjs → plan-DB3FQqwH.mjs} +1 -1
- package/dist/scaffold/index.mjs +2 -2
- package/dist/{sdk-event-upsert-4t4e1z-h.mjs → sdk-event-upsert-CH3xwzuX.mjs} +2743 -884
- package/dist/{src-LhtqTjH7.mjs → src-DsR6-gBQ.mjs} +1 -1
- package/dist/testing.mjs +4 -4
- package/package.json +1 -1
- package/dist/load-config-zu397zDX.mjs +0 -4
package/dist/cli/index.mjs
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import { $ as createFormRef, $
|
|
3
|
-
import { $ as mapDrawingSchema, $n as ok, $t as isNonNegativeWholeCents$1, A as assessMailingListTargeting, At as addIntervalPreservingMonthAnchor, Bt as parseEventPageSurfaceSubject, C as exposeSecret, Ct as toScheduledBookingDateTime, D as parseMailingListContentVersionId, Dt as isLiveOrderInstalmentPlanStatus, E as parseMailingListBlockId, En as unsafeAsCheckoutLineId, Et as validateBookingPaymentOptionKinds, F as parseMailingListPlacementTargeting, Fn as unsafeAsMediaAssetId, Ft as omitZeroAmountFutureRows, G as locationMapLinks, Gt as publicEventPricingDisplay, H as assertAllowedPublicUrl, Ht as formatEventPricing, I as DEFAULT_MAILING_LIST_TARGETING, In as unsafeAsOccurrenceId, It as splitAmountWithRemainderInFirst, J as parseLocationValue, Jt as resolveExactOrFreePriceDisplay, K as locationValueSchema, Kt as publicEventPricingOptions, L as planMailingListChoicePresentation, Lt as resolveFlexibleBalanceDueAt, M as parseMailingListProviderScope, Mt as getBookingInstalmentDepositRefundability, N as parseFooterCompositionV1, Nt as getBookingInstalmentPlanIntervalCount, O as parseMailingListSignedSourceToken, On as unsafeAsDemoCapability, Ot as isSettleableFlexibleBalanceContractStatus, Pt as getBookingInstalmentProtectedDepositAmountCents, Qn as err, Qt as mapReadonlyNonEmptyArray, R as isCanonicalRichTextDoc, Rn as unsafeAsPassId, Rt as resolveFlexibleBalanceInitialPaymentCents, S as createSecret, Sn as parseUserId, St as toBookingTimeZone, T as slugify, U as decideLocationSave, Ut as isPublicEventPricingOptionDisplayable, V as parseWeeklyOpeningHours, Vn as unsafeAsPricingOptionId, Vt as formatBookingPriceDisplay, Wt as publicEventPricingCurrency, X as publicLocationSchema$1, Xt as fromArray, Y as projectPublicLocation, Yt as resolvePricingOptionsPriceDisplay, Z as toLocationCoordinates, _ as CANCELLED_SESSION_STATUS, _n as parseMembershipId, _t as parseBookingLocalDate, a as NAVIGATION_LOCATIONS, an as unsafeAsPositiveCents, at as formatTime$1, b as resolveWholeSeriesBookingPhase, bn as parseSiteId, bt as resolveBookingBusinessTimeZone, cn as assertNever, ct as resolveBookingDisplayContext, dn as parseCustomerId, dt as formatLocalScheduleDate, en as parseNonNegativeCents, et as selectCategoryView, f as EVENT_PRESET_VALUES, fn as parseDatedOfferingCapacityHoldAuditRef, ft as formatLocalScheduleTime, h as WHOLE_SERIES_EVENT_PRESET_VALUES, hn as parseEventSeriesId, ht as getLocalScheduleTime, i as EVENT_PRESET_VOCABULARY, in as unsafeAsNonNegativeCents, it as formatDateTimeRange, j as DEFAULT_MAILING_LIST_SUCCESS_MESSAGE, jn as unsafeAsEventInstanceId, jt as clampConfiguredAmount, k as parseMailingListRuntimeContext, kt as isSettleableOrderInstalmentPlanStatus, ln as formatDurationUnitLabel, lt as buildBookingUtcDateWindow, m as SURFACE_EVENT_PRESET_VALUES, mt as getLocalScheduleDate, nn as toCents, nt as formatDateRange, on as formatCurrencyAmount, ot as formatTimeRange, pn as parseDatedOfferingCapacityHoldId, pt as getBookingLocalDateKey, q as normalizeLocationAddressText, qt as publicEventPricingType, rn as toNonNegativeCents, rt as formatDateTime, sn as parseCurrencyCode, st as inferSiteDateLocale, tn as parsePositiveCents, tt as formatDate, u as resolveSiteVerticalBookingConfig, un as parseApiKeyId, ut as compareLocalScheduleDates, v as nextLiveRunSessionStartMs, vt as parseLocalScheduleTime, w as parseManagementKey, wt as toUtcIsoDateTimeString, x as resolveWholeSeriesRunLifecycle, xn as parseSiteTermsVersionId, xt as resolveBookingTimeZoneId, y as orderedLiveRunSessions, yn as parseRetiredCourseId, yt as parseUtcIsoDateTimeString, z as formatOpeningHoursRows, zn as unsafeAsPositiveByteCount, zt as deriveTotalTicketQuantity } from "../src-
|
|
4
|
-
import { $ as normalizeMediaValueToIdentifierOnly, $t as createCommandContext, A as formatDiffDetail, An as getEnvPrefix, At as navigationIdentity, B as buildFieldChanges, Bn as portablePageDesignSchema, Bt as preparePushConfigTarget, C as reportFromOutcomes, Cn as requireEnvironmentWriteAuthorization, Ct as fileExists, D as normalizeRemoteHomepageReference, Dn as transportSuggestion, Dt as writeJsonFileAtomic, E as createEmptySyncResult, En as formatError, Et as writeJsonFile, F as calculatePullDiff, Fn as createManagementClient, Ft as navigationCommandItemToManagementInput, G as syncLocalMediaForPull, Gt as APPOINTMENT_SERVICE_VISIBILITY_VALUES, H as formatFieldPath, Hn as API_ENDPOINTS, Ht as extractApiErrorMessage, I as buildJsonDiff, In as ManagementApiError, It as normalizeNavigationConfigItemForCommand, J as admitBinaryWriteDestination, Jt as deriveCmsApiUrlFromDashboardUrl, K as applyLocalMediaPush, Kt as ApiRequestError, L as hasPageOperations, Ln as sdkEventScheduleSchema, Lt as applyPushConfigPlan, M as hasPendingChanges, Mn as isLocalConfigured, Mt as convertPulledFooterToLocal, N as findChangedFieldsWithValues, Nn as isRemoteConfigured, Nt as convertPulledNavigationToLocal, O as calculateDiff, On as CliExit, Ot as isMediaValue, P as formatHumanDiff, Pn as loadSdkEnvironment, Pt as convertPulledPagesToLocal, Q as normalizeMediaIdentifierInput, Qt as createClientForEnv, R as pageMetadataForUpsert, Rn as sdkSettingsUpdateSchema, Rt as createPushConfigCommand, S as planCliCommandBatchForBindings, Sn as planEnvironmentWriteAuthorization, St as ensureDir, T as executeResidualSettingsSyncPlan, Tn as ErrorCodes, Tt as readJsonFile, U as revalidateLocalMediaPushPlan, Un as ApiEnvelopeError, Ut as normalizeApiError, V as formatFieldChange, Vn as sdkConfiguredBookingVerticalConfigSchema, Vt as revalidatePushConfigPlan, Wn as unwrapResponse, Wt as isRecord$2, X as writeBinaryFileAtomic, Xt as bindRequestTimeout, Y as readStableBinaryFile, Yt as mapEnvironmentExecutionOutcomesJson, Z as sha256, Zt as confirmAction, _ as commandExecutionToReport, _n as withErrorHandling, _t as metadataFilePath, a as executeEntryCommandPlanAsReport, an as getOutputContext, at as readEntries, b as executeCompiledCliCommandPlanAsReport, bn as parseEnvironmentSelection, bt as writeMetadataFile, c as titleFromEntryData, cn as managementClientConfigFor, ct as readEventsMeta, d as unsafeAsCliEntryIdentifier, dn as parseJsonData, dt as readNavigationMeta, en as createGetCommand, et as walkLocalContentMedia, f as unsafeAsCliFormSlug, fn as parsePaginationOptions, ft as readPagesMeta, g as commandCompileFailureToReport, gn as withConfirmation, gt as ensureMetadataDir, h as mutationCounterForEffect, hn as withCommandContext, ht as writeMediaManifest, i as entrySiteCommandTypes, in as formatDateShort, it as findLegacyEntryFiles, j as formatDiffSummary, jn as getEnvironmentDebugInfo, jt as navigationIdentityMap, k as calculateFooterDiff, kt as duplicateNavigationIdentityMessage, l as unsafeAsCliBlockIdentifier, ln as mapEntryForOutput, lt as readFooterMeta, m as commandReportToSyncResult, mn as runWithInvocation, mt as readVenuesMeta, n as entryCommandCompileErrorToReport, nn as createOutputForCommand, nt as downloadMedia, o as executeEntryCommandPlanAsSyncResult, on as getOutputOnlyContext, ot as readAllMeta, p as unsafeAsCliPageIdentifier, pn as resolveCommandPath, pt as readSettingsMeta, q as prepareLocalMediaForPush, qt as createBearerAPIClient, r as entryCommandReportToSyncResult, rn as currentInvocationEnvelope, rt as extractMediaIdentifiers, s as syncResultForEntryCommandCompileError, sn as handleCommandError, st as readEventCategoriesMeta, t as compileEntryPushCommands, tn as createListCommand, tt as buildStorageUrl, u as unsafeAsCliContentTypeKey, un as parseJsonArray, ut as readFormsMeta, v as commandReportHasFailures, vn as withOutputOnlyErrorHandling, vt as metadataTargetFromEnvironment, w as mergeManySyncResults, wn as withRiverbankEnv, wt as listFiles, x as formatManagementError, xn as planEnvironmentExecution, xt as writeMetadataRecordMap, y as executeCliCommandPlan, yn as executeEnvironmentPlan, yt as readMetadataFile, zn as linkPayloadSchema, zt as loadPushConfigTarget } from "../entryCommands-
|
|
5
|
-
import { r as CLI_VERSION, t as loadConfigFile } from "../load-config-
|
|
6
|
-
import { a as RichTextDocSchema, c as isRecord$18, i as findUnfilledSentinels, n as buildEntryScaffold, o as isRichTextDoc, r as validateEntryInstance, s as isObjectRecord, t as eventUpsertInputSchema } from "../eventUpsertInputSchema-
|
|
7
|
-
import { a as prepareScaffoldExecution, c as LOCAL_PACKAGE_VENDOR_DIR, d as loadGeneratedPackageRanges, i as preflightScaffoldTargets, n as createScaffoldCompletion, s as deriveScaffoldLocalManifest, t as deriveScaffoldPlan } from "../plan-
|
|
2
|
+
import { $ as createFormRef, $r as mapDrawingStyle, An as walkAndCollectImageAttrs, Ar as introCompositionTreatmentValues, At as generateHeaderScrollTreatmentStyles, Bn as getImageUrl, Br as serializeSurfaceTree, Bt as getComponentBorderWidthPx, C as sortRecord, Cn as boxBackgroundOverlaySchema, Cr as defineBlockDesignCapability, Ct as deriveSiteStyleBlockPolicy, D as mapEventCommandContent, Dn as stripStaleTransitionStyleGroup, Dr as eyebrowTreatmentValues, Dt as getGradientPreset, En as siteChromeBackgroundOverrideOwner, Er as eventListTreatmentValues, Et as gradientToCss, F as pageIdentifierForBlockCommand, Fn as isExplicitRectCrop, Fr as toNonEmptyReadonlyArray, Ft as BREAKPOINT_MD, G as ianaTimezoneSchema, Gn as buildRenderableMediaAssetIndex, Gr as surfaceForegroundValue, Gt as themeButtonExtraClassesWithTrailingIcon, H as bookingPaymentTermsSchema, Hn as mediaSchema, Hr as surfaceForegroundDeclarations, Ht as ICON_CONFIG, I as pageIdentifierForCommand, In as parseAspectRatioValue, Ir as visibleHeadingDecorationFamilyValues, It as BREAKPOINT_SM, J as createCommandRef, Jn as mediaIdentifierSchema, Jr as backgroundColorStyle, Jt as parseThemeForPersistence, K as createBlockRef, Kn as resolveManagedMediaReference, Kr as surfaceInkDeclarations, Kt as themeButtonSizeClassName, L as pagePathForCommand, Ln as resolveMediaTransformForAspect, Lr as parseResolvedSurface, Lt as BREAKPOINT_XL, M as blockIdentifierForCommand, Mn as looksLikeUuid, Mr as offeringsPreviewCompositionTreatmentValues, Mt as getHeaderPaintTargets, N as blockOrderIdentifiersForCommand, Nn as rotateNormalizedPoint, Nr as testimonialsCompositionTreatmentValues, Nt as renderHeaderPaintTargetRules, On as collectPortableMediaReferencesFromContent, Or as featureCardCompositionTreatmentValues, Ot as parseGradientPresetId, P as entryIdentifierForCommand, Pn as normalizeWidthCandidates, Pr as tileTreatmentValues, Pt as BREAKPOINT_LG, Q as createFooterRef, Qr as textColorStyle, Qt as normalizeCardRole, R as hasConfiguredBookingVertical, Rn as getDirectImageUrlForRelativePath, Rr as parseSurfaceTree, Rt as MQ_MD_DOWN, S as venueManagementFields, Sn as sectionForegroundBackground, Sr as assertNever$10, St as resolvePublishedLook, Tn as runtimeBoxBackgroundSchema, Tr as defineNoBlockDesignCapability, Tt as compiledRuntimeStyleFieldNames, U as require_jsx_runtime, Un as persistableMediaSchema, Ur as surfaceForegroundInputFromResolved, Ut as generateDefaultButtonSystem, V as bookingPaymentCollectionOptionSchema, Vn as isSiteScopedDirectImageStoragePath, Vr as surfaceDecorationColors, Vt as getComponentShadowVar, W as require_react, Wn as runtimeMediaSchema, Wr as surfaceForegroundStyle, Wt as parseThemeButtonVariantId, X as createEventCategoryRef, Xn as parseCanonicalMediaIdentifier, Xr as mergeStyles, Xt as cardRoleSchema, Y as createContentEntryRef, Yn as buildMediaIdentifierFromFilename, Yr as borderColorStyle, Yt as renderCssDeclarations, Z as createEventSeriesRef, Zn as parseMediaIdentifier, Zr as rgbColorValue, Zt as cardVariantRoleValues, _i as __toESM, _n as deriveSectionGround, _t as resolveLookSlotSurfaces, ai as PUBLIC_BUTTON_ROLES, b as isEventVisibility, bn as resolveSectionBackground, bt as resolveEffectiveArrangement, c as customLinkSchema$1, ci as resolveSurfaceForeground, cn as generateNavLinkCSS, ct as headerLeafTextColor, d as internalLinkSchema, di as defaultThemeTokens, dr as parseSafeDownloadFilename, ei as opaqueSurfaceDeclarations, er as deriveVideoSlotPolicy, et as createNavigationRef, f as internalResolvedLinkSchema, fi as expandPalette, fn as headerNeedsPhotoShade, fr as defineBlockDesignMetadata, ft as mergeHeaderNavTypographyPreference, g as linkSchema, gi as __commonJSMin, gn as sectionFactsForContent, gr as arrangementModes, gt as resolveItemSurface, h as isResolvedInternalLinkEntityType, hi as parseBlockColorToken, hn as composeBoundary, hr as cardListKnobBlocks, ht as arrangementSlotNames, ii as resolveTokenOrCssColorValue, ir as asRecord, it as refSlug, j as eventManagementTiming, jn as deleteEnvSpecificKeys, jr as makeBoundaryId, jt as generateMobileOverlayBackdropFilterFix, kn as summarizePortableMediaReferences, kr as headingDecorationColorTokenValues, kt as themeSchema, l as entryLinkSchema$1, li as surfaceInkPublication, lr as classifyKnownMimeType, lt as transparentHeaderForegroundInput, mi as parseThemeColorToken, mn as boundaryLayout, mr as cardListFamilyBlocks, mt as arrangementLookHooks, ni as resolveOnColorForThemeToken, o as classifySdkEventBookingOffer, oi as selectLogoVariant, on as footerForegroundCandidates, or as parseRelativeStoragePath, ot as effectiveHeaderNavLinkStyle, p as internalRouteOnlyLinkSchema, pi as getTextColorForBackground, pn as headerRootPaint, pr as resolveEffectiveKnobs, pt as readHeaderNavFontSizePreference, q as createBlocksRef, qn as mediaTypeDiscriminants, qr as surfaceInkStyle, qt as themeButtonVariantClassNames, ri as resolveThemeColorReferenceValue, rr as getMimeType, rt as createVenueRef, s as RESOLVED_INTERNAL_LINK_ENTITY_TYPES, si as surfaceToneFromForegroundToken, sn as buildTextContrastShadow, sr as FILE_SIZE_LIMITS, st as headerForegroundCandidates, t as classifySdkEventTiming, ti as isCssColorLiteral, tr as resolveVideoSelectionIntentForMediaField, tt as createPageRef, u as externalLinkSchema$1, ui as TokenResolver, ur as managementMediaLibraryUploadLimitForMimeType, ut as readOpeningForegroundProjection, v as pageLinkSchema$1, vn as heroPhotoPaintsGround, vr as asDesignBlockId, vt as arrangementManifestFromVariants, w as stableStringify, wn as boxBackgroundSchema, wr as defineFrameCapability, wt as requireCuratedSiteStyle, xn as resolveSectionPhotoPlacement, xr as asSiteStyleId, xt as resolveModeArrangement, yn as parseCanonicalRuntimeBackground, yr as asLayoutVariantKey, yt as readStoredMode, z as eventCommandScheduleSchema, zn as getDirectImageUrlForSiteScopedPath, zr as resolveSurface, zt as headerVariantValues } from "../sdk-event-upsert-CH3xwzuX.mjs";
|
|
3
|
+
import { $ as mapDrawingSchema, $n as ok, $t as isNonNegativeWholeCents$1, A as assessMailingListTargeting, At as addIntervalPreservingMonthAnchor, Bt as parseEventPageSurfaceSubject, C as exposeSecret, Ct as toScheduledBookingDateTime, D as parseMailingListContentVersionId, Dt as isLiveOrderInstalmentPlanStatus, E as parseMailingListBlockId, En as unsafeAsCheckoutLineId, Et as validateBookingPaymentOptionKinds, F as parseMailingListPlacementTargeting, Fn as unsafeAsMediaAssetId, Ft as omitZeroAmountFutureRows, G as locationMapLinks, Gt as publicEventPricingDisplay, H as assertAllowedPublicUrl, Ht as formatEventPricing, I as DEFAULT_MAILING_LIST_TARGETING, In as unsafeAsOccurrenceId, It as splitAmountWithRemainderInFirst, J as parseLocationValue, Jt as resolveExactOrFreePriceDisplay, K as locationValueSchema, Kt as publicEventPricingOptions, L as planMailingListChoicePresentation, Lt as resolveFlexibleBalanceDueAt, M as parseMailingListProviderScope, Mt as getBookingInstalmentDepositRefundability, N as parseFooterCompositionV1, Nt as getBookingInstalmentPlanIntervalCount, O as parseMailingListSignedSourceToken, On as unsafeAsDemoCapability, Ot as isSettleableFlexibleBalanceContractStatus, Pt as getBookingInstalmentProtectedDepositAmountCents, Qn as err, Qt as mapReadonlyNonEmptyArray, R as isCanonicalRichTextDoc, Rn as unsafeAsPassId, Rt as resolveFlexibleBalanceInitialPaymentCents, S as createSecret, Sn as parseUserId, St as toBookingTimeZone, T as slugify, U as decideLocationSave, Ut as isPublicEventPricingOptionDisplayable, V as parseWeeklyOpeningHours, Vn as unsafeAsPricingOptionId, Vt as formatBookingPriceDisplay, Wt as publicEventPricingCurrency, X as publicLocationSchema$1, Xt as fromArray, Y as projectPublicLocation, Yt as resolvePricingOptionsPriceDisplay, Z as toLocationCoordinates, _ as CANCELLED_SESSION_STATUS, _n as parseMembershipId, _t as parseBookingLocalDate, a as NAVIGATION_LOCATIONS, an as unsafeAsPositiveCents, at as formatTime$1, b as resolveWholeSeriesBookingPhase, bn as parseSiteId, bt as resolveBookingBusinessTimeZone, cn as assertNever, ct as resolveBookingDisplayContext, dn as parseCustomerId, dt as formatLocalScheduleDate, en as parseNonNegativeCents, et as selectCategoryView, f as EVENT_PRESET_VALUES, fn as parseDatedOfferingCapacityHoldAuditRef, ft as formatLocalScheduleTime, h as WHOLE_SERIES_EVENT_PRESET_VALUES, hn as parseEventSeriesId, ht as getLocalScheduleTime, i as EVENT_PRESET_VOCABULARY, in as unsafeAsNonNegativeCents, it as formatDateTimeRange, j as DEFAULT_MAILING_LIST_SUCCESS_MESSAGE, jn as unsafeAsEventInstanceId, jt as clampConfiguredAmount, k as parseMailingListRuntimeContext, kt as isSettleableOrderInstalmentPlanStatus, ln as formatDurationUnitLabel, lt as buildBookingUtcDateWindow, m as SURFACE_EVENT_PRESET_VALUES, mt as getLocalScheduleDate, nn as toCents, nt as formatDateRange, on as formatCurrencyAmount, ot as formatTimeRange, pn as parseDatedOfferingCapacityHoldId, pt as getBookingLocalDateKey, q as normalizeLocationAddressText, qt as publicEventPricingType, rn as toNonNegativeCents, rt as formatDateTime, sn as parseCurrencyCode, st as inferSiteDateLocale, tn as parsePositiveCents, tt as formatDate, u as resolveSiteVerticalBookingConfig, un as parseApiKeyId, ut as compareLocalScheduleDates, v as nextLiveRunSessionStartMs, vt as parseLocalScheduleTime, w as parseManagementKey, wt as toUtcIsoDateTimeString, x as resolveWholeSeriesRunLifecycle, xn as parseSiteTermsVersionId, xt as resolveBookingTimeZoneId, y as orderedLiveRunSessions, yn as parseRetiredCourseId, yt as parseUtcIsoDateTimeString, z as formatOpeningHoursRows, zn as unsafeAsPositiveByteCount, zt as deriveTotalTicketQuantity } from "../src-DsR6-gBQ.mjs";
|
|
4
|
+
import { $ as normalizeMediaValueToIdentifierOnly, $t as createCommandContext, A as formatDiffDetail, An as getEnvPrefix, At as navigationIdentity, B as buildFieldChanges, Bn as portablePageDesignSchema, Bt as preparePushConfigTarget, C as reportFromOutcomes, Cn as requireEnvironmentWriteAuthorization, Ct as fileExists, D as normalizeRemoteHomepageReference, Dn as transportSuggestion, Dt as writeJsonFileAtomic, E as createEmptySyncResult, En as formatError, Et as writeJsonFile, F as calculatePullDiff, Fn as createManagementClient, Ft as navigationCommandItemToManagementInput, G as syncLocalMediaForPull, Gt as APPOINTMENT_SERVICE_VISIBILITY_VALUES, H as formatFieldPath, Hn as API_ENDPOINTS, Ht as extractApiErrorMessage, I as buildJsonDiff, In as ManagementApiError, It as normalizeNavigationConfigItemForCommand, J as admitBinaryWriteDestination, Jt as deriveCmsApiUrlFromDashboardUrl, K as applyLocalMediaPush, Kt as ApiRequestError, L as hasPageOperations, Ln as sdkEventScheduleSchema, Lt as applyPushConfigPlan, M as hasPendingChanges, Mn as isLocalConfigured, Mt as convertPulledFooterToLocal, N as findChangedFieldsWithValues, Nn as isRemoteConfigured, Nt as convertPulledNavigationToLocal, O as calculateDiff, On as CliExit, Ot as isMediaValue, P as formatHumanDiff, Pn as loadSdkEnvironment, Pt as convertPulledPagesToLocal, Q as normalizeMediaIdentifierInput, Qt as createClientForEnv, R as pageMetadataForUpsert, Rn as sdkSettingsUpdateSchema, Rt as createPushConfigCommand, S as planCliCommandBatchForBindings, Sn as planEnvironmentWriteAuthorization, St as ensureDir, T as executeResidualSettingsSyncPlan, Tn as ErrorCodes, Tt as readJsonFile, U as revalidateLocalMediaPushPlan, Un as ApiEnvelopeError, Ut as normalizeApiError, V as formatFieldChange, Vn as sdkConfiguredBookingVerticalConfigSchema, Vt as revalidatePushConfigPlan, Wn as unwrapResponse, Wt as isRecord$2, X as writeBinaryFileAtomic, Xt as bindRequestTimeout, Y as readStableBinaryFile, Yt as mapEnvironmentExecutionOutcomesJson, Z as sha256, Zt as confirmAction, _ as commandExecutionToReport, _n as withErrorHandling, _t as metadataFilePath, a as executeEntryCommandPlanAsReport, an as getOutputContext, at as readEntries, b as executeCompiledCliCommandPlanAsReport, bn as parseEnvironmentSelection, bt as writeMetadataFile, c as titleFromEntryData, cn as managementClientConfigFor, ct as readEventsMeta, d as unsafeAsCliEntryIdentifier, dn as parseJsonData, dt as readNavigationMeta, en as createGetCommand, et as walkLocalContentMedia, f as unsafeAsCliFormSlug, fn as parsePaginationOptions, ft as readPagesMeta, g as commandCompileFailureToReport, gn as withConfirmation, gt as ensureMetadataDir, h as mutationCounterForEffect, hn as withCommandContext, ht as writeMediaManifest, i as entrySiteCommandTypes, in as formatDateShort, it as findLegacyEntryFiles, j as formatDiffSummary, jn as getEnvironmentDebugInfo, jt as navigationIdentityMap, k as calculateFooterDiff, kt as duplicateNavigationIdentityMessage, l as unsafeAsCliBlockIdentifier, ln as mapEntryForOutput, lt as readFooterMeta, m as commandReportToSyncResult, mn as runWithInvocation, mt as readVenuesMeta, n as entryCommandCompileErrorToReport, nn as createOutputForCommand, nt as downloadMedia, o as executeEntryCommandPlanAsSyncResult, on as getOutputOnlyContext, ot as readAllMeta, p as unsafeAsCliPageIdentifier, pn as resolveCommandPath, pt as readSettingsMeta, q as prepareLocalMediaForPush, qt as createBearerAPIClient, r as entryCommandReportToSyncResult, rn as currentInvocationEnvelope, rt as extractMediaIdentifiers, s as syncResultForEntryCommandCompileError, sn as handleCommandError, st as readEventCategoriesMeta, t as compileEntryPushCommands, tn as createListCommand, tt as buildStorageUrl, u as unsafeAsCliContentTypeKey, un as parseJsonArray, ut as readFormsMeta, v as commandReportHasFailures, vn as withOutputOnlyErrorHandling, vt as metadataTargetFromEnvironment, w as mergeManySyncResults, wn as withRiverbankEnv, wt as listFiles, x as formatManagementError, xn as planEnvironmentExecution, xt as writeMetadataRecordMap, y as executeCliCommandPlan, yn as executeEnvironmentPlan, yt as readMetadataFile, zn as linkPayloadSchema, zt as loadPushConfigTarget } from "../entryCommands-61TwBBCA.mjs";
|
|
5
|
+
import { r as CLI_VERSION, t as loadConfigFile } from "../load-config-C7Ght4_r.mjs";
|
|
6
|
+
import { a as RichTextDocSchema, c as isRecord$18, i as findUnfilledSentinels, n as buildEntryScaffold, o as isRichTextDoc, r as validateEntryInstance, s as isObjectRecord, t as eventUpsertInputSchema } from "../eventUpsertInputSchema-zAAQrjXE.mjs";
|
|
7
|
+
import { a as prepareScaffoldExecution, c as LOCAL_PACKAGE_VENDOR_DIR, d as loadGeneratedPackageRanges, i as preflightScaffoldTargets, n as createScaffoldCompletion, s as deriveScaffoldLocalManifest, t as deriveScaffoldPlan } from "../plan-DB3FQqwH.mjs";
|
|
8
8
|
import { config } from "dotenv";
|
|
9
9
|
import { Command, CommanderError } from "commander";
|
|
10
10
|
import * as fs$2 from "fs/promises";
|
|
@@ -13796,13 +13796,14 @@ const FLOATING_BLUR = "blur(16px)";
|
|
|
13796
13796
|
* Similar to button system - generates theme-scoped CSS using [data-theme-scope] selector
|
|
13797
13797
|
*/
|
|
13798
13798
|
function generateHeaderCss(options) {
|
|
13799
|
-
const { themeId, theme, responsiveMode = DEFAULT_THEME_RESPONSIVE_MODE } = options;
|
|
13799
|
+
const { themeId, theme, responsiveMode = DEFAULT_THEME_RESPONSIVE_MODE, solvedInks = "withhold" } = options;
|
|
13800
13800
|
const tokens = new TokenResolver(theme);
|
|
13801
13801
|
const header = theme.header;
|
|
13802
13802
|
const cssChunks = [];
|
|
13803
13803
|
const headerContrastTreatment = resolveHeaderContrastTreatment(header);
|
|
13804
13804
|
const headerNavTextSize = resolveHeaderNavTextSize(header);
|
|
13805
|
-
cssChunks.push(generateHeaderRootStyles(header, themeId, tokens));
|
|
13805
|
+
cssChunks.push(generateHeaderRootStyles(header, themeId, tokens, headerPaintInks(header, theme, solvedInks)));
|
|
13806
|
+
cssChunks.push(generateOpeningPhotoShade(header, themeId));
|
|
13806
13807
|
cssChunks.push(generateMobileOverlayBackdropFilterFix(themeId, header.variant));
|
|
13807
13808
|
cssChunks.push(generateHeaderLogoStyles({
|
|
13808
13809
|
logo: header.logo,
|
|
@@ -13816,20 +13817,27 @@ function generateHeaderCss(options) {
|
|
|
13816
13817
|
}));
|
|
13817
13818
|
cssChunks.push(generateLogoTextBehaviorStyles(header.logoText, themeId));
|
|
13818
13819
|
cssChunks.push(generateHeaderNavLinkStyles(header, themeId, tokens, theme, headerContrastTreatment, headerNavTextSize));
|
|
13819
|
-
|
|
13820
|
-
|
|
13820
|
+
const menuHeader = contextualDropdownHeader(header);
|
|
13821
|
+
const dropdown = resolveDropdownSurface(menuHeader, theme, tokens, solvedInks);
|
|
13822
|
+
cssChunks.push(generateDropdownContainerStyles(menuHeader, themeId, tokens, dropdown));
|
|
13823
|
+
cssChunks.push(generateDropdownLinkStyles(menuHeader, themeId, tokens, theme, dropdown));
|
|
13821
13824
|
cssChunks.push(generateDropdownCaretStyles(themeId));
|
|
13822
13825
|
cssChunks.push(generateDropdownTriggerOverrides(header, themeId));
|
|
13823
|
-
cssChunks.push(generateMobilePanelStyles(
|
|
13826
|
+
cssChunks.push(generateMobilePanelStyles(themeId, dropdown));
|
|
13824
13827
|
if (header.variant === "floating" && header.container) {
|
|
13825
13828
|
cssChunks.push(generateFloatingContainerStyles(header, themeId, tokens, responsiveMode));
|
|
13826
13829
|
}
|
|
13827
|
-
cssChunks.push(generateNavContainerStyles(header, themeId, tokens));
|
|
13830
|
+
cssChunks.push(generateNavContainerStyles(header, themeId, tokens, theme, solvedInks));
|
|
13828
13831
|
cssChunks.push(generateHeaderCtaTreatmentStyles(header, themeId, tokens));
|
|
13829
13832
|
cssChunks.push(generateCtaGapStyles(header, themeId));
|
|
13830
13833
|
return cssChunks.filter(Boolean).join("\n\n");
|
|
13831
13834
|
}
|
|
13832
13835
|
const _testExports = { generateHeaderRootStyles };
|
|
13836
|
+
/** Scope shading to the actual opening under overlay chrome, including hidden-header pages. */
|
|
13837
|
+
function generateOpeningPhotoShade(header, themeId) {
|
|
13838
|
+
const shade = headerNeedsPhotoShade(header) ? "linear-gradient(to bottom, rgba(0,0,0,0.78) 0px, rgba(0,0,0,0.64) 110px, transparent 220px)" : "linear-gradient(transparent, transparent)";
|
|
13839
|
+
return `:where([data-theme-scope="${themeId}"]) [data-site-document-layout-mode="header-overlay"] :is([data-page-block-position="first"], [data-page-block-position="only"]) { --rb-opening-photo-shade: ${shade}; }`;
|
|
13840
|
+
}
|
|
13833
13841
|
function resolveHeaderContrastTreatment(header) {
|
|
13834
13842
|
if (header.navLinkStyle?.contrastTreatment) {
|
|
13835
13843
|
return header.navLinkStyle.contrastTreatment;
|
|
@@ -13852,7 +13860,7 @@ function isDetachedFloatingHeaderShape(header) {
|
|
|
13852
13860
|
/**
|
|
13853
13861
|
* Generate root header container styles
|
|
13854
13862
|
*/
|
|
13855
|
-
function generateHeaderRootStyles(header, themeId, tokens) {
|
|
13863
|
+
function generateHeaderRootStyles(header, themeId, tokens, inks) {
|
|
13856
13864
|
const selector = `:where([data-theme-scope="${themeId}"]) .header-root`;
|
|
13857
13865
|
const rules = [];
|
|
13858
13866
|
const isContainedNav = headerRootPaint(header) === "contained-nav";
|
|
@@ -13864,7 +13872,11 @@ function generateHeaderRootStyles(header, themeId, tokens) {
|
|
|
13864
13872
|
} : buildHeaderSurfaceRules(header, tokens);
|
|
13865
13873
|
const floatingSurfaceBorder = header.variant === "floating";
|
|
13866
13874
|
if (!floatingSurfaceBorder) rules.push(...surfaceRules.border);
|
|
13867
|
-
const basePaintRules = floatingSurfaceBorder ? [
|
|
13875
|
+
const basePaintRules = floatingSurfaceBorder ? [
|
|
13876
|
+
...surfaceRules.base,
|
|
13877
|
+
...surfaceRules.border,
|
|
13878
|
+
...inks
|
|
13879
|
+
] : [...surfaceRules.base, ...inks];
|
|
13868
13880
|
const scrolledPaintRules = floatingSurfaceBorder ? surfaceRules.border : [];
|
|
13869
13881
|
if (header.positioning === "sticky" || header.positioning === "fixed") {
|
|
13870
13882
|
const shadowElevation = header.shadow?.elevation ?? "none";
|
|
@@ -13923,14 +13935,13 @@ function generateLogoTextBehaviorStyles(logoText, themeId) {
|
|
|
13923
13935
|
/**
|
|
13924
13936
|
* Generate dropdown menu container styles
|
|
13925
13937
|
*/
|
|
13926
|
-
function generateDropdownContainerStyles(header, themeId, tokens,
|
|
13938
|
+
function generateDropdownContainerStyles(header, themeId, tokens, surface) {
|
|
13927
13939
|
const selector = `:where([data-theme-scope="${themeId}"]) .nav-dropdown-menu`;
|
|
13928
13940
|
const rules = [];
|
|
13929
13941
|
const dropdownStyle = header.dropdownStyle;
|
|
13930
13942
|
rules.push(...NAV_DROPDOWN_CONTAINER_RAIL_CSS_RULES);
|
|
13931
|
-
|
|
13932
|
-
rules.push(
|
|
13933
|
-
rules.push(...surface.declarations(tokens));
|
|
13943
|
+
rules.push(`background-color: ${surface.backgroundColor};`);
|
|
13944
|
+
rules.push(...surface.foregroundDeclarations);
|
|
13934
13945
|
const borderToken = dropdownStyle?.borderColor;
|
|
13935
13946
|
if (borderToken === null) {
|
|
13936
13947
|
rules.push(`border: none;`);
|
|
@@ -13951,79 +13962,63 @@ function generateDropdownContainerStyles(header, themeId, tokens, theme) {
|
|
|
13951
13962
|
};
|
|
13952
13963
|
rules.push(`border-radius: ${radiusMap[borderRadius]};`);
|
|
13953
13964
|
rules.push(`padding: 0.5rem 0;`);
|
|
13954
|
-
return `\n${selector} {\n ${rules.join("\n ")}\n}\n
|
|
13955
|
-
}
|
|
13956
|
-
function
|
|
13957
|
-
const
|
|
13958
|
-
|
|
13959
|
-
|
|
13960
|
-
|
|
13961
|
-
|
|
13962
|
-
|
|
13963
|
-
|
|
13964
|
-
|
|
13965
|
-
|
|
13966
|
-
|
|
13967
|
-
|
|
13968
|
-
|
|
13969
|
-
|
|
13970
|
-
|
|
13971
|
-
|
|
13972
|
-
opacity: 18
|
|
13973
|
-
}
|
|
13974
|
-
}]
|
|
13975
|
-
};
|
|
13976
|
-
if (configuredDropdownStyle?.hoverTextColor) {
|
|
13977
|
-
hoverEffects.hover?.push({
|
|
13978
|
-
effectId: "text-color-change",
|
|
13979
|
-
options: { hoverColorToken: configuredDropdownStyle.hoverTextColor }
|
|
13980
|
-
});
|
|
13981
|
-
hoverEffects.active?.push({
|
|
13982
|
-
effectId: "text-color-change",
|
|
13983
|
-
options: { hoverColorToken: configuredDropdownStyle.hoverTextColor }
|
|
13984
|
-
});
|
|
13985
|
-
}
|
|
13986
|
-
const dropdownLinkStyle = {
|
|
13965
|
+
return `\n${selector} {\n ${rules.join("\n ")}\n}\n` + generateDropdownFrosting(selector, surface);
|
|
13966
|
+
}
|
|
13967
|
+
function dropdownLinkEffects(style, textToken, opacity) {
|
|
13968
|
+
const background = style?.hoverBackground === undefined ? textToken : style.hoverBackground;
|
|
13969
|
+
return [...background === null ? [] : [{
|
|
13970
|
+
effectId: "background-on-hover-alpha",
|
|
13971
|
+
options: {
|
|
13972
|
+
colorToken: background,
|
|
13973
|
+
opacity
|
|
13974
|
+
}
|
|
13975
|
+
}], ...style?.hoverTextColor ? [{
|
|
13976
|
+
effectId: "text-color-change",
|
|
13977
|
+
options: { hoverColorToken: style.hoverTextColor }
|
|
13978
|
+
}] : []];
|
|
13979
|
+
}
|
|
13980
|
+
function dropdownNavLinkStyle(header, textToken) {
|
|
13981
|
+
const style = header.dropdownStyle;
|
|
13982
|
+
return {
|
|
13987
13983
|
name: "Dropdown",
|
|
13988
13984
|
typography: "body",
|
|
13989
|
-
fontWeight:
|
|
13990
|
-
textTransform:
|
|
13985
|
+
fontWeight: style?.fontWeight ?? header.navWeight ?? "medium",
|
|
13986
|
+
textTransform: style?.textTransform ?? "none",
|
|
13991
13987
|
italic: false,
|
|
13992
|
-
colorToken:
|
|
13988
|
+
colorToken: textToken,
|
|
13993
13989
|
padding: "compact",
|
|
13994
13990
|
borderRadius: "sm",
|
|
13995
|
-
effects:
|
|
13991
|
+
effects: {
|
|
13992
|
+
hover: dropdownLinkEffects(style, textToken, 12),
|
|
13993
|
+
active: dropdownLinkEffects(style, textToken, 18)
|
|
13994
|
+
}
|
|
13996
13995
|
};
|
|
13996
|
+
}
|
|
13997
|
+
function dropdownTypographyRules(style) {
|
|
13998
|
+
const letterSpacing = style?.letterSpacing ?? "normal";
|
|
13999
|
+
const spacing = {
|
|
14000
|
+
normal: "0em",
|
|
14001
|
+
wide: "0.05em",
|
|
14002
|
+
wider: "0.1em"
|
|
14003
|
+
};
|
|
14004
|
+
const sizes = {
|
|
14005
|
+
xs: "0.75rem",
|
|
14006
|
+
sm: "0.875rem",
|
|
14007
|
+
base: "1rem",
|
|
14008
|
+
lg: "1.125rem"
|
|
14009
|
+
};
|
|
14010
|
+
return [...letterSpacing === "normal" ? [] : [`letter-spacing: ${spacing[letterSpacing]};`], `font-size: ${sizes[style?.textSize ?? "sm"]};`];
|
|
14011
|
+
}
|
|
14012
|
+
function generateDropdownLinkStyles(header, themeId, tokens, theme, surface) {
|
|
13997
14013
|
const baseCSS = generateNavLinkCSS({
|
|
13998
14014
|
themeId,
|
|
13999
14015
|
tokens,
|
|
14000
14016
|
theme,
|
|
14001
|
-
style:
|
|
14017
|
+
style: dropdownNavLinkStyle(header, surface.textToken),
|
|
14002
14018
|
className: "nav-dropdown-link"
|
|
14003
14019
|
});
|
|
14004
|
-
const
|
|
14005
|
-
|
|
14006
|
-
if (letterSpacing !== "normal") {
|
|
14007
|
-
const letterSpacingMap = {
|
|
14008
|
-
normal: "0em",
|
|
14009
|
-
wide: "0.05em",
|
|
14010
|
-
wider: "0.1em"
|
|
14011
|
-
};
|
|
14012
|
-
additionalRules.push(`letter-spacing: ${letterSpacingMap[letterSpacing]};`);
|
|
14013
|
-
}
|
|
14014
|
-
const textSize = configuredDropdownStyle?.textSize ?? "sm";
|
|
14015
|
-
const textSizeMap = {
|
|
14016
|
-
xs: "0.75rem",
|
|
14017
|
-
sm: "0.875rem",
|
|
14018
|
-
base: "1rem",
|
|
14019
|
-
lg: "1.125rem"
|
|
14020
|
-
};
|
|
14021
|
-
additionalRules.push(`font-size: ${textSizeMap[textSize]};`);
|
|
14022
|
-
if (additionalRules.length > 0) {
|
|
14023
|
-
const selector = `:where([data-theme-scope="${themeId}"]) .nav-dropdown-link`;
|
|
14024
|
-
return baseCSS + `\n${selector} {\n ${additionalRules.join("\n ")}\n}\n`;
|
|
14025
|
-
}
|
|
14026
|
-
return baseCSS;
|
|
14020
|
+
const selector = `:where([data-theme-scope="${themeId}"]) .nav-dropdown-link`;
|
|
14021
|
+
return baseCSS + `\n${selector} {\n ${dropdownTypographyRules(header.dropdownStyle).join("\n ")}\n}\n`;
|
|
14027
14022
|
}
|
|
14028
14023
|
function generateDropdownCaretStyles(themeId) {
|
|
14029
14024
|
const selector = `:where([data-theme-scope="${themeId}"]) .nav-caret`;
|
|
@@ -14054,43 +14049,76 @@ ${selector} {
|
|
|
14054
14049
|
}
|
|
14055
14050
|
`.trim();
|
|
14056
14051
|
}
|
|
14057
|
-
/**
|
|
14058
|
-
|
|
14059
|
-
|
|
14060
|
-
|
|
14061
|
-
|
|
14062
|
-
|
|
14063
|
-
|
|
14064
|
-
|
|
14052
|
+
/** Reuse the header's decided opening tone; unknown openings retain opaque paint. */
|
|
14053
|
+
function contextualDropdownHeader(header) {
|
|
14054
|
+
const style = header.dropdownStyle;
|
|
14055
|
+
const treatment = style?.surfaceTreatment;
|
|
14056
|
+
if (!style || treatment?.kind !== "frosted" || treatment.tone !== "opening") return header;
|
|
14057
|
+
const opening = header.scrollTreatment;
|
|
14058
|
+
if (!opening) return {
|
|
14059
|
+
...header,
|
|
14060
|
+
dropdownStyle: {
|
|
14061
|
+
...style,
|
|
14062
|
+
surfaceTreatment: { kind: "solid" }
|
|
14063
|
+
}
|
|
14064
|
+
};
|
|
14065
|
+
const dark = opening.backgroundTone === "dark";
|
|
14066
|
+
const textColor = dark ? "neutral-50" : "neutral-950";
|
|
14067
|
+
return {
|
|
14068
|
+
...header,
|
|
14069
|
+
dropdownStyle: {
|
|
14070
|
+
...style,
|
|
14071
|
+
background: dark ? "neutral-950" : "neutral-50",
|
|
14072
|
+
textColor,
|
|
14073
|
+
hoverBackground: textColor,
|
|
14074
|
+
borderColor: null
|
|
14075
|
+
}
|
|
14076
|
+
};
|
|
14077
|
+
}
|
|
14078
|
+
function dropdownTextCandidate(header) {
|
|
14079
|
+
return header.dropdownStyle?.textColor ?? ((header.navColor ?? header.textColor)?.trim() || "text");
|
|
14080
|
+
}
|
|
14081
|
+
function resolveDropdownSurface(header, theme, tokens, solvedInks) {
|
|
14065
14082
|
const backgroundToken = header.dropdownStyle?.background ?? "surface";
|
|
14066
|
-
const candidate =
|
|
14083
|
+
const candidate = dropdownTextCandidate(header);
|
|
14067
14084
|
const foreground = resolveSurfaceForeground({
|
|
14068
14085
|
type: "color",
|
|
14069
14086
|
color: backgroundToken,
|
|
14070
14087
|
textColor: candidate
|
|
14071
14088
|
}, expandPalette(theme.palette));
|
|
14072
14089
|
return {
|
|
14073
|
-
backgroundToken,
|
|
14090
|
+
backgroundColor: tokens.getColor(backgroundToken),
|
|
14074
14091
|
textToken: foreground.kind === "known" ? foreground.roles.text : candidate,
|
|
14075
|
-
|
|
14092
|
+
foregroundDeclarations: [...foreground.kind === "known" ? surfaceForegroundDeclarations(surfaceForegroundInputFromResolved(foreground, (token) => tokens.getColor(token))) : [`color: ${tokens.getColor(candidate)};`], ...surfaceInkDeclarations(surfaceInkPublication(foreground, solvedInks))],
|
|
14093
|
+
treatment: header.dropdownStyle?.surfaceTreatment
|
|
14076
14094
|
};
|
|
14077
14095
|
}
|
|
14078
|
-
/**
|
|
14079
|
-
|
|
14080
|
-
|
|
14081
|
-
|
|
14082
|
-
|
|
14096
|
+
/** Solid paint is the fallback. Blur is enhancement, never the readability mechanism. */
|
|
14097
|
+
function generateDropdownFrosting(selector, surface) {
|
|
14098
|
+
if (surface.treatment?.kind !== "frosted") return "";
|
|
14099
|
+
const blur = surface.treatment.blur === "sm" ? "8px" : "12px";
|
|
14100
|
+
return `
|
|
14101
|
+
@supports (background-color: color-mix(in srgb, white, transparent)) and ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
|
|
14102
|
+
${selector} {
|
|
14103
|
+
background-color: color-mix(in srgb, ${surface.backgroundColor} ${surface.treatment.opacity * 100}%, transparent);
|
|
14104
|
+
backdrop-filter: blur(${blur});
|
|
14105
|
+
-webkit-backdrop-filter: blur(${blur});
|
|
14106
|
+
${surface.treatment.opacity < 1 ? surfaceInkDeclarations({ kind: "reset" }).join("\n ") : ""}
|
|
14107
|
+
}
|
|
14108
|
+
}
|
|
14109
|
+
`;
|
|
14110
|
+
}
|
|
14111
|
+
/** Mobile shares the resolved opaque surface, never desktop translucency. */
|
|
14112
|
+
function generateMobilePanelStyles(themeId, surface) {
|
|
14083
14113
|
const selector = `:where([data-theme-scope="${themeId}"]) .nav-mobile-panel`;
|
|
14084
14114
|
const selfSelector = `:where(.nav-mobile-panel[data-theme-scope="${themeId}"])`;
|
|
14085
|
-
const
|
|
14086
|
-
const rules = [`background-color: ${tokens.getColor(surface.backgroundToken)};`, ...surface.declarations(tokens)];
|
|
14087
|
-
const body = renderCssDeclarations(rules);
|
|
14115
|
+
const body = renderCssDeclarations([`background-color: ${surface.backgroundColor};`, ...surface.foregroundDeclarations]);
|
|
14088
14116
|
return `\n${selector} {\n ${body}\n}\n\n${selfSelector} {\n ${body}\n}\n`;
|
|
14089
14117
|
}
|
|
14090
14118
|
/**
|
|
14091
14119
|
* Generate nav container styles (pill/glass)
|
|
14092
14120
|
*/
|
|
14093
|
-
function generateNavContainerStyles(header, themeId, tokens) {
|
|
14121
|
+
function generateNavContainerStyles(header, themeId, tokens, theme, solvedInks) {
|
|
14094
14122
|
const navContainer = header.navContainer;
|
|
14095
14123
|
const navContainerType = navContainer?.type ?? "none";
|
|
14096
14124
|
if (!navContainer || navContainerType === "none") return "";
|
|
@@ -14106,27 +14134,31 @@ function generateNavContainerStyles(header, themeId, tokens) {
|
|
|
14106
14134
|
rules.push("align-self: flex-start;");
|
|
14107
14135
|
}
|
|
14108
14136
|
}
|
|
14109
|
-
|
|
14110
|
-
|
|
14111
|
-
|
|
14112
|
-
|
|
14113
|
-
|
|
14114
|
-
|
|
14115
|
-
|
|
14116
|
-
|
|
14117
|
-
|
|
14118
|
-
|
|
14119
|
-
|
|
14120
|
-
|
|
14121
|
-
|
|
14122
|
-
|
|
14123
|
-
|
|
14124
|
-
|
|
14125
|
-
}
|
|
14126
|
-
if (rules.length > 0) {
|
|
14127
|
-
return `${selector} { ${rules.join(" ")} }`;
|
|
14137
|
+
rules.push(...navContainerSurfaceRules(header, navContainer, tokens, theme, solvedInks));
|
|
14138
|
+
return `${selector} { ${rules.join(" ")} }`;
|
|
14139
|
+
}
|
|
14140
|
+
/** Paint and publication are decided together, so translucent containers cannot borrow solid inks. */
|
|
14141
|
+
function navContainerSurfaceRules(header, container, tokens, theme, policy) {
|
|
14142
|
+
if (container.type === "glass") {
|
|
14143
|
+
const opacity$1 = resolveFloatingGlassOpacity(header, container.opacity, .15);
|
|
14144
|
+
const background$1 = container.tint ? buildTint(tokens.getColor(container.tint), opacity$1) : buildRgbWhite(opacity$1);
|
|
14145
|
+
return [
|
|
14146
|
+
`background-color: ${background$1};`,
|
|
14147
|
+
`backdrop-filter: ${HEADER_BLUR};`,
|
|
14148
|
+
`-webkit-backdrop-filter: ${HEADER_BLUR};`,
|
|
14149
|
+
"border: 1px solid rgba(255, 255, 255, 0.2);",
|
|
14150
|
+
"box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);",
|
|
14151
|
+
...surfaceInkDeclarations({ kind: "reset" })
|
|
14152
|
+
];
|
|
14128
14153
|
}
|
|
14129
|
-
|
|
14154
|
+
const opacity = clampOpacity(container.opacity, .15);
|
|
14155
|
+
const background = container.tint ? buildTint(tokens.getColor(container.tint), opacity) : tokens.getColor("surface");
|
|
14156
|
+
const solid = container.tint ? opacity === 1 ? container.tint : null : "surface";
|
|
14157
|
+
return [
|
|
14158
|
+
`background-color: ${background};`,
|
|
14159
|
+
`border: 1px solid ${tokens.getColor("border")};`,
|
|
14160
|
+
...headerContainerInks(solid, theme, policy)
|
|
14161
|
+
];
|
|
14130
14162
|
}
|
|
14131
14163
|
/**
|
|
14132
14164
|
* Generate floating container styles
|
|
@@ -14144,6 +14176,7 @@ function generateFloatingContainerStyles(header, themeId, tokens, responsiveMode
|
|
|
14144
14176
|
}
|
|
14145
14177
|
rules.push(`backdrop-filter: ${FLOATING_BLUR};`);
|
|
14146
14178
|
rules.push(`-webkit-backdrop-filter: ${FLOATING_BLUR};`);
|
|
14179
|
+
rules.push(...surfaceInkDeclarations({ kind: "reset" }));
|
|
14147
14180
|
if (container.border) {
|
|
14148
14181
|
rules.push(`border: 1px solid rgb(255 255 255 / 0.2);`);
|
|
14149
14182
|
}
|
|
@@ -14270,6 +14303,21 @@ function applyAlpha(color, opacity) {
|
|
|
14270
14303
|
}
|
|
14271
14304
|
return color;
|
|
14272
14305
|
}
|
|
14306
|
+
/** Container glass is deliberately unmeasured; an opaque pill owns its solid paint. */
|
|
14307
|
+
function headerContainerInks(color, theme, policy) {
|
|
14308
|
+
if (color === null) return surfaceInkDeclarations({ kind: "reset" });
|
|
14309
|
+
const foreground = resolveSurfaceForeground({
|
|
14310
|
+
type: "color",
|
|
14311
|
+
color
|
|
14312
|
+
}, expandPalette(theme.palette));
|
|
14313
|
+
return surfaceInkDeclarations(surfaceInkPublication(foreground, policy));
|
|
14314
|
+
}
|
|
14315
|
+
/** Floating mobile bars paint the header background even when the root overlays the page. */
|
|
14316
|
+
function headerPaintInks(header, theme, policy) {
|
|
14317
|
+
if (headerRootPaint(header) === "contained-nav") return [];
|
|
14318
|
+
const foreground = resolveSurfaceForeground(header.background, expandPalette(theme.palette));
|
|
14319
|
+
return surfaceInkDeclarations(surfaceInkPublication(foreground, policy));
|
|
14320
|
+
}
|
|
14273
14321
|
|
|
14274
14322
|
//#endregion
|
|
14275
14323
|
//#region ../blocks/src/system/transforms/registry/_utils/themeColorResolution.ts
|
|
@@ -14281,7 +14329,7 @@ function resolveBackgroundColorValue(value, context) {
|
|
|
14281
14329
|
//#region ../blocks/src/system/transforms/registry/_utils/surfaceForegroundStyles.ts
|
|
14282
14330
|
const sectionSurfaceCache = new WeakMap();
|
|
14283
14331
|
function resolveHeaderRootForeground(header, palette, isTransparent) {
|
|
14284
|
-
if (isTransparent) return readOpeningForegroundProjection(header) ?? { kind: "
|
|
14332
|
+
if (isTransparent) return readOpeningForegroundProjection(header) ?? { kind: "inherits" };
|
|
14285
14333
|
const background = header?.background;
|
|
14286
14334
|
return resolveSurfaceForeground(background ?? {
|
|
14287
14335
|
type: "color",
|
|
@@ -14297,12 +14345,32 @@ function resolveFooterRootForeground(footer, palette, proseHoverCandidate) {
|
|
|
14297
14345
|
function resolveSurfaceForegroundStyles(value, context, options) {
|
|
14298
14346
|
const resolved = cachedSectionSurface(value, context, options);
|
|
14299
14347
|
const foreground = resolved.foreground;
|
|
14300
|
-
|
|
14301
|
-
|
|
14302
|
-
|
|
14303
|
-
|
|
14304
|
-
|
|
14305
|
-
|
|
14348
|
+
const inks = surfaceInkStyle(resolved.inks);
|
|
14349
|
+
switch (foreground.kind) {
|
|
14350
|
+
case "inherits":
|
|
14351
|
+
case "unmeasured-paint": return {
|
|
14352
|
+
...resolved.buttonStyles,
|
|
14353
|
+
...inks
|
|
14354
|
+
};
|
|
14355
|
+
case "known": return {
|
|
14356
|
+
...arrangementSurfaceInk(foreground, context),
|
|
14357
|
+
...resolved.buttonStyles,
|
|
14358
|
+
...surfaceForegroundStyle(surfaceForegroundInputFromResolved(foreground, (token) => resolveBackgroundColorValue(token, context))),
|
|
14359
|
+
...inks
|
|
14360
|
+
};
|
|
14361
|
+
}
|
|
14362
|
+
}
|
|
14363
|
+
/**
|
|
14364
|
+
* The render's ink policy, set by the runtime its theme tokens came from. A
|
|
14365
|
+
* render that can't vouch for its runtime withholds, so its owned surfaces
|
|
14366
|
+
* reset the inks rather than publish ones solved for tokens that may differ.
|
|
14367
|
+
*/
|
|
14368
|
+
function transformSolvedInks(context) {
|
|
14369
|
+
return context.theme.solvedInks ?? "withhold";
|
|
14370
|
+
}
|
|
14371
|
+
/** Chrome roots publish the same ink decision as sections. */
|
|
14372
|
+
function solvedInkStyle(foreground, context) {
|
|
14373
|
+
return surfaceInkStyle(surfaceInkPublication(foreground, transformSolvedInks(context)));
|
|
14306
14374
|
}
|
|
14307
14375
|
/** The section ground's resolved foreground, for decorations drawn on that ground (maps). */
|
|
14308
14376
|
function resolveSectionSurfaceForeground(value, context, options) {
|
|
@@ -14334,7 +14402,8 @@ function resolveRuntimeSectionSurface(value, context, options) {
|
|
|
14334
14402
|
palette: context.theme.palette,
|
|
14335
14403
|
buttonSystem: context.theme.buttons,
|
|
14336
14404
|
linkHoverToken: context.proseHoverCandidate,
|
|
14337
|
-
compositeBase: options?.fallbackToken
|
|
14405
|
+
compositeBase: options?.fallbackToken,
|
|
14406
|
+
solvedInks: transformSolvedInks(context)
|
|
14338
14407
|
});
|
|
14339
14408
|
}
|
|
14340
14409
|
function arrangementSurfaceInk(foreground, context) {
|
|
@@ -14343,7 +14412,7 @@ function arrangementSurfaceInk(foreground, context) {
|
|
|
14343
14412
|
}
|
|
14344
14413
|
/** Decoration roles already resolved by the surface owner, shared with footer arrangements. */
|
|
14345
14414
|
function surfaceInkStyles(foreground, palette) {
|
|
14346
|
-
if (foreground.kind
|
|
14415
|
+
if (foreground.kind !== "known") return {};
|
|
14347
14416
|
const decorations$1 = surfaceDecorationColors(foreground, palette);
|
|
14348
14417
|
return {
|
|
14349
14418
|
"--rb-surface-muted-color": foreground.roles.muted ?? foreground.roles.text,
|
|
@@ -21842,8 +21911,11 @@ function resolveHeaderVisualStyles(header) {
|
|
|
21842
21911
|
return visuals;
|
|
21843
21912
|
}
|
|
21844
21913
|
function resolvedForegroundStyle(foreground) {
|
|
21845
|
-
|
|
21846
|
-
|
|
21914
|
+
switch (foreground.kind) {
|
|
21915
|
+
case "inherits":
|
|
21916
|
+
case "unmeasured-paint": return undefined;
|
|
21917
|
+
case "known": return surfaceForegroundStyle(surfaceForegroundInputFromResolved(foreground, rgbColorValue));
|
|
21918
|
+
}
|
|
21847
21919
|
}
|
|
21848
21920
|
function footerBottomBarBorderWidthStyle(width) {
|
|
21849
21921
|
if (!width) return undefined;
|
|
@@ -21929,7 +22001,7 @@ const headerRootStyleTransform = {
|
|
|
21929
22001
|
const foreground = resolveHeaderRootForeground(header, context.theme.palette, visuals.isTransparent);
|
|
21930
22002
|
const foregroundStyle = resolvedForegroundStyle(foreground) ?? (visuals.isTransparent ? surfaceForegroundStyle(transparentHeaderForegroundInput(header, context.theme.palette)) : { color: rgbColorValue(headerLeafTextColor(header)) });
|
|
21931
22003
|
const borderColorToken = header?.border?.colorToken ?? "border";
|
|
21932
|
-
return mergeStyles(foregroundStyle, borderColorStyle(borderColorToken));
|
|
22004
|
+
return mergeStyles(foregroundStyle, solvedInkStyle(foreground, context), borderColorStyle(borderColorToken));
|
|
21933
22005
|
}
|
|
21934
22006
|
};
|
|
21935
22007
|
const headerSectionBackgroundTransform = {
|
|
@@ -21958,9 +22030,10 @@ const footerRootStyleTransform = {
|
|
|
21958
22030
|
styleParts.push(backgroundColorStyle(token));
|
|
21959
22031
|
}
|
|
21960
22032
|
}
|
|
21961
|
-
|
|
22033
|
+
const foreground = resolveFooterRootForeground(footer, context.theme.palette, context.proseHoverCandidate);
|
|
22034
|
+
styleParts.push(resolvedForegroundStyle(foreground), solvedInkStyle(foreground, context));
|
|
21962
22035
|
if (footer?.variant === "centred") {
|
|
21963
|
-
styleParts.push(surfaceInkStyles(
|
|
22036
|
+
styleParts.push(surfaceInkStyles(foreground, context.theme.palette));
|
|
21964
22037
|
}
|
|
21965
22038
|
styleParts.push(borderColorStyle("border"));
|
|
21966
22039
|
return mergeStyles(...styleParts);
|
|
@@ -22026,21 +22099,27 @@ const footerBottomBarStyleTransform = {
|
|
|
22026
22099
|
run: (value, _options, context) => {
|
|
22027
22100
|
const footer = asPartialObject(value);
|
|
22028
22101
|
const bottomBar = footer?.bottomBar;
|
|
22029
|
-
return mergeStyles(bottomBar?.background?.type === "color" ? backgroundColorStyle(bottomBar.background.color ?? "surface") : undefined, footerBottomBarBorderColorStyle(footer), footerBottomBarBorderWidthStyle(bottomBar?.borderTop?.width), footerBottomBarForegroundStyle(footer, context.theme.palette));
|
|
22102
|
+
return mergeStyles(bottomBar?.background?.type === "color" ? backgroundColorStyle(bottomBar.background.color ?? "surface") : undefined, footerBottomBarBorderColorStyle(footer), footerBottomBarBorderWidthStyle(bottomBar?.borderTop?.width), footerBottomBarForegroundStyle(footer, context.theme.palette), footerBottomBarInkStyle(footer, context));
|
|
22030
22103
|
}
|
|
22031
22104
|
};
|
|
22032
22105
|
function footerBottomBarForegroundStyle(footer, palette) {
|
|
22033
22106
|
if (!footer?.bottomBar) return undefined;
|
|
22107
|
+
const foreground = footerBottomBarSurfaceForeground(footer, palette);
|
|
22108
|
+
return foreground === null ? backgroundlessBottomBarForegroundStyle(footer) : resolvedForegroundStyle(foreground);
|
|
22109
|
+
}
|
|
22110
|
+
/** A bar without its own colour paints nothing, so the footer's inks carry on. */
|
|
22111
|
+
function footerBottomBarInkStyle(footer, context) {
|
|
22112
|
+
const foreground = footer ? footerBottomBarSurfaceForeground(footer, context.theme.palette) : null;
|
|
22113
|
+
return foreground === null ? undefined : solvedInkStyle(foreground, context);
|
|
22114
|
+
}
|
|
22115
|
+
function footerBottomBarSurfaceForeground(footer, palette) {
|
|
22034
22116
|
const bar = footer.bottomBar;
|
|
22035
|
-
if (bar
|
|
22036
|
-
|
|
22037
|
-
}
|
|
22038
|
-
const foreground = resolveSurfaceForeground(bar.background, palette, {
|
|
22117
|
+
if (bar?.background?.type !== "color") return null;
|
|
22118
|
+
return resolveSurfaceForeground(bar.background, palette, {
|
|
22039
22119
|
text: bar.textColor,
|
|
22040
22120
|
link: footer.bottomTextLinkStyle?.colorToken ?? bar.textColor,
|
|
22041
22121
|
linkHover: footer.bottomTextLinkStyle?.hoverColorToken
|
|
22042
22122
|
}, { compositeBase: measuredFooterBackdrop(footer, palette) });
|
|
22043
|
-
return resolvedForegroundStyle(foreground);
|
|
22044
22123
|
}
|
|
22045
22124
|
function backgroundlessBottomBarForegroundStyle(footer) {
|
|
22046
22125
|
if (footer.background?.contentOwner === siteChromeBackgroundOverrideOwner) {
|
|
@@ -36604,6 +36683,7 @@ function buildOrderConfirmationContent(input) {
|
|
|
36604
36683
|
})) } : null
|
|
36605
36684
|
};
|
|
36606
36685
|
const templateVars = {
|
|
36686
|
+
customer_first_name: firstWordOf(customerDisplayName),
|
|
36607
36687
|
customer_name: customerDisplayName,
|
|
36608
36688
|
site_name: input.siteTitle ?? "Your Business",
|
|
36609
36689
|
order_subject: confirmationCopy.subject,
|
|
@@ -36635,6 +36715,10 @@ function buildOrderConfirmationContent(input) {
|
|
|
36635
36715
|
}
|
|
36636
36716
|
};
|
|
36637
36717
|
}
|
|
36718
|
+
/** The first word of their name (or their email, when that's all there is), for the headline. */
|
|
36719
|
+
function firstWordOf(displayName) {
|
|
36720
|
+
return displayName.trim().split(/\s+/)[0] || displayName;
|
|
36721
|
+
}
|
|
36638
36722
|
function resolveConfirmationCopy(variant, orderNumber) {
|
|
36639
36723
|
switch (variant.kind) {
|
|
36640
36724
|
case "pass_only": {
|
|
@@ -44352,17 +44436,7 @@ function resolveCardListSchedule(item, mode) {
|
|
|
44352
44436
|
}
|
|
44353
44437
|
/** Each part owns optional-content collapse once, for calendar and catalogue items. */
|
|
44354
44438
|
const partRenderers = {
|
|
44355
|
-
title:
|
|
44356
|
-
...listLookSlot(presentation, "item-title"),
|
|
44357
|
-
children: item.titleLink || item.href ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)("a", {
|
|
44358
|
-
...item.titleLink,
|
|
44359
|
-
href: item.titleLink?.href ?? item.href ?? undefined,
|
|
44360
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(LinkedLabel, {
|
|
44361
|
-
label: item.title,
|
|
44362
|
-
newTabHint: item.newTabHint
|
|
44363
|
-
})
|
|
44364
|
-
}) : item.title
|
|
44365
|
-
}),
|
|
44439
|
+
title: CardListTitle,
|
|
44366
44440
|
text: ({ item, presentation }) => item.textDocument ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(RichText, {
|
|
44367
44441
|
doc: item.textDocument,
|
|
44368
44442
|
...listLookSlot(presentation, "item-text"),
|
|
@@ -44371,14 +44445,7 @@ const partRenderers = {
|
|
|
44371
44445
|
...listLookSlot(presentation, "item-text"),
|
|
44372
44446
|
children: item.text
|
|
44373
44447
|
}) : null,
|
|
44374
|
-
media:
|
|
44375
|
-
...listLookSlot(presentation, "item-media"),
|
|
44376
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(MediaNodeServer, {
|
|
44377
|
-
value: item.media,
|
|
44378
|
-
size: ImagePresets.card,
|
|
44379
|
-
...listLookSlot(presentation, "photo")
|
|
44380
|
-
})
|
|
44381
|
-
}) : null,
|
|
44448
|
+
media: CardListMedia,
|
|
44382
44449
|
facts: ({ item, presentation }) => item.facts?.length ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)("dl", {
|
|
44383
44450
|
...listLookSlot(presentation, "facts"),
|
|
44384
44451
|
children: item.facts.map(({ label, value }) => /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
|
|
@@ -44466,6 +44533,41 @@ const partRenderers = {
|
|
|
44466
44533
|
children: props$1.actionNode
|
|
44467
44534
|
})
|
|
44468
44535
|
};
|
|
44536
|
+
/** Title and photo share the same destination and external-link behavior. */
|
|
44537
|
+
function cardListItemLink(item) {
|
|
44538
|
+
return item.titleLink ?? (item.href ? { href: item.href } : null);
|
|
44539
|
+
}
|
|
44540
|
+
function CardListTitle({ item, presentation, Title = "h3" }) {
|
|
44541
|
+
const link$2 = cardListItemLink(item);
|
|
44542
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Title, {
|
|
44543
|
+
...listLookSlot(presentation, "item-title"),
|
|
44544
|
+
children: link$2 ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)("a", {
|
|
44545
|
+
...link$2,
|
|
44546
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(LinkedLabel, {
|
|
44547
|
+
label: item.title,
|
|
44548
|
+
newTabHint: item.newTabHint
|
|
44549
|
+
})
|
|
44550
|
+
}) : item.title
|
|
44551
|
+
});
|
|
44552
|
+
}
|
|
44553
|
+
function CardListMedia({ item, presentation }) {
|
|
44554
|
+
if (!item.media) return null;
|
|
44555
|
+
const link$2 = cardListItemLink(item);
|
|
44556
|
+
const photo = /* @__PURE__ */ (0, import_jsx_runtime.jsx)(MediaNodeServer, {
|
|
44557
|
+
value: item.media,
|
|
44558
|
+
size: ImagePresets.card,
|
|
44559
|
+
...listLookSlot(presentation, "photo")
|
|
44560
|
+
});
|
|
44561
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
|
|
44562
|
+
...listLookSlot(presentation, "item-media"),
|
|
44563
|
+
children: link$2 ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)("a", {
|
|
44564
|
+
...link$2,
|
|
44565
|
+
className: "rb-block rb-h-full",
|
|
44566
|
+
"aria-label": `${item.title}${item.newTabHint ? " (opens in a new tab)" : ""}`,
|
|
44567
|
+
children: photo
|
|
44568
|
+
}) : photo
|
|
44569
|
+
});
|
|
44570
|
+
}
|
|
44469
44571
|
function CardListContentPart({ part, ...props$1 }) {
|
|
44470
44572
|
return partRenderers[part](props$1);
|
|
44471
44573
|
}
|
|
@@ -44546,6 +44648,56 @@ function LinkedLabel({ label, newTabHint }) {
|
|
|
44546
44648
|
})] });
|
|
44547
44649
|
}
|
|
44548
44650
|
|
|
44651
|
+
//#endregion
|
|
44652
|
+
//#region ../blocks/src/system/runtime/nodes/events/shared/EventCardIcons.tsx
|
|
44653
|
+
function MapPinIcon({ className, size = 16, strokeWidth = 2 }) {
|
|
44654
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("svg", {
|
|
44655
|
+
className,
|
|
44656
|
+
width: size,
|
|
44657
|
+
height: size,
|
|
44658
|
+
viewBox: "0 0 24 24",
|
|
44659
|
+
fill: "none",
|
|
44660
|
+
stroke: "currentColor",
|
|
44661
|
+
strokeWidth,
|
|
44662
|
+
strokeLinecap: "round",
|
|
44663
|
+
strokeLinejoin: "round",
|
|
44664
|
+
"aria-hidden": "true",
|
|
44665
|
+
focusable: "false",
|
|
44666
|
+
children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)("path", { d: "M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0 1 18 0z" }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("circle", {
|
|
44667
|
+
cx: "12",
|
|
44668
|
+
cy: "10",
|
|
44669
|
+
r: "3"
|
|
44670
|
+
})]
|
|
44671
|
+
});
|
|
44672
|
+
}
|
|
44673
|
+
function CalendarIcon({ className, size = 16, strokeWidth = 2 }) {
|
|
44674
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("svg", {
|
|
44675
|
+
className,
|
|
44676
|
+
width: size,
|
|
44677
|
+
height: size,
|
|
44678
|
+
viewBox: "0 0 24 24",
|
|
44679
|
+
fill: "none",
|
|
44680
|
+
stroke: "currentColor",
|
|
44681
|
+
strokeWidth,
|
|
44682
|
+
strokeLinecap: "round",
|
|
44683
|
+
strokeLinejoin: "round",
|
|
44684
|
+
"aria-hidden": "true",
|
|
44685
|
+
focusable: "false",
|
|
44686
|
+
children: [
|
|
44687
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("rect", {
|
|
44688
|
+
x: "3",
|
|
44689
|
+
y: "4",
|
|
44690
|
+
width: "18",
|
|
44691
|
+
height: "18",
|
|
44692
|
+
rx: "2"
|
|
44693
|
+
}),
|
|
44694
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("path", { d: "M16 2v4" }),
|
|
44695
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("path", { d: "M8 2v4" }),
|
|
44696
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("path", { d: "M3 10h18" })
|
|
44697
|
+
]
|
|
44698
|
+
});
|
|
44699
|
+
}
|
|
44700
|
+
|
|
44549
44701
|
//#endregion
|
|
44550
44702
|
//#region ../blocks/src/system/runtime/nodes/events/shared/EventItem.tsx
|
|
44551
44703
|
/** Arrangement content choices are data, ready for other live offering lists to reuse. */
|
|
@@ -44579,6 +44731,8 @@ const eventItemParts = {
|
|
|
44579
44731
|
"date",
|
|
44580
44732
|
"title",
|
|
44581
44733
|
"meta",
|
|
44734
|
+
"time",
|
|
44735
|
+
"places",
|
|
44582
44736
|
"action"
|
|
44583
44737
|
],
|
|
44584
44738
|
"month-day": [
|
|
@@ -44595,16 +44749,31 @@ function eventItemFacts(props$1) {
|
|
|
44595
44749
|
date: formatEventCompactDateRail(props$1.event.startsAt, options, "as-written"),
|
|
44596
44750
|
time: formatEventTimeRange(props$1.event, options),
|
|
44597
44751
|
price: formatEventPrice(props$1.event),
|
|
44598
|
-
meta:
|
|
44599
|
-
|
|
44600
|
-
formatEventTeacherLine(props$1.event),
|
|
44601
|
-
props$1.showVenue !== false ? props$1.event.venue?.name : null
|
|
44602
|
-
].filter(Boolean).join(" · "),
|
|
44752
|
+
meta: eventItemMeta(props$1),
|
|
44753
|
+
venueIcon: props$1.arrangement === "compact" && props$1.showVenue !== false && Boolean(props$1.event.venue),
|
|
44603
44754
|
places: props$1.showCapacity ? formatEventRemainingPlaces(props$1.event, { full: "Sold out" }) : null,
|
|
44604
44755
|
availability: availability.isFull ? "full" : availability.status === "filling" ? "low" : "available",
|
|
44605
44756
|
description: props$1.event.presentation?.summary ?? props$1.event.description
|
|
44606
44757
|
};
|
|
44607
44758
|
}
|
|
44759
|
+
/** Compact rows keep pricing in the details rail and time in the action rail. */
|
|
44760
|
+
function eventItemMeta(props$1) {
|
|
44761
|
+
const parts = props$1.parts ?? eventItemParts[props$1.arrangement];
|
|
44762
|
+
const venue = props$1.showVenue !== false ? props$1.event.venue?.name : null;
|
|
44763
|
+
const teacher = formatEventTeacherLine(props$1.event);
|
|
44764
|
+
const time = parts.includes("time") ? null : formatEventTimeRange(props$1.event, eventDateOptions(props$1.event));
|
|
44765
|
+
const price$1 = props$1.arrangement === "compact" && !parts.includes("price") ? formatEventPrice(props$1.event) : null;
|
|
44766
|
+
return (props$1.arrangement === "compact" ? [
|
|
44767
|
+
venue,
|
|
44768
|
+
teacher,
|
|
44769
|
+
price$1,
|
|
44770
|
+
time
|
|
44771
|
+
] : [
|
|
44772
|
+
time,
|
|
44773
|
+
teacher,
|
|
44774
|
+
venue
|
|
44775
|
+
]).filter(Boolean).join(" · ");
|
|
44776
|
+
}
|
|
44608
44777
|
/**
|
|
44609
44778
|
* Keep one RSC component boundary per item. Re-forwarding shared presentation
|
|
44610
44779
|
* props through layout/part components multiplies React's development debug
|
|
@@ -44638,15 +44807,22 @@ function renderCalendarItem(props$1) {
|
|
|
44638
44807
|
...listLookSlot(props$1, props$1.arrangement === "grid" ? "item-body" : "what"),
|
|
44639
44808
|
children: parts.filter(body).map(renderPart)
|
|
44640
44809
|
}),
|
|
44641
|
-
parts.filter((part) => [
|
|
44810
|
+
renderCalendarTrailingParts(props$1, parts.filter((part) => [
|
|
44642
44811
|
"time",
|
|
44643
44812
|
"places",
|
|
44644
44813
|
"price",
|
|
44645
44814
|
"action"
|
|
44646
|
-
].includes(part) && !body(part))
|
|
44815
|
+
].includes(part) && !body(part)), renderPart)
|
|
44647
44816
|
]
|
|
44648
44817
|
});
|
|
44649
44818
|
}
|
|
44819
|
+
function renderCalendarTrailingParts(props$1, parts, renderPart) {
|
|
44820
|
+
const content = parts.map(renderPart);
|
|
44821
|
+
return props$1.arrangement === "compact" && parts.length > 0 ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
|
|
44822
|
+
...listLookSlot(props$1, "item-actions"),
|
|
44823
|
+
children: content
|
|
44824
|
+
}) : content;
|
|
44825
|
+
}
|
|
44650
44826
|
function eventItemTag(arrangement) {
|
|
44651
44827
|
return arrangement === "ledger" || arrangement === "day-groups" ? "li" : "article";
|
|
44652
44828
|
}
|
|
@@ -44679,9 +44855,9 @@ function renderEventItemContentPart({ part, props: props$1, facts }) {
|
|
|
44679
44855
|
children: props$1.event.title
|
|
44680
44856
|
})
|
|
44681
44857
|
});
|
|
44682
|
-
case "time": return /* @__PURE__ */ (0, import_jsx_runtime.
|
|
44858
|
+
case "time": return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("p", {
|
|
44683
44859
|
...listLookSlot(props$1, "time"),
|
|
44684
|
-
children: facts.time
|
|
44860
|
+
children: [props$1.arrangement === "compact" ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(ClockIcon, { "aria-hidden": "true" }) : null, facts.time]
|
|
44685
44861
|
});
|
|
44686
44862
|
case "places": return facts.places ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)("p", {
|
|
44687
44863
|
...listLookSlot(props$1, "places"),
|
|
@@ -44716,6 +44892,7 @@ function renderEventItemMeta({ props: props$1, facts }) {
|
|
|
44716
44892
|
return facts.meta || places ? /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("p", {
|
|
44717
44893
|
...listLookSlot(props$1, "item-meta"),
|
|
44718
44894
|
children: [
|
|
44895
|
+
facts.venueIcon ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(MapPinIcon, {}) : null,
|
|
44719
44896
|
facts.meta,
|
|
44720
44897
|
facts.meta && places ? " · " : null,
|
|
44721
44898
|
places ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
|
|
@@ -44726,13 +44903,15 @@ function renderEventItemMeta({ props: props$1, facts }) {
|
|
|
44726
44903
|
}) : null;
|
|
44727
44904
|
}
|
|
44728
44905
|
function renderEventItemImage(props$1) {
|
|
44906
|
+
const link$2 = resolveEventLinkProps(props$1.event);
|
|
44729
44907
|
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(CardListContentPart, {
|
|
44730
44908
|
part: "media",
|
|
44731
44909
|
item: {
|
|
44732
44910
|
id: props$1.event.id,
|
|
44733
44911
|
title: props$1.event.title,
|
|
44734
44912
|
media: props$1.event.presentation?.image,
|
|
44735
|
-
|
|
44913
|
+
titleLink: link$2,
|
|
44914
|
+
newTabHint: link$2.target === "_blank"
|
|
44736
44915
|
},
|
|
44737
44916
|
presentation: props$1
|
|
44738
44917
|
});
|
|
@@ -45122,56 +45301,6 @@ function cropHeightStyle(height, heightAs) {
|
|
|
45122
45301
|
return heightAs === "minimum" ? { minHeight: height } : { height };
|
|
45123
45302
|
}
|
|
45124
45303
|
|
|
45125
|
-
//#endregion
|
|
45126
|
-
//#region ../blocks/src/system/runtime/nodes/events/shared/EventCardIcons.tsx
|
|
45127
|
-
function MapPinIcon({ className, size = 16, strokeWidth = 2 }) {
|
|
45128
|
-
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("svg", {
|
|
45129
|
-
className,
|
|
45130
|
-
width: size,
|
|
45131
|
-
height: size,
|
|
45132
|
-
viewBox: "0 0 24 24",
|
|
45133
|
-
fill: "none",
|
|
45134
|
-
stroke: "currentColor",
|
|
45135
|
-
strokeWidth,
|
|
45136
|
-
strokeLinecap: "round",
|
|
45137
|
-
strokeLinejoin: "round",
|
|
45138
|
-
"aria-hidden": "true",
|
|
45139
|
-
focusable: "false",
|
|
45140
|
-
children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)("path", { d: "M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0 1 18 0z" }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("circle", {
|
|
45141
|
-
cx: "12",
|
|
45142
|
-
cy: "10",
|
|
45143
|
-
r: "3"
|
|
45144
|
-
})]
|
|
45145
|
-
});
|
|
45146
|
-
}
|
|
45147
|
-
function CalendarIcon({ className, size = 16, strokeWidth = 2 }) {
|
|
45148
|
-
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("svg", {
|
|
45149
|
-
className,
|
|
45150
|
-
width: size,
|
|
45151
|
-
height: size,
|
|
45152
|
-
viewBox: "0 0 24 24",
|
|
45153
|
-
fill: "none",
|
|
45154
|
-
stroke: "currentColor",
|
|
45155
|
-
strokeWidth,
|
|
45156
|
-
strokeLinecap: "round",
|
|
45157
|
-
strokeLinejoin: "round",
|
|
45158
|
-
"aria-hidden": "true",
|
|
45159
|
-
focusable: "false",
|
|
45160
|
-
children: [
|
|
45161
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("rect", {
|
|
45162
|
-
x: "3",
|
|
45163
|
-
y: "4",
|
|
45164
|
-
width: "18",
|
|
45165
|
-
height: "18",
|
|
45166
|
-
rx: "2"
|
|
45167
|
-
}),
|
|
45168
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("path", { d: "M16 2v4" }),
|
|
45169
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("path", { d: "M8 2v4" }),
|
|
45170
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("path", { d: "M3 10h18" })
|
|
45171
|
-
]
|
|
45172
|
-
});
|
|
45173
|
-
}
|
|
45174
|
-
|
|
45175
45304
|
//#endregion
|
|
45176
45305
|
//#region ../blocks/src/system/runtime/nodes/events/shared/EventCard.tsx
|
|
45177
45306
|
/** The category's badge, when the event has a category. */
|
|
@@ -46243,7 +46372,7 @@ function buildEventCollectionListDisplay(source) {
|
|
|
46243
46372
|
events: Array.isArray(source.events) ? [...source.events] : [],
|
|
46244
46373
|
listLayout: source.listLayout ?? "stack",
|
|
46245
46374
|
listColumns: source.listColumns ?? "3",
|
|
46246
|
-
eventsPerPage: source.lookSlots !== undefined && source.listLayout === "compact" ? 3 :
|
|
46375
|
+
eventsPerPage: resolveEventCalendarListPageSize({ eventsPerPage: source.eventsPerPage ?? (source.lookSlots !== undefined && source.listLayout === "compact" ? "3" : undefined) }),
|
|
46247
46376
|
paginationAction,
|
|
46248
46377
|
sectionAction: paginationAction.kind === "seeAllLink" ? {
|
|
46249
46378
|
href: paginationAction.href,
|
|
@@ -56319,7 +56448,10 @@ const systemCustomizeFacetDefinitions = [
|
|
|
56319
56448
|
], "icons"),
|
|
56320
56449
|
blockKinds: cardListFamilyBlocks
|
|
56321
56450
|
},
|
|
56322
|
-
|
|
56451
|
+
{
|
|
56452
|
+
...fixedKnob("block.event-calendar", "showCapacity", "Places left", onOff, "true", false, true),
|
|
56453
|
+
description: "Show how many places are left on each event"
|
|
56454
|
+
}
|
|
56323
56455
|
];
|
|
56324
56456
|
const systemCustomizeFacetIds = systemCustomizeFacetDefinitions.map((definition$1) => definition$1.id);
|
|
56325
56457
|
const systemCustomizeFacetValues = Array.from(new Set(systemCustomizeFacetDefinitions.flatMap((definition$1) => definition$1.values.map((option) => option.value))));
|
|
@@ -69029,6 +69161,7 @@ function applyArrangementRhythm(entry, position) {
|
|
|
69029
69161
|
const tinted = resolveArrangementTints(updated$1, grounded, runtime, surface) ?? grounded;
|
|
69030
69162
|
return {
|
|
69031
69163
|
...entry,
|
|
69164
|
+
styleBackground: arrangementGroundToken(resolveSectionBackground({ kind: "none" }, null, rhythm)),
|
|
69032
69165
|
renderableContent: {
|
|
69033
69166
|
...updated$1,
|
|
69034
69167
|
_effectiveLook: tinted,
|
|
@@ -79899,7 +80032,7 @@ async function loadConfig(configPath, output) {
|
|
|
79899
80032
|
return { errorMessage: "No config path provided." };
|
|
79900
80033
|
}
|
|
79901
80034
|
try {
|
|
79902
|
-
const { loadConfigFile: loadConfigFile$1 } = await import("../load-config-
|
|
80035
|
+
const { loadConfigFile: loadConfigFile$1 } = await import("../load-config-DAdJwh-i.mjs");
|
|
79903
80036
|
const rawConfig = await loadConfigFile$1(configPath);
|
|
79904
80037
|
const parsed = riverbankSiteConfigSchema.safeParse(rawConfig);
|
|
79905
80038
|
if (!parsed.success) {
|