@riverbankcms/sdk 0.136.0 → 0.137.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/CHANGELOG.md +101 -0
- package/dist/{PreviewEditorSidebar-BU5ZlhQR.mjs → PreviewEditorSidebar-Bn6cONPa.mjs} +8 -8
- package/dist/{PreviewEditorUI-9XkHL-bC.mjs → PreviewEditorUI-LAwXZPSx.mjs} +3 -3
- package/dist/{PreviewQueryProvider-wbEpXryy.mjs → PreviewQueryProvider-ztQUdsNo.mjs} +1 -1
- package/dist/{SdkPreviewModeRuntime-CnWmj-2B.mjs → SdkPreviewModeRuntime-BbbGsI_v.mjs} +596 -164
- package/dist/{SiteChromeCustomizeContext-B6d5zkog.mjs → SiteChromeCustomizeContext-BbkNSt5a.mjs} +2888 -1404
- package/dist/_dts/ai/src/contracts/proposals.d.ts +12 -298
- package/dist/_dts/ai/src/contracts/siteStyleProposalSchemas.d.ts +21 -14
- package/dist/_dts/ai/src/designer/themePatch.d.ts +5 -10
- package/dist/_dts/api/src/accessAdmin.d.ts +1 -9
- package/dist/_dts/api/src/accountApi.d.ts +49 -2
- package/dist/_dts/api/src/contentRuntime.d.ts +1 -4
- package/dist/_dts/api/src/domainConnection.d.ts +41 -0
- package/dist/_dts/api/src/endpoints.d.ts +194 -181
- package/dist/_dts/api/src/index.d.ts +4 -3
- package/dist/_dts/api/src/media.d.ts +19 -2
- package/dist/_dts/api/src/sdkContracts.d.ts +2 -15
- package/dist/_dts/api/src/sdkMediaContracts.d.ts +40 -0
- package/dist/_dts/api/src/sdkMediaEndpointDefinitions.d.ts +61 -0
- package/dist/_dts/api/src/sdkThemeWire.d.ts +15 -4
- package/dist/_dts/api/src/siteInfrastructure.d.ts +17 -23
- package/dist/_dts/api/src/siteManagementEndpoints.d.ts +7 -21
- package/dist/_dts/api/src/sitePlatformEndpoints.d.ts +27 -3
- package/dist/_dts/api/src/siteRuntimeEndpoints.d.ts +37 -17
- package/dist/_dts/api/src/types.d.ts +1 -1
- package/dist/_dts/blocks/src/PageRenderer.d.ts +2 -2
- package/dist/_dts/blocks/src/index.d.ts +1 -1
- package/dist/_dts/blocks/src/pageRenderAdmission.d.ts +9 -0
- package/dist/_dts/blocks/src/pageRendererBlockSupport.d.ts +75 -0
- package/dist/_dts/blocks/src/pageRendererBoundaries.d.ts +2 -0
- package/dist/_dts/blocks/src/server.d.ts +1 -1
- package/dist/_dts/blocks/src/system/blocks/event-registration.d.ts +1 -1
- package/dist/_dts/blocks/src/system/runtime/api/client.d.ts +2 -1
- package/dist/_dts/blocks/src/system/runtime/hooks/useCalendarEvents.d.ts +3 -3
- package/dist/_dts/blocks/src/system/runtime/hooks/useCalendarEvents.state.d.ts +34 -22
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/ErrorStep.d.ts +3 -5
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/event-registration.headless.contract.d.ts +2 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/event-registration.headless.planning.d.ts +1 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/hooks.d.ts +2 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/registrationErrorPresentation.d.ts +5 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/registrationErrorRecovery.d.ts +25 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/registrationWizardContext.d.ts +4 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationStripeReturn.d.ts +7 -3
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationSubmit.d.ts +2 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationWizard.d.ts +5 -2
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useWaitlistClaimRestoration.d.ts +2 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/events/domain/capacity.d.ts +164 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/events/domain/cta.d.ts +29 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/events/domain/dates.d.ts +47 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/events/domain/index.d.ts +14 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/events/domain/people.d.ts +6 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/events/domain/pricing.d.ts +31 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/OfferingTitle.d.ts +11 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/WeekAgendaView.d.ts +1 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/WeekBoardView.d.ts +1 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/index.d.ts +3 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/listingLayout.d.ts +23 -0
- package/dist/_dts/commerce/src/purchase/event-registration-errors.d.ts +57 -0
- package/dist/_dts/commerce/src/purchase/index.d.ts +1 -0
- package/dist/_dts/db/src/generated/supabase/database.types.d.ts +8 -40
- package/dist/_dts/db/src/index.d.ts +1 -0
- package/dist/_dts/db/src/utils/postgrestFilter.d.ts +2 -0
- package/dist/_dts/media-core/src/bulkDeletePlanning.d.ts +4 -0
- package/dist/_dts/media-core/src/fileDomain.d.ts +3 -0
- package/dist/_dts/preview-next/src/client/preview/PreviewShell.d.ts +1 -0
- package/dist/_dts/preview-next/src/client/preview/PreviewShellLayout.d.ts +1 -0
- package/dist/_dts/preview-next/src/client/preview/SiteChromeCustomizeContext.d.ts +3 -2
- package/dist/_dts/preview-next/src/client/preview/siteChromeBrandPreferences.d.ts +1 -1
- package/dist/_dts/preview-next/src/client/preview/siteChromeQuickControlHistoryState.d.ts +2 -0
- package/dist/_dts/preview-next/src/client/preview/siteChromeQuickControlSaveRequest.d.ts +51 -0
- package/dist/_dts/preview-next/src/client/preview/siteChromeSavePlan.d.ts +24 -2
- package/dist/_dts/preview-next/src/client/preview/siteStylePreviewPlanner.d.ts +23 -1
- package/dist/_dts/preview-next/src/client/preview/usePersistedHeaderPreferences.d.ts +8 -0
- package/dist/_dts/sdk/src/public-api/contracts.d.ts +2 -1
- package/dist/_dts/sdk/src/version.d.ts +1 -1
- package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
- package/dist/_dts/theme-core/src/gradients/types.d.ts +5 -0
- package/dist/_dts/theme-core/src/header/interactionPalette.d.ts +25 -2
- package/dist/_dts/theme-core/src/mock-themes/all.d.ts +3 -3
- package/dist/_dts/theme-core/src/schema.d.ts +12 -11
- package/dist/_dts/theme-core/src/site-styles/compilationPlan.d.ts +43 -3
- package/dist/_dts/theme-core/src/site-styles/curatedSiteStyles.d.ts +10 -0
- package/dist/_dts/theme-core/src/site-styles/headerBrandPresentation.d.ts +63 -0
- package/dist/_dts/theme-core/src/site-styles/headerBytesComparison.d.ts +30 -0
- package/dist/_dts/theme-core/src/site-styles/headerInteractionPalette.d.ts +50 -1
- package/dist/_dts/theme-core/src/site-styles/headerLayoutCatalog.d.ts +48 -9
- package/dist/_dts/theme-core/src/site-styles/headerPreferences.d.ts +162 -0
- package/dist/_dts/theme-core/src/site-styles/headerPreferencesPersistence.d.ts +73 -0
- package/dist/_dts/theme-core/src/site-styles/headerRecompile.d.ts +118 -0
- package/dist/_dts/theme-core/src/site-styles/headerStyleCompiler.d.ts +10 -1
- package/dist/_dts/theme-core/src/site-styles/headerStyleDefaults.d.ts +1 -1
- package/dist/_dts/theme-core/src/site-styles/headerStyleRecipe.d.ts +7 -0
- package/dist/_dts/theme-core/src/site-styles/index.d.ts +5 -0
- package/dist/_dts/theme-core/src/site-styles/previewCompiler.d.ts +1 -1
- package/dist/_dts/theme-core/src/site-styles/siteChromeBackgrounds.d.ts +20 -1
- package/dist/_dts/theme-core/src/site-styles/siteChromeNavPreferences.d.ts +43 -2
- package/dist/client/{BookingConsentAgreement-DCch21a6.mjs → BookingConsentAgreement--_fUCZe-.mjs} +2 -2
- package/dist/client/{DiscountCodeDisclosure-DIj1T59K.mjs → DiscountCodeDisclosure-BMipSoDJ.mjs} +1 -1
- package/dist/client/{EventCombined.client-BWVNlXTx.mjs → EventCombined.client-CwJOxn7A.mjs} +154 -178
- package/dist/client/{EventListing.client-DVFCDe3i.mjs → EventListing.client-eVwiylPW.mjs} +2 -2
- package/dist/client/{LeafletStaticMap-BY5mIHw9.mjs → LeafletStaticMap-IKenna5u.mjs} +1 -1
- package/dist/client/{accordion-CK29E8rG.mjs → accordion-MGAO3PuE.mjs} +1 -1
- package/dist/client/{bookingForm-DFvnet-N.mjs → bookingForm-CudlQPUu.mjs} +5 -5
- package/dist/client/bookings.mjs +418 -79
- package/dist/client/capacity-BW00PO7s.mjs +271 -0
- package/dist/client/{carousel-BVU5NQlb.mjs → carousel-BrbGJ2Jl.mjs} +1 -1
- package/dist/client/{cart-BNItcZVa.mjs → cart-Bq5eU0xZ.mjs} +3 -3
- package/dist/client/{checkout-Bu6iCdkP.mjs → checkout-BAFVRdrK.mjs} +3 -3
- package/dist/client/client.mjs +2919 -1918
- package/dist/client/{context-BImarOAq.mjs → context-DCkiHVdD.mjs} +8 -5
- package/dist/client/dates-2RPXHQy4.mjs +264 -0
- package/dist/client/{eventCalendar-DS2h-UXD.mjs → eventCalendar-B0O-hPF7.mjs} +10 -17
- package/dist/client/{eventCombined-Drt4Oq9p.mjs → eventCombined-DCkDaoDI.mjs} +3 -3
- package/dist/client/{eventDetails-Bl2vWgTX.mjs → eventDetails-D8GG2dnD.mjs} +5 -3
- package/dist/client/{eventListing-CS7PHY7v.mjs → eventListing-3ssV_bxz.mjs} +3 -3
- package/dist/client/{eventRegistration-D-j8eNy2.mjs → eventRegistration-bPQo3kVw.mjs} +562 -309
- package/dist/client/{form-RMpoLTyr.mjs → form-qMv8RDkk.mjs} +2 -2
- package/dist/client/{headerSection-BYE3Lb3k.mjs → headerSection-CH0Sc5hX.mjs} +2 -2
- package/dist/client/hooks.mjs +289 -32
- package/dist/client/{locationMap-BxSr7Kkh.mjs → locationMap-0_xlBnNI.mjs} +2 -2
- package/dist/client/{newsletterForm-DerbXwFC.mjs → newsletterForm-NUW7m9RI.mjs} +2 -2
- package/dist/client/{productDetail-4SZCLhAf.mjs → productDetail-FBEOM7jW.mjs} +3 -3
- package/dist/client/{productList-D7AP4GNq.mjs → productList-R0OSGhnn.mjs} +3 -3
- package/dist/client/{propsDecoder-pzBeCh14.mjs → propsDecoder-pYvx_Srl.mjs} +88 -380
- package/dist/client/rendering/client.mjs +2616 -1637
- package/dist/client/rendering/islands.mjs +17 -17
- package/dist/client/rendering.mjs +2710 -1702
- package/dist/client/{scrollToBlock-CduAKf8T.mjs → scrollToBlock-ByQv96M2.mjs} +1 -1
- package/dist/client/{shop-Cp5p_kGe.mjs → shop-RUG9DmRE.mjs} +6 -6
- package/dist/client/{shop-commerce-DicXYaYX.mjs → shop-commerce-B76Jz23B.mjs} +5 -5
- package/dist/client/{shop-commerce-store-CGWnpY4K.mjs → shop-commerce-store-QuQNdDsD.mjs} +1 -1
- package/dist/client/{shopShared-BDf9ljkm.mjs → shopShared-vXU1omwJ.mjs} +3 -3
- package/dist/client/{useEventFilters-DeeyGYuk.mjs → useEventFilters-ByuU6HLA.mjs} +33 -18
- package/dist/preview-next/before-render.mjs +79 -51
- package/dist/preview-next/client/runtime.mjs +4 -4
- package/dist/preview-next/keepAlive.mjs +79 -51
- package/dist/preview-next/middleware.mjs +79 -51
- package/dist/{previewAuthStore-DbqBol0V.mjs → previewAuthStore-L_cKW8Sb.mjs} +79 -51
- package/dist/{sdk-runtime-19MO27F0.mjs → sdk-runtime-sUMr5d70.mjs} +2 -2
- package/dist/{separator-DaPLtJ1f.mjs → separator-BIHkie5i.mjs} +1 -1
- package/dist/server/components.mjs +2077 -1274
- package/dist/server/config-validation.mjs +289 -32
- package/dist/server/config.mjs +289 -32
- package/dist/server/data.mjs +289 -32
- package/dist/server/index.mjs +80 -52
- package/dist/server/next.mjs +1822 -1111
- package/dist/server/page-converter.mjs +167 -31
- package/dist/server/prebuild.mjs +1 -1
- package/dist/server/rendering/server.mjs +1988 -1286
- package/dist/server/rendering.mjs +1943 -1182
- package/dist/server/routing.mjs +351 -86
- package/dist/server/server.mjs +293 -128
- package/dist/server/theme-bridge.mjs +52 -8
- package/dist/server/theme.mjs +27 -8
- package/dist/styles/index.css +15 -0
- package/package.json +1 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/eventCapacity.d.ts +0 -48
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/pricing.d.ts +0 -17
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/utils.d.ts +0 -100
- /package/dist/_dts/blocks/src/system/runtime/nodes/events/{shared → domain}/destination.d.ts +0 -0
|
@@ -320,15 +320,17 @@ export type BackupAccessImportResult = {
|
|
|
320
320
|
}>;
|
|
321
321
|
};
|
|
322
322
|
};
|
|
323
|
+
export type BackupImportTableCounts = {
|
|
324
|
+
created: number;
|
|
325
|
+
updated: number;
|
|
326
|
+
skipped: number;
|
|
327
|
+
failed: number;
|
|
328
|
+
};
|
|
323
329
|
export type BackupImportResponse = {
|
|
324
330
|
ok: boolean;
|
|
325
331
|
siteId?: string;
|
|
326
332
|
dryRun?: boolean;
|
|
327
|
-
counts?: Record<string,
|
|
328
|
-
created: number;
|
|
329
|
-
updated: number;
|
|
330
|
-
failed: number;
|
|
331
|
-
}>;
|
|
333
|
+
counts?: Record<string, BackupImportTableCounts>;
|
|
332
334
|
warnings?: string[];
|
|
333
335
|
errors?: Array<{
|
|
334
336
|
table: string;
|
|
@@ -341,8 +343,8 @@ export type BackupImportResponse = {
|
|
|
341
343
|
details?: unknown;
|
|
342
344
|
};
|
|
343
345
|
export type BackupPreviewResponse = {
|
|
344
|
-
ok:
|
|
345
|
-
manifest
|
|
346
|
+
ok: true;
|
|
347
|
+
manifest: {
|
|
346
348
|
siteId: string;
|
|
347
349
|
siteSlug: string;
|
|
348
350
|
siteTitle: string;
|
|
@@ -357,9 +359,7 @@ export type BackupPreviewResponse = {
|
|
|
357
359
|
mediaCount: number;
|
|
358
360
|
mediaBytes: number;
|
|
359
361
|
};
|
|
360
|
-
storagePath
|
|
361
|
-
error?: string;
|
|
362
|
-
code?: string;
|
|
362
|
+
storagePath: string;
|
|
363
363
|
};
|
|
364
364
|
export type CreateBackupUploadUrlRequest = {
|
|
365
365
|
filename: string;
|
|
@@ -440,22 +440,16 @@ export type ImportBackupAsNewSiteRequest = {
|
|
|
440
440
|
title?: string;
|
|
441
441
|
};
|
|
442
442
|
export type ImportBackupAsNewSiteResponse = {
|
|
443
|
-
ok:
|
|
444
|
-
siteId
|
|
445
|
-
slug
|
|
446
|
-
title
|
|
447
|
-
counts
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
failed: number;
|
|
451
|
-
}>;
|
|
452
|
-
warnings?: string[];
|
|
453
|
-
errors?: Array<{
|
|
443
|
+
ok: true;
|
|
444
|
+
siteId: string;
|
|
445
|
+
slug: string;
|
|
446
|
+
title: string;
|
|
447
|
+
counts: Record<string, BackupImportTableCounts>;
|
|
448
|
+
warnings: string[];
|
|
449
|
+
errors: Array<{
|
|
454
450
|
table: string;
|
|
455
451
|
id: string;
|
|
456
452
|
error: string;
|
|
457
453
|
}>;
|
|
458
|
-
error?: string;
|
|
459
|
-
code?: string;
|
|
460
454
|
};
|
|
461
455
|
export {};
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { FooterCompositionV1, PublicProfile, RectificationHistoryPropagationPlan, RectificationIdentityBoundary, RectificationIssueUrl, RectificationSurface } from '../../core/src/index';
|
|
2
2
|
import type { CamelizeKeys, DbRow, DbJson } from '../../db/src/index';
|
|
3
3
|
import type { APIEndpoint } from './apiEndpointTypes';
|
|
4
|
+
import type { CustomDomainConnectionSnapshot, DomainHostingStatus } from './domainConnection';
|
|
4
5
|
import type { AcceptAdminInviteRequest, AcceptAdminInviteResponse, AcceptSiteInvitationRequest, AcceptSiteInvitationResponse, AddCustomDomainRequest, AddCustomDomainResponse, AdminChangePlanRequest, AdminChangePlanResponse, AdminDeleteUserResponse, AuthInviteContinueRequest, AuthInviteContinueResponse, AuthInviteRegisterRequest, AuthInviteRegisterResponse, AuthResetCompleteRequest, AuthResetCompleteResponse, AuthSubmissionResult, BulkOperationResult, ChangePlanRequest, ChangePlanResponse, CreateAdminInviteRequest, CreateAdminInviteResponse, CreateAdminUserRequest, CreateAdminUserResponse, CreateAllowedDomainRequest, CreateAllowedDomainResponse, DeleteAllowedDomainResponse, DomainConfigResult, DomainSearchResultResponse, CurrentUserPractitionerLinkResponse, InviteSiteMemberRequest, InviteSiteMemberResponse, LinkCurrentUserPractitionerRequest, ListAdminInvitesResponse, ListAllowedDomainsResponse, ListSiteMembersResponse, LookupSiteDomainRequest, LookupSiteDomainResponse, MfaBackupCodesOverviewResponse, MfaBackupCodesRotateResponse, MfaOverviewResponse, MfaPhoneChallengeRequest, MfaPhoneChallengeResponse, MfaPhoneEnrollRequest, MfaPhoneEnrollResponse, MfaPhoneVerifyRequest, MfaTotpActivateRequest, MfaTotpEnrollResponse, MfaTotpVerifyRequest, MfaTotpVerifyResponse, ReauthSubmissionResult, RegisterDomainRequestPayload, RegisterDomainResponse, RegistrarBooleanMutationRequest, RegistrarLifecycleResponse, RegistrarRenewalPostureResponse, RegisterSiteDomainRequest, RegisterSiteDomainResponse, RemoveSiteMemberResponse, RevokeAdminInviteResponse, RevokeSiteInvitationResponse, ResendSiteInvitationResponse, SetHomepageRequest, SetHomepageResponse, SiteDomainContactPayload, SiteDomainRecord, TransferSiteOwnershipRequest, TransferSiteOwnershipResponse, UpdateSiteMemberRoleRequest, UpdateSiteMemberRoleResponse } from './accessAdmin';
|
|
5
6
|
import type { AdminRoleMutationResponse, RevokeAdminRoleRequest, StartImpersonationRequest, StartImpersonationResponse, StopImpersonationRequest, StopImpersonationResponse, UpsertAdminRoleRequest } from './admin/types';
|
|
6
7
|
import type { AccountRevokeSessionsBody, AccountRevokeSessionsResponse, AccountUpdatePasswordBody, AccountUpdatePasswordResponse, CreateManualSiteRequest, CreateManualSiteResponse } from './siteOperations';
|
|
@@ -431,16 +432,7 @@ export type SiteManagementAPIEndpoints = {
|
|
|
431
432
|
correct: boolean;
|
|
432
433
|
error?: string;
|
|
433
434
|
} | null;
|
|
434
|
-
|
|
435
|
-
verified: boolean;
|
|
436
|
-
verification?: Array<{
|
|
437
|
-
type: string;
|
|
438
|
-
domain: string;
|
|
439
|
-
value: string;
|
|
440
|
-
reason: string;
|
|
441
|
-
}>;
|
|
442
|
-
error?: string;
|
|
443
|
-
};
|
|
435
|
+
hosting: DomainHostingStatus;
|
|
444
436
|
vercelRecords: Array<{
|
|
445
437
|
id: string;
|
|
446
438
|
slug: string;
|
|
@@ -474,10 +466,7 @@ export type SiteManagementAPIEndpoints = {
|
|
|
474
466
|
verifyDomainDns: APIEndpoint<never, {
|
|
475
467
|
domainId: string;
|
|
476
468
|
}, {
|
|
477
|
-
|
|
478
|
-
verified: boolean;
|
|
479
|
-
error?: string;
|
|
480
|
-
};
|
|
469
|
+
hosting: DomainHostingStatus;
|
|
481
470
|
resend?: {
|
|
482
471
|
success: boolean;
|
|
483
472
|
error?: string;
|
|
@@ -507,13 +496,10 @@ export type SiteManagementAPIEndpoints = {
|
|
|
507
496
|
retryDomainVercel: APIEndpoint<never, {
|
|
508
497
|
domainId: string;
|
|
509
498
|
}, {
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
value: string;
|
|
515
|
-
reason: string;
|
|
516
|
-
}>;
|
|
499
|
+
connection: CustomDomainConnectionSnapshot | null;
|
|
500
|
+
registeredOwnership: Extract<DomainHostingStatus, {
|
|
501
|
+
kind: 'registered';
|
|
502
|
+
}> | null;
|
|
517
503
|
}>;
|
|
518
504
|
retryDomainResend: APIEndpoint<never, {
|
|
519
505
|
domainId: string;
|
|
@@ -9,8 +9,8 @@ import type { CreateManagementKeyRequest, CreateManagementKeyResponse, CreateSit
|
|
|
9
9
|
import type { GetSiteInspirationAnalysisResponse, ListSiteInspirationAnalysesResponse } from './siteGeneration';
|
|
10
10
|
import type { ListGscPropertiesAdminResponse, AuthStatusResponse, CronAppointmentRemindersResponse, CronBillingStatusResponse, CronEventFeedbackEmailsResponse, CronEventOccurrencesResponse, CronEventRemindersResponse, CronMediaJobsQuery, CronMediaJobsResponse, CronNewsletterSendResponse, CronPaymentReconciliationResponse, CronSeoIngestResponse, CronWaitlistExpiryResponse } from './siteOperations';
|
|
11
11
|
import type { ApplySiteStyleSelectionBody, ApplySiteStyleSelectionResponse } from './siteRuntimeEndpoints';
|
|
12
|
-
import type { ManagementMediaAsset, MediaResolveResponse, PushSdkConfigRequest, PushSdkConfigResponse, SdkAddEventOccurrenceRequest, SdkBackfillIdentifiersResult, SdkEventOccurrenceResponse, SdkGetEntryResponse, SdkGetEventCategoryResponse, SdkGetEventResponse, SdkGetFormResponse, SdkGetPageBlockResponse, SdkPatchPageBlockBody, SdkPatchPageBlockResponse, SdkGetVenueResponse, SdkListEntriesResponse, SdkListEventCategoriesResponse, SdkListEventOccurrencesResponse, SdkListEventsResponse, SdkListFormsResponse, SdkListVenuesResponse, SdkMediaFinalizeUploadResponse, SdkMediaUploadUrlResponse, SdkPageResponse, SdkEntryUpsertSlotBlock, SdkPublishOrUnpublishEntryResponse, SdkPullContentTypesResponse, SdkCatalogThemeResponse, SdkCatalogBlocksResponse, SdkCatalogContentTypesResponse, SdkCapabilitiesResponse, SdkCommandApplicationResult, SdkConfigureBookingVerticalRequest, SdkConfigureBookingVerticalResponse, SdkDemoContentResponse, SdkDeleteResponse, SdkPullEntriesAllResponse, SdkPullEntriesByTypeResponse, SdkPullEntriesResponse, SdkPullEventCategoriesResponse, SdkPullEventsResponse, SdkPullFooterResponse, SdkPullFormSchema, SdkPullFormsResponse, SdkPullFormSettings, SdkPullDraftsResponse, SdkPullNavigationResponse, SdkPullPagesResponse, SdkPullSettings, SdkPullSettingsResponse, SdkPullSiteInfoResponse, SdkPullThemeResponse, SdkPullVenue, SdkPullVenuesResponse, SdkUpdateSettingsResponse, SdkUpdateEventOccurrenceRequest, SdkUpsertBlockResponse, SdkUpsertEntryResponse, SdkUpsertPageResponse, SdkUpsertEventCategoryResponse, SdkUpsertEventResponse, SdkUpsertFooterResponse, SdkUpsertFormResponse, SdkUpsertNavigationMenuResponse, SdkUpsertThemeResponse, SdkUpsertVenueResponse } from './sdkContracts';
|
|
13
|
-
import type {
|
|
12
|
+
import type { ManagementMediaAsset, MediaResolveResponse, PushSdkConfigRequest, PushSdkConfigResponse, SdkAddEventOccurrenceRequest, SdkBackfillIdentifiersResult, SdkEventOccurrenceResponse, SdkGetEntryResponse, SdkGetEventCategoryResponse, SdkGetEventResponse, SdkGetFormResponse, SdkGetPageBlockResponse, SdkPatchPageBlockBody, SdkPatchPageBlockResponse, SdkGetVenueResponse, SdkListEntriesResponse, SdkListEventCategoriesResponse, SdkListEventOccurrencesResponse, SdkListEventsResponse, SdkListFormsResponse, SdkListVenuesResponse, SdkMediaFinalizeUploadResponse, SdkMediaDeleteApplyResponse, SdkMediaDeletePreviewResponse, SdkMediaDownloadResponse, SdkMediaListResponse, SdkMediaUploadUrlResponse, SdkPageResponse, SdkEntryUpsertSlotBlock, SdkPublishOrUnpublishEntryResponse, SdkPullContentTypesResponse, SdkCatalogThemeResponse, SdkCatalogBlocksResponse, SdkCatalogContentTypesResponse, SdkCapabilitiesResponse, SdkCommandApplicationResult, SdkConfigureBookingVerticalRequest, SdkConfigureBookingVerticalResponse, SdkDemoContentResponse, SdkDeleteResponse, SdkPullEntriesAllResponse, SdkPullEntriesByTypeResponse, SdkPullEntriesResponse, SdkPullEventCategoriesResponse, SdkPullEventsResponse, SdkPullFooterResponse, SdkPullFormSchema, SdkPullFormsResponse, SdkPullFormSettings, SdkPullDraftsResponse, SdkPullNavigationResponse, SdkPullPagesResponse, SdkPullSettings, SdkPullSettingsResponse, SdkPullSiteInfoResponse, SdkPullThemeResponse, SdkPullVenue, SdkPullVenuesResponse, SdkUpdateSettingsResponse, SdkUpdateEventOccurrenceRequest, SdkUpsertBlockResponse, SdkUpsertEntryResponse, SdkUpsertPageResponse, SdkUpsertEventCategoryResponse, SdkUpsertEventResponse, SdkUpsertFooterResponse, SdkUpsertFormResponse, SdkUpsertNavigationMenuResponse, SdkUpsertThemeResponse, SdkUpsertVenueResponse } from './sdkContracts';
|
|
13
|
+
import type { SdkThemeWireWithoutHeader } from './sdkThemeWire';
|
|
14
14
|
import type { SdkEventUpsertBody } from './sdk-event-upsert';
|
|
15
15
|
import type { StripeConnectDisconnectResponse, StripeConnectStartResponse, StripeConnectStatusResponse, UpdateStripeAutomaticTaxRequest } from './billing';
|
|
16
16
|
import type { NavigationLinkInput } from './navigation/types';
|
|
@@ -148,6 +148,24 @@ export type SitePlatformAPIEndpoints = {
|
|
|
148
148
|
}, {
|
|
149
149
|
siteId: string;
|
|
150
150
|
}, MediaResolveResponse>;
|
|
151
|
+
sdkMediaList: APIEndpoint<never, {
|
|
152
|
+
siteId: string;
|
|
153
|
+
search?: string;
|
|
154
|
+
limit?: number;
|
|
155
|
+
offset?: number;
|
|
156
|
+
}, SdkMediaListResponse>;
|
|
157
|
+
sdkMediaDownload: APIEndpoint<never, {
|
|
158
|
+
siteId: string;
|
|
159
|
+
identifier: string;
|
|
160
|
+
}, SdkMediaDownloadResponse>;
|
|
161
|
+
sdkMediaDeletePreview: APIEndpoint<never, {
|
|
162
|
+
siteId: string;
|
|
163
|
+
identifier: string;
|
|
164
|
+
}, SdkMediaDeletePreviewResponse>;
|
|
165
|
+
sdkMediaDeleteApply: APIEndpoint<never, {
|
|
166
|
+
siteId: string;
|
|
167
|
+
identifier: string;
|
|
168
|
+
}, SdkMediaDeleteApplyResponse>;
|
|
151
169
|
sdkMediaUploadUrl: APIEndpoint<{
|
|
152
170
|
filename: string;
|
|
153
171
|
bytes: number;
|
|
@@ -317,7 +335,13 @@ export type SitePlatformAPIEndpoints = {
|
|
|
317
335
|
}, SdkDeleteResponse>;
|
|
318
336
|
sdkUpsertTheme: APIEndpoint<Readonly<{
|
|
319
337
|
kind: 'update';
|
|
320
|
-
|
|
338
|
+
/**
|
|
339
|
+
* The theme minus its header (#1318 Phase 4d, D17). The server compiles
|
|
340
|
+
* `theme.header` from the site's stored selection and header
|
|
341
|
+
* preferences and is its only author; a body carrying header bytes is
|
|
342
|
+
* rejected rather than silently stripped.
|
|
343
|
+
*/
|
|
344
|
+
theme: SdkThemeWireWithoutHeader;
|
|
321
345
|
themeId?: string;
|
|
322
346
|
selectionId?: string;
|
|
323
347
|
}> | Readonly<{
|
|
@@ -2,16 +2,23 @@ import type { BackgroundOverride, SystemCustomizeFacetSelection, Theme } from '.
|
|
|
2
2
|
import type { ListMediaAssetsResult, MediaAssetWithLabels } from '@riverbankcms/media-storage-supabase';
|
|
3
3
|
import type { FooterNavigationLayout } from '../../core/src/index';
|
|
4
4
|
import type { DbJson } from '../../db/src/index';
|
|
5
|
-
import type { PageDesignEditorReadModel, PageDesignIntent, AppearancePresetId, BoundaryOptionId, DesignBlockId, FooterLookId, HeaderLayoutId, HeaderLayoutStyleSelection, HeaderStyleId, LayoutVariantKey, SiteStyleId } from '../../theme-core/src/site-styles/index';
|
|
5
|
+
import type { PageDesignEditorReadModel, PageDesignIntent, AppearancePresetId, BoundaryOptionId, DesignBlockId, FooterLookId, HeaderLayoutId, HeaderLayoutStyleSelection, HeaderPreferences, HeaderQuickControlPreferences, HeaderStyleId, LayoutVariantKey, SiteStyleId } from '../../theme-core/src/site-styles/index';
|
|
6
6
|
import type { ButtonStyleSelection } from '../../theme-core/src/buttons/index';
|
|
7
7
|
import type { APIEndpoint } from './apiEndpointTypes';
|
|
8
8
|
import type { AnalyticsReportQuery, AnalyticsReportResponse } from './analytics';
|
|
9
|
-
import type { CreateMediaAssetBody, MediaAssetResponse, MediaAssetFileFilterContract, MediaBulkDeleteResponse, MediaClassifyJobResponse, MediaJobSummaryResponse, MediaLabelSummary, MediaSettingsResponse } from './media';
|
|
9
|
+
import type { CreateMediaAssetBody, MediaAssetResponse, MediaAssetFileFilterContract, MediaBulkDeleteResponse, MediaDeleteResponse, MediaClassifyJobResponse, MediaJobSummaryResponse, MediaLabelSummary, MediaSettingsResponse } from './media';
|
|
10
10
|
import type { MediaUsageCheckResponse } from './shared-contracts';
|
|
11
|
-
import type { BlockWithContentResponse, BlockListItem, ContentEntryListStage, EntryPageContentSlotsResponse, PageSurfaceContentSlotsResponse, ListPublishedEntriesResponse, PageDraftRecord, PublishedBlockBaseline, PublishedContentEntryPreviewResponse, PublishedPostPreviewResponse, SdkBlockContent, SdkRuntimeContentByPathResponse, SdkRouteDecisionResponse, SdkRouteOutcomeResponse, SdkTemplate, SiteBySlugResponse,
|
|
11
|
+
import type { BlockWithContentResponse, BlockListItem, ContentEntryListStage, EntryPageContentSlotsResponse, PageSurfaceContentSlotsResponse, ListPublishedEntriesResponse, PageDraftRecord, PublishedBlockBaseline, PublishedContentEntryPreviewResponse, PublishedPostPreviewResponse, SdkBlockContent, SdkRuntimeContentByPathResponse, SdkRouteDecisionResponse, SdkRouteOutcomeResponse, SdkTemplate, SiteBySlugResponse, ThemePreferencesRecord } from './contentRuntime';
|
|
12
12
|
import type { GetVersionHistoryResponse, ListVersionHistoryResponse, RestoreVersionHistoryRequest, RestoreVersionHistoryResponse, VersionHistoryListQuery } from './contentVersionHistory';
|
|
13
13
|
import type { CreateMediaUploadUrlRequest, CreateMediaUploadUrlResponse, CreateSiteLogoUploadUrlRequest, CreateSiteLogoUploadUrlResponse, MediaUploadFinalizeRequest, UploadSiteLogoRequest } from './siteInfrastructure';
|
|
14
14
|
import type { DevToolsGetSiteRoleDowngradeQuery, DevToolsImpersonationResponse, DevToolsSeedResponse, DevToolsSetSiteRoleDowngradeRequest, SiteRoleDowngradeState } from './siteOperations';
|
|
15
|
+
/**
|
|
16
|
+
* A theme body with no header. The server compiles `theme.header` from the
|
|
17
|
+
* row's intent and is its only author (#1318 Phase 4d).
|
|
18
|
+
*/
|
|
19
|
+
export type ThemeWithoutHeader = Omit<Theme, 'header'> & Readonly<{
|
|
20
|
+
header?: never;
|
|
21
|
+
}>;
|
|
15
22
|
/** Partial persisted selections for the Style configurator and site chrome. */
|
|
16
23
|
export type SiteThemeSelectionsPayload = {
|
|
17
24
|
buttonStyleSelection?: ButtonStyleSelection | null;
|
|
@@ -70,7 +77,17 @@ export type SaveSiteChromeSelectionBody = Readonly<{
|
|
|
70
77
|
surface: 'header';
|
|
71
78
|
layoutId: HeaderLayoutId;
|
|
72
79
|
styleId: HeaderStyleId;
|
|
73
|
-
|
|
80
|
+
/**
|
|
81
|
+
* The header intent this save expresses, and the whole of what this
|
|
82
|
+
* surface sends (#1318 Phase 4d).
|
|
83
|
+
*
|
|
84
|
+
* The compiled `theme` that used to ride alongside it is gone. The server
|
|
85
|
+
* compiles the header from `(layoutId, styleId, preferences)` against the
|
|
86
|
+
* persisted row and is its sole author; the rest of the theme is the
|
|
87
|
+
* row's own and is not the client's to restate. The save response returns
|
|
88
|
+
* the theme the server persisted, which is what the client reconciles to.
|
|
89
|
+
*/
|
|
90
|
+
preferences: HeaderQuickControlPreferences;
|
|
74
91
|
themeId?: string | null;
|
|
75
92
|
selectionId?: string | null;
|
|
76
93
|
baseSelectionUpdatedAt?: string | null;
|
|
@@ -92,6 +109,11 @@ export type SaveSiteChromeSelectionResponse = Readonly<{
|
|
|
92
109
|
theme: Theme;
|
|
93
110
|
headerLayoutId: HeaderLayoutId;
|
|
94
111
|
headerStyleId: HeaderStyleId;
|
|
112
|
+
/**
|
|
113
|
+
* The intent as persisted. `null` while the Phase 4c backfill is outstanding
|
|
114
|
+
* and this save did not write one — absent, not "the defaults".
|
|
115
|
+
*/
|
|
116
|
+
headerPreferences: HeaderPreferences | null;
|
|
95
117
|
footerLookId: FooterLookId | null;
|
|
96
118
|
}>;
|
|
97
119
|
export type PageDesignRevisionToken = {
|
|
@@ -191,17 +213,6 @@ export type SiteRuntimeAPIEndpoints = {
|
|
|
191
213
|
mode?: 'manual';
|
|
192
214
|
entryIds?: string;
|
|
193
215
|
}, ListPublishedEntriesResponse>;
|
|
194
|
-
createTheme: APIEndpoint<{
|
|
195
|
-
site_id: string;
|
|
196
|
-
}, never, {
|
|
197
|
-
output: ThemeGenerationTurn[];
|
|
198
|
-
text: string[] | null;
|
|
199
|
-
}>;
|
|
200
|
-
generateThemes: APIEndpoint<{
|
|
201
|
-
site_id: string;
|
|
202
|
-
}, never, {
|
|
203
|
-
themes: ThemeRow[];
|
|
204
|
-
}>;
|
|
205
216
|
extractThemeFromInspiration: APIEndpoint<{
|
|
206
217
|
urls: string[];
|
|
207
218
|
}, never, {
|
|
@@ -217,7 +228,16 @@ export type SiteRuntimeAPIEndpoints = {
|
|
|
217
228
|
source: 'extracted' | 'fallback';
|
|
218
229
|
}>;
|
|
219
230
|
saveSiteTheme: APIEndpoint<{
|
|
220
|
-
|
|
231
|
+
/**
|
|
232
|
+
* The theme minus its header (#1318 Phase 4d, D17).
|
|
233
|
+
*
|
|
234
|
+
* `header` is compiled server-side from the row's stored selection and
|
|
235
|
+
* `header_preferences`, so a body cannot carry header bytes at all. This
|
|
236
|
+
* was the last path by which hand-written header fields reached
|
|
237
|
+
* persistence, and leaving it open would have made the single-authority
|
|
238
|
+
* claim untrue. `headerSelection` still names the selection to compile.
|
|
239
|
+
*/
|
|
240
|
+
theme: ThemeWithoutHeader;
|
|
221
241
|
themeId?: string | null;
|
|
222
242
|
selectionId?: string | null;
|
|
223
243
|
overrides?: Record<string, unknown> | null;
|
|
@@ -369,7 +389,7 @@ export type SiteRuntimeAPIEndpoints = {
|
|
|
369
389
|
cascadeLabels?: boolean;
|
|
370
390
|
}, {
|
|
371
391
|
assetId: string;
|
|
372
|
-
},
|
|
392
|
+
}, MediaDeleteResponse>;
|
|
373
393
|
mediaBulkDelete: APIEndpoint<{
|
|
374
394
|
assetIds: string[];
|
|
375
395
|
deleteObjects?: boolean;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { CamelizeKeys, DbDatabase, DbRow } from "../../db/src/index";
|
|
2
|
-
export type { AccessPolicyContract, AccessPolicyTag, AmbientBackgroundRole, CreateMediaAssetBody, EntitledCustomerAccessScopeContract, FileKindContract, FileKindTag, FileUseContract, FileUseTag, ImageFileFormat, MediaAssetResponse, MediaAssetFileFilterContract, MediaBulkDeleteAssetFailure, MediaBulkDeleteResponse, MediaClassifyJobResponse, MediaJobSummaryResponse, MediaLabelSummary, MediaSettingsResponse, RenderableFileKindTag, SiteBackgroundAssetUse, StorageClass, UploadIntentContract, UploadIntentTag, } from "./media";
|
|
2
|
+
export type { AccessPolicyContract, AccessPolicyTag, AmbientBackgroundRole, CreateMediaAssetBody, EntitledCustomerAccessScopeContract, FileKindContract, FileKindTag, FileUseContract, FileUseTag, ImageFileFormat, MediaAssetResponse, MediaAssetFileFilterContract, MediaBulkDeleteAssetFailure, MediaBulkDeleteResponse, MediaDeleteResponse, MediaDeleteWarning, MediaClassifyJobResponse, MediaJobSummaryResponse, MediaLabelSummary, MediaSettingsResponse, RenderableFileKindTag, SiteBackgroundAssetUse, StorageClass, UploadIntentContract, UploadIntentTag, } from "./media";
|
|
3
3
|
export type { AnalyticsPreset, AnalyticsReferrer, AnalyticsReportFilters, AnalyticsReportQuery, AnalyticsReportResponse, AnalyticsSeriesPoint, AnalyticsTopPage, AnalyticsTotals, } from "./analytics";
|
|
4
4
|
export type { AIChatMessage, AiBriefTurn, JsonPrimitive, JsonValue, MediaUsageCheckItem, MediaUsageCheckResponse, MediaUsageLocation, } from "./shared-contracts";
|
|
5
5
|
export type * from "./accessAdmin";
|
|
@@ -9,7 +9,7 @@ import { type MediaAssetIndexItem, type ResolveImageUrlContext, type ResolveImag
|
|
|
9
9
|
import type { BookingOfferingPresetSummary } from './system/blocks/offerings-preview/model';
|
|
10
10
|
import { type PageBoundaryWrapper, type PageRuntimeBoundary } from './pageRendererBoundaries';
|
|
11
11
|
import { type RenderablePageOutline } from './pageRenderAdmission';
|
|
12
|
-
export type { PageBlockRenderAdmissionError, RenderablePageBlock, RenderablePageOutline, } from './pageRenderAdmission';
|
|
12
|
+
export type { PageBlockRenderAdmissionError, PageRenderAudience, RenderablePageBlock, RenderablePageOutline, } from './pageRenderAdmission';
|
|
13
13
|
export { MissingBlockOverrideError } from './pageRenderingMode';
|
|
14
14
|
export type { PageBlockPosition, PageRuntimeBoundary, } from './pageRendererBoundaries';
|
|
15
15
|
/**
|
|
@@ -21,7 +21,7 @@ export type OccurrenceContextData = import('../../core/src/index').EventOccurren
|
|
|
21
21
|
* Event-occurrence subroute context.
|
|
22
22
|
*/
|
|
23
23
|
export type EntrySubrouteContextData = import('../../core/src/index').EventPageSubrouteContext;
|
|
24
|
-
type PageRendererDataContext = {
|
|
24
|
+
export type PageRendererDataContext = {
|
|
25
25
|
siteId?: string;
|
|
26
26
|
pageId?: string;
|
|
27
27
|
resolvedData?: Record<string, Record<string, unknown>>;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export { default as PageRenderer, EditorPageRenderer } from './PageRenderer';
|
|
2
2
|
export { createCustomBlockRegistry, mergeBlockDescriptorsWithRegistry, planCustomBlockRegistryResolution, transformToBlockDescriptor, } from './customBlockRegistry';
|
|
3
3
|
export type { CustomBlockConflictReason, CustomBlockManifestSource, CustomBlockRegistry, CustomBlockRegistryConflict, CustomBlockRegistryEntry, CustomBlockRegistryResolutionPlan, CustomBlockSourcePolicy, ResolvedCustomBlockManifest, SdkConfigForBlockPicker, } from './customBlockRegistry';
|
|
4
|
-
export type { BlockOverrideComponent, BlockOverrideProps, BlockOverrides, EntrySubrouteContextData, EditorPageRendererProps, PageBlockRenderAdmissionError, PageRendererProps, RenderablePageBlock, RenderablePageOutline, OccurrenceContextData, PageBlockPosition, PageRuntimeBoundary, SdkConfigForRenderer, } from './PageRenderer';
|
|
4
|
+
export type { BlockOverrideComponent, BlockOverrideProps, BlockOverrides, EntrySubrouteContextData, EditorPageRendererProps, PageBlockRenderAdmissionError, PageRenderAudience, PageRendererProps, RenderablePageBlock, RenderablePageOutline, OccurrenceContextData, PageBlockPosition, PageRuntimeBoundary, SdkConfigForRenderer, } from './PageRenderer';
|
|
5
5
|
export { MissingBlockOverrideError } from './pageRenderingMode';
|
|
6
6
|
export * from './subroutes';
|
|
7
7
|
export * from './structure/schema';
|
|
@@ -1,5 +1,14 @@
|
|
|
1
1
|
import type { Block, PageOutline } from './structure/schema';
|
|
2
2
|
import type { ManifestContentAdmissionError, RenderableManifestContent } from './system/manifest/validation';
|
|
3
|
+
/**
|
|
4
|
+
* Who the render is for.
|
|
5
|
+
*
|
|
6
|
+
* `public` is a visitor-facing production page: a block that cannot render is
|
|
7
|
+
* dropped rather than replaced with developer-facing text (issue 1378).
|
|
8
|
+
* `authoring` is the dashboard preview and the editor renderer entrypoint,
|
|
9
|
+
* where the diagnostic is the useful output.
|
|
10
|
+
*/
|
|
11
|
+
export type PageRenderAudience = 'public' | 'authoring';
|
|
3
12
|
export type PageBlockRenderAdmissionError = Readonly<{
|
|
4
13
|
kind: 'invalid_manifest_content';
|
|
5
14
|
error: ManifestContentAdmissionError;
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Support for rendering one block section: what a block that cannot render
|
|
3
|
+
* leaves behind, how an override is found, and the props both override paths
|
|
4
|
+
* hand to a component. `PageRenderer` owns the page-level composition; this
|
|
5
|
+
* module owns the pieces it reaches for per block.
|
|
6
|
+
*/
|
|
7
|
+
import * as React from 'react';
|
|
8
|
+
import type { getBlockDefinition } from './system';
|
|
9
|
+
import type { ResolverContext, SystemBlockComponent } from './system';
|
|
10
|
+
import type { Block } from './structure/schema';
|
|
11
|
+
import type { SdkCustomBlock } from './system/manifest/schema';
|
|
12
|
+
import type { RouteMap } from './system/transforms';
|
|
13
|
+
import { type ResolveImageUrlContext } from './system/runtime/nodes/media';
|
|
14
|
+
import { type PageThemeResources } from './pageRenderingMode';
|
|
15
|
+
import type { PageBlockRenderAdmissionError, PageRenderAudience, PresentationBlock } from './pageRenderAdmission';
|
|
16
|
+
import type { BlockOverrideComponent, BlockOverrideProps, BlockOverrides, PageRendererDataContext, SdkConfigForRenderer } from './PageRenderer';
|
|
17
|
+
export type MemoSectionProps = {
|
|
18
|
+
audience: PageRenderAudience;
|
|
19
|
+
themeResources: PageThemeResources;
|
|
20
|
+
block: PresentationBlock;
|
|
21
|
+
dataContext?: PageRendererDataContext;
|
|
22
|
+
blockKey: string;
|
|
23
|
+
registry?: ResolverContext['registry'];
|
|
24
|
+
routeMap?: RouteMap;
|
|
25
|
+
wrapBlock?: (blockId: string, rendered: React.ReactNode) => React.ReactNode;
|
|
26
|
+
blockOverrides?: BlockOverrides;
|
|
27
|
+
sdkConfig?: SdkConfigForRenderer | null;
|
|
28
|
+
customBlocks?: SdkCustomBlock[];
|
|
29
|
+
imageResolveContext: ResolveImageUrlContext;
|
|
30
|
+
previewAuthoring?: ResolverContext['previewAuthoring'];
|
|
31
|
+
};
|
|
32
|
+
export declare function fallback(message: string): React.JSX.Element;
|
|
33
|
+
/**
|
|
34
|
+
* A page with nothing to show. Authoring surfaces get the diagnostic; a public
|
|
35
|
+
* page renders nothing at all rather than telling a visitor about the outline.
|
|
36
|
+
*/
|
|
37
|
+
export declare function emptyPageNotice(audience: PageRenderAudience): React.ReactElement | null;
|
|
38
|
+
/**
|
|
39
|
+
* A public page dropped a block, so nothing in the rendered HTML says the
|
|
40
|
+
* content is missing. Say it in the logs instead.
|
|
41
|
+
*/
|
|
42
|
+
export declare function warnOmittedFromPublicPage(input: Readonly<{
|
|
43
|
+
block: PresentationBlock;
|
|
44
|
+
outcome: string;
|
|
45
|
+
admissionError?: PageBlockRenderAdmissionError;
|
|
46
|
+
}>): void;
|
|
47
|
+
export declare function shouldDebugCustomBlocks(): boolean;
|
|
48
|
+
/**
|
|
49
|
+
* Look up a block override component by block kind.
|
|
50
|
+
* Supports both full ("block.hero") and short ("hero") keys.
|
|
51
|
+
*/
|
|
52
|
+
export declare function getBlockOverride(blockKind: string, overrides?: BlockOverrides): BlockOverrideComponent | undefined;
|
|
53
|
+
/**
|
|
54
|
+
* Resolves block content based on stage priority.
|
|
55
|
+
* For draft/preview: draftContent takes priority over content.
|
|
56
|
+
* For published: content is the source of truth.
|
|
57
|
+
* Returns empty object if no content exists (validator will handle placeholders if needed).
|
|
58
|
+
*/
|
|
59
|
+
export declare function getRenderableContent(block: Block, previewStage?: 'published' | 'preview'): Record<string, unknown>;
|
|
60
|
+
export declare function resolveBookingTimeZone(dataContext: PageRendererDataContext | undefined): string | undefined;
|
|
61
|
+
export declare function resolvePageRendererImageResolveContext(dataContext: PageRendererDataContext | undefined): ResolveImageUrlContext;
|
|
62
|
+
/**
|
|
63
|
+
* The RSC-safe props every override component receives, whether the block
|
|
64
|
+
* resolved a manifest or is being rendered from an override alone.
|
|
65
|
+
*/
|
|
66
|
+
export declare function buildBlockOverrideProps(input: Readonly<{
|
|
67
|
+
block: PresentationBlock;
|
|
68
|
+
content: Record<string, unknown>;
|
|
69
|
+
data: BlockOverrideProps['data'];
|
|
70
|
+
themeResources: PageThemeResources;
|
|
71
|
+
dataContext: PageRendererDataContext | undefined;
|
|
72
|
+
imageResolveContext: ResolveImageUrlContext;
|
|
73
|
+
}>): BlockOverrideProps;
|
|
74
|
+
export declare function getPerfSlowBlockRenderThresholdMs(): number;
|
|
75
|
+
export declare function getCachedBlockComponent(manifest: NonNullable<ReturnType<typeof getBlockDefinition>>['manifest']): SystemBlockComponent<Record<string, unknown>>;
|
|
@@ -6,6 +6,8 @@ export type PageRuntimeBoundary = CompiledBoundaryRuntime<string>;
|
|
|
6
6
|
export type PageBoundaryWrapper = (boundary: PageRuntimeBoundary, rendered: React.ReactNode) => React.ReactNode;
|
|
7
7
|
export declare function isSiteStyleTransitionStyleGroup(value: string | undefined): value is string;
|
|
8
8
|
export declare function boundaryMapForAdjacentBlockIds(boundaries: readonly PageRuntimeBoundary[]): ReadonlyMap<string, PageRuntimeBoundary>;
|
|
9
|
+
/** Keep a surviving block's outgoing treatment when omitted blocks change its neighbor. */
|
|
10
|
+
export declare function boundariesForSurvivingBlocks(boundaries: readonly PageRuntimeBoundary[], blocks: readonly Block[]): readonly PageRuntimeBoundary[];
|
|
9
11
|
export declare function boundaryBetweenBlocks(previousBlock: Block | null, nextBlock: Block | null, boundaries: ReadonlyMap<string, PageRuntimeBoundary>): PageRuntimeBoundary | null;
|
|
10
12
|
export declare function renderBoundaryAfterBlock(input: Readonly<{
|
|
11
13
|
block: Block;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export { default as PageRenderer, EditorPageRenderer, MissingBlockOverrideError, } from './PageRenderer';
|
|
2
|
-
export type { BlockOverrideComponent, BlockOverrideProps, BlockOverrides, EntrySubrouteContextData, EditorPageRendererProps, OccurrenceContextData, PageBlockRenderAdmissionError, PageBlockPosition, PageRuntimeBoundary, RenderablePageBlock, RenderablePageOutline, SdkConfigForRenderer, } from './PageRenderer';
|
|
2
|
+
export type { BlockOverrideComponent, BlockOverrideProps, BlockOverrides, EntrySubrouteContextData, EditorPageRendererProps, OccurrenceContextData, PageBlockRenderAdmissionError, PageRenderAudience, PageBlockPosition, PageRuntimeBoundary, RenderablePageBlock, RenderablePageOutline, SdkConfigForRenderer, } from './PageRenderer';
|
|
3
3
|
export * from './subroutes';
|
|
4
4
|
export { ThemeScope } from '../../theme-core/src/ThemeScope';
|
|
@@ -77,7 +77,7 @@ export declare const eventRegistrationManifest: import("..").DefinedBlockManifes
|
|
|
77
77
|
}, {
|
|
78
78
|
readonly id: "showCapacity";
|
|
79
79
|
readonly type: "boolean";
|
|
80
|
-
readonly label: "Show available
|
|
80
|
+
readonly label: "Show available places";
|
|
81
81
|
readonly description: "Display remaining capacity";
|
|
82
82
|
readonly required: false;
|
|
83
83
|
readonly defaultValue: true;
|
|
@@ -18,7 +18,8 @@ type PublicProductCategorySelector = Readonly<{
|
|
|
18
18
|
export declare class BlockApiError extends Error {
|
|
19
19
|
readonly status: number;
|
|
20
20
|
readonly code?: string | undefined;
|
|
21
|
-
|
|
21
|
+
readonly tag?: string | undefined;
|
|
22
|
+
constructor(message: string, status: number, code?: string | undefined, tag?: string | undefined);
|
|
22
23
|
}
|
|
23
24
|
/**
|
|
24
25
|
* Block API Client interface
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { PublicEvent } from '../../blocks/events/shared/types';
|
|
2
2
|
import { type BookingTimeZone } from '../../../../../core/src/index';
|
|
3
3
|
import type { CalendarDate } from '../../../../../calendar/src/index';
|
|
4
|
-
import { type CalendarViewport, type CalendarViewportKind, type WeekStart } from '../nodes/events/
|
|
4
|
+
import { type CalendarViewport, type CalendarViewportKind, type WeekStart } from '../nodes/events/domain';
|
|
5
5
|
import { type EventRuntimeFilters } from '../nodes/events/shared/listOptions';
|
|
6
6
|
import { type CalendarViewLoadState } from './useCalendarEvents.state';
|
|
7
7
|
export type { CalendarViewLoadState } from './useCalendarEvents.state';
|
|
@@ -82,8 +82,8 @@ type UseCalendarEventCacheOptions = Readonly<{
|
|
|
82
82
|
timeZone: BookingTimeZone;
|
|
83
83
|
}>;
|
|
84
84
|
/**
|
|
85
|
-
*
|
|
86
|
-
*
|
|
85
|
+
* The reducer owns month data and request ownership. The hook only performs I/O.
|
|
86
|
+
* Requests for other months remain useful until the query context changes.
|
|
87
87
|
*/
|
|
88
88
|
export declare function useCalendarEventCache({ viewDate, initialEvents, preloadMonths, filters, stage, timeZone, }: UseCalendarEventCacheOptions): Readonly<{
|
|
89
89
|
events: PublicEvent[];
|
|
@@ -1,29 +1,23 @@
|
|
|
1
|
+
import { type BookingTimeZone } from '../../../../../core/src/index';
|
|
1
2
|
import type { CalendarDate } from '../../../../../calendar/src/index';
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
}
|
|
6
|
-
|
|
7
|
-
kind: 'idle';
|
|
3
|
+
import type { PublicEvent } from '../../blocks/events/shared/types';
|
|
4
|
+
type MonthState = Readonly<{
|
|
5
|
+
events: readonly PublicEvent[];
|
|
6
|
+
}> & (Readonly<{
|
|
7
|
+
kind: 'seeded';
|
|
8
8
|
}> | Readonly<{
|
|
9
9
|
kind: 'loading';
|
|
10
|
-
|
|
11
|
-
}> | Readonly<{
|
|
12
|
-
kind: 'error';
|
|
13
|
-
scope: CalendarLoadScope;
|
|
14
|
-
error: Error;
|
|
15
|
-
}>;
|
|
16
|
-
export type CalendarEventCacheLoadAction = Readonly<{
|
|
17
|
-
type: 'started';
|
|
18
|
-
scope: CalendarLoadScope;
|
|
10
|
+
request: CalendarRequest;
|
|
19
11
|
}> | Readonly<{
|
|
20
|
-
|
|
21
|
-
scope: CalendarLoadScope;
|
|
12
|
+
kind: 'ready';
|
|
22
13
|
}> | Readonly<{
|
|
23
|
-
|
|
24
|
-
scope: CalendarLoadScope;
|
|
14
|
+
kind: 'failed';
|
|
25
15
|
error: Error;
|
|
16
|
+
}>);
|
|
17
|
+
export type CalendarRequest = Readonly<{
|
|
18
|
+
months: readonly string[];
|
|
26
19
|
}>;
|
|
20
|
+
export type CalendarCacheState = ReadonlyMap<string, MonthState>;
|
|
27
21
|
export type CalendarViewLoadState = Readonly<{
|
|
28
22
|
kind: 'idle';
|
|
29
23
|
}> | Readonly<{
|
|
@@ -32,6 +26,24 @@ export type CalendarViewLoadState = Readonly<{
|
|
|
32
26
|
kind: 'error';
|
|
33
27
|
error: Error;
|
|
34
28
|
}>;
|
|
35
|
-
export
|
|
36
|
-
|
|
37
|
-
|
|
29
|
+
export type CalendarCacheAction = Readonly<{
|
|
30
|
+
kind: 'started';
|
|
31
|
+
request: CalendarRequest;
|
|
32
|
+
}> | Readonly<{
|
|
33
|
+
kind: 'succeeded';
|
|
34
|
+
request: CalendarRequest;
|
|
35
|
+
events: readonly PublicEvent[];
|
|
36
|
+
timeZone: BookingTimeZone;
|
|
37
|
+
}> | Readonly<{
|
|
38
|
+
kind: 'failed';
|
|
39
|
+
request: CalendarRequest;
|
|
40
|
+
error: Error;
|
|
41
|
+
}>;
|
|
42
|
+
export declare function calendarMonthKey(date: CalendarDate): string;
|
|
43
|
+
export declare function calendarWindowMonths(date: CalendarDate, radius: number): readonly string[];
|
|
44
|
+
export declare function seedCalendarCache(events: readonly PublicEvent[], timeZone: BookingTimeZone): CalendarCacheState;
|
|
45
|
+
export declare function planCalendarRequest(state: CalendarCacheState, months: readonly string[], retry: boolean): CalendarRequest | null;
|
|
46
|
+
export declare function calendarCacheReducer(state: CalendarCacheState, action: CalendarCacheAction): CalendarCacheState;
|
|
47
|
+
export declare function selectCalendarEvents(state: CalendarCacheState, months: readonly string[]): PublicEvent[];
|
|
48
|
+
export declare function projectCalendarLoadState(state: CalendarCacheState, months: readonly string[]): CalendarViewLoadState;
|
|
49
|
+
export {};
|
|
@@ -1,12 +1,10 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
+
import type { EventRegistrationErrorAction } from '../../../../../../commerce/src/purchase/index';
|
|
2
3
|
type ErrorStepProps = {
|
|
3
4
|
message: string;
|
|
4
5
|
onRetry: () => void;
|
|
6
|
+
action?: EventRegistrationErrorAction;
|
|
7
|
+
canJoinWaitlist?: boolean;
|
|
5
8
|
};
|
|
6
|
-
/**
|
|
7
|
-
* Error Step
|
|
8
|
-
*
|
|
9
|
-
* Displays an error message with a retry button when registration fails.
|
|
10
|
-
*/
|
|
11
9
|
export declare const ErrorStep: React.FC<ErrorStepProps>;
|
|
12
10
|
export {};
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { DirectCheckoutCollectionOptionKind, PaymentMethod } from '../../api/types';
|
|
2
|
+
import type { EventRegistrationErrorAction } from '../../../../../../commerce/src/purchase/index';
|
|
2
3
|
import type { EventRegistrationDirectPaymentOption, EventRegistrationDirectPaymentSelectionState } from './eventPaymentOptions';
|
|
3
4
|
import type { EventRegistrationPageSurfaceSubject } from './eventScope';
|
|
4
5
|
import type { EligibilityData, EventTicketSelectionLine, FormData, Guest, GuestErrors, OccurrenceContext, PaymentSelection, PaymentStepState, PublicEvent, RegistrationEvent, RegistrationResult } from './types';
|
|
@@ -52,6 +53,7 @@ export type EventRegistrationFlowStatus = Readonly<{
|
|
|
52
53
|
}> | Readonly<{
|
|
53
54
|
tag: 'error';
|
|
54
55
|
message: string;
|
|
56
|
+
action?: EventRegistrationErrorAction;
|
|
55
57
|
}>;
|
|
56
58
|
export type EventRegistrationFlowView = Readonly<{
|
|
57
59
|
kind: 'empty';
|
|
@@ -10,7 +10,7 @@ export declare function resolveEventRegistrationSubmitPlan(input: Readonly<{
|
|
|
10
10
|
eventRequiresPayment: boolean;
|
|
11
11
|
canJoinWaitlist?: boolean | null;
|
|
12
12
|
}>): EventRegistrationSubmitPlan;
|
|
13
|
-
export declare function resolveHeadlessEventRegistrationStatus(wizard: Pick<UseEventRegistrationWizardResult, 'step' | 'registrationResult' | 'errorMessage'>): EventRegistrationFlowStatus;
|
|
13
|
+
export declare function resolveHeadlessEventRegistrationStatus(wizard: Pick<UseEventRegistrationWizardResult, 'step' | 'registrationResult' | 'errorMessage'> & Partial<Pick<UseEventRegistrationWizardResult, 'errorAction'>>): EventRegistrationFlowStatus;
|
|
14
14
|
export declare function resolveHeadlessEventRegistrationView(wizard: Readonly<Pick<UseEventRegistrationWizardResult, 'step' | 'scopedEvents' | 'occurrenceContext' | 'registrationResult' | 'errorMessage'> & {
|
|
15
15
|
api: Pick<UseEventRegistrationWizardResult['api'], 'config'>;
|
|
16
16
|
}>): EventRegistrationFlowView;
|
|
@@ -59,6 +59,7 @@ export type UseEligibilityResult = {
|
|
|
59
59
|
creditState: PortalCreditState;
|
|
60
60
|
};
|
|
61
61
|
export declare function useEligibility(params: {
|
|
62
|
+
refreshKey?: number;
|
|
62
63
|
enabled: boolean;
|
|
63
64
|
subject: RegistrationSubject | null;
|
|
64
65
|
attendanceMode?: 'in_person' | 'online' | null;
|
|
@@ -67,6 +68,7 @@ export declare function useEligibility(params: {
|
|
|
67
68
|
subjectEmail: string | null;
|
|
68
69
|
}): UseEligibilityResult;
|
|
69
70
|
export declare function useEligibilityWithDeps(params: {
|
|
71
|
+
refreshKey?: number;
|
|
70
72
|
enabled: boolean;
|
|
71
73
|
subject: RegistrationSubject | null;
|
|
72
74
|
attendanceMode?: 'in_person' | 'online' | null;
|