@riverbankcms/sdk 0.64.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 +75 -20
- package/dist/_dts/api/src/apiEndpointTypes.d.ts +12 -0
- 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 +33 -2
- package/dist/_dts/api/src/endpoints.d.ts +32 -0
- package/dist/_dts/api/src/public/types.d.ts +1 -1
- package/dist/_dts/api/src/sdkConfig/contracts.d.ts +0 -40
- package/dist/_dts/api/src/sdkContracts.d.ts +1 -1
- package/dist/_dts/api/src/siteMembers.d.ts +1 -1
- package/dist/_dts/api/src/siteOperations.d.ts +1 -1
- package/dist/_dts/billing/src/components/index.d.ts +426 -0
- package/dist/_dts/billing/src/plans/types.d.ts +1 -1
- package/dist/_dts/blocks/src/PageRenderer.d.ts +4 -0
- package/dist/_dts/blocks/src/bindings/index.d.ts +1 -1
- package/dist/_dts/blocks/src/client.d.ts +6 -0
- package/dist/_dts/blocks/src/system/node/validation-constants.d.ts +1 -1
- 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/blocks/src/system/transforms/registry/formatting.d.ts +1 -0
- package/dist/_dts/blocks/src/system/transforms/typed.d.ts +2 -1
- package/dist/_dts/db/src/generated/supabase/database.types.d.ts +81 -0
- package/dist/_dts/preview-next/src/client/blocks/pageDesignRuntimePreview.d.ts +7 -3
- package/dist/_dts/preview-next/src/client/blocks/previewProjection/runtimeContentDecoration.d.ts +2 -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/execute/footer.d.ts +33 -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/commands/push-execute.d.ts +2 -1
- package/dist/_dts/sdk/src/cli/env.d.ts +2 -1
- package/dist/_dts/sdk/src/cli/merge-remote/entryMergePush.d.ts +2 -1
- package/dist/_dts/sdk/src/cli/site-commands/commandKeys.d.ts +13 -0
- package/dist/_dts/sdk/src/cli/site-commands/commandRuntime.d.ts +144 -0
- 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 +29 -49
- package/dist/_dts/sdk/src/cli/site-commands/footerCommands.d.ts +56 -0
- package/dist/_dts/sdk/src/cli/site-commands/formCommands.d.ts +53 -0
- package/dist/_dts/sdk/src/cli/site-commands/index.d.ts +6 -0
- package/dist/_dts/sdk/src/cli/site-commands/navigationCommands.d.ts +53 -0
- package/dist/_dts/sdk/src/cli/site-commands/pageCommands.d.ts +79 -0
- package/dist/_dts/sdk/src/cli/site-commands/pushExecution.d.ts +19 -20
- 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/executor.d.ts +10 -28
- package/dist/_dts/sdk/src/cli/sync/index.d.ts +2 -1
- package/dist/_dts/sdk/src/cli/sync/syncResultAggregation.d.ts +4 -0
- package/dist/_dts/sdk/src/config/dashboard-validation.d.ts +0 -48
- package/dist/_dts/sdk/src/config/types.d.ts +1 -1
- 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/adapter.d.ts +2 -2
- package/dist/_dts/site-commands/src/commands.d.ts +637 -13
- package/dist/_dts/site-commands/src/domain.d.ts +3 -3
- package/dist/_dts/site-commands/src/exposure.d.ts +41 -0
- package/dist/_dts/site-commands/src/index.d.ts +2 -0
- package/dist/_dts/site-commands/src/metadata.d.ts +159 -3
- package/dist/_dts/site-commands/src/planner.d.ts +13 -6
- package/dist/_dts/site-commands/src/refContributions.d.ts +1 -0
- package/dist/_dts/site-commands/src/refs.d.ts +19 -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/palette/utils/index.d.ts +1 -0
- package/dist/_dts/theme-core/src/palette/utils/onColor.d.ts +2 -0
- package/dist/_dts/theme-core/src/runtime/buildThemeRuntimeFromBridge.d.ts +30 -23
- package/dist/_dts/theme-core/src/site-styles/accessibleSurfaces.d.ts +83 -0
- package/dist/_dts/theme-core/src/site-styles/contentTemplateRuntimeCompiler.d.ts +2 -1
- package/dist/_dts/theme-core/src/site-styles/curatedSiteStyles.d.ts +89 -12
- package/dist/_dts/theme-core/src/site-styles/generatedSchemas.d.ts +8 -2
- package/dist/_dts/theme-core/src/site-styles/index.d.ts +1 -0
- package/dist/_dts/theme-core/src/site-styles/previewCompiler.d.ts +3 -2
- package/dist/_dts/theme-core/src/site-styles/runtimeCompiler.d.ts +9 -6
- package/dist/_dts/ui/src/callout.d.ts +1 -1
- package/dist/cli/index.mjs +4736 -2026
- package/dist/client/bookings.mjs +5107 -3348
- package/dist/client/client.mjs +4579 -3871
- package/dist/client/hooks.mjs +325 -123
- package/dist/client/rendering/client.mjs +4474 -3869
- package/dist/client/rendering/islands.mjs +4234 -3639
- package/dist/client/rendering.mjs +4508 -3798
- package/dist/preview-next/before-render.mjs +75 -13
- package/dist/preview-next/client/runtime.mjs +3700 -2644
- package/dist/preview-next/middleware.mjs +75 -13
- package/dist/server/components.mjs +698 -383
- package/dist/server/config-validation.mjs +327 -125
- package/dist/server/config.mjs +327 -125
- package/dist/server/data.mjs +325 -123
- package/dist/server/index.mjs +92 -16
- package/dist/server/next.mjs +692 -377
- package/dist/server/page-converter.mjs +159 -41
- package/dist/server/prebuild.mjs +1 -1
- package/dist/server/rendering/server.mjs +700 -383
- package/dist/server/rendering.mjs +700 -383
- package/dist/server/routing.mjs +406 -131
- package/dist/server/server.mjs +326 -124
- package/dist/server/theme-bridge.mjs +1226 -4697
- 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
- package/dist/_dts/path-utils/src/index.d.ts +0 -8
- package/dist/_dts/path-utils/src/redirectPaths.d.ts +0 -26
- package/dist/_dts/path-utils/src/safeAppPath.d.ts +0 -26
package/dist/server/server.mjs
CHANGED
|
@@ -53,6 +53,17 @@ function parsePublicProductCategorySelector(value) {
|
|
|
53
53
|
return void 0;
|
|
54
54
|
}
|
|
55
55
|
|
|
56
|
+
// ../api/src/apiEndpointTypes.ts
|
|
57
|
+
function blockedDemoMutationPolicy(classification, publicMessage) {
|
|
58
|
+
if (publicMessage.trim() === "") {
|
|
59
|
+
throw new Error(`Demo mutation policy ${classification} requires publicMessage.`);
|
|
60
|
+
}
|
|
61
|
+
return {
|
|
62
|
+
classification,
|
|
63
|
+
publicMessage
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
|
|
56
67
|
// ../api/src/cache-tags.ts
|
|
57
68
|
var TAG_TEMPLATES = {
|
|
58
69
|
siteCollection: "riverbank:site",
|
|
@@ -83,6 +94,18 @@ var TAG_TEMPLATES = {
|
|
|
83
94
|
};
|
|
84
95
|
|
|
85
96
|
// ../api/src/endpoints.ts
|
|
97
|
+
var DEMO_MUTATION_BLOCKED_HIDDEN = blockedDemoMutationPolicy(
|
|
98
|
+
"blocked-hidden",
|
|
99
|
+
"This action is not available in demo sites."
|
|
100
|
+
);
|
|
101
|
+
var DEMO_MUTATION_BLOCKED_DISABLED = blockedDemoMutationPolicy(
|
|
102
|
+
"blocked-disabled",
|
|
103
|
+
"This setting is disabled in demo sites."
|
|
104
|
+
);
|
|
105
|
+
var DEMO_MUTATION_INTERNAL_ONLY = blockedDemoMutationPolicy(
|
|
106
|
+
"internal-only",
|
|
107
|
+
"This internal operation is not available in demo sites."
|
|
108
|
+
);
|
|
86
109
|
var ENDPOINT_DEFINITIONS = {
|
|
87
110
|
// AI endpoints - no cache due to dynamic nature
|
|
88
111
|
aiContentUpdateChat: {
|
|
@@ -199,7 +222,8 @@ var ENDPOINT_DEFINITIONS = {
|
|
|
199
222
|
path: "/sites/{siteId}/ai/generate",
|
|
200
223
|
method: "POST",
|
|
201
224
|
auth: "user",
|
|
202
|
-
responseKind: "json"
|
|
225
|
+
responseKind: "json",
|
|
226
|
+
demoMutation: DEMO_MUTATION_BLOCKED_HIDDEN
|
|
203
227
|
},
|
|
204
228
|
getOnboardingPreviewStatus: {
|
|
205
229
|
path: "/public/sites/{siteId}/onboarding/preview-status",
|
|
@@ -220,7 +244,8 @@ var ENDPOINT_DEFINITIONS = {
|
|
|
220
244
|
method: "POST",
|
|
221
245
|
auth: "user",
|
|
222
246
|
errors: [],
|
|
223
|
-
responseKind: "json"
|
|
247
|
+
responseKind: "json",
|
|
248
|
+
demoMutation: DEMO_MUTATION_BLOCKED_DISABLED
|
|
224
249
|
},
|
|
225
250
|
goLiveSite: {
|
|
226
251
|
path: "/sites/{siteId}/launch/go-live",
|
|
@@ -289,20 +314,23 @@ var ENDPOINT_DEFINITIONS = {
|
|
|
289
314
|
path: "/sites/{siteId}/ai/site-wizard/goals",
|
|
290
315
|
method: "POST",
|
|
291
316
|
auth: "user",
|
|
292
|
-
responseKind: "json"
|
|
317
|
+
responseKind: "json",
|
|
318
|
+
demoMutation: DEMO_MUTATION_BLOCKED_HIDDEN
|
|
293
319
|
},
|
|
294
320
|
aiSiteWizardIntakeTriage: {
|
|
295
321
|
path: "/sites/{siteId}/ai/site-wizard/intake-triage",
|
|
296
322
|
method: "POST",
|
|
297
323
|
auth: "user",
|
|
298
|
-
responseKind: "json"
|
|
324
|
+
responseKind: "json",
|
|
325
|
+
demoMutation: DEMO_MUTATION_BLOCKED_HIDDEN
|
|
299
326
|
},
|
|
300
327
|
aiSiteWizardTelemetry: {
|
|
301
328
|
path: "/sites/{siteId}/ai/site-wizard/telemetry",
|
|
302
329
|
method: "POST",
|
|
303
330
|
auth: "user",
|
|
304
331
|
errors: [],
|
|
305
|
-
responseKind: "json"
|
|
332
|
+
responseKind: "json",
|
|
333
|
+
demoMutation: DEMO_MUTATION_BLOCKED_HIDDEN
|
|
306
334
|
},
|
|
307
335
|
// Admin SEO
|
|
308
336
|
listGscPropertiesAdmin: {
|
|
@@ -509,7 +537,7 @@ var ENDPOINT_DEFINITIONS = {
|
|
|
509
537
|
responseKind: "json",
|
|
510
538
|
errors: ["resource:not_found", "server:internal_error"]
|
|
511
539
|
},
|
|
512
|
-
// Ops (event
|
|
540
|
+
// Ops (staff event operators/admins)
|
|
513
541
|
opsListUpcomingEventOccurrences: {
|
|
514
542
|
path: "/ops/sites/{siteId}/events",
|
|
515
543
|
method: "GET",
|
|
@@ -527,6 +555,7 @@ var ENDPOINT_DEFINITIONS = {
|
|
|
527
555
|
method: "POST",
|
|
528
556
|
auth: "user",
|
|
529
557
|
responseKind: "json",
|
|
558
|
+
demoMutation: DEMO_MUTATION_INTERNAL_ONLY,
|
|
530
559
|
errors: [
|
|
531
560
|
"validation:invalid_input",
|
|
532
561
|
"auth:forbidden",
|
|
@@ -539,6 +568,7 @@ var ENDPOINT_DEFINITIONS = {
|
|
|
539
568
|
method: "POST",
|
|
540
569
|
auth: "user",
|
|
541
570
|
responseKind: "json",
|
|
571
|
+
demoMutation: DEMO_MUTATION_INTERNAL_ONLY,
|
|
542
572
|
errors: [
|
|
543
573
|
"validation:invalid_input",
|
|
544
574
|
"auth:forbidden",
|
|
@@ -557,6 +587,7 @@ var ENDPOINT_DEFINITIONS = {
|
|
|
557
587
|
method: "POST",
|
|
558
588
|
auth: "user",
|
|
559
589
|
responseKind: "json",
|
|
590
|
+
demoMutation: DEMO_MUTATION_INTERNAL_ONLY,
|
|
560
591
|
errors: [
|
|
561
592
|
"validation:invalid_input",
|
|
562
593
|
"auth:forbidden",
|
|
@@ -590,6 +621,7 @@ var ENDPOINT_DEFINITIONS = {
|
|
|
590
621
|
method: "POST",
|
|
591
622
|
auth: "user",
|
|
592
623
|
responseKind: "json",
|
|
624
|
+
demoMutation: DEMO_MUTATION_INTERNAL_ONLY,
|
|
593
625
|
errors: [
|
|
594
626
|
"validation:invalid_input",
|
|
595
627
|
"auth:forbidden",
|
|
@@ -618,7 +650,8 @@ var ENDPOINT_DEFINITIONS = {
|
|
|
618
650
|
method: "POST",
|
|
619
651
|
tags: [TAG_TEMPLATES.site, TAG_TEMPLATES.siteEmailSettings],
|
|
620
652
|
auth: "user",
|
|
621
|
-
responseKind: "json"
|
|
653
|
+
responseKind: "json",
|
|
654
|
+
demoMutation: DEMO_MUTATION_BLOCKED_HIDDEN
|
|
622
655
|
},
|
|
623
656
|
previewEmailTemplate: {
|
|
624
657
|
path: "/sites/{siteId}/settings/emails/preview",
|
|
@@ -669,14 +702,16 @@ var ENDPOINT_DEFINITIONS = {
|
|
|
669
702
|
method: "POST",
|
|
670
703
|
tags: [TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter],
|
|
671
704
|
auth: "user",
|
|
672
|
-
responseKind: "json"
|
|
705
|
+
responseKind: "json",
|
|
706
|
+
demoMutation: DEMO_MUTATION_BLOCKED_HIDDEN
|
|
673
707
|
},
|
|
674
708
|
createNewsletterSubscribersImportUploadUrl: {
|
|
675
709
|
path: "/sites/{siteId}/newsletter/subscribers/import-url",
|
|
676
710
|
method: "POST",
|
|
677
711
|
tags: [TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter],
|
|
678
712
|
auth: "user",
|
|
679
|
-
responseKind: "json"
|
|
713
|
+
responseKind: "json",
|
|
714
|
+
demoMutation: DEMO_MUTATION_BLOCKED_HIDDEN
|
|
680
715
|
},
|
|
681
716
|
exportNewsletterSubscribersCsv: {
|
|
682
717
|
path: "/sites/{siteId}/newsletter/subscribers/export.csv",
|
|
@@ -873,14 +908,16 @@ var ENDPOINT_DEFINITIONS = {
|
|
|
873
908
|
method: "POST",
|
|
874
909
|
tags: [TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter],
|
|
875
910
|
auth: "user",
|
|
876
|
-
responseKind: "json"
|
|
911
|
+
responseKind: "json",
|
|
912
|
+
demoMutation: DEMO_MUTATION_BLOCKED_HIDDEN
|
|
877
913
|
},
|
|
878
914
|
testSendNewsletterCampaign: {
|
|
879
915
|
path: "/sites/{siteId}/newsletter/campaigns/{campaignId}/test-send",
|
|
880
916
|
method: "POST",
|
|
881
917
|
tags: [TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter],
|
|
882
918
|
auth: "user",
|
|
883
|
-
responseKind: "json"
|
|
919
|
+
responseKind: "json",
|
|
920
|
+
demoMutation: DEMO_MUTATION_BLOCKED_HIDDEN
|
|
884
921
|
},
|
|
885
922
|
listNewsletterSendJobs: {
|
|
886
923
|
path: "/sites/{siteId}/newsletter/jobs",
|
|
@@ -928,6 +965,20 @@ var ENDPOINT_DEFINITIONS = {
|
|
|
928
965
|
responseKind: "json",
|
|
929
966
|
errors: ["validation:invalid_input", "billing:plan_limit_exceeded", "server:internal_error"]
|
|
930
967
|
},
|
|
968
|
+
createAppointmentResourceWithAccountAccess: {
|
|
969
|
+
path: "/sites/{siteId}/bookings/resources/account-access",
|
|
970
|
+
method: "POST",
|
|
971
|
+
auth: "user",
|
|
972
|
+
responseKind: "json",
|
|
973
|
+
errors: [
|
|
974
|
+
"validation:invalid_input",
|
|
975
|
+
"auth:forbidden",
|
|
976
|
+
"billing:plan_limit_exceeded",
|
|
977
|
+
"resource:conflict",
|
|
978
|
+
"resource:not_found",
|
|
979
|
+
"server:internal_error"
|
|
980
|
+
]
|
|
981
|
+
},
|
|
931
982
|
getAppointmentResource: {
|
|
932
983
|
path: "/sites/{siteId}/bookings/resources/{resourceId}",
|
|
933
984
|
method: "GET",
|
|
@@ -1568,7 +1619,8 @@ var ENDPOINT_DEFINITIONS = {
|
|
|
1568
1619
|
method: "DELETE",
|
|
1569
1620
|
tags: ["site", "site-{siteId}"],
|
|
1570
1621
|
auth: "user",
|
|
1571
|
-
responseKind: "json"
|
|
1622
|
+
responseKind: "json",
|
|
1623
|
+
demoMutation: DEMO_MUTATION_BLOCKED_HIDDEN
|
|
1572
1624
|
},
|
|
1573
1625
|
listSiteMembers: {
|
|
1574
1626
|
path: "/sites/{siteId}/members",
|
|
@@ -2024,7 +2076,8 @@ var ENDPOINT_DEFINITIONS = {
|
|
|
2024
2076
|
method: "POST",
|
|
2025
2077
|
tags: ["site-{siteId}", "content-{siteId}-{type}"],
|
|
2026
2078
|
auth: "user",
|
|
2027
|
-
responseKind: "json"
|
|
2079
|
+
responseKind: "json",
|
|
2080
|
+
demoMutation: DEMO_MUTATION_BLOCKED_HIDDEN
|
|
2028
2081
|
},
|
|
2029
2082
|
updateSiteGeneralSettings: {
|
|
2030
2083
|
path: "/sites/{siteId}/settings/general",
|
|
@@ -4263,6 +4316,7 @@ var ENDPOINT_DEFINITIONS = {
|
|
|
4263
4316
|
method: "POST",
|
|
4264
4317
|
tags: ["site-{siteId}"],
|
|
4265
4318
|
auth: "user",
|
|
4319
|
+
demoMutation: DEMO_MUTATION_BLOCKED_HIDDEN,
|
|
4266
4320
|
errors: [
|
|
4267
4321
|
"validation:invalid_input",
|
|
4268
4322
|
"auth:forbidden",
|
|
@@ -4277,6 +4331,7 @@ var ENDPOINT_DEFINITIONS = {
|
|
|
4277
4331
|
method: "POST",
|
|
4278
4332
|
tags: ["site-{siteId}"],
|
|
4279
4333
|
auth: "user",
|
|
4334
|
+
demoMutation: DEMO_MUTATION_BLOCKED_HIDDEN,
|
|
4280
4335
|
errors: [
|
|
4281
4336
|
"validation:invalid_input",
|
|
4282
4337
|
"auth:forbidden",
|
|
@@ -4586,6 +4641,7 @@ var ENDPOINT_DEFINITIONS = {
|
|
|
4586
4641
|
tags: ["site-{siteId}", "passes-{siteId}"],
|
|
4587
4642
|
auth: "user",
|
|
4588
4643
|
responseKind: "json",
|
|
4644
|
+
demoMutation: DEMO_MUTATION_BLOCKED_DISABLED,
|
|
4589
4645
|
errors: ["validation:invalid_input", "server:internal_error"]
|
|
4590
4646
|
},
|
|
4591
4647
|
getBookingPass: {
|
|
@@ -4601,6 +4657,7 @@ var ENDPOINT_DEFINITIONS = {
|
|
|
4601
4657
|
tags: ["site-{siteId}", "passes-{siteId}"],
|
|
4602
4658
|
auth: "user",
|
|
4603
4659
|
responseKind: "json",
|
|
4660
|
+
demoMutation: DEMO_MUTATION_BLOCKED_DISABLED,
|
|
4604
4661
|
errors: [
|
|
4605
4662
|
"validation:invalid_input",
|
|
4606
4663
|
"resource:not_found",
|
|
@@ -4613,6 +4670,7 @@ var ENDPOINT_DEFINITIONS = {
|
|
|
4613
4670
|
tags: ["site-{siteId}", "passes-{siteId}"],
|
|
4614
4671
|
auth: "user",
|
|
4615
4672
|
responseKind: "json",
|
|
4673
|
+
demoMutation: DEMO_MUTATION_BLOCKED_DISABLED,
|
|
4616
4674
|
errors: [
|
|
4617
4675
|
"validation:invalid_input",
|
|
4618
4676
|
"resource:not_found",
|
|
@@ -4668,6 +4726,7 @@ var ENDPOINT_DEFINITIONS = {
|
|
|
4668
4726
|
tags: ["site-{siteId}", "memberships-{siteId}"],
|
|
4669
4727
|
auth: "user",
|
|
4670
4728
|
responseKind: "json",
|
|
4729
|
+
demoMutation: DEMO_MUTATION_BLOCKED_DISABLED,
|
|
4671
4730
|
errors: ["validation:invalid_input", "server:internal_error"]
|
|
4672
4731
|
},
|
|
4673
4732
|
getBookingMembership: {
|
|
@@ -4683,6 +4742,7 @@ var ENDPOINT_DEFINITIONS = {
|
|
|
4683
4742
|
tags: ["site-{siteId}", "memberships-{siteId}"],
|
|
4684
4743
|
auth: "user",
|
|
4685
4744
|
responseKind: "json",
|
|
4745
|
+
demoMutation: DEMO_MUTATION_BLOCKED_DISABLED,
|
|
4686
4746
|
errors: [
|
|
4687
4747
|
"validation:invalid_input",
|
|
4688
4748
|
"resource:not_found",
|
|
@@ -4695,6 +4755,7 @@ var ENDPOINT_DEFINITIONS = {
|
|
|
4695
4755
|
tags: ["site-{siteId}", "memberships-{siteId}"],
|
|
4696
4756
|
auth: "user",
|
|
4697
4757
|
responseKind: "json",
|
|
4758
|
+
demoMutation: DEMO_MUTATION_BLOCKED_DISABLED,
|
|
4698
4759
|
errors: [
|
|
4699
4760
|
"validation:invalid_input",
|
|
4700
4761
|
"resource:not_found",
|
|
@@ -4911,6 +4972,7 @@ var ENDPOINT_DEFINITIONS = {
|
|
|
4911
4972
|
tags: ["site-{siteId}", "customers-{siteId}"],
|
|
4912
4973
|
auth: "user",
|
|
4913
4974
|
responseKind: "json",
|
|
4975
|
+
demoMutation: DEMO_MUTATION_BLOCKED_DISABLED,
|
|
4914
4976
|
errors: [
|
|
4915
4977
|
"validation:invalid_input",
|
|
4916
4978
|
"auth:forbidden",
|
|
@@ -6729,7 +6791,7 @@ var SimpleCache = class {
|
|
|
6729
6791
|
};
|
|
6730
6792
|
|
|
6731
6793
|
// src/version.ts
|
|
6732
|
-
var SDK_VERSION = "0.
|
|
6794
|
+
var SDK_VERSION = "0.68.0";
|
|
6733
6795
|
|
|
6734
6796
|
// src/client/error.ts
|
|
6735
6797
|
var RiverbankApiError = class _RiverbankApiError extends Error {
|
|
@@ -8906,8 +8968,7 @@ var dashboardNavVisibilityBaseSchema = z5.object({
|
|
|
8906
8968
|
var dashboardNavVisibilityRolesSchema = z5.object({
|
|
8907
8969
|
administrator: dashboardNavVisibilityBaseSchema.optional(),
|
|
8908
8970
|
editor: dashboardNavVisibilityBaseSchema.optional(),
|
|
8909
|
-
team_member: dashboardNavVisibilityBaseSchema.optional()
|
|
8910
|
-
event_host: dashboardNavVisibilityBaseSchema.optional()
|
|
8971
|
+
team_member: dashboardNavVisibilityBaseSchema.optional()
|
|
8911
8972
|
}).strip().optional();
|
|
8912
8973
|
var dashboardNavVisibilitySchema = dashboardNavVisibilityBaseSchema.extend({
|
|
8913
8974
|
roles: dashboardNavVisibilityRolesSchema
|
|
@@ -9421,6 +9482,21 @@ var appointmentSetupServiceDraftSchema = z7.object({
|
|
|
9421
9482
|
timezone: z7.string().trim().min(1).nullable(),
|
|
9422
9483
|
payment: appointmentSetupPaymentDraftSchema,
|
|
9423
9484
|
assignment: appointmentSetupServiceAssignmentDraftSchema
|
|
9485
|
+
}).superRefine((service, ctx) => {
|
|
9486
|
+
if (service.payment.priceType === "paid" && (service.priceAmount === null || service.priceAmount <= 0)) {
|
|
9487
|
+
ctx.addIssue({
|
|
9488
|
+
code: "custom",
|
|
9489
|
+
path: ["priceAmount"],
|
|
9490
|
+
message: "Paid appointment services need a positive price."
|
|
9491
|
+
});
|
|
9492
|
+
}
|
|
9493
|
+
if (service.payment.priceType === "free" && service.priceAmount !== null && service.priceAmount > 0) {
|
|
9494
|
+
ctx.addIssue({
|
|
9495
|
+
code: "custom",
|
|
9496
|
+
path: ["priceAmount"],
|
|
9497
|
+
message: "Free appointment services cannot carry a positive price."
|
|
9498
|
+
});
|
|
9499
|
+
}
|
|
9424
9500
|
});
|
|
9425
9501
|
var appointmentSetupPractitionerDraftSchema = z7.object({
|
|
9426
9502
|
ref: appointmentSetupRefSchema,
|
|
@@ -9758,6 +9834,71 @@ function registerManifest(manifest) {
|
|
|
9758
9834
|
return manifest;
|
|
9759
9835
|
}
|
|
9760
9836
|
|
|
9837
|
+
// ../theme-core/src/palette/utils/colorConversion.ts
|
|
9838
|
+
var mod = (a, n) => (a % n + n) % n;
|
|
9839
|
+
var deg = (x) => mod(x, 360);
|
|
9840
|
+
function hexToRgb(hex) {
|
|
9841
|
+
const h = hex.replace(/^#/, "");
|
|
9842
|
+
const m = h.length === 3 ? h.split("").map((c) => c + c).join("") : h;
|
|
9843
|
+
if (m.length !== 6) throw new Error("Bad hex");
|
|
9844
|
+
const int = parseInt(m, 16);
|
|
9845
|
+
return { r: int >> 16 & 255, g: int >> 8 & 255, b: int & 255 };
|
|
9846
|
+
}
|
|
9847
|
+
function srgbToLinear(u) {
|
|
9848
|
+
const x = u / 255;
|
|
9849
|
+
return x <= 0.04045 ? x / 12.92 : Math.pow((x + 0.055) / 1.055, 2.4);
|
|
9850
|
+
}
|
|
9851
|
+
function rgbToHsl(r, g, b) {
|
|
9852
|
+
const R = r / 255, G = g / 255, B = b / 255;
|
|
9853
|
+
const max = Math.max(R, G, B), min = Math.min(R, G, B);
|
|
9854
|
+
const d = max - min;
|
|
9855
|
+
let h = 0;
|
|
9856
|
+
if (d !== 0) {
|
|
9857
|
+
switch (max) {
|
|
9858
|
+
case R:
|
|
9859
|
+
h = (G - B) / d + (G < B ? 6 : 0);
|
|
9860
|
+
break;
|
|
9861
|
+
case G:
|
|
9862
|
+
h = (B - R) / d + 2;
|
|
9863
|
+
break;
|
|
9864
|
+
case B:
|
|
9865
|
+
h = (R - G) / d + 4;
|
|
9866
|
+
break;
|
|
9867
|
+
}
|
|
9868
|
+
h *= 60;
|
|
9869
|
+
}
|
|
9870
|
+
const l = (max + min) / 2;
|
|
9871
|
+
const s = d === 0 ? 0 : d / (1 - Math.abs(2 * l - 1));
|
|
9872
|
+
return { h, s, l };
|
|
9873
|
+
}
|
|
9874
|
+
function srgbToOklab(r, g, b) {
|
|
9875
|
+
const R = srgbToLinear(r), G = srgbToLinear(g), B = srgbToLinear(b);
|
|
9876
|
+
const l = 0.4122214708 * R + 0.5363325363 * G + 0.0514459929 * B;
|
|
9877
|
+
const m = 0.2119034982 * R + 0.6806995451 * G + 0.1073969566 * B;
|
|
9878
|
+
const s = 0.0883024619 * R + 0.2817188376 * G + 0.6299787005 * B;
|
|
9879
|
+
const l_ = Math.cbrt(l), m_ = Math.cbrt(m), s_ = Math.cbrt(s);
|
|
9880
|
+
const L = 0.2104542553 * l_ + 0.793617785 * m_ - 0.0040720468 * s_;
|
|
9881
|
+
const a = 1.9779984951 * l_ - 2.428592205 * m_ + 0.4505937099 * s_;
|
|
9882
|
+
const b2 = 0.0259040371 * l_ + 0.7827717662 * m_ - 0.808675766 * s_;
|
|
9883
|
+
return { L, a, b: b2 };
|
|
9884
|
+
}
|
|
9885
|
+
function oklabToOklch(L, a, b) {
|
|
9886
|
+
const C = Math.sqrt(a * a + b * b);
|
|
9887
|
+
const h = C < 1e-7 ? 0 : deg(Math.atan2(b, a) * 180 / Math.PI);
|
|
9888
|
+
return { L, C, h };
|
|
9889
|
+
}
|
|
9890
|
+
function featuresFromHex(hex) {
|
|
9891
|
+
const { r, g, b } = hexToRgb(hex);
|
|
9892
|
+
const { h, s, l } = rgbToHsl(r, g, b);
|
|
9893
|
+
const { L, a, b: b2 } = srgbToOklab(r, g, b);
|
|
9894
|
+
const { L: okL, C: okC, h: okH } = oklabToOklch(L, a, b2);
|
|
9895
|
+
const max = Math.max(r, g, b);
|
|
9896
|
+
const v = max / 255;
|
|
9897
|
+
const Y = 0.2126 * srgbToLinear(r) + 0.7152 * srgbToLinear(g) + 0.0722 * srgbToLinear(b);
|
|
9898
|
+
const chroma = s;
|
|
9899
|
+
return { r, g, b, h, s, l, v, Y, chroma, okL, okC, okH, hex };
|
|
9900
|
+
}
|
|
9901
|
+
|
|
9761
9902
|
// ../theme-core/src/site-styles/appearancePresetResolution.ts
|
|
9762
9903
|
function assertValidOptionGroups(preset2) {
|
|
9763
9904
|
preset2.optionGroups?.forEach((group) => {
|
|
@@ -13287,6 +13428,9 @@ var curatedSiteStyleIdValues = [
|
|
|
13287
13428
|
"site-style:bright-community",
|
|
13288
13429
|
"site-style:quiet-luxury",
|
|
13289
13430
|
"site-style:practical-services",
|
|
13431
|
+
"site-style:quiet-practice",
|
|
13432
|
+
"site-style:personal-retreat-journal",
|
|
13433
|
+
"site-style:tactile-workshop",
|
|
13290
13434
|
"site-style:modern-wellness",
|
|
13291
13435
|
"site-style:bold-launch",
|
|
13292
13436
|
"site-style:south-west-twerk-school"
|
|
@@ -13369,7 +13513,8 @@ function defineCuratedSiteStyle(input) {
|
|
|
13369
13513
|
name: input.name,
|
|
13370
13514
|
description: input.description,
|
|
13371
13515
|
generationBrief: input.generationBrief,
|
|
13372
|
-
|
|
13516
|
+
selectionKeywordRules: input.selectionKeywordRules ?? [],
|
|
13517
|
+
siteCreatorSelection: input.siteCreatorSelection ?? { kind: "explicit_only" },
|
|
13373
13518
|
template: {
|
|
13374
13519
|
id: asDesignSystemTemplateId(`template:${input.id.replace("site-style:", "")}`),
|
|
13375
13520
|
name: input.name,
|
|
@@ -13513,12 +13658,13 @@ var curatedSiteStyles = [
|
|
|
13513
13658
|
name: "Quiet Luxury",
|
|
13514
13659
|
description: "Minimal, confident, and refined for premium experiences and private services.",
|
|
13515
13660
|
generationBrief: "Use fewer claims, more specificity, and restrained sensory detail. Favor elegant media and low repetition over dense panels.",
|
|
13516
|
-
|
|
13517
|
-
|
|
13518
|
-
"
|
|
13519
|
-
"
|
|
13520
|
-
"
|
|
13521
|
-
"
|
|
13661
|
+
siteCreatorSelection: { kind: "site_creator_keyword_heuristic", priority: 20 },
|
|
13662
|
+
selectionKeywordRules: [
|
|
13663
|
+
{ kind: "word", value: "luxury" },
|
|
13664
|
+
{ kind: "word", value: "premium" },
|
|
13665
|
+
{ kind: "word", value: "boutique" },
|
|
13666
|
+
{ kind: "word", value: "bespoke" },
|
|
13667
|
+
{ kind: "word", value: "exclusive" }
|
|
13522
13668
|
],
|
|
13523
13669
|
tokenRecipes: {
|
|
13524
13670
|
palette: "high-contrast",
|
|
@@ -13547,13 +13693,14 @@ var curatedSiteStyles = [
|
|
|
13547
13693
|
name: "Practical Services",
|
|
13548
13694
|
description: "Efficient, plainspoken, and conversion-focused for trades and everyday services.",
|
|
13549
13695
|
generationBrief: "Make services, location, trust signals, and contact paths obvious. Keep copy brief and avoid ornate visual treatments.",
|
|
13550
|
-
|
|
13551
|
-
|
|
13552
|
-
"
|
|
13553
|
-
"
|
|
13554
|
-
"
|
|
13555
|
-
"
|
|
13556
|
-
"
|
|
13696
|
+
siteCreatorSelection: { kind: "primary_goal_support" },
|
|
13697
|
+
selectionKeywordRules: [
|
|
13698
|
+
{ kind: "word", value: "repair" },
|
|
13699
|
+
{ kind: "substring", value: "plumb" },
|
|
13700
|
+
{ kind: "substring", value: "electric" },
|
|
13701
|
+
{ kind: "word", value: "cleaning" },
|
|
13702
|
+
{ kind: "substring", value: "landscap" },
|
|
13703
|
+
{ kind: "substring", value: "contractor" }
|
|
13557
13704
|
],
|
|
13558
13705
|
tokenRecipes: {
|
|
13559
13706
|
palette: "brand-led",
|
|
@@ -13604,18 +13751,134 @@ var curatedSiteStyles = [
|
|
|
13604
13751
|
paletteChoice("warm-neutral-forest")
|
|
13605
13752
|
]
|
|
13606
13753
|
}),
|
|
13754
|
+
defineCuratedSiteStyle({
|
|
13755
|
+
id: "site-style:quiet-practice",
|
|
13756
|
+
name: "Quiet Practice",
|
|
13757
|
+
description: "Grounded, calm, and practical for small appointment-first practices.",
|
|
13758
|
+
generationBrief: "Make services, practitioner trust, preparation notes, and booking routes easy to scan. Keep the tone warm and specific, with quiet confidence rather than spa cliches or medical claims.",
|
|
13759
|
+
siteCreatorSelection: { kind: "site_creator_keyword_heuristic", priority: 30 },
|
|
13760
|
+
selectionKeywordRules: [
|
|
13761
|
+
{ kind: "substring", value: "massage" },
|
|
13762
|
+
{ kind: "word", value: "bodywork" },
|
|
13763
|
+
{ kind: "phrase", value: "appointment practice" },
|
|
13764
|
+
{ kind: "phrase", value: "appointment-first" },
|
|
13765
|
+
{ kind: "substring", value: "practitioner" },
|
|
13766
|
+
{ kind: "substring", value: "therap" },
|
|
13767
|
+
{ kind: "substring", value: "clinic" },
|
|
13768
|
+
{ kind: "phrase", value: "wellness practice" }
|
|
13769
|
+
],
|
|
13770
|
+
tokenRecipes: {
|
|
13771
|
+
palette: "soft-natural",
|
|
13772
|
+
contrast: "standard",
|
|
13773
|
+
radius: "soft",
|
|
13774
|
+
shadow: "subtle",
|
|
13775
|
+
typography: "clean-sans",
|
|
13776
|
+
spacing: "regular",
|
|
13777
|
+
motion: "subtle"
|
|
13778
|
+
},
|
|
13779
|
+
compositionBudget: quietBudget,
|
|
13780
|
+
recommendedHeaderLookIds: ["practical-utility", "clean-base", "centered-calm"],
|
|
13781
|
+
buttonPersonalityChoices: [
|
|
13782
|
+
buttonChoice("pebble"),
|
|
13783
|
+
buttonChoice("soft-pill"),
|
|
13784
|
+
buttonChoice("editorial-link")
|
|
13785
|
+
],
|
|
13786
|
+
paletteVariantChoices: [
|
|
13787
|
+
paletteChoice("soft-natural-stone"),
|
|
13788
|
+
paletteChoice("soft-natural-sage"),
|
|
13789
|
+
paletteChoice("warm-neutral-clay")
|
|
13790
|
+
]
|
|
13791
|
+
}),
|
|
13792
|
+
defineCuratedSiteStyle({
|
|
13793
|
+
id: "site-style:personal-retreat-journal",
|
|
13794
|
+
name: "Personal Retreat Journal",
|
|
13795
|
+
description: "Warm, story-led, and readable for solo practitioners with mixed offers.",
|
|
13796
|
+
generationBrief: "Center the practitioner as the guide, then make private sessions, classes, retreats, and resources feel like clear pathways. Keep retreat copy grounded and practical, with enough editorial warmth for longer reading.",
|
|
13797
|
+
siteCreatorSelection: { kind: "site_creator_keyword_heuristic", priority: 40 },
|
|
13798
|
+
selectionKeywordRules: [
|
|
13799
|
+
{ kind: "substring", value: "retreat" },
|
|
13800
|
+
{ kind: "phrase", value: "solo practitioner" },
|
|
13801
|
+
{ kind: "phrase", value: "personal brand" },
|
|
13802
|
+
{ kind: "substring", value: "teacher" },
|
|
13803
|
+
{ kind: "substring", value: "coach" },
|
|
13804
|
+
{ kind: "phrase", value: "retreat resources" },
|
|
13805
|
+
{ kind: "substring", value: "journal" }
|
|
13806
|
+
],
|
|
13807
|
+
tokenRecipes: {
|
|
13808
|
+
palette: "warm-neutral",
|
|
13809
|
+
contrast: "standard",
|
|
13810
|
+
radius: "soft",
|
|
13811
|
+
shadow: "subtle",
|
|
13812
|
+
typography: "serif-editorial",
|
|
13813
|
+
spacing: "airy",
|
|
13814
|
+
motion: "subtle"
|
|
13815
|
+
},
|
|
13816
|
+
compositionBudget: balancedBudget,
|
|
13817
|
+
recommendedHeaderLookIds: ["editorial-line", "centered-calm", "minimal-transparent"],
|
|
13818
|
+
buttonPersonalityChoices: [
|
|
13819
|
+
buttonChoice("editorial-link"),
|
|
13820
|
+
buttonChoice("soft-pill"),
|
|
13821
|
+
buttonChoice("brushed-wash")
|
|
13822
|
+
],
|
|
13823
|
+
paletteVariantChoices: [
|
|
13824
|
+
paletteChoice("warm-neutral-forest"),
|
|
13825
|
+
paletteChoice("warm-neutral-clay"),
|
|
13826
|
+
paletteChoice("soft-natural-stone")
|
|
13827
|
+
]
|
|
13828
|
+
}),
|
|
13829
|
+
defineCuratedSiteStyle({
|
|
13830
|
+
id: "site-style:tactile-workshop",
|
|
13831
|
+
name: "Tactile Workshop",
|
|
13832
|
+
description: "Bright, hands-on, and image-led for maker studios, workshops, and creative classes.",
|
|
13833
|
+
generationBrief: "Lead with objects, materials, studio process, and practical booking detail. Keep the tone warm and direct, with useful mess, clear dates, and enough gallery rhythm to feel like a real creative studio.",
|
|
13834
|
+
siteCreatorSelection: { kind: "site_creator_keyword_heuristic", priority: 50 },
|
|
13835
|
+
selectionKeywordRules: [
|
|
13836
|
+
{ kind: "substring", value: "ceramic" },
|
|
13837
|
+
{ kind: "word", value: "pottery" },
|
|
13838
|
+
{ kind: "phrase", value: "maker studio" },
|
|
13839
|
+
{ kind: "phrase", value: "craft class" },
|
|
13840
|
+
{ kind: "phrase", value: "craft workshop" },
|
|
13841
|
+
{ kind: "word", value: "clay" },
|
|
13842
|
+
{ kind: "word", value: "kiln" }
|
|
13843
|
+
],
|
|
13844
|
+
tokenRecipes: {
|
|
13845
|
+
palette: "brand-led",
|
|
13846
|
+
contrast: "standard",
|
|
13847
|
+
radius: "soft",
|
|
13848
|
+
shadow: "subtle",
|
|
13849
|
+
typography: "friendly-sans",
|
|
13850
|
+
spacing: "regular",
|
|
13851
|
+
motion: "subtle"
|
|
13852
|
+
},
|
|
13853
|
+
compositionBudget: balancedBudget,
|
|
13854
|
+
recommendedHeaderLookIds: ["brand-solid", "practical-utility", "clean-base"],
|
|
13855
|
+
recommendedFooterLookIds: ["site-footer-brand-two-band", "footer-muted-grounding"],
|
|
13856
|
+
buttonPersonalityChoices: [
|
|
13857
|
+
buttonChoice("pebble"),
|
|
13858
|
+
buttonChoice("confident-chip"),
|
|
13859
|
+
buttonChoice("ink-stamp"),
|
|
13860
|
+
buttonChoice("editorial-link")
|
|
13861
|
+
],
|
|
13862
|
+
paletteVariantChoices: [
|
|
13863
|
+
paletteChoice("brand-led-warm"),
|
|
13864
|
+
paletteChoice("brand-led-cool"),
|
|
13865
|
+
paletteChoice("soft-natural-watercolor"),
|
|
13866
|
+
paletteChoice("warm-neutral-clay")
|
|
13867
|
+
]
|
|
13868
|
+
}),
|
|
13607
13869
|
defineCuratedSiteStyle({
|
|
13608
13870
|
id: "site-style:bold-launch",
|
|
13609
13871
|
name: "Bold Launch",
|
|
13610
13872
|
description: "High-energy and punchy for launches, campaigns, and creative offers.",
|
|
13611
13873
|
generationBrief: "Use crisp positioning, bold hero structure, strong calls to action, and confident visual rhythm. Keep it precise, not shouty.",
|
|
13612
|
-
|
|
13613
|
-
|
|
13614
|
-
"
|
|
13615
|
-
"
|
|
13616
|
-
"
|
|
13617
|
-
"
|
|
13618
|
-
"
|
|
13874
|
+
siteCreatorSelection: { kind: "site_creator_keyword_heuristic", priority: 10 },
|
|
13875
|
+
selectionKeywordRules: [
|
|
13876
|
+
{ kind: "substring", value: "launch" },
|
|
13877
|
+
{ kind: "substring", value: "campaign" },
|
|
13878
|
+
{ kind: "word", value: "preorder" },
|
|
13879
|
+
{ kind: "phrase", value: "pre-order" },
|
|
13880
|
+
{ kind: "substring", value: "waitlist" },
|
|
13881
|
+
{ kind: "word", value: "drop" }
|
|
13619
13882
|
],
|
|
13620
13883
|
tokenRecipes: {
|
|
13621
13884
|
palette: "high-contrast",
|
|
@@ -13646,15 +13909,6 @@ var curatedSiteStyles = [
|
|
|
13646
13909
|
name: "South West Twerk School",
|
|
13647
13910
|
description: "Energetic, editorial, and high-contrast for a branded dance school presence.",
|
|
13648
13911
|
generationBrief: "Use confident rhythm, bold burgundy-and-gold accents, large editorial intro copy, strong booking routes, and dark feature sections where proof or forms need emphasis.",
|
|
13649
|
-
selectionKeywords: [
|
|
13650
|
-
"dance",
|
|
13651
|
-
"classes",
|
|
13652
|
-
"workshop",
|
|
13653
|
-
"school",
|
|
13654
|
-
"movement",
|
|
13655
|
-
"performance",
|
|
13656
|
-
"community"
|
|
13657
|
-
],
|
|
13658
13912
|
tokenRecipes: {
|
|
13659
13913
|
palette: "brand-led",
|
|
13660
13914
|
contrast: "maximum",
|
|
@@ -13961,25 +14215,19 @@ var defaultDesignRuntimeRules = defineDesignRuntimeRules({
|
|
|
13961
14215
|
"muted-band": {
|
|
13962
14216
|
background: {
|
|
13963
14217
|
type: "color",
|
|
13964
|
-
color: "muted"
|
|
13965
|
-
textColor: "text",
|
|
13966
|
-
headingColor: "text"
|
|
14218
|
+
color: "muted"
|
|
13967
14219
|
}
|
|
13968
14220
|
},
|
|
13969
14221
|
"accent-band": {
|
|
13970
14222
|
background: {
|
|
13971
14223
|
type: "color",
|
|
13972
|
-
color: "primary"
|
|
13973
|
-
textColor: "primaryForeground",
|
|
13974
|
-
headingColor: "primaryForeground"
|
|
14224
|
+
color: "primary"
|
|
13975
14225
|
}
|
|
13976
14226
|
},
|
|
13977
14227
|
"brand-depth-band": {
|
|
13978
14228
|
background: {
|
|
13979
14229
|
type: "color",
|
|
13980
|
-
color: "primary-800"
|
|
13981
|
-
textColor: "primaryForeground",
|
|
13982
|
-
headingColor: "primaryForeground"
|
|
14230
|
+
color: "primary-800"
|
|
13983
14231
|
}
|
|
13984
14232
|
},
|
|
13985
14233
|
"hero-image": {
|
|
@@ -20087,6 +20335,16 @@ var jsonArrayTransform = {
|
|
|
20087
20335
|
return "";
|
|
20088
20336
|
}
|
|
20089
20337
|
};
|
|
20338
|
+
var csvTransform = {
|
|
20339
|
+
id: "value.csv",
|
|
20340
|
+
kind: "formatter",
|
|
20341
|
+
summary: "Normalize a string or array of strings into a comma-separated list",
|
|
20342
|
+
run: (value) => {
|
|
20343
|
+
const rawValues = Array.isArray(value) ? value : typeof value === "string" ? value.split(",") : [];
|
|
20344
|
+
const normalized = rawValues.filter((item) => typeof item === "string").map((item) => item.trim()).filter(Boolean);
|
|
20345
|
+
return normalized.length > 0 ? Array.from(new Set(normalized)).join(",") : "";
|
|
20346
|
+
}
|
|
20347
|
+
};
|
|
20090
20348
|
var marqueeLoopOptionsSchema = z36.object({
|
|
20091
20349
|
minItems: z36.number().int().min(1).default(10)
|
|
20092
20350
|
});
|
|
@@ -20112,6 +20370,7 @@ var formattingTransforms = [
|
|
|
20112
20370
|
dateFormatShort,
|
|
20113
20371
|
arrayLengthTransform,
|
|
20114
20372
|
jsonArrayTransform,
|
|
20373
|
+
csvTransform,
|
|
20115
20374
|
marqueeLoopTransform
|
|
20116
20375
|
];
|
|
20117
20376
|
|
|
@@ -20595,73 +20854,6 @@ var uiTransforms = [
|
|
|
20595
20854
|
|
|
20596
20855
|
// ../blocks/src/system/transforms/registry/layout.ts
|
|
20597
20856
|
import { z as z38 } from "zod";
|
|
20598
|
-
|
|
20599
|
-
// ../theme-core/src/palette/utils/colorConversion.ts
|
|
20600
|
-
var mod = (a, n) => (a % n + n) % n;
|
|
20601
|
-
var deg = (x) => mod(x, 360);
|
|
20602
|
-
function hexToRgb(hex) {
|
|
20603
|
-
const h = hex.replace(/^#/, "");
|
|
20604
|
-
const m = h.length === 3 ? h.split("").map((c) => c + c).join("") : h;
|
|
20605
|
-
if (m.length !== 6) throw new Error("Bad hex");
|
|
20606
|
-
const int = parseInt(m, 16);
|
|
20607
|
-
return { r: int >> 16 & 255, g: int >> 8 & 255, b: int & 255 };
|
|
20608
|
-
}
|
|
20609
|
-
function srgbToLinear(u) {
|
|
20610
|
-
const x = u / 255;
|
|
20611
|
-
return x <= 0.04045 ? x / 12.92 : Math.pow((x + 0.055) / 1.055, 2.4);
|
|
20612
|
-
}
|
|
20613
|
-
function rgbToHsl(r, g, b) {
|
|
20614
|
-
const R = r / 255, G = g / 255, B = b / 255;
|
|
20615
|
-
const max = Math.max(R, G, B), min = Math.min(R, G, B);
|
|
20616
|
-
const d = max - min;
|
|
20617
|
-
let h = 0;
|
|
20618
|
-
if (d !== 0) {
|
|
20619
|
-
switch (max) {
|
|
20620
|
-
case R:
|
|
20621
|
-
h = (G - B) / d + (G < B ? 6 : 0);
|
|
20622
|
-
break;
|
|
20623
|
-
case G:
|
|
20624
|
-
h = (B - R) / d + 2;
|
|
20625
|
-
break;
|
|
20626
|
-
case B:
|
|
20627
|
-
h = (R - G) / d + 4;
|
|
20628
|
-
break;
|
|
20629
|
-
}
|
|
20630
|
-
h *= 60;
|
|
20631
|
-
}
|
|
20632
|
-
const l = (max + min) / 2;
|
|
20633
|
-
const s = d === 0 ? 0 : d / (1 - Math.abs(2 * l - 1));
|
|
20634
|
-
return { h, s, l };
|
|
20635
|
-
}
|
|
20636
|
-
function srgbToOklab(r, g, b) {
|
|
20637
|
-
const R = srgbToLinear(r), G = srgbToLinear(g), B = srgbToLinear(b);
|
|
20638
|
-
const l = 0.4122214708 * R + 0.5363325363 * G + 0.0514459929 * B;
|
|
20639
|
-
const m = 0.2119034982 * R + 0.6806995451 * G + 0.1073969566 * B;
|
|
20640
|
-
const s = 0.0883024619 * R + 0.2817188376 * G + 0.6299787005 * B;
|
|
20641
|
-
const l_ = Math.cbrt(l), m_ = Math.cbrt(m), s_ = Math.cbrt(s);
|
|
20642
|
-
const L = 0.2104542553 * l_ + 0.793617785 * m_ - 0.0040720468 * s_;
|
|
20643
|
-
const a = 1.9779984951 * l_ - 2.428592205 * m_ + 0.4505937099 * s_;
|
|
20644
|
-
const b2 = 0.0259040371 * l_ + 0.7827717662 * m_ - 0.808675766 * s_;
|
|
20645
|
-
return { L, a, b: b2 };
|
|
20646
|
-
}
|
|
20647
|
-
function oklabToOklch(L, a, b) {
|
|
20648
|
-
const C = Math.sqrt(a * a + b * b);
|
|
20649
|
-
const h = C < 1e-7 ? 0 : deg(Math.atan2(b, a) * 180 / Math.PI);
|
|
20650
|
-
return { L, C, h };
|
|
20651
|
-
}
|
|
20652
|
-
function featuresFromHex(hex) {
|
|
20653
|
-
const { r, g, b } = hexToRgb(hex);
|
|
20654
|
-
const { h, s, l } = rgbToHsl(r, g, b);
|
|
20655
|
-
const { L, a, b: b2 } = srgbToOklab(r, g, b);
|
|
20656
|
-
const { L: okL, C: okC, h: okH } = oklabToOklch(L, a, b2);
|
|
20657
|
-
const max = Math.max(r, g, b);
|
|
20658
|
-
const v = max / 255;
|
|
20659
|
-
const Y = 0.2126 * srgbToLinear(r) + 0.7152 * srgbToLinear(g) + 0.0722 * srgbToLinear(b);
|
|
20660
|
-
const chroma = s;
|
|
20661
|
-
return { r, g, b, h, s, l, v, Y, chroma, okL, okC, okH, hex };
|
|
20662
|
-
}
|
|
20663
|
-
|
|
20664
|
-
// ../blocks/src/system/transforms/registry/layout.ts
|
|
20665
20857
|
var joinClasses4 = (parts) => parts.filter(
|
|
20666
20858
|
(part) => typeof part === "string" && part.trim().length > 0
|
|
20667
20859
|
).join(" ").replace(/\s+/g, " ").trim();
|
|
@@ -25345,7 +25537,12 @@ var eventListingBlockDefinition = {
|
|
|
25345
25537
|
detailLevel: "listing",
|
|
25346
25538
|
kind: { $bind: { from: "content.kind" } },
|
|
25347
25539
|
eventSurface: { $bind: { from: "content.eventSurface" } },
|
|
25348
|
-
eventPresets: {
|
|
25540
|
+
eventPresets: {
|
|
25541
|
+
$bind: {
|
|
25542
|
+
from: "content.filterEventPresets",
|
|
25543
|
+
transforms: [{ id: "value.csv" }]
|
|
25544
|
+
}
|
|
25545
|
+
},
|
|
25349
25546
|
scheduleScope: { $bind: { from: "content.scheduleScope" } }
|
|
25350
25547
|
},
|
|
25351
25548
|
mode: "server"
|
|
@@ -26097,7 +26294,12 @@ var eventCalendarBlockDefinition = {
|
|
|
26097
26294
|
// Pass filter params if configured
|
|
26098
26295
|
kind: { $bind: { from: "content.kind" } },
|
|
26099
26296
|
eventSurface: { $bind: { from: "content.eventSurface" } },
|
|
26100
|
-
eventPresets: {
|
|
26297
|
+
eventPresets: {
|
|
26298
|
+
$bind: {
|
|
26299
|
+
from: "content.filterEventPresets",
|
|
26300
|
+
transforms: [{ id: "value.csv" }]
|
|
26301
|
+
}
|
|
26302
|
+
},
|
|
26101
26303
|
scheduleScope: { $bind: { from: "content.scheduleScope" } },
|
|
26102
26304
|
categoryIds: { $bind: { from: "content.filterCategoryIds" } },
|
|
26103
26305
|
staffMemberId: { $bind: { from: "content.filterStaffMemberId" } },
|