@riverbankcms/sdk 0.146.0 → 0.147.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.
Files changed (195) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/dist/{PreviewEditorSidebar-kg2r2Fyi.mjs → PreviewEditorSidebar-DtpB3_sS.mjs} +51 -33
  3. package/dist/{PreviewEditorUI-sWMLp5dT.mjs → PreviewEditorUI-DxTLgaHo.mjs} +3 -3
  4. package/dist/{PreviewQueryProvider-Cg51xq1w.mjs → PreviewQueryProvider-Dd4dxOiU.mjs} +1 -1
  5. package/dist/{SdkPreviewModeRuntime-h2ti3Hch.mjs → SdkPreviewModeRuntime-DMMNCngt.mjs} +39 -12
  6. package/dist/{SiteChromeCustomizeContext-DEACFH9m.mjs → SiteChromeCustomizeContext-DQXZXiqS.mjs} +2499 -1682
  7. package/dist/_dts/ai/src/contracts/proposals.d.ts +198 -0
  8. package/dist/_dts/ai/src/contracts/siteStyleProposalSchemas.d.ts +18 -0
  9. package/dist/_dts/api/src/accountApi.d.ts +5 -5
  10. package/dist/_dts/api/src/bookingConfig.d.ts +16 -0
  11. package/dist/_dts/api/src/bookingManagementEndpoints.d.ts +4 -13
  12. package/dist/_dts/api/src/bookingOperations.d.ts +2 -44
  13. package/dist/_dts/api/src/bookingPeople.d.ts +92 -0
  14. package/dist/_dts/api/src/bookingPeopleEndpointDefinitions.d.ts +38 -0
  15. package/dist/_dts/api/src/bookingRecords.d.ts +11 -49
  16. package/dist/_dts/api/src/bookingSettingsSections.d.ts +1 -1
  17. package/dist/_dts/api/src/bookings.d.ts +1 -0
  18. package/dist/_dts/api/src/endpoints.d.ts +587 -561
  19. package/dist/_dts/api/src/eventManagementContracts.d.ts +23 -8
  20. package/dist/_dts/api/src/eventManagementEndpointDefinitions.d.ts +1 -1
  21. package/dist/_dts/api/src/index.d.ts +3 -2
  22. package/dist/_dts/api/src/indexCoreTypes.d.ts +1 -1
  23. package/dist/_dts/api/src/launchReadiness.d.ts +1 -6
  24. package/dist/_dts/api/src/mailingListIntegration.d.ts +6 -0
  25. package/dist/_dts/api/src/navigation/dashboardBookingsNav.d.ts +1 -1
  26. package/dist/_dts/api/src/newsletterEndpointDefinitions.d.ts +15 -0
  27. package/dist/_dts/api/src/occurrenceScheduling.d.ts +19 -0
  28. package/dist/_dts/api/src/publicAppointmentBookingContracts.d.ts +48 -0
  29. package/dist/_dts/api/src/publicExperience/eventEndpoints.d.ts +7 -0
  30. package/dist/_dts/api/src/sdk-event-upsert.d.ts +15 -0
  31. package/dist/_dts/api/src/sdkCourseBooking.d.ts +4 -4
  32. package/dist/_dts/api/src/siteLifecycleEndpoints.d.ts +61 -0
  33. package/dist/_dts/api/src/siteManagementEndpoints.d.ts +5 -18
  34. package/dist/_dts/api/src/siteOnboarding.d.ts +2 -14
  35. package/dist/_dts/blocks/src/PageRenderer.d.ts +3 -4
  36. package/dist/_dts/blocks/src/contracts/proof-block-islands.d.ts +8 -0
  37. package/dist/_dts/blocks/src/index.d.ts +1 -1
  38. package/dist/_dts/blocks/src/pageRenderAdmission.d.ts +22 -4
  39. package/dist/_dts/blocks/src/pageRendererContracts.d.ts +2 -0
  40. package/dist/_dts/blocks/src/system/blocks/newsletter-signup.d.ts +4 -1
  41. package/dist/_dts/blocks/src/system/runtime/api/types/appointments.d.ts +4 -0
  42. package/dist/_dts/blocks/src/system/runtime/api/types/events.d.ts +12 -0
  43. package/dist/_dts/blocks/src/system/runtime/components/registry.client.d.ts +12 -0
  44. package/dist/_dts/blocks/src/system/runtime/components/runtime-backed-blocks.d.ts +6 -0
  45. package/dist/_dts/blocks/src/system/runtime/hooks/useHeadlessBookingFlow.d.ts +8 -0
  46. package/dist/_dts/blocks/src/system/runtime/hooks/useHeadlessEventRegistrationFlow.d.ts +2 -0
  47. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.completion.d.ts +9 -0
  48. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.headless.state.d.ts +9 -0
  49. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.interactive.d.ts +19 -0
  50. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.mailing-list-choice.d.ts +5 -0
  51. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.mailing-list-note.d.ts +3 -0
  52. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.mailing-list-state.d.ts +9 -0
  53. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.reserved-fields.d.ts +1 -1
  54. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.server.d.ts +1 -1
  55. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.state.d.ts +2 -0
  56. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.submit-handler.d.ts +8 -0
  57. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.submit-success.d.ts +9 -0
  58. package/dist/_dts/blocks/src/system/runtime/nodes/booking-runtime-sources.d.ts +3 -0
  59. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/AttendeeDetailsStep.d.ts +3 -0
  60. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/SuccessStep.d.ts +3 -0
  61. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/event-registration.headless.contract.d.ts +3 -0
  62. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/sessionStorage.d.ts +2 -0
  63. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/types.d.ts +6 -0
  64. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationSubmit.d.ts +3 -0
  65. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationWizard.d.ts +8 -0
  66. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration.interactive.d.ts +9 -0
  67. package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.block-submission.d.ts +2 -4
  68. package/dist/_dts/blocks/src/system/runtime/resolver.d.ts +2 -0
  69. package/dist/_dts/blocks/src/system/runtime/shared/components/BookingMailingListNote.d.ts +6 -0
  70. package/dist/_dts/blocks/src/system/runtime/shared/mailingListSignupCopy.d.ts +6 -0
  71. package/dist/_dts/blocks/src/system/runtime/shared/types.d.ts +1 -0
  72. package/dist/_dts/blocks/src/system/transforms/registry/_utils/surfaceForegroundStyles.d.ts +3 -2
  73. package/dist/_dts/blocks/src/system/transforms/registry/core.d.ts +2 -0
  74. package/dist/_dts/blocks/src/system/transforms/registry/layout.d.ts +1 -3
  75. package/dist/_dts/core/src/index.d.ts +1 -1
  76. package/dist/_dts/core/src/mailing-list-runtime.d.ts +15 -0
  77. package/dist/_dts/core/src/mailing-list-setup.d.ts +2 -0
  78. package/dist/_dts/core/src/mailing-list-submission.d.ts +6 -0
  79. package/dist/_dts/core/src/navigation-portal-labels.d.ts +9 -0
  80. package/dist/_dts/core/src/participants.d.ts +0 -38
  81. package/dist/_dts/db/src/generated/supabase/database.types.d.ts +102 -22
  82. package/dist/_dts/editor-blocks/src/block-editor/actionPresentation.d.ts +1 -0
  83. package/dist/_dts/preview-next/src/client/blocks/EditablePageRenderer.d.ts +7 -1
  84. package/dist/_dts/preview-next/src/client/blocks/composer/types.d.ts +4 -3
  85. package/dist/_dts/sdk/src/rendering/blocks-page-renderer.d.ts +1 -0
  86. package/dist/_dts/sdk/src/rendering/components/pageShared.d.ts +1 -0
  87. package/dist/_dts/sdk/src/rendering/helpers/loadPage.d.ts +1 -1
  88. package/dist/_dts/sdk/src/rendering/helpers/pageRuntimeSupport.d.ts +2 -2
  89. package/dist/_dts/sdk/src/version.d.ts +1 -1
  90. package/dist/_dts/theme-core/src/buttons/effects/types.d.ts +1 -1
  91. package/dist/_dts/theme-core/src/footer/effectiveNavLinkStyle.d.ts +13 -0
  92. package/dist/_dts/theme-core/src/footer/index.d.ts +1 -0
  93. package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
  94. package/dist/_dts/theme-core/src/header/effectiveNavLinkStyle.d.ts +17 -0
  95. package/dist/_dts/theme-core/src/header/generateHeaderLogoStyles.d.ts +15 -0
  96. package/dist/_dts/theme-core/src/header/generateHeaderNavLinkStyles.d.ts +4 -0
  97. package/dist/_dts/theme-core/src/header/index.d.ts +3 -0
  98. package/dist/_dts/theme-core/src/header/legacyNavLinkStyle.d.ts +1 -1
  99. package/dist/_dts/theme-core/src/header/openingForegroundProjection.d.ts +7 -0
  100. package/dist/_dts/theme-core/src/header/rootPaint.d.ts +4 -0
  101. package/dist/_dts/theme-core/src/navigation/effectPolicy.d.ts +38 -0
  102. package/dist/_dts/theme-core/src/navigation/generateNavLinkCSS.d.ts +4 -0
  103. package/dist/_dts/theme-core/src/navigation/types.d.ts +4 -0
  104. package/dist/_dts/theme-core/src/site-styles/accessibleSurfaces.d.ts +1 -1
  105. package/dist/_dts/theme-core/src/surfaces/foregroundContract.d.ts +7 -0
  106. package/dist/_dts/theme-core/src/surfaces/foregroundInteraction.d.ts +29 -22
  107. package/dist/_dts/theme-core/src/surfaces/foregroundRoles.d.ts +10 -2
  108. package/dist/_dts/theme-core/src/surfaces/resolveSurfaceForeground.d.ts +9 -0
  109. package/dist/_dts/theme-core/src/utils/cssDeclarations.d.ts +2 -0
  110. package/dist/_dts/ui/src/badge.d.ts +2 -1
  111. package/dist/_dts/ui/src/button.d.ts +1 -1
  112. package/dist/_dts/ui/src/combobox-keys.d.ts +23 -0
  113. package/dist/_dts/ui/src/combobox-rows.d.ts +34 -0
  114. package/dist/_dts/ui/src/combobox.d.ts +26 -1
  115. package/dist/_dts/ui/src/date-picker.d.ts +5 -8
  116. package/dist/_dts/ui/src/editor-item-card.d.ts +1 -0
  117. package/dist/_dts/ui/src/field-trigger.d.ts +39 -0
  118. package/dist/_dts/ui/src/fieldControl.d.ts +27 -0
  119. package/dist/_dts/ui/src/index.d.ts +4 -1
  120. package/dist/_dts/ui/src/native-select.d.ts +8 -0
  121. package/dist/_dts/ui/src/popover.d.ts +7 -1
  122. package/dist/_dts/ui/src/segmented-control.d.ts +4 -0
  123. package/dist/_dts/ui/src/surface.d.ts +1 -1
  124. package/dist/client/{BookingConsentAgreement-BQKL045f.mjs → BookingMailingListNote-1n4Ch_u_.mjs} +15 -4
  125. package/dist/client/{CheckboxChoice--W2n6yKs.mjs → CheckboxChoice-B33MqoUo.mjs} +1 -1
  126. package/dist/client/{DiscountCodeDisclosure-CsOtjFY7.mjs → DiscountCodeDisclosure-CKJtz0mY.mjs} +1 -1
  127. package/dist/client/{EventCombined.client-BdRjVbhH.mjs → EventCombined.client-C0pgma9y.mjs} +7 -7
  128. package/dist/client/{EventListing.client-DBxC6xOU.mjs → EventListing.client-4fhLOvHP.mjs} +2 -2
  129. package/dist/client/{LeafletStaticMap-mHEJKrTs.mjs → LeafletStaticMap-DScC4F3w.mjs} +1 -1
  130. package/dist/client/{scrollToBlock-BNgaEUpo.mjs → TerminalPanel-B5ZUsYhe.mjs} +77 -77
  131. package/dist/client/{ThemedButton-CE5KYT6z.mjs → ThemedButton-DoVIV1Ao.mjs} +2 -2
  132. package/dist/client/{accordion-BEQNSptH.mjs → accordion-CoT5g7zo.mjs} +1 -1
  133. package/dist/client/{bookingForm-AMr-s5vw.mjs → bookingForm-BWxB46xD.mjs} +226 -106
  134. package/dist/client/bookings.mjs +367 -188
  135. package/dist/client/{carousel-Bbt_QgJy.mjs → carousel-DtNYWFd3.mjs} +2 -2
  136. package/dist/client/{carousel.client-jahpU9Vz.mjs → carousel.client-A2lG-9od.mjs} +1 -1
  137. package/dist/client/{cart-CnWi30zJ.mjs → cart-z4qZih1Y.mjs} +3 -3
  138. package/dist/client/{checkout-f3nkWgd4.mjs → checkout-DpL7euFH.mjs} +3 -3
  139. package/dist/client/{checkoutUrls-CW3-78uu.mjs → checkoutUrls-BEfR7kVu.mjs} +1 -1
  140. package/dist/client/client.mjs +2125 -1420
  141. package/dist/client/{colorStyles-CuJBiS-1.mjs → colorStyles-j5U9v5JA.mjs} +5 -1
  142. package/dist/client/{context-Bc8T6pCe.mjs → context-C8TinPJc.mjs} +1 -1
  143. package/dist/client/{dates-DUsCEzLb.mjs → dates-vwwxTeB0.mjs} +2 -2
  144. package/dist/client/{eventCalendar-CKwgXui5.mjs → eventCalendar-DIbHfJXO.mjs} +10 -10
  145. package/dist/client/{eventCombined-CBAOSTGR.mjs → eventCombined-DoGMJ6cg.mjs} +4 -4
  146. package/dist/client/{eventDetails-Dh-_WiBD.mjs → eventDetails-BjN9v6a1.mjs} +4 -4
  147. package/dist/client/{eventListing-CA3frIH5.mjs → eventListing-DajjWgOv.mjs} +4 -4
  148. package/dist/client/{eventRegistration-BHtsgdcg.mjs → eventRegistration-DMq9gMA-.mjs} +109 -41
  149. package/dist/client/{form-C2h3YAcg.mjs → form-Qf6qTbos.mjs} +5 -5
  150. package/dist/client/{headerSection-lwMuMTH9.mjs → headerSection-D7qJrqFX.mjs} +3 -3
  151. package/dist/client/hooks.mjs +661 -116
  152. package/dist/client/{locationMap-DJ2bLODV.mjs → locationMap-CCF9-t_0.mjs} +4 -4
  153. package/dist/client/{FieldValidationMessage-AYanWFb-.mjs → mailingListSignupCopy-DZSHZrm6.mjs} +14 -1
  154. package/dist/client/{media-BtJ37tzS.mjs → media-CwBGetqC.mjs} +1 -1
  155. package/dist/client/{newsletterForm-8Pu5K32g.mjs → newsletterForm-DzCLSP4S.mjs} +6 -6
  156. package/dist/client/{pricing-HHx3IgBz.mjs → pricing-Cgxv2KLC.mjs} +1 -1
  157. package/dist/client/{productDetail-C_1odnAf.mjs → productDetail-ru9w5GHx.mjs} +3 -3
  158. package/dist/client/{productList-CtCv-Nmx.mjs → productList-zaapKSl-.mjs} +3 -3
  159. package/dist/client/{propsDecoder-Dcgsncxb.mjs → propsDecoder-CwvvNOHx.mjs} +52 -6
  160. package/dist/client/rendering/client.mjs +951 -369
  161. package/dist/client/rendering/islands.mjs +19 -19
  162. package/dist/client/rendering.mjs +2153 -1393
  163. package/dist/client/{routeIslandApiConfig-CWLP7wu3.mjs → routeIslandApiConfig-BwVFo0Y4.mjs} +1 -1
  164. package/dist/client/{shop-commerce-B88zmWWo.mjs → shop-commerce-De7gEnkA.mjs} +8 -8
  165. package/dist/client/{shop-commerce-store-DtSfkKuX.mjs → shop-commerce-store-B3MCxIBW.mjs} +1 -1
  166. package/dist/client/{shop-DQXrQ8kJ.mjs → shop-mktkXvbV.mjs} +7 -7
  167. package/dist/client/{shopShared-cuaONpkJ.mjs → shopShared-TqExh235.mjs} +5 -5
  168. package/dist/client/{useEventFilters-Bukew6Gb.mjs → useEventFilters-n_OjkIjX.mjs} +8 -8
  169. package/dist/preview-next/before-render.mjs +122 -50
  170. package/dist/preview-next/client/runtime.mjs +4 -4
  171. package/dist/preview-next/editor-base.css +53 -2
  172. package/dist/preview-next/editor-chrome.css +7 -4
  173. package/dist/preview-next/keepAlive.mjs +122 -50
  174. package/dist/preview-next/middleware.mjs +122 -50
  175. package/dist/{previewAuthStore-h5IgbSp4.mjs → previewAuthStore-C_EHQ5XA.mjs} +122 -50
  176. package/dist/{sdk-runtime-DTc1uIXn.mjs → sdk-runtime-BIkJg5y1.mjs} +2 -2
  177. package/dist/{separator-BpHS1KZK.mjs → separator-C9qDP95Z.mjs} +1 -1
  178. package/dist/server/components.mjs +25345 -24942
  179. package/dist/server/config-validation.mjs +711 -163
  180. package/dist/server/config.mjs +711 -163
  181. package/dist/server/data.mjs +709 -162
  182. package/dist/server/index.mjs +123 -51
  183. package/dist/server/navigation.mjs +13 -2
  184. package/dist/server/next.mjs +4538 -4169
  185. package/dist/server/page-converter.mjs +107 -64
  186. package/dist/server/prebuild.mjs +1 -1
  187. package/dist/server/rendering/server.mjs +2509 -2104
  188. package/dist/server/rendering.mjs +25526 -25104
  189. package/dist/server/routing.mjs +750 -289
  190. package/dist/server/server.mjs +671 -148
  191. package/dist/server/theme-bridge.mjs +66 -17
  192. package/dist/server/theme.mjs +5 -1
  193. package/dist/styles/index.css +32 -4
  194. package/package.json +1 -1
  195. package/dist/_dts/core/src/participant-identity.d.ts +0 -135
