@riverbankcms/sdk 0.107.0 → 0.109.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +21 -1
- package/dist/{PreviewEditorSidebar-DpAbAl08.mjs → PreviewEditorSidebar-DWqwfy3_.mjs} +48 -28
- package/dist/{PreviewEditorUI-O7cn6Xxv.mjs → PreviewEditorUI-B7OL4sfR.mjs} +10 -9
- package/dist/{PreviewQueryProvider-D0tnKl0t.mjs → PreviewQueryProvider-D0y2l8JN.mjs} +1 -1
- package/dist/{SdkPreviewModeRuntime-CVB7urtl.mjs → SdkPreviewModeRuntime-D8Gt9Gbe.mjs} +633 -220
- package/dist/{SiteChromeCustomizeContext-C_sizso-.mjs → SiteChromeCustomizeContext-DUpalEdL.mjs} +5764 -1556
- package/dist/_dts/ai/src/contracts/proposals.d.ts +15383 -11388
- package/dist/_dts/api/src/blocks.d.ts +41 -7
- package/dist/_dts/api/src/bookingAdjustments.d.ts +5 -0
- package/dist/_dts/api/src/bookingOperations.d.ts +4 -0
- package/dist/_dts/api/src/bookingRecords.d.ts +177 -127
- package/dist/_dts/api/src/bookingRefundOutcomes.d.ts +6 -6
- package/dist/_dts/api/src/cache-tags.d.ts +3 -0
- package/dist/_dts/api/src/common/envelope.d.ts +7 -0
- package/dist/_dts/api/src/contentRuntime.d.ts +19 -1
- package/dist/_dts/api/src/courses.d.ts +1 -0
- package/dist/_dts/api/src/customerMembershipOutcomes.d.ts +5 -5
- package/dist/_dts/api/src/endpoints.d.ts +134 -0
- package/dist/_dts/api/src/footer-settings.d.ts +1 -0
- package/dist/_dts/api/src/footerSettings.d.ts +8 -0
- package/dist/_dts/api/src/index.d.ts +7 -4
- package/dist/_dts/api/src/navigation/contracts.d.ts +3 -3
- package/dist/_dts/api/src/participantMessaging.d.ts +18 -12
- package/dist/_dts/api/src/previewContentContract.d.ts +4 -0
- package/dist/_dts/api/src/publicExperienceEndpoints.d.ts +1 -0
- package/dist/_dts/api/src/sdkContracts.d.ts +309 -1
- package/dist/_dts/api/src/siteBanner.d.ts +2 -2
- package/dist/_dts/api/src/siteInfrastructure.d.ts +13 -0
- package/dist/_dts/api/src/siteManagementEndpoints.d.ts +144 -60
- package/dist/_dts/api/src/sitePlatformEndpoints.d.ts +35 -1
- package/dist/_dts/api/src/siteRuntimeEndpoints.d.ts +74 -28
- package/dist/_dts/block-form/src/widgets/BackgroundGradientWidget/BackgroundGradientField.d.ts +9 -0
- package/dist/_dts/block-form/src/widgets/BackgroundGradientWidget/BackgroundGradientWidget.d.ts +3 -4
- package/dist/_dts/blocks/src/contracts/proof-block-islands.d.ts +4 -4
- package/dist/_dts/blocks/src/index.d.ts +1 -1
- package/dist/_dts/blocks/src/primitives/layout/Section.d.ts +0 -1
- package/dist/_dts/blocks/src/rendering/server.d.ts +1 -0
- package/dist/_dts/blocks/src/system/blocks/audio-player.d.ts +3 -0
- package/dist/_dts/blocks/src/system/blocks/body-text.d.ts +3 -0
- package/dist/_dts/blocks/src/system/blocks/contact-newsletter.d.ts +3 -0
- package/dist/_dts/blocks/src/system/blocks/course-registration.d.ts +1 -22
- package/dist/_dts/blocks/src/system/blocks/cta-full.d.ts +3 -0
- package/dist/_dts/blocks/src/system/blocks/event-registration.d.ts +1 -22
- package/dist/_dts/blocks/src/system/blocks/file-download.d.ts +3 -0
- package/dist/_dts/blocks/src/system/blocks/form.d.ts +3 -0
- package/dist/_dts/blocks/src/system/blocks/image-gallery.d.ts +3 -0
- package/dist/_dts/blocks/src/system/blocks/media-text.d.ts +3 -0
- package/dist/_dts/blocks/src/system/blocks/newsletter-signup.d.ts +3 -0
- package/dist/_dts/blocks/src/system/blocks/site-footer-runtime.d.ts +50 -0
- package/dist/_dts/blocks/src/system/blocks/site-footer.d.ts +9 -48
- package/dist/_dts/blocks/src/system/blocks/site-header.d.ts +3 -0
- package/dist/_dts/blocks/src/system/blocks/team-members.d.ts +3 -0
- package/dist/_dts/blocks/src/system/blocks/testimonials.d.ts +3 -0
- package/dist/_dts/blocks/src/system/blocks/video-grid.d.ts +3 -0
- package/dist/_dts/blocks/src/system/constants/background.d.ts +1 -1
- package/dist/_dts/blocks/src/system/customize/backgrounds.d.ts +16 -6
- package/dist/_dts/blocks/src/system/defineBlock.d.ts +9 -1
- package/dist/_dts/blocks/src/system/fields/ctas.d.ts +8 -0
- package/dist/_dts/blocks/src/system/icons/registry.d.ts +2 -1
- package/dist/_dts/blocks/src/system/icons/social.d.ts +5 -0
- package/dist/_dts/blocks/src/system/icons/svg.d.ts +1 -0
- package/dist/_dts/blocks/src/system/manifest/schema.d.ts +33 -2
- package/dist/_dts/blocks/src/system/node/fragments/backgroundLayer.d.ts +13 -0
- package/dist/_dts/blocks/src/system/node/fragments/footerNav.d.ts +2 -0
- package/dist/_dts/blocks/src/system/node/fragments/styledContainer.d.ts +4 -4
- package/dist/_dts/blocks/src/system/node/fragments/styledSection.d.ts +3 -12
- package/dist/_dts/blocks/src/system/node/validation-constants.d.ts +1 -1
- package/dist/_dts/blocks/src/system/runtime/components/registry.client.d.ts +6 -6
- package/dist/_dts/blocks/src/system/runtime/components/runtime-backed-blocks.d.ts +3 -3
- package/dist/_dts/blocks/src/system/runtime/nodes/shared/contract-schemas.d.ts +2 -2
- package/dist/_dts/blocks/src/system/types/link.d.ts +3 -3
- package/dist/_dts/content-editor/src/FooterComposerPanel.d.ts +14 -0
- package/dist/_dts/content-editor/src/controller/EntryControllerProvider.d.ts +27 -8
- package/dist/_dts/content-editor/src/footerComposer.d.ts +56 -0
- package/dist/_dts/content-editor/src/hooks/useEntryActions.d.ts +1 -1
- package/dist/_dts/content-editor/src/hooks/useEntryMutations.d.ts +5 -5
- package/dist/_dts/content-editor/src/index.d.ts +2 -0
- package/dist/_dts/content-editor/src/primitives/PreviewRichTextEditor.d.ts +3 -1
- package/dist/_dts/content-editor/src/services/contentEntryServices.d.ts +20 -36
- package/dist/_dts/content-editor/src/ui/editorSnapshot.d.ts +5 -1
- package/dist/_dts/content-editor/src/ui/editorUiStore.d.ts +11 -0
- package/dist/_dts/content-model/src/content-types/entryValidation.d.ts +31 -0
- package/dist/_dts/content-model/src/content-types/scaffold.d.ts +58 -0
- package/dist/_dts/content-model/src/content-types/schema.d.ts +1 -1
- package/dist/_dts/content-model/src/content-types/sentinels.d.ts +36 -0
- package/dist/_dts/content-model/src/definitions/shared.d.ts +3 -0
- package/dist/_dts/content-model/src/index.d.ts +3 -0
- package/dist/_dts/core/src/booking-date-time.d.ts +8 -0
- package/dist/_dts/core/src/branded.d.ts +3 -0
- package/dist/_dts/core/src/editor-state.d.ts +4 -0
- package/dist/_dts/core/src/footer-composition.d.ts +143 -0
- package/dist/_dts/core/src/index.d.ts +2 -0
- package/dist/_dts/core/src/public-profile.d.ts +73 -0
- package/dist/_dts/db/src/generated/supabase/database.types.d.ts +221 -205
- package/dist/_dts/db/src/schemas/forms.d.ts +10 -10
- package/dist/_dts/editor/src/primitives/rich-text/RichTextEditorSurface.d.ts +5 -0
- package/dist/_dts/editor-blocks/src/BlockEditor.d.ts +1 -0
- package/dist/_dts/editor-blocks/src/block-editor/hooks/useBlockCreation.d.ts +2 -1
- package/dist/_dts/editor-blocks/src/block-editor/hooks/useBlockDuplication.d.ts +2 -1
- package/dist/_dts/editor-blocks/src/block-editor/hooks/useBlockReorder.d.ts +2 -1
- package/dist/_dts/editor-blocks/src/block-editor/owner.d.ts +10 -0
- package/dist/_dts/editor-blocks/src/block-editor/types.d.ts +1 -0
- package/dist/_dts/media-core/src/fileMimeDetection.d.ts +16 -0
- package/dist/_dts/media-core/src/fileStorage.d.ts +8 -0
- package/dist/_dts/media-core/src/storagePathDomain.d.ts +2 -0
- package/dist/_dts/media-core/src/uploadVerificationContract.d.ts +3 -0
- package/dist/_dts/path-utils/src/index.d.ts +5 -0
- package/dist/_dts/preview-next/src/client/blocks/BlockToolbar.d.ts +2 -0
- package/dist/_dts/preview-next/src/client/preview/PreviewChromeLayer.d.ts +5 -0
- package/dist/_dts/preview-next/src/client/preview/PreviewEditorSidebar.d.ts +2 -1
- package/dist/_dts/preview-next/src/client/preview/PreviewEntryControllerProvider.d.ts +1 -0
- package/dist/_dts/preview-next/src/client/preview/PreviewShell.d.ts +2 -1
- package/dist/_dts/preview-next/src/client/preview/PreviewShellLayout.d.ts +2 -1
- package/dist/_dts/preview-next/src/client/preview/StyleConfigurator.state.d.ts +1 -0
- package/dist/_dts/preview-next/src/client/preview/previewErrorMessages.d.ts +4 -0
- package/dist/_dts/preview-next/src/client/preview/styleConfiguratorApplyPayload.d.ts +1 -1
- package/dist/_dts/sdk/src/cli/commands/audit.d.ts +1 -1
- package/dist/_dts/sdk/src/cli/commands/compare.d.ts +1 -1
- package/dist/_dts/sdk/src/cli/commands/deploy.d.ts +1 -1
- package/dist/_dts/sdk/src/cli/commands/drafts.d.ts +18 -0
- package/dist/_dts/sdk/src/cli/commands/entry.d.ts +15 -0
- package/dist/_dts/sdk/src/cli/commands/init-docs.d.ts +2 -2
- package/dist/_dts/sdk/src/cli/commands/publish-all.d.ts +1 -1
- package/dist/_dts/sdk/src/cli/commands/pull.d.ts +1 -0
- package/dist/_dts/sdk/src/cli/commands/push/execute/diff.d.ts +1 -1
- package/dist/_dts/sdk/src/cli/commands/push/options.d.ts +3 -0
- package/dist/_dts/sdk/src/cli/commands/push-execute.d.ts +12 -1
- package/dist/_dts/sdk/src/cli/commands/setup.d.ts +1 -0
- package/dist/_dts/sdk/src/cli/commands/verify.d.ts +1 -0
- package/dist/_dts/sdk/src/cli/content/reader.d.ts +1 -0
- package/dist/_dts/sdk/src/cli/helpers.d.ts +22 -1
- package/dist/_dts/sdk/src/cli/index.d.ts +4 -0
- package/dist/_dts/sdk/src/cli/output.d.ts +88 -0
- package/dist/_dts/sdk/src/cli/program.d.ts +29 -0
- package/dist/_dts/sdk/src/cli/push-config.d.ts +1 -1
- package/dist/_dts/sdk/src/client/management/blocks.d.ts +14 -1
- package/dist/_dts/sdk/src/client/management/catalog.d.ts +10 -0
- package/dist/_dts/sdk/src/client/management/http.d.ts +7 -1
- package/dist/_dts/sdk/src/client/management/index.d.ts +2 -1
- package/dist/_dts/sdk/src/client/management/types.d.ts +58 -20
- package/dist/_dts/sdk/src/config/content-types.d.ts +2 -0
- package/dist/_dts/sdk/src/config/content-validation.d.ts +4 -0
- package/dist/_dts/sdk/src/date-time/index.d.ts +68 -0
- package/dist/_dts/sdk/src/navigation/index.d.ts +2 -0
- package/dist/_dts/sdk/src/public-api/contracts.d.ts +5 -2
- package/dist/_dts/sdk/src/rendering/components/Layout.d.ts +2 -1
- package/dist/_dts/sdk/src/rendering/helpers/loadContent.d.ts +1 -1
- package/dist/_dts/sdk/src/version.d.ts +1 -1
- package/dist/_dts/site-commands/src/commands.d.ts +900 -827
- package/dist/_dts/theme-core/src/accordions/types.d.ts +2 -2
- package/dist/_dts/theme-core/src/buttons/core.d.ts +15 -46
- package/dist/_dts/theme-core/src/buttons/effectClassification.d.ts +147 -0
- package/dist/_dts/theme-core/src/buttons/effects/types.d.ts +2 -3
- package/dist/_dts/theme-core/src/buttons/generateDefaultButtonSystem.d.ts +1 -1
- package/dist/_dts/theme-core/src/buttons/index.d.ts +1 -0
- package/dist/_dts/theme-core/src/buttons/personalities/index.d.ts +11 -0
- package/dist/_dts/theme-core/src/buttons/personalities/two-tone-pill.d.ts +17 -0
- package/dist/_dts/theme-core/src/buttons/personalities/types.d.ts +45 -33
- package/dist/_dts/theme-core/src/buttons/presets.d.ts +4 -25
- package/dist/_dts/theme-core/src/buttons/resolveButtonColourStates.d.ts +100 -0
- package/dist/_dts/theme-core/src/buttons/resolvedButtonCss.d.ts +16 -0
- package/dist/_dts/theme-core/src/buttons/types.d.ts +104 -86
- package/dist/_dts/theme-core/src/cards/types.d.ts +16 -16
- package/dist/_dts/theme-core/src/footer/mode.d.ts +15 -0
- package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
- package/dist/_dts/theme-core/src/gradients/presets.d.ts +200 -8
- package/dist/_dts/theme-core/src/gradients/utils.d.ts +6 -2
- package/dist/_dts/theme-core/src/interactive/baseSchema.d.ts +1 -1
- package/dist/_dts/theme-core/src/mock-themes/all.d.ts +117 -150
- package/dist/_dts/theme-core/src/mock-themes/modern-minimal.d.ts +1 -1
- package/dist/_dts/theme-core/src/navigation/types.d.ts +3 -3
- package/dist/_dts/theme-core/src/palette/curated/index.d.ts +2 -2
- package/dist/_dts/theme-core/src/palette/curated/types.d.ts +5 -8
- package/dist/_dts/theme-core/src/palette/index.d.ts +0 -1
- package/dist/_dts/theme-core/src/schema.d.ts +1264 -138
- package/dist/_dts/theme-core/src/site-styles/backgroundAppearance.d.ts +2 -2
- package/dist/_dts/theme-core/src/site-styles/designState.d.ts +10 -10
- package/dist/_dts/theme-core/src/site-styles/headerLooks.d.ts +12 -1
- package/dist/_dts/theme-core/src/site-styles/pageDesignEditorModel.d.ts +3 -2
- package/dist/_dts/theme-core/src/site-styles/pageDesignIntent.d.ts +13 -6
- package/dist/_dts/theme-core/src/site-styles/runtimeCompiler.d.ts +29 -8
- package/dist/_dts/theme-core/src/site-styles/siteChromeNavPreferences.d.ts +15 -0
- package/dist/_dts/theme-core/src/site-styles/styleTags.d.ts +2 -2
- package/dist/cli/index.mjs +68552 -66955
- package/dist/cli/init-docs/content/cli-reference.md +50 -7
- package/dist/cli/init-docs/content/content-management.md +7 -4
- package/dist/cli/init-docs/content/workflow-publish.md +5 -1
- package/dist/client/{DiscountCodeDisclosure-BwGkvmVH.mjs → DiscountCodeDisclosure-DU1ygxU2.mjs} +1 -1
- package/dist/client/{EventCombined.client-JnWE6Hzc.mjs → EventCombined.client-DB5zagCo.mjs} +3 -3
- package/dist/client/{EventListing.client-DQewc_kg.mjs → EventListing.client-CTX9JHBL.mjs} +2 -2
- package/dist/client/{LeafletStaticMap-DPAU3SFt.mjs → LeafletStaticMap-BYImhgiB.mjs} +1 -1
- package/dist/client/{MagicLinkForm-D4kpWCbW.mjs → MagicLinkForm-CRkw_M3l.mjs} +2 -2
- package/dist/client/{StepIndicator-CBlkb4rA.mjs → StepIndicator-BnmVBJJh.mjs} +2 -2
- package/dist/client/{accordion-DAIBVpTS.mjs → accordion-CeGreumd.mjs} +1 -1
- package/dist/client/{bookingForm-DZ-4l5_1.mjs → bookingForm-CSzFNrpN.mjs} +6 -6
- package/dist/client/bookings.mjs +637 -328
- package/dist/client/{buttons-DJgynGHQ.mjs → buttons-DoFV7KDL.mjs} +618 -306
- package/dist/client/{carousel-D-SLfX8r.mjs → carousel-B2jDtogf.mjs} +1 -1
- package/dist/client/{cart-CEgbgJhX.mjs → cart-D-jZ-vaY.mjs} +3 -3
- package/dist/client/{checkout-CXWrCRAA.mjs → checkout-Dza-LA7N.mjs} +3 -3
- package/dist/client/client.mjs +2497 -1216
- package/dist/client/{colorStyles-jZS6KfkP.mjs → colorStyles-CrgzoXsm.mjs} +1 -30
- package/dist/client/{courseRegistration-DVmLrRVz.mjs → courseRegistration-TYkNychb.mjs} +7 -7
- package/dist/client/{eventCalendar-DCuyPY_c.mjs → eventCalendar-BI_90SsT.mjs} +5 -5
- package/dist/client/{eventCombined-kP2CA2D4.mjs → eventCombined-mNrpryE9.mjs} +2 -2
- package/dist/client/{eventDetails-DU0LeF5e.mjs → eventDetails-D4GVlCIY.mjs} +3 -3
- package/dist/client/{eventListing-CcHF87BI.mjs → eventListing-YhKN018y.mjs} +2 -2
- package/dist/client/{eventRegistration-DJnR0yFH.mjs → eventRegistration-CdHGtilr.mjs} +7 -7
- package/dist/client/foregroundContract-xICPq59x.mjs +31 -0
- package/dist/client/{form-CH1lCusH.mjs → form-AcAL45rA.mjs} +2 -2
- package/dist/client/{headerSection-CBPFZoku.mjs → headerSection-uEC52ueD.mjs} +3 -3
- package/dist/client/hooks.mjs +1249 -841
- package/dist/client/{locationMap-Cx1hBg5n.mjs → locationMap-_wJDSUYe.mjs} +3 -3
- package/dist/client/{media-DHtSxS5V.mjs → media-BK0O3b-U.mjs} +3 -2
- package/dist/client/{newsletterForm-1ZL_ti9u.mjs → newsletterForm-DrArsb2B.mjs} +2 -2
- package/dist/client/{pricing-BIbzmV0G.mjs → pricing-BSYVghwo.mjs} +1 -1
- package/dist/client/{productDetail-BTh5gHBV.mjs → productDetail-Dyk90sMs.mjs} +3 -3
- package/dist/client/{productList-Cc7OMrqN.mjs → productList-BCKThwAI.mjs} +3 -3
- package/dist/client/{propsDecoder-oR-M-ISN.mjs → propsDecoder-CkXxkdSR.mjs} +96 -33
- package/dist/client/rendering/client.mjs +1278 -523
- package/dist/client/rendering/islands.mjs +19 -19
- package/dist/client/rendering.mjs +2308 -1028
- package/dist/client/{shop-CQ_YbCnn.mjs → shop-DeltVH10.mjs} +6 -6
- package/dist/client/{shop-commerce-BM-AoD3M.mjs → shop-commerce-BD9Jsm2Z.mjs} +6 -6
- package/dist/client/{shop-commerce-store-DFMQhU5p.mjs → shop-commerce-store-CmXD6FDS.mjs} +1 -1
- package/dist/client/{shopShared-D0SKO2Cu.mjs → shopShared-B8v-lH_F.mjs} +2 -2
- package/dist/client/{useDiscountCodeUi-CrG4_ARt.mjs → useDiscountCodeUi-DbWJN8ld.mjs} +1 -1
- package/dist/client/{useEventFilters-CxK8Fekl.mjs → useEventFilters-EJIMUnqT.mjs} +46 -69
- package/dist/client/{usePolling-jcVryNgZ.mjs → usePolling-Cmh14fc7.mjs} +2 -2
- package/dist/preview-next/before-render.mjs +213 -0
- package/dist/preview-next/client/runtime.mjs +4 -4
- package/dist/preview-next/middleware.mjs +213 -0
- package/dist/{previewAuthStore-BPcJPzdz.mjs → previewAuthStore-CTO7CRPk.mjs} +213 -0
- package/dist/{sdk-runtime-C39Rsk-x.mjs → sdk-runtime-Dou0GAav.mjs} +2 -2
- package/dist/{separator-BoMSQnsP.mjs → separator-CI5wZNXT.mjs} +1 -1
- package/dist/server/components.mjs +2370 -1132
- package/dist/server/config-validation.mjs +1256 -842
- package/dist/server/config.mjs +1256 -843
- package/dist/server/data.mjs +1249 -841
- package/dist/server/date-time.mjs +386 -0
- package/dist/server/index.mjs +214 -1
- package/dist/server/navigation.mjs +9 -3
- package/dist/server/next.mjs +3421 -1949
- package/dist/server/page-converter.mjs +1236 -659
- package/dist/server/prebuild.mjs +1 -1
- package/dist/server/rendering/server.mjs +2074 -1060
- package/dist/server/rendering.mjs +2370 -1132
- package/dist/server/routing.mjs +1543 -1062
- package/dist/server/server.mjs +1464 -843
- package/dist/server/theme-bridge.mjs +1581 -474
- package/dist/server/theme.mjs +614 -305
- package/dist/styles/index.css +12 -1
- package/package.json +7 -1
- package/dist/_dts/theme-core/src/buttons/presets/types.d.ts +0 -88
- package/dist/_dts/theme-core/src/buttons/utils/contrast.d.ts +0 -38
- package/dist/_dts/theme-core/src/palette/themePaletteCompatibility.d.ts +0 -57
package/dist/server/config.mjs
CHANGED
|
@@ -45,8 +45,6 @@ function fallbackBinding(...sources) {
|
|
|
45
45
|
sources: [...sources]
|
|
46
46
|
};
|
|
47
47
|
}
|
|
48
|
-
//#endregion
|
|
49
|
-
//#region ../api/src/apiEndpointTypes.ts
|
|
50
48
|
function blockedDemoMutationPolicy(classification, publicMessage) {
|
|
51
49
|
if (publicMessage.trim() === "") throw new Error(`Demo mutation policy ${classification} requires publicMessage.`);
|
|
52
50
|
return {
|
|
@@ -74,6 +72,7 @@ const TAG_TEMPLATES = {
|
|
|
74
72
|
siteRouteOutcomes: "riverbank:site:{siteId}:route-outcomes",
|
|
75
73
|
routeById: "riverbank:route:{routeId}",
|
|
76
74
|
pageById: "riverbank:page:{pageId}",
|
|
75
|
+
pageSurfaceById: "riverbank:page-surface:{pageSurfaceId}",
|
|
77
76
|
workflowRunById: "riverbank:workflow-run:{runId}",
|
|
78
77
|
siteForms: "riverbank:site:{siteId}:forms",
|
|
79
78
|
formById: "riverbank:form:{formId}",
|
|
@@ -97,7 +96,7 @@ const TAG_TEMPLATES = {
|
|
|
97
96
|
blockedDemoMutationPolicy("blocked-hidden", "This action is not available in demo sites.");
|
|
98
97
|
blockedDemoMutationPolicy("blocked-disabled", "This setting is disabled in demo sites.");
|
|
99
98
|
blockedDemoMutationPolicy("internal-only", "This internal operation is not available in demo sites.");
|
|
100
|
-
TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteTheme, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.site, TAG_TEMPLATES.siteBookingSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteBookingSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteEmailSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteEmailSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteEmailSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteEmailSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.site, TAG_TEMPLATES.site, TAG_TEMPLATES.site, TAG_TEMPLATES.site, TAG_TEMPLATES.site, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.routeById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteById, TAG_TEMPLATES.siteBySlug, TAG_TEMPLATES.siteByDomain, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteById, TAG_TEMPLATES.siteBySlug, TAG_TEMPLATES.siteByDomain, TAG_TEMPLATES.workflowRunById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.routeById, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.site, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteNavigation, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteNavigation, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteNavigation, TAG_TEMPLATES.navigationMenuById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteNavigation, TAG_TEMPLATES.navigationMenuById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteNavigation, TAG_TEMPLATES.navigationMenuById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteNavigation, TAG_TEMPLATES.navigationMenuById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteNavigation, TAG_TEMPLATES.navigationMenuById, TAG_TEMPLATES.navigationItemById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteNavigation, TAG_TEMPLATES.navigationMenuById, TAG_TEMPLATES.navigationItemById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteNavigation, TAG_TEMPLATES.navigationMenuById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteTheme, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteTheme, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteTheme, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.siteRedirects, TAG_TEMPLATES.siteRouteOutcomes, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.siteRedirects, TAG_TEMPLATES.siteRouteOutcomes, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.formSubmissionsBySlug, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.formSubmissionsBySlug, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.formSubmissionsBySlug, TAG_TEMPLATES.formById, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.publicEvents, TAG_TEMPLATES.publicEventFilters, TAG_TEMPLATES.publicCourses, TAG_TEMPLATES.publicTeamMembers, TAG_TEMPLATES.publicCourses, TAG_TEMPLATES.publicCourses, TAG_TEMPLATES.publicCourses, TAG_TEMPLATES.publicCourses, TAG_TEMPLATES.publicEvents, TAG_TEMPLATES.publicCourses, TAG_TEMPLATES.publicCourses, TAG_TEMPLATES.publicPasses, TAG_TEMPLATES.publicMemberships, TAG_TEMPLATES.publicProducts, TAG_TEMPLATES.publicGifting, TAG_TEMPLATES.publicGifting, TAG_TEMPLATES.publicGifting, TAG_TEMPLATES.publicShop, TAG_TEMPLATES.publicCheckout, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.publicEvents, TAG_TEMPLATES.publicEvents, TAG_TEMPLATES.publicEvents, TAG_TEMPLATES.publicEvents, TAG_TEMPLATES.publicEvents, TAG_TEMPLATES.publicEvents;
|
|
99
|
+
TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteTheme, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.site, TAG_TEMPLATES.siteBookingSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteBookingSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteEmailSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteEmailSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteEmailSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteEmailSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.site, TAG_TEMPLATES.site, TAG_TEMPLATES.site, TAG_TEMPLATES.site, TAG_TEMPLATES.site, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.routeById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteById, TAG_TEMPLATES.siteBySlug, TAG_TEMPLATES.siteByDomain, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteById, TAG_TEMPLATES.siteBySlug, TAG_TEMPLATES.siteByDomain, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.pageSurfaceById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.pageSurfaceById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageSurfaceById, TAG_TEMPLATES.workflowRunById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.routeById, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.site, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteNavigation, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteNavigation, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteNavigation, TAG_TEMPLATES.navigationMenuById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteNavigation, TAG_TEMPLATES.navigationMenuById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteNavigation, TAG_TEMPLATES.navigationMenuById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteNavigation, TAG_TEMPLATES.navigationMenuById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteNavigation, TAG_TEMPLATES.navigationMenuById, TAG_TEMPLATES.navigationItemById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteNavigation, TAG_TEMPLATES.navigationMenuById, TAG_TEMPLATES.navigationItemById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteNavigation, TAG_TEMPLATES.navigationMenuById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteTheme, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteTheme, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteTheme, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.pageSurfaceById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.pageSurfaceById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.pageSurfaceById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.pageSurfaceById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.siteRedirects, TAG_TEMPLATES.siteRouteOutcomes, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.siteRedirects, TAG_TEMPLATES.siteRouteOutcomes, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.formSubmissionsBySlug, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.formSubmissionsBySlug, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.formSubmissionsBySlug, TAG_TEMPLATES.formById, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.publicEvents, TAG_TEMPLATES.publicEventFilters, TAG_TEMPLATES.publicCourses, TAG_TEMPLATES.publicTeamMembers, TAG_TEMPLATES.publicCourses, TAG_TEMPLATES.publicCourses, TAG_TEMPLATES.publicCourses, TAG_TEMPLATES.publicCourses, TAG_TEMPLATES.publicEvents, TAG_TEMPLATES.publicCourses, TAG_TEMPLATES.publicCourses, TAG_TEMPLATES.publicPasses, TAG_TEMPLATES.publicMemberships, TAG_TEMPLATES.publicProducts, TAG_TEMPLATES.publicGifting, TAG_TEMPLATES.publicGifting, TAG_TEMPLATES.publicGifting, TAG_TEMPLATES.publicShop, TAG_TEMPLATES.publicCheckout, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.publicEvents, TAG_TEMPLATES.publicEvents, TAG_TEMPLATES.publicEvents, TAG_TEMPLATES.publicEvents, TAG_TEMPLATES.publicEvents, TAG_TEMPLATES.publicEvents;
|
|
101
100
|
//#endregion
|
|
102
101
|
//#region ../core/src/result.ts
|
|
103
102
|
function ok(value) {
|
|
@@ -250,19 +249,29 @@ function isRecord$7(value) {
|
|
|
250
249
|
//#region ../core/src/booking-date-time.ts
|
|
251
250
|
const DEFAULT_LOCALE = "en-US";
|
|
252
251
|
const FALLBACK_TIMEZONE = "UTC";
|
|
252
|
+
const DATE_TIME_FORMATTER_CACHE_LIMIT = 100;
|
|
253
|
+
const dateTimeFormatterCache = /* @__PURE__ */ new Map();
|
|
254
|
+
const timeZoneValidityCache = /* @__PURE__ */ new Map();
|
|
253
255
|
function isValidTimeZone(timeZone) {
|
|
256
|
+
const cached = timeZoneValidityCache.get(timeZone);
|
|
257
|
+
if (cached !== void 0) return cached;
|
|
258
|
+
let isValid;
|
|
254
259
|
try {
|
|
255
260
|
new Intl.DateTimeFormat(DEFAULT_LOCALE, { timeZone }).format(/* @__PURE__ */ new Date());
|
|
256
|
-
|
|
261
|
+
isValid = true;
|
|
257
262
|
} catch {
|
|
258
|
-
|
|
263
|
+
isValid = false;
|
|
259
264
|
}
|
|
265
|
+
if (timeZoneValidityCache.size >= DATE_TIME_FORMATTER_CACHE_LIMIT) timeZoneValidityCache.clear();
|
|
266
|
+
timeZoneValidityCache.set(timeZone, isValid);
|
|
267
|
+
return isValid;
|
|
260
268
|
}
|
|
261
269
|
function getSafeTimeZone(timeZone) {
|
|
262
270
|
const normalized = typeof timeZone === "string" ? timeZone.trim() : "";
|
|
263
271
|
return normalized.length > 0 && isValidTimeZone(normalized) ? normalized : FALLBACK_TIMEZONE;
|
|
264
272
|
}
|
|
265
273
|
function parseStrictBookingTimeZone(timeZone) {
|
|
274
|
+
if (typeof timeZone !== "string") return null;
|
|
266
275
|
const normalized = timeZone.trim();
|
|
267
276
|
if (normalized.length === 0 || !isValidTimeZone(normalized)) return null;
|
|
268
277
|
return normalized;
|
|
@@ -275,10 +284,19 @@ function formatParseError(error) {
|
|
|
275
284
|
}
|
|
276
285
|
}
|
|
277
286
|
function formatToPartsLookup(date, locale, timeZone, format) {
|
|
278
|
-
return new Map(
|
|
287
|
+
return new Map(getCachedDateTimeFormatter(locale, timeZone, format).formatToParts(date).map((part) => [part.type, part.value]));
|
|
288
|
+
}
|
|
289
|
+
function getCachedDateTimeFormatter(locale, timeZone, format) {
|
|
290
|
+
const key = `${locale}\u0000${timeZone}\u0000${JSON.stringify(Object.entries(format).sort(([left], [right]) => left.localeCompare(right)))}`;
|
|
291
|
+
const cached = dateTimeFormatterCache.get(key);
|
|
292
|
+
if (cached !== void 0) return cached;
|
|
293
|
+
const formatter = new Intl.DateTimeFormat(locale, {
|
|
279
294
|
...format,
|
|
280
295
|
timeZone
|
|
281
|
-
})
|
|
296
|
+
});
|
|
297
|
+
if (dateTimeFormatterCache.size >= DATE_TIME_FORMATTER_CACHE_LIMIT) dateTimeFormatterCache.clear();
|
|
298
|
+
dateTimeFormatterCache.set(key, formatter);
|
|
299
|
+
return formatter;
|
|
282
300
|
}
|
|
283
301
|
function getZonedDateTimeParts(date, timeZone) {
|
|
284
302
|
const parts = formatToPartsLookup(date, "en-GB", timeZone, {
|
|
@@ -321,23 +339,9 @@ function toUtcIsoDateTimeString(value) {
|
|
|
321
339
|
return parsed.value;
|
|
322
340
|
}
|
|
323
341
|
function parseScheduledBookingDateTime(input) {
|
|
342
|
+
let startsAt;
|
|
324
343
|
try {
|
|
325
|
-
|
|
326
|
-
const timeZone = parseStrictBookingTimeZone(input.timeZone);
|
|
327
|
-
if (timeZone === null) return {
|
|
328
|
-
ok: false,
|
|
329
|
-
field: "timeZone",
|
|
330
|
-
reason: "invalid_time_zone",
|
|
331
|
-
value: input.timeZone
|
|
332
|
-
};
|
|
333
|
-
return {
|
|
334
|
-
ok: true,
|
|
335
|
-
value: {
|
|
336
|
-
startsAt,
|
|
337
|
-
timeZone,
|
|
338
|
-
locale: input.locale
|
|
339
|
-
}
|
|
340
|
-
};
|
|
344
|
+
startsAt = toUtcIsoDateTimeString(input.startsAt);
|
|
341
345
|
} catch {
|
|
342
346
|
return {
|
|
343
347
|
ok: false,
|
|
@@ -346,6 +350,21 @@ function parseScheduledBookingDateTime(input) {
|
|
|
346
350
|
value: input.startsAt
|
|
347
351
|
};
|
|
348
352
|
}
|
|
353
|
+
const timeZone = parseStrictBookingTimeZone(input.timeZone);
|
|
354
|
+
if (timeZone === null) return {
|
|
355
|
+
ok: false,
|
|
356
|
+
field: "timeZone",
|
|
357
|
+
reason: "invalid_time_zone",
|
|
358
|
+
value: typeof input.timeZone === "string" ? input.timeZone : ""
|
|
359
|
+
};
|
|
360
|
+
return {
|
|
361
|
+
ok: true,
|
|
362
|
+
value: {
|
|
363
|
+
startsAt,
|
|
364
|
+
timeZone,
|
|
365
|
+
locale: input.locale
|
|
366
|
+
}
|
|
367
|
+
};
|
|
349
368
|
}
|
|
350
369
|
function toScheduledBookingDateTime(input) {
|
|
351
370
|
const result = parseScheduledBookingDateTime(input);
|
|
@@ -3475,6 +3494,111 @@ const mediaSchema$1 = z.object({
|
|
|
3475
3494
|
transform: transformSchema$1.optional()
|
|
3476
3495
|
});
|
|
3477
3496
|
//#endregion
|
|
3497
|
+
//#region ../theme-core/src/buttons/effectClassification.ts
|
|
3498
|
+
/**
|
|
3499
|
+
* Exhaustive live policy for every registered effect id.
|
|
3500
|
+
*
|
|
3501
|
+
* The resolver consumes the transition payload directly, so adding an effect
|
|
3502
|
+
* cannot update classification without also defining its runtime behavior.
|
|
3503
|
+
*/
|
|
3504
|
+
const BUTTON_EFFECT_POLICIES = {
|
|
3505
|
+
"darken-background": {
|
|
3506
|
+
classification: "colour-transition",
|
|
3507
|
+
transition: {
|
|
3508
|
+
kind: "adjust-shade",
|
|
3509
|
+
direction: "darker"
|
|
3510
|
+
}
|
|
3511
|
+
},
|
|
3512
|
+
"lighten-background": {
|
|
3513
|
+
classification: "colour-transition",
|
|
3514
|
+
transition: {
|
|
3515
|
+
kind: "adjust-shade",
|
|
3516
|
+
direction: "lighter"
|
|
3517
|
+
}
|
|
3518
|
+
},
|
|
3519
|
+
"background-on-hover": {
|
|
3520
|
+
classification: "colour-transition",
|
|
3521
|
+
transition: { kind: "replace-background" }
|
|
3522
|
+
},
|
|
3523
|
+
"background-on-hover-alpha": {
|
|
3524
|
+
classification: "unsupported-colour",
|
|
3525
|
+
reason: "alpha_requires_surface"
|
|
3526
|
+
},
|
|
3527
|
+
"fade-background": {
|
|
3528
|
+
classification: "unsupported-colour",
|
|
3529
|
+
reason: "changes_element_opacity"
|
|
3530
|
+
},
|
|
3531
|
+
"opacity-reduce": {
|
|
3532
|
+
classification: "unsupported-colour",
|
|
3533
|
+
reason: "changes_element_opacity"
|
|
3534
|
+
},
|
|
3535
|
+
"gradient-text": {
|
|
3536
|
+
classification: "unsupported-colour",
|
|
3537
|
+
reason: "changes_foreground"
|
|
3538
|
+
},
|
|
3539
|
+
"text-color-change": {
|
|
3540
|
+
classification: "unsupported-colour",
|
|
3541
|
+
reason: "changes_foreground"
|
|
3542
|
+
},
|
|
3543
|
+
"border-color-change": {
|
|
3544
|
+
classification: "unsupported-colour",
|
|
3545
|
+
reason: "changes_border"
|
|
3546
|
+
},
|
|
3547
|
+
"aurora-glow": {
|
|
3548
|
+
classification: "unsupported-background-overlay",
|
|
3549
|
+
reason: "unresolved_background_overlay"
|
|
3550
|
+
},
|
|
3551
|
+
"cosmic-stardust": {
|
|
3552
|
+
classification: "unsupported-background-overlay",
|
|
3553
|
+
reason: "unresolved_background_overlay"
|
|
3554
|
+
},
|
|
3555
|
+
"gradient-border-fill": {
|
|
3556
|
+
classification: "unsupported-background-overlay",
|
|
3557
|
+
reason: "unresolved_background_overlay"
|
|
3558
|
+
},
|
|
3559
|
+
"animated-gradient-border-fill": {
|
|
3560
|
+
classification: "unsupported-background-overlay",
|
|
3561
|
+
reason: "unresolved_background_overlay"
|
|
3562
|
+
},
|
|
3563
|
+
"nav-underline": {
|
|
3564
|
+
classification: "not-button",
|
|
3565
|
+
reason: "not_button_effect"
|
|
3566
|
+
},
|
|
3567
|
+
"nav-frosted-base": {
|
|
3568
|
+
classification: "not-button",
|
|
3569
|
+
reason: "not_button_effect"
|
|
3570
|
+
},
|
|
3571
|
+
"nav-frosted-hover": {
|
|
3572
|
+
classification: "not-button",
|
|
3573
|
+
reason: "not_button_effect"
|
|
3574
|
+
},
|
|
3575
|
+
"nav-frosted-active": {
|
|
3576
|
+
classification: "not-button",
|
|
3577
|
+
reason: "not_button_effect"
|
|
3578
|
+
},
|
|
3579
|
+
"animated-gradient": { classification: "non-colour" },
|
|
3580
|
+
"border-glow": { classification: "non-colour" },
|
|
3581
|
+
"drop-shadow": { classification: "non-colour" },
|
|
3582
|
+
"inner-shadow": { classification: "non-colour" },
|
|
3583
|
+
"neumorphic-shadow": { classification: "non-colour" },
|
|
3584
|
+
"outer-glow": { classification: "non-colour" },
|
|
3585
|
+
"retro-3d-shadow": { classification: "non-colour" },
|
|
3586
|
+
"scale-up": { classification: "non-colour" },
|
|
3587
|
+
"scale-down": { classification: "non-colour" },
|
|
3588
|
+
lift: { classification: "non-colour" },
|
|
3589
|
+
"press-down": { classification: "non-colour" },
|
|
3590
|
+
pop: { classification: "non-colour" },
|
|
3591
|
+
"border-bottom-grow": { classification: "non-colour" },
|
|
3592
|
+
"sketchy-border": { classification: "non-colour" },
|
|
3593
|
+
"pulse-animation": { classification: "non-colour" }
|
|
3594
|
+
};
|
|
3595
|
+
function getButtonEffectPolicy(effectId) {
|
|
3596
|
+
return Object.prototype.hasOwnProperty.call(BUTTON_EFFECT_POLICIES, effectId) ? BUTTON_EFFECT_POLICIES[effectId] : null;
|
|
3597
|
+
}
|
|
3598
|
+
function classifyButtonEffectId(effectId) {
|
|
3599
|
+
return getButtonEffectPolicy(effectId)?.classification ?? "unknown";
|
|
3600
|
+
}
|
|
3601
|
+
//#endregion
|
|
3478
3602
|
//#region ../theme-core/src/buttons/types.ts
|
|
3479
3603
|
/**
|
|
3480
3604
|
* Standard semantic variant roles a theme exposes.
|
|
@@ -3491,6 +3615,20 @@ const VARIANT_ROLES = [
|
|
|
3491
3615
|
"tertiary",
|
|
3492
3616
|
"accent"
|
|
3493
3617
|
];
|
|
3618
|
+
function parseOpaqueButtonColourToken(value) {
|
|
3619
|
+
const token = parseThemeColorToken(value);
|
|
3620
|
+
if (token === null) return null;
|
|
3621
|
+
const parts = parseColorTokenParts(token);
|
|
3622
|
+
return parts.kind === "token" && parts.opacityPercent === null ? token : null;
|
|
3623
|
+
}
|
|
3624
|
+
function unsafeAsOpaqueButtonColourToken(value) {
|
|
3625
|
+
return value;
|
|
3626
|
+
}
|
|
3627
|
+
const opaqueButtonColourTokenSchema = themeColorTokenSchema.refine((value) => parseOpaqueButtonColourToken(value) !== null, "Button colour tokens must be opaque").transform((value) => {
|
|
3628
|
+
const token = parseOpaqueButtonColourToken(value);
|
|
3629
|
+
if (token === null) throw new Error("Invariant: opaque button token passed its schema");
|
|
3630
|
+
return token;
|
|
3631
|
+
});
|
|
3494
3632
|
const cornerStyleSchema = z$1.enum([
|
|
3495
3633
|
"square",
|
|
3496
3634
|
"rounded",
|
|
@@ -3592,7 +3730,7 @@ const buttonSizesSchema = z$1.object({
|
|
|
3592
3730
|
lg,
|
|
3593
3731
|
xl: xl ?? lg
|
|
3594
3732
|
}));
|
|
3595
|
-
const
|
|
3733
|
+
const canonicalButtonGlobalSettingsSchema = z$1.object({
|
|
3596
3734
|
cornerStyle: cornerStyleSchema,
|
|
3597
3735
|
cornerRadius: z$1.number().min(0).max(24).optional(),
|
|
3598
3736
|
/**
|
|
@@ -3623,11 +3761,12 @@ const buttonGlobalSettingsSchema = z$1.object({
|
|
|
3623
3761
|
paddingPreset: buttonPaddingPresetSchema.optional(),
|
|
3624
3762
|
hoverTransform: hoverTransformSchema,
|
|
3625
3763
|
hoverColor: hoverColorSchema,
|
|
3626
|
-
hoverColorToken:
|
|
3764
|
+
hoverColorToken: opaqueButtonColourTokenSchema.optional(),
|
|
3627
3765
|
gradientStyle: gradientStyleSchema.optional(),
|
|
3628
3766
|
gradientAngle: z$1.number().min(0).max(360).optional(),
|
|
3629
3767
|
gradientSharpness: gradientSharpnessSchema.optional()
|
|
3630
3768
|
});
|
|
3769
|
+
const buttonGlobalSettingsSchema = z$1.preprocess(normalizeLegacyButtonGlobalInput, canonicalButtonGlobalSettingsSchema);
|
|
3631
3770
|
const gradientDirectionSchema$1 = z$1.enum([
|
|
3632
3771
|
"to-r",
|
|
3633
3772
|
"to-l",
|
|
@@ -3641,27 +3780,33 @@ const gradientDirectionSchema$1 = z$1.enum([
|
|
|
3641
3780
|
const buttonBackgroundSchema = z$1.discriminatedUnion("type", [
|
|
3642
3781
|
z$1.object({
|
|
3643
3782
|
type: z$1.literal("solid"),
|
|
3644
|
-
colorToken:
|
|
3783
|
+
colorToken: opaqueButtonColourTokenSchema
|
|
3645
3784
|
}),
|
|
3646
3785
|
z$1.object({
|
|
3647
3786
|
type: z$1.literal("gradient"),
|
|
3648
|
-
stops: z$1.array(
|
|
3649
|
-
|
|
3787
|
+
stops: z$1.array(opaqueButtonColourTokenSchema).min(2).transform((stops) => {
|
|
3788
|
+
const [first, second, ...rest] = stops;
|
|
3789
|
+
if (first === void 0 || second === void 0) throw new Error("Invariant: gradient stops passed the minimum length schema");
|
|
3790
|
+
return [
|
|
3791
|
+
first,
|
|
3792
|
+
second,
|
|
3793
|
+
...rest
|
|
3794
|
+
];
|
|
3795
|
+
}),
|
|
3796
|
+
direction: gradientDirectionSchema$1,
|
|
3797
|
+
foregroundToken: opaqueButtonColourTokenSchema
|
|
3650
3798
|
}),
|
|
3651
|
-
z$1.object({
|
|
3799
|
+
z$1.object({
|
|
3800
|
+
type: z$1.literal("surface"),
|
|
3801
|
+
role: z$1.literal("link")
|
|
3802
|
+
})
|
|
3652
3803
|
]);
|
|
3653
3804
|
const effectApplicationSchema$1 = z$1.object({
|
|
3654
3805
|
effectId: z$1.string(),
|
|
3655
|
-
options: z$1.record(z$1.string(), z$1.
|
|
3656
|
-
});
|
|
3657
|
-
const buttonBorderSchema = z$1.object({
|
|
3658
|
-
widthClass: z$1.string(),
|
|
3659
|
-
colorToken: themeColorTokenSchema
|
|
3660
|
-
});
|
|
3661
|
-
const buttonVariantAffordanceSchema = z$1.object({
|
|
3662
|
-
iconId: z$1.string().min(1),
|
|
3663
|
-
colorToken: themeColorTokenSchema.optional()
|
|
3806
|
+
options: z$1.record(z$1.string(), z$1.json()).optional()
|
|
3664
3807
|
});
|
|
3808
|
+
const buttonBorderSchema = z$1.object({ widthClass: z$1.string() });
|
|
3809
|
+
const buttonVariantAffordanceSchema = z$1.object({ iconId: z$1.string().min(1) });
|
|
3665
3810
|
const variantShadowSchema = z$1.object({
|
|
3666
3811
|
elevation: z$1.enum([
|
|
3667
3812
|
"none",
|
|
@@ -3702,27 +3847,170 @@ const variantSizeOverridesSchema = z$1.object({
|
|
|
3702
3847
|
* default (e.g. link-style variants declaring zero horizontal padding at
|
|
3703
3848
|
* every size).
|
|
3704
3849
|
*/
|
|
3705
|
-
const
|
|
3850
|
+
const canonicalButtonVariantSchema = z$1.object({
|
|
3706
3851
|
id: z$1.string(),
|
|
3707
3852
|
name: z$1.string().min(1).max(20),
|
|
3708
3853
|
enabled: z$1.boolean(),
|
|
3709
3854
|
priority: prioritySchema,
|
|
3710
3855
|
background: buttonBackgroundSchema,
|
|
3711
|
-
textColorToken: themeColorTokenSchema,
|
|
3712
3856
|
/** Tailwind radius token (e.g. `'rounded-md'`). Omit to inherit from `global.cornerStyle`. */
|
|
3713
3857
|
borderRadius: z$1.string().optional(),
|
|
3714
3858
|
shadow: variantShadowSchema.optional(),
|
|
3715
3859
|
border: buttonBorderSchema.optional(),
|
|
3716
|
-
hoverBackgroundToken:
|
|
3860
|
+
hoverBackgroundToken: opaqueButtonColourTokenSchema.optional(),
|
|
3717
3861
|
effects: variantEffectsSchema.optional(),
|
|
3718
3862
|
sizes: variantSizeOverridesSchema.optional(),
|
|
3719
3863
|
affordance: buttonVariantAffordanceSchema.optional()
|
|
3720
3864
|
});
|
|
3865
|
+
/**
|
|
3866
|
+
* Temporary persisted-theme admission boundary for issue #1206.
|
|
3867
|
+
*
|
|
3868
|
+
* Production inventory on 2026-07-22 found 22 rows using the old independent
|
|
3869
|
+
* `textColorToken`/border colour shape. New source and all downstream code use
|
|
3870
|
+
* only the canonical relationship. Delete this preprocessor after the reviewed
|
|
3871
|
+
* production rewrite reports zero legacy rows.
|
|
3872
|
+
*/
|
|
3873
|
+
const buttonVariantSchema = z$1.preprocess(normalizeLegacyButtonVariantInput, canonicalButtonVariantSchema);
|
|
3721
3874
|
const buttonSystemSchema = z$1.object({
|
|
3722
3875
|
global: buttonGlobalSettingsSchema,
|
|
3723
3876
|
variants: z$1.array(buttonVariantSchema).min(1).max(6),
|
|
3724
3877
|
sizes: buttonSizesSchema.optional()
|
|
3725
3878
|
});
|
|
3879
|
+
function normalizeLegacyButtonVariantInput(input) {
|
|
3880
|
+
if (!isUnknownRecord(input)) return input;
|
|
3881
|
+
const background = input.background;
|
|
3882
|
+
if (!isUnknownRecord(background)) return input;
|
|
3883
|
+
if (!(background.type === "transparent" || Object.prototype.hasOwnProperty.call(input, "textColorToken") || isUnknownRecord(input.border) && Object.prototype.hasOwnProperty.call(input.border, "colorToken") || hasLegacyButtonEffects(input.effects) || hasLegacyAlphaToken(input, background))) return input;
|
|
3884
|
+
const { textColorToken, ...withoutLegacyText } = input;
|
|
3885
|
+
const normalizedBorder = isUnknownRecord(input.border) && typeof input.border.widthClass === "string" ? { widthClass: input.border.widthClass } : input.border;
|
|
3886
|
+
const normalizedAffordance = isUnknownRecord(input.affordance) && typeof input.affordance.iconId === "string" ? { iconId: input.affordance.iconId } : input.affordance;
|
|
3887
|
+
const normalizedEffects = normalizeLegacyButtonEffects(input.effects, background.type);
|
|
3888
|
+
const hoverBackgroundToken = stripLegacyTokenAlpha(input.hoverBackgroundToken);
|
|
3889
|
+
if (background.type === "transparent") return {
|
|
3890
|
+
...withoutLegacyText,
|
|
3891
|
+
background: {
|
|
3892
|
+
type: "surface",
|
|
3893
|
+
role: "link"
|
|
3894
|
+
},
|
|
3895
|
+
border: normalizedBorder,
|
|
3896
|
+
affordance: normalizedAffordance,
|
|
3897
|
+
effects: normalizedEffects,
|
|
3898
|
+
hoverBackgroundToken
|
|
3899
|
+
};
|
|
3900
|
+
if (background.type === "gradient") {
|
|
3901
|
+
const stops = Array.isArray(background.stops) ? background.stops.map(stripLegacyTokenAlpha) : background.stops;
|
|
3902
|
+
return {
|
|
3903
|
+
...withoutLegacyText,
|
|
3904
|
+
background: {
|
|
3905
|
+
...background,
|
|
3906
|
+
stops,
|
|
3907
|
+
foregroundToken: stripLegacyTokenAlpha(background.foregroundToken ?? textColorToken)
|
|
3908
|
+
},
|
|
3909
|
+
border: normalizedBorder,
|
|
3910
|
+
affordance: normalizedAffordance,
|
|
3911
|
+
effects: normalizedEffects,
|
|
3912
|
+
hoverBackgroundToken
|
|
3913
|
+
};
|
|
3914
|
+
}
|
|
3915
|
+
return {
|
|
3916
|
+
...withoutLegacyText,
|
|
3917
|
+
background: background.type === "solid" ? {
|
|
3918
|
+
...background,
|
|
3919
|
+
colorToken: stripLegacyTokenAlpha(background.colorToken)
|
|
3920
|
+
} : background,
|
|
3921
|
+
border: normalizedBorder,
|
|
3922
|
+
affordance: normalizedAffordance,
|
|
3923
|
+
effects: normalizedEffects,
|
|
3924
|
+
hoverBackgroundToken
|
|
3925
|
+
};
|
|
3926
|
+
}
|
|
3927
|
+
function normalizeLegacyButtonGlobalInput(input) {
|
|
3928
|
+
if (!isUnknownRecord(input)) return input;
|
|
3929
|
+
const hoverColorToken = stripLegacyTokenAlpha(input.hoverColorToken);
|
|
3930
|
+
return hoverColorToken === input.hoverColorToken ? input : {
|
|
3931
|
+
...input,
|
|
3932
|
+
hoverColorToken
|
|
3933
|
+
};
|
|
3934
|
+
}
|
|
3935
|
+
function hasLegacyAlphaToken(input, background) {
|
|
3936
|
+
const stops = isUnknownArray(background.stops) ? background.stops : [];
|
|
3937
|
+
return [
|
|
3938
|
+
input.hoverBackgroundToken,
|
|
3939
|
+
background.colorToken,
|
|
3940
|
+
background.foregroundToken,
|
|
3941
|
+
...stops
|
|
3942
|
+
].some((token) => stripLegacyTokenAlpha(token) !== token);
|
|
3943
|
+
}
|
|
3944
|
+
function stripLegacyTokenAlpha(value) {
|
|
3945
|
+
if (typeof value !== "string") return value;
|
|
3946
|
+
const slashIndex = value.indexOf("/");
|
|
3947
|
+
return slashIndex < 0 ? value : value.slice(0, slashIndex);
|
|
3948
|
+
}
|
|
3949
|
+
function hasLegacyButtonEffects(input) {
|
|
3950
|
+
if (!isUnknownRecord(input)) return false;
|
|
3951
|
+
return [
|
|
3952
|
+
"base",
|
|
3953
|
+
"hover",
|
|
3954
|
+
"active",
|
|
3955
|
+
"focus"
|
|
3956
|
+
].some((state) => {
|
|
3957
|
+
const effects = input[state];
|
|
3958
|
+
return Array.isArray(effects) && effects.some((effect) => {
|
|
3959
|
+
if (!isUnknownRecord(effect) || typeof effect.effectId !== "string") return true;
|
|
3960
|
+
const classification = classifyButtonEffectId(effect.effectId);
|
|
3961
|
+
if (classification !== "colour-transition" && classification !== "non-colour") return true;
|
|
3962
|
+
return effect.effectId === "background-on-hover" && isUnknownRecord(effect.options) && stripLegacyTokenAlpha(effect.options.colorToken) !== effect.options.colorToken;
|
|
3963
|
+
});
|
|
3964
|
+
});
|
|
3965
|
+
}
|
|
3966
|
+
function normalizeLegacyButtonEffects(input, backgroundType) {
|
|
3967
|
+
if (!isUnknownRecord(input)) return input;
|
|
3968
|
+
const normalized = {};
|
|
3969
|
+
for (const state of [
|
|
3970
|
+
"base",
|
|
3971
|
+
"hover",
|
|
3972
|
+
"active",
|
|
3973
|
+
"focus"
|
|
3974
|
+
]) {
|
|
3975
|
+
const effects = input[state];
|
|
3976
|
+
if (!Array.isArray(effects)) continue;
|
|
3977
|
+
const safeEffects = effects.flatMap((effect) => {
|
|
3978
|
+
if (!isUnknownRecord(effect) || typeof effect.effectId !== "string") return [];
|
|
3979
|
+
const classification = classifyButtonEffectId(effect.effectId);
|
|
3980
|
+
if (classification === "non-colour") return [effect];
|
|
3981
|
+
if (classification !== "colour-transition") return [];
|
|
3982
|
+
if (effect.effectId === "background-on-hover") {
|
|
3983
|
+
const options = isUnknownRecord(effect.options) ? effect.options : null;
|
|
3984
|
+
const colorToken = options === null ? null : parseOpaqueButtonColourToken(stripLegacyTokenAlpha(options.colorToken));
|
|
3985
|
+
return colorToken === null ? [] : [{
|
|
3986
|
+
...effect,
|
|
3987
|
+
options: {
|
|
3988
|
+
...options,
|
|
3989
|
+
colorToken
|
|
3990
|
+
}
|
|
3991
|
+
}];
|
|
3992
|
+
}
|
|
3993
|
+
if (backgroundType !== "solid") return [];
|
|
3994
|
+
const rawAmount = isUnknownRecord(effect.options) ? effect.options.amount : void 0;
|
|
3995
|
+
const amount = typeof rawAmount === "number" && rawAmount > 0 ? Math.max(100, Math.round(rawAmount / 100) * 100) : 100;
|
|
3996
|
+
return [{
|
|
3997
|
+
...effect,
|
|
3998
|
+
options: {
|
|
3999
|
+
...isUnknownRecord(effect.options) ? effect.options : {},
|
|
4000
|
+
amount
|
|
4001
|
+
}
|
|
4002
|
+
}];
|
|
4003
|
+
});
|
|
4004
|
+
if (safeEffects.length > 0) normalized[state] = safeEffects;
|
|
4005
|
+
}
|
|
4006
|
+
return Object.keys(normalized).length === 0 ? void 0 : normalized;
|
|
4007
|
+
}
|
|
4008
|
+
function isUnknownRecord(value) {
|
|
4009
|
+
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
4010
|
+
}
|
|
4011
|
+
function isUnknownArray(value) {
|
|
4012
|
+
return Array.isArray(value);
|
|
4013
|
+
}
|
|
3726
4014
|
buttonSizeNameSchema.options;
|
|
3727
4015
|
//#endregion
|
|
3728
4016
|
//#region ../theme-core/src/buttons/personalities/types.ts
|
|
@@ -3749,7 +4037,7 @@ function defineButtonPersonality(input) {
|
|
|
3749
4037
|
name: input.name,
|
|
3750
4038
|
description: input.description,
|
|
3751
4039
|
tags: input.tags,
|
|
3752
|
-
buttonSystem: input.buttonSystem
|
|
4040
|
+
buttonSystem: buttonSystemSchema.parse(input.buttonSystem)
|
|
3753
4041
|
};
|
|
3754
4042
|
}
|
|
3755
4043
|
//#endregion
|
|
@@ -3802,19 +4090,15 @@ const brushedWash = defineButtonPersonality({
|
|
|
3802
4090
|
background: {
|
|
3803
4091
|
type: "gradient",
|
|
3804
4092
|
stops: ["primary", "accent"],
|
|
3805
|
-
direction: "to-r"
|
|
4093
|
+
direction: "to-r",
|
|
4094
|
+
foregroundToken: "primaryForeground"
|
|
3806
4095
|
},
|
|
3807
|
-
textColorToken: "primaryForeground",
|
|
3808
4096
|
borderRadius: "rounded-lg",
|
|
3809
4097
|
shadow: {
|
|
3810
4098
|
elevation: "low",
|
|
3811
4099
|
softness: "soft",
|
|
3812
4100
|
position: "bottom"
|
|
3813
|
-
}
|
|
3814
|
-
effects: { hover: [{
|
|
3815
|
-
effectId: "opacity-reduce",
|
|
3816
|
-
options: { reduction: -15 }
|
|
3817
|
-
}] }
|
|
4101
|
+
}
|
|
3818
4102
|
},
|
|
3819
4103
|
{
|
|
3820
4104
|
id: "secondary",
|
|
@@ -3824,32 +4108,27 @@ const brushedWash = defineButtonPersonality({
|
|
|
3824
4108
|
background: {
|
|
3825
4109
|
type: "gradient",
|
|
3826
4110
|
stops: ["secondary", "accent"],
|
|
3827
|
-
direction: "to-br"
|
|
4111
|
+
direction: "to-br",
|
|
4112
|
+
foregroundToken: "primaryForeground"
|
|
3828
4113
|
},
|
|
3829
|
-
textColorToken: "primaryForeground",
|
|
3830
4114
|
borderRadius: "rounded-lg",
|
|
3831
4115
|
shadow: {
|
|
3832
4116
|
elevation: "low",
|
|
3833
4117
|
softness: "soft",
|
|
3834
4118
|
position: "bottom"
|
|
3835
|
-
}
|
|
3836
|
-
effects: { hover: [{
|
|
3837
|
-
effectId: "opacity-reduce",
|
|
3838
|
-
options: { reduction: -15 }
|
|
3839
|
-
}] }
|
|
4119
|
+
}
|
|
3840
4120
|
},
|
|
3841
4121
|
{
|
|
3842
4122
|
id: "outline",
|
|
3843
4123
|
name: "Outline",
|
|
3844
4124
|
enabled: true,
|
|
3845
4125
|
priority: 3,
|
|
3846
|
-
background: {
|
|
3847
|
-
|
|
3848
|
-
|
|
3849
|
-
border: {
|
|
3850
|
-
widthClass: "border",
|
|
3851
|
-
colorToken: "primary"
|
|
4126
|
+
background: {
|
|
4127
|
+
type: "surface",
|
|
4128
|
+
role: "link"
|
|
3852
4129
|
},
|
|
4130
|
+
borderRadius: "rounded-lg",
|
|
4131
|
+
border: { widthClass: "border" },
|
|
3853
4132
|
effects: { hover: [{
|
|
3854
4133
|
effectId: "background-on-hover",
|
|
3855
4134
|
options: { colorToken: "surface" }
|
|
@@ -3860,8 +4139,10 @@ const brushedWash = defineButtonPersonality({
|
|
|
3860
4139
|
name: "Ghost",
|
|
3861
4140
|
enabled: true,
|
|
3862
4141
|
priority: 3,
|
|
3863
|
-
background: {
|
|
3864
|
-
|
|
4142
|
+
background: {
|
|
4143
|
+
type: "surface",
|
|
4144
|
+
role: "link"
|
|
4145
|
+
},
|
|
3865
4146
|
borderRadius: "rounded-lg",
|
|
3866
4147
|
effects: { hover: [{
|
|
3867
4148
|
effectId: "background-on-hover",
|
|
@@ -3907,7 +4188,6 @@ const confidentChip = defineButtonPersonality({
|
|
|
3907
4188
|
type: "solid",
|
|
3908
4189
|
colorToken: "primary"
|
|
3909
4190
|
},
|
|
3910
|
-
textColorToken: "primaryForeground",
|
|
3911
4191
|
borderRadius: "rounded-md",
|
|
3912
4192
|
shadow: {
|
|
3913
4193
|
elevation: "medium",
|
|
@@ -3917,7 +4197,7 @@ const confidentChip = defineButtonPersonality({
|
|
|
3917
4197
|
effects: {
|
|
3918
4198
|
hover: [{
|
|
3919
4199
|
effectId: "darken-background",
|
|
3920
|
-
options: { amount:
|
|
4200
|
+
options: { amount: 100 }
|
|
3921
4201
|
}],
|
|
3922
4202
|
active: [{
|
|
3923
4203
|
effectId: "scale-down",
|
|
@@ -3934,12 +4214,8 @@ const confidentChip = defineButtonPersonality({
|
|
|
3934
4214
|
type: "solid",
|
|
3935
4215
|
colorToken: "surface"
|
|
3936
4216
|
},
|
|
3937
|
-
textColorToken: "text",
|
|
3938
4217
|
borderRadius: "rounded-md",
|
|
3939
|
-
border: {
|
|
3940
|
-
widthClass: "border",
|
|
3941
|
-
colorToken: "border"
|
|
3942
|
-
},
|
|
4218
|
+
border: { widthClass: "border" },
|
|
3943
4219
|
effects: { hover: [{
|
|
3944
4220
|
effectId: "background-on-hover",
|
|
3945
4221
|
options: { colorToken: "background" }
|
|
@@ -3950,13 +4226,12 @@ const confidentChip = defineButtonPersonality({
|
|
|
3950
4226
|
name: "Outline",
|
|
3951
4227
|
enabled: true,
|
|
3952
4228
|
priority: 3,
|
|
3953
|
-
background: {
|
|
3954
|
-
|
|
3955
|
-
|
|
3956
|
-
border: {
|
|
3957
|
-
widthClass: "border",
|
|
3958
|
-
colorToken: "primary"
|
|
4229
|
+
background: {
|
|
4230
|
+
type: "surface",
|
|
4231
|
+
role: "link"
|
|
3959
4232
|
},
|
|
4233
|
+
borderRadius: "rounded-md",
|
|
4234
|
+
border: { widthClass: "border" },
|
|
3960
4235
|
effects: { hover: [{
|
|
3961
4236
|
effectId: "background-on-hover",
|
|
3962
4237
|
options: { colorToken: "surface" }
|
|
@@ -3967,8 +4242,10 @@ const confidentChip = defineButtonPersonality({
|
|
|
3967
4242
|
name: "Ghost",
|
|
3968
4243
|
enabled: true,
|
|
3969
4244
|
priority: 3,
|
|
3970
|
-
background: {
|
|
3971
|
-
|
|
4245
|
+
background: {
|
|
4246
|
+
type: "surface",
|
|
4247
|
+
role: "link"
|
|
4248
|
+
},
|
|
3972
4249
|
borderRadius: "rounded-md",
|
|
3973
4250
|
effects: { hover: [{
|
|
3974
4251
|
effectId: "background-on-hover",
|
|
@@ -4031,7 +4308,6 @@ const earthPill = defineButtonPersonality({
|
|
|
4031
4308
|
type: "solid",
|
|
4032
4309
|
colorToken: "primary"
|
|
4033
4310
|
},
|
|
4034
|
-
textColorToken: "primaryForeground",
|
|
4035
4311
|
borderRadius: "rounded-full",
|
|
4036
4312
|
shadow: {
|
|
4037
4313
|
elevation: "low",
|
|
@@ -4057,13 +4333,12 @@ const earthPill = defineButtonPersonality({
|
|
|
4057
4333
|
name: "Secondary",
|
|
4058
4334
|
enabled: true,
|
|
4059
4335
|
priority: 2,
|
|
4060
|
-
background: {
|
|
4061
|
-
|
|
4062
|
-
|
|
4063
|
-
border: {
|
|
4064
|
-
widthClass: "border",
|
|
4065
|
-
colorToken: "primary"
|
|
4336
|
+
background: {
|
|
4337
|
+
type: "surface",
|
|
4338
|
+
role: "link"
|
|
4066
4339
|
},
|
|
4340
|
+
borderRadius: "rounded-full",
|
|
4341
|
+
border: { widthClass: "border" },
|
|
4067
4342
|
effects: { hover: [{
|
|
4068
4343
|
effectId: "background-on-hover",
|
|
4069
4344
|
options: { colorToken: "muted" }
|
|
@@ -4074,13 +4349,12 @@ const earthPill = defineButtonPersonality({
|
|
|
4074
4349
|
name: "Outline",
|
|
4075
4350
|
enabled: true,
|
|
4076
4351
|
priority: 3,
|
|
4077
|
-
background: {
|
|
4078
|
-
|
|
4079
|
-
|
|
4080
|
-
border: {
|
|
4081
|
-
widthClass: "border",
|
|
4082
|
-
colorToken: "border"
|
|
4352
|
+
background: {
|
|
4353
|
+
type: "surface",
|
|
4354
|
+
role: "link"
|
|
4083
4355
|
},
|
|
4356
|
+
borderRadius: "rounded-full",
|
|
4357
|
+
border: { widthClass: "border" },
|
|
4084
4358
|
effects: { hover: [{
|
|
4085
4359
|
effectId: "background-on-hover",
|
|
4086
4360
|
options: { colorToken: "surfaceAlt" }
|
|
@@ -4091,8 +4365,10 @@ const earthPill = defineButtonPersonality({
|
|
|
4091
4365
|
name: "Ghost",
|
|
4092
4366
|
enabled: true,
|
|
4093
4367
|
priority: 3,
|
|
4094
|
-
background: {
|
|
4095
|
-
|
|
4368
|
+
background: {
|
|
4369
|
+
type: "surface",
|
|
4370
|
+
role: "link"
|
|
4371
|
+
},
|
|
4096
4372
|
borderRadius: "rounded-full",
|
|
4097
4373
|
shadow: {
|
|
4098
4374
|
elevation: "none",
|
|
@@ -4113,11 +4389,7 @@ const earthPill = defineButtonPersonality({
|
|
|
4113
4389
|
padding: "0.625rem 0",
|
|
4114
4390
|
fontSize: "text-xl"
|
|
4115
4391
|
}
|
|
4116
|
-
}
|
|
4117
|
-
effects: { hover: [{
|
|
4118
|
-
effectId: "opacity-reduce",
|
|
4119
|
-
options: { reduction: 25 }
|
|
4120
|
-
}] }
|
|
4392
|
+
}
|
|
4121
4393
|
}
|
|
4122
4394
|
]
|
|
4123
4395
|
}
|
|
@@ -4153,8 +4425,10 @@ const editorialLink = defineButtonPersonality({
|
|
|
4153
4425
|
name: "Primary",
|
|
4154
4426
|
enabled: true,
|
|
4155
4427
|
priority: 1,
|
|
4156
|
-
background: {
|
|
4157
|
-
|
|
4428
|
+
background: {
|
|
4429
|
+
type: "surface",
|
|
4430
|
+
role: "link"
|
|
4431
|
+
},
|
|
4158
4432
|
borderRadius: "rounded-none",
|
|
4159
4433
|
sizes: {
|
|
4160
4434
|
sm: { padding: "0.25rem 0" },
|
|
@@ -4176,8 +4450,10 @@ const editorialLink = defineButtonPersonality({
|
|
|
4176
4450
|
name: "Secondary",
|
|
4177
4451
|
enabled: true,
|
|
4178
4452
|
priority: 2,
|
|
4179
|
-
background: {
|
|
4180
|
-
|
|
4453
|
+
background: {
|
|
4454
|
+
type: "surface",
|
|
4455
|
+
role: "link"
|
|
4456
|
+
},
|
|
4181
4457
|
borderRadius: "rounded-none",
|
|
4182
4458
|
sizes: {
|
|
4183
4459
|
sm: { padding: "0.25rem 0" },
|
|
@@ -4199,8 +4475,10 @@ const editorialLink = defineButtonPersonality({
|
|
|
4199
4475
|
name: "Outline",
|
|
4200
4476
|
enabled: true,
|
|
4201
4477
|
priority: 3,
|
|
4202
|
-
background: {
|
|
4203
|
-
|
|
4478
|
+
background: {
|
|
4479
|
+
type: "surface",
|
|
4480
|
+
role: "link"
|
|
4481
|
+
},
|
|
4204
4482
|
borderRadius: "rounded-none",
|
|
4205
4483
|
sizes: {
|
|
4206
4484
|
sm: { padding: "0.25rem 0" },
|
|
@@ -4222,19 +4500,17 @@ const editorialLink = defineButtonPersonality({
|
|
|
4222
4500
|
name: "Ghost",
|
|
4223
4501
|
enabled: true,
|
|
4224
4502
|
priority: 3,
|
|
4225
|
-
background: {
|
|
4226
|
-
|
|
4503
|
+
background: {
|
|
4504
|
+
type: "surface",
|
|
4505
|
+
role: "link"
|
|
4506
|
+
},
|
|
4227
4507
|
borderRadius: "rounded-none",
|
|
4228
4508
|
sizes: {
|
|
4229
4509
|
sm: { padding: "0.25rem 0" },
|
|
4230
4510
|
md: { padding: "0.5rem 0" },
|
|
4231
4511
|
lg: { padding: "0.625rem 0" },
|
|
4232
4512
|
xl: { padding: "0.75rem 0" }
|
|
4233
|
-
}
|
|
4234
|
-
effects: { hover: [{
|
|
4235
|
-
effectId: "opacity-reduce",
|
|
4236
|
-
options: { reduction: -20 }
|
|
4237
|
-
}] }
|
|
4513
|
+
}
|
|
4238
4514
|
}
|
|
4239
4515
|
]
|
|
4240
4516
|
}
|
|
@@ -4296,12 +4572,8 @@ const flatInk = defineButtonPersonality({
|
|
|
4296
4572
|
type: "solid",
|
|
4297
4573
|
colorToken: "primary"
|
|
4298
4574
|
},
|
|
4299
|
-
textColorToken: "primaryForeground",
|
|
4300
4575
|
borderRadius: "rounded-lg",
|
|
4301
|
-
affordance: {
|
|
4302
|
-
iconId: "ArrowRight",
|
|
4303
|
-
colorToken: "accent"
|
|
4304
|
-
},
|
|
4576
|
+
affordance: { iconId: "ArrowRight" },
|
|
4305
4577
|
effects: { hover: [{
|
|
4306
4578
|
effectId: "lift",
|
|
4307
4579
|
options: { translateY: "-2px" }
|
|
@@ -4315,13 +4587,12 @@ const flatInk = defineButtonPersonality({
|
|
|
4315
4587
|
name: "Secondary",
|
|
4316
4588
|
enabled: true,
|
|
4317
4589
|
priority: 2,
|
|
4318
|
-
background: {
|
|
4319
|
-
|
|
4320
|
-
|
|
4321
|
-
border: {
|
|
4322
|
-
widthClass: "border",
|
|
4323
|
-
colorToken: "border"
|
|
4590
|
+
background: {
|
|
4591
|
+
type: "surface",
|
|
4592
|
+
role: "link"
|
|
4324
4593
|
},
|
|
4594
|
+
borderRadius: "rounded-lg",
|
|
4595
|
+
border: { widthClass: "border" },
|
|
4325
4596
|
effects: { hover: [{
|
|
4326
4597
|
effectId: "lift",
|
|
4327
4598
|
options: { translateY: "-2px" }
|
|
@@ -4339,12 +4610,8 @@ const flatInk = defineButtonPersonality({
|
|
|
4339
4610
|
type: "solid",
|
|
4340
4611
|
colorToken: "accent"
|
|
4341
4612
|
},
|
|
4342
|
-
textColorToken: "accentForeground",
|
|
4343
4613
|
borderRadius: "rounded-lg",
|
|
4344
|
-
affordance: {
|
|
4345
|
-
iconId: "ArrowRight",
|
|
4346
|
-
colorToken: "accentForeground"
|
|
4347
|
-
},
|
|
4614
|
+
affordance: { iconId: "ArrowRight" },
|
|
4348
4615
|
effects: { hover: [{
|
|
4349
4616
|
effectId: "lift",
|
|
4350
4617
|
options: { translateY: "-2px" }
|
|
@@ -4407,7 +4674,6 @@ const inkStamp = defineButtonPersonality({
|
|
|
4407
4674
|
type: "solid",
|
|
4408
4675
|
colorToken: "primary"
|
|
4409
4676
|
},
|
|
4410
|
-
textColorToken: "primaryForeground",
|
|
4411
4677
|
borderRadius: "rounded-md",
|
|
4412
4678
|
effects: {
|
|
4413
4679
|
hover: [{
|
|
@@ -4428,13 +4694,12 @@ const inkStamp = defineButtonPersonality({
|
|
|
4428
4694
|
name: "Secondary",
|
|
4429
4695
|
enabled: true,
|
|
4430
4696
|
priority: 2,
|
|
4431
|
-
background: {
|
|
4432
|
-
|
|
4433
|
-
|
|
4434
|
-
border: {
|
|
4435
|
-
widthClass: "border-2",
|
|
4436
|
-
colorToken: "primary"
|
|
4697
|
+
background: {
|
|
4698
|
+
type: "surface",
|
|
4699
|
+
role: "link"
|
|
4437
4700
|
},
|
|
4701
|
+
borderRadius: "rounded-md",
|
|
4702
|
+
border: { widthClass: "border-2" },
|
|
4438
4703
|
effects: { hover: [{
|
|
4439
4704
|
effectId: "background-on-hover",
|
|
4440
4705
|
options: { colorToken: "surface" }
|
|
@@ -4445,13 +4710,12 @@ const inkStamp = defineButtonPersonality({
|
|
|
4445
4710
|
name: "Outline",
|
|
4446
4711
|
enabled: true,
|
|
4447
4712
|
priority: 3,
|
|
4448
|
-
background: {
|
|
4449
|
-
|
|
4450
|
-
|
|
4451
|
-
border: {
|
|
4452
|
-
widthClass: "border-2",
|
|
4453
|
-
colorToken: "border"
|
|
4713
|
+
background: {
|
|
4714
|
+
type: "surface",
|
|
4715
|
+
role: "link"
|
|
4454
4716
|
},
|
|
4717
|
+
borderRadius: "rounded-md",
|
|
4718
|
+
border: { widthClass: "border-2" },
|
|
4455
4719
|
effects: { hover: [{
|
|
4456
4720
|
effectId: "background-on-hover",
|
|
4457
4721
|
options: { colorToken: "surface" }
|
|
@@ -4462,8 +4726,10 @@ const inkStamp = defineButtonPersonality({
|
|
|
4462
4726
|
name: "Ghost",
|
|
4463
4727
|
enabled: true,
|
|
4464
4728
|
priority: 3,
|
|
4465
|
-
background: {
|
|
4466
|
-
|
|
4729
|
+
background: {
|
|
4730
|
+
type: "surface",
|
|
4731
|
+
role: "link"
|
|
4732
|
+
},
|
|
4467
4733
|
borderRadius: "rounded-none",
|
|
4468
4734
|
sizes: {
|
|
4469
4735
|
sm: {
|
|
@@ -4556,7 +4822,6 @@ const joyStamp = defineButtonPersonality({
|
|
|
4556
4822
|
type: "solid",
|
|
4557
4823
|
colorToken: "primary"
|
|
4558
4824
|
},
|
|
4559
|
-
textColorToken: "primaryForeground",
|
|
4560
4825
|
borderRadius: "rounded-full",
|
|
4561
4826
|
shadow: {
|
|
4562
4827
|
elevation: "high",
|
|
@@ -4570,13 +4835,12 @@ const joyStamp = defineButtonPersonality({
|
|
|
4570
4835
|
name: "Secondary",
|
|
4571
4836
|
enabled: true,
|
|
4572
4837
|
priority: 2,
|
|
4573
|
-
background: {
|
|
4574
|
-
|
|
4575
|
-
|
|
4576
|
-
border: {
|
|
4577
|
-
widthClass: "border-2",
|
|
4578
|
-
colorToken: "text"
|
|
4838
|
+
background: {
|
|
4839
|
+
type: "surface",
|
|
4840
|
+
role: "link"
|
|
4579
4841
|
},
|
|
4842
|
+
borderRadius: "rounded-full",
|
|
4843
|
+
border: { widthClass: "border-2" },
|
|
4580
4844
|
shadow: {
|
|
4581
4845
|
elevation: "high",
|
|
4582
4846
|
softness: "hard",
|
|
@@ -4641,12 +4905,8 @@ const ornateRitual = defineButtonPersonality({
|
|
|
4641
4905
|
type: "solid",
|
|
4642
4906
|
colorToken: "primary"
|
|
4643
4907
|
},
|
|
4644
|
-
textColorToken: "primaryForeground",
|
|
4645
4908
|
borderRadius: "rounded-md",
|
|
4646
|
-
border: {
|
|
4647
|
-
widthClass: "border",
|
|
4648
|
-
colorToken: "primary"
|
|
4649
|
-
},
|
|
4909
|
+
border: { widthClass: "border" },
|
|
4650
4910
|
effects: {
|
|
4651
4911
|
hover: [{
|
|
4652
4912
|
effectId: "background-on-hover",
|
|
@@ -4667,12 +4927,8 @@ const ornateRitual = defineButtonPersonality({
|
|
|
4667
4927
|
type: "solid",
|
|
4668
4928
|
colorToken: "secondary"
|
|
4669
4929
|
},
|
|
4670
|
-
textColorToken: "primaryForeground",
|
|
4671
4930
|
borderRadius: "rounded-md",
|
|
4672
|
-
border: {
|
|
4673
|
-
widthClass: "border",
|
|
4674
|
-
colorToken: "primary"
|
|
4675
|
-
},
|
|
4931
|
+
border: { widthClass: "border" },
|
|
4676
4932
|
effects: { hover: [{
|
|
4677
4933
|
effectId: "background-on-hover",
|
|
4678
4934
|
options: { colorToken: "surface" }
|
|
@@ -4683,13 +4939,12 @@ const ornateRitual = defineButtonPersonality({
|
|
|
4683
4939
|
name: "Outline",
|
|
4684
4940
|
enabled: true,
|
|
4685
4941
|
priority: 3,
|
|
4686
|
-
background: {
|
|
4687
|
-
|
|
4688
|
-
|
|
4689
|
-
border: {
|
|
4690
|
-
widthClass: "border",
|
|
4691
|
-
colorToken: "primary"
|
|
4942
|
+
background: {
|
|
4943
|
+
type: "surface",
|
|
4944
|
+
role: "link"
|
|
4692
4945
|
},
|
|
4946
|
+
borderRadius: "rounded-md",
|
|
4947
|
+
border: { widthClass: "border" },
|
|
4693
4948
|
effects: { hover: [{
|
|
4694
4949
|
effectId: "background-on-hover",
|
|
4695
4950
|
options: { colorToken: "muted" }
|
|
@@ -4700,8 +4955,10 @@ const ornateRitual = defineButtonPersonality({
|
|
|
4700
4955
|
name: "Ghost",
|
|
4701
4956
|
enabled: true,
|
|
4702
4957
|
priority: 3,
|
|
4703
|
-
background: {
|
|
4704
|
-
|
|
4958
|
+
background: {
|
|
4959
|
+
type: "surface",
|
|
4960
|
+
role: "link"
|
|
4961
|
+
},
|
|
4705
4962
|
borderRadius: "rounded-none",
|
|
4706
4963
|
sizes: {
|
|
4707
4964
|
sm: {
|
|
@@ -4783,14 +5040,10 @@ const pebble = defineButtonPersonality({
|
|
|
4783
5040
|
type: "solid",
|
|
4784
5041
|
colorToken: "primary"
|
|
4785
5042
|
},
|
|
4786
|
-
textColorToken: "primaryForeground",
|
|
4787
5043
|
borderRadius: "rounded-full",
|
|
4788
5044
|
effects: { hover: [{
|
|
4789
|
-
effectId: "background
|
|
4790
|
-
options: {
|
|
4791
|
-
colorToken: "primary",
|
|
4792
|
-
opacity: 88
|
|
4793
|
-
}
|
|
5045
|
+
effectId: "darken-background",
|
|
5046
|
+
options: { amount: 100 }
|
|
4794
5047
|
}] }
|
|
4795
5048
|
},
|
|
4796
5049
|
{
|
|
@@ -4798,13 +5051,12 @@ const pebble = defineButtonPersonality({
|
|
|
4798
5051
|
name: "Secondary",
|
|
4799
5052
|
enabled: true,
|
|
4800
5053
|
priority: 2,
|
|
4801
|
-
background: {
|
|
4802
|
-
|
|
4803
|
-
|
|
4804
|
-
border: {
|
|
4805
|
-
widthClass: "border-2",
|
|
4806
|
-
colorToken: "accent"
|
|
5054
|
+
background: {
|
|
5055
|
+
type: "surface",
|
|
5056
|
+
role: "link"
|
|
4807
5057
|
},
|
|
5058
|
+
borderRadius: "rounded-full",
|
|
5059
|
+
border: { widthClass: "border-2" },
|
|
4808
5060
|
effects: { hover: [{
|
|
4809
5061
|
effectId: "background-on-hover",
|
|
4810
5062
|
options: { colorToken: "accent" }
|
|
@@ -4815,13 +5067,12 @@ const pebble = defineButtonPersonality({
|
|
|
4815
5067
|
name: "Outline",
|
|
4816
5068
|
enabled: true,
|
|
4817
5069
|
priority: 3,
|
|
4818
|
-
background: {
|
|
4819
|
-
|
|
4820
|
-
|
|
4821
|
-
border: {
|
|
4822
|
-
widthClass: "border",
|
|
4823
|
-
colorToken: "border"
|
|
5070
|
+
background: {
|
|
5071
|
+
type: "surface",
|
|
5072
|
+
role: "link"
|
|
4824
5073
|
},
|
|
5074
|
+
borderRadius: "rounded-full",
|
|
5075
|
+
border: { widthClass: "border" },
|
|
4825
5076
|
effects: { hover: [{
|
|
4826
5077
|
effectId: "background-on-hover",
|
|
4827
5078
|
options: { colorToken: "surface" }
|
|
@@ -4832,8 +5083,10 @@ const pebble = defineButtonPersonality({
|
|
|
4832
5083
|
name: "Ghost",
|
|
4833
5084
|
enabled: true,
|
|
4834
5085
|
priority: 3,
|
|
4835
|
-
background: {
|
|
4836
|
-
|
|
5086
|
+
background: {
|
|
5087
|
+
type: "surface",
|
|
5088
|
+
role: "link"
|
|
5089
|
+
},
|
|
4837
5090
|
borderRadius: "rounded-full",
|
|
4838
5091
|
sizes: {
|
|
4839
5092
|
sm: {
|
|
@@ -4849,11 +5102,7 @@ const pebble = defineButtonPersonality({
|
|
|
4849
5102
|
padding: "0.75rem 1.5rem",
|
|
4850
5103
|
fontSize: "text-xl"
|
|
4851
5104
|
}
|
|
4852
|
-
}
|
|
4853
|
-
effects: { hover: [{
|
|
4854
|
-
effectId: "opacity-reduce",
|
|
4855
|
-
options: { reduction: 30 }
|
|
4856
|
-
}] }
|
|
5105
|
+
}
|
|
4857
5106
|
}
|
|
4858
5107
|
]
|
|
4859
5108
|
}
|
|
@@ -4915,15 +5164,11 @@ const quietArrow = defineButtonPersonality({
|
|
|
4915
5164
|
type: "solid",
|
|
4916
5165
|
colorToken: "primary"
|
|
4917
5166
|
},
|
|
4918
|
-
textColorToken: "primaryForeground",
|
|
4919
5167
|
borderRadius: "rounded-xl",
|
|
4920
5168
|
affordance: { iconId: "ArrowRight" },
|
|
4921
5169
|
effects: { hover: [{
|
|
4922
|
-
effectId: "background
|
|
4923
|
-
options: {
|
|
4924
|
-
colorToken: "primary",
|
|
4925
|
-
opacity: 90
|
|
4926
|
-
}
|
|
5170
|
+
effectId: "darken-background",
|
|
5171
|
+
options: { amount: 100 }
|
|
4927
5172
|
}] }
|
|
4928
5173
|
},
|
|
4929
5174
|
{
|
|
@@ -4931,13 +5176,12 @@ const quietArrow = defineButtonPersonality({
|
|
|
4931
5176
|
name: "Secondary",
|
|
4932
5177
|
enabled: true,
|
|
4933
5178
|
priority: 2,
|
|
4934
|
-
background: {
|
|
4935
|
-
|
|
4936
|
-
|
|
4937
|
-
border: {
|
|
4938
|
-
widthClass: "border",
|
|
4939
|
-
colorToken: "primary"
|
|
5179
|
+
background: {
|
|
5180
|
+
type: "surface",
|
|
5181
|
+
role: "link"
|
|
4940
5182
|
},
|
|
5183
|
+
borderRadius: "rounded-xl",
|
|
5184
|
+
border: { widthClass: "border" },
|
|
4941
5185
|
affordance: { iconId: "ArrowRight" },
|
|
4942
5186
|
effects: { hover: [{
|
|
4943
5187
|
effectId: "background-on-hover",
|
|
@@ -4949,21 +5193,22 @@ const quietArrow = defineButtonPersonality({
|
|
|
4949
5193
|
name: "Outline",
|
|
4950
5194
|
enabled: true,
|
|
4951
5195
|
priority: 3,
|
|
4952
|
-
background: {
|
|
4953
|
-
|
|
5196
|
+
background: {
|
|
5197
|
+
type: "surface",
|
|
5198
|
+
role: "link"
|
|
5199
|
+
},
|
|
4954
5200
|
borderRadius: "rounded-xl",
|
|
4955
|
-
border: {
|
|
4956
|
-
widthClass: "border",
|
|
4957
|
-
colorToken: "primary"
|
|
4958
|
-
}
|
|
5201
|
+
border: { widthClass: "border" }
|
|
4959
5202
|
},
|
|
4960
5203
|
{
|
|
4961
5204
|
id: "ghost",
|
|
4962
5205
|
name: "Ghost",
|
|
4963
5206
|
enabled: true,
|
|
4964
5207
|
priority: 3,
|
|
4965
|
-
background: {
|
|
4966
|
-
|
|
5208
|
+
background: {
|
|
5209
|
+
type: "surface",
|
|
5210
|
+
role: "link"
|
|
5211
|
+
},
|
|
4967
5212
|
borderRadius: "rounded-xl"
|
|
4968
5213
|
}
|
|
4969
5214
|
]
|
|
@@ -5027,7 +5272,6 @@ const showtimePill = defineButtonPersonality({
|
|
|
5027
5272
|
type: "solid",
|
|
5028
5273
|
colorToken: "primary"
|
|
5029
5274
|
},
|
|
5030
|
-
textColorToken: "background",
|
|
5031
5275
|
borderRadius: "rounded-full",
|
|
5032
5276
|
effects: { hover: [{ effectId: "pop" }] }
|
|
5033
5277
|
},
|
|
@@ -5036,13 +5280,12 @@ const showtimePill = defineButtonPersonality({
|
|
|
5036
5280
|
name: "Secondary",
|
|
5037
5281
|
enabled: true,
|
|
5038
5282
|
priority: 2,
|
|
5039
|
-
background: {
|
|
5040
|
-
|
|
5041
|
-
|
|
5042
|
-
border: {
|
|
5043
|
-
widthClass: "border-2",
|
|
5044
|
-
colorToken: "primary"
|
|
5283
|
+
background: {
|
|
5284
|
+
type: "surface",
|
|
5285
|
+
role: "link"
|
|
5045
5286
|
},
|
|
5287
|
+
borderRadius: "rounded-full",
|
|
5288
|
+
border: { widthClass: "border-2" },
|
|
5046
5289
|
effects: { hover: [{ effectId: "pop" }] }
|
|
5047
5290
|
},
|
|
5048
5291
|
{
|
|
@@ -5054,7 +5297,6 @@ const showtimePill = defineButtonPersonality({
|
|
|
5054
5297
|
type: "solid",
|
|
5055
5298
|
colorToken: "secondary"
|
|
5056
5299
|
},
|
|
5057
|
-
textColorToken: "primary",
|
|
5058
5300
|
borderRadius: "rounded-full",
|
|
5059
5301
|
effects: { hover: [{ effectId: "pop" }] }
|
|
5060
5302
|
},
|
|
@@ -5067,12 +5309,8 @@ const showtimePill = defineButtonPersonality({
|
|
|
5067
5309
|
type: "solid",
|
|
5068
5310
|
colorToken: "background"
|
|
5069
5311
|
},
|
|
5070
|
-
textColorToken: "primary",
|
|
5071
5312
|
borderRadius: "rounded-full",
|
|
5072
|
-
border: {
|
|
5073
|
-
widthClass: "border-2",
|
|
5074
|
-
colorToken: "primary"
|
|
5075
|
-
},
|
|
5313
|
+
border: { widthClass: "border-2" },
|
|
5076
5314
|
effects: { hover: [{
|
|
5077
5315
|
effectId: "background-on-hover",
|
|
5078
5316
|
options: { colorToken: "surface" }
|
|
@@ -5083,13 +5321,12 @@ const showtimePill = defineButtonPersonality({
|
|
|
5083
5321
|
name: "Outline",
|
|
5084
5322
|
enabled: true,
|
|
5085
5323
|
priority: 3,
|
|
5086
|
-
background: {
|
|
5087
|
-
|
|
5088
|
-
|
|
5089
|
-
border: {
|
|
5090
|
-
widthClass: "border-2",
|
|
5091
|
-
colorToken: "primary"
|
|
5324
|
+
background: {
|
|
5325
|
+
type: "surface",
|
|
5326
|
+
role: "link"
|
|
5092
5327
|
},
|
|
5328
|
+
borderRadius: "rounded-full",
|
|
5329
|
+
border: { widthClass: "border-2" },
|
|
5093
5330
|
effects: { hover: [{
|
|
5094
5331
|
effectId: "background-on-hover",
|
|
5095
5332
|
options: { colorToken: "background" }
|
|
@@ -5100,8 +5337,10 @@ const showtimePill = defineButtonPersonality({
|
|
|
5100
5337
|
name: "Ghost",
|
|
5101
5338
|
enabled: true,
|
|
5102
5339
|
priority: 3,
|
|
5103
|
-
background: {
|
|
5104
|
-
|
|
5340
|
+
background: {
|
|
5341
|
+
type: "surface",
|
|
5342
|
+
role: "link"
|
|
5343
|
+
},
|
|
5105
5344
|
borderRadius: "rounded-full",
|
|
5106
5345
|
effects: { hover: [{
|
|
5107
5346
|
effectId: "background-on-hover",
|
|
@@ -5112,104 +5351,151 @@ const showtimePill = defineButtonPersonality({
|
|
|
5112
5351
|
}
|
|
5113
5352
|
});
|
|
5114
5353
|
//#endregion
|
|
5115
|
-
//#region ../theme-core/src/buttons/personalities/
|
|
5116
|
-
|
|
5117
|
-
|
|
5118
|
-
|
|
5119
|
-
|
|
5120
|
-
|
|
5121
|
-
|
|
5122
|
-
|
|
5123
|
-
|
|
5124
|
-
|
|
5125
|
-
|
|
5354
|
+
//#region ../theme-core/src/buttons/personalities/soft-pill.ts
|
|
5355
|
+
/**
|
|
5356
|
+
* Soft Pill — rounded-full pill buttons with a hover lift. The default for
|
|
5357
|
+
* Calm Studio and Modern Wellness; reads as quietly modern and welcoming.
|
|
5358
|
+
*/
|
|
5359
|
+
const softPill = defineButtonPersonality({
|
|
5360
|
+
id: "soft-pill",
|
|
5361
|
+
name: "Soft Pill",
|
|
5362
|
+
description: "Rounded pills with a gentle lift on hover. Quietly modern.",
|
|
5363
|
+
tags: {
|
|
5364
|
+
tone: "classic",
|
|
5365
|
+
energy: "calm",
|
|
5366
|
+
motion: "subtle",
|
|
5367
|
+
era: "organic"
|
|
5368
|
+
},
|
|
5369
|
+
buttonSystem: {
|
|
5370
|
+
global: {
|
|
5371
|
+
cornerStyle: "pill",
|
|
5372
|
+
shadow: "low",
|
|
5373
|
+
textTransform: "none",
|
|
5374
|
+
fontWeight: 500,
|
|
5375
|
+
borderWidth: 2,
|
|
5376
|
+
hoverTransform: "lift",
|
|
5377
|
+
hoverColor: "none"
|
|
5126
5378
|
},
|
|
5127
|
-
|
|
5128
|
-
|
|
5129
|
-
|
|
5130
|
-
|
|
5131
|
-
|
|
5132
|
-
|
|
5133
|
-
|
|
5134
|
-
|
|
5135
|
-
|
|
5379
|
+
variants: [
|
|
5380
|
+
{
|
|
5381
|
+
id: "primary",
|
|
5382
|
+
name: "Primary",
|
|
5383
|
+
enabled: true,
|
|
5384
|
+
priority: 1,
|
|
5385
|
+
background: {
|
|
5386
|
+
type: "solid",
|
|
5387
|
+
colorToken: "primary"
|
|
5388
|
+
},
|
|
5389
|
+
borderRadius: "rounded-full",
|
|
5390
|
+
shadow: {
|
|
5391
|
+
elevation: "low",
|
|
5392
|
+
softness: "soft",
|
|
5393
|
+
position: "bottom"
|
|
5394
|
+
},
|
|
5395
|
+
effects: {
|
|
5396
|
+
hover: [{
|
|
5397
|
+
effectId: "lift",
|
|
5398
|
+
options: { translateY: "-1px" }
|
|
5399
|
+
}],
|
|
5400
|
+
active: [{
|
|
5401
|
+
effectId: "scale-down",
|
|
5402
|
+
options: { scale: "0.98" }
|
|
5403
|
+
}]
|
|
5404
|
+
}
|
|
5136
5405
|
},
|
|
5137
|
-
|
|
5138
|
-
|
|
5139
|
-
|
|
5140
|
-
|
|
5141
|
-
|
|
5142
|
-
|
|
5143
|
-
|
|
5144
|
-
|
|
5145
|
-
colorToken: "primary"
|
|
5146
|
-
},
|
|
5147
|
-
textColorToken: "primaryForeground",
|
|
5148
|
-
borderRadius: "rounded-full",
|
|
5149
|
-
shadow: {
|
|
5150
|
-
elevation: "low",
|
|
5151
|
-
softness: "soft",
|
|
5152
|
-
position: "bottom"
|
|
5153
|
-
},
|
|
5154
|
-
effects: {
|
|
5155
|
-
hover: [{
|
|
5156
|
-
effectId: "lift",
|
|
5157
|
-
options: { translateY: "-1px" }
|
|
5158
|
-
}],
|
|
5159
|
-
active: [{
|
|
5160
|
-
effectId: "scale-down",
|
|
5161
|
-
options: { scale: "0.98" }
|
|
5162
|
-
}]
|
|
5163
|
-
}
|
|
5406
|
+
{
|
|
5407
|
+
id: "secondary",
|
|
5408
|
+
name: "Secondary",
|
|
5409
|
+
enabled: true,
|
|
5410
|
+
priority: 2,
|
|
5411
|
+
background: {
|
|
5412
|
+
type: "surface",
|
|
5413
|
+
role: "link"
|
|
5164
5414
|
},
|
|
5165
|
-
|
|
5166
|
-
|
|
5167
|
-
|
|
5168
|
-
|
|
5169
|
-
|
|
5170
|
-
|
|
5171
|
-
|
|
5172
|
-
|
|
5173
|
-
|
|
5174
|
-
|
|
5175
|
-
|
|
5176
|
-
|
|
5177
|
-
|
|
5178
|
-
|
|
5179
|
-
|
|
5180
|
-
}] }
|
|
5415
|
+
borderRadius: "rounded-full",
|
|
5416
|
+
border: { widthClass: "border-2" },
|
|
5417
|
+
effects: { hover: [{
|
|
5418
|
+
effectId: "background-on-hover",
|
|
5419
|
+
options: { colorToken: "surface" }
|
|
5420
|
+
}] }
|
|
5421
|
+
},
|
|
5422
|
+
{
|
|
5423
|
+
id: "outline",
|
|
5424
|
+
name: "Outline",
|
|
5425
|
+
enabled: true,
|
|
5426
|
+
priority: 3,
|
|
5427
|
+
background: {
|
|
5428
|
+
type: "surface",
|
|
5429
|
+
role: "link"
|
|
5181
5430
|
},
|
|
5182
|
-
|
|
5183
|
-
|
|
5184
|
-
|
|
5185
|
-
|
|
5186
|
-
|
|
5187
|
-
|
|
5188
|
-
|
|
5189
|
-
|
|
5190
|
-
|
|
5191
|
-
|
|
5192
|
-
|
|
5193
|
-
|
|
5194
|
-
|
|
5195
|
-
|
|
5196
|
-
|
|
5197
|
-
}] }
|
|
5431
|
+
borderRadius: "rounded-full",
|
|
5432
|
+
border: { widthClass: "border" },
|
|
5433
|
+
effects: { hover: [{
|
|
5434
|
+
effectId: "background-on-hover",
|
|
5435
|
+
options: { colorToken: "surface" }
|
|
5436
|
+
}] }
|
|
5437
|
+
},
|
|
5438
|
+
{
|
|
5439
|
+
id: "ghost",
|
|
5440
|
+
name: "Ghost",
|
|
5441
|
+
enabled: true,
|
|
5442
|
+
priority: 3,
|
|
5443
|
+
background: {
|
|
5444
|
+
type: "surface",
|
|
5445
|
+
role: "link"
|
|
5198
5446
|
},
|
|
5199
|
-
|
|
5200
|
-
|
|
5201
|
-
|
|
5202
|
-
|
|
5203
|
-
|
|
5204
|
-
|
|
5205
|
-
|
|
5206
|
-
|
|
5207
|
-
|
|
5208
|
-
|
|
5209
|
-
|
|
5210
|
-
|
|
5211
|
-
|
|
5212
|
-
|
|
5447
|
+
borderRadius: "rounded-full",
|
|
5448
|
+
effects: { hover: [{
|
|
5449
|
+
effectId: "background-on-hover",
|
|
5450
|
+
options: { colorToken: "surface" }
|
|
5451
|
+
}] }
|
|
5452
|
+
}
|
|
5453
|
+
]
|
|
5454
|
+
}
|
|
5455
|
+
});
|
|
5456
|
+
//#endregion
|
|
5457
|
+
//#region ../theme-core/src/buttons/personalities/two-tone-pill.ts
|
|
5458
|
+
const solidSecondary = {
|
|
5459
|
+
id: "secondary",
|
|
5460
|
+
name: "Secondary",
|
|
5461
|
+
enabled: true,
|
|
5462
|
+
priority: 2,
|
|
5463
|
+
background: {
|
|
5464
|
+
type: "solid",
|
|
5465
|
+
colorToken: unsafeAsOpaqueButtonColourToken("secondary")
|
|
5466
|
+
},
|
|
5467
|
+
borderRadius: "rounded-full",
|
|
5468
|
+
shadow: {
|
|
5469
|
+
elevation: "none",
|
|
5470
|
+
softness: null,
|
|
5471
|
+
position: "bottom"
|
|
5472
|
+
},
|
|
5473
|
+
effects: {
|
|
5474
|
+
hover: [{
|
|
5475
|
+
effectId: "background-on-hover-alpha",
|
|
5476
|
+
options: {
|
|
5477
|
+
colorToken: "secondary",
|
|
5478
|
+
opacity: 88
|
|
5479
|
+
}
|
|
5480
|
+
}],
|
|
5481
|
+
active: [{
|
|
5482
|
+
effectId: "scale-down",
|
|
5483
|
+
options: { scale: "0.98" }
|
|
5484
|
+
}]
|
|
5485
|
+
}
|
|
5486
|
+
};
|
|
5487
|
+
//#endregion
|
|
5488
|
+
//#region ../theme-core/src/buttons/personalities/index.ts
|
|
5489
|
+
const buttonPersonalities = [
|
|
5490
|
+
softPill,
|
|
5491
|
+
defineButtonPersonality({
|
|
5492
|
+
id: "two-tone-pill",
|
|
5493
|
+
name: "Two-tone Pill",
|
|
5494
|
+
description: "Rounded pills with distinct solid primary and secondary brand colours.",
|
|
5495
|
+
tags: softPill.tags,
|
|
5496
|
+
buttonSystem: {
|
|
5497
|
+
...softPill.buttonSystem,
|
|
5498
|
+
variants: softPill.buttonSystem.variants.map((variant) => variant.id === "secondary" ? solidSecondary : variant)
|
|
5213
5499
|
}
|
|
5214
5500
|
}),
|
|
5215
5501
|
earthPill,
|
|
@@ -5225,6 +5511,27 @@ const buttonPersonalities = [
|
|
|
5225
5511
|
quietArrow
|
|
5226
5512
|
];
|
|
5227
5513
|
new Map(buttonPersonalities.map((p) => [p.id, p]));
|
|
5514
|
+
buttonPersonalities.map((personality) => ({
|
|
5515
|
+
id: personality.id,
|
|
5516
|
+
name: personality.name,
|
|
5517
|
+
description: personality.description,
|
|
5518
|
+
category: presetCategory(personality),
|
|
5519
|
+
buttonSystem: personality.buttonSystem,
|
|
5520
|
+
compatibility: {
|
|
5521
|
+
...personality.tags.tone ? { tones: [personality.tags.tone] } : {},
|
|
5522
|
+
...personality.tags.energy ? { energies: [personality.tags.energy] } : {}
|
|
5523
|
+
}
|
|
5524
|
+
}));
|
|
5525
|
+
function presetCategory(personality) {
|
|
5526
|
+
switch (personality.tags.era) {
|
|
5527
|
+
case "retro": return "retro";
|
|
5528
|
+
case "editorial": return "minimal";
|
|
5529
|
+
case "organic": return "artistic";
|
|
5530
|
+
case "modern": return personality.tags.tone === "bold" ? "modern" : "technical";
|
|
5531
|
+
case "technical": return "technical";
|
|
5532
|
+
case void 0: return "modern";
|
|
5533
|
+
}
|
|
5534
|
+
}
|
|
5228
5535
|
//#endregion
|
|
5229
5536
|
//#region ../theme-core/src/cards/types.ts
|
|
5230
5537
|
const cardVariantRoleValues = ["default", "alternative"];
|
|
@@ -6743,6 +7050,7 @@ const navFontWeight = z$1.enum([
|
|
|
6743
7050
|
"bold"
|
|
6744
7051
|
]);
|
|
6745
7052
|
const headerMaxWidth = z$1.enum(["container", "full"]);
|
|
7053
|
+
const headerBarFrame = z$1.enum(["full-bleed", "inset-shell"]);
|
|
6746
7054
|
const headerContainerSchema = z$1.object({
|
|
6747
7055
|
rounded: z$1.enum([
|
|
6748
7056
|
"none",
|
|
@@ -6887,6 +7195,7 @@ const headerSchema = z$1.object({
|
|
|
6887
7195
|
positioning: headerPositioning,
|
|
6888
7196
|
shrinkOnScroll: z$1.boolean(),
|
|
6889
7197
|
maxWidth: headerMaxWidth,
|
|
7198
|
+
barFrame: headerBarFrame.optional(),
|
|
6890
7199
|
logoOverride: mediaSchema$1.nullable().optional(),
|
|
6891
7200
|
background: headerBackgroundSchema.default({
|
|
6892
7201
|
type: "color",
|
|
@@ -6896,6 +7205,7 @@ const headerSchema = z$1.object({
|
|
|
6896
7205
|
navStyle: headerNavStyle,
|
|
6897
7206
|
navColor: themeColorTokenSchema.nullable().optional(),
|
|
6898
7207
|
navWeight: navFontWeight.default("medium"),
|
|
7208
|
+
navFontRole: z$1.enum(["body", "heading"]).optional(),
|
|
6899
7209
|
navTypography: z$1.enum(["body", "heading"]).optional(),
|
|
6900
7210
|
navTextSize: navLinkStyleSchema.shape.textSize,
|
|
6901
7211
|
navPlacement: z$1.enum(["end", "center"]).optional(),
|
|
@@ -6911,7 +7221,21 @@ const headerSchema = z$1.object({
|
|
|
6911
7221
|
ctaTreatment: headerCtaTreatmentSchema.optional(),
|
|
6912
7222
|
ctaVariant: z$1.string().min(1).optional(),
|
|
6913
7223
|
dropdownStyle: dropdownStyleSchema
|
|
6914
|
-
});
|
|
7224
|
+
}).transform(normaliseHeaderNavFontRole);
|
|
7225
|
+
/**
|
|
7226
|
+
* Normalises the legacy `navTypography` font-role alias into the canonical
|
|
7227
|
+
* `navFontRole` field so persisted themes migrate at the parse boundary without
|
|
7228
|
+
* a data migration. `navFontRole` always wins when both are present; the legacy
|
|
7229
|
+
* field is dropped so we never carry a dual write forward.
|
|
7230
|
+
*/
|
|
7231
|
+
function normaliseHeaderNavFontRole(header) {
|
|
7232
|
+
if (header.navTypography === void 0) return header;
|
|
7233
|
+
const { navTypography, ...rest } = header;
|
|
7234
|
+
return header.navFontRole === void 0 ? {
|
|
7235
|
+
...rest,
|
|
7236
|
+
navFontRole: navTypography
|
|
7237
|
+
} : rest;
|
|
7238
|
+
}
|
|
6915
7239
|
const footerVariant = z$1.enum([
|
|
6916
7240
|
"simple",
|
|
6917
7241
|
"columns",
|
|
@@ -8583,6 +8907,241 @@ const originalJoyCardSystem = { variants: [{
|
|
|
8583
8907
|
const serifDisplayQuote = { style: "serif-display" };
|
|
8584
8908
|
/** Punchy quotation mark in the secondary accent colour. Bold / accent styles. */
|
|
8585
8909
|
const accentGlyphQuote = { style: "accent-glyph" };
|
|
8910
|
+
/**
|
|
8911
|
+
* Curated library of gradient presets.
|
|
8912
|
+
* All gradients use theme color tokens, so they adapt to the site's palette.
|
|
8913
|
+
*/
|
|
8914
|
+
const GRADIENT_PRESETS = [
|
|
8915
|
+
{
|
|
8916
|
+
id: "primary-secondary",
|
|
8917
|
+
name: "Primary to Secondary",
|
|
8918
|
+
description: "Blend your primary and secondary brand colors",
|
|
8919
|
+
type: "linear",
|
|
8920
|
+
angle: 135,
|
|
8921
|
+
stops: [{
|
|
8922
|
+
color: "primary-500",
|
|
8923
|
+
position: 0
|
|
8924
|
+
}, {
|
|
8925
|
+
color: "secondary-500",
|
|
8926
|
+
position: 100
|
|
8927
|
+
}]
|
|
8928
|
+
},
|
|
8929
|
+
{
|
|
8930
|
+
id: "primary-accent",
|
|
8931
|
+
name: "Primary to Accent",
|
|
8932
|
+
description: "Energetic gradient from primary to accent",
|
|
8933
|
+
type: "linear",
|
|
8934
|
+
angle: 135,
|
|
8935
|
+
stops: [{
|
|
8936
|
+
color: "primary-500",
|
|
8937
|
+
position: 0
|
|
8938
|
+
}, {
|
|
8939
|
+
color: "accent-500",
|
|
8940
|
+
position: 100
|
|
8941
|
+
}]
|
|
8942
|
+
},
|
|
8943
|
+
{
|
|
8944
|
+
id: "secondary-accent",
|
|
8945
|
+
name: "Secondary to Accent",
|
|
8946
|
+
description: "Vibrant secondary to accent blend",
|
|
8947
|
+
type: "linear",
|
|
8948
|
+
angle: 135,
|
|
8949
|
+
stops: [{
|
|
8950
|
+
color: "secondary-500",
|
|
8951
|
+
position: 0
|
|
8952
|
+
}, {
|
|
8953
|
+
color: "accent-500",
|
|
8954
|
+
position: 100
|
|
8955
|
+
}]
|
|
8956
|
+
},
|
|
8957
|
+
{
|
|
8958
|
+
id: "primary-light-dark",
|
|
8959
|
+
name: "Primary Light to Dark",
|
|
8960
|
+
description: "Subtle primary color fade",
|
|
8961
|
+
type: "linear",
|
|
8962
|
+
angle: 180,
|
|
8963
|
+
stops: [{
|
|
8964
|
+
color: "primary-500",
|
|
8965
|
+
position: 0
|
|
8966
|
+
}, {
|
|
8967
|
+
color: "primary-900",
|
|
8968
|
+
position: 100
|
|
8969
|
+
}]
|
|
8970
|
+
},
|
|
8971
|
+
{
|
|
8972
|
+
id: "primary-dark-light",
|
|
8973
|
+
name: "Primary Dark to Light",
|
|
8974
|
+
description: "Reverse primary fade",
|
|
8975
|
+
type: "linear",
|
|
8976
|
+
angle: 180,
|
|
8977
|
+
stops: [{
|
|
8978
|
+
color: "primary-900",
|
|
8979
|
+
position: 0
|
|
8980
|
+
}, {
|
|
8981
|
+
color: "primary-50",
|
|
8982
|
+
position: 100
|
|
8983
|
+
}]
|
|
8984
|
+
},
|
|
8985
|
+
{
|
|
8986
|
+
id: "secondary-light-dark",
|
|
8987
|
+
name: "Secondary Light to Dark",
|
|
8988
|
+
description: "Subtle secondary color fade",
|
|
8989
|
+
type: "linear",
|
|
8990
|
+
angle: 180,
|
|
8991
|
+
stops: [{
|
|
8992
|
+
color: "secondary-500",
|
|
8993
|
+
position: 0
|
|
8994
|
+
}, {
|
|
8995
|
+
color: "secondary-900",
|
|
8996
|
+
position: 100
|
|
8997
|
+
}]
|
|
8998
|
+
},
|
|
8999
|
+
{
|
|
9000
|
+
id: "accent-light-dark",
|
|
9001
|
+
name: "Accent Light to Dark",
|
|
9002
|
+
description: "Accent color depth fade",
|
|
9003
|
+
type: "linear",
|
|
9004
|
+
angle: 180,
|
|
9005
|
+
stops: [{
|
|
9006
|
+
color: "accent-500",
|
|
9007
|
+
position: 0
|
|
9008
|
+
}, {
|
|
9009
|
+
color: "accent-900",
|
|
9010
|
+
position: 100
|
|
9011
|
+
}]
|
|
9012
|
+
},
|
|
9013
|
+
{
|
|
9014
|
+
id: "background-surface",
|
|
9015
|
+
name: "Background to Surface",
|
|
9016
|
+
description: "Subtle depth using base colors",
|
|
9017
|
+
type: "linear",
|
|
9018
|
+
angle: 180,
|
|
9019
|
+
stops: [{
|
|
9020
|
+
color: "background",
|
|
9021
|
+
position: 0
|
|
9022
|
+
}, {
|
|
9023
|
+
color: "surface",
|
|
9024
|
+
position: 100
|
|
9025
|
+
}]
|
|
9026
|
+
},
|
|
9027
|
+
{
|
|
9028
|
+
id: "neutral-fade",
|
|
9029
|
+
name: "Neutral Gradient",
|
|
9030
|
+
description: "Elegant neutral color fade",
|
|
9031
|
+
type: "linear",
|
|
9032
|
+
angle: 180,
|
|
9033
|
+
stops: [{
|
|
9034
|
+
color: "neutral-900",
|
|
9035
|
+
position: 0
|
|
9036
|
+
}, {
|
|
9037
|
+
color: "neutral-50",
|
|
9038
|
+
position: 100
|
|
9039
|
+
}]
|
|
9040
|
+
},
|
|
9041
|
+
{
|
|
9042
|
+
id: "primary-glow",
|
|
9043
|
+
name: "Primary glow",
|
|
9044
|
+
description: "A soft top-centred glow using your primary palette",
|
|
9045
|
+
type: "radial",
|
|
9046
|
+
shape: "ellipse",
|
|
9047
|
+
position: "top center",
|
|
9048
|
+
stops: [{
|
|
9049
|
+
color: "primary-900",
|
|
9050
|
+
position: 0
|
|
9051
|
+
}, {
|
|
9052
|
+
color: "primary-950",
|
|
9053
|
+
position: 100
|
|
9054
|
+
}],
|
|
9055
|
+
foreground: {
|
|
9056
|
+
textColor: "onPrimary900",
|
|
9057
|
+
headingColor: "onPrimary900",
|
|
9058
|
+
linkColor: "onPrimary900",
|
|
9059
|
+
supportingColor: "onPrimary900"
|
|
9060
|
+
}
|
|
9061
|
+
},
|
|
9062
|
+
{
|
|
9063
|
+
id: "accent-glow",
|
|
9064
|
+
name: "Accent glow",
|
|
9065
|
+
description: "A soft top-centred glow using your accent palette",
|
|
9066
|
+
type: "radial",
|
|
9067
|
+
shape: "ellipse",
|
|
9068
|
+
position: "top center",
|
|
9069
|
+
stops: [{
|
|
9070
|
+
color: "accent-900",
|
|
9071
|
+
position: 0
|
|
9072
|
+
}, {
|
|
9073
|
+
color: "accent-950",
|
|
9074
|
+
position: 100
|
|
9075
|
+
}],
|
|
9076
|
+
foreground: {
|
|
9077
|
+
textColor: "onAccent900",
|
|
9078
|
+
headingColor: "onAccent900",
|
|
9079
|
+
linkColor: "onAccent900",
|
|
9080
|
+
supportingColor: "onAccent900"
|
|
9081
|
+
}
|
|
9082
|
+
},
|
|
9083
|
+
{
|
|
9084
|
+
id: "primary-secondary-accent",
|
|
9085
|
+
name: "Brand Trio",
|
|
9086
|
+
description: "All three brand colors in harmony",
|
|
9087
|
+
type: "linear",
|
|
9088
|
+
angle: 135,
|
|
9089
|
+
stops: [
|
|
9090
|
+
{
|
|
9091
|
+
color: "primary-500",
|
|
9092
|
+
position: 0
|
|
9093
|
+
},
|
|
9094
|
+
{
|
|
9095
|
+
color: "secondary-500",
|
|
9096
|
+
position: 50
|
|
9097
|
+
},
|
|
9098
|
+
{
|
|
9099
|
+
color: "accent-500",
|
|
9100
|
+
position: 100
|
|
9101
|
+
}
|
|
9102
|
+
]
|
|
9103
|
+
}
|
|
9104
|
+
].map((preset) => ({
|
|
9105
|
+
...preset,
|
|
9106
|
+
id: preset.id,
|
|
9107
|
+
stops: preset.stops
|
|
9108
|
+
}));
|
|
9109
|
+
const GRADIENT_PRESET_IDS = GRADIENT_PRESETS.map((preset) => preset.id);
|
|
9110
|
+
const gradientPresetIdSet = new Set(GRADIENT_PRESET_IDS);
|
|
9111
|
+
const gradientPresetById = Object.fromEntries(GRADIENT_PRESETS.map((preset) => [preset.id, preset]));
|
|
9112
|
+
function parseGradientPresetId(value) {
|
|
9113
|
+
if (typeof value !== "string") return null;
|
|
9114
|
+
const normalized = value.trim();
|
|
9115
|
+
if (!gradientPresetIdSet.has(normalized)) return null;
|
|
9116
|
+
return normalized;
|
|
9117
|
+
}
|
|
9118
|
+
function getGradientPreset(id) {
|
|
9119
|
+
return gradientPresetById[id];
|
|
9120
|
+
}
|
|
9121
|
+
//#endregion
|
|
9122
|
+
//#region ../theme-core/src/gradients/utils.ts
|
|
9123
|
+
/**
|
|
9124
|
+
* Convert a GradientConfig to a CSS gradient string
|
|
9125
|
+
*
|
|
9126
|
+
* @param config - The gradient configuration using theme tokens
|
|
9127
|
+
* @param tokens - Map of theme color tokens to hex values
|
|
9128
|
+
* @returns CSS gradient string (e.g., "linear-gradient(180deg, #3b82f6 0%, #f59e0b 100%)")
|
|
9129
|
+
*/
|
|
9130
|
+
function gradientToCss(config, tokens) {
|
|
9131
|
+
const stops = config.stops.map((stop) => {
|
|
9132
|
+
return `${tokens[stop.color] ?? "#000000"} ${stop.position}%`;
|
|
9133
|
+
}).join(", ");
|
|
9134
|
+
const type = config.type ?? "linear";
|
|
9135
|
+
if (type === "radial") {
|
|
9136
|
+
const position = config.position ?? "center";
|
|
9137
|
+
return `radial-gradient(${config.shape ?? "circle"} at ${position}, ${stops})`;
|
|
9138
|
+
}
|
|
9139
|
+
if (type === "conic") {
|
|
9140
|
+
const position = config.position ?? "center";
|
|
9141
|
+
return `conic-gradient(from ${config.angle ?? 0}deg at ${position}, ${stops})`;
|
|
9142
|
+
}
|
|
9143
|
+
return `linear-gradient(${config.angle ?? 180}deg, ${stops})`;
|
|
9144
|
+
}
|
|
8586
9145
|
//#endregion
|
|
8587
9146
|
//#region ../theme-core/src/site-styles/headerLooks.ts
|
|
8588
9147
|
function asHeaderLookId(value) {
|
|
@@ -8717,7 +9276,7 @@ const overlayLogoAccommodations = [
|
|
|
8717
9276
|
* optional nested styling fields that would otherwise leak from another Look.
|
|
8718
9277
|
*/
|
|
8719
9278
|
function baseHeader(theme) {
|
|
8720
|
-
const { navLinkStyle: _navLinkStyle, navTypography: _navTypography, navTextSize: _navTextSize, dropdownStyle: _dropdownStyle, ctaVariant: _ctaVariant, navContainer: _navContainer, container: _container, shadow: _shadow, logo: _logo, logoText: _logoText, border: _border, ...header } = theme.header;
|
|
9279
|
+
const { navLinkStyle: _navLinkStyle, navFontRole: _navFontRole, navTypography: _navTypography, navTextSize: _navTextSize, dropdownStyle: _dropdownStyle, ctaVariant: _ctaVariant, navContainer: _navContainer, container: _container, shadow: _shadow, logo: _logo, logoText: _logoText, border: _border, ...header } = theme.header;
|
|
8721
9280
|
return {
|
|
8722
9281
|
...header,
|
|
8723
9282
|
navContainer: {
|
|
@@ -8866,6 +9425,17 @@ const headerStyleCatalog = defineExactCatalog()([
|
|
|
8866
9425
|
navTypography: "brand-caps",
|
|
8867
9426
|
moods: ["expressive"]
|
|
8868
9427
|
},
|
|
9428
|
+
{
|
|
9429
|
+
id: asHeaderStyleId("brand-capsule"),
|
|
9430
|
+
label: "Brand Capsule",
|
|
9431
|
+
description: "Solid brand chrome designed as a floating capsule, with quiet-caps nav, a soft pill active state, and an inverted CTA pill.",
|
|
9432
|
+
supportedLayoutIds: supportedLayouts(["classic"]),
|
|
9433
|
+
navInteraction: "pill-background",
|
|
9434
|
+
surface: "brand-solid",
|
|
9435
|
+
defaultDepth: "shadow",
|
|
9436
|
+
navTypography: "quiet-caps",
|
|
9437
|
+
moods: ["expressive", "professional"]
|
|
9438
|
+
},
|
|
8869
9439
|
{
|
|
8870
9440
|
id: asHeaderStyleId("serif-line"),
|
|
8871
9441
|
label: "Serif Line",
|
|
@@ -8959,6 +9529,7 @@ const headerStyleCompatibilityOrder = /* @__PURE__ */ new Map([
|
|
|
8959
9529
|
"brand-bar",
|
|
8960
9530
|
"brand-underline",
|
|
8961
9531
|
"brand-pill",
|
|
9532
|
+
"brand-capsule",
|
|
8962
9533
|
"serif-line",
|
|
8963
9534
|
"flat-tabs"
|
|
8964
9535
|
])],
|
|
@@ -8996,6 +9567,11 @@ headerStyleRepairChain([
|
|
|
8996
9567
|
"brand-pill",
|
|
8997
9568
|
"brand-bar",
|
|
8998
9569
|
"minimal"
|
|
9570
|
+
]), headerStyleRepairChain([
|
|
9571
|
+
"brand-capsule",
|
|
9572
|
+
"brand-pill",
|
|
9573
|
+
"brand-bar",
|
|
9574
|
+
"minimal"
|
|
8999
9575
|
]), headerStyleRepairChain([
|
|
9000
9576
|
"pill-nav",
|
|
9001
9577
|
"soft-bar",
|
|
@@ -10609,6 +11185,19 @@ z$1.object({
|
|
|
10609
11185
|
}).strict();
|
|
10610
11186
|
//#endregion
|
|
10611
11187
|
//#region ../theme-core/src/site-styles/runtimeCompiler.ts
|
|
11188
|
+
function defineSectionForegroundRuntimeTokens(input) {
|
|
11189
|
+
return {
|
|
11190
|
+
textColor: requireThemeColorToken(input.textColor),
|
|
11191
|
+
headingColor: requireThemeColorToken(input.headingColor),
|
|
11192
|
+
linkColor: requireThemeColorToken(input.linkColor),
|
|
11193
|
+
supportingColor: requireThemeColorToken(input.supportingColor)
|
|
11194
|
+
};
|
|
11195
|
+
}
|
|
11196
|
+
function requireThemeColorToken(value) {
|
|
11197
|
+
const token = parseThemeColorToken(value);
|
|
11198
|
+
if (!token) throw new Error(`Invalid section foreground Theme color token: ${String(value)}`);
|
|
11199
|
+
return token;
|
|
11200
|
+
}
|
|
10612
11201
|
function defineDesignRuntimeRules(rules) {
|
|
10613
11202
|
return rules;
|
|
10614
11203
|
}
|
|
@@ -10879,24 +11468,24 @@ const kirtanOrnateDesignRuntimeRules = defineDesignRuntimeRules({
|
|
|
10879
11468
|
type: "color",
|
|
10880
11469
|
color: "muted"
|
|
10881
11470
|
},
|
|
10882
|
-
foreground: {
|
|
11471
|
+
foreground: defineSectionForegroundRuntimeTokens({
|
|
10883
11472
|
textColor: "text",
|
|
10884
11473
|
headingColor: "primary",
|
|
10885
11474
|
linkColor: "primary",
|
|
10886
11475
|
supportingColor: "text"
|
|
10887
|
-
}
|
|
11476
|
+
})
|
|
10888
11477
|
},
|
|
10889
11478
|
"brand-depth-band": {
|
|
10890
11479
|
background: {
|
|
10891
11480
|
type: "color",
|
|
10892
11481
|
color: "primary-800"
|
|
10893
11482
|
},
|
|
10894
|
-
foreground: {
|
|
11483
|
+
foreground: defineSectionForegroundRuntimeTokens({
|
|
10895
11484
|
textColor: "text",
|
|
10896
11485
|
headingColor: "primary",
|
|
10897
11486
|
linkColor: "primary",
|
|
10898
11487
|
supportingColor: "text"
|
|
10899
|
-
}
|
|
11488
|
+
})
|
|
10900
11489
|
},
|
|
10901
11490
|
"hero-image": {
|
|
10902
11491
|
background: {
|
|
@@ -10904,12 +11493,32 @@ const kirtanOrnateDesignRuntimeRules = defineDesignRuntimeRules({
|
|
|
10904
11493
|
opacity: 1,
|
|
10905
11494
|
position: "center center"
|
|
10906
11495
|
},
|
|
10907
|
-
foreground: {
|
|
11496
|
+
foreground: defineSectionForegroundRuntimeTokens({
|
|
10908
11497
|
textColor: "text",
|
|
10909
11498
|
headingColor: "primary",
|
|
10910
11499
|
linkColor: "primary",
|
|
10911
11500
|
supportingColor: "text"
|
|
10912
|
-
}
|
|
11501
|
+
})
|
|
11502
|
+
}
|
|
11503
|
+
}
|
|
11504
|
+
});
|
|
11505
|
+
const primaryGlowGradientPresetId = parseGradientPresetId("primary-glow");
|
|
11506
|
+
if (!primaryGlowGradientPresetId) throw new Error("Expected primary-glow in the Theme Core gradient catalog");
|
|
11507
|
+
const fulcrumDesignRuntimeRules = defineDesignRuntimeRules({
|
|
11508
|
+
...defaultDesignRuntimeRules,
|
|
11509
|
+
sectionSurfaces: {
|
|
11510
|
+
...defaultDesignRuntimeRules.sectionSurfaces,
|
|
11511
|
+
"accent-band": {
|
|
11512
|
+
background: {
|
|
11513
|
+
type: "gradient",
|
|
11514
|
+
gradientPresetId: primaryGlowGradientPresetId
|
|
11515
|
+
},
|
|
11516
|
+
foreground: defineSectionForegroundRuntimeTokens({
|
|
11517
|
+
textColor: "primaryForeground",
|
|
11518
|
+
headingColor: "primaryForeground",
|
|
11519
|
+
linkColor: "primaryForeground",
|
|
11520
|
+
supportingColor: "primaryForeground"
|
|
11521
|
+
})
|
|
10913
11522
|
}
|
|
10914
11523
|
}
|
|
10915
11524
|
});
|
|
@@ -11233,6 +11842,7 @@ const curatedSiteStyles = [
|
|
|
11233
11842
|
],
|
|
11234
11843
|
buttonPersonalityChoices: [
|
|
11235
11844
|
buttonChoice("soft-pill"),
|
|
11845
|
+
buttonChoice("two-tone-pill"),
|
|
11236
11846
|
buttonChoice("pebble"),
|
|
11237
11847
|
buttonChoice("editorial-link"),
|
|
11238
11848
|
buttonChoice("brushed-wash")
|
|
@@ -12296,6 +12906,8 @@ const curatedSiteStyles = [
|
|
|
12296
12906
|
},
|
|
12297
12907
|
compositionBudget: quietBudget,
|
|
12298
12908
|
typography: fulcrumTypography,
|
|
12909
|
+
designRuntimeRules: fulcrumDesignRuntimeRules,
|
|
12910
|
+
recommendedAppearancePresetIds: ["cta-accent-band"],
|
|
12299
12911
|
themeOverrides: {
|
|
12300
12912
|
shadow: { colorToken: "primary" },
|
|
12301
12913
|
accordions: {
|
|
@@ -12412,6 +13024,7 @@ const curatedSiteStyles = [
|
|
|
12412
13024
|
],
|
|
12413
13025
|
buttonPersonalityChoices: [
|
|
12414
13026
|
buttonChoice("quiet-arrow"),
|
|
13027
|
+
buttonChoice("two-tone-pill"),
|
|
12415
13028
|
buttonChoice("flat-ink"),
|
|
12416
13029
|
buttonChoice("editorial-link")
|
|
12417
13030
|
],
|
|
@@ -12667,213 +13280,6 @@ z$1.object({
|
|
|
12667
13280
|
spacing: z$1.enum(themeTokenRecipeOptions.spacing),
|
|
12668
13281
|
motion: z$1.enum(themeTokenRecipeOptions.motion)
|
|
12669
13282
|
});
|
|
12670
|
-
//#endregion
|
|
12671
|
-
//#region ../theme-core/src/gradients/presets.ts
|
|
12672
|
-
/**
|
|
12673
|
-
* Curated library of gradient presets
|
|
12674
|
-
* All gradients use theme color tokens, so they adapt to the site's palette
|
|
12675
|
-
*/
|
|
12676
|
-
const GRADIENT_PRESETS = [
|
|
12677
|
-
{
|
|
12678
|
-
id: "primary-secondary",
|
|
12679
|
-
name: "Primary to Secondary",
|
|
12680
|
-
description: "Blend your primary and secondary brand colors",
|
|
12681
|
-
type: "linear",
|
|
12682
|
-
angle: 135,
|
|
12683
|
-
stops: [{
|
|
12684
|
-
color: "primary-500",
|
|
12685
|
-
position: 0
|
|
12686
|
-
}, {
|
|
12687
|
-
color: "secondary-500",
|
|
12688
|
-
position: 100
|
|
12689
|
-
}]
|
|
12690
|
-
},
|
|
12691
|
-
{
|
|
12692
|
-
id: "primary-accent",
|
|
12693
|
-
name: "Primary to Accent",
|
|
12694
|
-
description: "Energetic gradient from primary to accent",
|
|
12695
|
-
type: "linear",
|
|
12696
|
-
angle: 135,
|
|
12697
|
-
stops: [{
|
|
12698
|
-
color: "primary-500",
|
|
12699
|
-
position: 0
|
|
12700
|
-
}, {
|
|
12701
|
-
color: "accent-500",
|
|
12702
|
-
position: 100
|
|
12703
|
-
}]
|
|
12704
|
-
},
|
|
12705
|
-
{
|
|
12706
|
-
id: "secondary-accent",
|
|
12707
|
-
name: "Secondary to Accent",
|
|
12708
|
-
description: "Vibrant secondary to accent blend",
|
|
12709
|
-
type: "linear",
|
|
12710
|
-
angle: 135,
|
|
12711
|
-
stops: [{
|
|
12712
|
-
color: "secondary-500",
|
|
12713
|
-
position: 0
|
|
12714
|
-
}, {
|
|
12715
|
-
color: "accent-500",
|
|
12716
|
-
position: 100
|
|
12717
|
-
}]
|
|
12718
|
-
},
|
|
12719
|
-
{
|
|
12720
|
-
id: "primary-light-dark",
|
|
12721
|
-
name: "Primary Light to Dark",
|
|
12722
|
-
description: "Subtle primary color fade",
|
|
12723
|
-
type: "linear",
|
|
12724
|
-
angle: 180,
|
|
12725
|
-
stops: [{
|
|
12726
|
-
color: "primary-500",
|
|
12727
|
-
position: 0
|
|
12728
|
-
}, {
|
|
12729
|
-
color: "primary-900",
|
|
12730
|
-
position: 100
|
|
12731
|
-
}]
|
|
12732
|
-
},
|
|
12733
|
-
{
|
|
12734
|
-
id: "primary-dark-light",
|
|
12735
|
-
name: "Primary Dark to Light",
|
|
12736
|
-
description: "Reverse primary fade",
|
|
12737
|
-
type: "linear",
|
|
12738
|
-
angle: 180,
|
|
12739
|
-
stops: [{
|
|
12740
|
-
color: "primary-900",
|
|
12741
|
-
position: 0
|
|
12742
|
-
}, {
|
|
12743
|
-
color: "primary-50",
|
|
12744
|
-
position: 100
|
|
12745
|
-
}]
|
|
12746
|
-
},
|
|
12747
|
-
{
|
|
12748
|
-
id: "secondary-light-dark",
|
|
12749
|
-
name: "Secondary Light to Dark",
|
|
12750
|
-
description: "Subtle secondary color fade",
|
|
12751
|
-
type: "linear",
|
|
12752
|
-
angle: 180,
|
|
12753
|
-
stops: [{
|
|
12754
|
-
color: "secondary-500",
|
|
12755
|
-
position: 0
|
|
12756
|
-
}, {
|
|
12757
|
-
color: "secondary-900",
|
|
12758
|
-
position: 100
|
|
12759
|
-
}]
|
|
12760
|
-
},
|
|
12761
|
-
{
|
|
12762
|
-
id: "accent-light-dark",
|
|
12763
|
-
name: "Accent Light to Dark",
|
|
12764
|
-
description: "Accent color depth fade",
|
|
12765
|
-
type: "linear",
|
|
12766
|
-
angle: 180,
|
|
12767
|
-
stops: [{
|
|
12768
|
-
color: "accent-500",
|
|
12769
|
-
position: 0
|
|
12770
|
-
}, {
|
|
12771
|
-
color: "accent-900",
|
|
12772
|
-
position: 100
|
|
12773
|
-
}]
|
|
12774
|
-
},
|
|
12775
|
-
{
|
|
12776
|
-
id: "background-surface",
|
|
12777
|
-
name: "Background to Surface",
|
|
12778
|
-
description: "Subtle depth using base colors",
|
|
12779
|
-
type: "linear",
|
|
12780
|
-
angle: 180,
|
|
12781
|
-
stops: [{
|
|
12782
|
-
color: "background",
|
|
12783
|
-
position: 0
|
|
12784
|
-
}, {
|
|
12785
|
-
color: "surface",
|
|
12786
|
-
position: 100
|
|
12787
|
-
}]
|
|
12788
|
-
},
|
|
12789
|
-
{
|
|
12790
|
-
id: "neutral-fade",
|
|
12791
|
-
name: "Neutral Gradient",
|
|
12792
|
-
description: "Elegant neutral color fade",
|
|
12793
|
-
type: "linear",
|
|
12794
|
-
angle: 180,
|
|
12795
|
-
stops: [{
|
|
12796
|
-
color: "neutral-900",
|
|
12797
|
-
position: 0
|
|
12798
|
-
}, {
|
|
12799
|
-
color: "neutral-50",
|
|
12800
|
-
position: 100
|
|
12801
|
-
}]
|
|
12802
|
-
},
|
|
12803
|
-
{
|
|
12804
|
-
id: "primary-radial",
|
|
12805
|
-
name: "Primary Spotlight",
|
|
12806
|
-
description: "Radial primary gradient from center",
|
|
12807
|
-
type: "radial",
|
|
12808
|
-
position: "center",
|
|
12809
|
-
stops: [{
|
|
12810
|
-
color: "primary-500",
|
|
12811
|
-
position: 0
|
|
12812
|
-
}, {
|
|
12813
|
-
color: "primary-900",
|
|
12814
|
-
position: 100
|
|
12815
|
-
}]
|
|
12816
|
-
},
|
|
12817
|
-
{
|
|
12818
|
-
id: "accent-radial",
|
|
12819
|
-
name: "Accent Spotlight",
|
|
12820
|
-
description: "Radial accent gradient from center",
|
|
12821
|
-
type: "radial",
|
|
12822
|
-
position: "center",
|
|
12823
|
-
stops: [{
|
|
12824
|
-
color: "accent-500",
|
|
12825
|
-
position: 0
|
|
12826
|
-
}, {
|
|
12827
|
-
color: "accent-900",
|
|
12828
|
-
position: 100
|
|
12829
|
-
}]
|
|
12830
|
-
},
|
|
12831
|
-
{
|
|
12832
|
-
id: "primary-secondary-accent",
|
|
12833
|
-
name: "Brand Trio",
|
|
12834
|
-
description: "All three brand colors in harmony",
|
|
12835
|
-
type: "linear",
|
|
12836
|
-
angle: 135,
|
|
12837
|
-
stops: [
|
|
12838
|
-
{
|
|
12839
|
-
color: "primary-500",
|
|
12840
|
-
position: 0
|
|
12841
|
-
},
|
|
12842
|
-
{
|
|
12843
|
-
color: "secondary-500",
|
|
12844
|
-
position: 50
|
|
12845
|
-
},
|
|
12846
|
-
{
|
|
12847
|
-
color: "accent-500",
|
|
12848
|
-
position: 100
|
|
12849
|
-
}
|
|
12850
|
-
]
|
|
12851
|
-
}
|
|
12852
|
-
];
|
|
12853
|
-
//#endregion
|
|
12854
|
-
//#region ../theme-core/src/gradients/utils.ts
|
|
12855
|
-
/**
|
|
12856
|
-
* Convert a GradientConfig to a CSS gradient string
|
|
12857
|
-
*
|
|
12858
|
-
* @param config - The gradient configuration using theme tokens
|
|
12859
|
-
* @param tokens - Map of theme color tokens to hex values
|
|
12860
|
-
* @returns CSS gradient string (e.g., "linear-gradient(180deg, #3b82f6 0%, #f59e0b 100%)")
|
|
12861
|
-
*/
|
|
12862
|
-
function gradientToCss(config, tokens) {
|
|
12863
|
-
const stops = config.stops.map((stop) => {
|
|
12864
|
-
return `${tokens[stop.color] ?? "#000000"} ${stop.position}%`;
|
|
12865
|
-
}).join(", ");
|
|
12866
|
-
const type = config.type ?? "linear";
|
|
12867
|
-
if (type === "radial") {
|
|
12868
|
-
const position = config.position ?? "center";
|
|
12869
|
-
return `radial-gradient(${config.shape ?? "circle"} at ${position}, ${stops})`;
|
|
12870
|
-
}
|
|
12871
|
-
if (type === "conic") {
|
|
12872
|
-
const position = config.position ?? "center";
|
|
12873
|
-
return `conic-gradient(from ${config.angle ?? 0}deg at ${position}, ${stops})`;
|
|
12874
|
-
}
|
|
12875
|
-
return `linear-gradient(${config.angle ?? 180}deg, ${stops})`;
|
|
12876
|
-
}
|
|
12877
13283
|
const BREAKPOINT_LG = 1024;
|
|
12878
13284
|
const BREAKPOINT_XL = 1280;
|
|
12879
13285
|
const BREAKPOINT_LG_DOWN = BREAKPOINT_LG - 1;
|
|
@@ -13299,7 +13705,7 @@ const ALLOWED_TRANSFORM_IDS = [
|
|
|
13299
13705
|
"media.fromUrl",
|
|
13300
13706
|
"background.resolveStyle",
|
|
13301
13707
|
"background.resolveColorsStyle",
|
|
13302
|
-
"background.
|
|
13708
|
+
"background.resolveFrameClassName",
|
|
13303
13709
|
"background.resolveImageStyle",
|
|
13304
13710
|
"background.resolveImageClassName",
|
|
13305
13711
|
"background.resolveOverlayStyle",
|
|
@@ -13960,6 +14366,20 @@ const blockCategoryEnum = z$1.enum([
|
|
|
13960
14366
|
"layout",
|
|
13961
14367
|
"interactive"
|
|
13962
14368
|
]);
|
|
14369
|
+
const blockContentSourceSchema = z$1.object({
|
|
14370
|
+
kind: z$1.enum([
|
|
14371
|
+
"inline",
|
|
14372
|
+
"entries",
|
|
14373
|
+
"mixed"
|
|
14374
|
+
]),
|
|
14375
|
+
contentType: z$1.string().min(1).optional()
|
|
14376
|
+
}).superRefine((value, ctx) => {
|
|
14377
|
+
if (value.kind === "inline" && value.contentType) ctx.addIssue({
|
|
14378
|
+
code: z$1.ZodIssueCode.custom,
|
|
14379
|
+
path: ["contentType"],
|
|
14380
|
+
message: "contentType is not allowed when contentSource.kind is \"inline\""
|
|
14381
|
+
});
|
|
14382
|
+
});
|
|
13963
14383
|
z$1.object({
|
|
13964
14384
|
name: z$1.string().min(1),
|
|
13965
14385
|
version: z$1.string().min(1),
|
|
@@ -13990,6 +14410,12 @@ z$1.object({
|
|
|
13990
14410
|
}).optional()).optional(),
|
|
13991
14411
|
category: blockCategoryEnum.optional(),
|
|
13992
14412
|
contentTypes: z$1.array(z$1.string()).optional(),
|
|
14413
|
+
/**
|
|
14414
|
+
* Explicit content-source classification (inline / entries / mixed). Optional at the
|
|
14415
|
+
* schema level for backward compatibility with SDK-defined custom blocks, but every
|
|
14416
|
+
* registered SYSTEM block must declare it (enforced by a registry-wide test).
|
|
14417
|
+
*/
|
|
14418
|
+
contentSource: blockContentSourceSchema.optional(),
|
|
13993
14419
|
tags: z$1.array(z$1.string()).optional(),
|
|
13994
14420
|
icon: z$1.string().optional()
|
|
13995
14421
|
});
|
|
@@ -14966,6 +15392,7 @@ function devValidate(node) {
|
|
|
14966
15392
|
}
|
|
14967
15393
|
//#endregion
|
|
14968
15394
|
//#region ../blocks/src/system/node/fragments/backgroundLayer.ts
|
|
15395
|
+
const BACKGROUND_FRAME_BASE_CLASS = "rb-background-frame rb-absolute rb-inset-0 rb-z-neg-10 rb-h-full rb-w-full rb-isolate rb-pointer-events-none";
|
|
14969
15396
|
/**
|
|
14970
15397
|
* Creates background layer nodes for rendering backgrounds from field data.
|
|
14971
15398
|
*
|
|
@@ -15031,6 +15458,34 @@ function backgroundLayer(path, options = {}) {
|
|
|
15031
15458
|
];
|
|
15032
15459
|
}
|
|
15033
15460
|
/**
|
|
15461
|
+
* Wrap decorative background layers in their own clipping frame.
|
|
15462
|
+
*
|
|
15463
|
+
* Foreground content remains outside this frame, so editor outlines, focus
|
|
15464
|
+
* rings, and floating controls are never clipped by a visual background.
|
|
15465
|
+
* Backgrounds that explicitly opt into overflow keep that behavior within
|
|
15466
|
+
* the decorative layer rather than changing the content root.
|
|
15467
|
+
*/
|
|
15468
|
+
function backgroundFrame(path, options = {}) {
|
|
15469
|
+
const { leadingNodes = [], ...layerOptions } = options;
|
|
15470
|
+
const framedLayerOptions = {
|
|
15471
|
+
...layerOptions,
|
|
15472
|
+
styleClassName: layerOptions.styleClassName ?? "background-style rb-absolute rb-inset-0 rb-z-0 rb-h-full rb-w-full rb-pointer-events-none",
|
|
15473
|
+
imageClassName: layerOptions.imageClassName ?? "rb-absolute rb-z-0",
|
|
15474
|
+
overlayClassName: layerOptions.overlayClassName ?? "background-overlay rb-absolute rb-inset-0 rb-z-0 rb-h-full rb-w-full rb-pointer-events-none"
|
|
15475
|
+
};
|
|
15476
|
+
return el("div", {
|
|
15477
|
+
className: { $bind: {
|
|
15478
|
+
from: path,
|
|
15479
|
+
transforms: [{
|
|
15480
|
+
id: "background.resolveFrameClassName",
|
|
15481
|
+
options: { baseClass: BACKGROUND_FRAME_BASE_CLASS }
|
|
15482
|
+
}],
|
|
15483
|
+
fallback: `${BACKGROUND_FRAME_BASE_CLASS} rb-overflow-hidden`
|
|
15484
|
+
} },
|
|
15485
|
+
style: { borderRadius: "inherit" }
|
|
15486
|
+
}, [...leadingNodes, ...backgroundLayer(path, framedLayerOptions)]);
|
|
15487
|
+
}
|
|
15488
|
+
/**
|
|
15034
15489
|
* Creates a media node for rendering background image/video media with conditional rendering.
|
|
15035
15490
|
*
|
|
15036
15491
|
* This helper creates a media element that:
|
|
@@ -15192,8 +15647,8 @@ function sectionContainer(children, opts) {
|
|
|
15192
15647
|
* - content
|
|
15193
15648
|
*/
|
|
15194
15649
|
function styledContainer(config) {
|
|
15195
|
-
const { children, rootType = "div", rootProps, bindFrom = "_containerStyles", baseClassName = "rb-relative rb-isolate rb-overflow-
|
|
15196
|
-
const
|
|
15650
|
+
const { children, rootType = "div", rootProps, bindFrom = "_containerStyles", baseClassName = "rb-relative rb-isolate rb-overflow-visible", imageClassName = "rb-absolute rb-z-0", constrainWidth = true } = config;
|
|
15651
|
+
const backgroundNode = backgroundFrame(`${bindFrom}.background`, { imageClassName });
|
|
15197
15652
|
const childrenArray = Array.isArray(children) ? children : [children];
|
|
15198
15653
|
const { className: _ignoredClassName, style: _ignoredStyle, ...safeRootProps } = rootProps ?? {};
|
|
15199
15654
|
return el(rootType, {
|
|
@@ -15216,7 +15671,7 @@ function styledContainer(config) {
|
|
|
15216
15671
|
}],
|
|
15217
15672
|
fallback: constrainWidth ? `${baseClassName} rb-container` : baseClassName
|
|
15218
15673
|
} }
|
|
15219
|
-
}, [
|
|
15674
|
+
}, [backgroundNode, ...childrenArray]);
|
|
15220
15675
|
}
|
|
15221
15676
|
//#endregion
|
|
15222
15677
|
//#region ../blocks/src/system/spacing.ts
|
|
@@ -15349,7 +15804,7 @@ const DEFAULT_SECTION_SPACING = "medium";
|
|
|
15349
15804
|
* - Creating a section wrapper with background theme
|
|
15350
15805
|
* - Adding background color/gradient/image layers
|
|
15351
15806
|
* - Binding className to section styles with transform
|
|
15352
|
-
* -
|
|
15807
|
+
* - Keeping foreground overflow visible while decorative backgrounds clip independently
|
|
15353
15808
|
* - Wrapping content children
|
|
15354
15809
|
*
|
|
15355
15810
|
* Use this helper to eliminate 25+ lines of boilerplate section setup code.
|
|
@@ -15385,8 +15840,8 @@ const DEFAULT_SECTION_SPACING = "medium";
|
|
|
15385
15840
|
* });
|
|
15386
15841
|
*/
|
|
15387
15842
|
function styledSection(config) {
|
|
15388
|
-
const { children, baseClass = "rb-px-6", spacing = DEFAULT_SECTION_SPACING, background = "background", bindFrom = "_sectionStyles", imageClassName = "rb-absolute rb-z-
|
|
15389
|
-
const
|
|
15843
|
+
const { children, baseClass = "rb-px-6", spacing = DEFAULT_SECTION_SPACING, background = "background", bindFrom = "_sectionStyles", imageClassName = "rb-absolute rb-z-0", renderBackgroundImage = true, backgroundImageLoading, backgroundImageFetchPriority, fullWidthPath } = config;
|
|
15844
|
+
const renderedBackgroundNode = backgroundFrame(`${bindFrom}.background`, {
|
|
15390
15845
|
imageClassName,
|
|
15391
15846
|
fallbackToken: background,
|
|
15392
15847
|
omitImageLayer: !renderBackgroundImage,
|
|
@@ -15409,13 +15864,8 @@ function styledSection(config) {
|
|
|
15409
15864
|
fullWidthPath
|
|
15410
15865
|
}
|
|
15411
15866
|
}]
|
|
15412
|
-
} },
|
|
15413
|
-
allowOverflow: allowOverflow ? true : { $bind: {
|
|
15414
|
-
from: `${bindFrom}.background`,
|
|
15415
|
-
transforms: [{ id: "background.resolveAllowOverflow" }],
|
|
15416
|
-
fallback: false
|
|
15417
15867
|
} }
|
|
15418
|
-
}, [
|
|
15868
|
+
}, [renderedBackgroundNode, ...childrenArray]);
|
|
15419
15869
|
}
|
|
15420
15870
|
//#endregion
|
|
15421
15871
|
//#region ../blocks/src/system/node/fragments/ctaButton.ts
|
|
@@ -16267,9 +16717,12 @@ function responsiveTwoColumn({ image, text, ratioFrom, imagePositionFrom, gapCla
|
|
|
16267
16717
|
//#endregion
|
|
16268
16718
|
//#region ../blocks/src/system/node/fragments/styledCard.ts
|
|
16269
16719
|
function styledCard(children, opts, ...mods) {
|
|
16270
|
-
const baseClassName = opts.baseClassName ?? "rb-relative rb-isolate rb-overflow-
|
|
16271
|
-
const defaultBackgroundLayer = el("div", {
|
|
16272
|
-
|
|
16720
|
+
const baseClassName = opts.baseClassName ?? "rb-relative rb-isolate rb-overflow-visible rb-border";
|
|
16721
|
+
const defaultBackgroundLayer = el("div", {
|
|
16722
|
+
className: "rb-absolute rb-inset-0 rb-z-neg-10 rb-h-full rb-w-full rb-pointer-events-none rb-bg-surface",
|
|
16723
|
+
style: { borderRadius: "inherit" }
|
|
16724
|
+
});
|
|
16725
|
+
const backgroundNode = backgroundFrame(opts.backgroundFrom);
|
|
16273
16726
|
const style = {
|
|
16274
16727
|
...opts.style ?? {},
|
|
16275
16728
|
borderColor: { $bind: {
|
|
@@ -16296,7 +16749,7 @@ function styledCard(children, opts, ...mods) {
|
|
|
16296
16749
|
...style ? { style } : {}
|
|
16297
16750
|
}, [
|
|
16298
16751
|
defaultBackgroundLayer,
|
|
16299
|
-
|
|
16752
|
+
backgroundNode,
|
|
16300
16753
|
...children
|
|
16301
16754
|
], ...mods);
|
|
16302
16755
|
}
|
|
@@ -17076,9 +17529,15 @@ function createButtonGroup(options = {}) {
|
|
|
17076
17529
|
//#endregion
|
|
17077
17530
|
//#region ../blocks/src/system/fields/ctas.ts
|
|
17078
17531
|
function createCtasRepeater(options = {}) {
|
|
17079
|
-
const { id = "ctas", label = "Calls to action", itemLabel = "CTA", minItems = 0, maxItems, button } = options;
|
|
17532
|
+
const { id = "ctas", label = "Calls to action", itemLabel = "CTA", minItems = 0, maxItems, button, defaultValue } = options;
|
|
17533
|
+
const fieldId = id;
|
|
17534
|
+
const buttonField = createButtonGroup({
|
|
17535
|
+
showGroupLabel: false,
|
|
17536
|
+
...button ?? {},
|
|
17537
|
+
flattenInRepeater: true
|
|
17538
|
+
});
|
|
17080
17539
|
return {
|
|
17081
|
-
id,
|
|
17540
|
+
id: fieldId,
|
|
17082
17541
|
type: "repeater",
|
|
17083
17542
|
label,
|
|
17084
17543
|
itemLabel,
|
|
@@ -17087,11 +17546,8 @@ function createCtasRepeater(options = {}) {
|
|
|
17087
17546
|
maxItems,
|
|
17088
17547
|
required: false,
|
|
17089
17548
|
allowConversion: true,
|
|
17090
|
-
|
|
17091
|
-
|
|
17092
|
-
...button ?? {},
|
|
17093
|
-
flattenInRepeater: true
|
|
17094
|
-
})] }
|
|
17549
|
+
...defaultValue !== void 0 ? { defaultValue: [...defaultValue] } : {},
|
|
17550
|
+
schema: { fields: [buttonField] }
|
|
17095
17551
|
};
|
|
17096
17552
|
}
|
|
17097
17553
|
//#endregion
|
|
@@ -17141,6 +17597,7 @@ const heroCtaRowFragment = defineFragment({
|
|
|
17141
17597
|
label: "Calls to action",
|
|
17142
17598
|
itemLabel: "CTA",
|
|
17143
17599
|
maxItems: 3,
|
|
17600
|
+
defaultValue: [],
|
|
17144
17601
|
button: {
|
|
17145
17602
|
variants: [
|
|
17146
17603
|
{
|
|
@@ -17208,7 +17665,7 @@ const ctaCopyFragment = defineFragment({
|
|
|
17208
17665
|
eyebrowPath: "content.eyebrow",
|
|
17209
17666
|
titlePath: "content.title",
|
|
17210
17667
|
className: "cta-heading"
|
|
17211
|
-
}), richText({ className: "cta-content rb-prose rb-mx-auto rb-max-w-none" }, when("content
|
|
17668
|
+
}), richText({ className: "cta-content rb-prose rb-mx-auto rb-max-w-none" }, when("content"), bind("content"))]
|
|
17212
17669
|
});
|
|
17213
17670
|
//#endregion
|
|
17214
17671
|
//#region ../blocks/src/system/fragments/library/testimonialsHeading.ts
|
|
@@ -17305,7 +17762,7 @@ function buildTestimonialCard(...mods) {
|
|
|
17305
17762
|
}, props({ value: "“" })), richText({ className: "rb-prose rb-max-w-none" }, bind("testimonial.content.body"), when("testimonial.content.body"))]), el("div", { className: "rb-testimonial-attribution" }, buildAttributionNodes())])], {
|
|
17306
17763
|
stylesFrom: "content._cardStyles",
|
|
17307
17764
|
backgroundFrom: "content._cardStyles.background",
|
|
17308
|
-
baseClassName: "rb-testimonial-card rb-relative rb-isolate rb-flex rb-h-full rb-flex-col rb-overflow-
|
|
17765
|
+
baseClassName: "rb-testimonial-card rb-relative rb-isolate rb-flex rb-h-full rb-flex-col rb-overflow-visible rb-p-8"
|
|
17309
17766
|
}, ...mods);
|
|
17310
17767
|
}
|
|
17311
17768
|
/**
|
|
@@ -17777,39 +18234,6 @@ const formEmbedFragment = defineFragment({
|
|
|
17777
18234
|
}
|
|
17778
18235
|
});
|
|
17779
18236
|
//#endregion
|
|
17780
|
-
//#region ../blocks/src/system/fragments/library/footerBottomText.ts
|
|
17781
|
-
const footerBottomTextFragment = defineFragment({
|
|
17782
|
-
id: "footerBottomText",
|
|
17783
|
-
title: "Footer Text",
|
|
17784
|
-
description: "Rich text content for the main footer body and optional bottom bar.",
|
|
17785
|
-
fields: [{
|
|
17786
|
-
id: "bodyText",
|
|
17787
|
-
type: "richText",
|
|
17788
|
-
label: "Body text",
|
|
17789
|
-
description: "Appears in the main footer area.",
|
|
17790
|
-
ui: { variant: "limited" }
|
|
17791
|
-
}, {
|
|
17792
|
-
id: "bottomText",
|
|
17793
|
-
type: "richText",
|
|
17794
|
-
label: "Bottom bar text",
|
|
17795
|
-
description: "Appears in the optional footer bottom bar.",
|
|
17796
|
-
ui: { variant: "limited" }
|
|
17797
|
-
}],
|
|
17798
|
-
layout: [richText({
|
|
17799
|
-
className: "rb-prose rb-prose-sm rb-mx-auto rb-max-w-3xl rb-text-center",
|
|
17800
|
-
style: textColorStyle("text/80")
|
|
17801
|
-
}, when("bodyText"), bind("bodyText", { transforms: [{
|
|
17802
|
-
id: "content.interpolateRichTextTokens",
|
|
17803
|
-
options: { tokens: ["year", "site_name"] }
|
|
17804
|
-
}] })), richText({
|
|
17805
|
-
className: "rb-prose rb-prose-sm rb-mx-auto rb-max-w-3xl rb-text-center",
|
|
17806
|
-
style: textColorStyle("text/80")
|
|
17807
|
-
}, when("bottomText"), bind("bottomText", { transforms: [{
|
|
17808
|
-
id: "content.interpolateRichTextTokens",
|
|
17809
|
-
options: { tokens: ["year", "site_name"] }
|
|
17810
|
-
}] }))]
|
|
17811
|
-
});
|
|
17812
|
-
//#endregion
|
|
17813
18237
|
//#region ../blocks/src/system/fragments/library/singleButton.ts
|
|
17814
18238
|
const singleButtonFragment = defineFragment({
|
|
17815
18239
|
id: "singleButton",
|
|
@@ -17982,7 +18406,7 @@ function createFaqAccordionLayout(options = {}) {
|
|
|
17982
18406
|
options: {
|
|
17983
18407
|
axis: "all",
|
|
17984
18408
|
includeSpacing: false,
|
|
17985
|
-
baseClass: "rb-faq-item rb-relative rb-isolate rb-overflow-
|
|
18409
|
+
baseClass: "rb-faq-item rb-relative rb-isolate rb-overflow-visible"
|
|
17986
18410
|
}
|
|
17987
18411
|
}]
|
|
17988
18412
|
},
|
|
@@ -18973,6 +19397,7 @@ function createBlockManifest(config) {
|
|
|
18973
19397
|
previewCustomize: config.previewCustomize,
|
|
18974
19398
|
category: config.category,
|
|
18975
19399
|
contentTypes: config.contentTypes ? [...config.contentTypes] : void 0,
|
|
19400
|
+
contentSource: config.contentSource,
|
|
18976
19401
|
tags: config.tags ? [...config.tags] : [],
|
|
18977
19402
|
icon: config.icon ?? "Box",
|
|
18978
19403
|
layout,
|
|
@@ -19106,7 +19531,6 @@ function splitLayoutWith(children) {
|
|
|
19106
19531
|
}
|
|
19107
19532
|
}),
|
|
19108
19533
|
renderBackgroundImage: false,
|
|
19109
|
-
allowOverflow: true,
|
|
19110
19534
|
baseClass: ""
|
|
19111
19535
|
});
|
|
19112
19536
|
}
|
|
@@ -19119,6 +19543,7 @@ const heroBlockDefinition = { manifest: createBlockManifest({
|
|
|
19119
19543
|
title: "Hero",
|
|
19120
19544
|
titleSource: "headline",
|
|
19121
19545
|
category: "layout",
|
|
19546
|
+
contentSource: { kind: "inline" },
|
|
19122
19547
|
includeContainerStyles: true,
|
|
19123
19548
|
promotedFields: ["_sectionStyles.background.image"],
|
|
19124
19549
|
fragments: [
|
|
@@ -19392,6 +19817,7 @@ const introBlockDefinition = { manifest: createBlockManifest({
|
|
|
19392
19817
|
id: "block.intro",
|
|
19393
19818
|
title: "Intro",
|
|
19394
19819
|
category: "layout",
|
|
19820
|
+
contentSource: { kind: "inline" },
|
|
19395
19821
|
includeContainerStyles: true,
|
|
19396
19822
|
titleSource: "title",
|
|
19397
19823
|
previewCustomize: { quickFieldPriority: [
|
|
@@ -19577,6 +20003,7 @@ const bodyTextBlockDefinition = { manifest: createBlockManifest({
|
|
|
19577
20003
|
title: "Body Text",
|
|
19578
20004
|
titleSource: "heading",
|
|
19579
20005
|
category: "content",
|
|
20006
|
+
contentSource: { kind: "inline" },
|
|
19580
20007
|
fragments: [{
|
|
19581
20008
|
fragment: bodyCopyFragment,
|
|
19582
20009
|
fieldPriority: 0
|
|
@@ -19633,6 +20060,10 @@ const blogPostBlockDefinition = {
|
|
|
19633
20060
|
description: "Highlights a single blog post with title, image, and excerpt.",
|
|
19634
20061
|
category: "blog",
|
|
19635
20062
|
contentTypes: ["post"],
|
|
20063
|
+
contentSource: {
|
|
20064
|
+
kind: "entries",
|
|
20065
|
+
contentType: "post"
|
|
20066
|
+
},
|
|
19636
20067
|
tags: [
|
|
19637
20068
|
"blog",
|
|
19638
20069
|
"post",
|
|
@@ -19734,7 +20165,7 @@ function postCard(children, ...mods) {
|
|
|
19734
20165
|
return styledCard(children, {
|
|
19735
20166
|
stylesFrom: "content._cardStyles",
|
|
19736
20167
|
backgroundFrom: "content._cardStyles.background",
|
|
19737
|
-
baseClassName: "rb-relative rb-isolate rb-overflow-
|
|
20168
|
+
baseClassName: "rb-relative rb-isolate rb-overflow-visible rb-border rb-flex rb-flex-col rb-h-full"
|
|
19738
20169
|
}, ...mods);
|
|
19739
20170
|
}
|
|
19740
20171
|
const gridPostCard = postCard([postImageLink("rb-h-48 rb-w-full rb-object-cover rb-transition-transform rb-hover-scale-105", {
|
|
@@ -19770,7 +20201,7 @@ const stackPostCard = styledCard([inline({
|
|
|
19770
20201
|
])])], {
|
|
19771
20202
|
stylesFrom: "content._cardStyles",
|
|
19772
20203
|
backgroundFrom: "content._cardStyles.background",
|
|
19773
|
-
baseClassName: "rb-relative rb-isolate rb-overflow-
|
|
20204
|
+
baseClassName: "rb-relative rb-isolate rb-overflow-visible rb-border"
|
|
19774
20205
|
}, repeat("data.posts", "post"));
|
|
19775
20206
|
const emptyState$2 = {
|
|
19776
20207
|
...styledCard([text({
|
|
@@ -19779,7 +20210,7 @@ const emptyState$2 = {
|
|
|
19779
20210
|
}, bind("content.emptyMessage", { fallback: "No posts published yet." }))], {
|
|
19780
20211
|
stylesFrom: "content._cardStyles",
|
|
19781
20212
|
backgroundFrom: "content._cardStyles.background",
|
|
19782
|
-
baseClassName: "rb-relative rb-isolate rb-overflow-
|
|
20213
|
+
baseClassName: "rb-relative rb-isolate rb-overflow-visible rb-border rb-border-dashed rb-p-8 rb-text-center"
|
|
19783
20214
|
}),
|
|
19784
20215
|
$when: {
|
|
19785
20216
|
when: { from: "data.posts[0]" },
|
|
@@ -19789,7 +20220,7 @@ const emptyState$2 = {
|
|
|
19789
20220
|
function blogListingShell(children) {
|
|
19790
20221
|
return styledSection({
|
|
19791
20222
|
children: styledContainer({
|
|
19792
|
-
baseClassName: "rb-relative rb-isolate rb-overflow-
|
|
20223
|
+
baseClassName: "rb-relative rb-isolate rb-overflow-visible",
|
|
19793
20224
|
children
|
|
19794
20225
|
}),
|
|
19795
20226
|
baseClass: ""
|
|
@@ -19930,6 +20361,10 @@ const blogListingManifest = createBlockManifest({
|
|
|
19930
20361
|
],
|
|
19931
20362
|
description: "Display a collection of blog posts in grid or stack layout.",
|
|
19932
20363
|
contentTypes: ["post"],
|
|
20364
|
+
contentSource: {
|
|
20365
|
+
kind: "entries",
|
|
20366
|
+
contentType: "post"
|
|
20367
|
+
},
|
|
19933
20368
|
tags: [
|
|
19934
20369
|
"blog",
|
|
19935
20370
|
"posts",
|
|
@@ -19972,6 +20407,7 @@ const ctaFullBlockDefinition = { manifest: createBlockManifest({
|
|
|
19972
20407
|
id: "block.cta-full",
|
|
19973
20408
|
title: "Full-width CTA",
|
|
19974
20409
|
category: "marketing",
|
|
20410
|
+
contentSource: { kind: "inline" },
|
|
19975
20411
|
fragments: [{
|
|
19976
20412
|
fragment: ctaCopyFragment,
|
|
19977
20413
|
fieldPriority: 0
|
|
@@ -20005,6 +20441,7 @@ const singleButtonBlockDefinition = { manifest: createBlockManifest({
|
|
|
20005
20441
|
id: "block.single-button",
|
|
20006
20442
|
title: "Single Button",
|
|
20007
20443
|
category: "marketing",
|
|
20444
|
+
contentSource: { kind: "inline" },
|
|
20008
20445
|
fragments: [{
|
|
20009
20446
|
fragment: singleButtonFragment,
|
|
20010
20447
|
fieldPriority: 0
|
|
@@ -20201,7 +20638,7 @@ const copyLayout = fragmentLayoutNode$1(formCopyFragment.layout);
|
|
|
20201
20638
|
const formSurface = styledContainer({
|
|
20202
20639
|
bindFrom: "_containerStyles",
|
|
20203
20640
|
constrainWidth: false,
|
|
20204
|
-
baseClassName: "rb-form-surface rb-relative rb-isolate rb-overflow-
|
|
20641
|
+
baseClassName: "rb-form-surface rb-relative rb-isolate rb-overflow-visible",
|
|
20205
20642
|
children: fragmentLayoutNode$1(formEmbedFragment.layout)
|
|
20206
20643
|
});
|
|
20207
20644
|
function createFormLayout(variant) {
|
|
@@ -20265,6 +20702,7 @@ const formManifest = createBlockManifest({
|
|
|
20265
20702
|
paletteHidden: false
|
|
20266
20703
|
},
|
|
20267
20704
|
category: "interactive",
|
|
20705
|
+
contentSource: { kind: "inline" },
|
|
20268
20706
|
tags: [
|
|
20269
20707
|
"form",
|
|
20270
20708
|
"contact",
|
|
@@ -20327,6 +20765,7 @@ const contactNewsletterBlockDefinition = {
|
|
|
20327
20765
|
titleSource: "contactTitle",
|
|
20328
20766
|
description: "Two-column newsletter signup and contact form section.",
|
|
20329
20767
|
category: "interactive",
|
|
20768
|
+
contentSource: { kind: "inline" },
|
|
20330
20769
|
layout: contactNewsletterLayout,
|
|
20331
20770
|
defaultVariant: "default",
|
|
20332
20771
|
variants: { default: contactNewsletterLayout },
|
|
@@ -20530,6 +20969,7 @@ const faqBlockDefinition = { manifest: createBlockManifest({
|
|
|
20530
20969
|
title: "FAQ",
|
|
20531
20970
|
titleSource: "title",
|
|
20532
20971
|
category: "content",
|
|
20972
|
+
contentSource: { kind: "inline" },
|
|
20533
20973
|
includeContainerStyles: true,
|
|
20534
20974
|
fragments: [{
|
|
20535
20975
|
fragment: faqHeadingFragment,
|
|
@@ -21418,6 +21858,7 @@ const headerRootClassTransform = {
|
|
|
21418
21858
|
];
|
|
21419
21859
|
const variant = header?.variant;
|
|
21420
21860
|
if (variant && VALID_VARIANTS.includes(variant)) classes.push(`header-variant-${variant}`);
|
|
21861
|
+
if (header?.barFrame === "inset-shell" && variant === "classic") classes.push("header-bar-frame-inset-shell");
|
|
21421
21862
|
return joinClasses(classes);
|
|
21422
21863
|
}
|
|
21423
21864
|
};
|
|
@@ -21931,7 +22372,7 @@ function desktopOnlyDisplay(display) {
|
|
|
21931
22372
|
}
|
|
21932
22373
|
//#endregion
|
|
21933
22374
|
//#region ../blocks/src/system/blocks/site-header.ts
|
|
21934
|
-
const whenTransformed
|
|
22375
|
+
const whenTransformed = (from, transformId, equals = true) => (node) => ({
|
|
21935
22376
|
...node,
|
|
21936
22377
|
$when: {
|
|
21937
22378
|
when: {
|
|
@@ -21959,7 +22400,7 @@ const logoRow = link({
|
|
|
21959
22400
|
text({
|
|
21960
22401
|
as: "strong",
|
|
21961
22402
|
className: "header-logo-text rb-truncate"
|
|
21962
|
-
}, whenTransformed
|
|
22403
|
+
}, whenTransformed("$root.theme.header.logo", "layout.headerLogoTextVisible"), bind("site.title", { fallback: "Your Site" }))
|
|
21963
22404
|
]);
|
|
21964
22405
|
const centeredLogoRow = link({
|
|
21965
22406
|
href: "/",
|
|
@@ -21979,7 +22420,7 @@ const centeredLogoRow = link({
|
|
|
21979
22420
|
text({
|
|
21980
22421
|
as: "strong",
|
|
21981
22422
|
className: "header-logo-text"
|
|
21982
|
-
}, whenTransformed
|
|
22423
|
+
}, whenTransformed("$root.theme.header.logo", "layout.headerLogoTextVisible"), bind("site.title", { fallback: "Your Site" }))
|
|
21983
22424
|
]);
|
|
21984
22425
|
const createNavRow = (className, align = "end") => navRow({
|
|
21985
22426
|
className: `${className} header-nav-row`,
|
|
@@ -22111,7 +22552,7 @@ const classicLayout = inline({
|
|
|
22111
22552
|
logoRow,
|
|
22112
22553
|
createNavRow(`rb-ml-auto ${desktopOnlyDisplay("flex")} rb-gap-6`),
|
|
22113
22554
|
headerCta
|
|
22114
|
-
], whenTransformed
|
|
22555
|
+
], whenTransformed("$root.theme.header", "layout.classicNavMode", "inline"));
|
|
22115
22556
|
const classicCenteredNavLayout = inline({
|
|
22116
22557
|
className: bindProp("$root.theme.header.maxWidth", {
|
|
22117
22558
|
transforms: pipe(tx("layout.maxWidthClass", { base: `rb-header-layout ${desktopOnlyDisplay("flex")} rb-w-full rb-items-center rb-gap-6` })),
|
|
@@ -22122,7 +22563,7 @@ const classicCenteredNavLayout = inline({
|
|
|
22122
22563
|
logoRow,
|
|
22123
22564
|
createNavRow(`rb-flex-1 rb-justify-center ${desktopOnlyDisplay("flex")} rb-gap-6`, "center"),
|
|
22124
22565
|
headerCta
|
|
22125
|
-
], whenTransformed
|
|
22566
|
+
], whenTransformed("$root.theme.header", "layout.classicNavMode", "centered"));
|
|
22126
22567
|
const centeredLayout = stack({
|
|
22127
22568
|
gap: "md",
|
|
22128
22569
|
align: "center",
|
|
@@ -22162,6 +22603,7 @@ const siteHeaderBlockDefinition = { manifest: createBlockManifest({
|
|
|
22162
22603
|
id: "block.site-header",
|
|
22163
22604
|
title: "Site Header",
|
|
22164
22605
|
category: "layout",
|
|
22606
|
+
contentSource: { kind: "inline" },
|
|
22165
22607
|
additionalFields: [{
|
|
22166
22608
|
id: "mode",
|
|
22167
22609
|
type: "select",
|
|
@@ -22185,7 +22627,6 @@ const siteHeaderBlockDefinition = { manifest: createBlockManifest({
|
|
|
22185
22627
|
transforms: pipe(tx("layout.headerSectionBackground")),
|
|
22186
22628
|
fallback: "background"
|
|
22187
22629
|
}),
|
|
22188
|
-
allowOverflow: true,
|
|
22189
22630
|
className: bindProp("$root.theme.header", {
|
|
22190
22631
|
transforms: pipe(tx("layout.headerRootClass")),
|
|
22191
22632
|
fallback: "header-root rb-z-40 rb-w-full transition-theme"
|
|
@@ -22235,218 +22676,155 @@ const footerNavGroupsLayout = stack({
|
|
|
22235
22676
|
linkRequired: true,
|
|
22236
22677
|
target: { $bind: { from: "entry.target" } },
|
|
22237
22678
|
rel: { $bind: { from: "entry.rel" } }
|
|
22238
|
-
}, [text({ as: "span" }, bind("entry.label"))], repeat("group.children", "entry"))])], repeat("footerMenu.groups", "group"))],
|
|
22679
|
+
}, [text({ as: "span" }, bind("entry.label"))], repeat("group.children", "entry"))])], repeat("footerMenu.groups", "group"))], whenCollectionHasItems("footerMenu.groups"));
|
|
22239
22680
|
//#endregion
|
|
22240
22681
|
//#region ../blocks/src/system/blocks/site-footer.ts
|
|
22241
|
-
const
|
|
22242
|
-
|
|
22243
|
-
...node,
|
|
22244
|
-
$when: {
|
|
22245
|
-
when: {
|
|
22246
|
-
from,
|
|
22247
|
-
transforms: [{ id: transformId }]
|
|
22248
|
-
},
|
|
22249
|
-
equals
|
|
22250
|
-
}
|
|
22251
|
-
});
|
|
22252
|
-
const bottomBarTextLayout = () => {
|
|
22253
|
-
const bottomTextNode = footerTextLayout()[1];
|
|
22254
|
-
return bottomTextNode ? [bottomTextNode] : [];
|
|
22255
|
-
};
|
|
22256
|
-
const bodyTextLayout = () => {
|
|
22257
|
-
const bodyTextNode = footerTextLayout()[0];
|
|
22258
|
-
return bodyTextNode ? [bodyTextNode] : [];
|
|
22259
|
-
};
|
|
22260
|
-
const businessAddressLayout = () => [text({
|
|
22261
|
-
as: "p",
|
|
22262
|
-
className: "rb-caption rb-opacity-80"
|
|
22263
|
-
}, bind("site.businessAddress.displayAddress"), when("content.showBusinessAddress", { equals: true }))];
|
|
22264
|
-
const inlineBottomTextLayout = () => {
|
|
22265
|
-
const bottomTextNode = footerTextLayout()[1];
|
|
22266
|
-
if (!bottomTextNode) return [];
|
|
22267
|
-
return [when("$root.theme.footer.bottomBar.enabled", {
|
|
22268
|
-
equals: true,
|
|
22269
|
-
not: true
|
|
22270
|
-
})(bottomTextNode)];
|
|
22271
|
-
};
|
|
22272
|
-
const simpleFooterLayout = stack({
|
|
22273
|
-
gap: "md",
|
|
22274
|
-
align: "start",
|
|
22275
|
-
className: { $bind: {
|
|
22276
|
-
from: "$root.theme.footer",
|
|
22277
|
-
transforms: [{ id: "layout.footerSimpleRootClass" }],
|
|
22278
|
-
fallback: "rb-container rb-flex rb-w-full rb-flex-col rb-items-start rb-gap-4 rb-py-10 rb-text-left"
|
|
22279
|
-
} }
|
|
22280
|
-
}, [
|
|
22281
|
-
link({
|
|
22282
|
-
href: "/",
|
|
22283
|
-
className: { $bind: {
|
|
22284
|
-
from: "$root.theme.footer.logo",
|
|
22285
|
-
transforms: [{
|
|
22286
|
-
id: "layout.footerLogoClass",
|
|
22287
|
-
options: { requireExplicitShow: true }
|
|
22288
|
-
}],
|
|
22289
|
-
fallback: "rb-hidden"
|
|
22290
|
-
} }
|
|
22291
|
-
}, [
|
|
22292
|
-
media({ className: { $bind: {
|
|
22293
|
-
from: "$root.theme.footer.logo",
|
|
22294
|
-
transforms: [{ id: "layout.footerLogoMediaClass" }],
|
|
22295
|
-
fallback: "rb-w-auto"
|
|
22296
|
-
} } }, when("content.logo"), bind("content.logo")),
|
|
22297
|
-
stack({ className: "rb-contents" }, [media({ className: { $bind: {
|
|
22298
|
-
from: "$root.theme.footer.logo",
|
|
22299
|
-
transforms: [{ id: "layout.footerLogoMediaClass" }],
|
|
22300
|
-
fallback: "rb-w-auto"
|
|
22301
|
-
} } }, when("site.logo"), bind("site.logo"))], when("content.logo", { not: true })),
|
|
22302
|
-
text({
|
|
22303
|
-
as: "strong",
|
|
22304
|
-
className: "footer-logo-text rb-nav-text"
|
|
22305
|
-
}, whenTransformed("$root.theme.footer", "layout.footerLogoTextVisible"), bind("site.title", { fallback: "Your Site" }))
|
|
22306
|
-
]),
|
|
22307
|
-
footerNav({
|
|
22308
|
-
collectionPath: "footerMenu.items",
|
|
22309
|
-
mode: "flatten",
|
|
22310
|
-
className: { $bind: {
|
|
22311
|
-
from: "$root.theme.footer.navLayout",
|
|
22312
|
-
transforms: [{ id: "layout.footerSimpleNavClass" }],
|
|
22313
|
-
fallback: "footer-nav rb-flex rb-flex-wrap rb-justify-start rb-gap-x-6 rb-gap-y-3"
|
|
22314
|
-
} },
|
|
22315
|
-
linkClassName: "footer-nav-link rb-inline-flex rb-items-center rb-px-4 rb-py-2 rb-nav-text transition-theme-standard"
|
|
22316
|
-
}),
|
|
22317
|
-
...bodyTextLayout(),
|
|
22318
|
-
...businessAddressLayout(),
|
|
22319
|
-
...inlineBottomTextLayout()
|
|
22320
|
-
], when("$root.theme.footer.variant", { equals: "simple" }));
|
|
22321
|
-
const columnsFooterLayout = stack({
|
|
22322
|
-
gap: "xl",
|
|
22323
|
-
align: "start",
|
|
22682
|
+
const brandLogo = link({
|
|
22683
|
+
href: "/",
|
|
22324
22684
|
className: { $bind: {
|
|
22325
|
-
from: "$root.theme.footer.
|
|
22685
|
+
from: "$root.theme.footer.logo",
|
|
22326
22686
|
transforms: [{
|
|
22327
|
-
id: "layout.
|
|
22328
|
-
options: { base: "
|
|
22687
|
+
id: "layout.footerLogoClass",
|
|
22688
|
+
options: { base: "footer-logo rb-inline-flex rb-items-center rb-gap-3 rb-no-underline" }
|
|
22329
22689
|
}],
|
|
22330
|
-
fallback: "
|
|
22690
|
+
fallback: "footer-logo rb-inline-flex rb-items-center rb-gap-3 rb-no-underline"
|
|
22331
22691
|
} }
|
|
22332
|
-
}, [
|
|
22333
|
-
|
|
22334
|
-
|
|
22335
|
-
|
|
22336
|
-
|
|
22337
|
-
|
|
22338
|
-
|
|
22339
|
-
|
|
22340
|
-
|
|
22341
|
-
|
|
22342
|
-
|
|
22343
|
-
|
|
22344
|
-
|
|
22345
|
-
|
|
22346
|
-
|
|
22347
|
-
|
|
22348
|
-
|
|
22349
|
-
gap: "xl",
|
|
22350
|
-
align: "start",
|
|
22692
|
+
}, [media({ className: { $bind: {
|
|
22693
|
+
from: "$root.theme.footer.logo",
|
|
22694
|
+
transforms: [{
|
|
22695
|
+
id: "layout.footerLogoMediaClass",
|
|
22696
|
+
options: { base: "rb-h-10 rb-w-auto" }
|
|
22697
|
+
}],
|
|
22698
|
+
fallback: "rb-h-10 rb-w-auto"
|
|
22699
|
+
} } }, when("module.showLogo", { equals: true }), when("content.logo"), bind("content.logo")), text({
|
|
22700
|
+
as: "strong",
|
|
22701
|
+
className: "footer-logo-text rb-nav-text"
|
|
22702
|
+
}, when("module.showTitle", { equals: true }), bind("site.title", { fallback: "Your Site" }))], when("module.kind", { equals: "brand" }));
|
|
22703
|
+
const navigation = stack({
|
|
22704
|
+
gap: "md",
|
|
22705
|
+
className: "rb-w-full"
|
|
22706
|
+
}, [footerNavGroupsLayout, footerNav({
|
|
22707
|
+
collectionPath: "footerMenu.items",
|
|
22708
|
+
mode: "links-only",
|
|
22351
22709
|
className: { $bind: {
|
|
22352
|
-
from: "
|
|
22353
|
-
|
|
22354
|
-
|
|
22355
|
-
|
|
22356
|
-
|
|
22357
|
-
|
|
22358
|
-
|
|
22710
|
+
from: "module.navigationClassName",
|
|
22711
|
+
fallback: "footer-nav rb-flex rb-flex-wrap rb-gap-x-6 rb-gap-y-3"
|
|
22712
|
+
} },
|
|
22713
|
+
linkClassName: "footer-nav-link rb-nav-text transition-theme-standard"
|
|
22714
|
+
})], when("module.kind", { equals: "navigation" }));
|
|
22715
|
+
const legalNavigation = footerNav({
|
|
22716
|
+
collectionPath: "legalFooterMenu.items",
|
|
22717
|
+
mode: "links-only",
|
|
22718
|
+
className: "rb-flex rb-flex-wrap rb-gap-x-4 rb-gap-y-2",
|
|
22719
|
+
linkClassName: "footer-nav-link rb-caption transition-theme-standard"
|
|
22720
|
+
});
|
|
22721
|
+
const address = text({
|
|
22722
|
+
as: "address",
|
|
22723
|
+
className: "rb-not-italic rb-opacity-80"
|
|
22724
|
+
}, when("module.kind", { equals: "business-address" }), bind("module.address"));
|
|
22725
|
+
const contact = stack({
|
|
22726
|
+
gap: "sm",
|
|
22727
|
+
className: "rb-items-start"
|
|
22728
|
+
}, [link({
|
|
22729
|
+
href: { $bind: { from: "contactLink.href" } },
|
|
22730
|
+
className: "rb-nav-text rb-break-words transition-theme-standard"
|
|
22731
|
+
}, [text({ as: "span" }, bind("contactLink.label"))], repeat("module.contactLinks", "contactLink"))], when("module.kind", { equals: "contact" }));
|
|
22732
|
+
const hours = stack({
|
|
22733
|
+
gap: "sm",
|
|
22734
|
+
className: "rb-w-full"
|
|
22735
|
+
}, [inline({ className: "rb-flex rb-w-full rb-justify-between rb-gap-4" }, [text({
|
|
22736
|
+
as: "span",
|
|
22737
|
+
className: "rb-label"
|
|
22738
|
+
}, bind("hoursDay.weekday")), text({
|
|
22739
|
+
as: "span",
|
|
22740
|
+
className: "rb-caption rb-opacity-80"
|
|
22741
|
+
}, bind("hoursDay.hours"))], repeat("module.openingHours", "hoursDay")), text({
|
|
22742
|
+
as: "p",
|
|
22743
|
+
className: "rb-caption rb-opacity-70"
|
|
22744
|
+
}, bind("module.timeZone"), when("module.timeZone"))], when("module.kind", { equals: "opening-hours" }));
|
|
22745
|
+
const socials = inline({ className: "rb-flex rb-flex-wrap rb-gap-x-5 rb-gap-y-3" }, [link({
|
|
22746
|
+
href: { $bind: { from: "social.href" } },
|
|
22747
|
+
target: "_blank",
|
|
22748
|
+
rel: "noreferrer noopener",
|
|
22749
|
+
"aria-label": { $bind: { from: "social.label" } },
|
|
22750
|
+
className: "rb-nav-text transition-theme-standard"
|
|
22751
|
+
}, [icon({ className: "rb-h-5 rb-w-5" }, bind("social.icon"), when("social.icon")), text({ as: "span" }, bind("social.label"), when("social.icon", { equals: null }))], repeat("module.socialLinks", "social"))], when("module.kind", { equals: "social-links" }));
|
|
22752
|
+
const authoredCopy = richText({
|
|
22753
|
+
className: "rb-prose rb-prose-sm rb-max-w-none",
|
|
22754
|
+
style: textColorStyle("text/80")
|
|
22755
|
+
}, when("module.content"), bind("module.content", { transforms: [{
|
|
22756
|
+
id: "content.interpolateRichTextTokens",
|
|
22757
|
+
options: { tokens: ["year", "site_name"] }
|
|
22758
|
+
}] }));
|
|
22759
|
+
const footerGroup = stack({
|
|
22760
|
+
gap: "md",
|
|
22761
|
+
align: "stretch",
|
|
22762
|
+
className: "rb-min-w-0",
|
|
22763
|
+
"data-footer-group": { $bind: { from: "group.kind" } }
|
|
22764
|
+
}, [stack({
|
|
22765
|
+
gap: "md",
|
|
22766
|
+
align: "start",
|
|
22767
|
+
"data-preview-footer-module-id": { $bind: { from: "module.id" } }
|
|
22359
22768
|
}, [
|
|
22360
|
-
|
|
22361
|
-
|
|
22362
|
-
|
|
22363
|
-
|
|
22364
|
-
}
|
|
22365
|
-
|
|
22366
|
-
|
|
22367
|
-
|
|
22368
|
-
|
|
22369
|
-
|
|
22370
|
-
|
|
22371
|
-
|
|
22372
|
-
|
|
22373
|
-
|
|
22374
|
-
|
|
22375
|
-
|
|
22376
|
-
|
|
22377
|
-
|
|
22378
|
-
|
|
22379
|
-
|
|
22380
|
-
}
|
|
22381
|
-
|
|
22382
|
-
|
|
22383
|
-
|
|
22384
|
-
|
|
22385
|
-
|
|
22386
|
-
|
|
22387
|
-
from: "$root.theme.footer.logo",
|
|
22388
|
-
transforms: [{ id: "layout.footerLogoMediaClass" }],
|
|
22389
|
-
fallback: "rb-w-auto"
|
|
22390
|
-
} } }, when("site.logo"), bind("site.logo"))], when("content.logo", { not: true })),
|
|
22391
|
-
text({
|
|
22392
|
-
as: "strong",
|
|
22393
|
-
className: "footer-logo-text rb-nav-text"
|
|
22394
|
-
}, whenTransformed("$root.theme.footer", "layout.footerLogoTextVisible"), bind("site.title", { fallback: "Your Site" }))
|
|
22395
|
-
])]),
|
|
22396
|
-
...businessAddressLayout(),
|
|
22397
|
-
...inlineBottomTextLayout()
|
|
22398
|
-
], when("$root.theme.footer.variant", { equals: "split" }));
|
|
22399
|
-
const footerLayout = section({
|
|
22400
|
-
background: "background",
|
|
22769
|
+
text({
|
|
22770
|
+
as: "h2",
|
|
22771
|
+
className: "rb-label",
|
|
22772
|
+
style: textColorStyle("text/70")
|
|
22773
|
+
}, bind("module.heading"), when("module.heading")),
|
|
22774
|
+
brandLogo,
|
|
22775
|
+
navigation,
|
|
22776
|
+
stack({
|
|
22777
|
+
gap: "sm",
|
|
22778
|
+
className: "rb-w-full"
|
|
22779
|
+
}, [legalNavigation], when("module.kind", { equals: "legal-navigation" })),
|
|
22780
|
+
address,
|
|
22781
|
+
contact,
|
|
22782
|
+
hours,
|
|
22783
|
+
socials,
|
|
22784
|
+
stack({ className: "rb-w-full" }, [authoredCopy], when("module.kind", { equals: "supporting-text" })),
|
|
22785
|
+
stack({ className: "rb-w-full rb-lg-col-span-3" }, [authoredCopy], when("module.kind", { equals: "legal" }))
|
|
22786
|
+
], repeat("group.modules", "module"))], repeat("region.groups", "group"));
|
|
22787
|
+
const footerMainRegion = stack({
|
|
22788
|
+
className: { $bind: { from: "region.className" } },
|
|
22789
|
+
"data-footer-region": { $bind: { from: "region.kind" } }
|
|
22790
|
+
}, [footerGroup], when("region.kind", { equals: "main" }), repeat("content.footerRuntime.regions", "region"));
|
|
22791
|
+
const footerBottomRegion = stack({ className: { $bind: {
|
|
22792
|
+
from: "$root.theme.footer",
|
|
22793
|
+
transforms: [{ id: "layout.footerBottomBarContainerClass" }],
|
|
22794
|
+
fallback: "rb-w-full"
|
|
22795
|
+
} } }, [stack({
|
|
22401
22796
|
className: { $bind: {
|
|
22402
22797
|
from: "$root.theme.footer",
|
|
22403
|
-
transforms: [{ id: "layout.
|
|
22404
|
-
fallback: "rb-w-full rb-border-t
|
|
22798
|
+
transforms: [{ id: "layout.footerBottomBarClass" }],
|
|
22799
|
+
fallback: "rb-w-full rb-border-t rb-px-6 rb-py-6 rb-text-center"
|
|
22405
22800
|
} },
|
|
22406
22801
|
style: { $bind: {
|
|
22407
22802
|
from: "$root.theme.footer",
|
|
22408
|
-
transforms: [{ id: "layout.
|
|
22409
|
-
|
|
22410
|
-
|
|
22411
|
-
}, [
|
|
22412
|
-
simpleFooterLayout,
|
|
22413
|
-
columnsFooterLayout,
|
|
22414
|
-
splitFooterLayout,
|
|
22415
|
-
stack({
|
|
22416
|
-
className: { $bind: {
|
|
22417
|
-
from: "$root.theme.footer",
|
|
22418
|
-
transforms: [{ id: "layout.footerBottomBarClass" }],
|
|
22419
|
-
fallback: "rb-w-full rb-border-t rb-py-5"
|
|
22420
|
-
} },
|
|
22421
|
-
style: { $bind: {
|
|
22422
|
-
from: "$root.theme.footer",
|
|
22423
|
-
transforms: [{ id: "layout.footerBottomBarStyle" }]
|
|
22424
|
-
} }
|
|
22425
|
-
}, [stack({ className: { $bind: {
|
|
22426
|
-
from: "$root.theme.footer",
|
|
22427
|
-
transforms: [{ id: "layout.footerBottomBarContainerClass" }],
|
|
22428
|
-
fallback: "rb-container"
|
|
22429
|
-
} } }, [...bottomBarTextLayout()])], when("$root.theme.footer.bottomBar.enabled", { equals: true }))
|
|
22430
|
-
]);
|
|
22803
|
+
transforms: [{ id: "layout.footerBottomBarStyle" }]
|
|
22804
|
+
} },
|
|
22805
|
+
"data-footer-region": "bottom"
|
|
22806
|
+
}, [footerGroup])], when("region.kind", { equals: "bottom" }), repeat("content.footerRuntime.regions", "region"));
|
|
22431
22807
|
const siteFooterBlockDefinition = { manifest: createBlockManifest({
|
|
22432
22808
|
id: "block.site-footer",
|
|
22433
22809
|
title: "Site Footer",
|
|
22434
22810
|
category: "layout",
|
|
22435
|
-
|
|
22436
|
-
fragment: footerBottomTextFragment,
|
|
22437
|
-
fieldPriority: 0
|
|
22438
|
-
}],
|
|
22811
|
+
contentSource: { kind: "inline" },
|
|
22439
22812
|
skipSectionStyles: true,
|
|
22440
|
-
|
|
22441
|
-
|
|
22442
|
-
|
|
22443
|
-
|
|
22444
|
-
|
|
22445
|
-
|
|
22446
|
-
|
|
22447
|
-
|
|
22448
|
-
|
|
22449
|
-
|
|
22813
|
+
layout: section({
|
|
22814
|
+
background: "background",
|
|
22815
|
+
className: { $bind: {
|
|
22816
|
+
from: "$root.theme.footer",
|
|
22817
|
+
transforms: [{ id: "layout.footerRootClass" }],
|
|
22818
|
+
fallback: "rb-w-full rb-border-t transition-theme"
|
|
22819
|
+
} },
|
|
22820
|
+
style: { $bind: {
|
|
22821
|
+
from: "$root.theme.footer",
|
|
22822
|
+
transforms: [{ id: "layout.footerRootStyle" }],
|
|
22823
|
+
fallback: mergeStyles(backgroundColorStyle("surface"), surfaceForegroundStyle({ text: "rgb(var(--tb-text))" }), borderColorStyle("border"))
|
|
22824
|
+
} },
|
|
22825
|
+
"data-footer-membership": { $bind: { from: "content.footerRuntime.membershipKey" } }
|
|
22826
|
+
}, [footerMainRegion, footerBottomRegion]),
|
|
22827
|
+
description: "Site-wide composed footer with canonical shared details.",
|
|
22450
22828
|
styleTokens: { spacing: "md" },
|
|
22451
22829
|
paletteHidden: true
|
|
22452
22830
|
}) };
|
|
@@ -22580,6 +22958,7 @@ const testimonialsBlockDefinition = {
|
|
|
22580
22958
|
id: "block.testimonials",
|
|
22581
22959
|
title: "Testimonials",
|
|
22582
22960
|
category: "marketing",
|
|
22961
|
+
contentSource: { kind: "inline" },
|
|
22583
22962
|
includeContainerStyles: true,
|
|
22584
22963
|
previewCustomize: { quickFieldPriority: [
|
|
22585
22964
|
"avatarLayout",
|
|
@@ -22738,6 +23117,7 @@ const columnsBlockDefinition = { manifest: createBlockManifest({
|
|
|
22738
23117
|
id: "block.columns",
|
|
22739
23118
|
title: "Columns",
|
|
22740
23119
|
category: "layout",
|
|
23120
|
+
contentSource: { kind: "inline" },
|
|
22741
23121
|
additionalFields: [
|
|
22742
23122
|
parseFieldDefinition({
|
|
22743
23123
|
id: "equalHeight",
|
|
@@ -22924,7 +23304,7 @@ const repeatedItemsNode = repeaterFragmentLayout({
|
|
|
22924
23304
|
id: "boxStyles.all",
|
|
22925
23305
|
options: {
|
|
22926
23306
|
axis: "all",
|
|
22927
|
-
baseClass: "rb-collection-item rb-relative rb-isolate rb-overflow-
|
|
23307
|
+
baseClass: "rb-collection-item rb-relative rb-isolate rb-overflow-visible rb-border"
|
|
22928
23308
|
}
|
|
22929
23309
|
}]
|
|
22930
23310
|
},
|
|
@@ -22971,6 +23351,7 @@ const collectionBlockDefinition = { manifest: createBlockManifest({
|
|
|
22971
23351
|
id: "block.collection",
|
|
22972
23352
|
title: "Collection",
|
|
22973
23353
|
category: "layout",
|
|
23354
|
+
contentSource: { kind: "inline" },
|
|
22974
23355
|
additionalFields: [
|
|
22975
23356
|
parseFieldDefinition({
|
|
22976
23357
|
id: "layout",
|
|
@@ -23207,6 +23588,7 @@ const featureCardsBlockDefinition = { manifest: createBlockManifest({
|
|
|
23207
23588
|
id: "block.feature-cards",
|
|
23208
23589
|
title: "Feature Cards",
|
|
23209
23590
|
category: "layout",
|
|
23591
|
+
contentSource: { kind: "inline" },
|
|
23210
23592
|
includeContainerStyles: true,
|
|
23211
23593
|
titleSource: "title",
|
|
23212
23594
|
additionalFields: [
|
|
@@ -23590,6 +23972,7 @@ const mediaTextBlockDefinition = { manifest: createBlockManifest({
|
|
|
23590
23972
|
id: "block.media-text",
|
|
23591
23973
|
title: "Media and Text",
|
|
23592
23974
|
category: "layout",
|
|
23975
|
+
contentSource: { kind: "inline" },
|
|
23593
23976
|
includeContainerStyles: true,
|
|
23594
23977
|
titleSource: "title",
|
|
23595
23978
|
previewCustomize: { quickFieldPriority: [
|
|
@@ -23990,6 +24373,7 @@ const appointmentBookingBlockDefinition = {
|
|
|
23990
24373
|
paletteHidden: false
|
|
23991
24374
|
},
|
|
23992
24375
|
category: "interactive",
|
|
24376
|
+
contentSource: { kind: "inline" },
|
|
23993
24377
|
tags: [
|
|
23994
24378
|
"booking",
|
|
23995
24379
|
"appointment",
|
|
@@ -24154,6 +24538,7 @@ const weeklySlotAvailabilityManifest = createBlockManifest({
|
|
|
24154
24538
|
paletteHidden: false
|
|
24155
24539
|
},
|
|
24156
24540
|
category: "interactive",
|
|
24541
|
+
contentSource: { kind: "inline" },
|
|
24157
24542
|
tags: [
|
|
24158
24543
|
"booking",
|
|
24159
24544
|
"appointment",
|
|
@@ -25718,6 +26103,7 @@ const eventRegistrationBlockDefinition = {
|
|
|
25718
26103
|
titleSource: "heading",
|
|
25719
26104
|
description: "Multi-step event registration form",
|
|
25720
26105
|
category: "interactive",
|
|
26106
|
+
contentSource: { kind: "inline" },
|
|
25721
26107
|
tags: [
|
|
25722
26108
|
"events",
|
|
25723
26109
|
"registration",
|
|
@@ -25824,15 +26210,9 @@ const eventRegistrationBlockDefinition = {
|
|
|
25824
26210
|
defaultValue: "Complete Registration",
|
|
25825
26211
|
maxLength: 40
|
|
25826
26212
|
},
|
|
25827
|
-
{
|
|
25828
|
-
id: "buttonVariant",
|
|
25829
|
-
type: "select",
|
|
25830
|
-
label: "Button style",
|
|
26213
|
+
createButtonVariantField({
|
|
25831
26214
|
description: "Choose a button style from your theme",
|
|
25832
|
-
|
|
25833
|
-
multiple: false,
|
|
25834
|
-
defaultValue: "primary",
|
|
25835
|
-
options: [
|
|
26215
|
+
variants: [
|
|
25836
26216
|
{
|
|
25837
26217
|
value: "primary",
|
|
25838
26218
|
label: "Primary"
|
|
@@ -25845,9 +26225,8 @@ const eventRegistrationBlockDefinition = {
|
|
|
25845
26225
|
value: "outline",
|
|
25846
26226
|
label: "Outline"
|
|
25847
26227
|
}
|
|
25848
|
-
]
|
|
25849
|
-
|
|
25850
|
-
}
|
|
26228
|
+
]
|
|
26229
|
+
})
|
|
25851
26230
|
],
|
|
25852
26231
|
layout: [styledSection({
|
|
25853
26232
|
baseClass: "",
|
|
@@ -26040,6 +26419,7 @@ const courseRegistrationBlockDefinition = {
|
|
|
26040
26419
|
titleSource: "heading",
|
|
26041
26420
|
description: "Enrollment form for multi-session courses",
|
|
26042
26421
|
category: "interactive",
|
|
26422
|
+
contentSource: { kind: "inline" },
|
|
26043
26423
|
tags: [
|
|
26044
26424
|
"courses",
|
|
26045
26425
|
"enrollment",
|
|
@@ -26153,15 +26533,9 @@ const courseRegistrationBlockDefinition = {
|
|
|
26153
26533
|
defaultValue: "Sign up",
|
|
26154
26534
|
maxLength: 40
|
|
26155
26535
|
},
|
|
26156
|
-
{
|
|
26157
|
-
id: "buttonVariant",
|
|
26158
|
-
type: "select",
|
|
26159
|
-
label: "Button style",
|
|
26536
|
+
createButtonVariantField({
|
|
26160
26537
|
description: "Choose a button style from your theme",
|
|
26161
|
-
|
|
26162
|
-
multiple: false,
|
|
26163
|
-
defaultValue: "primary",
|
|
26164
|
-
options: [
|
|
26538
|
+
variants: [
|
|
26165
26539
|
{
|
|
26166
26540
|
value: "primary",
|
|
26167
26541
|
label: "Primary"
|
|
@@ -26174,9 +26548,8 @@ const courseRegistrationBlockDefinition = {
|
|
|
26174
26548
|
value: "outline",
|
|
26175
26549
|
label: "Outline"
|
|
26176
26550
|
}
|
|
26177
|
-
]
|
|
26178
|
-
|
|
26179
|
-
}
|
|
26551
|
+
]
|
|
26552
|
+
})
|
|
26180
26553
|
],
|
|
26181
26554
|
layout: [styledSection({
|
|
26182
26555
|
baseClass: "",
|
|
@@ -26256,6 +26629,7 @@ const eventDetailsManifest = createBlockManifest({
|
|
|
26256
26629
|
titleSource: "heading",
|
|
26257
26630
|
description: "Date/time, venue, map, and other dates for an event",
|
|
26258
26631
|
category: "content",
|
|
26632
|
+
contentSource: { kind: "entries" },
|
|
26259
26633
|
tags: [
|
|
26260
26634
|
"events",
|
|
26261
26635
|
"venue",
|
|
@@ -26461,6 +26835,7 @@ const courseDetailsBlockDefinition = {
|
|
|
26461
26835
|
titleSource: "heading",
|
|
26462
26836
|
description: "Schedule, venue, price, and enrollment status for a course",
|
|
26463
26837
|
category: "content",
|
|
26838
|
+
contentSource: { kind: "entries" },
|
|
26464
26839
|
tags: [
|
|
26465
26840
|
"courses",
|
|
26466
26841
|
"schedule",
|
|
@@ -26752,6 +27127,7 @@ const eventSpotlightBlockDefinition = {
|
|
|
26752
27127
|
paletteHidden: false
|
|
26753
27128
|
},
|
|
26754
27129
|
category: "content",
|
|
27130
|
+
contentSource: { kind: "entries" },
|
|
26755
27131
|
tags: [
|
|
26756
27132
|
"events",
|
|
26757
27133
|
"featured",
|
|
@@ -27298,6 +27674,7 @@ const eventListingBlockDefinition = {
|
|
|
27298
27674
|
paletteHidden: true
|
|
27299
27675
|
},
|
|
27300
27676
|
category: "interactive",
|
|
27677
|
+
contentSource: { kind: "entries" },
|
|
27301
27678
|
tags: [
|
|
27302
27679
|
"events",
|
|
27303
27680
|
"listing",
|
|
@@ -28470,6 +28847,7 @@ const eventCalendarBlockDefinition = {
|
|
|
28470
28847
|
paletteHidden: false
|
|
28471
28848
|
},
|
|
28472
28849
|
category: "interactive",
|
|
28850
|
+
contentSource: { kind: "entries" },
|
|
28473
28851
|
tags: [
|
|
28474
28852
|
"events",
|
|
28475
28853
|
"calendar",
|
|
@@ -28643,6 +29021,7 @@ const recurringScheduleBlockDefinition = {
|
|
|
28643
29021
|
titleSource: "heading",
|
|
28644
29022
|
description: "A compact weekly schedule with one row per recurring series.",
|
|
28645
29023
|
category: "interactive",
|
|
29024
|
+
contentSource: { kind: "entries" },
|
|
28646
29025
|
icon: "CalendarDays",
|
|
28647
29026
|
tags: [
|
|
28648
29027
|
"schedule",
|
|
@@ -29060,7 +29439,10 @@ const offeringsPreviewFields = [
|
|
|
29060
29439
|
label: "Link"
|
|
29061
29440
|
}
|
|
29062
29441
|
],
|
|
29063
|
-
ui: {
|
|
29442
|
+
ui: {
|
|
29443
|
+
intent: "display",
|
|
29444
|
+
widget: "buttonVariant"
|
|
29445
|
+
}
|
|
29064
29446
|
},
|
|
29065
29447
|
{
|
|
29066
29448
|
id: "buttonText",
|
|
@@ -29113,6 +29495,7 @@ const offeringsPreviewManifest = createBlockManifest({
|
|
|
29113
29495
|
paletteHidden: false
|
|
29114
29496
|
},
|
|
29115
29497
|
category: "content",
|
|
29498
|
+
contentSource: { kind: "mixed" },
|
|
29116
29499
|
tags: [
|
|
29117
29500
|
"offerings",
|
|
29118
29501
|
"events",
|
|
@@ -29281,6 +29664,7 @@ const embedManifest = createBlockManifest({
|
|
|
29281
29664
|
id: "block.embed",
|
|
29282
29665
|
title: "Embed Content",
|
|
29283
29666
|
category: "content",
|
|
29667
|
+
contentSource: { kind: "entries" },
|
|
29284
29668
|
titleSource: "heading",
|
|
29285
29669
|
additionalFields: [
|
|
29286
29670
|
parseFieldDefinition({
|
|
@@ -29768,6 +30152,7 @@ const imageGalleryBlockDefinition = { manifest: createBlockManifest({
|
|
|
29768
30152
|
id: "block.image-gallery",
|
|
29769
30153
|
title: "Image Gallery",
|
|
29770
30154
|
category: "content",
|
|
30155
|
+
contentSource: { kind: "inline" },
|
|
29771
30156
|
previewCustomize: { quickFieldPriority: [
|
|
29772
30157
|
"aspectRatio",
|
|
29773
30158
|
"slidesToShow",
|
|
@@ -30420,6 +30805,7 @@ const videoGridBlockDefinition = { manifest: createBlockManifest({
|
|
|
30420
30805
|
id: "block.video-grid",
|
|
30421
30806
|
title: "Video Grid",
|
|
30422
30807
|
category: "media",
|
|
30808
|
+
contentSource: { kind: "inline" },
|
|
30423
30809
|
skipSectionStyles: true,
|
|
30424
30810
|
additionalFields: parseFieldDefinitions([
|
|
30425
30811
|
{
|
|
@@ -30590,6 +30976,7 @@ const audioPlayerBlockDefinition = { manifest: createBlockManifest({
|
|
|
30590
30976
|
title: "Audio Player",
|
|
30591
30977
|
titleSource: "title",
|
|
30592
30978
|
category: "media",
|
|
30979
|
+
contentSource: { kind: "inline" },
|
|
30593
30980
|
description: "Add a branded audio player for a single track.",
|
|
30594
30981
|
tags: [
|
|
30595
30982
|
"audio",
|
|
@@ -30701,6 +31088,7 @@ const fileDownloadBlockDefinition = { manifest: createBlockManifest({
|
|
|
30701
31088
|
title: "File Download",
|
|
30702
31089
|
titleSource: ["title", "file.filename"],
|
|
30703
31090
|
category: "media",
|
|
31091
|
+
contentSource: { kind: "inline" },
|
|
30704
31092
|
description: "Add a simple public download link for a document, ZIP, or audio file.",
|
|
30705
31093
|
tags: [
|
|
30706
31094
|
"file",
|
|
@@ -31645,6 +32033,7 @@ const shopBlockDefinition = {
|
|
|
31645
32033
|
paletteHidden: false
|
|
31646
32034
|
},
|
|
31647
32035
|
category: "interactive",
|
|
32036
|
+
contentSource: { kind: "entries" },
|
|
31648
32037
|
tags: [
|
|
31649
32038
|
"shop",
|
|
31650
32039
|
"passes",
|
|
@@ -31844,6 +32233,7 @@ const productListBlockDefinition = {
|
|
|
31844
32233
|
paletteHidden: false
|
|
31845
32234
|
},
|
|
31846
32235
|
category: "interactive",
|
|
32236
|
+
contentSource: { kind: "entries" },
|
|
31847
32237
|
tags: [
|
|
31848
32238
|
"shop",
|
|
31849
32239
|
"products",
|
|
@@ -31985,6 +32375,7 @@ const productDetailBlockDefinition = {
|
|
|
31985
32375
|
paletteHidden: false
|
|
31986
32376
|
},
|
|
31987
32377
|
category: "interactive",
|
|
32378
|
+
contentSource: { kind: "entries" },
|
|
31988
32379
|
tags: [
|
|
31989
32380
|
"shop",
|
|
31990
32381
|
"product",
|
|
@@ -32101,6 +32492,7 @@ const cartBlockDefinition = {
|
|
|
32101
32492
|
paletteHidden: false
|
|
32102
32493
|
},
|
|
32103
32494
|
category: "interactive",
|
|
32495
|
+
contentSource: { kind: "inline" },
|
|
32104
32496
|
tags: [
|
|
32105
32497
|
"shop",
|
|
32106
32498
|
"cart",
|
|
@@ -32183,6 +32575,7 @@ const checkoutBlockDefinition = {
|
|
|
32183
32575
|
paletteHidden: false
|
|
32184
32576
|
},
|
|
32185
32577
|
category: "interactive",
|
|
32578
|
+
contentSource: { kind: "inline" },
|
|
32186
32579
|
tags: [
|
|
32187
32580
|
"shop",
|
|
32188
32581
|
"checkout",
|
|
@@ -32386,6 +32779,7 @@ const giftingBlockDefinition = {
|
|
|
32386
32779
|
paletteHidden: false
|
|
32387
32780
|
},
|
|
32388
32781
|
category: "interactive",
|
|
32782
|
+
contentSource: { kind: "entries" },
|
|
32389
32783
|
tags: [
|
|
32390
32784
|
"gifting",
|
|
32391
32785
|
"gift cards",
|
|
@@ -32729,6 +33123,7 @@ const newsletterSignupBlockDefinition = {
|
|
|
32729
33123
|
titleSource: "title",
|
|
32730
33124
|
description: "Newsletter subscription form with configurable field presets.",
|
|
32731
33125
|
category: "interactive",
|
|
33126
|
+
contentSource: { kind: "inline" },
|
|
32732
33127
|
fragments: [{
|
|
32733
33128
|
fragment: newsletterCopyFragment,
|
|
32734
33129
|
fieldPriority: 0
|
|
@@ -32910,6 +33305,7 @@ const teamMembersBlockDefinition = {
|
|
|
32910
33305
|
id: "block.team-members",
|
|
32911
33306
|
title: "Team Members",
|
|
32912
33307
|
category: "content",
|
|
33308
|
+
contentSource: { kind: "mixed" },
|
|
32913
33309
|
titleSource: "heading",
|
|
32914
33310
|
additionalFields: [
|
|
32915
33311
|
parseFieldDefinition({
|
|
@@ -33330,6 +33726,7 @@ const locationMapBlockDefinition = {
|
|
|
33330
33726
|
titleSource: "heading",
|
|
33331
33727
|
description: "Show a business location with an interactive map and directions link.",
|
|
33332
33728
|
category: "content",
|
|
33729
|
+
contentSource: { kind: "inline" },
|
|
33333
33730
|
tags: [
|
|
33334
33731
|
"map",
|
|
33335
33732
|
"location",
|
|
@@ -34445,9 +34842,9 @@ function appendBackgroundMediaClasses(baseClassName, input) {
|
|
|
34445
34842
|
].filter(Boolean).join(" ");
|
|
34446
34843
|
}
|
|
34447
34844
|
function gradientPresetCss(value) {
|
|
34448
|
-
|
|
34449
|
-
|
|
34450
|
-
|
|
34845
|
+
const presetId = parseGradientPresetId(value);
|
|
34846
|
+
if (!presetId) return null;
|
|
34847
|
+
const preset = getGradientPreset(presetId);
|
|
34451
34848
|
return gradientToCss(preset, Object.fromEntries(preset.stops.map((stop) => [stop.color, `rgb(var(--tb-${stop.color}))`])));
|
|
34452
34849
|
}
|
|
34453
34850
|
const backgroundTransforms = [
|
|
@@ -34486,16 +34883,17 @@ const backgroundTransforms = [
|
|
|
34486
34883
|
run: (value, _options, context) => resolveSurfaceForegroundStyles(value, context)
|
|
34487
34884
|
},
|
|
34488
34885
|
{
|
|
34489
|
-
id: "background.
|
|
34886
|
+
id: "background.resolveFrameClassName",
|
|
34490
34887
|
kind: "formatter",
|
|
34491
|
-
summary: "Resolve
|
|
34492
|
-
run: (value) => {
|
|
34493
|
-
|
|
34888
|
+
summary: "Resolve clipping on a decorative background frame without clipping foreground content",
|
|
34889
|
+
run: (value, options) => {
|
|
34890
|
+
const baseClass = options?.baseClass?.trim() ?? "";
|
|
34891
|
+
if (!value || typeof value !== "object") return `${baseClass} rb-overflow-hidden`.trim();
|
|
34494
34892
|
const input = value;
|
|
34495
|
-
if (input.overflow === true) return
|
|
34893
|
+
if (input.overflow === true) return `${baseClass} rb-overflow-visible`.trim();
|
|
34496
34894
|
const objectFit = isString(input.objectFit) ? input.objectFit.trim() : null;
|
|
34497
34895
|
const scale = isString(input.scale) ? input.scale.trim() : isNumber(input.scale) ? String(input.scale) : null;
|
|
34498
|
-
return Boolean((objectFit === "custom" || objectFit === "original") && scale && scale.trim().length > 0);
|
|
34896
|
+
return `${baseClass} ${Boolean((objectFit === "custom" || objectFit === "original") && scale && scale.trim().length > 0) ? "rb-overflow-visible" : "rb-overflow-hidden"}`.trim();
|
|
34499
34897
|
}
|
|
34500
34898
|
},
|
|
34501
34899
|
{
|
|
@@ -35120,6 +35518,7 @@ const CANONICAL_REFUND_PLANNER_ERROR_CODES = [
|
|
|
35120
35518
|
"already_refunded",
|
|
35121
35519
|
"idempotency_amount_mismatch",
|
|
35122
35520
|
"idempotency_method_mismatch",
|
|
35521
|
+
"idempotency_receipt_mismatch",
|
|
35123
35522
|
"refund_in_progress"
|
|
35124
35523
|
],
|
|
35125
35524
|
"invalid_amount",
|
|
@@ -35132,7 +35531,12 @@ const CANONICAL_ADMIN_REFUND_FAILURE_CODES = [
|
|
|
35132
35531
|
"payment_intent_not_found",
|
|
35133
35532
|
"stripe_error",
|
|
35134
35533
|
"stale_pending_missing_context",
|
|
35135
|
-
"non_refundable_deposit_remaining"
|
|
35534
|
+
"non_refundable_deposit_remaining",
|
|
35535
|
+
"deposit_refund_override_required",
|
|
35536
|
+
"refund_revoke_requires_full_line_refund",
|
|
35537
|
+
"payment_receipt_not_found",
|
|
35538
|
+
"payment_receipt_not_refundable",
|
|
35539
|
+
"payment_receipt_attribution_required"
|
|
35136
35540
|
];
|
|
35137
35541
|
[...CANONICAL_REFUND_PLANNER_ERROR_CODES];
|
|
35138
35542
|
//#endregion
|
|
@@ -35145,7 +35549,10 @@ const STANDARD_LINE_ITEM_REFUND_INVALID_CODES = [
|
|
|
35145
35549
|
"missing_credit_customer",
|
|
35146
35550
|
"deposit_refund_override_required",
|
|
35147
35551
|
"refund_revoke_requires_full_line_refund",
|
|
35148
|
-
"unified_order_link_required"
|
|
35552
|
+
"unified_order_link_required",
|
|
35553
|
+
"payment_receipt_not_found",
|
|
35554
|
+
"payment_receipt_not_refundable",
|
|
35555
|
+
"payment_receipt_attribution_required"
|
|
35149
35556
|
];
|
|
35150
35557
|
const EVENT_ATTENDEE_REFUND_INVALID_CODES = ["manual_booking_not_refundable", ...STANDARD_LINE_ITEM_REFUND_INVALID_CODES];
|
|
35151
35558
|
[...CANONICAL_ADMIN_REFUND_FAILURE_CODES];
|
|
@@ -36110,8 +36517,14 @@ const navigationMenuConfigSchema = z$1.object({
|
|
|
36110
36517
|
name: z$1.string().min(1, "Name is required"),
|
|
36111
36518
|
isPrimary: z$1.boolean().optional(),
|
|
36112
36519
|
isFooter: z$1.boolean().optional(),
|
|
36520
|
+
footerRole: z$1.enum(["main", "legal-policy"]).nullable().optional(),
|
|
36113
36521
|
items: z$1.array(navigationItemConfigSchema)
|
|
36114
36522
|
}).superRefine((menu, ctx) => {
|
|
36523
|
+
if (menu.footerRole !== void 0 && menu.isFooter !== void 0 && menu.isFooter !== (menu.footerRole === "main")) ctx.addIssue({
|
|
36524
|
+
code: "custom",
|
|
36525
|
+
message: "footerRole and isFooter disagree",
|
|
36526
|
+
path: ["footerRole"]
|
|
36527
|
+
});
|
|
36115
36528
|
const portalStats = collectPortalLinkStats(menu.items);
|
|
36116
36529
|
if (portalStats.count > 1) ctx.addIssue({
|
|
36117
36530
|
code: z$1.ZodIssueCode.custom,
|