@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
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import z, { z as z$1 } from "zod";
|
|
2
2
|
import "react/jsx-runtime";
|
|
3
3
|
import "react";
|
|
4
|
-
//#region ../api/src/apiEndpointTypes.ts
|
|
5
4
|
function blockedDemoMutationPolicy(classification, publicMessage) {
|
|
6
5
|
if (publicMessage.trim() === "") throw new Error(`Demo mutation policy ${classification} requires publicMessage.`);
|
|
7
6
|
return {
|
|
@@ -29,6 +28,7 @@ const TAG_TEMPLATES = {
|
|
|
29
28
|
siteRouteOutcomes: "riverbank:site:{siteId}:route-outcomes",
|
|
30
29
|
routeById: "riverbank:route:{routeId}",
|
|
31
30
|
pageById: "riverbank:page:{pageId}",
|
|
31
|
+
pageSurfaceById: "riverbank:page-surface:{pageSurfaceId}",
|
|
32
32
|
workflowRunById: "riverbank:workflow-run:{runId}",
|
|
33
33
|
siteForms: "riverbank:site:{siteId}:forms",
|
|
34
34
|
formById: "riverbank:form:{formId}",
|
|
@@ -52,7 +52,7 @@ const TAG_TEMPLATES = {
|
|
|
52
52
|
blockedDemoMutationPolicy("blocked-hidden", "This action is not available in demo sites.");
|
|
53
53
|
blockedDemoMutationPolicy("blocked-disabled", "This setting is disabled in demo sites.");
|
|
54
54
|
blockedDemoMutationPolicy("internal-only", "This internal operation is not available in demo sites.");
|
|
55
|
-
TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteTheme, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.site, TAG_TEMPLATES.siteBookingSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteBookingSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteEmailSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteEmailSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteEmailSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteEmailSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.site, TAG_TEMPLATES.site, TAG_TEMPLATES.site, TAG_TEMPLATES.site, TAG_TEMPLATES.site, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.routeById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteById, TAG_TEMPLATES.siteBySlug, TAG_TEMPLATES.siteByDomain, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteById, TAG_TEMPLATES.siteBySlug, TAG_TEMPLATES.siteByDomain, TAG_TEMPLATES.workflowRunById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.routeById, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.site, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteNavigation, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteNavigation, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteNavigation, TAG_TEMPLATES.navigationMenuById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteNavigation, TAG_TEMPLATES.navigationMenuById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteNavigation, TAG_TEMPLATES.navigationMenuById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteNavigation, TAG_TEMPLATES.navigationMenuById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteNavigation, TAG_TEMPLATES.navigationMenuById, TAG_TEMPLATES.navigationItemById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteNavigation, TAG_TEMPLATES.navigationMenuById, TAG_TEMPLATES.navigationItemById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteNavigation, TAG_TEMPLATES.navigationMenuById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteTheme, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteTheme, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteTheme, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.siteRedirects, TAG_TEMPLATES.siteRouteOutcomes, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.siteRedirects, TAG_TEMPLATES.siteRouteOutcomes, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.formSubmissionsBySlug, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.formSubmissionsBySlug, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.formSubmissionsBySlug, TAG_TEMPLATES.formById, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.publicEvents, TAG_TEMPLATES.publicEventFilters, TAG_TEMPLATES.publicCourses, TAG_TEMPLATES.publicTeamMembers, TAG_TEMPLATES.publicCourses, TAG_TEMPLATES.publicCourses, TAG_TEMPLATES.publicCourses, TAG_TEMPLATES.publicCourses, TAG_TEMPLATES.publicEvents, TAG_TEMPLATES.publicCourses, TAG_TEMPLATES.publicCourses, TAG_TEMPLATES.publicPasses, TAG_TEMPLATES.publicMemberships, TAG_TEMPLATES.publicProducts, TAG_TEMPLATES.publicGifting, TAG_TEMPLATES.publicGifting, TAG_TEMPLATES.publicGifting, TAG_TEMPLATES.publicShop, TAG_TEMPLATES.publicCheckout, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.publicEvents, TAG_TEMPLATES.publicEvents, TAG_TEMPLATES.publicEvents, TAG_TEMPLATES.publicEvents, TAG_TEMPLATES.publicEvents, TAG_TEMPLATES.publicEvents;
|
|
55
|
+
TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteTheme, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.site, TAG_TEMPLATES.siteBookingSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteBookingSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteEmailSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteEmailSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteEmailSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteEmailSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.site, TAG_TEMPLATES.site, TAG_TEMPLATES.site, TAG_TEMPLATES.site, TAG_TEMPLATES.site, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.routeById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteById, TAG_TEMPLATES.siteBySlug, TAG_TEMPLATES.siteByDomain, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteById, TAG_TEMPLATES.siteBySlug, TAG_TEMPLATES.siteByDomain, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.pageSurfaceById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.pageSurfaceById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageSurfaceById, TAG_TEMPLATES.workflowRunById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.routeById, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.site, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteNavigation, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteNavigation, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteNavigation, TAG_TEMPLATES.navigationMenuById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteNavigation, TAG_TEMPLATES.navigationMenuById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteNavigation, TAG_TEMPLATES.navigationMenuById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteNavigation, TAG_TEMPLATES.navigationMenuById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteNavigation, TAG_TEMPLATES.navigationMenuById, TAG_TEMPLATES.navigationItemById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteNavigation, TAG_TEMPLATES.navigationMenuById, TAG_TEMPLATES.navigationItemById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteNavigation, TAG_TEMPLATES.navigationMenuById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteTheme, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteTheme, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteTheme, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.pageSurfaceById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.pageSurfaceById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.pageSurfaceById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.pageSurfaceById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.siteRedirects, TAG_TEMPLATES.siteRouteOutcomes, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.siteRedirects, TAG_TEMPLATES.siteRouteOutcomes, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.formSubmissionsBySlug, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.formSubmissionsBySlug, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.formSubmissionsBySlug, TAG_TEMPLATES.formById, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.publicEvents, TAG_TEMPLATES.publicEventFilters, TAG_TEMPLATES.publicCourses, TAG_TEMPLATES.publicTeamMembers, TAG_TEMPLATES.publicCourses, TAG_TEMPLATES.publicCourses, TAG_TEMPLATES.publicCourses, TAG_TEMPLATES.publicCourses, TAG_TEMPLATES.publicEvents, TAG_TEMPLATES.publicCourses, TAG_TEMPLATES.publicCourses, TAG_TEMPLATES.publicPasses, TAG_TEMPLATES.publicMemberships, TAG_TEMPLATES.publicProducts, TAG_TEMPLATES.publicGifting, TAG_TEMPLATES.publicGifting, TAG_TEMPLATES.publicGifting, TAG_TEMPLATES.publicShop, TAG_TEMPLATES.publicCheckout, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.publicEvents, TAG_TEMPLATES.publicEvents, TAG_TEMPLATES.publicEvents, TAG_TEMPLATES.publicEvents, TAG_TEMPLATES.publicEvents, TAG_TEMPLATES.publicEvents;
|
|
56
56
|
//#endregion
|
|
57
57
|
//#region ../core/src/result.ts
|
|
58
58
|
function ok(value) {
|
|
@@ -205,19 +205,29 @@ function isRecord$7(value) {
|
|
|
205
205
|
//#region ../core/src/booking-date-time.ts
|
|
206
206
|
const DEFAULT_LOCALE = "en-US";
|
|
207
207
|
const FALLBACK_TIMEZONE = "UTC";
|
|
208
|
+
const DATE_TIME_FORMATTER_CACHE_LIMIT = 100;
|
|
209
|
+
const dateTimeFormatterCache = /* @__PURE__ */ new Map();
|
|
210
|
+
const timeZoneValidityCache = /* @__PURE__ */ new Map();
|
|
208
211
|
function isValidTimeZone(timeZone) {
|
|
212
|
+
const cached = timeZoneValidityCache.get(timeZone);
|
|
213
|
+
if (cached !== void 0) return cached;
|
|
214
|
+
let isValid;
|
|
209
215
|
try {
|
|
210
216
|
new Intl.DateTimeFormat(DEFAULT_LOCALE, { timeZone }).format(/* @__PURE__ */ new Date());
|
|
211
|
-
|
|
217
|
+
isValid = true;
|
|
212
218
|
} catch {
|
|
213
|
-
|
|
219
|
+
isValid = false;
|
|
214
220
|
}
|
|
221
|
+
if (timeZoneValidityCache.size >= DATE_TIME_FORMATTER_CACHE_LIMIT) timeZoneValidityCache.clear();
|
|
222
|
+
timeZoneValidityCache.set(timeZone, isValid);
|
|
223
|
+
return isValid;
|
|
215
224
|
}
|
|
216
225
|
function getSafeTimeZone(timeZone) {
|
|
217
226
|
const normalized = typeof timeZone === "string" ? timeZone.trim() : "";
|
|
218
227
|
return normalized.length > 0 && isValidTimeZone(normalized) ? normalized : FALLBACK_TIMEZONE;
|
|
219
228
|
}
|
|
220
229
|
function parseStrictBookingTimeZone(timeZone) {
|
|
230
|
+
if (typeof timeZone !== "string") return null;
|
|
221
231
|
const normalized = timeZone.trim();
|
|
222
232
|
if (normalized.length === 0 || !isValidTimeZone(normalized)) return null;
|
|
223
233
|
return normalized;
|
|
@@ -230,10 +240,19 @@ function formatParseError(error) {
|
|
|
230
240
|
}
|
|
231
241
|
}
|
|
232
242
|
function formatToPartsLookup(date, locale, timeZone, format) {
|
|
233
|
-
return new Map(
|
|
243
|
+
return new Map(getCachedDateTimeFormatter(locale, timeZone, format).formatToParts(date).map((part) => [part.type, part.value]));
|
|
244
|
+
}
|
|
245
|
+
function getCachedDateTimeFormatter(locale, timeZone, format) {
|
|
246
|
+
const key = `${locale}\u0000${timeZone}\u0000${JSON.stringify(Object.entries(format).sort(([left], [right]) => left.localeCompare(right)))}`;
|
|
247
|
+
const cached = dateTimeFormatterCache.get(key);
|
|
248
|
+
if (cached !== void 0) return cached;
|
|
249
|
+
const formatter = new Intl.DateTimeFormat(locale, {
|
|
234
250
|
...format,
|
|
235
251
|
timeZone
|
|
236
|
-
})
|
|
252
|
+
});
|
|
253
|
+
if (dateTimeFormatterCache.size >= DATE_TIME_FORMATTER_CACHE_LIMIT) dateTimeFormatterCache.clear();
|
|
254
|
+
dateTimeFormatterCache.set(key, formatter);
|
|
255
|
+
return formatter;
|
|
237
256
|
}
|
|
238
257
|
function getZonedDateTimeParts(date, timeZone) {
|
|
239
258
|
const parts = formatToPartsLookup(date, "en-GB", timeZone, {
|
|
@@ -276,23 +295,9 @@ function toUtcIsoDateTimeString(value) {
|
|
|
276
295
|
return parsed.value;
|
|
277
296
|
}
|
|
278
297
|
function parseScheduledBookingDateTime(input) {
|
|
298
|
+
let startsAt;
|
|
279
299
|
try {
|
|
280
|
-
|
|
281
|
-
const timeZone = parseStrictBookingTimeZone(input.timeZone);
|
|
282
|
-
if (timeZone === null) return {
|
|
283
|
-
ok: false,
|
|
284
|
-
field: "timeZone",
|
|
285
|
-
reason: "invalid_time_zone",
|
|
286
|
-
value: input.timeZone
|
|
287
|
-
};
|
|
288
|
-
return {
|
|
289
|
-
ok: true,
|
|
290
|
-
value: {
|
|
291
|
-
startsAt,
|
|
292
|
-
timeZone,
|
|
293
|
-
locale: input.locale
|
|
294
|
-
}
|
|
295
|
-
};
|
|
300
|
+
startsAt = toUtcIsoDateTimeString(input.startsAt);
|
|
296
301
|
} catch {
|
|
297
302
|
return {
|
|
298
303
|
ok: false,
|
|
@@ -301,6 +306,21 @@ function parseScheduledBookingDateTime(input) {
|
|
|
301
306
|
value: input.startsAt
|
|
302
307
|
};
|
|
303
308
|
}
|
|
309
|
+
const timeZone = parseStrictBookingTimeZone(input.timeZone);
|
|
310
|
+
if (timeZone === null) return {
|
|
311
|
+
ok: false,
|
|
312
|
+
field: "timeZone",
|
|
313
|
+
reason: "invalid_time_zone",
|
|
314
|
+
value: typeof input.timeZone === "string" ? input.timeZone : ""
|
|
315
|
+
};
|
|
316
|
+
return {
|
|
317
|
+
ok: true,
|
|
318
|
+
value: {
|
|
319
|
+
startsAt,
|
|
320
|
+
timeZone,
|
|
321
|
+
locale: input.locale
|
|
322
|
+
}
|
|
323
|
+
};
|
|
304
324
|
}
|
|
305
325
|
function toScheduledBookingDateTime(input) {
|
|
306
326
|
const result = parseScheduledBookingDateTime(input);
|
|
@@ -3430,6 +3450,111 @@ const mediaSchema$1 = z.object({
|
|
|
3430
3450
|
transform: transformSchema$1.optional()
|
|
3431
3451
|
});
|
|
3432
3452
|
//#endregion
|
|
3453
|
+
//#region ../theme-core/src/buttons/effectClassification.ts
|
|
3454
|
+
/**
|
|
3455
|
+
* Exhaustive live policy for every registered effect id.
|
|
3456
|
+
*
|
|
3457
|
+
* The resolver consumes the transition payload directly, so adding an effect
|
|
3458
|
+
* cannot update classification without also defining its runtime behavior.
|
|
3459
|
+
*/
|
|
3460
|
+
const BUTTON_EFFECT_POLICIES = {
|
|
3461
|
+
"darken-background": {
|
|
3462
|
+
classification: "colour-transition",
|
|
3463
|
+
transition: {
|
|
3464
|
+
kind: "adjust-shade",
|
|
3465
|
+
direction: "darker"
|
|
3466
|
+
}
|
|
3467
|
+
},
|
|
3468
|
+
"lighten-background": {
|
|
3469
|
+
classification: "colour-transition",
|
|
3470
|
+
transition: {
|
|
3471
|
+
kind: "adjust-shade",
|
|
3472
|
+
direction: "lighter"
|
|
3473
|
+
}
|
|
3474
|
+
},
|
|
3475
|
+
"background-on-hover": {
|
|
3476
|
+
classification: "colour-transition",
|
|
3477
|
+
transition: { kind: "replace-background" }
|
|
3478
|
+
},
|
|
3479
|
+
"background-on-hover-alpha": {
|
|
3480
|
+
classification: "unsupported-colour",
|
|
3481
|
+
reason: "alpha_requires_surface"
|
|
3482
|
+
},
|
|
3483
|
+
"fade-background": {
|
|
3484
|
+
classification: "unsupported-colour",
|
|
3485
|
+
reason: "changes_element_opacity"
|
|
3486
|
+
},
|
|
3487
|
+
"opacity-reduce": {
|
|
3488
|
+
classification: "unsupported-colour",
|
|
3489
|
+
reason: "changes_element_opacity"
|
|
3490
|
+
},
|
|
3491
|
+
"gradient-text": {
|
|
3492
|
+
classification: "unsupported-colour",
|
|
3493
|
+
reason: "changes_foreground"
|
|
3494
|
+
},
|
|
3495
|
+
"text-color-change": {
|
|
3496
|
+
classification: "unsupported-colour",
|
|
3497
|
+
reason: "changes_foreground"
|
|
3498
|
+
},
|
|
3499
|
+
"border-color-change": {
|
|
3500
|
+
classification: "unsupported-colour",
|
|
3501
|
+
reason: "changes_border"
|
|
3502
|
+
},
|
|
3503
|
+
"aurora-glow": {
|
|
3504
|
+
classification: "unsupported-background-overlay",
|
|
3505
|
+
reason: "unresolved_background_overlay"
|
|
3506
|
+
},
|
|
3507
|
+
"cosmic-stardust": {
|
|
3508
|
+
classification: "unsupported-background-overlay",
|
|
3509
|
+
reason: "unresolved_background_overlay"
|
|
3510
|
+
},
|
|
3511
|
+
"gradient-border-fill": {
|
|
3512
|
+
classification: "unsupported-background-overlay",
|
|
3513
|
+
reason: "unresolved_background_overlay"
|
|
3514
|
+
},
|
|
3515
|
+
"animated-gradient-border-fill": {
|
|
3516
|
+
classification: "unsupported-background-overlay",
|
|
3517
|
+
reason: "unresolved_background_overlay"
|
|
3518
|
+
},
|
|
3519
|
+
"nav-underline": {
|
|
3520
|
+
classification: "not-button",
|
|
3521
|
+
reason: "not_button_effect"
|
|
3522
|
+
},
|
|
3523
|
+
"nav-frosted-base": {
|
|
3524
|
+
classification: "not-button",
|
|
3525
|
+
reason: "not_button_effect"
|
|
3526
|
+
},
|
|
3527
|
+
"nav-frosted-hover": {
|
|
3528
|
+
classification: "not-button",
|
|
3529
|
+
reason: "not_button_effect"
|
|
3530
|
+
},
|
|
3531
|
+
"nav-frosted-active": {
|
|
3532
|
+
classification: "not-button",
|
|
3533
|
+
reason: "not_button_effect"
|
|
3534
|
+
},
|
|
3535
|
+
"animated-gradient": { classification: "non-colour" },
|
|
3536
|
+
"border-glow": { classification: "non-colour" },
|
|
3537
|
+
"drop-shadow": { classification: "non-colour" },
|
|
3538
|
+
"inner-shadow": { classification: "non-colour" },
|
|
3539
|
+
"neumorphic-shadow": { classification: "non-colour" },
|
|
3540
|
+
"outer-glow": { classification: "non-colour" },
|
|
3541
|
+
"retro-3d-shadow": { classification: "non-colour" },
|
|
3542
|
+
"scale-up": { classification: "non-colour" },
|
|
3543
|
+
"scale-down": { classification: "non-colour" },
|
|
3544
|
+
lift: { classification: "non-colour" },
|
|
3545
|
+
"press-down": { classification: "non-colour" },
|
|
3546
|
+
pop: { classification: "non-colour" },
|
|
3547
|
+
"border-bottom-grow": { classification: "non-colour" },
|
|
3548
|
+
"sketchy-border": { classification: "non-colour" },
|
|
3549
|
+
"pulse-animation": { classification: "non-colour" }
|
|
3550
|
+
};
|
|
3551
|
+
function getButtonEffectPolicy(effectId) {
|
|
3552
|
+
return Object.prototype.hasOwnProperty.call(BUTTON_EFFECT_POLICIES, effectId) ? BUTTON_EFFECT_POLICIES[effectId] : null;
|
|
3553
|
+
}
|
|
3554
|
+
function classifyButtonEffectId(effectId) {
|
|
3555
|
+
return getButtonEffectPolicy(effectId)?.classification ?? "unknown";
|
|
3556
|
+
}
|
|
3557
|
+
//#endregion
|
|
3433
3558
|
//#region ../theme-core/src/buttons/types.ts
|
|
3434
3559
|
/**
|
|
3435
3560
|
* Standard semantic variant roles a theme exposes.
|
|
@@ -3446,6 +3571,20 @@ const VARIANT_ROLES = [
|
|
|
3446
3571
|
"tertiary",
|
|
3447
3572
|
"accent"
|
|
3448
3573
|
];
|
|
3574
|
+
function parseOpaqueButtonColourToken(value) {
|
|
3575
|
+
const token = parseThemeColorToken(value);
|
|
3576
|
+
if (token === null) return null;
|
|
3577
|
+
const parts = parseColorTokenParts(token);
|
|
3578
|
+
return parts.kind === "token" && parts.opacityPercent === null ? token : null;
|
|
3579
|
+
}
|
|
3580
|
+
function unsafeAsOpaqueButtonColourToken(value) {
|
|
3581
|
+
return value;
|
|
3582
|
+
}
|
|
3583
|
+
const opaqueButtonColourTokenSchema = themeColorTokenSchema.refine((value) => parseOpaqueButtonColourToken(value) !== null, "Button colour tokens must be opaque").transform((value) => {
|
|
3584
|
+
const token = parseOpaqueButtonColourToken(value);
|
|
3585
|
+
if (token === null) throw new Error("Invariant: opaque button token passed its schema");
|
|
3586
|
+
return token;
|
|
3587
|
+
});
|
|
3449
3588
|
const cornerStyleSchema = z$1.enum([
|
|
3450
3589
|
"square",
|
|
3451
3590
|
"rounded",
|
|
@@ -3547,7 +3686,7 @@ const buttonSizesSchema = z$1.object({
|
|
|
3547
3686
|
lg,
|
|
3548
3687
|
xl: xl ?? lg
|
|
3549
3688
|
}));
|
|
3550
|
-
const
|
|
3689
|
+
const canonicalButtonGlobalSettingsSchema = z$1.object({
|
|
3551
3690
|
cornerStyle: cornerStyleSchema,
|
|
3552
3691
|
cornerRadius: z$1.number().min(0).max(24).optional(),
|
|
3553
3692
|
/**
|
|
@@ -3578,11 +3717,12 @@ const buttonGlobalSettingsSchema = z$1.object({
|
|
|
3578
3717
|
paddingPreset: buttonPaddingPresetSchema.optional(),
|
|
3579
3718
|
hoverTransform: hoverTransformSchema,
|
|
3580
3719
|
hoverColor: hoverColorSchema,
|
|
3581
|
-
hoverColorToken:
|
|
3720
|
+
hoverColorToken: opaqueButtonColourTokenSchema.optional(),
|
|
3582
3721
|
gradientStyle: gradientStyleSchema.optional(),
|
|
3583
3722
|
gradientAngle: z$1.number().min(0).max(360).optional(),
|
|
3584
3723
|
gradientSharpness: gradientSharpnessSchema.optional()
|
|
3585
3724
|
});
|
|
3725
|
+
const buttonGlobalSettingsSchema = z$1.preprocess(normalizeLegacyButtonGlobalInput, canonicalButtonGlobalSettingsSchema);
|
|
3586
3726
|
const gradientDirectionSchema$1 = z$1.enum([
|
|
3587
3727
|
"to-r",
|
|
3588
3728
|
"to-l",
|
|
@@ -3596,27 +3736,33 @@ const gradientDirectionSchema$1 = z$1.enum([
|
|
|
3596
3736
|
const buttonBackgroundSchema = z$1.discriminatedUnion("type", [
|
|
3597
3737
|
z$1.object({
|
|
3598
3738
|
type: z$1.literal("solid"),
|
|
3599
|
-
colorToken:
|
|
3739
|
+
colorToken: opaqueButtonColourTokenSchema
|
|
3600
3740
|
}),
|
|
3601
3741
|
z$1.object({
|
|
3602
3742
|
type: z$1.literal("gradient"),
|
|
3603
|
-
stops: z$1.array(
|
|
3604
|
-
|
|
3743
|
+
stops: z$1.array(opaqueButtonColourTokenSchema).min(2).transform((stops) => {
|
|
3744
|
+
const [first, second, ...rest] = stops;
|
|
3745
|
+
if (first === void 0 || second === void 0) throw new Error("Invariant: gradient stops passed the minimum length schema");
|
|
3746
|
+
return [
|
|
3747
|
+
first,
|
|
3748
|
+
second,
|
|
3749
|
+
...rest
|
|
3750
|
+
];
|
|
3751
|
+
}),
|
|
3752
|
+
direction: gradientDirectionSchema$1,
|
|
3753
|
+
foregroundToken: opaqueButtonColourTokenSchema
|
|
3605
3754
|
}),
|
|
3606
|
-
z$1.object({
|
|
3755
|
+
z$1.object({
|
|
3756
|
+
type: z$1.literal("surface"),
|
|
3757
|
+
role: z$1.literal("link")
|
|
3758
|
+
})
|
|
3607
3759
|
]);
|
|
3608
3760
|
const effectApplicationSchema$1 = z$1.object({
|
|
3609
3761
|
effectId: z$1.string(),
|
|
3610
|
-
options: z$1.record(z$1.string(), z$1.
|
|
3611
|
-
});
|
|
3612
|
-
const buttonBorderSchema = z$1.object({
|
|
3613
|
-
widthClass: z$1.string(),
|
|
3614
|
-
colorToken: themeColorTokenSchema
|
|
3615
|
-
});
|
|
3616
|
-
const buttonVariantAffordanceSchema = z$1.object({
|
|
3617
|
-
iconId: z$1.string().min(1),
|
|
3618
|
-
colorToken: themeColorTokenSchema.optional()
|
|
3762
|
+
options: z$1.record(z$1.string(), z$1.json()).optional()
|
|
3619
3763
|
});
|
|
3764
|
+
const buttonBorderSchema = z$1.object({ widthClass: z$1.string() });
|
|
3765
|
+
const buttonVariantAffordanceSchema = z$1.object({ iconId: z$1.string().min(1) });
|
|
3620
3766
|
const variantShadowSchema = z$1.object({
|
|
3621
3767
|
elevation: z$1.enum([
|
|
3622
3768
|
"none",
|
|
@@ -3657,27 +3803,170 @@ const variantSizeOverridesSchema = z$1.object({
|
|
|
3657
3803
|
* default (e.g. link-style variants declaring zero horizontal padding at
|
|
3658
3804
|
* every size).
|
|
3659
3805
|
*/
|
|
3660
|
-
const
|
|
3806
|
+
const canonicalButtonVariantSchema = z$1.object({
|
|
3661
3807
|
id: z$1.string(),
|
|
3662
3808
|
name: z$1.string().min(1).max(20),
|
|
3663
3809
|
enabled: z$1.boolean(),
|
|
3664
3810
|
priority: prioritySchema,
|
|
3665
3811
|
background: buttonBackgroundSchema,
|
|
3666
|
-
textColorToken: themeColorTokenSchema,
|
|
3667
3812
|
/** Tailwind radius token (e.g. `'rounded-md'`). Omit to inherit from `global.cornerStyle`. */
|
|
3668
3813
|
borderRadius: z$1.string().optional(),
|
|
3669
3814
|
shadow: variantShadowSchema.optional(),
|
|
3670
3815
|
border: buttonBorderSchema.optional(),
|
|
3671
|
-
hoverBackgroundToken:
|
|
3816
|
+
hoverBackgroundToken: opaqueButtonColourTokenSchema.optional(),
|
|
3672
3817
|
effects: variantEffectsSchema.optional(),
|
|
3673
3818
|
sizes: variantSizeOverridesSchema.optional(),
|
|
3674
3819
|
affordance: buttonVariantAffordanceSchema.optional()
|
|
3675
3820
|
});
|
|
3821
|
+
/**
|
|
3822
|
+
* Temporary persisted-theme admission boundary for issue #1206.
|
|
3823
|
+
*
|
|
3824
|
+
* Production inventory on 2026-07-22 found 22 rows using the old independent
|
|
3825
|
+
* `textColorToken`/border colour shape. New source and all downstream code use
|
|
3826
|
+
* only the canonical relationship. Delete this preprocessor after the reviewed
|
|
3827
|
+
* production rewrite reports zero legacy rows.
|
|
3828
|
+
*/
|
|
3829
|
+
const buttonVariantSchema = z$1.preprocess(normalizeLegacyButtonVariantInput, canonicalButtonVariantSchema);
|
|
3676
3830
|
const buttonSystemSchema = z$1.object({
|
|
3677
3831
|
global: buttonGlobalSettingsSchema,
|
|
3678
3832
|
variants: z$1.array(buttonVariantSchema).min(1).max(6),
|
|
3679
3833
|
sizes: buttonSizesSchema.optional()
|
|
3680
3834
|
});
|
|
3835
|
+
function normalizeLegacyButtonVariantInput(input) {
|
|
3836
|
+
if (!isUnknownRecord(input)) return input;
|
|
3837
|
+
const background = input.background;
|
|
3838
|
+
if (!isUnknownRecord(background)) return input;
|
|
3839
|
+
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;
|
|
3840
|
+
const { textColorToken, ...withoutLegacyText } = input;
|
|
3841
|
+
const normalizedBorder = isUnknownRecord(input.border) && typeof input.border.widthClass === "string" ? { widthClass: input.border.widthClass } : input.border;
|
|
3842
|
+
const normalizedAffordance = isUnknownRecord(input.affordance) && typeof input.affordance.iconId === "string" ? { iconId: input.affordance.iconId } : input.affordance;
|
|
3843
|
+
const normalizedEffects = normalizeLegacyButtonEffects(input.effects, background.type);
|
|
3844
|
+
const hoverBackgroundToken = stripLegacyTokenAlpha(input.hoverBackgroundToken);
|
|
3845
|
+
if (background.type === "transparent") return {
|
|
3846
|
+
...withoutLegacyText,
|
|
3847
|
+
background: {
|
|
3848
|
+
type: "surface",
|
|
3849
|
+
role: "link"
|
|
3850
|
+
},
|
|
3851
|
+
border: normalizedBorder,
|
|
3852
|
+
affordance: normalizedAffordance,
|
|
3853
|
+
effects: normalizedEffects,
|
|
3854
|
+
hoverBackgroundToken
|
|
3855
|
+
};
|
|
3856
|
+
if (background.type === "gradient") {
|
|
3857
|
+
const stops = Array.isArray(background.stops) ? background.stops.map(stripLegacyTokenAlpha) : background.stops;
|
|
3858
|
+
return {
|
|
3859
|
+
...withoutLegacyText,
|
|
3860
|
+
background: {
|
|
3861
|
+
...background,
|
|
3862
|
+
stops,
|
|
3863
|
+
foregroundToken: stripLegacyTokenAlpha(background.foregroundToken ?? textColorToken)
|
|
3864
|
+
},
|
|
3865
|
+
border: normalizedBorder,
|
|
3866
|
+
affordance: normalizedAffordance,
|
|
3867
|
+
effects: normalizedEffects,
|
|
3868
|
+
hoverBackgroundToken
|
|
3869
|
+
};
|
|
3870
|
+
}
|
|
3871
|
+
return {
|
|
3872
|
+
...withoutLegacyText,
|
|
3873
|
+
background: background.type === "solid" ? {
|
|
3874
|
+
...background,
|
|
3875
|
+
colorToken: stripLegacyTokenAlpha(background.colorToken)
|
|
3876
|
+
} : background,
|
|
3877
|
+
border: normalizedBorder,
|
|
3878
|
+
affordance: normalizedAffordance,
|
|
3879
|
+
effects: normalizedEffects,
|
|
3880
|
+
hoverBackgroundToken
|
|
3881
|
+
};
|
|
3882
|
+
}
|
|
3883
|
+
function normalizeLegacyButtonGlobalInput(input) {
|
|
3884
|
+
if (!isUnknownRecord(input)) return input;
|
|
3885
|
+
const hoverColorToken = stripLegacyTokenAlpha(input.hoverColorToken);
|
|
3886
|
+
return hoverColorToken === input.hoverColorToken ? input : {
|
|
3887
|
+
...input,
|
|
3888
|
+
hoverColorToken
|
|
3889
|
+
};
|
|
3890
|
+
}
|
|
3891
|
+
function hasLegacyAlphaToken(input, background) {
|
|
3892
|
+
const stops = isUnknownArray(background.stops) ? background.stops : [];
|
|
3893
|
+
return [
|
|
3894
|
+
input.hoverBackgroundToken,
|
|
3895
|
+
background.colorToken,
|
|
3896
|
+
background.foregroundToken,
|
|
3897
|
+
...stops
|
|
3898
|
+
].some((token) => stripLegacyTokenAlpha(token) !== token);
|
|
3899
|
+
}
|
|
3900
|
+
function stripLegacyTokenAlpha(value) {
|
|
3901
|
+
if (typeof value !== "string") return value;
|
|
3902
|
+
const slashIndex = value.indexOf("/");
|
|
3903
|
+
return slashIndex < 0 ? value : value.slice(0, slashIndex);
|
|
3904
|
+
}
|
|
3905
|
+
function hasLegacyButtonEffects(input) {
|
|
3906
|
+
if (!isUnknownRecord(input)) return false;
|
|
3907
|
+
return [
|
|
3908
|
+
"base",
|
|
3909
|
+
"hover",
|
|
3910
|
+
"active",
|
|
3911
|
+
"focus"
|
|
3912
|
+
].some((state) => {
|
|
3913
|
+
const effects = input[state];
|
|
3914
|
+
return Array.isArray(effects) && effects.some((effect) => {
|
|
3915
|
+
if (!isUnknownRecord(effect) || typeof effect.effectId !== "string") return true;
|
|
3916
|
+
const classification = classifyButtonEffectId(effect.effectId);
|
|
3917
|
+
if (classification !== "colour-transition" && classification !== "non-colour") return true;
|
|
3918
|
+
return effect.effectId === "background-on-hover" && isUnknownRecord(effect.options) && stripLegacyTokenAlpha(effect.options.colorToken) !== effect.options.colorToken;
|
|
3919
|
+
});
|
|
3920
|
+
});
|
|
3921
|
+
}
|
|
3922
|
+
function normalizeLegacyButtonEffects(input, backgroundType) {
|
|
3923
|
+
if (!isUnknownRecord(input)) return input;
|
|
3924
|
+
const normalized = {};
|
|
3925
|
+
for (const state of [
|
|
3926
|
+
"base",
|
|
3927
|
+
"hover",
|
|
3928
|
+
"active",
|
|
3929
|
+
"focus"
|
|
3930
|
+
]) {
|
|
3931
|
+
const effects = input[state];
|
|
3932
|
+
if (!Array.isArray(effects)) continue;
|
|
3933
|
+
const safeEffects = effects.flatMap((effect) => {
|
|
3934
|
+
if (!isUnknownRecord(effect) || typeof effect.effectId !== "string") return [];
|
|
3935
|
+
const classification = classifyButtonEffectId(effect.effectId);
|
|
3936
|
+
if (classification === "non-colour") return [effect];
|
|
3937
|
+
if (classification !== "colour-transition") return [];
|
|
3938
|
+
if (effect.effectId === "background-on-hover") {
|
|
3939
|
+
const options = isUnknownRecord(effect.options) ? effect.options : null;
|
|
3940
|
+
const colorToken = options === null ? null : parseOpaqueButtonColourToken(stripLegacyTokenAlpha(options.colorToken));
|
|
3941
|
+
return colorToken === null ? [] : [{
|
|
3942
|
+
...effect,
|
|
3943
|
+
options: {
|
|
3944
|
+
...options,
|
|
3945
|
+
colorToken
|
|
3946
|
+
}
|
|
3947
|
+
}];
|
|
3948
|
+
}
|
|
3949
|
+
if (backgroundType !== "solid") return [];
|
|
3950
|
+
const rawAmount = isUnknownRecord(effect.options) ? effect.options.amount : void 0;
|
|
3951
|
+
const amount = typeof rawAmount === "number" && rawAmount > 0 ? Math.max(100, Math.round(rawAmount / 100) * 100) : 100;
|
|
3952
|
+
return [{
|
|
3953
|
+
...effect,
|
|
3954
|
+
options: {
|
|
3955
|
+
...isUnknownRecord(effect.options) ? effect.options : {},
|
|
3956
|
+
amount
|
|
3957
|
+
}
|
|
3958
|
+
}];
|
|
3959
|
+
});
|
|
3960
|
+
if (safeEffects.length > 0) normalized[state] = safeEffects;
|
|
3961
|
+
}
|
|
3962
|
+
return Object.keys(normalized).length === 0 ? void 0 : normalized;
|
|
3963
|
+
}
|
|
3964
|
+
function isUnknownRecord(value) {
|
|
3965
|
+
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
3966
|
+
}
|
|
3967
|
+
function isUnknownArray(value) {
|
|
3968
|
+
return Array.isArray(value);
|
|
3969
|
+
}
|
|
3681
3970
|
buttonSizeNameSchema.options;
|
|
3682
3971
|
//#endregion
|
|
3683
3972
|
//#region ../theme-core/src/buttons/personalities/types.ts
|
|
@@ -3704,7 +3993,7 @@ function defineButtonPersonality(input) {
|
|
|
3704
3993
|
name: input.name,
|
|
3705
3994
|
description: input.description,
|
|
3706
3995
|
tags: input.tags,
|
|
3707
|
-
buttonSystem: input.buttonSystem
|
|
3996
|
+
buttonSystem: buttonSystemSchema.parse(input.buttonSystem)
|
|
3708
3997
|
};
|
|
3709
3998
|
}
|
|
3710
3999
|
//#endregion
|
|
@@ -3757,19 +4046,15 @@ const brushedWash = defineButtonPersonality({
|
|
|
3757
4046
|
background: {
|
|
3758
4047
|
type: "gradient",
|
|
3759
4048
|
stops: ["primary", "accent"],
|
|
3760
|
-
direction: "to-r"
|
|
4049
|
+
direction: "to-r",
|
|
4050
|
+
foregroundToken: "primaryForeground"
|
|
3761
4051
|
},
|
|
3762
|
-
textColorToken: "primaryForeground",
|
|
3763
4052
|
borderRadius: "rounded-lg",
|
|
3764
4053
|
shadow: {
|
|
3765
4054
|
elevation: "low",
|
|
3766
4055
|
softness: "soft",
|
|
3767
4056
|
position: "bottom"
|
|
3768
|
-
}
|
|
3769
|
-
effects: { hover: [{
|
|
3770
|
-
effectId: "opacity-reduce",
|
|
3771
|
-
options: { reduction: -15 }
|
|
3772
|
-
}] }
|
|
4057
|
+
}
|
|
3773
4058
|
},
|
|
3774
4059
|
{
|
|
3775
4060
|
id: "secondary",
|
|
@@ -3779,32 +4064,27 @@ const brushedWash = defineButtonPersonality({
|
|
|
3779
4064
|
background: {
|
|
3780
4065
|
type: "gradient",
|
|
3781
4066
|
stops: ["secondary", "accent"],
|
|
3782
|
-
direction: "to-br"
|
|
4067
|
+
direction: "to-br",
|
|
4068
|
+
foregroundToken: "primaryForeground"
|
|
3783
4069
|
},
|
|
3784
|
-
textColorToken: "primaryForeground",
|
|
3785
4070
|
borderRadius: "rounded-lg",
|
|
3786
4071
|
shadow: {
|
|
3787
4072
|
elevation: "low",
|
|
3788
4073
|
softness: "soft",
|
|
3789
4074
|
position: "bottom"
|
|
3790
|
-
}
|
|
3791
|
-
effects: { hover: [{
|
|
3792
|
-
effectId: "opacity-reduce",
|
|
3793
|
-
options: { reduction: -15 }
|
|
3794
|
-
}] }
|
|
4075
|
+
}
|
|
3795
4076
|
},
|
|
3796
4077
|
{
|
|
3797
4078
|
id: "outline",
|
|
3798
4079
|
name: "Outline",
|
|
3799
4080
|
enabled: true,
|
|
3800
4081
|
priority: 3,
|
|
3801
|
-
background: {
|
|
3802
|
-
|
|
3803
|
-
|
|
3804
|
-
border: {
|
|
3805
|
-
widthClass: "border",
|
|
3806
|
-
colorToken: "primary"
|
|
4082
|
+
background: {
|
|
4083
|
+
type: "surface",
|
|
4084
|
+
role: "link"
|
|
3807
4085
|
},
|
|
4086
|
+
borderRadius: "rounded-lg",
|
|
4087
|
+
border: { widthClass: "border" },
|
|
3808
4088
|
effects: { hover: [{
|
|
3809
4089
|
effectId: "background-on-hover",
|
|
3810
4090
|
options: { colorToken: "surface" }
|
|
@@ -3815,8 +4095,10 @@ const brushedWash = defineButtonPersonality({
|
|
|
3815
4095
|
name: "Ghost",
|
|
3816
4096
|
enabled: true,
|
|
3817
4097
|
priority: 3,
|
|
3818
|
-
background: {
|
|
3819
|
-
|
|
4098
|
+
background: {
|
|
4099
|
+
type: "surface",
|
|
4100
|
+
role: "link"
|
|
4101
|
+
},
|
|
3820
4102
|
borderRadius: "rounded-lg",
|
|
3821
4103
|
effects: { hover: [{
|
|
3822
4104
|
effectId: "background-on-hover",
|
|
@@ -3862,7 +4144,6 @@ const confidentChip = defineButtonPersonality({
|
|
|
3862
4144
|
type: "solid",
|
|
3863
4145
|
colorToken: "primary"
|
|
3864
4146
|
},
|
|
3865
|
-
textColorToken: "primaryForeground",
|
|
3866
4147
|
borderRadius: "rounded-md",
|
|
3867
4148
|
shadow: {
|
|
3868
4149
|
elevation: "medium",
|
|
@@ -3872,7 +4153,7 @@ const confidentChip = defineButtonPersonality({
|
|
|
3872
4153
|
effects: {
|
|
3873
4154
|
hover: [{
|
|
3874
4155
|
effectId: "darken-background",
|
|
3875
|
-
options: { amount:
|
|
4156
|
+
options: { amount: 100 }
|
|
3876
4157
|
}],
|
|
3877
4158
|
active: [{
|
|
3878
4159
|
effectId: "scale-down",
|
|
@@ -3889,12 +4170,8 @@ const confidentChip = defineButtonPersonality({
|
|
|
3889
4170
|
type: "solid",
|
|
3890
4171
|
colorToken: "surface"
|
|
3891
4172
|
},
|
|
3892
|
-
textColorToken: "text",
|
|
3893
4173
|
borderRadius: "rounded-md",
|
|
3894
|
-
border: {
|
|
3895
|
-
widthClass: "border",
|
|
3896
|
-
colorToken: "border"
|
|
3897
|
-
},
|
|
4174
|
+
border: { widthClass: "border" },
|
|
3898
4175
|
effects: { hover: [{
|
|
3899
4176
|
effectId: "background-on-hover",
|
|
3900
4177
|
options: { colorToken: "background" }
|
|
@@ -3905,13 +4182,12 @@ const confidentChip = defineButtonPersonality({
|
|
|
3905
4182
|
name: "Outline",
|
|
3906
4183
|
enabled: true,
|
|
3907
4184
|
priority: 3,
|
|
3908
|
-
background: {
|
|
3909
|
-
|
|
3910
|
-
|
|
3911
|
-
border: {
|
|
3912
|
-
widthClass: "border",
|
|
3913
|
-
colorToken: "primary"
|
|
4185
|
+
background: {
|
|
4186
|
+
type: "surface",
|
|
4187
|
+
role: "link"
|
|
3914
4188
|
},
|
|
4189
|
+
borderRadius: "rounded-md",
|
|
4190
|
+
border: { widthClass: "border" },
|
|
3915
4191
|
effects: { hover: [{
|
|
3916
4192
|
effectId: "background-on-hover",
|
|
3917
4193
|
options: { colorToken: "surface" }
|
|
@@ -3922,8 +4198,10 @@ const confidentChip = defineButtonPersonality({
|
|
|
3922
4198
|
name: "Ghost",
|
|
3923
4199
|
enabled: true,
|
|
3924
4200
|
priority: 3,
|
|
3925
|
-
background: {
|
|
3926
|
-
|
|
4201
|
+
background: {
|
|
4202
|
+
type: "surface",
|
|
4203
|
+
role: "link"
|
|
4204
|
+
},
|
|
3927
4205
|
borderRadius: "rounded-md",
|
|
3928
4206
|
effects: { hover: [{
|
|
3929
4207
|
effectId: "background-on-hover",
|
|
@@ -3986,7 +4264,6 @@ const earthPill = defineButtonPersonality({
|
|
|
3986
4264
|
type: "solid",
|
|
3987
4265
|
colorToken: "primary"
|
|
3988
4266
|
},
|
|
3989
|
-
textColorToken: "primaryForeground",
|
|
3990
4267
|
borderRadius: "rounded-full",
|
|
3991
4268
|
shadow: {
|
|
3992
4269
|
elevation: "low",
|
|
@@ -4012,13 +4289,12 @@ const earthPill = defineButtonPersonality({
|
|
|
4012
4289
|
name: "Secondary",
|
|
4013
4290
|
enabled: true,
|
|
4014
4291
|
priority: 2,
|
|
4015
|
-
background: {
|
|
4016
|
-
|
|
4017
|
-
|
|
4018
|
-
border: {
|
|
4019
|
-
widthClass: "border",
|
|
4020
|
-
colorToken: "primary"
|
|
4292
|
+
background: {
|
|
4293
|
+
type: "surface",
|
|
4294
|
+
role: "link"
|
|
4021
4295
|
},
|
|
4296
|
+
borderRadius: "rounded-full",
|
|
4297
|
+
border: { widthClass: "border" },
|
|
4022
4298
|
effects: { hover: [{
|
|
4023
4299
|
effectId: "background-on-hover",
|
|
4024
4300
|
options: { colorToken: "muted" }
|
|
@@ -4029,13 +4305,12 @@ const earthPill = defineButtonPersonality({
|
|
|
4029
4305
|
name: "Outline",
|
|
4030
4306
|
enabled: true,
|
|
4031
4307
|
priority: 3,
|
|
4032
|
-
background: {
|
|
4033
|
-
|
|
4034
|
-
|
|
4035
|
-
border: {
|
|
4036
|
-
widthClass: "border",
|
|
4037
|
-
colorToken: "border"
|
|
4308
|
+
background: {
|
|
4309
|
+
type: "surface",
|
|
4310
|
+
role: "link"
|
|
4038
4311
|
},
|
|
4312
|
+
borderRadius: "rounded-full",
|
|
4313
|
+
border: { widthClass: "border" },
|
|
4039
4314
|
effects: { hover: [{
|
|
4040
4315
|
effectId: "background-on-hover",
|
|
4041
4316
|
options: { colorToken: "surfaceAlt" }
|
|
@@ -4046,8 +4321,10 @@ const earthPill = defineButtonPersonality({
|
|
|
4046
4321
|
name: "Ghost",
|
|
4047
4322
|
enabled: true,
|
|
4048
4323
|
priority: 3,
|
|
4049
|
-
background: {
|
|
4050
|
-
|
|
4324
|
+
background: {
|
|
4325
|
+
type: "surface",
|
|
4326
|
+
role: "link"
|
|
4327
|
+
},
|
|
4051
4328
|
borderRadius: "rounded-full",
|
|
4052
4329
|
shadow: {
|
|
4053
4330
|
elevation: "none",
|
|
@@ -4068,11 +4345,7 @@ const earthPill = defineButtonPersonality({
|
|
|
4068
4345
|
padding: "0.625rem 0",
|
|
4069
4346
|
fontSize: "text-xl"
|
|
4070
4347
|
}
|
|
4071
|
-
}
|
|
4072
|
-
effects: { hover: [{
|
|
4073
|
-
effectId: "opacity-reduce",
|
|
4074
|
-
options: { reduction: 25 }
|
|
4075
|
-
}] }
|
|
4348
|
+
}
|
|
4076
4349
|
}
|
|
4077
4350
|
]
|
|
4078
4351
|
}
|
|
@@ -4108,8 +4381,10 @@ const editorialLink = defineButtonPersonality({
|
|
|
4108
4381
|
name: "Primary",
|
|
4109
4382
|
enabled: true,
|
|
4110
4383
|
priority: 1,
|
|
4111
|
-
background: {
|
|
4112
|
-
|
|
4384
|
+
background: {
|
|
4385
|
+
type: "surface",
|
|
4386
|
+
role: "link"
|
|
4387
|
+
},
|
|
4113
4388
|
borderRadius: "rounded-none",
|
|
4114
4389
|
sizes: {
|
|
4115
4390
|
sm: { padding: "0.25rem 0" },
|
|
@@ -4131,8 +4406,10 @@ const editorialLink = defineButtonPersonality({
|
|
|
4131
4406
|
name: "Secondary",
|
|
4132
4407
|
enabled: true,
|
|
4133
4408
|
priority: 2,
|
|
4134
|
-
background: {
|
|
4135
|
-
|
|
4409
|
+
background: {
|
|
4410
|
+
type: "surface",
|
|
4411
|
+
role: "link"
|
|
4412
|
+
},
|
|
4136
4413
|
borderRadius: "rounded-none",
|
|
4137
4414
|
sizes: {
|
|
4138
4415
|
sm: { padding: "0.25rem 0" },
|
|
@@ -4154,8 +4431,10 @@ const editorialLink = defineButtonPersonality({
|
|
|
4154
4431
|
name: "Outline",
|
|
4155
4432
|
enabled: true,
|
|
4156
4433
|
priority: 3,
|
|
4157
|
-
background: {
|
|
4158
|
-
|
|
4434
|
+
background: {
|
|
4435
|
+
type: "surface",
|
|
4436
|
+
role: "link"
|
|
4437
|
+
},
|
|
4159
4438
|
borderRadius: "rounded-none",
|
|
4160
4439
|
sizes: {
|
|
4161
4440
|
sm: { padding: "0.25rem 0" },
|
|
@@ -4177,19 +4456,17 @@ const editorialLink = defineButtonPersonality({
|
|
|
4177
4456
|
name: "Ghost",
|
|
4178
4457
|
enabled: true,
|
|
4179
4458
|
priority: 3,
|
|
4180
|
-
background: {
|
|
4181
|
-
|
|
4459
|
+
background: {
|
|
4460
|
+
type: "surface",
|
|
4461
|
+
role: "link"
|
|
4462
|
+
},
|
|
4182
4463
|
borderRadius: "rounded-none",
|
|
4183
4464
|
sizes: {
|
|
4184
4465
|
sm: { padding: "0.25rem 0" },
|
|
4185
4466
|
md: { padding: "0.5rem 0" },
|
|
4186
4467
|
lg: { padding: "0.625rem 0" },
|
|
4187
4468
|
xl: { padding: "0.75rem 0" }
|
|
4188
|
-
}
|
|
4189
|
-
effects: { hover: [{
|
|
4190
|
-
effectId: "opacity-reduce",
|
|
4191
|
-
options: { reduction: -20 }
|
|
4192
|
-
}] }
|
|
4469
|
+
}
|
|
4193
4470
|
}
|
|
4194
4471
|
]
|
|
4195
4472
|
}
|
|
@@ -4251,12 +4528,8 @@ const flatInk = defineButtonPersonality({
|
|
|
4251
4528
|
type: "solid",
|
|
4252
4529
|
colorToken: "primary"
|
|
4253
4530
|
},
|
|
4254
|
-
textColorToken: "primaryForeground",
|
|
4255
4531
|
borderRadius: "rounded-lg",
|
|
4256
|
-
affordance: {
|
|
4257
|
-
iconId: "ArrowRight",
|
|
4258
|
-
colorToken: "accent"
|
|
4259
|
-
},
|
|
4532
|
+
affordance: { iconId: "ArrowRight" },
|
|
4260
4533
|
effects: { hover: [{
|
|
4261
4534
|
effectId: "lift",
|
|
4262
4535
|
options: { translateY: "-2px" }
|
|
@@ -4270,13 +4543,12 @@ const flatInk = defineButtonPersonality({
|
|
|
4270
4543
|
name: "Secondary",
|
|
4271
4544
|
enabled: true,
|
|
4272
4545
|
priority: 2,
|
|
4273
|
-
background: {
|
|
4274
|
-
|
|
4275
|
-
|
|
4276
|
-
border: {
|
|
4277
|
-
widthClass: "border",
|
|
4278
|
-
colorToken: "border"
|
|
4546
|
+
background: {
|
|
4547
|
+
type: "surface",
|
|
4548
|
+
role: "link"
|
|
4279
4549
|
},
|
|
4550
|
+
borderRadius: "rounded-lg",
|
|
4551
|
+
border: { widthClass: "border" },
|
|
4280
4552
|
effects: { hover: [{
|
|
4281
4553
|
effectId: "lift",
|
|
4282
4554
|
options: { translateY: "-2px" }
|
|
@@ -4294,12 +4566,8 @@ const flatInk = defineButtonPersonality({
|
|
|
4294
4566
|
type: "solid",
|
|
4295
4567
|
colorToken: "accent"
|
|
4296
4568
|
},
|
|
4297
|
-
textColorToken: "accentForeground",
|
|
4298
4569
|
borderRadius: "rounded-lg",
|
|
4299
|
-
affordance: {
|
|
4300
|
-
iconId: "ArrowRight",
|
|
4301
|
-
colorToken: "accentForeground"
|
|
4302
|
-
},
|
|
4570
|
+
affordance: { iconId: "ArrowRight" },
|
|
4303
4571
|
effects: { hover: [{
|
|
4304
4572
|
effectId: "lift",
|
|
4305
4573
|
options: { translateY: "-2px" }
|
|
@@ -4362,7 +4630,6 @@ const inkStamp = defineButtonPersonality({
|
|
|
4362
4630
|
type: "solid",
|
|
4363
4631
|
colorToken: "primary"
|
|
4364
4632
|
},
|
|
4365
|
-
textColorToken: "primaryForeground",
|
|
4366
4633
|
borderRadius: "rounded-md",
|
|
4367
4634
|
effects: {
|
|
4368
4635
|
hover: [{
|
|
@@ -4383,13 +4650,12 @@ const inkStamp = defineButtonPersonality({
|
|
|
4383
4650
|
name: "Secondary",
|
|
4384
4651
|
enabled: true,
|
|
4385
4652
|
priority: 2,
|
|
4386
|
-
background: {
|
|
4387
|
-
|
|
4388
|
-
|
|
4389
|
-
border: {
|
|
4390
|
-
widthClass: "border-2",
|
|
4391
|
-
colorToken: "primary"
|
|
4653
|
+
background: {
|
|
4654
|
+
type: "surface",
|
|
4655
|
+
role: "link"
|
|
4392
4656
|
},
|
|
4657
|
+
borderRadius: "rounded-md",
|
|
4658
|
+
border: { widthClass: "border-2" },
|
|
4393
4659
|
effects: { hover: [{
|
|
4394
4660
|
effectId: "background-on-hover",
|
|
4395
4661
|
options: { colorToken: "surface" }
|
|
@@ -4400,13 +4666,12 @@ const inkStamp = defineButtonPersonality({
|
|
|
4400
4666
|
name: "Outline",
|
|
4401
4667
|
enabled: true,
|
|
4402
4668
|
priority: 3,
|
|
4403
|
-
background: {
|
|
4404
|
-
|
|
4405
|
-
|
|
4406
|
-
border: {
|
|
4407
|
-
widthClass: "border-2",
|
|
4408
|
-
colorToken: "border"
|
|
4669
|
+
background: {
|
|
4670
|
+
type: "surface",
|
|
4671
|
+
role: "link"
|
|
4409
4672
|
},
|
|
4673
|
+
borderRadius: "rounded-md",
|
|
4674
|
+
border: { widthClass: "border-2" },
|
|
4410
4675
|
effects: { hover: [{
|
|
4411
4676
|
effectId: "background-on-hover",
|
|
4412
4677
|
options: { colorToken: "surface" }
|
|
@@ -4417,8 +4682,10 @@ const inkStamp = defineButtonPersonality({
|
|
|
4417
4682
|
name: "Ghost",
|
|
4418
4683
|
enabled: true,
|
|
4419
4684
|
priority: 3,
|
|
4420
|
-
background: {
|
|
4421
|
-
|
|
4685
|
+
background: {
|
|
4686
|
+
type: "surface",
|
|
4687
|
+
role: "link"
|
|
4688
|
+
},
|
|
4422
4689
|
borderRadius: "rounded-none",
|
|
4423
4690
|
sizes: {
|
|
4424
4691
|
sm: {
|
|
@@ -4511,7 +4778,6 @@ const joyStamp = defineButtonPersonality({
|
|
|
4511
4778
|
type: "solid",
|
|
4512
4779
|
colorToken: "primary"
|
|
4513
4780
|
},
|
|
4514
|
-
textColorToken: "primaryForeground",
|
|
4515
4781
|
borderRadius: "rounded-full",
|
|
4516
4782
|
shadow: {
|
|
4517
4783
|
elevation: "high",
|
|
@@ -4525,13 +4791,12 @@ const joyStamp = defineButtonPersonality({
|
|
|
4525
4791
|
name: "Secondary",
|
|
4526
4792
|
enabled: true,
|
|
4527
4793
|
priority: 2,
|
|
4528
|
-
background: {
|
|
4529
|
-
|
|
4530
|
-
|
|
4531
|
-
border: {
|
|
4532
|
-
widthClass: "border-2",
|
|
4533
|
-
colorToken: "text"
|
|
4794
|
+
background: {
|
|
4795
|
+
type: "surface",
|
|
4796
|
+
role: "link"
|
|
4534
4797
|
},
|
|
4798
|
+
borderRadius: "rounded-full",
|
|
4799
|
+
border: { widthClass: "border-2" },
|
|
4535
4800
|
shadow: {
|
|
4536
4801
|
elevation: "high",
|
|
4537
4802
|
softness: "hard",
|
|
@@ -4596,12 +4861,8 @@ const ornateRitual = defineButtonPersonality({
|
|
|
4596
4861
|
type: "solid",
|
|
4597
4862
|
colorToken: "primary"
|
|
4598
4863
|
},
|
|
4599
|
-
textColorToken: "primaryForeground",
|
|
4600
4864
|
borderRadius: "rounded-md",
|
|
4601
|
-
border: {
|
|
4602
|
-
widthClass: "border",
|
|
4603
|
-
colorToken: "primary"
|
|
4604
|
-
},
|
|
4865
|
+
border: { widthClass: "border" },
|
|
4605
4866
|
effects: {
|
|
4606
4867
|
hover: [{
|
|
4607
4868
|
effectId: "background-on-hover",
|
|
@@ -4622,12 +4883,8 @@ const ornateRitual = defineButtonPersonality({
|
|
|
4622
4883
|
type: "solid",
|
|
4623
4884
|
colorToken: "secondary"
|
|
4624
4885
|
},
|
|
4625
|
-
textColorToken: "primaryForeground",
|
|
4626
4886
|
borderRadius: "rounded-md",
|
|
4627
|
-
border: {
|
|
4628
|
-
widthClass: "border",
|
|
4629
|
-
colorToken: "primary"
|
|
4630
|
-
},
|
|
4887
|
+
border: { widthClass: "border" },
|
|
4631
4888
|
effects: { hover: [{
|
|
4632
4889
|
effectId: "background-on-hover",
|
|
4633
4890
|
options: { colorToken: "surface" }
|
|
@@ -4638,13 +4895,12 @@ const ornateRitual = defineButtonPersonality({
|
|
|
4638
4895
|
name: "Outline",
|
|
4639
4896
|
enabled: true,
|
|
4640
4897
|
priority: 3,
|
|
4641
|
-
background: {
|
|
4642
|
-
|
|
4643
|
-
|
|
4644
|
-
border: {
|
|
4645
|
-
widthClass: "border",
|
|
4646
|
-
colorToken: "primary"
|
|
4898
|
+
background: {
|
|
4899
|
+
type: "surface",
|
|
4900
|
+
role: "link"
|
|
4647
4901
|
},
|
|
4902
|
+
borderRadius: "rounded-md",
|
|
4903
|
+
border: { widthClass: "border" },
|
|
4648
4904
|
effects: { hover: [{
|
|
4649
4905
|
effectId: "background-on-hover",
|
|
4650
4906
|
options: { colorToken: "muted" }
|
|
@@ -4655,8 +4911,10 @@ const ornateRitual = defineButtonPersonality({
|
|
|
4655
4911
|
name: "Ghost",
|
|
4656
4912
|
enabled: true,
|
|
4657
4913
|
priority: 3,
|
|
4658
|
-
background: {
|
|
4659
|
-
|
|
4914
|
+
background: {
|
|
4915
|
+
type: "surface",
|
|
4916
|
+
role: "link"
|
|
4917
|
+
},
|
|
4660
4918
|
borderRadius: "rounded-none",
|
|
4661
4919
|
sizes: {
|
|
4662
4920
|
sm: {
|
|
@@ -4738,14 +4996,10 @@ const pebble = defineButtonPersonality({
|
|
|
4738
4996
|
type: "solid",
|
|
4739
4997
|
colorToken: "primary"
|
|
4740
4998
|
},
|
|
4741
|
-
textColorToken: "primaryForeground",
|
|
4742
4999
|
borderRadius: "rounded-full",
|
|
4743
5000
|
effects: { hover: [{
|
|
4744
|
-
effectId: "background
|
|
4745
|
-
options: {
|
|
4746
|
-
colorToken: "primary",
|
|
4747
|
-
opacity: 88
|
|
4748
|
-
}
|
|
5001
|
+
effectId: "darken-background",
|
|
5002
|
+
options: { amount: 100 }
|
|
4749
5003
|
}] }
|
|
4750
5004
|
},
|
|
4751
5005
|
{
|
|
@@ -4753,13 +5007,12 @@ const pebble = defineButtonPersonality({
|
|
|
4753
5007
|
name: "Secondary",
|
|
4754
5008
|
enabled: true,
|
|
4755
5009
|
priority: 2,
|
|
4756
|
-
background: {
|
|
4757
|
-
|
|
4758
|
-
|
|
4759
|
-
border: {
|
|
4760
|
-
widthClass: "border-2",
|
|
4761
|
-
colorToken: "accent"
|
|
5010
|
+
background: {
|
|
5011
|
+
type: "surface",
|
|
5012
|
+
role: "link"
|
|
4762
5013
|
},
|
|
5014
|
+
borderRadius: "rounded-full",
|
|
5015
|
+
border: { widthClass: "border-2" },
|
|
4763
5016
|
effects: { hover: [{
|
|
4764
5017
|
effectId: "background-on-hover",
|
|
4765
5018
|
options: { colorToken: "accent" }
|
|
@@ -4770,13 +5023,12 @@ const pebble = defineButtonPersonality({
|
|
|
4770
5023
|
name: "Outline",
|
|
4771
5024
|
enabled: true,
|
|
4772
5025
|
priority: 3,
|
|
4773
|
-
background: {
|
|
4774
|
-
|
|
4775
|
-
|
|
4776
|
-
border: {
|
|
4777
|
-
widthClass: "border",
|
|
4778
|
-
colorToken: "border"
|
|
5026
|
+
background: {
|
|
5027
|
+
type: "surface",
|
|
5028
|
+
role: "link"
|
|
4779
5029
|
},
|
|
5030
|
+
borderRadius: "rounded-full",
|
|
5031
|
+
border: { widthClass: "border" },
|
|
4780
5032
|
effects: { hover: [{
|
|
4781
5033
|
effectId: "background-on-hover",
|
|
4782
5034
|
options: { colorToken: "surface" }
|
|
@@ -4787,8 +5039,10 @@ const pebble = defineButtonPersonality({
|
|
|
4787
5039
|
name: "Ghost",
|
|
4788
5040
|
enabled: true,
|
|
4789
5041
|
priority: 3,
|
|
4790
|
-
background: {
|
|
4791
|
-
|
|
5042
|
+
background: {
|
|
5043
|
+
type: "surface",
|
|
5044
|
+
role: "link"
|
|
5045
|
+
},
|
|
4792
5046
|
borderRadius: "rounded-full",
|
|
4793
5047
|
sizes: {
|
|
4794
5048
|
sm: {
|
|
@@ -4804,11 +5058,7 @@ const pebble = defineButtonPersonality({
|
|
|
4804
5058
|
padding: "0.75rem 1.5rem",
|
|
4805
5059
|
fontSize: "text-xl"
|
|
4806
5060
|
}
|
|
4807
|
-
}
|
|
4808
|
-
effects: { hover: [{
|
|
4809
|
-
effectId: "opacity-reduce",
|
|
4810
|
-
options: { reduction: 30 }
|
|
4811
|
-
}] }
|
|
5061
|
+
}
|
|
4812
5062
|
}
|
|
4813
5063
|
]
|
|
4814
5064
|
}
|
|
@@ -4870,15 +5120,11 @@ const quietArrow = defineButtonPersonality({
|
|
|
4870
5120
|
type: "solid",
|
|
4871
5121
|
colorToken: "primary"
|
|
4872
5122
|
},
|
|
4873
|
-
textColorToken: "primaryForeground",
|
|
4874
5123
|
borderRadius: "rounded-xl",
|
|
4875
5124
|
affordance: { iconId: "ArrowRight" },
|
|
4876
5125
|
effects: { hover: [{
|
|
4877
|
-
effectId: "background
|
|
4878
|
-
options: {
|
|
4879
|
-
colorToken: "primary",
|
|
4880
|
-
opacity: 90
|
|
4881
|
-
}
|
|
5126
|
+
effectId: "darken-background",
|
|
5127
|
+
options: { amount: 100 }
|
|
4882
5128
|
}] }
|
|
4883
5129
|
},
|
|
4884
5130
|
{
|
|
@@ -4886,13 +5132,12 @@ const quietArrow = defineButtonPersonality({
|
|
|
4886
5132
|
name: "Secondary",
|
|
4887
5133
|
enabled: true,
|
|
4888
5134
|
priority: 2,
|
|
4889
|
-
background: {
|
|
4890
|
-
|
|
4891
|
-
|
|
4892
|
-
border: {
|
|
4893
|
-
widthClass: "border",
|
|
4894
|
-
colorToken: "primary"
|
|
5135
|
+
background: {
|
|
5136
|
+
type: "surface",
|
|
5137
|
+
role: "link"
|
|
4895
5138
|
},
|
|
5139
|
+
borderRadius: "rounded-xl",
|
|
5140
|
+
border: { widthClass: "border" },
|
|
4896
5141
|
affordance: { iconId: "ArrowRight" },
|
|
4897
5142
|
effects: { hover: [{
|
|
4898
5143
|
effectId: "background-on-hover",
|
|
@@ -4904,21 +5149,22 @@ const quietArrow = defineButtonPersonality({
|
|
|
4904
5149
|
name: "Outline",
|
|
4905
5150
|
enabled: true,
|
|
4906
5151
|
priority: 3,
|
|
4907
|
-
background: {
|
|
4908
|
-
|
|
5152
|
+
background: {
|
|
5153
|
+
type: "surface",
|
|
5154
|
+
role: "link"
|
|
5155
|
+
},
|
|
4909
5156
|
borderRadius: "rounded-xl",
|
|
4910
|
-
border: {
|
|
4911
|
-
widthClass: "border",
|
|
4912
|
-
colorToken: "primary"
|
|
4913
|
-
}
|
|
5157
|
+
border: { widthClass: "border" }
|
|
4914
5158
|
},
|
|
4915
5159
|
{
|
|
4916
5160
|
id: "ghost",
|
|
4917
5161
|
name: "Ghost",
|
|
4918
5162
|
enabled: true,
|
|
4919
5163
|
priority: 3,
|
|
4920
|
-
background: {
|
|
4921
|
-
|
|
5164
|
+
background: {
|
|
5165
|
+
type: "surface",
|
|
5166
|
+
role: "link"
|
|
5167
|
+
},
|
|
4922
5168
|
borderRadius: "rounded-xl"
|
|
4923
5169
|
}
|
|
4924
5170
|
]
|
|
@@ -4982,7 +5228,6 @@ const showtimePill = defineButtonPersonality({
|
|
|
4982
5228
|
type: "solid",
|
|
4983
5229
|
colorToken: "primary"
|
|
4984
5230
|
},
|
|
4985
|
-
textColorToken: "background",
|
|
4986
5231
|
borderRadius: "rounded-full",
|
|
4987
5232
|
effects: { hover: [{ effectId: "pop" }] }
|
|
4988
5233
|
},
|
|
@@ -4991,13 +5236,12 @@ const showtimePill = defineButtonPersonality({
|
|
|
4991
5236
|
name: "Secondary",
|
|
4992
5237
|
enabled: true,
|
|
4993
5238
|
priority: 2,
|
|
4994
|
-
background: {
|
|
4995
|
-
|
|
4996
|
-
|
|
4997
|
-
border: {
|
|
4998
|
-
widthClass: "border-2",
|
|
4999
|
-
colorToken: "primary"
|
|
5239
|
+
background: {
|
|
5240
|
+
type: "surface",
|
|
5241
|
+
role: "link"
|
|
5000
5242
|
},
|
|
5243
|
+
borderRadius: "rounded-full",
|
|
5244
|
+
border: { widthClass: "border-2" },
|
|
5001
5245
|
effects: { hover: [{ effectId: "pop" }] }
|
|
5002
5246
|
},
|
|
5003
5247
|
{
|
|
@@ -5009,7 +5253,6 @@ const showtimePill = defineButtonPersonality({
|
|
|
5009
5253
|
type: "solid",
|
|
5010
5254
|
colorToken: "secondary"
|
|
5011
5255
|
},
|
|
5012
|
-
textColorToken: "primary",
|
|
5013
5256
|
borderRadius: "rounded-full",
|
|
5014
5257
|
effects: { hover: [{ effectId: "pop" }] }
|
|
5015
5258
|
},
|
|
@@ -5022,12 +5265,8 @@ const showtimePill = defineButtonPersonality({
|
|
|
5022
5265
|
type: "solid",
|
|
5023
5266
|
colorToken: "background"
|
|
5024
5267
|
},
|
|
5025
|
-
textColorToken: "primary",
|
|
5026
5268
|
borderRadius: "rounded-full",
|
|
5027
|
-
border: {
|
|
5028
|
-
widthClass: "border-2",
|
|
5029
|
-
colorToken: "primary"
|
|
5030
|
-
},
|
|
5269
|
+
border: { widthClass: "border-2" },
|
|
5031
5270
|
effects: { hover: [{
|
|
5032
5271
|
effectId: "background-on-hover",
|
|
5033
5272
|
options: { colorToken: "surface" }
|
|
@@ -5038,13 +5277,12 @@ const showtimePill = defineButtonPersonality({
|
|
|
5038
5277
|
name: "Outline",
|
|
5039
5278
|
enabled: true,
|
|
5040
5279
|
priority: 3,
|
|
5041
|
-
background: {
|
|
5042
|
-
|
|
5043
|
-
|
|
5044
|
-
border: {
|
|
5045
|
-
widthClass: "border-2",
|
|
5046
|
-
colorToken: "primary"
|
|
5280
|
+
background: {
|
|
5281
|
+
type: "surface",
|
|
5282
|
+
role: "link"
|
|
5047
5283
|
},
|
|
5284
|
+
borderRadius: "rounded-full",
|
|
5285
|
+
border: { widthClass: "border-2" },
|
|
5048
5286
|
effects: { hover: [{
|
|
5049
5287
|
effectId: "background-on-hover",
|
|
5050
5288
|
options: { colorToken: "background" }
|
|
@@ -5055,8 +5293,10 @@ const showtimePill = defineButtonPersonality({
|
|
|
5055
5293
|
name: "Ghost",
|
|
5056
5294
|
enabled: true,
|
|
5057
5295
|
priority: 3,
|
|
5058
|
-
background: {
|
|
5059
|
-
|
|
5296
|
+
background: {
|
|
5297
|
+
type: "surface",
|
|
5298
|
+
role: "link"
|
|
5299
|
+
},
|
|
5060
5300
|
borderRadius: "rounded-full",
|
|
5061
5301
|
effects: { hover: [{
|
|
5062
5302
|
effectId: "background-on-hover",
|
|
@@ -5067,104 +5307,151 @@ const showtimePill = defineButtonPersonality({
|
|
|
5067
5307
|
}
|
|
5068
5308
|
});
|
|
5069
5309
|
//#endregion
|
|
5070
|
-
//#region ../theme-core/src/buttons/personalities/
|
|
5071
|
-
|
|
5072
|
-
|
|
5073
|
-
|
|
5074
|
-
|
|
5075
|
-
|
|
5076
|
-
|
|
5077
|
-
|
|
5078
|
-
|
|
5079
|
-
|
|
5080
|
-
|
|
5310
|
+
//#region ../theme-core/src/buttons/personalities/soft-pill.ts
|
|
5311
|
+
/**
|
|
5312
|
+
* Soft Pill — rounded-full pill buttons with a hover lift. The default for
|
|
5313
|
+
* Calm Studio and Modern Wellness; reads as quietly modern and welcoming.
|
|
5314
|
+
*/
|
|
5315
|
+
const softPill = defineButtonPersonality({
|
|
5316
|
+
id: "soft-pill",
|
|
5317
|
+
name: "Soft Pill",
|
|
5318
|
+
description: "Rounded pills with a gentle lift on hover. Quietly modern.",
|
|
5319
|
+
tags: {
|
|
5320
|
+
tone: "classic",
|
|
5321
|
+
energy: "calm",
|
|
5322
|
+
motion: "subtle",
|
|
5323
|
+
era: "organic"
|
|
5324
|
+
},
|
|
5325
|
+
buttonSystem: {
|
|
5326
|
+
global: {
|
|
5327
|
+
cornerStyle: "pill",
|
|
5328
|
+
shadow: "low",
|
|
5329
|
+
textTransform: "none",
|
|
5330
|
+
fontWeight: 500,
|
|
5331
|
+
borderWidth: 2,
|
|
5332
|
+
hoverTransform: "lift",
|
|
5333
|
+
hoverColor: "none"
|
|
5081
5334
|
},
|
|
5082
|
-
|
|
5083
|
-
|
|
5084
|
-
|
|
5085
|
-
|
|
5086
|
-
|
|
5087
|
-
|
|
5088
|
-
|
|
5089
|
-
|
|
5090
|
-
|
|
5335
|
+
variants: [
|
|
5336
|
+
{
|
|
5337
|
+
id: "primary",
|
|
5338
|
+
name: "Primary",
|
|
5339
|
+
enabled: true,
|
|
5340
|
+
priority: 1,
|
|
5341
|
+
background: {
|
|
5342
|
+
type: "solid",
|
|
5343
|
+
colorToken: "primary"
|
|
5344
|
+
},
|
|
5345
|
+
borderRadius: "rounded-full",
|
|
5346
|
+
shadow: {
|
|
5347
|
+
elevation: "low",
|
|
5348
|
+
softness: "soft",
|
|
5349
|
+
position: "bottom"
|
|
5350
|
+
},
|
|
5351
|
+
effects: {
|
|
5352
|
+
hover: [{
|
|
5353
|
+
effectId: "lift",
|
|
5354
|
+
options: { translateY: "-1px" }
|
|
5355
|
+
}],
|
|
5356
|
+
active: [{
|
|
5357
|
+
effectId: "scale-down",
|
|
5358
|
+
options: { scale: "0.98" }
|
|
5359
|
+
}]
|
|
5360
|
+
}
|
|
5091
5361
|
},
|
|
5092
|
-
|
|
5093
|
-
|
|
5094
|
-
|
|
5095
|
-
|
|
5096
|
-
|
|
5097
|
-
|
|
5098
|
-
|
|
5099
|
-
|
|
5100
|
-
colorToken: "primary"
|
|
5101
|
-
},
|
|
5102
|
-
textColorToken: "primaryForeground",
|
|
5103
|
-
borderRadius: "rounded-full",
|
|
5104
|
-
shadow: {
|
|
5105
|
-
elevation: "low",
|
|
5106
|
-
softness: "soft",
|
|
5107
|
-
position: "bottom"
|
|
5108
|
-
},
|
|
5109
|
-
effects: {
|
|
5110
|
-
hover: [{
|
|
5111
|
-
effectId: "lift",
|
|
5112
|
-
options: { translateY: "-1px" }
|
|
5113
|
-
}],
|
|
5114
|
-
active: [{
|
|
5115
|
-
effectId: "scale-down",
|
|
5116
|
-
options: { scale: "0.98" }
|
|
5117
|
-
}]
|
|
5118
|
-
}
|
|
5362
|
+
{
|
|
5363
|
+
id: "secondary",
|
|
5364
|
+
name: "Secondary",
|
|
5365
|
+
enabled: true,
|
|
5366
|
+
priority: 2,
|
|
5367
|
+
background: {
|
|
5368
|
+
type: "surface",
|
|
5369
|
+
role: "link"
|
|
5119
5370
|
},
|
|
5120
|
-
|
|
5121
|
-
|
|
5122
|
-
|
|
5123
|
-
|
|
5124
|
-
|
|
5125
|
-
|
|
5126
|
-
|
|
5127
|
-
|
|
5128
|
-
|
|
5129
|
-
|
|
5130
|
-
|
|
5131
|
-
|
|
5132
|
-
|
|
5133
|
-
|
|
5134
|
-
|
|
5135
|
-
}] }
|
|
5371
|
+
borderRadius: "rounded-full",
|
|
5372
|
+
border: { widthClass: "border-2" },
|
|
5373
|
+
effects: { hover: [{
|
|
5374
|
+
effectId: "background-on-hover",
|
|
5375
|
+
options: { colorToken: "surface" }
|
|
5376
|
+
}] }
|
|
5377
|
+
},
|
|
5378
|
+
{
|
|
5379
|
+
id: "outline",
|
|
5380
|
+
name: "Outline",
|
|
5381
|
+
enabled: true,
|
|
5382
|
+
priority: 3,
|
|
5383
|
+
background: {
|
|
5384
|
+
type: "surface",
|
|
5385
|
+
role: "link"
|
|
5136
5386
|
},
|
|
5137
|
-
|
|
5138
|
-
|
|
5139
|
-
|
|
5140
|
-
|
|
5141
|
-
|
|
5142
|
-
|
|
5143
|
-
|
|
5144
|
-
|
|
5145
|
-
|
|
5146
|
-
|
|
5147
|
-
|
|
5148
|
-
|
|
5149
|
-
|
|
5150
|
-
|
|
5151
|
-
|
|
5152
|
-
}] }
|
|
5387
|
+
borderRadius: "rounded-full",
|
|
5388
|
+
border: { widthClass: "border" },
|
|
5389
|
+
effects: { hover: [{
|
|
5390
|
+
effectId: "background-on-hover",
|
|
5391
|
+
options: { colorToken: "surface" }
|
|
5392
|
+
}] }
|
|
5393
|
+
},
|
|
5394
|
+
{
|
|
5395
|
+
id: "ghost",
|
|
5396
|
+
name: "Ghost",
|
|
5397
|
+
enabled: true,
|
|
5398
|
+
priority: 3,
|
|
5399
|
+
background: {
|
|
5400
|
+
type: "surface",
|
|
5401
|
+
role: "link"
|
|
5153
5402
|
},
|
|
5154
|
-
|
|
5155
|
-
|
|
5156
|
-
|
|
5157
|
-
|
|
5158
|
-
|
|
5159
|
-
|
|
5160
|
-
|
|
5161
|
-
|
|
5162
|
-
|
|
5163
|
-
|
|
5164
|
-
|
|
5165
|
-
|
|
5166
|
-
|
|
5167
|
-
|
|
5403
|
+
borderRadius: "rounded-full",
|
|
5404
|
+
effects: { hover: [{
|
|
5405
|
+
effectId: "background-on-hover",
|
|
5406
|
+
options: { colorToken: "surface" }
|
|
5407
|
+
}] }
|
|
5408
|
+
}
|
|
5409
|
+
]
|
|
5410
|
+
}
|
|
5411
|
+
});
|
|
5412
|
+
//#endregion
|
|
5413
|
+
//#region ../theme-core/src/buttons/personalities/two-tone-pill.ts
|
|
5414
|
+
const solidSecondary = {
|
|
5415
|
+
id: "secondary",
|
|
5416
|
+
name: "Secondary",
|
|
5417
|
+
enabled: true,
|
|
5418
|
+
priority: 2,
|
|
5419
|
+
background: {
|
|
5420
|
+
type: "solid",
|
|
5421
|
+
colorToken: unsafeAsOpaqueButtonColourToken("secondary")
|
|
5422
|
+
},
|
|
5423
|
+
borderRadius: "rounded-full",
|
|
5424
|
+
shadow: {
|
|
5425
|
+
elevation: "none",
|
|
5426
|
+
softness: null,
|
|
5427
|
+
position: "bottom"
|
|
5428
|
+
},
|
|
5429
|
+
effects: {
|
|
5430
|
+
hover: [{
|
|
5431
|
+
effectId: "background-on-hover-alpha",
|
|
5432
|
+
options: {
|
|
5433
|
+
colorToken: "secondary",
|
|
5434
|
+
opacity: 88
|
|
5435
|
+
}
|
|
5436
|
+
}],
|
|
5437
|
+
active: [{
|
|
5438
|
+
effectId: "scale-down",
|
|
5439
|
+
options: { scale: "0.98" }
|
|
5440
|
+
}]
|
|
5441
|
+
}
|
|
5442
|
+
};
|
|
5443
|
+
//#endregion
|
|
5444
|
+
//#region ../theme-core/src/buttons/personalities/index.ts
|
|
5445
|
+
const buttonPersonalities = [
|
|
5446
|
+
softPill,
|
|
5447
|
+
defineButtonPersonality({
|
|
5448
|
+
id: "two-tone-pill",
|
|
5449
|
+
name: "Two-tone Pill",
|
|
5450
|
+
description: "Rounded pills with distinct solid primary and secondary brand colours.",
|
|
5451
|
+
tags: softPill.tags,
|
|
5452
|
+
buttonSystem: {
|
|
5453
|
+
...softPill.buttonSystem,
|
|
5454
|
+
variants: softPill.buttonSystem.variants.map((variant) => variant.id === "secondary" ? solidSecondary : variant)
|
|
5168
5455
|
}
|
|
5169
5456
|
}),
|
|
5170
5457
|
earthPill,
|
|
@@ -5180,6 +5467,27 @@ const buttonPersonalities = [
|
|
|
5180
5467
|
quietArrow
|
|
5181
5468
|
];
|
|
5182
5469
|
new Map(buttonPersonalities.map((p) => [p.id, p]));
|
|
5470
|
+
buttonPersonalities.map((personality) => ({
|
|
5471
|
+
id: personality.id,
|
|
5472
|
+
name: personality.name,
|
|
5473
|
+
description: personality.description,
|
|
5474
|
+
category: presetCategory(personality),
|
|
5475
|
+
buttonSystem: personality.buttonSystem,
|
|
5476
|
+
compatibility: {
|
|
5477
|
+
...personality.tags.tone ? { tones: [personality.tags.tone] } : {},
|
|
5478
|
+
...personality.tags.energy ? { energies: [personality.tags.energy] } : {}
|
|
5479
|
+
}
|
|
5480
|
+
}));
|
|
5481
|
+
function presetCategory(personality) {
|
|
5482
|
+
switch (personality.tags.era) {
|
|
5483
|
+
case "retro": return "retro";
|
|
5484
|
+
case "editorial": return "minimal";
|
|
5485
|
+
case "organic": return "artistic";
|
|
5486
|
+
case "modern": return personality.tags.tone === "bold" ? "modern" : "technical";
|
|
5487
|
+
case "technical": return "technical";
|
|
5488
|
+
case void 0: return "modern";
|
|
5489
|
+
}
|
|
5490
|
+
}
|
|
5183
5491
|
//#endregion
|
|
5184
5492
|
//#region ../theme-core/src/cards/types.ts
|
|
5185
5493
|
const cardVariantRoleValues = ["default", "alternative"];
|
|
@@ -6698,6 +7006,7 @@ const navFontWeight = z$1.enum([
|
|
|
6698
7006
|
"bold"
|
|
6699
7007
|
]);
|
|
6700
7008
|
const headerMaxWidth = z$1.enum(["container", "full"]);
|
|
7009
|
+
const headerBarFrame = z$1.enum(["full-bleed", "inset-shell"]);
|
|
6701
7010
|
const headerContainerSchema = z$1.object({
|
|
6702
7011
|
rounded: z$1.enum([
|
|
6703
7012
|
"none",
|
|
@@ -6842,6 +7151,7 @@ const headerSchema = z$1.object({
|
|
|
6842
7151
|
positioning: headerPositioning,
|
|
6843
7152
|
shrinkOnScroll: z$1.boolean(),
|
|
6844
7153
|
maxWidth: headerMaxWidth,
|
|
7154
|
+
barFrame: headerBarFrame.optional(),
|
|
6845
7155
|
logoOverride: mediaSchema$1.nullable().optional(),
|
|
6846
7156
|
background: headerBackgroundSchema.default({
|
|
6847
7157
|
type: "color",
|
|
@@ -6851,6 +7161,7 @@ const headerSchema = z$1.object({
|
|
|
6851
7161
|
navStyle: headerNavStyle,
|
|
6852
7162
|
navColor: themeColorTokenSchema.nullable().optional(),
|
|
6853
7163
|
navWeight: navFontWeight.default("medium"),
|
|
7164
|
+
navFontRole: z$1.enum(["body", "heading"]).optional(),
|
|
6854
7165
|
navTypography: z$1.enum(["body", "heading"]).optional(),
|
|
6855
7166
|
navTextSize: navLinkStyleSchema.shape.textSize,
|
|
6856
7167
|
navPlacement: z$1.enum(["end", "center"]).optional(),
|
|
@@ -6866,7 +7177,21 @@ const headerSchema = z$1.object({
|
|
|
6866
7177
|
ctaTreatment: headerCtaTreatmentSchema.optional(),
|
|
6867
7178
|
ctaVariant: z$1.string().min(1).optional(),
|
|
6868
7179
|
dropdownStyle: dropdownStyleSchema
|
|
6869
|
-
});
|
|
7180
|
+
}).transform(normaliseHeaderNavFontRole);
|
|
7181
|
+
/**
|
|
7182
|
+
* Normalises the legacy `navTypography` font-role alias into the canonical
|
|
7183
|
+
* `navFontRole` field so persisted themes migrate at the parse boundary without
|
|
7184
|
+
* a data migration. `navFontRole` always wins when both are present; the legacy
|
|
7185
|
+
* field is dropped so we never carry a dual write forward.
|
|
7186
|
+
*/
|
|
7187
|
+
function normaliseHeaderNavFontRole(header) {
|
|
7188
|
+
if (header.navTypography === void 0) return header;
|
|
7189
|
+
const { navTypography, ...rest } = header;
|
|
7190
|
+
return header.navFontRole === void 0 ? {
|
|
7191
|
+
...rest,
|
|
7192
|
+
navFontRole: navTypography
|
|
7193
|
+
} : rest;
|
|
7194
|
+
}
|
|
6870
7195
|
const footerVariant = z$1.enum([
|
|
6871
7196
|
"simple",
|
|
6872
7197
|
"columns",
|
|
@@ -8538,6 +8863,241 @@ const originalJoyCardSystem = { variants: [{
|
|
|
8538
8863
|
const serifDisplayQuote = { style: "serif-display" };
|
|
8539
8864
|
/** Punchy quotation mark in the secondary accent colour. Bold / accent styles. */
|
|
8540
8865
|
const accentGlyphQuote = { style: "accent-glyph" };
|
|
8866
|
+
/**
|
|
8867
|
+
* Curated library of gradient presets.
|
|
8868
|
+
* All gradients use theme color tokens, so they adapt to the site's palette.
|
|
8869
|
+
*/
|
|
8870
|
+
const GRADIENT_PRESETS = [
|
|
8871
|
+
{
|
|
8872
|
+
id: "primary-secondary",
|
|
8873
|
+
name: "Primary to Secondary",
|
|
8874
|
+
description: "Blend your primary and secondary brand colors",
|
|
8875
|
+
type: "linear",
|
|
8876
|
+
angle: 135,
|
|
8877
|
+
stops: [{
|
|
8878
|
+
color: "primary-500",
|
|
8879
|
+
position: 0
|
|
8880
|
+
}, {
|
|
8881
|
+
color: "secondary-500",
|
|
8882
|
+
position: 100
|
|
8883
|
+
}]
|
|
8884
|
+
},
|
|
8885
|
+
{
|
|
8886
|
+
id: "primary-accent",
|
|
8887
|
+
name: "Primary to Accent",
|
|
8888
|
+
description: "Energetic gradient from primary to accent",
|
|
8889
|
+
type: "linear",
|
|
8890
|
+
angle: 135,
|
|
8891
|
+
stops: [{
|
|
8892
|
+
color: "primary-500",
|
|
8893
|
+
position: 0
|
|
8894
|
+
}, {
|
|
8895
|
+
color: "accent-500",
|
|
8896
|
+
position: 100
|
|
8897
|
+
}]
|
|
8898
|
+
},
|
|
8899
|
+
{
|
|
8900
|
+
id: "secondary-accent",
|
|
8901
|
+
name: "Secondary to Accent",
|
|
8902
|
+
description: "Vibrant secondary to accent blend",
|
|
8903
|
+
type: "linear",
|
|
8904
|
+
angle: 135,
|
|
8905
|
+
stops: [{
|
|
8906
|
+
color: "secondary-500",
|
|
8907
|
+
position: 0
|
|
8908
|
+
}, {
|
|
8909
|
+
color: "accent-500",
|
|
8910
|
+
position: 100
|
|
8911
|
+
}]
|
|
8912
|
+
},
|
|
8913
|
+
{
|
|
8914
|
+
id: "primary-light-dark",
|
|
8915
|
+
name: "Primary Light to Dark",
|
|
8916
|
+
description: "Subtle primary color fade",
|
|
8917
|
+
type: "linear",
|
|
8918
|
+
angle: 180,
|
|
8919
|
+
stops: [{
|
|
8920
|
+
color: "primary-500",
|
|
8921
|
+
position: 0
|
|
8922
|
+
}, {
|
|
8923
|
+
color: "primary-900",
|
|
8924
|
+
position: 100
|
|
8925
|
+
}]
|
|
8926
|
+
},
|
|
8927
|
+
{
|
|
8928
|
+
id: "primary-dark-light",
|
|
8929
|
+
name: "Primary Dark to Light",
|
|
8930
|
+
description: "Reverse primary fade",
|
|
8931
|
+
type: "linear",
|
|
8932
|
+
angle: 180,
|
|
8933
|
+
stops: [{
|
|
8934
|
+
color: "primary-900",
|
|
8935
|
+
position: 0
|
|
8936
|
+
}, {
|
|
8937
|
+
color: "primary-50",
|
|
8938
|
+
position: 100
|
|
8939
|
+
}]
|
|
8940
|
+
},
|
|
8941
|
+
{
|
|
8942
|
+
id: "secondary-light-dark",
|
|
8943
|
+
name: "Secondary Light to Dark",
|
|
8944
|
+
description: "Subtle secondary color fade",
|
|
8945
|
+
type: "linear",
|
|
8946
|
+
angle: 180,
|
|
8947
|
+
stops: [{
|
|
8948
|
+
color: "secondary-500",
|
|
8949
|
+
position: 0
|
|
8950
|
+
}, {
|
|
8951
|
+
color: "secondary-900",
|
|
8952
|
+
position: 100
|
|
8953
|
+
}]
|
|
8954
|
+
},
|
|
8955
|
+
{
|
|
8956
|
+
id: "accent-light-dark",
|
|
8957
|
+
name: "Accent Light to Dark",
|
|
8958
|
+
description: "Accent color depth fade",
|
|
8959
|
+
type: "linear",
|
|
8960
|
+
angle: 180,
|
|
8961
|
+
stops: [{
|
|
8962
|
+
color: "accent-500",
|
|
8963
|
+
position: 0
|
|
8964
|
+
}, {
|
|
8965
|
+
color: "accent-900",
|
|
8966
|
+
position: 100
|
|
8967
|
+
}]
|
|
8968
|
+
},
|
|
8969
|
+
{
|
|
8970
|
+
id: "background-surface",
|
|
8971
|
+
name: "Background to Surface",
|
|
8972
|
+
description: "Subtle depth using base colors",
|
|
8973
|
+
type: "linear",
|
|
8974
|
+
angle: 180,
|
|
8975
|
+
stops: [{
|
|
8976
|
+
color: "background",
|
|
8977
|
+
position: 0
|
|
8978
|
+
}, {
|
|
8979
|
+
color: "surface",
|
|
8980
|
+
position: 100
|
|
8981
|
+
}]
|
|
8982
|
+
},
|
|
8983
|
+
{
|
|
8984
|
+
id: "neutral-fade",
|
|
8985
|
+
name: "Neutral Gradient",
|
|
8986
|
+
description: "Elegant neutral color fade",
|
|
8987
|
+
type: "linear",
|
|
8988
|
+
angle: 180,
|
|
8989
|
+
stops: [{
|
|
8990
|
+
color: "neutral-900",
|
|
8991
|
+
position: 0
|
|
8992
|
+
}, {
|
|
8993
|
+
color: "neutral-50",
|
|
8994
|
+
position: 100
|
|
8995
|
+
}]
|
|
8996
|
+
},
|
|
8997
|
+
{
|
|
8998
|
+
id: "primary-glow",
|
|
8999
|
+
name: "Primary glow",
|
|
9000
|
+
description: "A soft top-centred glow using your primary palette",
|
|
9001
|
+
type: "radial",
|
|
9002
|
+
shape: "ellipse",
|
|
9003
|
+
position: "top center",
|
|
9004
|
+
stops: [{
|
|
9005
|
+
color: "primary-900",
|
|
9006
|
+
position: 0
|
|
9007
|
+
}, {
|
|
9008
|
+
color: "primary-950",
|
|
9009
|
+
position: 100
|
|
9010
|
+
}],
|
|
9011
|
+
foreground: {
|
|
9012
|
+
textColor: "onPrimary900",
|
|
9013
|
+
headingColor: "onPrimary900",
|
|
9014
|
+
linkColor: "onPrimary900",
|
|
9015
|
+
supportingColor: "onPrimary900"
|
|
9016
|
+
}
|
|
9017
|
+
},
|
|
9018
|
+
{
|
|
9019
|
+
id: "accent-glow",
|
|
9020
|
+
name: "Accent glow",
|
|
9021
|
+
description: "A soft top-centred glow using your accent palette",
|
|
9022
|
+
type: "radial",
|
|
9023
|
+
shape: "ellipse",
|
|
9024
|
+
position: "top center",
|
|
9025
|
+
stops: [{
|
|
9026
|
+
color: "accent-900",
|
|
9027
|
+
position: 0
|
|
9028
|
+
}, {
|
|
9029
|
+
color: "accent-950",
|
|
9030
|
+
position: 100
|
|
9031
|
+
}],
|
|
9032
|
+
foreground: {
|
|
9033
|
+
textColor: "onAccent900",
|
|
9034
|
+
headingColor: "onAccent900",
|
|
9035
|
+
linkColor: "onAccent900",
|
|
9036
|
+
supportingColor: "onAccent900"
|
|
9037
|
+
}
|
|
9038
|
+
},
|
|
9039
|
+
{
|
|
9040
|
+
id: "primary-secondary-accent",
|
|
9041
|
+
name: "Brand Trio",
|
|
9042
|
+
description: "All three brand colors in harmony",
|
|
9043
|
+
type: "linear",
|
|
9044
|
+
angle: 135,
|
|
9045
|
+
stops: [
|
|
9046
|
+
{
|
|
9047
|
+
color: "primary-500",
|
|
9048
|
+
position: 0
|
|
9049
|
+
},
|
|
9050
|
+
{
|
|
9051
|
+
color: "secondary-500",
|
|
9052
|
+
position: 50
|
|
9053
|
+
},
|
|
9054
|
+
{
|
|
9055
|
+
color: "accent-500",
|
|
9056
|
+
position: 100
|
|
9057
|
+
}
|
|
9058
|
+
]
|
|
9059
|
+
}
|
|
9060
|
+
].map((preset) => ({
|
|
9061
|
+
...preset,
|
|
9062
|
+
id: preset.id,
|
|
9063
|
+
stops: preset.stops
|
|
9064
|
+
}));
|
|
9065
|
+
const GRADIENT_PRESET_IDS = GRADIENT_PRESETS.map((preset) => preset.id);
|
|
9066
|
+
const gradientPresetIdSet = new Set(GRADIENT_PRESET_IDS);
|
|
9067
|
+
const gradientPresetById = Object.fromEntries(GRADIENT_PRESETS.map((preset) => [preset.id, preset]));
|
|
9068
|
+
function parseGradientPresetId(value) {
|
|
9069
|
+
if (typeof value !== "string") return null;
|
|
9070
|
+
const normalized = value.trim();
|
|
9071
|
+
if (!gradientPresetIdSet.has(normalized)) return null;
|
|
9072
|
+
return normalized;
|
|
9073
|
+
}
|
|
9074
|
+
function getGradientPreset(id) {
|
|
9075
|
+
return gradientPresetById[id];
|
|
9076
|
+
}
|
|
9077
|
+
//#endregion
|
|
9078
|
+
//#region ../theme-core/src/gradients/utils.ts
|
|
9079
|
+
/**
|
|
9080
|
+
* Convert a GradientConfig to a CSS gradient string
|
|
9081
|
+
*
|
|
9082
|
+
* @param config - The gradient configuration using theme tokens
|
|
9083
|
+
* @param tokens - Map of theme color tokens to hex values
|
|
9084
|
+
* @returns CSS gradient string (e.g., "linear-gradient(180deg, #3b82f6 0%, #f59e0b 100%)")
|
|
9085
|
+
*/
|
|
9086
|
+
function gradientToCss(config, tokens) {
|
|
9087
|
+
const stops = config.stops.map((stop) => {
|
|
9088
|
+
return `${tokens[stop.color] ?? "#000000"} ${stop.position}%`;
|
|
9089
|
+
}).join(", ");
|
|
9090
|
+
const type = config.type ?? "linear";
|
|
9091
|
+
if (type === "radial") {
|
|
9092
|
+
const position = config.position ?? "center";
|
|
9093
|
+
return `radial-gradient(${config.shape ?? "circle"} at ${position}, ${stops})`;
|
|
9094
|
+
}
|
|
9095
|
+
if (type === "conic") {
|
|
9096
|
+
const position = config.position ?? "center";
|
|
9097
|
+
return `conic-gradient(from ${config.angle ?? 0}deg at ${position}, ${stops})`;
|
|
9098
|
+
}
|
|
9099
|
+
return `linear-gradient(${config.angle ?? 180}deg, ${stops})`;
|
|
9100
|
+
}
|
|
8541
9101
|
//#endregion
|
|
8542
9102
|
//#region ../theme-core/src/site-styles/headerLooks.ts
|
|
8543
9103
|
function asHeaderLookId(value) {
|
|
@@ -8672,7 +9232,7 @@ const overlayLogoAccommodations = [
|
|
|
8672
9232
|
* optional nested styling fields that would otherwise leak from another Look.
|
|
8673
9233
|
*/
|
|
8674
9234
|
function baseHeader(theme) {
|
|
8675
|
-
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;
|
|
9235
|
+
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;
|
|
8676
9236
|
return {
|
|
8677
9237
|
...header,
|
|
8678
9238
|
navContainer: {
|
|
@@ -8821,6 +9381,17 @@ const headerStyleCatalog = defineExactCatalog()([
|
|
|
8821
9381
|
navTypography: "brand-caps",
|
|
8822
9382
|
moods: ["expressive"]
|
|
8823
9383
|
},
|
|
9384
|
+
{
|
|
9385
|
+
id: asHeaderStyleId("brand-capsule"),
|
|
9386
|
+
label: "Brand Capsule",
|
|
9387
|
+
description: "Solid brand chrome designed as a floating capsule, with quiet-caps nav, a soft pill active state, and an inverted CTA pill.",
|
|
9388
|
+
supportedLayoutIds: supportedLayouts(["classic"]),
|
|
9389
|
+
navInteraction: "pill-background",
|
|
9390
|
+
surface: "brand-solid",
|
|
9391
|
+
defaultDepth: "shadow",
|
|
9392
|
+
navTypography: "quiet-caps",
|
|
9393
|
+
moods: ["expressive", "professional"]
|
|
9394
|
+
},
|
|
8824
9395
|
{
|
|
8825
9396
|
id: asHeaderStyleId("serif-line"),
|
|
8826
9397
|
label: "Serif Line",
|
|
@@ -8914,6 +9485,7 @@ const headerStyleCompatibilityOrder = /* @__PURE__ */ new Map([
|
|
|
8914
9485
|
"brand-bar",
|
|
8915
9486
|
"brand-underline",
|
|
8916
9487
|
"brand-pill",
|
|
9488
|
+
"brand-capsule",
|
|
8917
9489
|
"serif-line",
|
|
8918
9490
|
"flat-tabs"
|
|
8919
9491
|
])],
|
|
@@ -8951,6 +9523,11 @@ headerStyleRepairChain([
|
|
|
8951
9523
|
"brand-pill",
|
|
8952
9524
|
"brand-bar",
|
|
8953
9525
|
"minimal"
|
|
9526
|
+
]), headerStyleRepairChain([
|
|
9527
|
+
"brand-capsule",
|
|
9528
|
+
"brand-pill",
|
|
9529
|
+
"brand-bar",
|
|
9530
|
+
"minimal"
|
|
8954
9531
|
]), headerStyleRepairChain([
|
|
8955
9532
|
"pill-nav",
|
|
8956
9533
|
"soft-bar",
|
|
@@ -10564,6 +11141,19 @@ z$1.object({
|
|
|
10564
11141
|
}).strict();
|
|
10565
11142
|
//#endregion
|
|
10566
11143
|
//#region ../theme-core/src/site-styles/runtimeCompiler.ts
|
|
11144
|
+
function defineSectionForegroundRuntimeTokens(input) {
|
|
11145
|
+
return {
|
|
11146
|
+
textColor: requireThemeColorToken(input.textColor),
|
|
11147
|
+
headingColor: requireThemeColorToken(input.headingColor),
|
|
11148
|
+
linkColor: requireThemeColorToken(input.linkColor),
|
|
11149
|
+
supportingColor: requireThemeColorToken(input.supportingColor)
|
|
11150
|
+
};
|
|
11151
|
+
}
|
|
11152
|
+
function requireThemeColorToken(value) {
|
|
11153
|
+
const token = parseThemeColorToken(value);
|
|
11154
|
+
if (!token) throw new Error(`Invalid section foreground Theme color token: ${String(value)}`);
|
|
11155
|
+
return token;
|
|
11156
|
+
}
|
|
10567
11157
|
function defineDesignRuntimeRules(rules) {
|
|
10568
11158
|
return rules;
|
|
10569
11159
|
}
|
|
@@ -10834,24 +11424,24 @@ const kirtanOrnateDesignRuntimeRules = defineDesignRuntimeRules({
|
|
|
10834
11424
|
type: "color",
|
|
10835
11425
|
color: "muted"
|
|
10836
11426
|
},
|
|
10837
|
-
foreground: {
|
|
11427
|
+
foreground: defineSectionForegroundRuntimeTokens({
|
|
10838
11428
|
textColor: "text",
|
|
10839
11429
|
headingColor: "primary",
|
|
10840
11430
|
linkColor: "primary",
|
|
10841
11431
|
supportingColor: "text"
|
|
10842
|
-
}
|
|
11432
|
+
})
|
|
10843
11433
|
},
|
|
10844
11434
|
"brand-depth-band": {
|
|
10845
11435
|
background: {
|
|
10846
11436
|
type: "color",
|
|
10847
11437
|
color: "primary-800"
|
|
10848
11438
|
},
|
|
10849
|
-
foreground: {
|
|
11439
|
+
foreground: defineSectionForegroundRuntimeTokens({
|
|
10850
11440
|
textColor: "text",
|
|
10851
11441
|
headingColor: "primary",
|
|
10852
11442
|
linkColor: "primary",
|
|
10853
11443
|
supportingColor: "text"
|
|
10854
|
-
}
|
|
11444
|
+
})
|
|
10855
11445
|
},
|
|
10856
11446
|
"hero-image": {
|
|
10857
11447
|
background: {
|
|
@@ -10859,12 +11449,32 @@ const kirtanOrnateDesignRuntimeRules = defineDesignRuntimeRules({
|
|
|
10859
11449
|
opacity: 1,
|
|
10860
11450
|
position: "center center"
|
|
10861
11451
|
},
|
|
10862
|
-
foreground: {
|
|
11452
|
+
foreground: defineSectionForegroundRuntimeTokens({
|
|
10863
11453
|
textColor: "text",
|
|
10864
11454
|
headingColor: "primary",
|
|
10865
11455
|
linkColor: "primary",
|
|
10866
11456
|
supportingColor: "text"
|
|
10867
|
-
}
|
|
11457
|
+
})
|
|
11458
|
+
}
|
|
11459
|
+
}
|
|
11460
|
+
});
|
|
11461
|
+
const primaryGlowGradientPresetId = parseGradientPresetId("primary-glow");
|
|
11462
|
+
if (!primaryGlowGradientPresetId) throw new Error("Expected primary-glow in the Theme Core gradient catalog");
|
|
11463
|
+
const fulcrumDesignRuntimeRules = defineDesignRuntimeRules({
|
|
11464
|
+
...defaultDesignRuntimeRules,
|
|
11465
|
+
sectionSurfaces: {
|
|
11466
|
+
...defaultDesignRuntimeRules.sectionSurfaces,
|
|
11467
|
+
"accent-band": {
|
|
11468
|
+
background: {
|
|
11469
|
+
type: "gradient",
|
|
11470
|
+
gradientPresetId: primaryGlowGradientPresetId
|
|
11471
|
+
},
|
|
11472
|
+
foreground: defineSectionForegroundRuntimeTokens({
|
|
11473
|
+
textColor: "primaryForeground",
|
|
11474
|
+
headingColor: "primaryForeground",
|
|
11475
|
+
linkColor: "primaryForeground",
|
|
11476
|
+
supportingColor: "primaryForeground"
|
|
11477
|
+
})
|
|
10868
11478
|
}
|
|
10869
11479
|
}
|
|
10870
11480
|
});
|
|
@@ -11188,6 +11798,7 @@ const curatedSiteStyles = [
|
|
|
11188
11798
|
],
|
|
11189
11799
|
buttonPersonalityChoices: [
|
|
11190
11800
|
buttonChoice("soft-pill"),
|
|
11801
|
+
buttonChoice("two-tone-pill"),
|
|
11191
11802
|
buttonChoice("pebble"),
|
|
11192
11803
|
buttonChoice("editorial-link"),
|
|
11193
11804
|
buttonChoice("brushed-wash")
|
|
@@ -12251,6 +12862,8 @@ const curatedSiteStyles = [
|
|
|
12251
12862
|
},
|
|
12252
12863
|
compositionBudget: quietBudget,
|
|
12253
12864
|
typography: fulcrumTypography,
|
|
12865
|
+
designRuntimeRules: fulcrumDesignRuntimeRules,
|
|
12866
|
+
recommendedAppearancePresetIds: ["cta-accent-band"],
|
|
12254
12867
|
themeOverrides: {
|
|
12255
12868
|
shadow: { colorToken: "primary" },
|
|
12256
12869
|
accordions: {
|
|
@@ -12367,6 +12980,7 @@ const curatedSiteStyles = [
|
|
|
12367
12980
|
],
|
|
12368
12981
|
buttonPersonalityChoices: [
|
|
12369
12982
|
buttonChoice("quiet-arrow"),
|
|
12983
|
+
buttonChoice("two-tone-pill"),
|
|
12370
12984
|
buttonChoice("flat-ink"),
|
|
12371
12985
|
buttonChoice("editorial-link")
|
|
12372
12986
|
],
|
|
@@ -12622,213 +13236,6 @@ z$1.object({
|
|
|
12622
13236
|
spacing: z$1.enum(themeTokenRecipeOptions.spacing),
|
|
12623
13237
|
motion: z$1.enum(themeTokenRecipeOptions.motion)
|
|
12624
13238
|
});
|
|
12625
|
-
//#endregion
|
|
12626
|
-
//#region ../theme-core/src/gradients/presets.ts
|
|
12627
|
-
/**
|
|
12628
|
-
* Curated library of gradient presets
|
|
12629
|
-
* All gradients use theme color tokens, so they adapt to the site's palette
|
|
12630
|
-
*/
|
|
12631
|
-
const GRADIENT_PRESETS = [
|
|
12632
|
-
{
|
|
12633
|
-
id: "primary-secondary",
|
|
12634
|
-
name: "Primary to Secondary",
|
|
12635
|
-
description: "Blend your primary and secondary brand colors",
|
|
12636
|
-
type: "linear",
|
|
12637
|
-
angle: 135,
|
|
12638
|
-
stops: [{
|
|
12639
|
-
color: "primary-500",
|
|
12640
|
-
position: 0
|
|
12641
|
-
}, {
|
|
12642
|
-
color: "secondary-500",
|
|
12643
|
-
position: 100
|
|
12644
|
-
}]
|
|
12645
|
-
},
|
|
12646
|
-
{
|
|
12647
|
-
id: "primary-accent",
|
|
12648
|
-
name: "Primary to Accent",
|
|
12649
|
-
description: "Energetic gradient from primary to accent",
|
|
12650
|
-
type: "linear",
|
|
12651
|
-
angle: 135,
|
|
12652
|
-
stops: [{
|
|
12653
|
-
color: "primary-500",
|
|
12654
|
-
position: 0
|
|
12655
|
-
}, {
|
|
12656
|
-
color: "accent-500",
|
|
12657
|
-
position: 100
|
|
12658
|
-
}]
|
|
12659
|
-
},
|
|
12660
|
-
{
|
|
12661
|
-
id: "secondary-accent",
|
|
12662
|
-
name: "Secondary to Accent",
|
|
12663
|
-
description: "Vibrant secondary to accent blend",
|
|
12664
|
-
type: "linear",
|
|
12665
|
-
angle: 135,
|
|
12666
|
-
stops: [{
|
|
12667
|
-
color: "secondary-500",
|
|
12668
|
-
position: 0
|
|
12669
|
-
}, {
|
|
12670
|
-
color: "accent-500",
|
|
12671
|
-
position: 100
|
|
12672
|
-
}]
|
|
12673
|
-
},
|
|
12674
|
-
{
|
|
12675
|
-
id: "primary-light-dark",
|
|
12676
|
-
name: "Primary Light to Dark",
|
|
12677
|
-
description: "Subtle primary color fade",
|
|
12678
|
-
type: "linear",
|
|
12679
|
-
angle: 180,
|
|
12680
|
-
stops: [{
|
|
12681
|
-
color: "primary-500",
|
|
12682
|
-
position: 0
|
|
12683
|
-
}, {
|
|
12684
|
-
color: "primary-900",
|
|
12685
|
-
position: 100
|
|
12686
|
-
}]
|
|
12687
|
-
},
|
|
12688
|
-
{
|
|
12689
|
-
id: "primary-dark-light",
|
|
12690
|
-
name: "Primary Dark to Light",
|
|
12691
|
-
description: "Reverse primary fade",
|
|
12692
|
-
type: "linear",
|
|
12693
|
-
angle: 180,
|
|
12694
|
-
stops: [{
|
|
12695
|
-
color: "primary-900",
|
|
12696
|
-
position: 0
|
|
12697
|
-
}, {
|
|
12698
|
-
color: "primary-50",
|
|
12699
|
-
position: 100
|
|
12700
|
-
}]
|
|
12701
|
-
},
|
|
12702
|
-
{
|
|
12703
|
-
id: "secondary-light-dark",
|
|
12704
|
-
name: "Secondary Light to Dark",
|
|
12705
|
-
description: "Subtle secondary color fade",
|
|
12706
|
-
type: "linear",
|
|
12707
|
-
angle: 180,
|
|
12708
|
-
stops: [{
|
|
12709
|
-
color: "secondary-500",
|
|
12710
|
-
position: 0
|
|
12711
|
-
}, {
|
|
12712
|
-
color: "secondary-900",
|
|
12713
|
-
position: 100
|
|
12714
|
-
}]
|
|
12715
|
-
},
|
|
12716
|
-
{
|
|
12717
|
-
id: "accent-light-dark",
|
|
12718
|
-
name: "Accent Light to Dark",
|
|
12719
|
-
description: "Accent color depth fade",
|
|
12720
|
-
type: "linear",
|
|
12721
|
-
angle: 180,
|
|
12722
|
-
stops: [{
|
|
12723
|
-
color: "accent-500",
|
|
12724
|
-
position: 0
|
|
12725
|
-
}, {
|
|
12726
|
-
color: "accent-900",
|
|
12727
|
-
position: 100
|
|
12728
|
-
}]
|
|
12729
|
-
},
|
|
12730
|
-
{
|
|
12731
|
-
id: "background-surface",
|
|
12732
|
-
name: "Background to Surface",
|
|
12733
|
-
description: "Subtle depth using base colors",
|
|
12734
|
-
type: "linear",
|
|
12735
|
-
angle: 180,
|
|
12736
|
-
stops: [{
|
|
12737
|
-
color: "background",
|
|
12738
|
-
position: 0
|
|
12739
|
-
}, {
|
|
12740
|
-
color: "surface",
|
|
12741
|
-
position: 100
|
|
12742
|
-
}]
|
|
12743
|
-
},
|
|
12744
|
-
{
|
|
12745
|
-
id: "neutral-fade",
|
|
12746
|
-
name: "Neutral Gradient",
|
|
12747
|
-
description: "Elegant neutral color fade",
|
|
12748
|
-
type: "linear",
|
|
12749
|
-
angle: 180,
|
|
12750
|
-
stops: [{
|
|
12751
|
-
color: "neutral-900",
|
|
12752
|
-
position: 0
|
|
12753
|
-
}, {
|
|
12754
|
-
color: "neutral-50",
|
|
12755
|
-
position: 100
|
|
12756
|
-
}]
|
|
12757
|
-
},
|
|
12758
|
-
{
|
|
12759
|
-
id: "primary-radial",
|
|
12760
|
-
name: "Primary Spotlight",
|
|
12761
|
-
description: "Radial primary gradient from center",
|
|
12762
|
-
type: "radial",
|
|
12763
|
-
position: "center",
|
|
12764
|
-
stops: [{
|
|
12765
|
-
color: "primary-500",
|
|
12766
|
-
position: 0
|
|
12767
|
-
}, {
|
|
12768
|
-
color: "primary-900",
|
|
12769
|
-
position: 100
|
|
12770
|
-
}]
|
|
12771
|
-
},
|
|
12772
|
-
{
|
|
12773
|
-
id: "accent-radial",
|
|
12774
|
-
name: "Accent Spotlight",
|
|
12775
|
-
description: "Radial accent gradient from center",
|
|
12776
|
-
type: "radial",
|
|
12777
|
-
position: "center",
|
|
12778
|
-
stops: [{
|
|
12779
|
-
color: "accent-500",
|
|
12780
|
-
position: 0
|
|
12781
|
-
}, {
|
|
12782
|
-
color: "accent-900",
|
|
12783
|
-
position: 100
|
|
12784
|
-
}]
|
|
12785
|
-
},
|
|
12786
|
-
{
|
|
12787
|
-
id: "primary-secondary-accent",
|
|
12788
|
-
name: "Brand Trio",
|
|
12789
|
-
description: "All three brand colors in harmony",
|
|
12790
|
-
type: "linear",
|
|
12791
|
-
angle: 135,
|
|
12792
|
-
stops: [
|
|
12793
|
-
{
|
|
12794
|
-
color: "primary-500",
|
|
12795
|
-
position: 0
|
|
12796
|
-
},
|
|
12797
|
-
{
|
|
12798
|
-
color: "secondary-500",
|
|
12799
|
-
position: 50
|
|
12800
|
-
},
|
|
12801
|
-
{
|
|
12802
|
-
color: "accent-500",
|
|
12803
|
-
position: 100
|
|
12804
|
-
}
|
|
12805
|
-
]
|
|
12806
|
-
}
|
|
12807
|
-
];
|
|
12808
|
-
//#endregion
|
|
12809
|
-
//#region ../theme-core/src/gradients/utils.ts
|
|
12810
|
-
/**
|
|
12811
|
-
* Convert a GradientConfig to a CSS gradient string
|
|
12812
|
-
*
|
|
12813
|
-
* @param config - The gradient configuration using theme tokens
|
|
12814
|
-
* @param tokens - Map of theme color tokens to hex values
|
|
12815
|
-
* @returns CSS gradient string (e.g., "linear-gradient(180deg, #3b82f6 0%, #f59e0b 100%)")
|
|
12816
|
-
*/
|
|
12817
|
-
function gradientToCss(config, tokens) {
|
|
12818
|
-
const stops = config.stops.map((stop) => {
|
|
12819
|
-
return `${tokens[stop.color] ?? "#000000"} ${stop.position}%`;
|
|
12820
|
-
}).join(", ");
|
|
12821
|
-
const type = config.type ?? "linear";
|
|
12822
|
-
if (type === "radial") {
|
|
12823
|
-
const position = config.position ?? "center";
|
|
12824
|
-
return `radial-gradient(${config.shape ?? "circle"} at ${position}, ${stops})`;
|
|
12825
|
-
}
|
|
12826
|
-
if (type === "conic") {
|
|
12827
|
-
const position = config.position ?? "center";
|
|
12828
|
-
return `conic-gradient(from ${config.angle ?? 0}deg at ${position}, ${stops})`;
|
|
12829
|
-
}
|
|
12830
|
-
return `linear-gradient(${config.angle ?? 180}deg, ${stops})`;
|
|
12831
|
-
}
|
|
12832
13239
|
const BREAKPOINT_LG = 1024;
|
|
12833
13240
|
const BREAKPOINT_XL = 1280;
|
|
12834
13241
|
const BREAKPOINT_LG_DOWN = BREAKPOINT_LG - 1;
|
|
@@ -13254,7 +13661,7 @@ const ALLOWED_TRANSFORM_IDS = [
|
|
|
13254
13661
|
"media.fromUrl",
|
|
13255
13662
|
"background.resolveStyle",
|
|
13256
13663
|
"background.resolveColorsStyle",
|
|
13257
|
-
"background.
|
|
13664
|
+
"background.resolveFrameClassName",
|
|
13258
13665
|
"background.resolveImageStyle",
|
|
13259
13666
|
"background.resolveImageClassName",
|
|
13260
13667
|
"background.resolveOverlayStyle",
|
|
@@ -13915,6 +14322,20 @@ const blockCategoryEnum = z$1.enum([
|
|
|
13915
14322
|
"layout",
|
|
13916
14323
|
"interactive"
|
|
13917
14324
|
]);
|
|
14325
|
+
const blockContentSourceSchema = z$1.object({
|
|
14326
|
+
kind: z$1.enum([
|
|
14327
|
+
"inline",
|
|
14328
|
+
"entries",
|
|
14329
|
+
"mixed"
|
|
14330
|
+
]),
|
|
14331
|
+
contentType: z$1.string().min(1).optional()
|
|
14332
|
+
}).superRefine((value, ctx) => {
|
|
14333
|
+
if (value.kind === "inline" && value.contentType) ctx.addIssue({
|
|
14334
|
+
code: z$1.ZodIssueCode.custom,
|
|
14335
|
+
path: ["contentType"],
|
|
14336
|
+
message: "contentType is not allowed when contentSource.kind is \"inline\""
|
|
14337
|
+
});
|
|
14338
|
+
});
|
|
13918
14339
|
z$1.object({
|
|
13919
14340
|
name: z$1.string().min(1),
|
|
13920
14341
|
version: z$1.string().min(1),
|
|
@@ -13945,6 +14366,12 @@ z$1.object({
|
|
|
13945
14366
|
}).optional()).optional(),
|
|
13946
14367
|
category: blockCategoryEnum.optional(),
|
|
13947
14368
|
contentTypes: z$1.array(z$1.string()).optional(),
|
|
14369
|
+
/**
|
|
14370
|
+
* Explicit content-source classification (inline / entries / mixed). Optional at the
|
|
14371
|
+
* schema level for backward compatibility with SDK-defined custom blocks, but every
|
|
14372
|
+
* registered SYSTEM block must declare it (enforced by a registry-wide test).
|
|
14373
|
+
*/
|
|
14374
|
+
contentSource: blockContentSourceSchema.optional(),
|
|
13948
14375
|
tags: z$1.array(z$1.string()).optional(),
|
|
13949
14376
|
icon: z$1.string().optional()
|
|
13950
14377
|
});
|
|
@@ -14921,6 +15348,7 @@ function devValidate(node) {
|
|
|
14921
15348
|
}
|
|
14922
15349
|
//#endregion
|
|
14923
15350
|
//#region ../blocks/src/system/node/fragments/backgroundLayer.ts
|
|
15351
|
+
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";
|
|
14924
15352
|
/**
|
|
14925
15353
|
* Creates background layer nodes for rendering backgrounds from field data.
|
|
14926
15354
|
*
|
|
@@ -14986,6 +15414,34 @@ function backgroundLayer(path, options = {}) {
|
|
|
14986
15414
|
];
|
|
14987
15415
|
}
|
|
14988
15416
|
/**
|
|
15417
|
+
* Wrap decorative background layers in their own clipping frame.
|
|
15418
|
+
*
|
|
15419
|
+
* Foreground content remains outside this frame, so editor outlines, focus
|
|
15420
|
+
* rings, and floating controls are never clipped by a visual background.
|
|
15421
|
+
* Backgrounds that explicitly opt into overflow keep that behavior within
|
|
15422
|
+
* the decorative layer rather than changing the content root.
|
|
15423
|
+
*/
|
|
15424
|
+
function backgroundFrame(path, options = {}) {
|
|
15425
|
+
const { leadingNodes = [], ...layerOptions } = options;
|
|
15426
|
+
const framedLayerOptions = {
|
|
15427
|
+
...layerOptions,
|
|
15428
|
+
styleClassName: layerOptions.styleClassName ?? "background-style rb-absolute rb-inset-0 rb-z-0 rb-h-full rb-w-full rb-pointer-events-none",
|
|
15429
|
+
imageClassName: layerOptions.imageClassName ?? "rb-absolute rb-z-0",
|
|
15430
|
+
overlayClassName: layerOptions.overlayClassName ?? "background-overlay rb-absolute rb-inset-0 rb-z-0 rb-h-full rb-w-full rb-pointer-events-none"
|
|
15431
|
+
};
|
|
15432
|
+
return el("div", {
|
|
15433
|
+
className: { $bind: {
|
|
15434
|
+
from: path,
|
|
15435
|
+
transforms: [{
|
|
15436
|
+
id: "background.resolveFrameClassName",
|
|
15437
|
+
options: { baseClass: BACKGROUND_FRAME_BASE_CLASS }
|
|
15438
|
+
}],
|
|
15439
|
+
fallback: `${BACKGROUND_FRAME_BASE_CLASS} rb-overflow-hidden`
|
|
15440
|
+
} },
|
|
15441
|
+
style: { borderRadius: "inherit" }
|
|
15442
|
+
}, [...leadingNodes, ...backgroundLayer(path, framedLayerOptions)]);
|
|
15443
|
+
}
|
|
15444
|
+
/**
|
|
14989
15445
|
* Creates a media node for rendering background image/video media with conditional rendering.
|
|
14990
15446
|
*
|
|
14991
15447
|
* This helper creates a media element that:
|
|
@@ -15147,8 +15603,8 @@ function sectionContainer(children, opts) {
|
|
|
15147
15603
|
* - content
|
|
15148
15604
|
*/
|
|
15149
15605
|
function styledContainer(config) {
|
|
15150
|
-
const { children, rootType = "div", rootProps, bindFrom = "_containerStyles", baseClassName = "rb-relative rb-isolate rb-overflow-
|
|
15151
|
-
const
|
|
15606
|
+
const { children, rootType = "div", rootProps, bindFrom = "_containerStyles", baseClassName = "rb-relative rb-isolate rb-overflow-visible", imageClassName = "rb-absolute rb-z-0", constrainWidth = true } = config;
|
|
15607
|
+
const backgroundNode = backgroundFrame(`${bindFrom}.background`, { imageClassName });
|
|
15152
15608
|
const childrenArray = Array.isArray(children) ? children : [children];
|
|
15153
15609
|
const { className: _ignoredClassName, style: _ignoredStyle, ...safeRootProps } = rootProps ?? {};
|
|
15154
15610
|
return el(rootType, {
|
|
@@ -15171,7 +15627,7 @@ function styledContainer(config) {
|
|
|
15171
15627
|
}],
|
|
15172
15628
|
fallback: constrainWidth ? `${baseClassName} rb-container` : baseClassName
|
|
15173
15629
|
} }
|
|
15174
|
-
}, [
|
|
15630
|
+
}, [backgroundNode, ...childrenArray]);
|
|
15175
15631
|
}
|
|
15176
15632
|
//#endregion
|
|
15177
15633
|
//#region ../blocks/src/system/spacing.ts
|
|
@@ -15304,7 +15760,7 @@ const DEFAULT_SECTION_SPACING = "medium";
|
|
|
15304
15760
|
* - Creating a section wrapper with background theme
|
|
15305
15761
|
* - Adding background color/gradient/image layers
|
|
15306
15762
|
* - Binding className to section styles with transform
|
|
15307
|
-
* -
|
|
15763
|
+
* - Keeping foreground overflow visible while decorative backgrounds clip independently
|
|
15308
15764
|
* - Wrapping content children
|
|
15309
15765
|
*
|
|
15310
15766
|
* Use this helper to eliminate 25+ lines of boilerplate section setup code.
|
|
@@ -15340,8 +15796,8 @@ const DEFAULT_SECTION_SPACING = "medium";
|
|
|
15340
15796
|
* });
|
|
15341
15797
|
*/
|
|
15342
15798
|
function styledSection(config) {
|
|
15343
|
-
const { children, baseClass = "rb-px-6", spacing = DEFAULT_SECTION_SPACING, background = "background", bindFrom = "_sectionStyles", imageClassName = "rb-absolute rb-z-
|
|
15344
|
-
const
|
|
15799
|
+
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;
|
|
15800
|
+
const renderedBackgroundNode = backgroundFrame(`${bindFrom}.background`, {
|
|
15345
15801
|
imageClassName,
|
|
15346
15802
|
fallbackToken: background,
|
|
15347
15803
|
omitImageLayer: !renderBackgroundImage,
|
|
@@ -15364,13 +15820,8 @@ function styledSection(config) {
|
|
|
15364
15820
|
fullWidthPath
|
|
15365
15821
|
}
|
|
15366
15822
|
}]
|
|
15367
|
-
} },
|
|
15368
|
-
allowOverflow: allowOverflow ? true : { $bind: {
|
|
15369
|
-
from: `${bindFrom}.background`,
|
|
15370
|
-
transforms: [{ id: "background.resolveAllowOverflow" }],
|
|
15371
|
-
fallback: false
|
|
15372
15823
|
} }
|
|
15373
|
-
}, [
|
|
15824
|
+
}, [renderedBackgroundNode, ...childrenArray]);
|
|
15374
15825
|
}
|
|
15375
15826
|
//#endregion
|
|
15376
15827
|
//#region ../blocks/src/system/node/fragments/ctaButton.ts
|
|
@@ -16222,9 +16673,12 @@ function responsiveTwoColumn({ image, text, ratioFrom, imagePositionFrom, gapCla
|
|
|
16222
16673
|
//#endregion
|
|
16223
16674
|
//#region ../blocks/src/system/node/fragments/styledCard.ts
|
|
16224
16675
|
function styledCard(children, opts, ...mods) {
|
|
16225
|
-
const baseClassName = opts.baseClassName ?? "rb-relative rb-isolate rb-overflow-
|
|
16226
|
-
const defaultBackgroundLayer = el("div", {
|
|
16227
|
-
|
|
16676
|
+
const baseClassName = opts.baseClassName ?? "rb-relative rb-isolate rb-overflow-visible rb-border";
|
|
16677
|
+
const defaultBackgroundLayer = el("div", {
|
|
16678
|
+
className: "rb-absolute rb-inset-0 rb-z-neg-10 rb-h-full rb-w-full rb-pointer-events-none rb-bg-surface",
|
|
16679
|
+
style: { borderRadius: "inherit" }
|
|
16680
|
+
});
|
|
16681
|
+
const backgroundNode = backgroundFrame(opts.backgroundFrom);
|
|
16228
16682
|
const style = {
|
|
16229
16683
|
...opts.style ?? {},
|
|
16230
16684
|
borderColor: { $bind: {
|
|
@@ -16251,7 +16705,7 @@ function styledCard(children, opts, ...mods) {
|
|
|
16251
16705
|
...style ? { style } : {}
|
|
16252
16706
|
}, [
|
|
16253
16707
|
defaultBackgroundLayer,
|
|
16254
|
-
|
|
16708
|
+
backgroundNode,
|
|
16255
16709
|
...children
|
|
16256
16710
|
], ...mods);
|
|
16257
16711
|
}
|
|
@@ -17031,9 +17485,15 @@ function createButtonGroup(options = {}) {
|
|
|
17031
17485
|
//#endregion
|
|
17032
17486
|
//#region ../blocks/src/system/fields/ctas.ts
|
|
17033
17487
|
function createCtasRepeater(options = {}) {
|
|
17034
|
-
const { id = "ctas", label = "Calls to action", itemLabel = "CTA", minItems = 0, maxItems, button } = options;
|
|
17488
|
+
const { id = "ctas", label = "Calls to action", itemLabel = "CTA", minItems = 0, maxItems, button, defaultValue } = options;
|
|
17489
|
+
const fieldId = id;
|
|
17490
|
+
const buttonField = createButtonGroup({
|
|
17491
|
+
showGroupLabel: false,
|
|
17492
|
+
...button ?? {},
|
|
17493
|
+
flattenInRepeater: true
|
|
17494
|
+
});
|
|
17035
17495
|
return {
|
|
17036
|
-
id,
|
|
17496
|
+
id: fieldId,
|
|
17037
17497
|
type: "repeater",
|
|
17038
17498
|
label,
|
|
17039
17499
|
itemLabel,
|
|
@@ -17042,11 +17502,8 @@ function createCtasRepeater(options = {}) {
|
|
|
17042
17502
|
maxItems,
|
|
17043
17503
|
required: false,
|
|
17044
17504
|
allowConversion: true,
|
|
17045
|
-
|
|
17046
|
-
|
|
17047
|
-
...button ?? {},
|
|
17048
|
-
flattenInRepeater: true
|
|
17049
|
-
})] }
|
|
17505
|
+
...defaultValue !== void 0 ? { defaultValue: [...defaultValue] } : {},
|
|
17506
|
+
schema: { fields: [buttonField] }
|
|
17050
17507
|
};
|
|
17051
17508
|
}
|
|
17052
17509
|
//#endregion
|
|
@@ -17096,6 +17553,7 @@ const heroCtaRowFragment = defineFragment({
|
|
|
17096
17553
|
label: "Calls to action",
|
|
17097
17554
|
itemLabel: "CTA",
|
|
17098
17555
|
maxItems: 3,
|
|
17556
|
+
defaultValue: [],
|
|
17099
17557
|
button: {
|
|
17100
17558
|
variants: [
|
|
17101
17559
|
{
|
|
@@ -17163,7 +17621,7 @@ const ctaCopyFragment = defineFragment({
|
|
|
17163
17621
|
eyebrowPath: "content.eyebrow",
|
|
17164
17622
|
titlePath: "content.title",
|
|
17165
17623
|
className: "cta-heading"
|
|
17166
|
-
}), richText({ className: "cta-content rb-prose rb-mx-auto rb-max-w-none" }, when("content
|
|
17624
|
+
}), richText({ className: "cta-content rb-prose rb-mx-auto rb-max-w-none" }, when("content"), bind("content"))]
|
|
17167
17625
|
});
|
|
17168
17626
|
//#endregion
|
|
17169
17627
|
//#region ../blocks/src/system/fragments/library/testimonialsHeading.ts
|
|
@@ -17260,7 +17718,7 @@ function buildTestimonialCard(...mods) {
|
|
|
17260
17718
|
}, 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())])], {
|
|
17261
17719
|
stylesFrom: "content._cardStyles",
|
|
17262
17720
|
backgroundFrom: "content._cardStyles.background",
|
|
17263
|
-
baseClassName: "rb-testimonial-card rb-relative rb-isolate rb-flex rb-h-full rb-flex-col rb-overflow-
|
|
17721
|
+
baseClassName: "rb-testimonial-card rb-relative rb-isolate rb-flex rb-h-full rb-flex-col rb-overflow-visible rb-p-8"
|
|
17264
17722
|
}, ...mods);
|
|
17265
17723
|
}
|
|
17266
17724
|
/**
|
|
@@ -17732,39 +18190,6 @@ const formEmbedFragment = defineFragment({
|
|
|
17732
18190
|
}
|
|
17733
18191
|
});
|
|
17734
18192
|
//#endregion
|
|
17735
|
-
//#region ../blocks/src/system/fragments/library/footerBottomText.ts
|
|
17736
|
-
const footerBottomTextFragment = defineFragment({
|
|
17737
|
-
id: "footerBottomText",
|
|
17738
|
-
title: "Footer Text",
|
|
17739
|
-
description: "Rich text content for the main footer body and optional bottom bar.",
|
|
17740
|
-
fields: [{
|
|
17741
|
-
id: "bodyText",
|
|
17742
|
-
type: "richText",
|
|
17743
|
-
label: "Body text",
|
|
17744
|
-
description: "Appears in the main footer area.",
|
|
17745
|
-
ui: { variant: "limited" }
|
|
17746
|
-
}, {
|
|
17747
|
-
id: "bottomText",
|
|
17748
|
-
type: "richText",
|
|
17749
|
-
label: "Bottom bar text",
|
|
17750
|
-
description: "Appears in the optional footer bottom bar.",
|
|
17751
|
-
ui: { variant: "limited" }
|
|
17752
|
-
}],
|
|
17753
|
-
layout: [richText({
|
|
17754
|
-
className: "rb-prose rb-prose-sm rb-mx-auto rb-max-w-3xl rb-text-center",
|
|
17755
|
-
style: textColorStyle("text/80")
|
|
17756
|
-
}, when("bodyText"), bind("bodyText", { transforms: [{
|
|
17757
|
-
id: "content.interpolateRichTextTokens",
|
|
17758
|
-
options: { tokens: ["year", "site_name"] }
|
|
17759
|
-
}] })), richText({
|
|
17760
|
-
className: "rb-prose rb-prose-sm rb-mx-auto rb-max-w-3xl rb-text-center",
|
|
17761
|
-
style: textColorStyle("text/80")
|
|
17762
|
-
}, when("bottomText"), bind("bottomText", { transforms: [{
|
|
17763
|
-
id: "content.interpolateRichTextTokens",
|
|
17764
|
-
options: { tokens: ["year", "site_name"] }
|
|
17765
|
-
}] }))]
|
|
17766
|
-
});
|
|
17767
|
-
//#endregion
|
|
17768
18193
|
//#region ../blocks/src/system/fragments/library/singleButton.ts
|
|
17769
18194
|
const singleButtonFragment = defineFragment({
|
|
17770
18195
|
id: "singleButton",
|
|
@@ -17937,7 +18362,7 @@ function createFaqAccordionLayout(options = {}) {
|
|
|
17937
18362
|
options: {
|
|
17938
18363
|
axis: "all",
|
|
17939
18364
|
includeSpacing: false,
|
|
17940
|
-
baseClass: "rb-faq-item rb-relative rb-isolate rb-overflow-
|
|
18365
|
+
baseClass: "rb-faq-item rb-relative rb-isolate rb-overflow-visible"
|
|
17941
18366
|
}
|
|
17942
18367
|
}]
|
|
17943
18368
|
},
|
|
@@ -18928,6 +19353,7 @@ function createBlockManifest(config) {
|
|
|
18928
19353
|
previewCustomize: config.previewCustomize,
|
|
18929
19354
|
category: config.category,
|
|
18930
19355
|
contentTypes: config.contentTypes ? [...config.contentTypes] : void 0,
|
|
19356
|
+
contentSource: config.contentSource,
|
|
18931
19357
|
tags: config.tags ? [...config.tags] : [],
|
|
18932
19358
|
icon: config.icon ?? "Box",
|
|
18933
19359
|
layout,
|
|
@@ -19061,7 +19487,6 @@ function splitLayoutWith(children) {
|
|
|
19061
19487
|
}
|
|
19062
19488
|
}),
|
|
19063
19489
|
renderBackgroundImage: false,
|
|
19064
|
-
allowOverflow: true,
|
|
19065
19490
|
baseClass: ""
|
|
19066
19491
|
});
|
|
19067
19492
|
}
|
|
@@ -19074,6 +19499,7 @@ const heroBlockDefinition = { manifest: createBlockManifest({
|
|
|
19074
19499
|
title: "Hero",
|
|
19075
19500
|
titleSource: "headline",
|
|
19076
19501
|
category: "layout",
|
|
19502
|
+
contentSource: { kind: "inline" },
|
|
19077
19503
|
includeContainerStyles: true,
|
|
19078
19504
|
promotedFields: ["_sectionStyles.background.image"],
|
|
19079
19505
|
fragments: [
|
|
@@ -19347,6 +19773,7 @@ const introBlockDefinition = { manifest: createBlockManifest({
|
|
|
19347
19773
|
id: "block.intro",
|
|
19348
19774
|
title: "Intro",
|
|
19349
19775
|
category: "layout",
|
|
19776
|
+
contentSource: { kind: "inline" },
|
|
19350
19777
|
includeContainerStyles: true,
|
|
19351
19778
|
titleSource: "title",
|
|
19352
19779
|
previewCustomize: { quickFieldPriority: [
|
|
@@ -19532,6 +19959,7 @@ const bodyTextBlockDefinition = { manifest: createBlockManifest({
|
|
|
19532
19959
|
title: "Body Text",
|
|
19533
19960
|
titleSource: "heading",
|
|
19534
19961
|
category: "content",
|
|
19962
|
+
contentSource: { kind: "inline" },
|
|
19535
19963
|
fragments: [{
|
|
19536
19964
|
fragment: bodyCopyFragment,
|
|
19537
19965
|
fieldPriority: 0
|
|
@@ -19588,6 +20016,10 @@ const blogPostBlockDefinition = {
|
|
|
19588
20016
|
description: "Highlights a single blog post with title, image, and excerpt.",
|
|
19589
20017
|
category: "blog",
|
|
19590
20018
|
contentTypes: ["post"],
|
|
20019
|
+
contentSource: {
|
|
20020
|
+
kind: "entries",
|
|
20021
|
+
contentType: "post"
|
|
20022
|
+
},
|
|
19591
20023
|
tags: [
|
|
19592
20024
|
"blog",
|
|
19593
20025
|
"post",
|
|
@@ -19689,7 +20121,7 @@ function postCard(children, ...mods) {
|
|
|
19689
20121
|
return styledCard(children, {
|
|
19690
20122
|
stylesFrom: "content._cardStyles",
|
|
19691
20123
|
backgroundFrom: "content._cardStyles.background",
|
|
19692
|
-
baseClassName: "rb-relative rb-isolate rb-overflow-
|
|
20124
|
+
baseClassName: "rb-relative rb-isolate rb-overflow-visible rb-border rb-flex rb-flex-col rb-h-full"
|
|
19693
20125
|
}, ...mods);
|
|
19694
20126
|
}
|
|
19695
20127
|
const gridPostCard = postCard([postImageLink("rb-h-48 rb-w-full rb-object-cover rb-transition-transform rb-hover-scale-105", {
|
|
@@ -19725,7 +20157,7 @@ const stackPostCard = styledCard([inline({
|
|
|
19725
20157
|
])])], {
|
|
19726
20158
|
stylesFrom: "content._cardStyles",
|
|
19727
20159
|
backgroundFrom: "content._cardStyles.background",
|
|
19728
|
-
baseClassName: "rb-relative rb-isolate rb-overflow-
|
|
20160
|
+
baseClassName: "rb-relative rb-isolate rb-overflow-visible rb-border"
|
|
19729
20161
|
}, repeat("data.posts", "post"));
|
|
19730
20162
|
const emptyState$2 = {
|
|
19731
20163
|
...styledCard([text({
|
|
@@ -19734,7 +20166,7 @@ const emptyState$2 = {
|
|
|
19734
20166
|
}, bind("content.emptyMessage", { fallback: "No posts published yet." }))], {
|
|
19735
20167
|
stylesFrom: "content._cardStyles",
|
|
19736
20168
|
backgroundFrom: "content._cardStyles.background",
|
|
19737
|
-
baseClassName: "rb-relative rb-isolate rb-overflow-
|
|
20169
|
+
baseClassName: "rb-relative rb-isolate rb-overflow-visible rb-border rb-border-dashed rb-p-8 rb-text-center"
|
|
19738
20170
|
}),
|
|
19739
20171
|
$when: {
|
|
19740
20172
|
when: { from: "data.posts[0]" },
|
|
@@ -19744,7 +20176,7 @@ const emptyState$2 = {
|
|
|
19744
20176
|
function blogListingShell(children) {
|
|
19745
20177
|
return styledSection({
|
|
19746
20178
|
children: styledContainer({
|
|
19747
|
-
baseClassName: "rb-relative rb-isolate rb-overflow-
|
|
20179
|
+
baseClassName: "rb-relative rb-isolate rb-overflow-visible",
|
|
19748
20180
|
children
|
|
19749
20181
|
}),
|
|
19750
20182
|
baseClass: ""
|
|
@@ -19885,6 +20317,10 @@ const blogListingManifest = createBlockManifest({
|
|
|
19885
20317
|
],
|
|
19886
20318
|
description: "Display a collection of blog posts in grid or stack layout.",
|
|
19887
20319
|
contentTypes: ["post"],
|
|
20320
|
+
contentSource: {
|
|
20321
|
+
kind: "entries",
|
|
20322
|
+
contentType: "post"
|
|
20323
|
+
},
|
|
19888
20324
|
tags: [
|
|
19889
20325
|
"blog",
|
|
19890
20326
|
"posts",
|
|
@@ -19927,6 +20363,7 @@ const ctaFullBlockDefinition = { manifest: createBlockManifest({
|
|
|
19927
20363
|
id: "block.cta-full",
|
|
19928
20364
|
title: "Full-width CTA",
|
|
19929
20365
|
category: "marketing",
|
|
20366
|
+
contentSource: { kind: "inline" },
|
|
19930
20367
|
fragments: [{
|
|
19931
20368
|
fragment: ctaCopyFragment,
|
|
19932
20369
|
fieldPriority: 0
|
|
@@ -19960,6 +20397,7 @@ const singleButtonBlockDefinition = { manifest: createBlockManifest({
|
|
|
19960
20397
|
id: "block.single-button",
|
|
19961
20398
|
title: "Single Button",
|
|
19962
20399
|
category: "marketing",
|
|
20400
|
+
contentSource: { kind: "inline" },
|
|
19963
20401
|
fragments: [{
|
|
19964
20402
|
fragment: singleButtonFragment,
|
|
19965
20403
|
fieldPriority: 0
|
|
@@ -20156,7 +20594,7 @@ const copyLayout = fragmentLayoutNode$1(formCopyFragment.layout);
|
|
|
20156
20594
|
const formSurface = styledContainer({
|
|
20157
20595
|
bindFrom: "_containerStyles",
|
|
20158
20596
|
constrainWidth: false,
|
|
20159
|
-
baseClassName: "rb-form-surface rb-relative rb-isolate rb-overflow-
|
|
20597
|
+
baseClassName: "rb-form-surface rb-relative rb-isolate rb-overflow-visible",
|
|
20160
20598
|
children: fragmentLayoutNode$1(formEmbedFragment.layout)
|
|
20161
20599
|
});
|
|
20162
20600
|
function createFormLayout(variant) {
|
|
@@ -20220,6 +20658,7 @@ const formManifest = createBlockManifest({
|
|
|
20220
20658
|
paletteHidden: false
|
|
20221
20659
|
},
|
|
20222
20660
|
category: "interactive",
|
|
20661
|
+
contentSource: { kind: "inline" },
|
|
20223
20662
|
tags: [
|
|
20224
20663
|
"form",
|
|
20225
20664
|
"contact",
|
|
@@ -20282,6 +20721,7 @@ const contactNewsletterBlockDefinition = {
|
|
|
20282
20721
|
titleSource: "contactTitle",
|
|
20283
20722
|
description: "Two-column newsletter signup and contact form section.",
|
|
20284
20723
|
category: "interactive",
|
|
20724
|
+
contentSource: { kind: "inline" },
|
|
20285
20725
|
layout: contactNewsletterLayout,
|
|
20286
20726
|
defaultVariant: "default",
|
|
20287
20727
|
variants: { default: contactNewsletterLayout },
|
|
@@ -20485,6 +20925,7 @@ const faqBlockDefinition = { manifest: createBlockManifest({
|
|
|
20485
20925
|
title: "FAQ",
|
|
20486
20926
|
titleSource: "title",
|
|
20487
20927
|
category: "content",
|
|
20928
|
+
contentSource: { kind: "inline" },
|
|
20488
20929
|
includeContainerStyles: true,
|
|
20489
20930
|
fragments: [{
|
|
20490
20931
|
fragment: faqHeadingFragment,
|
|
@@ -21373,6 +21814,7 @@ const headerRootClassTransform = {
|
|
|
21373
21814
|
];
|
|
21374
21815
|
const variant = header?.variant;
|
|
21375
21816
|
if (variant && VALID_VARIANTS.includes(variant)) classes.push(`header-variant-${variant}`);
|
|
21817
|
+
if (header?.barFrame === "inset-shell" && variant === "classic") classes.push("header-bar-frame-inset-shell");
|
|
21376
21818
|
return joinClasses(classes);
|
|
21377
21819
|
}
|
|
21378
21820
|
};
|
|
@@ -21886,7 +22328,7 @@ function desktopOnlyDisplay(display) {
|
|
|
21886
22328
|
}
|
|
21887
22329
|
//#endregion
|
|
21888
22330
|
//#region ../blocks/src/system/blocks/site-header.ts
|
|
21889
|
-
const whenTransformed
|
|
22331
|
+
const whenTransformed = (from, transformId, equals = true) => (node) => ({
|
|
21890
22332
|
...node,
|
|
21891
22333
|
$when: {
|
|
21892
22334
|
when: {
|
|
@@ -21914,7 +22356,7 @@ const logoRow = link({
|
|
|
21914
22356
|
text({
|
|
21915
22357
|
as: "strong",
|
|
21916
22358
|
className: "header-logo-text rb-truncate"
|
|
21917
|
-
}, whenTransformed
|
|
22359
|
+
}, whenTransformed("$root.theme.header.logo", "layout.headerLogoTextVisible"), bind("site.title", { fallback: "Your Site" }))
|
|
21918
22360
|
]);
|
|
21919
22361
|
const centeredLogoRow = link({
|
|
21920
22362
|
href: "/",
|
|
@@ -21934,7 +22376,7 @@ const centeredLogoRow = link({
|
|
|
21934
22376
|
text({
|
|
21935
22377
|
as: "strong",
|
|
21936
22378
|
className: "header-logo-text"
|
|
21937
|
-
}, whenTransformed
|
|
22379
|
+
}, whenTransformed("$root.theme.header.logo", "layout.headerLogoTextVisible"), bind("site.title", { fallback: "Your Site" }))
|
|
21938
22380
|
]);
|
|
21939
22381
|
const createNavRow = (className, align = "end") => navRow({
|
|
21940
22382
|
className: `${className} header-nav-row`,
|
|
@@ -22066,7 +22508,7 @@ const classicLayout = inline({
|
|
|
22066
22508
|
logoRow,
|
|
22067
22509
|
createNavRow(`rb-ml-auto ${desktopOnlyDisplay("flex")} rb-gap-6`),
|
|
22068
22510
|
headerCta
|
|
22069
|
-
], whenTransformed
|
|
22511
|
+
], whenTransformed("$root.theme.header", "layout.classicNavMode", "inline"));
|
|
22070
22512
|
const classicCenteredNavLayout = inline({
|
|
22071
22513
|
className: bindProp("$root.theme.header.maxWidth", {
|
|
22072
22514
|
transforms: pipe(tx("layout.maxWidthClass", { base: `rb-header-layout ${desktopOnlyDisplay("flex")} rb-w-full rb-items-center rb-gap-6` })),
|
|
@@ -22077,7 +22519,7 @@ const classicCenteredNavLayout = inline({
|
|
|
22077
22519
|
logoRow,
|
|
22078
22520
|
createNavRow(`rb-flex-1 rb-justify-center ${desktopOnlyDisplay("flex")} rb-gap-6`, "center"),
|
|
22079
22521
|
headerCta
|
|
22080
|
-
], whenTransformed
|
|
22522
|
+
], whenTransformed("$root.theme.header", "layout.classicNavMode", "centered"));
|
|
22081
22523
|
const centeredLayout = stack({
|
|
22082
22524
|
gap: "md",
|
|
22083
22525
|
align: "center",
|
|
@@ -22117,6 +22559,7 @@ const siteHeaderBlockDefinition = { manifest: createBlockManifest({
|
|
|
22117
22559
|
id: "block.site-header",
|
|
22118
22560
|
title: "Site Header",
|
|
22119
22561
|
category: "layout",
|
|
22562
|
+
contentSource: { kind: "inline" },
|
|
22120
22563
|
additionalFields: [{
|
|
22121
22564
|
id: "mode",
|
|
22122
22565
|
type: "select",
|
|
@@ -22140,7 +22583,6 @@ const siteHeaderBlockDefinition = { manifest: createBlockManifest({
|
|
|
22140
22583
|
transforms: pipe(tx("layout.headerSectionBackground")),
|
|
22141
22584
|
fallback: "background"
|
|
22142
22585
|
}),
|
|
22143
|
-
allowOverflow: true,
|
|
22144
22586
|
className: bindProp("$root.theme.header", {
|
|
22145
22587
|
transforms: pipe(tx("layout.headerRootClass")),
|
|
22146
22588
|
fallback: "header-root rb-z-40 rb-w-full transition-theme"
|
|
@@ -22190,218 +22632,155 @@ const footerNavGroupsLayout = stack({
|
|
|
22190
22632
|
linkRequired: true,
|
|
22191
22633
|
target: { $bind: { from: "entry.target" } },
|
|
22192
22634
|
rel: { $bind: { from: "entry.rel" } }
|
|
22193
|
-
}, [text({ as: "span" }, bind("entry.label"))], repeat("group.children", "entry"))])], repeat("footerMenu.groups", "group"))],
|
|
22635
|
+
}, [text({ as: "span" }, bind("entry.label"))], repeat("group.children", "entry"))])], repeat("footerMenu.groups", "group"))], whenCollectionHasItems("footerMenu.groups"));
|
|
22194
22636
|
//#endregion
|
|
22195
22637
|
//#region ../blocks/src/system/blocks/site-footer.ts
|
|
22196
|
-
const
|
|
22197
|
-
|
|
22198
|
-
...node,
|
|
22199
|
-
$when: {
|
|
22200
|
-
when: {
|
|
22201
|
-
from,
|
|
22202
|
-
transforms: [{ id: transformId }]
|
|
22203
|
-
},
|
|
22204
|
-
equals
|
|
22205
|
-
}
|
|
22206
|
-
});
|
|
22207
|
-
const bottomBarTextLayout = () => {
|
|
22208
|
-
const bottomTextNode = footerTextLayout()[1];
|
|
22209
|
-
return bottomTextNode ? [bottomTextNode] : [];
|
|
22210
|
-
};
|
|
22211
|
-
const bodyTextLayout = () => {
|
|
22212
|
-
const bodyTextNode = footerTextLayout()[0];
|
|
22213
|
-
return bodyTextNode ? [bodyTextNode] : [];
|
|
22214
|
-
};
|
|
22215
|
-
const businessAddressLayout = () => [text({
|
|
22216
|
-
as: "p",
|
|
22217
|
-
className: "rb-caption rb-opacity-80"
|
|
22218
|
-
}, bind("site.businessAddress.displayAddress"), when("content.showBusinessAddress", { equals: true }))];
|
|
22219
|
-
const inlineBottomTextLayout = () => {
|
|
22220
|
-
const bottomTextNode = footerTextLayout()[1];
|
|
22221
|
-
if (!bottomTextNode) return [];
|
|
22222
|
-
return [when("$root.theme.footer.bottomBar.enabled", {
|
|
22223
|
-
equals: true,
|
|
22224
|
-
not: true
|
|
22225
|
-
})(bottomTextNode)];
|
|
22226
|
-
};
|
|
22227
|
-
const simpleFooterLayout = stack({
|
|
22228
|
-
gap: "md",
|
|
22229
|
-
align: "start",
|
|
22230
|
-
className: { $bind: {
|
|
22231
|
-
from: "$root.theme.footer",
|
|
22232
|
-
transforms: [{ id: "layout.footerSimpleRootClass" }],
|
|
22233
|
-
fallback: "rb-container rb-flex rb-w-full rb-flex-col rb-items-start rb-gap-4 rb-py-10 rb-text-left"
|
|
22234
|
-
} }
|
|
22235
|
-
}, [
|
|
22236
|
-
link({
|
|
22237
|
-
href: "/",
|
|
22238
|
-
className: { $bind: {
|
|
22239
|
-
from: "$root.theme.footer.logo",
|
|
22240
|
-
transforms: [{
|
|
22241
|
-
id: "layout.footerLogoClass",
|
|
22242
|
-
options: { requireExplicitShow: true }
|
|
22243
|
-
}],
|
|
22244
|
-
fallback: "rb-hidden"
|
|
22245
|
-
} }
|
|
22246
|
-
}, [
|
|
22247
|
-
media({ className: { $bind: {
|
|
22248
|
-
from: "$root.theme.footer.logo",
|
|
22249
|
-
transforms: [{ id: "layout.footerLogoMediaClass" }],
|
|
22250
|
-
fallback: "rb-w-auto"
|
|
22251
|
-
} } }, when("content.logo"), bind("content.logo")),
|
|
22252
|
-
stack({ className: "rb-contents" }, [media({ className: { $bind: {
|
|
22253
|
-
from: "$root.theme.footer.logo",
|
|
22254
|
-
transforms: [{ id: "layout.footerLogoMediaClass" }],
|
|
22255
|
-
fallback: "rb-w-auto"
|
|
22256
|
-
} } }, when("site.logo"), bind("site.logo"))], when("content.logo", { not: true })),
|
|
22257
|
-
text({
|
|
22258
|
-
as: "strong",
|
|
22259
|
-
className: "footer-logo-text rb-nav-text"
|
|
22260
|
-
}, whenTransformed("$root.theme.footer", "layout.footerLogoTextVisible"), bind("site.title", { fallback: "Your Site" }))
|
|
22261
|
-
]),
|
|
22262
|
-
footerNav({
|
|
22263
|
-
collectionPath: "footerMenu.items",
|
|
22264
|
-
mode: "flatten",
|
|
22265
|
-
className: { $bind: {
|
|
22266
|
-
from: "$root.theme.footer.navLayout",
|
|
22267
|
-
transforms: [{ id: "layout.footerSimpleNavClass" }],
|
|
22268
|
-
fallback: "footer-nav rb-flex rb-flex-wrap rb-justify-start rb-gap-x-6 rb-gap-y-3"
|
|
22269
|
-
} },
|
|
22270
|
-
linkClassName: "footer-nav-link rb-inline-flex rb-items-center rb-px-4 rb-py-2 rb-nav-text transition-theme-standard"
|
|
22271
|
-
}),
|
|
22272
|
-
...bodyTextLayout(),
|
|
22273
|
-
...businessAddressLayout(),
|
|
22274
|
-
...inlineBottomTextLayout()
|
|
22275
|
-
], when("$root.theme.footer.variant", { equals: "simple" }));
|
|
22276
|
-
const columnsFooterLayout = stack({
|
|
22277
|
-
gap: "xl",
|
|
22278
|
-
align: "start",
|
|
22638
|
+
const brandLogo = link({
|
|
22639
|
+
href: "/",
|
|
22279
22640
|
className: { $bind: {
|
|
22280
|
-
from: "$root.theme.footer.
|
|
22641
|
+
from: "$root.theme.footer.logo",
|
|
22281
22642
|
transforms: [{
|
|
22282
|
-
id: "layout.
|
|
22283
|
-
options: { base: "
|
|
22643
|
+
id: "layout.footerLogoClass",
|
|
22644
|
+
options: { base: "footer-logo rb-inline-flex rb-items-center rb-gap-3 rb-no-underline" }
|
|
22284
22645
|
}],
|
|
22285
|
-
fallback: "
|
|
22646
|
+
fallback: "footer-logo rb-inline-flex rb-items-center rb-gap-3 rb-no-underline"
|
|
22286
22647
|
} }
|
|
22287
|
-
}, [
|
|
22288
|
-
|
|
22289
|
-
|
|
22290
|
-
|
|
22291
|
-
|
|
22292
|
-
|
|
22293
|
-
|
|
22294
|
-
|
|
22295
|
-
|
|
22296
|
-
|
|
22297
|
-
|
|
22298
|
-
|
|
22299
|
-
|
|
22300
|
-
|
|
22301
|
-
|
|
22302
|
-
|
|
22303
|
-
|
|
22304
|
-
gap: "xl",
|
|
22305
|
-
align: "start",
|
|
22648
|
+
}, [media({ className: { $bind: {
|
|
22649
|
+
from: "$root.theme.footer.logo",
|
|
22650
|
+
transforms: [{
|
|
22651
|
+
id: "layout.footerLogoMediaClass",
|
|
22652
|
+
options: { base: "rb-h-10 rb-w-auto" }
|
|
22653
|
+
}],
|
|
22654
|
+
fallback: "rb-h-10 rb-w-auto"
|
|
22655
|
+
} } }, when("module.showLogo", { equals: true }), when("content.logo"), bind("content.logo")), text({
|
|
22656
|
+
as: "strong",
|
|
22657
|
+
className: "footer-logo-text rb-nav-text"
|
|
22658
|
+
}, when("module.showTitle", { equals: true }), bind("site.title", { fallback: "Your Site" }))], when("module.kind", { equals: "brand" }));
|
|
22659
|
+
const navigation = stack({
|
|
22660
|
+
gap: "md",
|
|
22661
|
+
className: "rb-w-full"
|
|
22662
|
+
}, [footerNavGroupsLayout, footerNav({
|
|
22663
|
+
collectionPath: "footerMenu.items",
|
|
22664
|
+
mode: "links-only",
|
|
22306
22665
|
className: { $bind: {
|
|
22307
|
-
from: "
|
|
22308
|
-
|
|
22309
|
-
|
|
22310
|
-
|
|
22311
|
-
|
|
22312
|
-
|
|
22313
|
-
|
|
22666
|
+
from: "module.navigationClassName",
|
|
22667
|
+
fallback: "footer-nav rb-flex rb-flex-wrap rb-gap-x-6 rb-gap-y-3"
|
|
22668
|
+
} },
|
|
22669
|
+
linkClassName: "footer-nav-link rb-nav-text transition-theme-standard"
|
|
22670
|
+
})], when("module.kind", { equals: "navigation" }));
|
|
22671
|
+
const legalNavigation = footerNav({
|
|
22672
|
+
collectionPath: "legalFooterMenu.items",
|
|
22673
|
+
mode: "links-only",
|
|
22674
|
+
className: "rb-flex rb-flex-wrap rb-gap-x-4 rb-gap-y-2",
|
|
22675
|
+
linkClassName: "footer-nav-link rb-caption transition-theme-standard"
|
|
22676
|
+
});
|
|
22677
|
+
const address = text({
|
|
22678
|
+
as: "address",
|
|
22679
|
+
className: "rb-not-italic rb-opacity-80"
|
|
22680
|
+
}, when("module.kind", { equals: "business-address" }), bind("module.address"));
|
|
22681
|
+
const contact = stack({
|
|
22682
|
+
gap: "sm",
|
|
22683
|
+
className: "rb-items-start"
|
|
22684
|
+
}, [link({
|
|
22685
|
+
href: { $bind: { from: "contactLink.href" } },
|
|
22686
|
+
className: "rb-nav-text rb-break-words transition-theme-standard"
|
|
22687
|
+
}, [text({ as: "span" }, bind("contactLink.label"))], repeat("module.contactLinks", "contactLink"))], when("module.kind", { equals: "contact" }));
|
|
22688
|
+
const hours = stack({
|
|
22689
|
+
gap: "sm",
|
|
22690
|
+
className: "rb-w-full"
|
|
22691
|
+
}, [inline({ className: "rb-flex rb-w-full rb-justify-between rb-gap-4" }, [text({
|
|
22692
|
+
as: "span",
|
|
22693
|
+
className: "rb-label"
|
|
22694
|
+
}, bind("hoursDay.weekday")), text({
|
|
22695
|
+
as: "span",
|
|
22696
|
+
className: "rb-caption rb-opacity-80"
|
|
22697
|
+
}, bind("hoursDay.hours"))], repeat("module.openingHours", "hoursDay")), text({
|
|
22698
|
+
as: "p",
|
|
22699
|
+
className: "rb-caption rb-opacity-70"
|
|
22700
|
+
}, bind("module.timeZone"), when("module.timeZone"))], when("module.kind", { equals: "opening-hours" }));
|
|
22701
|
+
const socials = inline({ className: "rb-flex rb-flex-wrap rb-gap-x-5 rb-gap-y-3" }, [link({
|
|
22702
|
+
href: { $bind: { from: "social.href" } },
|
|
22703
|
+
target: "_blank",
|
|
22704
|
+
rel: "noreferrer noopener",
|
|
22705
|
+
"aria-label": { $bind: { from: "social.label" } },
|
|
22706
|
+
className: "rb-nav-text transition-theme-standard"
|
|
22707
|
+
}, [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" }));
|
|
22708
|
+
const authoredCopy = richText({
|
|
22709
|
+
className: "rb-prose rb-prose-sm rb-max-w-none",
|
|
22710
|
+
style: textColorStyle("text/80")
|
|
22711
|
+
}, when("module.content"), bind("module.content", { transforms: [{
|
|
22712
|
+
id: "content.interpolateRichTextTokens",
|
|
22713
|
+
options: { tokens: ["year", "site_name"] }
|
|
22714
|
+
}] }));
|
|
22715
|
+
const footerGroup = stack({
|
|
22716
|
+
gap: "md",
|
|
22717
|
+
align: "stretch",
|
|
22718
|
+
className: "rb-min-w-0",
|
|
22719
|
+
"data-footer-group": { $bind: { from: "group.kind" } }
|
|
22720
|
+
}, [stack({
|
|
22721
|
+
gap: "md",
|
|
22722
|
+
align: "start",
|
|
22723
|
+
"data-preview-footer-module-id": { $bind: { from: "module.id" } }
|
|
22314
22724
|
}, [
|
|
22315
|
-
|
|
22316
|
-
|
|
22317
|
-
|
|
22318
|
-
|
|
22319
|
-
}
|
|
22320
|
-
|
|
22321
|
-
|
|
22322
|
-
|
|
22323
|
-
|
|
22324
|
-
|
|
22325
|
-
|
|
22326
|
-
|
|
22327
|
-
|
|
22328
|
-
|
|
22329
|
-
|
|
22330
|
-
|
|
22331
|
-
|
|
22332
|
-
|
|
22333
|
-
|
|
22334
|
-
|
|
22335
|
-
}
|
|
22336
|
-
|
|
22337
|
-
|
|
22338
|
-
|
|
22339
|
-
|
|
22340
|
-
|
|
22341
|
-
|
|
22342
|
-
from: "$root.theme.footer.logo",
|
|
22343
|
-
transforms: [{ id: "layout.footerLogoMediaClass" }],
|
|
22344
|
-
fallback: "rb-w-auto"
|
|
22345
|
-
} } }, when("site.logo"), bind("site.logo"))], when("content.logo", { not: true })),
|
|
22346
|
-
text({
|
|
22347
|
-
as: "strong",
|
|
22348
|
-
className: "footer-logo-text rb-nav-text"
|
|
22349
|
-
}, whenTransformed("$root.theme.footer", "layout.footerLogoTextVisible"), bind("site.title", { fallback: "Your Site" }))
|
|
22350
|
-
])]),
|
|
22351
|
-
...businessAddressLayout(),
|
|
22352
|
-
...inlineBottomTextLayout()
|
|
22353
|
-
], when("$root.theme.footer.variant", { equals: "split" }));
|
|
22354
|
-
const footerLayout = section({
|
|
22355
|
-
background: "background",
|
|
22725
|
+
text({
|
|
22726
|
+
as: "h2",
|
|
22727
|
+
className: "rb-label",
|
|
22728
|
+
style: textColorStyle("text/70")
|
|
22729
|
+
}, bind("module.heading"), when("module.heading")),
|
|
22730
|
+
brandLogo,
|
|
22731
|
+
navigation,
|
|
22732
|
+
stack({
|
|
22733
|
+
gap: "sm",
|
|
22734
|
+
className: "rb-w-full"
|
|
22735
|
+
}, [legalNavigation], when("module.kind", { equals: "legal-navigation" })),
|
|
22736
|
+
address,
|
|
22737
|
+
contact,
|
|
22738
|
+
hours,
|
|
22739
|
+
socials,
|
|
22740
|
+
stack({ className: "rb-w-full" }, [authoredCopy], when("module.kind", { equals: "supporting-text" })),
|
|
22741
|
+
stack({ className: "rb-w-full rb-lg-col-span-3" }, [authoredCopy], when("module.kind", { equals: "legal" }))
|
|
22742
|
+
], repeat("group.modules", "module"))], repeat("region.groups", "group"));
|
|
22743
|
+
const footerMainRegion = stack({
|
|
22744
|
+
className: { $bind: { from: "region.className" } },
|
|
22745
|
+
"data-footer-region": { $bind: { from: "region.kind" } }
|
|
22746
|
+
}, [footerGroup], when("region.kind", { equals: "main" }), repeat("content.footerRuntime.regions", "region"));
|
|
22747
|
+
const footerBottomRegion = stack({ className: { $bind: {
|
|
22748
|
+
from: "$root.theme.footer",
|
|
22749
|
+
transforms: [{ id: "layout.footerBottomBarContainerClass" }],
|
|
22750
|
+
fallback: "rb-w-full"
|
|
22751
|
+
} } }, [stack({
|
|
22356
22752
|
className: { $bind: {
|
|
22357
22753
|
from: "$root.theme.footer",
|
|
22358
|
-
transforms: [{ id: "layout.
|
|
22359
|
-
fallback: "rb-w-full rb-border-t
|
|
22754
|
+
transforms: [{ id: "layout.footerBottomBarClass" }],
|
|
22755
|
+
fallback: "rb-w-full rb-border-t rb-px-6 rb-py-6 rb-text-center"
|
|
22360
22756
|
} },
|
|
22361
22757
|
style: { $bind: {
|
|
22362
22758
|
from: "$root.theme.footer",
|
|
22363
|
-
transforms: [{ id: "layout.
|
|
22364
|
-
|
|
22365
|
-
|
|
22366
|
-
}, [
|
|
22367
|
-
simpleFooterLayout,
|
|
22368
|
-
columnsFooterLayout,
|
|
22369
|
-
splitFooterLayout,
|
|
22370
|
-
stack({
|
|
22371
|
-
className: { $bind: {
|
|
22372
|
-
from: "$root.theme.footer",
|
|
22373
|
-
transforms: [{ id: "layout.footerBottomBarClass" }],
|
|
22374
|
-
fallback: "rb-w-full rb-border-t rb-py-5"
|
|
22375
|
-
} },
|
|
22376
|
-
style: { $bind: {
|
|
22377
|
-
from: "$root.theme.footer",
|
|
22378
|
-
transforms: [{ id: "layout.footerBottomBarStyle" }]
|
|
22379
|
-
} }
|
|
22380
|
-
}, [stack({ className: { $bind: {
|
|
22381
|
-
from: "$root.theme.footer",
|
|
22382
|
-
transforms: [{ id: "layout.footerBottomBarContainerClass" }],
|
|
22383
|
-
fallback: "rb-container"
|
|
22384
|
-
} } }, [...bottomBarTextLayout()])], when("$root.theme.footer.bottomBar.enabled", { equals: true }))
|
|
22385
|
-
]);
|
|
22759
|
+
transforms: [{ id: "layout.footerBottomBarStyle" }]
|
|
22760
|
+
} },
|
|
22761
|
+
"data-footer-region": "bottom"
|
|
22762
|
+
}, [footerGroup])], when("region.kind", { equals: "bottom" }), repeat("content.footerRuntime.regions", "region"));
|
|
22386
22763
|
const siteFooterBlockDefinition = { manifest: createBlockManifest({
|
|
22387
22764
|
id: "block.site-footer",
|
|
22388
22765
|
title: "Site Footer",
|
|
22389
22766
|
category: "layout",
|
|
22390
|
-
|
|
22391
|
-
fragment: footerBottomTextFragment,
|
|
22392
|
-
fieldPriority: 0
|
|
22393
|
-
}],
|
|
22767
|
+
contentSource: { kind: "inline" },
|
|
22394
22768
|
skipSectionStyles: true,
|
|
22395
|
-
|
|
22396
|
-
|
|
22397
|
-
|
|
22398
|
-
|
|
22399
|
-
|
|
22400
|
-
|
|
22401
|
-
|
|
22402
|
-
|
|
22403
|
-
|
|
22404
|
-
|
|
22769
|
+
layout: section({
|
|
22770
|
+
background: "background",
|
|
22771
|
+
className: { $bind: {
|
|
22772
|
+
from: "$root.theme.footer",
|
|
22773
|
+
transforms: [{ id: "layout.footerRootClass" }],
|
|
22774
|
+
fallback: "rb-w-full rb-border-t transition-theme"
|
|
22775
|
+
} },
|
|
22776
|
+
style: { $bind: {
|
|
22777
|
+
from: "$root.theme.footer",
|
|
22778
|
+
transforms: [{ id: "layout.footerRootStyle" }],
|
|
22779
|
+
fallback: mergeStyles(backgroundColorStyle("surface"), surfaceForegroundStyle({ text: "rgb(var(--tb-text))" }), borderColorStyle("border"))
|
|
22780
|
+
} },
|
|
22781
|
+
"data-footer-membership": { $bind: { from: "content.footerRuntime.membershipKey" } }
|
|
22782
|
+
}, [footerMainRegion, footerBottomRegion]),
|
|
22783
|
+
description: "Site-wide composed footer with canonical shared details.",
|
|
22405
22784
|
styleTokens: { spacing: "md" },
|
|
22406
22785
|
paletteHidden: true
|
|
22407
22786
|
}) };
|
|
@@ -22535,6 +22914,7 @@ const testimonialsBlockDefinition = {
|
|
|
22535
22914
|
id: "block.testimonials",
|
|
22536
22915
|
title: "Testimonials",
|
|
22537
22916
|
category: "marketing",
|
|
22917
|
+
contentSource: { kind: "inline" },
|
|
22538
22918
|
includeContainerStyles: true,
|
|
22539
22919
|
previewCustomize: { quickFieldPriority: [
|
|
22540
22920
|
"avatarLayout",
|
|
@@ -22693,6 +23073,7 @@ const columnsBlockDefinition = { manifest: createBlockManifest({
|
|
|
22693
23073
|
id: "block.columns",
|
|
22694
23074
|
title: "Columns",
|
|
22695
23075
|
category: "layout",
|
|
23076
|
+
contentSource: { kind: "inline" },
|
|
22696
23077
|
additionalFields: [
|
|
22697
23078
|
parseFieldDefinition({
|
|
22698
23079
|
id: "equalHeight",
|
|
@@ -22879,7 +23260,7 @@ const repeatedItemsNode = repeaterFragmentLayout({
|
|
|
22879
23260
|
id: "boxStyles.all",
|
|
22880
23261
|
options: {
|
|
22881
23262
|
axis: "all",
|
|
22882
|
-
baseClass: "rb-collection-item rb-relative rb-isolate rb-overflow-
|
|
23263
|
+
baseClass: "rb-collection-item rb-relative rb-isolate rb-overflow-visible rb-border"
|
|
22883
23264
|
}
|
|
22884
23265
|
}]
|
|
22885
23266
|
},
|
|
@@ -22926,6 +23307,7 @@ const collectionBlockDefinition = { manifest: createBlockManifest({
|
|
|
22926
23307
|
id: "block.collection",
|
|
22927
23308
|
title: "Collection",
|
|
22928
23309
|
category: "layout",
|
|
23310
|
+
contentSource: { kind: "inline" },
|
|
22929
23311
|
additionalFields: [
|
|
22930
23312
|
parseFieldDefinition({
|
|
22931
23313
|
id: "layout",
|
|
@@ -23162,6 +23544,7 @@ const featureCardsBlockDefinition = { manifest: createBlockManifest({
|
|
|
23162
23544
|
id: "block.feature-cards",
|
|
23163
23545
|
title: "Feature Cards",
|
|
23164
23546
|
category: "layout",
|
|
23547
|
+
contentSource: { kind: "inline" },
|
|
23165
23548
|
includeContainerStyles: true,
|
|
23166
23549
|
titleSource: "title",
|
|
23167
23550
|
additionalFields: [
|
|
@@ -23545,6 +23928,7 @@ const mediaTextBlockDefinition = { manifest: createBlockManifest({
|
|
|
23545
23928
|
id: "block.media-text",
|
|
23546
23929
|
title: "Media and Text",
|
|
23547
23930
|
category: "layout",
|
|
23931
|
+
contentSource: { kind: "inline" },
|
|
23548
23932
|
includeContainerStyles: true,
|
|
23549
23933
|
titleSource: "title",
|
|
23550
23934
|
previewCustomize: { quickFieldPriority: [
|
|
@@ -23945,6 +24329,7 @@ const appointmentBookingBlockDefinition = {
|
|
|
23945
24329
|
paletteHidden: false
|
|
23946
24330
|
},
|
|
23947
24331
|
category: "interactive",
|
|
24332
|
+
contentSource: { kind: "inline" },
|
|
23948
24333
|
tags: [
|
|
23949
24334
|
"booking",
|
|
23950
24335
|
"appointment",
|
|
@@ -24109,6 +24494,7 @@ const weeklySlotAvailabilityManifest = createBlockManifest({
|
|
|
24109
24494
|
paletteHidden: false
|
|
24110
24495
|
},
|
|
24111
24496
|
category: "interactive",
|
|
24497
|
+
contentSource: { kind: "inline" },
|
|
24112
24498
|
tags: [
|
|
24113
24499
|
"booking",
|
|
24114
24500
|
"appointment",
|
|
@@ -25673,6 +26059,7 @@ const eventRegistrationBlockDefinition = {
|
|
|
25673
26059
|
titleSource: "heading",
|
|
25674
26060
|
description: "Multi-step event registration form",
|
|
25675
26061
|
category: "interactive",
|
|
26062
|
+
contentSource: { kind: "inline" },
|
|
25676
26063
|
tags: [
|
|
25677
26064
|
"events",
|
|
25678
26065
|
"registration",
|
|
@@ -25779,15 +26166,9 @@ const eventRegistrationBlockDefinition = {
|
|
|
25779
26166
|
defaultValue: "Complete Registration",
|
|
25780
26167
|
maxLength: 40
|
|
25781
26168
|
},
|
|
25782
|
-
{
|
|
25783
|
-
id: "buttonVariant",
|
|
25784
|
-
type: "select",
|
|
25785
|
-
label: "Button style",
|
|
26169
|
+
createButtonVariantField({
|
|
25786
26170
|
description: "Choose a button style from your theme",
|
|
25787
|
-
|
|
25788
|
-
multiple: false,
|
|
25789
|
-
defaultValue: "primary",
|
|
25790
|
-
options: [
|
|
26171
|
+
variants: [
|
|
25791
26172
|
{
|
|
25792
26173
|
value: "primary",
|
|
25793
26174
|
label: "Primary"
|
|
@@ -25800,9 +26181,8 @@ const eventRegistrationBlockDefinition = {
|
|
|
25800
26181
|
value: "outline",
|
|
25801
26182
|
label: "Outline"
|
|
25802
26183
|
}
|
|
25803
|
-
]
|
|
25804
|
-
|
|
25805
|
-
}
|
|
26184
|
+
]
|
|
26185
|
+
})
|
|
25806
26186
|
],
|
|
25807
26187
|
layout: [styledSection({
|
|
25808
26188
|
baseClass: "",
|
|
@@ -25995,6 +26375,7 @@ const courseRegistrationBlockDefinition = {
|
|
|
25995
26375
|
titleSource: "heading",
|
|
25996
26376
|
description: "Enrollment form for multi-session courses",
|
|
25997
26377
|
category: "interactive",
|
|
26378
|
+
contentSource: { kind: "inline" },
|
|
25998
26379
|
tags: [
|
|
25999
26380
|
"courses",
|
|
26000
26381
|
"enrollment",
|
|
@@ -26108,15 +26489,9 @@ const courseRegistrationBlockDefinition = {
|
|
|
26108
26489
|
defaultValue: "Sign up",
|
|
26109
26490
|
maxLength: 40
|
|
26110
26491
|
},
|
|
26111
|
-
{
|
|
26112
|
-
id: "buttonVariant",
|
|
26113
|
-
type: "select",
|
|
26114
|
-
label: "Button style",
|
|
26492
|
+
createButtonVariantField({
|
|
26115
26493
|
description: "Choose a button style from your theme",
|
|
26116
|
-
|
|
26117
|
-
multiple: false,
|
|
26118
|
-
defaultValue: "primary",
|
|
26119
|
-
options: [
|
|
26494
|
+
variants: [
|
|
26120
26495
|
{
|
|
26121
26496
|
value: "primary",
|
|
26122
26497
|
label: "Primary"
|
|
@@ -26129,9 +26504,8 @@ const courseRegistrationBlockDefinition = {
|
|
|
26129
26504
|
value: "outline",
|
|
26130
26505
|
label: "Outline"
|
|
26131
26506
|
}
|
|
26132
|
-
]
|
|
26133
|
-
|
|
26134
|
-
}
|
|
26507
|
+
]
|
|
26508
|
+
})
|
|
26135
26509
|
],
|
|
26136
26510
|
layout: [styledSection({
|
|
26137
26511
|
baseClass: "",
|
|
@@ -26211,6 +26585,7 @@ const eventDetailsManifest = createBlockManifest({
|
|
|
26211
26585
|
titleSource: "heading",
|
|
26212
26586
|
description: "Date/time, venue, map, and other dates for an event",
|
|
26213
26587
|
category: "content",
|
|
26588
|
+
contentSource: { kind: "entries" },
|
|
26214
26589
|
tags: [
|
|
26215
26590
|
"events",
|
|
26216
26591
|
"venue",
|
|
@@ -26416,6 +26791,7 @@ const courseDetailsBlockDefinition = {
|
|
|
26416
26791
|
titleSource: "heading",
|
|
26417
26792
|
description: "Schedule, venue, price, and enrollment status for a course",
|
|
26418
26793
|
category: "content",
|
|
26794
|
+
contentSource: { kind: "entries" },
|
|
26419
26795
|
tags: [
|
|
26420
26796
|
"courses",
|
|
26421
26797
|
"schedule",
|
|
@@ -26707,6 +27083,7 @@ const eventSpotlightBlockDefinition = {
|
|
|
26707
27083
|
paletteHidden: false
|
|
26708
27084
|
},
|
|
26709
27085
|
category: "content",
|
|
27086
|
+
contentSource: { kind: "entries" },
|
|
26710
27087
|
tags: [
|
|
26711
27088
|
"events",
|
|
26712
27089
|
"featured",
|
|
@@ -27253,6 +27630,7 @@ const eventListingBlockDefinition = {
|
|
|
27253
27630
|
paletteHidden: true
|
|
27254
27631
|
},
|
|
27255
27632
|
category: "interactive",
|
|
27633
|
+
contentSource: { kind: "entries" },
|
|
27256
27634
|
tags: [
|
|
27257
27635
|
"events",
|
|
27258
27636
|
"listing",
|
|
@@ -28425,6 +28803,7 @@ const eventCalendarBlockDefinition = {
|
|
|
28425
28803
|
paletteHidden: false
|
|
28426
28804
|
},
|
|
28427
28805
|
category: "interactive",
|
|
28806
|
+
contentSource: { kind: "entries" },
|
|
28428
28807
|
tags: [
|
|
28429
28808
|
"events",
|
|
28430
28809
|
"calendar",
|
|
@@ -28598,6 +28977,7 @@ const recurringScheduleBlockDefinition = {
|
|
|
28598
28977
|
titleSource: "heading",
|
|
28599
28978
|
description: "A compact weekly schedule with one row per recurring series.",
|
|
28600
28979
|
category: "interactive",
|
|
28980
|
+
contentSource: { kind: "entries" },
|
|
28601
28981
|
icon: "CalendarDays",
|
|
28602
28982
|
tags: [
|
|
28603
28983
|
"schedule",
|
|
@@ -29015,7 +29395,10 @@ const offeringsPreviewFields = [
|
|
|
29015
29395
|
label: "Link"
|
|
29016
29396
|
}
|
|
29017
29397
|
],
|
|
29018
|
-
ui: {
|
|
29398
|
+
ui: {
|
|
29399
|
+
intent: "display",
|
|
29400
|
+
widget: "buttonVariant"
|
|
29401
|
+
}
|
|
29019
29402
|
},
|
|
29020
29403
|
{
|
|
29021
29404
|
id: "buttonText",
|
|
@@ -29068,6 +29451,7 @@ const offeringsPreviewManifest = createBlockManifest({
|
|
|
29068
29451
|
paletteHidden: false
|
|
29069
29452
|
},
|
|
29070
29453
|
category: "content",
|
|
29454
|
+
contentSource: { kind: "mixed" },
|
|
29071
29455
|
tags: [
|
|
29072
29456
|
"offerings",
|
|
29073
29457
|
"events",
|
|
@@ -29236,6 +29620,7 @@ const embedManifest = createBlockManifest({
|
|
|
29236
29620
|
id: "block.embed",
|
|
29237
29621
|
title: "Embed Content",
|
|
29238
29622
|
category: "content",
|
|
29623
|
+
contentSource: { kind: "entries" },
|
|
29239
29624
|
titleSource: "heading",
|
|
29240
29625
|
additionalFields: [
|
|
29241
29626
|
parseFieldDefinition({
|
|
@@ -29723,6 +30108,7 @@ const imageGalleryBlockDefinition = { manifest: createBlockManifest({
|
|
|
29723
30108
|
id: "block.image-gallery",
|
|
29724
30109
|
title: "Image Gallery",
|
|
29725
30110
|
category: "content",
|
|
30111
|
+
contentSource: { kind: "inline" },
|
|
29726
30112
|
previewCustomize: { quickFieldPriority: [
|
|
29727
30113
|
"aspectRatio",
|
|
29728
30114
|
"slidesToShow",
|
|
@@ -30375,6 +30761,7 @@ const videoGridBlockDefinition = { manifest: createBlockManifest({
|
|
|
30375
30761
|
id: "block.video-grid",
|
|
30376
30762
|
title: "Video Grid",
|
|
30377
30763
|
category: "media",
|
|
30764
|
+
contentSource: { kind: "inline" },
|
|
30378
30765
|
skipSectionStyles: true,
|
|
30379
30766
|
additionalFields: parseFieldDefinitions([
|
|
30380
30767
|
{
|
|
@@ -30545,6 +30932,7 @@ const audioPlayerBlockDefinition = { manifest: createBlockManifest({
|
|
|
30545
30932
|
title: "Audio Player",
|
|
30546
30933
|
titleSource: "title",
|
|
30547
30934
|
category: "media",
|
|
30935
|
+
contentSource: { kind: "inline" },
|
|
30548
30936
|
description: "Add a branded audio player for a single track.",
|
|
30549
30937
|
tags: [
|
|
30550
30938
|
"audio",
|
|
@@ -30656,6 +31044,7 @@ const fileDownloadBlockDefinition = { manifest: createBlockManifest({
|
|
|
30656
31044
|
title: "File Download",
|
|
30657
31045
|
titleSource: ["title", "file.filename"],
|
|
30658
31046
|
category: "media",
|
|
31047
|
+
contentSource: { kind: "inline" },
|
|
30659
31048
|
description: "Add a simple public download link for a document, ZIP, or audio file.",
|
|
30660
31049
|
tags: [
|
|
30661
31050
|
"file",
|
|
@@ -31600,6 +31989,7 @@ const shopBlockDefinition = {
|
|
|
31600
31989
|
paletteHidden: false
|
|
31601
31990
|
},
|
|
31602
31991
|
category: "interactive",
|
|
31992
|
+
contentSource: { kind: "entries" },
|
|
31603
31993
|
tags: [
|
|
31604
31994
|
"shop",
|
|
31605
31995
|
"passes",
|
|
@@ -31799,6 +32189,7 @@ const productListBlockDefinition = {
|
|
|
31799
32189
|
paletteHidden: false
|
|
31800
32190
|
},
|
|
31801
32191
|
category: "interactive",
|
|
32192
|
+
contentSource: { kind: "entries" },
|
|
31802
32193
|
tags: [
|
|
31803
32194
|
"shop",
|
|
31804
32195
|
"products",
|
|
@@ -31940,6 +32331,7 @@ const productDetailBlockDefinition = {
|
|
|
31940
32331
|
paletteHidden: false
|
|
31941
32332
|
},
|
|
31942
32333
|
category: "interactive",
|
|
32334
|
+
contentSource: { kind: "entries" },
|
|
31943
32335
|
tags: [
|
|
31944
32336
|
"shop",
|
|
31945
32337
|
"product",
|
|
@@ -32056,6 +32448,7 @@ const cartBlockDefinition = {
|
|
|
32056
32448
|
paletteHidden: false
|
|
32057
32449
|
},
|
|
32058
32450
|
category: "interactive",
|
|
32451
|
+
contentSource: { kind: "inline" },
|
|
32059
32452
|
tags: [
|
|
32060
32453
|
"shop",
|
|
32061
32454
|
"cart",
|
|
@@ -32138,6 +32531,7 @@ const checkoutBlockDefinition = {
|
|
|
32138
32531
|
paletteHidden: false
|
|
32139
32532
|
},
|
|
32140
32533
|
category: "interactive",
|
|
32534
|
+
contentSource: { kind: "inline" },
|
|
32141
32535
|
tags: [
|
|
32142
32536
|
"shop",
|
|
32143
32537
|
"checkout",
|
|
@@ -32341,6 +32735,7 @@ const giftingBlockDefinition = {
|
|
|
32341
32735
|
paletteHidden: false
|
|
32342
32736
|
},
|
|
32343
32737
|
category: "interactive",
|
|
32738
|
+
contentSource: { kind: "entries" },
|
|
32344
32739
|
tags: [
|
|
32345
32740
|
"gifting",
|
|
32346
32741
|
"gift cards",
|
|
@@ -32684,6 +33079,7 @@ const newsletterSignupBlockDefinition = {
|
|
|
32684
33079
|
titleSource: "title",
|
|
32685
33080
|
description: "Newsletter subscription form with configurable field presets.",
|
|
32686
33081
|
category: "interactive",
|
|
33082
|
+
contentSource: { kind: "inline" },
|
|
32687
33083
|
fragments: [{
|
|
32688
33084
|
fragment: newsletterCopyFragment,
|
|
32689
33085
|
fieldPriority: 0
|
|
@@ -32865,6 +33261,7 @@ const teamMembersBlockDefinition = {
|
|
|
32865
33261
|
id: "block.team-members",
|
|
32866
33262
|
title: "Team Members",
|
|
32867
33263
|
category: "content",
|
|
33264
|
+
contentSource: { kind: "mixed" },
|
|
32868
33265
|
titleSource: "heading",
|
|
32869
33266
|
additionalFields: [
|
|
32870
33267
|
parseFieldDefinition({
|
|
@@ -33285,6 +33682,7 @@ const locationMapBlockDefinition = {
|
|
|
33285
33682
|
titleSource: "heading",
|
|
33286
33683
|
description: "Show a business location with an interactive map and directions link.",
|
|
33287
33684
|
category: "content",
|
|
33685
|
+
contentSource: { kind: "inline" },
|
|
33288
33686
|
tags: [
|
|
33289
33687
|
"map",
|
|
33290
33688
|
"location",
|
|
@@ -34400,9 +34798,9 @@ function appendBackgroundMediaClasses(baseClassName, input) {
|
|
|
34400
34798
|
].filter(Boolean).join(" ");
|
|
34401
34799
|
}
|
|
34402
34800
|
function gradientPresetCss(value) {
|
|
34403
|
-
|
|
34404
|
-
|
|
34405
|
-
|
|
34801
|
+
const presetId = parseGradientPresetId(value);
|
|
34802
|
+
if (!presetId) return null;
|
|
34803
|
+
const preset = getGradientPreset(presetId);
|
|
34406
34804
|
return gradientToCss(preset, Object.fromEntries(preset.stops.map((stop) => [stop.color, `rgb(var(--tb-${stop.color}))`])));
|
|
34407
34805
|
}
|
|
34408
34806
|
const backgroundTransforms = [
|
|
@@ -34441,16 +34839,17 @@ const backgroundTransforms = [
|
|
|
34441
34839
|
run: (value, _options, context) => resolveSurfaceForegroundStyles(value, context)
|
|
34442
34840
|
},
|
|
34443
34841
|
{
|
|
34444
|
-
id: "background.
|
|
34842
|
+
id: "background.resolveFrameClassName",
|
|
34445
34843
|
kind: "formatter",
|
|
34446
|
-
summary: "Resolve
|
|
34447
|
-
run: (value) => {
|
|
34448
|
-
|
|
34844
|
+
summary: "Resolve clipping on a decorative background frame without clipping foreground content",
|
|
34845
|
+
run: (value, options) => {
|
|
34846
|
+
const baseClass = options?.baseClass?.trim() ?? "";
|
|
34847
|
+
if (!value || typeof value !== "object") return `${baseClass} rb-overflow-hidden`.trim();
|
|
34449
34848
|
const input = value;
|
|
34450
|
-
if (input.overflow === true) return
|
|
34849
|
+
if (input.overflow === true) return `${baseClass} rb-overflow-visible`.trim();
|
|
34451
34850
|
const objectFit = isString(input.objectFit) ? input.objectFit.trim() : null;
|
|
34452
34851
|
const scale = isString(input.scale) ? input.scale.trim() : isNumber(input.scale) ? String(input.scale) : null;
|
|
34453
|
-
return Boolean((objectFit === "custom" || objectFit === "original") && scale && scale.trim().length > 0);
|
|
34852
|
+
return `${baseClass} ${Boolean((objectFit === "custom" || objectFit === "original") && scale && scale.trim().length > 0) ? "rb-overflow-visible" : "rb-overflow-hidden"}`.trim();
|
|
34454
34853
|
}
|
|
34455
34854
|
},
|
|
34456
34855
|
{
|
|
@@ -35075,6 +35474,7 @@ const CANONICAL_REFUND_PLANNER_ERROR_CODES = [
|
|
|
35075
35474
|
"already_refunded",
|
|
35076
35475
|
"idempotency_amount_mismatch",
|
|
35077
35476
|
"idempotency_method_mismatch",
|
|
35477
|
+
"idempotency_receipt_mismatch",
|
|
35078
35478
|
"refund_in_progress"
|
|
35079
35479
|
],
|
|
35080
35480
|
"invalid_amount",
|
|
@@ -35087,7 +35487,12 @@ const CANONICAL_ADMIN_REFUND_FAILURE_CODES = [
|
|
|
35087
35487
|
"payment_intent_not_found",
|
|
35088
35488
|
"stripe_error",
|
|
35089
35489
|
"stale_pending_missing_context",
|
|
35090
|
-
"non_refundable_deposit_remaining"
|
|
35490
|
+
"non_refundable_deposit_remaining",
|
|
35491
|
+
"deposit_refund_override_required",
|
|
35492
|
+
"refund_revoke_requires_full_line_refund",
|
|
35493
|
+
"payment_receipt_not_found",
|
|
35494
|
+
"payment_receipt_not_refundable",
|
|
35495
|
+
"payment_receipt_attribution_required"
|
|
35091
35496
|
];
|
|
35092
35497
|
[...CANONICAL_REFUND_PLANNER_ERROR_CODES];
|
|
35093
35498
|
//#endregion
|
|
@@ -35100,7 +35505,10 @@ const STANDARD_LINE_ITEM_REFUND_INVALID_CODES = [
|
|
|
35100
35505
|
"missing_credit_customer",
|
|
35101
35506
|
"deposit_refund_override_required",
|
|
35102
35507
|
"refund_revoke_requires_full_line_refund",
|
|
35103
|
-
"unified_order_link_required"
|
|
35508
|
+
"unified_order_link_required",
|
|
35509
|
+
"payment_receipt_not_found",
|
|
35510
|
+
"payment_receipt_not_refundable",
|
|
35511
|
+
"payment_receipt_attribution_required"
|
|
35104
35512
|
];
|
|
35105
35513
|
const EVENT_ATTENDEE_REFUND_INVALID_CODES = ["manual_booking_not_refundable", ...STANDARD_LINE_ITEM_REFUND_INVALID_CODES];
|
|
35106
35514
|
[...CANONICAL_ADMIN_REFUND_FAILURE_CODES];
|
|
@@ -36074,8 +36482,14 @@ const navigationMenuConfigSchema = z$1.object({
|
|
|
36074
36482
|
name: z$1.string().min(1, "Name is required"),
|
|
36075
36483
|
isPrimary: z$1.boolean().optional(),
|
|
36076
36484
|
isFooter: z$1.boolean().optional(),
|
|
36485
|
+
footerRole: z$1.enum(["main", "legal-policy"]).nullable().optional(),
|
|
36077
36486
|
items: z$1.array(navigationItemConfigSchema)
|
|
36078
36487
|
}).superRefine((menu, ctx) => {
|
|
36488
|
+
if (menu.footerRole !== void 0 && menu.isFooter !== void 0 && menu.isFooter !== (menu.footerRole === "main")) ctx.addIssue({
|
|
36489
|
+
code: "custom",
|
|
36490
|
+
message: "footerRole and isFooter disagree",
|
|
36491
|
+
path: ["footerRole"]
|
|
36492
|
+
});
|
|
36079
36493
|
const portalStats = collectPortalLinkStats(menu.items);
|
|
36080
36494
|
if (portalStats.count > 1) ctx.addIssue({
|
|
36081
36495
|
code: z$1.ZodIssueCode.custom,
|