@riverbankcms/sdk 0.90.0 → 0.90.1
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-KVXNF3VW.mjs → PreviewEditorSidebar-FNFRVSIM.mjs} +2 -2
- package/dist/{PreviewEditorUI-J3JN5Z7T.mjs → PreviewEditorUI-3WXJFQXG.mjs} +2 -2
- package/dist/SdkPreviewModeRuntime-2UCIMKUB.mjs +8 -0
- package/dist/_dts/api/src/bookingConfig.d.ts +3 -0
- package/dist/_dts/api/src/event-listing-destination.d.ts +59 -0
- package/dist/_dts/api/src/index.d.ts +4 -0
- package/dist/_dts/api/src/navigation/dashboardSettingsNav.d.ts +0 -1
- package/dist/_dts/api/src/navigation.d.ts +2 -0
- package/dist/_dts/api/src/publicExperienceEndpoints.d.ts +3 -1
- package/dist/_dts/api/src/settings/permissions.d.ts +273 -0
- package/dist/_dts/api/src/types.d.ts +1 -0
- package/dist/_dts/blocks/src/system/blocks/events/shared/schemas.d.ts +60 -2
- package/dist/_dts/blocks/src/system/blocks/events/shared/types.d.ts +12 -1
- package/dist/_dts/blocks/src/system/blocks/media-text.d.ts +9 -9
- package/dist/_dts/blocks/src/system/blocks/team-members.d.ts +1 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/event-registration.headless.contract.d.ts +5 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/eventPaymentOptions.d.ts +24 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/destination.d.ts +8 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/pricing.d.ts +3 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/utils.d.ts +7 -0
- package/dist/_dts/core/src/event-pricing.d.ts +12 -2
- package/dist/_dts/sdk/src/public-api/contracts.d.ts +11 -1
- package/dist/_dts/sdk/src/rendering/islands/types.d.ts +11 -1
- package/dist/_dts/sdk/src/version.d.ts +1 -1
- package/dist/{chunk-PMBB6MQ7.mjs → chunk-CR2VX432.mjs} +297 -117
- package/dist/{chunk-AEOYWPE4.mjs → chunk-FA6LVZ7C.mjs} +5 -5
- package/dist/{chunk-RQ3XZ4SJ.mjs → chunk-H6TT5ZXI.mjs} +1 -1
- package/dist/{chunk-GSPFFUVB.mjs → chunk-SYYJZPKU.mjs} +1 -1
- package/dist/cli/index.mjs +160 -103
- package/dist/client/{accordion-GXQNWQ6O.mjs → accordion-4K7VGZ3I.mjs} +2 -2
- package/dist/client/{bookingForm-STLUJ36H.mjs → bookingForm-3QXA3CIS.mjs} +5 -5
- package/dist/client/bookings.mjs +1154 -556
- package/dist/client/{carousel-CVRN6EPP.mjs → carousel-BEJKNGQ7.mjs} +3 -3
- package/dist/client/{cart-IYIBA5CL.mjs → cart-44BBM6XG.mjs} +6 -6
- package/dist/client/{checkout-O3BGM4GS.mjs → checkout-THMHEYKF.mjs} +6 -6
- package/dist/client/{chunk-25W2EQUN.mjs → chunk-3H5CLFKT.mjs} +8 -0
- package/dist/client/{chunk-MFPKS6QS.mjs → chunk-4COPESPO.mjs} +5 -5
- package/dist/client/{chunk-4RTFGHZN.mjs → chunk-5AJIMWKS.mjs} +6 -3
- package/dist/client/{chunk-6DPXDOIL.mjs → chunk-B4H6QMPY.mjs} +93 -22
- package/dist/client/{chunk-VFHZLZAC.mjs → chunk-DQIRKNZE.mjs} +1 -1
- package/dist/client/{chunk-7DH35FGA.mjs → chunk-EJBHK74Y.mjs} +1 -1
- package/dist/client/{chunk-DAS5CIER.mjs → chunk-JV7ZNAOU.mjs} +118 -20
- package/dist/client/{chunk-FHU6PFPM.mjs → chunk-KNTLBQ3N.mjs} +1 -1
- package/dist/client/{chunk-Z62JYS5O.mjs → chunk-PEDNDLPB.mjs} +2 -2
- package/dist/client/{chunk-NBFRJ5NB.mjs → chunk-SLY6UDAS.mjs} +2 -2
- package/dist/client/{chunk-D3ETC2SU.mjs → chunk-ZIAF2DA4.mjs} +1 -1
- package/dist/client/client.mjs +272 -83
- package/dist/client/{courseRegistration-2D3ACMJR.mjs → courseRegistration-URX7RCCK.mjs} +5 -5
- package/dist/client/{eventCalendar-QY4UZUFF.mjs → eventCalendar-GTENOQCE.mjs} +8 -8
- package/dist/client/{eventCombined-RRCDKJC2.mjs → eventCombined-EZVB72MF.mjs} +8 -8
- package/dist/client/{eventDetails-YO335BUT.mjs → eventDetails-CH4BJR5Z.mjs} +8 -8
- package/dist/client/{eventListing-PXA6GFQ3.mjs → eventListing-4BVOI5HS.mjs} +8 -8
- package/dist/client/{eventRegistration-2ZHEDDXO.mjs → eventRegistration-37LPIKIE.mjs} +8 -8
- package/dist/client/{form-ZS6KX4U2.mjs → form-FX3Y54YK.mjs} +2 -2
- package/dist/client/{headerSection-QK5SLIIB.mjs → headerSection-UOZZGVYL.mjs} +3 -3
- package/dist/client/hooks.mjs +86 -35
- package/dist/client/{locationMap-GFNIUD2X.mjs → locationMap-VSIPKV35.mjs} +3 -3
- package/dist/client/{newsletterForm-PGLTTCUG.mjs → newsletterForm-6FRJKNAF.mjs} +2 -2
- package/dist/client/{productDetail-OPBE5ZPI.mjs → productDetail-6AHMLXCO.mjs} +6 -6
- package/dist/client/{productList-NI72Q62Z.mjs → productList-M2CYIZVH.mjs} +6 -6
- package/dist/client/rendering/client.mjs +231 -42
- package/dist/client/rendering/islands.mjs +19 -19
- package/dist/client/rendering.mjs +273 -84
- package/dist/client/{shop-3ZQPEWYI.mjs → shop-AUOT6GEX.mjs} +6 -6
- package/dist/preview-next/client/runtime.mjs +3 -3
- package/dist/{sdk-runtime-FSHXCWDS.mjs → sdk-runtime-6GPJNLU6.mjs} +4 -4
- package/dist/server/components.mjs +136 -58
- package/dist/server/config-validation.mjs +78 -27
- package/dist/server/config.mjs +78 -27
- package/dist/server/data.mjs +86 -35
- package/dist/server/index.mjs +1 -1
- package/dist/server/next.mjs +157 -79
- package/dist/server/page-converter.mjs +72 -21
- package/dist/server/prebuild.mjs +1 -1
- package/dist/server/rendering/server.mjs +148 -70
- package/dist/server/rendering.mjs +152 -74
- package/dist/server/routing.mjs +121 -44
- package/dist/server/server.mjs +95 -44
- package/package.json +2 -2
- package/dist/SdkPreviewModeRuntime-UBL6MSNP.mjs +0 -8
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { resolvePreviewDashboardSetupHandoff, buildPreviewDashboardSetupUrl, resolvePreviewSidebarChromeModel, resolvePreviewEditorGuidanceModel, previewWidgetOverrides, canInspectSiteStyle, mapContentSchemaToFormFields, PreviewFormProvider, usePreviewBlockCustomizeSelectionOptional, BlockEditor, canApplySiteStyle, useBlockCustomizeControls, MAX_QUICK_MANIFEST_FIELDS } from './chunk-
|
|
3
|
-
import { useEntryController, useEditorUiStoreInstance, useUISelector, resolvePreviewSidebarTab, unsafeAsEditorBlockId, Tabs, TabsList, TabsTrigger, Button, X, TabsContent, useEditorUiStore, deriveRouteMetadataPresentation, resolvePageRouteSlug, createManifestValidation, createStoreBackend, ManifestForm, previewAssistantEnabled, Collapsible, CollapsibleTrigger, ChevronRight, CollapsibleContent, ContentFieldsForm, usePreviewDesignCoordinator, useSiteChromeCustomizeOptional, resolveStyleConfiguratorInitialSnapshot, createStyleConfiguratorState, isPreviewingChange, createOptimisticActionRunner, syncStyleConfiguratorState, getCuratedSiteStyle, planSiteStylePreviewChange, openRow, previewSiteStyle, applyResolvedSelections, previewButtonPersonality, previewHeaderLayout, previewHeaderStyle, planSiteChromeLookSelection, previewFooterLook, buildSiteChromeLookModels, planSiteChromeFooterLayoutSelection, previewPaletteVariant, previewTypographyPreset, setTypographyBodyFontOverride, setTypographyHeadingFontOverride, clearTypographyFontOverrides, paletteOverridesSchema, setPaletteOverrides, toggleRow, cancelPreview, dismissWarnings, dismissNotices, deriveStyleConfiguratorCapabilities, buildApplySiteStyleSelectionBody, markApplyFailed, selectionSnapshotFromApplySiteStyleSelectionResponse, styleConfiguratorHistoryEntryForPersistedSelection, markApplySaved, unwrapResponse, markApplySaving, findButtonPersonality, findPaletteVariant, findTypographyPreset, getHeaderLayout, getHeaderStyle, getFooterLayout, findFooterLook, cycleSiteChromeLookId, resolveContentTitle, foldSubroute, SUBROUTE_KINDS, Smartphone, Tablet, Monitor, Maximize2, cn, DropdownMenu, DropdownMenuTrigger, DropdownMenuContent, DropdownMenuLabel, DropdownMenuSeparator, DropdownMenuItem, listEntryPageContentSlots, ContentSpinner, Callout, CalloutDescription, curatedSiteStyles, ChevronLeft, cycleableSiteChromeOptions, requireEntriesForCuratedChoices, buttonPersonalities, typographyPresets, paletteVariants, Select, SelectTrigger, SelectValue, SelectContent, SelectItem, FormRenderer, evaluateTypographyFontSlot, Separator, Surface, ColorPicker, Input } from './chunk-
|
|
2
|
+
import { resolvePreviewDashboardSetupHandoff, buildPreviewDashboardSetupUrl, resolvePreviewSidebarChromeModel, resolvePreviewEditorGuidanceModel, previewWidgetOverrides, canInspectSiteStyle, mapContentSchemaToFormFields, PreviewFormProvider, usePreviewBlockCustomizeSelectionOptional, BlockEditor, canApplySiteStyle, useBlockCustomizeControls, MAX_QUICK_MANIFEST_FIELDS } from './chunk-H6TT5ZXI.mjs';
|
|
3
|
+
import { useEntryController, useEditorUiStoreInstance, useUISelector, resolvePreviewSidebarTab, unsafeAsEditorBlockId, Tabs, TabsList, TabsTrigger, Button, X, TabsContent, useEditorUiStore, deriveRouteMetadataPresentation, resolvePageRouteSlug, createManifestValidation, createStoreBackend, ManifestForm, previewAssistantEnabled, Collapsible, CollapsibleTrigger, ChevronRight, CollapsibleContent, ContentFieldsForm, usePreviewDesignCoordinator, useSiteChromeCustomizeOptional, resolveStyleConfiguratorInitialSnapshot, createStyleConfiguratorState, isPreviewingChange, createOptimisticActionRunner, syncStyleConfiguratorState, getCuratedSiteStyle, planSiteStylePreviewChange, openRow, previewSiteStyle, applyResolvedSelections, previewButtonPersonality, previewHeaderLayout, previewHeaderStyle, planSiteChromeLookSelection, previewFooterLook, buildSiteChromeLookModels, planSiteChromeFooterLayoutSelection, previewPaletteVariant, previewTypographyPreset, setTypographyBodyFontOverride, setTypographyHeadingFontOverride, clearTypographyFontOverrides, paletteOverridesSchema, setPaletteOverrides, toggleRow, cancelPreview, dismissWarnings, dismissNotices, deriveStyleConfiguratorCapabilities, buildApplySiteStyleSelectionBody, markApplyFailed, selectionSnapshotFromApplySiteStyleSelectionResponse, styleConfiguratorHistoryEntryForPersistedSelection, markApplySaved, unwrapResponse, markApplySaving, findButtonPersonality, findPaletteVariant, findTypographyPreset, getHeaderLayout, getHeaderStyle, getFooterLayout, findFooterLook, cycleSiteChromeLookId, resolveContentTitle, foldSubroute, SUBROUTE_KINDS, Smartphone, Tablet, Monitor, Maximize2, cn, DropdownMenu, DropdownMenuTrigger, DropdownMenuContent, DropdownMenuLabel, DropdownMenuSeparator, DropdownMenuItem, listEntryPageContentSlots, ContentSpinner, Callout, CalloutDescription, curatedSiteStyles, ChevronLeft, cycleableSiteChromeOptions, requireEntriesForCuratedChoices, buttonPersonalities, typographyPresets, paletteVariants, Select, SelectTrigger, SelectValue, SelectContent, SelectItem, FormRenderer, evaluateTypographyFontSlot, Separator, Surface, ColorPicker, Input } from './chunk-CR2VX432.mjs';
|
|
4
4
|
import { usePreviewAuth, getDashboardUrl } from './chunk-BOQXMCSP.mjs';
|
|
5
5
|
import './chunk-R7POPVJR.mjs';
|
|
6
6
|
import { useMemo, useRef, useCallback, useEffect, useState, useTransition, useLayoutEffect, useSyncExternalStore, useId } from 'react';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { resolvePreviewChromeSurface, usePreviewPageDesignEditorState, PREVIEW_CHROME_PORTAL_CLASS_NAME, PREVIEW_CHROME_THEME_CLASS_NAME, applyPreviewChromeSurfaceToElement, setPreviewSidebarTab } from './chunk-
|
|
3
|
-
import { useEntryEditorController, useEditorUiStore, useMultiAutosave, usePreviewDesignHistoryOrder, useSiteChromeCustomizeOptional, selectPreviewDesignHistoryDomain, EditorChrome, previewDesignHistoryDomainForCommand, classifyHistoryShortcut, previewAssistantEnabled, unwrapResponse, cn, Dialog, Button, Palette, DialogContent, DialogHeader, DialogTitle, DialogDescription, TriangleAlert, Pencil, Sparkles, useEditorUiStoreInstance } from './chunk-
|
|
2
|
+
import { resolvePreviewChromeSurface, usePreviewPageDesignEditorState, PREVIEW_CHROME_PORTAL_CLASS_NAME, PREVIEW_CHROME_THEME_CLASS_NAME, applyPreviewChromeSurfaceToElement, setPreviewSidebarTab } from './chunk-SYYJZPKU.mjs';
|
|
3
|
+
import { useEntryEditorController, useEditorUiStore, useMultiAutosave, usePreviewDesignHistoryOrder, useSiteChromeCustomizeOptional, selectPreviewDesignHistoryDomain, EditorChrome, previewDesignHistoryDomainForCommand, classifyHistoryShortcut, previewAssistantEnabled, unwrapResponse, cn, Dialog, Button, Palette, DialogContent, DialogHeader, DialogTitle, DialogDescription, TriangleAlert, Pencil, Sparkles, useEditorUiStoreInstance } from './chunk-CR2VX432.mjs';
|
|
4
4
|
import { usePreviewAuth } from './chunk-BOQXMCSP.mjs';
|
|
5
5
|
import './chunk-R7POPVJR.mjs';
|
|
6
6
|
import { useState, useMemo, useCallback, useEffect, useTransition } from 'react';
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
export { SdkPreviewModeRuntime } from './chunk-FA6LVZ7C.mjs';
|
|
3
|
+
import './chunk-UG7I7S7W.mjs';
|
|
4
|
+
import './chunk-H6TT5ZXI.mjs';
|
|
5
|
+
import './chunk-SYYJZPKU.mjs';
|
|
6
|
+
import './chunk-CR2VX432.mjs';
|
|
7
|
+
import './chunk-BOQXMCSP.mjs';
|
|
8
|
+
import './chunk-R7POPVJR.mjs';
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { EventOnlineDetails, EventOnlineDetailsInput } from "./bookingRecords";
|
|
2
2
|
import type { SiteVerticalBookingConfig } from "./bookingVerticals";
|
|
3
|
+
import type { EventListingDestinationInput } from "./event-listing-destination";
|
|
3
4
|
import type { EventPricingMode, StaffMemberId, UserId } from "../../core/src/index";
|
|
4
5
|
export type { EventPricingMode } from "../../core/src/index";
|
|
5
6
|
/**
|
|
@@ -235,6 +236,7 @@ export type CreateEventSeriesRequest = {
|
|
|
235
236
|
visibility?: "public" | "private" | "unlisted";
|
|
236
237
|
eventCategoryId?: string | null;
|
|
237
238
|
status?: "draft" | "active" | "archived" | "cancelled" | "completed";
|
|
239
|
+
listingDestination?: EventListingDestinationInput;
|
|
238
240
|
/** Arbitrary per-series settings persisted to event_series.settings_json (server-validated). */
|
|
239
241
|
settingsJson?: Record<string, unknown>;
|
|
240
242
|
contentEntryId?: string | null;
|
|
@@ -380,6 +382,7 @@ export type TeamMemberProfilePageSettings = {
|
|
|
380
382
|
policy: TeamMemberProfilePagePolicyMode;
|
|
381
383
|
};
|
|
382
384
|
export type { EventDestinationMode, EventDestinationPolicy, EventDestinationPreset, EventDestinationPresetOverrides, } from "./event-destination-policy";
|
|
385
|
+
export type { EventListingDestination, EventListingDestinationInput, PublicEventDestination, } from "./event-listing-destination";
|
|
383
386
|
export { DEFAULT_EVENT_DESTINATION_POLICY, eventDestinationModeValues, eventDestinationPresetValues, isEventDestinationMode, macadamiaDefaultEventDestinationPolicy, resolveEventDestinationMode, } from "./event-destination-policy";
|
|
384
387
|
export type BookingSettings = {
|
|
385
388
|
modules: BookingModuleToggles;
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { type Brand } from "../../core/src/index";
|
|
2
|
+
import type { EventDestinationMode } from "./event-destination-policy";
|
|
3
|
+
export declare const EVENT_LISTING_DESTINATION_SETTINGS_KEY = "listingDestination";
|
|
4
|
+
export declare const DEFAULT_EXTERNAL_EVENT_CTA_LABEL = "View details";
|
|
5
|
+
export type ExternalEventUrl = Brand<string, "ExternalEventUrl">;
|
|
6
|
+
export type EventListingDestination = Readonly<{
|
|
7
|
+
kind: "native";
|
|
8
|
+
}> | Readonly<{
|
|
9
|
+
kind: "external";
|
|
10
|
+
url: string;
|
|
11
|
+
label: string | null;
|
|
12
|
+
}>;
|
|
13
|
+
export type EventListingDestinationInput = Readonly<{
|
|
14
|
+
kind: "native";
|
|
15
|
+
}> | Readonly<{
|
|
16
|
+
kind: "external";
|
|
17
|
+
url?: string | null;
|
|
18
|
+
label?: string | null;
|
|
19
|
+
}>;
|
|
20
|
+
export type PublicEventDestination = Readonly<{
|
|
21
|
+
kind: "native";
|
|
22
|
+
mode: EventDestinationMode;
|
|
23
|
+
path: string;
|
|
24
|
+
}> | Readonly<{
|
|
25
|
+
kind: "external";
|
|
26
|
+
url: ExternalEventUrl;
|
|
27
|
+
label: string;
|
|
28
|
+
}>;
|
|
29
|
+
export type ExternalEventUrlValidationErrorCode = "missing_url" | "invalid_url";
|
|
30
|
+
export type ExternalEventUrlValidationError = Readonly<{
|
|
31
|
+
code: ExternalEventUrlValidationErrorCode;
|
|
32
|
+
message: string;
|
|
33
|
+
}>;
|
|
34
|
+
export type ExternalEventUrlValidationResult = Readonly<{
|
|
35
|
+
ok: true;
|
|
36
|
+
url: ExternalEventUrl;
|
|
37
|
+
}> | Readonly<{
|
|
38
|
+
ok: false;
|
|
39
|
+
error: ExternalEventUrlValidationError;
|
|
40
|
+
}>;
|
|
41
|
+
export type EventListingDestinationPublicationIssue = Readonly<{
|
|
42
|
+
field: "listingDestination.url";
|
|
43
|
+
code: ExternalEventUrlValidationErrorCode;
|
|
44
|
+
message: string;
|
|
45
|
+
}>;
|
|
46
|
+
export declare function normalizeEventListingDestinationInput(value: EventListingDestinationInput | null | undefined): EventListingDestination;
|
|
47
|
+
export declare function readEventListingDestinationFromSettings(settingsJson: unknown): EventListingDestination;
|
|
48
|
+
export declare function serializeEventListingDestination(destination: EventListingDestination): Record<string, unknown>;
|
|
49
|
+
export declare function buildEventListingDestinationSettingsPatch(destination: EventListingDestination): Record<typeof EVENT_LISTING_DESTINATION_SETTINGS_KEY, Record<string, unknown>>;
|
|
50
|
+
export declare function parseExternalEventUrl(value: unknown): ExternalEventUrlValidationResult;
|
|
51
|
+
export declare function getExternalEventCtaLabel(destination: Extract<EventListingDestination, {
|
|
52
|
+
kind: "external";
|
|
53
|
+
}>): string;
|
|
54
|
+
export declare function getEventListingDestinationPublicationIssue(destination: EventListingDestination): EventListingDestinationPublicationIssue | null;
|
|
55
|
+
export declare function buildPublicEventDestination(input: Readonly<{
|
|
56
|
+
listingDestination: EventListingDestination;
|
|
57
|
+
nativeMode: EventDestinationMode;
|
|
58
|
+
nativePath: string;
|
|
59
|
+
}>): PublicEventDestination | null;
|
|
@@ -25,6 +25,8 @@ export * from "./customerMembershipOutcomes";
|
|
|
25
25
|
export * from "./bookingVerticals";
|
|
26
26
|
export { DEFAULT_EVENT_DESTINATION_POLICY, eventDestinationModeValues, eventDestinationPresetValues, isEventDestinationMode, macadamiaDefaultEventDestinationPolicy, resolveEventDestinationMode, } from "./event-destination-policy";
|
|
27
27
|
export type { EventDestinationMode, EventDestinationPolicy, EventDestinationPreset, EventDestinationPresetOverrides, } from "./event-destination-policy";
|
|
28
|
+
export { DEFAULT_EXTERNAL_EVENT_CTA_LABEL, EVENT_LISTING_DESTINATION_SETTINGS_KEY, buildEventListingDestinationSettingsPatch, buildPublicEventDestination, getEventListingDestinationPublicationIssue, getExternalEventCtaLabel, normalizeEventListingDestinationInput, parseExternalEventUrl, readEventListingDestinationFromSettings, serializeEventListingDestination, } from "./event-listing-destination";
|
|
29
|
+
export type { EventListingDestination, EventListingDestinationInput, EventListingDestinationPublicationIssue, ExternalEventUrl, ExternalEventUrlValidationError, ExternalEventUrlValidationErrorCode, ExternalEventUrlValidationResult, PublicEventDestination, } from "./event-listing-destination";
|
|
28
30
|
export { APPOINTMENT_DEFAULT_MAX_BOOKING_NOTICE_MINUTES_MAX, APPOINTMENT_DEFAULT_MIN_LEAD_MINUTES_MAX, applyAppointmentSetupRequestSchema, applyAppointmentSetupRequest, appointmentSetupAvailabilityDraftSchema, appointmentSetupBookingNoticeSchema, appointmentSetupPaymentDraftSchema, appointmentSetupPractitionerDraftSchema, appointmentSetupRefSchema, appointmentSetupServiceAssignmentDraftSchema, appointmentSetupServiceDraftSchema, appointmentSetupVenueChoiceSchema, appointmentSetupWeeklyWindowDraftSchema, getAppointmentSetupRequest, } from "./appointmentSetup";
|
|
29
31
|
export type { ApplyAppointmentSetupRequest, ApplyAppointmentSetupResponse, AppointmentPractitionerMode, AppointmentSetupAvailabilityDraft, AppointmentSetupAvailabilityWindowInvalidReason, AppointmentSetupBookingNotice, AppointmentSetupDraftMapping, AppointmentSetupPaymentDraft, AppointmentSetupPlanIssue, AppointmentSetupPractitionerDraft, AppointmentSetupReadiness, AppointmentSetupRef, AppointmentSetupResponse, AppointmentSetupSeedCandidate, AppointmentSetupSeedInvalidMetadata, AppointmentSetupSeedSelection, AppointmentSetupServiceAssignmentDraft, AppointmentSetupServiceDraft, AppointmentSetupServiceResourceLink, AppointmentSetupTargetStep, AppointmentSetupVenueChoice, AppointmentSetupWeeklyWindowDraft, } from "./appointmentSetup";
|
|
30
32
|
export type { AppointmentHistoryStatus, BookingSessionCreateAppointmentRequest, BookingSessionCreateAppointmentResponse, BookingSessionEligibleAppointmentPackage, BookingSessionListEligibleAppointmentPackagesResponse, } from "./bookingOperations";
|
|
@@ -76,12 +78,14 @@ export { toRoutableLinkPayload } from "./navigation/routableLink";
|
|
|
76
78
|
export { linkPayloadKindToNavigationUrlType } from "./navigation/linkUrlType";
|
|
77
79
|
export { DASHBOARD_SITE_NAV_DESCRIPTORS, buildDashboardSiteNavPlan, dashboardDemoUiModeValues, isDemoDashboardUiRestricted, isDemoSiteNavSurfaceVisible, } from "./navigation/dashboardSiteNav";
|
|
78
80
|
export { DASHBOARD_SETTINGS_NAV_GROUPS, buildDashboardSettingsNavPlan, isDemoSettingsNavSurfaceVisible, } from "./navigation/dashboardSettingsNav";
|
|
81
|
+
export { SETTINGS_ACTION_POLICIES, SETTINGS_SURFACE_POLICIES, getRolePolicyMinimumRole, getSettingsActionPolicy, getSettingsSurfaceNavPolicy, getSettingsSurfacePagePolicy, getSettingsSurfacePolicy, isSettingsRolePolicyAllowed, } from "./settings/permissions";
|
|
79
82
|
export { planEntryDraftUpdatedWorkflowTriggers } from "./workflows/automaticWorkflowTriggers";
|
|
80
83
|
export type { AutomaticWorkflowCandidate, EntryDraftUpdatedWorkflowTriggerSource, PlanEntryDraftUpdatedWorkflowTriggersInput, WorkflowTriggerSource, } from "./workflows/automaticWorkflowTriggers";
|
|
81
84
|
export type { RoutableLinkPayload } from "./navigation/routableLink";
|
|
82
85
|
export type { LinkPayloadNavigationUrlType } from "./navigation/linkUrlType";
|
|
83
86
|
export type { DashboardDemoUiMode, DashboardSiteNavDescriptor, DashboardSiteNavGroupId, DashboardSiteNavGroupPlan, DashboardSiteNavItemPlan, DashboardSiteNavLinkPlan, DashboardSiteNavPlanContext, DashboardSiteNavSurfaceId, SiteNavFeatureFlag, } from "./navigation/dashboardSiteNav";
|
|
84
87
|
export type { DashboardSettingsDangerItemId, DashboardSettingsDangerItemPlan, DashboardSettingsNavDescriptor, DashboardSettingsNavGroupDescriptor, DashboardSettingsNavGroupPlan, DashboardSettingsNavItemPlan, DashboardSettingsNavPlan, DashboardSettingsNavPlanContext, DashboardSettingsNavSurfaceId, SettingsNavFeatureFlag, } from "./navigation/dashboardSettingsNav";
|
|
88
|
+
export type { SettingsActionId, SettingsPermissionPolicy, SettingsRolePermissionPolicy, SettingsSurfacePolicy, } from "./settings/permissions";
|
|
85
89
|
export { isInternalLink, isPageLink, isEntryLink, resolveNavigationLinkInput, } from "./navigation/linkResolver";
|
|
86
90
|
export type { NavigationUrlType, ResolvedNavigationLink, LinkResolutionOptions, } from "./navigation/linkResolver";
|
|
87
91
|
export { matchNavigationItems } from "./navigation/matcher";
|
|
@@ -9,12 +9,14 @@ export { linkPayloadKindToNavigationUrlType } from './navigation/linkUrlType';
|
|
|
9
9
|
export type { LinkPayloadNavigationUrlType } from './navigation/linkUrlType';
|
|
10
10
|
export { DASHBOARD_SITE_NAV_DESCRIPTORS, buildDashboardSiteNavPlan, dashboardDemoUiModeValues, isDemoDashboardUiRestricted, isDemoSiteNavSurfaceVisible, } from './navigation/dashboardSiteNav';
|
|
11
11
|
export { DASHBOARD_SETTINGS_NAV_GROUPS, buildDashboardSettingsNavPlan, isDemoSettingsNavSurfaceVisible, } from './navigation/dashboardSettingsNav';
|
|
12
|
+
export { SETTINGS_ACTION_POLICIES, SETTINGS_SURFACE_POLICIES, getRolePolicyMinimumRole, getSettingsActionPolicy, getSettingsSurfaceNavPolicy, getSettingsSurfacePagePolicy, getSettingsSurfacePolicy, isSettingsRolePolicyAllowed, } from './settings/permissions';
|
|
12
13
|
export { buildDashboardTeamMemberNavPlan, isTeamMemberAccessiblePath, } from './navigation/dashboardTeamMemberNav';
|
|
13
14
|
export { buildDashboardBookingsNavPlan, resolveDashboardBookingsNavPolicy, } from './navigation/dashboardBookingsNav';
|
|
14
15
|
export { MAIN_NAVIGATION_MENU_IDENTIFIER, actionableNavigationMenuMatchPlan, isMainNavigationMenuIdentifier, navigationMenuIdentity, normalizeNavigationMenuIdentifier, parseNavigationMenuIdentifier, planNavigationMenuMatch, unsafeAsNavigationMenuIdentifier, unsafeAsNavigationMenuIdentity, } from './navigation/identity';
|
|
15
16
|
export { isDemoMoneyNavSurfaceVisible, isDemoShopNavSurfaceVisible, } from './navigation/dashboardDemoNav';
|
|
16
17
|
export type { DashboardDemoUiMode, DashboardSiteNavDescriptor, DashboardSiteNavGroupId, DashboardSiteNavGroupPlan, DashboardSiteNavItemPlan, DashboardSiteNavLinkPlan, DashboardSiteNavPlanContext, DashboardSiteNavSurfaceId, SiteNavFeatureFlag, } from './navigation/dashboardSiteNav';
|
|
17
18
|
export type { DashboardSettingsDangerItemId, DashboardSettingsDangerItemPlan, DashboardSettingsNavDescriptor, DashboardSettingsNavGroupDescriptor, DashboardSettingsNavGroupPlan, DashboardSettingsNavItemPlan, DashboardSettingsNavPlan, DashboardSettingsNavPlanContext, DashboardSettingsNavSurfaceId, SettingsNavFeatureFlag, } from './navigation/dashboardSettingsNav';
|
|
19
|
+
export type { SettingsActionId, SettingsPermissionPolicy, SettingsRolePermissionPolicy, SettingsSurfacePolicy, } from './settings/permissions';
|
|
18
20
|
export type { DashboardTeamMemberNavContext, DashboardTeamMemberNavDestination, DashboardTeamMemberNavItemId, DashboardTeamMemberNavItemPlan, } from './navigation/dashboardTeamMemberNav';
|
|
19
21
|
export type { DashboardAppointmentResourceLabel, DashboardBookingModules, DashboardBookingsNavContext, DashboardBookingsNavDestination, DashboardBookingsNavGroupPlan, DashboardBookingsNavItemPlan, DashboardBookingsNavPolicy, DashboardBookingsTeamMemberContext, FullAppointmentsNavPolicy, StaffScopedAppointmentsNavPolicy, } from './navigation/dashboardBookingsNav';
|
|
20
22
|
export type { DashboardMoneyNavSurfaceId, DashboardShopNavSurfaceId, } from './navigation/dashboardDemoNav';
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { APIEndpoint } from "./apiEndpointTypes";
|
|
2
2
|
import type { PublicEventPricing } from "../../core/src/index";
|
|
3
|
+
import type { PublicEventDestination } from "./event-listing-destination";
|
|
3
4
|
import type { BookingPaymentTermsConfig, BookingPricing, DirectCheckoutCollectionOptionKind, EventAttendanceMode, EventDeliveryMode, EventPricingMode, PublicEventEligibilityTicketTypeRecord, PublicEventTicketTypeRecord } from "./bookingConfig";
|
|
4
5
|
import type { AutoAppliedDiscountPreview } from "./bookingRecords";
|
|
5
6
|
import type { PublicCourseDetails } from "./courses";
|
|
@@ -123,6 +124,7 @@ export type PublicExperienceAPIEndpoints = {
|
|
|
123
124
|
kind?: "event" | "course_session";
|
|
124
125
|
eventPreset?: EventPreset;
|
|
125
126
|
eventDestinationMode?: import("./event-destination-policy").EventDestinationMode;
|
|
127
|
+
destination: PublicEventDestination;
|
|
126
128
|
scheduleScope?: Exclude<PublicEventScheduleScope, "any">;
|
|
127
129
|
id: string;
|
|
128
130
|
occurrenceId: string;
|
|
@@ -154,7 +156,7 @@ export type PublicExperienceAPIEndpoints = {
|
|
|
154
156
|
} | null;
|
|
155
157
|
};
|
|
156
158
|
slug: string;
|
|
157
|
-
path: string;
|
|
159
|
+
path: string | null;
|
|
158
160
|
requiresRegistration: boolean;
|
|
159
161
|
deliveryMode: EventDeliveryMode;
|
|
160
162
|
attendanceModes: Array<{
|
|
@@ -0,0 +1,273 @@
|
|
|
1
|
+
import type { DashboardSettingsNavSurfaceId } from "../navigation/dashboardSettingsNav";
|
|
2
|
+
import { type SiteRole } from "../siteMembers";
|
|
3
|
+
export type SettingsPermissionPolicy = Readonly<{
|
|
4
|
+
kind: "roleAtLeast";
|
|
5
|
+
minimumRole: SiteRole;
|
|
6
|
+
}> | Readonly<{
|
|
7
|
+
kind: "siteRecordOwner";
|
|
8
|
+
}>;
|
|
9
|
+
export type SettingsRolePermissionPolicy = Extract<SettingsPermissionPolicy, {
|
|
10
|
+
kind: "roleAtLeast";
|
|
11
|
+
}>;
|
|
12
|
+
export type SettingsActionId = "privacy.update" | "emails.read" | "emails.update" | "apiKeys.read" | "apiKeys.readAccessLogs" | "apiKeys.manageContentKeys" | "apiKeys.managePreviewKey" | "apiKeys.manageManagementKeys" | "backup.export" | "backup.import" | "fonts.upload";
|
|
13
|
+
export type SettingsSurfacePolicy = Readonly<{
|
|
14
|
+
surfaceId: DashboardSettingsNavSurfaceId;
|
|
15
|
+
navVisibilityPolicy: SettingsRolePermissionPolicy;
|
|
16
|
+
pageAccessPolicy: SettingsPermissionPolicy;
|
|
17
|
+
actionIds: readonly SettingsActionId[];
|
|
18
|
+
}>;
|
|
19
|
+
export declare const SETTINGS_SURFACE_POLICIES: {
|
|
20
|
+
readonly "settings.features": {
|
|
21
|
+
readonly surfaceId: "settings.features";
|
|
22
|
+
readonly navVisibilityPolicy: {
|
|
23
|
+
readonly kind: "roleAtLeast";
|
|
24
|
+
readonly minimumRole: "administrator";
|
|
25
|
+
};
|
|
26
|
+
readonly pageAccessPolicy: {
|
|
27
|
+
readonly kind: "roleAtLeast";
|
|
28
|
+
readonly minimumRole: "administrator";
|
|
29
|
+
};
|
|
30
|
+
readonly actionIds: readonly [];
|
|
31
|
+
};
|
|
32
|
+
readonly "settings.general": {
|
|
33
|
+
readonly surfaceId: "settings.general";
|
|
34
|
+
readonly navVisibilityPolicy: {
|
|
35
|
+
readonly kind: "roleAtLeast";
|
|
36
|
+
readonly minimumRole: "editor";
|
|
37
|
+
};
|
|
38
|
+
readonly pageAccessPolicy: {
|
|
39
|
+
readonly kind: "roleAtLeast";
|
|
40
|
+
readonly minimumRole: "editor";
|
|
41
|
+
};
|
|
42
|
+
readonly actionIds: readonly [];
|
|
43
|
+
};
|
|
44
|
+
readonly "settings.privacy": {
|
|
45
|
+
readonly surfaceId: "settings.privacy";
|
|
46
|
+
readonly navVisibilityPolicy: {
|
|
47
|
+
readonly kind: "roleAtLeast";
|
|
48
|
+
readonly minimumRole: "administrator";
|
|
49
|
+
};
|
|
50
|
+
readonly pageAccessPolicy: {
|
|
51
|
+
readonly kind: "roleAtLeast";
|
|
52
|
+
readonly minimumRole: "administrator";
|
|
53
|
+
};
|
|
54
|
+
readonly actionIds: readonly ["privacy.update"];
|
|
55
|
+
};
|
|
56
|
+
readonly "settings.domains": {
|
|
57
|
+
readonly surfaceId: "settings.domains";
|
|
58
|
+
readonly navVisibilityPolicy: {
|
|
59
|
+
readonly kind: "roleAtLeast";
|
|
60
|
+
readonly minimumRole: "owner";
|
|
61
|
+
};
|
|
62
|
+
readonly pageAccessPolicy: {
|
|
63
|
+
readonly kind: "roleAtLeast";
|
|
64
|
+
readonly minimumRole: "owner";
|
|
65
|
+
};
|
|
66
|
+
readonly actionIds: readonly [];
|
|
67
|
+
};
|
|
68
|
+
readonly "settings.fonts": {
|
|
69
|
+
readonly surfaceId: "settings.fonts";
|
|
70
|
+
readonly navVisibilityPolicy: {
|
|
71
|
+
readonly kind: "roleAtLeast";
|
|
72
|
+
readonly minimumRole: "editor";
|
|
73
|
+
};
|
|
74
|
+
readonly pageAccessPolicy: {
|
|
75
|
+
readonly kind: "roleAtLeast";
|
|
76
|
+
readonly minimumRole: "editor";
|
|
77
|
+
};
|
|
78
|
+
readonly actionIds: readonly ["fonts.upload"];
|
|
79
|
+
};
|
|
80
|
+
readonly "settings.bookings": {
|
|
81
|
+
readonly surfaceId: "settings.bookings";
|
|
82
|
+
readonly navVisibilityPolicy: {
|
|
83
|
+
readonly kind: "roleAtLeast";
|
|
84
|
+
readonly minimumRole: "administrator";
|
|
85
|
+
};
|
|
86
|
+
readonly pageAccessPolicy: {
|
|
87
|
+
readonly kind: "roleAtLeast";
|
|
88
|
+
readonly minimumRole: "administrator";
|
|
89
|
+
};
|
|
90
|
+
readonly actionIds: readonly [];
|
|
91
|
+
};
|
|
92
|
+
readonly "settings.redirects": {
|
|
93
|
+
readonly surfaceId: "settings.redirects";
|
|
94
|
+
readonly navVisibilityPolicy: {
|
|
95
|
+
readonly kind: "roleAtLeast";
|
|
96
|
+
readonly minimumRole: "editor";
|
|
97
|
+
};
|
|
98
|
+
readonly pageAccessPolicy: {
|
|
99
|
+
readonly kind: "roleAtLeast";
|
|
100
|
+
readonly minimumRole: "editor";
|
|
101
|
+
};
|
|
102
|
+
readonly actionIds: readonly [];
|
|
103
|
+
};
|
|
104
|
+
readonly "settings.emails": {
|
|
105
|
+
readonly surfaceId: "settings.emails";
|
|
106
|
+
readonly navVisibilityPolicy: {
|
|
107
|
+
readonly kind: "roleAtLeast";
|
|
108
|
+
readonly minimumRole: "administrator";
|
|
109
|
+
};
|
|
110
|
+
readonly pageAccessPolicy: {
|
|
111
|
+
readonly kind: "roleAtLeast";
|
|
112
|
+
readonly minimumRole: "administrator";
|
|
113
|
+
};
|
|
114
|
+
readonly actionIds: readonly ["emails.read", "emails.update"];
|
|
115
|
+
};
|
|
116
|
+
readonly "settings.ai.siteProfile": {
|
|
117
|
+
readonly surfaceId: "settings.ai.siteProfile";
|
|
118
|
+
readonly navVisibilityPolicy: {
|
|
119
|
+
readonly kind: "roleAtLeast";
|
|
120
|
+
readonly minimumRole: "editor";
|
|
121
|
+
};
|
|
122
|
+
readonly pageAccessPolicy: {
|
|
123
|
+
readonly kind: "roleAtLeast";
|
|
124
|
+
readonly minimumRole: "editor";
|
|
125
|
+
};
|
|
126
|
+
readonly actionIds: readonly [];
|
|
127
|
+
};
|
|
128
|
+
readonly "settings.ai.brandGuidelines": {
|
|
129
|
+
readonly surfaceId: "settings.ai.brandGuidelines";
|
|
130
|
+
readonly navVisibilityPolicy: {
|
|
131
|
+
readonly kind: "roleAtLeast";
|
|
132
|
+
readonly minimumRole: "editor";
|
|
133
|
+
};
|
|
134
|
+
readonly pageAccessPolicy: {
|
|
135
|
+
readonly kind: "roleAtLeast";
|
|
136
|
+
readonly minimumRole: "editor";
|
|
137
|
+
};
|
|
138
|
+
readonly actionIds: readonly [];
|
|
139
|
+
};
|
|
140
|
+
readonly "settings.ai.iconStyleGuide": {
|
|
141
|
+
readonly surfaceId: "settings.ai.iconStyleGuide";
|
|
142
|
+
readonly navVisibilityPolicy: {
|
|
143
|
+
readonly kind: "roleAtLeast";
|
|
144
|
+
readonly minimumRole: "editor";
|
|
145
|
+
};
|
|
146
|
+
readonly pageAccessPolicy: {
|
|
147
|
+
readonly kind: "roleAtLeast";
|
|
148
|
+
readonly minimumRole: "editor";
|
|
149
|
+
};
|
|
150
|
+
readonly actionIds: readonly [];
|
|
151
|
+
};
|
|
152
|
+
readonly "settings.team": {
|
|
153
|
+
readonly surfaceId: "settings.team";
|
|
154
|
+
readonly navVisibilityPolicy: {
|
|
155
|
+
readonly kind: "roleAtLeast";
|
|
156
|
+
readonly minimumRole: "editor";
|
|
157
|
+
};
|
|
158
|
+
readonly pageAccessPolicy: {
|
|
159
|
+
readonly kind: "roleAtLeast";
|
|
160
|
+
readonly minimumRole: "editor";
|
|
161
|
+
};
|
|
162
|
+
readonly actionIds: readonly [];
|
|
163
|
+
};
|
|
164
|
+
readonly "settings.billing": {
|
|
165
|
+
readonly surfaceId: "settings.billing";
|
|
166
|
+
readonly navVisibilityPolicy: {
|
|
167
|
+
readonly kind: "roleAtLeast";
|
|
168
|
+
readonly minimumRole: "editor";
|
|
169
|
+
};
|
|
170
|
+
readonly pageAccessPolicy: {
|
|
171
|
+
readonly kind: "roleAtLeast";
|
|
172
|
+
readonly minimumRole: "editor";
|
|
173
|
+
};
|
|
174
|
+
readonly actionIds: readonly [];
|
|
175
|
+
};
|
|
176
|
+
readonly "settings.developer": {
|
|
177
|
+
readonly surfaceId: "settings.developer";
|
|
178
|
+
readonly navVisibilityPolicy: {
|
|
179
|
+
readonly kind: "roleAtLeast";
|
|
180
|
+
readonly minimumRole: "administrator";
|
|
181
|
+
};
|
|
182
|
+
readonly pageAccessPolicy: {
|
|
183
|
+
readonly kind: "roleAtLeast";
|
|
184
|
+
readonly minimumRole: "administrator";
|
|
185
|
+
};
|
|
186
|
+
readonly actionIds: readonly [];
|
|
187
|
+
};
|
|
188
|
+
readonly "settings.logs": {
|
|
189
|
+
readonly surfaceId: "settings.logs";
|
|
190
|
+
readonly navVisibilityPolicy: {
|
|
191
|
+
readonly kind: "roleAtLeast";
|
|
192
|
+
readonly minimumRole: "administrator";
|
|
193
|
+
};
|
|
194
|
+
readonly pageAccessPolicy: {
|
|
195
|
+
readonly kind: "roleAtLeast";
|
|
196
|
+
readonly minimumRole: "administrator";
|
|
197
|
+
};
|
|
198
|
+
readonly actionIds: readonly [];
|
|
199
|
+
};
|
|
200
|
+
readonly "settings.apiKeys": {
|
|
201
|
+
readonly surfaceId: "settings.apiKeys";
|
|
202
|
+
readonly navVisibilityPolicy: {
|
|
203
|
+
readonly kind: "roleAtLeast";
|
|
204
|
+
readonly minimumRole: "administrator";
|
|
205
|
+
};
|
|
206
|
+
readonly pageAccessPolicy: {
|
|
207
|
+
readonly kind: "roleAtLeast";
|
|
208
|
+
readonly minimumRole: "administrator";
|
|
209
|
+
};
|
|
210
|
+
readonly actionIds: readonly ["apiKeys.read", "apiKeys.readAccessLogs", "apiKeys.manageContentKeys", "apiKeys.managePreviewKey", "apiKeys.manageManagementKeys"];
|
|
211
|
+
};
|
|
212
|
+
readonly "settings.backup": {
|
|
213
|
+
readonly surfaceId: "settings.backup";
|
|
214
|
+
readonly navVisibilityPolicy: {
|
|
215
|
+
readonly kind: "roleAtLeast";
|
|
216
|
+
readonly minimumRole: "owner";
|
|
217
|
+
};
|
|
218
|
+
readonly pageAccessPolicy: {
|
|
219
|
+
readonly kind: "siteRecordOwner";
|
|
220
|
+
};
|
|
221
|
+
readonly actionIds: readonly ["backup.export", "backup.import"];
|
|
222
|
+
};
|
|
223
|
+
};
|
|
224
|
+
export declare const SETTINGS_ACTION_POLICIES: {
|
|
225
|
+
readonly "privacy.update": {
|
|
226
|
+
readonly kind: "roleAtLeast";
|
|
227
|
+
readonly minimumRole: "administrator";
|
|
228
|
+
};
|
|
229
|
+
readonly "emails.read": {
|
|
230
|
+
readonly kind: "roleAtLeast";
|
|
231
|
+
readonly minimumRole: "administrator";
|
|
232
|
+
};
|
|
233
|
+
readonly "emails.update": {
|
|
234
|
+
readonly kind: "roleAtLeast";
|
|
235
|
+
readonly minimumRole: "administrator";
|
|
236
|
+
};
|
|
237
|
+
readonly "apiKeys.read": {
|
|
238
|
+
readonly kind: "roleAtLeast";
|
|
239
|
+
readonly minimumRole: "editor";
|
|
240
|
+
};
|
|
241
|
+
readonly "apiKeys.readAccessLogs": {
|
|
242
|
+
readonly kind: "roleAtLeast";
|
|
243
|
+
readonly minimumRole: "editor";
|
|
244
|
+
};
|
|
245
|
+
readonly "apiKeys.manageContentKeys": {
|
|
246
|
+
readonly kind: "roleAtLeast";
|
|
247
|
+
readonly minimumRole: "administrator";
|
|
248
|
+
};
|
|
249
|
+
readonly "apiKeys.managePreviewKey": {
|
|
250
|
+
readonly kind: "roleAtLeast";
|
|
251
|
+
readonly minimumRole: "administrator";
|
|
252
|
+
};
|
|
253
|
+
readonly "apiKeys.manageManagementKeys": {
|
|
254
|
+
readonly kind: "roleAtLeast";
|
|
255
|
+
readonly minimumRole: "administrator";
|
|
256
|
+
};
|
|
257
|
+
readonly "backup.export": {
|
|
258
|
+
readonly kind: "siteRecordOwner";
|
|
259
|
+
};
|
|
260
|
+
readonly "backup.import": {
|
|
261
|
+
readonly kind: "siteRecordOwner";
|
|
262
|
+
};
|
|
263
|
+
readonly "fonts.upload": {
|
|
264
|
+
readonly kind: "roleAtLeast";
|
|
265
|
+
readonly minimumRole: "editor";
|
|
266
|
+
};
|
|
267
|
+
};
|
|
268
|
+
export declare function getSettingsSurfacePolicy(surfaceId: DashboardSettingsNavSurfaceId): SettingsSurfacePolicy;
|
|
269
|
+
export declare function getSettingsSurfaceNavPolicy(surfaceId: DashboardSettingsNavSurfaceId): SettingsRolePermissionPolicy;
|
|
270
|
+
export declare function getSettingsSurfacePagePolicy(surfaceId: DashboardSettingsNavSurfaceId): SettingsPermissionPolicy;
|
|
271
|
+
export declare function getSettingsActionPolicy(actionId: SettingsActionId): SettingsPermissionPolicy;
|
|
272
|
+
export declare function getRolePolicyMinimumRole(policy: SettingsPermissionPolicy): SiteRole | null;
|
|
273
|
+
export declare function isSettingsRolePolicyAllowed(role: SiteRole | null, policy: SettingsRolePermissionPolicy): boolean;
|
|
@@ -11,6 +11,7 @@ export type * from "./aiEndpoints";
|
|
|
11
11
|
export type * from "./apiEndpointTypes";
|
|
12
12
|
export type * from "./bookingAdjustments";
|
|
13
13
|
export type * from "./bookingConfig";
|
|
14
|
+
export type * from "./event-listing-destination";
|
|
14
15
|
export type * from "./bookingVerticals";
|
|
15
16
|
export type * from "./bookingManagementEndpoints";
|
|
16
17
|
export type * from "./bookingOperations";
|
|
@@ -14,6 +14,18 @@ export declare const eventDestinationModeSchema: z.ZodEnum<{
|
|
|
14
14
|
"cms-managed": "cms-managed";
|
|
15
15
|
"system-managed": "system-managed";
|
|
16
16
|
}>;
|
|
17
|
+
export declare const publicEventDestinationSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
18
|
+
kind: z.ZodLiteral<"native">;
|
|
19
|
+
mode: z.ZodEnum<{
|
|
20
|
+
"cms-managed": "cms-managed";
|
|
21
|
+
"system-managed": "system-managed";
|
|
22
|
+
}>;
|
|
23
|
+
path: z.ZodString;
|
|
24
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
25
|
+
kind: z.ZodLiteral<"external">;
|
|
26
|
+
url: z.ZodString;
|
|
27
|
+
label: z.ZodString;
|
|
28
|
+
}, z.core.$strip>], "kind">;
|
|
17
29
|
/**
|
|
18
30
|
* Zod schema for venue data
|
|
19
31
|
*/
|
|
@@ -40,6 +52,7 @@ export declare const eventCategorySchema: z.ZodObject<{
|
|
|
40
52
|
export declare const pricingTypeSchema: z.ZodEnum<{
|
|
41
53
|
free: "free";
|
|
42
54
|
paid: "paid";
|
|
55
|
+
external: "external";
|
|
43
56
|
}>;
|
|
44
57
|
/**
|
|
45
58
|
* Access restriction type for public events
|
|
@@ -91,6 +104,9 @@ export declare const publicEventPriceDisplaySchema: z.ZodDiscriminatedUnion<[z.Z
|
|
|
91
104
|
}, z.core.$strip>, z.ZodObject<{
|
|
92
105
|
kind: z.ZodLiteral<"unavailable">;
|
|
93
106
|
currency: z.ZodString;
|
|
107
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
108
|
+
kind: z.ZodLiteral<"external">;
|
|
109
|
+
label: z.ZodString;
|
|
94
110
|
}, z.core.$strip>, z.ZodObject<{
|
|
95
111
|
kind: z.ZodLiteral<"course">;
|
|
96
112
|
display: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
@@ -309,6 +325,12 @@ export declare const publicEventPricingSchema: z.ZodDiscriminatedUnion<[z.ZodObj
|
|
|
309
325
|
currency: z.ZodString;
|
|
310
326
|
}, z.core.$strip>], "kind">;
|
|
311
327
|
}, z.core.$strip>;
|
|
328
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
329
|
+
kind: z.ZodLiteral<"external">;
|
|
330
|
+
display: z.ZodObject<{
|
|
331
|
+
kind: z.ZodLiteral<"external">;
|
|
332
|
+
label: z.ZodString;
|
|
333
|
+
}, z.core.$strip>;
|
|
312
334
|
}, z.core.$strip>], "kind">;
|
|
313
335
|
export declare const publicTeamMemberSummarySchema: z.ZodObject<{
|
|
314
336
|
id: z.ZodString;
|
|
@@ -615,7 +637,19 @@ export declare const publicEventSchema: z.ZodObject<{
|
|
|
615
637
|
}, z.core.$strip>], "type">>>;
|
|
616
638
|
}, z.core.$strip>>;
|
|
617
639
|
slug: z.ZodString;
|
|
618
|
-
path: z.ZodString
|
|
640
|
+
path: z.ZodNullable<z.ZodString>;
|
|
641
|
+
destination: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
642
|
+
kind: z.ZodLiteral<"native">;
|
|
643
|
+
mode: z.ZodEnum<{
|
|
644
|
+
"cms-managed": "cms-managed";
|
|
645
|
+
"system-managed": "system-managed";
|
|
646
|
+
}>;
|
|
647
|
+
path: z.ZodString;
|
|
648
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
649
|
+
kind: z.ZodLiteral<"external">;
|
|
650
|
+
url: z.ZodString;
|
|
651
|
+
label: z.ZodString;
|
|
652
|
+
}, z.core.$strip>], "kind">;
|
|
619
653
|
requiresRegistration: z.ZodBoolean;
|
|
620
654
|
deliveryMode: z.ZodEnum<{
|
|
621
655
|
in_person: "in_person";
|
|
@@ -774,6 +808,12 @@ export declare const publicEventSchema: z.ZodObject<{
|
|
|
774
808
|
currency: z.ZodString;
|
|
775
809
|
}, z.core.$strip>], "kind">;
|
|
776
810
|
}, z.core.$strip>;
|
|
811
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
812
|
+
kind: z.ZodLiteral<"external">;
|
|
813
|
+
display: z.ZodObject<{
|
|
814
|
+
kind: z.ZodLiteral<"external">;
|
|
815
|
+
label: z.ZodString;
|
|
816
|
+
}, z.core.$strip>;
|
|
777
817
|
}, z.core.$strip>], "kind">;
|
|
778
818
|
paymentTerms: z.ZodObject<{
|
|
779
819
|
allowedOptions: z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
|
|
@@ -1241,7 +1281,19 @@ export declare const publicEventsArraySchema: z.ZodArray<z.ZodObject<{
|
|
|
1241
1281
|
}, z.core.$strip>], "type">>>;
|
|
1242
1282
|
}, z.core.$strip>>;
|
|
1243
1283
|
slug: z.ZodString;
|
|
1244
|
-
path: z.ZodString
|
|
1284
|
+
path: z.ZodNullable<z.ZodString>;
|
|
1285
|
+
destination: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
1286
|
+
kind: z.ZodLiteral<"native">;
|
|
1287
|
+
mode: z.ZodEnum<{
|
|
1288
|
+
"cms-managed": "cms-managed";
|
|
1289
|
+
"system-managed": "system-managed";
|
|
1290
|
+
}>;
|
|
1291
|
+
path: z.ZodString;
|
|
1292
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
1293
|
+
kind: z.ZodLiteral<"external">;
|
|
1294
|
+
url: z.ZodString;
|
|
1295
|
+
label: z.ZodString;
|
|
1296
|
+
}, z.core.$strip>], "kind">;
|
|
1245
1297
|
requiresRegistration: z.ZodBoolean;
|
|
1246
1298
|
deliveryMode: z.ZodEnum<{
|
|
1247
1299
|
in_person: "in_person";
|
|
@@ -1400,6 +1452,12 @@ export declare const publicEventsArraySchema: z.ZodArray<z.ZodObject<{
|
|
|
1400
1452
|
currency: z.ZodString;
|
|
1401
1453
|
}, z.core.$strip>], "kind">;
|
|
1402
1454
|
}, z.core.$strip>;
|
|
1455
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
1456
|
+
kind: z.ZodLiteral<"external">;
|
|
1457
|
+
display: z.ZodObject<{
|
|
1458
|
+
kind: z.ZodLiteral<"external">;
|
|
1459
|
+
label: z.ZodString;
|
|
1460
|
+
}, z.core.$strip>;
|
|
1403
1461
|
}, z.core.$strip>], "kind">;
|
|
1404
1462
|
paymentTerms: z.ZodObject<{
|
|
1405
1463
|
allowedOptions: z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
|
|
@@ -39,6 +39,15 @@ export type PricingType = PublicEventPricingType;
|
|
|
39
39
|
* Access restriction type for events
|
|
40
40
|
*/
|
|
41
41
|
export type AccessRestriction = "none" | "category";
|
|
42
|
+
export type PublicEventDestination = Readonly<{
|
|
43
|
+
kind: "native";
|
|
44
|
+
mode: "cms-managed" | "system-managed";
|
|
45
|
+
path: string;
|
|
46
|
+
}> | Readonly<{
|
|
47
|
+
kind: "external";
|
|
48
|
+
url: string;
|
|
49
|
+
label: string;
|
|
50
|
+
}>;
|
|
42
51
|
export type PublicEventTicketTypeAvailability = {
|
|
43
52
|
kind: "available";
|
|
44
53
|
remainingCapacity: number | null;
|
|
@@ -84,6 +93,8 @@ export type PublicEvent = {
|
|
|
84
93
|
eventPreset?: "event" | EventSurfacePreset;
|
|
85
94
|
/** Resolved destination mode for the event series. */
|
|
86
95
|
eventDestinationMode?: "cms-managed" | "system-managed";
|
|
96
|
+
/** Public navigation destination for cards/details CTAs. */
|
|
97
|
+
destination: PublicEventDestination;
|
|
87
98
|
/** Whether this occurrence belongs to a recurring or one-off series. */
|
|
88
99
|
scheduleScope?: Exclude<EventScheduleScope, "any">;
|
|
89
100
|
id: string;
|
|
@@ -102,7 +113,7 @@ export type PublicEvent = {
|
|
|
102
113
|
};
|
|
103
114
|
slug: string;
|
|
104
115
|
/** Canonical URL path (includes any required date segments for occurrences) */
|
|
105
|
-
path: string;
|
|
116
|
+
path: string | null;
|
|
106
117
|
/** Whether this event requires registration (drop-in events return false). */
|
|
107
118
|
requiresRegistration: boolean;
|
|
108
119
|
/** How people can attend this event. */
|