@riverbankcms/sdk 0.153.0 → 0.154.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/{EventEmbeddedCheckoutStep-veN-QiAE.mjs → EventEmbeddedCheckoutStep-ba9npQtb.mjs} +1 -1
- package/dist/{PreviewEditorSidebar-jI_4DTZY.mjs → PreviewEditorSidebar-C7FiaxlF.mjs} +194 -22
- package/dist/{PreviewEditorUI-ORkVZhfu.mjs → PreviewEditorUI-DFst50q1.mjs} +20 -44
- package/dist/{SdkPreviewModeRuntime-DaNqevI1.mjs → SdkPreviewModeRuntime-BUNV_YHZ.mjs} +49 -32
- package/dist/{SiteChromeCustomizeContext-CgNuBHC0.mjs → SiteChromeCustomizeContext-DEj7qppF.mjs} +3558 -2321
- package/dist/{ThemedButton-X2UxhW6F.mjs → ThemedButton-C8kzu0hY.mjs} +400 -81
- package/dist/_dts/ai/src/contracts/proposals.d.ts +364 -130
- package/dist/_dts/ai/src/contracts/siteStyleProposalSchemas.d.ts +1035 -477
- package/dist/_dts/api/src/billing.d.ts +2 -0
- package/dist/_dts/api/src/billingEndpointDefinitions.d.ts +78 -0
- package/dist/_dts/api/src/bookingAdjustments.d.ts +3 -2
- package/dist/_dts/api/src/bookingOperations.d.ts +7 -2
- package/dist/_dts/api/src/bookingPeople.d.ts +19 -0
- package/dist/_dts/api/src/bookingPeopleEndpointDefinitions.d.ts +8 -0
- package/dist/_dts/api/src/bookingRecords.d.ts +4 -106
- package/dist/_dts/api/src/bookings.d.ts +2 -3
- package/dist/_dts/api/src/contentRuntime.d.ts +1 -0
- package/dist/_dts/api/src/endpoints.d.ts +88 -43
- package/dist/_dts/api/src/index.d.ts +4 -2
- package/dist/_dts/api/src/indexCoreTypes.d.ts +1 -0
- package/dist/_dts/api/src/moneyPayments.d.ts +116 -0
- package/dist/_dts/api/src/onboarding/surfaceData.d.ts +2 -0
- package/dist/_dts/api/src/sdk-event-upsert.d.ts +2 -2
- package/dist/_dts/api/src/sdkThemeWire.d.ts +162 -103
- package/dist/_dts/api/src/sitePlatformEndpoints.d.ts +18 -0
- package/dist/_dts/api/src/siteRuntimeEndpoints.d.ts +17 -16
- package/dist/_dts/api/src/siteSettings.d.ts +1 -0
- package/dist/_dts/api/src/stripeConnectSetup.d.ts +90 -0
- package/dist/_dts/api/src/types.d.ts +11 -31
- package/dist/_dts/api/src/wholeSeriesRuns.d.ts +2 -4
- package/dist/_dts/blocks/src/client/site-chrome.d.ts +1 -1
- package/dist/_dts/blocks/src/contracts/proof-block-islands.d.ts +8 -96
- package/dist/_dts/blocks/src/primitives/content/components/RichText.d.ts +1 -1
- package/dist/_dts/blocks/src/primitives/content/primitives.d.ts +4 -1
- package/dist/_dts/blocks/src/primitives/layout/Section.d.ts +1 -0
- package/dist/_dts/blocks/src/system/blocks/events/event-calendar.d.ts +1 -1
- package/dist/_dts/blocks/src/system/blocks/events/eventSelectionFields.d.ts +1 -1
- package/dist/_dts/blocks/src/system/blocks/events/shared/fields.d.ts +0 -4
- package/dist/_dts/blocks/src/system/blocks/events/shared/index.d.ts +0 -1
- package/dist/_dts/blocks/src/system/blocks/events/shared/schemas.d.ts +4 -4
- package/dist/_dts/blocks/src/system/blocks/form.d.ts +10 -0
- package/dist/_dts/blocks/src/system/blocks/image-gallery/fields.d.ts +1 -0
- package/dist/_dts/blocks/src/system/blocks/image-gallery.d.ts +6 -1
- package/dist/_dts/blocks/src/system/blocks/location-map.d.ts +1 -1
- package/dist/_dts/blocks/src/system/blocks/media-text.d.ts +47 -45
- package/dist/_dts/blocks/src/system/blocks/newsletter-signup.d.ts +12 -0
- package/dist/_dts/blocks/src/system/blocks/site-footer-runtime-layout.d.ts +23 -0
- package/dist/_dts/blocks/src/system/blocks/site-footer-runtime-profile.d.ts +20 -0
- package/dist/_dts/blocks/src/system/blocks/site-footer-runtime.d.ts +17 -16
- package/dist/_dts/blocks/src/system/blocks/site-footer.d.ts +1 -1
- package/dist/_dts/blocks/src/system/customize/facets.d.ts +75 -9
- package/dist/_dts/blocks/src/system/manifest/schema.d.ts +24 -24
- package/dist/_dts/blocks/src/system/node/fragments/index.d.ts +1 -0
- package/dist/_dts/blocks/src/system/node/fragments/lookSlot.d.ts +1 -1
- package/dist/_dts/blocks/src/system/node/fragments/responsiveTwoColumn.d.ts +3 -1
- package/dist/_dts/blocks/src/system/node/fragments/sectionHead.d.ts +15 -0
- package/dist/_dts/blocks/src/system/runtime/components/registry.client.d.ts +18 -198
- package/dist/_dts/blocks/src/system/runtime/components/runtime-backed-blocks.d.ts +9 -99
- package/dist/_dts/blocks/src/system/runtime/lookSurfaces.d.ts +16 -4
- package/dist/_dts/blocks/src/system/runtime/nodes/basic.d.ts +2 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/event-details/lookPresentation.d.ts +10 -4
- package/dist/_dts/blocks/src/system/runtime/nodes/event-details/presentation.d.ts +1 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/events/domain/dates.d.ts +1 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/eventCollectionContract.d.ts +29 -17
- package/dist/_dts/blocks/src/system/runtime/nodes/form.fields.d.ts +5 -2
- package/dist/_dts/blocks/src/system/runtime/nodes/form.interactive.d.ts +11 -79
- package/dist/_dts/blocks/src/system/runtime/nodes/form.parts.d.ts +7 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/form.server.d.ts +2 -13
- package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.interactive.d.ts +8 -72
- package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.parts.d.ts +6 -6
- package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.types.d.ts +3 -2
- package/dist/_dts/blocks/src/system/runtime/nodes/shared/contract-schemas.d.ts +2 -2
- package/dist/_dts/blocks/src/system/transforms/registry/_utils/surfaceForegroundStyles.d.ts +3 -0
- package/dist/_dts/blocks/src/system/transforms/registry/footerArrangement.d.ts +6 -0
- package/dist/_dts/blocks/src/system/transforms/registry/layout.d.ts +0 -11
- package/dist/_dts/blocks/src/system/transforms/typed.d.ts +1 -10
- package/dist/_dts/commerce/src/purchase/orderConfirmationPlanning.d.ts +1 -0
- package/dist/_dts/content-editor/src/FooterComposerOverview.d.ts +5 -2
- package/dist/_dts/content-editor/src/FooterComposerPanel.d.ts +1 -1
- package/dist/_dts/content-editor/src/FooterNavigationLayoutControl.d.ts +6 -3
- package/dist/_dts/content-editor/src/controller/editorLeaseParticipation.d.ts +1 -1
- package/dist/_dts/content-editor/src/footerComposer.d.ts +2 -1
- package/dist/_dts/content-editor/src/footerComposerPanelTypes.d.ts +3 -1
- package/dist/_dts/content-editor/src/footerNavigationLayoutState.d.ts +56 -0
- package/dist/_dts/content-editor/src/footerPreviewRuntime.d.ts +2 -1
- package/dist/_dts/content-editor/src/useFooterComposerState.d.ts +3 -4
- package/dist/_dts/content-editor/src/useFooterNavigationLayout.d.ts +11 -8
- package/dist/_dts/core/src/booking-refunds.d.ts +2 -0
- package/dist/_dts/core/src/date-display.d.ts +85 -0
- package/dist/_dts/core/src/date-time-formatter.d.ts +2 -0
- package/dist/_dts/core/src/footer-arrangement.d.ts +8 -1
- package/dist/_dts/core/src/footer-composition-types.d.ts +6 -1
- package/dist/_dts/core/src/footer-composition.d.ts +1 -1
- package/dist/_dts/core/src/footer-navigation-layout.d.ts +3 -0
- package/dist/_dts/core/src/index.d.ts +2 -0
- package/dist/_dts/core/src/mailing-list-setup.d.ts +3 -0
- package/dist/_dts/core/src/mailing-list-submission.d.ts +6 -1
- package/dist/_dts/core/src/public-profile.d.ts +3 -1
- package/dist/_dts/core/src/scheduled-date-time.d.ts +69 -0
- package/dist/_dts/db/src/generated/supabase/database.types.d.ts +50 -9
- package/dist/_dts/db/src/schemas/forms.d.ts +16 -16
- package/dist/_dts/preview-next/src/client/blocks/ArrangementBlockToolbar.d.ts +2 -1
- package/dist/_dts/preview-next/src/client/preview/PreviewShell.d.ts +1 -0
- package/dist/_dts/preview-next/src/client/preview/PreviewShellLayout.d.ts +1 -0
- package/dist/_dts/preview-next/src/client/preview/SiteChromeCustomizeContext.d.ts +4 -1
- package/dist/_dts/preview-next/src/client/preview/siteChromeSavePlan.d.ts +27 -5
- package/dist/_dts/preview-next/src/client/preview/siteStylePreviewPlanner.d.ts +2 -0
- package/dist/_dts/preview-next/src/client/preview/useConfirmedPreferenceRecord.d.ts +12 -0
- package/dist/_dts/preview-next/src/client/preview/usePersistedFooterPreferences.d.ts +26 -0
- package/dist/_dts/preview-next/src/client/preview/usePersistedHeaderPreferences.d.ts +40 -2
- package/dist/_dts/sdk/src/config/validation.d.ts +3 -3
- package/dist/_dts/sdk/src/contracts/system-block-content.d.ts +4 -46
- package/dist/_dts/sdk/src/date-time/index.d.ts +2 -68
- package/dist/_dts/sdk/src/public-api/contracts.d.ts +1 -0
- package/dist/_dts/sdk/src/rendering/islands/types.d.ts +1 -1
- package/dist/_dts/sdk/src/version.d.ts +1 -1
- package/dist/_dts/theme-core/src/buttons/buttonColourContract.d.ts +2 -0
- package/dist/_dts/theme-core/src/buttons/resolveButtonColourStates.d.ts +2 -0
- package/dist/_dts/theme-core/src/buttons/styles/recipes/lanternRecipes.d.ts +60 -0
- package/dist/_dts/theme-core/src/buttons/styles/registry.d.ts +57 -0
- package/dist/_dts/theme-core/src/buttons/styles/selection.d.ts +10 -1
- package/dist/_dts/theme-core/src/buttons/types.d.ts +358 -46
- package/dist/_dts/theme-core/src/buttons/typography.d.ts +24 -0
- package/dist/_dts/theme-core/src/cards/types.d.ts +8 -8
- package/dist/_dts/theme-core/src/footer/effectiveNavLinkStyle.d.ts +1 -1
- package/dist/_dts/theme-core/src/footer/generateFooterCss.d.ts +4 -1
- package/dist/_dts/theme-core/src/footer/mode.d.ts +2 -11
- package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
- package/dist/_dts/theme-core/src/mock-themes/all.d.ts +234 -147
- package/dist/_dts/theme-core/src/navigation/types.d.ts +4 -4
- package/dist/_dts/theme-core/src/schema.d.ts +300 -192
- package/dist/_dts/theme-core/src/site-styles/appearancePresetTypes.d.ts +23 -7
- package/dist/_dts/theme-core/src/site-styles/backgroundAppearance.d.ts +2 -2
- package/dist/_dts/theme-core/src/site-styles/compilationPlan.d.ts +4 -6
- package/dist/_dts/theme-core/src/site-styles/compileFooterAgainstRow.d.ts +121 -0
- package/dist/_dts/theme-core/src/site-styles/curatedSiteStyles.d.ts +25 -0
- package/dist/_dts/theme-core/src/site-styles/footerLookDefaults.d.ts +45 -0
- package/dist/_dts/theme-core/src/site-styles/footerLookRecipe.d.ts +50 -0
- package/dist/_dts/theme-core/src/site-styles/footerLooks.d.ts +9 -35
- package/dist/_dts/theme-core/src/site-styles/footerPreferences.d.ts +29 -0
- package/dist/_dts/theme-core/src/site-styles/headerPreferencesPersistence.d.ts +2 -3
- package/dist/_dts/theme-core/src/site-styles/index.d.ts +4 -0
- package/dist/_dts/theme-core/src/site-styles/lookResolution.d.ts +2 -2
- package/dist/_dts/theme-core/src/site-styles/previewCompiler.d.ts +1 -1
- package/dist/_dts/theme-core/src/site-styles/siteChromeBackgrounds.d.ts +8 -0
- package/dist/_dts/theme-core/src/site-styles/themeParity.d.ts +1 -1
- package/dist/_dts/theme-core/src/site-styles/tokenRecipes.d.ts +1 -1
- package/dist/_dts/ui/src/card.d.ts +1 -1
- package/dist/client/{BookingMailingListNote-DrchYW1m.mjs → BookingMailingListNote-CNoSqFtf.mjs} +2 -2
- package/dist/client/{CardListItem-CC_GVmF6.mjs → CardListItem-BkTkqBkh.mjs} +3 -3
- package/dist/client/{CheckboxChoice-Dq30m3DO.mjs → CheckboxChoice-CHJpsty4.mjs} +1 -1
- package/dist/client/{DemoBookingPortalAccess-ojwbVUmx.mjs → DemoBookingPortalAccess-C7KQKFNt.mjs} +2 -2
- package/dist/client/{EventCombined.client-DyN0v0Xk.mjs → EventCombined.client-BgeYMjHJ.mjs} +5 -5
- package/dist/client/{EventEmbeddedCheckoutStep-CgfpKc3n.mjs → EventEmbeddedCheckoutStep-BTc_lTkM.mjs} +2 -2
- package/dist/client/{EventListing.client-CuOuvYMz.mjs → EventListing.client-ChRs9Hl2.mjs} +2 -2
- package/dist/client/{LeafletStaticMap-B0WhRr3j.mjs → LeafletStaticMap-C_dNQgd0.mjs} +1 -1
- package/dist/client/{RichText-C1fIXBzA.mjs → RichText-BI9bzbjo.mjs} +75 -42
- package/dist/client/{ThemedButton-B7HFqFBg.mjs → ThemedButton-wl3Z3wkH.mjs} +1 -1
- package/dist/client/{accordion-DCDVWSye.mjs → accordion-6Yz8Wd83.mjs} +1 -1
- package/dist/client/{bookingForm-BJ3C4GlM.mjs → bookingForm-i_pKIGiY.mjs} +8 -8
- package/dist/client/bookings.mjs +12565 -11839
- package/dist/client/{carousel-BSCBhfHY.mjs → carousel-DNqd_PjC.mjs} +2 -2
- package/dist/client/{carousel.client-GEtOGsxo.mjs → carousel.client-BUgjPbb6.mjs} +1 -1
- package/dist/client/{cart-Yv-aAtck.mjs → cart-D8OBHuF4.mjs} +3 -3
- package/dist/client/{checkout-B9xDkl30.mjs → checkout-F3-9IGLU.mjs} +3 -3
- package/dist/client/client.mjs +6109 -4778
- package/dist/client/{context-BOGe3rIA.mjs → context-Dg4ZrxDD.mjs} +1 -1
- package/dist/client/{eventCalendar-D6M0T9hs.mjs → eventCalendar-BUc7YIBM.mjs} +8 -8
- package/dist/client/{eventCombined-NM4UFBq8.mjs → eventCombined-BwfShk2a.mjs} +4 -4
- package/dist/client/{eventDetails-f_FhV4O8.mjs → eventDetails-BMOVC3go.mjs} +3 -3
- package/dist/client/{eventListing-WLkfAROh.mjs → eventListing-BwE9PM-t.mjs} +4 -4
- package/dist/client/{eventRegistration-D3ejfLvW.mjs → eventRegistration-CCWPYDc7.mjs} +9 -9
- package/dist/client/{form-D5Or2Jyu.mjs → form-CXFr0Gd5.mjs} +115 -51
- package/dist/client/{headerSection-hWgnv27V.mjs → headerSection-BX8qw8kH.mjs} +3 -3
- package/dist/client/hooks.mjs +2041 -1193
- package/dist/client/{locationMap-Di1K0O2S.mjs → locationMap-B3La71m0.mjs} +3 -3
- package/dist/client/{media-D29-F1u_.mjs → media-B1Cbv721.mjs} +1 -1
- package/dist/client/{newsletterForm-CwxcwTNO.mjs → newsletterForm-DnGyR0x7.mjs} +50 -14
- package/dist/client/{productDetail-BLSnhPdA.mjs → productDetail-BVgTqvkb.mjs} +3 -3
- package/dist/client/{productList-oGytONOX.mjs → productList-CcO7kUQw.mjs} +3 -3
- package/dist/client/{propsDecoder-lf_dTeZS.mjs → propsDecoder-B1OeWavE.mjs} +706 -229
- package/dist/client/rendering/client.mjs +11868 -11098
- package/dist/client/rendering/islands.mjs +17 -17
- package/dist/client/rendering.mjs +6058 -4676
- package/dist/client/{routeIslandApiConfig-Bc_WVPS8.mjs → routeIslandApiConfig-Dl4vglJm.mjs} +1 -1
- package/dist/client/{shop-BQ3bR7fA.mjs → shop-P72nX5Fs.mjs} +7 -7
- package/dist/client/{shop-commerce-DDPll6ZC.mjs → shop-commerce-Bt7uraDx.mjs} +8 -8
- package/dist/client/{shop-commerce-store-DO-e1pTe.mjs → shop-commerce-store-C1-mxSye.mjs} +1 -1
- package/dist/client/{shopShared-BylM9jh1.mjs → shopShared-Db-cRGu3.mjs} +4 -4
- package/dist/client/{useDiscountCodeUi-B1Puub2v.mjs → useDiscountCodeUi-jvAiUoUX.mjs} +1 -1
- package/dist/client/{useEventPagination-BBhkmQaT.mjs → useEventPagination-BdWpCniq.mjs} +6 -6
- package/dist/preview-next/before-render.mjs +133 -51
- package/dist/preview-next/client/runtime.mjs +3 -3
- package/dist/preview-next/editor-chrome.css +5 -2
- package/dist/preview-next/keepAlive.mjs +133 -51
- package/dist/preview-next/middleware.mjs +133 -51
- package/dist/{sdk-runtime-DWCvhJGu.mjs → sdk-runtime-DLhjF2Nw.mjs} +1 -1
- package/dist/server/components.mjs +11284 -10014
- package/dist/server/config-validation.mjs +2016 -1188
- package/dist/server/config.mjs +2016 -1188
- package/dist/server/data.mjs +2041 -1193
- package/dist/server/date-time.mjs +258 -116
- package/dist/server/index.mjs +134 -52
- package/dist/server/next.mjs +10571 -9350
- package/dist/server/page-converter.mjs +1629 -941
- package/dist/server/prebuild.mjs +1 -1
- package/dist/server/rendering/server.mjs +11156 -9872
- package/dist/server/rendering.mjs +11284 -10014
- package/dist/server/routing.mjs +2204 -1283
- package/dist/server/server.mjs +2369 -1570
- package/dist/server/theme-bridge.mjs +838 -124
- package/dist/server/theme.mjs +348 -64
- package/dist/{spinner-BYM-Y81w.mjs → spinner-MTooKfck.mjs} +1 -1
- package/dist/styles/index.css +254 -1
- package/package.json +1 -1
- package/dist/_dts/blocks/src/system/blocks/events/shared/layout.d.ts +0 -12
|
@@ -937,6 +937,29 @@ function SpinnerNode({ className, size = "md", color, strokeWidth = 3, srLabel,
|
|
|
937
937
|
});
|
|
938
938
|
}
|
|
939
939
|
//#endregion
|
|
940
|
+
//#region ../theme-core/src/buttons/typography.ts
|
|
941
|
+
const textTransformSchema = z.enum([
|
|
942
|
+
"none",
|
|
943
|
+
"uppercase",
|
|
944
|
+
"lowercase",
|
|
945
|
+
"capitalize"
|
|
946
|
+
]);
|
|
947
|
+
const fontWeightSchema = z.union([
|
|
948
|
+
z.literal(400),
|
|
949
|
+
z.literal(500),
|
|
950
|
+
z.literal(600),
|
|
951
|
+
z.literal(700),
|
|
952
|
+
z.literal(800)
|
|
953
|
+
]);
|
|
954
|
+
const buttonTypographySchema = z.enum(["body", "heading"]);
|
|
955
|
+
const letterSpacingSchema = z.enum([
|
|
956
|
+
"tight",
|
|
957
|
+
"normal",
|
|
958
|
+
"slight",
|
|
959
|
+
"loose",
|
|
960
|
+
"wide"
|
|
961
|
+
]);
|
|
962
|
+
//#endregion
|
|
940
963
|
//#region ../theme-core/src/tokens/colorTokenParts.ts
|
|
941
964
|
function parseOpacityPercent(source) {
|
|
942
965
|
const trimmed = source.trim();
|
|
@@ -1214,6 +1237,7 @@ const buttonEffectApplicationSchema = z.discriminatedUnion("effectId", [
|
|
|
1214
1237
|
z.strictObject({
|
|
1215
1238
|
effectId: z.literal("lift"),
|
|
1216
1239
|
options: z.strictObject({ amount: z.enum([
|
|
1240
|
+
"0.125",
|
|
1217
1241
|
"0.25",
|
|
1218
1242
|
"0.5",
|
|
1219
1243
|
"1"
|
|
@@ -1260,24 +1284,6 @@ const shadowSizeSchema = z.enum([
|
|
|
1260
1284
|
"medium",
|
|
1261
1285
|
"high"
|
|
1262
1286
|
]);
|
|
1263
|
-
const textTransformSchema = z.enum([
|
|
1264
|
-
"none",
|
|
1265
|
-
"uppercase",
|
|
1266
|
-
"lowercase",
|
|
1267
|
-
"capitalize"
|
|
1268
|
-
]);
|
|
1269
|
-
const fontWeightSchema = z.union([
|
|
1270
|
-
z.literal(500),
|
|
1271
|
-
z.literal(600),
|
|
1272
|
-
z.literal(700),
|
|
1273
|
-
z.literal(800)
|
|
1274
|
-
]);
|
|
1275
|
-
const buttonTypographySchema = z.enum(["body", "heading"]);
|
|
1276
|
-
const letterSpacingSchema = z.enum([
|
|
1277
|
-
"tight",
|
|
1278
|
-
"normal",
|
|
1279
|
-
"loose"
|
|
1280
|
-
]);
|
|
1281
1287
|
const hoverTransformSchema = z.enum([
|
|
1282
1288
|
"none",
|
|
1283
1289
|
"lift",
|
|
@@ -1349,7 +1355,8 @@ const paddingShorthandSchema = z.string().refine((value) => {
|
|
|
1349
1355
|
}, { message: "Padding must be two space-separated CSS length tokens (e.g. \"0.5rem 1rem\"). Use `0` for zero." });
|
|
1350
1356
|
const buttonSizeConfigSchema = z.object({
|
|
1351
1357
|
padding: paddingShorthandSchema,
|
|
1352
|
-
fontSize: z.string().optional()
|
|
1358
|
+
fontSize: z.string().optional(),
|
|
1359
|
+
borderRadius: z.string().optional()
|
|
1353
1360
|
});
|
|
1354
1361
|
/**
|
|
1355
1362
|
* `xl` is optional on the wire so themes persisted before the `xl` size was
|
|
@@ -1472,12 +1479,20 @@ const buttonVisualAppearanceSchema = z.strictObject({
|
|
|
1472
1479
|
textTransform: textTransformSchema
|
|
1473
1480
|
}),
|
|
1474
1481
|
effects: z.array(buttonEffectApplicationSchema),
|
|
1482
|
+
transform: z.literal("none").optional(),
|
|
1475
1483
|
contextualHover: contextualButtonHoverSchema.optional()
|
|
1476
1484
|
});
|
|
1477
1485
|
const buttonVisualStatesSchema = z.strictObject({
|
|
1478
1486
|
base: buttonVisualAppearanceSchema.extend({ shadow: variantShadowSchema }),
|
|
1479
1487
|
hover: buttonVisualAppearanceSchema.extend({ shadow: variantShadowSchema }),
|
|
1480
|
-
focus: buttonVisualAppearanceSchema.extend({
|
|
1488
|
+
focus: buttonVisualAppearanceSchema.extend({
|
|
1489
|
+
shadow: z.literal("focus-indicator"),
|
|
1490
|
+
indicator: z.strictObject({
|
|
1491
|
+
kind: z.literal("surface-ink"),
|
|
1492
|
+
width: z.union([z.literal(2), z.literal(3)]),
|
|
1493
|
+
offset: z.union([z.literal(3), z.literal(4)])
|
|
1494
|
+
}).optional()
|
|
1495
|
+
}),
|
|
1481
1496
|
active: buttonVisualAppearanceSchema.extend({ shadow: variantShadowSchema }),
|
|
1482
1497
|
disabled: buttonVisualAppearanceSchema.extend({ shadow: variantShadowSchema })
|
|
1483
1498
|
});
|
|
@@ -2088,19 +2103,6 @@ const themeLookMetadataSchema = z.object({
|
|
|
2088
2103
|
skinMarks: skinMarksSchema.optional()
|
|
2089
2104
|
});
|
|
2090
2105
|
//#endregion
|
|
2091
|
-
//#region ../theme-core/src/footer/mode.ts
|
|
2092
|
-
const footerModeSchema = z.enum([
|
|
2093
|
-
"default",
|
|
2094
|
-
"blocks",
|
|
2095
|
-
"default+blocks",
|
|
2096
|
-
"none"
|
|
2097
|
-
]);
|
|
2098
|
-
/** Reads only SDK footer intent; unrelated config and theme fields are not authorities. */
|
|
2099
|
-
function resolveSdkFooterMode(config) {
|
|
2100
|
-
const parsed = z.object({ layout: z.object({ footerMode: footerModeSchema.optional() }).optional() }).safeParse(config);
|
|
2101
|
-
return parsed.success ? parsed.data.layout?.footerMode ?? "default" : "default";
|
|
2102
|
-
}
|
|
2103
|
-
//#endregion
|
|
2104
2106
|
//#region ../media-core/src/identifiers.ts
|
|
2105
2107
|
function slugifyMediaIdentifier(value) {
|
|
2106
2108
|
return value.toLowerCase().trim().replace(/[^a-z0-9\s-]/g, "").replace(/\s+/g, "-").replace(/-+/g, "-");
|
|
@@ -4165,6 +4167,8 @@ const GRADIENT_DIRECTION_MAP = {
|
|
|
4165
4167
|
*/
|
|
4166
4168
|
const BORDER_RADIUS_MAP = {
|
|
4167
4169
|
"rounded-none": "0",
|
|
4170
|
+
"rounded-3px": "3px",
|
|
4171
|
+
"rounded-10px": "10px",
|
|
4168
4172
|
"rounded-sm": "0.125rem",
|
|
4169
4173
|
"rounded": "0.25rem",
|
|
4170
4174
|
"rounded-md": "0.375rem",
|
|
@@ -4238,6 +4242,10 @@ const BORDER_WIDTH_MAP = {
|
|
|
4238
4242
|
*/
|
|
4239
4243
|
const FONT_SIZE_MAP = {
|
|
4240
4244
|
"text-xs": "0.75rem",
|
|
4245
|
+
"text-13px": "0.8125rem",
|
|
4246
|
+
"text-15px": "0.9375rem",
|
|
4247
|
+
"text-17px": "1.0625rem",
|
|
4248
|
+
"text-19px": "1.1875rem",
|
|
4241
4249
|
"text-sm": "0.875rem",
|
|
4242
4250
|
"text-base": "1rem",
|
|
4243
4251
|
"text-lg": "1.125rem",
|
|
@@ -4373,7 +4381,9 @@ function buttonTypographyDeclarations(type) {
|
|
|
4373
4381
|
const spacing = type.letterSpacing === null ? null : type.letterSpacing === "heading" ? "var(--ls-heading)" : {
|
|
4374
4382
|
tight: "-0.025em",
|
|
4375
4383
|
normal: "0",
|
|
4376
|
-
|
|
4384
|
+
slight: "0.01em",
|
|
4385
|
+
loose: "0.05em",
|
|
4386
|
+
wide: "0.125em"
|
|
4377
4387
|
}[type.letterSpacing];
|
|
4378
4388
|
return [
|
|
4379
4389
|
["font-weight", String(type.fontWeight)],
|
|
@@ -4393,21 +4403,23 @@ function buttonShadow(shadow, tokens) {
|
|
|
4393
4403
|
function buttonBorder(border, tokens) {
|
|
4394
4404
|
return border === "none" ? null : `${BORDER_WIDTH_MAP[border.widthClass] || "1px"} solid ${border.boundaryInk ? tokens.getColor(border.boundaryInk) : "currentColor"}`;
|
|
4395
4405
|
}
|
|
4396
|
-
|
|
4397
|
-
|
|
4398
|
-
const
|
|
4399
|
-
const declared = new Map(buttonTypographyDeclarations(state.typography));
|
|
4406
|
+
function buttonTypographyChanges(base, state) {
|
|
4407
|
+
const original = new Map(buttonTypographyDeclarations(base));
|
|
4408
|
+
const declared = new Map(buttonTypographyDeclarations(state));
|
|
4400
4409
|
const resets = [
|
|
4401
4410
|
["font-style", "normal"],
|
|
4402
4411
|
["text-transform", "none"],
|
|
4403
4412
|
["letter-spacing", "normal"]
|
|
4404
4413
|
].filter(([property]) => original.has(property) && !declared.has(property));
|
|
4405
|
-
|
|
4414
|
+
return [...declared, ...resets].filter(([property, value]) => original.get(property) !== value);
|
|
4415
|
+
}
|
|
4416
|
+
/** Emit only changed declarations; identical states keep historical CSS bytes. */
|
|
4417
|
+
function buttonStateAppearanceDeclarations(base, state, tokens, disabled = false) {
|
|
4406
4418
|
const border = buttonBorder(state.border, tokens);
|
|
4407
4419
|
const radius = buttonRadius(state.borderRadius);
|
|
4408
4420
|
const shadow = !disabled && state.shadow !== "focus-indicator" ? buttonShadow(state.shadow, tokens) : null;
|
|
4409
4421
|
return [
|
|
4410
|
-
...
|
|
4422
|
+
...buttonTypographyChanges(base.typography, state.typography),
|
|
4411
4423
|
...buttonRadius(base.borderRadius) === radius ? [] : [["border-radius", radius]],
|
|
4412
4424
|
...buttonBorder(base.border, tokens) === border ? [] : [["border", border ?? "none"]],
|
|
4413
4425
|
...shadow === null || base.shadow === "focus-indicator" || buttonShadow(base.shadow, tokens) === shadow ? [] : [["box-shadow", shadow]]
|
|
@@ -4868,6 +4880,10 @@ function validateButtonTextContrast(input) {
|
|
|
4868
4880
|
}
|
|
4869
4881
|
};
|
|
4870
4882
|
}
|
|
4883
|
+
/** A text-token slab inverts the palette's text/background pair, including text shades. */
|
|
4884
|
+
function solidForegroundToken(backgroundToken) {
|
|
4885
|
+
return /^text(?:-\d+)?$/.test(backgroundToken) ? "background" : onColorTokenName(backgroundToken);
|
|
4886
|
+
}
|
|
4871
4887
|
//#endregion
|
|
4872
4888
|
//#region ../theme-core/src/buttons/contextualHover.ts
|
|
4873
4889
|
function resolveContextualHoverPreference(input) {
|
|
@@ -4965,7 +4981,7 @@ function candidate(family, shade, currentShade, direction, seedHex, palette) {
|
|
|
4965
4981
|
}
|
|
4966
4982
|
function hasSafeTextContrast(token, palette) {
|
|
4967
4983
|
const background = palette[token];
|
|
4968
|
-
const foreground = palette[
|
|
4984
|
+
const foreground = palette[solidForegroundToken(token)];
|
|
4969
4985
|
return typeof background === "string" && typeof foreground === "string" && contrastRatio(background, foreground) >= BUTTON_CONTRAST_POLICY.textMinimumRatio;
|
|
4970
4986
|
}
|
|
4971
4987
|
function isSafeCandidate(token, palette, surface) {
|
|
@@ -5060,6 +5076,13 @@ function compileDeclaredVisualStates(input, states) {
|
|
|
5060
5076
|
const colours = collectStateColours(mapVisualStates((state) => compileDeclaredVisualState(input, states, state, state === "hover" ? hover.treatment : states[state].background)));
|
|
5061
5077
|
return colours.ok ? {
|
|
5062
5078
|
...colours,
|
|
5079
|
+
focusIndicator: states.focus.indicator ? {
|
|
5080
|
+
kind: "surface-role",
|
|
5081
|
+
colorCss: input.surface?.foregroundCss ?? surfaceForegroundValue("text"),
|
|
5082
|
+
width: states.focus.indicator.width,
|
|
5083
|
+
offset: states.focus.indicator.offset,
|
|
5084
|
+
minimumSurfaceContrast: BUTTON_CONTRAST_POLICY.nonTextMinimumRatio
|
|
5085
|
+
} : colours.focusIndicator,
|
|
5063
5086
|
contextualHoverRepair: hover.repair
|
|
5064
5087
|
} : colours;
|
|
5065
5088
|
}
|
|
@@ -5197,7 +5220,7 @@ function resolveFocusIndicator(colour) {
|
|
|
5197
5220
|
function resolveSolid(input, backgroundToken, edge) {
|
|
5198
5221
|
const backgroundHex = paletteHex(input, backgroundToken);
|
|
5199
5222
|
if (!backgroundHex.ok) return backgroundHex;
|
|
5200
|
-
const foregroundToken = unsafeAsOpaqueButtonColourToken(
|
|
5223
|
+
const foregroundToken = unsafeAsOpaqueButtonColourToken(solidForegroundToken(backgroundToken));
|
|
5201
5224
|
const foregroundHex = input.palette[foregroundToken];
|
|
5202
5225
|
if (typeof foregroundHex !== "string") return {
|
|
5203
5226
|
ok: false,
|
|
@@ -8533,20 +8556,15 @@ const headerSchema = z.object({
|
|
|
8533
8556
|
const footerVariant = z.enum([
|
|
8534
8557
|
"simple",
|
|
8535
8558
|
"columns",
|
|
8536
|
-
"split"
|
|
8537
|
-
|
|
8559
|
+
"split",
|
|
8560
|
+
"centred"
|
|
8561
|
+
]).transform((value) => value === "columns" ? "simple" : value);
|
|
8538
8562
|
const footerMaxWidth = z.enum(["container", "full"]);
|
|
8539
8563
|
const footerNavLayoutMode = z.enum([
|
|
8540
8564
|
"stack",
|
|
8541
8565
|
"inline",
|
|
8542
8566
|
"inline-wrap"
|
|
8543
8567
|
]);
|
|
8544
|
-
const footerNavLayoutAlign = z.enum([
|
|
8545
|
-
"start",
|
|
8546
|
-
"center",
|
|
8547
|
-
"end",
|
|
8548
|
-
"space-between"
|
|
8549
|
-
]);
|
|
8550
8568
|
const footerSpacing = z.enum([
|
|
8551
8569
|
"none",
|
|
8552
8570
|
"tight",
|
|
@@ -8555,12 +8573,6 @@ const footerSpacing = z.enum([
|
|
|
8555
8573
|
"relaxed",
|
|
8556
8574
|
"spacious"
|
|
8557
8575
|
]);
|
|
8558
|
-
const footerLogoPlacement = z.enum([
|
|
8559
|
-
"left",
|
|
8560
|
-
"right",
|
|
8561
|
-
"above",
|
|
8562
|
-
"below"
|
|
8563
|
-
]);
|
|
8564
8576
|
const footerLogoSize = z.enum([
|
|
8565
8577
|
"sm",
|
|
8566
8578
|
"md",
|
|
@@ -8601,17 +8613,8 @@ const footerBottomBarSchema = z.object({
|
|
|
8601
8613
|
]).optional()
|
|
8602
8614
|
}).optional()
|
|
8603
8615
|
});
|
|
8604
|
-
const footerNavLayoutSchema = z.object({
|
|
8605
|
-
layout: footerNavLayoutMode.optional(),
|
|
8606
|
-
align: footerNavLayoutAlign.optional(),
|
|
8607
|
-
gapX: footerSpacing.optional(),
|
|
8608
|
-
gapY: footerSpacing.optional(),
|
|
8609
|
-
columns: z.number().int().min(1).max(6).optional()
|
|
8610
|
-
});
|
|
8616
|
+
const footerNavLayoutSchema = z.object({ layout: footerNavLayoutMode.optional() });
|
|
8611
8617
|
const footerLogoSchema = z.object({
|
|
8612
|
-
showLogo: z.boolean().default(true),
|
|
8613
|
-
showLogoText: z.boolean().optional(),
|
|
8614
|
-
placement: footerLogoPlacement.optional(),
|
|
8615
8618
|
size: footerLogoSize.optional(),
|
|
8616
8619
|
maxHeight: footerLogoMaxHeight.optional(),
|
|
8617
8620
|
align: z.enum([
|
|
@@ -8621,15 +8624,8 @@ const footerLogoSchema = z.object({
|
|
|
8621
8624
|
]).optional()
|
|
8622
8625
|
});
|
|
8623
8626
|
const footerSchema = z.object({
|
|
8624
|
-
/**
|
|
8625
|
-
* SDK-only footer rendering mode.
|
|
8626
|
-
*
|
|
8627
|
-
* Historical persisted field; SDK rendering mode now lives in layout.footerMode.
|
|
8628
|
-
*/
|
|
8629
|
-
mode: footerModeSchema.optional(),
|
|
8630
8627
|
variant: footerVariant,
|
|
8631
8628
|
maxWidth: footerMaxWidth,
|
|
8632
|
-
showLogoText: z.boolean().optional(),
|
|
8633
8629
|
background: headerBackgroundSchema.default({
|
|
8634
8630
|
type: "color",
|
|
8635
8631
|
color: "surface"
|
|
@@ -9510,6 +9506,7 @@ const liftEffect = {
|
|
|
9510
9506
|
label: "Lift Amount",
|
|
9511
9507
|
default: "0.5",
|
|
9512
9508
|
options: [
|
|
9509
|
+
"0.125",
|
|
9513
9510
|
"0.25",
|
|
9514
9511
|
"0.5",
|
|
9515
9512
|
"1"
|
|
@@ -10475,7 +10472,7 @@ function resolvedButtonFocusDeclarations(indicator, role) {
|
|
|
10475
10472
|
["outline", value("outline", `2px solid ${indicator.innerCss}`)],
|
|
10476
10473
|
["outline-offset", value("outline-offset", "2px")],
|
|
10477
10474
|
["box-shadow", value("box-shadow", `0 0 0 4px ${indicator.outerCss}`)]
|
|
10478
|
-
] : [["outline", value("outline",
|
|
10475
|
+
] : [["outline", value("outline", `${indicator.width ?? 3}px solid ${indicator.colorCss}`)], ["outline-offset", value("outline-offset", `${indicator.offset ?? 3}px`)]];
|
|
10479
10476
|
}
|
|
10480
10477
|
/**
|
|
10481
10478
|
* Disabled buttons are deliberately muted as unavailable controls. Native
|
|
@@ -10646,6 +10643,7 @@ function variantChunks(variant, global, themeSizes, themeId, tokens, theme, colo
|
|
|
10646
10643
|
]) out.push(variantStateColourRule(variant, variantId, themeId, state, colours[state], tokens));
|
|
10647
10644
|
const effects = variantEffectsCss(variant, nonColourEffects, themeId, tokens, theme);
|
|
10648
10645
|
if (effects) out.push({ raw: effects });
|
|
10646
|
+
out.push(...variantStateTransformRules(variant, selector));
|
|
10649
10647
|
out.push(variantFocusVisibleRule(variantId, themeId, focusIndicator));
|
|
10650
10648
|
const affordance = variantAffordanceRule(variant, selector);
|
|
10651
10649
|
if (affordance) out.push(affordance);
|
|
@@ -10759,12 +10757,27 @@ function variantDisabledRules(variant, variantId, themeId, colour, tokens) {
|
|
|
10759
10757
|
["pointer-events", "none"]
|
|
10760
10758
|
])];
|
|
10761
10759
|
}
|
|
10760
|
+
/** Explicit rest transforms follow hover effects so :active can return to rest. */
|
|
10761
|
+
function variantStateTransformRules(variant, selector) {
|
|
10762
|
+
return [
|
|
10763
|
+
"hover",
|
|
10764
|
+
"focus",
|
|
10765
|
+
"active"
|
|
10766
|
+
].flatMap((state) => {
|
|
10767
|
+
const transform = variant.visualStates?.[state].transform;
|
|
10768
|
+
return transform ? [rule(`${selector}:${state}`, [["transform", transform]])] : [];
|
|
10769
|
+
});
|
|
10770
|
+
}
|
|
10762
10771
|
function variantSizeRules(variant, variantId, themeSizes, themeId) {
|
|
10763
10772
|
const border = variant.visualStates?.base.border ?? variant.border;
|
|
10764
10773
|
const borderWidth = border && border !== "none" ? BORDER_WIDTH_MAP[border.widthClass] || "1px" : "0px";
|
|
10765
10774
|
return BUTTON_SIZE_NAMES.map((sizeName) => {
|
|
10766
10775
|
const config = resolveSizeConfig(variant, sizeName, themeSizes);
|
|
10767
|
-
return rule(`:where([data-theme-scope="${themeId}"]) ${themeButtonSelector(variantId, sizeName)}`, [
|
|
10776
|
+
return rule(`:where([data-theme-scope="${themeId}"]) ${themeButtonSelector(variantId, sizeName)}`, [
|
|
10777
|
+
...paddingDeclarations(config.padding, borderWidth),
|
|
10778
|
+
...config.fontSize ? [["font-size", FONT_SIZE_MAP[config.fontSize] || "1rem"]] : [],
|
|
10779
|
+
...config.borderRadius ? [["border-radius", buttonRadius(config.borderRadius)]] : []
|
|
10780
|
+
]);
|
|
10768
10781
|
});
|
|
10769
10782
|
}
|
|
10770
10783
|
function variantStateSizeRules(variant, variantId, themeId) {
|
|
@@ -10779,11 +10792,24 @@ function variantStateSizeRules(variant, variantId, themeId) {
|
|
|
10779
10792
|
].flatMap((state) => BUTTON_SIZE_NAMES.flatMap((size) => {
|
|
10780
10793
|
const base = states.base.sizes[size];
|
|
10781
10794
|
const target = states[state].sizes[size];
|
|
10782
|
-
|
|
10795
|
+
const declarations = stateSizeDeclarations(base, target, width(states.base.border), width(states[state].border), states.base.borderRadius, states[state].borderRadius);
|
|
10796
|
+
if (declarations.length === 0) return [];
|
|
10783
10797
|
const selector = `:where([data-theme-scope="${themeId}"]) ${themeButtonSelector(variantId, size)}`;
|
|
10784
|
-
return [rule(state === "hover" ? [`${selector}:hover`, `${selector}[data-force-hover="true"]`] : `${selector}:${state}`,
|
|
10798
|
+
return [rule(state === "hover" ? [`${selector}:hover`, `${selector}[data-force-hover="true"]`] : `${selector}:${state}`, declarations)];
|
|
10785
10799
|
}));
|
|
10786
10800
|
}
|
|
10801
|
+
/** Size radius overrides remain owned by each state, just like padding and type. */
|
|
10802
|
+
function stateSizeDeclarations(base, target, baseWidth, targetWidth, baseRadius, targetRadius) {
|
|
10803
|
+
const originalRadius = buttonRadius(base.borderRadius ?? baseRadius);
|
|
10804
|
+
const radius = buttonRadius(target.borderRadius ?? targetRadius);
|
|
10805
|
+
const radiusChanges = originalRadius === radius ? [] : [["border-radius", radius]];
|
|
10806
|
+
if (base.padding === target.padding && base.fontSize === target.fontSize && baseWidth === targetWidth) return radiusChanges;
|
|
10807
|
+
return [
|
|
10808
|
+
...paddingDeclarations(target.padding, targetWidth),
|
|
10809
|
+
...target.fontSize ? [["font-size", FONT_SIZE_MAP[target.fontSize] || "1rem"]] : [],
|
|
10810
|
+
...radiusChanges
|
|
10811
|
+
];
|
|
10812
|
+
}
|
|
10787
10813
|
/** Layout contexts do not change a recipe: grouped actions share its ordinary box. */
|
|
10788
10814
|
function generateButtonActionLayoutCss(options) {
|
|
10789
10815
|
const system = options.buttonSystem ?? generateDefaultButtonSystem(options.theme);
|
|
@@ -10866,6 +10892,287 @@ function normalizeAppearance(appearance) {
|
|
|
10866
10892
|
};
|
|
10867
10893
|
}
|
|
10868
10894
|
//#endregion
|
|
10895
|
+
//#region ../theme-core/src/buttons/styles/recipes/lanternRecipes.ts
|
|
10896
|
+
const flatShadow = {
|
|
10897
|
+
elevation: "none",
|
|
10898
|
+
softness: null,
|
|
10899
|
+
position: "bottom"
|
|
10900
|
+
};
|
|
10901
|
+
const lift$1 = {
|
|
10902
|
+
effectId: "lift",
|
|
10903
|
+
options: { amount: "0.125" }
|
|
10904
|
+
};
|
|
10905
|
+
const tags = {
|
|
10906
|
+
tone: "classic",
|
|
10907
|
+
energy: "calm",
|
|
10908
|
+
motion: "subtle",
|
|
10909
|
+
era: "editorial"
|
|
10910
|
+
};
|
|
10911
|
+
/** Each role supplies complete states, including a flat surface-ink focus ring. */
|
|
10912
|
+
function states(base, hover, offset = 4, width = 2) {
|
|
10913
|
+
return {
|
|
10914
|
+
base,
|
|
10915
|
+
hover,
|
|
10916
|
+
focus: {
|
|
10917
|
+
...base,
|
|
10918
|
+
shadow: "focus-indicator",
|
|
10919
|
+
indicator: {
|
|
10920
|
+
kind: "surface-ink",
|
|
10921
|
+
width,
|
|
10922
|
+
offset
|
|
10923
|
+
}
|
|
10924
|
+
},
|
|
10925
|
+
active: {
|
|
10926
|
+
...base,
|
|
10927
|
+
transform: "none"
|
|
10928
|
+
},
|
|
10929
|
+
disabled: {
|
|
10930
|
+
...base,
|
|
10931
|
+
effects: []
|
|
10932
|
+
}
|
|
10933
|
+
};
|
|
10934
|
+
}
|
|
10935
|
+
const gilt = {
|
|
10936
|
+
text: "treatment",
|
|
10937
|
+
border: "none",
|
|
10938
|
+
borderRadius: "rounded-10px",
|
|
10939
|
+
shadow: flatShadow,
|
|
10940
|
+
sizes: {
|
|
10941
|
+
sm: {
|
|
10942
|
+
padding: "10px 20px",
|
|
10943
|
+
fontSize: "text-base",
|
|
10944
|
+
borderRadius: "rounded-lg"
|
|
10945
|
+
},
|
|
10946
|
+
md: {
|
|
10947
|
+
padding: "18px 36px",
|
|
10948
|
+
fontSize: "text-19px"
|
|
10949
|
+
},
|
|
10950
|
+
lg: {
|
|
10951
|
+
padding: "18px 36px",
|
|
10952
|
+
fontSize: "text-19px"
|
|
10953
|
+
},
|
|
10954
|
+
xl: {
|
|
10955
|
+
padding: "18px 36px",
|
|
10956
|
+
fontSize: "text-19px"
|
|
10957
|
+
}
|
|
10958
|
+
},
|
|
10959
|
+
typography: {
|
|
10960
|
+
fontWeight: 400,
|
|
10961
|
+
typography: "heading",
|
|
10962
|
+
fontSize: "text-19px",
|
|
10963
|
+
letterSpacing: "slight",
|
|
10964
|
+
italic: false,
|
|
10965
|
+
textTransform: "none"
|
|
10966
|
+
},
|
|
10967
|
+
effects: []
|
|
10968
|
+
};
|
|
10969
|
+
const giltPrimary = {
|
|
10970
|
+
...gilt,
|
|
10971
|
+
background: {
|
|
10972
|
+
type: "gradient",
|
|
10973
|
+
stops: ["accent", "primary"],
|
|
10974
|
+
direction: "to-br",
|
|
10975
|
+
foregroundToken: "onAccent"
|
|
10976
|
+
}
|
|
10977
|
+
};
|
|
10978
|
+
const giltPrimaryHover = {
|
|
10979
|
+
...giltPrimary,
|
|
10980
|
+
background: {
|
|
10981
|
+
...giltPrimary.background,
|
|
10982
|
+
stops: ["accent-400", "primary-400"],
|
|
10983
|
+
foregroundToken: "secondary-950"
|
|
10984
|
+
},
|
|
10985
|
+
effects: [lift$1]
|
|
10986
|
+
};
|
|
10987
|
+
const giltSecondary = {
|
|
10988
|
+
...gilt,
|
|
10989
|
+
background: {
|
|
10990
|
+
type: "solid",
|
|
10991
|
+
colorToken: "text"
|
|
10992
|
+
}
|
|
10993
|
+
};
|
|
10994
|
+
const giltSecondaryHover = {
|
|
10995
|
+
...giltSecondary,
|
|
10996
|
+
effects: [lift$1],
|
|
10997
|
+
contextualHover: {
|
|
10998
|
+
kind: "shade-shift",
|
|
10999
|
+
seedToken: unsafeAsOpaqueButtonColourToken("text"),
|
|
11000
|
+
fallbackDirection: "lighter"
|
|
11001
|
+
}
|
|
11002
|
+
};
|
|
11003
|
+
const giltPrimaryStates = states(giltPrimary, giltPrimaryHover);
|
|
11004
|
+
const giltSecondaryStates = states(giltSecondary, giltSecondaryHover);
|
|
11005
|
+
const giltSlabRecipe = defineStaticButtonStyleRecipe({
|
|
11006
|
+
id: "gilt-slab",
|
|
11007
|
+
accessibilityLabel: "Gilt slab",
|
|
11008
|
+
tags,
|
|
11009
|
+
system: { roles: {
|
|
11010
|
+
primary: { states: giltPrimaryStates },
|
|
11011
|
+
secondary: { states: giltSecondaryStates },
|
|
11012
|
+
outline: { states: giltSecondaryStates },
|
|
11013
|
+
ghost: { states: giltSecondaryStates },
|
|
11014
|
+
accent: { states: giltPrimaryStates }
|
|
11015
|
+
} }
|
|
11016
|
+
});
|
|
11017
|
+
const hairline = {
|
|
11018
|
+
text: "treatment",
|
|
11019
|
+
borderRadius: "rounded-3px",
|
|
11020
|
+
shadow: flatShadow,
|
|
11021
|
+
sizes: {
|
|
11022
|
+
sm: {
|
|
11023
|
+
padding: "9px 16px",
|
|
11024
|
+
fontSize: "text-xs"
|
|
11025
|
+
},
|
|
11026
|
+
md: {
|
|
11027
|
+
padding: "15px 28px",
|
|
11028
|
+
fontSize: "text-13px"
|
|
11029
|
+
},
|
|
11030
|
+
lg: {
|
|
11031
|
+
padding: "15px 28px",
|
|
11032
|
+
fontSize: "text-13px"
|
|
11033
|
+
},
|
|
11034
|
+
xl: {
|
|
11035
|
+
padding: "15px 28px",
|
|
11036
|
+
fontSize: "text-13px"
|
|
11037
|
+
}
|
|
11038
|
+
},
|
|
11039
|
+
typography: {
|
|
11040
|
+
fontWeight: 700,
|
|
11041
|
+
typography: "body",
|
|
11042
|
+
fontSize: "text-13px",
|
|
11043
|
+
letterSpacing: "wide",
|
|
11044
|
+
italic: false,
|
|
11045
|
+
textTransform: "uppercase"
|
|
11046
|
+
},
|
|
11047
|
+
effects: []
|
|
11048
|
+
};
|
|
11049
|
+
const hairlinePrimary = {
|
|
11050
|
+
...hairline,
|
|
11051
|
+
background: {
|
|
11052
|
+
type: "solid",
|
|
11053
|
+
colorToken: "primary"
|
|
11054
|
+
},
|
|
11055
|
+
border: {
|
|
11056
|
+
widthClass: "border",
|
|
11057
|
+
boundaryInk: unsafeAsOpaqueButtonColourToken("primary")
|
|
11058
|
+
}
|
|
11059
|
+
};
|
|
11060
|
+
const hairlineOutline = {
|
|
11061
|
+
...hairline,
|
|
11062
|
+
background: {
|
|
11063
|
+
type: "surface",
|
|
11064
|
+
role: "link"
|
|
11065
|
+
},
|
|
11066
|
+
border: {
|
|
11067
|
+
widthClass: "border",
|
|
11068
|
+
boundaryInk: unsafeAsOpaqueButtonColourToken("primary")
|
|
11069
|
+
}
|
|
11070
|
+
};
|
|
11071
|
+
const hairlineSecondary = {
|
|
11072
|
+
...hairlineOutline,
|
|
11073
|
+
border: {
|
|
11074
|
+
widthClass: "border",
|
|
11075
|
+
boundaryInk: unsafeAsOpaqueButtonColourToken("accent")
|
|
11076
|
+
}
|
|
11077
|
+
};
|
|
11078
|
+
const hairlineFilled = {
|
|
11079
|
+
...hairlineSecondary,
|
|
11080
|
+
background: {
|
|
11081
|
+
type: "solid",
|
|
11082
|
+
colorToken: "accent"
|
|
11083
|
+
}
|
|
11084
|
+
};
|
|
11085
|
+
const hairlinePrimaryStates = states(hairlinePrimary, hairlineOutline, 3);
|
|
11086
|
+
const hairlineSecondaryStates = states(hairlineSecondary, hairlineFilled, 3);
|
|
11087
|
+
const hairlineTabRecipe = defineStaticButtonStyleRecipe({
|
|
11088
|
+
id: "hairline-tab",
|
|
11089
|
+
accessibilityLabel: "Hairline tab",
|
|
11090
|
+
tags,
|
|
11091
|
+
system: { roles: {
|
|
11092
|
+
primary: { states: hairlinePrimaryStates },
|
|
11093
|
+
secondary: { states: hairlineSecondaryStates },
|
|
11094
|
+
outline: { states: hairlineSecondaryStates },
|
|
11095
|
+
ghost: { states: hairlineSecondaryStates },
|
|
11096
|
+
accent: { states: states(hairlineFilled, hairlineSecondary, 3) }
|
|
11097
|
+
} }
|
|
11098
|
+
});
|
|
11099
|
+
const marqueeAccent = {
|
|
11100
|
+
text: "treatment",
|
|
11101
|
+
borderRadius: "rounded-none",
|
|
11102
|
+
shadow: flatShadow,
|
|
11103
|
+
sizes: {
|
|
11104
|
+
sm: {
|
|
11105
|
+
padding: "8px 17px",
|
|
11106
|
+
fontSize: "text-15px"
|
|
11107
|
+
},
|
|
11108
|
+
md: {
|
|
11109
|
+
padding: "14px 25px",
|
|
11110
|
+
fontSize: "text-17px"
|
|
11111
|
+
},
|
|
11112
|
+
lg: {
|
|
11113
|
+
padding: "14px 25px",
|
|
11114
|
+
fontSize: "text-17px"
|
|
11115
|
+
},
|
|
11116
|
+
xl: {
|
|
11117
|
+
padding: "14px 25px",
|
|
11118
|
+
fontSize: "text-17px"
|
|
11119
|
+
}
|
|
11120
|
+
},
|
|
11121
|
+
typography: {
|
|
11122
|
+
fontWeight: 800,
|
|
11123
|
+
typography: "body",
|
|
11124
|
+
fontSize: "text-17px",
|
|
11125
|
+
letterSpacing: "loose",
|
|
11126
|
+
italic: false,
|
|
11127
|
+
textTransform: "uppercase"
|
|
11128
|
+
},
|
|
11129
|
+
effects: [],
|
|
11130
|
+
background: {
|
|
11131
|
+
type: "solid",
|
|
11132
|
+
colorToken: "accent"
|
|
11133
|
+
},
|
|
11134
|
+
border: {
|
|
11135
|
+
widthClass: "border-2",
|
|
11136
|
+
boundaryInk: unsafeAsOpaqueButtonColourToken("accent")
|
|
11137
|
+
}
|
|
11138
|
+
};
|
|
11139
|
+
const marqueePrimary = {
|
|
11140
|
+
...marqueeAccent,
|
|
11141
|
+
background: {
|
|
11142
|
+
type: "solid",
|
|
11143
|
+
colorToken: "primary"
|
|
11144
|
+
},
|
|
11145
|
+
border: {
|
|
11146
|
+
widthClass: "border-2",
|
|
11147
|
+
boundaryInk: unsafeAsOpaqueButtonColourToken("primary")
|
|
11148
|
+
}
|
|
11149
|
+
};
|
|
11150
|
+
const marqueeSecondary = {
|
|
11151
|
+
...marqueeAccent,
|
|
11152
|
+
background: {
|
|
11153
|
+
type: "solid",
|
|
11154
|
+
colorToken: "text"
|
|
11155
|
+
},
|
|
11156
|
+
border: {
|
|
11157
|
+
widthClass: "border-2",
|
|
11158
|
+
boundaryInk: unsafeAsOpaqueButtonColourToken("text")
|
|
11159
|
+
}
|
|
11160
|
+
};
|
|
11161
|
+
const marqueePrimaryStates = states(marqueeAccent, marqueePrimary, 4, 3);
|
|
11162
|
+
const marqueeSecondaryStates = states(marqueeSecondary, marqueeAccent, 4, 3);
|
|
11163
|
+
const marqueeRecipe = defineStaticButtonStyleRecipe({
|
|
11164
|
+
id: "marquee",
|
|
11165
|
+
accessibilityLabel: "Marquee",
|
|
11166
|
+
tags,
|
|
11167
|
+
system: { roles: {
|
|
11168
|
+
primary: { states: marqueePrimaryStates },
|
|
11169
|
+
secondary: { states: marqueeSecondaryStates },
|
|
11170
|
+
outline: { states: marqueeSecondaryStates },
|
|
11171
|
+
ghost: { states: marqueeSecondaryStates },
|
|
11172
|
+
accent: { states: marqueePrimaryStates }
|
|
11173
|
+
} }
|
|
11174
|
+
});
|
|
11175
|
+
//#endregion
|
|
10869
11176
|
//#region ../theme-core/src/buttons/styles/recipes/fulcrumRecipe.ts
|
|
10870
11177
|
const fulcrumSizes = {
|
|
10871
11178
|
sm: {
|
|
@@ -11607,7 +11914,10 @@ const BUTTON_STYLE_IDS = [
|
|
|
11607
11914
|
"offset-block",
|
|
11608
11915
|
"ringed-pill",
|
|
11609
11916
|
"square-outline",
|
|
11610
|
-
"fulcrum"
|
|
11917
|
+
"fulcrum",
|
|
11918
|
+
"gilt-slab",
|
|
11919
|
+
"hairline-tab",
|
|
11920
|
+
"marquee"
|
|
11611
11921
|
];
|
|
11612
11922
|
const quietArrowParametersSchema = z.object({ secondaryTreatment: z.enum(["outlined", "solid-accent"]) }).strict();
|
|
11613
11923
|
const flatInkHoverTreatmentSchema = z.enum([
|
|
@@ -11644,7 +11954,10 @@ const buttonStyleSelectionSchema = z.discriminatedUnion("styleId", [
|
|
|
11644
11954
|
selectionBranch("offset-block", emptyParametersSchema),
|
|
11645
11955
|
selectionBranch("ringed-pill", emptyParametersSchema),
|
|
11646
11956
|
selectionBranch("square-outline", emptyParametersSchema),
|
|
11647
|
-
selectionBranch("fulcrum", emptyParametersSchema)
|
|
11957
|
+
selectionBranch("fulcrum", emptyParametersSchema),
|
|
11958
|
+
selectionBranch("gilt-slab", emptyParametersSchema),
|
|
11959
|
+
selectionBranch("hairline-tab", emptyParametersSchema),
|
|
11960
|
+
selectionBranch("marquee", emptyParametersSchema)
|
|
11648
11961
|
]);
|
|
11649
11962
|
/**
|
|
11650
11963
|
* Stable identity for a validated style selection. Parsing first canonicalises
|
|
@@ -15171,7 +15484,10 @@ const buttonStyleRecipes = [
|
|
|
15171
15484
|
offsetBlockRecipe,
|
|
15172
15485
|
ringedPillRecipe,
|
|
15173
15486
|
squareOutlineRecipe,
|
|
15174
|
-
fulcrumRecipe
|
|
15487
|
+
fulcrumRecipe,
|
|
15488
|
+
giltSlabRecipe,
|
|
15489
|
+
hairlineTabRecipe,
|
|
15490
|
+
marqueeRecipe
|
|
15175
15491
|
];
|
|
15176
15492
|
const recipesById = new Map(buttonStyleRecipes.map((recipe) => [recipe.id, recipe]));
|
|
15177
15493
|
function findButtonStyleRecipe(id) {
|
|
@@ -15187,6 +15503,9 @@ function resolveButtonStyleSelection(selection) {
|
|
|
15187
15503
|
case "editorial-link": return resolveButtonStyleRecipe(editorialLinkRecipe, selection.parameters);
|
|
15188
15504
|
case "pebble": return resolveButtonStyleRecipe(pebbleRecipe, selection.parameters);
|
|
15189
15505
|
case "ink-stamp": return resolveButtonStyleRecipe(inkStampRecipe, selection.parameters);
|
|
15506
|
+
case "gilt-slab": return resolveButtonStyleRecipe(giltSlabRecipe, selection.parameters);
|
|
15507
|
+
case "hairline-tab": return resolveButtonStyleRecipe(hairlineTabRecipe, selection.parameters);
|
|
15508
|
+
case "marquee": return resolveButtonStyleRecipe(marqueeRecipe, selection.parameters);
|
|
15190
15509
|
case "fulcrum": return resolveButtonStyleRecipe(fulcrumRecipe, selection.parameters);
|
|
15191
15510
|
case "flat-ink": return resolveButtonStyleRecipe(flatInkRecipe, selection.parameters);
|
|
15192
15511
|
case "brushed-wash": return resolveButtonStyleRecipe(brushedWashRecipe, selection.parameters);
|
|
@@ -16522,4 +16841,4 @@ function ThemedAuthoredButton({ label, href, variant, size, extraClassName, disa
|
|
|
16522
16841
|
});
|
|
16523
16842
|
}
|
|
16524
16843
|
//#endregion
|
|
16525
|
-
export { headerInteractionPaletteValues as $, renderableMediaAssetSchema as $n,
|
|
16844
|
+
export { headerInteractionPaletteValues as $, renderableMediaAssetSchema as $n, confirmationPaymentSchema as $r, TokenResolver as $t, updateButtonStyleHoverPreference as A, unsafeAsSiteId as Ai, DEFAULT_SURFACE_TEXT_COLOR as An, offeringsPreviewCompositionTreatmentValues as Ar, NAV_LINK_PADDING_MAP as At, generateInteractiveChildInheritanceCSS as B, hexColorSchema as Bn, VARIANT_ROLES as Br, LABEL_FONT_SIZE_MAP as Bt, MinusIcon as C, unsafeAsAppointmentServiceId as Ci, defaultThemeTokens as Cn, eyebrowTreatmentValues as Cr, selectLogoAccommodation as Ct, defaultButtonStyleSelectionFor as D, unsafeAsPassId as Di, featuresFromHex as Dn, introCompositionTreatmentValues as Dr, parseCustomCssRules as Dt, buttonStyleSelectionParameterValue as E, unsafeAsMediaAssetId as Ei, relativeLuminance as En, headingDecorationColorTokenValues as Er, parseBlockCustomCssRules as Et, generateButtonActionLayoutCss as F, __commonJSMin as Fi, generateShadowValue$1 as Fn, tileTreatmentValues as Fr, navLinkOwnsUnderline as Ft, corners as G, paletteValueKey as Gn, parseColorTokenParts as Gr, ICON_CONFIG as Gt, parseThemeForPersistence as H, paletteColorsEqual as Hn, parseThemeColorToken as Hr, ACCORDION_SPACING_MAP as Ht, generateButtonCss as I, __exportAll as Ii, cardRoleSchema as In, visibleHeadingDecorationFamilyValues as Ir, navEffectPolicy as It, themeSchema as J, imageMediaSchema as Jn, checkBrowserStripeKey as Jr, renderCssDeclarations as Jt, headerPositioningValues as K, paletteValueKeySchema as Kn, SpinnerNode as Kr, ICON_SIZE_PX as Kt, generateDefaultButtonSystem as L, __toESM as Li, cardRoleValues as Ln, buildFontPreviewUrl as Lr, FONT_WEIGHT_MAP$1 as Lt, buttonStyleSelectionKey as M, unsafeAsStoragePath as Mi, surfaceForegroundInputFromResolved as Mn, plainFrame as Mr, NAV_LINK_TEXT_SIZE_MAP as Mt, buttonStyleSelectionSchema as N, err as Ni, surfaceForegroundStyle as Nn, requireNonEmptyReadonlyArray as Nr, navLinkHoverColorCandidate as Nt, findButtonStyleRecipe as O, unsafeAsPositiveByteCount as Oi, hexToRgb as On, makeBoundaryId as Or, NAV_LINK_BORDER_RADIUS_MAP as Ot, buttonStyleSelectionsEqual as P, ok as Pi, surfaceForegroundValue as Pn, testimonialsCompositionTreatmentValues as Pr, navLinkOwnsHoverForeground as Pt, headerInteractionPalettePair as Q, buildRenderableMediaAssetIndex as Qn, getStripeMinimumChargeRequirement as Qr, toAccessibleColorSurfaceIntent as Qt, generateEffectsCSS as R, cardVariantRoleValues as Rn, generateFontFaceCss as Rr, INPUT_FONT_SIZE_MAP as Rt, FileTextIcon as S, unsafeAsAppointmentResourceId as Si, buildThemeTokens as Sn, eventListTreatmentValues as Sr, resolveBrandDisplay as St, buttonStyleHoverPreferenceValue as T, unsafeAsFormId as Ti, contrastRatio as Tn, flushPanelFrame as Tr, getComponentShadowVar as Tt, cardStylesOverrideSchema as U, paletteColorsSchema as Un, themeColorShadeSteps as Ur, ACCORDION_TRIGGER_FONT_SCALE as Ut, parseThemeButtonVariantId as V, paletteColorEntries as Vn, unsafeAsOpaqueButtonColourToken as Vr, ACCORDION_OPEN_ACCENT_THICKNESS as Vt, containerStylesOverrideSchema as W, paletteModeSchema as Wn, parseBlockColorToken as Wr, ACCORDION_TRIGGER_LETTER_SPACING as Wt, boxBackgroundSchema as X, mediaSchema as Xn, parseEventRegistrationErrorReason as Xr, resolveSurface as Xt, boxBackgroundOverlaySchema as Y, mediaPosterSchema as Yn, eventRegistrationErrors as Yr, contrastThresholdByPolicy as Yt, runtimeBoxBackgroundSchema as Z, runtimeMediaSchema as Zn, checkoutCopy as Zr, surfaceDecorationColors as Zt, CirclePlusIcon as _, parseFormId as _i, resolveSurfaceForeground as _n, assertNever as _r, stripStaleTransitionStyleGroup as _t, ThemedDownloadLink as a, resolveBookingCollectionOptionFacts as ai, textColorStyle as an, asAppearancePresetId as ar, BREAKPOINT_LG as at, FileAudioIcon as b, parseSiteId as bi, planForegroundHover as bn, defineFrameCapability as br, deterministicLogoFactsForShape as bt, isKnownIconName as c, getBookingInstalmentPlanIntervalCount as ci, opaqueSurfaceDeclarations as cn, asBoundaryOptionId as cr, MQ_MD_DOWN as ct, resolveIconPickerPreset as d, parseApiKeyId as di, resolveThemeColorReferenceValue as dn, asDesignEntryId as dr, MQ_TABLET_ONLY as dt, planCheckoutPaymentFlow as ei, backgroundColorStyle as en, indexRenderableMediaAssets as er, headerInteractionQuietPalette as et, SEMANTIC_ICON_DEFINITIONS as f, parseContentEntryId as fi, resolveTokenOrCssColorValue as fn, asDesignPageId as fr, headerVariantValues as ft, CircleMinusIcon as g, parseEventSeriesId as gi, surfaceToneFromForegroundToken as gn, asSiteStyleId as gr, siteChromeBackgroundOverrideOwner as gt, ChevronDownIcon as h, parseEventOfferingId as hi, selectLogoVariant as hn, asPageFlowPresetId as hr, pageDesignEditorBackgroundOverrideOwner as ht, ThemedButtonSpecimen as i, resolveAvailableBookingCollectionOptions as ii, rgbColorValue as in, skinTokenCssVars as ir, renderHeaderPaintTargetRules as it, updateButtonStyleSelectionChoice as j, unsafeAsStorageBucketName as ji, surfaceForegroundDeclarations as jn, panelFrame as jr, NAV_LINK_PADDING_X_MAP as jt, resolveButtonStyleSelection as k, unsafeAsPositiveSeconds as ki, rgbToHex as kn, noHeadingDecoration as kr, NAV_LINK_LETTER_SPACING_MAP as kt, ICON_PICKER_PRESETS as l, formatCurrencyAmount as li, isCssColorLiteral as ln, asDesignBlockId as lr, MQ_SM_DOWN as lt, ArrowDownIcon as m, parseEditorClientId as mi, PUBLIC_BUTTON_ROLES as mn, asLayoutVariantKey as mr, isThemeV2NormalEditorRawStylePath as mt, ThemedButton as n, isBookingCollectionEquivalentToUpfront as ni, cssVarValue as nn, mediaIdentifierSchema as nr, generateMobileOverlayBackdropFilterFix as nt, getIconComponent as o, getBookingLaterInstalments as oi, textColorValue as on, asBlockContentVersionId as or, BREAKPOINT_XL as ot, isSemanticIconId as p, parseContentVersionId as pi, generateShadowValue as pn, asDesignSystemTemplateId as pr, isThemeV2NormalEditorRawStyleFieldName as pt, sectionStylesOverrideSchema as q, requirePaletteColorsFromEntries as qn, clsx as qr, generateCardCss as qt, ThemedButtonLink as r, repriceBookingCollectionOptions as ri, mergeStyles as rn, parseCanonicalMediaIdentifier as rr, getHeaderPaintTargets as rt, getIconPickerOptionsForPreset as s, validateBookingPaymentOptionKinds as si, opaqueSurfaceContextFromTheme as sn, asBlockOrderIndex as sr, MQ_LG_UP as st, ThemedAuthoredButton as t, planFlexibleBalanceCreditFirst as ti, borderColorStyle as tn, resolveManagedMediaReference as tr, generateHeaderScrollTreatmentStyles as tt, isIconPickerPreset as u, expectParsedBrandedId as ui, resolveOnColorForThemeToken as un, asDesignBoundaryId as ur, MQ_SM_UP as ut, ClockIcon as v, parsePageId as vi, expandPalette as vn, defineBlockDesignCapability as vr, themeV2RuntimeStyleFieldNames as vt, PlusIcon as w, unsafeAsCustomerPassId as wi, ORDINARY_TEXT_MIN_CONTRAST_RATIO as wn, featureCardCompositionTreatmentValues as wr, getComponentBorderWidthPx as wt, FileSpreadsheetIcon as x, parseUserId as xi, resolveConcreteColorHex as xn, designIssueSeverityForPolicy as xr, logoSizePolicyValues as xt, FileArchiveIcon as y, parsePageSurfaceId as yi, getTextColorForBackground as yn, defineExactCatalog as yr, brandDisplayModeValues as yt, generateBaseInteractiveCSS as z, normalizeCardRole as zn, getSiteFontsStorageUrl as zr, INPUT_SPACING_MAP as zt };
|