@riverbankcms/sdk 0.125.0 → 0.127.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -1
- package/dist/{PreviewEditorSidebar-BezDOtQ7.mjs → PreviewEditorSidebar-BXtfF7tp.mjs} +122 -301
- package/dist/{PreviewEditorUI-CgSqmfo2.mjs → PreviewEditorUI-Dou73Q0K.mjs} +3 -3
- package/dist/{PreviewQueryProvider-BH-3-jSj.mjs → PreviewQueryProvider-DgFDIwvK.mjs} +1 -1
- package/dist/{SdkPreviewModeRuntime-Co3AHfj0.mjs → SdkPreviewModeRuntime-B0HPXr-l.mjs} +141 -63
- package/dist/{SiteChromeCustomizeContext-BHF-KANn.mjs → SiteChromeCustomizeContext-DZiDBAYu.mjs} +5330 -5841
- package/dist/_dts/ai/src/contracts/proposals.d.ts +1552 -202
- package/dist/_dts/api/src/common/envelope.d.ts +1 -1
- package/dist/_dts/api/src/contentRuntime.d.ts +1 -7
- package/dist/_dts/api/src/endpoints.d.ts +0 -7
- package/dist/_dts/api/src/sdk-event-upsert.d.ts +42 -0
- package/dist/_dts/api/src/sdkContracts.d.ts +11 -9
- package/dist/_dts/api/src/siteOperations.d.ts +18 -1
- package/dist/_dts/api/src/siteRuntimeEndpoints.d.ts +1 -14
- package/dist/_dts/block-form/src/backend/store-backend.d.ts +2 -1
- package/dist/_dts/block-form/src/blockDraftSaveability.d.ts +1 -0
- package/dist/_dts/blocks/src/index.d.ts +3 -2
- package/dist/_dts/blocks/src/lib/media.d.ts +267 -0
- package/dist/_dts/blocks/src/system/constants/buttonRoles.d.ts +0 -13
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationStripeReturn.d.ts +15 -2
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/eventCollectionContract.d.ts +4 -4
- package/dist/_dts/blocks/src/system/runtime/nodes/mergeResolveImageUrlContexts.d.ts +7 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/shared/contract-schemas.d.ts +2 -2
- package/dist/_dts/content-editor/src/ui/blockValidationManifestRegistry.d.ts +17 -0
- package/dist/_dts/content-editor/src/ui/blockValidationView.d.ts +1 -1
- package/dist/_dts/content-editor/src/ui/editorUiStore.d.ts +4 -0
- package/dist/_dts/db/src/generated/supabase/database.types.d.ts +322 -171
- package/dist/_dts/editor-blocks/src/BlockEditor.d.ts +4 -0
- package/dist/_dts/editor-blocks/src/block-editor/hooks/useBlockValidationManifests.d.ts +26 -0
- package/dist/_dts/editor-blocks/src/widgets/rich-text/imageInsert.d.ts +3 -3
- package/dist/_dts/media-editor/src/MediaEditor.d.ts +2 -2
- package/dist/_dts/media-editor/src/context.d.ts +1 -2
- package/dist/_dts/media-editor/src/index.d.ts +3 -1
- package/dist/_dts/media-editor/src/mediaSelection.d.ts +32 -0
- package/dist/_dts/media-editor/src/types.d.ts +3 -1
- package/dist/_dts/media-editor/src/useMediaSelection.d.ts +26 -0
- package/dist/_dts/preview-next/src/client/index.d.ts +2 -0
- package/dist/_dts/preview-next/src/client/preview/HeaderMenuControls.d.ts +12 -0
- package/dist/_dts/preview-next/src/client/preview/PreviewEditorSidebar.d.ts +1 -2
- package/dist/_dts/preview-next/src/client/preview/PreviewShell.d.ts +13 -3
- package/dist/_dts/preview-next/src/client/preview/PreviewShellLayout.d.ts +7 -2
- package/dist/_dts/preview-next/src/client/preview/SiteChromeCustomizeContext.d.ts +6 -60
- package/dist/_dts/preview-next/src/client/preview/StyleConfigurator.d.ts +3 -13
- package/dist/_dts/preview-next/src/client/preview/StyleConfigurator.state.d.ts +8 -100
- package/dist/_dts/preview-next/src/client/preview/headerInteractionPaletteSurfaceState.d.ts +8 -0
- package/dist/_dts/preview-next/src/client/preview/previewThemeRoles.d.ts +15 -0
- package/dist/_dts/preview-next/src/client/preview/siteChromeCustomizeTypes.d.ts +54 -0
- package/dist/_dts/preview-next/src/client/preview/siteChromeLookRows.d.ts +13 -3
- package/dist/_dts/preview-next/src/client/preview/siteChromeNavQuickControlHistory.d.ts +3 -0
- package/dist/_dts/preview-next/src/client/preview/siteChromeQuickControlHistoryState.d.ts +6 -3
- package/dist/_dts/preview-next/src/client/preview/siteStylePreviewPlanner.d.ts +1 -4
- package/dist/_dts/preview-next/src/client/preview/styleConfiguratorApplyPayload.d.ts +1 -15
- package/dist/_dts/preview-next/src/client/preview/styleConfiguratorSnapshot.d.ts +11 -21
- package/dist/_dts/sdk/src/cli/commands/event.d.ts +2 -2
- package/dist/_dts/sdk/src/cli/commands/eventOccurrenceSchedule.d.ts +12 -0
- package/dist/_dts/sdk/src/cli/commands/push/pushAllExtras.d.ts +6 -0
- package/dist/_dts/sdk/src/cli/commands/style.d.ts +1 -1
- package/dist/_dts/sdk/src/cli/content/legacyEventScheduleShapeError.d.ts +5 -0
- package/dist/_dts/sdk/src/cli/content/localEventSchedule.d.ts +17 -0
- package/dist/_dts/sdk/src/cli/content/reader.d.ts +5 -10
- package/dist/_dts/sdk/src/cli/migrations/events.d.ts +1 -1
- package/dist/_dts/sdk/src/cli/site-commands/eventScheduleCompiler.d.ts +24 -0
- package/dist/_dts/sdk/src/client/management/http.d.ts +1 -1
- package/dist/_dts/sdk/src/client/management/types.d.ts +3 -28
- package/dist/_dts/sdk/src/config/index.d.ts +1 -1
- package/dist/_dts/sdk/src/public-api/contracts.d.ts +5 -20
- package/dist/_dts/sdk/src/rendering/index.d.ts +1 -1
- package/dist/_dts/sdk/src/rendering/islands/types.d.ts +2 -2
- package/dist/_dts/sdk/src/version.d.ts +1 -1
- package/dist/_dts/site-commands/src/commandContract.d.ts +33 -5
- package/dist/_dts/site-commands/src/commandDomain.d.ts +2 -2
- package/dist/_dts/site-commands/src/commands.d.ts +38 -9
- package/dist/_dts/site-commands/src/siteStyleCommandSchema.d.ts +28 -1
- package/dist/_dts/site-commands/src/siteStyleSelectionSchemaBuilder.d.ts +4 -4
- package/dist/_dts/theme-core/src/buttons/effects/presets/background.d.ts +1 -1
- package/dist/_dts/theme-core/src/buttons/styles/registry.d.ts +0 -18
- package/dist/_dts/theme-core/src/buttons/types.d.ts +1 -3
- package/dist/_dts/theme-core/src/header/containerSchema.d.ts +20 -0
- package/dist/_dts/theme-core/src/header/generateHeaderCss.d.ts +1 -1
- package/dist/_dts/theme-core/src/header/interactionPalette.d.ts +14 -0
- package/dist/_dts/theme-core/src/header/legacyNavLinkStyle.d.ts +3 -0
- package/dist/_dts/theme-core/src/header/paintTargets.d.ts +25 -0
- package/dist/_dts/theme-core/src/header/scrollTreatment.d.ts +11 -0
- package/dist/_dts/theme-core/src/header/surfaceRules.d.ts +9 -0
- package/dist/_dts/theme-core/src/mock-themes/all.d.ts +15 -0
- package/dist/_dts/theme-core/src/palette/colors.d.ts +1 -1
- package/dist/_dts/theme-core/src/palette/concretePalette.d.ts +20 -0
- package/dist/_dts/theme-core/src/palette/curated/index.d.ts +2 -17
- package/dist/_dts/theme-core/src/palette/index.d.ts +1 -6
- package/dist/_dts/theme-core/src/palette/schema.d.ts +39 -0
- package/dist/_dts/theme-core/src/schema.d.ts +105 -45
- package/dist/_dts/theme-core/src/site-styles/appearancePresetCatalog.d.ts +3 -51
- package/dist/_dts/theme-core/src/site-styles/appearancePresetTypes.d.ts +4 -11
- package/dist/_dts/theme-core/src/site-styles/blockAppearancePresets.d.ts +3 -51
- package/dist/_dts/theme-core/src/site-styles/headerInteractionPalette.d.ts +32 -0
- package/dist/_dts/theme-core/src/site-styles/headerLooks.d.ts +19 -106
- package/dist/_dts/theme-core/src/site-styles/headerOpeningForeground.d.ts +22 -0
- package/dist/_dts/theme-core/src/site-styles/headerOpeningSection.d.ts +2 -0
- package/dist/_dts/theme-core/src/site-styles/headerStyleParts.d.ts +4 -0
- package/dist/_dts/theme-core/src/site-styles/index.d.ts +3 -0
- package/dist/_dts/theme-core/src/site-styles/lookOptionGroups.d.ts +24 -0
- package/dist/_dts/theme-core/src/site-styles/lookResolution.d.ts +1 -2
- package/dist/_dts/theme-core/src/site-styles/pageDesignEditorModel.d.ts +4 -22
- package/dist/_dts/theme-core/src/site-styles/pageDesignEditorOptions.d.ts +21 -0
- package/dist/_dts/theme-core/src/site-styles/previewCompiler.d.ts +5 -7
- package/dist/_dts/theme-core/src/site-styles/runtimeCompiler.d.ts +5 -6
- package/dist/_dts/theme-core/src/site-styles/siteChromeNavPreferences.d.ts +4 -1
- package/dist/cli/index.mjs +1583 -1601
- package/dist/cli/init-docs/content/cli-reference.md +6 -3
- package/dist/cli/init-docs/content/content-management.md +24 -13
- package/dist/client/{DiscountCodeDisclosure-CyPpekBp.mjs → DiscountCodeDisclosure-BDFRp8Y7.mjs} +1 -1
- package/dist/client/{EventCombined.client-zywit-60.mjs → EventCombined.client-DJgF1_lf.mjs} +2 -2
- package/dist/client/{EventListing.client-J2nLhkKT.mjs → EventListing.client-CnWGNjOr.mjs} +2 -2
- package/dist/client/{LeafletStaticMap-CSubXWt6.mjs → LeafletStaticMap-BISs9Bl7.mjs} +1 -1
- package/dist/client/{MagicLinkForm-DDLIfiq9.mjs → MagicLinkForm-b5E_HoG9.mjs} +1 -1
- package/dist/client/{StepIndicator-DE8EvHIp.mjs → StepIndicator-D8gVYkK-.mjs} +2 -2
- package/dist/client/{accordion-Ct5T5NiA.mjs → accordion-DFDajgDz.mjs} +1 -1
- package/dist/client/{bookingForm-DMxtLPxw.mjs → bookingForm-Bdqj9-52.mjs} +5 -6
- package/dist/client/bookings.mjs +315 -46
- package/dist/client/{carousel--FMqgvob.mjs → carousel-Cvqf-kN8.mjs} +1 -1
- package/dist/client/{cart-BKX1bWiU.mjs → cart-CuH2TJXP.mjs} +3 -3
- package/dist/client/{checkout-B_jxi4WW.mjs → checkout-CMNPpejZ.mjs} +3 -3
- package/dist/client/client.mjs +1381 -1427
- package/dist/client/{courseRegistration-DH4MlkRD.mjs → courseRegistration-DTEYWL6Z.mjs} +6 -7
- package/dist/client/{eventCalendar-BQILwAcL.mjs → eventCalendar-BW-XoxZ0.mjs} +4 -4
- package/dist/client/{eventCombined-DFFW_Vmo.mjs → eventCombined-Bpn7s0y9.mjs} +2 -2
- package/dist/client/{eventDetails-B045CTSJ.mjs → eventDetails-D2uUSTMH.mjs} +3 -3
- package/dist/client/{eventListing-BDMYNVzS.mjs → eventListing-CVr1c094.mjs} +2 -2
- package/dist/client/{eventRegistration-CQ2-BSnB.mjs → eventRegistration-Dv4AvkMw.mjs} +30 -22
- package/dist/client/{form-DJKuyZgN.mjs → form-DxdKf9fs.mjs} +1 -1
- package/dist/client/{headerSection-DeTjfiDo.mjs → headerSection-BaXI5Sro.mjs} +2 -2
- package/dist/client/hooks.mjs +851 -976
- package/dist/client/{locationMap-i2wDA8gB.mjs → locationMap-BEtW2fKz.mjs} +2 -2
- package/dist/client/{newsletterForm-DKiueauk.mjs → newsletterForm-BKKs0S4R.mjs} +1 -1
- package/dist/client/{pricing-C01J3Epx.mjs → pricing-ClkqcElA.mjs} +1 -1
- package/dist/client/{productDetail-Dfc1sZaX.mjs → productDetail-H-ru8dyy.mjs} +3 -3
- package/dist/client/{productList-BXbvXWTF.mjs → productList-Buyi5c0C.mjs} +3 -3
- package/dist/client/{propsDecoder-CIR5DQ1l.mjs → propsDecoder-BF7i6Ijg.mjs} +293 -65
- package/dist/client/rendering/client.mjs +1145 -1190
- package/dist/client/rendering/islands.mjs +18 -18
- package/dist/client/rendering.mjs +1257 -1298
- package/dist/client/{useDiscountCodeUi-Bcyh4508.mjs → scrollToBlock-D_7t8yWb.mjs} +18 -2
- package/dist/client/{shop-BbNwPKM-.mjs → shop-CF7SZQNX.mjs} +5 -6
- package/dist/client/{shop-commerce-XO-XMFEt.mjs → shop-commerce-DA7_Rq5p.mjs} +4 -4
- package/dist/client/{shop-commerce-store-Byh6OUGK.mjs → shop-commerce-store-BmLqW7Gh.mjs} +1 -1
- package/dist/client/{shopShared-Bbq39mwr.mjs → shopShared-WL-E1znM.mjs} +2 -2
- package/dist/client/{useEventFilters-C8OOJ3el.mjs → useEventFilters-rc8VLeLV.mjs} +2 -2
- package/dist/client/{usePolling-CyJVo9kF.mjs → usePolling-1ncrfd4S.mjs} +2 -2
- package/dist/preview-next/before-render.mjs +0 -7
- package/dist/preview-next/client/runtime.mjs +4 -4
- package/dist/preview-next/middleware.mjs +0 -7
- package/dist/{previewAuthStore-CJX21dGi.mjs → previewAuthStore-Dev9CdG9.mjs} +0 -7
- package/dist/{sdk-runtime-BGhyuE-E.mjs → sdk-runtime-BnrCCFJq.mjs} +2 -2
- package/dist/{separator-BFs-Kmv5.mjs → separator-CFvBx2yl.mjs} +1 -1
- package/dist/server/components.mjs +1389 -1489
- package/dist/server/config-validation.mjs +851 -976
- package/dist/server/config.mjs +851 -976
- package/dist/server/data.mjs +851 -976
- package/dist/server/index.mjs +1 -8
- package/dist/server/next.mjs +1393 -1500
- package/dist/server/page-converter.mjs +851 -976
- package/dist/server/prebuild.mjs +1 -1
- package/dist/server/rendering/server.mjs +1346 -1446
- package/dist/server/rendering.mjs +1390 -1490
- package/dist/server/routing.mjs +939 -1041
- package/dist/server/server.mjs +852 -984
- package/dist/server/theme-bridge.mjs +322 -279
- package/dist/server/theme.mjs +277 -33
- package/package.json +1 -1
- package/dist/_dts/editor-blocks/src/widgets/rich-text/ensureRichTextImageAssetIdentifier.d.ts +0 -8
- package/dist/_dts/theme-core/src/palette/editorState.d.ts +0 -75
- package/dist/_dts/theme-core/src/palette/libraryModel.d.ts +0 -64
- package/dist/_dts/theme-core/src/palette/persistenceReadSource.d.ts +0 -81
- package/dist/_dts/theme-core/src/palette/resolveSelection.d.ts +0 -75
- package/dist/_dts/theme-core/src/palette/selection.d.ts +0 -74
- package/dist/_dts/theme-core/src/palette/sitePalettePersistence.d.ts +0 -34
- package/dist/client/scrollToBlock-C86BYkyV.mjs +0 -17
|
@@ -953,9 +953,12 @@ calendar date is never accepted as an identity.
|
|
|
953
953
|
Cancellation preserves registrations and is idempotent. Deletion requires
|
|
954
954
|
zero registrations and confirmation (`--yes` for remote or JSON use).
|
|
955
955
|
|
|
956
|
-
|
|
957
|
-
`push events`
|
|
958
|
-
|
|
956
|
+
`pull events` writes the complete non-cancelled occurrence schedule into each
|
|
957
|
+
portable event file. `push events` creates those rows for a new series and
|
|
958
|
+
accepts an exact replay for an existing series. It deliberately rejects
|
|
959
|
+
existing-series additions, removals, or retiming; use the imperative occurrence
|
|
960
|
+
commands for those operational changes. Cancelled occurrence tombstones remain
|
|
961
|
+
in the CMS and are omitted from portable authored content.
|
|
959
962
|
|
|
960
963
|
### verify
|
|
961
964
|
|
|
@@ -630,15 +630,23 @@ Footer links are managed via the site's footer navigation menu (see `content/nav
|
|
|
630
630
|
"path": "/events/yoga-class",
|
|
631
631
|
"status": "active",
|
|
632
632
|
"visibility": "public",
|
|
633
|
+
"preset": "class",
|
|
634
|
+
"bookingScope": "single_occurrence",
|
|
635
|
+
"occurrences": [
|
|
636
|
+
{
|
|
637
|
+
"startsAt": "2026-01-05T15:00:00.000Z",
|
|
638
|
+
"endsAt": "2026-01-05T16:00:00.000Z",
|
|
639
|
+
"timeZone": "America/Los_Angeles"
|
|
640
|
+
},
|
|
641
|
+
{
|
|
642
|
+
"startsAt": "2026-01-12T15:00:00.000Z",
|
|
643
|
+
"endsAt": "2026-01-12T16:00:00.000Z",
|
|
644
|
+
"timeZone": "America/Los_Angeles"
|
|
645
|
+
}
|
|
646
|
+
],
|
|
633
647
|
"venueRef": "main-hall",
|
|
634
648
|
"categoryRef": "workshop",
|
|
635
649
|
"capacity": 30,
|
|
636
|
-
"schedule": {
|
|
637
|
-
"recurrenceRule": "FREQ=WEEKLY;BYDAY=MO",
|
|
638
|
-
"startDate": "2026-01-05",
|
|
639
|
-
"defaultStartTime": "07:00:00",
|
|
640
|
-
"durationMinutes": 60
|
|
641
|
-
},
|
|
642
650
|
"pricing": {
|
|
643
651
|
"requiresPayment": true,
|
|
644
652
|
"priceAmount": 2500,
|
|
@@ -674,8 +682,10 @@ Footer links are managed via the site's footer navigation menu (see `content/nav
|
|
|
674
682
|
**Event field notes:**
|
|
675
683
|
|
|
676
684
|
- `priceAmount` is in cents (2500 = $25.00)
|
|
677
|
-
- `
|
|
678
|
-
|
|
685
|
+
- `preset` controls the event's presentation defaults; `bookingScope` controls
|
|
686
|
+
whether a registration selects one occurrence or the complete series.
|
|
687
|
+
- `occurrences` is the complete authored schedule. Instants use canonical UTC
|
|
688
|
+
ISO datetimes and every item carries the event's IANA timezone.
|
|
679
689
|
- `venueRef` and `categoryRef` reference slugs/identifiers from venues and event-categories
|
|
680
690
|
- `status`: "draft", "active", "completed", "cancelled", or "archived"
|
|
681
691
|
- `visibility`: "private", "public", or "unlisted"
|
|
@@ -688,11 +698,12 @@ Footer links are managed via the site's footer navigation menu (see `content/nav
|
|
|
688
698
|
|
|
689
699
|
See `cli-reference.md` for event-related CLI commands: `riverbankcms push/pull venues|event-categories|events`.
|
|
690
700
|
|
|
691
|
-
|
|
692
|
-
|
|
693
|
-
|
|
694
|
-
|
|
695
|
-
|
|
701
|
+
`riverbankcms pull events` writes every non-cancelled occurrence to the event
|
|
702
|
+
file. Pushing a new event creates that explicit schedule, and pushing an
|
|
703
|
+
unchanged existing schedule is safe. Existing-series additions, removals, or
|
|
704
|
+
retiming remain an explicit capability gap; use `riverbankcms event occurrence
|
|
705
|
+
list|add|update|cancel|delete` for those operational changes. Cancelled rows are
|
|
706
|
+
operational tombstones and are not recreated from portable content.
|
|
696
707
|
|
|
697
708
|
---
|
|
698
709
|
|
package/dist/client/{DiscountCodeDisclosure-CyPpekBp.mjs → DiscountCodeDisclosure-BDFRp8Y7.mjs}
RENAMED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { X as themeButtonClassName } from "./propsDecoder-
|
|
2
|
+
import { X as themeButtonClassName } from "./propsDecoder-BF7i6Ijg.mjs";
|
|
3
3
|
import { useId } from "react";
|
|
4
4
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
5
5
|
//#region ../blocks/src/system/runtime/api/types/discounts.ts
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { t as clsx } from "./clsx-DgIEfj3H.mjs";
|
|
3
|
-
import { A as formatDate, E as getEventRuntimeFiltersKey, F as formatEventTeacherLine, I as formatTime, L as getCardOrientation, N as formatEventPrice, R as getContainerClass, T as buildEventRuntimeFilters, U as getEventAvailability, V as resolveEventLinkProps, X as themeButtonClassName, yt as assertNever, z as groupEventsByDate } from "./propsDecoder-
|
|
4
|
-
import { a as EventCardClient, i as EventPaginatedListView, n as useEventPagination, o as EventFilters, r as toError, t as useEventFilters } from "./useEventFilters-
|
|
3
|
+
import { A as formatDate, E as getEventRuntimeFiltersKey, F as formatEventTeacherLine, I as formatTime, L as getCardOrientation, N as formatEventPrice, R as getContainerClass, T as buildEventRuntimeFilters, U as getEventAvailability, V as resolveEventLinkProps, X as themeButtonClassName, yt as assertNever, z as groupEventsByDate } from "./propsDecoder-BF7i6Ijg.mjs";
|
|
4
|
+
import { a as EventCardClient, i as EventPaginatedListView, n as useEventPagination, o as EventFilters, r as toError, t as useEventFilters } from "./useEventFilters-rc8VLeLV.mjs";
|
|
5
5
|
import { n as useBlockApi } from "./context-CJz1Vlsz.mjs";
|
|
6
6
|
import { t as createBodyThemePortalRoot } from "./themePortalRoot-AGs4cE7t.mjs";
|
|
7
7
|
import { t as ModalShell } from "./ModalShell-CqkBvBIC.mjs";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { T as buildEventRuntimeFilters } from "./propsDecoder-
|
|
3
|
-
import { i as EventPaginatedListView, n as useEventPagination, o as EventFilters, t as useEventFilters } from "./useEventFilters-
|
|
2
|
+
import { T as buildEventRuntimeFilters } from "./propsDecoder-BF7i6Ijg.mjs";
|
|
3
|
+
import { i as EventPaginatedListView, n as useEventPagination, o as EventFilters, t as useEventFilters } from "./useEventFilters-rc8VLeLV.mjs";
|
|
4
4
|
import { useId, useMemo } from "react";
|
|
5
5
|
import { jsx } from "react/jsx-runtime";
|
|
6
6
|
//#region ../blocks/src/system/runtime/nodes/events/EventListing.client.tsx
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { J as isRecord } from "./propsDecoder-
|
|
2
|
+
import { J as isRecord } from "./propsDecoder-BF7i6Ijg.mjs";
|
|
3
3
|
import { useEffect, useRef, useState } from "react";
|
|
4
4
|
import { jsx } from "react/jsx-runtime";
|
|
5
5
|
//#region ../blocks/src/system/runtime/nodes/shared/LeafletStaticMap.tsx
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { X as themeButtonClassName, yt as assertNever } from "./propsDecoder-
|
|
2
|
+
import { X as themeButtonClassName, yt as assertNever } from "./propsDecoder-BF7i6Ijg.mjs";
|
|
3
3
|
import { n as useBlockApi } from "./context-CJz1Vlsz.mjs";
|
|
4
4
|
import { useEffect, useReducer, useState, useSyncExternalStore } from "react";
|
|
5
5
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { t as clsx } from "./clsx-DgIEfj3H.mjs";
|
|
2
|
-
import { Wt as formatCurrencyAmount } from "./propsDecoder-
|
|
3
|
-
import {
|
|
2
|
+
import { Wt as formatCurrencyAmount } from "./propsDecoder-BF7i6Ijg.mjs";
|
|
3
|
+
import { a as CheckIcon } from "./scrollToBlock-D_7t8yWb.mjs";
|
|
4
4
|
import "react";
|
|
5
5
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
6
6
|
//#region ../blocks/src/system/runtime/shared/utils/formatting.ts
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { t as defineIslandPropsDecoder } from "./propsDecoder-
|
|
1
|
+
import { t as defineIslandPropsDecoder } from "./propsDecoder-BF7i6Ijg.mjs";
|
|
2
2
|
//#region src/rendering/islands/enhancers/accordion.ts
|
|
3
3
|
const decode = defineIslandPropsDecoder("accordion");
|
|
4
4
|
function parseDefaultValues(value) {
|
|
@@ -1,16 +1,15 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { d as unsafeAsAppointmentResourceId, f as unsafeAsAppointmentServiceId, g as unsafeAsPassId, m as unsafeAsFormId, p as unsafeAsCustomerPassId } from "./colorStyles-BWpj_h4C.mjs";
|
|
3
|
-
import { n as buildBookingPaymentSelectionViewModel, t as usePolling } from "./usePolling-
|
|
4
|
-
import { Ct as okWith, Et as addLocalScheduleDays, Nt as parseBookingLocalDate, Pt as resolveBookingTimeZoneId, Tt as reportWorkflowSuccess, Wt as formatCurrencyAmount, X as themeButtonClassName, _t as toSelectedCollectionOptionKind, at as formatBookingCentsAsCurrencyInput, bt as clearWorkflowFeedback, ct as getBookingServiceSlidingScale, dt as parseBookingCurrencyInputToCents, ft as prepareBookingSubmission, gt as resolveDefaultBookingServiceId, ht as resolveBookingSiteId, it as deriveBookingFormViewState, jt as formatLocalScheduleDate, kt as formatBookingInstant, lt as getBookingSuccessMessage, mt as resolveBookingPaymentStep, ot as formatBookingSubmissionPreparationError, pt as resolveAppointmentCheckoutVerificationState, rt as logger, st as getBookingRedirectStateFromLocation, t as defineIslandPropsDecoder, ut as isBookingServiceSlidingAmountInRange, vt as BOOKING_FORM_DATA_RESERVED_KEYS, wt as reportWorkflowError, xt as err, yt as assertNever } from "./propsDecoder-
|
|
3
|
+
import { n as buildBookingPaymentSelectionViewModel, t as usePolling } from "./usePolling-1ncrfd4S.mjs";
|
|
4
|
+
import { Ct as okWith, Et as addLocalScheduleDays, Nt as parseBookingLocalDate, Pt as resolveBookingTimeZoneId, Tt as reportWorkflowSuccess, Wt as formatCurrencyAmount, X as themeButtonClassName, _t as toSelectedCollectionOptionKind, at as formatBookingCentsAsCurrencyInput, bt as clearWorkflowFeedback, ct as getBookingServiceSlidingScale, dt as parseBookingCurrencyInputToCents, ft as prepareBookingSubmission, gt as resolveDefaultBookingServiceId, ht as resolveBookingSiteId, it as deriveBookingFormViewState, jt as formatLocalScheduleDate, kt as formatBookingInstant, lt as getBookingSuccessMessage, mt as resolveBookingPaymentStep, ot as formatBookingSubmissionPreparationError, pt as resolveAppointmentCheckoutVerificationState, rt as logger, st as getBookingRedirectStateFromLocation, t as defineIslandPropsDecoder, ut as isBookingServiceSlidingAmountInRange, vt as BOOKING_FORM_DATA_RESERVED_KEYS, wt as reportWorkflowError, xt as err, yt as assertNever } from "./propsDecoder-BF7i6Ijg.mjs";
|
|
5
5
|
import { n as useBlockApi, t as BlockApiProvider } from "./context-CJz1Vlsz.mjs";
|
|
6
6
|
import { n as isSpamProtectionEnabled, r as AltchaWidget, t as getChallengeUrl } from "./src-B833rYRr.mjs";
|
|
7
|
-
import {
|
|
8
|
-
import { t as DiscountCodeDisclosure } from "./DiscountCodeDisclosure-
|
|
9
|
-
import { n as SpinnerNode, t as StepIndicator } from "./StepIndicator-
|
|
7
|
+
import { a as CheckIcon, i as StateIcon, n as useDiscountCodeUi, r as TerminalPanel, t as scrollToBlock } from "./scrollToBlock-D_7t8yWb.mjs";
|
|
8
|
+
import { t as DiscountCodeDisclosure } from "./DiscountCodeDisclosure-BDFRp8Y7.mjs";
|
|
9
|
+
import { n as SpinnerNode, t as StepIndicator } from "./StepIndicator-D8gVYkK-.mjs";
|
|
10
10
|
import { t as FeedbackMessage } from "./FeedbackMessage-ByMrs3cr.mjs";
|
|
11
11
|
import { n as getFieldValidationControlProps, t as FieldValidationMessage } from "./FieldValidationMessage-AYanWFb-.mjs";
|
|
12
12
|
import { t as buildCheckoutReturnUrls } from "./checkoutUrls-Ct8Mxna3.mjs";
|
|
13
|
-
import { t as scrollToBlock } from "./scrollToBlock-C86BYkyV.mjs";
|
|
14
13
|
import { t as mountReactIsland } from "./reactMount-SY8AVRof.mjs";
|
|
15
14
|
import { t as buildRouteIslandApiConfig } from "./routeIslandApiConfig-UNsfPcYq.mjs";
|
|
16
15
|
import React, { useCallback, useEffect, useLayoutEffect, useMemo, useReducer, useRef, useState } from "react";
|
package/dist/client/bookings.mjs
CHANGED
|
@@ -7416,7 +7416,7 @@ const PALETTE_TOKEN_NAMES = [
|
|
|
7416
7416
|
"text",
|
|
7417
7417
|
"border"
|
|
7418
7418
|
];
|
|
7419
|
-
z$1.enum(PALETTE_TOKEN_NAMES);
|
|
7419
|
+
const paletteTokenNameSchema = z$1.enum(PALETTE_TOKEN_NAMES);
|
|
7420
7420
|
const themeColorBaseTokenNames = [
|
|
7421
7421
|
...PALETTE_TOKEN_NAMES,
|
|
7422
7422
|
...blockColorTokenNames,
|
|
@@ -7475,8 +7475,6 @@ const VARIANT_ROLES = [
|
|
|
7475
7475
|
"secondary",
|
|
7476
7476
|
"outline",
|
|
7477
7477
|
"ghost",
|
|
7478
|
-
"link",
|
|
7479
|
-
"tertiary",
|
|
7480
7478
|
"accent"
|
|
7481
7479
|
];
|
|
7482
7480
|
/**
|
|
@@ -7485,7 +7483,7 @@ const VARIANT_ROLES = [
|
|
|
7485
7483
|
* IDs become class selectors, so keep the contract deliberately narrower than
|
|
7486
7484
|
* an arbitrary string and shared with every authoring/runtime boundary.
|
|
7487
7485
|
*/
|
|
7488
|
-
const buttonVariantIdSchema = z$1.string().min(1).max(50).regex(/^[a-z0-9-]+$/, "Button variant IDs may contain lowercase letters, numbers, and hyphens only");
|
|
7486
|
+
const buttonVariantIdSchema = z$1.string().min(1).max(50).regex(/^[a-z0-9-]+$/, "Button variant IDs may contain lowercase letters, numbers, and hyphens only").refine((value) => value !== "link" && value !== "tertiary", { message: "Retired button role IDs are not valid variant IDs" });
|
|
7489
7487
|
function parseOpaqueButtonColourToken(value) {
|
|
7490
7488
|
const token = parseThemeColorToken(value);
|
|
7491
7489
|
if (token === null) return null;
|
|
@@ -7897,6 +7895,172 @@ const mediaSchema$1 = z.object({
|
|
|
7897
7895
|
transform: transformSchema$1.optional()
|
|
7898
7896
|
});
|
|
7899
7897
|
//#endregion
|
|
7898
|
+
//#region ../theme-core/src/palette/colors.ts
|
|
7899
|
+
const HEX_COLOR_REGEX = /^#[0-9a-f]{6}$/;
|
|
7900
|
+
const NORMALIZABLE_HEX_REGEX = /^#(?:[0-9a-f]{3}|[0-9a-f]{6})$/i;
|
|
7901
|
+
const THEME_PALETTE_COLOR_ORDER = [
|
|
7902
|
+
"primary",
|
|
7903
|
+
"secondary",
|
|
7904
|
+
"accent",
|
|
7905
|
+
"success",
|
|
7906
|
+
"warning",
|
|
7907
|
+
"destructive",
|
|
7908
|
+
"background",
|
|
7909
|
+
"surface",
|
|
7910
|
+
"surfaceAlt",
|
|
7911
|
+
"muted",
|
|
7912
|
+
"text",
|
|
7913
|
+
"primaryForeground",
|
|
7914
|
+
"border"
|
|
7915
|
+
];
|
|
7916
|
+
const hexColorSchema = z$1.string().regex(HEX_COLOR_REGEX, "Hex must be #RRGGBB (lowercase)").transform((value) => value);
|
|
7917
|
+
const paletteModeSchema = z$1.enum(["light", "dark"]);
|
|
7918
|
+
const PALETTE_VALUE_KEY_PREFIX = "palette-value:v1|";
|
|
7919
|
+
z$1.string().regex(/^[0-9a-f]{64}$/, "Palette hash must be a lowercase SHA-256 value").transform((value) => value);
|
|
7920
|
+
const paletteColorsSchema = z$1.object({
|
|
7921
|
+
primary: hexColorSchema,
|
|
7922
|
+
primaryForeground: hexColorSchema,
|
|
7923
|
+
secondary: hexColorSchema,
|
|
7924
|
+
accent: hexColorSchema,
|
|
7925
|
+
success: hexColorSchema,
|
|
7926
|
+
warning: hexColorSchema,
|
|
7927
|
+
destructive: hexColorSchema,
|
|
7928
|
+
background: hexColorSchema,
|
|
7929
|
+
surface: hexColorSchema,
|
|
7930
|
+
surfaceAlt: hexColorSchema,
|
|
7931
|
+
muted: hexColorSchema,
|
|
7932
|
+
text: hexColorSchema,
|
|
7933
|
+
border: hexColorSchema
|
|
7934
|
+
}).strict().transform((value) => value);
|
|
7935
|
+
function normalizePaletteHex(value) {
|
|
7936
|
+
if (!NORMALIZABLE_HEX_REGEX.test(value)) return null;
|
|
7937
|
+
const normalized = value.toLowerCase();
|
|
7938
|
+
if (normalized.length === 7) return normalized;
|
|
7939
|
+
const triplet = normalized.slice(1);
|
|
7940
|
+
const red = triplet.charAt(0);
|
|
7941
|
+
const green = triplet.charAt(1);
|
|
7942
|
+
const blue = triplet.charAt(2);
|
|
7943
|
+
return `#${red}${red}${green}${green}${blue}${blue}`;
|
|
7944
|
+
}
|
|
7945
|
+
function paletteColorsFromEntries(entries) {
|
|
7946
|
+
const values = {};
|
|
7947
|
+
for (const entry of entries) {
|
|
7948
|
+
const parsedRole = paletteTokenNameSchema.safeParse(entry.name);
|
|
7949
|
+
if (!parsedRole.success) return {
|
|
7950
|
+
ok: false,
|
|
7951
|
+
error: {
|
|
7952
|
+
kind: "unknown-role",
|
|
7953
|
+
role: entry.name
|
|
7954
|
+
}
|
|
7955
|
+
};
|
|
7956
|
+
const role = parsedRole.data;
|
|
7957
|
+
if (values[role] !== void 0) return {
|
|
7958
|
+
ok: false,
|
|
7959
|
+
error: {
|
|
7960
|
+
kind: "duplicate-role",
|
|
7961
|
+
role
|
|
7962
|
+
}
|
|
7963
|
+
};
|
|
7964
|
+
const hex = normalizePaletteHex(entry.hex);
|
|
7965
|
+
if (!hex) return {
|
|
7966
|
+
ok: false,
|
|
7967
|
+
error: {
|
|
7968
|
+
kind: "invalid-color",
|
|
7969
|
+
role,
|
|
7970
|
+
value: entry.hex
|
|
7971
|
+
}
|
|
7972
|
+
};
|
|
7973
|
+
values[role] = hex;
|
|
7974
|
+
}
|
|
7975
|
+
const missing = PALETTE_TOKEN_NAMES.filter((role) => values[role] === void 0);
|
|
7976
|
+
if (missing.length > 0) return {
|
|
7977
|
+
ok: false,
|
|
7978
|
+
error: {
|
|
7979
|
+
kind: "missing-roles",
|
|
7980
|
+
roles: missing
|
|
7981
|
+
}
|
|
7982
|
+
};
|
|
7983
|
+
return {
|
|
7984
|
+
ok: true,
|
|
7985
|
+
colors: paletteColorsSchema.parse(values)
|
|
7986
|
+
};
|
|
7987
|
+
}
|
|
7988
|
+
function paletteColorEntries(colors) {
|
|
7989
|
+
return THEME_PALETTE_COLOR_ORDER.map((name) => ({
|
|
7990
|
+
name,
|
|
7991
|
+
hex: colors[name]
|
|
7992
|
+
}));
|
|
7993
|
+
}
|
|
7994
|
+
function paletteColorFingerprint(colors) {
|
|
7995
|
+
return PALETTE_TOKEN_NAMES.map((name) => `${name}:${colors[name]}`).join("|");
|
|
7996
|
+
}
|
|
7997
|
+
function canonicalPaletteHashInput(colors, mode) {
|
|
7998
|
+
return `${mode}|${paletteColorFingerprint(colors)}`;
|
|
7999
|
+
}
|
|
8000
|
+
/**
|
|
8001
|
+
* Stable curated-catalogue identity. Do not reorder roles: the order comes
|
|
8002
|
+
* from PALETTE_TOKEN_NAMES through canonicalPaletteHashInput.
|
|
8003
|
+
*/
|
|
8004
|
+
function paletteValueKey(colors, mode) {
|
|
8005
|
+
return `${PALETTE_VALUE_KEY_PREFIX}${canonicalPaletteHashInput(colors, mode)}`;
|
|
8006
|
+
}
|
|
8007
|
+
/** Parses only the exact v1 canonical form emitted by paletteValueKey. */
|
|
8008
|
+
function parsePaletteValueKey(value) {
|
|
8009
|
+
if (typeof value !== "string" || !value.startsWith(PALETTE_VALUE_KEY_PREFIX)) return null;
|
|
8010
|
+
const [rawMode, ...rawRoles] = value.slice(17).split("|");
|
|
8011
|
+
const mode = paletteModeSchema.safeParse(rawMode);
|
|
8012
|
+
if (!mode.success || rawRoles.length !== PALETTE_TOKEN_NAMES.length) return null;
|
|
8013
|
+
const colors = paletteColorsFromEntries(rawRoles.map((roleValue) => {
|
|
8014
|
+
const separator = roleValue.indexOf(":");
|
|
8015
|
+
return separator === -1 ? {
|
|
8016
|
+
name: "",
|
|
8017
|
+
hex: ""
|
|
8018
|
+
} : {
|
|
8019
|
+
name: roleValue.slice(0, separator),
|
|
8020
|
+
hex: roleValue.slice(separator + 1)
|
|
8021
|
+
};
|
|
8022
|
+
}));
|
|
8023
|
+
if (!colors.ok || paletteValueKey(colors.colors, mode.data) !== value) return null;
|
|
8024
|
+
return value;
|
|
8025
|
+
}
|
|
8026
|
+
z$1.string().transform((value, ctx) => {
|
|
8027
|
+
const parsed = parsePaletteValueKey(value);
|
|
8028
|
+
if (parsed) return parsed;
|
|
8029
|
+
ctx.addIssue({
|
|
8030
|
+
code: "custom",
|
|
8031
|
+
message: "Invalid canonical palette value key"
|
|
8032
|
+
});
|
|
8033
|
+
return z$1.NEVER;
|
|
8034
|
+
});
|
|
8035
|
+
//#endregion
|
|
8036
|
+
//#region ../theme-core/src/palette/schema.ts
|
|
8037
|
+
const colourHexString = z$1.string().regex(/^#([0-9A-Fa-f]{3}){1,2}$/);
|
|
8038
|
+
const paletteColorSchema = z$1.object({
|
|
8039
|
+
name: z$1.string().min(1),
|
|
8040
|
+
hex: colourHexString
|
|
8041
|
+
});
|
|
8042
|
+
const paletteMetaSchema = z$1.object({ mode: z$1.enum(["light", "dark"]) });
|
|
8043
|
+
const paletteSchema = z$1.object({
|
|
8044
|
+
colors: z$1.array(paletteColorSchema),
|
|
8045
|
+
meta: paletteMetaSchema
|
|
8046
|
+
}).transform((palette, ctx) => {
|
|
8047
|
+
const colors = paletteColorsFromEntries(palette.colors);
|
|
8048
|
+
if (!colors.ok) {
|
|
8049
|
+
ctx.addIssue({
|
|
8050
|
+
code: "custom",
|
|
8051
|
+
message: `Invalid complete palette: ${colors.error.kind}`
|
|
8052
|
+
});
|
|
8053
|
+
return z$1.NEVER;
|
|
8054
|
+
}
|
|
8055
|
+
return {
|
|
8056
|
+
colors: paletteColorEntries(colors.colors).map(({ name, hex }) => ({
|
|
8057
|
+
name: String(name),
|
|
8058
|
+
hex: String(hex)
|
|
8059
|
+
})),
|
|
8060
|
+
meta: palette.meta
|
|
8061
|
+
};
|
|
8062
|
+
});
|
|
8063
|
+
//#endregion
|
|
7900
8064
|
//#region ../theme-core/src/cards/types.ts
|
|
7901
8065
|
const cardVariantRoleValues = ["default", "alternative"];
|
|
7902
8066
|
const boxlessCardVariantValue = "none";
|
|
@@ -8827,6 +8991,60 @@ const siteChromeBackgroundOverrideOwner = "site-chrome-editor";
|
|
|
8827
8991
|
* palette context and happens in `parseThemeColorReference`.
|
|
8828
8992
|
*/
|
|
8829
8993
|
const tokenOrCssColorValueSchema = z$1.string();
|
|
8994
|
+
const BREAKPOINT_LG = 1024;
|
|
8995
|
+
const BREAKPOINT_XL = 1280;
|
|
8996
|
+
const BREAKPOINT_LG_DOWN = BREAKPOINT_LG - 1;
|
|
8997
|
+
function mqUp(px) {
|
|
8998
|
+
return `(min-width: ${px}px)`;
|
|
8999
|
+
}
|
|
9000
|
+
function mqDown(px) {
|
|
9001
|
+
return `(max-width: ${px}px)`;
|
|
9002
|
+
}
|
|
9003
|
+
function mqBetween(minPx, maxPx) {
|
|
9004
|
+
return `${mqUp(minPx)} and ${mqDown(maxPx)}`;
|
|
9005
|
+
}
|
|
9006
|
+
mqUp(640);
|
|
9007
|
+
mqUp(768);
|
|
9008
|
+
mqUp(BREAKPOINT_LG);
|
|
9009
|
+
mqUp(BREAKPOINT_XL);
|
|
9010
|
+
mqDown(639);
|
|
9011
|
+
mqDown(767);
|
|
9012
|
+
mqDown(BREAKPOINT_LG_DOWN);
|
|
9013
|
+
mqBetween(640, BREAKPOINT_LG_DOWN);
|
|
9014
|
+
mqDown(640);
|
|
9015
|
+
mqDown(768);
|
|
9016
|
+
//#endregion
|
|
9017
|
+
//#region ../theme-core/src/header/scrollTreatment.ts
|
|
9018
|
+
const headerScrollTreatmentSchema = z$1.discriminatedUnion("kind", [z$1.object({
|
|
9019
|
+
kind: z$1.literal("contrast-glass"),
|
|
9020
|
+
backgroundTone: z$1.enum(["light", "dark"])
|
|
9021
|
+
})]).optional();
|
|
9022
|
+
//#endregion
|
|
9023
|
+
//#region ../theme-core/src/header/containerSchema.ts
|
|
9024
|
+
const headerContainerSchema = z$1.object({
|
|
9025
|
+
rounded: z$1.enum([
|
|
9026
|
+
"none",
|
|
9027
|
+
"sm",
|
|
9028
|
+
"md",
|
|
9029
|
+
"lg",
|
|
9030
|
+
"xl",
|
|
9031
|
+
"2xl"
|
|
9032
|
+
]).default("xl"),
|
|
9033
|
+
border: z$1.boolean().default(true),
|
|
9034
|
+
shadow: z$1.boolean().default(true),
|
|
9035
|
+
padding: z$1.enum([
|
|
9036
|
+
"sm",
|
|
9037
|
+
"md",
|
|
9038
|
+
"lg"
|
|
9039
|
+
]).default("md"),
|
|
9040
|
+
tint: z$1.string().nullable().optional(),
|
|
9041
|
+
opacity: z$1.number().min(0).max(1).default(.12)
|
|
9042
|
+
}).optional();
|
|
9043
|
+
const headerInteractionPaletteSchema = z$1.enum([
|
|
9044
|
+
"primary",
|
|
9045
|
+
"secondary",
|
|
9046
|
+
"accent"
|
|
9047
|
+
]);
|
|
8830
9048
|
//#endregion
|
|
8831
9049
|
//#region ../theme-core/src/schema.ts
|
|
8832
9050
|
const axesSchema = z$1.object({
|
|
@@ -8857,16 +9075,6 @@ const axesSchema = z$1.object({
|
|
|
8857
9075
|
"expressive"
|
|
8858
9076
|
])
|
|
8859
9077
|
});
|
|
8860
|
-
const colourHexString = z$1.string().regex(/^#([0-9A-Fa-f]{3}){1,2}$/);
|
|
8861
|
-
const paletteColorSchema = z$1.object({
|
|
8862
|
-
name: z$1.string().min(1),
|
|
8863
|
-
hex: colourHexString
|
|
8864
|
-
});
|
|
8865
|
-
const paletteMetaSchema = z$1.object({ mode: z$1.enum(["light", "dark"]) });
|
|
8866
|
-
const paletteSchema = z$1.object({
|
|
8867
|
-
colors: z$1.array(paletteColorSchema),
|
|
8868
|
-
meta: paletteMetaSchema
|
|
8869
|
-
});
|
|
8870
9078
|
const typographyStyleSchema = z$1.object({
|
|
8871
9079
|
family: z$1.string().min(1),
|
|
8872
9080
|
weight: z$1.enum([
|
|
@@ -9246,25 +9454,6 @@ const navFontWeight = z$1.enum([
|
|
|
9246
9454
|
]);
|
|
9247
9455
|
const headerMaxWidth = z$1.enum(["container", "full"]);
|
|
9248
9456
|
const headerBarFrame = z$1.enum(["full-bleed", "inset-shell"]);
|
|
9249
|
-
const headerContainerSchema = z$1.object({
|
|
9250
|
-
rounded: z$1.enum([
|
|
9251
|
-
"none",
|
|
9252
|
-
"sm",
|
|
9253
|
-
"md",
|
|
9254
|
-
"lg",
|
|
9255
|
-
"xl",
|
|
9256
|
-
"2xl"
|
|
9257
|
-
]).default("xl"),
|
|
9258
|
-
border: z$1.boolean().default(true),
|
|
9259
|
-
shadow: z$1.boolean().default(true),
|
|
9260
|
-
padding: z$1.enum([
|
|
9261
|
-
"sm",
|
|
9262
|
-
"md",
|
|
9263
|
-
"lg"
|
|
9264
|
-
]).default("md"),
|
|
9265
|
-
tint: z$1.string().nullable().optional(),
|
|
9266
|
-
opacity: z$1.number().min(0).max(1).default(.12)
|
|
9267
|
-
}).optional();
|
|
9268
9457
|
const headerBorderSchema = componentBorderSchema.extend({ position: z$1.enum([
|
|
9269
9458
|
"bottom",
|
|
9270
9459
|
"top",
|
|
@@ -9391,6 +9580,7 @@ const headerSchema = z$1.object({
|
|
|
9391
9580
|
shrinkOnScroll: z$1.boolean(),
|
|
9392
9581
|
maxWidth: headerMaxWidth,
|
|
9393
9582
|
barFrame: headerBarFrame.optional(),
|
|
9583
|
+
scrollTreatment: headerScrollTreatmentSchema,
|
|
9394
9584
|
logoOverride: mediaSchema$1.nullable().optional(),
|
|
9395
9585
|
background: headerBackgroundSchema.default({
|
|
9396
9586
|
type: "color",
|
|
@@ -9403,6 +9593,7 @@ const headerSchema = z$1.object({
|
|
|
9403
9593
|
navFontRole: z$1.enum(["body", "heading"]).optional(),
|
|
9404
9594
|
navTypography: z$1.enum(["body", "heading"]).optional(),
|
|
9405
9595
|
navTextSize: navLinkStyleSchema.shape.textSize,
|
|
9596
|
+
interactionPalette: headerInteractionPaletteSchema.optional(),
|
|
9406
9597
|
navPlacement: z$1.enum(["end", "center"]).optional(),
|
|
9407
9598
|
container: headerContainerSchema,
|
|
9408
9599
|
border: headerBorderSchema,
|
|
@@ -9710,6 +9901,59 @@ function themeButtonClassName(spec) {
|
|
|
9710
9901
|
spec.extraClassName
|
|
9711
9902
|
].filter(Boolean).join(" ");
|
|
9712
9903
|
}
|
|
9904
|
+
shadeBackgroundEffect({
|
|
9905
|
+
id: "darken-background",
|
|
9906
|
+
name: "Darken on Hover",
|
|
9907
|
+
description: "Darkens the background color on hover",
|
|
9908
|
+
label: "Darken Amount (shade step)",
|
|
9909
|
+
shadeDirection: 1
|
|
9910
|
+
});
|
|
9911
|
+
shadeBackgroundEffect({
|
|
9912
|
+
id: "lighten-background",
|
|
9913
|
+
name: "Lighten on Hover",
|
|
9914
|
+
description: "Lightens the background color on hover",
|
|
9915
|
+
label: "Lighten Amount (shade step)",
|
|
9916
|
+
shadeDirection: -1
|
|
9917
|
+
});
|
|
9918
|
+
function shadeBackgroundEffect(config) {
|
|
9919
|
+
return {
|
|
9920
|
+
id: config.id,
|
|
9921
|
+
name: config.name,
|
|
9922
|
+
description: config.description,
|
|
9923
|
+
category: "background",
|
|
9924
|
+
pseudoElement: "none",
|
|
9925
|
+
applicableTo: ["button"],
|
|
9926
|
+
customizableOption: {
|
|
9927
|
+
name: "amount",
|
|
9928
|
+
type: "select",
|
|
9929
|
+
label: config.label,
|
|
9930
|
+
default: 100,
|
|
9931
|
+
options: [
|
|
9932
|
+
0,
|
|
9933
|
+
100,
|
|
9934
|
+
200,
|
|
9935
|
+
300,
|
|
9936
|
+
400,
|
|
9937
|
+
500,
|
|
9938
|
+
600,
|
|
9939
|
+
700,
|
|
9940
|
+
800,
|
|
9941
|
+
900
|
|
9942
|
+
]
|
|
9943
|
+
},
|
|
9944
|
+
isApplicable: (buttonConfig) => buttonConfig.background.type === "solid",
|
|
9945
|
+
generateCSS: ({ themeId, variantId, options, tokens, buttonConfig }) => {
|
|
9946
|
+
if (buttonConfig.background.type !== "solid") return "";
|
|
9947
|
+
const amount = (options.amount || 100) * config.shadeDirection;
|
|
9948
|
+
const baseToken = buttonConfig.background.colorToken ?? "primary-500";
|
|
9949
|
+
return `
|
|
9950
|
+
:where([data-theme-scope="${themeId}"]) .${variantId}:hover {
|
|
9951
|
+
background-color: ${tokens.getColor(tokens.adjustShade(baseToken, amount))};
|
|
9952
|
+
}
|
|
9953
|
+
`;
|
|
9954
|
+
}
|
|
9955
|
+
};
|
|
9956
|
+
}
|
|
9713
9957
|
buttonSizeNameSchema.options;
|
|
9714
9958
|
//#endregion
|
|
9715
9959
|
//#region ../theme-core/src/buttons/styles/domain.ts
|
|
@@ -13634,6 +13878,9 @@ function usePaymentVerificationWithDeps(config, deps) {
|
|
|
13634
13878
|
};
|
|
13635
13879
|
}
|
|
13636
13880
|
//#endregion
|
|
13881
|
+
//#region ../blocks/src/system/runtime/nodes/event-registration/constants.ts
|
|
13882
|
+
const EVENT_REGISTRATION_ANCHOR_ID = "event-registration";
|
|
13883
|
+
//#endregion
|
|
13637
13884
|
//#region ../blocks/src/system/runtime/nodes/event-registration/sessionStorage.ts
|
|
13638
13885
|
const STORAGE_PREFIX = "riverbank:event-registration:";
|
|
13639
13886
|
const STALE_THRESHOLD_MS = 1440 * 60 * 1e3;
|
|
@@ -13810,16 +14057,29 @@ function cleanupStaleRegistrations() {
|
|
|
13810
14057
|
}
|
|
13811
14058
|
//#endregion
|
|
13812
14059
|
//#region ../blocks/src/system/runtime/nodes/event-registration/useEventRegistrationStripeReturn.ts
|
|
14060
|
+
const eventRegistrationStripeReturnDeps = {
|
|
14061
|
+
usePaymentVerification,
|
|
14062
|
+
consumeSearchParam,
|
|
14063
|
+
scrollToBlock,
|
|
14064
|
+
cleanupStaleRegistrations,
|
|
14065
|
+
clearPendingRegistration,
|
|
14066
|
+
getPendingRegistration
|
|
14067
|
+
};
|
|
13813
14068
|
function useEventRegistrationStripeReturn(options) {
|
|
14069
|
+
return useEventRegistrationStripeReturnWithDeps(options, eventRegistrationStripeReturnDeps);
|
|
14070
|
+
}
|
|
14071
|
+
function useEventRegistrationStripeReturnWithDeps(options, deps) {
|
|
13814
14072
|
const { api, events, occurrenceId, pendingAttendeeId, setErrorMessage, setFormData, setPaymentSelection, setPendingAttendeeId, setRegistrationResult, setSelectedEvent, setSelectedAttendanceMode, setTicketSelections, setStep, setTicketsCount, step } = options;
|
|
13815
|
-
const
|
|
14073
|
+
const verificationConfig = useMemo(() => step === "verifying-payment" && pendingAttendeeId ? { transactionId: pendingAttendeeId } : null, [step, pendingAttendeeId]);
|
|
14074
|
+
const verification = deps.usePaymentVerification(verificationConfig);
|
|
13816
14075
|
useEffect(() => {
|
|
13817
|
-
cleanupStaleRegistrations();
|
|
13818
|
-
const registrationStatus = consumeSearchParam("registration");
|
|
13819
|
-
if (
|
|
14076
|
+
deps.cleanupStaleRegistrations();
|
|
14077
|
+
const registrationStatus = deps.consumeSearchParam("registration");
|
|
14078
|
+
if (registrationStatus !== "cancelled" && registrationStatus !== "success") return;
|
|
14079
|
+
deps.scrollToBlock(EVENT_REGISTRATION_ANCHOR_ID);
|
|
13820
14080
|
const siteId = api.config.siteId;
|
|
13821
14081
|
if (!siteId) return;
|
|
13822
|
-
const pending = getPendingRegistration(siteId, occurrenceId || void 0);
|
|
14082
|
+
const pending = deps.getPendingRegistration(siteId, occurrenceId || void 0);
|
|
13823
14083
|
if (!pending) return;
|
|
13824
14084
|
setFormData(pending.formData);
|
|
13825
14085
|
setTicketSelections(pending.ticketSelections);
|
|
@@ -13839,7 +14099,7 @@ function useEventRegistrationStripeReturn(options) {
|
|
|
13839
14099
|
useEffect(() => {
|
|
13840
14100
|
if (verification.status === "completed") {
|
|
13841
14101
|
const siteId = api.config.siteId;
|
|
13842
|
-
if (siteId && occurrenceId) clearPendingRegistration(siteId, occurrenceId);
|
|
14102
|
+
if (siteId && occurrenceId) deps.clearPendingRegistration(siteId, occurrenceId);
|
|
13843
14103
|
setRegistrationResult({ status: "confirmed" });
|
|
13844
14104
|
setStep("success");
|
|
13845
14105
|
} else if (verification.status === "failed") {
|
|
@@ -13950,13 +14210,7 @@ function useEventRegistrationSubmitWithDeps(options, deps) {
|
|
|
13950
14210
|
if (!result.alreadyRegistered && result.status === "confirmed" && result.pendingPayment && (method === "stripe" || method === "pass_bundle" || method === "membership_bundle")) {
|
|
13951
14211
|
options.setPendingAttendeeId(result.attendeeId);
|
|
13952
14212
|
options.setStep("redirecting");
|
|
13953
|
-
const
|
|
13954
|
-
const successParams = new URLSearchParams(currentUrl.search);
|
|
13955
|
-
successParams.set("registration", "success");
|
|
13956
|
-
const successUrl = `${currentUrl.origin}${currentUrl.pathname}?${successParams.toString()}${currentUrl.hash}`;
|
|
13957
|
-
const cancelParams = new URLSearchParams(currentUrl.search);
|
|
13958
|
-
cancelParams.set("registration", "cancelled");
|
|
13959
|
-
const cancelUrl = `${currentUrl.origin}${currentUrl.pathname}?${cancelParams.toString()}${currentUrl.hash}`;
|
|
14213
|
+
const { successUrl, cancelUrl } = buildCheckoutReturnUrls("registration", EVENT_REGISTRATION_ANCHOR_ID);
|
|
13960
14214
|
const checkoutType = method === "pass_bundle" ? "pass_bundle" : method === "membership_bundle" ? "membership_bundle" : "event";
|
|
13961
14215
|
const checkoutResult = await options.api.createEventCheckout({
|
|
13962
14216
|
attendeeId: result.attendeeId,
|
|
@@ -14221,6 +14475,12 @@ const mediaBaseSchema = z.object({
|
|
|
14221
14475
|
poster: mediaPosterSchema.optional(),
|
|
14222
14476
|
transform: transformSchema.optional()
|
|
14223
14477
|
});
|
|
14478
|
+
/**
|
|
14479
|
+
* Canonical identifier carried by media values that are safe to persist.
|
|
14480
|
+
* Parsing trims boundary input so downstream writers cannot retain whitespace-only
|
|
14481
|
+
* identifiers or independently disagree about normalization.
|
|
14482
|
+
*/
|
|
14483
|
+
const mediaIdentifierSchema = z.string().trim().min(1).brand();
|
|
14224
14484
|
const imageMediaSchema = mediaBaseSchema.extend({ type: z.literal("image") });
|
|
14225
14485
|
const videoMediaSchema = mediaBaseSchema.extend({ type: z.literal("video") });
|
|
14226
14486
|
const audioMediaSchema = mediaBaseSchema.extend({ type: z.literal("audio") });
|
|
@@ -14235,6 +14495,15 @@ const mediaSchema = z.discriminatedUnion("type", [
|
|
|
14235
14495
|
spreadsheetMediaSchema,
|
|
14236
14496
|
archiveMediaSchema
|
|
14237
14497
|
]);
|
|
14498
|
+
const persistableMediaBaseSchema = mediaBaseSchema.extend({ identifier: mediaIdentifierSchema });
|
|
14499
|
+
z.discriminatedUnion("type", [
|
|
14500
|
+
persistableMediaBaseSchema.extend({ type: z.literal("image") }),
|
|
14501
|
+
persistableMediaBaseSchema.extend({ type: z.literal("video") }),
|
|
14502
|
+
persistableMediaBaseSchema.extend({ type: z.literal("audio") }),
|
|
14503
|
+
persistableMediaBaseSchema.extend({ type: z.literal("document") }),
|
|
14504
|
+
persistableMediaBaseSchema.extend({ type: z.literal("spreadsheet") }),
|
|
14505
|
+
persistableMediaBaseSchema.extend({ type: z.literal("archive") })
|
|
14506
|
+
]);
|
|
14238
14507
|
//#endregion
|
|
14239
14508
|
//#region ../blocks/src/system/manifest/richTextSchema.ts
|
|
14240
14509
|
/**
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { t as defineIslandPropsDecoder } from "./propsDecoder-
|
|
1
|
+
import { t as defineIslandPropsDecoder } from "./propsDecoder-BF7i6Ijg.mjs";
|
|
2
2
|
import { t as mountReactIsland } from "./reactMount-SY8AVRof.mjs";
|
|
3
3
|
import { n as normalizeCarouselProps, t as CarouselNodeClient } from "./carousel.client-CpwTUhIo.mjs";
|
|
4
4
|
import "react";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { t as defineIslandPropsDecoder } from "./propsDecoder-
|
|
2
|
-
import { t as CartController } from "./shop-commerce-
|
|
3
|
-
import { t as mountShopBlockIsland } from "./shopShared-
|
|
1
|
+
import { t as defineIslandPropsDecoder } from "./propsDecoder-BF7i6Ijg.mjs";
|
|
2
|
+
import { t as CartController } from "./shop-commerce-DA7_Rq5p.mjs";
|
|
3
|
+
import { t as mountShopBlockIsland } from "./shopShared-WL-E1znM.mjs";
|
|
4
4
|
import "react";
|
|
5
5
|
import { jsx } from "react/jsx-runtime";
|
|
6
6
|
//#region ../blocks/src/system/runtime/nodes/cart.client.tsx
|