@riverbankcms/sdk 0.140.0 → 0.141.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/{PreviewEditorSidebar-CUyTzd5z.mjs → PreviewEditorSidebar-Q-fy9GYw.mjs} +3 -3
- package/dist/{PreviewEditorUI-Agkw4v5i.mjs → PreviewEditorUI-LYGzgk85.mjs} +2 -2
- package/dist/{SdkPreviewModeRuntime-DdbeAdS8.mjs → SdkPreviewModeRuntime-CoPYI5Jq.mjs} +72 -46
- package/dist/{SiteChromeCustomizeContext-CqGOz-Kv.mjs → SiteChromeCustomizeContext-D8LePX8x.mjs} +681 -196
- package/dist/_dts/api/src/contentRuntime.d.ts +12 -31
- package/dist/_dts/api/src/domainConnection.d.ts +4 -0
- package/dist/_dts/api/src/footerCompositionContracts.d.ts +25 -0
- package/dist/_dts/api/src/index.d.ts +1 -1
- package/dist/_dts/api/src/launchReadiness.d.ts +1 -0
- package/dist/_dts/api/src/navigation/dashboardSiteNav.d.ts +2 -1
- package/dist/_dts/api/src/siteManagementEndpoints.d.ts +3 -26
- package/dist/_dts/api/src/siteOnboarding.d.ts +7 -0
- package/dist/_dts/billing/src/site-arrangements.d.ts +12 -3
- package/dist/_dts/blocks/src/contracts/proof-block-islands.d.ts +4 -0
- package/dist/_dts/blocks/src/pageRendererContracts.d.ts +2 -0
- package/dist/_dts/blocks/src/system/blocks/events/event-calendar.d.ts +2 -0
- package/dist/_dts/blocks/src/system/blocks/events/eventSelectionFields.d.ts +122 -0
- package/dist/_dts/blocks/src/system/blocks/events/shared/calendarWindow.d.ts +2 -1
- package/dist/_dts/blocks/src/system/blocks/events/shared/eventSelection.d.ts +11 -0
- package/dist/_dts/blocks/src/system/blocks/location-map.d.ts +2 -2
- package/dist/_dts/blocks/src/system/blocks/media-text.d.ts +47 -47
- package/dist/_dts/blocks/src/system/data/prefetchBlockData.d.ts +5 -0
- package/dist/_dts/blocks/src/system/data/utils.d.ts +1 -1
- package/dist/_dts/blocks/src/system/manifest/schema.d.ts +27 -1
- package/dist/_dts/blocks/src/system/runtime/components/registry.client.d.ts +12 -180
- package/dist/_dts/blocks/src/system/runtime/components/runtime-backed-blocks.d.ts +6 -90
- package/dist/_dts/blocks/src/system/runtime/hooks/useEventFilters.d.ts +2 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/appointment-services.d.ts +5 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/hooks.d.ts +4 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/hooks.state.d.ts +5 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useDiscountCodeUi.d.ts +3 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useDiscountCodeUi.state.d.ts +10 -3
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventCheckoutHandoffRestore.d.ts +9 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationWizard.d.ts +4 -5
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useSettledCommerceView.d.ts +37 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/events/EventCombined.client.d.ts +4 -3
- package/dist/_dts/blocks/src/system/runtime/nodes/events/EventCombined.interactive.d.ts +3 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/events/EventListing.interactive.d.ts +11 -101
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/eventCollectionContract.d.ts +7 -2
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/listOptions.d.ts +2 -0
- package/dist/_dts/blocks/src/system/transforms/registry/eventCalendar.d.ts +12 -0
- package/dist/_dts/commerce/src/purchase/bookingInstalmentSchedule.d.ts +4 -0
- package/dist/_dts/db/src/generated/supabase/database.types.d.ts +3 -0
- package/dist/_dts/editor-blocks/src/widgets/site-option-picker/loaders.d.ts +27 -1
- package/dist/_dts/sdk/src/public-api/contracts.d.ts +1 -1
- package/dist/_dts/sdk/src/version.d.ts +1 -1
- package/dist/_dts/theme-core/src/ThemeFontLoader.d.ts +17 -1
- package/dist/_dts/theme-core/src/buttons/affordanceSuppression.d.ts +17 -0
- package/dist/_dts/theme-core/src/buttons/buttonColourContract.d.ts +1 -1
- package/dist/_dts/theme-core/src/buttons/classNames.d.ts +16 -0
- package/dist/_dts/theme-core/src/buttons/generateButtonCss.d.ts +0 -6
- package/dist/_dts/theme-core/src/buttons/resolvedButtonCss.d.ts +4 -4
- package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
- package/dist/_dts/theme-core/src/hosted-booking-appearance.d.ts +54 -12
- package/dist/_dts/theme-core/src/index.d.ts +1 -1
- package/dist/client/{BookingConsentAgreement-CuKa82V4.mjs → BookingConsentAgreement-xJeYNdnb.mjs} +2 -2
- package/dist/client/{DiscountCodeDisclosure-BbYieKWB.mjs → DiscountCodeDisclosure-DdT6uzl9.mjs} +1 -1
- package/dist/client/{EventCombined.client-LTfR1Aby.mjs → EventCombined.client-Cp28uYuM.mjs} +11 -15
- package/dist/client/{EventListing.client-DUHpYSuo.mjs → EventListing.client-CD6AJsMr.mjs} +4 -17
- package/dist/client/{LeafletStaticMap-CHRupL6m.mjs → LeafletStaticMap-DBsAi9-e.mjs} +1 -1
- package/dist/client/{accordion-6HiIFxNL.mjs → accordion-6dwbOKYR.mjs} +1 -1
- package/dist/client/{bookingForm-Dlmid43H.mjs → bookingForm-CZE9_qPQ.mjs} +5 -5
- package/dist/client/bookings.mjs +175 -93
- package/dist/client/{carousel-DmkZRRq_.mjs → carousel-7VHGQARz.mjs} +1 -1
- package/dist/client/{cart-CIC24330.mjs → cart-Qg_mvQhh.mjs} +3 -3
- package/dist/client/{checkout-D1Zw9imo.mjs → checkout-D84rpgdr.mjs} +3 -3
- package/dist/client/client.mjs +602 -139
- package/dist/client/{context-Cy1OayHx.mjs → context-Ctp3T0Wr.mjs} +1 -1
- package/dist/client/{dates-aDcfoLHr.mjs → dates-DJKFcI_N.mjs} +2 -2
- package/dist/client/{eventCalendar-FQxMPAjf.mjs → eventCalendar-CK31z3vs.mjs} +11 -7
- package/dist/client/{eventCombined-Dr3ac6Hb.mjs → eventCombined-DiXd-ewn.mjs} +3 -3
- package/dist/client/{eventDetails-D-AzUHFQ.mjs → eventDetails-CTRgt2DK.mjs} +4 -4
- package/dist/client/{eventListing-B3XxBf3i.mjs → eventListing-Dy9vi_j_.mjs} +3 -3
- package/dist/client/{eventRegistration-I6EaokFD.mjs → eventRegistration-CnalYMr2.mjs} +124 -31
- package/dist/client/{form-BbWckVWY.mjs → form-eUiMveTT.mjs} +2 -2
- package/dist/client/{headerSection-C9qU4Y7x.mjs → headerSection-Dy9kQpB1.mjs} +2 -2
- package/dist/client/hooks.mjs +247 -32
- package/dist/client/{locationMap-CLCShvlG.mjs → locationMap-DalCmWU0.mjs} +2 -2
- package/dist/client/{newsletterForm-Briukxzi.mjs → newsletterForm-SDDPvhS0.mjs} +23 -10
- package/dist/client/{pricing-Copadu-2.mjs → pricing-OcMz4SnX.mjs} +1 -1
- package/dist/client/{productDetail-oujlRd-r.mjs → productDetail-BQrgHElM.mjs} +3 -3
- package/dist/client/{productList-BRiIRUcd.mjs → productList-OnPn_UJj.mjs} +3 -3
- package/dist/client/{propsDecoder-CB2KS_ko.mjs → propsDecoder-zBdsnS-N.mjs} +38 -8
- package/dist/client/rendering/client.mjs +446 -121
- package/dist/client/rendering/islands.mjs +17 -17
- package/dist/client/rendering.mjs +601 -138
- package/dist/client/{scrollToBlock-B1IS1_ua.mjs → scrollToBlock-BNM4Ob2Y.mjs} +28 -11
- package/dist/client/{shop-Vn6yNFED.mjs → shop-Bv1fPTwQ.mjs} +6 -6
- package/dist/client/{shop-commerce-BVTqipYp.mjs → shop-commerce-D4KNGaW8.mjs} +5 -5
- package/dist/client/{shop-commerce-store-BVnJVy7v.mjs → shop-commerce-store-2N5EV0Rc.mjs} +1 -1
- package/dist/client/{shopShared-COIeK77T.mjs → shopShared-DvJGdHTV.mjs} +3 -3
- package/dist/client/{useEventFilters-DzIUcS9n.mjs → useEventFilters-BBBvGDHQ.mjs} +17 -11
- package/dist/preview-next/client/runtime.mjs +3 -3
- package/dist/preview-next/editor-chrome.css +4 -8
- package/dist/{sdk-runtime-CnCLvZRv.mjs → sdk-runtime-Defnbfzw.mjs} +1 -1
- package/dist/{separator-DKDRJ1oH.mjs → separator-CZXO3Sb0.mjs} +1 -1
- package/dist/server/components.mjs +384 -62
- package/dist/server/config-validation.mjs +232 -26
- package/dist/server/config.mjs +232 -26
- package/dist/server/data.mjs +247 -32
- package/dist/server/index.mjs +1 -1
- package/dist/server/next.mjs +400 -69
- package/dist/server/page-converter.mjs +189 -25
- package/dist/server/prebuild.mjs +1 -1
- package/dist/server/rendering/server.mjs +399 -68
- package/dist/server/rendering.mjs +399 -68
- package/dist/server/routing.mjs +261 -33
- package/dist/server/server.mjs +248 -33
- package/dist/server/theme-bridge.mjs +47 -15
- package/dist/server/theme.mjs +1 -1
- package/dist/styles/index.css +28 -2
- package/package.json +1 -1
|
@@ -3,18 +3,22 @@ import type { EligibilityData } from './types';
|
|
|
3
3
|
export type EligibilityLookupState = {
|
|
4
4
|
tag: 'idle';
|
|
5
5
|
eligibility: null;
|
|
6
|
+
settledRequestKey: null;
|
|
6
7
|
error: null;
|
|
7
8
|
} | {
|
|
8
9
|
tag: 'loading';
|
|
9
10
|
eligibility: EligibilityData | null;
|
|
11
|
+
settledRequestKey: string | null;
|
|
10
12
|
error: null;
|
|
11
13
|
} | {
|
|
12
14
|
tag: 'resolved';
|
|
13
15
|
eligibility: EligibilityData;
|
|
16
|
+
settledRequestKey: string;
|
|
14
17
|
error: null;
|
|
15
18
|
} | {
|
|
16
19
|
tag: 'failed';
|
|
17
20
|
eligibility: null;
|
|
21
|
+
settledRequestKey: null;
|
|
18
22
|
error: string;
|
|
19
23
|
};
|
|
20
24
|
export type EligibilityLookupAction = {
|
|
@@ -24,6 +28,7 @@ export type EligibilityLookupAction = {
|
|
|
24
28
|
} | {
|
|
25
29
|
type: 'resolved';
|
|
26
30
|
eligibility: EligibilityData;
|
|
31
|
+
requestKey: string;
|
|
27
32
|
} | {
|
|
28
33
|
type: 'failed';
|
|
29
34
|
message: string;
|
|
@@ -13,4 +13,7 @@ export declare function useDiscountCodeUi(options: {
|
|
|
13
13
|
manualCodeEntryAllowed: boolean;
|
|
14
14
|
autoAppliedDiscount: import("../../api/types").AutoAppliedDiscountPreview | null;
|
|
15
15
|
discountsAvailableLoading: boolean;
|
|
16
|
+
discountAvailabilityRequestKey: string;
|
|
17
|
+
settledDiscountAvailabilityRequestKey: string | null;
|
|
16
18
|
};
|
|
19
|
+
export type UseDiscountCodeUiResult = ReturnType<typeof useDiscountCodeUi>;
|
package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useDiscountCodeUi.state.d.ts
CHANGED
|
@@ -11,14 +11,19 @@ type DiscountAvailabilityState = Readonly<{
|
|
|
11
11
|
tag: 'disabled';
|
|
12
12
|
}> | Readonly<{
|
|
13
13
|
tag: 'loading';
|
|
14
|
-
|
|
14
|
+
previous: SettledDiscountAvailabilityState | null;
|
|
15
|
+
}> | SettledDiscountAvailabilityState | Readonly<{
|
|
16
|
+
tag: 'error';
|
|
17
|
+
requestKey: string;
|
|
18
|
+
}>;
|
|
19
|
+
type SettledDiscountAvailabilityState = Readonly<{
|
|
15
20
|
tag: 'unavailable';
|
|
21
|
+
requestKey: string;
|
|
16
22
|
}> | Readonly<{
|
|
17
23
|
tag: 'available';
|
|
24
|
+
requestKey: string;
|
|
18
25
|
manualCodeEntryAllowed: boolean;
|
|
19
26
|
autoAppliedDiscount: AutoAppliedDiscountPreview | null;
|
|
20
|
-
}> | Readonly<{
|
|
21
|
-
tag: 'error';
|
|
22
27
|
}>;
|
|
23
28
|
export type DiscountCodeUiState = Readonly<{
|
|
24
29
|
discountUiOpen: boolean;
|
|
@@ -31,9 +36,11 @@ export type DiscountCodeUiEvent = Readonly<{
|
|
|
31
36
|
type: 'availability-loading';
|
|
32
37
|
}> | Readonly<{
|
|
33
38
|
type: 'availability-loaded';
|
|
39
|
+
requestKey: string;
|
|
34
40
|
response: DiscountsAvailableResponse;
|
|
35
41
|
}> | Readonly<{
|
|
36
42
|
type: 'availability-failed';
|
|
43
|
+
requestKey: string;
|
|
37
44
|
}> | Readonly<{
|
|
38
45
|
type: 'discount-code-changed';
|
|
39
46
|
code: string;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
type CheckoutHandoffRestoreDeps = Readonly<{
|
|
2
|
+
addPageShowListener: (listener: (event: PageTransitionEvent) => void) => void;
|
|
3
|
+
removePageShowListener: (listener: (event: PageTransitionEvent) => void) => void;
|
|
4
|
+
reloadAtRegistration: () => void;
|
|
5
|
+
}>;
|
|
6
|
+
export declare function eventRegistrationReloadTarget(location: Pick<Location, 'pathname' | 'search'>): string;
|
|
7
|
+
export declare function useEventCheckoutHandoffRestore(active: boolean): void;
|
|
8
|
+
export declare function useEventCheckoutHandoffRestoreWithDeps(active: boolean, deps: CheckoutHandoffRestoreDeps): void;
|
|
9
|
+
export {};
|
package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationWizard.d.ts
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import type { EventRegistrationErrorAction } from '../../../../../../commerce/src/purchase/index';
|
|
2
|
-
import type { DiscountContext } from '../../api/types';
|
|
3
2
|
import type { EventTicketSelectionLine, EventRegistrationClientProps, EligibilityData, FormData, Guest, GuestErrors, PaymentSelection, PaymentStepState, PublicEvent, RegistrationEvent, RegistrationResult, RegistrationStep } from './types';
|
|
4
3
|
import { usePortalAuth, useEligibility, useExistingEventRegistration } from './hooks';
|
|
5
4
|
import { useWaitlistClaim } from '../../shared/useWaitlistClaim';
|
|
@@ -81,7 +80,7 @@ export declare function useEventRegistrationWizard(options: UseEventRegistration
|
|
|
81
80
|
}> | null;
|
|
82
81
|
slidingScaleSelectionMessage: string | null;
|
|
83
82
|
selectedTicketType: import("../../..").EventRegistrationPricingOption | null;
|
|
84
|
-
ticketSelectionSummaryLines: {
|
|
83
|
+
ticketSelectionSummaryLines: readonly {
|
|
85
84
|
pricingOptionId: string | null;
|
|
86
85
|
label: string;
|
|
87
86
|
quantity: number;
|
|
@@ -145,7 +144,7 @@ export declare function useEventRegistrationWizard(options: UseEventRegistration
|
|
|
145
144
|
manualCodeEntryAllowed: boolean;
|
|
146
145
|
autoAppliedDiscount: import("../../api/types").AutoAppliedDiscountPreview | null;
|
|
147
146
|
discountsAvailableLoading: boolean;
|
|
148
|
-
discountContext: DiscountContext | null;
|
|
147
|
+
discountContext: import("../../api").DiscountContext | null;
|
|
149
148
|
shouldShowDiscountToggle: boolean;
|
|
150
149
|
verification: import("./useEventRegistrationStripeReturn").EventRegistrationStripeReturnResult;
|
|
151
150
|
handleDetailsComplete: () => Promise<EventRegistrationDetailsCompleteResult>;
|
|
@@ -207,7 +206,7 @@ export declare function useEventRegistrationWizardWithDeps(options: UseEventRegi
|
|
|
207
206
|
}> | null;
|
|
208
207
|
slidingScaleSelectionMessage: string | null;
|
|
209
208
|
selectedTicketType: import("../../..").EventRegistrationPricingOption | null;
|
|
210
|
-
ticketSelectionSummaryLines: {
|
|
209
|
+
ticketSelectionSummaryLines: readonly {
|
|
211
210
|
pricingOptionId: string | null;
|
|
212
211
|
label: string;
|
|
213
212
|
quantity: number;
|
|
@@ -271,7 +270,7 @@ export declare function useEventRegistrationWizardWithDeps(options: UseEventRegi
|
|
|
271
270
|
manualCodeEntryAllowed: boolean;
|
|
272
271
|
autoAppliedDiscount: import("../../api/types").AutoAppliedDiscountPreview | null;
|
|
273
272
|
discountsAvailableLoading: boolean;
|
|
274
|
-
discountContext: DiscountContext | null;
|
|
273
|
+
discountContext: import("../../api").DiscountContext | null;
|
|
275
274
|
shouldShowDiscountToggle: boolean;
|
|
276
275
|
verification: import("./useEventRegistrationStripeReturn").EventRegistrationStripeReturnResult;
|
|
277
276
|
handleDetailsComplete: () => Promise<EventRegistrationDetailsCompleteResult>;
|
package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useSettledCommerceView.d.ts
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import type { BlockApiClient } from '../../api';
|
|
2
|
+
import type { DiscountContext } from '../../api/types';
|
|
3
|
+
import type { UseEligibilityResult } from './hooks';
|
|
4
|
+
import type { EligibilityData, PaymentSelection, RegistrationEvent } from './types';
|
|
5
|
+
import type { useDiscountCodeUi } from './useDiscountCodeUi';
|
|
6
|
+
export declare function useSettledCommerceView(input: Readonly<{
|
|
7
|
+
api: BlockApiClient;
|
|
8
|
+
useDiscountCodeUi: typeof useDiscountCodeUi;
|
|
9
|
+
eligibilityResult: UseEligibilityResult;
|
|
10
|
+
eligibility: EligibilityData | null;
|
|
11
|
+
currentEvent: RegistrationEvent | null;
|
|
12
|
+
paymentSelection: PaymentSelection;
|
|
13
|
+
eventRequiresPayment: boolean;
|
|
14
|
+
ticketsCount: number;
|
|
15
|
+
}>): {
|
|
16
|
+
discountUi: {
|
|
17
|
+
discountUiOpen: boolean;
|
|
18
|
+
setDiscountUiOpen: (isOpen: boolean) => void;
|
|
19
|
+
discountCode: string;
|
|
20
|
+
setDiscountCode: (code: string) => void;
|
|
21
|
+
discountsAvailable: boolean;
|
|
22
|
+
manualCodeEntryAllowed: boolean;
|
|
23
|
+
autoAppliedDiscount: import("../../api/types").AutoAppliedDiscountPreview | null;
|
|
24
|
+
discountsAvailableLoading: boolean;
|
|
25
|
+
discountAvailabilityRequestKey: string;
|
|
26
|
+
settledDiscountAvailabilityRequestKey: string | null;
|
|
27
|
+
};
|
|
28
|
+
discountContext: DiscountContext | null;
|
|
29
|
+
ticketSelectionSubtotalCents: number | null;
|
|
30
|
+
ticketSelectionSummaryLines: readonly {
|
|
31
|
+
pricingOptionId: string | null;
|
|
32
|
+
label: string;
|
|
33
|
+
quantity: number;
|
|
34
|
+
unitPriceCents: number;
|
|
35
|
+
subtotalCents: number;
|
|
36
|
+
}[];
|
|
37
|
+
};
|
|
@@ -3,7 +3,7 @@ import type { PublicEvent, ButtonVariant, EventLayout, ColumnOption, WeekStart,
|
|
|
3
3
|
import type { CardRole } from "../../../../../../theme-core/src/cards/index";
|
|
4
4
|
import { type CalendarViewLoadState } from "../../hooks/useCalendarEvents";
|
|
5
5
|
import type { EventCombinedInteractiveIslandProps } from "./EventCombined.interactive";
|
|
6
|
-
import type { EventCollectionHydration } from
|
|
6
|
+
import type { EventCollectionHydration } from "./shared/eventCollectionContract";
|
|
7
7
|
import { type CalendarDate, type CalendarViewport } from "./shared";
|
|
8
8
|
import { type EventListPaginationAction, type EventPageSize } from "./shared/listOptions";
|
|
9
9
|
import { type CalendarViewToggleOption } from "./shared/calendarViewOptions";
|
|
@@ -25,6 +25,7 @@ export type EventCombinedClientProps = Readonly<{
|
|
|
25
25
|
eventSurface?: EventSurfaceScope | null;
|
|
26
26
|
filterEventPresets?: string | null;
|
|
27
27
|
scheduleScope?: EventScheduleScope | null;
|
|
28
|
+
seriesIds?: string | null;
|
|
28
29
|
filterCategoryIds?: string | null;
|
|
29
30
|
filterStaffMemberId?: string | null;
|
|
30
31
|
filterVenueId?: string | null;
|
|
@@ -36,8 +37,8 @@ export type EventCombinedClientProps = Readonly<{
|
|
|
36
37
|
buttonText?: string;
|
|
37
38
|
emptyMessage?: string;
|
|
38
39
|
className?: string;
|
|
39
|
-
calendarContext: EventCollectionHydration[
|
|
40
|
-
calendarWindow?: EventCollectionHydration[
|
|
40
|
+
calendarContext: EventCollectionHydration["calendarContext"];
|
|
41
|
+
calendarWindow?: EventCollectionHydration["calendarWindow"];
|
|
41
42
|
}>;
|
|
42
43
|
export type EventCombinedIslandClientProps = EventCombinedInteractiveIslandProps;
|
|
43
44
|
type EventCombinedCalendarTabProps = Readonly<{
|
|
@@ -42,6 +42,7 @@ export declare const eventCombinedBlockRuntime: Readonly<{
|
|
|
42
42
|
eventSurface?: import("../../..").EventSurfaceScope | null;
|
|
43
43
|
filterEventPresets?: readonly string[] | string | null;
|
|
44
44
|
scheduleScope?: import("../../..").EventScheduleScope | null;
|
|
45
|
+
seriesIds?: readonly string[] | string | null;
|
|
45
46
|
filterCategoryIds?: readonly string[] | string | null;
|
|
46
47
|
filterStaffMemberId?: string | null;
|
|
47
48
|
filterVenueId?: string | null;
|
|
@@ -98,6 +99,7 @@ export declare const eventCombinedBlockRuntime: Readonly<{
|
|
|
98
99
|
eventSurface?: import("../../..").EventSurfaceScope | null;
|
|
99
100
|
filterEventPresets?: readonly string[] | string | null;
|
|
100
101
|
scheduleScope?: import("../../..").EventScheduleScope | null;
|
|
102
|
+
seriesIds?: readonly string[] | string | null;
|
|
101
103
|
filterCategoryIds?: readonly string[] | string | null;
|
|
102
104
|
filterStaffMemberId?: string | null;
|
|
103
105
|
filterVenueId?: string | null;
|
|
@@ -133,6 +135,7 @@ export declare const eventCombinedBlockRuntime: Readonly<{
|
|
|
133
135
|
eventSurface?: import("../../..").EventSurfaceScope | null;
|
|
134
136
|
filterEventPresets?: readonly string[] | string | null;
|
|
135
137
|
scheduleScope?: import("../../..").EventScheduleScope | null;
|
|
138
|
+
seriesIds?: readonly string[] | string | null;
|
|
136
139
|
filterCategoryIds?: readonly string[] | string | null;
|
|
137
140
|
filterStaffMemberId?: string | null;
|
|
138
141
|
filterVenueId?: string | null;
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
+
import type { EventCollectionSourceProps } from "./shared/eventCollectionContract";
|
|
1
2
|
import { type CardRole } from "../../../../../../theme-core/src/cards/index";
|
|
2
3
|
import type { ButtonVariant, CardOrientation, ColumnOption, EventLayout, EventScheduleScope, EventSurfaceScope, FilterAutoShow, PublicEvent } from "../../../blocks/events/shared/types";
|
|
3
4
|
import { type InteractiveIslandProps } from "../../../../contracts/islands";
|
|
4
5
|
import { type EventListPaginationAction, type EventListPaginationMode, type EventPageSize } from "./shared/listOptions";
|
|
5
|
-
export type EventListingSourceProps = Readonly<{
|
|
6
|
+
export type EventListingSourceProps = Pick<EventCollectionSourceProps, "showFilters" | "showCategoryFilter" | "showVenueFilter" | "showStaffFilter" | "eventSurface" | "filterEventPresets" | "scheduleScope" | "seriesIds" | "filterCategoryIds" | "filterStaffMemberId" | "filterVenueId"> & Readonly<{
|
|
6
7
|
events?: PublicEvent[] | null;
|
|
7
8
|
siteId: string;
|
|
8
9
|
apiBaseUrl?: string;
|
|
@@ -21,16 +22,6 @@ export type EventListingSourceProps = Readonly<{
|
|
|
21
22
|
showCapacity?: boolean;
|
|
22
23
|
emptyMessage?: string;
|
|
23
24
|
className?: string;
|
|
24
|
-
showFilters?: boolean | null;
|
|
25
|
-
showCategoryFilter?: FilterAutoShow;
|
|
26
|
-
showVenueFilter?: boolean | null;
|
|
27
|
-
showStaffFilter?: boolean | null;
|
|
28
|
-
eventSurface?: EventSurfaceScope | null;
|
|
29
|
-
filterEventPresets?: readonly string[] | string | null;
|
|
30
|
-
scheduleScope?: EventScheduleScope | null;
|
|
31
|
-
filterCategoryIds?: readonly string[] | string | null;
|
|
32
|
-
filterStaffMemberId?: string | null;
|
|
33
|
-
filterVenueId?: string | null;
|
|
34
25
|
}>;
|
|
35
26
|
export type EventListingDisplay = Readonly<{
|
|
36
27
|
kind: "event-listing";
|
|
@@ -61,6 +52,7 @@ export type EventListingHydration = Readonly<{
|
|
|
61
52
|
eventSurface: EventSurfaceScope;
|
|
62
53
|
filterEventPresets: string | null;
|
|
63
54
|
scheduleScope: EventScheduleScope;
|
|
55
|
+
seriesIds?: string | null;
|
|
64
56
|
filterCategoryIds?: string | null;
|
|
65
57
|
filterStaffMemberId?: string | null;
|
|
66
58
|
filterVenueId?: string | null;
|
|
@@ -74,36 +66,7 @@ type EventListingIslandMeta = Readonly<{
|
|
|
74
66
|
export type EventListingInteractiveIslandProps = InteractiveIslandProps<EventListingIslandMeta, "event-listing", typeof eventListingBlockRuntime>;
|
|
75
67
|
export declare const eventListingBlockRuntime: Readonly<{
|
|
76
68
|
kind: "progressive";
|
|
77
|
-
buildRender: (source: Readonly<{
|
|
78
|
-
events?: PublicEvent[] | null;
|
|
79
|
-
siteId: string;
|
|
80
|
-
apiBaseUrl?: string;
|
|
81
|
-
stage?: "preview" | "published";
|
|
82
|
-
layout?: EventLayout;
|
|
83
|
-
columns?: ColumnOption;
|
|
84
|
-
eventsPerPage?: string;
|
|
85
|
-
paginationMode?: EventListPaginationMode;
|
|
86
|
-
seeAllUrl?: string;
|
|
87
|
-
loadMoreText?: string;
|
|
88
|
-
cardRole?: CardRole;
|
|
89
|
-
buttonVariant?: ButtonVariant;
|
|
90
|
-
buttonText?: string;
|
|
91
|
-
showVenue?: boolean;
|
|
92
|
-
showMap?: boolean;
|
|
93
|
-
showCapacity?: boolean;
|
|
94
|
-
emptyMessage?: string;
|
|
95
|
-
className?: string;
|
|
96
|
-
showFilters?: boolean | null;
|
|
97
|
-
showCategoryFilter?: FilterAutoShow;
|
|
98
|
-
showVenueFilter?: boolean | null;
|
|
99
|
-
showStaffFilter?: boolean | null;
|
|
100
|
-
eventSurface?: EventSurfaceScope | null;
|
|
101
|
-
filterEventPresets?: readonly string[] | string | null;
|
|
102
|
-
scheduleScope?: EventScheduleScope | null;
|
|
103
|
-
filterCategoryIds?: readonly string[] | string | null;
|
|
104
|
-
filterStaffMemberId?: string | null;
|
|
105
|
-
filterVenueId?: string | null;
|
|
106
|
-
}>) => Readonly<{
|
|
69
|
+
buildRender: (source: EventListingSourceProps) => Readonly<{
|
|
107
70
|
display: Readonly<{
|
|
108
71
|
kind: "event-listing";
|
|
109
72
|
state: "loading" | "empty" | "ready";
|
|
@@ -133,6 +96,7 @@ export declare const eventListingBlockRuntime: Readonly<{
|
|
|
133
96
|
eventSurface: EventSurfaceScope;
|
|
134
97
|
filterEventPresets: string | null;
|
|
135
98
|
scheduleScope: EventScheduleScope;
|
|
99
|
+
seriesIds?: string | null;
|
|
136
100
|
filterCategoryIds?: string | null;
|
|
137
101
|
filterStaffMemberId?: string | null;
|
|
138
102
|
filterVenueId?: string | null;
|
|
@@ -141,66 +105,8 @@ export declare const eventListingBlockRuntime: Readonly<{
|
|
|
141
105
|
}>;
|
|
142
106
|
contracts: Readonly<{
|
|
143
107
|
source: Readonly<{
|
|
144
|
-
encode: (value:
|
|
145
|
-
|
|
146
|
-
siteId: string;
|
|
147
|
-
apiBaseUrl?: string;
|
|
148
|
-
stage?: "preview" | "published";
|
|
149
|
-
layout?: EventLayout;
|
|
150
|
-
columns?: ColumnOption;
|
|
151
|
-
eventsPerPage?: string;
|
|
152
|
-
paginationMode?: EventListPaginationMode;
|
|
153
|
-
seeAllUrl?: string;
|
|
154
|
-
loadMoreText?: string;
|
|
155
|
-
cardRole?: CardRole;
|
|
156
|
-
buttonVariant?: ButtonVariant;
|
|
157
|
-
buttonText?: string;
|
|
158
|
-
showVenue?: boolean;
|
|
159
|
-
showMap?: boolean;
|
|
160
|
-
showCapacity?: boolean;
|
|
161
|
-
emptyMessage?: string;
|
|
162
|
-
className?: string;
|
|
163
|
-
showFilters?: boolean | null;
|
|
164
|
-
showCategoryFilter?: FilterAutoShow;
|
|
165
|
-
showVenueFilter?: boolean | null;
|
|
166
|
-
showStaffFilter?: boolean | null;
|
|
167
|
-
eventSurface?: EventSurfaceScope | null;
|
|
168
|
-
filterEventPresets?: readonly string[] | string | null;
|
|
169
|
-
scheduleScope?: EventScheduleScope | null;
|
|
170
|
-
filterCategoryIds?: readonly string[] | string | null;
|
|
171
|
-
filterStaffMemberId?: string | null;
|
|
172
|
-
filterVenueId?: string | null;
|
|
173
|
-
}>) => unknown;
|
|
174
|
-
decode: (input: unknown) => import("../../../../contracts").DecodeResult<Readonly<{
|
|
175
|
-
events?: PublicEvent[] | null;
|
|
176
|
-
siteId: string;
|
|
177
|
-
apiBaseUrl?: string;
|
|
178
|
-
stage?: "preview" | "published";
|
|
179
|
-
layout?: EventLayout;
|
|
180
|
-
columns?: ColumnOption;
|
|
181
|
-
eventsPerPage?: string;
|
|
182
|
-
paginationMode?: EventListPaginationMode;
|
|
183
|
-
seeAllUrl?: string;
|
|
184
|
-
loadMoreText?: string;
|
|
185
|
-
cardRole?: CardRole;
|
|
186
|
-
buttonVariant?: ButtonVariant;
|
|
187
|
-
buttonText?: string;
|
|
188
|
-
showVenue?: boolean;
|
|
189
|
-
showMap?: boolean;
|
|
190
|
-
showCapacity?: boolean;
|
|
191
|
-
emptyMessage?: string;
|
|
192
|
-
className?: string;
|
|
193
|
-
showFilters?: boolean | null;
|
|
194
|
-
showCategoryFilter?: FilterAutoShow;
|
|
195
|
-
showVenueFilter?: boolean | null;
|
|
196
|
-
showStaffFilter?: boolean | null;
|
|
197
|
-
eventSurface?: EventSurfaceScope | null;
|
|
198
|
-
filterEventPresets?: readonly string[] | string | null;
|
|
199
|
-
scheduleScope?: EventScheduleScope | null;
|
|
200
|
-
filterCategoryIds?: readonly string[] | string | null;
|
|
201
|
-
filterStaffMemberId?: string | null;
|
|
202
|
-
filterVenueId?: string | null;
|
|
203
|
-
}>>;
|
|
108
|
+
encode: (value: EventListingSourceProps) => unknown;
|
|
109
|
+
decode: (input: unknown) => import("../../../../contracts").DecodeResult<EventListingSourceProps>;
|
|
204
110
|
}>;
|
|
205
111
|
render: Readonly<{
|
|
206
112
|
encode: (value: Readonly<{
|
|
@@ -233,6 +139,7 @@ export declare const eventListingBlockRuntime: Readonly<{
|
|
|
233
139
|
eventSurface: EventSurfaceScope;
|
|
234
140
|
filterEventPresets: string | null;
|
|
235
141
|
scheduleScope: EventScheduleScope;
|
|
142
|
+
seriesIds?: string | null;
|
|
236
143
|
filterCategoryIds?: string | null;
|
|
237
144
|
filterStaffMemberId?: string | null;
|
|
238
145
|
filterVenueId?: string | null;
|
|
@@ -269,6 +176,7 @@ export declare const eventListingBlockRuntime: Readonly<{
|
|
|
269
176
|
eventSurface: EventSurfaceScope;
|
|
270
177
|
filterEventPresets: string | null;
|
|
271
178
|
scheduleScope: EventScheduleScope;
|
|
179
|
+
seriesIds?: string | null;
|
|
272
180
|
filterCategoryIds?: string | null;
|
|
273
181
|
filterStaffMemberId?: string | null;
|
|
274
182
|
filterVenueId?: string | null;
|
|
@@ -317,6 +225,7 @@ export declare const eventListingInteractiveIslandPropsCodec: Readonly<{
|
|
|
317
225
|
eventSurface: EventSurfaceScope;
|
|
318
226
|
filterEventPresets: string | null;
|
|
319
227
|
scheduleScope: EventScheduleScope;
|
|
228
|
+
seriesIds?: string | null;
|
|
320
229
|
filterCategoryIds?: string | null;
|
|
321
230
|
filterStaffMemberId?: string | null;
|
|
322
231
|
filterVenueId?: string | null;
|
|
@@ -362,6 +271,7 @@ export declare const eventListingInteractiveIslandPropsCodec: Readonly<{
|
|
|
362
271
|
eventSurface: EventSurfaceScope;
|
|
363
272
|
filterEventPresets: string | null;
|
|
364
273
|
scheduleScope: EventScheduleScope;
|
|
274
|
+
seriesIds?: string | null;
|
|
365
275
|
filterCategoryIds?: string | null;
|
|
366
276
|
filterStaffMemberId?: string | null;
|
|
367
277
|
filterVenueId?: string | null;
|
package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/eventCollectionContract.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
-
import { type CalendarWindowPage } from
|
|
2
|
+
import { type CalendarWindowPage } from "../../../../blocks/events/shared/calendarWindow";
|
|
3
3
|
import { type CardRole } from "../../../../../../../theme-core/src/cards/index";
|
|
4
4
|
import { type BookingTimeZone } from "../../../../../../../core/src/index";
|
|
5
|
-
import type { CalendarDate } from
|
|
5
|
+
import type { CalendarDate } from "../../../../../../../calendar/src/index";
|
|
6
6
|
import type { ButtonVariant, CalendarTabViews, CalendarView, ColumnOption, EventLayout, EventScheduleScope, EventSurfaceScope, FilterAutoShow, PublicEvent, WeekStart } from "../../../../blocks/events/shared/types";
|
|
7
7
|
import { type EventListPaginationAction, type EventListPaginationMode, type EventPageSize } from "./listOptions";
|
|
8
8
|
import type { EventListingDisplay } from "../EventListing.interactive";
|
|
@@ -28,6 +28,7 @@ export type EventCollectionSourceProps = Readonly<{
|
|
|
28
28
|
eventSurface?: EventSurfaceScope | null;
|
|
29
29
|
filterEventPresets?: readonly string[] | string | null;
|
|
30
30
|
scheduleScope?: EventScheduleScope | null;
|
|
31
|
+
seriesIds?: readonly string[] | string | null;
|
|
31
32
|
filterCategoryIds?: readonly string[] | string | null;
|
|
32
33
|
filterStaffMemberId?: string | null;
|
|
33
34
|
filterVenueId?: string | null;
|
|
@@ -57,6 +58,7 @@ export type EventCollectionDisplay = Readonly<{
|
|
|
57
58
|
eventSurface: EventSurfaceScope;
|
|
58
59
|
filterEventPresets: string | null;
|
|
59
60
|
scheduleScope: EventScheduleScope;
|
|
61
|
+
seriesIds?: string | null;
|
|
60
62
|
filterCategoryIds: string | null;
|
|
61
63
|
filterStaffMemberId: string | null;
|
|
62
64
|
filterVenueId: string | null;
|
|
@@ -102,6 +104,7 @@ export declare const eventCollectionFilterSourceSchemaShape: {
|
|
|
102
104
|
recurring: "recurring";
|
|
103
105
|
oneOff: "oneOff";
|
|
104
106
|
}>>>;
|
|
107
|
+
readonly seriesIds: z.ZodOptional<z.ZodNullable<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>>;
|
|
105
108
|
readonly filterCategoryIds: z.ZodOptional<z.ZodNullable<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>>;
|
|
106
109
|
readonly filterStaffMemberId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
107
110
|
readonly filterVenueId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
@@ -147,6 +150,7 @@ export declare const eventCollectionSourceSchemaShape: {
|
|
|
147
150
|
recurring: "recurring";
|
|
148
151
|
oneOff: "oneOff";
|
|
149
152
|
}>>>;
|
|
153
|
+
readonly seriesIds: z.ZodOptional<z.ZodNullable<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>>;
|
|
150
154
|
readonly filterCategoryIds: z.ZodOptional<z.ZodNullable<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>>;
|
|
151
155
|
readonly filterStaffMemberId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
152
156
|
readonly filterVenueId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
@@ -2162,6 +2166,7 @@ export declare const eventCollectionDisplaySchemaShape: {
|
|
|
2162
2166
|
recurring: "recurring";
|
|
2163
2167
|
oneOff: "oneOff";
|
|
2164
2168
|
}>;
|
|
2169
|
+
readonly seriesIds: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
2165
2170
|
readonly filterCategoryIds: z.ZodNullable<z.ZodString>;
|
|
2166
2171
|
readonly filterStaffMemberId: z.ZodNullable<z.ZodString>;
|
|
2167
2172
|
readonly filterVenueId: z.ZodNullable<z.ZodString>;
|
|
@@ -27,6 +27,7 @@ export declare function resolveEventListPaginationAction(input: {
|
|
|
27
27
|
defaultLabel?: string;
|
|
28
28
|
}): EventListPaginationAction;
|
|
29
29
|
export type EventRuntimeFilters = Readonly<{
|
|
30
|
+
seriesIds?: string;
|
|
30
31
|
categoryIds?: string;
|
|
31
32
|
staffMemberId?: string;
|
|
32
33
|
venueId?: string;
|
|
@@ -36,6 +37,7 @@ export type EventRuntimeFilters = Readonly<{
|
|
|
36
37
|
}>;
|
|
37
38
|
export type EventRuntimeFiltersDraft = Writable<EventRuntimeFilters>;
|
|
38
39
|
export type EventRuntimeFilterInput = Readonly<{
|
|
40
|
+
seriesIds?: string | null;
|
|
39
41
|
eventSurface?: EventSurfaceScope | null;
|
|
40
42
|
filterEventPresets?: string | null;
|
|
41
43
|
scheduleScope?: EventScheduleScope | null;
|
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
import { type TransformDefinition } from './core';
|
|
3
|
+
declare const selectionParamSchema: z.ZodObject<{
|
|
4
|
+
key: z.ZodEnum<{
|
|
5
|
+
scheduleScope: "scheduleScope";
|
|
6
|
+
eventSurface: "eventSurface";
|
|
7
|
+
seriesIds: "seriesIds";
|
|
8
|
+
filterEventPresets: "filterEventPresets";
|
|
9
|
+
filterCategoryIds: "filterCategoryIds";
|
|
10
|
+
filterStaffMemberId: "filterStaffMemberId";
|
|
11
|
+
filterVenueId: "filterVenueId";
|
|
12
|
+
}>;
|
|
13
|
+
}, z.core.$strip>;
|
|
14
|
+
export declare const eventCalendarSelectionParam: TransformDefinition<z.infer<typeof selectionParamSchema>>;
|
|
3
15
|
declare const readJobSchema: z.ZodObject<{
|
|
4
16
|
job: z.ZodEnum<{
|
|
5
17
|
calendar: "calendar";
|
|
@@ -6,6 +6,10 @@ export type BookingInstalmentScheduleRow = Readonly<{
|
|
|
6
6
|
dueAt: string;
|
|
7
7
|
amountCents: number;
|
|
8
8
|
}>;
|
|
9
|
+
export declare function resolveBookingInitialInstalmentAmountCents(input: Readonly<{
|
|
10
|
+
totalAmountCents: number;
|
|
11
|
+
plan: BookingInstalmentPlanConfig;
|
|
12
|
+
}>): number;
|
|
9
13
|
export declare function buildBookingInstalmentSchedule(input: Readonly<{
|
|
10
14
|
anchorAt: string;
|
|
11
15
|
totalAmountCents: number;
|
|
@@ -15595,6 +15595,7 @@ export type Database = {
|
|
|
15595
15595
|
header_variant: string;
|
|
15596
15596
|
homepage_id: string | null;
|
|
15597
15597
|
homepage_path: string | null;
|
|
15598
|
+
hosted_booking_appearance: Json | null;
|
|
15598
15599
|
legal_profile: Json | null;
|
|
15599
15600
|
logo_asset_id: string | null;
|
|
15600
15601
|
notification_email: string | null;
|
|
@@ -15629,6 +15630,7 @@ export type Database = {
|
|
|
15629
15630
|
header_variant?: string;
|
|
15630
15631
|
homepage_id?: string | null;
|
|
15631
15632
|
homepage_path?: string | null;
|
|
15633
|
+
hosted_booking_appearance?: Json | null;
|
|
15632
15634
|
legal_profile?: Json | null;
|
|
15633
15635
|
logo_asset_id?: string | null;
|
|
15634
15636
|
notification_email?: string | null;
|
|
@@ -15663,6 +15665,7 @@ export type Database = {
|
|
|
15663
15665
|
header_variant?: string;
|
|
15664
15666
|
homepage_id?: string | null;
|
|
15665
15667
|
homepage_path?: string | null;
|
|
15668
|
+
hosted_booking_appearance?: Json | null;
|
|
15666
15669
|
legal_profile?: Json | null;
|
|
15667
15670
|
logo_asset_id?: string | null;
|
|
15668
15671
|
notification_email?: string | null;
|
|
@@ -12,6 +12,12 @@ export type SiteOptionLoadItems = (args: SiteOptionLoadItemsArgs) => Promise<Sit
|
|
|
12
12
|
export type SiteOptionLoadErrorMapper = (error: unknown, args: SiteOptionLoadItemsArgs) => unknown;
|
|
13
13
|
export type SiteOptionManageLinkRenderers = Partial<Readonly<Record<SiteOptionSource, SiteOptionWidgetAdapter['renderManageLink']>>>;
|
|
14
14
|
export declare const siteOptionWidgetLabels: {
|
|
15
|
+
readonly eventSeries: {
|
|
16
|
+
readonly loading: "Loading events...";
|
|
17
|
+
readonly select: "Choose events";
|
|
18
|
+
readonly empty: "No events available. Create an event in Bookings first.";
|
|
19
|
+
readonly emptySelection: "Choose at least one event to show in this block.";
|
|
20
|
+
};
|
|
15
21
|
readonly eventCategories: {
|
|
16
22
|
readonly loading: "Loading categories...";
|
|
17
23
|
readonly select: "Select categories";
|
|
@@ -32,14 +38,34 @@ export declare const siteOptionWidgetLabels: {
|
|
|
32
38
|
};
|
|
33
39
|
};
|
|
34
40
|
export declare const siteOptionLoadFailureMessages: {
|
|
41
|
+
readonly eventSeries: "We couldn't load your events. Please try again.";
|
|
35
42
|
readonly eventCategories: "Failed to load event categories";
|
|
36
43
|
readonly venues: "Failed to load venues";
|
|
37
44
|
readonly staffMembers: "Failed to load staff members";
|
|
38
45
|
};
|
|
39
46
|
export declare function mapEventCategoriesToSiteOptionItems(payload: ListEventCategoriesResponse): SiteOptionWidgetItem[];
|
|
47
|
+
export declare function mapEventsToSiteOptionItems(events: readonly Readonly<{
|
|
48
|
+
title: string;
|
|
49
|
+
slug: string;
|
|
50
|
+
schedules: {
|
|
51
|
+
kind: 'ordinary';
|
|
52
|
+
schedule: {
|
|
53
|
+
id: string;
|
|
54
|
+
};
|
|
55
|
+
} | {
|
|
56
|
+
kind: 'wholeSeries';
|
|
57
|
+
runs: readonly {
|
|
58
|
+
id: string;
|
|
59
|
+
title: string;
|
|
60
|
+
slug: string;
|
|
61
|
+
status?: string;
|
|
62
|
+
visibility?: string;
|
|
63
|
+
}[];
|
|
64
|
+
};
|
|
65
|
+
}>[]): SiteOptionWidgetItem[];
|
|
40
66
|
export declare function mapVenuesToSiteOptionItems(payload: ListVenuesResponse): SiteOptionWidgetItem[];
|
|
41
67
|
export declare function mapStaffMembersToSiteOptionItems(payload: ListAppointmentResourcesResponse): SiteOptionWidgetItem[];
|
|
42
|
-
export declare function loadSiteOptionItemsFromApi({ apiClient, siteId, source
|
|
68
|
+
export declare function loadSiteOptionItemsFromApi({ apiClient, siteId, source }: SiteOptionLoadItemsArgs & Readonly<{
|
|
43
69
|
apiClient: ApiClient;
|
|
44
70
|
}>): Promise<SiteOptionWidgetItem[]>;
|
|
45
71
|
export declare function createSiteOptionApiLoader(apiClient: ApiClient): SiteOptionLoadItems;
|
|
@@ -286,7 +286,7 @@ export type SiteRouteRecord = {
|
|
|
286
286
|
publishedAt?: string | null;
|
|
287
287
|
};
|
|
288
288
|
export type SiteBookingOfferingPresetSummary = ApiSiteBookingOfferingPresetSummary;
|
|
289
|
-
type SiteSelectionResponse = Pick<ApiSiteBySlugResponse, 'theme' | 'themeId' | 'bookingAttribution' | Extract<keyof ApiSiteBySlugResponse, `selection${string}`>>;
|
|
289
|
+
type SiteSelectionResponse = Pick<ApiSiteBySlugResponse, 'theme' | 'hostedBookingAppearance' | 'themeId' | 'bookingAttribution' | Extract<keyof ApiSiteBySlugResponse, `selection${string}`>>;
|
|
290
290
|
export type SiteResponse = SiteSelectionResponse & {
|
|
291
291
|
site: ApiSiteBySlugResponse['site'] & {
|
|
292
292
|
id: string;
|
|
@@ -1,8 +1,24 @@
|
|
|
1
1
|
import * as React from "react";
|
|
2
2
|
import type { Theme, Typography } from "./schema";
|
|
3
3
|
import type { SiteFont } from "./fonts/types";
|
|
4
|
+
/**
|
|
5
|
+
* Collect unique font families from typography config
|
|
6
|
+
*/
|
|
7
|
+
type FontLoadingStyle = Readonly<{
|
|
8
|
+
family: string;
|
|
9
|
+
weight?: Typography['body']['weight'] | number;
|
|
10
|
+
}>;
|
|
11
|
+
type FontLoadingWeight = Readonly<{
|
|
12
|
+
weight?: Typography['body']['weight'] | number | null;
|
|
13
|
+
}>;
|
|
14
|
+
type FontLoadingTypography = Readonly<{
|
|
15
|
+
body: FontLoadingStyle;
|
|
16
|
+
headings: Readonly<{
|
|
17
|
+
default: FontLoadingStyle;
|
|
18
|
+
}> & Partial<Record<'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6', FontLoadingWeight>>;
|
|
19
|
+
}>;
|
|
4
20
|
type ThemeFontLoaderProps = {
|
|
5
|
-
typography:
|
|
21
|
+
typography: FontLoadingTypography;
|
|
6
22
|
/** Optional button font weight from theme.buttons.global.fontWeight */
|
|
7
23
|
buttonFontWeight?: number;
|
|
8
24
|
/** Optional extra weights to load for the body font (useful for UI labels, etc.) */
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Internal: the opt-out the generated affordance rule is written against.
|
|
3
|
+
*
|
|
4
|
+
* A button style may declare a trailing `affordance`, which the theme renders as
|
|
5
|
+
* a CSS `::after` on every button of that variant. An authored button that
|
|
6
|
+
* renders its own trailing icon must not also receive the theme's, or it shows
|
|
7
|
+
* two.
|
|
8
|
+
*
|
|
9
|
+
* Deliberately not exported from `./index`. This used to be public, and two
|
|
10
|
+
* block components reached past the theme to draw arrows of their own — one of
|
|
11
|
+
* them doubling up on the styles that declare an affordance, both of them
|
|
12
|
+
* overriding the twelve styles that deliberately declare none. Whether a button
|
|
13
|
+
* carries a trailing affordance is the style's decision; the only caller that
|
|
14
|
+
* legitimately opts out is the authored-button renderer, which reaches it
|
|
15
|
+
* through `themeButtonClassNameWithTrailingIcon`.
|
|
16
|
+
*/
|
|
17
|
+
export declare const AFFORDANCE_SUPPRESS_CLASS = "rb-affordance-off";
|
|
@@ -16,7 +16,7 @@ export declare const BUTTON_CONTRAST_POLICY: {
|
|
|
16
16
|
readonly nonTextMinimumRatio: 3;
|
|
17
17
|
readonly gradientSamplesPerSegment: 20;
|
|
18
18
|
readonly alphaBackgrounds: "reject-without-known-surface";
|
|
19
|
-
readonly disabled: "
|
|
19
|
+
readonly disabled: "validated-colour-pair-with-muted-control-opacity";
|
|
20
20
|
};
|
|
21
21
|
export type ButtonColourContractError = Readonly<{
|
|
22
22
|
tag: 'unknown_palette_token';
|