@riverbankcms/sdk 0.67.0 → 0.68.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/README.md +21 -11
- package/dist/_dts/api/src/aiPlayground.d.ts +62 -14
- package/dist/_dts/api/src/billing.d.ts +7 -40
- package/dist/_dts/api/src/bookingManagementEndpoints.d.ts +4 -1
- package/dist/_dts/api/src/bookingOperations.d.ts +32 -1
- package/dist/_dts/api/src/endpoints.d.ts +7 -0
- package/dist/_dts/api/src/public/types.d.ts +1 -1
- package/dist/_dts/billing/src/components/index.d.ts +426 -0
- package/dist/_dts/blocks/src/PageRenderer.d.ts +4 -0
- package/dist/_dts/blocks/src/client.d.ts +6 -0
- package/dist/_dts/blocks/src/system/runtime/hooks/useAvailableDates.d.ts +1 -0
- package/dist/_dts/blocks/src/system/runtime/hooks/useAvailableSlots.d.ts +3 -1
- package/dist/_dts/blocks/src/system/runtime/hooks/useHeadlessBookingFlow.d.ts +140 -0
- package/dist/_dts/blocks/src/system/runtime/hooks/useHeadlessBookingFlow.state.d.ts +2 -0
- package/dist/_dts/blocks/src/system/runtime/hooks/useVisibleTabPolling.d.ts +10 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.default-ui.d.ts +8 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.headless.state.d.ts +484 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.state.d.ts +5 -2
- package/dist/_dts/sdk/src/bookings/index.d.ts +5 -2
- package/dist/_dts/sdk/src/bookings/types.d.ts +2 -0
- package/dist/_dts/sdk/src/cli/commands/push/scopes/commandBackedDatedOfferingScope.d.ts +32 -0
- package/dist/_dts/sdk/src/cli/commands/push/scopes/types.d.ts +5 -1
- package/dist/_dts/sdk/src/cli/site-commands/commandRuntime.d.ts +41 -11
- package/dist/_dts/sdk/src/cli/site-commands/commandRuntimeCompat.d.ts +21 -0
- package/dist/_dts/sdk/src/cli/site-commands/commandSurfaceDispatch.d.ts +27 -0
- package/dist/_dts/sdk/src/cli/site-commands/datedOfferingCommands.d.ts +56 -0
- package/dist/_dts/sdk/src/cli/site-commands/entryCommands.d.ts +3 -1
- package/dist/_dts/sdk/src/cli/site-commands/footerCommands.d.ts +7 -1
- package/dist/_dts/sdk/src/cli/site-commands/formCommands.d.ts +4 -8
- package/dist/_dts/sdk/src/cli/site-commands/index.d.ts +1 -0
- package/dist/_dts/sdk/src/cli/site-commands/navigationCommands.d.ts +4 -8
- package/dist/_dts/sdk/src/cli/site-commands/pageCommands.d.ts +4 -8
- package/dist/_dts/sdk/src/cli/site-commands/pushExecution.d.ts +14 -68
- package/dist/_dts/sdk/src/cli/site-commands/pushExecutionPlan.d.ts +8 -0
- package/dist/_dts/sdk/src/cli/site-commands/pushExecutionTypes.d.ts +97 -0
- package/dist/_dts/sdk/src/cli/site-commands/residualSettingsTrimming.d.ts +15 -0
- package/dist/_dts/sdk/src/cli/sync/index.d.ts +1 -0
- package/dist/_dts/sdk/src/cli/sync/syncResultAggregation.d.ts +4 -0
- package/dist/_dts/sdk/src/rendering/overrides.d.ts +2 -0
- package/dist/_dts/sdk/src/theme-bridge/ThemeBridgeProvider.d.ts +4 -4
- package/dist/_dts/sdk/src/theme-bridge/generateCssVars.d.ts +4 -12
- package/dist/_dts/sdk/src/theme-bridge/index.d.ts +1 -1
- package/dist/_dts/sdk/src/theme-bridge/types.d.ts +17 -9
- package/dist/_dts/sdk/src/version.d.ts +1 -1
- package/dist/_dts/site-commands/src/commands.d.ts +228 -1
- package/dist/_dts/site-commands/src/domain.d.ts +1 -1
- package/dist/_dts/site-commands/src/index.d.ts +1 -0
- package/dist/_dts/site-commands/src/metadata.d.ts +66 -1
- package/dist/_dts/site-commands/src/refContributions.d.ts +1 -0
- package/dist/_dts/site-commands/src/refs.d.ts +7 -1
- package/dist/_dts/{sdk/src/cli/merge-remote → site-commands/src}/stableJson.d.ts +2 -0
- package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
- package/dist/_dts/theme-core/src/index.d.ts +1 -1
- package/dist/_dts/theme-core/src/runtime/buildThemeRuntimeFromBridge.d.ts +30 -23
- package/dist/cli/index.mjs +1699 -766
- package/dist/client/bookings.mjs +5107 -3348
- package/dist/client/client.mjs +4004 -3522
- package/dist/client/hooks.mjs +14 -0
- package/dist/client/rendering/client.mjs +4185 -3721
- package/dist/client/rendering/islands.mjs +4317 -3853
- package/dist/client/rendering.mjs +4076 -3592
- package/dist/preview-next/before-render.mjs +14 -0
- package/dist/preview-next/client/runtime.mjs +2770 -2268
- package/dist/preview-next/middleware.mjs +14 -0
- package/dist/server/components.mjs +172 -58
- package/dist/server/config-validation.mjs +14 -0
- package/dist/server/config.mjs +14 -0
- package/dist/server/data.mjs +14 -0
- package/dist/server/index.mjs +15 -1
- package/dist/server/next.mjs +166 -52
- package/dist/server/prebuild.mjs +1 -1
- package/dist/server/rendering/server.mjs +174 -58
- package/dist/server/rendering.mjs +174 -58
- package/dist/server/routing.mjs +14 -0
- package/dist/server/server.mjs +15 -1
- package/dist/server/theme-bridge.mjs +1247 -4825
- package/dist/styles/index.css +38 -38
- package/package.json +1 -1
- package/dist/_dts/blocks/src/system/runtime/components/booking/DateTimeSelectionStep.d.ts +0 -18
- package/dist/_dts/blocks/src/system/runtime/components/booking/PaymentOptionSelectionStep.d.ts +0 -9
- package/dist/_dts/blocks/src/system/runtime/components/booking/ServiceResourceSelector.d.ts +0 -44
- package/dist/_dts/blocks/src/system/runtime/components/booking/ServiceResourceSelector.state.d.ts +0 -23
- package/dist/_dts/blocks/src/system/runtime/components/booking/ServiceSelectionStep.d.ts +0 -18
- package/dist/_dts/blocks/src/system/runtime/components/booking/slotDisplay.d.ts +0 -2
- package/dist/_dts/blocks/src/system/runtime/components/multi-step/MultiStepForm.d.ts +0 -21
- package/dist/_dts/blocks/src/system/runtime/components/multi-step/useMultiStep.d.ts +0 -15
- package/dist/_dts/blocks/src/system/runtime/components/multi-step/useMultiStep.state.d.ts +0 -51
- package/dist/_dts/blocks/src/system/runtime/hooks/useBookingSteps.d.ts +0 -22
|
@@ -30026,16 +30026,18 @@ function toTrimmedString(value) {
|
|
|
30026
30026
|
return trimmed ? trimmed : void 0;
|
|
30027
30027
|
}
|
|
30028
30028
|
function normalizeBookingFormConfig(form2) {
|
|
30029
|
-
if (!form2) return null;
|
|
30029
|
+
if (!isRecord4(form2)) return null;
|
|
30030
|
+
const id = readNonEmptyString(form2.id);
|
|
30031
|
+
const name = readNonEmptyString(form2.name);
|
|
30032
|
+
if (!id || !name) return null;
|
|
30033
|
+
const schemaSource = isRecord4(form2.schema) ? form2.schema : isRecord4(form2.schemaJson) ? form2.schemaJson : null;
|
|
30034
|
+
const settingsSource = isRecord4(form2.settings) ? form2.settings : isRecord4(form2.settingsJson) ? form2.settingsJson : null;
|
|
30030
30035
|
return {
|
|
30031
|
-
id
|
|
30032
|
-
name
|
|
30033
|
-
slug: "",
|
|
30034
|
-
settings:
|
|
30035
|
-
schema:
|
|
30036
|
-
version: form2.schemaJson.version,
|
|
30037
|
-
fields: form2.schemaJson.fields ?? []
|
|
30038
|
-
} : void 0
|
|
30036
|
+
id,
|
|
30037
|
+
name,
|
|
30038
|
+
slug: typeof form2.slug === "string" ? form2.slug : "",
|
|
30039
|
+
settings: normalizeBookingSettings(settingsSource),
|
|
30040
|
+
schema: normalizeBookingSchema(schemaSource)
|
|
30039
30041
|
};
|
|
30040
30042
|
}
|
|
30041
30043
|
function normalizeBookingServices(services) {
|
|
@@ -30051,12 +30053,106 @@ function normalizeBookingServices(services) {
|
|
|
30051
30053
|
return [];
|
|
30052
30054
|
}
|
|
30053
30055
|
if (Array.isArray(services)) {
|
|
30054
|
-
return services.map(normalizeService);
|
|
30056
|
+
return services.filter(isBookingFormService).map(normalizeService);
|
|
30057
|
+
}
|
|
30058
|
+
if (isRecord4(services) && "services" in services) {
|
|
30059
|
+
return Array.isArray(services.services) ? services.services.filter(isBookingFormService).map(normalizeService) : [];
|
|
30055
30060
|
}
|
|
30056
|
-
|
|
30057
|
-
|
|
30061
|
+
return isRecord4(services) ? Object.values(services).filter(isBookingFormService).map(normalizeService) : [];
|
|
30062
|
+
}
|
|
30063
|
+
function normalizeBookingSchema(value) {
|
|
30064
|
+
if (!value) return void 0;
|
|
30065
|
+
const rawFields = Array.isArray(value.fields) ? value.fields : [];
|
|
30066
|
+
const fields3 = rawFields.map(readBookingFormField).filter((field) => field !== null);
|
|
30067
|
+
return {
|
|
30068
|
+
version: typeof value.version === "string" ? value.version : void 0,
|
|
30069
|
+
fields: fields3
|
|
30070
|
+
};
|
|
30071
|
+
}
|
|
30072
|
+
function readBookingFormField(value) {
|
|
30073
|
+
if (!isRecord4(value)) return null;
|
|
30074
|
+
const id = readNonEmptyString(value.id);
|
|
30075
|
+
const label = readNonEmptyString(value.label);
|
|
30076
|
+
const type = readBookingFieldType(value.type);
|
|
30077
|
+
if (!id || !label || !type) return null;
|
|
30078
|
+
return {
|
|
30079
|
+
id,
|
|
30080
|
+
label,
|
|
30081
|
+
type,
|
|
30082
|
+
required: typeof value.required === "boolean" ? value.required : void 0,
|
|
30083
|
+
placeholder: readOptionalString(value.placeholder),
|
|
30084
|
+
helpText: readOptionalString(value.helpText),
|
|
30085
|
+
options: readBookingFieldOptions(value.options),
|
|
30086
|
+
multiple: typeof value.multiple === "boolean" ? value.multiple : void 0,
|
|
30087
|
+
minLength: readOptionalNumber(value.minLength),
|
|
30088
|
+
maxLength: readOptionalNumber(value.maxLength),
|
|
30089
|
+
pattern: readOptionalString(value.pattern),
|
|
30090
|
+
min: readOptionalNumber(value.min),
|
|
30091
|
+
max: readOptionalNumber(value.max)
|
|
30092
|
+
};
|
|
30093
|
+
}
|
|
30094
|
+
function readBookingFieldType(value) {
|
|
30095
|
+
switch (value) {
|
|
30096
|
+
case "text":
|
|
30097
|
+
case "email":
|
|
30098
|
+
case "textarea":
|
|
30099
|
+
case "select":
|
|
30100
|
+
case "radio":
|
|
30101
|
+
case "checkbox":
|
|
30102
|
+
case "booking_requirement_consent":
|
|
30103
|
+
case "tel":
|
|
30104
|
+
case "url":
|
|
30105
|
+
case "number":
|
|
30106
|
+
case "date":
|
|
30107
|
+
case "time":
|
|
30108
|
+
return value;
|
|
30109
|
+
default:
|
|
30110
|
+
return null;
|
|
30058
30111
|
}
|
|
30059
|
-
|
|
30112
|
+
}
|
|
30113
|
+
function readBookingFieldOptions(value) {
|
|
30114
|
+
if (!Array.isArray(value)) return void 0;
|
|
30115
|
+
const options = value.map(readBookingFieldOption).filter((option) => option !== null);
|
|
30116
|
+
return options.length > 0 ? options : void 0;
|
|
30117
|
+
}
|
|
30118
|
+
function readBookingFieldOption(value) {
|
|
30119
|
+
if (!isRecord4(value)) return null;
|
|
30120
|
+
const optionValue = readNonEmptyString(value.value);
|
|
30121
|
+
const label = readNonEmptyString(value.label);
|
|
30122
|
+
return optionValue && label ? { value: optionValue, label } : null;
|
|
30123
|
+
}
|
|
30124
|
+
function normalizeBookingSettings(value) {
|
|
30125
|
+
if (!value || value.type !== "booking") return void 0;
|
|
30126
|
+
return {
|
|
30127
|
+
type: "booking",
|
|
30128
|
+
serviceId: readOptionalString(value.serviceId),
|
|
30129
|
+
serviceIds: readStringArray(value.serviceIds),
|
|
30130
|
+
resourceId: readOptionalString(value.resourceId),
|
|
30131
|
+
requiresApproval: typeof value.requiresApproval === "boolean" ? value.requiresApproval : void 0,
|
|
30132
|
+
successMessage: readOptionalString(value.successMessage)
|
|
30133
|
+
};
|
|
30134
|
+
}
|
|
30135
|
+
function isBookingFormService(value) {
|
|
30136
|
+
return isRecord4(value) && typeof value.id === "string" && typeof value.siteId === "string" && typeof value.title === "string";
|
|
30137
|
+
}
|
|
30138
|
+
function readNonEmptyString(value) {
|
|
30139
|
+
if (typeof value !== "string") return null;
|
|
30140
|
+
const trimmed = value.trim();
|
|
30141
|
+
return trimmed.length > 0 ? trimmed : null;
|
|
30142
|
+
}
|
|
30143
|
+
function readOptionalString(value) {
|
|
30144
|
+
return typeof value === "string" ? value : void 0;
|
|
30145
|
+
}
|
|
30146
|
+
function readOptionalNumber(value) {
|
|
30147
|
+
return typeof value === "number" && Number.isFinite(value) ? value : void 0;
|
|
30148
|
+
}
|
|
30149
|
+
function readStringArray(value) {
|
|
30150
|
+
if (!Array.isArray(value)) return void 0;
|
|
30151
|
+
const strings = value.filter((item) => typeof item === "string");
|
|
30152
|
+
return strings.length > 0 ? strings : void 0;
|
|
30153
|
+
}
|
|
30154
|
+
function isRecord4(value) {
|
|
30155
|
+
return typeof value === "object" && value !== null;
|
|
30060
30156
|
}
|
|
30061
30157
|
|
|
30062
30158
|
// ../blocks/src/system/runtime/nodes/booking-form.interactive.ts
|
|
@@ -37364,6 +37460,8 @@ var MemoBlockSection = React6.memo(
|
|
|
37364
37460
|
themeConfig,
|
|
37365
37461
|
data: void 0,
|
|
37366
37462
|
siteId: dataContext?.siteId,
|
|
37463
|
+
apiBaseUrl: dataContext?.apiBaseUrl,
|
|
37464
|
+
portalToken: dataContext?.portalToken ?? null,
|
|
37367
37465
|
supabaseUrl: dataContext?.supabaseUrl,
|
|
37368
37466
|
imageResolveContext,
|
|
37369
37467
|
blockId: block.id ?? null,
|
|
@@ -37478,6 +37576,8 @@ var MemoBlockSection = React6.memo(
|
|
|
37478
37576
|
themeConfig,
|
|
37479
37577
|
data: resolved,
|
|
37480
37578
|
siteId: dataContext?.siteId,
|
|
37579
|
+
apiBaseUrl: dataContext?.apiBaseUrl,
|
|
37580
|
+
portalToken: dataContext?.portalToken ?? null,
|
|
37481
37581
|
supabaseUrl: dataContext?.supabaseUrl,
|
|
37482
37582
|
imageResolveContext,
|
|
37483
37583
|
blockId: block.id ?? null,
|
|
@@ -43240,32 +43340,32 @@ var containerResponsiveThemeCss = `/*
|
|
|
43240
43340
|
}
|
|
43241
43341
|
|
|
43242
43342
|
:where(.theme-scope) :where([data-block="appointment-booking"]) .ab-text--muted {
|
|
43243
|
-
opacity: var(--ab-text-muted-opacity);
|
|
43343
|
+
opacity: var(--ab-text-muted-opacity, 0.6);
|
|
43244
43344
|
}
|
|
43245
43345
|
|
|
43246
43346
|
:where(.theme-scope) :where([data-block="appointment-booking"]) .ab-text--faint {
|
|
43247
|
-
opacity: var(--ab-text-faint-opacity);
|
|
43347
|
+
opacity: var(--ab-text-faint-opacity, 0.4);
|
|
43248
43348
|
}
|
|
43249
43349
|
|
|
43250
43350
|
/* Selection cards (service, resource, time slot) */
|
|
43251
43351
|
:where(.theme-scope) :where([data-block="appointment-booking"]) .ab-card {
|
|
43252
43352
|
position: relative;
|
|
43253
43353
|
padding: 1rem;
|
|
43254
|
-
border: 2px solid var(--ab-card-border);
|
|
43255
|
-
border-radius: var(--rb-block-radius);
|
|
43354
|
+
border: 2px solid var(--ab-card-border, rgb(var(--tb-border, 226 232 240)));
|
|
43355
|
+
border-radius: var(--ab-card-radius, var(--rb-block-radius, 1rem));
|
|
43256
43356
|
text-align: left;
|
|
43257
43357
|
background: transparent;
|
|
43258
43358
|
cursor: pointer;
|
|
43259
|
-
transition: border-color var(--rb-block-transition) ease, background-color var(--rb-block-transition) ease;
|
|
43359
|
+
transition: border-color var(--rb-block-transition, 150ms) ease, background-color var(--rb-block-transition, 150ms) ease;
|
|
43260
43360
|
}
|
|
43261
43361
|
|
|
43262
43362
|
:where(.theme-scope) :where([data-block="appointment-booking"]) .ab-card:hover {
|
|
43263
|
-
border-color: var(--ab-card-border-hover);
|
|
43363
|
+
border-color: var(--ab-card-border-hover, rgba(var(--tb-primary, 17 24 39), 0.5));
|
|
43264
43364
|
}
|
|
43265
43365
|
|
|
43266
43366
|
:where(.theme-scope) :where([data-block="appointment-booking"]) .ab-card--selected {
|
|
43267
|
-
border-color: var(--ab-card-border-selected);
|
|
43268
|
-
background-color: var(--ab-card-bg-selected);
|
|
43367
|
+
border-color: var(--ab-card-border-selected, rgb(var(--tb-primary, 17 24 39)));
|
|
43368
|
+
background-color: var(--ab-card-bg-selected, rgba(var(--tb-primary, 17 24 39), 0.05));
|
|
43269
43369
|
}
|
|
43270
43370
|
|
|
43271
43371
|
/* Checkmark indicator */
|
|
@@ -43274,7 +43374,7 @@ var containerResponsiveThemeCss = `/*
|
|
|
43274
43374
|
width: 1.25rem;
|
|
43275
43375
|
height: 1.25rem;
|
|
43276
43376
|
border-radius: 50%;
|
|
43277
|
-
background-color: var(--ab-check-bg);
|
|
43377
|
+
background-color: var(--ab-check-bg, rgb(var(--tb-primary, 17 24 39)));
|
|
43278
43378
|
display: flex;
|
|
43279
43379
|
align-items: center;
|
|
43280
43380
|
justify-content: center;
|
|
@@ -43283,42 +43383,42 @@ var containerResponsiveThemeCss = `/*
|
|
|
43283
43383
|
:where(.theme-scope) :where([data-block="appointment-booking"]) .ab-check svg {
|
|
43284
43384
|
width: 0.75rem;
|
|
43285
43385
|
height: 0.75rem;
|
|
43286
|
-
color: var(--ab-check-text);
|
|
43386
|
+
color: var(--ab-check-text, rgb(var(--tb-background, 255 255 255)));
|
|
43287
43387
|
}
|
|
43288
43388
|
|
|
43289
43389
|
/* Info box (service summary) */
|
|
43290
43390
|
:where(.theme-scope) :where([data-block="appointment-booking"]) .ab-info-box {
|
|
43291
43391
|
padding: 1rem;
|
|
43292
|
-
border: 1px solid var(--ab-card-border);
|
|
43293
|
-
border-radius: var(--rb-block-radius);
|
|
43294
|
-
background-color: var(--ab-muted-bg);
|
|
43392
|
+
border: 1px solid var(--ab-card-border, rgb(var(--tb-border, 226 232 240)));
|
|
43393
|
+
border-radius: var(--ab-card-radius, var(--rb-block-radius, 1rem));
|
|
43394
|
+
background-color: var(--ab-muted-bg, rgba(var(--tb-foreground, var(--tb-text, 15 23 42)), 0.05));
|
|
43295
43395
|
}
|
|
43296
43396
|
|
|
43297
43397
|
/* Alert states */
|
|
43298
43398
|
:where(.theme-scope) :where([data-block="appointment-booking"]) .ab-alert {
|
|
43299
43399
|
padding: 0.75rem 1rem;
|
|
43300
|
-
border-radius: var(--rb-block-radius);
|
|
43400
|
+
border-radius: var(--ab-card-radius, var(--rb-block-radius, 1rem));
|
|
43301
43401
|
font-size: 0.875rem;
|
|
43302
43402
|
}
|
|
43303
43403
|
|
|
43304
43404
|
:where(.theme-scope) :where([data-block="appointment-booking"]) .ab-alert--success {
|
|
43305
|
-
background-color: var(--ab-success-bg);
|
|
43306
|
-
color: var(--ab-success-text);
|
|
43405
|
+
background-color: var(--ab-success-bg, rgba(var(--tb-success, 22 163 74), 0.1));
|
|
43406
|
+
color: var(--ab-success-text, rgb(var(--tb-success, 22 163 74)));
|
|
43307
43407
|
}
|
|
43308
43408
|
|
|
43309
43409
|
:where(.theme-scope) :where([data-block="appointment-booking"]) .ab-alert--error {
|
|
43310
|
-
background-color: var(--ab-error-bg);
|
|
43311
|
-
color: var(--ab-error-text);
|
|
43410
|
+
background-color: var(--ab-error-bg, rgba(var(--tb-destructive, 220 38 38), 0.1));
|
|
43411
|
+
color: var(--ab-error-text, rgb(var(--tb-destructive, 220 38 38)));
|
|
43312
43412
|
}
|
|
43313
43413
|
|
|
43314
43414
|
:where(.theme-scope) :where([data-block="appointment-booking"]) .ab-alert--warning {
|
|
43315
|
-
background-color: var(--ab-warning-bg);
|
|
43316
|
-
color: var(--ab-warning-text);
|
|
43415
|
+
background-color: var(--ab-warning-bg, rgba(var(--tb-warning, 245 158 11), 0.1));
|
|
43416
|
+
color: var(--ab-warning-text, rgb(var(--tb-warning, 245 158 11)));
|
|
43317
43417
|
}
|
|
43318
43418
|
|
|
43319
43419
|
:where(.theme-scope) :where([data-block="appointment-booking"]) .ab-alert--info {
|
|
43320
|
-
background-color: var(--ab-info-bg);
|
|
43321
|
-
color: var(--ab-info-text);
|
|
43420
|
+
background-color: var(--ab-info-bg, rgba(var(--tb-info, 14 165 233), 0.1));
|
|
43421
|
+
color: var(--ab-info-text, rgb(var(--tb-info, 14 165 233)));
|
|
43322
43422
|
}
|
|
43323
43423
|
|
|
43324
43424
|
/* Form elements */
|
|
@@ -43330,7 +43430,7 @@ var containerResponsiveThemeCss = `/*
|
|
|
43330
43430
|
}
|
|
43331
43431
|
|
|
43332
43432
|
:where(.theme-scope) :where([data-block="appointment-booking"]) .ab-required {
|
|
43333
|
-
color: var(--ab-error-text);
|
|
43433
|
+
color: var(--ab-error-text, rgb(var(--tb-destructive, 220 38 38)));
|
|
43334
43434
|
margin-left: 0.125rem;
|
|
43335
43435
|
}
|
|
43336
43436
|
|
|
@@ -43339,19 +43439,19 @@ var containerResponsiveThemeCss = `/*
|
|
|
43339
43439
|
:where(.theme-scope) :where([data-block="appointment-booking"]) .ab-textarea {
|
|
43340
43440
|
width: 100%;
|
|
43341
43441
|
padding: 0.5rem 0.75rem;
|
|
43342
|
-
border: 1px solid var(--ab-input-border);
|
|
43343
|
-
border-radius: var(--rb-block-radius);
|
|
43442
|
+
border: 1px solid var(--ab-input-border, rgb(var(--tb-border, 226 232 240)));
|
|
43443
|
+
border-radius: var(--ab-input-radius, var(--radius-control, var(--rb-block-radius, 1rem)));
|
|
43344
43444
|
background: transparent;
|
|
43345
43445
|
font-size: 0.875rem;
|
|
43346
|
-
transition: border-color var(--rb-block-transition) ease, box-shadow var(--rb-block-transition) ease;
|
|
43446
|
+
transition: border-color var(--rb-block-transition, 150ms) ease, box-shadow var(--rb-block-transition, 150ms) ease;
|
|
43347
43447
|
}
|
|
43348
43448
|
|
|
43349
43449
|
:where(.theme-scope) :where([data-block="appointment-booking"]) .ab-input:focus,
|
|
43350
43450
|
:where(.theme-scope) :where([data-block="appointment-booking"]) .ab-select:focus,
|
|
43351
43451
|
:where(.theme-scope) :where([data-block="appointment-booking"]) .ab-textarea:focus {
|
|
43352
43452
|
outline: none;
|
|
43353
|
-
border-color: var(--ab-card-border-selected);
|
|
43354
|
-
box-shadow: 0 0 0 3px var(--ab-input-focus-ring);
|
|
43453
|
+
border-color: var(--ab-card-border-selected, rgb(var(--tb-primary, 17 24 39)));
|
|
43454
|
+
box-shadow: 0 0 0 3px var(--ab-input-focus-ring, rgba(var(--tb-primary, 17 24 39), 0.3));
|
|
43355
43455
|
}
|
|
43356
43456
|
|
|
43357
43457
|
/* Buttons */
|
|
@@ -43360,31 +43460,31 @@ var containerResponsiveThemeCss = `/*
|
|
|
43360
43460
|
align-items: center;
|
|
43361
43461
|
justify-content: center;
|
|
43362
43462
|
padding: 0.5rem 1.5rem;
|
|
43363
|
-
border-radius: var(--rb-block-radius);
|
|
43463
|
+
border-radius: var(--ab-button-radius, var(--rb-button-radius, var(--rb-block-radius, 1rem)));
|
|
43364
43464
|
font-size: 0.875rem;
|
|
43365
43465
|
font-weight: 500;
|
|
43366
43466
|
cursor: pointer;
|
|
43367
|
-
transition: background-color var(--rb-block-transition) ease, border-color var(--rb-block-transition) ease;
|
|
43467
|
+
transition: background-color var(--rb-block-transition, 150ms) ease, border-color var(--rb-block-transition, 150ms) ease;
|
|
43368
43468
|
}
|
|
43369
43469
|
|
|
43370
43470
|
:where(.theme-scope) :where([data-block="appointment-booking"]) .ab-btn--primary {
|
|
43371
43471
|
flex: 1;
|
|
43372
|
-
background-color: var(--ab-btn-primary-bg);
|
|
43373
|
-
color: var(--ab-btn-primary-text);
|
|
43472
|
+
background-color: var(--ab-btn-primary-bg, rgb(var(--tb-primary, 17 24 39)));
|
|
43473
|
+
color: var(--ab-btn-primary-text, rgb(var(--tb-primaryForeground, 255 255 255)));
|
|
43374
43474
|
border: none;
|
|
43375
43475
|
}
|
|
43376
43476
|
|
|
43377
43477
|
:where(.theme-scope) :where([data-block="appointment-booking"]) .ab-btn--primary:hover:not(:disabled) {
|
|
43378
|
-
background-color: var(--ab-btn-primary-hover);
|
|
43478
|
+
background-color: var(--ab-btn-primary-hover, rgba(var(--tb-primary, 17 24 39), 0.9));
|
|
43379
43479
|
}
|
|
43380
43480
|
|
|
43381
43481
|
:where(.theme-scope) :where([data-block="appointment-booking"]) .ab-btn--secondary {
|
|
43382
43482
|
background: transparent;
|
|
43383
|
-
border: 1px solid var(--ab-btn-secondary-border);
|
|
43483
|
+
border: 1px solid var(--ab-btn-secondary-border, rgb(var(--tb-border, 226 232 240)));
|
|
43384
43484
|
}
|
|
43385
43485
|
|
|
43386
43486
|
:where(.theme-scope) :where([data-block="appointment-booking"]) .ab-btn--secondary:hover:not(:disabled) {
|
|
43387
|
-
background-color: var(--ab-btn-secondary-hover);
|
|
43487
|
+
background-color: var(--ab-btn-secondary-hover, rgba(var(--tb-foreground, var(--tb-text, 15 23 42)), 0.05));
|
|
43388
43488
|
}
|
|
43389
43489
|
|
|
43390
43490
|
:where(.theme-scope) :where([data-block="appointment-booking"]) .ab-btn--link {
|
|
@@ -43414,8 +43514,8 @@ var containerResponsiveThemeCss = `/*
|
|
|
43414
43514
|
:where(.theme-scope) :where([data-block="appointment-booking"]) .ab-skeleton {
|
|
43415
43515
|
height: 2.5rem;
|
|
43416
43516
|
width: 100%;
|
|
43417
|
-
background-color: var(--ab-muted-bg);
|
|
43418
|
-
border-radius: var(--rb-block-radius);
|
|
43517
|
+
background-color: var(--ab-muted-bg, rgba(var(--tb-foreground, var(--tb-text, 15 23 42)), 0.05));
|
|
43518
|
+
border-radius: var(--ab-card-radius, var(--rb-block-radius, 1rem));
|
|
43419
43519
|
animation: ab-pulse 1.5s ease-in-out infinite;
|
|
43420
43520
|
}
|
|
43421
43521
|
|
|
@@ -43444,7 +43544,7 @@ var containerResponsiveThemeCss = `/*
|
|
|
43444
43544
|
:where(.theme-scope) :where([data-block="appointment-booking"]) .ab-link {
|
|
43445
43545
|
display: inline;
|
|
43446
43546
|
margin-left: 0.5rem;
|
|
43447
|
-
color: rgb(var(--tb-primary));
|
|
43547
|
+
color: rgb(var(--tb-primary, 17 24 39));
|
|
43448
43548
|
background: none;
|
|
43449
43549
|
border: none;
|
|
43450
43550
|
padding: 0;
|
|
@@ -50044,6 +50144,20 @@ var ENDPOINT_DEFINITIONS = {
|
|
|
50044
50144
|
responseKind: "json",
|
|
50045
50145
|
errors: ["validation:invalid_input", "billing:plan_limit_exceeded", "server:internal_error"]
|
|
50046
50146
|
},
|
|
50147
|
+
createAppointmentResourceWithAccountAccess: {
|
|
50148
|
+
path: "/sites/{siteId}/bookings/resources/account-access",
|
|
50149
|
+
method: "POST",
|
|
50150
|
+
auth: "user",
|
|
50151
|
+
responseKind: "json",
|
|
50152
|
+
errors: [
|
|
50153
|
+
"validation:invalid_input",
|
|
50154
|
+
"auth:forbidden",
|
|
50155
|
+
"billing:plan_limit_exceeded",
|
|
50156
|
+
"resource:conflict",
|
|
50157
|
+
"resource:not_found",
|
|
50158
|
+
"server:internal_error"
|
|
50159
|
+
]
|
|
50160
|
+
},
|
|
50047
50161
|
getAppointmentResource: {
|
|
50048
50162
|
path: "/sites/{siteId}/bookings/resources/{resourceId}",
|
|
50049
50163
|
method: "GET",
|
|
@@ -55887,7 +56001,7 @@ function preset(id, verticalId, canonicalBehaviour, label, pluralLabel, descript
|
|
|
55887
56001
|
}
|
|
55888
56002
|
|
|
55889
56003
|
// ../api/src/utils/isRecord.ts
|
|
55890
|
-
function
|
|
56004
|
+
function isRecord5(value) {
|
|
55891
56005
|
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
55892
56006
|
}
|
|
55893
56007
|
|
|
@@ -56176,7 +56290,7 @@ function sanitizeMarks(marks) {
|
|
|
56176
56290
|
if (mark.type === "bold" || mark.type === "strong" || mark.type === "italic" || mark.type === "em") {
|
|
56177
56291
|
return [{ type: mark.type }];
|
|
56178
56292
|
}
|
|
56179
|
-
if (mark.type === "link" &&
|
|
56293
|
+
if (mark.type === "link" && isRecord5(mark.attrs) && typeof mark.attrs.href === "string") {
|
|
56180
56294
|
const attrs = { href: mark.attrs.href };
|
|
56181
56295
|
if (typeof mark.attrs.target === "string" && mark.attrs.target.trim().length > 0) {
|
|
56182
56296
|
attrs.target = mark.attrs.target;
|
|
@@ -56191,10 +56305,10 @@ function sanitizeMarks(marks) {
|
|
|
56191
56305
|
return sanitized.length > 0 ? sanitized : void 0;
|
|
56192
56306
|
}
|
|
56193
56307
|
function unwrapRichTextValue(value) {
|
|
56194
|
-
if (
|
|
56308
|
+
if (isRecord5(value) && isRecord5(value.doc)) {
|
|
56195
56309
|
return unwrapRichTextValue(value.doc);
|
|
56196
56310
|
}
|
|
56197
|
-
if (
|
|
56311
|
+
if (isRecord5(value) && value.type === "doc") {
|
|
56198
56312
|
return {
|
|
56199
56313
|
type: "doc",
|
|
56200
56314
|
content: Array.isArray(value.content) ? value.content.filter(isTipTapNodeLike).map(coerceTipTapNode) : []
|
|
@@ -56203,7 +56317,7 @@ function unwrapRichTextValue(value) {
|
|
|
56203
56317
|
return EMPTY_SITE_BANNER_BODY;
|
|
56204
56318
|
}
|
|
56205
56319
|
function isTipTapNodeLike(value) {
|
|
56206
|
-
return
|
|
56320
|
+
return isRecord5(value) && typeof value.type === "string";
|
|
56207
56321
|
}
|
|
56208
56322
|
function coerceTipTapNode(value) {
|
|
56209
56323
|
return {
|
|
@@ -56211,9 +56325,9 @@ function coerceTipTapNode(value) {
|
|
|
56211
56325
|
...Array.isArray(value.content) ? { content: value.content.filter(isTipTapNodeLike).map(coerceTipTapNode) } : {},
|
|
56212
56326
|
...typeof value.text === "string" ? { text: value.text } : {},
|
|
56213
56327
|
...Array.isArray(value.marks) ? {
|
|
56214
|
-
marks: value.marks.filter((mark) =>
|
|
56328
|
+
marks: value.marks.filter((mark) => isRecord5(mark) && typeof mark.type === "string").map((mark) => ({
|
|
56215
56329
|
type: mark.type,
|
|
56216
|
-
...
|
|
56330
|
+
...isRecord5(mark.attrs) ? { attrs: mark.attrs } : {}
|
|
56217
56331
|
}))
|
|
56218
56332
|
} : {}
|
|
56219
56333
|
};
|
|
@@ -56680,6 +56794,8 @@ function renderBlockOverride({
|
|
|
56680
56794
|
themeConfig: props2.theme,
|
|
56681
56795
|
data: resolvedData,
|
|
56682
56796
|
siteId: props2.siteId,
|
|
56797
|
+
apiBaseUrl: props2.apiBaseUrl,
|
|
56798
|
+
portalToken: props2.portalToken ?? null,
|
|
56683
56799
|
supabaseUrl: props2.supabaseUrl,
|
|
56684
56800
|
imageResolveContext: runtime.imageResolveContext,
|
|
56685
56801
|
blockId: props2.blockId ?? null,
|