@riverbankcms/sdk 0.111.0 → 0.119.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 (196) hide show
  1. package/dist/{PreviewEditorSidebar-CTR6LUhN.mjs → PreviewEditorSidebar-C7TXFitV.mjs} +4 -4
  2. package/dist/{PreviewEditorUI-DZg15Zip.mjs → PreviewEditorUI-_1JIHTXS.mjs} +3 -3
  3. package/dist/{PreviewQueryProvider-kkmjklLG.mjs → PreviewQueryProvider-nKUT4TL-.mjs} +1 -1
  4. package/dist/{SdkPreviewModeRuntime-DeOTAFvR.mjs → SdkPreviewModeRuntime-CvJTVgWa.mjs} +2579 -34325
  5. package/dist/{SiteChromeCustomizeContext-DOSDLCiJ.mjs → SiteChromeCustomizeContext-66QfCbAS.mjs} +64625 -32791
  6. package/dist/_dts/ai/src/contracts/proposals.d.ts +5211 -639
  7. package/dist/_dts/ai/src/designer/themePatch.d.ts +1 -1
  8. package/dist/_dts/api/src/bookingAdjustments.d.ts +30 -36
  9. package/dist/_dts/api/src/bookingConfig.d.ts +26 -1
  10. package/dist/_dts/api/src/bookingRecords.d.ts +6 -74
  11. package/dist/_dts/api/src/bookingRefundOutcomes.d.ts +3 -3
  12. package/dist/_dts/api/src/contentRuntime.d.ts +5 -1
  13. package/dist/_dts/api/src/customerMembershipOutcomes.d.ts +4 -4
  14. package/dist/_dts/api/src/endpoints.d.ts +35 -0
  15. package/dist/_dts/api/src/event-presentation.d.ts +4 -0
  16. package/dist/_dts/api/src/index.d.ts +4 -4
  17. package/dist/_dts/api/src/navigation/dashboardBookingsNav.d.ts +4 -1
  18. package/dist/_dts/api/src/navigation/dashboardSettingsNav.d.ts +2 -2
  19. package/dist/_dts/api/src/sdk-event-upsert.d.ts +2 -2
  20. package/dist/_dts/api/src/sdkContracts.d.ts +85 -7
  21. package/dist/_dts/api/src/siteBanner.d.ts +8 -8
  22. package/dist/_dts/api/src/siteOperations.d.ts +1 -1
  23. package/dist/_dts/api/src/sitePlatformEndpoints.d.ts +32 -4
  24. package/dist/_dts/block-form/src/widgets/RichTextField/richTextFieldDefaults.d.ts +3 -12
  25. package/dist/_dts/block-form/src/widgets/RichTextField/richTextFieldSchema.d.ts +1 -5
  26. package/dist/_dts/blocks/src/bindings/index.d.ts +1 -10
  27. package/dist/_dts/blocks/src/index.d.ts +3 -6
  28. package/dist/_dts/blocks/src/primitives/content/primitives.d.ts +2 -2
  29. package/dist/_dts/blocks/src/system/blocks/body-text.d.ts +2 -2
  30. package/dist/_dts/blocks/src/system/blocks/events/recurring-schedule.d.ts +2 -2
  31. package/dist/_dts/blocks/src/system/blocks/events/shared/schemas.d.ts +2 -8
  32. package/dist/_dts/blocks/src/system/blocks/feature-card-icons.d.ts +2 -2
  33. package/dist/_dts/blocks/src/system/blocks/feature-cards.d.ts +3 -3
  34. package/dist/_dts/blocks/src/system/blocks/form.d.ts +2 -15
  35. package/dist/_dts/blocks/src/system/blocks/intro.d.ts +2 -2
  36. package/dist/_dts/blocks/src/system/blocks/media-text.d.ts +66 -66
  37. package/dist/_dts/blocks/src/system/blocks/newsletter-signup.d.ts +2 -16
  38. package/dist/_dts/blocks/src/system/blocks/site-footer.d.ts +0 -3
  39. package/dist/_dts/blocks/src/system/fragments/index.d.ts +0 -1
  40. package/dist/_dts/blocks/src/system/manifest/fieldValidation/index.d.ts +19 -2
  41. package/dist/_dts/blocks/src/system/manifest/richTextSchema.d.ts +8 -70
  42. package/dist/_dts/blocks/src/system/manifest/schema.d.ts +1 -0
  43. package/dist/_dts/blocks/src/system/manifest/validation.d.ts +6 -0
  44. package/dist/_dts/blocks/src/system/node/schema.d.ts +4 -4
  45. package/dist/_dts/blocks/src/system/runtime/nodes/basic.d.ts +1 -10
  46. package/dist/_dts/blocks/src/system/runtime/nodes/buttonAffordance.d.ts +5 -21
  47. package/dist/_dts/blocks/src/system/runtime/nodes/richText-coerce.d.ts +14 -2
  48. package/dist/_dts/blocks/src/system/transforms/typed.d.ts +1 -1
  49. package/dist/_dts/content-editor/src/controller/seedDraftBaselinesFromBlocks.d.ts +1 -1
  50. package/dist/_dts/content-editor/src/hooks/useBlockAutosave.d.ts +17 -1
  51. package/dist/_dts/content-editor/src/hooks/useDebouncedLatestSave.d.ts +1 -1
  52. package/dist/_dts/content-editor/src/hooks/useSimpleAutosave.d.ts +1 -1
  53. package/dist/_dts/content-editor/src/ui/editorSnapshot.d.ts +3 -2
  54. package/dist/_dts/content-editor/src/ui/editorUiStore.d.ts +2 -2
  55. package/dist/_dts/content-editor/src/ui/stores/autosaveStore.d.ts +1 -1
  56. package/dist/_dts/content-editor/src/ui/stores/types.d.ts +1 -1
  57. package/dist/_dts/content-model/src/content-types/builtins.d.ts +3 -15
  58. package/dist/_dts/content-model/src/content-types/entryValidation.d.ts +2 -0
  59. package/dist/_dts/content-model/src/content-types/schema.d.ts +1 -1
  60. package/dist/_dts/content-model/src/templates/defaults.d.ts +1 -21
  61. package/dist/_dts/core/src/editor-state.d.ts +14 -1
  62. package/dist/_dts/core/src/footer-composition.d.ts +2 -1
  63. package/dist/_dts/core/src/index.d.ts +1 -0
  64. package/dist/_dts/core/src/rich-text.d.ts +16 -0
  65. package/dist/_dts/db/src/generated/supabase/database.types.d.ts +189 -86
  66. package/dist/_dts/editor/src/index.d.ts +1 -1
  67. package/dist/_dts/editor/src/primitives/rich-text/utils.d.ts +3 -5
  68. package/dist/_dts/editor-blocks/src/BlockEditor.d.ts +1 -1
  69. package/dist/_dts/editor-blocks/src/block-editor/BlockCard.d.ts +2 -1
  70. package/dist/_dts/editor-blocks/src/block-editor/BlockCardHeader.d.ts +2 -1
  71. package/dist/_dts/editor-blocks/src/block-editor/blockDraftBaselineSeed.d.ts +15 -0
  72. package/dist/_dts/editor-blocks/src/block-editor/hooks/useBlockBaselineSync.d.ts +3 -7
  73. package/dist/_dts/editor-blocks/src/block-editor/hooks/useBlockDuplication.d.ts +12 -0
  74. package/dist/_dts/editor-blocks/src/block-editor/types.d.ts +1 -0
  75. package/dist/_dts/editor-blocks/src/block-editor/utils.d.ts +1 -1
  76. package/dist/_dts/editor-blocks/src/index.d.ts +6 -5
  77. package/dist/_dts/editor-blocks/src/widgets/rich-text/RichTextField.d.ts +2 -2
  78. package/dist/_dts/media-core/src/contentMediaAudit.d.ts +104 -0
  79. package/dist/_dts/media-core/src/contentMediaAuditFieldAdapter.d.ts +8 -0
  80. package/dist/_dts/media-core/src/contentMediaSnapshotAudit.d.ts +22 -0
  81. package/dist/_dts/media-core/src/index.d.ts +3 -1
  82. package/dist/_dts/sdk/src/cli/commands/event.d.ts +18 -1
  83. package/dist/_dts/sdk/src/cli/commands/push/execute/theme.d.ts +2 -16
  84. package/dist/_dts/sdk/src/cli/content/reader.d.ts +8 -5
  85. package/dist/_dts/sdk/src/client/management/events.d.ts +2 -1
  86. package/dist/_dts/sdk/src/client/management/index.d.ts +1 -1
  87. package/dist/_dts/sdk/src/client/management/types.d.ts +36 -9
  88. package/dist/_dts/sdk/src/config/typed-entries.d.ts +7 -7
  89. package/dist/_dts/sdk/src/config/validation.d.ts +7 -7
  90. package/dist/_dts/sdk/src/contracts/content.d.ts +5 -15
  91. package/dist/_dts/sdk/src/contracts/index.d.ts +1 -1
  92. package/dist/_dts/sdk/src/contracts/system-block-content.d.ts +12 -25
  93. package/dist/_dts/sdk/src/contracts/theme.d.ts +2 -18
  94. package/dist/_dts/sdk/src/manifest/passes/pass1-fields.d.ts +1 -1
  95. package/dist/_dts/sdk/src/manifest/three-pass-converter.d.ts +4 -4
  96. package/dist/_dts/sdk/src/rendering/helpers/bindings.d.ts +1 -2
  97. package/dist/_dts/sdk/src/rendering/helpers/index.d.ts +1 -1
  98. package/dist/_dts/sdk/src/rendering/islands/types.d.ts +2 -13
  99. package/dist/_dts/sdk/src/theme/index.d.ts +0 -29
  100. package/dist/_dts/sdk/src/version.d.ts +1 -1
  101. package/dist/_dts/site-commands/src/commands.d.ts +31 -18
  102. package/dist/_dts/theme-core/src/buttons/affordanceIcons.d.ts +2 -2
  103. package/dist/_dts/theme-core/src/buttons/core.d.ts +0 -1
  104. package/dist/_dts/theme-core/src/buttons/effectClassification.d.ts +22 -9
  105. package/dist/_dts/theme-core/src/buttons/effects/presets/background.d.ts +1 -2
  106. package/dist/_dts/theme-core/src/buttons/effects/presets/border.d.ts +1 -2
  107. package/dist/_dts/theme-core/src/buttons/effects/presets/overlay.d.ts +3 -1
  108. package/dist/_dts/theme-core/src/buttons/effects/presets/shadow.d.ts +2 -2
  109. package/dist/_dts/theme-core/src/buttons/effects/types.d.ts +8 -18
  110. package/dist/_dts/theme-core/src/buttons/generateButtonCss.d.ts +2 -2
  111. package/dist/_dts/theme-core/src/buttons/generateDefaultButtonSystem.d.ts +5 -5
  112. package/dist/_dts/theme-core/src/buttons/index.d.ts +1 -4
  113. package/dist/_dts/theme-core/src/buttons/parseThemeForPersistence.d.ts +36 -0
  114. package/dist/_dts/theme-core/src/buttons/types.d.ts +1638 -93
  115. package/dist/_dts/theme-core/src/cards/types.d.ts +13 -13
  116. package/dist/_dts/theme-core/src/mock-themes/all.d.ts +969 -69
  117. package/dist/_dts/theme-core/src/navigation/types.d.ts +2 -2
  118. package/dist/_dts/theme-core/src/recommend/generateThemes.d.ts +0 -1
  119. package/dist/_dts/theme-core/src/schema.d.ts +1100 -116
  120. package/dist/_dts/theme-core/src/site-styles/backgroundAppearance.d.ts +2 -2
  121. package/dist/_dts/theme-core/src/site-styles/designState.d.ts +14 -14
  122. package/dist/_dts/theme-core/src/site-styles/generatedSchemas.d.ts +2 -2
  123. package/dist/_dts/theme-core/src/site-styles/pageDesignIntent.d.ts +4 -4
  124. package/dist/_dts/theme-core/src/site-styles/previewCompiler.d.ts +6 -0
  125. package/dist/cli/index.mjs +5706 -4852
  126. package/dist/cli/init-docs/content/cli-reference.md +40 -1
  127. package/dist/cli/init-docs/content/content-management.md +6 -0
  128. package/dist/client/{DiscountCodeDisclosure-C4xvTBux.mjs → DiscountCodeDisclosure-DIWj-P9v.mjs} +1 -1
  129. package/dist/client/{EventCombined.client-Cr7G131j.mjs → EventCombined.client-De8YWBSr.mjs} +2 -2
  130. package/dist/client/{EventListing.client-CAjbseNy.mjs → EventListing.client-seHTjimY.mjs} +2 -2
  131. package/dist/client/{LeafletStaticMap-BMlWfwz3.mjs → LeafletStaticMap-BmQxFcJW.mjs} +1 -1
  132. package/dist/client/{MagicLinkForm-ChdFz96y.mjs → MagicLinkForm-OoJAIUIj.mjs} +1 -1
  133. package/dist/client/{StepIndicator-7D3GaBeM.mjs → StepIndicator-CiZ8kdPk.mjs} +2 -2
  134. package/dist/client/{accordion-D8JTs2Si.mjs → accordion-6lnN__XJ.mjs} +1 -1
  135. package/dist/client/{bookingForm-H3DCRBHs.mjs → bookingForm-5uyqhONU.mjs} +6 -6
  136. package/dist/client/bookings.mjs +2219 -527
  137. package/dist/client/{carousel-DMr_QWlz.mjs → carousel-Dtnifil_.mjs} +1 -1
  138. package/dist/client/{cart-DWMbfBdR.mjs → cart-5Tc5S7NV.mjs} +3 -3
  139. package/dist/client/{checkout-zmfdkXLx.mjs → checkout-CYKKN5Hr.mjs} +3 -3
  140. package/dist/client/client.mjs +2498 -2384
  141. package/dist/client/{colorTokenParts-FSS3al6l.mjs → colorStyles-BWpj_h4C.mjs} +88 -1
  142. package/dist/client/{courseRegistration-Z_mn18jy.mjs → courseRegistration-CxCBybB4.mjs} +6 -6
  143. package/dist/client/{eventCalendar-CYp0YJGF.mjs → eventCalendar-Xj2jZS9X.mjs} +4 -4
  144. package/dist/client/{eventCombined-rKyYZUa9.mjs → eventCombined-CgcMoOgM.mjs} +2 -2
  145. package/dist/client/{eventDetails-X0ZaUuMj.mjs → eventDetails-CEAH8Edc.mjs} +3 -3
  146. package/dist/client/{eventListing-W1SuL7EP.mjs → eventListing-qyPVQ0wP.mjs} +2 -2
  147. package/dist/client/{eventRegistration-ClWricui.mjs → eventRegistration-DDu79CtL.mjs} +6 -6
  148. package/dist/client/{form--eKPwAAD.mjs → form-Bc7JKI7I.mjs} +1 -1
  149. package/dist/client/{headerSection-BSeGr-FS.mjs → headerSection-vTku_LEl.mjs} +2 -2
  150. package/dist/client/hooks.mjs +373 -555
  151. package/dist/client/{locationMap-BpOrtNYn.mjs → locationMap-Bg7X4Jna.mjs} +3 -3
  152. package/dist/client/{media-DoF0dcVx.mjs → media-CNE1Z-wb.mjs} +1 -2
  153. package/dist/client/{newsletterForm-Bt7it7Dy.mjs → newsletterForm-lpylVdp5.mjs} +1 -1
  154. package/dist/client/{pricing-BTjSDDr4.mjs → pricing-DE8fjJiT.mjs} +1 -1
  155. package/dist/client/{productDetail-ICnVTcCg.mjs → productDetail-D7Bo2RMH.mjs} +3 -3
  156. package/dist/client/{productList-ZHr6D604.mjs → productList-VjnZqiqN.mjs} +3 -3
  157. package/dist/client/{propsDecoder-wWN0tBDF.mjs → propsDecoder-DreFXjNP.mjs} +2212 -621
  158. package/dist/client/rendering/client.mjs +21612 -21646
  159. package/dist/client/rendering/islands.mjs +20 -20
  160. package/dist/client/rendering.mjs +1571 -1547
  161. package/dist/client/{shop-C1u_BUn0.mjs → shop-IRsHHbf7.mjs} +5 -5
  162. package/dist/client/{shop-commerce-CleZdRha.mjs → shop-commerce-gnI8PieZ.mjs} +27 -10
  163. package/dist/client/{shop-commerce-store-ycnoB2Ce.mjs → shop-commerce-store-BTbrhObn.mjs} +1 -1
  164. package/dist/client/{shopShared-CPhByt2a.mjs → shopShared-D6KS2_qk.mjs} +3 -3
  165. package/dist/client/{useDiscountCodeUi-cStSQI6C.mjs → useDiscountCodeUi-DCccGCxV.mjs} +1 -1
  166. package/dist/client/{useEventFilters-DKPN7hSY.mjs → useEventFilters-eGs3rPZQ.mjs} +3 -104
  167. package/dist/client/{usePolling-BKAd6pkZ.mjs → usePolling-CvSU2sur.mjs} +2 -2
  168. package/dist/preview-next/before-render.mjs +57 -0
  169. package/dist/preview-next/client/runtime.mjs +4 -4
  170. package/dist/preview-next/middleware.mjs +57 -0
  171. package/dist/{previewAuthStore-BkT1D06A.mjs → previewAuthStore-DN7vcRsv.mjs} +57 -0
  172. package/dist/{sdk-runtime-hu3wr3ng.mjs → sdk-runtime-DaOiA7ct.mjs} +2 -2
  173. package/dist/{separator-Bln8izQ9.mjs → separator-CqRhcCxD.mjs} +1 -1
  174. package/dist/server/components.mjs +4092 -4108
  175. package/dist/server/config-template-validation.mjs +4 -23
  176. package/dist/server/config-validation.mjs +373 -555
  177. package/dist/server/config.mjs +410 -558
  178. package/dist/server/data.mjs +373 -555
  179. package/dist/server/index.mjs +58 -1
  180. package/dist/server/next.mjs +32958 -32926
  181. package/dist/server/page-converter.mjs +369 -526
  182. package/dist/server/prebuild.mjs +1 -1
  183. package/dist/server/rendering/server.mjs +5371 -3174
  184. package/dist/server/rendering.mjs +4099 -4124
  185. package/dist/server/routing.mjs +758 -966
  186. package/dist/server/server.mjs +448 -632
  187. package/dist/server/theme-bridge.mjs +472 -525
  188. package/dist/server/theme.mjs +1074 -392
  189. package/package.json +1 -1
  190. package/dist/_dts/blocks/src/primitives/content/components/Button.d.ts +0 -40
  191. package/dist/_dts/blocks/src/system/fragments/library/footerBottomText.d.ts +0 -19
  192. package/dist/_dts/media-core/src/legacyMediaValue.d.ts +0 -11
  193. package/dist/_dts/theme-core/src/styles/buttons.d.ts +0 -27
  194. package/dist/_dts/theme-core/src/styles/buttonsLibrary.d.ts +0 -2
  195. package/dist/_dts/theme-core/src/styles/glow.d.ts +0 -3
  196. package/dist/client/colorStyles-gcTh5yZT.mjs +0 -89
@@ -189,7 +189,7 @@ var init_block_kinds = __esmMin((() => {
189
189
  }));
190
190
  //#endregion
191
191
  //#region src/types/index.ts
