@riverbankcms/sdk 0.129.0 → 0.129.1

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 (260) hide show
  1. package/README.md +19 -256
  2. package/dist/{PreviewEditorSidebar-B43CJ0g_.mjs → PreviewEditorSidebar-DceRseRV.mjs} +3 -3
  3. package/dist/{PreviewEditorUI-DHirVkeM.mjs → PreviewEditorUI-BNunq3kk.mjs} +2 -2
  4. package/dist/{SdkPreviewModeRuntime-BJumZy1B.mjs → SdkPreviewModeRuntime-Bt87-62u.mjs} +3 -3
  5. package/dist/{SiteChromeCustomizeContext-D9SlpwEj.mjs → SiteChromeCustomizeContext-BLl-OlL4.mjs} +460 -393
  6. package/dist/_dts/ai/src/contracts/commandExposure.d.ts +1 -1
  7. package/dist/_dts/ai/src/contracts/proposals.d.ts +4897 -4897
  8. package/dist/_dts/api/src/index.d.ts +2 -1
  9. package/dist/_dts/api/src/sdk-event-management.d.ts +53 -0
  10. package/dist/_dts/api/src/sdk-event-schedule.d.ts +3 -6
  11. package/dist/_dts/api/src/sdkContracts.d.ts +37 -50
  12. package/dist/_dts/api/src/sdkThemeWire.d.ts +2595 -0
  13. package/dist/_dts/api/src/sitePlatformEndpoints.d.ts +13 -29
  14. package/dist/_dts/media-core/src/index.d.ts +1 -0
  15. package/dist/_dts/sdk/src/config/types.d.ts +4 -4
  16. package/dist/_dts/sdk/src/version.d.ts +1 -1
  17. package/dist/_dts/theme-core/src/buttons/index.d.ts +1 -0
  18. package/dist/_dts/theme-core/src/palette/index.d.ts +1 -0
  19. package/dist/_dts/theme-core/src/site-styles/headerLayoutStyleCatalog.d.ts +254 -0
  20. package/dist/_dts/theme-core/src/site-styles/headerLegacyLooks.d.ts +372 -0
  21. package/dist/_dts/theme-core/src/site-styles/headerLookBranding.d.ts +106 -0
  22. package/dist/_dts/theme-core/src/site-styles/headerLookSelection.d.ts +2 -0
  23. package/dist/_dts/theme-core/src/site-styles/headerLookTypes.d.ts +212 -0
  24. package/dist/_dts/theme-core/src/site-styles/headerLooks.d.ts +7 -841
  25. package/dist/_dts/theme-core/src/site-styles/headerStyleCompiler.d.ts +3 -0
  26. package/dist/_dts/theme-core/src/site-styles/headerStyleCompilerPrimitives.d.ts +23 -0
  27. package/dist/client/client.mjs +492 -426
  28. package/dist/client/hooks.mjs +59 -36
  29. package/dist/client/rendering/client.mjs +593 -547
  30. package/dist/client/rendering.mjs +491 -425
  31. package/dist/preview-next/client/runtime.mjs +3 -3
  32. package/dist/{sdk-runtime-CfZd5pAm.mjs → sdk-runtime-C20CVWbb.mjs} +1 -1
  33. package/dist/{separator-DkTe68HE.mjs → separator-BE3NCquy.mjs} +1 -1
  34. package/dist/server/components.mjs +72 -49
  35. package/dist/server/config-validation.mjs +59 -36
  36. package/dist/server/config.mjs +59 -36
  37. package/dist/server/data.mjs +59 -36
  38. package/dist/server/index.mjs +1 -1
  39. package/dist/server/manifest.mjs +4966 -0
  40. package/dist/server/next.mjs +73 -50
  41. package/dist/server/page-converter.mjs +40 -36
  42. package/dist/server/prebuild.mjs +1 -1
  43. package/dist/server/rendering/server.mjs +72 -49
  44. package/dist/server/rendering.mjs +72 -49
  45. package/dist/server/routing.mjs +472 -402
  46. package/dist/server/server.mjs +60 -37
  47. package/dist/server/theme-bridge.mjs +70 -66
  48. package/package.json +9 -12
  49. package/dist/_dts/api/src/event-presentation.d.ts +0 -14
  50. package/dist/_dts/blocks/src/definitions.d.ts +0 -14
  51. package/dist/_dts/sdk/src/cli/canonical-entry-policy.d.ts +0 -53
  52. package/dist/_dts/sdk/src/cli/commands/audit.d.ts +0 -101
  53. package/dist/_dts/sdk/src/cli/commands/block.d.ts +0 -24
  54. package/dist/_dts/sdk/src/cli/commands/compare.d.ts +0 -62
  55. package/dist/_dts/sdk/src/cli/commands/content-type.d.ts +0 -10
  56. package/dist/_dts/sdk/src/cli/commands/content.d.ts +0 -56
  57. package/dist/_dts/sdk/src/cli/commands/delete.d.ts +0 -14
  58. package/dist/_dts/sdk/src/cli/commands/deploy.d.ts +0 -43
  59. package/dist/_dts/sdk/src/cli/commands/drafts.d.ts +0 -18
  60. package/dist/_dts/sdk/src/cli/commands/entry.d.ts +0 -55
  61. package/dist/_dts/sdk/src/cli/commands/env.d.ts +0 -31
  62. package/dist/_dts/sdk/src/cli/commands/event.d.ts +0 -23
  63. package/dist/_dts/sdk/src/cli/commands/eventOccurrenceSchedule.d.ts +0 -12
  64. package/dist/_dts/sdk/src/cli/commands/identifiers.d.ts +0 -10
  65. package/dist/_dts/sdk/src/cli/commands/init-docs.d.ts +0 -13
  66. package/dist/_dts/sdk/src/cli/commands/manifest.d.ts +0 -10
  67. package/dist/_dts/sdk/src/cli/commands/media-validation.d.ts +0 -3
  68. package/dist/_dts/sdk/src/cli/commands/migrate.d.ts +0 -11
  69. package/dist/_dts/sdk/src/cli/commands/navigation.d.ts +0 -12
  70. package/dist/_dts/sdk/src/cli/commands/page.d.ts +0 -14
  71. package/dist/_dts/sdk/src/cli/commands/publish-all.d.ts +0 -50
  72. package/dist/_dts/sdk/src/cli/commands/pull-dated-offering-scope.d.ts +0 -10
  73. package/dist/_dts/sdk/src/cli/commands/pull-dry-run.d.ts +0 -70
  74. package/dist/_dts/sdk/src/cli/commands/pull-scope-diff.d.ts +0 -8
  75. package/dist/_dts/sdk/src/cli/commands/pull.d.ts +0 -43
  76. package/dist/_dts/sdk/src/cli/commands/push/consts.d.ts +0 -3
  77. package/dist/_dts/sdk/src/cli/commands/push/execute/diff.d.ts +0 -19
  78. package/dist/_dts/sdk/src/cli/commands/push/execute/footer.d.ts +0 -42
  79. package/dist/_dts/sdk/src/cli/commands/push/execute/localMediaReporting.d.ts +0 -23
  80. package/dist/_dts/sdk/src/cli/commands/push/execute/media.d.ts +0 -22
  81. package/dist/_dts/sdk/src/cli/commands/push/execute/metadata.d.ts +0 -1
  82. package/dist/_dts/sdk/src/cli/commands/push/execute/reporting.d.ts +0 -7
  83. package/dist/_dts/sdk/src/cli/commands/push/execute/theme.d.ts +0 -63
  84. package/dist/_dts/sdk/src/cli/commands/push/filter.d.ts +0 -15
  85. package/dist/_dts/sdk/src/cli/commands/push/metadata.d.ts +0 -29
  86. package/dist/_dts/sdk/src/cli/commands/push/normalizeLocalContent.d.ts +0 -2
  87. package/dist/_dts/sdk/src/cli/commands/push/options.d.ts +0 -32
  88. package/dist/_dts/sdk/src/cli/commands/push/publishGuidance.d.ts +0 -15
  89. package/dist/_dts/sdk/src/cli/commands/push/pushAllExtras.d.ts +0 -25
  90. package/dist/_dts/sdk/src/cli/commands/push/scopes/commandBackedDatedOfferingScope.d.ts +0 -83
  91. package/dist/_dts/sdk/src/cli/commands/push/scopes/eventCategories.d.ts +0 -4
  92. package/dist/_dts/sdk/src/cli/commands/push/scopes/events.d.ts +0 -4
  93. package/dist/_dts/sdk/src/cli/commands/push/scopes/mediaPrep.d.ts +0 -14
  94. package/dist/_dts/sdk/src/cli/commands/push/scopes/pushScopeGeneric.d.ts +0 -6
  95. package/dist/_dts/sdk/src/cli/commands/push/scopes/types.d.ts +0 -87
  96. package/dist/_dts/sdk/src/cli/commands/push/scopes/venues.d.ts +0 -4
  97. package/dist/_dts/sdk/src/cli/commands/push/stale-resolution.d.ts +0 -48
  98. package/dist/_dts/sdk/src/cli/commands/push/stale.d.ts +0 -17
  99. package/dist/_dts/sdk/src/cli/commands/push/verification.d.ts +0 -56
  100. package/dist/_dts/sdk/src/cli/commands/push/workflowPlan.d.ts +0 -34
  101. package/dist/_dts/sdk/src/cli/commands/push-execute.d.ts +0 -54
  102. package/dist/_dts/sdk/src/cli/commands/push.d.ts +0 -40
  103. package/dist/_dts/sdk/src/cli/commands/setup.d.ts +0 -3
  104. package/dist/_dts/sdk/src/cli/commands/style.d.ts +0 -60
  105. package/dist/_dts/sdk/src/cli/commands/verify.d.ts +0 -11
  106. package/dist/_dts/sdk/src/cli/commands/webhooks.d.ts +0 -44
  107. package/dist/_dts/sdk/src/cli/config-loader.d.ts +0 -47
  108. package/dist/_dts/sdk/src/cli/content/collectionWriters.d.ts +0 -23
  109. package/dist/_dts/sdk/src/cli/content/edit/format.d.ts +0 -2
  110. package/dist/_dts/sdk/src/cli/content/edit/path.d.ts +0 -14
  111. package/dist/_dts/sdk/src/cli/content/edit/planner.d.ts +0 -46
  112. package/dist/_dts/sdk/src/cli/content/entryPaths.d.ts +0 -6
  113. package/dist/_dts/sdk/src/cli/content/footerFile.d.ts +0 -10
  114. package/dist/_dts/sdk/src/cli/content/fs-utils.d.ts +0 -39
  115. package/dist/_dts/sdk/src/cli/content/legacyEventScheduleShapeError.d.ts +0 -5
  116. package/dist/_dts/sdk/src/cli/content/localEventSchedule.d.ts +0 -17
  117. package/dist/_dts/sdk/src/cli/content/media-manifest.d.ts +0 -13
  118. package/dist/_dts/sdk/src/cli/content/metadataAfterPush.d.ts +0 -25
  119. package/dist/_dts/sdk/src/cli/content/metadataStore.d.ts +0 -29
  120. package/dist/_dts/sdk/src/cli/content/reader.d.ts +0 -488
  121. package/dist/_dts/sdk/src/cli/content/writer.d.ts +0 -142
  122. package/dist/_dts/sdk/src/cli/env-scope.d.ts +0 -2
  123. package/dist/_dts/sdk/src/cli/env.d.ts +0 -71
  124. package/dist/_dts/sdk/src/cli/errors.d.ts +0 -62
  125. package/dist/_dts/sdk/src/cli/helpers/ai-runtime.d.ts +0 -2
  126. package/dist/_dts/sdk/src/cli/helpers.d.ts +0 -399
  127. package/dist/_dts/sdk/src/cli/index.d.ts +0 -11
  128. package/dist/_dts/sdk/src/cli/init-docs/constants.d.ts +0 -16
  129. package/dist/_dts/sdk/src/cli/init-docs/index.d.ts +0 -12
  130. package/dist/_dts/sdk/src/cli/init-docs/templates.d.ts +0 -18
  131. package/dist/_dts/sdk/src/cli/init-docs/zod-to-markdown.d.ts +0 -28
  132. package/dist/_dts/sdk/src/cli/load-config.d.ts +0 -14
  133. package/dist/_dts/sdk/src/cli/media/identifiers.d.ts +0 -18
  134. package/dist/_dts/sdk/src/cli/media/local-media.d.ts +0 -14
  135. package/dist/_dts/sdk/src/cli/media/local-sync.d.ts +0 -91
  136. package/dist/_dts/sdk/src/cli/media/portable.d.ts +0 -11
  137. package/dist/_dts/sdk/src/cli/media/rich-text.d.ts +0 -12
  138. package/dist/_dts/sdk/src/cli/media/value-utils.d.ts +0 -15
  139. package/dist/_dts/sdk/src/cli/media/write-guard.d.ts +0 -52
  140. package/dist/_dts/sdk/src/cli/merge-remote/entryLocal.d.ts +0 -3
  141. package/dist/_dts/sdk/src/cli/merge-remote/entryMerge.d.ts +0 -78
  142. package/dist/_dts/sdk/src/cli/merge-remote/entryMergePlan.d.ts +0 -45
  143. package/dist/_dts/sdk/src/cli/merge-remote/entryMergePush.d.ts +0 -24
  144. package/dist/_dts/sdk/src/cli/merge-remote/entryMergeReport.d.ts +0 -18
  145. package/dist/_dts/sdk/src/cli/merge-remote/entryRemote.d.ts +0 -9
  146. package/dist/_dts/sdk/src/cli/merge-remote/entrySnapshots.d.ts +0 -48
  147. package/dist/_dts/sdk/src/cli/merge-remote/mergeFieldChanges.d.ts +0 -22
  148. package/dist/_dts/sdk/src/cli/merge-remote/pageLocal.d.ts +0 -3
  149. package/dist/_dts/sdk/src/cli/merge-remote/pageMerge.d.ts +0 -78
  150. package/dist/_dts/sdk/src/cli/merge-remote/pageMergePlan.d.ts +0 -36
  151. package/dist/_dts/sdk/src/cli/merge-remote/pageMergePush.d.ts +0 -23
  152. package/dist/_dts/sdk/src/cli/merge-remote/pageMergeReport.d.ts +0 -17
  153. package/dist/_dts/sdk/src/cli/merge-remote/pageSnapshots.d.ts +0 -46
  154. package/dist/_dts/sdk/src/cli/merge-remote/sharedBaseSnapshots.d.ts +0 -32
  155. package/dist/_dts/sdk/src/cli/merge-remote/sharedMergePlan.d.ts +0 -27
  156. package/dist/_dts/sdk/src/cli/merge-remote/sharedMergeReport.d.ts +0 -63
  157. package/dist/_dts/sdk/src/cli/migrations/entries.d.ts +0 -28
  158. package/dist/_dts/sdk/src/cli/migrations/events.d.ts +0 -73
  159. package/dist/_dts/sdk/src/cli/navigationIdentity.d.ts +0 -11
  160. package/dist/_dts/sdk/src/cli/output.d.ts +0 -133
  161. package/dist/_dts/sdk/src/cli/program.d.ts +0 -29
  162. package/dist/_dts/sdk/src/cli/push-config.d.ts +0 -49
  163. package/dist/_dts/sdk/src/cli/setup/setupPlan.d.ts +0 -51
  164. package/dist/_dts/sdk/src/cli/site-commands/commandKeys.d.ts +0 -13
  165. package/dist/_dts/sdk/src/cli/site-commands/commandRuntime.d.ts +0 -170
  166. package/dist/_dts/sdk/src/cli/site-commands/commandRuntimeCompat.d.ts +0 -21
  167. package/dist/_dts/sdk/src/cli/site-commands/commandSurfaceDispatch.d.ts +0 -32
  168. package/dist/_dts/sdk/src/cli/site-commands/datedOfferingCommands.d.ts +0 -53
  169. package/dist/_dts/sdk/src/cli/site-commands/entryCommands.d.ts +0 -65
  170. package/dist/_dts/sdk/src/cli/site-commands/eventScheduleCompiler.d.ts +0 -24
  171. package/dist/_dts/sdk/src/cli/site-commands/footerCommands.d.ts +0 -68
  172. package/dist/_dts/sdk/src/cli/site-commands/formCommands.d.ts +0 -53
  173. package/dist/_dts/sdk/src/cli/site-commands/index.d.ts +0 -8
  174. package/dist/_dts/sdk/src/cli/site-commands/localBlockManifestResolver.d.ts +0 -31
  175. package/dist/_dts/sdk/src/cli/site-commands/navigationCommands.d.ts +0 -57
  176. package/dist/_dts/sdk/src/cli/site-commands/oneOffCommands.d.ts +0 -82
  177. package/dist/_dts/sdk/src/cli/site-commands/pageCommands.d.ts +0 -84
  178. package/dist/_dts/sdk/src/cli/site-commands/pushExecution.d.ts +0 -39
  179. package/dist/_dts/sdk/src/cli/site-commands/pushExecutionPlan.d.ts +0 -8
  180. package/dist/_dts/sdk/src/cli/site-commands/pushExecutionTypes.d.ts +0 -97
  181. package/dist/_dts/sdk/src/cli/site-commands/residualSettingsTrimming.d.ts +0 -15
  182. package/dist/_dts/sdk/src/cli/sync/diff.d.ts +0 -222
  183. package/dist/_dts/sdk/src/cli/sync/executor.d.ts +0 -84
  184. package/dist/_dts/sdk/src/cli/sync/field-diff.d.ts +0 -39
  185. package/dist/_dts/sdk/src/cli/sync/index.d.ts +0 -10
  186. package/dist/_dts/sdk/src/cli/sync/mapper.d.ts +0 -41
  187. package/dist/_dts/sdk/src/cli/sync/media-sync.d.ts +0 -15
  188. package/dist/_dts/sdk/src/cli/sync/media.d.ts +0 -158
  189. package/dist/_dts/sdk/src/cli/sync/syncResultAggregation.d.ts +0 -4
  190. package/dist/_dts/sdk/src/cli/sync/validation.d.ts +0 -68
  191. package/dist/_dts/sdk/src/cli/utils/checksum.d.ts +0 -1
  192. package/dist/_dts/sdk/src/client/management/blocks.d.ts +0 -19
  193. package/dist/_dts/sdk/src/client/management/catalog.d.ts +0 -10
  194. package/dist/_dts/sdk/src/client/management/entries.d.ts +0 -6
  195. package/dist/_dts/sdk/src/client/management/eventCategories.d.ts +0 -6
  196. package/dist/_dts/sdk/src/client/management/events.d.ts +0 -7
  197. package/dist/_dts/sdk/src/client/management/footer.d.ts +0 -9
  198. package/dist/_dts/sdk/src/client/management/forms.d.ts +0 -6
  199. package/dist/_dts/sdk/src/client/management/http.d.ts +0 -79
  200. package/dist/_dts/sdk/src/client/management/identifiers.d.ts +0 -11
  201. package/dist/_dts/sdk/src/client/management/index.d.ts +0 -41
  202. package/dist/_dts/sdk/src/client/management/media.d.ts +0 -72
  203. package/dist/_dts/sdk/src/client/management/navigation.d.ts +0 -6
  204. package/dist/_dts/sdk/src/client/management/pages.d.ts +0 -6
  205. package/dist/_dts/sdk/src/client/management/pull.d.ts +0 -6
  206. package/dist/_dts/sdk/src/client/management/settings-branding.d.ts +0 -32
  207. package/dist/_dts/sdk/src/client/management/settings.d.ts +0 -6
  208. package/dist/_dts/sdk/src/client/management/theme.d.ts +0 -8
  209. package/dist/_dts/sdk/src/client/management/types.d.ts +0 -1069
  210. package/dist/_dts/sdk/src/client/management/venues.d.ts +0 -6
  211. package/dist/_dts/sdk/src/client/management/webhooks.d.ts +0 -3
  212. package/dist/_dts/sdk/src/test/env.d.ts +0 -4
  213. package/dist/_dts/site-commands/src/adapter.d.ts +0 -23
  214. package/dist/_dts/site-commands/src/appointmentCommandSchemas.d.ts +0 -100
  215. package/dist/_dts/site-commands/src/capabilityGaps.d.ts +0 -8
  216. package/dist/_dts/site-commands/src/commandContract.d.ts +0 -1277
  217. package/dist/_dts/site-commands/src/commandDomain.d.ts +0 -20
  218. package/dist/_dts/site-commands/src/commandIdentifiers.d.ts +0 -7
  219. package/dist/_dts/site-commands/src/commandValidation.d.ts +0 -10
  220. package/dist/_dts/site-commands/src/commands.d.ts +0 -1983
  221. package/dist/_dts/site-commands/src/domain.d.ts +0 -104
  222. package/dist/_dts/site-commands/src/eventCommandContent.d.ts +0 -11
  223. package/dist/_dts/site-commands/src/exposure.d.ts +0 -41
  224. package/dist/_dts/site-commands/src/guards.d.ts +0 -1
  225. package/dist/_dts/site-commands/src/index.d.ts +0 -18
  226. package/dist/_dts/site-commands/src/metadata.d.ts +0 -555
  227. package/dist/_dts/site-commands/src/pagePaths.d.ts +0 -6
  228. package/dist/_dts/site-commands/src/planner.d.ts +0 -58
  229. package/dist/_dts/site-commands/src/refContributions.d.ts +0 -11
  230. package/dist/_dts/site-commands/src/refs.d.ts +0 -90
  231. package/dist/_dts/site-commands/src/siteStyleCommandSchema.d.ts +0 -405
  232. package/dist/_dts/site-commands/src/siteStyleSelectionSchemaBuilder.d.ts +0 -46
  233. package/dist/_dts/site-commands/src/stableJson.d.ts +0 -5
  234. package/dist/_dts/site-commands/src/staticExecutionGaps.d.ts +0 -10
  235. package/dist/_dts/site-commands/src/venueCommandMapping.d.ts +0 -21
  236. package/dist/_dts/theme-core/src/data.d.ts +0 -12
  237. package/dist/_dts/theme-core/src/site-styles/headerStyleParts.d.ts +0 -4
  238. package/dist/cli/index.mjs +0 -162988
  239. package/dist/cli/init-docs/content/agents-section.md +0 -67
  240. package/dist/cli/init-docs/content/cli-reference.md +0 -1238
  241. package/dist/cli/init-docs/content/content-management.md +0 -792
  242. package/dist/cli/init-docs/content/context-brand.md +0 -125
  243. package/dist/cli/init-docs/content/context-brief.md +0 -77
  244. package/dist/cli/init-docs/content/context-knowledge.md +0 -111
  245. package/dist/cli/init-docs/content/getting-started.md +0 -171
  246. package/dist/cli/init-docs/content/site-workflows-readme.md +0 -96
  247. package/dist/cli/init-docs/content/workflow-add-block.md +0 -299
  248. package/dist/cli/init-docs/content/workflow-agent-safe-sync.md +0 -83
  249. package/dist/cli/init-docs/content/workflow-block-extensions.md +0 -370
  250. package/dist/cli/init-docs/content/workflow-cmsify-page.md +0 -357
  251. package/dist/cli/init-docs/content/workflow-content-types.md +0 -330
  252. package/dist/cli/init-docs/content/workflow-create-page.md +0 -212
  253. package/dist/cli/init-docs/content/workflow-custom-block.md +0 -470
  254. package/dist/cli/init-docs/content/workflow-editor-workflows.md +0 -130
  255. package/dist/cli/init-docs/content/workflow-isr-revalidation.md +0 -158
  256. package/dist/cli/init-docs/content/workflow-preview-mode.md +0 -252
  257. package/dist/cli/init-docs/content/workflow-publish.md +0 -285
  258. package/dist/cli/init-docs/content/workflow-remote-setup.md +0 -51
  259. package/dist/cli/init-docs/content/workflow-templates.md +0 -381
  260. /package/dist/_dts/{sdk/src/cli/utils/mime.d.ts → media-core/src/mimeType.d.ts} +0 -0