@@ -1,4 +1,4 @@
1
- import { G as createHostedBlockApiConfig } from "./propsDecoder-Dcgsncxb.mjs";
1
+ import { G as createHostedBlockApiConfig } from "./propsDecoder-CwvvNOHx.mjs";
2
2
  //#region src/rendering/islands/enhancers/routeIslandApiConfig.ts
3
3
  function buildRouteIslandApiConfig({ apiBaseUrl, portalToken, previewToken, siteId, stage, readAuthority }) {
4
4
  if (readAuthority) return createHostedBlockApiConfig({
@@ -1,15 +1,15 @@
1
1
  "use client";
2
- import { Ht as clearWorkflowFeedback, Kt as reportWorkflowError, Vt as assertNever, a as buildProductDetailDisplay, bt as logger, d as deriveCommerceCheckoutState, i as buildProductCardDisplay, n as getShopDisplayForItems, o as formatCommercePrice, p as productItemKey, u as buildProductCartItem, zt as RichTextDocSchema } from "./propsDecoder-Dcgsncxb.mjs";
3
- import { n as useBlockApi } from "./context-Bc8T6pCe.mjs";
4
- import { t as DiscountCodeDisclosure } from "./DiscountCodeDisclosure-CsOtjFY7.mjs";
5
- import { n as ThemedButtonLink, t as ThemedButton } from "./ThemedButton-CE5KYT6z.mjs";
2
+ import { Ht as clearWorkflowFeedback, Kt as reportWorkflowError, Vt as assertNever, a as buildProductDetailDisplay, bt as logger, d as deriveCommerceCheckoutState, i as buildProductCardDisplay, n as getShopDisplayForItems, o as formatCommercePrice, p as productItemKey, u as buildProductCartItem, zt as RichTextDocSchema } from "./propsDecoder-CwvvNOHx.mjs";
3
+ import { n as useBlockApi } from "./context-C8TinPJc.mjs";
4
+ import { t as DiscountCodeDisclosure } from "./DiscountCodeDisclosure-CKJtz0mY.mjs";
5
+ import { n as ThemedButtonLink, t as ThemedButton } from "./ThemedButton-DoVIV1Ao.mjs";
6
6
  import { t as FeedbackMessage } from "./FeedbackMessage-CtLvvS_d.mjs";
7
- import { n as RichText, t as buildCheckoutReturnUrls } from "./checkoutUrls-CW3-78uu.mjs";
7
+ import { n as RichText, t as buildCheckoutReturnUrls } from "./checkoutUrls-BEfR7kVu.mjs";
8
8
  import { t as consumeSearchParam } from "./urlParams-D71VXFGx.mjs";
9
- import { t as CarouselNodeClient } from "./carousel.client-jahpU9Vz.mjs";
9
+ import { t as CarouselNodeClient } from "./carousel.client-A2lG-9od.mjs";
10
10
  import { t as resolveDedicatedCheckoutPath } from "./checkoutRoute-ClwHwYVA.mjs";
11
- import { C as ProductGalleryFrameView, S as ProductDetailView, T as VariantSelectView, a as getDiscountApplyFeedback, c as aggregateCartDiscountUiState, f as planUnifiedCheckoutRequest, g as CheckoutShellView, h as CartShellView, i as getAppliedDiscountCode, l as checkoutFormForDiscountUiState, m as useTransientShopAddFeedback, n as useDiscountApply, o as initialDiscountApplyState, p as ShopAddFeedback, r as discountApplyReducer, s as isDiscountApplyInFlight, u as planCartDiscountAvailabilityRequests, w as ProductListSectionView, x as ProductCardView } from "./shopShared-cuaONpkJ.mjs";
12
- import { n as useCommerceCart } from "./shop-commerce-store-DtSfkKuX.mjs";
11
+ import { C as ProductGalleryFrameView, S as ProductDetailView, T as VariantSelectView, a as getDiscountApplyFeedback, c as aggregateCartDiscountUiState, f as planUnifiedCheckoutRequest, g as CheckoutShellView, h as CartShellView, i as getAppliedDiscountCode, l as checkoutFormForDiscountUiState, m as useTransientShopAddFeedback, n as useDiscountApply, o as initialDiscountApplyState, p as ShopAddFeedback, r as discountApplyReducer, s as isDiscountApplyInFlight, u as planCartDiscountAvailabilityRequests, w as ProductListSectionView, x as ProductCardView } from "./shopShared-TqExh235.mjs";
12
+ import { n as useCommerceCart } from "./shop-commerce-store-B3MCxIBW.mjs";
13
13
  import * as React$1 from "react";
14
14
  import { useEffect, useState } from "react";
15
15
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- import { c as EMPTY_COMMERCE_CART_STATE, f as parseStoredCommerceCartState, l as buildPassCartItem, m as reduceCommerceCart } from "./propsDecoder-Dcgsncxb.mjs";
2
+ import { c as EMPTY_COMMERCE_CART_STATE, f as parseStoredCommerceCartState, l as buildPassCartItem, m as reduceCommerceCart } from "./propsDecoder-CwvvNOHx.mjs";
3
3
  import * as React$1 from "react";
4
4
  //#region ../blocks/src/system/runtime/nodes/shop-commerce-store.ts
5
5
  const EMPTY_STATE = EMPTY_COMMERCE_CART_STATE;
@@ -1,15 +1,15 @@
1
1
  "use client";
2
- import { Vt as assertNever, o as formatCommercePrice, s as formatInterval, t as defineIslandPropsDecoder, xn as assertNever$1 } from "./propsDecoder-Dcgsncxb.mjs";
3
- import { n as useBlockApi } from "./context-Bc8T6pCe.mjs";
4
- import { a as CheckIcon, i as StateIcon, n as useDiscountCodeUi, r as TerminalPanel, t as scrollToBlock } from "./scrollToBlock-BNgaEUpo.mjs";
5
- import { t as DiscountCodeDisclosure } from "./DiscountCodeDisclosure-CsOtjFY7.mjs";
6
- import { t as ThemedButton } from "./ThemedButton-CE5KYT6z.mjs";
2
+ import { Sn as assertNever$1, Vt as assertNever, o as formatCommercePrice, s as formatInterval, t as defineIslandPropsDecoder } from "./propsDecoder-CwvvNOHx.mjs";
3
+ import { n as useBlockApi } from "./context-C8TinPJc.mjs";
4
+ import { t as DiscountCodeDisclosure } from "./DiscountCodeDisclosure-CKJtz0mY.mjs";
5
+ import { a as useDiscountCodeUi, i as CheckIcon, n as StateIcon, r as scrollToBlock, t as TerminalPanel } from "./TerminalPanel-B5ZUsYhe.mjs";
6
+ import { t as ThemedButton } from "./ThemedButton-DoVIV1Ao.mjs";
7
7
  import { t as FeedbackMessage } from "./FeedbackMessage-CtLvvS_d.mjs";
8
8
  import { t as createBodyThemePortalRoot } from "./themePortalRoot-AGs4cE7t.mjs";
9
9
  import { n as consumeSearchParams } from "./urlParams-D71VXFGx.mjs";
10
10
  import { t as CrossIcon } from "./CrossIcon-Dn1KRKW5.mjs";
11
- import { _ as MembershipCardView, a as getDiscountApplyFeedback, b as PassesMembershipsSectionView, d as planDirectShopCheckoutRequest, i as getAppliedDiscountCode, m as useTransientShopAddFeedback, n as useDiscountApply, o as initialDiscountApplyState, p as ShopAddFeedback, r as discountApplyReducer, s as isDiscountApplyInFlight, t as mountShopBlockIsland, v as PassCardView, y as PassPurchaseUnavailable } from "./shopShared-cuaONpkJ.mjs";
12
- import { t as addPassToCommerceCart } from "./shop-commerce-store-DtSfkKuX.mjs";
11
+ import { _ as MembershipCardView, a as getDiscountApplyFeedback, b as PassesMembershipsSectionView, d as planDirectShopCheckoutRequest, i as getAppliedDiscountCode, m as useTransientShopAddFeedback, n as useDiscountApply, o as initialDiscountApplyState, p as ShopAddFeedback, r as discountApplyReducer, s as isDiscountApplyInFlight, t as mountShopBlockIsland, v as PassCardView, y as PassPurchaseUnavailable } from "./shopShared-TqExh235.mjs";
12
+ import { t as addPassToCommerceCart } from "./shop-commerce-store-B3MCxIBW.mjs";
13
13
  import { t as ModalShell } from "./ModalShell-CqkBvBIC.mjs";
14
14
  import React, { useCallback, useEffect, useRef, useState } from "react";
15
15
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
@@ -1,11 +1,11 @@
1
1
  "use client";
2
- import { D as ok, E as err } from "./colorStyles-CuJBiS-1.mjs";
3
- import { Vt as assertNever } from "./propsDecoder-Dcgsncxb.mjs";
4
- import { t as BlockApiProvider } from "./context-Bc8T6pCe.mjs";
5
- import { i as getAutoAppliedDiscountPreview, n as discountAvailabilityAllowsManualEntry, r as discountAvailabilityHasDiscounts } from "./DiscountCodeDisclosure-CsOtjFY7.mjs";
2
+ import { D as ok, E as err } from "./colorStyles-j5U9v5JA.mjs";
3
+ import { Vt as assertNever } from "./propsDecoder-CwvvNOHx.mjs";
4
+ import { t as BlockApiProvider } from "./context-C8TinPJc.mjs";
5
+ import { i as getAutoAppliedDiscountPreview, n as discountAvailabilityAllowsManualEntry, r as discountAvailabilityHasDiscounts } from "./DiscountCodeDisclosure-CKJtz0mY.mjs";
6
6
  import { t as FeedbackMessage } from "./FeedbackMessage-CtLvvS_d.mjs";
7
7
  import { t as mountReactIsland } from "./reactMount-SY8AVRof.mjs";
8
- import { t as buildRouteIslandApiConfig } from "./routeIslandApiConfig-CWLP7wu3.mjs";
8
+ import { t as buildRouteIslandApiConfig } from "./routeIslandApiConfig-BwVFo0Y4.mjs";
9
9
  import * as React$1 from "react";
10
10
  import { useCallback } from "react";
11
11
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
@@ -1,12 +1,12 @@
1
1
  "use client";
2
- import { d as hexToRgb, u as relativeLuminance } from "./colorStyles-CuJBiS-1.mjs";
3
- import { F as resolveSpacing, J as getEventRuntimeFiltersKey, K as getBlockApiReadStage, N as SEMANTIC_SPACING_VALUES, P as isSemanticSpacing, Vt as assertNever, X as normalizeCsvString, Y as normalizeCsvIds, Z as normalizeOptionalId, gt as resolveTokenOrCssColorValue, ht as resolveOnColorForThemeToken, mt as isCssColorLiteral, pt as boxBackgroundSchema, yt as normalizeCardRole } from "./propsDecoder-Dcgsncxb.mjs";
4
- import { a as getCurrentResolveImageUrlContext, i as computeMediaTransformStyle, l as resolveMediaNodeResponsiveImage, n as MediaPlaceholder, o as renderAudio, s as renderVideo, t as ImagePresets } from "./media-BtJ37tzS.mjs";
5
- import { o as formatEventRemainingPlaces, t as formatEventPrice } from "./pricing-HHx3IgBz.mjs";
6
- import { a as formatTime, d as resolveEventLinkProps, i as formatEventNextDateFact, n as formatEventCompactDateRail, t as formatDate, u as resolveEventCta } from "./dates-DUsCEzLb.mjs";
7
- import { n as useBlockApi } from "./context-Bc8T6pCe.mjs";
8
- import { n as ThemedButtonLink, r as ClockIcon, t as ThemedButton } from "./ThemedButton-CE5KYT6z.mjs";
9
- import { t as LeafletStaticMap } from "./LeafletStaticMap-mHEJKrTs.mjs";
2
+ import { d as hexToRgb, u as relativeLuminance } from "./colorStyles-j5U9v5JA.mjs";
3
+ import { F as resolveSpacing, J as getEventRuntimeFiltersKey, K as getBlockApiReadStage, N as SEMANTIC_SPACING_VALUES, P as isSemanticSpacing, Vt as assertNever, X as normalizeCsvString, Y as normalizeCsvIds, Z as normalizeOptionalId, gt as resolveTokenOrCssColorValue, ht as resolveOnColorForThemeToken, mt as isCssColorLiteral, pt as boxBackgroundSchema, yt as normalizeCardRole } from "./propsDecoder-CwvvNOHx.mjs";
4
+ import { a as getCurrentResolveImageUrlContext, i as computeMediaTransformStyle, l as resolveMediaNodeResponsiveImage, n as MediaPlaceholder, o as renderAudio, s as renderVideo, t as ImagePresets } from "./media-CwBGetqC.mjs";
5
+ import { o as formatEventRemainingPlaces, t as formatEventPrice } from "./pricing-Cgxv2KLC.mjs";
6
+ import { a as formatTime, d as resolveEventLinkProps, i as formatEventNextDateFact, n as formatEventCompactDateRail, t as formatDate, u as resolveEventCta } from "./dates-vwwxTeB0.mjs";
7
+ import { n as useBlockApi } from "./context-C8TinPJc.mjs";
8
+ import { n as ThemedButtonLink, r as ClockIcon, t as ThemedButton } from "./ThemedButton-DoVIV1Ao.mjs";
9
+ import { t as LeafletStaticMap } from "./LeafletStaticMap-DScC4F3w.mjs";
10
10
  import { useCallback, useEffect, useId, useMemo, useReducer, useRef, useState } from "react";
11
11
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
12
12
  //#region ../theme-core/src/palette/utils/textColor.ts
@@ -78,6 +78,64 @@ function defineEndpointDefinitions(definitions) {
78
78
  return definitions;
79
79
  }
80
80
  //#endregion
81
+ //#region ../api/src/apiEndpointTypes.ts
82
+ function allowedDemoMutationPolicy() {
83
+ return {
84
+ classification: "allowed",
85
+ publicMessage: ""
86
+ };
87
+ }
88
+ function blockedDemoMutationPolicy(classification, publicMessage) {
89
+ if (publicMessage.trim() === "") throw new Error(`Demo mutation policy ${classification} requires publicMessage.`);
90
+ return {
91
+ classification,
92
+ publicMessage
93
+ };
94
+ }
95
+ //#endregion
96
+ //#region ../api/src/demoMutationPolicies.ts
97
+ const DEMO_MUTATION_BLOCKED_HIDDEN = blockedDemoMutationPolicy("blocked-hidden", "This action is not available in demo sites.");
98
+ const DEMO_MUTATION_BLOCKED_DISABLED = blockedDemoMutationPolicy("blocked-disabled", "This setting is disabled in demo sites.");
99
+ const DEMO_MUTATION_INTERNAL_ONLY = blockedDemoMutationPolicy("internal-only", "This internal operation is not available in demo sites.");
100
+ const DEMO_MUTATION_ALLOWED = allowedDemoMutationPolicy();
101
+ //#endregion
102
+ //#region ../api/src/siteLifecycleEndpoints.ts
103
+ const SITE_LIFECYCLE_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
104
+ createSite: {
105
+ path: "/sites/manage",
106
+ method: "POST",
107
+ tags: ["site"],
108
+ auth: "user",
109
+ responseKind: "json",
110
+ errors: []
111
+ },
112
+ createSiteManual: {
113
+ path: "/sites/manual",
114
+ method: "POST",
115
+ tags: ["site"],
116
+ auth: "user",
117
+ responseKind: "json",
118
+ errors: []
119
+ },
120
+ updateSite: {
121
+ path: "/sites/manage",
122
+ method: "PUT",
123
+ tags: ["site"],
124
+ auth: "user",
125
+ responseKind: "json",
126
+ errors: []
127
+ },
128
+ deleteSite: {
129
+ path: "/sites/{siteId}",
130
+ method: "DELETE",
131
+ tags: ["site", "site-{siteId}"],
132
+ auth: "user",
133
+ responseKind: "json",
134
+ errors: [],
135
+ demoMutation: DEMO_MUTATION_BLOCKED_HIDDEN
136
+ }
137
+ });
138
+ //#endregion
81
139
  //#region ../api/src/publicNewsletterEndpointDefinitions.ts
82
140
  const PUBLIC_NEWSLETTER_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
83
141
  subscribeNewsletter: {
@@ -138,27 +196,6 @@ const PUBLIC_NEWSLETTER_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
138
196
  }
139
197
  });