192
- var init_types$17 = __esmMin((() => {
192
+ var init_types$16 = __esmMin((() => {
193
193
  init_block_kinds();
194
194
  }));
195
195
  //#endregion
@@ -535,7 +535,7 @@ function mergeLoaderResults(configResults, codeResults) {
535
535
  }
536
536
  var systemBlockKindSet;
537
537
  var init_executeCodeLoaders = __esmMin((() => {
538
- init_types$17();
538
+ init_types$16();
539
539
  init_dataLoaderContext();
540
540
  init_dataLoaderValue();
541
541
  init_defineOwnDataProperty();
@@ -1035,6 +1035,9 @@ var init_public_url_validation = __esmMin((() => {}));
1035
1035
  //#endregion
1036
1036
  //#region ../core/src/public-profile.ts
1037
1037
  var init_public_profile = __esmMin((() => {}));
1038
+ //#endregion
1039
+ //#region ../core/src/rich-text.ts
1040
+ var init_rich_text = __esmMin((() => {}));
1038
1041
  var init_footer_composition = __esmMin((() => {
1039
1042
  new Map([
1040
1043
  "brand",
@@ -1127,6 +1130,7 @@ var init_src$4 = __esmMin((() => {
1127
1130
  init_participant_identity();
1128
1131
  init_public_url_validation();
1129
1132
  init_public_profile();
1133
+ init_rich_text();
1130
1134
  init_footer_composition();
1131
1135
  init_number_input();
1132
1136
  init_field_errors();
@@ -1241,8 +1245,7 @@ var init_contracts$1 = __esmMin((() => {
1241
1245
  }));
1242
1246
  //#endregion
1243
1247
  //#region ../blocks/src/subroutes/index.ts
1244
- var init_subroutes = __esmMin((() => {}));
1245
- var init_Button = __esmMin((() => {})), BlockKind, blockSchema, pagePath;
1248
+ var init_subroutes = __esmMin((() => {})), BlockKind, blockSchema, pagePath;
1246
1249
  var init_schema$3 = __esmMin((() => {
1247
1250
  BlockKind = z$2.string();
1248
1251
  blockSchema = z$2.object({
@@ -1482,7 +1485,7 @@ var init_all = __esmMin((() => {
1482
1485
  }));
1483
1486
  //#endregion
1484
1487
  //#region ../theme-core/src/palette/types.ts
1485
- var init_types$16 = __esmMin((() => {}));
1488
+ var init_types$15 = __esmMin((() => {}));
1486
1489
  //#endregion
1487
1490
  //#region ../../node_modules/.pnpm/@vibrant+image@4.0.4/node_modules/@vibrant/image/dist/esm/histogram.js
1488
1491
  var Histogram;
@@ -2929,7 +2932,7 @@ function defineCuratedPalette(input) {
2929
2932
  };
2930
2933
  }
2931
2934
  var curatedPaletteAuthoringKeySchema;
2932
- var init_types$15 = __esmMin((() => {
2935
+ var init_types$14 = __esmMin((() => {
2933
2936
  init_styleTags();
2934
2937
  init_themeColorTokens();
2935
2938
  init_colors();
@@ -2970,7 +2973,7 @@ var init_types$15 = __esmMin((() => {
2970
2973
  //#region ../theme-core/src/palette/curated/brand-led.ts
2971
2974
  var brandLedCool, brandLedWarm, brandLedJewel, brandLedSpruce, brandLedBurgundyGold;
2972
2975
  var init_brand_led = __esmMin((() => {
2973
- init_types$15();
2976
+ init_types$14();
2974
2977
  brandLedCool = defineCuratedPalette({
2975
2978
  authoringKey: "brand-led-cool",
2976
2979
  name: "Brand-led — Cool",
@@ -3301,7 +3304,7 @@ var init_brand_led = __esmMin((() => {
3301
3304
  //#region ../theme-core/src/palette/curated/high-contrast.ts
3302
3305
  var highContrastInk, highContrastCharcoal, highContrastMonochrome;
3303
3306
  var init_high_contrast = __esmMin((() => {
3304
- init_types$15();
3307
+ init_types$14();
3305
3308
  highContrastInk = defineCuratedPalette({
3306
3309
  authoringKey: "high-contrast-ink",
3307
3310
  name: "High Contrast — Ink",
@@ -3502,7 +3505,7 @@ var init_high_contrast = __esmMin((() => {
3502
3505
  //#region ../theme-core/src/palette/curated/soft-natural.ts
3503
3506
  var softNaturalSage, softNaturalStone, softNaturalWatercolor, softNaturalLilac;
3504
3507
  var init_soft_natural = __esmMin((() => {
3505
- init_types$15();
3508
+ init_types$14();
3506
3509
  softNaturalSage = defineCuratedPalette({
3507
3510
  authoringKey: "soft-natural-sage",
3508
3511
  name: "Soft Natural — Sage",
@@ -3768,7 +3771,7 @@ var init_soft_natural = __esmMin((() => {
3768
3771
  //#region ../theme-core/src/palette/curated/warm-neutral.ts
3769
3772
  var warmNeutralClay, warmNeutralCream, warmNeutralSoftEarth, warmNeutralForest;
3770
3773
  var init_warm_neutral = __esmMin((() => {
3771
- init_types$15();
3774
+ init_types$14();
3772
3775
  warmNeutralClay = defineCuratedPalette({
3773
3776
  authoringKey: "warm-neutral-clay",
3774
3777
  name: "Warm Neutral — Clay",
@@ -4034,7 +4037,7 @@ var init_warm_neutral = __esmMin((() => {
4034
4037
  //#region ../theme-core/src/palette/curated/warm-dark.ts
4035
4038
  var warmDarkEmber, warmDarkKirtanGold;
4036
4039
  var init_warm_dark = __esmMin((() => {
4037
- init_types$15();
4040
+ init_types$14();
4038
4041
  warmDarkEmber = defineCuratedPalette({
4039
4042
  authoringKey: "warm-dark-ember",
4040
4043
  name: "Warm Dark — Ember",
@@ -4200,7 +4203,7 @@ var init_curated = __esmMin((() => {
4200
4203
  init_soft_natural();
4201
4204
  init_warm_neutral();
4202
4205
  init_warm_dark();
4203
- init_types$15();
4206
+ init_types$14();
4204
4207
  curatedPalettes = [
4205
4208
  admitCuratedPaletteDefinition(brandLedCool),
4206
4209
  admitCuratedPaletteDefinition(brandLedWarm),
@@ -4340,7 +4343,7 @@ var init_palette = __esmMin((() => {
4340
4343
  init_generateCssVars();
4341
4344
  init_generateShades();
4342
4345
  init_neutralScale();
4343
- init_types$16();
4346
+ init_types$15();
4344
4347
  init_utils$4();
4345
4348
  init_paletteAccess();
4346
4349
  init_extractPalette();
@@ -4363,194 +4366,8 @@ var init_gradients$1 = __esmMin((() => {}));
4363
4366
  //#region ../theme-core/src/styles/gradientsLibrary.ts
4364
4367
  var init_gradientsLibrary = __esmMin((() => {}));
4365
4368
  //#endregion
4366
- //#region ../theme-core/src/styles/glow.ts
4367
- var init_glow = __esmMin((() => {
4368
- init_palette();
4369
- }));
4370
- //#endregion
4371
- //#region ../theme-core/src/surfaces/foregroundRoles.ts
4372
- var init_foregroundRoles = __esmMin((() => {}));
4373
- //#endregion
4374
- //#region ../theme-core/src/surfaces/foregroundContract.ts
4375
- function requireSurfaceColorValue(role, value) {
4376
- const normalized = value.trim();
4377
- if (normalized.length === 0) throw new RangeError(`Surface foreground ${role} must be a non-empty CSS color.`);
4378
- return normalized;
4379
- }
4380
- function completeSurfaceForegrounds(input) {
4381
- const text = requireSurfaceColorValue("text", input.text);
4382
- return {
4383
- text,
4384
- heading: input.heading === void 0 ? text : requireSurfaceColorValue("heading", input.heading),
4385
- link: input.link === void 0 ? text : requireSurfaceColorValue("link", input.link),
4386
- supporting: input.supporting === void 0 ? text : requireSurfaceColorValue("supporting", input.supporting)
4387
- };
4388
- }
4389
- function surfaceForegroundValue(role, outsideProviderFallback = DEFAULT_ROLE_FALLBACKS[role]) {
4390
- const roleVariable = SURFACE_FOREGROUND_CSS_VARS[role];
4391
- const fallback = requireSurfaceColorValue("fallback", outsideProviderFallback);
4392
- if (role === "text") return `var(${roleVariable}, ${fallback})`;
4393
- return `var(${roleVariable}, var(${SURFACE_FOREGROUND_CSS_VARS.text}, ${fallback}))`;
4394
- }
4395
- function surfaceForegroundValueWithOpacity(role, opacityPercent) {
4396
- if (!Number.isFinite(opacityPercent) || opacityPercent < 0 || opacityPercent > 100) throw new RangeError("Surface foreground opacity must be between 0 and 100.");
4397
- return `color-mix(in srgb, ${surfaceForegroundValue(role)} ${opacityPercent}%, transparent)`;
4398
- }
4399
- function surfaceForegroundStyle(input) {
4400
- const foregrounds = completeSurfaceForegrounds(input);
4401
- return {
4402
- color: foregrounds.text,
4403
- [SURFACE_FOREGROUND_CSS_VARS.text]: foregrounds.text,
4404
- [SURFACE_FOREGROUND_CSS_VARS.heading]: foregrounds.heading,
4405
- [SURFACE_FOREGROUND_CSS_VARS.link]: foregrounds.link,
4406
- [SURFACE_FOREGROUND_CSS_VARS.supporting]: foregrounds.supporting
4407
- };
4408
- }
4409
- var SURFACE_FOREGROUND_CSS_VARS, DEFAULT_SURFACE_TEXT_COLOR, DEFAULT_SURFACE_LINK_COLOR, DEFAULT_SURFACE_SUPPORTING_COLOR, DEFAULT_ROLE_FALLBACKS;
4410
- var init_foregroundContract = __esmMin((() => {
4411
- SURFACE_FOREGROUND_CSS_VARS = {
4412
- text: "--rb-surface-text-color",
4413
- heading: "--rb-surface-heading-color",
4414
- link: "--rb-surface-link-color",
4415
- supporting: "--rb-surface-supporting-color"
4416
- };
4417
- DEFAULT_SURFACE_TEXT_COLOR = "rgb(var(--tb-text, 17 24 39))";
4418
- DEFAULT_SURFACE_LINK_COLOR = "rgb(var(--tb-primary, var(--tb-text, 17 24 39)))";
4419
- DEFAULT_SURFACE_SUPPORTING_COLOR = "rgb(var(--tb-mutedText, 100 116 139))";
4420
- DEFAULT_ROLE_FALLBACKS = {
4421
- text: DEFAULT_SURFACE_TEXT_COLOR,
4422
- heading: DEFAULT_SURFACE_TEXT_COLOR,
4423
- link: DEFAULT_SURFACE_LINK_COLOR,
4424
- supporting: DEFAULT_SURFACE_SUPPORTING_COLOR
4425
- };
4426
- }));
4427
- //#endregion
4428
- //#region ../theme-core/src/surfaces/index.ts
4429
- var init_surfaces = __esmMin((() => {
4430
- init_foregroundContract();
4431
- init_foregroundRoles();
4432
- }));
4433
- //#endregion
4434
- //#region ../theme-core/src/utils/colorStyles.ts
4435
- function parseToken(source) {
4436
- const parts = parseColorTokenParts(source);
4437
- if (parts.kind === "raw") return {
4438
- token: source,
4439
- raw: parts.value
4440
- };
4441
- if (parts.kind === "invalid") return { token: source };
4442
- return {
4443
- token: parts.token,
4444
- opacityPercent: parts.opacityPercent === null ? void 0 : parts.opacityPercent
4445
- };
4446
- }
4447
- function surfaceRoleForTextToken(token) {
4448
- return Object.prototype.hasOwnProperty.call(SURFACE_TEXT_ROLE_BY_TOKEN, token) ? SURFACE_TEXT_ROLE_BY_TOKEN[token] : null;
4449
- }
4450
- /**
4451
- * Converts a theme color token to a CSS rgb value.
4452
- * This is the primary function for applying theme colors to CSS properties.
4453
- *
4454
- * @param token - Theme color token (semantic, with opacity, or raw)
4455
- * @returns CSS color value (rgb with optional alpha, or raw CSS value)
4456
- *
4457
- * @example
4458
- * rgbColorValue('primary') // => 'rgb(var(--tb-primary))'
4459
- * rgbColorValue('surface/95') // => 'rgb(var(--tb-surface) / 0.95)'
4460
- * rgbColorValue('raw:transparent') // => 'transparent'
4461
- */
4462
- function rgbColorValue(token) {
4463
- const { token: baseToken, opacityPercent, raw } = parseToken(token);
4464
- if (raw) return raw;
4465
- const cssVar = `${COLOR_VAR_PREFIX}${baseToken}`;
4466
- if (opacityPercent === void 0) return `rgb(var(${cssVar}))`;
4467
- return `rgb(var(${cssVar}) / ${opacityPercent / 100})`;
4468
- }
4469
- /**
4470
- * Creates a backgroundColor style object from a theme token.
4471
- *
4472
- * @param token - Theme color token
4473
- * @returns CSSProperties with backgroundColor
4474
- */
4475
- function backgroundColorStyle(token) {
4476
- return { backgroundColor: rgbColorValue(token) };
4477
- }
4478
- /**
4479
- * Creates a text color style object from a theme token.
4480
- *
4481
- * @param token - Theme color token
4482
- * @returns CSSProperties with color
4483
- */
4484
- function textColorStyle$1(token) {
4485
- const parsed = parseToken(token);
4486
- const surfaceRole = parsed.raw ? null : surfaceRoleForTextToken(parsed.token);
4487
- if (surfaceRole) return { color: parsed.opacityPercent === void 0 ? surfaceForegroundValue(surfaceRole) : surfaceForegroundValueWithOpacity(surfaceRole, parsed.opacityPercent) };
4488
- return { color: rgbColorValue(token) };
4489
- }
4490
- /**
4491
- * Creates a border color style object from a theme token.
4492
- *
4493
- * @param token - Theme color token
4494
- * @returns CSSProperties with borderColor
4495
- */
4496
- function borderColorStyle(token) {
4497
- return { borderColor: rgbColorValue(token) };
4498
- }
4499
- /**
4500
- * Merges multiple CSSProperties objects into a single object.
4501
- * Later styles override earlier ones. Undefined values are filtered out.
4502
- * Returns undefined if the merged result is empty.
4503
- *
4504
- * @param styles - Variable number of CSSProperties objects (can be undefined)
4505
- * @returns Merged CSSProperties object, or undefined if empty
4506
- *
4507
- * @example
4508
- * mergeStyles(
4509
- * backgroundColorStyle('surface'),
4510
- * textColorStyle('text'),
4511
- * borderColorStyle('border')
4512
- * )
4513
- * // => { backgroundColor: '...', color: '...', borderColor: '...' }
4514
- */
4515
- function mergeStyles(...styles) {
4516
- const merged = {};
4517
- for (const style of styles) {
4518
- if (!style) continue;
4519
- Object.assign(merged, style);
4520
- }
4521
- return Object.keys(merged).length ? merged : void 0;
4522
- }
4523
- var COLOR_VAR_PREFIX, SURFACE_TEXT_ROLE_BY_TOKEN;
4524
- var init_colorStyles = __esmMin((() => {
4525
- init_surfaces();
4526
- init_colorTokenParts();
4527
- COLOR_VAR_PREFIX = "--tb-";
4528
- SURFACE_TEXT_ROLE_BY_TOKEN = {
4529
- text: "text",
4530
- heading: "heading",
4531
- mutedText: "supporting"
4532
- };
4533
- }));
4534
- //#endregion
4535
- //#region ../theme-core/src/styles/shadow.ts
4536
- var init_shadow = __esmMin((() => {
4537
- init_colorStyles();
4538
- }));
4539
- //#endregion
4540
- //#region ../theme-core/src/styles/buttons.ts
4541
- var init_buttons$1 = __esmMin((() => {
4542
- init_glow();
4543
- init_shadow();
4544
- init_colorStyles();
4545
- }));
4546
- //#endregion
4547
- //#region ../theme-core/src/styles/buttonsLibrary.ts
4548
- var init_buttonsLibrary = __esmMin((() => {}));
4549
- //#endregion
4550
4369
  //#region ../theme-core/src/recommend/generateThemes.ts
4551
- var init_generateThemes = __esmMin((() => {
4552
- init_buttons$1();
4553
- }));
4370
+ var init_generateThemes = __esmMin((() => {}));
4554
4371
  //#endregion
4555
4372
  //#region ../theme-core/src/lib/media.ts
4556
4373
  var hotspotSchema$1, rotationSchema$1, rectSchema$1, aspectCropSchema$1, transformSchema$1, mediaSchema$1;
@@ -4612,108 +4429,6 @@ var init_media$3 = __esmMin((() => {
4612
4429
  });
4613
4430
  }));
4614
4431
  //#endregion
4615
- //#region ../theme-core/src/buttons/effectClassification.ts
4616
- function getButtonEffectPolicy(effectId) {
4617
- return Object.prototype.hasOwnProperty.call(BUTTON_EFFECT_POLICIES, effectId) ? BUTTON_EFFECT_POLICIES[effectId] : null;
4618
- }
4619
- function classifyButtonEffectId(effectId) {
4620
- return getButtonEffectPolicy(effectId)?.classification ?? "unknown";
4621
- }
4622
- var BUTTON_EFFECT_POLICIES;
4623
- var init_effectClassification = __esmMin((() => {
4624
- BUTTON_EFFECT_POLICIES = {
4625
- "darken-background": {
4626
- classification: "colour-transition",
4627
- transition: {
4628
- kind: "adjust-shade",
4629
- direction: "darker"
4630
- }
4631
- },
4632
- "lighten-background": {
4633
- classification: "colour-transition",
4634
- transition: {
4635
- kind: "adjust-shade",
4636
- direction: "lighter"
4637
- }
4638
- },
4639
- "background-on-hover": {
4640
- classification: "colour-transition",
4641
- transition: { kind: "replace-background" }
4642
- },
4643
- "background-on-hover-alpha": {
4644
- classification: "unsupported-colour",
4645
- reason: "alpha_requires_surface"
4646
- },
4647
- "fade-background": {
4648
- classification: "unsupported-colour",
4649
- reason: "changes_element_opacity"
4650
- },
4651
- "opacity-reduce": {
4652
- classification: "unsupported-colour",
4653
- reason: "changes_element_opacity"
4654
- },
4655
- "gradient-text": {
4656
- classification: "unsupported-colour",
4657
- reason: "changes_foreground"
4658
- },
4659
- "text-color-change": {
4660
- classification: "unsupported-colour",
4661
- reason: "changes_foreground"
4662
- },
4663
- "border-color-change": {
4664
- classification: "unsupported-colour",
4665
- reason: "changes_border"
4666
- },
4667
- "aurora-glow": {
4668
- classification: "unsupported-background-overlay",
4669
- reason: "unresolved_background_overlay"
4670
- },
4671
- "cosmic-stardust": {
4672
- classification: "unsupported-background-overlay",
4673
- reason: "unresolved_background_overlay"
4674
- },
4675
- "gradient-border-fill": {
4676
- classification: "unsupported-background-overlay",
4677
- reason: "unresolved_background_overlay"
4678
- },
4679
- "animated-gradient-border-fill": {
4680
- classification: "unsupported-background-overlay",
4681
- reason: "unresolved_background_overlay"
4682
- },
4683
- "nav-underline": {
4684
- classification: "not-button",
4685
- reason: "not_button_effect"
4686
- },
4687
- "nav-frosted-base": {
4688
- classification: "not-button",
4689
- reason: "not_button_effect"
4690
- },
4691
- "nav-frosted-hover": {
4692
- classification: "not-button",
4693
- reason: "not_button_effect"
4694
- },
4695
- "nav-frosted-active": {
4696
- classification: "not-button",
4697
- reason: "not_button_effect"
4698
- },
4699
- "animated-gradient": { classification: "non-colour" },
4700
- "border-glow": { classification: "non-colour" },
4701
- "drop-shadow": { classification: "non-colour" },
4702
- "inner-shadow": { classification: "non-colour" },
4703
- "neumorphic-shadow": { classification: "non-colour" },
4704
- "outer-glow": { classification: "non-colour" },
4705
- "retro-3d-shadow": { classification: "non-colour" },
4706
- "scale-up": { classification: "non-colour" },
4707
- "scale-down": { classification: "non-colour" },
4708
- lift: { classification: "non-colour" },
4709
- "press-down": { classification: "non-colour" },
4710
- pop: { classification: "non-colour" },
4711
- "border-bottom-grow": { classification: "non-colour" },
4712
- "sketchy-border": { classification: "non-colour" },
4713
- "pulse-animation": { classification: "non-colour" }
4714
- };
4715
- }));
4716
- //#endregion
4717
4432
  //#region ../theme-core/src/buttons/types.ts
4718
4433
  function parseOpaqueButtonColourToken(value) {
4719
4434
  const token = parseThemeColorToken(value);
@@ -4724,144 +4439,8 @@ function parseOpaqueButtonColourToken(value) {
4724
4439
  function unsafeAsOpaqueButtonColourToken(value) {
4725
4440
  return value;
4726
4441
  }
4727
- function normalizeLegacyButtonVariantInput(input) {
4728
- if (!isUnknownRecord(input)) return input;
4729
- const background = input.background;
4730
- if (!isUnknownRecord(background)) return input;
4731
- if (!(background.type === "transparent" || Object.prototype.hasOwnProperty.call(input, "textColorToken") || isUnknownRecord(input.border) && Object.prototype.hasOwnProperty.call(input.border, "colorToken") || hasLegacyButtonEffects(input.effects) || hasLegacyAlphaToken(input, background))) return input;
4732
- const { textColorToken, ...withoutLegacyText } = input;
4733
- const normalizedBorder = isUnknownRecord(input.border) && typeof input.border.widthClass === "string" ? { widthClass: input.border.widthClass } : input.border;
4734
- const normalizedAffordance = isUnknownRecord(input.affordance) && typeof input.affordance.iconId === "string" ? { iconId: input.affordance.iconId } : input.affordance;
4735
- const normalizedEffects = normalizeLegacyButtonEffects(input.effects, background.type);
4736
- const hoverBackgroundToken = stripLegacyTokenAlpha(input.hoverBackgroundToken);
4737
- if (background.type === "transparent") return {
4738
- ...withoutLegacyText,
4739
- background: {
4740
- type: "surface",
4741
- role: "link"
4742
- },
4743
- border: normalizedBorder,
4744
- affordance: normalizedAffordance,
4745
- effects: normalizedEffects,
4746
- hoverBackgroundToken
4747
- };
4748
- if (background.type === "gradient") {
4749
- const stops = Array.isArray(background.stops) ? background.stops.map(stripLegacyTokenAlpha) : background.stops;
4750
- return {
4751
- ...withoutLegacyText,
4752
- background: {
4753
- ...background,
4754
- stops,
4755
- foregroundToken: stripLegacyTokenAlpha(background.foregroundToken ?? textColorToken)
4756
- },
4757
- border: normalizedBorder,
4758
- affordance: normalizedAffordance,
4759
- effects: normalizedEffects,
4760
- hoverBackgroundToken
4761
- };
4762
- }
4763
- return {
4764
- ...withoutLegacyText,
4765
- background: background.type === "solid" ? {
4766
- ...background,
4767
- colorToken: stripLegacyTokenAlpha(background.colorToken)
4768
- } : background,
4769
- border: normalizedBorder,
4770
- affordance: normalizedAffordance,
4771
- effects: normalizedEffects,
4772
- hoverBackgroundToken
4773
- };
4774
- }
4775
- function normalizeLegacyButtonGlobalInput(input) {
4776
- if (!isUnknownRecord(input)) return input;
4777
- const hoverColorToken = stripLegacyTokenAlpha(input.hoverColorToken);
4778
- return hoverColorToken === input.hoverColorToken ? input : {
4779
- ...input,
4780
- hoverColorToken
4781
- };
4782
- }
4783
- function hasLegacyAlphaToken(input, background) {
4784
- const stops = isUnknownArray(background.stops) ? background.stops : [];
4785
- return [
4786
- input.hoverBackgroundToken,
4787
- background.colorToken,
4788
- background.foregroundToken,
4789
- ...stops
4790
- ].some((token) => stripLegacyTokenAlpha(token) !== token);
4791
- }
4792
- function stripLegacyTokenAlpha(value) {
4793
- if (typeof value !== "string") return value;
4794
- const slashIndex = value.indexOf("/");
4795
- return slashIndex < 0 ? value : value.slice(0, slashIndex);
4796
- }
4797
- function hasLegacyButtonEffects(input) {
4798
- if (!isUnknownRecord(input)) return false;
4799
- return [
4800
- "base",
4801
- "hover",
4802
- "active",
4803
- "focus"
4804
- ].some((state) => {
4805
- const effects = input[state];
4806
- return Array.isArray(effects) && effects.some((effect) => {
4807
- if (!isUnknownRecord(effect) || typeof effect.effectId !== "string") return true;
4808
- const classification = classifyButtonEffectId(effect.effectId);
4809
- if (classification !== "colour-transition" && classification !== "non-colour") return true;
4810
- return effect.effectId === "background-on-hover" && isUnknownRecord(effect.options) && stripLegacyTokenAlpha(effect.options.colorToken) !== effect.options.colorToken;
4811
- });
4812
- });
4813
- }
4814
- function normalizeLegacyButtonEffects(input, backgroundType) {
4815
- if (!isUnknownRecord(input)) return input;
4816
- const normalized = {};
4817
- for (const state of [
4818
- "base",
4819
- "hover",
4820
- "active",
4821
- "focus"
4822
- ]) {
4823
- const effects = input[state];
4824
- if (!Array.isArray(effects)) continue;
4825
- const safeEffects = effects.flatMap((effect) => {
4826
- if (!isUnknownRecord(effect) || typeof effect.effectId !== "string") return [];
4827
- const classification = classifyButtonEffectId(effect.effectId);
4828
- if (classification === "non-colour") return [effect];
4829
- if (classification !== "colour-transition") return [];
4830
- if (effect.effectId === "background-on-hover") {
4831
- const options = isUnknownRecord(effect.options) ? effect.options : null;
4832
- const colorToken = options === null ? null : parseOpaqueButtonColourToken(stripLegacyTokenAlpha(options.colorToken));
4833
- return colorToken === null ? [] : [{
4834
- ...effect,
4835
- options: {
4836
- ...options,
4837
- colorToken
4838
- }
4839
- }];
4840
- }
4841
- if (backgroundType !== "solid") return [];
4842
- const rawAmount = isUnknownRecord(effect.options) ? effect.options.amount : void 0;
4843
- const amount = typeof rawAmount === "number" && rawAmount > 0 ? Math.max(100, Math.round(rawAmount / 100) * 100) : 100;
4844
- return [{
4845
- ...effect,
4846
- options: {
4847
- ...isUnknownRecord(effect.options) ? effect.options : {},
4848
- amount
4849
- }
4850
- }];
4851
- });
4852
- if (safeEffects.length > 0) normalized[state] = safeEffects;
4853
- }
4854
- return Object.keys(normalized).length === 0 ? void 0 : normalized;
4855
- }
4856
- function isUnknownRecord(value) {
4857
- return typeof value === "object" && value !== null && !Array.isArray(value);
4858
- }
4859
- function isUnknownArray(value) {
4860
- return Array.isArray(value);
4861
- }
4862
- var VARIANT_ROLES, opaqueButtonColourTokenSchema, cornerStyleSchema, shadowSizeSchema, textTransformSchema, fontWeightSchema, buttonTypographySchema, letterSpacingSchema, hoverTransformSchema, hoverColorSchema, buttonPaddingPresetSchema, gradientStyleSchema, gradientSharpnessSchema, prioritySchema, buttonSizeNameSchema, PADDING_TOKEN_PATTERN, paddingShorthandSchema, buttonSizeConfigSchema, buttonSizesSchema, canonicalButtonGlobalSettingsSchema, buttonGlobalSettingsSchema, gradientDirectionSchema$1, buttonColourTreatmentSchema, buttonBackgroundSchema, effectApplicationSchema$1, buttonBorderSchema, buttonVariantAffordanceSchema, variantShadowSchema, variantEffectsSchema, variantSizeOverridesSchema, canonicalButtonVariantSchema, buttonVariantSchema, buttonSystemSchema;
4863
- var init_types$14 = __esmMin((() => {
4864
- init_effectClassification();
4442
+ var VARIANT_ROLES, buttonVariantIdSchema, opaqueButtonColourTokenSchema, buttonShadeAmountSchema, buttonShadowIntensitySchema, buttonEffectApplicationSchema, cornerStyleSchema, shadowSizeSchema, textTransformSchema, fontWeightSchema, buttonTypographySchema, letterSpacingSchema, hoverTransformSchema, buttonPaddingPresetSchema, gradientStyleSchema, gradientSharpnessSchema, prioritySchema, buttonSizeNameSchema, PADDING_TOKEN_PATTERN, paddingShorthandSchema, buttonSizeConfigSchema, buttonSizesSchema, buttonGlobalSettingsBaseSchema, buttonGlobalSettingsSchema, gradientDirectionSchema$1, buttonColourTreatmentSchema, buttonBackgroundSchema, buttonBorderSchema, buttonVariantAffordanceSchema, variantShadowSchema, variantEffectsSchema, variantSizeOverridesSchema, buttonVariantSchema, buttonSystemSchema;
4443
+ var init_types$13 = __esmMin((() => {
4865
4444
  init_themeColorTokens();
4866
4445
  init_colorTokenParts();
4867
4446
  VARIANT_ROLES = [
@@ -4873,11 +4452,108 @@ var init_types$14 = __esmMin((() => {
4873
4452
  "tertiary",
4874
4453
  "accent"
4875
4454
  ];
4455
+ buttonVariantIdSchema = z$1.string().min(1).max(50).regex(/^[a-z0-9-]+$/, "Button variant IDs may contain lowercase letters, numbers, and hyphens only");
4876
4456
  opaqueButtonColourTokenSchema = themeColorTokenSchema.refine((value) => parseOpaqueButtonColourToken(value) !== null, "Button colour tokens must be opaque").transform((value) => {
4877
4457
  const token = parseOpaqueButtonColourToken(value);
4878
4458
  if (token === null) throw new Error("Invariant: opaque button token passed its schema");
4879
4459
  return token;
4880
4460
  });
4461
+ buttonShadeAmountSchema = z$1.number().finite().min(0).max(900).multipleOf(100);
4462
+ buttonShadowIntensitySchema = z$1.enum([
4463
+ "subtle",
4464
+ "medium",
4465
+ "strong"
4466
+ ]);
4467
+ buttonEffectApplicationSchema = z$1.discriminatedUnion("effectId", [
4468
+ z$1.strictObject({
4469
+ effectId: z$1.literal("darken-background"),
4470
+ options: z$1.strictObject({ amount: buttonShadeAmountSchema.optional() }).optional()
4471
+ }),
4472
+ z$1.strictObject({
4473
+ effectId: z$1.literal("lighten-background"),
4474
+ options: z$1.strictObject({ amount: buttonShadeAmountSchema.optional() }).optional()
4475
+ }),
4476
+ z$1.strictObject({
4477
+ effectId: z$1.literal("background-on-hover"),
4478
+ options: z$1.strictObject({ colorToken: opaqueButtonColourTokenSchema.optional() }).optional()
4479
+ }),
4480
+ z$1.strictObject({
4481
+ effectId: z$1.literal("animated-gradient"),
4482
+ options: z$1.strictObject({ direction: z$1.enum(["horizontal", "vertical"]).optional() }).optional()
4483
+ }),
4484
+ z$1.strictObject({
4485
+ effectId: z$1.literal("drop-shadow"),
4486
+ options: z$1.strictObject({ intensity: buttonShadowIntensitySchema.optional() }).optional()
4487
+ }),
4488
+ z$1.strictObject({
4489
+ effectId: z$1.literal("inner-shadow"),
4490
+ options: z$1.strictObject({}).optional()
4491
+ }),
4492
+ z$1.strictObject({
4493
+ effectId: z$1.literal("neumorphic-shadow"),
4494
+ options: z$1.strictObject({
4495
+ mode: z$1.enum(["raised", "pressed"]).optional(),
4496
+ intensity: buttonShadowIntensitySchema.optional()
4497
+ }).optional()
4498
+ }),
4499
+ z$1.strictObject({
4500
+ effectId: z$1.literal("retro-3d-shadow"),
4501
+ options: z$1.strictObject({}).optional()
4502
+ }),
4503
+ z$1.strictObject({
4504
+ effectId: z$1.literal("scale-up"),
4505
+ options: z$1.strictObject({ scale: z$1.enum([
4506
+ "1.02",
4507
+ "1.03",
4508
+ "1.05",
4509
+ "1.10"
4510
+ ]).optional() }).optional()
4511
+ }),
4512
+ z$1.strictObject({
4513
+ effectId: z$1.literal("scale-down"),
4514
+ options: z$1.strictObject({ scale: z$1.enum([
4515
+ "0.90",
4516
+ "0.95",
4517
+ "0.97",
4518
+ "0.98"
4519
+ ]).optional() }).optional()
4520
+ }),
4521
+ z$1.strictObject({
4522
+ effectId: z$1.literal("lift"),
4523
+ options: z$1.strictObject({ amount: z$1.enum([
4524
+ "0.25",
4525
+ "0.5",
4526
+ "1"
4527
+ ]).optional() }).optional()
4528
+ }),
4529
+ z$1.strictObject({
4530
+ effectId: z$1.literal("press-down"),
4531
+ options: z$1.strictObject({}).optional()
4532
+ }),
4533
+ z$1.strictObject({
4534
+ effectId: z$1.literal("pop"),
4535
+ options: z$1.strictObject({ intensity: z$1.enum([
4536
+ "subtle",
4537
+ "medium",
4538
+ "dramatic"
4539
+ ]).optional() }).optional()
4540
+ }),
4541
+ z$1.strictObject({
4542
+ effectId: z$1.literal("border-bottom-grow"),
4543
+ options: z$1.strictObject({
4544
+ height: z$1.union([z$1.literal(1), z$1.literal(2)]).optional(),
4545
+ origin: z$1.enum([
4546
+ "left",
4547
+ "center",
4548
+ "right"
4549
+ ]).optional()
4550
+ }).optional()
4551
+ }),
4552
+ z$1.strictObject({
4553
+ effectId: z$1.literal("sketchy-border"),
4554
+ options: z$1.strictObject({ intensity: buttonShadowIntensitySchema.optional() }).optional()
4555
+ })
4556
+ ]);
4881
4557
  cornerStyleSchema = z$1.enum([
4882
4558
  "square",
4883
4559
  "rounded",
@@ -4912,13 +4588,7 @@ var init_types$14 = __esmMin((() => {
4912
4588
  "scale",
4913
4589
  "press"
4914
4590
  ]);
4915
- hoverColorSchema = z$1.enum([
4916
- "none",
4917
- "brighten",
4918
- "darken",
4919
- "saturate",
4920
- "token"
4921
- ]);
4591
+ z$1.enum(["none", "token"]);
4922
4592
  buttonPaddingPresetSchema = z$1.enum([
4923
4593
  "compact",
4924
4594
  "default",
@@ -4966,7 +4636,7 @@ var init_types$14 = __esmMin((() => {
4966
4636
  lg,
4967
4637
  xl: xl ?? lg
4968
4638
  }));
4969
- canonicalButtonGlobalSettingsSchema = z$1.object({
4639
+ buttonGlobalSettingsBaseSchema = z$1.strictObject({
4970
4640
  cornerStyle: cornerStyleSchema,
4971
4641
  cornerRadius: z$1.number().min(0).max(24).optional(),
4972
4642
  /**
@@ -4979,30 +4649,23 @@ var init_types$14 = __esmMin((() => {
4979
4649
  shadow: shadowSizeSchema.optional(),
4980
4650
  textTransform: textTransformSchema,
4981
4651
  fontWeight: fontWeightSchema,
4982
- /**
4983
- * @deprecated Set per-variant via `variant.border.widthClass` instead.
4984
- * Schema field is preserved so existing presets parse; the value is unread
4985
- * by the current generator and will be removed once the legacy
4986
- * `primitives/content/components/Button.tsx` slot exports are deleted.
4987
- */
4988
- borderWidth: z$1.union([
4989
- z$1.literal(1),
4990
- z$1.literal(2),
4991
- z$1.literal(3)
4992
- ]),
4993
4652
  typography: buttonTypographySchema.optional(),
4994
4653
  fontSize: z$1.string().optional(),
4995
4654
  letterSpacing: letterSpacingSchema.optional(),
4996
4655
  italic: z$1.boolean().optional(),
4997
4656
  paddingPreset: buttonPaddingPresetSchema.optional(),
4998
4657
  hoverTransform: hoverTransformSchema,
4999
- hoverColor: hoverColorSchema,
5000
- hoverColorToken: opaqueButtonColourTokenSchema.optional(),
5001
4658
  gradientStyle: gradientStyleSchema.optional(),
5002
4659
  gradientAngle: z$1.number().min(0).max(360).optional(),
5003
4660
  gradientSharpness: gradientSharpnessSchema.optional()
5004
4661
  });
5005
- buttonGlobalSettingsSchema = z$1.preprocess(normalizeLegacyButtonGlobalInput, canonicalButtonGlobalSettingsSchema);
4662
+ buttonGlobalSettingsSchema = z$1.discriminatedUnion("hoverColor", [buttonGlobalSettingsBaseSchema.extend({
4663
+ hoverColor: z$1.literal("none"),
4664
+ hoverColorToken: z$1.never().optional()
4665
+ }), buttonGlobalSettingsBaseSchema.extend({
4666
+ hoverColor: z$1.literal("token"),
4667
+ hoverColorToken: opaqueButtonColourTokenSchema
4668
+ })]);
5006
4669
  gradientDirectionSchema$1 = z$1.enum([
5007
4670
  "to-r",
5008
4671
  "to-l",
@@ -5014,11 +4677,11 @@ var init_types$14 = __esmMin((() => {
5014
4677
  "to-bl"
5015
4678
  ]);
5016
4679
  buttonColourTreatmentSchema = z$1.discriminatedUnion("type", [
5017
- z$1.object({
4680
+ z$1.strictObject({
5018
4681
  type: z$1.literal("solid"),
5019
4682
  colorToken: opaqueButtonColourTokenSchema
5020
4683
  }),
5021
- z$1.object({
4684
+ z$1.strictObject({
5022
4685
  type: z$1.literal("gradient"),
5023
4686
  stops: z$1.array(opaqueButtonColourTokenSchema).min(2).transform((stops) => {
5024
4687
  const [first, second, ...rest] = stops;
@@ -5032,19 +4695,15 @@ var init_types$14 = __esmMin((() => {
5032
4695
  direction: gradientDirectionSchema$1,
5033
4696
  foregroundToken: opaqueButtonColourTokenSchema
5034
4697
  }),
5035
- z$1.object({
4698
+ z$1.strictObject({
5036
4699
  type: z$1.literal("surface"),
5037
4700
  role: z$1.literal("link")
5038
4701
  })
5039
4702
  ]);
5040
4703
  buttonBackgroundSchema = buttonColourTreatmentSchema;
5041
- effectApplicationSchema$1 = z$1.object({
5042
- effectId: z$1.string(),
5043
- options: z$1.record(z$1.string(), z$1.json()).optional()
5044
- });
5045
- buttonBorderSchema = z$1.object({ widthClass: z$1.string() });
5046
- buttonVariantAffordanceSchema = z$1.object({ iconId: z$1.string().min(1) });
5047
- variantShadowSchema = z$1.object({
4704
+ buttonBorderSchema = z$1.strictObject({ widthClass: z$1.string() });
4705
+ buttonVariantAffordanceSchema = z$1.strictObject({ iconId: z$1.string().min(1) });
4706
+ variantShadowSchema = z$1.strictObject({
5048
4707
  elevation: z$1.enum([
5049
4708
  "none",
5050
4709
  "low",
@@ -5057,13 +4716,13 @@ var init_types$14 = __esmMin((() => {
5057
4716
  "hard"
5058
4717
  ]).nullable(),
5059
4718
  position: z$1.enum(["bottom", "bottom-right"]).default("bottom"),
5060
- colorToken: themeColorTokenSchema.optional()
4719
+ colorToken: opaqueButtonColourTokenSchema.optional()
5061
4720
  });
5062
- variantEffectsSchema = z$1.object({
5063
- base: z$1.array(effectApplicationSchema$1).optional(),
5064
- hover: z$1.array(effectApplicationSchema$1).optional(),
5065
- active: z$1.array(effectApplicationSchema$1).optional(),
5066
- focus: z$1.array(effectApplicationSchema$1).optional()
4721
+ variantEffectsSchema = z$1.strictObject({
4722
+ base: z$1.array(buttonEffectApplicationSchema).optional(),
4723
+ hover: z$1.array(buttonEffectApplicationSchema).optional(),
4724
+ active: z$1.array(buttonEffectApplicationSchema).optional(),
4725
+ focus: z$1.array(buttonEffectApplicationSchema).optional()
5067
4726
  });
5068
4727
  variantSizeOverridesSchema = z$1.object({
5069
4728
  sm: buttonSizeConfigSchema.optional(),
@@ -5071,8 +4730,8 @@ var init_types$14 = __esmMin((() => {
5071
4730
  lg: buttonSizeConfigSchema.optional(),
5072
4731
  xl: buttonSizeConfigSchema.optional()
5073
4732
  });
5074
- canonicalButtonVariantSchema = z$1.object({
5075
- id: z$1.string(),
4733
+ buttonVariantSchema = z$1.strictObject({
4734
+ id: buttonVariantIdSchema,
5076
4735
  name: z$1.string().min(1).max(20),
5077
4736
  enabled: z$1.boolean(),
5078
4737
  priority: prioritySchema,
@@ -5086,44 +4745,130 @@ var init_types$14 = __esmMin((() => {
5086
4745
  sizes: variantSizeOverridesSchema.optional(),
5087
4746
  affordance: buttonVariantAffordanceSchema.optional()
5088
4747
  });
5089
- buttonVariantSchema = z$1.preprocess(normalizeLegacyButtonVariantInput, canonicalButtonVariantSchema);
5090
- buttonSystemSchema = z$1.object({
4748
+ buttonSystemSchema = z$1.strictObject({
5091
4749
  global: buttonGlobalSettingsSchema,
5092
4750
  variants: z$1.array(buttonVariantSchema).min(1).max(6),
5093
4751
  sizes: buttonSizesSchema.optional()
4752
+ }).superRefine((system, ctx) => {
4753
+ const seen = /* @__PURE__ */ new Set();
4754
+ system.variants.forEach((variant, index) => {
4755
+ if (seen.has(variant.id)) ctx.addIssue({
4756
+ code: "custom",
4757
+ path: [
4758
+ "variants",
4759
+ index,
4760
+ "id"
4761
+ ],
4762
+ message: `Duplicate button variant ID: ${variant.id}`
4763
+ });
4764
+ seen.add(variant.id);
4765
+ });
5094
4766
  });
5095
4767
  }));
5096
4768
  //#endregion
5097
- //#region ../theme-core/src/buttons/classNames.ts
5098
- var init_classNames = __esmMin((() => {
5099
- init_types$14();
4769
+ //#region ../theme-core/src/surfaces/foregroundRoles.ts
4770
+ var init_foregroundRoles = __esmMin((() => {}));
4771
+ //#endregion
4772
+ //#region ../theme-core/src/surfaces/foregroundContract.ts
4773
+ function requireSurfaceColorValue(role, value) {
4774
+ const normalized = value.trim();
4775
+ if (normalized.length === 0) throw new RangeError(`Surface foreground ${role} must be a non-empty CSS color.`);
4776
+ return normalized;
4777
+ }
4778
+ function completeSurfaceForegrounds(input) {
4779
+ const text = requireSurfaceColorValue("text", input.text);
4780
+ return {
4781
+ text,
4782
+ heading: input.heading === void 0 ? text : requireSurfaceColorValue("heading", input.heading),
4783
+ link: input.link === void 0 ? text : requireSurfaceColorValue("link", input.link),
4784
+ supporting: input.supporting === void 0 ? text : requireSurfaceColorValue("supporting", input.supporting)
4785
+ };
4786
+ }
4787
+ function surfaceForegroundValue(role, outsideProviderFallback = DEFAULT_ROLE_FALLBACKS[role]) {
4788
+ const roleVariable = SURFACE_FOREGROUND_CSS_VARS[role];
4789
+ const fallback = requireSurfaceColorValue("fallback", outsideProviderFallback);
4790
+ if (role === "text") return `var(${roleVariable}, ${fallback})`;
4791
+ return `var(${roleVariable}, var(${SURFACE_FOREGROUND_CSS_VARS.text}, ${fallback}))`;
4792
+ }
4793
+ function surfaceForegroundValueWithOpacity(role, opacityPercent) {
4794
+ if (!Number.isFinite(opacityPercent) || opacityPercent < 0 || opacityPercent > 100) throw new RangeError("Surface foreground opacity must be between 0 and 100.");
4795
+ return `color-mix(in srgb, ${surfaceForegroundValue(role)} ${opacityPercent}%, transparent)`;
4796
+ }
4797
+ function surfaceForegroundStyle(input) {
4798
+ const foregrounds = completeSurfaceForegrounds(input);
4799
+ return {
4800
+ color: foregrounds.text,
4801
+ [SURFACE_FOREGROUND_CSS_VARS.text]: foregrounds.text,
4802
+ [SURFACE_FOREGROUND_CSS_VARS.heading]: foregrounds.heading,
4803
+ [SURFACE_FOREGROUND_CSS_VARS.link]: foregrounds.link,
4804
+ [SURFACE_FOREGROUND_CSS_VARS.supporting]: foregrounds.supporting
4805
+ };
4806
+ }
4807
+ var SURFACE_FOREGROUND_CSS_VARS, DEFAULT_SURFACE_TEXT_COLOR, DEFAULT_SURFACE_LINK_COLOR, DEFAULT_SURFACE_SUPPORTING_COLOR, DEFAULT_ROLE_FALLBACKS;
4808
+ var init_foregroundContract = __esmMin((() => {
4809
+ SURFACE_FOREGROUND_CSS_VARS = {
4810
+ text: "--rb-surface-text-color",
4811
+ heading: "--rb-surface-heading-color",
4812
+ link: "--rb-surface-link-color",
4813
+ supporting: "--rb-surface-supporting-color"
4814
+ };
4815
+ DEFAULT_SURFACE_TEXT_COLOR = "rgb(var(--tb-text, 17 24 39))";
4816
+ DEFAULT_SURFACE_LINK_COLOR = "rgb(var(--tb-primary, var(--tb-text, 17 24 39)))";
4817
+ DEFAULT_SURFACE_SUPPORTING_COLOR = "rgb(var(--tb-mutedText, 100 116 139))";
4818
+ DEFAULT_ROLE_FALLBACKS = {
4819
+ text: DEFAULT_SURFACE_TEXT_COLOR,
4820
+ heading: DEFAULT_SURFACE_TEXT_COLOR,
4821
+ link: DEFAULT_SURFACE_LINK_COLOR,
4822
+ supporting: DEFAULT_SURFACE_SUPPORTING_COLOR
4823
+ };
5100
4824
  }));
5101
4825
  //#endregion
5102
4826
  //#region ../theme-core/src/buttons/constants.ts
5103
4827
  var init_constants$1 = __esmMin((() => {}));
5104
4828
  //#endregion
5105
- //#region ../theme-core/src/buttons/effects/presets/transform.ts
5106
- var init_transform = __esmMin((() => {}));
4829
+ //#region ../theme-core/src/buttons/effectClassification.ts
4830
+ var init_effectClassification = __esmMin((() => {
4831
+ init_types$13();
4832
+ }));
4833
+ //#endregion
4834
+ //#region ../theme-core/src/buttons/resolveButtonColourStates.ts
4835
+ var init_resolveButtonColourStates = __esmMin((() => {
4836
+ init_types$13();
4837
+ init_effectClassification();
4838
+ }));
4839
+ //#endregion
4840
+ //#region ../theme-core/src/buttons/parseThemeForPersistence.ts
4841
+ var init_parseThemeForPersistence = __esmMin((() => {
4842
+ init_schema$2();
4843
+ init_resolveButtonColourStates();
4844
+ }));
4845
+ //#endregion
4846
+ //#region ../theme-core/src/buttons/classNames.ts
4847
+ var init_classNames = __esmMin((() => {
4848
+ init_types$13();
4849
+ }));
5107
4850
  //#endregion
5108
4851
  //#region ../theme-core/src/buttons/effects/registry.ts
5109
- var init_registry$8 = __esmMin((() => {}));
4852
+ var init_registry$8 = __esmMin((() => {
4853
+ init_effectClassification();
4854
+ }));
4855
+ //#endregion
4856
+ //#region ../theme-core/src/interactive/generateEffectsCSS.ts
4857
+ var init_generateEffectsCSS = __esmMin((() => {
4858
+ init_registry$8();
4859
+ }));
5110
4860
  //#endregion
5111
4861
  //#region ../theme-core/src/buttons/generateDefaultButtonSystem.ts
5112
4862
  var init_generateDefaultButtonSystem = __esmMin((() => {
5113
- init_types$14();
4863
+ init_types$13();
5114
4864
  }));
5115
4865
  //#endregion
5116
4866
  //#region ../theme-core/src/buttons/affordanceIcons.ts
5117
4867
  var init_affordanceIcons = __esmMin((() => {}));
5118
- //#endregion
5119
- //#region ../theme-core/src/buttons/resolveButtonColourStates.ts
5120
- var init_resolveButtonColourStates = __esmMin((() => {
5121
- init_types$14();
5122
- init_effectClassification();
5123
- }));
5124
4868
  var init_generateButtonCss = __esmMin((() => {
5125
- init_types$14();
4869
+ init_types$13();
5126
4870
  init_classNames();
4871
+ init_generateEffectsCSS();
5127
4872
  init_generateDefaultButtonSystem();
5128
4873
  init_resolveButtonColourStates();
5129
4874
  buttonSizeNameSchema.options;
@@ -5209,7 +4954,7 @@ function rolePriority(role) {
5209
4954
  }
5210
4955
  var PUBLIC_BUTTON_ROLES;
5211
4956
  var init_domain = __esmMin((() => {
5212
- init_types$14();
4957
+ init_types$13();
5213
4958
  PUBLIC_BUTTON_ROLES = [
5214
4959
  "primary",
5215
4960
  "secondary",
@@ -5265,7 +5010,7 @@ var init_selection = __esmMin((() => {
5265
5010
  var quietArrowRecipe;
5266
5011
  var init_quietArrow = __esmMin((() => {
5267
5012
  init_domain();
5268
- init_types$14();
5013
+ init_types$13();
5269
5014
  init_selection();
5270
5015
  quietArrowRecipe = defineButtonStyleRecipe({
5271
5016
  id: "quiet-arrow",
@@ -5295,7 +5040,6 @@ var init_quietArrow = __esmMin((() => {
5295
5040
  cornerStyle: "rounded",
5296
5041
  textTransform: "uppercase",
5297
5042
  fontWeight: 500,
5298
- borderWidth: 1,
5299
5043
  typography: "body",
5300
5044
  fontSize: "text-sm",
5301
5045
  letterSpacing: "loose",
@@ -5359,7 +5103,7 @@ var init_quietArrow = __esmMin((() => {
5359
5103
  affordance: { iconId: "ArrowRight" },
5360
5104
  effects: { hover: [{
5361
5105
  effectId: "background-on-hover",
5362
- options: { colorToken: "surfaceAlt" }
5106
+ options: { colorToken: unsafeAsOpaqueButtonColourToken("surfaceAlt") }
5363
5107
  }] }
5364
5108
  }
5365
5109
  },
@@ -5455,7 +5199,7 @@ function normalizeAppearanceOverrides(overrides) {
5455
5199
  }
5456
5200
  var emptyParametersSchema;
5457
5201
  var init_defineStaticButtonStyleRecipe = __esmMin((() => {
5458
- init_types$14();
5202
+ init_types$13();
5459
5203
  init_domain();
5460
5204
  emptyParametersSchema = z$1.object({}).strict();
5461
5205
  }));
@@ -5464,6 +5208,7 @@ var init_defineStaticButtonStyleRecipe = __esmMin((() => {
5464
5208
  var softPillRecipe, earthPillRecipe, confidentChipRecipe, editorialSizes, editorialLinkRecipe, pebbleRecipe, brushedWashRecipe, inkStampRecipe, flatInkRecipe, showtimePillRecipe, joyStampRecipe, ornateGhostSizes, ornateRitualRecipe;
5465
5209
  var init_staticRecipes = __esmMin((() => {
5466
5210
  init_defineStaticButtonStyleRecipe();
5211
+ init_types$13();
5467
5212
  softPillRecipe = defineStaticButtonStyleRecipe({
5468
5213
  id: "soft-pill",
5469
5214
  accessibilityLabel: "Rounded pill buttons with a gentle hover lift",
@@ -5479,7 +5224,6 @@ var init_staticRecipes = __esmMin((() => {
5479
5224
  shadow: "low",
5480
5225
  textTransform: "none",
5481
5226
  fontWeight: 500,
5482
- borderWidth: 2,
5483
5227
  hoverTransform: "lift",
5484
5228
  hoverColor: "none"
5485
5229
  },
@@ -5498,10 +5242,7 @@ var init_staticRecipes = __esmMin((() => {
5498
5242
  position: "bottom"
5499
5243
  },
5500
5244
  effects: {
5501
- hover: [{
5502
- effectId: "lift",
5503
- options: { translateY: "-1px" }
5504
- }],
5245
+ hover: [{ effectId: "lift" }],
5505
5246
  active: [{
5506
5247
  effectId: "scale-down",
5507
5248
  options: { scale: "0.98" }
@@ -5520,7 +5261,7 @@ var init_staticRecipes = __esmMin((() => {
5520
5261
  border: { widthClass: "border-2" },
5521
5262
  effects: { hover: [{
5522
5263
  effectId: "background-on-hover",
5523
- options: { colorToken: "surface" }
5264
+ options: { colorToken: unsafeAsOpaqueButtonColourToken("surface") }
5524
5265
  }] }
5525
5266
  }
5526
5267
  },
@@ -5535,7 +5276,7 @@ var init_staticRecipes = __esmMin((() => {
5535
5276
  border: { widthClass: "border" },
5536
5277
  effects: { hover: [{
5537
5278
  effectId: "background-on-hover",
5538
- options: { colorToken: "surface" }
5279
+ options: { colorToken: unsafeAsOpaqueButtonColourToken("surface") }
5539
5280
  }] }
5540
5281
  }
5541
5282
  },
@@ -5549,7 +5290,7 @@ var init_staticRecipes = __esmMin((() => {
5549
5290
  borderRadius: "rounded-full",
5550
5291
  effects: { hover: [{
5551
5292
  effectId: "background-on-hover",
5552
- options: { colorToken: "surface" }
5293
+ options: { colorToken: unsafeAsOpaqueButtonColourToken("surface") }
5553
5294
  }] }
5554
5295
  }
5555
5296
  },
@@ -5579,7 +5320,6 @@ var init_staticRecipes = __esmMin((() => {
5579
5320
  shadow: "low",
5580
5321
  textTransform: "none",
5581
5322
  fontWeight: 500,
5582
- borderWidth: 1,
5583
5323
  hoverTransform: "lift",
5584
5324
  hoverColor: "none",
5585
5325
  typography: "body",
@@ -5615,12 +5355,9 @@ var init_staticRecipes = __esmMin((() => {
5615
5355
  position: "bottom"
5616
5356
  },
5617
5357
  effects: {
5618
- hover: [{
5619
- effectId: "lift",
5620
- options: { translateY: "-1px" }
5621
- }, {
5358
+ hover: [{ effectId: "lift" }, {
5622
5359
  effectId: "background-on-hover",
5623
- options: { colorToken: "accent" }
5360
+ options: { colorToken: unsafeAsOpaqueButtonColourToken("accent") }
5624
5361
  }],
5625
5362
  active: [{
5626
5363
  effectId: "scale-down",
@@ -5640,7 +5377,7 @@ var init_staticRecipes = __esmMin((() => {
5640
5377
  border: { widthClass: "border" },
5641
5378
  effects: { hover: [{
5642
5379
  effectId: "background-on-hover",
5643
- options: { colorToken: "muted" }
5380
+ options: { colorToken: unsafeAsOpaqueButtonColourToken("muted") }
5644
5381
  }] }
5645
5382
  }
5646
5383
  },
@@ -5655,7 +5392,7 @@ var init_staticRecipes = __esmMin((() => {
5655
5392
  border: { widthClass: "border" },
5656
5393
  effects: { hover: [{
5657
5394
  effectId: "background-on-hover",
5658
- options: { colorToken: "surfaceAlt" }
5395
+ options: { colorToken: unsafeAsOpaqueButtonColourToken("surfaceAlt") }
5659
5396
  }] }
5660
5397
  }
5661
5398
  },
@@ -5715,7 +5452,6 @@ var init_staticRecipes = __esmMin((() => {
5715
5452
  shadow: "medium",
5716
5453
  textTransform: "none",
5717
5454
  fontWeight: 600,
5718
- borderWidth: 1,
5719
5455
  hoverTransform: "none",
5720
5456
  hoverColor: "none"
5721
5457
  },
@@ -5756,7 +5492,7 @@ var init_staticRecipes = __esmMin((() => {
5756
5492
  border: { widthClass: "border" },
5757
5493
  effects: { hover: [{
5758
5494
  effectId: "background-on-hover",
5759
- options: { colorToken: "background" }
5495
+ options: { colorToken: unsafeAsOpaqueButtonColourToken("background") }
5760
5496
  }] }
5761
5497
  }
5762
5498
  },
@@ -5771,7 +5507,7 @@ var init_staticRecipes = __esmMin((() => {
5771
5507
  border: { widthClass: "border" },
5772
5508
  effects: { hover: [{
5773
5509
  effectId: "background-on-hover",
5774
- options: { colorToken: "surface" }
5510
+ options: { colorToken: unsafeAsOpaqueButtonColourToken("surface") }
5775
5511
  }] }
5776
5512
  }
5777
5513
  },
@@ -5785,7 +5521,7 @@ var init_staticRecipes = __esmMin((() => {
5785
5521
  borderRadius: "rounded-md",
5786
5522
  effects: { hover: [{
5787
5523
  effectId: "background-on-hover",
5788
- options: { colorToken: "surface" }
5524
+ options: { colorToken: unsafeAsOpaqueButtonColourToken("surface") }
5789
5525
  }] }
5790
5526
  }
5791
5527
  },
@@ -5820,7 +5556,6 @@ var init_staticRecipes = __esmMin((() => {
5820
5556
  cornerStyle: "square",
5821
5557
  textTransform: "none",
5822
5558
  fontWeight: 500,
5823
- borderWidth: 1,
5824
5559
  hoverTransform: "none",
5825
5560
  hoverColor: "none"
5826
5561
  },
@@ -5838,7 +5573,6 @@ var init_staticRecipes = __esmMin((() => {
5838
5573
  effectId: "border-bottom-grow",
5839
5574
  options: {
5840
5575
  height: 2,
5841
- colorToken: "text",
5842
5576
  origin: "left"
5843
5577
  }
5844
5578
  }] }
@@ -5857,7 +5591,6 @@ var init_staticRecipes = __esmMin((() => {
5857
5591
  effectId: "border-bottom-grow",
5858
5592
  options: {
5859
5593
  height: 1,
5860
- colorToken: "mutedText",
5861
5594
  origin: "left"
5862
5595
  }
5863
5596
  }] }
@@ -5876,7 +5609,6 @@ var init_staticRecipes = __esmMin((() => {
5876
5609
  effectId: "border-bottom-grow",
5877
5610
  options: {
5878
5611
  height: 1,
5879
- colorToken: "accent",
5880
5612
  origin: "left"
5881
5613
  }
5882
5614
  }] }
@@ -5900,7 +5632,6 @@ var init_staticRecipes = __esmMin((() => {
5900
5632
  effectId: "border-bottom-grow",
5901
5633
  options: {
5902
5634
  height: 2,
5903
- colorToken: "accent",
5904
5635
  origin: "left"
5905
5636
  }
5906
5637
  }] } }
@@ -5922,7 +5653,6 @@ var init_staticRecipes = __esmMin((() => {
5922
5653
  cornerStyle: "pill",
5923
5654
  textTransform: "none",
5924
5655
  fontWeight: 500,
5925
- borderWidth: 2,
5926
5656
  hoverTransform: "none",
5927
5657
  hoverColor: "none"
5928
5658
  },
@@ -5967,7 +5697,7 @@ var init_staticRecipes = __esmMin((() => {
5967
5697
  border: { widthClass: "border-2" },
5968
5698
  effects: { hover: [{
5969
5699
  effectId: "background-on-hover",
5970
- options: { colorToken: "accent" }
5700
+ options: { colorToken: unsafeAsOpaqueButtonColourToken("accent") }
5971
5701
  }] }
5972
5702
  }
5973
5703
  },
@@ -5982,7 +5712,7 @@ var init_staticRecipes = __esmMin((() => {
5982
5712
  border: { widthClass: "border" },
5983
5713
  effects: { hover: [{
5984
5714
  effectId: "background-on-hover",
5985
- options: { colorToken: "surface" }
5715
+ options: { colorToken: unsafeAsOpaqueButtonColourToken("surface") }
5986
5716
  }] }
5987
5717
  }
5988
5718
  },
@@ -6037,7 +5767,6 @@ var init_staticRecipes = __esmMin((() => {
6037
5767
  shadow: "low",
6038
5768
  textTransform: "none",
6039
5769
  fontWeight: 500,
6040
- borderWidth: 1,
6041
5770
  hoverTransform: "none",
6042
5771
  hoverColor: "none"
6043
5772
  },
@@ -6102,7 +5831,7 @@ var init_staticRecipes = __esmMin((() => {
6102
5831
  border: { widthClass: "border" },
6103
5832
  effects: { hover: [{
6104
5833
  effectId: "background-on-hover",
6105
- options: { colorToken: "surface" }
5834
+ options: { colorToken: unsafeAsOpaqueButtonColourToken("surface") }
6106
5835
  }] }
6107
5836
  }
6108
5837
  },
@@ -6116,7 +5845,7 @@ var init_staticRecipes = __esmMin((() => {
6116
5845
  borderRadius: "rounded-lg",
6117
5846
  effects: { hover: [{
6118
5847
  effectId: "background-on-hover",
6119
- options: { colorToken: "surface" }
5848
+ options: { colorToken: unsafeAsOpaqueButtonColourToken("surface") }
6120
5849
  }] }
6121
5850
  }
6122
5851
  },
@@ -6145,7 +5874,6 @@ var init_staticRecipes = __esmMin((() => {
6145
5874
  cornerStyle: "rounded",
6146
5875
  textTransform: "uppercase",
6147
5876
  fontWeight: 600,
6148
- borderWidth: 1,
6149
5877
  hoverTransform: "none",
6150
5878
  hoverColor: "none",
6151
5879
  letterSpacing: "loose"
@@ -6203,7 +5931,7 @@ var init_staticRecipes = __esmMin((() => {
6203
5931
  border: { widthClass: "border-2" },
6204
5932
  effects: { hover: [{
6205
5933
  effectId: "background-on-hover",
6206
- options: { colorToken: "surface" }
5934
+ options: { colorToken: unsafeAsOpaqueButtonColourToken("surface") }
6207
5935
  }] }
6208
5936
  }
6209
5937
  },
@@ -6218,7 +5946,7 @@ var init_staticRecipes = __esmMin((() => {
6218
5946
  border: { widthClass: "border-2" },
6219
5947
  effects: { hover: [{
6220
5948
  effectId: "background-on-hover",
6221
- options: { colorToken: "surface" }
5949
+ options: { colorToken: unsafeAsOpaqueButtonColourToken("surface") }
6222
5950
  }] }
6223
5951
  }
6224
5952
  },
@@ -6252,7 +5980,6 @@ var init_staticRecipes = __esmMin((() => {
6252
5980
  effectId: "border-bottom-grow",
6253
5981
  options: {
6254
5982
  height: 1,
6255
- colorToken: "accent",
6256
5983
  origin: "left"
6257
5984
  }
6258
5985
  }] }
@@ -6283,7 +6010,6 @@ var init_staticRecipes = __esmMin((() => {
6283
6010
  cornerStyle: "rounded",
6284
6011
  textTransform: "none",
6285
6012
  fontWeight: 600,
6286
- borderWidth: 1,
6287
6013
  typography: "body",
6288
6014
  letterSpacing: "tight",
6289
6015
  paddingPreset: "default",
@@ -6315,12 +6041,9 @@ var init_staticRecipes = __esmMin((() => {
6315
6041
  },
6316
6042
  borderRadius: "rounded-lg",
6317
6043
  affordance: { iconId: "ArrowRight" },
6318
- effects: { hover: [{
6319
- effectId: "lift",
6320
- options: { translateY: "-2px" }
6321
- }, {
6044
+ effects: { hover: [{ effectId: "lift" }, {
6322
6045
  effectId: "background-on-hover",
6323
- options: { colorToken: "secondary" }
6046
+ options: { colorToken: unsafeAsOpaqueButtonColourToken("secondary") }
6324
6047
  }] }
6325
6048
  }
6326
6049
  },
@@ -6333,12 +6056,9 @@ var init_staticRecipes = __esmMin((() => {
6333
6056
  },
6334
6057
  borderRadius: "rounded-lg",
6335
6058
  border: { widthClass: "border" },
6336
- effects: { hover: [{
6337
- effectId: "lift",
6338
- options: { translateY: "-2px" }
6339
- }, {
6059
+ effects: { hover: [{ effectId: "lift" }, {
6340
6060
  effectId: "background-on-hover",
6341
- options: { colorToken: "surfaceAlt" }
6061
+ options: { colorToken: unsafeAsOpaqueButtonColourToken("surfaceAlt") }
6342
6062
  }] }
6343
6063
  }
6344
6064
  },
@@ -6351,12 +6071,9 @@ var init_staticRecipes = __esmMin((() => {
6351
6071
  },
6352
6072
  borderRadius: "rounded-lg",
6353
6073
  border: { widthClass: "border" },
6354
- effects: { hover: [{
6355
- effectId: "lift",
6356
- options: { translateY: "-2px" }
6357
- }, {
6074
+ effects: { hover: [{ effectId: "lift" }, {
6358
6075
  effectId: "background-on-hover",
6359
- options: { colorToken: "surfaceAlt" }
6076
+ options: { colorToken: unsafeAsOpaqueButtonColourToken("surfaceAlt") }
6360
6077
  }] }
6361
6078
  }
6362
6079
  },
@@ -6368,10 +6085,7 @@ var init_staticRecipes = __esmMin((() => {
6368
6085
  role: "link"
6369
6086
  },
6370
6087
  borderRadius: "rounded-lg",
6371
- effects: { hover: [{
6372
- effectId: "lift",
6373
- options: { translateY: "-2px" }
6374
- }] }
6088
+ effects: { hover: [{ effectId: "lift" }] }
6375
6089
  }
6376
6090
  },
6377
6091
  accent: {
@@ -6383,10 +6097,7 @@ var init_staticRecipes = __esmMin((() => {
6383
6097
  },
6384
6098
  borderRadius: "rounded-lg",
6385
6099
  affordance: { iconId: "ArrowRight" },
6386
- effects: { hover: [{
6387
- effectId: "lift",
6388
- options: { translateY: "-2px" }
6389
- }] }
6100
+ effects: { hover: [{ effectId: "lift" }] }
6390
6101
  }
6391
6102
  }
6392
6103
  }
@@ -6407,9 +6118,8 @@ var init_staticRecipes = __esmMin((() => {
6407
6118
  shadow: "low",
6408
6119
  textTransform: "uppercase",
6409
6120
  fontWeight: 700,
6410
- borderWidth: 2,
6411
6121
  hoverTransform: "lift",
6412
- hoverColor: "darken",
6122
+ hoverColor: "none",
6413
6123
  typography: "body",
6414
6124
  paddingPreset: "spacious",
6415
6125
  italic: false
@@ -6467,7 +6177,7 @@ var init_staticRecipes = __esmMin((() => {
6467
6177
  border: { widthClass: "border-2" },
6468
6178
  effects: { hover: [{
6469
6179
  effectId: "background-on-hover",
6470
- options: { colorToken: "background" }
6180
+ options: { colorToken: unsafeAsOpaqueButtonColourToken("background") }
6471
6181
  }] }
6472
6182
  }
6473
6183
  },
@@ -6481,7 +6191,7 @@ var init_staticRecipes = __esmMin((() => {
6481
6191
  borderRadius: "rounded-full",
6482
6192
  effects: { hover: [{
6483
6193
  effectId: "background-on-hover",
6484
- options: { colorToken: "surface" }
6194
+ options: { colorToken: unsafeAsOpaqueButtonColourToken("surface") }
6485
6195
  }] }
6486
6196
  }
6487
6197
  },
@@ -6516,7 +6226,6 @@ var init_staticRecipes = __esmMin((() => {
6516
6226
  typography: "heading",
6517
6227
  fontWeight: 700,
6518
6228
  fontSize: "text-lg",
6519
- borderWidth: 2,
6520
6229
  hoverTransform: "none",
6521
6230
  hoverColor: "none"
6522
6231
  },
@@ -6551,7 +6260,7 @@ var init_staticRecipes = __esmMin((() => {
6551
6260
  elevation: "high",
6552
6261
  softness: "hard",
6553
6262
  position: "bottom-right",
6554
- colorToken: "text"
6263
+ colorToken: unsafeAsOpaqueButtonColourToken("text")
6555
6264
  },
6556
6265
  effects: { hover: [{ effectId: "press-down" }] }
6557
6266
  }
@@ -6569,7 +6278,7 @@ var init_staticRecipes = __esmMin((() => {
6569
6278
  elevation: "high",
6570
6279
  softness: "hard",
6571
6280
  position: "bottom-right",
6572
- colorToken: "secondary"
6281
+ colorToken: unsafeAsOpaqueButtonColourToken("secondary")
6573
6282
  },
6574
6283
  effects: { hover: [{ effectId: "press-down" }] }
6575
6284
  }
@@ -6632,7 +6341,6 @@ var init_staticRecipes = __esmMin((() => {
6632
6341
  cornerStyle: "rounded",
6633
6342
  textTransform: "uppercase",
6634
6343
  fontWeight: 600,
6635
- borderWidth: 1,
6636
6344
  hoverTransform: "none",
6637
6345
  hoverColor: "none",
6638
6346
  letterSpacing: "loose"
@@ -6668,7 +6376,7 @@ var init_staticRecipes = __esmMin((() => {
6668
6376
  effects: {
6669
6377
  hover: [{
6670
6378
  effectId: "background-on-hover",
6671
- options: { colorToken: "primary-100" }
6379
+ options: { colorToken: unsafeAsOpaqueButtonColourToken("primary-100") }
6672
6380
  }],
6673
6381
  active: [{
6674
6382
  effectId: "scale-down",
@@ -6688,7 +6396,7 @@ var init_staticRecipes = __esmMin((() => {
6688
6396
  border: { widthClass: "border" },
6689
6397
  effects: { hover: [{
6690
6398
  effectId: "background-on-hover",
6691
- options: { colorToken: "surface" }
6399
+ options: { colorToken: unsafeAsOpaqueButtonColourToken("surface") }
6692
6400
  }] }
6693
6401
  }
6694
6402
  },
@@ -6703,7 +6411,7 @@ var init_staticRecipes = __esmMin((() => {
6703
6411
  border: { widthClass: "border" },
6704
6412
  effects: { hover: [{
6705
6413
  effectId: "background-on-hover",
6706
- options: { colorToken: "muted" }
6414
+ options: { colorToken: unsafeAsOpaqueButtonColourToken("muted") }
6707
6415
  }] }
6708
6416
  }
6709
6417
  },
@@ -6720,7 +6428,6 @@ var init_staticRecipes = __esmMin((() => {
6720
6428
  effectId: "border-bottom-grow",
6721
6429
  options: {
6722
6430
  height: 1,
6723
- colorToken: "accent",
6724
6431
  origin: "left"
6725
6432
  }
6726
6433
  }] }
@@ -6828,18 +6535,10 @@ var init_presets$3 = __esmMin((() => {
6828
6535
  });
6829
6536
  }));
6830
6537
  //#endregion
6831
- //#region ../theme-core/src/buttons/effects/types.ts
6832
- var init_types$13 = __esmMin((() => {}));
6833
- //#endregion
6834
- //#region ../theme-core/src/buttons/core.ts
6835
- var init_core$2 = __esmMin((() => {
6836
- init_resolveButtonColourStates();
6837
- init_types$14();
6838
- }));
6839
- //#endregion
6840
6538
  //#region ../theme-core/src/buttons/index.ts
6841
6539
  var init_buttons = __esmMin((() => {
6842
- init_types$14();
6540
+ init_types$13();
6541
+ init_parseThemeForPersistence();
6843
6542
  init_classNames();
6844
6543
  init_generateButtonCss();
6845
6544
  init_resolveButtonColourStates();
@@ -6848,10 +6547,6 @@ var init_buttons = __esmMin((() => {
6848
6547
  init_constants$1();
6849
6548
  init_presets$3();
6850
6549
  init_styles();
6851
- init_types$13();
6852
- init_registry$8();
6853
- init_transform();
6854
- init_core$2();
6855
6550
  }));
6856
6551
  //#endregion
6857
6552
  //#region ../theme-core/src/cards/types.ts
@@ -6986,13 +6681,19 @@ var init_constants = __esmMin((() => {}));
6986
6681
  //#region ../theme-core/src/cards/generateDefaultCardSystem.ts
6987
6682
  var init_generateDefaultCardSystem = __esmMin((() => {}));
6988
6683
  //#endregion
6684
+ //#region ../theme-core/src/surfaces/index.ts
6685
+ var init_surfaces = __esmMin((() => {
6686
+ init_foregroundContract();
6687
+ init_foregroundRoles();
6688
+ }));
6689
+ //#endregion
6989
6690
  //#region ../theme-core/src/cards/generateCardCss.ts
6990
6691
  var init_generateCardCss = __esmMin((() => {
6991
6692
  init_surfaces();
6992
6693
  }));
6993
6694
  //#endregion
6994
6695
  //#region ../theme-core/src/cards/core.ts
6995
- var init_core$1 = __esmMin((() => {
6696
+ var init_core$2 = __esmMin((() => {
6996
6697
  init_surfaces();
6997
6698
  }));
6998
6699
  //#endregion
@@ -7002,7 +6703,7 @@ var init_cards = __esmMin((() => {
7002
6703
  init_constants();
7003
6704
  init_generateCardCss();
7004
6705
  init_generateDefaultCardSystem();
7005
- init_core$1();
6706
+ init_core$2();
7006
6707
  }));
7007
6708
  //#endregion
7008
6709
  //#region ../theme-core/src/accordions/types.ts
@@ -7798,6 +7499,107 @@ var init_rawStyleFields = __esmMin((() => {
7798
7499
  siteChromeBackgroundOverrideOwner = "site-chrome-editor";
7799
7500
  }));
7800
7501
  //#endregion
7502
+ //#region ../theme-core/src/utils/colorStyles.ts
7503
+ function parseToken(source) {
7504
+ const parts = parseColorTokenParts(source);
7505
+ if (parts.kind === "raw") return {
7506
+ token: source,
7507
+ raw: parts.value
7508
+ };
7509
+ if (parts.kind === "invalid") return { token: source };
7510
+ return {
7511
+ token: parts.token,
7512
+ opacityPercent: parts.opacityPercent === null ? void 0 : parts.opacityPercent
7513
+ };
7514
+ }
7515
+ function surfaceRoleForTextToken(token) {
7516
+ return Object.prototype.hasOwnProperty.call(SURFACE_TEXT_ROLE_BY_TOKEN, token) ? SURFACE_TEXT_ROLE_BY_TOKEN[token] : null;
7517
+ }
7518
+ /**
7519
+ * Converts a theme color token to a CSS rgb value.
7520
+ * This is the primary function for applying theme colors to CSS properties.
7521
+ *
7522
+ * @param token - Theme color token (semantic, with opacity, or raw)
7523
+ * @returns CSS color value (rgb with optional alpha, or raw CSS value)
7524
+ *
7525
+ * @example
7526
+ * rgbColorValue('primary') // => 'rgb(var(--tb-primary))'
7527
+ * rgbColorValue('surface/95') // => 'rgb(var(--tb-surface) / 0.95)'
7528
+ * rgbColorValue('raw:transparent') // => 'transparent'
7529
+ */
7530
+ function rgbColorValue(token) {
7531
+ const { token: baseToken, opacityPercent, raw } = parseToken(token);
7532
+ if (raw) return raw;
7533
+ const cssVar = `${COLOR_VAR_PREFIX}${baseToken}`;
7534
+ if (opacityPercent === void 0) return `rgb(var(${cssVar}))`;
7535
+ return `rgb(var(${cssVar}) / ${opacityPercent / 100})`;
7536
+ }
7537
+ /**
7538
+ * Creates a backgroundColor style object from a theme token.
7539
+ *
7540
+ * @param token - Theme color token
7541
+ * @returns CSSProperties with backgroundColor
7542
+ */
7543
+ function backgroundColorStyle(token) {
7544
+ return { backgroundColor: rgbColorValue(token) };
7545
+ }
7546
+ /**
7547
+ * Creates a text color style object from a theme token.
7548
+ *
7549
+ * @param token - Theme color token
7550
+ * @returns CSSProperties with color
7551
+ */
7552
+ function textColorStyle(token) {
7553
+ const parsed = parseToken(token);
7554
+ const surfaceRole = parsed.raw ? null : surfaceRoleForTextToken(parsed.token);
7555
+ if (surfaceRole) return { color: parsed.opacityPercent === void 0 ? surfaceForegroundValue(surfaceRole) : surfaceForegroundValueWithOpacity(surfaceRole, parsed.opacityPercent) };
7556
+ return { color: rgbColorValue(token) };
7557
+ }
7558
+ /**
7559
+ * Creates a border color style object from a theme token.
7560
+ *
7561
+ * @param token - Theme color token
7562
+ * @returns CSSProperties with borderColor
7563
+ */
7564
+ function borderColorStyle(token) {
7565
+ return { borderColor: rgbColorValue(token) };
7566
+ }
7567
+ /**
7568
+ * Merges multiple CSSProperties objects into a single object.
7569
+ * Later styles override earlier ones. Undefined values are filtered out.
7570
+ * Returns undefined if the merged result is empty.
7571
+ *
7572
+ * @param styles - Variable number of CSSProperties objects (can be undefined)
7573
+ * @returns Merged CSSProperties object, or undefined if empty
7574
+ *
7575
+ * @example
7576
+ * mergeStyles(
7577
+ * backgroundColorStyle('surface'),
7578
+ * textColorStyle('text'),
7579
+ * borderColorStyle('border')
7580
+ * )
7581
+ * // => { backgroundColor: '...', color: '...', borderColor: '...' }
7582
+ */
7583
+ function mergeStyles(...styles) {
7584
+ const merged = {};
7585
+ for (const style of styles) {
7586
+ if (!style) continue;
7587
+ Object.assign(merged, style);
7588
+ }
7589
+ return Object.keys(merged).length ? merged : void 0;
7590
+ }
7591
+ var COLOR_VAR_PREFIX, SURFACE_TEXT_ROLE_BY_TOKEN;
7592
+ var init_colorStyles = __esmMin((() => {
7593
+ init_surfaces();
7594
+ init_colorTokenParts();
7595
+ COLOR_VAR_PREFIX = "--tb-";
7596
+ SURFACE_TEXT_ROLE_BY_TOKEN = {
7597
+ text: "text",
7598
+ heading: "heading",
7599
+ mutedText: "supporting"
7600
+ };
7601
+ }));
7602
+ //#endregion
7801
7603
  //#region ../theme-core/src/utils/tokenOrColor.ts
7802
7604
  function isCssColorLiteral(value) {
7803
7605
  const trimmed = value.trim();
@@ -14521,6 +14323,11 @@ var init_site_styles = __esmMin((() => {
14521
14323
  //#region ../theme-core/src/footer/mode.ts
14522
14324
  var init_mode = __esmMin((() => {}));
14523
14325
  //#endregion
14326
+ //#region ../theme-core/src/styles/shadow.ts
14327
+ var init_shadow = __esmMin((() => {
14328
+ init_colorStyles();
14329
+ }));
14330
+ //#endregion
14524
14331
  //#region ../theme-core/src/accordions/generateAccordionCss.ts
14525
14332
  var init_generateAccordionCss = __esmMin((() => {
14526
14333
  init_types$11();
@@ -14542,6 +14349,7 @@ var init_generateInputCss = __esmMin((() => {
14542
14349
  //#region ../theme-core/src/navigation/generateNavLinkCSS.ts
14543
14350
  var init_generateNavLinkCSS = __esmMin((() => {
14544
14351
  init_types$8();
14352
+ init_generateEffectsCSS();
14545
14353
  })), NAV_LINK_PRESETS;
14546
14354
  var init_presets$1 = __esmMin((() => {
14547
14355
  NAV_LINK_PRESETS = {
@@ -15581,11 +15389,17 @@ var init_ResponsiveScope = __esmMin((() => {
15581
15389
  //#endregion
15582
15390
  //#region ../theme-core/src/fonts/index.ts
15583
15391
  var init_fonts = __esmMin((() => {}));
15392
+ //#endregion
15393
+ //#region ../theme-core/src/buttons/core.ts
15394
+ var init_core$1 = __esmMin((() => {
15395
+ init_resolveButtonColourStates();
15396
+ init_types$13();
15397
+ }));
15584
15398
  var init_buildThemeRuntimeFromBridge = __esmMin((() => {
15585
15399
  init_shadow();
15586
15400
  init_customCss();
15587
- init_core$2();
15588
15401
  init_core$1();
15402
+ init_core$2();
15589
15403
  init_status();
15590
15404
  init_blocks$2();
15591
15405
  z$1.object({
@@ -16029,8 +15843,14 @@ var init_portableMediaReferences = __esmMin((() => {}));
16029
15843
  //#region ../media-core/src/renderableMediaAsset.ts
16030
15844
  var init_renderableMediaAsset = __esmMin((() => {}));
16031
15845
  //#endregion
16032
- //#region ../media-core/src/legacyMediaValue.ts
16033
- var init_legacyMediaValue = __esmMin((() => {}));
15846
+ //#region ../media-core/src/contentMediaAudit.ts
15847
+ var init_contentMediaAudit = __esmMin((() => {}));
15848
+ //#endregion
15849
+ //#region ../media-core/src/contentMediaAuditFieldAdapter.ts
15850
+ var init_contentMediaAuditFieldAdapter = __esmMin((() => {}));
15851
+ //#endregion
15852
+ //#region ../media-core/src/contentMediaSnapshotAudit.ts
15853
+ var init_contentMediaSnapshotAudit = __esmMin((() => {}));
16034
15854
  //#endregion
16035
15855
  //#region ../media-core/src/index.ts
16036
15856
  var init_src$3 = __esmMin((() => {
@@ -16071,7 +15891,9 @@ var init_src$3 = __esmMin((() => {
16071
15891
  init_mediaUsageProjection();
16072
15892
  init_portableMediaReferences();
16073
15893
  init_renderableMediaAsset();
16074
- init_legacyMediaValue();
15894
+ init_contentMediaAudit();
15895
+ init_contentMediaAuditFieldAdapter();
15896
+ init_contentMediaSnapshotAudit();
16075
15897
  }));
16076
15898
  //#endregion
16077
15899
  //#region ../blocks/src/system/node/schema.ts
@@ -16321,6 +16143,16 @@ function isDisplayMediaKind(kind) {
16321
16143
  function assertNeverSelectSource(value) {
16322
16144
  throw new Error(`Unhandled select source: ${JSON.stringify(value)}`);
16323
16145
  }
16146
+ function hasMediaDefaultIdentifier(value) {
16147
+ return value !== null && typeof value === "object" && !Array.isArray(value) && typeof value.identifier === "string" && value.identifier.trim().length > 0;
16148
+ }
16149
+ function validateMediaFieldDefault(field, ctx) {
16150
+ if (field.defaultValue !== void 0 && field.defaultValue !== null && !hasMediaDefaultIdentifier(field.defaultValue)) ctx.addIssue({
16151
+ code: z$1.ZodIssueCode.custom,
16152
+ path: ["defaultValue"],
16153
+ message: `${field.type} defaultValue must be null or an object with a non-empty identifier`
16154
+ });
16155
+ }
16324
16156
  function getFieldSchemaInternal() {
16325
16157
  if (_fieldSchemaInternal) return _fieldSchemaInternal;
16326
16158
  _fieldSchemaInternal = z$1.discriminatedUnion("type", [
@@ -16389,7 +16221,7 @@ function createSdkSelectField(input) {
16389
16221
  }
16390
16222
  }));
16391
16223
  }
16392
- var visibilityLevels, MEDIA_KINDS, DISPLAY_MEDIA_KINDS, PUBLIC_FILE_FIELD_KINDS, siteOptionSources, mediaDeliverySchema, selectOptionSchema, selectSourceSchema, visibleWhenPredicateSchema, visibleWhenSchema, uiSchema, baseFieldSchema, textFieldSchema, richTextFieldSchema, inlineTextFieldSchema, mediaFieldSchema, fileFieldSchema, booleanFieldSchema, dateFieldSchema, timeFieldSchema, dateTimeFieldSchema, slugFieldSchema, urlFieldSchema, linkFieldSchema, selectFieldSchema, referenceFieldSchema, itemTypeSchema, repeaterFieldSchema, groupFieldSchema, modalFieldSchema, numberFieldSchema, tabDefinitionSchema, tabGroupFieldSchema, presetOptionSchema, presetOrCustomFieldSchema, contentTypeSelectFieldSchema, entryPickerFieldSchema, _fieldSchemaInternal, fieldSchema, slotSchema, typographyTokens, colorTokens, spacingTokens, radiusTokens, styleTokenSchema, behaviourSchema, quickFieldPrioritySchema, previewCustomizeManifestCurationSchema, blockCategoryEnum, blockContentSourceKinds, blockContentSourceSchema;
16224
+ var visibilityLevels, MEDIA_KINDS, DISPLAY_MEDIA_KINDS, DEFAULT_MEDIA_FIELD_KINDS, PUBLIC_FILE_FIELD_KINDS, siteOptionSources, mediaDeliverySchema, selectOptionSchema, selectSourceSchema, visibleWhenPredicateSchema, visibleWhenSchema, uiSchema, baseFieldSchema, textFieldSchema, richTextFieldSchema, inlineTextFieldSchema, mediaFieldSchema, fileFieldSchema, booleanFieldSchema, dateFieldSchema, timeFieldSchema, dateTimeFieldSchema, slugFieldSchema, urlFieldSchema, linkFieldSchema, selectFieldSchema, referenceFieldSchema, itemTypeSchema, repeaterFieldSchema, groupFieldSchema, modalFieldSchema, numberFieldSchema, tabDefinitionSchema, tabGroupFieldSchema, presetOptionSchema, presetOrCustomFieldSchema, contentTypeSelectFieldSchema, entryPickerFieldSchema, _fieldSchemaInternal, fieldSchema, slotSchema, typographyTokens, colorTokens, spacingTokens, radiusTokens, styleTokenSchema, behaviourSchema, quickFieldPrioritySchema, previewCustomizeManifestCurationSchema, blockCategoryEnum, blockContentSourceKinds, blockContentSourceSchema;
16393
16225
  var init_schema = __esmMin((() => {
16394
16226
  init_src$3();
16395
16227
  init_node();
@@ -16413,6 +16245,7 @@ var init_schema = __esmMin((() => {
16413
16245
  "video",
16414
16246
  "audio"
16415
16247
  ];
16248
+ DEFAULT_MEDIA_FIELD_KINDS = ["image"];
16416
16249
  PUBLIC_FILE_FIELD_KINDS = [
16417
16250
  "document",
16418
16251
  "spreadsheet",
@@ -16609,16 +16442,16 @@ var init_schema = __esmMin((() => {
16609
16442
  });
16610
16443
  mediaFieldSchema = baseFieldSchema.extend({
16611
16444
  type: z$1.literal("media"),
16612
- mediaKinds: z$1.array(z$1.enum(MEDIA_KINDS)).default(["image"]).transform((kinds) => {
16445
+ mediaKinds: z$1.array(z$1.enum(MEDIA_KINDS)).default([...DEFAULT_MEDIA_FIELD_KINDS]).transform((kinds) => {
16613
16446
  const displayKinds = kinds.filter(isDisplayMediaKind);
16614
- return displayKinds.length > 0 ? displayKinds : ["image"];
16447
+ return displayKinds.length > 0 ? displayKinds : [...DEFAULT_MEDIA_FIELD_KINDS];
16615
16448
  }),
16616
16449
  aspectRatio: z$1.string().optional()
16617
- });
16450
+ }).superRefine(validateMediaFieldDefault);
16618
16451
  fileFieldSchema = baseFieldSchema.extend({
16619
16452
  type: z$1.literal("file"),
16620
16453
  fileKinds: z$1.array(z$1.enum(PUBLIC_FILE_FIELD_KINDS)).default([...PUBLIC_FILE_FIELD_KINDS])
16621
- });
16454
+ }).superRefine(validateMediaFieldDefault);
16622
16455
  booleanFieldSchema = baseFieldSchema.extend({ type: z$1.literal("boolean") });
16623
16456
  dateFieldSchema = baseFieldSchema.extend({ type: z$1.literal("date") });
16624
16457
  timeFieldSchema = baseFieldSchema.extend({ type: z$1.literal("time") });
@@ -17865,7 +17698,7 @@ function el$1(type, props, children, ...mods) {
17865
17698
  }
17866
17699
  return devValidate(node);
17867
17700
  }
17868
- function bind$2(from, options) {
17701
+ function bind$1(from, options) {
17869
17702
  return (node) => ({
17870
17703
  ...node,
17871
17704
  $bind: {
@@ -17877,7 +17710,7 @@ function bind$2(from, options) {
17877
17710
  }
17878
17711
  });
17879
17712
  }
17880
- function when$1(path, options) {
17713
+ function when(path, options) {
17881
17714
  return (node) => ({
17882
17715
  ...node,
17883
17716
  $when: {
@@ -17936,7 +17769,7 @@ function devValidate(node) {
17936
17769
  } catch {}
17937
17770
  return node;
17938
17771
  }
17939
- var section, headerSection, stack, inline, accordion, accordionItem, carousel, text, richText$1, icon, media, fileDownload, videoEmbed, button, link, form, bookingForm, eventRegistration, shop, productList, productDetail, cart, checkout, gifting, courseRegistration;
17772
+ var section, headerSection, stack, inline, accordion, accordionItem, carousel, text, richText, icon, media, fileDownload, videoEmbed, button, link, form, bookingForm, eventRegistration, shop, productList, productDetail, cart, checkout, gifting, courseRegistration;
17940
17773
  var init_builder$1 = __esmMin((() => {
17941
17774
  init_schema$1();
17942
17775
  init_types$5();
@@ -17949,7 +17782,7 @@ var init_builder$1 = __esmMin((() => {
17949
17782
  accordionItem = (props, children, ...mods) => el$1("accordionItem", props, children, ...mods);
17950
17783
  carousel = (props, children, ...mods) => el$1("carousel", props, children, ...mods);
17951
17784
  text = (props, ...mods) => el$1("text", props, void 0, ...mods);
17952
- richText$1 = (props, ...mods) => el$1("richText", props, void 0, ...mods);
17785
+ richText = (props, ...mods) => el$1("richText", props, void 0, ...mods);
17953
17786
  icon = (props, ...mods) => el$1("icon", props, void 0, ...mods);
17954
17787
  media = (props, ...mods) => el$1("media", props, void 0, ...mods);
17955
17788
  fileDownload = (props, ...mods) => el$1("file-download", props, void 0, ...mods);
@@ -18104,7 +17937,7 @@ function createBackgroundImageNode(path, baseClassName = "rb-absolute rb-z-neg-1
18104
17937
  videoPlayback: "background",
18105
17938
  ...options.loading ? { loading: options.loading } : {},
18106
17939
  ...options.fetchPriority ? { fetchPriority: options.fetchPriority } : {}
18107
- }, when$1(imagePath), bind$2(imagePath));
17940
+ }, when(imagePath), bind$1(imagePath));
18108
17941
  }
18109
17942
  /**
18110
17943
  * Creates a div node for rendering color/gradient overlays on background images.
@@ -18165,11 +17998,11 @@ function headingGroup(opts) {
18165
17998
  as: "p",
18166
17999
  className: eyebrowClassName(eyebrowClass),
18167
18000
  style: eyebrowStyle
18168
- }, when$1(eyebrowPath), bind$2(eyebrowPath)) : null, text({
18001
+ }, when(eyebrowPath), bind$1(eyebrowPath)) : null, text({
18169
18002
  as: "h2",
18170
18003
  className: titleClass,
18171
18004
  style: titleStyle
18172
- }, bind$2(titlePath))]);
18005
+ }, bind$1(titlePath))]);
18173
18006
  }
18174
18007
  var init_headingGroup = __esmMin((() => {
18175
18008
  init_builder$1();
@@ -18440,9 +18273,9 @@ function ctaButton$1(opts) {
18440
18273
  const iconLeftPath = opts?.iconLeftPath ?? `${base}.iconLeft`;
18441
18274
  const iconRightPath = opts?.iconRightPath ?? `${base}.iconRight`;
18442
18275
  const whenPath = opts?.whenPath ?? labelPath;
18443
- const leftIcon = icon({ className: "rb-mr-2 rb-h-4 rb-w-4 rb-inline-block" }, when$1(iconLeftPath), bind$2(iconLeftPath));
18444
- const rightIcon = icon({ className: "rb-ml-2 rb-h-4 rb-w-4 rb-inline-block" }, when$1(iconRightPath), bind$2(iconRightPath));
18445
- const label = text({ as: "span" }, bind$2(labelPath));
18276
+ const leftIcon = icon({ className: "rb-mr-2 rb-h-4 rb-w-4 rb-inline-block" }, when(iconLeftPath), bind$1(iconLeftPath));
18277
+ const rightIcon = icon({ className: "rb-ml-2 rb-h-4 rb-w-4 rb-inline-block" }, when(iconRightPath), bind$1(iconRightPath));
18278
+ const label = text({ as: "span" }, bind$1(labelPath));
18446
18279
  const node = button({
18447
18280
  variantId: { $bind: {
18448
18281
  from: variantPath,
@@ -18464,7 +18297,7 @@ function ctaButton$1(opts) {
18464
18297
  rightIcon
18465
18298
  ]);
18466
18299
  if (opts?.repeatFrom) return button(node.props ?? {}, node.children, repeat(opts.repeatFrom.collectionPath, opts.repeatFrom.itemName ?? base));
18467
- return button(node.props ?? {}, node.children, when$1(whenPath));
18300
+ return button(node.props ?? {}, node.children, when(whenPath));
18468
18301
  }
18469
18302
  var init_ctaButton = __esmMin((() => {
18470
18303
  init_builder$1();
@@ -18484,7 +18317,7 @@ function ctaRow(opts) {
18484
18317
  collectionPath,
18485
18318
  itemName: item
18486
18319
  }
18487
- })], when$1(collectionPath));
18320
+ })], when(collectionPath));
18488
18321
  }
18489
18322
  var init_ctaRow$1 = __esmMin((() => {
18490
18323
  init_builder$1();
@@ -18514,7 +18347,7 @@ function createCartFallbackLink(itemName, linkClassName) {
18514
18347
  } },
18515
18348
  linkRequired: true,
18516
18349
  "aria-label": { $bind: { from: `${itemName}.cart.ariaLabel` } }
18517
- }, [text({ as: "span" }, bind$2(`${itemName}.label`))], when$1(`${itemName}.cart`));
18350
+ }, [text({ as: "span" }, bind$1(`${itemName}.label`))], when(`${itemName}.cart`));
18518
18351
  }
18519
18352
  function createCartPlaceholder(opts) {
18520
18353
  const { itemName, className, context, fallbackLinkClassName } = opts;
@@ -18527,7 +18360,7 @@ function createCartPlaceholder(opts) {
18527
18360
  "data-nav-cart-visible-label": { $bind: { from: `${itemName}.cart.visibleLabel` } },
18528
18361
  "data-nav-cart-badge": { $bind: { from: `${itemName}.cart.badge` } },
18529
18362
  "data-nav-cart-checkout-href": { $bind: { from: `${itemName}.cart.checkoutHref` } }
18530
- }, [createCartFallbackLink(itemName, fallbackLinkClassName)], when$1(`${itemName}.cart`));
18363
+ }, [createCartFallbackLink(itemName, fallbackLinkClassName)], when(`${itemName}.cart`));
18531
18364
  }
18532
18365
  function navRow(opts) {
18533
18366
  const collectionPath = opts?.collectionPath ?? "menu.items";
@@ -18551,7 +18384,7 @@ function navRow(opts) {
18551
18384
  target: { $bind: { from: `${itemName}.target` } },
18552
18385
  rel: { $bind: { from: `${itemName}.rel` } },
18553
18386
  "data-active": { $bind: { from: `${itemName}.active` } }
18554
- }, [text({ as: "span" }, bind$2(`${itemName}.label`))], when$1(`${itemName}.children`, { not: true }));
18387
+ }, [text({ as: "span" }, bind$1(`${itemName}.label`))], when(`${itemName}.children`, { not: true }));
18555
18388
  const cartPlaceholder = createCartPlaceholder({
18556
18389
  itemName,
18557
18390
  className: "nav-cart-placeholder rb-inline-flex",
@@ -18572,7 +18405,7 @@ function navRow(opts) {
18572
18405
  target: { $bind: { from: `${childItemName}.target` } },
18573
18406
  rel: { $bind: { from: `${childItemName}.rel` } },
18574
18407
  "data-active": { $bind: { from: `${childItemName}.active` } }
18575
- }, [text({ as: "span" }, bind$2(`${childItemName}.label`))], repeat(`${itemName}.children`, childItemName));
18408
+ }, [text({ as: "span" }, bind$1(`${childItemName}.label`))], repeat(`${itemName}.children`, childItemName));
18576
18409
  const dropdown = el$1("div", { className: "nav-dropdown rb-relative" }, [button({
18577
18410
  type: "button",
18578
18411
  variantId: "",
@@ -18580,12 +18413,12 @@ function navRow(opts) {
18580
18413
  "aria-haspopup": "menu",
18581
18414
  "aria-expanded": "false",
18582
18415
  "aria-controls": dropdownMenuId
18583
- }, [text({ as: "span" }, bind$2(`${itemName}.label`)), dropdownCaret]), el$1("div", {
18416
+ }, [text({ as: "span" }, bind$1(`${itemName}.label`)), dropdownCaret]), el$1("div", {
18584
18417
  className: "nav-dropdown-menu rb-absolute rb-left-0 rb-top-full rb-z-50 rb-hidden rb-overflow-hidden",
18585
18418
  id: dropdownMenuId
18586
- }, [dropdownLinks])], when$1(`${itemName}.children`));
18419
+ }, [dropdownLinks])], when(`${itemName}.children`));
18587
18420
  const item = el$1("div", { className: "nav-row-item rb-relative" }, [
18588
- el$1("div", {}, [simpleLink], when$1(`${itemName}.cart`, { not: true })),
18421
+ el$1("div", {}, [simpleLink], when(`${itemName}.cart`, { not: true })),
18589
18422
  cartPlaceholder,
18590
18423
  dropdown
18591
18424
  ], repeat(collectionPath, itemName));
@@ -18593,7 +18426,7 @@ function navRow(opts) {
18593
18426
  gap,
18594
18427
  align,
18595
18428
  className
18596
- }, [item], when$1(collectionPath));
18429
+ }, [item], when(collectionPath));
18597
18430
  }
18598
18431
  function navColumn(opts) {
18599
18432
  const collectionPath = opts?.collectionPath ?? "menu.items";
@@ -18622,7 +18455,7 @@ function navColumn(opts) {
18622
18455
  target: { $bind: { from: `${itemName}.target` } },
18623
18456
  rel: { $bind: { from: `${itemName}.rel` } },
18624
18457
  "data-active": { $bind: { from: `${itemName}.active` } }
18625
- }, [text({ as: "span" }, bind$2(`${itemName}.label`))], when$1(`${itemName}.children`, { not: true }));
18458
+ }, [text({ as: "span" }, bind$1(`${itemName}.label`))], when(`${itemName}.children`, { not: true }));
18626
18459
  const cartPlaceholder = createCartPlaceholder({
18627
18460
  itemName,
18628
18461
  className: "nav-mobile-cart-placeholder rb-block rb-w-full",
@@ -18639,7 +18472,7 @@ function navColumn(opts) {
18639
18472
  target: { $bind: { from: `${childItemName}.target` } },
18640
18473
  rel: { $bind: { from: `${childItemName}.rel` } },
18641
18474
  "data-active": { $bind: { from: `${childItemName}.active` } }
18642
- }, [text({ as: "span" }, bind$2(`${childItemName}.label`))], repeat(`${itemName}.children`, childItemName));
18475
+ }, [text({ as: "span" }, bind$1(`${childItemName}.label`))], repeat(`${itemName}.children`, childItemName));
18643
18476
  const dropdown = el$1("div", {
18644
18477
  className: "nav-mobile-dropdown",
18645
18478
  "data-nav-mobile-dropdown": "true"
@@ -18650,13 +18483,13 @@ function navColumn(opts) {
18650
18483
  "aria-expanded": "false",
18651
18484
  "aria-controls": childrenId,
18652
18485
  "data-nav-mobile-trigger": "true"
18653
- }, [text({ as: "span" }, bind$2(`${itemName}.label`)), dropdownCaret]), el$1("div", {
18486
+ }, [text({ as: "span" }, bind$1(`${itemName}.label`)), dropdownCaret]), el$1("div", {
18654
18487
  className: childrenClassName,
18655
18488
  id: childrenId,
18656
18489
  "data-nav-mobile-children": "true"
18657
- }, [childLinks])], when$1(`${itemName}.children`));
18490
+ }, [childLinks])], when(`${itemName}.children`));
18658
18491
  const item = el$1("div", { className: "nav-mobile-item" }, [
18659
- el$1("div", {}, [simpleLink], when$1(`${itemName}.cart`, { not: true })),
18492
+ el$1("div", {}, [simpleLink], when(`${itemName}.cart`, { not: true })),
18660
18493
  cartPlaceholder,
18661
18494
  dropdown
18662
18495
  ], repeat(collectionPath, itemName));
@@ -18664,7 +18497,7 @@ function navColumn(opts) {
18664
18497
  className,
18665
18498
  gap: "sm",
18666
18499
  align: "stretch"
18667
- }, [item], when$1(collectionPath));
18500
+ }, [item], when(collectionPath));
18668
18501
  }
18669
18502
  var init_navRow = __esmMin((() => {
18670
18503
  init_builder$1();
@@ -18684,7 +18517,7 @@ function buildFooterNavAll(common) {
18684
18517
  target: { $bind: { from: `${itemName}.target` } },
18685
18518
  rel: { $bind: { from: `${itemName}.rel` } },
18686
18519
  "data-active": { $bind: { from: `${itemName}.active` } }
18687
- }, [text({ as: "span" }, bind$2(`${itemName}.label`))], when$1(`${itemName}.children`, { not: true }));
18520
+ }, [text({ as: "span" }, bind$1(`${itemName}.label`))], when(`${itemName}.children`, { not: true }));
18688
18521
  const childLinks = link({
18689
18522
  className: common.childLinkClassName,
18690
18523
  href: { $bind: {
@@ -18695,8 +18528,8 @@ function buildFooterNavAll(common) {
18695
18528
  target: { $bind: { from: `${childItemName}.target` } },
18696
18529
  rel: { $bind: { from: `${childItemName}.rel` } },
18697
18530
  "data-active": { $bind: { from: `${childItemName}.active` } }
18698
- }, [text({ as: "span" }, bind$2(`${childItemName}.label`))], repeat(`${itemName}.children`, childItemName));
18699
- const item = el$1("div", { className: "footer-nav-item" }, [simpleLink, el$1("div", { className: "footer-nav-group" }, [el$1("span", { className: common.labelClassName }, [text({ as: "span" }, bind$2(`${itemName}.label`))]), el$1("div", { className: "footer-nav-children rb-pl-4 rb-mt-1" }, [childLinks])], when$1(`${itemName}.children`))], repeat(collectionPath, itemName));
18531
+ }, [text({ as: "span" }, bind$1(`${childItemName}.label`))], repeat(`${itemName}.children`, childItemName));
18532
+ const item = el$1("div", { className: "footer-nav-item" }, [simpleLink, el$1("div", { className: "footer-nav-group" }, [el$1("span", { className: common.labelClassName }, [text({ as: "span" }, bind$1(`${itemName}.label`))]), el$1("div", { className: "footer-nav-children rb-pl-4 rb-mt-1" }, [childLinks])], when(`${itemName}.children`))], repeat(collectionPath, itemName));
18700
18533
  return stack({
18701
18534
  className: common.className,
18702
18535
  gap: common.gap,
@@ -18715,7 +18548,7 @@ function buildFooterNavLinksOnly(common) {
18715
18548
  target: { $bind: { from: `${itemName}.target` } },
18716
18549
  rel: { $bind: { from: `${itemName}.rel` } },
18717
18550
  "data-active": { $bind: { from: `${itemName}.active` } }
18718
- }, [text({ as: "span" }, bind$2(`${itemName}.label`))], when$1(`${itemName}.children`, { not: true }))], repeat(collectionPath, itemName), when$1(`${itemName}.children`, { not: true }));
18551
+ }, [text({ as: "span" }, bind$1(`${itemName}.label`))], when(`${itemName}.children`, { not: true }))], repeat(collectionPath, itemName), when(`${itemName}.children`, { not: true }));
18719
18552
  return stack({
18720
18553
  className: common.className,
18721
18554
  gap: common.gap,
@@ -18734,7 +18567,7 @@ function buildFooterNavFlatten(common) {
18734
18567
  target: { $bind: { from: `${itemName}.target` } },
18735
18568
  rel: { $bind: { from: `${itemName}.rel` } },
18736
18569
  "data-active": { $bind: { from: `${itemName}.active` } }
18737
- }, [text({ as: "span" }, bind$2(`${itemName}.label`))], when$1(`${itemName}.children`, { not: true })), link({
18570
+ }, [text({ as: "span" }, bind$1(`${itemName}.label`))], when(`${itemName}.children`, { not: true })), link({
18738
18571
  className: common.linkClassName,
18739
18572
  href: { $bind: {
18740
18573
  from: `${childItemName}.link`,
@@ -18744,7 +18577,7 @@ function buildFooterNavFlatten(common) {
18744
18577
  target: { $bind: { from: `${childItemName}.target` } },
18745
18578
  rel: { $bind: { from: `${childItemName}.rel` } },
18746
18579
  "data-active": { $bind: { from: `${childItemName}.active` } }
18747
- }, [text({ as: "span" }, bind$2(`${childItemName}.label`))], repeat(`${itemName}.children`, childItemName), when$1(`${itemName}.children`))], repeat(collectionPath, itemName));
18580
+ }, [text({ as: "span" }, bind$1(`${childItemName}.label`))], repeat(`${itemName}.children`, childItemName), when(`${itemName}.children`))], repeat(collectionPath, itemName));
18748
18581
  return stack({
18749
18582
  className: common.className,
18750
18583
  gap: common.gap,
@@ -19302,12 +19135,12 @@ function feedbackCallout(opts) {
19302
19135
  fallback: "h3"
19303
19136
  } },
19304
19137
  className: "feedback-callout__title",
19305
- style: textColorStyle$1("text")
19306
- }, when$1(titlePath), bind$2(titlePath)),
19307
- richText$1({
19138
+ style: textColorStyle("text")
19139
+ }, when(titlePath), bind$1(titlePath)),
19140
+ richText({
19308
19141
  className: "feedback-callout__body rb-prose rb-max-w-none",
19309
- style: textColorStyle$1("mutedText")
19310
- }, bind$2(bodyPath)),
19142
+ style: textColorStyle("mutedText")
19143
+ }, bind$1(bodyPath)),
19311
19144
  ctaRow({
19312
19145
  collectionPath: ctasPath,
19313
19146
  itemName: "cta",
@@ -19417,7 +19250,7 @@ var init_fragments$1 = __esmMin((() => {
19417
19250
  }));
19418
19251
  //#endregion
19419
19252
  //#region ../blocks/src/system/fragments/types.ts
19420
- function defineFragment$3(config) {
19253
+ function defineFragment$2(config) {
19421
19254
  const parsed = fragmentConfigSchema.parse(config);
19422
19255
  const fields = parseFieldDefinitions(parsed.fields);
19423
19256
  validateFieldDefinitions(fields, parsed.id);
@@ -19727,7 +19560,7 @@ var bodyCopyFragment;
19727
19560
  var init_bodyCopy = __esmMin((() => {
19728
19561
  init_types$4();
19729
19562
  init_builder$1();
19730
- bodyCopyFragment = defineFragment$3({
19563
+ bodyCopyFragment = defineFragment$2({
19731
19564
  id: "bodyCopy",
19732
19565
  title: "Body Copy",
19733
19566
  description: "Heading, rich text body, and alignment controls.",
@@ -19778,14 +19611,14 @@ var init_bodyCopy = __esmMin((() => {
19778
19611
  }],
19779
19612
  fallback: "body-copy-heading"
19780
19613
  } }
19781
- }, when$1("content.heading"), bind$2("content.heading")), richText$1({ className: { $bind: {
19614
+ }, when("content.heading"), bind$1("content.heading")), richText({ className: { $bind: {
19782
19615
  from: "content.alignment",
19783
19616
  transforms: [{
19784
19617
  id: "ui.bodyClassFromAlignment",
19785
19618
  options: { base: "body-copy-body rb-prose rb-max-w-none" }
19786
19619
  }],
19787
19620
  fallback: "body-copy-body rb-prose rb-max-w-none"
19788
- } } }, bind$2("content.body"))])
19621
+ } } }, bind$1("content.body"))])
19789
19622
  });
19790
19623
  }));
19791
19624
  //#endregion
@@ -19795,7 +19628,7 @@ var init_heroCopy = __esmMin((() => {
19795
19628
  init_types$4();
19796
19629
  init_builder$1();
19797
19630
  init_fragments$1();
19798
- heroCopyFragment = defineFragment$3({
19631
+ heroCopyFragment = defineFragment$2({
19799
19632
  id: "heroCopy",
19800
19633
  title: "Hero Copy",
19801
19634
  description: "Eyebrow, headline, and subheadline copy for hero layouts.",
@@ -19834,17 +19667,17 @@ var init_heroCopy = __esmMin((() => {
19834
19667
  text({
19835
19668
  as: "p",
19836
19669
  className: eyebrowClassName("rb-eyebrow hero-eyebrow")
19837
- }, when$1("content.eyebrow"), bind$2("content.eyebrow")),
19670
+ }, when("content.eyebrow"), bind$1("content.eyebrow")),
19838
19671
  text({
19839
19672
  as: "h1",
19840
19673
  className: "hero-headline heading-display",
19841
19674
  inlineTextFallbackPath: "headline",
19842
19675
  maxLength: 120
19843
- }, bind$2("content.headlineInline")),
19676
+ }, bind$1("content.headlineInline")),
19844
19677
  text({
19845
19678
  as: "p",
19846
19679
  className: "hero-subheadline"
19847
- }, when$1("content.subheadline"), bind$2("content.subheadline"))
19680
+ }, when("content.subheadline"), bind$1("content.subheadline"))
19848
19681
  ]
19849
19682
  });
19850
19683
  }));
@@ -19853,7 +19686,7 @@ var init_heroCopy = __esmMin((() => {
19853
19686
  var heroLayoutControlsFragment;
19854
19687
  var init_heroLayoutControls = __esmMin((() => {
19855
19688
  init_types$4();
19856
- heroLayoutControlsFragment = defineFragment$3({
19689
+ heroLayoutControlsFragment = defineFragment$2({
19857
19690
  id: "heroLayoutControls",
19858
19691
  title: "Hero Layout",
19859
19692
  description: "Title scale, alignment, and content width controls for hero layouts.",
@@ -20154,7 +19987,7 @@ var init_ctaRow = __esmMin((() => {
20154
19987
  init_types$4();
20155
19988
  init_fragments$1();
20156
19989
  init_ctas();
20157
- ctaRowFragment = defineFragment$3({
19990
+ ctaRowFragment = defineFragment$2({
20158
19991
  id: "ctaRow",
20159
19992
  title: "CTA Row",
20160
19993
  description: "Repeatable calls to action rendered inline.",
@@ -20210,7 +20043,7 @@ var init_heroCtaRow = __esmMin((() => {
20210
20043
  defaultSize: "lg"
20211
20044
  }
20212
20045
  })];
20213
- heroCtaRowFragment = defineFragment$3({
20046
+ heroCtaRowFragment = defineFragment$2({
20214
20047
  id: "heroCtaRow",
20215
20048
  title: "Hero CTAs",
20216
20049
  description: "Repeatable hero calls to action rendered inline.",
@@ -20234,7 +20067,7 @@ var init_ctaCopy = __esmMin((() => {
20234
20067
  init_types$4();
20235
20068
  init_fragments$1();
20236
20069
  init_builder$1();
20237
- ctaCopyFragment = defineFragment$3({
20070
+ ctaCopyFragment = defineFragment$2({
20238
20071
  id: "ctaCopy",
20239
20072
  title: "CTA Copy",
20240
20073
  description: "Eyebrow, title, and supporting rich text for CTA layouts.",
@@ -20264,7 +20097,7 @@ var init_ctaCopy = __esmMin((() => {
20264
20097
  eyebrowPath: "content.eyebrow",
20265
20098
  titlePath: "content.title",
20266
20099
  className: "cta-heading"
20267
- }), richText$1({ className: "cta-content rb-prose rb-mx-auto rb-max-w-none" }, when$1("content"), bind$2("content"))]
20100
+ }), richText({ className: "cta-content rb-prose rb-mx-auto rb-max-w-none" }, when("content"), bind$1("content"))]
20268
20101
  });
20269
20102
  }));
20270
20103
  //#endregion
@@ -20274,7 +20107,7 @@ var init_testimonialsHeading = __esmMin((() => {
20274
20107
  init_types$4();
20275
20108
  init_builder$1();
20276
20109
  init_colorStyles();
20277
- testimonialsHeadingFragment = defineFragment$3({
20110
+ testimonialsHeadingFragment = defineFragment$2({
20278
20111
  id: "testimonialsHeading",
20279
20112
  title: "Testimonials Heading",
20280
20113
  description: "Heading and subheading copy for testimonials section.",
@@ -20293,11 +20126,11 @@ var init_testimonialsHeading = __esmMin((() => {
20293
20126
  layout: [stack({
20294
20127
  gap: "md",
20295
20128
  className: "rb-mx-auto rb-max-w-2xl rb-text-center"
20296
- }, [text({ as: "h2" }, when$1("content.heading"), bind$2("content.heading")), text({
20129
+ }, [text({ as: "h2" }, when("content.heading"), bind$1("content.heading")), text({
20297
20130
  as: "p",
20298
20131
  className: "rb-prose rb-prose-lg rb-prose-xl-sm",
20299
- style: textColorStyle$1("mutedText")
20300
- }, when$1("content.subheading"), bind$2("content.subheading"))])]
20132
+ style: textColorStyle("mutedText")
20133
+ }, when("content.subheading"), bind$1("content.subheading"))])]
20301
20134
  });
20302
20135
  }));
20303
20136
  //#endregion
@@ -20310,16 +20143,16 @@ function buildAttributionNodes() {
20310
20143
  const name = text({
20311
20144
  as: "strong",
20312
20145
  className: "rb-block"
20313
- }, bind$2("testimonial.content.name", { fallback: "Anonymous" }));
20146
+ }, bind$1("testimonial.content.name", { fallback: "Anonymous" }));
20314
20147
  const jobTitle = text({
20315
20148
  as: "p",
20316
20149
  className: "rb-caption"
20317
- }, when$1("testimonial.content.jobTitle"), bind$2("testimonial.content.jobTitle"));
20150
+ }, when("testimonial.content.jobTitle"), bind$1("testimonial.content.jobTitle"));
20318
20151
  const company = text({
20319
20152
  as: "p",
20320
20153
  className: "rb-caption"
20321
- }, when$1("testimonial.content.company"), bind$2("testimonial.content.company"));
20322
- const avatar = media({ className: "rb-testimonial-avatar rb-object-cover" }, bind$2("testimonial.content.headshot", { transforms: [{ id: "media.fromUrl" }] }), when$1("testimonial.content.headshot"));
20154
+ }, when("testimonial.content.company"), bind$1("testimonial.content.company"));
20155
+ const avatar = media({ className: "rb-testimonial-avatar rb-object-cover" }, bind$1("testimonial.content.headshot", { transforms: [{ id: "media.fromUrl" }] }), when("testimonial.content.headshot"));
20323
20156
  const aboveCentered = stack({
20324
20157
  gap: "sm",
20325
20158
  className: "rb-items-center rb-text-center"
@@ -20332,8 +20165,8 @@ function buildAttributionNodes() {
20332
20165
  company
20333
20166
  ])]);
20334
20167
  return [
20335
- when$1("avatarLayout", { not: true })(aboveCentered),
20336
- when$1("avatarLayout", { equals: "above-centered" })(aboveCentered),
20168
+ when("avatarLayout", { not: true })(aboveCentered),
20169
+ when("avatarLayout", { equals: "above-centered" })(aboveCentered),
20337
20170
  inline({
20338
20171
  gap: "md",
20339
20172
  className: "rb-items-center"
@@ -20341,7 +20174,7 @@ function buildAttributionNodes() {
20341
20174
  name,
20342
20175
  jobTitle,
20343
20176
  company
20344
- ])], when$1("avatarLayout", { equals: "inline-left" })),
20177
+ ])], when("avatarLayout", { equals: "inline-left" })),
20345
20178
  stack({
20346
20179
  gap: "xs",
20347
20180
  className: "rb-text-center"
@@ -20349,7 +20182,7 @@ function buildAttributionNodes() {
20349
20182
  name,
20350
20183
  jobTitle,
20351
20184
  company
20352
- ], when$1("avatarLayout", { equals: "hidden" }))
20185
+ ], when("avatarLayout", { equals: "hidden" }))
20353
20186
  ];
20354
20187
  }
20355
20188
  /**
@@ -20364,7 +20197,7 @@ function buildTestimonialCard(...mods) {
20364
20197
  as: "span",
20365
20198
  className: "rb-testimonial-quote",
20366
20199
  "aria-hidden": "true"
20367
- }, props({ value: "“" })), richText$1({ className: "rb-prose rb-max-w-none" }, bind$2("testimonial.content.body"), when$1("testimonial.content.body"))]), el$1("div", { className: "rb-testimonial-attribution" }, buildAttributionNodes())])], {
20200
+ }, props({ value: "“" })), richText({ className: "rb-prose rb-max-w-none" }, bind$1("testimonial.content.body"), when("testimonial.content.body"))]), el$1("div", { className: "rb-testimonial-attribution" }, buildAttributionNodes())])], {
20368
20201
  stylesFrom: "content._cardStyles",
20369
20202
  backgroundFrom: "content._cardStyles.background",
20370
20203
  baseClassName: "rb-testimonial-card rb-relative rb-isolate rb-flex rb-h-full rb-flex-col rb-overflow-visible rb-p-8"
@@ -20418,7 +20251,7 @@ function buildResponsiveGridCards() {
20418
20251
  base: 1,
20419
20252
  sm: 2
20420
20253
  }
20421
- }, [buildTestimonialCard(repeat("data.entries", "testimonial"))], when$1("gridColumns", { equals: "2" })),
20254
+ }, [buildTestimonialCard(repeat("data.entries", "testimonial"))], when("gridColumns", { equals: "2" })),
20422
20255
  grid$4({
20423
20256
  gap: "lg",
20424
20257
  cols: {
@@ -20426,7 +20259,7 @@ function buildResponsiveGridCards() {
20426
20259
  sm: 2,
20427
20260
  lg: 3
20428
20261
  }
20429
- }, [buildTestimonialCard(repeat("data.entries", "testimonial"))], when$1("gridColumns", { equals: "3" })),
20262
+ }, [buildTestimonialCard(repeat("data.entries", "testimonial"))], when("gridColumns", { equals: "3" })),
20430
20263
  grid$4({
20431
20264
  gap: "lg",
20432
20265
  cols: {
@@ -20435,7 +20268,7 @@ function buildResponsiveGridCards() {
20435
20268
  lg: 3,
20436
20269
  xl: 4
20437
20270
  }
20438
- }, [buildTestimonialCard(repeat("data.entries", "testimonial"))], when$1("gridColumns", { equals: "4" })),
20271
+ }, [buildTestimonialCard(repeat("data.entries", "testimonial"))], when("gridColumns", { equals: "4" })),
20439
20272
  grid$4({
20440
20273
  gap: "lg",
20441
20274
  cols: {
@@ -20443,7 +20276,7 @@ function buildResponsiveGridCards() {
20443
20276
  sm: 2,
20444
20277
  lg: 3
20445
20278
  }
20446
- }, [buildTestimonialCard(repeat("data.entries", "testimonial"))], when$1("gridColumns", { not: true }))
20279
+ }, [buildTestimonialCard(repeat("data.entries", "testimonial"))], when("gridColumns", { not: true }))
20447
20280
  ];
20448
20281
  }
20449
20282
  /**
@@ -20485,14 +20318,14 @@ function buildFeaturedEditorialCard(variantClass, ...mods) {
20485
20318
  className: "rb-testimonials-fe-qmark",
20486
20319
  "aria-hidden": "true"
20487
20320
  }, props({ value: "“" }));
20488
- const quote = richText$1({ className: "rb-testimonials-fe-quote rb-max-w-none" }, bind$2("testimonial.content.body"), when$1("testimonial.content.body"));
20321
+ const quote = richText({ className: "rb-testimonials-fe-quote rb-max-w-none" }, bind$1("testimonial.content.body"), when("testimonial.content.body"));
20489
20322
  const meta = el$1("div", { className: "rb-testimonials-fe-meta" }, [text({
20490
20323
  as: "strong",
20491
20324
  className: "rb-testimonials-fe-name"
20492
- }, bind$2("testimonial.content.name", { fallback: "Anonymous" })), text({
20325
+ }, bind$1("testimonial.content.name", { fallback: "Anonymous" })), text({
20493
20326
  as: "span",
20494
20327
  className: "rb-testimonials-fe-context"
20495
- }, when$1("testimonial.content.jobTitle"), bind$2("testimonial.content.jobTitle"))]);
20328
+ }, when("testimonial.content.jobTitle"), bind$1("testimonial.content.jobTitle"))]);
20496
20329
  return el$1("div", { className: `rb-testimonials-fe-card ${variantClass}` }, [
20497
20330
  quoteMark,
20498
20331
  quote,
@@ -20511,7 +20344,7 @@ function buildFeaturedEditorialCard(variantClass, ...mods) {
20511
20344
  * index scope in context, so entry 0 produces no node in the rest column.
20512
20345
  */
20513
20346
  function buildFeaturedEditorialLayout() {
20514
- return el$1("div", { className: "rb-testimonials-fe-grid" }, [buildFeaturedEditorialCard("rb-testimonials-fe-card--feature", repeat("data.entries", "testimonial", { limit: 1 })), el$1("div", { className: "rb-testimonials-fe-col" }, [buildFeaturedEditorialCard("rb-testimonials-fe-card--plain", repeat("data.entries", "testimonial", { indexName: "tIndex" }), when$1("tIndex", {
20347
+ return el$1("div", { className: "rb-testimonials-fe-grid" }, [buildFeaturedEditorialCard("rb-testimonials-fe-card--feature", repeat("data.entries", "testimonial", { limit: 1 })), el$1("div", { className: "rb-testimonials-fe-col" }, [buildFeaturedEditorialCard("rb-testimonials-fe-card--plain", repeat("data.entries", "testimonial", { indexName: "tIndex" }), when("tIndex", {
20515
20348
  equals: 0,
20516
20349
  not: true
20517
20350
  }))])]);
@@ -20522,7 +20355,7 @@ var init_testimonialsCarousel = __esmMin((() => {
20522
20355
  init_builder$1();
20523
20356
  init_fragments$1();
20524
20357
  grid$4 = (props, children, ...mods) => el$1("grid", props ?? void 0, children ?? void 0, ...mods);
20525
- testimonialsCarouselFragment = defineFragment$3({
20358
+ testimonialsCarouselFragment = defineFragment$2({
20526
20359
  id: "testimonialsCarousel",
20527
20360
  title: "Testimonials",
20528
20361
  description: "Testimonials layout with variant support (carousel, grid).",
@@ -20764,7 +20597,7 @@ var formCopyFragment;
20764
20597
  var init_formCopy = __esmMin((() => {
20765
20598
  init_types$4();
20766
20599
  init_builder$1();
20767
- formCopyFragment = defineFragment$3({
20600
+ formCopyFragment = defineFragment$2({
20768
20601
  id: "formCopy",
20769
20602
  title: "Form Copy",
20770
20603
  description: "Optional title and introduction content for form blocks.",
@@ -20781,7 +20614,7 @@ var init_formCopy = __esmMin((() => {
20781
20614
  layout: [text({
20782
20615
  as: "h2",
20783
20616
  className: "form-copy-title"
20784
- }, when$1("content.title"), bind$2("content.title")), richText$1({ className: "form-copy-intro rb-prose rb-max-w-none" }, when$1("content.intro"), bind$2("content.intro"))]
20617
+ }, when("content.title"), bind$1("content.title")), richText({ className: "form-copy-intro rb-prose rb-max-w-none" }, when("content.intro"), bind$1("content.intro"))]
20785
20618
  });
20786
20619
  }));
20787
20620
  //#endregion
@@ -20806,7 +20639,7 @@ var init_formEmbed = __esmMin((() => {
20806
20639
  init_types$4();
20807
20640
  init_builder$1();
20808
20641
  init_api_bindings();
20809
- formEmbedFragment = defineFragment$3({
20642
+ formEmbedFragment = defineFragment$2({
20810
20643
  id: "formEmbed",
20811
20644
  title: "Form Embed",
20812
20645
  description: "Embeds a saved form with configurable submit button copy.",
@@ -20838,7 +20671,7 @@ var init_formEmbed = __esmMin((() => {
20838
20671
  spamProtectionEnabled: { $bind: { from: "$root.spamProtectionEnabled" } },
20839
20672
  submitLabel: { $bind: { from: "submitLabel" } },
20840
20673
  successMessage: { $bind: { from: "successMessage" } }
20841
- }), [], bind$2("data.form"))],
20674
+ }), [], bind$1("data.form"))],
20842
20675
  data: {
20843
20676
  key: "form",
20844
20677
  loader: {
@@ -20850,7 +20683,7 @@ var init_formEmbed = __esmMin((() => {
20850
20683
  });
20851
20684
  }));
20852
20685
  var init_bookingForm = __esmMin((() => {
20853
- defineFragment$2({
20686
+ defineFragment$1({
20854
20687
  id: "bookingForm",
20855
20688
  title: "Booking Form",
20856
20689
  description: "Interactive form for booking appointments with date/time selection.",
@@ -20895,40 +20728,7 @@ var init_bookingForm = __esmMin((() => {
20895
20728
  resourceId: { $bind: { from: "resourceId" } },
20896
20729
  submitLabel: { $bind: { from: "submitLabel" } },
20897
20730
  successMessage: { $bind: { from: "successMessage" } }
20898
- }), [], bind$1("data.availability"))]
20899
- });
20900
- }));
20901
- var init_footerBottomText = __esmMin((() => {
20902
- defineFragment$1({
20903
- id: "footerBottomText",
20904
- title: "Footer Text",
20905
- description: "Rich text content for the main footer body and optional bottom bar.",
20906
- fields: [{
20907
- id: "bodyText",
20908
- type: "richText",
20909
- label: "Body text",
20910
- description: "Appears in the main footer area.",
20911
- ui: { variant: "limited" }
20912
- }, {
20913
- id: "bottomText",
20914
- type: "richText",
20915
- label: "Bottom bar text",
20916
- description: "Appears in the optional footer bottom bar.",
20917
- ui: { variant: "limited" }
20918
- }],
20919
- layout: [richText({
20920
- className: "rb-prose rb-prose-sm rb-mx-auto rb-max-w-3xl rb-text-center",
20921
- style: textColorStyle("text/80")
20922
- }, when("bodyText"), bind("bodyText", { transforms: [{
20923
- id: "content.interpolateRichTextTokens",
20924
- options: { tokens: ["year", "site_name"] }
20925
- }] })), richText({
20926
- className: "rb-prose rb-prose-sm rb-mx-auto rb-max-w-3xl rb-text-center",
20927
- style: textColorStyle("text/80")
20928
- }, when("bottomText"), bind("bottomText", { transforms: [{
20929
- id: "content.interpolateRichTextTokens",
20930
- options: { tokens: ["year", "site_name"] }
20931
- }] }))]
20731
+ }), [], bind("data.availability"))]
20932
20732
  });
20933
20733
  }));
20934
20734
  var init_headerCta = __esmMin((() => {
@@ -20989,7 +20789,7 @@ var init_singleButton = __esmMin((() => {
20989
20789
  init_types$4();
20990
20790
  init_fragments$1();
20991
20791
  init_button();
20992
- singleButtonFragment = defineFragment$3({
20792
+ singleButtonFragment = defineFragment$2({
20993
20793
  id: "singleButton",
20994
20794
  title: "Single Button Content",
20995
20795
  description: "Heading and primary button for the single button block.",
@@ -21016,7 +20816,7 @@ var init_blogFeaturedPost = __esmMin((() => {
21016
20816
  init_fragments$1();
21017
20817
  init_builder$1();
21018
20818
  init_colorStyles();
21019
- blogFeaturedPostFragment = defineFragment$3({
20819
+ blogFeaturedPostFragment = defineFragment$2({
21020
20820
  id: "blogFeaturedPost",
21021
20821
  title: "Featured Blog Post",
21022
20822
  description: "Featured blog post card with title and preview content.",
@@ -21042,8 +20842,8 @@ var init_blogFeaturedPost = __esmMin((() => {
21042
20842
  className: "rb-md-w-1/3"
21043
20843
  }, [text({
21044
20844
  as: "h2",
21045
- style: textColorStyle$1("heading")
21046
- }, bind$2("title", { fallback: "Latest post" }))]), stack({
20845
+ style: textColorStyle("heading")
20846
+ }, bind$1("title", { fallback: "Latest post" }))]), stack({
21047
20847
  gap: "md",
21048
20848
  className: "rb-flex-1"
21049
20849
  }, [stack({
@@ -21054,21 +20854,21 @@ var init_blogFeaturedPost = __esmMin((() => {
21054
20854
  className: "rb-block rb-overflow-hidden rb-rounded-xl rb-border",
21055
20855
  style: borderColorStyle("border/60"),
21056
20856
  href: { $bind: { from: "post.path" } }
21057
- }, [media({ className: "rb-h-56 rb-w-full rb-object-cover" }, bind$2("post.image", { transforms: [{ id: "media.fromUrl" }] }))], when$1("post.image")), stack({ gap: "sm" }, [
20857
+ }, [media({ className: "rb-h-56 rb-w-full rb-object-cover" }, bind$1("post.image", { transforms: [{ id: "media.fromUrl" }] }))], when("post.image")), stack({ gap: "sm" }, [
21058
20858
  link({
21059
20859
  className: "rb-block hover:rb-opacity-80",
21060
- style: textColorStyle$1("heading"),
20860
+ style: textColorStyle("heading"),
21061
20861
  href: { $bind: { from: "post.path" } }
21062
- }, [text({ as: "h2" }, bind$2("post.title"))]),
20862
+ }, [text({ as: "h2" }, bind$1("post.title"))]),
21063
20863
  text({
21064
20864
  as: "p",
21065
20865
  className: "rb-caption",
21066
- style: textColorStyle$1("mutedText")
21067
- }, when$1("post.publishedAt"), bind$2("post.publishedAt", { transforms: [{ id: "date.formatShort" }] })),
20866
+ style: textColorStyle("mutedText")
20867
+ }, when("post.publishedAt"), bind$1("post.publishedAt", { transforms: [{ id: "date.formatShort" }] })),
21068
20868
  text({
21069
20869
  as: "p",
21070
- style: textColorStyle$1("text/80")
21071
- }, bind$2("post.excerpt", { fallback: "Select a blog post to display its preview." })),
20870
+ style: textColorStyle("text/80")
20871
+ }, bind$1("post.excerpt", { fallback: "Select a blog post to display its preview." })),
21072
20872
  button({
21073
20873
  className: "rb-self-start",
21074
20874
  href: { $bind: { from: "post.path" } },
@@ -21076,11 +20876,11 @@ var init_blogFeaturedPost = __esmMin((() => {
21076
20876
  size: "sm",
21077
20877
  linkRequired: true
21078
20878
  }, [text({ as: "span" }, props({ value: "Read more" }))])
21079
- ])], when$1("post")), stack({
20879
+ ])], when("post")), stack({
21080
20880
  gap: "sm",
21081
20881
  className: "rb-rounded-xl rb-border rb-border-dashed rb-p-6",
21082
- style: mergeStyles(borderColorStyle("border"), backgroundColorStyle("surface"), textColorStyle$1("mutedText"))
21083
- }, [text({ as: "p" }, props({ value: "Select a blog post to display its preview." }))], when$1("post", { not: true }))])], {
20882
+ style: mergeStyles(borderColorStyle("border"), backgroundColorStyle("surface"), textColorStyle("mutedText"))
20883
+ }, [text({ as: "p" }, props({ value: "Select a blog post to display its preview." }))], when("post", { not: true }))])], {
21084
20884
  gap: "lg",
21085
20885
  className: "rb-w-full rb-md-flex-row rb-md-items-start rb-md-gap-10"
21086
20886
  })],
@@ -21108,15 +20908,15 @@ function faqHeadingLayout() {
21108
20908
  text({
21109
20909
  as: "p",
21110
20910
  className: eyebrowClassName("faq-eyebrow rb-eyebrow heading-eyebrow")
21111
- }, when$1("content.eyebrow"), bind$2("content.eyebrow")),
20911
+ }, when("content.eyebrow"), bind$1("content.eyebrow")),
21112
20912
  text({
21113
20913
  as: "h2",
21114
20914
  className: "faq-title"
21115
- }, when$1("content.title"), bind$2("content.title")),
21116
- richText$1({
20915
+ }, when("content.title"), bind$1("content.title")),
20916
+ richText({
21117
20917
  className: "faq-description rb-prose rb-mx-auto rb-max-w-none",
21118
- style: textColorStyle$1("mutedText")
21119
- }, when$1("content.description"), bind$2("content.description"))
20918
+ style: textColorStyle("mutedText")
20919
+ }, when("content.description"), bind$1("content.description"))
21120
20920
  ]);
21121
20921
  }
21122
20922
  var faqHeadingFragment;
@@ -21125,7 +20925,7 @@ var init_faqHeading = __esmMin((() => {
21125
20925
  init_builder$1();
21126
20926
  init_fragments$1();
21127
20927
  init_colorStyles();
21128
- faqHeadingFragment = defineFragment$3({
20928
+ faqHeadingFragment = defineFragment$2({
21129
20929
  id: "faqHeading",
21130
20930
  title: "FAQ Heading",
21131
20931
  description: "Optional eyebrow, title, and description for FAQ sections.",
@@ -21194,7 +20994,7 @@ var faqAccordionFragment;
21194
20994
  var init_faqAccordion = __esmMin((() => {
21195
20995
  init_builder$1();
21196
20996
  init_types$4();
21197
- faqAccordionFragment = defineFragment$3({
20997
+ faqAccordionFragment = defineFragment$2({
21198
20998
  id: "faqAccordion",
21199
20999
  title: "FAQ Accordion",
21200
21000
  description: "Expandable list of question and answer pairs.",
@@ -21229,7 +21029,7 @@ var newsletterCopyFragment;
21229
21029
  var init_newsletterCopy = __esmMin((() => {
21230
21030
  init_types$4();
21231
21031
  init_builder$1();
21232
- newsletterCopyFragment = defineFragment$3({
21032
+ newsletterCopyFragment = defineFragment$2({
21233
21033
  id: "newsletterCopy",
21234
21034
  title: "Newsletter Copy",
21235
21035
  description: "Optional title and description for newsletter signup blocks.",
@@ -21247,7 +21047,7 @@ var init_newsletterCopy = __esmMin((() => {
21247
21047
  layout: [text({
21248
21048
  as: "h2",
21249
21049
  className: "newsletter-copy-title"
21250
- }, when$1("content.title"), bind$2("content.title")), richText$1({ className: "newsletter-copy-subtitle rb-prose rb-max-w-none" }, when$1("content.subtitle"), bind$2("content.subtitle"))]
21050
+ }, when("content.title"), bind$1("content.title")), richText({ className: "newsletter-copy-subtitle rb-prose rb-max-w-none" }, when("content.subtitle"), bind$1("content.subtitle"))]
21251
21051
  });
21252
21052
  }));
21253
21053
  //#endregion
@@ -21258,7 +21058,7 @@ var init_newsletterForm = __esmMin((() => {
21258
21058
  init_builder$1();
21259
21059
  init_api_bindings();
21260
21060
  init_button();
21261
- newsletterFormFragment = defineFragment$3({
21061
+ newsletterFormFragment = defineFragment$2({
21262
21062
  id: "newsletterForm",
21263
21063
  title: "Newsletter Form",
21264
21064
  description: "Newsletter subscription form with preset field configurations.",
@@ -21424,7 +21224,7 @@ var init_card = __esmMin((() => {
21424
21224
  value,
21425
21225
  label: value === "default" ? "Default" : "Alternative"
21426
21226
  }));
21427
- cardFragment = defineFragment$3({
21227
+ cardFragment = defineFragment$2({
21428
21228
  id: "card",
21429
21229
  title: "Card",
21430
21230
  description: "Content card with optional media, title, body, and action buttons",
@@ -21515,18 +21315,18 @@ var init_card = __esmMin((() => {
21515
21315
  }, [media({
21516
21316
  className: "card-media rb-w-full rb-h-auto rb-object-cover",
21517
21317
  style: { aspectRatio: { $bind: { from: "aspectRatio" } } }
21518
- }, when$1("media"), bind$2("media")), stack({
21318
+ }, when("media"), bind$1("media")), stack({
21519
21319
  gap: "sm",
21520
21320
  className: "card-content"
21521
21321
  }, [
21522
21322
  text({
21523
21323
  as: "h3",
21524
21324
  className: "card-title"
21525
- }, bind$2("title")),
21526
- richText$1({
21325
+ }, bind$1("title")),
21326
+ richText({
21527
21327
  className: "card-body rb-prose rb-max-w-none",
21528
- style: textColorStyle$1("mutedText")
21529
- }, when$1("body"), bind$2("body")),
21328
+ style: textColorStyle("mutedText")
21329
+ }, when("body"), bind$1("body")),
21530
21330
  ctaRow({
21531
21331
  collectionPath: "ctas",
21532
21332
  itemName: "cta",
@@ -21543,7 +21343,7 @@ var headingFragment;
21543
21343
  var init_heading = __esmMin((() => {
21544
21344
  init_types$4();
21545
21345
  init_builder$1();
21546
- headingFragment = defineFragment$3({
21346
+ headingFragment = defineFragment$2({
21547
21347
  id: "heading",
21548
21348
  title: "Heading",
21549
21349
  description: "Text heading",
@@ -21579,7 +21379,7 @@ var init_heading = __esmMin((() => {
21579
21379
  layout: text({
21580
21380
  as: { $bind: { from: "level" } },
21581
21381
  className: "fragment-heading"
21582
- }, bind$2("text"))
21382
+ }, bind$1("text"))
21583
21383
  });
21584
21384
  }));
21585
21385
  //#endregion
@@ -21588,7 +21388,7 @@ var richTextFragment;
21588
21388
  var init_richText = __esmMin((() => {
21589
21389
  init_types$4();
21590
21390
  init_builder$1();
21591
- richTextFragment = defineFragment$3({
21391
+ richTextFragment = defineFragment$2({
21592
21392
  id: "richText",
21593
21393
  title: "Rich Text",
21594
21394
  description: "Formatted text with markdown",
@@ -21600,7 +21400,7 @@ var init_richText = __esmMin((() => {
21600
21400
  label: "Content",
21601
21401
  required: true
21602
21402
  }],
21603
- layout: richText$1({ className: "fragment-richtext rb-prose rb-prose-neutral" }, bind$2("content"))
21403
+ layout: richText({ className: "fragment-richtext rb-prose rb-prose-neutral" }, bind$1("content"))
21604
21404
  });
21605
21405
  }));
21606
21406
  //#endregion
@@ -21610,7 +21410,7 @@ var init_image = __esmMin((() => {
21610
21410
  init_types$4();
21611
21411
  init_builder$1();
21612
21412
  init_colorStyles();
21613
- imageFragment = defineFragment$3({
21413
+ imageFragment = defineFragment$2({
21614
21414
  id: "image",
21615
21415
  title: "Image",
21616
21416
  description: "Image with optional caption",
@@ -21700,11 +21500,11 @@ var init_image = __esmMin((() => {
21700
21500
  resize: "contain"
21701
21501
  }
21702
21502
  } }
21703
- }, bind$2("image"))]), text({
21503
+ }, bind$1("image"))]), text({
21704
21504
  as: "p",
21705
21505
  className: "image-caption rb-caption rb-text-center",
21706
- style: textColorStyle$1("mutedText")
21707
- }, when$1("caption"), bind$2("caption"))])
21506
+ style: textColorStyle("mutedText")
21507
+ }, when("caption"), bind$1("caption"))])
21708
21508
  });
21709
21509
  }));
21710
21510
  //#endregion
@@ -21714,7 +21514,7 @@ var init_videoEmbed = __esmMin((() => {
21714
21514
  init_types$4();
21715
21515
  init_builder$1();
21716
21516
  init_colorStyles();
21717
- videoEmbedFragment = defineFragment$3({
21517
+ videoEmbedFragment = defineFragment$2({
21718
21518
  id: "videoEmbed",
21719
21519
  title: "Video",
21720
21520
  description: "YouTube, Vimeo, or Instagram embed",
@@ -21764,11 +21564,11 @@ var init_videoEmbed = __esmMin((() => {
21764
21564
  layout: stack({ gap: "sm" }, [videoEmbed({
21765
21565
  className: "fragment-video rb-w-full rb-rounded-lg rb-overflow-hidden",
21766
21566
  style: { aspectRatio: { $bind: { from: "aspectRatio" } } }
21767
- }, bind$2("url")), text({
21567
+ }, bind$1("url")), text({
21768
21568
  as: "p",
21769
21569
  className: "video-caption rb-caption rb-text-center",
21770
- style: textColorStyle$1("mutedText")
21771
- }, when$1("caption"), bind$2("caption"))])
21570
+ style: textColorStyle("mutedText")
21571
+ }, when("caption"), bind$1("caption"))])
21772
21572
  });
21773
21573
  }));
21774
21574
  //#endregion
@@ -21777,7 +21577,7 @@ var quoteFragment;
21777
21577
  var init_quote = __esmMin((() => {
21778
21578
  init_types$4();
21779
21579
  init_builder$1();
21780
- quoteFragment = defineFragment$3({
21580
+ quoteFragment = defineFragment$2({
21781
21581
  id: "quote",
21782
21582
  title: "Quote",
21783
21583
  description: "Quoted text with optional attribution",
@@ -21808,16 +21608,16 @@ var init_quote = __esmMin((() => {
21808
21608
  layout: stack({
21809
21609
  gap: "md",
21810
21610
  className: "fragment-quote rb-h-full rb-flex-1"
21811
- }, [richText$1({ className: "fragment-quote-body rb-prose rb-prose-neutral rb-max-w-none" }, bind$2("quote")), stack({
21611
+ }, [richText({ className: "fragment-quote-body rb-prose rb-prose-neutral rb-max-w-none" }, bind$1("quote")), stack({
21812
21612
  gap: "xs",
21813
21613
  className: "fragment-quote-attribution rb-mt-auto"
21814
21614
  }, [text({
21815
21615
  as: "strong",
21816
21616
  className: "rb-block"
21817
- }, bind$2("attribution"), when$1("attribution")), text({
21617
+ }, bind$1("attribution"), when("attribution")), text({
21818
21618
  as: "p",
21819
21619
  className: "rb-caption rb-opacity-80"
21820
- }, bind$2("attributionMeta"), when$1("attributionMeta"))])])
21620
+ }, bind$1("attributionMeta"), when("attributionMeta"))])])
21821
21621
  });
21822
21622
  }));
21823
21623
  //#endregion
@@ -21827,7 +21627,7 @@ var init_feedbackCallout = __esmMin((() => {
21827
21627
  init_types$4();
21828
21628
  init_ctas();
21829
21629
  init_fragments$1();
21830
- feedbackCalloutFragment = defineFragment$3({
21630
+ feedbackCalloutFragment = defineFragment$2({
21831
21631
  id: "feedbackCallout",
21832
21632
  title: "Feedback Callout",
21833
21633
  description: "Static authored callout for info, success, warning, and error messaging. For live validation or status updates, use runtime feedback primitives instead.",
@@ -21928,7 +21728,7 @@ var init_sectionState = __esmMin((() => {
21928
21728
  "coming-soon": "Coming soon",
21929
21729
  "no-results": "No results"
21930
21730
  };
21931
- sectionStateFragment = defineFragment$3({
21731
+ sectionStateFragment = defineFragment$2({
21932
21732
  id: "sectionState",
21933
21733
  title: "Section State",
21934
21734
  description: "Narrow authored section helper for empty, unavailable, coming-soon, and no-results states. This is for static page messaging, not live workflow status.",
@@ -22017,7 +21817,7 @@ var init_columnContent = __esmMin((() => {
22017
21817
  init_feedbackCallout();
22018
21818
  init_sectionState();
22019
21819
  init_node();
22020
- columnContentFragment = defineFragment$3({
21820
+ columnContentFragment = defineFragment$2({
22021
21821
  id: "columnContent",
22022
21822
  title: "Column",
22023
21823
  description: "A single column with customizable content",
@@ -22060,7 +21860,7 @@ var teamMemberFragment;
22060
21860
  var init_teamMember = __esmMin((() => {
22061
21861
  init_types$4();
22062
21862
  init_builder$1();
22063
- teamMemberFragment = defineFragment$3({
21863
+ teamMemberFragment = defineFragment$2({
22064
21864
  id: "teamMember",
22065
21865
  title: "Team member",
22066
21866
  description: "Team member with photo, name, role, and bio.",
@@ -22109,17 +21909,17 @@ var init_teamMember = __esmMin((() => {
22109
21909
  quality: 85,
22110
21910
  resize: "cover"
22111
21911
  }
22112
- }, when$1("photo"), bind$2("photo"))]),
21912
+ }, when("photo"), bind$1("photo"))]),
22113
21913
  link({
22114
21914
  href: { $bind: { from: "profilePath" } },
22115
21915
  className: "rb-team-member-name-link"
22116
- }, [text({ as: "h3" }, bind$2("name"))], when$1("profilePath")),
22117
- text({ as: "h3" }, when$1("profilePath", { not: true }), bind$2("name")),
21916
+ }, [text({ as: "h3" }, bind$1("name"))], when("profilePath")),
21917
+ text({ as: "h3" }, when("profilePath", { not: true }), bind$1("name")),
22118
21918
  text({
22119
21919
  as: "p",
22120
21920
  className: "rb-team-member-role"
22121
- }, when$1("role"), bind$2("role")),
22122
- richText$1({ className: "rb-prose rb-max-w-none" }, when$1("bio"), bind$2("bio"))
21921
+ }, when("role"), bind$1("role")),
21922
+ richText({ className: "rb-prose rb-max-w-none" }, when("bio"), bind$1("bio"))
22123
21923
  ])
22124
21924
  });
22125
21925
  }));
@@ -22141,7 +21941,6 @@ var init_fragments = __esmMin((() => {
22141
21941
  init_formCopy();
22142
21942
  init_formEmbed();
22143
21943
  init_bookingForm();
22144
- init_footerBottomText();
22145
21944
  init_headerCta();
22146
21945
  init_singleButton();
22147
21946
  init_blogFeaturedPost();
@@ -22325,7 +22124,7 @@ function heroSplitImagePane() {
22325
22124
  }, [media({
22326
22125
  className: "rb-absolute rb-inset-0 rb-h-full rb-w-full rb-object-cover",
22327
22126
  ...heroPriorityMediaProps
22328
- }, when$1("_sectionStyles.background.image"), bind$2("_sectionStyles.background.image"))]);
22127
+ }, when("_sectionStyles.background.image"), bind$1("_sectionStyles.background.image"))]);
22329
22128
  }
22330
22129
  function splitLayoutWith(children) {
22331
22130
  return styledSection({
@@ -22582,10 +22381,10 @@ function introHeading(className) {
22582
22381
  return text({
22583
22382
  as: "h2",
22584
22383
  className
22585
- }, when$1("content.title"), bind$2("content.title"));
22384
+ }, when("content.title"), bind$1("content.title"));
22586
22385
  }
22587
22386
  function introBody(className = "rb-prose rb-max-w-none") {
22588
- return richText$1({ className }, bind$2("content.body"));
22387
+ return richText({ className }, bind$1("content.body"));
22589
22388
  }
22590
22389
  function introCtas(justify = "start") {
22591
22390
  return ctaRow({
@@ -22626,7 +22425,7 @@ var init_intro = __esmMin((() => {
22626
22425
  from: "content.aspectRatio",
22627
22426
  fallback: "1/1"
22628
22427
  } } }
22629
- }, bind$2("content.media"));
22428
+ }, bind$1("content.media"));
22630
22429
  centeredCopyLayout = styledSection({
22631
22430
  children: styledContainer({
22632
22431
  rootType: "stack",
@@ -22656,7 +22455,7 @@ var init_intro = __esmMin((() => {
22656
22455
  gap: "md",
22657
22456
  className: "rb-intro-copy rb-max-w-xl"
22658
22457
  }, [introBody(), introCtas("start")]),
22659
- el$1("div", { className: "rb-intro-media-wrap rb-w-full" }, [introMedia], when$1("content.media"))
22458
+ el$1("div", { className: "rb-intro-media-wrap rb-w-full" }, [introMedia], when("content.media"))
22660
22459
  ])] }),
22661
22460
  baseClass: "",
22662
22461
  spacing: "medium"
@@ -22994,41 +22793,41 @@ function postTitle() {
22994
22793
  return link({
22995
22794
  href: { $bind: { from: "post.path" } },
22996
22795
  className: "rb-block rb-transition-colors hover:rb-opacity-80",
22997
- style: textColorStyle$1("heading")
22998
- }, [text({ as: "h3" }, bind$2("post.title"))]);
22796
+ style: textColorStyle("heading")
22797
+ }, [text({ as: "h3" }, bind$1("post.title"))]);
22999
22798
  }
23000
22799
  function postDate() {
23001
22800
  return text({
23002
22801
  as: "time",
23003
22802
  className: "rb-caption rb-italic",
23004
- style: textColorStyle$1("mutedText")
23005
- }, bind$2("post.publishedAt", { transforms: [{ id: "date.formatShort" }] }), when$1("post.publishedAt"), when$1("content.showDates"));
22803
+ style: textColorStyle("mutedText")
22804
+ }, bind$1("post.publishedAt", { transforms: [{ id: "date.formatShort" }] }), when("post.publishedAt"), when("content.showDates"));
23006
22805
  }
23007
22806
  function postExcerpt(className) {
23008
22807
  return text({
23009
22808
  as: "p",
23010
22809
  className,
23011
- style: textColorStyle$1("text/80")
23012
- }, bind$2("post.excerpt"), when$1("post.excerpt"), when$1("content.showExcerpts"));
22810
+ style: textColorStyle("text/80")
22811
+ }, bind$1("post.excerpt"), when("post.excerpt"), when("content.showExcerpts"));
23013
22812
  }
23014
22813
  function postReadMore() {
23015
22814
  return button({
23016
22815
  href: { $bind: { from: "post.path" } },
23017
22816
  className: "rb-self-start",
23018
22817
  variantId: "ghost"
23019
- }, [text({ as: "span" }, bind$2("content.readMoreText", { fallback: "Read more" }), when$1("content.readMoreText")), text({
22818
+ }, [text({ as: "span" }, bind$1("content.readMoreText", { fallback: "Read more" }), when("content.readMoreText")), text({
23020
22819
  as: "span",
23021
22820
  value: "Read more"
23022
- }, when$1("content.readMoreText", { not: true }))]);
22821
+ }, when("content.readMoreText", { not: true }))]);
23023
22822
  }
23024
22823
  function postImageLink(className, mediaOptions) {
23025
22824
  return link({
23026
22825
  className: "rb-block rb-overflow-hidden",
23027
22826
  href: { $bind: { from: "post.path" } }
23028
- }, [media({ className }, bind$2("post.image", { transforms: [{
22827
+ }, [media({ className }, bind$1("post.image", { transforms: [{
23029
22828
  id: "media.fromUrl",
23030
22829
  options: mediaOptions
23031
- }] }))], when$1("post.image"), when$1("content.showImages"));
22830
+ }] }))], when("post.image"), when("content.showImages"));
23032
22831
  }
23033
22832
  function postCard(children, ...mods) {
23034
22833
  return styledCard(children, {
@@ -23108,8 +22907,8 @@ var init_blog_listing = __esmMin((() => {
23108
22907
  emptyState$2 = {
23109
22908
  ...styledCard([text({
23110
22909
  as: "p",
23111
- style: textColorStyle$1("mutedText")
23112
- }, bind$2("content.emptyMessage", { fallback: "No posts published yet." }))], {
22910
+ style: textColorStyle("mutedText")
22911
+ }, bind$1("content.emptyMessage", { fallback: "No posts published yet." }))], {
23113
22912
  stylesFrom: "content._cardStyles",
23114
22913
  backgroundFrom: "content._cardStyles.background",
23115
22914
  baseClassName: "rb-relative rb-isolate rb-overflow-visible rb-border rb-border-dashed rb-p-8 rb-text-center"
@@ -23677,14 +23476,14 @@ var init_contact_newsletter = __esmMin((() => {
23677
23476
  children: sectionContainer([el$1("div", { className: "contact-newsletter-grid" }, [el$1("div", { className: "contact-newsletter-column contact-newsletter-contact" }, [el$1("div", { className: "contact-newsletter-copy" }, [text({
23678
23477
  as: "h2",
23679
23478
  className: "form-copy-title"
23680
- }, when$1("contactTitle"), bind$2("contactTitle")), richText$1({ className: "form-copy-intro rb-prose rb-max-w-none" }, when$1("contactIntro"), bind$2("contactIntro"))]), el$1("form", withApiBindings$1({
23479
+ }, when("contactTitle"), bind$1("contactTitle")), richText({ className: "form-copy-intro rb-prose rb-max-w-none" }, when("contactIntro"), bind$1("contactIntro"))]), el$1("form", withApiBindings$1({
23681
23480
  spamProtectionEnabled: { $bind: { from: "$root.spamProtectionEnabled" } },
23682
23481
  submitLabel: { $bind: { from: "contactSubmitLabel" } },
23683
23482
  successMessage: { $bind: { from: "contactSuccessMessage" } }
23684
- }), [], bind$2("data.form"))]), el$1("div", { className: "contact-newsletter-column contact-newsletter-info contact-newsletter-newsletter" }, [el$1("div", { className: "contact-newsletter-copy" }, [text({
23483
+ }), [], bind$1("data.form"))]), el$1("div", { className: "contact-newsletter-column contact-newsletter-info contact-newsletter-newsletter" }, [el$1("div", { className: "contact-newsletter-copy" }, [text({
23685
23484
  as: "h2",
23686
23485
  className: "newsletter-copy-title"
23687
- }, when$1("newsletterTitle"), bind$2("newsletterTitle")), richText$1({ className: "newsletter-copy-subtitle rb-prose rb-max-w-none" }, when$1("newsletterSubtitle"), bind$2("newsletterSubtitle"))]), el$1("newsletter-form", withApiBindings$1({
23486
+ }, when("newsletterTitle"), bind$1("newsletterTitle")), richText({ className: "newsletter-copy-subtitle rb-prose rb-max-w-none" }, when("newsletterSubtitle"), bind$1("newsletterSubtitle"))]), el$1("newsletter-form", withApiBindings$1({
23688
23487
  listId: { $bind: { from: "listId" } },
23689
23488
  preset: { $bind: { from: "preset" } },
23690
23489
  includePhone: { $bind: { from: "includePhone" } },
@@ -24890,7 +24689,7 @@ var init_layout$2 = __esmMin((() => {
24890
24689
  const visuals = resolveBackgroundVisualStyles(extractBackgroundColorToken(background, "surface"), context.theme);
24891
24690
  const styleParts = [];
24892
24691
  if (visuals.textColorOverride) styleParts.push({ color: visuals.textColorOverride });
24893
- else if (visuals.textColorToken) styleParts.push(textColorStyle$1(visuals.textColorToken));
24692
+ else if (visuals.textColorToken) styleParts.push(textColorStyle(visuals.textColorToken));
24894
24693
  const borderColorToken = header?.border?.colorToken ?? "border";
24895
24694
  styleParts.push(borderColorStyle(borderColorToken));
24896
24695
  return mergeStyles(...styleParts);
@@ -25291,20 +25090,10 @@ function visitRichTextNode(node, allowedTokens, tokenValues) {
25291
25090
  }
25292
25091
  function interpolateRichTextTokens(value, options, context) {
25293
25092
  if (!isRecord$10(value)) return value;
25294
- const allowedTokens = new Set(options.tokens);
25295
- const tokenValues = {
25093
+ return visitRichTextNode(value, new Set(options.tokens), {
25296
25094
  year: String((/* @__PURE__ */ new Date()).getFullYear()),
25297
25095
  site_name: getSiteName(context)
25298
- };
25299
- if (isRecord$10(value.doc)) {
25300
- const nextDoc = visitRichTextNode(value.doc, allowedTokens, tokenValues);
25301
- if (nextDoc === value.doc) return value;
25302
- return {
25303
- ...value,
25304
- doc: nextDoc
25305
- };
25306
- }
25307
- return visitRichTextNode(value, allowedTokens, tokenValues);
25096
+ });
25308
25097
  }
25309
25098
  var supportedRichTextTokenSchema, interpolateRichTextTokensOptionsSchema, richTextTokenPattern, interpolateRichTextTokensTransform, contentTransforms;
25310
25099
  var init_content = __esmMin((() => {
@@ -25414,15 +25203,15 @@ var init_site_header = __esmMin((() => {
25414
25203
  media({ className: bindProp("$root.theme.header.logo", {
25415
25204
  transforms: pipe(tx("layout.headerLogoMediaClass", { base: "rb-header-logo-sm rb-w-auto rb-transition-all rb-duration-300" })),
25416
25205
  fallback: "rb-header-logo-sm rb-w-auto rb-transition-all rb-duration-300"
25417
- }) }, when$1("content.logo"), bind$2("content.logo")),
25206
+ }) }, when("content.logo"), bind$1("content.logo")),
25418
25207
  stack({ className: "rb-contents" }, [media({ className: bindProp("$root.theme.header.logo", {
25419
25208
  transforms: pipe(tx("layout.headerLogoMediaClass", { base: "rb-header-logo-sm rb-w-auto rb-transition-all rb-duration-300" })),
25420
25209
  fallback: "rb-header-logo-sm rb-w-auto rb-transition-all rb-duration-300"
25421
- }) }, when$1("site.logo"), bind$2("site.logo"))], when$1("content.logo", { not: true })),
25210
+ }) }, when("site.logo"), bind$1("site.logo"))], when("content.logo", { not: true })),
25422
25211
  text({
25423
25212
  as: "strong",
25424
25213
  className: "header-logo-text rb-truncate"
25425
- }, whenTransformed("$root.theme.header.logo", "layout.headerLogoTextVisible"), bind$2("site.title", { fallback: "Your Site" }))
25214
+ }, whenTransformed("$root.theme.header.logo", "layout.headerLogoTextVisible"), bind$1("site.title", { fallback: "Your Site" }))
25426
25215
  ]);
25427
25216
  centeredLogoRow = link({
25428
25217
  href: "/",
@@ -25434,15 +25223,15 @@ var init_site_header = __esmMin((() => {
25434
25223
  media({ className: bindProp("$root.theme.header.logo", {
25435
25224
  transforms: pipe(tx("layout.headerLogoMediaClass", { base: "rb-header-logo-lg rb-w-auto rb-transition-all rb-duration-300" })),
25436
25225
  fallback: "rb-header-logo-lg rb-w-auto rb-transition-all rb-duration-300"
25437
- }) }, when$1("content.logo"), bind$2("content.logo")),
25226
+ }) }, when("content.logo"), bind$1("content.logo")),
25438
25227
  stack({ className: "rb-contents" }, [media({ className: bindProp("$root.theme.header.logo", {
25439
25228
  transforms: pipe(tx("layout.headerLogoMediaClass", { base: "rb-header-logo-lg rb-w-auto rb-transition-all rb-duration-300" })),
25440
25229
  fallback: "rb-header-logo-lg rb-w-auto rb-transition-all rb-duration-300"
25441
- }) }, when$1("site.logo"), bind$2("site.logo"))], when$1("content.logo", { not: true })),
25230
+ }) }, when("site.logo"), bind$1("site.logo"))], when("content.logo", { not: true })),
25442
25231
  text({
25443
25232
  as: "strong",
25444
25233
  className: "header-logo-text"
25445
- }, whenTransformed("$root.theme.header.logo", "layout.headerLogoTextVisible"), bind$2("site.title", { fallback: "Your Site" }))
25234
+ }, whenTransformed("$root.theme.header.logo", "layout.headerLogoTextVisible"), bind$1("site.title", { fallback: "Your Site" }))
25446
25235
  ]);
25447
25236
  createNavRow = (className, align = "end") => navRow({
25448
25237
  className: `${className} header-nav-row`,
@@ -25593,7 +25382,7 @@ var init_site_header = __esmMin((() => {
25593
25382
  transforms: pipe(tx("layout.maxWidthClass", { base: `rb-header-layout ${desktopOnlyDisplay("flex")} rb-w-full rb-flex-col rb-items-center rb-gap-5 rb-text-center` })),
25594
25383
  fallback: `rb-container rb-header-layout ${desktopOnlyDisplay("flex")} rb-w-full rb-flex-col rb-items-center rb-gap-5 rb-text-center`
25595
25384
  })
25596
- }, [centeredLogoRow, createNavRow(`${desktopOnlyDisplay("flex")} rb-flex-wrap rb-justify-center rb-gap-x-6 rb-gap-y-3`, "center")], when$1("$root.theme.header.variant", { equals: "centered" }));
25385
+ }, [centeredLogoRow, createNavRow(`${desktopOnlyDisplay("flex")} rb-flex-wrap rb-justify-center rb-gap-x-6 rb-gap-y-3`, "center")], when("$root.theme.header.variant", { equals: "centered" }));
25597
25386
  transparentLayout = inline({
25598
25387
  className: bindProp("$root.theme.header.maxWidth", {
25599
25388
  transforms: pipe(tx("layout.maxWidthClass", { base: `rb-header-layout ${desktopOnlyDisplay("flex")} rb-w-full rb-items-center rb-gap-6` })),
@@ -25604,7 +25393,7 @@ var init_site_header = __esmMin((() => {
25604
25393
  logoRow,
25605
25394
  createNavRow(`rb-ml-auto ${desktopOnlyDisplay("flex")} rb-gap-6`),
25606
25395
  headerCta
25607
- ], when$1("$root.theme.header.variant", { equals: "transparent" }));
25396
+ ], when("$root.theme.header.variant", { equals: "transparent" }));
25608
25397
  floatingLayout = inline({
25609
25398
  [SITE_CHROME_VISIBLE_HEADER_ATTR]: "true",
25610
25399
  className: bindProp("$root.theme.header.maxWidth", {
@@ -25620,7 +25409,7 @@ var init_site_header = __esmMin((() => {
25620
25409
  logoRow,
25621
25410
  createNavRow(`rb-ml-auto ${desktopOnlyDisplay("flex")} rb-gap-6`),
25622
25411
  headerCta
25623
- ], when$1("$root.theme.header.variant", { equals: "floating" }));
25412
+ ], when("$root.theme.header.variant", { equals: "floating" }));
25624
25413
  headerLayout = headerSection({
25625
25414
  background: bindProp("$root.theme.header", {
25626
25415
  transforms: pipe(tx("layout.headerSectionBackground")),
@@ -25632,7 +25421,7 @@ var init_site_header = __esmMin((() => {
25632
25421
  }),
25633
25422
  style: bindProp("$root.theme.header", {
25634
25423
  transforms: pipe(tx("layout.headerRootStyle")),
25635
- fallback: mergeStyles(textColorStyle$1("text"), borderColorStyle("border"))
25424
+ fallback: mergeStyles(textColorStyle("text"), borderColorStyle("border"))
25636
25425
  })
25637
25426
  }, [
25638
25427
  mobileHeaderBar,
@@ -25691,14 +25480,14 @@ var init_site_footer_nav_groups_layout = __esmMin((() => {
25691
25480
  }, [text({
25692
25481
  as: "h3",
25693
25482
  className: "rb-label",
25694
- style: textColorStyle$1("text/70")
25695
- }, when$1("group.label"), bind$2("group.label")), stack({
25483
+ style: textColorStyle("text/70")
25484
+ }, when("group.label"), bind$1("group.label")), stack({
25696
25485
  gap: "sm",
25697
25486
  align: "start",
25698
25487
  className: "rb-space-y-2"
25699
25488
  }, [link({
25700
25489
  className: "rb-block rb-nav-text transition-theme rb-hover-opacity-80",
25701
- style: textColorStyle$1("text"),
25490
+ style: textColorStyle("text"),
25702
25491
  href: { $bind: {
25703
25492
  from: "entry.link",
25704
25493
  transforms: [{ id: "links.resolve" }]
@@ -25706,7 +25495,7 @@ var init_site_footer_nav_groups_layout = __esmMin((() => {
25706
25495
  linkRequired: true,
25707
25496
  target: { $bind: { from: "entry.target" } },
25708
25497
  rel: { $bind: { from: "entry.rel" } }
25709
- }, [text({ as: "span" }, bind$2("entry.label"))], repeat("group.children", "entry"))])], repeat("footerMenu.groups", "group"))], whenCollectionHasItems("footerMenu.groups"));
25498
+ }, [text({ as: "span" }, bind$1("entry.label"))], repeat("group.children", "entry"))])], repeat("footerMenu.groups", "group"))], whenCollectionHasItems("footerMenu.groups"));
25710
25499
  }));
25711
25500
  //#endregion
25712
25501
  //#region ../blocks/src/system/blocks/site-footer.ts
@@ -25735,10 +25524,10 @@ var init_site_footer = __esmMin((() => {
25735
25524
  options: { base: "rb-h-10 rb-w-auto" }
25736
25525
  }],
25737
25526
  fallback: "rb-h-10 rb-w-auto"
25738
- } } }, when$1("module.showLogo", { equals: true }), when$1("content.logo"), bind$2("content.logo")), text({
25527
+ } } }, when("module.showLogo", { equals: true }), when("content.logo"), bind$1("content.logo")), text({
25739
25528
  as: "strong",
25740
25529
  className: "footer-logo-text rb-nav-text"
25741
- }, when$1("module.showTitle", { equals: true }), bind$2("site.title", { fallback: "Your Site" }))], when$1("module.kind", { equals: "brand" }));
25530
+ }, when("module.showTitle", { equals: true }), bind$1("site.title", { fallback: "Your Site" }))], when("module.kind", { equals: "brand" }));
25742
25531
  navigation = stack({
25743
25532
  gap: "md",
25744
25533
  className: "rb-w-full"
@@ -25750,7 +25539,7 @@ var init_site_footer = __esmMin((() => {
25750
25539
  fallback: "footer-nav rb-flex rb-flex-wrap rb-gap-x-6 rb-gap-y-3"
25751
25540
  } },
25752
25541
  linkClassName: "footer-nav-link rb-nav-text transition-theme-standard"
25753
- })], when$1("module.kind", { equals: "navigation" }));
25542
+ })], when("module.kind", { equals: "navigation" }));
25754
25543
  legalNavigation = footerNav({
25755
25544
  collectionPath: "legalFooterMenu.items",
25756
25545
  mode: "links-only",
@@ -25760,38 +25549,38 @@ var init_site_footer = __esmMin((() => {
25760
25549
  address = text({
25761
25550
  as: "address",
25762
25551
  className: "rb-not-italic rb-opacity-80"
25763
- }, when$1("module.kind", { equals: "business-address" }), bind$2("module.address"));
25552
+ }, when("module.kind", { equals: "business-address" }), bind$1("module.address"));
25764
25553
  contact = stack({
25765
25554
  gap: "sm",
25766
25555
  className: "rb-items-start"
25767
25556
  }, [link({
25768
25557
  href: { $bind: { from: "contactLink.href" } },
25769
25558
  className: "rb-nav-text rb-break-words transition-theme-standard"
25770
- }, [text({ as: "span" }, bind$2("contactLink.label"))], repeat("module.contactLinks", "contactLink"))], when$1("module.kind", { equals: "contact" }));
25559
+ }, [text({ as: "span" }, bind$1("contactLink.label"))], repeat("module.contactLinks", "contactLink"))], when("module.kind", { equals: "contact" }));
25771
25560
  hours = stack({
25772
25561
  gap: "sm",
25773
25562
  className: "rb-w-full"
25774
25563
  }, [inline({ className: "rb-flex rb-w-full rb-justify-between rb-gap-4" }, [text({
25775
25564
  as: "span",
25776
25565
  className: "rb-label"
25777
- }, bind$2("hoursDay.weekday")), text({
25566
+ }, bind$1("hoursDay.weekday")), text({
25778
25567
  as: "span",
25779
25568
  className: "rb-caption rb-opacity-80"
25780
- }, bind$2("hoursDay.hours"))], repeat("module.openingHours", "hoursDay")), text({
25569
+ }, bind$1("hoursDay.hours"))], repeat("module.openingHours", "hoursDay")), text({
25781
25570
  as: "p",
25782
25571
  className: "rb-caption rb-opacity-70"
25783
- }, bind$2("module.timeZone"), when$1("module.timeZone"))], when$1("module.kind", { equals: "opening-hours" }));
25572
+ }, bind$1("module.timeZone"), when("module.timeZone"))], when("module.kind", { equals: "opening-hours" }));
25784
25573
  socials = inline({ className: "rb-flex rb-flex-wrap rb-gap-x-5 rb-gap-y-3" }, [link({
25785
25574
  href: { $bind: { from: "social.href" } },
25786
25575
  target: "_blank",
25787
25576
  rel: "noreferrer noopener",
25788
25577
  "aria-label": { $bind: { from: "social.label" } },
25789
25578
  className: "rb-nav-text transition-theme-standard"
25790
- }, [icon({ className: "rb-h-5 rb-w-5" }, bind$2("social.icon"), when$1("social.icon")), text({ as: "span" }, bind$2("social.label"), when$1("social.icon", { equals: null }))], repeat("module.socialLinks", "social"))], when$1("module.kind", { equals: "social-links" }));
25791
- authoredCopy = richText$1({
25579
+ }, [icon({ className: "rb-h-5 rb-w-5" }, bind$1("social.icon"), when("social.icon")), text({ as: "span" }, bind$1("social.label"), when("social.icon", { equals: null }))], repeat("module.socialLinks", "social"))], when("module.kind", { equals: "social-links" }));
25580
+ authoredCopy = richText({
25792
25581
  className: "rb-prose rb-prose-sm rb-max-w-none",
25793
- style: textColorStyle$1("text/80")
25794
- }, when$1("module.content"), bind$2("module.content", { transforms: [{
25582
+ style: textColorStyle("text/80")
25583
+ }, when("module.content"), bind$1("module.content", { transforms: [{
25795
25584
  id: "content.interpolateRichTextTokens",
25796
25585
  options: { tokens: ["year", "site_name"] }
25797
25586
  }] }));
@@ -25808,25 +25597,25 @@ var init_site_footer = __esmMin((() => {
25808
25597
  text({
25809
25598
  as: "h2",
25810
25599
  className: "rb-label",
25811
- style: textColorStyle$1("text/70")
25812
- }, bind$2("module.heading"), when$1("module.heading")),
25600
+ style: textColorStyle("text/70")
25601
+ }, bind$1("module.heading"), when("module.heading")),
25813
25602
  brandLogo,
25814
25603
  navigation,
25815
25604
  stack({
25816
25605
  gap: "sm",
25817
25606
  className: "rb-w-full"
25818
- }, [legalNavigation], when$1("module.kind", { equals: "legal-navigation" })),
25607
+ }, [legalNavigation], when("module.kind", { equals: "legal-navigation" })),
25819
25608
  address,
25820
25609
  contact,
25821
25610
  hours,
25822
25611
  socials,
25823
- stack({ className: "rb-w-full" }, [authoredCopy], when$1("module.kind", { equals: "supporting-text" })),
25824
- stack({ className: "rb-w-full rb-lg-col-span-3" }, [authoredCopy], when$1("module.kind", { equals: "legal" }))
25612
+ stack({ className: "rb-w-full" }, [authoredCopy], when("module.kind", { equals: "supporting-text" })),
25613
+ stack({ className: "rb-w-full rb-lg-col-span-3" }, [authoredCopy], when("module.kind", { equals: "legal" }))
25825
25614
  ], repeat("group.modules", "module"))], repeat("region.groups", "group"));
25826
25615
  footerMainRegion = stack({
25827
25616
  className: { $bind: { from: "region.className" } },
25828
25617
  "data-footer-region": { $bind: { from: "region.kind" } }
25829
- }, [footerGroup], when$1("region.kind", { equals: "main" }), repeat("content.footerRuntime.regions", "region"));
25618
+ }, [footerGroup], when("region.kind", { equals: "main" }), repeat("content.footerRuntime.regions", "region"));
25830
25619
  footerBottomRegion = stack({ className: { $bind: {
25831
25620
  from: "$root.theme.footer",
25832
25621
  transforms: [{ id: "layout.footerBottomBarContainerClass" }],
@@ -25842,7 +25631,7 @@ var init_site_footer = __esmMin((() => {
25842
25631
  transforms: [{ id: "layout.footerBottomBarStyle" }]
25843
25632
  } },
25844
25633
  "data-footer-region": "bottom"
25845
- }, [footerGroup])], when$1("region.kind", { equals: "bottom" }), repeat("content.footerRuntime.regions", "region"));
25634
+ }, [footerGroup])], when("region.kind", { equals: "bottom" }), repeat("content.footerRuntime.regions", "region"));
25846
25635
  footerLayout = section({
25847
25636
  background: "background",
25848
25637
  className: { $bind: {
@@ -25901,11 +25690,11 @@ var init_testimonials = __esmMin((() => {
25901
25690
  children: el$1("div", { className: "rb-testimonials-split-grid rb-grid rb-grid-cols-1 rb-gap-8 rb-lg-items-start" }, [el$1("div", { className: "rb-testimonials-split-grid-heading" }, [stack({
25902
25691
  gap: "md",
25903
25692
  className: "rb-testimonials-split-heading-copy rb-max-w-xl"
25904
- }, [text({ as: "h2" }, when$1("content.heading"), bind$2("content.heading")), text({
25693
+ }, [text({ as: "h2" }, when("content.heading"), bind$1("content.heading")), text({
25905
25694
  as: "p",
25906
25695
  className: "rb-prose",
25907
- style: textColorStyle$1("mutedText")
25908
- }, when$1("content.subheading"), bind$2("content.subheading"))])]), el$1("div", { className: "rb-testimonials-split-grid-cards" }, [buildGridCardsLayout("rb-testimonials-split-grid-card-list")])])
25696
+ style: textColorStyle("mutedText")
25697
+ }, when("content.subheading"), bind$1("content.subheading"))])]), el$1("div", { className: "rb-testimonials-split-grid-cards" }, [buildGridCardsLayout("rb-testimonials-split-grid-card-list")])])
25909
25698
  }),
25910
25699
  baseClass: "",
25911
25700
  spacing: "comfortable",
@@ -25921,11 +25710,11 @@ var init_testimonials = __esmMin((() => {
25921
25710
  as: "h2",
25922
25711
  className: "rb-text-left",
25923
25712
  headingDecoration: "off"
25924
- }, when$1("content.heading"), bind$2("content.heading")), el$1("div", { className: "rb-testimonials-fe-leadin" }, [text({
25713
+ }, when("content.heading"), bind$1("content.heading")), el$1("div", { className: "rb-testimonials-fe-leadin" }, [text({
25925
25714
  as: "p",
25926
25715
  className: "rb-prose",
25927
- style: textColorStyle$1("mutedText")
25928
- }, when$1("content.subheading"), bind$2("content.subheading"))])]), buildFeaturedEditorialLayout()])
25716
+ style: textColorStyle("mutedText")
25717
+ }, when("content.subheading"), bind$1("content.subheading"))])]), buildFeaturedEditorialLayout()])
25929
25718
  }),
25930
25719
  baseClass: "",
25931
25720
  spacing: "comfortable",
@@ -27468,10 +27257,10 @@ var init_feature_cards = __esmMin((() => {
27468
27257
  }, [text({
27469
27258
  as: "h2",
27470
27259
  className: "rb-feature-cards-title rb-text-center"
27471
- }, when$1("content.title"), bind$2("content.title")), richText$1({
27260
+ }, when("content.title"), bind$1("content.title")), richText({
27472
27261
  className: "rb-feature-cards-description rb-prose rb-mx-auto rb-max-w-none",
27473
- style: textColorStyle$1("mutedText")
27474
- }, when$1("content.description"), bind$2("content.description"))]);
27262
+ style: textColorStyle("mutedText")
27263
+ }, when("content.description"), bind$1("content.description"))]);
27475
27264
  editorialSectionHeading = stack({
27476
27265
  gap: "sm",
27477
27266
  className: "rb-feature-cards-heading rb-feature-cards-heading--editorial rb-max-w-3xl"
@@ -27479,20 +27268,20 @@ var init_feature_cards = __esmMin((() => {
27479
27268
  text({
27480
27269
  as: "p",
27481
27270
  className: "rb-feature-cards-eyebrow"
27482
- }, when$1("content.eyebrow"), bind$2("content.eyebrow")),
27271
+ }, when("content.eyebrow"), bind$1("content.eyebrow")),
27483
27272
  text({
27484
27273
  as: "h2",
27485
27274
  className: "rb-feature-cards-title"
27486
- }, when$1("content.title"), bind$2("content.title")),
27487
- richText$1({
27275
+ }, when("content.title"), bind$1("content.title")),
27276
+ richText({
27488
27277
  className: "rb-feature-cards-description rb-prose rb-max-w-none",
27489
- style: textColorStyle$1("mutedText")
27490
- }, when$1("content.description"), bind$2("content.description"))
27278
+ style: textColorStyle("mutedText")
27279
+ }, when("content.description"), bind$1("content.description"))
27491
27280
  ]);
27492
27281
  featureCard = styledCard([el$1("div", { className: "rb-feature-card-media-frame rb-overflow-hidden rb-w-full" }, [media({
27493
27282
  className: "rb-feature-card-media rb-w-full rb-h-auto rb-object-cover",
27494
27283
  style: { aspectRatio: { $bind: { from: "card.aspectRatio" } } }
27495
- }, bind$2("card.media"))], when$1("card.media")), stack({
27284
+ }, bind$1("card.media"))], when("card.media")), stack({
27496
27285
  gap: "sm",
27497
27286
  className: "rb-feature-card-content rb-flex-1 rb-p-6"
27498
27287
  }, [
@@ -27506,7 +27295,7 @@ var init_feature_cards = __esmMin((() => {
27506
27295
  fallback: FEATURE_CARD_GENERATED_ICON_SIZE_PX.default
27507
27296
  } },
27508
27297
  generatedAssets: { $bind: { from: "data.generatedIconAssets" } }
27509
- }, null, bind$2("card.icon")),
27298
+ }, null, bind$1("card.icon")),
27510
27299
  el$1("div", {
27511
27300
  className: "rb-feature-card-number-zone",
27512
27301
  "aria-hidden": "true"
@@ -27514,11 +27303,11 @@ var init_feature_cards = __esmMin((() => {
27514
27303
  text({
27515
27304
  as: "h3",
27516
27305
  className: "rb-feature-card-title"
27517
- }, bind$2("card.title")),
27518
- richText$1({
27306
+ }, bind$1("card.title")),
27307
+ richText({
27519
27308
  className: "rb-feature-card-body rb-prose rb-max-w-none",
27520
- style: textColorStyle$1("mutedText")
27521
- }, when$1("card.body"), bind$2("card.body")),
27309
+ style: textColorStyle("mutedText")
27310
+ }, when("card.body"), bind$1("card.body")),
27522
27311
  ctaRow({
27523
27312
  collectionPath: "ctas",
27524
27313
  itemName: "cta",
@@ -28156,18 +27945,18 @@ var init_media_text = __esmMin((() => {
28156
27945
  const copyHeading = el$1("div", { className: titleClassNameFromAlignment }, [text({
28157
27946
  as: "p",
28158
27947
  className: eyebrowClassName("rb-eyebrow heading-eyebrow")
28159
- }, when$1("content.eyebrow"), bind$2("content.eyebrow")), text({ as: "h2" }, bind$2("content.title"))], when$1("content.title"));
28160
- const defaultTextColumn = el$1("div", {}, [styledCard([richText$1({ className: "rb-prose rb-max-w-none" }, bind$2("content.text"))], {
27948
+ }, when("content.eyebrow"), bind$1("content.eyebrow")), text({ as: "h2" }, bind$1("content.title"))], when("content.title"));
27949
+ const defaultTextColumn = el$1("div", {}, [styledCard([richText({ className: "rb-prose rb-max-w-none" }, bind$1("content.text"))], {
28161
27950
  stylesFrom: "content._textCardStyles",
28162
27951
  backgroundFrom: "content._textCardStyles.background"
28163
- }, when$1("content.wrapTextInCard")), richText$1({ className: "rb-prose rb-max-w-none" }, when$1("content.wrapTextInCard", { not: true }), bind$2("content.text"))]);
27952
+ }, when("content.wrapTextInCard")), richText({ className: "rb-prose rb-max-w-none" }, when("content.wrapTextInCard", { not: true }), bind$1("content.text"))]);
28164
27953
  const bioTextColumn = el$1("div", { className: "rb-flex rb-h-full rb-w-full rb-max-w-prose rb-flex-col rb-justify-center rb-gap-5" }, [
28165
27954
  copyHeading,
28166
- styledCard([richText$1({ className: bodyClassNameFromAlignment }, bind$2("content.text"))], {
27955
+ styledCard([richText({ className: bodyClassNameFromAlignment }, bind$1("content.text"))], {
28167
27956
  stylesFrom: "content._textCardStyles",
28168
27957
  backgroundFrom: "content._textCardStyles.background"
28169
- }, when$1("content.wrapTextInCard")),
28170
- richText$1({ className: bodyClassNameFromAlignment }, when$1("content.wrapTextInCard", { not: true }), bind$2("content.text"))
27958
+ }, when("content.wrapTextInCard")),
27959
+ richText({ className: bodyClassNameFromAlignment }, when("content.wrapTextInCard", { not: true }), bind$1("content.text"))
28171
27960
  ]);
28172
27961
  const defaultImageCommonProps = {
28173
27962
  className: { $bind: {
@@ -28180,7 +27969,7 @@ var init_media_text = __esmMin((() => {
28180
27969
  } },
28181
27970
  style: { aspectRatio: { $bind: { from: "content.aspectRatio" } } }
28182
27971
  };
28183
- const defaultSingleImage = media(defaultImageCommonProps, bind$2("content.images[0].image"));
27972
+ const defaultSingleImage = media(defaultImageCommonProps, bind$1("content.images[0].image"));
28184
27973
  const defaultCarouselImages = carousel({
28185
27974
  className: "rb-media-text-carousel",
28186
27975
  transition: { $bind: {
@@ -28207,7 +27996,7 @@ var init_media_text = __esmMin((() => {
28207
27996
  showControls: true,
28208
27997
  loop: true,
28209
27998
  slidesToShow: 1
28210
- }, [media(defaultImageCommonProps, bind$2("item.image"), repeat("content.images", "item"))]);
27999
+ }, [media(defaultImageCommonProps, bind$1("item.image"), repeat("content.images", "item"))]);
28211
28000
  const defaultImagesLayout = el$1("div", {}, [responsiveTwoColumn({
28212
28001
  image: el$1("div", {}, [el$1("div", {}, [defaultSingleImage], whenImagesLength(1)), el$1("div", {}, [defaultCarouselImages], whenImagesLength(1, { not: true }))]),
28213
28002
  text: defaultTextColumn,
@@ -28230,20 +28019,20 @@ var init_media_text = __esmMin((() => {
28230
28019
  imageWrapperClassName: "rb-w-full rb-shrink-0",
28231
28020
  textWrapperClassName: "rb-w-full rb-min-w-0 rb-flex-1 rb-self-stretch"
28232
28021
  })], whenImagesLength(0, { not: true }));
28233
- const defaultTextOnlyLayout = el$1("div", {}, [styledCard([richText$1({ className: "rb-prose rb-max-w-none" }, bind$2("content.text"))], {
28022
+ const defaultTextOnlyLayout = el$1("div", {}, [styledCard([richText({ className: "rb-prose rb-max-w-none" }, bind$1("content.text"))], {
28234
28023
  stylesFrom: "content._textCardStyles",
28235
28024
  backgroundFrom: "content._textCardStyles.background"
28236
- }, when$1("content.wrapTextInCard")), richText$1({ className: "rb-prose rb-max-w-none" }, when$1("content.wrapTextInCard", { not: true }), bind$2("content.text"))], whenImagesLength(0));
28025
+ }, when("content.wrapTextInCard")), richText({ className: "rb-prose rb-max-w-none" }, when("content.wrapTextInCard", { not: true }), bind$1("content.text"))], whenImagesLength(0));
28237
28026
  const bioTextOnlyLayout = el$1("div", { className: "rb-flex rb-w-full rb-max-w-prose rb-flex-col rb-gap-5" }, [
28238
28027
  text({
28239
28028
  as: "h2",
28240
28029
  className: titleClassNameFromAlignment
28241
- }, when$1("content.title"), bind$2("content.title")),
28242
- styledCard([richText$1({ className: bodyClassNameFromAlignment }, bind$2("content.text"))], {
28030
+ }, when("content.title"), bind$1("content.title")),
28031
+ styledCard([richText({ className: bodyClassNameFromAlignment }, bind$1("content.text"))], {
28243
28032
  stylesFrom: "content._textCardStyles",
28244
28033
  backgroundFrom: "content._textCardStyles.background"
28245
- }, when$1("content.wrapTextInCard")),
28246
- richText$1({ className: bodyClassNameFromAlignment }, when$1("content.wrapTextInCard", { not: true }), bind$2("content.text"))
28034
+ }, when("content.wrapTextInCard")),
28035
+ richText({ className: bodyClassNameFromAlignment }, when("content.wrapTextInCard", { not: true }), bind$1("content.text"))
28247
28036
  ], whenImagesLength(0));
28248
28037
  const defaultInner = el$1("div", {}, [defaultImagesLayout, defaultTextOnlyLayout]);
28249
28038
  const bioInner = el$1("div", {}, [bioImagesLayout, bioTextOnlyLayout]);
@@ -28366,8 +28155,8 @@ var init_appointment_booking = __esmMin((() => {
28366
28155
  icon: "Calendar",
28367
28156
  layout: [styledSection({
28368
28157
  children: sectionContainer([
28369
- text({ as: "h2" }, bind$2("content.heading"), when$1("content.heading")),
28370
- richText$1({}, bind$2("content.description"), when$1("content.description")),
28158
+ text({ as: "h2" }, bind$1("content.heading"), when("content.heading")),
28159
+ richText({}, bind$1("content.description"), when("content.description")),
28371
28160
  bookingForm(withApiBindings$1({
28372
28161
  portalToken: { $bind: {
28373
28162
  from: "$root.portalToken",
@@ -28543,8 +28332,8 @@ var init_weekly_slot_availability = __esmMin((() => {
28543
28332
  icon: "CalendarDays",
28544
28333
  layout: [styledSection({
28545
28334
  children: sectionContainer([
28546
- text({ as: "h2" }, bind$2("content.heading"), when$1("content.heading")),
28547
- richText$1({}, bind$2("content.description"), when$1("content.description")),
28335
+ text({ as: "h2" }, bind$1("content.heading"), when("content.heading")),
28336
+ richText({}, bind$1("content.description"), when("content.description")),
28548
28337
  el$1("weekly-slot-availability", withApiBindings$1({
28549
28338
  serviceId: { $bind: { from: "content.serviceId" } },
28550
28339
  resourceId: { $bind: {
@@ -28708,24 +28497,50 @@ var init_media$1 = __esmMin((() => {
28708
28497
  spreadsheetMediaSchema,
28709
28498
  archiveMediaSchema
28710
28499
  ]);
28711
- })), TipTapMarkSchema, TipTapNodeSchema, RichTextDocSchema;
28500
+ }));
28501
+ //#endregion
28502
+ //#region ../blocks/src/system/manifest/richTextSchema.ts
28503
+ var TipTapMarkSchema, TipTapNodeSchema, RichTextDocSchema;
28712
28504
  var init_richTextSchema = __esmMin((() => {
28713
28505
  TipTapMarkSchema = z$1.object({
28714
- type: z$1.string(),
28506
+ type: z$1.string().min(1),
28715
28507
  attrs: z$1.record(z$1.string(), z$1.unknown()).optional()
28716
- });
28508
+ }).strict();
28717
28509
  TipTapNodeSchema = z$1.lazy(() => z$1.object({
28718
- type: z$1.string(),
28510
+ type: z$1.string().min(1),
28719
28511
  content: z$1.array(TipTapNodeSchema).optional(),
28720
28512
  text: z$1.string().optional(),
28721
28513
  attrs: z$1.record(z$1.string(), z$1.unknown()).optional(),
28722
28514
  marks: z$1.array(TipTapMarkSchema).optional()
28515
+ }).strict().superRefine((node, ctx) => {
28516
+ if (node.type === "doc") ctx.addIssue({
28517
+ code: "custom",
28518
+ path: ["type"],
28519
+ message: "Document nodes are only valid at the rich-text root"
28520
+ });
28521
+ if (node.type === "text") {
28522
+ if (node.text === void 0 || node.text.length === 0) ctx.addIssue({
28523
+ code: "custom",
28524
+ path: ["text"],
28525
+ message: "Text nodes require a non-empty text value"
28526
+ });
28527
+ if (node.content !== void 0) ctx.addIssue({
28528
+ code: "custom",
28529
+ path: ["content"],
28530
+ message: "Text nodes cannot contain child nodes"
28531
+ });
28532
+ return;
28533
+ }
28534
+ if (node.text !== void 0) ctx.addIssue({
28535
+ code: "custom",
28536
+ path: ["text"],
28537
+ message: "Only text nodes can contain a text value"
28538
+ });
28723
28539
  }));
28724
- z$1.union([TipTapNodeSchema, z$1.object({ doc: TipTapNodeSchema })]);
28725
28540
  RichTextDocSchema = z$1.object({
28726
28541
  type: z$1.literal("doc"),
28727
28542
  content: z$1.array(TipTapNodeSchema)
28728
- });
28543
+ }).strict();
28729
28544
  }));
28730
28545
  //#endregion
28731
28546
  //#region ../blocks/src/system/blocks/shared/bookingPaymentTerms.ts
@@ -29415,8 +29230,8 @@ var init_filtering = __esmMin((() => {
29415
29230
  //#endregion
29416
29231
  //#region ../blocks/src/system/blocks/events/shared/layout.ts
29417
29232
  function eventSectionHeaderLayoutNodes(options = {}) {
29418
- const headingNode = text({ as: "h2" }, bind$2("content.heading"), when$1("content.heading", { authoringPresence: recoverEmptyHeadingWhenActive }));
29419
- const descriptionNode = richText$1({ className: "rb-prose rb-max-w-none" }, bind$2("content.description"), when$1("content.description", { authoringPresence: recoverEmptyDescriptionWhenActive }));
29233
+ const headingNode = text({ as: "h2" }, bind$1("content.heading"), when("content.heading", { authoringPresence: recoverEmptyHeadingWhenActive }));
29234
+ const descriptionNode = richText({ className: "rb-prose rb-max-w-none" }, bind$1("content.description"), when("content.description", { authoringPresence: recoverEmptyDescriptionWhenActive }));
29420
29235
  if (options.splitClassName) return [el$1("div", { className: options.splitClassName }, [headingNode, descriptionNode])];
29421
29236
  return [headingNode, descriptionNode];
29422
29237
  }
@@ -30211,8 +30026,8 @@ var init_event_registration = __esmMin((() => {
30211
30026
  baseClass: "",
30212
30027
  spacing: "spacious",
30213
30028
  children: sectionContainer([
30214
- text({ as: "h2" }, bind$2("content.heading"), when$1("content.heading")),
30215
- richText$1({ className: "rb-prose rb-max-w-none" }, bind$2("content.description"), when$1("content.description")),
30029
+ text({ as: "h2" }, bind$1("content.heading"), when("content.heading")),
30030
+ richText({ className: "rb-prose rb-max-w-none" }, bind$1("content.description"), when("content.description")),
30216
30031
  eventRegistration(withApiBindings$1({
30217
30032
  occurrenceContext: { $bind: { from: "$root.occurrenceContext" } },
30218
30033
  contentEntry: { $bind: { from: "$root.contentEntry" } },
@@ -30554,8 +30369,8 @@ var init_course_registration = __esmMin((() => {
30554
30369
  baseClass: "",
30555
30370
  spacing: "spacious",
30556
30371
  children: sectionContainer([
30557
- text({ as: "h2" }, bind$2("content.heading"), when$1("content.heading")),
30558
- richText$1({ className: "rb-prose rb-max-w-none" }, bind$2("content.description"), when$1("content.description")),
30372
+ text({ as: "h2" }, bind$1("content.heading"), when("content.heading")),
30373
+ richText({ className: "rb-prose rb-max-w-none" }, bind$1("content.description"), when("content.description")),
30559
30374
  courseRegistration(withApiBindings$1({
30560
30375
  contentEntry: { $bind: { from: "$root.contentEntry" } },
30561
30376
  entrySubrouteContext: { $bind: {
@@ -30738,7 +30553,7 @@ var init_event_details = __esmMin((() => {
30738
30553
  layout: [styledSection({
30739
30554
  baseClass: "",
30740
30555
  spacing: "spacious",
30741
- children: sectionContainer([text({ as: "h2" }, bind$2("content.heading"), when$1("content.heading")), el$1("event-details", {
30556
+ children: sectionContainer([text({ as: "h2" }, bind$1("content.heading"), when("content.heading")), el$1("event-details", {
30742
30557
  occurrenceContext: { $bind: {
30743
30558
  from: "$root.occurrenceContext",
30744
30559
  fallback: null
@@ -30980,7 +30795,7 @@ var init_course_details = __esmMin((() => {
30980
30795
  layout: [styledSection({
30981
30796
  baseClass: "",
30982
30797
  spacing: "spacious",
30983
- children: sectionContainer([text({ as: "h2" }, bind$2("content.heading"), when$1("content.heading")), el$1("course-details", {
30798
+ children: sectionContainer([text({ as: "h2" }, bind$1("content.heading"), when("content.heading")), el$1("course-details", {
30984
30799
  contentEntry: { $bind: {
30985
30800
  from: "$root.contentEntry",
30986
30801
  fallback: null
@@ -33287,12 +33102,12 @@ var init_recurring_schedule = __esmMin((() => {
33287
33102
  text({
33288
33103
  as: "p",
33289
33104
  className: "recurring-schedule-eyebrow"
33290
- }, bind$2("content.eyebrow"), when$1("content.eyebrow")),
33105
+ }, bind$1("content.eyebrow"), when("content.eyebrow")),
33291
33106
  text({
33292
33107
  as: "h2",
33293
33108
  className: "recurring-schedule-heading-title"
33294
- }, bind$2("content.heading"), when$1("content.heading")),
33295
- richText$1({ className: "recurring-schedule-description rb-prose rb-max-w-none" }, bind$2("content.description"), when$1("content.description"))
33109
+ }, bind$1("content.heading"), when("content.heading")),
33110
+ richText({ className: "recurring-schedule-description rb-prose rb-max-w-none" }, bind$1("content.description"), when("content.description"))
33296
33111
  ]), button({
33297
33112
  href: { $bind: {
33298
33113
  from: "content.seeAllUrl",
@@ -33304,7 +33119,7 @@ var init_recurring_schedule = __esmMin((() => {
33304
33119
  from: "content.seeAllButtonVariant",
33305
33120
  fallback: "secondary"
33306
33121
  } }
33307
- }, [text({}, bind$2("content.seeAllLabel"))], when$1("content.seeAllUrl"))]), el$1("recurring-schedule", {
33122
+ }, [text({}, bind$1("content.seeAllLabel"))], when("content.seeAllUrl"))]), el$1("recurring-schedule", {
33308
33123
  schedule: { $bind: { from: "data.schedule" } },
33309
33124
  buttonText: { $bind: {
33310
33125
  from: "content.buttonText",
@@ -33883,8 +33698,8 @@ var init_offerings_preview = __esmMin((() => {
33883
33698
  text({
33884
33699
  as: "h2",
33885
33700
  className: "rb-text-center"
33886
- }, bind$2("content.heading"), when$1("content.heading")),
33887
- richText$1({ className: "rb-prose rb-max-w-none" }, bind$2("content.description"), when$1("content.description")),
33701
+ }, bind$1("content.heading"), when("content.heading")),
33702
+ richText({ className: "rb-prose rb-max-w-none" }, bind$1("content.description"), when("content.description")),
33888
33703
  el$1("offerings-preview", {
33889
33704
  bookingOfferingPresets: { $bind: {
33890
33705
  from: "$root.bookingOfferingPresets",
@@ -34148,12 +33963,12 @@ var init_embed = __esmMin((() => {
34148
33963
  children: sectionContainer([
34149
33964
  text({
34150
33965
  as: "h2",
34151
- style: textColorStyle$1("heading")
34152
- }, bind$2("content.heading"), when$1("content.heading")),
33966
+ style: textColorStyle("heading")
33967
+ }, bind$1("content.heading"), when("content.heading")),
34153
33968
  el$1("richText", {
34154
33969
  className: "rb-mt-2 rb-prose rb-max-w-none",
34155
- style: textColorStyle$1("mutedText")
34156
- }, void 0, bind$2("content.subheading"), when$1("content.subheading")),
33970
+ style: textColorStyle("mutedText")
33971
+ }, void 0, bind$1("content.subheading"), when("content.subheading")),
34157
33972
  stack({
34158
33973
  gap: "md",
34159
33974
  className: "rb-mt-8"
@@ -34163,19 +33978,19 @@ var init_embed = __esmMin((() => {
34163
33978
  style: mergeStyles(borderColorStyle("border"), backgroundColorStyle("surface"))
34164
33979
  }, [text({
34165
33980
  as: "h3",
34166
- style: textColorStyle$1("heading")
34167
- }, bind$2("entry.title")), text({
33981
+ style: textColorStyle("heading")
33982
+ }, bind$1("entry.title")), text({
34168
33983
  as: "p",
34169
33984
  className: "rb-caption",
34170
- style: textColorStyle$1("mutedText")
34171
- }, bind$2("entry.slug"), when$1("entry.slug"))], repeat("data.entries", "entry"))], when$1("data.entries")),
33985
+ style: textColorStyle("mutedText")
33986
+ }, bind$1("entry.slug"), when("entry.slug"))], repeat("data.entries", "entry"))], when("data.entries")),
34172
33987
  stack({
34173
33988
  gap: "sm",
34174
33989
  className: "rb-py-12 rb-text-center"
34175
33990
  }, [text({
34176
33991
  as: "p",
34177
- style: textColorStyle$1("mutedText")
34178
- }, bind$2("content.emptyMessage", { fallback: "No entries found." }))], when$1("data.entries", { not: true }))
33992
+ style: textColorStyle("mutedText")
33993
+ }, bind$1("content.emptyMessage", { fallback: "No entries found." }))], when("data.entries", { not: true }))
34179
33994
  ]),
34180
33995
  baseClass: "",
34181
33996
  spacing: "comfortable"
@@ -34293,11 +34108,11 @@ var init_image_gallery = __esmMin((() => {
34293
34108
  $prepend: `${options.imageClassName} `
34294
34109
  },
34295
34110
  ...options.bindAspectRatio && { style: { aspectRatio: { $bind: { from: "content.aspectRatio" } } } }
34296
- }, bind$2("item.image"))]), text({
34111
+ }, bind$1("item.image"))]), text({
34297
34112
  as: "figcaption",
34298
34113
  className: "rb-caption rb-text-center",
34299
- style: textColorStyle$1("mutedText")
34300
- }, bind$2("item.caption"), when$1("item.caption"))], repeat("content.images", "item"));
34114
+ style: textColorStyle("mutedText")
34115
+ }, bind$1("item.caption"), when("item.caption"))], repeat("content.images", "item"));
34301
34116
  gridLayout = grid$1({ className: "rb-grid rb-grid-cols-1 rb-gap-4 rb-sm-grid-cols-2 rb-md-grid-cols-3" }, [galleryItem({
34302
34117
  imageClassName: "rb-w-full rb-h-full rb-object-cover",
34303
34118
  bindAspectRatio: true
@@ -34414,11 +34229,11 @@ var init_image_gallery = __esmMin((() => {
34414
34229
  $prepend: "rb-w-full rb-h-full rb-object-cover "
34415
34230
  },
34416
34231
  style: { aspectRatio: "1 / 1" }
34417
- }, bind$2("item.image"))]), text({
34232
+ }, bind$1("item.image"))]), text({
34418
34233
  as: "figcaption",
34419
34234
  className: "rb-caption rb-text-center",
34420
- style: textColorStyle$1("mutedText")
34421
- }, bind$2("item.caption"), when$1("item.caption"))]),
34235
+ style: textColorStyle("mutedText")
34236
+ }, bind$1("item.caption"), when("item.caption"))]),
34422
34237
  $repeat: {
34423
34238
  collection: {
34424
34239
  from: "content.images",
@@ -34444,7 +34259,7 @@ var init_image_gallery = __esmMin((() => {
34444
34259
  type: "text",
34445
34260
  props: {
34446
34261
  as: "p",
34447
- style: textColorStyle$1("mutedText")
34262
+ style: textColorStyle("mutedText")
34448
34263
  },
34449
34264
  $bind: {
34450
34265
  from: "content.emptyMessage",
@@ -35056,19 +34871,19 @@ var init_video_grid = __esmMin((() => {
35056
34871
  from: "item.aspectRatio",
35057
34872
  fallback: "16/9"
35058
34873
  } } }
35059
- }, bind$2("item.url"), when$1("item.aspectRatio")),
34874
+ }, bind$1("item.url"), when("item.aspectRatio")),
35060
34875
  videoEmbed({
35061
34876
  className: "rb-w-full rb-rounded-lg rb-overflow-hidden",
35062
34877
  style: { aspectRatio: { $bind: {
35063
34878
  from: "content.aspectRatio",
35064
34879
  fallback: "16/9"
35065
34880
  } } }
35066
- }, bind$2("item.url"), when$1("item.aspectRatio", { not: true })),
34881
+ }, bind$1("item.url"), when("item.aspectRatio", { not: true })),
35067
34882
  text({
35068
34883
  as: "figcaption",
35069
34884
  className: "rb-caption rb-text-center",
35070
- style: textColorStyle$1("mutedText")
35071
- }, bind$2("item.caption"), when$1("item.caption"))
34885
+ style: textColorStyle("mutedText")
34886
+ }, bind$1("item.caption"), when("item.caption"))
35072
34887
  ], repeat("content.videos", "item"));
35073
34888
  gridColumnsClass = (columns) => {
35074
34889
  switch (columns) {
@@ -35079,7 +34894,7 @@ var init_video_grid = __esmMin((() => {
35079
34894
  default: return "rb-grid rb-grid-cols-1 rb-gap-6 rb-sm-grid-cols-2 rb-md-grid-cols-3";
35080
34895
  }
35081
34896
  };
35082
- createGridLayout = (columns) => grid({ className: gridColumnsClass(columns) }, [videoItem({})], when$1("content.columns", { equals: String(columns) }));
34897
+ createGridLayout = (columns) => grid({ className: gridColumnsClass(columns) }, [videoItem({})], when("content.columns", { equals: String(columns) }));
35083
34898
  gridLayout1 = createGridLayout(1);
35084
34899
  gridLayout2 = createGridLayout(2);
35085
34900
  gridLayout3 = createGridLayout(3);
@@ -35096,7 +34911,7 @@ var init_video_grid = __esmMin((() => {
35096
34911
  type: "text",
35097
34912
  props: {
35098
34913
  as: "p",
35099
- style: textColorStyle$1("mutedText")
34914
+ style: textColorStyle("mutedText")
35100
34915
  },
35101
34916
  $bind: {
35102
34917
  from: "content.emptyMessage",
@@ -35120,12 +34935,12 @@ var init_video_grid = __esmMin((() => {
35120
34935
  className: "rb-text-center rb-mb-8"
35121
34936
  }, [text({
35122
34937
  as: "h2",
35123
- style: textColorStyle$1("heading")
35124
- }, bind$2("content.heading"), when$1("content.heading")), text({
34938
+ style: textColorStyle("heading")
34939
+ }, bind$1("content.heading"), when("content.heading")), text({
35125
34940
  as: "p",
35126
34941
  className: "rb-max-w-2xl rb-mx-auto",
35127
- style: textColorStyle$1("text")
35128
- }, bind$2("content.subheading"), when$1("content.subheading"))]),
34942
+ style: textColorStyle("text")
34943
+ }, bind$1("content.subheading"), when("content.subheading"))]),
35129
34944
  gridLayout1,
35130
34945
  gridLayout2,
35131
34946
  gridLayout3,
@@ -35322,26 +35137,26 @@ var init_audio_player = __esmMin((() => {
35322
35137
  resize: "cover",
35323
35138
  quality: 80
35324
35139
  }
35325
- }, bind$2("content.coverImage"), when$1("content.coverImage")), stack({
35140
+ }, bind$1("content.coverImage"), when("content.coverImage")), stack({
35326
35141
  gap: "md",
35327
35142
  className: "rb-p-5 rb-sm-p-6"
35328
35143
  }, [
35329
35144
  stack({ gap: "xs" }, [text({
35330
35145
  as: "h2",
35331
35146
  className: "rb-m-0",
35332
- style: textColorStyle$1("heading")
35333
- }, bind$2("content.title"), when$1("content.title")), text({
35147
+ style: textColorStyle("heading")
35148
+ }, bind$1("content.title"), when("content.title")), text({
35334
35149
  as: "p",
35335
35150
  className: "rb-m-0 rb-max-w-prose",
35336
- style: textColorStyle$1("mutedText")
35337
- }, bind$2("content.description"), when$1("content.description"))]),
35338
- media({ className: "rb-w-full" }, bind$2("content.audio"), when$1("content.audio")),
35151
+ style: textColorStyle("mutedText")
35152
+ }, bind$1("content.description"), when("content.description"))]),
35153
+ media({ className: "rb-w-full" }, bind$1("content.audio"), when("content.audio")),
35339
35154
  text({
35340
35155
  as: "p",
35341
35156
  className: "rb-caption rb-m-0",
35342
- style: textColorStyle$1("mutedText"),
35157
+ style: textColorStyle("mutedText"),
35343
35158
  value: "Choose an audio file to publish this player."
35344
- }, when$1("content.audio", { not: true }))
35159
+ }, when("content.audio", { not: true }))
35345
35160
  ])])]),
35346
35161
  spacing: "medium",
35347
35162
  baseClass: ""
@@ -35427,12 +35242,12 @@ var init_file_download = __esmMin((() => {
35427
35242
  from: "content.buttonVariant",
35428
35243
  fallback: "primary"
35429
35244
  } }
35430
- }, bind$2("content.file"), when$1("content.file")), text({
35245
+ }, bind$1("content.file"), when("content.file")), text({
35431
35246
  as: "p",
35432
35247
  className: "rb-caption rb-m-0",
35433
- style: textColorStyle$1("mutedText"),
35248
+ style: textColorStyle("mutedText"),
35434
35249
  value: "Choose a public downloadable file."
35435
- }, when$1("content.file", { not: true }))]),
35250
+ }, when("content.file", { not: true }))]),
35436
35251
  spacing: "medium",
35437
35252
  baseClass: ""
35438
35253
  });
@@ -37700,7 +37515,7 @@ var init_team_members = __esmMin((() => {
37700
37515
  equals: "site_staff",
37701
37516
  not: true
37702
37517
  };
37703
- headingNode = text({ as: "h2" }, bind$2("content.heading"), when$1("content.heading"));
37518
+ headingNode = text({ as: "h2" }, bind$1("content.heading"), when("content.heading"));
37704
37519
  wrapVariant = (variantLayout) => styledSection({
37705
37520
  children: sectionContainer([stack({
37706
37521
  gap: "md",
@@ -37746,20 +37561,20 @@ var init_team_members = __esmMin((() => {
37746
37561
  quality: 85,
37747
37562
  resize: "cover"
37748
37563
  }
37749
- }, when$1("photo"), bind$2("photo"))])]), stack({
37564
+ }, when("photo"), bind$1("photo"))])]), stack({
37750
37565
  gap: "sm",
37751
37566
  className: "rb-team-member-body rb-flex-1 rb-min-w-0"
37752
37567
  }, [
37753
37568
  link({
37754
37569
  href: { $bind: { from: "profilePath" } },
37755
37570
  className: "rb-team-member-name-link"
37756
- }, [text({ as: "h3" }, bind$2("name"))], when$1("profilePath")),
37757
- text({ as: "h3" }, when$1("profilePath", { not: true }), bind$2("name")),
37571
+ }, [text({ as: "h3" }, bind$1("name"))], when("profilePath")),
37572
+ text({ as: "h3" }, when("profilePath", { not: true }), bind$1("name")),
37758
37573
  text({
37759
37574
  as: "p",
37760
37575
  className: "rb-team-member-role"
37761
- }, when$1("role"), bind$2("role")),
37762
- richText$1({ className: "rb-prose rb-max-w-none" }, when$1("bio"), bind$2("bio"))
37576
+ }, when("role"), bind$1("role")),
37577
+ richText({ className: "rb-prose rb-max-w-none" }, when("bio"), bind$1("bio"))
37763
37578
  ])]);
37764
37579
  gridVariant = wrapVariant(el$1("grid", {
37765
37580
  cols: { $bind: {
@@ -37771,12 +37586,12 @@ var init_team_members = __esmMin((() => {
37771
37586
  from: "content.gap",
37772
37587
  fallback: "medium"
37773
37588
  } }
37774
- }, [when$1("content.source", manualSourceWhen)(repeaterFragmentLayout({
37589
+ }, [when("content.source", manualSourceWhen)(repeaterFragmentLayout({
37775
37590
  collectionPath: "content.members",
37776
37591
  itemName: ITEM_NAME,
37777
37592
  fragments: { teamMember: teamMemberFragment },
37778
37593
  itemGap: "sm"
37779
- })), when$1("content.source", dynamicSourceWhen)(repeaterFragmentLayout({
37594
+ })), when("content.source", dynamicSourceWhen)(repeaterFragmentLayout({
37780
37595
  collectionPath: "data.members",
37781
37596
  itemName: ITEM_NAME,
37782
37597
  fragments: { teamMember: teamMemberFragment },
@@ -37788,13 +37603,13 @@ var init_team_members = __esmMin((() => {
37788
37603
  from: "content.gap",
37789
37604
  fallback: "medium"
37790
37605
  } } },
37791
- children: [when$1("content.source", manualSourceWhen)(repeaterFragmentLayout({
37606
+ children: [when("content.source", manualSourceWhen)(repeaterFragmentLayout({
37792
37607
  collectionPath: "content.members",
37793
37608
  itemName: ITEM_NAME,
37794
37609
  fragments: { teamMember: teamMemberFragment },
37795
37610
  layoutOverrides: { teamMember: teamMemberStackLayout },
37796
37611
  itemGap: "sm"
37797
- })), when$1("content.source", dynamicSourceWhen)(repeaterFragmentLayout({
37612
+ })), when("content.source", dynamicSourceWhen)(repeaterFragmentLayout({
37798
37613
  collectionPath: "data.members",
37799
37614
  itemName: ITEM_NAME,
37800
37615
  fragments: { teamMember: teamMemberFragment },
@@ -38402,7 +38217,7 @@ var init_location_map = __esmMin((() => {
38402
38217
  layout: styledSection({
38403
38218
  baseClass: "",
38404
38219
  spacing: "comfortable",
38405
- children: sectionContainer([text({ as: "h2" }, bind$2("content.heading"), when$1("content.heading")), el$1("location-map", {
38220
+ children: sectionContainer([text({ as: "h2" }, bind$1("content.heading"), when("content.heading")), el$1("location-map", {
38406
38221
  location: { $bind: {
38407
38222
  from: "content.location",
38408
38223
  fallback: null
@@ -40569,7 +40384,6 @@ var init_data = __esmMin((() => {
40569
40384
  //#region ../blocks/src/index.ts
40570
40385
  var init_src$2 = __esmMin((() => {
40571
40386
  init_subroutes();
40572
- init_Button();
40573
40387
  init_schema$3();
40574
40388
  init_palette();
40575
40389
  init_generateShades();
@@ -40577,8 +40391,6 @@ var init_src$2 = __esmMin((() => {
40577
40391
  init_generateThemes();
40578
40392
  init_schema$2();
40579
40393
  init_site_styles();
40580
- init_buttons$1();
40581
- init_buttonsLibrary();
40582
40394
  init_tokens();
40583
40395
  init_gradients$1();
40584
40396
  init_gradientsLibrary();
@@ -40900,6 +40712,7 @@ var init_customerMembershipOutcomes = __esmMin((() => {
40900
40712
  "idempotency_amount_mismatch",
40901
40713
  "idempotency_method_mismatch",
40902
40714
  "idempotency_receipt_mismatch",
40715
+ "idempotency_scope_mismatch",
40903
40716
  "refund_in_progress"
40904
40717
  ];
40905
40718
  CANONICAL_REFUND_PLANNER_ERROR_CODES = [
@@ -41349,7 +41162,8 @@ var init_types = __esmMin((() => {
41349
41162
  //#endregion
41350
41163
  //#region ../api/src/siteBanner.ts
41351
41164
  function analyzeSiteBannerBody(body) {
41352
- const sanitizedBody = sanitizeSiteBannerBodyInternal(body, { limitParagraphs: false });
41165
+ const parsed = RichTextDocSchema.safeParse(body);
41166
+ const sanitizedBody = parsed.success ? sanitizeSiteBannerBodyInternal(parsed.data, { limitParagraphs: false }) : EMPTY_SITE_BANNER_BODY;
41353
41167
  const paragraphs = collectParagraphs(sanitizedBody);
41354
41168
  const textLength = paragraphs.reduce((total, paragraph) => total + paragraphTextLength(paragraph), 0);
41355
41169
  const issues = [];
@@ -41371,7 +41185,7 @@ function siteBannerBodyIssueMessage(issue) {
41371
41185
  }
41372
41186
  }
41373
41187
  function sanitizeSiteBannerBodyInternal(input, options) {
41374
- const content = normalizeTopLevelNodes(unwrapRichTextValue(input).content ?? [], options);
41188
+ const content = normalizeTopLevelNodes(input.content, options);
41375
41189
  return {
41376
41190
  type: "doc",
41377
41191
  content: content.length > 0 ? content : EMPTY_SITE_BANNER_BODY.content
@@ -41452,28 +41266,6 @@ function sanitizeMarks(marks) {
41452
41266
  });
41453
41267
  return sanitized.length > 0 ? sanitized : void 0;
41454
41268
  }
41455
- function unwrapRichTextValue(value) {
41456
- if (isRecord$2(value) && isRecord$2(value.doc)) return unwrapRichTextValue(value.doc);
41457
- if (isRecord$2(value) && value.type === "doc") return {
41458
- type: "doc",
41459
- content: Array.isArray(value.content) ? value.content.filter(isTipTapNodeLike).map(coerceTipTapNode) : []
41460
- };
41461
- return EMPTY_SITE_BANNER_BODY;
41462
- }
41463
- function isTipTapNodeLike(value) {
41464
- return isRecord$2(value) && typeof value.type === "string";
41465
- }
41466
- function coerceTipTapNode(value) {
41467
- return {
41468
- type: value.type,
41469
- ...Array.isArray(value.content) ? { content: value.content.filter(isTipTapNodeLike).map(coerceTipTapNode) } : {},
41470
- ...typeof value.text === "string" ? { text: value.text } : {},
41471
- ...Array.isArray(value.marks) ? { marks: value.marks.filter((mark) => isRecord$2(mark) && typeof mark.type === "string").map((mark) => ({
41472
- type: mark.type,
41473
- ...isRecord$2(mark.attrs) ? { attrs: mark.attrs } : {}
41474
- })) } : {}
41475
- };
41476
- }
41477
41269
  function paragraphTextLength(paragraph) {
41478
41270
  return collectText(paragraph).length;
41479
41271
  }
@@ -41486,6 +41278,7 @@ function collectText(node) {
41486
41278
  }
41487
41279
  var SITE_BANNER_SCOPE_VALUES, SITE_BANNER_TONE_VALUES, siteBannerScopeSchema, siteBannerToneSchema, siteBannerBodySchema, siteBannerCtaSchema, siteBannerSettingsSchema, EMPTY_SITE_BANNER_BODY;
41488
41280
  var init_siteBanner = __esmMin((() => {
41281
+ init_richTextSchema();
41489
41282
  init_contracts$1();
41490
41283
  init_isRecord();
41491
41284
  SITE_BANNER_SCOPE_VALUES = ["homepage", "all-pages"];
@@ -41497,7 +41290,7 @@ var init_siteBanner = __esmMin((() => {
41497
41290
  ];
41498
41291
  siteBannerScopeSchema = z$1.enum(SITE_BANNER_SCOPE_VALUES);
41499
41292
  siteBannerToneSchema = z$1.enum(SITE_BANNER_TONE_VALUES);
41500
- siteBannerBodySchema = z$1.unknown().transform(unwrapRichTextValue);
41293
+ siteBannerBodySchema = RichTextDocSchema;
41501
41294
  siteBannerCtaSchema = z$1.object({
41502
41295
  label: z$1.string().trim().min(1),
41503
41296
  link: linkPayloadSchema
@@ -41573,7 +41366,6 @@ var init_contentVersionHistoryClient = __esmMin((() => {
41573
41366
  //#endregion
41574
41367
  //#region ../api/src/blocks.ts
41575
41368
  var init_blocks = __esmMin((() => {
41576
- init_request();
41577
41369
  init_envelope();
41578
41370
  init_error_propagation();
41579
41371
  }));