@riverbankcms/sdk 0.75.0 → 0.77.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 (177) hide show
  1. package/README.md +2 -0
  2. package/dist/{PreviewEditorSidebar-U2IHCBYN.mjs → PreviewEditorSidebar-XSX7QKHQ.mjs} +1179 -519
  3. package/dist/{PreviewEditorUI-ZGH2RQNP.mjs → PreviewEditorUI-YZNEZ3QD.mjs} +2 -2
  4. package/dist/SdkPreviewModeRuntime-5FS5E6BI.mjs +8 -0
  5. package/dist/_dts/ai/src/contracts/proposals.d.ts +528 -20
  6. package/dist/_dts/api/src/bookingOperations.d.ts +12 -0
  7. package/dist/_dts/api/src/contentRuntime.d.ts +5 -0
  8. package/dist/_dts/api/src/index.d.ts +1 -1
  9. package/dist/_dts/api/src/publicExperienceEndpoints.d.ts +11 -3
  10. package/dist/_dts/api/src/siteAssets.d.ts +1 -0
  11. package/dist/_dts/api/src/siteRuntimeEndpoints.d.ts +26 -2
  12. package/dist/_dts/block-form/src/blockDraftSaveability.d.ts +28 -1
  13. package/dist/_dts/block-form/src/client/index.d.ts +2 -2
  14. package/dist/_dts/block-form/src/index.d.ts +2 -1
  15. package/dist/_dts/block-form/src/manifest/utils.d.ts +24 -0
  16. package/dist/_dts/block-form/src/widgets/DateField/dateFieldSchema.d.ts +1 -1
  17. package/dist/_dts/block-form/src/widgets/DateTimeField/dateTimeFieldSchema.d.ts +1 -1
  18. package/dist/_dts/block-form/src/widgets/TimeField/timeFieldSchema.d.ts +1 -1
  19. package/dist/_dts/blocks/src/PageRenderer.d.ts +10 -10
  20. package/dist/_dts/blocks/src/client/events.d.ts +3 -1
  21. package/dist/_dts/blocks/src/client/site-chrome.d.ts +22 -0
  22. package/dist/_dts/blocks/src/contracts/proof-block-islands.d.ts +4 -4
  23. package/dist/_dts/blocks/src/customBlockRegistry.d.ts +38 -0
  24. package/dist/_dts/blocks/src/index.d.ts +2 -0
  25. package/dist/_dts/blocks/src/system/blocks/faq.d.ts +20 -2
  26. package/dist/_dts/blocks/src/system/blocks/feature-cards.d.ts +25 -0
  27. package/dist/_dts/blocks/src/system/blocks/index.d.ts +2 -0
  28. package/dist/_dts/blocks/src/system/blocks/intro.d.ts +24 -0
  29. package/dist/_dts/blocks/src/system/blocks/media-text.d.ts +3 -34
  30. package/dist/_dts/blocks/src/system/constants/blockKinds.d.ts +1 -1
  31. package/dist/_dts/blocks/src/system/fields/aspectRatio.d.ts +30 -0
  32. package/dist/_dts/blocks/src/system/fields/boxStyles.d.ts +4 -1
  33. package/dist/_dts/blocks/src/system/fields/ctas.d.ts +7 -0
  34. package/dist/_dts/blocks/src/system/manifest/fieldValidation/index.d.ts +11 -2
  35. package/dist/_dts/blocks/src/system/node/validation-constants.d.ts +1 -1
  36. package/dist/_dts/blocks/src/system/runtime/components/registry.client.d.ts +6 -6
  37. package/dist/_dts/blocks/src/system/runtime/components/runtime-backed-blocks.d.ts +3 -3
  38. package/dist/_dts/blocks/src/system/runtime/nodes/accordion.d.ts +2 -0
  39. package/dist/_dts/blocks/src/system/runtime/nodes/accordion.server.d.ts +2 -0
  40. package/dist/_dts/blocks/src/system/runtime/nodes/accordionIconTreatment.d.ts +5 -0
  41. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.interactive.d.ts +3 -27
  42. package/dist/_dts/blocks/src/system/runtime/nodes/booking-runtime-sources.d.ts +163 -0
  43. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration.interactive.d.ts +5 -5
  44. package/dist/_dts/blocks/src/system/runtime/shared/components/BookingOptionCompactRow.d.ts +29 -0
  45. package/dist/_dts/blocks/src/system/runtime/shared/components/BookingOptionList.d.ts +13 -0
  46. package/dist/_dts/blocks/src/system/runtime/shared/components/index.d.ts +4 -0
  47. package/dist/_dts/blocks/src/system/runtime/shared/index.d.ts +4 -3
  48. package/dist/_dts/blocks/src/system/runtime/shared/utils/bookingRoute.d.ts +20 -0
  49. package/dist/_dts/blocks/src/system/runtime/shared/utils/index.d.ts +2 -1
  50. package/dist/_dts/blocks/src/system/transforms/registry/layout.d.ts +1 -0
  51. package/dist/_dts/blocks/src/system/transforms/typed.d.ts +2 -1
  52. package/dist/_dts/blocks/src/system/types/link.d.ts +12 -0
  53. package/dist/_dts/content-editor/src/controller/EntryControllerProvider.d.ts +2 -0
  54. package/dist/_dts/content-editor/src/hooks/blockDraftLifecycle.d.ts +48 -0
  55. package/dist/_dts/content-editor/src/hooks/invalidBlockSelectors.d.ts +4 -0
  56. package/dist/_dts/content-editor/src/hooks/publishability.d.ts +47 -0
  57. package/dist/_dts/content-editor/src/index.d.ts +1 -0
  58. package/dist/_dts/db/src/generated/supabase/database.types.d.ts +20 -0
  59. package/dist/_dts/editor-blocks/src/BlockEditor.d.ts +4 -1
  60. package/dist/_dts/editor-blocks/src/block-editor/BlockCard.d.ts +3 -1
  61. package/dist/_dts/editor-blocks/src/block-editor/BlockCardHeader.d.ts +3 -1
  62. package/dist/_dts/editor-blocks/src/block-editor/BlockSettingsModal.d.ts +5 -1
  63. package/dist/_dts/editor-blocks/src/block-editor/SortableBlockItem.d.ts +4 -1
  64. package/dist/_dts/editor-blocks/src/block-editor/actionControlMode.d.ts +2 -0
  65. package/dist/_dts/editor-blocks/src/block-editor/customBlockRegistry.d.ts +2 -0
  66. package/dist/_dts/editor-blocks/src/block-editor/sdkBlockMerger.d.ts +9 -37
  67. package/dist/_dts/editor-blocks/src/index.d.ts +3 -3
  68. package/dist/_dts/preview-next/src/client/index.d.ts +3 -0
  69. package/dist/_dts/preview-next/src/client/layout/PreviewLayoutContext.d.ts +5 -1
  70. package/dist/_dts/preview-next/src/client/preview/PreviewDesignCoordinatorContext.d.ts +20 -0
  71. package/dist/_dts/preview-next/src/client/preview/PreviewEditorSidebar.d.ts +7 -2
  72. package/dist/_dts/preview-next/src/client/preview/PreviewShell.d.ts +7 -2
  73. package/dist/_dts/preview-next/src/client/preview/PreviewShellLayout.d.ts +7 -2
  74. package/dist/_dts/preview-next/src/client/preview/PreviewThemedSiteDocument.d.ts +18 -0
  75. package/dist/_dts/preview-next/src/client/preview/SiteChromeCustomizeContext.d.ts +20 -3
  76. package/dist/_dts/preview-next/src/client/preview/StyleConfigurator.d.ts +6 -1
  77. package/dist/_dts/preview-next/src/client/preview/StyleConfigurator.state.d.ts +14 -4
  78. package/dist/_dts/preview-next/src/client/preview/previewDesignCoordinator.d.ts +73 -0
  79. package/dist/_dts/preview-next/src/client/preview/siteChromeLookRows.d.ts +12 -4
  80. package/dist/_dts/preview-next/src/client/preview/siteStylePreviewPlanner.d.ts +46 -0
  81. package/dist/_dts/preview-next/src/client/preview/styleConfiguratorSnapshot.d.ts +6 -1
  82. package/dist/_dts/preview-next/src/client/preview/themeOverlay.d.ts +21 -3
  83. package/dist/_dts/preview-next/src/client/preview/typographySelectionInput.d.ts +14 -0
  84. package/dist/_dts/preview-next/src/client/sdk/SdkPreviewModeRuntime.d.ts +1 -1
  85. package/dist/_dts/sdk/src/cli/commands/style.d.ts +8 -0
  86. package/dist/_dts/sdk/src/client/management/types.d.ts +6 -1
  87. package/dist/_dts/sdk/src/client/types.d.ts +9 -0
  88. package/dist/_dts/sdk/src/client.d.ts +1 -1
  89. package/dist/_dts/sdk/src/components.d.ts +2 -2
  90. package/dist/_dts/sdk/src/contracts/system-block-content.d.ts +35 -0
  91. package/dist/_dts/sdk/src/index.d.ts +2 -1
  92. package/dist/_dts/sdk/src/public-api/contracts.d.ts +5 -0
  93. package/dist/_dts/sdk/src/rendering/index.d.ts +2 -2
  94. package/dist/_dts/sdk/src/rendering/overrideResolution.d.ts +6 -0
  95. package/dist/_dts/sdk/src/rendering/overrides.d.ts +21 -1
  96. package/dist/_dts/sdk/src/rendering/server.d.ts +4 -3
  97. package/dist/_dts/sdk/src/types/block-kinds.d.ts +1 -1
  98. package/dist/_dts/sdk/src/version.d.ts +1 -1
  99. package/dist/_dts/site-commands/src/commands.d.ts +15 -0
  100. package/dist/_dts/theme-core/src/buttons/personalities/earth-pill.d.ts +16 -0
  101. package/dist/_dts/theme-core/src/buttons/personalities/index.d.ts +11 -0
  102. package/dist/_dts/theme-core/src/fonts/types.d.ts +1 -1
  103. package/dist/_dts/theme-core/src/mock-themes/all.d.ts +45 -0
  104. package/dist/_dts/theme-core/src/palette/variants/index.d.ts +15 -0
  105. package/dist/_dts/theme-core/src/palette/variants/warm-neutral.d.ts +16 -0
  106. package/dist/_dts/theme-core/src/schema.d.ts +280 -0
  107. package/dist/_dts/theme-core/src/site-styles/appearancePresetCatalog.d.ts +81 -0
  108. package/dist/_dts/theme-core/src/site-styles/appearancePresetTypes.d.ts +6 -4
  109. package/dist/_dts/theme-core/src/site-styles/blockAppearancePresets.d.ts +81 -0
  110. package/dist/_dts/theme-core/src/site-styles/curatedSiteStyles.d.ts +118 -2
  111. package/dist/_dts/theme-core/src/site-styles/footerLooks.d.ts +13 -0
  112. package/dist/_dts/theme-core/src/site-styles/generatedSchemas.d.ts +4 -2
  113. package/dist/_dts/theme-core/src/site-styles/headerLooks.d.ts +364 -5
  114. package/dist/_dts/theme-core/src/site-styles/headerOpeningSection.d.ts +6 -0
  115. package/dist/_dts/theme-core/src/site-styles/index.d.ts +2 -0
  116. package/dist/_dts/theme-core/src/site-styles/persistedIdParseResult.d.ts +9 -0
  117. package/dist/_dts/theme-core/src/site-styles/previewCompiler.d.ts +20 -4
  118. package/dist/_dts/theme-core/src/site-styles/types.d.ts +74 -2
  119. package/dist/_dts/theme-core/src/site-styles/typographyPresets.d.ts +189 -0
  120. package/dist/{chunk-Z7JLNTJR.mjs → chunk-6SMUFTXD.mjs} +2 -1
  121. package/dist/{chunk-ZSHFGFUG.mjs → chunk-ANKDYZ2E.mjs} +1 -1
  122. package/dist/{chunk-BGMNDF6T.mjs → chunk-EAWHBECW.mjs} +476 -153
  123. package/dist/{chunk-RWXQBRQZ.mjs → chunk-GSQX43EZ.mjs} +450 -63
  124. package/dist/{chunk-GFE74WRD.mjs → chunk-WLQBJN2Z.mjs} +3275 -435
  125. package/dist/cli/index.mjs +2023 -181
  126. package/dist/client/{accordion-T2UD2ZTH.mjs → accordion-RZMQSYLR.mjs} +1 -1
  127. package/dist/client/{bookingForm-GUP75FKN.mjs → bookingForm-NF4ASVNV.mjs} +3 -13
  128. package/dist/client/bookings.mjs +103 -11
  129. package/dist/client/{carousel-2NQA6V57.mjs → carousel-LDX47ZIK.mjs} +1 -1
  130. package/dist/client/{cart-5TFIAFDS.mjs → cart-RGXDS5F4.mjs} +4 -4
  131. package/dist/client/{checkout-TP4WAHZE.mjs → checkout-P7WWSNNY.mjs} +4 -4
  132. package/dist/client/{chunk-ZLMS67RR.mjs → chunk-E2TDNXCL.mjs} +1 -1
  133. package/dist/client/{chunk-NWOUL6JY.mjs → chunk-GMVTOKYG.mjs} +3 -3
  134. package/dist/client/{chunk-CY2ZTSE5.mjs → chunk-JNC7CGHX.mjs} +1 -1
  135. package/dist/client/{chunk-VUAOE3AG.mjs → chunk-L3DNHIJX.mjs} +4 -4
  136. package/dist/client/{chunk-FU2QRZMX.mjs → chunk-R56FQ3RR.mjs} +163 -24
  137. package/dist/client/{chunk-WJXXNDSE.mjs → chunk-UFSWADAO.mjs} +1 -1
  138. package/dist/client/client.mjs +4392 -2504
  139. package/dist/client/{courseRegistration-5DPU6PDY.mjs → courseRegistration-7F65K5ZR.mjs} +3 -3
  140. package/dist/client/{eventCalendar-F3GZGTEF.mjs → eventCalendar-GLSC5KTL.mjs} +5 -5
  141. package/dist/client/{eventCombined-BQOB6QMY.mjs → eventCombined-ZHK4WKUR.mjs} +5 -5
  142. package/dist/client/{eventDetails-PEM2EJWE.mjs → eventDetails-E3PJYBIN.mjs} +5 -5
  143. package/dist/client/{eventListing-YMIQPVME.mjs → eventListing-EMS3WC3E.mjs} +5 -5
  144. package/dist/client/{eventRegistration-4I6ZNDUF.mjs → eventRegistration-NZOTVNPI.mjs} +5 -5
  145. package/dist/client/{form-ZJVAYZ6G.mjs → form-ETFZFATW.mjs} +1 -1
  146. package/dist/client/{headerSection-TOT5MGTF.mjs → headerSection-4LBP7ULT.mjs} +2 -2
  147. package/dist/client/hooks.mjs +1918 -293
  148. package/dist/client/{locationMap-J66NZREU.mjs → locationMap-5M655YSJ.mjs} +1 -1
  149. package/dist/client/{newsletterForm-ET2XUMRO.mjs → newsletterForm-QOUYW44O.mjs} +1 -1
  150. package/dist/client/{productDetail-C2XIH7C5.mjs → productDetail-O4DOCWQG.mjs} +4 -4
  151. package/dist/client/{productList-T2AZLFTP.mjs → productList-A5RO5WIS.mjs} +4 -4
  152. package/dist/client/rendering/client.mjs +3328 -3177
  153. package/dist/client/rendering/islands.mjs +18 -18
  154. package/dist/client/rendering.mjs +5461 -3584
  155. package/dist/client/{shop-UZ6IUZXD.mjs → shop-L4MZH4I2.mjs} +4 -4
  156. package/dist/preview-next/chrome.css +1 -1
  157. package/dist/preview-next/client/runtime.mjs +4 -4
  158. package/dist/preview-next/editor-base.css +2 -148
  159. package/dist/preview-next/editor-chrome.css +179 -0
  160. package/dist/{sdk-runtime-JCUQM63Y.mjs → sdk-runtime-Q6MTR4KL.mjs} +5 -5
  161. package/dist/server/components.mjs +2983 -1093
  162. package/dist/server/config-validation.mjs +1921 -293
  163. package/dist/server/config.mjs +1921 -293
  164. package/dist/server/data.mjs +1918 -293
  165. package/dist/server/index.mjs +31 -2
  166. package/dist/server/next.mjs +2951 -1043
  167. package/dist/server/page-converter.mjs +1894 -281
  168. package/dist/server/prebuild.mjs +1 -1
  169. package/dist/server/rendering/server.mjs +2995 -1096
  170. package/dist/server/rendering.mjs +2988 -1098
  171. package/dist/server/routing.mjs +1963 -275
  172. package/dist/server/server.mjs +1932 -288
  173. package/dist/server/theme-bridge.mjs +158 -1
  174. package/dist/server/theme.mjs +158 -1
  175. package/package.json +1 -1
  176. package/dist/SdkPreviewModeRuntime-MTUGBTLQ.mjs +0 -8
  177. /package/dist/client/{chunk-2PHQZ666.mjs → chunk-JEZECJ3W.mjs} +0 -0
