@riverbankcms/sdk 0.109.0 → 0.111.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/dist/{PreviewEditorSidebar-DWqwfy3_.mjs → PreviewEditorSidebar-CTR6LUhN.mjs} +178 -117
- package/dist/{PreviewEditorUI-B7OL4sfR.mjs → PreviewEditorUI-DZg15Zip.mjs} +3 -4
- package/dist/{PreviewQueryProvider-D0y2l8JN.mjs → PreviewQueryProvider-kkmjklLG.mjs} +1 -1
- package/dist/{SdkPreviewModeRuntime-D8Gt9Gbe.mjs → SdkPreviewModeRuntime-DeOTAFvR.mjs} +229 -219
- package/dist/{SiteChromeCustomizeContext-DUpalEdL.mjs → SiteChromeCustomizeContext-DOSDLCiJ.mjs} +1695 -2169
- package/dist/_dts/ai/src/contracts/proposals.d.ts +1716 -76
- package/dist/_dts/api/src/commercePortalEndpoints.d.ts +5 -5
- package/dist/_dts/api/src/contentRuntime.d.ts +4 -1
- package/dist/_dts/api/src/courses.d.ts +30 -15
- package/dist/_dts/api/src/endpoints.d.ts +14 -4
- package/dist/_dts/api/src/index.d.ts +2 -2
- package/dist/_dts/api/src/sdkContracts.d.ts +23 -11
- package/dist/_dts/api/src/siteManagementEndpoints.d.ts +5 -1
- package/dist/_dts/api/src/siteOperations.d.ts +11 -19
- package/dist/_dts/api/src/siteRuntimeEndpoints.d.ts +6 -6
- package/dist/_dts/api/src/webhooks.d.ts +98 -1
- package/dist/_dts/billing/src/site-arrangements.d.ts +3 -0
- package/dist/_dts/blocks/src/client/course-registration.d.ts +4 -1
- package/dist/_dts/blocks/src/client.d.ts +4 -1
- package/dist/_dts/blocks/src/contracts/proof-block-islands.d.ts +4 -4
- package/dist/_dts/blocks/src/index.d.ts +3 -1
- package/dist/_dts/blocks/src/system/blocks/course-registration.d.ts +2 -1
- package/dist/_dts/blocks/src/system/blocks/courses/shared/types.d.ts +2 -1
- package/dist/_dts/blocks/src/system/blocks/cta-full.d.ts +2 -4
- package/dist/_dts/blocks/src/system/blocks/event-registration.d.ts +2 -1
- package/dist/_dts/blocks/src/system/blocks/events/event-listing.d.ts +2 -1
- package/dist/_dts/blocks/src/system/blocks/events/event-spotlight.d.ts +2 -1
- package/dist/_dts/blocks/src/system/blocks/events/recurring-schedule.d.ts +3 -2
- package/dist/_dts/blocks/src/system/blocks/events/shared/types.d.ts +2 -1
- package/dist/_dts/blocks/src/system/blocks/file-download.d.ts +2 -1
- package/dist/_dts/blocks/src/system/blocks/newsletter-signup.d.ts +2 -1
- package/dist/_dts/blocks/src/system/blocks/shop.d.ts +2 -1
- package/dist/_dts/blocks/src/system/blocks/single-button.d.ts +2 -1
- package/dist/_dts/blocks/src/system/constants/buttonRoles.d.ts +35 -0
- package/dist/_dts/blocks/src/system/fields/button.d.ts +10 -21
- package/dist/_dts/blocks/src/system/fields/ctas.d.ts +2 -1
- package/dist/_dts/blocks/src/system/fragments/library/heroCtaRow.d.ts +9 -5
- package/dist/_dts/blocks/src/system/runtime/components/registry.client.d.ts +18 -18
- package/dist/_dts/blocks/src/system/runtime/components/runtime-backed-blocks.d.ts +9 -9
- package/dist/_dts/blocks/src/system/runtime/hooks/useHeadlessWholeSeriesRegistrationFlow.d.ts +29 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/buttonAffordance.d.ts +1 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/ErrorStep.d.ts +2 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/PaymentFailedStep.d.ts +2 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/VerifyingTimeoutStep.d.ts +2 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/types.d.ts +21 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/useCourseRegistrationWizard.d.ts +4 -4
- package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/whole-series-registration.headless.contract.d.ts +326 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/whole-series-registration.headless.planning.d.ts +27 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/course-registration.interactive.d.ts +5 -4
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/event-registration.headless.contract.d.ts +3 -2
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/types.d.ts +2 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration.interactive.d.ts +5 -4
- package/dist/_dts/blocks/src/system/runtime/nodes/file-download.d.ts +2 -3
- package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.types.d.ts +2 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/shared/contract-schemas.d.ts +6 -3
- package/dist/_dts/blocks/src/system/runtime/nodes/shop.interactive.d.ts +7 -6
- package/dist/_dts/blocks/src/system/runtime/nodes/shop.types.d.ts +2 -1
- package/dist/_dts/blocks/src/system/runtime/shared/types.d.ts +2 -1
- package/dist/_dts/content-editor/src/FooterComposerPanel.d.ts +4 -2
- package/dist/_dts/content-editor/src/index.d.ts +12 -12
- package/dist/_dts/content-editor/src/ui/editorUiStore.d.ts +17 -2
- package/dist/_dts/db/src/generated/supabase/database.types.d.ts +221 -53
- package/dist/_dts/editor-blocks/src/widgets/button/context.d.ts +3 -2
- package/dist/_dts/preview-next/src/client/index.d.ts +3 -2
- package/dist/_dts/preview-next/src/client/preview/ButtonStylePicker.d.ts +16 -0
- package/dist/_dts/preview-next/src/client/preview/PageBlockEditorPanel.d.ts +2 -3
- package/dist/_dts/preview-next/src/client/preview/PreviewDesignOpenRequestContext.d.ts +7 -0
- package/dist/_dts/preview-next/src/client/preview/PreviewEditorSidebar.d.ts +5 -11
- package/dist/_dts/preview-next/src/client/preview/PreviewShell.d.ts +5 -6
- package/dist/_dts/preview-next/src/client/preview/PreviewShellLayout.d.ts +6 -7
- package/dist/_dts/preview-next/src/client/preview/SiteChromeCustomizeContext.d.ts +7 -9
- package/dist/_dts/preview-next/src/client/preview/StyleConfigurator.d.ts +4 -11
- package/dist/_dts/preview-next/src/client/preview/StyleConfigurator.state.d.ts +7 -7
- package/dist/_dts/preview-next/src/client/preview/sidebarTabPreference.d.ts +0 -8
- package/dist/_dts/preview-next/src/client/preview/siteChromeLookRows.d.ts +1 -11
- package/dist/_dts/preview-next/src/client/preview/siteChromeQuickControlHistoryState.d.ts +1 -5
- package/dist/_dts/preview-next/src/client/preview/siteChromeSavePlan.d.ts +2 -3
- package/dist/_dts/preview-next/src/client/preview/siteStylePreviewPlanner.d.ts +3 -4
- package/dist/_dts/preview-next/src/client/preview/styleConfiguratorSnapshot.d.ts +3 -5
- package/dist/_dts/sdk/src/bookings/index.d.ts +5 -4
- package/dist/_dts/sdk/src/bookings/types.d.ts +3 -3
- package/dist/_dts/sdk/src/cli/commands/style.d.ts +3 -2
- package/dist/_dts/sdk/src/client/management/types.d.ts +2 -1
- package/dist/_dts/sdk/src/contracts/system-block-content.d.ts +12 -15
- package/dist/_dts/sdk/src/public-api/contracts.d.ts +1 -1
- package/dist/_dts/sdk/src/version.d.ts +1 -1
- package/dist/_dts/sdk/src/webhooks/index.d.ts +1 -1
- package/dist/_dts/sdk/src/webhooks/verify.d.ts +3 -3
- package/dist/_dts/site-commands/src/commands.d.ts +129 -6
- package/dist/_dts/theme-core/src/buttons/index.d.ts +1 -1
- package/dist/_dts/theme-core/src/buttons/styles/domain.d.ts +80 -0
- package/dist/_dts/theme-core/src/buttons/styles/index.d.ts +3 -0
- package/dist/_dts/theme-core/src/buttons/styles/recipes/defineStaticButtonStyleRecipe.d.ts +49 -0
- package/dist/_dts/theme-core/src/buttons/styles/recipes/quietArrow.d.ts +67 -0
- package/dist/_dts/theme-core/src/buttons/styles/recipes/staticRecipes.d.ts +649 -0
- package/dist/_dts/theme-core/src/buttons/styles/registry.d.ts +753 -0
- package/dist/_dts/theme-core/src/buttons/styles/selection.d.ts +69 -0
- package/dist/_dts/theme-core/src/site-styles/curatedSiteStyles.d.ts +26 -24
- package/dist/_dts/theme-core/src/site-styles/footerLooks.d.ts +19 -153
- package/dist/_dts/theme-core/src/site-styles/headerCtaVariants.d.ts +3 -1
- package/dist/_dts/theme-core/src/site-styles/previewCompiler.d.ts +8 -9
- package/dist/_dts/theme-core/src/site-styles/runtimeCompiler.d.ts +4 -4
- package/dist/_dts/ui/src/palette/hex.d.ts +3 -3
- package/dist/cli/index.mjs +1760 -1914
- package/dist/cli/init-docs/content/workflow-isr-revalidation.md +1 -1
- package/dist/client/{DiscountCodeDisclosure-DU1ygxU2.mjs → DiscountCodeDisclosure-C4xvTBux.mjs} +1 -1
- package/dist/client/{EventCombined.client-DB5zagCo.mjs → EventCombined.client-Cr7G131j.mjs} +2 -3
- package/dist/client/{EventListing.client-CTX9JHBL.mjs → EventListing.client-CAjbseNy.mjs} +2 -2
- package/dist/client/{LeafletStaticMap-BYImhgiB.mjs → LeafletStaticMap-BMlWfwz3.mjs} +1 -1
- package/dist/client/{MagicLinkForm-CRkw_M3l.mjs → MagicLinkForm-ChdFz96y.mjs} +1 -2
- package/dist/client/{StepIndicator-BnmVBJJh.mjs → StepIndicator-7D3GaBeM.mjs} +2 -2
- package/dist/client/{accordion-CeGreumd.mjs → accordion-D8JTs2Si.mjs} +1 -1
- package/dist/client/{bookingForm-CSzFNrpN.mjs → bookingForm-H3DCRBHs.mjs} +6 -7
- package/dist/client/bookings.mjs +3069 -1447
- package/dist/client/{carousel-B2jDtogf.mjs → carousel-DMr_QWlz.mjs} +1 -1
- package/dist/client/{cart-D-jZ-vaY.mjs → cart-DWMbfBdR.mjs} +3 -3
- package/dist/client/{checkout-Dza-LA7N.mjs → checkout-zmfdkXLx.mjs} +3 -3
- package/dist/client/client.mjs +1732 -1913
- package/dist/client/{colorStyles-CrgzoXsm.mjs → colorStyles-gcTh5yZT.mjs} +2 -12
- package/dist/client/{colorTokenParts-CMugwvX_.mjs → colorTokenParts-FSS3al6l.mjs} +31 -1
- package/dist/client/{courseRegistration-TYkNychb.mjs → courseRegistration-Z_mn18jy.mjs} +100 -37
- package/dist/client/{eventCalendar-BI_90SsT.mjs → eventCalendar-CYp0YJGF.mjs} +4 -5
- package/dist/client/{eventCombined-mNrpryE9.mjs → eventCombined-rKyYZUa9.mjs} +2 -2
- package/dist/client/{eventDetails-D4GVlCIY.mjs → eventDetails-X0ZaUuMj.mjs} +3 -3
- package/dist/client/{eventListing-YhKN018y.mjs → eventListing-W1SuL7EP.mjs} +2 -2
- package/dist/client/{eventRegistration-CdHGtilr.mjs → eventRegistration-ClWricui.mjs} +6 -7
- package/dist/client/{form-AcAL45rA.mjs → form--eKPwAAD.mjs} +1 -2
- package/dist/client/{headerSection-uEC52ueD.mjs → headerSection-BSeGr-FS.mjs} +2 -3
- package/dist/client/hooks.mjs +1554 -1871
- package/dist/client/{locationMap-_wJDSUYe.mjs → locationMap-BpOrtNYn.mjs} +8 -5
- package/dist/client/{media-BK0O3b-U.mjs → media-DoF0dcVx.mjs} +2 -2
- package/dist/client/{newsletterForm-DrArsb2B.mjs → newsletterForm-Bt7it7Dy.mjs} +1 -2
- package/dist/client/{pricing-BSYVghwo.mjs → pricing-BTjSDDr4.mjs} +1 -1
- package/dist/client/{productDetail-Dyk90sMs.mjs → productDetail-ICnVTcCg.mjs} +3 -3
- package/dist/client/{productList-BCKThwAI.mjs → productList-ZHr6D604.mjs} +3 -3
- package/dist/client/{propsDecoder-CkXxkdSR.mjs → propsDecoder-wWN0tBDF.mjs} +2351 -129
- package/dist/client/rendering/client.mjs +1664 -1824
- package/dist/client/rendering/islands.mjs +20 -20
- package/dist/client/rendering.mjs +1697 -1909
- package/dist/client/{shop-DeltVH10.mjs → shop-C1u_BUn0.mjs} +5 -6
- package/dist/client/{shop-commerce-BD9Jsm2Z.mjs → shop-commerce-CleZdRha.mjs} +5 -6
- package/dist/client/{shop-commerce-store-CmXD6FDS.mjs → shop-commerce-store-ycnoB2Ce.mjs} +1 -1
- package/dist/client/{shopShared-B8v-lH_F.mjs → shopShared-CPhByt2a.mjs} +3 -3
- package/dist/client/{useDiscountCodeUi-DbWJN8ld.mjs → useDiscountCodeUi-cStSQI6C.mjs} +1 -1
- package/dist/client/{useEventFilters-EJIMUnqT.mjs → useEventFilters-DKPN7hSY.mjs} +26 -27
- package/dist/client/{usePolling-Cmh14fc7.mjs → usePolling-BKAd6pkZ.mjs} +2 -2
- package/dist/preview-next/before-render.mjs +37 -6
- package/dist/preview-next/client/runtime.mjs +4 -4
- package/dist/preview-next/middleware.mjs +37 -6
- package/dist/{previewAuthStore-CTO7CRPk.mjs → previewAuthStore-BkT1D06A.mjs} +37 -6
- package/dist/{sdk-runtime-Dou0GAav.mjs → sdk-runtime-hu3wr3ng.mjs} +2 -2
- package/dist/{separator-CI5wZNXT.mjs → separator-Bln8izQ9.mjs} +1 -1
- package/dist/server/components.mjs +1472 -1788
- package/dist/server/config-validation.mjs +1559 -1876
- package/dist/server/config.mjs +1559 -1876
- package/dist/server/data.mjs +1554 -1871
- package/dist/server/index.mjs +38 -7
- package/dist/server/next/revalidate.mjs +53 -1
- package/dist/server/next.mjs +1584 -1869
- package/dist/server/page-converter.mjs +1543 -1860
- package/dist/server/prebuild.mjs +1 -1
- package/dist/server/rendering/server.mjs +1472 -1788
- package/dist/server/rendering.mjs +1472 -1788
- package/dist/server/routing.mjs +1600 -1891
- package/dist/server/server.mjs +1574 -1860
- package/dist/server/theme-bridge.mjs +1436 -1619
- package/dist/server/theme.mjs +1345 -1241
- package/dist/server/webhooks.mjs +54 -2
- package/package.json +1 -1
- package/dist/_dts/theme-core/src/buttons/personalities/brushed-wash.d.ts +0 -16
- package/dist/_dts/theme-core/src/buttons/personalities/confident-chip.d.ts +0 -16
- package/dist/_dts/theme-core/src/buttons/personalities/earth-pill.d.ts +0 -16
- package/dist/_dts/theme-core/src/buttons/personalities/editorial-link.d.ts +0 -16
- package/dist/_dts/theme-core/src/buttons/personalities/flat-ink.d.ts +0 -20
- package/dist/_dts/theme-core/src/buttons/personalities/index.d.ts +0 -172
- package/dist/_dts/theme-core/src/buttons/personalities/ink-stamp.d.ts +0 -16
- package/dist/_dts/theme-core/src/buttons/personalities/joy-stamp.d.ts +0 -22
- package/dist/_dts/theme-core/src/buttons/personalities/ornate-ritual.d.ts +0 -16
- package/dist/_dts/theme-core/src/buttons/personalities/pebble.d.ts +0 -16
- package/dist/_dts/theme-core/src/buttons/personalities/quiet-arrow.d.ts +0 -17
- package/dist/_dts/theme-core/src/buttons/personalities/showtime-pill.d.ts +0 -17
- package/dist/_dts/theme-core/src/buttons/personalities/soft-pill.d.ts +0 -16
- package/dist/_dts/theme-core/src/buttons/personalities/two-tone-pill.d.ts +0 -17
- package/dist/_dts/theme-core/src/buttons/personalities/types.d.ts +0 -285
- package/dist/client/buttons-DoFV7KDL.mjs +0 -2115
- package/dist/client/foregroundContract-xICPq59x.mjs +0 -31
package/dist/{SiteChromeCustomizeContext-DUpalEdL.mjs → SiteChromeCustomizeContext-DOSDLCiJ.mjs}
RENAMED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { d as unwrapResponse, s as ApiRequestError } from "./previewAuthStore-
|
|
2
|
+
import { d as unwrapResponse, s as ApiRequestError } from "./previewAuthStore-BkT1D06A.mjs";
|
|
3
3
|
import * as React$1 from "react";
|
|
4
4
|
import React, { cloneElement, createContext, createElement, forwardRef, isValidElement, memo, useCallback, useContext, useDebugValue, useEffect, useId, useLayoutEffect, useMemo, useReducer, useRef, useState, useSyncExternalStore } from "react";
|
|
5
5
|
import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
|
|
@@ -76432,7 +76432,7 @@ const gradientDirectionSchema$1 = z$1.enum([
|
|
|
76432
76432
|
"to-br",
|
|
76433
76433
|
"to-bl"
|
|
76434
76434
|
]);
|
|
76435
|
-
const
|
|
76435
|
+
const buttonColourTreatmentSchema = z$1.discriminatedUnion("type", [
|
|
76436
76436
|
z$1.object({
|
|
76437
76437
|
type: z$1.literal("solid"),
|
|
76438
76438
|
colorToken: opaqueButtonColourTokenSchema
|
|
@@ -76456,6 +76456,7 @@ const buttonBackgroundSchema = z$1.discriminatedUnion("type", [
|
|
|
76456
76456
|
role: z$1.literal("link")
|
|
76457
76457
|
})
|
|
76458
76458
|
]);
|
|
76459
|
+
const buttonBackgroundSchema = buttonColourTreatmentSchema;
|
|
76459
76460
|
const effectApplicationSchema$1 = z$1.object({
|
|
76460
76461
|
effectId: z$1.string(),
|
|
76461
76462
|
options: z$1.record(z$1.string(), z$1.json()).optional()
|
|
@@ -79502,298 +79503,440 @@ function resolveBoxShadow(variant, global, theme, tokens) {
|
|
|
79502
79503
|
return generateShadowValue$1(shadowConfig.elevation, shadowConfig.softness, shadowConfig.position ?? "bottom", color);
|
|
79503
79504
|
}
|
|
79504
79505
|
//#endregion
|
|
79505
|
-
//#region ../theme-core/src/
|
|
79506
|
-
|
|
79507
|
-
|
|
79508
|
-
|
|
79509
|
-
|
|
79510
|
-
|
|
79511
|
-
|
|
79512
|
-
|
|
79513
|
-
|
|
79514
|
-
|
|
79515
|
-
"bold"
|
|
79516
|
-
],
|
|
79517
|
-
energy: ["calm", "vibrant"],
|
|
79518
|
-
motion: [
|
|
79519
|
-
"subtle",
|
|
79520
|
-
"standard",
|
|
79521
|
-
"expressive"
|
|
79522
|
-
],
|
|
79523
|
-
era: [
|
|
79524
|
-
"editorial",
|
|
79525
|
-
"modern",
|
|
79526
|
-
"organic",
|
|
79527
|
-
"technical",
|
|
79528
|
-
"retro"
|
|
79529
|
-
]
|
|
79530
|
-
};
|
|
79531
|
-
const styleTagsSchema = z$1.object({
|
|
79532
|
-
tone: z$1.enum(STYLE_AXIS_VALUES.tone).optional(),
|
|
79533
|
-
energy: z$1.enum(STYLE_AXIS_VALUES.energy).optional(),
|
|
79534
|
-
motion: z$1.enum(STYLE_AXIS_VALUES.motion).optional(),
|
|
79535
|
-
era: z$1.enum(STYLE_AXIS_VALUES.era).optional()
|
|
79536
|
-
});
|
|
79537
|
-
//#endregion
|
|
79538
|
-
//#region ../theme-core/src/buttons/personalities/types.ts
|
|
79539
|
-
function asButtonPersonalityId(value) {
|
|
79540
|
-
if (value.length === 0) throw new Error("ButtonPersonalityId must be a non-empty string");
|
|
79541
|
-
return value;
|
|
79506
|
+
//#region ../theme-core/src/buttons/styles/domain.ts
|
|
79507
|
+
const PUBLIC_BUTTON_ROLES = [
|
|
79508
|
+
"primary",
|
|
79509
|
+
"secondary",
|
|
79510
|
+
"outline",
|
|
79511
|
+
"ghost",
|
|
79512
|
+
"accent"
|
|
79513
|
+
];
|
|
79514
|
+
function defineButtonStyleRecipe(recipe) {
|
|
79515
|
+
return recipe;
|
|
79542
79516
|
}
|
|
79543
|
-
|
|
79544
|
-
|
|
79545
|
-
|
|
79546
|
-
|
|
79547
|
-
|
|
79548
|
-
|
|
79549
|
-
|
|
79550
|
-
});
|
|
79551
|
-
/**
|
|
79552
|
-
* Helper for personality file modules to keep the call site short and
|
|
79553
|
-
* type-safe. `as const satisfies ...` would also work but produces wider
|
|
79554
|
-
* types at use sites.
|
|
79555
|
-
*/
|
|
79556
|
-
function defineButtonPersonality(input) {
|
|
79517
|
+
function materializeButtonRoles(definitions) {
|
|
79518
|
+
const primary = materializeCompleteRole("primary", definitions.primary.appearance);
|
|
79519
|
+
const secondary = materializeCompleteRole("secondary", definitions.secondary.appearance);
|
|
79520
|
+
const completeRoles = {
|
|
79521
|
+
primary,
|
|
79522
|
+
secondary
|
|
79523
|
+
};
|
|
79557
79524
|
return {
|
|
79558
|
-
|
|
79559
|
-
|
|
79560
|
-
|
|
79561
|
-
|
|
79562
|
-
|
|
79525
|
+
primary,
|
|
79526
|
+
secondary,
|
|
79527
|
+
outline: materializeSupportingRole("outline", definitions.outline, completeRoles),
|
|
79528
|
+
ghost: materializeSupportingRole("ghost", definitions.ghost, completeRoles),
|
|
79529
|
+
accent: materializeSupportingRole("accent", definitions.accent, completeRoles)
|
|
79563
79530
|
};
|
|
79564
79531
|
}
|
|
79565
|
-
|
|
79566
|
-
|
|
79567
|
-
|
|
79568
|
-
|
|
79569
|
-
|
|
79570
|
-
|
|
79571
|
-
|
|
79572
|
-
|
|
79573
|
-
|
|
79574
|
-
|
|
79532
|
+
function resolveButtonStyleRecipe(recipe, parameters) {
|
|
79533
|
+
const parsedParameters = recipe.parameterSchema.safeParse(parameters);
|
|
79534
|
+
if (!parsedParameters.success) return {
|
|
79535
|
+
kind: "error",
|
|
79536
|
+
error: {
|
|
79537
|
+
kind: "invalid-parameters",
|
|
79538
|
+
styleId: recipe.id,
|
|
79539
|
+
issues: parsedParameters.error.issues.map((issue) => issue.message)
|
|
79540
|
+
}
|
|
79541
|
+
};
|
|
79542
|
+
const definition = recipe.defineSystem(parsedParameters.data);
|
|
79543
|
+
const roles = materializeButtonRoles(definition.roles);
|
|
79544
|
+
const buttonSystem = {
|
|
79545
|
+
global: definition.global,
|
|
79546
|
+
variants: PUBLIC_BUTTON_ROLES.map((role) => roles[role]),
|
|
79547
|
+
...definition.sizes ? { sizes: definition.sizes } : {}
|
|
79548
|
+
};
|
|
79549
|
+
const parsedButtonSystem = buttonSystemSchema.safeParse(buttonSystem);
|
|
79550
|
+
if (!parsedButtonSystem.success) return {
|
|
79551
|
+
kind: "error",
|
|
79552
|
+
error: {
|
|
79553
|
+
kind: "invalid-button-system",
|
|
79554
|
+
styleId: recipe.id,
|
|
79555
|
+
issues: parsedButtonSystem.error.issues.map((issue) => issue.message)
|
|
79556
|
+
}
|
|
79557
|
+
};
|
|
79558
|
+
return {
|
|
79559
|
+
kind: "resolved",
|
|
79560
|
+
buttonSystem: parsedButtonSystem.data
|
|
79561
|
+
};
|
|
79562
|
+
}
|
|
79563
|
+
function materializeSupportingRole(role, definition, completeRoles) {
|
|
79564
|
+
if (definition.kind === "complete") return materializeCompleteRole(role, definition.appearance);
|
|
79565
|
+
return {
|
|
79566
|
+
...completeRoles[definition.from],
|
|
79567
|
+
...definition.overrides,
|
|
79568
|
+
id: role,
|
|
79569
|
+
name: roleName(role),
|
|
79570
|
+
enabled: true,
|
|
79571
|
+
priority: 3
|
|
79572
|
+
};
|
|
79573
|
+
}
|
|
79574
|
+
function materializeCompleteRole(role, appearance) {
|
|
79575
|
+
return {
|
|
79576
|
+
...appearance,
|
|
79577
|
+
id: role,
|
|
79578
|
+
name: roleName(role),
|
|
79579
|
+
enabled: true,
|
|
79580
|
+
priority: rolePriority$1(role)
|
|
79581
|
+
};
|
|
79582
|
+
}
|
|
79583
|
+
function roleName(role) {
|
|
79584
|
+
return role.charAt(0).toUpperCase() + role.slice(1);
|
|
79585
|
+
}
|
|
79586
|
+
function rolePriority$1(role) {
|
|
79587
|
+
if (role === "primary") return 1;
|
|
79588
|
+
if (role === "secondary") return 2;
|
|
79589
|
+
return 3;
|
|
79590
|
+
}
|
|
79591
|
+
//#endregion
|
|
79592
|
+
//#region ../theme-core/src/buttons/styles/selection.ts
|
|
79593
|
+
const BUTTON_STYLE_IDS = [
|
|
79594
|
+
"soft-pill",
|
|
79595
|
+
"earth-pill",
|
|
79596
|
+
"confident-chip",
|
|
79597
|
+
"editorial-link",
|
|
79598
|
+
"pebble",
|
|
79599
|
+
"ink-stamp",
|
|
79600
|
+
"flat-ink",
|
|
79601
|
+
"brushed-wash",
|
|
79602
|
+
"showtime-pill",
|
|
79603
|
+
"joy-stamp",
|
|
79604
|
+
"ornate-ritual",
|
|
79605
|
+
"quiet-arrow"
|
|
79606
|
+
];
|
|
79607
|
+
const quietArrowParametersSchema = z$1.object({ secondaryTreatment: z$1.enum(["outlined", "solid-accent"]) }).strict();
|
|
79608
|
+
const emptyParametersSchema$1 = z$1.object({}).strict();
|
|
79609
|
+
function selectionBranch(styleId, parameters) {
|
|
79610
|
+
return z$1.object({
|
|
79611
|
+
styleId: z$1.literal(styleId),
|
|
79612
|
+
parameters
|
|
79613
|
+
}).strict();
|
|
79614
|
+
}
|
|
79615
|
+
const buttonStyleSelectionSchema = z$1.discriminatedUnion("styleId", [
|
|
79616
|
+
selectionBranch("soft-pill", emptyParametersSchema$1),
|
|
79617
|
+
selectionBranch("earth-pill", emptyParametersSchema$1),
|
|
79618
|
+
selectionBranch("confident-chip", emptyParametersSchema$1),
|
|
79619
|
+
selectionBranch("editorial-link", emptyParametersSchema$1),
|
|
79620
|
+
selectionBranch("pebble", emptyParametersSchema$1),
|
|
79621
|
+
selectionBranch("ink-stamp", emptyParametersSchema$1),
|
|
79622
|
+
selectionBranch("flat-ink", emptyParametersSchema$1),
|
|
79623
|
+
selectionBranch("brushed-wash", emptyParametersSchema$1),
|
|
79624
|
+
selectionBranch("showtime-pill", emptyParametersSchema$1),
|
|
79625
|
+
selectionBranch("joy-stamp", emptyParametersSchema$1),
|
|
79626
|
+
selectionBranch("ornate-ritual", emptyParametersSchema$1),
|
|
79627
|
+
selectionBranch("quiet-arrow", quietArrowParametersSchema)
|
|
79628
|
+
]);
|
|
79629
|
+
/**
|
|
79630
|
+
* Stable identity for a validated style selection. Parsing first canonicalises
|
|
79631
|
+
* parameter key order, so future recipe parameters do not require editor-core
|
|
79632
|
+
* equality or key logic.
|
|
79633
|
+
*/
|
|
79634
|
+
function buttonStyleSelectionKey(selection) {
|
|
79635
|
+
return JSON.stringify(buttonStyleSelectionSchema.parse(selection));
|
|
79636
|
+
}
|
|
79637
|
+
function buttonStyleSelectionsEqual(a, b) {
|
|
79638
|
+
return buttonStyleSelectionKey(a) === buttonStyleSelectionKey(b);
|
|
79639
|
+
}
|
|
79640
|
+
//#endregion
|
|
79641
|
+
//#region ../theme-core/src/buttons/styles/recipes/quietArrow.ts
|
|
79642
|
+
const quietArrowRecipe = defineButtonStyleRecipe({
|
|
79643
|
+
id: "quiet-arrow",
|
|
79644
|
+
accessibilityLabel: "Wide uppercase buttons with trailing arrows",
|
|
79575
79645
|
tags: {
|
|
79576
79646
|
tone: "classic",
|
|
79577
|
-
energy: "
|
|
79578
|
-
motion: "
|
|
79579
|
-
era: "
|
|
79647
|
+
energy: "calm",
|
|
79648
|
+
motion: "subtle",
|
|
79649
|
+
era: "editorial"
|
|
79580
79650
|
},
|
|
79581
|
-
|
|
79651
|
+
parameterSchema: quietArrowParametersSchema,
|
|
79652
|
+
defaultParameters: { secondaryTreatment: "outlined" },
|
|
79653
|
+
controls: [{
|
|
79654
|
+
kind: "choice",
|
|
79655
|
+
parameter: "secondaryTreatment",
|
|
79656
|
+
label: "Secondary button treatment",
|
|
79657
|
+
options: [{
|
|
79658
|
+
value: "outlined",
|
|
79659
|
+
label: "Outlined"
|
|
79660
|
+
}, {
|
|
79661
|
+
value: "solid-accent",
|
|
79662
|
+
label: "Solid accent"
|
|
79663
|
+
}]
|
|
79664
|
+
}],
|
|
79665
|
+
defineSystem: (parameters) => ({
|
|
79582
79666
|
global: {
|
|
79583
79667
|
cornerStyle: "rounded",
|
|
79584
|
-
|
|
79585
|
-
textTransform: "none",
|
|
79668
|
+
textTransform: "uppercase",
|
|
79586
79669
|
fontWeight: 500,
|
|
79587
79670
|
borderWidth: 1,
|
|
79671
|
+
typography: "body",
|
|
79672
|
+
fontSize: "text-sm",
|
|
79673
|
+
letterSpacing: "loose",
|
|
79588
79674
|
hoverTransform: "none",
|
|
79589
79675
|
hoverColor: "none"
|
|
79590
79676
|
},
|
|
79591
79677
|
sizes: {
|
|
79592
79678
|
sm: {
|
|
79593
|
-
padding: "0.
|
|
79679
|
+
padding: "0.625rem 1.25rem",
|
|
79680
|
+
fontSize: "text-xs"
|
|
79681
|
+
},
|
|
79682
|
+
md: {
|
|
79683
|
+
padding: "0.8125rem 1.75rem",
|
|
79594
79684
|
fontSize: "text-sm"
|
|
79595
79685
|
},
|
|
79596
|
-
md: { padding: "1rem 2.5rem" },
|
|
79597
79686
|
lg: {
|
|
79598
|
-
padding: "
|
|
79599
|
-
fontSize: "text-
|
|
79687
|
+
padding: "0.9375rem 2.125rem",
|
|
79688
|
+
fontSize: "text-sm"
|
|
79600
79689
|
},
|
|
79601
79690
|
xl: {
|
|
79602
|
-
padding: "1.
|
|
79603
|
-
fontSize: "text-
|
|
79691
|
+
padding: "1.0625rem 2.5rem",
|
|
79692
|
+
fontSize: "text-base"
|
|
79604
79693
|
}
|
|
79605
79694
|
},
|
|
79606
|
-
|
|
79607
|
-
{
|
|
79608
|
-
|
|
79609
|
-
|
|
79610
|
-
|
|
79611
|
-
|
|
79612
|
-
|
|
79613
|
-
|
|
79614
|
-
|
|
79615
|
-
|
|
79616
|
-
|
|
79617
|
-
|
|
79618
|
-
|
|
79619
|
-
|
|
79620
|
-
elevation: "low",
|
|
79621
|
-
softness: "soft",
|
|
79622
|
-
position: "bottom"
|
|
79695
|
+
roles: {
|
|
79696
|
+
primary: {
|
|
79697
|
+
kind: "complete",
|
|
79698
|
+
appearance: {
|
|
79699
|
+
background: {
|
|
79700
|
+
type: "solid",
|
|
79701
|
+
colorToken: unsafeAsOpaqueButtonColourToken("primary")
|
|
79702
|
+
},
|
|
79703
|
+
borderRadius: "rounded-xl",
|
|
79704
|
+
affordance: { iconId: "ArrowRight" },
|
|
79705
|
+
effects: { hover: [{
|
|
79706
|
+
effectId: "darken-background",
|
|
79707
|
+
options: { amount: 100 }
|
|
79708
|
+
}] }
|
|
79623
79709
|
}
|
|
79624
79710
|
},
|
|
79625
|
-
{
|
|
79626
|
-
|
|
79627
|
-
|
|
79628
|
-
|
|
79629
|
-
|
|
79630
|
-
|
|
79631
|
-
|
|
79632
|
-
|
|
79633
|
-
|
|
79634
|
-
|
|
79635
|
-
|
|
79636
|
-
|
|
79637
|
-
|
|
79638
|
-
|
|
79639
|
-
|
|
79640
|
-
|
|
79711
|
+
secondary: {
|
|
79712
|
+
kind: "complete",
|
|
79713
|
+
appearance: parameters.secondaryTreatment === "solid-accent" ? {
|
|
79714
|
+
background: {
|
|
79715
|
+
type: "solid",
|
|
79716
|
+
colorToken: unsafeAsOpaqueButtonColourToken("accent")
|
|
79717
|
+
},
|
|
79718
|
+
borderRadius: "rounded-xl",
|
|
79719
|
+
affordance: { iconId: "ArrowRight" },
|
|
79720
|
+
effects: { hover: [{
|
|
79721
|
+
effectId: "darken-background",
|
|
79722
|
+
options: { amount: 100 }
|
|
79723
|
+
}] }
|
|
79724
|
+
} : {
|
|
79725
|
+
background: {
|
|
79726
|
+
type: "surface",
|
|
79727
|
+
role: "link"
|
|
79728
|
+
},
|
|
79729
|
+
borderRadius: "rounded-xl",
|
|
79730
|
+
border: { widthClass: "border" },
|
|
79731
|
+
affordance: { iconId: "ArrowRight" },
|
|
79732
|
+
effects: { hover: [{
|
|
79733
|
+
effectId: "background-on-hover",
|
|
79734
|
+
options: { colorToken: "surfaceAlt" }
|
|
79735
|
+
}] }
|
|
79641
79736
|
}
|
|
79642
79737
|
},
|
|
79643
|
-
{
|
|
79644
|
-
|
|
79645
|
-
|
|
79646
|
-
|
|
79647
|
-
|
|
79648
|
-
|
|
79649
|
-
|
|
79650
|
-
|
|
79651
|
-
|
|
79652
|
-
|
|
79653
|
-
border: { widthClass: "border" },
|
|
79654
|
-
effects: { hover: [{
|
|
79655
|
-
effectId: "background-on-hover",
|
|
79656
|
-
options: { colorToken: "surface" }
|
|
79657
|
-
}] }
|
|
79738
|
+
outline: {
|
|
79739
|
+
kind: "complete",
|
|
79740
|
+
appearance: {
|
|
79741
|
+
background: {
|
|
79742
|
+
type: "surface",
|
|
79743
|
+
role: "link"
|
|
79744
|
+
},
|
|
79745
|
+
borderRadius: "rounded-xl",
|
|
79746
|
+
border: { widthClass: "border" }
|
|
79747
|
+
}
|
|
79658
79748
|
},
|
|
79659
|
-
{
|
|
79660
|
-
|
|
79661
|
-
|
|
79662
|
-
|
|
79663
|
-
|
|
79664
|
-
|
|
79665
|
-
|
|
79666
|
-
|
|
79667
|
-
}
|
|
79668
|
-
|
|
79669
|
-
|
|
79670
|
-
|
|
79671
|
-
|
|
79672
|
-
|
|
79749
|
+
ghost: {
|
|
79750
|
+
kind: "complete",
|
|
79751
|
+
appearance: {
|
|
79752
|
+
background: {
|
|
79753
|
+
type: "surface",
|
|
79754
|
+
role: "link"
|
|
79755
|
+
},
|
|
79756
|
+
borderRadius: "rounded-xl"
|
|
79757
|
+
}
|
|
79758
|
+
},
|
|
79759
|
+
accent: {
|
|
79760
|
+
kind: "derive",
|
|
79761
|
+
from: "primary",
|
|
79762
|
+
overrides: { background: {
|
|
79763
|
+
type: "solid",
|
|
79764
|
+
colorToken: unsafeAsOpaqueButtonColourToken("accent")
|
|
79765
|
+
} }
|
|
79673
79766
|
}
|
|
79674
|
-
|
|
79675
|
-
}
|
|
79767
|
+
}
|
|
79768
|
+
})
|
|
79676
79769
|
});
|
|
79677
79770
|
//#endregion
|
|
79678
|
-
//#region ../theme-core/src/buttons/
|
|
79679
|
-
|
|
79680
|
-
|
|
79681
|
-
|
|
79682
|
-
|
|
79683
|
-
|
|
79684
|
-
|
|
79685
|
-
|
|
79686
|
-
|
|
79771
|
+
//#region ../theme-core/src/buttons/styles/recipes/defineStaticButtonStyleRecipe.ts
|
|
79772
|
+
const emptyParametersSchema = z$1.object({}).strict();
|
|
79773
|
+
function defineStaticButtonStyleRecipe(input) {
|
|
79774
|
+
const system = normalizeSystem(input.system);
|
|
79775
|
+
return defineButtonStyleRecipe({
|
|
79776
|
+
id: input.id,
|
|
79777
|
+
accessibilityLabel: input.accessibilityLabel,
|
|
79778
|
+
tags: input.tags,
|
|
79779
|
+
parameterSchema: emptyParametersSchema,
|
|
79780
|
+
defaultParameters: {},
|
|
79781
|
+
controls: [],
|
|
79782
|
+
defineSystem: () => system
|
|
79783
|
+
});
|
|
79784
|
+
}
|
|
79785
|
+
function normalizeSystem(input) {
|
|
79786
|
+
return {
|
|
79787
|
+
global: buttonGlobalSettingsSchema.parse(input.global),
|
|
79788
|
+
...input.sizes ? { sizes: input.sizes } : {},
|
|
79789
|
+
roles: {
|
|
79790
|
+
primary: normalizeCompleteRole(input.roles.primary),
|
|
79791
|
+
secondary: normalizeCompleteRole(input.roles.secondary),
|
|
79792
|
+
outline: normalizeSupportingRole(input.roles.outline),
|
|
79793
|
+
ghost: normalizeSupportingRole(input.roles.ghost),
|
|
79794
|
+
accent: normalizeSupportingRole(input.roles.accent)
|
|
79795
|
+
}
|
|
79796
|
+
};
|
|
79797
|
+
}
|
|
79798
|
+
function normalizeCompleteRole(role) {
|
|
79799
|
+
return {
|
|
79800
|
+
kind: "complete",
|
|
79801
|
+
appearance: normalizeAppearance(role.appearance)
|
|
79802
|
+
};
|
|
79803
|
+
}
|
|
79804
|
+
function normalizeSupportingRole(role) {
|
|
79805
|
+
if (role.kind === "complete") return normalizeCompleteRole(role);
|
|
79806
|
+
return {
|
|
79807
|
+
kind: "derive",
|
|
79808
|
+
from: role.from,
|
|
79809
|
+
...role.overrides ? { overrides: normalizeAppearanceOverrides(role.overrides) } : {}
|
|
79810
|
+
};
|
|
79811
|
+
}
|
|
79812
|
+
function normalizeAppearance(appearance) {
|
|
79813
|
+
const { background, hoverBackgroundToken, ...rest } = appearance;
|
|
79814
|
+
return {
|
|
79815
|
+
...rest,
|
|
79816
|
+
background: buttonColourTreatmentSchema.parse(background),
|
|
79817
|
+
...hoverBackgroundToken ? { hoverBackgroundToken: opaqueButtonColourTokenSchema.parse(hoverBackgroundToken) } : {}
|
|
79818
|
+
};
|
|
79819
|
+
}
|
|
79820
|
+
function normalizeAppearanceOverrides(overrides) {
|
|
79821
|
+
const { background, hoverBackgroundToken, ...rest } = overrides;
|
|
79822
|
+
return {
|
|
79823
|
+
...rest,
|
|
79824
|
+
...background ? { background: buttonColourTreatmentSchema.parse(background) } : {},
|
|
79825
|
+
...hoverBackgroundToken ? { hoverBackgroundToken: opaqueButtonColourTokenSchema.parse(hoverBackgroundToken) } : {}
|
|
79826
|
+
};
|
|
79827
|
+
}
|
|
79828
|
+
//#endregion
|
|
79829
|
+
//#region ../theme-core/src/buttons/styles/recipes/staticRecipes.ts
|
|
79830
|
+
const softPillRecipe = defineStaticButtonStyleRecipe({
|
|
79831
|
+
id: "soft-pill",
|
|
79832
|
+
accessibilityLabel: "Rounded pill buttons with a gentle hover lift",
|
|
79687
79833
|
tags: {
|
|
79688
79834
|
tone: "classic",
|
|
79689
79835
|
energy: "calm",
|
|
79690
|
-
motion: "
|
|
79691
|
-
era: "
|
|
79836
|
+
motion: "subtle",
|
|
79837
|
+
era: "organic"
|
|
79692
79838
|
},
|
|
79693
|
-
|
|
79839
|
+
system: {
|
|
79694
79840
|
global: {
|
|
79695
|
-
cornerStyle: "
|
|
79696
|
-
shadow: "
|
|
79841
|
+
cornerStyle: "pill",
|
|
79842
|
+
shadow: "low",
|
|
79697
79843
|
textTransform: "none",
|
|
79698
|
-
fontWeight:
|
|
79699
|
-
borderWidth:
|
|
79700
|
-
hoverTransform: "
|
|
79844
|
+
fontWeight: 500,
|
|
79845
|
+
borderWidth: 2,
|
|
79846
|
+
hoverTransform: "lift",
|
|
79701
79847
|
hoverColor: "none"
|
|
79702
79848
|
},
|
|
79703
|
-
|
|
79704
|
-
{
|
|
79705
|
-
|
|
79706
|
-
|
|
79707
|
-
|
|
79708
|
-
|
|
79709
|
-
|
|
79710
|
-
|
|
79711
|
-
|
|
79712
|
-
|
|
79713
|
-
|
|
79714
|
-
|
|
79715
|
-
|
|
79716
|
-
|
|
79717
|
-
|
|
79718
|
-
|
|
79719
|
-
|
|
79720
|
-
|
|
79721
|
-
|
|
79722
|
-
|
|
79723
|
-
|
|
79724
|
-
|
|
79725
|
-
|
|
79726
|
-
|
|
79727
|
-
}]
|
|
79849
|
+
roles: {
|
|
79850
|
+
primary: {
|
|
79851
|
+
kind: "complete",
|
|
79852
|
+
appearance: {
|
|
79853
|
+
background: {
|
|
79854
|
+
type: "solid",
|
|
79855
|
+
colorToken: "primary"
|
|
79856
|
+
},
|
|
79857
|
+
borderRadius: "rounded-full",
|
|
79858
|
+
shadow: {
|
|
79859
|
+
elevation: "low",
|
|
79860
|
+
softness: "soft",
|
|
79861
|
+
position: "bottom"
|
|
79862
|
+
},
|
|
79863
|
+
effects: {
|
|
79864
|
+
hover: [{
|
|
79865
|
+
effectId: "lift",
|
|
79866
|
+
options: { translateY: "-1px" }
|
|
79867
|
+
}],
|
|
79868
|
+
active: [{
|
|
79869
|
+
effectId: "scale-down",
|
|
79870
|
+
options: { scale: "0.98" }
|
|
79871
|
+
}]
|
|
79872
|
+
}
|
|
79728
79873
|
}
|
|
79729
79874
|
},
|
|
79730
|
-
{
|
|
79731
|
-
|
|
79732
|
-
|
|
79733
|
-
|
|
79734
|
-
|
|
79735
|
-
|
|
79736
|
-
|
|
79737
|
-
|
|
79738
|
-
|
|
79739
|
-
|
|
79740
|
-
|
|
79741
|
-
|
|
79742
|
-
|
|
79743
|
-
|
|
79744
|
-
}] }
|
|
79875
|
+
secondary: {
|
|
79876
|
+
kind: "complete",
|
|
79877
|
+
appearance: {
|
|
79878
|
+
background: {
|
|
79879
|
+
type: "surface",
|
|
79880
|
+
role: "link"
|
|
79881
|
+
},
|
|
79882
|
+
borderRadius: "rounded-full",
|
|
79883
|
+
border: { widthClass: "border-2" },
|
|
79884
|
+
effects: { hover: [{
|
|
79885
|
+
effectId: "background-on-hover",
|
|
79886
|
+
options: { colorToken: "surface" }
|
|
79887
|
+
}] }
|
|
79888
|
+
}
|
|
79745
79889
|
},
|
|
79746
|
-
{
|
|
79747
|
-
|
|
79748
|
-
|
|
79749
|
-
|
|
79750
|
-
|
|
79751
|
-
|
|
79752
|
-
|
|
79753
|
-
|
|
79754
|
-
|
|
79755
|
-
|
|
79756
|
-
|
|
79757
|
-
|
|
79758
|
-
|
|
79759
|
-
|
|
79760
|
-
}] }
|
|
79890
|
+
outline: {
|
|
79891
|
+
kind: "complete",
|
|
79892
|
+
appearance: {
|
|
79893
|
+
background: {
|
|
79894
|
+
type: "surface",
|
|
79895
|
+
role: "link"
|
|
79896
|
+
},
|
|
79897
|
+
borderRadius: "rounded-full",
|
|
79898
|
+
border: { widthClass: "border" },
|
|
79899
|
+
effects: { hover: [{
|
|
79900
|
+
effectId: "background-on-hover",
|
|
79901
|
+
options: { colorToken: "surface" }
|
|
79902
|
+
}] }
|
|
79903
|
+
}
|
|
79761
79904
|
},
|
|
79762
|
-
{
|
|
79763
|
-
|
|
79764
|
-
|
|
79765
|
-
|
|
79766
|
-
|
|
79767
|
-
|
|
79768
|
-
|
|
79769
|
-
|
|
79770
|
-
|
|
79771
|
-
|
|
79772
|
-
|
|
79773
|
-
|
|
79774
|
-
|
|
79775
|
-
|
|
79905
|
+
ghost: {
|
|
79906
|
+
kind: "complete",
|
|
79907
|
+
appearance: {
|
|
79908
|
+
background: {
|
|
79909
|
+
type: "surface",
|
|
79910
|
+
role: "link"
|
|
79911
|
+
},
|
|
79912
|
+
borderRadius: "rounded-full",
|
|
79913
|
+
effects: { hover: [{
|
|
79914
|
+
effectId: "background-on-hover",
|
|
79915
|
+
options: { colorToken: "surface" }
|
|
79916
|
+
}] }
|
|
79917
|
+
}
|
|
79918
|
+
},
|
|
79919
|
+
accent: {
|
|
79920
|
+
kind: "derive",
|
|
79921
|
+
from: "primary",
|
|
79922
|
+
overrides: { background: {
|
|
79923
|
+
type: "solid",
|
|
79924
|
+
colorToken: "accent"
|
|
79925
|
+
} }
|
|
79776
79926
|
}
|
|
79777
|
-
|
|
79927
|
+
}
|
|
79778
79928
|
}
|
|
79779
79929
|
});
|
|
79780
|
-
|
|
79781
|
-
//#region ../theme-core/src/buttons/personalities/earth-pill.ts
|
|
79782
|
-
/**
|
|
79783
|
-
* Earth Pill - warm studio pills with compact, primary-coloured ghost CTAs.
|
|
79784
|
-
* Built for grounded editorial wellness styles such as Soft Earth.
|
|
79785
|
-
*/
|
|
79786
|
-
const earthPill = defineButtonPersonality({
|
|
79930
|
+
const earthPillRecipe = defineStaticButtonStyleRecipe({
|
|
79787
79931
|
id: "earth-pill",
|
|
79788
|
-
|
|
79789
|
-
description: "Compact terracotta pills with quiet primary-coloured ghost CTAs.",
|
|
79932
|
+
accessibilityLabel: "Compact rounded buttons with a quiet hover lift",
|
|
79790
79933
|
tags: {
|
|
79791
79934
|
tone: "classic",
|
|
79792
79935
|
energy: "calm",
|
|
79793
79936
|
motion: "subtle",
|
|
79794
79937
|
era: "organic"
|
|
79795
79938
|
},
|
|
79796
|
-
|
|
79939
|
+
system: {
|
|
79797
79940
|
global: {
|
|
79798
79941
|
cornerStyle: "pill",
|
|
79799
79942
|
shadow: "low",
|
|
@@ -79820,576 +79963,547 @@ const earthPill = defineButtonPersonality({
|
|
|
79820
79963
|
fontSize: "text-xl"
|
|
79821
79964
|
}
|
|
79822
79965
|
},
|
|
79823
|
-
|
|
79824
|
-
{
|
|
79825
|
-
|
|
79826
|
-
|
|
79827
|
-
|
|
79828
|
-
|
|
79829
|
-
|
|
79830
|
-
|
|
79831
|
-
|
|
79832
|
-
|
|
79833
|
-
|
|
79834
|
-
|
|
79835
|
-
|
|
79836
|
-
|
|
79837
|
-
|
|
79838
|
-
|
|
79839
|
-
|
|
79840
|
-
|
|
79841
|
-
|
|
79842
|
-
|
|
79843
|
-
|
|
79844
|
-
|
|
79845
|
-
|
|
79846
|
-
|
|
79847
|
-
|
|
79848
|
-
|
|
79849
|
-
|
|
79850
|
-
}]
|
|
79966
|
+
roles: {
|
|
79967
|
+
primary: {
|
|
79968
|
+
kind: "complete",
|
|
79969
|
+
appearance: {
|
|
79970
|
+
background: {
|
|
79971
|
+
type: "solid",
|
|
79972
|
+
colorToken: "primary"
|
|
79973
|
+
},
|
|
79974
|
+
borderRadius: "rounded-full",
|
|
79975
|
+
shadow: {
|
|
79976
|
+
elevation: "low",
|
|
79977
|
+
softness: "soft",
|
|
79978
|
+
position: "bottom"
|
|
79979
|
+
},
|
|
79980
|
+
effects: {
|
|
79981
|
+
hover: [{
|
|
79982
|
+
effectId: "lift",
|
|
79983
|
+
options: { translateY: "-1px" }
|
|
79984
|
+
}, {
|
|
79985
|
+
effectId: "background-on-hover",
|
|
79986
|
+
options: { colorToken: "accent" }
|
|
79987
|
+
}],
|
|
79988
|
+
active: [{
|
|
79989
|
+
effectId: "scale-down",
|
|
79990
|
+
options: { scale: "0.98" }
|
|
79991
|
+
}]
|
|
79992
|
+
}
|
|
79851
79993
|
}
|
|
79852
79994
|
},
|
|
79853
|
-
{
|
|
79854
|
-
|
|
79855
|
-
|
|
79856
|
-
|
|
79857
|
-
|
|
79858
|
-
|
|
79859
|
-
|
|
79860
|
-
|
|
79861
|
-
|
|
79862
|
-
|
|
79863
|
-
|
|
79864
|
-
|
|
79865
|
-
|
|
79866
|
-
|
|
79867
|
-
}] }
|
|
79995
|
+
secondary: {
|
|
79996
|
+
kind: "complete",
|
|
79997
|
+
appearance: {
|
|
79998
|
+
background: {
|
|
79999
|
+
type: "surface",
|
|
80000
|
+
role: "link"
|
|
80001
|
+
},
|
|
80002
|
+
borderRadius: "rounded-full",
|
|
80003
|
+
border: { widthClass: "border" },
|
|
80004
|
+
effects: { hover: [{
|
|
80005
|
+
effectId: "background-on-hover",
|
|
80006
|
+
options: { colorToken: "muted" }
|
|
80007
|
+
}] }
|
|
80008
|
+
}
|
|
79868
80009
|
},
|
|
79869
|
-
{
|
|
79870
|
-
|
|
79871
|
-
|
|
79872
|
-
|
|
79873
|
-
|
|
79874
|
-
|
|
79875
|
-
|
|
79876
|
-
|
|
79877
|
-
|
|
79878
|
-
|
|
79879
|
-
|
|
79880
|
-
|
|
79881
|
-
|
|
79882
|
-
|
|
79883
|
-
}] }
|
|
80010
|
+
outline: {
|
|
80011
|
+
kind: "complete",
|
|
80012
|
+
appearance: {
|
|
80013
|
+
background: {
|
|
80014
|
+
type: "surface",
|
|
80015
|
+
role: "link"
|
|
80016
|
+
},
|
|
80017
|
+
borderRadius: "rounded-full",
|
|
80018
|
+
border: { widthClass: "border" },
|
|
80019
|
+
effects: { hover: [{
|
|
80020
|
+
effectId: "background-on-hover",
|
|
80021
|
+
options: { colorToken: "surfaceAlt" }
|
|
80022
|
+
}] }
|
|
80023
|
+
}
|
|
79884
80024
|
},
|
|
79885
|
-
{
|
|
79886
|
-
|
|
79887
|
-
|
|
79888
|
-
|
|
79889
|
-
|
|
79890
|
-
|
|
79891
|
-
type: "surface",
|
|
79892
|
-
role: "link"
|
|
79893
|
-
},
|
|
79894
|
-
borderRadius: "rounded-full",
|
|
79895
|
-
shadow: {
|
|
79896
|
-
elevation: "none",
|
|
79897
|
-
softness: null,
|
|
79898
|
-
position: "bottom"
|
|
79899
|
-
},
|
|
79900
|
-
sizes: {
|
|
79901
|
-
sm: {
|
|
79902
|
-
padding: "0.25rem 0",
|
|
79903
|
-
fontSize: "text-sm"
|
|
80025
|
+
ghost: {
|
|
80026
|
+
kind: "complete",
|
|
80027
|
+
appearance: {
|
|
80028
|
+
background: {
|
|
80029
|
+
type: "surface",
|
|
80030
|
+
role: "link"
|
|
79904
80031
|
},
|
|
79905
|
-
|
|
79906
|
-
|
|
79907
|
-
|
|
79908
|
-
|
|
80032
|
+
borderRadius: "rounded-full",
|
|
80033
|
+
shadow: {
|
|
80034
|
+
elevation: "none",
|
|
80035
|
+
softness: null,
|
|
80036
|
+
position: "bottom"
|
|
79909
80037
|
},
|
|
79910
|
-
|
|
79911
|
-
|
|
79912
|
-
|
|
80038
|
+
sizes: {
|
|
80039
|
+
sm: {
|
|
80040
|
+
padding: "0.25rem 0",
|
|
80041
|
+
fontSize: "text-sm"
|
|
80042
|
+
},
|
|
80043
|
+
md: { padding: "0.375rem 0" },
|
|
80044
|
+
lg: {
|
|
80045
|
+
padding: "0.5rem 0",
|
|
80046
|
+
fontSize: "text-lg"
|
|
80047
|
+
},
|
|
80048
|
+
xl: {
|
|
80049
|
+
padding: "0.625rem 0",
|
|
80050
|
+
fontSize: "text-xl"
|
|
80051
|
+
}
|
|
79913
80052
|
}
|
|
79914
80053
|
}
|
|
80054
|
+
},
|
|
80055
|
+
accent: {
|
|
80056
|
+
kind: "derive",
|
|
80057
|
+
from: "primary",
|
|
80058
|
+
overrides: { background: {
|
|
80059
|
+
type: "solid",
|
|
80060
|
+
colorToken: "accent"
|
|
80061
|
+
} }
|
|
79915
80062
|
}
|
|
79916
|
-
|
|
80063
|
+
}
|
|
79917
80064
|
}
|
|
79918
80065
|
});
|
|
79919
|
-
|
|
79920
|
-
|
|
79921
|
-
|
|
79922
|
-
* Editorial Link — all variants are link-style with a growing underline.
|
|
79923
|
-
* Default for Warm Editorial and Quiet Luxury; reads as refined and quiet.
|
|
79924
|
-
*/
|
|
79925
|
-
const editorialLink = defineButtonPersonality({
|
|
79926
|
-
id: "editorial-link",
|
|
79927
|
-
name: "Editorial Link",
|
|
79928
|
-
description: "Link-style with a growing underline. Refined, typographic.",
|
|
80066
|
+
const confidentChipRecipe = defineStaticButtonStyleRecipe({
|
|
80067
|
+
id: "confident-chip",
|
|
80068
|
+
accessibilityLabel: "Moderately rounded solid buttons with a crisp hover",
|
|
79929
80069
|
tags: {
|
|
79930
|
-
tone: "
|
|
80070
|
+
tone: "classic",
|
|
79931
80071
|
energy: "calm",
|
|
79932
|
-
motion: "
|
|
79933
|
-
era: "
|
|
80072
|
+
motion: "standard",
|
|
80073
|
+
era: "modern"
|
|
79934
80074
|
},
|
|
79935
|
-
|
|
80075
|
+
system: {
|
|
79936
80076
|
global: {
|
|
79937
|
-
cornerStyle: "
|
|
80077
|
+
cornerStyle: "rounded",
|
|
80078
|
+
shadow: "medium",
|
|
79938
80079
|
textTransform: "none",
|
|
79939
|
-
fontWeight:
|
|
80080
|
+
fontWeight: 600,
|
|
79940
80081
|
borderWidth: 1,
|
|
79941
80082
|
hoverTransform: "none",
|
|
79942
80083
|
hoverColor: "none"
|
|
79943
80084
|
},
|
|
79944
|
-
|
|
79945
|
-
{
|
|
79946
|
-
|
|
79947
|
-
|
|
79948
|
-
|
|
79949
|
-
|
|
79950
|
-
|
|
79951
|
-
|
|
79952
|
-
|
|
79953
|
-
|
|
79954
|
-
|
|
79955
|
-
|
|
79956
|
-
|
|
79957
|
-
|
|
79958
|
-
|
|
79959
|
-
|
|
79960
|
-
|
|
79961
|
-
|
|
79962
|
-
|
|
79963
|
-
|
|
79964
|
-
|
|
79965
|
-
|
|
79966
|
-
|
|
80085
|
+
roles: {
|
|
80086
|
+
primary: {
|
|
80087
|
+
kind: "complete",
|
|
80088
|
+
appearance: {
|
|
80089
|
+
background: {
|
|
80090
|
+
type: "solid",
|
|
80091
|
+
colorToken: "primary"
|
|
80092
|
+
},
|
|
80093
|
+
borderRadius: "rounded-md",
|
|
80094
|
+
shadow: {
|
|
80095
|
+
elevation: "medium",
|
|
80096
|
+
softness: "soft",
|
|
80097
|
+
position: "bottom"
|
|
80098
|
+
},
|
|
80099
|
+
effects: {
|
|
80100
|
+
hover: [{
|
|
80101
|
+
effectId: "darken-background",
|
|
80102
|
+
options: { amount: 100 }
|
|
80103
|
+
}],
|
|
80104
|
+
active: [{
|
|
80105
|
+
effectId: "scale-down",
|
|
80106
|
+
options: { scale: "0.97" }
|
|
80107
|
+
}]
|
|
79967
80108
|
}
|
|
79968
|
-
}
|
|
80109
|
+
}
|
|
79969
80110
|
},
|
|
79970
|
-
{
|
|
79971
|
-
|
|
79972
|
-
|
|
79973
|
-
|
|
79974
|
-
|
|
79975
|
-
|
|
79976
|
-
|
|
79977
|
-
|
|
79978
|
-
|
|
79979
|
-
|
|
79980
|
-
|
|
79981
|
-
|
|
79982
|
-
|
|
79983
|
-
|
|
79984
|
-
xl: { padding: "0.75rem 0" }
|
|
79985
|
-
},
|
|
79986
|
-
effects: { base: [{
|
|
79987
|
-
effectId: "border-bottom-grow",
|
|
79988
|
-
options: {
|
|
79989
|
-
height: 1,
|
|
79990
|
-
colorToken: "mutedText",
|
|
79991
|
-
origin: "left"
|
|
79992
|
-
}
|
|
79993
|
-
}] }
|
|
80111
|
+
secondary: {
|
|
80112
|
+
kind: "complete",
|
|
80113
|
+
appearance: {
|
|
80114
|
+
background: {
|
|
80115
|
+
type: "solid",
|
|
80116
|
+
colorToken: "surface"
|
|
80117
|
+
},
|
|
80118
|
+
borderRadius: "rounded-md",
|
|
80119
|
+
border: { widthClass: "border" },
|
|
80120
|
+
effects: { hover: [{
|
|
80121
|
+
effectId: "background-on-hover",
|
|
80122
|
+
options: { colorToken: "background" }
|
|
80123
|
+
}] }
|
|
80124
|
+
}
|
|
79994
80125
|
},
|
|
79995
|
-
{
|
|
79996
|
-
|
|
79997
|
-
|
|
79998
|
-
|
|
79999
|
-
|
|
80000
|
-
|
|
80001
|
-
|
|
80002
|
-
|
|
80003
|
-
|
|
80004
|
-
|
|
80005
|
-
|
|
80006
|
-
|
|
80007
|
-
|
|
80008
|
-
|
|
80009
|
-
xl: { padding: "0.75rem 0" }
|
|
80010
|
-
},
|
|
80011
|
-
effects: { base: [{
|
|
80012
|
-
effectId: "border-bottom-grow",
|
|
80013
|
-
options: {
|
|
80014
|
-
height: 1,
|
|
80015
|
-
colorToken: "accent",
|
|
80016
|
-
origin: "left"
|
|
80017
|
-
}
|
|
80018
|
-
}] }
|
|
80126
|
+
outline: {
|
|
80127
|
+
kind: "complete",
|
|
80128
|
+
appearance: {
|
|
80129
|
+
background: {
|
|
80130
|
+
type: "surface",
|
|
80131
|
+
role: "link"
|
|
80132
|
+
},
|
|
80133
|
+
borderRadius: "rounded-md",
|
|
80134
|
+
border: { widthClass: "border" },
|
|
80135
|
+
effects: { hover: [{
|
|
80136
|
+
effectId: "background-on-hover",
|
|
80137
|
+
options: { colorToken: "surface" }
|
|
80138
|
+
}] }
|
|
80139
|
+
}
|
|
80019
80140
|
},
|
|
80020
|
-
{
|
|
80021
|
-
|
|
80022
|
-
|
|
80023
|
-
|
|
80024
|
-
|
|
80025
|
-
|
|
80026
|
-
|
|
80027
|
-
|
|
80028
|
-
|
|
80029
|
-
|
|
80030
|
-
|
|
80031
|
-
|
|
80032
|
-
md: { padding: "0.5rem 0" },
|
|
80033
|
-
lg: { padding: "0.625rem 0" },
|
|
80034
|
-
xl: { padding: "0.75rem 0" }
|
|
80141
|
+
ghost: {
|
|
80142
|
+
kind: "complete",
|
|
80143
|
+
appearance: {
|
|
80144
|
+
background: {
|
|
80145
|
+
type: "surface",
|
|
80146
|
+
role: "link"
|
|
80147
|
+
},
|
|
80148
|
+
borderRadius: "rounded-md",
|
|
80149
|
+
effects: { hover: [{
|
|
80150
|
+
effectId: "background-on-hover",
|
|
80151
|
+
options: { colorToken: "surface" }
|
|
80152
|
+
}] }
|
|
80035
80153
|
}
|
|
80154
|
+
},
|
|
80155
|
+
accent: {
|
|
80156
|
+
kind: "derive",
|
|
80157
|
+
from: "primary",
|
|
80158
|
+
overrides: { background: {
|
|
80159
|
+
type: "solid",
|
|
80160
|
+
colorToken: "accent"
|
|
80161
|
+
} }
|
|
80036
80162
|
}
|
|
80037
|
-
|
|
80163
|
+
}
|
|
80038
80164
|
}
|
|
80039
80165
|
});
|
|
80040
|
-
|
|
80041
|
-
|
|
80042
|
-
|
|
80043
|
-
|
|
80044
|
-
|
|
80045
|
-
|
|
80046
|
-
|
|
80047
|
-
|
|
80048
|
-
|
|
80049
|
-
*/
|
|
80050
|
-
const flatInk = defineButtonPersonality({
|
|
80051
|
-
id: "flat-ink",
|
|
80052
|
-
name: "Flat Ink",
|
|
80053
|
-
description: "Flat solid-ink primary, hairline ghost secondary, and a single amber accent climax — modest radius, no shadow.",
|
|
80166
|
+
const editorialSizes = {
|
|
80167
|
+
sm: { padding: "0.25rem 0" },
|
|
80168
|
+
md: { padding: "0.5rem 0" },
|
|
80169
|
+
lg: { padding: "0.625rem 0" },
|
|
80170
|
+
xl: { padding: "0.75rem 0" }
|
|
80171
|
+
};
|
|
80172
|
+
const editorialLinkRecipe = defineStaticButtonStyleRecipe({
|
|
80173
|
+
id: "editorial-link",
|
|
80174
|
+
accessibilityLabel: "Flat typographic buttons with an underline treatment",
|
|
80054
80175
|
tags: {
|
|
80055
|
-
tone: "
|
|
80176
|
+
tone: "minimal",
|
|
80056
80177
|
energy: "calm",
|
|
80057
80178
|
motion: "subtle",
|
|
80058
80179
|
era: "editorial"
|
|
80059
80180
|
},
|
|
80060
|
-
|
|
80181
|
+
system: {
|
|
80061
80182
|
global: {
|
|
80062
|
-
cornerStyle: "
|
|
80183
|
+
cornerStyle: "square",
|
|
80063
80184
|
textTransform: "none",
|
|
80064
|
-
fontWeight:
|
|
80185
|
+
fontWeight: 500,
|
|
80065
80186
|
borderWidth: 1,
|
|
80066
|
-
|
|
80067
|
-
letterSpacing: "tight",
|
|
80068
|
-
paddingPreset: "default",
|
|
80069
|
-
hoverTransform: "lift",
|
|
80187
|
+
hoverTransform: "none",
|
|
80070
80188
|
hoverColor: "none"
|
|
80071
80189
|
},
|
|
80072
|
-
|
|
80073
|
-
|
|
80074
|
-
|
|
80075
|
-
|
|
80190
|
+
roles: {
|
|
80191
|
+
primary: {
|
|
80192
|
+
kind: "complete",
|
|
80193
|
+
appearance: {
|
|
80194
|
+
background: {
|
|
80195
|
+
type: "surface",
|
|
80196
|
+
role: "link"
|
|
80197
|
+
},
|
|
80198
|
+
borderRadius: "rounded-none",
|
|
80199
|
+
sizes: editorialSizes,
|
|
80200
|
+
effects: { base: [{
|
|
80201
|
+
effectId: "border-bottom-grow",
|
|
80202
|
+
options: {
|
|
80203
|
+
height: 2,
|
|
80204
|
+
colorToken: "text",
|
|
80205
|
+
origin: "left"
|
|
80206
|
+
}
|
|
80207
|
+
}] }
|
|
80208
|
+
}
|
|
80076
80209
|
},
|
|
80077
|
-
|
|
80078
|
-
|
|
80079
|
-
|
|
80080
|
-
|
|
80210
|
+
secondary: {
|
|
80211
|
+
kind: "complete",
|
|
80212
|
+
appearance: {
|
|
80213
|
+
background: {
|
|
80214
|
+
type: "surface",
|
|
80215
|
+
role: "link"
|
|
80216
|
+
},
|
|
80217
|
+
borderRadius: "rounded-none",
|
|
80218
|
+
sizes: editorialSizes,
|
|
80219
|
+
effects: { base: [{
|
|
80220
|
+
effectId: "border-bottom-grow",
|
|
80221
|
+
options: {
|
|
80222
|
+
height: 1,
|
|
80223
|
+
colorToken: "mutedText",
|
|
80224
|
+
origin: "left"
|
|
80225
|
+
}
|
|
80226
|
+
}] }
|
|
80227
|
+
}
|
|
80081
80228
|
},
|
|
80082
|
-
|
|
80083
|
-
|
|
80084
|
-
|
|
80085
|
-
|
|
80086
|
-
|
|
80087
|
-
|
|
80088
|
-
|
|
80089
|
-
|
|
80090
|
-
|
|
80091
|
-
|
|
80092
|
-
|
|
80093
|
-
|
|
80094
|
-
|
|
80095
|
-
|
|
80096
|
-
|
|
80097
|
-
|
|
80098
|
-
|
|
80099
|
-
|
|
80100
|
-
effectId: "lift",
|
|
80101
|
-
options: { translateY: "-2px" }
|
|
80102
|
-
}, {
|
|
80103
|
-
effectId: "background-on-hover",
|
|
80104
|
-
options: { colorToken: "secondary" }
|
|
80105
|
-
}] }
|
|
80229
|
+
outline: {
|
|
80230
|
+
kind: "complete",
|
|
80231
|
+
appearance: {
|
|
80232
|
+
background: {
|
|
80233
|
+
type: "surface",
|
|
80234
|
+
role: "link"
|
|
80235
|
+
},
|
|
80236
|
+
borderRadius: "rounded-none",
|
|
80237
|
+
sizes: editorialSizes,
|
|
80238
|
+
effects: { base: [{
|
|
80239
|
+
effectId: "border-bottom-grow",
|
|
80240
|
+
options: {
|
|
80241
|
+
height: 1,
|
|
80242
|
+
colorToken: "accent",
|
|
80243
|
+
origin: "left"
|
|
80244
|
+
}
|
|
80245
|
+
}] }
|
|
80246
|
+
}
|
|
80106
80247
|
},
|
|
80107
|
-
{
|
|
80108
|
-
|
|
80109
|
-
|
|
80110
|
-
|
|
80111
|
-
|
|
80112
|
-
|
|
80113
|
-
|
|
80114
|
-
|
|
80115
|
-
|
|
80116
|
-
|
|
80117
|
-
border: { widthClass: "border" },
|
|
80118
|
-
effects: { hover: [{
|
|
80119
|
-
effectId: "lift",
|
|
80120
|
-
options: { translateY: "-2px" }
|
|
80121
|
-
}, {
|
|
80122
|
-
effectId: "background-on-hover",
|
|
80123
|
-
options: { colorToken: "surfaceAlt" }
|
|
80124
|
-
}] }
|
|
80248
|
+
ghost: {
|
|
80249
|
+
kind: "complete",
|
|
80250
|
+
appearance: {
|
|
80251
|
+
background: {
|
|
80252
|
+
type: "surface",
|
|
80253
|
+
role: "link"
|
|
80254
|
+
},
|
|
80255
|
+
borderRadius: "rounded-none",
|
|
80256
|
+
sizes: editorialSizes
|
|
80257
|
+
}
|
|
80125
80258
|
},
|
|
80126
|
-
{
|
|
80127
|
-
|
|
80128
|
-
|
|
80129
|
-
|
|
80130
|
-
|
|
80131
|
-
|
|
80132
|
-
|
|
80133
|
-
|
|
80134
|
-
|
|
80135
|
-
|
|
80136
|
-
|
|
80137
|
-
effects: { hover: [{
|
|
80138
|
-
effectId: "lift",
|
|
80139
|
-
options: { translateY: "-2px" }
|
|
80140
|
-
}] }
|
|
80259
|
+
accent: {
|
|
80260
|
+
kind: "derive",
|
|
80261
|
+
from: "primary",
|
|
80262
|
+
overrides: { effects: { base: [{
|
|
80263
|
+
effectId: "border-bottom-grow",
|
|
80264
|
+
options: {
|
|
80265
|
+
height: 2,
|
|
80266
|
+
colorToken: "accent",
|
|
80267
|
+
origin: "left"
|
|
80268
|
+
}
|
|
80269
|
+
}] } }
|
|
80141
80270
|
}
|
|
80142
|
-
|
|
80271
|
+
}
|
|
80143
80272
|
}
|
|
80144
80273
|
});
|
|
80145
|
-
|
|
80146
|
-
|
|
80147
|
-
|
|
80148
|
-
* Ink Stamp — solid earthy fills with a bordered, hand-stamped block-print
|
|
80149
|
-
* feel. Reads as bold and handmade; suits expressive craft brands.
|
|
80150
|
-
*/
|
|
80151
|
-
const inkStamp = defineButtonPersonality({
|
|
80152
|
-
id: "ink-stamp",
|
|
80153
|
-
name: "Ink Stamp",
|
|
80154
|
-
description: "Hand-stamped block-print buttons with a slight lift on hover.",
|
|
80274
|
+
const pebbleRecipe = defineStaticButtonStyleRecipe({
|
|
80275
|
+
id: "pebble",
|
|
80276
|
+
accessibilityLabel: "Generously padded pill buttons",
|
|
80155
80277
|
tags: {
|
|
80156
|
-
tone: "
|
|
80157
|
-
energy: "
|
|
80278
|
+
tone: "classic",
|
|
80279
|
+
energy: "calm",
|
|
80158
80280
|
motion: "standard",
|
|
80159
80281
|
era: "organic"
|
|
80160
80282
|
},
|
|
80161
|
-
|
|
80283
|
+
system: {
|
|
80162
80284
|
global: {
|
|
80163
|
-
cornerStyle: "
|
|
80164
|
-
textTransform: "
|
|
80165
|
-
fontWeight:
|
|
80166
|
-
borderWidth:
|
|
80285
|
+
cornerStyle: "pill",
|
|
80286
|
+
textTransform: "none",
|
|
80287
|
+
fontWeight: 500,
|
|
80288
|
+
borderWidth: 2,
|
|
80167
80289
|
hoverTransform: "none",
|
|
80168
|
-
hoverColor: "none"
|
|
80169
|
-
letterSpacing: "loose"
|
|
80290
|
+
hoverColor: "none"
|
|
80170
80291
|
},
|
|
80171
80292
|
sizes: {
|
|
80172
80293
|
sm: {
|
|
80173
|
-
padding: "0.
|
|
80174
|
-
fontSize: "text-xs"
|
|
80175
|
-
},
|
|
80176
|
-
md: {
|
|
80177
|
-
padding: "0.75rem 1.75rem",
|
|
80294
|
+
padding: "0.625rem 1.75rem",
|
|
80178
80295
|
fontSize: "text-sm"
|
|
80179
80296
|
},
|
|
80297
|
+
md: { padding: "0.875rem 2.25rem" },
|
|
80180
80298
|
lg: {
|
|
80181
|
-
padding: "0.875rem 2.25rem",
|
|
80182
|
-
fontSize: "text-base"
|
|
80183
|
-
},
|
|
80184
|
-
xl: {
|
|
80185
80299
|
padding: "1.125rem 2.75rem",
|
|
80186
80300
|
fontSize: "text-lg"
|
|
80301
|
+
},
|
|
80302
|
+
xl: {
|
|
80303
|
+
padding: "1.5rem 3.5rem",
|
|
80304
|
+
fontSize: "text-xl"
|
|
80187
80305
|
}
|
|
80188
80306
|
},
|
|
80189
|
-
|
|
80190
|
-
{
|
|
80191
|
-
|
|
80192
|
-
|
|
80193
|
-
|
|
80194
|
-
|
|
80195
|
-
|
|
80196
|
-
|
|
80197
|
-
|
|
80198
|
-
|
|
80199
|
-
|
|
80200
|
-
|
|
80201
|
-
|
|
80202
|
-
effectId: "drop-shadow",
|
|
80203
|
-
options: { intensity: "medium" }
|
|
80204
|
-
}, {
|
|
80205
|
-
effectId: "scale-up",
|
|
80206
|
-
options: { scale: "1.02" }
|
|
80207
|
-
}],
|
|
80208
|
-
active: [{
|
|
80209
|
-
effectId: "scale-down",
|
|
80210
|
-
options: { scale: "0.98" }
|
|
80211
|
-
}]
|
|
80307
|
+
roles: {
|
|
80308
|
+
primary: {
|
|
80309
|
+
kind: "complete",
|
|
80310
|
+
appearance: {
|
|
80311
|
+
background: {
|
|
80312
|
+
type: "solid",
|
|
80313
|
+
colorToken: "primary"
|
|
80314
|
+
},
|
|
80315
|
+
borderRadius: "rounded-full",
|
|
80316
|
+
effects: { hover: [{
|
|
80317
|
+
effectId: "darken-background",
|
|
80318
|
+
options: { amount: 100 }
|
|
80319
|
+
}] }
|
|
80212
80320
|
}
|
|
80213
80321
|
},
|
|
80214
|
-
{
|
|
80215
|
-
|
|
80216
|
-
|
|
80217
|
-
|
|
80218
|
-
|
|
80219
|
-
|
|
80220
|
-
type: "surface",
|
|
80221
|
-
role: "link"
|
|
80222
|
-
},
|
|
80223
|
-
borderRadius: "rounded-md",
|
|
80224
|
-
border: { widthClass: "border-2" },
|
|
80225
|
-
effects: { hover: [{
|
|
80226
|
-
effectId: "background-on-hover",
|
|
80227
|
-
options: { colorToken: "surface" }
|
|
80228
|
-
}] }
|
|
80229
|
-
},
|
|
80230
|
-
{
|
|
80231
|
-
id: "outline",
|
|
80232
|
-
name: "Outline",
|
|
80233
|
-
enabled: true,
|
|
80234
|
-
priority: 3,
|
|
80235
|
-
background: {
|
|
80236
|
-
type: "surface",
|
|
80237
|
-
role: "link"
|
|
80238
|
-
},
|
|
80239
|
-
borderRadius: "rounded-md",
|
|
80240
|
-
border: { widthClass: "border-2" },
|
|
80241
|
-
effects: { hover: [{
|
|
80242
|
-
effectId: "background-on-hover",
|
|
80243
|
-
options: { colorToken: "surface" }
|
|
80244
|
-
}] }
|
|
80245
|
-
},
|
|
80246
|
-
{
|
|
80247
|
-
id: "ghost",
|
|
80248
|
-
name: "Ghost",
|
|
80249
|
-
enabled: true,
|
|
80250
|
-
priority: 3,
|
|
80251
|
-
background: {
|
|
80252
|
-
type: "surface",
|
|
80253
|
-
role: "link"
|
|
80254
|
-
},
|
|
80255
|
-
borderRadius: "rounded-none",
|
|
80256
|
-
sizes: {
|
|
80257
|
-
sm: {
|
|
80258
|
-
padding: "0.375rem 0",
|
|
80259
|
-
fontSize: "text-xs"
|
|
80322
|
+
secondary: {
|
|
80323
|
+
kind: "complete",
|
|
80324
|
+
appearance: {
|
|
80325
|
+
background: {
|
|
80326
|
+
type: "surface",
|
|
80327
|
+
role: "link"
|
|
80260
80328
|
},
|
|
80261
|
-
|
|
80262
|
-
|
|
80263
|
-
|
|
80329
|
+
borderRadius: "rounded-full",
|
|
80330
|
+
border: { widthClass: "border-2" },
|
|
80331
|
+
effects: { hover: [{
|
|
80332
|
+
effectId: "background-on-hover",
|
|
80333
|
+
options: { colorToken: "accent" }
|
|
80334
|
+
}] }
|
|
80335
|
+
}
|
|
80336
|
+
},
|
|
80337
|
+
outline: {
|
|
80338
|
+
kind: "complete",
|
|
80339
|
+
appearance: {
|
|
80340
|
+
background: {
|
|
80341
|
+
type: "surface",
|
|
80342
|
+
role: "link"
|
|
80264
80343
|
},
|
|
80265
|
-
|
|
80266
|
-
|
|
80267
|
-
|
|
80344
|
+
borderRadius: "rounded-full",
|
|
80345
|
+
border: { widthClass: "border" },
|
|
80346
|
+
effects: { hover: [{
|
|
80347
|
+
effectId: "background-on-hover",
|
|
80348
|
+
options: { colorToken: "surface" }
|
|
80349
|
+
}] }
|
|
80350
|
+
}
|
|
80351
|
+
},
|
|
80352
|
+
ghost: {
|
|
80353
|
+
kind: "complete",
|
|
80354
|
+
appearance: {
|
|
80355
|
+
background: {
|
|
80356
|
+
type: "surface",
|
|
80357
|
+
role: "link"
|
|
80268
80358
|
},
|
|
80269
|
-
|
|
80270
|
-
|
|
80271
|
-
|
|
80272
|
-
|
|
80273
|
-
|
|
80274
|
-
|
|
80275
|
-
|
|
80276
|
-
|
|
80277
|
-
|
|
80278
|
-
|
|
80279
|
-
|
|
80359
|
+
borderRadius: "rounded-full",
|
|
80360
|
+
sizes: {
|
|
80361
|
+
sm: {
|
|
80362
|
+
padding: "0.375rem 0.875rem",
|
|
80363
|
+
fontSize: "text-sm"
|
|
80364
|
+
},
|
|
80365
|
+
md: { padding: "0.5rem 1rem" },
|
|
80366
|
+
lg: {
|
|
80367
|
+
padding: "0.625rem 1.25rem",
|
|
80368
|
+
fontSize: "text-lg"
|
|
80369
|
+
},
|
|
80370
|
+
xl: {
|
|
80371
|
+
padding: "0.75rem 1.5rem",
|
|
80372
|
+
fontSize: "text-xl"
|
|
80373
|
+
}
|
|
80280
80374
|
}
|
|
80281
|
-
}
|
|
80375
|
+
}
|
|
80376
|
+
},
|
|
80377
|
+
accent: {
|
|
80378
|
+
kind: "derive",
|
|
80379
|
+
from: "primary",
|
|
80380
|
+
overrides: { background: {
|
|
80381
|
+
type: "solid",
|
|
80382
|
+
colorToken: "accent"
|
|
80383
|
+
} }
|
|
80282
80384
|
}
|
|
80283
|
-
|
|
80385
|
+
}
|
|
80284
80386
|
}
|
|
80285
80387
|
});
|
|
80286
|
-
|
|
80287
|
-
|
|
80288
|
-
|
|
80289
|
-
* Joy Stamp — neo-brutalist pills with a hard, brand-coloured offset shadow
|
|
80290
|
-
* that collapses as the button presses into it on hover. Authored for the
|
|
80291
|
-
* Original Joy site style: a cream "stamp" shadow under the solid primary, and
|
|
80292
|
-
* a brown shadow under the cream outline. Reads as bold, warm, and handmade.
|
|
80293
|
-
*
|
|
80294
|
-
* The coloured offset shadow relies on the per-variant `shadow.colorToken`
|
|
80295
|
-
* extension; the press is the shared `press-down` effect, which matches its
|
|
80296
|
-
* translate to each variant's own shadow offset.
|
|
80297
|
-
*/
|
|
80298
|
-
const joyStamp = defineButtonPersonality({
|
|
80299
|
-
id: "joy-stamp",
|
|
80300
|
-
name: "Joy Stamp",
|
|
80301
|
-
description: "Pill buttons with a hard, brand-coloured offset shadow that presses in on hover.",
|
|
80388
|
+
const brushedWashRecipe = defineStaticButtonStyleRecipe({
|
|
80389
|
+
id: "brushed-wash",
|
|
80390
|
+
accessibilityLabel: "Generously padded gradient buttons with soft shadows",
|
|
80302
80391
|
tags: {
|
|
80303
|
-
tone: "
|
|
80392
|
+
tone: "classic",
|
|
80304
80393
|
energy: "vibrant",
|
|
80305
|
-
motion: "
|
|
80394
|
+
motion: "standard",
|
|
80306
80395
|
era: "organic"
|
|
80307
80396
|
},
|
|
80308
|
-
|
|
80397
|
+
system: {
|
|
80309
80398
|
global: {
|
|
80310
|
-
cornerStyle: "
|
|
80311
|
-
shadow: "
|
|
80399
|
+
cornerStyle: "rounded",
|
|
80400
|
+
shadow: "low",
|
|
80312
80401
|
textTransform: "none",
|
|
80313
|
-
|
|
80314
|
-
|
|
80315
|
-
fontSize: "text-lg",
|
|
80316
|
-
borderWidth: 2,
|
|
80402
|
+
fontWeight: 500,
|
|
80403
|
+
borderWidth: 1,
|
|
80317
80404
|
hoverTransform: "none",
|
|
80318
80405
|
hoverColor: "none"
|
|
80319
80406
|
},
|
|
80320
80407
|
sizes: {
|
|
80321
80408
|
sm: {
|
|
80322
|
-
padding: "0.
|
|
80323
|
-
fontSize: "text-
|
|
80324
|
-
},
|
|
80325
|
-
md: {
|
|
80326
|
-
padding: "0.875rem 1.75rem",
|
|
80327
|
-
fontSize: "text-lg"
|
|
80409
|
+
padding: "0.75rem 2rem",
|
|
80410
|
+
fontSize: "text-sm"
|
|
80328
80411
|
},
|
|
80412
|
+
md: { padding: "1rem 2.5rem" },
|
|
80329
80413
|
lg: {
|
|
80330
|
-
padding: "1.
|
|
80331
|
-
fontSize: "text-
|
|
80414
|
+
padding: "1.25rem 3rem",
|
|
80415
|
+
fontSize: "text-lg"
|
|
80332
80416
|
},
|
|
80333
80417
|
xl: {
|
|
80334
|
-
padding: "1.
|
|
80335
|
-
fontSize: "text-
|
|
80418
|
+
padding: "1.625rem 3.75rem",
|
|
80419
|
+
fontSize: "text-xl"
|
|
80336
80420
|
}
|
|
80337
80421
|
},
|
|
80338
|
-
|
|
80339
|
-
|
|
80340
|
-
|
|
80341
|
-
|
|
80342
|
-
|
|
80343
|
-
|
|
80344
|
-
|
|
80345
|
-
|
|
80422
|
+
roles: {
|
|
80423
|
+
primary: {
|
|
80424
|
+
kind: "complete",
|
|
80425
|
+
appearance: {
|
|
80426
|
+
background: {
|
|
80427
|
+
type: "gradient",
|
|
80428
|
+
stops: ["primary", "accent"],
|
|
80429
|
+
direction: "to-r",
|
|
80430
|
+
foregroundToken: "primaryForeground"
|
|
80431
|
+
},
|
|
80432
|
+
borderRadius: "rounded-lg",
|
|
80433
|
+
shadow: {
|
|
80434
|
+
elevation: "low",
|
|
80435
|
+
softness: "soft",
|
|
80436
|
+
position: "bottom"
|
|
80437
|
+
}
|
|
80438
|
+
}
|
|
80346
80439
|
},
|
|
80347
|
-
|
|
80348
|
-
|
|
80349
|
-
|
|
80350
|
-
|
|
80351
|
-
|
|
80352
|
-
|
|
80440
|
+
secondary: {
|
|
80441
|
+
kind: "complete",
|
|
80442
|
+
appearance: {
|
|
80443
|
+
background: {
|
|
80444
|
+
type: "gradient",
|
|
80445
|
+
stops: ["secondary", "accent"],
|
|
80446
|
+
direction: "to-br",
|
|
80447
|
+
foregroundToken: "primaryForeground"
|
|
80448
|
+
},
|
|
80449
|
+
borderRadius: "rounded-lg",
|
|
80450
|
+
shadow: {
|
|
80451
|
+
elevation: "low",
|
|
80452
|
+
softness: "soft",
|
|
80453
|
+
position: "bottom"
|
|
80454
|
+
}
|
|
80455
|
+
}
|
|
80353
80456
|
},
|
|
80354
|
-
|
|
80355
|
-
|
|
80356
|
-
|
|
80357
|
-
|
|
80358
|
-
|
|
80359
|
-
|
|
80360
|
-
|
|
80361
|
-
|
|
80362
|
-
|
|
80457
|
+
outline: {
|
|
80458
|
+
kind: "complete",
|
|
80459
|
+
appearance: {
|
|
80460
|
+
background: {
|
|
80461
|
+
type: "surface",
|
|
80462
|
+
role: "link"
|
|
80463
|
+
},
|
|
80464
|
+
borderRadius: "rounded-lg",
|
|
80465
|
+
border: { widthClass: "border" },
|
|
80466
|
+
effects: { hover: [{
|
|
80467
|
+
effectId: "background-on-hover",
|
|
80468
|
+
options: { colorToken: "surface" }
|
|
80469
|
+
}] }
|
|
80470
|
+
}
|
|
80363
80471
|
},
|
|
80364
|
-
|
|
80365
|
-
|
|
80366
|
-
|
|
80367
|
-
|
|
80368
|
-
|
|
80369
|
-
|
|
80370
|
-
|
|
80472
|
+
ghost: {
|
|
80473
|
+
kind: "complete",
|
|
80474
|
+
appearance: {
|
|
80475
|
+
background: {
|
|
80476
|
+
type: "surface",
|
|
80477
|
+
role: "link"
|
|
80478
|
+
},
|
|
80479
|
+
borderRadius: "rounded-lg",
|
|
80480
|
+
effects: { hover: [{
|
|
80481
|
+
effectId: "background-on-hover",
|
|
80482
|
+
options: { colorToken: "surface" }
|
|
80483
|
+
}] }
|
|
80484
|
+
}
|
|
80371
80485
|
},
|
|
80372
|
-
|
|
80373
|
-
|
|
80486
|
+
accent: {
|
|
80487
|
+
kind: "derive",
|
|
80488
|
+
from: "primary",
|
|
80489
|
+
overrides: { background: {
|
|
80490
|
+
type: "solid",
|
|
80491
|
+
colorToken: "accent"
|
|
80492
|
+
} }
|
|
80493
|
+
}
|
|
80494
|
+
}
|
|
80374
80495
|
}
|
|
80375
80496
|
});
|
|
80376
|
-
|
|
80377
|
-
|
|
80378
|
-
|
|
80379
|
-
* Ornate Ritual — framed, ceremonial buttons with jewel-toned fills and
|
|
80380
|
-
* deliberate spacing. Designed for music, ceremony, and soulful event sites.
|
|
80381
|
-
*/
|
|
80382
|
-
const ornateRitual = defineButtonPersonality({
|
|
80383
|
-
id: "ornate-ritual",
|
|
80384
|
-
name: "Ornate Ritual",
|
|
80385
|
-
description: "Ceremonial framed buttons with jewel-toned fills and quiet color-change hover states.",
|
|
80497
|
+
const inkStampRecipe = defineStaticButtonStyleRecipe({
|
|
80498
|
+
id: "ink-stamp",
|
|
80499
|
+
accessibilityLabel: "Uppercase block-print buttons with a playful hover",
|
|
80386
80500
|
tags: {
|
|
80387
|
-
tone: "
|
|
80501
|
+
tone: "bold",
|
|
80388
80502
|
energy: "vibrant",
|
|
80389
|
-
motion: "
|
|
80503
|
+
motion: "standard",
|
|
80390
80504
|
era: "organic"
|
|
80391
80505
|
},
|
|
80392
|
-
|
|
80506
|
+
system: {
|
|
80393
80507
|
global: {
|
|
80394
80508
|
cornerStyle: "rounded",
|
|
80395
80509
|
textTransform: "uppercase",
|
|
@@ -80401,359 +80515,256 @@ const ornateRitual = defineButtonPersonality({
|
|
|
80401
80515
|
},
|
|
80402
80516
|
sizes: {
|
|
80403
80517
|
sm: {
|
|
80404
|
-
padding: "0.
|
|
80518
|
+
padding: "0.5rem 1.25rem",
|
|
80405
80519
|
fontSize: "text-xs"
|
|
80406
80520
|
},
|
|
80407
80521
|
md: {
|
|
80408
80522
|
padding: "0.75rem 1.75rem",
|
|
80409
|
-
fontSize: "text-
|
|
80523
|
+
fontSize: "text-sm"
|
|
80410
80524
|
},
|
|
80411
80525
|
lg: {
|
|
80412
80526
|
padding: "0.875rem 2.25rem",
|
|
80413
|
-
fontSize: "text-sm"
|
|
80414
|
-
},
|
|
80415
|
-
xl: {
|
|
80416
|
-
padding: "1rem 2.75rem",
|
|
80417
80527
|
fontSize: "text-base"
|
|
80418
|
-
}
|
|
80419
|
-
},
|
|
80420
|
-
variants: [
|
|
80421
|
-
{
|
|
80422
|
-
id: "primary",
|
|
80423
|
-
name: "Primary",
|
|
80424
|
-
enabled: true,
|
|
80425
|
-
priority: 1,
|
|
80426
|
-
background: {
|
|
80427
|
-
type: "solid",
|
|
80428
|
-
colorToken: "primary"
|
|
80429
|
-
},
|
|
80430
|
-
borderRadius: "rounded-md",
|
|
80431
|
-
border: { widthClass: "border" },
|
|
80432
|
-
effects: {
|
|
80433
|
-
hover: [{
|
|
80434
|
-
effectId: "background-on-hover",
|
|
80435
|
-
options: { colorToken: "primary-100" }
|
|
80436
|
-
}],
|
|
80437
|
-
active: [{
|
|
80438
|
-
effectId: "scale-down",
|
|
80439
|
-
options: { scale: "0.98" }
|
|
80440
|
-
}]
|
|
80441
|
-
}
|
|
80442
|
-
},
|
|
80443
|
-
{
|
|
80444
|
-
id: "secondary",
|
|
80445
|
-
name: "Secondary",
|
|
80446
|
-
enabled: true,
|
|
80447
|
-
priority: 2,
|
|
80448
|
-
background: {
|
|
80449
|
-
type: "solid",
|
|
80450
|
-
colorToken: "secondary"
|
|
80451
|
-
},
|
|
80452
|
-
borderRadius: "rounded-md",
|
|
80453
|
-
border: { widthClass: "border" },
|
|
80454
|
-
effects: { hover: [{
|
|
80455
|
-
effectId: "background-on-hover",
|
|
80456
|
-
options: { colorToken: "surface" }
|
|
80457
|
-
}] }
|
|
80458
80528
|
},
|
|
80459
|
-
{
|
|
80460
|
-
id: "outline",
|
|
80461
|
-
name: "Outline",
|
|
80462
|
-
enabled: true,
|
|
80463
|
-
priority: 3,
|
|
80464
|
-
background: {
|
|
80465
|
-
type: "surface",
|
|
80466
|
-
role: "link"
|
|
80467
|
-
},
|
|
80468
|
-
borderRadius: "rounded-md",
|
|
80469
|
-
border: { widthClass: "border" },
|
|
80470
|
-
effects: { hover: [{
|
|
80471
|
-
effectId: "background-on-hover",
|
|
80472
|
-
options: { colorToken: "muted" }
|
|
80473
|
-
}] }
|
|
80474
|
-
},
|
|
80475
|
-
{
|
|
80476
|
-
id: "ghost",
|
|
80477
|
-
name: "Ghost",
|
|
80478
|
-
enabled: true,
|
|
80479
|
-
priority: 3,
|
|
80480
|
-
background: {
|
|
80481
|
-
type: "surface",
|
|
80482
|
-
role: "link"
|
|
80483
|
-
},
|
|
80484
|
-
borderRadius: "rounded-none",
|
|
80485
|
-
sizes: {
|
|
80486
|
-
sm: {
|
|
80487
|
-
padding: "0.375rem 0",
|
|
80488
|
-
fontSize: "text-xs"
|
|
80489
|
-
},
|
|
80490
|
-
md: {
|
|
80491
|
-
padding: "0.5rem 0",
|
|
80492
|
-
fontSize: "text-sm"
|
|
80493
|
-
},
|
|
80494
|
-
lg: {
|
|
80495
|
-
padding: "0.625rem 0",
|
|
80496
|
-
fontSize: "text-base"
|
|
80497
|
-
},
|
|
80498
|
-
xl: {
|
|
80499
|
-
padding: "0.75rem 0",
|
|
80500
|
-
fontSize: "text-lg"
|
|
80501
|
-
}
|
|
80502
|
-
},
|
|
80503
|
-
effects: { base: [{
|
|
80504
|
-
effectId: "border-bottom-grow",
|
|
80505
|
-
options: {
|
|
80506
|
-
height: 1,
|
|
80507
|
-
colorToken: "accent",
|
|
80508
|
-
origin: "left"
|
|
80509
|
-
}
|
|
80510
|
-
}] }
|
|
80511
|
-
}
|
|
80512
|
-
]
|
|
80513
|
-
}
|
|
80514
|
-
});
|
|
80515
|
-
//#endregion
|
|
80516
|
-
//#region ../theme-core/src/buttons/personalities/pebble.ts
|
|
80517
|
-
/**
|
|
80518
|
-
* Pebble — large pill primaries with generous padding. Reads as spa-luxurious
|
|
80519
|
-
* and natural; pairs well with wellness/yoga/dance brands.
|
|
80520
|
-
*/
|
|
80521
|
-
const pebble = defineButtonPersonality({
|
|
80522
|
-
id: "pebble",
|
|
80523
|
-
name: "Pebble",
|
|
80524
|
-
description: "Generous pill buttons with a quiet colour-softening hover.",
|
|
80525
|
-
tags: {
|
|
80526
|
-
tone: "classic",
|
|
80527
|
-
energy: "calm",
|
|
80528
|
-
motion: "standard",
|
|
80529
|
-
era: "organic"
|
|
80530
|
-
},
|
|
80531
|
-
buttonSystem: {
|
|
80532
|
-
global: {
|
|
80533
|
-
cornerStyle: "pill",
|
|
80534
|
-
textTransform: "none",
|
|
80535
|
-
fontWeight: 500,
|
|
80536
|
-
borderWidth: 2,
|
|
80537
|
-
hoverTransform: "none",
|
|
80538
|
-
hoverColor: "none"
|
|
80539
|
-
},
|
|
80540
|
-
sizes: {
|
|
80541
|
-
sm: {
|
|
80542
|
-
padding: "0.625rem 1.75rem",
|
|
80543
|
-
fontSize: "text-sm"
|
|
80544
|
-
},
|
|
80545
|
-
md: { padding: "0.875rem 2.25rem" },
|
|
80546
|
-
lg: {
|
|
80529
|
+
xl: {
|
|
80547
80530
|
padding: "1.125rem 2.75rem",
|
|
80548
80531
|
fontSize: "text-lg"
|
|
80549
|
-
},
|
|
80550
|
-
xl: {
|
|
80551
|
-
padding: "1.5rem 3.5rem",
|
|
80552
|
-
fontSize: "text-xl"
|
|
80553
80532
|
}
|
|
80554
80533
|
},
|
|
80555
|
-
|
|
80556
|
-
{
|
|
80557
|
-
|
|
80558
|
-
|
|
80559
|
-
|
|
80560
|
-
|
|
80561
|
-
|
|
80562
|
-
|
|
80563
|
-
|
|
80564
|
-
|
|
80565
|
-
|
|
80566
|
-
|
|
80567
|
-
|
|
80568
|
-
|
|
80569
|
-
|
|
80534
|
+
roles: {
|
|
80535
|
+
primary: {
|
|
80536
|
+
kind: "complete",
|
|
80537
|
+
appearance: {
|
|
80538
|
+
background: {
|
|
80539
|
+
type: "solid",
|
|
80540
|
+
colorToken: "primary"
|
|
80541
|
+
},
|
|
80542
|
+
borderRadius: "rounded-md",
|
|
80543
|
+
effects: {
|
|
80544
|
+
hover: [{
|
|
80545
|
+
effectId: "drop-shadow",
|
|
80546
|
+
options: { intensity: "medium" }
|
|
80547
|
+
}, {
|
|
80548
|
+
effectId: "scale-up",
|
|
80549
|
+
options: { scale: "1.02" }
|
|
80550
|
+
}],
|
|
80551
|
+
active: [{
|
|
80552
|
+
effectId: "scale-down",
|
|
80553
|
+
options: { scale: "0.98" }
|
|
80554
|
+
}]
|
|
80555
|
+
}
|
|
80556
|
+
}
|
|
80570
80557
|
},
|
|
80571
|
-
{
|
|
80572
|
-
|
|
80573
|
-
|
|
80574
|
-
|
|
80575
|
-
|
|
80576
|
-
|
|
80577
|
-
|
|
80578
|
-
|
|
80579
|
-
|
|
80580
|
-
|
|
80581
|
-
|
|
80582
|
-
|
|
80583
|
-
|
|
80584
|
-
|
|
80585
|
-
}] }
|
|
80558
|
+
secondary: {
|
|
80559
|
+
kind: "complete",
|
|
80560
|
+
appearance: {
|
|
80561
|
+
background: {
|
|
80562
|
+
type: "surface",
|
|
80563
|
+
role: "link"
|
|
80564
|
+
},
|
|
80565
|
+
borderRadius: "rounded-md",
|
|
80566
|
+
border: { widthClass: "border-2" },
|
|
80567
|
+
effects: { hover: [{
|
|
80568
|
+
effectId: "background-on-hover",
|
|
80569
|
+
options: { colorToken: "surface" }
|
|
80570
|
+
}] }
|
|
80571
|
+
}
|
|
80586
80572
|
},
|
|
80587
|
-
{
|
|
80588
|
-
|
|
80589
|
-
|
|
80590
|
-
|
|
80591
|
-
|
|
80592
|
-
|
|
80593
|
-
|
|
80594
|
-
|
|
80595
|
-
|
|
80596
|
-
|
|
80597
|
-
|
|
80598
|
-
|
|
80599
|
-
|
|
80600
|
-
|
|
80601
|
-
}] }
|
|
80573
|
+
outline: {
|
|
80574
|
+
kind: "complete",
|
|
80575
|
+
appearance: {
|
|
80576
|
+
background: {
|
|
80577
|
+
type: "surface",
|
|
80578
|
+
role: "link"
|
|
80579
|
+
},
|
|
80580
|
+
borderRadius: "rounded-md",
|
|
80581
|
+
border: { widthClass: "border-2" },
|
|
80582
|
+
effects: { hover: [{
|
|
80583
|
+
effectId: "background-on-hover",
|
|
80584
|
+
options: { colorToken: "surface" }
|
|
80585
|
+
}] }
|
|
80586
|
+
}
|
|
80602
80587
|
},
|
|
80603
|
-
{
|
|
80604
|
-
|
|
80605
|
-
|
|
80606
|
-
|
|
80607
|
-
|
|
80608
|
-
|
|
80609
|
-
type: "surface",
|
|
80610
|
-
role: "link"
|
|
80611
|
-
},
|
|
80612
|
-
borderRadius: "rounded-full",
|
|
80613
|
-
sizes: {
|
|
80614
|
-
sm: {
|
|
80615
|
-
padding: "0.375rem 0.875rem",
|
|
80616
|
-
fontSize: "text-sm"
|
|
80588
|
+
ghost: {
|
|
80589
|
+
kind: "complete",
|
|
80590
|
+
appearance: {
|
|
80591
|
+
background: {
|
|
80592
|
+
type: "surface",
|
|
80593
|
+
role: "link"
|
|
80617
80594
|
},
|
|
80618
|
-
|
|
80619
|
-
|
|
80620
|
-
|
|
80621
|
-
|
|
80595
|
+
borderRadius: "rounded-none",
|
|
80596
|
+
sizes: {
|
|
80597
|
+
sm: {
|
|
80598
|
+
padding: "0.375rem 0",
|
|
80599
|
+
fontSize: "text-xs"
|
|
80600
|
+
},
|
|
80601
|
+
md: {
|
|
80602
|
+
padding: "0.5rem 0",
|
|
80603
|
+
fontSize: "text-sm"
|
|
80604
|
+
},
|
|
80605
|
+
lg: {
|
|
80606
|
+
padding: "0.625rem 0",
|
|
80607
|
+
fontSize: "text-base"
|
|
80608
|
+
},
|
|
80609
|
+
xl: {
|
|
80610
|
+
padding: "0.75rem 0",
|
|
80611
|
+
fontSize: "text-lg"
|
|
80612
|
+
}
|
|
80622
80613
|
},
|
|
80623
|
-
|
|
80624
|
-
|
|
80625
|
-
|
|
80626
|
-
|
|
80614
|
+
effects: { base: [{
|
|
80615
|
+
effectId: "border-bottom-grow",
|
|
80616
|
+
options: {
|
|
80617
|
+
height: 1,
|
|
80618
|
+
colorToken: "accent",
|
|
80619
|
+
origin: "left"
|
|
80620
|
+
}
|
|
80621
|
+
}] }
|
|
80627
80622
|
}
|
|
80623
|
+
},
|
|
80624
|
+
accent: {
|
|
80625
|
+
kind: "derive",
|
|
80626
|
+
from: "primary",
|
|
80627
|
+
overrides: { background: {
|
|
80628
|
+
type: "solid",
|
|
80629
|
+
colorToken: "accent"
|
|
80630
|
+
} }
|
|
80628
80631
|
}
|
|
80629
|
-
|
|
80632
|
+
}
|
|
80630
80633
|
}
|
|
80631
80634
|
});
|
|
80632
|
-
|
|
80633
|
-
|
|
80634
|
-
|
|
80635
|
-
* Quiet Arrow — wide, flat editorial buttons for grounded service businesses.
|
|
80636
|
-
* Primary and secondary keep stable semantic colours; surrounding surfaces are
|
|
80637
|
-
* responsible for contrast rather than reversing the button roles.
|
|
80638
|
-
*/
|
|
80639
|
-
const quietArrow = defineButtonPersonality({
|
|
80640
|
-
id: "quiet-arrow",
|
|
80641
|
-
name: "Quiet Arrow",
|
|
80642
|
-
description: "Wide, flat arrow buttons with a solid primary and a primary-colour outlined secondary.",
|
|
80635
|
+
const flatInkRecipe = defineStaticButtonStyleRecipe({
|
|
80636
|
+
id: "flat-ink",
|
|
80637
|
+
accessibilityLabel: "Flat rounded buttons with arrow affordances",
|
|
80643
80638
|
tags: {
|
|
80644
80639
|
tone: "classic",
|
|
80645
80640
|
energy: "calm",
|
|
80646
80641
|
motion: "subtle",
|
|
80647
80642
|
era: "editorial"
|
|
80648
80643
|
},
|
|
80649
|
-
|
|
80644
|
+
system: {
|
|
80650
80645
|
global: {
|
|
80651
80646
|
cornerStyle: "rounded",
|
|
80652
|
-
textTransform: "
|
|
80653
|
-
fontWeight:
|
|
80647
|
+
textTransform: "none",
|
|
80648
|
+
fontWeight: 600,
|
|
80654
80649
|
borderWidth: 1,
|
|
80655
80650
|
typography: "body",
|
|
80656
|
-
|
|
80657
|
-
|
|
80658
|
-
hoverTransform: "
|
|
80651
|
+
letterSpacing: "tight",
|
|
80652
|
+
paddingPreset: "default",
|
|
80653
|
+
hoverTransform: "lift",
|
|
80659
80654
|
hoverColor: "none"
|
|
80660
80655
|
},
|
|
80661
80656
|
sizes: {
|
|
80662
80657
|
sm: {
|
|
80663
|
-
padding: "0.625rem 1.
|
|
80664
|
-
fontSize: "text-xs"
|
|
80665
|
-
},
|
|
80666
|
-
md: {
|
|
80667
|
-
padding: "0.8125rem 1.75rem",
|
|
80658
|
+
padding: "0.625rem 1.125rem",
|
|
80668
80659
|
fontSize: "text-sm"
|
|
80669
80660
|
},
|
|
80661
|
+
md: { padding: "0.8125rem 1.375rem" },
|
|
80670
80662
|
lg: {
|
|
80671
|
-
padding: "0.9375rem
|
|
80672
|
-
fontSize: "text-
|
|
80663
|
+
padding: "0.9375rem 1.625rem",
|
|
80664
|
+
fontSize: "text-lg"
|
|
80673
80665
|
},
|
|
80674
80666
|
xl: {
|
|
80675
|
-
padding: "1.0625rem
|
|
80676
|
-
fontSize: "text-
|
|
80667
|
+
padding: "1.0625rem 2rem",
|
|
80668
|
+
fontSize: "text-xl"
|
|
80677
80669
|
}
|
|
80678
80670
|
},
|
|
80679
|
-
|
|
80680
|
-
{
|
|
80681
|
-
|
|
80682
|
-
|
|
80683
|
-
|
|
80684
|
-
|
|
80685
|
-
|
|
80686
|
-
|
|
80687
|
-
|
|
80688
|
-
|
|
80689
|
-
|
|
80690
|
-
|
|
80691
|
-
|
|
80692
|
-
|
|
80693
|
-
|
|
80694
|
-
|
|
80671
|
+
roles: {
|
|
80672
|
+
primary: {
|
|
80673
|
+
kind: "complete",
|
|
80674
|
+
appearance: {
|
|
80675
|
+
background: {
|
|
80676
|
+
type: "solid",
|
|
80677
|
+
colorToken: "primary"
|
|
80678
|
+
},
|
|
80679
|
+
borderRadius: "rounded-lg",
|
|
80680
|
+
affordance: { iconId: "ArrowRight" },
|
|
80681
|
+
effects: { hover: [{
|
|
80682
|
+
effectId: "lift",
|
|
80683
|
+
options: { translateY: "-2px" }
|
|
80684
|
+
}, {
|
|
80685
|
+
effectId: "background-on-hover",
|
|
80686
|
+
options: { colorToken: "secondary" }
|
|
80687
|
+
}] }
|
|
80688
|
+
}
|
|
80695
80689
|
},
|
|
80696
|
-
{
|
|
80697
|
-
|
|
80698
|
-
|
|
80699
|
-
|
|
80700
|
-
|
|
80701
|
-
|
|
80702
|
-
|
|
80703
|
-
|
|
80704
|
-
|
|
80705
|
-
|
|
80706
|
-
|
|
80707
|
-
|
|
80708
|
-
|
|
80709
|
-
|
|
80710
|
-
|
|
80711
|
-
|
|
80690
|
+
secondary: {
|
|
80691
|
+
kind: "complete",
|
|
80692
|
+
appearance: {
|
|
80693
|
+
background: {
|
|
80694
|
+
type: "surface",
|
|
80695
|
+
role: "link"
|
|
80696
|
+
},
|
|
80697
|
+
borderRadius: "rounded-lg",
|
|
80698
|
+
border: { widthClass: "border" },
|
|
80699
|
+
effects: { hover: [{
|
|
80700
|
+
effectId: "lift",
|
|
80701
|
+
options: { translateY: "-2px" }
|
|
80702
|
+
}, {
|
|
80703
|
+
effectId: "background-on-hover",
|
|
80704
|
+
options: { colorToken: "surfaceAlt" }
|
|
80705
|
+
}] }
|
|
80706
|
+
}
|
|
80712
80707
|
},
|
|
80713
|
-
{
|
|
80714
|
-
|
|
80715
|
-
|
|
80716
|
-
|
|
80717
|
-
|
|
80718
|
-
|
|
80719
|
-
|
|
80720
|
-
|
|
80721
|
-
|
|
80722
|
-
|
|
80723
|
-
|
|
80708
|
+
outline: {
|
|
80709
|
+
kind: "complete",
|
|
80710
|
+
appearance: {
|
|
80711
|
+
background: {
|
|
80712
|
+
type: "surface",
|
|
80713
|
+
role: "link"
|
|
80714
|
+
},
|
|
80715
|
+
borderRadius: "rounded-lg",
|
|
80716
|
+
border: { widthClass: "border" },
|
|
80717
|
+
effects: { hover: [{
|
|
80718
|
+
effectId: "lift",
|
|
80719
|
+
options: { translateY: "-2px" }
|
|
80720
|
+
}, {
|
|
80721
|
+
effectId: "background-on-hover",
|
|
80722
|
+
options: { colorToken: "surfaceAlt" }
|
|
80723
|
+
}] }
|
|
80724
|
+
}
|
|
80724
80725
|
},
|
|
80725
|
-
{
|
|
80726
|
-
|
|
80727
|
-
|
|
80728
|
-
|
|
80729
|
-
|
|
80730
|
-
|
|
80731
|
-
|
|
80732
|
-
|
|
80733
|
-
|
|
80734
|
-
|
|
80726
|
+
ghost: {
|
|
80727
|
+
kind: "complete",
|
|
80728
|
+
appearance: {
|
|
80729
|
+
background: {
|
|
80730
|
+
type: "surface",
|
|
80731
|
+
role: "link"
|
|
80732
|
+
},
|
|
80733
|
+
borderRadius: "rounded-lg",
|
|
80734
|
+
effects: { hover: [{
|
|
80735
|
+
effectId: "lift",
|
|
80736
|
+
options: { translateY: "-2px" }
|
|
80737
|
+
}] }
|
|
80738
|
+
}
|
|
80739
|
+
},
|
|
80740
|
+
accent: {
|
|
80741
|
+
kind: "complete",
|
|
80742
|
+
appearance: {
|
|
80743
|
+
background: {
|
|
80744
|
+
type: "solid",
|
|
80745
|
+
colorToken: "accent"
|
|
80746
|
+
},
|
|
80747
|
+
borderRadius: "rounded-lg",
|
|
80748
|
+
affordance: { iconId: "ArrowRight" },
|
|
80749
|
+
effects: { hover: [{
|
|
80750
|
+
effectId: "lift",
|
|
80751
|
+
options: { translateY: "-2px" }
|
|
80752
|
+
}] }
|
|
80753
|
+
}
|
|
80735
80754
|
}
|
|
80736
|
-
|
|
80755
|
+
}
|
|
80737
80756
|
}
|
|
80738
80757
|
});
|
|
80739
|
-
|
|
80740
|
-
//#region ../theme-core/src/buttons/personalities/showtime-pill.ts
|
|
80741
|
-
/**
|
|
80742
|
-
* Showtime Pill — bold, spacious, fully rounded buttons with playful pop
|
|
80743
|
-
* motion. Suits energetic schools, performers, festivals, and community brands
|
|
80744
|
-
* that need calls to action to feel loud without becoming visually chaotic.
|
|
80745
|
-
*/
|
|
80746
|
-
const showtimePill = defineButtonPersonality({
|
|
80758
|
+
const showtimePillRecipe = defineStaticButtonStyleRecipe({
|
|
80747
80759
|
id: "showtime-pill",
|
|
80748
|
-
|
|
80749
|
-
description: "Bold pill buttons with uppercase labels, generous padding, and a playful pop.",
|
|
80760
|
+
accessibilityLabel: "Bold uppercase pill buttons with playful movement",
|
|
80750
80761
|
tags: {
|
|
80751
80762
|
tone: "bold",
|
|
80752
80763
|
energy: "vibrant",
|
|
80753
80764
|
motion: "expressive",
|
|
80754
80765
|
era: "modern"
|
|
80755
80766
|
},
|
|
80756
|
-
|
|
80767
|
+
system: {
|
|
80757
80768
|
global: {
|
|
80758
80769
|
cornerStyle: "pill",
|
|
80759
80770
|
shadow: "low",
|
|
@@ -80784,286 +80795,395 @@ const showtimePill = defineButtonPersonality({
|
|
|
80784
80795
|
fontSize: "1.125rem"
|
|
80785
80796
|
}
|
|
80786
80797
|
},
|
|
80787
|
-
|
|
80788
|
-
{
|
|
80789
|
-
|
|
80790
|
-
|
|
80791
|
-
|
|
80792
|
-
|
|
80793
|
-
|
|
80794
|
-
|
|
80795
|
-
|
|
80796
|
-
|
|
80797
|
-
|
|
80798
|
-
effects: { hover: [{ effectId: "pop" }] }
|
|
80799
|
-
},
|
|
80800
|
-
{
|
|
80801
|
-
id: "secondary",
|
|
80802
|
-
name: "Secondary",
|
|
80803
|
-
enabled: true,
|
|
80804
|
-
priority: 2,
|
|
80805
|
-
background: {
|
|
80806
|
-
type: "surface",
|
|
80807
|
-
role: "link"
|
|
80808
|
-
},
|
|
80809
|
-
borderRadius: "rounded-full",
|
|
80810
|
-
border: { widthClass: "border-2" },
|
|
80811
|
-
effects: { hover: [{ effectId: "pop" }] }
|
|
80798
|
+
roles: {
|
|
80799
|
+
primary: {
|
|
80800
|
+
kind: "complete",
|
|
80801
|
+
appearance: {
|
|
80802
|
+
background: {
|
|
80803
|
+
type: "solid",
|
|
80804
|
+
colorToken: "primary"
|
|
80805
|
+
},
|
|
80806
|
+
borderRadius: "rounded-full",
|
|
80807
|
+
effects: { hover: [{ effectId: "pop" }] }
|
|
80808
|
+
}
|
|
80812
80809
|
},
|
|
80813
|
-
{
|
|
80814
|
-
|
|
80815
|
-
|
|
80816
|
-
|
|
80817
|
-
|
|
80818
|
-
|
|
80819
|
-
|
|
80820
|
-
|
|
80821
|
-
|
|
80822
|
-
|
|
80823
|
-
|
|
80810
|
+
secondary: {
|
|
80811
|
+
kind: "complete",
|
|
80812
|
+
appearance: {
|
|
80813
|
+
background: {
|
|
80814
|
+
type: "surface",
|
|
80815
|
+
role: "link"
|
|
80816
|
+
},
|
|
80817
|
+
borderRadius: "rounded-full",
|
|
80818
|
+
border: { widthClass: "border-2" },
|
|
80819
|
+
effects: { hover: [{ effectId: "pop" }] }
|
|
80820
|
+
}
|
|
80824
80821
|
},
|
|
80825
|
-
{
|
|
80826
|
-
|
|
80827
|
-
|
|
80828
|
-
|
|
80829
|
-
|
|
80830
|
-
|
|
80831
|
-
|
|
80832
|
-
|
|
80833
|
-
|
|
80834
|
-
|
|
80835
|
-
|
|
80836
|
-
|
|
80837
|
-
|
|
80838
|
-
|
|
80839
|
-
}] }
|
|
80822
|
+
outline: {
|
|
80823
|
+
kind: "complete",
|
|
80824
|
+
appearance: {
|
|
80825
|
+
background: {
|
|
80826
|
+
type: "surface",
|
|
80827
|
+
role: "link"
|
|
80828
|
+
},
|
|
80829
|
+
borderRadius: "rounded-full",
|
|
80830
|
+
border: { widthClass: "border-2" },
|
|
80831
|
+
effects: { hover: [{
|
|
80832
|
+
effectId: "background-on-hover",
|
|
80833
|
+
options: { colorToken: "background" }
|
|
80834
|
+
}] }
|
|
80835
|
+
}
|
|
80840
80836
|
},
|
|
80841
|
-
{
|
|
80842
|
-
|
|
80843
|
-
|
|
80844
|
-
|
|
80845
|
-
|
|
80846
|
-
|
|
80847
|
-
|
|
80848
|
-
|
|
80849
|
-
|
|
80850
|
-
|
|
80851
|
-
|
|
80852
|
-
|
|
80853
|
-
|
|
80854
|
-
options: { colorToken: "background" }
|
|
80855
|
-
}] }
|
|
80837
|
+
ghost: {
|
|
80838
|
+
kind: "complete",
|
|
80839
|
+
appearance: {
|
|
80840
|
+
background: {
|
|
80841
|
+
type: "surface",
|
|
80842
|
+
role: "link"
|
|
80843
|
+
},
|
|
80844
|
+
borderRadius: "rounded-full",
|
|
80845
|
+
effects: { hover: [{
|
|
80846
|
+
effectId: "background-on-hover",
|
|
80847
|
+
options: { colorToken: "surface" }
|
|
80848
|
+
}] }
|
|
80849
|
+
}
|
|
80856
80850
|
},
|
|
80857
|
-
{
|
|
80858
|
-
|
|
80859
|
-
|
|
80860
|
-
|
|
80861
|
-
|
|
80862
|
-
|
|
80863
|
-
|
|
80864
|
-
|
|
80865
|
-
|
|
80866
|
-
|
|
80867
|
-
effects: { hover: [{
|
|
80868
|
-
effectId: "background-on-hover",
|
|
80869
|
-
options: { colorToken: "surface" }
|
|
80870
|
-
}] }
|
|
80851
|
+
accent: {
|
|
80852
|
+
kind: "complete",
|
|
80853
|
+
appearance: {
|
|
80854
|
+
background: {
|
|
80855
|
+
type: "solid",
|
|
80856
|
+
colorToken: "secondary"
|
|
80857
|
+
},
|
|
80858
|
+
borderRadius: "rounded-full",
|
|
80859
|
+
effects: { hover: [{ effectId: "pop" }] }
|
|
80860
|
+
}
|
|
80871
80861
|
}
|
|
80872
|
-
|
|
80862
|
+
}
|
|
80873
80863
|
}
|
|
80874
80864
|
});
|
|
80875
|
-
|
|
80876
|
-
|
|
80877
|
-
|
|
80878
|
-
* Soft Pill — rounded-full pill buttons with a hover lift. The default for
|
|
80879
|
-
* Calm Studio and Modern Wellness; reads as quietly modern and welcoming.
|
|
80880
|
-
*/
|
|
80881
|
-
const softPill = defineButtonPersonality({
|
|
80882
|
-
id: "soft-pill",
|
|
80883
|
-
name: "Soft Pill",
|
|
80884
|
-
description: "Rounded pills with a gentle lift on hover. Quietly modern.",
|
|
80865
|
+
const joyStampRecipe = defineStaticButtonStyleRecipe({
|
|
80866
|
+
id: "joy-stamp",
|
|
80867
|
+
accessibilityLabel: "Bold pill buttons with a hard offset shadow",
|
|
80885
80868
|
tags: {
|
|
80886
|
-
tone: "
|
|
80887
|
-
energy: "
|
|
80888
|
-
motion: "
|
|
80869
|
+
tone: "bold",
|
|
80870
|
+
energy: "vibrant",
|
|
80871
|
+
motion: "expressive",
|
|
80889
80872
|
era: "organic"
|
|
80890
80873
|
},
|
|
80891
|
-
|
|
80874
|
+
system: {
|
|
80892
80875
|
global: {
|
|
80893
80876
|
cornerStyle: "pill",
|
|
80894
|
-
shadow: "
|
|
80877
|
+
shadow: "high",
|
|
80895
80878
|
textTransform: "none",
|
|
80896
|
-
|
|
80879
|
+
typography: "heading",
|
|
80880
|
+
fontWeight: 700,
|
|
80881
|
+
fontSize: "text-lg",
|
|
80897
80882
|
borderWidth: 2,
|
|
80898
|
-
hoverTransform: "
|
|
80883
|
+
hoverTransform: "none",
|
|
80899
80884
|
hoverColor: "none"
|
|
80900
80885
|
},
|
|
80901
|
-
|
|
80902
|
-
{
|
|
80903
|
-
|
|
80904
|
-
|
|
80905
|
-
|
|
80906
|
-
|
|
80907
|
-
|
|
80908
|
-
|
|
80909
|
-
|
|
80910
|
-
|
|
80911
|
-
|
|
80912
|
-
|
|
80913
|
-
|
|
80914
|
-
|
|
80915
|
-
|
|
80916
|
-
|
|
80917
|
-
|
|
80918
|
-
|
|
80919
|
-
|
|
80920
|
-
|
|
80921
|
-
|
|
80922
|
-
|
|
80923
|
-
|
|
80924
|
-
|
|
80925
|
-
|
|
80886
|
+
sizes: {
|
|
80887
|
+
sm: {
|
|
80888
|
+
padding: "0.625rem 1.25rem",
|
|
80889
|
+
fontSize: "text-base"
|
|
80890
|
+
},
|
|
80891
|
+
md: {
|
|
80892
|
+
padding: "0.875rem 1.75rem",
|
|
80893
|
+
fontSize: "text-lg"
|
|
80894
|
+
},
|
|
80895
|
+
lg: {
|
|
80896
|
+
padding: "1.125rem 2.25rem",
|
|
80897
|
+
fontSize: "text-xl"
|
|
80898
|
+
},
|
|
80899
|
+
xl: {
|
|
80900
|
+
padding: "1.25rem 2.75rem",
|
|
80901
|
+
fontSize: "text-2xl"
|
|
80902
|
+
}
|
|
80903
|
+
},
|
|
80904
|
+
roles: {
|
|
80905
|
+
primary: {
|
|
80906
|
+
kind: "complete",
|
|
80907
|
+
appearance: {
|
|
80908
|
+
background: {
|
|
80909
|
+
type: "solid",
|
|
80910
|
+
colorToken: "primary"
|
|
80911
|
+
},
|
|
80912
|
+
borderRadius: "rounded-full",
|
|
80913
|
+
shadow: {
|
|
80914
|
+
elevation: "high",
|
|
80915
|
+
softness: "hard",
|
|
80916
|
+
position: "bottom-right",
|
|
80917
|
+
colorToken: "text"
|
|
80918
|
+
},
|
|
80919
|
+
effects: { hover: [{ effectId: "press-down" }] }
|
|
80926
80920
|
}
|
|
80927
80921
|
},
|
|
80928
|
-
{
|
|
80929
|
-
|
|
80930
|
-
|
|
80931
|
-
|
|
80932
|
-
|
|
80933
|
-
|
|
80934
|
-
|
|
80935
|
-
|
|
80936
|
-
|
|
80937
|
-
|
|
80938
|
-
|
|
80939
|
-
|
|
80940
|
-
|
|
80941
|
-
|
|
80942
|
-
|
|
80922
|
+
secondary: {
|
|
80923
|
+
kind: "complete",
|
|
80924
|
+
appearance: {
|
|
80925
|
+
background: {
|
|
80926
|
+
type: "surface",
|
|
80927
|
+
role: "link"
|
|
80928
|
+
},
|
|
80929
|
+
borderRadius: "rounded-full",
|
|
80930
|
+
border: { widthClass: "border-2" },
|
|
80931
|
+
shadow: {
|
|
80932
|
+
elevation: "high",
|
|
80933
|
+
softness: "hard",
|
|
80934
|
+
position: "bottom-right",
|
|
80935
|
+
colorToken: "secondary"
|
|
80936
|
+
},
|
|
80937
|
+
effects: { hover: [{ effectId: "press-down" }] }
|
|
80938
|
+
}
|
|
80943
80939
|
},
|
|
80944
|
-
{
|
|
80945
|
-
|
|
80946
|
-
|
|
80947
|
-
enabled: true,
|
|
80948
|
-
priority: 3,
|
|
80949
|
-
background: {
|
|
80950
|
-
type: "surface",
|
|
80951
|
-
role: "link"
|
|
80952
|
-
},
|
|
80953
|
-
borderRadius: "rounded-full",
|
|
80954
|
-
border: { widthClass: "border" },
|
|
80955
|
-
effects: { hover: [{
|
|
80956
|
-
effectId: "background-on-hover",
|
|
80957
|
-
options: { colorToken: "surface" }
|
|
80958
|
-
}] }
|
|
80940
|
+
outline: {
|
|
80941
|
+
kind: "derive",
|
|
80942
|
+
from: "secondary"
|
|
80959
80943
|
},
|
|
80960
|
-
{
|
|
80961
|
-
|
|
80962
|
-
|
|
80963
|
-
|
|
80964
|
-
|
|
80965
|
-
|
|
80966
|
-
|
|
80967
|
-
|
|
80968
|
-
|
|
80969
|
-
|
|
80970
|
-
|
|
80971
|
-
|
|
80972
|
-
|
|
80973
|
-
|
|
80944
|
+
ghost: {
|
|
80945
|
+
kind: "complete",
|
|
80946
|
+
appearance: {
|
|
80947
|
+
background: {
|
|
80948
|
+
type: "surface",
|
|
80949
|
+
role: "link"
|
|
80950
|
+
},
|
|
80951
|
+
borderRadius: "rounded-full",
|
|
80952
|
+
effects: { hover: [{ effectId: "press-down" }] }
|
|
80953
|
+
}
|
|
80954
|
+
},
|
|
80955
|
+
accent: {
|
|
80956
|
+
kind: "derive",
|
|
80957
|
+
from: "primary",
|
|
80958
|
+
overrides: { background: {
|
|
80959
|
+
type: "solid",
|
|
80960
|
+
colorToken: "accent"
|
|
80961
|
+
} }
|
|
80974
80962
|
}
|
|
80975
|
-
|
|
80963
|
+
}
|
|
80976
80964
|
}
|
|
80977
80965
|
});
|
|
80978
|
-
|
|
80979
|
-
|
|
80980
|
-
|
|
80981
|
-
|
|
80982
|
-
|
|
80983
|
-
|
|
80984
|
-
|
|
80985
|
-
|
|
80986
|
-
type: "solid",
|
|
80987
|
-
colorToken: unsafeAsOpaqueButtonColourToken("secondary")
|
|
80988
|
-
},
|
|
80989
|
-
borderRadius: "rounded-full",
|
|
80990
|
-
shadow: {
|
|
80991
|
-
elevation: "none",
|
|
80992
|
-
softness: null,
|
|
80993
|
-
position: "bottom"
|
|
80966
|
+
const ornateRitualRecipe = defineStaticButtonStyleRecipe({
|
|
80967
|
+
id: "ornate-ritual",
|
|
80968
|
+
accessibilityLabel: "Uppercase framed buttons with restrained movement",
|
|
80969
|
+
tags: {
|
|
80970
|
+
tone: "classic",
|
|
80971
|
+
energy: "vibrant",
|
|
80972
|
+
motion: "subtle",
|
|
80973
|
+
era: "organic"
|
|
80994
80974
|
},
|
|
80995
|
-
|
|
80996
|
-
|
|
80997
|
-
|
|
80998
|
-
|
|
80999
|
-
|
|
81000
|
-
|
|
80975
|
+
system: {
|
|
80976
|
+
global: {
|
|
80977
|
+
cornerStyle: "rounded",
|
|
80978
|
+
textTransform: "uppercase",
|
|
80979
|
+
fontWeight: 600,
|
|
80980
|
+
borderWidth: 1,
|
|
80981
|
+
hoverTransform: "none",
|
|
80982
|
+
hoverColor: "none",
|
|
80983
|
+
letterSpacing: "loose"
|
|
80984
|
+
},
|
|
80985
|
+
sizes: {
|
|
80986
|
+
sm: {
|
|
80987
|
+
padding: "0.5625rem 1.25rem",
|
|
80988
|
+
fontSize: "text-xs"
|
|
80989
|
+
},
|
|
80990
|
+
md: {
|
|
80991
|
+
padding: "0.75rem 1.75rem",
|
|
80992
|
+
fontSize: "text-xs"
|
|
80993
|
+
},
|
|
80994
|
+
lg: {
|
|
80995
|
+
padding: "0.875rem 2.25rem",
|
|
80996
|
+
fontSize: "text-sm"
|
|
80997
|
+
},
|
|
80998
|
+
xl: {
|
|
80999
|
+
padding: "1rem 2.75rem",
|
|
81000
|
+
fontSize: "text-base"
|
|
81001
81001
|
}
|
|
81002
|
-
}
|
|
81003
|
-
|
|
81004
|
-
|
|
81005
|
-
|
|
81006
|
-
|
|
81002
|
+
},
|
|
81003
|
+
roles: {
|
|
81004
|
+
primary: {
|
|
81005
|
+
kind: "complete",
|
|
81006
|
+
appearance: {
|
|
81007
|
+
background: {
|
|
81008
|
+
type: "solid",
|
|
81009
|
+
colorToken: "primary"
|
|
81010
|
+
},
|
|
81011
|
+
borderRadius: "rounded-md",
|
|
81012
|
+
border: { widthClass: "border" },
|
|
81013
|
+
effects: {
|
|
81014
|
+
hover: [{
|
|
81015
|
+
effectId: "background-on-hover",
|
|
81016
|
+
options: { colorToken: "primary-100" }
|
|
81017
|
+
}],
|
|
81018
|
+
active: [{
|
|
81019
|
+
effectId: "scale-down",
|
|
81020
|
+
options: { scale: "0.98" }
|
|
81021
|
+
}]
|
|
81022
|
+
}
|
|
81023
|
+
}
|
|
81024
|
+
},
|
|
81025
|
+
secondary: {
|
|
81026
|
+
kind: "complete",
|
|
81027
|
+
appearance: {
|
|
81028
|
+
background: {
|
|
81029
|
+
type: "solid",
|
|
81030
|
+
colorToken: "secondary"
|
|
81031
|
+
},
|
|
81032
|
+
borderRadius: "rounded-md",
|
|
81033
|
+
border: { widthClass: "border" },
|
|
81034
|
+
effects: { hover: [{
|
|
81035
|
+
effectId: "background-on-hover",
|
|
81036
|
+
options: { colorToken: "surface" }
|
|
81037
|
+
}] }
|
|
81038
|
+
}
|
|
81039
|
+
},
|
|
81040
|
+
outline: {
|
|
81041
|
+
kind: "complete",
|
|
81042
|
+
appearance: {
|
|
81043
|
+
background: {
|
|
81044
|
+
type: "surface",
|
|
81045
|
+
role: "link"
|
|
81046
|
+
},
|
|
81047
|
+
borderRadius: "rounded-md",
|
|
81048
|
+
border: { widthClass: "border" },
|
|
81049
|
+
effects: { hover: [{
|
|
81050
|
+
effectId: "background-on-hover",
|
|
81051
|
+
options: { colorToken: "muted" }
|
|
81052
|
+
}] }
|
|
81053
|
+
}
|
|
81054
|
+
},
|
|
81055
|
+
ghost: {
|
|
81056
|
+
kind: "complete",
|
|
81057
|
+
appearance: {
|
|
81058
|
+
background: {
|
|
81059
|
+
type: "surface",
|
|
81060
|
+
role: "link"
|
|
81061
|
+
},
|
|
81062
|
+
borderRadius: "rounded-none",
|
|
81063
|
+
sizes: {
|
|
81064
|
+
sm: {
|
|
81065
|
+
padding: "0.375rem 0",
|
|
81066
|
+
fontSize: "text-xs"
|
|
81067
|
+
},
|
|
81068
|
+
md: {
|
|
81069
|
+
padding: "0.5rem 0",
|
|
81070
|
+
fontSize: "text-sm"
|
|
81071
|
+
},
|
|
81072
|
+
lg: {
|
|
81073
|
+
padding: "0.625rem 0",
|
|
81074
|
+
fontSize: "text-base"
|
|
81075
|
+
},
|
|
81076
|
+
xl: {
|
|
81077
|
+
padding: "0.75rem 0",
|
|
81078
|
+
fontSize: "text-lg"
|
|
81079
|
+
}
|
|
81080
|
+
},
|
|
81081
|
+
effects: { base: [{
|
|
81082
|
+
effectId: "border-bottom-grow",
|
|
81083
|
+
options: {
|
|
81084
|
+
height: 1,
|
|
81085
|
+
colorToken: "accent",
|
|
81086
|
+
origin: "left"
|
|
81087
|
+
}
|
|
81088
|
+
}] }
|
|
81089
|
+
}
|
|
81090
|
+
},
|
|
81091
|
+
accent: {
|
|
81092
|
+
kind: "derive",
|
|
81093
|
+
from: "primary",
|
|
81094
|
+
overrides: { background: {
|
|
81095
|
+
type: "solid",
|
|
81096
|
+
colorToken: "accent"
|
|
81097
|
+
} }
|
|
81098
|
+
}
|
|
81099
|
+
}
|
|
81007
81100
|
}
|
|
81008
|
-
};
|
|
81101
|
+
});
|
|
81009
81102
|
//#endregion
|
|
81010
|
-
//#region ../theme-core/src/buttons/
|
|
81011
|
-
const
|
|
81012
|
-
|
|
81013
|
-
|
|
81014
|
-
|
|
81015
|
-
|
|
81016
|
-
|
|
81017
|
-
|
|
81018
|
-
|
|
81019
|
-
|
|
81020
|
-
|
|
81021
|
-
|
|
81022
|
-
|
|
81023
|
-
|
|
81024
|
-
confidentChip,
|
|
81025
|
-
editorialLink,
|
|
81026
|
-
pebble,
|
|
81027
|
-
inkStamp,
|
|
81028
|
-
flatInk,
|
|
81029
|
-
brushedWash,
|
|
81030
|
-
showtimePill,
|
|
81031
|
-
joyStamp,
|
|
81032
|
-
ornateRitual,
|
|
81033
|
-
quietArrow
|
|
81103
|
+
//#region ../theme-core/src/buttons/styles/registry.ts
|
|
81104
|
+
const buttonStyleRecipes = [
|
|
81105
|
+
softPillRecipe,
|
|
81106
|
+
earthPillRecipe,
|
|
81107
|
+
confidentChipRecipe,
|
|
81108
|
+
editorialLinkRecipe,
|
|
81109
|
+
pebbleRecipe,
|
|
81110
|
+
inkStampRecipe,
|
|
81111
|
+
flatInkRecipe,
|
|
81112
|
+
brushedWashRecipe,
|
|
81113
|
+
showtimePillRecipe,
|
|
81114
|
+
joyStampRecipe,
|
|
81115
|
+
ornateRitualRecipe,
|
|
81116
|
+
quietArrowRecipe
|
|
81034
81117
|
];
|
|
81035
|
-
const
|
|
81036
|
-
function
|
|
81037
|
-
|
|
81038
|
-
}
|
|
81039
|
-
|
|
81040
|
-
|
|
81041
|
-
|
|
81042
|
-
|
|
81043
|
-
|
|
81044
|
-
|
|
81045
|
-
|
|
81046
|
-
|
|
81047
|
-
|
|
81048
|
-
|
|
81049
|
-
|
|
81050
|
-
|
|
81051
|
-
|
|
81052
|
-
|
|
81053
|
-
|
|
81054
|
-
|
|
81055
|
-
|
|
81056
|
-
|
|
81057
|
-
|
|
81058
|
-
|
|
81059
|
-
|
|
81060
|
-
|
|
81061
|
-
|
|
81062
|
-
|
|
81118
|
+
const recipesById = new Map(buttonStyleRecipes.map((recipe) => [recipe.id, recipe]));
|
|
81119
|
+
function findButtonStyleRecipe(id) {
|
|
81120
|
+
const recipe = recipesById.get(id);
|
|
81121
|
+
if (recipe === void 0) throw new Error(`Button style registry is missing known style ${id}`);
|
|
81122
|
+
return recipe;
|
|
81123
|
+
}
|
|
81124
|
+
function resolveButtonStyleSelection(selection) {
|
|
81125
|
+
switch (selection.styleId) {
|
|
81126
|
+
case "soft-pill": return resolveButtonStyleRecipe(softPillRecipe, selection.parameters);
|
|
81127
|
+
case "earth-pill": return resolveButtonStyleRecipe(earthPillRecipe, selection.parameters);
|
|
81128
|
+
case "confident-chip": return resolveButtonStyleRecipe(confidentChipRecipe, selection.parameters);
|
|
81129
|
+
case "editorial-link": return resolveButtonStyleRecipe(editorialLinkRecipe, selection.parameters);
|
|
81130
|
+
case "pebble": return resolveButtonStyleRecipe(pebbleRecipe, selection.parameters);
|
|
81131
|
+
case "ink-stamp": return resolveButtonStyleRecipe(inkStampRecipe, selection.parameters);
|
|
81132
|
+
case "flat-ink": return resolveButtonStyleRecipe(flatInkRecipe, selection.parameters);
|
|
81133
|
+
case "brushed-wash": return resolveButtonStyleRecipe(brushedWashRecipe, selection.parameters);
|
|
81134
|
+
case "showtime-pill": return resolveButtonStyleRecipe(showtimePillRecipe, selection.parameters);
|
|
81135
|
+
case "joy-stamp": return resolveButtonStyleRecipe(joyStampRecipe, selection.parameters);
|
|
81136
|
+
case "ornate-ritual": return resolveButtonStyleRecipe(ornateRitualRecipe, selection.parameters);
|
|
81137
|
+
case "quiet-arrow": return resolveButtonStyleRecipe(quietArrowRecipe, selection.parameters);
|
|
81138
|
+
}
|
|
81139
|
+
}
|
|
81140
|
+
function defaultButtonStyleSelectionFor(styleId) {
|
|
81141
|
+
return {
|
|
81142
|
+
styleId,
|
|
81143
|
+
parameters: findButtonStyleRecipe(styleId).defaultParameters
|
|
81144
|
+
};
|
|
81145
|
+
}
|
|
81146
|
+
function buttonStyleSelectionParameterValue(selection, parameter) {
|
|
81147
|
+
const entry = Object.entries(selection.parameters).find(([key]) => key === parameter);
|
|
81148
|
+
return typeof entry?.[1] === "string" ? entry[1] : null;
|
|
81149
|
+
}
|
|
81150
|
+
/**
|
|
81151
|
+
* Applies a descriptor-driven choice and re-parses the complete discriminated
|
|
81152
|
+
* selection. Preview controls never need recipe-specific parameter branches.
|
|
81153
|
+
*/
|
|
81154
|
+
function updateButtonStyleSelectionChoice(selection, parameter, value) {
|
|
81155
|
+
const parameters = Object.fromEntries([...Object.entries(selection.parameters).filter(([key]) => key !== parameter), [parameter, value]]);
|
|
81156
|
+
const parsed = buttonStyleSelectionSchema.safeParse({
|
|
81157
|
+
styleId: selection.styleId,
|
|
81158
|
+
parameters
|
|
81159
|
+
});
|
|
81160
|
+
return parsed.success ? {
|
|
81161
|
+
kind: "updated",
|
|
81162
|
+
selection: parsed.data
|
|
81163
|
+
} : { kind: "invalid-control-value" };
|
|
81164
|
+
}
|
|
81165
|
+
if (buttonStyleRecipes.map((recipe) => recipe.id).length !== BUTTON_STYLE_IDS.length || BUTTON_STYLE_IDS.some((id) => !recipesById.has(id))) throw new Error("Button style registry and ButtonStyleId catalog are out of sync");
|
|
81166
|
+
buttonStyleRecipes.map((recipe) => {
|
|
81167
|
+
const resolved = resolveButtonStyleSelection(defaultButtonStyleSelectionFor(recipe.id));
|
|
81168
|
+
if (resolved.kind === "error") throw new Error(`Invalid registered button style ${recipe.id}: ${resolved.error.issues.join(", ")}`);
|
|
81169
|
+
return {
|
|
81170
|
+
id: recipe.id,
|
|
81171
|
+
name: recipe.accessibilityLabel,
|
|
81172
|
+
description: recipe.accessibilityLabel,
|
|
81173
|
+
category: presetCategory(recipe),
|
|
81174
|
+
buttonSystem: resolved.buttonSystem,
|
|
81175
|
+
compatibility: {
|
|
81176
|
+
...recipe.tags.tone ? { tones: [recipe.tags.tone] } : {},
|
|
81177
|
+
...recipe.tags.energy ? { energies: [recipe.tags.energy] } : {}
|
|
81178
|
+
}
|
|
81179
|
+
};
|
|
81180
|
+
});
|
|
81181
|
+
function presetCategory(recipe) {
|
|
81182
|
+
switch (recipe.tags.era) {
|
|
81063
81183
|
case "retro": return "retro";
|
|
81064
81184
|
case "editorial": return "minimal";
|
|
81065
81185
|
case "organic": return "artistic";
|
|
81066
|
-
case "modern": return
|
|
81186
|
+
case "modern": return recipe.tags.tone === "bold" ? "modern" : "technical";
|
|
81067
81187
|
case "technical": return "technical";
|
|
81068
81188
|
case void 0: return "modern";
|
|
81069
81189
|
}
|
|
@@ -83638,6 +83758,39 @@ function resolveIconPickerPreset(value) {
|
|
|
83638
83758
|
return isIconPickerPreset(value) ? value : "cta";
|
|
83639
83759
|
}
|
|
83640
83760
|
//#endregion
|
|
83761
|
+
//#region ../blocks/src/system/constants/buttonRoles.ts
|
|
83762
|
+
/**
|
|
83763
|
+
* Semantic button roles available to block authors.
|
|
83764
|
+
*
|
|
83765
|
+
* These roles are deliberately independent of a site's visual button style:
|
|
83766
|
+
* the active theme owns how each role looks.
|
|
83767
|
+
*/
|
|
83768
|
+
const BLOCK_BUTTON_ROLES = PUBLIC_BUTTON_ROLES;
|
|
83769
|
+
const blockButtonRoleSchema = z$1.enum(BLOCK_BUTTON_ROLES);
|
|
83770
|
+
/**
|
|
83771
|
+
* Temporary rollout boundary for persisted content written before issue #1220.
|
|
83772
|
+
* Authoring remains strict through `blockButtonRoleSchema`; this parser exists
|
|
83773
|
+
* only until the post-deploy role rewrite has been audited in production.
|
|
83774
|
+
*/
|
|
83775
|
+
function canonicalizePersistedBlockButtonRole(value) {
|
|
83776
|
+
return value === "link" || value === "tertiary" ? "ghost" : value;
|
|
83777
|
+
}
|
|
83778
|
+
const persistedBlockButtonRoleSchema = z$1.preprocess((value) => typeof value === "string" ? canonicalizePersistedBlockButtonRole(value) : value, blockButtonRoleSchema);
|
|
83779
|
+
const BLOCK_BUTTON_ROLE_LABELS = {
|
|
83780
|
+
primary: "Primary",
|
|
83781
|
+
secondary: "Secondary",
|
|
83782
|
+
outline: "Outline",
|
|
83783
|
+
ghost: "Ghost",
|
|
83784
|
+
accent: "Accent"
|
|
83785
|
+
};
|
|
83786
|
+
const BLOCK_BUTTON_ROLE_OPTIONS = BLOCK_BUTTON_ROLES.map((value) => ({
|
|
83787
|
+
value,
|
|
83788
|
+
label: BLOCK_BUTTON_ROLE_LABELS[value]
|
|
83789
|
+
}));
|
|
83790
|
+
function isBlockButtonRole(value) {
|
|
83791
|
+
return blockButtonRoleSchema.safeParse(value).success;
|
|
83792
|
+
}
|
|
83793
|
+
//#endregion
|
|
83641
83794
|
//#region ../blocks/src/system/inlineText.ts
|
|
83642
83795
|
const inlineTextAccentTones = [
|
|
83643
83796
|
"accent",
|
|
@@ -86631,24 +86784,7 @@ const publicEventSchema = z$1.object({
|
|
|
86631
86784
|
const publicEventsArraySchema = z$1.array(publicEventSchema);
|
|
86632
86785
|
//#endregion
|
|
86633
86786
|
//#region ../blocks/src/system/fields/button.ts
|
|
86634
|
-
const DEFAULT_THEME_BUTTON_VARIANTS =
|
|
86635
|
-
{
|
|
86636
|
-
value: "primary",
|
|
86637
|
-
label: "Primary"
|
|
86638
|
-
},
|
|
86639
|
-
{
|
|
86640
|
-
value: "secondary",
|
|
86641
|
-
label: "Secondary"
|
|
86642
|
-
},
|
|
86643
|
-
{
|
|
86644
|
-
value: "outline",
|
|
86645
|
-
label: "Outline"
|
|
86646
|
-
},
|
|
86647
|
-
{
|
|
86648
|
-
value: "link",
|
|
86649
|
-
label: "Link"
|
|
86650
|
-
}
|
|
86651
|
-
];
|
|
86787
|
+
const DEFAULT_THEME_BUTTON_VARIANTS = BLOCK_BUTTON_ROLE_OPTIONS;
|
|
86652
86788
|
function createButtonVariantField(options = {}) {
|
|
86653
86789
|
return {
|
|
86654
86790
|
id: options.id ?? "buttonVariant",
|
|
@@ -86666,20 +86802,7 @@ function createButtonVariantField(options = {}) {
|
|
|
86666
86802
|
};
|
|
86667
86803
|
}
|
|
86668
86804
|
function createButtonGroup(options = {}) {
|
|
86669
|
-
const { variants =
|
|
86670
|
-
{
|
|
86671
|
-
value: "primary",
|
|
86672
|
-
label: "Primary"
|
|
86673
|
-
},
|
|
86674
|
-
{
|
|
86675
|
-
value: "secondary",
|
|
86676
|
-
label: "Secondary"
|
|
86677
|
-
},
|
|
86678
|
-
{
|
|
86679
|
-
value: "outline",
|
|
86680
|
-
label: "Outline"
|
|
86681
|
-
}
|
|
86682
|
-
], defaultVariant, includeSize = true, defaultSize = "md", showGroupLabel = false, groupId = "button", groupLabel = "Button", flattenInRepeater = true } = options;
|
|
86805
|
+
const { variants = BLOCK_BUTTON_ROLE_OPTIONS, defaultVariant, includeSize = true, defaultSize = "md", showGroupLabel = false, groupId = "button", groupLabel = "Button", flattenInRepeater = true } = options;
|
|
86683
86806
|
const mainFields = [
|
|
86684
86807
|
{
|
|
86685
86808
|
id: "label",
|
|
@@ -87314,17 +87437,8 @@ function isEventContentType(slug) {
|
|
|
87314
87437
|
//#endregion
|
|
87315
87438
|
//#region ../blocks/src/system/runtime/nodes/shared/contract-schemas.ts
|
|
87316
87439
|
const previewStageSchema = z$1.enum(["preview", "published"]);
|
|
87317
|
-
const registrationButtonVariantSchema =
|
|
87318
|
-
|
|
87319
|
-
"secondary",
|
|
87320
|
-
"outline"
|
|
87321
|
-
]);
|
|
87322
|
-
const eventButtonVariantSchema = z$1.enum([
|
|
87323
|
-
"primary",
|
|
87324
|
-
"secondary",
|
|
87325
|
-
"outline",
|
|
87326
|
-
"link"
|
|
87327
|
-
]);
|
|
87440
|
+
const registrationButtonVariantSchema = blockButtonRoleSchema;
|
|
87441
|
+
const eventButtonVariantSchema = persistedBlockButtonRoleSchema;
|
|
87328
87442
|
const eventLayoutSchema = z$1.enum(eventCalendarListLayoutValues);
|
|
87329
87443
|
const eventCalendarDisplayModeSchema = z$1.enum(eventCalendarDisplayModeValues);
|
|
87330
87444
|
const eventCalendarDefaultViewSchema = z$1.enum(eventCalendarDefaultViewValues);
|
|
@@ -91367,6 +91481,39 @@ function paletteAccessibleLabel(prefix, colors) {
|
|
|
91367
91481
|
].join(" ");
|
|
91368
91482
|
}
|
|
91369
91483
|
//#endregion
|
|
91484
|
+
//#region ../theme-core/src/site-styles/styleTags.ts
|
|
91485
|
+
/**
|
|
91486
|
+
* Descriptive style-axis metadata for button personalities and palette
|
|
91487
|
+
* variants. Site Style picker shape is curated explicitly; these tags remain
|
|
91488
|
+
* for catalog audit, docs, and future discovery tooling.
|
|
91489
|
+
*/
|
|
91490
|
+
const STYLE_AXIS_VALUES = {
|
|
91491
|
+
tone: [
|
|
91492
|
+
"minimal",
|
|
91493
|
+
"classic",
|
|
91494
|
+
"bold"
|
|
91495
|
+
],
|
|
91496
|
+
energy: ["calm", "vibrant"],
|
|
91497
|
+
motion: [
|
|
91498
|
+
"subtle",
|
|
91499
|
+
"standard",
|
|
91500
|
+
"expressive"
|
|
91501
|
+
],
|
|
91502
|
+
era: [
|
|
91503
|
+
"editorial",
|
|
91504
|
+
"modern",
|
|
91505
|
+
"organic",
|
|
91506
|
+
"technical",
|
|
91507
|
+
"retro"
|
|
91508
|
+
]
|
|
91509
|
+
};
|
|
91510
|
+
const styleTagsSchema = z$1.object({
|
|
91511
|
+
tone: z$1.enum(STYLE_AXIS_VALUES.tone).optional(),
|
|
91512
|
+
energy: z$1.enum(STYLE_AXIS_VALUES.energy).optional(),
|
|
91513
|
+
motion: z$1.enum(STYLE_AXIS_VALUES.motion).optional(),
|
|
91514
|
+
era: z$1.enum(STYLE_AXIS_VALUES.era).optional()
|
|
91515
|
+
});
|
|
91516
|
+
//#endregion
|
|
91370
91517
|
//#region ../theme-core/src/palette/curated/types.ts
|
|
91371
91518
|
function asCuratedPaletteAuthoringKey(value) {
|
|
91372
91519
|
if (value.length === 0) throw new Error("CuratedPaletteAuthoringKey must be a non-empty string");
|
|
@@ -95896,7 +96043,7 @@ function getHeaderLookOrThrow(id) {
|
|
|
95896
96043
|
if (!look) throw new Error(`Unknown Theme V2 header Look: ${id}`);
|
|
95897
96044
|
return look;
|
|
95898
96045
|
}
|
|
95899
|
-
function rejectReasonsForLook
|
|
96046
|
+
function rejectReasonsForLook(look, context) {
|
|
95900
96047
|
const brandPresentation = resolveHeaderBrandPresentation({
|
|
95901
96048
|
logo: context.logo,
|
|
95902
96049
|
accommodations: look.logoAccommodations
|
|
@@ -95914,7 +96061,7 @@ function resolveHeaderLook(input) {
|
|
|
95914
96061
|
guaranteedFallbackLookId: guaranteedFallbackHeaderLookId,
|
|
95915
96062
|
getLookOrThrow: getHeaderLookOrThrow,
|
|
95916
96063
|
context,
|
|
95917
|
-
rejectReasonsForLook
|
|
96064
|
+
rejectReasonsForLook,
|
|
95918
96065
|
compileLook: (look) => look.compile(input.theme)
|
|
95919
96066
|
});
|
|
95920
96067
|
return {
|
|
@@ -95934,97 +96081,10 @@ function resolveHeaderLook(input) {
|
|
|
95934
96081
|
function asFooterLookId(value) {
|
|
95935
96082
|
return value;
|
|
95936
96083
|
}
|
|
95937
|
-
|
|
95938
|
-
|
|
95939
|
-
}
|
|
95940
|
-
function asFooterStyleId(value) {
|
|
95941
|
-
return value;
|
|
95942
|
-
}
|
|
95943
|
-
const defaultFooterSelectionContext = {
|
|
95944
|
-
navDensity: "unknown",
|
|
95945
|
-
groupedNav: "unknown",
|
|
95946
|
-
contentPresence: "unknown"
|
|
95947
|
-
};
|
|
95948
|
-
const guaranteedFallbackFooterLookId = asFooterLookId("footer-identity-quiet");
|
|
95949
|
-
const footerLayoutCatalog = defineExactCatalog()([
|
|
95950
|
-
{
|
|
95951
|
-
id: asFooterLayoutId("identity"),
|
|
95952
|
-
label: "Identity",
|
|
95953
|
-
description: "Logo, site text, address, and legal copy without relying on footer navigation."
|
|
95954
|
-
},
|
|
95955
|
-
{
|
|
95956
|
-
id: asFooterLayoutId("centered"),
|
|
95957
|
-
label: "Centered",
|
|
95958
|
-
description: "A calm centered stack for identity, short copy, and optional compact navigation.",
|
|
95959
|
-
maxRecommendedNavDensity: "sparse"
|
|
95960
|
-
},
|
|
95961
|
-
{
|
|
95962
|
-
id: asFooterLayoutId("split"),
|
|
95963
|
-
label: "Split",
|
|
95964
|
-
description: "Navigation and brand signoff separated into a wider split footer.",
|
|
95965
|
-
requiresFooterNav: true,
|
|
95966
|
-
maxRecommendedNavDensity: "balanced"
|
|
95967
|
-
},
|
|
95968
|
-
{
|
|
95969
|
-
id: asFooterLayoutId("columns"),
|
|
95970
|
-
label: "Columns",
|
|
95971
|
-
description: "Grouped footer navigation columns with a supporting bottom line.",
|
|
95972
|
-
requiresFooterNav: true,
|
|
95973
|
-
requiresFooterNavGroups: true
|
|
95974
|
-
}
|
|
95975
|
-
]);
|
|
95976
|
-
const footerStyleCatalog = defineExactCatalog()([
|
|
95977
|
-
{
|
|
95978
|
-
id: asFooterStyleId("quiet"),
|
|
95979
|
-
label: "Quiet",
|
|
95980
|
-
description: "Lightweight, practical footer treatment."
|
|
95981
|
-
},
|
|
95982
|
-
{
|
|
95983
|
-
id: asFooterStyleId("calm"),
|
|
95984
|
-
label: "Calm",
|
|
95985
|
-
description: "Soft centered treatment with restrained dividers."
|
|
95986
|
-
},
|
|
95987
|
-
{
|
|
95988
|
-
id: asFooterStyleId("editorial"),
|
|
95989
|
-
label: "Editorial",
|
|
95990
|
-
description: "Text-forward treatment with fine-line structure."
|
|
95991
|
-
},
|
|
95992
|
-
{
|
|
95993
|
-
id: asFooterStyleId("brand-band"),
|
|
95994
|
-
label: "Brand band",
|
|
95995
|
-
description: "High-contrast brand treatment with a stronger bottom bar."
|
|
95996
|
-
}
|
|
95997
|
-
]);
|
|
95998
|
-
const footerLayoutsById = new Map(footerLayoutCatalog.map((layout) => [layout.id, layout]));
|
|
95999
|
-
const footerStylesById = new Map(footerStyleCatalog.map((style) => [style.id, style]));
|
|
96000
|
-
function getFooterLayout(id) {
|
|
96001
|
-
return footerLayoutsById.get(id) ?? null;
|
|
96002
|
-
}
|
|
96003
|
-
function getFooterStyle(id) {
|
|
96004
|
-
return footerStylesById.get(id) ?? null;
|
|
96005
|
-
}
|
|
96006
|
-
function getFooterLooksForLayout(layoutId) {
|
|
96007
|
-
return footerLookCatalog.filter((look) => look.layoutId === layoutId);
|
|
96008
|
-
}
|
|
96009
|
-
function findFooterLookForLayoutStyle(input) {
|
|
96010
|
-
return footerLookCatalog.find((look) => look.layoutId === input.layoutId && look.styleId === input.styleId) ?? null;
|
|
96011
|
-
}
|
|
96012
|
-
function findDefaultFooterLookForLayout(layoutId) {
|
|
96013
|
-
return getFooterLooksForLayout(layoutId)[0] ?? null;
|
|
96014
|
-
}
|
|
96015
|
-
/**
|
|
96016
|
-
* No-nav-safe identity footer: brand and legal/supporting copy carry the
|
|
96017
|
-
* footer without implying missing navigation.
|
|
96018
|
-
*/
|
|
96019
|
-
function identityQuietFooter(theme) {
|
|
96084
|
+
const guaranteedFallbackFooterLookId = asFooterLookId("footer-links-quiet");
|
|
96085
|
+
function quietFooterLinks(theme) {
|
|
96020
96086
|
return {
|
|
96021
96087
|
...theme.footer,
|
|
96022
|
-
variant: "simple",
|
|
96023
|
-
maxWidth: "container",
|
|
96024
|
-
background: {
|
|
96025
|
-
type: "color",
|
|
96026
|
-
color: "surface"
|
|
96027
|
-
},
|
|
96028
96088
|
navStyle: "minimal",
|
|
96029
96089
|
navWeight: "regular",
|
|
96030
96090
|
navColor: "text",
|
|
@@ -96037,285 +96097,38 @@ function identityQuietFooter(theme) {
|
|
|
96037
96097
|
hoverColorToken: "primary",
|
|
96038
96098
|
padding: "none",
|
|
96039
96099
|
borderRadius: "none"
|
|
96040
|
-
},
|
|
96041
|
-
navLayout: {
|
|
96042
|
-
layout: "inline-wrap",
|
|
96043
|
-
align: "start",
|
|
96044
|
-
gapX: "default",
|
|
96045
|
-
gapY: "tight"
|
|
96046
|
-
},
|
|
96047
|
-
logo: {
|
|
96048
|
-
showLogo: true,
|
|
96049
|
-
showLogoText: true,
|
|
96050
|
-
placement: "left",
|
|
96051
|
-
size: "sm",
|
|
96052
|
-
align: "start"
|
|
96053
|
-
},
|
|
96054
|
-
bottomBar: {
|
|
96055
|
-
enabled: false,
|
|
96056
|
-
fullBleed: false,
|
|
96057
|
-
textAlign: "left",
|
|
96058
|
-
paddingX: "default",
|
|
96059
|
-
paddingY: "compact",
|
|
96060
|
-
borderTop: { width: "none" }
|
|
96061
96100
|
}
|
|
96062
96101
|
};
|
|
96063
96102
|
}
|
|
96064
|
-
|
|
96065
|
-
* Back-compat alias for the previous default footer Look. It keeps existing
|
|
96066
|
-
* persisted selections valid while staying hidden from the new layout/style UI.
|
|
96067
|
-
*/
|
|
96068
|
-
function mutedGroundingFooter(theme) {
|
|
96069
|
-
return {
|
|
96070
|
-
...identityQuietFooter(theme),
|
|
96071
|
-
background: theme.footer.background,
|
|
96072
|
-
navStyle: theme.footer.navStyle,
|
|
96073
|
-
navColor: theme.footer.navColor,
|
|
96074
|
-
navWeight: theme.footer.navWeight,
|
|
96075
|
-
navLinkStyle: theme.footer.navLinkStyle,
|
|
96076
|
-
bottomTextLinkStyle: theme.footer.bottomTextLinkStyle
|
|
96077
|
-
};
|
|
96078
|
-
}
|
|
96079
|
-
/** Applies a high-contrast brand band with a darker full-bleed bottom bar. */
|
|
96080
|
-
function brandTwoBandFooter(theme) {
|
|
96103
|
+
function emphasizedFooterLinks(theme) {
|
|
96081
96104
|
return {
|
|
96082
96105
|
...theme.footer,
|
|
96083
|
-
variant: "split",
|
|
96084
|
-
maxWidth: "container",
|
|
96085
|
-
background: {
|
|
96086
|
-
type: "color",
|
|
96087
|
-
color: "primary-800"
|
|
96088
|
-
},
|
|
96089
96106
|
navStyle: "minimal",
|
|
96090
96107
|
navWeight: "medium",
|
|
96091
|
-
navColor: "primaryForeground",
|
|
96092
|
-
navLinkStyle: {
|
|
96093
|
-
typography: "body",
|
|
96094
|
-
fontWeight: "medium",
|
|
96095
|
-
textTransform: "none",
|
|
96096
|
-
italic: false,
|
|
96097
|
-
colorToken: "primaryForeground",
|
|
96098
|
-
hoverColorToken: "secondary",
|
|
96099
|
-
padding: "none",
|
|
96100
|
-
borderRadius: "none"
|
|
96101
|
-
},
|
|
96102
|
-
bottomTextLinkStyle: {
|
|
96103
|
-
colorToken: "secondary",
|
|
96104
|
-
decorationColorToken: "secondary"
|
|
96105
|
-
},
|
|
96106
|
-
navLayout: {
|
|
96107
|
-
layout: "inline-wrap",
|
|
96108
|
-
align: "start",
|
|
96109
|
-
gapX: "default",
|
|
96110
|
-
gapY: "tight"
|
|
96111
|
-
},
|
|
96112
|
-
logo: {
|
|
96113
|
-
showLogo: true,
|
|
96114
|
-
showLogoText: false,
|
|
96115
|
-
placement: "left",
|
|
96116
|
-
size: "sm",
|
|
96117
|
-
align: "start"
|
|
96118
|
-
},
|
|
96119
|
-
bottomBar: {
|
|
96120
|
-
enabled: true,
|
|
96121
|
-
fullBleed: true,
|
|
96122
|
-
background: {
|
|
96123
|
-
type: "color",
|
|
96124
|
-
color: "primary-900"
|
|
96125
|
-
},
|
|
96126
|
-
textColor: "primaryForeground",
|
|
96127
|
-
textAlign: "center",
|
|
96128
|
-
paddingX: "default",
|
|
96129
|
-
paddingY: "compact",
|
|
96130
|
-
borderTop: { width: "none" }
|
|
96131
|
-
}
|
|
96132
|
-
};
|
|
96133
|
-
}
|
|
96134
|
-
/**
|
|
96135
|
-
* Centered stack on a softly tinted band: logo, inline nav, address, and a
|
|
96136
|
-
* hairline-topped copyright line, all centered.
|
|
96137
|
-
*/
|
|
96138
|
-
function centeredCalmFooter(theme) {
|
|
96139
|
-
return {
|
|
96140
|
-
...theme.footer,
|
|
96141
|
-
variant: "simple",
|
|
96142
|
-
maxWidth: "container",
|
|
96143
|
-
background: {
|
|
96144
|
-
type: "color",
|
|
96145
|
-
color: "surfaceAlt"
|
|
96146
|
-
},
|
|
96147
|
-
navStyle: "minimal",
|
|
96148
|
-
navWeight: "regular",
|
|
96149
|
-
navColor: "text",
|
|
96150
|
-
navLinkStyle: {
|
|
96151
|
-
typography: "body",
|
|
96152
|
-
fontWeight: "regular",
|
|
96153
|
-
textTransform: "none",
|
|
96154
|
-
italic: false,
|
|
96155
|
-
colorToken: "text",
|
|
96156
|
-
hoverColorToken: "primary",
|
|
96157
|
-
padding: "none",
|
|
96158
|
-
borderRadius: "none"
|
|
96159
|
-
},
|
|
96160
|
-
navLayout: {
|
|
96161
|
-
layout: "inline-wrap",
|
|
96162
|
-
align: "center",
|
|
96163
|
-
gapX: "relaxed",
|
|
96164
|
-
gapY: "tight"
|
|
96165
|
-
},
|
|
96166
|
-
logo: {
|
|
96167
|
-
showLogo: true,
|
|
96168
|
-
showLogoText: false,
|
|
96169
|
-
placement: "above",
|
|
96170
|
-
size: "sm",
|
|
96171
|
-
align: "center"
|
|
96172
|
-
},
|
|
96173
|
-
bottomBar: {
|
|
96174
|
-
enabled: true,
|
|
96175
|
-
fullBleed: false,
|
|
96176
|
-
textAlign: "center",
|
|
96177
|
-
paddingX: "default",
|
|
96178
|
-
paddingY: "compact",
|
|
96179
|
-
borderTop: { width: "thin" }
|
|
96180
|
-
}
|
|
96181
|
-
};
|
|
96182
|
-
}
|
|
96183
|
-
/** Editorial split footer: compact nav on one side, brand signoff on the other. */
|
|
96184
|
-
function splitEditorialFooter(theme) {
|
|
96185
|
-
return {
|
|
96186
|
-
...theme.footer,
|
|
96187
|
-
variant: "split",
|
|
96188
|
-
maxWidth: "container",
|
|
96189
|
-
background: {
|
|
96190
|
-
type: "color",
|
|
96191
|
-
color: "surface"
|
|
96192
|
-
},
|
|
96193
|
-
navStyle: "minimal",
|
|
96194
|
-
navWeight: "regular",
|
|
96195
96108
|
navColor: "text",
|
|
96196
96109
|
navLinkStyle: {
|
|
96197
96110
|
typography: "body",
|
|
96198
|
-
fontWeight: "
|
|
96199
|
-
textTransform: "none",
|
|
96200
|
-
italic: false,
|
|
96201
|
-
colorToken: "text",
|
|
96202
|
-
hoverColorToken: "primary",
|
|
96203
|
-
padding: "none",
|
|
96204
|
-
borderRadius: "none"
|
|
96205
|
-
},
|
|
96206
|
-
navLayout: {
|
|
96207
|
-
layout: "inline-wrap",
|
|
96208
|
-
align: "start",
|
|
96209
|
-
gapX: "relaxed",
|
|
96210
|
-
gapY: "tight"
|
|
96211
|
-
},
|
|
96212
|
-
logo: {
|
|
96213
|
-
showLogo: true,
|
|
96214
|
-
showLogoText: true,
|
|
96215
|
-
placement: "right",
|
|
96216
|
-
size: "sm",
|
|
96217
|
-
align: "end"
|
|
96218
|
-
},
|
|
96219
|
-
bottomBar: {
|
|
96220
|
-
enabled: true,
|
|
96221
|
-
fullBleed: false,
|
|
96222
|
-
textAlign: "left",
|
|
96223
|
-
paddingX: "default",
|
|
96224
|
-
paddingY: "compact",
|
|
96225
|
-
borderTop: { width: "thin" }
|
|
96226
|
-
}
|
|
96227
|
-
};
|
|
96228
|
-
}
|
|
96229
|
-
/**
|
|
96230
|
-
* Editorial columns: site name and supporting copy on the left, inline nav on
|
|
96231
|
-
* the right, with a hairline-topped bottom line. Uses the footer block's
|
|
96232
|
-
* columns layout.
|
|
96233
|
-
*/
|
|
96234
|
-
function editorialColumnsFooter(theme) {
|
|
96235
|
-
return {
|
|
96236
|
-
...theme.footer,
|
|
96237
|
-
variant: "columns",
|
|
96238
|
-
maxWidth: "container",
|
|
96239
|
-
background: {
|
|
96240
|
-
type: "color",
|
|
96241
|
-
color: "surface"
|
|
96242
|
-
},
|
|
96243
|
-
navStyle: "minimal",
|
|
96244
|
-
navWeight: "regular",
|
|
96245
|
-
navColor: "text",
|
|
96246
|
-
navLinkStyle: {
|
|
96247
|
-
typography: "body",
|
|
96248
|
-
fontWeight: "regular",
|
|
96111
|
+
fontWeight: "medium",
|
|
96249
96112
|
textTransform: "none",
|
|
96250
96113
|
italic: false,
|
|
96251
96114
|
colorToken: "text",
|
|
96252
96115
|
hoverColorToken: "primary",
|
|
96253
96116
|
padding: "none",
|
|
96254
96117
|
borderRadius: "none"
|
|
96255
|
-
},
|
|
96256
|
-
logo: {
|
|
96257
|
-
showLogo: true,
|
|
96258
|
-
showLogoText: true,
|
|
96259
|
-
placement: "left",
|
|
96260
|
-
size: "sm",
|
|
96261
|
-
align: "start"
|
|
96262
|
-
},
|
|
96263
|
-
bottomBar: {
|
|
96264
|
-
enabled: true,
|
|
96265
|
-
fullBleed: false,
|
|
96266
|
-
textAlign: "center",
|
|
96267
|
-
paddingX: "default",
|
|
96268
|
-
paddingY: "compact",
|
|
96269
|
-
borderTop: { width: "thin" }
|
|
96270
96118
|
}
|
|
96271
96119
|
};
|
|
96272
96120
|
}
|
|
96273
|
-
const footerLookCatalog = defineExactCatalog()([
|
|
96274
|
-
|
|
96275
|
-
|
|
96276
|
-
|
|
96277
|
-
|
|
96278
|
-
|
|
96279
|
-
|
|
96280
|
-
|
|
96281
|
-
|
|
96282
|
-
|
|
96283
|
-
|
|
96284
|
-
layoutId: asFooterLayoutId("identity"),
|
|
96285
|
-
styleId: asFooterStyleId("quiet"),
|
|
96286
|
-
hiddenFromLayoutStyleControls: true,
|
|
96287
|
-
compile: mutedGroundingFooter
|
|
96288
|
-
},
|
|
96289
|
-
{
|
|
96290
|
-
id: asFooterLookId("footer-centered-calm"),
|
|
96291
|
-
label: "Centered calm footer",
|
|
96292
|
-
layoutId: asFooterLayoutId("centered"),
|
|
96293
|
-
styleId: asFooterStyleId("calm"),
|
|
96294
|
-
compile: centeredCalmFooter
|
|
96295
|
-
},
|
|
96296
|
-
{
|
|
96297
|
-
id: asFooterLookId("footer-split-editorial"),
|
|
96298
|
-
label: "Split editorial footer",
|
|
96299
|
-
layoutId: asFooterLayoutId("split"),
|
|
96300
|
-
styleId: asFooterStyleId("editorial"),
|
|
96301
|
-
compile: splitEditorialFooter
|
|
96302
|
-
},
|
|
96303
|
-
{
|
|
96304
|
-
id: asFooterLookId("footer-editorial-columns"),
|
|
96305
|
-
label: "Editorial columns footer",
|
|
96306
|
-
layoutId: asFooterLayoutId("columns"),
|
|
96307
|
-
styleId: asFooterStyleId("editorial"),
|
|
96308
|
-
compile: editorialColumnsFooter
|
|
96309
|
-
},
|
|
96310
|
-
{
|
|
96311
|
-
id: asFooterLookId("site-footer-brand-two-band"),
|
|
96312
|
-
label: "Two-band brand footer",
|
|
96313
|
-
layoutId: asFooterLayoutId("split"),
|
|
96314
|
-
styleId: asFooterStyleId("brand-band"),
|
|
96315
|
-
allowedContentPresence: ["default-footer", "default-and-blocks"],
|
|
96316
|
-
compile: brandTwoBandFooter
|
|
96317
|
-
}
|
|
96318
|
-
]);
|
|
96121
|
+
const footerLookCatalog = defineExactCatalog()([{
|
|
96122
|
+
id: asFooterLookId("footer-links-quiet"),
|
|
96123
|
+
label: "Quiet links",
|
|
96124
|
+
description: "Regular-weight footer navigation with a restrained hover.",
|
|
96125
|
+
compile: quietFooterLinks
|
|
96126
|
+
}, {
|
|
96127
|
+
id: asFooterLookId("footer-links-emphasized"),
|
|
96128
|
+
label: "Emphasized links",
|
|
96129
|
+
description: "Medium-weight footer navigation with a clearer emphasis.",
|
|
96130
|
+
compile: emphasizedFooterLinks
|
|
96131
|
+
}]);
|
|
96319
96132
|
const footerLooksById = new Map(footerLookCatalog.map((look) => [look.id, look]));
|
|
96320
96133
|
function getFooterLook(id) {
|
|
96321
96134
|
return footerLooksById.get(id) ?? null;
|
|
@@ -96328,114 +96141,15 @@ function getFooterLookOrThrow(id) {
|
|
|
96328
96141
|
if (!look) throw new Error(`Unknown Theme V2 footer Look: ${id}`);
|
|
96329
96142
|
return look;
|
|
96330
96143
|
}
|
|
96331
|
-
function mergeFooterSelectionContext(context) {
|
|
96332
|
-
return mergeWithDefaults(defaultFooterSelectionContext, context);
|
|
96333
|
-
}
|
|
96334
|
-
function rejectReasonsForLook(look, context) {
|
|
96335
|
-
return [
|
|
96336
|
-
...requiresMissingFooterNav(context.navDensity, footerNavRequiredForLook(look)) ? ["footer-nav-required"] : [],
|
|
96337
|
-
...requiresMissingFooterNavGroups(context.groupedNav, footerGroupsRequiredForLook(look)) ? ["footer-nav-groups-required"] : [],
|
|
96338
|
-
...exceedsFooterNavDensity(context.navDensity, maxFooterNavDensityForLook(look)) ? ["footer-nav-too-dense"] : [],
|
|
96339
|
-
...contentPresenceIsIncompatible(context.contentPresence, look.allowedContentPresence) ? ["footer-content-incompatible"] : []
|
|
96340
|
-
];
|
|
96341
|
-
}
|
|
96342
|
-
const footerNavDensityRank = {
|
|
96343
|
-
sparse: 1,
|
|
96344
|
-
balanced: 2,
|
|
96345
|
-
dense: 3
|
|
96346
|
-
};
|
|
96347
|
-
function footerNavRequiredForLook(look) {
|
|
96348
|
-
return getFooterLayout(look.layoutId)?.requiresFooterNav === true || look.requiresFooterNav === true;
|
|
96349
|
-
}
|
|
96350
|
-
function footerGroupsRequiredForLook(look) {
|
|
96351
|
-
return getFooterLayout(look.layoutId)?.requiresFooterNavGroups === true || look.requiresFooterNavGroups === true;
|
|
96352
|
-
}
|
|
96353
|
-
function maxFooterNavDensityForLook(look) {
|
|
96354
|
-
const layoutMax = getFooterLayout(look.layoutId)?.maxRecommendedNavDensity;
|
|
96355
|
-
const lookMax = look.maxRecommendedNavDensity;
|
|
96356
|
-
if (!layoutMax) return lookMax;
|
|
96357
|
-
if (!lookMax) return layoutMax;
|
|
96358
|
-
return footerNavDensityRank[layoutMax] <= footerNavDensityRank[lookMax] ? layoutMax : lookMax;
|
|
96359
|
-
}
|
|
96360
|
-
function requiresMissingFooterNav(density, required) {
|
|
96361
|
-
return required === true && density === "none";
|
|
96362
|
-
}
|
|
96363
|
-
function requiresMissingFooterNavGroups(groupedNav, required) {
|
|
96364
|
-
return required === true && groupedNav === "none";
|
|
96365
|
-
}
|
|
96366
|
-
function exceedsFooterNavDensity(density, maxRecommendedDensity) {
|
|
96367
|
-
if (density === "unknown" || density === "none" || maxRecommendedDensity === void 0) return false;
|
|
96368
|
-
return footerNavDensityRank[density] > footerNavDensityRank[maxRecommendedDensity];
|
|
96369
|
-
}
|
|
96370
|
-
function contentPresenceIsIncompatible(contentPresence, allowedContentPresence) {
|
|
96371
|
-
if (contentPresence === "unknown" || allowedContentPresence === void 0) return false;
|
|
96372
|
-
return !allowedContentPresence.includes(contentPresence);
|
|
96373
|
-
}
|
|
96374
96144
|
function resolveFooterLook(input) {
|
|
96375
|
-
const
|
|
96376
|
-
const result = resolveLook({
|
|
96377
|
-
recommendedLookIds: input.recommendedLookIds,
|
|
96378
|
-
guaranteedFallbackLookId: guaranteedFallbackFooterLookId,
|
|
96379
|
-
getLookOrThrow: getFooterLookOrThrow,
|
|
96380
|
-
context,
|
|
96381
|
-
rejectReasonsForLook,
|
|
96382
|
-
compileLook: (look) => look.compile(input.theme)
|
|
96383
|
-
});
|
|
96145
|
+
const selectedLook = input.recommendedLookIds.map(getFooterLook).find((look) => look !== null) ?? getFooterLookOrThrow(guaranteedFallbackFooterLookId);
|
|
96384
96146
|
return {
|
|
96385
|
-
selectedLookId:
|
|
96386
|
-
selectedLook
|
|
96387
|
-
footer:
|
|
96388
|
-
rejected:
|
|
96147
|
+
selectedLookId: selectedLook.id,
|
|
96148
|
+
selectedLook,
|
|
96149
|
+
footer: selectedLook.compile(input.theme),
|
|
96150
|
+
rejected: []
|
|
96389
96151
|
};
|
|
96390
96152
|
}
|
|
96391
|
-
function footerLookRejectionReasonLabel(reason) {
|
|
96392
|
-
switch (reason) {
|
|
96393
|
-
case "footer-nav-required": return "This footer Layout needs footer navigation.";
|
|
96394
|
-
case "footer-nav-groups-required": return "This footer Layout needs grouped footer navigation.";
|
|
96395
|
-
case "footer-nav-too-dense": return "Footer navigation is too dense for this Look.";
|
|
96396
|
-
case "footer-content-incompatible": return "Footer content does not fit this Look.";
|
|
96397
|
-
default: return assertNever$8(reason, "Unhandled footer Look rejection reason");
|
|
96398
|
-
}
|
|
96399
|
-
}
|
|
96400
|
-
//#endregion
|
|
96401
|
-
//#region ../theme-core/src/site-styles/curatedChoices.ts
|
|
96402
|
-
function defaultCuratedChoice(choices) {
|
|
96403
|
-
return choices[0].id;
|
|
96404
|
-
}
|
|
96405
|
-
function resolveCuratedChoice(requested, choices) {
|
|
96406
|
-
const fallback = defaultCuratedChoice(choices);
|
|
96407
|
-
if (requested === null) return {
|
|
96408
|
-
kind: "defaulted-empty",
|
|
96409
|
-
resolved: fallback
|
|
96410
|
-
};
|
|
96411
|
-
if (typeof requested !== "string") return {
|
|
96412
|
-
kind: "defaulted-rejected",
|
|
96413
|
-
requested: requested.raw,
|
|
96414
|
-
resolved: fallback,
|
|
96415
|
-
reason: "unknown"
|
|
96416
|
-
};
|
|
96417
|
-
if (choices.some((choice) => choice.id === requested)) return {
|
|
96418
|
-
kind: "accepted",
|
|
96419
|
-
resolved: requested
|
|
96420
|
-
};
|
|
96421
|
-
return {
|
|
96422
|
-
kind: "defaulted-rejected",
|
|
96423
|
-
requested,
|
|
96424
|
-
resolved: fallback,
|
|
96425
|
-
reason: "not-curated-for-style"
|
|
96426
|
-
};
|
|
96427
|
-
}
|
|
96428
|
-
function requireEntriesForCuratedChoices(entries, choices) {
|
|
96429
|
-
const byId = new Map(entries.map((entry) => [entry.id, entry]));
|
|
96430
|
-
const resolved = choices.map((choice) => {
|
|
96431
|
-
const entry = byId.get(choice.id);
|
|
96432
|
-
if (!entry) throw new Error(`Curated choice references unknown catalog entry "${choice.id}"`);
|
|
96433
|
-
return entry;
|
|
96434
|
-
});
|
|
96435
|
-
const first = resolved[0];
|
|
96436
|
-
if (!first) throw new Error("Expected at least one curated choice");
|
|
96437
|
-
return [first, ...resolved.slice(1)];
|
|
96438
|
-
}
|
|
96439
96153
|
//#endregion
|
|
96440
96154
|
//#region ../theme-core/src/site-styles/sourceCatalogs.ts
|
|
96441
96155
|
const generatedContentFrames = [
|
|
@@ -99592,16 +99306,15 @@ function resolvePalette(recipes, options) {
|
|
|
99592
99306
|
};
|
|
99593
99307
|
}
|
|
99594
99308
|
/**
|
|
99595
|
-
*
|
|
99596
|
-
*
|
|
99597
|
-
*
|
|
99598
|
-
* unknown personality ID is a programmer error and throws.
|
|
99309
|
+
* Resolves a validated button-style selection for emission to `theme.buttons`.
|
|
99310
|
+
* Returns `undefined` when no selection was supplied so the caller can leave
|
|
99311
|
+
* the default theme buttons untouched.
|
|
99599
99312
|
*/
|
|
99600
99313
|
function resolveButtonSystem(options) {
|
|
99601
|
-
if (options.
|
|
99602
|
-
const
|
|
99603
|
-
if (
|
|
99604
|
-
return
|
|
99314
|
+
if (options.buttonStyleSelection === void 0) return void 0;
|
|
99315
|
+
const result = resolveButtonStyleSelection(options.buttonStyleSelection);
|
|
99316
|
+
if (result.kind === "error") throw new Error(`Invalid button style ${result.error.styleId}: ${result.error.issues.join(", ")}`);
|
|
99317
|
+
return result.buttonSystem;
|
|
99605
99318
|
}
|
|
99606
99319
|
function compileHeroTypography(recipes) {
|
|
99607
99320
|
const headlineSize = recipes.typography === "classic-serif" ? "5xl" : recipes.contrast === "maximum" ? "6xl" : recipes.spacing === "compact" ? "4xl" : "5xl";
|
|
@@ -99629,7 +99342,7 @@ function compileHeroTypography(recipes) {
|
|
|
99629
99342
|
* Theme output before any persistence or Phase 5 integration consumes them.
|
|
99630
99343
|
*
|
|
99631
99344
|
* Optional `options` accept an already-resolved palette selection and button
|
|
99632
|
-
*
|
|
99345
|
+
* style. Sparse overrides and legacy palette IDs are deliberately not
|
|
99633
99346
|
* compiler inputs: callers must resolve a complete palette before compiling.
|
|
99634
99347
|
*/
|
|
99635
99348
|
function compileTokenRecipes(recipes, options = {}) {
|
|
@@ -99977,17 +99690,28 @@ function defineCuratedSiteStyle(input) {
|
|
|
99977
99690
|
})),
|
|
99978
99691
|
recommendedHeaderLookIds: legacyHeaderLookIds.map(asHeaderLookId),
|
|
99979
99692
|
recommendedFooterLookIds: (input.recommendedFooterLookIds ?? []).map(asFooterLookId),
|
|
99980
|
-
|
|
99693
|
+
buttonStyleChoices: input.buttonStyleChoices,
|
|
99981
99694
|
paletteRecommendations: input.paletteRecommendations,
|
|
99982
99695
|
typography: input.typography ?? defaultTypographyForRecipe(input.tokenRecipes.typography),
|
|
99983
99696
|
...input.heroTypography ? { heroTypography: input.heroTypography } : {}
|
|
99984
99697
|
};
|
|
99985
99698
|
}
|
|
99986
|
-
function
|
|
99699
|
+
function defaultButtonStyleSelectionForSiteStyle(siteStyle) {
|
|
99700
|
+
const { styleId, parameters } = siteStyle.buttonStyleChoices[0];
|
|
99701
|
+
return buttonStyleSelectionSchema.parse({
|
|
99702
|
+
styleId,
|
|
99703
|
+
parameters
|
|
99704
|
+
});
|
|
99705
|
+
}
|
|
99706
|
+
function buttonChoice(styleId, note, parameters) {
|
|
99707
|
+
const selection = parameters === void 0 ? defaultButtonStyleSelectionFor(styleId) : buttonStyleSelectionSchema.parse({
|
|
99708
|
+
styleId,
|
|
99709
|
+
parameters
|
|
99710
|
+
});
|
|
99987
99711
|
return note ? {
|
|
99988
|
-
|
|
99712
|
+
...selection,
|
|
99989
99713
|
note
|
|
99990
|
-
} :
|
|
99714
|
+
} : selection;
|
|
99991
99715
|
}
|
|
99992
99716
|
function paletteRecommendation(authoringKey, note) {
|
|
99993
99717
|
const valueKey = requireCuratedPaletteValueKey(asCuratedPaletteAuthoringKey(authoringKey));
|
|
@@ -100172,9 +99896,8 @@ const curatedSiteStyles = [
|
|
|
100172
99896
|
"minimal-transparent",
|
|
100173
99897
|
"clean-base"
|
|
100174
99898
|
],
|
|
100175
|
-
|
|
99899
|
+
buttonStyleChoices: [
|
|
100176
99900
|
buttonChoice("soft-pill"),
|
|
100177
|
-
buttonChoice("two-tone-pill"),
|
|
100178
99901
|
buttonChoice("pebble"),
|
|
100179
99902
|
buttonChoice("editorial-link"),
|
|
100180
99903
|
buttonChoice("brushed-wash")
|
|
@@ -100210,7 +99933,7 @@ const curatedSiteStyles = [
|
|
|
100210
99933
|
"brand-solid",
|
|
100211
99934
|
"clean-base"
|
|
100212
99935
|
],
|
|
100213
|
-
|
|
99936
|
+
buttonStyleChoices: [
|
|
100214
99937
|
buttonChoice("confident-chip"),
|
|
100215
99938
|
buttonChoice("soft-pill"),
|
|
100216
99939
|
buttonChoice("editorial-link")
|
|
@@ -100249,7 +99972,7 @@ const curatedSiteStyles = [
|
|
|
100249
99972
|
"minimal-transparent",
|
|
100250
99973
|
"centered-calm"
|
|
100251
99974
|
],
|
|
100252
|
-
|
|
99975
|
+
buttonStyleChoices: [
|
|
100253
99976
|
buttonChoice("editorial-link"),
|
|
100254
99977
|
buttonChoice("soft-pill"),
|
|
100255
99978
|
buttonChoice("brushed-wash")
|
|
@@ -100289,7 +100012,7 @@ const curatedSiteStyles = [
|
|
|
100289
100012
|
"practical-utility",
|
|
100290
100013
|
"clean-base"
|
|
100291
100014
|
],
|
|
100292
|
-
|
|
100015
|
+
buttonStyleChoices: [
|
|
100293
100016
|
buttonChoice("pebble"),
|
|
100294
100017
|
buttonChoice("brushed-wash"),
|
|
100295
100018
|
buttonChoice("confident-chip")
|
|
@@ -100350,7 +100073,7 @@ const curatedSiteStyles = [
|
|
|
100350
100073
|
"serif-line",
|
|
100351
100074
|
"clean-base"
|
|
100352
100075
|
],
|
|
100353
|
-
|
|
100076
|
+
buttonStyleChoices: [
|
|
100354
100077
|
buttonChoice("editorial-link"),
|
|
100355
100078
|
buttonChoice("confident-chip"),
|
|
100356
100079
|
buttonChoice("soft-pill")
|
|
@@ -100412,7 +100135,7 @@ const curatedSiteStyles = [
|
|
|
100412
100135
|
"brand-solid",
|
|
100413
100136
|
"clean-base"
|
|
100414
100137
|
],
|
|
100415
|
-
|
|
100138
|
+
buttonStyleChoices: [
|
|
100416
100139
|
buttonChoice("confident-chip"),
|
|
100417
100140
|
buttonChoice("pebble"),
|
|
100418
100141
|
buttonChoice("ink-stamp")
|
|
@@ -100451,7 +100174,7 @@ const curatedSiteStyles = [
|
|
|
100451
100174
|
"minimal-transparent",
|
|
100452
100175
|
"clean-base"
|
|
100453
100176
|
],
|
|
100454
|
-
|
|
100177
|
+
buttonStyleChoices: [
|
|
100455
100178
|
buttonChoice("soft-pill"),
|
|
100456
100179
|
buttonChoice("pebble"),
|
|
100457
100180
|
buttonChoice("confident-chip")
|
|
@@ -100524,7 +100247,7 @@ const curatedSiteStyles = [
|
|
|
100524
100247
|
"clean-base",
|
|
100525
100248
|
"centered-calm"
|
|
100526
100249
|
],
|
|
100527
|
-
|
|
100250
|
+
buttonStyleChoices: [
|
|
100528
100251
|
buttonChoice("pebble"),
|
|
100529
100252
|
buttonChoice("soft-pill"),
|
|
100530
100253
|
buttonChoice("editorial-link")
|
|
@@ -100643,12 +100366,8 @@ const curatedSiteStyles = [
|
|
|
100643
100366
|
"serif-line",
|
|
100644
100367
|
"minimal-transparent"
|
|
100645
100368
|
],
|
|
100646
|
-
recommendedFooterLookIds: [
|
|
100647
|
-
|
|
100648
|
-
"footer-editorial-columns",
|
|
100649
|
-
"footer-muted-grounding"
|
|
100650
|
-
],
|
|
100651
|
-
buttonPersonalityChoices: [
|
|
100369
|
+
recommendedFooterLookIds: ["footer-links-quiet"],
|
|
100370
|
+
buttonStyleChoices: [
|
|
100652
100371
|
buttonChoice("soft-pill"),
|
|
100653
100372
|
buttonChoice("pebble"),
|
|
100654
100373
|
buttonChoice("editorial-link")
|
|
@@ -100722,7 +100441,7 @@ const curatedSiteStyles = [
|
|
|
100722
100441
|
"centered-calm",
|
|
100723
100442
|
"minimal-transparent"
|
|
100724
100443
|
],
|
|
100725
|
-
|
|
100444
|
+
buttonStyleChoices: [
|
|
100726
100445
|
buttonChoice("editorial-link"),
|
|
100727
100446
|
buttonChoice("soft-pill"),
|
|
100728
100447
|
buttonChoice("brushed-wash")
|
|
@@ -100795,8 +100514,8 @@ const curatedSiteStyles = [
|
|
|
100795
100514
|
"practical-utility",
|
|
100796
100515
|
"clean-base"
|
|
100797
100516
|
],
|
|
100798
|
-
recommendedFooterLookIds: ["
|
|
100799
|
-
|
|
100517
|
+
recommendedFooterLookIds: ["footer-links-emphasized", "footer-links-quiet"],
|
|
100518
|
+
buttonStyleChoices: [
|
|
100800
100519
|
buttonChoice("pebble"),
|
|
100801
100520
|
buttonChoice("confident-chip"),
|
|
100802
100521
|
buttonChoice("ink-stamp"),
|
|
@@ -100917,8 +100636,8 @@ const curatedSiteStyles = [
|
|
|
100917
100636
|
"minimal-transparent",
|
|
100918
100637
|
"serif-line"
|
|
100919
100638
|
],
|
|
100920
|
-
recommendedFooterLookIds: ["footer-
|
|
100921
|
-
|
|
100639
|
+
recommendedFooterLookIds: ["footer-links-quiet", "footer-links-emphasized"],
|
|
100640
|
+
buttonStyleChoices: [
|
|
100922
100641
|
buttonChoice("earth-pill"),
|
|
100923
100642
|
buttonChoice("soft-pill"),
|
|
100924
100643
|
buttonChoice("pebble"),
|
|
@@ -100989,7 +100708,7 @@ const curatedSiteStyles = [
|
|
|
100989
100708
|
"floating-glass",
|
|
100990
100709
|
"brand-solid"
|
|
100991
100710
|
],
|
|
100992
|
-
|
|
100711
|
+
buttonStyleChoices: [
|
|
100993
100712
|
buttonChoice("ink-stamp"),
|
|
100994
100713
|
buttonChoice("confident-chip"),
|
|
100995
100714
|
buttonChoice("brushed-wash"),
|
|
@@ -101044,8 +100763,8 @@ const curatedSiteStyles = [
|
|
|
101044
100763
|
"transparent-overlay",
|
|
101045
100764
|
"practical-utility"
|
|
101046
100765
|
],
|
|
101047
|
-
recommendedFooterLookIds: ["
|
|
101048
|
-
|
|
100766
|
+
recommendedFooterLookIds: ["footer-links-emphasized", "footer-links-quiet"],
|
|
100767
|
+
buttonStyleChoices: [
|
|
101049
100768
|
buttonChoice("showtime-pill"),
|
|
101050
100769
|
buttonChoice("confident-chip"),
|
|
101051
100770
|
buttonChoice("ink-stamp"),
|
|
@@ -101126,8 +100845,8 @@ const curatedSiteStyles = [
|
|
|
101126
100845
|
headerStyleChoice("glass")
|
|
101127
100846
|
] },
|
|
101128
100847
|
recommendedHeaderLookIds: ["minimal-transparent"],
|
|
101129
|
-
recommendedFooterLookIds: ["
|
|
101130
|
-
|
|
100848
|
+
recommendedFooterLookIds: ["footer-links-emphasized", "footer-links-quiet"],
|
|
100849
|
+
buttonStyleChoices: [
|
|
101131
100850
|
buttonChoice("ornate-ritual"),
|
|
101132
100851
|
buttonChoice("joy-stamp"),
|
|
101133
100852
|
buttonChoice("ink-stamp")
|
|
@@ -101180,8 +100899,8 @@ const curatedSiteStyles = [
|
|
|
101180
100899
|
headerStyleChoice("glass")
|
|
101181
100900
|
] },
|
|
101182
100901
|
recommendedHeaderLookIds: ["minimal-transparent"],
|
|
101183
|
-
recommendedFooterLookIds: ["
|
|
101184
|
-
|
|
100902
|
+
recommendedFooterLookIds: ["footer-links-emphasized", "footer-links-quiet"],
|
|
100903
|
+
buttonStyleChoices: [
|
|
101185
100904
|
buttonChoice("joy-stamp"),
|
|
101186
100905
|
buttonChoice("ink-stamp"),
|
|
101187
100906
|
buttonChoice("showtime-pill")
|
|
@@ -101271,8 +100990,8 @@ const curatedSiteStyles = [
|
|
|
101271
100990
|
"centered-calm",
|
|
101272
100991
|
"clean-base"
|
|
101273
100992
|
],
|
|
101274
|
-
recommendedFooterLookIds: ["footer-
|
|
101275
|
-
|
|
100993
|
+
recommendedFooterLookIds: ["footer-links-quiet"],
|
|
100994
|
+
buttonStyleChoices: [
|
|
101276
100995
|
buttonChoice("flat-ink"),
|
|
101277
100996
|
buttonChoice("confident-chip"),
|
|
101278
100997
|
buttonChoice("editorial-link")
|
|
@@ -101349,14 +101068,9 @@ const curatedSiteStyles = [
|
|
|
101349
101068
|
"serif-line",
|
|
101350
101069
|
"clean-base"
|
|
101351
101070
|
],
|
|
101352
|
-
recommendedFooterLookIds: [
|
|
101353
|
-
|
|
101354
|
-
"
|
|
101355
|
-
"footer-identity-quiet"
|
|
101356
|
-
],
|
|
101357
|
-
buttonPersonalityChoices: [
|
|
101358
|
-
buttonChoice("quiet-arrow"),
|
|
101359
|
-
buttonChoice("two-tone-pill"),
|
|
101071
|
+
recommendedFooterLookIds: ["footer-links-quiet"],
|
|
101072
|
+
buttonStyleChoices: [
|
|
101073
|
+
buttonChoice("quiet-arrow", void 0, { secondaryTreatment: "solid-accent" }),
|
|
101360
101074
|
buttonChoice("flat-ink"),
|
|
101361
101075
|
buttonChoice("editorial-link")
|
|
101362
101076
|
],
|
|
@@ -102019,7 +101733,7 @@ function canonicalHeaderSelectionInput(layoutId, styleId) {
|
|
|
102019
101733
|
}
|
|
102020
101734
|
};
|
|
102021
101735
|
}
|
|
102022
|
-
function applySiteChromeLooks({ theme, siteStyle, headerLookId, headerLayoutId, headerStyleId, footerLookId, headerSelectionContext
|
|
101736
|
+
function applySiteChromeLooks({ theme, siteStyle, headerLookId, headerLayoutId, headerStyleId, footerLookId, headerSelectionContext }) {
|
|
102023
101737
|
const canonicalHeaderSelection = canonicalHeaderSelectionInput(headerLayoutId, headerStyleId);
|
|
102024
101738
|
const headerSelection = resolveHeaderLook({
|
|
102025
101739
|
theme,
|
|
@@ -102035,8 +101749,7 @@ function applySiteChromeLooks({ theme, siteStyle, headerLookId, headerLayoutId,
|
|
|
102035
101749
|
const resolvedHeaderLookId = canonicalHeaderSelection.kind === "canonical" ? findLegacyHeaderLookIdForSelection(headerLayoutStyleSelection) : headerSelection.selectedLookId;
|
|
102036
101750
|
const footerSelection = resolveFooterLook({
|
|
102037
101751
|
theme,
|
|
102038
|
-
recommendedLookIds: footerLookId ? [footerLookId] : siteStyle.recommendedFooterLookIds
|
|
102039
|
-
context: footerSelectionContext
|
|
101752
|
+
recommendedLookIds: footerLookId ? [footerLookId] : siteStyle.recommendedFooterLookIds
|
|
102040
101753
|
});
|
|
102041
101754
|
const footerWithBrandPresentation = headerSelectionContext?.logo ? applyFooterBrandPresentation(footerSelection.footer, headerSelection.brandPresentation) : footerSelection.footer;
|
|
102042
101755
|
return {
|
|
@@ -102088,7 +101801,7 @@ function footerLogoSizeFromBrandPresentation(size) {
|
|
|
102088
101801
|
}
|
|
102089
101802
|
}
|
|
102090
101803
|
/**
|
|
102091
|
-
* High-level, site-style-aware compiler. Resolves the user's
|
|
101804
|
+
* High-level, site-style-aware compiler. Resolves the user's button style and
|
|
102092
101805
|
* palette selections into theme tokens. Palette authority is always supplied
|
|
102093
101806
|
* as a complete resolved curated/site selection or an explicit draft.
|
|
102094
101807
|
*
|
|
@@ -102097,17 +101810,20 @@ function footerLogoSizeFromBrandPresentation(size) {
|
|
|
102097
101810
|
* notices.
|
|
102098
101811
|
*/
|
|
102099
101812
|
function compileSiteThemeFromSelections(input) {
|
|
102100
|
-
const { siteStyle,
|
|
102101
|
-
const
|
|
101813
|
+
const { siteStyle, buttonStyleSelection, typography, headerLookId, headerLayoutId, headerStyleId, footerLookId, headerSelectionContext } = input;
|
|
101814
|
+
const defaultButtonStyle = defaultButtonStyleSelectionForSiteStyle(siteStyle);
|
|
101815
|
+
const requestedButtonStyle = buttonStyleSelection ?? defaultButtonStyle;
|
|
101816
|
+
const acceptsRequestedButtonStyle = siteStyle.buttonStyleChoices.some((choice) => choice.styleId === requestedButtonStyle.styleId);
|
|
101817
|
+
const resolvedButtonStyle = acceptsRequestedButtonStyle ? requestedButtonStyle : defaultButtonStyle;
|
|
102102
101818
|
const warnings = [];
|
|
102103
|
-
if (
|
|
102104
|
-
kind: "rejected-
|
|
102105
|
-
requested:
|
|
102106
|
-
fellBackTo:
|
|
101819
|
+
if (!acceptsRequestedButtonStyle) warnings.push({
|
|
101820
|
+
kind: "rejected-button-style",
|
|
101821
|
+
requested: requestedButtonStyle.styleId,
|
|
101822
|
+
fellBackTo: defaultButtonStyle
|
|
102107
101823
|
});
|
|
102108
101824
|
const siteChromeResult = applySiteChromeLooks({
|
|
102109
101825
|
theme: applyTypographyToTheme(applySiteStyleThemeOverrides(compileTokenRecipes(siteStyle.template.tokenRecipes, {
|
|
102110
|
-
|
|
101826
|
+
buttonStyleSelection: resolvedButtonStyle,
|
|
102111
101827
|
resolvedPalette: input.resolvedPalette
|
|
102112
101828
|
}), siteStyle), typography ?? siteStyle.typography, siteStyle.heroTypography),
|
|
102113
101829
|
siteStyle,
|
|
@@ -102115,8 +101831,7 @@ function compileSiteThemeFromSelections(input) {
|
|
|
102115
101831
|
headerLayoutId,
|
|
102116
101832
|
headerStyleId,
|
|
102117
101833
|
footerLookId,
|
|
102118
|
-
headerSelectionContext
|
|
102119
|
-
footerSelectionContext
|
|
101834
|
+
headerSelectionContext
|
|
102120
101835
|
});
|
|
102121
101836
|
const commonResult = {
|
|
102122
101837
|
theme: withSiteStyleMetadata(siteChromeResult.theme, siteStyle),
|
|
@@ -102127,7 +101842,7 @@ function compileSiteThemeFromSelections(input) {
|
|
|
102127
101842
|
footerLookId: footerLookId ?? null
|
|
102128
101843
|
},
|
|
102129
101844
|
resolvedSelections: {
|
|
102130
|
-
|
|
101845
|
+
buttonStyleSelection: resolvedButtonStyle,
|
|
102131
101846
|
headerLookId: siteChromeResult.resolvedHeaderLookId,
|
|
102132
101847
|
headerLayoutId: siteChromeResult.headerLayoutStyleSelection.layoutId,
|
|
102133
101848
|
headerStyleId: siteChromeResult.headerLayoutStyleSelection.styleId,
|
|
@@ -102145,16 +101860,6 @@ function compileSiteThemeFromSelections(input) {
|
|
|
102145
101860
|
}
|
|
102146
101861
|
};
|
|
102147
101862
|
}
|
|
102148
|
-
function toCuratedRequest(parsed) {
|
|
102149
|
-
switch (parsed.kind) {
|
|
102150
|
-
case "known": return parsed.id;
|
|
102151
|
-
case "unknown": return {
|
|
102152
|
-
kind: "unknown",
|
|
102153
|
-
raw: parsed.raw
|
|
102154
|
-
};
|
|
102155
|
-
case "empty": return null;
|
|
102156
|
-
}
|
|
102157
|
-
}
|
|
102158
101863
|
function siteStyleIdFromTheme(theme) {
|
|
102159
101864
|
const rawSiteStyleId = theme?.siteStyleId;
|
|
102160
101865
|
if (!rawSiteStyleId) return null;
|
|
@@ -105610,29 +105315,7 @@ const ctaRowFragment = defineFragment({
|
|
|
105610
105315
|
fields: [createCtasRepeater({
|
|
105611
105316
|
label: "Calls to action",
|
|
105612
105317
|
itemLabel: "CTA",
|
|
105613
|
-
maxItems: 3
|
|
105614
|
-
button: { variants: [
|
|
105615
|
-
{
|
|
105616
|
-
value: "primary",
|
|
105617
|
-
label: "Primary"
|
|
105618
|
-
},
|
|
105619
|
-
{
|
|
105620
|
-
value: "secondary",
|
|
105621
|
-
label: "Secondary"
|
|
105622
|
-
},
|
|
105623
|
-
{
|
|
105624
|
-
value: "outline",
|
|
105625
|
-
label: "Outline"
|
|
105626
|
-
},
|
|
105627
|
-
{
|
|
105628
|
-
value: "link",
|
|
105629
|
-
label: "Link"
|
|
105630
|
-
},
|
|
105631
|
-
{
|
|
105632
|
-
value: "accent",
|
|
105633
|
-
label: "Accent"
|
|
105634
|
-
}
|
|
105635
|
-
] }
|
|
105318
|
+
maxItems: 3
|
|
105636
105319
|
})],
|
|
105637
105320
|
layout: [ctaRow({
|
|
105638
105321
|
collectionPath: "content.ctas",
|
|
@@ -105651,10 +105334,6 @@ const heroCtaRowFragment = defineFragment({
|
|
|
105651
105334
|
defaultValue: [],
|
|
105652
105335
|
button: {
|
|
105653
105336
|
variants: [
|
|
105654
|
-
{
|
|
105655
|
-
value: "default",
|
|
105656
|
-
label: "Default"
|
|
105657
|
-
},
|
|
105658
105337
|
{
|
|
105659
105338
|
value: "primary",
|
|
105660
105339
|
label: "Primary"
|
|
@@ -105666,9 +105345,17 @@ const heroCtaRowFragment = defineFragment({
|
|
|
105666
105345
|
{
|
|
105667
105346
|
value: "outline",
|
|
105668
105347
|
label: "Outline"
|
|
105348
|
+
},
|
|
105349
|
+
{
|
|
105350
|
+
value: "ghost",
|
|
105351
|
+
label: "Ghost"
|
|
105352
|
+
},
|
|
105353
|
+
{
|
|
105354
|
+
value: "accent",
|
|
105355
|
+
label: "Accent"
|
|
105669
105356
|
}
|
|
105670
105357
|
],
|
|
105671
|
-
defaultVariant: "
|
|
105358
|
+
defaultVariant: "primary",
|
|
105672
105359
|
includeSize: true,
|
|
105673
105360
|
defaultSize: "lg"
|
|
105674
105361
|
}
|
|
@@ -106344,11 +106031,13 @@ const blogFeaturedPostFragment = defineFragment({
|
|
|
106344
106031
|
as: "p",
|
|
106345
106032
|
style: textColorStyle("text/80")
|
|
106346
106033
|
}, bind$1("post.excerpt", { fallback: "Select a blog post to display its preview." })),
|
|
106347
|
-
|
|
106348
|
-
className: "rb-
|
|
106349
|
-
|
|
106350
|
-
|
|
106351
|
-
|
|
106034
|
+
button({
|
|
106035
|
+
className: "rb-self-start",
|
|
106036
|
+
href: { $bind: { from: "post.path" } },
|
|
106037
|
+
variantId: "ghost",
|
|
106038
|
+
size: "sm",
|
|
106039
|
+
linkRequired: true
|
|
106040
|
+
}, [text({ as: "span" }, props({ value: "Read more" }))])
|
|
106352
106041
|
])], when("post")), stack({
|
|
106353
106042
|
gap: "sm",
|
|
106354
106043
|
className: "rb-rounded-xl rb-border rb-border-dashed rb-p-6",
|
|
@@ -106967,21 +106656,7 @@ const newsletterFormFragment = defineFragment({
|
|
|
106967
106656
|
createButtonVariantField({
|
|
106968
106657
|
id: "buttonVariant",
|
|
106969
106658
|
label: "Button style",
|
|
106970
|
-
defaultValue: "primary"
|
|
106971
|
-
variants: [
|
|
106972
|
-
{
|
|
106973
|
-
value: "primary",
|
|
106974
|
-
label: "Primary"
|
|
106975
|
-
},
|
|
106976
|
-
{
|
|
106977
|
-
value: "secondary",
|
|
106978
|
-
label: "Secondary"
|
|
106979
|
-
},
|
|
106980
|
-
{
|
|
106981
|
-
value: "outline",
|
|
106982
|
-
label: "Outline"
|
|
106983
|
-
}
|
|
106984
|
-
]
|
|
106659
|
+
defaultValue: "primary"
|
|
106985
106660
|
}),
|
|
106986
106661
|
{
|
|
106987
106662
|
id: "successMessage",
|
|
@@ -108227,12 +107902,7 @@ const shopSourceSchema = z$1.object({
|
|
|
108227
107902
|
showPrices: z$1.boolean().optional(),
|
|
108228
107903
|
showValidityPeriod: z$1.boolean().optional(),
|
|
108229
107904
|
showPricePerCredit: z$1.boolean().nullable().optional(),
|
|
108230
|
-
buttonVariant:
|
|
108231
|
-
"primary",
|
|
108232
|
-
"secondary",
|
|
108233
|
-
"outline",
|
|
108234
|
-
"link"
|
|
108235
|
-
]).optional(),
|
|
107905
|
+
buttonVariant: blockButtonRoleSchema.optional(),
|
|
108236
107906
|
passesHeading: z$1.string().optional(),
|
|
108237
107907
|
membershipsHeading: z$1.string().optional(),
|
|
108238
107908
|
buyButtonText: z$1.string().optional(),
|
|
@@ -108377,12 +108047,7 @@ const passesMembershipsHydrationSchema = z$1.object({
|
|
|
108377
108047
|
passes: z$1.array(publicPassProductSchema),
|
|
108378
108048
|
memberships: z$1.array(publicMembershipProductSchema),
|
|
108379
108049
|
passPurchaseMode: z$1.enum(["add_to_cart", "buy_now"]),
|
|
108380
|
-
buttonVariant:
|
|
108381
|
-
"primary",
|
|
108382
|
-
"secondary",
|
|
108383
|
-
"outline",
|
|
108384
|
-
"link"
|
|
108385
|
-
])
|
|
108050
|
+
buttonVariant: blockButtonRoleSchema
|
|
108386
108051
|
});
|
|
108387
108052
|
const productListHydrationSchema = z$1.object({
|
|
108388
108053
|
products: z$1.array(publicProductSchema),
|
|
@@ -109160,23 +108825,7 @@ const courseRegistrationBlockDefinition = {
|
|
|
109160
108825
|
defaultValue: "Sign up",
|
|
109161
108826
|
maxLength: 40
|
|
109162
108827
|
},
|
|
109163
|
-
createButtonVariantField(
|
|
109164
|
-
description: "Choose a button style from your theme",
|
|
109165
|
-
variants: [
|
|
109166
|
-
{
|
|
109167
|
-
value: "primary",
|
|
109168
|
-
label: "Primary"
|
|
109169
|
-
},
|
|
109170
|
-
{
|
|
109171
|
-
value: "secondary",
|
|
109172
|
-
label: "Secondary"
|
|
109173
|
-
},
|
|
109174
|
-
{
|
|
109175
|
-
value: "outline",
|
|
109176
|
-
label: "Outline"
|
|
109177
|
-
}
|
|
109178
|
-
]
|
|
109179
|
-
})
|
|
108828
|
+
createButtonVariantField()
|
|
109180
108829
|
],
|
|
109181
108830
|
layout: [styledSection({
|
|
109182
108831
|
baseClass: "",
|
|
@@ -109882,23 +109531,7 @@ const eventRegistrationBlockDefinition = {
|
|
|
109882
109531
|
defaultValue: "Complete Registration",
|
|
109883
109532
|
maxLength: 40
|
|
109884
109533
|
},
|
|
109885
|
-
createButtonVariantField(
|
|
109886
|
-
description: "Choose a button style from your theme",
|
|
109887
|
-
variants: [
|
|
109888
|
-
{
|
|
109889
|
-
value: "primary",
|
|
109890
|
-
label: "Primary"
|
|
109891
|
-
},
|
|
109892
|
-
{
|
|
109893
|
-
value: "secondary",
|
|
109894
|
-
label: "Secondary"
|
|
109895
|
-
},
|
|
109896
|
-
{
|
|
109897
|
-
value: "outline",
|
|
109898
|
-
label: "Outline"
|
|
109899
|
-
}
|
|
109900
|
-
]
|
|
109901
|
-
})
|
|
109534
|
+
createButtonVariantField()
|
|
109902
109535
|
],
|
|
109903
109536
|
layout: [styledSection({
|
|
109904
109537
|
baseClass: "",
|
|
@@ -112073,11 +111706,7 @@ const newsletterPresetSchema = z$1.enum([
|
|
|
112073
111706
|
"emailNameCompany"
|
|
112074
111707
|
]);
|
|
112075
111708
|
const newsletterDestinationProviderSchema = z$1.enum(["riverbank", "mailchimp"]);
|
|
112076
|
-
const newsletterButtonVariantSchema =
|
|
112077
|
-
"primary",
|
|
112078
|
-
"secondary",
|
|
112079
|
-
"outline"
|
|
112080
|
-
]);
|
|
111709
|
+
const newsletterButtonVariantSchema = blockButtonRoleSchema;
|
|
112081
111710
|
const newsletterFieldSchema = z$1.object({
|
|
112082
111711
|
id: z$1.string(),
|
|
112083
111712
|
type: z$1.enum(["email", "text"]),
|
|
@@ -114963,7 +114592,8 @@ function postExcerpt(className) {
|
|
|
114963
114592
|
function postReadMore() {
|
|
114964
114593
|
return button({
|
|
114965
114594
|
href: { $bind: { from: "post.path" } },
|
|
114966
|
-
className: "rb-self-start"
|
|
114595
|
+
className: "rb-self-start",
|
|
114596
|
+
variantId: "ghost"
|
|
114967
114597
|
}, [text({ as: "span" }, bind$1("content.readMoreText", { fallback: "Read more" }), when("content.readMoreText")), text({
|
|
114968
114598
|
as: "span",
|
|
114969
114599
|
value: "Read more"
|
|
@@ -118234,31 +117864,7 @@ const featureCardsBlockDefinition = { manifest: createBlockManifest({
|
|
|
118234
117864
|
label: "Calls to action",
|
|
118235
117865
|
itemLabel: "CTA",
|
|
118236
117866
|
maxItems: 1,
|
|
118237
|
-
button: {
|
|
118238
|
-
variants: [
|
|
118239
|
-
{
|
|
118240
|
-
value: "primary",
|
|
118241
|
-
label: "Primary"
|
|
118242
|
-
},
|
|
118243
|
-
{
|
|
118244
|
-
value: "secondary",
|
|
118245
|
-
label: "Secondary"
|
|
118246
|
-
},
|
|
118247
|
-
{
|
|
118248
|
-
value: "outline",
|
|
118249
|
-
label: "Outline"
|
|
118250
|
-
},
|
|
118251
|
-
{
|
|
118252
|
-
value: "ghost",
|
|
118253
|
-
label: "Ghost"
|
|
118254
|
-
},
|
|
118255
|
-
{
|
|
118256
|
-
value: "link",
|
|
118257
|
-
label: "Link"
|
|
118258
|
-
}
|
|
118259
|
-
],
|
|
118260
|
-
defaultVariant: "ghost"
|
|
118261
|
-
}
|
|
117867
|
+
button: { defaultVariant: "ghost" }
|
|
118262
117868
|
})
|
|
118263
117869
|
] }
|
|
118264
117870
|
},
|
|
@@ -120372,36 +119978,7 @@ const offeringsPreviewFields = [
|
|
|
120372
119978
|
ui: { intent: "content" },
|
|
120373
119979
|
schema: { fields: groupOverrideFields }
|
|
120374
119980
|
},
|
|
120375
|
-
|
|
120376
|
-
id: "buttonVariant",
|
|
120377
|
-
type: "select",
|
|
120378
|
-
label: "Button style",
|
|
120379
|
-
required: false,
|
|
120380
|
-
multiple: false,
|
|
120381
|
-
defaultValue: "primary",
|
|
120382
|
-
options: [
|
|
120383
|
-
{
|
|
120384
|
-
value: "primary",
|
|
120385
|
-
label: "Primary"
|
|
120386
|
-
},
|
|
120387
|
-
{
|
|
120388
|
-
value: "secondary",
|
|
120389
|
-
label: "Secondary"
|
|
120390
|
-
},
|
|
120391
|
-
{
|
|
120392
|
-
value: "outline",
|
|
120393
|
-
label: "Outline"
|
|
120394
|
-
},
|
|
120395
|
-
{
|
|
120396
|
-
value: "link",
|
|
120397
|
-
label: "Link"
|
|
120398
|
-
}
|
|
120399
|
-
],
|
|
120400
|
-
ui: {
|
|
120401
|
-
intent: "display",
|
|
120402
|
-
widget: "buttonVariant"
|
|
120403
|
-
}
|
|
120404
|
-
},
|
|
119981
|
+
createButtonVariantField(),
|
|
120405
119982
|
{
|
|
120406
119983
|
id: "buttonText",
|
|
120407
119984
|
type: "text",
|
|
@@ -120607,7 +120184,7 @@ function normalizeOfferingsPreviewGroupOverride(value) {
|
|
|
120607
120184
|
return [override];
|
|
120608
120185
|
}
|
|
120609
120186
|
function isButtonVariant(value) {
|
|
120610
|
-
return value ===
|
|
120187
|
+
return value === null || isBlockButtonRole(value);
|
|
120611
120188
|
}
|
|
120612
120189
|
function normalizeCardStylesContent(value) {
|
|
120613
120190
|
return isRecord$3(value) || value === null ? value : void 0;
|
|
@@ -136662,15 +136239,15 @@ function createEditorUiStore(options = {}) {
|
|
|
136662
136239
|
baseline,
|
|
136663
136240
|
current: baseline
|
|
136664
136241
|
});
|
|
136665
|
-
set(
|
|
136242
|
+
set({
|
|
136666
136243
|
drawerOpen: true,
|
|
136667
136244
|
previewSidebarTab: "editor",
|
|
136668
136245
|
previewInspection: {
|
|
136669
136246
|
kind: "linked-entry",
|
|
136670
136247
|
entryId: unsafeAsLinkedContentEntryId(target.entryId),
|
|
136671
|
-
requestId:
|
|
136248
|
+
requestId: nextRequestId++
|
|
136672
136249
|
}
|
|
136673
|
-
})
|
|
136250
|
+
});
|
|
136674
136251
|
if (!changed) triggerUpdate();
|
|
136675
136252
|
},
|
|
136676
136253
|
close: () => {
|
|
@@ -137004,33 +136581,33 @@ function createEditorUiStore(options = {}) {
|
|
|
137004
136581
|
drawerOpen: false,
|
|
137005
136582
|
previewSidebarTab: "editor",
|
|
137006
136583
|
previewInspection: { kind: "none" },
|
|
136584
|
+
previewDesignOpenRequest: null,
|
|
137007
136585
|
activePreviewField: null,
|
|
137008
136586
|
focusRequest: null,
|
|
137009
136587
|
activeBlockId: null,
|
|
137010
136588
|
setDrawerOpen: (open) => set((state) => state.drawerOpen === open ? state : { drawerOpen: open }),
|
|
137011
136589
|
setPreviewSidebarTab: (tab) => set((state) => state.previewSidebarTab === tab ? state : { previewSidebarTab: tab }),
|
|
137012
|
-
|
|
136590
|
+
openPreviewEditor: (intent) => set((state) => {
|
|
136591
|
+
return {
|
|
136592
|
+
drawerOpen: true,
|
|
136593
|
+
previewSidebarTab: "editor",
|
|
136594
|
+
...previewEditorOpenDestination(state.previewInspection, intent, nextRequestId++)
|
|
136595
|
+
};
|
|
136596
|
+
}),
|
|
136597
|
+
consumePreviewDesignOpenRequest: (requestId) => set((state) => state.previewDesignOpenRequest?.requestId === requestId ? { previewDesignOpenRequest: null } : state),
|
|
136598
|
+
inspectBlock: (blockId) => set({
|
|
137013
136599
|
previewInspection: {
|
|
137014
136600
|
kind: "block-customize",
|
|
137015
136601
|
blockId,
|
|
137016
|
-
requestId:
|
|
136602
|
+
requestId: nextRequestId++
|
|
137017
136603
|
},
|
|
137018
136604
|
activeBlockId: blockId
|
|
137019
|
-
})
|
|
137020
|
-
inspectLinkedEntry: (entryId) => set(
|
|
136605
|
+
}),
|
|
136606
|
+
inspectLinkedEntry: (entryId) => set({ previewInspection: {
|
|
137021
136607
|
kind: "linked-entry",
|
|
137022
136608
|
entryId: unsafeAsLinkedContentEntryId(entryId),
|
|
137023
|
-
requestId:
|
|
137024
|
-
} })
|
|
137025
|
-
inspectFooterModule: (moduleId) => set((state) => ({ previewInspection: {
|
|
137026
|
-
kind: "footer-module",
|
|
137027
|
-
moduleId,
|
|
137028
|
-
requestId: state.previewInspection.kind === "footer-module" ? state.previewInspection.requestId + 1 : 1
|
|
137029
|
-
} })),
|
|
137030
|
-
inspectFooter: () => set((state) => ({ previewInspection: {
|
|
137031
|
-
kind: "footer",
|
|
137032
|
-
requestId: state.previewInspection.kind === "footer" ? state.previewInspection.requestId + 1 : 1
|
|
137033
|
-
} })),
|
|
136609
|
+
requestId: nextRequestId++
|
|
136610
|
+
} }),
|
|
137034
136611
|
clearPreviewInspection: () => set((state) => state.previewInspection.kind === "none" ? state : { previewInspection: { kind: "none" } }),
|
|
137035
136612
|
setActivePreviewField: (field) => set((state) => activePreviewFieldsEqual(state.activePreviewField, field) ? state : { activePreviewField: field }),
|
|
137036
136613
|
requestFocus: (payload) => set({ focusRequest: {
|
|
@@ -137115,6 +136692,34 @@ function createEditorUiStore(options = {}) {
|
|
|
137115
136692
|
};
|
|
137116
136693
|
});
|
|
137117
136694
|
}
|
|
136695
|
+
function previewEditorOpenDestination(current, intent, requestId) {
|
|
136696
|
+
switch (intent.kind) {
|
|
136697
|
+
case "design": return {
|
|
136698
|
+
previewInspection: current,
|
|
136699
|
+
previewDesignOpenRequest: {
|
|
136700
|
+
row: intent.row,
|
|
136701
|
+
requestId
|
|
136702
|
+
}
|
|
136703
|
+
};
|
|
136704
|
+
case "footer":
|
|
136705
|
+
if (intent.target === "overview") return {
|
|
136706
|
+
previewInspection: {
|
|
136707
|
+
kind: "footer",
|
|
136708
|
+
requestId
|
|
136709
|
+
},
|
|
136710
|
+
previewDesignOpenRequest: null
|
|
136711
|
+
};
|
|
136712
|
+
return {
|
|
136713
|
+
previewInspection: {
|
|
136714
|
+
kind: "footer-module",
|
|
136715
|
+
moduleId: intent.target.moduleId,
|
|
136716
|
+
requestId
|
|
136717
|
+
},
|
|
136718
|
+
previewDesignOpenRequest: null
|
|
136719
|
+
};
|
|
136720
|
+
default: return assertNever$3(intent, "Unhandled preview editor open intent");
|
|
136721
|
+
}
|
|
136722
|
+
}
|
|
137118
136723
|
const EditorUiStoreContext = createContext(null);
|
|
137119
136724
|
const EditorUiStoreProvider = EditorUiStoreContext.Provider;
|
|
137120
136725
|
function useEditorUiStore(selector) {
|
|
@@ -160438,7 +160043,7 @@ function fieldsForModule(module) {
|
|
|
160438
160043
|
}];
|
|
160439
160044
|
return [...moduleFieldCatalog];
|
|
160440
160045
|
}
|
|
160441
|
-
function FooterComposerPanel({ apiClient, siteId: rawSiteId, customFooterMode, manageLinksHref, manageSettingsHref, legalRegion = "integrated", initialTarget, variant = "full", canEdit = true, onSaved }) {
|
|
160046
|
+
function FooterComposerPanel({ apiClient, siteId: rawSiteId, customFooterMode, manageLinksHref, manageSettingsHref, legalRegion = "integrated", initialTarget, variant = "full", canEdit = true, onSaved, loadingFallback }) {
|
|
160442
160047
|
const siteId = useMemo(() => unsafeAsSiteId(rawSiteId), [rawSiteId]);
|
|
160443
160048
|
const [compositionSnapshot, setCompositionSnapshot] = useState(null);
|
|
160444
160049
|
const [profileSnapshot, setProfileSnapshot] = useState(null);
|
|
@@ -160446,7 +160051,9 @@ function FooterComposerPanel({ apiClient, siteId: rawSiteId, customFooterMode, m
|
|
|
160446
160051
|
const [target, setTarget] = useState(initialTarget ?? { kind: "overview" });
|
|
160447
160052
|
const [saveState, setSaveState] = useState("idle");
|
|
160448
160053
|
const [message, setMessage] = useState(null);
|
|
160054
|
+
const [loadError, setLoadError] = useState(null);
|
|
160449
160055
|
const load = useCallback(async () => {
|
|
160056
|
+
setLoadError(null);
|
|
160450
160057
|
try {
|
|
160451
160058
|
const [composition, profile, navigation] = await Promise.all([
|
|
160452
160059
|
getFooterComposition(apiClient, siteId),
|
|
@@ -160457,7 +160064,7 @@ function FooterComposerPanel({ apiClient, siteId: rawSiteId, customFooterMode, m
|
|
|
160457
160064
|
setProfileSnapshot(profile);
|
|
160458
160065
|
setNavigationMenus(navigation.menus);
|
|
160459
160066
|
} catch (error) {
|
|
160460
|
-
|
|
160067
|
+
setLoadError(error instanceof Error ? error.message : "The footer could not be loaded.");
|
|
160461
160068
|
}
|
|
160462
160069
|
}, [
|
|
160463
160070
|
apiClient,
|
|
@@ -160541,14 +160148,12 @@ function FooterComposerPanel({ apiClient, siteId: rawSiteId, customFooterMode, m
|
|
|
160541
160148
|
profileSnapshot,
|
|
160542
160149
|
siteId
|
|
160543
160150
|
]);
|
|
160544
|
-
if (
|
|
160545
|
-
|
|
160546
|
-
|
|
160547
|
-
});
|
|
160548
|
-
if (compositionSnapshot.kind === "invalid" || profileSnapshot.kind === "invalid") return /* @__PURE__ */ jsx(RecoveryState, {
|
|
160549
|
-
message: "Stored footer data needs repair before it can be edited safely.",
|
|
160550
|
-
onReload: load
|
|
160151
|
+
if (loadError !== null) return /* @__PURE__ */ jsx(LoadFailureState, {
|
|
160152
|
+
message: loadError,
|
|
160153
|
+
onRetry: load
|
|
160551
160154
|
});
|
|
160155
|
+
if (compositionSnapshot === null || profileSnapshot === null || navigationMenus === null) return loadingFallback;
|
|
160156
|
+
if (compositionSnapshot.kind === "invalid" || profileSnapshot.kind === "invalid") return /* @__PURE__ */ jsx(InvalidFooterState, {});
|
|
160552
160157
|
if (compositionSnapshot.kind === "missing") return /* @__PURE__ */ jsx(MissingFooter, {
|
|
160553
160158
|
canEdit,
|
|
160554
160159
|
onCreate: async () => {
|
|
@@ -161315,13 +160920,13 @@ function MissingFooter({ onCreate, canEdit }) {
|
|
|
161315
160920
|
]
|
|
161316
160921
|
});
|
|
161317
160922
|
}
|
|
161318
|
-
function
|
|
160923
|
+
function LoadFailureState({ message, onRetry }) {
|
|
161319
160924
|
return /* @__PURE__ */ jsxs("div", {
|
|
161320
160925
|
className: "space-y-4 rounded-xl border p-6",
|
|
161321
160926
|
children: [
|
|
161322
160927
|
/* @__PURE__ */ jsx("h1", {
|
|
161323
160928
|
className: "text-xl font-semibold",
|
|
161324
|
-
children: "
|
|
160929
|
+
children: "The footer could not be loaded"
|
|
161325
160930
|
}),
|
|
161326
160931
|
/* @__PURE__ */ jsx("p", {
|
|
161327
160932
|
className: "text-sm text-muted-foreground",
|
|
@@ -161330,12 +160935,24 @@ function RecoveryState({ message, onReload }) {
|
|
|
161330
160935
|
/* @__PURE__ */ jsx("button", {
|
|
161331
160936
|
type: "button",
|
|
161332
160937
|
className: buttonClass,
|
|
161333
|
-
onClick: () => void
|
|
161334
|
-
children: "
|
|
160938
|
+
onClick: () => void onRetry(),
|
|
160939
|
+
children: "Try again"
|
|
161335
160940
|
})
|
|
161336
160941
|
]
|
|
161337
160942
|
});
|
|
161338
160943
|
}
|
|
160944
|
+
function InvalidFooterState() {
|
|
160945
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
160946
|
+
className: "space-y-3 rounded-xl border p-6",
|
|
160947
|
+
children: [/* @__PURE__ */ jsx("h1", {
|
|
160948
|
+
className: "text-xl font-semibold",
|
|
160949
|
+
children: "Footer needs updating"
|
|
160950
|
+
}), /* @__PURE__ */ jsx("p", {
|
|
160951
|
+
className: "text-sm text-muted-foreground",
|
|
160952
|
+
children: "This footer's saved data needs updating before it can be edited."
|
|
160953
|
+
})]
|
|
160954
|
+
});
|
|
160955
|
+
}
|
|
161339
160956
|
//#endregion
|
|
161340
160957
|
//#region ../preview-next/src/client/preview/assistantAvailability.ts
|
|
161341
160958
|
process.env.NEXT_PUBLIC_E2E_ENABLE_PREVIEW_ASSISTANT;
|
|
@@ -161542,6 +161159,18 @@ function assertNever$2(value, message) {
|
|
|
161542
161159
|
}
|
|
161543
161160
|
//#endregion
|
|
161544
161161
|
//#region ../preview-next/src/client/preview/StyleConfigurator.state.ts
|
|
161162
|
+
/**
|
|
161163
|
+
* Pure state module for the Style configurator. Per-action function style so
|
|
161164
|
+
* the picker rows, apply flow, and concurrency layer can call into a small,
|
|
161165
|
+
* exhaustive set of named transitions instead of a centralised reducer
|
|
161166
|
+
* switch.
|
|
161167
|
+
*
|
|
161168
|
+
* The configurator surfaces three site-level decisions (site style, button
|
|
161169
|
+
* button style, palette state). The
|
|
161170
|
+
* "base" snapshot is what the server has persisted; "previewed" is what the
|
|
161171
|
+
* preview pane is currently rendering. They diverge while the user is
|
|
161172
|
+
* picking and converge on apply-success.
|
|
161173
|
+
*/
|
|
161545
161174
|
const STYLE_CONFIGURATOR_TARGET_KEY = "design:site-style";
|
|
161546
161175
|
function createStyleConfiguratorState(base) {
|
|
161547
161176
|
return {
|
|
@@ -161602,10 +161231,10 @@ function previewSiteStyle(state, siteStyleId) {
|
|
|
161602
161231
|
siteStyleId
|
|
161603
161232
|
});
|
|
161604
161233
|
}
|
|
161605
|
-
function
|
|
161234
|
+
function previewButtonStyle(state, buttonStyleSelection) {
|
|
161606
161235
|
return withPreviewedSelection(state, {
|
|
161607
161236
|
...state.previewed,
|
|
161608
|
-
|
|
161237
|
+
buttonStyleSelection
|
|
161609
161238
|
});
|
|
161610
161239
|
}
|
|
161611
161240
|
function previewHeaderLayout(state, headerLayoutId) {
|
|
@@ -161719,7 +161348,7 @@ function setPaletteColors(state, colors) {
|
|
|
161719
161348
|
/**
|
|
161720
161349
|
* Records the post-compile resolved selection + any fallback warnings.
|
|
161721
161350
|
* Used after `compileSiteThemeFromSelections` runs against a new site style:
|
|
161722
|
-
* the resolver may have auto-picked a different
|
|
161351
|
+
* the resolver may have auto-picked a different button style if the user's
|
|
161723
161352
|
* previous selection is not offered for the new style, or a different palette
|
|
161724
161353
|
* if the persisted palette value key is no longer known.
|
|
161725
161354
|
*
|
|
@@ -161728,7 +161357,7 @@ function applyResolvedSelections(state, input) {
|
|
|
161728
161357
|
return {
|
|
161729
161358
|
...withPreviewedSelection(state, {
|
|
161730
161359
|
...state.previewed,
|
|
161731
|
-
|
|
161360
|
+
buttonStyleSelection: input.resolved.buttonStyleSelection,
|
|
161732
161361
|
headerLayoutId: input.resolved.headerLayoutId,
|
|
161733
161362
|
headerStyleId: input.resolved.headerStyleId,
|
|
161734
161363
|
headerLookId: input.resolved.headerLookId,
|
|
@@ -162070,7 +161699,7 @@ function createStyleConfiguratorHistoryEntry(previous, next) {
|
|
|
162070
161699
|
};
|
|
162071
161700
|
}
|
|
162072
161701
|
function selectionSnapshotsEqual(a, b) {
|
|
162073
|
-
return a.siteStyleId === b.siteStyleId && a.selectionVersion === b.selectionVersion && a.selectionUpdatedAt === b.selectionUpdatedAt && a.headerLayoutId === b.headerLayoutId && a.headerStyleId === b.headerStyleId && a.headerLookId === b.headerLookId && a.footerLookId === b.footerLookId && a.
|
|
161702
|
+
return a.siteStyleId === b.siteStyleId && a.selectionVersion === b.selectionVersion && a.selectionUpdatedAt === b.selectionUpdatedAt && a.headerLayoutId === b.headerLayoutId && a.headerStyleId === b.headerStyleId && a.headerLookId === b.headerLookId && a.footerLookId === b.footerLookId && buttonStyleSelectionsEqual(a.buttonStyleSelection, b.buttonStyleSelection) && paletteSelectionSnapshotsEqual(a.palette, b.palette) && typographyObjectsEqual(a.typography, b.typography);
|
|
162074
161703
|
}
|
|
162075
161704
|
function patchTypography(typography, patch) {
|
|
162076
161705
|
switch (patch.kind) {
|
|
@@ -162608,15 +162237,14 @@ function planSiteStylePreviewChange(input) {
|
|
|
162608
162237
|
const resolvedPalette = resolvedPaletteForPreview(input.selection.palette, input.siteStyle);
|
|
162609
162238
|
const compiled = compileSiteThemeFromSelections({
|
|
162610
162239
|
siteStyle: input.siteStyle,
|
|
162611
|
-
|
|
162240
|
+
buttonStyleSelection: input.selection.buttonStyleSelection,
|
|
162612
162241
|
resolvedPalette,
|
|
162613
162242
|
typography: input.selection.typography,
|
|
162614
162243
|
headerLayoutId: input.selection.headerLayoutId,
|
|
162615
162244
|
headerStyleId: input.selection.headerStyleId,
|
|
162616
162245
|
headerLookId: input.selection.headerLookId,
|
|
162617
162246
|
footerLookId: input.selection.footerLookId,
|
|
162618
|
-
headerSelectionContext: input.headerSelectionContext
|
|
162619
|
-
footerSelectionContext: input.footerSelectionContext
|
|
162247
|
+
headerSelectionContext: input.headerSelectionContext
|
|
162620
162248
|
});
|
|
162621
162249
|
return {
|
|
162622
162250
|
themeOverlay: compiled.theme,
|
|
@@ -162680,21 +162308,18 @@ function assertNever(value) {
|
|
|
162680
162308
|
//#region ../preview-next/src/client/preview/siteChromeLookRows.ts
|
|
162681
162309
|
function buildSiteChromeLookModels(input) {
|
|
162682
162310
|
const selection = input.state.previewed;
|
|
162683
|
-
const
|
|
162311
|
+
const current = compileSiteThemeFromSelections({
|
|
162684
162312
|
siteStyle: input.siteStyle,
|
|
162685
|
-
|
|
162313
|
+
buttonStyleSelection: selection.buttonStyleSelection,
|
|
162686
162314
|
resolvedPalette: resolvedPaletteForPreview(selection.palette, input.siteStyle),
|
|
162687
162315
|
headerLayoutId: selection.headerLayoutId,
|
|
162688
162316
|
headerStyleId: selection.headerStyleId,
|
|
162689
162317
|
headerLookId: selection.headerLookId,
|
|
162690
162318
|
footerLookId: selection.footerLookId,
|
|
162691
|
-
headerSelectionContext: input.headerSelectionContext
|
|
162692
|
-
|
|
162693
|
-
};
|
|
162694
|
-
const current = compileSiteThemeFromSelections(common);
|
|
162319
|
+
headerSelectionContext: input.headerSelectionContext
|
|
162320
|
+
});
|
|
162695
162321
|
const renderedHeaderLayoutId = current.resolvedSelections.headerLayoutId;
|
|
162696
162322
|
const renderedHeaderStyleId = current.resolvedSelections.headerStyleId;
|
|
162697
|
-
const renderedFooterLayoutId = current.footerSelection.selectedLook.layoutId;
|
|
162698
162323
|
return {
|
|
162699
162324
|
headerLayout: {
|
|
162700
162325
|
renderedLayoutId: renderedHeaderLayoutId,
|
|
@@ -162720,10 +162345,6 @@ function buildSiteChromeLookModels(input) {
|
|
|
162720
162345
|
};
|
|
162721
162346
|
})
|
|
162722
162347
|
},
|
|
162723
|
-
footerLayout: {
|
|
162724
|
-
renderedLayoutId: renderedFooterLayoutId,
|
|
162725
|
-
options: footerLayoutOptions(common)
|
|
162726
|
-
},
|
|
162727
162348
|
footer: {
|
|
162728
162349
|
renderedLookId: current.resolvedSelections.footerLookId,
|
|
162729
162350
|
options: [{
|
|
@@ -162731,51 +162352,18 @@ function buildSiteChromeLookModels(input) {
|
|
|
162731
162352
|
label: "Site style default",
|
|
162732
162353
|
description: "Use the footer chosen for this site style.",
|
|
162733
162354
|
available: true
|
|
162734
|
-
}, ...footerLookCatalog.
|
|
162735
|
-
const rejected = compileSiteThemeFromSelections({
|
|
162736
|
-
...common,
|
|
162737
|
-
footerLookId: look.id
|
|
162738
|
-
}).footerSelection.rejected.find((item) => item.lookId === look.id);
|
|
162739
|
-
const style = getFooterStyle(look.styleId);
|
|
162355
|
+
}, ...footerLookCatalog.map((look) => {
|
|
162740
162356
|
return {
|
|
162741
162357
|
id: look.id,
|
|
162742
|
-
label:
|
|
162743
|
-
description:
|
|
162744
|
-
available:
|
|
162358
|
+
label: look.label,
|
|
162359
|
+
description: look.description,
|
|
162360
|
+
available: true
|
|
162745
162361
|
};
|
|
162746
162362
|
})],
|
|
162747
|
-
diagnostics:
|
|
162363
|
+
diagnostics: []
|
|
162748
162364
|
}
|
|
162749
162365
|
};
|
|
162750
162366
|
}
|
|
162751
|
-
function footerLayoutOptions(common) {
|
|
162752
|
-
return footerLayoutCatalog.map((layout) => {
|
|
162753
|
-
const availability = visibleFooterLooksForLayout(layout.id).map((look) => footerLookAvailability(common, look.id));
|
|
162754
|
-
const firstRejected = availability.find((item) => item.rejected)?.rejected;
|
|
162755
|
-
const hasAvailableStyle = availability.some((item) => !item.rejected);
|
|
162756
|
-
return {
|
|
162757
|
-
id: layout.id,
|
|
162758
|
-
label: layout.label,
|
|
162759
|
-
description: hasAvailableStyle ? layout.description : firstRejected?.reasons.map(footerLookRejectionReasonLabel).join(" "),
|
|
162760
|
-
available: hasAvailableStyle
|
|
162761
|
-
};
|
|
162762
|
-
});
|
|
162763
|
-
}
|
|
162764
|
-
function visibleFooterLooksForLayout(layoutId) {
|
|
162765
|
-
return footerLookCatalog.filter((look) => look.layoutId === layoutId && !footerLookHiddenFromLayoutStyleControls(look));
|
|
162766
|
-
}
|
|
162767
|
-
function footerLookHiddenFromLayoutStyleControls(look) {
|
|
162768
|
-
return look.hiddenFromLayoutStyleControls === true;
|
|
162769
|
-
}
|
|
162770
|
-
function footerLookAvailability(common, footerLookId) {
|
|
162771
|
-
return {
|
|
162772
|
-
footerLookId,
|
|
162773
|
-
rejected: compileSiteThemeFromSelections({
|
|
162774
|
-
...common,
|
|
162775
|
-
footerLookId
|
|
162776
|
-
}).footerSelection.rejected.find((item) => item.lookId === footerLookId)
|
|
162777
|
-
};
|
|
162778
|
-
}
|
|
162779
162367
|
function cycleSiteChromeLookId(options, currentId, direction) {
|
|
162780
162368
|
const cycleable = cycleableSiteChromeOptions(options);
|
|
162781
162369
|
if (cycleable.length <= 1) return void 0;
|
|
@@ -162822,17 +162410,6 @@ function planSiteChromeLookSelection(command) {
|
|
|
162822
162410
|
next: { footerLookId: command.lookId }
|
|
162823
162411
|
};
|
|
162824
162412
|
}
|
|
162825
|
-
function planSiteChromeFooterLayoutSelection(command) {
|
|
162826
|
-
const currentStyleId = footerLookCatalog.find((look) => look.id === command.currentLookId)?.styleId ?? null;
|
|
162827
|
-
return (currentStyleId ? findFooterLookForLayoutStyle({
|
|
162828
|
-
layoutId: command.layoutId,
|
|
162829
|
-
styleId: currentStyleId
|
|
162830
|
-
}) : null)?.id ?? findDefaultFooterLookForLayout(command.layoutId)?.id;
|
|
162831
|
-
}
|
|
162832
|
-
function diagnosticsForRequestedFooterSelection(requestedLookId, renderedLookId, rejected) {
|
|
162833
|
-
if (!requestedLookId || requestedLookId === renderedLookId) return [];
|
|
162834
|
-
return rejected.find((item) => item.lookId === requestedLookId)?.reasons.map(footerLookRejectionReasonLabel) ?? [];
|
|
162835
|
-
}
|
|
162836
162413
|
//#endregion
|
|
162837
162414
|
//#region ../preview-next/src/client/preview/previewErrorMessages.ts
|
|
162838
162415
|
const PREVIEW_DESIGN_SAVE_ERROR_MESSAGE = "We couldn’t save that change just now. Please try again in a minute or two.";
|
|
@@ -162861,7 +162438,7 @@ function resolveStyleConfiguratorInitialSnapshot(input) {
|
|
|
162861
162438
|
} : paletteSelectionSnapshotFromRuntime(runtimePaletteState);
|
|
162862
162439
|
const compiled = compileSiteThemeFromSelections({
|
|
162863
162440
|
siteStyle,
|
|
162864
|
-
|
|
162441
|
+
buttonStyleSelection: input.initialSelections.buttonStyleSelection,
|
|
162865
162442
|
resolvedPalette: resolvedRuntimePalette?.ok ? resolvedRuntimePalette.resolved : resolvedPaletteForPreview(palette, siteStyle),
|
|
162866
162443
|
typography: input.theme?.typography ?? siteStyle.typography,
|
|
162867
162444
|
...sharedSelectionInputs(input)
|
|
@@ -162874,7 +162451,7 @@ function resolveStyleConfiguratorInitialSnapshot(input) {
|
|
|
162874
162451
|
headerStyleId: compiled.resolvedSelections.headerStyleId,
|
|
162875
162452
|
headerLookId: compiled.requestedSelections.headerLookId,
|
|
162876
162453
|
footerLookId: compiled.requestedSelections.footerLookId,
|
|
162877
|
-
|
|
162454
|
+
buttonStyleSelection: compiled.resolvedSelections.buttonStyleSelection,
|
|
162878
162455
|
palette,
|
|
162879
162456
|
typography: compiled.theme.typography
|
|
162880
162457
|
};
|
|
@@ -162885,8 +162462,7 @@ function sharedSelectionInputs(input) {
|
|
|
162885
162462
|
headerStyleId: input.initialSelections.headerStyleId ?? null,
|
|
162886
162463
|
headerLookId: input.initialSelections.headerLookId ?? null,
|
|
162887
162464
|
footerLookId: input.initialSelections.footerLookId ?? null,
|
|
162888
|
-
headerSelectionContext: input.headerSelectionContext
|
|
162889
|
-
footerSelectionContext: input.footerSelectionContext
|
|
162465
|
+
headerSelectionContext: input.headerSelectionContext
|
|
162890
162466
|
};
|
|
162891
162467
|
}
|
|
162892
162468
|
//#endregion
|
|
@@ -163021,13 +162597,12 @@ function hasLogoInHeaderSelectionContext(context) {
|
|
|
163021
162597
|
}
|
|
163022
162598
|
//#endregion
|
|
163023
162599
|
//#region ../preview-next/src/client/preview/siteChromeSavePlan.ts
|
|
163024
|
-
function buildSiteChromeSavePlan({ surface, siteStyle, selection, baseTheme, headerSelectionContext,
|
|
162600
|
+
function buildSiteChromeSavePlan({ surface, siteStyle, selection, baseTheme, headerSelectionContext, headerBrandPreferences, headerNavPreferences, backgroundPreferences, themeId, selectionId, baseSelectionUpdatedAt }) {
|
|
163025
162601
|
const compiled = planSiteStylePreviewChange({
|
|
163026
162602
|
siteStyle,
|
|
163027
162603
|
selection,
|
|
163028
162604
|
baseTheme,
|
|
163029
|
-
headerSelectionContext: withHeaderBrandPreferences(headerSelectionContext, headerBrandPreferences)
|
|
163030
|
-
footerSelectionContext
|
|
162605
|
+
headerSelectionContext: withHeaderBrandPreferences(headerSelectionContext, headerBrandPreferences)
|
|
163031
162606
|
});
|
|
163032
162607
|
const themeOverlay = applySiteChromeBackgroundPreferences(withHeaderNavThemePreferences(withHeaderBrandThemePreferences(compiled.themeOverlay, headerBrandPreferences), headerNavPreferences), backgroundPreferences);
|
|
163033
162608
|
return {
|
|
@@ -163088,9 +162663,9 @@ function buildApplySiteStyleSelectionBody(input) {
|
|
|
163088
162663
|
kind: "set-site-style",
|
|
163089
162664
|
siteStyleId: input.previewed.siteStyleId
|
|
163090
162665
|
});
|
|
163091
|
-
if (styleChanged || input.base.
|
|
163092
|
-
kind: "set-button-
|
|
163093
|
-
|
|
162666
|
+
if (styleChanged || !buttonStyleSelectionsEqual(input.base.buttonStyleSelection, input.previewed.buttonStyleSelection)) changes.push({
|
|
162667
|
+
kind: "set-button-style",
|
|
162668
|
+
buttonStyleSelection: input.previewed.buttonStyleSelection
|
|
163094
162669
|
});
|
|
163095
162670
|
if (styleChanged || !paletteSelectionSnapshotsEqual(input.base.palette, input.previewed.palette)) {
|
|
163096
162671
|
const palettePlan = planPaletteApplyCommand(input);
|
|
@@ -163139,7 +162714,7 @@ function selectionSnapshotFromApplySiteStyleSelectionResponse(saved, fallback) {
|
|
|
163139
162714
|
siteStyleId: saved.siteStyleId,
|
|
163140
162715
|
selectionVersion: saved.selectionVersion,
|
|
163141
162716
|
selectionUpdatedAt: saved.selectionUpdatedAt ?? fallback.selectionUpdatedAt ?? null,
|
|
163142
|
-
|
|
162717
|
+
buttonStyleSelection: saved.buttonStyleSelection,
|
|
163143
162718
|
palette: paletteSnapshotFromApplyResponse(saved),
|
|
163144
162719
|
typography: saved.theme.typography,
|
|
163145
162720
|
headerLookId: saved.headerLookId,
|
|
@@ -163463,22 +163038,14 @@ function quickControlHistoryEntryFromSelectionChange(previous, next, target) {
|
|
|
163463
163038
|
next: nextHeader
|
|
163464
163039
|
};
|
|
163465
163040
|
}
|
|
163466
|
-
case "footer-
|
|
163467
|
-
|
|
163041
|
+
case "footer-look": return previous.footerLookId === next.footerLookId ? null : {
|
|
163042
|
+
kind: "footer-look",
|
|
163043
|
+
previous: previous.footerLookId,
|
|
163044
|
+
next: next.footerLookId
|
|
163045
|
+
};
|
|
163468
163046
|
default: return assertNever$8(target, "Unhandled site chrome quick-control target");
|
|
163469
163047
|
}
|
|
163470
163048
|
}
|
|
163471
|
-
function footerHistoryEntryForTarget(target, previous, next) {
|
|
163472
|
-
return target === "footer-layout" ? {
|
|
163473
|
-
kind: "footer-layout",
|
|
163474
|
-
previous,
|
|
163475
|
-
next
|
|
163476
|
-
} : {
|
|
163477
|
-
kind: "footer-look",
|
|
163478
|
-
previous,
|
|
163479
|
-
next
|
|
163480
|
-
};
|
|
163481
|
-
}
|
|
163482
163049
|
function quickControlHistoryEntryFromBrandPreferenceChange(previous, next, target) {
|
|
163483
163050
|
switch (target) {
|
|
163484
163051
|
case "header-brand-display": return previous.brandDisplay === next.brandDisplay ? null : {
|
|
@@ -163667,7 +163234,6 @@ function quickControlReplayPlanForEntry(current, entry, command) {
|
|
|
163667
163234
|
}
|
|
163668
163235
|
};
|
|
163669
163236
|
}
|
|
163670
|
-
case "footer-layout":
|
|
163671
163237
|
case "footer-look": return {
|
|
163672
163238
|
kind: "selection",
|
|
163673
163239
|
surface: "footer",
|
|
@@ -163763,7 +163329,6 @@ function siteChromeQuickControlHistoryEntryEquals(left, right) {
|
|
|
163763
163329
|
switch (left.kind) {
|
|
163764
163330
|
case "header-layout": return right.kind === left.kind && headerLayoutSelectionsEqual(left.previous, right.previous) && headerLayoutSelectionsEqual(left.next, right.next);
|
|
163765
163331
|
case "header-style": return right.kind === left.kind && headerStyleSelectionsEqual(left.previous, right.previous) && headerStyleSelectionsEqual(left.next, right.next);
|
|
163766
|
-
case "footer-layout":
|
|
163767
163332
|
case "footer-look":
|
|
163768
163333
|
case "header-brand-display":
|
|
163769
163334
|
case "header-logo-size":
|
|
@@ -163789,7 +163354,7 @@ function headerStyleSelectionsEqual(left, right) {
|
|
|
163789
163354
|
//#endregion
|
|
163790
163355
|
//#region ../preview-next/src/client/preview/SiteChromeCustomizeContext.tsx
|
|
163791
163356
|
const SiteChromeCustomizeContext = createContext(null);
|
|
163792
|
-
function SiteChromeCustomizeProvider({ children, siteId, apiClient, theme, themeId = null, selectionId = null, selectionVersion = null, selectionUpdatedAt = null, initialSelections, headerSelectionContext,
|
|
163357
|
+
function SiteChromeCustomizeProvider({ children, siteId, apiClient, theme, themeId = null, selectionId = null, selectionVersion = null, selectionUpdatedAt = null, initialSelections, headerSelectionContext, siteStyleAccess = { kind: "hidden" }, canOpenDesignEditor = false }) {
|
|
163793
163358
|
const previewDesign = usePreviewDesignCoordinator();
|
|
163794
163359
|
const previewDesignHistoryOrder = usePreviewDesignHistoryOrder();
|
|
163795
163360
|
const { clearPreview, previewTheme } = previewDesign;
|
|
@@ -163811,10 +163376,8 @@ function SiteChromeCustomizeProvider({ children, siteId, apiClient, theme, theme
|
|
|
163811
163376
|
selectionVersion: initialSelectionVersion,
|
|
163812
163377
|
selectionUpdatedAt: initialSelections.selectionUpdatedAt ?? selectionUpdatedAt ?? null
|
|
163813
163378
|
},
|
|
163814
|
-
headerSelectionContext
|
|
163815
|
-
footerSelectionContext
|
|
163379
|
+
headerSelectionContext
|
|
163816
163380
|
}), [
|
|
163817
|
-
footerSelectionContext,
|
|
163818
163381
|
headerSelectionContext,
|
|
163819
163382
|
initialSelectionVersion,
|
|
163820
163383
|
initialSelections,
|
|
@@ -163924,11 +163487,9 @@ function SiteChromeCustomizeProvider({ children, siteId, apiClient, theme, theme
|
|
|
163924
163487
|
return buildSiteChromeLookModels({
|
|
163925
163488
|
state,
|
|
163926
163489
|
siteStyle,
|
|
163927
|
-
headerSelectionContext: withHeaderBrandPreferences(headerSelectionContext, headerBrandControlState.preferences)
|
|
163928
|
-
footerSelectionContext
|
|
163490
|
+
headerSelectionContext: withHeaderBrandPreferences(headerSelectionContext, headerBrandControlState.preferences)
|
|
163929
163491
|
});
|
|
163930
163492
|
}, [
|
|
163931
|
-
footerSelectionContext,
|
|
163932
163493
|
headerBrandControlState.preferences,
|
|
163933
163494
|
headerSelectionContext,
|
|
163934
163495
|
state
|
|
@@ -163970,16 +163531,12 @@ function SiteChromeCustomizeProvider({ children, siteId, apiClient, theme, theme
|
|
|
163970
163531
|
const currentId = state.previewed.footerLookId;
|
|
163971
163532
|
const selected = lookModels.footer.options.find((option) => option.id === currentId);
|
|
163972
163533
|
const rendered = lookModels.footer.options.find((option) => option.id === lookModels.footer.renderedLookId);
|
|
163973
|
-
const renderedLayout = lookModels.footerLayout.options.find((option) => option.id === lookModels.footerLayout.renderedLayoutId);
|
|
163974
163534
|
return {
|
|
163975
163535
|
kind: "available",
|
|
163976
163536
|
surface: "footer",
|
|
163977
163537
|
label: "Footer",
|
|
163978
|
-
currentLayoutId: lookModels.footerLayout.renderedLayoutId,
|
|
163979
|
-
currentLayoutLabel: renderedLayout?.label ?? "Unknown Layout",
|
|
163980
|
-
layoutOptions: lookModels.footerLayout.options,
|
|
163981
163538
|
currentId,
|
|
163982
|
-
currentLabel: selected?.label ?? (currentId ? "Unknown
|
|
163539
|
+
currentLabel: selected?.label ?? (currentId ? "Unknown link treatment" : `${rendered?.label ?? "Site style"} (default)`),
|
|
163983
163540
|
options: lookModels.footer.options,
|
|
163984
163541
|
diagnostics: lookModels.footer.diagnostics,
|
|
163985
163542
|
background: backgroundControlState(backgroundPreferences.footer, true),
|
|
@@ -164016,7 +163573,6 @@ function SiteChromeCustomizeProvider({ children, siteId, apiClient, theme, theme
|
|
|
164016
163573
|
selection,
|
|
164017
163574
|
baseTheme: currentThemeRef.current ?? theme,
|
|
164018
163575
|
headerSelectionContext,
|
|
164019
|
-
footerSelectionContext,
|
|
164020
163576
|
headerBrandPreferences,
|
|
164021
163577
|
headerNavPreferences,
|
|
164022
163578
|
backgroundPreferences: nextBackgroundPreferences,
|
|
@@ -164148,7 +163704,6 @@ function SiteChromeCustomizeProvider({ children, siteId, apiClient, theme, theme
|
|
|
164148
163704
|
return outcome;
|
|
164149
163705
|
}, [
|
|
164150
163706
|
apiClient,
|
|
164151
|
-
footerSelectionContext,
|
|
164152
163707
|
headerSelectionContext,
|
|
164153
163708
|
previewDesignHistoryOrder,
|
|
164154
163709
|
previewTheme,
|
|
@@ -164221,21 +163776,6 @@ function SiteChromeCustomizeProvider({ children, siteId, apiClient, theme, theme
|
|
|
164221
163776
|
if (!current) return;
|
|
164222
163777
|
persistSelection("footer", previewFooterLook(current, planFooterLookSelection(lookId)).previewed, "footer-look");
|
|
164223
163778
|
}, [applyAllowed, persistSelection]);
|
|
164224
|
-
const selectFooterLayout = useCallback((layoutId) => {
|
|
164225
|
-
if (!applyAllowed) return;
|
|
164226
|
-
const current = stateRef.current;
|
|
164227
|
-
if (!current || !lookModels) return;
|
|
164228
|
-
const nextLookId = planSiteChromeFooterLayoutSelection({
|
|
164229
|
-
layoutId,
|
|
164230
|
-
currentLookId: current.previewed.footerLookId ?? lookModels.footer.renderedLookId
|
|
164231
|
-
});
|
|
164232
|
-
if (!nextLookId) return;
|
|
164233
|
-
persistSelection("footer", previewFooterLook(current, nextLookId).previewed, "footer-layout");
|
|
164234
|
-
}, [
|
|
164235
|
-
applyAllowed,
|
|
164236
|
-
lookModels,
|
|
164237
|
-
persistSelection
|
|
164238
|
-
]);
|
|
164239
163779
|
const cycleSurfaceLook = useCallback((surface, direction) => {
|
|
164240
163780
|
const currentState = getSurfaceState(surface);
|
|
164241
163781
|
if (currentState.kind !== "available") return;
|
|
@@ -164251,29 +163791,13 @@ function SiteChromeCustomizeProvider({ children, siteId, apiClient, theme, theme
|
|
|
164251
163791
|
selectFooterLook,
|
|
164252
163792
|
selectHeaderStyle
|
|
164253
163793
|
]);
|
|
164254
|
-
const
|
|
164255
|
-
const currentState = getSurfaceState(
|
|
164256
|
-
if (currentState.kind !== "available") return;
|
|
164257
|
-
|
|
164258
|
-
|
|
164259
|
-
|
|
164260
|
-
|
|
164261
|
-
selectHeaderLayout(next);
|
|
164262
|
-
return;
|
|
164263
|
-
}
|
|
164264
|
-
case "footer": {
|
|
164265
|
-
const next = cycleSiteChromeLookId(currentState.layoutOptions, currentState.currentLayoutId, direction);
|
|
164266
|
-
if (next === void 0 || next === null) return;
|
|
164267
|
-
selectFooterLayout(next);
|
|
164268
|
-
return;
|
|
164269
|
-
}
|
|
164270
|
-
default: return assertNever$8(currentState, "Unhandled site chrome customize surface state");
|
|
164271
|
-
}
|
|
164272
|
-
}, [
|
|
164273
|
-
getSurfaceState,
|
|
164274
|
-
selectFooterLayout,
|
|
164275
|
-
selectHeaderLayout
|
|
164276
|
-
]);
|
|
163794
|
+
const cycleHeaderLayout = useCallback((direction) => {
|
|
163795
|
+
const currentState = getSurfaceState("header");
|
|
163796
|
+
if (currentState.kind !== "available" || currentState.surface !== "header") return;
|
|
163797
|
+
const next = cycleSiteChromeLookId(currentState.layoutOptions, currentState.currentLayoutId, direction);
|
|
163798
|
+
if (next === void 0 || next === null) return;
|
|
163799
|
+
selectHeaderLayout(next);
|
|
163800
|
+
}, [getSurfaceState, selectHeaderLayout]);
|
|
164277
163801
|
const setHeaderBrandDisplay = useCallback((brandDisplay) => {
|
|
164278
163802
|
if (brandDisplay === "logo-only" && headerBrandControlState.kind === "no-logo") return;
|
|
164279
163803
|
persistHeaderBrandPreferences({
|
|
@@ -164412,9 +163936,10 @@ function SiteChromeCustomizeProvider({ children, siteId, apiClient, theme, theme
|
|
|
164412
163936
|
historyFailure: siteChromeQuickControlHistoryFailureMessage(quickControlHistory)
|
|
164413
163937
|
}), [applyQuickControlHistoryMutation, quickControlHistory]);
|
|
164414
163938
|
const value = useMemo(() => ({
|
|
163939
|
+
canOpenDesignEditor,
|
|
164415
163940
|
getSurfaceState,
|
|
164416
163941
|
cycleSurfaceLook,
|
|
164417
|
-
|
|
163942
|
+
cycleHeaderLayout,
|
|
164418
163943
|
setHeaderBrandDisplay,
|
|
164419
163944
|
setHeaderLogoSize,
|
|
164420
163945
|
setHeaderMenuFont,
|
|
@@ -164424,7 +163949,8 @@ function SiteChromeCustomizeProvider({ children, siteId, apiClient, theme, theme
|
|
|
164424
163949
|
siteStyleHistory: siteStyleHistoryController,
|
|
164425
163950
|
quickControlHistory: quickControlHistoryController
|
|
164426
163951
|
}), [
|
|
164427
|
-
|
|
163952
|
+
cycleHeaderLayout,
|
|
163953
|
+
canOpenDesignEditor,
|
|
164428
163954
|
cycleSurfaceLook,
|
|
164429
163955
|
chooseSurfaceBackground,
|
|
164430
163956
|
getSurfaceState,
|
|
@@ -164511,7 +164037,7 @@ function selectionSnapshotFromSiteChromeSaveResponse({ saved, fallback, savePlan
|
|
|
164511
164037
|
siteStyleId: fallback.siteStyleId,
|
|
164512
164038
|
selectionVersion: fallback.selectionVersion,
|
|
164513
164039
|
selectionUpdatedAt: saved.selectionUpdatedAt ?? fallback.selectionUpdatedAt ?? null,
|
|
164514
|
-
|
|
164040
|
+
buttonStyleSelection: savePlan.compiled.resolvedSelections.buttonStyleSelection,
|
|
164515
164041
|
palette: fallback.palette,
|
|
164516
164042
|
typography: savePlan.themeOverlay.typography,
|
|
164517
164043
|
headerLookId: saved.headerLookId ?? fallback.headerLookId,
|
|
@@ -164546,4 +164072,4 @@ function useSiteChromeCustomizeOptional() {
|
|
|
164546
164072
|
return useContext(SiteChromeCustomizeContext);
|
|
164547
164073
|
}
|
|
164548
164074
|
//#endregion
|
|
164549
|
-
export { beginAutosaveBatch as $, eventPageSizeSchema as $a, getImageUrl as $c, SlidersHorizontal as $d, NAV_LINK_PADDING_X_MAP as $i, Popover as $l, useImageResolveContextOptional as $n, resolveEventLinkProps as $o, headingFragment as $r, resolveIconPickerPreset as $s, evaluateVisibility as $t, cva as $u, deriveStyleConfiguratorCapabilities as A, paletteColorsEqual as Aa, XIcon as Ac, parseMediaAssetId as Ad, CirclePlus as Af, formatSiteChromeBackgroundTokenLabel as Ai, useBlockContext as Al, CSS$1 as An, normalizeEventVenueId as Ao, checkoutBlockDefinition as Ar, getFeatureCardIconCompletion as As, canUndoHistory as At, Surface as Au, previewButtonPersonality as B, buildOfferingsPreviewRenderStates as Ba, resolveMediaNodeResponsiveImage as Bc, err as Bd, ArrowUp as Bf, designRuntimeRulesForTheme as Bi, TooltipContent as Bl, siteHeaderManifest as Bn, normalizeLocationMapProps as Bo, buildProductDetailDisplay as Br, resolveBlockIconRenderValue as Bs, createSnapshotFromPageRecord as Bt, __generator as Bu, usePreviewThemeOverlay as C, foregroundTokenForBackgroundAppearanceColorToken as Ca, MapPinIcon as Cc, publicEventPricingMode as Cd, Eye as Cf, BACKGROUND_POSITION_PRESET_VALUES as Ci, surfaceForegroundDeclarations as Cl, closestCenter as Cn, eventSurfaceScopeValues as Co, getWizardStepsForContext as Cr, ICON_CONFIG as Cs, useEntryController as Ct, Root$3 as Cu, committedPaletteForSnapshot as D, findCuratedPalette as Da, PlusIcon as Dc, formatCurrencyAmount as Dd, CreditCard as Df, resolveBackgroundColorValue as Di, getModalConfig as Dl, useDroppable as Dn, normalizeEventStaffMemberId as Do, buildCourseRegistrationInteractiveIslandProps as Dr, FEATURE_CARD_GENERATED_ICON_SIZE_PX as Ds, useEditorUiStoreInstance as Dt, CardContent as Du, cancelPreview as E, curatedPalettes as Ea, PlayIcon as Ec, publicEventTicketTypes as Ed, Crop as Ef, resolveSurfaceForegroundStyles as Ei, getFieldIntent as El, useDraggable as En, normalizeEventScheduleScope as Eo, courseRegistrationBlockDefinition as Er, mediaSchema$1 as Es, useEditorUiStore as Et, Card as Eu, markApplySaving as F, ctaButton as Fa, computeMediaTransformStyle as Fc, unsafeAsFormId as Fd, ChevronRight as Ff, normalEditorCuratedPromotedFieldPaths as Fi, mapOptionValueForSelect as Fl, isSupportedLoaderEndpoint as Fn, normalizeCardVariantRole as Fo, buildProductListInteractiveIslandProps as Fr, toFeatureCardIconSuggestionInputs as Fs, unsafeAsLinkedContentEntryId as Ft, DropdownMenuSeparator as Fu, previewSitePalette as G, resolveOfferingsPreviewCoursePath as Ga, attachRenderableMediaAssetFields as Gc, Undo2 as Gd, __toESM as Gf, pageDesignEditorBackgroundOverrideOwner as Gi, Select$1 as Gl, contentTransforms as Gn, formatEventPrice as Go, buildProductCartItem as Gr, unwrapRichTextRoot as Gs, usePalette as Gt, useId$1 as Gu, previewFooterLook as H, isOfferingsPreviewSourceKey as Ha, setContextResolveImageUrlContext as Hc, lucide_react_exports as Hd, Archive as Hf, surfaceResolutionContextFromTheme as Hi, TooltipTrigger as Hl, SITE_OVERLAY_HEADER_CLEARANCE_CSS_VAR as Hn, formatDate as Ho, formatInterval as Hr, parseGeneratedIconSetId as Hs, resolvePageRouteSlug as Ht, __rest as Hu, openRow as I, OFFERINGS_PREVIEW_DEFAULT_BUTTON_TEXT as Ia, getCurrentResolveImageUrlContext as Ic, unsafeAsMediaAssetId as Id, ChevronLeft as If, planPageDesignLayoutLookCompatibility as Ii, unmapValueFromSelect as Il, getBlockDefinition as In, isCssColorLiteral as Io, buildShopInteractiveIslandProps as Ir, buildGeneratedBlockIconRenderAssetLookupFromUnknown as Is, recordsEqual as It, DropdownMenuTrigger as Iu, resetTypographyToSaved as J, resolveOfferingsPreviewGroups as Ja, formatAspectRatioToken as Jc, Ticket as Jd, parseBlockCustomCssRules as Ji, SelectTrigger as Jl, uiTransforms as Jn, formatTime as Jo, productItemKey as Jr, coerceInlineTextWithFallback as Js, validateBlockManifestIssues as Jt, useControllableState as Ju, previewSiteStyle as K, resolveOfferingsPreviewGroupCta as Ka, isRotationDimensionSwap as Kc, TriangleAlert as Kd, getComponentBorderWidthPx as Ki, SelectContent as Kl, mediaTransforms as Kn, formatEventPriceDisplay as Ko, deriveCommerceCheckoutState as Kr, isObjectRecord$1 as Ks, recoveryConflictCopy as Kt, useDirection as Ku, paletteMutationCapability as L, OFFERINGS_PREVIEW_DEFAULT_EMPTY_MESSAGE as La, renderAudio as Lc, unsafeAsPassId as Ld, ChevronDown as Lf, resolveVisiblePromotedFieldPathsForEditorBlock as Li, FieldFrame as Ll, listBlockDescriptors as Ln, resolveOnColorForThemeToken as Lo, getShopDisplayForItems as Lr, getBlockIconSemanticId as Ls, useMultiAutosave as Lt, __assign as Lu, isPreviewingChange as M, generateCssVars as Ma, ImagePresets as Mc, unsafeAsAppointmentResourceId as Md, CircleCheck as Mf, compileEditorModelRuntime as Mi, useSdkConfig as Ml, useCombinedRefs as Mn, generateCardCss as Mo, buildCartInteractiveIslandProps as Mr, resolveFeatureCardGeneratedIconSizePx as Ms, pushHistoryEntry as Mt, DropdownMenuContent as Mu, markApplyFailed as N, createTransformRegistry as Na, MediaPlaceholder as Nc, unsafeAsAppointmentServiceId as Nd, CircleAlert as Nf, retargetCompiledBoundaryRuntimeForContentAdjacency as Ni, hasEmptyOption as Nl, useIsomorphicLayoutEffect$1 as Nn, generateShadowValue as No, buildCheckoutInteractiveIslandProps as Nr, shouldReserveFeatureCardIconZone as Ns, redoHistory as Nt, DropdownMenuItem as Nu, createPalette as O, buildPaletteLibraryReadModel as Oa, ShoppingCartIcon as Oc, assertNever$9 as Od, Copy as Of, mergeHeaderNavTypographyPreference as Oi, isHeaderField as Ol, useSensor as On, normalizeEventSurfacePresetsCsv as Oo, normalizeEventRegistrationPageSurfaceSubject as Or, FEATURE_CARD_ICON_TREATMENTS as Os, useOptionalEditorUiStoreInstance as Ot, CardHeader as Ou, markApplySaved as P, runTransforms as Pa, buildResolveImageUrlContext as Pc, unsafeAsCustomerPassId as Pd, ChevronsUpDown as Pf, retargetCompiledRuntimeFieldsForContentAdjacency as Pi, mapCurrentValueForSelect as Pl, useUniqueId as Pn, normalizeBoxStylesCardVariant as Po, buildProductDetailInteractiveIslandProps as Pr, suggestSemanticIconForFeatureCard as Ps, undoHistory as Pt, DropdownMenuLabel as Pu, toggleRow as Q, eventListPaginationActionSchema as Qa, getDirectImageUrlForMediaAsset as Qc, Smartphone as Qd, NAV_LINK_PADDING_MAP as Qi, SearchInput as Ql, ImageResolveContextProvider as Qn, resolveEventCta as Qo, richTextFragment as Qr, isIconPickerPreset as Qs, FormRenderer as Qt, Button$1 as Qu, palettePreviewProjection as R, OFFERINGS_PREVIEW_DEFAULT_FAILED_MESSAGE as Ra, renderVideo as Rc, unsafeAsPositiveByteCount as Rd, Check as Rf, componentRuntimeRulesForTheme as Ri, useField as Rl, projectRecurringSchedule as Rn, resolveTokenOrCssColorValue as Ro, buildCartDisplay as Rr, getGeneratedBlockIconStyleState as Rs, useDebouncedLatestSave as Rt, __awaiter as Ru, PreviewThemeOverlayProvider as S, backgroundAppearanceQuickColorTokenNames as Sa, MailIcon as Sc, publicEventPricingCurrency as Sd, FileArchive as Sf, MQ_TABLET_ONLY as Si, DEFAULT_SURFACE_TEXT_COLOR as Sl, PointerSensor as Sn, eventScheduleScopeValues as So, getStepNumber as Sr, ACCORDION_TRIGGER_LETTER_SPACING as Ss, EntryControllerProvider as St, Content$1 as Su, applyTypographyDraftPatch as T, defaultThemeTokens as Ta, PhoneIcon as Tc, publicEventScalarPrice as Td, EllipsisVertical as Tf, boxStylesTransforms as Ti, useBackendWatch as Tl, useDndContext as Tn, normalizeEventCategoryIdsCsv as To, buildGiftingInteractiveIslandProps as Tr, PUBLIC_DOWNLOAD_MEDIA_TYPES as Ts, classifyHistoryShortcut as Tt, createCollapsibleScope as Tu, previewHeaderLayout as U, normalizeOfferingsPreviewGroupOrder as Ua, SECTION_BACKGROUND_MIN_SOURCE_WIDTH as Uc, X as Ud, __commonJSMin as Uf, isThemeV2NormalEditorRawStyleFieldName as Ui, Textarea as Ul, planSiteOverlayHeaderClearance as Un, formatEventCompactDateRail as Uo, EMPTY_COMMERCE_CART_STATE as Ur, parseSiteIconStyleGuideVersionId as Us, resolveContentTitle as Ut, __spreadArray as Uu, previewCuratedPalette as V, inferLegacyOfferingsPreviewGroupOrder as Va, resolveMediaStorageUrl as Vc, ok$1 as Vd, ArrowDown as Vf, getCuratedSiteStyle as Vi, TooltipProvider as Vl, SITE_CHROME_VISIBLE_HEADER_SELECTOR as Vn, toLocationMapHydrationProps as Vo, formatCommercePrice as Vr, parseGeneratedIconAssetId as Vs, deriveRouteMetadataPresentation as Vt, __read as Vu, previewHeaderStyle as W, normalizeOfferingsPreviewItemLimit as Wa, resolveMediaSlotContract as Wc, Upload as Wd, __exportAll as Wf, isThemeV2NormalEditorRawStylePath as Wi, Slider as Wl, visibleHeaderClearancePx as Wn, formatEventDateParts as Wo, buildPassCartItem as Wr, createRichTextDocFromMarkdown as Ws, PaletteProvider as Wt, __spreadArrays as Wu, styleConfiguratorHistoryEntryForPersistedSelection as X, resolveSpacing as Xa, resolveMediaTransformForAspect as Xc, Star as Xd, NAV_LINK_BORDER_RADIUS_MAP as Xi, Label as Xl, createManifestValidator as Xn, getContainerClass as Xo, augmentManifest as Xr, isInlineTextEmpty as Xs, createManifestFormAdapter as Xt, composeEventHandlers as Xu, setPaletteColors as Y, isSemanticSpacing as Ya, parseAspectRatioValue as Yc, Tablet as Yd, parseCustomCssRules as Yi, SelectValue as Yl, formattingTransforms as Yn, getCardOrientation as Yo, reduceCommerceCart as Yr, inlineTextToPlainText as Ys, ManifestForm as Yt, createContextScope as Yu, syncStyleConfiguratorState as Z, buildEventRuntimeFilters as Za, asRecord as Zc, Sparkles as Zd, NAV_LINK_LETTER_SPACING_MAP as Zi, Badge as Zl, isInternalResolvedLinkValue as Zn, groupEventsByDate as Zo, augmentManifestWithStyleGroups as Zr, parseInlineTextFromUnknown as Zs, createManifestValidation as Zt, Primitive as Zu, planSiteChromeFooterLayoutSelection as _, sectionTransitionFamilies as _a, FileArchiveIcon as _c, resolveBookingTimeZoneId as _d, File as _f, MQ_LG_UP as _i, borderColorStyle as _l, DEFAULT_LAUNCH_READINESS_INPUT as _n, el as _o, findPreSelectedEvent as _r, asDesignBlockId as _s, EditorProvider as _t, DialogHeader as _u, previewDesignHistoryDomainForCommand as a, requireEntriesForCuratedChoices as aa, ArrowRightIcon as ac, createEditorRemoveBlockCommand as ad, Pencil as af, formEmbedFragment as ai, generateButtonCss as al, createBlock as an, normalizeOptionalId as ao, eventListingBlockDefinition as ar, blockBookingPaymentTermsSchema as as, createOptimisticActionRunner as at, TabsList as au, PreviewDesignCoordinatorProvider as b, BACKGROUND_BODY_TEXT_MIN_CONTRAST_RATIO as ba, FileTextIcon as bc, parseEventPageSurfaceSubject as bd, FilePlay as bf, MQ_SM_DOWN as bi, rgbColorValue as bl, DndContext as bn, bindingSchema as bo, resolveRegistrationTarget as br, ACCORDION_SPACING_MAP as bs, useUISelector as bt, CollapsibleContent as bu, selectionSnapshotFromApplySiteStyleSelectionResponse as c, getHeaderLayout as ca, ChevronDownIcon as cc, unsafeAsEditorBlockValues as cd, Monitor as cf, testimonialsHeadingFragment as ci, featuresFromHex as cl, deleteBlock as cn, eventButtonVariantSchema as co, buildEventCalendarInteractiveIslandProps as cr, defineInteractiveIslandMetaKeys as cs, PreviewRichTextEditor as ct, List as cu, PREVIEW_DESIGN_REFRESH_ERROR_MESSAGE as d, GRADIENT_PRESETS as da, ChevronUpIcon as dc, formatBookingDateTime as dd, LoaderCircle as df, ctaRowFragment as di, generateBaseInteractiveCSS as dl, listEntryPageContentSlots as dn, filterAutoShowSchema as do, formBlockDefinition as dr, defineProgressiveBlockRuntime as ds, useRichTextEditor as dt, ScrollableDialogContent as du, NAV_LINK_TEXT_SIZE_MAP as ea, SEMANTIC_ICON_DEFINITIONS as ec, useComposedRefs as ed, Settings as ef, cardFragment as ei, getAtPath as el, createStoreBackend as en, getEventRuntimeFiltersKey as eo, shopBlockDefinition as er, getEventAvailability as es, confirmAutosaveBatch as et, PopoverContent as eu, PREVIEW_DESIGN_SAVE_ERROR_MESSAGE as f, GRADIENT_PRESET_IDS as fa, CircleMinusIcon as fc, formatBookingInstant as fd, Image as ff, heroCopyFragment as fi, generateInteractiveChildInheritanceCSS as fl, mutateBlockContent as fn, previewStageSchema as fo, buildFormInteractiveIslandProps as fr, EDITABLE_SURFACE_FORWARDING_PROP as fs, EMPTY_DOC as ft, Dialog as fu, cycleableSiteChromeOptions as g, defaultSectionTransitionVariantForFamily as ga, ExternalLinkIcon as gc, parseBookingLocalDate as gd, GripVertical as gf, siteOptionSources as gi, backgroundColorStyle as gl, decodePublicProductCategorySelectorQuery as gn, bind$1 as go, findEventByOccurrenceId as gr, planSiteChromePlacement as gs, InlineTextEditor as gt, DialogFooter as gu, cycleSiteChromeLookId as h, boundaryRuntimeMetricsForTransition as ha, DownloadIcon as hc, getBookingLocalDateKey as hd, ImageOff as hf, PUBLIC_FILE_FIELD_KINDS as hi, themeButtonClassName as hl, reorderPageSurfaceSlotBlocks as hn, eventCalendarListLayoutOptions as ho, toRegistrationEvents as hr, splitPositioningClasses as hs, insertOrReplaceRichTextImage as ht, DialogDescription as hu, usePreviewDesignHistoryOrder as i, LABEL_FONT_SIZE_MAP as ia, ArrowLeftIcon as ic, createEditorInsertBlockCommand as id, Plus as if, singleButtonFragment as ii, AFFORDANCE_SUPPRESS_CLASS as il, getPageDesignEditorState as in, normalizeCsvString as io, buildNewsletterFormInteractiveIslandProps as ir, resolveRuntimeEventPricing as is, rejectAutosaveBatch as it, TabsContent as iu, dismissWarnings as j, paletteColorsSchema as ja, createIcon as jc, parseSiteId as jd, CircleMinus as jf, applyCompiledRuntimeFieldsToContent as ji, SdkConfigProvider as jl, isKeyboardEvent as jn, publicEventSchema as jo, cartBlockDefinition as jr, parseFeatureCardGeneratedIconSizePx as js, createHistoryState as jt, DropdownMenu as ju, createStyleConfiguratorState as k, paletteColorEntries as ka, UploadIcon as kc, expectParsedBrandedId as kd, Clock3 as kf, readHeaderNavFontSizePreference as ki, isNonEmptyValue as kl, useSensors as kn, normalizeEventSurfaceScope as ko, resolveEventRegistrationScopedEvents as kr, createFeatureCardIconKey as ks, canRedoHistory as kt, CardTitle as ku, resolveStyleConfiguratorInitialSnapshot as l, getHeaderStyle as la, ChevronLeftIcon as lc, addLocalScheduleDays as ld, Minus as lf, ctaCopyFragment as li, generateEffectsCSS as ll, deleteEntrySlotBlock as ln, eventCalendarDefaultViewSchema as lo, buildEventCalendarListingDisplay as lr, createZodCodec as ls, PreviewInlineTextEditor as lt, Root2$1 as lu, buildSiteChromeLookModels as m, parseGradientPresetId as ma, ClockIcon as mc, formatLocalScheduleDate as md, ImagePlus as mf, defineFragment as mi, parseThemeButtonVariantId as ml, reorderEntrySlotBlocks as mn, eventCalendarListLayoutCompatibleDisplayModeValues as mo, buildEventRegistrationInteractiveIslandProps as mr, markEditableSurfaceForwarding as ms, getRichTextImagePositionFromTarget as mt, DialogContent as mu, useSiteChromeCustomizeOptional as n, INPUT_FONT_SIZE_MAP as na, isSemanticIconId as nc, clsx as nd, RotateCcw as nf, faqHeadingFragment as ni, buttonPersonalities as nl, toRoutableLinkPayload as nn, resolveEventListPaginationAction as no, productDetailBlockDefinition as nr, getLocalDateKey as ns, enqueueTransaction as nt, Input as nu, selectPreviewDesignHistoryDomain as o, findFooterLook as oa, CalendarIcon as oc, createEditorReorderBlocksCommand as od, PenLine as of, formCopyFragment as oi, expandPalette as ol, createEntrySlotBlock as on, calendarTabViewsSchema as oo, buildEventListingInteractiveIslandProps as or, buildInteractiveIslandProps as os, resolvePreviewSidebarTab as ot, TabsTrigger as ou, reportPreviewDesignError as p, getGradientPreset as pa, CirclePlusIcon as pc, formatBookingTime as pd, ImageUp as pf, bodyCopyFragment as pi, TokenResolver as pl, reorderBlocks as pn, weekStartSchema as po, eventRegistrationBlockDefinition as pr, composeHeaderSectionWrapperClassName as ps, RichTextEditorSurface as pt, DialogClose as pu, reconcilePaletteLibraryActive as q, resolveOfferingsPreviewGroupOrderEntries as qa, normalizeRightAngle as qc, Trash2 as qd, getComponentShadowVar as qi, SelectItem as ql, layoutTransforms as qn, formatEventTeacherLine as qo, parseStoredCommerceCartState as qr, isRecord$10 as qs, unfinishedBlockCopy as qt, createCollection as qu, PreviewDesignHistoryOrderProvider as r, INPUT_SPACING_MAP as ra, ArrowDownIcon as rc, parseFooterModuleId as rd, Redo2 as rf, blogFeaturedPostFragment as ri, findButtonPersonality as rl, applyPageDesignEditorAction as rn, normalizeCsvIds as ro, newsletterSignupBlockDefinition as rr, getLocalMinuteOfDay as rs, idleEditorTransactionQueueState as rt, Tabs as ru, buildApplySiteStyleSelectionBody as s, getFooterLayout as sa, CheckIcon as sc, unsafeAsEditorBlockId as sd, Palette as sf, testimonialsCarouselFragment as si, getTextColorForBackground as sl, createPageSurfaceSlotBlock as sn, columnOptionSchema as so, eventCalendarBlockDefinition as sr, createInteractiveIslandCodec as ss, FooterComposerPanel as st, Content as su, SiteChromeCustomizeProvider as t, FONT_WEIGHT_MAP as ta, getSemanticIconComponent as tc, cn$1 as td, Search as tf, faqAccordionFragment as ti, siblingPath as tl, listContentTypes as tn, resolveEventCalendarListPageSize as to, productListBlockDefinition as tr, getEventAvailabilityStatus as ts, deriveTransactionCapabilities as tt, PopoverTrigger as tu, PREVIEW_DESIGN_LOAD_ERROR_MESSAGE as u, gradientToCss as ua, ChevronRightIcon as uc, formatBookingDate as ud, Maximize2 as uf, heroCtaRowFragment as ui, generateShadowValue$1 as ul, deletePageSurfaceSlotBlock as un, eventLayoutSchema as uo, buildEventCalendarListingRender as ur, defineClientOwnedBlockRuntime as us, PreviewTextEditor as ut, Trigger$2 as uu, planSiteChromeLookSelection as v, sectionTransitionFamilyForBoundaryOptionId as va, FileAudioIcon as vc, toBookingTimeZone as vd, FileText as vf, MQ_MD_DOWN as vi, cssVarValue as vl, deriveLaunchReadiness as vn, richText as vo, resolveDiscountContext as vr, assertNever$8 as vs, useEditor$1 as vt, DialogTitle as vu, applyResolvedSelections as w, parseBackgroundAppearanceColorToken as wa, MinusIcon as wc, publicEventPricingType as wd, EyeOff as wf, getAnchorClasses as wi, surfaceForegroundValue as wl, getClientRect as wn, normalizeEventBlockKind as wo, giftingBlockDefinition as wr, ICON_SIZE_PX as ws, useEntryEditorController as wt, Trigger$3 as wu, usePreviewDesignCoordinator as x, backgroundAppearanceColorTokenNames as xa, InfoIcon as xc, formatBookingPriceDisplay as xd, FileHeadphone as xf, MQ_SM_UP as xi, textColorStyle as xl, KeyboardCode as xn, eventBlockKindValues as xo, WIZARD_STEPS as xr, ACCORDION_TRIGGER_FONT_SCALE as xs, EditableBlockProvider as xt, CollapsibleTrigger as xu, planSiteStylePreviewChange as y, sectionTransitionVariantForBoundaryOptionId as ya, FileSpreadsheetIcon as yc, toScheduledBookingDateTime as yd, FileSpreadsheet as yf, MQ_MD_UP as yi, mergeStyles as yl, AMBIENT_BACKGROUND_ROLES as yn, when as yo, resolveEventRequiresPayment as yr, ACCORDION_OPEN_ACCENT_THICKNESS as ys, ContentFieldsForm as yt, Collapsible as yu, prepareStalePaletteRetry as z, OFFERINGS_PREVIEW_EVENT_PRESET_DEFINITIONS as za, resolveImageUrlWithContext as zc, unsafeAsPositiveSeconds as zd, Box as zf, curatedSiteStyles as zi, Tooltip as zl, siteFooterManifest as zn, buildGoogleMapsDirectionsUrl as zo, buildProductCardDisplay as zr, parseBlockIconValue as zs, createRoutingHelpers as zt, __extends as zu };
|
|
164075
|
+
export { confirmAutosaveBatch as $, resolveEventListPaginationAction as $a, getImageUrl as $c, Sparkles as $d, NAV_LINK_TEXT_SIZE_MAP as $i, Badge as $l, shopBlockDefinition as $n, getLocalDateKey as $o, cardFragment as $r, resolveIconPickerPreset as $s, createStoreBackend as $t, Primitive as $u, dismissWarnings as A, createTransformRegistry as Aa, XIcon as Ac, assertNever$9 as Ad, Copy as Af, applyCompiledRuntimeFieldsToContent as Ai, isHeaderField as Al, isKeyboardEvent as An, generateShadowValue as Ao, cartBlockDefinition as Ar, shouldReserveFeatureCardIconZone as As, createHistoryState as At, CardHeader as Au, previewCuratedPalette as B, normalizeOfferingsPreviewGroupOrder as Ba, resolveMediaNodeResponsiveImage as Bc, unsafeAsPositiveByteCount as Bd, Check as Bf, getCuratedSiteStyle as Bi, useField as Bl, SITE_CHROME_VISIBLE_HEADER_SELECTOR as Bn, formatEventCompactDateRail as Bo, formatCommercePrice as Br, parseSiteIconStyleGuideVersionId as Bs, deriveRouteMetadataPresentation as Bt, __awaiter as Bu, applyResolvedSelections as C, curatedPalettes as Ca, MapPinIcon as Cc, formatBookingPriceDisplay as Cd, FileHeadphone as Cf, getAnchorClasses as Ci, textColorStyle as Cl, getClientRect as Cn, normalizeEventScheduleScope as Co, giftingBlockDefinition as Cr, mediaSchema$1 as Cs, useEntryEditorController as Ct, CollapsibleTrigger as Cu, createPalette as D, paletteColorsEqual as Da, PlusIcon as Dc, publicEventScalarPrice as Dd, EllipsisVertical as Df, mergeHeaderNavTypographyPreference as Di, useBackendWatch as Dl, useSensor as Dn, normalizeEventVenueId as Do, normalizeEventRegistrationPageSurfaceSubject as Dr, getFeatureCardIconCompletion as Ds, useOptionalEditorUiStoreInstance as Dt, createCollapsibleScope as Du, committedPaletteForSnapshot as E, paletteColorEntries as Ea, PlayIcon as Ec, publicEventPricingType as Ed, EyeOff as Ef, resolveBackgroundColorValue as Ei, surfaceForegroundValue as El, useDroppable as En, normalizeEventSurfaceScope as Eo, buildCourseRegistrationInteractiveIslandProps as Er, createFeatureCardIconKey as Es, useEditorUiStoreInstance as Et, Trigger$3 as Eu, openRow as F, OFFERINGS_PREVIEW_DEFAULT_FAILED_MESSAGE as Fa, computeMediaTransformStyle as Fc, unsafeAsAppointmentServiceId as Fd, CircleAlert as Ff, planPageDesignLayoutLookCompatibility as Fi, hasEmptyOption as Fl, getBlockDefinition as Fn, resolveTokenOrCssColorValue as Fo, buildShopInteractiveIslandProps as Fr, getGeneratedBlockIconStyleState as Fs, recordsEqual as Ft, DropdownMenuItem as Fu, previewSiteStyle as G, resolveOfferingsPreviewGroups as Ga, attachRenderableMediaAssetFields as Gc, X as Gd, __commonJSMin as Gf, getComponentBorderWidthPx as Gi, Textarea as Gl, mediaTransforms as Gn, formatTime as Go, deriveCommerceCheckoutState as Gr, coerceInlineTextWithFallback as Gs, recoveryConflictCopy as Gt, __spreadArray as Gu, previewHeaderLayout as H, resolveOfferingsPreviewCoursePath as Ha, setContextResolveImageUrlContext as Hc, err as Hd, ArrowUp as Hf, isThemeV2NormalEditorRawStyleFieldName as Hi, TooltipContent as Hl, planSiteOverlayHeaderClearance as Hn, formatEventPrice as Ho, EMPTY_COMMERCE_CART_STATE as Hr, unwrapRichTextRoot as Hs, resolveContentTitle as Ht, __generator as Hu, paletteMutationCapability as I, OFFERINGS_PREVIEW_EVENT_PRESET_DEFINITIONS as Ia, getCurrentResolveImageUrlContext as Ic, unsafeAsCustomerPassId as Id, ChevronsUpDown as If, resolveVisiblePromotedFieldPathsForEditorBlock as Ii, mapCurrentValueForSelect as Il, listBlockDescriptors as In, buildGoogleMapsDirectionsUrl as Io, getShopDisplayForItems as Ir, parseBlockIconValue as Is, useMultiAutosave as It, DropdownMenuLabel as Iu, setPaletteColors as J, buildEventRuntimeFilters as Ja, formatAspectRatioToken as Jc, TriangleAlert as Jd, parseCustomCssRules as Ji, SelectContent as Jl, formattingTransforms as Jn, groupEventsByDate as Jo, reduceCommerceCart as Jr, parseInlineTextFromUnknown as Js, ManifestForm as Jt, useDirection as Ju, reconcilePaletteLibraryActive as K, isSemanticSpacing as Ka, isRotationDimensionSwap as Kc, Upload as Kd, __exportAll as Kf, getComponentShadowVar as Ki, Slider as Kl, layoutTransforms as Kn, getCardOrientation as Ko, parseStoredCommerceCartState as Kr, inlineTextToPlainText as Ks, unfinishedBlockCopy as Kt, __spreadArrays as Ku, palettePreviewProjection as L, buildOfferingsPreviewRenderStates as La, renderAudio as Lc, unsafeAsFormId as Ld, ChevronRight as Lf, componentRuntimeRulesForTheme as Li, mapOptionValueForSelect as Ll, projectRecurringSchedule as Ln, normalizeLocationMapProps as Lo, buildCartDisplay as Lr, resolveBlockIconRenderValue as Ls, useDebouncedLatestSave as Lt, DropdownMenuSeparator as Lu, markApplyFailed as M, ctaButton as Ma, ImagePresets as Mc, parseMediaAssetId as Md, CirclePlus as Mf, retargetCompiledBoundaryRuntimeForContentAdjacency as Mi, useBlockContext as Ml, useIsomorphicLayoutEffect$1 as Mn, normalizeCardVariantRole as Mo, buildCheckoutInteractiveIslandProps as Mr, toFeatureCardIconSuggestionInputs as Ms, redoHistory as Mt, Surface as Mu, markApplySaved as N, OFFERINGS_PREVIEW_DEFAULT_BUTTON_TEXT as Na, MediaPlaceholder as Nc, parseSiteId as Nd, CircleMinus as Nf, retargetCompiledRuntimeFieldsForContentAdjacency as Ni, SdkConfigProvider as Nl, useUniqueId as Nn, isCssColorLiteral as No, buildProductDetailInteractiveIslandProps as Nr, buildGeneratedBlockIconRenderAssetLookupFromUnknown as Ns, undoHistory as Nt, DropdownMenu as Nu, createStyleConfiguratorState as O, paletteColorsSchema as Oa, ShoppingCartIcon as Oc, publicEventTicketTypes as Od, Crop as Of, readHeaderNavFontSizePreference as Oi, getFieldIntent as Ol, useSensors as On, publicEventSchema as Oo, resolveEventRegistrationScopedEvents as Or, parseFeatureCardGeneratedIconSizePx as Os, canRedoHistory as Ot, Card as Ou, markApplySaving as P, OFFERINGS_PREVIEW_DEFAULT_EMPTY_MESSAGE as Pa, buildResolveImageUrlContext as Pc, unsafeAsAppointmentResourceId as Pd, CircleCheck as Pf, normalEditorCuratedPromotedFieldPaths as Pi, useSdkConfig as Pl, isSupportedLoaderEndpoint as Pn, resolveOnColorForThemeToken as Po, buildProductListInteractiveIslandProps as Pr, getBlockIconSemanticId as Ps, unsafeAsLinkedContentEntryId as Pt, DropdownMenuContent as Pu, beginAutosaveBatch as Q, resolveEventCalendarListPageSize as Qa, getDirectImageUrlForMediaAsset as Qc, Star as Qd, NAV_LINK_PADDING_X_MAP as Qi, Label as Ql, useImageResolveContextOptional as Qn, getEventAvailabilityStatus as Qo, headingFragment as Qr, isIconPickerPreset as Qs, evaluateVisibility as Qt, composeEventHandlers as Qu, prepareStalePaletteRetry as R, inferLegacyOfferingsPreviewGroupOrder as Ra, renderVideo as Rc, unsafeAsMediaAssetId as Rd, ChevronLeft as Rf, curatedSiteStyles as Ri, unmapValueFromSelect as Rl, siteFooterManifest as Rn, toLocationMapHydrationProps as Ro, buildProductCardDisplay as Rr, parseGeneratedIconAssetId as Rs, createRoutingHelpers as Rt, DropdownMenuTrigger as Ru, usePreviewThemeOverlay as S, defaultThemeTokens as Sa, MailIcon as Sc, parseEventPageSurfaceSubject as Sd, FilePlay as Sf, BACKGROUND_POSITION_PRESET_VALUES as Si, rgbColorValue as Sl, closestCenter as Sn, normalizeEventCategoryIdsCsv as So, getWizardStepsForContext as Sr, PUBLIC_DOWNLOAD_MEDIA_TYPES as Ss, useEntryController as St, CollapsibleContent as Su, cancelPreview as T, buildPaletteLibraryReadModel as Ta, PhoneIcon as Tc, publicEventPricingMode as Td, Eye as Tf, resolveSurfaceForegroundStyles as Ti, surfaceForegroundDeclarations as Tl, useDraggable as Tn, normalizeEventSurfacePresetsCsv as To, courseRegistrationBlockDefinition as Tr, FEATURE_CARD_ICON_TREATMENTS as Ts, useEditorUiStore as Tt, Root$3 as Tu, previewHeaderStyle as U, resolveOfferingsPreviewGroupCta as Ua, SECTION_BACKGROUND_MIN_SOURCE_WIDTH as Uc, ok$1 as Ud, ArrowDown as Uf, isThemeV2NormalEditorRawStylePath as Ui, TooltipProvider as Ul, visibleHeaderClearancePx as Un, formatEventPriceDisplay as Uo, buildPassCartItem as Ur, isObjectRecord$1 as Us, PaletteProvider as Ut, __read as Uu, previewFooterLook as V, normalizeOfferingsPreviewItemLimit as Va, resolveMediaStorageUrl as Vc, unsafeAsPositiveSeconds as Vd, Box as Vf, surfaceResolutionContextFromTheme as Vi, Tooltip as Vl, SITE_OVERLAY_HEADER_CLEARANCE_CSS_VAR as Vn, formatEventDateParts as Vo, formatInterval as Vr, createRichTextDocFromMarkdown as Vs, resolvePageRouteSlug as Vt, __extends as Vu, previewSitePalette as W, resolveOfferingsPreviewGroupOrderEntries as Wa, resolveMediaSlotContract as Wc, lucide_react_exports as Wd, Archive as Wf, pageDesignEditorBackgroundOverrideOwner as Wi, TooltipTrigger as Wl, contentTransforms as Wn, formatEventTeacherLine as Wo, buildProductCartItem as Wr, isRecord$10 as Ws, usePalette as Wt, __rest as Wu, syncStyleConfiguratorState as X, eventPageSizeSchema as Xa, resolveMediaTransformForAspect as Xc, Ticket as Xd, NAV_LINK_LETTER_SPACING_MAP as Xi, SelectTrigger as Xl, isInternalResolvedLinkValue as Xn, resolveEventLinkProps as Xo, augmentManifestWithStyleGroups as Xr, canonicalizePersistedBlockButtonRole as Xs, createManifestValidation as Xt, useControllableState as Xu, styleConfiguratorHistoryEntryForPersistedSelection as Y, eventListPaginationActionSchema as Ya, parseAspectRatioValue as Yc, Trash2 as Yd, NAV_LINK_BORDER_RADIUS_MAP as Yi, SelectItem as Yl, createManifestValidator as Yn, resolveEventCta as Yo, augmentManifest as Yr, BLOCK_BUTTON_ROLE_OPTIONS as Ys, createManifestFormAdapter as Yt, createCollection as Yu, toggleRow as Z, getEventRuntimeFiltersKey as Za, asRecord as Zc, Tablet as Zd, NAV_LINK_PADDING_MAP as Zi, SelectValue as Zl, ImageResolveContextProvider as Zn, getEventAvailability as Zo, richTextFragment as Zr, isBlockButtonRole as Zs, FormRenderer as Zt, createContextScope as Zu, planSiteChromeLookSelection as _, BACKGROUND_BODY_TEXT_MIN_CONTRAST_RATIO as _a, FileArchiveIcon as _c, getBookingLocalDateKey as _d, ImageOff as _f, MQ_MD_DOWN as _i, parseThemeButtonVariantId as _l, deriveLaunchReadiness as _n, bindingSchema as _o, resolveDiscountContext as _r, ACCORDION_SPACING_MAP as _s, useEditor$1 as _t, DialogDescription as _u, previewDesignHistoryDomainForCommand as a, getHeaderLayout as aa, ArrowRightIcon as ac, parseFooterModuleId as ad, Redo2 as af, formCopyFragment as ai, updateButtonStyleSelectionChoice as al, createEntrySlotBlock as an, eventButtonVariantSchema as ao, buildEventListingInteractiveIslandProps as ar, defineInteractiveIslandMetaKeys as as, resolvePreviewSidebarTab as at, Tabs as au, usePreviewDesignCoordinator as b, foregroundTokenForBackgroundAppearanceColorToken as ba, FileTextIcon as bc, toBookingTimeZone as bd, FileText as bf, MQ_SM_UP as bi, cssVarValue as bl, KeyboardCode as bn, eventSurfaceScopeValues as bo, WIZARD_STEPS as br, ICON_CONFIG as bs, EditableBlockProvider as bt, DialogTitle as bu, selectionSnapshotFromApplySiteStyleSelectionResponse as c, GRADIENT_PRESETS as ca, ChevronDownIcon as cc, createEditorReorderBlocksCommand as cd, PenLine as cf, ctaCopyFragment as ci, generateButtonCss as cl, deleteEntrySlotBlock as cn, filterAutoShowSchema as co, buildEventCalendarListingDisplay as cr, defineProgressiveBlockRuntime as cs, PreviewInlineTextEditor as ct, TabsTrigger as cu, PREVIEW_DESIGN_REFRESH_ERROR_MESSAGE as d, parseGradientPresetId as da, ChevronUpIcon as dc, addLocalScheduleDays as dd, Minus as df, heroCopyFragment as di, featuresFromHex as dl, mutateBlockContent as dn, eventCalendarListLayoutCompatibleDisplayModeValues as do, buildFormInteractiveIslandProps as dr, markEditableSurfaceForwarding as ds, EMPTY_DOC as dt, Root2$1 as du, FONT_WEIGHT_MAP as ea, SEMANTIC_ICON_DEFINITIONS as ec, Button$1 as ed, Smartphone as ef, faqAccordionFragment as ei, getAtPath as el, listContentTypes as en, normalizeCsvIds as eo, productListBlockDefinition as er, getLocalMinuteOfDay as es, deriveTransactionCapabilities as et, SearchInput as eu, PREVIEW_DESIGN_SAVE_ERROR_MESSAGE as f, boundaryRuntimeMetricsForTransition as fa, CircleMinusIcon as fc, formatBookingDate as fd, Maximize2 as ff, bodyCopyFragment as fi, generateEffectsCSS as fl, reorderBlocks as fn, eventCalendarListLayoutOptions as fo, eventRegistrationBlockDefinition as fr, splitPositioningClasses as fs, RichTextEditorSurface as ft, Trigger$2 as fu, cycleableSiteChromeOptions as g, sectionTransitionVariantForBoundaryOptionId as ga, ExternalLinkIcon as gc, formatLocalScheduleDate as gd, ImagePlus as gf, MQ_LG_UP as gi, TokenResolver as gl, DEFAULT_LAUNCH_READINESS_INPUT as gn, when as go, findPreSelectedEvent as gr, ACCORDION_OPEN_ACCENT_THICKNESS as gs, EditorProvider as gt, DialogContent as gu, cycleSiteChromeLookId as h, sectionTransitionFamilyForBoundaryOptionId as ha, DownloadIcon as hc, formatBookingTime as hd, ImageUp as hf, siteOptionSources as hi, generateInteractiveChildInheritanceCSS as hl, decodePublicProductCategorySelectorQuery as hn, richText as ho, findEventByOccurrenceId as hr, assertNever$8 as hs, InlineTextEditor as ht, DialogClose as hu, usePreviewDesignHistoryOrder as i, findFooterLook as ia, ArrowLeftIcon as ic, clsx as id, RotateCcw as if, formEmbedFragment as ii, resolveButtonStyleSelection as il, createBlock as in, columnOptionSchema as io, eventListingBlockDefinition as ir, createInteractiveIslandCodec as is, createOptimisticActionRunner as it, Input as iu, isPreviewingChange as j, runTransforms as ja, createIcon as jc, expectParsedBrandedId as jd, Clock3 as jf, compileEditorModelRuntime as ji, isNonEmptyValue as jl, useCombinedRefs as jn, normalizeBoxStylesCardVariant as jo, buildCartInteractiveIslandProps as jr, suggestSemanticIconForFeatureCard as js, pushHistoryEntry as jt, CardTitle as ju, deriveStyleConfiguratorCapabilities as k, generateCssVars as ka, UploadIcon as kc, formatCurrencyAmount as kd, CreditCard as kf, formatSiteChromeBackgroundTokenLabel as ki, getModalConfig as kl, CSS$1 as kn, generateCardCss as ko, checkoutBlockDefinition as kr, resolveFeatureCardGeneratedIconSizePx as ks, canUndoHistory as kt, CardContent as ku, resolveStyleConfiguratorInitialSnapshot as l, GRADIENT_PRESET_IDS as la, ChevronLeftIcon as lc, unsafeAsEditorBlockId as ld, Palette as lf, heroCtaRowFragment as li, expandPalette as ll, deletePageSurfaceSlotBlock as ln, previewStageSchema as lo, buildEventCalendarListingRender as lr, EDITABLE_SURFACE_FORWARDING_PROP as ls, PreviewTextEditor as lt, Content as lu, buildSiteChromeLookModels as m, sectionTransitionFamilies as ma, ClockIcon as mc, formatBookingInstant as md, Image as mf, PUBLIC_FILE_FIELD_KINDS as mi, generateBaseInteractiveCSS as ml, reorderPageSurfaceSlotBlocks as mn, el as mo, toRegistrationEvents as mr, asDesignBlockId as ms, insertOrReplaceRichTextImage as mt, Dialog as mu, useSiteChromeCustomizeOptional as n, INPUT_SPACING_MAP as na, isSemanticIconId as nc, useComposedRefs as nd, Settings as nf, blogFeaturedPostFragment as ni, buttonStyleSelectionParameterValue as nl, applyPageDesignEditorAction as nn, normalizeOptionalId as no, newsletterSignupBlockDefinition as nr, blockBookingPaymentTermsSchema as ns, idleEditorTransactionQueueState as nt, PopoverContent as nu, selectPreviewDesignHistoryDomain as o, getHeaderStyle as oa, CalendarIcon as oc, createEditorInsertBlockCommand as od, Plus as of, testimonialsCarouselFragment as oi, buttonStyleSelectionKey as ol, createPageSurfaceSlotBlock as on, eventCalendarDefaultViewSchema as oo, eventCalendarBlockDefinition as or, createZodCodec as os, FooterComposerPanel as ot, TabsContent as ou, reportPreviewDesignError as p, defaultSectionTransitionVariantForFamily as pa, CirclePlusIcon as pc, formatBookingDateTime as pd, LoaderCircle as pf, defineFragment as pi, generateShadowValue$1 as pl, reorderEntrySlotBlocks as pn, bind$1 as po, buildEventRegistrationInteractiveIslandProps as pr, planSiteChromePlacement as ps, getRichTextImagePositionFromTarget as pt, ScrollableDialogContent as pu, resetTypographyToSaved as q, resolveSpacing as qa, normalizeRightAngle as qc, Undo2 as qd, __toESM as qf, parseBlockCustomCssRules as qi, Select$1 as ql, uiTransforms as qn, getContainerClass as qo, productItemKey as qr, isInlineTextEmpty as qs, validateBlockManifestIssues as qt, useId$1 as qu, PreviewDesignHistoryOrderProvider as r, LABEL_FONT_SIZE_MAP as ra, ArrowDownIcon as rc, cn$1 as rd, Search as rf, singleButtonFragment as ri, findButtonStyleRecipe as rl, getPageDesignEditorState as rn, calendarTabViewsSchema as ro, buildNewsletterFormInteractiveIslandProps as rr, buildInteractiveIslandProps as rs, rejectAutosaveBatch as rt, PopoverTrigger as ru, buildApplySiteStyleSelectionBody as s, gradientToCss as sa, CheckIcon as sc, createEditorRemoveBlockCommand as sd, Pencil as sf, testimonialsHeadingFragment as si, AFFORDANCE_SUPPRESS_CLASS as sl, deleteBlock as sn, eventLayoutSchema as so, buildEventCalendarInteractiveIslandProps as sr, defineClientOwnedBlockRuntime as ss, PreviewRichTextEditor as st, TabsList as su, SiteChromeCustomizeProvider as t, INPUT_FONT_SIZE_MAP as ta, getSemanticIconComponent as tc, cva as td, SlidersHorizontal as tf, faqHeadingFragment as ti, siblingPath as tl, toRoutableLinkPayload as tn, normalizeCsvString as to, productDetailBlockDefinition as tr, resolveRuntimeEventPricing as ts, enqueueTransaction as tt, Popover as tu, PREVIEW_DESIGN_LOAD_ERROR_MESSAGE as u, getGradientPreset as ua, ChevronRightIcon as uc, unsafeAsEditorBlockValues as ud, Monitor as uf, ctaRowFragment as ui, getTextColorForBackground as ul, listEntryPageContentSlots as un, weekStartSchema as uo, formBlockDefinition as ur, composeHeaderSectionWrapperClassName as us, useRichTextEditor as ut, List as uu, planSiteStylePreviewChange as v, backgroundAppearanceColorTokenNames as va, FileAudioIcon as vc, parseBookingLocalDate as vd, GripVertical as vf, MQ_MD_UP as vi, themeButtonClassName as vl, AMBIENT_BACKGROUND_ROLES as vn, eventBlockKindValues as vo, resolveEventRequiresPayment as vr, ACCORDION_TRIGGER_FONT_SCALE as vs, ContentFieldsForm as vt, DialogFooter as vu, applyTypographyDraftPatch as w, findCuratedPalette as wa, MinusIcon as wc, publicEventPricingCurrency as wd, FileArchive as wf, boxStylesTransforms as wi, DEFAULT_SURFACE_TEXT_COLOR as wl, useDndContext as wn, normalizeEventStaffMemberId as wo, buildGiftingInteractiveIslandProps as wr, FEATURE_CARD_GENERATED_ICON_SIZE_PX as ws, classifyHistoryShortcut as wt, Content$1 as wu, PreviewThemeOverlayProvider as x, parseBackgroundAppearanceColorToken as xa, InfoIcon as xc, toScheduledBookingDateTime as xd, FileSpreadsheet as xf, MQ_TABLET_ONLY as xi, mergeStyles as xl, PointerSensor as xn, normalizeEventBlockKind as xo, getStepNumber as xr, ICON_SIZE_PX as xs, EntryControllerProvider as xt, Collapsible as xu, PreviewDesignCoordinatorProvider as y, backgroundAppearanceQuickColorTokenNames as ya, FileSpreadsheetIcon as yc, resolveBookingTimeZoneId as yd, File as yf, MQ_SM_DOWN as yi, backgroundColorStyle as yl, DndContext as yn, eventScheduleScopeValues as yo, resolveRegistrationTarget as yr, ACCORDION_TRIGGER_LETTER_SPACING as ys, useUISelector as yt, DialogHeader as yu, previewButtonStyle as z, isOfferingsPreviewSourceKey as za, resolveImageUrlWithContext as zc, unsafeAsPassId as zd, ChevronDown as zf, designRuntimeRulesForTheme as zi, FieldFrame as zl, siteHeaderManifest as zn, formatDate as zo, buildProductDetailDisplay as zr, parseGeneratedIconSetId as zs, createSnapshotFromPageRecord as zt, __assign as zu };
|