@riverbankcms/sdk 0.109.0 → 0.111.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 (186) hide show
  1. package/dist/{PreviewEditorSidebar-DWqwfy3_.mjs → PreviewEditorSidebar-CTR6LUhN.mjs} +178 -117
  2. package/dist/{PreviewEditorUI-B7OL4sfR.mjs → PreviewEditorUI-DZg15Zip.mjs} +3 -4
  3. package/dist/{PreviewQueryProvider-D0y2l8JN.mjs → PreviewQueryProvider-kkmjklLG.mjs} +1 -1
  4. package/dist/{SdkPreviewModeRuntime-D8Gt9Gbe.mjs → SdkPreviewModeRuntime-DeOTAFvR.mjs} +229 -219
  5. package/dist/{SiteChromeCustomizeContext-DUpalEdL.mjs → SiteChromeCustomizeContext-DOSDLCiJ.mjs} +1695 -2169
  6. package/dist/_dts/ai/src/contracts/proposals.d.ts +1716 -76
  7. package/dist/_dts/api/src/commercePortalEndpoints.d.ts +5 -5
  8. package/dist/_dts/api/src/contentRuntime.d.ts +4 -1
  9. package/dist/_dts/api/src/courses.d.ts +30 -15
  10. package/dist/_dts/api/src/endpoints.d.ts +14 -4
  11. package/dist/_dts/api/src/index.d.ts +2 -2
  12. package/dist/_dts/api/src/sdkContracts.d.ts +23 -11
  13. package/dist/_dts/api/src/siteManagementEndpoints.d.ts +5 -1
  14. package/dist/_dts/api/src/siteOperations.d.ts +11 -19
  15. package/dist/_dts/api/src/siteRuntimeEndpoints.d.ts +6 -6
  16. package/dist/_dts/api/src/webhooks.d.ts +98 -1
  17. package/dist/_dts/billing/src/site-arrangements.d.ts +3 -0
  18. package/dist/_dts/blocks/src/client/course-registration.d.ts +4 -1
  19. package/dist/_dts/blocks/src/client.d.ts +4 -1
  20. package/dist/_dts/blocks/src/contracts/proof-block-islands.d.ts +4 -4
  21. package/dist/_dts/blocks/src/index.d.ts +3 -1
  22. package/dist/_dts/blocks/src/system/blocks/course-registration.d.ts +2 -1
  23. package/dist/_dts/blocks/src/system/blocks/courses/shared/types.d.ts +2 -1
  24. package/dist/_dts/blocks/src/system/blocks/cta-full.d.ts +2 -4
  25. package/dist/_dts/blocks/src/system/blocks/event-registration.d.ts +2 -1
  26. package/dist/_dts/blocks/src/system/blocks/events/event-listing.d.ts +2 -1
  27. package/dist/_dts/blocks/src/system/blocks/events/event-spotlight.d.ts +2 -1
  28. package/dist/_dts/blocks/src/system/blocks/events/recurring-schedule.d.ts +3 -2
  29. package/dist/_dts/blocks/src/system/blocks/events/shared/types.d.ts +2 -1
  30. package/dist/_dts/blocks/src/system/blocks/file-download.d.ts +2 -1
  31. package/dist/_dts/blocks/src/system/blocks/newsletter-signup.d.ts +2 -1
  32. package/dist/_dts/blocks/src/system/blocks/shop.d.ts +2 -1
  33. package/dist/_dts/blocks/src/system/blocks/single-button.d.ts +2 -1
  34. package/dist/_dts/blocks/src/system/constants/buttonRoles.d.ts +35 -0
  35. package/dist/_dts/blocks/src/system/fields/button.d.ts +10 -21
  36. package/dist/_dts/blocks/src/system/fields/ctas.d.ts +2 -1
  37. package/dist/_dts/blocks/src/system/fragments/library/heroCtaRow.d.ts +9 -5
  38. package/dist/_dts/blocks/src/system/runtime/components/registry.client.d.ts +18 -18
  39. package/dist/_dts/blocks/src/system/runtime/components/runtime-backed-blocks.d.ts +9 -9
  40. package/dist/_dts/blocks/src/system/runtime/hooks/useHeadlessWholeSeriesRegistrationFlow.d.ts +29 -0
  41. package/dist/_dts/blocks/src/system/runtime/nodes/buttonAffordance.d.ts +1 -1
  42. package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/ErrorStep.d.ts +2 -1
  43. package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/PaymentFailedStep.d.ts +2 -1
  44. package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/VerifyingTimeoutStep.d.ts +2 -1
  45. package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/types.d.ts +21 -0
  46. package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/useCourseRegistrationWizard.d.ts +4 -4
  47. package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/whole-series-registration.headless.contract.d.ts +326 -0
  48. package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/whole-series-registration.headless.planning.d.ts +27 -0
  49. package/dist/_dts/blocks/src/system/runtime/nodes/course-registration.interactive.d.ts +5 -4
  50. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/event-registration.headless.contract.d.ts +3 -2
  51. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/types.d.ts +2 -1
  52. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration.interactive.d.ts +5 -4
  53. package/dist/_dts/blocks/src/system/runtime/nodes/file-download.d.ts +2 -3
  54. package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.types.d.ts +2 -1
  55. package/dist/_dts/blocks/src/system/runtime/nodes/shared/contract-schemas.d.ts +6 -3
  56. package/dist/_dts/blocks/src/system/runtime/nodes/shop.interactive.d.ts +7 -6
  57. package/dist/_dts/blocks/src/system/runtime/nodes/shop.types.d.ts +2 -1
  58. package/dist/_dts/blocks/src/system/runtime/shared/types.d.ts +2 -1
  59. package/dist/_dts/content-editor/src/FooterComposerPanel.d.ts +4 -2
  60. package/dist/_dts/content-editor/src/index.d.ts +12 -12
  61. package/dist/_dts/content-editor/src/ui/editorUiStore.d.ts +17 -2
  62. package/dist/_dts/db/src/generated/supabase/database.types.d.ts +221 -53
  63. package/dist/_dts/editor-blocks/src/widgets/button/context.d.ts +3 -2
  64. package/dist/_dts/preview-next/src/client/index.d.ts +3 -2
  65. package/dist/_dts/preview-next/src/client/preview/ButtonStylePicker.d.ts +16 -0
  66. package/dist/_dts/preview-next/src/client/preview/PageBlockEditorPanel.d.ts +2 -3
  67. package/dist/_dts/preview-next/src/client/preview/PreviewDesignOpenRequestContext.d.ts +7 -0
  68. package/dist/_dts/preview-next/src/client/preview/PreviewEditorSidebar.d.ts +5 -11
  69. package/dist/_dts/preview-next/src/client/preview/PreviewShell.d.ts +5 -6
  70. package/dist/_dts/preview-next/src/client/preview/PreviewShellLayout.d.ts +6 -7
  71. package/dist/_dts/preview-next/src/client/preview/SiteChromeCustomizeContext.d.ts +7 -9
  72. package/dist/_dts/preview-next/src/client/preview/StyleConfigurator.d.ts +4 -11
  73. package/dist/_dts/preview-next/src/client/preview/StyleConfigurator.state.d.ts +7 -7
  74. package/dist/_dts/preview-next/src/client/preview/sidebarTabPreference.d.ts +0 -8
  75. package/dist/_dts/preview-next/src/client/preview/siteChromeLookRows.d.ts +1 -11
  76. package/dist/_dts/preview-next/src/client/preview/siteChromeQuickControlHistoryState.d.ts +1 -5
  77. package/dist/_dts/preview-next/src/client/preview/siteChromeSavePlan.d.ts +2 -3
  78. package/dist/_dts/preview-next/src/client/preview/siteStylePreviewPlanner.d.ts +3 -4
  79. package/dist/_dts/preview-next/src/client/preview/styleConfiguratorSnapshot.d.ts +3 -5
  80. package/dist/_dts/sdk/src/bookings/index.d.ts +5 -4
  81. package/dist/_dts/sdk/src/bookings/types.d.ts +3 -3
  82. package/dist/_dts/sdk/src/cli/commands/style.d.ts +3 -2
  83. package/dist/_dts/sdk/src/client/management/types.d.ts +2 -1
  84. package/dist/_dts/sdk/src/contracts/system-block-content.d.ts +12 -15
  85. package/dist/_dts/sdk/src/public-api/contracts.d.ts +1 -1
  86. package/dist/_dts/sdk/src/version.d.ts +1 -1
  87. package/dist/_dts/sdk/src/webhooks/index.d.ts +1 -1
  88. package/dist/_dts/sdk/src/webhooks/verify.d.ts +3 -3
  89. package/dist/_dts/site-commands/src/commands.d.ts +129 -6
  90. package/dist/_dts/theme-core/src/buttons/index.d.ts +1 -1
  91. package/dist/_dts/theme-core/src/buttons/styles/domain.d.ts +80 -0
  92. package/dist/_dts/theme-core/src/buttons/styles/index.d.ts +3 -0
  93. package/dist/_dts/theme-core/src/buttons/styles/recipes/defineStaticButtonStyleRecipe.d.ts +49 -0
  94. package/dist/_dts/theme-core/src/buttons/styles/recipes/quietArrow.d.ts +67 -0
  95. package/dist/_dts/theme-core/src/buttons/styles/recipes/staticRecipes.d.ts +649 -0
  96. package/dist/_dts/theme-core/src/buttons/styles/registry.d.ts +753 -0
  97. package/dist/_dts/theme-core/src/buttons/styles/selection.d.ts +69 -0
  98. package/dist/_dts/theme-core/src/site-styles/curatedSiteStyles.d.ts +26 -24
  99. package/dist/_dts/theme-core/src/site-styles/footerLooks.d.ts +19 -153
  100. package/dist/_dts/theme-core/src/site-styles/headerCtaVariants.d.ts +3 -1
  101. package/dist/_dts/theme-core/src/site-styles/previewCompiler.d.ts +8 -9
  102. package/dist/_dts/theme-core/src/site-styles/runtimeCompiler.d.ts +4 -4
  103. package/dist/_dts/ui/src/palette/hex.d.ts +3 -3
  104. package/dist/cli/index.mjs +1760 -1914
  105. package/dist/cli/init-docs/content/workflow-isr-revalidation.md +1 -1
  106. package/dist/client/{DiscountCodeDisclosure-DU1ygxU2.mjs → DiscountCodeDisclosure-C4xvTBux.mjs} +1 -1
  107. package/dist/client/{EventCombined.client-DB5zagCo.mjs → EventCombined.client-Cr7G131j.mjs} +2 -3
  108. package/dist/client/{EventListing.client-CTX9JHBL.mjs → EventListing.client-CAjbseNy.mjs} +2 -2
  109. package/dist/client/{LeafletStaticMap-BYImhgiB.mjs → LeafletStaticMap-BMlWfwz3.mjs} +1 -1
  110. package/dist/client/{MagicLinkForm-CRkw_M3l.mjs → MagicLinkForm-ChdFz96y.mjs} +1 -2
  111. package/dist/client/{StepIndicator-BnmVBJJh.mjs → StepIndicator-7D3GaBeM.mjs} +2 -2
  112. package/dist/client/{accordion-CeGreumd.mjs → accordion-D8JTs2Si.mjs} +1 -1
  113. package/dist/client/{bookingForm-CSzFNrpN.mjs → bookingForm-H3DCRBHs.mjs} +6 -7
  114. package/dist/client/bookings.mjs +3069 -1447
  115. package/dist/client/{carousel-B2jDtogf.mjs → carousel-DMr_QWlz.mjs} +1 -1
  116. package/dist/client/{cart-D-jZ-vaY.mjs → cart-DWMbfBdR.mjs} +3 -3
  117. package/dist/client/{checkout-Dza-LA7N.mjs → checkout-zmfdkXLx.mjs} +3 -3
  118. package/dist/client/client.mjs +1732 -1913
  119. package/dist/client/{colorStyles-CrgzoXsm.mjs → colorStyles-gcTh5yZT.mjs} +2 -12
  120. package/dist/client/{colorTokenParts-CMugwvX_.mjs → colorTokenParts-FSS3al6l.mjs} +31 -1
  121. package/dist/client/{courseRegistration-TYkNychb.mjs → courseRegistration-Z_mn18jy.mjs} +100 -37
  122. package/dist/client/{eventCalendar-BI_90SsT.mjs → eventCalendar-CYp0YJGF.mjs} +4 -5
  123. package/dist/client/{eventCombined-mNrpryE9.mjs → eventCombined-rKyYZUa9.mjs} +2 -2
  124. package/dist/client/{eventDetails-D4GVlCIY.mjs → eventDetails-X0ZaUuMj.mjs} +3 -3
  125. package/dist/client/{eventListing-YhKN018y.mjs → eventListing-W1SuL7EP.mjs} +2 -2
  126. package/dist/client/{eventRegistration-CdHGtilr.mjs → eventRegistration-ClWricui.mjs} +6 -7
  127. package/dist/client/{form-AcAL45rA.mjs → form--eKPwAAD.mjs} +1 -2
  128. package/dist/client/{headerSection-uEC52ueD.mjs → headerSection-BSeGr-FS.mjs} +2 -3
  129. package/dist/client/hooks.mjs +1554 -1871
  130. package/dist/client/{locationMap-_wJDSUYe.mjs → locationMap-BpOrtNYn.mjs} +8 -5
  131. package/dist/client/{media-BK0O3b-U.mjs → media-DoF0dcVx.mjs} +2 -2
  132. package/dist/client/{newsletterForm-DrArsb2B.mjs → newsletterForm-Bt7it7Dy.mjs} +1 -2
  133. package/dist/client/{pricing-BSYVghwo.mjs → pricing-BTjSDDr4.mjs} +1 -1
  134. package/dist/client/{productDetail-Dyk90sMs.mjs → productDetail-ICnVTcCg.mjs} +3 -3
  135. package/dist/client/{productList-BCKThwAI.mjs → productList-ZHr6D604.mjs} +3 -3
  136. package/dist/client/{propsDecoder-CkXxkdSR.mjs → propsDecoder-wWN0tBDF.mjs} +2351 -129
  137. package/dist/client/rendering/client.mjs +1664 -1824
  138. package/dist/client/rendering/islands.mjs +20 -20
  139. package/dist/client/rendering.mjs +1697 -1909
  140. package/dist/client/{shop-DeltVH10.mjs → shop-C1u_BUn0.mjs} +5 -6
  141. package/dist/client/{shop-commerce-BD9Jsm2Z.mjs → shop-commerce-CleZdRha.mjs} +5 -6
  142. package/dist/client/{shop-commerce-store-CmXD6FDS.mjs → shop-commerce-store-ycnoB2Ce.mjs} +1 -1
  143. package/dist/client/{shopShared-B8v-lH_F.mjs → shopShared-CPhByt2a.mjs} +3 -3
  144. package/dist/client/{useDiscountCodeUi-DbWJN8ld.mjs → useDiscountCodeUi-cStSQI6C.mjs} +1 -1
  145. package/dist/client/{useEventFilters-EJIMUnqT.mjs → useEventFilters-DKPN7hSY.mjs} +26 -27
  146. package/dist/client/{usePolling-Cmh14fc7.mjs → usePolling-BKAd6pkZ.mjs} +2 -2
  147. package/dist/preview-next/before-render.mjs +37 -6
  148. package/dist/preview-next/client/runtime.mjs +4 -4
  149. package/dist/preview-next/middleware.mjs +37 -6
  150. package/dist/{previewAuthStore-CTO7CRPk.mjs → previewAuthStore-BkT1D06A.mjs} +37 -6
  151. package/dist/{sdk-runtime-Dou0GAav.mjs → sdk-runtime-hu3wr3ng.mjs} +2 -2
  152. package/dist/{separator-CI5wZNXT.mjs → separator-Bln8izQ9.mjs} +1 -1
  153. package/dist/server/components.mjs +1472 -1788
  154. package/dist/server/config-validation.mjs +1559 -1876
  155. package/dist/server/config.mjs +1559 -1876
  156. package/dist/server/data.mjs +1554 -1871
  157. package/dist/server/index.mjs +38 -7
  158. package/dist/server/next/revalidate.mjs +53 -1
  159. package/dist/server/next.mjs +1584 -1869
  160. package/dist/server/page-converter.mjs +1543 -1860
  161. package/dist/server/prebuild.mjs +1 -1
  162. package/dist/server/rendering/server.mjs +1472 -1788
  163. package/dist/server/rendering.mjs +1472 -1788
  164. package/dist/server/routing.mjs +1600 -1891
  165. package/dist/server/server.mjs +1574 -1860
  166. package/dist/server/theme-bridge.mjs +1436 -1619
  167. package/dist/server/theme.mjs +1345 -1241
  168. package/dist/server/webhooks.mjs +54 -2
  169. package/package.json +1 -1
  170. package/dist/_dts/theme-core/src/buttons/personalities/brushed-wash.d.ts +0 -16
  171. package/dist/_dts/theme-core/src/buttons/personalities/confident-chip.d.ts +0 -16
  172. package/dist/_dts/theme-core/src/buttons/personalities/earth-pill.d.ts +0 -16
  173. package/dist/_dts/theme-core/src/buttons/personalities/editorial-link.d.ts +0 -16
  174. package/dist/_dts/theme-core/src/buttons/personalities/flat-ink.d.ts +0 -20
  175. package/dist/_dts/theme-core/src/buttons/personalities/index.d.ts +0 -172
  176. package/dist/_dts/theme-core/src/buttons/personalities/ink-stamp.d.ts +0 -16
  177. package/dist/_dts/theme-core/src/buttons/personalities/joy-stamp.d.ts +0 -22
  178. package/dist/_dts/theme-core/src/buttons/personalities/ornate-ritual.d.ts +0 -16
  179. package/dist/_dts/theme-core/src/buttons/personalities/pebble.d.ts +0 -16
  180. package/dist/_dts/theme-core/src/buttons/personalities/quiet-arrow.d.ts +0 -17
  181. package/dist/_dts/theme-core/src/buttons/personalities/showtime-pill.d.ts +0 -17
  182. package/dist/_dts/theme-core/src/buttons/personalities/soft-pill.d.ts +0 -16
  183. package/dist/_dts/theme-core/src/buttons/personalities/two-tone-pill.d.ts +0 -17
  184. package/dist/_dts/theme-core/src/buttons/personalities/types.d.ts +0 -285
  185. package/dist/client/buttons-DoFV7KDL.mjs +0 -2115
  186. package/dist/client/foregroundContract-xICPq59x.mjs +0 -31
@@ -168,7 +168,7 @@ var init_shop_shared = __esmMin((() => {
168
168
  });
169
169
  publicMembershipProductCollectionSchema = z$1.object({ memberships: z$1.array(publicMembershipProductSchema) });
170
170
  }));
171
- var init_types$18 = __esmMin((() => {}));
171
+ var init_types$17 = __esmMin((() => {}));
172
172
  //#endregion
173
173
  //#region ../core/src/result.ts