@@ -1,4 +1,4 @@
1
- import { defineIslandPropsDecoder } from './chunk-FU2QRZMX.mjs';
1
+ import { defineIslandPropsDecoder } from './chunk-R56FQ3RR.mjs';
2
2
  import './chunk-PMAIXMAB.mjs';
3
3
 
4
4
  // src/rendering/islands/enhancers/accordion.ts
@@ -1,28 +1,18 @@
1
1
  "use client";
2
2
  import { DiscountCodeSection } from './chunk-OJPZEZU2.mjs';
3
- import { useDiscountCodeUi, usePolling } from './chunk-WJXXNDSE.mjs';
3
+ import { useDiscountCodeUi, usePolling } from './chunk-UFSWADAO.mjs';
4
4
  import { SpinnerNode } from './chunk-TQ5MSPDX.mjs';
5
- import { scrollToBlock, buildCheckoutReturnUrls, formatPrice } from './chunk-2PHQZ666.mjs';
5
+ import { scrollToBlock, buildCheckoutReturnUrls, formatPrice } from './chunk-JEZECJ3W.mjs';
6
6
  import { FieldValidationMessage, getFieldValidationControlProps } from './chunk-3DCJ45Z2.mjs';
7
7
  import './chunk-3PEDD5KJ.mjs';
