@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/routing.mjs
CHANGED
|
@@ -8,6 +8,22 @@ var __export = (target, all) => {
|
|
|
8
8
|
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
9
|
};
|
|
10
10
|
|
|
11
|
+
// ../api/src/apiEndpointTypes.ts
|
|
12
|
+
function blockedDemoMutationPolicy(classification, publicMessage) {
|
|
13
|
+
if (publicMessage.trim() === "") {
|
|
14
|
+
throw new Error(`Demo mutation policy ${classification} requires publicMessage.`);
|
|
15
|
+
}
|
|
16
|
+
return {
|
|
17
|
+
classification,
|
|
18
|
+
publicMessage
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
var init_apiEndpointTypes = __esm({
|
|
22
|
+
"../api/src/apiEndpointTypes.ts"() {
|
|
23
|
+
"use strict";
|
|
24
|
+
}
|
|
25
|
+
});
|
|
26
|
+
|
|
11
27
|
// ../api/src/cache-tags.ts
|
|
12
28
|
var TAG_TEMPLATES;
|
|
13
29
|
var init_cache_tags = __esm({
|
|
@@ -44,11 +60,24 @@ var init_cache_tags = __esm({
|
|
|
44
60
|
});
|
|
45
61
|
|
|
46
62
|
// ../api/src/endpoints.ts
|
|
47
|
-
var ENDPOINT_DEFINITIONS;
|
|
63
|
+
var DEMO_MUTATION_BLOCKED_HIDDEN, DEMO_MUTATION_BLOCKED_DISABLED, DEMO_MUTATION_INTERNAL_ONLY, ENDPOINT_DEFINITIONS;
|
|
48
64
|
var init_endpoints = __esm({
|
|
49
65
|
"../api/src/endpoints.ts"() {
|
|
50
66
|
"use strict";
|
|
67
|
+
init_apiEndpointTypes();
|
|
51
68
|
init_cache_tags();
|
|
69
|
+
DEMO_MUTATION_BLOCKED_HIDDEN = blockedDemoMutationPolicy(
|
|
70
|
+
"blocked-hidden",
|
|
71
|
+
"This action is not available in demo sites."
|
|
72
|
+
);
|
|
73
|
+
DEMO_MUTATION_BLOCKED_DISABLED = blockedDemoMutationPolicy(
|
|
74
|
+
"blocked-disabled",
|
|
75
|
+
"This setting is disabled in demo sites."
|
|
76
|
+
);
|
|
77
|
+
DEMO_MUTATION_INTERNAL_ONLY = blockedDemoMutationPolicy(
|
|
78
|
+
"internal-only",
|
|
79
|
+
"This internal operation is not available in demo sites."
|
|
80
|
+
);
|
|
52
81
|
ENDPOINT_DEFINITIONS = {
|
|
53
82
|
// AI endpoints - no cache due to dynamic nature
|
|
54
83
|
aiContentUpdateChat: {
|
|
@@ -165,7 +194,8 @@ var init_endpoints = __esm({
|
|
|
165
194
|
path: "/sites/{siteId}/ai/generate",
|
|
166
195
|
method: "POST",
|
|
167
196
|
auth: "user",
|
|
168
|
-
responseKind: "json"
|
|
197
|
+
responseKind: "json",
|
|
198
|
+
demoMutation: DEMO_MUTATION_BLOCKED_HIDDEN
|
|
169
199
|
},
|
|
170
200
|
getOnboardingPreviewStatus: {
|
|
171
201
|
path: "/public/sites/{siteId}/onboarding/preview-status",
|
|
@@ -186,7 +216,8 @@ var init_endpoints = __esm({
|
|
|
186
216
|
method: "POST",
|
|
187
217
|
auth: "user",
|
|
188
218
|
errors: [],
|
|
189
|
-
responseKind: "json"
|
|
219
|
+
responseKind: "json",
|
|
220
|
+
demoMutation: DEMO_MUTATION_BLOCKED_DISABLED
|
|
190
221
|
},
|
|
191
222
|
goLiveSite: {
|
|
192
223
|
path: "/sites/{siteId}/launch/go-live",
|
|
@@ -255,20 +286,23 @@ var init_endpoints = __esm({
|
|
|
255
286
|
path: "/sites/{siteId}/ai/site-wizard/goals",
|
|
256
287
|
method: "POST",
|
|
257
288
|
auth: "user",
|
|
258
|
-
responseKind: "json"
|
|
289
|
+
responseKind: "json",
|
|
290
|
+
demoMutation: DEMO_MUTATION_BLOCKED_HIDDEN
|
|
259
291
|
},
|
|
260
292
|
aiSiteWizardIntakeTriage: {
|
|
261
293
|
path: "/sites/{siteId}/ai/site-wizard/intake-triage",
|
|
262
294
|
method: "POST",
|
|
263
295
|
auth: "user",
|
|
264
|
-
responseKind: "json"
|
|
296
|
+
responseKind: "json",
|
|
297
|
+
demoMutation: DEMO_MUTATION_BLOCKED_HIDDEN
|
|
265
298
|
},
|
|
266
299
|
aiSiteWizardTelemetry: {
|
|
267
300
|
path: "/sites/{siteId}/ai/site-wizard/telemetry",
|
|
268
301
|
method: "POST",
|
|
269
302
|
auth: "user",
|
|
270
303
|
errors: [],
|
|
271
|
-
responseKind: "json"
|
|
304
|
+
responseKind: "json",
|
|
305
|
+
demoMutation: DEMO_MUTATION_BLOCKED_HIDDEN
|
|
272
306
|
},
|
|
273
307
|
// Admin SEO
|
|
274
308
|
listGscPropertiesAdmin: {
|
|
@@ -475,7 +509,7 @@ var init_endpoints = __esm({
|
|
|
475
509
|
responseKind: "json",
|
|
476
510
|
errors: ["resource:not_found", "server:internal_error"]
|
|
477
511
|
},
|
|
478
|
-
// Ops (event
|
|
512
|
+
// Ops (staff event operators/admins)
|
|
479
513
|
opsListUpcomingEventOccurrences: {
|
|
480
514
|
path: "/ops/sites/{siteId}/events",
|
|
481
515
|
method: "GET",
|
|
@@ -493,6 +527,7 @@ var init_endpoints = __esm({
|
|
|
493
527
|
method: "POST",
|
|
494
528
|
auth: "user",
|
|
495
529
|
responseKind: "json",
|
|
530
|
+
demoMutation: DEMO_MUTATION_INTERNAL_ONLY,
|
|
496
531
|
errors: [
|
|
497
532
|
"validation:invalid_input",
|
|
498
533
|
"auth:forbidden",
|
|
@@ -505,6 +540,7 @@ var init_endpoints = __esm({
|
|
|
505
540
|
method: "POST",
|
|
506
541
|
auth: "user",
|
|
507
542
|
responseKind: "json",
|
|
543
|
+
demoMutation: DEMO_MUTATION_INTERNAL_ONLY,
|
|
508
544
|
errors: [
|
|
509
545
|
"validation:invalid_input",
|
|
510
546
|
"auth:forbidden",
|
|
@@ -523,6 +559,7 @@ var init_endpoints = __esm({
|
|
|
523
559
|
method: "POST",
|
|
524
560
|
auth: "user",
|
|
525
561
|
responseKind: "json",
|
|
562
|
+
demoMutation: DEMO_MUTATION_INTERNAL_ONLY,
|
|
526
563
|
errors: [
|
|
527
564
|
"validation:invalid_input",
|
|
528
565
|
"auth:forbidden",
|
|
@@ -556,6 +593,7 @@ var init_endpoints = __esm({
|
|
|
556
593
|
method: "POST",
|
|
557
594
|
auth: "user",
|
|
558
595
|
responseKind: "json",
|
|
596
|
+
demoMutation: DEMO_MUTATION_INTERNAL_ONLY,
|
|
559
597
|
errors: [
|
|
560
598
|
"validation:invalid_input",
|
|
561
599
|
"auth:forbidden",
|
|
@@ -584,7 +622,8 @@ var init_endpoints = __esm({
|
|
|
584
622
|
method: "POST",
|
|
585
623
|
tags: [TAG_TEMPLATES.site, TAG_TEMPLATES.siteEmailSettings],
|
|
586
624
|
auth: "user",
|
|
587
|
-
responseKind: "json"
|
|
625
|
+
responseKind: "json",
|
|
626
|
+
demoMutation: DEMO_MUTATION_BLOCKED_HIDDEN
|
|
588
627
|
},
|
|
589
628
|
previewEmailTemplate: {
|
|
590
629
|
path: "/sites/{siteId}/settings/emails/preview",
|
|
@@ -635,14 +674,16 @@ var init_endpoints = __esm({
|
|
|
635
674
|
method: "POST",
|
|
636
675
|
tags: [TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter],
|
|
637
676
|
auth: "user",
|
|
638
|
-
responseKind: "json"
|
|
677
|
+
responseKind: "json",
|
|
678
|
+
demoMutation: DEMO_MUTATION_BLOCKED_HIDDEN
|
|
639
679
|
},
|
|
640
680
|
createNewsletterSubscribersImportUploadUrl: {
|
|
641
681
|
path: "/sites/{siteId}/newsletter/subscribers/import-url",
|
|
642
682
|
method: "POST",
|
|
643
683
|
tags: [TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter],
|
|
644
684
|
auth: "user",
|
|
645
|
-
responseKind: "json"
|
|
685
|
+
responseKind: "json",
|
|
686
|
+
demoMutation: DEMO_MUTATION_BLOCKED_HIDDEN
|
|
646
687
|
},
|
|
647
688
|
exportNewsletterSubscribersCsv: {
|
|
648
689
|
path: "/sites/{siteId}/newsletter/subscribers/export.csv",
|
|
@@ -839,14 +880,16 @@ var init_endpoints = __esm({
|
|
|
839
880
|
method: "POST",
|
|
840
881
|
tags: [TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter],
|
|
841
882
|
auth: "user",
|
|
842
|
-
responseKind: "json"
|
|
883
|
+
responseKind: "json",
|
|
884
|
+
demoMutation: DEMO_MUTATION_BLOCKED_HIDDEN
|
|
843
885
|
},
|
|
844
886
|
testSendNewsletterCampaign: {
|
|
845
887
|
path: "/sites/{siteId}/newsletter/campaigns/{campaignId}/test-send",
|
|
846
888
|
method: "POST",
|
|
847
889
|
tags: [TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter],
|
|
848
890
|
auth: "user",
|
|
849
|
-
responseKind: "json"
|
|
891
|
+
responseKind: "json",
|
|
892
|
+
demoMutation: DEMO_MUTATION_BLOCKED_HIDDEN
|
|
850
893
|
},
|
|
851
894
|
listNewsletterSendJobs: {
|
|
852
895
|
path: "/sites/{siteId}/newsletter/jobs",
|
|
@@ -894,6 +937,20 @@ var init_endpoints = __esm({
|
|
|
894
937
|
responseKind: "json",
|
|
895
938
|
errors: ["validation:invalid_input", "billing:plan_limit_exceeded", "server:internal_error"]
|
|
896
939
|
},
|
|
940
|
+
createAppointmentResourceWithAccountAccess: {
|
|
941
|
+
path: "/sites/{siteId}/bookings/resources/account-access",
|
|
942
|
+
method: "POST",
|
|
943
|
+
auth: "user",
|
|
944
|
+
responseKind: "json",
|
|
945
|
+
errors: [
|
|
946
|
+
"validation:invalid_input",
|
|
947
|
+
"auth:forbidden",
|
|
948
|
+
"billing:plan_limit_exceeded",
|
|
949
|
+
"resource:conflict",
|
|
950
|
+
"resource:not_found",
|
|
951
|
+
"server:internal_error"
|
|
952
|
+
]
|
|
953
|
+
},
|
|
897
954
|
getAppointmentResource: {
|
|
898
955
|
path: "/sites/{siteId}/bookings/resources/{resourceId}",
|
|
899
956
|
method: "GET",
|
|
@@ -1534,7 +1591,8 @@ var init_endpoints = __esm({
|
|
|
1534
1591
|
method: "DELETE",
|
|
1535
1592
|
tags: ["site", "site-{siteId}"],
|
|
1536
1593
|
auth: "user",
|
|
1537
|
-
responseKind: "json"
|
|
1594
|
+
responseKind: "json",
|
|
1595
|
+
demoMutation: DEMO_MUTATION_BLOCKED_HIDDEN
|
|
1538
1596
|
},
|
|
1539
1597
|
listSiteMembers: {
|
|
1540
1598
|
path: "/sites/{siteId}/members",
|
|
@@ -1990,7 +2048,8 @@ var init_endpoints = __esm({
|
|
|
1990
2048
|
method: "POST",
|
|
1991
2049
|
tags: ["site-{siteId}", "content-{siteId}-{type}"],
|
|
1992
2050
|
auth: "user",
|
|
1993
|
-
responseKind: "json"
|
|
2051
|
+
responseKind: "json",
|
|
2052
|
+
demoMutation: DEMO_MUTATION_BLOCKED_HIDDEN
|
|
1994
2053
|
},
|
|
1995
2054
|
updateSiteGeneralSettings: {
|
|
1996
2055
|
path: "/sites/{siteId}/settings/general",
|
|
@@ -4229,6 +4288,7 @@ var init_endpoints = __esm({
|
|
|
4229
4288
|
method: "POST",
|
|
4230
4289
|
tags: ["site-{siteId}"],
|
|
4231
4290
|
auth: "user",
|
|
4291
|
+
demoMutation: DEMO_MUTATION_BLOCKED_HIDDEN,
|
|
4232
4292
|
errors: [
|
|
4233
4293
|
"validation:invalid_input",
|
|
4234
4294
|
"auth:forbidden",
|
|
@@ -4243,6 +4303,7 @@ var init_endpoints = __esm({
|
|
|
4243
4303
|
method: "POST",
|
|
4244
4304
|
tags: ["site-{siteId}"],
|
|
4245
4305
|
auth: "user",
|
|
4306
|
+
demoMutation: DEMO_MUTATION_BLOCKED_HIDDEN,
|
|
4246
4307
|
errors: [
|
|
4247
4308
|
"validation:invalid_input",
|
|
4248
4309
|
"auth:forbidden",
|
|
@@ -4552,6 +4613,7 @@ var init_endpoints = __esm({
|
|
|
4552
4613
|
tags: ["site-{siteId}", "passes-{siteId}"],
|
|
4553
4614
|
auth: "user",
|
|
4554
4615
|
responseKind: "json",
|
|
4616
|
+
demoMutation: DEMO_MUTATION_BLOCKED_DISABLED,
|
|
4555
4617
|
errors: ["validation:invalid_input", "server:internal_error"]
|
|
4556
4618
|
},
|
|
4557
4619
|
getBookingPass: {
|
|
@@ -4567,6 +4629,7 @@ var init_endpoints = __esm({
|
|
|
4567
4629
|
tags: ["site-{siteId}", "passes-{siteId}"],
|
|
4568
4630
|
auth: "user",
|
|
4569
4631
|
responseKind: "json",
|
|
4632
|
+
demoMutation: DEMO_MUTATION_BLOCKED_DISABLED,
|
|
4570
4633
|
errors: [
|
|
4571
4634
|
"validation:invalid_input",
|
|
4572
4635
|
"resource:not_found",
|
|
@@ -4579,6 +4642,7 @@ var init_endpoints = __esm({
|
|
|
4579
4642
|
tags: ["site-{siteId}", "passes-{siteId}"],
|
|
4580
4643
|
auth: "user",
|
|
4581
4644
|
responseKind: "json",
|
|
4645
|
+
demoMutation: DEMO_MUTATION_BLOCKED_DISABLED,
|
|
4582
4646
|
errors: [
|
|
4583
4647
|
"validation:invalid_input",
|
|
4584
4648
|
"resource:not_found",
|
|
@@ -4634,6 +4698,7 @@ var init_endpoints = __esm({
|
|
|
4634
4698
|
tags: ["site-{siteId}", "memberships-{siteId}"],
|
|
4635
4699
|
auth: "user",
|
|
4636
4700
|
responseKind: "json",
|
|
4701
|
+
demoMutation: DEMO_MUTATION_BLOCKED_DISABLED,
|
|
4637
4702
|
errors: ["validation:invalid_input", "server:internal_error"]
|
|
4638
4703
|
},
|
|
4639
4704
|
getBookingMembership: {
|
|
@@ -4649,6 +4714,7 @@ var init_endpoints = __esm({
|
|
|
4649
4714
|
tags: ["site-{siteId}", "memberships-{siteId}"],
|
|
4650
4715
|
auth: "user",
|
|
4651
4716
|
responseKind: "json",
|
|
4717
|
+
demoMutation: DEMO_MUTATION_BLOCKED_DISABLED,
|
|
4652
4718
|
errors: [
|
|
4653
4719
|
"validation:invalid_input",
|
|
4654
4720
|
"resource:not_found",
|
|
@@ -4661,6 +4727,7 @@ var init_endpoints = __esm({
|
|
|
4661
4727
|
tags: ["site-{siteId}", "memberships-{siteId}"],
|
|
4662
4728
|
auth: "user",
|
|
4663
4729
|
responseKind: "json",
|
|
4730
|
+
demoMutation: DEMO_MUTATION_BLOCKED_DISABLED,
|
|
4664
4731
|
errors: [
|
|
4665
4732
|
"validation:invalid_input",
|
|
4666
4733
|
"resource:not_found",
|
|
@@ -4877,6 +4944,7 @@ var init_endpoints = __esm({
|
|
|
4877
4944
|
tags: ["site-{siteId}", "customers-{siteId}"],
|
|
4878
4945
|
auth: "user",
|
|
4879
4946
|
responseKind: "json",
|
|
4947
|
+
demoMutation: DEMO_MUTATION_BLOCKED_DISABLED,
|
|
4880
4948
|
errors: [
|
|
4881
4949
|
"validation:invalid_input",
|
|
4882
4950
|
"auth:forbidden",
|
|
@@ -6950,6 +7018,7 @@ var init_validation_constants = __esm({
|
|
|
6950
7018
|
"date.formatShort",
|
|
6951
7019
|
"array.length",
|
|
6952
7020
|
"value.jsonArray",
|
|
7021
|
+
"value.csv",
|
|
6953
7022
|
"array.marqueeLoop",
|
|
6954
7023
|
// Layout (layout.ts)
|
|
6955
7024
|
"layout.maxWidthClass",
|
|
@@ -7768,8 +7837,7 @@ var init_contracts2 = __esm({
|
|
|
7768
7837
|
dashboardNavVisibilityRolesSchema = z5.object({
|
|
7769
7838
|
administrator: dashboardNavVisibilityBaseSchema.optional(),
|
|
7770
7839
|
editor: dashboardNavVisibilityBaseSchema.optional(),
|
|
7771
|
-
team_member: dashboardNavVisibilityBaseSchema.optional()
|
|
7772
|
-
event_host: dashboardNavVisibilityBaseSchema.optional()
|
|
7840
|
+
team_member: dashboardNavVisibilityBaseSchema.optional()
|
|
7773
7841
|
}).strip().optional();
|
|
7774
7842
|
dashboardNavVisibilitySchema = dashboardNavVisibilityBaseSchema.extend({
|
|
7775
7843
|
roles: dashboardNavVisibilityRolesSchema
|
|
@@ -8406,6 +8474,21 @@ var init_appointmentSetup = __esm({
|
|
|
8406
8474
|
timezone: z7.string().trim().min(1).nullable(),
|
|
8407
8475
|
payment: appointmentSetupPaymentDraftSchema,
|
|
8408
8476
|
assignment: appointmentSetupServiceAssignmentDraftSchema
|
|
8477
|
+
}).superRefine((service, ctx) => {
|
|
8478
|
+
if (service.payment.priceType === "paid" && (service.priceAmount === null || service.priceAmount <= 0)) {
|
|
8479
|
+
ctx.addIssue({
|
|
8480
|
+
code: "custom",
|
|
8481
|
+
path: ["priceAmount"],
|
|
8482
|
+
message: "Paid appointment services need a positive price."
|
|
8483
|
+
});
|
|
8484
|
+
}
|
|
8485
|
+
if (service.payment.priceType === "free" && service.priceAmount !== null && service.priceAmount > 0) {
|
|
8486
|
+
ctx.addIssue({
|
|
8487
|
+
code: "custom",
|
|
8488
|
+
path: ["priceAmount"],
|
|
8489
|
+
message: "Free appointment services cannot carry a positive price."
|
|
8490
|
+
});
|
|
8491
|
+
}
|
|
8409
8492
|
});
|
|
8410
8493
|
appointmentSetupPractitionerDraftSchema = z7.object({
|
|
8411
8494
|
ref: appointmentSetupRefSchema,
|
|
@@ -9078,6 +9161,101 @@ var init_manifest = __esm({
|
|
|
9078
9161
|
}
|
|
9079
9162
|
});
|
|
9080
9163
|
|
|
9164
|
+
// ../theme-core/src/palette/utils/colorConversion.ts
|
|
9165
|
+
function hexToRgb(hex) {
|
|
9166
|
+
const h = hex.replace(/^#/, "");
|
|
9167
|
+
const m = h.length === 3 ? h.split("").map((c) => c + c).join("") : h;
|
|
9168
|
+
if (m.length !== 6) throw new Error("Bad hex");
|
|
9169
|
+
const int = parseInt(m, 16);
|
|
9170
|
+
return { r: int >> 16 & 255, g: int >> 8 & 255, b: int & 255 };
|
|
9171
|
+
}
|
|
9172
|
+
function srgbToLinear(u) {
|
|
9173
|
+
const x = u / 255;
|
|
9174
|
+
return x <= 0.04045 ? x / 12.92 : Math.pow((x + 0.055) / 1.055, 2.4);
|
|
9175
|
+
}
|
|
9176
|
+
function rgbToHsl(r, g, b) {
|
|
9177
|
+
const R = r / 255, G = g / 255, B = b / 255;
|
|
9178
|
+
const max = Math.max(R, G, B), min = Math.min(R, G, B);
|
|
9179
|
+
const d = max - min;
|
|
9180
|
+
let h = 0;
|
|
9181
|
+
if (d !== 0) {
|
|
9182
|
+
switch (max) {
|
|
9183
|
+
case R:
|
|
9184
|
+
h = (G - B) / d + (G < B ? 6 : 0);
|
|
9185
|
+
break;
|
|
9186
|
+
case G:
|
|
9187
|
+
h = (B - R) / d + 2;
|
|
9188
|
+
break;
|
|
9189
|
+
case B:
|
|
9190
|
+
h = (R - G) / d + 4;
|
|
9191
|
+
break;
|
|
9192
|
+
}
|
|
9193
|
+
h *= 60;
|
|
9194
|
+
}
|
|
9195
|
+
const l = (max + min) / 2;
|
|
9196
|
+
const s = d === 0 ? 0 : d / (1 - Math.abs(2 * l - 1));
|
|
9197
|
+
return { h, s, l };
|
|
9198
|
+
}
|
|
9199
|
+
function srgbToOklab(r, g, b) {
|
|
9200
|
+
const R = srgbToLinear(r), G = srgbToLinear(g), B = srgbToLinear(b);
|
|
9201
|
+
const l = 0.4122214708 * R + 0.5363325363 * G + 0.0514459929 * B;
|
|
9202
|
+
const m = 0.2119034982 * R + 0.6806995451 * G + 0.1073969566 * B;
|
|
9203
|
+
const s = 0.0883024619 * R + 0.2817188376 * G + 0.6299787005 * B;
|
|
9204
|
+
const l_ = Math.cbrt(l), m_ = Math.cbrt(m), s_ = Math.cbrt(s);
|
|
9205
|
+
const L = 0.2104542553 * l_ + 0.793617785 * m_ - 0.0040720468 * s_;
|
|
9206
|
+
const a = 1.9779984951 * l_ - 2.428592205 * m_ + 0.4505937099 * s_;
|
|
9207
|
+
const b2 = 0.0259040371 * l_ + 0.7827717662 * m_ - 0.808675766 * s_;
|
|
9208
|
+
return { L, a, b: b2 };
|
|
9209
|
+
}
|
|
9210
|
+
function oklabToOklch(L, a, b) {
|
|
9211
|
+
const C = Math.sqrt(a * a + b * b);
|
|
9212
|
+
const h = C < 1e-7 ? 0 : deg(Math.atan2(b, a) * 180 / Math.PI);
|
|
9213
|
+
return { L, C, h };
|
|
9214
|
+
}
|
|
9215
|
+
function featuresFromHex(hex) {
|
|
9216
|
+
const { r, g, b } = hexToRgb(hex);
|
|
9217
|
+
const { h, s, l } = rgbToHsl(r, g, b);
|
|
9218
|
+
const { L, a, b: b2 } = srgbToOklab(r, g, b);
|
|
9219
|
+
const { L: okL, C: okC, h: okH } = oklabToOklch(L, a, b2);
|
|
9220
|
+
const max = Math.max(r, g, b);
|
|
9221
|
+
const v = max / 255;
|
|
9222
|
+
const Y = 0.2126 * srgbToLinear(r) + 0.7152 * srgbToLinear(g) + 0.0722 * srgbToLinear(b);
|
|
9223
|
+
const chroma = s;
|
|
9224
|
+
return { r, g, b, h, s, l, v, Y, chroma, okL, okC, okH, hex };
|
|
9225
|
+
}
|
|
9226
|
+
var mod, deg;
|
|
9227
|
+
var init_colorConversion = __esm({
|
|
9228
|
+
"../theme-core/src/palette/utils/colorConversion.ts"() {
|
|
9229
|
+
"use strict";
|
|
9230
|
+
mod = (a, n) => (a % n + n) % n;
|
|
9231
|
+
deg = (x) => mod(x, 360);
|
|
9232
|
+
}
|
|
9233
|
+
});
|
|
9234
|
+
|
|
9235
|
+
// ../theme-core/src/palette/utils/contrast.ts
|
|
9236
|
+
var init_contrast = __esm({
|
|
9237
|
+
"../theme-core/src/palette/utils/contrast.ts"() {
|
|
9238
|
+
"use strict";
|
|
9239
|
+
init_colorConversion();
|
|
9240
|
+
}
|
|
9241
|
+
});
|
|
9242
|
+
|
|
9243
|
+
// ../theme-core/src/palette/utils/onColor.ts
|
|
9244
|
+
var init_onColor = __esm({
|
|
9245
|
+
"../theme-core/src/palette/utils/onColor.ts"() {
|
|
9246
|
+
"use strict";
|
|
9247
|
+
}
|
|
9248
|
+
});
|
|
9249
|
+
|
|
9250
|
+
// ../theme-core/src/site-styles/accessibleSurfaces.ts
|
|
9251
|
+
var init_accessibleSurfaces = __esm({
|
|
9252
|
+
"../theme-core/src/site-styles/accessibleSurfaces.ts"() {
|
|
9253
|
+
"use strict";
|
|
9254
|
+
init_contrast();
|
|
9255
|
+
init_onColor();
|
|
9256
|
+
}
|
|
9257
|
+
});
|
|
9258
|
+
|
|
9081
9259
|
// ../theme-core/src/site-styles/appearancePresetResolution.ts
|
|
9082
9260
|
function assertValidOptionGroups(preset2) {
|
|
9083
9261
|
preset2.optionGroups?.forEach((group) => {
|
|
@@ -11075,7 +11253,7 @@ var init_constants = __esm({
|
|
|
11075
11253
|
});
|
|
11076
11254
|
|
|
11077
11255
|
// ../theme-core/src/buttons/utils/contrast.ts
|
|
11078
|
-
var
|
|
11256
|
+
var init_contrast2 = __esm({
|
|
11079
11257
|
"../theme-core/src/buttons/utils/contrast.ts"() {
|
|
11080
11258
|
"use strict";
|
|
11081
11259
|
}
|
|
@@ -11085,7 +11263,7 @@ var init_contrast = __esm({
|
|
|
11085
11263
|
var init_generateDefaultButtonSystem = __esm({
|
|
11086
11264
|
"../theme-core/src/buttons/generateDefaultButtonSystem.ts"() {
|
|
11087
11265
|
"use strict";
|
|
11088
|
-
|
|
11266
|
+
init_contrast2();
|
|
11089
11267
|
}
|
|
11090
11268
|
});
|
|
11091
11269
|
|
|
@@ -13227,7 +13405,8 @@ function defineCuratedSiteStyle(input) {
|
|
|
13227
13405
|
name: input.name,
|
|
13228
13406
|
description: input.description,
|
|
13229
13407
|
generationBrief: input.generationBrief,
|
|
13230
|
-
|
|
13408
|
+
selectionKeywordRules: input.selectionKeywordRules ?? [],
|
|
13409
|
+
siteCreatorSelection: input.siteCreatorSelection ?? { kind: "explicit_only" },
|
|
13231
13410
|
template: {
|
|
13232
13411
|
id: asDesignSystemTemplateId(`template:${input.id.replace("site-style:", "")}`),
|
|
13233
13412
|
name: input.name,
|
|
@@ -13272,6 +13451,9 @@ var init_curatedSiteStyles = __esm({
|
|
|
13272
13451
|
"site-style:bright-community",
|
|
13273
13452
|
"site-style:quiet-luxury",
|
|
13274
13453
|
"site-style:practical-services",
|
|
13454
|
+
"site-style:quiet-practice",
|
|
13455
|
+
"site-style:personal-retreat-journal",
|
|
13456
|
+
"site-style:tactile-workshop",
|
|
13275
13457
|
"site-style:modern-wellness",
|
|
13276
13458
|
"site-style:bold-launch",
|
|
13277
13459
|
"site-style:south-west-twerk-school"
|
|
@@ -13455,12 +13637,13 @@ var init_curatedSiteStyles = __esm({
|
|
|
13455
13637
|
name: "Quiet Luxury",
|
|
13456
13638
|
description: "Minimal, confident, and refined for premium experiences and private services.",
|
|
13457
13639
|
generationBrief: "Use fewer claims, more specificity, and restrained sensory detail. Favor elegant media and low repetition over dense panels.",
|
|
13458
|
-
|
|
13459
|
-
|
|
13460
|
-
"
|
|
13461
|
-
"
|
|
13462
|
-
"
|
|
13463
|
-
"
|
|
13640
|
+
siteCreatorSelection: { kind: "site_creator_keyword_heuristic", priority: 20 },
|
|
13641
|
+
selectionKeywordRules: [
|
|
13642
|
+
{ kind: "word", value: "luxury" },
|
|
13643
|
+
{ kind: "word", value: "premium" },
|
|
13644
|
+
{ kind: "word", value: "boutique" },
|
|
13645
|
+
{ kind: "word", value: "bespoke" },
|
|
13646
|
+
{ kind: "word", value: "exclusive" }
|
|
13464
13647
|
],
|
|
13465
13648
|
tokenRecipes: {
|
|
13466
13649
|
palette: "high-contrast",
|
|
@@ -13489,13 +13672,14 @@ var init_curatedSiteStyles = __esm({
|
|
|
13489
13672
|
name: "Practical Services",
|
|
13490
13673
|
description: "Efficient, plainspoken, and conversion-focused for trades and everyday services.",
|
|
13491
13674
|
generationBrief: "Make services, location, trust signals, and contact paths obvious. Keep copy brief and avoid ornate visual treatments.",
|
|
13492
|
-
|
|
13493
|
-
|
|
13494
|
-
"
|
|
13495
|
-
"
|
|
13496
|
-
"
|
|
13497
|
-
"
|
|
13498
|
-
"
|
|
13675
|
+
siteCreatorSelection: { kind: "primary_goal_support" },
|
|
13676
|
+
selectionKeywordRules: [
|
|
13677
|
+
{ kind: "word", value: "repair" },
|
|
13678
|
+
{ kind: "substring", value: "plumb" },
|
|
13679
|
+
{ kind: "substring", value: "electric" },
|
|
13680
|
+
{ kind: "word", value: "cleaning" },
|
|
13681
|
+
{ kind: "substring", value: "landscap" },
|
|
13682
|
+
{ kind: "substring", value: "contractor" }
|
|
13499
13683
|
],
|
|
13500
13684
|
tokenRecipes: {
|
|
13501
13685
|
palette: "brand-led",
|
|
@@ -13546,18 +13730,134 @@ var init_curatedSiteStyles = __esm({
|
|
|
13546
13730
|
paletteChoice("warm-neutral-forest")
|
|
13547
13731
|
]
|
|
13548
13732
|
}),
|
|
13733
|
+
defineCuratedSiteStyle({
|
|
13734
|
+
id: "site-style:quiet-practice",
|
|
13735
|
+
name: "Quiet Practice",
|
|
13736
|
+
description: "Grounded, calm, and practical for small appointment-first practices.",
|
|
13737
|
+
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.",
|
|
13738
|
+
siteCreatorSelection: { kind: "site_creator_keyword_heuristic", priority: 30 },
|
|
13739
|
+
selectionKeywordRules: [
|
|
13740
|
+
{ kind: "substring", value: "massage" },
|
|
13741
|
+
{ kind: "word", value: "bodywork" },
|
|
13742
|
+
{ kind: "phrase", value: "appointment practice" },
|
|
13743
|
+
{ kind: "phrase", value: "appointment-first" },
|
|
13744
|
+
{ kind: "substring", value: "practitioner" },
|
|
13745
|
+
{ kind: "substring", value: "therap" },
|
|
13746
|
+
{ kind: "substring", value: "clinic" },
|
|
13747
|
+
{ kind: "phrase", value: "wellness practice" }
|
|
13748
|
+
],
|
|
13749
|
+
tokenRecipes: {
|
|
13750
|
+
palette: "soft-natural",
|
|
13751
|
+
contrast: "standard",
|
|
13752
|
+
radius: "soft",
|
|
13753
|
+
shadow: "subtle",
|
|
13754
|
+
typography: "clean-sans",
|
|
13755
|
+
spacing: "regular",
|
|
13756
|
+
motion: "subtle"
|
|
13757
|
+
},
|
|
13758
|
+
compositionBudget: quietBudget,
|
|
13759
|
+
recommendedHeaderLookIds: ["practical-utility", "clean-base", "centered-calm"],
|
|
13760
|
+
buttonPersonalityChoices: [
|
|
13761
|
+
buttonChoice("pebble"),
|
|
13762
|
+
buttonChoice("soft-pill"),
|
|
13763
|
+
buttonChoice("editorial-link")
|
|
13764
|
+
],
|
|
13765
|
+
paletteVariantChoices: [
|
|
13766
|
+
paletteChoice("soft-natural-stone"),
|
|
13767
|
+
paletteChoice("soft-natural-sage"),
|
|
13768
|
+
paletteChoice("warm-neutral-clay")
|
|
13769
|
+
]
|
|
13770
|
+
}),
|
|
13771
|
+
defineCuratedSiteStyle({
|
|
13772
|
+
id: "site-style:personal-retreat-journal",
|
|
13773
|
+
name: "Personal Retreat Journal",
|
|
13774
|
+
description: "Warm, story-led, and readable for solo practitioners with mixed offers.",
|
|
13775
|
+
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.",
|
|
13776
|
+
siteCreatorSelection: { kind: "site_creator_keyword_heuristic", priority: 40 },
|
|
13777
|
+
selectionKeywordRules: [
|
|
13778
|
+
{ kind: "substring", value: "retreat" },
|
|
13779
|
+
{ kind: "phrase", value: "solo practitioner" },
|
|
13780
|
+
{ kind: "phrase", value: "personal brand" },
|
|
13781
|
+
{ kind: "substring", value: "teacher" },
|
|
13782
|
+
{ kind: "substring", value: "coach" },
|
|
13783
|
+
{ kind: "phrase", value: "retreat resources" },
|
|
13784
|
+
{ kind: "substring", value: "journal" }
|
|
13785
|
+
],
|
|
13786
|
+
tokenRecipes: {
|
|
13787
|
+
palette: "warm-neutral",
|
|
13788
|
+
contrast: "standard",
|
|
13789
|
+
radius: "soft",
|
|
13790
|
+
shadow: "subtle",
|
|
13791
|
+
typography: "serif-editorial",
|
|
13792
|
+
spacing: "airy",
|
|
13793
|
+
motion: "subtle"
|
|
13794
|
+
},
|
|
13795
|
+
compositionBudget: balancedBudget,
|
|
13796
|
+
recommendedHeaderLookIds: ["editorial-line", "centered-calm", "minimal-transparent"],
|
|
13797
|
+
buttonPersonalityChoices: [
|
|
13798
|
+
buttonChoice("editorial-link"),
|
|
13799
|
+
buttonChoice("soft-pill"),
|
|
13800
|
+
buttonChoice("brushed-wash")
|
|
13801
|
+
],
|
|
13802
|
+
paletteVariantChoices: [
|
|
13803
|
+
paletteChoice("warm-neutral-forest"),
|
|
13804
|
+
paletteChoice("warm-neutral-clay"),
|
|
13805
|
+
paletteChoice("soft-natural-stone")
|
|
13806
|
+
]
|
|
13807
|
+
}),
|
|
13808
|
+
defineCuratedSiteStyle({
|
|
13809
|
+
id: "site-style:tactile-workshop",
|
|
13810
|
+
name: "Tactile Workshop",
|
|
13811
|
+
description: "Bright, hands-on, and image-led for maker studios, workshops, and creative classes.",
|
|
13812
|
+
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.",
|
|
13813
|
+
siteCreatorSelection: { kind: "site_creator_keyword_heuristic", priority: 50 },
|
|
13814
|
+
selectionKeywordRules: [
|
|
13815
|
+
{ kind: "substring", value: "ceramic" },
|
|
13816
|
+
{ kind: "word", value: "pottery" },
|
|
13817
|
+
{ kind: "phrase", value: "maker studio" },
|
|
13818
|
+
{ kind: "phrase", value: "craft class" },
|
|
13819
|
+
{ kind: "phrase", value: "craft workshop" },
|
|
13820
|
+
{ kind: "word", value: "clay" },
|
|
13821
|
+
{ kind: "word", value: "kiln" }
|
|
13822
|
+
],
|
|
13823
|
+
tokenRecipes: {
|
|
13824
|
+
palette: "brand-led",
|
|
13825
|
+
contrast: "standard",
|
|
13826
|
+
radius: "soft",
|
|
13827
|
+
shadow: "subtle",
|
|
13828
|
+
typography: "friendly-sans",
|
|
13829
|
+
spacing: "regular",
|
|
13830
|
+
motion: "subtle"
|
|
13831
|
+
},
|
|
13832
|
+
compositionBudget: balancedBudget,
|
|
13833
|
+
recommendedHeaderLookIds: ["brand-solid", "practical-utility", "clean-base"],
|
|
13834
|
+
recommendedFooterLookIds: ["site-footer-brand-two-band", "footer-muted-grounding"],
|
|
13835
|
+
buttonPersonalityChoices: [
|
|
13836
|
+
buttonChoice("pebble"),
|
|
13837
|
+
buttonChoice("confident-chip"),
|
|
13838
|
+
buttonChoice("ink-stamp"),
|
|
13839
|
+
buttonChoice("editorial-link")
|
|
13840
|
+
],
|
|
13841
|
+
paletteVariantChoices: [
|
|
13842
|
+
paletteChoice("brand-led-warm"),
|
|
13843
|
+
paletteChoice("brand-led-cool"),
|
|
13844
|
+
paletteChoice("soft-natural-watercolor"),
|
|
13845
|
+
paletteChoice("warm-neutral-clay")
|
|
13846
|
+
]
|
|
13847
|
+
}),
|
|
13549
13848
|
defineCuratedSiteStyle({
|
|
13550
13849
|
id: "site-style:bold-launch",
|
|
13551
13850
|
name: "Bold Launch",
|
|
13552
13851
|
description: "High-energy and punchy for launches, campaigns, and creative offers.",
|
|
13553
13852
|
generationBrief: "Use crisp positioning, bold hero structure, strong calls to action, and confident visual rhythm. Keep it precise, not shouty.",
|
|
13554
|
-
|
|
13555
|
-
|
|
13556
|
-
"
|
|
13557
|
-
"
|
|
13558
|
-
"
|
|
13559
|
-
"
|
|
13560
|
-
"
|
|
13853
|
+
siteCreatorSelection: { kind: "site_creator_keyword_heuristic", priority: 10 },
|
|
13854
|
+
selectionKeywordRules: [
|
|
13855
|
+
{ kind: "substring", value: "launch" },
|
|
13856
|
+
{ kind: "substring", value: "campaign" },
|
|
13857
|
+
{ kind: "word", value: "preorder" },
|
|
13858
|
+
{ kind: "phrase", value: "pre-order" },
|
|
13859
|
+
{ kind: "substring", value: "waitlist" },
|
|
13860
|
+
{ kind: "word", value: "drop" }
|
|
13561
13861
|
],
|
|
13562
13862
|
tokenRecipes: {
|
|
13563
13863
|
palette: "high-contrast",
|
|
@@ -13588,15 +13888,6 @@ var init_curatedSiteStyles = __esm({
|
|
|
13588
13888
|
name: "South West Twerk School",
|
|
13589
13889
|
description: "Energetic, editorial, and high-contrast for a branded dance school presence.",
|
|
13590
13890
|
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.",
|
|
13591
|
-
selectionKeywords: [
|
|
13592
|
-
"dance",
|
|
13593
|
-
"classes",
|
|
13594
|
-
"workshop",
|
|
13595
|
-
"school",
|
|
13596
|
-
"movement",
|
|
13597
|
-
"performance",
|
|
13598
|
-
"community"
|
|
13599
|
-
],
|
|
13600
13891
|
tokenRecipes: {
|
|
13601
13892
|
palette: "brand-led",
|
|
13602
13893
|
contrast: "maximum",
|
|
@@ -13782,6 +14073,43 @@ var init_modern_minimal = __esm({
|
|
|
13782
14073
|
}
|
|
13783
14074
|
});
|
|
13784
14075
|
|
|
14076
|
+
// ../theme-core/src/palette/generateShades.ts
|
|
14077
|
+
var init_generateShades = __esm({
|
|
14078
|
+
"../theme-core/src/palette/generateShades.ts"() {
|
|
14079
|
+
"use strict";
|
|
14080
|
+
init_colorConversion();
|
|
14081
|
+
}
|
|
14082
|
+
});
|
|
14083
|
+
|
|
14084
|
+
// ../theme-core/src/palette/neutralScale.ts
|
|
14085
|
+
var init_neutralScale = __esm({
|
|
14086
|
+
"../theme-core/src/palette/neutralScale.ts"() {
|
|
14087
|
+
"use strict";
|
|
14088
|
+
init_colorConversion();
|
|
14089
|
+
}
|
|
14090
|
+
});
|
|
14091
|
+
|
|
14092
|
+
// ../theme-core/src/palette/utils/textColor.ts
|
|
14093
|
+
var init_textColor = __esm({
|
|
14094
|
+
"../theme-core/src/palette/utils/textColor.ts"() {
|
|
14095
|
+
"use strict";
|
|
14096
|
+
init_colorConversion();
|
|
14097
|
+
init_contrast();
|
|
14098
|
+
}
|
|
14099
|
+
});
|
|
14100
|
+
|
|
14101
|
+
// ../theme-core/src/palette/expandPalette.ts
|
|
14102
|
+
var init_expandPalette = __esm({
|
|
14103
|
+
"../theme-core/src/palette/expandPalette.ts"() {
|
|
14104
|
+
"use strict";
|
|
14105
|
+
init_generateShades();
|
|
14106
|
+
init_neutralScale();
|
|
14107
|
+
init_colorConversion();
|
|
14108
|
+
init_textColor();
|
|
14109
|
+
init_onColor();
|
|
14110
|
+
}
|
|
14111
|
+
});
|
|
14112
|
+
|
|
13785
14113
|
// ../theme-core/src/site-styles/rawStyleFields.ts
|
|
13786
14114
|
var themeV2RuntimeStyleFieldNames, themeV2BlockSpecificRawStyleFieldNames, themeV2NormalEditorRawStyleFieldNames, themeV2NormalEditorRawStyleFieldNameSet;
|
|
13787
14115
|
var init_rawStyleFields = __esm({
|
|
@@ -13965,35 +14293,31 @@ var init_runtimeCompiler = __esm({
|
|
|
13965
14293
|
"use strict";
|
|
13966
14294
|
init_schema3();
|
|
13967
14295
|
init_modern_minimal();
|
|
14296
|
+
init_expandPalette();
|
|
13968
14297
|
init_personalities();
|
|
13969
14298
|
init_variants();
|
|
13970
14299
|
init_designState();
|
|
13971
14300
|
init_types3();
|
|
14301
|
+
init_accessibleSurfaces();
|
|
13972
14302
|
defaultDesignRuntimeRules = defineDesignRuntimeRules({
|
|
13973
14303
|
sectionSurfaces: {
|
|
13974
14304
|
base: {},
|
|
13975
14305
|
"muted-band": {
|
|
13976
14306
|
background: {
|
|
13977
14307
|
type: "color",
|
|
13978
|
-
color: "muted"
|
|
13979
|
-
textColor: "text",
|
|
13980
|
-
headingColor: "text"
|
|
14308
|
+
color: "muted"
|
|
13981
14309
|
}
|
|
13982
14310
|
},
|
|
13983
14311
|
"accent-band": {
|
|
13984
14312
|
background: {
|
|
13985
14313
|
type: "color",
|
|
13986
|
-
color: "primary"
|
|
13987
|
-
textColor: "primaryForeground",
|
|
13988
|
-
headingColor: "primaryForeground"
|
|
14314
|
+
color: "primary"
|
|
13989
14315
|
}
|
|
13990
14316
|
},
|
|
13991
14317
|
"brand-depth-band": {
|
|
13992
14318
|
background: {
|
|
13993
14319
|
type: "color",
|
|
13994
|
-
color: "primary-800"
|
|
13995
|
-
textColor: "primaryForeground",
|
|
13996
|
-
headingColor: "primaryForeground"
|
|
14320
|
+
color: "primary-800"
|
|
13997
14321
|
}
|
|
13998
14322
|
},
|
|
13999
14323
|
"hero-image": {
|
|
@@ -14459,6 +14783,7 @@ var init_tokenRecipes = __esm({
|
|
|
14459
14783
|
var init_site_styles = __esm({
|
|
14460
14784
|
"../theme-core/src/site-styles/index.ts"() {
|
|
14461
14785
|
"use strict";
|
|
14786
|
+
init_accessibleSurfaces();
|
|
14462
14787
|
init_appearancePresets();
|
|
14463
14788
|
init_blockFlow();
|
|
14464
14789
|
init_compositionBudget();
|
|
@@ -21126,7 +21451,7 @@ var init_faq = __esm({
|
|
|
21126
21451
|
|
|
21127
21452
|
// ../blocks/src/system/transforms/registry/formatting.ts
|
|
21128
21453
|
import { z as z38 } from "zod";
|
|
21129
|
-
var uppercaseTransform, fallbackTransform, dateFormatShort, arrayLengthTransform, jsonArrayTransform, marqueeLoopOptionsSchema, marqueeLoopTransform, formattingTransforms;
|
|
21454
|
+
var uppercaseTransform, fallbackTransform, dateFormatShort, arrayLengthTransform, jsonArrayTransform, csvTransform, marqueeLoopOptionsSchema, marqueeLoopTransform, formattingTransforms;
|
|
21130
21455
|
var init_formatting = __esm({
|
|
21131
21456
|
"../blocks/src/system/transforms/registry/formatting.ts"() {
|
|
21132
21457
|
"use strict";
|
|
@@ -21187,6 +21512,16 @@ var init_formatting = __esm({
|
|
|
21187
21512
|
return "";
|
|
21188
21513
|
}
|
|
21189
21514
|
};
|
|
21515
|
+
csvTransform = {
|
|
21516
|
+
id: "value.csv",
|
|
21517
|
+
kind: "formatter",
|
|
21518
|
+
summary: "Normalize a string or array of strings into a comma-separated list",
|
|
21519
|
+
run: (value) => {
|
|
21520
|
+
const rawValues = Array.isArray(value) ? value : typeof value === "string" ? value.split(",") : [];
|
|
21521
|
+
const normalized = rawValues.filter((item) => typeof item === "string").map((item) => item.trim()).filter(Boolean);
|
|
21522
|
+
return normalized.length > 0 ? Array.from(new Set(normalized)).join(",") : "";
|
|
21523
|
+
}
|
|
21524
|
+
};
|
|
21190
21525
|
marqueeLoopOptionsSchema = z38.object({
|
|
21191
21526
|
minItems: z38.number().int().min(1).default(10)
|
|
21192
21527
|
});
|
|
@@ -21212,6 +21547,7 @@ var init_formatting = __esm({
|
|
|
21212
21547
|
dateFormatShort,
|
|
21213
21548
|
arrayLengthTransform,
|
|
21214
21549
|
jsonArrayTransform,
|
|
21550
|
+
csvTransform,
|
|
21215
21551
|
marqueeLoopTransform
|
|
21216
21552
|
];
|
|
21217
21553
|
}
|
|
@@ -21706,77 +22042,6 @@ var init_ui = __esm({
|
|
|
21706
22042
|
}
|
|
21707
22043
|
});
|
|
21708
22044
|
|
|
21709
|
-
// ../theme-core/src/palette/utils/colorConversion.ts
|
|
21710
|
-
function hexToRgb(hex) {
|
|
21711
|
-
const h = hex.replace(/^#/, "");
|
|
21712
|
-
const m = h.length === 3 ? h.split("").map((c) => c + c).join("") : h;
|
|
21713
|
-
if (m.length !== 6) throw new Error("Bad hex");
|
|
21714
|
-
const int = parseInt(m, 16);
|
|
21715
|
-
return { r: int >> 16 & 255, g: int >> 8 & 255, b: int & 255 };
|
|
21716
|
-
}
|
|
21717
|
-
function srgbToLinear(u) {
|
|
21718
|
-
const x = u / 255;
|
|
21719
|
-
return x <= 0.04045 ? x / 12.92 : Math.pow((x + 0.055) / 1.055, 2.4);
|
|
21720
|
-
}
|
|
21721
|
-
function rgbToHsl(r, g, b) {
|
|
21722
|
-
const R = r / 255, G = g / 255, B = b / 255;
|
|
21723
|
-
const max = Math.max(R, G, B), min = Math.min(R, G, B);
|
|
21724
|
-
const d = max - min;
|
|
21725
|
-
let h = 0;
|
|
21726
|
-
if (d !== 0) {
|
|
21727
|
-
switch (max) {
|
|
21728
|
-
case R:
|
|
21729
|
-
h = (G - B) / d + (G < B ? 6 : 0);
|
|
21730
|
-
break;
|
|
21731
|
-
case G:
|
|
21732
|
-
h = (B - R) / d + 2;
|
|
21733
|
-
break;
|
|
21734
|
-
case B:
|
|
21735
|
-
h = (R - G) / d + 4;
|
|
21736
|
-
break;
|
|
21737
|
-
}
|
|
21738
|
-
h *= 60;
|
|
21739
|
-
}
|
|
21740
|
-
const l = (max + min) / 2;
|
|
21741
|
-
const s = d === 0 ? 0 : d / (1 - Math.abs(2 * l - 1));
|
|
21742
|
-
return { h, s, l };
|
|
21743
|
-
}
|
|
21744
|
-
function srgbToOklab(r, g, b) {
|
|
21745
|
-
const R = srgbToLinear(r), G = srgbToLinear(g), B = srgbToLinear(b);
|
|
21746
|
-
const l = 0.4122214708 * R + 0.5363325363 * G + 0.0514459929 * B;
|
|
21747
|
-
const m = 0.2119034982 * R + 0.6806995451 * G + 0.1073969566 * B;
|
|
21748
|
-
const s = 0.0883024619 * R + 0.2817188376 * G + 0.6299787005 * B;
|
|
21749
|
-
const l_ = Math.cbrt(l), m_ = Math.cbrt(m), s_ = Math.cbrt(s);
|
|
21750
|
-
const L = 0.2104542553 * l_ + 0.793617785 * m_ - 0.0040720468 * s_;
|
|
21751
|
-
const a = 1.9779984951 * l_ - 2.428592205 * m_ + 0.4505937099 * s_;
|
|
21752
|
-
const b2 = 0.0259040371 * l_ + 0.7827717662 * m_ - 0.808675766 * s_;
|
|
21753
|
-
return { L, a, b: b2 };
|
|
21754
|
-
}
|
|
21755
|
-
function oklabToOklch(L, a, b) {
|
|
21756
|
-
const C = Math.sqrt(a * a + b * b);
|
|
21757
|
-
const h = C < 1e-7 ? 0 : deg(Math.atan2(b, a) * 180 / Math.PI);
|
|
21758
|
-
return { L, C, h };
|
|
21759
|
-
}
|
|
21760
|
-
function featuresFromHex(hex) {
|
|
21761
|
-
const { r, g, b } = hexToRgb(hex);
|
|
21762
|
-
const { h, s, l } = rgbToHsl(r, g, b);
|
|
21763
|
-
const { L, a, b: b2 } = srgbToOklab(r, g, b);
|
|
21764
|
-
const { L: okL, C: okC, h: okH } = oklabToOklch(L, a, b2);
|
|
21765
|
-
const max = Math.max(r, g, b);
|
|
21766
|
-
const v = max / 255;
|
|
21767
|
-
const Y = 0.2126 * srgbToLinear(r) + 0.7152 * srgbToLinear(g) + 0.0722 * srgbToLinear(b);
|
|
21768
|
-
const chroma = s;
|
|
21769
|
-
return { r, g, b, h, s, l, v, Y, chroma, okL, okC, okH, hex };
|
|
21770
|
-
}
|
|
21771
|
-
var mod, deg;
|
|
21772
|
-
var init_colorConversion = __esm({
|
|
21773
|
-
"../theme-core/src/palette/utils/colorConversion.ts"() {
|
|
21774
|
-
"use strict";
|
|
21775
|
-
mod = (a, n) => (a % n + n) % n;
|
|
21776
|
-
deg = (x) => mod(x, 360);
|
|
21777
|
-
}
|
|
21778
|
-
});
|
|
21779
|
-
|
|
21780
22045
|
// ../blocks/src/system/transforms/registry/layout.ts
|
|
21781
22046
|
import { z as z40 } from "zod";
|
|
21782
22047
|
function resolveBackgroundVisualStyles(backgroundColor, tokens, defaultToken = "surface") {
|
|
@@ -26871,7 +27136,12 @@ var init_event_listing = __esm({
|
|
|
26871
27136
|
detailLevel: "listing",
|
|
26872
27137
|
kind: { $bind: { from: "content.kind" } },
|
|
26873
27138
|
eventSurface: { $bind: { from: "content.eventSurface" } },
|
|
26874
|
-
eventPresets: {
|
|
27139
|
+
eventPresets: {
|
|
27140
|
+
$bind: {
|
|
27141
|
+
from: "content.filterEventPresets",
|
|
27142
|
+
transforms: [{ id: "value.csv" }]
|
|
27143
|
+
}
|
|
27144
|
+
},
|
|
26875
27145
|
scheduleScope: { $bind: { from: "content.scheduleScope" } }
|
|
26876
27146
|
},
|
|
26877
27147
|
mode: "server"
|
|
@@ -27651,7 +27921,12 @@ var init_event_calendar = __esm({
|
|
|
27651
27921
|
// Pass filter params if configured
|
|
27652
27922
|
kind: { $bind: { from: "content.kind" } },
|
|
27653
27923
|
eventSurface: { $bind: { from: "content.eventSurface" } },
|
|
27654
|
-
eventPresets: {
|
|
27924
|
+
eventPresets: {
|
|
27925
|
+
$bind: {
|
|
27926
|
+
from: "content.filterEventPresets",
|
|
27927
|
+
transforms: [{ id: "value.csv" }]
|
|
27928
|
+
}
|
|
27929
|
+
},
|
|
27655
27930
|
scheduleScope: { $bind: { from: "content.scheduleScope" } },
|
|
27656
27931
|
categoryIds: { $bind: { from: "content.filterCategoryIds" } },
|
|
27657
27932
|
staffMemberId: { $bind: { from: "content.filterStaffMemberId" } },
|