@riverbankcms/sdk 0.64.0 → 0.67.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/_dts/api/src/aiPlayground.d.ts +18 -11
- package/dist/_dts/api/src/apiEndpointTypes.d.ts +12 -0
- package/dist/_dts/api/src/bookingOperations.d.ts +1 -1
- package/dist/_dts/api/src/endpoints.d.ts +25 -0
- 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/plans/types.d.ts +1 -1
- package/dist/_dts/blocks/src/bindings/index.d.ts +1 -1
- package/dist/_dts/blocks/src/system/node/validation-constants.d.ts +1 -1
- 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/cli/commands/push/execute/footer.d.ts +33 -0
- 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 +114 -0
- package/dist/_dts/sdk/src/cli/site-commands/entryCommands.d.ts +26 -48
- package/dist/_dts/sdk/src/cli/site-commands/footerCommands.d.ts +50 -0
- package/dist/_dts/sdk/src/cli/site-commands/formCommands.d.ts +57 -0
- package/dist/_dts/sdk/src/cli/site-commands/index.d.ts +5 -0
- package/dist/_dts/sdk/src/cli/site-commands/navigationCommands.d.ts +57 -0
- package/dist/_dts/sdk/src/cli/site-commands/pageCommands.d.ts +83 -0
- package/dist/_dts/sdk/src/cli/site-commands/pushExecution.d.ts +67 -14
- package/dist/_dts/sdk/src/cli/sync/executor.d.ts +10 -28
- package/dist/_dts/sdk/src/cli/sync/index.d.ts +1 -1
- 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/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 +410 -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 +1 -0
- package/dist/_dts/site-commands/src/metadata.d.ts +93 -2
- package/dist/_dts/site-commands/src/planner.d.ts +13 -6
- package/dist/_dts/site-commands/src/refs.d.ts +13 -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/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 +4290 -2513
- package/dist/client/client.mjs +598 -372
- package/dist/client/hooks.mjs +311 -123
- package/dist/client/rendering/client.mjs +209 -68
- package/dist/client/rendering/islands.mjs +281 -150
- package/dist/client/rendering.mjs +416 -190
- package/dist/preview-next/before-render.mjs +61 -13
- package/dist/preview-next/client/runtime.mjs +930 -376
- package/dist/preview-next/middleware.mjs +61 -13
- package/dist/server/components.mjs +526 -325
- package/dist/server/config-validation.mjs +313 -125
- package/dist/server/config.mjs +313 -125
- package/dist/server/data.mjs +311 -123
- package/dist/server/index.mjs +78 -16
- package/dist/server/next.mjs +527 -326
- package/dist/server/page-converter.mjs +159 -41
- package/dist/server/prebuild.mjs +1 -1
- package/dist/server/rendering/server.mjs +526 -325
- package/dist/server/rendering.mjs +526 -325
- package/dist/server/routing.mjs +392 -131
- package/dist/server/server.mjs +312 -124
- package/dist/server/theme-bridge.mjs +155 -48
- package/package.json +1 -1
- 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",
|
|
@@ -1534,7 +1577,8 @@ var init_endpoints = __esm({
|
|
|
1534
1577
|
method: "DELETE",
|
|
1535
1578
|
tags: ["site", "site-{siteId}"],
|
|
1536
1579
|
auth: "user",
|
|
1537
|
-
responseKind: "json"
|
|
1580
|
+
responseKind: "json",
|
|
1581
|
+
demoMutation: DEMO_MUTATION_BLOCKED_HIDDEN
|
|
1538
1582
|
},
|
|
1539
1583
|
listSiteMembers: {
|
|
1540
1584
|
path: "/sites/{siteId}/members",
|
|
@@ -1990,7 +2034,8 @@ var init_endpoints = __esm({
|
|
|
1990
2034
|
method: "POST",
|
|
1991
2035
|
tags: ["site-{siteId}", "content-{siteId}-{type}"],
|
|
1992
2036
|
auth: "user",
|
|
1993
|
-
responseKind: "json"
|
|
2037
|
+
responseKind: "json",
|
|
2038
|
+
demoMutation: DEMO_MUTATION_BLOCKED_HIDDEN
|
|
1994
2039
|
},
|
|
1995
2040
|
updateSiteGeneralSettings: {
|
|
1996
2041
|
path: "/sites/{siteId}/settings/general",
|
|
@@ -4229,6 +4274,7 @@ var init_endpoints = __esm({
|
|
|
4229
4274
|
method: "POST",
|
|
4230
4275
|
tags: ["site-{siteId}"],
|
|
4231
4276
|
auth: "user",
|
|
4277
|
+
demoMutation: DEMO_MUTATION_BLOCKED_HIDDEN,
|
|
4232
4278
|
errors: [
|
|
4233
4279
|
"validation:invalid_input",
|
|
4234
4280
|
"auth:forbidden",
|
|
@@ -4243,6 +4289,7 @@ var init_endpoints = __esm({
|
|
|
4243
4289
|
method: "POST",
|
|
4244
4290
|
tags: ["site-{siteId}"],
|
|
4245
4291
|
auth: "user",
|
|
4292
|
+
demoMutation: DEMO_MUTATION_BLOCKED_HIDDEN,
|
|
4246
4293
|
errors: [
|
|
4247
4294
|
"validation:invalid_input",
|
|
4248
4295
|
"auth:forbidden",
|
|
@@ -4552,6 +4599,7 @@ var init_endpoints = __esm({
|
|
|
4552
4599
|
tags: ["site-{siteId}", "passes-{siteId}"],
|
|
4553
4600
|
auth: "user",
|
|
4554
4601
|
responseKind: "json",
|
|
4602
|
+
demoMutation: DEMO_MUTATION_BLOCKED_DISABLED,
|
|
4555
4603
|
errors: ["validation:invalid_input", "server:internal_error"]
|
|
4556
4604
|
},
|
|
4557
4605
|
getBookingPass: {
|
|
@@ -4567,6 +4615,7 @@ var init_endpoints = __esm({
|
|
|
4567
4615
|
tags: ["site-{siteId}", "passes-{siteId}"],
|
|
4568
4616
|
auth: "user",
|
|
4569
4617
|
responseKind: "json",
|
|
4618
|
+
demoMutation: DEMO_MUTATION_BLOCKED_DISABLED,
|
|
4570
4619
|
errors: [
|
|
4571
4620
|
"validation:invalid_input",
|
|
4572
4621
|
"resource:not_found",
|
|
@@ -4579,6 +4628,7 @@ var init_endpoints = __esm({
|
|
|
4579
4628
|
tags: ["site-{siteId}", "passes-{siteId}"],
|
|
4580
4629
|
auth: "user",
|
|
4581
4630
|
responseKind: "json",
|
|
4631
|
+
demoMutation: DEMO_MUTATION_BLOCKED_DISABLED,
|
|
4582
4632
|
errors: [
|
|
4583
4633
|
"validation:invalid_input",
|
|
4584
4634
|
"resource:not_found",
|
|
@@ -4634,6 +4684,7 @@ var init_endpoints = __esm({
|
|
|
4634
4684
|
tags: ["site-{siteId}", "memberships-{siteId}"],
|
|
4635
4685
|
auth: "user",
|
|
4636
4686
|
responseKind: "json",
|
|
4687
|
+
demoMutation: DEMO_MUTATION_BLOCKED_DISABLED,
|
|
4637
4688
|
errors: ["validation:invalid_input", "server:internal_error"]
|
|
4638
4689
|
},
|
|
4639
4690
|
getBookingMembership: {
|
|
@@ -4649,6 +4700,7 @@ var init_endpoints = __esm({
|
|
|
4649
4700
|
tags: ["site-{siteId}", "memberships-{siteId}"],
|
|
4650
4701
|
auth: "user",
|
|
4651
4702
|
responseKind: "json",
|
|
4703
|
+
demoMutation: DEMO_MUTATION_BLOCKED_DISABLED,
|
|
4652
4704
|
errors: [
|
|
4653
4705
|
"validation:invalid_input",
|
|
4654
4706
|
"resource:not_found",
|
|
@@ -4661,6 +4713,7 @@ var init_endpoints = __esm({
|
|
|
4661
4713
|
tags: ["site-{siteId}", "memberships-{siteId}"],
|
|
4662
4714
|
auth: "user",
|
|
4663
4715
|
responseKind: "json",
|
|
4716
|
+
demoMutation: DEMO_MUTATION_BLOCKED_DISABLED,
|
|
4664
4717
|
errors: [
|
|
4665
4718
|
"validation:invalid_input",
|
|
4666
4719
|
"resource:not_found",
|
|
@@ -4877,6 +4930,7 @@ var init_endpoints = __esm({
|
|
|
4877
4930
|
tags: ["site-{siteId}", "customers-{siteId}"],
|
|
4878
4931
|
auth: "user",
|
|
4879
4932
|
responseKind: "json",
|
|
4933
|
+
demoMutation: DEMO_MUTATION_BLOCKED_DISABLED,
|
|
4880
4934
|
errors: [
|
|
4881
4935
|
"validation:invalid_input",
|
|
4882
4936
|
"auth:forbidden",
|
|
@@ -6950,6 +7004,7 @@ var init_validation_constants = __esm({
|
|
|
6950
7004
|
"date.formatShort",
|
|
6951
7005
|
"array.length",
|
|
6952
7006
|
"value.jsonArray",
|
|
7007
|
+
"value.csv",
|
|
6953
7008
|
"array.marqueeLoop",
|
|
6954
7009
|
// Layout (layout.ts)
|
|
6955
7010
|
"layout.maxWidthClass",
|
|
@@ -7768,8 +7823,7 @@ var init_contracts2 = __esm({
|
|
|
7768
7823
|
dashboardNavVisibilityRolesSchema = z5.object({
|
|
7769
7824
|
administrator: dashboardNavVisibilityBaseSchema.optional(),
|
|
7770
7825
|
editor: dashboardNavVisibilityBaseSchema.optional(),
|
|
7771
|
-
team_member: dashboardNavVisibilityBaseSchema.optional()
|
|
7772
|
-
event_host: dashboardNavVisibilityBaseSchema.optional()
|
|
7826
|
+
team_member: dashboardNavVisibilityBaseSchema.optional()
|
|
7773
7827
|
}).strip().optional();
|
|
7774
7828
|
dashboardNavVisibilitySchema = dashboardNavVisibilityBaseSchema.extend({
|
|
7775
7829
|
roles: dashboardNavVisibilityRolesSchema
|
|
@@ -8406,6 +8460,21 @@ var init_appointmentSetup = __esm({
|
|
|
8406
8460
|
timezone: z7.string().trim().min(1).nullable(),
|
|
8407
8461
|
payment: appointmentSetupPaymentDraftSchema,
|
|
8408
8462
|
assignment: appointmentSetupServiceAssignmentDraftSchema
|
|
8463
|
+
}).superRefine((service, ctx) => {
|
|
8464
|
+
if (service.payment.priceType === "paid" && (service.priceAmount === null || service.priceAmount <= 0)) {
|
|
8465
|
+
ctx.addIssue({
|
|
8466
|
+
code: "custom",
|
|
8467
|
+
path: ["priceAmount"],
|
|
8468
|
+
message: "Paid appointment services need a positive price."
|
|
8469
|
+
});
|
|
8470
|
+
}
|
|
8471
|
+
if (service.payment.priceType === "free" && service.priceAmount !== null && service.priceAmount > 0) {
|
|
8472
|
+
ctx.addIssue({
|
|
8473
|
+
code: "custom",
|
|
8474
|
+
path: ["priceAmount"],
|
|
8475
|
+
message: "Free appointment services cannot carry a positive price."
|
|
8476
|
+
});
|
|
8477
|
+
}
|
|
8409
8478
|
});
|
|
8410
8479
|
appointmentSetupPractitionerDraftSchema = z7.object({
|
|
8411
8480
|
ref: appointmentSetupRefSchema,
|
|
@@ -9078,6 +9147,101 @@ var init_manifest = __esm({
|
|
|
9078
9147
|
}
|
|
9079
9148
|
});
|
|
9080
9149
|
|
|
9150
|
+
// ../theme-core/src/palette/utils/colorConversion.ts
|
|
9151
|
+
function hexToRgb(hex) {
|
|
9152
|
+
const h = hex.replace(/^#/, "");
|
|
9153
|
+
const m = h.length === 3 ? h.split("").map((c) => c + c).join("") : h;
|
|
9154
|
+
if (m.length !== 6) throw new Error("Bad hex");
|
|
9155
|
+
const int = parseInt(m, 16);
|
|
9156
|
+
return { r: int >> 16 & 255, g: int >> 8 & 255, b: int & 255 };
|
|
9157
|
+
}
|
|
9158
|
+
function srgbToLinear(u) {
|
|
9159
|
+
const x = u / 255;
|
|
9160
|
+
return x <= 0.04045 ? x / 12.92 : Math.pow((x + 0.055) / 1.055, 2.4);
|
|
9161
|
+
}
|
|
9162
|
+
function rgbToHsl(r, g, b) {
|
|
9163
|
+
const R = r / 255, G = g / 255, B = b / 255;
|
|
9164
|
+
const max = Math.max(R, G, B), min = Math.min(R, G, B);
|
|
9165
|
+
const d = max - min;
|
|
9166
|
+
let h = 0;
|
|
9167
|
+
if (d !== 0) {
|
|
9168
|
+
switch (max) {
|
|
9169
|
+
case R:
|
|
9170
|
+
h = (G - B) / d + (G < B ? 6 : 0);
|
|
9171
|
+
break;
|
|
9172
|
+
case G:
|
|
9173
|
+
h = (B - R) / d + 2;
|
|
9174
|
+
break;
|
|
9175
|
+
case B:
|
|
9176
|
+
h = (R - G) / d + 4;
|
|
9177
|
+
break;
|
|
9178
|
+
}
|
|
9179
|
+
h *= 60;
|
|
9180
|
+
}
|
|
9181
|
+
const l = (max + min) / 2;
|
|
9182
|
+
const s = d === 0 ? 0 : d / (1 - Math.abs(2 * l - 1));
|
|
9183
|
+
return { h, s, l };
|
|
9184
|
+
}
|
|
9185
|
+
function srgbToOklab(r, g, b) {
|
|
9186
|
+
const R = srgbToLinear(r), G = srgbToLinear(g), B = srgbToLinear(b);
|
|
9187
|
+
const l = 0.4122214708 * R + 0.5363325363 * G + 0.0514459929 * B;
|
|
9188
|
+
const m = 0.2119034982 * R + 0.6806995451 * G + 0.1073969566 * B;
|
|
9189
|
+
const s = 0.0883024619 * R + 0.2817188376 * G + 0.6299787005 * B;
|
|
9190
|
+
const l_ = Math.cbrt(l), m_ = Math.cbrt(m), s_ = Math.cbrt(s);
|
|
9191
|
+
const L = 0.2104542553 * l_ + 0.793617785 * m_ - 0.0040720468 * s_;
|
|
9192
|
+
const a = 1.9779984951 * l_ - 2.428592205 * m_ + 0.4505937099 * s_;
|
|
9193
|
+
const b2 = 0.0259040371 * l_ + 0.7827717662 * m_ - 0.808675766 * s_;
|
|
9194
|
+
return { L, a, b: b2 };
|
|
9195
|
+
}
|
|
9196
|
+
function oklabToOklch(L, a, b) {
|
|
9197
|
+
const C = Math.sqrt(a * a + b * b);
|
|
9198
|
+
const h = C < 1e-7 ? 0 : deg(Math.atan2(b, a) * 180 / Math.PI);
|
|
9199
|
+
return { L, C, h };
|
|
9200
|
+
}
|
|
9201
|
+
function featuresFromHex(hex) {
|
|
9202
|
+
const { r, g, b } = hexToRgb(hex);
|
|
9203
|
+
const { h, s, l } = rgbToHsl(r, g, b);
|
|
9204
|
+
const { L, a, b: b2 } = srgbToOklab(r, g, b);
|
|
9205
|
+
const { L: okL, C: okC, h: okH } = oklabToOklch(L, a, b2);
|
|
9206
|
+
const max = Math.max(r, g, b);
|
|
9207
|
+
const v = max / 255;
|
|
9208
|
+
const Y = 0.2126 * srgbToLinear(r) + 0.7152 * srgbToLinear(g) + 0.0722 * srgbToLinear(b);
|
|
9209
|
+
const chroma = s;
|
|
9210
|
+
return { r, g, b, h, s, l, v, Y, chroma, okL, okC, okH, hex };
|
|
9211
|
+
}
|
|
9212
|
+
var mod, deg;
|
|
9213
|
+
var init_colorConversion = __esm({
|
|
9214
|
+
"../theme-core/src/palette/utils/colorConversion.ts"() {
|
|
9215
|
+
"use strict";
|
|
9216
|
+
mod = (a, n) => (a % n + n) % n;
|
|
9217
|
+
deg = (x) => mod(x, 360);
|
|
9218
|
+
}
|
|
9219
|
+
});
|
|
9220
|
+
|
|
9221
|
+
// ../theme-core/src/palette/utils/contrast.ts
|
|
9222
|
+
var init_contrast = __esm({
|
|
9223
|
+
"../theme-core/src/palette/utils/contrast.ts"() {
|
|
9224
|
+
"use strict";
|
|
9225
|
+
init_colorConversion();
|
|
9226
|
+
}
|
|
9227
|
+
});
|
|
9228
|
+
|
|
9229
|
+
// ../theme-core/src/palette/utils/onColor.ts
|
|
9230
|
+
var init_onColor = __esm({
|
|
9231
|
+
"../theme-core/src/palette/utils/onColor.ts"() {
|
|
9232
|
+
"use strict";
|
|
9233
|
+
}
|
|
9234
|
+
});
|
|
9235
|
+
|
|
9236
|
+
// ../theme-core/src/site-styles/accessibleSurfaces.ts
|
|
9237
|
+
var init_accessibleSurfaces = __esm({
|
|
9238
|
+
"../theme-core/src/site-styles/accessibleSurfaces.ts"() {
|
|
9239
|
+
"use strict";
|
|
9240
|
+
init_contrast();
|
|
9241
|
+
init_onColor();
|
|
9242
|
+
}
|
|
9243
|
+
});
|
|
9244
|
+
|
|
9081
9245
|
// ../theme-core/src/site-styles/appearancePresetResolution.ts
|
|
9082
9246
|
function assertValidOptionGroups(preset2) {
|
|
9083
9247
|
preset2.optionGroups?.forEach((group) => {
|
|
@@ -11075,7 +11239,7 @@ var init_constants = __esm({
|
|
|
11075
11239
|
});
|
|
11076
11240
|
|
|
11077
11241
|
// ../theme-core/src/buttons/utils/contrast.ts
|
|
11078
|
-
var
|
|
11242
|
+
var init_contrast2 = __esm({
|
|
11079
11243
|
"../theme-core/src/buttons/utils/contrast.ts"() {
|
|
11080
11244
|
"use strict";
|
|
11081
11245
|
}
|
|
@@ -11085,7 +11249,7 @@ var init_contrast = __esm({
|
|
|
11085
11249
|
var init_generateDefaultButtonSystem = __esm({
|
|
11086
11250
|
"../theme-core/src/buttons/generateDefaultButtonSystem.ts"() {
|
|
11087
11251
|
"use strict";
|
|
11088
|
-
|
|
11252
|
+
init_contrast2();
|
|
11089
11253
|
}
|
|
11090
11254
|
});
|
|
11091
11255
|
|
|
@@ -13227,7 +13391,8 @@ function defineCuratedSiteStyle(input) {
|
|
|
13227
13391
|
name: input.name,
|
|
13228
13392
|
description: input.description,
|
|
13229
13393
|
generationBrief: input.generationBrief,
|
|
13230
|
-
|
|
13394
|
+
selectionKeywordRules: input.selectionKeywordRules ?? [],
|
|
13395
|
+
siteCreatorSelection: input.siteCreatorSelection ?? { kind: "explicit_only" },
|
|
13231
13396
|
template: {
|
|
13232
13397
|
id: asDesignSystemTemplateId(`template:${input.id.replace("site-style:", "")}`),
|
|
13233
13398
|
name: input.name,
|
|
@@ -13272,6 +13437,9 @@ var init_curatedSiteStyles = __esm({
|
|
|
13272
13437
|
"site-style:bright-community",
|
|
13273
13438
|
"site-style:quiet-luxury",
|
|
13274
13439
|
"site-style:practical-services",
|
|
13440
|
+
"site-style:quiet-practice",
|
|
13441
|
+
"site-style:personal-retreat-journal",
|
|
13442
|
+
"site-style:tactile-workshop",
|
|
13275
13443
|
"site-style:modern-wellness",
|
|
13276
13444
|
"site-style:bold-launch",
|
|
13277
13445
|
"site-style:south-west-twerk-school"
|
|
@@ -13455,12 +13623,13 @@ var init_curatedSiteStyles = __esm({
|
|
|
13455
13623
|
name: "Quiet Luxury",
|
|
13456
13624
|
description: "Minimal, confident, and refined for premium experiences and private services.",
|
|
13457
13625
|
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
|
-
"
|
|
13626
|
+
siteCreatorSelection: { kind: "site_creator_keyword_heuristic", priority: 20 },
|
|
13627
|
+
selectionKeywordRules: [
|
|
13628
|
+
{ kind: "word", value: "luxury" },
|
|
13629
|
+
{ kind: "word", value: "premium" },
|
|
13630
|
+
{ kind: "word", value: "boutique" },
|
|
13631
|
+
{ kind: "word", value: "bespoke" },
|
|
13632
|
+
{ kind: "word", value: "exclusive" }
|
|
13464
13633
|
],
|
|
13465
13634
|
tokenRecipes: {
|
|
13466
13635
|
palette: "high-contrast",
|
|
@@ -13489,13 +13658,14 @@ var init_curatedSiteStyles = __esm({
|
|
|
13489
13658
|
name: "Practical Services",
|
|
13490
13659
|
description: "Efficient, plainspoken, and conversion-focused for trades and everyday services.",
|
|
13491
13660
|
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
|
-
"
|
|
13661
|
+
siteCreatorSelection: { kind: "primary_goal_support" },
|
|
13662
|
+
selectionKeywordRules: [
|
|
13663
|
+
{ kind: "word", value: "repair" },
|
|
13664
|
+
{ kind: "substring", value: "plumb" },
|
|
13665
|
+
{ kind: "substring", value: "electric" },
|
|
13666
|
+
{ kind: "word", value: "cleaning" },
|
|
13667
|
+
{ kind: "substring", value: "landscap" },
|
|
13668
|
+
{ kind: "substring", value: "contractor" }
|
|
13499
13669
|
],
|
|
13500
13670
|
tokenRecipes: {
|
|
13501
13671
|
palette: "brand-led",
|
|
@@ -13546,18 +13716,134 @@ var init_curatedSiteStyles = __esm({
|
|
|
13546
13716
|
paletteChoice("warm-neutral-forest")
|
|
13547
13717
|
]
|
|
13548
13718
|
}),
|
|
13719
|
+
defineCuratedSiteStyle({
|
|
13720
|
+
id: "site-style:quiet-practice",
|
|
13721
|
+
name: "Quiet Practice",
|
|
13722
|
+
description: "Grounded, calm, and practical for small appointment-first practices.",
|
|
13723
|
+
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.",
|
|
13724
|
+
siteCreatorSelection: { kind: "site_creator_keyword_heuristic", priority: 30 },
|
|
13725
|
+
selectionKeywordRules: [
|
|
13726
|
+
{ kind: "substring", value: "massage" },
|
|
13727
|
+
{ kind: "word", value: "bodywork" },
|
|
13728
|
+
{ kind: "phrase", value: "appointment practice" },
|
|
13729
|
+
{ kind: "phrase", value: "appointment-first" },
|
|
13730
|
+
{ kind: "substring", value: "practitioner" },
|
|
13731
|
+
{ kind: "substring", value: "therap" },
|
|
13732
|
+
{ kind: "substring", value: "clinic" },
|
|
13733
|
+
{ kind: "phrase", value: "wellness practice" }
|
|
13734
|
+
],
|
|
13735
|
+
tokenRecipes: {
|
|
13736
|
+
palette: "soft-natural",
|
|
13737
|
+
contrast: "standard",
|
|
13738
|
+
radius: "soft",
|
|
13739
|
+
shadow: "subtle",
|
|
13740
|
+
typography: "clean-sans",
|
|
13741
|
+
spacing: "regular",
|
|
13742
|
+
motion: "subtle"
|
|
13743
|
+
},
|
|
13744
|
+
compositionBudget: quietBudget,
|
|
13745
|
+
recommendedHeaderLookIds: ["practical-utility", "clean-base", "centered-calm"],
|
|
13746
|
+
buttonPersonalityChoices: [
|
|
13747
|
+
buttonChoice("pebble"),
|
|
13748
|
+
buttonChoice("soft-pill"),
|
|
13749
|
+
buttonChoice("editorial-link")
|
|
13750
|
+
],
|
|
13751
|
+
paletteVariantChoices: [
|
|
13752
|
+
paletteChoice("soft-natural-stone"),
|
|
13753
|
+
paletteChoice("soft-natural-sage"),
|
|
13754
|
+
paletteChoice("warm-neutral-clay")
|
|
13755
|
+
]
|
|
13756
|
+
}),
|
|
13757
|
+
defineCuratedSiteStyle({
|
|
13758
|
+
id: "site-style:personal-retreat-journal",
|
|
13759
|
+
name: "Personal Retreat Journal",
|
|
13760
|
+
description: "Warm, story-led, and readable for solo practitioners with mixed offers.",
|
|
13761
|
+
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.",
|
|
13762
|
+
siteCreatorSelection: { kind: "site_creator_keyword_heuristic", priority: 40 },
|
|
13763
|
+
selectionKeywordRules: [
|
|
13764
|
+
{ kind: "substring", value: "retreat" },
|
|
13765
|
+
{ kind: "phrase", value: "solo practitioner" },
|
|
13766
|
+
{ kind: "phrase", value: "personal brand" },
|
|
13767
|
+
{ kind: "substring", value: "teacher" },
|
|
13768
|
+
{ kind: "substring", value: "coach" },
|
|
13769
|
+
{ kind: "phrase", value: "retreat resources" },
|
|
13770
|
+
{ kind: "substring", value: "journal" }
|
|
13771
|
+
],
|
|
13772
|
+
tokenRecipes: {
|
|
13773
|
+
palette: "warm-neutral",
|
|
13774
|
+
contrast: "standard",
|
|
13775
|
+
radius: "soft",
|
|
13776
|
+
shadow: "subtle",
|
|
13777
|
+
typography: "serif-editorial",
|
|
13778
|
+
spacing: "airy",
|
|
13779
|
+
motion: "subtle"
|
|
13780
|
+
},
|
|
13781
|
+
compositionBudget: balancedBudget,
|
|
13782
|
+
recommendedHeaderLookIds: ["editorial-line", "centered-calm", "minimal-transparent"],
|
|
13783
|
+
buttonPersonalityChoices: [
|
|
13784
|
+
buttonChoice("editorial-link"),
|
|
13785
|
+
buttonChoice("soft-pill"),
|
|
13786
|
+
buttonChoice("brushed-wash")
|
|
13787
|
+
],
|
|
13788
|
+
paletteVariantChoices: [
|
|
13789
|
+
paletteChoice("warm-neutral-forest"),
|
|
13790
|
+
paletteChoice("warm-neutral-clay"),
|
|
13791
|
+
paletteChoice("soft-natural-stone")
|
|
13792
|
+
]
|
|
13793
|
+
}),
|
|
13794
|
+
defineCuratedSiteStyle({
|
|
13795
|
+
id: "site-style:tactile-workshop",
|
|
13796
|
+
name: "Tactile Workshop",
|
|
13797
|
+
description: "Bright, hands-on, and image-led for maker studios, workshops, and creative classes.",
|
|
13798
|
+
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.",
|
|
13799
|
+
siteCreatorSelection: { kind: "site_creator_keyword_heuristic", priority: 50 },
|
|
13800
|
+
selectionKeywordRules: [
|
|
13801
|
+
{ kind: "substring", value: "ceramic" },
|
|
13802
|
+
{ kind: "word", value: "pottery" },
|
|
13803
|
+
{ kind: "phrase", value: "maker studio" },
|
|
13804
|
+
{ kind: "phrase", value: "craft class" },
|
|
13805
|
+
{ kind: "phrase", value: "craft workshop" },
|
|
13806
|
+
{ kind: "word", value: "clay" },
|
|
13807
|
+
{ kind: "word", value: "kiln" }
|
|
13808
|
+
],
|
|
13809
|
+
tokenRecipes: {
|
|
13810
|
+
palette: "brand-led",
|
|
13811
|
+
contrast: "standard",
|
|
13812
|
+
radius: "soft",
|
|
13813
|
+
shadow: "subtle",
|
|
13814
|
+
typography: "friendly-sans",
|
|
13815
|
+
spacing: "regular",
|
|
13816
|
+
motion: "subtle"
|
|
13817
|
+
},
|
|
13818
|
+
compositionBudget: balancedBudget,
|
|
13819
|
+
recommendedHeaderLookIds: ["brand-solid", "practical-utility", "clean-base"],
|
|
13820
|
+
recommendedFooterLookIds: ["site-footer-brand-two-band", "footer-muted-grounding"],
|
|
13821
|
+
buttonPersonalityChoices: [
|
|
13822
|
+
buttonChoice("pebble"),
|
|
13823
|
+
buttonChoice("confident-chip"),
|
|
13824
|
+
buttonChoice("ink-stamp"),
|
|
13825
|
+
buttonChoice("editorial-link")
|
|
13826
|
+
],
|
|
13827
|
+
paletteVariantChoices: [
|
|
13828
|
+
paletteChoice("brand-led-warm"),
|
|
13829
|
+
paletteChoice("brand-led-cool"),
|
|
13830
|
+
paletteChoice("soft-natural-watercolor"),
|
|
13831
|
+
paletteChoice("warm-neutral-clay")
|
|
13832
|
+
]
|
|
13833
|
+
}),
|
|
13549
13834
|
defineCuratedSiteStyle({
|
|
13550
13835
|
id: "site-style:bold-launch",
|
|
13551
13836
|
name: "Bold Launch",
|
|
13552
13837
|
description: "High-energy and punchy for launches, campaigns, and creative offers.",
|
|
13553
13838
|
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
|
-
"
|
|
13839
|
+
siteCreatorSelection: { kind: "site_creator_keyword_heuristic", priority: 10 },
|
|
13840
|
+
selectionKeywordRules: [
|
|
13841
|
+
{ kind: "substring", value: "launch" },
|
|
13842
|
+
{ kind: "substring", value: "campaign" },
|
|
13843
|
+
{ kind: "word", value: "preorder" },
|
|
13844
|
+
{ kind: "phrase", value: "pre-order" },
|
|
13845
|
+
{ kind: "substring", value: "waitlist" },
|
|
13846
|
+
{ kind: "word", value: "drop" }
|
|
13561
13847
|
],
|
|
13562
13848
|
tokenRecipes: {
|
|
13563
13849
|
palette: "high-contrast",
|
|
@@ -13588,15 +13874,6 @@ var init_curatedSiteStyles = __esm({
|
|
|
13588
13874
|
name: "South West Twerk School",
|
|
13589
13875
|
description: "Energetic, editorial, and high-contrast for a branded dance school presence.",
|
|
13590
13876
|
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
13877
|
tokenRecipes: {
|
|
13601
13878
|
palette: "brand-led",
|
|
13602
13879
|
contrast: "maximum",
|
|
@@ -13782,6 +14059,43 @@ var init_modern_minimal = __esm({
|
|
|
13782
14059
|
}
|
|
13783
14060
|
});
|
|
13784
14061
|
|
|
14062
|
+
// ../theme-core/src/palette/generateShades.ts
|
|
14063
|
+
var init_generateShades = __esm({
|
|
14064
|
+
"../theme-core/src/palette/generateShades.ts"() {
|
|
14065
|
+
"use strict";
|
|
14066
|
+
init_colorConversion();
|
|
14067
|
+
}
|
|
14068
|
+
});
|
|
14069
|
+
|
|
14070
|
+
// ../theme-core/src/palette/neutralScale.ts
|
|
14071
|
+
var init_neutralScale = __esm({
|
|
14072
|
+
"../theme-core/src/palette/neutralScale.ts"() {
|
|
14073
|
+
"use strict";
|
|
14074
|
+
init_colorConversion();
|
|
14075
|
+
}
|
|
14076
|
+
});
|
|
14077
|
+
|
|
14078
|
+
// ../theme-core/src/palette/utils/textColor.ts
|
|
14079
|
+
var init_textColor = __esm({
|
|
14080
|
+
"../theme-core/src/palette/utils/textColor.ts"() {
|
|
14081
|
+
"use strict";
|
|
14082
|
+
init_colorConversion();
|
|
14083
|
+
init_contrast();
|
|
14084
|
+
}
|
|
14085
|
+
});
|
|
14086
|
+
|
|
14087
|
+
// ../theme-core/src/palette/expandPalette.ts
|
|
14088
|
+
var init_expandPalette = __esm({
|
|
14089
|
+
"../theme-core/src/palette/expandPalette.ts"() {
|
|
14090
|
+
"use strict";
|
|
14091
|
+
init_generateShades();
|
|
14092
|
+
init_neutralScale();
|
|
14093
|
+
init_colorConversion();
|
|
14094
|
+
init_textColor();
|
|
14095
|
+
init_onColor();
|
|
14096
|
+
}
|
|
14097
|
+
});
|
|
14098
|
+
|
|
13785
14099
|
// ../theme-core/src/site-styles/rawStyleFields.ts
|
|
13786
14100
|
var themeV2RuntimeStyleFieldNames, themeV2BlockSpecificRawStyleFieldNames, themeV2NormalEditorRawStyleFieldNames, themeV2NormalEditorRawStyleFieldNameSet;
|
|
13787
14101
|
var init_rawStyleFields = __esm({
|
|
@@ -13965,35 +14279,31 @@ var init_runtimeCompiler = __esm({
|
|
|
13965
14279
|
"use strict";
|
|
13966
14280
|
init_schema3();
|
|
13967
14281
|
init_modern_minimal();
|
|
14282
|
+
init_expandPalette();
|
|
13968
14283
|
init_personalities();
|
|
13969
14284
|
init_variants();
|
|
13970
14285
|
init_designState();
|
|
13971
14286
|
init_types3();
|
|
14287
|
+
init_accessibleSurfaces();
|
|
13972
14288
|
defaultDesignRuntimeRules = defineDesignRuntimeRules({
|
|
13973
14289
|
sectionSurfaces: {
|
|
13974
14290
|
base: {},
|
|
13975
14291
|
"muted-band": {
|
|
13976
14292
|
background: {
|
|
13977
14293
|
type: "color",
|
|
13978
|
-
color: "muted"
|
|
13979
|
-
textColor: "text",
|
|
13980
|
-
headingColor: "text"
|
|
14294
|
+
color: "muted"
|
|
13981
14295
|
}
|
|
13982
14296
|
},
|
|
13983
14297
|
"accent-band": {
|
|
13984
14298
|
background: {
|
|
13985
14299
|
type: "color",
|
|
13986
|
-
color: "primary"
|
|
13987
|
-
textColor: "primaryForeground",
|
|
13988
|
-
headingColor: "primaryForeground"
|
|
14300
|
+
color: "primary"
|
|
13989
14301
|
}
|
|
13990
14302
|
},
|
|
13991
14303
|
"brand-depth-band": {
|
|
13992
14304
|
background: {
|
|
13993
14305
|
type: "color",
|
|
13994
|
-
color: "primary-800"
|
|
13995
|
-
textColor: "primaryForeground",
|
|
13996
|
-
headingColor: "primaryForeground"
|
|
14306
|
+
color: "primary-800"
|
|
13997
14307
|
}
|
|
13998
14308
|
},
|
|
13999
14309
|
"hero-image": {
|
|
@@ -14459,6 +14769,7 @@ var init_tokenRecipes = __esm({
|
|
|
14459
14769
|
var init_site_styles = __esm({
|
|
14460
14770
|
"../theme-core/src/site-styles/index.ts"() {
|
|
14461
14771
|
"use strict";
|
|
14772
|
+
init_accessibleSurfaces();
|
|
14462
14773
|
init_appearancePresets();
|
|
14463
14774
|
init_blockFlow();
|
|
14464
14775
|
init_compositionBudget();
|
|
@@ -21126,7 +21437,7 @@ var init_faq = __esm({
|
|
|
21126
21437
|
|
|
21127
21438
|
// ../blocks/src/system/transforms/registry/formatting.ts
|
|
21128
21439
|
import { z as z38 } from "zod";
|
|
21129
|
-
var uppercaseTransform, fallbackTransform, dateFormatShort, arrayLengthTransform, jsonArrayTransform, marqueeLoopOptionsSchema, marqueeLoopTransform, formattingTransforms;
|
|
21440
|
+
var uppercaseTransform, fallbackTransform, dateFormatShort, arrayLengthTransform, jsonArrayTransform, csvTransform, marqueeLoopOptionsSchema, marqueeLoopTransform, formattingTransforms;
|
|
21130
21441
|
var init_formatting = __esm({
|
|
21131
21442
|
"../blocks/src/system/transforms/registry/formatting.ts"() {
|
|
21132
21443
|
"use strict";
|
|
@@ -21187,6 +21498,16 @@ var init_formatting = __esm({
|
|
|
21187
21498
|
return "";
|
|
21188
21499
|
}
|
|
21189
21500
|
};
|
|
21501
|
+
csvTransform = {
|
|
21502
|
+
id: "value.csv",
|
|
21503
|
+
kind: "formatter",
|
|
21504
|
+
summary: "Normalize a string or array of strings into a comma-separated list",
|
|
21505
|
+
run: (value) => {
|
|
21506
|
+
const rawValues = Array.isArray(value) ? value : typeof value === "string" ? value.split(",") : [];
|
|
21507
|
+
const normalized = rawValues.filter((item) => typeof item === "string").map((item) => item.trim()).filter(Boolean);
|
|
21508
|
+
return normalized.length > 0 ? Array.from(new Set(normalized)).join(",") : "";
|
|
21509
|
+
}
|
|
21510
|
+
};
|
|
21190
21511
|
marqueeLoopOptionsSchema = z38.object({
|
|
21191
21512
|
minItems: z38.number().int().min(1).default(10)
|
|
21192
21513
|
});
|
|
@@ -21212,6 +21533,7 @@ var init_formatting = __esm({
|
|
|
21212
21533
|
dateFormatShort,
|
|
21213
21534
|
arrayLengthTransform,
|
|
21214
21535
|
jsonArrayTransform,
|
|
21536
|
+
csvTransform,
|
|
21215
21537
|
marqueeLoopTransform
|
|
21216
21538
|
];
|
|
21217
21539
|
}
|
|
@@ -21706,77 +22028,6 @@ var init_ui = __esm({
|
|
|
21706
22028
|
}
|
|
21707
22029
|
});
|
|
21708
22030
|
|
|
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
22031
|
// ../blocks/src/system/transforms/registry/layout.ts
|
|
21781
22032
|
import { z as z40 } from "zod";
|
|
21782
22033
|
function resolveBackgroundVisualStyles(backgroundColor, tokens, defaultToken = "surface") {
|
|
@@ -26871,7 +27122,12 @@ var init_event_listing = __esm({
|
|
|
26871
27122
|
detailLevel: "listing",
|
|
26872
27123
|
kind: { $bind: { from: "content.kind" } },
|
|
26873
27124
|
eventSurface: { $bind: { from: "content.eventSurface" } },
|
|
26874
|
-
eventPresets: {
|
|
27125
|
+
eventPresets: {
|
|
27126
|
+
$bind: {
|
|
27127
|
+
from: "content.filterEventPresets",
|
|
27128
|
+
transforms: [{ id: "value.csv" }]
|
|
27129
|
+
}
|
|
27130
|
+
},
|
|
26875
27131
|
scheduleScope: { $bind: { from: "content.scheduleScope" } }
|
|
26876
27132
|
},
|
|
26877
27133
|
mode: "server"
|
|
@@ -27651,7 +27907,12 @@ var init_event_calendar = __esm({
|
|
|
27651
27907
|
// Pass filter params if configured
|
|
27652
27908
|
kind: { $bind: { from: "content.kind" } },
|
|
27653
27909
|
eventSurface: { $bind: { from: "content.eventSurface" } },
|
|
27654
|
-
eventPresets: {
|
|
27910
|
+
eventPresets: {
|
|
27911
|
+
$bind: {
|
|
27912
|
+
from: "content.filterEventPresets",
|
|
27913
|
+
transforms: [{ id: "value.csv" }]
|
|
27914
|
+
}
|
|
27915
|
+
},
|
|
27655
27916
|
scheduleScope: { $bind: { from: "content.scheduleScope" } },
|
|
27656
27917
|
categoryIds: { $bind: { from: "content.filterCategoryIds" } },
|
|
27657
27918
|
staffMemberId: { $bind: { from: "content.filterStaffMemberId" } },
|