140
198
  //#endregion
141
- //#region ../api/src/apiEndpointTypes.ts
142
- function allowedDemoMutationPolicy() {
143
- return {
144
- classification: "allowed",
145
- publicMessage: ""
146
- };
147
- }
148
- function blockedDemoMutationPolicy(classification, publicMessage) {
149
- if (publicMessage.trim() === "") throw new Error(`Demo mutation policy ${classification} requires publicMessage.`);
150
- return {
151
- classification,
152
- publicMessage
153
- };
154
- }
155
- //#endregion
156
- //#region ../api/src/demoMutationPolicies.ts
157
- const DEMO_MUTATION_BLOCKED_HIDDEN = blockedDemoMutationPolicy("blocked-hidden", "This action is not available in demo sites.");
158
- const DEMO_MUTATION_BLOCKED_DISABLED = blockedDemoMutationPolicy("blocked-disabled", "This setting is disabled in demo sites.");
159
- const DEMO_MUTATION_INTERNAL_ONLY = blockedDemoMutationPolicy("internal-only", "This internal operation is not available in demo sites.");
160
- const DEMO_MUTATION_ALLOWED = allowedDemoMutationPolicy();
161
- //#endregion
162
199
  //#region ../api/src/cache-tags.ts
163
200
  /**
164
201
  * Tag templates for endpoint definitions (support `{param}` placeholders).
@@ -1185,6 +1222,20 @@ const NEWSLETTER_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
1185
1222
  responseKind: "json",
1186
1223
  errors: ["auth:forbidden", "server:internal_error"]
1187
1224
  },
1225
+ setMailingListBookingOptIn: {
1226
+ path: "/sites/{siteId}/mailing-list/setup/booking-opt-in",
1227
+ method: "PUT",
1228
+ tags: [TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter],
1229
+ auth: "user",
1230
+ responseKind: "json",
1231
+ demoMutation: DEMO_MUTATION_BLOCKED_DISABLED,
1232
+ errors: [
1233
+ "auth:forbidden",
1234
+ "validation:invalid_input",
1235
+ "resource:conflict",
1236
+ "server:internal_error"
1237
+ ]
1238
+ },
1188
1239
  getMailingListAuthoringContext: {
1189
1240
  path: "/sites/{siteId}/mailing-list/authoring-context",
1190
1241
  method: "GET",
@@ -2559,6 +2610,54 @@ const BILLING_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
2559
2610
  }
2560
2611
  });
2561
2612
  //#endregion
2613
+ //#region ../api/src/bookingPeopleEndpointDefinitions.ts
2614
+ /**
2615
+ * People endpoints (#1356): the People list, its CSV export, and deleting a
2616
+ * person when nothing is attached to them.
2617
+ */
2618
+ const BOOKING_PEOPLE_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
2619
+ listPeople: {
2620
+ path: "/sites/{siteId}/bookings/people",
2621
+ method: "GET",
2622
+ tags: ["site-{siteId}", "customers-{siteId}"],
2623
+ auth: "user",
2624
+ responseKind: "json",
2625
+ errors: ["server:internal_error"]
2626
+ },
2627
+ exportPeopleCsv: {
2628
+ path: "/sites/{siteId}/bookings/people/export.csv",
2629
+ method: "GET",
2630
+ tags: ["site-{siteId}", "customers-{siteId}"],
2631
+ auth: "user",
2632
+ errors: [],
2633
+ responseKind: "blob"
2634
+ },
2635
+ checkPersonDeletion: {
2636
+ path: "/sites/{siteId}/bookings/people/{personId}/deletion-check",
2637
+ method: "GET",
2638
+ tags: ["site-{siteId}", "customers-{siteId}"],
2639
+ auth: "user",
2640
+ responseKind: "json",
2641
+ errors: [
2642
+ "auth:forbidden",
2643
+ "resource:not_found",
2644
+ "server:internal_error"
2645
+ ]
2646
+ },
2647
+ deletePerson: {
2648
+ path: "/sites/{siteId}/bookings/people/{personId}",
2649
+ method: "DELETE",
2650
+ tags: ["site-{siteId}", "customers-{siteId}"],
2651
+ auth: "user",
2652
+ responseKind: "json",
2653
+ errors: [
2654
+ "auth:forbidden",
2655
+ "resource:not_found",
2656
+ "server:internal_error"
2657
+ ]
2658
+ }
2659
+ });
2660
+ //#endregion
2562
2661
  //#region ../api/src/clientErrorReporting.ts