174
174
  function ok$3(value) {
@@ -1598,7 +1598,7 @@ var init_legacyMediaValue = __esmMin((() => {}));
1598
1598
  //#endregion
1599
1599
  //#region ../media-core/src/index.ts
1600
1600
  var init_src$2 = __esmMin((() => {
1601
- init_types$18();
1601
+ init_types$17();
1602
1602
  init_fileDomain();
1603
1603
  init_fileStorage();
1604
1604
  init_storagePathDomain();
@@ -2450,7 +2450,7 @@ function validateProps(props, context = "node builder") {
2450
2450
  else console.error(message);
2451
2451
  }
2452
2452
  var RESERVED_KEYS;
2453
- var init_types$17 = __esmMin((() => {
2453
+ var init_types$16 = __esmMin((() => {
2454
2454
  init_env();
2455
2455
  RESERVED_KEYS = [
2456
2456
  "children",
@@ -2555,7 +2555,7 @@ function devValidate(node) {
2555
2555
  var section$1, headerSection, stack, inline, accordion, accordionItem, carousel, text, richText, icon, media, fileDownload, videoEmbed, spinner, button, link, form, bookingForm, eventRegistration, shop, productList, productDetail, cart, checkout, gifting, courseRegistration;
2556
2556
  var init_builder$2 = __esmMin((() => {
2557
2557
  init_schema$2();
2558
- init_types$17();
2558
+ init_types$16();
2559
2559
  init_env();
2560
2560
  section$1 = (props, children, ...mods) => el("section", props, children, ...mods);
2561
2561
  headerSection = (props, children, ...mods) => el("headerSection", props, children, ...mods);
@@ -3977,7 +3977,7 @@ function defineBlockDesignCapability(capability) {
3977
3977
  };
3978
3978
  }
3979
3979
  var plainFrame, tileTreatmentValues, eventListTreatmentValues, eyebrowTreatmentValues, visibleHeadingDecorationFamilyValues, headingDecorationOverrideValues, headingDecorationColorTokenValues, noHeadingDecoration, accordionIconSetValues, accordionIconColorTokenValues, accordionIconMotionValues;
3980
- var init_types$16 = __esmMin((() => {
3980
+ var init_types$15 = __esmMin((() => {
3981
3981
  plainFrame = { kind: "plain" };
3982
3982
  tileTreatmentValues = [
3983
3983
  "default",
@@ -4042,14 +4042,14 @@ function defineBlockAppearancePreset(preset) {
4042
4042
  return preset;
4043
4043
  }
4044
4044
  var init_appearancePresetResolution = __esmMin((() => {
4045
- init_types$16();
4045
+ init_types$15();
4046
4046
  }));
4047
4047
  //#endregion
4048
4048
  //#region ../theme-core/src/site-styles/blockAppearancePresets.ts
4049
4049
  var blockAppearancePresets;
4050
4050
  var init_blockAppearancePresets = __esmMin((() => {
4051
4051
  init_appearancePresetResolution();
4052
- init_types$16();
4052
+ init_types$15();
4053
4053
  blockAppearancePresets = [
4054
4054
  defineBlockAppearancePreset({
4055
4055
  kind: "block-design",
@@ -4862,7 +4862,7 @@ function assertUniqueLayoutProfileKeys(profiles) {
4862
4862
  if (duplicates.length > 0) throw new Error(`Duplicate block layout design profiles: ${duplicates.join(", ")}`);
4863
4863
  }
4864
4864
  var init_blockFlow = __esmMin((() => {
4865
- init_types$16();
4865
+ init_types$15();
4866
4866
  }));
4867
4867
  var init_classic_professional = __esmMin((() => {}));
4868
4868
  //#endregion
@@ -5349,7 +5349,7 @@ var init_all = __esmMin((() => {
5349
5349
  }));
5350
5350
  //#endregion
5351
5351
  //#region ../theme-core/src/palette/types.ts
5352
- var init_types$15 = __esmMin((() => {}));
5352
+ var init_types$14 = __esmMin((() => {}));
5353
5353
  //#endregion
5354
5354
  //#region ../../node_modules/.pnpm/@vibrant+image@4.0.4/node_modules/@vibrant/image/dist/esm/histogram.js
5355
5355
  var Histogram;
@@ -6763,7 +6763,7 @@ function defineCuratedPalette(input) {
6763
6763
  };
6764
6764
  }
6765
6765
  var curatedPaletteAuthoringKeySchema;
6766
- var init_types$14 = __esmMin((() => {
6766
+ var init_types$13 = __esmMin((() => {
6767
6767
  init_styleTags();
6768
6768
  init_themeColorTokens();
6769
6769
  init_colors();
@@ -6804,7 +6804,7 @@ var init_types$14 = __esmMin((() => {
6804
6804
  //#region ../theme-core/src/palette/curated/brand-led.ts
6805
6805
  var brandLedCool, brandLedWarm, brandLedJewel, brandLedSpruce, brandLedBurgundyGold;
6806
6806
  var init_brand_led = __esmMin((() => {
6807
- init_types$14();
6807
+ init_types$13();
6808
6808
  brandLedCool = defineCuratedPalette({
6809
6809
  authoringKey: "brand-led-cool",
6810
6810
  name: "Brand-led — Cool",
@@ -7135,7 +7135,7 @@ var init_brand_led = __esmMin((() => {
7135
7135
  //#region ../theme-core/src/palette/curated/high-contrast.ts
7136
7136
  var highContrastInk, highContrastCharcoal, highContrastMonochrome;
7137
7137
  var init_high_contrast = __esmMin((() => {
7138
- init_types$14();
7138
+ init_types$13();
7139
7139
  highContrastInk = defineCuratedPalette({
7140
7140
  authoringKey: "high-contrast-ink",
7141
7141
  name: "High Contrast — Ink",
@@ -7336,7 +7336,7 @@ var init_high_contrast = __esmMin((() => {
7336
7336
  //#region ../theme-core/src/palette/curated/soft-natural.ts
7337
7337
  var softNaturalSage, softNaturalStone, softNaturalWatercolor, softNaturalLilac;
7338
7338
  var init_soft_natural = __esmMin((() => {
7339
- init_types$14();
7339
+ init_types$13();
7340
7340
  softNaturalSage = defineCuratedPalette({
7341
7341
  authoringKey: "soft-natural-sage",
7342
7342
  name: "Soft Natural — Sage",
@@ -7602,7 +7602,7 @@ var init_soft_natural = __esmMin((() => {
7602
7602
  //#region ../theme-core/src/palette/curated/warm-neutral.ts
7603
7603
  var warmNeutralClay, warmNeutralCream, warmNeutralSoftEarth, warmNeutralForest;
7604
7604
  var init_warm_neutral = __esmMin((() => {
7605
- init_types$14();
7605
+ init_types$13();
7606
7606
  warmNeutralClay = defineCuratedPalette({
7607
7607
  authoringKey: "warm-neutral-clay",
7608
7608
  name: "Warm Neutral — Clay",
@@ -7868,7 +7868,7 @@ var init_warm_neutral = __esmMin((() => {
7868
7868
  //#region ../theme-core/src/palette/curated/warm-dark.ts
7869
7869
  var warmDarkEmber, warmDarkKirtanGold;
7870
7870
  var init_warm_dark = __esmMin((() => {
7871
- init_types$14();
7871
+ init_types$13();
7872
7872
  warmDarkEmber = defineCuratedPalette({
7873
7873
  authoringKey: "warm-dark-ember",
7874
7874
  name: "Warm Dark — Ember",
@@ -8034,7 +8034,7 @@ var init_curated = __esmMin((() => {
8034
8034
  init_soft_natural();
8035
8035
  init_warm_neutral();
8036
8036
  init_warm_dark();
8037
- init_types$14();
8037
+ init_types$13();
8038
8038
  curatedPalettes = [
8039
8039
  admitCuratedPaletteDefinition(brandLedCool),
8040
8040
  admitCuratedPaletteDefinition(brandLedWarm),
@@ -8080,7 +8080,7 @@ var init_curated = __esmMin((() => {
8080
8080
  var init_resolveSelection = __esmMin((() => {
8081
8081
  init_curated();
8082
8082
  })), sitePaletteIdSchema, sitePaletteVersionSchema, paletteSelectionSchema, onboardingPaletteOriginSchema, curatedForkPaletteOriginSchema, manualPaletteOriginSchema, legacyCustomizedPaletteOriginSchema, sitePaletteOriginSchema, editorSitePaletteOriginSchema;
8083
- var init_selection = __esmMin((() => {
8083
+ var init_selection$1 = __esmMin((() => {
8084
8084
  init_colors();
8085
8085
  init_curated();
8086
8086
  sitePaletteIdSchema = z$1.string().uuid().transform((value) => value);
@@ -8147,12 +8147,12 @@ var init_persistenceReadSource = __esmMin((() => {
8147
8147
  init_curated();
8148
8148
  init_colors();
8149
8149
  init_resolveSelection();
8150
- init_selection();
8150
+ init_selection$1();
8151
8151
  }));
8152
8152
  var init_sitePalettePersistence = __esmMin((() => {
8153
8153
  init_curated();
8154
8154
  init_colors();
8155
- init_selection();
8155
+ init_selection$1();
8156
8156
  }));
8157
8157
  var init_fromVibrant = __esmMin((() => {
8158
8158
  init_utils$6();
@@ -8166,7 +8166,7 @@ var init_palette$1 = __esmMin((() => {
8166
8166
  init_generateCssVars();
8167
8167
  init_generateShades();
8168
8168
  init_neutralScale();
8169
- init_types$15();
8169
+ init_types$14();
8170
8170
  init_utils$6();
8171
8171
  init_paletteAccess();
8172
8172
  init_extractPalette();
@@ -8175,7 +8175,7 @@ var init_palette$1 = __esmMin((() => {
8175
8175
  init_libraryModel();
8176
8176
  init_persistenceReadSource();
8177
8177
  init_resolveSelection();
8178
- init_selection();
8178
+ init_selection$1();
8179
8179
  init_sitePalettePersistence();
8180
8180
  init_fromVibrant();
8181
8181
  init_suggestRecipes();
@@ -8407,7 +8407,7 @@ var init_backgroundAppearance = __esmMin((() => {
8407
8407
  backgroundAppearanceColorTokenNameSet = new Set(backgroundAppearanceColorTokenNames);
8408
8408
  }));
8409
8409
  var init_compositionBudget = __esmMin((() => {
8410
- init_types$16();
8410
+ init_types$15();
8411
8411
  }));
8412
8412
  var init_schemaVersionedJson = __esmMin((() => {}));
8413
8413
  //#endregion
@@ -8425,7 +8425,7 @@ function boundaryRuntimeMetricsForTransition(transition) {
8425
8425
  }
8426
8426
  var sectionBoundaryRuntimeMetricsByTransition, noneBoundaryOption, softBoundaryOption, spaciousBoundaryOption;
8427
8427
  var init_sectionTransitions = __esmMin((() => {
8428
- init_types$16();
8428
+ init_types$15();
8429
8429
  sectionBoundaryRuntimeMetricsByTransition = {
8430
8430
  none: null,
8431
8431
  "soft-fade-short": boundaryRuntimeMetrics("gradient", "medium", "6rem + 2px"),
@@ -8514,7 +8514,7 @@ function boundaryKey$1(previousBlockId, nextBlockId) {
8514
8514
  }
8515
8515
  var pageDesignUserPinnedAppearanceChoiceSchema, pageDesignUserPinnedBoundaryChoiceSchema, pageDesignBoundaryTreatmentSchema, pageDesignUserPinnedBoundaryTreatmentChoiceSchema, pageDesignBlockLookPinSchema, pageDesignBoundaryPinSchema, legacyPageDesignBoundaryPinSchema;
8516
8516
  var init_pageDesignIntent = __esmMin((() => {
8517
- init_types$16();
8517
+ init_types$15();
8518
8518
  init_schemaVersionedJson();
8519
8519
  init_sectionTransitions();
8520
8520
  asBoundaryOptionId("break:unknown");
@@ -8619,7 +8619,7 @@ var init_pageDesignIntent = __esmMin((() => {
8619
8619
  var init_contentTemplateDesignIntent = __esmMin((() => {
8620
8620
  init_pageDesignIntent();
8621
8621
  init_sectionTransitions();
8622
- init_types$16();
8622
+ init_types$15();
8623
8623
  }));
8624
8624
  //#endregion
8625
8625
  //#region ../theme-core/src/buttons/effectClassification.ts
@@ -8877,7 +8877,7 @@ function isUnknownArray$4(value) {
8877
8877
  return Array.isArray(value);
8878
8878
  }
8879
8879
  var VARIANT_ROLES, DEFAULT_VARIANT_ALIAS_ID, 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;
8880
- var init_types$13 = __esmMin((() => {
8880
+ var init_types$12 = __esmMin((() => {
8881
8881
  init_effectClassification();
8882
8882
  init_themeColorTokens();
8883
8883
  init_colorTokenParts();
@@ -9112,269 +9112,451 @@ var init_types$13 = __esmMin((() => {
9112
9112
  });
9113
9113
  }));
9114
9114
  //#endregion
9115
- //#region ../theme-core/src/buttons/personalities/types.ts
9116
- function asButtonPersonalityId(value) {
9117
- if (value.length === 0) throw new Error("ButtonPersonalityId must be a non-empty string");
9118
- return value;
9115
+ //#region ../theme-core/src/buttons/styles/domain.ts
9116
+ function defineButtonStyleRecipe(recipe) {
9117
+ return recipe;
9119
9118
  }
9120
- /**
9121
- * Helper for personality file modules to keep the call site short and
9122
- * type-safe. `as const satisfies ...` would also work but produces wider
9123
- * types at use sites.
9124
- */
9125
- function defineButtonPersonality(input) {
9119
+ function materializeButtonRoles(definitions) {
9120
+ const primary = materializeCompleteRole("primary", definitions.primary.appearance);
9121
+ const secondary = materializeCompleteRole("secondary", definitions.secondary.appearance);
9122
+ const completeRoles = {
9123
+ primary,
9124
+ secondary
9125
+ };
9126
9126
  return {
9127
- id: asButtonPersonalityId(input.id),
9128
- name: input.name,
9129
- description: input.description,
9130
- tags: input.tags,
9131
- buttonSystem: buttonSystemSchema.parse(input.buttonSystem)
9127
+ primary,
9128
+ secondary,
9129
+ outline: materializeSupportingRole("outline", definitions.outline, completeRoles),
9130
+ ghost: materializeSupportingRole("ghost", definitions.ghost, completeRoles),
9131
+ accent: materializeSupportingRole("accent", definitions.accent, completeRoles)
9132
9132
  };
9133
9133
  }
9134
- var buttonPersonalityIdSchema;
9135
- var init_types$12 = __esmMin((() => {
9136
- init_types$13();
9137
- init_styleTags();
9138
- buttonPersonalityIdSchema = z$1.string().min(1).transform((value) => asButtonPersonalityId(value));
9139
- z$1.object({
9140
- id: buttonPersonalityIdSchema,
9141
- name: z$1.string().min(1),
9142
- description: z$1.string().min(1),
9143
- tags: styleTagsSchema,
9144
- buttonSystem: buttonSystemSchema
9145
- });
9134
+ function resolveButtonStyleRecipe(recipe, parameters) {
9135
+ const parsedParameters = recipe.parameterSchema.safeParse(parameters);
9136
+ if (!parsedParameters.success) return {
9137
+ kind: "error",
9138
+ error: {
9139
+ kind: "invalid-parameters",
9140
+ styleId: recipe.id,
9141
+ issues: parsedParameters.error.issues.map((issue) => issue.message)
9142
+ }
9143
+ };
9144
+ const definition = recipe.defineSystem(parsedParameters.data);
9145
+ const roles = materializeButtonRoles(definition.roles);
9146
+ const buttonSystem = {
9147
+ global: definition.global,
9148
+ variants: PUBLIC_BUTTON_ROLES.map((role) => roles[role]),
9149
+ ...definition.sizes ? { sizes: definition.sizes } : {}
9150
+ };
9151
+ const parsedButtonSystem = buttonSystemSchema.safeParse(buttonSystem);
9152
+ if (!parsedButtonSystem.success) return {
9153
+ kind: "error",
9154
+ error: {
9155
+ kind: "invalid-button-system",
9156
+ styleId: recipe.id,
9157
+ issues: parsedButtonSystem.error.issues.map((issue) => issue.message)
9158
+ }
9159
+ };
9160
+ return {
9161
+ kind: "resolved",
9162
+ buttonSystem: parsedButtonSystem.data
9163
+ };
9164
+ }
9165
+ function materializeSupportingRole(role, definition, completeRoles) {
9166
+ if (definition.kind === "complete") return materializeCompleteRole(role, definition.appearance);
9167
+ return {
9168
+ ...completeRoles[definition.from],
9169
+ ...definition.overrides,
9170
+ id: role,
9171
+ name: roleName(role),
9172
+ enabled: true,
9173
+ priority: 3
9174
+ };
9175
+ }
9176
+ function materializeCompleteRole(role, appearance) {
9177
+ return {
9178
+ ...appearance,
9179
+ id: role,
9180
+ name: roleName(role),
9181
+ enabled: true,
9182
+ priority: rolePriority(role)
9183
+ };
9184
+ }
9185
+ function roleName(role) {
9186
+ return role.charAt(0).toUpperCase() + role.slice(1);
9187
+ }
9188
+ function rolePriority(role) {
9189
+ if (role === "primary") return 1;
9190
+ if (role === "secondary") return 2;
9191
+ return 3;
9192
+ }
9193
+ var PUBLIC_BUTTON_ROLES;
9194
+ var init_domain = __esmMin((() => {
9195
+ init_types$12();
9196
+ PUBLIC_BUTTON_ROLES = [
9197
+ "primary",
9198
+ "secondary",
9199
+ "outline",
9200
+ "ghost",
9201
+ "accent"
9202
+ ];
9146
9203
  }));
9147
9204
  //#endregion
9148
- //#region ../theme-core/src/buttons/personalities/brushed-wash.ts
9149
- var brushedWash;
9150
- var init_brushed_wash = __esmMin((() => {
9205
+ //#region ../theme-core/src/buttons/styles/selection.ts
9206
+ function selectionBranch(styleId, parameters) {
9207
+ return z$1.object({
9208
+ styleId: z$1.literal(styleId),
9209
+ parameters
9210
+ }).strict();
9211
+ }
9212
+ var BUTTON_STYLE_IDS, quietArrowParametersSchema, emptyParametersSchema$1, buttonStyleSelectionWireSchema, buttonStyleSelectionSchema;
9213
+ var init_selection = __esmMin((() => {
9214
+ BUTTON_STYLE_IDS = [
9215
+ "soft-pill",
9216
+ "earth-pill",
9217
+ "confident-chip",
9218
+ "editorial-link",
9219
+ "pebble",
9220
+ "ink-stamp",
9221
+ "flat-ink",
9222
+ "brushed-wash",
9223
+ "showtime-pill",
9224
+ "joy-stamp",
9225
+ "ornate-ritual",
9226
+ "quiet-arrow"
9227
+ ];
9228
+ quietArrowParametersSchema = z$1.object({ secondaryTreatment: z$1.enum(["outlined", "solid-accent"]) }).strict();
9229
+ emptyParametersSchema$1 = z$1.object({}).strict();
9230
+ buttonStyleSelectionWireSchema = z$1.discriminatedUnion("styleId", [
9231
+ selectionBranch("soft-pill", emptyParametersSchema$1),
9232
+ selectionBranch("earth-pill", emptyParametersSchema$1),
9233
+ selectionBranch("confident-chip", emptyParametersSchema$1),
9234
+ selectionBranch("editorial-link", emptyParametersSchema$1),
9235
+ selectionBranch("pebble", emptyParametersSchema$1),
9236
+ selectionBranch("ink-stamp", emptyParametersSchema$1),
9237
+ selectionBranch("flat-ink", emptyParametersSchema$1),
9238
+ selectionBranch("brushed-wash", emptyParametersSchema$1),
9239
+ selectionBranch("showtime-pill", emptyParametersSchema$1),
9240
+ selectionBranch("joy-stamp", emptyParametersSchema$1),
9241
+ selectionBranch("ornate-ritual", emptyParametersSchema$1),
9242
+ selectionBranch("quiet-arrow", quietArrowParametersSchema)
9243
+ ]);
9244
+ buttonStyleSelectionSchema = buttonStyleSelectionWireSchema;
9245
+ }));
9246
+ //#endregion
9247
+ //#region ../theme-core/src/buttons/styles/recipes/quietArrow.ts
9248
+ var quietArrowRecipe;
9249
+ var init_quietArrow = __esmMin((() => {
9250
+ init_domain();
9151
9251
  init_types$12();
9152
- brushedWash = defineButtonPersonality({
9153
- id: "brushed-wash",
9154
- name: "Brushed Wash",
9155
- description: "Watercolour-gradient buttons with soft shadows and generous padding.",
9252
+ init_selection();
9253
+ quietArrowRecipe = defineButtonStyleRecipe({
9254
+ id: "quiet-arrow",
9255
+ accessibilityLabel: "Wide uppercase buttons with trailing arrows",
9156
9256
  tags: {
9157
9257
  tone: "classic",
9158
- energy: "vibrant",
9159
- motion: "standard",
9160
- era: "organic"
9258
+ energy: "calm",
9259
+ motion: "subtle",
9260
+ era: "editorial"
9161
9261
  },
9162
- buttonSystem: {
9262
+ parameterSchema: quietArrowParametersSchema,
9263
+ defaultParameters: { secondaryTreatment: "outlined" },
9264
+ controls: [{
9265
+ kind: "choice",
9266
+ parameter: "secondaryTreatment",
9267
+ label: "Secondary button treatment",
9268
+ options: [{
9269
+ value: "outlined",
9270
+ label: "Outlined"
9271
+ }, {
9272
+ value: "solid-accent",
9273
+ label: "Solid accent"
9274
+ }]
9275
+ }],
9276
+ defineSystem: (parameters) => ({
9163
9277
  global: {
9164
9278
  cornerStyle: "rounded",
9165
- shadow: "low",
9166
- textTransform: "none",
9279
+ textTransform: "uppercase",
9167
9280
  fontWeight: 500,
9168
9281
  borderWidth: 1,
9282
+ typography: "body",
9283
+ fontSize: "text-sm",
9284
+ letterSpacing: "loose",
9169
9285
  hoverTransform: "none",
9170
9286
  hoverColor: "none"
9171
9287
  },
9172
9288
  sizes: {
9173
9289
  sm: {
9174
- padding: "0.75rem 2rem",
9290
+ padding: "0.625rem 1.25rem",
9291
+ fontSize: "text-xs"
9292
+ },
9293
+ md: {
9294
+ padding: "0.8125rem 1.75rem",
9175
9295
  fontSize: "text-sm"
9176
9296
  },
9177
- md: { padding: "1rem 2.5rem" },
9178
9297
  lg: {
9179
- padding: "1.25rem 3rem",
9180
- fontSize: "text-lg"
9298
+ padding: "0.9375rem 2.125rem",
9299
+ fontSize: "text-sm"
9181
9300
  },
9182
9301
  xl: {
9183
- padding: "1.625rem 3.75rem",
9184
- fontSize: "text-xl"
9302
+ padding: "1.0625rem 2.5rem",
9303
+ fontSize: "text-base"
9185
9304
  }
9186
9305
  },
9187
- variants: [
9188
- {
9189
- id: "primary",
9190
- name: "Primary",
9191
- enabled: true,
9192
- priority: 1,
9193
- background: {
9194
- type: "gradient",
9195
- stops: ["primary", "accent"],
9196
- direction: "to-r",
9197
- foregroundToken: "primaryForeground"
9198
- },
9199
- borderRadius: "rounded-lg",
9200
- shadow: {
9201
- elevation: "low",
9202
- softness: "soft",
9203
- position: "bottom"
9306
+ roles: {
9307
+ primary: {
9308
+ kind: "complete",
9309
+ appearance: {
9310
+ background: {
9311
+ type: "solid",
9312
+ colorToken: unsafeAsOpaqueButtonColourToken("primary")
9313
+ },
9314
+ borderRadius: "rounded-xl",
9315
+ affordance: { iconId: "ArrowRight" },
9316
+ effects: { hover: [{
9317
+ effectId: "darken-background",
9318
+ options: { amount: 100 }
9319
+ }] }
9204
9320
  }
9205
9321
  },
9206
- {
9207
- id: "secondary",
9208
- name: "Secondary",
9209
- enabled: true,
9210
- priority: 2,
9211
- background: {
9212
- type: "gradient",
9213
- stops: ["secondary", "accent"],
9214
- direction: "to-br",
9215
- foregroundToken: "primaryForeground"
9216
- },
9217
- borderRadius: "rounded-lg",
9218
- shadow: {
9219
- elevation: "low",
9220
- softness: "soft",
9221
- position: "bottom"
9322
+ secondary: {
9323
+ kind: "complete",
9324
+ appearance: parameters.secondaryTreatment === "solid-accent" ? {
9325
+ background: {
9326
+ type: "solid",
9327
+ colorToken: unsafeAsOpaqueButtonColourToken("accent")
9328
+ },
9329
+ borderRadius: "rounded-xl",
9330
+ affordance: { iconId: "ArrowRight" },
9331
+ effects: { hover: [{
9332
+ effectId: "darken-background",
9333
+ options: { amount: 100 }
9334
+ }] }
9335
+ } : {
9336
+ background: {
9337
+ type: "surface",
9338
+ role: "link"
9339
+ },
9340
+ borderRadius: "rounded-xl",
9341
+ border: { widthClass: "border" },
9342
+ affordance: { iconId: "ArrowRight" },
9343
+ effects: { hover: [{
9344
+ effectId: "background-on-hover",
9345
+ options: { colorToken: "surfaceAlt" }
9346
+ }] }
9222
9347
  }
9223
9348
  },
9224
- {
9225
- id: "outline",
9226
- name: "Outline",
9227
- enabled: true,
9228
- priority: 3,
9229
- background: {
9230
- type: "surface",
9231
- role: "link"
9232
- },
9233
- borderRadius: "rounded-lg",
9234
- border: { widthClass: "border" },
9235
- effects: { hover: [{
9236
- effectId: "background-on-hover",
9237
- options: { colorToken: "surface" }
9238
- }] }
9349
+ outline: {
9350
+ kind: "complete",
9351
+ appearance: {
9352
+ background: {
9353
+ type: "surface",
9354
+ role: "link"
9355
+ },
9356
+ borderRadius: "rounded-xl",
9357
+ border: { widthClass: "border" }
9358
+ }
9239
9359
  },
9240
- {
9241
- id: "ghost",
9242
- name: "Ghost",
9243
- enabled: true,
9244
- priority: 3,
9245
- background: {
9246
- type: "surface",
9247
- role: "link"
9248
- },
9249
- borderRadius: "rounded-lg",
9250
- effects: { hover: [{
9251
- effectId: "background-on-hover",
9252
- options: { colorToken: "surface" }
9253
- }] }
9360
+ ghost: {
9361
+ kind: "complete",
9362
+ appearance: {
9363
+ background: {
9364
+ type: "surface",
9365
+ role: "link"
9366
+ },
9367
+ borderRadius: "rounded-xl"
9368
+ }
9369
+ },
9370
+ accent: {
9371
+ kind: "derive",
9372
+ from: "primary",
9373
+ overrides: { background: {
9374
+ type: "solid",
9375
+ colorToken: unsafeAsOpaqueButtonColourToken("accent")
9376
+ } }
9254
9377
  }
9255
- ]
9256
- }
9378
+ }
9379
+ })
9257
9380
  });
9258
9381
  }));
9259
9382
  //#endregion
9260
- //#region ../theme-core/src/buttons/personalities/confident-chip.ts
9261
- var confidentChip;
9262
- var init_confident_chip = __esmMin((() => {
9383
+ //#region ../theme-core/src/buttons/styles/recipes/defineStaticButtonStyleRecipe.ts
9384
+ function defineStaticButtonStyleRecipe(input) {
9385
+ const system = normalizeSystem(input.system);
9386
+ return defineButtonStyleRecipe({
9387
+ id: input.id,
9388
+ accessibilityLabel: input.accessibilityLabel,
9389
+ tags: input.tags,
9390
+ parameterSchema: emptyParametersSchema,
9391
+ defaultParameters: {},
9392
+ controls: [],
9393
+ defineSystem: () => system
9394
+ });
9395
+ }
9396
+ function normalizeSystem(input) {
9397
+ return {
9398
+ global: buttonGlobalSettingsSchema.parse(input.global),
9399
+ ...input.sizes ? { sizes: input.sizes } : {},
9400
+ roles: {
9401
+ primary: normalizeCompleteRole(input.roles.primary),
9402
+ secondary: normalizeCompleteRole(input.roles.secondary),
9403
+ outline: normalizeSupportingRole(input.roles.outline),
9404
+ ghost: normalizeSupportingRole(input.roles.ghost),
9405
+ accent: normalizeSupportingRole(input.roles.accent)
9406
+ }
9407
+ };
9408
+ }
9409
+ function normalizeCompleteRole(role) {
9410
+ return {
9411
+ kind: "complete",
9412
+ appearance: normalizeAppearance(role.appearance)
9413
+ };
9414
+ }
9415
+ function normalizeSupportingRole(role) {
9416
+ if (role.kind === "complete") return normalizeCompleteRole(role);
9417
+ return {
9418
+ kind: "derive",
9419
+ from: role.from,
9420
+ ...role.overrides ? { overrides: normalizeAppearanceOverrides(role.overrides) } : {}
9421
+ };
9422
+ }
9423
+ function normalizeAppearance(appearance) {
9424
+ const { background, hoverBackgroundToken, ...rest } = appearance;
9425
+ return {
9426
+ ...rest,
9427
+ background: buttonColourTreatmentSchema.parse(background),
9428
+ ...hoverBackgroundToken ? { hoverBackgroundToken: opaqueButtonColourTokenSchema.parse(hoverBackgroundToken) } : {}
9429
+ };
9430
+ }
9431
+ function normalizeAppearanceOverrides(overrides) {
9432
+ const { background, hoverBackgroundToken, ...rest } = overrides;
9433
+ return {
9434
+ ...rest,
9435
+ ...background ? { background: buttonColourTreatmentSchema.parse(background) } : {},
9436
+ ...hoverBackgroundToken ? { hoverBackgroundToken: opaqueButtonColourTokenSchema.parse(hoverBackgroundToken) } : {}
9437
+ };
9438
+ }
9439
+ var emptyParametersSchema;
9440
+ var init_defineStaticButtonStyleRecipe = __esmMin((() => {
9263
9441
  init_types$12();
9264
- confidentChip = defineButtonPersonality({
9265
- id: "confident-chip",
9266
- name: "Confident Chip",
9267
- description: "Mid-radius solid buttons with a crisp hover.",
9442
+ init_domain();
9443
+ emptyParametersSchema = z$1.object({}).strict();
9444
+ }));
9445
+ //#endregion
9446
+ //#region ../theme-core/src/buttons/styles/recipes/staticRecipes.ts
9447
+ var softPillRecipe, earthPillRecipe, confidentChipRecipe, editorialSizes, editorialLinkRecipe, pebbleRecipe, brushedWashRecipe, inkStampRecipe, flatInkRecipe, showtimePillRecipe, joyStampRecipe, ornateGhostSizes, ornateRitualRecipe;
9448
+ var init_staticRecipes = __esmMin((() => {
9449
+ init_defineStaticButtonStyleRecipe();
9450
+ softPillRecipe = defineStaticButtonStyleRecipe({
9451
+ id: "soft-pill",
9452
+ accessibilityLabel: "Rounded pill buttons with a gentle hover lift",
9268
9453
  tags: {
9269
9454
  tone: "classic",
9270
9455
  energy: "calm",
9271
- motion: "standard",
9272
- era: "modern"
9456
+ motion: "subtle",
9457
+ era: "organic"
9273
9458
  },
9274
- buttonSystem: {
9459
+ system: {
9275
9460
  global: {
9276
- cornerStyle: "rounded",
9277
- shadow: "medium",
9461
+ cornerStyle: "pill",
9462
+ shadow: "low",
9278
9463
  textTransform: "none",
9279
- fontWeight: 600,
9280
- borderWidth: 1,
9281
- hoverTransform: "none",
9464
+ fontWeight: 500,
9465
+ borderWidth: 2,
9466
+ hoverTransform: "lift",
9282
9467
  hoverColor: "none"
9283
9468
  },
9284
- variants: [
9285
- {
9286
- id: "primary",
9287
- name: "Primary",
9288
- enabled: true,
9289
- priority: 1,
9290
- background: {
9291
- type: "solid",
9292
- colorToken: "primary"
9293
- },
9294
- borderRadius: "rounded-md",
9295
- shadow: {
9296
- elevation: "medium",
9297
- softness: "soft",
9298
- position: "bottom"
9299
- },
9300
- effects: {
9301
- hover: [{
9302
- effectId: "darken-background",
9303
- options: { amount: 100 }
9304
- }],
9305
- active: [{
9306
- effectId: "scale-down",
9307
- options: { scale: "0.97" }
9308
- }]
9469
+ roles: {
9470
+ primary: {
9471
+ kind: "complete",
9472
+ appearance: {
9473
+ background: {
9474
+ type: "solid",
9475
+ colorToken: "primary"
9476
+ },
9477
+ borderRadius: "rounded-full",
9478
+ shadow: {
9479
+ elevation: "low",
9480
+ softness: "soft",
9481
+ position: "bottom"
9482
+ },
9483
+ effects: {
9484
+ hover: [{
9485
+ effectId: "lift",
9486
+ options: { translateY: "-1px" }
9487
+ }],
9488
+ active: [{
9489
+ effectId: "scale-down",
9490
+ options: { scale: "0.98" }
9491
+ }]
9492
+ }
9309
9493
  }
9310
9494
  },
9311
- {
9312
- id: "secondary",
9313
- name: "Secondary",
9314
- enabled: true,
9315
- priority: 2,
9316
- background: {
9317
- type: "solid",
9318
- colorToken: "surface"
9319
- },
9320
- borderRadius: "rounded-md",
9321
- border: { widthClass: "border" },
9322
- effects: { hover: [{
9323
- effectId: "background-on-hover",
9324
- options: { colorToken: "background" }
9325
- }] }
9495
+ secondary: {
9496
+ kind: "complete",
9497
+ appearance: {
9498
+ background: {
9499
+ type: "surface",
9500
+ role: "link"
9501
+ },
9502
+ borderRadius: "rounded-full",
9503
+ border: { widthClass: "border-2" },
9504
+ effects: { hover: [{
9505
+ effectId: "background-on-hover",
9506
+ options: { colorToken: "surface" }
9507
+ }] }
9508
+ }
9326
9509
  },
9327
- {
9328
- id: "outline",
9329
- name: "Outline",
9330
- enabled: true,
9331
- priority: 3,
9332
- background: {
9333
- type: "surface",
9334
- role: "link"
9335
- },
9336
- borderRadius: "rounded-md",
9337
- border: { widthClass: "border" },
9338
- effects: { hover: [{
9339
- effectId: "background-on-hover",
9340
- options: { colorToken: "surface" }
9341
- }] }
9510
+ outline: {
9511
+ kind: "complete",
9512
+ appearance: {
9513
+ background: {
9514
+ type: "surface",
9515
+ role: "link"
9516
+ },
9517
+ borderRadius: "rounded-full",
9518
+ border: { widthClass: "border" },
9519
+ effects: { hover: [{
9520
+ effectId: "background-on-hover",
9521
+ options: { colorToken: "surface" }
9522
+ }] }
9523
+ }
9342
9524
  },
9343
- {
9344
- id: "ghost",
9345
- name: "Ghost",
9346
- enabled: true,
9347
- priority: 3,
9348
- background: {
9349
- type: "surface",
9350
- role: "link"
9351
- },
9352
- borderRadius: "rounded-md",
9353
- effects: { hover: [{
9354
- effectId: "background-on-hover",
9355
- options: { colorToken: "surface" }
9356
- }] }
9525
+ ghost: {
9526
+ kind: "complete",
9527
+ appearance: {
9528
+ background: {
9529
+ type: "surface",
9530
+ role: "link"
9531
+ },
9532
+ borderRadius: "rounded-full",
9533
+ effects: { hover: [{
9534
+ effectId: "background-on-hover",
9535
+ options: { colorToken: "surface" }
9536
+ }] }
9537
+ }
9538
+ },
9539
+ accent: {
9540
+ kind: "derive",
9541
+ from: "primary",
9542
+ overrides: { background: {
9543
+ type: "solid",
9544
+ colorToken: "accent"
9545
+ } }
9357
9546
  }
9358
- ]
9547
+ }
9359
9548
  }
9360
9549
  });
9361
- }));
9362
- //#endregion
9363
- //#region ../theme-core/src/buttons/personalities/earth-pill.ts
9364
- var earthPill;
9365
- var init_earth_pill = __esmMin((() => {
9366
- init_types$12();
9367
- earthPill = defineButtonPersonality({
9550
+ earthPillRecipe = defineStaticButtonStyleRecipe({
9368
9551
  id: "earth-pill",
9369
- name: "Earth Pill",
9370
- description: "Compact terracotta pills with quiet primary-coloured ghost CTAs.",
9552
+ accessibilityLabel: "Compact rounded buttons with a quiet hover lift",
9371
9553
  tags: {
9372
9554
  tone: "classic",
9373
9555
  energy: "calm",
9374
9556
  motion: "subtle",
9375
9557
  era: "organic"
9376
9558
  },
9377
- buttonSystem: {
9559
+ system: {
9378
9560
  global: {
9379
9561
  cornerStyle: "pill",
9380
9562
  shadow: "low",
@@ -9401,119 +9583,222 @@ var init_earth_pill = __esmMin((() => {
9401
9583
  fontSize: "text-xl"
9402
9584
  }
9403
9585
  },
9404
- variants: [
9405
- {
9406
- id: "primary",
9407
- name: "Primary",
9408
- enabled: true,
9409
- priority: 1,
9410
- background: {
9411
- type: "solid",
9412
- colorToken: "primary"
9413
- },
9414
- borderRadius: "rounded-full",
9415
- shadow: {
9416
- elevation: "low",
9417
- softness: "soft",
9418
- position: "bottom"
9419
- },
9420
- effects: {
9421
- hover: [{
9422
- effectId: "lift",
9423
- options: { translateY: "-1px" }
9424
- }, {
9586
+ roles: {
9587
+ primary: {
9588
+ kind: "complete",
9589
+ appearance: {
9590
+ background: {
9591
+ type: "solid",
9592
+ colorToken: "primary"
9593
+ },
9594
+ borderRadius: "rounded-full",
9595
+ shadow: {
9596
+ elevation: "low",
9597
+ softness: "soft",
9598
+ position: "bottom"
9599
+ },
9600
+ effects: {
9601
+ hover: [{
9602
+ effectId: "lift",
9603
+ options: { translateY: "-1px" }
9604
+ }, {
9605
+ effectId: "background-on-hover",
9606
+ options: { colorToken: "accent" }
9607
+ }],
9608
+ active: [{
9609
+ effectId: "scale-down",
9610
+ options: { scale: "0.98" }
9611
+ }]
9612
+ }
9613
+ }
9614
+ },
9615
+ secondary: {
9616
+ kind: "complete",
9617
+ appearance: {
9618
+ background: {
9619
+ type: "surface",
9620
+ role: "link"
9621
+ },
9622
+ borderRadius: "rounded-full",
9623
+ border: { widthClass: "border" },
9624
+ effects: { hover: [{
9425
9625
  effectId: "background-on-hover",
9426
- options: { colorToken: "accent" }
9427
- }],
9428
- active: [{
9429
- effectId: "scale-down",
9430
- options: { scale: "0.98" }
9431
- }]
9626
+ options: { colorToken: "muted" }
9627
+ }] }
9432
9628
  }
9433
9629
  },
9434
- {
9435
- id: "secondary",
9436
- name: "Secondary",
9437
- enabled: true,
9438
- priority: 2,
9439
- background: {
9440
- type: "surface",
9441
- role: "link"
9442
- },
9443
- borderRadius: "rounded-full",
9444
- border: { widthClass: "border" },
9445
- effects: { hover: [{
9446
- effectId: "background-on-hover",
9447
- options: { colorToken: "muted" }
9448
- }] }
9630
+ outline: {
9631
+ kind: "complete",
9632
+ appearance: {
9633
+ background: {
9634
+ type: "surface",
9635
+ role: "link"
9636
+ },
9637
+ borderRadius: "rounded-full",
9638
+ border: { widthClass: "border" },
9639
+ effects: { hover: [{
9640
+ effectId: "background-on-hover",
9641
+ options: { colorToken: "surfaceAlt" }
9642
+ }] }
9643
+ }
9449
9644
  },
9450
- {
9451
- id: "outline",
9452
- name: "Outline",
9453
- enabled: true,
9454
- priority: 3,
9455
- background: {
9456
- type: "surface",
9457
- role: "link"
9458
- },
9459
- borderRadius: "rounded-full",
9460
- border: { widthClass: "border" },
9461
- effects: { hover: [{
9462
- effectId: "background-on-hover",
9463
- options: { colorToken: "surfaceAlt" }
9464
- }] }
9645
+ ghost: {
9646
+ kind: "complete",
9647
+ appearance: {
9648
+ background: {
9649
+ type: "surface",
9650
+ role: "link"
9651
+ },
9652
+ borderRadius: "rounded-full",
9653
+ shadow: {
9654
+ elevation: "none",
9655
+ softness: null,
9656
+ position: "bottom"
9657
+ },
9658
+ sizes: {
9659
+ sm: {
9660
+ padding: "0.25rem 0",
9661
+ fontSize: "text-sm"
9662
+ },
9663
+ md: { padding: "0.375rem 0" },
9664
+ lg: {
9665
+ padding: "0.5rem 0",
9666
+ fontSize: "text-lg"
9667
+ },
9668
+ xl: {
9669
+ padding: "0.625rem 0",
9670
+ fontSize: "text-xl"
9671
+ }
9672
+ }
9673
+ }
9465
9674
  },
9466
- {
9467
- id: "ghost",
9468
- name: "Ghost",
9469
- enabled: true,
9470
- priority: 3,
9471
- background: {
9472
- type: "surface",
9473
- role: "link"
9474
- },
9475
- borderRadius: "rounded-full",
9476
- shadow: {
9477
- elevation: "none",
9478
- softness: null,
9479
- position: "bottom"
9480
- },
9481
- sizes: {
9482
- sm: {
9483
- padding: "0.25rem 0",
9484
- fontSize: "text-sm"
9675
+ accent: {
9676
+ kind: "derive",
9677
+ from: "primary",
9678
+ overrides: { background: {
9679
+ type: "solid",
9680
+ colorToken: "accent"
9681
+ } }
9682
+ }
9683
+ }
9684
+ }
9685
+ });
9686
+ confidentChipRecipe = defineStaticButtonStyleRecipe({
9687
+ id: "confident-chip",
9688
+ accessibilityLabel: "Moderately rounded solid buttons with a crisp hover",
9689
+ tags: {
9690
+ tone: "classic",
9691
+ energy: "calm",
9692
+ motion: "standard",
9693
+ era: "modern"
9694
+ },
9695
+ system: {
9696
+ global: {
9697
+ cornerStyle: "rounded",
9698
+ shadow: "medium",
9699
+ textTransform: "none",
9700
+ fontWeight: 600,
9701
+ borderWidth: 1,
9702
+ hoverTransform: "none",
9703
+ hoverColor: "none"
9704
+ },
9705
+ roles: {
9706
+ primary: {
9707
+ kind: "complete",
9708
+ appearance: {
9709
+ background: {
9710
+ type: "solid",
9711
+ colorToken: "primary"
9485
9712
  },
9486
- md: { padding: "0.375rem 0" },
9487
- lg: {
9488
- padding: "0.5rem 0",
9489
- fontSize: "text-lg"
9713
+ borderRadius: "rounded-md",
9714
+ shadow: {
9715
+ elevation: "medium",
9716
+ softness: "soft",
9717
+ position: "bottom"
9490
9718
  },
9491
- xl: {
9492
- padding: "0.625rem 0",
9493
- fontSize: "text-xl"
9719
+ effects: {
9720
+ hover: [{
9721
+ effectId: "darken-background",
9722
+ options: { amount: 100 }
9723
+ }],
9724
+ active: [{
9725
+ effectId: "scale-down",
9726
+ options: { scale: "0.97" }
9727
+ }]
9494
9728
  }
9495
9729
  }
9730
+ },
9731
+ secondary: {
9732
+ kind: "complete",
9733
+ appearance: {
9734
+ background: {
9735
+ type: "solid",
9736
+ colorToken: "surface"
9737
+ },
9738
+ borderRadius: "rounded-md",
9739
+ border: { widthClass: "border" },
9740
+ effects: { hover: [{
9741
+ effectId: "background-on-hover",
9742
+ options: { colorToken: "background" }
9743
+ }] }
9744
+ }
9745
+ },
9746
+ outline: {
9747
+ kind: "complete",
9748
+ appearance: {
9749
+ background: {
9750
+ type: "surface",
9751
+ role: "link"
9752
+ },
9753
+ borderRadius: "rounded-md",
9754
+ border: { widthClass: "border" },
9755
+ effects: { hover: [{
9756
+ effectId: "background-on-hover",
9757
+ options: { colorToken: "surface" }
9758
+ }] }
9759
+ }
9760
+ },
9761
+ ghost: {
9762
+ kind: "complete",
9763
+ appearance: {
9764
+ background: {
9765
+ type: "surface",
9766
+ role: "link"
9767
+ },
9768
+ borderRadius: "rounded-md",
9769
+ effects: { hover: [{
9770
+ effectId: "background-on-hover",
9771
+ options: { colorToken: "surface" }
9772
+ }] }
9773
+ }
9774
+ },
9775
+ accent: {
9776
+ kind: "derive",
9777
+ from: "primary",
9778
+ overrides: { background: {
9779
+ type: "solid",
9780
+ colorToken: "accent"
9781
+ } }
9496
9782
  }
9497
- ]
9783
+ }
9498
9784
  }
9499
9785
  });
9500
- }));
9501
- //#endregion
9502
- //#region ../theme-core/src/buttons/personalities/editorial-link.ts
9503
- var editorialLink;
9504
- var init_editorial_link = __esmMin((() => {
9505
- init_types$12();
9506
- editorialLink = defineButtonPersonality({
9786
+ editorialSizes = {
9787
+ sm: { padding: "0.25rem 0" },
9788
+ md: { padding: "0.5rem 0" },
9789
+ lg: { padding: "0.625rem 0" },
9790
+ xl: { padding: "0.75rem 0" }
9791
+ };
9792
+ editorialLinkRecipe = defineStaticButtonStyleRecipe({
9507
9793
  id: "editorial-link",
9508
- name: "Editorial Link",
9509
- description: "Link-style with a growing underline. Refined, typographic.",
9794
+ accessibilityLabel: "Flat typographic buttons with an underline treatment",
9510
9795
  tags: {
9511
9796
  tone: "minimal",
9512
9797
  energy: "calm",
9513
9798
  motion: "subtle",
9514
9799
  era: "editorial"
9515
9800
  },
9516
- buttonSystem: {
9801
+ system: {
9517
9802
  global: {
9518
9803
  cornerStyle: "square",
9519
9804
  textTransform: "none",
@@ -9522,220 +9807,323 @@ var init_editorial_link = __esmMin((() => {
9522
9807
  hoverTransform: "none",
9523
9808
  hoverColor: "none"
9524
9809
  },
9525
- variants: [
9526
- {
9527
- id: "primary",
9528
- name: "Primary",
9529
- enabled: true,
9530
- priority: 1,
9531
- background: {
9532
- type: "surface",
9533
- role: "link"
9534
- },
9535
- borderRadius: "rounded-none",
9536
- sizes: {
9537
- sm: { padding: "0.25rem 0" },
9538
- md: { padding: "0.5rem 0" },
9539
- lg: { padding: "0.625rem 0" },
9540
- xl: { padding: "0.75rem 0" }
9541
- },
9542
- effects: { base: [{
9543
- effectId: "border-bottom-grow",
9544
- options: {
9545
- height: 2,
9546
- colorToken: "text",
9547
- origin: "left"
9548
- }
9549
- }] }
9810
+ roles: {
9811
+ primary: {
9812
+ kind: "complete",
9813
+ appearance: {
9814
+ background: {
9815
+ type: "surface",
9816
+ role: "link"
9817
+ },
9818
+ borderRadius: "rounded-none",
9819
+ sizes: editorialSizes,
9820
+ effects: { base: [{
9821
+ effectId: "border-bottom-grow",
9822
+ options: {
9823
+ height: 2,
9824
+ colorToken: "text",
9825
+ origin: "left"
9826
+ }
9827
+ }] }
9828
+ }
9550
9829
  },
9551
- {
9552
- id: "secondary",
9553
- name: "Secondary",
9554
- enabled: true,
9555
- priority: 2,
9556
- background: {
9557
- type: "surface",
9558
- role: "link"
9559
- },
9560
- borderRadius: "rounded-none",
9561
- sizes: {
9562
- sm: { padding: "0.25rem 0" },
9563
- md: { padding: "0.5rem 0" },
9564
- lg: { padding: "0.625rem 0" },
9565
- xl: { padding: "0.75rem 0" }
9566
- },
9567
- effects: { base: [{
9568
- effectId: "border-bottom-grow",
9569
- options: {
9570
- height: 1,
9571
- colorToken: "mutedText",
9572
- origin: "left"
9573
- }
9574
- }] }
9830
+ secondary: {
9831
+ kind: "complete",
9832
+ appearance: {
9833
+ background: {
9834
+ type: "surface",
9835
+ role: "link"
9836
+ },
9837
+ borderRadius: "rounded-none",
9838
+ sizes: editorialSizes,
9839
+ effects: { base: [{
9840
+ effectId: "border-bottom-grow",
9841
+ options: {
9842
+ height: 1,
9843
+ colorToken: "mutedText",
9844
+ origin: "left"
9845
+ }
9846
+ }] }
9847
+ }
9575
9848
  },
9576
- {
9577
- id: "outline",
9578
- name: "Outline",
9579
- enabled: true,
9580
- priority: 3,
9581
- background: {
9582
- type: "surface",
9583
- role: "link"
9584
- },
9585
- borderRadius: "rounded-none",
9586
- sizes: {
9587
- sm: { padding: "0.25rem 0" },
9588
- md: { padding: "0.5rem 0" },
9589
- lg: { padding: "0.625rem 0" },
9590
- xl: { padding: "0.75rem 0" }
9591
- },
9592
- effects: { base: [{
9849
+ outline: {
9850
+ kind: "complete",
9851
+ appearance: {
9852
+ background: {
9853
+ type: "surface",
9854
+ role: "link"
9855
+ },
9856
+ borderRadius: "rounded-none",
9857
+ sizes: editorialSizes,
9858
+ effects: { base: [{
9859
+ effectId: "border-bottom-grow",
9860
+ options: {
9861
+ height: 1,
9862
+ colorToken: "accent",
9863
+ origin: "left"
9864
+ }
9865
+ }] }
9866
+ }
9867
+ },
9868
+ ghost: {
9869
+ kind: "complete",
9870
+ appearance: {
9871
+ background: {
9872
+ type: "surface",
9873
+ role: "link"
9874
+ },
9875
+ borderRadius: "rounded-none",
9876
+ sizes: editorialSizes
9877
+ }
9878
+ },
9879
+ accent: {
9880
+ kind: "derive",
9881
+ from: "primary",
9882
+ overrides: { effects: { base: [{
9593
9883
  effectId: "border-bottom-grow",
9594
9884
  options: {
9595
- height: 1,
9885
+ height: 2,
9596
9886
  colorToken: "accent",
9597
9887
  origin: "left"
9598
9888
  }
9599
- }] }
9889
+ }] } }
9890
+ }
9891
+ }
9892
+ }
9893
+ });
9894
+ pebbleRecipe = defineStaticButtonStyleRecipe({
9895
+ id: "pebble",
9896
+ accessibilityLabel: "Generously padded pill buttons",
9897
+ tags: {
9898
+ tone: "classic",
9899
+ energy: "calm",
9900
+ motion: "standard",
9901
+ era: "organic"
9902
+ },
9903
+ system: {
9904
+ global: {
9905
+ cornerStyle: "pill",
9906
+ textTransform: "none",
9907
+ fontWeight: 500,
9908
+ borderWidth: 2,
9909
+ hoverTransform: "none",
9910
+ hoverColor: "none"
9911
+ },
9912
+ sizes: {
9913
+ sm: {
9914
+ padding: "0.625rem 1.75rem",
9915
+ fontSize: "text-sm"
9600
9916
  },
9601
- {
9602
- id: "ghost",
9603
- name: "Ghost",
9604
- enabled: true,
9605
- priority: 3,
9606
- background: {
9607
- type: "surface",
9608
- role: "link"
9609
- },
9610
- borderRadius: "rounded-none",
9611
- sizes: {
9612
- sm: { padding: "0.25rem 0" },
9613
- md: { padding: "0.5rem 0" },
9614
- lg: { padding: "0.625rem 0" },
9615
- xl: { padding: "0.75rem 0" }
9917
+ md: { padding: "0.875rem 2.25rem" },
9918
+ lg: {
9919
+ padding: "1.125rem 2.75rem",
9920
+ fontSize: "text-lg"
9921
+ },
9922
+ xl: {
9923
+ padding: "1.5rem 3.5rem",
9924
+ fontSize: "text-xl"
9925
+ }
9926
+ },
9927
+ roles: {
9928
+ primary: {
9929
+ kind: "complete",
9930
+ appearance: {
9931
+ background: {
9932
+ type: "solid",
9933
+ colorToken: "primary"
9934
+ },
9935
+ borderRadius: "rounded-full",
9936
+ effects: { hover: [{
9937
+ effectId: "darken-background",
9938
+ options: { amount: 100 }
9939
+ }] }
9940
+ }
9941
+ },
9942
+ secondary: {
9943
+ kind: "complete",
9944
+ appearance: {
9945
+ background: {
9946
+ type: "surface",
9947
+ role: "link"
9948
+ },
9949
+ borderRadius: "rounded-full",
9950
+ border: { widthClass: "border-2" },
9951
+ effects: { hover: [{
9952
+ effectId: "background-on-hover",
9953
+ options: { colorToken: "accent" }
9954
+ }] }
9955
+ }
9956
+ },
9957
+ outline: {
9958
+ kind: "complete",
9959
+ appearance: {
9960
+ background: {
9961
+ type: "surface",
9962
+ role: "link"
9963
+ },
9964
+ borderRadius: "rounded-full",
9965
+ border: { widthClass: "border" },
9966
+ effects: { hover: [{
9967
+ effectId: "background-on-hover",
9968
+ options: { colorToken: "surface" }
9969
+ }] }
9616
9970
  }
9971
+ },
9972
+ ghost: {
9973
+ kind: "complete",
9974
+ appearance: {
9975
+ background: {
9976
+ type: "surface",
9977
+ role: "link"
9978
+ },
9979
+ borderRadius: "rounded-full",
9980
+ sizes: {
9981
+ sm: {
9982
+ padding: "0.375rem 0.875rem",
9983
+ fontSize: "text-sm"
9984
+ },
9985
+ md: { padding: "0.5rem 1rem" },
9986
+ lg: {
9987
+ padding: "0.625rem 1.25rem",
9988
+ fontSize: "text-lg"
9989
+ },
9990
+ xl: {
9991
+ padding: "0.75rem 1.5rem",
9992
+ fontSize: "text-xl"
9993
+ }
9994
+ }
9995
+ }
9996
+ },
9997
+ accent: {
9998
+ kind: "derive",
9999
+ from: "primary",
10000
+ overrides: { background: {
10001
+ type: "solid",
10002
+ colorToken: "accent"
10003
+ } }
9617
10004
  }
9618
- ]
10005
+ }
9619
10006
  }
9620
10007
  });
9621
- }));
9622
- //#endregion
9623
- //#region ../theme-core/src/buttons/personalities/flat-ink.ts
9624
- var flatInk;
9625
- var init_flat_ink = __esmMin((() => {
9626
- init_types$12();
9627
- flatInk = defineButtonPersonality({
9628
- id: "flat-ink",
9629
- name: "Flat Ink",
9630
- description: "Flat solid-ink primary, hairline ghost secondary, and a single amber accent climax — modest radius, no shadow.",
10008
+ brushedWashRecipe = defineStaticButtonStyleRecipe({
10009
+ id: "brushed-wash",
10010
+ accessibilityLabel: "Generously padded gradient buttons with soft shadows",
9631
10011
  tags: {
9632
10012
  tone: "classic",
9633
- energy: "calm",
9634
- motion: "subtle",
9635
- era: "editorial"
10013
+ energy: "vibrant",
10014
+ motion: "standard",
10015
+ era: "organic"
9636
10016
  },
9637
- buttonSystem: {
10017
+ system: {
9638
10018
  global: {
9639
10019
  cornerStyle: "rounded",
10020
+ shadow: "low",
9640
10021
  textTransform: "none",
9641
- fontWeight: 600,
10022
+ fontWeight: 500,
9642
10023
  borderWidth: 1,
9643
- typography: "body",
9644
- letterSpacing: "tight",
9645
- paddingPreset: "default",
9646
- hoverTransform: "lift",
10024
+ hoverTransform: "none",
9647
10025
  hoverColor: "none"
9648
10026
  },
9649
10027
  sizes: {
9650
10028
  sm: {
9651
- padding: "0.625rem 1.125rem",
10029
+ padding: "0.75rem 2rem",
9652
10030
  fontSize: "text-sm"
9653
10031
  },
9654
- md: { padding: "0.8125rem 1.375rem" },
10032
+ md: { padding: "1rem 2.5rem" },
9655
10033
  lg: {
9656
- padding: "0.9375rem 1.625rem",
10034
+ padding: "1.25rem 3rem",
9657
10035
  fontSize: "text-lg"
9658
10036
  },
9659
10037
  xl: {
9660
- padding: "1.0625rem 2rem",
10038
+ padding: "1.625rem 3.75rem",
9661
10039
  fontSize: "text-xl"
9662
10040
  }
9663
10041
  },
9664
- variants: [
9665
- {
9666
- id: "primary",
9667
- name: "Primary",
9668
- enabled: true,
9669
- priority: 1,
9670
- background: {
9671
- type: "solid",
9672
- colorToken: "primary"
9673
- },
9674
- borderRadius: "rounded-lg",
9675
- affordance: { iconId: "ArrowRight" },
9676
- effects: { hover: [{
9677
- effectId: "lift",
9678
- options: { translateY: "-2px" }
9679
- }, {
9680
- effectId: "background-on-hover",
9681
- options: { colorToken: "secondary" }
9682
- }] }
10042
+ roles: {
10043
+ primary: {
10044
+ kind: "complete",
10045
+ appearance: {
10046
+ background: {
10047
+ type: "gradient",
10048
+ stops: ["primary", "accent"],
10049
+ direction: "to-r",
10050
+ foregroundToken: "primaryForeground"
10051
+ },
10052
+ borderRadius: "rounded-lg",
10053
+ shadow: {
10054
+ elevation: "low",
10055
+ softness: "soft",
10056
+ position: "bottom"
10057
+ }
10058
+ }
9683
10059
  },
9684
- {
9685
- id: "secondary",
9686
- name: "Secondary",
9687
- enabled: true,
9688
- priority: 2,
9689
- background: {
9690
- type: "surface",
9691
- role: "link"
9692
- },
9693
- borderRadius: "rounded-lg",
9694
- border: { widthClass: "border" },
9695
- effects: { hover: [{
9696
- effectId: "lift",
9697
- options: { translateY: "-2px" }
9698
- }, {
9699
- effectId: "background-on-hover",
9700
- options: { colorToken: "surfaceAlt" }
9701
- }] }
10060
+ secondary: {
10061
+ kind: "complete",
10062
+ appearance: {
10063
+ background: {
10064
+ type: "gradient",
10065
+ stops: ["secondary", "accent"],
10066
+ direction: "to-br",
10067
+ foregroundToken: "primaryForeground"
10068
+ },
10069
+ borderRadius: "rounded-lg",
10070
+ shadow: {
10071
+ elevation: "low",
10072
+ softness: "soft",
10073
+ position: "bottom"
10074
+ }
10075
+ }
9702
10076
  },
9703
- {
9704
- id: "accent",
9705
- name: "Accent",
9706
- enabled: true,
9707
- priority: 3,
9708
- background: {
10077
+ outline: {
10078
+ kind: "complete",
10079
+ appearance: {
10080
+ background: {
10081
+ type: "surface",
10082
+ role: "link"
10083
+ },
10084
+ borderRadius: "rounded-lg",
10085
+ border: { widthClass: "border" },
10086
+ effects: { hover: [{
10087
+ effectId: "background-on-hover",
10088
+ options: { colorToken: "surface" }
10089
+ }] }
10090
+ }
10091
+ },
10092
+ ghost: {
10093
+ kind: "complete",
10094
+ appearance: {
10095
+ background: {
10096
+ type: "surface",
10097
+ role: "link"
10098
+ },
10099
+ borderRadius: "rounded-lg",
10100
+ effects: { hover: [{
10101
+ effectId: "background-on-hover",
10102
+ options: { colorToken: "surface" }
10103
+ }] }
10104
+ }
10105
+ },
10106
+ accent: {
10107
+ kind: "derive",
10108
+ from: "primary",
10109
+ overrides: { background: {
9709
10110
  type: "solid",
9710
10111
  colorToken: "accent"
9711
- },
9712
- borderRadius: "rounded-lg",
9713
- affordance: { iconId: "ArrowRight" },
9714
- effects: { hover: [{
9715
- effectId: "lift",
9716
- options: { translateY: "-2px" }
9717
- }] }
10112
+ } }
9718
10113
  }
9719
- ]
10114
+ }
9720
10115
  }
9721
10116
  });
9722
- }));
9723
- //#endregion
9724
- //#region ../theme-core/src/buttons/personalities/ink-stamp.ts
9725
- var inkStamp;
9726
- var init_ink_stamp = __esmMin((() => {
9727
- init_types$12();
9728
- inkStamp = defineButtonPersonality({
10117
+ inkStampRecipe = defineStaticButtonStyleRecipe({
9729
10118
  id: "ink-stamp",
9730
- name: "Ink Stamp",
9731
- description: "Hand-stamped block-print buttons with a slight lift on hover.",
10119
+ accessibilityLabel: "Uppercase block-print buttons with a playful hover",
9732
10120
  tags: {
9733
10121
  tone: "bold",
9734
10122
  energy: "vibrant",
9735
10123
  motion: "standard",
9736
10124
  era: "organic"
9737
10125
  },
9738
- buttonSystem: {
10126
+ system: {
9739
10127
  global: {
9740
10128
  cornerStyle: "rounded",
9741
10129
  textTransform: "uppercase",
@@ -9763,120 +10151,347 @@ var init_ink_stamp = __esmMin((() => {
9763
10151
  fontSize: "text-lg"
9764
10152
  }
9765
10153
  },
9766
- variants: [
9767
- {
9768
- id: "primary",
9769
- name: "Primary",
9770
- enabled: true,
9771
- priority: 1,
9772
- background: {
10154
+ roles: {
10155
+ primary: {
10156
+ kind: "complete",
10157
+ appearance: {
10158
+ background: {
10159
+ type: "solid",
10160
+ colorToken: "primary"
10161
+ },
10162
+ borderRadius: "rounded-md",
10163
+ effects: {
10164
+ hover: [{
10165
+ effectId: "drop-shadow",
10166
+ options: { intensity: "medium" }
10167
+ }, {
10168
+ effectId: "scale-up",
10169
+ options: { scale: "1.02" }
10170
+ }],
10171
+ active: [{
10172
+ effectId: "scale-down",
10173
+ options: { scale: "0.98" }
10174
+ }]
10175
+ }
10176
+ }
10177
+ },
10178
+ secondary: {
10179
+ kind: "complete",
10180
+ appearance: {
10181
+ background: {
10182
+ type: "surface",
10183
+ role: "link"
10184
+ },
10185
+ borderRadius: "rounded-md",
10186
+ border: { widthClass: "border-2" },
10187
+ effects: { hover: [{
10188
+ effectId: "background-on-hover",
10189
+ options: { colorToken: "surface" }
10190
+ }] }
10191
+ }
10192
+ },
10193
+ outline: {
10194
+ kind: "complete",
10195
+ appearance: {
10196
+ background: {
10197
+ type: "surface",
10198
+ role: "link"
10199
+ },
10200
+ borderRadius: "rounded-md",
10201
+ border: { widthClass: "border-2" },
10202
+ effects: { hover: [{
10203
+ effectId: "background-on-hover",
10204
+ options: { colorToken: "surface" }
10205
+ }] }
10206
+ }
10207
+ },
10208
+ ghost: {
10209
+ kind: "complete",
10210
+ appearance: {
10211
+ background: {
10212
+ type: "surface",
10213
+ role: "link"
10214
+ },
10215
+ borderRadius: "rounded-none",
10216
+ sizes: {
10217
+ sm: {
10218
+ padding: "0.375rem 0",
10219
+ fontSize: "text-xs"
10220
+ },
10221
+ md: {
10222
+ padding: "0.5rem 0",
10223
+ fontSize: "text-sm"
10224
+ },
10225
+ lg: {
10226
+ padding: "0.625rem 0",
10227
+ fontSize: "text-base"
10228
+ },
10229
+ xl: {
10230
+ padding: "0.75rem 0",
10231
+ fontSize: "text-lg"
10232
+ }
10233
+ },
10234
+ effects: { base: [{
10235
+ effectId: "border-bottom-grow",
10236
+ options: {
10237
+ height: 1,
10238
+ colorToken: "accent",
10239
+ origin: "left"
10240
+ }
10241
+ }] }
10242
+ }
10243
+ },
10244
+ accent: {
10245
+ kind: "derive",
10246
+ from: "primary",
10247
+ overrides: { background: {
9773
10248
  type: "solid",
9774
- colorToken: "primary"
9775
- },
9776
- borderRadius: "rounded-md",
9777
- effects: {
9778
- hover: [{
9779
- effectId: "drop-shadow",
9780
- options: { intensity: "medium" }
10249
+ colorToken: "accent"
10250
+ } }
10251
+ }
10252
+ }
10253
+ }
10254
+ });
10255
+ flatInkRecipe = defineStaticButtonStyleRecipe({
10256
+ id: "flat-ink",
10257
+ accessibilityLabel: "Flat rounded buttons with arrow affordances",
10258
+ tags: {
10259
+ tone: "classic",
10260
+ energy: "calm",
10261
+ motion: "subtle",
10262
+ era: "editorial"
10263
+ },
10264
+ system: {
10265
+ global: {
10266
+ cornerStyle: "rounded",
10267
+ textTransform: "none",
10268
+ fontWeight: 600,
10269
+ borderWidth: 1,
10270
+ typography: "body",
10271
+ letterSpacing: "tight",
10272
+ paddingPreset: "default",
10273
+ hoverTransform: "lift",
10274
+ hoverColor: "none"
10275
+ },
10276
+ sizes: {
10277
+ sm: {
10278
+ padding: "0.625rem 1.125rem",
10279
+ fontSize: "text-sm"
10280
+ },
10281
+ md: { padding: "0.8125rem 1.375rem" },
10282
+ lg: {
10283
+ padding: "0.9375rem 1.625rem",
10284
+ fontSize: "text-lg"
10285
+ },
10286
+ xl: {
10287
+ padding: "1.0625rem 2rem",
10288
+ fontSize: "text-xl"
10289
+ }
10290
+ },
10291
+ roles: {
10292
+ primary: {
10293
+ kind: "complete",
10294
+ appearance: {
10295
+ background: {
10296
+ type: "solid",
10297
+ colorToken: "primary"
10298
+ },
10299
+ borderRadius: "rounded-lg",
10300
+ affordance: { iconId: "ArrowRight" },
10301
+ effects: { hover: [{
10302
+ effectId: "lift",
10303
+ options: { translateY: "-2px" }
9781
10304
  }, {
9782
- effectId: "scale-up",
9783
- options: { scale: "1.02" }
9784
- }],
9785
- active: [{
9786
- effectId: "scale-down",
9787
- options: { scale: "0.98" }
9788
- }]
10305
+ effectId: "background-on-hover",
10306
+ options: { colorToken: "secondary" }
10307
+ }] }
9789
10308
  }
9790
10309
  },
9791
- {
9792
- id: "secondary",
9793
- name: "Secondary",
9794
- enabled: true,
9795
- priority: 2,
9796
- background: {
9797
- type: "surface",
9798
- role: "link"
9799
- },
9800
- borderRadius: "rounded-md",
9801
- border: { widthClass: "border-2" },
9802
- effects: { hover: [{
9803
- effectId: "background-on-hover",
9804
- options: { colorToken: "surface" }
9805
- }] }
10310
+ secondary: {
10311
+ kind: "complete",
10312
+ appearance: {
10313
+ background: {
10314
+ type: "surface",
10315
+ role: "link"
10316
+ },
10317
+ borderRadius: "rounded-lg",
10318
+ border: { widthClass: "border" },
10319
+ effects: { hover: [{
10320
+ effectId: "lift",
10321
+ options: { translateY: "-2px" }
10322
+ }, {
10323
+ effectId: "background-on-hover",
10324
+ options: { colorToken: "surfaceAlt" }
10325
+ }] }
10326
+ }
9806
10327
  },
9807
- {
9808
- id: "outline",
9809
- name: "Outline",
9810
- enabled: true,
9811
- priority: 3,
9812
- background: {
9813
- type: "surface",
9814
- role: "link"
9815
- },
9816
- borderRadius: "rounded-md",
9817
- border: { widthClass: "border-2" },
9818
- effects: { hover: [{
9819
- effectId: "background-on-hover",
9820
- options: { colorToken: "surface" }
9821
- }] }
10328
+ outline: {
10329
+ kind: "complete",
10330
+ appearance: {
10331
+ background: {
10332
+ type: "surface",
10333
+ role: "link"
10334
+ },
10335
+ borderRadius: "rounded-lg",
10336
+ border: { widthClass: "border" },
10337
+ effects: { hover: [{
10338
+ effectId: "lift",
10339
+ options: { translateY: "-2px" }
10340
+ }, {
10341
+ effectId: "background-on-hover",
10342
+ options: { colorToken: "surfaceAlt" }
10343
+ }] }
10344
+ }
9822
10345
  },
9823
- {
9824
- id: "ghost",
9825
- name: "Ghost",
9826
- enabled: true,
9827
- priority: 3,
9828
- background: {
9829
- type: "surface",
9830
- role: "link"
9831
- },
9832
- borderRadius: "rounded-none",
9833
- sizes: {
9834
- sm: {
9835
- padding: "0.375rem 0",
9836
- fontSize: "text-xs"
10346
+ ghost: {
10347
+ kind: "complete",
10348
+ appearance: {
10349
+ background: {
10350
+ type: "surface",
10351
+ role: "link"
10352
+ },
10353
+ borderRadius: "rounded-lg",
10354
+ effects: { hover: [{
10355
+ effectId: "lift",
10356
+ options: { translateY: "-2px" }
10357
+ }] }
10358
+ }
10359
+ },
10360
+ accent: {
10361
+ kind: "complete",
10362
+ appearance: {
10363
+ background: {
10364
+ type: "solid",
10365
+ colorToken: "accent"
10366
+ },
10367
+ borderRadius: "rounded-lg",
10368
+ affordance: { iconId: "ArrowRight" },
10369
+ effects: { hover: [{
10370
+ effectId: "lift",
10371
+ options: { translateY: "-2px" }
10372
+ }] }
10373
+ }
10374
+ }
10375
+ }
10376
+ }
10377
+ });
10378
+ showtimePillRecipe = defineStaticButtonStyleRecipe({
10379
+ id: "showtime-pill",
10380
+ accessibilityLabel: "Bold uppercase pill buttons with playful movement",
10381
+ tags: {
10382
+ tone: "bold",
10383
+ energy: "vibrant",
10384
+ motion: "expressive",
10385
+ era: "modern"
10386
+ },
10387
+ system: {
10388
+ global: {
10389
+ cornerStyle: "pill",
10390
+ shadow: "low",
10391
+ textTransform: "uppercase",
10392
+ fontWeight: 700,
10393
+ borderWidth: 2,
10394
+ hoverTransform: "lift",
10395
+ hoverColor: "darken",
10396
+ typography: "body",
10397
+ paddingPreset: "spacious",
10398
+ italic: false
10399
+ },
10400
+ sizes: {
10401
+ sm: {
10402
+ padding: "0.625rem 1.25rem",
10403
+ fontSize: "0.875rem"
10404
+ },
10405
+ md: {
10406
+ padding: "0.875rem 1.75rem",
10407
+ fontSize: "1rem"
10408
+ },
10409
+ lg: {
10410
+ padding: "1.125rem 2.25rem",
10411
+ fontSize: "1.125rem"
10412
+ },
10413
+ xl: {
10414
+ padding: "1.125rem 2.25rem",
10415
+ fontSize: "1.125rem"
10416
+ }
10417
+ },
10418
+ roles: {
10419
+ primary: {
10420
+ kind: "complete",
10421
+ appearance: {
10422
+ background: {
10423
+ type: "solid",
10424
+ colorToken: "primary"
9837
10425
  },
9838
- md: {
9839
- padding: "0.5rem 0",
9840
- fontSize: "text-sm"
10426
+ borderRadius: "rounded-full",
10427
+ effects: { hover: [{ effectId: "pop" }] }
10428
+ }
10429
+ },
10430
+ secondary: {
10431
+ kind: "complete",
10432
+ appearance: {
10433
+ background: {
10434
+ type: "surface",
10435
+ role: "link"
9841
10436
  },
9842
- lg: {
9843
- padding: "0.625rem 0",
9844
- fontSize: "text-base"
10437
+ borderRadius: "rounded-full",
10438
+ border: { widthClass: "border-2" },
10439
+ effects: { hover: [{ effectId: "pop" }] }
10440
+ }
10441
+ },
10442
+ outline: {
10443
+ kind: "complete",
10444
+ appearance: {
10445
+ background: {
10446
+ type: "surface",
10447
+ role: "link"
9845
10448
  },
9846
- xl: {
9847
- padding: "0.75rem 0",
9848
- fontSize: "text-lg"
9849
- }
9850
- },
9851
- effects: { base: [{
9852
- effectId: "border-bottom-grow",
9853
- options: {
9854
- height: 1,
9855
- colorToken: "accent",
9856
- origin: "left"
9857
- }
9858
- }] }
10449
+ borderRadius: "rounded-full",
10450
+ border: { widthClass: "border-2" },
10451
+ effects: { hover: [{
10452
+ effectId: "background-on-hover",
10453
+ options: { colorToken: "background" }
10454
+ }] }
10455
+ }
10456
+ },
10457
+ ghost: {
10458
+ kind: "complete",
10459
+ appearance: {
10460
+ background: {
10461
+ type: "surface",
10462
+ role: "link"
10463
+ },
10464
+ borderRadius: "rounded-full",
10465
+ effects: { hover: [{
10466
+ effectId: "background-on-hover",
10467
+ options: { colorToken: "surface" }
10468
+ }] }
10469
+ }
10470
+ },
10471
+ accent: {
10472
+ kind: "complete",
10473
+ appearance: {
10474
+ background: {
10475
+ type: "solid",
10476
+ colorToken: "secondary"
10477
+ },
10478
+ borderRadius: "rounded-full",
10479
+ effects: { hover: [{ effectId: "pop" }] }
10480
+ }
9859
10481
  }
9860
- ]
10482
+ }
9861
10483
  }
9862
10484
  });
9863
- }));
9864
- //#endregion
9865
- //#region ../theme-core/src/buttons/personalities/joy-stamp.ts
9866
- var joyStamp;
9867
- var init_joy_stamp = __esmMin((() => {
9868
- init_types$12();
9869
- joyStamp = defineButtonPersonality({
10485
+ joyStampRecipe = defineStaticButtonStyleRecipe({
9870
10486
  id: "joy-stamp",
9871
- name: "Joy Stamp",
9872
- description: "Pill buttons with a hard, brand-coloured offset shadow that presses in on hover.",
10487
+ accessibilityLabel: "Bold pill buttons with a hard offset shadow",
9873
10488
  tags: {
9874
10489
  tone: "bold",
9875
10490
  energy: "vibrant",
9876
10491
  motion: "expressive",
9877
10492
  era: "organic"
9878
10493
  },
9879
- buttonSystem: {
10494
+ system: {
9880
10495
  global: {
9881
10496
  cornerStyle: "pill",
9882
10497
  shadow: "high",
@@ -9906,61 +10521,96 @@ var init_joy_stamp = __esmMin((() => {
9906
10521
  fontSize: "text-2xl"
9907
10522
  }
9908
10523
  },
9909
- variants: [{
9910
- id: "primary",
9911
- name: "Primary",
9912
- enabled: true,
9913
- priority: 1,
9914
- background: {
9915
- type: "solid",
9916
- colorToken: "primary"
10524
+ roles: {
10525
+ primary: {
10526
+ kind: "complete",
10527
+ appearance: {
10528
+ background: {
10529
+ type: "solid",
10530
+ colorToken: "primary"
10531
+ },
10532
+ borderRadius: "rounded-full",
10533
+ shadow: {
10534
+ elevation: "high",
10535
+ softness: "hard",
10536
+ position: "bottom-right",
10537
+ colorToken: "text"
10538
+ },
10539
+ effects: { hover: [{ effectId: "press-down" }] }
10540
+ }
9917
10541
  },
9918
- borderRadius: "rounded-full",
9919
- shadow: {
9920
- elevation: "high",
9921
- softness: "hard",
9922
- position: "bottom-right",
9923
- colorToken: "text"
10542
+ secondary: {
10543
+ kind: "complete",
10544
+ appearance: {
10545
+ background: {
10546
+ type: "surface",
10547
+ role: "link"
10548
+ },
10549
+ borderRadius: "rounded-full",
10550
+ border: { widthClass: "border-2" },
10551
+ shadow: {
10552
+ elevation: "high",
10553
+ softness: "hard",
10554
+ position: "bottom-right",
10555
+ colorToken: "secondary"
10556
+ },
10557
+ effects: { hover: [{ effectId: "press-down" }] }
10558
+ }
9924
10559
  },
9925
- effects: { hover: [{ effectId: "press-down" }] }
9926
- }, {
9927
- id: "secondary",
9928
- name: "Secondary",
9929
- enabled: true,
9930
- priority: 2,
9931
- background: {
9932
- type: "surface",
9933
- role: "link"
10560
+ outline: {
10561
+ kind: "derive",
10562
+ from: "secondary"
9934
10563
  },
9935
- borderRadius: "rounded-full",
9936
- border: { widthClass: "border-2" },
9937
- shadow: {
9938
- elevation: "high",
9939
- softness: "hard",
9940
- position: "bottom-right",
9941
- colorToken: "secondary"
10564
+ ghost: {
10565
+ kind: "complete",
10566
+ appearance: {
10567
+ background: {
10568
+ type: "surface",
10569
+ role: "link"
10570
+ },
10571
+ borderRadius: "rounded-full",
10572
+ effects: { hover: [{ effectId: "press-down" }] }
10573
+ }
9942
10574
  },
9943
- effects: { hover: [{ effectId: "press-down" }] }
9944
- }]
10575
+ accent: {
10576
+ kind: "derive",
10577
+ from: "primary",
10578
+ overrides: { background: {
10579
+ type: "solid",
10580
+ colorToken: "accent"
10581
+ } }
10582
+ }
10583
+ }
9945
10584
  }
9946
10585
  });
9947
- }));
9948
- //#endregion
9949
- //#region ../theme-core/src/buttons/personalities/ornate-ritual.ts
9950
- var ornateRitual;
9951
- var init_ornate_ritual = __esmMin((() => {
9952
- init_types$12();
9953
- ornateRitual = defineButtonPersonality({
10586
+ ornateGhostSizes = {
10587
+ sm: {
10588
+ padding: "0.375rem 0",
10589
+ fontSize: "text-xs"
10590
+ },
10591
+ md: {
10592
+ padding: "0.5rem 0",
10593
+ fontSize: "text-sm"
10594
+ },
10595
+ lg: {
10596
+ padding: "0.625rem 0",
10597
+ fontSize: "text-base"
10598
+ },
10599
+ xl: {
10600
+ padding: "0.75rem 0",
10601
+ fontSize: "text-lg"
10602
+ }
10603
+ };
10604
+ ornateRitualRecipe = defineStaticButtonStyleRecipe({
9954
10605
  id: "ornate-ritual",
9955
- name: "Ornate Ritual",
9956
- description: "Ceremonial framed buttons with jewel-toned fills and quiet color-change hover states.",
10606
+ accessibilityLabel: "Uppercase framed buttons with restrained movement",
9957
10607
  tags: {
9958
10608
  tone: "classic",
9959
10609
  energy: "vibrant",
9960
10610
  motion: "subtle",
9961
10611
  era: "organic"
9962
10612
  },
9963
- buttonSystem: {
10613
+ system: {
9964
10614
  global: {
9965
10615
  cornerStyle: "rounded",
9966
10616
  textTransform: "uppercase",
@@ -9988,641 +10638,148 @@ var init_ornate_ritual = __esmMin((() => {
9988
10638
  fontSize: "text-base"
9989
10639
  }
9990
10640
  },
9991
- variants: [
9992
- {
9993
- id: "primary",
9994
- name: "Primary",
9995
- enabled: true,
9996
- priority: 1,
9997
- background: {
9998
- type: "solid",
9999
- colorToken: "primary"
10000
- },
10001
- borderRadius: "rounded-md",
10002
- border: { widthClass: "border" },
10003
- effects: {
10004
- hover: [{
10005
- effectId: "background-on-hover",
10006
- options: { colorToken: "primary-100" }
10007
- }],
10008
- active: [{
10009
- effectId: "scale-down",
10010
- options: { scale: "0.98" }
10011
- }]
10012
- }
10013
- },
10014
- {
10015
- id: "secondary",
10016
- name: "Secondary",
10017
- enabled: true,
10018
- priority: 2,
10019
- background: {
10020
- type: "solid",
10021
- colorToken: "secondary"
10022
- },
10023
- borderRadius: "rounded-md",
10024
- border: { widthClass: "border" },
10025
- effects: { hover: [{
10026
- effectId: "background-on-hover",
10027
- options: { colorToken: "surface" }
10028
- }] }
10029
- },
10030
- {
10031
- id: "outline",
10032
- name: "Outline",
10033
- enabled: true,
10034
- priority: 3,
10035
- background: {
10036
- type: "surface",
10037
- role: "link"
10038
- },
10039
- borderRadius: "rounded-md",
10040
- border: { widthClass: "border" },
10041
- effects: { hover: [{
10042
- effectId: "background-on-hover",
10043
- options: { colorToken: "muted" }
10044
- }] }
10045
- },
10046
- {
10047
- id: "ghost",
10048
- name: "Ghost",
10049
- enabled: true,
10050
- priority: 3,
10051
- background: {
10052
- type: "surface",
10053
- role: "link"
10054
- },
10055
- borderRadius: "rounded-none",
10056
- sizes: {
10057
- sm: {
10058
- padding: "0.375rem 0",
10059
- fontSize: "text-xs"
10060
- },
10061
- md: {
10062
- padding: "0.5rem 0",
10063
- fontSize: "text-sm"
10641
+ roles: {
10642
+ primary: {
10643
+ kind: "complete",
10644
+ appearance: {
10645
+ background: {
10646
+ type: "solid",
10647
+ colorToken: "primary"
10064
10648
  },
10065
- lg: {
10066
- padding: "0.625rem 0",
10067
- fontSize: "text-base"
10068
- },
10069
- xl: {
10070
- padding: "0.75rem 0",
10071
- fontSize: "text-lg"
10072
- }
10073
- },
10074
- effects: { base: [{
10075
- effectId: "border-bottom-grow",
10076
- options: {
10077
- height: 1,
10078
- colorToken: "accent",
10079
- origin: "left"
10649
+ borderRadius: "rounded-md",
10650
+ border: { widthClass: "border" },
10651
+ effects: {
10652
+ hover: [{
10653
+ effectId: "background-on-hover",
10654
+ options: { colorToken: "primary-100" }
10655
+ }],
10656
+ active: [{
10657
+ effectId: "scale-down",
10658
+ options: { scale: "0.98" }
10659
+ }]
10080
10660
  }
10081
- }] }
10082
- }
10083
- ]
10084
- }
10085
- });
10086
- }));
10087
- //#endregion
10088
- //#region ../theme-core/src/buttons/personalities/pebble.ts
10089
- var pebble;
10090
- var init_pebble = __esmMin((() => {
10091
- init_types$12();
10092
- pebble = defineButtonPersonality({
10093
- id: "pebble",
10094
- name: "Pebble",
10095
- description: "Generous pill buttons with a quiet colour-softening hover.",
10096
- tags: {
10097
- tone: "classic",
10098
- energy: "calm",
10099
- motion: "standard",
10100
- era: "organic"
10101
- },
10102
- buttonSystem: {
10103
- global: {
10104
- cornerStyle: "pill",
10105
- textTransform: "none",
10106
- fontWeight: 500,
10107
- borderWidth: 2,
10108
- hoverTransform: "none",
10109
- hoverColor: "none"
10110
- },
10111
- sizes: {
10112
- sm: {
10113
- padding: "0.625rem 1.75rem",
10114
- fontSize: "text-sm"
10115
- },
10116
- md: { padding: "0.875rem 2.25rem" },
10117
- lg: {
10118
- padding: "1.125rem 2.75rem",
10119
- fontSize: "text-lg"
10120
- },
10121
- xl: {
10122
- padding: "1.5rem 3.5rem",
10123
- fontSize: "text-xl"
10124
- }
10125
- },
10126
- variants: [
10127
- {
10128
- id: "primary",
10129
- name: "Primary",
10130
- enabled: true,
10131
- priority: 1,
10132
- background: {
10133
- type: "solid",
10134
- colorToken: "primary"
10135
- },
10136
- borderRadius: "rounded-full",
10137
- effects: { hover: [{
10138
- effectId: "darken-background",
10139
- options: { amount: 100 }
10140
- }] }
10141
- },
10142
- {
10143
- id: "secondary",
10144
- name: "Secondary",
10145
- enabled: true,
10146
- priority: 2,
10147
- background: {
10148
- type: "surface",
10149
- role: "link"
10150
- },
10151
- borderRadius: "rounded-full",
10152
- border: { widthClass: "border-2" },
10153
- effects: { hover: [{
10154
- effectId: "background-on-hover",
10155
- options: { colorToken: "accent" }
10156
- }] }
10157
- },
10158
- {
10159
- id: "outline",
10160
- name: "Outline",
10161
- enabled: true,
10162
- priority: 3,
10163
- background: {
10164
- type: "surface",
10165
- role: "link"
10166
- },
10167
- borderRadius: "rounded-full",
10168
- border: { widthClass: "border" },
10169
- effects: { hover: [{
10170
- effectId: "background-on-hover",
10171
- options: { colorToken: "surface" }
10172
- }] }
10661
+ }
10173
10662
  },
10174
- {
10175
- id: "ghost",
10176
- name: "Ghost",
10177
- enabled: true,
10178
- priority: 3,
10179
- background: {
10180
- type: "surface",
10181
- role: "link"
10182
- },
10183
- borderRadius: "rounded-full",
10184
- sizes: {
10185
- sm: {
10186
- padding: "0.375rem 0.875rem",
10187
- fontSize: "text-sm"
10663
+ secondary: {
10664
+ kind: "complete",
10665
+ appearance: {
10666
+ background: {
10667
+ type: "solid",
10668
+ colorToken: "secondary"
10188
10669
  },
10189
- md: { padding: "0.5rem 1rem" },
10190
- lg: {
10191
- padding: "0.625rem 1.25rem",
10192
- fontSize: "text-lg"
10193
- },
10194
- xl: {
10195
- padding: "0.75rem 1.5rem",
10196
- fontSize: "text-xl"
10197
- }
10670
+ borderRadius: "rounded-md",
10671
+ border: { widthClass: "border" },
10672
+ effects: { hover: [{
10673
+ effectId: "background-on-hover",
10674
+ options: { colorToken: "surface" }
10675
+ }] }
10198
10676
  }
10199
- }
10200
- ]
10201
- }
10202
- });
10203
- }));
10204
- //#endregion
10205
- //#region ../theme-core/src/buttons/personalities/quiet-arrow.ts
10206
- var quietArrow;
10207
- var init_quiet_arrow = __esmMin((() => {
10208
- init_types$12();
10209
- quietArrow = defineButtonPersonality({
10210
- id: "quiet-arrow",
10211
- name: "Quiet Arrow",
10212
- description: "Wide, flat arrow buttons with a solid primary and a primary-colour outlined secondary.",
10213
- tags: {
10214
- tone: "classic",
10215
- energy: "calm",
10216
- motion: "subtle",
10217
- era: "editorial"
10218
- },
10219
- buttonSystem: {
10220
- global: {
10221
- cornerStyle: "rounded",
10222
- textTransform: "uppercase",
10223
- fontWeight: 500,
10224
- borderWidth: 1,
10225
- typography: "body",
10226
- fontSize: "text-sm",
10227
- letterSpacing: "loose",
10228
- hoverTransform: "none",
10229
- hoverColor: "none"
10230
- },
10231
- sizes: {
10232
- sm: {
10233
- padding: "0.625rem 1.25rem",
10234
- fontSize: "text-xs"
10235
- },
10236
- md: {
10237
- padding: "0.8125rem 1.75rem",
10238
- fontSize: "text-sm"
10239
- },
10240
- lg: {
10241
- padding: "0.9375rem 2.125rem",
10242
- fontSize: "text-sm"
10243
- },
10244
- xl: {
10245
- padding: "1.0625rem 2.5rem",
10246
- fontSize: "text-base"
10247
- }
10248
- },
10249
- variants: [
10250
- {
10251
- id: "primary",
10252
- name: "Primary",
10253
- enabled: true,
10254
- priority: 1,
10255
- background: {
10256
- type: "solid",
10257
- colorToken: "primary"
10258
- },
10259
- borderRadius: "rounded-xl",
10260
- affordance: { iconId: "ArrowRight" },
10261
- effects: { hover: [{
10262
- effectId: "darken-background",
10263
- options: { amount: 100 }
10264
- }] }
10265
- },
10266
- {
10267
- id: "secondary",
10268
- name: "Secondary",
10269
- enabled: true,
10270
- priority: 2,
10271
- background: {
10272
- type: "surface",
10273
- role: "link"
10274
- },
10275
- borderRadius: "rounded-xl",
10276
- border: { widthClass: "border" },
10277
- affordance: { iconId: "ArrowRight" },
10278
- effects: { hover: [{
10279
- effectId: "background-on-hover",
10280
- options: { colorToken: "surfaceAlt" }
10281
- }] }
10282
- },
10283
- {
10284
- id: "outline",
10285
- name: "Outline",
10286
- enabled: true,
10287
- priority: 3,
10288
- background: {
10289
- type: "surface",
10290
- role: "link"
10291
- },
10292
- borderRadius: "rounded-xl",
10293
- border: { widthClass: "border" }
10294
10677
  },
10295
- {
10296
- id: "ghost",
10297
- name: "Ghost",
10298
- enabled: true,
10299
- priority: 3,
10300
- background: {
10301
- type: "surface",
10302
- role: "link"
10303
- },
10304
- borderRadius: "rounded-xl"
10305
- }
10306
- ]
10307
- }
10308
- });
10309
- }));
10310
- //#endregion
10311
- //#region ../theme-core/src/buttons/personalities/showtime-pill.ts
10312
- var showtimePill;
10313
- var init_showtime_pill = __esmMin((() => {
10314
- init_types$12();
10315
- showtimePill = defineButtonPersonality({
10316
- id: "showtime-pill",
10317
- name: "Showtime Pill",
10318
- description: "Bold pill buttons with uppercase labels, generous padding, and a playful pop.",
10319
- tags: {
10320
- tone: "bold",
10321
- energy: "vibrant",
10322
- motion: "expressive",
10323
- era: "modern"
10324
- },
10325
- buttonSystem: {
10326
- global: {
10327
- cornerStyle: "pill",
10328
- shadow: "low",
10329
- textTransform: "uppercase",
10330
- fontWeight: 700,
10331
- borderWidth: 2,
10332
- hoverTransform: "lift",
10333
- hoverColor: "darken",
10334
- typography: "body",
10335
- paddingPreset: "spacious",
10336
- italic: false
10337
- },
10338
- sizes: {
10339
- sm: {
10340
- padding: "0.625rem 1.25rem",
10341
- fontSize: "0.875rem"
10342
- },
10343
- md: {
10344
- padding: "0.875rem 1.75rem",
10345
- fontSize: "1rem"
10346
- },
10347
- lg: {
10348
- padding: "1.125rem 2.25rem",
10349
- fontSize: "1.125rem"
10350
- },
10351
- xl: {
10352
- padding: "1.125rem 2.25rem",
10353
- fontSize: "1.125rem"
10354
- }
10355
- },
10356
- variants: [
10357
- {
10358
- id: "primary",
10359
- name: "Primary",
10360
- enabled: true,
10361
- priority: 1,
10362
- background: {
10363
- type: "solid",
10364
- colorToken: "primary"
10365
- },
10366
- borderRadius: "rounded-full",
10367
- effects: { hover: [{ effectId: "pop" }] }
10368
- },
10369
- {
10370
- id: "secondary",
10371
- name: "Secondary",
10372
- enabled: true,
10373
- priority: 2,
10374
- background: {
10375
- type: "surface",
10376
- role: "link"
10377
- },
10378
- borderRadius: "rounded-full",
10379
- border: { widthClass: "border-2" },
10380
- effects: { hover: [{ effectId: "pop" }] }
10381
- },
10382
- {
10383
- id: "hero",
10384
- name: "Hero",
10385
- enabled: true,
10386
- priority: 1,
10387
- background: {
10388
- type: "solid",
10389
- colorToken: "secondary"
10390
- },
10391
- borderRadius: "rounded-full",
10392
- effects: { hover: [{ effectId: "pop" }] }
10393
- },
10394
- {
10395
- id: "header",
10396
- name: "Header",
10397
- enabled: true,
10398
- priority: 2,
10399
- background: {
10400
- type: "solid",
10401
- colorToken: "background"
10402
- },
10403
- borderRadius: "rounded-full",
10404
- border: { widthClass: "border-2" },
10405
- effects: { hover: [{
10406
- effectId: "background-on-hover",
10407
- options: { colorToken: "surface" }
10408
- }] }
10409
- },
10410
- {
10411
- id: "outline",
10412
- name: "Outline",
10413
- enabled: true,
10414
- priority: 3,
10415
- background: {
10416
- type: "surface",
10417
- role: "link"
10418
- },
10419
- borderRadius: "rounded-full",
10420
- border: { widthClass: "border-2" },
10421
- effects: { hover: [{
10422
- effectId: "background-on-hover",
10423
- options: { colorToken: "background" }
10424
- }] }
10425
- },
10426
- {
10427
- id: "ghost",
10428
- name: "Ghost",
10429
- enabled: true,
10430
- priority: 3,
10431
- background: {
10432
- type: "surface",
10433
- role: "link"
10434
- },
10435
- borderRadius: "rounded-full",
10436
- effects: { hover: [{
10437
- effectId: "background-on-hover",
10438
- options: { colorToken: "surface" }
10439
- }] }
10440
- }
10441
- ]
10442
- }
10443
- });
10444
- }));
10445
- //#endregion
10446
- //#region ../theme-core/src/buttons/personalities/soft-pill.ts
10447
- var softPill;
10448
- var init_soft_pill = __esmMin((() => {
10449
- init_types$12();
10450
- softPill = defineButtonPersonality({
10451
- id: "soft-pill",
10452
- name: "Soft Pill",
10453
- description: "Rounded pills with a gentle lift on hover. Quietly modern.",
10454
- tags: {
10455
- tone: "classic",
10456
- energy: "calm",
10457
- motion: "subtle",
10458
- era: "organic"
10459
- },
10460
- buttonSystem: {
10461
- global: {
10462
- cornerStyle: "pill",
10463
- shadow: "low",
10464
- textTransform: "none",
10465
- fontWeight: 500,
10466
- borderWidth: 2,
10467
- hoverTransform: "lift",
10468
- hoverColor: "none"
10469
- },
10470
- variants: [
10471
- {
10472
- id: "primary",
10473
- name: "Primary",
10474
- enabled: true,
10475
- priority: 1,
10476
- background: {
10477
- type: "solid",
10478
- colorToken: "primary"
10479
- },
10480
- borderRadius: "rounded-full",
10481
- shadow: {
10482
- elevation: "low",
10483
- softness: "soft",
10484
- position: "bottom"
10485
- },
10486
- effects: {
10487
- hover: [{
10488
- effectId: "lift",
10489
- options: { translateY: "-1px" }
10490
- }],
10491
- active: [{
10492
- effectId: "scale-down",
10493
- options: { scale: "0.98" }
10494
- }]
10678
+ outline: {
10679
+ kind: "complete",
10680
+ appearance: {
10681
+ background: {
10682
+ type: "surface",
10683
+ role: "link"
10684
+ },
10685
+ borderRadius: "rounded-md",
10686
+ border: { widthClass: "border" },
10687
+ effects: { hover: [{
10688
+ effectId: "background-on-hover",
10689
+ options: { colorToken: "muted" }
10690
+ }] }
10495
10691
  }
10496
10692
  },
10497
- {
10498
- id: "secondary",
10499
- name: "Secondary",
10500
- enabled: true,
10501
- priority: 2,
10502
- background: {
10503
- type: "surface",
10504
- role: "link"
10505
- },
10506
- borderRadius: "rounded-full",
10507
- border: { widthClass: "border-2" },
10508
- effects: { hover: [{
10509
- effectId: "background-on-hover",
10510
- options: { colorToken: "surface" }
10511
- }] }
10512
- },
10513
- {
10514
- id: "outline",
10515
- name: "Outline",
10516
- enabled: true,
10517
- priority: 3,
10518
- background: {
10519
- type: "surface",
10520
- role: "link"
10521
- },
10522
- borderRadius: "rounded-full",
10523
- border: { widthClass: "border" },
10524
- effects: { hover: [{
10525
- effectId: "background-on-hover",
10526
- options: { colorToken: "surface" }
10527
- }] }
10693
+ ghost: {
10694
+ kind: "complete",
10695
+ appearance: {
10696
+ background: {
10697
+ type: "surface",
10698
+ role: "link"
10699
+ },
10700
+ borderRadius: "rounded-none",
10701
+ sizes: ornateGhostSizes,
10702
+ effects: { base: [{
10703
+ effectId: "border-bottom-grow",
10704
+ options: {
10705
+ height: 1,
10706
+ colorToken: "accent",
10707
+ origin: "left"
10708
+ }
10709
+ }] }
10710
+ }
10528
10711
  },
10529
- {
10530
- id: "ghost",
10531
- name: "Ghost",
10532
- enabled: true,
10533
- priority: 3,
10534
- background: {
10535
- type: "surface",
10536
- role: "link"
10537
- },
10538
- borderRadius: "rounded-full",
10539
- effects: { hover: [{
10540
- effectId: "background-on-hover",
10541
- options: { colorToken: "surface" }
10542
- }] }
10712
+ accent: {
10713
+ kind: "derive",
10714
+ from: "primary",
10715
+ overrides: { background: {
10716
+ type: "solid",
10717
+ colorToken: "accent"
10718
+ } }
10543
10719
  }
10544
- ]
10720
+ }
10545
10721
  }
10546
10722
  });
10547
10723
  }));
10548
10724
  //#endregion
10549
- //#region ../theme-core/src/buttons/personalities/two-tone-pill.ts
10550
- var solidSecondary, twoTonePill;
10551
- var init_two_tone_pill = __esmMin((() => {
10552
- init_types$13();
10553
- init_soft_pill();
10554
- init_types$12();
10555
- solidSecondary = {
10556
- id: "secondary",
10557
- name: "Secondary",
10558
- enabled: true,
10559
- priority: 2,
10560
- background: {
10561
- type: "solid",
10562
- colorToken: unsafeAsOpaqueButtonColourToken("secondary")
10563
- },
10564
- borderRadius: "rounded-full",
10565
- shadow: {
10566
- elevation: "none",
10567
- softness: null,
10568
- position: "bottom"
10569
- },
10570
- effects: {
10571
- hover: [{
10572
- effectId: "background-on-hover-alpha",
10573
- options: {
10574
- colorToken: "secondary",
10575
- opacity: 88
10576
- }
10577
- }],
10578
- active: [{
10579
- effectId: "scale-down",
10580
- options: { scale: "0.98" }
10581
- }]
10582
- }
10725
+ //#region ../theme-core/src/buttons/styles/registry.ts
10726
+ function findButtonStyleRecipe(id) {
10727
+ const recipe = recipesById.get(id);
10728
+ if (recipe === void 0) throw new Error(`Button style registry is missing known style ${id}`);
10729
+ return recipe;
10730
+ }
10731
+ function resolveButtonStyleSelection(selection) {
10732
+ switch (selection.styleId) {
10733
+ case "soft-pill": return resolveButtonStyleRecipe(softPillRecipe, selection.parameters);
10734
+ case "earth-pill": return resolveButtonStyleRecipe(earthPillRecipe, selection.parameters);
10735
+ case "confident-chip": return resolveButtonStyleRecipe(confidentChipRecipe, selection.parameters);
10736
+ case "editorial-link": return resolveButtonStyleRecipe(editorialLinkRecipe, selection.parameters);
10737
+ case "pebble": return resolveButtonStyleRecipe(pebbleRecipe, selection.parameters);
10738
+ case "ink-stamp": return resolveButtonStyleRecipe(inkStampRecipe, selection.parameters);
10739
+ case "flat-ink": return resolveButtonStyleRecipe(flatInkRecipe, selection.parameters);
10740
+ case "brushed-wash": return resolveButtonStyleRecipe(brushedWashRecipe, selection.parameters);
10741
+ case "showtime-pill": return resolveButtonStyleRecipe(showtimePillRecipe, selection.parameters);
10742
+ case "joy-stamp": return resolveButtonStyleRecipe(joyStampRecipe, selection.parameters);
10743
+ case "ornate-ritual": return resolveButtonStyleRecipe(ornateRitualRecipe, selection.parameters);
10744
+ case "quiet-arrow": return resolveButtonStyleRecipe(quietArrowRecipe, selection.parameters);
10745
+ }
10746
+ }
10747
+ function defaultButtonStyleSelectionFor(styleId) {
10748
+ return {
10749
+ styleId,
10750
+ parameters: findButtonStyleRecipe(styleId).defaultParameters
10583
10751
  };
10584
- twoTonePill = defineButtonPersonality({
10585
- id: "two-tone-pill",
10586
- name: "Two-tone Pill",
10587
- description: "Rounded pills with distinct solid primary and secondary brand colours.",
10588
- tags: softPill.tags,
10589
- buttonSystem: {
10590
- ...softPill.buttonSystem,
10591
- variants: softPill.buttonSystem.variants.map((variant) => variant.id === "secondary" ? solidSecondary : variant)
10592
- }
10593
- });
10594
- })), buttonPersonalities;
10595
- var init_personalities = __esmMin((() => {
10596
- init_brushed_wash();
10597
- init_confident_chip();
10598
- init_earth_pill();
10599
- init_editorial_link();
10600
- init_flat_ink();
10601
- init_ink_stamp();
10602
- init_joy_stamp();
10603
- init_ornate_ritual();
10604
- init_pebble();
10605
- init_quiet_arrow();
10606
- init_showtime_pill();
10607
- init_soft_pill();
10608
- init_two_tone_pill();
10609
- init_types$12();
10610
- buttonPersonalities = [
10611
- softPill,
10612
- twoTonePill,
10613
- earthPill,
10614
- confidentChip,
10615
- editorialLink,
10616
- pebble,
10617
- inkStamp,
10618
- flatInk,
10619
- brushedWash,
10620
- showtimePill,
10621
- joyStamp,
10622
- ornateRitual,
10623
- quietArrow
10624
- ];
10625
- new Map(buttonPersonalities.map((p) => [p.id, p]));
10752
+ }
10753
+ var buttonStyleRecipes, recipesById, registeredIds;
10754
+ var init_registry$2 = __esmMin((() => {
10755
+ init_domain();
10756
+ init_selection();
10757
+ init_quietArrow();
10758
+ init_staticRecipes();
10759
+ buttonStyleRecipes = [
10760
+ softPillRecipe,
10761
+ earthPillRecipe,
10762
+ confidentChipRecipe,
10763
+ editorialLinkRecipe,
10764
+ pebbleRecipe,
10765
+ inkStampRecipe,
10766
+ flatInkRecipe,
10767
+ brushedWashRecipe,
10768
+ showtimePillRecipe,
10769
+ joyStampRecipe,
10770
+ ornateRitualRecipe,
10771
+ quietArrowRecipe
10772
+ ];
10773
+ recipesById = new Map(buttonStyleRecipes.map((recipe) => [recipe.id, recipe]));
10774
+ registeredIds = buttonStyleRecipes.map((recipe) => recipe.id);
10775
+ if (registeredIds.length !== BUTTON_STYLE_IDS.length || BUTTON_STYLE_IDS.some((id) => !recipesById.has(id))) throw new Error("Button style registry and ButtonStyleId catalog are out of sync");
10776
+ }));
10777
+ //#endregion
10778
+ //#region ../theme-core/src/buttons/styles/index.ts
10779
+ var init_styles = __esmMin((() => {
10780
+ init_domain();
10781
+ init_registry$2();
10782
+ init_selection();
10626
10783
  }));
10627
10784
  //#endregion
10628
10785
  //#region ../theme-core/src/accordions/siteStyleDefaults.ts
@@ -11212,10 +11369,10 @@ var init_gradients = __esmMin((() => {
11212
11369
  init_utils$4();
11213
11370
  }));
11214
11371
  var init_customizableSurfaces = __esmMin((() => {
11215
- init_types$16();
11372
+ init_types$15();
11216
11373
  })), logoTextConfidenceValues, logoAssetShapeValues, logoKindValues, logoDensityValues, logoContainsTextSchema, logoAnalysisSourceSchema, brandDisplayModeValues, logoAccommodationPatternValues, logoSizePolicyValues;
11217
11374
  var init_logoBranding = __esmMin((() => {
11218
- init_types$16();
11375
+ init_types$15();
11219
11376
  logoTextConfidenceValues = [
11220
11377
  "low",
11221
11378
  "medium",
@@ -11688,7 +11845,7 @@ var init_headerLooks = __esmMin((() => {
11688
11845
  init_headerCtaVariants();
11689
11846
  init_customizableSurfaces();
11690
11847
  init_logoBranding();
11691
- init_types$16();
11848
+ init_types$15();
11692
11849
  titleOnlyLogoAccommodation = {
11693
11850
  pattern: "title-only",
11694
11851
  supportedShapes: [
@@ -12326,25 +12483,9 @@ var init_headerLooks = __esmMin((() => {
12326
12483
  function asFooterLookId(value) {
12327
12484
  return value;
12328
12485
  }
12329
- function asFooterLayoutId(value) {
12330
- return value;
12331
- }
12332
- function asFooterStyleId(value) {
12333
- return value;
12334
- }
12335
- /**
12336
- * No-nav-safe identity footer: brand and legal/supporting copy carry the
12337
- * footer without implying missing navigation.
12338
- */
12339
- function identityQuietFooter(theme) {
12486
+ function quietFooterLinks(theme) {
12340
12487
  return {
12341
12488
  ...theme.footer,
12342
- variant: "simple",
12343
- maxWidth: "container",
12344
- background: {
12345
- type: "color",
12346
- color: "surface"
12347
- },
12348
12489
  navStyle: "minimal",
12349
12490
  navWeight: "regular",
12350
12491
  navColor: "text",
@@ -12357,345 +12498,46 @@ function identityQuietFooter(theme) {
12357
12498
  hoverColorToken: "primary",
12358
12499
  padding: "none",
12359
12500
  borderRadius: "none"
12360
- },
12361
- navLayout: {
12362
- layout: "inline-wrap",
12363
- align: "start",
12364
- gapX: "default",
12365
- gapY: "tight"
12366
- },
12367
- logo: {
12368
- showLogo: true,
12369
- showLogoText: true,
12370
- placement: "left",
12371
- size: "sm",
12372
- align: "start"
12373
- },
12374
- bottomBar: {
12375
- enabled: false,
12376
- fullBleed: false,
12377
- textAlign: "left",
12378
- paddingX: "default",
12379
- paddingY: "compact",
12380
- borderTop: { width: "none" }
12381
12501
  }
12382
12502
  };
12383
12503
  }
12384
- /**
12385
- * Back-compat alias for the previous default footer Look. It keeps existing
12386
- * persisted selections valid while staying hidden from the new layout/style UI.
12387
- */
12388
- function mutedGroundingFooter(theme) {
12389
- return {
12390
- ...identityQuietFooter(theme),
12391
- background: theme.footer.background,
12392
- navStyle: theme.footer.navStyle,
12393
- navColor: theme.footer.navColor,
12394
- navWeight: theme.footer.navWeight,
12395
- navLinkStyle: theme.footer.navLinkStyle,
12396
- bottomTextLinkStyle: theme.footer.bottomTextLinkStyle
12397
- };
12398
- }
12399
- /** Applies a high-contrast brand band with a darker full-bleed bottom bar. */
12400
- function brandTwoBandFooter(theme) {
12504
+ function emphasizedFooterLinks(theme) {
12401
12505
  return {
12402
12506
  ...theme.footer,
12403
- variant: "split",
12404
- maxWidth: "container",
12405
- background: {
12406
- type: "color",
12407
- color: "primary-800"
12408
- },
12409
12507
  navStyle: "minimal",
12410
12508
  navWeight: "medium",
12411
- navColor: "primaryForeground",
12412
- navLinkStyle: {
12413
- typography: "body",
12414
- fontWeight: "medium",
12415
- textTransform: "none",
12416
- italic: false,
12417
- colorToken: "primaryForeground",
12418
- hoverColorToken: "secondary",
12419
- padding: "none",
12420
- borderRadius: "none"
12421
- },
12422
- bottomTextLinkStyle: {
12423
- colorToken: "secondary",
12424
- decorationColorToken: "secondary"
12425
- },
12426
- navLayout: {
12427
- layout: "inline-wrap",
12428
- align: "start",
12429
- gapX: "default",
12430
- gapY: "tight"
12431
- },
12432
- logo: {
12433
- showLogo: true,
12434
- showLogoText: false,
12435
- placement: "left",
12436
- size: "sm",
12437
- align: "start"
12438
- },
12439
- bottomBar: {
12440
- enabled: true,
12441
- fullBleed: true,
12442
- background: {
12443
- type: "color",
12444
- color: "primary-900"
12445
- },
12446
- textColor: "primaryForeground",
12447
- textAlign: "center",
12448
- paddingX: "default",
12449
- paddingY: "compact",
12450
- borderTop: { width: "none" }
12451
- }
12452
- };
12453
- }
12454
- /**
12455
- * Centered stack on a softly tinted band: logo, inline nav, address, and a
12456
- * hairline-topped copyright line, all centered.
12457
- */
12458
- function centeredCalmFooter(theme) {
12459
- return {
12460
- ...theme.footer,
12461
- variant: "simple",
12462
- maxWidth: "container",
12463
- background: {
12464
- type: "color",
12465
- color: "surfaceAlt"
12466
- },
12467
- navStyle: "minimal",
12468
- navWeight: "regular",
12469
- navColor: "text",
12470
- navLinkStyle: {
12471
- typography: "body",
12472
- fontWeight: "regular",
12473
- textTransform: "none",
12474
- italic: false,
12475
- colorToken: "text",
12476
- hoverColorToken: "primary",
12477
- padding: "none",
12478
- borderRadius: "none"
12479
- },
12480
- navLayout: {
12481
- layout: "inline-wrap",
12482
- align: "center",
12483
- gapX: "relaxed",
12484
- gapY: "tight"
12485
- },
12486
- logo: {
12487
- showLogo: true,
12488
- showLogoText: false,
12489
- placement: "above",
12490
- size: "sm",
12491
- align: "center"
12492
- },
12493
- bottomBar: {
12494
- enabled: true,
12495
- fullBleed: false,
12496
- textAlign: "center",
12497
- paddingX: "default",
12498
- paddingY: "compact",
12499
- borderTop: { width: "thin" }
12500
- }
12501
- };
12502
- }
12503
- /** Editorial split footer: compact nav on one side, brand signoff on the other. */
12504
- function splitEditorialFooter(theme) {
12505
- return {
12506
- ...theme.footer,
12507
- variant: "split",
12508
- maxWidth: "container",
12509
- background: {
12510
- type: "color",
12511
- color: "surface"
12512
- },
12513
- navStyle: "minimal",
12514
- navWeight: "regular",
12515
- navColor: "text",
12516
- navLinkStyle: {
12517
- typography: "body",
12518
- fontWeight: "regular",
12519
- textTransform: "none",
12520
- italic: false,
12521
- colorToken: "text",
12522
- hoverColorToken: "primary",
12523
- padding: "none",
12524
- borderRadius: "none"
12525
- },
12526
- navLayout: {
12527
- layout: "inline-wrap",
12528
- align: "start",
12529
- gapX: "relaxed",
12530
- gapY: "tight"
12531
- },
12532
- logo: {
12533
- showLogo: true,
12534
- showLogoText: true,
12535
- placement: "right",
12536
- size: "sm",
12537
- align: "end"
12538
- },
12539
- bottomBar: {
12540
- enabled: true,
12541
- fullBleed: false,
12542
- textAlign: "left",
12543
- paddingX: "default",
12544
- paddingY: "compact",
12545
- borderTop: { width: "thin" }
12546
- }
12547
- };
12548
- }
12549
- /**
12550
- * Editorial columns: site name and supporting copy on the left, inline nav on
12551
- * the right, with a hairline-topped bottom line. Uses the footer block's
12552
- * columns layout.
12553
- */
12554
- function editorialColumnsFooter(theme) {
12555
- return {
12556
- ...theme.footer,
12557
- variant: "columns",
12558
- maxWidth: "container",
12559
- background: {
12560
- type: "color",
12561
- color: "surface"
12562
- },
12563
- navStyle: "minimal",
12564
- navWeight: "regular",
12565
12509
  navColor: "text",
12566
12510
  navLinkStyle: {
12567
12511
  typography: "body",
12568
- fontWeight: "regular",
12512
+ fontWeight: "medium",
12569
12513
  textTransform: "none",
12570
12514
  italic: false,
12571
12515
  colorToken: "text",
12572
12516
  hoverColorToken: "primary",
12573
12517
  padding: "none",
12574
12518
  borderRadius: "none"
12575
- },
12576
- logo: {
12577
- showLogo: true,
12578
- showLogoText: true,
12579
- placement: "left",
12580
- size: "sm",
12581
- align: "start"
12582
- },
12583
- bottomBar: {
12584
- enabled: true,
12585
- fullBleed: false,
12586
- textAlign: "center",
12587
- paddingX: "default",
12588
- paddingY: "compact",
12589
- borderTop: { width: "thin" }
12590
12519
  }
12591
12520
  };
12592
12521
  }
12593
- var footerLayoutCatalog, footerStyleCatalog, footerLookCatalog;
12522
+ var footerLookCatalog;
12594
12523
  var init_footerLooks = __esmMin((() => {
12595
- init_customizableSurfaces();
12596
- init_types$16();
12597
- footerLayoutCatalog = defineExactCatalog()([
12598
- {
12599
- id: asFooterLayoutId("identity"),
12600
- label: "Identity",
12601
- description: "Logo, site text, address, and legal copy without relying on footer navigation."
12602
- },
12603
- {
12604
- id: asFooterLayoutId("centered"),
12605
- label: "Centered",
12606
- description: "A calm centered stack for identity, short copy, and optional compact navigation.",
12607
- maxRecommendedNavDensity: "sparse"
12608
- },
12609
- {
12610
- id: asFooterLayoutId("split"),
12611
- label: "Split",
12612
- description: "Navigation and brand signoff separated into a wider split footer.",
12613
- requiresFooterNav: true,
12614
- maxRecommendedNavDensity: "balanced"
12615
- },
12616
- {
12617
- id: asFooterLayoutId("columns"),
12618
- label: "Columns",
12619
- description: "Grouped footer navigation columns with a supporting bottom line.",
12620
- requiresFooterNav: true,
12621
- requiresFooterNavGroups: true
12622
- }
12623
- ]);
12624
- footerStyleCatalog = defineExactCatalog()([
12625
- {
12626
- id: asFooterStyleId("quiet"),
12627
- label: "Quiet",
12628
- description: "Lightweight, practical footer treatment."
12629
- },
12630
- {
12631
- id: asFooterStyleId("calm"),
12632
- label: "Calm",
12633
- description: "Soft centered treatment with restrained dividers."
12634
- },
12635
- {
12636
- id: asFooterStyleId("editorial"),
12637
- label: "Editorial",
12638
- description: "Text-forward treatment with fine-line structure."
12639
- },
12640
- {
12641
- id: asFooterStyleId("brand-band"),
12642
- label: "Brand band",
12643
- description: "High-contrast brand treatment with a stronger bottom bar."
12644
- }
12645
- ]);
12646
- new Map(footerLayoutCatalog.map((layout) => [layout.id, layout]));
12647
- new Map(footerStyleCatalog.map((style) => [style.id, style]));
12648
- footerLookCatalog = defineExactCatalog()([
12649
- {
12650
- id: asFooterLookId("footer-identity-quiet"),
12651
- label: "Identity footer",
12652
- layoutId: asFooterLayoutId("identity"),
12653
- styleId: asFooterStyleId("quiet"),
12654
- compile: identityQuietFooter
12655
- },
12656
- {
12657
- id: asFooterLookId("footer-muted-grounding"),
12658
- label: "Muted grounding footer",
12659
- layoutId: asFooterLayoutId("identity"),
12660
- styleId: asFooterStyleId("quiet"),
12661
- hiddenFromLayoutStyleControls: true,
12662
- compile: mutedGroundingFooter
12663
- },
12664
- {
12665
- id: asFooterLookId("footer-centered-calm"),
12666
- label: "Centered calm footer",
12667
- layoutId: asFooterLayoutId("centered"),
12668
- styleId: asFooterStyleId("calm"),
12669
- compile: centeredCalmFooter
12670
- },
12671
- {
12672
- id: asFooterLookId("footer-split-editorial"),
12673
- label: "Split editorial footer",
12674
- layoutId: asFooterLayoutId("split"),
12675
- styleId: asFooterStyleId("editorial"),
12676
- compile: splitEditorialFooter
12677
- },
12678
- {
12679
- id: asFooterLookId("footer-editorial-columns"),
12680
- label: "Editorial columns footer",
12681
- layoutId: asFooterLayoutId("columns"),
12682
- styleId: asFooterStyleId("editorial"),
12683
- compile: editorialColumnsFooter
12684
- },
12685
- {
12686
- id: asFooterLookId("site-footer-brand-two-band"),
12687
- label: "Two-band brand footer",
12688
- layoutId: asFooterLayoutId("split"),
12689
- styleId: asFooterStyleId("brand-band"),
12690
- allowedContentPresence: ["default-footer", "default-and-blocks"],
12691
- compile: brandTwoBandFooter
12692
- }
12693
- ]);
12524
+ init_types$15();
12525
+ footerLookCatalog = defineExactCatalog()([{
12526
+ id: asFooterLookId("footer-links-quiet"),
12527
+ label: "Quiet links",
12528
+ description: "Regular-weight footer navigation with a restrained hover.",
12529
+ compile: quietFooterLinks
12530
+ }, {
12531
+ id: asFooterLookId("footer-links-emphasized"),
12532
+ label: "Emphasized links",
12533
+ description: "Medium-weight footer navigation with a clearer emphasis.",
12534
+ compile: emphasizedFooterLinks
12535
+ }]);
12694
12536
  new Map(footerLookCatalog.map((look) => [look.id, look]));
12695
12537
  }));
12696
12538
  var init_curatedChoices = __esmMin((() => {})), generatedContentFrames, userContentFrames, generatedDesignOptionCatalog, userDesignOptionCatalog;
12697
12539
  var init_sourceCatalogs = __esmMin((() => {
12698
- init_types$16();
12540
+ init_types$15();
12699
12541
  generatedContentFrames = [
12700
12542
  plainFrame,
12701
12543
  panelFrame("inset"),
@@ -13312,7 +13154,7 @@ function themeButtonClassName(spec) {
13312
13154
  ].filter(Boolean).join(" ");
13313
13155
  }
13314
13156
  var init_classNames = __esmMin((() => {
13315
- init_types$13();
13157
+ init_types$12();
13316
13158
  }));
13317
13159
  //#endregion
13318
13160
  //#region ../theme-core/src/interactive/generateBaseCSS.ts
@@ -14867,7 +14709,7 @@ function generateDefaultButtonSystem(theme) {
14867
14709
  }
14868
14710
  var BORDER_WIDTH_TO_CLASS_MAP, VALID_CORNER_STYLES;
14869
14711
  var init_generateDefaultButtonSystem = __esmMin((() => {
14870
- init_types$13();
14712
+ init_types$12();
14871
14713
  BORDER_WIDTH_TO_CLASS_MAP = {
14872
14714
  none: "border-0",
14873
14715
  hairline: "border",
@@ -15253,7 +15095,7 @@ var init_resolveButtonColourStates = __esmMin((() => {
15253
15095
  init_colorConversion();
15254
15096
  init_onColor();
15255
15097
  init_foregroundContract();
15256
- init_types$13();
15098
+ init_types$12();
15257
15099
  init_constants$2();
15258
15100
  init_effectClassification();
15259
15101
  BUTTON_VISUAL_STATES = [
@@ -15641,7 +15483,7 @@ function resolveBoxShadow(variant, global, theme, tokens) {
15641
15483
  }
15642
15484
  var AFFORDANCE_SUPPRESS_CLASS, BUTTON_SIZE_NAMES, LETTER_SPACING_MAP, STRUCTURAL_DECLARATIONS;
15643
15485
  var init_generateButtonCss = __esmMin((() => {
15644
- init_types$13();
15486
+ init_types$12();
15645
15487
  init_classNames();
15646
15488
  init_resolver$1();
15647
15489
  init_generateBaseCSS();
@@ -15669,29 +15511,33 @@ var init_generateButtonCss = __esmMin((() => {
15669
15511
  ["outline", "none"]
15670
15512
  ];
15671
15513
  }));
15672
- function presetCategory(personality) {
15673
- switch (personality.tags.era) {
15514
+ function presetCategory(recipe) {
15515
+ switch (recipe.tags.era) {
15674
15516
  case "retro": return "retro";
15675
15517
  case "editorial": return "minimal";
15676
15518
  case "organic": return "artistic";
15677
- case "modern": return personality.tags.tone === "bold" ? "modern" : "technical";
15519
+ case "modern": return recipe.tags.tone === "bold" ? "modern" : "technical";
15678
15520
  case "technical": return "technical";
15679
15521
  case void 0: return "modern";
15680
15522
  }
15681
15523
  }
15682
15524
  var init_presets$1 = __esmMin((() => {
15683
- init_personalities();
15684
- buttonPersonalities.map((personality) => ({
15685
- id: personality.id,
15686
- name: personality.name,
15687
- description: personality.description,
15688
- category: presetCategory(personality),
15689
- buttonSystem: personality.buttonSystem,
15690
- compatibility: {
15691
- ...personality.tags.tone ? { tones: [personality.tags.tone] } : {},
15692
- ...personality.tags.energy ? { energies: [personality.tags.energy] } : {}
15693
- }
15694
- }));
15525
+ init_styles();
15526
+ buttonStyleRecipes.map((recipe) => {
15527
+ const resolved = resolveButtonStyleSelection(defaultButtonStyleSelectionFor(recipe.id));
15528
+ if (resolved.kind === "error") throw new Error(`Invalid registered button style ${recipe.id}: ${resolved.error.issues.join(", ")}`);
15529
+ return {
15530
+ id: recipe.id,
15531
+ name: recipe.accessibilityLabel,
15532
+ description: recipe.accessibilityLabel,
15533
+ category: presetCategory(recipe),
15534
+ buttonSystem: resolved.buttonSystem,
15535
+ compatibility: {
15536
+ ...recipe.tags.tone ? { tones: [recipe.tags.tone] } : {},
15537
+ ...recipe.tags.energy ? { energies: [recipe.tags.energy] } : {}
15538
+ }
15539
+ };
15540
+ });
15695
15541
  }));
15696
15542
  //#endregion
15697
15543
  //#region ../theme-core/src/buttons/effects/types.ts
@@ -15699,12 +15545,12 @@ var init_types$10 = __esmMin((() => {}));
15699
15545
  var init_core$1 = __esmMin((() => {
15700
15546
  init_resolveButtonColourStates();
15701
15547
  init_resolvedButtonCss();
15702
- init_types$13();
15548
+ init_types$12();
15703
15549
  }));
15704
15550
  //#endregion
15705
15551
  //#region ../theme-core/src/buttons/index.ts
15706
15552
  var init_buttons = __esmMin((() => {
15707
- init_types$13();
15553
+ init_types$12();
15708
15554
  init_classNames();
15709
15555
  init_generateButtonCss();
15710
15556
  init_resolveButtonColourStates();
@@ -15712,7 +15558,7 @@ var init_buttons = __esmMin((() => {
15712
15558
  init_generateDefaultButtonSystem();
15713
15559
  init_constants$2();
15714
15560
  init_presets$1();
15715
- init_personalities();
15561
+ init_styles();
15716
15562
  init_types$10();
15717
15563
  init_registry$1();
15718
15564
  init_transform();
@@ -16922,7 +16768,7 @@ var init_schema$1 = __esmMin((() => {
16922
16768
  init_validation$2();
16923
16769
  init_atRuleValidation();
16924
16770
  init_shared$5();
16925
- init_types$16();
16771
+ init_types$15();
16926
16772
  init_logoBranding();
16927
16773
  init_rawStyleFields();
16928
16774
  init_themeColorTokens();
@@ -17780,7 +17626,7 @@ function uniqueNonEmpty$1(values) {
17780
17626
  var designResolutionPolicySchema, runtimeStyleFieldNameSchema, nonEmptyRuntimeStyleFieldNamesSchema, heroLegibilityStrategySchema, heroCompositionIntentSchema, heroTypographyScaleIntentSchema, sectionHeightIntentSchema, imageSurfaceTreatmentIntensitySchema, imageSurfaceMotionSchema, imageSurfaceTreatmentSchema, testimonialCardTreatmentSchema, tileTreatmentSchema, eventListTreatmentSchema, eyebrowTreatmentSchema, userPanelTreatments, userFlushTreatments, userFlushBleeds, contentFrameIntentSchema, blockDesignPlanSchema, styleAuthoritySchema, blockRuntimeStyleAuthoritySchema;
17781
17627
  var init_designState = __esmMin((() => {
17782
17628
  init_sourceCatalogs();
17783
- init_types$16();
17629
+ init_types$15();
17784
17630
  init_schemaVersionedJson();
17785
17631
  init_rawStyleFields();
17786
17632
  designResolutionPolicySchema = z$1.enum([
@@ -17956,10 +17802,10 @@ var init_runtimeCompiler = __esmMin((() => {
17956
17802
  init_schema$1();
17957
17803
  init_modern_minimal();
17958
17804
  init_expandPalette();
17959
- init_personalities();
17805
+ init_styles();
17960
17806
  init_colors();
17961
17807
  init_designState();
17962
- init_types$16();
17808
+ init_types$15();
17963
17809
  init_accessibleSurfaces();
17964
17810
  init_sectionTransitions();
17965
17811
  init_tokens();
@@ -18198,17 +18044,21 @@ function defineCuratedSiteStyle(input) {
18198
18044
  })),
18199
18045
  recommendedHeaderLookIds: legacyHeaderLookIds.map(asHeaderLookId),
18200
18046
  recommendedFooterLookIds: (input.recommendedFooterLookIds ?? []).map(asFooterLookId),
18201
- buttonPersonalityChoices: input.buttonPersonalityChoices,
18047
+ buttonStyleChoices: input.buttonStyleChoices,
18202
18048
  paletteRecommendations: input.paletteRecommendations,
18203
18049
  typography: input.typography ?? defaultTypographyForRecipe(input.tokenRecipes.typography),
18204
18050
  ...input.heroTypography ? { heroTypography: input.heroTypography } : {}
18205
18051
  };
18206
18052
  }
18207
- function buttonChoice(id, note) {
18053
+ function buttonChoice(styleId, note, parameters) {
18054
+ const selection = parameters === void 0 ? defaultButtonStyleSelectionFor(styleId) : buttonStyleSelectionSchema.parse({
18055
+ styleId,
18056
+ parameters
18057
+ });
18208
18058
  return note ? {
18209
- id: asButtonPersonalityId(id),
18059
+ ...selection,
18210
18060
  note
18211
- } : { id: asButtonPersonalityId(id) };
18061
+ } : selection;
18212
18062
  }
18213
18063
  function paletteRecommendation(authoringKey, note) {
18214
18064
  const valueKey = requireCuratedPaletteValueKey(asCuratedPaletteAuthoringKey(authoringKey));
@@ -18364,7 +18214,7 @@ function getCuratedSiteStyle(id) {
18364
18214
  }
18365
18215
  var SOFT_EARTH_SITE_STYLE_ID_VALUE, SOFT_EARTH_SITE_STYLE_ID, curatedSiteStyleIdValues, quietBudget, accentLedQuietBudget, balancedBudget, expressiveBudget, kirtanOrnateDesignRuntimeRules, primaryGlowGradientPresetId, fulcrumDesignRuntimeRules, expressiveUnderlineInputs, ornateDarkInputs, generatedContentFrameKinds, curatedSiteStyles, curatedSiteStylesById;
18366
18216
  var init_curatedSiteStyles = __esmMin((() => {
18367
- init_personalities();
18217
+ init_styles();
18368
18218
  init_curated();
18369
18219
  init_siteStyleDefaults$1();
18370
18220
  init_siteStyleDefaults();
@@ -18374,7 +18224,7 @@ var init_curatedSiteStyles = __esmMin((() => {
18374
18224
  init_footerLooks();
18375
18225
  init_curatedChoices();
18376
18226
  init_sourceCatalogs();
18377
- init_types$16();
18227
+ init_types$15();
18378
18228
  init_siteStyleTypography();
18379
18229
  init_runtimeCompiler();
18380
18230
  SOFT_EARTH_SITE_STYLE_ID_VALUE = "site-style:soft-earth";
@@ -18598,9 +18448,8 @@ var init_curatedSiteStyles = __esmMin((() => {
18598
18448
  "minimal-transparent",
18599
18449
  "clean-base"
18600
18450
  ],
18601
- buttonPersonalityChoices: [
18451
+ buttonStyleChoices: [
18602
18452
  buttonChoice("soft-pill"),
18603
- buttonChoice("two-tone-pill"),
18604
18453
  buttonChoice("pebble"),
18605
18454
  buttonChoice("editorial-link"),
18606
18455
  buttonChoice("brushed-wash")
@@ -18636,7 +18485,7 @@ var init_curatedSiteStyles = __esmMin((() => {
18636
18485
  "brand-solid",
18637
18486
  "clean-base"
18638
18487
  ],
18639
- buttonPersonalityChoices: [
18488
+ buttonStyleChoices: [
18640
18489
  buttonChoice("confident-chip"),
18641
18490
  buttonChoice("soft-pill"),
18642
18491
  buttonChoice("editorial-link")
@@ -18675,7 +18524,7 @@ var init_curatedSiteStyles = __esmMin((() => {
18675
18524
  "minimal-transparent",
18676
18525
  "centered-calm"
18677
18526
  ],
18678
- buttonPersonalityChoices: [
18527
+ buttonStyleChoices: [
18679
18528
  buttonChoice("editorial-link"),
18680
18529
  buttonChoice("soft-pill"),
18681
18530
  buttonChoice("brushed-wash")
@@ -18715,7 +18564,7 @@ var init_curatedSiteStyles = __esmMin((() => {
18715
18564
  "practical-utility",
18716
18565
  "clean-base"
18717
18566
  ],
18718
- buttonPersonalityChoices: [
18567
+ buttonStyleChoices: [
18719
18568
  buttonChoice("pebble"),
18720
18569
  buttonChoice("brushed-wash"),
18721
18570
  buttonChoice("confident-chip")
@@ -18776,7 +18625,7 @@ var init_curatedSiteStyles = __esmMin((() => {
18776
18625
  "serif-line",
18777
18626
  "clean-base"
18778
18627
  ],
18779
- buttonPersonalityChoices: [
18628
+ buttonStyleChoices: [
18780
18629
  buttonChoice("editorial-link"),
18781
18630
  buttonChoice("confident-chip"),
18782
18631
  buttonChoice("soft-pill")
@@ -18838,7 +18687,7 @@ var init_curatedSiteStyles = __esmMin((() => {
18838
18687
  "brand-solid",
18839
18688
  "clean-base"
18840
18689
  ],
18841
- buttonPersonalityChoices: [
18690
+ buttonStyleChoices: [
18842
18691
  buttonChoice("confident-chip"),
18843
18692
  buttonChoice("pebble"),
18844
18693
  buttonChoice("ink-stamp")
@@ -18877,7 +18726,7 @@ var init_curatedSiteStyles = __esmMin((() => {
18877
18726
  "minimal-transparent",
18878
18727
  "clean-base"
18879
18728
  ],
18880
- buttonPersonalityChoices: [
18729
+ buttonStyleChoices: [
18881
18730
  buttonChoice("soft-pill"),
18882
18731
  buttonChoice("pebble"),
18883
18732
  buttonChoice("confident-chip")
@@ -18950,7 +18799,7 @@ var init_curatedSiteStyles = __esmMin((() => {
18950
18799
  "clean-base",
18951
18800
  "centered-calm"
18952
18801
  ],
18953
- buttonPersonalityChoices: [
18802
+ buttonStyleChoices: [
18954
18803
  buttonChoice("pebble"),
18955
18804
  buttonChoice("soft-pill"),
18956
18805
  buttonChoice("editorial-link")
@@ -19069,12 +18918,8 @@ var init_curatedSiteStyles = __esmMin((() => {
19069
18918
  "serif-line",
19070
18919
  "minimal-transparent"
19071
18920
  ],
19072
- recommendedFooterLookIds: [
19073
- "footer-centered-calm",
19074
- "footer-editorial-columns",
19075
- "footer-muted-grounding"
19076
- ],
19077
- buttonPersonalityChoices: [
18921
+ recommendedFooterLookIds: ["footer-links-quiet"],
18922
+ buttonStyleChoices: [
19078
18923
  buttonChoice("soft-pill"),
19079
18924
  buttonChoice("pebble"),
19080
18925
  buttonChoice("editorial-link")
@@ -19148,7 +18993,7 @@ var init_curatedSiteStyles = __esmMin((() => {
19148
18993
  "centered-calm",
19149
18994
  "minimal-transparent"
19150
18995
  ],
19151
- buttonPersonalityChoices: [
18996
+ buttonStyleChoices: [
19152
18997
  buttonChoice("editorial-link"),
19153
18998
  buttonChoice("soft-pill"),
19154
18999
  buttonChoice("brushed-wash")
@@ -19221,8 +19066,8 @@ var init_curatedSiteStyles = __esmMin((() => {
19221
19066
  "practical-utility",
19222
19067
  "clean-base"
19223
19068
  ],
19224
- recommendedFooterLookIds: ["site-footer-brand-two-band", "footer-muted-grounding"],
19225
- buttonPersonalityChoices: [
19069
+ recommendedFooterLookIds: ["footer-links-emphasized", "footer-links-quiet"],
19070
+ buttonStyleChoices: [
19226
19071
  buttonChoice("pebble"),
19227
19072
  buttonChoice("confident-chip"),
19228
19073
  buttonChoice("ink-stamp"),
@@ -19343,8 +19188,8 @@ var init_curatedSiteStyles = __esmMin((() => {
19343
19188
  "minimal-transparent",
19344
19189
  "serif-line"
19345
19190
  ],
19346
- recommendedFooterLookIds: ["footer-muted-grounding", "site-footer-brand-two-band"],
19347
- buttonPersonalityChoices: [
19191
+ recommendedFooterLookIds: ["footer-links-quiet", "footer-links-emphasized"],
19192
+ buttonStyleChoices: [
19348
19193
  buttonChoice("earth-pill"),
19349
19194
  buttonChoice("soft-pill"),
19350
19195
  buttonChoice("pebble"),
@@ -19415,7 +19260,7 @@ var init_curatedSiteStyles = __esmMin((() => {
19415
19260
  "floating-glass",
19416
19261
  "brand-solid"
19417
19262
  ],
19418
- buttonPersonalityChoices: [
19263
+ buttonStyleChoices: [
19419
19264
  buttonChoice("ink-stamp"),
19420
19265
  buttonChoice("confident-chip"),
19421
19266
  buttonChoice("brushed-wash"),
@@ -19470,8 +19315,8 @@ var init_curatedSiteStyles = __esmMin((() => {
19470
19315
  "transparent-overlay",
19471
19316
  "practical-utility"
19472
19317
  ],
19473
- recommendedFooterLookIds: ["site-footer-brand-two-band", "footer-muted-grounding"],
19474
- buttonPersonalityChoices: [
19318
+ recommendedFooterLookIds: ["footer-links-emphasized", "footer-links-quiet"],
19319
+ buttonStyleChoices: [
19475
19320
  buttonChoice("showtime-pill"),
19476
19321
  buttonChoice("confident-chip"),
19477
19322
  buttonChoice("ink-stamp"),
@@ -19552,8 +19397,8 @@ var init_curatedSiteStyles = __esmMin((() => {
19552
19397
  headerStyleChoice("glass")
19553
19398
  ] },
19554
19399
  recommendedHeaderLookIds: ["minimal-transparent"],
19555
- recommendedFooterLookIds: ["site-footer-brand-two-band", "footer-muted-grounding"],
19556
- buttonPersonalityChoices: [
19400
+ recommendedFooterLookIds: ["footer-links-emphasized", "footer-links-quiet"],
19401
+ buttonStyleChoices: [
19557
19402
  buttonChoice("ornate-ritual"),
19558
19403
  buttonChoice("joy-stamp"),
19559
19404
  buttonChoice("ink-stamp")
@@ -19606,8 +19451,8 @@ var init_curatedSiteStyles = __esmMin((() => {
19606
19451
  headerStyleChoice("glass")
19607
19452
  ] },
19608
19453
  recommendedHeaderLookIds: ["minimal-transparent"],
19609
- recommendedFooterLookIds: ["site-footer-brand-two-band", "footer-muted-grounding"],
19610
- buttonPersonalityChoices: [
19454
+ recommendedFooterLookIds: ["footer-links-emphasized", "footer-links-quiet"],
19455
+ buttonStyleChoices: [
19611
19456
  buttonChoice("joy-stamp"),
19612
19457
  buttonChoice("ink-stamp"),
19613
19458
  buttonChoice("showtime-pill")
@@ -19697,8 +19542,8 @@ var init_curatedSiteStyles = __esmMin((() => {
19697
19542
  "centered-calm",
19698
19543
  "clean-base"
19699
19544
  ],
19700
- recommendedFooterLookIds: ["footer-editorial-columns", "footer-muted-grounding"],
19701
- buttonPersonalityChoices: [
19545
+ recommendedFooterLookIds: ["footer-links-quiet"],
19546
+ buttonStyleChoices: [
19702
19547
  buttonChoice("flat-ink"),
19703
19548
  buttonChoice("confident-chip"),
19704
19549
  buttonChoice("editorial-link")
@@ -19775,14 +19620,9 @@ var init_curatedSiteStyles = __esmMin((() => {
19775
19620
  "serif-line",
19776
19621
  "clean-base"
19777
19622
  ],
19778
- recommendedFooterLookIds: [
19779
- "footer-editorial-columns",
19780
- "footer-muted-grounding",
19781
- "footer-identity-quiet"
19782
- ],
19783
- buttonPersonalityChoices: [
19784
- buttonChoice("quiet-arrow"),
19785
- buttonChoice("two-tone-pill"),
19623
+ recommendedFooterLookIds: ["footer-links-quiet"],
19624
+ buttonStyleChoices: [
19625
+ buttonChoice("quiet-arrow", void 0, { secondaryTreatment: "solid-accent" }),
19786
19626
  buttonChoice("flat-ink"),
19787
19627
  buttonChoice("editorial-link")
19788
19628
  ],
@@ -19798,13 +19638,13 @@ var init_curatedSiteStyles = __esmMin((() => {
19798
19638
  curatedSiteStylesById = new Map(curatedSiteStyles.map((style) => [style.id, style]));
19799
19639
  })), init_lookResolution = __esmMin((() => {
19800
19640
  init_appearancePresets();
19801
- init_types$16();
19641
+ init_types$15();
19802
19642
  }));
19803
19643
  var init_siteStyleBlockPolicies = __esmMin((() => {
19804
19644
  init_lookResolution();
19805
19645
  init_appearancePresets();
19806
19646
  init_pageDesignIntent();
19807
- init_types$16();
19647
+ init_types$15();
19808
19648
  init_sectionTransitions();
19809
19649
  asPageFlowPresetId("generated-default");
19810
19650
  asSiteStyleId("site-style:south-west-twerk-school");
@@ -19817,12 +19657,12 @@ var init_siteStyleBlockPolicies = __esmMin((() => {
19817
19657
  init_lookResolution();
19818
19658
  init_siteStyleBlockPolicies();
19819
19659
  init_pageDesignIntent();
19820
- init_types$16();
19660
+ init_types$15();
19821
19661
  init_sectionTransitions();
19822
19662
  asPageFlowPresetId("flow:quiet"), noneBoundaryOption.id, asPageFlowPresetId("flow:balanced"), softBoundaryOption.id, asPageFlowPresetId("flow:expressive"), spaciousBoundaryOption.id;
19823
19663
  }));
19824
19664
  var init_resolver = __esmMin((() => {
19825
- init_types$16();
19665
+ init_types$15();
19826
19666
  }));
19827
19667
  var init_siteStyleThemeCompiler = __esmMin((() => {
19828
19668
  init_schema$1();
@@ -19832,19 +19672,17 @@ var init_siteStyleThemeCompiler = __esmMin((() => {
19832
19672
  init_resolveSelection();
19833
19673
  }));
19834
19674
  var init_previewCustomization = __esmMin((() => {
19835
- init_types$16();
19675
+ init_types$15();
19836
19676
  }));
19837
19677
  var init_previewCompiler = __esmMin((() => {
19838
19678
  init_schema$1();
19839
19679
  init_onColor();
19840
19680
  init_tokens();
19841
- init_personalities();
19842
19681
  init_curated();
19843
19682
  init_resolveSelection();
19844
- init_curatedChoices();
19845
19683
  init_curatedSiteStyles();
19846
19684
  init_resolver();
19847
- init_types$16();
19685
+ init_types$15();
19848
19686
  init_footerLooks();
19849
19687
  init_headerLooks();
19850
19688
  init_runtimeCompiler();
@@ -19854,6 +19692,7 @@ var init_previewCompiler = __esmMin((() => {
19854
19692
  init_pageDesignEditorModel();
19855
19693
  init_pageDesignIntent();
19856
19694
  init_previewCustomization();
19695
+ init_curatedChoices();
19857
19696
  }));
19858
19697
  var init_contentTemplateRuntimeCompiler = __esmMin((() => {
19859
19698
  init_pageDesignEditorModel();
@@ -19882,7 +19721,7 @@ var generatedPanelTreatments, generatedFlushTreatments, generatedFlushBleeds, ge
19882
19721
  var init_generatedSchemas = __esmMin((() => {
19883
19722
  init_curatedSiteStyles();
19884
19723
  init_sourceCatalogs();
19885
- init_types$16();
19724
+ init_types$15();
19886
19725
  generatedPanelTreatments = uniqueNonEmpty(generatedDesignOptionCatalog.contentFrames.filter((frame) => frame.kind === "panel").map((frame) => frame.treatment));
19887
19726
  generatedFlushTreatments = uniqueNonEmpty(generatedDesignOptionCatalog.contentFrames.filter((frame) => frame.kind === "flush-panel").map((frame) => frame.treatment));
19888
19727
  generatedFlushBleeds = uniqueNonEmpty(generatedDesignOptionCatalog.contentFrames.filter((frame) => frame.kind === "flush-panel").map((frame) => frame.bleed));
@@ -19949,7 +19788,7 @@ var init_generatedDesignPipeline = __esmMin((() => {
19949
19788
  init_headerOpeningSection();
19950
19789
  init_resolver();
19951
19790
  init_runtimeCompiler();
19952
- init_types$16();
19791
+ init_types$15();
19953
19792
  }));
19954
19793
  function validateBlockSequence(snapshots, ctx) {
19955
19794
  for (const issue of collectBlockSequenceIssues(snapshots)) ctx.addIssue(issue);
@@ -19984,7 +19823,7 @@ function collectBlockSequenceIssues(snapshots) {
19984
19823
  }
19985
19824
  var nonEmptyStringSchema, blockContentVersionIdSchema, designBlockIdSchema, designPageIdSchema, designEntryIdSchema, blockOrderIndexSchema, publishedPageBlockSnapshotSchema, draftPageBlockSnapshotSchema, missingPageBlockSnapshotSchema, pageBlockSnapshotSchema, publishedPageBlockSequenceSchema, draftPageBlockSequenceSchema, publishedPageDesignVersionDataV1Schema, draftPageDesignVersionDataV1Schema;
19986
19825
  var init_pageDesignAuthority = __esmMin((() => {
19987
- init_types$16();
19826
+ init_types$15();
19988
19827
  init_pageDesignIntent();
19989
19828
  nonEmptyStringSchema = z$1.string().min(1);
19990
19829
  blockContentVersionIdSchema = nonEmptyStringSchema.transform(asBlockContentVersionId);
@@ -20280,7 +20119,7 @@ var init_site_styles = __esmMin((() => {
20280
20119
  init_tokenRecipes();
20281
20120
  init_siteStyleTypography();
20282
20121
  init_themeParity();
20283
- init_types$16();
20122
+ init_types$15();
20284
20123
  }));
20285
20124
  //#endregion
20286
20125
  //#region ../blocks/src/system/transforms/registry/_utils/themeColorResolution.ts
@@ -20895,6 +20734,37 @@ var init_fragments$1 = __esmMin((() => {
20895
20734
  //#region ../blocks/src/system/blocks/events/shared/types.ts
20896
20735
  var init_types$5 = __esmMin((() => {}));
20897
20736
  //#endregion
20737
+ //#region ../blocks/src/system/constants/buttonRoles.ts
20738
+ /**
20739
+ * Temporary rollout boundary for persisted content written before issue #1220.
20740
+ * Authoring remains strict through `blockButtonRoleSchema`; this parser exists
20741
+ * only until the post-deploy role rewrite has been audited in production.
20742
+ */
20743
+ function canonicalizePersistedBlockButtonRole(value) {
20744
+ return value === "link" || value === "tertiary" ? "ghost" : value;
20745
+ }
20746
+ function isBlockButtonRole(value) {
20747
+ return blockButtonRoleSchema.safeParse(value).success;
20748
+ }
20749
+ var BLOCK_BUTTON_ROLES, blockButtonRoleSchema, persistedBlockButtonRoleSchema, BLOCK_BUTTON_ROLE_LABELS, BLOCK_BUTTON_ROLE_OPTIONS;
20750
+ var init_buttonRoles = __esmMin((() => {
20751
+ init_buttons();
20752
+ BLOCK_BUTTON_ROLES = PUBLIC_BUTTON_ROLES;
20753
+ blockButtonRoleSchema = z$1.enum(BLOCK_BUTTON_ROLES);
20754
+ persistedBlockButtonRoleSchema = z$1.preprocess((value) => typeof value === "string" ? canonicalizePersistedBlockButtonRole(value) : value, blockButtonRoleSchema);
20755
+ BLOCK_BUTTON_ROLE_LABELS = {
20756
+ primary: "Primary",
20757
+ secondary: "Secondary",
20758
+ outline: "Outline",
20759
+ ghost: "Ghost",
20760
+ accent: "Accent"
20761
+ };
20762
+ BLOCK_BUTTON_ROLE_OPTIONS = BLOCK_BUTTON_ROLES.map((value) => ({
20763
+ value,
20764
+ label: BLOCK_BUTTON_ROLE_LABELS[value]
20765
+ }));
20766
+ }));
20767
+ //#endregion
20898
20768
  //#region ../blocks/src/system/fields/button.ts
20899
20769
  function createButtonVariantField(options = {}) {
20900
20770
  return {
@@ -20913,20 +20783,7 @@ function createButtonVariantField(options = {}) {
20913
20783
  };
20914
20784
  }
20915
20785
  function createButtonGroup(options = {}) {
20916
- const { variants = [
20917
- {
20918
- value: "primary",
20919
- label: "Primary"
20920
- },
20921
- {
20922
- value: "secondary",
20923
- label: "Secondary"
20924
- },
20925
- {
20926
- value: "outline",
20927
- label: "Outline"
20928
- }
20929
- ], defaultVariant, includeSize = true, defaultSize = "md", showGroupLabel = false, groupId = "button", groupLabel = "Button", flattenInRepeater = true } = options;
20786
+ const { variants = BLOCK_BUTTON_ROLE_OPTIONS, defaultVariant, includeSize = true, defaultSize = "md", showGroupLabel = false, groupId = "button", groupLabel = "Button", flattenInRepeater = true } = options;
20930
20787
  const mainFields = [
20931
20788
  {
20932
20789
  id: "label",
@@ -21031,24 +20888,8 @@ function createButtonGroup(options = {}) {
21031
20888
  }
21032
20889
  var DEFAULT_THEME_BUTTON_VARIANTS;
21033
20890
  var init_button = __esmMin((() => {
21034
- DEFAULT_THEME_BUTTON_VARIANTS = [
21035
- {
21036
- value: "primary",
21037
- label: "Primary"
21038
- },
21039
- {
21040
- value: "secondary",
21041
- label: "Secondary"
21042
- },
21043
- {
21044
- value: "outline",
21045
- label: "Outline"
21046
- },
21047
- {
21048
- value: "link",
21049
- label: "Link"
21050
- }
21051
- ];
20891
+ init_buttonRoles();
20892
+ DEFAULT_THEME_BUTTON_VARIANTS = BLOCK_BUTTON_ROLE_OPTIONS;
21052
20893
  }));
21053
20894
  //#endregion
21054
20895
  //#region ../blocks/src/system/blocks/events/shared/fields.ts
@@ -22592,29 +22433,7 @@ var init_ctaRow = __esmMin((() => {
22592
22433
  fields: [createCtasRepeater({
22593
22434
  label: "Calls to action",
22594
22435
  itemLabel: "CTA",
22595
- maxItems: 3,
22596
- button: { variants: [
22597
- {
22598
- value: "primary",
22599
- label: "Primary"
22600
- },
22601
- {
22602
- value: "secondary",
22603
- label: "Secondary"
22604
- },
22605
- {
22606
- value: "outline",
22607
- label: "Outline"
22608
- },
22609
- {
22610
- value: "link",
22611
- label: "Link"
22612
- },
22613
- {
22614
- value: "accent",
22615
- label: "Accent"
22616
- }
22617
- ] }
22436
+ maxItems: 3
22618
22437
  })],
22619
22438
  layout: [ctaRow({
22620
22439
  collectionPath: "content.ctas",
@@ -22637,10 +22456,6 @@ var init_heroCtaRow = __esmMin((() => {
22637
22456
  defaultValue: [],
22638
22457
  button: {
22639
22458
  variants: [
22640
- {
22641
- value: "default",
22642
- label: "Default"
22643
- },
22644
22459
  {
22645
22460
  value: "primary",
22646
22461
  label: "Primary"
@@ -22652,9 +22467,17 @@ var init_heroCtaRow = __esmMin((() => {
22652
22467
  {
22653
22468
  value: "outline",
22654
22469
  label: "Outline"
22470
+ },
22471
+ {
22472
+ value: "ghost",
22473
+ label: "Ghost"
22474
+ },
22475
+ {
22476
+ value: "accent",
22477
+ label: "Accent"
22655
22478
  }
22656
22479
  ],
22657
- defaultVariant: "default",
22480
+ defaultVariant: "primary",
22658
22481
  includeSize: true,
22659
22482
  defaultSize: "lg"
22660
22483
  }
@@ -23482,11 +23305,13 @@ var init_blogFeaturedPost = __esmMin((() => {
23482
23305
  as: "p",
23483
23306
  style: textColorStyle("text/80")
23484
23307
  }, bind("post.excerpt", { fallback: "Select a blog post to display its preview." })),
23485
- link({
23486
- className: "rb-inline-flex rb-items-center rb-caption rb-hover-opacity-80",
23487
- style: textColorStyle("primary"),
23488
- href: { $bind: { from: "post.path" } }
23489
- }, [text({ as: "strong" }, props({ value: "Read more →" }))])
23308
+ button({
23309
+ className: "rb-self-start",
23310
+ href: { $bind: { from: "post.path" } },
23311
+ variantId: "ghost",
23312
+ size: "sm",
23313
+ linkRequired: true
23314
+ }, [text({ as: "span" }, props({ value: "Read more" }))])
23490
23315
  ])], when("post")), stack({
23491
23316
  gap: "sm",
23492
23317
  className: "rb-rounded-xl rb-border rb-border-dashed rb-p-6",
@@ -24877,21 +24702,7 @@ var init_newsletterForm$1 = __esmMin((() => {
24877
24702
  createButtonVariantField({
24878
24703
  id: "buttonVariant",
24879
24704
  label: "Button style",
24880
- defaultValue: "primary",
24881
- variants: [
24882
- {
24883
- value: "primary",
24884
- label: "Primary"
24885
- },
24886
- {
24887
- value: "secondary",
24888
- label: "Secondary"
24889
- },
24890
- {
24891
- value: "outline",
24892
- label: "Outline"
24893
- }
24894
- ]
24705
+ defaultValue: "primary"
24895
24706
  }),
24896
24707
  {
24897
24708
  id: "successMessage",
@@ -27171,18 +26982,10 @@ var init_events$1 = __esmMin((() => {
27171
26982
  var previewStageSchema, registrationButtonVariantSchema, eventButtonVariantSchema, eventLayoutSchema, eventCalendarDisplayModeSchema, eventCalendarDefaultViewSchema, columnOptionSchema, weekStartSchema, filterAutoShowSchema, calendarTabViewsSchema;
27172
26983
  var init_contract_schemas = __esmMin((() => {
27173
26984
  init_events$1();
26985
+ init_buttonRoles();
27174
26986
  previewStageSchema = z$1.enum(["preview", "published"]);
27175
- registrationButtonVariantSchema = z$1.enum([
27176
- "primary",
27177
- "secondary",
27178
- "outline"
27179
- ]);
27180
- eventButtonVariantSchema = z$1.enum([
27181
- "primary",
27182
- "secondary",
27183
- "outline",
27184
- "link"
27185
- ]);
26987
+ registrationButtonVariantSchema = blockButtonRoleSchema;
26988
+ eventButtonVariantSchema = persistedBlockButtonRoleSchema;
27186
26989
  eventLayoutSchema = z$1.enum(eventCalendarListLayoutValues);
27187
26990
  eventCalendarDisplayModeSchema = z$1.enum(eventCalendarDisplayModeValues);
27188
26991
  eventCalendarDefaultViewSchema = z$1.enum(eventCalendarDefaultViewValues);
@@ -31867,6 +31670,7 @@ var init_newsletter_form_interactive = __esmMin((() => {
31867
31670
  init_runtime();
31868
31671
  init_newsletter_signup_destination();
31869
31672
  init_newsletter_form_types();
31673
+ init_buttonRoles();
31870
31674
  newsletterPresetSchema = z$1.enum([
31871
31675
  "emailOnly",
31872
31676
  "emailName",
@@ -31874,11 +31678,7 @@ var init_newsletter_form_interactive = __esmMin((() => {
31874
31678
  "emailNameCompany"
31875
31679
  ]);
31876
31680
  newsletterDestinationProviderSchema = z$1.enum(["riverbank", "mailchimp"]);
31877
- newsletterButtonVariantSchema = z$1.enum([
31878
- "primary",
31879
- "secondary",
31880
- "outline"
31881
- ]);
31681
+ newsletterButtonVariantSchema = blockButtonRoleSchema;
31882
31682
  newsletterFieldSchema = z$1.object({
31883
31683
  id: z$1.string(),
31884
31684
  type: z$1.enum(["email", "text"]),
@@ -32522,6 +32322,7 @@ function getShopDisplayForItems(render, items) {
32522
32322
  }
32523
32323
  var shopModeSchema, contentEntrySchema, shopSourceSchema, productVariantOptionDisplaySchema, productCardDisplaySchema, productListDisplaySchema, productDetailDisplaySchema, passCardDisplaySchema, membershipCardDisplaySchema, passesMembershipsDisplaySchema, cartLineDisplaySchema, cartDisplaySchema, checkoutDisplaySchema, passesMembershipsHydrationSchema, productListHydrationSchema, productDetailHydrationSchema, cartHydrationSchema, checkoutHydrationSchema, passesMembershipsRenderSchema, productListRenderSchema, productDetailRenderSchema, cartRenderSchema, checkoutRenderSchema, shopIslandMetaCodec, shopIslandMetaKeys, shopBlockRuntime, productListBlockRuntime, productDetailBlockRuntime, cartBlockRuntime, checkoutBlockRuntime, shopInteractiveIslandPropsCodec, productListInteractiveIslandPropsCodec, productDetailInteractiveIslandPropsCodec, cartInteractiveIslandPropsCodec, checkoutInteractiveIslandPropsCodec;
32524
32324
  var init_shop_interactive = __esmMin((() => {
32325
+ init_buttonRoles();
32525
32326
  init_shop_shared();
32526
32327
  init_shared$2();
32527
32328
  init_display();
@@ -32559,12 +32360,7 @@ var init_shop_interactive = __esmMin((() => {
32559
32360
  showPrices: z$1.boolean().optional(),
32560
32361
  showValidityPeriod: z$1.boolean().optional(),
32561
32362
  showPricePerCredit: z$1.boolean().nullable().optional(),
32562
- buttonVariant: z$1.enum([
32563
- "primary",
32564
- "secondary",
32565
- "outline",
32566
- "link"
32567
- ]).optional(),
32363
+ buttonVariant: blockButtonRoleSchema.optional(),
32568
32364
  passesHeading: z$1.string().optional(),
32569
32365
  membershipsHeading: z$1.string().optional(),
32570
32366
  buyButtonText: z$1.string().optional(),
@@ -32709,12 +32505,7 @@ var init_shop_interactive = __esmMin((() => {
32709
32505
  passes: z$1.array(publicPassProductSchema),
32710
32506
  memberships: z$1.array(publicMembershipProductSchema),
32711
32507
  passPurchaseMode: z$1.enum(["add_to_cart", "buy_now"]),
32712
- buttonVariant: z$1.enum([
32713
- "primary",
32714
- "secondary",
32715
- "outline",
32716
- "link"
32717
- ])
32508
+ buttonVariant: blockButtonRoleSchema
32718
32509
  });
32719
32510
  productListHydrationSchema = z$1.object({
32720
32511
  products: z$1.array(publicProductSchema),
@@ -106865,8 +106656,11 @@ function LocationMapView({ addressText, location, zoom, heightPx, showAddressTex
106865
106656
  href: directionsUrl,
106866
106657
  target: "_blank",
106867
106658
  rel: "noreferrer",
106868
- className: "rb-inline-flex rb-w-fit rb-items-center rb-justify-center rb-rounded-md rb-border rb-px-4 rb-py-2 rb-text-sm rb-font-medium rb-no-underline transition-theme-standard rb-hover-opacity-90",
106869
- style: mergeStyles(borderColorStyle("border"), backgroundColorStyle("surface"), textColorStyle("text")),
106659
+ className: themeButtonClassName({
106660
+ variant: "ghost",
106661
+ size: "sm",
106662
+ extraClassName: "rb-w-fit"
106663
+ }),
106870
106664
  children: directionsLabel
106871
106665
  }) : null
106872
106666
  ]
@@ -106874,6 +106668,7 @@ function LocationMapView({ addressText, location, zoom, heightPx, showAddressTex
106874
106668
  }
106875
106669
  var init_location_map_view = __esmMin((() => {
106876
106670
  init_colorStyles();
106671
+ init_buttons();
106877
106672
  init_location_map_shared();
106878
106673
  }));
106879
106674
  //#endregion
@@ -107920,7 +107715,7 @@ function resolveHasCoursePayment(pricing) {
107920
107715
  if (pricing.selectedOption) return pricing.selectedRequiresPayment;
107921
107716
  return pricing.hasPaidSelection;
107922
107717
  }
107923
- function useCourseRegistrationWizard(props) {
107718
+ function useCourseRegistrationWizard(props, options = {}) {
107924
107719
  const api = useBlockApi();
107925
107720
  const { contentEntry, courses, entrySubrouteContext, subject } = props;
107926
107721
  const scopedCourses = useMemo(() => {
@@ -108167,21 +107962,34 @@ function useCourseRegistrationWizard(props) {
108167
107962
  setStep("enter-details");
108168
107963
  };
108169
107964
  const handleSubmit = async () => {
108170
- if (!selectedCourse) return;
108171
- if (!handleValidateForm()) return;
107965
+ if (!selectedCourse) return {
107966
+ kind: "blocked",
107967
+ message: "Choose an available set of dates to continue."
107968
+ };
107969
+ if (!handleValidateForm()) return { kind: "validation-failed" };
108172
107970
  if (missingPricingSelectionMessage) {
108173
107971
  setErrorMessage(missingPricingSelectionMessage);
108174
107972
  setStep("error");
108175
- return;
107973
+ return {
107974
+ kind: "blocked",
107975
+ message: missingPricingSelectionMessage
107976
+ };
108176
107977
  }
108177
107978
  const requiresPayment = selectedCoursePricing?.selectedRequiresPayment ?? false;
108178
107979
  const canUseMembership = requiresPayment && selectedCourse.acceptsMemberships && portalAuthState === "authenticated" && eligibleMemberships.length > 0;
108179
107980
  if (showSpamProtection && !altchaSolution) {
108180
- setErrorMessage("Please complete the verification check.");
107981
+ const message = "Please complete the verification check.";
107982
+ setErrorMessage(message);
108181
107983
  setStep("error");
108182
- return;
107984
+ return {
107985
+ kind: "blocked",
107986
+ message
107987
+ };
108183
107988
  }
108184
- if (!waitlistClaim.claim && courseEligibility?.isFull && !courseEligibility.canJoinWaitlist && showSoldOutCourseError()) return;
107989
+ if (!waitlistClaim.claim && courseEligibility?.isFull && !courseEligibility.canJoinWaitlist && showSoldOutCourseError()) return {
107990
+ kind: "blocked",
107991
+ message: courseEligibility.reason ?? "This course is fully booked."
107992
+ };
108185
107993
  if (courseEligibility?.canJoinWaitlist) {
108186
107994
  setStep("submitting");
108187
107995
  try {
@@ -108202,15 +108010,20 @@ function useCourseRegistrationWizard(props) {
108202
108010
  usedMembership: false
108203
108011
  });
108204
108012
  setStep(result.status === "waitlist" ? "waitlist" : "success");
108013
+ return { kind: "state-updated" };
108205
108014
  } catch (error) {
108206
- setErrorMessage(error instanceof Error ? error.message : "Booking failed");
108015
+ const message = error instanceof Error ? error.message : "Booking failed";
108016
+ setErrorMessage(message);
108207
108017
  setStep("error");
108018
+ return {
108019
+ kind: "failed",
108020
+ message
108021
+ };
108208
108022
  }
108209
- return;
108210
108023
  }
108211
108024
  if (requiresPayment && canUseMembership) {
108212
108025
  setStep("select-payment");
108213
- return;
108026
+ return { kind: "state-updated" };
108214
108027
  }
108215
108028
  if (requiresPayment) {
108216
108029
  setStep("submitting");
@@ -108236,16 +108049,24 @@ function useCourseRegistrationWizard(props) {
108236
108049
  usedMembership: false
108237
108050
  });
108238
108051
  setStep("success");
108239
- return;
108052
+ return { kind: "state-updated" };
108240
108053
  }
108241
108054
  if (!checkoutResult.checkoutUrl) throw new Error("Checkout URL missing");
108242
108055
  setStep("redirecting");
108243
- window.location.href = checkoutResult.checkoutUrl;
108244
- return;
108056
+ if (options.onCheckoutRedirect) options.onCheckoutRedirect(checkoutResult.checkoutUrl);
108057
+ else window.location.href = checkoutResult.checkoutUrl;
108058
+ return {
108059
+ kind: "checkout-redirect",
108060
+ checkoutUrl: checkoutResult.checkoutUrl
108061
+ };
108245
108062
  } catch (error) {
108246
- setErrorMessage(error instanceof Error ? error.message : "Checkout failed");
108063
+ const message = error instanceof Error ? error.message : "Checkout failed";
108064
+ setErrorMessage(message);
108247
108065
  setStep("error");
108248
- return;
108066
+ return {
108067
+ kind: "failed",
108068
+ message
108069
+ };
108249
108070
  }
108250
108071
  }
108251
108072
  setStep("submitting");
@@ -108267,35 +108088,58 @@ function useCourseRegistrationWizard(props) {
108267
108088
  usedMembership: result.paymentMethod === "membership"
108268
108089
  });
108269
108090
  setStep(result.status === "waitlist" ? "waitlist" : "success");
108091
+ return { kind: "state-updated" };
108270
108092
  } catch (error) {
108271
- setErrorMessage(error instanceof Error ? error.message : "Booking failed");
108093
+ const message = error instanceof Error ? error.message : "Booking failed";
108094
+ setErrorMessage(message);
108272
108095
  setStep("error");
108096
+ return {
108097
+ kind: "failed",
108098
+ message
108099
+ };
108273
108100
  }
108274
108101
  };
108275
108102
  const handlePaymentContinue = async () => {
108276
- if (!selectedCourse) return;
108277
- if (!handleValidateForm()) return;
108103
+ if (!selectedCourse) return {
108104
+ kind: "blocked",
108105
+ message: "Choose an available set of dates to continue."
108106
+ };
108107
+ if (!handleValidateForm()) return { kind: "validation-failed" };
108278
108108
  if (missingPricingSelectionMessage) {
108279
108109
  setErrorMessage(missingPricingSelectionMessage);
108280
108110
  setStep("error");
108281
- return;
108111
+ return {
108112
+ kind: "blocked",
108113
+ message: missingPricingSelectionMessage
108114
+ };
108282
108115
  }
108283
108116
  const requiresPayment = selectedCoursePricing?.selectedRequiresPayment ?? false;
108284
- if (!waitlistClaim.claim && courseEligibility?.isFull && !courseEligibility.canJoinWaitlist && showSoldOutCourseError()) return;
108117
+ if (!waitlistClaim.claim && courseEligibility?.isFull && !courseEligibility.canJoinWaitlist && showSoldOutCourseError()) return {
108118
+ kind: "blocked",
108119
+ message: courseEligibility.reason ?? "This course is fully booked."
108120
+ };
108285
108121
  if (!requiresPayment) {
108286
108122
  setStep("enter-details");
108287
- return;
108123
+ return { kind: "state-updated" };
108288
108124
  }
108289
108125
  if (showSpamProtection && !altchaSolution) {
108290
- setErrorMessage("Please complete the verification check.");
108126
+ const message = "Please complete the verification check.";
108127
+ setErrorMessage(message);
108291
108128
  setStep("error");
108292
- return;
108129
+ return {
108130
+ kind: "blocked",
108131
+ message
108132
+ };
108293
108133
  }
108294
108134
  if (paymentChoice === "membership") {
108295
108135
  if (!selectedMembershipId) {
108296
- setErrorMessage("Select a membership to enroll.");
108136
+ const message = "Select a membership to sign up.";
108137
+ setErrorMessage(message);
108297
108138
  setStep("error");
108298
- return;
108139
+ return {
108140
+ kind: "blocked",
108141
+ message
108142
+ };
108299
108143
  }
108300
108144
  setStep("submitting");
108301
108145
  try {
@@ -108317,11 +108161,16 @@ function useCourseRegistrationWizard(props) {
108317
108161
  usedMembership: true
108318
108162
  });
108319
108163
  setStep(result.status === "waitlist" ? "waitlist" : "success");
108164
+ return { kind: "state-updated" };
108320
108165
  } catch (error) {
108321
- setErrorMessage(error instanceof Error ? error.message : "Booking failed");
108166
+ const message = error instanceof Error ? error.message : "Booking failed";
108167
+ setErrorMessage(message);
108322
108168
  setStep("error");
108169
+ return {
108170
+ kind: "failed",
108171
+ message
108172
+ };
108323
108173
  }
108324
- return;
108325
108174
  }
108326
108175
  setStep("submitting");
108327
108176
  try {
@@ -108346,14 +108195,24 @@ function useCourseRegistrationWizard(props) {
108346
108195
  usedMembership: false
108347
108196
  });
108348
108197
  setStep("success");
108349
- return;
108198
+ return { kind: "state-updated" };
108350
108199
  }
108351
108200
  if (!checkoutResult.checkoutUrl) throw new Error("Checkout URL missing");
108352
108201
  setStep("redirecting");
108353
- window.location.href = checkoutResult.checkoutUrl;
108202
+ if (options.onCheckoutRedirect) options.onCheckoutRedirect(checkoutResult.checkoutUrl);
108203
+ else window.location.href = checkoutResult.checkoutUrl;
108204
+ return {
108205
+ kind: "checkout-redirect",
108206
+ checkoutUrl: checkoutResult.checkoutUrl
108207
+ };
108354
108208
  } catch (error) {
108355
- setErrorMessage(error instanceof Error ? error.message : "Checkout failed");
108209
+ const message = error instanceof Error ? error.message : "Checkout failed";
108210
+ setErrorMessage(message);
108356
108211
  setStep("error");
108212
+ return {
108213
+ kind: "failed",
108214
+ message
108215
+ };
108357
108216
  }
108358
108217
  };
108359
108218
  const handleRetry = () => {
@@ -108890,11 +108749,20 @@ var init_course_registration_client = __esmMin((() => {
108890
108749
  init_CourseRegistrationErrorBoundary();
108891
108750
  init_CourseRegistrationWizard();
108892
108751
  }));
108752
+ var init_whole_series_registration_headless_planning = __esmMin((() => {}));
108753
+ var init_useHeadlessWholeSeriesRegistrationFlow = __esmMin((() => {
108754
+ init_src();
108755
+ init_api();
108756
+ init_useCourseRegistrationWizard();
108757
+ init_whole_series_registration_headless_planning();
108758
+ }));
108893
108759
  //#endregion
108894
108760
  //#region ../blocks/src/client/course-registration.ts
108895
108761
  var init_course_registration = __esmMin((() => {
108896
108762
  init_api();
108897
108763
  init_course_registration_client();
108764
+ init_useHeadlessWholeSeriesRegistrationFlow();
108765
+ init_client();
108898
108766
  }));
108899
108767
  //#endregion
108900
108768
  //#region src/rendering/islands/enhancers/courseRegistration.tsx
@@ -114263,7 +114131,8 @@ function postExcerpt(className) {
114263
114131
  function postReadMore() {
114264
114132
  return button({
114265
114133
  href: { $bind: { from: "post.path" } },
114266
- className: "rb-self-start"
114134
+ className: "rb-self-start",
114135
+ variantId: "ghost"
114267
114136
  }, [text({ as: "span" }, bind("content.readMoreText", { fallback: "Read more" }), when("content.readMoreText")), text({
114268
114137
  as: "span",
114269
114138
  value: "Read more"
@@ -115639,7 +115508,7 @@ const uiTransforms = [
115639
115508
  ];
115640
115509
  //#endregion
115641
115510
  //#region ../theme-core/src/siteChromePlacement.ts
115642
- init_types$16();
115511
+ init_types$15();
115643
115512
  const SITE_CHROME_PLACEMENT_CLASSES = [
115644
115513
  "rb-sticky",
115645
115514
  "rb-fixed",
@@ -117883,31 +117752,7 @@ const featureCardsBlockDefinition = { manifest: createBlockManifest({
117883
117752
  label: "Calls to action",
117884
117753
  itemLabel: "CTA",
117885
117754
  maxItems: 1,
117886
- button: {
117887
- variants: [
117888
- {
117889
- value: "primary",
117890
- label: "Primary"
117891
- },
117892
- {
117893
- value: "secondary",
117894
- label: "Secondary"
117895
- },
117896
- {
117897
- value: "outline",
117898
- label: "Outline"
117899
- },
117900
- {
117901
- value: "ghost",
117902
- label: "Ghost"
117903
- },
117904
- {
117905
- value: "link",
117906
- label: "Link"
117907
- }
117908
- ],
117909
- defaultVariant: "ghost"
117910
- }
117755
+ button: { defaultVariant: "ghost" }
117911
117756
  })
117912
117757
  ] }
117913
117758
  },
@@ -118942,23 +118787,7 @@ const eventRegistrationBlockDefinition = {
118942
118787
  defaultValue: "Complete Registration",
118943
118788
  maxLength: 40
118944
118789
  },
118945
- createButtonVariantField({
118946
- description: "Choose a button style from your theme",
118947
- variants: [
118948
- {
118949
- value: "primary",
118950
- label: "Primary"
118951
- },
118952
- {
118953
- value: "secondary",
118954
- label: "Secondary"
118955
- },
118956
- {
118957
- value: "outline",
118958
- label: "Outline"
118959
- }
118960
- ]
118961
- })
118790
+ createButtonVariantField()
118962
118791
  ],
118963
118792
  layout: [styledSection({
118964
118793
  baseClass: "",
@@ -119174,23 +119003,7 @@ const courseRegistrationBlockDefinition = {
119174
119003
  defaultValue: "Sign up",
119175
119004
  maxLength: 40
119176
119005
  },
119177
- createButtonVariantField({
119178
- description: "Choose a button style from your theme",
119179
- variants: [
119180
- {
119181
- value: "primary",
119182
- label: "Primary"
119183
- },
119184
- {
119185
- value: "secondary",
119186
- label: "Secondary"
119187
- },
119188
- {
119189
- value: "outline",
119190
- label: "Outline"
119191
- }
119192
- ]
119193
- })
119006
+ createButtonVariantField()
119194
119007
  ],
119195
119008
  layout: [styledSection({
119196
119009
  baseClass: "",
@@ -121753,6 +121566,8 @@ init_fragments$1();
121753
121566
  init_boxStyles();
121754
121567
  init_defineBlock();
121755
121568
  init_shared$4();
121569
+ init_buttonRoles();
121570
+ init_button();
121756
121571
  init_shared();
121757
121572
  const publicRouteCandidatesSchema = z$1.object({ routes: z$1.array(z$1.object({
121758
121573
  entityId: z$1.string(),
@@ -121935,36 +121750,7 @@ const offeringsPreviewFields = [
121935
121750
  ui: { intent: "content" },
121936
121751
  schema: { fields: groupOverrideFields }
121937
121752
  },
121938
- {
121939
- id: "buttonVariant",
121940
- type: "select",
121941
- label: "Button style",
121942
- required: false,
121943
- multiple: false,
121944
- defaultValue: "primary",
121945
- options: [
121946
- {
121947
- value: "primary",
121948
- label: "Primary"
121949
- },
121950
- {
121951
- value: "secondary",
121952
- label: "Secondary"
121953
- },
121954
- {
121955
- value: "outline",
121956
- label: "Outline"
121957
- },
121958
- {
121959
- value: "link",
121960
- label: "Link"
121961
- }
121962
- ],
121963
- ui: {
121964
- intent: "display",
121965
- widget: "buttonVariant"
121966
- }
121967
- },
121753
+ createButtonVariantField(),
121968
121754
  {
121969
121755
  id: "buttonText",
121970
121756
  type: "text",
@@ -122170,7 +121956,7 @@ function normalizeOfferingsPreviewGroupOverride(value) {
122170
121956
  return [override];
122171
121957
  }
122172
121958
  function isButtonVariant(value) {
122173
- return value === "primary" || value === "secondary" || value === "outline" || value === "link" || value === null;
121959
+ return value === null || isBlockButtonRole(value);
122174
121960
  }
122175
121961
  function normalizeCardStylesContent(value) {
122176
121962
  return isRecord$16(value) || value === null ? value : void 0;
@@ -127274,6 +127060,7 @@ function renderMark(mark, key, child) {
127274
127060
  //#region ../blocks/src/system/runtime/nodes/basic.tsx
127275
127061
  init_buttons();
127276
127062
  init_RichText();
127063
+ init_buttonRoles();
127277
127064
  init_richText_coerce();
127278
127065
  const TextNode = ({ value, children, blockId: _blockId, blockKind: _blockKind, blockContent, fragmentRegistry: _fragmentRegistry, pathBase: _pathBase, inlineTextFallbackPath, ...rest }) => {
127279
127066
  const inlineText = parseInlineTextFromUnknown(value);
@@ -127333,7 +127120,7 @@ const ButtonNode = ({ value, children, href, variantId = "primary", size = "md",
127333
127120
  return null;
127334
127121
  }
127335
127122
  const extraClassName = affordanceIcon ? [className, AFFORDANCE_SUPPRESS_CLASS].filter(Boolean).join(" ") : className;
127336
- const resolvedVariantId = parseThemeButtonVariantId(variantId);
127123
+ const resolvedVariantId = parseThemeButtonVariantId(canonicalizePersistedBlockButtonRole(variantId));
127337
127124
  const combinedClassName = resolvedVariantId ? themeButtonClassName({
127338
127125
  variant: resolvedVariantId,
127339
127126
  size,
@@ -127441,12 +127228,7 @@ init_colorStyles();
127441
127228
  init_media$2();
127442
127229
  init_buttons();
127443
127230
  init_media();
127444
- const FILE_DOWNLOAD_BUTTON_VARIANTS = [
127445
- "primary",
127446
- "secondary",
127447
- "outline",
127448
- "link"
127449
- ];
127231
+ init_buttonRoles();
127450
127232
  function isDownloadableMediaType(type) {
127451
127233
  return typeof type === "string" && PUBLIC_DOWNLOAD_MEDIA_TYPES.includes(type);
127452
127234
  }
@@ -127478,7 +127260,7 @@ function iconForMediaType(type) {
127478
127260
  }
127479
127261
  }
127480
127262
  function normalizeButtonVariant(value) {
127481
- return typeof value === "string" && FILE_DOWNLOAD_BUTTON_VARIANTS.includes(value) ? value : "primary";
127263
+ return isBlockButtonRole(value) ? value : "primary";
127482
127264
  }
127483
127265
  function FileDownloadNode({ value, title, description, buttonLabel, buttonVariant, className }) {
127484
127266
  if (!value || !isDownloadableMediaType(value.type)) return null;
@@ -129379,6 +129161,7 @@ function cardTreatmentClass(value) {
129379
129161
  }
129380
129162
  //#endregion
129381
129163
  //#region ../blocks/src/system/runtime/nodes/weekly-slot-availability.view.tsx
129164
+ init_buttons();
129382
129165
  function pluralizeWeeks(count) {
129383
129166
  return count === 1 ? "1 upcoming week" : `${count} upcoming weeks`;
129384
129167
  }
@@ -129454,7 +129237,11 @@ function WeeklySlotAvailabilityView({ availability, loading = false, error, empt
129454
129237
  ]
129455
129238
  }),
129456
129239
  resolvedCtaUrl ? /* @__PURE__ */ jsx("a", {
129457
- className: "weekly-slot-availability__cta",
129240
+ className: themeButtonClassName({
129241
+ variant: "ghost",
129242
+ size: "sm",
129243
+ extraClassName: "weekly-slot-availability__cta"
129244
+ }),
129458
129245
  href: buildSlotCtaUrl(resolvedCtaUrl, slot),
129459
129246
  "aria-label": buildSlotCtaLabel(resolvedCtaText, slot),
129460
129247
  children: resolvedCtaText
@@ -149822,7 +149609,7 @@ function ResponsiveScope({ children, responsiveMode = DEFAULT_THEME_RESPONSIVE_M
149822
149609
  }
149823
149610
  //#endregion
149824
149611
  //#region ../theme-core/src/siteChrome.tsx
149825
- init_types$16();
149612
+ init_types$15();
149826
149613
  //#endregion
149827
149614
  //#region ../theme-core/src/runtime/buildThemeRuntimeFromBridge.ts
149828
149615
  /**
@@ -151249,6 +151036,7 @@ function parseBackgroundColorToken(value) {
151249
151036
  }
151250
151037
  //#endregion
151251
151038
  //#region ../blocks/src/index.ts
151039
+ init_buttonRoles();
151252
151040
  init_palette$1();
151253
151041
  init_generateShades();
151254
151042
  init_utils$6();
@@ -151315,7 +151103,7 @@ const TAG_TEMPLATES = {
151315
151103
  blockedDemoMutationPolicy("blocked-hidden", "This action is not available in demo sites.");
151316
151104
  blockedDemoMutationPolicy("blocked-disabled", "This setting is disabled in demo sites.");
151317
151105
  blockedDemoMutationPolicy("internal-only", "This internal operation is not available in demo sites.");
151318
- TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteTheme, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.site, TAG_TEMPLATES.siteBookingSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteBookingSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteEmailSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteEmailSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteEmailSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteEmailSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.site, TAG_TEMPLATES.site, TAG_TEMPLATES.site, TAG_TEMPLATES.site, TAG_TEMPLATES.site, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.routeById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteById, TAG_TEMPLATES.siteBySlug, TAG_TEMPLATES.siteByDomain, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteById, TAG_TEMPLATES.siteBySlug, TAG_TEMPLATES.siteByDomain, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.pageSurfaceById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.pageSurfaceById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageSurfaceById, TAG_TEMPLATES.workflowRunById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.routeById, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.site, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteNavigation, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteNavigation, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteNavigation, TAG_TEMPLATES.navigationMenuById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteNavigation, TAG_TEMPLATES.navigationMenuById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteNavigation, TAG_TEMPLATES.navigationMenuById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteNavigation, TAG_TEMPLATES.navigationMenuById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteNavigation, TAG_TEMPLATES.navigationMenuById, TAG_TEMPLATES.navigationItemById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteNavigation, TAG_TEMPLATES.navigationMenuById, TAG_TEMPLATES.navigationItemById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteNavigation, TAG_TEMPLATES.navigationMenuById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteTheme, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteTheme, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteTheme, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.pageSurfaceById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.pageSurfaceById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.pageSurfaceById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.pageSurfaceById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.siteRedirects, TAG_TEMPLATES.siteRouteOutcomes, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.siteRedirects, TAG_TEMPLATES.siteRouteOutcomes, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.formSubmissionsBySlug, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.formSubmissionsBySlug, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.formSubmissionsBySlug, TAG_TEMPLATES.formById, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.publicEvents, TAG_TEMPLATES.publicEventFilters, TAG_TEMPLATES.publicCourses, TAG_TEMPLATES.publicTeamMembers, TAG_TEMPLATES.publicCourses, TAG_TEMPLATES.publicCourses, TAG_TEMPLATES.publicCourses, TAG_TEMPLATES.publicCourses, TAG_TEMPLATES.publicEvents, TAG_TEMPLATES.publicCourses, TAG_TEMPLATES.publicCourses, TAG_TEMPLATES.publicPasses, TAG_TEMPLATES.publicMemberships, TAG_TEMPLATES.publicProducts, TAG_TEMPLATES.publicGifting, TAG_TEMPLATES.publicGifting, TAG_TEMPLATES.publicGifting, TAG_TEMPLATES.publicShop, TAG_TEMPLATES.publicCheckout, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.publicEvents, TAG_TEMPLATES.publicEvents, TAG_TEMPLATES.publicEvents, TAG_TEMPLATES.publicEvents, TAG_TEMPLATES.publicEvents, TAG_TEMPLATES.publicEvents;
151106
+ TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteTheme, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.site, TAG_TEMPLATES.siteBookingSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteBookingSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteEmailSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteEmailSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteEmailSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteEmailSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.site, TAG_TEMPLATES.site, TAG_TEMPLATES.site, TAG_TEMPLATES.site, TAG_TEMPLATES.site, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.routeById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteById, TAG_TEMPLATES.siteBySlug, TAG_TEMPLATES.siteByDomain, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteById, TAG_TEMPLATES.siteBySlug, TAG_TEMPLATES.siteByDomain, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.pageSurfaceById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.pageSurfaceById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageSurfaceById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageSurfaceById, TAG_TEMPLATES.workflowRunById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.routeById, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.site, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteNavigation, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteNavigation, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteNavigation, TAG_TEMPLATES.navigationMenuById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteNavigation, TAG_TEMPLATES.navigationMenuById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteNavigation, TAG_TEMPLATES.navigationMenuById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteNavigation, TAG_TEMPLATES.navigationMenuById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteNavigation, TAG_TEMPLATES.navigationMenuById, TAG_TEMPLATES.navigationItemById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteNavigation, TAG_TEMPLATES.navigationMenuById, TAG_TEMPLATES.navigationItemById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteNavigation, TAG_TEMPLATES.navigationMenuById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteTheme, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteTheme, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteTheme, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.pageSurfaceById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.pageSurfaceById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.pageSurfaceById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.pageSurfaceById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.siteRedirects, TAG_TEMPLATES.siteRouteOutcomes, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.siteRedirects, TAG_TEMPLATES.siteRouteOutcomes, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.formSubmissionsBySlug, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.formSubmissionsBySlug, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.formSubmissionsBySlug, TAG_TEMPLATES.formById, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.publicEvents, TAG_TEMPLATES.publicEventFilters, TAG_TEMPLATES.publicCourses, TAG_TEMPLATES.publicTeamMembers, TAG_TEMPLATES.publicCourses, TAG_TEMPLATES.publicCourses, TAG_TEMPLATES.publicCourses, TAG_TEMPLATES.publicCourses, TAG_TEMPLATES.publicEvents, TAG_TEMPLATES.publicCourses, TAG_TEMPLATES.publicCourses, TAG_TEMPLATES.publicPasses, TAG_TEMPLATES.publicMemberships, TAG_TEMPLATES.publicProducts, TAG_TEMPLATES.publicGifting, TAG_TEMPLATES.publicGifting, TAG_TEMPLATES.publicGifting, TAG_TEMPLATES.publicShop, TAG_TEMPLATES.publicCheckout, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.publicEvents, TAG_TEMPLATES.publicEvents, TAG_TEMPLATES.publicEvents, TAG_TEMPLATES.publicEvents, TAG_TEMPLATES.publicEvents, TAG_TEMPLATES.publicEvents;
151319
151107
  //#endregion
151320
151108
  //#region ../api/src/demoDashboardMutationSurfaces.ts
151321
151109
  init_src$3();