@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
|
@@ -2917,6 +2917,111 @@ const mediaSchema$1 = z.object({
|
|
|
2917
2917
|
transform: transformSchema$1.optional()
|
|
2918
2918
|
});
|
|
2919
2919
|
//#endregion
|
|
2920
|
+
//#region ../theme-core/src/buttons/effectClassification.ts
|
|
2921
|
+
/**
|
|
2922
|
+
* Exhaustive live policy for every registered effect id.
|
|
2923
|
+
*
|
|
2924
|
+
* The resolver consumes the transition payload directly, so adding an effect
|
|
2925
|
+
* cannot update classification without also defining its runtime behavior.
|
|
2926
|
+
*/
|
|
2927
|
+
const BUTTON_EFFECT_POLICIES = {
|
|
2928
|
+
"darken-background": {
|
|
2929
|
+
classification: "colour-transition",
|
|
2930
|
+
transition: {
|
|
2931
|
+
kind: "adjust-shade",
|
|
2932
|
+
direction: "darker"
|
|
2933
|
+
}
|
|
2934
|
+
},
|
|
2935
|
+
"lighten-background": {
|
|
2936
|
+
classification: "colour-transition",
|
|
2937
|
+
transition: {
|
|
2938
|
+
kind: "adjust-shade",
|
|
2939
|
+
direction: "lighter"
|
|
2940
|
+
}
|
|
2941
|
+
},
|
|
2942
|
+
"background-on-hover": {
|
|
2943
|
+
classification: "colour-transition",
|
|
2944
|
+
transition: { kind: "replace-background" }
|
|
2945
|
+
},
|
|
2946
|
+
"background-on-hover-alpha": {
|
|
2947
|
+
classification: "unsupported-colour",
|
|
2948
|
+
reason: "alpha_requires_surface"
|
|
2949
|
+
},
|
|
2950
|
+
"fade-background": {
|
|
2951
|
+
classification: "unsupported-colour",
|
|
2952
|
+
reason: "changes_element_opacity"
|
|
2953
|
+
},
|
|
2954
|
+
"opacity-reduce": {
|
|
2955
|
+
classification: "unsupported-colour",
|
|
2956
|
+
reason: "changes_element_opacity"
|
|
2957
|
+
},
|
|
2958
|
+
"gradient-text": {
|
|
2959
|
+
classification: "unsupported-colour",
|
|
2960
|
+
reason: "changes_foreground"
|
|
2961
|
+
},
|
|
2962
|
+
"text-color-change": {
|
|
2963
|
+
classification: "unsupported-colour",
|
|
2964
|
+
reason: "changes_foreground"
|
|
2965
|
+
},
|
|
2966
|
+
"border-color-change": {
|
|
2967
|
+
classification: "unsupported-colour",
|
|
2968
|
+
reason: "changes_border"
|
|
2969
|
+
},
|
|
2970
|
+
"aurora-glow": {
|
|
2971
|
+
classification: "unsupported-background-overlay",
|
|
2972
|
+
reason: "unresolved_background_overlay"
|
|
2973
|
+
},
|
|
2974
|
+
"cosmic-stardust": {
|
|
2975
|
+
classification: "unsupported-background-overlay",
|
|
2976
|
+
reason: "unresolved_background_overlay"
|
|
2977
|
+
},
|
|
2978
|
+
"gradient-border-fill": {
|
|
2979
|
+
classification: "unsupported-background-overlay",
|
|
2980
|
+
reason: "unresolved_background_overlay"
|
|
2981
|
+
},
|
|
2982
|
+
"animated-gradient-border-fill": {
|
|
2983
|
+
classification: "unsupported-background-overlay",
|
|
2984
|
+
reason: "unresolved_background_overlay"
|
|
2985
|
+
},
|
|
2986
|
+
"nav-underline": {
|
|
2987
|
+
classification: "not-button",
|
|
2988
|
+
reason: "not_button_effect"
|
|
2989
|
+
},
|
|
2990
|
+
"nav-frosted-base": {
|
|
2991
|
+
classification: "not-button",
|
|
2992
|
+
reason: "not_button_effect"
|
|
2993
|
+
},
|
|
2994
|
+
"nav-frosted-hover": {
|
|
2995
|
+
classification: "not-button",
|
|
2996
|
+
reason: "not_button_effect"
|
|
2997
|
+
},
|
|
2998
|
+
"nav-frosted-active": {
|
|
2999
|
+
classification: "not-button",
|
|
3000
|
+
reason: "not_button_effect"
|
|
3001
|
+
},
|
|
3002
|
+
"animated-gradient": { classification: "non-colour" },
|
|
3003
|
+
"border-glow": { classification: "non-colour" },
|
|
3004
|
+
"drop-shadow": { classification: "non-colour" },
|
|
3005
|
+
"inner-shadow": { classification: "non-colour" },
|
|
3006
|
+
"neumorphic-shadow": { classification: "non-colour" },
|
|
3007
|
+
"outer-glow": { classification: "non-colour" },
|
|
3008
|
+
"retro-3d-shadow": { classification: "non-colour" },
|
|
3009
|
+
"scale-up": { classification: "non-colour" },
|
|
3010
|
+
"scale-down": { classification: "non-colour" },
|
|
3011
|
+
lift: { classification: "non-colour" },
|
|
3012
|
+
"press-down": { classification: "non-colour" },
|
|
3013
|
+
pop: { classification: "non-colour" },
|
|
3014
|
+
"border-bottom-grow": { classification: "non-colour" },
|
|
3015
|
+
"sketchy-border": { classification: "non-colour" },
|
|
3016
|
+
"pulse-animation": { classification: "non-colour" }
|
|
3017
|
+
};
|
|
3018
|
+
function getButtonEffectPolicy(effectId) {
|
|
3019
|
+
return Object.prototype.hasOwnProperty.call(BUTTON_EFFECT_POLICIES, effectId) ? BUTTON_EFFECT_POLICIES[effectId] : null;
|
|
3020
|
+
}
|
|
3021
|
+
function classifyButtonEffectId(effectId) {
|
|
3022
|
+
return getButtonEffectPolicy(effectId)?.classification ?? "unknown";
|
|
3023
|
+
}
|
|
3024
|
+
//#endregion
|
|
2920
3025
|
//#region ../theme-core/src/buttons/types.ts
|
|
2921
3026
|
/**
|
|
2922
3027
|
* Standard semantic variant roles a theme exposes.
|
|
@@ -2933,6 +3038,20 @@ const VARIANT_ROLES = [
|
|
|
2933
3038
|
"tertiary",
|
|
2934
3039
|
"accent"
|
|
2935
3040
|
];
|
|
3041
|
+
function parseOpaqueButtonColourToken(value) {
|
|
3042
|
+
const token = parseThemeColorToken(value);
|
|
3043
|
+
if (token === null) return null;
|
|
3044
|
+
const parts = parseColorTokenParts(token);
|
|
3045
|
+
return parts.kind === "token" && parts.opacityPercent === null ? token : null;
|
|
3046
|
+
}
|
|
3047
|
+
function unsafeAsOpaqueButtonColourToken(value) {
|
|
3048
|
+
return value;
|
|
3049
|
+
}
|
|
3050
|
+
const opaqueButtonColourTokenSchema = themeColorTokenSchema.refine((value) => parseOpaqueButtonColourToken(value) !== null, "Button colour tokens must be opaque").transform((value) => {
|
|
3051
|
+
const token = parseOpaqueButtonColourToken(value);
|
|
3052
|
+
if (token === null) throw new Error("Invariant: opaque button token passed its schema");
|
|
3053
|
+
return token;
|
|
3054
|
+
});
|
|
2936
3055
|
const cornerStyleSchema = z$1.enum([
|
|
2937
3056
|
"square",
|
|
2938
3057
|
"rounded",
|
|
@@ -3034,7 +3153,7 @@ const buttonSizesSchema = z$1.object({
|
|
|
3034
3153
|
lg,
|
|
3035
3154
|
xl: xl ?? lg
|
|
3036
3155
|
}));
|
|
3037
|
-
const
|
|
3156
|
+
const canonicalButtonGlobalSettingsSchema = z$1.object({
|
|
3038
3157
|
cornerStyle: cornerStyleSchema,
|
|
3039
3158
|
cornerRadius: z$1.number().min(0).max(24).optional(),
|
|
3040
3159
|
/**
|
|
@@ -3065,11 +3184,12 @@ const buttonGlobalSettingsSchema = z$1.object({
|
|
|
3065
3184
|
paddingPreset: buttonPaddingPresetSchema.optional(),
|
|
3066
3185
|
hoverTransform: hoverTransformSchema,
|
|
3067
3186
|
hoverColor: hoverColorSchema,
|
|
3068
|
-
hoverColorToken:
|
|
3187
|
+
hoverColorToken: opaqueButtonColourTokenSchema.optional(),
|
|
3069
3188
|
gradientStyle: gradientStyleSchema.optional(),
|
|
3070
3189
|
gradientAngle: z$1.number().min(0).max(360).optional(),
|
|
3071
3190
|
gradientSharpness: gradientSharpnessSchema.optional()
|
|
3072
3191
|
});
|
|
3192
|
+
const buttonGlobalSettingsSchema = z$1.preprocess(normalizeLegacyButtonGlobalInput, canonicalButtonGlobalSettingsSchema);
|
|
3073
3193
|
const gradientDirectionSchema$1 = z$1.enum([
|
|
3074
3194
|
"to-r",
|
|
3075
3195
|
"to-l",
|
|
@@ -3083,27 +3203,33 @@ const gradientDirectionSchema$1 = z$1.enum([
|
|
|
3083
3203
|
const buttonBackgroundSchema = z$1.discriminatedUnion("type", [
|
|
3084
3204
|
z$1.object({
|
|
3085
3205
|
type: z$1.literal("solid"),
|
|
3086
|
-
colorToken:
|
|
3206
|
+
colorToken: opaqueButtonColourTokenSchema
|
|
3087
3207
|
}),
|
|
3088
3208
|
z$1.object({
|
|
3089
3209
|
type: z$1.literal("gradient"),
|
|
3090
|
-
stops: z$1.array(
|
|
3091
|
-
|
|
3210
|
+
stops: z$1.array(opaqueButtonColourTokenSchema).min(2).transform((stops) => {
|
|
3211
|
+
const [first, second, ...rest] = stops;
|
|
3212
|
+
if (first === void 0 || second === void 0) throw new Error("Invariant: gradient stops passed the minimum length schema");
|
|
3213
|
+
return [
|
|
3214
|
+
first,
|
|
3215
|
+
second,
|
|
3216
|
+
...rest
|
|
3217
|
+
];
|
|
3218
|
+
}),
|
|
3219
|
+
direction: gradientDirectionSchema$1,
|
|
3220
|
+
foregroundToken: opaqueButtonColourTokenSchema
|
|
3092
3221
|
}),
|
|
3093
|
-
z$1.object({
|
|
3222
|
+
z$1.object({
|
|
3223
|
+
type: z$1.literal("surface"),
|
|
3224
|
+
role: z$1.literal("link")
|
|
3225
|
+
})
|
|
3094
3226
|
]);
|
|
3095
3227
|
const effectApplicationSchema$1 = z$1.object({
|
|
3096
3228
|
effectId: z$1.string(),
|
|
3097
|
-
options: z$1.record(z$1.string(), z$1.
|
|
3098
|
-
});
|
|
3099
|
-
const buttonBorderSchema = z$1.object({
|
|
3100
|
-
widthClass: z$1.string(),
|
|
3101
|
-
colorToken: themeColorTokenSchema
|
|
3102
|
-
});
|
|
3103
|
-
const buttonVariantAffordanceSchema = z$1.object({
|
|
3104
|
-
iconId: z$1.string().min(1),
|
|
3105
|
-
colorToken: themeColorTokenSchema.optional()
|
|
3229
|
+
options: z$1.record(z$1.string(), z$1.json()).optional()
|
|
3106
3230
|
});
|
|
3231
|
+
const buttonBorderSchema = z$1.object({ widthClass: z$1.string() });
|
|
3232
|
+
const buttonVariantAffordanceSchema = z$1.object({ iconId: z$1.string().min(1) });
|
|
3107
3233
|
const variantShadowSchema = z$1.object({
|
|
3108
3234
|
elevation: z$1.enum([
|
|
3109
3235
|
"none",
|
|
@@ -3144,27 +3270,170 @@ const variantSizeOverridesSchema = z$1.object({
|
|
|
3144
3270
|
* default (e.g. link-style variants declaring zero horizontal padding at
|
|
3145
3271
|
* every size).
|
|
3146
3272
|
*/
|
|
3147
|
-
const
|
|
3273
|
+
const canonicalButtonVariantSchema = z$1.object({
|
|
3148
3274
|
id: z$1.string(),
|
|
3149
3275
|
name: z$1.string().min(1).max(20),
|
|
3150
3276
|
enabled: z$1.boolean(),
|
|
3151
3277
|
priority: prioritySchema,
|
|
3152
3278
|
background: buttonBackgroundSchema,
|
|
3153
|
-
textColorToken: themeColorTokenSchema,
|
|
3154
3279
|
/** Tailwind radius token (e.g. `'rounded-md'`). Omit to inherit from `global.cornerStyle`. */
|
|
3155
3280
|
borderRadius: z$1.string().optional(),
|
|
3156
3281
|
shadow: variantShadowSchema.optional(),
|
|
3157
3282
|
border: buttonBorderSchema.optional(),
|
|
3158
|
-
hoverBackgroundToken:
|
|
3283
|
+
hoverBackgroundToken: opaqueButtonColourTokenSchema.optional(),
|
|
3159
3284
|
effects: variantEffectsSchema.optional(),
|
|
3160
3285
|
sizes: variantSizeOverridesSchema.optional(),
|
|
3161
3286
|
affordance: buttonVariantAffordanceSchema.optional()
|
|
3162
3287
|
});
|
|
3288
|
+
/**
|
|
3289
|
+
* Temporary persisted-theme admission boundary for issue #1206.
|
|
3290
|
+
*
|
|
3291
|
+
* Production inventory on 2026-07-22 found 22 rows using the old independent
|
|
3292
|
+
* `textColorToken`/border colour shape. New source and all downstream code use
|
|
3293
|
+
* only the canonical relationship. Delete this preprocessor after the reviewed
|
|
3294
|
+
* production rewrite reports zero legacy rows.
|
|
3295
|
+
*/
|
|
3296
|
+
const buttonVariantSchema = z$1.preprocess(normalizeLegacyButtonVariantInput, canonicalButtonVariantSchema);
|
|
3163
3297
|
const buttonSystemSchema = z$1.object({
|
|
3164
3298
|
global: buttonGlobalSettingsSchema,
|
|
3165
3299
|
variants: z$1.array(buttonVariantSchema).min(1).max(6),
|
|
3166
3300
|
sizes: buttonSizesSchema.optional()
|
|
3167
3301
|
});
|
|
3302
|
+
function normalizeLegacyButtonVariantInput(input) {
|
|
3303
|
+
if (!isUnknownRecord(input)) return input;
|
|
3304
|
+
const background = input.background;
|
|
3305
|
+
if (!isUnknownRecord(background)) return input;
|
|
3306
|
+
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;
|
|
3307
|
+
const { textColorToken, ...withoutLegacyText } = input;
|
|
3308
|
+
const normalizedBorder = isUnknownRecord(input.border) && typeof input.border.widthClass === "string" ? { widthClass: input.border.widthClass } : input.border;
|
|
3309
|
+
const normalizedAffordance = isUnknownRecord(input.affordance) && typeof input.affordance.iconId === "string" ? { iconId: input.affordance.iconId } : input.affordance;
|
|
3310
|
+
const normalizedEffects = normalizeLegacyButtonEffects(input.effects, background.type);
|
|
3311
|
+
const hoverBackgroundToken = stripLegacyTokenAlpha(input.hoverBackgroundToken);
|
|
3312
|
+
if (background.type === "transparent") return {
|
|
3313
|
+
...withoutLegacyText,
|
|
3314
|
+
background: {
|
|
3315
|
+
type: "surface",
|
|
3316
|
+
role: "link"
|
|
3317
|
+
},
|
|
3318
|
+
border: normalizedBorder,
|
|
3319
|
+
affordance: normalizedAffordance,
|
|
3320
|
+
effects: normalizedEffects,
|
|
3321
|
+
hoverBackgroundToken
|
|
3322
|
+
};
|
|
3323
|
+
if (background.type === "gradient") {
|
|
3324
|
+
const stops = Array.isArray(background.stops) ? background.stops.map(stripLegacyTokenAlpha) : background.stops;
|
|
3325
|
+
return {
|
|
3326
|
+
...withoutLegacyText,
|
|
3327
|
+
background: {
|
|
3328
|
+
...background,
|
|
3329
|
+
stops,
|
|
3330
|
+
foregroundToken: stripLegacyTokenAlpha(background.foregroundToken ?? textColorToken)
|
|
3331
|
+
},
|
|
3332
|
+
border: normalizedBorder,
|
|
3333
|
+
affordance: normalizedAffordance,
|
|
3334
|
+
effects: normalizedEffects,
|
|
3335
|
+
hoverBackgroundToken
|
|
3336
|
+
};
|
|
3337
|
+
}
|
|
3338
|
+
return {
|
|
3339
|
+
...withoutLegacyText,
|
|
3340
|
+
background: background.type === "solid" ? {
|
|
3341
|
+
...background,
|
|
3342
|
+
colorToken: stripLegacyTokenAlpha(background.colorToken)
|
|
3343
|
+
} : background,
|
|
3344
|
+
border: normalizedBorder,
|
|
3345
|
+
affordance: normalizedAffordance,
|
|
3346
|
+
effects: normalizedEffects,
|
|
3347
|
+
hoverBackgroundToken
|
|
3348
|
+
};
|
|
3349
|
+
}
|
|
3350
|
+
function normalizeLegacyButtonGlobalInput(input) {
|
|
3351
|
+
if (!isUnknownRecord(input)) return input;
|
|
3352
|
+
const hoverColorToken = stripLegacyTokenAlpha(input.hoverColorToken);
|
|
3353
|
+
return hoverColorToken === input.hoverColorToken ? input : {
|
|
3354
|
+
...input,
|
|
3355
|
+
hoverColorToken
|
|
3356
|
+
};
|
|
3357
|
+
}
|
|
3358
|
+
function hasLegacyAlphaToken(input, background) {
|
|
3359
|
+
const stops = isUnknownArray(background.stops) ? background.stops : [];
|
|
3360
|
+
return [
|
|
3361
|
+
input.hoverBackgroundToken,
|
|
3362
|
+
background.colorToken,
|
|
3363
|
+
background.foregroundToken,
|
|
3364
|
+
...stops
|
|
3365
|
+
].some((token) => stripLegacyTokenAlpha(token) !== token);
|
|
3366
|
+
}
|
|
3367
|
+
function stripLegacyTokenAlpha(value) {
|
|
3368
|
+
if (typeof value !== "string") return value;
|
|
3369
|
+
const slashIndex = value.indexOf("/");
|
|
3370
|
+
return slashIndex < 0 ? value : value.slice(0, slashIndex);
|
|
3371
|
+
}
|
|
3372
|
+
function hasLegacyButtonEffects(input) {
|
|
3373
|
+
if (!isUnknownRecord(input)) return false;
|
|
3374
|
+
return [
|
|
3375
|
+
"base",
|
|
3376
|
+
"hover",
|
|
3377
|
+
"active",
|
|
3378
|
+
"focus"
|
|
3379
|
+
].some((state) => {
|
|
3380
|
+
const effects = input[state];
|
|
3381
|
+
return Array.isArray(effects) && effects.some((effect) => {
|
|
3382
|
+
if (!isUnknownRecord(effect) || typeof effect.effectId !== "string") return true;
|
|
3383
|
+
const classification = classifyButtonEffectId(effect.effectId);
|
|
3384
|
+
if (classification !== "colour-transition" && classification !== "non-colour") return true;
|
|
3385
|
+
return effect.effectId === "background-on-hover" && isUnknownRecord(effect.options) && stripLegacyTokenAlpha(effect.options.colorToken) !== effect.options.colorToken;
|
|
3386
|
+
});
|
|
3387
|
+
});
|
|
3388
|
+
}
|
|
3389
|
+
function normalizeLegacyButtonEffects(input, backgroundType) {
|
|
3390
|
+
if (!isUnknownRecord(input)) return input;
|
|
3391
|
+
const normalized = {};
|
|
3392
|
+
for (const state of [
|
|
3393
|
+
"base",
|
|
3394
|
+
"hover",
|
|
3395
|
+
"active",
|
|
3396
|
+
"focus"
|
|
3397
|
+
]) {
|
|
3398
|
+
const effects = input[state];
|
|
3399
|
+
if (!Array.isArray(effects)) continue;
|
|
3400
|
+
const safeEffects = effects.flatMap((effect) => {
|
|
3401
|
+
if (!isUnknownRecord(effect) || typeof effect.effectId !== "string") return [];
|
|
3402
|
+
const classification = classifyButtonEffectId(effect.effectId);
|
|
3403
|
+
if (classification === "non-colour") return [effect];
|
|
3404
|
+
if (classification !== "colour-transition") return [];
|
|
3405
|
+
if (effect.effectId === "background-on-hover") {
|
|
3406
|
+
const options = isUnknownRecord(effect.options) ? effect.options : null;
|
|
3407
|
+
const colorToken = options === null ? null : parseOpaqueButtonColourToken(stripLegacyTokenAlpha(options.colorToken));
|
|
3408
|
+
return colorToken === null ? [] : [{
|
|
3409
|
+
...effect,
|
|
3410
|
+
options: {
|
|
3411
|
+
...options,
|
|
3412
|
+
colorToken
|
|
3413
|
+
}
|
|
3414
|
+
}];
|
|
3415
|
+
}
|
|
3416
|
+
if (backgroundType !== "solid") return [];
|
|
3417
|
+
const rawAmount = isUnknownRecord(effect.options) ? effect.options.amount : void 0;
|
|
3418
|
+
const amount = typeof rawAmount === "number" && rawAmount > 0 ? Math.max(100, Math.round(rawAmount / 100) * 100) : 100;
|
|
3419
|
+
return [{
|
|
3420
|
+
...effect,
|
|
3421
|
+
options: {
|
|
3422
|
+
...isUnknownRecord(effect.options) ? effect.options : {},
|
|
3423
|
+
amount
|
|
3424
|
+
}
|
|
3425
|
+
}];
|
|
3426
|
+
});
|
|
3427
|
+
if (safeEffects.length > 0) normalized[state] = safeEffects;
|
|
3428
|
+
}
|
|
3429
|
+
return Object.keys(normalized).length === 0 ? void 0 : normalized;
|
|
3430
|
+
}
|
|
3431
|
+
function isUnknownRecord(value) {
|
|
3432
|
+
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
3433
|
+
}
|
|
3434
|
+
function isUnknownArray(value) {
|
|
3435
|
+
return Array.isArray(value);
|
|
3436
|
+
}
|
|
3168
3437
|
buttonSizeNameSchema.options;
|
|
3169
3438
|
//#endregion
|
|
3170
3439
|
//#region ../theme-core/src/buttons/personalities/types.ts
|
|
@@ -3191,7 +3460,7 @@ function defineButtonPersonality(input) {
|
|
|
3191
3460
|
name: input.name,
|
|
3192
3461
|
description: input.description,
|
|
3193
3462
|
tags: input.tags,
|
|
3194
|
-
buttonSystem: input.buttonSystem
|
|
3463
|
+
buttonSystem: buttonSystemSchema.parse(input.buttonSystem)
|
|
3195
3464
|
};
|
|
3196
3465
|
}
|
|
3197
3466
|
//#endregion
|
|
@@ -3244,19 +3513,15 @@ const brushedWash = defineButtonPersonality({
|
|
|
3244
3513
|
background: {
|
|
3245
3514
|
type: "gradient",
|
|
3246
3515
|
stops: ["primary", "accent"],
|
|
3247
|
-
direction: "to-r"
|
|
3516
|
+
direction: "to-r",
|
|
3517
|
+
foregroundToken: "primaryForeground"
|
|
3248
3518
|
},
|
|
3249
|
-
textColorToken: "primaryForeground",
|
|
3250
3519
|
borderRadius: "rounded-lg",
|
|
3251
3520
|
shadow: {
|
|
3252
3521
|
elevation: "low",
|
|
3253
3522
|
softness: "soft",
|
|
3254
3523
|
position: "bottom"
|
|
3255
|
-
}
|
|
3256
|
-
effects: { hover: [{
|
|
3257
|
-
effectId: "opacity-reduce",
|
|
3258
|
-
options: { reduction: -15 }
|
|
3259
|
-
}] }
|
|
3524
|
+
}
|
|
3260
3525
|
},
|
|
3261
3526
|
{
|
|
3262
3527
|
id: "secondary",
|
|
@@ -3266,32 +3531,27 @@ const brushedWash = defineButtonPersonality({
|
|
|
3266
3531
|
background: {
|
|
3267
3532
|
type: "gradient",
|
|
3268
3533
|
stops: ["secondary", "accent"],
|
|
3269
|
-
direction: "to-br"
|
|
3534
|
+
direction: "to-br",
|
|
3535
|
+
foregroundToken: "primaryForeground"
|
|
3270
3536
|
},
|
|
3271
|
-
textColorToken: "primaryForeground",
|
|
3272
3537
|
borderRadius: "rounded-lg",
|
|
3273
3538
|
shadow: {
|
|
3274
3539
|
elevation: "low",
|
|
3275
3540
|
softness: "soft",
|
|
3276
3541
|
position: "bottom"
|
|
3277
|
-
}
|
|
3278
|
-
effects: { hover: [{
|
|
3279
|
-
effectId: "opacity-reduce",
|
|
3280
|
-
options: { reduction: -15 }
|
|
3281
|
-
}] }
|
|
3542
|
+
}
|
|
3282
3543
|
},
|
|
3283
3544
|
{
|
|
3284
3545
|
id: "outline",
|
|
3285
3546
|
name: "Outline",
|
|
3286
3547
|
enabled: true,
|
|
3287
3548
|
priority: 3,
|
|
3288
|
-
background: {
|
|
3289
|
-
|
|
3290
|
-
|
|
3291
|
-
border: {
|
|
3292
|
-
widthClass: "border",
|
|
3293
|
-
colorToken: "primary"
|
|
3549
|
+
background: {
|
|
3550
|
+
type: "surface",
|
|
3551
|
+
role: "link"
|
|
3294
3552
|
},
|
|
3553
|
+
borderRadius: "rounded-lg",
|
|
3554
|
+
border: { widthClass: "border" },
|
|
3295
3555
|
effects: { hover: [{
|
|
3296
3556
|
effectId: "background-on-hover",
|
|
3297
3557
|
options: { colorToken: "surface" }
|
|
@@ -3302,8 +3562,10 @@ const brushedWash = defineButtonPersonality({
|
|
|
3302
3562
|
name: "Ghost",
|
|
3303
3563
|
enabled: true,
|
|
3304
3564
|
priority: 3,
|
|
3305
|
-
background: {
|
|
3306
|
-
|
|
3565
|
+
background: {
|
|
3566
|
+
type: "surface",
|
|
3567
|
+
role: "link"
|
|
3568
|
+
},
|
|
3307
3569
|
borderRadius: "rounded-lg",
|
|
3308
3570
|
effects: { hover: [{
|
|
3309
3571
|
effectId: "background-on-hover",
|
|
@@ -3349,7 +3611,6 @@ const confidentChip = defineButtonPersonality({
|
|
|
3349
3611
|
type: "solid",
|
|
3350
3612
|
colorToken: "primary"
|
|
3351
3613
|
},
|
|
3352
|
-
textColorToken: "primaryForeground",
|
|
3353
3614
|
borderRadius: "rounded-md",
|
|
3354
3615
|
shadow: {
|
|
3355
3616
|
elevation: "medium",
|
|
@@ -3359,7 +3620,7 @@ const confidentChip = defineButtonPersonality({
|
|
|
3359
3620
|
effects: {
|
|
3360
3621
|
hover: [{
|
|
3361
3622
|
effectId: "darken-background",
|
|
3362
|
-
options: { amount:
|
|
3623
|
+
options: { amount: 100 }
|
|
3363
3624
|
}],
|
|
3364
3625
|
active: [{
|
|
3365
3626
|
effectId: "scale-down",
|
|
@@ -3376,12 +3637,8 @@ const confidentChip = defineButtonPersonality({
|
|
|
3376
3637
|
type: "solid",
|
|
3377
3638
|
colorToken: "surface"
|
|
3378
3639
|
},
|
|
3379
|
-
textColorToken: "text",
|
|
3380
3640
|
borderRadius: "rounded-md",
|
|
3381
|
-
border: {
|
|
3382
|
-
widthClass: "border",
|
|
3383
|
-
colorToken: "border"
|
|
3384
|
-
},
|
|
3641
|
+
border: { widthClass: "border" },
|
|
3385
3642
|
effects: { hover: [{
|
|
3386
3643
|
effectId: "background-on-hover",
|
|
3387
3644
|
options: { colorToken: "background" }
|
|
@@ -3392,13 +3649,12 @@ const confidentChip = defineButtonPersonality({
|
|
|
3392
3649
|
name: "Outline",
|
|
3393
3650
|
enabled: true,
|
|
3394
3651
|
priority: 3,
|
|
3395
|
-
background: {
|
|
3396
|
-
|
|
3397
|
-
|
|
3398
|
-
border: {
|
|
3399
|
-
widthClass: "border",
|
|
3400
|
-
colorToken: "primary"
|
|
3652
|
+
background: {
|
|
3653
|
+
type: "surface",
|
|
3654
|
+
role: "link"
|
|
3401
3655
|
},
|
|
3656
|
+
borderRadius: "rounded-md",
|
|
3657
|
+
border: { widthClass: "border" },
|
|
3402
3658
|
effects: { hover: [{
|
|
3403
3659
|
effectId: "background-on-hover",
|
|
3404
3660
|
options: { colorToken: "surface" }
|
|
@@ -3409,8 +3665,10 @@ const confidentChip = defineButtonPersonality({
|
|
|
3409
3665
|
name: "Ghost",
|
|
3410
3666
|
enabled: true,
|
|
3411
3667
|
priority: 3,
|
|
3412
|
-
background: {
|
|
3413
|
-
|
|
3668
|
+
background: {
|
|
3669
|
+
type: "surface",
|
|
3670
|
+
role: "link"
|
|
3671
|
+
},
|
|
3414
3672
|
borderRadius: "rounded-md",
|
|
3415
3673
|
effects: { hover: [{
|
|
3416
3674
|
effectId: "background-on-hover",
|
|
@@ -3473,7 +3731,6 @@ const earthPill = defineButtonPersonality({
|
|
|
3473
3731
|
type: "solid",
|
|
3474
3732
|
colorToken: "primary"
|
|
3475
3733
|
},
|
|
3476
|
-
textColorToken: "primaryForeground",
|
|
3477
3734
|
borderRadius: "rounded-full",
|
|
3478
3735
|
shadow: {
|
|
3479
3736
|
elevation: "low",
|
|
@@ -3499,13 +3756,12 @@ const earthPill = defineButtonPersonality({
|
|
|
3499
3756
|
name: "Secondary",
|
|
3500
3757
|
enabled: true,
|
|
3501
3758
|
priority: 2,
|
|
3502
|
-
background: {
|
|
3503
|
-
|
|
3504
|
-
|
|
3505
|
-
border: {
|
|
3506
|
-
widthClass: "border",
|
|
3507
|
-
colorToken: "primary"
|
|
3759
|
+
background: {
|
|
3760
|
+
type: "surface",
|
|
3761
|
+
role: "link"
|
|
3508
3762
|
},
|
|
3763
|
+
borderRadius: "rounded-full",
|
|
3764
|
+
border: { widthClass: "border" },
|
|
3509
3765
|
effects: { hover: [{
|
|
3510
3766
|
effectId: "background-on-hover",
|
|
3511
3767
|
options: { colorToken: "muted" }
|
|
@@ -3516,13 +3772,12 @@ const earthPill = defineButtonPersonality({
|
|
|
3516
3772
|
name: "Outline",
|
|
3517
3773
|
enabled: true,
|
|
3518
3774
|
priority: 3,
|
|
3519
|
-
background: {
|
|
3520
|
-
|
|
3521
|
-
|
|
3522
|
-
border: {
|
|
3523
|
-
widthClass: "border",
|
|
3524
|
-
colorToken: "border"
|
|
3775
|
+
background: {
|
|
3776
|
+
type: "surface",
|
|
3777
|
+
role: "link"
|
|
3525
3778
|
},
|
|
3779
|
+
borderRadius: "rounded-full",
|
|
3780
|
+
border: { widthClass: "border" },
|
|
3526
3781
|
effects: { hover: [{
|
|
3527
3782
|
effectId: "background-on-hover",
|
|
3528
3783
|
options: { colorToken: "surfaceAlt" }
|
|
@@ -3533,8 +3788,10 @@ const earthPill = defineButtonPersonality({
|
|
|
3533
3788
|
name: "Ghost",
|
|
3534
3789
|
enabled: true,
|
|
3535
3790
|
priority: 3,
|
|
3536
|
-
background: {
|
|
3537
|
-
|
|
3791
|
+
background: {
|
|
3792
|
+
type: "surface",
|
|
3793
|
+
role: "link"
|
|
3794
|
+
},
|
|
3538
3795
|
borderRadius: "rounded-full",
|
|
3539
3796
|
shadow: {
|
|
3540
3797
|
elevation: "none",
|
|
@@ -3555,11 +3812,7 @@ const earthPill = defineButtonPersonality({
|
|
|
3555
3812
|
padding: "0.625rem 0",
|
|
3556
3813
|
fontSize: "text-xl"
|
|
3557
3814
|
}
|
|
3558
|
-
}
|
|
3559
|
-
effects: { hover: [{
|
|
3560
|
-
effectId: "opacity-reduce",
|
|
3561
|
-
options: { reduction: 25 }
|
|
3562
|
-
}] }
|
|
3815
|
+
}
|
|
3563
3816
|
}
|
|
3564
3817
|
]
|
|
3565
3818
|
}
|
|
@@ -3595,8 +3848,10 @@ const editorialLink = defineButtonPersonality({
|
|
|
3595
3848
|
name: "Primary",
|
|
3596
3849
|
enabled: true,
|
|
3597
3850
|
priority: 1,
|
|
3598
|
-
background: {
|
|
3599
|
-
|
|
3851
|
+
background: {
|
|
3852
|
+
type: "surface",
|
|
3853
|
+
role: "link"
|
|
3854
|
+
},
|
|
3600
3855
|
borderRadius: "rounded-none",
|
|
3601
3856
|
sizes: {
|
|
3602
3857
|
sm: { padding: "0.25rem 0" },
|
|
@@ -3618,8 +3873,10 @@ const editorialLink = defineButtonPersonality({
|
|
|
3618
3873
|
name: "Secondary",
|
|
3619
3874
|
enabled: true,
|
|
3620
3875
|
priority: 2,
|
|
3621
|
-
background: {
|
|
3622
|
-
|
|
3876
|
+
background: {
|
|
3877
|
+
type: "surface",
|
|
3878
|
+
role: "link"
|
|
3879
|
+
},
|
|
3623
3880
|
borderRadius: "rounded-none",
|
|
3624
3881
|
sizes: {
|
|
3625
3882
|
sm: { padding: "0.25rem 0" },
|
|
@@ -3641,8 +3898,10 @@ const editorialLink = defineButtonPersonality({
|
|
|
3641
3898
|
name: "Outline",
|
|
3642
3899
|
enabled: true,
|
|
3643
3900
|
priority: 3,
|
|
3644
|
-
background: {
|
|
3645
|
-
|
|
3901
|
+
background: {
|
|
3902
|
+
type: "surface",
|
|
3903
|
+
role: "link"
|
|
3904
|
+
},
|
|
3646
3905
|
borderRadius: "rounded-none",
|
|
3647
3906
|
sizes: {
|
|
3648
3907
|
sm: { padding: "0.25rem 0" },
|
|
@@ -3664,19 +3923,17 @@ const editorialLink = defineButtonPersonality({
|
|
|
3664
3923
|
name: "Ghost",
|
|
3665
3924
|
enabled: true,
|
|
3666
3925
|
priority: 3,
|
|
3667
|
-
background: {
|
|
3668
|
-
|
|
3926
|
+
background: {
|
|
3927
|
+
type: "surface",
|
|
3928
|
+
role: "link"
|
|
3929
|
+
},
|
|
3669
3930
|
borderRadius: "rounded-none",
|
|
3670
3931
|
sizes: {
|
|
3671
3932
|
sm: { padding: "0.25rem 0" },
|
|
3672
3933
|
md: { padding: "0.5rem 0" },
|
|
3673
3934
|
lg: { padding: "0.625rem 0" },
|
|
3674
3935
|
xl: { padding: "0.75rem 0" }
|
|
3675
|
-
}
|
|
3676
|
-
effects: { hover: [{
|
|
3677
|
-
effectId: "opacity-reduce",
|
|
3678
|
-
options: { reduction: -20 }
|
|
3679
|
-
}] }
|
|
3936
|
+
}
|
|
3680
3937
|
}
|
|
3681
3938
|
]
|
|
3682
3939
|
}
|
|
@@ -3738,12 +3995,8 @@ const flatInk = defineButtonPersonality({
|
|
|
3738
3995
|
type: "solid",
|
|
3739
3996
|
colorToken: "primary"
|
|
3740
3997
|
},
|
|
3741
|
-
textColorToken: "primaryForeground",
|
|
3742
3998
|
borderRadius: "rounded-lg",
|
|
3743
|
-
affordance: {
|
|
3744
|
-
iconId: "ArrowRight",
|
|
3745
|
-
colorToken: "accent"
|
|
3746
|
-
},
|
|
3999
|
+
affordance: { iconId: "ArrowRight" },
|
|
3747
4000
|
effects: { hover: [{
|
|
3748
4001
|
effectId: "lift",
|
|
3749
4002
|
options: { translateY: "-2px" }
|
|
@@ -3757,13 +4010,12 @@ const flatInk = defineButtonPersonality({
|
|
|
3757
4010
|
name: "Secondary",
|
|
3758
4011
|
enabled: true,
|
|
3759
4012
|
priority: 2,
|
|
3760
|
-
background: {
|
|
3761
|
-
|
|
3762
|
-
|
|
3763
|
-
border: {
|
|
3764
|
-
widthClass: "border",
|
|
3765
|
-
colorToken: "border"
|
|
4013
|
+
background: {
|
|
4014
|
+
type: "surface",
|
|
4015
|
+
role: "link"
|
|
3766
4016
|
},
|
|
4017
|
+
borderRadius: "rounded-lg",
|
|
4018
|
+
border: { widthClass: "border" },
|
|
3767
4019
|
effects: { hover: [{
|
|
3768
4020
|
effectId: "lift",
|
|
3769
4021
|
options: { translateY: "-2px" }
|
|
@@ -3781,12 +4033,8 @@ const flatInk = defineButtonPersonality({
|
|
|
3781
4033
|
type: "solid",
|
|
3782
4034
|
colorToken: "accent"
|
|
3783
4035
|
},
|
|
3784
|
-
textColorToken: "accentForeground",
|
|
3785
4036
|
borderRadius: "rounded-lg",
|
|
3786
|
-
affordance: {
|
|
3787
|
-
iconId: "ArrowRight",
|
|
3788
|
-
colorToken: "accentForeground"
|
|
3789
|
-
},
|
|
4037
|
+
affordance: { iconId: "ArrowRight" },
|
|
3790
4038
|
effects: { hover: [{
|
|
3791
4039
|
effectId: "lift",
|
|
3792
4040
|
options: { translateY: "-2px" }
|
|
@@ -3849,7 +4097,6 @@ const inkStamp = defineButtonPersonality({
|
|
|
3849
4097
|
type: "solid",
|
|
3850
4098
|
colorToken: "primary"
|
|
3851
4099
|
},
|
|
3852
|
-
textColorToken: "primaryForeground",
|
|
3853
4100
|
borderRadius: "rounded-md",
|
|
3854
4101
|
effects: {
|
|
3855
4102
|
hover: [{
|
|
@@ -3870,13 +4117,12 @@ const inkStamp = defineButtonPersonality({
|
|
|
3870
4117
|
name: "Secondary",
|
|
3871
4118
|
enabled: true,
|
|
3872
4119
|
priority: 2,
|
|
3873
|
-
background: {
|
|
3874
|
-
|
|
3875
|
-
|
|
3876
|
-
border: {
|
|
3877
|
-
widthClass: "border-2",
|
|
3878
|
-
colorToken: "primary"
|
|
4120
|
+
background: {
|
|
4121
|
+
type: "surface",
|
|
4122
|
+
role: "link"
|
|
3879
4123
|
},
|
|
4124
|
+
borderRadius: "rounded-md",
|
|
4125
|
+
border: { widthClass: "border-2" },
|
|
3880
4126
|
effects: { hover: [{
|
|
3881
4127
|
effectId: "background-on-hover",
|
|
3882
4128
|
options: { colorToken: "surface" }
|
|
@@ -3887,13 +4133,12 @@ const inkStamp = defineButtonPersonality({
|
|
|
3887
4133
|
name: "Outline",
|
|
3888
4134
|
enabled: true,
|
|
3889
4135
|
priority: 3,
|
|
3890
|
-
background: {
|
|
3891
|
-
|
|
3892
|
-
|
|
3893
|
-
border: {
|
|
3894
|
-
widthClass: "border-2",
|
|
3895
|
-
colorToken: "border"
|
|
4136
|
+
background: {
|
|
4137
|
+
type: "surface",
|
|
4138
|
+
role: "link"
|
|
3896
4139
|
},
|
|
4140
|
+
borderRadius: "rounded-md",
|
|
4141
|
+
border: { widthClass: "border-2" },
|
|
3897
4142
|
effects: { hover: [{
|
|
3898
4143
|
effectId: "background-on-hover",
|
|
3899
4144
|
options: { colorToken: "surface" }
|
|
@@ -3904,8 +4149,10 @@ const inkStamp = defineButtonPersonality({
|
|
|
3904
4149
|
name: "Ghost",
|
|
3905
4150
|
enabled: true,
|
|
3906
4151
|
priority: 3,
|
|
3907
|
-
background: {
|
|
3908
|
-
|
|
4152
|
+
background: {
|
|
4153
|
+
type: "surface",
|
|
4154
|
+
role: "link"
|
|
4155
|
+
},
|
|
3909
4156
|
borderRadius: "rounded-none",
|
|
3910
4157
|
sizes: {
|
|
3911
4158
|
sm: {
|
|
@@ -3998,7 +4245,6 @@ const joyStamp = defineButtonPersonality({
|
|
|
3998
4245
|
type: "solid",
|
|
3999
4246
|
colorToken: "primary"
|
|
4000
4247
|
},
|
|
4001
|
-
textColorToken: "primaryForeground",
|
|
4002
4248
|
borderRadius: "rounded-full",
|
|
4003
4249
|
shadow: {
|
|
4004
4250
|
elevation: "high",
|
|
@@ -4012,13 +4258,12 @@ const joyStamp = defineButtonPersonality({
|
|
|
4012
4258
|
name: "Secondary",
|
|
4013
4259
|
enabled: true,
|
|
4014
4260
|
priority: 2,
|
|
4015
|
-
background: {
|
|
4016
|
-
|
|
4017
|
-
|
|
4018
|
-
border: {
|
|
4019
|
-
widthClass: "border-2",
|
|
4020
|
-
colorToken: "text"
|
|
4261
|
+
background: {
|
|
4262
|
+
type: "surface",
|
|
4263
|
+
role: "link"
|
|
4021
4264
|
},
|
|
4265
|
+
borderRadius: "rounded-full",
|
|
4266
|
+
border: { widthClass: "border-2" },
|
|
4022
4267
|
shadow: {
|
|
4023
4268
|
elevation: "high",
|
|
4024
4269
|
softness: "hard",
|
|
@@ -4083,12 +4328,8 @@ const ornateRitual = defineButtonPersonality({
|
|
|
4083
4328
|
type: "solid",
|
|
4084
4329
|
colorToken: "primary"
|
|
4085
4330
|
},
|
|
4086
|
-
textColorToken: "primaryForeground",
|
|
4087
4331
|
borderRadius: "rounded-md",
|
|
4088
|
-
border: {
|
|
4089
|
-
widthClass: "border",
|
|
4090
|
-
colorToken: "primary"
|
|
4091
|
-
},
|
|
4332
|
+
border: { widthClass: "border" },
|
|
4092
4333
|
effects: {
|
|
4093
4334
|
hover: [{
|
|
4094
4335
|
effectId: "background-on-hover",
|
|
@@ -4109,12 +4350,8 @@ const ornateRitual = defineButtonPersonality({
|
|
|
4109
4350
|
type: "solid",
|
|
4110
4351
|
colorToken: "secondary"
|
|
4111
4352
|
},
|
|
4112
|
-
textColorToken: "primaryForeground",
|
|
4113
4353
|
borderRadius: "rounded-md",
|
|
4114
|
-
border: {
|
|
4115
|
-
widthClass: "border",
|
|
4116
|
-
colorToken: "primary"
|
|
4117
|
-
},
|
|
4354
|
+
border: { widthClass: "border" },
|
|
4118
4355
|
effects: { hover: [{
|
|
4119
4356
|
effectId: "background-on-hover",
|
|
4120
4357
|
options: { colorToken: "surface" }
|
|
@@ -4125,13 +4362,12 @@ const ornateRitual = defineButtonPersonality({
|
|
|
4125
4362
|
name: "Outline",
|
|
4126
4363
|
enabled: true,
|
|
4127
4364
|
priority: 3,
|
|
4128
|
-
background: {
|
|
4129
|
-
|
|
4130
|
-
|
|
4131
|
-
border: {
|
|
4132
|
-
widthClass: "border",
|
|
4133
|
-
colorToken: "primary"
|
|
4365
|
+
background: {
|
|
4366
|
+
type: "surface",
|
|
4367
|
+
role: "link"
|
|
4134
4368
|
},
|
|
4369
|
+
borderRadius: "rounded-md",
|
|
4370
|
+
border: { widthClass: "border" },
|
|
4135
4371
|
effects: { hover: [{
|
|
4136
4372
|
effectId: "background-on-hover",
|
|
4137
4373
|
options: { colorToken: "muted" }
|
|
@@ -4142,8 +4378,10 @@ const ornateRitual = defineButtonPersonality({
|
|
|
4142
4378
|
name: "Ghost",
|
|
4143
4379
|
enabled: true,
|
|
4144
4380
|
priority: 3,
|
|
4145
|
-
background: {
|
|
4146
|
-
|
|
4381
|
+
background: {
|
|
4382
|
+
type: "surface",
|
|
4383
|
+
role: "link"
|
|
4384
|
+
},
|
|
4147
4385
|
borderRadius: "rounded-none",
|
|
4148
4386
|
sizes: {
|
|
4149
4387
|
sm: {
|
|
@@ -4225,14 +4463,10 @@ const pebble = defineButtonPersonality({
|
|
|
4225
4463
|
type: "solid",
|
|
4226
4464
|
colorToken: "primary"
|
|
4227
4465
|
},
|
|
4228
|
-
textColorToken: "primaryForeground",
|
|
4229
4466
|
borderRadius: "rounded-full",
|
|
4230
4467
|
effects: { hover: [{
|
|
4231
|
-
effectId: "background
|
|
4232
|
-
options: {
|
|
4233
|
-
colorToken: "primary",
|
|
4234
|
-
opacity: 88
|
|
4235
|
-
}
|
|
4468
|
+
effectId: "darken-background",
|
|
4469
|
+
options: { amount: 100 }
|
|
4236
4470
|
}] }
|
|
4237
4471
|
},
|
|
4238
4472
|
{
|
|
@@ -4240,13 +4474,12 @@ const pebble = defineButtonPersonality({
|
|
|
4240
4474
|
name: "Secondary",
|
|
4241
4475
|
enabled: true,
|
|
4242
4476
|
priority: 2,
|
|
4243
|
-
background: {
|
|
4244
|
-
|
|
4245
|
-
|
|
4246
|
-
border: {
|
|
4247
|
-
widthClass: "border-2",
|
|
4248
|
-
colorToken: "accent"
|
|
4477
|
+
background: {
|
|
4478
|
+
type: "surface",
|
|
4479
|
+
role: "link"
|
|
4249
4480
|
},
|
|
4481
|
+
borderRadius: "rounded-full",
|
|
4482
|
+
border: { widthClass: "border-2" },
|
|
4250
4483
|
effects: { hover: [{
|
|
4251
4484
|
effectId: "background-on-hover",
|
|
4252
4485
|
options: { colorToken: "accent" }
|
|
@@ -4257,13 +4490,12 @@ const pebble = defineButtonPersonality({
|
|
|
4257
4490
|
name: "Outline",
|
|
4258
4491
|
enabled: true,
|
|
4259
4492
|
priority: 3,
|
|
4260
|
-
background: {
|
|
4261
|
-
|
|
4262
|
-
|
|
4263
|
-
border: {
|
|
4264
|
-
widthClass: "border",
|
|
4265
|
-
colorToken: "border"
|
|
4493
|
+
background: {
|
|
4494
|
+
type: "surface",
|
|
4495
|
+
role: "link"
|
|
4266
4496
|
},
|
|
4497
|
+
borderRadius: "rounded-full",
|
|
4498
|
+
border: { widthClass: "border" },
|
|
4267
4499
|
effects: { hover: [{
|
|
4268
4500
|
effectId: "background-on-hover",
|
|
4269
4501
|
options: { colorToken: "surface" }
|
|
@@ -4274,8 +4506,10 @@ const pebble = defineButtonPersonality({
|
|
|
4274
4506
|
name: "Ghost",
|
|
4275
4507
|
enabled: true,
|
|
4276
4508
|
priority: 3,
|
|
4277
|
-
background: {
|
|
4278
|
-
|
|
4509
|
+
background: {
|
|
4510
|
+
type: "surface",
|
|
4511
|
+
role: "link"
|
|
4512
|
+
},
|
|
4279
4513
|
borderRadius: "rounded-full",
|
|
4280
4514
|
sizes: {
|
|
4281
4515
|
sm: {
|
|
@@ -4291,11 +4525,7 @@ const pebble = defineButtonPersonality({
|
|
|
4291
4525
|
padding: "0.75rem 1.5rem",
|
|
4292
4526
|
fontSize: "text-xl"
|
|
4293
4527
|
}
|
|
4294
|
-
}
|
|
4295
|
-
effects: { hover: [{
|
|
4296
|
-
effectId: "opacity-reduce",
|
|
4297
|
-
options: { reduction: 30 }
|
|
4298
|
-
}] }
|
|
4528
|
+
}
|
|
4299
4529
|
}
|
|
4300
4530
|
]
|
|
4301
4531
|
}
|
|
@@ -4357,15 +4587,11 @@ const quietArrow = defineButtonPersonality({
|
|
|
4357
4587
|
type: "solid",
|
|
4358
4588
|
colorToken: "primary"
|
|
4359
4589
|
},
|
|
4360
|
-
textColorToken: "primaryForeground",
|
|
4361
4590
|
borderRadius: "rounded-xl",
|
|
4362
4591
|
affordance: { iconId: "ArrowRight" },
|
|
4363
4592
|
effects: { hover: [{
|
|
4364
|
-
effectId: "background
|
|
4365
|
-
options: {
|
|
4366
|
-
colorToken: "primary",
|
|
4367
|
-
opacity: 90
|
|
4368
|
-
}
|
|
4593
|
+
effectId: "darken-background",
|
|
4594
|
+
options: { amount: 100 }
|
|
4369
4595
|
}] }
|
|
4370
4596
|
},
|
|
4371
4597
|
{
|
|
@@ -4373,13 +4599,12 @@ const quietArrow = defineButtonPersonality({
|
|
|
4373
4599
|
name: "Secondary",
|
|
4374
4600
|
enabled: true,
|
|
4375
4601
|
priority: 2,
|
|
4376
|
-
background: {
|
|
4377
|
-
|
|
4378
|
-
|
|
4379
|
-
border: {
|
|
4380
|
-
widthClass: "border",
|
|
4381
|
-
colorToken: "primary"
|
|
4602
|
+
background: {
|
|
4603
|
+
type: "surface",
|
|
4604
|
+
role: "link"
|
|
4382
4605
|
},
|
|
4606
|
+
borderRadius: "rounded-xl",
|
|
4607
|
+
border: { widthClass: "border" },
|
|
4383
4608
|
affordance: { iconId: "ArrowRight" },
|
|
4384
4609
|
effects: { hover: [{
|
|
4385
4610
|
effectId: "background-on-hover",
|
|
@@ -4391,21 +4616,22 @@ const quietArrow = defineButtonPersonality({
|
|
|
4391
4616
|
name: "Outline",
|
|
4392
4617
|
enabled: true,
|
|
4393
4618
|
priority: 3,
|
|
4394
|
-
background: {
|
|
4395
|
-
|
|
4619
|
+
background: {
|
|
4620
|
+
type: "surface",
|
|
4621
|
+
role: "link"
|
|
4622
|
+
},
|
|
4396
4623
|
borderRadius: "rounded-xl",
|
|
4397
|
-
border: {
|
|
4398
|
-
widthClass: "border",
|
|
4399
|
-
colorToken: "primary"
|
|
4400
|
-
}
|
|
4624
|
+
border: { widthClass: "border" }
|
|
4401
4625
|
},
|
|
4402
4626
|
{
|
|
4403
4627
|
id: "ghost",
|
|
4404
4628
|
name: "Ghost",
|
|
4405
4629
|
enabled: true,
|
|
4406
4630
|
priority: 3,
|
|
4407
|
-
background: {
|
|
4408
|
-
|
|
4631
|
+
background: {
|
|
4632
|
+
type: "surface",
|
|
4633
|
+
role: "link"
|
|
4634
|
+
},
|
|
4409
4635
|
borderRadius: "rounded-xl"
|
|
4410
4636
|
}
|
|
4411
4637
|
]
|
|
@@ -4469,7 +4695,6 @@ const showtimePill = defineButtonPersonality({
|
|
|
4469
4695
|
type: "solid",
|
|
4470
4696
|
colorToken: "primary"
|
|
4471
4697
|
},
|
|
4472
|
-
textColorToken: "background",
|
|
4473
4698
|
borderRadius: "rounded-full",
|
|
4474
4699
|
effects: { hover: [{ effectId: "pop" }] }
|
|
4475
4700
|
},
|
|
@@ -4478,13 +4703,12 @@ const showtimePill = defineButtonPersonality({
|
|
|
4478
4703
|
name: "Secondary",
|
|
4479
4704
|
enabled: true,
|
|
4480
4705
|
priority: 2,
|
|
4481
|
-
background: {
|
|
4482
|
-
|
|
4483
|
-
|
|
4484
|
-
border: {
|
|
4485
|
-
widthClass: "border-2",
|
|
4486
|
-
colorToken: "primary"
|
|
4706
|
+
background: {
|
|
4707
|
+
type: "surface",
|
|
4708
|
+
role: "link"
|
|
4487
4709
|
},
|
|
4710
|
+
borderRadius: "rounded-full",
|
|
4711
|
+
border: { widthClass: "border-2" },
|
|
4488
4712
|
effects: { hover: [{ effectId: "pop" }] }
|
|
4489
4713
|
},
|
|
4490
4714
|
{
|
|
@@ -4496,7 +4720,6 @@ const showtimePill = defineButtonPersonality({
|
|
|
4496
4720
|
type: "solid",
|
|
4497
4721
|
colorToken: "secondary"
|
|
4498
4722
|
},
|
|
4499
|
-
textColorToken: "primary",
|
|
4500
4723
|
borderRadius: "rounded-full",
|
|
4501
4724
|
effects: { hover: [{ effectId: "pop" }] }
|
|
4502
4725
|
},
|
|
@@ -4509,12 +4732,8 @@ const showtimePill = defineButtonPersonality({
|
|
|
4509
4732
|
type: "solid",
|
|
4510
4733
|
colorToken: "background"
|
|
4511
4734
|
},
|
|
4512
|
-
textColorToken: "primary",
|
|
4513
4735
|
borderRadius: "rounded-full",
|
|
4514
|
-
border: {
|
|
4515
|
-
widthClass: "border-2",
|
|
4516
|
-
colorToken: "primary"
|
|
4517
|
-
},
|
|
4736
|
+
border: { widthClass: "border-2" },
|
|
4518
4737
|
effects: { hover: [{
|
|
4519
4738
|
effectId: "background-on-hover",
|
|
4520
4739
|
options: { colorToken: "surface" }
|
|
@@ -4525,13 +4744,12 @@ const showtimePill = defineButtonPersonality({
|
|
|
4525
4744
|
name: "Outline",
|
|
4526
4745
|
enabled: true,
|
|
4527
4746
|
priority: 3,
|
|
4528
|
-
background: {
|
|
4529
|
-
|
|
4530
|
-
|
|
4531
|
-
border: {
|
|
4532
|
-
widthClass: "border-2",
|
|
4533
|
-
colorToken: "primary"
|
|
4747
|
+
background: {
|
|
4748
|
+
type: "surface",
|
|
4749
|
+
role: "link"
|
|
4534
4750
|
},
|
|
4751
|
+
borderRadius: "rounded-full",
|
|
4752
|
+
border: { widthClass: "border-2" },
|
|
4535
4753
|
effects: { hover: [{
|
|
4536
4754
|
effectId: "background-on-hover",
|
|
4537
4755
|
options: { colorToken: "background" }
|
|
@@ -4542,8 +4760,10 @@ const showtimePill = defineButtonPersonality({
|
|
|
4542
4760
|
name: "Ghost",
|
|
4543
4761
|
enabled: true,
|
|
4544
4762
|
priority: 3,
|
|
4545
|
-
background: {
|
|
4546
|
-
|
|
4763
|
+
background: {
|
|
4764
|
+
type: "surface",
|
|
4765
|
+
role: "link"
|
|
4766
|
+
},
|
|
4547
4767
|
borderRadius: "rounded-full",
|
|
4548
4768
|
effects: { hover: [{
|
|
4549
4769
|
effectId: "background-on-hover",
|
|
@@ -4554,104 +4774,151 @@ const showtimePill = defineButtonPersonality({
|
|
|
4554
4774
|
}
|
|
4555
4775
|
});
|
|
4556
4776
|
//#endregion
|
|
4557
|
-
//#region ../theme-core/src/buttons/personalities/
|
|
4558
|
-
|
|
4559
|
-
|
|
4560
|
-
|
|
4561
|
-
|
|
4562
|
-
|
|
4563
|
-
|
|
4564
|
-
|
|
4565
|
-
|
|
4566
|
-
|
|
4567
|
-
|
|
4777
|
+
//#region ../theme-core/src/buttons/personalities/soft-pill.ts
|
|
4778
|
+
/**
|
|
4779
|
+
* Soft Pill — rounded-full pill buttons with a hover lift. The default for
|
|
4780
|
+
* Calm Studio and Modern Wellness; reads as quietly modern and welcoming.
|
|
4781
|
+
*/
|
|
4782
|
+
const softPill = defineButtonPersonality({
|
|
4783
|
+
id: "soft-pill",
|
|
4784
|
+
name: "Soft Pill",
|
|
4785
|
+
description: "Rounded pills with a gentle lift on hover. Quietly modern.",
|
|
4786
|
+
tags: {
|
|
4787
|
+
tone: "classic",
|
|
4788
|
+
energy: "calm",
|
|
4789
|
+
motion: "subtle",
|
|
4790
|
+
era: "organic"
|
|
4791
|
+
},
|
|
4792
|
+
buttonSystem: {
|
|
4793
|
+
global: {
|
|
4794
|
+
cornerStyle: "pill",
|
|
4795
|
+
shadow: "low",
|
|
4796
|
+
textTransform: "none",
|
|
4797
|
+
fontWeight: 500,
|
|
4798
|
+
borderWidth: 2,
|
|
4799
|
+
hoverTransform: "lift",
|
|
4800
|
+
hoverColor: "none"
|
|
4568
4801
|
},
|
|
4569
|
-
|
|
4570
|
-
|
|
4571
|
-
|
|
4572
|
-
|
|
4573
|
-
|
|
4574
|
-
|
|
4575
|
-
|
|
4576
|
-
|
|
4577
|
-
|
|
4802
|
+
variants: [
|
|
4803
|
+
{
|
|
4804
|
+
id: "primary",
|
|
4805
|
+
name: "Primary",
|
|
4806
|
+
enabled: true,
|
|
4807
|
+
priority: 1,
|
|
4808
|
+
background: {
|
|
4809
|
+
type: "solid",
|
|
4810
|
+
colorToken: "primary"
|
|
4811
|
+
},
|
|
4812
|
+
borderRadius: "rounded-full",
|
|
4813
|
+
shadow: {
|
|
4814
|
+
elevation: "low",
|
|
4815
|
+
softness: "soft",
|
|
4816
|
+
position: "bottom"
|
|
4817
|
+
},
|
|
4818
|
+
effects: {
|
|
4819
|
+
hover: [{
|
|
4820
|
+
effectId: "lift",
|
|
4821
|
+
options: { translateY: "-1px" }
|
|
4822
|
+
}],
|
|
4823
|
+
active: [{
|
|
4824
|
+
effectId: "scale-down",
|
|
4825
|
+
options: { scale: "0.98" }
|
|
4826
|
+
}]
|
|
4827
|
+
}
|
|
4578
4828
|
},
|
|
4579
|
-
|
|
4580
|
-
|
|
4581
|
-
|
|
4582
|
-
|
|
4583
|
-
|
|
4584
|
-
|
|
4585
|
-
|
|
4586
|
-
|
|
4587
|
-
colorToken: "primary"
|
|
4588
|
-
},
|
|
4589
|
-
textColorToken: "primaryForeground",
|
|
4590
|
-
borderRadius: "rounded-full",
|
|
4591
|
-
shadow: {
|
|
4592
|
-
elevation: "low",
|
|
4593
|
-
softness: "soft",
|
|
4594
|
-
position: "bottom"
|
|
4595
|
-
},
|
|
4596
|
-
effects: {
|
|
4597
|
-
hover: [{
|
|
4598
|
-
effectId: "lift",
|
|
4599
|
-
options: { translateY: "-1px" }
|
|
4600
|
-
}],
|
|
4601
|
-
active: [{
|
|
4602
|
-
effectId: "scale-down",
|
|
4603
|
-
options: { scale: "0.98" }
|
|
4604
|
-
}]
|
|
4605
|
-
}
|
|
4829
|
+
{
|
|
4830
|
+
id: "secondary",
|
|
4831
|
+
name: "Secondary",
|
|
4832
|
+
enabled: true,
|
|
4833
|
+
priority: 2,
|
|
4834
|
+
background: {
|
|
4835
|
+
type: "surface",
|
|
4836
|
+
role: "link"
|
|
4606
4837
|
},
|
|
4607
|
-
|
|
4608
|
-
|
|
4609
|
-
|
|
4610
|
-
|
|
4611
|
-
|
|
4612
|
-
|
|
4613
|
-
|
|
4614
|
-
|
|
4615
|
-
|
|
4616
|
-
|
|
4617
|
-
|
|
4618
|
-
|
|
4619
|
-
|
|
4620
|
-
|
|
4621
|
-
|
|
4622
|
-
}] }
|
|
4838
|
+
borderRadius: "rounded-full",
|
|
4839
|
+
border: { widthClass: "border-2" },
|
|
4840
|
+
effects: { hover: [{
|
|
4841
|
+
effectId: "background-on-hover",
|
|
4842
|
+
options: { colorToken: "surface" }
|
|
4843
|
+
}] }
|
|
4844
|
+
},
|
|
4845
|
+
{
|
|
4846
|
+
id: "outline",
|
|
4847
|
+
name: "Outline",
|
|
4848
|
+
enabled: true,
|
|
4849
|
+
priority: 3,
|
|
4850
|
+
background: {
|
|
4851
|
+
type: "surface",
|
|
4852
|
+
role: "link"
|
|
4623
4853
|
},
|
|
4624
|
-
|
|
4625
|
-
|
|
4626
|
-
|
|
4627
|
-
|
|
4628
|
-
|
|
4629
|
-
|
|
4630
|
-
|
|
4631
|
-
|
|
4632
|
-
|
|
4633
|
-
|
|
4634
|
-
|
|
4635
|
-
|
|
4636
|
-
|
|
4637
|
-
|
|
4638
|
-
|
|
4639
|
-
}] }
|
|
4854
|
+
borderRadius: "rounded-full",
|
|
4855
|
+
border: { widthClass: "border" },
|
|
4856
|
+
effects: { hover: [{
|
|
4857
|
+
effectId: "background-on-hover",
|
|
4858
|
+
options: { colorToken: "surface" }
|
|
4859
|
+
}] }
|
|
4860
|
+
},
|
|
4861
|
+
{
|
|
4862
|
+
id: "ghost",
|
|
4863
|
+
name: "Ghost",
|
|
4864
|
+
enabled: true,
|
|
4865
|
+
priority: 3,
|
|
4866
|
+
background: {
|
|
4867
|
+
type: "surface",
|
|
4868
|
+
role: "link"
|
|
4640
4869
|
},
|
|
4641
|
-
|
|
4642
|
-
|
|
4643
|
-
|
|
4644
|
-
|
|
4645
|
-
|
|
4646
|
-
|
|
4647
|
-
|
|
4648
|
-
|
|
4649
|
-
|
|
4650
|
-
|
|
4651
|
-
|
|
4652
|
-
|
|
4653
|
-
|
|
4654
|
-
|
|
4870
|
+
borderRadius: "rounded-full",
|
|
4871
|
+
effects: { hover: [{
|
|
4872
|
+
effectId: "background-on-hover",
|
|
4873
|
+
options: { colorToken: "surface" }
|
|
4874
|
+
}] }
|
|
4875
|
+
}
|
|
4876
|
+
]
|
|
4877
|
+
}
|
|
4878
|
+
});
|
|
4879
|
+
//#endregion
|
|
4880
|
+
//#region ../theme-core/src/buttons/personalities/two-tone-pill.ts
|
|
4881
|
+
const solidSecondary = {
|
|
4882
|
+
id: "secondary",
|
|
4883
|
+
name: "Secondary",
|
|
4884
|
+
enabled: true,
|
|
4885
|
+
priority: 2,
|
|
4886
|
+
background: {
|
|
4887
|
+
type: "solid",
|
|
4888
|
+
colorToken: unsafeAsOpaqueButtonColourToken("secondary")
|
|
4889
|
+
},
|
|
4890
|
+
borderRadius: "rounded-full",
|
|
4891
|
+
shadow: {
|
|
4892
|
+
elevation: "none",
|
|
4893
|
+
softness: null,
|
|
4894
|
+
position: "bottom"
|
|
4895
|
+
},
|
|
4896
|
+
effects: {
|
|
4897
|
+
hover: [{
|
|
4898
|
+
effectId: "background-on-hover-alpha",
|
|
4899
|
+
options: {
|
|
4900
|
+
colorToken: "secondary",
|
|
4901
|
+
opacity: 88
|
|
4902
|
+
}
|
|
4903
|
+
}],
|
|
4904
|
+
active: [{
|
|
4905
|
+
effectId: "scale-down",
|
|
4906
|
+
options: { scale: "0.98" }
|
|
4907
|
+
}]
|
|
4908
|
+
}
|
|
4909
|
+
};
|
|
4910
|
+
//#endregion
|
|
4911
|
+
//#region ../theme-core/src/buttons/personalities/index.ts
|
|
4912
|
+
const buttonPersonalities = [
|
|
4913
|
+
softPill,
|
|
4914
|
+
defineButtonPersonality({
|
|
4915
|
+
id: "two-tone-pill",
|
|
4916
|
+
name: "Two-tone Pill",
|
|
4917
|
+
description: "Rounded pills with distinct solid primary and secondary brand colours.",
|
|
4918
|
+
tags: softPill.tags,
|
|
4919
|
+
buttonSystem: {
|
|
4920
|
+
...softPill.buttonSystem,
|
|
4921
|
+
variants: softPill.buttonSystem.variants.map((variant) => variant.id === "secondary" ? solidSecondary : variant)
|
|
4655
4922
|
}
|
|
4656
4923
|
}),
|
|
4657
4924
|
earthPill,
|
|
@@ -4667,6 +4934,27 @@ const buttonPersonalities = [
|
|
|
4667
4934
|
quietArrow
|
|
4668
4935
|
];
|
|
4669
4936
|
new Map(buttonPersonalities.map((p) => [p.id, p]));
|
|
4937
|
+
buttonPersonalities.map((personality) => ({
|
|
4938
|
+
id: personality.id,
|
|
4939
|
+
name: personality.name,
|
|
4940
|
+
description: personality.description,
|
|
4941
|
+
category: presetCategory(personality),
|
|
4942
|
+
buttonSystem: personality.buttonSystem,
|
|
4943
|
+
compatibility: {
|
|
4944
|
+
...personality.tags.tone ? { tones: [personality.tags.tone] } : {},
|
|
4945
|
+
...personality.tags.energy ? { energies: [personality.tags.energy] } : {}
|
|
4946
|
+
}
|
|
4947
|
+
}));
|
|
4948
|
+
function presetCategory(personality) {
|
|
4949
|
+
switch (personality.tags.era) {
|
|
4950
|
+
case "retro": return "retro";
|
|
4951
|
+
case "editorial": return "minimal";
|
|
4952
|
+
case "organic": return "artistic";
|
|
4953
|
+
case "modern": return personality.tags.tone === "bold" ? "modern" : "technical";
|
|
4954
|
+
case "technical": return "technical";
|
|
4955
|
+
case void 0: return "modern";
|
|
4956
|
+
}
|
|
4957
|
+
}
|
|
4670
4958
|
//#endregion
|
|
4671
4959
|
//#region ../theme-core/src/cards/types.ts
|
|
4672
4960
|
const cardVariantRoleValues = ["default", "alternative"];
|
|
@@ -6110,6 +6398,7 @@ const navFontWeight = z$1.enum([
|
|
|
6110
6398
|
"bold"
|
|
6111
6399
|
]);
|
|
6112
6400
|
const headerMaxWidth = z$1.enum(["container", "full"]);
|
|
6401
|
+
const headerBarFrame = z$1.enum(["full-bleed", "inset-shell"]);
|
|
6113
6402
|
const headerContainerSchema = z$1.object({
|
|
6114
6403
|
rounded: z$1.enum([
|
|
6115
6404
|
"none",
|
|
@@ -6254,6 +6543,7 @@ const headerSchema = z$1.object({
|
|
|
6254
6543
|
positioning: headerPositioning,
|
|
6255
6544
|
shrinkOnScroll: z$1.boolean(),
|
|
6256
6545
|
maxWidth: headerMaxWidth,
|
|
6546
|
+
barFrame: headerBarFrame.optional(),
|
|
6257
6547
|
logoOverride: mediaSchema$1.nullable().optional(),
|
|
6258
6548
|
background: headerBackgroundSchema.default({
|
|
6259
6549
|
type: "color",
|
|
@@ -6263,6 +6553,7 @@ const headerSchema = z$1.object({
|
|
|
6263
6553
|
navStyle: headerNavStyle,
|
|
6264
6554
|
navColor: themeColorTokenSchema.nullable().optional(),
|
|
6265
6555
|
navWeight: navFontWeight.default("medium"),
|
|
6556
|
+
navFontRole: z$1.enum(["body", "heading"]).optional(),
|
|
6266
6557
|
navTypography: z$1.enum(["body", "heading"]).optional(),
|
|
6267
6558
|
navTextSize: navLinkStyleSchema.shape.textSize,
|
|
6268
6559
|
navPlacement: z$1.enum(["end", "center"]).optional(),
|
|
@@ -6278,7 +6569,21 @@ const headerSchema = z$1.object({
|
|
|
6278
6569
|
ctaTreatment: headerCtaTreatmentSchema.optional(),
|
|
6279
6570
|
ctaVariant: z$1.string().min(1).optional(),
|
|
6280
6571
|
dropdownStyle: dropdownStyleSchema
|
|
6281
|
-
});
|
|
6572
|
+
}).transform(normaliseHeaderNavFontRole);
|
|
6573
|
+
/**
|
|
6574
|
+
* Normalises the legacy `navTypography` font-role alias into the canonical
|
|
6575
|
+
* `navFontRole` field so persisted themes migrate at the parse boundary without
|
|
6576
|
+
* a data migration. `navFontRole` always wins when both are present; the legacy
|
|
6577
|
+
* field is dropped so we never carry a dual write forward.
|
|
6578
|
+
*/
|
|
6579
|
+
function normaliseHeaderNavFontRole(header) {
|
|
6580
|
+
if (header.navTypography === void 0) return header;
|
|
6581
|
+
const { navTypography, ...rest } = header;
|
|
6582
|
+
return header.navFontRole === void 0 ? {
|
|
6583
|
+
...rest,
|
|
6584
|
+
navFontRole: navTypography
|
|
6585
|
+
} : rest;
|
|
6586
|
+
}
|
|
6282
6587
|
const footerVariant = z$1.enum([
|
|
6283
6588
|
"simple",
|
|
6284
6589
|
"columns",
|
|
@@ -7911,45 +8216,253 @@ const originalJoyCardSystem = { variants: [{
|
|
|
7911
8216
|
type: "solid",
|
|
7912
8217
|
colorToken: "surface"
|
|
7913
8218
|
},
|
|
7914
|
-
foregroundToken: "text",
|
|
7915
|
-
spacing: "comfortable",
|
|
7916
|
-
corners: "rounded",
|
|
7917
|
-
shadow: {
|
|
7918
|
-
elevation: "none",
|
|
7919
|
-
softness: null,
|
|
7920
|
-
position: "bottom"
|
|
7921
|
-
}
|
|
7922
|
-
}, {
|
|
7923
|
-
id: "alternative",
|
|
7924
|
-
name: "Statement",
|
|
7925
|
-
enabled: true,
|
|
7926
|
-
priority: 2,
|
|
7927
|
-
background: {
|
|
7928
|
-
type: "solid",
|
|
7929
|
-
colorToken: "primary"
|
|
8219
|
+
foregroundToken: "text",
|
|
8220
|
+
spacing: "comfortable",
|
|
8221
|
+
corners: "rounded",
|
|
8222
|
+
shadow: {
|
|
8223
|
+
elevation: "none",
|
|
8224
|
+
softness: null,
|
|
8225
|
+
position: "bottom"
|
|
8226
|
+
}
|
|
8227
|
+
}, {
|
|
8228
|
+
id: "alternative",
|
|
8229
|
+
name: "Statement",
|
|
8230
|
+
enabled: true,
|
|
8231
|
+
priority: 2,
|
|
8232
|
+
background: {
|
|
8233
|
+
type: "solid",
|
|
8234
|
+
colorToken: "primary"
|
|
8235
|
+
},
|
|
8236
|
+
foregroundToken: "primaryForeground",
|
|
8237
|
+
spacing: "comfortable",
|
|
8238
|
+
corners: "rounded",
|
|
8239
|
+
shadow: {
|
|
8240
|
+
elevation: "none",
|
|
8241
|
+
softness: null,
|
|
8242
|
+
position: "bottom"
|
|
8243
|
+
}
|
|
8244
|
+
}] };
|
|
8245
|
+
//#endregion
|
|
8246
|
+
//#region ../theme-core/src/site-styles/testimonialQuotePresets.ts
|
|
8247
|
+
/**
|
|
8248
|
+
* Reusable testimonial quote-mark treatments for curated site styles.
|
|
8249
|
+
*
|
|
8250
|
+
* The quote mark is brand identity the site style owns (analogous to the FAQ
|
|
8251
|
+
* accordion icon); every curated style declares one. `style` is the coarse
|
|
8252
|
+
* selector and the resolver in blocks/vars/testimonials.ts fills in the rest.
|
|
8253
|
+
*/
|
|
8254
|
+
/** Large display quotation mark in the heading font. Editorial / calm styles. */
|
|
8255
|
+
const serifDisplayQuote = { style: "serif-display" };
|
|
8256
|
+
/** Punchy quotation mark in the secondary accent colour. Bold / accent styles. */
|
|
8257
|
+
const accentGlyphQuote = { style: "accent-glyph" };
|
|
8258
|
+
/**
|
|
8259
|
+
* Curated library of gradient presets.
|
|
8260
|
+
* All gradients use theme color tokens, so they adapt to the site's palette.
|
|
8261
|
+
*/
|
|
8262
|
+
const GRADIENT_PRESETS = [
|
|
8263
|
+
{
|
|
8264
|
+
id: "primary-secondary",
|
|
8265
|
+
name: "Primary to Secondary",
|
|
8266
|
+
description: "Blend your primary and secondary brand colors",
|
|
8267
|
+
type: "linear",
|
|
8268
|
+
angle: 135,
|
|
8269
|
+
stops: [{
|
|
8270
|
+
color: "primary-500",
|
|
8271
|
+
position: 0
|
|
8272
|
+
}, {
|
|
8273
|
+
color: "secondary-500",
|
|
8274
|
+
position: 100
|
|
8275
|
+
}]
|
|
8276
|
+
},
|
|
8277
|
+
{
|
|
8278
|
+
id: "primary-accent",
|
|
8279
|
+
name: "Primary to Accent",
|
|
8280
|
+
description: "Energetic gradient from primary to accent",
|
|
8281
|
+
type: "linear",
|
|
8282
|
+
angle: 135,
|
|
8283
|
+
stops: [{
|
|
8284
|
+
color: "primary-500",
|
|
8285
|
+
position: 0
|
|
8286
|
+
}, {
|
|
8287
|
+
color: "accent-500",
|
|
8288
|
+
position: 100
|
|
8289
|
+
}]
|
|
8290
|
+
},
|
|
8291
|
+
{
|
|
8292
|
+
id: "secondary-accent",
|
|
8293
|
+
name: "Secondary to Accent",
|
|
8294
|
+
description: "Vibrant secondary to accent blend",
|
|
8295
|
+
type: "linear",
|
|
8296
|
+
angle: 135,
|
|
8297
|
+
stops: [{
|
|
8298
|
+
color: "secondary-500",
|
|
8299
|
+
position: 0
|
|
8300
|
+
}, {
|
|
8301
|
+
color: "accent-500",
|
|
8302
|
+
position: 100
|
|
8303
|
+
}]
|
|
8304
|
+
},
|
|
8305
|
+
{
|
|
8306
|
+
id: "primary-light-dark",
|
|
8307
|
+
name: "Primary Light to Dark",
|
|
8308
|
+
description: "Subtle primary color fade",
|
|
8309
|
+
type: "linear",
|
|
8310
|
+
angle: 180,
|
|
8311
|
+
stops: [{
|
|
8312
|
+
color: "primary-500",
|
|
8313
|
+
position: 0
|
|
8314
|
+
}, {
|
|
8315
|
+
color: "primary-900",
|
|
8316
|
+
position: 100
|
|
8317
|
+
}]
|
|
8318
|
+
},
|
|
8319
|
+
{
|
|
8320
|
+
id: "primary-dark-light",
|
|
8321
|
+
name: "Primary Dark to Light",
|
|
8322
|
+
description: "Reverse primary fade",
|
|
8323
|
+
type: "linear",
|
|
8324
|
+
angle: 180,
|
|
8325
|
+
stops: [{
|
|
8326
|
+
color: "primary-900",
|
|
8327
|
+
position: 0
|
|
8328
|
+
}, {
|
|
8329
|
+
color: "primary-50",
|
|
8330
|
+
position: 100
|
|
8331
|
+
}]
|
|
8332
|
+
},
|
|
8333
|
+
{
|
|
8334
|
+
id: "secondary-light-dark",
|
|
8335
|
+
name: "Secondary Light to Dark",
|
|
8336
|
+
description: "Subtle secondary color fade",
|
|
8337
|
+
type: "linear",
|
|
8338
|
+
angle: 180,
|
|
8339
|
+
stops: [{
|
|
8340
|
+
color: "secondary-500",
|
|
8341
|
+
position: 0
|
|
8342
|
+
}, {
|
|
8343
|
+
color: "secondary-900",
|
|
8344
|
+
position: 100
|
|
8345
|
+
}]
|
|
8346
|
+
},
|
|
8347
|
+
{
|
|
8348
|
+
id: "accent-light-dark",
|
|
8349
|
+
name: "Accent Light to Dark",
|
|
8350
|
+
description: "Accent color depth fade",
|
|
8351
|
+
type: "linear",
|
|
8352
|
+
angle: 180,
|
|
8353
|
+
stops: [{
|
|
8354
|
+
color: "accent-500",
|
|
8355
|
+
position: 0
|
|
8356
|
+
}, {
|
|
8357
|
+
color: "accent-900",
|
|
8358
|
+
position: 100
|
|
8359
|
+
}]
|
|
8360
|
+
},
|
|
8361
|
+
{
|
|
8362
|
+
id: "background-surface",
|
|
8363
|
+
name: "Background to Surface",
|
|
8364
|
+
description: "Subtle depth using base colors",
|
|
8365
|
+
type: "linear",
|
|
8366
|
+
angle: 180,
|
|
8367
|
+
stops: [{
|
|
8368
|
+
color: "background",
|
|
8369
|
+
position: 0
|
|
8370
|
+
}, {
|
|
8371
|
+
color: "surface",
|
|
8372
|
+
position: 100
|
|
8373
|
+
}]
|
|
8374
|
+
},
|
|
8375
|
+
{
|
|
8376
|
+
id: "neutral-fade",
|
|
8377
|
+
name: "Neutral Gradient",
|
|
8378
|
+
description: "Elegant neutral color fade",
|
|
8379
|
+
type: "linear",
|
|
8380
|
+
angle: 180,
|
|
8381
|
+
stops: [{
|
|
8382
|
+
color: "neutral-900",
|
|
8383
|
+
position: 0
|
|
8384
|
+
}, {
|
|
8385
|
+
color: "neutral-50",
|
|
8386
|
+
position: 100
|
|
8387
|
+
}]
|
|
8388
|
+
},
|
|
8389
|
+
{
|
|
8390
|
+
id: "primary-glow",
|
|
8391
|
+
name: "Primary glow",
|
|
8392
|
+
description: "A soft top-centred glow using your primary palette",
|
|
8393
|
+
type: "radial",
|
|
8394
|
+
shape: "ellipse",
|
|
8395
|
+
position: "top center",
|
|
8396
|
+
stops: [{
|
|
8397
|
+
color: "primary-900",
|
|
8398
|
+
position: 0
|
|
8399
|
+
}, {
|
|
8400
|
+
color: "primary-950",
|
|
8401
|
+
position: 100
|
|
8402
|
+
}],
|
|
8403
|
+
foreground: {
|
|
8404
|
+
textColor: "onPrimary900",
|
|
8405
|
+
headingColor: "onPrimary900",
|
|
8406
|
+
linkColor: "onPrimary900",
|
|
8407
|
+
supportingColor: "onPrimary900"
|
|
8408
|
+
}
|
|
8409
|
+
},
|
|
8410
|
+
{
|
|
8411
|
+
id: "accent-glow",
|
|
8412
|
+
name: "Accent glow",
|
|
8413
|
+
description: "A soft top-centred glow using your accent palette",
|
|
8414
|
+
type: "radial",
|
|
8415
|
+
shape: "ellipse",
|
|
8416
|
+
position: "top center",
|
|
8417
|
+
stops: [{
|
|
8418
|
+
color: "accent-900",
|
|
8419
|
+
position: 0
|
|
8420
|
+
}, {
|
|
8421
|
+
color: "accent-950",
|
|
8422
|
+
position: 100
|
|
8423
|
+
}],
|
|
8424
|
+
foreground: {
|
|
8425
|
+
textColor: "onAccent900",
|
|
8426
|
+
headingColor: "onAccent900",
|
|
8427
|
+
linkColor: "onAccent900",
|
|
8428
|
+
supportingColor: "onAccent900"
|
|
8429
|
+
}
|
|
7930
8430
|
},
|
|
7931
|
-
|
|
7932
|
-
|
|
7933
|
-
|
|
7934
|
-
|
|
7935
|
-
|
|
7936
|
-
|
|
7937
|
-
|
|
8431
|
+
{
|
|
8432
|
+
id: "primary-secondary-accent",
|
|
8433
|
+
name: "Brand Trio",
|
|
8434
|
+
description: "All three brand colors in harmony",
|
|
8435
|
+
type: "linear",
|
|
8436
|
+
angle: 135,
|
|
8437
|
+
stops: [
|
|
8438
|
+
{
|
|
8439
|
+
color: "primary-500",
|
|
8440
|
+
position: 0
|
|
8441
|
+
},
|
|
8442
|
+
{
|
|
8443
|
+
color: "secondary-500",
|
|
8444
|
+
position: 50
|
|
8445
|
+
},
|
|
8446
|
+
{
|
|
8447
|
+
color: "accent-500",
|
|
8448
|
+
position: 100
|
|
8449
|
+
}
|
|
8450
|
+
]
|
|
7938
8451
|
}
|
|
7939
|
-
|
|
7940
|
-
|
|
7941
|
-
|
|
7942
|
-
|
|
7943
|
-
|
|
7944
|
-
|
|
7945
|
-
|
|
7946
|
-
|
|
7947
|
-
|
|
7948
|
-
|
|
7949
|
-
|
|
7950
|
-
|
|
7951
|
-
|
|
7952
|
-
|
|
8452
|
+
].map((preset) => ({
|
|
8453
|
+
...preset,
|
|
8454
|
+
id: preset.id,
|
|
8455
|
+
stops: preset.stops
|
|
8456
|
+
}));
|
|
8457
|
+
const GRADIENT_PRESET_IDS = GRADIENT_PRESETS.map((preset) => preset.id);
|
|
8458
|
+
const gradientPresetIdSet = new Set(GRADIENT_PRESET_IDS);
|
|
8459
|
+
Object.fromEntries(GRADIENT_PRESETS.map((preset) => [preset.id, preset]));
|
|
8460
|
+
function parseGradientPresetId(value) {
|
|
8461
|
+
if (typeof value !== "string") return null;
|
|
8462
|
+
const normalized = value.trim();
|
|
8463
|
+
if (!gradientPresetIdSet.has(normalized)) return null;
|
|
8464
|
+
return normalized;
|
|
8465
|
+
}
|
|
7953
8466
|
//#endregion
|
|
7954
8467
|
//#region ../theme-core/src/site-styles/headerLooks.ts
|
|
7955
8468
|
function asHeaderLookId(value) {
|
|
@@ -8084,7 +8597,7 @@ const overlayLogoAccommodations = [
|
|
|
8084
8597
|
* optional nested styling fields that would otherwise leak from another Look.
|
|
8085
8598
|
*/
|
|
8086
8599
|
function baseHeader(theme) {
|
|
8087
|
-
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;
|
|
8600
|
+
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;
|
|
8088
8601
|
return {
|
|
8089
8602
|
...header,
|
|
8090
8603
|
navContainer: {
|
|
@@ -8233,6 +8746,17 @@ const headerStyleCatalog = defineExactCatalog()([
|
|
|
8233
8746
|
navTypography: "brand-caps",
|
|
8234
8747
|
moods: ["expressive"]
|
|
8235
8748
|
},
|
|
8749
|
+
{
|
|
8750
|
+
id: asHeaderStyleId("brand-capsule"),
|
|
8751
|
+
label: "Brand Capsule",
|
|
8752
|
+
description: "Solid brand chrome designed as a floating capsule, with quiet-caps nav, a soft pill active state, and an inverted CTA pill.",
|
|
8753
|
+
supportedLayoutIds: supportedLayouts(["classic"]),
|
|
8754
|
+
navInteraction: "pill-background",
|
|
8755
|
+
surface: "brand-solid",
|
|
8756
|
+
defaultDepth: "shadow",
|
|
8757
|
+
navTypography: "quiet-caps",
|
|
8758
|
+
moods: ["expressive", "professional"]
|
|
8759
|
+
},
|
|
8236
8760
|
{
|
|
8237
8761
|
id: asHeaderStyleId("serif-line"),
|
|
8238
8762
|
label: "Serif Line",
|
|
@@ -8326,6 +8850,7 @@ const headerStyleCompatibilityOrder = /* @__PURE__ */ new Map([
|
|
|
8326
8850
|
"brand-bar",
|
|
8327
8851
|
"brand-underline",
|
|
8328
8852
|
"brand-pill",
|
|
8853
|
+
"brand-capsule",
|
|
8329
8854
|
"serif-line",
|
|
8330
8855
|
"flat-tabs"
|
|
8331
8856
|
])],
|
|
@@ -8363,6 +8888,11 @@ headerStyleRepairChain([
|
|
|
8363
8888
|
"brand-pill",
|
|
8364
8889
|
"brand-bar",
|
|
8365
8890
|
"minimal"
|
|
8891
|
+
]), headerStyleRepairChain([
|
|
8892
|
+
"brand-capsule",
|
|
8893
|
+
"brand-pill",
|
|
8894
|
+
"brand-bar",
|
|
8895
|
+
"minimal"
|
|
8366
8896
|
]), headerStyleRepairChain([
|
|
8367
8897
|
"pill-nav",
|
|
8368
8898
|
"soft-bar",
|
|
@@ -9976,6 +10506,19 @@ z$1.object({
|
|
|
9976
10506
|
}).strict();
|
|
9977
10507
|
//#endregion
|
|
9978
10508
|
//#region ../theme-core/src/site-styles/runtimeCompiler.ts
|
|
10509
|
+
function defineSectionForegroundRuntimeTokens(input) {
|
|
10510
|
+
return {
|
|
10511
|
+
textColor: requireThemeColorToken(input.textColor),
|
|
10512
|
+
headingColor: requireThemeColorToken(input.headingColor),
|
|
10513
|
+
linkColor: requireThemeColorToken(input.linkColor),
|
|
10514
|
+
supportingColor: requireThemeColorToken(input.supportingColor)
|
|
10515
|
+
};
|
|
10516
|
+
}
|
|
10517
|
+
function requireThemeColorToken(value) {
|
|
10518
|
+
const token = parseThemeColorToken(value);
|
|
10519
|
+
if (!token) throw new Error(`Invalid section foreground Theme color token: ${String(value)}`);
|
|
10520
|
+
return token;
|
|
10521
|
+
}
|
|
9979
10522
|
function defineDesignRuntimeRules(rules) {
|
|
9980
10523
|
return rules;
|
|
9981
10524
|
}
|
|
@@ -10246,24 +10789,24 @@ const kirtanOrnateDesignRuntimeRules = defineDesignRuntimeRules({
|
|
|
10246
10789
|
type: "color",
|
|
10247
10790
|
color: "muted"
|
|
10248
10791
|
},
|
|
10249
|
-
foreground: {
|
|
10792
|
+
foreground: defineSectionForegroundRuntimeTokens({
|
|
10250
10793
|
textColor: "text",
|
|
10251
10794
|
headingColor: "primary",
|
|
10252
10795
|
linkColor: "primary",
|
|
10253
10796
|
supportingColor: "text"
|
|
10254
|
-
}
|
|
10797
|
+
})
|
|
10255
10798
|
},
|
|
10256
10799
|
"brand-depth-band": {
|
|
10257
10800
|
background: {
|
|
10258
10801
|
type: "color",
|
|
10259
10802
|
color: "primary-800"
|
|
10260
10803
|
},
|
|
10261
|
-
foreground: {
|
|
10804
|
+
foreground: defineSectionForegroundRuntimeTokens({
|
|
10262
10805
|
textColor: "text",
|
|
10263
10806
|
headingColor: "primary",
|
|
10264
10807
|
linkColor: "primary",
|
|
10265
10808
|
supportingColor: "text"
|
|
10266
|
-
}
|
|
10809
|
+
})
|
|
10267
10810
|
},
|
|
10268
10811
|
"hero-image": {
|
|
10269
10812
|
background: {
|
|
@@ -10271,12 +10814,32 @@ const kirtanOrnateDesignRuntimeRules = defineDesignRuntimeRules({
|
|
|
10271
10814
|
opacity: 1,
|
|
10272
10815
|
position: "center center"
|
|
10273
10816
|
},
|
|
10274
|
-
foreground: {
|
|
10817
|
+
foreground: defineSectionForegroundRuntimeTokens({
|
|
10275
10818
|
textColor: "text",
|
|
10276
10819
|
headingColor: "primary",
|
|
10277
10820
|
linkColor: "primary",
|
|
10278
10821
|
supportingColor: "text"
|
|
10279
|
-
}
|
|
10822
|
+
})
|
|
10823
|
+
}
|
|
10824
|
+
}
|
|
10825
|
+
});
|
|
10826
|
+
const primaryGlowGradientPresetId = parseGradientPresetId("primary-glow");
|
|
10827
|
+
if (!primaryGlowGradientPresetId) throw new Error("Expected primary-glow in the Theme Core gradient catalog");
|
|
10828
|
+
const fulcrumDesignRuntimeRules = defineDesignRuntimeRules({
|
|
10829
|
+
...defaultDesignRuntimeRules,
|
|
10830
|
+
sectionSurfaces: {
|
|
10831
|
+
...defaultDesignRuntimeRules.sectionSurfaces,
|
|
10832
|
+
"accent-band": {
|
|
10833
|
+
background: {
|
|
10834
|
+
type: "gradient",
|
|
10835
|
+
gradientPresetId: primaryGlowGradientPresetId
|
|
10836
|
+
},
|
|
10837
|
+
foreground: defineSectionForegroundRuntimeTokens({
|
|
10838
|
+
textColor: "primaryForeground",
|
|
10839
|
+
headingColor: "primaryForeground",
|
|
10840
|
+
linkColor: "primaryForeground",
|
|
10841
|
+
supportingColor: "primaryForeground"
|
|
10842
|
+
})
|
|
10280
10843
|
}
|
|
10281
10844
|
}
|
|
10282
10845
|
});
|
|
@@ -10600,6 +11163,7 @@ const curatedSiteStyles = [
|
|
|
10600
11163
|
],
|
|
10601
11164
|
buttonPersonalityChoices: [
|
|
10602
11165
|
buttonChoice("soft-pill"),
|
|
11166
|
+
buttonChoice("two-tone-pill"),
|
|
10603
11167
|
buttonChoice("pebble"),
|
|
10604
11168
|
buttonChoice("editorial-link"),
|
|
10605
11169
|
buttonChoice("brushed-wash")
|
|
@@ -11663,6 +12227,8 @@ const curatedSiteStyles = [
|
|
|
11663
12227
|
},
|
|
11664
12228
|
compositionBudget: quietBudget,
|
|
11665
12229
|
typography: fulcrumTypography,
|
|
12230
|
+
designRuntimeRules: fulcrumDesignRuntimeRules,
|
|
12231
|
+
recommendedAppearancePresetIds: ["cta-accent-band"],
|
|
11666
12232
|
themeOverrides: {
|
|
11667
12233
|
shadow: { colorToken: "primary" },
|
|
11668
12234
|
accordions: {
|
|
@@ -11779,6 +12345,7 @@ const curatedSiteStyles = [
|
|
|
11779
12345
|
],
|
|
11780
12346
|
buttonPersonalityChoices: [
|
|
11781
12347
|
buttonChoice("quiet-arrow"),
|
|
12348
|
+
buttonChoice("two-tone-pill"),
|
|
11782
12349
|
buttonChoice("flat-ink"),
|
|
11783
12350
|
buttonChoice("editorial-link")
|
|
11784
12351
|
],
|
|
@@ -12284,19 +12851,29 @@ function isRecord$6(value) {
|
|
|
12284
12851
|
//#region ../core/src/booking-date-time.ts
|
|
12285
12852
|
const DEFAULT_LOCALE = "en-US";
|
|
12286
12853
|
const FALLBACK_TIMEZONE = "UTC";
|
|
12854
|
+
const DATE_TIME_FORMATTER_CACHE_LIMIT = 100;
|
|
12855
|
+
const dateTimeFormatterCache = /* @__PURE__ */ new Map();
|
|
12856
|
+
const timeZoneValidityCache = /* @__PURE__ */ new Map();
|
|
12287
12857
|
function isValidTimeZone(timeZone) {
|
|
12858
|
+
const cached = timeZoneValidityCache.get(timeZone);
|
|
12859
|
+
if (cached !== void 0) return cached;
|
|
12860
|
+
let isValid;
|
|
12288
12861
|
try {
|
|
12289
12862
|
new Intl.DateTimeFormat(DEFAULT_LOCALE, { timeZone }).format(/* @__PURE__ */ new Date());
|
|
12290
|
-
|
|
12863
|
+
isValid = true;
|
|
12291
12864
|
} catch {
|
|
12292
|
-
|
|
12865
|
+
isValid = false;
|
|
12293
12866
|
}
|
|
12867
|
+
if (timeZoneValidityCache.size >= DATE_TIME_FORMATTER_CACHE_LIMIT) timeZoneValidityCache.clear();
|
|
12868
|
+
timeZoneValidityCache.set(timeZone, isValid);
|
|
12869
|
+
return isValid;
|
|
12294
12870
|
}
|
|
12295
12871
|
function getSafeTimeZone(timeZone) {
|
|
12296
12872
|
const normalized = typeof timeZone === "string" ? timeZone.trim() : "";
|
|
12297
12873
|
return normalized.length > 0 && isValidTimeZone(normalized) ? normalized : FALLBACK_TIMEZONE;
|
|
12298
12874
|
}
|
|
12299
12875
|
function parseStrictBookingTimeZone(timeZone) {
|
|
12876
|
+
if (typeof timeZone !== "string") return null;
|
|
12300
12877
|
const normalized = timeZone.trim();
|
|
12301
12878
|
if (normalized.length === 0 || !isValidTimeZone(normalized)) return null;
|
|
12302
12879
|
return normalized;
|
|
@@ -12309,10 +12886,19 @@ function formatParseError(error) {
|
|
|
12309
12886
|
}
|
|
12310
12887
|
}
|
|
12311
12888
|
function formatToPartsLookup(date, locale, timeZone, format) {
|
|
12312
|
-
return new Map(
|
|
12889
|
+
return new Map(getCachedDateTimeFormatter(locale, timeZone, format).formatToParts(date).map((part) => [part.type, part.value]));
|
|
12890
|
+
}
|
|
12891
|
+
function getCachedDateTimeFormatter(locale, timeZone, format) {
|
|
12892
|
+
const key = `${locale}\u0000${timeZone}\u0000${JSON.stringify(Object.entries(format).sort(([left], [right]) => left.localeCompare(right)))}`;
|
|
12893
|
+
const cached = dateTimeFormatterCache.get(key);
|
|
12894
|
+
if (cached !== void 0) return cached;
|
|
12895
|
+
const formatter = new Intl.DateTimeFormat(locale, {
|
|
12313
12896
|
...format,
|
|
12314
12897
|
timeZone
|
|
12315
|
-
})
|
|
12898
|
+
});
|
|
12899
|
+
if (dateTimeFormatterCache.size >= DATE_TIME_FORMATTER_CACHE_LIMIT) dateTimeFormatterCache.clear();
|
|
12900
|
+
dateTimeFormatterCache.set(key, formatter);
|
|
12901
|
+
return formatter;
|
|
12316
12902
|
}
|
|
12317
12903
|
function getZonedDateTimeParts(date, timeZone) {
|
|
12318
12904
|
const parts = formatToPartsLookup(date, "en-GB", timeZone, {
|
|
@@ -12355,23 +12941,9 @@ function toUtcIsoDateTimeString(value) {
|
|
|
12355
12941
|
return parsed.value;
|
|
12356
12942
|
}
|
|
12357
12943
|
function parseScheduledBookingDateTime(input) {
|
|
12944
|
+
let startsAt;
|
|
12358
12945
|
try {
|
|
12359
|
-
|
|
12360
|
-
const timeZone = parseStrictBookingTimeZone(input.timeZone);
|
|
12361
|
-
if (timeZone === null) return {
|
|
12362
|
-
ok: false,
|
|
12363
|
-
field: "timeZone",
|
|
12364
|
-
reason: "invalid_time_zone",
|
|
12365
|
-
value: input.timeZone
|
|
12366
|
-
};
|
|
12367
|
-
return {
|
|
12368
|
-
ok: true,
|
|
12369
|
-
value: {
|
|
12370
|
-
startsAt,
|
|
12371
|
-
timeZone,
|
|
12372
|
-
locale: input.locale
|
|
12373
|
-
}
|
|
12374
|
-
};
|
|
12946
|
+
startsAt = toUtcIsoDateTimeString(input.startsAt);
|
|
12375
12947
|
} catch {
|
|
12376
12948
|
return {
|
|
12377
12949
|
ok: false,
|
|
@@ -12380,6 +12952,21 @@ function parseScheduledBookingDateTime(input) {
|
|
|
12380
12952
|
value: input.startsAt
|
|
12381
12953
|
};
|
|
12382
12954
|
}
|
|
12955
|
+
const timeZone = parseStrictBookingTimeZone(input.timeZone);
|
|
12956
|
+
if (timeZone === null) return {
|
|
12957
|
+
ok: false,
|
|
12958
|
+
field: "timeZone",
|
|
12959
|
+
reason: "invalid_time_zone",
|
|
12960
|
+
value: typeof input.timeZone === "string" ? input.timeZone : ""
|
|
12961
|
+
};
|
|
12962
|
+
return {
|
|
12963
|
+
ok: true,
|
|
12964
|
+
value: {
|
|
12965
|
+
startsAt,
|
|
12966
|
+
timeZone,
|
|
12967
|
+
locale: input.locale
|
|
12968
|
+
}
|
|
12969
|
+
};
|
|
12383
12970
|
}
|
|
12384
12971
|
function toScheduledBookingDateTime(input) {
|
|
12385
12972
|
const result = parseScheduledBookingDateTime(input);
|
|
@@ -12637,7 +13224,7 @@ const ALLOWED_TRANSFORM_IDS = [
|
|
|
12637
13224
|
"media.fromUrl",
|
|
12638
13225
|
"background.resolveStyle",
|
|
12639
13226
|
"background.resolveColorsStyle",
|
|
12640
|
-
"background.
|
|
13227
|
+
"background.resolveFrameClassName",
|
|
12641
13228
|
"background.resolveImageStyle",
|
|
12642
13229
|
"background.resolveImageClassName",
|
|
12643
13230
|
"background.resolveOverlayStyle",
|
|
@@ -13292,6 +13879,20 @@ const blockCategoryEnum$2 = z$1.enum([
|
|
|
13292
13879
|
"layout",
|
|
13293
13880
|
"interactive"
|
|
13294
13881
|
]);
|
|
13882
|
+
const blockContentSourceSchema = z$1.object({
|
|
13883
|
+
kind: z$1.enum([
|
|
13884
|
+
"inline",
|
|
13885
|
+
"entries",
|
|
13886
|
+
"mixed"
|
|
13887
|
+
]),
|
|
13888
|
+
contentType: z$1.string().min(1).optional()
|
|
13889
|
+
}).superRefine((value, ctx) => {
|
|
13890
|
+
if (value.kind === "inline" && value.contentType) ctx.addIssue({
|
|
13891
|
+
code: z$1.ZodIssueCode.custom,
|
|
13892
|
+
path: ["contentType"],
|
|
13893
|
+
message: "contentType is not allowed when contentSource.kind is \"inline\""
|
|
13894
|
+
});
|
|
13895
|
+
});
|
|
13295
13896
|
z$1.object({
|
|
13296
13897
|
name: z$1.string().min(1),
|
|
13297
13898
|
version: z$1.string().min(1),
|
|
@@ -13322,6 +13923,12 @@ z$1.object({
|
|
|
13322
13923
|
}).optional()).optional(),
|
|
13323
13924
|
category: blockCategoryEnum$2.optional(),
|
|
13324
13925
|
contentTypes: z$1.array(z$1.string()).optional(),
|
|
13926
|
+
/**
|
|
13927
|
+
* Explicit content-source classification (inline / entries / mixed). Optional at the
|
|
13928
|
+
* schema level for backward compatibility with SDK-defined custom blocks, but every
|
|
13929
|
+
* registered SYSTEM block must declare it (enforced by a registry-wide test).
|
|
13930
|
+
*/
|
|
13931
|
+
contentSource: blockContentSourceSchema.optional(),
|
|
13325
13932
|
tags: z$1.array(z$1.string()).optional(),
|
|
13326
13933
|
icon: z$1.string().optional()
|
|
13327
13934
|
});
|
|
@@ -14265,6 +14872,7 @@ function devValidate(node) {
|
|
|
14265
14872
|
}
|
|
14266
14873
|
//#endregion
|
|
14267
14874
|
//#region ../blocks/src/system/node/fragments/backgroundLayer.ts
|
|
14875
|
+
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";
|
|
14268
14876
|
/**
|
|
14269
14877
|
* Creates background layer nodes for rendering backgrounds from field data.
|
|
14270
14878
|
*
|
|
@@ -14330,6 +14938,34 @@ function backgroundLayer(path, options = {}) {
|
|
|
14330
14938
|
];
|
|
14331
14939
|
}
|
|
14332
14940
|
/**
|
|
14941
|
+
* Wrap decorative background layers in their own clipping frame.
|
|
14942
|
+
*
|
|
14943
|
+
* Foreground content remains outside this frame, so editor outlines, focus
|
|
14944
|
+
* rings, and floating controls are never clipped by a visual background.
|
|
14945
|
+
* Backgrounds that explicitly opt into overflow keep that behavior within
|
|
14946
|
+
* the decorative layer rather than changing the content root.
|
|
14947
|
+
*/
|
|
14948
|
+
function backgroundFrame(path, options = {}) {
|
|
14949
|
+
const { leadingNodes = [], ...layerOptions } = options;
|
|
14950
|
+
const framedLayerOptions = {
|
|
14951
|
+
...layerOptions,
|
|
14952
|
+
styleClassName: layerOptions.styleClassName ?? "background-style rb-absolute rb-inset-0 rb-z-0 rb-h-full rb-w-full rb-pointer-events-none",
|
|
14953
|
+
imageClassName: layerOptions.imageClassName ?? "rb-absolute rb-z-0",
|
|
14954
|
+
overlayClassName: layerOptions.overlayClassName ?? "background-overlay rb-absolute rb-inset-0 rb-z-0 rb-h-full rb-w-full rb-pointer-events-none"
|
|
14955
|
+
};
|
|
14956
|
+
return el("div", {
|
|
14957
|
+
className: { $bind: {
|
|
14958
|
+
from: path,
|
|
14959
|
+
transforms: [{
|
|
14960
|
+
id: "background.resolveFrameClassName",
|
|
14961
|
+
options: { baseClass: BACKGROUND_FRAME_BASE_CLASS }
|
|
14962
|
+
}],
|
|
14963
|
+
fallback: `${BACKGROUND_FRAME_BASE_CLASS} rb-overflow-hidden`
|
|
14964
|
+
} },
|
|
14965
|
+
style: { borderRadius: "inherit" }
|
|
14966
|
+
}, [...leadingNodes, ...backgroundLayer(path, framedLayerOptions)]);
|
|
14967
|
+
}
|
|
14968
|
+
/**
|
|
14333
14969
|
* Creates a media node for rendering background image/video media with conditional rendering.
|
|
14334
14970
|
*
|
|
14335
14971
|
* This helper creates a media element that:
|
|
@@ -14491,8 +15127,8 @@ function sectionContainer(children, opts) {
|
|
|
14491
15127
|
* - content
|
|
14492
15128
|
*/
|
|
14493
15129
|
function styledContainer(config) {
|
|
14494
|
-
const { children, rootType = "div", rootProps, bindFrom = "_containerStyles", baseClassName = "rb-relative rb-isolate rb-overflow-
|
|
14495
|
-
const
|
|
15130
|
+
const { children, rootType = "div", rootProps, bindFrom = "_containerStyles", baseClassName = "rb-relative rb-isolate rb-overflow-visible", imageClassName = "rb-absolute rb-z-0", constrainWidth = true } = config;
|
|
15131
|
+
const backgroundNode = backgroundFrame(`${bindFrom}.background`, { imageClassName });
|
|
14496
15132
|
const childrenArray = Array.isArray(children) ? children : [children];
|
|
14497
15133
|
const { className: _ignoredClassName, style: _ignoredStyle, ...safeRootProps } = rootProps ?? {};
|
|
14498
15134
|
return el(rootType, {
|
|
@@ -14515,7 +15151,7 @@ function styledContainer(config) {
|
|
|
14515
15151
|
}],
|
|
14516
15152
|
fallback: constrainWidth ? `${baseClassName} rb-container` : baseClassName
|
|
14517
15153
|
} }
|
|
14518
|
-
}, [
|
|
15154
|
+
}, [backgroundNode, ...childrenArray]);
|
|
14519
15155
|
}
|
|
14520
15156
|
//#endregion
|
|
14521
15157
|
//#region ../blocks/src/system/spacing.ts
|
|
@@ -14532,7 +15168,7 @@ const DEFAULT_SECTION_SPACING = "medium";
|
|
|
14532
15168
|
* - Creating a section wrapper with background theme
|
|
14533
15169
|
* - Adding background color/gradient/image layers
|
|
14534
15170
|
* - Binding className to section styles with transform
|
|
14535
|
-
* -
|
|
15171
|
+
* - Keeping foreground overflow visible while decorative backgrounds clip independently
|
|
14536
15172
|
* - Wrapping content children
|
|
14537
15173
|
*
|
|
14538
15174
|
* Use this helper to eliminate 25+ lines of boilerplate section setup code.
|
|
@@ -14568,8 +15204,8 @@ const DEFAULT_SECTION_SPACING = "medium";
|
|
|
14568
15204
|
* });
|
|
14569
15205
|
*/
|
|
14570
15206
|
function styledSection(config) {
|
|
14571
|
-
const { children, baseClass = "rb-px-6", spacing = DEFAULT_SECTION_SPACING, background = "background", bindFrom = "_sectionStyles", imageClassName = "rb-absolute rb-z-
|
|
14572
|
-
const
|
|
15207
|
+
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;
|
|
15208
|
+
const renderedBackgroundNode = backgroundFrame(`${bindFrom}.background`, {
|
|
14573
15209
|
imageClassName,
|
|
14574
15210
|
fallbackToken: background,
|
|
14575
15211
|
omitImageLayer: !renderBackgroundImage,
|
|
@@ -14592,13 +15228,8 @@ function styledSection(config) {
|
|
|
14592
15228
|
fullWidthPath
|
|
14593
15229
|
}
|
|
14594
15230
|
}]
|
|
14595
|
-
} },
|
|
14596
|
-
allowOverflow: allowOverflow ? true : { $bind: {
|
|
14597
|
-
from: `${bindFrom}.background`,
|
|
14598
|
-
transforms: [{ id: "background.resolveAllowOverflow" }],
|
|
14599
|
-
fallback: false
|
|
14600
15231
|
} }
|
|
14601
|
-
}, [
|
|
15232
|
+
}, [renderedBackgroundNode, ...childrenArray]);
|
|
14602
15233
|
}
|
|
14603
15234
|
//#endregion
|
|
14604
15235
|
//#region ../blocks/src/system/node/fragments/ctaButton.ts
|
|
@@ -15009,9 +15640,12 @@ function responsiveTwoColumn({ image, text, ratioFrom, imagePositionFrom, gapCla
|
|
|
15009
15640
|
//#endregion
|
|
15010
15641
|
//#region ../blocks/src/system/node/fragments/styledCard.ts
|
|
15011
15642
|
function styledCard(children, opts, ...mods) {
|
|
15012
|
-
const baseClassName = opts.baseClassName ?? "rb-relative rb-isolate rb-overflow-
|
|
15013
|
-
const defaultBackgroundLayer = el("div", {
|
|
15014
|
-
|
|
15643
|
+
const baseClassName = opts.baseClassName ?? "rb-relative rb-isolate rb-overflow-visible rb-border";
|
|
15644
|
+
const defaultBackgroundLayer = el("div", {
|
|
15645
|
+
className: "rb-absolute rb-inset-0 rb-z-neg-10 rb-h-full rb-w-full rb-pointer-events-none rb-bg-surface",
|
|
15646
|
+
style: { borderRadius: "inherit" }
|
|
15647
|
+
});
|
|
15648
|
+
const backgroundNode = backgroundFrame(opts.backgroundFrom);
|
|
15015
15649
|
const style = {
|
|
15016
15650
|
...opts.style ?? {},
|
|
15017
15651
|
borderColor: { $bind: {
|
|
@@ -15038,7 +15672,7 @@ function styledCard(children, opts, ...mods) {
|
|
|
15038
15672
|
...style ? { style } : {}
|
|
15039
15673
|
}, [
|
|
15040
15674
|
defaultBackgroundLayer,
|
|
15041
|
-
|
|
15675
|
+
backgroundNode,
|
|
15042
15676
|
...children
|
|
15043
15677
|
], ...mods);
|
|
15044
15678
|
}
|
|
@@ -15812,9 +16446,15 @@ function createButtonGroup(options = {}) {
|
|
|
15812
16446
|
//#endregion
|
|
15813
16447
|
//#region ../blocks/src/system/fields/ctas.ts
|
|
15814
16448
|
function createCtasRepeater(options = {}) {
|
|
15815
|
-
const { id = "ctas", label = "Calls to action", itemLabel = "CTA", minItems = 0, maxItems, button } = options;
|
|
16449
|
+
const { id = "ctas", label = "Calls to action", itemLabel = "CTA", minItems = 0, maxItems, button, defaultValue } = options;
|
|
16450
|
+
const fieldId = id;
|
|
16451
|
+
const buttonField = createButtonGroup({
|
|
16452
|
+
showGroupLabel: false,
|
|
16453
|
+
...button ?? {},
|
|
16454
|
+
flattenInRepeater: true
|
|
16455
|
+
});
|
|
15816
16456
|
return {
|
|
15817
|
-
id,
|
|
16457
|
+
id: fieldId,
|
|
15818
16458
|
type: "repeater",
|
|
15819
16459
|
label,
|
|
15820
16460
|
itemLabel,
|
|
@@ -15823,11 +16463,8 @@ function createCtasRepeater(options = {}) {
|
|
|
15823
16463
|
maxItems,
|
|
15824
16464
|
required: false,
|
|
15825
16465
|
allowConversion: true,
|
|
15826
|
-
|
|
15827
|
-
|
|
15828
|
-
...button ?? {},
|
|
15829
|
-
flattenInRepeater: true
|
|
15830
|
-
})] }
|
|
16466
|
+
...defaultValue !== void 0 ? { defaultValue: [...defaultValue] } : {},
|
|
16467
|
+
schema: { fields: [buttonField] }
|
|
15831
16468
|
};
|
|
15832
16469
|
}
|
|
15833
16470
|
//#endregion
|
|
@@ -15877,6 +16514,7 @@ const heroCtaRowFragment = defineFragment({
|
|
|
15877
16514
|
label: "Calls to action",
|
|
15878
16515
|
itemLabel: "CTA",
|
|
15879
16516
|
maxItems: 3,
|
|
16517
|
+
defaultValue: [],
|
|
15880
16518
|
button: {
|
|
15881
16519
|
variants: [
|
|
15882
16520
|
{
|
|
@@ -15944,7 +16582,7 @@ const ctaCopyFragment = defineFragment({
|
|
|
15944
16582
|
eyebrowPath: "content.eyebrow",
|
|
15945
16583
|
titlePath: "content.title",
|
|
15946
16584
|
className: "cta-heading"
|
|
15947
|
-
}), richText({ className: "cta-content rb-prose rb-mx-auto rb-max-w-none" }, when("content
|
|
16585
|
+
}), richText({ className: "cta-content rb-prose rb-mx-auto rb-max-w-none" }, when("content"), bind("content"))]
|
|
15948
16586
|
});
|
|
15949
16587
|
//#endregion
|
|
15950
16588
|
//#region ../blocks/src/system/fragments/library/testimonialsHeading.ts
|
|
@@ -16041,7 +16679,7 @@ function buildTestimonialCard(...mods) {
|
|
|
16041
16679
|
}, 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())])], {
|
|
16042
16680
|
stylesFrom: "content._cardStyles",
|
|
16043
16681
|
backgroundFrom: "content._cardStyles.background",
|
|
16044
|
-
baseClassName: "rb-testimonial-card rb-relative rb-isolate rb-flex rb-h-full rb-flex-col rb-overflow-
|
|
16682
|
+
baseClassName: "rb-testimonial-card rb-relative rb-isolate rb-flex rb-h-full rb-flex-col rb-overflow-visible rb-p-8"
|
|
16045
16683
|
}, ...mods);
|
|
16046
16684
|
}
|
|
16047
16685
|
/**
|
|
@@ -16513,39 +17151,6 @@ const formEmbedFragment = defineFragment({
|
|
|
16513
17151
|
}
|
|
16514
17152
|
});
|
|
16515
17153
|
//#endregion
|
|
16516
|
-
//#region ../blocks/src/system/fragments/library/footerBottomText.ts
|
|
16517
|
-
const footerBottomTextFragment = defineFragment({
|
|
16518
|
-
id: "footerBottomText",
|
|
16519
|
-
title: "Footer Text",
|
|
16520
|
-
description: "Rich text content for the main footer body and optional bottom bar.",
|
|
16521
|
-
fields: [{
|
|
16522
|
-
id: "bodyText",
|
|
16523
|
-
type: "richText",
|
|
16524
|
-
label: "Body text",
|
|
16525
|
-
description: "Appears in the main footer area.",
|
|
16526
|
-
ui: { variant: "limited" }
|
|
16527
|
-
}, {
|
|
16528
|
-
id: "bottomText",
|
|
16529
|
-
type: "richText",
|
|
16530
|
-
label: "Bottom bar text",
|
|
16531
|
-
description: "Appears in the optional footer bottom bar.",
|
|
16532
|
-
ui: { variant: "limited" }
|
|
16533
|
-
}],
|
|
16534
|
-
layout: [richText({
|
|
16535
|
-
className: "rb-prose rb-prose-sm rb-mx-auto rb-max-w-3xl rb-text-center",
|
|
16536
|
-
style: textColorStyle("text/80")
|
|
16537
|
-
}, when("bodyText"), bind("bodyText", { transforms: [{
|
|
16538
|
-
id: "content.interpolateRichTextTokens",
|
|
16539
|
-
options: { tokens: ["year", "site_name"] }
|
|
16540
|
-
}] })), richText({
|
|
16541
|
-
className: "rb-prose rb-prose-sm rb-mx-auto rb-max-w-3xl rb-text-center",
|
|
16542
|
-
style: textColorStyle("text/80")
|
|
16543
|
-
}, when("bottomText"), bind("bottomText", { transforms: [{
|
|
16544
|
-
id: "content.interpolateRichTextTokens",
|
|
16545
|
-
options: { tokens: ["year", "site_name"] }
|
|
16546
|
-
}] }))]
|
|
16547
|
-
});
|
|
16548
|
-
//#endregion
|
|
16549
17154
|
//#region ../blocks/src/system/fragments/library/singleButton.ts
|
|
16550
17155
|
const singleButtonFragment = defineFragment({
|
|
16551
17156
|
id: "singleButton",
|
|
@@ -16718,7 +17323,7 @@ function createFaqAccordionLayout(options = {}) {
|
|
|
16718
17323
|
options: {
|
|
16719
17324
|
axis: "all",
|
|
16720
17325
|
includeSpacing: false,
|
|
16721
|
-
baseClass: "rb-faq-item rb-relative rb-isolate rb-overflow-
|
|
17326
|
+
baseClass: "rb-faq-item rb-relative rb-isolate rb-overflow-visible"
|
|
16722
17327
|
}
|
|
16723
17328
|
}]
|
|
16724
17329
|
},
|
|
@@ -17709,6 +18314,7 @@ function createBlockManifest(config) {
|
|
|
17709
18314
|
previewCustomize: config.previewCustomize,
|
|
17710
18315
|
category: config.category,
|
|
17711
18316
|
contentTypes: config.contentTypes ? [...config.contentTypes] : void 0,
|
|
18317
|
+
contentSource: config.contentSource,
|
|
17712
18318
|
tags: config.tags ? [...config.tags] : [],
|
|
17713
18319
|
icon: config.icon ?? "Box",
|
|
17714
18320
|
layout,
|
|
@@ -17842,7 +18448,6 @@ function splitLayoutWith(children) {
|
|
|
17842
18448
|
}
|
|
17843
18449
|
}),
|
|
17844
18450
|
renderBackgroundImage: false,
|
|
17845
|
-
allowOverflow: true,
|
|
17846
18451
|
baseClass: ""
|
|
17847
18452
|
});
|
|
17848
18453
|
}
|
|
@@ -17855,6 +18460,7 @@ const heroBlockDefinition = { manifest: createBlockManifest({
|
|
|
17855
18460
|
title: "Hero",
|
|
17856
18461
|
titleSource: "headline",
|
|
17857
18462
|
category: "layout",
|
|
18463
|
+
contentSource: { kind: "inline" },
|
|
17858
18464
|
includeContainerStyles: true,
|
|
17859
18465
|
promotedFields: ["_sectionStyles.background.image"],
|
|
17860
18466
|
fragments: [
|
|
@@ -18128,6 +18734,7 @@ const introBlockDefinition = { manifest: createBlockManifest({
|
|
|
18128
18734
|
id: "block.intro",
|
|
18129
18735
|
title: "Intro",
|
|
18130
18736
|
category: "layout",
|
|
18737
|
+
contentSource: { kind: "inline" },
|
|
18131
18738
|
includeContainerStyles: true,
|
|
18132
18739
|
titleSource: "title",
|
|
18133
18740
|
previewCustomize: { quickFieldPriority: [
|
|
@@ -18313,6 +18920,7 @@ const bodyTextBlockDefinition = { manifest: createBlockManifest({
|
|
|
18313
18920
|
title: "Body Text",
|
|
18314
18921
|
titleSource: "heading",
|
|
18315
18922
|
category: "content",
|
|
18923
|
+
contentSource: { kind: "inline" },
|
|
18316
18924
|
fragments: [{
|
|
18317
18925
|
fragment: bodyCopyFragment,
|
|
18318
18926
|
fieldPriority: 0
|
|
@@ -18369,6 +18977,10 @@ const blogPostBlockDefinition = {
|
|
|
18369
18977
|
description: "Highlights a single blog post with title, image, and excerpt.",
|
|
18370
18978
|
category: "blog",
|
|
18371
18979
|
contentTypes: ["post"],
|
|
18980
|
+
contentSource: {
|
|
18981
|
+
kind: "entries",
|
|
18982
|
+
contentType: "post"
|
|
18983
|
+
},
|
|
18372
18984
|
tags: [
|
|
18373
18985
|
"blog",
|
|
18374
18986
|
"post",
|
|
@@ -18470,7 +19082,7 @@ function postCard(children, ...mods) {
|
|
|
18470
19082
|
return styledCard(children, {
|
|
18471
19083
|
stylesFrom: "content._cardStyles",
|
|
18472
19084
|
backgroundFrom: "content._cardStyles.background",
|
|
18473
|
-
baseClassName: "rb-relative rb-isolate rb-overflow-
|
|
19085
|
+
baseClassName: "rb-relative rb-isolate rb-overflow-visible rb-border rb-flex rb-flex-col rb-h-full"
|
|
18474
19086
|
}, ...mods);
|
|
18475
19087
|
}
|
|
18476
19088
|
const gridPostCard = postCard([postImageLink("rb-h-48 rb-w-full rb-object-cover rb-transition-transform rb-hover-scale-105", {
|
|
@@ -18506,7 +19118,7 @@ const stackPostCard = styledCard([inline({
|
|
|
18506
19118
|
])])], {
|
|
18507
19119
|
stylesFrom: "content._cardStyles",
|
|
18508
19120
|
backgroundFrom: "content._cardStyles.background",
|
|
18509
|
-
baseClassName: "rb-relative rb-isolate rb-overflow-
|
|
19121
|
+
baseClassName: "rb-relative rb-isolate rb-overflow-visible rb-border"
|
|
18510
19122
|
}, repeat("data.posts", "post"));
|
|
18511
19123
|
const emptyState$2 = {
|
|
18512
19124
|
...styledCard([text({
|
|
@@ -18515,7 +19127,7 @@ const emptyState$2 = {
|
|
|
18515
19127
|
}, bind("content.emptyMessage", { fallback: "No posts published yet." }))], {
|
|
18516
19128
|
stylesFrom: "content._cardStyles",
|
|
18517
19129
|
backgroundFrom: "content._cardStyles.background",
|
|
18518
|
-
baseClassName: "rb-relative rb-isolate rb-overflow-
|
|
19130
|
+
baseClassName: "rb-relative rb-isolate rb-overflow-visible rb-border rb-border-dashed rb-p-8 rb-text-center"
|
|
18519
19131
|
}),
|
|
18520
19132
|
$when: {
|
|
18521
19133
|
when: { from: "data.posts[0]" },
|
|
@@ -18525,7 +19137,7 @@ const emptyState$2 = {
|
|
|
18525
19137
|
function blogListingShell(children) {
|
|
18526
19138
|
return styledSection({
|
|
18527
19139
|
children: styledContainer({
|
|
18528
|
-
baseClassName: "rb-relative rb-isolate rb-overflow-
|
|
19140
|
+
baseClassName: "rb-relative rb-isolate rb-overflow-visible",
|
|
18529
19141
|
children
|
|
18530
19142
|
}),
|
|
18531
19143
|
baseClass: ""
|
|
@@ -18666,6 +19278,10 @@ const blogListingManifest = createBlockManifest({
|
|
|
18666
19278
|
],
|
|
18667
19279
|
description: "Display a collection of blog posts in grid or stack layout.",
|
|
18668
19280
|
contentTypes: ["post"],
|
|
19281
|
+
contentSource: {
|
|
19282
|
+
kind: "entries",
|
|
19283
|
+
contentType: "post"
|
|
19284
|
+
},
|
|
18669
19285
|
tags: [
|
|
18670
19286
|
"blog",
|
|
18671
19287
|
"posts",
|
|
@@ -18708,6 +19324,7 @@ const ctaFullBlockDefinition = { manifest: createBlockManifest({
|
|
|
18708
19324
|
id: "block.cta-full",
|
|
18709
19325
|
title: "Full-width CTA",
|
|
18710
19326
|
category: "marketing",
|
|
19327
|
+
contentSource: { kind: "inline" },
|
|
18711
19328
|
fragments: [{
|
|
18712
19329
|
fragment: ctaCopyFragment,
|
|
18713
19330
|
fieldPriority: 0
|
|
@@ -18741,6 +19358,7 @@ const singleButtonBlockDefinition = { manifest: createBlockManifest({
|
|
|
18741
19358
|
id: "block.single-button",
|
|
18742
19359
|
title: "Single Button",
|
|
18743
19360
|
category: "marketing",
|
|
19361
|
+
contentSource: { kind: "inline" },
|
|
18744
19362
|
fragments: [{
|
|
18745
19363
|
fragment: singleButtonFragment,
|
|
18746
19364
|
fieldPriority: 0
|
|
@@ -18937,7 +19555,7 @@ const copyLayout = fragmentLayoutNode$1(formCopyFragment.layout);
|
|
|
18937
19555
|
const formSurface = styledContainer({
|
|
18938
19556
|
bindFrom: "_containerStyles",
|
|
18939
19557
|
constrainWidth: false,
|
|
18940
|
-
baseClassName: "rb-form-surface rb-relative rb-isolate rb-overflow-
|
|
19558
|
+
baseClassName: "rb-form-surface rb-relative rb-isolate rb-overflow-visible",
|
|
18941
19559
|
children: fragmentLayoutNode$1(formEmbedFragment.layout)
|
|
18942
19560
|
});
|
|
18943
19561
|
function createFormLayout(variant) {
|
|
@@ -19001,6 +19619,7 @@ const formManifest = createBlockManifest({
|
|
|
19001
19619
|
paletteHidden: false
|
|
19002
19620
|
},
|
|
19003
19621
|
category: "interactive",
|
|
19622
|
+
contentSource: { kind: "inline" },
|
|
19004
19623
|
tags: [
|
|
19005
19624
|
"form",
|
|
19006
19625
|
"contact",
|
|
@@ -19063,6 +19682,7 @@ const contactNewsletterBlockDefinition = {
|
|
|
19063
19682
|
titleSource: "contactTitle",
|
|
19064
19683
|
description: "Two-column newsletter signup and contact form section.",
|
|
19065
19684
|
category: "interactive",
|
|
19685
|
+
contentSource: { kind: "inline" },
|
|
19066
19686
|
layout: contactNewsletterLayout,
|
|
19067
19687
|
defaultVariant: "default",
|
|
19068
19688
|
variants: { default: contactNewsletterLayout },
|
|
@@ -19266,6 +19886,7 @@ const faqBlockDefinition = { manifest: createBlockManifest({
|
|
|
19266
19886
|
title: "FAQ",
|
|
19267
19887
|
titleSource: "title",
|
|
19268
19888
|
category: "content",
|
|
19889
|
+
contentSource: { kind: "inline" },
|
|
19269
19890
|
includeContainerStyles: true,
|
|
19270
19891
|
fragments: [{
|
|
19271
19892
|
fragment: faqHeadingFragment,
|
|
@@ -19371,7 +19992,7 @@ function desktopOnlyDisplay(display) {
|
|
|
19371
19992
|
}
|
|
19372
19993
|
//#endregion
|
|
19373
19994
|
//#region ../blocks/src/system/blocks/site-header.ts
|
|
19374
|
-
const whenTransformed
|
|
19995
|
+
const whenTransformed = (from, transformId, equals = true) => (node) => ({
|
|
19375
19996
|
...node,
|
|
19376
19997
|
$when: {
|
|
19377
19998
|
when: {
|
|
@@ -19399,7 +20020,7 @@ const logoRow = link({
|
|
|
19399
20020
|
text({
|
|
19400
20021
|
as: "strong",
|
|
19401
20022
|
className: "header-logo-text rb-truncate"
|
|
19402
|
-
}, whenTransformed
|
|
20023
|
+
}, whenTransformed("$root.theme.header.logo", "layout.headerLogoTextVisible"), bind("site.title", { fallback: "Your Site" }))
|
|
19403
20024
|
]);
|
|
19404
20025
|
const centeredLogoRow = link({
|
|
19405
20026
|
href: "/",
|
|
@@ -19419,7 +20040,7 @@ const centeredLogoRow = link({
|
|
|
19419
20040
|
text({
|
|
19420
20041
|
as: "strong",
|
|
19421
20042
|
className: "header-logo-text"
|
|
19422
|
-
}, whenTransformed
|
|
20043
|
+
}, whenTransformed("$root.theme.header.logo", "layout.headerLogoTextVisible"), bind("site.title", { fallback: "Your Site" }))
|
|
19423
20044
|
]);
|
|
19424
20045
|
const createNavRow = (className, align = "end") => navRow({
|
|
19425
20046
|
className: `${className} header-nav-row`,
|
|
@@ -19551,7 +20172,7 @@ const classicLayout = inline({
|
|
|
19551
20172
|
logoRow,
|
|
19552
20173
|
createNavRow(`rb-ml-auto ${desktopOnlyDisplay("flex")} rb-gap-6`),
|
|
19553
20174
|
headerCta
|
|
19554
|
-
], whenTransformed
|
|
20175
|
+
], whenTransformed("$root.theme.header", "layout.classicNavMode", "inline"));
|
|
19555
20176
|
const classicCenteredNavLayout = inline({
|
|
19556
20177
|
className: bindProp("$root.theme.header.maxWidth", {
|
|
19557
20178
|
transforms: pipe(tx("layout.maxWidthClass", { base: `rb-header-layout ${desktopOnlyDisplay("flex")} rb-w-full rb-items-center rb-gap-6` })),
|
|
@@ -19562,7 +20183,7 @@ const classicCenteredNavLayout = inline({
|
|
|
19562
20183
|
logoRow,
|
|
19563
20184
|
createNavRow(`rb-flex-1 rb-justify-center ${desktopOnlyDisplay("flex")} rb-gap-6`, "center"),
|
|
19564
20185
|
headerCta
|
|
19565
|
-
], whenTransformed
|
|
20186
|
+
], whenTransformed("$root.theme.header", "layout.classicNavMode", "centered"));
|
|
19566
20187
|
const centeredLayout = stack({
|
|
19567
20188
|
gap: "md",
|
|
19568
20189
|
align: "center",
|
|
@@ -19602,6 +20223,7 @@ const siteHeaderBlockDefinition = { manifest: createBlockManifest({
|
|
|
19602
20223
|
id: "block.site-header",
|
|
19603
20224
|
title: "Site Header",
|
|
19604
20225
|
category: "layout",
|
|
20226
|
+
contentSource: { kind: "inline" },
|
|
19605
20227
|
additionalFields: [{
|
|
19606
20228
|
id: "mode",
|
|
19607
20229
|
type: "select",
|
|
@@ -19625,7 +20247,6 @@ const siteHeaderBlockDefinition = { manifest: createBlockManifest({
|
|
|
19625
20247
|
transforms: pipe(tx("layout.headerSectionBackground")),
|
|
19626
20248
|
fallback: "background"
|
|
19627
20249
|
}),
|
|
19628
|
-
allowOverflow: true,
|
|
19629
20250
|
className: bindProp("$root.theme.header", {
|
|
19630
20251
|
transforms: pipe(tx("layout.headerRootClass")),
|
|
19631
20252
|
fallback: "header-root rb-z-40 rb-w-full transition-theme"
|
|
@@ -19675,218 +20296,155 @@ const footerNavGroupsLayout = stack({
|
|
|
19675
20296
|
linkRequired: true,
|
|
19676
20297
|
target: { $bind: { from: "entry.target" } },
|
|
19677
20298
|
rel: { $bind: { from: "entry.rel" } }
|
|
19678
|
-
}, [text({ as: "span" }, bind("entry.label"))], repeat("group.children", "entry"))])], repeat("footerMenu.groups", "group"))],
|
|
20299
|
+
}, [text({ as: "span" }, bind("entry.label"))], repeat("group.children", "entry"))])], repeat("footerMenu.groups", "group"))], whenCollectionHasItems("footerMenu.groups"));
|
|
19679
20300
|
//#endregion
|
|
19680
20301
|
//#region ../blocks/src/system/blocks/site-footer.ts
|
|
19681
|
-
const
|
|
19682
|
-
|
|
19683
|
-
...node,
|
|
19684
|
-
$when: {
|
|
19685
|
-
when: {
|
|
19686
|
-
from,
|
|
19687
|
-
transforms: [{ id: transformId }]
|
|
19688
|
-
},
|
|
19689
|
-
equals
|
|
19690
|
-
}
|
|
19691
|
-
});
|
|
19692
|
-
const bottomBarTextLayout = () => {
|
|
19693
|
-
const bottomTextNode = footerTextLayout()[1];
|
|
19694
|
-
return bottomTextNode ? [bottomTextNode] : [];
|
|
19695
|
-
};
|
|
19696
|
-
const bodyTextLayout = () => {
|
|
19697
|
-
const bodyTextNode = footerTextLayout()[0];
|
|
19698
|
-
return bodyTextNode ? [bodyTextNode] : [];
|
|
19699
|
-
};
|
|
19700
|
-
const businessAddressLayout = () => [text({
|
|
19701
|
-
as: "p",
|
|
19702
|
-
className: "rb-caption rb-opacity-80"
|
|
19703
|
-
}, bind("site.businessAddress.displayAddress"), when("content.showBusinessAddress", { equals: true }))];
|
|
19704
|
-
const inlineBottomTextLayout = () => {
|
|
19705
|
-
const bottomTextNode = footerTextLayout()[1];
|
|
19706
|
-
if (!bottomTextNode) return [];
|
|
19707
|
-
return [when("$root.theme.footer.bottomBar.enabled", {
|
|
19708
|
-
equals: true,
|
|
19709
|
-
not: true
|
|
19710
|
-
})(bottomTextNode)];
|
|
19711
|
-
};
|
|
19712
|
-
const simpleFooterLayout = stack({
|
|
19713
|
-
gap: "md",
|
|
19714
|
-
align: "start",
|
|
19715
|
-
className: { $bind: {
|
|
19716
|
-
from: "$root.theme.footer",
|
|
19717
|
-
transforms: [{ id: "layout.footerSimpleRootClass" }],
|
|
19718
|
-
fallback: "rb-container rb-flex rb-w-full rb-flex-col rb-items-start rb-gap-4 rb-py-10 rb-text-left"
|
|
19719
|
-
} }
|
|
19720
|
-
}, [
|
|
19721
|
-
link({
|
|
19722
|
-
href: "/",
|
|
19723
|
-
className: { $bind: {
|
|
19724
|
-
from: "$root.theme.footer.logo",
|
|
19725
|
-
transforms: [{
|
|
19726
|
-
id: "layout.footerLogoClass",
|
|
19727
|
-
options: { requireExplicitShow: true }
|
|
19728
|
-
}],
|
|
19729
|
-
fallback: "rb-hidden"
|
|
19730
|
-
} }
|
|
19731
|
-
}, [
|
|
19732
|
-
media({ className: { $bind: {
|
|
19733
|
-
from: "$root.theme.footer.logo",
|
|
19734
|
-
transforms: [{ id: "layout.footerLogoMediaClass" }],
|
|
19735
|
-
fallback: "rb-w-auto"
|
|
19736
|
-
} } }, when("content.logo"), bind("content.logo")),
|
|
19737
|
-
stack({ className: "rb-contents" }, [media({ className: { $bind: {
|
|
19738
|
-
from: "$root.theme.footer.logo",
|
|
19739
|
-
transforms: [{ id: "layout.footerLogoMediaClass" }],
|
|
19740
|
-
fallback: "rb-w-auto"
|
|
19741
|
-
} } }, when("site.logo"), bind("site.logo"))], when("content.logo", { not: true })),
|
|
19742
|
-
text({
|
|
19743
|
-
as: "strong",
|
|
19744
|
-
className: "footer-logo-text rb-nav-text"
|
|
19745
|
-
}, whenTransformed("$root.theme.footer", "layout.footerLogoTextVisible"), bind("site.title", { fallback: "Your Site" }))
|
|
19746
|
-
]),
|
|
19747
|
-
footerNav({
|
|
19748
|
-
collectionPath: "footerMenu.items",
|
|
19749
|
-
mode: "flatten",
|
|
19750
|
-
className: { $bind: {
|
|
19751
|
-
from: "$root.theme.footer.navLayout",
|
|
19752
|
-
transforms: [{ id: "layout.footerSimpleNavClass" }],
|
|
19753
|
-
fallback: "footer-nav rb-flex rb-flex-wrap rb-justify-start rb-gap-x-6 rb-gap-y-3"
|
|
19754
|
-
} },
|
|
19755
|
-
linkClassName: "footer-nav-link rb-inline-flex rb-items-center rb-px-4 rb-py-2 rb-nav-text transition-theme-standard"
|
|
19756
|
-
}),
|
|
19757
|
-
...bodyTextLayout(),
|
|
19758
|
-
...businessAddressLayout(),
|
|
19759
|
-
...inlineBottomTextLayout()
|
|
19760
|
-
], when("$root.theme.footer.variant", { equals: "simple" }));
|
|
19761
|
-
const columnsFooterLayout = stack({
|
|
19762
|
-
gap: "xl",
|
|
19763
|
-
align: "start",
|
|
20302
|
+
const brandLogo = link({
|
|
20303
|
+
href: "/",
|
|
19764
20304
|
className: { $bind: {
|
|
19765
|
-
from: "$root.theme.footer.
|
|
20305
|
+
from: "$root.theme.footer.logo",
|
|
19766
20306
|
transforms: [{
|
|
19767
|
-
id: "layout.
|
|
19768
|
-
options: { base: "
|
|
20307
|
+
id: "layout.footerLogoClass",
|
|
20308
|
+
options: { base: "footer-logo rb-inline-flex rb-items-center rb-gap-3 rb-no-underline" }
|
|
19769
20309
|
}],
|
|
19770
|
-
fallback: "
|
|
20310
|
+
fallback: "footer-logo rb-inline-flex rb-items-center rb-gap-3 rb-no-underline"
|
|
19771
20311
|
} }
|
|
19772
|
-
}, [
|
|
19773
|
-
|
|
19774
|
-
|
|
19775
|
-
|
|
19776
|
-
|
|
19777
|
-
|
|
19778
|
-
|
|
19779
|
-
|
|
19780
|
-
|
|
19781
|
-
|
|
19782
|
-
|
|
19783
|
-
|
|
19784
|
-
|
|
19785
|
-
|
|
19786
|
-
|
|
19787
|
-
|
|
19788
|
-
|
|
19789
|
-
gap: "xl",
|
|
19790
|
-
align: "start",
|
|
20312
|
+
}, [media({ className: { $bind: {
|
|
20313
|
+
from: "$root.theme.footer.logo",
|
|
20314
|
+
transforms: [{
|
|
20315
|
+
id: "layout.footerLogoMediaClass",
|
|
20316
|
+
options: { base: "rb-h-10 rb-w-auto" }
|
|
20317
|
+
}],
|
|
20318
|
+
fallback: "rb-h-10 rb-w-auto"
|
|
20319
|
+
} } }, when("module.showLogo", { equals: true }), when("content.logo"), bind("content.logo")), text({
|
|
20320
|
+
as: "strong",
|
|
20321
|
+
className: "footer-logo-text rb-nav-text"
|
|
20322
|
+
}, when("module.showTitle", { equals: true }), bind("site.title", { fallback: "Your Site" }))], when("module.kind", { equals: "brand" }));
|
|
20323
|
+
const navigation = stack({
|
|
20324
|
+
gap: "md",
|
|
20325
|
+
className: "rb-w-full"
|
|
20326
|
+
}, [footerNavGroupsLayout, footerNav({
|
|
20327
|
+
collectionPath: "footerMenu.items",
|
|
20328
|
+
mode: "links-only",
|
|
19791
20329
|
className: { $bind: {
|
|
19792
|
-
from: "
|
|
19793
|
-
|
|
19794
|
-
|
|
19795
|
-
|
|
19796
|
-
|
|
19797
|
-
|
|
19798
|
-
|
|
20330
|
+
from: "module.navigationClassName",
|
|
20331
|
+
fallback: "footer-nav rb-flex rb-flex-wrap rb-gap-x-6 rb-gap-y-3"
|
|
20332
|
+
} },
|
|
20333
|
+
linkClassName: "footer-nav-link rb-nav-text transition-theme-standard"
|
|
20334
|
+
})], when("module.kind", { equals: "navigation" }));
|
|
20335
|
+
const legalNavigation = footerNav({
|
|
20336
|
+
collectionPath: "legalFooterMenu.items",
|
|
20337
|
+
mode: "links-only",
|
|
20338
|
+
className: "rb-flex rb-flex-wrap rb-gap-x-4 rb-gap-y-2",
|
|
20339
|
+
linkClassName: "footer-nav-link rb-caption transition-theme-standard"
|
|
20340
|
+
});
|
|
20341
|
+
const address = text({
|
|
20342
|
+
as: "address",
|
|
20343
|
+
className: "rb-not-italic rb-opacity-80"
|
|
20344
|
+
}, when("module.kind", { equals: "business-address" }), bind("module.address"));
|
|
20345
|
+
const contact = stack({
|
|
20346
|
+
gap: "sm",
|
|
20347
|
+
className: "rb-items-start"
|
|
20348
|
+
}, [link({
|
|
20349
|
+
href: { $bind: { from: "contactLink.href" } },
|
|
20350
|
+
className: "rb-nav-text rb-break-words transition-theme-standard"
|
|
20351
|
+
}, [text({ as: "span" }, bind("contactLink.label"))], repeat("module.contactLinks", "contactLink"))], when("module.kind", { equals: "contact" }));
|
|
20352
|
+
const hours = stack({
|
|
20353
|
+
gap: "sm",
|
|
20354
|
+
className: "rb-w-full"
|
|
20355
|
+
}, [inline({ className: "rb-flex rb-w-full rb-justify-between rb-gap-4" }, [text({
|
|
20356
|
+
as: "span",
|
|
20357
|
+
className: "rb-label"
|
|
20358
|
+
}, bind("hoursDay.weekday")), text({
|
|
20359
|
+
as: "span",
|
|
20360
|
+
className: "rb-caption rb-opacity-80"
|
|
20361
|
+
}, bind("hoursDay.hours"))], repeat("module.openingHours", "hoursDay")), text({
|
|
20362
|
+
as: "p",
|
|
20363
|
+
className: "rb-caption rb-opacity-70"
|
|
20364
|
+
}, bind("module.timeZone"), when("module.timeZone"))], when("module.kind", { equals: "opening-hours" }));
|
|
20365
|
+
const socials = inline({ className: "rb-flex rb-flex-wrap rb-gap-x-5 rb-gap-y-3" }, [link({
|
|
20366
|
+
href: { $bind: { from: "social.href" } },
|
|
20367
|
+
target: "_blank",
|
|
20368
|
+
rel: "noreferrer noopener",
|
|
20369
|
+
"aria-label": { $bind: { from: "social.label" } },
|
|
20370
|
+
className: "rb-nav-text transition-theme-standard"
|
|
20371
|
+
}, [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" }));
|
|
20372
|
+
const authoredCopy = richText({
|
|
20373
|
+
className: "rb-prose rb-prose-sm rb-max-w-none",
|
|
20374
|
+
style: textColorStyle("text/80")
|
|
20375
|
+
}, when("module.content"), bind("module.content", { transforms: [{
|
|
20376
|
+
id: "content.interpolateRichTextTokens",
|
|
20377
|
+
options: { tokens: ["year", "site_name"] }
|
|
20378
|
+
}] }));
|
|
20379
|
+
const footerGroup = stack({
|
|
20380
|
+
gap: "md",
|
|
20381
|
+
align: "stretch",
|
|
20382
|
+
className: "rb-min-w-0",
|
|
20383
|
+
"data-footer-group": { $bind: { from: "group.kind" } }
|
|
20384
|
+
}, [stack({
|
|
20385
|
+
gap: "md",
|
|
20386
|
+
align: "start",
|
|
20387
|
+
"data-preview-footer-module-id": { $bind: { from: "module.id" } }
|
|
19799
20388
|
}, [
|
|
19800
|
-
|
|
19801
|
-
|
|
19802
|
-
|
|
19803
|
-
|
|
19804
|
-
}
|
|
19805
|
-
|
|
19806
|
-
|
|
19807
|
-
|
|
19808
|
-
|
|
19809
|
-
|
|
19810
|
-
|
|
19811
|
-
|
|
19812
|
-
|
|
19813
|
-
|
|
19814
|
-
|
|
19815
|
-
|
|
19816
|
-
|
|
19817
|
-
|
|
19818
|
-
|
|
19819
|
-
|
|
19820
|
-
}
|
|
19821
|
-
|
|
19822
|
-
|
|
19823
|
-
|
|
19824
|
-
|
|
19825
|
-
|
|
19826
|
-
|
|
19827
|
-
from: "$root.theme.footer.logo",
|
|
19828
|
-
transforms: [{ id: "layout.footerLogoMediaClass" }],
|
|
19829
|
-
fallback: "rb-w-auto"
|
|
19830
|
-
} } }, when("site.logo"), bind("site.logo"))], when("content.logo", { not: true })),
|
|
19831
|
-
text({
|
|
19832
|
-
as: "strong",
|
|
19833
|
-
className: "footer-logo-text rb-nav-text"
|
|
19834
|
-
}, whenTransformed("$root.theme.footer", "layout.footerLogoTextVisible"), bind("site.title", { fallback: "Your Site" }))
|
|
19835
|
-
])]),
|
|
19836
|
-
...businessAddressLayout(),
|
|
19837
|
-
...inlineBottomTextLayout()
|
|
19838
|
-
], when("$root.theme.footer.variant", { equals: "split" }));
|
|
19839
|
-
const footerLayout = section({
|
|
19840
|
-
background: "background",
|
|
20389
|
+
text({
|
|
20390
|
+
as: "h2",
|
|
20391
|
+
className: "rb-label",
|
|
20392
|
+
style: textColorStyle("text/70")
|
|
20393
|
+
}, bind("module.heading"), when("module.heading")),
|
|
20394
|
+
brandLogo,
|
|
20395
|
+
navigation,
|
|
20396
|
+
stack({
|
|
20397
|
+
gap: "sm",
|
|
20398
|
+
className: "rb-w-full"
|
|
20399
|
+
}, [legalNavigation], when("module.kind", { equals: "legal-navigation" })),
|
|
20400
|
+
address,
|
|
20401
|
+
contact,
|
|
20402
|
+
hours,
|
|
20403
|
+
socials,
|
|
20404
|
+
stack({ className: "rb-w-full" }, [authoredCopy], when("module.kind", { equals: "supporting-text" })),
|
|
20405
|
+
stack({ className: "rb-w-full rb-lg-col-span-3" }, [authoredCopy], when("module.kind", { equals: "legal" }))
|
|
20406
|
+
], repeat("group.modules", "module"))], repeat("region.groups", "group"));
|
|
20407
|
+
const footerMainRegion = stack({
|
|
20408
|
+
className: { $bind: { from: "region.className" } },
|
|
20409
|
+
"data-footer-region": { $bind: { from: "region.kind" } }
|
|
20410
|
+
}, [footerGroup], when("region.kind", { equals: "main" }), repeat("content.footerRuntime.regions", "region"));
|
|
20411
|
+
const footerBottomRegion = stack({ className: { $bind: {
|
|
20412
|
+
from: "$root.theme.footer",
|
|
20413
|
+
transforms: [{ id: "layout.footerBottomBarContainerClass" }],
|
|
20414
|
+
fallback: "rb-w-full"
|
|
20415
|
+
} } }, [stack({
|
|
19841
20416
|
className: { $bind: {
|
|
19842
20417
|
from: "$root.theme.footer",
|
|
19843
|
-
transforms: [{ id: "layout.
|
|
19844
|
-
fallback: "rb-w-full rb-border-t
|
|
20418
|
+
transforms: [{ id: "layout.footerBottomBarClass" }],
|
|
20419
|
+
fallback: "rb-w-full rb-border-t rb-px-6 rb-py-6 rb-text-center"
|
|
19845
20420
|
} },
|
|
19846
20421
|
style: { $bind: {
|
|
19847
20422
|
from: "$root.theme.footer",
|
|
19848
|
-
transforms: [{ id: "layout.
|
|
19849
|
-
|
|
19850
|
-
|
|
19851
|
-
}, [
|
|
19852
|
-
simpleFooterLayout,
|
|
19853
|
-
columnsFooterLayout,
|
|
19854
|
-
splitFooterLayout,
|
|
19855
|
-
stack({
|
|
19856
|
-
className: { $bind: {
|
|
19857
|
-
from: "$root.theme.footer",
|
|
19858
|
-
transforms: [{ id: "layout.footerBottomBarClass" }],
|
|
19859
|
-
fallback: "rb-w-full rb-border-t rb-py-5"
|
|
19860
|
-
} },
|
|
19861
|
-
style: { $bind: {
|
|
19862
|
-
from: "$root.theme.footer",
|
|
19863
|
-
transforms: [{ id: "layout.footerBottomBarStyle" }]
|
|
19864
|
-
} }
|
|
19865
|
-
}, [stack({ className: { $bind: {
|
|
19866
|
-
from: "$root.theme.footer",
|
|
19867
|
-
transforms: [{ id: "layout.footerBottomBarContainerClass" }],
|
|
19868
|
-
fallback: "rb-container"
|
|
19869
|
-
} } }, [...bottomBarTextLayout()])], when("$root.theme.footer.bottomBar.enabled", { equals: true }))
|
|
19870
|
-
]);
|
|
20423
|
+
transforms: [{ id: "layout.footerBottomBarStyle" }]
|
|
20424
|
+
} },
|
|
20425
|
+
"data-footer-region": "bottom"
|
|
20426
|
+
}, [footerGroup])], when("region.kind", { equals: "bottom" }), repeat("content.footerRuntime.regions", "region"));
|
|
19871
20427
|
const siteFooterBlockDefinition = { manifest: createBlockManifest({
|
|
19872
20428
|
id: "block.site-footer",
|
|
19873
20429
|
title: "Site Footer",
|
|
19874
20430
|
category: "layout",
|
|
19875
|
-
|
|
19876
|
-
fragment: footerBottomTextFragment,
|
|
19877
|
-
fieldPriority: 0
|
|
19878
|
-
}],
|
|
20431
|
+
contentSource: { kind: "inline" },
|
|
19879
20432
|
skipSectionStyles: true,
|
|
19880
|
-
|
|
19881
|
-
|
|
19882
|
-
|
|
19883
|
-
|
|
19884
|
-
|
|
19885
|
-
|
|
19886
|
-
|
|
19887
|
-
|
|
19888
|
-
|
|
19889
|
-
|
|
20433
|
+
layout: section({
|
|
20434
|
+
background: "background",
|
|
20435
|
+
className: { $bind: {
|
|
20436
|
+
from: "$root.theme.footer",
|
|
20437
|
+
transforms: [{ id: "layout.footerRootClass" }],
|
|
20438
|
+
fallback: "rb-w-full rb-border-t transition-theme"
|
|
20439
|
+
} },
|
|
20440
|
+
style: { $bind: {
|
|
20441
|
+
from: "$root.theme.footer",
|
|
20442
|
+
transforms: [{ id: "layout.footerRootStyle" }],
|
|
20443
|
+
fallback: mergeStyles(backgroundColorStyle("surface"), surfaceForegroundStyle({ text: "rgb(var(--tb-text))" }), borderColorStyle("border"))
|
|
20444
|
+
} },
|
|
20445
|
+
"data-footer-membership": { $bind: { from: "content.footerRuntime.membershipKey" } }
|
|
20446
|
+
}, [footerMainRegion, footerBottomRegion]),
|
|
20447
|
+
description: "Site-wide composed footer with canonical shared details.",
|
|
19890
20448
|
styleTokens: { spacing: "md" },
|
|
19891
20449
|
paletteHidden: true
|
|
19892
20450
|
}) };
|
|
@@ -20020,6 +20578,7 @@ const testimonialsBlockDefinition = {
|
|
|
20020
20578
|
id: "block.testimonials",
|
|
20021
20579
|
title: "Testimonials",
|
|
20022
20580
|
category: "marketing",
|
|
20581
|
+
contentSource: { kind: "inline" },
|
|
20023
20582
|
includeContainerStyles: true,
|
|
20024
20583
|
previewCustomize: { quickFieldPriority: [
|
|
20025
20584
|
"avatarLayout",
|
|
@@ -20178,6 +20737,7 @@ const columnsBlockDefinition = { manifest: createBlockManifest({
|
|
|
20178
20737
|
id: "block.columns",
|
|
20179
20738
|
title: "Columns",
|
|
20180
20739
|
category: "layout",
|
|
20740
|
+
contentSource: { kind: "inline" },
|
|
20181
20741
|
additionalFields: [
|
|
20182
20742
|
parseFieldDefinition({
|
|
20183
20743
|
id: "equalHeight",
|
|
@@ -20364,7 +20924,7 @@ const repeatedItemsNode = repeaterFragmentLayout({
|
|
|
20364
20924
|
id: "boxStyles.all",
|
|
20365
20925
|
options: {
|
|
20366
20926
|
axis: "all",
|
|
20367
|
-
baseClass: "rb-collection-item rb-relative rb-isolate rb-overflow-
|
|
20927
|
+
baseClass: "rb-collection-item rb-relative rb-isolate rb-overflow-visible rb-border"
|
|
20368
20928
|
}
|
|
20369
20929
|
}]
|
|
20370
20930
|
},
|
|
@@ -20411,6 +20971,7 @@ const collectionBlockDefinition = { manifest: createBlockManifest({
|
|
|
20411
20971
|
id: "block.collection",
|
|
20412
20972
|
title: "Collection",
|
|
20413
20973
|
category: "layout",
|
|
20974
|
+
contentSource: { kind: "inline" },
|
|
20414
20975
|
additionalFields: [
|
|
20415
20976
|
parseFieldDefinition({
|
|
20416
20977
|
id: "layout",
|
|
@@ -20647,6 +21208,7 @@ const featureCardsBlockDefinition = { manifest: createBlockManifest({
|
|
|
20647
21208
|
id: "block.feature-cards",
|
|
20648
21209
|
title: "Feature Cards",
|
|
20649
21210
|
category: "layout",
|
|
21211
|
+
contentSource: { kind: "inline" },
|
|
20650
21212
|
includeContainerStyles: true,
|
|
20651
21213
|
titleSource: "title",
|
|
20652
21214
|
additionalFields: [
|
|
@@ -21030,6 +21592,7 @@ const mediaTextBlockDefinition = { manifest: createBlockManifest({
|
|
|
21030
21592
|
id: "block.media-text",
|
|
21031
21593
|
title: "Media and Text",
|
|
21032
21594
|
category: "layout",
|
|
21595
|
+
contentSource: { kind: "inline" },
|
|
21033
21596
|
includeContainerStyles: true,
|
|
21034
21597
|
titleSource: "title",
|
|
21035
21598
|
previewCustomize: { quickFieldPriority: [
|
|
@@ -21430,6 +21993,7 @@ const appointmentBookingBlockDefinition = {
|
|
|
21430
21993
|
paletteHidden: false
|
|
21431
21994
|
},
|
|
21432
21995
|
category: "interactive",
|
|
21996
|
+
contentSource: { kind: "inline" },
|
|
21433
21997
|
tags: [
|
|
21434
21998
|
"booking",
|
|
21435
21999
|
"appointment",
|
|
@@ -21594,6 +22158,7 @@ const weeklySlotAvailabilityManifest = createBlockManifest({
|
|
|
21594
22158
|
paletteHidden: false
|
|
21595
22159
|
},
|
|
21596
22160
|
category: "interactive",
|
|
22161
|
+
contentSource: { kind: "inline" },
|
|
21597
22162
|
tags: [
|
|
21598
22163
|
"booking",
|
|
21599
22164
|
"appointment",
|
|
@@ -23228,6 +23793,7 @@ const eventRegistrationBlockDefinition = {
|
|
|
23228
23793
|
titleSource: "heading",
|
|
23229
23794
|
description: "Multi-step event registration form",
|
|
23230
23795
|
category: "interactive",
|
|
23796
|
+
contentSource: { kind: "inline" },
|
|
23231
23797
|
tags: [
|
|
23232
23798
|
"events",
|
|
23233
23799
|
"registration",
|
|
@@ -23334,15 +23900,9 @@ const eventRegistrationBlockDefinition = {
|
|
|
23334
23900
|
defaultValue: "Complete Registration",
|
|
23335
23901
|
maxLength: 40
|
|
23336
23902
|
},
|
|
23337
|
-
{
|
|
23338
|
-
id: "buttonVariant",
|
|
23339
|
-
type: "select",
|
|
23340
|
-
label: "Button style",
|
|
23903
|
+
createButtonVariantField({
|
|
23341
23904
|
description: "Choose a button style from your theme",
|
|
23342
|
-
|
|
23343
|
-
multiple: false,
|
|
23344
|
-
defaultValue: "primary",
|
|
23345
|
-
options: [
|
|
23905
|
+
variants: [
|
|
23346
23906
|
{
|
|
23347
23907
|
value: "primary",
|
|
23348
23908
|
label: "Primary"
|
|
@@ -23355,9 +23915,8 @@ const eventRegistrationBlockDefinition = {
|
|
|
23355
23915
|
value: "outline",
|
|
23356
23916
|
label: "Outline"
|
|
23357
23917
|
}
|
|
23358
|
-
]
|
|
23359
|
-
|
|
23360
|
-
}
|
|
23918
|
+
]
|
|
23919
|
+
})
|
|
23361
23920
|
],
|
|
23362
23921
|
layout: [styledSection({
|
|
23363
23922
|
baseClass: "",
|
|
@@ -23550,6 +24109,7 @@ const courseRegistrationBlockDefinition = {
|
|
|
23550
24109
|
titleSource: "heading",
|
|
23551
24110
|
description: "Enrollment form for multi-session courses",
|
|
23552
24111
|
category: "interactive",
|
|
24112
|
+
contentSource: { kind: "inline" },
|
|
23553
24113
|
tags: [
|
|
23554
24114
|
"courses",
|
|
23555
24115
|
"enrollment",
|
|
@@ -23663,15 +24223,9 @@ const courseRegistrationBlockDefinition = {
|
|
|
23663
24223
|
defaultValue: "Sign up",
|
|
23664
24224
|
maxLength: 40
|
|
23665
24225
|
},
|
|
23666
|
-
{
|
|
23667
|
-
id: "buttonVariant",
|
|
23668
|
-
type: "select",
|
|
23669
|
-
label: "Button style",
|
|
24226
|
+
createButtonVariantField({
|
|
23670
24227
|
description: "Choose a button style from your theme",
|
|
23671
|
-
|
|
23672
|
-
multiple: false,
|
|
23673
|
-
defaultValue: "primary",
|
|
23674
|
-
options: [
|
|
24228
|
+
variants: [
|
|
23675
24229
|
{
|
|
23676
24230
|
value: "primary",
|
|
23677
24231
|
label: "Primary"
|
|
@@ -23684,9 +24238,8 @@ const courseRegistrationBlockDefinition = {
|
|
|
23684
24238
|
value: "outline",
|
|
23685
24239
|
label: "Outline"
|
|
23686
24240
|
}
|
|
23687
|
-
]
|
|
23688
|
-
|
|
23689
|
-
}
|
|
24241
|
+
]
|
|
24242
|
+
})
|
|
23690
24243
|
],
|
|
23691
24244
|
layout: [styledSection({
|
|
23692
24245
|
baseClass: "",
|
|
@@ -23766,6 +24319,7 @@ const eventDetailsManifest = createBlockManifest({
|
|
|
23766
24319
|
titleSource: "heading",
|
|
23767
24320
|
description: "Date/time, venue, map, and other dates for an event",
|
|
23768
24321
|
category: "content",
|
|
24322
|
+
contentSource: { kind: "entries" },
|
|
23769
24323
|
tags: [
|
|
23770
24324
|
"events",
|
|
23771
24325
|
"venue",
|
|
@@ -23971,6 +24525,7 @@ const courseDetailsBlockDefinition = {
|
|
|
23971
24525
|
titleSource: "heading",
|
|
23972
24526
|
description: "Schedule, venue, price, and enrollment status for a course",
|
|
23973
24527
|
category: "content",
|
|
24528
|
+
contentSource: { kind: "entries" },
|
|
23974
24529
|
tags: [
|
|
23975
24530
|
"courses",
|
|
23976
24531
|
"schedule",
|
|
@@ -24262,6 +24817,7 @@ const eventSpotlightBlockDefinition = {
|
|
|
24262
24817
|
paletteHidden: false
|
|
24263
24818
|
},
|
|
24264
24819
|
category: "content",
|
|
24820
|
+
contentSource: { kind: "entries" },
|
|
24265
24821
|
tags: [
|
|
24266
24822
|
"events",
|
|
24267
24823
|
"featured",
|
|
@@ -24808,6 +25364,7 @@ const eventListingBlockDefinition = {
|
|
|
24808
25364
|
paletteHidden: true
|
|
24809
25365
|
},
|
|
24810
25366
|
category: "interactive",
|
|
25367
|
+
contentSource: { kind: "entries" },
|
|
24811
25368
|
tags: [
|
|
24812
25369
|
"events",
|
|
24813
25370
|
"listing",
|
|
@@ -25980,6 +26537,7 @@ const eventCalendarBlockDefinition = {
|
|
|
25980
26537
|
paletteHidden: false
|
|
25981
26538
|
},
|
|
25982
26539
|
category: "interactive",
|
|
26540
|
+
contentSource: { kind: "entries" },
|
|
25983
26541
|
tags: [
|
|
25984
26542
|
"events",
|
|
25985
26543
|
"calendar",
|
|
@@ -26153,6 +26711,7 @@ const recurringScheduleBlockDefinition = {
|
|
|
26153
26711
|
titleSource: "heading",
|
|
26154
26712
|
description: "A compact weekly schedule with one row per recurring series.",
|
|
26155
26713
|
category: "interactive",
|
|
26714
|
+
contentSource: { kind: "entries" },
|
|
26156
26715
|
icon: "CalendarDays",
|
|
26157
26716
|
tags: [
|
|
26158
26717
|
"schedule",
|
|
@@ -26570,7 +27129,10 @@ const offeringsPreviewFields = [
|
|
|
26570
27129
|
label: "Link"
|
|
26571
27130
|
}
|
|
26572
27131
|
],
|
|
26573
|
-
ui: {
|
|
27132
|
+
ui: {
|
|
27133
|
+
intent: "display",
|
|
27134
|
+
widget: "buttonVariant"
|
|
27135
|
+
}
|
|
26574
27136
|
},
|
|
26575
27137
|
{
|
|
26576
27138
|
id: "buttonText",
|
|
@@ -26623,6 +27185,7 @@ const offeringsPreviewManifest = createBlockManifest({
|
|
|
26623
27185
|
paletteHidden: false
|
|
26624
27186
|
},
|
|
26625
27187
|
category: "content",
|
|
27188
|
+
contentSource: { kind: "mixed" },
|
|
26626
27189
|
tags: [
|
|
26627
27190
|
"offerings",
|
|
26628
27191
|
"events",
|
|
@@ -26791,6 +27354,7 @@ const embedManifest = createBlockManifest({
|
|
|
26791
27354
|
id: "block.embed",
|
|
26792
27355
|
title: "Embed Content",
|
|
26793
27356
|
category: "content",
|
|
27357
|
+
contentSource: { kind: "entries" },
|
|
26794
27358
|
titleSource: "heading",
|
|
26795
27359
|
additionalFields: [
|
|
26796
27360
|
parseFieldDefinition({
|
|
@@ -27278,6 +27842,7 @@ const imageGalleryBlockDefinition = { manifest: createBlockManifest({
|
|
|
27278
27842
|
id: "block.image-gallery",
|
|
27279
27843
|
title: "Image Gallery",
|
|
27280
27844
|
category: "content",
|
|
27845
|
+
contentSource: { kind: "inline" },
|
|
27281
27846
|
previewCustomize: { quickFieldPriority: [
|
|
27282
27847
|
"aspectRatio",
|
|
27283
27848
|
"slidesToShow",
|
|
@@ -27930,6 +28495,7 @@ const videoGridBlockDefinition = { manifest: createBlockManifest({
|
|
|
27930
28495
|
id: "block.video-grid",
|
|
27931
28496
|
title: "Video Grid",
|
|
27932
28497
|
category: "media",
|
|
28498
|
+
contentSource: { kind: "inline" },
|
|
27933
28499
|
skipSectionStyles: true,
|
|
27934
28500
|
additionalFields: parseFieldDefinitions([
|
|
27935
28501
|
{
|
|
@@ -28100,6 +28666,7 @@ const audioPlayerBlockDefinition = { manifest: createBlockManifest({
|
|
|
28100
28666
|
title: "Audio Player",
|
|
28101
28667
|
titleSource: "title",
|
|
28102
28668
|
category: "media",
|
|
28669
|
+
contentSource: { kind: "inline" },
|
|
28103
28670
|
description: "Add a branded audio player for a single track.",
|
|
28104
28671
|
tags: [
|
|
28105
28672
|
"audio",
|
|
@@ -28211,6 +28778,7 @@ const fileDownloadBlockDefinition = { manifest: createBlockManifest({
|
|
|
28211
28778
|
title: "File Download",
|
|
28212
28779
|
titleSource: ["title", "file.filename"],
|
|
28213
28780
|
category: "media",
|
|
28781
|
+
contentSource: { kind: "inline" },
|
|
28214
28782
|
description: "Add a simple public download link for a document, ZIP, or audio file.",
|
|
28215
28783
|
tags: [
|
|
28216
28784
|
"file",
|
|
@@ -29155,6 +29723,7 @@ const shopBlockDefinition = {
|
|
|
29155
29723
|
paletteHidden: false
|
|
29156
29724
|
},
|
|
29157
29725
|
category: "interactive",
|
|
29726
|
+
contentSource: { kind: "entries" },
|
|
29158
29727
|
tags: [
|
|
29159
29728
|
"shop",
|
|
29160
29729
|
"passes",
|
|
@@ -29354,6 +29923,7 @@ const productListBlockDefinition = {
|
|
|
29354
29923
|
paletteHidden: false
|
|
29355
29924
|
},
|
|
29356
29925
|
category: "interactive",
|
|
29926
|
+
contentSource: { kind: "entries" },
|
|
29357
29927
|
tags: [
|
|
29358
29928
|
"shop",
|
|
29359
29929
|
"products",
|
|
@@ -29495,6 +30065,7 @@ const productDetailBlockDefinition = {
|
|
|
29495
30065
|
paletteHidden: false
|
|
29496
30066
|
},
|
|
29497
30067
|
category: "interactive",
|
|
30068
|
+
contentSource: { kind: "entries" },
|
|
29498
30069
|
tags: [
|
|
29499
30070
|
"shop",
|
|
29500
30071
|
"product",
|
|
@@ -29611,6 +30182,7 @@ const cartBlockDefinition = {
|
|
|
29611
30182
|
paletteHidden: false
|
|
29612
30183
|
},
|
|
29613
30184
|
category: "interactive",
|
|
30185
|
+
contentSource: { kind: "inline" },
|
|
29614
30186
|
tags: [
|
|
29615
30187
|
"shop",
|
|
29616
30188
|
"cart",
|
|
@@ -29693,6 +30265,7 @@ const checkoutBlockDefinition = {
|
|
|
29693
30265
|
paletteHidden: false
|
|
29694
30266
|
},
|
|
29695
30267
|
category: "interactive",
|
|
30268
|
+
contentSource: { kind: "inline" },
|
|
29696
30269
|
tags: [
|
|
29697
30270
|
"shop",
|
|
29698
30271
|
"checkout",
|
|
@@ -29896,6 +30469,7 @@ const giftingBlockDefinition = {
|
|
|
29896
30469
|
paletteHidden: false
|
|
29897
30470
|
},
|
|
29898
30471
|
category: "interactive",
|
|
30472
|
+
contentSource: { kind: "entries" },
|
|
29899
30473
|
tags: [
|
|
29900
30474
|
"gifting",
|
|
29901
30475
|
"gift cards",
|
|
@@ -30239,6 +30813,7 @@ const newsletterSignupBlockDefinition = {
|
|
|
30239
30813
|
titleSource: "title",
|
|
30240
30814
|
description: "Newsletter subscription form with configurable field presets.",
|
|
30241
30815
|
category: "interactive",
|
|
30816
|
+
contentSource: { kind: "inline" },
|
|
30242
30817
|
fragments: [{
|
|
30243
30818
|
fragment: newsletterCopyFragment,
|
|
30244
30819
|
fieldPriority: 0
|
|
@@ -30420,6 +30995,7 @@ const teamMembersBlockDefinition = {
|
|
|
30420
30995
|
id: "block.team-members",
|
|
30421
30996
|
title: "Team Members",
|
|
30422
30997
|
category: "content",
|
|
30998
|
+
contentSource: { kind: "mixed" },
|
|
30423
30999
|
titleSource: "heading",
|
|
30424
31000
|
additionalFields: [
|
|
30425
31001
|
parseFieldDefinition({
|
|
@@ -30840,6 +31416,7 @@ const locationMapBlockDefinition = {
|
|
|
30840
31416
|
titleSource: "heading",
|
|
30841
31417
|
description: "Show a business location with an interactive map and directions link.",
|
|
30842
31418
|
category: "content",
|
|
31419
|
+
contentSource: { kind: "inline" },
|
|
30843
31420
|
tags: [
|
|
30844
31421
|
"map",
|
|
30845
31422
|
"location",
|