2563
2662
  const CLIENT_ERROR_REPORT_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({ reportClientError: {
2564
2663
  path: "/client/error-report",
@@ -2594,6 +2693,7 @@ z.object({
2594
2693
  sourceLocation: z.string().max(CLIENT_ERROR_REPORT_LIMITS.sourceLocation).nullable()
2595
2694
  }).strict();
2596
2695
  const API_ENDPOINTS = {
2696
+ ...SITE_LIFECYCLE_ENDPOINT_DEFINITIONS,
2597
2697
  ...CLIENT_ERROR_REPORT_ENDPOINT_DEFINITIONS,
2598
2698
  ...PUBLIC_NEWSLETTER_ENDPOINT_DEFINITIONS,
2599
2699
  ...ACCOUNT_ENDPOINT_DEFINITIONS,
@@ -3129,13 +3229,6 @@ const API_ENDPOINTS = {
3129
3229
  auth: "user",
3130
3230
  responseKind: "json"
3131
3231
  },
3132
- createSiteManual: {
3133
- path: "/sites/manual",
3134
- method: "POST",
3135
- tags: ["site"],
3136
- auth: "user",
3137
- responseKind: "json"
3138
- },
3139
3232
  listSiteMembers: {
3140
3233
  path: "/sites/{siteId}/members",
3141
3234
  method: "GET",
@@ -6641,21 +6734,7 @@ const API_ENDPOINTS = {
6641
6734
  responseKind: "json",
6642
6735
  errors: []
6643
6736
  },
6644
- listBookingCustomers: {
6645
- path: "/sites/{siteId}/bookings/customers",
6646
- method: "GET",
6647
- tags: ["site-{siteId}", "customers-{siteId}"],
6648
- auth: "user",
6649
- responseKind: "json"
6650
- },
6651
- exportBookingCustomersCsv: {
6652
- path: "/sites/{siteId}/bookings/customers/export.csv",
6653
- method: "GET",
6654
- tags: ["site-{siteId}", "customers-{siteId}"],
6655
- auth: "user",
6656
- errors: [],
6657
- responseKind: "blob"
6658
- },
6737
+ ...BOOKING_PEOPLE_ENDPOINT_DEFINITIONS,
6659
6738
  createBookingCustomer: {
6660
6739
  path: "/sites/{siteId}/bookings/customers",
6661
6740
  method: "POST",
@@ -6746,13 +6825,6 @@ const API_ENDPOINTS = {
6746
6825
  "server:internal_error"
6747
6826
  ]
6748
6827
  },
6749
- listCustomerAttendances: {
6750
- path: "/sites/{siteId}/bookings/customers/{customerId}/attendances",
6751
- method: "GET",
6752
- tags: ["site-{siteId}", "customers-{siteId}"],
6753
- auth: "user",
6754
- responseKind: "json"
6755
- },
6756
6828
  createPersonRecordEntry: {
6757
6829
  path: "/sites/{siteId}/bookings/person-records/entries",
6758
6830
  method: "POST",
@@ -1,16 +1,16 @@
1
1
  "use client";
2
- import { a as usePreviewLayout, i as useOptionalPreviewLayout, n as createPreviewQueryClient, r as PreviewLayoutProvider, t as PreviewQueryProvider } from "../../PreviewQueryProvider-Cg51xq1w.mjs";
2
+ import { a as usePreviewLayout, i as useOptionalPreviewLayout, n as createPreviewQueryClient, r as PreviewLayoutProvider, t as PreviewQueryProvider } from "../../PreviewQueryProvider-Dd4dxOiU.mjs";
3
3
  import React from "react";
4
4
  import { jsx } from "react/jsx-runtime";
5
5
  //#region src/preview-next/client/runtime.tsx
6
6
  const LazySdkPreviewMode = React.lazy(async () => {
7
- return { default: (await import("../../SdkPreviewModeRuntime-h2ti3Hch.mjs").then((n) => n.n)).SdkPreviewModeRuntime };
7
+ return { default: (await import("../../SdkPreviewModeRuntime-DMMNCngt.mjs").then((n) => n.n)).SdkPreviewModeRuntime };
8
8
  });
9
9
  const LazyPreviewShell = React.lazy(async () => {
10
- return { default: (await import("../../sdk-runtime-DTc1uIXn.mjs")).PreviewShell };
10
+ return { default: (await import("../../sdk-runtime-BIkJg5y1.mjs")).PreviewShell };
11
11
  });
12
12
  const LazyPreviewShellLayout = React.lazy(async () => {
13
- return { default: (await import("../../sdk-runtime-DTc1uIXn.mjs")).PreviewShellLayout };
13
+ return { default: (await import("../../sdk-runtime-BIkJg5y1.mjs")).PreviewShellLayout };
14
14
  });
15
15
  function SdkPreviewMode(props) {
16
16
  return /* @__PURE__ */ jsx(React.Suspense, {
@@ -49,11 +49,21 @@
49
49
  --field-background: oklch(0.992 0.008 180);
50
50
  --field-border-subtle: oklch(0.90 0.02 180);
51
51
  --field-border-strong: oklch(0.72 0.06 180);
52
- --field-control-radius: 0.6rem;
52
+ --item-radius: 0.6rem;
53
53
  --control-font-size: 0.875rem;
54
54
  --control-font-weight: 400;
55
55
  --control-letter-spacing: 0.01em;
56
56
 
57
+ /* One field shape for every control (Input, Textarea, SelectTrigger,
58
+ * Checkbox, Radio); the class strings live in src/fieldControl.ts. The
59
+ * compact size is the default, and public screens opt into the roomy one
60
+ * with `data-field-size="roomy"` (below). */
61
+ --field-radius: 0.75rem;
62
+ --field-height: 2.5rem;
63
+ --field-padding-x: 0.75rem;
64
+ --field-font-size: 0.875rem;
65
+ --field-textarea-min-height: 5rem;
66
+
57
67
  /* Button tuning shared by dashboard chrome and frontend preview chrome */
58
68
  --button-radius: var(--radius-md);
59
69
  --button-padding-x: 1rem;
@@ -64,6 +74,10 @@
64
74
  --button-padding-y-lg: 0.625rem;
65
75
  --button-outline-border-width: 1px;
66
76
  --button-outline-hover: oklch(0.92 0.03 180);
77
+
78
+ /* The line joining steps on a stem (the launch checklists). Surfaces with a
79
+ plant of their own restyle it; see macadamia-tokens.css. */
80
+ --step-stem-width: 1px;
67
81
  --table-row-hover-background: oklch(0.94 0.018 185);
68
82
 
69
83
  /* Destructive - Terracotta red #a34d3d */
@@ -127,6 +141,15 @@
127
141
  --spacing: 0.27rem;
128
142
  }
129
143
 
144
+ /* The roomy field size, for public screens where a form is the whole page
145
+ * (sign-in, onboarding, contact). Same shape, more room. */
146
+ [data-field-size="roomy"] {
147
+ --field-height: 3rem;
148
+ --field-padding-x: 1rem;
149
+ --field-font-size: 1rem;
150
+ --field-textarea-min-height: 6.5rem;
151
+ }
152
+
130
153
  /* Dark mode overrides - Earthy palette adjusted for dark backgrounds */
131
154
  .dark {
132
155
  --background: oklch(0.20 0.02 30); /* Very dark brown */
@@ -165,7 +188,7 @@
165
188
  --field-background: oklch(0.28 0.02 180);
166
189
  --field-border-subtle: oklch(0.52 0.03 180);
167
190
  --field-border-strong: oklch(0.78 0.06 180);
168
- --field-control-radius: 0.6rem;
191
+ --item-radius: 0.6rem;
169
192
  --control-font-size: 0.875rem;
170
193
  --control-font-weight: 400;
171
194
  --control-letter-spacing: 0.01em;
@@ -309,3 +332,31 @@
309
332
  --tracking-wider: calc(var(--tracking-normal) + 0.05em);
310
333
  --tracking-widest: calc(var(--tracking-normal) + 0.1em);
311
334
  }
335
+
336
+ /* Inverse surface: the dark band (`<Surface variant="inverse">`). Shared
337
+ * controls inside it read light on dark. Don't nest light surfaces (cards,
338
+ * fields on white) inside it: they inherit these remapped tokens. A light
339
+ * field inside must set its own colours, as SiteAddressEditor's field does. The primary action fills with the
340
+ * surface's inverse primary (Macadamia's pale leaf; the light accent on core),
341
+ * secondary fills with the band's light text colour, and an outline takes that
342
+ * text colour, per the "weight decides shape, ground decides colour" rule. */
343
+ .surface-inverse {
344
+ --primary: var(--inverse-primary, var(--accent));
345
+ --primary-foreground: var(--inverse);
346
+ --primary-hover: var(--inverse-primary-hover, color-mix(in oklab, var(--accent) 80%, var(--inverse-foreground)));
347
+ --button-outline-border: color-mix(in oklab, var(--inverse-foreground) 40%, transparent);
348
+ --button-outline-background: transparent;
349
+ --button-outline-foreground: var(--inverse-foreground);
350
+ --button-secondary-border: transparent;
351
+ --button-secondary-background: var(--inverse-foreground);
352
+ --button-secondary-foreground: var(--inverse);
353
+ --muted-foreground: color-mix(in oklab, var(--inverse-foreground) 72%, transparent);
354
+ }
355
+
356
+ /* Keyboard focus on the band: a light outline around the control, clear of
357
+ * light-filled controls (the ring token stays the surface's own, for fields).
358
+ * The data-slot qualifier outranks a surface's page-wide focus colour. */
359
+ [data-slot="surface"].surface-inverse :focus-visible {
360
+ outline: 2px solid var(--inverse-foreground);
361
+ outline-offset: 2px;
362
+ }
@@ -60,11 +60,14 @@
60
60
  letter-spacing: var(--tracking-normal);
61
61
  }
62
62
 
63
+ /* Page titles. A surface can restyle them through the --page-title-* tokens;
64
+ * core leaves them unset and keeps these values. */
63
65
  .builder-dashboard-chrome-theme h1 {
64
- font-size: 1.875rem;
65
- font-weight: 600;
66
- letter-spacing: var(--heading-letter-spacing);
67
- line-height: 2.25rem;
66
+ font-size: var(--page-title-font-size, 1.875rem);
67
+ font-weight: var(--page-title-font-weight, 600);
68
+ letter-spacing: var(--page-title-letter-spacing, var(--heading-letter-spacing));
69
+ line-height: var(--page-title-line-height, 2.25rem);
70
+ color: var(--page-title-foreground, inherit);
68
71
  }
69
72
 
70
73
  .builder-dashboard-chrome-theme h2 {