@@ -102037,197 +102037,6 @@ function uniqueStrings(values) {
102037
102037
  return Array.from(new Set(values));
102038
102038
  }
102039
102039
  //#endregion
102040
- //#region ../theme-core/src/site-styles/headerStyleParts.ts
102041
- function brandHeaderForeground() {
102042
- return {
102043
- textColor: "primaryForeground",
102044
- navColor: "primaryForeground"
102045
- };
102046
- }
102047
- function neutralDropdownStyle() {
102048
- return {
102049
- background: "surface",
102050
- textColor: "text",
102051
- borderColor: "border",
102052
- shadow: "md",
102053
- borderRadius: "md",
102054
- textTransform: "none",
102055
- letterSpacing: "normal"
102056
- };
102057
- }
102058
- function brandDropdownStyle() {
102059
- return {
102060
- background: "primary-700",
102061
- textColor: "primaryForeground",
102062
- borderColor: null,
102063
- shadow: "md",
102064
- borderRadius: "md",
102065
- hoverBackground: "primary-900",
102066
- hoverTextColor: "secondary",
102067
- textTransform: "uppercase",
102068
- letterSpacing: "wider",
102069
- fontWeight: "bold",
102070
- textSize: "sm"
102071
- };
102072
- }
102073
- //#endregion
102074
- //#region ../theme-core/src/site-styles/headerInteractionPalette.ts
102075
- const clearSplitInteractionPalette = defineLookOptionGroup({
102076
- id: "interaction-palette",
102077
- label: "Hover colour",
102078
- defaultOptionId: "accent",
102079
- options: [
102080
- {
102081
- id: "accent",
102082
- label: "Accent"
102083
- },
102084
- {
102085
- id: "primary",
102086
- label: "Primary"
102087
- },
102088
- {
102089
- id: "secondary",
102090
- label: "Secondary"
102091
- }
102092
- ]
102093
- });
102094
- function resolveHeaderInteractionPaletteControl(group, preference) {
102095
- if (!group) return { kind: "unavailable" };
102096
- if (preference === "recommended") return availableControlState(group, preference, resolveLookOption(group, void 0).option.id, null);
102097
- const resolution = resolveHeaderInteractionPalette(group, preference);
102098
- return availableControlState(group, preference, resolution.option.id, resolution.kind === "repaired" ? {
102099
- requested: preference,
102100
- fallback: resolution.option.id,
102101
- reason: resolution.reason
102102
- } : null);
102103
- }
102104
- function availableControlState(group, preference, effectivePalette, repair) {
102105
- return {
102106
- kind: "available",
102107
- preference,
102108
- effectivePalette,
102109
- options: [{
102110
- value: "recommended",
102111
- label: `Recommended (${defaultOptionLabel(group)})`
102112
- }, ...group.options.map((option) => ({
102113
- value: option.id,
102114
- label: option.label
102115
- }))],
102116
- repair
102117
- };
102118
- }
102119
- function applyHeaderInteractionPalette(header, group, preference) {
102120
- if (!group) return header;
102121
- if (!header.navLinkStyle) throw new Error(`Header interaction palette "${group.id}" requires a nav link style.`);
102122
- const palette = resolveHeaderInteractionPalette(group, preference).option.id;
102123
- const pair = headerInteractionPalettePair(palette);
102124
- const pillEffect = {
102125
- effectId: "background-on-hover",
102126
- options: {
102127
- colorToken: pair.backgroundToken,
102128
- textColorToken: pair.foregroundToken
102129
- }
102130
- };
102131
- return {
102132
- ...header,
102133
- navLinkStyle: {
102134
- ...header.navLinkStyle,
102135
- hoverColorToken: null,
102136
- borderRadius: "full",
102137
- effects: {
102138
- ...header.navLinkStyle.effects,
102139
- hover: [pillEffect],
102140
- focus: [pillEffect]
102141
- }
102142
- }
102143
- };
102144
- }
102145
- function resolveHeaderInteractionPalette(group, preference) {
102146
- return resolveLookOption(group, preference === "recommended" ? void 0 : preference);
102147
- }
102148
- function defaultOptionLabel(group) {
102149
- return resolveLookOption(group, void 0).option.label;
102150
- }
102151
- //#endregion
102152
- //#region ../theme-core/src/site-styles/headerOpeningForeground.ts
102153
- function headerStyleAvailability(style, context) {
102154
- if (!style.openingForegroundTarget) return { kind: "available" };
102155
- return context?.openingForeground?.kind === "known" ? { kind: "available" } : {
102156
- kind: "unavailable",
102157
- reason: "requires-known-opening-foreground"
102158
- };
102159
- }
102160
- function headerStyleAvailabilityReasonLabel(reason) {
102161
- switch (reason) {
102162
- case "requires-known-opening-foreground": return "Needs an opening section with a defined text colour and contrast treatment.";
102163
- default: return assertNever$8(reason, "Unhandled header style availability reason");
102164
- }
102165
- }
102166
- function applyOpeningForeground(theme, header, style, context) {
102167
- if (!style.openingForegroundTarget) return header;
102168
- const foreground = context?.openingForeground ?? { kind: "unknown" };
102169
- if (foreground.kind === "unknown") return applyUnknownOpeningForegroundFallback(header);
102170
- const withBrandForeground = {
102171
- ...header,
102172
- textColor: foreground.token
102173
- };
102174
- if (style.openingForegroundTarget === "brand-only") return withBrandForeground;
102175
- const scrollTreatment = compileHeaderScrollTreatment(theme, style, foreground.token);
102176
- return {
102177
- ...withBrandForeground,
102178
- navColor: foreground.token,
102179
- navLinkStyle: header.navLinkStyle ? {
102180
- ...header.navLinkStyle,
102181
- colorToken: foreground.token
102182
- } : header.navLinkStyle,
102183
- border: {
102184
- style: "solid",
102185
- width: "thin",
102186
- position: "bottom",
102187
- colorToken: parseThemeColorToken(`${foreground.token}/25`) ?? foreground.token
102188
- },
102189
- ...scrollTreatment ? { scrollTreatment } : {}
102190
- };
102191
- }
102192
- function compileHeaderScrollTreatment(theme, style, foregroundToken) {
102193
- if (style.scrollTreatment !== "contrast-glass") return void 0;
102194
- const tokenParts = parseColorTokenParts(foregroundToken);
102195
- if (tokenParts.kind !== "token") return void 0;
102196
- const foregroundHex = expandPalette(theme.palette)[tokenParts.token];
102197
- if (!foregroundHex) return void 0;
102198
- return {
102199
- kind: "contrast-glass",
102200
- backgroundTone: featuresFromHex(foregroundHex).Y >= .5 ? "dark" : "light"
102201
- };
102202
- }
102203
- const UNKNOWN_OPENING_FOREGROUND_CONTAINER = {
102204
- rounded: "2xl",
102205
- border: true,
102206
- shadow: true,
102207
- padding: "sm",
102208
- tint: "surface",
102209
- opacity: .94
102210
- };
102211
- /**
102212
- * Runtime repair for persisted headers whose page context is unavailable.
102213
- * The picker separately prevents new unsupported selections; this fallback
102214
- * keeps already-persisted selections readable without creating a second
102215
- * availability policy.
102216
- */
102217
- function applyUnknownOpeningForegroundFallback(header) {
102218
- return {
102219
- ...header,
102220
- scrollTreatment: void 0,
102221
- textColor: "text",
102222
- navColor: "text",
102223
- navLinkStyle: header.navLinkStyle ? {
102224
- ...header.navLinkStyle,
102225
- colorToken: "text"
102226
- } : header.navLinkStyle,
102227
- container: UNKNOWN_OPENING_FOREGROUND_CONTAINER
102228
- };
102229
- }
102230
- //#endregion
102231
102040
  //#region ../theme-core/src/site-styles/customizableSurfaces.ts
