@riverbankcms/sdk 0.107.0 → 0.109.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +21 -1
- package/dist/{PreviewEditorSidebar-DpAbAl08.mjs → PreviewEditorSidebar-DWqwfy3_.mjs} +48 -28
- package/dist/{PreviewEditorUI-O7cn6Xxv.mjs → PreviewEditorUI-B7OL4sfR.mjs} +10 -9
- package/dist/{PreviewQueryProvider-D0tnKl0t.mjs → PreviewQueryProvider-D0y2l8JN.mjs} +1 -1
- package/dist/{SdkPreviewModeRuntime-CVB7urtl.mjs → SdkPreviewModeRuntime-D8Gt9Gbe.mjs} +633 -220
- package/dist/{SiteChromeCustomizeContext-C_sizso-.mjs → SiteChromeCustomizeContext-DUpalEdL.mjs} +5764 -1556
- package/dist/_dts/ai/src/contracts/proposals.d.ts +15383 -11388
- package/dist/_dts/api/src/blocks.d.ts +41 -7
- package/dist/_dts/api/src/bookingAdjustments.d.ts +5 -0
- package/dist/_dts/api/src/bookingOperations.d.ts +4 -0
- package/dist/_dts/api/src/bookingRecords.d.ts +177 -127
- package/dist/_dts/api/src/bookingRefundOutcomes.d.ts +6 -6
- package/dist/_dts/api/src/cache-tags.d.ts +3 -0
- package/dist/_dts/api/src/common/envelope.d.ts +7 -0
- package/dist/_dts/api/src/contentRuntime.d.ts +19 -1
- package/dist/_dts/api/src/courses.d.ts +1 -0
- package/dist/_dts/api/src/customerMembershipOutcomes.d.ts +5 -5
- package/dist/_dts/api/src/endpoints.d.ts +134 -0
- package/dist/_dts/api/src/footer-settings.d.ts +1 -0
- package/dist/_dts/api/src/footerSettings.d.ts +8 -0
- package/dist/_dts/api/src/index.d.ts +7 -4
- package/dist/_dts/api/src/navigation/contracts.d.ts +3 -3
- package/dist/_dts/api/src/participantMessaging.d.ts +18 -12
- package/dist/_dts/api/src/previewContentContract.d.ts +4 -0
- package/dist/_dts/api/src/publicExperienceEndpoints.d.ts +1 -0
- package/dist/_dts/api/src/sdkContracts.d.ts +309 -1
- package/dist/_dts/api/src/siteBanner.d.ts +2 -2
- package/dist/_dts/api/src/siteInfrastructure.d.ts +13 -0
- package/dist/_dts/api/src/siteManagementEndpoints.d.ts +144 -60
- package/dist/_dts/api/src/sitePlatformEndpoints.d.ts +35 -1
- package/dist/_dts/api/src/siteRuntimeEndpoints.d.ts +74 -28
- package/dist/_dts/block-form/src/widgets/BackgroundGradientWidget/BackgroundGradientField.d.ts +9 -0
- package/dist/_dts/block-form/src/widgets/BackgroundGradientWidget/BackgroundGradientWidget.d.ts +3 -4
- package/dist/_dts/blocks/src/contracts/proof-block-islands.d.ts +4 -4
- package/dist/_dts/blocks/src/index.d.ts +1 -1
- package/dist/_dts/blocks/src/primitives/layout/Section.d.ts +0 -1
- package/dist/_dts/blocks/src/rendering/server.d.ts +1 -0
- package/dist/_dts/blocks/src/system/blocks/audio-player.d.ts +3 -0
- package/dist/_dts/blocks/src/system/blocks/body-text.d.ts +3 -0
- package/dist/_dts/blocks/src/system/blocks/contact-newsletter.d.ts +3 -0
- package/dist/_dts/blocks/src/system/blocks/course-registration.d.ts +1 -22
- package/dist/_dts/blocks/src/system/blocks/cta-full.d.ts +3 -0
- package/dist/_dts/blocks/src/system/blocks/event-registration.d.ts +1 -22
- package/dist/_dts/blocks/src/system/blocks/file-download.d.ts +3 -0
- package/dist/_dts/blocks/src/system/blocks/form.d.ts +3 -0
- package/dist/_dts/blocks/src/system/blocks/image-gallery.d.ts +3 -0
- package/dist/_dts/blocks/src/system/blocks/media-text.d.ts +3 -0
- package/dist/_dts/blocks/src/system/blocks/newsletter-signup.d.ts +3 -0
- package/dist/_dts/blocks/src/system/blocks/site-footer-runtime.d.ts +50 -0
- package/dist/_dts/blocks/src/system/blocks/site-footer.d.ts +9 -48
- package/dist/_dts/blocks/src/system/blocks/site-header.d.ts +3 -0
- package/dist/_dts/blocks/src/system/blocks/team-members.d.ts +3 -0
- package/dist/_dts/blocks/src/system/blocks/testimonials.d.ts +3 -0
- package/dist/_dts/blocks/src/system/blocks/video-grid.d.ts +3 -0
- package/dist/_dts/blocks/src/system/constants/background.d.ts +1 -1
- package/dist/_dts/blocks/src/system/customize/backgrounds.d.ts +16 -6
- package/dist/_dts/blocks/src/system/defineBlock.d.ts +9 -1
- package/dist/_dts/blocks/src/system/fields/ctas.d.ts +8 -0
- package/dist/_dts/blocks/src/system/icons/registry.d.ts +2 -1
- package/dist/_dts/blocks/src/system/icons/social.d.ts +5 -0
- package/dist/_dts/blocks/src/system/icons/svg.d.ts +1 -0
- package/dist/_dts/blocks/src/system/manifest/schema.d.ts +33 -2
- package/dist/_dts/blocks/src/system/node/fragments/backgroundLayer.d.ts +13 -0
- package/dist/_dts/blocks/src/system/node/fragments/footerNav.d.ts +2 -0
- package/dist/_dts/blocks/src/system/node/fragments/styledContainer.d.ts +4 -4
- package/dist/_dts/blocks/src/system/node/fragments/styledSection.d.ts +3 -12
- package/dist/_dts/blocks/src/system/node/validation-constants.d.ts +1 -1
- package/dist/_dts/blocks/src/system/runtime/components/registry.client.d.ts +6 -6
- package/dist/_dts/blocks/src/system/runtime/components/runtime-backed-blocks.d.ts +3 -3
- package/dist/_dts/blocks/src/system/runtime/nodes/shared/contract-schemas.d.ts +2 -2
- package/dist/_dts/blocks/src/system/types/link.d.ts +3 -3
- package/dist/_dts/content-editor/src/FooterComposerPanel.d.ts +14 -0
- package/dist/_dts/content-editor/src/controller/EntryControllerProvider.d.ts +27 -8
- package/dist/_dts/content-editor/src/footerComposer.d.ts +56 -0
- package/dist/_dts/content-editor/src/hooks/useEntryActions.d.ts +1 -1
- package/dist/_dts/content-editor/src/hooks/useEntryMutations.d.ts +5 -5
- package/dist/_dts/content-editor/src/index.d.ts +2 -0
- package/dist/_dts/content-editor/src/primitives/PreviewRichTextEditor.d.ts +3 -1
- package/dist/_dts/content-editor/src/services/contentEntryServices.d.ts +20 -36
- package/dist/_dts/content-editor/src/ui/editorSnapshot.d.ts +5 -1
- package/dist/_dts/content-editor/src/ui/editorUiStore.d.ts +11 -0
- package/dist/_dts/content-model/src/content-types/entryValidation.d.ts +31 -0
- package/dist/_dts/content-model/src/content-types/scaffold.d.ts +58 -0
- package/dist/_dts/content-model/src/content-types/schema.d.ts +1 -1
- package/dist/_dts/content-model/src/content-types/sentinels.d.ts +36 -0
- package/dist/_dts/content-model/src/definitions/shared.d.ts +3 -0
- package/dist/_dts/content-model/src/index.d.ts +3 -0
- package/dist/_dts/core/src/booking-date-time.d.ts +8 -0
- package/dist/_dts/core/src/branded.d.ts +3 -0
- package/dist/_dts/core/src/editor-state.d.ts +4 -0
- package/dist/_dts/core/src/footer-composition.d.ts +143 -0
- package/dist/_dts/core/src/index.d.ts +2 -0
- package/dist/_dts/core/src/public-profile.d.ts +73 -0
- package/dist/_dts/db/src/generated/supabase/database.types.d.ts +221 -205
- package/dist/_dts/db/src/schemas/forms.d.ts +10 -10
- package/dist/_dts/editor/src/primitives/rich-text/RichTextEditorSurface.d.ts +5 -0
- package/dist/_dts/editor-blocks/src/BlockEditor.d.ts +1 -0
- package/dist/_dts/editor-blocks/src/block-editor/hooks/useBlockCreation.d.ts +2 -1
- package/dist/_dts/editor-blocks/src/block-editor/hooks/useBlockDuplication.d.ts +2 -1
- package/dist/_dts/editor-blocks/src/block-editor/hooks/useBlockReorder.d.ts +2 -1
- package/dist/_dts/editor-blocks/src/block-editor/owner.d.ts +10 -0
- package/dist/_dts/editor-blocks/src/block-editor/types.d.ts +1 -0
- package/dist/_dts/media-core/src/fileMimeDetection.d.ts +16 -0
- package/dist/_dts/media-core/src/fileStorage.d.ts +8 -0
- package/dist/_dts/media-core/src/storagePathDomain.d.ts +2 -0
- package/dist/_dts/media-core/src/uploadVerificationContract.d.ts +3 -0
- package/dist/_dts/path-utils/src/index.d.ts +5 -0
- package/dist/_dts/preview-next/src/client/blocks/BlockToolbar.d.ts +2 -0
- package/dist/_dts/preview-next/src/client/preview/PreviewChromeLayer.d.ts +5 -0
- package/dist/_dts/preview-next/src/client/preview/PreviewEditorSidebar.d.ts +2 -1
- package/dist/_dts/preview-next/src/client/preview/PreviewEntryControllerProvider.d.ts +1 -0
- package/dist/_dts/preview-next/src/client/preview/PreviewShell.d.ts +2 -1
- package/dist/_dts/preview-next/src/client/preview/PreviewShellLayout.d.ts +2 -1
- package/dist/_dts/preview-next/src/client/preview/StyleConfigurator.state.d.ts +1 -0
- package/dist/_dts/preview-next/src/client/preview/previewErrorMessages.d.ts +4 -0
- package/dist/_dts/preview-next/src/client/preview/styleConfiguratorApplyPayload.d.ts +1 -1
- package/dist/_dts/sdk/src/cli/commands/audit.d.ts +1 -1
- package/dist/_dts/sdk/src/cli/commands/compare.d.ts +1 -1
- package/dist/_dts/sdk/src/cli/commands/deploy.d.ts +1 -1
- package/dist/_dts/sdk/src/cli/commands/drafts.d.ts +18 -0
- package/dist/_dts/sdk/src/cli/commands/entry.d.ts +15 -0
- package/dist/_dts/sdk/src/cli/commands/init-docs.d.ts +2 -2
- package/dist/_dts/sdk/src/cli/commands/publish-all.d.ts +1 -1
- package/dist/_dts/sdk/src/cli/commands/pull.d.ts +1 -0
- package/dist/_dts/sdk/src/cli/commands/push/execute/diff.d.ts +1 -1
- package/dist/_dts/sdk/src/cli/commands/push/options.d.ts +3 -0
- package/dist/_dts/sdk/src/cli/commands/push-execute.d.ts +12 -1
- package/dist/_dts/sdk/src/cli/commands/setup.d.ts +1 -0
- package/dist/_dts/sdk/src/cli/commands/verify.d.ts +1 -0
- package/dist/_dts/sdk/src/cli/content/reader.d.ts +1 -0
- package/dist/_dts/sdk/src/cli/helpers.d.ts +22 -1
- package/dist/_dts/sdk/src/cli/index.d.ts +4 -0
- package/dist/_dts/sdk/src/cli/output.d.ts +88 -0
- package/dist/_dts/sdk/src/cli/program.d.ts +29 -0
- package/dist/_dts/sdk/src/cli/push-config.d.ts +1 -1
- package/dist/_dts/sdk/src/client/management/blocks.d.ts +14 -1
- package/dist/_dts/sdk/src/client/management/catalog.d.ts +10 -0
- package/dist/_dts/sdk/src/client/management/http.d.ts +7 -1
- package/dist/_dts/sdk/src/client/management/index.d.ts +2 -1
- package/dist/_dts/sdk/src/client/management/types.d.ts +58 -20
- package/dist/_dts/sdk/src/config/content-types.d.ts +2 -0
- package/dist/_dts/sdk/src/config/content-validation.d.ts +4 -0
- package/dist/_dts/sdk/src/date-time/index.d.ts +68 -0
- package/dist/_dts/sdk/src/navigation/index.d.ts +2 -0
- package/dist/_dts/sdk/src/public-api/contracts.d.ts +5 -2
- package/dist/_dts/sdk/src/rendering/components/Layout.d.ts +2 -1
- package/dist/_dts/sdk/src/rendering/helpers/loadContent.d.ts +1 -1
- package/dist/_dts/sdk/src/version.d.ts +1 -1
- package/dist/_dts/site-commands/src/commands.d.ts +900 -827
- package/dist/_dts/theme-core/src/accordions/types.d.ts +2 -2
- package/dist/_dts/theme-core/src/buttons/core.d.ts +15 -46
- package/dist/_dts/theme-core/src/buttons/effectClassification.d.ts +147 -0
- package/dist/_dts/theme-core/src/buttons/effects/types.d.ts +2 -3
- package/dist/_dts/theme-core/src/buttons/generateDefaultButtonSystem.d.ts +1 -1
- package/dist/_dts/theme-core/src/buttons/index.d.ts +1 -0
- package/dist/_dts/theme-core/src/buttons/personalities/index.d.ts +11 -0
- package/dist/_dts/theme-core/src/buttons/personalities/two-tone-pill.d.ts +17 -0
- package/dist/_dts/theme-core/src/buttons/personalities/types.d.ts +45 -33
- package/dist/_dts/theme-core/src/buttons/presets.d.ts +4 -25
- package/dist/_dts/theme-core/src/buttons/resolveButtonColourStates.d.ts +100 -0
- package/dist/_dts/theme-core/src/buttons/resolvedButtonCss.d.ts +16 -0
- package/dist/_dts/theme-core/src/buttons/types.d.ts +104 -86
- package/dist/_dts/theme-core/src/cards/types.d.ts +16 -16
- package/dist/_dts/theme-core/src/footer/mode.d.ts +15 -0
- package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
- package/dist/_dts/theme-core/src/gradients/presets.d.ts +200 -8
- package/dist/_dts/theme-core/src/gradients/utils.d.ts +6 -2
- package/dist/_dts/theme-core/src/interactive/baseSchema.d.ts +1 -1
- package/dist/_dts/theme-core/src/mock-themes/all.d.ts +117 -150
- package/dist/_dts/theme-core/src/mock-themes/modern-minimal.d.ts +1 -1
- package/dist/_dts/theme-core/src/navigation/types.d.ts +3 -3
- package/dist/_dts/theme-core/src/palette/curated/index.d.ts +2 -2
- package/dist/_dts/theme-core/src/palette/curated/types.d.ts +5 -8
- package/dist/_dts/theme-core/src/palette/index.d.ts +0 -1
- package/dist/_dts/theme-core/src/schema.d.ts +1264 -138
- package/dist/_dts/theme-core/src/site-styles/backgroundAppearance.d.ts +2 -2
- package/dist/_dts/theme-core/src/site-styles/designState.d.ts +10 -10
- package/dist/_dts/theme-core/src/site-styles/headerLooks.d.ts +12 -1
- package/dist/_dts/theme-core/src/site-styles/pageDesignEditorModel.d.ts +3 -2
- package/dist/_dts/theme-core/src/site-styles/pageDesignIntent.d.ts +13 -6
- package/dist/_dts/theme-core/src/site-styles/runtimeCompiler.d.ts +29 -8
- package/dist/_dts/theme-core/src/site-styles/siteChromeNavPreferences.d.ts +15 -0
- package/dist/_dts/theme-core/src/site-styles/styleTags.d.ts +2 -2
- package/dist/cli/index.mjs +68552 -66955
- package/dist/cli/init-docs/content/cli-reference.md +50 -7
- package/dist/cli/init-docs/content/content-management.md +7 -4
- package/dist/cli/init-docs/content/workflow-publish.md +5 -1
- package/dist/client/{DiscountCodeDisclosure-BwGkvmVH.mjs → DiscountCodeDisclosure-DU1ygxU2.mjs} +1 -1
- package/dist/client/{EventCombined.client-JnWE6Hzc.mjs → EventCombined.client-DB5zagCo.mjs} +3 -3
- package/dist/client/{EventListing.client-DQewc_kg.mjs → EventListing.client-CTX9JHBL.mjs} +2 -2
- package/dist/client/{LeafletStaticMap-DPAU3SFt.mjs → LeafletStaticMap-BYImhgiB.mjs} +1 -1
- package/dist/client/{MagicLinkForm-D4kpWCbW.mjs → MagicLinkForm-CRkw_M3l.mjs} +2 -2
- package/dist/client/{StepIndicator-CBlkb4rA.mjs → StepIndicator-BnmVBJJh.mjs} +2 -2
- package/dist/client/{accordion-DAIBVpTS.mjs → accordion-CeGreumd.mjs} +1 -1
- package/dist/client/{bookingForm-DZ-4l5_1.mjs → bookingForm-CSzFNrpN.mjs} +6 -6
- package/dist/client/bookings.mjs +637 -328
- package/dist/client/{buttons-DJgynGHQ.mjs → buttons-DoFV7KDL.mjs} +618 -306
- package/dist/client/{carousel-D-SLfX8r.mjs → carousel-B2jDtogf.mjs} +1 -1
- package/dist/client/{cart-CEgbgJhX.mjs → cart-D-jZ-vaY.mjs} +3 -3
- package/dist/client/{checkout-CXWrCRAA.mjs → checkout-Dza-LA7N.mjs} +3 -3
- package/dist/client/client.mjs +2497 -1216
- package/dist/client/{colorStyles-jZS6KfkP.mjs → colorStyles-CrgzoXsm.mjs} +1 -30
- package/dist/client/{courseRegistration-DVmLrRVz.mjs → courseRegistration-TYkNychb.mjs} +7 -7
- package/dist/client/{eventCalendar-DCuyPY_c.mjs → eventCalendar-BI_90SsT.mjs} +5 -5
- package/dist/client/{eventCombined-kP2CA2D4.mjs → eventCombined-mNrpryE9.mjs} +2 -2
- package/dist/client/{eventDetails-DU0LeF5e.mjs → eventDetails-D4GVlCIY.mjs} +3 -3
- package/dist/client/{eventListing-CcHF87BI.mjs → eventListing-YhKN018y.mjs} +2 -2
- package/dist/client/{eventRegistration-DJnR0yFH.mjs → eventRegistration-CdHGtilr.mjs} +7 -7
- package/dist/client/foregroundContract-xICPq59x.mjs +31 -0
- package/dist/client/{form-CH1lCusH.mjs → form-AcAL45rA.mjs} +2 -2
- package/dist/client/{headerSection-CBPFZoku.mjs → headerSection-uEC52ueD.mjs} +3 -3
- package/dist/client/hooks.mjs +1249 -841
- package/dist/client/{locationMap-Cx1hBg5n.mjs → locationMap-_wJDSUYe.mjs} +3 -3
- package/dist/client/{media-DHtSxS5V.mjs → media-BK0O3b-U.mjs} +3 -2
- package/dist/client/{newsletterForm-1ZL_ti9u.mjs → newsletterForm-DrArsb2B.mjs} +2 -2
- package/dist/client/{pricing-BIbzmV0G.mjs → pricing-BSYVghwo.mjs} +1 -1
- package/dist/client/{productDetail-BTh5gHBV.mjs → productDetail-Dyk90sMs.mjs} +3 -3
- package/dist/client/{productList-Cc7OMrqN.mjs → productList-BCKThwAI.mjs} +3 -3
- package/dist/client/{propsDecoder-oR-M-ISN.mjs → propsDecoder-CkXxkdSR.mjs} +96 -33
- package/dist/client/rendering/client.mjs +1278 -523
- package/dist/client/rendering/islands.mjs +19 -19
- package/dist/client/rendering.mjs +2308 -1028
- package/dist/client/{shop-CQ_YbCnn.mjs → shop-DeltVH10.mjs} +6 -6
- package/dist/client/{shop-commerce-BM-AoD3M.mjs → shop-commerce-BD9Jsm2Z.mjs} +6 -6
- package/dist/client/{shop-commerce-store-DFMQhU5p.mjs → shop-commerce-store-CmXD6FDS.mjs} +1 -1
- package/dist/client/{shopShared-D0SKO2Cu.mjs → shopShared-B8v-lH_F.mjs} +2 -2
- package/dist/client/{useDiscountCodeUi-CrG4_ARt.mjs → useDiscountCodeUi-DbWJN8ld.mjs} +1 -1
- package/dist/client/{useEventFilters-CxK8Fekl.mjs → useEventFilters-EJIMUnqT.mjs} +46 -69
- package/dist/client/{usePolling-jcVryNgZ.mjs → usePolling-Cmh14fc7.mjs} +2 -2
- package/dist/preview-next/before-render.mjs +213 -0
- package/dist/preview-next/client/runtime.mjs +4 -4
- package/dist/preview-next/middleware.mjs +213 -0
- package/dist/{previewAuthStore-BPcJPzdz.mjs → previewAuthStore-CTO7CRPk.mjs} +213 -0
- package/dist/{sdk-runtime-C39Rsk-x.mjs → sdk-runtime-Dou0GAav.mjs} +2 -2
- package/dist/{separator-BoMSQnsP.mjs → separator-CI5wZNXT.mjs} +1 -1
- package/dist/server/components.mjs +2370 -1132
- package/dist/server/config-validation.mjs +1256 -842
- package/dist/server/config.mjs +1256 -843
- package/dist/server/data.mjs +1249 -841
- package/dist/server/date-time.mjs +386 -0
- package/dist/server/index.mjs +214 -1
- package/dist/server/navigation.mjs +9 -3
- package/dist/server/next.mjs +3421 -1949
- package/dist/server/page-converter.mjs +1236 -659
- package/dist/server/prebuild.mjs +1 -1
- package/dist/server/rendering/server.mjs +2074 -1060
- package/dist/server/rendering.mjs +2370 -1132
- package/dist/server/routing.mjs +1543 -1062
- package/dist/server/server.mjs +1464 -843
- package/dist/server/theme-bridge.mjs +1581 -474
- package/dist/server/theme.mjs +614 -305
- package/dist/styles/index.css +12 -1
- package/package.json +7 -1
- package/dist/_dts/theme-core/src/buttons/presets/types.d.ts +0 -88
- package/dist/_dts/theme-core/src/buttons/utils/contrast.d.ts +0 -38
- package/dist/_dts/theme-core/src/palette/themePaletteCompatibility.d.ts +0 -57
package/dist/client/hooks.mjs
CHANGED
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
import { use, useEffect, useState } from "react";
|
|
3
3
|
import z, { z as z$1 } from "zod";
|
|
4
4
|
import "react/jsx-runtime";
|
|
5
|
-
//#region ../api/src/apiEndpointTypes.ts
|
|
6
5
|
function blockedDemoMutationPolicy(classification, publicMessage) {
|
|
7
6
|
if (publicMessage.trim() === "") throw new Error(`Demo mutation policy ${classification} requires publicMessage.`);
|
|
8
7
|
return {
|
|
@@ -30,6 +29,7 @@ const TAG_TEMPLATES = {
|
|
|
30
29
|
siteRouteOutcomes: "riverbank:site:{siteId}:route-outcomes",
|
|
31
30
|
routeById: "riverbank:route:{routeId}",
|
|
32
31
|
pageById: "riverbank:page:{pageId}",
|
|
32
|
+
pageSurfaceById: "riverbank:page-surface:{pageSurfaceId}",
|
|
33
33
|
workflowRunById: "riverbank:workflow-run:{runId}",
|
|
34
34
|
siteForms: "riverbank:site:{siteId}:forms",
|
|
35
35
|
formById: "riverbank:form:{formId}",
|
|
@@ -53,7 +53,7 @@ const TAG_TEMPLATES = {
|
|
|
53
53
|
blockedDemoMutationPolicy("blocked-hidden", "This action is not available in demo sites.");
|
|
54
54
|
blockedDemoMutationPolicy("blocked-disabled", "This setting is disabled in demo sites.");
|
|
55
55
|
blockedDemoMutationPolicy("internal-only", "This internal operation is not available in demo sites.");
|
|
56
|
-
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;
|
|
56
|
+
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;
|
|
57
57
|
//#endregion
|
|
58
58
|
//#region ../core/src/result.ts
|
|
59
59
|
function ok(value) {
|
|
@@ -211,19 +211,29 @@ function isRecord$9(value) {
|
|
|
211
211
|
//#region ../core/src/booking-date-time.ts
|
|
212
212
|
const DEFAULT_LOCALE = "en-US";
|
|
213
213
|
const FALLBACK_TIMEZONE = "UTC";
|
|
214
|
+
const DATE_TIME_FORMATTER_CACHE_LIMIT = 100;
|
|
215
|
+
const dateTimeFormatterCache = /* @__PURE__ */ new Map();
|
|
216
|
+
const timeZoneValidityCache = /* @__PURE__ */ new Map();
|
|
214
217
|
function isValidTimeZone(timeZone) {
|
|
218
|
+
const cached = timeZoneValidityCache.get(timeZone);
|
|
219
|
+
if (cached !== void 0) return cached;
|
|
220
|
+
let isValid;
|
|
215
221
|
try {
|
|
216
222
|
new Intl.DateTimeFormat(DEFAULT_LOCALE, { timeZone }).format(/* @__PURE__ */ new Date());
|
|
217
|
-
|
|
223
|
+
isValid = true;
|
|
218
224
|
} catch {
|
|
219
|
-
|
|
225
|
+
isValid = false;
|
|
220
226
|
}
|
|
227
|
+
if (timeZoneValidityCache.size >= DATE_TIME_FORMATTER_CACHE_LIMIT) timeZoneValidityCache.clear();
|
|
228
|
+
timeZoneValidityCache.set(timeZone, isValid);
|
|
229
|
+
return isValid;
|
|
221
230
|
}
|
|
222
231
|
function getSafeTimeZone(timeZone) {
|
|
223
232
|
const normalized = typeof timeZone === "string" ? timeZone.trim() : "";
|
|
224
233
|
return normalized.length > 0 && isValidTimeZone(normalized) ? normalized : FALLBACK_TIMEZONE;
|
|
225
234
|
}
|
|
226
235
|
function parseStrictBookingTimeZone(timeZone) {
|
|
236
|
+
if (typeof timeZone !== "string") return null;
|
|
227
237
|
const normalized = timeZone.trim();
|
|
228
238
|
if (normalized.length === 0 || !isValidTimeZone(normalized)) return null;
|
|
229
239
|
return normalized;
|
|
@@ -236,10 +246,19 @@ function formatParseError(error) {
|
|
|
236
246
|
}
|
|
237
247
|
}
|
|
238
248
|
function formatToPartsLookup(date, locale, timeZone, format) {
|
|
239
|
-
return new Map(
|
|
249
|
+
return new Map(getCachedDateTimeFormatter(locale, timeZone, format).formatToParts(date).map((part) => [part.type, part.value]));
|
|
250
|
+
}
|
|
251
|
+
function getCachedDateTimeFormatter(locale, timeZone, format) {
|
|
252
|
+
const key = `${locale}\u0000${timeZone}\u0000${JSON.stringify(Object.entries(format).sort(([left], [right]) => left.localeCompare(right)))}`;
|
|
253
|
+
const cached = dateTimeFormatterCache.get(key);
|
|
254
|
+
if (cached !== void 0) return cached;
|
|
255
|
+
const formatter = new Intl.DateTimeFormat(locale, {
|
|
240
256
|
...format,
|
|
241
257
|
timeZone
|
|
242
|
-
})
|
|
258
|
+
});
|
|
259
|
+
if (dateTimeFormatterCache.size >= DATE_TIME_FORMATTER_CACHE_LIMIT) dateTimeFormatterCache.clear();
|
|
260
|
+
dateTimeFormatterCache.set(key, formatter);
|
|
261
|
+
return formatter;
|
|
243
262
|
}
|
|
244
263
|
function getZonedDateTimeParts(date, timeZone) {
|
|
245
264
|
const parts = formatToPartsLookup(date, "en-GB", timeZone, {
|
|
@@ -282,23 +301,9 @@ function toUtcIsoDateTimeString(value) {
|
|
|
282
301
|
return parsed.value;
|
|
283
302
|
}
|
|
284
303
|
function parseScheduledBookingDateTime(input) {
|
|
304
|
+
let startsAt;
|
|
285
305
|
try {
|
|
286
|
-
|
|
287
|
-
const timeZone = parseStrictBookingTimeZone(input.timeZone);
|
|
288
|
-
if (timeZone === null) return {
|
|
289
|
-
ok: false,
|
|
290
|
-
field: "timeZone",
|
|
291
|
-
reason: "invalid_time_zone",
|
|
292
|
-
value: input.timeZone
|
|
293
|
-
};
|
|
294
|
-
return {
|
|
295
|
-
ok: true,
|
|
296
|
-
value: {
|
|
297
|
-
startsAt,
|
|
298
|
-
timeZone,
|
|
299
|
-
locale: input.locale
|
|
300
|
-
}
|
|
301
|
-
};
|
|
306
|
+
startsAt = toUtcIsoDateTimeString(input.startsAt);
|
|
302
307
|
} catch {
|
|
303
308
|
return {
|
|
304
309
|
ok: false,
|
|
@@ -307,6 +312,21 @@ function parseScheduledBookingDateTime(input) {
|
|
|
307
312
|
value: input.startsAt
|
|
308
313
|
};
|
|
309
314
|
}
|
|
315
|
+
const timeZone = parseStrictBookingTimeZone(input.timeZone);
|
|
316
|
+
if (timeZone === null) return {
|
|
317
|
+
ok: false,
|
|
318
|
+
field: "timeZone",
|
|
319
|
+
reason: "invalid_time_zone",
|
|
320
|
+
value: typeof input.timeZone === "string" ? input.timeZone : ""
|
|
321
|
+
};
|
|
322
|
+
return {
|
|
323
|
+
ok: true,
|
|
324
|
+
value: {
|
|
325
|
+
startsAt,
|
|
326
|
+
timeZone,
|
|
327
|
+
locale: input.locale
|
|
328
|
+
}
|
|
329
|
+
};
|
|
310
330
|
}
|
|
311
331
|
function toScheduledBookingDateTime(input) {
|
|
312
332
|
const result = parseScheduledBookingDateTime(input);
|
|
@@ -3436,6 +3456,111 @@ const mediaSchema$1 = z.object({
|
|
|
3436
3456
|
transform: transformSchema$1.optional()
|
|
3437
3457
|
});
|
|
3438
3458
|
//#endregion
|
|
3459
|
+
//#region ../theme-core/src/buttons/effectClassification.ts
|
|
3460
|
+
/**
|
|
3461
|
+
* Exhaustive live policy for every registered effect id.
|
|
3462
|
+
*
|
|
3463
|
+
* The resolver consumes the transition payload directly, so adding an effect
|
|
3464
|
+
* cannot update classification without also defining its runtime behavior.
|
|
3465
|
+
*/
|
|
3466
|
+
const BUTTON_EFFECT_POLICIES = {
|
|
3467
|
+
"darken-background": {
|
|
3468
|
+
classification: "colour-transition",
|
|
3469
|
+
transition: {
|
|
3470
|
+
kind: "adjust-shade",
|
|
3471
|
+
direction: "darker"
|
|
3472
|
+
}
|
|
3473
|
+
},
|
|
3474
|
+
"lighten-background": {
|
|
3475
|
+
classification: "colour-transition",
|
|
3476
|
+
transition: {
|
|
3477
|
+
kind: "adjust-shade",
|
|
3478
|
+
direction: "lighter"
|
|
3479
|
+
}
|
|
3480
|
+
},
|
|
3481
|
+
"background-on-hover": {
|
|
3482
|
+
classification: "colour-transition",
|
|
3483
|
+
transition: { kind: "replace-background" }
|
|
3484
|
+
},
|
|
3485
|
+
"background-on-hover-alpha": {
|
|
3486
|
+
classification: "unsupported-colour",
|
|
3487
|
+
reason: "alpha_requires_surface"
|
|
3488
|
+
},
|
|
3489
|
+
"fade-background": {
|
|
3490
|
+
classification: "unsupported-colour",
|
|
3491
|
+
reason: "changes_element_opacity"
|
|
3492
|
+
},
|
|
3493
|
+
"opacity-reduce": {
|
|
3494
|
+
classification: "unsupported-colour",
|
|
3495
|
+
reason: "changes_element_opacity"
|
|
3496
|
+
},
|
|
3497
|
+
"gradient-text": {
|
|
3498
|
+
classification: "unsupported-colour",
|
|
3499
|
+
reason: "changes_foreground"
|
|
3500
|
+
},
|
|
3501
|
+
"text-color-change": {
|
|
3502
|
+
classification: "unsupported-colour",
|
|
3503
|
+
reason: "changes_foreground"
|
|
3504
|
+
},
|
|
3505
|
+
"border-color-change": {
|
|
3506
|
+
classification: "unsupported-colour",
|
|
3507
|
+
reason: "changes_border"
|
|
3508
|
+
},
|
|
3509
|
+
"aurora-glow": {
|
|
3510
|
+
classification: "unsupported-background-overlay",
|
|
3511
|
+
reason: "unresolved_background_overlay"
|
|
3512
|
+
},
|
|
3513
|
+
"cosmic-stardust": {
|
|
3514
|
+
classification: "unsupported-background-overlay",
|
|
3515
|
+
reason: "unresolved_background_overlay"
|
|
3516
|
+
},
|
|
3517
|
+
"gradient-border-fill": {
|
|
3518
|
+
classification: "unsupported-background-overlay",
|
|
3519
|
+
reason: "unresolved_background_overlay"
|
|
3520
|
+
},
|
|
3521
|
+
"animated-gradient-border-fill": {
|
|
3522
|
+
classification: "unsupported-background-overlay",
|
|
3523
|
+
reason: "unresolved_background_overlay"
|
|
3524
|
+
},
|
|
3525
|
+
"nav-underline": {
|
|
3526
|
+
classification: "not-button",
|
|
3527
|
+
reason: "not_button_effect"
|
|
3528
|
+
},
|
|
3529
|
+
"nav-frosted-base": {
|
|
3530
|
+
classification: "not-button",
|
|
3531
|
+
reason: "not_button_effect"
|
|
3532
|
+
},
|
|
3533
|
+
"nav-frosted-hover": {
|
|
3534
|
+
classification: "not-button",
|
|
3535
|
+
reason: "not_button_effect"
|
|
3536
|
+
},
|
|
3537
|
+
"nav-frosted-active": {
|
|
3538
|
+
classification: "not-button",
|
|
3539
|
+
reason: "not_button_effect"
|
|
3540
|
+
},
|
|
3541
|
+
"animated-gradient": { classification: "non-colour" },
|
|
3542
|
+
"border-glow": { classification: "non-colour" },
|
|
3543
|
+
"drop-shadow": { classification: "non-colour" },
|
|
3544
|
+
"inner-shadow": { classification: "non-colour" },
|
|
3545
|
+
"neumorphic-shadow": { classification: "non-colour" },
|
|
3546
|
+
"outer-glow": { classification: "non-colour" },
|
|
3547
|
+
"retro-3d-shadow": { classification: "non-colour" },
|
|
3548
|
+
"scale-up": { classification: "non-colour" },
|
|
3549
|
+
"scale-down": { classification: "non-colour" },
|
|
3550
|
+
lift: { classification: "non-colour" },
|
|
3551
|
+
"press-down": { classification: "non-colour" },
|
|
3552
|
+
pop: { classification: "non-colour" },
|
|
3553
|
+
"border-bottom-grow": { classification: "non-colour" },
|
|
3554
|
+
"sketchy-border": { classification: "non-colour" },
|
|
3555
|
+
"pulse-animation": { classification: "non-colour" }
|
|
3556
|
+
};
|
|
3557
|
+
function getButtonEffectPolicy(effectId) {
|
|
3558
|
+
return Object.prototype.hasOwnProperty.call(BUTTON_EFFECT_POLICIES, effectId) ? BUTTON_EFFECT_POLICIES[effectId] : null;
|
|
3559
|
+
}
|
|
3560
|
+
function classifyButtonEffectId(effectId) {
|
|
3561
|
+
return getButtonEffectPolicy(effectId)?.classification ?? "unknown";
|
|
3562
|
+
}
|
|
3563
|
+
//#endregion
|
|
3439
3564
|
//#region ../theme-core/src/buttons/types.ts
|
|
3440
3565
|
/**
|
|
3441
3566
|
* Standard semantic variant roles a theme exposes.
|
|
@@ -3452,6 +3577,20 @@ const VARIANT_ROLES = [
|
|
|
3452
3577
|
"tertiary",
|
|
3453
3578
|
"accent"
|
|
3454
3579
|
];
|
|
3580
|
+
function parseOpaqueButtonColourToken(value) {
|
|
3581
|
+
const token = parseThemeColorToken(value);
|
|
3582
|
+
if (token === null) return null;
|
|
3583
|
+
const parts = parseColorTokenParts(token);
|
|
3584
|
+
return parts.kind === "token" && parts.opacityPercent === null ? token : null;
|
|
3585
|
+
}
|
|
3586
|
+
function unsafeAsOpaqueButtonColourToken(value) {
|
|
3587
|
+
return value;
|
|
3588
|
+
}
|
|
3589
|
+
const opaqueButtonColourTokenSchema = themeColorTokenSchema.refine((value) => parseOpaqueButtonColourToken(value) !== null, "Button colour tokens must be opaque").transform((value) => {
|
|
3590
|
+
const token = parseOpaqueButtonColourToken(value);
|
|
3591
|
+
if (token === null) throw new Error("Invariant: opaque button token passed its schema");
|
|
3592
|
+
return token;
|
|
3593
|
+
});
|
|
3455
3594
|
const cornerStyleSchema = z$1.enum([
|
|
3456
3595
|
"square",
|
|
3457
3596
|
"rounded",
|
|
@@ -3553,7 +3692,7 @@ const buttonSizesSchema = z$1.object({
|
|
|
3553
3692
|
lg,
|
|
3554
3693
|
xl: xl ?? lg
|
|
3555
3694
|
}));
|
|
3556
|
-
const
|
|
3695
|
+
const canonicalButtonGlobalSettingsSchema = z$1.object({
|
|
3557
3696
|
cornerStyle: cornerStyleSchema,
|
|
3558
3697
|
cornerRadius: z$1.number().min(0).max(24).optional(),
|
|
3559
3698
|
/**
|
|
@@ -3584,11 +3723,12 @@ const buttonGlobalSettingsSchema = z$1.object({
|
|
|
3584
3723
|
paddingPreset: buttonPaddingPresetSchema.optional(),
|
|
3585
3724
|
hoverTransform: hoverTransformSchema,
|
|
3586
3725
|
hoverColor: hoverColorSchema,
|
|
3587
|
-
hoverColorToken:
|
|
3726
|
+
hoverColorToken: opaqueButtonColourTokenSchema.optional(),
|
|
3588
3727
|
gradientStyle: gradientStyleSchema.optional(),
|
|
3589
3728
|
gradientAngle: z$1.number().min(0).max(360).optional(),
|
|
3590
3729
|
gradientSharpness: gradientSharpnessSchema.optional()
|
|
3591
3730
|
});
|
|
3731
|
+
const buttonGlobalSettingsSchema = z$1.preprocess(normalizeLegacyButtonGlobalInput, canonicalButtonGlobalSettingsSchema);
|
|
3592
3732
|
const gradientDirectionSchema$1 = z$1.enum([
|
|
3593
3733
|
"to-r",
|
|
3594
3734
|
"to-l",
|
|
@@ -3602,27 +3742,33 @@ const gradientDirectionSchema$1 = z$1.enum([
|
|
|
3602
3742
|
const buttonBackgroundSchema = z$1.discriminatedUnion("type", [
|
|
3603
3743
|
z$1.object({
|
|
3604
3744
|
type: z$1.literal("solid"),
|
|
3605
|
-
colorToken:
|
|
3745
|
+
colorToken: opaqueButtonColourTokenSchema
|
|
3606
3746
|
}),
|
|
3607
3747
|
z$1.object({
|
|
3608
3748
|
type: z$1.literal("gradient"),
|
|
3609
|
-
stops: z$1.array(
|
|
3610
|
-
|
|
3749
|
+
stops: z$1.array(opaqueButtonColourTokenSchema).min(2).transform((stops) => {
|
|
3750
|
+
const [first, second, ...rest] = stops;
|
|
3751
|
+
if (first === void 0 || second === void 0) throw new Error("Invariant: gradient stops passed the minimum length schema");
|
|
3752
|
+
return [
|
|
3753
|
+
first,
|
|
3754
|
+
second,
|
|
3755
|
+
...rest
|
|
3756
|
+
];
|
|
3757
|
+
}),
|
|
3758
|
+
direction: gradientDirectionSchema$1,
|
|
3759
|
+
foregroundToken: opaqueButtonColourTokenSchema
|
|
3611
3760
|
}),
|
|
3612
|
-
z$1.object({
|
|
3761
|
+
z$1.object({
|
|
3762
|
+
type: z$1.literal("surface"),
|
|
3763
|
+
role: z$1.literal("link")
|
|
3764
|
+
})
|
|
3613
3765
|
]);
|
|
3614
3766
|
const effectApplicationSchema$1 = z$1.object({
|
|
3615
3767
|
effectId: z$1.string(),
|
|
3616
|
-
options: z$1.record(z$1.string(), z$1.
|
|
3617
|
-
});
|
|
3618
|
-
const buttonBorderSchema = z$1.object({
|
|
3619
|
-
widthClass: z$1.string(),
|
|
3620
|
-
colorToken: themeColorTokenSchema
|
|
3621
|
-
});
|
|
3622
|
-
const buttonVariantAffordanceSchema = z$1.object({
|
|
3623
|
-
iconId: z$1.string().min(1),
|
|
3624
|
-
colorToken: themeColorTokenSchema.optional()
|
|
3768
|
+
options: z$1.record(z$1.string(), z$1.json()).optional()
|
|
3625
3769
|
});
|
|
3770
|
+
const buttonBorderSchema = z$1.object({ widthClass: z$1.string() });
|
|
3771
|
+
const buttonVariantAffordanceSchema = z$1.object({ iconId: z$1.string().min(1) });
|
|
3626
3772
|
const variantShadowSchema = z$1.object({
|
|
3627
3773
|
elevation: z$1.enum([
|
|
3628
3774
|
"none",
|
|
@@ -3663,27 +3809,170 @@ const variantSizeOverridesSchema = z$1.object({
|
|
|
3663
3809
|
* default (e.g. link-style variants declaring zero horizontal padding at
|
|
3664
3810
|
* every size).
|
|
3665
3811
|
*/
|
|
3666
|
-
const
|
|
3812
|
+
const canonicalButtonVariantSchema = z$1.object({
|
|
3667
3813
|
id: z$1.string(),
|
|
3668
3814
|
name: z$1.string().min(1).max(20),
|
|
3669
3815
|
enabled: z$1.boolean(),
|
|
3670
3816
|
priority: prioritySchema,
|
|
3671
3817
|
background: buttonBackgroundSchema,
|
|
3672
|
-
textColorToken: themeColorTokenSchema,
|
|
3673
3818
|
/** Tailwind radius token (e.g. `'rounded-md'`). Omit to inherit from `global.cornerStyle`. */
|
|
3674
3819
|
borderRadius: z$1.string().optional(),
|
|
3675
3820
|
shadow: variantShadowSchema.optional(),
|
|
3676
3821
|
border: buttonBorderSchema.optional(),
|
|
3677
|
-
hoverBackgroundToken:
|
|
3822
|
+
hoverBackgroundToken: opaqueButtonColourTokenSchema.optional(),
|
|
3678
3823
|
effects: variantEffectsSchema.optional(),
|
|
3679
3824
|
sizes: variantSizeOverridesSchema.optional(),
|
|
3680
3825
|
affordance: buttonVariantAffordanceSchema.optional()
|
|
3681
3826
|
});
|
|
3827
|
+
/**
|
|
3828
|
+
* Temporary persisted-theme admission boundary for issue #1206.
|
|
3829
|
+
*
|
|
3830
|
+
* Production inventory on 2026-07-22 found 22 rows using the old independent
|
|
3831
|
+
* `textColorToken`/border colour shape. New source and all downstream code use
|
|
3832
|
+
* only the canonical relationship. Delete this preprocessor after the reviewed
|
|
3833
|
+
* production rewrite reports zero legacy rows.
|
|
3834
|
+
*/
|
|
3835
|
+
const buttonVariantSchema = z$1.preprocess(normalizeLegacyButtonVariantInput, canonicalButtonVariantSchema);
|
|
3682
3836
|
const buttonSystemSchema = z$1.object({
|
|
3683
3837
|
global: buttonGlobalSettingsSchema,
|
|
3684
3838
|
variants: z$1.array(buttonVariantSchema).min(1).max(6),
|
|
3685
3839
|
sizes: buttonSizesSchema.optional()
|
|
3686
3840
|
});
|
|
3841
|
+
function normalizeLegacyButtonVariantInput(input) {
|
|
3842
|
+
if (!isUnknownRecord(input)) return input;
|
|
3843
|
+
const background = input.background;
|
|
3844
|
+
if (!isUnknownRecord(background)) return input;
|
|
3845
|
+
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;
|
|
3846
|
+
const { textColorToken, ...withoutLegacyText } = input;
|
|
3847
|
+
const normalizedBorder = isUnknownRecord(input.border) && typeof input.border.widthClass === "string" ? { widthClass: input.border.widthClass } : input.border;
|
|
3848
|
+
const normalizedAffordance = isUnknownRecord(input.affordance) && typeof input.affordance.iconId === "string" ? { iconId: input.affordance.iconId } : input.affordance;
|
|
3849
|
+
const normalizedEffects = normalizeLegacyButtonEffects(input.effects, background.type);
|
|
3850
|
+
const hoverBackgroundToken = stripLegacyTokenAlpha(input.hoverBackgroundToken);
|
|
3851
|
+
if (background.type === "transparent") return {
|
|
3852
|
+
...withoutLegacyText,
|
|
3853
|
+
background: {
|
|
3854
|
+
type: "surface",
|
|
3855
|
+
role: "link"
|
|
3856
|
+
},
|
|
3857
|
+
border: normalizedBorder,
|
|
3858
|
+
affordance: normalizedAffordance,
|
|
3859
|
+
effects: normalizedEffects,
|
|
3860
|
+
hoverBackgroundToken
|
|
3861
|
+
};
|
|
3862
|
+
if (background.type === "gradient") {
|
|
3863
|
+
const stops = Array.isArray(background.stops) ? background.stops.map(stripLegacyTokenAlpha) : background.stops;
|
|
3864
|
+
return {
|
|
3865
|
+
...withoutLegacyText,
|
|
3866
|
+
background: {
|
|
3867
|
+
...background,
|
|
3868
|
+
stops,
|
|
3869
|
+
foregroundToken: stripLegacyTokenAlpha(background.foregroundToken ?? textColorToken)
|
|
3870
|
+
},
|
|
3871
|
+
border: normalizedBorder,
|
|
3872
|
+
affordance: normalizedAffordance,
|
|
3873
|
+
effects: normalizedEffects,
|
|
3874
|
+
hoverBackgroundToken
|
|
3875
|
+
};
|
|
3876
|
+
}
|
|
3877
|
+
return {
|
|
3878
|
+
...withoutLegacyText,
|
|
3879
|
+
background: background.type === "solid" ? {
|
|
3880
|
+
...background,
|
|
3881
|
+
colorToken: stripLegacyTokenAlpha(background.colorToken)
|
|
3882
|
+
} : background,
|
|
3883
|
+
border: normalizedBorder,
|
|
3884
|
+
affordance: normalizedAffordance,
|
|
3885
|
+
effects: normalizedEffects,
|
|
3886
|
+
hoverBackgroundToken
|
|
3887
|
+
};
|
|
3888
|
+
}
|
|
3889
|
+
function normalizeLegacyButtonGlobalInput(input) {
|
|
3890
|
+
if (!isUnknownRecord(input)) return input;
|
|
3891
|
+
const hoverColorToken = stripLegacyTokenAlpha(input.hoverColorToken);
|
|
3892
|
+
return hoverColorToken === input.hoverColorToken ? input : {
|
|
3893
|
+
...input,
|
|
3894
|
+
hoverColorToken
|
|
3895
|
+
};
|
|
3896
|
+
}
|
|
3897
|
+
function hasLegacyAlphaToken(input, background) {
|
|
3898
|
+
const stops = isUnknownArray(background.stops) ? background.stops : [];
|
|
3899
|
+
return [
|
|
3900
|
+
input.hoverBackgroundToken,
|
|
3901
|
+
background.colorToken,
|
|
3902
|
+
background.foregroundToken,
|
|
3903
|
+
...stops
|
|
3904
|
+
].some((token) => stripLegacyTokenAlpha(token) !== token);
|
|
3905
|
+
}
|
|
3906
|
+
function stripLegacyTokenAlpha(value) {
|
|
3907
|
+
if (typeof value !== "string") return value;
|
|
3908
|
+
const slashIndex = value.indexOf("/");
|
|
3909
|
+
return slashIndex < 0 ? value : value.slice(0, slashIndex);
|
|
3910
|
+
}
|
|
3911
|
+
function hasLegacyButtonEffects(input) {
|
|
3912
|
+
if (!isUnknownRecord(input)) return false;
|
|
3913
|
+
return [
|
|
3914
|
+
"base",
|
|
3915
|
+
"hover",
|
|
3916
|
+
"active",
|
|
3917
|
+
"focus"
|
|
3918
|
+
].some((state) => {
|
|
3919
|
+
const effects = input[state];
|
|
3920
|
+
return Array.isArray(effects) && effects.some((effect) => {
|
|
3921
|
+
if (!isUnknownRecord(effect) || typeof effect.effectId !== "string") return true;
|
|
3922
|
+
const classification = classifyButtonEffectId(effect.effectId);
|
|
3923
|
+
if (classification !== "colour-transition" && classification !== "non-colour") return true;
|
|
3924
|
+
return effect.effectId === "background-on-hover" && isUnknownRecord(effect.options) && stripLegacyTokenAlpha(effect.options.colorToken) !== effect.options.colorToken;
|
|
3925
|
+
});
|
|
3926
|
+
});
|
|
3927
|
+
}
|
|
3928
|
+
function normalizeLegacyButtonEffects(input, backgroundType) {
|
|
3929
|
+
if (!isUnknownRecord(input)) return input;
|
|
3930
|
+
const normalized = {};
|
|
3931
|
+
for (const state of [
|
|
3932
|
+
"base",
|
|
3933
|
+
"hover",
|
|
3934
|
+
"active",
|
|
3935
|
+
"focus"
|
|
3936
|
+
]) {
|
|
3937
|
+
const effects = input[state];
|
|
3938
|
+
if (!Array.isArray(effects)) continue;
|
|
3939
|
+
const safeEffects = effects.flatMap((effect) => {
|
|
3940
|
+
if (!isUnknownRecord(effect) || typeof effect.effectId !== "string") return [];
|
|
3941
|
+
const classification = classifyButtonEffectId(effect.effectId);
|
|
3942
|
+
if (classification === "non-colour") return [effect];
|
|
3943
|
+
if (classification !== "colour-transition") return [];
|
|
3944
|
+
if (effect.effectId === "background-on-hover") {
|
|
3945
|
+
const options = isUnknownRecord(effect.options) ? effect.options : null;
|
|
3946
|
+
const colorToken = options === null ? null : parseOpaqueButtonColourToken(stripLegacyTokenAlpha(options.colorToken));
|
|
3947
|
+
return colorToken === null ? [] : [{
|
|
3948
|
+
...effect,
|
|
3949
|
+
options: {
|
|
3950
|
+
...options,
|
|
3951
|
+
colorToken
|
|
3952
|
+
}
|
|
3953
|
+
}];
|
|
3954
|
+
}
|
|
3955
|
+
if (backgroundType !== "solid") return [];
|
|
3956
|
+
const rawAmount = isUnknownRecord(effect.options) ? effect.options.amount : void 0;
|
|
3957
|
+
const amount = typeof rawAmount === "number" && rawAmount > 0 ? Math.max(100, Math.round(rawAmount / 100) * 100) : 100;
|
|
3958
|
+
return [{
|
|
3959
|
+
...effect,
|
|
3960
|
+
options: {
|
|
3961
|
+
...isUnknownRecord(effect.options) ? effect.options : {},
|
|
3962
|
+
amount
|
|
3963
|
+
}
|
|
3964
|
+
}];
|
|
3965
|
+
});
|
|
3966
|
+
if (safeEffects.length > 0) normalized[state] = safeEffects;
|
|
3967
|
+
}
|
|
3968
|
+
return Object.keys(normalized).length === 0 ? void 0 : normalized;
|
|
3969
|
+
}
|
|
3970
|
+
function isUnknownRecord(value) {
|
|
3971
|
+
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
3972
|
+
}
|
|
3973
|
+
function isUnknownArray(value) {
|
|
3974
|
+
return Array.isArray(value);
|
|
3975
|
+
}
|
|
3687
3976
|
buttonSizeNameSchema.options;
|
|
3688
3977
|
//#endregion
|
|
3689
3978
|
//#region ../theme-core/src/buttons/personalities/types.ts
|
|
@@ -3710,7 +3999,7 @@ function defineButtonPersonality(input) {
|
|
|
3710
3999
|
name: input.name,
|
|
3711
4000
|
description: input.description,
|
|
3712
4001
|
tags: input.tags,
|
|
3713
|
-
buttonSystem: input.buttonSystem
|
|
4002
|
+
buttonSystem: buttonSystemSchema.parse(input.buttonSystem)
|
|
3714
4003
|
};
|
|
3715
4004
|
}
|
|
3716
4005
|
//#endregion
|
|
@@ -3763,19 +4052,15 @@ const brushedWash = defineButtonPersonality({
|
|
|
3763
4052
|
background: {
|
|
3764
4053
|
type: "gradient",
|
|
3765
4054
|
stops: ["primary", "accent"],
|
|
3766
|
-
direction: "to-r"
|
|
4055
|
+
direction: "to-r",
|
|
4056
|
+
foregroundToken: "primaryForeground"
|
|
3767
4057
|
},
|
|
3768
|
-
textColorToken: "primaryForeground",
|
|
3769
4058
|
borderRadius: "rounded-lg",
|
|
3770
4059
|
shadow: {
|
|
3771
4060
|
elevation: "low",
|
|
3772
4061
|
softness: "soft",
|
|
3773
4062
|
position: "bottom"
|
|
3774
|
-
}
|
|
3775
|
-
effects: { hover: [{
|
|
3776
|
-
effectId: "opacity-reduce",
|
|
3777
|
-
options: { reduction: -15 }
|
|
3778
|
-
}] }
|
|
4063
|
+
}
|
|
3779
4064
|
},
|
|
3780
4065
|
{
|
|
3781
4066
|
id: "secondary",
|
|
@@ -3785,32 +4070,27 @@ const brushedWash = defineButtonPersonality({
|
|
|
3785
4070
|
background: {
|
|
3786
4071
|
type: "gradient",
|
|
3787
4072
|
stops: ["secondary", "accent"],
|
|
3788
|
-
direction: "to-br"
|
|
4073
|
+
direction: "to-br",
|
|
4074
|
+
foregroundToken: "primaryForeground"
|
|
3789
4075
|
},
|
|
3790
|
-
textColorToken: "primaryForeground",
|
|
3791
4076
|
borderRadius: "rounded-lg",
|
|
3792
4077
|
shadow: {
|
|
3793
4078
|
elevation: "low",
|
|
3794
4079
|
softness: "soft",
|
|
3795
4080
|
position: "bottom"
|
|
3796
|
-
}
|
|
3797
|
-
effects: { hover: [{
|
|
3798
|
-
effectId: "opacity-reduce",
|
|
3799
|
-
options: { reduction: -15 }
|
|
3800
|
-
}] }
|
|
4081
|
+
}
|
|
3801
4082
|
},
|
|
3802
4083
|
{
|
|
3803
4084
|
id: "outline",
|
|
3804
4085
|
name: "Outline",
|
|
3805
4086
|
enabled: true,
|
|
3806
4087
|
priority: 3,
|
|
3807
|
-
background: {
|
|
3808
|
-
|
|
3809
|
-
|
|
3810
|
-
border: {
|
|
3811
|
-
widthClass: "border",
|
|
3812
|
-
colorToken: "primary"
|
|
4088
|
+
background: {
|
|
4089
|
+
type: "surface",
|
|
4090
|
+
role: "link"
|
|
3813
4091
|
},
|
|
4092
|
+
borderRadius: "rounded-lg",
|
|
4093
|
+
border: { widthClass: "border" },
|
|
3814
4094
|
effects: { hover: [{
|
|
3815
4095
|
effectId: "background-on-hover",
|
|
3816
4096
|
options: { colorToken: "surface" }
|
|
@@ -3821,8 +4101,10 @@ const brushedWash = defineButtonPersonality({
|
|
|
3821
4101
|
name: "Ghost",
|
|
3822
4102
|
enabled: true,
|
|
3823
4103
|
priority: 3,
|
|
3824
|
-
background: {
|
|
3825
|
-
|
|
4104
|
+
background: {
|
|
4105
|
+
type: "surface",
|
|
4106
|
+
role: "link"
|
|
4107
|
+
},
|
|
3826
4108
|
borderRadius: "rounded-lg",
|
|
3827
4109
|
effects: { hover: [{
|
|
3828
4110
|
effectId: "background-on-hover",
|
|
@@ -3868,7 +4150,6 @@ const confidentChip = defineButtonPersonality({
|
|
|
3868
4150
|
type: "solid",
|
|
3869
4151
|
colorToken: "primary"
|
|
3870
4152
|
},
|
|
3871
|
-
textColorToken: "primaryForeground",
|
|
3872
4153
|
borderRadius: "rounded-md",
|
|
3873
4154
|
shadow: {
|
|
3874
4155
|
elevation: "medium",
|
|
@@ -3878,7 +4159,7 @@ const confidentChip = defineButtonPersonality({
|
|
|
3878
4159
|
effects: {
|
|
3879
4160
|
hover: [{
|
|
3880
4161
|
effectId: "darken-background",
|
|
3881
|
-
options: { amount:
|
|
4162
|
+
options: { amount: 100 }
|
|
3882
4163
|
}],
|
|
3883
4164
|
active: [{
|
|
3884
4165
|
effectId: "scale-down",
|
|
@@ -3895,12 +4176,8 @@ const confidentChip = defineButtonPersonality({
|
|
|
3895
4176
|
type: "solid",
|
|
3896
4177
|
colorToken: "surface"
|
|
3897
4178
|
},
|
|
3898
|
-
textColorToken: "text",
|
|
3899
4179
|
borderRadius: "rounded-md",
|
|
3900
|
-
border: {
|
|
3901
|
-
widthClass: "border",
|
|
3902
|
-
colorToken: "border"
|
|
3903
|
-
},
|
|
4180
|
+
border: { widthClass: "border" },
|
|
3904
4181
|
effects: { hover: [{
|
|
3905
4182
|
effectId: "background-on-hover",
|
|
3906
4183
|
options: { colorToken: "background" }
|
|
@@ -3911,13 +4188,12 @@ const confidentChip = defineButtonPersonality({
|
|
|
3911
4188
|
name: "Outline",
|
|
3912
4189
|
enabled: true,
|
|
3913
4190
|
priority: 3,
|
|
3914
|
-
background: {
|
|
3915
|
-
|
|
3916
|
-
|
|
3917
|
-
border: {
|
|
3918
|
-
widthClass: "border",
|
|
3919
|
-
colorToken: "primary"
|
|
4191
|
+
background: {
|
|
4192
|
+
type: "surface",
|
|
4193
|
+
role: "link"
|
|
3920
4194
|
},
|
|
4195
|
+
borderRadius: "rounded-md",
|
|
4196
|
+
border: { widthClass: "border" },
|
|
3921
4197
|
effects: { hover: [{
|
|
3922
4198
|
effectId: "background-on-hover",
|
|
3923
4199
|
options: { colorToken: "surface" }
|
|
@@ -3928,8 +4204,10 @@ const confidentChip = defineButtonPersonality({
|
|
|
3928
4204
|
name: "Ghost",
|
|
3929
4205
|
enabled: true,
|
|
3930
4206
|
priority: 3,
|
|
3931
|
-
background: {
|
|
3932
|
-
|
|
4207
|
+
background: {
|
|
4208
|
+
type: "surface",
|
|
4209
|
+
role: "link"
|
|
4210
|
+
},
|
|
3933
4211
|
borderRadius: "rounded-md",
|
|
3934
4212
|
effects: { hover: [{
|
|
3935
4213
|
effectId: "background-on-hover",
|
|
@@ -3992,7 +4270,6 @@ const earthPill = defineButtonPersonality({
|
|
|
3992
4270
|
type: "solid",
|
|
3993
4271
|
colorToken: "primary"
|
|
3994
4272
|
},
|
|
3995
|
-
textColorToken: "primaryForeground",
|
|
3996
4273
|
borderRadius: "rounded-full",
|
|
3997
4274
|
shadow: {
|
|
3998
4275
|
elevation: "low",
|
|
@@ -4018,13 +4295,12 @@ const earthPill = defineButtonPersonality({
|
|
|
4018
4295
|
name: "Secondary",
|
|
4019
4296
|
enabled: true,
|
|
4020
4297
|
priority: 2,
|
|
4021
|
-
background: {
|
|
4022
|
-
|
|
4023
|
-
|
|
4024
|
-
border: {
|
|
4025
|
-
widthClass: "border",
|
|
4026
|
-
colorToken: "primary"
|
|
4298
|
+
background: {
|
|
4299
|
+
type: "surface",
|
|
4300
|
+
role: "link"
|
|
4027
4301
|
},
|
|
4302
|
+
borderRadius: "rounded-full",
|
|
4303
|
+
border: { widthClass: "border" },
|
|
4028
4304
|
effects: { hover: [{
|
|
4029
4305
|
effectId: "background-on-hover",
|
|
4030
4306
|
options: { colorToken: "muted" }
|
|
@@ -4035,13 +4311,12 @@ const earthPill = defineButtonPersonality({
|
|
|
4035
4311
|
name: "Outline",
|
|
4036
4312
|
enabled: true,
|
|
4037
4313
|
priority: 3,
|
|
4038
|
-
background: {
|
|
4039
|
-
|
|
4040
|
-
|
|
4041
|
-
border: {
|
|
4042
|
-
widthClass: "border",
|
|
4043
|
-
colorToken: "border"
|
|
4314
|
+
background: {
|
|
4315
|
+
type: "surface",
|
|
4316
|
+
role: "link"
|
|
4044
4317
|
},
|
|
4318
|
+
borderRadius: "rounded-full",
|
|
4319
|
+
border: { widthClass: "border" },
|
|
4045
4320
|
effects: { hover: [{
|
|
4046
4321
|
effectId: "background-on-hover",
|
|
4047
4322
|
options: { colorToken: "surfaceAlt" }
|
|
@@ -4052,8 +4327,10 @@ const earthPill = defineButtonPersonality({
|
|
|
4052
4327
|
name: "Ghost",
|
|
4053
4328
|
enabled: true,
|
|
4054
4329
|
priority: 3,
|
|
4055
|
-
background: {
|
|
4056
|
-
|
|
4330
|
+
background: {
|
|
4331
|
+
type: "surface",
|
|
4332
|
+
role: "link"
|
|
4333
|
+
},
|
|
4057
4334
|
borderRadius: "rounded-full",
|
|
4058
4335
|
shadow: {
|
|
4059
4336
|
elevation: "none",
|
|
@@ -4074,11 +4351,7 @@ const earthPill = defineButtonPersonality({
|
|
|
4074
4351
|
padding: "0.625rem 0",
|
|
4075
4352
|
fontSize: "text-xl"
|
|
4076
4353
|
}
|
|
4077
|
-
}
|
|
4078
|
-
effects: { hover: [{
|
|
4079
|
-
effectId: "opacity-reduce",
|
|
4080
|
-
options: { reduction: 25 }
|
|
4081
|
-
}] }
|
|
4354
|
+
}
|
|
4082
4355
|
}
|
|
4083
4356
|
]
|
|
4084
4357
|
}
|
|
@@ -4114,8 +4387,10 @@ const editorialLink = defineButtonPersonality({
|
|
|
4114
4387
|
name: "Primary",
|
|
4115
4388
|
enabled: true,
|
|
4116
4389
|
priority: 1,
|
|
4117
|
-
background: {
|
|
4118
|
-
|
|
4390
|
+
background: {
|
|
4391
|
+
type: "surface",
|
|
4392
|
+
role: "link"
|
|
4393
|
+
},
|
|
4119
4394
|
borderRadius: "rounded-none",
|
|
4120
4395
|
sizes: {
|
|
4121
4396
|
sm: { padding: "0.25rem 0" },
|
|
@@ -4137,8 +4412,10 @@ const editorialLink = defineButtonPersonality({
|
|
|
4137
4412
|
name: "Secondary",
|
|
4138
4413
|
enabled: true,
|
|
4139
4414
|
priority: 2,
|
|
4140
|
-
background: {
|
|
4141
|
-
|
|
4415
|
+
background: {
|
|
4416
|
+
type: "surface",
|
|
4417
|
+
role: "link"
|
|
4418
|
+
},
|
|
4142
4419
|
borderRadius: "rounded-none",
|
|
4143
4420
|
sizes: {
|
|
4144
4421
|
sm: { padding: "0.25rem 0" },
|
|
@@ -4160,8 +4437,10 @@ const editorialLink = defineButtonPersonality({
|
|
|
4160
4437
|
name: "Outline",
|
|
4161
4438
|
enabled: true,
|
|
4162
4439
|
priority: 3,
|
|
4163
|
-
background: {
|
|
4164
|
-
|
|
4440
|
+
background: {
|
|
4441
|
+
type: "surface",
|
|
4442
|
+
role: "link"
|
|
4443
|
+
},
|
|
4165
4444
|
borderRadius: "rounded-none",
|
|
4166
4445
|
sizes: {
|
|
4167
4446
|
sm: { padding: "0.25rem 0" },
|
|
@@ -4183,19 +4462,17 @@ const editorialLink = defineButtonPersonality({
|
|
|
4183
4462
|
name: "Ghost",
|
|
4184
4463
|
enabled: true,
|
|
4185
4464
|
priority: 3,
|
|
4186
|
-
background: {
|
|
4187
|
-
|
|
4465
|
+
background: {
|
|
4466
|
+
type: "surface",
|
|
4467
|
+
role: "link"
|
|
4468
|
+
},
|
|
4188
4469
|
borderRadius: "rounded-none",
|
|
4189
4470
|
sizes: {
|
|
4190
4471
|
sm: { padding: "0.25rem 0" },
|
|
4191
4472
|
md: { padding: "0.5rem 0" },
|
|
4192
4473
|
lg: { padding: "0.625rem 0" },
|
|
4193
4474
|
xl: { padding: "0.75rem 0" }
|
|
4194
|
-
}
|
|
4195
|
-
effects: { hover: [{
|
|
4196
|
-
effectId: "opacity-reduce",
|
|
4197
|
-
options: { reduction: -20 }
|
|
4198
|
-
}] }
|
|
4475
|
+
}
|
|
4199
4476
|
}
|
|
4200
4477
|
]
|
|
4201
4478
|
}
|
|
@@ -4257,12 +4534,8 @@ const flatInk = defineButtonPersonality({
|
|
|
4257
4534
|
type: "solid",
|
|
4258
4535
|
colorToken: "primary"
|
|
4259
4536
|
},
|
|
4260
|
-
textColorToken: "primaryForeground",
|
|
4261
4537
|
borderRadius: "rounded-lg",
|
|
4262
|
-
affordance: {
|
|
4263
|
-
iconId: "ArrowRight",
|
|
4264
|
-
colorToken: "accent"
|
|
4265
|
-
},
|
|
4538
|
+
affordance: { iconId: "ArrowRight" },
|
|
4266
4539
|
effects: { hover: [{
|
|
4267
4540
|
effectId: "lift",
|
|
4268
4541
|
options: { translateY: "-2px" }
|
|
@@ -4276,13 +4549,12 @@ const flatInk = defineButtonPersonality({
|
|
|
4276
4549
|
name: "Secondary",
|
|
4277
4550
|
enabled: true,
|
|
4278
4551
|
priority: 2,
|
|
4279
|
-
background: {
|
|
4280
|
-
|
|
4281
|
-
|
|
4282
|
-
border: {
|
|
4283
|
-
widthClass: "border",
|
|
4284
|
-
colorToken: "border"
|
|
4552
|
+
background: {
|
|
4553
|
+
type: "surface",
|
|
4554
|
+
role: "link"
|
|
4285
4555
|
},
|
|
4556
|
+
borderRadius: "rounded-lg",
|
|
4557
|
+
border: { widthClass: "border" },
|
|
4286
4558
|
effects: { hover: [{
|
|
4287
4559
|
effectId: "lift",
|
|
4288
4560
|
options: { translateY: "-2px" }
|
|
@@ -4300,12 +4572,8 @@ const flatInk = defineButtonPersonality({
|
|
|
4300
4572
|
type: "solid",
|
|
4301
4573
|
colorToken: "accent"
|
|
4302
4574
|
},
|
|
4303
|
-
textColorToken: "accentForeground",
|
|
4304
4575
|
borderRadius: "rounded-lg",
|
|
4305
|
-
affordance: {
|
|
4306
|
-
iconId: "ArrowRight",
|
|
4307
|
-
colorToken: "accentForeground"
|
|
4308
|
-
},
|
|
4576
|
+
affordance: { iconId: "ArrowRight" },
|
|
4309
4577
|
effects: { hover: [{
|
|
4310
4578
|
effectId: "lift",
|
|
4311
4579
|
options: { translateY: "-2px" }
|
|
@@ -4368,7 +4636,6 @@ const inkStamp = defineButtonPersonality({
|
|
|
4368
4636
|
type: "solid",
|
|
4369
4637
|
colorToken: "primary"
|
|
4370
4638
|
},
|
|
4371
|
-
textColorToken: "primaryForeground",
|
|
4372
4639
|
borderRadius: "rounded-md",
|
|
4373
4640
|
effects: {
|
|
4374
4641
|
hover: [{
|
|
@@ -4389,13 +4656,12 @@ const inkStamp = defineButtonPersonality({
|
|
|
4389
4656
|
name: "Secondary",
|
|
4390
4657
|
enabled: true,
|
|
4391
4658
|
priority: 2,
|
|
4392
|
-
background: {
|
|
4393
|
-
|
|
4394
|
-
|
|
4395
|
-
border: {
|
|
4396
|
-
widthClass: "border-2",
|
|
4397
|
-
colorToken: "primary"
|
|
4659
|
+
background: {
|
|
4660
|
+
type: "surface",
|
|
4661
|
+
role: "link"
|
|
4398
4662
|
},
|
|
4663
|
+
borderRadius: "rounded-md",
|
|
4664
|
+
border: { widthClass: "border-2" },
|
|
4399
4665
|
effects: { hover: [{
|
|
4400
4666
|
effectId: "background-on-hover",
|
|
4401
4667
|
options: { colorToken: "surface" }
|
|
@@ -4406,13 +4672,12 @@ const inkStamp = defineButtonPersonality({
|
|
|
4406
4672
|
name: "Outline",
|
|
4407
4673
|
enabled: true,
|
|
4408
4674
|
priority: 3,
|
|
4409
|
-
background: {
|
|
4410
|
-
|
|
4411
|
-
|
|
4412
|
-
border: {
|
|
4413
|
-
widthClass: "border-2",
|
|
4414
|
-
colorToken: "border"
|
|
4675
|
+
background: {
|
|
4676
|
+
type: "surface",
|
|
4677
|
+
role: "link"
|
|
4415
4678
|
},
|
|
4679
|
+
borderRadius: "rounded-md",
|
|
4680
|
+
border: { widthClass: "border-2" },
|
|
4416
4681
|
effects: { hover: [{
|
|
4417
4682
|
effectId: "background-on-hover",
|
|
4418
4683
|
options: { colorToken: "surface" }
|
|
@@ -4423,8 +4688,10 @@ const inkStamp = defineButtonPersonality({
|
|
|
4423
4688
|
name: "Ghost",
|
|
4424
4689
|
enabled: true,
|
|
4425
4690
|
priority: 3,
|
|
4426
|
-
background: {
|
|
4427
|
-
|
|
4691
|
+
background: {
|
|
4692
|
+
type: "surface",
|
|
4693
|
+
role: "link"
|
|
4694
|
+
},
|
|
4428
4695
|
borderRadius: "rounded-none",
|
|
4429
4696
|
sizes: {
|
|
4430
4697
|
sm: {
|
|
@@ -4517,7 +4784,6 @@ const joyStamp = defineButtonPersonality({
|
|
|
4517
4784
|
type: "solid",
|
|
4518
4785
|
colorToken: "primary"
|
|
4519
4786
|
},
|
|
4520
|
-
textColorToken: "primaryForeground",
|
|
4521
4787
|
borderRadius: "rounded-full",
|
|
4522
4788
|
shadow: {
|
|
4523
4789
|
elevation: "high",
|
|
@@ -4531,13 +4797,12 @@ const joyStamp = defineButtonPersonality({
|
|
|
4531
4797
|
name: "Secondary",
|
|
4532
4798
|
enabled: true,
|
|
4533
4799
|
priority: 2,
|
|
4534
|
-
background: {
|
|
4535
|
-
|
|
4536
|
-
|
|
4537
|
-
border: {
|
|
4538
|
-
widthClass: "border-2",
|
|
4539
|
-
colorToken: "text"
|
|
4800
|
+
background: {
|
|
4801
|
+
type: "surface",
|
|
4802
|
+
role: "link"
|
|
4540
4803
|
},
|
|
4804
|
+
borderRadius: "rounded-full",
|
|
4805
|
+
border: { widthClass: "border-2" },
|
|
4541
4806
|
shadow: {
|
|
4542
4807
|
elevation: "high",
|
|
4543
4808
|
softness: "hard",
|
|
@@ -4602,12 +4867,8 @@ const ornateRitual = defineButtonPersonality({
|
|
|
4602
4867
|
type: "solid",
|
|
4603
4868
|
colorToken: "primary"
|
|
4604
4869
|
},
|
|
4605
|
-
textColorToken: "primaryForeground",
|
|
4606
4870
|
borderRadius: "rounded-md",
|
|
4607
|
-
border: {
|
|
4608
|
-
widthClass: "border",
|
|
4609
|
-
colorToken: "primary"
|
|
4610
|
-
},
|
|
4871
|
+
border: { widthClass: "border" },
|
|
4611
4872
|
effects: {
|
|
4612
4873
|
hover: [{
|
|
4613
4874
|
effectId: "background-on-hover",
|
|
@@ -4628,12 +4889,8 @@ const ornateRitual = defineButtonPersonality({
|
|
|
4628
4889
|
type: "solid",
|
|
4629
4890
|
colorToken: "secondary"
|
|
4630
4891
|
},
|
|
4631
|
-
textColorToken: "primaryForeground",
|
|
4632
4892
|
borderRadius: "rounded-md",
|
|
4633
|
-
border: {
|
|
4634
|
-
widthClass: "border",
|
|
4635
|
-
colorToken: "primary"
|
|
4636
|
-
},
|
|
4893
|
+
border: { widthClass: "border" },
|
|
4637
4894
|
effects: { hover: [{
|
|
4638
4895
|
effectId: "background-on-hover",
|
|
4639
4896
|
options: { colorToken: "surface" }
|
|
@@ -4644,13 +4901,12 @@ const ornateRitual = defineButtonPersonality({
|
|
|
4644
4901
|
name: "Outline",
|
|
4645
4902
|
enabled: true,
|
|
4646
4903
|
priority: 3,
|
|
4647
|
-
background: {
|
|
4648
|
-
|
|
4649
|
-
|
|
4650
|
-
border: {
|
|
4651
|
-
widthClass: "border",
|
|
4652
|
-
colorToken: "primary"
|
|
4904
|
+
background: {
|
|
4905
|
+
type: "surface",
|
|
4906
|
+
role: "link"
|
|
4653
4907
|
},
|
|
4908
|
+
borderRadius: "rounded-md",
|
|
4909
|
+
border: { widthClass: "border" },
|
|
4654
4910
|
effects: { hover: [{
|
|
4655
4911
|
effectId: "background-on-hover",
|
|
4656
4912
|
options: { colorToken: "muted" }
|
|
@@ -4661,8 +4917,10 @@ const ornateRitual = defineButtonPersonality({
|
|
|
4661
4917
|
name: "Ghost",
|
|
4662
4918
|
enabled: true,
|
|
4663
4919
|
priority: 3,
|
|
4664
|
-
background: {
|
|
4665
|
-
|
|
4920
|
+
background: {
|
|
4921
|
+
type: "surface",
|
|
4922
|
+
role: "link"
|
|
4923
|
+
},
|
|
4666
4924
|
borderRadius: "rounded-none",
|
|
4667
4925
|
sizes: {
|
|
4668
4926
|
sm: {
|
|
@@ -4744,14 +5002,10 @@ const pebble = defineButtonPersonality({
|
|
|
4744
5002
|
type: "solid",
|
|
4745
5003
|
colorToken: "primary"
|
|
4746
5004
|
},
|
|
4747
|
-
textColorToken: "primaryForeground",
|
|
4748
5005
|
borderRadius: "rounded-full",
|
|
4749
5006
|
effects: { hover: [{
|
|
4750
|
-
effectId: "background
|
|
4751
|
-
options: {
|
|
4752
|
-
colorToken: "primary",
|
|
4753
|
-
opacity: 88
|
|
4754
|
-
}
|
|
5007
|
+
effectId: "darken-background",
|
|
5008
|
+
options: { amount: 100 }
|
|
4755
5009
|
}] }
|
|
4756
5010
|
},
|
|
4757
5011
|
{
|
|
@@ -4759,13 +5013,12 @@ const pebble = defineButtonPersonality({
|
|
|
4759
5013
|
name: "Secondary",
|
|
4760
5014
|
enabled: true,
|
|
4761
5015
|
priority: 2,
|
|
4762
|
-
background: {
|
|
4763
|
-
|
|
4764
|
-
|
|
4765
|
-
border: {
|
|
4766
|
-
widthClass: "border-2",
|
|
4767
|
-
colorToken: "accent"
|
|
5016
|
+
background: {
|
|
5017
|
+
type: "surface",
|
|
5018
|
+
role: "link"
|
|
4768
5019
|
},
|
|
5020
|
+
borderRadius: "rounded-full",
|
|
5021
|
+
border: { widthClass: "border-2" },
|
|
4769
5022
|
effects: { hover: [{
|
|
4770
5023
|
effectId: "background-on-hover",
|
|
4771
5024
|
options: { colorToken: "accent" }
|
|
@@ -4776,13 +5029,12 @@ const pebble = defineButtonPersonality({
|
|
|
4776
5029
|
name: "Outline",
|
|
4777
5030
|
enabled: true,
|
|
4778
5031
|
priority: 3,
|
|
4779
|
-
background: {
|
|
4780
|
-
|
|
4781
|
-
|
|
4782
|
-
border: {
|
|
4783
|
-
widthClass: "border",
|
|
4784
|
-
colorToken: "border"
|
|
5032
|
+
background: {
|
|
5033
|
+
type: "surface",
|
|
5034
|
+
role: "link"
|
|
4785
5035
|
},
|
|
5036
|
+
borderRadius: "rounded-full",
|
|
5037
|
+
border: { widthClass: "border" },
|
|
4786
5038
|
effects: { hover: [{
|
|
4787
5039
|
effectId: "background-on-hover",
|
|
4788
5040
|
options: { colorToken: "surface" }
|
|
@@ -4793,8 +5045,10 @@ const pebble = defineButtonPersonality({
|
|
|
4793
5045
|
name: "Ghost",
|
|
4794
5046
|
enabled: true,
|
|
4795
5047
|
priority: 3,
|
|
4796
|
-
background: {
|
|
4797
|
-
|
|
5048
|
+
background: {
|
|
5049
|
+
type: "surface",
|
|
5050
|
+
role: "link"
|
|
5051
|
+
},
|
|
4798
5052
|
borderRadius: "rounded-full",
|
|
4799
5053
|
sizes: {
|
|
4800
5054
|
sm: {
|
|
@@ -4810,11 +5064,7 @@ const pebble = defineButtonPersonality({
|
|
|
4810
5064
|
padding: "0.75rem 1.5rem",
|
|
4811
5065
|
fontSize: "text-xl"
|
|
4812
5066
|
}
|
|
4813
|
-
}
|
|
4814
|
-
effects: { hover: [{
|
|
4815
|
-
effectId: "opacity-reduce",
|
|
4816
|
-
options: { reduction: 30 }
|
|
4817
|
-
}] }
|
|
5067
|
+
}
|
|
4818
5068
|
}
|
|
4819
5069
|
]
|
|
4820
5070
|
}
|
|
@@ -4876,15 +5126,11 @@ const quietArrow = defineButtonPersonality({
|
|
|
4876
5126
|
type: "solid",
|
|
4877
5127
|
colorToken: "primary"
|
|
4878
5128
|
},
|
|
4879
|
-
textColorToken: "primaryForeground",
|
|
4880
5129
|
borderRadius: "rounded-xl",
|
|
4881
5130
|
affordance: { iconId: "ArrowRight" },
|
|
4882
5131
|
effects: { hover: [{
|
|
4883
|
-
effectId: "background
|
|
4884
|
-
options: {
|
|
4885
|
-
colorToken: "primary",
|
|
4886
|
-
opacity: 90
|
|
4887
|
-
}
|
|
5132
|
+
effectId: "darken-background",
|
|
5133
|
+
options: { amount: 100 }
|
|
4888
5134
|
}] }
|
|
4889
5135
|
},
|
|
4890
5136
|
{
|
|
@@ -4892,13 +5138,12 @@ const quietArrow = defineButtonPersonality({
|
|
|
4892
5138
|
name: "Secondary",
|
|
4893
5139
|
enabled: true,
|
|
4894
5140
|
priority: 2,
|
|
4895
|
-
background: {
|
|
4896
|
-
|
|
4897
|
-
|
|
4898
|
-
border: {
|
|
4899
|
-
widthClass: "border",
|
|
4900
|
-
colorToken: "primary"
|
|
5141
|
+
background: {
|
|
5142
|
+
type: "surface",
|
|
5143
|
+
role: "link"
|
|
4901
5144
|
},
|
|
5145
|
+
borderRadius: "rounded-xl",
|
|
5146
|
+
border: { widthClass: "border" },
|
|
4902
5147
|
affordance: { iconId: "ArrowRight" },
|
|
4903
5148
|
effects: { hover: [{
|
|
4904
5149
|
effectId: "background-on-hover",
|
|
@@ -4910,21 +5155,22 @@ const quietArrow = defineButtonPersonality({
|
|
|
4910
5155
|
name: "Outline",
|
|
4911
5156
|
enabled: true,
|
|
4912
5157
|
priority: 3,
|
|
4913
|
-
background: {
|
|
4914
|
-
|
|
5158
|
+
background: {
|
|
5159
|
+
type: "surface",
|
|
5160
|
+
role: "link"
|
|
5161
|
+
},
|
|
4915
5162
|
borderRadius: "rounded-xl",
|
|
4916
|
-
border: {
|
|
4917
|
-
widthClass: "border",
|
|
4918
|
-
colorToken: "primary"
|
|
4919
|
-
}
|
|
5163
|
+
border: { widthClass: "border" }
|
|
4920
5164
|
},
|
|
4921
5165
|
{
|
|
4922
5166
|
id: "ghost",
|
|
4923
5167
|
name: "Ghost",
|
|
4924
5168
|
enabled: true,
|
|
4925
5169
|
priority: 3,
|
|
4926
|
-
background: {
|
|
4927
|
-
|
|
5170
|
+
background: {
|
|
5171
|
+
type: "surface",
|
|
5172
|
+
role: "link"
|
|
5173
|
+
},
|
|
4928
5174
|
borderRadius: "rounded-xl"
|
|
4929
5175
|
}
|
|
4930
5176
|
]
|
|
@@ -4988,7 +5234,6 @@ const showtimePill = defineButtonPersonality({
|
|
|
4988
5234
|
type: "solid",
|
|
4989
5235
|
colorToken: "primary"
|
|
4990
5236
|
},
|
|
4991
|
-
textColorToken: "background",
|
|
4992
5237
|
borderRadius: "rounded-full",
|
|
4993
5238
|
effects: { hover: [{ effectId: "pop" }] }
|
|
4994
5239
|
},
|
|
@@ -4997,13 +5242,12 @@ const showtimePill = defineButtonPersonality({
|
|
|
4997
5242
|
name: "Secondary",
|
|
4998
5243
|
enabled: true,
|
|
4999
5244
|
priority: 2,
|
|
5000
|
-
background: {
|
|
5001
|
-
|
|
5002
|
-
|
|
5003
|
-
border: {
|
|
5004
|
-
widthClass: "border-2",
|
|
5005
|
-
colorToken: "primary"
|
|
5245
|
+
background: {
|
|
5246
|
+
type: "surface",
|
|
5247
|
+
role: "link"
|
|
5006
5248
|
},
|
|
5249
|
+
borderRadius: "rounded-full",
|
|
5250
|
+
border: { widthClass: "border-2" },
|
|
5007
5251
|
effects: { hover: [{ effectId: "pop" }] }
|
|
5008
5252
|
},
|
|
5009
5253
|
{
|
|
@@ -5015,7 +5259,6 @@ const showtimePill = defineButtonPersonality({
|
|
|
5015
5259
|
type: "solid",
|
|
5016
5260
|
colorToken: "secondary"
|
|
5017
5261
|
},
|
|
5018
|
-
textColorToken: "primary",
|
|
5019
5262
|
borderRadius: "rounded-full",
|
|
5020
5263
|
effects: { hover: [{ effectId: "pop" }] }
|
|
5021
5264
|
},
|
|
@@ -5028,12 +5271,8 @@ const showtimePill = defineButtonPersonality({
|
|
|
5028
5271
|
type: "solid",
|
|
5029
5272
|
colorToken: "background"
|
|
5030
5273
|
},
|
|
5031
|
-
textColorToken: "primary",
|
|
5032
5274
|
borderRadius: "rounded-full",
|
|
5033
|
-
border: {
|
|
5034
|
-
widthClass: "border-2",
|
|
5035
|
-
colorToken: "primary"
|
|
5036
|
-
},
|
|
5275
|
+
border: { widthClass: "border-2" },
|
|
5037
5276
|
effects: { hover: [{
|
|
5038
5277
|
effectId: "background-on-hover",
|
|
5039
5278
|
options: { colorToken: "surface" }
|
|
@@ -5044,13 +5283,12 @@ const showtimePill = defineButtonPersonality({
|
|
|
5044
5283
|
name: "Outline",
|
|
5045
5284
|
enabled: true,
|
|
5046
5285
|
priority: 3,
|
|
5047
|
-
background: {
|
|
5048
|
-
|
|
5049
|
-
|
|
5050
|
-
border: {
|
|
5051
|
-
widthClass: "border-2",
|
|
5052
|
-
colorToken: "primary"
|
|
5286
|
+
background: {
|
|
5287
|
+
type: "surface",
|
|
5288
|
+
role: "link"
|
|
5053
5289
|
},
|
|
5290
|
+
borderRadius: "rounded-full",
|
|
5291
|
+
border: { widthClass: "border-2" },
|
|
5054
5292
|
effects: { hover: [{
|
|
5055
5293
|
effectId: "background-on-hover",
|
|
5056
5294
|
options: { colorToken: "background" }
|
|
@@ -5061,8 +5299,10 @@ const showtimePill = defineButtonPersonality({
|
|
|
5061
5299
|
name: "Ghost",
|
|
5062
5300
|
enabled: true,
|
|
5063
5301
|
priority: 3,
|
|
5064
|
-
background: {
|
|
5065
|
-
|
|
5302
|
+
background: {
|
|
5303
|
+
type: "surface",
|
|
5304
|
+
role: "link"
|
|
5305
|
+
},
|
|
5066
5306
|
borderRadius: "rounded-full",
|
|
5067
5307
|
effects: { hover: [{
|
|
5068
5308
|
effectId: "background-on-hover",
|
|
@@ -5073,104 +5313,151 @@ const showtimePill = defineButtonPersonality({
|
|
|
5073
5313
|
}
|
|
5074
5314
|
});
|
|
5075
5315
|
//#endregion
|
|
5076
|
-
//#region ../theme-core/src/buttons/personalities/
|
|
5077
|
-
|
|
5078
|
-
|
|
5079
|
-
|
|
5080
|
-
|
|
5081
|
-
|
|
5082
|
-
|
|
5083
|
-
|
|
5084
|
-
|
|
5085
|
-
|
|
5086
|
-
|
|
5316
|
+
//#region ../theme-core/src/buttons/personalities/soft-pill.ts
|
|
5317
|
+
/**
|
|
5318
|
+
* Soft Pill — rounded-full pill buttons with a hover lift. The default for
|
|
5319
|
+
* Calm Studio and Modern Wellness; reads as quietly modern and welcoming.
|
|
5320
|
+
*/
|
|
5321
|
+
const softPill = defineButtonPersonality({
|
|
5322
|
+
id: "soft-pill",
|
|
5323
|
+
name: "Soft Pill",
|
|
5324
|
+
description: "Rounded pills with a gentle lift on hover. Quietly modern.",
|
|
5325
|
+
tags: {
|
|
5326
|
+
tone: "classic",
|
|
5327
|
+
energy: "calm",
|
|
5328
|
+
motion: "subtle",
|
|
5329
|
+
era: "organic"
|
|
5330
|
+
},
|
|
5331
|
+
buttonSystem: {
|
|
5332
|
+
global: {
|
|
5333
|
+
cornerStyle: "pill",
|
|
5334
|
+
shadow: "low",
|
|
5335
|
+
textTransform: "none",
|
|
5336
|
+
fontWeight: 500,
|
|
5337
|
+
borderWidth: 2,
|
|
5338
|
+
hoverTransform: "lift",
|
|
5339
|
+
hoverColor: "none"
|
|
5087
5340
|
},
|
|
5088
|
-
|
|
5089
|
-
|
|
5090
|
-
|
|
5091
|
-
|
|
5092
|
-
|
|
5093
|
-
|
|
5094
|
-
|
|
5095
|
-
|
|
5096
|
-
|
|
5341
|
+
variants: [
|
|
5342
|
+
{
|
|
5343
|
+
id: "primary",
|
|
5344
|
+
name: "Primary",
|
|
5345
|
+
enabled: true,
|
|
5346
|
+
priority: 1,
|
|
5347
|
+
background: {
|
|
5348
|
+
type: "solid",
|
|
5349
|
+
colorToken: "primary"
|
|
5350
|
+
},
|
|
5351
|
+
borderRadius: "rounded-full",
|
|
5352
|
+
shadow: {
|
|
5353
|
+
elevation: "low",
|
|
5354
|
+
softness: "soft",
|
|
5355
|
+
position: "bottom"
|
|
5356
|
+
},
|
|
5357
|
+
effects: {
|
|
5358
|
+
hover: [{
|
|
5359
|
+
effectId: "lift",
|
|
5360
|
+
options: { translateY: "-1px" }
|
|
5361
|
+
}],
|
|
5362
|
+
active: [{
|
|
5363
|
+
effectId: "scale-down",
|
|
5364
|
+
options: { scale: "0.98" }
|
|
5365
|
+
}]
|
|
5366
|
+
}
|
|
5097
5367
|
},
|
|
5098
|
-
|
|
5099
|
-
|
|
5100
|
-
|
|
5101
|
-
|
|
5102
|
-
|
|
5103
|
-
|
|
5104
|
-
|
|
5105
|
-
|
|
5106
|
-
colorToken: "primary"
|
|
5107
|
-
},
|
|
5108
|
-
textColorToken: "primaryForeground",
|
|
5109
|
-
borderRadius: "rounded-full",
|
|
5110
|
-
shadow: {
|
|
5111
|
-
elevation: "low",
|
|
5112
|
-
softness: "soft",
|
|
5113
|
-
position: "bottom"
|
|
5114
|
-
},
|
|
5115
|
-
effects: {
|
|
5116
|
-
hover: [{
|
|
5117
|
-
effectId: "lift",
|
|
5118
|
-
options: { translateY: "-1px" }
|
|
5119
|
-
}],
|
|
5120
|
-
active: [{
|
|
5121
|
-
effectId: "scale-down",
|
|
5122
|
-
options: { scale: "0.98" }
|
|
5123
|
-
}]
|
|
5124
|
-
}
|
|
5368
|
+
{
|
|
5369
|
+
id: "secondary",
|
|
5370
|
+
name: "Secondary",
|
|
5371
|
+
enabled: true,
|
|
5372
|
+
priority: 2,
|
|
5373
|
+
background: {
|
|
5374
|
+
type: "surface",
|
|
5375
|
+
role: "link"
|
|
5125
5376
|
},
|
|
5126
|
-
|
|
5127
|
-
|
|
5128
|
-
|
|
5129
|
-
|
|
5130
|
-
|
|
5131
|
-
|
|
5132
|
-
|
|
5133
|
-
|
|
5134
|
-
|
|
5135
|
-
|
|
5136
|
-
|
|
5137
|
-
|
|
5138
|
-
|
|
5139
|
-
|
|
5140
|
-
|
|
5141
|
-
}] }
|
|
5377
|
+
borderRadius: "rounded-full",
|
|
5378
|
+
border: { widthClass: "border-2" },
|
|
5379
|
+
effects: { hover: [{
|
|
5380
|
+
effectId: "background-on-hover",
|
|
5381
|
+
options: { colorToken: "surface" }
|
|
5382
|
+
}] }
|
|
5383
|
+
},
|
|
5384
|
+
{
|
|
5385
|
+
id: "outline",
|
|
5386
|
+
name: "Outline",
|
|
5387
|
+
enabled: true,
|
|
5388
|
+
priority: 3,
|
|
5389
|
+
background: {
|
|
5390
|
+
type: "surface",
|
|
5391
|
+
role: "link"
|
|
5142
5392
|
},
|
|
5143
|
-
|
|
5144
|
-
|
|
5145
|
-
|
|
5146
|
-
|
|
5147
|
-
|
|
5148
|
-
|
|
5149
|
-
|
|
5150
|
-
|
|
5151
|
-
|
|
5152
|
-
|
|
5153
|
-
|
|
5154
|
-
|
|
5155
|
-
|
|
5156
|
-
|
|
5157
|
-
|
|
5158
|
-
}] }
|
|
5393
|
+
borderRadius: "rounded-full",
|
|
5394
|
+
border: { widthClass: "border" },
|
|
5395
|
+
effects: { hover: [{
|
|
5396
|
+
effectId: "background-on-hover",
|
|
5397
|
+
options: { colorToken: "surface" }
|
|
5398
|
+
}] }
|
|
5399
|
+
},
|
|
5400
|
+
{
|
|
5401
|
+
id: "ghost",
|
|
5402
|
+
name: "Ghost",
|
|
5403
|
+
enabled: true,
|
|
5404
|
+
priority: 3,
|
|
5405
|
+
background: {
|
|
5406
|
+
type: "surface",
|
|
5407
|
+
role: "link"
|
|
5159
5408
|
},
|
|
5160
|
-
|
|
5161
|
-
|
|
5162
|
-
|
|
5163
|
-
|
|
5164
|
-
|
|
5165
|
-
|
|
5166
|
-
|
|
5167
|
-
|
|
5168
|
-
|
|
5169
|
-
|
|
5170
|
-
|
|
5171
|
-
|
|
5172
|
-
|
|
5173
|
-
|
|
5409
|
+
borderRadius: "rounded-full",
|
|
5410
|
+
effects: { hover: [{
|
|
5411
|
+
effectId: "background-on-hover",
|
|
5412
|
+
options: { colorToken: "surface" }
|
|
5413
|
+
}] }
|
|
5414
|
+
}
|
|
5415
|
+
]
|
|
5416
|
+
}
|
|
5417
|
+
});
|
|
5418
|
+
//#endregion
|
|
5419
|
+
//#region ../theme-core/src/buttons/personalities/two-tone-pill.ts
|
|
5420
|
+
const solidSecondary = {
|
|
5421
|
+
id: "secondary",
|
|
5422
|
+
name: "Secondary",
|
|
5423
|
+
enabled: true,
|
|
5424
|
+
priority: 2,
|
|
5425
|
+
background: {
|
|
5426
|
+
type: "solid",
|
|
5427
|
+
colorToken: unsafeAsOpaqueButtonColourToken("secondary")
|
|
5428
|
+
},
|
|
5429
|
+
borderRadius: "rounded-full",
|
|
5430
|
+
shadow: {
|
|
5431
|
+
elevation: "none",
|
|
5432
|
+
softness: null,
|
|
5433
|
+
position: "bottom"
|
|
5434
|
+
},
|
|
5435
|
+
effects: {
|
|
5436
|
+
hover: [{
|
|
5437
|
+
effectId: "background-on-hover-alpha",
|
|
5438
|
+
options: {
|
|
5439
|
+
colorToken: "secondary",
|
|
5440
|
+
opacity: 88
|
|
5441
|
+
}
|
|
5442
|
+
}],
|
|
5443
|
+
active: [{
|
|
5444
|
+
effectId: "scale-down",
|
|
5445
|
+
options: { scale: "0.98" }
|
|
5446
|
+
}]
|
|
5447
|
+
}
|
|
5448
|
+
};
|
|
5449
|
+
//#endregion
|
|
5450
|
+
//#region ../theme-core/src/buttons/personalities/index.ts
|
|
5451
|
+
const buttonPersonalities = [
|
|
5452
|
+
softPill,
|
|
5453
|
+
defineButtonPersonality({
|
|
5454
|
+
id: "two-tone-pill",
|
|
5455
|
+
name: "Two-tone Pill",
|
|
5456
|
+
description: "Rounded pills with distinct solid primary and secondary brand colours.",
|
|
5457
|
+
tags: softPill.tags,
|
|
5458
|
+
buttonSystem: {
|
|
5459
|
+
...softPill.buttonSystem,
|
|
5460
|
+
variants: softPill.buttonSystem.variants.map((variant) => variant.id === "secondary" ? solidSecondary : variant)
|
|
5174
5461
|
}
|
|
5175
5462
|
}),
|
|
5176
5463
|
earthPill,
|
|
@@ -5186,6 +5473,27 @@ const buttonPersonalities = [
|
|
|
5186
5473
|
quietArrow
|
|
5187
5474
|
];
|
|
5188
5475
|
new Map(buttonPersonalities.map((p) => [p.id, p]));
|
|
5476
|
+
buttonPersonalities.map((personality) => ({
|
|
5477
|
+
id: personality.id,
|
|
5478
|
+
name: personality.name,
|
|
5479
|
+
description: personality.description,
|
|
5480
|
+
category: presetCategory(personality),
|
|
5481
|
+
buttonSystem: personality.buttonSystem,
|
|
5482
|
+
compatibility: {
|
|
5483
|
+
...personality.tags.tone ? { tones: [personality.tags.tone] } : {},
|
|
5484
|
+
...personality.tags.energy ? { energies: [personality.tags.energy] } : {}
|
|
5485
|
+
}
|
|
5486
|
+
}));
|
|
5487
|
+
function presetCategory(personality) {
|
|
5488
|
+
switch (personality.tags.era) {
|
|
5489
|
+
case "retro": return "retro";
|
|
5490
|
+
case "editorial": return "minimal";
|
|
5491
|
+
case "organic": return "artistic";
|
|
5492
|
+
case "modern": return personality.tags.tone === "bold" ? "modern" : "technical";
|
|
5493
|
+
case "technical": return "technical";
|
|
5494
|
+
case void 0: return "modern";
|
|
5495
|
+
}
|
|
5496
|
+
}
|
|
5189
5497
|
//#endregion
|
|
5190
5498
|
//#region ../theme-core/src/cards/types.ts
|
|
5191
5499
|
const cardVariantRoleValues = ["default", "alternative"];
|
|
@@ -6703,6 +7011,7 @@ const navFontWeight = z$1.enum([
|
|
|
6703
7011
|
"bold"
|
|
6704
7012
|
]);
|
|
6705
7013
|
const headerMaxWidth = z$1.enum(["container", "full"]);
|
|
7014
|
+
const headerBarFrame = z$1.enum(["full-bleed", "inset-shell"]);
|
|
6706
7015
|
const headerContainerSchema = z$1.object({
|
|
6707
7016
|
rounded: z$1.enum([
|
|
6708
7017
|
"none",
|
|
@@ -6847,6 +7156,7 @@ const headerSchema = z$1.object({
|
|
|
6847
7156
|
positioning: headerPositioning,
|
|
6848
7157
|
shrinkOnScroll: z$1.boolean(),
|
|
6849
7158
|
maxWidth: headerMaxWidth,
|
|
7159
|
+
barFrame: headerBarFrame.optional(),
|
|
6850
7160
|
logoOverride: mediaSchema$1.nullable().optional(),
|
|
6851
7161
|
background: headerBackgroundSchema.default({
|
|
6852
7162
|
type: "color",
|
|
@@ -6856,6 +7166,7 @@ const headerSchema = z$1.object({
|
|
|
6856
7166
|
navStyle: headerNavStyle,
|
|
6857
7167
|
navColor: themeColorTokenSchema.nullable().optional(),
|
|
6858
7168
|
navWeight: navFontWeight.default("medium"),
|
|
7169
|
+
navFontRole: z$1.enum(["body", "heading"]).optional(),
|
|
6859
7170
|
navTypography: z$1.enum(["body", "heading"]).optional(),
|
|
6860
7171
|
navTextSize: navLinkStyleSchema.shape.textSize,
|
|
6861
7172
|
navPlacement: z$1.enum(["end", "center"]).optional(),
|
|
@@ -6871,7 +7182,21 @@ const headerSchema = z$1.object({
|
|
|
6871
7182
|
ctaTreatment: headerCtaTreatmentSchema.optional(),
|
|
6872
7183
|
ctaVariant: z$1.string().min(1).optional(),
|
|
6873
7184
|
dropdownStyle: dropdownStyleSchema
|
|
6874
|
-
});
|
|
7185
|
+
}).transform(normaliseHeaderNavFontRole);
|
|
7186
|
+
/**
|
|
7187
|
+
* Normalises the legacy `navTypography` font-role alias into the canonical
|
|
7188
|
+
* `navFontRole` field so persisted themes migrate at the parse boundary without
|
|
7189
|
+
* a data migration. `navFontRole` always wins when both are present; the legacy
|
|
7190
|
+
* field is dropped so we never carry a dual write forward.
|
|
7191
|
+
*/
|
|
7192
|
+
function normaliseHeaderNavFontRole(header) {
|
|
7193
|
+
if (header.navTypography === void 0) return header;
|
|
7194
|
+
const { navTypography, ...rest } = header;
|
|
7195
|
+
return header.navFontRole === void 0 ? {
|
|
7196
|
+
...rest,
|
|
7197
|
+
navFontRole: navTypography
|
|
7198
|
+
} : rest;
|
|
7199
|
+
}
|
|
6875
7200
|
const footerVariant = z$1.enum([
|
|
6876
7201
|
"simple",
|
|
6877
7202
|
"columns",
|
|
@@ -8645,6 +8970,241 @@ const originalJoyCardSystem = { variants: [{
|
|
|
8645
8970
|
const serifDisplayQuote = { style: "serif-display" };
|
|
8646
8971
|
/** Punchy quotation mark in the secondary accent colour. Bold / accent styles. */
|
|
8647
8972
|
const accentGlyphQuote = { style: "accent-glyph" };
|
|
8973
|
+
/**
|
|
8974
|
+
* Curated library of gradient presets.
|
|
8975
|
+
* All gradients use theme color tokens, so they adapt to the site's palette.
|
|
8976
|
+
*/
|
|
8977
|
+
const GRADIENT_PRESETS = [
|
|
8978
|
+
{
|
|
8979
|
+
id: "primary-secondary",
|
|
8980
|
+
name: "Primary to Secondary",
|
|
8981
|
+
description: "Blend your primary and secondary brand colors",
|
|
8982
|
+
type: "linear",
|
|
8983
|
+
angle: 135,
|
|
8984
|
+
stops: [{
|
|
8985
|
+
color: "primary-500",
|
|
8986
|
+
position: 0
|
|
8987
|
+
}, {
|
|
8988
|
+
color: "secondary-500",
|
|
8989
|
+
position: 100
|
|
8990
|
+
}]
|
|
8991
|
+
},
|
|
8992
|
+
{
|
|
8993
|
+
id: "primary-accent",
|
|
8994
|
+
name: "Primary to Accent",
|
|
8995
|
+
description: "Energetic gradient from primary to accent",
|
|
8996
|
+
type: "linear",
|
|
8997
|
+
angle: 135,
|
|
8998
|
+
stops: [{
|
|
8999
|
+
color: "primary-500",
|
|
9000
|
+
position: 0
|
|
9001
|
+
}, {
|
|
9002
|
+
color: "accent-500",
|
|
9003
|
+
position: 100
|
|
9004
|
+
}]
|
|
9005
|
+
},
|
|
9006
|
+
{
|
|
9007
|
+
id: "secondary-accent",
|
|
9008
|
+
name: "Secondary to Accent",
|
|
9009
|
+
description: "Vibrant secondary to accent blend",
|
|
9010
|
+
type: "linear",
|
|
9011
|
+
angle: 135,
|
|
9012
|
+
stops: [{
|
|
9013
|
+
color: "secondary-500",
|
|
9014
|
+
position: 0
|
|
9015
|
+
}, {
|
|
9016
|
+
color: "accent-500",
|
|
9017
|
+
position: 100
|
|
9018
|
+
}]
|
|
9019
|
+
},
|
|
9020
|
+
{
|
|
9021
|
+
id: "primary-light-dark",
|
|
9022
|
+
name: "Primary Light to Dark",
|
|
9023
|
+
description: "Subtle primary color fade",
|
|
9024
|
+
type: "linear",
|
|
9025
|
+
angle: 180,
|
|
9026
|
+
stops: [{
|
|
9027
|
+
color: "primary-500",
|
|
9028
|
+
position: 0
|
|
9029
|
+
}, {
|
|
9030
|
+
color: "primary-900",
|
|
9031
|
+
position: 100
|
|
9032
|
+
}]
|
|
9033
|
+
},
|
|
9034
|
+
{
|
|
9035
|
+
id: "primary-dark-light",
|
|
9036
|
+
name: "Primary Dark to Light",
|
|
9037
|
+
description: "Reverse primary fade",
|
|
9038
|
+
type: "linear",
|
|
9039
|
+
angle: 180,
|
|
9040
|
+
stops: [{
|
|
9041
|
+
color: "primary-900",
|
|
9042
|
+
position: 0
|
|
9043
|
+
}, {
|
|
9044
|
+
color: "primary-50",
|
|
9045
|
+
position: 100
|
|
9046
|
+
}]
|
|
9047
|
+
},
|
|
9048
|
+
{
|
|
9049
|
+
id: "secondary-light-dark",
|
|
9050
|
+
name: "Secondary Light to Dark",
|
|
9051
|
+
description: "Subtle secondary color fade",
|
|
9052
|
+
type: "linear",
|
|
9053
|
+
angle: 180,
|
|
9054
|
+
stops: [{
|
|
9055
|
+
color: "secondary-500",
|
|
9056
|
+
position: 0
|
|
9057
|
+
}, {
|
|
9058
|
+
color: "secondary-900",
|
|
9059
|
+
position: 100
|
|
9060
|
+
}]
|
|
9061
|
+
},
|
|
9062
|
+
{
|
|
9063
|
+
id: "accent-light-dark",
|
|
9064
|
+
name: "Accent Light to Dark",
|
|
9065
|
+
description: "Accent color depth fade",
|
|
9066
|
+
type: "linear",
|
|
9067
|
+
angle: 180,
|
|
9068
|
+
stops: [{
|
|
9069
|
+
color: "accent-500",
|
|
9070
|
+
position: 0
|
|
9071
|
+
}, {
|
|
9072
|
+
color: "accent-900",
|
|
9073
|
+
position: 100
|
|
9074
|
+
}]
|
|
9075
|
+
},
|
|
9076
|
+
{
|
|
9077
|
+
id: "background-surface",
|
|
9078
|
+
name: "Background to Surface",
|
|
9079
|
+
description: "Subtle depth using base colors",
|
|
9080
|
+
type: "linear",
|
|
9081
|
+
angle: 180,
|
|
9082
|
+
stops: [{
|
|
9083
|
+
color: "background",
|
|
9084
|
+
position: 0
|
|
9085
|
+
}, {
|
|
9086
|
+
color: "surface",
|
|
9087
|
+
position: 100
|
|
9088
|
+
}]
|
|
9089
|
+
},
|
|
9090
|
+
{
|
|
9091
|
+
id: "neutral-fade",
|
|
9092
|
+
name: "Neutral Gradient",
|
|
9093
|
+
description: "Elegant neutral color fade",
|
|
9094
|
+
type: "linear",
|
|
9095
|
+
angle: 180,
|
|
9096
|
+
stops: [{
|
|
9097
|
+
color: "neutral-900",
|
|
9098
|
+
position: 0
|
|
9099
|
+
}, {
|
|
9100
|
+
color: "neutral-50",
|
|
9101
|
+
position: 100
|
|
9102
|
+
}]
|
|
9103
|
+
},
|
|
9104
|
+
{
|
|
9105
|
+
id: "primary-glow",
|
|
9106
|
+
name: "Primary glow",
|
|
9107
|
+
description: "A soft top-centred glow using your primary palette",
|
|
9108
|
+
type: "radial",
|
|
9109
|
+
shape: "ellipse",
|
|
9110
|
+
position: "top center",
|
|
9111
|
+
stops: [{
|
|
9112
|
+
color: "primary-900",
|
|
9113
|
+
position: 0
|
|
9114
|
+
}, {
|
|
9115
|
+
color: "primary-950",
|
|
9116
|
+
position: 100
|
|
9117
|
+
}],
|
|
9118
|
+
foreground: {
|
|
9119
|
+
textColor: "onPrimary900",
|
|
9120
|
+
headingColor: "onPrimary900",
|
|
9121
|
+
linkColor: "onPrimary900",
|
|
9122
|
+
supportingColor: "onPrimary900"
|
|
9123
|
+
}
|
|
9124
|
+
},
|
|
9125
|
+
{
|
|
9126
|
+
id: "accent-glow",
|
|
9127
|
+
name: "Accent glow",
|
|
9128
|
+
description: "A soft top-centred glow using your accent palette",
|
|
9129
|
+
type: "radial",
|
|
9130
|
+
shape: "ellipse",
|
|
9131
|
+
position: "top center",
|
|
9132
|
+
stops: [{
|
|
9133
|
+
color: "accent-900",
|
|
9134
|
+
position: 0
|
|
9135
|
+
}, {
|
|
9136
|
+
color: "accent-950",
|
|
9137
|
+
position: 100
|
|
9138
|
+
}],
|
|
9139
|
+
foreground: {
|
|
9140
|
+
textColor: "onAccent900",
|
|
9141
|
+
headingColor: "onAccent900",
|
|
9142
|
+
linkColor: "onAccent900",
|
|
9143
|
+
supportingColor: "onAccent900"
|
|
9144
|
+
}
|
|
9145
|
+
},
|
|
9146
|
+
{
|
|
9147
|
+
id: "primary-secondary-accent",
|
|
9148
|
+
name: "Brand Trio",
|
|
9149
|
+
description: "All three brand colors in harmony",
|
|
9150
|
+
type: "linear",
|
|
9151
|
+
angle: 135,
|
|
9152
|
+
stops: [
|
|
9153
|
+
{
|
|
9154
|
+
color: "primary-500",
|
|
9155
|
+
position: 0
|
|
9156
|
+
},
|
|
9157
|
+
{
|
|
9158
|
+
color: "secondary-500",
|
|
9159
|
+
position: 50
|
|
9160
|
+
},
|
|
9161
|
+
{
|
|
9162
|
+
color: "accent-500",
|
|
9163
|
+
position: 100
|
|
9164
|
+
}
|
|
9165
|
+
]
|
|
9166
|
+
}
|
|
9167
|
+
].map((preset) => ({
|
|
9168
|
+
...preset,
|
|
9169
|
+
id: preset.id,
|
|
9170
|
+
stops: preset.stops
|
|
9171
|
+
}));
|
|
9172
|
+
const GRADIENT_PRESET_IDS = GRADIENT_PRESETS.map((preset) => preset.id);
|
|
9173
|
+
const gradientPresetIdSet = new Set(GRADIENT_PRESET_IDS);
|
|
9174
|
+
const gradientPresetById = Object.fromEntries(GRADIENT_PRESETS.map((preset) => [preset.id, preset]));
|
|
9175
|
+
function parseGradientPresetId(value) {
|
|
9176
|
+
if (typeof value !== "string") return null;
|
|
9177
|
+
const normalized = value.trim();
|
|
9178
|
+
if (!gradientPresetIdSet.has(normalized)) return null;
|
|
9179
|
+
return normalized;
|
|
9180
|
+
}
|
|
9181
|
+
function getGradientPreset(id) {
|
|
9182
|
+
return gradientPresetById[id];
|
|
9183
|
+
}
|
|
9184
|
+
//#endregion
|
|
9185
|
+
//#region ../theme-core/src/gradients/utils.ts
|
|
9186
|
+
/**
|
|
9187
|
+
* Convert a GradientConfig to a CSS gradient string
|
|
9188
|
+
*
|
|
9189
|
+
* @param config - The gradient configuration using theme tokens
|
|
9190
|
+
* @param tokens - Map of theme color tokens to hex values
|
|
9191
|
+
* @returns CSS gradient string (e.g., "linear-gradient(180deg, #3b82f6 0%, #f59e0b 100%)")
|
|
9192
|
+
*/
|
|
9193
|
+
function gradientToCss(config, tokens) {
|
|
9194
|
+
const stops = config.stops.map((stop) => {
|
|
9195
|
+
return `${tokens[stop.color] ?? "#000000"} ${stop.position}%`;
|
|
9196
|
+
}).join(", ");
|
|
9197
|
+
const type = config.type ?? "linear";
|
|
9198
|
+
if (type === "radial") {
|
|
9199
|
+
const position = config.position ?? "center";
|
|
9200
|
+
return `radial-gradient(${config.shape ?? "circle"} at ${position}, ${stops})`;
|
|
9201
|
+
}
|
|
9202
|
+
if (type === "conic") {
|
|
9203
|
+
const position = config.position ?? "center";
|
|
9204
|
+
return `conic-gradient(from ${config.angle ?? 0}deg at ${position}, ${stops})`;
|
|
9205
|
+
}
|
|
9206
|
+
return `linear-gradient(${config.angle ?? 180}deg, ${stops})`;
|
|
9207
|
+
}
|
|
8648
9208
|
//#endregion
|
|
8649
9209
|
//#region ../theme-core/src/site-styles/headerLooks.ts
|
|
8650
9210
|
function asHeaderLookId(value) {
|
|
@@ -8779,7 +9339,7 @@ const overlayLogoAccommodations = [
|
|
|
8779
9339
|
* optional nested styling fields that would otherwise leak from another Look.
|
|
8780
9340
|
*/
|
|
8781
9341
|
function baseHeader(theme) {
|
|
8782
|
-
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;
|
|
9342
|
+
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;
|
|
8783
9343
|
return {
|
|
8784
9344
|
...header,
|
|
8785
9345
|
navContainer: {
|
|
@@ -8928,6 +9488,17 @@ const headerStyleCatalog = defineExactCatalog()([
|
|
|
8928
9488
|
navTypography: "brand-caps",
|
|
8929
9489
|
moods: ["expressive"]
|
|
8930
9490
|
},
|
|
9491
|
+
{
|
|
9492
|
+
id: asHeaderStyleId("brand-capsule"),
|
|
9493
|
+
label: "Brand Capsule",
|
|
9494
|
+
description: "Solid brand chrome designed as a floating capsule, with quiet-caps nav, a soft pill active state, and an inverted CTA pill.",
|
|
9495
|
+
supportedLayoutIds: supportedLayouts(["classic"]),
|
|
9496
|
+
navInteraction: "pill-background",
|
|
9497
|
+
surface: "brand-solid",
|
|
9498
|
+
defaultDepth: "shadow",
|
|
9499
|
+
navTypography: "quiet-caps",
|
|
9500
|
+
moods: ["expressive", "professional"]
|
|
9501
|
+
},
|
|
8931
9502
|
{
|
|
8932
9503
|
id: asHeaderStyleId("serif-line"),
|
|
8933
9504
|
label: "Serif Line",
|
|
@@ -9021,6 +9592,7 @@ const headerStyleCompatibilityOrder = /* @__PURE__ */ new Map([
|
|
|
9021
9592
|
"brand-bar",
|
|
9022
9593
|
"brand-underline",
|
|
9023
9594
|
"brand-pill",
|
|
9595
|
+
"brand-capsule",
|
|
9024
9596
|
"serif-line",
|
|
9025
9597
|
"flat-tabs"
|
|
9026
9598
|
])],
|
|
@@ -9058,6 +9630,11 @@ headerStyleRepairChain([
|
|
|
9058
9630
|
"brand-pill",
|
|
9059
9631
|
"brand-bar",
|
|
9060
9632
|
"minimal"
|
|
9633
|
+
]), headerStyleRepairChain([
|
|
9634
|
+
"brand-capsule",
|
|
9635
|
+
"brand-pill",
|
|
9636
|
+
"brand-bar",
|
|
9637
|
+
"minimal"
|
|
9061
9638
|
]), headerStyleRepairChain([
|
|
9062
9639
|
"pill-nav",
|
|
9063
9640
|
"soft-bar",
|
|
@@ -10671,6 +11248,19 @@ z$1.object({
|
|
|
10671
11248
|
}).strict();
|
|
10672
11249
|
//#endregion
|
|
10673
11250
|
//#region ../theme-core/src/site-styles/runtimeCompiler.ts
|
|
11251
|
+
function defineSectionForegroundRuntimeTokens(input) {
|
|
11252
|
+
return {
|
|
11253
|
+
textColor: requireThemeColorToken(input.textColor),
|
|
11254
|
+
headingColor: requireThemeColorToken(input.headingColor),
|
|
11255
|
+
linkColor: requireThemeColorToken(input.linkColor),
|
|
11256
|
+
supportingColor: requireThemeColorToken(input.supportingColor)
|
|
11257
|
+
};
|
|
11258
|
+
}
|
|
11259
|
+
function requireThemeColorToken(value) {
|
|
11260
|
+
const token = parseThemeColorToken(value);
|
|
11261
|
+
if (!token) throw new Error(`Invalid section foreground Theme color token: ${String(value)}`);
|
|
11262
|
+
return token;
|
|
11263
|
+
}
|
|
10674
11264
|
function defineDesignRuntimeRules(rules) {
|
|
10675
11265
|
return rules;
|
|
10676
11266
|
}
|
|
@@ -10941,24 +11531,24 @@ const kirtanOrnateDesignRuntimeRules = defineDesignRuntimeRules({
|
|
|
10941
11531
|
type: "color",
|
|
10942
11532
|
color: "muted"
|
|
10943
11533
|
},
|
|
10944
|
-
foreground: {
|
|
11534
|
+
foreground: defineSectionForegroundRuntimeTokens({
|
|
10945
11535
|
textColor: "text",
|
|
10946
11536
|
headingColor: "primary",
|
|
10947
11537
|
linkColor: "primary",
|
|
10948
11538
|
supportingColor: "text"
|
|
10949
|
-
}
|
|
11539
|
+
})
|
|
10950
11540
|
},
|
|
10951
11541
|
"brand-depth-band": {
|
|
10952
11542
|
background: {
|
|
10953
11543
|
type: "color",
|
|
10954
11544
|
color: "primary-800"
|
|
10955
11545
|
},
|
|
10956
|
-
foreground: {
|
|
11546
|
+
foreground: defineSectionForegroundRuntimeTokens({
|
|
10957
11547
|
textColor: "text",
|
|
10958
11548
|
headingColor: "primary",
|
|
10959
11549
|
linkColor: "primary",
|
|
10960
11550
|
supportingColor: "text"
|
|
10961
|
-
}
|
|
11551
|
+
})
|
|
10962
11552
|
},
|
|
10963
11553
|
"hero-image": {
|
|
10964
11554
|
background: {
|
|
@@ -10966,12 +11556,32 @@ const kirtanOrnateDesignRuntimeRules = defineDesignRuntimeRules({
|
|
|
10966
11556
|
opacity: 1,
|
|
10967
11557
|
position: "center center"
|
|
10968
11558
|
},
|
|
10969
|
-
foreground: {
|
|
11559
|
+
foreground: defineSectionForegroundRuntimeTokens({
|
|
10970
11560
|
textColor: "text",
|
|
10971
11561
|
headingColor: "primary",
|
|
10972
11562
|
linkColor: "primary",
|
|
10973
11563
|
supportingColor: "text"
|
|
10974
|
-
}
|
|
11564
|
+
})
|
|
11565
|
+
}
|
|
11566
|
+
}
|
|
11567
|
+
});
|
|
11568
|
+
const primaryGlowGradientPresetId = parseGradientPresetId("primary-glow");
|
|
11569
|
+
if (!primaryGlowGradientPresetId) throw new Error("Expected primary-glow in the Theme Core gradient catalog");
|
|
11570
|
+
const fulcrumDesignRuntimeRules = defineDesignRuntimeRules({
|
|
11571
|
+
...defaultDesignRuntimeRules,
|
|
11572
|
+
sectionSurfaces: {
|
|
11573
|
+
...defaultDesignRuntimeRules.sectionSurfaces,
|
|
11574
|
+
"accent-band": {
|
|
11575
|
+
background: {
|
|
11576
|
+
type: "gradient",
|
|
11577
|
+
gradientPresetId: primaryGlowGradientPresetId
|
|
11578
|
+
},
|
|
11579
|
+
foreground: defineSectionForegroundRuntimeTokens({
|
|
11580
|
+
textColor: "primaryForeground",
|
|
11581
|
+
headingColor: "primaryForeground",
|
|
11582
|
+
linkColor: "primaryForeground",
|
|
11583
|
+
supportingColor: "primaryForeground"
|
|
11584
|
+
})
|
|
10975
11585
|
}
|
|
10976
11586
|
}
|
|
10977
11587
|
});
|
|
@@ -11295,6 +11905,7 @@ const curatedSiteStyles = [
|
|
|
11295
11905
|
],
|
|
11296
11906
|
buttonPersonalityChoices: [
|
|
11297
11907
|
buttonChoice("soft-pill"),
|
|
11908
|
+
buttonChoice("two-tone-pill"),
|
|
11298
11909
|
buttonChoice("pebble"),
|
|
11299
11910
|
buttonChoice("editorial-link"),
|
|
11300
11911
|
buttonChoice("brushed-wash")
|
|
@@ -12358,6 +12969,8 @@ const curatedSiteStyles = [
|
|
|
12358
12969
|
},
|
|
12359
12970
|
compositionBudget: quietBudget,
|
|
12360
12971
|
typography: fulcrumTypography,
|
|
12972
|
+
designRuntimeRules: fulcrumDesignRuntimeRules,
|
|
12973
|
+
recommendedAppearancePresetIds: ["cta-accent-band"],
|
|
12361
12974
|
themeOverrides: {
|
|
12362
12975
|
shadow: { colorToken: "primary" },
|
|
12363
12976
|
accordions: {
|
|
@@ -12474,6 +13087,7 @@ const curatedSiteStyles = [
|
|
|
12474
13087
|
],
|
|
12475
13088
|
buttonPersonalityChoices: [
|
|
12476
13089
|
buttonChoice("quiet-arrow"),
|
|
13090
|
+
buttonChoice("two-tone-pill"),
|
|
12477
13091
|
buttonChoice("flat-ink"),
|
|
12478
13092
|
buttonChoice("editorial-link")
|
|
12479
13093
|
],
|
|
@@ -12729,213 +13343,6 @@ z$1.object({
|
|
|
12729
13343
|
spacing: z$1.enum(themeTokenRecipeOptions.spacing),
|
|
12730
13344
|
motion: z$1.enum(themeTokenRecipeOptions.motion)
|
|
12731
13345
|
});
|
|
12732
|
-
//#endregion
|
|
12733
|
-
//#region ../theme-core/src/gradients/presets.ts
|
|
12734
|
-
/**
|
|
12735
|
-
* Curated library of gradient presets
|
|
12736
|
-
* All gradients use theme color tokens, so they adapt to the site's palette
|
|
12737
|
-
*/
|
|
12738
|
-
const GRADIENT_PRESETS = [
|
|
12739
|
-
{
|
|
12740
|
-
id: "primary-secondary",
|
|
12741
|
-
name: "Primary to Secondary",
|
|
12742
|
-
description: "Blend your primary and secondary brand colors",
|
|
12743
|
-
type: "linear",
|
|
12744
|
-
angle: 135,
|
|
12745
|
-
stops: [{
|
|
12746
|
-
color: "primary-500",
|
|
12747
|
-
position: 0
|
|
12748
|
-
}, {
|
|
12749
|
-
color: "secondary-500",
|
|
12750
|
-
position: 100
|
|
12751
|
-
}]
|
|
12752
|
-
},
|
|
12753
|
-
{
|
|
12754
|
-
id: "primary-accent",
|
|
12755
|
-
name: "Primary to Accent",
|
|
12756
|
-
description: "Energetic gradient from primary to accent",
|
|
12757
|
-
type: "linear",
|
|
12758
|
-
angle: 135,
|
|
12759
|
-
stops: [{
|
|
12760
|
-
color: "primary-500",
|
|
12761
|
-
position: 0
|
|
12762
|
-
}, {
|
|
12763
|
-
color: "accent-500",
|
|
12764
|
-
position: 100
|
|
12765
|
-
}]
|
|
12766
|
-
},
|
|
12767
|
-
{
|
|
12768
|
-
id: "secondary-accent",
|
|
12769
|
-
name: "Secondary to Accent",
|
|
12770
|
-
description: "Vibrant secondary to accent blend",
|
|
12771
|
-
type: "linear",
|
|
12772
|
-
angle: 135,
|
|
12773
|
-
stops: [{
|
|
12774
|
-
color: "secondary-500",
|
|
12775
|
-
position: 0
|
|
12776
|
-
}, {
|
|
12777
|
-
color: "accent-500",
|
|
12778
|
-
position: 100
|
|
12779
|
-
}]
|
|
12780
|
-
},
|
|
12781
|
-
{
|
|
12782
|
-
id: "primary-light-dark",
|
|
12783
|
-
name: "Primary Light to Dark",
|
|
12784
|
-
description: "Subtle primary color fade",
|
|
12785
|
-
type: "linear",
|
|
12786
|
-
angle: 180,
|
|
12787
|
-
stops: [{
|
|
12788
|
-
color: "primary-500",
|
|
12789
|
-
position: 0
|
|
12790
|
-
}, {
|
|
12791
|
-
color: "primary-900",
|
|
12792
|
-
position: 100
|
|
12793
|
-
}]
|
|
12794
|
-
},
|
|
12795
|
-
{
|
|
12796
|
-
id: "primary-dark-light",
|
|
12797
|
-
name: "Primary Dark to Light",
|
|
12798
|
-
description: "Reverse primary fade",
|
|
12799
|
-
type: "linear",
|
|
12800
|
-
angle: 180,
|
|
12801
|
-
stops: [{
|
|
12802
|
-
color: "primary-900",
|
|
12803
|
-
position: 0
|
|
12804
|
-
}, {
|
|
12805
|
-
color: "primary-50",
|
|
12806
|
-
position: 100
|
|
12807
|
-
}]
|
|
12808
|
-
},
|
|
12809
|
-
{
|
|
12810
|
-
id: "secondary-light-dark",
|
|
12811
|
-
name: "Secondary Light to Dark",
|
|
12812
|
-
description: "Subtle secondary color fade",
|
|
12813
|
-
type: "linear",
|
|
12814
|
-
angle: 180,
|
|
12815
|
-
stops: [{
|
|
12816
|
-
color: "secondary-500",
|
|
12817
|
-
position: 0
|
|
12818
|
-
}, {
|
|
12819
|
-
color: "secondary-900",
|
|
12820
|
-
position: 100
|
|
12821
|
-
}]
|
|
12822
|
-
},
|
|
12823
|
-
{
|
|
12824
|
-
id: "accent-light-dark",
|
|
12825
|
-
name: "Accent Light to Dark",
|
|
12826
|
-
description: "Accent color depth fade",
|
|
12827
|
-
type: "linear",
|
|
12828
|
-
angle: 180,
|
|
12829
|
-
stops: [{
|
|
12830
|
-
color: "accent-500",
|
|
12831
|
-
position: 0
|
|
12832
|
-
}, {
|
|
12833
|
-
color: "accent-900",
|
|
12834
|
-
position: 100
|
|
12835
|
-
}]
|
|
12836
|
-
},
|
|
12837
|
-
{
|
|
12838
|
-
id: "background-surface",
|
|
12839
|
-
name: "Background to Surface",
|
|
12840
|
-
description: "Subtle depth using base colors",
|
|
12841
|
-
type: "linear",
|
|
12842
|
-
angle: 180,
|
|
12843
|
-
stops: [{
|
|
12844
|
-
color: "background",
|
|
12845
|
-
position: 0
|
|
12846
|
-
}, {
|
|
12847
|
-
color: "surface",
|
|
12848
|
-
position: 100
|
|
12849
|
-
}]
|
|
12850
|
-
},
|
|
12851
|
-
{
|
|
12852
|
-
id: "neutral-fade",
|
|
12853
|
-
name: "Neutral Gradient",
|
|
12854
|
-
description: "Elegant neutral color fade",
|
|
12855
|
-
type: "linear",
|
|
12856
|
-
angle: 180,
|
|
12857
|
-
stops: [{
|
|
12858
|
-
color: "neutral-900",
|
|
12859
|
-
position: 0
|
|
12860
|
-
}, {
|
|
12861
|
-
color: "neutral-50",
|
|
12862
|
-
position: 100
|
|
12863
|
-
}]
|
|
12864
|
-
},
|
|
12865
|
-
{
|
|
12866
|
-
id: "primary-radial",
|
|
12867
|
-
name: "Primary Spotlight",
|
|
12868
|
-
description: "Radial primary gradient from center",
|
|
12869
|
-
type: "radial",
|
|
12870
|
-
position: "center",
|
|
12871
|
-
stops: [{
|
|
12872
|
-
color: "primary-500",
|
|
12873
|
-
position: 0
|
|
12874
|
-
}, {
|
|
12875
|
-
color: "primary-900",
|
|
12876
|
-
position: 100
|
|
12877
|
-
}]
|
|
12878
|
-
},
|
|
12879
|
-
{
|
|
12880
|
-
id: "accent-radial",
|
|
12881
|
-
name: "Accent Spotlight",
|
|
12882
|
-
description: "Radial accent gradient from center",
|
|
12883
|
-
type: "radial",
|
|
12884
|
-
position: "center",
|
|
12885
|
-
stops: [{
|
|
12886
|
-
color: "accent-500",
|
|
12887
|
-
position: 0
|
|
12888
|
-
}, {
|
|
12889
|
-
color: "accent-900",
|
|
12890
|
-
position: 100
|
|
12891
|
-
}]
|
|
12892
|
-
},
|
|
12893
|
-
{
|
|
12894
|
-
id: "primary-secondary-accent",
|
|
12895
|
-
name: "Brand Trio",
|
|
12896
|
-
description: "All three brand colors in harmony",
|
|
12897
|
-
type: "linear",
|
|
12898
|
-
angle: 135,
|
|
12899
|
-
stops: [
|
|
12900
|
-
{
|
|
12901
|
-
color: "primary-500",
|
|
12902
|
-
position: 0
|
|
12903
|
-
},
|
|
12904
|
-
{
|
|
12905
|
-
color: "secondary-500",
|
|
12906
|
-
position: 50
|
|
12907
|
-
},
|
|
12908
|
-
{
|
|
12909
|
-
color: "accent-500",
|
|
12910
|
-
position: 100
|
|
12911
|
-
}
|
|
12912
|
-
]
|
|
12913
|
-
}
|
|
12914
|
-
];
|
|
12915
|
-
//#endregion
|
|
12916
|
-
//#region ../theme-core/src/gradients/utils.ts
|
|
12917
|
-
/**
|
|
12918
|
-
* Convert a GradientConfig to a CSS gradient string
|
|
12919
|
-
*
|
|
12920
|
-
* @param config - The gradient configuration using theme tokens
|
|
12921
|
-
* @param tokens - Map of theme color tokens to hex values
|
|
12922
|
-
* @returns CSS gradient string (e.g., "linear-gradient(180deg, #3b82f6 0%, #f59e0b 100%)")
|
|
12923
|
-
*/
|
|
12924
|
-
function gradientToCss(config, tokens) {
|
|
12925
|
-
const stops = config.stops.map((stop) => {
|
|
12926
|
-
return `${tokens[stop.color] ?? "#000000"} ${stop.position}%`;
|
|
12927
|
-
}).join(", ");
|
|
12928
|
-
const type = config.type ?? "linear";
|
|
12929
|
-
if (type === "radial") {
|
|
12930
|
-
const position = config.position ?? "center";
|
|
12931
|
-
return `radial-gradient(${config.shape ?? "circle"} at ${position}, ${stops})`;
|
|
12932
|
-
}
|
|
12933
|
-
if (type === "conic") {
|
|
12934
|
-
const position = config.position ?? "center";
|
|
12935
|
-
return `conic-gradient(from ${config.angle ?? 0}deg at ${position}, ${stops})`;
|
|
12936
|
-
}
|
|
12937
|
-
return `linear-gradient(${config.angle ?? 180}deg, ${stops})`;
|
|
12938
|
-
}
|
|
12939
13346
|
const BREAKPOINT_LG = 1024;
|
|
12940
13347
|
const BREAKPOINT_XL = 1280;
|
|
12941
13348
|
const BREAKPOINT_LG_DOWN = BREAKPOINT_LG - 1;
|
|
@@ -13902,6 +14309,20 @@ const blockCategoryEnum = z$1.enum([
|
|
|
13902
14309
|
"layout",
|
|
13903
14310
|
"interactive"
|
|
13904
14311
|
]);
|
|
14312
|
+
const blockContentSourceSchema = z$1.object({
|
|
14313
|
+
kind: z$1.enum([
|
|
14314
|
+
"inline",
|
|
14315
|
+
"entries",
|
|
14316
|
+
"mixed"
|
|
14317
|
+
]),
|
|
14318
|
+
contentType: z$1.string().min(1).optional()
|
|
14319
|
+
}).superRefine((value, ctx) => {
|
|
14320
|
+
if (value.kind === "inline" && value.contentType) ctx.addIssue({
|
|
14321
|
+
code: z$1.ZodIssueCode.custom,
|
|
14322
|
+
path: ["contentType"],
|
|
14323
|
+
message: "contentType is not allowed when contentSource.kind is \"inline\""
|
|
14324
|
+
});
|
|
14325
|
+
});
|
|
13905
14326
|
z$1.object({
|
|
13906
14327
|
name: z$1.string().min(1),
|
|
13907
14328
|
version: z$1.string().min(1),
|
|
@@ -13932,6 +14353,12 @@ z$1.object({
|
|
|
13932
14353
|
}).optional()).optional(),
|
|
13933
14354
|
category: blockCategoryEnum.optional(),
|
|
13934
14355
|
contentTypes: z$1.array(z$1.string()).optional(),
|
|
14356
|
+
/**
|
|
14357
|
+
* Explicit content-source classification (inline / entries / mixed). Optional at the
|
|
14358
|
+
* schema level for backward compatibility with SDK-defined custom blocks, but every
|
|
14359
|
+
* registered SYSTEM block must declare it (enforced by a registry-wide test).
|
|
14360
|
+
*/
|
|
14361
|
+
contentSource: blockContentSourceSchema.optional(),
|
|
13935
14362
|
tags: z$1.array(z$1.string()).optional(),
|
|
13936
14363
|
icon: z$1.string().optional()
|
|
13937
14364
|
});
|
|
@@ -14908,6 +15335,7 @@ function devValidate(node) {
|
|
|
14908
15335
|
}
|
|
14909
15336
|
//#endregion
|
|
14910
15337
|
//#region ../blocks/src/system/node/fragments/backgroundLayer.ts
|
|
15338
|
+
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";
|
|
14911
15339
|
/**
|
|
14912
15340
|
* Creates background layer nodes for rendering backgrounds from field data.
|
|
14913
15341
|
*
|
|
@@ -14973,6 +15401,34 @@ function backgroundLayer(path, options = {}) {
|
|
|
14973
15401
|
];
|
|
14974
15402
|
}
|
|
14975
15403
|
/**
|
|
15404
|
+
* Wrap decorative background layers in their own clipping frame.
|
|
15405
|
+
*
|
|
15406
|
+
* Foreground content remains outside this frame, so editor outlines, focus
|
|
15407
|
+
* rings, and floating controls are never clipped by a visual background.
|
|
15408
|
+
* Backgrounds that explicitly opt into overflow keep that behavior within
|
|
15409
|
+
* the decorative layer rather than changing the content root.
|
|
15410
|
+
*/
|
|
15411
|
+
function backgroundFrame(path, options = {}) {
|
|
15412
|
+
const { leadingNodes = [], ...layerOptions } = options;
|
|
15413
|
+
const framedLayerOptions = {
|
|
15414
|
+
...layerOptions,
|
|
15415
|
+
styleClassName: layerOptions.styleClassName ?? "background-style rb-absolute rb-inset-0 rb-z-0 rb-h-full rb-w-full rb-pointer-events-none",
|
|
15416
|
+
imageClassName: layerOptions.imageClassName ?? "rb-absolute rb-z-0",
|
|
15417
|
+
overlayClassName: layerOptions.overlayClassName ?? "background-overlay rb-absolute rb-inset-0 rb-z-0 rb-h-full rb-w-full rb-pointer-events-none"
|
|
15418
|
+
};
|
|
15419
|
+
return el("div", {
|
|
15420
|
+
className: { $bind: {
|
|
15421
|
+
from: path,
|
|
15422
|
+
transforms: [{
|
|
15423
|
+
id: "background.resolveFrameClassName",
|
|
15424
|
+
options: { baseClass: BACKGROUND_FRAME_BASE_CLASS }
|
|
15425
|
+
}],
|
|
15426
|
+
fallback: `${BACKGROUND_FRAME_BASE_CLASS} rb-overflow-hidden`
|
|
15427
|
+
} },
|
|
15428
|
+
style: { borderRadius: "inherit" }
|
|
15429
|
+
}, [...leadingNodes, ...backgroundLayer(path, framedLayerOptions)]);
|
|
15430
|
+
}
|
|
15431
|
+
/**
|
|
14976
15432
|
* Creates a media node for rendering background image/video media with conditional rendering.
|
|
14977
15433
|
*
|
|
14978
15434
|
* This helper creates a media element that:
|
|
@@ -15134,8 +15590,8 @@ function sectionContainer(children, opts) {
|
|
|
15134
15590
|
* - content
|
|
15135
15591
|
*/
|
|
15136
15592
|
function styledContainer(config) {
|
|
15137
|
-
const { children, rootType = "div", rootProps, bindFrom = "_containerStyles", baseClassName = "rb-relative rb-isolate rb-overflow-
|
|
15138
|
-
const
|
|
15593
|
+
const { children, rootType = "div", rootProps, bindFrom = "_containerStyles", baseClassName = "rb-relative rb-isolate rb-overflow-visible", imageClassName = "rb-absolute rb-z-0", constrainWidth = true } = config;
|
|
15594
|
+
const backgroundNode = backgroundFrame(`${bindFrom}.background`, { imageClassName });
|
|
15139
15595
|
const childrenArray = Array.isArray(children) ? children : [children];
|
|
15140
15596
|
const { className: _ignoredClassName, style: _ignoredStyle, ...safeRootProps } = rootProps ?? {};
|
|
15141
15597
|
return el(rootType, {
|
|
@@ -15158,7 +15614,7 @@ function styledContainer(config) {
|
|
|
15158
15614
|
}],
|
|
15159
15615
|
fallback: constrainWidth ? `${baseClassName} rb-container` : baseClassName
|
|
15160
15616
|
} }
|
|
15161
|
-
}, [
|
|
15617
|
+
}, [backgroundNode, ...childrenArray]);
|
|
15162
15618
|
}
|
|
15163
15619
|
//#endregion
|
|
15164
15620
|
//#region ../blocks/src/system/spacing.ts
|
|
@@ -15291,7 +15747,7 @@ const DEFAULT_SECTION_SPACING = "medium";
|
|
|
15291
15747
|
* - Creating a section wrapper with background theme
|
|
15292
15748
|
* - Adding background color/gradient/image layers
|
|
15293
15749
|
* - Binding className to section styles with transform
|
|
15294
|
-
* -
|
|
15750
|
+
* - Keeping foreground overflow visible while decorative backgrounds clip independently
|
|
15295
15751
|
* - Wrapping content children
|
|
15296
15752
|
*
|
|
15297
15753
|
* Use this helper to eliminate 25+ lines of boilerplate section setup code.
|
|
@@ -15327,8 +15783,8 @@ const DEFAULT_SECTION_SPACING = "medium";
|
|
|
15327
15783
|
* });
|
|
15328
15784
|
*/
|
|
15329
15785
|
function styledSection(config) {
|
|
15330
|
-
const { children, baseClass = "rb-px-6", spacing = DEFAULT_SECTION_SPACING, background = "background", bindFrom = "_sectionStyles", imageClassName = "rb-absolute rb-z-
|
|
15331
|
-
const
|
|
15786
|
+
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;
|
|
15787
|
+
const renderedBackgroundNode = backgroundFrame(`${bindFrom}.background`, {
|
|
15332
15788
|
imageClassName,
|
|
15333
15789
|
fallbackToken: background,
|
|
15334
15790
|
omitImageLayer: !renderBackgroundImage,
|
|
@@ -15351,13 +15807,8 @@ function styledSection(config) {
|
|
|
15351
15807
|
fullWidthPath
|
|
15352
15808
|
}
|
|
15353
15809
|
}]
|
|
15354
|
-
} },
|
|
15355
|
-
allowOverflow: allowOverflow ? true : { $bind: {
|
|
15356
|
-
from: `${bindFrom}.background`,
|
|
15357
|
-
transforms: [{ id: "background.resolveAllowOverflow" }],
|
|
15358
|
-
fallback: false
|
|
15359
15810
|
} }
|
|
15360
|
-
}, [
|
|
15811
|
+
}, [renderedBackgroundNode, ...childrenArray]);
|
|
15361
15812
|
}
|
|
15362
15813
|
//#endregion
|
|
15363
15814
|
//#region ../blocks/src/system/node/fragments/ctaButton.ts
|
|
@@ -16214,9 +16665,12 @@ function responsiveTwoColumn({ image, text, ratioFrom, imagePositionFrom, gapCla
|
|
|
16214
16665
|
//#endregion
|
|
16215
16666
|
//#region ../blocks/src/system/node/fragments/styledCard.ts
|
|
16216
16667
|
function styledCard(children, opts, ...mods) {
|
|
16217
|
-
const baseClassName = opts.baseClassName ?? "rb-relative rb-isolate rb-overflow-
|
|
16218
|
-
const defaultBackgroundLayer = el("div", {
|
|
16219
|
-
|
|
16668
|
+
const baseClassName = opts.baseClassName ?? "rb-relative rb-isolate rb-overflow-visible rb-border";
|
|
16669
|
+
const defaultBackgroundLayer = el("div", {
|
|
16670
|
+
className: "rb-absolute rb-inset-0 rb-z-neg-10 rb-h-full rb-w-full rb-pointer-events-none rb-bg-surface",
|
|
16671
|
+
style: { borderRadius: "inherit" }
|
|
16672
|
+
});
|
|
16673
|
+
const backgroundNode = backgroundFrame(opts.backgroundFrom);
|
|
16220
16674
|
const style = {
|
|
16221
16675
|
...opts.style ?? {},
|
|
16222
16676
|
borderColor: { $bind: {
|
|
@@ -16243,7 +16697,7 @@ function styledCard(children, opts, ...mods) {
|
|
|
16243
16697
|
...style ? { style } : {}
|
|
16244
16698
|
}, [
|
|
16245
16699
|
defaultBackgroundLayer,
|
|
16246
|
-
|
|
16700
|
+
backgroundNode,
|
|
16247
16701
|
...children
|
|
16248
16702
|
], ...mods);
|
|
16249
16703
|
}
|
|
@@ -17023,9 +17477,15 @@ function createButtonGroup(options = {}) {
|
|
|
17023
17477
|
//#endregion
|
|
17024
17478
|
//#region ../blocks/src/system/fields/ctas.ts
|
|
17025
17479
|
function createCtasRepeater(options = {}) {
|
|
17026
|
-
const { id = "ctas", label = "Calls to action", itemLabel = "CTA", minItems = 0, maxItems, button } = options;
|
|
17480
|
+
const { id = "ctas", label = "Calls to action", itemLabel = "CTA", minItems = 0, maxItems, button, defaultValue } = options;
|
|
17481
|
+
const fieldId = id;
|
|
17482
|
+
const buttonField = createButtonGroup({
|
|
17483
|
+
showGroupLabel: false,
|
|
17484
|
+
...button ?? {},
|
|
17485
|
+
flattenInRepeater: true
|
|
17486
|
+
});
|
|
17027
17487
|
return {
|
|
17028
|
-
id,
|
|
17488
|
+
id: fieldId,
|
|
17029
17489
|
type: "repeater",
|
|
17030
17490
|
label,
|
|
17031
17491
|
itemLabel,
|
|
@@ -17034,11 +17494,8 @@ function createCtasRepeater(options = {}) {
|
|
|
17034
17494
|
maxItems,
|
|
17035
17495
|
required: false,
|
|
17036
17496
|
allowConversion: true,
|
|
17037
|
-
|
|
17038
|
-
|
|
17039
|
-
...button ?? {},
|
|
17040
|
-
flattenInRepeater: true
|
|
17041
|
-
})] }
|
|
17497
|
+
...defaultValue !== void 0 ? { defaultValue: [...defaultValue] } : {},
|
|
17498
|
+
schema: { fields: [buttonField] }
|
|
17042
17499
|
};
|
|
17043
17500
|
}
|
|
17044
17501
|
//#endregion
|
|
@@ -17088,6 +17545,7 @@ const heroCtaRowFragment = defineFragment({
|
|
|
17088
17545
|
label: "Calls to action",
|
|
17089
17546
|
itemLabel: "CTA",
|
|
17090
17547
|
maxItems: 3,
|
|
17548
|
+
defaultValue: [],
|
|
17091
17549
|
button: {
|
|
17092
17550
|
variants: [
|
|
17093
17551
|
{
|
|
@@ -17155,7 +17613,7 @@ const ctaCopyFragment = defineFragment({
|
|
|
17155
17613
|
eyebrowPath: "content.eyebrow",
|
|
17156
17614
|
titlePath: "content.title",
|
|
17157
17615
|
className: "cta-heading"
|
|
17158
|
-
}), richText({ className: "cta-content rb-prose rb-mx-auto rb-max-w-none" }, when("content
|
|
17616
|
+
}), richText({ className: "cta-content rb-prose rb-mx-auto rb-max-w-none" }, when("content"), bind("content"))]
|
|
17159
17617
|
});
|
|
17160
17618
|
//#endregion
|
|
17161
17619
|
//#region ../blocks/src/system/fragments/library/testimonialsHeading.ts
|
|
@@ -17252,7 +17710,7 @@ function buildTestimonialCard(...mods) {
|
|
|
17252
17710
|
}, 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())])], {
|
|
17253
17711
|
stylesFrom: "content._cardStyles",
|
|
17254
17712
|
backgroundFrom: "content._cardStyles.background",
|
|
17255
|
-
baseClassName: "rb-testimonial-card rb-relative rb-isolate rb-flex rb-h-full rb-flex-col rb-overflow-
|
|
17713
|
+
baseClassName: "rb-testimonial-card rb-relative rb-isolate rb-flex rb-h-full rb-flex-col rb-overflow-visible rb-p-8"
|
|
17256
17714
|
}, ...mods);
|
|
17257
17715
|
}
|
|
17258
17716
|
/**
|
|
@@ -17724,39 +18182,6 @@ const formEmbedFragment = defineFragment({
|
|
|
17724
18182
|
}
|
|
17725
18183
|
});
|
|
17726
18184
|
//#endregion
|
|
17727
|
-
//#region ../blocks/src/system/fragments/library/footerBottomText.ts
|
|
17728
|
-
const footerBottomTextFragment = defineFragment({
|
|
17729
|
-
id: "footerBottomText",
|
|
17730
|
-
title: "Footer Text",
|
|
17731
|
-
description: "Rich text content for the main footer body and optional bottom bar.",
|
|
17732
|
-
fields: [{
|
|
17733
|
-
id: "bodyText",
|
|
17734
|
-
type: "richText",
|
|
17735
|
-
label: "Body text",
|
|
17736
|
-
description: "Appears in the main footer area.",
|
|
17737
|
-
ui: { variant: "limited" }
|
|
17738
|
-
}, {
|
|
17739
|
-
id: "bottomText",
|
|
17740
|
-
type: "richText",
|
|
17741
|
-
label: "Bottom bar text",
|
|
17742
|
-
description: "Appears in the optional footer bottom bar.",
|
|
17743
|
-
ui: { variant: "limited" }
|
|
17744
|
-
}],
|
|
17745
|
-
layout: [richText({
|
|
17746
|
-
className: "rb-prose rb-prose-sm rb-mx-auto rb-max-w-3xl rb-text-center",
|
|
17747
|
-
style: textColorStyle("text/80")
|
|
17748
|
-
}, when("bodyText"), bind("bodyText", { transforms: [{
|
|
17749
|
-
id: "content.interpolateRichTextTokens",
|
|
17750
|
-
options: { tokens: ["year", "site_name"] }
|
|
17751
|
-
}] })), richText({
|
|
17752
|
-
className: "rb-prose rb-prose-sm rb-mx-auto rb-max-w-3xl rb-text-center",
|
|
17753
|
-
style: textColorStyle("text/80")
|
|
17754
|
-
}, when("bottomText"), bind("bottomText", { transforms: [{
|
|
17755
|
-
id: "content.interpolateRichTextTokens",
|
|
17756
|
-
options: { tokens: ["year", "site_name"] }
|
|
17757
|
-
}] }))]
|
|
17758
|
-
});
|
|
17759
|
-
//#endregion
|
|
17760
18185
|
//#region ../blocks/src/system/fragments/library/singleButton.ts
|
|
17761
18186
|
const singleButtonFragment = defineFragment({
|
|
17762
18187
|
id: "singleButton",
|
|
@@ -17929,7 +18354,7 @@ function createFaqAccordionLayout(options = {}) {
|
|
|
17929
18354
|
options: {
|
|
17930
18355
|
axis: "all",
|
|
17931
18356
|
includeSpacing: false,
|
|
17932
|
-
baseClass: "rb-faq-item rb-relative rb-isolate rb-overflow-
|
|
18357
|
+
baseClass: "rb-faq-item rb-relative rb-isolate rb-overflow-visible"
|
|
17933
18358
|
}
|
|
17934
18359
|
}]
|
|
17935
18360
|
},
|
|
@@ -18920,6 +19345,7 @@ function createBlockManifest(config) {
|
|
|
18920
19345
|
previewCustomize: config.previewCustomize,
|
|
18921
19346
|
category: config.category,
|
|
18922
19347
|
contentTypes: config.contentTypes ? [...config.contentTypes] : void 0,
|
|
19348
|
+
contentSource: config.contentSource,
|
|
18923
19349
|
tags: config.tags ? [...config.tags] : [],
|
|
18924
19350
|
icon: config.icon ?? "Box",
|
|
18925
19351
|
layout,
|
|
@@ -19053,7 +19479,6 @@ function splitLayoutWith(children) {
|
|
|
19053
19479
|
}
|
|
19054
19480
|
}),
|
|
19055
19481
|
renderBackgroundImage: false,
|
|
19056
|
-
allowOverflow: true,
|
|
19057
19482
|
baseClass: ""
|
|
19058
19483
|
});
|
|
19059
19484
|
}
|
|
@@ -19066,6 +19491,7 @@ const heroBlockDefinition = { manifest: createBlockManifest({
|
|
|
19066
19491
|
title: "Hero",
|
|
19067
19492
|
titleSource: "headline",
|
|
19068
19493
|
category: "layout",
|
|
19494
|
+
contentSource: { kind: "inline" },
|
|
19069
19495
|
includeContainerStyles: true,
|
|
19070
19496
|
promotedFields: ["_sectionStyles.background.image"],
|
|
19071
19497
|
fragments: [
|
|
@@ -19339,6 +19765,7 @@ const introBlockDefinition = { manifest: createBlockManifest({
|
|
|
19339
19765
|
id: "block.intro",
|
|
19340
19766
|
title: "Intro",
|
|
19341
19767
|
category: "layout",
|
|
19768
|
+
contentSource: { kind: "inline" },
|
|
19342
19769
|
includeContainerStyles: true,
|
|
19343
19770
|
titleSource: "title",
|
|
19344
19771
|
previewCustomize: { quickFieldPriority: [
|
|
@@ -19524,6 +19951,7 @@ const bodyTextBlockDefinition = { manifest: createBlockManifest({
|
|
|
19524
19951
|
title: "Body Text",
|
|
19525
19952
|
titleSource: "heading",
|
|
19526
19953
|
category: "content",
|
|
19954
|
+
contentSource: { kind: "inline" },
|
|
19527
19955
|
fragments: [{
|
|
19528
19956
|
fragment: bodyCopyFragment,
|
|
19529
19957
|
fieldPriority: 0
|
|
@@ -19580,6 +20008,10 @@ const blogPostBlockDefinition = {
|
|
|
19580
20008
|
description: "Highlights a single blog post with title, image, and excerpt.",
|
|
19581
20009
|
category: "blog",
|
|
19582
20010
|
contentTypes: ["post"],
|
|
20011
|
+
contentSource: {
|
|
20012
|
+
kind: "entries",
|
|
20013
|
+
contentType: "post"
|
|
20014
|
+
},
|
|
19583
20015
|
tags: [
|
|
19584
20016
|
"blog",
|
|
19585
20017
|
"post",
|
|
@@ -19681,7 +20113,7 @@ function postCard(children, ...mods) {
|
|
|
19681
20113
|
return styledCard(children, {
|
|
19682
20114
|
stylesFrom: "content._cardStyles",
|
|
19683
20115
|
backgroundFrom: "content._cardStyles.background",
|
|
19684
|
-
baseClassName: "rb-relative rb-isolate rb-overflow-
|
|
20116
|
+
baseClassName: "rb-relative rb-isolate rb-overflow-visible rb-border rb-flex rb-flex-col rb-h-full"
|
|
19685
20117
|
}, ...mods);
|
|
19686
20118
|
}
|
|
19687
20119
|
const gridPostCard = postCard([postImageLink("rb-h-48 rb-w-full rb-object-cover rb-transition-transform rb-hover-scale-105", {
|
|
@@ -19717,7 +20149,7 @@ const stackPostCard = styledCard([inline({
|
|
|
19717
20149
|
])])], {
|
|
19718
20150
|
stylesFrom: "content._cardStyles",
|
|
19719
20151
|
backgroundFrom: "content._cardStyles.background",
|
|
19720
|
-
baseClassName: "rb-relative rb-isolate rb-overflow-
|
|
20152
|
+
baseClassName: "rb-relative rb-isolate rb-overflow-visible rb-border"
|
|
19721
20153
|
}, repeat("data.posts", "post"));
|
|
19722
20154
|
const emptyState$2 = {
|
|
19723
20155
|
...styledCard([text({
|
|
@@ -19726,7 +20158,7 @@ const emptyState$2 = {
|
|
|
19726
20158
|
}, bind("content.emptyMessage", { fallback: "No posts published yet." }))], {
|
|
19727
20159
|
stylesFrom: "content._cardStyles",
|
|
19728
20160
|
backgroundFrom: "content._cardStyles.background",
|
|
19729
|
-
baseClassName: "rb-relative rb-isolate rb-overflow-
|
|
20161
|
+
baseClassName: "rb-relative rb-isolate rb-overflow-visible rb-border rb-border-dashed rb-p-8 rb-text-center"
|
|
19730
20162
|
}),
|
|
19731
20163
|
$when: {
|
|
19732
20164
|
when: { from: "data.posts[0]" },
|
|
@@ -19736,7 +20168,7 @@ const emptyState$2 = {
|
|
|
19736
20168
|
function blogListingShell(children) {
|
|
19737
20169
|
return styledSection({
|
|
19738
20170
|
children: styledContainer({
|
|
19739
|
-
baseClassName: "rb-relative rb-isolate rb-overflow-
|
|
20171
|
+
baseClassName: "rb-relative rb-isolate rb-overflow-visible",
|
|
19740
20172
|
children
|
|
19741
20173
|
}),
|
|
19742
20174
|
baseClass: ""
|
|
@@ -19877,6 +20309,10 @@ const blogListingManifest = createBlockManifest({
|
|
|
19877
20309
|
],
|
|
19878
20310
|
description: "Display a collection of blog posts in grid or stack layout.",
|
|
19879
20311
|
contentTypes: ["post"],
|
|
20312
|
+
contentSource: {
|
|
20313
|
+
kind: "entries",
|
|
20314
|
+
contentType: "post"
|
|
20315
|
+
},
|
|
19880
20316
|
tags: [
|
|
19881
20317
|
"blog",
|
|
19882
20318
|
"posts",
|
|
@@ -19919,6 +20355,7 @@ const ctaFullBlockDefinition = { manifest: createBlockManifest({
|
|
|
19919
20355
|
id: "block.cta-full",
|
|
19920
20356
|
title: "Full-width CTA",
|
|
19921
20357
|
category: "marketing",
|
|
20358
|
+
contentSource: { kind: "inline" },
|
|
19922
20359
|
fragments: [{
|
|
19923
20360
|
fragment: ctaCopyFragment,
|
|
19924
20361
|
fieldPriority: 0
|
|
@@ -19952,6 +20389,7 @@ const singleButtonBlockDefinition = { manifest: createBlockManifest({
|
|
|
19952
20389
|
id: "block.single-button",
|
|
19953
20390
|
title: "Single Button",
|
|
19954
20391
|
category: "marketing",
|
|
20392
|
+
contentSource: { kind: "inline" },
|
|
19955
20393
|
fragments: [{
|
|
19956
20394
|
fragment: singleButtonFragment,
|
|
19957
20395
|
fieldPriority: 0
|
|
@@ -20148,7 +20586,7 @@ const copyLayout = fragmentLayoutNode$1(formCopyFragment.layout);
|
|
|
20148
20586
|
const formSurface = styledContainer({
|
|
20149
20587
|
bindFrom: "_containerStyles",
|
|
20150
20588
|
constrainWidth: false,
|
|
20151
|
-
baseClassName: "rb-form-surface rb-relative rb-isolate rb-overflow-
|
|
20589
|
+
baseClassName: "rb-form-surface rb-relative rb-isolate rb-overflow-visible",
|
|
20152
20590
|
children: fragmentLayoutNode$1(formEmbedFragment.layout)
|
|
20153
20591
|
});
|
|
20154
20592
|
function createFormLayout(variant) {
|
|
@@ -20212,6 +20650,7 @@ const formManifest = createBlockManifest({
|
|
|
20212
20650
|
paletteHidden: false
|
|
20213
20651
|
},
|
|
20214
20652
|
category: "interactive",
|
|
20653
|
+
contentSource: { kind: "inline" },
|
|
20215
20654
|
tags: [
|
|
20216
20655
|
"form",
|
|
20217
20656
|
"contact",
|
|
@@ -20274,6 +20713,7 @@ const contactNewsletterBlockDefinition = {
|
|
|
20274
20713
|
titleSource: "contactTitle",
|
|
20275
20714
|
description: "Two-column newsletter signup and contact form section.",
|
|
20276
20715
|
category: "interactive",
|
|
20716
|
+
contentSource: { kind: "inline" },
|
|
20277
20717
|
layout: contactNewsletterLayout,
|
|
20278
20718
|
defaultVariant: "default",
|
|
20279
20719
|
variants: { default: contactNewsletterLayout },
|
|
@@ -20477,6 +20917,7 @@ const faqBlockDefinition = { manifest: createBlockManifest({
|
|
|
20477
20917
|
title: "FAQ",
|
|
20478
20918
|
titleSource: "title",
|
|
20479
20919
|
category: "content",
|
|
20920
|
+
contentSource: { kind: "inline" },
|
|
20480
20921
|
includeContainerStyles: true,
|
|
20481
20922
|
fragments: [{
|
|
20482
20923
|
fragment: faqHeadingFragment,
|
|
@@ -21365,6 +21806,7 @@ const headerRootClassTransform = {
|
|
|
21365
21806
|
];
|
|
21366
21807
|
const variant = header?.variant;
|
|
21367
21808
|
if (variant && VALID_VARIANTS.includes(variant)) classes.push(`header-variant-${variant}`);
|
|
21809
|
+
if (header?.barFrame === "inset-shell" && variant === "classic") classes.push("header-bar-frame-inset-shell");
|
|
21368
21810
|
return joinClasses(classes);
|
|
21369
21811
|
}
|
|
21370
21812
|
};
|
|
@@ -21888,7 +22330,7 @@ function desktopOnlyDisplay(display) {
|
|
|
21888
22330
|
}
|
|
21889
22331
|
//#endregion
|
|
21890
22332
|
//#region ../blocks/src/system/blocks/site-header.ts
|
|
21891
|
-
const whenTransformed
|
|
22333
|
+
const whenTransformed = (from, transformId, equals = true) => (node) => ({
|
|
21892
22334
|
...node,
|
|
21893
22335
|
$when: {
|
|
21894
22336
|
when: {
|
|
@@ -21916,7 +22358,7 @@ const logoRow = link({
|
|
|
21916
22358
|
text({
|
|
21917
22359
|
as: "strong",
|
|
21918
22360
|
className: "header-logo-text rb-truncate"
|
|
21919
|
-
}, whenTransformed
|
|
22361
|
+
}, whenTransformed("$root.theme.header.logo", "layout.headerLogoTextVisible"), bind("site.title", { fallback: "Your Site" }))
|
|
21920
22362
|
]);
|
|
21921
22363
|
const centeredLogoRow = link({
|
|
21922
22364
|
href: "/",
|
|
@@ -21936,7 +22378,7 @@ const centeredLogoRow = link({
|
|
|
21936
22378
|
text({
|
|
21937
22379
|
as: "strong",
|
|
21938
22380
|
className: "header-logo-text"
|
|
21939
|
-
}, whenTransformed
|
|
22381
|
+
}, whenTransformed("$root.theme.header.logo", "layout.headerLogoTextVisible"), bind("site.title", { fallback: "Your Site" }))
|
|
21940
22382
|
]);
|
|
21941
22383
|
const createNavRow = (className, align = "end") => navRow({
|
|
21942
22384
|
className: `${className} header-nav-row`,
|
|
@@ -22068,7 +22510,7 @@ const classicLayout = inline({
|
|
|
22068
22510
|
logoRow,
|
|
22069
22511
|
createNavRow(`rb-ml-auto ${desktopOnlyDisplay("flex")} rb-gap-6`),
|
|
22070
22512
|
headerCta
|
|
22071
|
-
], whenTransformed
|
|
22513
|
+
], whenTransformed("$root.theme.header", "layout.classicNavMode", "inline"));
|
|
22072
22514
|
const classicCenteredNavLayout = inline({
|
|
22073
22515
|
className: bindProp("$root.theme.header.maxWidth", {
|
|
22074
22516
|
transforms: pipe(tx("layout.maxWidthClass", { base: `rb-header-layout ${desktopOnlyDisplay("flex")} rb-w-full rb-items-center rb-gap-6` })),
|
|
@@ -22079,7 +22521,7 @@ const classicCenteredNavLayout = inline({
|
|
|
22079
22521
|
logoRow,
|
|
22080
22522
|
createNavRow(`rb-flex-1 rb-justify-center ${desktopOnlyDisplay("flex")} rb-gap-6`, "center"),
|
|
22081
22523
|
headerCta
|
|
22082
|
-
], whenTransformed
|
|
22524
|
+
], whenTransformed("$root.theme.header", "layout.classicNavMode", "centered"));
|
|
22083
22525
|
const centeredLayout = stack({
|
|
22084
22526
|
gap: "md",
|
|
22085
22527
|
align: "center",
|
|
@@ -22119,6 +22561,7 @@ const siteHeaderBlockDefinition = { manifest: createBlockManifest({
|
|
|
22119
22561
|
id: "block.site-header",
|
|
22120
22562
|
title: "Site Header",
|
|
22121
22563
|
category: "layout",
|
|
22564
|
+
contentSource: { kind: "inline" },
|
|
22122
22565
|
additionalFields: [{
|
|
22123
22566
|
id: "mode",
|
|
22124
22567
|
type: "select",
|
|
@@ -22142,7 +22585,6 @@ const siteHeaderBlockDefinition = { manifest: createBlockManifest({
|
|
|
22142
22585
|
transforms: pipe(tx("layout.headerSectionBackground")),
|
|
22143
22586
|
fallback: "background"
|
|
22144
22587
|
}),
|
|
22145
|
-
allowOverflow: true,
|
|
22146
22588
|
className: bindProp("$root.theme.header", {
|
|
22147
22589
|
transforms: pipe(tx("layout.headerRootClass")),
|
|
22148
22590
|
fallback: "header-root rb-z-40 rb-w-full transition-theme"
|
|
@@ -22192,218 +22634,155 @@ const footerNavGroupsLayout = stack({
|
|
|
22192
22634
|
linkRequired: true,
|
|
22193
22635
|
target: { $bind: { from: "entry.target" } },
|
|
22194
22636
|
rel: { $bind: { from: "entry.rel" } }
|
|
22195
|
-
}, [text({ as: "span" }, bind("entry.label"))], repeat("group.children", "entry"))])], repeat("footerMenu.groups", "group"))],
|
|
22637
|
+
}, [text({ as: "span" }, bind("entry.label"))], repeat("group.children", "entry"))])], repeat("footerMenu.groups", "group"))], whenCollectionHasItems("footerMenu.groups"));
|
|
22196
22638
|
//#endregion
|
|
22197
22639
|
//#region ../blocks/src/system/blocks/site-footer.ts
|
|
22198
|
-
const
|
|
22199
|
-
|
|
22200
|
-
...node,
|
|
22201
|
-
$when: {
|
|
22202
|
-
when: {
|
|
22203
|
-
from,
|
|
22204
|
-
transforms: [{ id: transformId }]
|
|
22205
|
-
},
|
|
22206
|
-
equals
|
|
22207
|
-
}
|
|
22208
|
-
});
|
|
22209
|
-
const bottomBarTextLayout = () => {
|
|
22210
|
-
const bottomTextNode = footerTextLayout()[1];
|
|
22211
|
-
return bottomTextNode ? [bottomTextNode] : [];
|
|
22212
|
-
};
|
|
22213
|
-
const bodyTextLayout = () => {
|
|
22214
|
-
const bodyTextNode = footerTextLayout()[0];
|
|
22215
|
-
return bodyTextNode ? [bodyTextNode] : [];
|
|
22216
|
-
};
|
|
22217
|
-
const businessAddressLayout = () => [text({
|
|
22218
|
-
as: "p",
|
|
22219
|
-
className: "rb-caption rb-opacity-80"
|
|
22220
|
-
}, bind("site.businessAddress.displayAddress"), when("content.showBusinessAddress", { equals: true }))];
|
|
22221
|
-
const inlineBottomTextLayout = () => {
|
|
22222
|
-
const bottomTextNode = footerTextLayout()[1];
|
|
22223
|
-
if (!bottomTextNode) return [];
|
|
22224
|
-
return [when("$root.theme.footer.bottomBar.enabled", {
|
|
22225
|
-
equals: true,
|
|
22226
|
-
not: true
|
|
22227
|
-
})(bottomTextNode)];
|
|
22228
|
-
};
|
|
22229
|
-
const simpleFooterLayout = stack({
|
|
22230
|
-
gap: "md",
|
|
22231
|
-
align: "start",
|
|
22232
|
-
className: { $bind: {
|
|
22233
|
-
from: "$root.theme.footer",
|
|
22234
|
-
transforms: [{ id: "layout.footerSimpleRootClass" }],
|
|
22235
|
-
fallback: "rb-container rb-flex rb-w-full rb-flex-col rb-items-start rb-gap-4 rb-py-10 rb-text-left"
|
|
22236
|
-
} }
|
|
22237
|
-
}, [
|
|
22238
|
-
link({
|
|
22239
|
-
href: "/",
|
|
22240
|
-
className: { $bind: {
|
|
22241
|
-
from: "$root.theme.footer.logo",
|
|
22242
|
-
transforms: [{
|
|
22243
|
-
id: "layout.footerLogoClass",
|
|
22244
|
-
options: { requireExplicitShow: true }
|
|
22245
|
-
}],
|
|
22246
|
-
fallback: "rb-hidden"
|
|
22247
|
-
} }
|
|
22248
|
-
}, [
|
|
22249
|
-
media({ className: { $bind: {
|
|
22250
|
-
from: "$root.theme.footer.logo",
|
|
22251
|
-
transforms: [{ id: "layout.footerLogoMediaClass" }],
|
|
22252
|
-
fallback: "rb-w-auto"
|
|
22253
|
-
} } }, when("content.logo"), bind("content.logo")),
|
|
22254
|
-
stack({ className: "rb-contents" }, [media({ className: { $bind: {
|
|
22255
|
-
from: "$root.theme.footer.logo",
|
|
22256
|
-
transforms: [{ id: "layout.footerLogoMediaClass" }],
|
|
22257
|
-
fallback: "rb-w-auto"
|
|
22258
|
-
} } }, when("site.logo"), bind("site.logo"))], when("content.logo", { not: true })),
|
|
22259
|
-
text({
|
|
22260
|
-
as: "strong",
|
|
22261
|
-
className: "footer-logo-text rb-nav-text"
|
|
22262
|
-
}, whenTransformed("$root.theme.footer", "layout.footerLogoTextVisible"), bind("site.title", { fallback: "Your Site" }))
|
|
22263
|
-
]),
|
|
22264
|
-
footerNav({
|
|
22265
|
-
collectionPath: "footerMenu.items",
|
|
22266
|
-
mode: "flatten",
|
|
22267
|
-
className: { $bind: {
|
|
22268
|
-
from: "$root.theme.footer.navLayout",
|
|
22269
|
-
transforms: [{ id: "layout.footerSimpleNavClass" }],
|
|
22270
|
-
fallback: "footer-nav rb-flex rb-flex-wrap rb-justify-start rb-gap-x-6 rb-gap-y-3"
|
|
22271
|
-
} },
|
|
22272
|
-
linkClassName: "footer-nav-link rb-inline-flex rb-items-center rb-px-4 rb-py-2 rb-nav-text transition-theme-standard"
|
|
22273
|
-
}),
|
|
22274
|
-
...bodyTextLayout(),
|
|
22275
|
-
...businessAddressLayout(),
|
|
22276
|
-
...inlineBottomTextLayout()
|
|
22277
|
-
], when("$root.theme.footer.variant", { equals: "simple" }));
|
|
22278
|
-
const columnsFooterLayout = stack({
|
|
22279
|
-
gap: "xl",
|
|
22280
|
-
align: "start",
|
|
22640
|
+
const brandLogo = link({
|
|
22641
|
+
href: "/",
|
|
22281
22642
|
className: { $bind: {
|
|
22282
|
-
from: "$root.theme.footer.
|
|
22643
|
+
from: "$root.theme.footer.logo",
|
|
22283
22644
|
transforms: [{
|
|
22284
|
-
id: "layout.
|
|
22285
|
-
options: { base: "
|
|
22645
|
+
id: "layout.footerLogoClass",
|
|
22646
|
+
options: { base: "footer-logo rb-inline-flex rb-items-center rb-gap-3 rb-no-underline" }
|
|
22286
22647
|
}],
|
|
22287
|
-
fallback: "
|
|
22648
|
+
fallback: "footer-logo rb-inline-flex rb-items-center rb-gap-3 rb-no-underline"
|
|
22288
22649
|
} }
|
|
22289
|
-
}, [
|
|
22290
|
-
|
|
22291
|
-
|
|
22292
|
-
|
|
22293
|
-
|
|
22294
|
-
|
|
22295
|
-
|
|
22296
|
-
|
|
22297
|
-
|
|
22298
|
-
|
|
22299
|
-
|
|
22300
|
-
|
|
22301
|
-
|
|
22302
|
-
|
|
22303
|
-
|
|
22304
|
-
|
|
22305
|
-
|
|
22306
|
-
gap: "xl",
|
|
22307
|
-
align: "start",
|
|
22650
|
+
}, [media({ className: { $bind: {
|
|
22651
|
+
from: "$root.theme.footer.logo",
|
|
22652
|
+
transforms: [{
|
|
22653
|
+
id: "layout.footerLogoMediaClass",
|
|
22654
|
+
options: { base: "rb-h-10 rb-w-auto" }
|
|
22655
|
+
}],
|
|
22656
|
+
fallback: "rb-h-10 rb-w-auto"
|
|
22657
|
+
} } }, when("module.showLogo", { equals: true }), when("content.logo"), bind("content.logo")), text({
|
|
22658
|
+
as: "strong",
|
|
22659
|
+
className: "footer-logo-text rb-nav-text"
|
|
22660
|
+
}, when("module.showTitle", { equals: true }), bind("site.title", { fallback: "Your Site" }))], when("module.kind", { equals: "brand" }));
|
|
22661
|
+
const navigation = stack({
|
|
22662
|
+
gap: "md",
|
|
22663
|
+
className: "rb-w-full"
|
|
22664
|
+
}, [footerNavGroupsLayout, footerNav({
|
|
22665
|
+
collectionPath: "footerMenu.items",
|
|
22666
|
+
mode: "links-only",
|
|
22308
22667
|
className: { $bind: {
|
|
22309
|
-
from: "
|
|
22310
|
-
|
|
22311
|
-
|
|
22312
|
-
|
|
22313
|
-
|
|
22314
|
-
|
|
22315
|
-
|
|
22668
|
+
from: "module.navigationClassName",
|
|
22669
|
+
fallback: "footer-nav rb-flex rb-flex-wrap rb-gap-x-6 rb-gap-y-3"
|
|
22670
|
+
} },
|
|
22671
|
+
linkClassName: "footer-nav-link rb-nav-text transition-theme-standard"
|
|
22672
|
+
})], when("module.kind", { equals: "navigation" }));
|
|
22673
|
+
const legalNavigation = footerNav({
|
|
22674
|
+
collectionPath: "legalFooterMenu.items",
|
|
22675
|
+
mode: "links-only",
|
|
22676
|
+
className: "rb-flex rb-flex-wrap rb-gap-x-4 rb-gap-y-2",
|
|
22677
|
+
linkClassName: "footer-nav-link rb-caption transition-theme-standard"
|
|
22678
|
+
});
|
|
22679
|
+
const address = text({
|
|
22680
|
+
as: "address",
|
|
22681
|
+
className: "rb-not-italic rb-opacity-80"
|
|
22682
|
+
}, when("module.kind", { equals: "business-address" }), bind("module.address"));
|
|
22683
|
+
const contact = stack({
|
|
22684
|
+
gap: "sm",
|
|
22685
|
+
className: "rb-items-start"
|
|
22686
|
+
}, [link({
|
|
22687
|
+
href: { $bind: { from: "contactLink.href" } },
|
|
22688
|
+
className: "rb-nav-text rb-break-words transition-theme-standard"
|
|
22689
|
+
}, [text({ as: "span" }, bind("contactLink.label"))], repeat("module.contactLinks", "contactLink"))], when("module.kind", { equals: "contact" }));
|
|
22690
|
+
const hours = stack({
|
|
22691
|
+
gap: "sm",
|
|
22692
|
+
className: "rb-w-full"
|
|
22693
|
+
}, [inline({ className: "rb-flex rb-w-full rb-justify-between rb-gap-4" }, [text({
|
|
22694
|
+
as: "span",
|
|
22695
|
+
className: "rb-label"
|
|
22696
|
+
}, bind("hoursDay.weekday")), text({
|
|
22697
|
+
as: "span",
|
|
22698
|
+
className: "rb-caption rb-opacity-80"
|
|
22699
|
+
}, bind("hoursDay.hours"))], repeat("module.openingHours", "hoursDay")), text({
|
|
22700
|
+
as: "p",
|
|
22701
|
+
className: "rb-caption rb-opacity-70"
|
|
22702
|
+
}, bind("module.timeZone"), when("module.timeZone"))], when("module.kind", { equals: "opening-hours" }));
|
|
22703
|
+
const socials = inline({ className: "rb-flex rb-flex-wrap rb-gap-x-5 rb-gap-y-3" }, [link({
|
|
22704
|
+
href: { $bind: { from: "social.href" } },
|
|
22705
|
+
target: "_blank",
|
|
22706
|
+
rel: "noreferrer noopener",
|
|
22707
|
+
"aria-label": { $bind: { from: "social.label" } },
|
|
22708
|
+
className: "rb-nav-text transition-theme-standard"
|
|
22709
|
+
}, [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" }));
|
|
22710
|
+
const authoredCopy = richText({
|
|
22711
|
+
className: "rb-prose rb-prose-sm rb-max-w-none",
|
|
22712
|
+
style: textColorStyle("text/80")
|
|
22713
|
+
}, when("module.content"), bind("module.content", { transforms: [{
|
|
22714
|
+
id: "content.interpolateRichTextTokens",
|
|
22715
|
+
options: { tokens: ["year", "site_name"] }
|
|
22716
|
+
}] }));
|
|
22717
|
+
const footerGroup = stack({
|
|
22718
|
+
gap: "md",
|
|
22719
|
+
align: "stretch",
|
|
22720
|
+
className: "rb-min-w-0",
|
|
22721
|
+
"data-footer-group": { $bind: { from: "group.kind" } }
|
|
22722
|
+
}, [stack({
|
|
22723
|
+
gap: "md",
|
|
22724
|
+
align: "start",
|
|
22725
|
+
"data-preview-footer-module-id": { $bind: { from: "module.id" } }
|
|
22316
22726
|
}, [
|
|
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
|
-
|
|
22343
|
-
|
|
22344
|
-
from: "$root.theme.footer.logo",
|
|
22345
|
-
transforms: [{ id: "layout.footerLogoMediaClass" }],
|
|
22346
|
-
fallback: "rb-w-auto"
|
|
22347
|
-
} } }, when("site.logo"), bind("site.logo"))], when("content.logo", { not: true })),
|
|
22348
|
-
text({
|
|
22349
|
-
as: "strong",
|
|
22350
|
-
className: "footer-logo-text rb-nav-text"
|
|
22351
|
-
}, whenTransformed("$root.theme.footer", "layout.footerLogoTextVisible"), bind("site.title", { fallback: "Your Site" }))
|
|
22352
|
-
])]),
|
|
22353
|
-
...businessAddressLayout(),
|
|
22354
|
-
...inlineBottomTextLayout()
|
|
22355
|
-
], when("$root.theme.footer.variant", { equals: "split" }));
|
|
22356
|
-
const footerLayout = section({
|
|
22357
|
-
background: "background",
|
|
22727
|
+
text({
|
|
22728
|
+
as: "h2",
|
|
22729
|
+
className: "rb-label",
|
|
22730
|
+
style: textColorStyle("text/70")
|
|
22731
|
+
}, bind("module.heading"), when("module.heading")),
|
|
22732
|
+
brandLogo,
|
|
22733
|
+
navigation,
|
|
22734
|
+
stack({
|
|
22735
|
+
gap: "sm",
|
|
22736
|
+
className: "rb-w-full"
|
|
22737
|
+
}, [legalNavigation], when("module.kind", { equals: "legal-navigation" })),
|
|
22738
|
+
address,
|
|
22739
|
+
contact,
|
|
22740
|
+
hours,
|
|
22741
|
+
socials,
|
|
22742
|
+
stack({ className: "rb-w-full" }, [authoredCopy], when("module.kind", { equals: "supporting-text" })),
|
|
22743
|
+
stack({ className: "rb-w-full rb-lg-col-span-3" }, [authoredCopy], when("module.kind", { equals: "legal" }))
|
|
22744
|
+
], repeat("group.modules", "module"))], repeat("region.groups", "group"));
|
|
22745
|
+
const footerMainRegion = stack({
|
|
22746
|
+
className: { $bind: { from: "region.className" } },
|
|
22747
|
+
"data-footer-region": { $bind: { from: "region.kind" } }
|
|
22748
|
+
}, [footerGroup], when("region.kind", { equals: "main" }), repeat("content.footerRuntime.regions", "region"));
|
|
22749
|
+
const footerBottomRegion = stack({ className: { $bind: {
|
|
22750
|
+
from: "$root.theme.footer",
|
|
22751
|
+
transforms: [{ id: "layout.footerBottomBarContainerClass" }],
|
|
22752
|
+
fallback: "rb-w-full"
|
|
22753
|
+
} } }, [stack({
|
|
22358
22754
|
className: { $bind: {
|
|
22359
22755
|
from: "$root.theme.footer",
|
|
22360
|
-
transforms: [{ id: "layout.
|
|
22361
|
-
fallback: "rb-w-full rb-border-t
|
|
22756
|
+
transforms: [{ id: "layout.footerBottomBarClass" }],
|
|
22757
|
+
fallback: "rb-w-full rb-border-t rb-px-6 rb-py-6 rb-text-center"
|
|
22362
22758
|
} },
|
|
22363
22759
|
style: { $bind: {
|
|
22364
22760
|
from: "$root.theme.footer",
|
|
22365
|
-
transforms: [{ id: "layout.
|
|
22366
|
-
|
|
22367
|
-
|
|
22368
|
-
}, [
|
|
22369
|
-
simpleFooterLayout,
|
|
22370
|
-
columnsFooterLayout,
|
|
22371
|
-
splitFooterLayout,
|
|
22372
|
-
stack({
|
|
22373
|
-
className: { $bind: {
|
|
22374
|
-
from: "$root.theme.footer",
|
|
22375
|
-
transforms: [{ id: "layout.footerBottomBarClass" }],
|
|
22376
|
-
fallback: "rb-w-full rb-border-t rb-py-5"
|
|
22377
|
-
} },
|
|
22378
|
-
style: { $bind: {
|
|
22379
|
-
from: "$root.theme.footer",
|
|
22380
|
-
transforms: [{ id: "layout.footerBottomBarStyle" }]
|
|
22381
|
-
} }
|
|
22382
|
-
}, [stack({ className: { $bind: {
|
|
22383
|
-
from: "$root.theme.footer",
|
|
22384
|
-
transforms: [{ id: "layout.footerBottomBarContainerClass" }],
|
|
22385
|
-
fallback: "rb-container"
|
|
22386
|
-
} } }, [...bottomBarTextLayout()])], when("$root.theme.footer.bottomBar.enabled", { equals: true }))
|
|
22387
|
-
]);
|
|
22761
|
+
transforms: [{ id: "layout.footerBottomBarStyle" }]
|
|
22762
|
+
} },
|
|
22763
|
+
"data-footer-region": "bottom"
|
|
22764
|
+
}, [footerGroup])], when("region.kind", { equals: "bottom" }), repeat("content.footerRuntime.regions", "region"));
|
|
22388
22765
|
const siteFooterBlockDefinition = { manifest: createBlockManifest({
|
|
22389
22766
|
id: "block.site-footer",
|
|
22390
22767
|
title: "Site Footer",
|
|
22391
22768
|
category: "layout",
|
|
22392
|
-
|
|
22393
|
-
fragment: footerBottomTextFragment,
|
|
22394
|
-
fieldPriority: 0
|
|
22395
|
-
}],
|
|
22769
|
+
contentSource: { kind: "inline" },
|
|
22396
22770
|
skipSectionStyles: true,
|
|
22397
|
-
|
|
22398
|
-
|
|
22399
|
-
|
|
22400
|
-
|
|
22401
|
-
|
|
22402
|
-
|
|
22403
|
-
|
|
22404
|
-
|
|
22405
|
-
|
|
22406
|
-
|
|
22771
|
+
layout: section({
|
|
22772
|
+
background: "background",
|
|
22773
|
+
className: { $bind: {
|
|
22774
|
+
from: "$root.theme.footer",
|
|
22775
|
+
transforms: [{ id: "layout.footerRootClass" }],
|
|
22776
|
+
fallback: "rb-w-full rb-border-t transition-theme"
|
|
22777
|
+
} },
|
|
22778
|
+
style: { $bind: {
|
|
22779
|
+
from: "$root.theme.footer",
|
|
22780
|
+
transforms: [{ id: "layout.footerRootStyle" }],
|
|
22781
|
+
fallback: mergeStyles(backgroundColorStyle("surface"), surfaceForegroundStyle({ text: "rgb(var(--tb-text))" }), borderColorStyle("border"))
|
|
22782
|
+
} },
|
|
22783
|
+
"data-footer-membership": { $bind: { from: "content.footerRuntime.membershipKey" } }
|
|
22784
|
+
}, [footerMainRegion, footerBottomRegion]),
|
|
22785
|
+
description: "Site-wide composed footer with canonical shared details.",
|
|
22407
22786
|
styleTokens: { spacing: "md" },
|
|
22408
22787
|
paletteHidden: true
|
|
22409
22788
|
}) };
|
|
@@ -22537,6 +22916,7 @@ const testimonialsBlockDefinition = {
|
|
|
22537
22916
|
id: "block.testimonials",
|
|
22538
22917
|
title: "Testimonials",
|
|
22539
22918
|
category: "marketing",
|
|
22919
|
+
contentSource: { kind: "inline" },
|
|
22540
22920
|
includeContainerStyles: true,
|
|
22541
22921
|
previewCustomize: { quickFieldPriority: [
|
|
22542
22922
|
"avatarLayout",
|
|
@@ -22695,6 +23075,7 @@ const columnsBlockDefinition = { manifest: createBlockManifest({
|
|
|
22695
23075
|
id: "block.columns",
|
|
22696
23076
|
title: "Columns",
|
|
22697
23077
|
category: "layout",
|
|
23078
|
+
contentSource: { kind: "inline" },
|
|
22698
23079
|
additionalFields: [
|
|
22699
23080
|
parseFieldDefinition({
|
|
22700
23081
|
id: "equalHeight",
|
|
@@ -22881,7 +23262,7 @@ const repeatedItemsNode = repeaterFragmentLayout({
|
|
|
22881
23262
|
id: "boxStyles.all",
|
|
22882
23263
|
options: {
|
|
22883
23264
|
axis: "all",
|
|
22884
|
-
baseClass: "rb-collection-item rb-relative rb-isolate rb-overflow-
|
|
23265
|
+
baseClass: "rb-collection-item rb-relative rb-isolate rb-overflow-visible rb-border"
|
|
22885
23266
|
}
|
|
22886
23267
|
}]
|
|
22887
23268
|
},
|
|
@@ -22928,6 +23309,7 @@ const collectionBlockDefinition = { manifest: createBlockManifest({
|
|
|
22928
23309
|
id: "block.collection",
|
|
22929
23310
|
title: "Collection",
|
|
22930
23311
|
category: "layout",
|
|
23312
|
+
contentSource: { kind: "inline" },
|
|
22931
23313
|
additionalFields: [
|
|
22932
23314
|
parseFieldDefinition({
|
|
22933
23315
|
id: "layout",
|
|
@@ -23164,6 +23546,7 @@ const featureCardsBlockDefinition = { manifest: createBlockManifest({
|
|
|
23164
23546
|
id: "block.feature-cards",
|
|
23165
23547
|
title: "Feature Cards",
|
|
23166
23548
|
category: "layout",
|
|
23549
|
+
contentSource: { kind: "inline" },
|
|
23167
23550
|
includeContainerStyles: true,
|
|
23168
23551
|
titleSource: "title",
|
|
23169
23552
|
additionalFields: [
|
|
@@ -23547,6 +23930,7 @@ const mediaTextBlockDefinition = { manifest: createBlockManifest({
|
|
|
23547
23930
|
id: "block.media-text",
|
|
23548
23931
|
title: "Media and Text",
|
|
23549
23932
|
category: "layout",
|
|
23933
|
+
contentSource: { kind: "inline" },
|
|
23550
23934
|
includeContainerStyles: true,
|
|
23551
23935
|
titleSource: "title",
|
|
23552
23936
|
previewCustomize: { quickFieldPriority: [
|
|
@@ -23947,6 +24331,7 @@ const appointmentBookingBlockDefinition = {
|
|
|
23947
24331
|
paletteHidden: false
|
|
23948
24332
|
},
|
|
23949
24333
|
category: "interactive",
|
|
24334
|
+
contentSource: { kind: "inline" },
|
|
23950
24335
|
tags: [
|
|
23951
24336
|
"booking",
|
|
23952
24337
|
"appointment",
|
|
@@ -24111,6 +24496,7 @@ const weeklySlotAvailabilityManifest = createBlockManifest({
|
|
|
24111
24496
|
paletteHidden: false
|
|
24112
24497
|
},
|
|
24113
24498
|
category: "interactive",
|
|
24499
|
+
contentSource: { kind: "inline" },
|
|
24114
24500
|
tags: [
|
|
24115
24501
|
"booking",
|
|
24116
24502
|
"appointment",
|
|
@@ -25675,6 +26061,7 @@ const eventRegistrationBlockDefinition = {
|
|
|
25675
26061
|
titleSource: "heading",
|
|
25676
26062
|
description: "Multi-step event registration form",
|
|
25677
26063
|
category: "interactive",
|
|
26064
|
+
contentSource: { kind: "inline" },
|
|
25678
26065
|
tags: [
|
|
25679
26066
|
"events",
|
|
25680
26067
|
"registration",
|
|
@@ -25781,15 +26168,9 @@ const eventRegistrationBlockDefinition = {
|
|
|
25781
26168
|
defaultValue: "Complete Registration",
|
|
25782
26169
|
maxLength: 40
|
|
25783
26170
|
},
|
|
25784
|
-
{
|
|
25785
|
-
id: "buttonVariant",
|
|
25786
|
-
type: "select",
|
|
25787
|
-
label: "Button style",
|
|
26171
|
+
createButtonVariantField({
|
|
25788
26172
|
description: "Choose a button style from your theme",
|
|
25789
|
-
|
|
25790
|
-
multiple: false,
|
|
25791
|
-
defaultValue: "primary",
|
|
25792
|
-
options: [
|
|
26173
|
+
variants: [
|
|
25793
26174
|
{
|
|
25794
26175
|
value: "primary",
|
|
25795
26176
|
label: "Primary"
|
|
@@ -25802,9 +26183,8 @@ const eventRegistrationBlockDefinition = {
|
|
|
25802
26183
|
value: "outline",
|
|
25803
26184
|
label: "Outline"
|
|
25804
26185
|
}
|
|
25805
|
-
]
|
|
25806
|
-
|
|
25807
|
-
}
|
|
26186
|
+
]
|
|
26187
|
+
})
|
|
25808
26188
|
],
|
|
25809
26189
|
layout: [styledSection({
|
|
25810
26190
|
baseClass: "",
|
|
@@ -25997,6 +26377,7 @@ const courseRegistrationBlockDefinition = {
|
|
|
25997
26377
|
titleSource: "heading",
|
|
25998
26378
|
description: "Enrollment form for multi-session courses",
|
|
25999
26379
|
category: "interactive",
|
|
26380
|
+
contentSource: { kind: "inline" },
|
|
26000
26381
|
tags: [
|
|
26001
26382
|
"courses",
|
|
26002
26383
|
"enrollment",
|
|
@@ -26110,15 +26491,9 @@ const courseRegistrationBlockDefinition = {
|
|
|
26110
26491
|
defaultValue: "Sign up",
|
|
26111
26492
|
maxLength: 40
|
|
26112
26493
|
},
|
|
26113
|
-
{
|
|
26114
|
-
id: "buttonVariant",
|
|
26115
|
-
type: "select",
|
|
26116
|
-
label: "Button style",
|
|
26494
|
+
createButtonVariantField({
|
|
26117
26495
|
description: "Choose a button style from your theme",
|
|
26118
|
-
|
|
26119
|
-
multiple: false,
|
|
26120
|
-
defaultValue: "primary",
|
|
26121
|
-
options: [
|
|
26496
|
+
variants: [
|
|
26122
26497
|
{
|
|
26123
26498
|
value: "primary",
|
|
26124
26499
|
label: "Primary"
|
|
@@ -26131,9 +26506,8 @@ const courseRegistrationBlockDefinition = {
|
|
|
26131
26506
|
value: "outline",
|
|
26132
26507
|
label: "Outline"
|
|
26133
26508
|
}
|
|
26134
|
-
]
|
|
26135
|
-
|
|
26136
|
-
}
|
|
26509
|
+
]
|
|
26510
|
+
})
|
|
26137
26511
|
],
|
|
26138
26512
|
layout: [styledSection({
|
|
26139
26513
|
baseClass: "",
|
|
@@ -26213,6 +26587,7 @@ const eventDetailsManifest = createBlockManifest({
|
|
|
26213
26587
|
titleSource: "heading",
|
|
26214
26588
|
description: "Date/time, venue, map, and other dates for an event",
|
|
26215
26589
|
category: "content",
|
|
26590
|
+
contentSource: { kind: "entries" },
|
|
26216
26591
|
tags: [
|
|
26217
26592
|
"events",
|
|
26218
26593
|
"venue",
|
|
@@ -26418,6 +26793,7 @@ const courseDetailsBlockDefinition = {
|
|
|
26418
26793
|
titleSource: "heading",
|
|
26419
26794
|
description: "Schedule, venue, price, and enrollment status for a course",
|
|
26420
26795
|
category: "content",
|
|
26796
|
+
contentSource: { kind: "entries" },
|
|
26421
26797
|
tags: [
|
|
26422
26798
|
"courses",
|
|
26423
26799
|
"schedule",
|
|
@@ -26709,6 +27085,7 @@ const eventSpotlightBlockDefinition = {
|
|
|
26709
27085
|
paletteHidden: false
|
|
26710
27086
|
},
|
|
26711
27087
|
category: "content",
|
|
27088
|
+
contentSource: { kind: "entries" },
|
|
26712
27089
|
tags: [
|
|
26713
27090
|
"events",
|
|
26714
27091
|
"featured",
|
|
@@ -27255,6 +27632,7 @@ const eventListingBlockDefinition = {
|
|
|
27255
27632
|
paletteHidden: true
|
|
27256
27633
|
},
|
|
27257
27634
|
category: "interactive",
|
|
27635
|
+
contentSource: { kind: "entries" },
|
|
27258
27636
|
tags: [
|
|
27259
27637
|
"events",
|
|
27260
27638
|
"listing",
|
|
@@ -28427,6 +28805,7 @@ const eventCalendarBlockDefinition = {
|
|
|
28427
28805
|
paletteHidden: false
|
|
28428
28806
|
},
|
|
28429
28807
|
category: "interactive",
|
|
28808
|
+
contentSource: { kind: "entries" },
|
|
28430
28809
|
tags: [
|
|
28431
28810
|
"events",
|
|
28432
28811
|
"calendar",
|
|
@@ -28824,6 +29203,7 @@ const recurringScheduleBlockDefinition = {
|
|
|
28824
29203
|
titleSource: "heading",
|
|
28825
29204
|
description: "A compact weekly schedule with one row per recurring series.",
|
|
28826
29205
|
category: "interactive",
|
|
29206
|
+
contentSource: { kind: "entries" },
|
|
28827
29207
|
icon: "CalendarDays",
|
|
28828
29208
|
tags: [
|
|
28829
29209
|
"schedule",
|
|
@@ -29241,7 +29621,10 @@ const offeringsPreviewFields = [
|
|
|
29241
29621
|
label: "Link"
|
|
29242
29622
|
}
|
|
29243
29623
|
],
|
|
29244
|
-
ui: {
|
|
29624
|
+
ui: {
|
|
29625
|
+
intent: "display",
|
|
29626
|
+
widget: "buttonVariant"
|
|
29627
|
+
}
|
|
29245
29628
|
},
|
|
29246
29629
|
{
|
|
29247
29630
|
id: "buttonText",
|
|
@@ -29294,6 +29677,7 @@ const offeringsPreviewManifest = createBlockManifest({
|
|
|
29294
29677
|
paletteHidden: false
|
|
29295
29678
|
},
|
|
29296
29679
|
category: "content",
|
|
29680
|
+
contentSource: { kind: "mixed" },
|
|
29297
29681
|
tags: [
|
|
29298
29682
|
"offerings",
|
|
29299
29683
|
"events",
|
|
@@ -29462,6 +29846,7 @@ const embedManifest = createBlockManifest({
|
|
|
29462
29846
|
id: "block.embed",
|
|
29463
29847
|
title: "Embed Content",
|
|
29464
29848
|
category: "content",
|
|
29849
|
+
contentSource: { kind: "entries" },
|
|
29465
29850
|
titleSource: "heading",
|
|
29466
29851
|
additionalFields: [
|
|
29467
29852
|
parseFieldDefinition({
|
|
@@ -29949,6 +30334,7 @@ const imageGalleryBlockDefinition = { manifest: createBlockManifest({
|
|
|
29949
30334
|
id: "block.image-gallery",
|
|
29950
30335
|
title: "Image Gallery",
|
|
29951
30336
|
category: "content",
|
|
30337
|
+
contentSource: { kind: "inline" },
|
|
29952
30338
|
previewCustomize: { quickFieldPriority: [
|
|
29953
30339
|
"aspectRatio",
|
|
29954
30340
|
"slidesToShow",
|
|
@@ -30601,6 +30987,7 @@ const videoGridBlockDefinition = { manifest: createBlockManifest({
|
|
|
30601
30987
|
id: "block.video-grid",
|
|
30602
30988
|
title: "Video Grid",
|
|
30603
30989
|
category: "media",
|
|
30990
|
+
contentSource: { kind: "inline" },
|
|
30604
30991
|
skipSectionStyles: true,
|
|
30605
30992
|
additionalFields: parseFieldDefinitions([
|
|
30606
30993
|
{
|
|
@@ -30771,6 +31158,7 @@ const audioPlayerBlockDefinition = { manifest: createBlockManifest({
|
|
|
30771
31158
|
title: "Audio Player",
|
|
30772
31159
|
titleSource: "title",
|
|
30773
31160
|
category: "media",
|
|
31161
|
+
contentSource: { kind: "inline" },
|
|
30774
31162
|
description: "Add a branded audio player for a single track.",
|
|
30775
31163
|
tags: [
|
|
30776
31164
|
"audio",
|
|
@@ -30882,6 +31270,7 @@ const fileDownloadBlockDefinition = { manifest: createBlockManifest({
|
|
|
30882
31270
|
title: "File Download",
|
|
30883
31271
|
titleSource: ["title", "file.filename"],
|
|
30884
31272
|
category: "media",
|
|
31273
|
+
contentSource: { kind: "inline" },
|
|
30885
31274
|
description: "Add a simple public download link for a document, ZIP, or audio file.",
|
|
30886
31275
|
tags: [
|
|
30887
31276
|
"file",
|
|
@@ -31826,6 +32215,7 @@ const shopBlockDefinition = {
|
|
|
31826
32215
|
paletteHidden: false
|
|
31827
32216
|
},
|
|
31828
32217
|
category: "interactive",
|
|
32218
|
+
contentSource: { kind: "entries" },
|
|
31829
32219
|
tags: [
|
|
31830
32220
|
"shop",
|
|
31831
32221
|
"passes",
|
|
@@ -32025,6 +32415,7 @@ const productListBlockDefinition = {
|
|
|
32025
32415
|
paletteHidden: false
|
|
32026
32416
|
},
|
|
32027
32417
|
category: "interactive",
|
|
32418
|
+
contentSource: { kind: "entries" },
|
|
32028
32419
|
tags: [
|
|
32029
32420
|
"shop",
|
|
32030
32421
|
"products",
|
|
@@ -32166,6 +32557,7 @@ const productDetailBlockDefinition = {
|
|
|
32166
32557
|
paletteHidden: false
|
|
32167
32558
|
},
|
|
32168
32559
|
category: "interactive",
|
|
32560
|
+
contentSource: { kind: "entries" },
|
|
32169
32561
|
tags: [
|
|
32170
32562
|
"shop",
|
|
32171
32563
|
"product",
|
|
@@ -32282,6 +32674,7 @@ const cartBlockDefinition = {
|
|
|
32282
32674
|
paletteHidden: false
|
|
32283
32675
|
},
|
|
32284
32676
|
category: "interactive",
|
|
32677
|
+
contentSource: { kind: "inline" },
|
|
32285
32678
|
tags: [
|
|
32286
32679
|
"shop",
|
|
32287
32680
|
"cart",
|
|
@@ -32364,6 +32757,7 @@ const checkoutBlockDefinition = {
|
|
|
32364
32757
|
paletteHidden: false
|
|
32365
32758
|
},
|
|
32366
32759
|
category: "interactive",
|
|
32760
|
+
contentSource: { kind: "inline" },
|
|
32367
32761
|
tags: [
|
|
32368
32762
|
"shop",
|
|
32369
32763
|
"checkout",
|
|
@@ -32567,6 +32961,7 @@ const giftingBlockDefinition = {
|
|
|
32567
32961
|
paletteHidden: false
|
|
32568
32962
|
},
|
|
32569
32963
|
category: "interactive",
|
|
32964
|
+
contentSource: { kind: "entries" },
|
|
32570
32965
|
tags: [
|
|
32571
32966
|
"gifting",
|
|
32572
32967
|
"gift cards",
|
|
@@ -32910,6 +33305,7 @@ const newsletterSignupBlockDefinition = {
|
|
|
32910
33305
|
titleSource: "title",
|
|
32911
33306
|
description: "Newsletter subscription form with configurable field presets.",
|
|
32912
33307
|
category: "interactive",
|
|
33308
|
+
contentSource: { kind: "inline" },
|
|
32913
33309
|
fragments: [{
|
|
32914
33310
|
fragment: newsletterCopyFragment,
|
|
32915
33311
|
fieldPriority: 0
|
|
@@ -33091,6 +33487,7 @@ const teamMembersBlockDefinition = {
|
|
|
33091
33487
|
id: "block.team-members",
|
|
33092
33488
|
title: "Team Members",
|
|
33093
33489
|
category: "content",
|
|
33490
|
+
contentSource: { kind: "mixed" },
|
|
33094
33491
|
titleSource: "heading",
|
|
33095
33492
|
additionalFields: [
|
|
33096
33493
|
parseFieldDefinition({
|
|
@@ -33511,6 +33908,7 @@ const locationMapBlockDefinition = {
|
|
|
33511
33908
|
titleSource: "heading",
|
|
33512
33909
|
description: "Show a business location with an interactive map and directions link.",
|
|
33513
33910
|
category: "content",
|
|
33911
|
+
contentSource: { kind: "inline" },
|
|
33514
33912
|
tags: [
|
|
33515
33913
|
"map",
|
|
33516
33914
|
"location",
|
|
@@ -34626,9 +35024,9 @@ function appendBackgroundMediaClasses(baseClassName, input) {
|
|
|
34626
35024
|
].filter(Boolean).join(" ");
|
|
34627
35025
|
}
|
|
34628
35026
|
function gradientPresetCss(value) {
|
|
34629
|
-
|
|
34630
|
-
|
|
34631
|
-
|
|
35027
|
+
const presetId = parseGradientPresetId(value);
|
|
35028
|
+
if (!presetId) return null;
|
|
35029
|
+
const preset = getGradientPreset(presetId);
|
|
34632
35030
|
return gradientToCss(preset, Object.fromEntries(preset.stops.map((stop) => [stop.color, `rgb(var(--tb-${stop.color}))`])));
|
|
34633
35031
|
}
|
|
34634
35032
|
const backgroundTransforms = [
|
|
@@ -34667,16 +35065,17 @@ const backgroundTransforms = [
|
|
|
34667
35065
|
run: (value, _options, context) => resolveSurfaceForegroundStyles(value, context)
|
|
34668
35066
|
},
|
|
34669
35067
|
{
|
|
34670
|
-
id: "background.
|
|
35068
|
+
id: "background.resolveFrameClassName",
|
|
34671
35069
|
kind: "formatter",
|
|
34672
|
-
summary: "Resolve
|
|
34673
|
-
run: (value) => {
|
|
34674
|
-
|
|
35070
|
+
summary: "Resolve clipping on a decorative background frame without clipping foreground content",
|
|
35071
|
+
run: (value, options) => {
|
|
35072
|
+
const baseClass = options?.baseClass?.trim() ?? "";
|
|
35073
|
+
if (!value || typeof value !== "object") return `${baseClass} rb-overflow-hidden`.trim();
|
|
34675
35074
|
const input = value;
|
|
34676
|
-
if (input.overflow === true) return
|
|
35075
|
+
if (input.overflow === true) return `${baseClass} rb-overflow-visible`.trim();
|
|
34677
35076
|
const objectFit = isString(input.objectFit) ? input.objectFit.trim() : null;
|
|
34678
35077
|
const scale = isString(input.scale) ? input.scale.trim() : isNumber(input.scale) ? String(input.scale) : null;
|
|
34679
|
-
return Boolean((objectFit === "custom" || objectFit === "original") && scale && scale.trim().length > 0);
|
|
35078
|
+
return `${baseClass} ${Boolean((objectFit === "custom" || objectFit === "original") && scale && scale.trim().length > 0) ? "rb-overflow-visible" : "rb-overflow-hidden"}`.trim();
|
|
34680
35079
|
}
|
|
34681
35080
|
},
|
|
34682
35081
|
{
|
|
@@ -35749,6 +36148,7 @@ const CANONICAL_REFUND_PLANNER_ERROR_CODES = [
|
|
|
35749
36148
|
"already_refunded",
|
|
35750
36149
|
"idempotency_amount_mismatch",
|
|
35751
36150
|
"idempotency_method_mismatch",
|
|
36151
|
+
"idempotency_receipt_mismatch",
|
|
35752
36152
|
"refund_in_progress"
|
|
35753
36153
|
],
|
|
35754
36154
|
"invalid_amount",
|
|
@@ -35761,7 +36161,12 @@ const CANONICAL_ADMIN_REFUND_FAILURE_CODES = [
|
|
|
35761
36161
|
"payment_intent_not_found",
|
|
35762
36162
|
"stripe_error",
|
|
35763
36163
|
"stale_pending_missing_context",
|
|
35764
|
-
"non_refundable_deposit_remaining"
|
|
36164
|
+
"non_refundable_deposit_remaining",
|
|
36165
|
+
"deposit_refund_override_required",
|
|
36166
|
+
"refund_revoke_requires_full_line_refund",
|
|
36167
|
+
"payment_receipt_not_found",
|
|
36168
|
+
"payment_receipt_not_refundable",
|
|
36169
|
+
"payment_receipt_attribution_required"
|
|
35765
36170
|
];
|
|
35766
36171
|
[...CANONICAL_REFUND_PLANNER_ERROR_CODES];
|
|
35767
36172
|
//#endregion
|
|
@@ -35774,7 +36179,10 @@ const STANDARD_LINE_ITEM_REFUND_INVALID_CODES = [
|
|
|
35774
36179
|
"missing_credit_customer",
|
|
35775
36180
|
"deposit_refund_override_required",
|
|
35776
36181
|
"refund_revoke_requires_full_line_refund",
|
|
35777
|
-
"unified_order_link_required"
|
|
36182
|
+
"unified_order_link_required",
|
|
36183
|
+
"payment_receipt_not_found",
|
|
36184
|
+
"payment_receipt_not_refundable",
|
|
36185
|
+
"payment_receipt_attribution_required"
|
|
35778
36186
|
];
|
|
35779
36187
|
const EVENT_ATTENDEE_REFUND_INVALID_CODES = ["manual_booking_not_refundable", ...STANDARD_LINE_ITEM_REFUND_INVALID_CODES];
|
|
35780
36188
|
[...CANONICAL_ADMIN_REFUND_FAILURE_CODES];
|