@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
|
@@ -14668,6 +14668,44 @@ var init_core2 = __esm({
|
|
|
14668
14668
|
}
|
|
14669
14669
|
});
|
|
14670
14670
|
|
|
14671
|
+
// ../theme-core/src/palette/utils/onColor.ts
|
|
14672
|
+
function onColorTokenName(backgroundToken) {
|
|
14673
|
+
return `on${backgroundToken.split("-").filter((part) => part.length > 0).map((part) => part.charAt(0).toUpperCase() + part.slice(1)).join("")}`;
|
|
14674
|
+
}
|
|
14675
|
+
function isOnColorBackgroundCandidateToken(token) {
|
|
14676
|
+
const role = token.match(/^(.*?)(?:-\d{2,3})?$/)?.[1] ?? token;
|
|
14677
|
+
return BACKGROUND_ROLE_NAMES.has(role);
|
|
14678
|
+
}
|
|
14679
|
+
var BACKGROUND_ROLE_NAMES;
|
|
14680
|
+
var init_onColor = __esm({
|
|
14681
|
+
"../theme-core/src/palette/utils/onColor.ts"() {
|
|
14682
|
+
"use strict";
|
|
14683
|
+
BACKGROUND_ROLE_NAMES = /* @__PURE__ */ new Set([
|
|
14684
|
+
"primary",
|
|
14685
|
+
"secondary",
|
|
14686
|
+
"accent",
|
|
14687
|
+
"success",
|
|
14688
|
+
"warning",
|
|
14689
|
+
"destructive",
|
|
14690
|
+
"info",
|
|
14691
|
+
"background",
|
|
14692
|
+
"surface",
|
|
14693
|
+
"surfaceAlt",
|
|
14694
|
+
"muted",
|
|
14695
|
+
"neutral"
|
|
14696
|
+
]);
|
|
14697
|
+
}
|
|
14698
|
+
});
|
|
14699
|
+
|
|
14700
|
+
// ../theme-core/src/site-styles/accessibleSurfaces.ts
|
|
14701
|
+
var init_accessibleSurfaces = __esm({
|
|
14702
|
+
"../theme-core/src/site-styles/accessibleSurfaces.ts"() {
|
|
14703
|
+
"use strict";
|
|
14704
|
+
init_contrast2();
|
|
14705
|
+
init_onColor();
|
|
14706
|
+
}
|
|
14707
|
+
});
|
|
14708
|
+
|
|
14671
14709
|
// ../theme-core/src/site-styles/appearancePresetResolution.ts
|
|
14672
14710
|
function assertValidOptionGroups(preset2) {
|
|
14673
14711
|
preset2.optionGroups?.forEach((group) => {
|
|
@@ -17623,7 +17661,8 @@ function defineCuratedSiteStyle(input) {
|
|
|
17623
17661
|
name: input.name,
|
|
17624
17662
|
description: input.description,
|
|
17625
17663
|
generationBrief: input.generationBrief,
|
|
17626
|
-
|
|
17664
|
+
selectionKeywordRules: input.selectionKeywordRules ?? [],
|
|
17665
|
+
siteCreatorSelection: input.siteCreatorSelection ?? { kind: "explicit_only" },
|
|
17627
17666
|
template: {
|
|
17628
17667
|
id: asDesignSystemTemplateId(`template:${input.id.replace("site-style:", "")}`),
|
|
17629
17668
|
name: input.name,
|
|
@@ -17668,6 +17707,9 @@ var init_curatedSiteStyles = __esm({
|
|
|
17668
17707
|
"site-style:bright-community",
|
|
17669
17708
|
"site-style:quiet-luxury",
|
|
17670
17709
|
"site-style:practical-services",
|
|
17710
|
+
"site-style:quiet-practice",
|
|
17711
|
+
"site-style:personal-retreat-journal",
|
|
17712
|
+
"site-style:tactile-workshop",
|
|
17671
17713
|
"site-style:modern-wellness",
|
|
17672
17714
|
"site-style:bold-launch",
|
|
17673
17715
|
"site-style:south-west-twerk-school"
|
|
@@ -17851,12 +17893,13 @@ var init_curatedSiteStyles = __esm({
|
|
|
17851
17893
|
name: "Quiet Luxury",
|
|
17852
17894
|
description: "Minimal, confident, and refined for premium experiences and private services.",
|
|
17853
17895
|
generationBrief: "Use fewer claims, more specificity, and restrained sensory detail. Favor elegant media and low repetition over dense panels.",
|
|
17854
|
-
|
|
17855
|
-
|
|
17856
|
-
"
|
|
17857
|
-
"
|
|
17858
|
-
"
|
|
17859
|
-
"
|
|
17896
|
+
siteCreatorSelection: { kind: "site_creator_keyword_heuristic", priority: 20 },
|
|
17897
|
+
selectionKeywordRules: [
|
|
17898
|
+
{ kind: "word", value: "luxury" },
|
|
17899
|
+
{ kind: "word", value: "premium" },
|
|
17900
|
+
{ kind: "word", value: "boutique" },
|
|
17901
|
+
{ kind: "word", value: "bespoke" },
|
|
17902
|
+
{ kind: "word", value: "exclusive" }
|
|
17860
17903
|
],
|
|
17861
17904
|
tokenRecipes: {
|
|
17862
17905
|
palette: "high-contrast",
|
|
@@ -17885,13 +17928,14 @@ var init_curatedSiteStyles = __esm({
|
|
|
17885
17928
|
name: "Practical Services",
|
|
17886
17929
|
description: "Efficient, plainspoken, and conversion-focused for trades and everyday services.",
|
|
17887
17930
|
generationBrief: "Make services, location, trust signals, and contact paths obvious. Keep copy brief and avoid ornate visual treatments.",
|
|
17888
|
-
|
|
17889
|
-
|
|
17890
|
-
"
|
|
17891
|
-
"
|
|
17892
|
-
"
|
|
17893
|
-
"
|
|
17894
|
-
"
|
|
17931
|
+
siteCreatorSelection: { kind: "primary_goal_support" },
|
|
17932
|
+
selectionKeywordRules: [
|
|
17933
|
+
{ kind: "word", value: "repair" },
|
|
17934
|
+
{ kind: "substring", value: "plumb" },
|
|
17935
|
+
{ kind: "substring", value: "electric" },
|
|
17936
|
+
{ kind: "word", value: "cleaning" },
|
|
17937
|
+
{ kind: "substring", value: "landscap" },
|
|
17938
|
+
{ kind: "substring", value: "contractor" }
|
|
17895
17939
|
],
|
|
17896
17940
|
tokenRecipes: {
|
|
17897
17941
|
palette: "brand-led",
|
|
@@ -17942,18 +17986,134 @@ var init_curatedSiteStyles = __esm({
|
|
|
17942
17986
|
paletteChoice("warm-neutral-forest")
|
|
17943
17987
|
]
|
|
17944
17988
|
}),
|
|
17989
|
+
defineCuratedSiteStyle({
|
|
17990
|
+
id: "site-style:quiet-practice",
|
|
17991
|
+
name: "Quiet Practice",
|
|
17992
|
+
description: "Grounded, calm, and practical for small appointment-first practices.",
|
|
17993
|
+
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.",
|
|
17994
|
+
siteCreatorSelection: { kind: "site_creator_keyword_heuristic", priority: 30 },
|
|
17995
|
+
selectionKeywordRules: [
|
|
17996
|
+
{ kind: "substring", value: "massage" },
|
|
17997
|
+
{ kind: "word", value: "bodywork" },
|
|
17998
|
+
{ kind: "phrase", value: "appointment practice" },
|
|
17999
|
+
{ kind: "phrase", value: "appointment-first" },
|
|
18000
|
+
{ kind: "substring", value: "practitioner" },
|
|
18001
|
+
{ kind: "substring", value: "therap" },
|
|
18002
|
+
{ kind: "substring", value: "clinic" },
|
|
18003
|
+
{ kind: "phrase", value: "wellness practice" }
|
|
18004
|
+
],
|
|
18005
|
+
tokenRecipes: {
|
|
18006
|
+
palette: "soft-natural",
|
|
18007
|
+
contrast: "standard",
|
|
18008
|
+
radius: "soft",
|
|
18009
|
+
shadow: "subtle",
|
|
18010
|
+
typography: "clean-sans",
|
|
18011
|
+
spacing: "regular",
|
|
18012
|
+
motion: "subtle"
|
|
18013
|
+
},
|
|
18014
|
+
compositionBudget: quietBudget,
|
|
18015
|
+
recommendedHeaderLookIds: ["practical-utility", "clean-base", "centered-calm"],
|
|
18016
|
+
buttonPersonalityChoices: [
|
|
18017
|
+
buttonChoice("pebble"),
|
|
18018
|
+
buttonChoice("soft-pill"),
|
|
18019
|
+
buttonChoice("editorial-link")
|
|
18020
|
+
],
|
|
18021
|
+
paletteVariantChoices: [
|
|
18022
|
+
paletteChoice("soft-natural-stone"),
|
|
18023
|
+
paletteChoice("soft-natural-sage"),
|
|
18024
|
+
paletteChoice("warm-neutral-clay")
|
|
18025
|
+
]
|
|
18026
|
+
}),
|
|
18027
|
+
defineCuratedSiteStyle({
|
|
18028
|
+
id: "site-style:personal-retreat-journal",
|
|
18029
|
+
name: "Personal Retreat Journal",
|
|
18030
|
+
description: "Warm, story-led, and readable for solo practitioners with mixed offers.",
|
|
18031
|
+
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.",
|
|
18032
|
+
siteCreatorSelection: { kind: "site_creator_keyword_heuristic", priority: 40 },
|
|
18033
|
+
selectionKeywordRules: [
|
|
18034
|
+
{ kind: "substring", value: "retreat" },
|
|
18035
|
+
{ kind: "phrase", value: "solo practitioner" },
|
|
18036
|
+
{ kind: "phrase", value: "personal brand" },
|
|
18037
|
+
{ kind: "substring", value: "teacher" },
|
|
18038
|
+
{ kind: "substring", value: "coach" },
|
|
18039
|
+
{ kind: "phrase", value: "retreat resources" },
|
|
18040
|
+
{ kind: "substring", value: "journal" }
|
|
18041
|
+
],
|
|
18042
|
+
tokenRecipes: {
|
|
18043
|
+
palette: "warm-neutral",
|
|
18044
|
+
contrast: "standard",
|
|
18045
|
+
radius: "soft",
|
|
18046
|
+
shadow: "subtle",
|
|
18047
|
+
typography: "serif-editorial",
|
|
18048
|
+
spacing: "airy",
|
|
18049
|
+
motion: "subtle"
|
|
18050
|
+
},
|
|
18051
|
+
compositionBudget: balancedBudget,
|
|
18052
|
+
recommendedHeaderLookIds: ["editorial-line", "centered-calm", "minimal-transparent"],
|
|
18053
|
+
buttonPersonalityChoices: [
|
|
18054
|
+
buttonChoice("editorial-link"),
|
|
18055
|
+
buttonChoice("soft-pill"),
|
|
18056
|
+
buttonChoice("brushed-wash")
|
|
18057
|
+
],
|
|
18058
|
+
paletteVariantChoices: [
|
|
18059
|
+
paletteChoice("warm-neutral-forest"),
|
|
18060
|
+
paletteChoice("warm-neutral-clay"),
|
|
18061
|
+
paletteChoice("soft-natural-stone")
|
|
18062
|
+
]
|
|
18063
|
+
}),
|
|
18064
|
+
defineCuratedSiteStyle({
|
|
18065
|
+
id: "site-style:tactile-workshop",
|
|
18066
|
+
name: "Tactile Workshop",
|
|
18067
|
+
description: "Bright, hands-on, and image-led for maker studios, workshops, and creative classes.",
|
|
18068
|
+
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.",
|
|
18069
|
+
siteCreatorSelection: { kind: "site_creator_keyword_heuristic", priority: 50 },
|
|
18070
|
+
selectionKeywordRules: [
|
|
18071
|
+
{ kind: "substring", value: "ceramic" },
|
|
18072
|
+
{ kind: "word", value: "pottery" },
|
|
18073
|
+
{ kind: "phrase", value: "maker studio" },
|
|
18074
|
+
{ kind: "phrase", value: "craft class" },
|
|
18075
|
+
{ kind: "phrase", value: "craft workshop" },
|
|
18076
|
+
{ kind: "word", value: "clay" },
|
|
18077
|
+
{ kind: "word", value: "kiln" }
|
|
18078
|
+
],
|
|
18079
|
+
tokenRecipes: {
|
|
18080
|
+
palette: "brand-led",
|
|
18081
|
+
contrast: "standard",
|
|
18082
|
+
radius: "soft",
|
|
18083
|
+
shadow: "subtle",
|
|
18084
|
+
typography: "friendly-sans",
|
|
18085
|
+
spacing: "regular",
|
|
18086
|
+
motion: "subtle"
|
|
18087
|
+
},
|
|
18088
|
+
compositionBudget: balancedBudget,
|
|
18089
|
+
recommendedHeaderLookIds: ["brand-solid", "practical-utility", "clean-base"],
|
|
18090
|
+
recommendedFooterLookIds: ["site-footer-brand-two-band", "footer-muted-grounding"],
|
|
18091
|
+
buttonPersonalityChoices: [
|
|
18092
|
+
buttonChoice("pebble"),
|
|
18093
|
+
buttonChoice("confident-chip"),
|
|
18094
|
+
buttonChoice("ink-stamp"),
|
|
18095
|
+
buttonChoice("editorial-link")
|
|
18096
|
+
],
|
|
18097
|
+
paletteVariantChoices: [
|
|
18098
|
+
paletteChoice("brand-led-warm"),
|
|
18099
|
+
paletteChoice("brand-led-cool"),
|
|
18100
|
+
paletteChoice("soft-natural-watercolor"),
|
|
18101
|
+
paletteChoice("warm-neutral-clay")
|
|
18102
|
+
]
|
|
18103
|
+
}),
|
|
17945
18104
|
defineCuratedSiteStyle({
|
|
17946
18105
|
id: "site-style:bold-launch",
|
|
17947
18106
|
name: "Bold Launch",
|
|
17948
18107
|
description: "High-energy and punchy for launches, campaigns, and creative offers.",
|
|
17949
18108
|
generationBrief: "Use crisp positioning, bold hero structure, strong calls to action, and confident visual rhythm. Keep it precise, not shouty.",
|
|
17950
|
-
|
|
17951
|
-
|
|
17952
|
-
"
|
|
17953
|
-
"
|
|
17954
|
-
"
|
|
17955
|
-
"
|
|
17956
|
-
"
|
|
18109
|
+
siteCreatorSelection: { kind: "site_creator_keyword_heuristic", priority: 10 },
|
|
18110
|
+
selectionKeywordRules: [
|
|
18111
|
+
{ kind: "substring", value: "launch" },
|
|
18112
|
+
{ kind: "substring", value: "campaign" },
|
|
18113
|
+
{ kind: "word", value: "preorder" },
|
|
18114
|
+
{ kind: "phrase", value: "pre-order" },
|
|
18115
|
+
{ kind: "substring", value: "waitlist" },
|
|
18116
|
+
{ kind: "word", value: "drop" }
|
|
17957
18117
|
],
|
|
17958
18118
|
tokenRecipes: {
|
|
17959
18119
|
palette: "high-contrast",
|
|
@@ -17984,15 +18144,6 @@ var init_curatedSiteStyles = __esm({
|
|
|
17984
18144
|
name: "South West Twerk School",
|
|
17985
18145
|
description: "Energetic, editorial, and high-contrast for a branded dance school presence.",
|
|
17986
18146
|
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.",
|
|
17987
|
-
selectionKeywords: [
|
|
17988
|
-
"dance",
|
|
17989
|
-
"classes",
|
|
17990
|
-
"workshop",
|
|
17991
|
-
"school",
|
|
17992
|
-
"movement",
|
|
17993
|
-
"performance",
|
|
17994
|
-
"community"
|
|
17995
|
-
],
|
|
17996
18147
|
tokenRecipes: {
|
|
17997
18148
|
palette: "brand-led",
|
|
17998
18149
|
contrast: "maximum",
|
|
@@ -18281,6 +18432,131 @@ var init_modern_minimal = __esm({
|
|
|
18281
18432
|
}
|
|
18282
18433
|
});
|
|
18283
18434
|
|
|
18435
|
+
// ../theme-core/src/palette/generateShades.ts
|
|
18436
|
+
function generateShades(hexColor, name) {
|
|
18437
|
+
const shadeSteps = [50, 100, 200, 300, 400, 500, 600, 700, 800, 900, 950];
|
|
18438
|
+
const base = featuresFromHex(hexColor);
|
|
18439
|
+
const hue = base.okH;
|
|
18440
|
+
const baseChroma = base.okC;
|
|
18441
|
+
const toneMap = {
|
|
18442
|
+
50: 0.975,
|
|
18443
|
+
100: 0.945,
|
|
18444
|
+
200: 0.89,
|
|
18445
|
+
300: 0.82,
|
|
18446
|
+
400: 0.74,
|
|
18447
|
+
500: 0.66,
|
|
18448
|
+
600: 0.58,
|
|
18449
|
+
700: 0.49,
|
|
18450
|
+
800: 0.4,
|
|
18451
|
+
900: 0.28,
|
|
18452
|
+
950: 0.16
|
|
18453
|
+
};
|
|
18454
|
+
const shadeDefs = shadeSteps.map((step, idx) => {
|
|
18455
|
+
const t = idx / (shadeSteps.length - 1);
|
|
18456
|
+
const L2 = toneMap[step];
|
|
18457
|
+
const chromaFactor = 0.06 + 0.94 * Math.sin(Math.PI * t);
|
|
18458
|
+
const C = baseChroma * chromaFactor;
|
|
18459
|
+
return {
|
|
18460
|
+
name: `${name}-${step}`,
|
|
18461
|
+
hex: oklchToHexGamut(L2, C, hue)
|
|
18462
|
+
};
|
|
18463
|
+
});
|
|
18464
|
+
shadeDefs.push({ name, hex: hexColor });
|
|
18465
|
+
return shadeDefs;
|
|
18466
|
+
}
|
|
18467
|
+
var init_generateShades = __esm({
|
|
18468
|
+
"../theme-core/src/palette/generateShades.ts"() {
|
|
18469
|
+
"use strict";
|
|
18470
|
+
init_colorConversion();
|
|
18471
|
+
}
|
|
18472
|
+
});
|
|
18473
|
+
|
|
18474
|
+
// ../theme-core/src/palette/neutralScale.ts
|
|
18475
|
+
function generateNeutralScale({
|
|
18476
|
+
background,
|
|
18477
|
+
steps = 11,
|
|
18478
|
+
warm = false
|
|
18479
|
+
}) {
|
|
18480
|
+
const isDark = background === "#000000" || background.startsWith("#0") || background.startsWith("#1");
|
|
18481
|
+
const shadeNames = [50, 100, 200, 300, 400, 500, 600, 700, 800, 900, 950];
|
|
18482
|
+
const count = Math.min(steps, shadeNames.length);
|
|
18483
|
+
const scale = [];
|
|
18484
|
+
for (let i = 0; i < count; i++) {
|
|
18485
|
+
const t = i / (count - 1);
|
|
18486
|
+
const tone = isDark ? mix(0.06, 0.92, t) : mix(0.98, 0.1, t);
|
|
18487
|
+
const hex = oklchToHexGamut(tone, 0.02, warm ? 85 : 250);
|
|
18488
|
+
const name = `neutral-${shadeNames[i]}`;
|
|
18489
|
+
scale.push({ name, hex });
|
|
18490
|
+
}
|
|
18491
|
+
return scale;
|
|
18492
|
+
}
|
|
18493
|
+
function mix(a, b2, t) {
|
|
18494
|
+
return a + (b2 - a) * Math.max(0, Math.min(1, t));
|
|
18495
|
+
}
|
|
18496
|
+
var init_neutralScale = __esm({
|
|
18497
|
+
"../theme-core/src/palette/neutralScale.ts"() {
|
|
18498
|
+
"use strict";
|
|
18499
|
+
init_colorConversion();
|
|
18500
|
+
}
|
|
18501
|
+
});
|
|
18502
|
+
|
|
18503
|
+
// ../theme-core/src/palette/expandPalette.ts
|
|
18504
|
+
function colorsToMap(palette) {
|
|
18505
|
+
const map = {};
|
|
18506
|
+
for (const c2 of palette.colors) {
|
|
18507
|
+
map[c2.name] = c2.hex;
|
|
18508
|
+
}
|
|
18509
|
+
return map;
|
|
18510
|
+
}
|
|
18511
|
+
function isBackgroundDark(hex) {
|
|
18512
|
+
try {
|
|
18513
|
+
return featuresFromHex(hex).Y < 0.5;
|
|
18514
|
+
} catch {
|
|
18515
|
+
return false;
|
|
18516
|
+
}
|
|
18517
|
+
}
|
|
18518
|
+
function expandPalette(palette) {
|
|
18519
|
+
const base = colorsToMap(palette);
|
|
18520
|
+
const expanded = { ...base };
|
|
18521
|
+
const background = base.background || base.surface || "#ffffff";
|
|
18522
|
+
const neutral2 = generateNeutralScale({ background, steps: 11, warm: false });
|
|
18523
|
+
neutral2.forEach((n) => {
|
|
18524
|
+
expanded[n.name] = n.hex;
|
|
18525
|
+
});
|
|
18526
|
+
for (const [name, hex] of Object.entries(base)) {
|
|
18527
|
+
if (hex) {
|
|
18528
|
+
const shades = generateShades(hex, name);
|
|
18529
|
+
shades.forEach((shade) => {
|
|
18530
|
+
expanded[shade.name] = shade.hex;
|
|
18531
|
+
});
|
|
18532
|
+
}
|
|
18533
|
+
}
|
|
18534
|
+
if (base.text) expanded.body = base.text;
|
|
18535
|
+
if (base.danger && !base.destructive) {
|
|
18536
|
+
expanded.destructive = base.danger;
|
|
18537
|
+
}
|
|
18538
|
+
const isDark = base.background ? isBackgroundDark(base.background) : false;
|
|
18539
|
+
const isDarkMode = palette.meta?.mode === "dark" || isDark;
|
|
18540
|
+
expanded.mutedText = isDarkMode ? expanded["neutral-600"] ?? "#666" : expanded["neutral-500"] ?? "#888";
|
|
18541
|
+
for (const [token, hex] of Object.entries({ ...expanded })) {
|
|
18542
|
+
if (!hex || !isOnColorBackgroundCandidateToken(token)) continue;
|
|
18543
|
+
const onToken = onColorTokenName(token);
|
|
18544
|
+
if (expanded[onToken]) continue;
|
|
18545
|
+
expanded[onToken] = getTextColorForBackground(hex);
|
|
18546
|
+
}
|
|
18547
|
+
return expanded;
|
|
18548
|
+
}
|
|
18549
|
+
var init_expandPalette = __esm({
|
|
18550
|
+
"../theme-core/src/palette/expandPalette.ts"() {
|
|
18551
|
+
"use strict";
|
|
18552
|
+
init_generateShades();
|
|
18553
|
+
init_neutralScale();
|
|
18554
|
+
init_colorConversion();
|
|
18555
|
+
init_textColor();
|
|
18556
|
+
init_onColor();
|
|
18557
|
+
}
|
|
18558
|
+
});
|
|
18559
|
+
|
|
18284
18560
|
// ../theme-core/src/site-styles/rawStyleFields.ts
|
|
18285
18561
|
var themeV2RuntimeStyleFieldNames, themeV2BlockSpecificRawStyleFieldNames, themeV2NormalEditorRawStyleFieldNames, themeV2NormalEditorRawStyleFieldNameSet;
|
|
18286
18562
|
var init_rawStyleFields = __esm({
|
|
@@ -18464,35 +18740,31 @@ var init_runtimeCompiler = __esm({
|
|
|
18464
18740
|
"use strict";
|
|
18465
18741
|
init_schema2();
|
|
18466
18742
|
init_modern_minimal();
|
|
18743
|
+
init_expandPalette();
|
|
18467
18744
|
init_personalities();
|
|
18468
18745
|
init_variants();
|
|
18469
18746
|
init_designState();
|
|
18470
18747
|
init_types9();
|
|
18748
|
+
init_accessibleSurfaces();
|
|
18471
18749
|
defaultDesignRuntimeRules = defineDesignRuntimeRules({
|
|
18472
18750
|
sectionSurfaces: {
|
|
18473
18751
|
base: {},
|
|
18474
18752
|
"muted-band": {
|
|
18475
18753
|
background: {
|
|
18476
18754
|
type: "color",
|
|
18477
|
-
color: "muted"
|
|
18478
|
-
textColor: "text",
|
|
18479
|
-
headingColor: "text"
|
|
18755
|
+
color: "muted"
|
|
18480
18756
|
}
|
|
18481
18757
|
},
|
|
18482
18758
|
"accent-band": {
|
|
18483
18759
|
background: {
|
|
18484
18760
|
type: "color",
|
|
18485
|
-
color: "primary"
|
|
18486
|
-
textColor: "primaryForeground",
|
|
18487
|
-
headingColor: "primaryForeground"
|
|
18761
|
+
color: "primary"
|
|
18488
18762
|
}
|
|
18489
18763
|
},
|
|
18490
18764
|
"brand-depth-band": {
|
|
18491
18765
|
background: {
|
|
18492
18766
|
type: "color",
|
|
18493
|
-
color: "primary-800"
|
|
18494
|
-
textColor: "primaryForeground",
|
|
18495
|
-
headingColor: "primaryForeground"
|
|
18767
|
+
color: "primary-800"
|
|
18496
18768
|
}
|
|
18497
18769
|
},
|
|
18498
18770
|
"hero-image": {
|
|
@@ -18958,6 +19230,7 @@ var init_tokenRecipes = __esm({
|
|
|
18958
19230
|
var init_site_styles = __esm({
|
|
18959
19231
|
"../theme-core/src/site-styles/index.ts"() {
|
|
18960
19232
|
"use strict";
|
|
19233
|
+
init_accessibleSurfaces();
|
|
18961
19234
|
init_appearancePresets();
|
|
18962
19235
|
init_blockFlow();
|
|
18963
19236
|
init_compositionBudget();
|
|
@@ -20429,6 +20702,7 @@ var init_validation_constants = __esm({
|
|
|
20429
20702
|
"date.formatShort",
|
|
20430
20703
|
"array.length",
|
|
20431
20704
|
"value.jsonArray",
|
|
20705
|
+
"value.csv",
|
|
20432
20706
|
"array.marqueeLoop",
|
|
20433
20707
|
// Layout (layout.ts)
|
|
20434
20708
|
"layout.maxWidthClass",
|
|
@@ -27420,7 +27694,12 @@ var init_event_calendar = __esm({
|
|
|
27420
27694
|
// Pass filter params if configured
|
|
27421
27695
|
kind: { $bind: { from: "content.kind" } },
|
|
27422
27696
|
eventSurface: { $bind: { from: "content.eventSurface" } },
|
|
27423
|
-
eventPresets: {
|
|
27697
|
+
eventPresets: {
|
|
27698
|
+
$bind: {
|
|
27699
|
+
from: "content.filterEventPresets",
|
|
27700
|
+
transforms: [{ id: "value.csv" }]
|
|
27701
|
+
}
|
|
27702
|
+
},
|
|
27424
27703
|
scheduleScope: { $bind: { from: "content.scheduleScope" } },
|
|
27425
27704
|
categoryIds: { $bind: { from: "content.filterCategoryIds" } },
|
|
27426
27705
|
staffMemberId: { $bind: { from: "content.filterStaffMemberId" } },
|
|
@@ -27895,7 +28174,12 @@ var init_event_listing = __esm({
|
|
|
27895
28174
|
detailLevel: "listing",
|
|
27896
28175
|
kind: { $bind: { from: "content.kind" } },
|
|
27897
28176
|
eventSurface: { $bind: { from: "content.eventSurface" } },
|
|
27898
|
-
eventPresets: {
|
|
28177
|
+
eventPresets: {
|
|
28178
|
+
$bind: {
|
|
28179
|
+
from: "content.filterEventPresets",
|
|
28180
|
+
transforms: [{ id: "value.csv" }]
|
|
28181
|
+
}
|
|
28182
|
+
},
|
|
27899
28183
|
scheduleScope: { $bind: { from: "content.scheduleScope" } }
|
|
27900
28184
|
},
|
|
27901
28185
|
mode: "server"
|
|
@@ -49696,140 +49980,6 @@ var init_newsletter_form_client = __esm({
|
|
|
49696
49980
|
}
|
|
49697
49981
|
});
|
|
49698
49982
|
|
|
49699
|
-
// ../theme-core/src/palette/generateShades.ts
|
|
49700
|
-
function generateShades(hexColor, name) {
|
|
49701
|
-
const shadeSteps = [50, 100, 200, 300, 400, 500, 600, 700, 800, 900, 950];
|
|
49702
|
-
const base = featuresFromHex(hexColor);
|
|
49703
|
-
const hue = base.okH;
|
|
49704
|
-
const baseChroma = base.okC;
|
|
49705
|
-
const toneMap = {
|
|
49706
|
-
50: 0.975,
|
|
49707
|
-
100: 0.945,
|
|
49708
|
-
200: 0.89,
|
|
49709
|
-
300: 0.82,
|
|
49710
|
-
400: 0.74,
|
|
49711
|
-
500: 0.66,
|
|
49712
|
-
600: 0.58,
|
|
49713
|
-
700: 0.49,
|
|
49714
|
-
800: 0.4,
|
|
49715
|
-
900: 0.28,
|
|
49716
|
-
950: 0.16
|
|
49717
|
-
};
|
|
49718
|
-
const shadeDefs = shadeSteps.map((step, idx) => {
|
|
49719
|
-
const t = idx / (shadeSteps.length - 1);
|
|
49720
|
-
const L2 = toneMap[step];
|
|
49721
|
-
const chromaFactor = 0.06 + 0.94 * Math.sin(Math.PI * t);
|
|
49722
|
-
const C = baseChroma * chromaFactor;
|
|
49723
|
-
return {
|
|
49724
|
-
name: `${name}-${step}`,
|
|
49725
|
-
hex: oklchToHexGamut(L2, C, hue)
|
|
49726
|
-
};
|
|
49727
|
-
});
|
|
49728
|
-
shadeDefs.push({ name, hex: hexColor });
|
|
49729
|
-
return shadeDefs;
|
|
49730
|
-
}
|
|
49731
|
-
var init_generateShades = __esm({
|
|
49732
|
-
"../theme-core/src/palette/generateShades.ts"() {
|
|
49733
|
-
"use strict";
|
|
49734
|
-
init_colorConversion();
|
|
49735
|
-
}
|
|
49736
|
-
});
|
|
49737
|
-
|
|
49738
|
-
// ../theme-core/src/palette/neutralScale.ts
|
|
49739
|
-
function generateNeutralScale({
|
|
49740
|
-
background,
|
|
49741
|
-
steps = 11,
|
|
49742
|
-
warm = false
|
|
49743
|
-
}) {
|
|
49744
|
-
const isDark = background === "#000000" || background.startsWith("#0") || background.startsWith("#1");
|
|
49745
|
-
const shadeNames = [50, 100, 200, 300, 400, 500, 600, 700, 800, 900, 950];
|
|
49746
|
-
const count = Math.min(steps, shadeNames.length);
|
|
49747
|
-
const scale = [];
|
|
49748
|
-
for (let i = 0; i < count; i++) {
|
|
49749
|
-
const t = i / (count - 1);
|
|
49750
|
-
const tone = isDark ? mix(0.06, 0.92, t) : mix(0.98, 0.1, t);
|
|
49751
|
-
const hex = oklchToHexGamut(tone, 0.02, warm ? 85 : 250);
|
|
49752
|
-
const name = `neutral-${shadeNames[i]}`;
|
|
49753
|
-
scale.push({ name, hex });
|
|
49754
|
-
}
|
|
49755
|
-
return scale;
|
|
49756
|
-
}
|
|
49757
|
-
function mix(a, b2, t) {
|
|
49758
|
-
return a + (b2 - a) * Math.max(0, Math.min(1, t));
|
|
49759
|
-
}
|
|
49760
|
-
var init_neutralScale = __esm({
|
|
49761
|
-
"../theme-core/src/palette/neutralScale.ts"() {
|
|
49762
|
-
"use strict";
|
|
49763
|
-
init_colorConversion();
|
|
49764
|
-
}
|
|
49765
|
-
});
|
|
49766
|
-
|
|
49767
|
-
// ../theme-core/src/palette/expandPalette.ts
|
|
49768
|
-
function colorsToMap(palette) {
|
|
49769
|
-
const map = {};
|
|
49770
|
-
for (const c2 of palette.colors) {
|
|
49771
|
-
map[c2.name] = c2.hex;
|
|
49772
|
-
}
|
|
49773
|
-
return map;
|
|
49774
|
-
}
|
|
49775
|
-
function isBackgroundDark(hex) {
|
|
49776
|
-
try {
|
|
49777
|
-
return featuresFromHex(hex).Y < 0.5;
|
|
49778
|
-
} catch {
|
|
49779
|
-
return false;
|
|
49780
|
-
}
|
|
49781
|
-
}
|
|
49782
|
-
function expandPalette(palette) {
|
|
49783
|
-
const base = colorsToMap(palette);
|
|
49784
|
-
const expanded = { ...base };
|
|
49785
|
-
const background = base.background || base.surface || "#ffffff";
|
|
49786
|
-
const neutral2 = generateNeutralScale({ background, steps: 11, warm: false });
|
|
49787
|
-
neutral2.forEach((n) => {
|
|
49788
|
-
expanded[n.name] = n.hex;
|
|
49789
|
-
});
|
|
49790
|
-
for (const [name, hex] of Object.entries(base)) {
|
|
49791
|
-
if (hex) {
|
|
49792
|
-
const shades = generateShades(hex, name);
|
|
49793
|
-
shades.forEach((shade) => {
|
|
49794
|
-
expanded[shade.name] = shade.hex;
|
|
49795
|
-
});
|
|
49796
|
-
}
|
|
49797
|
-
}
|
|
49798
|
-
if (base.text) expanded.body = base.text;
|
|
49799
|
-
if (base.danger && !base.destructive) {
|
|
49800
|
-
expanded.destructive = base.danger;
|
|
49801
|
-
}
|
|
49802
|
-
const isDark = base.background ? isBackgroundDark(base.background) : false;
|
|
49803
|
-
const isDarkMode = palette.meta?.mode === "dark" || isDark;
|
|
49804
|
-
expanded.mutedText = isDarkMode ? expanded["neutral-600"] ?? "#666" : expanded["neutral-500"] ?? "#888";
|
|
49805
|
-
const onRoles = [
|
|
49806
|
-
{ role: "primary", on: "onPrimary" },
|
|
49807
|
-
{ role: "secondary", on: "onSecondary" },
|
|
49808
|
-
{ role: "accent", on: "onAccent" },
|
|
49809
|
-
{ role: "success", on: "onSuccess" },
|
|
49810
|
-
{ role: "warning", on: "onWarning" },
|
|
49811
|
-
{ role: "destructive", on: "onDestructive" },
|
|
49812
|
-
{ role: "info", on: "onInfo" },
|
|
49813
|
-
{ role: "surface", on: "onSurface" }
|
|
49814
|
-
];
|
|
49815
|
-
for (const { role, on: on2 } of onRoles) {
|
|
49816
|
-
const bg = base[role];
|
|
49817
|
-
if (!bg) continue;
|
|
49818
|
-
if (expanded[on2]) continue;
|
|
49819
|
-
expanded[on2] = getTextColorForBackground(bg);
|
|
49820
|
-
}
|
|
49821
|
-
return expanded;
|
|
49822
|
-
}
|
|
49823
|
-
var init_expandPalette = __esm({
|
|
49824
|
-
"../theme-core/src/palette/expandPalette.ts"() {
|
|
49825
|
-
"use strict";
|
|
49826
|
-
init_generateShades();
|
|
49827
|
-
init_neutralScale();
|
|
49828
|
-
init_colorConversion();
|
|
49829
|
-
init_textColor();
|
|
49830
|
-
}
|
|
49831
|
-
});
|
|
49832
|
-
|
|
49833
49983
|
// ../theme-core/src/runtime/fontFamily.ts
|
|
49834
49984
|
function isGenericFamily(font) {
|
|
49835
49985
|
return GENERIC_CSS_FAMILIES.includes(font.toLowerCase());
|
|
@@ -65696,6 +65846,16 @@ var jsonArrayTransform = {
|
|
|
65696
65846
|
return "";
|
|
65697
65847
|
}
|
|
65698
65848
|
};
|
|
65849
|
+
var csvTransform = {
|
|
65850
|
+
id: "value.csv",
|
|
65851
|
+
kind: "formatter",
|
|
65852
|
+
summary: "Normalize a string or array of strings into a comma-separated list",
|
|
65853
|
+
run: (value) => {
|
|
65854
|
+
const rawValues = Array.isArray(value) ? value : typeof value === "string" ? value.split(",") : [];
|
|
65855
|
+
const normalized = rawValues.filter((item) => typeof item === "string").map((item) => item.trim()).filter(Boolean);
|
|
65856
|
+
return normalized.length > 0 ? Array.from(new Set(normalized)).join(",") : "";
|
|
65857
|
+
}
|
|
65858
|
+
};
|
|
65699
65859
|
var marqueeLoopOptionsSchema = z58.object({
|
|
65700
65860
|
minItems: z58.number().int().min(1).default(10)
|
|
65701
65861
|
});
|
|
@@ -65721,6 +65881,7 @@ var formattingTransforms = [
|
|
|
65721
65881
|
dateFormatShort,
|
|
65722
65882
|
arrayLengthTransform,
|
|
65723
65883
|
jsonArrayTransform,
|
|
65884
|
+
csvTransform,
|
|
65724
65885
|
marqueeLoopTransform
|
|
65725
65886
|
];
|
|
65726
65887
|
|
|
@@ -73360,6 +73521,9 @@ init_textColor();
|
|
|
73360
73521
|
// ../theme-core/src/palette/utils/legibility.ts
|
|
73361
73522
|
init_contrast2();
|
|
73362
73523
|
|
|
73524
|
+
// ../theme-core/src/palette/utils/index.ts
|
|
73525
|
+
init_onColor();
|
|
73526
|
+
|
|
73363
73527
|
// ../theme-core/src/mock-themes/components/PaletteCard.tsx
|
|
73364
73528
|
init_expandPalette();
|
|
73365
73529
|
|
|
@@ -75856,6 +76020,17 @@ async function Layout({
|
|
|
75856
76020
|
return useThemeScope ? /* @__PURE__ */ jsx162(ThemeScope2, { theme, children: content }) : content;
|
|
75857
76021
|
}
|
|
75858
76022
|
|
|
76023
|
+
// ../api/src/apiEndpointTypes.ts
|
|
76024
|
+
function blockedDemoMutationPolicy(classification, publicMessage) {
|
|
76025
|
+
if (publicMessage.trim() === "") {
|
|
76026
|
+
throw new Error(`Demo mutation policy ${classification} requires publicMessage.`);
|
|
76027
|
+
}
|
|
76028
|
+
return {
|
|
76029
|
+
classification,
|
|
76030
|
+
publicMessage
|
|
76031
|
+
};
|
|
76032
|
+
}
|
|
76033
|
+
|
|
75859
76034
|
// ../api/src/cache-tags.ts
|
|
75860
76035
|
var TAG_TEMPLATES = {
|
|
75861
76036
|
siteCollection: "riverbank:site",
|
|
@@ -75886,6 +76061,18 @@ var TAG_TEMPLATES = {
|
|
|
75886
76061
|
};
|
|
75887
76062
|
|
|
75888
76063
|
// ../api/src/endpoints.ts
|
|
76064
|
+
var DEMO_MUTATION_BLOCKED_HIDDEN = blockedDemoMutationPolicy(
|
|
76065
|
+
"blocked-hidden",
|
|
76066
|
+
"This action is not available in demo sites."
|
|
76067
|
+
);
|
|
76068
|
+
var DEMO_MUTATION_BLOCKED_DISABLED = blockedDemoMutationPolicy(
|
|
76069
|
+
"blocked-disabled",
|
|
76070
|
+
"This setting is disabled in demo sites."
|
|
76071
|
+
);
|
|
76072
|
+
var DEMO_MUTATION_INTERNAL_ONLY = blockedDemoMutationPolicy(
|
|
76073
|
+
"internal-only",
|
|
76074
|
+
"This internal operation is not available in demo sites."
|
|
76075
|
+
);
|
|
75889
76076
|
var ENDPOINT_DEFINITIONS = {
|
|
75890
76077
|
// AI endpoints - no cache due to dynamic nature
|
|
75891
76078
|
aiContentUpdateChat: {
|
|
@@ -76002,7 +76189,8 @@ var ENDPOINT_DEFINITIONS = {
|
|
|
76002
76189
|
path: "/sites/{siteId}/ai/generate",
|
|
76003
76190
|
method: "POST",
|
|
76004
76191
|
auth: "user",
|
|
76005
|
-
responseKind: "json"
|
|
76192
|
+
responseKind: "json",
|
|
76193
|
+
demoMutation: DEMO_MUTATION_BLOCKED_HIDDEN
|
|
76006
76194
|
},
|
|
76007
76195
|
getOnboardingPreviewStatus: {
|
|
76008
76196
|
path: "/public/sites/{siteId}/onboarding/preview-status",
|
|
@@ -76023,7 +76211,8 @@ var ENDPOINT_DEFINITIONS = {
|
|
|
76023
76211
|
method: "POST",
|
|
76024
76212
|
auth: "user",
|
|
76025
76213
|
errors: [],
|
|
76026
|
-
responseKind: "json"
|
|
76214
|
+
responseKind: "json",
|
|
76215
|
+
demoMutation: DEMO_MUTATION_BLOCKED_DISABLED
|
|
76027
76216
|
},
|
|
76028
76217
|
goLiveSite: {
|
|
76029
76218
|
path: "/sites/{siteId}/launch/go-live",
|
|
@@ -76092,20 +76281,23 @@ var ENDPOINT_DEFINITIONS = {
|
|
|
76092
76281
|
path: "/sites/{siteId}/ai/site-wizard/goals",
|
|
76093
76282
|
method: "POST",
|
|
76094
76283
|
auth: "user",
|
|
76095
|
-
responseKind: "json"
|
|
76284
|
+
responseKind: "json",
|
|
76285
|
+
demoMutation: DEMO_MUTATION_BLOCKED_HIDDEN
|
|
76096
76286
|
},
|
|
76097
76287
|
aiSiteWizardIntakeTriage: {
|
|
76098
76288
|
path: "/sites/{siteId}/ai/site-wizard/intake-triage",
|
|
76099
76289
|
method: "POST",
|
|
76100
76290
|
auth: "user",
|
|
76101
|
-
responseKind: "json"
|
|
76291
|
+
responseKind: "json",
|
|
76292
|
+
demoMutation: DEMO_MUTATION_BLOCKED_HIDDEN
|
|
76102
76293
|
},
|
|
76103
76294
|
aiSiteWizardTelemetry: {
|
|
76104
76295
|
path: "/sites/{siteId}/ai/site-wizard/telemetry",
|
|
76105
76296
|
method: "POST",
|
|
76106
76297
|
auth: "user",
|
|
76107
76298
|
errors: [],
|
|
76108
|
-
responseKind: "json"
|
|
76299
|
+
responseKind: "json",
|
|
76300
|
+
demoMutation: DEMO_MUTATION_BLOCKED_HIDDEN
|
|
76109
76301
|
},
|
|
76110
76302
|
// Admin SEO
|
|
76111
76303
|
listGscPropertiesAdmin: {
|
|
@@ -76312,7 +76504,7 @@ var ENDPOINT_DEFINITIONS = {
|
|
|
76312
76504
|
responseKind: "json",
|
|
76313
76505
|
errors: ["resource:not_found", "server:internal_error"]
|
|
76314
76506
|
},
|
|
76315
|
-
// Ops (event
|
|
76507
|
+
// Ops (staff event operators/admins)
|
|
76316
76508
|
opsListUpcomingEventOccurrences: {
|
|
76317
76509
|
path: "/ops/sites/{siteId}/events",
|
|
76318
76510
|
method: "GET",
|
|
@@ -76330,6 +76522,7 @@ var ENDPOINT_DEFINITIONS = {
|
|
|
76330
76522
|
method: "POST",
|
|
76331
76523
|
auth: "user",
|
|
76332
76524
|
responseKind: "json",
|
|
76525
|
+
demoMutation: DEMO_MUTATION_INTERNAL_ONLY,
|
|
76333
76526
|
errors: [
|
|
76334
76527
|
"validation:invalid_input",
|
|
76335
76528
|
"auth:forbidden",
|
|
@@ -76342,6 +76535,7 @@ var ENDPOINT_DEFINITIONS = {
|
|
|
76342
76535
|
method: "POST",
|
|
76343
76536
|
auth: "user",
|
|
76344
76537
|
responseKind: "json",
|
|
76538
|
+
demoMutation: DEMO_MUTATION_INTERNAL_ONLY,
|
|
76345
76539
|
errors: [
|
|
76346
76540
|
"validation:invalid_input",
|
|
76347
76541
|
"auth:forbidden",
|
|
@@ -76360,6 +76554,7 @@ var ENDPOINT_DEFINITIONS = {
|
|
|
76360
76554
|
method: "POST",
|
|
76361
76555
|
auth: "user",
|
|
76362
76556
|
responseKind: "json",
|
|
76557
|
+
demoMutation: DEMO_MUTATION_INTERNAL_ONLY,
|
|
76363
76558
|
errors: [
|
|
76364
76559
|
"validation:invalid_input",
|
|
76365
76560
|
"auth:forbidden",
|
|
@@ -76393,6 +76588,7 @@ var ENDPOINT_DEFINITIONS = {
|
|
|
76393
76588
|
method: "POST",
|
|
76394
76589
|
auth: "user",
|
|
76395
76590
|
responseKind: "json",
|
|
76591
|
+
demoMutation: DEMO_MUTATION_INTERNAL_ONLY,
|
|
76396
76592
|
errors: [
|
|
76397
76593
|
"validation:invalid_input",
|
|
76398
76594
|
"auth:forbidden",
|
|
@@ -76421,7 +76617,8 @@ var ENDPOINT_DEFINITIONS = {
|
|
|
76421
76617
|
method: "POST",
|
|
76422
76618
|
tags: [TAG_TEMPLATES.site, TAG_TEMPLATES.siteEmailSettings],
|
|
76423
76619
|
auth: "user",
|
|
76424
|
-
responseKind: "json"
|
|
76620
|
+
responseKind: "json",
|
|
76621
|
+
demoMutation: DEMO_MUTATION_BLOCKED_HIDDEN
|
|
76425
76622
|
},
|
|
76426
76623
|
previewEmailTemplate: {
|
|
76427
76624
|
path: "/sites/{siteId}/settings/emails/preview",
|
|
@@ -76472,14 +76669,16 @@ var ENDPOINT_DEFINITIONS = {
|
|
|
76472
76669
|
method: "POST",
|
|
76473
76670
|
tags: [TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter],
|
|
76474
76671
|
auth: "user",
|
|
76475
|
-
responseKind: "json"
|
|
76672
|
+
responseKind: "json",
|
|
76673
|
+
demoMutation: DEMO_MUTATION_BLOCKED_HIDDEN
|
|
76476
76674
|
},
|
|
76477
76675
|
createNewsletterSubscribersImportUploadUrl: {
|
|
76478
76676
|
path: "/sites/{siteId}/newsletter/subscribers/import-url",
|
|
76479
76677
|
method: "POST",
|
|
76480
76678
|
tags: [TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter],
|
|
76481
76679
|
auth: "user",
|
|
76482
|
-
responseKind: "json"
|
|
76680
|
+
responseKind: "json",
|
|
76681
|
+
demoMutation: DEMO_MUTATION_BLOCKED_HIDDEN
|
|
76483
76682
|
},
|
|
76484
76683
|
exportNewsletterSubscribersCsv: {
|
|
76485
76684
|
path: "/sites/{siteId}/newsletter/subscribers/export.csv",
|
|
@@ -76676,14 +76875,16 @@ var ENDPOINT_DEFINITIONS = {
|
|
|
76676
76875
|
method: "POST",
|
|
76677
76876
|
tags: [TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter],
|
|
76678
76877
|
auth: "user",
|
|
76679
|
-
responseKind: "json"
|
|
76878
|
+
responseKind: "json",
|
|
76879
|
+
demoMutation: DEMO_MUTATION_BLOCKED_HIDDEN
|
|
76680
76880
|
},
|
|
76681
76881
|
testSendNewsletterCampaign: {
|
|
76682
76882
|
path: "/sites/{siteId}/newsletter/campaigns/{campaignId}/test-send",
|
|
76683
76883
|
method: "POST",
|
|
76684
76884
|
tags: [TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter],
|
|
76685
76885
|
auth: "user",
|
|
76686
|
-
responseKind: "json"
|
|
76886
|
+
responseKind: "json",
|
|
76887
|
+
demoMutation: DEMO_MUTATION_BLOCKED_HIDDEN
|
|
76687
76888
|
},
|
|
76688
76889
|
listNewsletterSendJobs: {
|
|
76689
76890
|
path: "/sites/{siteId}/newsletter/jobs",
|
|
@@ -77371,7 +77572,8 @@ var ENDPOINT_DEFINITIONS = {
|
|
|
77371
77572
|
method: "DELETE",
|
|
77372
77573
|
tags: ["site", "site-{siteId}"],
|
|
77373
77574
|
auth: "user",
|
|
77374
|
-
responseKind: "json"
|
|
77575
|
+
responseKind: "json",
|
|
77576
|
+
demoMutation: DEMO_MUTATION_BLOCKED_HIDDEN
|
|
77375
77577
|
},
|
|
77376
77578
|
listSiteMembers: {
|
|
77377
77579
|
path: "/sites/{siteId}/members",
|
|
@@ -77827,7 +78029,8 @@ var ENDPOINT_DEFINITIONS = {
|
|
|
77827
78029
|
method: "POST",
|
|
77828
78030
|
tags: ["site-{siteId}", "content-{siteId}-{type}"],
|
|
77829
78031
|
auth: "user",
|
|
77830
|
-
responseKind: "json"
|
|
78032
|
+
responseKind: "json",
|
|
78033
|
+
demoMutation: DEMO_MUTATION_BLOCKED_HIDDEN
|
|
77831
78034
|
},
|
|
77832
78035
|
updateSiteGeneralSettings: {
|
|
77833
78036
|
path: "/sites/{siteId}/settings/general",
|
|
@@ -80066,6 +80269,7 @@ var ENDPOINT_DEFINITIONS = {
|
|
|
80066
80269
|
method: "POST",
|
|
80067
80270
|
tags: ["site-{siteId}"],
|
|
80068
80271
|
auth: "user",
|
|
80272
|
+
demoMutation: DEMO_MUTATION_BLOCKED_HIDDEN,
|
|
80069
80273
|
errors: [
|
|
80070
80274
|
"validation:invalid_input",
|
|
80071
80275
|
"auth:forbidden",
|
|
@@ -80080,6 +80284,7 @@ var ENDPOINT_DEFINITIONS = {
|
|
|
80080
80284
|
method: "POST",
|
|
80081
80285
|
tags: ["site-{siteId}"],
|
|
80082
80286
|
auth: "user",
|
|
80287
|
+
demoMutation: DEMO_MUTATION_BLOCKED_HIDDEN,
|
|
80083
80288
|
errors: [
|
|
80084
80289
|
"validation:invalid_input",
|
|
80085
80290
|
"auth:forbidden",
|
|
@@ -80389,6 +80594,7 @@ var ENDPOINT_DEFINITIONS = {
|
|
|
80389
80594
|
tags: ["site-{siteId}", "passes-{siteId}"],
|
|
80390
80595
|
auth: "user",
|
|
80391
80596
|
responseKind: "json",
|
|
80597
|
+
demoMutation: DEMO_MUTATION_BLOCKED_DISABLED,
|
|
80392
80598
|
errors: ["validation:invalid_input", "server:internal_error"]
|
|
80393
80599
|
},
|
|
80394
80600
|
getBookingPass: {
|
|
@@ -80404,6 +80610,7 @@ var ENDPOINT_DEFINITIONS = {
|
|
|
80404
80610
|
tags: ["site-{siteId}", "passes-{siteId}"],
|
|
80405
80611
|
auth: "user",
|
|
80406
80612
|
responseKind: "json",
|
|
80613
|
+
demoMutation: DEMO_MUTATION_BLOCKED_DISABLED,
|
|
80407
80614
|
errors: [
|
|
80408
80615
|
"validation:invalid_input",
|
|
80409
80616
|
"resource:not_found",
|
|
@@ -80416,6 +80623,7 @@ var ENDPOINT_DEFINITIONS = {
|
|
|
80416
80623
|
tags: ["site-{siteId}", "passes-{siteId}"],
|
|
80417
80624
|
auth: "user",
|
|
80418
80625
|
responseKind: "json",
|
|
80626
|
+
demoMutation: DEMO_MUTATION_BLOCKED_DISABLED,
|
|
80419
80627
|
errors: [
|
|
80420
80628
|
"validation:invalid_input",
|
|
80421
80629
|
"resource:not_found",
|
|
@@ -80471,6 +80679,7 @@ var ENDPOINT_DEFINITIONS = {
|
|
|
80471
80679
|
tags: ["site-{siteId}", "memberships-{siteId}"],
|
|
80472
80680
|
auth: "user",
|
|
80473
80681
|
responseKind: "json",
|
|
80682
|
+
demoMutation: DEMO_MUTATION_BLOCKED_DISABLED,
|
|
80474
80683
|
errors: ["validation:invalid_input", "server:internal_error"]
|
|
80475
80684
|
},
|
|
80476
80685
|
getBookingMembership: {
|
|
@@ -80486,6 +80695,7 @@ var ENDPOINT_DEFINITIONS = {
|
|
|
80486
80695
|
tags: ["site-{siteId}", "memberships-{siteId}"],
|
|
80487
80696
|
auth: "user",
|
|
80488
80697
|
responseKind: "json",
|
|
80698
|
+
demoMutation: DEMO_MUTATION_BLOCKED_DISABLED,
|
|
80489
80699
|
errors: [
|
|
80490
80700
|
"validation:invalid_input",
|
|
80491
80701
|
"resource:not_found",
|
|
@@ -80498,6 +80708,7 @@ var ENDPOINT_DEFINITIONS = {
|
|
|
80498
80708
|
tags: ["site-{siteId}", "memberships-{siteId}"],
|
|
80499
80709
|
auth: "user",
|
|
80500
80710
|
responseKind: "json",
|
|
80711
|
+
demoMutation: DEMO_MUTATION_BLOCKED_DISABLED,
|
|
80501
80712
|
errors: [
|
|
80502
80713
|
"validation:invalid_input",
|
|
80503
80714
|
"resource:not_found",
|
|
@@ -80714,6 +80925,7 @@ var ENDPOINT_DEFINITIONS = {
|
|
|
80714
80925
|
tags: ["site-{siteId}", "customers-{siteId}"],
|
|
80715
80926
|
auth: "user",
|
|
80716
80927
|
responseKind: "json",
|
|
80928
|
+
demoMutation: DEMO_MUTATION_BLOCKED_DISABLED,
|
|
80717
80929
|
errors: [
|
|
80718
80930
|
"validation:invalid_input",
|
|
80719
80931
|
"auth:forbidden",
|
|
@@ -82093,8 +82305,7 @@ var dashboardNavVisibilityBaseSchema = z68.object({
|
|
|
82093
82305
|
var dashboardNavVisibilityRolesSchema = z68.object({
|
|
82094
82306
|
administrator: dashboardNavVisibilityBaseSchema.optional(),
|
|
82095
82307
|
editor: dashboardNavVisibilityBaseSchema.optional(),
|
|
82096
|
-
team_member: dashboardNavVisibilityBaseSchema.optional()
|
|
82097
|
-
event_host: dashboardNavVisibilityBaseSchema.optional()
|
|
82308
|
+
team_member: dashboardNavVisibilityBaseSchema.optional()
|
|
82098
82309
|
}).strip().optional();
|
|
82099
82310
|
var dashboardNavVisibilitySchema = dashboardNavVisibilityBaseSchema.extend({
|
|
82100
82311
|
roles: dashboardNavVisibilityRolesSchema
|
|
@@ -82615,6 +82826,21 @@ var appointmentSetupServiceDraftSchema = z70.object({
|
|
|
82615
82826
|
timezone: z70.string().trim().min(1).nullable(),
|
|
82616
82827
|
payment: appointmentSetupPaymentDraftSchema,
|
|
82617
82828
|
assignment: appointmentSetupServiceAssignmentDraftSchema
|
|
82829
|
+
}).superRefine((service, ctx) => {
|
|
82830
|
+
if (service.payment.priceType === "paid" && (service.priceAmount === null || service.priceAmount <= 0)) {
|
|
82831
|
+
ctx.addIssue({
|
|
82832
|
+
code: "custom",
|
|
82833
|
+
path: ["priceAmount"],
|
|
82834
|
+
message: "Paid appointment services need a positive price."
|
|
82835
|
+
});
|
|
82836
|
+
}
|
|
82837
|
+
if (service.payment.priceType === "free" && service.priceAmount !== null && service.priceAmount > 0) {
|
|
82838
|
+
ctx.addIssue({
|
|
82839
|
+
code: "custom",
|
|
82840
|
+
path: ["priceAmount"],
|
|
82841
|
+
message: "Free appointment services cannot carry a positive price."
|
|
82842
|
+
});
|
|
82843
|
+
}
|
|
82618
82844
|
});
|
|
82619
82845
|
var appointmentSetupPractitionerDraftSchema = z70.object({
|
|
82620
82846
|
ref: appointmentSetupRefSchema,
|