@riverbankcms/sdk 0.82.0 → 0.84.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +16 -0
- package/dist/{PreviewEditorSidebar-LHGK6RIO.mjs → PreviewEditorSidebar-X7RLMEI6.mjs} +330 -11
- package/dist/{PreviewEditorUI-AXZG2SDC.mjs → PreviewEditorUI-CT67N4O3.mjs} +3 -3
- package/dist/SdkPreviewModeRuntime-EIMQ3S2V.mjs +8 -0
- package/dist/_dts/ai/src/contracts/proposals.d.ts +200 -0
- package/dist/_dts/api/src/blocks.d.ts +36 -0
- package/dist/_dts/api/src/contentRuntime.d.ts +46 -0
- package/dist/_dts/api/src/endpoints.d.ts +40 -0
- package/dist/_dts/api/src/index.d.ts +2 -2
- package/dist/_dts/api/src/sdk-event-pricing.d.ts +61 -0
- package/dist/_dts/api/src/sdk-event-schedule.d.ts +52 -0
- package/dist/_dts/api/src/sdk-event-upsert.d.ts +50 -0
- package/dist/_dts/api/src/sdkContracts.d.ts +67 -33
- package/dist/_dts/api/src/shared-contracts.d.ts +13 -0
- package/dist/_dts/api/src/sitePlatformEndpoints.d.ts +22 -36
- package/dist/_dts/api/src/siteRuntimeEndpoints.d.ts +46 -1
- package/dist/_dts/block-form/src/backend/useBackendWatch.d.ts +6 -1
- package/dist/_dts/block-form/src/utils/evaluateVisibility.d.ts +3 -2
- package/dist/_dts/block-form/src/utils/visibleWhen.d.ts +7 -0
- package/dist/_dts/blocks/src/PageRenderer.d.ts +11 -0
- package/dist/_dts/blocks/src/bindings/index.d.ts +1 -1
- package/dist/_dts/blocks/src/client/site-chrome.d.ts +1 -1
- package/dist/_dts/blocks/src/client.d.ts +4 -0
- package/dist/_dts/blocks/src/contracts/proof-block-islands.d.ts +16 -4
- package/dist/_dts/blocks/src/system/blocks/appointment-booking.d.ts +288 -2016
- package/dist/_dts/blocks/src/system/blocks/blog-listing.d.ts +288 -2016
- package/dist/_dts/blocks/src/system/blocks/cart.d.ts +288 -2016
- package/dist/_dts/blocks/src/system/blocks/checkout.d.ts +288 -2016
- package/dist/_dts/blocks/src/system/blocks/collection.d.ts +288 -2016
- package/dist/_dts/blocks/src/system/blocks/contact-newsletter.d.ts +171 -0
- package/dist/_dts/blocks/src/system/blocks/faq.d.ts +288 -2016
- package/dist/_dts/blocks/src/system/blocks/gifting.d.ts +288 -2016
- package/dist/_dts/blocks/src/system/blocks/hero.d.ts +3 -2
- package/dist/_dts/blocks/src/system/blocks/index.d.ts +1 -0
- package/dist/_dts/blocks/src/system/blocks/location-map.d.ts +1 -7
- package/dist/_dts/blocks/src/system/blocks/media-text.d.ts +2534 -151
- package/dist/_dts/blocks/src/system/blocks/product-detail.d.ts +288 -2016
- package/dist/_dts/blocks/src/system/blocks/product-list.d.ts +288 -2016
- package/dist/_dts/blocks/src/system/blocks/shop.d.ts +288 -2016
- package/dist/_dts/blocks/src/system/blocks/site-header.d.ts +36 -3
- package/dist/_dts/blocks/src/system/blocks/team-members.d.ts +2 -2
- package/dist/_dts/blocks/src/system/constants/blockKinds.d.ts +1 -1
- package/dist/_dts/blocks/src/system/fields/aspectRatio.d.ts +4 -1
- package/dist/_dts/blocks/src/system/fields/imageShape.d.ts +30 -0
- package/dist/_dts/blocks/src/system/fragments/library/heroLayoutControls.d.ts +25 -0
- package/dist/_dts/blocks/src/system/manifest/schema.d.ts +35 -161
- package/dist/_dts/blocks/src/system/runtime/components/registry.client.d.ts +24 -6
- package/dist/_dts/blocks/src/system/runtime/components/runtime-backed-blocks.d.ts +12 -3
- package/dist/_dts/blocks/src/system/runtime/hooks/useHeadlessEventRegistrationFlow.d.ts +33 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/EventRegistrationWizard.d.ts +0 -2
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/constants.d.ts +1 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/event-registration.headless.contract.d.ts +275 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/event-registration.headless.override.d.ts +10 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/event-registration.headless.planning.d.ts +22 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/event-registration.headless.state.d.ts +3 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationSubmit.d.ts +20 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationWizard.d.ts +13 -4
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/utils.d.ts +1 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration.interactive.d.ts +28 -6
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/pricing.d.ts +14 -0
- package/dist/_dts/content-editor/src/controller/EntryControllerProvider.d.ts +1 -1
- package/dist/_dts/content-editor/src/controller/buildBlockPublishedBaselines.d.ts +1 -1
- package/dist/_dts/content-editor/src/controller/seedDraftBaselinesFromBlocks.d.ts +1 -1
- package/dist/_dts/content-editor/src/controller/useBlocksList.d.ts +1 -1
- package/dist/_dts/content-editor/src/controller/useInvalidBlockRecovery.d.ts +1 -1
- package/dist/_dts/content-editor/src/primitives/PreviewRichTextEditor.d.ts +2 -1
- package/dist/_dts/content-editor/src/primitives/PreviewTextEditor.d.ts +1 -0
- package/dist/_dts/content-model/src/entry-slots/index.d.ts +1 -0
- package/dist/_dts/content-model/src/entry-slots/types.d.ts +356 -0
- package/dist/_dts/content-model/src/index.d.ts +1 -0
- package/dist/_dts/content-model/src/templates/defaults.d.ts +7 -0
- package/dist/_dts/db/src/generated/supabase/database.types.d.ts +100 -5
- package/dist/_dts/editor-blocks/src/BlockEditor.d.ts +6 -1
- package/dist/_dts/editor-blocks/src/BlockForm.d.ts +7 -5
- package/dist/_dts/editor-blocks/src/block-editor/hooks/useBlockCreation.d.ts +3 -2
- package/dist/_dts/editor-blocks/src/block-editor/hooks/useBlockDuplication.d.ts +3 -2
- package/dist/_dts/editor-blocks/src/block-editor/hooks/useBlockReorder.d.ts +3 -2
- package/dist/_dts/editor-blocks/src/block-editor/owner.d.ts +27 -0
- package/dist/_dts/editor-blocks/src/index.d.ts +1 -0
- package/dist/_dts/media-core/src/assetsInUseSummary.d.ts +8 -0
- package/dist/_dts/media-core/src/mediaUsageProjection.d.ts +37 -3
- package/dist/_dts/preview-next/src/client/blocks/pageDesignRuntimePreview.d.ts +4 -2
- package/dist/_dts/preview-next/src/client/blocks/previewProjection/runtimeContentDecoration.d.ts +2 -2
- package/dist/_dts/preview-next/src/client/preview/EntryEditorPanel.d.ts +3 -1
- package/dist/_dts/preview-next/src/client/preview/EntrySlotBlockEditorPanel.d.ts +19 -0
- package/dist/_dts/preview-next/src/client/preview/SiteChromeCustomizeButton.d.ts +8 -0
- package/dist/_dts/preview-next/src/client/preview/SiteChromeCustomizeContext.d.ts +4 -1
- package/dist/_dts/preview-next/src/client/preview/StyleConfigurator.state.d.ts +1 -1
- package/dist/_dts/preview-next/src/client/preview/linkedEntryEditEvents.d.ts +9 -0
- package/dist/_dts/preview-next/src/client/preview/previewCustomizeControls.d.ts +9 -8
- package/dist/_dts/preview-next/src/client/preview/siteChromeLookRows.d.ts +10 -1
- package/dist/_dts/preview-next/src/client/preview/siteChromeQuickControlHistoryState.d.ts +5 -1
- package/dist/_dts/sdk/src/bookings/index.d.ts +5 -4
- package/dist/_dts/sdk/src/bookings/types.d.ts +2 -2
- package/dist/_dts/sdk/src/cli/content/reader.d.ts +9 -8
- package/dist/_dts/sdk/src/cli/content/writer.d.ts +6 -1
- package/dist/_dts/sdk/src/cli/helpers.d.ts +10 -5
- package/dist/_dts/sdk/src/cli/merge-remote/entryLocal.d.ts +2 -2
- package/dist/_dts/sdk/src/cli/merge-remote/entryMerge.d.ts +2 -1
- package/dist/_dts/sdk/src/cli/merge-remote/entrySnapshots.d.ts +2 -2
- package/dist/_dts/sdk/src/client/management/index.d.ts +1 -1
- package/dist/_dts/sdk/src/client/management/types.d.ts +40 -10
- package/dist/_dts/sdk/src/config/field-definitions.d.ts +13 -7
- package/dist/_dts/sdk/src/contracts/system-block-content.d.ts +26 -3
- package/dist/_dts/sdk/src/public-api/contracts.d.ts +13 -0
- package/dist/_dts/sdk/src/rendering/blocks-page-renderer.d.ts +1 -0
- package/dist/_dts/sdk/src/rendering/components/pageShared.d.ts +6 -1
- package/dist/_dts/sdk/src/rendering/overrides.d.ts +6 -1
- package/dist/_dts/sdk/src/types/block-kinds.d.ts +1 -1
- package/dist/_dts/sdk/src/version.d.ts +1 -1
- package/dist/_dts/site-commands/src/commands.d.ts +15 -0
- package/dist/_dts/theme-core/src/accordions/types.d.ts +1 -1
- package/dist/_dts/theme-core/src/buttons/personalities/index.d.ts +11 -0
- package/dist/_dts/theme-core/src/buttons/personalities/ornate-ritual.d.ts +16 -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 +15 -15
- package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
- package/dist/_dts/theme-core/src/inputs/types.d.ts +1 -1
- package/dist/_dts/theme-core/src/mock-themes/all.d.ts +33 -33
- package/dist/_dts/theme-core/src/palette/variants/index.d.ts +15 -0
- package/dist/_dts/theme-core/src/palette/variants/warm-dark.d.ts +16 -0
- package/dist/_dts/theme-core/src/schema.d.ts +30 -25
- package/dist/_dts/theme-core/src/site-styles/backgroundAppearance.d.ts +2 -2
- package/dist/_dts/theme-core/src/site-styles/curatedSiteStyles.d.ts +141 -1
- package/dist/_dts/theme-core/src/site-styles/designState.d.ts +2 -0
- package/dist/_dts/theme-core/src/site-styles/footerLooks.d.ts +110 -5
- package/dist/_dts/theme-core/src/site-styles/generatedSchemas.d.ts +4 -2
- package/dist/_dts/theme-core/src/site-styles/previewCompiler.d.ts +1 -1
- package/dist/_dts/theme-core/src/site-styles/runtimeCompiler.d.ts +5 -1
- package/dist/_dts/theme-core/src/site-styles/tokenRecipes.d.ts +1 -1
- package/dist/_dts/theme-core/src/site-styles/types.d.ts +1 -1
- package/dist/_dts/theme-core/src/site-styles/typographyPresets.d.ts +16 -1
- package/dist/_dts/theme-core/src/siteChromePlanning.d.ts +1 -0
- package/dist/_dts/theme-core/src/utils/colorStyles.d.ts +6 -6
- package/dist/{chunk-2BUMISSH.mjs → chunk-3LXFQS7T.mjs} +1 -1
- package/dist/{chunk-FIREV57T.mjs → chunk-LBBPD2IW.mjs} +40 -0
- package/dist/{chunk-XQR6THQJ.mjs → chunk-O62NDCTI.mjs} +3390 -1331
- package/dist/{chunk-6FWNF3DJ.mjs → chunk-QRKJDWT7.mjs} +158 -20
- package/dist/{chunk-HKB6XVIP.mjs → chunk-RCTJAZSK.mjs} +2 -2
- package/dist/{chunk-G35HOQEN.mjs → chunk-X5ZCSU6F.mjs} +132 -46
- package/dist/cli/index.mjs +2925 -577
- package/dist/cli/init-docs/content/agents-section.md +5 -0
- package/dist/cli/init-docs/content/cli-reference.md +13 -0
- package/dist/cli/init-docs/content/content-management.md +31 -0
- package/dist/cli/init-docs/content/getting-started.md +14 -0
- package/dist/cli/init-docs/content/workflow-add-block.md +3 -1
- package/dist/cli/init-docs/content/workflow-agent-safe-sync.md +81 -0
- package/dist/cli/init-docs/content/workflow-create-page.md +13 -3
- package/dist/cli/init-docs/content/workflow-custom-block.md +9 -0
- package/dist/cli/init-docs/content/workflow-templates.md +107 -2
- package/dist/client/{accordion-G34C45TW.mjs → accordion-2UZPBMYM.mjs} +2 -2
- package/dist/client/{bookingForm-BLBVKSAQ.mjs → bookingForm-DYXT6YB6.mjs} +5 -5
- package/dist/client/bookings.mjs +3477 -186
- package/dist/client/{carousel-7ZVTBRMD.mjs → carousel-QH77HR6X.mjs} +3 -3
- package/dist/client/{cart-Q6S6LZUO.mjs → cart-X4YK4FTW.mjs} +6 -6
- package/dist/client/{checkout-5QJLDE4I.mjs → checkout-OM2BEPWD.mjs} +6 -6
- package/dist/client/{chunk-ZF4XEWDM.mjs → chunk-3DTWLTXM.mjs} +1 -1
- package/dist/client/{chunk-5PQH4Y75.mjs → chunk-4OXKTA3D.mjs} +2 -2
- package/dist/client/{chunk-WJFHDTYF.mjs → chunk-52CGCQ7B.mjs} +5 -5
- package/dist/client/{chunk-CHAB5ACD.mjs → chunk-7UCLJ5SP.mjs} +2 -2
- package/dist/client/{chunk-U2EW7RSR.mjs → chunk-F5VRX5Y6.mjs} +1 -1
- package/dist/client/{chunk-SBBSMFFG.mjs → chunk-SYIJ5JO2.mjs} +1 -1
- package/dist/client/{chunk-EQKYMX4N.mjs → chunk-UHDWIXVR.mjs} +180 -157
- package/dist/client/{chunk-RJHTCTCZ.mjs → chunk-VGDBVNOO.mjs} +429 -15
- package/dist/client/{chunk-S3MKFGOG.mjs → chunk-ZE5G642V.mjs} +1 -1
- package/dist/client/{chunk-CSZGLBYR.mjs → chunk-ZKUO52W3.mjs} +1 -1
- package/dist/client/client.mjs +2685 -847
- package/dist/client/{courseRegistration-VUG2JJDB.mjs → courseRegistration-YBOGURTA.mjs} +5 -5
- package/dist/client/{eventCalendar-E7D2LD4N.mjs → eventCalendar-K4QJVCMD.mjs} +7 -7
- package/dist/client/{eventCombined-FUZ2Z3CS.mjs → eventCombined-MTXGMTCZ.mjs} +7 -7
- package/dist/client/{eventDetails-QRITJAOW.mjs → eventDetails-3PC4NL3U.mjs} +7 -7
- package/dist/client/{eventListing-INMQMJZ5.mjs → eventListing-TFJET6DN.mjs} +7 -7
- package/dist/client/{eventRegistration-TOOJD4WU.mjs → eventRegistration-QGPBGJTW.mjs} +7 -7
- package/dist/client/{form-BOWN7ZNQ.mjs → form-MDKR4FNB.mjs} +2 -2
- package/dist/client/{headerSection-HFQNZOUU.mjs → headerSection-Y5TMR3TW.mjs} +3 -3
- package/dist/client/hooks.mjs +2077 -546
- package/dist/client/{locationMap-VUZGC7Y5.mjs → locationMap-RH2LG7FZ.mjs} +2 -2
- package/dist/client/{newsletterForm-X2XQTPCB.mjs → newsletterForm-ZR5UDGBT.mjs} +2 -2
- package/dist/client/{productDetail-TA7D2G2B.mjs → productDetail-OIGDR4YE.mjs} +6 -6
- package/dist/client/{productList-AZOLOZKM.mjs → productList-4MA5S2CX.mjs} +6 -6
- package/dist/client/rendering/client.mjs +2560 -1205
- package/dist/client/rendering/islands.mjs +19 -19
- package/dist/client/rendering.mjs +2932 -1021
- package/dist/client/{shop-ZDLO7IIG.mjs → shop-WXSYV5QO.mjs} +6 -6
- package/dist/preview-next/before-render.mjs +40 -0
- package/dist/preview-next/client/runtime.mjs +5 -5
- package/dist/preview-next/middleware.mjs +40 -0
- package/dist/{sdk-runtime-CTWKNBDQ.mjs → sdk-runtime-7HJYPRWQ.mjs} +6 -6
- package/dist/server/components.mjs +2232 -534
- package/dist/server/config-validation.mjs +2068 -536
- package/dist/server/config.mjs +2068 -536
- package/dist/server/data.mjs +2077 -546
- package/dist/server/index.mjs +42 -1
- package/dist/server/next.mjs +2345 -574
- package/dist/server/page-converter.mjs +2684 -1220
- package/dist/server/prebuild.mjs +1 -1
- package/dist/server/rendering/server.mjs +2244 -546
- package/dist/server/rendering.mjs +2323 -552
- package/dist/server/routing.mjs +2012 -420
- package/dist/server/server.mjs +2153 -549
- package/dist/server/theme-bridge.mjs +1180 -101
- package/dist/server/theme.mjs +92 -1
- package/dist/styles/index.css +292 -36
- package/package.json +1 -1
- package/dist/SdkPreviewModeRuntime-RNVRHFFR.mjs +0 -8
package/dist/server/server.mjs
CHANGED
|
@@ -3298,6 +3298,46 @@ var ENDPOINT_DEFINITIONS = {
|
|
|
3298
3298
|
auth: "user",
|
|
3299
3299
|
responseKind: "json"
|
|
3300
3300
|
},
|
|
3301
|
+
listEntrySlotBlocks: {
|
|
3302
|
+
path: "/sites/{siteId}/content/{type}/{entryId}/slots/{slotKey}/blocks",
|
|
3303
|
+
method: "GET",
|
|
3304
|
+
tags: ["site-{siteId}", "content-entry-{entryId}", "entry-slot-{slotKey}", "blocks"],
|
|
3305
|
+
auth: "user",
|
|
3306
|
+
responseKind: "json",
|
|
3307
|
+
errors: ["resource:not_found"]
|
|
3308
|
+
},
|
|
3309
|
+
listEntryPageContentSlots: {
|
|
3310
|
+
path: "/sites/{siteId}/content/{type}/{entryId}/slots",
|
|
3311
|
+
method: "GET",
|
|
3312
|
+
tags: ["site-{siteId}", "content-entry-{entryId}", "entry-slots", "blocks"],
|
|
3313
|
+
auth: "user",
|
|
3314
|
+
responseKind: "json",
|
|
3315
|
+
errors: ["resource:not_found"]
|
|
3316
|
+
},
|
|
3317
|
+
createEntrySlotBlock: {
|
|
3318
|
+
path: "/sites/{siteId}/content/{type}/{entryId}/slots/{slotKey}/blocks",
|
|
3319
|
+
method: "POST",
|
|
3320
|
+
tags: ["site-{siteId}", "content-entry-{entryId}", "entry-slot-{slotKey}", "blocks"],
|
|
3321
|
+
auth: "user",
|
|
3322
|
+
responseKind: "json",
|
|
3323
|
+
errors: ["validation:invalid_input", "resource:not_found"]
|
|
3324
|
+
},
|
|
3325
|
+
reorderEntrySlotBlocks: {
|
|
3326
|
+
path: "/sites/{siteId}/content/{type}/{entryId}/slots/{slotKey}/blocks/reorder",
|
|
3327
|
+
method: "POST",
|
|
3328
|
+
tags: ["site-{siteId}", "content-entry-{entryId}", "entry-slot-{slotKey}", "blocks"],
|
|
3329
|
+
auth: "user",
|
|
3330
|
+
responseKind: "json",
|
|
3331
|
+
errors: ["validation:invalid_input", "resource:not_found"]
|
|
3332
|
+
},
|
|
3333
|
+
deleteEntrySlotBlock: {
|
|
3334
|
+
path: "/sites/{siteId}/content/{type}/{entryId}/slots/{slotKey}/blocks/{blockId}",
|
|
3335
|
+
method: "DELETE",
|
|
3336
|
+
tags: ["site-{siteId}", "content-entry-{entryId}", "entry-slot-{slotKey}", "blocks"],
|
|
3337
|
+
auth: "user",
|
|
3338
|
+
responseKind: "json",
|
|
3339
|
+
errors: ["resource:not_found"]
|
|
3340
|
+
},
|
|
3301
3341
|
createBlock: {
|
|
3302
3342
|
path: "/sites/{siteId}/pages/{pageId}/blocks",
|
|
3303
3343
|
method: "POST",
|
|
@@ -6959,7 +6999,7 @@ var SimpleCache = class {
|
|
|
6959
6999
|
};
|
|
6960
7000
|
|
|
6961
7001
|
// src/version.ts
|
|
6962
|
-
var SDK_VERSION = "0.
|
|
7002
|
+
var SDK_VERSION = "0.84.1";
|
|
6963
7003
|
|
|
6964
7004
|
// src/client/error.ts
|
|
6965
7005
|
var RiverbankApiError = class _RiverbankApiError extends Error {
|
|
@@ -8435,6 +8475,171 @@ function createRiverbankClient(config) {
|
|
|
8435
8475
|
};
|
|
8436
8476
|
}
|
|
8437
8477
|
|
|
8478
|
+
// ../core/src/result.ts
|
|
8479
|
+
function ok(value) {
|
|
8480
|
+
return { ok: true, value };
|
|
8481
|
+
}
|
|
8482
|
+
function err(error) {
|
|
8483
|
+
return { ok: false, error };
|
|
8484
|
+
}
|
|
8485
|
+
|
|
8486
|
+
// ../core/src/event-pricing.ts
|
|
8487
|
+
function publicEventPricingType(pricing) {
|
|
8488
|
+
switch (pricing.kind) {
|
|
8489
|
+
case "drop_in":
|
|
8490
|
+
case "free_registration":
|
|
8491
|
+
return "free";
|
|
8492
|
+
case "single_paid":
|
|
8493
|
+
case "ticket_types":
|
|
8494
|
+
case "course":
|
|
8495
|
+
return isFreePublicEventPriceDisplay(pricing.display) ? "free" : "paid";
|
|
8496
|
+
}
|
|
8497
|
+
}
|
|
8498
|
+
function isFreePublicEventPriceDisplay(display) {
|
|
8499
|
+
switch (display.kind) {
|
|
8500
|
+
case "free":
|
|
8501
|
+
return true;
|
|
8502
|
+
case "course":
|
|
8503
|
+
return display.display.kind === "free";
|
|
8504
|
+
case "exact":
|
|
8505
|
+
case "from":
|
|
8506
|
+
case "mixed":
|
|
8507
|
+
case "unavailable":
|
|
8508
|
+
return false;
|
|
8509
|
+
}
|
|
8510
|
+
}
|
|
8511
|
+
|
|
8512
|
+
// ../core/src/booking-date-time.ts
|
|
8513
|
+
var DEFAULT_LOCALE = "en-US";
|
|
8514
|
+
var FALLBACK_TIMEZONE = "UTC";
|
|
8515
|
+
function isValidTimeZone(timeZone) {
|
|
8516
|
+
try {
|
|
8517
|
+
new Intl.DateTimeFormat(DEFAULT_LOCALE, { timeZone }).format(/* @__PURE__ */ new Date());
|
|
8518
|
+
return true;
|
|
8519
|
+
} catch {
|
|
8520
|
+
return false;
|
|
8521
|
+
}
|
|
8522
|
+
}
|
|
8523
|
+
function getSafeTimeZone(timeZone) {
|
|
8524
|
+
const normalized = typeof timeZone === "string" ? timeZone.trim() : "";
|
|
8525
|
+
return normalized && isValidTimeZone(normalized) ? normalized : FALLBACK_TIMEZONE;
|
|
8526
|
+
}
|
|
8527
|
+
function parseStrictBookingTimeZone(timeZone) {
|
|
8528
|
+
const normalized = timeZone.trim();
|
|
8529
|
+
if (!normalized || !isValidTimeZone(normalized)) {
|
|
8530
|
+
return null;
|
|
8531
|
+
}
|
|
8532
|
+
return normalized;
|
|
8533
|
+
}
|
|
8534
|
+
function formatParseError(error) {
|
|
8535
|
+
switch (error.reason) {
|
|
8536
|
+
case "invalid_starts_at":
|
|
8537
|
+
return `Expected a valid UTC/offset-aware ISO datetime in startsAt, received "${error.value}"`;
|
|
8538
|
+
case "invalid_ends_at":
|
|
8539
|
+
return `Expected a valid UTC/offset-aware ISO datetime in endsAt, received "${error.value ?? ""}"`;
|
|
8540
|
+
case "invalid_time_zone":
|
|
8541
|
+
return `Expected a valid IANA timezone in timeZone, received "${error.value}"`;
|
|
8542
|
+
}
|
|
8543
|
+
}
|
|
8544
|
+
function formatToPartsLookup(date, locale, timeZone, format) {
|
|
8545
|
+
return new Map(
|
|
8546
|
+
new Intl.DateTimeFormat(locale, {
|
|
8547
|
+
...format,
|
|
8548
|
+
timeZone
|
|
8549
|
+
}).formatToParts(date).map((part) => [part.type, part.value])
|
|
8550
|
+
);
|
|
8551
|
+
}
|
|
8552
|
+
function getZonedDateTimeParts(date, timeZone) {
|
|
8553
|
+
const parts = formatToPartsLookup(date, "en-GB", timeZone, {
|
|
8554
|
+
year: "numeric",
|
|
8555
|
+
month: "2-digit",
|
|
8556
|
+
day: "2-digit",
|
|
8557
|
+
hour: "2-digit",
|
|
8558
|
+
minute: "2-digit",
|
|
8559
|
+
second: "2-digit",
|
|
8560
|
+
hour12: false
|
|
8561
|
+
});
|
|
8562
|
+
const read = (type) => Number(parts.get(type) ?? "");
|
|
8563
|
+
return {
|
|
8564
|
+
year: read("year"),
|
|
8565
|
+
month: read("month"),
|
|
8566
|
+
day: read("day"),
|
|
8567
|
+
hour: read("hour"),
|
|
8568
|
+
minute: read("minute"),
|
|
8569
|
+
second: read("second")
|
|
8570
|
+
};
|
|
8571
|
+
}
|
|
8572
|
+
function formatDateKey(date) {
|
|
8573
|
+
const year = String(date.year).padStart(4, "0");
|
|
8574
|
+
const month = String(date.month).padStart(2, "0");
|
|
8575
|
+
const day = String(date.day).padStart(2, "0");
|
|
8576
|
+
return `${year}-${month}-${day}`;
|
|
8577
|
+
}
|
|
8578
|
+
function parseUtcIsoDateTimeString(value) {
|
|
8579
|
+
const normalized = value.trim();
|
|
8580
|
+
const hasUtcSuffix = normalized.endsWith("Z");
|
|
8581
|
+
const hasExplicitOffset = /[+-]\d{2}:\d{2}$/u.test(normalized);
|
|
8582
|
+
if (!hasUtcSuffix && !hasExplicitOffset) {
|
|
8583
|
+
return err("missing-timezone-offset");
|
|
8584
|
+
}
|
|
8585
|
+
const date = new Date(normalized);
|
|
8586
|
+
if (Number.isNaN(date.getTime())) {
|
|
8587
|
+
return err("invalid-date-time");
|
|
8588
|
+
}
|
|
8589
|
+
return ok(date.toISOString());
|
|
8590
|
+
}
|
|
8591
|
+
function toUtcIsoDateTimeString(value) {
|
|
8592
|
+
const parsed = parseUtcIsoDateTimeString(value);
|
|
8593
|
+
if (!parsed.ok) {
|
|
8594
|
+
const message = parsed.error === "missing-timezone-offset" ? `Expected an offset-aware ISO datetime, received "${value}"` : `Expected a valid ISO datetime, received "${value}"`;
|
|
8595
|
+
throw new Error(message);
|
|
8596
|
+
}
|
|
8597
|
+
return parsed.value;
|
|
8598
|
+
}
|
|
8599
|
+
function parseScheduledBookingDateTime(input) {
|
|
8600
|
+
try {
|
|
8601
|
+
const startsAt = toUtcIsoDateTimeString(input.startsAt);
|
|
8602
|
+
const timeZone = parseStrictBookingTimeZone(input.timeZone);
|
|
8603
|
+
if (!timeZone) {
|
|
8604
|
+
return {
|
|
8605
|
+
ok: false,
|
|
8606
|
+
field: "timeZone",
|
|
8607
|
+
reason: "invalid_time_zone",
|
|
8608
|
+
value: input.timeZone
|
|
8609
|
+
};
|
|
8610
|
+
}
|
|
8611
|
+
return {
|
|
8612
|
+
ok: true,
|
|
8613
|
+
value: {
|
|
8614
|
+
startsAt,
|
|
8615
|
+
timeZone,
|
|
8616
|
+
locale: input.locale
|
|
8617
|
+
}
|
|
8618
|
+
};
|
|
8619
|
+
} catch {
|
|
8620
|
+
return {
|
|
8621
|
+
ok: false,
|
|
8622
|
+
field: "startsAt",
|
|
8623
|
+
reason: "invalid_starts_at",
|
|
8624
|
+
value: input.startsAt
|
|
8625
|
+
};
|
|
8626
|
+
}
|
|
8627
|
+
}
|
|
8628
|
+
function toScheduledBookingDateTime(input) {
|
|
8629
|
+
const result = parseScheduledBookingDateTime(input);
|
|
8630
|
+
if (result.ok) {
|
|
8631
|
+
return result.value;
|
|
8632
|
+
}
|
|
8633
|
+
throw new Error(formatParseError(result));
|
|
8634
|
+
}
|
|
8635
|
+
function getBookingLocalDateKey(input) {
|
|
8636
|
+
return formatDateKey(getLocalScheduleDate(new Date(input.startsAt), input.timeZone));
|
|
8637
|
+
}
|
|
8638
|
+
function getLocalScheduleDate(date, timeZone) {
|
|
8639
|
+
const parts = getZonedDateTimeParts(date, getSafeTimeZone(timeZone));
|
|
8640
|
+
return { year: parts.year, month: parts.month, day: parts.day };
|
|
8641
|
+
}
|
|
8642
|
+
|
|
8438
8643
|
// ../core/src/location.ts
|
|
8439
8644
|
function normalizeLocationAddressText(value) {
|
|
8440
8645
|
if (typeof value !== "string") {
|
|
@@ -8882,6 +9087,21 @@ var selectSourceSchema = z4.discriminatedUnion("kind", [
|
|
|
8882
9087
|
function assertNeverSelectSource(value) {
|
|
8883
9088
|
throw new Error(`Unhandled select source: ${JSON.stringify(value)}`);
|
|
8884
9089
|
}
|
|
9090
|
+
var visibleWhenPredicateSchema = z4.object({
|
|
9091
|
+
field: z4.string().min(1),
|
|
9092
|
+
equals: z4.any().optional(),
|
|
9093
|
+
notEquals: z4.any().optional(),
|
|
9094
|
+
oneOf: z4.array(z4.any()).optional(),
|
|
9095
|
+
notIn: z4.array(z4.any()).optional(),
|
|
9096
|
+
minItems: z4.number().int().nonnegative().optional(),
|
|
9097
|
+
maxItems: z4.number().int().nonnegative().optional()
|
|
9098
|
+
});
|
|
9099
|
+
var visibleWhenSchema = z4.union([
|
|
9100
|
+
visibleWhenPredicateSchema,
|
|
9101
|
+
z4.object({
|
|
9102
|
+
allOf: z4.array(visibleWhenPredicateSchema).min(1)
|
|
9103
|
+
})
|
|
9104
|
+
]);
|
|
8885
9105
|
var uiSchema = z4.object({
|
|
8886
9106
|
widget: z4.string().optional(),
|
|
8887
9107
|
// Container/widget presets (used by Group/Repeater widgets themselves, not for widget selection)
|
|
@@ -8914,13 +9134,7 @@ var uiSchema = z4.object({
|
|
|
8914
9134
|
showValue: z4.boolean().optional(),
|
|
8915
9135
|
pattern: z4.string().optional(),
|
|
8916
9136
|
placeholder: z4.string().optional(),
|
|
8917
|
-
visibleWhen:
|
|
8918
|
-
field: z4.string().min(1),
|
|
8919
|
-
equals: z4.any().optional(),
|
|
8920
|
-
notEquals: z4.any().optional(),
|
|
8921
|
-
oneOf: z4.array(z4.any()).optional(),
|
|
8922
|
-
notIn: z4.array(z4.any()).optional()
|
|
8923
|
-
}).optional(),
|
|
9137
|
+
visibleWhen: visibleWhenSchema.optional(),
|
|
8924
9138
|
// Modal configuration for modal and group fields
|
|
8925
9139
|
modalConfig: z4.object({
|
|
8926
9140
|
buttonLabel: z4.string().optional(),
|
|
@@ -9687,6 +9901,7 @@ var eventListTreatmentValues = [
|
|
|
9687
9901
|
];
|
|
9688
9902
|
var eyebrowTreatmentValues = [
|
|
9689
9903
|
"plain",
|
|
9904
|
+
"accent",
|
|
9690
9905
|
"pill",
|
|
9691
9906
|
"accent-pill",
|
|
9692
9907
|
"pill-bounce",
|
|
@@ -11278,9 +11493,9 @@ var _Vibrant = class _Vibrant2 {
|
|
|
11278
11493
|
}
|
|
11279
11494
|
image.remove();
|
|
11280
11495
|
return res;
|
|
11281
|
-
} catch (
|
|
11496
|
+
} catch (err3) {
|
|
11282
11497
|
image.remove();
|
|
11283
|
-
return Promise.reject(
|
|
11498
|
+
return Promise.reject(err3);
|
|
11284
11499
|
}
|
|
11285
11500
|
}
|
|
11286
11501
|
async getPalettes() {
|
|
@@ -11294,9 +11509,9 @@ var _Vibrant = class _Vibrant2 {
|
|
|
11294
11509
|
const res = result1.palettes;
|
|
11295
11510
|
image.remove();
|
|
11296
11511
|
return res;
|
|
11297
|
-
} catch (
|
|
11512
|
+
} catch (err3) {
|
|
11298
11513
|
image.remove();
|
|
11299
|
-
return Promise.reject(
|
|
11514
|
+
return Promise.reject(err3);
|
|
11300
11515
|
}
|
|
11301
11516
|
}
|
|
11302
11517
|
};
|
|
@@ -12701,27 +12916,28 @@ var joyStamp = defineButtonPersonality({
|
|
|
12701
12916
|
}
|
|
12702
12917
|
});
|
|
12703
12918
|
|
|
12704
|
-
// ../theme-core/src/buttons/personalities/
|
|
12705
|
-
var
|
|
12706
|
-
id: "
|
|
12707
|
-
name: "
|
|
12708
|
-
description: "
|
|
12709
|
-
tags: { tone: "classic", energy: "
|
|
12919
|
+
// ../theme-core/src/buttons/personalities/ornate-ritual.ts
|
|
12920
|
+
var ornateRitual = defineButtonPersonality({
|
|
12921
|
+
id: "ornate-ritual",
|
|
12922
|
+
name: "Ornate Ritual",
|
|
12923
|
+
description: "Ceremonial framed buttons with jewel-toned fills and quiet color-change hover states.",
|
|
12924
|
+
tags: { tone: "classic", energy: "vibrant", motion: "subtle", era: "organic" },
|
|
12710
12925
|
buttonSystem: {
|
|
12711
12926
|
global: {
|
|
12712
|
-
cornerStyle: "
|
|
12927
|
+
cornerStyle: "rounded",
|
|
12713
12928
|
shadow: "none",
|
|
12714
|
-
textTransform: "
|
|
12715
|
-
fontWeight:
|
|
12716
|
-
borderWidth:
|
|
12929
|
+
textTransform: "uppercase",
|
|
12930
|
+
fontWeight: 600,
|
|
12931
|
+
borderWidth: 1,
|
|
12717
12932
|
hoverTransform: "none",
|
|
12718
|
-
hoverColor: "none"
|
|
12933
|
+
hoverColor: "none",
|
|
12934
|
+
letterSpacing: "loose"
|
|
12719
12935
|
},
|
|
12720
12936
|
sizes: {
|
|
12721
|
-
sm: { padding: "0.
|
|
12722
|
-
md: { padding: "0.
|
|
12723
|
-
lg: { padding: "
|
|
12724
|
-
xl: { padding: "
|
|
12937
|
+
sm: { padding: "0.5625rem 1.25rem", fontSize: "text-xs" },
|
|
12938
|
+
md: { padding: "0.75rem 1.75rem", fontSize: "text-xs" },
|
|
12939
|
+
lg: { padding: "0.875rem 2.25rem", fontSize: "text-sm" },
|
|
12940
|
+
xl: { padding: "1rem 2.75rem", fontSize: "text-base" }
|
|
12725
12941
|
},
|
|
12726
12942
|
variants: [
|
|
12727
12943
|
{
|
|
@@ -12731,97 +12947,12 @@ var pebble = defineButtonPersonality({
|
|
|
12731
12947
|
priority: 1,
|
|
12732
12948
|
background: { type: "solid", colorToken: "primary" },
|
|
12733
12949
|
textColorToken: "primaryForeground",
|
|
12734
|
-
borderRadius: "rounded-
|
|
12735
|
-
|
|
12736
|
-
|
|
12737
|
-
{ effectId: "background-on-hover-alpha", options: { colorToken: "primary", opacity: 88 } }
|
|
12738
|
-
]
|
|
12739
|
-
}
|
|
12740
|
-
},
|
|
12741
|
-
{
|
|
12742
|
-
id: "secondary",
|
|
12743
|
-
name: "Secondary",
|
|
12744
|
-
enabled: true,
|
|
12745
|
-
priority: 2,
|
|
12746
|
-
background: { type: "transparent" },
|
|
12747
|
-
textColorToken: "primary",
|
|
12748
|
-
borderRadius: "rounded-full",
|
|
12749
|
-
border: { widthClass: "border-2", colorToken: "accent" },
|
|
12750
|
-
effects: {
|
|
12751
|
-
hover: [{ effectId: "background-on-hover", options: { colorToken: "accent" } }]
|
|
12752
|
-
}
|
|
12753
|
-
},
|
|
12754
|
-
{
|
|
12755
|
-
id: "outline",
|
|
12756
|
-
name: "Outline",
|
|
12757
|
-
enabled: true,
|
|
12758
|
-
priority: 3,
|
|
12759
|
-
background: { type: "transparent" },
|
|
12760
|
-
textColorToken: "text",
|
|
12761
|
-
borderRadius: "rounded-full",
|
|
12762
|
-
border: { widthClass: "border", colorToken: "border" },
|
|
12763
|
-
effects: {
|
|
12764
|
-
hover: [{ effectId: "background-on-hover", options: { colorToken: "surface" } }]
|
|
12765
|
-
}
|
|
12766
|
-
},
|
|
12767
|
-
{
|
|
12768
|
-
id: "ghost",
|
|
12769
|
-
name: "Ghost",
|
|
12770
|
-
enabled: true,
|
|
12771
|
-
priority: 3,
|
|
12772
|
-
background: { type: "transparent" },
|
|
12773
|
-
textColorToken: "primary",
|
|
12774
|
-
borderRadius: "rounded-full",
|
|
12775
|
-
sizes: {
|
|
12776
|
-
sm: { padding: "0.375rem 0.875rem", fontSize: "text-sm" },
|
|
12777
|
-
md: { padding: "0.5rem 1rem" },
|
|
12778
|
-
lg: { padding: "0.625rem 1.25rem", fontSize: "text-lg" },
|
|
12779
|
-
xl: { padding: "0.75rem 1.5rem", fontSize: "text-xl" }
|
|
12780
|
-
},
|
|
12781
|
-
effects: {
|
|
12782
|
-
hover: [{ effectId: "opacity-reduce", options: { reduction: 30 } }]
|
|
12783
|
-
}
|
|
12784
|
-
}
|
|
12785
|
-
]
|
|
12786
|
-
}
|
|
12787
|
-
});
|
|
12788
|
-
|
|
12789
|
-
// ../theme-core/src/buttons/personalities/showtime-pill.ts
|
|
12790
|
-
var showtimePill = defineButtonPersonality({
|
|
12791
|
-
id: "showtime-pill",
|
|
12792
|
-
name: "Showtime Pill",
|
|
12793
|
-
description: "Bold pill buttons with uppercase labels, generous padding, and a playful pop.",
|
|
12794
|
-
tags: { tone: "bold", energy: "vibrant", motion: "expressive", era: "modern" },
|
|
12795
|
-
buttonSystem: {
|
|
12796
|
-
global: {
|
|
12797
|
-
cornerStyle: "pill",
|
|
12798
|
-
shadow: "low",
|
|
12799
|
-
textTransform: "uppercase",
|
|
12800
|
-
fontWeight: 700,
|
|
12801
|
-
borderWidth: 2,
|
|
12802
|
-
hoverTransform: "lift",
|
|
12803
|
-
hoverColor: "darken",
|
|
12804
|
-
typography: "body",
|
|
12805
|
-
paddingPreset: "spacious",
|
|
12806
|
-
italic: false
|
|
12807
|
-
},
|
|
12808
|
-
sizes: {
|
|
12809
|
-
sm: { padding: "0.625rem 1.25rem", fontSize: "0.875rem" },
|
|
12810
|
-
md: { padding: "0.875rem 1.75rem", fontSize: "1rem" },
|
|
12811
|
-
lg: { padding: "1.125rem 2.25rem", fontSize: "1.125rem" },
|
|
12812
|
-
xl: { padding: "1.125rem 2.25rem", fontSize: "1.125rem" }
|
|
12813
|
-
},
|
|
12814
|
-
variants: [
|
|
12815
|
-
{
|
|
12816
|
-
id: "primary",
|
|
12817
|
-
name: "Primary",
|
|
12818
|
-
enabled: true,
|
|
12819
|
-
priority: 1,
|
|
12820
|
-
background: { type: "solid", colorToken: "primary" },
|
|
12821
|
-
textColorToken: "background",
|
|
12822
|
-
borderRadius: "rounded-full",
|
|
12950
|
+
borderRadius: "rounded-md",
|
|
12951
|
+
border: { widthClass: "border", colorToken: "primary" },
|
|
12952
|
+
shadow: { elevation: "none", softness: null, position: "bottom" },
|
|
12823
12953
|
effects: {
|
|
12824
|
-
hover: [{ effectId: "
|
|
12954
|
+
hover: [{ effectId: "background-on-hover", options: { colorToken: "primary-100" } }],
|
|
12955
|
+
active: [{ effectId: "scale-down", options: { scale: "0.98" } }]
|
|
12825
12956
|
}
|
|
12826
12957
|
},
|
|
12827
12958
|
{
|
|
@@ -12829,35 +12960,11 @@ var showtimePill = defineButtonPersonality({
|
|
|
12829
12960
|
name: "Secondary",
|
|
12830
12961
|
enabled: true,
|
|
12831
12962
|
priority: 2,
|
|
12832
|
-
background: { type: "transparent" },
|
|
12833
|
-
textColorToken: "primary",
|
|
12834
|
-
borderRadius: "rounded-full",
|
|
12835
|
-
border: { widthClass: "border-2", colorToken: "primary" },
|
|
12836
|
-
effects: {
|
|
12837
|
-
hover: [{ effectId: "pop" }]
|
|
12838
|
-
}
|
|
12839
|
-
},
|
|
12840
|
-
{
|
|
12841
|
-
id: "hero",
|
|
12842
|
-
name: "Hero",
|
|
12843
|
-
enabled: true,
|
|
12844
|
-
priority: 1,
|
|
12845
12963
|
background: { type: "solid", colorToken: "secondary" },
|
|
12846
|
-
textColorToken: "
|
|
12847
|
-
borderRadius: "rounded-
|
|
12848
|
-
|
|
12849
|
-
|
|
12850
|
-
}
|
|
12851
|
-
},
|
|
12852
|
-
{
|
|
12853
|
-
id: "header",
|
|
12854
|
-
name: "Header",
|
|
12855
|
-
enabled: true,
|
|
12856
|
-
priority: 2,
|
|
12857
|
-
background: { type: "solid", colorToken: "background" },
|
|
12858
|
-
textColorToken: "primary",
|
|
12859
|
-
borderRadius: "rounded-full",
|
|
12860
|
-
border: { widthClass: "border-2", colorToken: "primary" },
|
|
12964
|
+
textColorToken: "primaryForeground",
|
|
12965
|
+
borderRadius: "rounded-md",
|
|
12966
|
+
border: { widthClass: "border", colorToken: "primary" },
|
|
12967
|
+
shadow: { elevation: "none", softness: null, position: "bottom" },
|
|
12861
12968
|
effects: {
|
|
12862
12969
|
hover: [{ effectId: "background-on-hover", options: { colorToken: "surface" } }]
|
|
12863
12970
|
}
|
|
@@ -12869,10 +12976,11 @@ var showtimePill = defineButtonPersonality({
|
|
|
12869
12976
|
priority: 3,
|
|
12870
12977
|
background: { type: "transparent" },
|
|
12871
12978
|
textColorToken: "primary",
|
|
12872
|
-
borderRadius: "rounded-
|
|
12873
|
-
border: { widthClass: "border
|
|
12979
|
+
borderRadius: "rounded-md",
|
|
12980
|
+
border: { widthClass: "border", colorToken: "primary" },
|
|
12981
|
+
shadow: { elevation: "none", softness: null, position: "bottom" },
|
|
12874
12982
|
effects: {
|
|
12875
|
-
hover: [{ effectId: "background-on-hover", options: { colorToken: "
|
|
12983
|
+
hover: [{ effectId: "background-on-hover", options: { colorToken: "muted" } }]
|
|
12876
12984
|
}
|
|
12877
12985
|
},
|
|
12878
12986
|
{
|
|
@@ -12881,32 +12989,44 @@ var showtimePill = defineButtonPersonality({
|
|
|
12881
12989
|
enabled: true,
|
|
12882
12990
|
priority: 3,
|
|
12883
12991
|
background: { type: "transparent" },
|
|
12884
|
-
textColorToken: "
|
|
12885
|
-
borderRadius: "rounded-
|
|
12992
|
+
textColorToken: "accent",
|
|
12993
|
+
borderRadius: "rounded-none",
|
|
12994
|
+
sizes: {
|
|
12995
|
+
sm: { padding: "0.375rem 0", fontSize: "text-xs" },
|
|
12996
|
+
md: { padding: "0.5rem 0", fontSize: "text-sm" },
|
|
12997
|
+
lg: { padding: "0.625rem 0", fontSize: "text-base" },
|
|
12998
|
+
xl: { padding: "0.75rem 0", fontSize: "text-lg" }
|
|
12999
|
+
},
|
|
12886
13000
|
effects: {
|
|
12887
|
-
|
|
13001
|
+
base: [{ effectId: "border-bottom-grow", options: { height: 1, colorToken: "accent", origin: "left" } }]
|
|
12888
13002
|
}
|
|
12889
13003
|
}
|
|
12890
13004
|
]
|
|
12891
13005
|
}
|
|
12892
13006
|
});
|
|
12893
13007
|
|
|
12894
|
-
// ../theme-core/src/buttons/personalities/
|
|
12895
|
-
var
|
|
12896
|
-
id: "
|
|
12897
|
-
name: "
|
|
12898
|
-
description: "
|
|
12899
|
-
tags: { tone: "classic", energy: "calm", motion: "
|
|
13008
|
+
// ../theme-core/src/buttons/personalities/pebble.ts
|
|
13009
|
+
var pebble = defineButtonPersonality({
|
|
13010
|
+
id: "pebble",
|
|
13011
|
+
name: "Pebble",
|
|
13012
|
+
description: "Generous pill buttons with a quiet colour-softening hover.",
|
|
13013
|
+
tags: { tone: "classic", energy: "calm", motion: "standard", era: "organic" },
|
|
12900
13014
|
buttonSystem: {
|
|
12901
13015
|
global: {
|
|
12902
13016
|
cornerStyle: "pill",
|
|
12903
|
-
shadow: "
|
|
13017
|
+
shadow: "none",
|
|
12904
13018
|
textTransform: "none",
|
|
12905
13019
|
fontWeight: 500,
|
|
12906
13020
|
borderWidth: 2,
|
|
12907
|
-
hoverTransform: "
|
|
13021
|
+
hoverTransform: "none",
|
|
12908
13022
|
hoverColor: "none"
|
|
12909
13023
|
},
|
|
13024
|
+
sizes: {
|
|
13025
|
+
sm: { padding: "0.625rem 1.75rem", fontSize: "text-sm" },
|
|
13026
|
+
md: { padding: "0.875rem 2.25rem" },
|
|
13027
|
+
lg: { padding: "1.125rem 2.75rem", fontSize: "text-lg" },
|
|
13028
|
+
xl: { padding: "1.5rem 3.5rem", fontSize: "text-xl" }
|
|
13029
|
+
},
|
|
12910
13030
|
variants: [
|
|
12911
13031
|
{
|
|
12912
13032
|
id: "primary",
|
|
@@ -12916,10 +13036,10 @@ var softPill = defineButtonPersonality({
|
|
|
12916
13036
|
background: { type: "solid", colorToken: "primary" },
|
|
12917
13037
|
textColorToken: "primaryForeground",
|
|
12918
13038
|
borderRadius: "rounded-full",
|
|
12919
|
-
shadow: { elevation: "low", softness: "soft", position: "bottom" },
|
|
12920
13039
|
effects: {
|
|
12921
|
-
hover: [
|
|
12922
|
-
|
|
13040
|
+
hover: [
|
|
13041
|
+
{ effectId: "background-on-hover-alpha", options: { colorToken: "primary", opacity: 88 } }
|
|
13042
|
+
]
|
|
12923
13043
|
}
|
|
12924
13044
|
},
|
|
12925
13045
|
{
|
|
@@ -12930,9 +13050,193 @@ var softPill = defineButtonPersonality({
|
|
|
12930
13050
|
background: { type: "transparent" },
|
|
12931
13051
|
textColorToken: "primary",
|
|
12932
13052
|
borderRadius: "rounded-full",
|
|
12933
|
-
border: { widthClass: "border-2", colorToken: "
|
|
13053
|
+
border: { widthClass: "border-2", colorToken: "accent" },
|
|
12934
13054
|
effects: {
|
|
12935
|
-
hover: [{ effectId: "background-on-hover", options: { colorToken: "
|
|
13055
|
+
hover: [{ effectId: "background-on-hover", options: { colorToken: "accent" } }]
|
|
13056
|
+
}
|
|
13057
|
+
},
|
|
13058
|
+
{
|
|
13059
|
+
id: "outline",
|
|
13060
|
+
name: "Outline",
|
|
13061
|
+
enabled: true,
|
|
13062
|
+
priority: 3,
|
|
13063
|
+
background: { type: "transparent" },
|
|
13064
|
+
textColorToken: "text",
|
|
13065
|
+
borderRadius: "rounded-full",
|
|
13066
|
+
border: { widthClass: "border", colorToken: "border" },
|
|
13067
|
+
effects: {
|
|
13068
|
+
hover: [{ effectId: "background-on-hover", options: { colorToken: "surface" } }]
|
|
13069
|
+
}
|
|
13070
|
+
},
|
|
13071
|
+
{
|
|
13072
|
+
id: "ghost",
|
|
13073
|
+
name: "Ghost",
|
|
13074
|
+
enabled: true,
|
|
13075
|
+
priority: 3,
|
|
13076
|
+
background: { type: "transparent" },
|
|
13077
|
+
textColorToken: "primary",
|
|
13078
|
+
borderRadius: "rounded-full",
|
|
13079
|
+
sizes: {
|
|
13080
|
+
sm: { padding: "0.375rem 0.875rem", fontSize: "text-sm" },
|
|
13081
|
+
md: { padding: "0.5rem 1rem" },
|
|
13082
|
+
lg: { padding: "0.625rem 1.25rem", fontSize: "text-lg" },
|
|
13083
|
+
xl: { padding: "0.75rem 1.5rem", fontSize: "text-xl" }
|
|
13084
|
+
},
|
|
13085
|
+
effects: {
|
|
13086
|
+
hover: [{ effectId: "opacity-reduce", options: { reduction: 30 } }]
|
|
13087
|
+
}
|
|
13088
|
+
}
|
|
13089
|
+
]
|
|
13090
|
+
}
|
|
13091
|
+
});
|
|
13092
|
+
|
|
13093
|
+
// ../theme-core/src/buttons/personalities/showtime-pill.ts
|
|
13094
|
+
var showtimePill = defineButtonPersonality({
|
|
13095
|
+
id: "showtime-pill",
|
|
13096
|
+
name: "Showtime Pill",
|
|
13097
|
+
description: "Bold pill buttons with uppercase labels, generous padding, and a playful pop.",
|
|
13098
|
+
tags: { tone: "bold", energy: "vibrant", motion: "expressive", era: "modern" },
|
|
13099
|
+
buttonSystem: {
|
|
13100
|
+
global: {
|
|
13101
|
+
cornerStyle: "pill",
|
|
13102
|
+
shadow: "low",
|
|
13103
|
+
textTransform: "uppercase",
|
|
13104
|
+
fontWeight: 700,
|
|
13105
|
+
borderWidth: 2,
|
|
13106
|
+
hoverTransform: "lift",
|
|
13107
|
+
hoverColor: "darken",
|
|
13108
|
+
typography: "body",
|
|
13109
|
+
paddingPreset: "spacious",
|
|
13110
|
+
italic: false
|
|
13111
|
+
},
|
|
13112
|
+
sizes: {
|
|
13113
|
+
sm: { padding: "0.625rem 1.25rem", fontSize: "0.875rem" },
|
|
13114
|
+
md: { padding: "0.875rem 1.75rem", fontSize: "1rem" },
|
|
13115
|
+
lg: { padding: "1.125rem 2.25rem", fontSize: "1.125rem" },
|
|
13116
|
+
xl: { padding: "1.125rem 2.25rem", fontSize: "1.125rem" }
|
|
13117
|
+
},
|
|
13118
|
+
variants: [
|
|
13119
|
+
{
|
|
13120
|
+
id: "primary",
|
|
13121
|
+
name: "Primary",
|
|
13122
|
+
enabled: true,
|
|
13123
|
+
priority: 1,
|
|
13124
|
+
background: { type: "solid", colorToken: "primary" },
|
|
13125
|
+
textColorToken: "background",
|
|
13126
|
+
borderRadius: "rounded-full",
|
|
13127
|
+
effects: {
|
|
13128
|
+
hover: [{ effectId: "pop" }]
|
|
13129
|
+
}
|
|
13130
|
+
},
|
|
13131
|
+
{
|
|
13132
|
+
id: "secondary",
|
|
13133
|
+
name: "Secondary",
|
|
13134
|
+
enabled: true,
|
|
13135
|
+
priority: 2,
|
|
13136
|
+
background: { type: "transparent" },
|
|
13137
|
+
textColorToken: "primary",
|
|
13138
|
+
borderRadius: "rounded-full",
|
|
13139
|
+
border: { widthClass: "border-2", colorToken: "primary" },
|
|
13140
|
+
effects: {
|
|
13141
|
+
hover: [{ effectId: "pop" }]
|
|
13142
|
+
}
|
|
13143
|
+
},
|
|
13144
|
+
{
|
|
13145
|
+
id: "hero",
|
|
13146
|
+
name: "Hero",
|
|
13147
|
+
enabled: true,
|
|
13148
|
+
priority: 1,
|
|
13149
|
+
background: { type: "solid", colorToken: "secondary" },
|
|
13150
|
+
textColorToken: "primary",
|
|
13151
|
+
borderRadius: "rounded-full",
|
|
13152
|
+
effects: {
|
|
13153
|
+
hover: [{ effectId: "pop" }]
|
|
13154
|
+
}
|
|
13155
|
+
},
|
|
13156
|
+
{
|
|
13157
|
+
id: "header",
|
|
13158
|
+
name: "Header",
|
|
13159
|
+
enabled: true,
|
|
13160
|
+
priority: 2,
|
|
13161
|
+
background: { type: "solid", colorToken: "background" },
|
|
13162
|
+
textColorToken: "primary",
|
|
13163
|
+
borderRadius: "rounded-full",
|
|
13164
|
+
border: { widthClass: "border-2", colorToken: "primary" },
|
|
13165
|
+
effects: {
|
|
13166
|
+
hover: [{ effectId: "background-on-hover", options: { colorToken: "surface" } }]
|
|
13167
|
+
}
|
|
13168
|
+
},
|
|
13169
|
+
{
|
|
13170
|
+
id: "outline",
|
|
13171
|
+
name: "Outline",
|
|
13172
|
+
enabled: true,
|
|
13173
|
+
priority: 3,
|
|
13174
|
+
background: { type: "transparent" },
|
|
13175
|
+
textColorToken: "primary",
|
|
13176
|
+
borderRadius: "rounded-full",
|
|
13177
|
+
border: { widthClass: "border-2", colorToken: "primary" },
|
|
13178
|
+
effects: {
|
|
13179
|
+
hover: [{ effectId: "background-on-hover", options: { colorToken: "background" } }]
|
|
13180
|
+
}
|
|
13181
|
+
},
|
|
13182
|
+
{
|
|
13183
|
+
id: "ghost",
|
|
13184
|
+
name: "Ghost",
|
|
13185
|
+
enabled: true,
|
|
13186
|
+
priority: 3,
|
|
13187
|
+
background: { type: "transparent" },
|
|
13188
|
+
textColorToken: "primary",
|
|
13189
|
+
borderRadius: "rounded-full",
|
|
13190
|
+
effects: {
|
|
13191
|
+
hover: [{ effectId: "background-on-hover", options: { colorToken: "surface" } }]
|
|
13192
|
+
}
|
|
13193
|
+
}
|
|
13194
|
+
]
|
|
13195
|
+
}
|
|
13196
|
+
});
|
|
13197
|
+
|
|
13198
|
+
// ../theme-core/src/buttons/personalities/soft-pill.ts
|
|
13199
|
+
var softPill = defineButtonPersonality({
|
|
13200
|
+
id: "soft-pill",
|
|
13201
|
+
name: "Soft Pill",
|
|
13202
|
+
description: "Rounded pills with a gentle lift on hover. Quietly modern.",
|
|
13203
|
+
tags: { tone: "classic", energy: "calm", motion: "subtle", era: "organic" },
|
|
13204
|
+
buttonSystem: {
|
|
13205
|
+
global: {
|
|
13206
|
+
cornerStyle: "pill",
|
|
13207
|
+
shadow: "low",
|
|
13208
|
+
textTransform: "none",
|
|
13209
|
+
fontWeight: 500,
|
|
13210
|
+
borderWidth: 2,
|
|
13211
|
+
hoverTransform: "lift",
|
|
13212
|
+
hoverColor: "none"
|
|
13213
|
+
},
|
|
13214
|
+
variants: [
|
|
13215
|
+
{
|
|
13216
|
+
id: "primary",
|
|
13217
|
+
name: "Primary",
|
|
13218
|
+
enabled: true,
|
|
13219
|
+
priority: 1,
|
|
13220
|
+
background: { type: "solid", colorToken: "primary" },
|
|
13221
|
+
textColorToken: "primaryForeground",
|
|
13222
|
+
borderRadius: "rounded-full",
|
|
13223
|
+
shadow: { elevation: "low", softness: "soft", position: "bottom" },
|
|
13224
|
+
effects: {
|
|
13225
|
+
hover: [{ effectId: "lift", options: { translateY: "-1px" } }],
|
|
13226
|
+
active: [{ effectId: "scale-down", options: { scale: "0.98" } }]
|
|
13227
|
+
}
|
|
13228
|
+
},
|
|
13229
|
+
{
|
|
13230
|
+
id: "secondary",
|
|
13231
|
+
name: "Secondary",
|
|
13232
|
+
enabled: true,
|
|
13233
|
+
priority: 2,
|
|
13234
|
+
background: { type: "transparent" },
|
|
13235
|
+
textColorToken: "primary",
|
|
13236
|
+
borderRadius: "rounded-full",
|
|
13237
|
+
border: { widthClass: "border-2", colorToken: "primary" },
|
|
13238
|
+
effects: {
|
|
13239
|
+
hover: [{ effectId: "background-on-hover", options: { colorToken: "surface" } }]
|
|
12936
13240
|
}
|
|
12937
13241
|
},
|
|
12938
13242
|
{
|
|
@@ -12974,7 +13278,8 @@ var buttonPersonalities = [
|
|
|
12974
13278
|
inkStamp,
|
|
12975
13279
|
brushedWash,
|
|
12976
13280
|
showtimePill,
|
|
12977
|
-
joyStamp
|
|
13281
|
+
joyStamp,
|
|
13282
|
+
ornateRitual
|
|
12978
13283
|
];
|
|
12979
13284
|
var personalitiesById = new Map(
|
|
12980
13285
|
buttonPersonalities.map((p) => [p.id, p])
|
|
@@ -13604,7 +13909,7 @@ function rgbColorValue(token) {
|
|
|
13604
13909
|
if (alpha === void 0) {
|
|
13605
13910
|
return `rgb(var(${cssVar}))`;
|
|
13606
13911
|
}
|
|
13607
|
-
return `
|
|
13912
|
+
return `rgb(var(${cssVar}) / ${alpha})`;
|
|
13608
13913
|
}
|
|
13609
13914
|
function backgroundColorStyle(token) {
|
|
13610
13915
|
return { backgroundColor: rgbColorValue(token) };
|
|
@@ -14709,6 +15014,28 @@ var warmDarkEmber = definePaletteVariant({
|
|
|
14709
15014
|
{ name: "border", hex: "#894e31" }
|
|
14710
15015
|
]
|
|
14711
15016
|
});
|
|
15017
|
+
var warmDarkKirtanGold = definePaletteVariant({
|
|
15018
|
+
id: "warm-dark-kirtan-gold",
|
|
15019
|
+
name: "Warm Dark \u2014 Kirtan Gold",
|
|
15020
|
+
description: "Deep plum ground with pale gold primary, rose accent, and soft devotional text.",
|
|
15021
|
+
tags: { tone: "bold", energy: "calm", era: "editorial" },
|
|
15022
|
+
mode: "dark",
|
|
15023
|
+
colors: [
|
|
15024
|
+
{ name: "primary", hex: "#ffcdb2" },
|
|
15025
|
+
{ name: "secondary", hex: "#b5838d" },
|
|
15026
|
+
{ name: "accent", hex: "#e5989b" },
|
|
15027
|
+
{ name: "success", hex: "#8fbf8f" },
|
|
15028
|
+
{ name: "warning", hex: "#f2b86b" },
|
|
15029
|
+
{ name: "destructive", hex: "#d96b6b" },
|
|
15030
|
+
{ name: "background", hex: "#403944" },
|
|
15031
|
+
{ name: "surface", hex: "#403944" },
|
|
15032
|
+
{ name: "surfaceAlt", hex: "#372f3b" },
|
|
15033
|
+
{ name: "muted", hex: "#4d4550" },
|
|
15034
|
+
{ name: "text", hex: "#e6d2d5" },
|
|
15035
|
+
{ name: "primaryForeground", hex: "#403944" },
|
|
15036
|
+
{ name: "border", hex: "#8d747a" }
|
|
15037
|
+
]
|
|
15038
|
+
});
|
|
14712
15039
|
|
|
14713
15040
|
// ../theme-core/src/palette/variants/index.ts
|
|
14714
15041
|
var paletteVariants = [
|
|
@@ -14732,7 +15059,8 @@ var paletteVariants = [
|
|
|
14732
15059
|
softNaturalWatercolor,
|
|
14733
15060
|
softNaturalLilac,
|
|
14734
15061
|
// Warm-dark family (dark mode)
|
|
14735
|
-
warmDarkEmber
|
|
15062
|
+
warmDarkEmber,
|
|
15063
|
+
warmDarkKirtanGold
|
|
14736
15064
|
];
|
|
14737
15065
|
var paletteVariantsById = new Map(
|
|
14738
15066
|
paletteVariants.map((v) => [v.id, v])
|
|
@@ -16301,9 +16629,125 @@ function headerConfigurationKey(configuration) {
|
|
|
16301
16629
|
function asFooterLookId(value) {
|
|
16302
16630
|
return value;
|
|
16303
16631
|
}
|
|
16304
|
-
|
|
16632
|
+
function asFooterLayoutId(value) {
|
|
16633
|
+
return value;
|
|
16634
|
+
}
|
|
16635
|
+
function asFooterStyleId(value) {
|
|
16636
|
+
return value;
|
|
16637
|
+
}
|
|
16638
|
+
var guaranteedFallbackFooterLookId = asFooterLookId("footer-identity-quiet");
|
|
16639
|
+
var footerLayoutCatalog = defineExactCatalog()([
|
|
16640
|
+
{
|
|
16641
|
+
id: asFooterLayoutId("identity"),
|
|
16642
|
+
label: "Identity",
|
|
16643
|
+
description: "Logo, site text, address, and legal copy without relying on footer navigation."
|
|
16644
|
+
},
|
|
16645
|
+
{
|
|
16646
|
+
id: asFooterLayoutId("centered"),
|
|
16647
|
+
label: "Centered",
|
|
16648
|
+
description: "A calm centered stack for identity, short copy, and optional compact navigation.",
|
|
16649
|
+
maxRecommendedNavDensity: "sparse"
|
|
16650
|
+
},
|
|
16651
|
+
{
|
|
16652
|
+
id: asFooterLayoutId("split"),
|
|
16653
|
+
label: "Split",
|
|
16654
|
+
description: "Navigation and brand signoff separated into a wider split footer.",
|
|
16655
|
+
requiresFooterNav: true,
|
|
16656
|
+
maxRecommendedNavDensity: "balanced"
|
|
16657
|
+
},
|
|
16658
|
+
{
|
|
16659
|
+
id: asFooterLayoutId("columns"),
|
|
16660
|
+
label: "Columns",
|
|
16661
|
+
description: "Grouped footer navigation columns with a supporting bottom line.",
|
|
16662
|
+
requiresFooterNav: true,
|
|
16663
|
+
requiresFooterNavGroups: true
|
|
16664
|
+
}
|
|
16665
|
+
]);
|
|
16666
|
+
var footerStyleCatalog = defineExactCatalog()([
|
|
16667
|
+
{
|
|
16668
|
+
id: asFooterStyleId("quiet"),
|
|
16669
|
+
label: "Quiet",
|
|
16670
|
+
description: "Lightweight, practical footer treatment."
|
|
16671
|
+
},
|
|
16672
|
+
{
|
|
16673
|
+
id: asFooterStyleId("calm"),
|
|
16674
|
+
label: "Calm",
|
|
16675
|
+
description: "Soft centered treatment with restrained dividers."
|
|
16676
|
+
},
|
|
16677
|
+
{
|
|
16678
|
+
id: asFooterStyleId("editorial"),
|
|
16679
|
+
label: "Editorial",
|
|
16680
|
+
description: "Text-forward treatment with fine-line structure."
|
|
16681
|
+
},
|
|
16682
|
+
{
|
|
16683
|
+
id: asFooterStyleId("brand-band"),
|
|
16684
|
+
label: "Brand band",
|
|
16685
|
+
description: "High-contrast brand treatment with a stronger bottom bar."
|
|
16686
|
+
}
|
|
16687
|
+
]);
|
|
16688
|
+
var footerLayoutsById = new Map(
|
|
16689
|
+
footerLayoutCatalog.map((layout) => [layout.id, layout])
|
|
16690
|
+
);
|
|
16691
|
+
var footerStylesById = new Map(
|
|
16692
|
+
footerStyleCatalog.map((style) => [style.id, style])
|
|
16693
|
+
);
|
|
16694
|
+
function identityQuietFooter(theme) {
|
|
16695
|
+
return {
|
|
16696
|
+
...theme.footer,
|
|
16697
|
+
variant: "simple",
|
|
16698
|
+
maxWidth: "container",
|
|
16699
|
+
background: {
|
|
16700
|
+
type: "color",
|
|
16701
|
+
color: "surface"
|
|
16702
|
+
},
|
|
16703
|
+
navStyle: "minimal",
|
|
16704
|
+
navWeight: "regular",
|
|
16705
|
+
navColor: "text",
|
|
16706
|
+
navLinkStyle: {
|
|
16707
|
+
typography: "body",
|
|
16708
|
+
fontWeight: "regular",
|
|
16709
|
+
textTransform: "none",
|
|
16710
|
+
italic: false,
|
|
16711
|
+
colorToken: "text",
|
|
16712
|
+
hoverColorToken: "primary",
|
|
16713
|
+
padding: "none",
|
|
16714
|
+
borderRadius: "none"
|
|
16715
|
+
},
|
|
16716
|
+
navLayout: {
|
|
16717
|
+
layout: "inline-wrap",
|
|
16718
|
+
align: "start",
|
|
16719
|
+
gapX: "default",
|
|
16720
|
+
gapY: "tight"
|
|
16721
|
+
},
|
|
16722
|
+
logo: {
|
|
16723
|
+
showLogo: true,
|
|
16724
|
+
showLogoText: true,
|
|
16725
|
+
placement: "left",
|
|
16726
|
+
size: "sm",
|
|
16727
|
+
align: "start"
|
|
16728
|
+
},
|
|
16729
|
+
bottomBar: {
|
|
16730
|
+
enabled: false,
|
|
16731
|
+
fullBleed: false,
|
|
16732
|
+
textAlign: "left",
|
|
16733
|
+
paddingX: "default",
|
|
16734
|
+
paddingY: "compact",
|
|
16735
|
+
borderTop: {
|
|
16736
|
+
width: "none"
|
|
16737
|
+
}
|
|
16738
|
+
}
|
|
16739
|
+
};
|
|
16740
|
+
}
|
|
16305
16741
|
function mutedGroundingFooter(theme) {
|
|
16306
|
-
return
|
|
16742
|
+
return {
|
|
16743
|
+
...identityQuietFooter(theme),
|
|
16744
|
+
background: theme.footer.background,
|
|
16745
|
+
navStyle: theme.footer.navStyle,
|
|
16746
|
+
navColor: theme.footer.navColor,
|
|
16747
|
+
navWeight: theme.footer.navWeight,
|
|
16748
|
+
navLinkStyle: theme.footer.navLinkStyle,
|
|
16749
|
+
bottomTextLinkStyle: theme.footer.bottomTextLinkStyle
|
|
16750
|
+
};
|
|
16307
16751
|
}
|
|
16308
16752
|
function brandTwoBandFooter(theme) {
|
|
16309
16753
|
return {
|
|
@@ -16408,6 +16852,53 @@ function centeredCalmFooter(theme) {
|
|
|
16408
16852
|
}
|
|
16409
16853
|
};
|
|
16410
16854
|
}
|
|
16855
|
+
function splitEditorialFooter(theme) {
|
|
16856
|
+
return {
|
|
16857
|
+
...theme.footer,
|
|
16858
|
+
variant: "split",
|
|
16859
|
+
maxWidth: "container",
|
|
16860
|
+
background: {
|
|
16861
|
+
type: "color",
|
|
16862
|
+
color: "surface"
|
|
16863
|
+
},
|
|
16864
|
+
navStyle: "minimal",
|
|
16865
|
+
navWeight: "regular",
|
|
16866
|
+
navColor: "text",
|
|
16867
|
+
navLinkStyle: {
|
|
16868
|
+
typography: "body",
|
|
16869
|
+
fontWeight: "regular",
|
|
16870
|
+
textTransform: "none",
|
|
16871
|
+
italic: false,
|
|
16872
|
+
colorToken: "text",
|
|
16873
|
+
hoverColorToken: "primary",
|
|
16874
|
+
padding: "none",
|
|
16875
|
+
borderRadius: "none"
|
|
16876
|
+
},
|
|
16877
|
+
navLayout: {
|
|
16878
|
+
layout: "inline-wrap",
|
|
16879
|
+
align: "start",
|
|
16880
|
+
gapX: "relaxed",
|
|
16881
|
+
gapY: "tight"
|
|
16882
|
+
},
|
|
16883
|
+
logo: {
|
|
16884
|
+
showLogo: true,
|
|
16885
|
+
showLogoText: true,
|
|
16886
|
+
placement: "right",
|
|
16887
|
+
size: "sm",
|
|
16888
|
+
align: "end"
|
|
16889
|
+
},
|
|
16890
|
+
bottomBar: {
|
|
16891
|
+
enabled: true,
|
|
16892
|
+
fullBleed: false,
|
|
16893
|
+
textAlign: "left",
|
|
16894
|
+
paddingX: "default",
|
|
16895
|
+
paddingY: "compact",
|
|
16896
|
+
borderTop: {
|
|
16897
|
+
width: "thin"
|
|
16898
|
+
}
|
|
16899
|
+
}
|
|
16900
|
+
};
|
|
16901
|
+
}
|
|
16411
16902
|
function editorialColumnsFooter(theme) {
|
|
16412
16903
|
return {
|
|
16413
16904
|
...theme.footer,
|
|
@@ -16450,25 +16941,47 @@ function editorialColumnsFooter(theme) {
|
|
|
16450
16941
|
};
|
|
16451
16942
|
}
|
|
16452
16943
|
var footerLookCatalog = defineExactCatalog()([
|
|
16944
|
+
{
|
|
16945
|
+
id: asFooterLookId("footer-identity-quiet"),
|
|
16946
|
+
label: "Identity footer",
|
|
16947
|
+
layoutId: asFooterLayoutId("identity"),
|
|
16948
|
+
styleId: asFooterStyleId("quiet"),
|
|
16949
|
+
compile: identityQuietFooter
|
|
16950
|
+
},
|
|
16453
16951
|
{
|
|
16454
16952
|
id: asFooterLookId("footer-muted-grounding"),
|
|
16455
16953
|
label: "Muted grounding footer",
|
|
16954
|
+
layoutId: asFooterLayoutId("identity"),
|
|
16955
|
+
styleId: asFooterStyleId("quiet"),
|
|
16956
|
+
hiddenFromLayoutStyleControls: true,
|
|
16456
16957
|
compile: mutedGroundingFooter
|
|
16457
16958
|
},
|
|
16458
16959
|
{
|
|
16459
16960
|
id: asFooterLookId("footer-centered-calm"),
|
|
16460
16961
|
label: "Centered calm footer",
|
|
16962
|
+
layoutId: asFooterLayoutId("centered"),
|
|
16963
|
+
styleId: asFooterStyleId("calm"),
|
|
16461
16964
|
compile: centeredCalmFooter
|
|
16462
16965
|
},
|
|
16966
|
+
{
|
|
16967
|
+
id: asFooterLookId("footer-split-editorial"),
|
|
16968
|
+
label: "Split editorial footer",
|
|
16969
|
+
layoutId: asFooterLayoutId("split"),
|
|
16970
|
+
styleId: asFooterStyleId("editorial"),
|
|
16971
|
+
compile: splitEditorialFooter
|
|
16972
|
+
},
|
|
16463
16973
|
{
|
|
16464
16974
|
id: asFooterLookId("footer-editorial-columns"),
|
|
16465
16975
|
label: "Editorial columns footer",
|
|
16976
|
+
layoutId: asFooterLayoutId("columns"),
|
|
16977
|
+
styleId: asFooterStyleId("editorial"),
|
|
16466
16978
|
compile: editorialColumnsFooter
|
|
16467
16979
|
},
|
|
16468
16980
|
{
|
|
16469
16981
|
id: asFooterLookId("site-footer-brand-two-band"),
|
|
16470
16982
|
label: "Two-band brand footer",
|
|
16471
|
-
|
|
16983
|
+
layoutId: asFooterLayoutId("split"),
|
|
16984
|
+
styleId: asFooterStyleId("brand-band"),
|
|
16472
16985
|
allowedContentPresence: ["default-footer", "default-and-blocks"],
|
|
16473
16986
|
compile: brandTwoBandFooter
|
|
16474
16987
|
}
|
|
@@ -16671,6 +17184,30 @@ var luxeContrastTypography = {
|
|
|
16671
17184
|
},
|
|
16672
17185
|
scale: "spacious"
|
|
16673
17186
|
};
|
|
17187
|
+
var kirtanOrnateTypography = {
|
|
17188
|
+
body: {
|
|
17189
|
+
family: "Jost, system-ui, sans-serif",
|
|
17190
|
+
size: "md",
|
|
17191
|
+
weight: "regular",
|
|
17192
|
+
lineHeight: "relaxed",
|
|
17193
|
+
letterSpacing: "normal"
|
|
17194
|
+
},
|
|
17195
|
+
headings: {
|
|
17196
|
+
default: {
|
|
17197
|
+
family: "Marcellus, Georgia, serif",
|
|
17198
|
+
weight: "regular",
|
|
17199
|
+
lineHeight: "normal",
|
|
17200
|
+
letterSpacing: "normal",
|
|
17201
|
+
colorToken: "primary",
|
|
17202
|
+
italic: null,
|
|
17203
|
+
case: null
|
|
17204
|
+
},
|
|
17205
|
+
h1: { size: "2xl", weight: "regular", lineHeight: "normal", letterSpacing: "normal", italic: null },
|
|
17206
|
+
h2: { size: "xl", weight: "regular", lineHeight: "normal", letterSpacing: "normal", italic: null },
|
|
17207
|
+
h3: { size: "md", weight: "regular", lineHeight: "relaxed", letterSpacing: "normal", italic: null }
|
|
17208
|
+
},
|
|
17209
|
+
scale: "spacious"
|
|
17210
|
+
};
|
|
16674
17211
|
var boldDisplayTypography = {
|
|
16675
17212
|
body: {
|
|
16676
17213
|
family: "Manrope, system-ui, sans-serif",
|
|
@@ -16705,16 +17242,16 @@ var originalJoyTypography = {
|
|
|
16705
17242
|
},
|
|
16706
17243
|
headings: {
|
|
16707
17244
|
default: {
|
|
16708
|
-
family: "
|
|
16709
|
-
weight: "
|
|
17245
|
+
family: "Lobster, cursive",
|
|
17246
|
+
weight: "regular",
|
|
16710
17247
|
lineHeight: "normal",
|
|
16711
|
-
letterSpacing: "
|
|
17248
|
+
letterSpacing: "normal",
|
|
16712
17249
|
italic: null,
|
|
16713
17250
|
case: null
|
|
16714
17251
|
},
|
|
16715
|
-
h1: { size: "2xl", weight: "
|
|
16716
|
-
h2: { size: "xl", weight: "
|
|
16717
|
-
h3: { size: "lg", weight: "
|
|
17252
|
+
h1: { size: "2xl", weight: "regular", lineHeight: "normal", letterSpacing: "normal", italic: null },
|
|
17253
|
+
h2: { size: "xl", weight: "regular", lineHeight: "normal", letterSpacing: "normal", italic: null },
|
|
17254
|
+
h3: { size: "lg", weight: "regular", lineHeight: "normal", letterSpacing: "normal", italic: null }
|
|
16718
17255
|
},
|
|
16719
17256
|
scale: "balanced"
|
|
16720
17257
|
};
|
|
@@ -16779,6 +17316,32 @@ var typographyPresets = [
|
|
|
16779
17316
|
slotPolicies: { body: bodyReadablePolicy, heading: displayHeadingPolicy },
|
|
16780
17317
|
typography: luxeContrastTypography
|
|
16781
17318
|
}),
|
|
17319
|
+
defineTypographyPreset({
|
|
17320
|
+
id: "typography-preset:kirtan-ornate",
|
|
17321
|
+
name: "Kirtan Ornate",
|
|
17322
|
+
description: "Marcellus devotional headings over a refined Jost body, matching dark ceremonial layouts.",
|
|
17323
|
+
defaultFonts: { body: "Jost, system-ui, sans-serif", heading: "Marcellus, Georgia, serif" },
|
|
17324
|
+
recommendedFonts: {
|
|
17325
|
+
body: ["Jost", "Manrope", "Inter"],
|
|
17326
|
+
heading: ["Marcellus", "Cormorant Garamond", "Playfair Display"]
|
|
17327
|
+
},
|
|
17328
|
+
slotPolicies: { body: bodyReadablePolicy, heading: displayHeadingPolicy },
|
|
17329
|
+
typography: kirtanOrnateTypography,
|
|
17330
|
+
heroTypography: {
|
|
17331
|
+
headlineSize: "6xl",
|
|
17332
|
+
headlineLineHeight: "normal",
|
|
17333
|
+
subheadlineSize: "xl",
|
|
17334
|
+
subheadlineLineHeight: "relaxed",
|
|
17335
|
+
microHeadlineSize: "5xl",
|
|
17336
|
+
microHeadlineLineHeight: "normal",
|
|
17337
|
+
microSubheadlineSize: "lg",
|
|
17338
|
+
microSubheadlineLineHeight: "relaxed",
|
|
17339
|
+
responsive: {
|
|
17340
|
+
tablet: { headlineSize: "5xl" },
|
|
17341
|
+
mobile: { headlineSize: "4xl", subheadlineSize: "lg" }
|
|
17342
|
+
}
|
|
17343
|
+
}
|
|
17344
|
+
}),
|
|
16782
17345
|
defineTypographyPreset({
|
|
16783
17346
|
id: "typography-preset:bold-display",
|
|
16784
17347
|
name: "Bold Display",
|
|
@@ -16808,11 +17371,11 @@ var typographyPresets = [
|
|
|
16808
17371
|
defineTypographyPreset({
|
|
16809
17372
|
id: "typography-preset:original-joy",
|
|
16810
17373
|
name: "Original Joy",
|
|
16811
|
-
description: "
|
|
16812
|
-
defaultFonts: { body: "DM Sans, system-ui, sans-serif", heading: "
|
|
17374
|
+
description: "Lobster display headings over a clean DM Sans body, expressive and warm.",
|
|
17375
|
+
defaultFonts: { body: "DM Sans, system-ui, sans-serif", heading: "Lobster, cursive" },
|
|
16813
17376
|
recommendedFonts: {
|
|
16814
17377
|
body: ["DM Sans", "Inter", "Manrope"],
|
|
16815
|
-
heading: ["Bricolage Grotesque", "Space Grotesk"
|
|
17378
|
+
heading: ["Lobster", "Bricolage Grotesque", "Space Grotesk"]
|
|
16816
17379
|
},
|
|
16817
17380
|
slotPolicies: { body: bodyReadablePolicy, heading: displayHeadingPolicy },
|
|
16818
17381
|
typography: originalJoyTypography,
|
|
@@ -16836,6 +17399,319 @@ var typographyPresetsById = new Map(
|
|
|
16836
17399
|
typographyPresets.map((preset2) => [preset2.id, preset2])
|
|
16837
17400
|
);
|
|
16838
17401
|
|
|
17402
|
+
// ../theme-core/src/site-styles/designState.ts
|
|
17403
|
+
import { z as z24 } from "zod";
|
|
17404
|
+
var themeV2DesignStateSchemaVersion = 1;
|
|
17405
|
+
var designResolutionPolicySchema = z24.enum(["generated", "user", "admin", "sdk"]);
|
|
17406
|
+
var runtimeStyleFieldNameSchema = z24.enum(themeV2RuntimeStyleFieldNames);
|
|
17407
|
+
var nonEmptyRuntimeStyleFieldNamesSchema = z24.array(runtimeStyleFieldNameSchema).min(1).transform((fields3) => [
|
|
17408
|
+
fields3[0],
|
|
17409
|
+
...fields3.slice(1)
|
|
17410
|
+
]);
|
|
17411
|
+
var heroLegibilityStrategySchema = z24.enum([
|
|
17412
|
+
"none",
|
|
17413
|
+
"scrim-gradient",
|
|
17414
|
+
"solid-panel"
|
|
17415
|
+
]);
|
|
17416
|
+
var heroCompositionIntentSchema = z24.enum([
|
|
17417
|
+
"center",
|
|
17418
|
+
"bottom-left"
|
|
17419
|
+
]);
|
|
17420
|
+
var heroTypographyScaleIntentSchema = z24.enum([
|
|
17421
|
+
"quiet",
|
|
17422
|
+
"editorial",
|
|
17423
|
+
"display",
|
|
17424
|
+
"poster"
|
|
17425
|
+
]);
|
|
17426
|
+
var sectionHeightIntentSchema = z24.enum([
|
|
17427
|
+
"default",
|
|
17428
|
+
"banner",
|
|
17429
|
+
"hero",
|
|
17430
|
+
"immersive"
|
|
17431
|
+
]);
|
|
17432
|
+
var imageSurfaceTreatmentIntensitySchema = z24.enum(["soft", "balanced", "strong"]);
|
|
17433
|
+
var imageSurfaceMotionSchema = z24.enum(["static", "fixed-frame"]);
|
|
17434
|
+
var imageSurfaceTreatmentSchema = z24.discriminatedUnion("kind", [
|
|
17435
|
+
z24.object({ kind: z24.literal("none") }).strict(),
|
|
17436
|
+
z24.object({
|
|
17437
|
+
kind: z24.literal("brand-scrim"),
|
|
17438
|
+
token: z24.enum(["primary", "secondary", "accent"]),
|
|
17439
|
+
intensity: imageSurfaceTreatmentIntensitySchema.optional()
|
|
17440
|
+
}).strict(),
|
|
17441
|
+
z24.object({
|
|
17442
|
+
kind: z24.literal("brand-wash"),
|
|
17443
|
+
token: z24.enum(["primary", "secondary", "accent"]),
|
|
17444
|
+
intensity: imageSurfaceTreatmentIntensitySchema.optional()
|
|
17445
|
+
}).strict(),
|
|
17446
|
+
z24.object({
|
|
17447
|
+
kind: z24.literal("neutral-scrim"),
|
|
17448
|
+
intensity: imageSurfaceTreatmentIntensitySchema.optional()
|
|
17449
|
+
}).strict(),
|
|
17450
|
+
z24.object({
|
|
17451
|
+
kind: z24.literal("neutral-wash"),
|
|
17452
|
+
intensity: imageSurfaceTreatmentIntensitySchema.optional()
|
|
17453
|
+
}).strict(),
|
|
17454
|
+
z24.object({
|
|
17455
|
+
kind: z24.literal("solid-panel"),
|
|
17456
|
+
intensity: imageSurfaceTreatmentIntensitySchema.optional()
|
|
17457
|
+
}).strict()
|
|
17458
|
+
]);
|
|
17459
|
+
var testimonialCardTreatmentSchema = z24.enum(["default", "accent-quote"]);
|
|
17460
|
+
var tileTreatmentSchema = z24.enum(tileTreatmentValues);
|
|
17461
|
+
var eventListTreatmentSchema = z24.enum(eventListTreatmentValues);
|
|
17462
|
+
var eyebrowTreatmentSchema = z24.enum(eyebrowTreatmentValues);
|
|
17463
|
+
function uniqueNonEmpty(values) {
|
|
17464
|
+
const uniqueValues = [...new Set(values)];
|
|
17465
|
+
const firstValue = uniqueValues[0];
|
|
17466
|
+
if (!firstValue) {
|
|
17467
|
+
throw new Error("Expected at least one Theme V2 design state option.");
|
|
17468
|
+
}
|
|
17469
|
+
return [firstValue, ...uniqueValues.slice(1)];
|
|
17470
|
+
}
|
|
17471
|
+
var userPanelTreatments = uniqueNonEmpty(
|
|
17472
|
+
userDesignOptionCatalog.contentFrames.filter((frame) => frame.kind === "panel").map((frame) => frame.treatment)
|
|
17473
|
+
);
|
|
17474
|
+
var userFlushTreatments = uniqueNonEmpty(
|
|
17475
|
+
userDesignOptionCatalog.contentFrames.filter((frame) => frame.kind === "flush-panel").map((frame) => frame.treatment)
|
|
17476
|
+
);
|
|
17477
|
+
var userFlushBleeds = uniqueNonEmpty(
|
|
17478
|
+
userDesignOptionCatalog.contentFrames.filter((frame) => frame.kind === "flush-panel").map((frame) => frame.bleed)
|
|
17479
|
+
);
|
|
17480
|
+
var contentFrameIntentSchema = z24.discriminatedUnion("kind", [
|
|
17481
|
+
z24.object({ kind: z24.literal("plain") }).strict(),
|
|
17482
|
+
z24.object({
|
|
17483
|
+
kind: z24.literal("panel"),
|
|
17484
|
+
treatment: z24.enum(userPanelTreatments)
|
|
17485
|
+
}).strict(),
|
|
17486
|
+
z24.object({
|
|
17487
|
+
kind: z24.literal("flush-panel"),
|
|
17488
|
+
treatment: z24.enum(userFlushTreatments),
|
|
17489
|
+
bleed: z24.enum(userFlushBleeds)
|
|
17490
|
+
}).strict()
|
|
17491
|
+
]);
|
|
17492
|
+
var blockDesignPlanSchema = z24.object({
|
|
17493
|
+
blockId: z24.string().min(1).transform(asDesignBlockId),
|
|
17494
|
+
blockKind: z24.string().min(1),
|
|
17495
|
+
purpose: z24.string().min(1),
|
|
17496
|
+
sectionSurface: z24.enum(userDesignOptionCatalog.sectionSurfaces),
|
|
17497
|
+
contentFrame: contentFrameIntentSchema,
|
|
17498
|
+
itemSurface: z24.enum(userDesignOptionCatalog.itemSurfaces),
|
|
17499
|
+
transitionAfter: z24.enum(userDesignOptionCatalog.transitions),
|
|
17500
|
+
emphasis: z24.enum(userDesignOptionCatalog.emphases),
|
|
17501
|
+
sectionHeight: sectionHeightIntentSchema.optional(),
|
|
17502
|
+
heroLegibility: heroLegibilityStrategySchema.optional(),
|
|
17503
|
+
heroComposition: heroCompositionIntentSchema.optional(),
|
|
17504
|
+
heroTypographyScale: heroTypographyScaleIntentSchema.optional(),
|
|
17505
|
+
imageSurfaceTreatment: imageSurfaceTreatmentSchema.optional(),
|
|
17506
|
+
imageSurfaceMotion: imageSurfaceMotionSchema.optional(),
|
|
17507
|
+
testimonialCardTreatment: testimonialCardTreatmentSchema.optional(),
|
|
17508
|
+
tileTreatment: tileTreatmentSchema.optional(),
|
|
17509
|
+
eventListTreatment: eventListTreatmentSchema.optional(),
|
|
17510
|
+
eyebrowTreatment: eyebrowTreatmentSchema.optional()
|
|
17511
|
+
}).strict();
|
|
17512
|
+
var styleAuthoritySchema = z24.discriminatedUnion("kind", [
|
|
17513
|
+
z24.object({
|
|
17514
|
+
kind: z24.literal("theme-v2"),
|
|
17515
|
+
source: designResolutionPolicySchema,
|
|
17516
|
+
siteStyleId: z24.string().min(1).transform(asSiteStyleId),
|
|
17517
|
+
templateId: z24.string().min(1).transform(asDesignSystemTemplateId),
|
|
17518
|
+
templateVersion: z24.number().int().nonnegative(),
|
|
17519
|
+
resolverVersion: z24.number().int().nonnegative()
|
|
17520
|
+
}).strict(),
|
|
17521
|
+
z24.object({
|
|
17522
|
+
kind: z24.literal("legacy-raw"),
|
|
17523
|
+
reason: z24.enum(["pre-theme-v2", "manual-runtime-fields"])
|
|
17524
|
+
}).strict(),
|
|
17525
|
+
z24.object({
|
|
17526
|
+
kind: z24.literal("advanced-detached"),
|
|
17527
|
+
reason: z24.literal("detached-custom-runtime-fields")
|
|
17528
|
+
}).strict()
|
|
17529
|
+
]);
|
|
17530
|
+
var blockRuntimeStyleAuthoritySchema = z24.object({
|
|
17531
|
+
unit: z24.literal("block-runtime-fields"),
|
|
17532
|
+
blockId: z24.string().min(1).transform(asDesignBlockId),
|
|
17533
|
+
fields: nonEmptyRuntimeStyleFieldNamesSchema,
|
|
17534
|
+
authority: styleAuthoritySchema
|
|
17535
|
+
}).strict();
|
|
17536
|
+
var persistedPageDesignStateV1Schema = z24.object({
|
|
17537
|
+
schemaVersion: z24.literal(themeV2DesignStateSchemaVersion),
|
|
17538
|
+
siteStyleId: z24.string().min(1).transform(asSiteStyleId),
|
|
17539
|
+
templateId: z24.string().min(1).transform(asDesignSystemTemplateId),
|
|
17540
|
+
templateVersion: z24.number().int().nonnegative(),
|
|
17541
|
+
resolverVersion: z24.number().int().nonnegative(),
|
|
17542
|
+
rhythmPresetId: z24.string().min(1),
|
|
17543
|
+
blocks: z24.array(blockDesignPlanSchema),
|
|
17544
|
+
styleAuthorities: z24.array(blockRuntimeStyleAuthoritySchema)
|
|
17545
|
+
}).strict();
|
|
17546
|
+
|
|
17547
|
+
// ../theme-core/src/site-styles/runtimeCompiler.ts
|
|
17548
|
+
function defineDesignRuntimeRules(rules) {
|
|
17549
|
+
return rules;
|
|
17550
|
+
}
|
|
17551
|
+
function defineComponentRuntimeRules(rules) {
|
|
17552
|
+
return rules;
|
|
17553
|
+
}
|
|
17554
|
+
var defaultDesignRuntimeRules = defineDesignRuntimeRules({
|
|
17555
|
+
sectionSurfaces: {
|
|
17556
|
+
base: {},
|
|
17557
|
+
"muted-band": {
|
|
17558
|
+
background: {
|
|
17559
|
+
type: "color",
|
|
17560
|
+
color: "muted"
|
|
17561
|
+
}
|
|
17562
|
+
},
|
|
17563
|
+
"accent-band": {
|
|
17564
|
+
background: {
|
|
17565
|
+
type: "color",
|
|
17566
|
+
color: "primary"
|
|
17567
|
+
}
|
|
17568
|
+
},
|
|
17569
|
+
"brand-depth-band": {
|
|
17570
|
+
background: {
|
|
17571
|
+
type: "color",
|
|
17572
|
+
color: "primary-800"
|
|
17573
|
+
}
|
|
17574
|
+
},
|
|
17575
|
+
"hero-image": {
|
|
17576
|
+
background: {
|
|
17577
|
+
type: "image",
|
|
17578
|
+
opacity: 1,
|
|
17579
|
+
position: "center center",
|
|
17580
|
+
...uniformSectionForeground("text")
|
|
17581
|
+
}
|
|
17582
|
+
}
|
|
17583
|
+
},
|
|
17584
|
+
heroLegibility: {
|
|
17585
|
+
"scrim-gradient": {
|
|
17586
|
+
type: "gradient",
|
|
17587
|
+
gradient: "linear-gradient(180deg, rgba(255,255,255,0.38) 0%, rgba(244,241,234,0.62) 90%)",
|
|
17588
|
+
opacity: 1
|
|
17589
|
+
},
|
|
17590
|
+
"solid-panel": {
|
|
17591
|
+
type: "color",
|
|
17592
|
+
color: "surface",
|
|
17593
|
+
opacity: 0.88
|
|
17594
|
+
}
|
|
17595
|
+
},
|
|
17596
|
+
transitionClassName: (transition, fromSurface, toSurface) => transition === "none" ? null : `site-style-transition-${transition}-from-${fromSurface}-to-${toSurface}`
|
|
17597
|
+
});
|
|
17598
|
+
var defaultComponentRuntimeRules = defineComponentRuntimeRules({
|
|
17599
|
+
panelFrames: {
|
|
17600
|
+
inset: {
|
|
17601
|
+
spacing: "comfortable",
|
|
17602
|
+
rounded: "xl",
|
|
17603
|
+
raised: false,
|
|
17604
|
+
background: {
|
|
17605
|
+
type: "color",
|
|
17606
|
+
color: "surfaceAlt",
|
|
17607
|
+
textColor: "text"
|
|
17608
|
+
}
|
|
17609
|
+
},
|
|
17610
|
+
raised: {
|
|
17611
|
+
spacing: "comfortable",
|
|
17612
|
+
rounded: "xl",
|
|
17613
|
+
raised: true,
|
|
17614
|
+
background: {
|
|
17615
|
+
type: "color",
|
|
17616
|
+
color: "surfaceAlt",
|
|
17617
|
+
textColor: "text"
|
|
17618
|
+
}
|
|
17619
|
+
},
|
|
17620
|
+
editorial: {
|
|
17621
|
+
spacing: "medium",
|
|
17622
|
+
rounded: "xl",
|
|
17623
|
+
raised: false,
|
|
17624
|
+
background: {
|
|
17625
|
+
type: "color",
|
|
17626
|
+
color: "surface",
|
|
17627
|
+
textColor: "text"
|
|
17628
|
+
}
|
|
17629
|
+
}
|
|
17630
|
+
},
|
|
17631
|
+
flushFrames: {
|
|
17632
|
+
"media-panel": {
|
|
17633
|
+
fullWidth: true,
|
|
17634
|
+
spacing: "none",
|
|
17635
|
+
rounded: "none",
|
|
17636
|
+
raised: false
|
|
17637
|
+
}
|
|
17638
|
+
},
|
|
17639
|
+
itemSurfaces: {
|
|
17640
|
+
none: null,
|
|
17641
|
+
default: {
|
|
17642
|
+
spacing: "medium",
|
|
17643
|
+
rounded: "lg",
|
|
17644
|
+
raised: false
|
|
17645
|
+
},
|
|
17646
|
+
flat: {
|
|
17647
|
+
spacing: "medium",
|
|
17648
|
+
rounded: "lg",
|
|
17649
|
+
raised: false
|
|
17650
|
+
},
|
|
17651
|
+
outlined: {
|
|
17652
|
+
spacing: "medium",
|
|
17653
|
+
rounded: "lg",
|
|
17654
|
+
raised: false,
|
|
17655
|
+
border: {
|
|
17656
|
+
enabled: true,
|
|
17657
|
+
width: "1",
|
|
17658
|
+
colorToken: "border"
|
|
17659
|
+
}
|
|
17660
|
+
},
|
|
17661
|
+
raised: {
|
|
17662
|
+
spacing: "medium",
|
|
17663
|
+
rounded: "xl",
|
|
17664
|
+
raised: true
|
|
17665
|
+
},
|
|
17666
|
+
inset: {
|
|
17667
|
+
treatment: "soft-panel",
|
|
17668
|
+
spacing: "comfortable",
|
|
17669
|
+
rounded: "xl",
|
|
17670
|
+
raised: false,
|
|
17671
|
+
border: {
|
|
17672
|
+
enabled: false
|
|
17673
|
+
},
|
|
17674
|
+
background: {
|
|
17675
|
+
type: "color",
|
|
17676
|
+
color: "surfaceAlt",
|
|
17677
|
+
textColor: "text"
|
|
17678
|
+
}
|
|
17679
|
+
},
|
|
17680
|
+
editorial: {
|
|
17681
|
+
// Boxless open column with a short rule on top; the visual treatment
|
|
17682
|
+
// lives in blocks-static/card-treatments.css.
|
|
17683
|
+
treatment: "editorial-rule",
|
|
17684
|
+
spacing: "none",
|
|
17685
|
+
rounded: "none",
|
|
17686
|
+
raised: false,
|
|
17687
|
+
border: {
|
|
17688
|
+
enabled: false
|
|
17689
|
+
}
|
|
17690
|
+
},
|
|
17691
|
+
"color-blocked": {
|
|
17692
|
+
// Bold, flat colour-blocked cards. The per-card background colour cycle
|
|
17693
|
+
// (by position) and staggered offset live in
|
|
17694
|
+
// blocks-static/card-treatments.css; here we set the shared shape:
|
|
17695
|
+
// generous padding, large radius, no border, flat (no shadow).
|
|
17696
|
+
treatment: "color-blocked",
|
|
17697
|
+
spacing: "spacious",
|
|
17698
|
+
rounded: "2xl",
|
|
17699
|
+
raised: false,
|
|
17700
|
+
border: {
|
|
17701
|
+
enabled: false
|
|
17702
|
+
}
|
|
17703
|
+
}
|
|
17704
|
+
}
|
|
17705
|
+
});
|
|
17706
|
+
function uniformSectionForeground(token) {
|
|
17707
|
+
return {
|
|
17708
|
+
textColor: token,
|
|
17709
|
+
headingColor: token,
|
|
17710
|
+
linkColor: token,
|
|
17711
|
+
supportingColor: token
|
|
17712
|
+
};
|
|
17713
|
+
}
|
|
17714
|
+
|
|
16839
17715
|
// ../theme-core/src/site-styles/curatedSiteStyles.ts
|
|
16840
17716
|
var SOFT_EARTH_SITE_STYLE_ID_VALUE = "site-style:soft-earth";
|
|
16841
17717
|
var SOFT_EARTH_SITE_STYLE_ID = asSiteStyleId(SOFT_EARTH_SITE_STYLE_ID_VALUE);
|
|
@@ -16854,6 +17730,7 @@ var curatedSiteStyleIdValues = [
|
|
|
16854
17730
|
SOFT_EARTH_SITE_STYLE_ID_VALUE,
|
|
16855
17731
|
"site-style:bold-launch",
|
|
16856
17732
|
"site-style:south-west-twerk-school",
|
|
17733
|
+
"site-style:kirtan-ornate",
|
|
16857
17734
|
"site-style:original-joy"
|
|
16858
17735
|
];
|
|
16859
17736
|
var quietBudget = {
|
|
@@ -16880,6 +17757,50 @@ var expressiveBudget = {
|
|
|
16880
17757
|
mediaDensity: "high",
|
|
16881
17758
|
decorativeRepetition: "medium"
|
|
16882
17759
|
};
|
|
17760
|
+
var kirtanOrnateDesignRuntimeRules = defineDesignRuntimeRules({
|
|
17761
|
+
...defaultDesignRuntimeRules,
|
|
17762
|
+
defaultEyebrowTreatment: "accent",
|
|
17763
|
+
sectionSurfaces: {
|
|
17764
|
+
...defaultDesignRuntimeRules.sectionSurfaces,
|
|
17765
|
+
"muted-band": {
|
|
17766
|
+
background: {
|
|
17767
|
+
type: "color",
|
|
17768
|
+
color: "muted"
|
|
17769
|
+
},
|
|
17770
|
+
foreground: {
|
|
17771
|
+
textColor: "text",
|
|
17772
|
+
headingColor: "primary",
|
|
17773
|
+
linkColor: "primary",
|
|
17774
|
+
supportingColor: "text"
|
|
17775
|
+
}
|
|
17776
|
+
},
|
|
17777
|
+
"brand-depth-band": {
|
|
17778
|
+
background: {
|
|
17779
|
+
type: "color",
|
|
17780
|
+
color: "primary-800"
|
|
17781
|
+
},
|
|
17782
|
+
foreground: {
|
|
17783
|
+
textColor: "text",
|
|
17784
|
+
headingColor: "primary",
|
|
17785
|
+
linkColor: "primary",
|
|
17786
|
+
supportingColor: "text"
|
|
17787
|
+
}
|
|
17788
|
+
},
|
|
17789
|
+
"hero-image": {
|
|
17790
|
+
background: {
|
|
17791
|
+
type: "image",
|
|
17792
|
+
opacity: 1,
|
|
17793
|
+
position: "center center"
|
|
17794
|
+
},
|
|
17795
|
+
foreground: {
|
|
17796
|
+
textColor: "text",
|
|
17797
|
+
headingColor: "primary",
|
|
17798
|
+
linkColor: "primary",
|
|
17799
|
+
supportingColor: "text"
|
|
17800
|
+
}
|
|
17801
|
+
}
|
|
17802
|
+
}
|
|
17803
|
+
});
|
|
16883
17804
|
var expressiveUnderlineInputs = {
|
|
16884
17805
|
base: {
|
|
16885
17806
|
background: { type: "transparent" },
|
|
@@ -16917,6 +17838,43 @@ var expressiveUnderlineInputs = {
|
|
|
16917
17838
|
opacity: 0.6
|
|
16918
17839
|
}
|
|
16919
17840
|
};
|
|
17841
|
+
var ornateDarkInputs = {
|
|
17842
|
+
base: {
|
|
17843
|
+
background: { type: "solid", colorToken: "surfaceAlt" },
|
|
17844
|
+
textColorToken: "text",
|
|
17845
|
+
border: {
|
|
17846
|
+
widthClass: "border",
|
|
17847
|
+
colorToken: "primary/45",
|
|
17848
|
+
style: "all"
|
|
17849
|
+
},
|
|
17850
|
+
corners: "square",
|
|
17851
|
+
shadow: null,
|
|
17852
|
+
spacing: "medium",
|
|
17853
|
+
fontSize: "base"
|
|
17854
|
+
},
|
|
17855
|
+
label: {
|
|
17856
|
+
textColorToken: "primary",
|
|
17857
|
+
fontWeight: "semibold",
|
|
17858
|
+
fontSize: "xs",
|
|
17859
|
+
textTransform: "uppercase",
|
|
17860
|
+
letterSpacing: "wider",
|
|
17861
|
+
opacity: 1
|
|
17862
|
+
},
|
|
17863
|
+
focus: {
|
|
17864
|
+
ringColorToken: "primary/18",
|
|
17865
|
+
ringWidth: "2",
|
|
17866
|
+
borderColorToken: "primary/70"
|
|
17867
|
+
},
|
|
17868
|
+
error: {
|
|
17869
|
+
borderColorToken: "destructive",
|
|
17870
|
+
textColorToken: "destructive"
|
|
17871
|
+
},
|
|
17872
|
+
disabled: {
|
|
17873
|
+
backgroundColorToken: "muted",
|
|
17874
|
+
textColorToken: "mutedText",
|
|
17875
|
+
opacity: 0.6
|
|
17876
|
+
}
|
|
17877
|
+
};
|
|
16920
17878
|
function uniqueContentFrameKinds() {
|
|
16921
17879
|
const kinds = [
|
|
16922
17880
|
...new Set(
|
|
@@ -16974,6 +17932,7 @@ function defineCuratedSiteStyle(input) {
|
|
|
16974
17932
|
// clean/minimal styles default to none.
|
|
16975
17933
|
headingDecoration: input.headingDecoration ?? noHeadingDecoration,
|
|
16976
17934
|
...input.themeOverrides ? { themeOverrides: input.themeOverrides } : {},
|
|
17935
|
+
...input.designRuntimeRules ? { designRuntimeRules: input.designRuntimeRules } : {},
|
|
16977
17936
|
...input.defaultBlockVariants ? { defaultBlockVariants: input.defaultBlockVariants } : {},
|
|
16978
17937
|
recommendedAppearancePresetIds: (input.recommendedAppearancePresetIds ?? []).map(asAppearancePresetId),
|
|
16979
17938
|
defaultHeaderSelection: input.defaultHeaderSelection ? {
|
|
@@ -17924,6 +18883,80 @@ var curatedSiteStyles = [
|
|
|
17924
18883
|
paletteChoice("high-contrast-ink")
|
|
17925
18884
|
]
|
|
17926
18885
|
}),
|
|
18886
|
+
defineCuratedSiteStyle({
|
|
18887
|
+
id: "site-style:kirtan-ornate",
|
|
18888
|
+
name: "Kirtan Ornate",
|
|
18889
|
+
headingDecoration: { family: "short-center-rule", colorToken: "accent" },
|
|
18890
|
+
description: "Ceremonial, jewel-toned, and devotional: ornate frames, warm contrast, and composed rhythm for intimate music gatherings.",
|
|
18891
|
+
generationBrief: "Use a deep plum ground with pale gold as the main brand color, rose accent details, cream text, spacious split hero sections, devotional editorial headings, compact event lists, and framed conversion sections. The mood should feel soulful and ceremonial, not gothic or theatrical.",
|
|
18892
|
+
selectionKeywordRules: [
|
|
18893
|
+
{ kind: "word", value: "kirtan" },
|
|
18894
|
+
{ kind: "word", value: "chanting" },
|
|
18895
|
+
{ kind: "word", value: "ceremony" },
|
|
18896
|
+
{ kind: "word", value: "devotional" }
|
|
18897
|
+
],
|
|
18898
|
+
tokenRecipes: {
|
|
18899
|
+
palette: "brand-led",
|
|
18900
|
+
contrast: "strong",
|
|
18901
|
+
radius: "soft",
|
|
18902
|
+
shadow: "subtle",
|
|
18903
|
+
typography: "serif-editorial",
|
|
18904
|
+
spacing: "airy",
|
|
18905
|
+
motion: "subtle"
|
|
18906
|
+
},
|
|
18907
|
+
compositionBudget: expressiveBudget,
|
|
18908
|
+
typographyPresetChoices: [
|
|
18909
|
+
typographyChoice("typography-preset:kirtan-ornate"),
|
|
18910
|
+
typographyChoice("typography-preset:luxe-contrast"),
|
|
18911
|
+
typographyChoice("typography-preset:editorial-serif")
|
|
18912
|
+
],
|
|
18913
|
+
defaultTypographyPresetId: "typography-preset:kirtan-ornate",
|
|
18914
|
+
themeOverrides: {
|
|
18915
|
+
accordions: warmInsetAccordionSystem,
|
|
18916
|
+
cards: originalJoyCardSystem,
|
|
18917
|
+
testimonialQuote: serifDisplayQuote,
|
|
18918
|
+
bodyText: {
|
|
18919
|
+
intro: {
|
|
18920
|
+
paragraphSize: "editorial",
|
|
18921
|
+
headingSize: "editorial"
|
|
18922
|
+
}
|
|
18923
|
+
},
|
|
18924
|
+
inputs: ornateDarkInputs
|
|
18925
|
+
},
|
|
18926
|
+
designRuntimeRules: kirtanOrnateDesignRuntimeRules,
|
|
18927
|
+
recommendedAppearancePresetIds: [
|
|
18928
|
+
"hero-brand-scrim-fixed-frame",
|
|
18929
|
+
"media-text-quiet-story",
|
|
18930
|
+
"events-lined-panel",
|
|
18931
|
+
"schedule-details-brand-depth",
|
|
18932
|
+
"testimonials-statement-cards",
|
|
18933
|
+
"contact-form-panel"
|
|
18934
|
+
],
|
|
18935
|
+
defaultHeaderSelection: { layoutId: "floating", styleId: "minimal-surface" },
|
|
18936
|
+
recommendedHeaderLayoutChoices: [headerLayoutChoice("floating")],
|
|
18937
|
+
recommendedHeaderStyleChoicesByLayout: {
|
|
18938
|
+
floating: [
|
|
18939
|
+
headerStyleChoice("minimal-surface"),
|
|
18940
|
+
headerStyleChoice("split-glass"),
|
|
18941
|
+
headerStyleChoice("glass")
|
|
18942
|
+
]
|
|
18943
|
+
},
|
|
18944
|
+
recommendedHeaderLookIds: ["minimal-transparent"],
|
|
18945
|
+
recommendedFooterLookIds: [
|
|
18946
|
+
"site-footer-brand-two-band",
|
|
18947
|
+
"footer-muted-grounding"
|
|
18948
|
+
],
|
|
18949
|
+
buttonPersonalityChoices: [
|
|
18950
|
+
buttonChoice("ornate-ritual"),
|
|
18951
|
+
buttonChoice("joy-stamp"),
|
|
18952
|
+
buttonChoice("ink-stamp")
|
|
18953
|
+
],
|
|
18954
|
+
paletteVariantChoices: [
|
|
18955
|
+
paletteChoice("warm-dark-kirtan-gold"),
|
|
18956
|
+
paletteChoice("warm-dark-ember"),
|
|
18957
|
+
paletteChoice("brand-led-burgundy-gold")
|
|
18958
|
+
]
|
|
18959
|
+
}),
|
|
17927
18960
|
defineCuratedSiteStyle({
|
|
17928
18961
|
id: "site-style:original-joy",
|
|
17929
18962
|
name: "Original Joy",
|
|
@@ -18027,319 +19060,6 @@ var pageFlowPresets = [
|
|
|
18027
19060
|
}
|
|
18028
19061
|
];
|
|
18029
19062
|
|
|
18030
|
-
// ../theme-core/src/site-styles/designState.ts
|
|
18031
|
-
import { z as z24 } from "zod";
|
|
18032
|
-
var themeV2DesignStateSchemaVersion = 1;
|
|
18033
|
-
var designResolutionPolicySchema = z24.enum(["generated", "user", "admin", "sdk"]);
|
|
18034
|
-
var runtimeStyleFieldNameSchema = z24.enum(themeV2RuntimeStyleFieldNames);
|
|
18035
|
-
var nonEmptyRuntimeStyleFieldNamesSchema = z24.array(runtimeStyleFieldNameSchema).min(1).transform((fields3) => [
|
|
18036
|
-
fields3[0],
|
|
18037
|
-
...fields3.slice(1)
|
|
18038
|
-
]);
|
|
18039
|
-
var heroLegibilityStrategySchema = z24.enum([
|
|
18040
|
-
"none",
|
|
18041
|
-
"scrim-gradient",
|
|
18042
|
-
"solid-panel"
|
|
18043
|
-
]);
|
|
18044
|
-
var heroCompositionIntentSchema = z24.enum([
|
|
18045
|
-
"center",
|
|
18046
|
-
"bottom-left"
|
|
18047
|
-
]);
|
|
18048
|
-
var heroTypographyScaleIntentSchema = z24.enum([
|
|
18049
|
-
"quiet",
|
|
18050
|
-
"editorial",
|
|
18051
|
-
"display",
|
|
18052
|
-
"poster"
|
|
18053
|
-
]);
|
|
18054
|
-
var sectionHeightIntentSchema = z24.enum([
|
|
18055
|
-
"default",
|
|
18056
|
-
"banner",
|
|
18057
|
-
"hero",
|
|
18058
|
-
"immersive"
|
|
18059
|
-
]);
|
|
18060
|
-
var imageSurfaceTreatmentIntensitySchema = z24.enum(["soft", "balanced", "strong"]);
|
|
18061
|
-
var imageSurfaceMotionSchema = z24.enum(["static", "fixed-frame"]);
|
|
18062
|
-
var imageSurfaceTreatmentSchema = z24.discriminatedUnion("kind", [
|
|
18063
|
-
z24.object({ kind: z24.literal("none") }).strict(),
|
|
18064
|
-
z24.object({
|
|
18065
|
-
kind: z24.literal("brand-scrim"),
|
|
18066
|
-
token: z24.enum(["primary", "secondary", "accent"]),
|
|
18067
|
-
intensity: imageSurfaceTreatmentIntensitySchema.optional()
|
|
18068
|
-
}).strict(),
|
|
18069
|
-
z24.object({
|
|
18070
|
-
kind: z24.literal("brand-wash"),
|
|
18071
|
-
token: z24.enum(["primary", "secondary", "accent"]),
|
|
18072
|
-
intensity: imageSurfaceTreatmentIntensitySchema.optional()
|
|
18073
|
-
}).strict(),
|
|
18074
|
-
z24.object({
|
|
18075
|
-
kind: z24.literal("neutral-scrim"),
|
|
18076
|
-
intensity: imageSurfaceTreatmentIntensitySchema.optional()
|
|
18077
|
-
}).strict(),
|
|
18078
|
-
z24.object({
|
|
18079
|
-
kind: z24.literal("neutral-wash"),
|
|
18080
|
-
intensity: imageSurfaceTreatmentIntensitySchema.optional()
|
|
18081
|
-
}).strict(),
|
|
18082
|
-
z24.object({
|
|
18083
|
-
kind: z24.literal("solid-panel"),
|
|
18084
|
-
intensity: imageSurfaceTreatmentIntensitySchema.optional()
|
|
18085
|
-
}).strict()
|
|
18086
|
-
]);
|
|
18087
|
-
var testimonialCardTreatmentSchema = z24.enum(["default", "accent-quote"]);
|
|
18088
|
-
var tileTreatmentSchema = z24.enum(tileTreatmentValues);
|
|
18089
|
-
var eventListTreatmentSchema = z24.enum(eventListTreatmentValues);
|
|
18090
|
-
var eyebrowTreatmentSchema = z24.enum(eyebrowTreatmentValues);
|
|
18091
|
-
function uniqueNonEmpty(values) {
|
|
18092
|
-
const uniqueValues = [...new Set(values)];
|
|
18093
|
-
const firstValue = uniqueValues[0];
|
|
18094
|
-
if (!firstValue) {
|
|
18095
|
-
throw new Error("Expected at least one Theme V2 design state option.");
|
|
18096
|
-
}
|
|
18097
|
-
return [firstValue, ...uniqueValues.slice(1)];
|
|
18098
|
-
}
|
|
18099
|
-
var userPanelTreatments = uniqueNonEmpty(
|
|
18100
|
-
userDesignOptionCatalog.contentFrames.filter((frame) => frame.kind === "panel").map((frame) => frame.treatment)
|
|
18101
|
-
);
|
|
18102
|
-
var userFlushTreatments = uniqueNonEmpty(
|
|
18103
|
-
userDesignOptionCatalog.contentFrames.filter((frame) => frame.kind === "flush-panel").map((frame) => frame.treatment)
|
|
18104
|
-
);
|
|
18105
|
-
var userFlushBleeds = uniqueNonEmpty(
|
|
18106
|
-
userDesignOptionCatalog.contentFrames.filter((frame) => frame.kind === "flush-panel").map((frame) => frame.bleed)
|
|
18107
|
-
);
|
|
18108
|
-
var contentFrameIntentSchema = z24.discriminatedUnion("kind", [
|
|
18109
|
-
z24.object({ kind: z24.literal("plain") }).strict(),
|
|
18110
|
-
z24.object({
|
|
18111
|
-
kind: z24.literal("panel"),
|
|
18112
|
-
treatment: z24.enum(userPanelTreatments)
|
|
18113
|
-
}).strict(),
|
|
18114
|
-
z24.object({
|
|
18115
|
-
kind: z24.literal("flush-panel"),
|
|
18116
|
-
treatment: z24.enum(userFlushTreatments),
|
|
18117
|
-
bleed: z24.enum(userFlushBleeds)
|
|
18118
|
-
}).strict()
|
|
18119
|
-
]);
|
|
18120
|
-
var blockDesignPlanSchema = z24.object({
|
|
18121
|
-
blockId: z24.string().min(1).transform(asDesignBlockId),
|
|
18122
|
-
blockKind: z24.string().min(1),
|
|
18123
|
-
purpose: z24.string().min(1),
|
|
18124
|
-
sectionSurface: z24.enum(userDesignOptionCatalog.sectionSurfaces),
|
|
18125
|
-
contentFrame: contentFrameIntentSchema,
|
|
18126
|
-
itemSurface: z24.enum(userDesignOptionCatalog.itemSurfaces),
|
|
18127
|
-
transitionAfter: z24.enum(userDesignOptionCatalog.transitions),
|
|
18128
|
-
emphasis: z24.enum(userDesignOptionCatalog.emphases),
|
|
18129
|
-
sectionHeight: sectionHeightIntentSchema.optional(),
|
|
18130
|
-
heroLegibility: heroLegibilityStrategySchema.optional(),
|
|
18131
|
-
heroComposition: heroCompositionIntentSchema.optional(),
|
|
18132
|
-
heroTypographyScale: heroTypographyScaleIntentSchema.optional(),
|
|
18133
|
-
imageSurfaceTreatment: imageSurfaceTreatmentSchema.optional(),
|
|
18134
|
-
imageSurfaceMotion: imageSurfaceMotionSchema.optional(),
|
|
18135
|
-
testimonialCardTreatment: testimonialCardTreatmentSchema.optional(),
|
|
18136
|
-
tileTreatment: tileTreatmentSchema.optional(),
|
|
18137
|
-
eventListTreatment: eventListTreatmentSchema.optional(),
|
|
18138
|
-
eyebrowTreatment: eyebrowTreatmentSchema.optional()
|
|
18139
|
-
}).strict();
|
|
18140
|
-
var styleAuthoritySchema = z24.discriminatedUnion("kind", [
|
|
18141
|
-
z24.object({
|
|
18142
|
-
kind: z24.literal("theme-v2"),
|
|
18143
|
-
source: designResolutionPolicySchema,
|
|
18144
|
-
siteStyleId: z24.string().min(1).transform(asSiteStyleId),
|
|
18145
|
-
templateId: z24.string().min(1).transform(asDesignSystemTemplateId),
|
|
18146
|
-
templateVersion: z24.number().int().nonnegative(),
|
|
18147
|
-
resolverVersion: z24.number().int().nonnegative()
|
|
18148
|
-
}).strict(),
|
|
18149
|
-
z24.object({
|
|
18150
|
-
kind: z24.literal("legacy-raw"),
|
|
18151
|
-
reason: z24.enum(["pre-theme-v2", "manual-runtime-fields"])
|
|
18152
|
-
}).strict(),
|
|
18153
|
-
z24.object({
|
|
18154
|
-
kind: z24.literal("advanced-detached"),
|
|
18155
|
-
reason: z24.literal("detached-custom-runtime-fields")
|
|
18156
|
-
}).strict()
|
|
18157
|
-
]);
|
|
18158
|
-
var blockRuntimeStyleAuthoritySchema = z24.object({
|
|
18159
|
-
unit: z24.literal("block-runtime-fields"),
|
|
18160
|
-
blockId: z24.string().min(1).transform(asDesignBlockId),
|
|
18161
|
-
fields: nonEmptyRuntimeStyleFieldNamesSchema,
|
|
18162
|
-
authority: styleAuthoritySchema
|
|
18163
|
-
}).strict();
|
|
18164
|
-
var persistedPageDesignStateV1Schema = z24.object({
|
|
18165
|
-
schemaVersion: z24.literal(themeV2DesignStateSchemaVersion),
|
|
18166
|
-
siteStyleId: z24.string().min(1).transform(asSiteStyleId),
|
|
18167
|
-
templateId: z24.string().min(1).transform(asDesignSystemTemplateId),
|
|
18168
|
-
templateVersion: z24.number().int().nonnegative(),
|
|
18169
|
-
resolverVersion: z24.number().int().nonnegative(),
|
|
18170
|
-
rhythmPresetId: z24.string().min(1),
|
|
18171
|
-
blocks: z24.array(blockDesignPlanSchema),
|
|
18172
|
-
styleAuthorities: z24.array(blockRuntimeStyleAuthoritySchema)
|
|
18173
|
-
}).strict();
|
|
18174
|
-
|
|
18175
|
-
// ../theme-core/src/site-styles/runtimeCompiler.ts
|
|
18176
|
-
function defineDesignRuntimeRules(rules) {
|
|
18177
|
-
return rules;
|
|
18178
|
-
}
|
|
18179
|
-
function defineComponentRuntimeRules(rules) {
|
|
18180
|
-
return rules;
|
|
18181
|
-
}
|
|
18182
|
-
var defaultDesignRuntimeRules = defineDesignRuntimeRules({
|
|
18183
|
-
sectionSurfaces: {
|
|
18184
|
-
base: {},
|
|
18185
|
-
"muted-band": {
|
|
18186
|
-
background: {
|
|
18187
|
-
type: "color",
|
|
18188
|
-
color: "muted"
|
|
18189
|
-
}
|
|
18190
|
-
},
|
|
18191
|
-
"accent-band": {
|
|
18192
|
-
background: {
|
|
18193
|
-
type: "color",
|
|
18194
|
-
color: "primary"
|
|
18195
|
-
}
|
|
18196
|
-
},
|
|
18197
|
-
"brand-depth-band": {
|
|
18198
|
-
background: {
|
|
18199
|
-
type: "color",
|
|
18200
|
-
color: "primary-800"
|
|
18201
|
-
}
|
|
18202
|
-
},
|
|
18203
|
-
"hero-image": {
|
|
18204
|
-
background: {
|
|
18205
|
-
type: "image",
|
|
18206
|
-
opacity: 1,
|
|
18207
|
-
position: "center center",
|
|
18208
|
-
...uniformSectionForeground("text")
|
|
18209
|
-
}
|
|
18210
|
-
}
|
|
18211
|
-
},
|
|
18212
|
-
heroLegibility: {
|
|
18213
|
-
"scrim-gradient": {
|
|
18214
|
-
type: "gradient",
|
|
18215
|
-
gradient: "linear-gradient(180deg, rgba(255,255,255,0.38) 0%, rgba(244,241,234,0.62) 90%)",
|
|
18216
|
-
opacity: 1
|
|
18217
|
-
},
|
|
18218
|
-
"solid-panel": {
|
|
18219
|
-
type: "color",
|
|
18220
|
-
color: "surface",
|
|
18221
|
-
opacity: 0.88
|
|
18222
|
-
}
|
|
18223
|
-
},
|
|
18224
|
-
transitionClassName: (transition, fromSurface, toSurface) => transition === "none" ? null : `site-style-transition-${transition}-from-${fromSurface}-to-${toSurface}`
|
|
18225
|
-
});
|
|
18226
|
-
var defaultComponentRuntimeRules = defineComponentRuntimeRules({
|
|
18227
|
-
panelFrames: {
|
|
18228
|
-
inset: {
|
|
18229
|
-
spacing: "comfortable",
|
|
18230
|
-
rounded: "xl",
|
|
18231
|
-
raised: false,
|
|
18232
|
-
background: {
|
|
18233
|
-
type: "color",
|
|
18234
|
-
color: "surfaceAlt",
|
|
18235
|
-
textColor: "text"
|
|
18236
|
-
}
|
|
18237
|
-
},
|
|
18238
|
-
raised: {
|
|
18239
|
-
spacing: "comfortable",
|
|
18240
|
-
rounded: "xl",
|
|
18241
|
-
raised: true,
|
|
18242
|
-
background: {
|
|
18243
|
-
type: "color",
|
|
18244
|
-
color: "surfaceAlt",
|
|
18245
|
-
textColor: "text"
|
|
18246
|
-
}
|
|
18247
|
-
},
|
|
18248
|
-
editorial: {
|
|
18249
|
-
spacing: "medium",
|
|
18250
|
-
rounded: "xl",
|
|
18251
|
-
raised: false,
|
|
18252
|
-
background: {
|
|
18253
|
-
type: "color",
|
|
18254
|
-
color: "surface",
|
|
18255
|
-
textColor: "text"
|
|
18256
|
-
}
|
|
18257
|
-
}
|
|
18258
|
-
},
|
|
18259
|
-
flushFrames: {
|
|
18260
|
-
"media-panel": {
|
|
18261
|
-
fullWidth: true,
|
|
18262
|
-
spacing: "none",
|
|
18263
|
-
rounded: "none",
|
|
18264
|
-
raised: false
|
|
18265
|
-
}
|
|
18266
|
-
},
|
|
18267
|
-
itemSurfaces: {
|
|
18268
|
-
none: null,
|
|
18269
|
-
default: {
|
|
18270
|
-
spacing: "medium",
|
|
18271
|
-
rounded: "lg",
|
|
18272
|
-
raised: false
|
|
18273
|
-
},
|
|
18274
|
-
flat: {
|
|
18275
|
-
spacing: "medium",
|
|
18276
|
-
rounded: "lg",
|
|
18277
|
-
raised: false
|
|
18278
|
-
},
|
|
18279
|
-
outlined: {
|
|
18280
|
-
spacing: "medium",
|
|
18281
|
-
rounded: "lg",
|
|
18282
|
-
raised: false,
|
|
18283
|
-
border: {
|
|
18284
|
-
enabled: true,
|
|
18285
|
-
width: "1",
|
|
18286
|
-
colorToken: "border"
|
|
18287
|
-
}
|
|
18288
|
-
},
|
|
18289
|
-
raised: {
|
|
18290
|
-
spacing: "medium",
|
|
18291
|
-
rounded: "xl",
|
|
18292
|
-
raised: true
|
|
18293
|
-
},
|
|
18294
|
-
inset: {
|
|
18295
|
-
treatment: "soft-panel",
|
|
18296
|
-
spacing: "comfortable",
|
|
18297
|
-
rounded: "xl",
|
|
18298
|
-
raised: false,
|
|
18299
|
-
border: {
|
|
18300
|
-
enabled: false
|
|
18301
|
-
},
|
|
18302
|
-
background: {
|
|
18303
|
-
type: "color",
|
|
18304
|
-
color: "surfaceAlt",
|
|
18305
|
-
textColor: "text"
|
|
18306
|
-
}
|
|
18307
|
-
},
|
|
18308
|
-
editorial: {
|
|
18309
|
-
// Boxless open column with a short rule on top; the visual treatment
|
|
18310
|
-
// lives in blocks-static/card-treatments.css.
|
|
18311
|
-
treatment: "editorial-rule",
|
|
18312
|
-
spacing: "none",
|
|
18313
|
-
rounded: "none",
|
|
18314
|
-
raised: false,
|
|
18315
|
-
border: {
|
|
18316
|
-
enabled: false
|
|
18317
|
-
}
|
|
18318
|
-
},
|
|
18319
|
-
"color-blocked": {
|
|
18320
|
-
// Bold, flat colour-blocked cards. The per-card background colour cycle
|
|
18321
|
-
// (by position) and staggered offset live in
|
|
18322
|
-
// blocks-static/card-treatments.css; here we set the shared shape:
|
|
18323
|
-
// generous padding, large radius, no border, flat (no shadow).
|
|
18324
|
-
treatment: "color-blocked",
|
|
18325
|
-
spacing: "spacious",
|
|
18326
|
-
rounded: "2xl",
|
|
18327
|
-
raised: false,
|
|
18328
|
-
border: {
|
|
18329
|
-
enabled: false
|
|
18330
|
-
}
|
|
18331
|
-
}
|
|
18332
|
-
}
|
|
18333
|
-
});
|
|
18334
|
-
function uniformSectionForeground(token) {
|
|
18335
|
-
return {
|
|
18336
|
-
textColor: token,
|
|
18337
|
-
headingColor: token,
|
|
18338
|
-
linkColor: token,
|
|
18339
|
-
supportingColor: token
|
|
18340
|
-
};
|
|
18341
|
-
}
|
|
18342
|
-
|
|
18343
19063
|
// ../theme-core/src/site-styles/generatedSchemas.ts
|
|
18344
19064
|
import { z as z25 } from "zod";
|
|
18345
19065
|
function uniqueNonEmpty2(values) {
|
|
@@ -19151,6 +19871,31 @@ function cardStylesField(options = {}) {
|
|
|
19151
19871
|
return createBoxStylesFieldWithDepth("card", options);
|
|
19152
19872
|
}
|
|
19153
19873
|
|
|
19874
|
+
// ../blocks/src/system/fields/imageShape.ts
|
|
19875
|
+
var standardImageShapeOptions = [
|
|
19876
|
+
{ value: "default", label: "Default" },
|
|
19877
|
+
{ value: "square", label: "Square corners" },
|
|
19878
|
+
{ value: "rounded", label: "Rounded corners" },
|
|
19879
|
+
{ value: "circle", label: "Circle" },
|
|
19880
|
+
{ value: "arch", label: "Arch" }
|
|
19881
|
+
];
|
|
19882
|
+
function createImageShapeField(options = {}) {
|
|
19883
|
+
return {
|
|
19884
|
+
id: options.id ?? "imageShape",
|
|
19885
|
+
type: "select",
|
|
19886
|
+
label: options.label ?? "Image shape",
|
|
19887
|
+
...options.description ? { description: options.description } : {},
|
|
19888
|
+
required: false,
|
|
19889
|
+
defaultValue: options.defaultValue ?? "default",
|
|
19890
|
+
multiple: false,
|
|
19891
|
+
options: [...standardImageShapeOptions],
|
|
19892
|
+
ui: {
|
|
19893
|
+
intent: options.uiIntent ?? "display",
|
|
19894
|
+
...options.visibleWhen ? { visibleWhen: options.visibleWhen } : {}
|
|
19895
|
+
}
|
|
19896
|
+
};
|
|
19897
|
+
}
|
|
19898
|
+
|
|
19154
19899
|
// ../blocks/src/utils/env.ts
|
|
19155
19900
|
function isDevEnvironment() {
|
|
19156
19901
|
try {
|
|
@@ -19965,7 +20710,7 @@ function buildFooterNavAll(common) {
|
|
|
19965
20710
|
return stack(
|
|
19966
20711
|
{ className: common.className, gap: common.gap, align: "stretch" },
|
|
19967
20712
|
[item],
|
|
19968
|
-
|
|
20713
|
+
whenCollectionHasItems(collectionPath)
|
|
19969
20714
|
);
|
|
19970
20715
|
}
|
|
19971
20716
|
function buildFooterNavLinksOnly(common) {
|
|
@@ -19998,7 +20743,7 @@ function buildFooterNavLinksOnly(common) {
|
|
|
19998
20743
|
return stack(
|
|
19999
20744
|
{ className: common.className, gap: common.gap, align: "stretch" },
|
|
20000
20745
|
[item],
|
|
20001
|
-
|
|
20746
|
+
whenCollectionHasItems(collectionPath)
|
|
20002
20747
|
);
|
|
20003
20748
|
}
|
|
20004
20749
|
function buildFooterNavFlatten(common) {
|
|
@@ -20047,9 +20792,20 @@ function buildFooterNavFlatten(common) {
|
|
|
20047
20792
|
return stack(
|
|
20048
20793
|
{ className: common.className, gap: common.gap, align: "stretch" },
|
|
20049
20794
|
[item],
|
|
20050
|
-
|
|
20795
|
+
whenCollectionHasItems(collectionPath)
|
|
20051
20796
|
);
|
|
20052
20797
|
}
|
|
20798
|
+
var whenCollectionHasItems = (collectionPath) => (node) => ({
|
|
20799
|
+
...node,
|
|
20800
|
+
$when: {
|
|
20801
|
+
when: {
|
|
20802
|
+
from: collectionPath,
|
|
20803
|
+
transforms: [{ id: "array.length" }]
|
|
20804
|
+
},
|
|
20805
|
+
equals: 0,
|
|
20806
|
+
not: true
|
|
20807
|
+
}
|
|
20808
|
+
});
|
|
20053
20809
|
function footerNav(opts) {
|
|
20054
20810
|
const mode = opts?.mode ?? "all";
|
|
20055
20811
|
const collectionPath = opts?.collectionPath ?? "footerMenu.items";
|
|
@@ -22632,8 +23388,23 @@ function fragmentsToRepeaterField(id, label, fragments, options = {}) {
|
|
|
22632
23388
|
var heroLayoutControlsFragment = defineFragment({
|
|
22633
23389
|
id: "heroLayoutControls",
|
|
22634
23390
|
title: "Hero Layout",
|
|
22635
|
-
description: "
|
|
23391
|
+
description: "Title scale, alignment, and content width controls for hero layouts.",
|
|
22636
23392
|
fields: [
|
|
23393
|
+
{
|
|
23394
|
+
id: "titleSize",
|
|
23395
|
+
type: "select",
|
|
23396
|
+
label: "Title size",
|
|
23397
|
+
description: "Adjust the visual scale of the hero title.",
|
|
23398
|
+
required: false,
|
|
23399
|
+
ui: { intent: "display" },
|
|
23400
|
+
options: [
|
|
23401
|
+
{ value: "auto", label: "Auto" },
|
|
23402
|
+
{ value: "quiet", label: "Normal" },
|
|
23403
|
+
{ value: "editorial", label: "Large" },
|
|
23404
|
+
{ value: "display", label: "Huge" },
|
|
23405
|
+
{ value: "poster", label: "Poster" }
|
|
23406
|
+
]
|
|
23407
|
+
},
|
|
22637
23408
|
{
|
|
22638
23409
|
id: "contentAlignment",
|
|
22639
23410
|
type: "select",
|
|
@@ -23428,7 +24199,18 @@ function heroSplitImagePane() {
|
|
|
23428
24199
|
return stack(
|
|
23429
24200
|
{
|
|
23430
24201
|
gap: "none",
|
|
23431
|
-
className:
|
|
24202
|
+
className: {
|
|
24203
|
+
$bind: {
|
|
24204
|
+
from: "content.imageShape",
|
|
24205
|
+
transforms: [
|
|
24206
|
+
{
|
|
24207
|
+
id: "ui.imageShapeClassName",
|
|
24208
|
+
options: { baseClass: "rb-relative rb-overflow-hidden rb-rounded-3xl" }
|
|
24209
|
+
}
|
|
24210
|
+
],
|
|
24211
|
+
fallback: "rb-relative rb-overflow-hidden rb-rounded-3xl"
|
|
24212
|
+
}
|
|
24213
|
+
},
|
|
23432
24214
|
style: {
|
|
23433
24215
|
minHeight: "clamp(18rem, 36vw, 34rem)"
|
|
23434
24216
|
}
|
|
@@ -23546,6 +24328,12 @@ var heroConfig = {
|
|
|
23546
24328
|
label: "Content card",
|
|
23547
24329
|
renderInHeader: true,
|
|
23548
24330
|
intent: "style"
|
|
24331
|
+
}),
|
|
24332
|
+
createImageShapeField({
|
|
24333
|
+
id: "imageShape",
|
|
24334
|
+
label: "Image shape",
|
|
24335
|
+
defaultValue: "default",
|
|
24336
|
+
uiIntent: "display"
|
|
23549
24337
|
})
|
|
23550
24338
|
],
|
|
23551
24339
|
layout: classicLayout,
|
|
@@ -23560,6 +24348,15 @@ var heroConfig = {
|
|
|
23560
24348
|
description: "Hero section with headline, subtitle, and repeatable CTAs.",
|
|
23561
24349
|
tags: ["header", "banner", "landing", "introduction", "welcome", "splash", "headline"],
|
|
23562
24350
|
icon: "Sparkles",
|
|
24351
|
+
previewCustomize: {
|
|
24352
|
+
quickFieldPriority: [
|
|
24353
|
+
"titleSize",
|
|
24354
|
+
"contentAlignment",
|
|
24355
|
+
"contentMaxWidth",
|
|
24356
|
+
"verticalAlignment",
|
|
24357
|
+
"imageShape"
|
|
24358
|
+
]
|
|
24359
|
+
},
|
|
23563
24360
|
styleTokens: {
|
|
23564
24361
|
typography: "display",
|
|
23565
24362
|
spacing: "xl"
|
|
@@ -23576,7 +24373,8 @@ var standardAspectRatioOptions = [
|
|
|
23576
24373
|
{ value: "16/9", label: "16:9 (Landscape)" },
|
|
23577
24374
|
{ value: "4/3", label: "4:3 (Standard)" },
|
|
23578
24375
|
{ value: "1/1", label: "1:1 (Square)" },
|
|
23579
|
-
{ value: "3/4", label: "3:4 (Portrait)" }
|
|
24376
|
+
{ value: "3/4", label: "3:4 (Portrait)" },
|
|
24377
|
+
{ value: "9/16", label: "9:16 (Tall portrait)" }
|
|
23580
24378
|
];
|
|
23581
24379
|
function createAspectRatioField(options = {}) {
|
|
23582
24380
|
return {
|
|
@@ -24796,6 +25594,258 @@ var formBlockDefinition = {
|
|
|
24796
25594
|
runtime: formBlockRuntime
|
|
24797
25595
|
};
|
|
24798
25596
|
|
|
25597
|
+
// ../blocks/src/system/blocks/contact-newsletter.ts
|
|
25598
|
+
var contactNewsletterLayout = styledSection({
|
|
25599
|
+
children: sectionContainer([
|
|
25600
|
+
el(
|
|
25601
|
+
"div",
|
|
25602
|
+
{ className: "contact-newsletter-grid" },
|
|
25603
|
+
[
|
|
25604
|
+
el(
|
|
25605
|
+
"div",
|
|
25606
|
+
{ className: "contact-newsletter-column contact-newsletter-contact" },
|
|
25607
|
+
[
|
|
25608
|
+
el(
|
|
25609
|
+
"div",
|
|
25610
|
+
{ className: "contact-newsletter-copy" },
|
|
25611
|
+
[
|
|
25612
|
+
text(
|
|
25613
|
+
{
|
|
25614
|
+
as: "h2",
|
|
25615
|
+
className: "form-copy-title"
|
|
25616
|
+
},
|
|
25617
|
+
when("contactTitle"),
|
|
25618
|
+
bind("contactTitle")
|
|
25619
|
+
),
|
|
25620
|
+
richText(
|
|
25621
|
+
{
|
|
25622
|
+
className: "form-copy-intro rb-prose rb-max-w-none"
|
|
25623
|
+
},
|
|
25624
|
+
when("contactIntro"),
|
|
25625
|
+
bind("contactIntro")
|
|
25626
|
+
)
|
|
25627
|
+
]
|
|
25628
|
+
),
|
|
25629
|
+
el(
|
|
25630
|
+
"form",
|
|
25631
|
+
withApiBindings({
|
|
25632
|
+
spamProtectionEnabled: { $bind: { from: "$root.spamProtectionEnabled" } },
|
|
25633
|
+
submitLabel: { $bind: { from: "contactSubmitLabel" } },
|
|
25634
|
+
successMessage: { $bind: { from: "contactSuccessMessage" } }
|
|
25635
|
+
}),
|
|
25636
|
+
[],
|
|
25637
|
+
bind("data.form")
|
|
25638
|
+
)
|
|
25639
|
+
]
|
|
25640
|
+
),
|
|
25641
|
+
el(
|
|
25642
|
+
"div",
|
|
25643
|
+
{ className: "contact-newsletter-column contact-newsletter-info contact-newsletter-newsletter" },
|
|
25644
|
+
[
|
|
25645
|
+
el(
|
|
25646
|
+
"div",
|
|
25647
|
+
{ className: "contact-newsletter-copy" },
|
|
25648
|
+
[
|
|
25649
|
+
text(
|
|
25650
|
+
{
|
|
25651
|
+
as: "h2",
|
|
25652
|
+
className: "newsletter-copy-title"
|
|
25653
|
+
},
|
|
25654
|
+
when("newsletterTitle"),
|
|
25655
|
+
bind("newsletterTitle")
|
|
25656
|
+
),
|
|
25657
|
+
richText(
|
|
25658
|
+
{
|
|
25659
|
+
className: "newsletter-copy-subtitle rb-prose rb-max-w-none"
|
|
25660
|
+
},
|
|
25661
|
+
when("newsletterSubtitle"),
|
|
25662
|
+
bind("newsletterSubtitle")
|
|
25663
|
+
)
|
|
25664
|
+
]
|
|
25665
|
+
),
|
|
25666
|
+
el(
|
|
25667
|
+
"newsletter-form",
|
|
25668
|
+
withApiBindings({
|
|
25669
|
+
listId: { $bind: { from: "listId" } },
|
|
25670
|
+
preset: { $bind: { from: "preset" } },
|
|
25671
|
+
includePhone: { $bind: { from: "includePhone" } },
|
|
25672
|
+
buttonLabel: { $bind: { from: "newsletterButtonLabel" } },
|
|
25673
|
+
successMessage: { $bind: { from: "newsletterSuccessMessage" } },
|
|
25674
|
+
privacyNote: { $bind: { from: "newsletterPrivacyNote" } },
|
|
25675
|
+
tags: { $bind: { from: "newsletterTags" } },
|
|
25676
|
+
spamProtectionEnabled: { $bind: { from: "$root.spamProtectionEnabled" } }
|
|
25677
|
+
}),
|
|
25678
|
+
[]
|
|
25679
|
+
)
|
|
25680
|
+
]
|
|
25681
|
+
)
|
|
25682
|
+
]
|
|
25683
|
+
)
|
|
25684
|
+
], {
|
|
25685
|
+
className: "contact-newsletter-container"
|
|
25686
|
+
}),
|
|
25687
|
+
baseClass: "",
|
|
25688
|
+
spacing: "medium",
|
|
25689
|
+
background: "surface"
|
|
25690
|
+
});
|
|
25691
|
+
var contactNewsletterManifest = createBlockManifest({
|
|
25692
|
+
id: "block.contact-newsletter",
|
|
25693
|
+
title: "Contact + Newsletter",
|
|
25694
|
+
titleSource: "contactTitle",
|
|
25695
|
+
description: "Two-column newsletter signup and contact form section.",
|
|
25696
|
+
category: "interactive",
|
|
25697
|
+
layout: contactNewsletterLayout,
|
|
25698
|
+
defaultVariant: "default",
|
|
25699
|
+
variants: {
|
|
25700
|
+
default: contactNewsletterLayout
|
|
25701
|
+
},
|
|
25702
|
+
variantOptions: {
|
|
25703
|
+
default: {
|
|
25704
|
+
label: "Two column",
|
|
25705
|
+
description: "Newsletter and contact form side by side.",
|
|
25706
|
+
icon: "Columns2"
|
|
25707
|
+
}
|
|
25708
|
+
},
|
|
25709
|
+
additionalFields: [
|
|
25710
|
+
{
|
|
25711
|
+
id: "newsletterTitle",
|
|
25712
|
+
type: "text",
|
|
25713
|
+
label: "Newsletter title",
|
|
25714
|
+
defaultValue: "Stay connected"
|
|
25715
|
+
},
|
|
25716
|
+
{
|
|
25717
|
+
id: "newsletterSubtitle",
|
|
25718
|
+
type: "richText",
|
|
25719
|
+
label: "Newsletter intro"
|
|
25720
|
+
},
|
|
25721
|
+
{
|
|
25722
|
+
id: "listId",
|
|
25723
|
+
type: "reference",
|
|
25724
|
+
label: "Newsletter list",
|
|
25725
|
+
description: "Select the list new subscribers should be added to.",
|
|
25726
|
+
required: true,
|
|
25727
|
+
referenceKind: "newsletterList",
|
|
25728
|
+
allowManualEntry: false,
|
|
25729
|
+
ui: { intent: "behavior" }
|
|
25730
|
+
},
|
|
25731
|
+
{
|
|
25732
|
+
id: "preset",
|
|
25733
|
+
type: "select",
|
|
25734
|
+
label: "Newsletter fields",
|
|
25735
|
+
defaultValue: "emailOnly",
|
|
25736
|
+
ui: { intent: "display" },
|
|
25737
|
+
options: [
|
|
25738
|
+
{ value: "emailOnly", label: "Email only" },
|
|
25739
|
+
{ value: "emailName", label: "Email + Name" },
|
|
25740
|
+
{ value: "emailFirstLast", label: "Email + First/Last Name" },
|
|
25741
|
+
{ value: "emailNameCompany", label: "Email + Name + Company (B2B)" }
|
|
25742
|
+
]
|
|
25743
|
+
},
|
|
25744
|
+
{
|
|
25745
|
+
id: "includePhone",
|
|
25746
|
+
type: "boolean",
|
|
25747
|
+
label: "Include phone field",
|
|
25748
|
+
defaultValue: false,
|
|
25749
|
+
ui: { intent: "display" }
|
|
25750
|
+
},
|
|
25751
|
+
{
|
|
25752
|
+
id: "newsletterButtonLabel",
|
|
25753
|
+
type: "text",
|
|
25754
|
+
label: "Newsletter button label",
|
|
25755
|
+
defaultValue: "Subscribe",
|
|
25756
|
+
ui: { intent: "display" }
|
|
25757
|
+
},
|
|
25758
|
+
{
|
|
25759
|
+
id: "newsletterSuccessMessage",
|
|
25760
|
+
type: "text",
|
|
25761
|
+
label: "Newsletter success message",
|
|
25762
|
+
defaultValue: "Thanks for subscribing!",
|
|
25763
|
+
ui: { intent: "behavior" }
|
|
25764
|
+
},
|
|
25765
|
+
{
|
|
25766
|
+
id: "newsletterPrivacyNote",
|
|
25767
|
+
type: "text",
|
|
25768
|
+
label: "Privacy note",
|
|
25769
|
+
ui: { intent: "display" }
|
|
25770
|
+
},
|
|
25771
|
+
{
|
|
25772
|
+
id: "newsletterTags",
|
|
25773
|
+
type: "text",
|
|
25774
|
+
label: "Newsletter tags",
|
|
25775
|
+
description: "Optional tags to apply on subscribe, separated by comma or semicolon.",
|
|
25776
|
+
ui: { intent: "behavior" }
|
|
25777
|
+
},
|
|
25778
|
+
{
|
|
25779
|
+
id: "contactTitle",
|
|
25780
|
+
type: "text",
|
|
25781
|
+
label: "Contact title",
|
|
25782
|
+
defaultValue: "Get in touch"
|
|
25783
|
+
},
|
|
25784
|
+
{
|
|
25785
|
+
id: "contactIntro",
|
|
25786
|
+
type: "richText",
|
|
25787
|
+
label: "Contact intro"
|
|
25788
|
+
},
|
|
25789
|
+
{
|
|
25790
|
+
id: "formSlug",
|
|
25791
|
+
type: "reference",
|
|
25792
|
+
label: "Contact form",
|
|
25793
|
+
description: "Pick a saved form to render.",
|
|
25794
|
+
required: true,
|
|
25795
|
+
referenceKind: "form",
|
|
25796
|
+
allowManualEntry: false,
|
|
25797
|
+
ui: { intent: "behavior" }
|
|
25798
|
+
},
|
|
25799
|
+
{
|
|
25800
|
+
id: "contactSubmitLabel",
|
|
25801
|
+
type: "text",
|
|
25802
|
+
label: "Contact button label",
|
|
25803
|
+
defaultValue: "Send message",
|
|
25804
|
+
ui: { intent: "display" }
|
|
25805
|
+
},
|
|
25806
|
+
{
|
|
25807
|
+
id: "contactSuccessMessage",
|
|
25808
|
+
type: "text",
|
|
25809
|
+
label: "Contact success message",
|
|
25810
|
+
defaultValue: "Thanks - we received your message.",
|
|
25811
|
+
ui: { intent: "behavior" }
|
|
25812
|
+
}
|
|
25813
|
+
],
|
|
25814
|
+
styleTokens: {
|
|
25815
|
+
background: "surface",
|
|
25816
|
+
typography: "body",
|
|
25817
|
+
spacing: "md"
|
|
25818
|
+
},
|
|
25819
|
+
behaviours: {
|
|
25820
|
+
supportsThemeSwitching: true,
|
|
25821
|
+
inlineEditing: true,
|
|
25822
|
+
animation: false,
|
|
25823
|
+
paletteHidden: false
|
|
25824
|
+
},
|
|
25825
|
+
tags: [
|
|
25826
|
+
"contact",
|
|
25827
|
+
"newsletter",
|
|
25828
|
+
"signup",
|
|
25829
|
+
"email",
|
|
25830
|
+
"form",
|
|
25831
|
+
"lead-capture"
|
|
25832
|
+
],
|
|
25833
|
+
icon: "MailPlus"
|
|
25834
|
+
});
|
|
25835
|
+
var contactNewsletterBlockDefinition = {
|
|
25836
|
+
manifest: contactNewsletterManifest,
|
|
25837
|
+
dataSchemas: { form: formDataSchema.optional() },
|
|
25838
|
+
dataLoaders: {
|
|
25839
|
+
form: {
|
|
25840
|
+
endpoint: "getPublicFormById",
|
|
25841
|
+
params: {
|
|
25842
|
+
formSlug: { $bind: { from: "formSlug" } }
|
|
25843
|
+
},
|
|
25844
|
+
mode: "server"
|
|
25845
|
+
}
|
|
25846
|
+
}
|
|
25847
|
+
};
|
|
25848
|
+
|
|
24799
25849
|
// ../blocks/src/system/blocks/faq.ts
|
|
24800
25850
|
function fragmentLayoutNode2(layout) {
|
|
24801
25851
|
return isNodeDefinitionArray2(layout) ? el("div", {}, [...layout]) : layout;
|
|
@@ -25024,6 +26074,7 @@ var joinClasses3 = (parts) => parts.filter(
|
|
|
25024
26074
|
).join(" ").replace(/\s+/g, " ").trim();
|
|
25025
26075
|
var eyebrowTreatmentClassMap = {
|
|
25026
26076
|
plain: "",
|
|
26077
|
+
accent: "rb-eyebrow-treatment-accent",
|
|
25027
26078
|
pill: "rb-eyebrow-treatment-pill",
|
|
25028
26079
|
"accent-pill": "rb-eyebrow-treatment-pill rb-eyebrow-treatment-accent",
|
|
25029
26080
|
"pill-bounce": "rb-eyebrow-treatment-pill rb-eyebrow-treatment-pill-bounce",
|
|
@@ -25050,6 +26101,13 @@ var imageGalleryCornerClassMap = {
|
|
|
25050
26101
|
"2xl": "rb-rounded-2xl",
|
|
25051
26102
|
"3xl": "rb-rounded-3xl"
|
|
25052
26103
|
};
|
|
26104
|
+
var imageShapeClassMap = {
|
|
26105
|
+
default: "",
|
|
26106
|
+
square: "rb-media-shape-square",
|
|
26107
|
+
rounded: "rb-media-shape-rounded",
|
|
26108
|
+
circle: "rb-media-shape-circle",
|
|
26109
|
+
arch: "rb-media-shape-arch"
|
|
26110
|
+
};
|
|
25053
26111
|
var parseRatio = (raw) => {
|
|
25054
26112
|
if (typeof raw !== "string") return null;
|
|
25055
26113
|
const value = raw.trim();
|
|
@@ -25194,6 +26252,10 @@ function resolveHeroContentMaxWidth(content) {
|
|
|
25194
26252
|
return "default";
|
|
25195
26253
|
}
|
|
25196
26254
|
function resolveHeroTypographyScale(content) {
|
|
26255
|
+
const titleSize = readString(content, "titleSize");
|
|
26256
|
+
if (titleSize === "quiet" || titleSize === "editorial" || titleSize === "display" || titleSize === "poster") {
|
|
26257
|
+
return titleSize;
|
|
26258
|
+
}
|
|
25197
26259
|
const raw = readHeroLayoutString(
|
|
25198
26260
|
content,
|
|
25199
26261
|
"typographyScale",
|
|
@@ -25435,6 +26497,16 @@ var uiTransforms = [
|
|
|
25435
26497
|
heroGridClassFromVerticalAlignmentTransform,
|
|
25436
26498
|
imageFragmentClassTransform,
|
|
25437
26499
|
imageFragmentSizeTransform,
|
|
26500
|
+
{
|
|
26501
|
+
id: "ui.imageShapeClassName",
|
|
26502
|
+
kind: "string",
|
|
26503
|
+
summary: "Apply a constrained media shape class",
|
|
26504
|
+
run: (value, options) => {
|
|
26505
|
+
const baseClass = typeof options?.baseClass === "string" ? options.baseClass : "";
|
|
26506
|
+
const shape = typeof value === "string" ? value.trim() : "default";
|
|
26507
|
+
return joinClasses3([baseClass, imageShapeClassMap[shape] ?? ""]);
|
|
26508
|
+
}
|
|
26509
|
+
},
|
|
25438
26510
|
conditionalClassTransform,
|
|
25439
26511
|
twoColumnContainerClassTransform,
|
|
25440
26512
|
twoColumnFlexBasisTransform,
|
|
@@ -26781,6 +27853,21 @@ var siteHeaderManifest = createBlockManifest({
|
|
|
26781
27853
|
id: "block.site-header",
|
|
26782
27854
|
title: "Site Header",
|
|
26783
27855
|
category: "layout",
|
|
27856
|
+
additionalFields: [
|
|
27857
|
+
{
|
|
27858
|
+
id: "mode",
|
|
27859
|
+
type: "select",
|
|
27860
|
+
label: "Header display",
|
|
27861
|
+
required: false,
|
|
27862
|
+
multiple: false,
|
|
27863
|
+
defaultValue: "default",
|
|
27864
|
+
options: [
|
|
27865
|
+
{ value: "default", label: "Show header" },
|
|
27866
|
+
{ value: "hidden", label: "Hide header" }
|
|
27867
|
+
],
|
|
27868
|
+
ui: { intent: "display" }
|
|
27869
|
+
}
|
|
27870
|
+
],
|
|
26784
27871
|
// Skip section styles - this block uses theme-based styling
|
|
26785
27872
|
skipSectionStyles: true,
|
|
26786
27873
|
// Block manages its own wrapper - enables sticky positioning
|
|
@@ -28183,6 +29270,9 @@ var mediaTextManifest = createBlockManifest({
|
|
|
28183
29270
|
category: "layout",
|
|
28184
29271
|
includeContainerStyles: true,
|
|
28185
29272
|
titleSource: "title",
|
|
29273
|
+
previewCustomize: {
|
|
29274
|
+
quickFieldPriority: ["imagePosition", "ratio", "imageShape", "titleAlignment", "aspectRatio"]
|
|
29275
|
+
},
|
|
28186
29276
|
additionalFields: [
|
|
28187
29277
|
{
|
|
28188
29278
|
id: "images",
|
|
@@ -28221,7 +29311,7 @@ var mediaTextManifest = createBlockManifest({
|
|
|
28221
29311
|
{
|
|
28222
29312
|
id: "titleAlignment",
|
|
28223
29313
|
type: "select",
|
|
28224
|
-
label: "
|
|
29314
|
+
label: "Content alignment",
|
|
28225
29315
|
required: false,
|
|
28226
29316
|
defaultValue: "left",
|
|
28227
29317
|
multiple: false,
|
|
@@ -28279,7 +29369,18 @@ var mediaTextManifest = createBlockManifest({
|
|
|
28279
29369
|
transition: "slide"
|
|
28280
29370
|
},
|
|
28281
29371
|
ui: { intent: "behavior" }
|
|
28282
|
-
})
|
|
29372
|
+
}).map((field) => ({
|
|
29373
|
+
...field,
|
|
29374
|
+
ui: {
|
|
29375
|
+
...field.ui ?? {},
|
|
29376
|
+
visibleWhen: field.id === "carouselAutoplayDelay" ? {
|
|
29377
|
+
allOf: [
|
|
29378
|
+
{ field: "images", minItems: 2 },
|
|
29379
|
+
{ field: "carouselAutoplay", equals: true }
|
|
29380
|
+
]
|
|
29381
|
+
} : { field: "images", minItems: 2 }
|
|
29382
|
+
}
|
|
29383
|
+
})),
|
|
28283
29384
|
createAspectRatioField({
|
|
28284
29385
|
id: "aspectRatio",
|
|
28285
29386
|
label: "Media aspect ratio",
|
|
@@ -28287,6 +29388,12 @@ var mediaTextManifest = createBlockManifest({
|
|
|
28287
29388
|
defaultValue: "auto",
|
|
28288
29389
|
visibleWhen: { field: "images", notEquals: null }
|
|
28289
29390
|
}),
|
|
29391
|
+
createImageShapeField({
|
|
29392
|
+
id: "imageShape",
|
|
29393
|
+
label: "Media shape",
|
|
29394
|
+
defaultValue: "default",
|
|
29395
|
+
visibleWhen: { field: "images", notEquals: null }
|
|
29396
|
+
}),
|
|
28290
29397
|
{
|
|
28291
29398
|
id: "text",
|
|
28292
29399
|
type: "richText",
|
|
@@ -28320,6 +29427,30 @@ var mediaTextManifest = createBlockManifest({
|
|
|
28320
29427
|
...options?.not ? { not: true } : {}
|
|
28321
29428
|
}
|
|
28322
29429
|
});
|
|
29430
|
+
const bodyClassNameFromAlignment = {
|
|
29431
|
+
$bind: {
|
|
29432
|
+
from: "content.titleAlignment",
|
|
29433
|
+
transforms: [
|
|
29434
|
+
{
|
|
29435
|
+
id: "ui.bodyClassFromAlignment",
|
|
29436
|
+
options: { base: "rb-prose rb-max-w-none" }
|
|
29437
|
+
}
|
|
29438
|
+
],
|
|
29439
|
+
fallback: "rb-prose rb-max-w-none"
|
|
29440
|
+
}
|
|
29441
|
+
};
|
|
29442
|
+
const titleClassNameFromAlignment = {
|
|
29443
|
+
$bind: {
|
|
29444
|
+
from: "content.titleAlignment",
|
|
29445
|
+
transforms: [
|
|
29446
|
+
{
|
|
29447
|
+
id: "ui.headingClassFromAlignment",
|
|
29448
|
+
options: { base: "" }
|
|
29449
|
+
}
|
|
29450
|
+
],
|
|
29451
|
+
fallback: ""
|
|
29452
|
+
}
|
|
29453
|
+
};
|
|
28323
29454
|
const defaultTextColumn = el("div", {}, [
|
|
28324
29455
|
styledCard(
|
|
28325
29456
|
[
|
|
@@ -28344,8 +29475,55 @@ var mediaTextManifest = createBlockManifest({
|
|
|
28344
29475
|
bind("content.text")
|
|
28345
29476
|
)
|
|
28346
29477
|
]);
|
|
29478
|
+
const bioTextColumn = el(
|
|
29479
|
+
"div",
|
|
29480
|
+
{ className: "rb-flex rb-h-full rb-w-full rb-max-w-prose rb-flex-col rb-justify-center rb-gap-5" },
|
|
29481
|
+
[
|
|
29482
|
+
text(
|
|
29483
|
+
{
|
|
29484
|
+
as: "h2",
|
|
29485
|
+
className: titleClassNameFromAlignment
|
|
29486
|
+
},
|
|
29487
|
+
when("content.title"),
|
|
29488
|
+
bind("content.title")
|
|
29489
|
+
),
|
|
29490
|
+
styledCard(
|
|
29491
|
+
[
|
|
29492
|
+
richText(
|
|
29493
|
+
{
|
|
29494
|
+
className: bodyClassNameFromAlignment
|
|
29495
|
+
},
|
|
29496
|
+
bind("content.text")
|
|
29497
|
+
)
|
|
29498
|
+
],
|
|
29499
|
+
{
|
|
29500
|
+
stylesFrom: "content._textCardStyles",
|
|
29501
|
+
backgroundFrom: "content._textCardStyles.background"
|
|
29502
|
+
},
|
|
29503
|
+
when("content.wrapTextInCard")
|
|
29504
|
+
),
|
|
29505
|
+
richText(
|
|
29506
|
+
{
|
|
29507
|
+
className: bodyClassNameFromAlignment
|
|
29508
|
+
},
|
|
29509
|
+
when("content.wrapTextInCard", { not: true }),
|
|
29510
|
+
bind("content.text")
|
|
29511
|
+
)
|
|
29512
|
+
]
|
|
29513
|
+
);
|
|
28347
29514
|
const defaultImageCommonProps = {
|
|
28348
|
-
className:
|
|
29515
|
+
className: {
|
|
29516
|
+
$bind: {
|
|
29517
|
+
from: "content.imageShape",
|
|
29518
|
+
transforms: [
|
|
29519
|
+
{
|
|
29520
|
+
id: "ui.imageShapeClassName",
|
|
29521
|
+
options: { baseClass: "rb-w-full rb-h-auto rb-object-cover" }
|
|
29522
|
+
}
|
|
29523
|
+
],
|
|
29524
|
+
fallback: "rb-w-full rb-h-auto rb-object-cover"
|
|
29525
|
+
}
|
|
29526
|
+
},
|
|
28349
29527
|
style: {
|
|
28350
29528
|
aspectRatio: { $bind: { from: "content.aspectRatio" } }
|
|
28351
29529
|
}
|
|
@@ -28386,6 +29564,27 @@ var mediaTextManifest = createBlockManifest({
|
|
|
28386
29564
|
],
|
|
28387
29565
|
whenImagesLength(0, { not: true })
|
|
28388
29566
|
);
|
|
29567
|
+
const bioImagesLayout = el(
|
|
29568
|
+
"div",
|
|
29569
|
+
{},
|
|
29570
|
+
[
|
|
29571
|
+
responsiveTwoColumn({
|
|
29572
|
+
image: el("div", {}, [
|
|
29573
|
+
el("div", {}, [defaultSingleImage], whenImagesLength(1)),
|
|
29574
|
+
el("div", {}, [defaultCarouselImages], whenImagesLength(1, { not: true }))
|
|
29575
|
+
]),
|
|
29576
|
+
text: bioTextColumn,
|
|
29577
|
+
ratioFrom: "content.ratio",
|
|
29578
|
+
imagePositionFrom: "content.imagePosition",
|
|
29579
|
+
containerClassName: "rb-flex rb-flex-col rb-md-flex-row rb-md-items-center",
|
|
29580
|
+
gapFrom: "content.gap",
|
|
29581
|
+
gapFallback: "comfortable",
|
|
29582
|
+
imageWrapperClassName: "rb-w-full rb-shrink-0",
|
|
29583
|
+
textWrapperClassName: "rb-w-full rb-min-w-0 rb-flex-1 rb-self-stretch"
|
|
29584
|
+
})
|
|
29585
|
+
],
|
|
29586
|
+
whenImagesLength(0, { not: true })
|
|
29587
|
+
);
|
|
28389
29588
|
const defaultTextOnlyLayout = el(
|
|
28390
29589
|
"div",
|
|
28391
29590
|
{},
|
|
@@ -28415,7 +29614,45 @@ var mediaTextManifest = createBlockManifest({
|
|
|
28415
29614
|
],
|
|
28416
29615
|
whenImagesLength(0)
|
|
28417
29616
|
);
|
|
29617
|
+
const bioTextOnlyLayout = el(
|
|
29618
|
+
"div",
|
|
29619
|
+
{ className: "rb-flex rb-w-full rb-max-w-prose rb-flex-col rb-gap-5" },
|
|
29620
|
+
[
|
|
29621
|
+
text(
|
|
29622
|
+
{
|
|
29623
|
+
as: "h2",
|
|
29624
|
+
className: titleClassNameFromAlignment
|
|
29625
|
+
},
|
|
29626
|
+
when("content.title"),
|
|
29627
|
+
bind("content.title")
|
|
29628
|
+
),
|
|
29629
|
+
styledCard(
|
|
29630
|
+
[
|
|
29631
|
+
richText(
|
|
29632
|
+
{
|
|
29633
|
+
className: bodyClassNameFromAlignment
|
|
29634
|
+
},
|
|
29635
|
+
bind("content.text")
|
|
29636
|
+
)
|
|
29637
|
+
],
|
|
29638
|
+
{
|
|
29639
|
+
stylesFrom: "content._textCardStyles",
|
|
29640
|
+
backgroundFrom: "content._textCardStyles.background"
|
|
29641
|
+
},
|
|
29642
|
+
when("content.wrapTextInCard")
|
|
29643
|
+
),
|
|
29644
|
+
richText(
|
|
29645
|
+
{
|
|
29646
|
+
className: bodyClassNameFromAlignment
|
|
29647
|
+
},
|
|
29648
|
+
when("content.wrapTextInCard", { not: true }),
|
|
29649
|
+
bind("content.text")
|
|
29650
|
+
)
|
|
29651
|
+
],
|
|
29652
|
+
whenImagesLength(0)
|
|
29653
|
+
);
|
|
28418
29654
|
const defaultInner = el("div", {}, [defaultImagesLayout, defaultTextOnlyLayout]);
|
|
29655
|
+
const bioInner = el("div", {}, [bioImagesLayout, bioTextOnlyLayout]);
|
|
28419
29656
|
const defaultLayout2 = styledSection({
|
|
28420
29657
|
children: styledContainer({
|
|
28421
29658
|
rootType: "stack",
|
|
@@ -28424,18 +29661,7 @@ var mediaTextManifest = createBlockManifest({
|
|
|
28424
29661
|
text(
|
|
28425
29662
|
{
|
|
28426
29663
|
as: "h2",
|
|
28427
|
-
className:
|
|
28428
|
-
$bind: {
|
|
28429
|
-
from: "content.titleAlignment",
|
|
28430
|
-
transforms: [
|
|
28431
|
-
{
|
|
28432
|
-
id: "ui.headingClassFromAlignment",
|
|
28433
|
-
options: { base: "" }
|
|
28434
|
-
}
|
|
28435
|
-
],
|
|
28436
|
-
fallback: ""
|
|
28437
|
-
}
|
|
28438
|
-
}
|
|
29664
|
+
className: titleClassNameFromAlignment
|
|
28439
29665
|
},
|
|
28440
29666
|
when("content.title"),
|
|
28441
29667
|
bind("content.title")
|
|
@@ -28447,14 +29673,28 @@ var mediaTextManifest = createBlockManifest({
|
|
|
28447
29673
|
baseClass: "",
|
|
28448
29674
|
spacing: "medium"
|
|
28449
29675
|
});
|
|
29676
|
+
const bioLayout = styledSection({
|
|
29677
|
+
children: styledContainer({
|
|
29678
|
+
rootType: "stack",
|
|
29679
|
+
rootProps: { gap: "lg" },
|
|
29680
|
+
children: [bioInner]
|
|
29681
|
+
}),
|
|
29682
|
+
baseClass: "",
|
|
29683
|
+
spacing: "medium"
|
|
29684
|
+
});
|
|
28450
29685
|
return {
|
|
28451
29686
|
layout: defaultLayout2,
|
|
28452
29687
|
variants: {
|
|
28453
|
-
default: defaultLayout2
|
|
29688
|
+
default: defaultLayout2,
|
|
29689
|
+
bio: bioLayout
|
|
28454
29690
|
},
|
|
28455
29691
|
defaultVariant: "default",
|
|
28456
29692
|
variantOptions: {
|
|
28457
|
-
default: { label: "Default" }
|
|
29693
|
+
default: { label: "Default" },
|
|
29694
|
+
bio: {
|
|
29695
|
+
label: "Bio",
|
|
29696
|
+
description: "Vertically centered title and copy beside media."
|
|
29697
|
+
}
|
|
28458
29698
|
}
|
|
28459
29699
|
};
|
|
28460
29700
|
})(),
|
|
@@ -29160,10 +30400,8 @@ var occurrenceContextSchema = z43.object({
|
|
|
29160
30400
|
// ../blocks/src/system/runtime/nodes/event-registration.interactive.ts
|
|
29161
30401
|
import { z as z45 } from "zod";
|
|
29162
30402
|
|
|
29163
|
-
// ../blocks/src/system/runtime/nodes/shared/contract-schemas.ts
|
|
29164
|
-
import { z as z44 } from "zod";
|
|
29165
|
-
|
|
29166
30403
|
// ../blocks/src/system/constants/events.ts
|
|
30404
|
+
var EVENT_CONTENT_TYPE_SLUGS = ["event", "events"];
|
|
29167
30405
|
var eventCalendarDisplayModeValues = ["combined", "month", "week", "list", "timetable"];
|
|
29168
30406
|
var eventCalendarListLayoutValues = ["stack", "grid", "compact"];
|
|
29169
30407
|
var eventCalendarListLayoutOptions = [
|
|
@@ -29177,8 +30415,133 @@ function isEventCalendarDisplayMode(value) {
|
|
|
29177
30415
|
function isEventCalendarListLayout(value) {
|
|
29178
30416
|
return typeof value === "string" && eventCalendarListLayoutValues.includes(value);
|
|
29179
30417
|
}
|
|
30418
|
+
function isEventContentType(slug) {
|
|
30419
|
+
if (!slug) return false;
|
|
30420
|
+
return EVENT_CONTENT_TYPE_SLUGS.includes(slug);
|
|
30421
|
+
}
|
|
30422
|
+
|
|
30423
|
+
// ../blocks/src/system/runtime/nodes/events/shared/pricing.ts
|
|
30424
|
+
var DEFAULT_EVENT_CURRENCY = "USD";
|
|
30425
|
+
function resolveRuntimeEventPricing(event) {
|
|
30426
|
+
if (isPublicEventPricing(event.pricing)) {
|
|
30427
|
+
return event.pricing;
|
|
30428
|
+
}
|
|
30429
|
+
const legacy = event;
|
|
30430
|
+
const currency = readCurrency(legacy.currency);
|
|
30431
|
+
if (event.requiresRegistration === false) {
|
|
30432
|
+
return {
|
|
30433
|
+
kind: "drop_in",
|
|
30434
|
+
currency,
|
|
30435
|
+
display: { kind: "free", currency }
|
|
30436
|
+
};
|
|
30437
|
+
}
|
|
30438
|
+
if (legacy.pricingMode === "ticket_types") {
|
|
30439
|
+
const ticketTypes = Array.isArray(legacy.ticketTypes) ? legacy.ticketTypes.filter(isPublicEventTicketType) : [];
|
|
30440
|
+
return {
|
|
30441
|
+
kind: "ticket_types",
|
|
30442
|
+
currency,
|
|
30443
|
+
ticketTypes,
|
|
30444
|
+
display: readTicketTypePriceDisplay(legacy.priceDisplay, currency)
|
|
30445
|
+
};
|
|
30446
|
+
}
|
|
30447
|
+
const amount = typeof legacy.price === "number" ? legacy.price : 0;
|
|
30448
|
+
if (legacy.pricingType === "paid" && amount > 0) {
|
|
30449
|
+
return {
|
|
30450
|
+
kind: "single_paid",
|
|
30451
|
+
amount,
|
|
30452
|
+
currency,
|
|
30453
|
+
display: { kind: "exact", amount, currency }
|
|
30454
|
+
};
|
|
30455
|
+
}
|
|
30456
|
+
return {
|
|
30457
|
+
kind: "free_registration",
|
|
30458
|
+
currency,
|
|
30459
|
+
display: { kind: "free", currency }
|
|
30460
|
+
};
|
|
30461
|
+
}
|
|
30462
|
+
function readCurrency(value) {
|
|
30463
|
+
return typeof value === "string" && value.trim().length > 0 ? value : DEFAULT_EVENT_CURRENCY;
|
|
30464
|
+
}
|
|
30465
|
+
function isRecord3(value) {
|
|
30466
|
+
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
30467
|
+
}
|
|
30468
|
+
function isPublicEventPricing(value) {
|
|
30469
|
+
if (!isRecord3(value) || typeof value.kind !== "string") return false;
|
|
30470
|
+
return value.kind === "drop_in" || value.kind === "free_registration" || value.kind === "single_paid" || value.kind === "ticket_types" || value.kind === "course";
|
|
30471
|
+
}
|
|
30472
|
+
function isPublicEventTicketType(value) {
|
|
30473
|
+
return isRecord3(value) && typeof value.id === "string";
|
|
30474
|
+
}
|
|
30475
|
+
function readTicketTypePriceDisplay(value, currency) {
|
|
30476
|
+
const display = readLegacyPriceDisplay(value, currency);
|
|
30477
|
+
return display.kind === "course" ? { kind: "unavailable", currency } : display;
|
|
30478
|
+
}
|
|
30479
|
+
function readLegacyPriceDisplay(value, currency) {
|
|
30480
|
+
if (!isRecord3(value) || typeof value.kind !== "string") {
|
|
30481
|
+
return { kind: "unavailable", currency };
|
|
30482
|
+
}
|
|
30483
|
+
const displayCurrency = readCurrency(value.currency);
|
|
30484
|
+
switch (value.kind) {
|
|
30485
|
+
case "free":
|
|
30486
|
+
return { kind: "free", currency: displayCurrency };
|
|
30487
|
+
case "exact":
|
|
30488
|
+
return readAmount(value.amount) !== null ? {
|
|
30489
|
+
kind: "exact",
|
|
30490
|
+
amount: readAmount(value.amount) ?? 0,
|
|
30491
|
+
currency: displayCurrency
|
|
30492
|
+
} : { kind: "unavailable", currency };
|
|
30493
|
+
case "from":
|
|
30494
|
+
return readAmount(value.amount) !== null ? {
|
|
30495
|
+
kind: "from",
|
|
30496
|
+
amount: readAmount(value.amount) ?? 0,
|
|
30497
|
+
currency: displayCurrency
|
|
30498
|
+
} : { kind: "unavailable", currency };
|
|
30499
|
+
case "mixed":
|
|
30500
|
+
return readAmount(value.paidFromAmount) !== null ? {
|
|
30501
|
+
kind: "mixed",
|
|
30502
|
+
paidFromAmount: readAmount(value.paidFromAmount) ?? 0,
|
|
30503
|
+
currency: displayCurrency
|
|
30504
|
+
} : { kind: "unavailable", currency };
|
|
30505
|
+
case "unavailable":
|
|
30506
|
+
return { kind: "unavailable", currency: displayCurrency };
|
|
30507
|
+
case "course":
|
|
30508
|
+
return isRecord3(value.display) ? {
|
|
30509
|
+
kind: "course",
|
|
30510
|
+
display: readCoursePriceDisplay(value.display, displayCurrency)
|
|
30511
|
+
} : {
|
|
30512
|
+
kind: "course",
|
|
30513
|
+
display: { kind: "unavailable", currency: displayCurrency }
|
|
30514
|
+
};
|
|
30515
|
+
default:
|
|
30516
|
+
return { kind: "unavailable", currency };
|
|
30517
|
+
}
|
|
30518
|
+
}
|
|
30519
|
+
function readCoursePriceDisplay(value, currency) {
|
|
30520
|
+
switch (value.kind) {
|
|
30521
|
+
case "free":
|
|
30522
|
+
return { kind: "free", currency: readCurrency(value.currency) };
|
|
30523
|
+
case "exact":
|
|
30524
|
+
return readAmount(value.amount) !== null ? {
|
|
30525
|
+
kind: "exact",
|
|
30526
|
+
amount: readAmount(value.amount) ?? 0,
|
|
30527
|
+
currency: readCurrency(value.currency)
|
|
30528
|
+
} : { kind: "unavailable", currency };
|
|
30529
|
+
case "from":
|
|
30530
|
+
return readAmount(value.amount) !== null ? {
|
|
30531
|
+
kind: "from",
|
|
30532
|
+
amount: readAmount(value.amount) ?? 0,
|
|
30533
|
+
currency: readCurrency(value.currency)
|
|
30534
|
+
} : { kind: "unavailable", currency };
|
|
30535
|
+
default:
|
|
30536
|
+
return { kind: "unavailable", currency };
|
|
30537
|
+
}
|
|
30538
|
+
}
|
|
30539
|
+
function readAmount(value) {
|
|
30540
|
+
return typeof value === "number" && Number.isFinite(value) ? value : null;
|
|
30541
|
+
}
|
|
29180
30542
|
|
|
29181
30543
|
// ../blocks/src/system/runtime/nodes/shared/contract-schemas.ts
|
|
30544
|
+
import { z as z44 } from "zod";
|
|
29182
30545
|
var previewStageSchema = z44.enum(["preview", "published"]);
|
|
29183
30546
|
var registrationButtonVariantSchema = z44.enum(["primary", "secondary", "outline"]);
|
|
29184
30547
|
var eventButtonVariantSchema = z44.enum(["primary", "secondary", "outline", "link"]);
|
|
@@ -29189,12 +30552,73 @@ var weekStartSchema = z44.enum(["sunday", "monday"]);
|
|
|
29189
30552
|
var filterAutoShowSchema = z44.enum(["auto", "always", "never"]);
|
|
29190
30553
|
var calendarTabViewsSchema = z44.enum(["both", "month", "week"]);
|
|
29191
30554
|
|
|
30555
|
+
// ../blocks/src/system/runtime/nodes/event-registration/wizardSteps.ts
|
|
30556
|
+
function getWizardStepsForContext(hasPreSelectedContext, needsPaymentStep) {
|
|
30557
|
+
const baseSteps = hasPreSelectedContext ? ["select-tickets", "enter-details"] : ["select-event", "select-tickets", "enter-details"];
|
|
30558
|
+
if (!needsPaymentStep) {
|
|
30559
|
+
return baseSteps;
|
|
30560
|
+
}
|
|
30561
|
+
return [...baseSteps, "select-payment"];
|
|
30562
|
+
}
|
|
30563
|
+
|
|
30564
|
+
// ../blocks/src/system/runtime/nodes/event-registration/registrationDerivations.ts
|
|
30565
|
+
function eventMatchesOccurrenceId(event, occurrenceId) {
|
|
30566
|
+
return event.registrationOccurrenceId === occurrenceId || event.publicEventId === occurrenceId;
|
|
30567
|
+
}
|
|
30568
|
+
function findPreSelectedEvent(input) {
|
|
30569
|
+
const occurrenceContext = input.occurrenceContext;
|
|
30570
|
+
if (!occurrenceContext) {
|
|
30571
|
+
return null;
|
|
30572
|
+
}
|
|
30573
|
+
const contextDate = getBookingLocalDateKey(toScheduledBookingDateTime({
|
|
30574
|
+
startsAt: occurrenceContext.startsAt,
|
|
30575
|
+
timeZone: occurrenceContext.timeZone
|
|
30576
|
+
}));
|
|
30577
|
+
return input.scopedEvents.find(
|
|
30578
|
+
(event) => eventMatchesOccurrenceId(event, occurrenceContext.id) || getBookingLocalDateKey(toScheduledBookingDateTime({
|
|
30579
|
+
startsAt: event.startsAt,
|
|
30580
|
+
timeZone: event.timeZone
|
|
30581
|
+
})) === contextDate
|
|
30582
|
+
) ?? null;
|
|
30583
|
+
}
|
|
30584
|
+
function resolveEventRequiresPayment(input) {
|
|
30585
|
+
if (input.eligibility) {
|
|
30586
|
+
return input.eligibility.requiresPayment;
|
|
30587
|
+
}
|
|
30588
|
+
if (input.selectedTicketType) {
|
|
30589
|
+
return input.selectedTicketType.priceAmount > 0;
|
|
30590
|
+
}
|
|
30591
|
+
if (!input.event) {
|
|
30592
|
+
return false;
|
|
30593
|
+
}
|
|
30594
|
+
return publicEventPricingType(resolveRuntimeEventPricing(input.event)) !== "free";
|
|
30595
|
+
}
|
|
30596
|
+
|
|
30597
|
+
// ../blocks/src/system/runtime/nodes/event-registration/registrationEventAdapter.ts
|
|
30598
|
+
function toRegistrationEvent(event) {
|
|
30599
|
+
return {
|
|
30600
|
+
...event,
|
|
30601
|
+
pricing: resolveRuntimeEventPricing(event),
|
|
30602
|
+
publicEventId: event.id,
|
|
30603
|
+
registrationOccurrenceId: event.occurrenceId
|
|
30604
|
+
};
|
|
30605
|
+
}
|
|
30606
|
+
function toRegistrationEvents(events) {
|
|
30607
|
+
return events.map(toRegistrationEvent);
|
|
30608
|
+
}
|
|
30609
|
+
|
|
29192
30610
|
// ../blocks/src/system/runtime/nodes/event-registration.interactive.ts
|
|
30611
|
+
var EVENT_REGISTRATION_GENERIC_SHELL_STEP_LABELS = ["Date", "Tickets", "Details"];
|
|
30612
|
+
var EVENT_REGISTRATION_SHELL_STEP_LABELS = ["Event", "Date", "Tickets", "Details", "Payment"];
|
|
29193
30613
|
var contentEntrySchema = z45.object({
|
|
29194
30614
|
id: z45.string(),
|
|
29195
30615
|
slug: z45.string(),
|
|
29196
30616
|
contentTypeSlug: z45.string()
|
|
29197
30617
|
});
|
|
30618
|
+
var eventRegistrationPublicEventSchema = z45.preprocess(
|
|
30619
|
+
normalizeEventRegistrationEventInput,
|
|
30620
|
+
publicEventSchema
|
|
30621
|
+
);
|
|
29198
30622
|
var eventRegistrationSourceSchema = z45.object({
|
|
29199
30623
|
siteId: z45.string().optional(),
|
|
29200
30624
|
apiBaseUrl: z45.string().optional(),
|
|
@@ -29202,7 +30626,7 @@ var eventRegistrationSourceSchema = z45.object({
|
|
|
29202
30626
|
previewToken: z45.string().nullable().optional(),
|
|
29203
30627
|
occurrenceContext: occurrenceContextSchema.optional(),
|
|
29204
30628
|
contentEntry: contentEntrySchema.nullable().optional(),
|
|
29205
|
-
events: z45.array(
|
|
30629
|
+
events: z45.array(eventRegistrationPublicEventSchema).nullable().optional(),
|
|
29206
30630
|
className: z45.string().nullable().optional(),
|
|
29207
30631
|
buttonText: z45.string().nullable().optional(),
|
|
29208
30632
|
maxTickets: z45.string().nullable().optional(),
|
|
@@ -29217,14 +30641,17 @@ var eventRegistrationSourceSchema = z45.object({
|
|
|
29217
30641
|
});
|
|
29218
30642
|
var eventRegistrationDisplaySchema = z45.object({
|
|
29219
30643
|
kind: z45.literal("event-registration"),
|
|
29220
|
-
state: z45.literal("shell"),
|
|
30644
|
+
state: z45.literal("generic-shell"),
|
|
29221
30645
|
className: z45.string().nullable(),
|
|
30646
|
+
titleText: z45.string(),
|
|
30647
|
+
bodyText: z45.string(),
|
|
30648
|
+
stepLabels: z45.array(z45.enum(EVENT_REGISTRATION_SHELL_STEP_LABELS)).min(1),
|
|
29222
30649
|
summaryButtonText: z45.string()
|
|
29223
30650
|
});
|
|
29224
30651
|
var eventRegistrationHydrationSchema = z45.object({
|
|
29225
30652
|
occurrenceContext: occurrenceContextSchema.optional(),
|
|
29226
30653
|
contentEntry: contentEntrySchema.nullable().optional(),
|
|
29227
|
-
events: z45.array(
|
|
30654
|
+
events: z45.array(eventRegistrationPublicEventSchema).nullable().optional(),
|
|
29228
30655
|
maxTickets: z45.string().optional(),
|
|
29229
30656
|
showVenue: z45.boolean().optional(),
|
|
29230
30657
|
showCapacity: z45.boolean().optional(),
|
|
@@ -29253,13 +30680,81 @@ var eventRegistrationIslandMetaKeys = defineInteractiveIslandMetaKeys(
|
|
|
29253
30680
|
"stage"
|
|
29254
30681
|
);
|
|
29255
30682
|
function buildEventRegistrationDisplay(source) {
|
|
30683
|
+
const stepLabels = buildEventRegistrationShellStepLabels(source);
|
|
29256
30684
|
return {
|
|
29257
30685
|
kind: "event-registration",
|
|
29258
|
-
state: "shell",
|
|
30686
|
+
state: "generic-shell",
|
|
29259
30687
|
className: source.className ?? null,
|
|
30688
|
+
titleText: "Event registration",
|
|
30689
|
+
bodyText: buildEventRegistrationShellBodyText(stepLabels),
|
|
30690
|
+
stepLabels,
|
|
29260
30691
|
summaryButtonText: source.buttonText?.trim() || "Register"
|
|
29261
30692
|
};
|
|
29262
30693
|
}
|
|
30694
|
+
function buildEventRegistrationShellStepLabels(source) {
|
|
30695
|
+
const scopedEvents = scopeEventRegistrationEvents(source);
|
|
30696
|
+
if (scopedEvents.length === 0) {
|
|
30697
|
+
return EVENT_REGISTRATION_GENERIC_SHELL_STEP_LABELS;
|
|
30698
|
+
}
|
|
30699
|
+
const preSelectedEvent = findPreSelectedEvent({
|
|
30700
|
+
scopedEvents,
|
|
30701
|
+
occurrenceContext: source.occurrenceContext
|
|
30702
|
+
});
|
|
30703
|
+
const hasPreSelectedContext = Boolean(source.occurrenceContext || preSelectedEvent);
|
|
30704
|
+
const needsPaymentStep = hasPreSelectedContext && preSelectedEvent ? resolveEventRequiresPayment({
|
|
30705
|
+
eligibility: null,
|
|
30706
|
+
selectedTicketType: null,
|
|
30707
|
+
event: preSelectedEvent
|
|
30708
|
+
}) : false;
|
|
30709
|
+
return getWizardStepsForContext(hasPreSelectedContext, needsPaymentStep).map((step) => shellLabelForRegistrationStep(step, scopedEvents));
|
|
30710
|
+
}
|
|
30711
|
+
function scopeEventRegistrationEvents(source) {
|
|
30712
|
+
const events = toRegistrationEvents(source.events ?? []);
|
|
30713
|
+
if (source.occurrenceContext?.seriesId) {
|
|
30714
|
+
return events.filter((event) => event.seriesId === source.occurrenceContext?.seriesId);
|
|
30715
|
+
}
|
|
30716
|
+
const entrySlug = source.contentEntry?.slug;
|
|
30717
|
+
const entryContentType = source.contentEntry?.contentTypeSlug;
|
|
30718
|
+
if (entrySlug && entryContentType && isEventContentType(entryContentType)) {
|
|
30719
|
+
return events.filter((event) => event.slug === entrySlug);
|
|
30720
|
+
}
|
|
30721
|
+
return events;
|
|
30722
|
+
}
|
|
30723
|
+
function shellLabelForRegistrationStep(step, events) {
|
|
30724
|
+
switch (step) {
|
|
30725
|
+
case "select-event":
|
|
30726
|
+
return isDateSelection(events) ? "Date" : "Event";
|
|
30727
|
+
case "select-tickets":
|
|
30728
|
+
return "Tickets";
|
|
30729
|
+
case "enter-details":
|
|
30730
|
+
return "Details";
|
|
30731
|
+
case "select-payment":
|
|
30732
|
+
return "Payment";
|
|
30733
|
+
case "error":
|
|
30734
|
+
case "success":
|
|
30735
|
+
case "submitting":
|
|
30736
|
+
case "redirecting":
|
|
30737
|
+
case "verifying-payment":
|
|
30738
|
+
case "verifying-timeout":
|
|
30739
|
+
case "payment-failed":
|
|
30740
|
+
return "Details";
|
|
30741
|
+
}
|
|
30742
|
+
}
|
|
30743
|
+
function isDateSelection(events) {
|
|
30744
|
+
const firstSeriesId = events[0]?.seriesId;
|
|
30745
|
+
return Boolean(
|
|
30746
|
+
events.length > 1 && firstSeriesId && events.every((event) => event.seriesId === firstSeriesId)
|
|
30747
|
+
);
|
|
30748
|
+
}
|
|
30749
|
+
function buildEventRegistrationShellBodyText(stepLabels) {
|
|
30750
|
+
if (stepLabels.includes("Payment")) {
|
|
30751
|
+
return "Preparing tickets, details, and payment options.";
|
|
30752
|
+
}
|
|
30753
|
+
if (stepLabels[0] === "Tickets") {
|
|
30754
|
+
return "Preparing tickets and booking details.";
|
|
30755
|
+
}
|
|
30756
|
+
return "Preparing dates, tickets, and booking details.";
|
|
30757
|
+
}
|
|
29263
30758
|
var eventRegistrationBlockRuntime = defineClientOwnedBlockRuntime({
|
|
29264
30759
|
kind: "client-owned",
|
|
29265
30760
|
contracts: {
|
|
@@ -29283,6 +30778,18 @@ var eventRegistrationBlockRuntime = defineClientOwnedBlockRuntime({
|
|
|
29283
30778
|
}
|
|
29284
30779
|
})
|
|
29285
30780
|
});
|
|
30781
|
+
function normalizeEventRegistrationEventInput(value) {
|
|
30782
|
+
if (!isRecord4(value)) {
|
|
30783
|
+
return value;
|
|
30784
|
+
}
|
|
30785
|
+
return {
|
|
30786
|
+
...value,
|
|
30787
|
+
pricing: resolveRuntimeEventPricing(value)
|
|
30788
|
+
};
|
|
30789
|
+
}
|
|
30790
|
+
function isRecord4(value) {
|
|
30791
|
+
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
30792
|
+
}
|
|
29286
30793
|
var eventRegistrationInteractiveIslandPropsCodec = createInteractiveIslandCodec({
|
|
29287
30794
|
runtime: eventRegistrationBlockRuntime,
|
|
29288
30795
|
mode: "event-registration",
|
|
@@ -31781,7 +33288,7 @@ function inferLegacyOfferingsPreviewGroupOrder(overrides) {
|
|
|
31781
33288
|
return keys.length >= 2 ? keys : [];
|
|
31782
33289
|
}
|
|
31783
33290
|
function normalizeOfferingsPreviewContentForWrite(value) {
|
|
31784
|
-
if (!
|
|
33291
|
+
if (!isRecord5(value)) return null;
|
|
31785
33292
|
const groupOrderValue = value.groupOrder;
|
|
31786
33293
|
if (Array.isArray(groupOrderValue)) {
|
|
31787
33294
|
const normalized = normalizeOfferingsPreviewGroupOrder(groupOrderValue);
|
|
@@ -31794,7 +33301,7 @@ function normalizeOfferingsPreviewContentForWrite(value) {
|
|
|
31794
33301
|
return { ...value, groupOrder: [] };
|
|
31795
33302
|
}
|
|
31796
33303
|
const legacyOrder = inferLegacyOfferingsPreviewGroupOrder(
|
|
31797
|
-
Array.isArray(value.groupOverrides) ? value.groupOverrides.filter(
|
|
33304
|
+
Array.isArray(value.groupOverrides) ? value.groupOverrides.filter(isRecord5) : []
|
|
31798
33305
|
);
|
|
31799
33306
|
return legacyOrder.length > 0 ? { ...value, groupOrder: legacyOrder } : value;
|
|
31800
33307
|
}
|
|
@@ -31808,7 +33315,7 @@ function uniqueOfferingsPreviewSourceKeys(values) {
|
|
|
31808
33315
|
}
|
|
31809
33316
|
return keys;
|
|
31810
33317
|
}
|
|
31811
|
-
function
|
|
33318
|
+
function isRecord5(value) {
|
|
31812
33319
|
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
31813
33320
|
}
|
|
31814
33321
|
|
|
@@ -32175,7 +33682,7 @@ function isOfferingsPreviewItemLimit(value) {
|
|
|
32175
33682
|
return value === "1" || value === "2" || value === "3" || value === "4" || value === "5" || value === "6" || value === null;
|
|
32176
33683
|
}
|
|
32177
33684
|
function normalizeOfferingsPreviewGroupOverride(value) {
|
|
32178
|
-
if (!
|
|
33685
|
+
if (!isRecord6(value)) return [];
|
|
32179
33686
|
const override = {};
|
|
32180
33687
|
if (isOfferingsPreviewSourceKey(value.sourceKey) || value.sourceKey === null) {
|
|
32181
33688
|
override.sourceKey = value.sourceKey;
|
|
@@ -32207,12 +33714,12 @@ function isButtonVariant(value) {
|
|
|
32207
33714
|
return value === "primary" || value === "secondary" || value === "outline" || value === "link" || value === null;
|
|
32208
33715
|
}
|
|
32209
33716
|
function normalizeCardStylesContent(value) {
|
|
32210
|
-
return
|
|
33717
|
+
return isRecord6(value) || value === null ? value : void 0;
|
|
32211
33718
|
}
|
|
32212
33719
|
function normalizeSectionStylesContent(value) {
|
|
32213
|
-
return
|
|
33720
|
+
return isRecord6(value) || value === null ? value : void 0;
|
|
32214
33721
|
}
|
|
32215
|
-
function
|
|
33722
|
+
function isRecord6(value) {
|
|
32216
33723
|
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
32217
33724
|
}
|
|
32218
33725
|
|
|
@@ -36172,11 +37679,13 @@ var heroImageSurfaceMotions = [
|
|
|
36172
37679
|
];
|
|
36173
37680
|
var standardEyebrowTreatments = [
|
|
36174
37681
|
"plain",
|
|
37682
|
+
"accent",
|
|
36175
37683
|
"pill",
|
|
36176
37684
|
"accent-pill"
|
|
36177
37685
|
];
|
|
36178
37686
|
var animatedEyebrowTreatments = [
|
|
36179
37687
|
"plain",
|
|
37688
|
+
"accent",
|
|
36180
37689
|
"pill",
|
|
36181
37690
|
"accent-pill",
|
|
36182
37691
|
"pill-bounce",
|
|
@@ -36477,6 +37986,17 @@ var systemBlockDefinitionsRaw = [
|
|
|
36477
37986
|
layoutProfile({ variantKey: "two-column", family: "split", weight: "standard" })
|
|
36478
37987
|
]
|
|
36479
37988
|
})),
|
|
37989
|
+
withDesignCapability("block.contact-newsletter", contactNewsletterBlockDefinition, sectionOnly(), defineBlockDesignMetadata({
|
|
37990
|
+
flow: conversionFlow,
|
|
37991
|
+
layoutProfiles: [
|
|
37992
|
+
layoutProfile({
|
|
37993
|
+
variantKey: "default",
|
|
37994
|
+
family: "split",
|
|
37995
|
+
weight: "featured",
|
|
37996
|
+
bias: "soft"
|
|
37997
|
+
})
|
|
37998
|
+
]
|
|
37999
|
+
})),
|
|
36480
38000
|
withDesignCapability("block.faq", faqBlockDefinition, withEyebrowCapability(declareBlockDesignCapability({
|
|
36481
38001
|
sectionSurfaces: "supported",
|
|
36482
38002
|
contentFrames: ["plain", "panel"],
|
|
@@ -36568,6 +38088,12 @@ var systemBlockDefinitionsRaw = [
|
|
|
36568
38088
|
family: "media-text",
|
|
36569
38089
|
weight: "featured",
|
|
36570
38090
|
bias: "soft"
|
|
38091
|
+
}),
|
|
38092
|
+
layoutProfile({
|
|
38093
|
+
variantKey: "bio",
|
|
38094
|
+
family: "media-text",
|
|
38095
|
+
weight: "featured",
|
|
38096
|
+
bias: "soft"
|
|
36571
38097
|
})
|
|
36572
38098
|
]
|
|
36573
38099
|
})),
|
|
@@ -37369,7 +38895,7 @@ var defaultTransforms = createTransformRegistry(builtinTransformDefinitions);
|
|
|
37369
38895
|
// ../blocks/src/system/data/linkedContentEntries.ts
|
|
37370
38896
|
var LINKED_CONTENT_ENTRY_META_KEY = "__rbLinkedContentEntry";
|
|
37371
38897
|
function coerceLinkedContentEntriesPayload(payload) {
|
|
37372
|
-
if (!
|
|
38898
|
+
if (!isRecord7(payload)) return payload;
|
|
37373
38899
|
const response = payload;
|
|
37374
38900
|
if (!Array.isArray(response.entries)) return payload;
|
|
37375
38901
|
const contentType = parsePublicContentTypeMeta(response.contentType);
|
|
@@ -37377,12 +38903,12 @@ function coerceLinkedContentEntriesPayload(payload) {
|
|
|
37377
38903
|
return response.entries.map((entry) => enrichLinkedContentEntry(entry, contentType));
|
|
37378
38904
|
}
|
|
37379
38905
|
function enrichLinkedContentEntry(entry, contentType) {
|
|
37380
|
-
if (!
|
|
38906
|
+
if (!isRecord7(entry)) return entry;
|
|
37381
38907
|
const entryId = typeof entry.id === "string" ? entry.id : null;
|
|
37382
38908
|
if (!entryId) return entry;
|
|
37383
38909
|
const title = typeof entry.title === "string" && entry.title.trim().length > 0 ? entry.title : entryId;
|
|
37384
38910
|
const optimisticHash = typeof entry.optimisticHash === "string" && entry.optimisticHash.length > 0 ? entry.optimisticHash : null;
|
|
37385
|
-
const content =
|
|
38911
|
+
const content = isRecord7(entry.content) ? entry.content : {};
|
|
37386
38912
|
const meta = {
|
|
37387
38913
|
kind: "linked-content-entry",
|
|
37388
38914
|
entryId,
|
|
@@ -37475,7 +39001,7 @@ function capitalize(value) {
|
|
|
37475
39001
|
return value.charAt(0).toUpperCase() + value.slice(1).toLowerCase();
|
|
37476
39002
|
}
|
|
37477
39003
|
function parsePublicContentTypeMeta(value) {
|
|
37478
|
-
if (!
|
|
39004
|
+
if (!isRecord7(value)) return null;
|
|
37479
39005
|
if (typeof value.key !== "string" || value.key.trim().length === 0) return null;
|
|
37480
39006
|
return {
|
|
37481
39007
|
key: value.key,
|
|
@@ -37485,7 +39011,7 @@ function parsePublicContentTypeMeta(value) {
|
|
|
37485
39011
|
};
|
|
37486
39012
|
}
|
|
37487
39013
|
function parsePublicContentTypeLinkedEntryEditing(value) {
|
|
37488
|
-
if (!
|
|
39014
|
+
if (!isRecord7(value) || typeof value.kind !== "string") return null;
|
|
37489
39015
|
switch (value.kind) {
|
|
37490
39016
|
case "generic":
|
|
37491
39017
|
return { kind: "generic" };
|
|
@@ -37499,7 +39025,7 @@ function parsePublicContentTypeLinkedEntryEditing(value) {
|
|
|
37499
39025
|
}
|
|
37500
39026
|
}
|
|
37501
39027
|
function parsePublicContentTypeFieldMeta(value) {
|
|
37502
|
-
if (!
|
|
39028
|
+
if (!isRecord7(value)) return [];
|
|
37503
39029
|
if (typeof value.id !== "string" || typeof value.type !== "string") return [];
|
|
37504
39030
|
return [{
|
|
37505
39031
|
id: value.id,
|
|
@@ -37513,7 +39039,7 @@ function parseStringArray(value) {
|
|
|
37513
39039
|
if (!Array.isArray(value)) return null;
|
|
37514
39040
|
return value.filter((item) => typeof item === "string");
|
|
37515
39041
|
}
|
|
37516
|
-
function
|
|
39042
|
+
function isRecord7(value) {
|
|
37517
39043
|
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
37518
39044
|
}
|
|
37519
39045
|
|
|
@@ -37741,6 +39267,11 @@ ${root} {
|
|
|
37741
39267
|
--er-event-card-bg: rgb(var(--tb-surface));
|
|
37742
39268
|
--er-event-card-border-width: var(--rb-border-width, 1px);
|
|
37743
39269
|
--er-event-card-hover-opacity: 1;
|
|
39270
|
+
--er-control-bg: rgb(var(--tb-background, var(--tb-surface)));
|
|
39271
|
+
--er-control-text: rgb(var(--tb-foreground, var(--tb-text)));
|
|
39272
|
+
--er-radius: var(--rb-block-radius);
|
|
39273
|
+
--er-surface-muted: rgba(var(--tb-muted, 241 245 249), 0.42);
|
|
39274
|
+
--er-shell-line: rgba(var(--tb-mutedText, 100 116 139), 0.22);
|
|
37744
39275
|
|
|
37745
39276
|
/* Step indicator */
|
|
37746
39277
|
--er-step-active: rgb(var(--tb-primary));
|
|
@@ -38383,11 +39914,11 @@ function resolveParamsBindings(input, vm, meta) {
|
|
|
38383
39914
|
return binding.fallback;
|
|
38384
39915
|
}
|
|
38385
39916
|
return resolved;
|
|
38386
|
-
} catch (
|
|
39917
|
+
} catch (err3) {
|
|
38387
39918
|
if (shouldLogWarnings) {
|
|
38388
39919
|
console.warn(
|
|
38389
39920
|
`bindings: failed to parse loader param binding for block "${meta?.blockKind ?? "unknown"}"`,
|
|
38390
|
-
|
|
39921
|
+
err3
|
|
38391
39922
|
);
|
|
38392
39923
|
}
|
|
38393
39924
|
return void 0;
|
|
@@ -39308,7 +40839,7 @@ function preset(id, verticalId, canonicalBehaviour, label, pluralLabel, descript
|
|
|
39308
40839
|
}
|
|
39309
40840
|
|
|
39310
40841
|
// ../api/src/utils/isRecord.ts
|
|
39311
|
-
function
|
|
40842
|
+
function isRecord8(value) {
|
|
39312
40843
|
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
39313
40844
|
}
|
|
39314
40845
|
|
|
@@ -39615,7 +41146,7 @@ function sanitizeMarks(marks) {
|
|
|
39615
41146
|
if (mark.type === "bold" || mark.type === "strong" || mark.type === "italic" || mark.type === "em") {
|
|
39616
41147
|
return [{ type: mark.type }];
|
|
39617
41148
|
}
|
|
39618
|
-
if (mark.type === "link" &&
|
|
41149
|
+
if (mark.type === "link" && isRecord8(mark.attrs) && typeof mark.attrs.href === "string") {
|
|
39619
41150
|
const attrs = { href: mark.attrs.href };
|
|
39620
41151
|
if (typeof mark.attrs.target === "string" && mark.attrs.target.trim().length > 0) {
|
|
39621
41152
|
attrs.target = mark.attrs.target;
|
|
@@ -39630,10 +41161,10 @@ function sanitizeMarks(marks) {
|
|
|
39630
41161
|
return sanitized.length > 0 ? sanitized : void 0;
|
|
39631
41162
|
}
|
|
39632
41163
|
function unwrapRichTextValue(value) {
|
|
39633
|
-
if (
|
|
41164
|
+
if (isRecord8(value) && isRecord8(value.doc)) {
|
|
39634
41165
|
return unwrapRichTextValue(value.doc);
|
|
39635
41166
|
}
|
|
39636
|
-
if (
|
|
41167
|
+
if (isRecord8(value) && value.type === "doc") {
|
|
39637
41168
|
return {
|
|
39638
41169
|
type: "doc",
|
|
39639
41170
|
content: Array.isArray(value.content) ? value.content.filter(isTipTapNodeLike).map(coerceTipTapNode) : []
|
|
@@ -39642,7 +41173,7 @@ function unwrapRichTextValue(value) {
|
|
|
39642
41173
|
return EMPTY_SITE_BANNER_BODY;
|
|
39643
41174
|
}
|
|
39644
41175
|
function isTipTapNodeLike(value) {
|
|
39645
|
-
return
|
|
41176
|
+
return isRecord8(value) && typeof value.type === "string";
|
|
39646
41177
|
}
|
|
39647
41178
|
function coerceTipTapNode(value) {
|
|
39648
41179
|
return {
|
|
@@ -39650,9 +41181,9 @@ function coerceTipTapNode(value) {
|
|
|
39650
41181
|
...Array.isArray(value.content) ? { content: value.content.filter(isTipTapNodeLike).map(coerceTipTapNode) } : {},
|
|
39651
41182
|
...typeof value.text === "string" ? { text: value.text } : {},
|
|
39652
41183
|
...Array.isArray(value.marks) ? {
|
|
39653
|
-
marks: value.marks.filter((mark) =>
|
|
41184
|
+
marks: value.marks.filter((mark) => isRecord8(mark) && typeof mark.type === "string").map((mark) => ({
|
|
39654
41185
|
type: mark.type,
|
|
39655
|
-
...
|
|
41186
|
+
...isRecord8(mark.attrs) ? { attrs: mark.attrs } : {}
|
|
39656
41187
|
}))
|
|
39657
41188
|
} : {}
|
|
39658
41189
|
};
|
|
@@ -39800,7 +41331,7 @@ var ENTRY_REF_KEYS = [
|
|
|
39800
41331
|
"entryId",
|
|
39801
41332
|
"slug"
|
|
39802
41333
|
];
|
|
39803
|
-
function
|
|
41334
|
+
function isRecord9(value) {
|
|
39804
41335
|
return Boolean(value) && typeof value === "object" && !Array.isArray(value);
|
|
39805
41336
|
}
|
|
39806
41337
|
function extractManualEntryRef(item) {
|
|
@@ -39808,7 +41339,7 @@ function extractManualEntryRef(item) {
|
|
|
39808
41339
|
const trimmed = item.trim();
|
|
39809
41340
|
return trimmed.length > 0 ? trimmed : null;
|
|
39810
41341
|
}
|
|
39811
|
-
if (!
|
|
41342
|
+
if (!isRecord9(item)) return null;
|
|
39812
41343
|
for (const key of ENTRY_REF_KEYS) {
|
|
39813
41344
|
const raw = item[key];
|
|
39814
41345
|
if (typeof raw === "string" && raw.trim().length > 0) {
|
|
@@ -40439,6 +41970,31 @@ function isDocWrapper(value) {
|
|
|
40439
41970
|
var normalizeBindingOutput2 = normalizeBindingOutput;
|
|
40440
41971
|
var applyBindingsToContent2 = applyBindingsToContent;
|
|
40441
41972
|
|
|
41973
|
+
// ../content-model/src/entry-slots/types.ts
|
|
41974
|
+
function ok2(value) {
|
|
41975
|
+
return { ok: true, value };
|
|
41976
|
+
}
|
|
41977
|
+
function err2(error) {
|
|
41978
|
+
return { ok: false, error };
|
|
41979
|
+
}
|
|
41980
|
+
var SLOT_KEY_PATTERN = /^[a-z][a-z0-9]*(?:[-_][a-z0-9]+)*$/;
|
|
41981
|
+
function unsafeAsSlotKey(value) {
|
|
41982
|
+
return value;
|
|
41983
|
+
}
|
|
41984
|
+
function parseSlotKey(value) {
|
|
41985
|
+
if (typeof value !== "string") return err2({ kind: "not-string" });
|
|
41986
|
+
const normalized = value.trim();
|
|
41987
|
+
if (!normalized) return err2({ kind: "empty" });
|
|
41988
|
+
if (!SLOT_KEY_PATTERN.test(normalized)) {
|
|
41989
|
+
return err2({ kind: "invalid-format", value: normalized });
|
|
41990
|
+
}
|
|
41991
|
+
return ok2(unsafeAsSlotKey(normalized));
|
|
41992
|
+
}
|
|
41993
|
+
var SYSTEM_ENTRY_SLOT_BLOCK_KIND = "system.entry-slot";
|
|
41994
|
+
function selectBlocksForDeclaredEntrySlot(input) {
|
|
41995
|
+
return input.entrySlots.find((slot) => slot.slotKey === input.declaredSlotKey)?.blocks ?? [];
|
|
41996
|
+
}
|
|
41997
|
+
|
|
40442
41998
|
// src/rendering/helpers/loadContent.ts
|
|
40443
41999
|
function isPageContent(result) {
|
|
40444
42000
|
return result.type === "page";
|
|
@@ -40491,6 +42047,7 @@ async function loadContent(params) {
|
|
|
40491
42047
|
};
|
|
40492
42048
|
const { templatePage, resolvedData: resolvedData2 } = await processEntryTemplate(
|
|
40493
42049
|
contentResponse.templates,
|
|
42050
|
+
contentResponse.entrySlots,
|
|
40494
42051
|
entry,
|
|
40495
42052
|
{ siteId, preview },
|
|
40496
42053
|
client,
|
|
@@ -40614,7 +42171,7 @@ function validateAndConvertBlock(block, source) {
|
|
|
40614
42171
|
content
|
|
40615
42172
|
};
|
|
40616
42173
|
}
|
|
40617
|
-
async function processEntryTemplate(templates, entry, context, client, options) {
|
|
42174
|
+
async function processEntryTemplate(templates, entrySlots, entry, context, client, options) {
|
|
40618
42175
|
const template = templates?.[0];
|
|
40619
42176
|
if (!template || !template.blocks?.length) {
|
|
40620
42177
|
return { templatePage: null, resolvedData: {} };
|
|
@@ -40632,7 +42189,12 @@ async function processEntryTemplate(templates, entry, context, client, options)
|
|
|
40632
42189
|
updatedAt: entry.updatedAt
|
|
40633
42190
|
}
|
|
40634
42191
|
};
|
|
40635
|
-
const blocks = template.blocks.
|
|
42192
|
+
const blocks = template.blocks.flatMap(
|
|
42193
|
+
(block) => resolveTemplateBlockSequence(block, bindingContext, entrySlots)
|
|
42194
|
+
);
|
|
42195
|
+
if (blocks.length === 0) {
|
|
42196
|
+
return { templatePage: null, resolvedData: {} };
|
|
42197
|
+
}
|
|
40636
42198
|
const templatePage = {
|
|
40637
42199
|
name: template.name || "Entry Template",
|
|
40638
42200
|
path: entry.path || "/",
|
|
@@ -40672,6 +42234,48 @@ function resolveTemplateBlock(block, bindingContext) {
|
|
|
40672
42234
|
content: resolvedContent
|
|
40673
42235
|
};
|
|
40674
42236
|
}
|
|
42237
|
+
function resolveTemplateBlockSequence(block, bindingContext, entrySlots) {
|
|
42238
|
+
const slotKey = readEntrySlotKey(block);
|
|
42239
|
+
if (slotKey) {
|
|
42240
|
+
return selectBlocksForDeclaredEntrySlot({
|
|
42241
|
+
declaredSlotKey: slotKey,
|
|
42242
|
+
entrySlots: entrySlots ?? []
|
|
42243
|
+
}).map(mapEntrySlotBlock);
|
|
42244
|
+
}
|
|
42245
|
+
if (block.blockKind === SYSTEM_ENTRY_SLOT_BLOCK_KIND) {
|
|
42246
|
+
return [];
|
|
42247
|
+
}
|
|
42248
|
+
return [resolveTemplateBlock(block, bindingContext)];
|
|
42249
|
+
}
|
|
42250
|
+
function readEntrySlotKey(block) {
|
|
42251
|
+
if (block.blockKind !== SYSTEM_ENTRY_SLOT_BLOCK_KIND) return null;
|
|
42252
|
+
if (block.scope !== "template") return null;
|
|
42253
|
+
const content = block.content;
|
|
42254
|
+
const slotKey = content?.slotKey;
|
|
42255
|
+
const parsed = parseSlotKey(slotKey);
|
|
42256
|
+
return parsed.ok ? parsed.value : null;
|
|
42257
|
+
}
|
|
42258
|
+
function mapEntrySlotBlock(block) {
|
|
42259
|
+
const mapped = {
|
|
42260
|
+
id: block.id ?? block.blockId ?? null,
|
|
42261
|
+
kind: block.kind,
|
|
42262
|
+
purpose: block.purpose,
|
|
42263
|
+
orderIndex: block.orderIndex ?? null,
|
|
42264
|
+
content: normalizeBindingOutput2(block.content ?? {}),
|
|
42265
|
+
draftContent: normalizeNullableEntrySlotContent(block.draftContent),
|
|
42266
|
+
publishedContent: normalizeNullableEntrySlotContent(block.publishedContent)
|
|
42267
|
+
};
|
|
42268
|
+
if (block.bindings == null) {
|
|
42269
|
+
return mapped;
|
|
42270
|
+
}
|
|
42271
|
+
return {
|
|
42272
|
+
...mapped,
|
|
42273
|
+
bindings: block.bindings
|
|
42274
|
+
};
|
|
42275
|
+
}
|
|
42276
|
+
function normalizeNullableEntrySlotContent(content) {
|
|
42277
|
+
return content == null ? null : normalizeBindingOutput2(content);
|
|
42278
|
+
}
|
|
40675
42279
|
export {
|
|
40676
42280
|
createRiverbankClient,
|
|
40677
42281
|
isEntryContent,
|