8
8
  import { isSpamProtectionEnabled, getChallengeUrl, AltchaWidget } from './chunk-YLMKMCSJ.mjs';
9
9
  import { BlockApiProvider, useBlockApi, FeedbackMessage } from './chunk-M3L3KYYR.mjs';
10
10
  import { mountReactIsland } from './chunk-N7PBWBWQ.mjs';
11
- import { defineIslandPropsDecoder, resolveBookingSiteId, resolveDefaultBookingServiceId, getBookingRedirectStateFromLocation, deriveBookingFormViewState, getBookingSuccessMessage, resolveAppointmentCheckoutVerificationState, themeButtonClassName, toSelectedCollectionOptionKind, assertNever, prepareBookingSubmission, formatBookingSubmissionPreparationError, resolveBookingPaymentStep, BOOKING_FORM_DATA_RESERVED_KEYS, okWith, err } from './chunk-FU2QRZMX.mjs';
11
+ import { defineIslandPropsDecoder, resolveBookingSiteId, resolveDefaultBookingServiceId, getBookingRedirectStateFromLocation, deriveBookingFormViewState, logger, getBookingSuccessMessage, resolveAppointmentCheckoutVerificationState, themeButtonClassName, toSelectedCollectionOptionKind, assertNever, prepareBookingSubmission, formatBookingSubmissionPreparationError, resolveBookingPaymentStep, BOOKING_FORM_DATA_RESERVED_KEYS, okWith, err } from './chunk-R56FQ3RR.mjs';
12
12
  import { resolveBookingTimeZoneId, DEFAULT_BOOKING_TIME_ZONE, asFormId, asAppointmentResourceId, asCustomerPassId, asAppointmentServiceId, formatLocalScheduleDate, addLocalScheduleDays, parseBookingLocalDate, resolveFlexibleBalanceInitialPaymentCents, resolveFlexibleBalanceDueAt, getBookingInstalmentDepositRefundability, asPassId, splitAmountWithRemainderInFirst, addIntervalPreservingMonthAnchor, clampConfiguredAmount, getBookingInstalmentPlanIntervalCount, omitZeroAmountFutureRows, formatBookingInstant } from './chunk-PMAIXMAB.mjs';
