@riverbankcms/sdk 0.107.0 → 0.108.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/{PreviewEditorSidebar-DpAbAl08.mjs → PreviewEditorSidebar-BBT-kZAM.mjs} +46 -11
- package/dist/{PreviewEditorUI-O7cn6Xxv.mjs → PreviewEditorUI-D69xNKT2.mjs} +10 -9
- package/dist/{PreviewQueryProvider-D0tnKl0t.mjs → PreviewQueryProvider-RRu7wyQ5.mjs} +1 -1
- package/dist/{SdkPreviewModeRuntime-CVB7urtl.mjs → SdkPreviewModeRuntime-CuDjXH6o.mjs} +426 -72
- package/dist/{SiteChromeCustomizeContext-C_sizso-.mjs → SiteChromeCustomizeContext-BQUY2dEk.mjs} +3865 -544
- package/dist/_dts/ai/src/contracts/proposals.d.ts +3712 -220
- package/dist/_dts/api/src/blocks.d.ts +41 -7
- package/dist/_dts/api/src/bookingRecords.d.ts +180 -115
- package/dist/_dts/api/src/cache-tags.d.ts +3 -0
- package/dist/_dts/api/src/contentRuntime.d.ts +19 -1
- package/dist/_dts/api/src/endpoints.d.ts +99 -0
- package/dist/_dts/api/src/footer-settings.d.ts +1 -0
- package/dist/_dts/api/src/footerSettings.d.ts +8 -0
- package/dist/_dts/api/src/index.d.ts +5 -2
- package/dist/_dts/api/src/navigation/contracts.d.ts +3 -3
- package/dist/_dts/api/src/previewContentContract.d.ts +4 -0
- package/dist/_dts/api/src/sdkContracts.d.ts +62 -0
- package/dist/_dts/api/src/siteBanner.d.ts +2 -2
- package/dist/_dts/api/src/siteManagementEndpoints.d.ts +143 -55
- package/dist/_dts/api/src/sitePlatformEndpoints.d.ts +7 -1
- package/dist/_dts/api/src/siteRuntimeEndpoints.d.ts +41 -1
- package/dist/_dts/blocks/src/primitives/layout/Section.d.ts +0 -1
- package/dist/_dts/blocks/src/rendering/server.d.ts +1 -0
- package/dist/_dts/blocks/src/system/blocks/site-footer-runtime.d.ts +50 -0
- package/dist/_dts/blocks/src/system/blocks/site-footer.d.ts +9 -48
- package/dist/_dts/blocks/src/system/constants/background.d.ts +1 -1
- package/dist/_dts/blocks/src/system/icons/registry.d.ts +2 -1
- package/dist/_dts/blocks/src/system/icons/social.d.ts +5 -0
- package/dist/_dts/blocks/src/system/icons/svg.d.ts +1 -0
- package/dist/_dts/blocks/src/system/manifest/schema.d.ts +2 -2
- package/dist/_dts/blocks/src/system/node/fragments/backgroundLayer.d.ts +13 -0
- package/dist/_dts/blocks/src/system/node/fragments/footerNav.d.ts +2 -0
- package/dist/_dts/blocks/src/system/node/fragments/styledContainer.d.ts +4 -4
- package/dist/_dts/blocks/src/system/node/fragments/styledSection.d.ts +3 -12
- package/dist/_dts/blocks/src/system/node/validation-constants.d.ts +1 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/shared/contract-schemas.d.ts +1 -1
- package/dist/_dts/blocks/src/system/types/link.d.ts +3 -3
- package/dist/_dts/content-editor/src/FooterComposerPanel.d.ts +14 -0
- package/dist/_dts/content-editor/src/controller/EntryControllerProvider.d.ts +27 -8
- package/dist/_dts/content-editor/src/footerComposer.d.ts +56 -0
- package/dist/_dts/content-editor/src/hooks/useEntryActions.d.ts +1 -1
- package/dist/_dts/content-editor/src/hooks/useEntryMutations.d.ts +5 -5
- package/dist/_dts/content-editor/src/index.d.ts +2 -0
- package/dist/_dts/content-editor/src/primitives/PreviewRichTextEditor.d.ts +3 -1
- package/dist/_dts/content-editor/src/services/contentEntryServices.d.ts +20 -36
- package/dist/_dts/content-editor/src/ui/editorSnapshot.d.ts +5 -1
- package/dist/_dts/content-editor/src/ui/editorUiStore.d.ts +11 -0
- package/dist/_dts/content-model/src/content-types/schema.d.ts +1 -1
- package/dist/_dts/content-model/src/definitions/shared.d.ts +3 -0
- package/dist/_dts/core/src/branded.d.ts +3 -0
- package/dist/_dts/core/src/editor-state.d.ts +4 -0
- package/dist/_dts/core/src/footer-composition.d.ts +143 -0
- package/dist/_dts/core/src/index.d.ts +2 -0
- package/dist/_dts/core/src/public-profile.d.ts +73 -0
- package/dist/_dts/db/src/generated/supabase/database.types.d.ts +3043 -2941
- package/dist/_dts/db/src/schemas/forms.d.ts +10 -10
- package/dist/_dts/editor/src/primitives/rich-text/RichTextEditorSurface.d.ts +5 -0
- package/dist/_dts/editor-blocks/src/BlockEditor.d.ts +1 -0
- package/dist/_dts/editor-blocks/src/block-editor/hooks/useBlockCreation.d.ts +2 -1
- package/dist/_dts/editor-blocks/src/block-editor/hooks/useBlockDuplication.d.ts +2 -1
- package/dist/_dts/editor-blocks/src/block-editor/hooks/useBlockReorder.d.ts +2 -1
- package/dist/_dts/editor-blocks/src/block-editor/owner.d.ts +10 -0
- package/dist/_dts/editor-blocks/src/block-editor/types.d.ts +1 -0
- package/dist/_dts/path-utils/src/index.d.ts +5 -0
- package/dist/_dts/preview-next/src/client/preview/PreviewChromeLayer.d.ts +5 -0
- package/dist/_dts/preview-next/src/client/preview/PreviewEditorSidebar.d.ts +2 -1
- package/dist/_dts/preview-next/src/client/preview/PreviewEntryControllerProvider.d.ts +1 -0
- package/dist/_dts/preview-next/src/client/preview/PreviewShell.d.ts +2 -1
- package/dist/_dts/preview-next/src/client/preview/PreviewShellLayout.d.ts +2 -1
- package/dist/_dts/preview-next/src/client/preview/previewErrorMessages.d.ts +4 -0
- package/dist/_dts/sdk/src/cli/content/reader.d.ts +1 -0
- package/dist/_dts/sdk/src/client/management/blocks.d.ts +14 -1
- package/dist/_dts/sdk/src/client/management/index.d.ts +1 -0
- package/dist/_dts/sdk/src/client/management/types.d.ts +15 -1
- package/dist/_dts/sdk/src/config/content-types.d.ts +2 -0
- package/dist/_dts/sdk/src/config/content-validation.d.ts +4 -0
- package/dist/_dts/sdk/src/navigation/index.d.ts +2 -0
- package/dist/_dts/sdk/src/public-api/contracts.d.ts +3 -2
- package/dist/_dts/sdk/src/rendering/components/Layout.d.ts +2 -1
- package/dist/_dts/sdk/src/rendering/helpers/loadContent.d.ts +1 -1
- package/dist/_dts/sdk/src/version.d.ts +1 -1
- package/dist/_dts/site-commands/src/commands.d.ts +13 -10
- package/dist/_dts/theme-core/src/accordions/types.d.ts +2 -2
- package/dist/_dts/theme-core/src/buttons/personalities/index.d.ts +11 -0
- package/dist/_dts/theme-core/src/buttons/personalities/two-tone-pill.d.ts +17 -0
- package/dist/_dts/theme-core/src/buttons/personalities/types.d.ts +1 -1
- package/dist/_dts/theme-core/src/buttons/types.d.ts +3 -3
- package/dist/_dts/theme-core/src/cards/types.d.ts +3 -3
- package/dist/_dts/theme-core/src/footer/mode.d.ts +15 -0
- package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
- package/dist/_dts/theme-core/src/interactive/baseSchema.d.ts +1 -1
- package/dist/_dts/theme-core/src/mock-themes/all.d.ts +36 -30
- package/dist/_dts/theme-core/src/navigation/types.d.ts +1 -1
- package/dist/_dts/theme-core/src/schema.d.ts +1186 -34
- package/dist/_dts/theme-core/src/site-styles/headerLooks.d.ts +12 -1
- package/dist/_dts/theme-core/src/site-styles/siteChromeNavPreferences.d.ts +15 -0
- package/dist/cli/index.mjs +760 -374
- package/dist/client/{DiscountCodeDisclosure-BwGkvmVH.mjs → DiscountCodeDisclosure-D6TOf6Hi.mjs} +1 -1
- package/dist/client/{EventCombined.client-JnWE6Hzc.mjs → EventCombined.client-Dao3zxRk.mjs} +3 -3
- package/dist/client/{EventListing.client-DQewc_kg.mjs → EventListing.client-B2NNt4y1.mjs} +2 -2
- package/dist/client/{LeafletStaticMap-DPAU3SFt.mjs → LeafletStaticMap-BhwFo16w.mjs} +1 -1
- package/dist/client/{MagicLinkForm-D4kpWCbW.mjs → MagicLinkForm-BWnB7cMR.mjs} +2 -2
- package/dist/client/{StepIndicator-CBlkb4rA.mjs → StepIndicator-TzRiQ0BY.mjs} +2 -2
- package/dist/client/{accordion-DAIBVpTS.mjs → accordion-BPy-AJ4_.mjs} +1 -1
- package/dist/client/{bookingForm-DZ-4l5_1.mjs → bookingForm-BL4PGZds.mjs} +6 -6
- package/dist/client/bookings.mjs +143 -94
- package/dist/client/{buttons-DJgynGHQ.mjs → buttons-EBjyslaX.mjs} +144 -95
- package/dist/client/{carousel-D-SLfX8r.mjs → carousel-C2b7Cn9-.mjs} +1 -1
- package/dist/client/{cart-CEgbgJhX.mjs → cart-BQcbXIVD.mjs} +3 -3
- package/dist/client/{checkout-CXWrCRAA.mjs → checkout-DEmpGRJu.mjs} +3 -3
- package/dist/client/client.mjs +827 -434
- package/dist/client/{courseRegistration-DVmLrRVz.mjs → courseRegistration-BqRZPmsq.mjs} +7 -7
- package/dist/client/{eventCalendar-DCuyPY_c.mjs → eventCalendar-B8N_tSl5.mjs} +5 -5
- package/dist/client/{eventCombined-kP2CA2D4.mjs → eventCombined-Gjn6gtq7.mjs} +2 -2
- package/dist/client/{eventDetails-DU0LeF5e.mjs → eventDetails-M-VCxA-r.mjs} +3 -3
- package/dist/client/{eventListing-CcHF87BI.mjs → eventListing-DR19hqYi.mjs} +2 -2
- package/dist/client/{eventRegistration-DJnR0yFH.mjs → eventRegistration-BR02a0k3.mjs} +7 -7
- package/dist/client/{form-CH1lCusH.mjs → form-LY2xIbwg.mjs} +2 -2
- package/dist/client/{headerSection-CBPFZoku.mjs → headerSection-CYwwXJfh.mjs} +3 -3
- package/dist/client/hooks.mjs +377 -362
- package/dist/client/{locationMap-Cx1hBg5n.mjs → locationMap-DWnBXrFq.mjs} +2 -2
- package/dist/client/{newsletterForm-1ZL_ti9u.mjs → newsletterForm-D9s-fQ2P.mjs} +2 -2
- package/dist/client/{pricing-BIbzmV0G.mjs → pricing-DDq80oYc.mjs} +1 -1
- package/dist/client/{productDetail-BTh5gHBV.mjs → productDetail-B0SbWd45.mjs} +3 -3
- package/dist/client/{productList-Cc7OMrqN.mjs → productList-PwYlZn0y.mjs} +3 -3
- package/dist/client/{propsDecoder-oR-M-ISN.mjs → propsDecoder-BRWBiH7i.mjs} +33 -9
- package/dist/client/rendering/client.mjs +247 -40
- package/dist/client/rendering/islands.mjs +18 -18
- package/dist/client/rendering.mjs +478 -270
- package/dist/client/{shop-CQ_YbCnn.mjs → shop-CMwZPYME.mjs} +6 -6
- package/dist/client/{shop-commerce-BM-AoD3M.mjs → shop-commerce-BuxsFate.mjs} +5 -5
- package/dist/client/{shop-commerce-store-DFMQhU5p.mjs → shop-commerce-store-boYlEJ91.mjs} +1 -1
- package/dist/client/{shopShared-D0SKO2Cu.mjs → shopShared-D2naaOes.mjs} +2 -2
- package/dist/client/{useDiscountCodeUi-CrG4_ARt.mjs → useDiscountCodeUi-D9RHpVoj.mjs} +1 -1
- package/dist/client/{useEventFilters-CxK8Fekl.mjs → useEventFilters-igGiK1re.mjs} +3 -3
- package/dist/client/{usePolling-jcVryNgZ.mjs → usePolling-CI7MbsFB.mjs} +2 -2
- package/dist/preview-next/before-render.mjs +178 -0
- package/dist/preview-next/client/runtime.mjs +4 -4
- package/dist/preview-next/middleware.mjs +178 -0
- package/dist/{previewAuthStore-BPcJPzdz.mjs → previewAuthStore-a_cBD28m.mjs} +178 -0
- package/dist/{sdk-runtime-C39Rsk-x.mjs → sdk-runtime-MBzD-GmP.mjs} +2 -2
- package/dist/{separator-BoMSQnsP.mjs → separator-5ahRBC85.mjs} +1 -1
- package/dist/server/components.mjs +556 -366
- package/dist/server/config-validation.mjs +384 -363
- package/dist/server/config.mjs +384 -364
- package/dist/server/data.mjs +377 -362
- package/dist/server/index.mjs +179 -1
- package/dist/server/navigation.mjs +9 -3
- package/dist/server/next.mjs +1384 -995
- package/dist/server/page-converter.mjs +368 -355
- package/dist/server/prebuild.mjs +1 -1
- package/dist/server/rendering/server.mjs +539 -360
- package/dist/server/rendering.mjs +556 -366
- package/dist/server/routing.mjs +613 -543
- package/dist/server/server.mjs +554 -361
- package/dist/server/theme-bridge.mjs +189 -98
- package/dist/server/theme.mjs +161 -95
- package/dist/styles/index.css +7 -1
- package/package.json +1 -1
package/dist/client/client.mjs
CHANGED
|
@@ -24,6 +24,14 @@ var __exportAll = (all, no_symbols) => {
|
|
|
24
24
|
if (!no_symbols) __defProp(target, Symbol.toStringTag, { value: "Module" });
|
|
25
25
|
return target;
|
|
26
26
|
};
|
|
27
|
+
//#endregion
|
|
28
|
+
//#region ../api/src/apiEndpointTypes.ts
|
|
29
|
+
function allowedDemoMutationPolicy() {
|
|
30
|
+
return {
|
|
31
|
+
classification: "allowed",
|
|
32
|
+
publicMessage: ""
|
|
33
|
+
};
|
|
34
|
+
}
|
|
27
35
|
function blockedDemoMutationPolicy(classification, publicMessage) {
|
|
28
36
|
if (publicMessage.trim() === "") throw new Error(`Demo mutation policy ${classification} requires publicMessage.`);
|
|
29
37
|
return {
|
|
@@ -49,6 +57,7 @@ const TAG_TEMPLATES = {
|
|
|
49
57
|
siteRouteOutcomes: "riverbank:site:{siteId}:route-outcomes",
|
|
50
58
|
routeById: "riverbank:route:{routeId}",
|
|
51
59
|
pageById: "riverbank:page:{pageId}",
|
|
60
|
+
pageSurfaceById: "riverbank:page-surface:{pageSurfaceId}",
|
|
52
61
|
workflowRunById: "riverbank:workflow-run:{runId}",
|
|
53
62
|
siteForms: "riverbank:site:{siteId}:forms",
|
|
54
63
|
formById: "riverbank:form:{formId}",
|
|
@@ -74,6 +83,7 @@ const TAG_TEMPLATES = {
|
|
|
74
83
|
const DEMO_MUTATION_BLOCKED_HIDDEN = blockedDemoMutationPolicy("blocked-hidden", "This action is not available in demo sites.");
|
|
75
84
|
const DEMO_MUTATION_BLOCKED_DISABLED = blockedDemoMutationPolicy("blocked-disabled", "This setting is disabled in demo sites.");
|
|
76
85
|
const DEMO_MUTATION_INTERNAL_ONLY = blockedDemoMutationPolicy("internal-only", "This internal operation is not available in demo sites.");
|
|
86
|
+
const DEMO_MUTATION_ALLOWED = allowedDemoMutationPolicy();
|
|
77
87
|
const API_ENDPOINTS$1 = {
|
|
78
88
|
aiContentUpdateChat: {
|
|
79
89
|
path: "/ai/content-update-chat",
|
|
@@ -2212,6 +2222,49 @@ const API_ENDPOINTS$1 = {
|
|
|
2212
2222
|
auth: "user",
|
|
2213
2223
|
responseKind: "json"
|
|
2214
2224
|
},
|
|
2225
|
+
updatePageSurfaceDraftContent: {
|
|
2226
|
+
path: "/sites/{siteId}/page-surfaces/{pageSurfaceId}/content",
|
|
2227
|
+
method: "PUT",
|
|
2228
|
+
errors: [
|
|
2229
|
+
"validation:invalid_input",
|
|
2230
|
+
"resource:not_found",
|
|
2231
|
+
"resource:conflict",
|
|
2232
|
+
"server:internal_error"
|
|
2233
|
+
],
|
|
2234
|
+
tags: [TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.pageSurfaceById],
|
|
2235
|
+
auth: "user",
|
|
2236
|
+
responseKind: "json"
|
|
2237
|
+
},
|
|
2238
|
+
discardPageSurfaceDraftContent: {
|
|
2239
|
+
path: "/sites/{siteId}/page-surfaces/{pageSurfaceId}/content/draft",
|
|
2240
|
+
method: "DELETE",
|
|
2241
|
+
errors: [
|
|
2242
|
+
"validation:invalid_input",
|
|
2243
|
+
"resource:not_found",
|
|
2244
|
+
"resource:conflict",
|
|
2245
|
+
"server:internal_error"
|
|
2246
|
+
],
|
|
2247
|
+
tags: [TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.pageSurfaceById],
|
|
2248
|
+
auth: "user",
|
|
2249
|
+
responseKind: "json"
|
|
2250
|
+
},
|
|
2251
|
+
updatePageSurfaceRouteMetadata: {
|
|
2252
|
+
path: "/sites/{siteId}/page-surfaces/{pageSurfaceId}/metadata",
|
|
2253
|
+
method: "PATCH",
|
|
2254
|
+
errors: [
|
|
2255
|
+
"validation:invalid_input",
|
|
2256
|
+
"resource:not_found",
|
|
2257
|
+
"resource:conflict",
|
|
2258
|
+
"server:internal_error"
|
|
2259
|
+
],
|
|
2260
|
+
tags: [
|
|
2261
|
+
TAG_TEMPLATES.siteCollection,
|
|
2262
|
+
TAG_TEMPLATES.siteRoutableContent,
|
|
2263
|
+
TAG_TEMPLATES.pageSurfaceById
|
|
2264
|
+
],
|
|
2265
|
+
auth: "user",
|
|
2266
|
+
responseKind: "json"
|
|
2267
|
+
},
|
|
2215
2268
|
runSdkWorkflow: {
|
|
2216
2269
|
path: "/sites/{siteId}/content/{type}/{entryId}/workflows/{workflowId}/run",
|
|
2217
2270
|
method: "POST",
|
|
@@ -2592,6 +2645,50 @@ const API_ENDPOINTS$1 = {
|
|
|
2592
2645
|
errors: [],
|
|
2593
2646
|
responseKind: "json"
|
|
2594
2647
|
},
|
|
2648
|
+
getFooterComposition: {
|
|
2649
|
+
path: "/sites/{siteId}/settings/footer-composition",
|
|
2650
|
+
method: "GET",
|
|
2651
|
+
revalidate: 120,
|
|
2652
|
+
tags: [TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings],
|
|
2653
|
+
auth: "user",
|
|
2654
|
+
errors: ["resource:not_found", "server:internal_error"],
|
|
2655
|
+
responseKind: "json"
|
|
2656
|
+
},
|
|
2657
|
+
updateFooterComposition: {
|
|
2658
|
+
path: "/sites/{siteId}/settings/footer-composition",
|
|
2659
|
+
method: "POST",
|
|
2660
|
+
tags: [TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings],
|
|
2661
|
+
auth: "user",
|
|
2662
|
+
demoMutation: DEMO_MUTATION_ALLOWED,
|
|
2663
|
+
errors: [
|
|
2664
|
+
"validation:invalid_input",
|
|
2665
|
+
"resource:not_found",
|
|
2666
|
+
"server:internal_error"
|
|
2667
|
+
],
|
|
2668
|
+
responseKind: "json"
|
|
2669
|
+
},
|
|
2670
|
+
getPublicProfile: {
|
|
2671
|
+
path: "/sites/{siteId}/settings/public-profile",
|
|
2672
|
+
method: "GET",
|
|
2673
|
+
revalidate: 120,
|
|
2674
|
+
tags: [TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings],
|
|
2675
|
+
auth: "user",
|
|
2676
|
+
errors: ["resource:not_found", "server:internal_error"],
|
|
2677
|
+
responseKind: "json"
|
|
2678
|
+
},
|
|
2679
|
+
updatePublicProfile: {
|
|
2680
|
+
path: "/sites/{siteId}/settings/public-profile",
|
|
2681
|
+
method: "POST",
|
|
2682
|
+
tags: [TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings],
|
|
2683
|
+
auth: "user",
|
|
2684
|
+
demoMutation: DEMO_MUTATION_ALLOWED,
|
|
2685
|
+
errors: [
|
|
2686
|
+
"validation:invalid_input",
|
|
2687
|
+
"resource:not_found",
|
|
2688
|
+
"server:internal_error"
|
|
2689
|
+
],
|
|
2690
|
+
responseKind: "json"
|
|
2691
|
+
},
|
|
2595
2692
|
updateSiteLayoutSettings: {
|
|
2596
2693
|
path: "/sites/{siteId}/settings/layout",
|
|
2597
2694
|
method: "POST",
|
|
@@ -3664,6 +3761,76 @@ const API_ENDPOINTS$1 = {
|
|
|
3664
3761
|
responseKind: "json",
|
|
3665
3762
|
errors: ["resource:not_found"]
|
|
3666
3763
|
},
|
|
3764
|
+
listPageSurfaceContentSlots: {
|
|
3765
|
+
path: "/sites/{siteId}/page-surfaces/{pageSurfaceId}/slots",
|
|
3766
|
+
method: "GET",
|
|
3767
|
+
tags: [
|
|
3768
|
+
TAG_TEMPLATES.siteCollection,
|
|
3769
|
+
TAG_TEMPLATES.pageSurfaceById,
|
|
3770
|
+
"surface-slots",
|
|
3771
|
+
"blocks"
|
|
3772
|
+
],
|
|
3773
|
+
auth: "user",
|
|
3774
|
+
responseKind: "json",
|
|
3775
|
+
errors: [
|
|
3776
|
+
"resource:not_found",
|
|
3777
|
+
"resource:conflict",
|
|
3778
|
+
"server:internal_error"
|
|
3779
|
+
]
|
|
3780
|
+
},
|
|
3781
|
+
createPageSurfaceSlotBlock: {
|
|
3782
|
+
path: "/sites/{siteId}/page-surfaces/{pageSurfaceId}/slots/{slotKey}/blocks",
|
|
3783
|
+
method: "POST",
|
|
3784
|
+
tags: [
|
|
3785
|
+
TAG_TEMPLATES.siteCollection,
|
|
3786
|
+
TAG_TEMPLATES.pageSurfaceById,
|
|
3787
|
+
"surface-slot-{slotKey}",
|
|
3788
|
+
"blocks"
|
|
3789
|
+
],
|
|
3790
|
+
auth: "user",
|
|
3791
|
+
responseKind: "json",
|
|
3792
|
+
errors: [
|
|
3793
|
+
"validation:invalid_input",
|
|
3794
|
+
"resource:not_found",
|
|
3795
|
+
"resource:conflict",
|
|
3796
|
+
"server:internal_error"
|
|
3797
|
+
]
|
|
3798
|
+
},
|
|
3799
|
+
reorderPageSurfaceSlotBlocks: {
|
|
3800
|
+
path: "/sites/{siteId}/page-surfaces/{pageSurfaceId}/slots/{slotKey}/blocks/reorder",
|
|
3801
|
+
method: "POST",
|
|
3802
|
+
tags: [
|
|
3803
|
+
TAG_TEMPLATES.siteCollection,
|
|
3804
|
+
TAG_TEMPLATES.pageSurfaceById,
|
|
3805
|
+
"surface-slot-{slotKey}",
|
|
3806
|
+
"blocks"
|
|
3807
|
+
],
|
|
3808
|
+
auth: "user",
|
|
3809
|
+
responseKind: "json",
|
|
3810
|
+
errors: [
|
|
3811
|
+
"validation:invalid_input",
|
|
3812
|
+
"resource:not_found",
|
|
3813
|
+
"resource:conflict",
|
|
3814
|
+
"server:internal_error"
|
|
3815
|
+
]
|
|
3816
|
+
},
|
|
3817
|
+
deletePageSurfaceSlotBlock: {
|
|
3818
|
+
path: "/sites/{siteId}/page-surfaces/{pageSurfaceId}/slots/{slotKey}/blocks/{blockId}",
|
|
3819
|
+
method: "DELETE",
|
|
3820
|
+
tags: [
|
|
3821
|
+
TAG_TEMPLATES.siteCollection,
|
|
3822
|
+
TAG_TEMPLATES.pageSurfaceById,
|
|
3823
|
+
"surface-slot-{slotKey}",
|
|
3824
|
+
"blocks"
|
|
3825
|
+
],
|
|
3826
|
+
auth: "user",
|
|
3827
|
+
responseKind: "json",
|
|
3828
|
+
errors: [
|
|
3829
|
+
"resource:not_found",
|
|
3830
|
+
"resource:conflict",
|
|
3831
|
+
"server:internal_error"
|
|
3832
|
+
]
|
|
3833
|
+
},
|
|
3667
3834
|
createBlock: {
|
|
3668
3835
|
path: "/sites/{siteId}/pages/{pageId}/blocks",
|
|
3669
3836
|
method: "POST",
|
|
@@ -6276,6 +6443,19 @@ const API_ENDPOINTS$1 = {
|
|
|
6276
6443
|
auth: "service",
|
|
6277
6444
|
responseKind: "json"
|
|
6278
6445
|
},
|
|
6446
|
+
sdkPatchPageBlock: {
|
|
6447
|
+
path: "/sdk/{siteId}/pages/{identifier}/blocks/{blockIdentifier}",
|
|
6448
|
+
method: "PATCH",
|
|
6449
|
+
errors: [
|
|
6450
|
+
"validation:invalid_input",
|
|
6451
|
+
"resource:not_found",
|
|
6452
|
+
"resource:conflict",
|
|
6453
|
+
"billing:plan_limit_exceeded",
|
|
6454
|
+
"server:internal_error"
|
|
6455
|
+
],
|
|
6456
|
+
auth: "service",
|
|
6457
|
+
responseKind: "json"
|
|
6458
|
+
},
|
|
6279
6459
|
sdkReorderPageBlocks: {
|
|
6280
6460
|
path: "/sdk/{siteId}/pages/{identifier}/blocks/reorder",
|
|
6281
6461
|
method: "POST",
|
|
@@ -6938,6 +7118,108 @@ const API_ENDPOINTS$1 = {
|
|
|
6938
7118
|
]
|
|
6939
7119
|
}
|
|
6940
7120
|
};
|
|
7121
|
+
const API_ERROR_CODE_SET = /* @__PURE__ */ new Set([
|
|
7122
|
+
"auth:unauthenticated",
|
|
7123
|
+
"auth:token_expired",
|
|
7124
|
+
"auth:token_invalid",
|
|
7125
|
+
"auth:forbidden",
|
|
7126
|
+
"auth:mfa_required",
|
|
7127
|
+
"auth:sudo_required",
|
|
7128
|
+
"auth:insufficient_permissions",
|
|
7129
|
+
"auth:impersonation_restricted",
|
|
7130
|
+
"validation:invalid_input",
|
|
7131
|
+
"validation:missing_field",
|
|
7132
|
+
"validation:invalid_format",
|
|
7133
|
+
"validation:payload_too_large",
|
|
7134
|
+
"resource:not_found",
|
|
7135
|
+
"resource:already_exists",
|
|
7136
|
+
"resource:conflict",
|
|
7137
|
+
"resource:gone",
|
|
7138
|
+
"rate_limit:exceeded",
|
|
7139
|
+
"billing:payment_required",
|
|
7140
|
+
"billing:plan_limit_exceeded",
|
|
7141
|
+
"billing:pass_redemption_failed",
|
|
7142
|
+
"server:internal_error",
|
|
7143
|
+
"server:unavailable",
|
|
7144
|
+
"external:service_error",
|
|
7145
|
+
"external:registrar_orphaned_contact_profile",
|
|
7146
|
+
"network:connection_error",
|
|
7147
|
+
"network:timeout",
|
|
7148
|
+
"network:dns_error"
|
|
7149
|
+
]);
|
|
7150
|
+
function isApiErrorCode(value) {
|
|
7151
|
+
return typeof value === "string" && API_ERROR_CODE_SET.has(value);
|
|
7152
|
+
}
|
|
7153
|
+
function isApiError(result) {
|
|
7154
|
+
return result.success === false;
|
|
7155
|
+
}
|
|
7156
|
+
function isApiSuccess(result) {
|
|
7157
|
+
return result.success === true;
|
|
7158
|
+
}
|
|
7159
|
+
function isRecord$32(value) {
|
|
7160
|
+
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
7161
|
+
}
|
|
7162
|
+
function isFieldError(value) {
|
|
7163
|
+
return isRecord$32(value) && typeof value.field === "string" && typeof value.code === "string" && typeof value.message === "string";
|
|
7164
|
+
}
|
|
7165
|
+
function fieldErrorsFromUnknown(value) {
|
|
7166
|
+
if (!Array.isArray(value)) return null;
|
|
7167
|
+
return value.every(isFieldError) ? value : null;
|
|
7168
|
+
}
|
|
7169
|
+
function extractEnvelopeErrorObject(body) {
|
|
7170
|
+
if (!isRecord$32(body)) return null;
|
|
7171
|
+
const error = body.error;
|
|
7172
|
+
if (!isRecord$32(error)) return null;
|
|
7173
|
+
if ("success" in body && body.success !== false) return null;
|
|
7174
|
+
return error;
|
|
7175
|
+
}
|
|
7176
|
+
function extractApiEnvelopeErrorDetails(body) {
|
|
7177
|
+
const error = extractEnvelopeErrorObject(body);
|
|
7178
|
+
if (!error) return {
|
|
7179
|
+
rawCode: null,
|
|
7180
|
+
code: null,
|
|
7181
|
+
message: null,
|
|
7182
|
+
status: null,
|
|
7183
|
+
fieldErrors: null
|
|
7184
|
+
};
|
|
7185
|
+
const rawCode = typeof error.code === "string" ? error.code : null;
|
|
7186
|
+
const message = typeof error.message === "string" && error.message.trim().length > 0 ? error.message : null;
|
|
7187
|
+
return {
|
|
7188
|
+
rawCode,
|
|
7189
|
+
code: isApiErrorCode(rawCode) ? rawCode : null,
|
|
7190
|
+
message,
|
|
7191
|
+
status: typeof error.status === "number" && Number.isFinite(error.status) ? error.status : null,
|
|
7192
|
+
fieldErrors: fieldErrorsFromUnknown(error.fieldErrors)
|
|
7193
|
+
};
|
|
7194
|
+
}
|
|
7195
|
+
/**
|
|
7196
|
+
* Error class for API failures that can be thrown from unwrapResponse.
|
|
7197
|
+
* Preserves all error metadata from the envelope.
|
|
7198
|
+
*/
|
|
7199
|
+
var ApiEnvelopeError = class extends Error {
|
|
7200
|
+
constructor(error) {
|
|
7201
|
+
super(error.message);
|
|
7202
|
+
this.name = "ApiEnvelopeError";
|
|
7203
|
+
this.code = error.code;
|
|
7204
|
+
this.requestId = error.requestId;
|
|
7205
|
+
this.timestamp = error.timestamp;
|
|
7206
|
+
this.status = error.status;
|
|
7207
|
+
this.fieldErrors = error.fieldErrors;
|
|
7208
|
+
}
|
|
7209
|
+
};
|
|
7210
|
+
/**
|
|
7211
|
+
* Unwrap a successful API response or throw on error.
|
|
7212
|
+
*
|
|
7213
|
+
* @example
|
|
7214
|
+
* ```typescript
|
|
7215
|
+
* const response = await apiClient({ endpoint: 'getUser', params: { id } });
|
|
7216
|
+
* const user = unwrapResponse(response); // Throws if not success
|
|
7217
|
+
* ```
|
|
7218
|
+
*/
|
|
7219
|
+
function unwrapResponse(result) {
|
|
7220
|
+
if (isApiSuccess(result)) return result.data;
|
|
7221
|
+
throw new ApiEnvelopeError(result.error);
|
|
7222
|
+
}
|
|
6941
7223
|
//#endregion
|
|
6942
7224
|
//#region ../core/src/result.ts
|
|
6943
7225
|
function ok$2(value) {
|
|
@@ -7151,7 +7433,7 @@ var init_event_pricing = __esmMin((() => {
|
|
|
7151
7433
|
//#endregion
|
|
7152
7434
|
//#region ../core/src/event-page-surface-subject.ts
|
|
7153
7435
|
function parseEventPageSurfaceSubject(value) {
|
|
7154
|
-
if (!isRecord$
|
|
7436
|
+
if (!isRecord$31(value)) return err$2({ kind: "notObject" });
|
|
7155
7437
|
switch (value.kind) {
|
|
7156
7438
|
case "eventSeries": {
|
|
7157
7439
|
const eventSeriesId = parseEventSeriesId(value.eventSeriesId);
|
|
@@ -7194,7 +7476,7 @@ function parseEventPageSurfaceSubject(value) {
|
|
|
7194
7476
|
});
|
|
7195
7477
|
}
|
|
7196
7478
|
}
|
|
7197
|
-
function isRecord$
|
|
7479
|
+
function isRecord$31(value) {
|
|
7198
7480
|
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
7199
7481
|
}
|
|
7200
7482
|
var init_event_page_surface_subject = __esmMin((() => {
|
|
@@ -7588,6 +7870,25 @@ var init_participant_identity = __esmMin((() => {
|
|
|
7588
7870
|
init_assertNever();
|
|
7589
7871
|
}));
|
|
7590
7872
|
var init_public_url_validation = __esmMin((() => {}));
|
|
7873
|
+
var init_public_profile = __esmMin((() => {
|
|
7874
|
+
init_public_url_validation();
|
|
7875
|
+
init_result();
|
|
7876
|
+
})), sectionKinds;
|
|
7877
|
+
var init_footer_composition = __esmMin((() => {
|
|
7878
|
+
init_result();
|
|
7879
|
+
sectionKinds = [
|
|
7880
|
+
"brand",
|
|
7881
|
+
"supporting-text",
|
|
7882
|
+
"social-links",
|
|
7883
|
+
"navigation",
|
|
7884
|
+
"business-address",
|
|
7885
|
+
"contact",
|
|
7886
|
+
"opening-hours",
|
|
7887
|
+
"legal-navigation",
|
|
7888
|
+
"legal"
|
|
7889
|
+
];
|
|
7890
|
+
new Map(sectionKinds.map((kind, index) => [kind, index]));
|
|
7891
|
+
}));
|
|
7591
7892
|
var init_number_input = __esmMin((() => {}));
|
|
7592
7893
|
var init_field_errors = __esmMin((() => {})), init_form_submission_preview = __esmMin((() => {
|
|
7593
7894
|
init_string();
|
|
@@ -7622,7 +7923,7 @@ function sortStableJsonValue(value) {
|
|
|
7622
7923
|
if (typeof value === "object") {
|
|
7623
7924
|
const prototype = Object.getPrototypeOf(value);
|
|
7624
7925
|
if (prototype !== Object.prototype && prototype !== null) throw new TypeError("Stable JSON only supports plain objects");
|
|
7625
|
-
return Object.fromEntries(Object.entries(value).sort(([left], [right]) => left
|
|
7926
|
+
return Object.fromEntries(Object.entries(value).sort(([left], [right]) => left < right ? -1 : left > right ? 1 : 0).map(([key, child]) => [key, sortStableJsonValue(child)]));
|
|
7626
7927
|
}
|
|
7627
7928
|
throw new TypeError(`Stable JSON does not support ${typeof value}`);
|
|
7628
7929
|
}
|
|
@@ -7685,6 +7986,8 @@ var init_src$3 = __esmMin((() => {
|
|
|
7685
7986
|
init_participants();
|
|
7686
7987
|
init_participant_identity();
|
|
7687
7988
|
init_public_url_validation();
|
|
7989
|
+
init_public_profile();
|
|
7990
|
+
init_footer_composition();
|
|
7688
7991
|
init_number_input();
|
|
7689
7992
|
init_field_errors();
|
|
7690
7993
|
init_form_submission_preview();
|
|
@@ -7992,7 +8295,7 @@ function containsUnsafePathSegmentCharacter(value) {
|
|
|
7992
8295
|
function isReservedPathSegment(value) {
|
|
7993
8296
|
return value === "." || value === "..";
|
|
7994
8297
|
}
|
|
7995
|
-
function isUnsafePathSegment(segment) {
|
|
8298
|
+
function isUnsafePathSegment$1(segment) {
|
|
7996
8299
|
return segment.trim().length === 0 || segment !== segment.trim() || isReservedPathSegment(segment) || containsUnsafePathSegmentCharacter(segment);
|
|
7997
8300
|
}
|
|
7998
8301
|
var CONTROL_CHARACTER_PATTERN$1, init_fileSafety = __esmMin((() => {
|
|
@@ -8021,7 +8324,7 @@ function parseStoragePath(value) {
|
|
|
8021
8324
|
* that every tenant/site identifier remains one segment, never a nested path.
|
|
8022
8325
|
*/
|
|
8023
8326
|
function joinStoragePathSegments(segments) {
|
|
8024
|
-
if (segments.some(isUnsafePathSegment)) return err$2("unsafe-path-segment");
|
|
8327
|
+
if (segments.some(isUnsafePathSegment$1)) return err$2("unsafe-path-segment");
|
|
8025
8328
|
return ok$2(unsafeAsStoragePath(segments.join("/")));
|
|
8026
8329
|
}
|
|
8027
8330
|
var FILE_STORAGE_BUCKETS, PRIVATE_SITE_FILE_BUCKET_MIME_TYPES;
|
|
@@ -8107,11 +8410,11 @@ var init_storagePathDomain = __esmMin((() => {}));
|
|
|
8107
8410
|
var init_fileAssetLegacyProjection = __esmMin((() => {}));
|
|
8108
8411
|
//#endregion
|
|
8109
8412
|
//#region ../media-core/src/typeGuards.ts
|
|
8110
|
-
function isRecord$
|
|
8413
|
+
function isRecord$27(value) {
|
|
8111
8414
|
return Boolean(value) && typeof value === "object" && !Array.isArray(value);
|
|
8112
8415
|
}
|
|
8113
8416
|
function asRecord$3(value) {
|
|
8114
|
-
return isRecord$
|
|
8417
|
+
return isRecord$27(value) ? value : void 0;
|
|
8115
8418
|
}
|
|
8116
8419
|
var init_typeGuards$1 = __esmMin((() => {}));
|
|
8117
8420
|
function isFileJsonObject(value) {
|
|
@@ -8121,7 +8424,7 @@ function isFileJsonValue(value) {
|
|
|
8121
8424
|
if (value === null || typeof value === "string" || typeof value === "boolean") return true;
|
|
8122
8425
|
if (typeof value === "number") return Number.isFinite(value);
|
|
8123
8426
|
if (Array.isArray(value)) return value.every(isFileJsonValue);
|
|
8124
|
-
return isRecord$
|
|
8427
|
+
return isRecord$27(value) && isFileJsonObject(value);
|
|
8125
8428
|
}
|
|
8126
8429
|
var init_filePersistence = __esmMin((() => {
|
|
8127
8430
|
init_src$3();
|
|
@@ -8486,7 +8789,7 @@ function isCmsMediaObjectType(value) {
|
|
|
8486
8789
|
return typeof value === "string" && CMS_MEDIA_OBJECT_TYPES.includes(value);
|
|
8487
8790
|
}
|
|
8488
8791
|
function isCmsMediaObject(value) {
|
|
8489
|
-
if (!isRecord$
|
|
8792
|
+
if (!isRecord$27(value)) return false;
|
|
8490
8793
|
const type = value.type;
|
|
8491
8794
|
if (!isCmsMediaObjectType(type)) return false;
|
|
8492
8795
|
if ("attrs" in value) return false;
|
|
@@ -8497,7 +8800,7 @@ function collectMediaObjects(value, out, location = "") {
|
|
|
8497
8800
|
value.forEach((item, index) => collectMediaObjects(item, out, `${location}[${index}]`));
|
|
8498
8801
|
return;
|
|
8499
8802
|
}
|
|
8500
|
-
if (!isRecord$
|
|
8803
|
+
if (!isRecord$27(value)) return;
|
|
8501
8804
|
if (isCmsMediaObject(value)) out.push({
|
|
8502
8805
|
obj: value,
|
|
8503
8806
|
location
|
|
@@ -8531,8 +8834,8 @@ function walkAndCollectImageAttrs(value, out, location = "") {
|
|
|
8531
8834
|
value.forEach((item, index) => walkAndCollectImageAttrs(item, out, `${location}[${index}]`));
|
|
8532
8835
|
return;
|
|
8533
8836
|
}
|
|
8534
|
-
if (!isRecord$
|
|
8535
|
-
if (value.type === "image" && isRecord$
|
|
8837
|
+
if (!isRecord$27(value)) return;
|
|
8838
|
+
if (value.type === "image" && isRecord$27(value.attrs)) out.push({
|
|
8536
8839
|
attrs: value.attrs,
|
|
8537
8840
|
location: location ? `${location}.attrs` : "attrs"
|
|
8538
8841
|
});
|
|
@@ -8901,7 +9204,7 @@ var init_validation_constants = __esmMin((() => {
|
|
|
8901
9204
|
"media.fromUrl",
|
|
8902
9205
|
"background.resolveStyle",
|
|
8903
9206
|
"background.resolveColorsStyle",
|
|
8904
|
-
"background.
|
|
9207
|
+
"background.resolveFrameClassName",
|
|
8905
9208
|
"background.resolveImageStyle",
|
|
8906
9209
|
"background.resolveImageClassName",
|
|
8907
9210
|
"background.resolveOverlayStyle",
|
|
@@ -8937,13 +9240,13 @@ function mqDown(px) {
|
|
|
8937
9240
|
function mqBetween(minPx, maxPx) {
|
|
8938
9241
|
return `${mqUp(minPx)} and ${mqDown(maxPx)}`;
|
|
8939
9242
|
}
|
|
8940
|
-
var BREAKPOINT_LG, BREAKPOINT_XL, BREAKPOINT_LG_DOWN, MQ_SM_UP, MQ_LG_UP, MQ_SM_DOWN, MQ_MD_DOWN, MQ_TABLET_ONLY;
|
|
9243
|
+
var BREAKPOINT_LG, BREAKPOINT_XL, BREAKPOINT_LG_DOWN, MQ_SM_UP, MQ_MD_UP, MQ_LG_UP, MQ_SM_DOWN, MQ_MD_DOWN, MQ_TABLET_ONLY;
|
|
8941
9244
|
var init_breakpoints = __esmMin((() => {
|
|
8942
9245
|
BREAKPOINT_LG = 1024;
|
|
8943
9246
|
BREAKPOINT_XL = 1280;
|
|
8944
9247
|
BREAKPOINT_LG_DOWN = BREAKPOINT_LG - 1;
|
|
8945
9248
|
MQ_SM_UP = mqUp(640);
|
|
8946
|
-
mqUp(768);
|
|
9249
|
+
MQ_MD_UP = mqUp(768);
|
|
8947
9250
|
MQ_LG_UP = mqUp(BREAKPOINT_LG);
|
|
8948
9251
|
mqUp(BREAKPOINT_XL);
|
|
8949
9252
|
MQ_SM_DOWN = mqDown(639);
|
|
@@ -10752,7 +11055,7 @@ function getSemanticIconComponent(name) {
|
|
|
10752
11055
|
//#endregion
|
|
10753
11056
|
//#region ../blocks/src/system/icons/value.ts
|
|
10754
11057
|
const NO_BLOCK_ICON_VALUE = { kind: "none" };
|
|
10755
|
-
function isRecord$
|
|
11058
|
+
function isRecord$26(value) {
|
|
10756
11059
|
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
10757
11060
|
}
|
|
10758
11061
|
function parseBlockIconValue(value) {
|
|
@@ -10760,7 +11063,7 @@ function parseBlockIconValue(value) {
|
|
|
10760
11063
|
kind: "semantic",
|
|
10761
11064
|
iconId: value
|
|
10762
11065
|
};
|
|
10763
|
-
if (!isRecord$
|
|
11066
|
+
if (!isRecord$26(value)) return NO_BLOCK_ICON_VALUE;
|
|
10764
11067
|
switch (value.kind) {
|
|
10765
11068
|
case "none": return NO_BLOCK_ICON_VALUE;
|
|
10766
11069
|
case "semantic": return isSemanticIconId(value.iconId) ? {
|
|
@@ -10833,7 +11136,7 @@ function buildGeneratedBlockIconRenderAssetLookupFromUnknown(value) {
|
|
|
10833
11136
|
if (!Array.isArray(value)) return { kind: "invalid_asset_list" };
|
|
10834
11137
|
const inputs = [];
|
|
10835
11138
|
for (const [index, item] of value.entries()) {
|
|
10836
|
-
if (!isRecord$
|
|
11139
|
+
if (!isRecord$26(item)) return {
|
|
10837
11140
|
kind: "invalid_asset_entry",
|
|
10838
11141
|
index,
|
|
10839
11142
|
reason: "not_object"
|
|
@@ -18448,6 +18751,53 @@ var init_soft_pill = __esmMin((() => {
|
|
|
18448
18751
|
]
|
|
18449
18752
|
}
|
|
18450
18753
|
});
|
|
18754
|
+
}));
|
|
18755
|
+
//#endregion
|
|
18756
|
+
//#region ../theme-core/src/buttons/personalities/two-tone-pill.ts
|
|
18757
|
+
var solidSecondary, twoTonePill;
|
|
18758
|
+
var init_two_tone_pill = __esmMin((() => {
|
|
18759
|
+
init_soft_pill();
|
|
18760
|
+
init_types$13();
|
|
18761
|
+
solidSecondary = {
|
|
18762
|
+
id: "secondary",
|
|
18763
|
+
name: "Secondary",
|
|
18764
|
+
enabled: true,
|
|
18765
|
+
priority: 2,
|
|
18766
|
+
background: {
|
|
18767
|
+
type: "solid",
|
|
18768
|
+
colorToken: "secondary"
|
|
18769
|
+
},
|
|
18770
|
+
textColorToken: "onSecondary",
|
|
18771
|
+
borderRadius: "rounded-full",
|
|
18772
|
+
shadow: {
|
|
18773
|
+
elevation: "none",
|
|
18774
|
+
softness: null,
|
|
18775
|
+
position: "bottom"
|
|
18776
|
+
},
|
|
18777
|
+
effects: {
|
|
18778
|
+
hover: [{
|
|
18779
|
+
effectId: "background-on-hover-alpha",
|
|
18780
|
+
options: {
|
|
18781
|
+
colorToken: "secondary",
|
|
18782
|
+
opacity: 88
|
|
18783
|
+
}
|
|
18784
|
+
}],
|
|
18785
|
+
active: [{
|
|
18786
|
+
effectId: "scale-down",
|
|
18787
|
+
options: { scale: "0.98" }
|
|
18788
|
+
}]
|
|
18789
|
+
}
|
|
18790
|
+
};
|
|
18791
|
+
twoTonePill = defineButtonPersonality({
|
|
18792
|
+
id: "two-tone-pill",
|
|
18793
|
+
name: "Two-tone Pill",
|
|
18794
|
+
description: "Rounded pills with distinct solid primary and secondary brand colours.",
|
|
18795
|
+
tags: softPill.tags,
|
|
18796
|
+
buttonSystem: {
|
|
18797
|
+
...softPill.buttonSystem,
|
|
18798
|
+
variants: softPill.buttonSystem.variants.map((variant) => variant.id === "secondary" ? solidSecondary : variant)
|
|
18799
|
+
}
|
|
18800
|
+
});
|
|
18451
18801
|
})), buttonPersonalities;
|
|
18452
18802
|
var init_personalities = __esmMin((() => {
|
|
18453
18803
|
init_brushed_wash();
|
|
@@ -18462,9 +18812,11 @@ var init_personalities = __esmMin((() => {
|
|
|
18462
18812
|
init_quiet_arrow();
|
|
18463
18813
|
init_showtime_pill();
|
|
18464
18814
|
init_soft_pill();
|
|
18815
|
+
init_two_tone_pill();
|
|
18465
18816
|
init_types$13();
|
|
18466
18817
|
buttonPersonalities = [
|
|
18467
18818
|
softPill,
|
|
18819
|
+
twoTonePill,
|
|
18468
18820
|
earthPill,
|
|
18469
18821
|
confidentChip,
|
|
18470
18822
|
editorialLink,
|
|
@@ -18906,7 +19258,7 @@ function asHeaderStyleId(value) {
|
|
|
18906
19258
|
* optional nested styling fields that would otherwise leak from another Look.
|
|
18907
19259
|
*/
|
|
18908
19260
|
function baseHeader(theme) {
|
|
18909
|
-
const { navLinkStyle: _navLinkStyle, navTypography: _navTypography, navTextSize: _navTextSize, dropdownStyle: _dropdownStyle, ctaVariant: _ctaVariant, navContainer: _navContainer, container: _container, shadow: _shadow, logo: _logo, logoText: _logoText, border: _border, ...header } = theme.header;
|
|
19261
|
+
const { navLinkStyle: _navLinkStyle, navFontRole: _navFontRole, navTypography: _navTypography, navTextSize: _navTextSize, dropdownStyle: _dropdownStyle, ctaVariant: _ctaVariant, navContainer: _navContainer, container: _container, shadow: _shadow, logo: _logo, logoText: _logoText, border: _border, ...header } = theme.header;
|
|
18910
19262
|
return {
|
|
18911
19263
|
...header,
|
|
18912
19264
|
navContainer: {
|
|
@@ -19528,6 +19880,17 @@ var init_headerLooks = __esmMin((() => {
|
|
|
19528
19880
|
navTypography: "brand-caps",
|
|
19529
19881
|
moods: ["expressive"]
|
|
19530
19882
|
},
|
|
19883
|
+
{
|
|
19884
|
+
id: asHeaderStyleId("brand-capsule"),
|
|
19885
|
+
label: "Brand Capsule",
|
|
19886
|
+
description: "Solid brand chrome designed as a floating capsule, with quiet-caps nav, a soft pill active state, and an inverted CTA pill.",
|
|
19887
|
+
supportedLayoutIds: supportedLayouts(["classic"]),
|
|
19888
|
+
navInteraction: "pill-background",
|
|
19889
|
+
surface: "brand-solid",
|
|
19890
|
+
defaultDepth: "shadow",
|
|
19891
|
+
navTypography: "quiet-caps",
|
|
19892
|
+
moods: ["expressive", "professional"]
|
|
19893
|
+
},
|
|
19531
19894
|
{
|
|
19532
19895
|
id: asHeaderStyleId("serif-line"),
|
|
19533
19896
|
label: "Serif Line",
|
|
@@ -19621,6 +19984,7 @@ var init_headerLooks = __esmMin((() => {
|
|
|
19621
19984
|
"brand-bar",
|
|
19622
19985
|
"brand-underline",
|
|
19623
19986
|
"brand-pill",
|
|
19987
|
+
"brand-capsule",
|
|
19624
19988
|
"serif-line",
|
|
19625
19989
|
"flat-tabs"
|
|
19626
19990
|
])],
|
|
@@ -19655,6 +20019,11 @@ var init_headerLooks = __esmMin((() => {
|
|
|
19655
20019
|
"brand-pill",
|
|
19656
20020
|
"brand-bar",
|
|
19657
20021
|
"minimal"
|
|
20022
|
+
]), headerStyleRepairChain([
|
|
20023
|
+
"brand-capsule",
|
|
20024
|
+
"brand-pill",
|
|
20025
|
+
"brand-bar",
|
|
20026
|
+
"minimal"
|
|
19658
20027
|
]), headerStyleRepairChain([
|
|
19659
20028
|
"pill-nav",
|
|
19660
20029
|
"soft-bar",
|
|
@@ -23206,7 +23575,7 @@ function generateVariantCSS(variant, themeId, tokens, theme) {
|
|
|
23206
23575
|
rules.push(`display: flex`);
|
|
23207
23576
|
rules.push(`flex-direction: column`);
|
|
23208
23577
|
rules.push(`position: relative`);
|
|
23209
|
-
rules.push(`overflow:
|
|
23578
|
+
rules.push(`overflow: visible`);
|
|
23210
23579
|
const mediaRadius = MEDIA_CORNER_MAP[corners];
|
|
23211
23580
|
const mediaRules = [`border-top-left-radius: ${mediaRadius}`, `border-top-right-radius: ${mediaRadius}`];
|
|
23212
23581
|
const contentRules = [`padding: ${CONTENT_PADDING_MAP[variant.spacing] || CONTENT_PADDING_MAP.comfortable}`];
|
|
@@ -24221,7 +24590,24 @@ var init_tokenOrColor = __esmMin((() => {
|
|
|
24221
24590
|
"white",
|
|
24222
24591
|
"yellow"
|
|
24223
24592
|
]);
|
|
24224
|
-
}))
|
|
24593
|
+
}));
|
|
24594
|
+
//#endregion
|
|
24595
|
+
//#region ../theme-core/src/schema.ts
|
|
24596
|
+
/**
|
|
24597
|
+
* Normalises the legacy `navTypography` font-role alias into the canonical
|
|
24598
|
+
* `navFontRole` field so persisted themes migrate at the parse boundary without
|
|
24599
|
+
* a data migration. `navFontRole` always wins when both are present; the legacy
|
|
24600
|
+
* field is dropped so we never carry a dual write forward.
|
|
24601
|
+
*/
|
|
24602
|
+
function normaliseHeaderNavFontRole(header) {
|
|
24603
|
+
if (header.navTypography === void 0) return header;
|
|
24604
|
+
const { navTypography, ...rest } = header;
|
|
24605
|
+
return header.navFontRole === void 0 ? {
|
|
24606
|
+
...rest,
|
|
24607
|
+
navFontRole: navTypography
|
|
24608
|
+
} : rest;
|
|
24609
|
+
}
|
|
24610
|
+
var axesSchema, colourHexString, paletteColorSchema, paletteMetaSchema, paletteSchema, typographyStyleSchema, bodyTypographyStyleSchema, headingSizeSchema, headingTypographyOverridesSchema, headingTypographyStyleSchema, proseLinkUnderlineStyleSchema, proseLinkUnderlineThicknessSchema, proseLinkUnderlineOffsetSchema, proseLinkStyleSchema, semanticSpacingSchema, boxRoundedSchema, boxBackgroundOverlaySchema, boxBackgroundSchema, noHeadingDecorationSchema, visibleHeadingDecorationSchema, headingDecorationSchema, headingDecorationOverrideSchema, accordionIconTreatmentSchema, sectionStylesOverrideSchema, containerStylesOverrideSchema, cardBorderOverrideSchema, cardStylesOverrideSchema, blockStyleOverridesSchema, blockThemeOverrideSchema, typographyScaleSchema, eyebrowTypographyStyleSchema, typographySchema, spaceSchema, corners, shadow, border, motion, inputStyle, headerVariant, headerPositioning, headerNavStyle, navFontWeight, headerMaxWidth, headerBarFrame, headerContainerSchema, headerBorderSchema, logoStyleSchema, headerLogoTextSchema, navEffectsSchema, dropdownStyleSchema, headerCtaGapSchema, headerCtaTreatmentSchema, navContainerSchema, headerBackgroundSchema, headerSchema, footerVariant, footerMaxWidth, footerMode, footerNavLayoutMode, footerNavLayoutAlign, footerSpacing, footerLogoPlacement, footerLogoSize, footerLogoMaxHeight, footerBottomTextLinkStyleSchema, footerBottomBarSchema, footerNavLayoutSchema, footerLogoSchema, footerSchema, containerPaddingPresetSchema, layoutSchema, heroTypographySizeSchema, heroTypographyLineHeightSchema, heroResponsiveTypographySchema, heroTypographySchema, heroSchema, bodyTextIntroTypographySizeSchema, bodyTextSchema, gradientsSchema, testimonialQuoteTreatmentSchema, themeSchema;
|
|
24225
24611
|
var init_schema = __esmMin((() => {
|
|
24226
24612
|
init_media$2();
|
|
24227
24613
|
init_buttons();
|
|
@@ -24654,6 +25040,7 @@ var init_schema = __esmMin((() => {
|
|
|
24654
25040
|
"bold"
|
|
24655
25041
|
]);
|
|
24656
25042
|
headerMaxWidth = z$1.enum(["container", "full"]);
|
|
25043
|
+
headerBarFrame = z$1.enum(["full-bleed", "inset-shell"]);
|
|
24657
25044
|
headerContainerSchema = z$1.object({
|
|
24658
25045
|
rounded: z$1.enum([
|
|
24659
25046
|
"none",
|
|
@@ -24794,6 +25181,7 @@ var init_schema = __esmMin((() => {
|
|
|
24794
25181
|
positioning: headerPositioning,
|
|
24795
25182
|
shrinkOnScroll: z$1.boolean(),
|
|
24796
25183
|
maxWidth: headerMaxWidth,
|
|
25184
|
+
barFrame: headerBarFrame.optional(),
|
|
24797
25185
|
logoOverride: mediaSchema$1.nullable().optional(),
|
|
24798
25186
|
background: headerBackgroundSchema.default({
|
|
24799
25187
|
type: "color",
|
|
@@ -24803,6 +25191,7 @@ var init_schema = __esmMin((() => {
|
|
|
24803
25191
|
navStyle: headerNavStyle,
|
|
24804
25192
|
navColor: themeColorTokenSchema.nullable().optional(),
|
|
24805
25193
|
navWeight: navFontWeight.default("medium"),
|
|
25194
|
+
navFontRole: z$1.enum(["body", "heading"]).optional(),
|
|
24806
25195
|
navTypography: z$1.enum(["body", "heading"]).optional(),
|
|
24807
25196
|
navTextSize: navLinkStyleSchema.shape.textSize,
|
|
24808
25197
|
navPlacement: z$1.enum(["end", "center"]).optional(),
|
|
@@ -24818,7 +25207,7 @@ var init_schema = __esmMin((() => {
|
|
|
24818
25207
|
ctaTreatment: headerCtaTreatmentSchema.optional(),
|
|
24819
25208
|
ctaVariant: z$1.string().min(1).optional(),
|
|
24820
25209
|
dropdownStyle: dropdownStyleSchema
|
|
24821
|
-
});
|
|
25210
|
+
}).transform(normaliseHeaderNavFontRole);
|
|
24822
25211
|
footerVariant = z$1.enum([
|
|
24823
25212
|
"simple",
|
|
24824
25213
|
"columns",
|
|
@@ -25870,6 +26259,7 @@ var init_curatedSiteStyles = __esmMin((() => {
|
|
|
25870
26259
|
],
|
|
25871
26260
|
buttonPersonalityChoices: [
|
|
25872
26261
|
buttonChoice("soft-pill"),
|
|
26262
|
+
buttonChoice("two-tone-pill"),
|
|
25873
26263
|
buttonChoice("pebble"),
|
|
25874
26264
|
buttonChoice("editorial-link"),
|
|
25875
26265
|
buttonChoice("brushed-wash")
|
|
@@ -27049,6 +27439,7 @@ var init_curatedSiteStyles = __esmMin((() => {
|
|
|
27049
27439
|
],
|
|
27050
27440
|
buttonPersonalityChoices: [
|
|
27051
27441
|
buttonChoice("quiet-arrow"),
|
|
27442
|
+
buttonChoice("two-tone-pill"),
|
|
27052
27443
|
buttonChoice("flat-ink"),
|
|
27053
27444
|
buttonChoice("editorial-link")
|
|
27054
27445
|
],
|
|
@@ -27343,6 +27734,21 @@ var init_siteChromeBackgrounds = __esmMin((() => {
|
|
|
27343
27734
|
quickSiteChromeBackgroundColorTokens = toSiteChromeBackgroundColorTokens(backgroundAppearanceQuickColorTokenNames);
|
|
27344
27735
|
siteChromeBackgroundColorTokens.filter((token) => !quickSiteChromeBackgroundColorTokens.includes(token));
|
|
27345
27736
|
}));
|
|
27737
|
+
/**
|
|
27738
|
+
* Applies the user's nav font-role/size overrides on top of a style-resolved
|
|
27739
|
+
* nav link style. This is where the precedence contract lands:
|
|
27740
|
+
*
|
|
27741
|
+
* - The nav typography TREATMENT (case/tracking identity: plain / heading /
|
|
27742
|
+
* quiet-caps / brand-caps) is ALWAYS owned by the active header style and is
|
|
27743
|
+
* baked into `style` before this call (see `applyNavTypography` in
|
|
27744
|
+
* headerLooks.ts).
|
|
27745
|
+
* - Each treatment resolves through a DEFAULT font role: `heading` resolves
|
|
27746
|
+
* through the heading role; `plain` / `quiet-caps` / `brand-caps` resolve
|
|
27747
|
+
* through the body role.
|
|
27748
|
+
* - The user's `navFontRole` (surfaced here as `preferences.typography`) only
|
|
27749
|
+
* overrides which font ROLE the treatment resolves through. It never changes
|
|
27750
|
+
* the treatment. `'inherit'` keeps the treatment's default role.
|
|
27751
|
+
*/
|
|
27346
27752
|
function mergeHeaderNavTypographyPreference(style, preferences) {
|
|
27347
27753
|
return preferences.typography === "inherit" && preferences.fontSize === "inherit" ? style : {
|
|
27348
27754
|
...style,
|
|
@@ -28573,6 +28979,34 @@ function backgroundLayer(path, options = {}) {
|
|
|
28573
28979
|
];
|
|
28574
28980
|
}
|
|
28575
28981
|
/**
|
|
28982
|
+
* Wrap decorative background layers in their own clipping frame.
|
|
28983
|
+
*
|
|
28984
|
+
* Foreground content remains outside this frame, so editor outlines, focus
|
|
28985
|
+
* rings, and floating controls are never clipped by a visual background.
|
|
28986
|
+
* Backgrounds that explicitly opt into overflow keep that behavior within
|
|
28987
|
+
* the decorative layer rather than changing the content root.
|
|
28988
|
+
*/
|
|
28989
|
+
function backgroundFrame(path, options = {}) {
|
|
28990
|
+
const { leadingNodes = [], ...layerOptions } = options;
|
|
28991
|
+
const framedLayerOptions = {
|
|
28992
|
+
...layerOptions,
|
|
28993
|
+
styleClassName: layerOptions.styleClassName ?? "background-style rb-absolute rb-inset-0 rb-z-0 rb-h-full rb-w-full rb-pointer-events-none",
|
|
28994
|
+
imageClassName: layerOptions.imageClassName ?? "rb-absolute rb-z-0",
|
|
28995
|
+
overlayClassName: layerOptions.overlayClassName ?? "background-overlay rb-absolute rb-inset-0 rb-z-0 rb-h-full rb-w-full rb-pointer-events-none"
|
|
28996
|
+
};
|
|
28997
|
+
return el("div", {
|
|
28998
|
+
className: { $bind: {
|
|
28999
|
+
from: path,
|
|
29000
|
+
transforms: [{
|
|
29001
|
+
id: "background.resolveFrameClassName",
|
|
29002
|
+
options: { baseClass: BACKGROUND_FRAME_BASE_CLASS }
|
|
29003
|
+
}],
|
|
29004
|
+
fallback: `${BACKGROUND_FRAME_BASE_CLASS} rb-overflow-hidden`
|
|
29005
|
+
} },
|
|
29006
|
+
style: { borderRadius: "inherit" }
|
|
29007
|
+
}, [...leadingNodes, ...backgroundLayer(path, framedLayerOptions)]);
|
|
29008
|
+
}
|
|
29009
|
+
/**
|
|
28576
29010
|
* Creates a media node for rendering background image/video media with conditional rendering.
|
|
28577
29011
|
*
|
|
28578
29012
|
* This helper creates a media element that:
|
|
@@ -28647,8 +29081,10 @@ function createBackgroundOverlayNode(path, className = "background-overlay rb-ab
|
|
|
28647
29081
|
} }
|
|
28648
29082
|
});
|
|
28649
29083
|
}
|
|
29084
|
+
var BACKGROUND_FRAME_BASE_CLASS;
|
|
28650
29085
|
var init_backgroundLayer = __esmMin((() => {
|
|
28651
29086
|
init_builder$1();
|
|
29087
|
+
BACKGROUND_FRAME_BASE_CLASS = "rb-background-frame rb-absolute rb-inset-0 rb-z-neg-10 rb-h-full rb-w-full rb-isolate rb-pointer-events-none";
|
|
28652
29088
|
}));
|
|
28653
29089
|
//#endregion
|
|
28654
29090
|
//#region ../blocks/src/system/node/fragments/eyebrow.ts
|
|
@@ -28749,8 +29185,8 @@ var init_sectionContainer = __esmMin((() => {
|
|
|
28749
29185
|
* - content
|
|
28750
29186
|
*/
|
|
28751
29187
|
function styledContainer(config) {
|
|
28752
|
-
const { children, rootType = "div", rootProps, bindFrom = "_containerStyles", baseClassName = "rb-relative rb-isolate rb-overflow-
|
|
28753
|
-
const
|
|
29188
|
+
const { children, rootType = "div", rootProps, bindFrom = "_containerStyles", baseClassName = "rb-relative rb-isolate rb-overflow-visible", imageClassName = "rb-absolute rb-z-0", constrainWidth = true } = config;
|
|
29189
|
+
const backgroundNode = backgroundFrame(`${bindFrom}.background`, { imageClassName });
|
|
28754
29190
|
const childrenArray = Array.isArray(children) ? children : [children];
|
|
28755
29191
|
const { className: _ignoredClassName, style: _ignoredStyle, ...safeRootProps } = rootProps ?? {};
|
|
28756
29192
|
return el(rootType, {
|
|
@@ -28773,7 +29209,7 @@ function styledContainer(config) {
|
|
|
28773
29209
|
}],
|
|
28774
29210
|
fallback: constrainWidth ? `${baseClassName} rb-container` : baseClassName
|
|
28775
29211
|
} }
|
|
28776
|
-
}, [
|
|
29212
|
+
}, [backgroundNode, ...childrenArray]);
|
|
28777
29213
|
}
|
|
28778
29214
|
var init_styledContainer = __esmMin((() => {
|
|
28779
29215
|
init_builder$1();
|
|
@@ -28871,7 +29307,7 @@ var init_spacing = __esmMin((() => {
|
|
|
28871
29307
|
* - Creating a section wrapper with background theme
|
|
28872
29308
|
* - Adding background color/gradient/image layers
|
|
28873
29309
|
* - Binding className to section styles with transform
|
|
28874
|
-
* -
|
|
29310
|
+
* - Keeping foreground overflow visible while decorative backgrounds clip independently
|
|
28875
29311
|
* - Wrapping content children
|
|
28876
29312
|
*
|
|
28877
29313
|
* Use this helper to eliminate 25+ lines of boilerplate section setup code.
|
|
@@ -28907,8 +29343,8 @@ var init_spacing = __esmMin((() => {
|
|
|
28907
29343
|
* });
|
|
28908
29344
|
*/
|
|
28909
29345
|
function styledSection(config) {
|
|
28910
|
-
const { children, baseClass = "rb-px-6", spacing = DEFAULT_SECTION_SPACING, background = "background", bindFrom = "_sectionStyles", imageClassName = "rb-absolute rb-z-
|
|
28911
|
-
const
|
|
29346
|
+
const { children, baseClass = "rb-px-6", spacing = DEFAULT_SECTION_SPACING, background = "background", bindFrom = "_sectionStyles", imageClassName = "rb-absolute rb-z-0", renderBackgroundImage = true, backgroundImageLoading, backgroundImageFetchPriority, fullWidthPath } = config;
|
|
29347
|
+
const renderedBackgroundNode = backgroundFrame(`${bindFrom}.background`, {
|
|
28912
29348
|
imageClassName,
|
|
28913
29349
|
fallbackToken: background,
|
|
28914
29350
|
omitImageLayer: !renderBackgroundImage,
|
|
@@ -28931,13 +29367,8 @@ function styledSection(config) {
|
|
|
28931
29367
|
fullWidthPath
|
|
28932
29368
|
}
|
|
28933
29369
|
}]
|
|
28934
|
-
} },
|
|
28935
|
-
allowOverflow: allowOverflow ? true : { $bind: {
|
|
28936
|
-
from: `${bindFrom}.background`,
|
|
28937
|
-
transforms: [{ id: "background.resolveAllowOverflow" }],
|
|
28938
|
-
fallback: false
|
|
28939
29370
|
} }
|
|
28940
|
-
}, [
|
|
29371
|
+
}, [renderedBackgroundNode, ...childrenArray]);
|
|
28941
29372
|
}
|
|
28942
29373
|
var init_styledSection = __esmMin((() => {
|
|
28943
29374
|
init_builder$1();
|
|
@@ -29749,9 +30180,12 @@ var init_responsiveTwoColumn = __esmMin((() => {
|
|
|
29749
30180
|
//#endregion
|
|
29750
30181
|
//#region ../blocks/src/system/node/fragments/styledCard.ts
|
|
29751
30182
|
function styledCard(children, opts, ...mods) {
|
|
29752
|
-
const baseClassName = opts.baseClassName ?? "rb-relative rb-isolate rb-overflow-
|
|
29753
|
-
const defaultBackgroundLayer = el("div", {
|
|
29754
|
-
|
|
30183
|
+
const baseClassName = opts.baseClassName ?? "rb-relative rb-isolate rb-overflow-visible rb-border";
|
|
30184
|
+
const defaultBackgroundLayer = el("div", {
|
|
30185
|
+
className: "rb-absolute rb-inset-0 rb-z-neg-10 rb-h-full rb-w-full rb-pointer-events-none rb-bg-surface",
|
|
30186
|
+
style: { borderRadius: "inherit" }
|
|
30187
|
+
});
|
|
30188
|
+
const backgroundNode = backgroundFrame(opts.backgroundFrom);
|
|
29755
30189
|
const style = {
|
|
29756
30190
|
...opts.style ?? {},
|
|
29757
30191
|
borderColor: { $bind: {
|
|
@@ -29778,7 +30212,7 @@ function styledCard(children, opts, ...mods) {
|
|
|
29778
30212
|
...style ? { style } : {}
|
|
29779
30213
|
}, [
|
|
29780
30214
|
defaultBackgroundLayer,
|
|
29781
|
-
|
|
30215
|
+
backgroundNode,
|
|
29782
30216
|
...children
|
|
29783
30217
|
], ...mods);
|
|
29784
30218
|
}
|
|
@@ -30753,7 +31187,7 @@ function buildTestimonialCard(...mods) {
|
|
|
30753
31187
|
}, [stack({ gap: "md" }, [quoteMark, body]), el("div", { className: "rb-testimonial-attribution" }, buildAttributionNodes())])], {
|
|
30754
31188
|
stylesFrom: "content._cardStyles",
|
|
30755
31189
|
backgroundFrom: "content._cardStyles.background",
|
|
30756
|
-
baseClassName: "rb-testimonial-card rb-relative rb-isolate rb-flex rb-h-full rb-flex-col rb-overflow-
|
|
31190
|
+
baseClassName: "rb-testimonial-card rb-relative rb-isolate rb-flex rb-h-full rb-flex-col rb-overflow-visible rb-p-8"
|
|
30757
31191
|
}, ...mods);
|
|
30758
31192
|
}
|
|
30759
31193
|
/**
|
|
@@ -31523,7 +31957,7 @@ function createFaqAccordionLayout(options = {}) {
|
|
|
31523
31957
|
options: {
|
|
31524
31958
|
axis: "all",
|
|
31525
31959
|
includeSpacing: false,
|
|
31526
|
-
baseClass: "rb-faq-item rb-relative rb-isolate rb-overflow-
|
|
31960
|
+
baseClass: "rb-faq-item rb-relative rb-isolate rb-overflow-visible"
|
|
31527
31961
|
}
|
|
31528
31962
|
}]
|
|
31529
31963
|
},
|
|
@@ -33194,7 +33628,6 @@ function splitLayoutWith(children) {
|
|
|
33194
33628
|
}
|
|
33195
33629
|
}),
|
|
33196
33630
|
renderBackgroundImage: false,
|
|
33197
|
-
allowOverflow: true,
|
|
33198
33631
|
baseClass: ""
|
|
33199
33632
|
});
|
|
33200
33633
|
}
|
|
@@ -33839,7 +34272,7 @@ function postCard(children, ...mods) {
|
|
|
33839
34272
|
return styledCard(children, {
|
|
33840
34273
|
stylesFrom: "content._cardStyles",
|
|
33841
34274
|
backgroundFrom: "content._cardStyles.background",
|
|
33842
|
-
baseClassName: "rb-relative rb-isolate rb-overflow-
|
|
34275
|
+
baseClassName: "rb-relative rb-isolate rb-overflow-visible rb-border rb-flex rb-flex-col rb-h-full"
|
|
33843
34276
|
}, ...mods);
|
|
33844
34277
|
}
|
|
33845
34278
|
const gridPostCard = postCard([postImageLink("rb-h-48 rb-w-full rb-object-cover rb-transition-transform rb-hover-scale-105", {
|
|
@@ -33875,7 +34308,7 @@ const stackPostCard = styledCard([inline({
|
|
|
33875
34308
|
])])], {
|
|
33876
34309
|
stylesFrom: "content._cardStyles",
|
|
33877
34310
|
backgroundFrom: "content._cardStyles.background",
|
|
33878
|
-
baseClassName: "rb-relative rb-isolate rb-overflow-
|
|
34311
|
+
baseClassName: "rb-relative rb-isolate rb-overflow-visible rb-border"
|
|
33879
34312
|
}, repeat("data.posts", "post"));
|
|
33880
34313
|
const emptyState$2 = {
|
|
33881
34314
|
...styledCard([text({
|
|
@@ -33884,7 +34317,7 @@ const emptyState$2 = {
|
|
|
33884
34317
|
}, bind("content.emptyMessage", { fallback: "No posts published yet." }))], {
|
|
33885
34318
|
stylesFrom: "content._cardStyles",
|
|
33886
34319
|
backgroundFrom: "content._cardStyles.background",
|
|
33887
|
-
baseClassName: "rb-relative rb-isolate rb-overflow-
|
|
34320
|
+
baseClassName: "rb-relative rb-isolate rb-overflow-visible rb-border rb-border-dashed rb-p-8 rb-text-center"
|
|
33888
34321
|
}),
|
|
33889
34322
|
$when: {
|
|
33890
34323
|
when: { from: "data.posts[0]" },
|
|
@@ -33894,7 +34327,7 @@ const emptyState$2 = {
|
|
|
33894
34327
|
function blogListingShell(children) {
|
|
33895
34328
|
return styledSection({
|
|
33896
34329
|
children: styledContainer({
|
|
33897
|
-
baseClassName: "rb-relative rb-isolate rb-overflow-
|
|
34330
|
+
baseClassName: "rb-relative rb-isolate rb-overflow-visible",
|
|
33898
34331
|
children
|
|
33899
34332
|
}),
|
|
33900
34333
|
baseClass: ""
|
|
@@ -34444,7 +34877,7 @@ const copyLayout = fragmentLayoutNode$1(formCopyFragment.layout);
|
|
|
34444
34877
|
const formSurface = styledContainer({
|
|
34445
34878
|
bindFrom: "_containerStyles",
|
|
34446
34879
|
constrainWidth: false,
|
|
34447
|
-
baseClassName: "rb-form-surface rb-relative rb-isolate rb-overflow-
|
|
34880
|
+
baseClassName: "rb-form-surface rb-relative rb-isolate rb-overflow-visible",
|
|
34448
34881
|
children: fragmentLayoutNode$1(formEmbedFragment.layout)
|
|
34449
34882
|
});
|
|
34450
34883
|
function createFormLayout(variant) {
|
|
@@ -35743,6 +36176,7 @@ const headerRootClassTransform = {
|
|
|
35743
36176
|
];
|
|
35744
36177
|
const variant = header?.variant;
|
|
35745
36178
|
if (variant && VALID_VARIANTS.includes(variant)) classes.push(`header-variant-${variant}`);
|
|
36179
|
+
if (header?.barFrame === "inset-shell" && variant === "classic") classes.push("header-bar-frame-inset-shell");
|
|
35746
36180
|
return joinClasses$4(classes);
|
|
35747
36181
|
}
|
|
35748
36182
|
};
|
|
@@ -36116,7 +36550,7 @@ const mediaTransforms = [{
|
|
|
36116
36550
|
/**
|
|
36117
36551
|
* Strict record guard: excludes null, primitives, and arrays.
|
|
36118
36552
|
*/
|
|
36119
|
-
function isRecord$
|
|
36553
|
+
function isRecord$24(value) {
|
|
36120
36554
|
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
36121
36555
|
}
|
|
36122
36556
|
/**
|
|
@@ -36138,16 +36572,16 @@ const interpolateRichTextTokensOptionsSchema = z$1.object({ tokens: z$1.array(su
|
|
|
36138
36572
|
const richTextTokenPattern = /\{\{\s*([a-zA-Z0-9_]+)\s*\}\}/g;
|
|
36139
36573
|
function getSiteName(context) {
|
|
36140
36574
|
const viewModel = context.viewModel;
|
|
36141
|
-
if (!isRecord$
|
|
36575
|
+
if (!isRecord$24(viewModel)) return null;
|
|
36142
36576
|
const site = viewModel.site;
|
|
36143
|
-
if (isRecord$
|
|
36577
|
+
if (isRecord$24(site) && typeof site.title === "string") {
|
|
36144
36578
|
const title = site.title.trim();
|
|
36145
36579
|
return title.length > 0 ? title : null;
|
|
36146
36580
|
}
|
|
36147
36581
|
const root = viewModel.$root;
|
|
36148
|
-
if (isRecord$
|
|
36582
|
+
if (isRecord$24(root)) {
|
|
36149
36583
|
const rootSite = root.site;
|
|
36150
|
-
if (isRecord$
|
|
36584
|
+
if (isRecord$24(rootSite) && typeof rootSite.title === "string") {
|
|
36151
36585
|
const title = rootSite.title.trim();
|
|
36152
36586
|
if (title.length > 0) return title;
|
|
36153
36587
|
}
|
|
@@ -36169,7 +36603,7 @@ function replaceTokenText(input, allowedTokens, tokenValues) {
|
|
|
36169
36603
|
});
|
|
36170
36604
|
}
|
|
36171
36605
|
function visitRichTextNode(node, allowedTokens, tokenValues) {
|
|
36172
|
-
if (!isRecord$
|
|
36606
|
+
if (!isRecord$24(node)) return node;
|
|
36173
36607
|
let changed = false;
|
|
36174
36608
|
const nextNode = { ...node };
|
|
36175
36609
|
if (nextNode.type === "text" && typeof nextNode.text === "string") {
|
|
@@ -36190,13 +36624,13 @@ function visitRichTextNode(node, allowedTokens, tokenValues) {
|
|
|
36190
36624
|
return changed ? nextNode : node;
|
|
36191
36625
|
}
|
|
36192
36626
|
function interpolateRichTextTokens(value, options, context) {
|
|
36193
|
-
if (!isRecord$
|
|
36627
|
+
if (!isRecord$24(value)) return value;
|
|
36194
36628
|
const allowedTokens = new Set(options.tokens);
|
|
36195
36629
|
const tokenValues = {
|
|
36196
36630
|
year: String((/* @__PURE__ */ new Date()).getFullYear()),
|
|
36197
36631
|
site_name: getSiteName(context)
|
|
36198
36632
|
};
|
|
36199
|
-
if (isRecord$
|
|
36633
|
+
if (isRecord$24(value.doc)) {
|
|
36200
36634
|
const nextDoc = visitRichTextNode(value.doc, allowedTokens, tokenValues);
|
|
36201
36635
|
if (nextDoc === value.doc) return value;
|
|
36202
36636
|
return {
|
|
@@ -36296,7 +36730,7 @@ init_builder$1();
|
|
|
36296
36730
|
init_fragments$1();
|
|
36297
36731
|
init_defineBlock();
|
|
36298
36732
|
init_colorStyles();
|
|
36299
|
-
const whenTransformed
|
|
36733
|
+
const whenTransformed = (from, transformId, equals = true) => (node) => ({
|
|
36300
36734
|
...node,
|
|
36301
36735
|
$when: {
|
|
36302
36736
|
when: {
|
|
@@ -36324,7 +36758,7 @@ const logoRow = link({
|
|
|
36324
36758
|
text({
|
|
36325
36759
|
as: "strong",
|
|
36326
36760
|
className: "header-logo-text rb-truncate"
|
|
36327
|
-
}, whenTransformed
|
|
36761
|
+
}, whenTransformed("$root.theme.header.logo", "layout.headerLogoTextVisible"), bind("site.title", { fallback: "Your Site" }))
|
|
36328
36762
|
]);
|
|
36329
36763
|
const centeredLogoRow = link({
|
|
36330
36764
|
href: "/",
|
|
@@ -36344,7 +36778,7 @@ const centeredLogoRow = link({
|
|
|
36344
36778
|
text({
|
|
36345
36779
|
as: "strong",
|
|
36346
36780
|
className: "header-logo-text"
|
|
36347
|
-
}, whenTransformed
|
|
36781
|
+
}, whenTransformed("$root.theme.header.logo", "layout.headerLogoTextVisible"), bind("site.title", { fallback: "Your Site" }))
|
|
36348
36782
|
]);
|
|
36349
36783
|
const createNavRow = (className, align = "end") => navRow({
|
|
36350
36784
|
className: `${className} header-nav-row`,
|
|
@@ -36476,7 +36910,7 @@ const classicLayout = inline({
|
|
|
36476
36910
|
logoRow,
|
|
36477
36911
|
createNavRow(`rb-ml-auto ${desktopOnlyDisplay("flex")} rb-gap-6`),
|
|
36478
36912
|
headerCta
|
|
36479
|
-
], whenTransformed
|
|
36913
|
+
], whenTransformed("$root.theme.header", "layout.classicNavMode", "inline"));
|
|
36480
36914
|
const classicCenteredNavLayout = inline({
|
|
36481
36915
|
className: bindProp("$root.theme.header.maxWidth", {
|
|
36482
36916
|
transforms: pipe(tx("layout.maxWidthClass", { base: `rb-header-layout ${desktopOnlyDisplay("flex")} rb-w-full rb-items-center rb-gap-6` })),
|
|
@@ -36487,7 +36921,7 @@ const classicCenteredNavLayout = inline({
|
|
|
36487
36921
|
logoRow,
|
|
36488
36922
|
createNavRow(`rb-flex-1 rb-justify-center ${desktopOnlyDisplay("flex")} rb-gap-6`, "center"),
|
|
36489
36923
|
headerCta
|
|
36490
|
-
], whenTransformed
|
|
36924
|
+
], whenTransformed("$root.theme.header", "layout.classicNavMode", "centered"));
|
|
36491
36925
|
const centeredLayout = stack({
|
|
36492
36926
|
gap: "md",
|
|
36493
36927
|
align: "center",
|
|
@@ -36550,7 +36984,6 @@ const siteHeaderBlockDefinition = { manifest: createBlockManifest({
|
|
|
36550
36984
|
transforms: pipe(tx("layout.headerSectionBackground")),
|
|
36551
36985
|
fallback: "background"
|
|
36552
36986
|
}),
|
|
36553
|
-
allowOverflow: true,
|
|
36554
36987
|
className: bindProp("$root.theme.header", {
|
|
36555
36988
|
transforms: pipe(tx("layout.headerRootClass")),
|
|
36556
36989
|
fallback: "header-root rb-z-40 rb-w-full transition-theme"
|
|
@@ -36576,6 +37009,7 @@ const siteHeaderBlockDefinition = { manifest: createBlockManifest({
|
|
|
36576
37009
|
//#region ../blocks/src/system/blocks/site-footer-nav-groups-layout.ts
|
|
36577
37010
|
init_builder$1();
|
|
36578
37011
|
init_colorStyles();
|
|
37012
|
+
init_footerNav();
|
|
36579
37013
|
const footerNavGroupsLayout = stack({
|
|
36580
37014
|
gap: "lg",
|
|
36581
37015
|
align: "start",
|
|
@@ -36602,225 +37036,160 @@ const footerNavGroupsLayout = stack({
|
|
|
36602
37036
|
linkRequired: true,
|
|
36603
37037
|
target: { $bind: { from: "entry.target" } },
|
|
36604
37038
|
rel: { $bind: { from: "entry.rel" } }
|
|
36605
|
-
}, [text({ as: "span" }, bind("entry.label"))], repeat("group.children", "entry"))])], repeat("footerMenu.groups", "group"))],
|
|
37039
|
+
}, [text({ as: "span" }, bind("entry.label"))], repeat("group.children", "entry"))])], repeat("footerMenu.groups", "group"))], whenCollectionHasItems("footerMenu.groups"));
|
|
36606
37040
|
//#endregion
|
|
36607
37041
|
//#region ../blocks/src/system/blocks/site-footer.ts
|
|
36608
37042
|
init_fragments$1();
|
|
36609
37043
|
init_builder$1();
|
|
36610
|
-
init_fragments();
|
|
36611
37044
|
init_defineBlock();
|
|
36612
37045
|
init_colorStyles();
|
|
36613
37046
|
init_surfaces();
|
|
36614
|
-
const
|
|
36615
|
-
const whenTransformed = (from, transformId, equals = true) => (node) => ({
|
|
36616
|
-
...node,
|
|
36617
|
-
$when: {
|
|
36618
|
-
when: {
|
|
36619
|
-
from,
|
|
36620
|
-
transforms: [{ id: transformId }]
|
|
36621
|
-
},
|
|
36622
|
-
equals
|
|
36623
|
-
}
|
|
36624
|
-
});
|
|
36625
|
-
const bottomBarTextLayout = () => {
|
|
36626
|
-
const bottomTextNode = footerTextLayout()[1];
|
|
36627
|
-
return bottomTextNode ? [bottomTextNode] : [];
|
|
36628
|
-
};
|
|
36629
|
-
const bodyTextLayout = () => {
|
|
36630
|
-
const bodyTextNode = footerTextLayout()[0];
|
|
36631
|
-
return bodyTextNode ? [bodyTextNode] : [];
|
|
36632
|
-
};
|
|
36633
|
-
const businessAddressLayout = () => [text({
|
|
36634
|
-
as: "p",
|
|
36635
|
-
className: "rb-caption rb-opacity-80"
|
|
36636
|
-
}, bind("site.businessAddress.displayAddress"), when("content.showBusinessAddress", { equals: true }))];
|
|
36637
|
-
const inlineBottomTextLayout = () => {
|
|
36638
|
-
const bottomTextNode = footerTextLayout()[1];
|
|
36639
|
-
if (!bottomTextNode) return [];
|
|
36640
|
-
return [when("$root.theme.footer.bottomBar.enabled", {
|
|
36641
|
-
equals: true,
|
|
36642
|
-
not: true
|
|
36643
|
-
})(bottomTextNode)];
|
|
36644
|
-
};
|
|
36645
|
-
const simpleFooterLogo = link({
|
|
37047
|
+
const brandLogo = link({
|
|
36646
37048
|
href: "/",
|
|
36647
37049
|
className: { $bind: {
|
|
36648
37050
|
from: "$root.theme.footer.logo",
|
|
36649
37051
|
transforms: [{
|
|
36650
37052
|
id: "layout.footerLogoClass",
|
|
36651
|
-
options: {
|
|
37053
|
+
options: { base: "footer-logo rb-inline-flex rb-items-center rb-gap-3 rb-no-underline" }
|
|
36652
37054
|
}],
|
|
36653
|
-
fallback: "rb-
|
|
37055
|
+
fallback: "footer-logo rb-inline-flex rb-items-center rb-gap-3 rb-no-underline"
|
|
36654
37056
|
} }
|
|
36655
|
-
}, [
|
|
36656
|
-
|
|
36657
|
-
|
|
36658
|
-
|
|
36659
|
-
|
|
36660
|
-
}
|
|
36661
|
-
|
|
36662
|
-
|
|
36663
|
-
|
|
36664
|
-
|
|
36665
|
-
|
|
36666
|
-
|
|
36667
|
-
as: "strong",
|
|
36668
|
-
className: "footer-logo-text rb-nav-text"
|
|
36669
|
-
}, whenTransformed("$root.theme.footer", "layout.footerLogoTextVisible"), bind("site.title", { fallback: "Your Site" }))
|
|
36670
|
-
]);
|
|
36671
|
-
const simpleFooterLayout = stack({
|
|
37057
|
+
}, [media({ className: { $bind: {
|
|
37058
|
+
from: "$root.theme.footer.logo",
|
|
37059
|
+
transforms: [{
|
|
37060
|
+
id: "layout.footerLogoMediaClass",
|
|
37061
|
+
options: { base: "rb-h-10 rb-w-auto" }
|
|
37062
|
+
}],
|
|
37063
|
+
fallback: "rb-h-10 rb-w-auto"
|
|
37064
|
+
} } }, when("module.showLogo", { equals: true }), when("content.logo"), bind("content.logo")), text({
|
|
37065
|
+
as: "strong",
|
|
37066
|
+
className: "footer-logo-text rb-nav-text"
|
|
37067
|
+
}, when("module.showTitle", { equals: true }), bind("site.title", { fallback: "Your Site" }))], when("module.kind", { equals: "brand" }));
|
|
37068
|
+
const navigation = stack({
|
|
36672
37069
|
gap: "md",
|
|
36673
|
-
|
|
36674
|
-
|
|
36675
|
-
|
|
36676
|
-
|
|
36677
|
-
fallback: "rb-container rb-flex rb-w-full rb-flex-col rb-items-start rb-gap-4 rb-py-10 rb-text-left"
|
|
36678
|
-
} }
|
|
36679
|
-
}, [
|
|
36680
|
-
simpleFooterLogo,
|
|
36681
|
-
footerNav({
|
|
36682
|
-
collectionPath: "footerMenu.items",
|
|
36683
|
-
mode: "flatten",
|
|
36684
|
-
className: { $bind: {
|
|
36685
|
-
from: "$root.theme.footer.navLayout",
|
|
36686
|
-
transforms: [{ id: "layout.footerSimpleNavClass" }],
|
|
36687
|
-
fallback: "footer-nav rb-flex rb-flex-wrap rb-justify-start rb-gap-x-6 rb-gap-y-3"
|
|
36688
|
-
} },
|
|
36689
|
-
linkClassName: "footer-nav-link rb-inline-flex rb-items-center rb-px-4 rb-py-2 rb-nav-text transition-theme-standard"
|
|
36690
|
-
}),
|
|
36691
|
-
...bodyTextLayout(),
|
|
36692
|
-
...businessAddressLayout(),
|
|
36693
|
-
...inlineBottomTextLayout()
|
|
36694
|
-
], when("$root.theme.footer.variant", { equals: "simple" }));
|
|
36695
|
-
const columnsFooterLayout = stack({
|
|
36696
|
-
gap: "xl",
|
|
36697
|
-
align: "start",
|
|
37070
|
+
className: "rb-w-full"
|
|
37071
|
+
}, [footerNavGroupsLayout, footerNav({
|
|
37072
|
+
collectionPath: "footerMenu.items",
|
|
37073
|
+
mode: "links-only",
|
|
36698
37074
|
className: { $bind: {
|
|
36699
|
-
from: "
|
|
36700
|
-
|
|
36701
|
-
|
|
36702
|
-
|
|
36703
|
-
|
|
36704
|
-
|
|
36705
|
-
|
|
36706
|
-
|
|
36707
|
-
|
|
36708
|
-
|
|
36709
|
-
|
|
36710
|
-
|
|
36711
|
-
|
|
36712
|
-
|
|
36713
|
-
|
|
36714
|
-
|
|
36715
|
-
|
|
36716
|
-
|
|
36717
|
-
|
|
36718
|
-
|
|
36719
|
-
|
|
36720
|
-
|
|
36721
|
-
|
|
36722
|
-
|
|
36723
|
-
|
|
37075
|
+
from: "module.navigationClassName",
|
|
37076
|
+
fallback: "footer-nav rb-flex rb-flex-wrap rb-gap-x-6 rb-gap-y-3"
|
|
37077
|
+
} },
|
|
37078
|
+
linkClassName: "footer-nav-link rb-nav-text transition-theme-standard"
|
|
37079
|
+
})], when("module.kind", { equals: "navigation" }));
|
|
37080
|
+
const legalNavigation = footerNav({
|
|
37081
|
+
collectionPath: "legalFooterMenu.items",
|
|
37082
|
+
mode: "links-only",
|
|
37083
|
+
className: "rb-flex rb-flex-wrap rb-gap-x-4 rb-gap-y-2",
|
|
37084
|
+
linkClassName: "footer-nav-link rb-caption transition-theme-standard"
|
|
37085
|
+
});
|
|
37086
|
+
const address = text({
|
|
37087
|
+
as: "address",
|
|
37088
|
+
className: "rb-not-italic rb-opacity-80"
|
|
37089
|
+
}, when("module.kind", { equals: "business-address" }), bind("module.address"));
|
|
37090
|
+
const contact = stack({
|
|
37091
|
+
gap: "sm",
|
|
37092
|
+
className: "rb-items-start"
|
|
37093
|
+
}, [link({
|
|
37094
|
+
href: { $bind: { from: "contactLink.href" } },
|
|
37095
|
+
className: "rb-nav-text rb-break-words transition-theme-standard"
|
|
37096
|
+
}, [text({ as: "span" }, bind("contactLink.label"))], repeat("module.contactLinks", "contactLink"))], when("module.kind", { equals: "contact" }));
|
|
37097
|
+
const hours = stack({
|
|
37098
|
+
gap: "sm",
|
|
37099
|
+
className: "rb-w-full"
|
|
37100
|
+
}, [inline({ className: "rb-flex rb-w-full rb-justify-between rb-gap-4" }, [text({
|
|
37101
|
+
as: "span",
|
|
37102
|
+
className: "rb-label"
|
|
37103
|
+
}, bind("hoursDay.weekday")), text({
|
|
37104
|
+
as: "span",
|
|
37105
|
+
className: "rb-caption rb-opacity-80"
|
|
37106
|
+
}, bind("hoursDay.hours"))], repeat("module.openingHours", "hoursDay")), text({
|
|
37107
|
+
as: "p",
|
|
37108
|
+
className: "rb-caption rb-opacity-70"
|
|
37109
|
+
}, bind("module.timeZone"), when("module.timeZone"))], when("module.kind", { equals: "opening-hours" }));
|
|
37110
|
+
const socials = inline({ className: "rb-flex rb-flex-wrap rb-gap-x-5 rb-gap-y-3" }, [link({
|
|
37111
|
+
href: { $bind: { from: "social.href" } },
|
|
37112
|
+
target: "_blank",
|
|
37113
|
+
rel: "noreferrer noopener",
|
|
37114
|
+
"aria-label": { $bind: { from: "social.label" } },
|
|
37115
|
+
className: "rb-nav-text transition-theme-standard"
|
|
37116
|
+
}, [icon({ className: "rb-h-5 rb-w-5" }, bind("social.icon"), when("social.icon")), text({ as: "span" }, bind("social.label"), when("social.icon", { equals: null }))], repeat("module.socialLinks", "social"))], when("module.kind", { equals: "social-links" }));
|
|
37117
|
+
const authoredCopy = richText({
|
|
37118
|
+
className: "rb-prose rb-prose-sm rb-max-w-none",
|
|
37119
|
+
style: textColorStyle("text/80")
|
|
37120
|
+
}, when("module.content"), bind("module.content", { transforms: [{
|
|
37121
|
+
id: "content.interpolateRichTextTokens",
|
|
37122
|
+
options: { tokens: ["year", "site_name"] }
|
|
37123
|
+
}] }));
|
|
37124
|
+
const footerModule = stack({
|
|
37125
|
+
gap: "md",
|
|
36724
37126
|
align: "start",
|
|
36725
|
-
|
|
36726
|
-
from: "$root.theme.footer.maxWidth",
|
|
36727
|
-
transforms: [{
|
|
36728
|
-
id: "layout.maxWidthClass",
|
|
36729
|
-
options: { base: "rb-flex rb-w-full rb-flex-col rb-gap-10 rb-py-12" }
|
|
36730
|
-
}],
|
|
36731
|
-
fallback: "rb-container rb-flex rb-w-full rb-flex-col rb-gap-10 rb-py-12"
|
|
36732
|
-
} }
|
|
37127
|
+
"data-preview-footer-module-id": { $bind: { from: "module.id" } }
|
|
36733
37128
|
}, [
|
|
36734
|
-
|
|
36735
|
-
|
|
36736
|
-
|
|
36737
|
-
|
|
36738
|
-
}
|
|
36739
|
-
|
|
36740
|
-
|
|
36741
|
-
|
|
36742
|
-
|
|
36743
|
-
|
|
36744
|
-
|
|
36745
|
-
|
|
36746
|
-
|
|
36747
|
-
|
|
36748
|
-
|
|
36749
|
-
|
|
36750
|
-
|
|
36751
|
-
|
|
36752
|
-
|
|
36753
|
-
|
|
36754
|
-
|
|
36755
|
-
|
|
36756
|
-
|
|
36757
|
-
|
|
36758
|
-
|
|
36759
|
-
|
|
36760
|
-
|
|
36761
|
-
|
|
36762
|
-
|
|
36763
|
-
|
|
36764
|
-
|
|
36765
|
-
|
|
36766
|
-
|
|
36767
|
-
className: "footer-logo-text rb-nav-text"
|
|
36768
|
-
}, whenTransformed("$root.theme.footer", "layout.footerLogoTextVisible"), bind("site.title", { fallback: "Your Site" }))
|
|
36769
|
-
])]),
|
|
36770
|
-
...businessAddressLayout(),
|
|
36771
|
-
...inlineBottomTextLayout()
|
|
36772
|
-
], when("$root.theme.footer.variant", { equals: "split" }));
|
|
36773
|
-
const footerLayout = section$1({
|
|
36774
|
-
background: "background",
|
|
37129
|
+
text({
|
|
37130
|
+
as: "h2",
|
|
37131
|
+
className: "rb-label",
|
|
37132
|
+
style: textColorStyle("text/70")
|
|
37133
|
+
}, bind("module.heading"), when("module.heading")),
|
|
37134
|
+
brandLogo,
|
|
37135
|
+
navigation,
|
|
37136
|
+
stack({
|
|
37137
|
+
gap: "sm",
|
|
37138
|
+
className: "rb-w-full"
|
|
37139
|
+
}, [legalNavigation], when("module.kind", { equals: "legal-navigation" })),
|
|
37140
|
+
address,
|
|
37141
|
+
contact,
|
|
37142
|
+
hours,
|
|
37143
|
+
socials,
|
|
37144
|
+
stack({ className: "rb-w-full" }, [authoredCopy], when("module.kind", { equals: "supporting-text" })),
|
|
37145
|
+
stack({ className: "rb-w-full rb-lg-col-span-3" }, [authoredCopy], when("module.kind", { equals: "legal" }))
|
|
37146
|
+
], repeat("group.modules", "module"));
|
|
37147
|
+
const footerGroup = stack({
|
|
37148
|
+
gap: "md",
|
|
37149
|
+
align: "stretch",
|
|
37150
|
+
className: "rb-min-w-0",
|
|
37151
|
+
"data-footer-group": { $bind: { from: "group.kind" } }
|
|
37152
|
+
}, [footerModule], repeat("region.groups", "group"));
|
|
37153
|
+
const footerMainRegion = stack({
|
|
37154
|
+
className: { $bind: { from: "region.className" } },
|
|
37155
|
+
"data-footer-region": { $bind: { from: "region.kind" } }
|
|
37156
|
+
}, [footerGroup], when("region.kind", { equals: "main" }), repeat("content.footerRuntime.regions", "region"));
|
|
37157
|
+
const footerBottomRegion = stack({ className: { $bind: {
|
|
37158
|
+
from: "$root.theme.footer",
|
|
37159
|
+
transforms: [{ id: "layout.footerBottomBarContainerClass" }],
|
|
37160
|
+
fallback: "rb-w-full"
|
|
37161
|
+
} } }, [stack({
|
|
36775
37162
|
className: { $bind: {
|
|
36776
37163
|
from: "$root.theme.footer",
|
|
36777
|
-
transforms: [{ id: "layout.
|
|
36778
|
-
fallback: "rb-w-full rb-border-t
|
|
37164
|
+
transforms: [{ id: "layout.footerBottomBarClass" }],
|
|
37165
|
+
fallback: "rb-w-full rb-border-t rb-px-6 rb-py-6 rb-text-center"
|
|
36779
37166
|
} },
|
|
36780
37167
|
style: { $bind: {
|
|
36781
37168
|
from: "$root.theme.footer",
|
|
36782
|
-
transforms: [{ id: "layout.
|
|
36783
|
-
|
|
36784
|
-
|
|
36785
|
-
}, [
|
|
36786
|
-
simpleFooterLayout,
|
|
36787
|
-
columnsFooterLayout,
|
|
36788
|
-
splitFooterLayout,
|
|
36789
|
-
stack({
|
|
36790
|
-
className: { $bind: {
|
|
36791
|
-
from: "$root.theme.footer",
|
|
36792
|
-
transforms: [{ id: "layout.footerBottomBarClass" }],
|
|
36793
|
-
fallback: "rb-w-full rb-border-t rb-py-5"
|
|
36794
|
-
} },
|
|
36795
|
-
style: { $bind: {
|
|
36796
|
-
from: "$root.theme.footer",
|
|
36797
|
-
transforms: [{ id: "layout.footerBottomBarStyle" }]
|
|
36798
|
-
} }
|
|
36799
|
-
}, [stack({ className: { $bind: {
|
|
36800
|
-
from: "$root.theme.footer",
|
|
36801
|
-
transforms: [{ id: "layout.footerBottomBarContainerClass" }],
|
|
36802
|
-
fallback: "rb-container"
|
|
36803
|
-
} } }, [...bottomBarTextLayout()])], when("$root.theme.footer.bottomBar.enabled", { equals: true }))
|
|
36804
|
-
]);
|
|
37169
|
+
transforms: [{ id: "layout.footerBottomBarStyle" }]
|
|
37170
|
+
} },
|
|
37171
|
+
"data-footer-region": "bottom"
|
|
37172
|
+
}, [footerGroup])], when("region.kind", { equals: "bottom" }), repeat("content.footerRuntime.regions", "region"));
|
|
36805
37173
|
const siteFooterBlockDefinition = { manifest: createBlockManifest({
|
|
36806
37174
|
id: "block.site-footer",
|
|
36807
37175
|
title: "Site Footer",
|
|
36808
37176
|
category: "layout",
|
|
36809
|
-
fragments: [{
|
|
36810
|
-
fragment: footerBottomTextFragment,
|
|
36811
|
-
fieldPriority: 0
|
|
36812
|
-
}],
|
|
36813
37177
|
skipSectionStyles: true,
|
|
36814
|
-
|
|
36815
|
-
|
|
36816
|
-
|
|
36817
|
-
|
|
36818
|
-
|
|
36819
|
-
|
|
36820
|
-
|
|
36821
|
-
|
|
36822
|
-
|
|
36823
|
-
|
|
37178
|
+
layout: section$1({
|
|
37179
|
+
background: "background",
|
|
37180
|
+
className: { $bind: {
|
|
37181
|
+
from: "$root.theme.footer",
|
|
37182
|
+
transforms: [{ id: "layout.footerRootClass" }],
|
|
37183
|
+
fallback: "rb-w-full rb-border-t transition-theme"
|
|
37184
|
+
} },
|
|
37185
|
+
style: { $bind: {
|
|
37186
|
+
from: "$root.theme.footer",
|
|
37187
|
+
transforms: [{ id: "layout.footerRootStyle" }],
|
|
37188
|
+
fallback: mergeStyles(backgroundColorStyle("surface"), surfaceForegroundStyle({ text: "rgb(var(--tb-text))" }), borderColorStyle("border"))
|
|
37189
|
+
} },
|
|
37190
|
+
"data-footer-membership": { $bind: { from: "content.footerRuntime.membershipKey" } }
|
|
37191
|
+
}, [footerMainRegion, footerBottomRegion]),
|
|
37192
|
+
description: "Site-wide composed footer with canonical shared details.",
|
|
36824
37193
|
styleTokens: { spacing: "md" },
|
|
36825
37194
|
paletteHidden: true
|
|
36826
37195
|
}) };
|
|
@@ -37320,7 +37689,7 @@ const repeatedItemsNode = repeaterFragmentLayout({
|
|
|
37320
37689
|
id: "boxStyles.all",
|
|
37321
37690
|
options: {
|
|
37322
37691
|
axis: "all",
|
|
37323
|
-
baseClass: "rb-collection-item rb-relative rb-isolate rb-overflow-
|
|
37692
|
+
baseClass: "rb-collection-item rb-relative rb-isolate rb-overflow-visible rb-border"
|
|
37324
37693
|
}
|
|
37325
37694
|
}]
|
|
37326
37695
|
},
|
|
@@ -37510,11 +37879,11 @@ function resolveFeatureCardGeneratedIconSizePx(value) {
|
|
|
37510
37879
|
const parsed = parseFeatureCardGeneratedIconSizePx(value);
|
|
37511
37880
|
return parsed.ok ? parsed.value : unsafeAsFeatureCardGeneratedIconSizePx(FEATURE_CARD_GENERATED_ICON_SIZE_PX.default);
|
|
37512
37881
|
}
|
|
37513
|
-
function isRecord$
|
|
37882
|
+
function isRecord$23(value) {
|
|
37514
37883
|
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
37515
37884
|
}
|
|
37516
37885
|
function toPlainTextFromTipTap(value) {
|
|
37517
|
-
if (!isRecord$
|
|
37886
|
+
if (!isRecord$23(value)) return "";
|
|
37518
37887
|
if (typeof value.text === "string") return value.text;
|
|
37519
37888
|
const content = value.content;
|
|
37520
37889
|
if (!Array.isArray(content)) return "";
|
|
@@ -38825,10 +39194,10 @@ var init_media$1 = __esmMin((() => {
|
|
|
38825
39194
|
* helper inside `@riverbankcms/blocks/bindings`.
|
|
38826
39195
|
*/
|
|
38827
39196
|
function unwrapRichTextRoot(value) {
|
|
38828
|
-
if (!isRecord$
|
|
39197
|
+
if (!isRecord$24(value)) return value;
|
|
38829
39198
|
if (!("doc" in value)) return value;
|
|
38830
39199
|
const inner = value.doc;
|
|
38831
|
-
if (isRecord$
|
|
39200
|
+
if (isRecord$24(inner) && inner.type === "doc") return inner;
|
|
38832
39201
|
return value;
|
|
38833
39202
|
}
|
|
38834
39203
|
function createHardBreakNode() {
|
|
@@ -39823,11 +40192,11 @@ var init_eventScope = __esmMin((() => {
|
|
|
39823
40192
|
}));
|
|
39824
40193
|
//#endregion
|
|
39825
40194
|
//#region ../blocks/src/system/runtime/nodes/events/shared/destination.ts
|
|
39826
|
-
function isRecord$
|
|
40195
|
+
function isRecord$22(value) {
|
|
39827
40196
|
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
39828
40197
|
}
|
|
39829
40198
|
function isRuntimeEventDestination(value) {
|
|
39830
|
-
if (!isRecord$
|
|
40199
|
+
if (!isRecord$22(value) || typeof value.kind !== "string") return false;
|
|
39831
40200
|
if (value.kind === "native") return (value.mode === "cms-managed" || value.mode === "system-managed") && typeof value.path === "string";
|
|
39832
40201
|
return value.kind === "external" && typeof value.url === "string" && typeof value.label === "string";
|
|
39833
40202
|
}
|
|
@@ -39890,15 +40259,15 @@ function resolveRuntimeEventPricing(event) {
|
|
|
39890
40259
|
function readCurrency(value) {
|
|
39891
40260
|
return typeof value === "string" && value.trim().length > 0 ? value : DEFAULT_EVENT_CURRENCY$1;
|
|
39892
40261
|
}
|
|
39893
|
-
function isRecord$
|
|
40262
|
+
function isRecord$21(value) {
|
|
39894
40263
|
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
39895
40264
|
}
|
|
39896
40265
|
function isPublicEventPricing(value) {
|
|
39897
|
-
if (!isRecord$
|
|
40266
|
+
if (!isRecord$21(value) || typeof value.kind !== "string") return false;
|
|
39898
40267
|
return value.kind === "drop_in" || value.kind === "free_registration" || value.kind === "single_paid" || value.kind === "sliding_scale" || value.kind === "ticket_types" || value.kind === "course" || value.kind === "external";
|
|
39899
40268
|
}
|
|
39900
40269
|
function isPublicEventTicketType(value) {
|
|
39901
|
-
return isRecord$
|
|
40270
|
+
return isRecord$21(value) && typeof value.id === "string";
|
|
39902
40271
|
}
|
|
39903
40272
|
function readTicketTypePriceDisplay(value, currency) {
|
|
39904
40273
|
const display = readLegacyPriceDisplay(value, currency);
|
|
@@ -39908,7 +40277,7 @@ function readTicketTypePriceDisplay(value, currency) {
|
|
|
39908
40277
|
} : display;
|
|
39909
40278
|
}
|
|
39910
40279
|
function readLegacyPriceDisplay(value, currency) {
|
|
39911
|
-
if (!isRecord$
|
|
40280
|
+
if (!isRecord$21(value) || typeof value.kind !== "string") return {
|
|
39912
40281
|
kind: "unavailable",
|
|
39913
40282
|
currency
|
|
39914
40283
|
};
|
|
@@ -39960,7 +40329,7 @@ function readLegacyPriceDisplay(value, currency) {
|
|
|
39960
40329
|
kind: "unavailable",
|
|
39961
40330
|
currency: displayCurrency
|
|
39962
40331
|
};
|
|
39963
|
-
case "course": return isRecord$
|
|
40332
|
+
case "course": return isRecord$21(value.display) ? {
|
|
39964
40333
|
kind: "course",
|
|
39965
40334
|
display: readCoursePriceDisplay(value.display, displayCurrency)
|
|
39966
40335
|
} : {
|
|
@@ -40218,14 +40587,14 @@ function buildEventRegistrationShellBodyText(stepLabels) {
|
|
|
40218
40587
|
return "Preparing dates, tickets, and booking details.";
|
|
40219
40588
|
}
|
|
40220
40589
|
function normalizeEventRegistrationEventInput(value) {
|
|
40221
|
-
if (!isRecord$
|
|
40590
|
+
if (!isRecord$20(value)) return value;
|
|
40222
40591
|
return {
|
|
40223
40592
|
...value,
|
|
40224
40593
|
destination: resolveRuntimeEventDestination(value),
|
|
40225
40594
|
pricing: resolveRuntimeEventPricing(value)
|
|
40226
40595
|
};
|
|
40227
40596
|
}
|
|
40228
|
-
function isRecord$
|
|
40597
|
+
function isRecord$20(value) {
|
|
40229
40598
|
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
40230
40599
|
}
|
|
40231
40600
|
function buildEventRegistrationInteractiveIslandProps(props) {
|
|
@@ -46598,7 +46967,7 @@ function inferLegacyOfferingsPreviewGroupOrder(overrides) {
|
|
|
46598
46967
|
return keys.length >= 2 ? keys : [];
|
|
46599
46968
|
}
|
|
46600
46969
|
function normalizeOfferingsPreviewContentForWrite(value) {
|
|
46601
|
-
if (!isRecord$
|
|
46970
|
+
if (!isRecord$18(value)) return null;
|
|
46602
46971
|
const groupOrderValue = value.groupOrder;
|
|
46603
46972
|
if (Array.isArray(groupOrderValue)) {
|
|
46604
46973
|
const normalized = normalizeOfferingsPreviewGroupOrder(groupOrderValue);
|
|
@@ -46611,7 +46980,7 @@ function normalizeOfferingsPreviewContentForWrite(value) {
|
|
|
46611
46980
|
...value,
|
|
46612
46981
|
groupOrder: []
|
|
46613
46982
|
};
|
|
46614
|
-
const legacyOrder = inferLegacyOfferingsPreviewGroupOrder(Array.isArray(value.groupOverrides) ? value.groupOverrides.filter(isRecord$
|
|
46983
|
+
const legacyOrder = inferLegacyOfferingsPreviewGroupOrder(Array.isArray(value.groupOverrides) ? value.groupOverrides.filter(isRecord$18) : []);
|
|
46615
46984
|
return legacyOrder.length > 0 ? {
|
|
46616
46985
|
...value,
|
|
46617
46986
|
groupOrder: legacyOrder
|
|
@@ -46676,7 +47045,7 @@ function uniqueOfferingsPreviewSourceKeys(values) {
|
|
|
46676
47045
|
}
|
|
46677
47046
|
return keys;
|
|
46678
47047
|
}
|
|
46679
|
-
function isRecord$
|
|
47048
|
+
function isRecord$18(value) {
|
|
46680
47049
|
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
46681
47050
|
}
|
|
46682
47051
|
function mergeOrderedKeysWithDefaults(orderedKeys, defaultKeys) {
|
|
@@ -47169,7 +47538,7 @@ function isOfferingsPreviewItemLimit(value) {
|
|
|
47169
47538
|
return value === "1" || value === "2" || value === "3" || value === "4" || value === "5" || value === "6" || value === null;
|
|
47170
47539
|
}
|
|
47171
47540
|
function normalizeOfferingsPreviewGroupOverride(value) {
|
|
47172
|
-
if (!isRecord$
|
|
47541
|
+
if (!isRecord$17(value)) return [];
|
|
47173
47542
|
const override = {};
|
|
47174
47543
|
if (isOfferingsPreviewSourceKey(value.sourceKey) || value.sourceKey === null) override.sourceKey = value.sourceKey;
|
|
47175
47544
|
if (typeof value.title === "string" || value.title === null) override.title = value.title;
|
|
@@ -47185,12 +47554,12 @@ function isButtonVariant(value) {
|
|
|
47185
47554
|
return value === "primary" || value === "secondary" || value === "outline" || value === "link" || value === null;
|
|
47186
47555
|
}
|
|
47187
47556
|
function normalizeCardStylesContent(value) {
|
|
47188
|
-
return isRecord$
|
|
47557
|
+
return isRecord$17(value) || value === null ? value : void 0;
|
|
47189
47558
|
}
|
|
47190
47559
|
function normalizeSectionStylesContent(value) {
|
|
47191
|
-
return isRecord$
|
|
47560
|
+
return isRecord$17(value) || value === null ? value : void 0;
|
|
47192
47561
|
}
|
|
47193
|
-
function isRecord$
|
|
47562
|
+
function isRecord$17(value) {
|
|
47194
47563
|
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
47195
47564
|
}
|
|
47196
47565
|
//#endregion
|
|
@@ -53000,16 +53369,17 @@ const backgroundTransforms = [
|
|
|
53000
53369
|
run: (value, _options, context) => resolveSurfaceForegroundStyles(value, context)
|
|
53001
53370
|
},
|
|
53002
53371
|
{
|
|
53003
|
-
id: "background.
|
|
53372
|
+
id: "background.resolveFrameClassName",
|
|
53004
53373
|
kind: "formatter",
|
|
53005
|
-
summary: "Resolve
|
|
53006
|
-
run: (value) => {
|
|
53007
|
-
|
|
53374
|
+
summary: "Resolve clipping on a decorative background frame without clipping foreground content",
|
|
53375
|
+
run: (value, options) => {
|
|
53376
|
+
const baseClass = options?.baseClass?.trim() ?? "";
|
|
53377
|
+
if (!value || typeof value !== "object") return `${baseClass} rb-overflow-hidden`.trim();
|
|
53008
53378
|
const input = value;
|
|
53009
|
-
if (input.overflow === true) return
|
|
53379
|
+
if (input.overflow === true) return `${baseClass} rb-overflow-visible`.trim();
|
|
53010
53380
|
const objectFit = isString$2(input.objectFit) ? input.objectFit.trim() : null;
|
|
53011
53381
|
const scale = isString$2(input.scale) ? input.scale.trim() : isNumber$2(input.scale) ? String(input.scale) : null;
|
|
53012
|
-
return Boolean((objectFit === "custom" || objectFit === "original") && scale && scale.trim().length > 0);
|
|
53382
|
+
return `${baseClass} ${Boolean((objectFit === "custom" || objectFit === "original") && scale && scale.trim().length > 0) ? "rb-overflow-visible" : "rb-overflow-hidden"}`.trim();
|
|
53013
53383
|
}
|
|
53014
53384
|
},
|
|
53015
53385
|
{
|
|
@@ -53297,7 +53667,7 @@ init_core();
|
|
|
53297
53667
|
init_src$3();
|
|
53298
53668
|
const LINKED_CONTENT_ENTRY_META_KEY = "__rbLinkedContentEntry";
|
|
53299
53669
|
function coerceLinkedContentEntriesPayload(payload) {
|
|
53300
|
-
if (!isRecord$
|
|
53670
|
+
if (!isRecord$15(payload)) return payload;
|
|
53301
53671
|
const response = payload;
|
|
53302
53672
|
if (!Array.isArray(response.entries)) return payload;
|
|
53303
53673
|
const contentType = parsePublicContentTypeMeta(response.contentType);
|
|
@@ -53305,16 +53675,16 @@ function coerceLinkedContentEntriesPayload(payload) {
|
|
|
53305
53675
|
return response.entries.map((entry) => enrichLinkedContentEntry(entry, contentType));
|
|
53306
53676
|
}
|
|
53307
53677
|
function getLinkedContentEntryMeta(value) {
|
|
53308
|
-
if (!isRecord$
|
|
53678
|
+
if (!isRecord$15(value)) return null;
|
|
53309
53679
|
const candidate = value[LINKED_CONTENT_ENTRY_META_KEY];
|
|
53310
53680
|
return isLinkedContentEntryMeta(candidate) ? candidate : null;
|
|
53311
53681
|
}
|
|
53312
53682
|
function buildLinkedContentEditTarget(input) {
|
|
53313
53683
|
const { entry, sourceBlockId, sourceBlockKind, itemIndex } = input;
|
|
53314
|
-
if (!isRecord$
|
|
53684
|
+
if (!isRecord$15(entry)) return null;
|
|
53315
53685
|
const meta = getLinkedContentEntryMeta(entry);
|
|
53316
53686
|
if (!meta || meta.support.kind !== "supported") return null;
|
|
53317
|
-
const content = isRecord$
|
|
53687
|
+
const content = isRecord$15(entry.content) ? entry.content : {};
|
|
53318
53688
|
return {
|
|
53319
53689
|
kind: "linked-content-entry",
|
|
53320
53690
|
entryId: meta.entryId,
|
|
@@ -53378,12 +53748,12 @@ function resolveLinkedEntryInlineFieldEligibility(input) {
|
|
|
53378
53748
|
};
|
|
53379
53749
|
}
|
|
53380
53750
|
function enrichLinkedContentEntry(entry, contentType) {
|
|
53381
|
-
if (!isRecord$
|
|
53751
|
+
if (!isRecord$15(entry)) return entry;
|
|
53382
53752
|
const entryId = typeof entry.id === "string" ? entry.id : null;
|
|
53383
53753
|
if (!entryId) return entry;
|
|
53384
53754
|
const title = typeof entry.title === "string" && entry.title.trim().length > 0 ? entry.title : entryId;
|
|
53385
53755
|
const optimisticHash = typeof entry.optimisticHash === "string" && entry.optimisticHash.length > 0 ? entry.optimisticHash : null;
|
|
53386
|
-
const content = isRecord$
|
|
53756
|
+
const content = isRecord$15(entry.content) ? entry.content : {};
|
|
53387
53757
|
const meta = {
|
|
53388
53758
|
kind: "linked-content-entry",
|
|
53389
53759
|
entryId,
|
|
@@ -53479,7 +53849,7 @@ function capitalize(value) {
|
|
|
53479
53849
|
return value.charAt(0).toUpperCase() + value.slice(1).toLowerCase();
|
|
53480
53850
|
}
|
|
53481
53851
|
function parsePublicContentTypeMeta(value) {
|
|
53482
|
-
if (!isRecord$
|
|
53852
|
+
if (!isRecord$15(value)) return null;
|
|
53483
53853
|
if (typeof value.key !== "string" || value.key.trim().length === 0) return null;
|
|
53484
53854
|
return {
|
|
53485
53855
|
key: value.key,
|
|
@@ -53489,7 +53859,7 @@ function parsePublicContentTypeMeta(value) {
|
|
|
53489
53859
|
};
|
|
53490
53860
|
}
|
|
53491
53861
|
function parsePublicContentTypeLinkedEntryEditing(value) {
|
|
53492
|
-
if (!isRecord$
|
|
53862
|
+
if (!isRecord$15(value) || typeof value.kind !== "string") return null;
|
|
53493
53863
|
switch (value.kind) {
|
|
53494
53864
|
case "generic": return { kind: "generic" };
|
|
53495
53865
|
case "unsupported-domain-backed": return {
|
|
@@ -53500,7 +53870,7 @@ function parsePublicContentTypeLinkedEntryEditing(value) {
|
|
|
53500
53870
|
}
|
|
53501
53871
|
}
|
|
53502
53872
|
function parsePublicContentTypeFieldMeta(value) {
|
|
53503
|
-
if (!isRecord$
|
|
53873
|
+
if (!isRecord$15(value)) return [];
|
|
53504
53874
|
if (typeof value.id !== "string" || typeof value.type !== "string") return [];
|
|
53505
53875
|
return [{
|
|
53506
53876
|
id: value.id,
|
|
@@ -53515,14 +53885,14 @@ function parseStringArray(value) {
|
|
|
53515
53885
|
return value.filter((item) => typeof item === "string");
|
|
53516
53886
|
}
|
|
53517
53887
|
function isLinkedContentEntryMeta(value) {
|
|
53518
|
-
if (!isRecord$
|
|
53888
|
+
if (!isRecord$15(value)) return false;
|
|
53519
53889
|
if (value.kind !== "linked-content-entry") return false;
|
|
53520
53890
|
if (typeof value.entryId !== "string") return false;
|
|
53521
53891
|
if (typeof value.contentTypeKey !== "string") return false;
|
|
53522
53892
|
if (typeof value.contentTypeLabel !== "string") return false;
|
|
53523
53893
|
if (typeof value.title !== "string") return false;
|
|
53524
53894
|
if (!(value.optimisticHash === null || typeof value.optimisticHash === "string")) return false;
|
|
53525
|
-
if (!isRecord$
|
|
53895
|
+
if (!isRecord$15(value.contentType)) return false;
|
|
53526
53896
|
if (!isLinkedEntryFieldSourceArray(value.fieldSources)) return false;
|
|
53527
53897
|
return isLinkedContentEditSupport(value.support);
|
|
53528
53898
|
}
|
|
@@ -53530,7 +53900,7 @@ function isLinkedEntryFieldSourceArray(value) {
|
|
|
53530
53900
|
return Array.isArray(value) && value.every(isLinkedEntryFieldSource);
|
|
53531
53901
|
}
|
|
53532
53902
|
function isLinkedEntryFieldSource(value) {
|
|
53533
|
-
if (!isRecord$
|
|
53903
|
+
if (!isRecord$15(value)) return false;
|
|
53534
53904
|
if (typeof value.displayPath !== "string") return false;
|
|
53535
53905
|
switch (value.kind) {
|
|
53536
53906
|
case "content-field": return typeof value.fieldPath === "string" && (value.fieldType === "text" || value.fieldType === "richText");
|
|
@@ -53551,7 +53921,7 @@ function isLinkedEntryInlineFieldReadOnlyReason(value) {
|
|
|
53551
53921
|
}
|
|
53552
53922
|
}
|
|
53553
53923
|
function isLinkedContentEditSupport(value) {
|
|
53554
|
-
if (!isRecord$
|
|
53924
|
+
if (!isRecord$15(value) || typeof value.kind !== "string") return false;
|
|
53555
53925
|
switch (value.kind) {
|
|
53556
53926
|
case "supported": return true;
|
|
53557
53927
|
case "unsupported-domain-backed":
|
|
@@ -53560,17 +53930,17 @@ function isLinkedContentEditSupport(value) {
|
|
|
53560
53930
|
default: return false;
|
|
53561
53931
|
}
|
|
53562
53932
|
}
|
|
53563
|
-
function isRecord$
|
|
53933
|
+
function isRecord$15(value) {
|
|
53564
53934
|
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
53565
53935
|
}
|
|
53566
53936
|
//#endregion
|
|
53567
53937
|
//#region ../blocks/src/primitives/layout/Section.tsx
|
|
53568
53938
|
init_clsx();
|
|
53569
53939
|
init_colorStyles();
|
|
53570
|
-
const Section$1 = forwardRef(function Section({ as: Comp = "section", children, background, className = "",
|
|
53940
|
+
const Section$1 = forwardRef(function Section({ as: Comp = "section", children, background, className = "", style, "data-slot": dataSlot }, ref) {
|
|
53571
53941
|
return /* @__PURE__ */ jsx(Comp, {
|
|
53572
53942
|
ref,
|
|
53573
|
-
className: clsx("rb-relative rb-isolate
|
|
53943
|
+
className: clsx("rb-relative rb-isolate rb-overflow-visible", className),
|
|
53574
53944
|
style: mergeStyles(typeof background === "string" && background.trim().length > 0 ? backgroundColorStyle(background.trim()) : void 0, style),
|
|
53575
53945
|
"data-slot": dataSlot ?? "section",
|
|
53576
53946
|
children
|
|
@@ -53694,10 +54064,7 @@ function Grid({ as: Comp = "div", cols = {
|
|
|
53694
54064
|
}
|
|
53695
54065
|
//#endregion
|
|
53696
54066
|
//#region ../blocks/src/system/runtime/nodes/layout.tsx
|
|
53697
|
-
const SectionNode = ({ blockId: _blockId, blockKind: _blockKind, blockContent: _blockContent, fragmentRegistry: _fragmentRegistry, previewAuthoring: _previewAuthoring, pathBase: _pathBase,
|
|
53698
|
-
...props,
|
|
53699
|
-
allowOverflow
|
|
53700
|
-
});
|
|
54067
|
+
const SectionNode = ({ blockId: _blockId, blockKind: _blockKind, blockContent: _blockContent, fragmentRegistry: _fragmentRegistry, previewAuthoring: _previewAuthoring, pathBase: _pathBase, ...props }) => /* @__PURE__ */ jsx(Section$1, { ...props });
|
|
53701
54068
|
const StackNode = ({ blockId: _blockId, blockKind: _blockKind, blockContent: _blockContent, fragmentRegistry: _fragmentRegistry, previewAuthoring: _previewAuthoring, pathBase: _pathBase, ...props }) => /* @__PURE__ */ jsx(Stack, { ...props });
|
|
53702
54069
|
const InlineNode = ({ blockId: _blockId, blockKind: _blockKind, blockContent: _blockContent, fragmentRegistry: _fragmentRegistry, previewAuthoring: _previewAuthoring, pathBase: _pathBase, ...props }) => /* @__PURE__ */ jsx(Inline, { ...props });
|
|
53703
54070
|
const GridNode = ({ blockId: _blockId, blockKind: _blockKind, blockContent: _blockContent, fragmentRegistry: _fragmentRegistry, previewAuthoring: _previewAuthoring, pathBase: _pathBase, ...props }) => /* @__PURE__ */ jsx(Grid, { ...props });
|
|
@@ -53707,18 +54074,43 @@ const FigureNode = ({ blockId: _blockId, blockKind: _blockKind, blockContent: _b
|
|
|
53707
54074
|
//#region ../path-utils/src/index.ts
|
|
53708
54075
|
const PATH_SEPARATOR_REGEX$1 = /\./g;
|
|
53709
54076
|
const BRACKET_ACCESS_REGEX$1 = /\[([^\]]+)\]/g;
|
|
53710
|
-
|
|
54077
|
+
/**
|
|
54078
|
+
* Segments that would traverse or mutate the prototype chain.
|
|
54079
|
+
*
|
|
54080
|
+
* `setAtPath` creates nested objects along the path, so allowing these
|
|
54081
|
+
* segments is a prototype-pollution vector. They are rejected everywhere a
|
|
54082
|
+
* path is parsed (string or pre-parsed array form) — fail closed.
|
|
54083
|
+
*/
|
|
54084
|
+
const UNSAFE_PATH_SEGMENTS = /* @__PURE__ */ new Set([
|
|
54085
|
+
"__proto__",
|
|
54086
|
+
"constructor",
|
|
54087
|
+
"prototype"
|
|
54088
|
+
]);
|
|
54089
|
+
var UnsafePathSegmentError = class extends Error {
|
|
54090
|
+
constructor(segment) {
|
|
54091
|
+
super(`Unsafe path segment: "${segment}"`);
|
|
54092
|
+
this.name = "UnsafePathSegmentError";
|
|
54093
|
+
this.segment = segment;
|
|
54094
|
+
}
|
|
54095
|
+
};
|
|
54096
|
+
function assertSafePathSegments(segments) {
|
|
54097
|
+
for (const segment of segments) if (typeof segment === "string" && UNSAFE_PATH_SEGMENTS.has(segment)) throw new UnsafePathSegmentError(segment);
|
|
54098
|
+
}
|
|
54099
|
+
function isRecord$14(value) {
|
|
53711
54100
|
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
53712
54101
|
}
|
|
53713
54102
|
function isPathContainer(value) {
|
|
53714
|
-
return Array.isArray(value) || isRecord$
|
|
54103
|
+
return Array.isArray(value) || isRecord$14(value);
|
|
53715
54104
|
}
|
|
53716
54105
|
function getContainerValue(container, segment) {
|
|
53717
54106
|
if (typeof segment === "number") return Array.isArray(container) ? container[segment] : void 0;
|
|
53718
54107
|
if (segment in container) return Reflect.get(container, segment);
|
|
53719
54108
|
}
|
|
53720
54109
|
function parsePath(path) {
|
|
53721
|
-
if (Array.isArray(path))
|
|
54110
|
+
if (Array.isArray(path)) {
|
|
54111
|
+
assertSafePathSegments(path);
|
|
54112
|
+
return path;
|
|
54113
|
+
}
|
|
53722
54114
|
const segments = [];
|
|
53723
54115
|
const parts = path.split(PATH_SEPARATOR_REGEX$1);
|
|
53724
54116
|
for (const raw of parts) {
|
|
@@ -53738,6 +54130,7 @@ function parsePath(path) {
|
|
|
53738
54130
|
}
|
|
53739
54131
|
if (baseMatch === null && !raw.includes("[")) segments.push(raw);
|
|
53740
54132
|
}
|
|
54133
|
+
assertSafePathSegments(segments);
|
|
53741
54134
|
return segments;
|
|
53742
54135
|
}
|
|
53743
54136
|
function getAtPath(source, path) {
|
|
@@ -53989,6 +54382,59 @@ function getCtaIconComponent(name) {
|
|
|
53989
54382
|
return CTA_ICON_COMPONENTS[name] ?? null;
|
|
53990
54383
|
}
|
|
53991
54384
|
//#endregion
|
|
54385
|
+
//#region ../blocks/src/system/icons/social.tsx
|
|
54386
|
+
init_svg();
|
|
54387
|
+
const SOCIAL_ICON_NAMES = [
|
|
54388
|
+
"SocialFacebook",
|
|
54389
|
+
"SocialInstagram",
|
|
54390
|
+
"SocialLinkedIn",
|
|
54391
|
+
"SocialTikTok",
|
|
54392
|
+
"SocialX",
|
|
54393
|
+
"SocialYouTube"
|
|
54394
|
+
];
|
|
54395
|
+
const socialIcons = {
|
|
54396
|
+
SocialFacebook: createIcon("SocialFacebookIcon", /* @__PURE__ */ jsx("path", { d: "M14 8h3V4h-3c-3 0-5 2-5 5v3H6v4h3v6h4v-6h3l1-4h-4V9c0-.7.3-1 1-1Z" })),
|
|
54397
|
+
SocialInstagram: createIcon("SocialInstagramIcon", /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
54398
|
+
/* @__PURE__ */ jsx("rect", {
|
|
54399
|
+
x: "3",
|
|
54400
|
+
y: "3",
|
|
54401
|
+
width: "18",
|
|
54402
|
+
height: "18",
|
|
54403
|
+
rx: "5"
|
|
54404
|
+
}),
|
|
54405
|
+
/* @__PURE__ */ jsx("circle", {
|
|
54406
|
+
cx: "12",
|
|
54407
|
+
cy: "12",
|
|
54408
|
+
r: "4"
|
|
54409
|
+
}),
|
|
54410
|
+
/* @__PURE__ */ jsx("circle", {
|
|
54411
|
+
cx: "17.5",
|
|
54412
|
+
cy: "6.5",
|
|
54413
|
+
r: ".75",
|
|
54414
|
+
fill: "currentColor",
|
|
54415
|
+
stroke: "none"
|
|
54416
|
+
})
|
|
54417
|
+
] })),
|
|
54418
|
+
SocialLinkedIn: createIcon("SocialLinkedInIcon", /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
54419
|
+
/* @__PURE__ */ jsx("path", { d: "M6 9v10" }),
|
|
54420
|
+
/* @__PURE__ */ jsx("path", {
|
|
54421
|
+
d: "M6 5.5v.01",
|
|
54422
|
+
strokeWidth: "3"
|
|
54423
|
+
}),
|
|
54424
|
+
/* @__PURE__ */ jsx("path", { d: "M10.5 19v-6a4 4 0 0 1 8 0v6" }),
|
|
54425
|
+
/* @__PURE__ */ jsx("path", { d: "M10.5 9v10" })
|
|
54426
|
+
] })),
|
|
54427
|
+
SocialTikTok: createIcon("SocialTikTokIcon", /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx("path", { d: "M14 4v11.5a4.5 4.5 0 1 1-4-4.47" }), /* @__PURE__ */ jsx("path", { d: "M14 4c.7 3 2.4 4.5 5 4.5" })] })),
|
|
54428
|
+
SocialX: createIcon("SocialXIcon", /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx("path", { d: "m5 4 14 16" }), /* @__PURE__ */ jsx("path", { d: "M19 4 5 20" })] })),
|
|
54429
|
+
SocialYouTube: createIcon("SocialYouTubeIcon", /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx("path", { d: "M21 12c0 3.5-.5 5.5-1.3 6.3S16.5 19.5 12 19.5s-6.9-.4-7.7-1.2S3 15.5 3 12s.5-5.5 1.3-6.3S7.5 4.5 12 4.5s6.9.4 7.7 1.2S21 8.5 21 12Z" }), /* @__PURE__ */ jsx("path", { d: "m10 9 5 3-5 3Z" })] }))
|
|
54430
|
+
};
|
|
54431
|
+
function isSocialIconName(value) {
|
|
54432
|
+
return typeof value === "string" && SOCIAL_ICON_NAMES.includes(value);
|
|
54433
|
+
}
|
|
54434
|
+
function getSocialIconComponent(value) {
|
|
54435
|
+
return isSocialIconName(value) ? socialIcons[value] : null;
|
|
54436
|
+
}
|
|
54437
|
+
//#endregion
|
|
53992
54438
|
//#region ../blocks/src/system/icons/registry.ts
|
|
53993
54439
|
init_presets$1();
|
|
53994
54440
|
function buildSearchText(parts) {
|
|
@@ -54019,7 +54465,7 @@ function semanticOptionsForPreset(preset) {
|
|
|
54019
54465
|
}
|
|
54020
54466
|
semanticOptionsForPreset("feature");
|
|
54021
54467
|
function getIconComponent(name) {
|
|
54022
|
-
return getCtaIconComponent(name) ?? getSemanticIconComponent(name);
|
|
54468
|
+
return getCtaIconComponent(name) ?? getSemanticIconComponent(name) ?? getSocialIconComponent(name);
|
|
54023
54469
|
}
|
|
54024
54470
|
//#endregion
|
|
54025
54471
|
//#region ../blocks/src/system/runtime/nodes/buttonAffordance.ts
|
|
@@ -54058,7 +54504,7 @@ function resolveButtonAffordance(input) {
|
|
|
54058
54504
|
function coerceRichTextDoc(value) {
|
|
54059
54505
|
const raw = unwrapRichTextRoot(value);
|
|
54060
54506
|
if (typeof raw === "string") return createRichTextDocFromMarkdown(raw);
|
|
54061
|
-
if (isRecord$
|
|
54507
|
+
if (isRecord$24(raw) && typeof raw.type === "string") return raw;
|
|
54062
54508
|
return null;
|
|
54063
54509
|
}
|
|
54064
54510
|
var init_richText_coerce = __esmMin((() => {
|
|
@@ -54838,7 +55284,6 @@ const HeaderSectionNode = ({ blockId, children, className, "data-preview-site-ch
|
|
|
54838
55284
|
const asProp = rest.as;
|
|
54839
55285
|
const styleProp = rest.style;
|
|
54840
55286
|
const backgroundProp = typeof rest.background === "string" ? rest.background : void 0;
|
|
54841
|
-
const allowOverflowProp = typeof rest.allowOverflow === "boolean" ? rest.allowOverflow : void 0;
|
|
54842
55287
|
const dataSlotProp = typeof rest["data-slot"] === "string" ? rest["data-slot"] : void 0;
|
|
54843
55288
|
return /* @__PURE__ */ jsxs("nav", {
|
|
54844
55289
|
...getIslandRootProps("headerSection", blockId),
|
|
@@ -54853,7 +55298,6 @@ const HeaderSectionNode = ({ blockId, children, className, "data-preview-site-ch
|
|
|
54853
55298
|
as: asProp,
|
|
54854
55299
|
style: styleProp,
|
|
54855
55300
|
background: backgroundProp ?? "background",
|
|
54856
|
-
allowOverflow: allowOverflowProp,
|
|
54857
55301
|
"data-slot": dataSlotProp,
|
|
54858
55302
|
className: sectionClasses || void 0,
|
|
54859
55303
|
children
|
|
@@ -55045,7 +55489,7 @@ function successSubmissionFeedback(message) {
|
|
|
55045
55489
|
message
|
|
55046
55490
|
};
|
|
55047
55491
|
}
|
|
55048
|
-
function isRecord$
|
|
55492
|
+
function isRecord$12(value) {
|
|
55049
55493
|
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
55050
55494
|
}
|
|
55051
55495
|
function deepEqualJsonValue(left, right) {
|
|
@@ -55055,8 +55499,8 @@ function deepEqualJsonValue(left, right) {
|
|
|
55055
55499
|
if (left.length !== right.length) return false;
|
|
55056
55500
|
return left.every((item, index) => deepEqualJsonValue(item, right[index]));
|
|
55057
55501
|
}
|
|
55058
|
-
if (isRecord$
|
|
55059
|
-
if (!isRecord$
|
|
55502
|
+
if (isRecord$12(left) || isRecord$12(right)) {
|
|
55503
|
+
if (!isRecord$12(left) || !isRecord$12(right)) return false;
|
|
55060
55504
|
const leftKeys = Object.keys(left).sort();
|
|
55061
55505
|
if (!deepEqualJsonValue(leftKeys, Object.keys(right).sort())) return false;
|
|
55062
55506
|
return leftKeys.every((key) => deepEqualJsonValue(left[key], right[key]));
|
|
@@ -55213,12 +55657,12 @@ function resolveBookingSiteId(siteId, form) {
|
|
|
55213
55657
|
return siteId || form?.siteId || "";
|
|
55214
55658
|
}
|
|
55215
55659
|
function normalizeBookingFormConfig(form) {
|
|
55216
|
-
if (!isRecord$
|
|
55660
|
+
if (!isRecord$11(form)) return null;
|
|
55217
55661
|
const id = readNonEmptyString(form.id);
|
|
55218
55662
|
const name = readNonEmptyString(form.name);
|
|
55219
55663
|
if (!id || !name) return null;
|
|
55220
|
-
const schemaSource = isRecord$
|
|
55221
|
-
const settingsSource = isRecord$
|
|
55664
|
+
const schemaSource = isRecord$11(form.schema) ? form.schema : isRecord$11(form.schemaJson) ? form.schemaJson : null;
|
|
55665
|
+
const settingsSource = isRecord$11(form.settings) ? form.settings : isRecord$11(form.settingsJson) ? form.settingsJson : null;
|
|
55222
55666
|
return {
|
|
55223
55667
|
id,
|
|
55224
55668
|
name,
|
|
@@ -55238,8 +55682,8 @@ function normalizeBookingServices(services) {
|
|
|
55238
55682
|
};
|
|
55239
55683
|
if (!services) return [];
|
|
55240
55684
|
if (Array.isArray(services)) return services.filter(isBookingFormService).map(normalizeService);
|
|
55241
|
-
if (isRecord$
|
|
55242
|
-
return isRecord$
|
|
55685
|
+
if (isRecord$11(services) && "services" in services) return Array.isArray(services.services) ? services.services.filter(isBookingFormService).map(normalizeService) : [];
|
|
55686
|
+
return isRecord$11(services) ? Object.values(services).filter(isBookingFormService).map(normalizeService) : [];
|
|
55243
55687
|
}
|
|
55244
55688
|
function normalizeBookingSchema(value) {
|
|
55245
55689
|
if (!value) return void 0;
|
|
@@ -55250,7 +55694,7 @@ function normalizeBookingSchema(value) {
|
|
|
55250
55694
|
};
|
|
55251
55695
|
}
|
|
55252
55696
|
function readBookingFormField(value) {
|
|
55253
|
-
if (!isRecord$
|
|
55697
|
+
if (!isRecord$11(value)) return null;
|
|
55254
55698
|
const id = readNonEmptyString(value.id);
|
|
55255
55699
|
const label = readNonEmptyString(value.label);
|
|
55256
55700
|
const type = readBookingFieldType(value.type);
|
|
@@ -55294,7 +55738,7 @@ function readBookingFieldOptions(value) {
|
|
|
55294
55738
|
return options.length > 0 ? options : void 0;
|
|
55295
55739
|
}
|
|
55296
55740
|
function readBookingFieldOption(value) {
|
|
55297
|
-
if (!isRecord$
|
|
55741
|
+
if (!isRecord$11(value)) return null;
|
|
55298
55742
|
const optionValue = readNonEmptyString(value.value);
|
|
55299
55743
|
const label = readNonEmptyString(value.label);
|
|
55300
55744
|
return optionValue && label ? {
|
|
@@ -55314,7 +55758,7 @@ function normalizeBookingSettings(value) {
|
|
|
55314
55758
|
};
|
|
55315
55759
|
}
|
|
55316
55760
|
function isBookingFormService(value) {
|
|
55317
|
-
return isRecord$
|
|
55761
|
+
return isRecord$11(value) && typeof value.id === "string" && typeof value.siteId === "string" && typeof value.title === "string";
|
|
55318
55762
|
}
|
|
55319
55763
|
function collectBookingCustomFields(data) {
|
|
55320
55764
|
const customFields = {};
|
|
@@ -55364,7 +55808,7 @@ function readStringArray(value) {
|
|
|
55364
55808
|
const strings = value.filter((item) => typeof item === "string");
|
|
55365
55809
|
return strings.length > 0 ? strings : void 0;
|
|
55366
55810
|
}
|
|
55367
|
-
function isRecord$
|
|
55811
|
+
function isRecord$11(value) {
|
|
55368
55812
|
return typeof value === "object" && value !== null;
|
|
55369
55813
|
}
|
|
55370
55814
|
function getBookingServicePaymentSelectionMode(service) {
|
|
@@ -57608,7 +58052,7 @@ function resolveGroupFrame(cardStyles) {
|
|
|
57608
58052
|
contentClassName: "offerings-preview-card-content rb-flex rb-h-full rb-min-h-full rb-flex-col rb-gap-5"
|
|
57609
58053
|
};
|
|
57610
58054
|
return {
|
|
57611
|
-
containerClassName: ["offerings-preview-card offerings-preview-card--framed rb-relative rb-isolate rb-h-full rb-min-h-full rb-overflow-
|
|
58055
|
+
containerClassName: ["offerings-preview-card offerings-preview-card--framed rb-relative rb-isolate rb-h-full rb-min-h-full rb-overflow-visible rb-bg-surface rb-border rb-border-border", resolveGroupFrameClasses(cardStyles)].filter(Boolean).join(" "),
|
|
57612
58056
|
containerStyle: resolveGroupFrameStyle(cardStyles),
|
|
57613
58057
|
contentClassName: "card-content offerings-preview-card-content rb-flex rb-h-full rb-min-h-full rb-flex-col rb-gap-5"
|
|
57614
58058
|
};
|
|
@@ -59923,14 +60367,14 @@ function isDecoratedHeadingBlockKind(blockKind) {
|
|
|
59923
60367
|
return blockKind === "block.intro" || blockKind === "block.feature-cards" || blockKind === "block.testimonials" || blockKind === "block.faq";
|
|
59924
60368
|
}
|
|
59925
60369
|
function readVariant(blockContent) {
|
|
59926
|
-
if (!isRecord$
|
|
60370
|
+
if (!isRecord$10(blockContent)) return void 0;
|
|
59927
60371
|
const variant = blockContent.variant;
|
|
59928
60372
|
return typeof variant === "string" ? variant : void 0;
|
|
59929
60373
|
}
|
|
59930
60374
|
function isFaqDecoratedVariant(variant) {
|
|
59931
60375
|
return variant === "default" || variant === "question-columns";
|
|
59932
60376
|
}
|
|
59933
|
-
function isRecord$
|
|
60377
|
+
function isRecord$10(value) {
|
|
59934
60378
|
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
59935
60379
|
}
|
|
59936
60380
|
function buildHeadingDecorationWrapperClassName(className) {
|
|
@@ -60684,9 +61128,9 @@ function isReactNode(value) {
|
|
|
60684
61128
|
* Handles conditionals ($when), scopes ($scopes), repeaters ($repeat), bindings ($bind), and children.
|
|
60685
61129
|
*/
|
|
60686
61130
|
function resolveNode(node, context, indexFallback) {
|
|
60687
|
-
if (!shouldRenderNode(node, context)) return null;
|
|
60688
61131
|
const scopeContext = applyScopes(node, context);
|
|
60689
61132
|
if (node.$repeat) return resolveRepeater(node, scopeContext);
|
|
61133
|
+
if (!shouldRenderNode(node, scopeContext)) return null;
|
|
60690
61134
|
const registry = scopeContext.registry ?? serverComponentRegistry;
|
|
60691
61135
|
const normalizedType = node.type.toLowerCase();
|
|
60692
61136
|
const component = registry[node.type] ?? registry[normalizedType] ?? (normalizedType === "section" ? SectionNode : void 0);
|
|
@@ -61005,7 +61449,7 @@ function applyStyleOverride(target, key, defaults) {
|
|
|
61005
61449
|
//#endregion
|
|
61006
61450
|
//#region ../blocks/src/system/runtime/blockComposition.ts
|
|
61007
61451
|
function readBlockComposition(value) {
|
|
61008
|
-
if (!isRecord$
|
|
61452
|
+
if (!isRecord$9(value) || typeof value.kind !== "string") return null;
|
|
61009
61453
|
switch (value.kind) {
|
|
61010
61454
|
case "intro": return value.treatment === "editorial-statement" || value.treatment === "portrait-bio" ? {
|
|
61011
61455
|
kind: "intro",
|
|
@@ -61018,7 +61462,7 @@ function readBlockComposition(value) {
|
|
|
61018
61462
|
default: return null;
|
|
61019
61463
|
}
|
|
61020
61464
|
}
|
|
61021
|
-
function isRecord$
|
|
61465
|
+
function isRecord$9(value) {
|
|
61022
61466
|
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
61023
61467
|
}
|
|
61024
61468
|
//#endregion
|
|
@@ -61190,11 +61634,11 @@ init_repeaterGrid();
|
|
|
61190
61634
|
//#endregion
|
|
61191
61635
|
//#region ../blocks/src/system/media/constrainedVideoMedia.ts
|
|
61192
61636
|
init_src$2();
|
|
61193
|
-
function isRecord$
|
|
61637
|
+
function isRecord$8(value) {
|
|
61194
61638
|
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
61195
61639
|
}
|
|
61196
61640
|
function valueAtField(current, fieldId) {
|
|
61197
|
-
return isRecord$
|
|
61641
|
+
return isRecord$8(current) ? current[fieldId] : void 0;
|
|
61198
61642
|
}
|
|
61199
61643
|
function collectConstrainedVideoMediaValues(options) {
|
|
61200
61644
|
const { blockKind, fields, currentValue, parentPath = [] } = options;
|
|
@@ -61205,7 +61649,7 @@ function collectConstrainedVideoMediaValues(options) {
|
|
|
61205
61649
|
const fieldValue = valueAtField(currentValue, field.id);
|
|
61206
61650
|
switch (field.type) {
|
|
61207
61651
|
case "media": {
|
|
61208
|
-
if (!isRecord$
|
|
61652
|
+
if (!isRecord$8(fieldValue) || fieldValue.type !== "video") break;
|
|
61209
61653
|
const policy = deriveVideoSlotPolicy(resolveVideoSelectionIntentForMediaField({
|
|
61210
61654
|
fieldPath,
|
|
61211
61655
|
mediaKinds: field.mediaKinds
|
|
@@ -62141,6 +62585,19 @@ init_breakpoints();
|
|
|
62141
62585
|
init_navDropdownSizing();
|
|
62142
62586
|
const HEADER_BLUR = "blur(12px)";
|
|
62143
62587
|
const FLOATING_BLUR = "blur(16px)";
|
|
62588
|
+
const INSET_SHELL_MARKER_CLASS = "header-bar-frame-inset-shell";
|
|
62589
|
+
const INSET_SHELL_EDGE = "1rem";
|
|
62590
|
+
const INSET_SHELL_INSET_BLOCK = "0.875rem";
|
|
62591
|
+
const INSET_SHELL_RADIUS = "9999px";
|
|
62592
|
+
const INSET_SHELL_CONTAINER_MAX = "80rem";
|
|
62593
|
+
const INSET_SHELL_INTERIOR_PADDING_X = "1.75rem";
|
|
62594
|
+
/**
|
|
62595
|
+
* Whether the classic header should render as an inset "brand capsule" shell.
|
|
62596
|
+
* The facet is only meaningful for the classic layout; other variants ignore it.
|
|
62597
|
+
*/
|
|
62598
|
+
function usesInsetShell(header) {
|
|
62599
|
+
return header.barFrame === "inset-shell" && header.variant === "classic";
|
|
62600
|
+
}
|
|
62144
62601
|
/**
|
|
62145
62602
|
* Generate complete CSS for header system from theme config
|
|
62146
62603
|
*
|
|
@@ -62240,7 +62697,36 @@ function generateHeaderRootStyles(header, themeId, tokens, _theme) {
|
|
|
62240
62697
|
const baseBlock = `\n${selector} {\n ${rules.join("\n ")}\n}\n`;
|
|
62241
62698
|
const overlayFix = `\n${`${selector}:has([data-nav-mobile-overlay][aria-hidden="false"])`} {\n backdrop-filter: none !important;\n -webkit-backdrop-filter: none !important;\n}\n`;
|
|
62242
62699
|
if (isContainedNav || backgroundRules.length === 0) return `${baseBlock}\n${overlayFix}`;
|
|
62243
|
-
return `${baseBlock}\n${`\n${backgroundSelector} {\n content: \"\";\n position: absolute;\n inset: 0;\n pointer-events: none;\n border-radius: inherit;\n z-index: -1;\n ${backgroundRules.join("\n ")}\n}\n`}\n${overlayFix}`;
|
|
62700
|
+
return `${baseBlock}\n${`\n${backgroundSelector} {\n content: \"\";\n position: absolute;\n inset: 0;\n pointer-events: none;\n border-radius: inherit;\n z-index: -1;\n ${backgroundRules.join("\n ")}\n}\n`}\n${overlayFix}${usesInsetShell(header) ? generateInsetShellStyles(header, themeId) : ""}`;
|
|
62701
|
+
}
|
|
62702
|
+
/**
|
|
62703
|
+
* Reshapes the full-bleed header paint layer into a contained brand capsule at
|
|
62704
|
+
* the desktop breakpoint. The capsule is centred, capped to the page container
|
|
62705
|
+
* width, inset from the top, fully rounded, and carries the header depth so it
|
|
62706
|
+
* reads as a floating pill. Root border/shadow are neutralised on desktop so a
|
|
62707
|
+
* bordered style does not leave a full-width hairline around the capsule. Sticky
|
|
62708
|
+
* positioning is unaffected — the root stays full width and sticky while the
|
|
62709
|
+
* ::before paint provides the capsule.
|
|
62710
|
+
*/
|
|
62711
|
+
function generateInsetShellStyles(header, themeId) {
|
|
62712
|
+
const scope = `:where([data-theme-scope="${themeId}"])`;
|
|
62713
|
+
const shellRootSelector = `${scope} .header-root.${INSET_SHELL_MARKER_CLASS}`;
|
|
62714
|
+
const shellBeforeSelector = `${scope} .header-root.${INSET_SHELL_MARKER_CLASS}::before`;
|
|
62715
|
+
const layoutSelector = `${scope} .header-root.${INSET_SHELL_MARKER_CLASS} .rb-header-layout`;
|
|
62716
|
+
const widthValue = header.maxWidth === "full" ? `calc(100% - (${INSET_SHELL_EDGE} * 2))` : `min(${INSET_SHELL_CONTAINER_MAX}, calc(100% - (${INSET_SHELL_EDGE} * 2)))`;
|
|
62717
|
+
const shadowVar = getComponentShadowVar(header.shadow?.elevation ?? "none");
|
|
62718
|
+
const rootRules = ["border: none;", "box-shadow: none;"];
|
|
62719
|
+
const beforeRules = [
|
|
62720
|
+
`inset: ${INSET_SHELL_INSET_BLOCK} auto;`,
|
|
62721
|
+
"left: 50%;",
|
|
62722
|
+
"right: auto;",
|
|
62723
|
+
"transform: translateX(-50%);",
|
|
62724
|
+
`width: ${widthValue};`,
|
|
62725
|
+
`border-radius: ${INSET_SHELL_RADIUS};`,
|
|
62726
|
+
...shadowVar ? [`box-shadow: ${shadowVar};`] : []
|
|
62727
|
+
];
|
|
62728
|
+
const layoutRules = [`padding-inline: ${INSET_SHELL_INTERIOR_PADDING_X};`];
|
|
62729
|
+
return `\n@media ${MQ_MD_UP} {\n${shellRootSelector} {\n ${rootRules.join("\n ")}\n}\n${shellBeforeSelector} {\n ${beforeRules.join("\n ")}\n}\n${layoutSelector} {\n ${layoutRules.join("\n ")}\n}\n}\n`;
|
|
62244
62730
|
}
|
|
62245
62731
|
/**
|
|
62246
62732
|
* Generate logo typography styles
|
|
@@ -62318,7 +62804,7 @@ function generateLogoTextBehaviorStyles(logoText, themeId) {
|
|
|
62318
62804
|
*/
|
|
62319
62805
|
function generateNavLinkStyles(header, themeId, tokens, theme, contrastTreatment, navTextSize) {
|
|
62320
62806
|
const navPreferences = {
|
|
62321
|
-
typography: header.navTypography ?? "inherit",
|
|
62807
|
+
typography: header.navFontRole ?? header.navTypography ?? "inherit",
|
|
62322
62808
|
fontSize: readHeaderNavFontSizePreference(header.navTextSize)
|
|
62323
62809
|
};
|
|
62324
62810
|
if (header.navLinkStyle) return generateNavLinkCSS({
|
|
@@ -64986,7 +65472,7 @@ function hydrateValue(value, context) {
|
|
|
64986
65472
|
const resolvedItems = value.map((item) => hydrateValue(item, context));
|
|
64987
65473
|
return resolvedItems.every((item, index) => item === value[index]) ? value : resolvedItems;
|
|
64988
65474
|
}
|
|
64989
|
-
if (isRecord$
|
|
65475
|
+
if (isRecord$24(value)) {
|
|
64990
65476
|
if (isInternalLink$1(value)) return hydrateInternalLink(value, context.routes);
|
|
64991
65477
|
if (isPageLink$1(value)) return hydratePageLink(value, context);
|
|
64992
65478
|
if (isEntryLink$1(value)) return hydrateEntryLink(value, context);
|
|
@@ -66688,6 +67174,12 @@ const containerResponsiveThemeCss = `/*
|
|
|
66688
67174
|
.rb-lg-hidden {
|
|
66689
67175
|
display: none;
|
|
66690
67176
|
}
|
|
67177
|
+
.rb-lg-flex-row {
|
|
67178
|
+
flex-direction: row;
|
|
67179
|
+
}
|
|
67180
|
+
.rb-lg-items-center {
|
|
67181
|
+
align-items: center;
|
|
67182
|
+
}
|
|
66691
67183
|
}
|
|
66692
67184
|
|
|
66693
67185
|
}
|
|
@@ -78124,7 +78616,7 @@ const containerResponsiveThemeCss = `/*
|
|
|
78124
78616
|
[data-block="feature-cards"][data-block-composition="asymmetric-emphasis"]
|
|
78125
78617
|
.rb-feature-card {
|
|
78126
78618
|
height: auto;
|
|
78127
|
-
overflow:
|
|
78619
|
+
overflow: visible;
|
|
78128
78620
|
border: 0;
|
|
78129
78621
|
border-radius: 0;
|
|
78130
78622
|
background: transparent;
|
|
@@ -79632,108 +80124,6 @@ function getCmsApiUrl$1() {
|
|
|
79632
80124
|
function resolveApiBaseUrl() {
|
|
79633
80125
|
return getCmsApiUrl$1();
|
|
79634
80126
|
}
|
|
79635
|
-
const API_ERROR_CODE_SET = /* @__PURE__ */ new Set([
|
|
79636
|
-
"auth:unauthenticated",
|
|
79637
|
-
"auth:token_expired",
|
|
79638
|
-
"auth:token_invalid",
|
|
79639
|
-
"auth:forbidden",
|
|
79640
|
-
"auth:mfa_required",
|
|
79641
|
-
"auth:sudo_required",
|
|
79642
|
-
"auth:insufficient_permissions",
|
|
79643
|
-
"auth:impersonation_restricted",
|
|
79644
|
-
"validation:invalid_input",
|
|
79645
|
-
"validation:missing_field",
|
|
79646
|
-
"validation:invalid_format",
|
|
79647
|
-
"validation:payload_too_large",
|
|
79648
|
-
"resource:not_found",
|
|
79649
|
-
"resource:already_exists",
|
|
79650
|
-
"resource:conflict",
|
|
79651
|
-
"resource:gone",
|
|
79652
|
-
"rate_limit:exceeded",
|
|
79653
|
-
"billing:payment_required",
|
|
79654
|
-
"billing:plan_limit_exceeded",
|
|
79655
|
-
"billing:pass_redemption_failed",
|
|
79656
|
-
"server:internal_error",
|
|
79657
|
-
"server:unavailable",
|
|
79658
|
-
"external:service_error",
|
|
79659
|
-
"external:registrar_orphaned_contact_profile",
|
|
79660
|
-
"network:connection_error",
|
|
79661
|
-
"network:timeout",
|
|
79662
|
-
"network:dns_error"
|
|
79663
|
-
]);
|
|
79664
|
-
function isApiErrorCode(value) {
|
|
79665
|
-
return typeof value === "string" && API_ERROR_CODE_SET.has(value);
|
|
79666
|
-
}
|
|
79667
|
-
function isApiError(result) {
|
|
79668
|
-
return result.success === false;
|
|
79669
|
-
}
|
|
79670
|
-
function isApiSuccess(result) {
|
|
79671
|
-
return result.success === true;
|
|
79672
|
-
}
|
|
79673
|
-
function isRecord$7(value) {
|
|
79674
|
-
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
79675
|
-
}
|
|
79676
|
-
function isFieldError(value) {
|
|
79677
|
-
return isRecord$7(value) && typeof value.field === "string" && typeof value.code === "string" && typeof value.message === "string";
|
|
79678
|
-
}
|
|
79679
|
-
function fieldErrorsFromUnknown(value) {
|
|
79680
|
-
if (!Array.isArray(value)) return null;
|
|
79681
|
-
return value.every(isFieldError) ? value : null;
|
|
79682
|
-
}
|
|
79683
|
-
function extractEnvelopeErrorObject(body) {
|
|
79684
|
-
if (!isRecord$7(body)) return null;
|
|
79685
|
-
const error = body.error;
|
|
79686
|
-
if (!isRecord$7(error)) return null;
|
|
79687
|
-
if ("success" in body && body.success !== false) return null;
|
|
79688
|
-
return error;
|
|
79689
|
-
}
|
|
79690
|
-
function extractApiEnvelopeErrorDetails(body) {
|
|
79691
|
-
const error = extractEnvelopeErrorObject(body);
|
|
79692
|
-
if (!error) return {
|
|
79693
|
-
rawCode: null,
|
|
79694
|
-
code: null,
|
|
79695
|
-
message: null,
|
|
79696
|
-
status: null,
|
|
79697
|
-
fieldErrors: null
|
|
79698
|
-
};
|
|
79699
|
-
const rawCode = typeof error.code === "string" ? error.code : null;
|
|
79700
|
-
const message = typeof error.message === "string" && error.message.trim().length > 0 ? error.message : null;
|
|
79701
|
-
return {
|
|
79702
|
-
rawCode,
|
|
79703
|
-
code: isApiErrorCode(rawCode) ? rawCode : null,
|
|
79704
|
-
message,
|
|
79705
|
-
status: typeof error.status === "number" && Number.isFinite(error.status) ? error.status : null,
|
|
79706
|
-
fieldErrors: fieldErrorsFromUnknown(error.fieldErrors)
|
|
79707
|
-
};
|
|
79708
|
-
}
|
|
79709
|
-
/**
|
|
79710
|
-
* Error class for API failures that can be thrown from unwrapResponse.
|
|
79711
|
-
* Preserves all error metadata from the envelope.
|
|
79712
|
-
*/
|
|
79713
|
-
var ApiEnvelopeError = class extends Error {
|
|
79714
|
-
constructor(error) {
|
|
79715
|
-
super(error.message);
|
|
79716
|
-
this.name = "ApiEnvelopeError";
|
|
79717
|
-
this.code = error.code;
|
|
79718
|
-
this.requestId = error.requestId;
|
|
79719
|
-
this.timestamp = error.timestamp;
|
|
79720
|
-
this.status = error.status;
|
|
79721
|
-
this.fieldErrors = error.fieldErrors;
|
|
79722
|
-
}
|
|
79723
|
-
};
|
|
79724
|
-
/**
|
|
79725
|
-
* Unwrap a successful API response or throw on error.
|
|
79726
|
-
*
|
|
79727
|
-
* @example
|
|
79728
|
-
* ```typescript
|
|
79729
|
-
* const response = await apiClient({ endpoint: 'getUser', params: { id } });
|
|
79730
|
-
* const user = unwrapResponse(response); // Throws if not success
|
|
79731
|
-
* ```
|
|
79732
|
-
*/
|
|
79733
|
-
function unwrapResponse(result) {
|
|
79734
|
-
if (isApiSuccess(result)) return result.data;
|
|
79735
|
-
throw new ApiEnvelopeError(result.error);
|
|
79736
|
-
}
|
|
79737
80127
|
//#endregion
|
|
79738
80128
|
//#region ../api/src/request.ts
|
|
79739
80129
|
let revalidateTag = null;
|
|
@@ -151946,7 +152336,7 @@ var init_event_registration_client = __esmMin((() => {
|
|
|
151946
152336
|
* Loads Leaflet CSS/JS from CDN to avoid bundling in the blocks package.
|
|
151947
152337
|
*/
|
|
151948
152338
|
function isLeafletApi(value) {
|
|
151949
|
-
if (!isRecord$
|
|
152339
|
+
if (!isRecord$24(value)) return false;
|
|
151950
152340
|
return typeof value.map === "function" && typeof value.tileLayer === "function" && typeof value.marker === "function";
|
|
151951
152341
|
}
|
|
151952
152342
|
function loadLeaflet() {
|
|
@@ -158599,6 +158989,9 @@ function BlocksIslandsHydrator(props = {}) {
|
|
|
158599
158989
|
return null;
|
|
158600
158990
|
}
|
|
158601
158991
|
//#endregion
|
|
158992
|
+
//#region ../blocks/src/system/blocks/site-footer-runtime.ts
|
|
158993
|
+
init_src$3();
|
|
158994
|
+
//#endregion
|
|
158602
158995
|
//#region ../blocks/src/rendering/server.ts
|
|
158603
158996
|
init_schema$1();
|
|
158604
158997
|
//#endregion
|
|
@@ -158944,7 +159337,7 @@ var SimpleCache = class {
|
|
|
158944
159337
|
* 1. This constant
|
|
158945
159338
|
* 2. The "version" field in package.json
|
|
158946
159339
|
*/
|
|
158947
|
-
const SDK_VERSION = "0.
|
|
159340
|
+
const SDK_VERSION = "0.108.0";
|
|
158948
159341
|
//#endregion
|
|
158949
159342
|
//#region src/client/error.ts
|
|
158950
159343
|
let _Symbol$for;
|