@riverbankcms/sdk 0.107.0 → 0.109.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +21 -1
- package/dist/{PreviewEditorSidebar-DpAbAl08.mjs → PreviewEditorSidebar-DWqwfy3_.mjs} +48 -28
- package/dist/{PreviewEditorUI-O7cn6Xxv.mjs → PreviewEditorUI-B7OL4sfR.mjs} +10 -9
- package/dist/{PreviewQueryProvider-D0tnKl0t.mjs → PreviewQueryProvider-D0y2l8JN.mjs} +1 -1
- package/dist/{SdkPreviewModeRuntime-CVB7urtl.mjs → SdkPreviewModeRuntime-D8Gt9Gbe.mjs} +633 -220
- package/dist/{SiteChromeCustomizeContext-C_sizso-.mjs → SiteChromeCustomizeContext-DUpalEdL.mjs} +5764 -1556
- package/dist/_dts/ai/src/contracts/proposals.d.ts +15383 -11388
- package/dist/_dts/api/src/blocks.d.ts +41 -7
- package/dist/_dts/api/src/bookingAdjustments.d.ts +5 -0
- package/dist/_dts/api/src/bookingOperations.d.ts +4 -0
- package/dist/_dts/api/src/bookingRecords.d.ts +177 -127
- package/dist/_dts/api/src/bookingRefundOutcomes.d.ts +6 -6
- package/dist/_dts/api/src/cache-tags.d.ts +3 -0
- package/dist/_dts/api/src/common/envelope.d.ts +7 -0
- package/dist/_dts/api/src/contentRuntime.d.ts +19 -1
- package/dist/_dts/api/src/courses.d.ts +1 -0
- package/dist/_dts/api/src/customerMembershipOutcomes.d.ts +5 -5
- package/dist/_dts/api/src/endpoints.d.ts +134 -0
- package/dist/_dts/api/src/footer-settings.d.ts +1 -0
- package/dist/_dts/api/src/footerSettings.d.ts +8 -0
- package/dist/_dts/api/src/index.d.ts +7 -4
- package/dist/_dts/api/src/navigation/contracts.d.ts +3 -3
- package/dist/_dts/api/src/participantMessaging.d.ts +18 -12
- package/dist/_dts/api/src/previewContentContract.d.ts +4 -0
- package/dist/_dts/api/src/publicExperienceEndpoints.d.ts +1 -0
- package/dist/_dts/api/src/sdkContracts.d.ts +309 -1
- package/dist/_dts/api/src/siteBanner.d.ts +2 -2
- package/dist/_dts/api/src/siteInfrastructure.d.ts +13 -0
- package/dist/_dts/api/src/siteManagementEndpoints.d.ts +144 -60
- package/dist/_dts/api/src/sitePlatformEndpoints.d.ts +35 -1
- package/dist/_dts/api/src/siteRuntimeEndpoints.d.ts +74 -28
- package/dist/_dts/block-form/src/widgets/BackgroundGradientWidget/BackgroundGradientField.d.ts +9 -0
- package/dist/_dts/block-form/src/widgets/BackgroundGradientWidget/BackgroundGradientWidget.d.ts +3 -4
- package/dist/_dts/blocks/src/contracts/proof-block-islands.d.ts +4 -4
- package/dist/_dts/blocks/src/index.d.ts +1 -1
- package/dist/_dts/blocks/src/primitives/layout/Section.d.ts +0 -1
- package/dist/_dts/blocks/src/rendering/server.d.ts +1 -0
- package/dist/_dts/blocks/src/system/blocks/audio-player.d.ts +3 -0
- package/dist/_dts/blocks/src/system/blocks/body-text.d.ts +3 -0
- package/dist/_dts/blocks/src/system/blocks/contact-newsletter.d.ts +3 -0
- package/dist/_dts/blocks/src/system/blocks/course-registration.d.ts +1 -22
- package/dist/_dts/blocks/src/system/blocks/cta-full.d.ts +3 -0
- package/dist/_dts/blocks/src/system/blocks/event-registration.d.ts +1 -22
- package/dist/_dts/blocks/src/system/blocks/file-download.d.ts +3 -0
- package/dist/_dts/blocks/src/system/blocks/form.d.ts +3 -0
- package/dist/_dts/blocks/src/system/blocks/image-gallery.d.ts +3 -0
- package/dist/_dts/blocks/src/system/blocks/media-text.d.ts +3 -0
- package/dist/_dts/blocks/src/system/blocks/newsletter-signup.d.ts +3 -0
- package/dist/_dts/blocks/src/system/blocks/site-footer-runtime.d.ts +50 -0
- package/dist/_dts/blocks/src/system/blocks/site-footer.d.ts +9 -48
- package/dist/_dts/blocks/src/system/blocks/site-header.d.ts +3 -0
- package/dist/_dts/blocks/src/system/blocks/team-members.d.ts +3 -0
- package/dist/_dts/blocks/src/system/blocks/testimonials.d.ts +3 -0
- package/dist/_dts/blocks/src/system/blocks/video-grid.d.ts +3 -0
- package/dist/_dts/blocks/src/system/constants/background.d.ts +1 -1
- package/dist/_dts/blocks/src/system/customize/backgrounds.d.ts +16 -6
- package/dist/_dts/blocks/src/system/defineBlock.d.ts +9 -1
- package/dist/_dts/blocks/src/system/fields/ctas.d.ts +8 -0
- package/dist/_dts/blocks/src/system/icons/registry.d.ts +2 -1
- package/dist/_dts/blocks/src/system/icons/social.d.ts +5 -0
- package/dist/_dts/blocks/src/system/icons/svg.d.ts +1 -0
- package/dist/_dts/blocks/src/system/manifest/schema.d.ts +33 -2
- package/dist/_dts/blocks/src/system/node/fragments/backgroundLayer.d.ts +13 -0
- package/dist/_dts/blocks/src/system/node/fragments/footerNav.d.ts +2 -0
- package/dist/_dts/blocks/src/system/node/fragments/styledContainer.d.ts +4 -4
- package/dist/_dts/blocks/src/system/node/fragments/styledSection.d.ts +3 -12
- package/dist/_dts/blocks/src/system/node/validation-constants.d.ts +1 -1
- package/dist/_dts/blocks/src/system/runtime/components/registry.client.d.ts +6 -6
- package/dist/_dts/blocks/src/system/runtime/components/runtime-backed-blocks.d.ts +3 -3
- package/dist/_dts/blocks/src/system/runtime/nodes/shared/contract-schemas.d.ts +2 -2
- package/dist/_dts/blocks/src/system/types/link.d.ts +3 -3
- package/dist/_dts/content-editor/src/FooterComposerPanel.d.ts +14 -0
- package/dist/_dts/content-editor/src/controller/EntryControllerProvider.d.ts +27 -8
- package/dist/_dts/content-editor/src/footerComposer.d.ts +56 -0
- package/dist/_dts/content-editor/src/hooks/useEntryActions.d.ts +1 -1
- package/dist/_dts/content-editor/src/hooks/useEntryMutations.d.ts +5 -5
- package/dist/_dts/content-editor/src/index.d.ts +2 -0
- package/dist/_dts/content-editor/src/primitives/PreviewRichTextEditor.d.ts +3 -1
- package/dist/_dts/content-editor/src/services/contentEntryServices.d.ts +20 -36
- package/dist/_dts/content-editor/src/ui/editorSnapshot.d.ts +5 -1
- package/dist/_dts/content-editor/src/ui/editorUiStore.d.ts +11 -0
- package/dist/_dts/content-model/src/content-types/entryValidation.d.ts +31 -0
- package/dist/_dts/content-model/src/content-types/scaffold.d.ts +58 -0
- package/dist/_dts/content-model/src/content-types/schema.d.ts +1 -1
- package/dist/_dts/content-model/src/content-types/sentinels.d.ts +36 -0
- package/dist/_dts/content-model/src/definitions/shared.d.ts +3 -0
- package/dist/_dts/content-model/src/index.d.ts +3 -0
- package/dist/_dts/core/src/booking-date-time.d.ts +8 -0
- package/dist/_dts/core/src/branded.d.ts +3 -0
- package/dist/_dts/core/src/editor-state.d.ts +4 -0
- package/dist/_dts/core/src/footer-composition.d.ts +143 -0
- package/dist/_dts/core/src/index.d.ts +2 -0
- package/dist/_dts/core/src/public-profile.d.ts +73 -0
- package/dist/_dts/db/src/generated/supabase/database.types.d.ts +221 -205
- package/dist/_dts/db/src/schemas/forms.d.ts +10 -10
- package/dist/_dts/editor/src/primitives/rich-text/RichTextEditorSurface.d.ts +5 -0
- package/dist/_dts/editor-blocks/src/BlockEditor.d.ts +1 -0
- package/dist/_dts/editor-blocks/src/block-editor/hooks/useBlockCreation.d.ts +2 -1
- package/dist/_dts/editor-blocks/src/block-editor/hooks/useBlockDuplication.d.ts +2 -1
- package/dist/_dts/editor-blocks/src/block-editor/hooks/useBlockReorder.d.ts +2 -1
- package/dist/_dts/editor-blocks/src/block-editor/owner.d.ts +10 -0
- package/dist/_dts/editor-blocks/src/block-editor/types.d.ts +1 -0
- package/dist/_dts/media-core/src/fileMimeDetection.d.ts +16 -0
- package/dist/_dts/media-core/src/fileStorage.d.ts +8 -0
- package/dist/_dts/media-core/src/storagePathDomain.d.ts +2 -0
- package/dist/_dts/media-core/src/uploadVerificationContract.d.ts +3 -0
- package/dist/_dts/path-utils/src/index.d.ts +5 -0
- package/dist/_dts/preview-next/src/client/blocks/BlockToolbar.d.ts +2 -0
- package/dist/_dts/preview-next/src/client/preview/PreviewChromeLayer.d.ts +5 -0
- package/dist/_dts/preview-next/src/client/preview/PreviewEditorSidebar.d.ts +2 -1
- package/dist/_dts/preview-next/src/client/preview/PreviewEntryControllerProvider.d.ts +1 -0
- package/dist/_dts/preview-next/src/client/preview/PreviewShell.d.ts +2 -1
- package/dist/_dts/preview-next/src/client/preview/PreviewShellLayout.d.ts +2 -1
- package/dist/_dts/preview-next/src/client/preview/StyleConfigurator.state.d.ts +1 -0
- package/dist/_dts/preview-next/src/client/preview/previewErrorMessages.d.ts +4 -0
- package/dist/_dts/preview-next/src/client/preview/styleConfiguratorApplyPayload.d.ts +1 -1
- package/dist/_dts/sdk/src/cli/commands/audit.d.ts +1 -1
- package/dist/_dts/sdk/src/cli/commands/compare.d.ts +1 -1
- package/dist/_dts/sdk/src/cli/commands/deploy.d.ts +1 -1
- package/dist/_dts/sdk/src/cli/commands/drafts.d.ts +18 -0
- package/dist/_dts/sdk/src/cli/commands/entry.d.ts +15 -0
- package/dist/_dts/sdk/src/cli/commands/init-docs.d.ts +2 -2
- package/dist/_dts/sdk/src/cli/commands/publish-all.d.ts +1 -1
- package/dist/_dts/sdk/src/cli/commands/pull.d.ts +1 -0
- package/dist/_dts/sdk/src/cli/commands/push/execute/diff.d.ts +1 -1
- package/dist/_dts/sdk/src/cli/commands/push/options.d.ts +3 -0
- package/dist/_dts/sdk/src/cli/commands/push-execute.d.ts +12 -1
- package/dist/_dts/sdk/src/cli/commands/setup.d.ts +1 -0
- package/dist/_dts/sdk/src/cli/commands/verify.d.ts +1 -0
- package/dist/_dts/sdk/src/cli/content/reader.d.ts +1 -0
- package/dist/_dts/sdk/src/cli/helpers.d.ts +22 -1
- package/dist/_dts/sdk/src/cli/index.d.ts +4 -0
- package/dist/_dts/sdk/src/cli/output.d.ts +88 -0
- package/dist/_dts/sdk/src/cli/program.d.ts +29 -0
- package/dist/_dts/sdk/src/cli/push-config.d.ts +1 -1
- package/dist/_dts/sdk/src/client/management/blocks.d.ts +14 -1
- package/dist/_dts/sdk/src/client/management/catalog.d.ts +10 -0
- package/dist/_dts/sdk/src/client/management/http.d.ts +7 -1
- package/dist/_dts/sdk/src/client/management/index.d.ts +2 -1
- package/dist/_dts/sdk/src/client/management/types.d.ts +58 -20
- package/dist/_dts/sdk/src/config/content-types.d.ts +2 -0
- package/dist/_dts/sdk/src/config/content-validation.d.ts +4 -0
- package/dist/_dts/sdk/src/date-time/index.d.ts +68 -0
- package/dist/_dts/sdk/src/navigation/index.d.ts +2 -0
- package/dist/_dts/sdk/src/public-api/contracts.d.ts +5 -2
- package/dist/_dts/sdk/src/rendering/components/Layout.d.ts +2 -1
- package/dist/_dts/sdk/src/rendering/helpers/loadContent.d.ts +1 -1
- package/dist/_dts/sdk/src/version.d.ts +1 -1
- package/dist/_dts/site-commands/src/commands.d.ts +900 -827
- package/dist/_dts/theme-core/src/accordions/types.d.ts +2 -2
- package/dist/_dts/theme-core/src/buttons/core.d.ts +15 -46
- package/dist/_dts/theme-core/src/buttons/effectClassification.d.ts +147 -0
- package/dist/_dts/theme-core/src/buttons/effects/types.d.ts +2 -3
- package/dist/_dts/theme-core/src/buttons/generateDefaultButtonSystem.d.ts +1 -1
- package/dist/_dts/theme-core/src/buttons/index.d.ts +1 -0
- package/dist/_dts/theme-core/src/buttons/personalities/index.d.ts +11 -0
- package/dist/_dts/theme-core/src/buttons/personalities/two-tone-pill.d.ts +17 -0
- package/dist/_dts/theme-core/src/buttons/personalities/types.d.ts +45 -33
- package/dist/_dts/theme-core/src/buttons/presets.d.ts +4 -25
- package/dist/_dts/theme-core/src/buttons/resolveButtonColourStates.d.ts +100 -0
- package/dist/_dts/theme-core/src/buttons/resolvedButtonCss.d.ts +16 -0
- package/dist/_dts/theme-core/src/buttons/types.d.ts +104 -86
- package/dist/_dts/theme-core/src/cards/types.d.ts +16 -16
- package/dist/_dts/theme-core/src/footer/mode.d.ts +15 -0
- package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
- package/dist/_dts/theme-core/src/gradients/presets.d.ts +200 -8
- package/dist/_dts/theme-core/src/gradients/utils.d.ts +6 -2
- package/dist/_dts/theme-core/src/interactive/baseSchema.d.ts +1 -1
- package/dist/_dts/theme-core/src/mock-themes/all.d.ts +117 -150
- package/dist/_dts/theme-core/src/mock-themes/modern-minimal.d.ts +1 -1
- package/dist/_dts/theme-core/src/navigation/types.d.ts +3 -3
- package/dist/_dts/theme-core/src/palette/curated/index.d.ts +2 -2
- package/dist/_dts/theme-core/src/palette/curated/types.d.ts +5 -8
- package/dist/_dts/theme-core/src/palette/index.d.ts +0 -1
- package/dist/_dts/theme-core/src/schema.d.ts +1264 -138
- package/dist/_dts/theme-core/src/site-styles/backgroundAppearance.d.ts +2 -2
- package/dist/_dts/theme-core/src/site-styles/designState.d.ts +10 -10
- package/dist/_dts/theme-core/src/site-styles/headerLooks.d.ts +12 -1
- package/dist/_dts/theme-core/src/site-styles/pageDesignEditorModel.d.ts +3 -2
- package/dist/_dts/theme-core/src/site-styles/pageDesignIntent.d.ts +13 -6
- package/dist/_dts/theme-core/src/site-styles/runtimeCompiler.d.ts +29 -8
- package/dist/_dts/theme-core/src/site-styles/siteChromeNavPreferences.d.ts +15 -0
- package/dist/_dts/theme-core/src/site-styles/styleTags.d.ts +2 -2
- package/dist/cli/index.mjs +68552 -66955
- package/dist/cli/init-docs/content/cli-reference.md +50 -7
- package/dist/cli/init-docs/content/content-management.md +7 -4
- package/dist/cli/init-docs/content/workflow-publish.md +5 -1
- package/dist/client/{DiscountCodeDisclosure-BwGkvmVH.mjs → DiscountCodeDisclosure-DU1ygxU2.mjs} +1 -1
- package/dist/client/{EventCombined.client-JnWE6Hzc.mjs → EventCombined.client-DB5zagCo.mjs} +3 -3
- package/dist/client/{EventListing.client-DQewc_kg.mjs → EventListing.client-CTX9JHBL.mjs} +2 -2
- package/dist/client/{LeafletStaticMap-DPAU3SFt.mjs → LeafletStaticMap-BYImhgiB.mjs} +1 -1
- package/dist/client/{MagicLinkForm-D4kpWCbW.mjs → MagicLinkForm-CRkw_M3l.mjs} +2 -2
- package/dist/client/{StepIndicator-CBlkb4rA.mjs → StepIndicator-BnmVBJJh.mjs} +2 -2
- package/dist/client/{accordion-DAIBVpTS.mjs → accordion-CeGreumd.mjs} +1 -1
- package/dist/client/{bookingForm-DZ-4l5_1.mjs → bookingForm-CSzFNrpN.mjs} +6 -6
- package/dist/client/bookings.mjs +637 -328
- package/dist/client/{buttons-DJgynGHQ.mjs → buttons-DoFV7KDL.mjs} +618 -306
- package/dist/client/{carousel-D-SLfX8r.mjs → carousel-B2jDtogf.mjs} +1 -1
- package/dist/client/{cart-CEgbgJhX.mjs → cart-D-jZ-vaY.mjs} +3 -3
- package/dist/client/{checkout-CXWrCRAA.mjs → checkout-Dza-LA7N.mjs} +3 -3
- package/dist/client/client.mjs +2497 -1216
- package/dist/client/{colorStyles-jZS6KfkP.mjs → colorStyles-CrgzoXsm.mjs} +1 -30
- package/dist/client/{courseRegistration-DVmLrRVz.mjs → courseRegistration-TYkNychb.mjs} +7 -7
- package/dist/client/{eventCalendar-DCuyPY_c.mjs → eventCalendar-BI_90SsT.mjs} +5 -5
- package/dist/client/{eventCombined-kP2CA2D4.mjs → eventCombined-mNrpryE9.mjs} +2 -2
- package/dist/client/{eventDetails-DU0LeF5e.mjs → eventDetails-D4GVlCIY.mjs} +3 -3
- package/dist/client/{eventListing-CcHF87BI.mjs → eventListing-YhKN018y.mjs} +2 -2
- package/dist/client/{eventRegistration-DJnR0yFH.mjs → eventRegistration-CdHGtilr.mjs} +7 -7
- package/dist/client/foregroundContract-xICPq59x.mjs +31 -0
- package/dist/client/{form-CH1lCusH.mjs → form-AcAL45rA.mjs} +2 -2
- package/dist/client/{headerSection-CBPFZoku.mjs → headerSection-uEC52ueD.mjs} +3 -3
- package/dist/client/hooks.mjs +1249 -841
- package/dist/client/{locationMap-Cx1hBg5n.mjs → locationMap-_wJDSUYe.mjs} +3 -3
- package/dist/client/{media-DHtSxS5V.mjs → media-BK0O3b-U.mjs} +3 -2
- package/dist/client/{newsletterForm-1ZL_ti9u.mjs → newsletterForm-DrArsb2B.mjs} +2 -2
- package/dist/client/{pricing-BIbzmV0G.mjs → pricing-BSYVghwo.mjs} +1 -1
- package/dist/client/{productDetail-BTh5gHBV.mjs → productDetail-Dyk90sMs.mjs} +3 -3
- package/dist/client/{productList-Cc7OMrqN.mjs → productList-BCKThwAI.mjs} +3 -3
- package/dist/client/{propsDecoder-oR-M-ISN.mjs → propsDecoder-CkXxkdSR.mjs} +96 -33
- package/dist/client/rendering/client.mjs +1278 -523
- package/dist/client/rendering/islands.mjs +19 -19
- package/dist/client/rendering.mjs +2308 -1028
- package/dist/client/{shop-CQ_YbCnn.mjs → shop-DeltVH10.mjs} +6 -6
- package/dist/client/{shop-commerce-BM-AoD3M.mjs → shop-commerce-BD9Jsm2Z.mjs} +6 -6
- package/dist/client/{shop-commerce-store-DFMQhU5p.mjs → shop-commerce-store-CmXD6FDS.mjs} +1 -1
- package/dist/client/{shopShared-D0SKO2Cu.mjs → shopShared-B8v-lH_F.mjs} +2 -2
- package/dist/client/{useDiscountCodeUi-CrG4_ARt.mjs → useDiscountCodeUi-DbWJN8ld.mjs} +1 -1
- package/dist/client/{useEventFilters-CxK8Fekl.mjs → useEventFilters-EJIMUnqT.mjs} +46 -69
- package/dist/client/{usePolling-jcVryNgZ.mjs → usePolling-Cmh14fc7.mjs} +2 -2
- package/dist/preview-next/before-render.mjs +213 -0
- package/dist/preview-next/client/runtime.mjs +4 -4
- package/dist/preview-next/middleware.mjs +213 -0
- package/dist/{previewAuthStore-BPcJPzdz.mjs → previewAuthStore-CTO7CRPk.mjs} +213 -0
- package/dist/{sdk-runtime-C39Rsk-x.mjs → sdk-runtime-Dou0GAav.mjs} +2 -2
- package/dist/{separator-BoMSQnsP.mjs → separator-CI5wZNXT.mjs} +1 -1
- package/dist/server/components.mjs +2370 -1132
- package/dist/server/config-validation.mjs +1256 -842
- package/dist/server/config.mjs +1256 -843
- package/dist/server/data.mjs +1249 -841
- package/dist/server/date-time.mjs +386 -0
- package/dist/server/index.mjs +214 -1
- package/dist/server/navigation.mjs +9 -3
- package/dist/server/next.mjs +3421 -1949
- package/dist/server/page-converter.mjs +1236 -659
- package/dist/server/prebuild.mjs +1 -1
- package/dist/server/rendering/server.mjs +2074 -1060
- package/dist/server/rendering.mjs +2370 -1132
- package/dist/server/routing.mjs +1543 -1062
- package/dist/server/server.mjs +1464 -843
- package/dist/server/theme-bridge.mjs +1581 -474
- package/dist/server/theme.mjs +614 -305
- package/dist/styles/index.css +12 -1
- package/package.json +7 -1
- package/dist/_dts/theme-core/src/buttons/presets/types.d.ts +0 -88
- package/dist/_dts/theme-core/src/buttons/utils/contrast.d.ts +0 -38
- package/dist/_dts/theme-core/src/palette/themePaletteCompatibility.d.ts +0 -57
package/dist/server/data.mjs
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import z, { z as z$1 } from "zod";
|
|
2
2
|
import "react/jsx-runtime";
|
|
3
3
|
import "react";
|
|
4
|
-
//#region ../api/src/apiEndpointTypes.ts
|
|
5
4
|
function blockedDemoMutationPolicy(classification, publicMessage) {
|
|
6
5
|
if (publicMessage.trim() === "") throw new Error(`Demo mutation policy ${classification} requires publicMessage.`);
|
|
7
6
|
return {
|
|
@@ -29,6 +28,7 @@ const TAG_TEMPLATES = {
|
|
|
29
28
|
siteRouteOutcomes: "riverbank:site:{siteId}:route-outcomes",
|
|
30
29
|
routeById: "riverbank:route:{routeId}",
|
|
31
30
|
pageById: "riverbank:page:{pageId}",
|
|
31
|
+
pageSurfaceById: "riverbank:page-surface:{pageSurfaceId}",
|
|
32
32
|
workflowRunById: "riverbank:workflow-run:{runId}",
|
|
33
33
|
siteForms: "riverbank:site:{siteId}:forms",
|
|
34
34
|
formById: "riverbank:form:{formId}",
|
|
@@ -52,7 +52,7 @@ const TAG_TEMPLATES = {
|
|
|
52
52
|
blockedDemoMutationPolicy("blocked-hidden", "This action is not available in demo sites.");
|
|
53
53
|
blockedDemoMutationPolicy("blocked-disabled", "This setting is disabled in demo sites.");
|
|
54
54
|
blockedDemoMutationPolicy("internal-only", "This internal operation is not available in demo sites.");
|
|
55
|
-
TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteTheme, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.site, TAG_TEMPLATES.siteBookingSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteBookingSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteEmailSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteEmailSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteEmailSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteEmailSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.site, TAG_TEMPLATES.site, TAG_TEMPLATES.site, TAG_TEMPLATES.site, TAG_TEMPLATES.site, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.routeById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteById, TAG_TEMPLATES.siteBySlug, TAG_TEMPLATES.siteByDomain, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteById, TAG_TEMPLATES.siteBySlug, TAG_TEMPLATES.siteByDomain, TAG_TEMPLATES.workflowRunById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.routeById, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.site, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteNavigation, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteNavigation, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteNavigation, TAG_TEMPLATES.navigationMenuById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteNavigation, TAG_TEMPLATES.navigationMenuById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteNavigation, TAG_TEMPLATES.navigationMenuById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteNavigation, TAG_TEMPLATES.navigationMenuById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteNavigation, TAG_TEMPLATES.navigationMenuById, TAG_TEMPLATES.navigationItemById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteNavigation, TAG_TEMPLATES.navigationMenuById, TAG_TEMPLATES.navigationItemById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteNavigation, TAG_TEMPLATES.navigationMenuById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteTheme, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteTheme, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteTheme, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.siteRedirects, TAG_TEMPLATES.siteRouteOutcomes, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.siteRedirects, TAG_TEMPLATES.siteRouteOutcomes, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.formSubmissionsBySlug, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.formSubmissionsBySlug, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.formSubmissionsBySlug, TAG_TEMPLATES.formById, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.publicEvents, TAG_TEMPLATES.publicEventFilters, TAG_TEMPLATES.publicCourses, TAG_TEMPLATES.publicTeamMembers, TAG_TEMPLATES.publicCourses, TAG_TEMPLATES.publicCourses, TAG_TEMPLATES.publicCourses, TAG_TEMPLATES.publicCourses, TAG_TEMPLATES.publicEvents, TAG_TEMPLATES.publicCourses, TAG_TEMPLATES.publicCourses, TAG_TEMPLATES.publicPasses, TAG_TEMPLATES.publicMemberships, TAG_TEMPLATES.publicProducts, TAG_TEMPLATES.publicGifting, TAG_TEMPLATES.publicGifting, TAG_TEMPLATES.publicGifting, TAG_TEMPLATES.publicShop, TAG_TEMPLATES.publicCheckout, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.publicEvents, TAG_TEMPLATES.publicEvents, TAG_TEMPLATES.publicEvents, TAG_TEMPLATES.publicEvents, TAG_TEMPLATES.publicEvents, TAG_TEMPLATES.publicEvents;
|
|
55
|
+
TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteTheme, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.site, TAG_TEMPLATES.siteBookingSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteBookingSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteEmailSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteEmailSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteEmailSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteEmailSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.site, TAG_TEMPLATES.site, TAG_TEMPLATES.site, TAG_TEMPLATES.site, TAG_TEMPLATES.site, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.routeById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteById, TAG_TEMPLATES.siteBySlug, TAG_TEMPLATES.siteByDomain, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteById, TAG_TEMPLATES.siteBySlug, TAG_TEMPLATES.siteByDomain, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.pageSurfaceById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.pageSurfaceById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageSurfaceById, TAG_TEMPLATES.workflowRunById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.routeById, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.site, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteNavigation, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteNavigation, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteNavigation, TAG_TEMPLATES.navigationMenuById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteNavigation, TAG_TEMPLATES.navigationMenuById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteNavigation, TAG_TEMPLATES.navigationMenuById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteNavigation, TAG_TEMPLATES.navigationMenuById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteNavigation, TAG_TEMPLATES.navigationMenuById, TAG_TEMPLATES.navigationItemById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteNavigation, TAG_TEMPLATES.navigationMenuById, TAG_TEMPLATES.navigationItemById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteNavigation, TAG_TEMPLATES.navigationMenuById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteTheme, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteTheme, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteTheme, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.pageSurfaceById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.pageSurfaceById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.pageSurfaceById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.pageSurfaceById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.siteRedirects, TAG_TEMPLATES.siteRouteOutcomes, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.siteRedirects, TAG_TEMPLATES.siteRouteOutcomes, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.formSubmissionsBySlug, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.formSubmissionsBySlug, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.formSubmissionsBySlug, TAG_TEMPLATES.formById, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.publicEvents, TAG_TEMPLATES.publicEventFilters, TAG_TEMPLATES.publicCourses, TAG_TEMPLATES.publicTeamMembers, TAG_TEMPLATES.publicCourses, TAG_TEMPLATES.publicCourses, TAG_TEMPLATES.publicCourses, TAG_TEMPLATES.publicCourses, TAG_TEMPLATES.publicEvents, TAG_TEMPLATES.publicCourses, TAG_TEMPLATES.publicCourses, TAG_TEMPLATES.publicPasses, TAG_TEMPLATES.publicMemberships, TAG_TEMPLATES.publicProducts, TAG_TEMPLATES.publicGifting, TAG_TEMPLATES.publicGifting, TAG_TEMPLATES.publicGifting, TAG_TEMPLATES.publicShop, TAG_TEMPLATES.publicCheckout, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.publicEvents, TAG_TEMPLATES.publicEvents, TAG_TEMPLATES.publicEvents, TAG_TEMPLATES.publicEvents, TAG_TEMPLATES.publicEvents, TAG_TEMPLATES.publicEvents;
|
|
56
56
|
//#endregion
|
|
57
57
|
//#region ../core/src/result.ts
|
|
58
58
|
function ok(value) {
|
|
@@ -210,19 +210,29 @@ function isRecord$9(value) {
|
|
|
210
210
|
//#region ../core/src/booking-date-time.ts
|
|
211
211
|
const DEFAULT_LOCALE = "en-US";
|
|
212
212
|
const FALLBACK_TIMEZONE = "UTC";
|
|
213
|
+
const DATE_TIME_FORMATTER_CACHE_LIMIT = 100;
|
|
214
|
+
const dateTimeFormatterCache = /* @__PURE__ */ new Map();
|
|
215
|
+
const timeZoneValidityCache = /* @__PURE__ */ new Map();
|
|
213
216
|
function isValidTimeZone(timeZone) {
|
|
217
|
+
const cached = timeZoneValidityCache.get(timeZone);
|
|
218
|
+
if (cached !== void 0) return cached;
|
|
219
|
+
let isValid;
|
|
214
220
|
try {
|
|
215
221
|
new Intl.DateTimeFormat(DEFAULT_LOCALE, { timeZone }).format(/* @__PURE__ */ new Date());
|
|
216
|
-
|
|
222
|
+
isValid = true;
|
|
217
223
|
} catch {
|
|
218
|
-
|
|
224
|
+
isValid = false;
|
|
219
225
|
}
|
|
226
|
+
if (timeZoneValidityCache.size >= DATE_TIME_FORMATTER_CACHE_LIMIT) timeZoneValidityCache.clear();
|
|
227
|
+
timeZoneValidityCache.set(timeZone, isValid);
|
|
228
|
+
return isValid;
|
|
220
229
|
}
|
|
221
230
|
function getSafeTimeZone(timeZone) {
|
|
222
231
|
const normalized = typeof timeZone === "string" ? timeZone.trim() : "";
|
|
223
232
|
return normalized.length > 0 && isValidTimeZone(normalized) ? normalized : FALLBACK_TIMEZONE;
|
|
224
233
|
}
|
|
225
234
|
function parseStrictBookingTimeZone(timeZone) {
|
|
235
|
+
if (typeof timeZone !== "string") return null;
|
|
226
236
|
const normalized = timeZone.trim();
|
|
227
237
|
if (normalized.length === 0 || !isValidTimeZone(normalized)) return null;
|
|
228
238
|
return normalized;
|
|
@@ -235,10 +245,19 @@ function formatParseError(error) {
|
|
|
235
245
|
}
|
|
236
246
|
}
|
|
237
247
|
function formatToPartsLookup(date, locale, timeZone, format) {
|
|
238
|
-
return new Map(
|
|
248
|
+
return new Map(getCachedDateTimeFormatter(locale, timeZone, format).formatToParts(date).map((part) => [part.type, part.value]));
|
|
249
|
+
}
|
|
250
|
+
function getCachedDateTimeFormatter(locale, timeZone, format) {
|
|
251
|
+
const key = `${locale}\u0000${timeZone}\u0000${JSON.stringify(Object.entries(format).sort(([left], [right]) => left.localeCompare(right)))}`;
|
|
252
|
+
const cached = dateTimeFormatterCache.get(key);
|
|
253
|
+
if (cached !== void 0) return cached;
|
|
254
|
+
const formatter = new Intl.DateTimeFormat(locale, {
|
|
239
255
|
...format,
|
|
240
256
|
timeZone
|
|
241
|
-
})
|
|
257
|
+
});
|
|
258
|
+
if (dateTimeFormatterCache.size >= DATE_TIME_FORMATTER_CACHE_LIMIT) dateTimeFormatterCache.clear();
|
|
259
|
+
dateTimeFormatterCache.set(key, formatter);
|
|
260
|
+
return formatter;
|
|
242
261
|
}
|
|
243
262
|
function getZonedDateTimeParts(date, timeZone) {
|
|
244
263
|
const parts = formatToPartsLookup(date, "en-GB", timeZone, {
|
|
@@ -281,23 +300,9 @@ function toUtcIsoDateTimeString(value) {
|
|
|
281
300
|
return parsed.value;
|
|
282
301
|
}
|
|
283
302
|
function parseScheduledBookingDateTime(input) {
|
|
303
|
+
let startsAt;
|
|
284
304
|
try {
|
|
285
|
-
|
|
286
|
-
const timeZone = parseStrictBookingTimeZone(input.timeZone);
|
|
287
|
-
if (timeZone === null) return {
|
|
288
|
-
ok: false,
|
|
289
|
-
field: "timeZone",
|
|
290
|
-
reason: "invalid_time_zone",
|
|
291
|
-
value: input.timeZone
|
|
292
|
-
};
|
|
293
|
-
return {
|
|
294
|
-
ok: true,
|
|
295
|
-
value: {
|
|
296
|
-
startsAt,
|
|
297
|
-
timeZone,
|
|
298
|
-
locale: input.locale
|
|
299
|
-
}
|
|
300
|
-
};
|
|
305
|
+
startsAt = toUtcIsoDateTimeString(input.startsAt);
|
|
301
306
|
} catch {
|
|
302
307
|
return {
|
|
303
308
|
ok: false,
|
|
@@ -306,6 +311,21 @@ function parseScheduledBookingDateTime(input) {
|
|
|
306
311
|
value: input.startsAt
|
|
307
312
|
};
|
|
308
313
|
}
|
|
314
|
+
const timeZone = parseStrictBookingTimeZone(input.timeZone);
|
|
315
|
+
if (timeZone === null) return {
|
|
316
|
+
ok: false,
|
|
317
|
+
field: "timeZone",
|
|
318
|
+
reason: "invalid_time_zone",
|
|
319
|
+
value: typeof input.timeZone === "string" ? input.timeZone : ""
|
|
320
|
+
};
|
|
321
|
+
return {
|
|
322
|
+
ok: true,
|
|
323
|
+
value: {
|
|
324
|
+
startsAt,
|
|
325
|
+
timeZone,
|
|
326
|
+
locale: input.locale
|
|
327
|
+
}
|
|
328
|
+
};
|
|
309
329
|
}
|
|
310
330
|
function toScheduledBookingDateTime(input) {
|
|
311
331
|
const result = parseScheduledBookingDateTime(input);
|
|
@@ -3435,6 +3455,111 @@ const mediaSchema$1 = z.object({
|
|
|
3435
3455
|
transform: transformSchema$1.optional()
|
|
3436
3456
|
});
|
|
3437
3457
|
//#endregion
|
|
3458
|
+
//#region ../theme-core/src/buttons/effectClassification.ts
|
|
3459
|
+
/**
|
|
3460
|
+
* Exhaustive live policy for every registered effect id.
|
|
3461
|
+
*
|
|
3462
|
+
* The resolver consumes the transition payload directly, so adding an effect
|
|
3463
|
+
* cannot update classification without also defining its runtime behavior.
|
|
3464
|
+
*/
|
|
3465
|
+
const BUTTON_EFFECT_POLICIES = {
|
|
3466
|
+
"darken-background": {
|
|
3467
|
+
classification: "colour-transition",
|
|
3468
|
+
transition: {
|
|
3469
|
+
kind: "adjust-shade",
|
|
3470
|
+
direction: "darker"
|
|
3471
|
+
}
|
|
3472
|
+
},
|
|
3473
|
+
"lighten-background": {
|
|
3474
|
+
classification: "colour-transition",
|
|
3475
|
+
transition: {
|
|
3476
|
+
kind: "adjust-shade",
|
|
3477
|
+
direction: "lighter"
|
|
3478
|
+
}
|
|
3479
|
+
},
|
|
3480
|
+
"background-on-hover": {
|
|
3481
|
+
classification: "colour-transition",
|
|
3482
|
+
transition: { kind: "replace-background" }
|
|
3483
|
+
},
|
|
3484
|
+
"background-on-hover-alpha": {
|
|
3485
|
+
classification: "unsupported-colour",
|
|
3486
|
+
reason: "alpha_requires_surface"
|
|
3487
|
+
},
|
|
3488
|
+
"fade-background": {
|
|
3489
|
+
classification: "unsupported-colour",
|
|
3490
|
+
reason: "changes_element_opacity"
|
|
3491
|
+
},
|
|
3492
|
+
"opacity-reduce": {
|
|
3493
|
+
classification: "unsupported-colour",
|
|
3494
|
+
reason: "changes_element_opacity"
|
|
3495
|
+
},
|
|
3496
|
+
"gradient-text": {
|
|
3497
|
+
classification: "unsupported-colour",
|
|
3498
|
+
reason: "changes_foreground"
|
|
3499
|
+
},
|
|
3500
|
+
"text-color-change": {
|
|
3501
|
+
classification: "unsupported-colour",
|
|
3502
|
+
reason: "changes_foreground"
|
|
3503
|
+
},
|
|
3504
|
+
"border-color-change": {
|
|
3505
|
+
classification: "unsupported-colour",
|
|
3506
|
+
reason: "changes_border"
|
|
3507
|
+
},
|
|
3508
|
+
"aurora-glow": {
|
|
3509
|
+
classification: "unsupported-background-overlay",
|
|
3510
|
+
reason: "unresolved_background_overlay"
|
|
3511
|
+
},
|
|
3512
|
+
"cosmic-stardust": {
|
|
3513
|
+
classification: "unsupported-background-overlay",
|
|
3514
|
+
reason: "unresolved_background_overlay"
|
|
3515
|
+
},
|
|
3516
|
+
"gradient-border-fill": {
|
|
3517
|
+
classification: "unsupported-background-overlay",
|
|
3518
|
+
reason: "unresolved_background_overlay"
|
|
3519
|
+
},
|
|
3520
|
+
"animated-gradient-border-fill": {
|
|
3521
|
+
classification: "unsupported-background-overlay",
|
|
3522
|
+
reason: "unresolved_background_overlay"
|
|
3523
|
+
},
|
|
3524
|
+
"nav-underline": {
|
|
3525
|
+
classification: "not-button",
|
|
3526
|
+
reason: "not_button_effect"
|
|
3527
|
+
},
|
|
3528
|
+
"nav-frosted-base": {
|
|
3529
|
+
classification: "not-button",
|
|
3530
|
+
reason: "not_button_effect"
|
|
3531
|
+
},
|
|
3532
|
+
"nav-frosted-hover": {
|
|
3533
|
+
classification: "not-button",
|
|
3534
|
+
reason: "not_button_effect"
|
|
3535
|
+
},
|
|
3536
|
+
"nav-frosted-active": {
|
|
3537
|
+
classification: "not-button",
|
|
3538
|
+
reason: "not_button_effect"
|
|
3539
|
+
},
|
|
3540
|
+
"animated-gradient": { classification: "non-colour" },
|
|
3541
|
+
"border-glow": { classification: "non-colour" },
|
|
3542
|
+
"drop-shadow": { classification: "non-colour" },
|
|
3543
|
+
"inner-shadow": { classification: "non-colour" },
|
|
3544
|
+
"neumorphic-shadow": { classification: "non-colour" },
|
|
3545
|
+
"outer-glow": { classification: "non-colour" },
|
|
3546
|
+
"retro-3d-shadow": { classification: "non-colour" },
|
|
3547
|
+
"scale-up": { classification: "non-colour" },
|
|
3548
|
+
"scale-down": { classification: "non-colour" },
|
|
3549
|
+
lift: { classification: "non-colour" },
|
|
3550
|
+
"press-down": { classification: "non-colour" },
|
|
3551
|
+
pop: { classification: "non-colour" },
|
|
3552
|
+
"border-bottom-grow": { classification: "non-colour" },
|
|
3553
|
+
"sketchy-border": { classification: "non-colour" },
|
|
3554
|
+
"pulse-animation": { classification: "non-colour" }
|
|
3555
|
+
};
|
|
3556
|
+
function getButtonEffectPolicy(effectId) {
|
|
3557
|
+
return Object.prototype.hasOwnProperty.call(BUTTON_EFFECT_POLICIES, effectId) ? BUTTON_EFFECT_POLICIES[effectId] : null;
|
|
3558
|
+
}
|
|
3559
|
+
function classifyButtonEffectId(effectId) {
|
|
3560
|
+
return getButtonEffectPolicy(effectId)?.classification ?? "unknown";
|
|
3561
|
+
}
|
|
3562
|
+
//#endregion
|
|
3438
3563
|
//#region ../theme-core/src/buttons/types.ts
|
|
3439
3564
|
/**
|
|
3440
3565
|
* Standard semantic variant roles a theme exposes.
|
|
@@ -3451,6 +3576,20 @@ const VARIANT_ROLES = [
|
|
|
3451
3576
|
"tertiary",
|
|
3452
3577
|
"accent"
|
|
3453
3578
|
];
|
|
3579
|
+
function parseOpaqueButtonColourToken(value) {
|
|
3580
|
+
const token = parseThemeColorToken(value);
|
|
3581
|
+
if (token === null) return null;
|
|
3582
|
+
const parts = parseColorTokenParts(token);
|
|
3583
|
+
return parts.kind === "token" && parts.opacityPercent === null ? token : null;
|
|
3584
|
+
}
|
|
3585
|
+
function unsafeAsOpaqueButtonColourToken(value) {
|
|
3586
|
+
return value;
|
|
3587
|
+
}
|
|
3588
|
+
const opaqueButtonColourTokenSchema = themeColorTokenSchema.refine((value) => parseOpaqueButtonColourToken(value) !== null, "Button colour tokens must be opaque").transform((value) => {
|
|
3589
|
+
const token = parseOpaqueButtonColourToken(value);
|
|
3590
|
+
if (token === null) throw new Error("Invariant: opaque button token passed its schema");
|
|
3591
|
+
return token;
|
|
3592
|
+
});
|
|
3454
3593
|
const cornerStyleSchema = z$1.enum([
|
|
3455
3594
|
"square",
|
|
3456
3595
|
"rounded",
|
|
@@ -3552,7 +3691,7 @@ const buttonSizesSchema = z$1.object({
|
|
|
3552
3691
|
lg,
|
|
3553
3692
|
xl: xl ?? lg
|
|
3554
3693
|
}));
|
|
3555
|
-
const
|
|
3694
|
+
const canonicalButtonGlobalSettingsSchema = z$1.object({
|
|
3556
3695
|
cornerStyle: cornerStyleSchema,
|
|
3557
3696
|
cornerRadius: z$1.number().min(0).max(24).optional(),
|
|
3558
3697
|
/**
|
|
@@ -3583,11 +3722,12 @@ const buttonGlobalSettingsSchema = z$1.object({
|
|
|
3583
3722
|
paddingPreset: buttonPaddingPresetSchema.optional(),
|
|
3584
3723
|
hoverTransform: hoverTransformSchema,
|
|
3585
3724
|
hoverColor: hoverColorSchema,
|
|
3586
|
-
hoverColorToken:
|
|
3725
|
+
hoverColorToken: opaqueButtonColourTokenSchema.optional(),
|
|
3587
3726
|
gradientStyle: gradientStyleSchema.optional(),
|
|
3588
3727
|
gradientAngle: z$1.number().min(0).max(360).optional(),
|
|
3589
3728
|
gradientSharpness: gradientSharpnessSchema.optional()
|
|
3590
3729
|
});
|
|
3730
|
+
const buttonGlobalSettingsSchema = z$1.preprocess(normalizeLegacyButtonGlobalInput, canonicalButtonGlobalSettingsSchema);
|
|
3591
3731
|
const gradientDirectionSchema$1 = z$1.enum([
|
|
3592
3732
|
"to-r",
|
|
3593
3733
|
"to-l",
|
|
@@ -3601,27 +3741,33 @@ const gradientDirectionSchema$1 = z$1.enum([
|
|
|
3601
3741
|
const buttonBackgroundSchema = z$1.discriminatedUnion("type", [
|
|
3602
3742
|
z$1.object({
|
|
3603
3743
|
type: z$1.literal("solid"),
|
|
3604
|
-
colorToken:
|
|
3744
|
+
colorToken: opaqueButtonColourTokenSchema
|
|
3605
3745
|
}),
|
|
3606
3746
|
z$1.object({
|
|
3607
3747
|
type: z$1.literal("gradient"),
|
|
3608
|
-
stops: z$1.array(
|
|
3609
|
-
|
|
3748
|
+
stops: z$1.array(opaqueButtonColourTokenSchema).min(2).transform((stops) => {
|
|
3749
|
+
const [first, second, ...rest] = stops;
|
|
3750
|
+
if (first === void 0 || second === void 0) throw new Error("Invariant: gradient stops passed the minimum length schema");
|
|
3751
|
+
return [
|
|
3752
|
+
first,
|
|
3753
|
+
second,
|
|
3754
|
+
...rest
|
|
3755
|
+
];
|
|
3756
|
+
}),
|
|
3757
|
+
direction: gradientDirectionSchema$1,
|
|
3758
|
+
foregroundToken: opaqueButtonColourTokenSchema
|
|
3610
3759
|
}),
|
|
3611
|
-
z$1.object({
|
|
3760
|
+
z$1.object({
|
|
3761
|
+
type: z$1.literal("surface"),
|
|
3762
|
+
role: z$1.literal("link")
|
|
3763
|
+
})
|
|
3612
3764
|
]);
|
|
3613
3765
|
const effectApplicationSchema$1 = z$1.object({
|
|
3614
3766
|
effectId: z$1.string(),
|
|
3615
|
-
options: z$1.record(z$1.string(), z$1.
|
|
3616
|
-
});
|
|
3617
|
-
const buttonBorderSchema = z$1.object({
|
|
3618
|
-
widthClass: z$1.string(),
|
|
3619
|
-
colorToken: themeColorTokenSchema
|
|
3620
|
-
});
|
|
3621
|
-
const buttonVariantAffordanceSchema = z$1.object({
|
|
3622
|
-
iconId: z$1.string().min(1),
|
|
3623
|
-
colorToken: themeColorTokenSchema.optional()
|
|
3767
|
+
options: z$1.record(z$1.string(), z$1.json()).optional()
|
|
3624
3768
|
});
|
|
3769
|
+
const buttonBorderSchema = z$1.object({ widthClass: z$1.string() });
|
|
3770
|
+
const buttonVariantAffordanceSchema = z$1.object({ iconId: z$1.string().min(1) });
|
|
3625
3771
|
const variantShadowSchema = z$1.object({
|
|
3626
3772
|
elevation: z$1.enum([
|
|
3627
3773
|
"none",
|
|
@@ -3662,27 +3808,170 @@ const variantSizeOverridesSchema = z$1.object({
|
|
|
3662
3808
|
* default (e.g. link-style variants declaring zero horizontal padding at
|
|
3663
3809
|
* every size).
|
|
3664
3810
|
*/
|
|
3665
|
-
const
|
|
3811
|
+
const canonicalButtonVariantSchema = z$1.object({
|
|
3666
3812
|
id: z$1.string(),
|
|
3667
3813
|
name: z$1.string().min(1).max(20),
|
|
3668
3814
|
enabled: z$1.boolean(),
|
|
3669
3815
|
priority: prioritySchema,
|
|
3670
3816
|
background: buttonBackgroundSchema,
|
|
3671
|
-
textColorToken: themeColorTokenSchema,
|
|
3672
3817
|
/** Tailwind radius token (e.g. `'rounded-md'`). Omit to inherit from `global.cornerStyle`. */
|
|
3673
3818
|
borderRadius: z$1.string().optional(),
|
|
3674
3819
|
shadow: variantShadowSchema.optional(),
|
|
3675
3820
|
border: buttonBorderSchema.optional(),
|
|
3676
|
-
hoverBackgroundToken:
|
|
3821
|
+
hoverBackgroundToken: opaqueButtonColourTokenSchema.optional(),
|
|
3677
3822
|
effects: variantEffectsSchema.optional(),
|
|
3678
3823
|
sizes: variantSizeOverridesSchema.optional(),
|
|
3679
3824
|
affordance: buttonVariantAffordanceSchema.optional()
|
|
3680
3825
|
});
|
|
3826
|
+
/**
|
|
3827
|
+
* Temporary persisted-theme admission boundary for issue #1206.
|
|
3828
|
+
*
|
|
3829
|
+
* Production inventory on 2026-07-22 found 22 rows using the old independent
|
|
3830
|
+
* `textColorToken`/border colour shape. New source and all downstream code use
|
|
3831
|
+
* only the canonical relationship. Delete this preprocessor after the reviewed
|
|
3832
|
+
* production rewrite reports zero legacy rows.
|
|
3833
|
+
*/
|
|
3834
|
+
const buttonVariantSchema = z$1.preprocess(normalizeLegacyButtonVariantInput, canonicalButtonVariantSchema);
|
|
3681
3835
|
const buttonSystemSchema = z$1.object({
|
|
3682
3836
|
global: buttonGlobalSettingsSchema,
|
|
3683
3837
|
variants: z$1.array(buttonVariantSchema).min(1).max(6),
|
|
3684
3838
|
sizes: buttonSizesSchema.optional()
|
|
3685
3839
|
});
|
|
3840
|
+
function normalizeLegacyButtonVariantInput(input) {
|
|
3841
|
+
if (!isUnknownRecord(input)) return input;
|
|
3842
|
+
const background = input.background;
|
|
3843
|
+
if (!isUnknownRecord(background)) return input;
|
|
3844
|
+
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;
|
|
3845
|
+
const { textColorToken, ...withoutLegacyText } = input;
|
|
3846
|
+
const normalizedBorder = isUnknownRecord(input.border) && typeof input.border.widthClass === "string" ? { widthClass: input.border.widthClass } : input.border;
|
|
3847
|
+
const normalizedAffordance = isUnknownRecord(input.affordance) && typeof input.affordance.iconId === "string" ? { iconId: input.affordance.iconId } : input.affordance;
|
|
3848
|
+
const normalizedEffects = normalizeLegacyButtonEffects(input.effects, background.type);
|
|
3849
|
+
const hoverBackgroundToken = stripLegacyTokenAlpha(input.hoverBackgroundToken);
|
|
3850
|
+
if (background.type === "transparent") return {
|
|
3851
|
+
...withoutLegacyText,
|
|
3852
|
+
background: {
|
|
3853
|
+
type: "surface",
|
|
3854
|
+
role: "link"
|
|
3855
|
+
},
|
|
3856
|
+
border: normalizedBorder,
|
|
3857
|
+
affordance: normalizedAffordance,
|
|
3858
|
+
effects: normalizedEffects,
|
|
3859
|
+
hoverBackgroundToken
|
|
3860
|
+
};
|
|
3861
|
+
if (background.type === "gradient") {
|
|
3862
|
+
const stops = Array.isArray(background.stops) ? background.stops.map(stripLegacyTokenAlpha) : background.stops;
|
|
3863
|
+
return {
|
|
3864
|
+
...withoutLegacyText,
|
|
3865
|
+
background: {
|
|
3866
|
+
...background,
|
|
3867
|
+
stops,
|
|
3868
|
+
foregroundToken: stripLegacyTokenAlpha(background.foregroundToken ?? textColorToken)
|
|
3869
|
+
},
|
|
3870
|
+
border: normalizedBorder,
|
|
3871
|
+
affordance: normalizedAffordance,
|
|
3872
|
+
effects: normalizedEffects,
|
|
3873
|
+
hoverBackgroundToken
|
|
3874
|
+
};
|
|
3875
|
+
}
|
|
3876
|
+
return {
|
|
3877
|
+
...withoutLegacyText,
|
|
3878
|
+
background: background.type === "solid" ? {
|
|
3879
|
+
...background,
|
|
3880
|
+
colorToken: stripLegacyTokenAlpha(background.colorToken)
|
|
3881
|
+
} : background,
|
|
3882
|
+
border: normalizedBorder,
|
|
3883
|
+
affordance: normalizedAffordance,
|
|
3884
|
+
effects: normalizedEffects,
|
|
3885
|
+
hoverBackgroundToken
|
|
3886
|
+
};
|
|
3887
|
+
}
|
|
3888
|
+
function normalizeLegacyButtonGlobalInput(input) {
|
|
3889
|
+
if (!isUnknownRecord(input)) return input;
|
|
3890
|
+
const hoverColorToken = stripLegacyTokenAlpha(input.hoverColorToken);
|
|
3891
|
+
return hoverColorToken === input.hoverColorToken ? input : {
|
|
3892
|
+
...input,
|
|
3893
|
+
hoverColorToken
|
|
3894
|
+
};
|
|
3895
|
+
}
|
|
3896
|
+
function hasLegacyAlphaToken(input, background) {
|
|
3897
|
+
const stops = isUnknownArray(background.stops) ? background.stops : [];
|
|
3898
|
+
return [
|
|
3899
|
+
input.hoverBackgroundToken,
|
|
3900
|
+
background.colorToken,
|
|
3901
|
+
background.foregroundToken,
|
|
3902
|
+
...stops
|
|
3903
|
+
].some((token) => stripLegacyTokenAlpha(token) !== token);
|
|
3904
|
+
}
|
|
3905
|
+
function stripLegacyTokenAlpha(value) {
|
|
3906
|
+
if (typeof value !== "string") return value;
|
|
3907
|
+
const slashIndex = value.indexOf("/");
|
|
3908
|
+
return slashIndex < 0 ? value : value.slice(0, slashIndex);
|
|
3909
|
+
}
|
|
3910
|
+
function hasLegacyButtonEffects(input) {
|
|
3911
|
+
if (!isUnknownRecord(input)) return false;
|
|
3912
|
+
return [
|
|
3913
|
+
"base",
|
|
3914
|
+
"hover",
|
|
3915
|
+
"active",
|
|
3916
|
+
"focus"
|
|
3917
|
+
].some((state) => {
|
|
3918
|
+
const effects = input[state];
|
|
3919
|
+
return Array.isArray(effects) && effects.some((effect) => {
|
|
3920
|
+
if (!isUnknownRecord(effect) || typeof effect.effectId !== "string") return true;
|
|
3921
|
+
const classification = classifyButtonEffectId(effect.effectId);
|
|
3922
|
+
if (classification !== "colour-transition" && classification !== "non-colour") return true;
|
|
3923
|
+
return effect.effectId === "background-on-hover" && isUnknownRecord(effect.options) && stripLegacyTokenAlpha(effect.options.colorToken) !== effect.options.colorToken;
|
|
3924
|
+
});
|
|
3925
|
+
});
|
|
3926
|
+
}
|
|
3927
|
+
function normalizeLegacyButtonEffects(input, backgroundType) {
|
|
3928
|
+
if (!isUnknownRecord(input)) return input;
|
|
3929
|
+
const normalized = {};
|
|
3930
|
+
for (const state of [
|
|
3931
|
+
"base",
|
|
3932
|
+
"hover",
|
|
3933
|
+
"active",
|
|
3934
|
+
"focus"
|
|
3935
|
+
]) {
|
|
3936
|
+
const effects = input[state];
|
|
3937
|
+
if (!Array.isArray(effects)) continue;
|
|
3938
|
+
const safeEffects = effects.flatMap((effect) => {
|
|
3939
|
+
if (!isUnknownRecord(effect) || typeof effect.effectId !== "string") return [];
|
|
3940
|
+
const classification = classifyButtonEffectId(effect.effectId);
|
|
3941
|
+
if (classification === "non-colour") return [effect];
|
|
3942
|
+
if (classification !== "colour-transition") return [];
|
|
3943
|
+
if (effect.effectId === "background-on-hover") {
|
|
3944
|
+
const options = isUnknownRecord(effect.options) ? effect.options : null;
|
|
3945
|
+
const colorToken = options === null ? null : parseOpaqueButtonColourToken(stripLegacyTokenAlpha(options.colorToken));
|
|
3946
|
+
return colorToken === null ? [] : [{
|
|
3947
|
+
...effect,
|
|
3948
|
+
options: {
|
|
3949
|
+
...options,
|
|
3950
|
+
colorToken
|
|
3951
|
+
}
|
|
3952
|
+
}];
|
|
3953
|
+
}
|
|
3954
|
+
if (backgroundType !== "solid") return [];
|
|
3955
|
+
const rawAmount = isUnknownRecord(effect.options) ? effect.options.amount : void 0;
|
|
3956
|
+
const amount = typeof rawAmount === "number" && rawAmount > 0 ? Math.max(100, Math.round(rawAmount / 100) * 100) : 100;
|
|
3957
|
+
return [{
|
|
3958
|
+
...effect,
|
|
3959
|
+
options: {
|
|
3960
|
+
...isUnknownRecord(effect.options) ? effect.options : {},
|
|
3961
|
+
amount
|
|
3962
|
+
}
|
|
3963
|
+
}];
|
|
3964
|
+
});
|
|
3965
|
+
if (safeEffects.length > 0) normalized[state] = safeEffects;
|
|
3966
|
+
}
|
|
3967
|
+
return Object.keys(normalized).length === 0 ? void 0 : normalized;
|
|
3968
|
+
}
|
|
3969
|
+
function isUnknownRecord(value) {
|
|
3970
|
+
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
3971
|
+
}
|
|
3972
|
+
function isUnknownArray(value) {
|
|
3973
|
+
return Array.isArray(value);
|
|
3974
|
+
}
|
|
3686
3975
|
buttonSizeNameSchema.options;
|
|
3687
3976
|
//#endregion
|
|
3688
3977
|
//#region ../theme-core/src/buttons/personalities/types.ts
|
|
@@ -3709,7 +3998,7 @@ function defineButtonPersonality(input) {
|
|
|
3709
3998
|
name: input.name,
|
|
3710
3999
|
description: input.description,
|
|
3711
4000
|
tags: input.tags,
|
|
3712
|
-
buttonSystem: input.buttonSystem
|
|
4001
|
+
buttonSystem: buttonSystemSchema.parse(input.buttonSystem)
|
|
3713
4002
|
};
|
|
3714
4003
|
}
|
|
3715
4004
|
//#endregion
|
|
@@ -3762,19 +4051,15 @@ const brushedWash = defineButtonPersonality({
|
|
|
3762
4051
|
background: {
|
|
3763
4052
|
type: "gradient",
|
|
3764
4053
|
stops: ["primary", "accent"],
|
|
3765
|
-
direction: "to-r"
|
|
4054
|
+
direction: "to-r",
|
|
4055
|
+
foregroundToken: "primaryForeground"
|
|
3766
4056
|
},
|
|
3767
|
-
textColorToken: "primaryForeground",
|
|
3768
4057
|
borderRadius: "rounded-lg",
|
|
3769
4058
|
shadow: {
|
|
3770
4059
|
elevation: "low",
|
|
3771
4060
|
softness: "soft",
|
|
3772
4061
|
position: "bottom"
|
|
3773
|
-
}
|
|
3774
|
-
effects: { hover: [{
|
|
3775
|
-
effectId: "opacity-reduce",
|
|
3776
|
-
options: { reduction: -15 }
|
|
3777
|
-
}] }
|
|
4062
|
+
}
|
|
3778
4063
|
},
|
|
3779
4064
|
{
|
|
3780
4065
|
id: "secondary",
|
|
@@ -3784,32 +4069,27 @@ const brushedWash = defineButtonPersonality({
|
|
|
3784
4069
|
background: {
|
|
3785
4070
|
type: "gradient",
|
|
3786
4071
|
stops: ["secondary", "accent"],
|
|
3787
|
-
direction: "to-br"
|
|
4072
|
+
direction: "to-br",
|
|
4073
|
+
foregroundToken: "primaryForeground"
|
|
3788
4074
|
},
|
|
3789
|
-
textColorToken: "primaryForeground",
|
|
3790
4075
|
borderRadius: "rounded-lg",
|
|
3791
4076
|
shadow: {
|
|
3792
4077
|
elevation: "low",
|
|
3793
4078
|
softness: "soft",
|
|
3794
4079
|
position: "bottom"
|
|
3795
|
-
}
|
|
3796
|
-
effects: { hover: [{
|
|
3797
|
-
effectId: "opacity-reduce",
|
|
3798
|
-
options: { reduction: -15 }
|
|
3799
|
-
}] }
|
|
4080
|
+
}
|
|
3800
4081
|
},
|
|
3801
4082
|
{
|
|
3802
4083
|
id: "outline",
|
|
3803
4084
|
name: "Outline",
|
|
3804
4085
|
enabled: true,
|
|
3805
4086
|
priority: 3,
|
|
3806
|
-
background: {
|
|
3807
|
-
|
|
3808
|
-
|
|
3809
|
-
border: {
|
|
3810
|
-
widthClass: "border",
|
|
3811
|
-
colorToken: "primary"
|
|
4087
|
+
background: {
|
|
4088
|
+
type: "surface",
|
|
4089
|
+
role: "link"
|
|
3812
4090
|
},
|
|
4091
|
+
borderRadius: "rounded-lg",
|
|
4092
|
+
border: { widthClass: "border" },
|
|
3813
4093
|
effects: { hover: [{
|
|
3814
4094
|
effectId: "background-on-hover",
|
|
3815
4095
|
options: { colorToken: "surface" }
|
|
@@ -3820,8 +4100,10 @@ const brushedWash = defineButtonPersonality({
|
|
|
3820
4100
|
name: "Ghost",
|
|
3821
4101
|
enabled: true,
|
|
3822
4102
|
priority: 3,
|
|
3823
|
-
background: {
|
|
3824
|
-
|
|
4103
|
+
background: {
|
|
4104
|
+
type: "surface",
|
|
4105
|
+
role: "link"
|
|
4106
|
+
},
|
|
3825
4107
|
borderRadius: "rounded-lg",
|
|
3826
4108
|
effects: { hover: [{
|
|
3827
4109
|
effectId: "background-on-hover",
|
|
@@ -3867,7 +4149,6 @@ const confidentChip = defineButtonPersonality({
|
|
|
3867
4149
|
type: "solid",
|
|
3868
4150
|
colorToken: "primary"
|
|
3869
4151
|
},
|
|
3870
|
-
textColorToken: "primaryForeground",
|
|
3871
4152
|
borderRadius: "rounded-md",
|
|
3872
4153
|
shadow: {
|
|
3873
4154
|
elevation: "medium",
|
|
@@ -3877,7 +4158,7 @@ const confidentChip = defineButtonPersonality({
|
|
|
3877
4158
|
effects: {
|
|
3878
4159
|
hover: [{
|
|
3879
4160
|
effectId: "darken-background",
|
|
3880
|
-
options: { amount:
|
|
4161
|
+
options: { amount: 100 }
|
|
3881
4162
|
}],
|
|
3882
4163
|
active: [{
|
|
3883
4164
|
effectId: "scale-down",
|
|
@@ -3894,12 +4175,8 @@ const confidentChip = defineButtonPersonality({
|
|
|
3894
4175
|
type: "solid",
|
|
3895
4176
|
colorToken: "surface"
|
|
3896
4177
|
},
|
|
3897
|
-
textColorToken: "text",
|
|
3898
4178
|
borderRadius: "rounded-md",
|
|
3899
|
-
border: {
|
|
3900
|
-
widthClass: "border",
|
|
3901
|
-
colorToken: "border"
|
|
3902
|
-
},
|
|
4179
|
+
border: { widthClass: "border" },
|
|
3903
4180
|
effects: { hover: [{
|
|
3904
4181
|
effectId: "background-on-hover",
|
|
3905
4182
|
options: { colorToken: "background" }
|
|
@@ -3910,13 +4187,12 @@ const confidentChip = defineButtonPersonality({
|
|
|
3910
4187
|
name: "Outline",
|
|
3911
4188
|
enabled: true,
|
|
3912
4189
|
priority: 3,
|
|
3913
|
-
background: {
|
|
3914
|
-
|
|
3915
|
-
|
|
3916
|
-
border: {
|
|
3917
|
-
widthClass: "border",
|
|
3918
|
-
colorToken: "primary"
|
|
4190
|
+
background: {
|
|
4191
|
+
type: "surface",
|
|
4192
|
+
role: "link"
|
|
3919
4193
|
},
|
|
4194
|
+
borderRadius: "rounded-md",
|
|
4195
|
+
border: { widthClass: "border" },
|
|
3920
4196
|
effects: { hover: [{
|
|
3921
4197
|
effectId: "background-on-hover",
|
|
3922
4198
|
options: { colorToken: "surface" }
|
|
@@ -3927,8 +4203,10 @@ const confidentChip = defineButtonPersonality({
|
|
|
3927
4203
|
name: "Ghost",
|
|
3928
4204
|
enabled: true,
|
|
3929
4205
|
priority: 3,
|
|
3930
|
-
background: {
|
|
3931
|
-
|
|
4206
|
+
background: {
|
|
4207
|
+
type: "surface",
|
|
4208
|
+
role: "link"
|
|
4209
|
+
},
|
|
3932
4210
|
borderRadius: "rounded-md",
|
|
3933
4211
|
effects: { hover: [{
|
|
3934
4212
|
effectId: "background-on-hover",
|
|
@@ -3991,7 +4269,6 @@ const earthPill = defineButtonPersonality({
|
|
|
3991
4269
|
type: "solid",
|
|
3992
4270
|
colorToken: "primary"
|
|
3993
4271
|
},
|
|
3994
|
-
textColorToken: "primaryForeground",
|
|
3995
4272
|
borderRadius: "rounded-full",
|
|
3996
4273
|
shadow: {
|
|
3997
4274
|
elevation: "low",
|
|
@@ -4017,13 +4294,12 @@ const earthPill = defineButtonPersonality({
|
|
|
4017
4294
|
name: "Secondary",
|
|
4018
4295
|
enabled: true,
|
|
4019
4296
|
priority: 2,
|
|
4020
|
-
background: {
|
|
4021
|
-
|
|
4022
|
-
|
|
4023
|
-
border: {
|
|
4024
|
-
widthClass: "border",
|
|
4025
|
-
colorToken: "primary"
|
|
4297
|
+
background: {
|
|
4298
|
+
type: "surface",
|
|
4299
|
+
role: "link"
|
|
4026
4300
|
},
|
|
4301
|
+
borderRadius: "rounded-full",
|
|
4302
|
+
border: { widthClass: "border" },
|
|
4027
4303
|
effects: { hover: [{
|
|
4028
4304
|
effectId: "background-on-hover",
|
|
4029
4305
|
options: { colorToken: "muted" }
|
|
@@ -4034,13 +4310,12 @@ const earthPill = defineButtonPersonality({
|
|
|
4034
4310
|
name: "Outline",
|
|
4035
4311
|
enabled: true,
|
|
4036
4312
|
priority: 3,
|
|
4037
|
-
background: {
|
|
4038
|
-
|
|
4039
|
-
|
|
4040
|
-
border: {
|
|
4041
|
-
widthClass: "border",
|
|
4042
|
-
colorToken: "border"
|
|
4313
|
+
background: {
|
|
4314
|
+
type: "surface",
|
|
4315
|
+
role: "link"
|
|
4043
4316
|
},
|
|
4317
|
+
borderRadius: "rounded-full",
|
|
4318
|
+
border: { widthClass: "border" },
|
|
4044
4319
|
effects: { hover: [{
|
|
4045
4320
|
effectId: "background-on-hover",
|
|
4046
4321
|
options: { colorToken: "surfaceAlt" }
|
|
@@ -4051,8 +4326,10 @@ const earthPill = defineButtonPersonality({
|
|
|
4051
4326
|
name: "Ghost",
|
|
4052
4327
|
enabled: true,
|
|
4053
4328
|
priority: 3,
|
|
4054
|
-
background: {
|
|
4055
|
-
|
|
4329
|
+
background: {
|
|
4330
|
+
type: "surface",
|
|
4331
|
+
role: "link"
|
|
4332
|
+
},
|
|
4056
4333
|
borderRadius: "rounded-full",
|
|
4057
4334
|
shadow: {
|
|
4058
4335
|
elevation: "none",
|
|
@@ -4073,11 +4350,7 @@ const earthPill = defineButtonPersonality({
|
|
|
4073
4350
|
padding: "0.625rem 0",
|
|
4074
4351
|
fontSize: "text-xl"
|
|
4075
4352
|
}
|
|
4076
|
-
}
|
|
4077
|
-
effects: { hover: [{
|
|
4078
|
-
effectId: "opacity-reduce",
|
|
4079
|
-
options: { reduction: 25 }
|
|
4080
|
-
}] }
|
|
4353
|
+
}
|
|
4081
4354
|
}
|
|
4082
4355
|
]
|
|
4083
4356
|
}
|
|
@@ -4113,8 +4386,10 @@ const editorialLink = defineButtonPersonality({
|
|
|
4113
4386
|
name: "Primary",
|
|
4114
4387
|
enabled: true,
|
|
4115
4388
|
priority: 1,
|
|
4116
|
-
background: {
|
|
4117
|
-
|
|
4389
|
+
background: {
|
|
4390
|
+
type: "surface",
|
|
4391
|
+
role: "link"
|
|
4392
|
+
},
|
|
4118
4393
|
borderRadius: "rounded-none",
|
|
4119
4394
|
sizes: {
|
|
4120
4395
|
sm: { padding: "0.25rem 0" },
|
|
@@ -4136,8 +4411,10 @@ const editorialLink = defineButtonPersonality({
|
|
|
4136
4411
|
name: "Secondary",
|
|
4137
4412
|
enabled: true,
|
|
4138
4413
|
priority: 2,
|
|
4139
|
-
background: {
|
|
4140
|
-
|
|
4414
|
+
background: {
|
|
4415
|
+
type: "surface",
|
|
4416
|
+
role: "link"
|
|
4417
|
+
},
|
|
4141
4418
|
borderRadius: "rounded-none",
|
|
4142
4419
|
sizes: {
|
|
4143
4420
|
sm: { padding: "0.25rem 0" },
|
|
@@ -4159,8 +4436,10 @@ const editorialLink = defineButtonPersonality({
|
|
|
4159
4436
|
name: "Outline",
|
|
4160
4437
|
enabled: true,
|
|
4161
4438
|
priority: 3,
|
|
4162
|
-
background: {
|
|
4163
|
-
|
|
4439
|
+
background: {
|
|
4440
|
+
type: "surface",
|
|
4441
|
+
role: "link"
|
|
4442
|
+
},
|
|
4164
4443
|
borderRadius: "rounded-none",
|
|
4165
4444
|
sizes: {
|
|
4166
4445
|
sm: { padding: "0.25rem 0" },
|
|
@@ -4182,19 +4461,17 @@ const editorialLink = defineButtonPersonality({
|
|
|
4182
4461
|
name: "Ghost",
|
|
4183
4462
|
enabled: true,
|
|
4184
4463
|
priority: 3,
|
|
4185
|
-
background: {
|
|
4186
|
-
|
|
4464
|
+
background: {
|
|
4465
|
+
type: "surface",
|
|
4466
|
+
role: "link"
|
|
4467
|
+
},
|
|
4187
4468
|
borderRadius: "rounded-none",
|
|
4188
4469
|
sizes: {
|
|
4189
4470
|
sm: { padding: "0.25rem 0" },
|
|
4190
4471
|
md: { padding: "0.5rem 0" },
|
|
4191
4472
|
lg: { padding: "0.625rem 0" },
|
|
4192
4473
|
xl: { padding: "0.75rem 0" }
|
|
4193
|
-
}
|
|
4194
|
-
effects: { hover: [{
|
|
4195
|
-
effectId: "opacity-reduce",
|
|
4196
|
-
options: { reduction: -20 }
|
|
4197
|
-
}] }
|
|
4474
|
+
}
|
|
4198
4475
|
}
|
|
4199
4476
|
]
|
|
4200
4477
|
}
|
|
@@ -4256,12 +4533,8 @@ const flatInk = defineButtonPersonality({
|
|
|
4256
4533
|
type: "solid",
|
|
4257
4534
|
colorToken: "primary"
|
|
4258
4535
|
},
|
|
4259
|
-
textColorToken: "primaryForeground",
|
|
4260
4536
|
borderRadius: "rounded-lg",
|
|
4261
|
-
affordance: {
|
|
4262
|
-
iconId: "ArrowRight",
|
|
4263
|
-
colorToken: "accent"
|
|
4264
|
-
},
|
|
4537
|
+
affordance: { iconId: "ArrowRight" },
|
|
4265
4538
|
effects: { hover: [{
|
|
4266
4539
|
effectId: "lift",
|
|
4267
4540
|
options: { translateY: "-2px" }
|
|
@@ -4275,13 +4548,12 @@ const flatInk = defineButtonPersonality({
|
|
|
4275
4548
|
name: "Secondary",
|
|
4276
4549
|
enabled: true,
|
|
4277
4550
|
priority: 2,
|
|
4278
|
-
background: {
|
|
4279
|
-
|
|
4280
|
-
|
|
4281
|
-
border: {
|
|
4282
|
-
widthClass: "border",
|
|
4283
|
-
colorToken: "border"
|
|
4551
|
+
background: {
|
|
4552
|
+
type: "surface",
|
|
4553
|
+
role: "link"
|
|
4284
4554
|
},
|
|
4555
|
+
borderRadius: "rounded-lg",
|
|
4556
|
+
border: { widthClass: "border" },
|
|
4285
4557
|
effects: { hover: [{
|
|
4286
4558
|
effectId: "lift",
|
|
4287
4559
|
options: { translateY: "-2px" }
|
|
@@ -4299,12 +4571,8 @@ const flatInk = defineButtonPersonality({
|
|
|
4299
4571
|
type: "solid",
|
|
4300
4572
|
colorToken: "accent"
|
|
4301
4573
|
},
|
|
4302
|
-
textColorToken: "accentForeground",
|
|
4303
4574
|
borderRadius: "rounded-lg",
|
|
4304
|
-
affordance: {
|
|
4305
|
-
iconId: "ArrowRight",
|
|
4306
|
-
colorToken: "accentForeground"
|
|
4307
|
-
},
|
|
4575
|
+
affordance: { iconId: "ArrowRight" },
|
|
4308
4576
|
effects: { hover: [{
|
|
4309
4577
|
effectId: "lift",
|
|
4310
4578
|
options: { translateY: "-2px" }
|
|
@@ -4367,7 +4635,6 @@ const inkStamp = defineButtonPersonality({
|
|
|
4367
4635
|
type: "solid",
|
|
4368
4636
|
colorToken: "primary"
|
|
4369
4637
|
},
|
|
4370
|
-
textColorToken: "primaryForeground",
|
|
4371
4638
|
borderRadius: "rounded-md",
|
|
4372
4639
|
effects: {
|
|
4373
4640
|
hover: [{
|
|
@@ -4388,13 +4655,12 @@ const inkStamp = defineButtonPersonality({
|
|
|
4388
4655
|
name: "Secondary",
|
|
4389
4656
|
enabled: true,
|
|
4390
4657
|
priority: 2,
|
|
4391
|
-
background: {
|
|
4392
|
-
|
|
4393
|
-
|
|
4394
|
-
border: {
|
|
4395
|
-
widthClass: "border-2",
|
|
4396
|
-
colorToken: "primary"
|
|
4658
|
+
background: {
|
|
4659
|
+
type: "surface",
|
|
4660
|
+
role: "link"
|
|
4397
4661
|
},
|
|
4662
|
+
borderRadius: "rounded-md",
|
|
4663
|
+
border: { widthClass: "border-2" },
|
|
4398
4664
|
effects: { hover: [{
|
|
4399
4665
|
effectId: "background-on-hover",
|
|
4400
4666
|
options: { colorToken: "surface" }
|
|
@@ -4405,13 +4671,12 @@ const inkStamp = defineButtonPersonality({
|
|
|
4405
4671
|
name: "Outline",
|
|
4406
4672
|
enabled: true,
|
|
4407
4673
|
priority: 3,
|
|
4408
|
-
background: {
|
|
4409
|
-
|
|
4410
|
-
|
|
4411
|
-
border: {
|
|
4412
|
-
widthClass: "border-2",
|
|
4413
|
-
colorToken: "border"
|
|
4674
|
+
background: {
|
|
4675
|
+
type: "surface",
|
|
4676
|
+
role: "link"
|
|
4414
4677
|
},
|
|
4678
|
+
borderRadius: "rounded-md",
|
|
4679
|
+
border: { widthClass: "border-2" },
|
|
4415
4680
|
effects: { hover: [{
|
|
4416
4681
|
effectId: "background-on-hover",
|
|
4417
4682
|
options: { colorToken: "surface" }
|
|
@@ -4422,8 +4687,10 @@ const inkStamp = defineButtonPersonality({
|
|
|
4422
4687
|
name: "Ghost",
|
|
4423
4688
|
enabled: true,
|
|
4424
4689
|
priority: 3,
|
|
4425
|
-
background: {
|
|
4426
|
-
|
|
4690
|
+
background: {
|
|
4691
|
+
type: "surface",
|
|
4692
|
+
role: "link"
|
|
4693
|
+
},
|
|
4427
4694
|
borderRadius: "rounded-none",
|
|
4428
4695
|
sizes: {
|
|
4429
4696
|
sm: {
|
|
@@ -4516,7 +4783,6 @@ const joyStamp = defineButtonPersonality({
|
|
|
4516
4783
|
type: "solid",
|
|
4517
4784
|
colorToken: "primary"
|
|
4518
4785
|
},
|
|
4519
|
-
textColorToken: "primaryForeground",
|
|
4520
4786
|
borderRadius: "rounded-full",
|
|
4521
4787
|
shadow: {
|
|
4522
4788
|
elevation: "high",
|
|
@@ -4530,13 +4796,12 @@ const joyStamp = defineButtonPersonality({
|
|
|
4530
4796
|
name: "Secondary",
|
|
4531
4797
|
enabled: true,
|
|
4532
4798
|
priority: 2,
|
|
4533
|
-
background: {
|
|
4534
|
-
|
|
4535
|
-
|
|
4536
|
-
border: {
|
|
4537
|
-
widthClass: "border-2",
|
|
4538
|
-
colorToken: "text"
|
|
4799
|
+
background: {
|
|
4800
|
+
type: "surface",
|
|
4801
|
+
role: "link"
|
|
4539
4802
|
},
|
|
4803
|
+
borderRadius: "rounded-full",
|
|
4804
|
+
border: { widthClass: "border-2" },
|
|
4540
4805
|
shadow: {
|
|
4541
4806
|
elevation: "high",
|
|
4542
4807
|
softness: "hard",
|
|
@@ -4601,12 +4866,8 @@ const ornateRitual = defineButtonPersonality({
|
|
|
4601
4866
|
type: "solid",
|
|
4602
4867
|
colorToken: "primary"
|
|
4603
4868
|
},
|
|
4604
|
-
textColorToken: "primaryForeground",
|
|
4605
4869
|
borderRadius: "rounded-md",
|
|
4606
|
-
border: {
|
|
4607
|
-
widthClass: "border",
|
|
4608
|
-
colorToken: "primary"
|
|
4609
|
-
},
|
|
4870
|
+
border: { widthClass: "border" },
|
|
4610
4871
|
effects: {
|
|
4611
4872
|
hover: [{
|
|
4612
4873
|
effectId: "background-on-hover",
|
|
@@ -4627,12 +4888,8 @@ const ornateRitual = defineButtonPersonality({
|
|
|
4627
4888
|
type: "solid",
|
|
4628
4889
|
colorToken: "secondary"
|
|
4629
4890
|
},
|
|
4630
|
-
textColorToken: "primaryForeground",
|
|
4631
4891
|
borderRadius: "rounded-md",
|
|
4632
|
-
border: {
|
|
4633
|
-
widthClass: "border",
|
|
4634
|
-
colorToken: "primary"
|
|
4635
|
-
},
|
|
4892
|
+
border: { widthClass: "border" },
|
|
4636
4893
|
effects: { hover: [{
|
|
4637
4894
|
effectId: "background-on-hover",
|
|
4638
4895
|
options: { colorToken: "surface" }
|
|
@@ -4643,13 +4900,12 @@ const ornateRitual = defineButtonPersonality({
|
|
|
4643
4900
|
name: "Outline",
|
|
4644
4901
|
enabled: true,
|
|
4645
4902
|
priority: 3,
|
|
4646
|
-
background: {
|
|
4647
|
-
|
|
4648
|
-
|
|
4649
|
-
border: {
|
|
4650
|
-
widthClass: "border",
|
|
4651
|
-
colorToken: "primary"
|
|
4903
|
+
background: {
|
|
4904
|
+
type: "surface",
|
|
4905
|
+
role: "link"
|
|
4652
4906
|
},
|
|
4907
|
+
borderRadius: "rounded-md",
|
|
4908
|
+
border: { widthClass: "border" },
|
|
4653
4909
|
effects: { hover: [{
|
|
4654
4910
|
effectId: "background-on-hover",
|
|
4655
4911
|
options: { colorToken: "muted" }
|
|
@@ -4660,8 +4916,10 @@ const ornateRitual = defineButtonPersonality({
|
|
|
4660
4916
|
name: "Ghost",
|
|
4661
4917
|
enabled: true,
|
|
4662
4918
|
priority: 3,
|
|
4663
|
-
background: {
|
|
4664
|
-
|
|
4919
|
+
background: {
|
|
4920
|
+
type: "surface",
|
|
4921
|
+
role: "link"
|
|
4922
|
+
},
|
|
4665
4923
|
borderRadius: "rounded-none",
|
|
4666
4924
|
sizes: {
|
|
4667
4925
|
sm: {
|
|
@@ -4743,14 +5001,10 @@ const pebble = defineButtonPersonality({
|
|
|
4743
5001
|
type: "solid",
|
|
4744
5002
|
colorToken: "primary"
|
|
4745
5003
|
},
|
|
4746
|
-
textColorToken: "primaryForeground",
|
|
4747
5004
|
borderRadius: "rounded-full",
|
|
4748
5005
|
effects: { hover: [{
|
|
4749
|
-
effectId: "background
|
|
4750
|
-
options: {
|
|
4751
|
-
colorToken: "primary",
|
|
4752
|
-
opacity: 88
|
|
4753
|
-
}
|
|
5006
|
+
effectId: "darken-background",
|
|
5007
|
+
options: { amount: 100 }
|
|
4754
5008
|
}] }
|
|
4755
5009
|
},
|
|
4756
5010
|
{
|
|
@@ -4758,13 +5012,12 @@ const pebble = defineButtonPersonality({
|
|
|
4758
5012
|
name: "Secondary",
|
|
4759
5013
|
enabled: true,
|
|
4760
5014
|
priority: 2,
|
|
4761
|
-
background: {
|
|
4762
|
-
|
|
4763
|
-
|
|
4764
|
-
border: {
|
|
4765
|
-
widthClass: "border-2",
|
|
4766
|
-
colorToken: "accent"
|
|
5015
|
+
background: {
|
|
5016
|
+
type: "surface",
|
|
5017
|
+
role: "link"
|
|
4767
5018
|
},
|
|
5019
|
+
borderRadius: "rounded-full",
|
|
5020
|
+
border: { widthClass: "border-2" },
|
|
4768
5021
|
effects: { hover: [{
|
|
4769
5022
|
effectId: "background-on-hover",
|
|
4770
5023
|
options: { colorToken: "accent" }
|
|
@@ -4775,13 +5028,12 @@ const pebble = defineButtonPersonality({
|
|
|
4775
5028
|
name: "Outline",
|
|
4776
5029
|
enabled: true,
|
|
4777
5030
|
priority: 3,
|
|
4778
|
-
background: {
|
|
4779
|
-
|
|
4780
|
-
|
|
4781
|
-
border: {
|
|
4782
|
-
widthClass: "border",
|
|
4783
|
-
colorToken: "border"
|
|
5031
|
+
background: {
|
|
5032
|
+
type: "surface",
|
|
5033
|
+
role: "link"
|
|
4784
5034
|
},
|
|
5035
|
+
borderRadius: "rounded-full",
|
|
5036
|
+
border: { widthClass: "border" },
|
|
4785
5037
|
effects: { hover: [{
|
|
4786
5038
|
effectId: "background-on-hover",
|
|
4787
5039
|
options: { colorToken: "surface" }
|
|
@@ -4792,8 +5044,10 @@ const pebble = defineButtonPersonality({
|
|
|
4792
5044
|
name: "Ghost",
|
|
4793
5045
|
enabled: true,
|
|
4794
5046
|
priority: 3,
|
|
4795
|
-
background: {
|
|
4796
|
-
|
|
5047
|
+
background: {
|
|
5048
|
+
type: "surface",
|
|
5049
|
+
role: "link"
|
|
5050
|
+
},
|
|
4797
5051
|
borderRadius: "rounded-full",
|
|
4798
5052
|
sizes: {
|
|
4799
5053
|
sm: {
|
|
@@ -4809,11 +5063,7 @@ const pebble = defineButtonPersonality({
|
|
|
4809
5063
|
padding: "0.75rem 1.5rem",
|
|
4810
5064
|
fontSize: "text-xl"
|
|
4811
5065
|
}
|
|
4812
|
-
}
|
|
4813
|
-
effects: { hover: [{
|
|
4814
|
-
effectId: "opacity-reduce",
|
|
4815
|
-
options: { reduction: 30 }
|
|
4816
|
-
}] }
|
|
5066
|
+
}
|
|
4817
5067
|
}
|
|
4818
5068
|
]
|
|
4819
5069
|
}
|
|
@@ -4875,15 +5125,11 @@ const quietArrow = defineButtonPersonality({
|
|
|
4875
5125
|
type: "solid",
|
|
4876
5126
|
colorToken: "primary"
|
|
4877
5127
|
},
|
|
4878
|
-
textColorToken: "primaryForeground",
|
|
4879
5128
|
borderRadius: "rounded-xl",
|
|
4880
5129
|
affordance: { iconId: "ArrowRight" },
|
|
4881
5130
|
effects: { hover: [{
|
|
4882
|
-
effectId: "background
|
|
4883
|
-
options: {
|
|
4884
|
-
colorToken: "primary",
|
|
4885
|
-
opacity: 90
|
|
4886
|
-
}
|
|
5131
|
+
effectId: "darken-background",
|
|
5132
|
+
options: { amount: 100 }
|
|
4887
5133
|
}] }
|
|
4888
5134
|
},
|
|
4889
5135
|
{
|
|
@@ -4891,13 +5137,12 @@ const quietArrow = defineButtonPersonality({
|
|
|
4891
5137
|
name: "Secondary",
|
|
4892
5138
|
enabled: true,
|
|
4893
5139
|
priority: 2,
|
|
4894
|
-
background: {
|
|
4895
|
-
|
|
4896
|
-
|
|
4897
|
-
border: {
|
|
4898
|
-
widthClass: "border",
|
|
4899
|
-
colorToken: "primary"
|
|
5140
|
+
background: {
|
|
5141
|
+
type: "surface",
|
|
5142
|
+
role: "link"
|
|
4900
5143
|
},
|
|
5144
|
+
borderRadius: "rounded-xl",
|
|
5145
|
+
border: { widthClass: "border" },
|
|
4901
5146
|
affordance: { iconId: "ArrowRight" },
|
|
4902
5147
|
effects: { hover: [{
|
|
4903
5148
|
effectId: "background-on-hover",
|
|
@@ -4909,21 +5154,22 @@ const quietArrow = defineButtonPersonality({
|
|
|
4909
5154
|
name: "Outline",
|
|
4910
5155
|
enabled: true,
|
|
4911
5156
|
priority: 3,
|
|
4912
|
-
background: {
|
|
4913
|
-
|
|
5157
|
+
background: {
|
|
5158
|
+
type: "surface",
|
|
5159
|
+
role: "link"
|
|
5160
|
+
},
|
|
4914
5161
|
borderRadius: "rounded-xl",
|
|
4915
|
-
border: {
|
|
4916
|
-
widthClass: "border",
|
|
4917
|
-
colorToken: "primary"
|
|
4918
|
-
}
|
|
5162
|
+
border: { widthClass: "border" }
|
|
4919
5163
|
},
|
|
4920
5164
|
{
|
|
4921
5165
|
id: "ghost",
|
|
4922
5166
|
name: "Ghost",
|
|
4923
5167
|
enabled: true,
|
|
4924
5168
|
priority: 3,
|
|
4925
|
-
background: {
|
|
4926
|
-
|
|
5169
|
+
background: {
|
|
5170
|
+
type: "surface",
|
|
5171
|
+
role: "link"
|
|
5172
|
+
},
|
|
4927
5173
|
borderRadius: "rounded-xl"
|
|
4928
5174
|
}
|
|
4929
5175
|
]
|
|
@@ -4987,7 +5233,6 @@ const showtimePill = defineButtonPersonality({
|
|
|
4987
5233
|
type: "solid",
|
|
4988
5234
|
colorToken: "primary"
|
|
4989
5235
|
},
|
|
4990
|
-
textColorToken: "background",
|
|
4991
5236
|
borderRadius: "rounded-full",
|
|
4992
5237
|
effects: { hover: [{ effectId: "pop" }] }
|
|
4993
5238
|
},
|
|
@@ -4996,13 +5241,12 @@ const showtimePill = defineButtonPersonality({
|
|
|
4996
5241
|
name: "Secondary",
|
|
4997
5242
|
enabled: true,
|
|
4998
5243
|
priority: 2,
|
|
4999
|
-
background: {
|
|
5000
|
-
|
|
5001
|
-
|
|
5002
|
-
border: {
|
|
5003
|
-
widthClass: "border-2",
|
|
5004
|
-
colorToken: "primary"
|
|
5244
|
+
background: {
|
|
5245
|
+
type: "surface",
|
|
5246
|
+
role: "link"
|
|
5005
5247
|
},
|
|
5248
|
+
borderRadius: "rounded-full",
|
|
5249
|
+
border: { widthClass: "border-2" },
|
|
5006
5250
|
effects: { hover: [{ effectId: "pop" }] }
|
|
5007
5251
|
},
|
|
5008
5252
|
{
|
|
@@ -5014,7 +5258,6 @@ const showtimePill = defineButtonPersonality({
|
|
|
5014
5258
|
type: "solid",
|
|
5015
5259
|
colorToken: "secondary"
|
|
5016
5260
|
},
|
|
5017
|
-
textColorToken: "primary",
|
|
5018
5261
|
borderRadius: "rounded-full",
|
|
5019
5262
|
effects: { hover: [{ effectId: "pop" }] }
|
|
5020
5263
|
},
|
|
@@ -5027,12 +5270,8 @@ const showtimePill = defineButtonPersonality({
|
|
|
5027
5270
|
type: "solid",
|
|
5028
5271
|
colorToken: "background"
|
|
5029
5272
|
},
|
|
5030
|
-
textColorToken: "primary",
|
|
5031
5273
|
borderRadius: "rounded-full",
|
|
5032
|
-
border: {
|
|
5033
|
-
widthClass: "border-2",
|
|
5034
|
-
colorToken: "primary"
|
|
5035
|
-
},
|
|
5274
|
+
border: { widthClass: "border-2" },
|
|
5036
5275
|
effects: { hover: [{
|
|
5037
5276
|
effectId: "background-on-hover",
|
|
5038
5277
|
options: { colorToken: "surface" }
|
|
@@ -5043,13 +5282,12 @@ const showtimePill = defineButtonPersonality({
|
|
|
5043
5282
|
name: "Outline",
|
|
5044
5283
|
enabled: true,
|
|
5045
5284
|
priority: 3,
|
|
5046
|
-
background: {
|
|
5047
|
-
|
|
5048
|
-
|
|
5049
|
-
border: {
|
|
5050
|
-
widthClass: "border-2",
|
|
5051
|
-
colorToken: "primary"
|
|
5285
|
+
background: {
|
|
5286
|
+
type: "surface",
|
|
5287
|
+
role: "link"
|
|
5052
5288
|
},
|
|
5289
|
+
borderRadius: "rounded-full",
|
|
5290
|
+
border: { widthClass: "border-2" },
|
|
5053
5291
|
effects: { hover: [{
|
|
5054
5292
|
effectId: "background-on-hover",
|
|
5055
5293
|
options: { colorToken: "background" }
|
|
@@ -5060,8 +5298,10 @@ const showtimePill = defineButtonPersonality({
|
|
|
5060
5298
|
name: "Ghost",
|
|
5061
5299
|
enabled: true,
|
|
5062
5300
|
priority: 3,
|
|
5063
|
-
background: {
|
|
5064
|
-
|
|
5301
|
+
background: {
|
|
5302
|
+
type: "surface",
|
|
5303
|
+
role: "link"
|
|
5304
|
+
},
|
|
5065
5305
|
borderRadius: "rounded-full",
|
|
5066
5306
|
effects: { hover: [{
|
|
5067
5307
|
effectId: "background-on-hover",
|
|
@@ -5072,104 +5312,151 @@ const showtimePill = defineButtonPersonality({
|
|
|
5072
5312
|
}
|
|
5073
5313
|
});
|
|
5074
5314
|
//#endregion
|
|
5075
|
-
//#region ../theme-core/src/buttons/personalities/
|
|
5076
|
-
|
|
5077
|
-
|
|
5078
|
-
|
|
5079
|
-
|
|
5080
|
-
|
|
5081
|
-
|
|
5082
|
-
|
|
5083
|
-
|
|
5084
|
-
|
|
5085
|
-
|
|
5315
|
+
//#region ../theme-core/src/buttons/personalities/soft-pill.ts
|
|
5316
|
+
/**
|
|
5317
|
+
* Soft Pill — rounded-full pill buttons with a hover lift. The default for
|
|
5318
|
+
* Calm Studio and Modern Wellness; reads as quietly modern and welcoming.
|
|
5319
|
+
*/
|
|
5320
|
+
const softPill = defineButtonPersonality({
|
|
5321
|
+
id: "soft-pill",
|
|
5322
|
+
name: "Soft Pill",
|
|
5323
|
+
description: "Rounded pills with a gentle lift on hover. Quietly modern.",
|
|
5324
|
+
tags: {
|
|
5325
|
+
tone: "classic",
|
|
5326
|
+
energy: "calm",
|
|
5327
|
+
motion: "subtle",
|
|
5328
|
+
era: "organic"
|
|
5329
|
+
},
|
|
5330
|
+
buttonSystem: {
|
|
5331
|
+
global: {
|
|
5332
|
+
cornerStyle: "pill",
|
|
5333
|
+
shadow: "low",
|
|
5334
|
+
textTransform: "none",
|
|
5335
|
+
fontWeight: 500,
|
|
5336
|
+
borderWidth: 2,
|
|
5337
|
+
hoverTransform: "lift",
|
|
5338
|
+
hoverColor: "none"
|
|
5086
5339
|
},
|
|
5087
|
-
|
|
5088
|
-
|
|
5089
|
-
|
|
5090
|
-
|
|
5091
|
-
|
|
5092
|
-
|
|
5093
|
-
|
|
5094
|
-
|
|
5095
|
-
|
|
5340
|
+
variants: [
|
|
5341
|
+
{
|
|
5342
|
+
id: "primary",
|
|
5343
|
+
name: "Primary",
|
|
5344
|
+
enabled: true,
|
|
5345
|
+
priority: 1,
|
|
5346
|
+
background: {
|
|
5347
|
+
type: "solid",
|
|
5348
|
+
colorToken: "primary"
|
|
5349
|
+
},
|
|
5350
|
+
borderRadius: "rounded-full",
|
|
5351
|
+
shadow: {
|
|
5352
|
+
elevation: "low",
|
|
5353
|
+
softness: "soft",
|
|
5354
|
+
position: "bottom"
|
|
5355
|
+
},
|
|
5356
|
+
effects: {
|
|
5357
|
+
hover: [{
|
|
5358
|
+
effectId: "lift",
|
|
5359
|
+
options: { translateY: "-1px" }
|
|
5360
|
+
}],
|
|
5361
|
+
active: [{
|
|
5362
|
+
effectId: "scale-down",
|
|
5363
|
+
options: { scale: "0.98" }
|
|
5364
|
+
}]
|
|
5365
|
+
}
|
|
5096
5366
|
},
|
|
5097
|
-
|
|
5098
|
-
|
|
5099
|
-
|
|
5100
|
-
|
|
5101
|
-
|
|
5102
|
-
|
|
5103
|
-
|
|
5104
|
-
|
|
5105
|
-
colorToken: "primary"
|
|
5106
|
-
},
|
|
5107
|
-
textColorToken: "primaryForeground",
|
|
5108
|
-
borderRadius: "rounded-full",
|
|
5109
|
-
shadow: {
|
|
5110
|
-
elevation: "low",
|
|
5111
|
-
softness: "soft",
|
|
5112
|
-
position: "bottom"
|
|
5113
|
-
},
|
|
5114
|
-
effects: {
|
|
5115
|
-
hover: [{
|
|
5116
|
-
effectId: "lift",
|
|
5117
|
-
options: { translateY: "-1px" }
|
|
5118
|
-
}],
|
|
5119
|
-
active: [{
|
|
5120
|
-
effectId: "scale-down",
|
|
5121
|
-
options: { scale: "0.98" }
|
|
5122
|
-
}]
|
|
5123
|
-
}
|
|
5367
|
+
{
|
|
5368
|
+
id: "secondary",
|
|
5369
|
+
name: "Secondary",
|
|
5370
|
+
enabled: true,
|
|
5371
|
+
priority: 2,
|
|
5372
|
+
background: {
|
|
5373
|
+
type: "surface",
|
|
5374
|
+
role: "link"
|
|
5124
5375
|
},
|
|
5125
|
-
|
|
5126
|
-
|
|
5127
|
-
|
|
5128
|
-
|
|
5129
|
-
|
|
5130
|
-
|
|
5131
|
-
|
|
5132
|
-
|
|
5133
|
-
|
|
5134
|
-
|
|
5135
|
-
|
|
5136
|
-
|
|
5137
|
-
|
|
5138
|
-
|
|
5139
|
-
|
|
5140
|
-
}] }
|
|
5376
|
+
borderRadius: "rounded-full",
|
|
5377
|
+
border: { widthClass: "border-2" },
|
|
5378
|
+
effects: { hover: [{
|
|
5379
|
+
effectId: "background-on-hover",
|
|
5380
|
+
options: { colorToken: "surface" }
|
|
5381
|
+
}] }
|
|
5382
|
+
},
|
|
5383
|
+
{
|
|
5384
|
+
id: "outline",
|
|
5385
|
+
name: "Outline",
|
|
5386
|
+
enabled: true,
|
|
5387
|
+
priority: 3,
|
|
5388
|
+
background: {
|
|
5389
|
+
type: "surface",
|
|
5390
|
+
role: "link"
|
|
5141
5391
|
},
|
|
5142
|
-
|
|
5143
|
-
|
|
5144
|
-
|
|
5145
|
-
|
|
5146
|
-
|
|
5147
|
-
|
|
5148
|
-
|
|
5149
|
-
|
|
5150
|
-
|
|
5151
|
-
|
|
5152
|
-
|
|
5153
|
-
|
|
5154
|
-
|
|
5155
|
-
|
|
5156
|
-
|
|
5157
|
-
}] }
|
|
5392
|
+
borderRadius: "rounded-full",
|
|
5393
|
+
border: { widthClass: "border" },
|
|
5394
|
+
effects: { hover: [{
|
|
5395
|
+
effectId: "background-on-hover",
|
|
5396
|
+
options: { colorToken: "surface" }
|
|
5397
|
+
}] }
|
|
5398
|
+
},
|
|
5399
|
+
{
|
|
5400
|
+
id: "ghost",
|
|
5401
|
+
name: "Ghost",
|
|
5402
|
+
enabled: true,
|
|
5403
|
+
priority: 3,
|
|
5404
|
+
background: {
|
|
5405
|
+
type: "surface",
|
|
5406
|
+
role: "link"
|
|
5158
5407
|
},
|
|
5159
|
-
|
|
5160
|
-
|
|
5161
|
-
|
|
5162
|
-
|
|
5163
|
-
|
|
5164
|
-
|
|
5165
|
-
|
|
5166
|
-
|
|
5167
|
-
|
|
5168
|
-
|
|
5169
|
-
|
|
5170
|
-
|
|
5171
|
-
|
|
5172
|
-
|
|
5408
|
+
borderRadius: "rounded-full",
|
|
5409
|
+
effects: { hover: [{
|
|
5410
|
+
effectId: "background-on-hover",
|
|
5411
|
+
options: { colorToken: "surface" }
|
|
5412
|
+
}] }
|
|
5413
|
+
}
|
|
5414
|
+
]
|
|
5415
|
+
}
|
|
5416
|
+
});
|
|
5417
|
+
//#endregion
|
|
5418
|
+
//#region ../theme-core/src/buttons/personalities/two-tone-pill.ts
|
|
5419
|
+
const solidSecondary = {
|
|
5420
|
+
id: "secondary",
|
|
5421
|
+
name: "Secondary",
|
|
5422
|
+
enabled: true,
|
|
5423
|
+
priority: 2,
|
|
5424
|
+
background: {
|
|
5425
|
+
type: "solid",
|
|
5426
|
+
colorToken: unsafeAsOpaqueButtonColourToken("secondary")
|
|
5427
|
+
},
|
|
5428
|
+
borderRadius: "rounded-full",
|
|
5429
|
+
shadow: {
|
|
5430
|
+
elevation: "none",
|
|
5431
|
+
softness: null,
|
|
5432
|
+
position: "bottom"
|
|
5433
|
+
},
|
|
5434
|
+
effects: {
|
|
5435
|
+
hover: [{
|
|
5436
|
+
effectId: "background-on-hover-alpha",
|
|
5437
|
+
options: {
|
|
5438
|
+
colorToken: "secondary",
|
|
5439
|
+
opacity: 88
|
|
5440
|
+
}
|
|
5441
|
+
}],
|
|
5442
|
+
active: [{
|
|
5443
|
+
effectId: "scale-down",
|
|
5444
|
+
options: { scale: "0.98" }
|
|
5445
|
+
}]
|
|
5446
|
+
}
|
|
5447
|
+
};
|
|
5448
|
+
//#endregion
|
|
5449
|
+
//#region ../theme-core/src/buttons/personalities/index.ts
|
|
5450
|
+
const buttonPersonalities = [
|
|
5451
|
+
softPill,
|
|
5452
|
+
defineButtonPersonality({
|
|
5453
|
+
id: "two-tone-pill",
|
|
5454
|
+
name: "Two-tone Pill",
|
|
5455
|
+
description: "Rounded pills with distinct solid primary and secondary brand colours.",
|
|
5456
|
+
tags: softPill.tags,
|
|
5457
|
+
buttonSystem: {
|
|
5458
|
+
...softPill.buttonSystem,
|
|
5459
|
+
variants: softPill.buttonSystem.variants.map((variant) => variant.id === "secondary" ? solidSecondary : variant)
|
|
5173
5460
|
}
|
|
5174
5461
|
}),
|
|
5175
5462
|
earthPill,
|
|
@@ -5185,6 +5472,27 @@ const buttonPersonalities = [
|
|
|
5185
5472
|
quietArrow
|
|
5186
5473
|
];
|
|
5187
5474
|
new Map(buttonPersonalities.map((p) => [p.id, p]));
|
|
5475
|
+
buttonPersonalities.map((personality) => ({
|
|
5476
|
+
id: personality.id,
|
|
5477
|
+
name: personality.name,
|
|
5478
|
+
description: personality.description,
|
|
5479
|
+
category: presetCategory(personality),
|
|
5480
|
+
buttonSystem: personality.buttonSystem,
|
|
5481
|
+
compatibility: {
|
|
5482
|
+
...personality.tags.tone ? { tones: [personality.tags.tone] } : {},
|
|
5483
|
+
...personality.tags.energy ? { energies: [personality.tags.energy] } : {}
|
|
5484
|
+
}
|
|
5485
|
+
}));
|
|
5486
|
+
function presetCategory(personality) {
|
|
5487
|
+
switch (personality.tags.era) {
|
|
5488
|
+
case "retro": return "retro";
|
|
5489
|
+
case "editorial": return "minimal";
|
|
5490
|
+
case "organic": return "artistic";
|
|
5491
|
+
case "modern": return personality.tags.tone === "bold" ? "modern" : "technical";
|
|
5492
|
+
case "technical": return "technical";
|
|
5493
|
+
case void 0: return "modern";
|
|
5494
|
+
}
|
|
5495
|
+
}
|
|
5188
5496
|
//#endregion
|
|
5189
5497
|
//#region ../theme-core/src/cards/types.ts
|
|
5190
5498
|
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
|
|
@@ -16218,9 +16669,12 @@ function responsiveTwoColumn({ image, text, ratioFrom, imagePositionFrom, gapCla
|
|
|
16218
16669
|
//#endregion
|
|
16219
16670
|
//#region ../blocks/src/system/node/fragments/styledCard.ts
|
|
16220
16671
|
function styledCard(children, opts, ...mods) {
|
|
16221
|
-
const baseClassName = opts.baseClassName ?? "rb-relative rb-isolate rb-overflow-
|
|
16222
|
-
const defaultBackgroundLayer = el("div", {
|
|
16223
|
-
|
|
16672
|
+
const baseClassName = opts.baseClassName ?? "rb-relative rb-isolate rb-overflow-visible rb-border";
|
|
16673
|
+
const defaultBackgroundLayer = el("div", {
|
|
16674
|
+
className: "rb-absolute rb-inset-0 rb-z-neg-10 rb-h-full rb-w-full rb-pointer-events-none rb-bg-surface",
|
|
16675
|
+
style: { borderRadius: "inherit" }
|
|
16676
|
+
});
|
|
16677
|
+
const backgroundNode = backgroundFrame(opts.backgroundFrom);
|
|
16224
16678
|
const style = {
|
|
16225
16679
|
...opts.style ?? {},
|
|
16226
16680
|
borderColor: { $bind: {
|
|
@@ -16247,7 +16701,7 @@ function styledCard(children, opts, ...mods) {
|
|
|
16247
16701
|
...style ? { style } : {}
|
|
16248
16702
|
}, [
|
|
16249
16703
|
defaultBackgroundLayer,
|
|
16250
|
-
|
|
16704
|
+
backgroundNode,
|
|
16251
16705
|
...children
|
|
16252
16706
|
], ...mods);
|
|
16253
16707
|
}
|
|
@@ -17027,9 +17481,15 @@ function createButtonGroup(options = {}) {
|
|
|
17027
17481
|
//#endregion
|
|
17028
17482
|
//#region ../blocks/src/system/fields/ctas.ts
|
|
17029
17483
|
function createCtasRepeater(options = {}) {
|
|
17030
|
-
const { id = "ctas", label = "Calls to action", itemLabel = "CTA", minItems = 0, maxItems, button } = options;
|
|
17484
|
+
const { id = "ctas", label = "Calls to action", itemLabel = "CTA", minItems = 0, maxItems, button, defaultValue } = options;
|
|
17485
|
+
const fieldId = id;
|
|
17486
|
+
const buttonField = createButtonGroup({
|
|
17487
|
+
showGroupLabel: false,
|
|
17488
|
+
...button ?? {},
|
|
17489
|
+
flattenInRepeater: true
|
|
17490
|
+
});
|
|
17031
17491
|
return {
|
|
17032
|
-
id,
|
|
17492
|
+
id: fieldId,
|
|
17033
17493
|
type: "repeater",
|
|
17034
17494
|
label,
|
|
17035
17495
|
itemLabel,
|
|
@@ -17038,11 +17498,8 @@ function createCtasRepeater(options = {}) {
|
|
|
17038
17498
|
maxItems,
|
|
17039
17499
|
required: false,
|
|
17040
17500
|
allowConversion: true,
|
|
17041
|
-
|
|
17042
|
-
|
|
17043
|
-
...button ?? {},
|
|
17044
|
-
flattenInRepeater: true
|
|
17045
|
-
})] }
|
|
17501
|
+
...defaultValue !== void 0 ? { defaultValue: [...defaultValue] } : {},
|
|
17502
|
+
schema: { fields: [buttonField] }
|
|
17046
17503
|
};
|
|
17047
17504
|
}
|
|
17048
17505
|
//#endregion
|
|
@@ -17092,6 +17549,7 @@ const heroCtaRowFragment = defineFragment({
|
|
|
17092
17549
|
label: "Calls to action",
|
|
17093
17550
|
itemLabel: "CTA",
|
|
17094
17551
|
maxItems: 3,
|
|
17552
|
+
defaultValue: [],
|
|
17095
17553
|
button: {
|
|
17096
17554
|
variants: [
|
|
17097
17555
|
{
|
|
@@ -17159,7 +17617,7 @@ const ctaCopyFragment = defineFragment({
|
|
|
17159
17617
|
eyebrowPath: "content.eyebrow",
|
|
17160
17618
|
titlePath: "content.title",
|
|
17161
17619
|
className: "cta-heading"
|
|
17162
|
-
}), richText({ className: "cta-content rb-prose rb-mx-auto rb-max-w-none" }, when("content
|
|
17620
|
+
}), richText({ className: "cta-content rb-prose rb-mx-auto rb-max-w-none" }, when("content"), bind("content"))]
|
|
17163
17621
|
});
|
|
17164
17622
|
//#endregion
|
|
17165
17623
|
//#region ../blocks/src/system/fragments/library/testimonialsHeading.ts
|
|
@@ -17256,7 +17714,7 @@ function buildTestimonialCard(...mods) {
|
|
|
17256
17714
|
}, 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())])], {
|
|
17257
17715
|
stylesFrom: "content._cardStyles",
|
|
17258
17716
|
backgroundFrom: "content._cardStyles.background",
|
|
17259
|
-
baseClassName: "rb-testimonial-card rb-relative rb-isolate rb-flex rb-h-full rb-flex-col rb-overflow-
|
|
17717
|
+
baseClassName: "rb-testimonial-card rb-relative rb-isolate rb-flex rb-h-full rb-flex-col rb-overflow-visible rb-p-8"
|
|
17260
17718
|
}, ...mods);
|
|
17261
17719
|
}
|
|
17262
17720
|
/**
|
|
@@ -17728,39 +18186,6 @@ const formEmbedFragment = defineFragment({
|
|
|
17728
18186
|
}
|
|
17729
18187
|
});
|
|
17730
18188
|
//#endregion
|
|
17731
|
-
//#region ../blocks/src/system/fragments/library/footerBottomText.ts
|
|
17732
|
-
const footerBottomTextFragment = defineFragment({
|
|
17733
|
-
id: "footerBottomText",
|
|
17734
|
-
title: "Footer Text",
|
|
17735
|
-
description: "Rich text content for the main footer body and optional bottom bar.",
|
|
17736
|
-
fields: [{
|
|
17737
|
-
id: "bodyText",
|
|
17738
|
-
type: "richText",
|
|
17739
|
-
label: "Body text",
|
|
17740
|
-
description: "Appears in the main footer area.",
|
|
17741
|
-
ui: { variant: "limited" }
|
|
17742
|
-
}, {
|
|
17743
|
-
id: "bottomText",
|
|
17744
|
-
type: "richText",
|
|
17745
|
-
label: "Bottom bar text",
|
|
17746
|
-
description: "Appears in the optional footer bottom bar.",
|
|
17747
|
-
ui: { variant: "limited" }
|
|
17748
|
-
}],
|
|
17749
|
-
layout: [richText({
|
|
17750
|
-
className: "rb-prose rb-prose-sm rb-mx-auto rb-max-w-3xl rb-text-center",
|
|
17751
|
-
style: textColorStyle("text/80")
|
|
17752
|
-
}, when("bodyText"), bind("bodyText", { transforms: [{
|
|
17753
|
-
id: "content.interpolateRichTextTokens",
|
|
17754
|
-
options: { tokens: ["year", "site_name"] }
|
|
17755
|
-
}] })), richText({
|
|
17756
|
-
className: "rb-prose rb-prose-sm rb-mx-auto rb-max-w-3xl rb-text-center",
|
|
17757
|
-
style: textColorStyle("text/80")
|
|
17758
|
-
}, when("bottomText"), bind("bottomText", { transforms: [{
|
|
17759
|
-
id: "content.interpolateRichTextTokens",
|
|
17760
|
-
options: { tokens: ["year", "site_name"] }
|
|
17761
|
-
}] }))]
|
|
17762
|
-
});
|
|
17763
|
-
//#endregion
|
|
17764
18189
|
//#region ../blocks/src/system/fragments/library/singleButton.ts
|
|
17765
18190
|
const singleButtonFragment = defineFragment({
|
|
17766
18191
|
id: "singleButton",
|
|
@@ -17933,7 +18358,7 @@ function createFaqAccordionLayout(options = {}) {
|
|
|
17933
18358
|
options: {
|
|
17934
18359
|
axis: "all",
|
|
17935
18360
|
includeSpacing: false,
|
|
17936
|
-
baseClass: "rb-faq-item rb-relative rb-isolate rb-overflow-
|
|
18361
|
+
baseClass: "rb-faq-item rb-relative rb-isolate rb-overflow-visible"
|
|
17937
18362
|
}
|
|
17938
18363
|
}]
|
|
17939
18364
|
},
|
|
@@ -18924,6 +19349,7 @@ function createBlockManifest(config) {
|
|
|
18924
19349
|
previewCustomize: config.previewCustomize,
|
|
18925
19350
|
category: config.category,
|
|
18926
19351
|
contentTypes: config.contentTypes ? [...config.contentTypes] : void 0,
|
|
19352
|
+
contentSource: config.contentSource,
|
|
18927
19353
|
tags: config.tags ? [...config.tags] : [],
|
|
18928
19354
|
icon: config.icon ?? "Box",
|
|
18929
19355
|
layout,
|
|
@@ -19057,7 +19483,6 @@ function splitLayoutWith(children) {
|
|
|
19057
19483
|
}
|
|
19058
19484
|
}),
|
|
19059
19485
|
renderBackgroundImage: false,
|
|
19060
|
-
allowOverflow: true,
|
|
19061
19486
|
baseClass: ""
|
|
19062
19487
|
});
|
|
19063
19488
|
}
|
|
@@ -19070,6 +19495,7 @@ const heroBlockDefinition = { manifest: createBlockManifest({
|
|
|
19070
19495
|
title: "Hero",
|
|
19071
19496
|
titleSource: "headline",
|
|
19072
19497
|
category: "layout",
|
|
19498
|
+
contentSource: { kind: "inline" },
|
|
19073
19499
|
includeContainerStyles: true,
|
|
19074
19500
|
promotedFields: ["_sectionStyles.background.image"],
|
|
19075
19501
|
fragments: [
|
|
@@ -19343,6 +19769,7 @@ const introBlockDefinition = { manifest: createBlockManifest({
|
|
|
19343
19769
|
id: "block.intro",
|
|
19344
19770
|
title: "Intro",
|
|
19345
19771
|
category: "layout",
|
|
19772
|
+
contentSource: { kind: "inline" },
|
|
19346
19773
|
includeContainerStyles: true,
|
|
19347
19774
|
titleSource: "title",
|
|
19348
19775
|
previewCustomize: { quickFieldPriority: [
|
|
@@ -19528,6 +19955,7 @@ const bodyTextBlockDefinition = { manifest: createBlockManifest({
|
|
|
19528
19955
|
title: "Body Text",
|
|
19529
19956
|
titleSource: "heading",
|
|
19530
19957
|
category: "content",
|
|
19958
|
+
contentSource: { kind: "inline" },
|
|
19531
19959
|
fragments: [{
|
|
19532
19960
|
fragment: bodyCopyFragment,
|
|
19533
19961
|
fieldPriority: 0
|
|
@@ -19584,6 +20012,10 @@ const blogPostBlockDefinition = {
|
|
|
19584
20012
|
description: "Highlights a single blog post with title, image, and excerpt.",
|
|
19585
20013
|
category: "blog",
|
|
19586
20014
|
contentTypes: ["post"],
|
|
20015
|
+
contentSource: {
|
|
20016
|
+
kind: "entries",
|
|
20017
|
+
contentType: "post"
|
|
20018
|
+
},
|
|
19587
20019
|
tags: [
|
|
19588
20020
|
"blog",
|
|
19589
20021
|
"post",
|
|
@@ -19685,7 +20117,7 @@ function postCard(children, ...mods) {
|
|
|
19685
20117
|
return styledCard(children, {
|
|
19686
20118
|
stylesFrom: "content._cardStyles",
|
|
19687
20119
|
backgroundFrom: "content._cardStyles.background",
|
|
19688
|
-
baseClassName: "rb-relative rb-isolate rb-overflow-
|
|
20120
|
+
baseClassName: "rb-relative rb-isolate rb-overflow-visible rb-border rb-flex rb-flex-col rb-h-full"
|
|
19689
20121
|
}, ...mods);
|
|
19690
20122
|
}
|
|
19691
20123
|
const gridPostCard = postCard([postImageLink("rb-h-48 rb-w-full rb-object-cover rb-transition-transform rb-hover-scale-105", {
|
|
@@ -19721,7 +20153,7 @@ const stackPostCard = styledCard([inline({
|
|
|
19721
20153
|
])])], {
|
|
19722
20154
|
stylesFrom: "content._cardStyles",
|
|
19723
20155
|
backgroundFrom: "content._cardStyles.background",
|
|
19724
|
-
baseClassName: "rb-relative rb-isolate rb-overflow-
|
|
20156
|
+
baseClassName: "rb-relative rb-isolate rb-overflow-visible rb-border"
|
|
19725
20157
|
}, repeat("data.posts", "post"));
|
|
19726
20158
|
const emptyState$2 = {
|
|
19727
20159
|
...styledCard([text({
|
|
@@ -19730,7 +20162,7 @@ const emptyState$2 = {
|
|
|
19730
20162
|
}, bind("content.emptyMessage", { fallback: "No posts published yet." }))], {
|
|
19731
20163
|
stylesFrom: "content._cardStyles",
|
|
19732
20164
|
backgroundFrom: "content._cardStyles.background",
|
|
19733
|
-
baseClassName: "rb-relative rb-isolate rb-overflow-
|
|
20165
|
+
baseClassName: "rb-relative rb-isolate rb-overflow-visible rb-border rb-border-dashed rb-p-8 rb-text-center"
|
|
19734
20166
|
}),
|
|
19735
20167
|
$when: {
|
|
19736
20168
|
when: { from: "data.posts[0]" },
|
|
@@ -19740,7 +20172,7 @@ const emptyState$2 = {
|
|
|
19740
20172
|
function blogListingShell(children) {
|
|
19741
20173
|
return styledSection({
|
|
19742
20174
|
children: styledContainer({
|
|
19743
|
-
baseClassName: "rb-relative rb-isolate rb-overflow-
|
|
20175
|
+
baseClassName: "rb-relative rb-isolate rb-overflow-visible",
|
|
19744
20176
|
children
|
|
19745
20177
|
}),
|
|
19746
20178
|
baseClass: ""
|
|
@@ -19881,6 +20313,10 @@ const blogListingManifest = createBlockManifest({
|
|
|
19881
20313
|
],
|
|
19882
20314
|
description: "Display a collection of blog posts in grid or stack layout.",
|
|
19883
20315
|
contentTypes: ["post"],
|
|
20316
|
+
contentSource: {
|
|
20317
|
+
kind: "entries",
|
|
20318
|
+
contentType: "post"
|
|
20319
|
+
},
|
|
19884
20320
|
tags: [
|
|
19885
20321
|
"blog",
|
|
19886
20322
|
"posts",
|
|
@@ -19923,6 +20359,7 @@ const ctaFullBlockDefinition = { manifest: createBlockManifest({
|
|
|
19923
20359
|
id: "block.cta-full",
|
|
19924
20360
|
title: "Full-width CTA",
|
|
19925
20361
|
category: "marketing",
|
|
20362
|
+
contentSource: { kind: "inline" },
|
|
19926
20363
|
fragments: [{
|
|
19927
20364
|
fragment: ctaCopyFragment,
|
|
19928
20365
|
fieldPriority: 0
|
|
@@ -19956,6 +20393,7 @@ const singleButtonBlockDefinition = { manifest: createBlockManifest({
|
|
|
19956
20393
|
id: "block.single-button",
|
|
19957
20394
|
title: "Single Button",
|
|
19958
20395
|
category: "marketing",
|
|
20396
|
+
contentSource: { kind: "inline" },
|
|
19959
20397
|
fragments: [{
|
|
19960
20398
|
fragment: singleButtonFragment,
|
|
19961
20399
|
fieldPriority: 0
|
|
@@ -20152,7 +20590,7 @@ const copyLayout = fragmentLayoutNode$1(formCopyFragment.layout);
|
|
|
20152
20590
|
const formSurface = styledContainer({
|
|
20153
20591
|
bindFrom: "_containerStyles",
|
|
20154
20592
|
constrainWidth: false,
|
|
20155
|
-
baseClassName: "rb-form-surface rb-relative rb-isolate rb-overflow-
|
|
20593
|
+
baseClassName: "rb-form-surface rb-relative rb-isolate rb-overflow-visible",
|
|
20156
20594
|
children: fragmentLayoutNode$1(formEmbedFragment.layout)
|
|
20157
20595
|
});
|
|
20158
20596
|
function createFormLayout(variant) {
|
|
@@ -20216,6 +20654,7 @@ const formManifest = createBlockManifest({
|
|
|
20216
20654
|
paletteHidden: false
|
|
20217
20655
|
},
|
|
20218
20656
|
category: "interactive",
|
|
20657
|
+
contentSource: { kind: "inline" },
|
|
20219
20658
|
tags: [
|
|
20220
20659
|
"form",
|
|
20221
20660
|
"contact",
|
|
@@ -20278,6 +20717,7 @@ const contactNewsletterBlockDefinition = {
|
|
|
20278
20717
|
titleSource: "contactTitle",
|
|
20279
20718
|
description: "Two-column newsletter signup and contact form section.",
|
|
20280
20719
|
category: "interactive",
|
|
20720
|
+
contentSource: { kind: "inline" },
|
|
20281
20721
|
layout: contactNewsletterLayout,
|
|
20282
20722
|
defaultVariant: "default",
|
|
20283
20723
|
variants: { default: contactNewsletterLayout },
|
|
@@ -20481,6 +20921,7 @@ const faqBlockDefinition = { manifest: createBlockManifest({
|
|
|
20481
20921
|
title: "FAQ",
|
|
20482
20922
|
titleSource: "title",
|
|
20483
20923
|
category: "content",
|
|
20924
|
+
contentSource: { kind: "inline" },
|
|
20484
20925
|
includeContainerStyles: true,
|
|
20485
20926
|
fragments: [{
|
|
20486
20927
|
fragment: faqHeadingFragment,
|
|
@@ -21369,6 +21810,7 @@ const headerRootClassTransform = {
|
|
|
21369
21810
|
];
|
|
21370
21811
|
const variant = header?.variant;
|
|
21371
21812
|
if (variant && VALID_VARIANTS.includes(variant)) classes.push(`header-variant-${variant}`);
|
|
21813
|
+
if (header?.barFrame === "inset-shell" && variant === "classic") classes.push("header-bar-frame-inset-shell");
|
|
21372
21814
|
return joinClasses(classes);
|
|
21373
21815
|
}
|
|
21374
21816
|
};
|
|
@@ -21892,7 +22334,7 @@ function desktopOnlyDisplay(display) {
|
|
|
21892
22334
|
}
|
|
21893
22335
|
//#endregion
|
|
21894
22336
|
//#region ../blocks/src/system/blocks/site-header.ts
|
|
21895
|
-
const whenTransformed
|
|
22337
|
+
const whenTransformed = (from, transformId, equals = true) => (node) => ({
|
|
21896
22338
|
...node,
|
|
21897
22339
|
$when: {
|
|
21898
22340
|
when: {
|
|
@@ -21920,7 +22362,7 @@ const logoRow = link({
|
|
|
21920
22362
|
text({
|
|
21921
22363
|
as: "strong",
|
|
21922
22364
|
className: "header-logo-text rb-truncate"
|
|
21923
|
-
}, whenTransformed
|
|
22365
|
+
}, whenTransformed("$root.theme.header.logo", "layout.headerLogoTextVisible"), bind("site.title", { fallback: "Your Site" }))
|
|
21924
22366
|
]);
|
|
21925
22367
|
const centeredLogoRow = link({
|
|
21926
22368
|
href: "/",
|
|
@@ -21940,7 +22382,7 @@ const centeredLogoRow = link({
|
|
|
21940
22382
|
text({
|
|
21941
22383
|
as: "strong",
|
|
21942
22384
|
className: "header-logo-text"
|
|
21943
|
-
}, whenTransformed
|
|
22385
|
+
}, whenTransformed("$root.theme.header.logo", "layout.headerLogoTextVisible"), bind("site.title", { fallback: "Your Site" }))
|
|
21944
22386
|
]);
|
|
21945
22387
|
const createNavRow = (className, align = "end") => navRow({
|
|
21946
22388
|
className: `${className} header-nav-row`,
|
|
@@ -22072,7 +22514,7 @@ const classicLayout = inline({
|
|
|
22072
22514
|
logoRow,
|
|
22073
22515
|
createNavRow(`rb-ml-auto ${desktopOnlyDisplay("flex")} rb-gap-6`),
|
|
22074
22516
|
headerCta
|
|
22075
|
-
], whenTransformed
|
|
22517
|
+
], whenTransformed("$root.theme.header", "layout.classicNavMode", "inline"));
|
|
22076
22518
|
const classicCenteredNavLayout = inline({
|
|
22077
22519
|
className: bindProp("$root.theme.header.maxWidth", {
|
|
22078
22520
|
transforms: pipe(tx("layout.maxWidthClass", { base: `rb-header-layout ${desktopOnlyDisplay("flex")} rb-w-full rb-items-center rb-gap-6` })),
|
|
@@ -22083,7 +22525,7 @@ const classicCenteredNavLayout = inline({
|
|
|
22083
22525
|
logoRow,
|
|
22084
22526
|
createNavRow(`rb-flex-1 rb-justify-center ${desktopOnlyDisplay("flex")} rb-gap-6`, "center"),
|
|
22085
22527
|
headerCta
|
|
22086
|
-
], whenTransformed
|
|
22528
|
+
], whenTransformed("$root.theme.header", "layout.classicNavMode", "centered"));
|
|
22087
22529
|
const centeredLayout = stack({
|
|
22088
22530
|
gap: "md",
|
|
22089
22531
|
align: "center",
|
|
@@ -22123,6 +22565,7 @@ const siteHeaderBlockDefinition = { manifest: createBlockManifest({
|
|
|
22123
22565
|
id: "block.site-header",
|
|
22124
22566
|
title: "Site Header",
|
|
22125
22567
|
category: "layout",
|
|
22568
|
+
contentSource: { kind: "inline" },
|
|
22126
22569
|
additionalFields: [{
|
|
22127
22570
|
id: "mode",
|
|
22128
22571
|
type: "select",
|
|
@@ -22146,7 +22589,6 @@ const siteHeaderBlockDefinition = { manifest: createBlockManifest({
|
|
|
22146
22589
|
transforms: pipe(tx("layout.headerSectionBackground")),
|
|
22147
22590
|
fallback: "background"
|
|
22148
22591
|
}),
|
|
22149
|
-
allowOverflow: true,
|
|
22150
22592
|
className: bindProp("$root.theme.header", {
|
|
22151
22593
|
transforms: pipe(tx("layout.headerRootClass")),
|
|
22152
22594
|
fallback: "header-root rb-z-40 rb-w-full transition-theme"
|
|
@@ -22196,218 +22638,155 @@ const footerNavGroupsLayout = stack({
|
|
|
22196
22638
|
linkRequired: true,
|
|
22197
22639
|
target: { $bind: { from: "entry.target" } },
|
|
22198
22640
|
rel: { $bind: { from: "entry.rel" } }
|
|
22199
|
-
}, [text({ as: "span" }, bind("entry.label"))], repeat("group.children", "entry"))])], repeat("footerMenu.groups", "group"))],
|
|
22641
|
+
}, [text({ as: "span" }, bind("entry.label"))], repeat("group.children", "entry"))])], repeat("footerMenu.groups", "group"))], whenCollectionHasItems("footerMenu.groups"));
|
|
22200
22642
|
//#endregion
|
|
22201
22643
|
//#region ../blocks/src/system/blocks/site-footer.ts
|
|
22202
|
-
const
|
|
22203
|
-
|
|
22204
|
-
...node,
|
|
22205
|
-
$when: {
|
|
22206
|
-
when: {
|
|
22207
|
-
from,
|
|
22208
|
-
transforms: [{ id: transformId }]
|
|
22209
|
-
},
|
|
22210
|
-
equals
|
|
22211
|
-
}
|
|
22212
|
-
});
|
|
22213
|
-
const bottomBarTextLayout = () => {
|
|
22214
|
-
const bottomTextNode = footerTextLayout()[1];
|
|
22215
|
-
return bottomTextNode ? [bottomTextNode] : [];
|
|
22216
|
-
};
|
|
22217
|
-
const bodyTextLayout = () => {
|
|
22218
|
-
const bodyTextNode = footerTextLayout()[0];
|
|
22219
|
-
return bodyTextNode ? [bodyTextNode] : [];
|
|
22220
|
-
};
|
|
22221
|
-
const businessAddressLayout = () => [text({
|
|
22222
|
-
as: "p",
|
|
22223
|
-
className: "rb-caption rb-opacity-80"
|
|
22224
|
-
}, bind("site.businessAddress.displayAddress"), when("content.showBusinessAddress", { equals: true }))];
|
|
22225
|
-
const inlineBottomTextLayout = () => {
|
|
22226
|
-
const bottomTextNode = footerTextLayout()[1];
|
|
22227
|
-
if (!bottomTextNode) return [];
|
|
22228
|
-
return [when("$root.theme.footer.bottomBar.enabled", {
|
|
22229
|
-
equals: true,
|
|
22230
|
-
not: true
|
|
22231
|
-
})(bottomTextNode)];
|
|
22232
|
-
};
|
|
22233
|
-
const simpleFooterLayout = stack({
|
|
22234
|
-
gap: "md",
|
|
22235
|
-
align: "start",
|
|
22236
|
-
className: { $bind: {
|
|
22237
|
-
from: "$root.theme.footer",
|
|
22238
|
-
transforms: [{ id: "layout.footerSimpleRootClass" }],
|
|
22239
|
-
fallback: "rb-container rb-flex rb-w-full rb-flex-col rb-items-start rb-gap-4 rb-py-10 rb-text-left"
|
|
22240
|
-
} }
|
|
22241
|
-
}, [
|
|
22242
|
-
link({
|
|
22243
|
-
href: "/",
|
|
22244
|
-
className: { $bind: {
|
|
22245
|
-
from: "$root.theme.footer.logo",
|
|
22246
|
-
transforms: [{
|
|
22247
|
-
id: "layout.footerLogoClass",
|
|
22248
|
-
options: { requireExplicitShow: true }
|
|
22249
|
-
}],
|
|
22250
|
-
fallback: "rb-hidden"
|
|
22251
|
-
} }
|
|
22252
|
-
}, [
|
|
22253
|
-
media({ className: { $bind: {
|
|
22254
|
-
from: "$root.theme.footer.logo",
|
|
22255
|
-
transforms: [{ id: "layout.footerLogoMediaClass" }],
|
|
22256
|
-
fallback: "rb-w-auto"
|
|
22257
|
-
} } }, when("content.logo"), bind("content.logo")),
|
|
22258
|
-
stack({ className: "rb-contents" }, [media({ className: { $bind: {
|
|
22259
|
-
from: "$root.theme.footer.logo",
|
|
22260
|
-
transforms: [{ id: "layout.footerLogoMediaClass" }],
|
|
22261
|
-
fallback: "rb-w-auto"
|
|
22262
|
-
} } }, when("site.logo"), bind("site.logo"))], when("content.logo", { not: true })),
|
|
22263
|
-
text({
|
|
22264
|
-
as: "strong",
|
|
22265
|
-
className: "footer-logo-text rb-nav-text"
|
|
22266
|
-
}, whenTransformed("$root.theme.footer", "layout.footerLogoTextVisible"), bind("site.title", { fallback: "Your Site" }))
|
|
22267
|
-
]),
|
|
22268
|
-
footerNav({
|
|
22269
|
-
collectionPath: "footerMenu.items",
|
|
22270
|
-
mode: "flatten",
|
|
22271
|
-
className: { $bind: {
|
|
22272
|
-
from: "$root.theme.footer.navLayout",
|
|
22273
|
-
transforms: [{ id: "layout.footerSimpleNavClass" }],
|
|
22274
|
-
fallback: "footer-nav rb-flex rb-flex-wrap rb-justify-start rb-gap-x-6 rb-gap-y-3"
|
|
22275
|
-
} },
|
|
22276
|
-
linkClassName: "footer-nav-link rb-inline-flex rb-items-center rb-px-4 rb-py-2 rb-nav-text transition-theme-standard"
|
|
22277
|
-
}),
|
|
22278
|
-
...bodyTextLayout(),
|
|
22279
|
-
...businessAddressLayout(),
|
|
22280
|
-
...inlineBottomTextLayout()
|
|
22281
|
-
], when("$root.theme.footer.variant", { equals: "simple" }));
|
|
22282
|
-
const columnsFooterLayout = stack({
|
|
22283
|
-
gap: "xl",
|
|
22284
|
-
align: "start",
|
|
22644
|
+
const brandLogo = link({
|
|
22645
|
+
href: "/",
|
|
22285
22646
|
className: { $bind: {
|
|
22286
|
-
from: "$root.theme.footer.
|
|
22647
|
+
from: "$root.theme.footer.logo",
|
|
22287
22648
|
transforms: [{
|
|
22288
|
-
id: "layout.
|
|
22289
|
-
options: { base: "
|
|
22649
|
+
id: "layout.footerLogoClass",
|
|
22650
|
+
options: { base: "footer-logo rb-inline-flex rb-items-center rb-gap-3 rb-no-underline" }
|
|
22290
22651
|
}],
|
|
22291
|
-
fallback: "
|
|
22652
|
+
fallback: "footer-logo rb-inline-flex rb-items-center rb-gap-3 rb-no-underline"
|
|
22292
22653
|
} }
|
|
22293
|
-
}, [
|
|
22294
|
-
|
|
22295
|
-
|
|
22296
|
-
|
|
22297
|
-
|
|
22298
|
-
|
|
22299
|
-
|
|
22300
|
-
|
|
22301
|
-
|
|
22302
|
-
|
|
22303
|
-
|
|
22304
|
-
|
|
22305
|
-
|
|
22306
|
-
|
|
22307
|
-
|
|
22308
|
-
|
|
22309
|
-
|
|
22310
|
-
gap: "xl",
|
|
22311
|
-
align: "start",
|
|
22654
|
+
}, [media({ className: { $bind: {
|
|
22655
|
+
from: "$root.theme.footer.logo",
|
|
22656
|
+
transforms: [{
|
|
22657
|
+
id: "layout.footerLogoMediaClass",
|
|
22658
|
+
options: { base: "rb-h-10 rb-w-auto" }
|
|
22659
|
+
}],
|
|
22660
|
+
fallback: "rb-h-10 rb-w-auto"
|
|
22661
|
+
} } }, when("module.showLogo", { equals: true }), when("content.logo"), bind("content.logo")), text({
|
|
22662
|
+
as: "strong",
|
|
22663
|
+
className: "footer-logo-text rb-nav-text"
|
|
22664
|
+
}, when("module.showTitle", { equals: true }), bind("site.title", { fallback: "Your Site" }))], when("module.kind", { equals: "brand" }));
|
|
22665
|
+
const navigation = stack({
|
|
22666
|
+
gap: "md",
|
|
22667
|
+
className: "rb-w-full"
|
|
22668
|
+
}, [footerNavGroupsLayout, footerNav({
|
|
22669
|
+
collectionPath: "footerMenu.items",
|
|
22670
|
+
mode: "links-only",
|
|
22312
22671
|
className: { $bind: {
|
|
22313
|
-
from: "
|
|
22314
|
-
|
|
22315
|
-
|
|
22316
|
-
|
|
22317
|
-
|
|
22318
|
-
|
|
22319
|
-
|
|
22672
|
+
from: "module.navigationClassName",
|
|
22673
|
+
fallback: "footer-nav rb-flex rb-flex-wrap rb-gap-x-6 rb-gap-y-3"
|
|
22674
|
+
} },
|
|
22675
|
+
linkClassName: "footer-nav-link rb-nav-text transition-theme-standard"
|
|
22676
|
+
})], when("module.kind", { equals: "navigation" }));
|
|
22677
|
+
const legalNavigation = footerNav({
|
|
22678
|
+
collectionPath: "legalFooterMenu.items",
|
|
22679
|
+
mode: "links-only",
|
|
22680
|
+
className: "rb-flex rb-flex-wrap rb-gap-x-4 rb-gap-y-2",
|
|
22681
|
+
linkClassName: "footer-nav-link rb-caption transition-theme-standard"
|
|
22682
|
+
});
|
|
22683
|
+
const address = text({
|
|
22684
|
+
as: "address",
|
|
22685
|
+
className: "rb-not-italic rb-opacity-80"
|
|
22686
|
+
}, when("module.kind", { equals: "business-address" }), bind("module.address"));
|
|
22687
|
+
const contact = stack({
|
|
22688
|
+
gap: "sm",
|
|
22689
|
+
className: "rb-items-start"
|
|
22690
|
+
}, [link({
|
|
22691
|
+
href: { $bind: { from: "contactLink.href" } },
|
|
22692
|
+
className: "rb-nav-text rb-break-words transition-theme-standard"
|
|
22693
|
+
}, [text({ as: "span" }, bind("contactLink.label"))], repeat("module.contactLinks", "contactLink"))], when("module.kind", { equals: "contact" }));
|
|
22694
|
+
const hours = stack({
|
|
22695
|
+
gap: "sm",
|
|
22696
|
+
className: "rb-w-full"
|
|
22697
|
+
}, [inline({ className: "rb-flex rb-w-full rb-justify-between rb-gap-4" }, [text({
|
|
22698
|
+
as: "span",
|
|
22699
|
+
className: "rb-label"
|
|
22700
|
+
}, bind("hoursDay.weekday")), text({
|
|
22701
|
+
as: "span",
|
|
22702
|
+
className: "rb-caption rb-opacity-80"
|
|
22703
|
+
}, bind("hoursDay.hours"))], repeat("module.openingHours", "hoursDay")), text({
|
|
22704
|
+
as: "p",
|
|
22705
|
+
className: "rb-caption rb-opacity-70"
|
|
22706
|
+
}, bind("module.timeZone"), when("module.timeZone"))], when("module.kind", { equals: "opening-hours" }));
|
|
22707
|
+
const socials = inline({ className: "rb-flex rb-flex-wrap rb-gap-x-5 rb-gap-y-3" }, [link({
|
|
22708
|
+
href: { $bind: { from: "social.href" } },
|
|
22709
|
+
target: "_blank",
|
|
22710
|
+
rel: "noreferrer noopener",
|
|
22711
|
+
"aria-label": { $bind: { from: "social.label" } },
|
|
22712
|
+
className: "rb-nav-text transition-theme-standard"
|
|
22713
|
+
}, [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" }));
|
|
22714
|
+
const authoredCopy = richText({
|
|
22715
|
+
className: "rb-prose rb-prose-sm rb-max-w-none",
|
|
22716
|
+
style: textColorStyle("text/80")
|
|
22717
|
+
}, when("module.content"), bind("module.content", { transforms: [{
|
|
22718
|
+
id: "content.interpolateRichTextTokens",
|
|
22719
|
+
options: { tokens: ["year", "site_name"] }
|
|
22720
|
+
}] }));
|
|
22721
|
+
const footerGroup = stack({
|
|
22722
|
+
gap: "md",
|
|
22723
|
+
align: "stretch",
|
|
22724
|
+
className: "rb-min-w-0",
|
|
22725
|
+
"data-footer-group": { $bind: { from: "group.kind" } }
|
|
22726
|
+
}, [stack({
|
|
22727
|
+
gap: "md",
|
|
22728
|
+
align: "start",
|
|
22729
|
+
"data-preview-footer-module-id": { $bind: { from: "module.id" } }
|
|
22320
22730
|
}, [
|
|
22321
|
-
|
|
22322
|
-
|
|
22323
|
-
|
|
22324
|
-
|
|
22325
|
-
}
|
|
22326
|
-
|
|
22327
|
-
|
|
22328
|
-
|
|
22329
|
-
|
|
22330
|
-
|
|
22331
|
-
|
|
22332
|
-
|
|
22333
|
-
|
|
22334
|
-
|
|
22335
|
-
|
|
22336
|
-
|
|
22337
|
-
|
|
22338
|
-
|
|
22339
|
-
|
|
22340
|
-
|
|
22341
|
-
}
|
|
22342
|
-
|
|
22343
|
-
|
|
22344
|
-
|
|
22345
|
-
|
|
22346
|
-
|
|
22347
|
-
|
|
22348
|
-
from: "$root.theme.footer.logo",
|
|
22349
|
-
transforms: [{ id: "layout.footerLogoMediaClass" }],
|
|
22350
|
-
fallback: "rb-w-auto"
|
|
22351
|
-
} } }, when("site.logo"), bind("site.logo"))], when("content.logo", { not: true })),
|
|
22352
|
-
text({
|
|
22353
|
-
as: "strong",
|
|
22354
|
-
className: "footer-logo-text rb-nav-text"
|
|
22355
|
-
}, whenTransformed("$root.theme.footer", "layout.footerLogoTextVisible"), bind("site.title", { fallback: "Your Site" }))
|
|
22356
|
-
])]),
|
|
22357
|
-
...businessAddressLayout(),
|
|
22358
|
-
...inlineBottomTextLayout()
|
|
22359
|
-
], when("$root.theme.footer.variant", { equals: "split" }));
|
|
22360
|
-
const footerLayout = section({
|
|
22361
|
-
background: "background",
|
|
22731
|
+
text({
|
|
22732
|
+
as: "h2",
|
|
22733
|
+
className: "rb-label",
|
|
22734
|
+
style: textColorStyle("text/70")
|
|
22735
|
+
}, bind("module.heading"), when("module.heading")),
|
|
22736
|
+
brandLogo,
|
|
22737
|
+
navigation,
|
|
22738
|
+
stack({
|
|
22739
|
+
gap: "sm",
|
|
22740
|
+
className: "rb-w-full"
|
|
22741
|
+
}, [legalNavigation], when("module.kind", { equals: "legal-navigation" })),
|
|
22742
|
+
address,
|
|
22743
|
+
contact,
|
|
22744
|
+
hours,
|
|
22745
|
+
socials,
|
|
22746
|
+
stack({ className: "rb-w-full" }, [authoredCopy], when("module.kind", { equals: "supporting-text" })),
|
|
22747
|
+
stack({ className: "rb-w-full rb-lg-col-span-3" }, [authoredCopy], when("module.kind", { equals: "legal" }))
|
|
22748
|
+
], repeat("group.modules", "module"))], repeat("region.groups", "group"));
|
|
22749
|
+
const footerMainRegion = stack({
|
|
22750
|
+
className: { $bind: { from: "region.className" } },
|
|
22751
|
+
"data-footer-region": { $bind: { from: "region.kind" } }
|
|
22752
|
+
}, [footerGroup], when("region.kind", { equals: "main" }), repeat("content.footerRuntime.regions", "region"));
|
|
22753
|
+
const footerBottomRegion = stack({ className: { $bind: {
|
|
22754
|
+
from: "$root.theme.footer",
|
|
22755
|
+
transforms: [{ id: "layout.footerBottomBarContainerClass" }],
|
|
22756
|
+
fallback: "rb-w-full"
|
|
22757
|
+
} } }, [stack({
|
|
22362
22758
|
className: { $bind: {
|
|
22363
22759
|
from: "$root.theme.footer",
|
|
22364
|
-
transforms: [{ id: "layout.
|
|
22365
|
-
fallback: "rb-w-full rb-border-t
|
|
22760
|
+
transforms: [{ id: "layout.footerBottomBarClass" }],
|
|
22761
|
+
fallback: "rb-w-full rb-border-t rb-px-6 rb-py-6 rb-text-center"
|
|
22366
22762
|
} },
|
|
22367
22763
|
style: { $bind: {
|
|
22368
22764
|
from: "$root.theme.footer",
|
|
22369
|
-
transforms: [{ id: "layout.
|
|
22370
|
-
|
|
22371
|
-
|
|
22372
|
-
}, [
|
|
22373
|
-
simpleFooterLayout,
|
|
22374
|
-
columnsFooterLayout,
|
|
22375
|
-
splitFooterLayout,
|
|
22376
|
-
stack({
|
|
22377
|
-
className: { $bind: {
|
|
22378
|
-
from: "$root.theme.footer",
|
|
22379
|
-
transforms: [{ id: "layout.footerBottomBarClass" }],
|
|
22380
|
-
fallback: "rb-w-full rb-border-t rb-py-5"
|
|
22381
|
-
} },
|
|
22382
|
-
style: { $bind: {
|
|
22383
|
-
from: "$root.theme.footer",
|
|
22384
|
-
transforms: [{ id: "layout.footerBottomBarStyle" }]
|
|
22385
|
-
} }
|
|
22386
|
-
}, [stack({ className: { $bind: {
|
|
22387
|
-
from: "$root.theme.footer",
|
|
22388
|
-
transforms: [{ id: "layout.footerBottomBarContainerClass" }],
|
|
22389
|
-
fallback: "rb-container"
|
|
22390
|
-
} } }, [...bottomBarTextLayout()])], when("$root.theme.footer.bottomBar.enabled", { equals: true }))
|
|
22391
|
-
]);
|
|
22765
|
+
transforms: [{ id: "layout.footerBottomBarStyle" }]
|
|
22766
|
+
} },
|
|
22767
|
+
"data-footer-region": "bottom"
|
|
22768
|
+
}, [footerGroup])], when("region.kind", { equals: "bottom" }), repeat("content.footerRuntime.regions", "region"));
|
|
22392
22769
|
const siteFooterBlockDefinition = { manifest: createBlockManifest({
|
|
22393
22770
|
id: "block.site-footer",
|
|
22394
22771
|
title: "Site Footer",
|
|
22395
22772
|
category: "layout",
|
|
22396
|
-
|
|
22397
|
-
fragment: footerBottomTextFragment,
|
|
22398
|
-
fieldPriority: 0
|
|
22399
|
-
}],
|
|
22773
|
+
contentSource: { kind: "inline" },
|
|
22400
22774
|
skipSectionStyles: true,
|
|
22401
|
-
|
|
22402
|
-
|
|
22403
|
-
|
|
22404
|
-
|
|
22405
|
-
|
|
22406
|
-
|
|
22407
|
-
|
|
22408
|
-
|
|
22409
|
-
|
|
22410
|
-
|
|
22775
|
+
layout: section({
|
|
22776
|
+
background: "background",
|
|
22777
|
+
className: { $bind: {
|
|
22778
|
+
from: "$root.theme.footer",
|
|
22779
|
+
transforms: [{ id: "layout.footerRootClass" }],
|
|
22780
|
+
fallback: "rb-w-full rb-border-t transition-theme"
|
|
22781
|
+
} },
|
|
22782
|
+
style: { $bind: {
|
|
22783
|
+
from: "$root.theme.footer",
|
|
22784
|
+
transforms: [{ id: "layout.footerRootStyle" }],
|
|
22785
|
+
fallback: mergeStyles(backgroundColorStyle("surface"), surfaceForegroundStyle({ text: "rgb(var(--tb-text))" }), borderColorStyle("border"))
|
|
22786
|
+
} },
|
|
22787
|
+
"data-footer-membership": { $bind: { from: "content.footerRuntime.membershipKey" } }
|
|
22788
|
+
}, [footerMainRegion, footerBottomRegion]),
|
|
22789
|
+
description: "Site-wide composed footer with canonical shared details.",
|
|
22411
22790
|
styleTokens: { spacing: "md" },
|
|
22412
22791
|
paletteHidden: true
|
|
22413
22792
|
}) };
|
|
@@ -22541,6 +22920,7 @@ const testimonialsBlockDefinition = {
|
|
|
22541
22920
|
id: "block.testimonials",
|
|
22542
22921
|
title: "Testimonials",
|
|
22543
22922
|
category: "marketing",
|
|
22923
|
+
contentSource: { kind: "inline" },
|
|
22544
22924
|
includeContainerStyles: true,
|
|
22545
22925
|
previewCustomize: { quickFieldPriority: [
|
|
22546
22926
|
"avatarLayout",
|
|
@@ -22699,6 +23079,7 @@ const columnsBlockDefinition = { manifest: createBlockManifest({
|
|
|
22699
23079
|
id: "block.columns",
|
|
22700
23080
|
title: "Columns",
|
|
22701
23081
|
category: "layout",
|
|
23082
|
+
contentSource: { kind: "inline" },
|
|
22702
23083
|
additionalFields: [
|
|
22703
23084
|
parseFieldDefinition({
|
|
22704
23085
|
id: "equalHeight",
|
|
@@ -22885,7 +23266,7 @@ const repeatedItemsNode = repeaterFragmentLayout({
|
|
|
22885
23266
|
id: "boxStyles.all",
|
|
22886
23267
|
options: {
|
|
22887
23268
|
axis: "all",
|
|
22888
|
-
baseClass: "rb-collection-item rb-relative rb-isolate rb-overflow-
|
|
23269
|
+
baseClass: "rb-collection-item rb-relative rb-isolate rb-overflow-visible rb-border"
|
|
22889
23270
|
}
|
|
22890
23271
|
}]
|
|
22891
23272
|
},
|
|
@@ -22932,6 +23313,7 @@ const collectionBlockDefinition = { manifest: createBlockManifest({
|
|
|
22932
23313
|
id: "block.collection",
|
|
22933
23314
|
title: "Collection",
|
|
22934
23315
|
category: "layout",
|
|
23316
|
+
contentSource: { kind: "inline" },
|
|
22935
23317
|
additionalFields: [
|
|
22936
23318
|
parseFieldDefinition({
|
|
22937
23319
|
id: "layout",
|
|
@@ -23168,6 +23550,7 @@ const featureCardsBlockDefinition = { manifest: createBlockManifest({
|
|
|
23168
23550
|
id: "block.feature-cards",
|
|
23169
23551
|
title: "Feature Cards",
|
|
23170
23552
|
category: "layout",
|
|
23553
|
+
contentSource: { kind: "inline" },
|
|
23171
23554
|
includeContainerStyles: true,
|
|
23172
23555
|
titleSource: "title",
|
|
23173
23556
|
additionalFields: [
|
|
@@ -23551,6 +23934,7 @@ const mediaTextBlockDefinition = { manifest: createBlockManifest({
|
|
|
23551
23934
|
id: "block.media-text",
|
|
23552
23935
|
title: "Media and Text",
|
|
23553
23936
|
category: "layout",
|
|
23937
|
+
contentSource: { kind: "inline" },
|
|
23554
23938
|
includeContainerStyles: true,
|
|
23555
23939
|
titleSource: "title",
|
|
23556
23940
|
previewCustomize: { quickFieldPriority: [
|
|
@@ -23951,6 +24335,7 @@ const appointmentBookingBlockDefinition = {
|
|
|
23951
24335
|
paletteHidden: false
|
|
23952
24336
|
},
|
|
23953
24337
|
category: "interactive",
|
|
24338
|
+
contentSource: { kind: "inline" },
|
|
23954
24339
|
tags: [
|
|
23955
24340
|
"booking",
|
|
23956
24341
|
"appointment",
|
|
@@ -24115,6 +24500,7 @@ const weeklySlotAvailabilityManifest = createBlockManifest({
|
|
|
24115
24500
|
paletteHidden: false
|
|
24116
24501
|
},
|
|
24117
24502
|
category: "interactive",
|
|
24503
|
+
contentSource: { kind: "inline" },
|
|
24118
24504
|
tags: [
|
|
24119
24505
|
"booking",
|
|
24120
24506
|
"appointment",
|
|
@@ -25679,6 +26065,7 @@ const eventRegistrationBlockDefinition = {
|
|
|
25679
26065
|
titleSource: "heading",
|
|
25680
26066
|
description: "Multi-step event registration form",
|
|
25681
26067
|
category: "interactive",
|
|
26068
|
+
contentSource: { kind: "inline" },
|
|
25682
26069
|
tags: [
|
|
25683
26070
|
"events",
|
|
25684
26071
|
"registration",
|
|
@@ -25785,15 +26172,9 @@ const eventRegistrationBlockDefinition = {
|
|
|
25785
26172
|
defaultValue: "Complete Registration",
|
|
25786
26173
|
maxLength: 40
|
|
25787
26174
|
},
|
|
25788
|
-
{
|
|
25789
|
-
id: "buttonVariant",
|
|
25790
|
-
type: "select",
|
|
25791
|
-
label: "Button style",
|
|
26175
|
+
createButtonVariantField({
|
|
25792
26176
|
description: "Choose a button style from your theme",
|
|
25793
|
-
|
|
25794
|
-
multiple: false,
|
|
25795
|
-
defaultValue: "primary",
|
|
25796
|
-
options: [
|
|
26177
|
+
variants: [
|
|
25797
26178
|
{
|
|
25798
26179
|
value: "primary",
|
|
25799
26180
|
label: "Primary"
|
|
@@ -25806,9 +26187,8 @@ const eventRegistrationBlockDefinition = {
|
|
|
25806
26187
|
value: "outline",
|
|
25807
26188
|
label: "Outline"
|
|
25808
26189
|
}
|
|
25809
|
-
]
|
|
25810
|
-
|
|
25811
|
-
}
|
|
26190
|
+
]
|
|
26191
|
+
})
|
|
25812
26192
|
],
|
|
25813
26193
|
layout: [styledSection({
|
|
25814
26194
|
baseClass: "",
|
|
@@ -26001,6 +26381,7 @@ const courseRegistrationBlockDefinition = {
|
|
|
26001
26381
|
titleSource: "heading",
|
|
26002
26382
|
description: "Enrollment form for multi-session courses",
|
|
26003
26383
|
category: "interactive",
|
|
26384
|
+
contentSource: { kind: "inline" },
|
|
26004
26385
|
tags: [
|
|
26005
26386
|
"courses",
|
|
26006
26387
|
"enrollment",
|
|
@@ -26114,15 +26495,9 @@ const courseRegistrationBlockDefinition = {
|
|
|
26114
26495
|
defaultValue: "Sign up",
|
|
26115
26496
|
maxLength: 40
|
|
26116
26497
|
},
|
|
26117
|
-
{
|
|
26118
|
-
id: "buttonVariant",
|
|
26119
|
-
type: "select",
|
|
26120
|
-
label: "Button style",
|
|
26498
|
+
createButtonVariantField({
|
|
26121
26499
|
description: "Choose a button style from your theme",
|
|
26122
|
-
|
|
26123
|
-
multiple: false,
|
|
26124
|
-
defaultValue: "primary",
|
|
26125
|
-
options: [
|
|
26500
|
+
variants: [
|
|
26126
26501
|
{
|
|
26127
26502
|
value: "primary",
|
|
26128
26503
|
label: "Primary"
|
|
@@ -26135,9 +26510,8 @@ const courseRegistrationBlockDefinition = {
|
|
|
26135
26510
|
value: "outline",
|
|
26136
26511
|
label: "Outline"
|
|
26137
26512
|
}
|
|
26138
|
-
]
|
|
26139
|
-
|
|
26140
|
-
}
|
|
26513
|
+
]
|
|
26514
|
+
})
|
|
26141
26515
|
],
|
|
26142
26516
|
layout: [styledSection({
|
|
26143
26517
|
baseClass: "",
|
|
@@ -26217,6 +26591,7 @@ const eventDetailsManifest = createBlockManifest({
|
|
|
26217
26591
|
titleSource: "heading",
|
|
26218
26592
|
description: "Date/time, venue, map, and other dates for an event",
|
|
26219
26593
|
category: "content",
|
|
26594
|
+
contentSource: { kind: "entries" },
|
|
26220
26595
|
tags: [
|
|
26221
26596
|
"events",
|
|
26222
26597
|
"venue",
|
|
@@ -26422,6 +26797,7 @@ const courseDetailsBlockDefinition = {
|
|
|
26422
26797
|
titleSource: "heading",
|
|
26423
26798
|
description: "Schedule, venue, price, and enrollment status for a course",
|
|
26424
26799
|
category: "content",
|
|
26800
|
+
contentSource: { kind: "entries" },
|
|
26425
26801
|
tags: [
|
|
26426
26802
|
"courses",
|
|
26427
26803
|
"schedule",
|
|
@@ -26713,6 +27089,7 @@ const eventSpotlightBlockDefinition = {
|
|
|
26713
27089
|
paletteHidden: false
|
|
26714
27090
|
},
|
|
26715
27091
|
category: "content",
|
|
27092
|
+
contentSource: { kind: "entries" },
|
|
26716
27093
|
tags: [
|
|
26717
27094
|
"events",
|
|
26718
27095
|
"featured",
|
|
@@ -27259,6 +27636,7 @@ const eventListingBlockDefinition = {
|
|
|
27259
27636
|
paletteHidden: true
|
|
27260
27637
|
},
|
|
27261
27638
|
category: "interactive",
|
|
27639
|
+
contentSource: { kind: "entries" },
|
|
27262
27640
|
tags: [
|
|
27263
27641
|
"events",
|
|
27264
27642
|
"listing",
|
|
@@ -28431,6 +28809,7 @@ const eventCalendarBlockDefinition = {
|
|
|
28431
28809
|
paletteHidden: false
|
|
28432
28810
|
},
|
|
28433
28811
|
category: "interactive",
|
|
28812
|
+
contentSource: { kind: "entries" },
|
|
28434
28813
|
tags: [
|
|
28435
28814
|
"events",
|
|
28436
28815
|
"calendar",
|
|
@@ -28828,6 +29207,7 @@ const recurringScheduleBlockDefinition = {
|
|
|
28828
29207
|
titleSource: "heading",
|
|
28829
29208
|
description: "A compact weekly schedule with one row per recurring series.",
|
|
28830
29209
|
category: "interactive",
|
|
29210
|
+
contentSource: { kind: "entries" },
|
|
28831
29211
|
icon: "CalendarDays",
|
|
28832
29212
|
tags: [
|
|
28833
29213
|
"schedule",
|
|
@@ -29245,7 +29625,10 @@ const offeringsPreviewFields = [
|
|
|
29245
29625
|
label: "Link"
|
|
29246
29626
|
}
|
|
29247
29627
|
],
|
|
29248
|
-
ui: {
|
|
29628
|
+
ui: {
|
|
29629
|
+
intent: "display",
|
|
29630
|
+
widget: "buttonVariant"
|
|
29631
|
+
}
|
|
29249
29632
|
},
|
|
29250
29633
|
{
|
|
29251
29634
|
id: "buttonText",
|
|
@@ -29298,6 +29681,7 @@ const offeringsPreviewManifest = createBlockManifest({
|
|
|
29298
29681
|
paletteHidden: false
|
|
29299
29682
|
},
|
|
29300
29683
|
category: "content",
|
|
29684
|
+
contentSource: { kind: "mixed" },
|
|
29301
29685
|
tags: [
|
|
29302
29686
|
"offerings",
|
|
29303
29687
|
"events",
|
|
@@ -29466,6 +29850,7 @@ const embedManifest = createBlockManifest({
|
|
|
29466
29850
|
id: "block.embed",
|
|
29467
29851
|
title: "Embed Content",
|
|
29468
29852
|
category: "content",
|
|
29853
|
+
contentSource: { kind: "entries" },
|
|
29469
29854
|
titleSource: "heading",
|
|
29470
29855
|
additionalFields: [
|
|
29471
29856
|
parseFieldDefinition({
|
|
@@ -29953,6 +30338,7 @@ const imageGalleryBlockDefinition = { manifest: createBlockManifest({
|
|
|
29953
30338
|
id: "block.image-gallery",
|
|
29954
30339
|
title: "Image Gallery",
|
|
29955
30340
|
category: "content",
|
|
30341
|
+
contentSource: { kind: "inline" },
|
|
29956
30342
|
previewCustomize: { quickFieldPriority: [
|
|
29957
30343
|
"aspectRatio",
|
|
29958
30344
|
"slidesToShow",
|
|
@@ -30605,6 +30991,7 @@ const videoGridBlockDefinition = { manifest: createBlockManifest({
|
|
|
30605
30991
|
id: "block.video-grid",
|
|
30606
30992
|
title: "Video Grid",
|
|
30607
30993
|
category: "media",
|
|
30994
|
+
contentSource: { kind: "inline" },
|
|
30608
30995
|
skipSectionStyles: true,
|
|
30609
30996
|
additionalFields: parseFieldDefinitions([
|
|
30610
30997
|
{
|
|
@@ -30775,6 +31162,7 @@ const audioPlayerBlockDefinition = { manifest: createBlockManifest({
|
|
|
30775
31162
|
title: "Audio Player",
|
|
30776
31163
|
titleSource: "title",
|
|
30777
31164
|
category: "media",
|
|
31165
|
+
contentSource: { kind: "inline" },
|
|
30778
31166
|
description: "Add a branded audio player for a single track.",
|
|
30779
31167
|
tags: [
|
|
30780
31168
|
"audio",
|
|
@@ -30886,6 +31274,7 @@ const fileDownloadBlockDefinition = { manifest: createBlockManifest({
|
|
|
30886
31274
|
title: "File Download",
|
|
30887
31275
|
titleSource: ["title", "file.filename"],
|
|
30888
31276
|
category: "media",
|
|
31277
|
+
contentSource: { kind: "inline" },
|
|
30889
31278
|
description: "Add a simple public download link for a document, ZIP, or audio file.",
|
|
30890
31279
|
tags: [
|
|
30891
31280
|
"file",
|
|
@@ -31830,6 +32219,7 @@ const shopBlockDefinition = {
|
|
|
31830
32219
|
paletteHidden: false
|
|
31831
32220
|
},
|
|
31832
32221
|
category: "interactive",
|
|
32222
|
+
contentSource: { kind: "entries" },
|
|
31833
32223
|
tags: [
|
|
31834
32224
|
"shop",
|
|
31835
32225
|
"passes",
|
|
@@ -32029,6 +32419,7 @@ const productListBlockDefinition = {
|
|
|
32029
32419
|
paletteHidden: false
|
|
32030
32420
|
},
|
|
32031
32421
|
category: "interactive",
|
|
32422
|
+
contentSource: { kind: "entries" },
|
|
32032
32423
|
tags: [
|
|
32033
32424
|
"shop",
|
|
32034
32425
|
"products",
|
|
@@ -32170,6 +32561,7 @@ const productDetailBlockDefinition = {
|
|
|
32170
32561
|
paletteHidden: false
|
|
32171
32562
|
},
|
|
32172
32563
|
category: "interactive",
|
|
32564
|
+
contentSource: { kind: "entries" },
|
|
32173
32565
|
tags: [
|
|
32174
32566
|
"shop",
|
|
32175
32567
|
"product",
|
|
@@ -32286,6 +32678,7 @@ const cartBlockDefinition = {
|
|
|
32286
32678
|
paletteHidden: false
|
|
32287
32679
|
},
|
|
32288
32680
|
category: "interactive",
|
|
32681
|
+
contentSource: { kind: "inline" },
|
|
32289
32682
|
tags: [
|
|
32290
32683
|
"shop",
|
|
32291
32684
|
"cart",
|
|
@@ -32368,6 +32761,7 @@ const checkoutBlockDefinition = {
|
|
|
32368
32761
|
paletteHidden: false
|
|
32369
32762
|
},
|
|
32370
32763
|
category: "interactive",
|
|
32764
|
+
contentSource: { kind: "inline" },
|
|
32371
32765
|
tags: [
|
|
32372
32766
|
"shop",
|
|
32373
32767
|
"checkout",
|
|
@@ -32571,6 +32965,7 @@ const giftingBlockDefinition = {
|
|
|
32571
32965
|
paletteHidden: false
|
|
32572
32966
|
},
|
|
32573
32967
|
category: "interactive",
|
|
32968
|
+
contentSource: { kind: "entries" },
|
|
32574
32969
|
tags: [
|
|
32575
32970
|
"gifting",
|
|
32576
32971
|
"gift cards",
|
|
@@ -32914,6 +33309,7 @@ const newsletterSignupBlockDefinition = {
|
|
|
32914
33309
|
titleSource: "title",
|
|
32915
33310
|
description: "Newsletter subscription form with configurable field presets.",
|
|
32916
33311
|
category: "interactive",
|
|
33312
|
+
contentSource: { kind: "inline" },
|
|
32917
33313
|
fragments: [{
|
|
32918
33314
|
fragment: newsletterCopyFragment,
|
|
32919
33315
|
fieldPriority: 0
|
|
@@ -33095,6 +33491,7 @@ const teamMembersBlockDefinition = {
|
|
|
33095
33491
|
id: "block.team-members",
|
|
33096
33492
|
title: "Team Members",
|
|
33097
33493
|
category: "content",
|
|
33494
|
+
contentSource: { kind: "mixed" },
|
|
33098
33495
|
titleSource: "heading",
|
|
33099
33496
|
additionalFields: [
|
|
33100
33497
|
parseFieldDefinition({
|
|
@@ -33515,6 +33912,7 @@ const locationMapBlockDefinition = {
|
|
|
33515
33912
|
titleSource: "heading",
|
|
33516
33913
|
description: "Show a business location with an interactive map and directions link.",
|
|
33517
33914
|
category: "content",
|
|
33915
|
+
contentSource: { kind: "inline" },
|
|
33518
33916
|
tags: [
|
|
33519
33917
|
"map",
|
|
33520
33918
|
"location",
|
|
@@ -34630,9 +35028,9 @@ function appendBackgroundMediaClasses(baseClassName, input) {
|
|
|
34630
35028
|
].filter(Boolean).join(" ");
|
|
34631
35029
|
}
|
|
34632
35030
|
function gradientPresetCss(value) {
|
|
34633
|
-
|
|
34634
|
-
|
|
34635
|
-
|
|
35031
|
+
const presetId = parseGradientPresetId(value);
|
|
35032
|
+
if (!presetId) return null;
|
|
35033
|
+
const preset = getGradientPreset(presetId);
|
|
34636
35034
|
return gradientToCss(preset, Object.fromEntries(preset.stops.map((stop) => [stop.color, `rgb(var(--tb-${stop.color}))`])));
|
|
34637
35035
|
}
|
|
34638
35036
|
const backgroundTransforms = [
|
|
@@ -34671,16 +35069,17 @@ const backgroundTransforms = [
|
|
|
34671
35069
|
run: (value, _options, context) => resolveSurfaceForegroundStyles(value, context)
|
|
34672
35070
|
},
|
|
34673
35071
|
{
|
|
34674
|
-
id: "background.
|
|
35072
|
+
id: "background.resolveFrameClassName",
|
|
34675
35073
|
kind: "formatter",
|
|
34676
|
-
summary: "Resolve
|
|
34677
|
-
run: (value) => {
|
|
34678
|
-
|
|
35074
|
+
summary: "Resolve clipping on a decorative background frame without clipping foreground content",
|
|
35075
|
+
run: (value, options) => {
|
|
35076
|
+
const baseClass = options?.baseClass?.trim() ?? "";
|
|
35077
|
+
if (!value || typeof value !== "object") return `${baseClass} rb-overflow-hidden`.trim();
|
|
34679
35078
|
const input = value;
|
|
34680
|
-
if (input.overflow === true) return
|
|
35079
|
+
if (input.overflow === true) return `${baseClass} rb-overflow-visible`.trim();
|
|
34681
35080
|
const objectFit = isString(input.objectFit) ? input.objectFit.trim() : null;
|
|
34682
35081
|
const scale = isString(input.scale) ? input.scale.trim() : isNumber(input.scale) ? String(input.scale) : null;
|
|
34683
|
-
return Boolean((objectFit === "custom" || objectFit === "original") && scale && scale.trim().length > 0);
|
|
35082
|
+
return `${baseClass} ${Boolean((objectFit === "custom" || objectFit === "original") && scale && scale.trim().length > 0) ? "rb-overflow-visible" : "rb-overflow-hidden"}`.trim();
|
|
34684
35083
|
}
|
|
34685
35084
|
},
|
|
34686
35085
|
{
|
|
@@ -35753,6 +36152,7 @@ const CANONICAL_REFUND_PLANNER_ERROR_CODES = [
|
|
|
35753
36152
|
"already_refunded",
|
|
35754
36153
|
"idempotency_amount_mismatch",
|
|
35755
36154
|
"idempotency_method_mismatch",
|
|
36155
|
+
"idempotency_receipt_mismatch",
|
|
35756
36156
|
"refund_in_progress"
|
|
35757
36157
|
],
|
|
35758
36158
|
"invalid_amount",
|
|
@@ -35765,7 +36165,12 @@ const CANONICAL_ADMIN_REFUND_FAILURE_CODES = [
|
|
|
35765
36165
|
"payment_intent_not_found",
|
|
35766
36166
|
"stripe_error",
|
|
35767
36167
|
"stale_pending_missing_context",
|
|
35768
|
-
"non_refundable_deposit_remaining"
|
|
36168
|
+
"non_refundable_deposit_remaining",
|
|
36169
|
+
"deposit_refund_override_required",
|
|
36170
|
+
"refund_revoke_requires_full_line_refund",
|
|
36171
|
+
"payment_receipt_not_found",
|
|
36172
|
+
"payment_receipt_not_refundable",
|
|
36173
|
+
"payment_receipt_attribution_required"
|
|
35769
36174
|
];
|
|
35770
36175
|
[...CANONICAL_REFUND_PLANNER_ERROR_CODES];
|
|
35771
36176
|
//#endregion
|
|
@@ -35778,7 +36183,10 @@ const STANDARD_LINE_ITEM_REFUND_INVALID_CODES = [
|
|
|
35778
36183
|
"missing_credit_customer",
|
|
35779
36184
|
"deposit_refund_override_required",
|
|
35780
36185
|
"refund_revoke_requires_full_line_refund",
|
|
35781
|
-
"unified_order_link_required"
|
|
36186
|
+
"unified_order_link_required",
|
|
36187
|
+
"payment_receipt_not_found",
|
|
36188
|
+
"payment_receipt_not_refundable",
|
|
36189
|
+
"payment_receipt_attribution_required"
|
|
35782
36190
|
];
|
|
35783
36191
|
const EVENT_ATTENDEE_REFUND_INVALID_CODES = ["manual_booking_not_refundable", ...STANDARD_LINE_ITEM_REFUND_INVALID_CODES];
|
|
35784
36192
|
[...CANONICAL_ADMIN_REFUND_FAILURE_CODES];
|