13
13
  import React2, { useRef, useState, useMemo, useReducer, useEffect, useCallback, useLayoutEffect } from 'react';
14
14
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
15
15
 
16
- // ../logger/src/noop.ts
17
- var noop = () => {
18
- };
19
- var logger = {
20
- debug: noop,
21
- info: noop,
22
- warn: noop,
23
- error: noop,
24
- withFields: (_) => logger
25
- };
26
16
  var SuccessMessage = ({
27
17
  message,
28
18
  resourceName,
@@ -4441,6 +4441,97 @@ var confidentChip = defineButtonPersonality({
4441
4441
  }
4442
4442
  });
4443
4443
 
4444
+ // ../theme-core/src/buttons/personalities/earth-pill.ts
4445
+ var earthPill = defineButtonPersonality({
4446
+ id: "earth-pill",
4447
+ name: "Earth Pill",
4448
+ description: "Compact terracotta pills with quiet primary-coloured ghost CTAs.",
4449
+ tags: { tone: "classic", energy: "calm", motion: "subtle", era: "organic" },
4450
+ buttonSystem: {
4451
+ global: {
4452
+ cornerStyle: "pill",
4453
+ shadow: "low",
4454
+ textTransform: "none",
4455
+ fontWeight: 500,
4456
+ borderWidth: 1,
4457
+ hoverTransform: "lift",
4458
+ hoverColor: "none",
4459
+ typography: "body",
4460
+ paddingPreset: "default"
4461
+ },
4462
+ sizes: {
4463
+ sm: { padding: "0.5rem 1rem", fontSize: "text-sm" },
4464
+ md: { padding: "0.625rem 1.35rem" },
4465
+ lg: { padding: "0.75rem 1.65rem", fontSize: "text-lg" },
4466
+ xl: { padding: "0.875rem 2rem", fontSize: "text-xl" }
4467
+ },
4468
+ variants: [
4469
+ {
4470
+ id: "primary",
4471
+ name: "Primary",
4472
+ enabled: true,
4473
+ priority: 1,
4474
+ background: { type: "solid", colorToken: "primary" },
4475
+ textColorToken: "primaryForeground",
4476
+ borderRadius: "rounded-full",
4477
+ shadow: { elevation: "low", softness: "soft", position: "bottom" },
4478
+ effects: {
4479
+ hover: [
4480
+ { effectId: "lift", options: { translateY: "-1px" } },
4481
+ { effectId: "background-on-hover", options: { colorToken: "accent" } }
4482
+ ],
4483
+ active: [{ effectId: "scale-down", options: { scale: "0.98" } }]
4484
+ }
4485
+ },
4486
+ {
4487
+ id: "secondary",
4488
+ name: "Secondary",
4489
+ enabled: true,
4490
+ priority: 2,
4491
+ background: { type: "transparent" },
4492
+ textColorToken: "primary",
4493
+ borderRadius: "rounded-full",
4494
+ border: { widthClass: "border", colorToken: "primary" },
4495
+ effects: {
4496
+ hover: [{ effectId: "background-on-hover", options: { colorToken: "muted" } }]
4497
+ }
4498
+ },
4499
+ {
4500
+ id: "outline",
4501
+ name: "Outline",
4502
+ enabled: true,
4503
+ priority: 3,
4504
+ background: { type: "transparent" },
4505
+ textColorToken: "text",
4506
+ borderRadius: "rounded-full",
4507
+ border: { widthClass: "border", colorToken: "border" },
4508
+ effects: {
4509
+ hover: [{ effectId: "background-on-hover", options: { colorToken: "surfaceAlt" } }]
4510
+ }
4511
+ },
4512
+ {
4513
+ id: "ghost",
4514
+ name: "Ghost",
4515
+ enabled: true,
4516
+ priority: 3,
4517
+ background: { type: "transparent" },
4518
+ textColorToken: "primary",
4519
+ borderRadius: "rounded-full",
4520
+ shadow: { elevation: "none", softness: null, position: "bottom" },
4521
+ sizes: {
4522
+ sm: { padding: "0.25rem 0", fontSize: "text-sm" },
4523
+ md: { padding: "0.375rem 0" },
4524
+ lg: { padding: "0.5rem 0", fontSize: "text-lg" },
4525
+ xl: { padding: "0.625rem 0", fontSize: "text-xl" }
4526
+ },
4527
+ effects: {
4528
+ hover: [{ effectId: "opacity-reduce", options: { reduction: 25 } }]
4529
+ }
4530
+ }
4531
+ ]
4532
+ }
4533
+ });
4534
+
4444
4535
  // ../theme-core/src/buttons/personalities/editorial-link.ts
4445
4536
  var editorialLink = defineButtonPersonality({
4446
4537
  id: "editorial-link",
@@ -4899,6 +4990,7 @@ var softPill = defineButtonPersonality({
4899
4990
  // ../theme-core/src/buttons/personalities/index.ts
4900
4991
  var buttonPersonalities = [
4901
4992
  softPill,
4993
+ earthPill,
4902
4994
  confidentChip,
4903
4995
  editorialLink,
4904
4996
  pebble,
@@ -5797,6 +5889,17 @@ function getBookingSuccessMessage(successMessage) {
5797
5889
  return successMessage?.trim() || "Your appointment has been booked! Check your email for confirmation.";
5798
5890
  }
5799
5891
 
5892
+ // ../logger/src/noop.ts
5893
+ var noop = () => {
5894
+ };
5895
+ var logger = {
5896
+ debug: noop,
5897
+ info: noop,
5898
+ warn: noop,
5899
+ error: noop,
5900
+ withFields: (_) => logger
5901
+ };
5902
+
5800
5903
  // ../theme-core/src/inputs/types.ts
5801
5904
  import { z as z6 } from "zod";
5802
5905
  var inputSystemSchema = z6.object({
@@ -6157,17 +6260,6 @@ function FeedbackMessage({
6157
6260
  // ../blocks/src/system/runtime/nodes/booking-form.client.tsx
6158
6261
  import React3, { useRef as useRef7, useState as useState6 } from "react";
6159
6262
 
6160
- // ../logger/src/noop.ts
6161
- var noop = () => {
6162
- };
6163
- var logger = {
6164
- debug: noop,
6165
- info: noop,
6166
- warn: noop,
6167
- error: noop,
6168
- withFields: (_) => logger
6169
- };
6170
-
6171
6263
  // ../altcha/src/AltchaWidget.tsx
6172
6264
  import { useEffect, useRef, useState } from "react";
6173
6265
  import { jsx as jsx4 } from "react/jsx-runtime";
@@ -1,7 +1,7 @@
1
1
  import { normalizeCarouselProps, CarouselNodeClient } from './chunk-II7O4XN3.mjs';
2
2
  import './chunk-RTZ3JKKX.mjs';
3
3
  import { mountReactIsland } from './chunk-N7PBWBWQ.mjs';
4
- import { defineIslandPropsDecoder } from './chunk-FU2QRZMX.mjs';
4
+ import { defineIslandPropsDecoder } from './chunk-R56FQ3RR.mjs';
5
5
  import './chunk-PMAIXMAB.mjs';
6
6
  import { jsx } from 'react/jsx-runtime';
7
7
 
@@ -1,14 +1,14 @@
1
- import { mountShopBlockIsland, CartClient } from './chunk-NWOUL6JY.mjs';
2
- import './chunk-ZLMS67RR.mjs';
1
+ import { mountShopBlockIsland, CartClient } from './chunk-GMVTOKYG.mjs';
2
+ import './chunk-E2TDNXCL.mjs';
3
3
  import './chunk-II7O4XN3.mjs';
4
4
  import './chunk-I2MMZO53.mjs';
5
5
  import './chunk-RTZ3JKKX.mjs';
6
- import './chunk-2PHQZ666.mjs';
6
+ import './chunk-JEZECJ3W.mjs';
7
7
  import './chunk-3DCJ45Z2.mjs';
8
8
  import './chunk-3PEDD5KJ.mjs';
9
9
  import './chunk-M3L3KYYR.mjs';
10
10
  import './chunk-N7PBWBWQ.mjs';
11
- import { defineIslandPropsDecoder } from './chunk-FU2QRZMX.mjs';
11
+ import { defineIslandPropsDecoder } from './chunk-R56FQ3RR.mjs';
12
12
  import './chunk-PMAIXMAB.mjs';
13
13
 
14
14
  // src/rendering/islands/enhancers/cart.tsx
@@ -1,14 +1,14 @@
1
- import { mountShopBlockIsland, CheckoutClient } from './chunk-NWOUL6JY.mjs';
2
- import './chunk-ZLMS67RR.mjs';
1
+ import { mountShopBlockIsland, CheckoutClient } from './chunk-GMVTOKYG.mjs';
2
+ import './chunk-E2TDNXCL.mjs';
3
3
  import './chunk-II7O4XN3.mjs';
4
4
  import './chunk-I2MMZO53.mjs';
5
5
  import './chunk-RTZ3JKKX.mjs';
6
- import './chunk-2PHQZ666.mjs';
6
+ import './chunk-JEZECJ3W.mjs';
7
7
  import './chunk-3DCJ45Z2.mjs';
8
8
  import './chunk-3PEDD5KJ.mjs';
9
9
  import './chunk-M3L3KYYR.mjs';
10
10
  import './chunk-N7PBWBWQ.mjs';
11
- import { defineIslandPropsDecoder } from './chunk-FU2QRZMX.mjs';
11
+ import { defineIslandPropsDecoder } from './chunk-R56FQ3RR.mjs';
12
12
  import './chunk-PMAIXMAB.mjs';
13
13
 
14
14
  // src/rendering/islands/enhancers/checkout.tsx
@@ -1,4 +1,4 @@
1
- import { EMPTY_COMMERCE_CART_STATE, parseStoredCommerceCartState, reduceCommerceCart, buildPassCartItem } from './chunk-FU2QRZMX.mjs';
1
+ import { EMPTY_COMMERCE_CART_STATE, parseStoredCommerceCartState, reduceCommerceCart, buildPassCartItem } from './chunk-R56FQ3RR.mjs';
2
2
  import * as React from 'react';
3
3
 
4
4
  var EMPTY_STATE = EMPTY_COMMERCE_CART_STATE;
@@ -1,12 +1,12 @@
1
1
  "use client";
2
- import { addPassToCommerceCart, useCommerceCart } from './chunk-ZLMS67RR.mjs';
2
+ import { addPassToCommerceCart, useCommerceCart } from './chunk-E2TDNXCL.mjs';
3
3
  import { CarouselNodeClient } from './chunk-II7O4XN3.mjs';
4
4
  import { isRecord } from './chunk-I2MMZO53.mjs';
5
- import { createBodyThemePortalRoot, consumeSearchParams, scrollToBlock, TerminalPanel, StateIcon, CheckIcon, CrossIcon, ActionRow, consumeSearchParam, buildCheckoutReturnUrls } from './chunk-2PHQZ666.mjs';
5
+ import { createBodyThemePortalRoot, consumeSearchParams, scrollToBlock, TerminalPanel, StateIcon, CheckIcon, CrossIcon, ActionRow, consumeSearchParam, buildCheckoutReturnUrls } from './chunk-JEZECJ3W.mjs';
6
6
  import { ModalShell, resolveDedicatedCheckoutPath } from './chunk-3PEDD5KJ.mjs';
7
7
  import { useBlockApi, FeedbackMessage, BlockApiProvider } from './chunk-M3L3KYYR.mjs';
8
8
  import { mountReactIsland } from './chunk-N7PBWBWQ.mjs';
9
- import { themeButtonClassName, formatCommercePrice, formatInterval, getShopDisplayForItems, buildProductDetailDisplay, productItemKey, buildProductCartItem, buildProductCardDisplay, assertNever } from './chunk-FU2QRZMX.mjs';
9
+ import { themeButtonClassName, formatCommercePrice, formatInterval, getShopDisplayForItems, buildProductDetailDisplay, productItemKey, buildProductCartItem, buildProductCardDisplay, assertNever } from './chunk-R56FQ3RR.mjs';
10
10
  import { getCurrentResolveImageUrlContext, resolveImageUrlWithContext, ImagePresets } from './chunk-PMAIXMAB.mjs';
11
11
  import * as React3 from 'react';
12
12
  import React3__default, { useState, useRef, useCallback, useEffect } from 'react';
@@ -1,6 +1,6 @@
1
1
  "use client";
2
2
  import { useBlockApi, BlockApiError } from './chunk-M3L3KYYR.mjs';
3
- import { themeButtonClassName } from './chunk-FU2QRZMX.mjs';
3
+ import { themeButtonClassName } from './chunk-R56FQ3RR.mjs';
4
4
  import { useState, useSyncExternalStore, useEffect } from 'react';
5
5
  import { jsxs, jsx } from 'react/jsx-runtime';
6
6
 
@@ -1,15 +1,15 @@
1
1
  "use client";
2
2
  import { LeafletStaticMap } from './chunk-F7LHOKEH.mjs';
3
- import { MagicLinkForm, useWaitlistClaim } from './chunk-CY2ZTSE5.mjs';
3
+ import { MagicLinkForm, useWaitlistClaim } from './chunk-JNC7CGHX.mjs';
4
4
  import { CreditCard, Ticket, Star, Sparkles } from './chunk-RTZ3JKKX.mjs';
5
- import { useDiscountCodeUi, usePolling } from './chunk-WJXXNDSE.mjs';
5
+ import { useDiscountCodeUi, usePolling } from './chunk-UFSWADAO.mjs';
6
6
  import { SpinnerNode } from './chunk-TQ5MSPDX.mjs';
7
- import { TabBarFragment, logoutPortal, StepIndicator, TerminalPanel, StateIcon, formatPrice, CrossIcon, ClockIcon, consumeSearchParam, LoggedInAsUser, CheckIcon } from './chunk-2PHQZ666.mjs';
7
+ import { TabBarFragment, logoutPortal, StepIndicator, TerminalPanel, StateIcon, formatPrice, CrossIcon, ClockIcon, consumeSearchParam, LoggedInAsUser, CheckIcon } from './chunk-JEZECJ3W.mjs';
8
8
  import { getFieldValidationControlProps, FieldValidationMessage } from './chunk-3DCJ45Z2.mjs';
9
9
  import { ModalShell } from './chunk-3PEDD5KJ.mjs';
10
10
  import { isSpamProtectionEnabled, AltchaWidget, getChallengeUrl } from './chunk-YLMKMCSJ.mjs';
11
11
  import { useBlockApi, FeedbackMessage } from './chunk-M3L3KYYR.mjs';
12
- import { buildEventCalendarListingRender, getWeekCalendarDays, formatCalendarTitle, groupEventsByDate, getOrderedDayNames, getMonthCalendarDays, formatDateKey, themeButtonClassName, normalizeEventBlockKind, EventCompactRow, EmptyState, getContainerClass, getCardOrientation, addMonths, getThreeMonthRange, isToday, MAX_EVENTS_PER_DAY, formatTime, resolveCoursePricingState, formatEventDateParts, formatCoursePriceAmount, DateTimeTile, normalizeIdList, EventCard, buildTimetableModel, formatDate, isEventContentType, formatCoursePriceDisplay, MONTH_NAMES, formatEventPrice, getEventAvailability, formatEventTeacherLine, assertNever } from './chunk-FU2QRZMX.mjs';
12
+ import { buildEventCalendarListingRender, getWeekCalendarDays, formatCalendarTitle, groupEventsByDate, getOrderedDayNames, getMonthCalendarDays, formatDateKey, themeButtonClassName, normalizeEventBlockKind, EventCompactRow, EmptyState, getContainerClass, getCardOrientation, addMonths, getThreeMonthRange, isToday, MAX_EVENTS_PER_DAY, formatTime, resolveCoursePricingState, formatEventDateParts, formatCoursePriceAmount, DateTimeTile, normalizeIdList, EventCard, buildTimetableModel, formatDate, isEventContentType, formatCoursePriceDisplay, MONTH_NAMES, formatEventPrice, getEventAvailability, formatEventTeacherLine, assertNever } from './chunk-R56FQ3RR.mjs';
13
13
  import { getBookingLocalDateKey, toScheduledBookingDateTime, toBookingTimeZone, formatBookingDateTime, formatBookingDate, formatBookingTime } from './chunk-PMAIXMAB.mjs';
14
14
  import { createContext, useId, useMemo, useState, useRef, useEffect, useCallback, useContext, useReducer } from 'react';
15
15
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
@@ -1151,6 +1151,97 @@ var confidentChip = defineButtonPersonality({
1151
1151
  }
1152
1152
  });
1153
1153
 
1154
+ // ../theme-core/src/buttons/personalities/earth-pill.ts
1155
+ var earthPill = defineButtonPersonality({
1156
+ id: "earth-pill",
1157
+ name: "Earth Pill",
1158
+ description: "Compact terracotta pills with quiet primary-coloured ghost CTAs.",
1159
+ tags: { tone: "classic", energy: "calm", motion: "subtle", era: "organic" },
1160
+ buttonSystem: {
1161
+ global: {
1162
+ cornerStyle: "pill",
1163
+ shadow: "low",
1164
+ textTransform: "none",
1165
+ fontWeight: 500,
1166
+ borderWidth: 1,
1167
+ hoverTransform: "lift",
1168
+ hoverColor: "none",
1169
+ typography: "body",
1170
+ paddingPreset: "default"
1171
+ },
1172
+ sizes: {
1173
+ sm: { padding: "0.5rem 1rem", fontSize: "text-sm" },
1174
+ md: { padding: "0.625rem 1.35rem" },
1175
+ lg: { padding: "0.75rem 1.65rem", fontSize: "text-lg" },
1176
+ xl: { padding: "0.875rem 2rem", fontSize: "text-xl" }
1177
+ },
1178
+ variants: [
1179
+ {
1180
+ id: "primary",
1181
+ name: "Primary",
1182
+ enabled: true,
1183
+ priority: 1,
1184
+ background: { type: "solid", colorToken: "primary" },
1185
+ textColorToken: "primaryForeground",
1186
+ borderRadius: "rounded-full",
1187
+ shadow: { elevation: "low", softness: "soft", position: "bottom" },
1188
+ effects: {
1189
+ hover: [
1190
+ { effectId: "lift", options: { translateY: "-1px" } },
1191
+ { effectId: "background-on-hover", options: { colorToken: "accent" } }
1192
+ ],
1193
+ active: [{ effectId: "scale-down", options: { scale: "0.98" } }]
1194
+ }
1195
+ },
1196
+ {
1197
+ id: "secondary",
1198
+ name: "Secondary",
1199
+ enabled: true,
1200
+ priority: 2,
1201
+ background: { type: "transparent" },
1202
+ textColorToken: "primary",
1203
+ borderRadius: "rounded-full",
1204
+ border: { widthClass: "border", colorToken: "primary" },
1205
+ effects: {
1206
+ hover: [{ effectId: "background-on-hover", options: { colorToken: "muted" } }]
1207
+ }
1208
+ },
1209
+ {
1210
+ id: "outline",
1211
+ name: "Outline",
1212
+ enabled: true,
1213
+ priority: 3,
1214
+ background: { type: "transparent" },
1215
+ textColorToken: "text",
1216
+ borderRadius: "rounded-full",
1217
+ border: { widthClass: "border", colorToken: "border" },
1218
+ effects: {
1219
+ hover: [{ effectId: "background-on-hover", options: { colorToken: "surfaceAlt" } }]
1220
+ }
1221
+ },
1222
+ {
1223
+ id: "ghost",
1224
+ name: "Ghost",
1225
+ enabled: true,
1226
+ priority: 3,
1227
+ background: { type: "transparent" },
1228
+ textColorToken: "primary",
1229
+ borderRadius: "rounded-full",
1230
+ shadow: { elevation: "none", softness: null, position: "bottom" },
1231
+ sizes: {
1232
+ sm: { padding: "0.25rem 0", fontSize: "text-sm" },
1233
+ md: { padding: "0.375rem 0" },
1234
+ lg: { padding: "0.5rem 0", fontSize: "text-lg" },
1235
+ xl: { padding: "0.625rem 0", fontSize: "text-xl" }
1236
+ },
1237
+ effects: {
1238
+ hover: [{ effectId: "opacity-reduce", options: { reduction: 25 } }]
1239
+ }
1240
+ }
1241
+ ]
1242
+ }
1243
+ });
1244
+
1154
1245
  // ../theme-core/src/buttons/personalities/editorial-link.ts
1155
1246
  var editorialLink = defineButtonPersonality({
1156
1247
  id: "editorial-link",
@@ -1609,6 +1700,7 @@ var softPill = defineButtonPersonality({
1609
1700
  // ../theme-core/src/buttons/personalities/index.ts
1610
1701
  var buttonPersonalities = [
1611
1702
  softPill,
1703
+ earthPill,
1612
1704
  confidentChip,
1613
1705
  editorialLink,
1614
1706
  pebble,
@@ -4255,7 +4347,18 @@ function getBookingSuccessMessage(successMessage) {
4255
4347
  return successMessage?.trim() || "Your appointment has been booked! Check your email for confirmation.";
4256
4348
  }
4257
4349
 
4258
- // ../blocks/src/system/runtime/nodes/booking-form.interactive.ts
4350
+ // ../logger/src/noop.ts
4351
+ var noop = () => {
4352
+ };
4353
+ var logger = {
4354
+ debug: noop,
4355
+ info: noop,
4356
+ warn: noop,
4357
+ error: noop,
4358
+ withFields: (_) => logger
4359
+ };
4360
+
4361
+ // ../blocks/src/system/runtime/nodes/booking-runtime-sources.ts
4259
4362
  var bookingFieldOptionSchema = z.object({
4260
4363
  value: z.string(),
4261
4364
  label: z.string()
@@ -4309,6 +4412,8 @@ var bookingSourceFormSchema = z.object({
4309
4412
  createdAt: z.string(),
4310
4413
  updatedAt: z.string()
4311
4414
  });
4415
+
4416
+ // ../blocks/src/system/runtime/nodes/booking-form.interactive.ts
4312
4417
  var blockBookingPaymentTermsAvailabilitySchema = z.union([
4313
4418
  z.object({
4314
4419
  kind: z.literal("available"),
@@ -5601,6 +5706,37 @@ function pickReadableTextColor(background) {
5601
5706
  return "rgb(var(--tb-onAccent, 255 255 255))";
5602
5707
  }
5603
5708
  }
5709
+ function BookingOptionCompactRow({
5710
+ option,
5711
+ buttonVariant = "primary"
5712
+ }) {
5713
+ const primaryMeta = option.primaryMeta?.filter((item) => item.length > 0) ?? [];
5714
+ const secondaryMeta = option.secondaryMeta?.filter((item) => item.label.length > 0) ?? [];
5715
+ const buttonClass = themeButtonClassName({ variant: buttonVariant, size: "sm" });
5716
+ return /* @__PURE__ */ jsxs("div", { className: "event-compact-row", children: [
5717
+ /* @__PURE__ */ jsxs("div", { className: "event-compact-row-content", children: [
5718
+ /* @__PURE__ */ jsxs("div", { className: "event-compact-row-top", children: [
5719
+ /* @__PURE__ */ jsx("span", { className: "event-compact-row-title", children: option.title }),
5720
+ primaryMeta.length > 0 && /* @__PURE__ */ jsx("span", { className: "event-compact-row-datetime", children: primaryMeta.join(" \xB7 ") })
5721
+ ] }),
5722
+ /* @__PURE__ */ jsxs("div", { className: "event-compact-row-bottom", children: [
5723
+ secondaryMeta.map((item) => /* @__PURE__ */ jsxs(
5724
+ "span",
5725
+ {
5726
+ className: item.className,
5727
+ children: [
5728
+ item.icon,
5729
+ item.label
5730
+ ]
5731
+ },
5732
+ item.id ?? `${item.className ?? "meta"}:${item.label}`
5733
+ )),
5734
+ option.priceLabel && /* @__PURE__ */ jsx("span", { className: "event-compact-row-price", children: option.priceLabel })
5735
+ ] })
5736
+ ] }),
5737
+ option.action.kind === "status" ? /* @__PURE__ */ jsx("span", { className: "event-compact-row-status", children: option.action.label }) : /* @__PURE__ */ jsx("a", { href: option.action.href, className: `${buttonClass} event-compact-row-cta`, children: option.action.label })
5738
+ ] });
5739
+ }
5604
5740
  var EventCompactRow = ({
5605
5741
  event,
5606
5742
  buttonVariant = "primary",
@@ -5612,28 +5748,31 @@ var EventCompactRow = ({
5612
5748
  const price = formatEventPrice(event);
5613
5749
  const teacherLine = formatEventTeacherLine(event);
5614
5750
  const cta = resolveEventCta(event, buttonText);
5615
- const buttonClass = themeButtonClassName({ variant: buttonVariant, size: "sm" });
5616
- return /* @__PURE__ */ jsxs("div", { className: "event-compact-row", children: [
5617
- /* @__PURE__ */ jsxs("div", { className: "event-compact-row-content", children: [
5618
- /* @__PURE__ */ jsxs("div", { className: "event-compact-row-top", children: [
5619
- /* @__PURE__ */ jsx("span", { className: "event-compact-row-title", children: event.title }),
5620
- /* @__PURE__ */ jsxs("span", { className: "event-compact-row-datetime", children: [
5621
- formattedDate,
5622
- " \xB7 ",
5623
- formattedTime
5624
- ] })
5625
- ] }),
5626
- /* @__PURE__ */ jsxs("div", { className: "event-compact-row-bottom", children: [
5627
- event.venue && /* @__PURE__ */ jsxs("span", { className: "event-compact-row-venue", children: [
5628
- /* @__PURE__ */ jsx(MapPinIcon, { className: "rb-shrink-0" }),
5629
- event.venue.name
5630
- ] }),
5631
- teacherLine && /* @__PURE__ */ jsx("span", { className: "event-compact-row-teacher", children: teacherLine }),
5632
- /* @__PURE__ */ jsx("span", { className: "event-compact-row-price", children: price })
5633
- ] })
5634
- ] }),
5635
- cta.hidden ? /* @__PURE__ */ jsx("span", { className: "event-compact-row-status", children: cta.label }) : /* @__PURE__ */ jsx("a", { href: cta.href, className: `${buttonClass} event-compact-row-cta`, children: cta.label })
5636
- ] });
5751
+ const option = {
5752
+ id: event.occurrenceId ?? event.id,
5753
+ title: event.title,
5754
+ primaryMeta: [formattedDate, formattedTime],
5755
+ secondaryMeta: [
5756
+ ...event.venue ? [
5757
+ {
5758
+ id: "venue",
5759
+ label: event.venue.name,
5760
+ icon: /* @__PURE__ */ jsx(MapPinIcon, { className: "rb-shrink-0" }),
5761
+ className: "event-compact-row-venue"
5762
+ }
5763
+ ] : [],
5764
+ ...teacherLine ? [
5765
+ {
5766
+ id: "teacher",
5767
+ label: teacherLine,
5768
+ className: "event-compact-row-teacher"
5769
+ }
5770
+ ] : []
5771
+ ],
5772
+ priceLabel: price,
5773
+ action: cta.hidden ? { kind: "status", label: cta.label } : { kind: "action", label: cta.label, href: cta.href }
5774
+ };
5775
+ return /* @__PURE__ */ jsx(BookingOptionCompactRow, { buttonVariant, option });
5637
5776
  };
5638
5777
  var EmptyState = ({
5639
5778
  message = "No upcoming events scheduled.",
@@ -7614,4 +7753,4 @@ function defineIslandPropsDecoder(kind) {
7614
7753
  };
7615
7754
  }
7616
7755
 
7617
- export { BOOKING_FORM_DATA_RESERVED_KEYS, DateTimeTile, EMPTY_COMMERCE_CART_STATE, EmptyState, EventCard, EventCompactRow, MAX_EVENTS_PER_DAY, MONTH_NAMES, addMonths, assertNever, buildCartDisplay, buildEventCalendarListingRender, buildPassCartItem, buildProductCardDisplay, buildProductCartItem, buildProductDetailDisplay, buildTimetableModel, defineIslandPropsDecoder, deriveBookingFormViewState, err, formatBookingSubmissionPreparationError, formatCalendarTitle, formatCommercePrice, formatCoursePriceAmount, formatCoursePriceDisplay, formatDate, formatDateKey, formatEventDateParts, formatEventPrice, formatEventTeacherLine, formatInterval, formatTime, getBookingRedirectStateFromLocation, getBookingSuccessMessage, getCardOrientation, getContainerClass, getEventAvailability, getMonthCalendarDays, getOrderedDayNames, getShopDisplayForItems, getThreeMonthRange, getWeekCalendarDays, groupEventsByDate, isEventContentType, isToday, normalizeEventBlockKind, normalizeIdList, ok, okWith, parseStoredCommerceCartState, prepareBookingSubmission, productItemKey, reduceCommerceCart, resolveAppointmentCheckoutVerificationState, resolveBookingPaymentStep, resolveBookingSiteId, resolveCoursePricingState, resolveDefaultBookingServiceId, themeButtonClassName, toSelectedCollectionOptionKind };
7756
+ export { BOOKING_FORM_DATA_RESERVED_KEYS, DateTimeTile, EMPTY_COMMERCE_CART_STATE, EmptyState, EventCard, EventCompactRow, MAX_EVENTS_PER_DAY, MONTH_NAMES, addMonths, assertNever, buildCartDisplay, buildEventCalendarListingRender, buildPassCartItem, buildProductCardDisplay, buildProductCartItem, buildProductDetailDisplay, buildTimetableModel, defineIslandPropsDecoder, deriveBookingFormViewState, err, formatBookingSubmissionPreparationError, formatCalendarTitle, formatCommercePrice, formatCoursePriceAmount, formatCoursePriceDisplay, formatDate, formatDateKey, formatEventDateParts, formatEventPrice, formatEventTeacherLine, formatInterval, formatTime, getBookingRedirectStateFromLocation, getBookingSuccessMessage, getCardOrientation, getContainerClass, getEventAvailability, getMonthCalendarDays, getOrderedDayNames, getShopDisplayForItems, getThreeMonthRange, getWeekCalendarDays, groupEventsByDate, isEventContentType, isToday, logger, normalizeEventBlockKind, normalizeIdList, ok, okWith, parseStoredCommerceCartState, prepareBookingSubmission, productItemKey, reduceCommerceCart, resolveAppointmentCheckoutVerificationState, resolveBookingPaymentStep, resolveBookingSiteId, resolveCoursePricingState, resolveDefaultBookingServiceId, themeButtonClassName, toSelectedCollectionOptionKind };
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- import { assertNever } from './chunk-FU2QRZMX.mjs';
2
+ import { assertNever } from './chunk-R56FQ3RR.mjs';
3
3
  import { useState, useEffect, useReducer, useRef, useCallback } from 'react';
4
4
 
5
5
  function useDiscountCodeUi(options) {