102232
102041
  function uniqueLookIds(ids) {
102233
102042
  const result = [];
@@ -102307,7 +102116,7 @@ function writePlanForLookCustomizationCommand(command) {
102307
102116
  }
102308
102117
  }
102309
102118
  //#endregion
102310
- //#region ../theme-core/src/site-styles/headerLooks.ts
102119
+ //#region ../theme-core/src/site-styles/headerLookTypes.ts
102311
102120
  function asHeaderLookId(value) {
102312
102121
  return value;
102313
102122
  }
@@ -102331,6 +102140,8 @@ const defaultHeaderSelectionContext = {
102331
102140
  function completeHeaderSelectionContext(context) {
102332
102141
  return mergeWithDefaults(defaultHeaderSelectionContext, context);
102333
102142
  }
102143
+ //#endregion
102144
+ //#region ../theme-core/src/site-styles/headerLookBranding.ts
102334
102145
  const titleOnlyLogoAccommodation = {
102335
102146
  pattern: "title-only",
102336
102147
  supportedShapes: [
@@ -102487,21 +102298,86 @@ function requireHeaderBrandPresentationSelection(plan) {
102487
102298
  if (plan.kind === "selected") return plan;
102488
102299
  throw new Error(`Selected header Look did not have a compatible logo accommodation: ${plan.reasons.join(", ")}`);
102489
102300
  }
102490
- /**
102491
- * Starts every Look from the generated theme's header branch, then clears
102492
- * optional nested styling fields that would otherwise leak from another Look.
102493
- */
102494
- function baseHeader(theme) {
102495
- const { navLinkStyle: _navLinkStyle, navFontRole: _navFontRole, navTypography: _navTypography, navTextSize: _navTextSize, interactionPalette: _interactionPalette, dropdownStyle: _dropdownStyle, ctaVariant: _ctaVariant, navContainer: _navContainer, container: _container, shadow: _shadow, logo: _logo, logoText: _logoText, border: _border, ...header } = theme.header;
102301
+ //#endregion
102302
+ //#region ../theme-core/src/site-styles/headerInteractionPalette.ts
102303
+ const clearSplitInteractionPalette = defineLookOptionGroup({
102304
+ id: "interaction-palette",
102305
+ label: "Hover colour",
102306
+ defaultOptionId: "accent",
102307
+ options: [
102308
+ {
102309
+ id: "accent",
102310
+ label: "Accent"
102311
+ },
102312
+ {
102313
+ id: "primary",
102314
+ label: "Primary"
102315
+ },
102316
+ {
102317
+ id: "secondary",
102318
+ label: "Secondary"
102319
+ }
102320
+ ]
102321
+ });
102322
+ function resolveHeaderInteractionPaletteControl(group, preference) {
102323
+ if (!group) return { kind: "unavailable" };
102324
+ if (preference === "recommended") return availableControlState(group, preference, resolveLookOption(group, void 0).option.id, null);
102325
+ const resolution = resolveHeaderInteractionPalette(group, preference);
102326
+ return availableControlState(group, preference, resolution.option.id, resolution.kind === "repaired" ? {
102327
+ requested: preference,
102328
+ fallback: resolution.option.id,
102329
+ reason: resolution.reason
102330
+ } : null);
102331
+ }
102332
+ function availableControlState(group, preference, effectivePalette, repair) {
102333
+ return {
102334
+ kind: "available",
102335
+ preference,
102336
+ effectivePalette,
102337
+ options: [{
102338
+ value: "recommended",
102339
+ label: `Recommended (${defaultOptionLabel(group)})`
102340
+ }, ...group.options.map((option) => ({
102341
+ value: option.id,
102342
+ label: option.label
102343
+ }))],
102344
+ repair
102345
+ };
102346
+ }
102347
+ function applyHeaderInteractionPalette(header, group, preference) {
102348
+ if (!group) return header;
102349
+ if (!header.navLinkStyle) throw new Error(`Header interaction palette "${group.id}" requires a nav link style.`);
102350
+ const palette = resolveHeaderInteractionPalette(group, preference).option.id;
102351
+ const pair = headerInteractionPalettePair(palette);
102352
+ const pillEffect = {
102353
+ effectId: "background-on-hover",
102354
+ options: {
102355
+ colorToken: pair.backgroundToken,
102356
+ textColorToken: pair.foregroundToken
102357
+ }
102358
+ };
102496
102359
  return {
102497
102360
  ...header,
102498
- navContainer: {
102499
- type: "none",
102500
- tint: null,
102501
- opacity: .15
102361
+ navLinkStyle: {
102362
+ ...header.navLinkStyle,
102363
+ hoverColorToken: null,
102364
+ borderRadius: "full",
102365
+ effects: {
102366
+ ...header.navLinkStyle.effects,
102367
+ hover: [pillEffect],
102368
+ focus: [pillEffect]
102369
+ }
102502
102370
  }
102503
102371
  };
102504
102372
  }
102373
+ function resolveHeaderInteractionPalette(group, preference) {
102374
+ return resolveLookOption(group, preference === "recommended" ? void 0 : preference);
102375
+ }
102376
+ function defaultOptionLabel(group) {
102377
+ return resolveLookOption(group, void 0).option.label;
102378
+ }
102379
+ //#endregion
102380
+ //#region ../theme-core/src/site-styles/headerLayoutStyleCatalog.ts
102505
102381
  const headerLayoutCatalog = defineExactCatalog()([
102506
102382
  {
102507
102383
  id: asHeaderLayoutId("classic"),
@@ -102912,12 +102788,6 @@ function getHeaderStyle(id) {
102912
102788
  function isHeaderStyleCompatibleWithLayout(style, layoutId) {
102913
102789
  return style.supportedLayoutIds.includes(layoutId);
102914
102790
  }
102915
- /**
102916
- * Layouts that honour the `theme.header.barFrame` facet. Only the classic
102917
- * (inline) layout renders the 'inset-shell' capsule framing; the centered and
102918
- * floating layouts ignore the facet and always render their own chrome. Keeping
102919
- * this list explicit lets callers gate the barFrame control per layout.
102920
- */
102921
102791
  function getHeaderLayoutOrThrow(id) {
102922
102792
  const layout = getHeaderLayout(id);
102923
102793
  if (!layout) throw new Error(`Unknown Theme V2 header layout: ${id}`);
@@ -102998,6 +102868,98 @@ function resolveHeaderLayoutStyleSelection(selection) {
102998
102868
  }
102999
102869
  };
103000
102870
  }
102871
+ //#endregion
102872
+ //#region ../theme-core/src/site-styles/headerOpeningForeground.ts
102873
+ function headerStyleAvailability(style, context) {
102874
+ if (!style.openingForegroundTarget) return { kind: "available" };
102875
+ return context?.openingForeground?.kind === "known" ? { kind: "available" } : {
102876
+ kind: "unavailable",
102877
+ reason: "requires-known-opening-foreground"
102878
+ };
102879
+ }
102880
+ function headerStyleAvailabilityReasonLabel(reason) {
102881
+ switch (reason) {
102882
+ case "requires-known-opening-foreground": return "Needs an opening section with a defined text colour and contrast treatment.";
102883
+ default: return assertNever$8(reason, "Unhandled header style availability reason");
102884
+ }
102885
+ }
102886
+ function applyOpeningForeground(theme, header, style, context) {
102887
+ if (!style.openingForegroundTarget) return header;
102888
+ const foreground = context?.openingForeground ?? { kind: "unknown" };
102889
+ if (foreground.kind === "unknown") return applyUnknownOpeningForegroundFallback(header);
102890
+ const withBrandForeground = {
102891
+ ...header,
102892
+ textColor: foreground.token
102893
+ };
102894
+ if (style.openingForegroundTarget === "brand-only") return withBrandForeground;
102895
+ const scrollTreatment = compileHeaderScrollTreatment(theme, style, foreground.token);
102896
+ return {
102897
+ ...withBrandForeground,
102898
+ navColor: foreground.token,
102899
+ navLinkStyle: header.navLinkStyle ? {
102900
+ ...header.navLinkStyle,
102901
+ colorToken: foreground.token
102902
+ } : header.navLinkStyle,
102903
+ border: {
102904
+ style: "solid",
102905
+ width: "thin",
102906
+ position: "bottom",
102907
+ colorToken: parseThemeColorToken(`${foreground.token}/25`) ?? foreground.token
102908
+ },
102909
+ ...scrollTreatment ? { scrollTreatment } : {}
102910
+ };
102911
+ }
102912
+ function compileHeaderScrollTreatment(theme, style, foregroundToken) {
102913
+ if (style.scrollTreatment !== "contrast-glass") return void 0;
102914
+ const tokenParts = parseColorTokenParts(foregroundToken);
102915
+ if (tokenParts.kind !== "token") return void 0;
102916
+ const foregroundHex = expandPalette(theme.palette)[tokenParts.token];
102917
+ if (!foregroundHex) return void 0;
102918
+ return {
102919
+ kind: "contrast-glass",
102920
+ backgroundTone: featuresFromHex(foregroundHex).Y >= .5 ? "dark" : "light"
102921
+ };
102922
+ }
102923
+ const UNKNOWN_OPENING_FOREGROUND_CONTAINER = {
102924
+ rounded: "2xl",
102925
+ border: true,
102926
+ shadow: true,
102927
+ padding: "sm",
102928
+ tint: "surface",
102929
+ opacity: .94
102930
+ };
102931
+ /**
102932
+ * Runtime repair for persisted headers whose page context is unavailable.
102933
+ * The picker separately prevents new unsupported selections; this fallback
102934
+ * keeps already-persisted selections readable without creating a second
102935
+ * availability policy.
102936
+ */
102937
+ function applyUnknownOpeningForegroundFallback(header) {
102938
+ return {
102939
+ ...header,
102940
+ scrollTreatment: void 0,
102941
+ textColor: "text",
102942
+ navColor: "text",
102943
+ navLinkStyle: header.navLinkStyle ? {
102944
+ ...header.navLinkStyle,
102945
+ colorToken: "text"
102946
+ } : header.navLinkStyle,
102947
+ container: UNKNOWN_OPENING_FOREGROUND_CONTAINER
102948
+ };
102949
+ }
102950
+ //#endregion
102951
+ //#region ../theme-core/src/site-styles/headerStyleCompilerPrimitives.ts
102952
+ function baseHeader(theme) {
102953
+ const { navLinkStyle: _navLinkStyle, navFontRole: _navFontRole, navTypography: _navTypography, navTextSize: _navTextSize, interactionPalette: _interactionPalette, dropdownStyle: _dropdownStyle, ctaVariant: _ctaVariant, navContainer: _navContainer, container: _container, shadow: _shadow, logo: _logo, logoText: _logoText, border: _border, ...header } = theme.header;
102954
+ return {
102955
+ ...header,
102956
+ navContainer: {
102957
+ type: "none",
102958
+ tint: null,
102959
+ opacity: .15
102960
+ }
102961
+ };
102962
+ }
103001
102963
  function headerForLayout(theme, layout) {
103002
102964
  return {
103003
102965
  ...baseHeader(theme),
@@ -103005,11 +102967,43 @@ function headerForLayout(theme, layout) {
103005
102967
  positioning: layout.defaultPositioning,
103006
102968
  shrinkOnScroll: layout.shrinkOnScroll,
103007
102969
  ctaGap: layout.id === asHeaderLayoutId("floating") ? "compact" : "default",
103008
- logoText: layout.id === asHeaderLayoutId("classic") ? {
102970
+ ...layout.id === asHeaderLayoutId("classic") ? { logoText: {
103009
102971
  mobileMaxWidth: "sm",
103010
102972
  mobileWrapLines: 1,
103011
102973
  hideOnShrink: false
103012
- } : void 0
102974
+ } } : {}
102975
+ };
102976
+ }
102977
+ function brandHeaderForeground() {
102978
+ return {
102979
+ textColor: "primaryForeground",
102980
+ navColor: "primaryForeground"
102981
+ };
102982
+ }
102983
+ function neutralDropdownStyle() {
102984
+ return {
102985
+ background: "surface",
102986
+ textColor: "text",
102987
+ borderColor: "border",
102988
+ shadow: "md",
102989
+ borderRadius: "md",
102990
+ textTransform: "none",
102991
+ letterSpacing: "normal"
102992
+ };
102993
+ }
102994
+ function brandDropdownStyle() {
102995
+ return {
102996
+ background: "primary-700",
102997
+ textColor: "primaryForeground",
102998
+ borderColor: null,
102999
+ shadow: "md",
103000
+ borderRadius: "md",
103001
+ hoverBackground: "primary-900",
103002
+ hoverTextColor: "secondary",
103003
+ textTransform: "uppercase",
103004
+ letterSpacing: "wider",
103005
+ fontWeight: "bold",
103006
+ textSize: "sm"
103013
103007
  };
103014
103008
  }
103015
103009
  function applyNavTypography(style, typography) {
@@ -103210,195 +103204,247 @@ function withClassicNavTextSize(header, style) {
103210
103204
  }
103211
103205
  };
103212
103206
  }
103207
+ //#endregion
103208
+ //#region ../theme-core/src/site-styles/headerStyleCompiler.ts
103209
+ function headerCtaVariant(theme, treatment) {
103210
+ return resolveHeaderCtaVariant(theme, treatment);
103211
+ }
103212
+ function compileMinimalStyle(_theme, header, style) {
103213
+ return {
103214
+ ...header,
103215
+ ...neutralHeaderBase(),
103216
+ background: colorHeaderBackground("surface"),
103217
+ navStyle: "minimal",
103218
+ navWeight: "medium",
103219
+ navLinkStyle: minimalNavLinkStyle("text", "primary", style.navTypography),
103220
+ border: noHeaderBorder(),
103221
+ ctaTreatment: "default"
103222
+ };
103223
+ }
103224
+ function compileFineLineStyle(theme, header, style) {
103225
+ return {
103226
+ ...header,
103227
+ ...neutralHeaderBase(),
103228
+ background: colorHeaderBackground("surface"),
103229
+ navStyle: "underline-grow",
103230
+ navWeight: "medium",
103231
+ navLinkStyle: underlineNavLinkStyle("text", void 0, style.navTypography),
103232
+ border: noHeaderBorder(),
103233
+ ctaTreatment: "outline",
103234
+ ctaVariant: headerCtaVariant(theme, "outline")
103235
+ };
103236
+ }
103237
+ function compileSoftBarStyle(_theme, header, style) {
103238
+ return {
103239
+ ...header,
103240
+ ...neutralHeaderBase(),
103241
+ background: colorHeaderBackground("surfaceAlt"),
103242
+ navStyle: "capsule",
103243
+ navWeight: "medium",
103244
+ navLinkStyle: pillNavLinkStyle("text", "primary", 8, style.navTypography),
103245
+ border: bottomHeaderBorder(),
103246
+ ctaTreatment: "default"
103247
+ };
103248
+ }
103249
+ function compilePillNavStyle(_theme, header, style) {
103250
+ return {
103251
+ ...header,
103252
+ ...neutralHeaderBase(),
103253
+ background: colorHeaderBackground("surface"),
103254
+ navStyle: "capsule",
103255
+ navWeight: "medium",
103256
+ navLinkStyle: pillNavLinkStyle("text", "primary", 10, style.navTypography),
103257
+ navContainer: {
103258
+ type: "pill",
103259
+ tint: "surfaceAlt",
103260
+ opacity: .7
103261
+ },
103262
+ border: noHeaderBorder(),
103263
+ ctaTreatment: "default"
103264
+ };
103265
+ }
103266
+ function compileBrandBarStyle(theme, header, style) {
103267
+ return {
103268
+ ...brandSurfaceBase(theme, header),
103269
+ navStyle: "minimal",
103270
+ navWeight: "semibold",
103271
+ navLinkStyle: minimalNavLinkStyle("primaryForeground", "secondary", style.navTypography)
103272
+ };
103273
+ }
103274
+ function compileBrandUnderlineStyle(theme, header, style) {
103275
+ return {
103276
+ ...brandSurfaceBase(theme, header),
103277
+ navStyle: "underline-grow",
103278
+ navWeight: "bold",
103279
+ navLinkStyle: underlineNavLinkStyle("primaryForeground", "secondary", style.navTypography)
103280
+ };
103281
+ }
103282
+ function compileBrandPillStyle(theme, header, style) {
103283
+ return {
103284
+ ...brandSurfaceBase(theme, header),
103285
+ ...header.variant === "floating" ? {
103286
+ background: transparentHeaderBackground(),
103287
+ container: floatingContainer({
103288
+ rounded: "2xl",
103289
+ padding: "sm",
103290
+ tint: "primary",
103291
+ opacity: .95
103292
+ })
103293
+ } : {},
103294
+ navStyle: "capsule",
103295
+ navWeight: "semibold",
103296
+ navLinkStyle: pillNavLinkStyle("primaryForeground", "primaryForeground", 14, style.navTypography)
103297
+ };
103298
+ }
103299
+ function compileBrandCapsuleStyle(theme, header, style) {
103300
+ return {
103301
+ ...brandSurfaceBase(theme, header),
103302
+ navStyle: "capsule",
103303
+ navWeight: "semibold",
103304
+ navLinkStyle: pillNavLinkStyle("primaryForeground", "primaryForeground", 16, style.navTypography),
103305
+ shadow: { elevation: "md" }
103306
+ };
103307
+ }
103308
+ function compileSerifLineStyle(theme, header, style) {
103309
+ return {
103310
+ ...header,
103311
+ ...neutralHeaderBase(),
103312
+ background: colorHeaderBackground("background"),
103313
+ navStyle: "underline-grow",
103314
+ navWeight: "medium",
103315
+ navLinkStyle: underlineNavLinkStyle("text", void 0, style.navTypography),
103316
+ border: noHeaderBorder(),
103317
+ shadow: { elevation: "none" },
103318
+ logo: {
103319
+ fontFamily: "heading",
103320
+ letterSpacing: "wide",
103321
+ gradient: false
103322
+ },
103323
+ ctaTreatment: "outline",
103324
+ ctaVariant: headerCtaVariant(theme, "outline"),
103325
+ ctaGap: "relaxed"
103326
+ };
103327
+ }
103328
+ function compileFlatTabsStyle(theme, header, style) {
103329
+ return {
103330
+ ...header,
103331
+ ...neutralHeaderBase(),
103332
+ background: colorHeaderBackground("surface"),
103333
+ navStyle: "solid",
103334
+ navWeight: "semibold",
103335
+ navLinkStyle: flatTabNavLinkStyle("text", style.navTypography),
103336
+ border: bottomHeaderBorder(),
103337
+ shadow: themedHeaderShadow(theme),
103338
+ ctaTreatment: "primary",
103339
+ ctaVariant: headerCtaVariant(theme, "primary"),
103340
+ ctaGap: "compact"
103341
+ };
103342
+ }
103343
+ function compileGlassStyle(_theme, header, style) {
103344
+ return {
103345
+ ...floatingSurfaceBase(header),
103346
+ ...neutralHeaderBase(),
103347
+ navStyle: "frosted",
103348
+ navWeight: "semibold",
103349
+ navLinkStyle: pillNavLinkStyle("text", "primary", 8, style.navTypography),
103350
+ container: floatingContainer({
103351
+ rounded: "2xl",
103352
+ padding: "sm",
103353
+ tint: "surface",
103354
+ opacity: .4
103355
+ }),
103356
+ ctaTreatment: "default"
103357
+ };
103358
+ }
103359
+ function compileMinimalSurfaceStyle(_theme, header, style) {
103360
+ return {
103361
+ ...floatingSurfaceBase(header),
103362
+ ...neutralHeaderBase(),
103363
+ navStyle: "minimal",
103364
+ navWeight: "medium",
103365
+ navLinkStyle: {
103366
+ ...minimalNavLinkStyle("text", "primary", style.navTypography),
103367
+ textSize: "lg",
103368
+ contrastTreatment: "soft-glow"
103369
+ },
103370
+ ctaTreatment: "default"
103371
+ };
103372
+ }
103373
+ function compileSoftShellStyle(_theme, header, style) {
103374
+ return {
103375
+ ...floatingSurfaceBase(header),
103376
+ ...neutralHeaderBase(),
103377
+ navStyle: "capsule",
103378
+ navWeight: "medium",
103379
+ navLinkStyle: pillNavLinkStyle("text", "primary", 8, style.navTypography),
103380
+ container: floatingContainer({
103381
+ rounded: "2xl",
103382
+ padding: "md",
103383
+ tint: "surfaceAlt",
103384
+ opacity: .95
103385
+ }),
103386
+ ctaTreatment: "default"
103387
+ };
103388
+ }
103389
+ function compileSplitGlassStyle(_theme, header, style) {
103390
+ return {
103391
+ ...floatingSurfaceBase(header),
103392
+ ...neutralHeaderBase(),
103393
+ navStyle: "frosted",
103394
+ navWeight: "semibold",
103395
+ navLinkStyle: pillNavLinkStyle("text", "primary", 8, style.navTypography),
103396
+ navContainer: {
103397
+ type: "glass",
103398
+ tint: "surface",
103399
+ opacity: .4
103400
+ },
103401
+ ctaTreatment: "default"
103402
+ };
103403
+ }
103404
+ function compileSplitPillStyle(_theme, header, style) {
103405
+ return {
103406
+ ...floatingSurfaceBase(header),
103407
+ ...neutralHeaderBase(),
103408
+ navStyle: "capsule",
103409
+ navWeight: "medium",
103410
+ navLinkStyle: pillNavLinkStyle("text", "primary", 10, style.navTypography),
103411
+ navContainer: {
103412
+ type: "pill",
103413
+ tint: "surface",
103414
+ opacity: .94
103415
+ },
103416
+ ctaTreatment: "default"
103417
+ };
103418
+ }
103419
+ function selectHeaderStyleCompiler(styleId) {
103420
+ switch (styleId) {
103421
+ case "minimal": return compileMinimalStyle;
103422
+ case "fine-line": return compileFineLineStyle;
103423
+ case "soft-bar": return compileSoftBarStyle;
103424
+ case "pill-nav": return compilePillNavStyle;
103425
+ case "brand-bar": return compileBrandBarStyle;
103426
+ case "brand-underline": return compileBrandUnderlineStyle;
103427
+ case "brand-pill": return compileBrandPillStyle;
103428
+ case "brand-capsule": return compileBrandCapsuleStyle;
103429
+ case "serif-line": return compileSerifLineStyle;
103430
+ case "flat-tabs": return compileFlatTabsStyle;
103431
+ case "glass": return compileGlassStyle;
103432
+ case "minimal-surface": return compileMinimalSurfaceStyle;
103433
+ case "soft-shell": return compileSoftShellStyle;
103434
+ case "split-glass": return compileSplitGlassStyle;
103435
+ case "split-pill": return compileSplitPillStyle;
103436
+ default: return assertNever$8(styleId, "Unhandled header style id");
103437
+ }
103438
+ }
103213
103439
  function applyHeaderStyle(theme, header, style) {
103214
- const ctaVariant = (treatment) => resolveHeaderCtaVariant(theme, treatment);
103215
- return withClassicNavTextSize((() => {
103216
- switch (style.id) {
103217
- case "minimal": return {
103218
- ...header,
103219
- ...neutralHeaderBase(),
103220
- background: colorHeaderBackground("surface"),
103221
- navStyle: "minimal",
103222
- navWeight: "medium",
103223
- navLinkStyle: minimalNavLinkStyle("text", "primary", style.navTypography),
103224
- border: noHeaderBorder(),
103225
- ctaTreatment: "default"
103226
- };
103227
- case "fine-line": return {
103228
- ...header,
103229
- ...neutralHeaderBase(),
103230
- background: colorHeaderBackground("surface"),
103231
- navStyle: "underline-grow",
103232
- navWeight: "medium",
103233
- navLinkStyle: underlineNavLinkStyle("text", void 0, style.navTypography),
103234
- border: noHeaderBorder(),
103235
- ctaTreatment: "outline",
103236
- ctaVariant: ctaVariant("outline")
103237
- };
103238
- case "soft-bar": return {
103239
- ...header,
103240
- ...neutralHeaderBase(),
103241
- background: colorHeaderBackground("surfaceAlt"),
103242
- navStyle: "capsule",
103243
- navWeight: "medium",
103244
- navLinkStyle: pillNavLinkStyle("text", "primary", 8, style.navTypography),
103245
- border: bottomHeaderBorder(),
103246
- ctaTreatment: "default"
103247
- };
103248
- case "pill-nav": return {
103249
- ...header,
103250
- ...neutralHeaderBase(),
103251
- background: colorHeaderBackground("surface"),
103252
- navStyle: "capsule",
103253
- navWeight: "medium",
103254
- navLinkStyle: pillNavLinkStyle("text", "primary", 10, style.navTypography),
103255
- navContainer: {
103256
- type: "pill",
103257
- tint: "surfaceAlt",
103258
- opacity: .7
103259
- },
103260
- border: noHeaderBorder(),
103261
- ctaTreatment: "default"
103262
- };
103263
- case "brand-bar": return {
103264
- ...brandSurfaceBase(theme, header),
103265
- navStyle: "minimal",
103266
- navWeight: "semibold",
103267
- navLinkStyle: minimalNavLinkStyle("primaryForeground", "secondary", style.navTypography)
103268
- };
103269
- case "brand-underline": return {
103270
- ...brandSurfaceBase(theme, header),
103271
- navStyle: "underline-grow",
103272
- navWeight: "bold",
103273
- navLinkStyle: underlineNavLinkStyle("primaryForeground", "secondary", style.navTypography)
103274
- };
103275
- case "brand-pill": return {
103276
- ...brandSurfaceBase(theme, header),
103277
- ...header.variant === "floating" ? {
103278
- background: transparentHeaderBackground(),
103279
- container: floatingContainer({
103280
- rounded: "2xl",
103281
- padding: "sm",
103282
- tint: "primary",
103283
- opacity: .95
103284
- })
103285
- } : {},
103286
- navStyle: "capsule",
103287
- navWeight: "semibold",
103288
- navLinkStyle: pillNavLinkStyle("primaryForeground", "primaryForeground", 14, style.navTypography)
103289
- };
103290
- case "brand-capsule": return {
103291
- ...brandSurfaceBase(theme, header),
103292
- navStyle: "capsule",
103293
- navWeight: "semibold",
103294
- navLinkStyle: pillNavLinkStyle("primaryForeground", "primaryForeground", 16, style.navTypography),
103295
- shadow: { elevation: "md" }
103296
- };
103297
- case "serif-line": return {
103298
- ...header,
103299
- ...neutralHeaderBase(),
103300
- background: colorHeaderBackground("background"),
103301
- navStyle: "underline-grow",
103302
- navWeight: "medium",
103303
- navLinkStyle: underlineNavLinkStyle("text", void 0, style.navTypography),
103304
- border: noHeaderBorder(),
103305
- shadow: { elevation: "none" },
103306
- logo: {
103307
- fontFamily: "heading",
103308
- letterSpacing: "wide",
103309
- gradient: false
103310
- },
103311
- ctaTreatment: "outline",
103312
- ctaVariant: ctaVariant("outline"),
103313
- ctaGap: "relaxed"
103314
- };
103315
- case "flat-tabs": return {
103316
- ...header,
103317
- ...neutralHeaderBase(),
103318
- background: colorHeaderBackground("surface"),
103319
- navStyle: "solid",
103320
- navWeight: "semibold",
103321
- navLinkStyle: flatTabNavLinkStyle("text", style.navTypography),
103322
- border: bottomHeaderBorder(),
103323
- shadow: themedHeaderShadow(theme),
103324
- ctaTreatment: "primary",
103325
- ctaVariant: ctaVariant("primary"),
103326
- ctaGap: "compact"
103327
- };
103328
- case "glass": return {
103329
- ...floatingSurfaceBase(header),
103330
- ...neutralHeaderBase(),
103331
- navStyle: "frosted",
103332
- navWeight: "semibold",
103333
- navLinkStyle: pillNavLinkStyle("text", "primary", 8, style.navTypography),
103334
- container: floatingContainer({
103335
- rounded: "2xl",
103336
- padding: "sm",
103337
- tint: "surface",
103338
- opacity: .4
103339
- }),
103340
- ctaTreatment: "default"
103341
- };
103342
- case "minimal-surface": return {
103343
- ...floatingSurfaceBase(header),
103344
- ...neutralHeaderBase(),
103345
- navStyle: "minimal",
103346
- navWeight: "medium",
103347
- navLinkStyle: {
103348
- ...minimalNavLinkStyle("text", "primary", style.navTypography),
103349
- textSize: "lg",
103350
- contrastTreatment: "soft-glow"
103351
- },
103352
- ctaTreatment: "default"
103353
- };
103354
- case "soft-shell": return {
103355
- ...floatingSurfaceBase(header),
103356
- ...neutralHeaderBase(),
103357
- navStyle: "capsule",
103358
- navWeight: "medium",
103359
- navLinkStyle: pillNavLinkStyle("text", "primary", 8, style.navTypography),
103360
- container: floatingContainer({
103361
- rounded: "2xl",
103362
- padding: "md",
103363
- tint: "surfaceAlt",
103364
- opacity: .95
103365
- }),
103366
- ctaTreatment: "default"
103367
- };
103368
- case "split-glass": return {
103369
- ...floatingSurfaceBase(header),
103370
- ...neutralHeaderBase(),
103371
- navStyle: "frosted",
103372
- navWeight: "semibold",
103373
- navLinkStyle: pillNavLinkStyle("text", "primary", 8, style.navTypography),
103374
- navContainer: {
103375
- type: "glass",
103376
- tint: "surface",
103377
- opacity: .4
103378
- },
103379
- ctaTreatment: "default"
103380
- };
103381
- case "split-pill": return {
103382
- ...floatingSurfaceBase(header),
103383
- ...neutralHeaderBase(),
103384
- navStyle: "capsule",
103385
- navWeight: "medium",
103386
- navLinkStyle: pillNavLinkStyle("text", "primary", 10, style.navTypography),
103387
- navContainer: {
103388
- type: "pill",
103389
- tint: "surface",
103390
- opacity: .94
103391
- },
103392
- ctaTreatment: "default"
103393
- };
103394
- default: return assertNever$8(style.id, "Unhandled header style id");
103395
- }
103396
- })(), style);
103440
+ return withClassicNavTextSize(selectHeaderStyleCompiler(style.id)(theme, header, style), style);
103397
103441
  }
103398
103442
  function compileHeaderLayoutStyleSelection(theme, selection, context) {
103399
103443
  const resolution = resolveHeaderLayoutStyleSelection(selection);
103400
103444
  return applyOpeningForeground(theme, applyHeaderInteractionPalette(applyHeaderStyle(theme, headerForLayout(theme, resolution.layout), resolution.style), resolution.style.interactionPalette, theme.header.interactionPalette ?? "recommended"), resolution.style, context);
103401
103445
  }
103446
+ //#endregion
103447
+ //#region ../theme-core/src/site-styles/headerLegacyLooks.ts
103402
103448
  function solidBrandHeader(theme) {
103403
103449
  const ctaVariant = resolveHeaderCtaVariant(theme, "inverted");
103404
103450
  return {
@@ -103751,6 +103797,8 @@ function getHeaderLookOrThrow(id) {
103751
103797
  if (!look) throw new Error(`Unknown Theme V2 header Look: ${id}`);
103752
103798
  return look;
103753
103799
  }
103800
+ //#endregion
103801
+ //#region ../theme-core/src/site-styles/headerLookSelection.ts
103754
103802
  function rejectReasonsForLook(look, context) {
103755
103803
  const brandPresentation = resolveHeaderBrandPresentation({
103756
103804
  logo: context.logo,
@@ -181550,6 +181598,25 @@ z$1.object({
181550
181598
  mode: z$1.enum(["apply", "preview"]).optional()
181551
181599
  }).strict();
181552
181600
  //#endregion
181601
+ //#region ../api/src/sdkThemeWire.ts
181602
+ /**
181603
+ * Validate a wire value without replacing it with the schema's parsed output.
181604
+ * The returned type is deliberately the schema input, not its canonical output.
181605
+ */
181606
+ function losslessValidatedSchema(schema) {
181607
+ return z$1.unknown().superRefine((value, ctx) => {
181608
+ const parsed = schema.safeParse(value);
181609
+ if (parsed.success) return;
181610
+ for (const issue of parsed.error.issues) ctx.addIssue({
181611
+ code: "custom",
181612
+ path: issue.path,
181613
+ message: issue.message,
181614
+ params: { validationCode: issue.code }
181615
+ });
181616
+ }).transform((value) => value);
181617
+ }
181618
+ losslessValidatedSchema(themeSchema);
181619
+ //#endregion
181553
181620
  //#region ../api/src/siteOnboarding.ts
181554
181621
  const LAUNCH_REQUIREMENT_OVERRIDE_DEFINITIONS = { configure_appointments: {
181555
181622
  requirementId: "configure_appointments",