@thewhatmatters/wmds 0.4.29 → 0.4.31

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 (249) hide show
  1. package/CHANGELOG.md +65 -0
  2. package/CONSUMING.md +2 -1
  3. package/dist/components/atoms/Badge/Badge.js +1 -1
  4. package/dist/components/atoms/Badge/badgeStyles.d.ts +1 -1
  5. package/dist/components/atoms/Badge/badgeStyles.js +1 -1
  6. package/dist/components/atoms/Band/Band.d.ts +1 -1
  7. package/dist/components/atoms/Band/Band.d.ts.map +1 -1
  8. package/dist/components/atoms/Band/bandStyles.d.ts +4 -1
  9. package/dist/components/atoms/Band/bandStyles.d.ts.map +1 -1
  10. package/dist/components/atoms/Band/bandStyles.js +1 -1
  11. package/dist/components/atoms/Button/Button.d.ts +22 -4
  12. package/dist/components/atoms/Button/Button.d.ts.map +1 -1
  13. package/dist/components/atoms/Button/Button.js +132 -124
  14. package/dist/components/atoms/Button/buttonStyles.d.ts +3 -1
  15. package/dist/components/atoms/Button/buttonStyles.d.ts.map +1 -1
  16. package/dist/components/atoms/Button/buttonStyles.js +5 -4
  17. package/dist/components/atoms/IconButton/IconButton.d.ts +5 -0
  18. package/dist/components/atoms/IconButton/IconButton.d.ts.map +1 -1
  19. package/dist/components/atoms/IconButton/IconButton.js +4 -3
  20. package/dist/components/atoms/SectionCaption/SectionCaption.d.ts +5 -1
  21. package/dist/components/atoms/SectionCaption/SectionCaption.d.ts.map +1 -1
  22. package/dist/components/atoms/SectionCaption/SectionCaption.js +1 -1
  23. package/dist/components/atoms/TextLink/TextLink.d.ts +10 -2
  24. package/dist/components/atoms/TextLink/TextLink.d.ts.map +1 -1
  25. package/dist/components/atoms/TextLink/TextLink.js +18 -14
  26. package/dist/components/molecules/Accordion/Accordion.d.ts +9 -4
  27. package/dist/components/molecules/Accordion/Accordion.d.ts.map +1 -1
  28. package/dist/components/molecules/Accordion/Accordion.js +58 -51
  29. package/dist/components/molecules/Accordion/accordionStyles.d.ts +5 -0
  30. package/dist/components/molecules/Accordion/accordionStyles.d.ts.map +1 -1
  31. package/dist/components/molecules/Accordion/accordionStyles.js +5 -2
  32. package/dist/components/molecules/Breadcrumb/breadcrumbStyles.d.ts +5 -2
  33. package/dist/components/molecules/Breadcrumb/breadcrumbStyles.d.ts.map +1 -1
  34. package/dist/components/molecules/Breadcrumb/breadcrumbStyles.js +2 -2
  35. package/dist/components/molecules/Field/fieldStyles.d.ts +1 -1
  36. package/dist/components/molecules/Field/fieldStyles.js +1 -1
  37. package/dist/components/molecules/HeroIntro/HeroIntro.d.ts +22 -8
  38. package/dist/components/molecules/HeroIntro/HeroIntro.d.ts.map +1 -1
  39. package/dist/components/molecules/HeroIntro/HeroIntro.js +30 -18
  40. package/dist/components/molecules/HeroIntro/heroIntroStyles.d.ts +19 -3
  41. package/dist/components/molecules/HeroIntro/heroIntroStyles.d.ts.map +1 -1
  42. package/dist/components/molecules/HeroIntro/heroIntroStyles.js +2 -2
  43. package/dist/components/molecules/LinkTile/LinkTile.d.ts +6 -4
  44. package/dist/components/molecules/LinkTile/LinkTile.d.ts.map +1 -1
  45. package/dist/components/molecules/LinkTile/LinkTile.js +29 -29
  46. package/dist/components/molecules/PageHeader/PageHeader.d.ts +8 -1
  47. package/dist/components/molecules/PageHeader/PageHeader.d.ts.map +1 -1
  48. package/dist/components/molecules/PageHeader/PageHeader.js +19 -15
  49. package/dist/components/molecules/TileGrid/tileGridStyles.js +1 -1
  50. package/dist/components/organisms/Carousel/carouselStyles.js +3 -3
  51. package/dist/components/organisms/ChatDock/chatDockStyles.d.ts +4 -0
  52. package/dist/components/organisms/ChatDock/chatDockStyles.d.ts.map +1 -1
  53. package/dist/components/organisms/FooterReveal/FooterReveal.d.ts +4 -2
  54. package/dist/components/organisms/FooterReveal/FooterReveal.d.ts.map +1 -1
  55. package/dist/components/organisms/FooterReveal/FooterReveal.js +85 -85
  56. package/dist/components/organisms/FooterReveal/FooterRevealRuled.d.ts.map +1 -1
  57. package/dist/components/organisms/FooterReveal/FooterRevealRuled.js +49 -50
  58. package/dist/components/organisms/FooterReveal/footerRevealStyles.d.ts +9 -7
  59. package/dist/components/organisms/FooterReveal/footerRevealStyles.d.ts.map +1 -1
  60. package/dist/components/organisms/FooterReveal/footerRevealStyles.js +2 -9
  61. package/dist/components/organisms/IntakeConfirmation/intakeConfirmationStyles.d.ts +2 -1
  62. package/dist/components/organisms/IntakeConfirmation/intakeConfirmationStyles.d.ts.map +1 -1
  63. package/dist/components/organisms/IntakeConfirmation/intakeConfirmationStyles.js +1 -1
  64. package/dist/components/organisms/SiteNav/SiteNav.d.ts +17 -8
  65. package/dist/components/organisms/SiteNav/SiteNav.d.ts.map +1 -1
  66. package/dist/components/organisms/SiteNav/SiteNav.js +310 -256
  67. package/dist/components/organisms/SiteNav/siteNavStyles.d.ts +34 -6
  68. package/dist/components/organisms/SiteNav/siteNavStyles.d.ts.map +1 -1
  69. package/dist/components/organisms/SiteNav/siteNavStyles.js +3 -3
  70. package/dist/components/organisms/SiteNav/useSiteNavMobileMenu.d.ts +17 -0
  71. package/dist/components/organisms/SiteNav/useSiteNavMobileMenu.d.ts.map +1 -0
  72. package/dist/components/organisms/SiteNav/useSiteNavMobileMenu.js +47 -0
  73. package/dist/index.d.ts +2 -2
  74. package/dist/index.d.ts.map +1 -1
  75. package/dist/index.js +107 -107
  76. package/dist/lib/dialogOverlay.d.ts +8 -0
  77. package/dist/lib/dialogOverlay.d.ts.map +1 -1
  78. package/dist/lib/dialogOverlay.js +45 -26
  79. package/dist/lib/motion.d.ts +2 -1
  80. package/dist/lib/motion.d.ts.map +1 -1
  81. package/dist/lib/motion.js +1 -1
  82. package/dist/lib/typography.d.ts +2 -2
  83. package/dist/lib/typography.d.ts.map +1 -1
  84. package/dist/lib/typography.js +14 -3
  85. package/dist/styles.css +1 -1
  86. package/dist/typography.css +46 -11
  87. package/docs/components.md +6 -6
  88. package/docs/exports.json +3 -2
  89. package/docs/patterns/components-accordion--flush.tsx +1 -1
  90. package/docs/patterns/components-appshell--portal-dashboard-pattern.tsx +1 -1
  91. package/docs/patterns/components-avatar--dropdown-row.tsx +1 -1
  92. package/docs/patterns/components-badge--outline-tags.tsx +1 -1
  93. package/docs/patterns/components-badge--status-pill.tsx +1 -1
  94. package/docs/patterns/components-badge--with-avatar.tsx +1 -1
  95. package/docs/patterns/components-band--page-in-bands.tsx +1 -1
  96. package/docs/patterns/components-breadcrumb--editorial.tsx +1 -1
  97. package/docs/patterns/components-breadcrumb--long-path.tsx +1 -1
  98. package/docs/patterns/components-breadcrumb--path.tsx +1 -1
  99. package/docs/patterns/components-breadcrumb--router-links.tsx +1 -1
  100. package/docs/patterns/components-button-button--copy-button.tsx +1 -1
  101. package/docs/patterns/components-button-button--destructive-action.tsx +1 -1
  102. package/docs/patterns/components-button-button--external-link.tsx +1 -1
  103. package/docs/patterns/components-button-button--ghost-action.tsx +1 -1
  104. package/docs/patterns/components-button-button--inverse-action.tsx +1 -1
  105. package/docs/patterns/components-button-button--link-render.tsx +1 -1
  106. package/docs/patterns/components-button-button--multi-state-badge.tsx +1 -1
  107. package/docs/patterns/components-button-button--outline-mono.tsx +1 -1
  108. package/docs/patterns/components-button-button--primary-action.tsx +1 -1
  109. package/docs/patterns/components-button-button--row-hug.tsx +1 -1
  110. package/docs/patterns/components-button-button--row-layout.tsx +1 -1
  111. package/docs/patterns/components-button-button--secondary-action.tsx +1 -1
  112. package/docs/patterns/components-button-button--suggestion-pills.tsx +1 -1
  113. package/docs/patterns/components-button-button--with-count.tsx +1 -1
  114. package/docs/patterns/components-button-button--with-icon.tsx +1 -1
  115. package/docs/patterns/components-button-floatingactionbutton--vertical-actions.tsx +1 -1
  116. package/docs/patterns/components-calembed--pattern-skip-in-footer.tsx +1 -1
  117. package/docs/patterns/components-card-card--body-slot-occupancy-history.tsx +1 -1
  118. package/docs/patterns/components-card-card--headerless-media.tsx +1 -1
  119. package/docs/patterns/components-card-card--outlined-layout.tsx +1 -1
  120. package/docs/patterns/components-card-card--pinned-height.tsx +1 -1
  121. package/docs/patterns/components-card-card--terminal-frame.tsx +1 -1
  122. package/docs/patterns/components-card-selectablecard--selectable-cards-pattern.tsx +1 -1
  123. package/docs/patterns/components-carousel--image-carousel.tsx +1 -1
  124. package/docs/patterns/components-chart--audience-activity-heatmap.tsx +1 -1
  125. package/docs/patterns/components-chart--cartesian-no-data-gaps.tsx +1 -1
  126. package/docs/patterns/components-chart--occupancy-history-in-card.tsx +1 -1
  127. package/docs/patterns/components-chart--occupancy-in-card.tsx +1 -1
  128. package/docs/patterns/components-chart--post-reach-distribution.tsx +1 -1
  129. package/docs/patterns/components-chart--ranked-audience-breakdown.tsx +1 -1
  130. package/docs/patterns/components-chart--revenue-by-line.tsx +1 -1
  131. package/docs/patterns/components-chart--segmented-ring-pattern.tsx +1 -1
  132. package/docs/patterns/components-chart--unit-grid-composition.tsx +1 -1
  133. package/docs/patterns/components-chatdock--pattern-chat-dock.tsx +1 -1
  134. package/docs/patterns/components-chatdock--pattern-start-project-gate.tsx +1 -1
  135. package/docs/patterns/components-chatqa--pattern-qa-with-reply.tsx +1 -1
  136. package/docs/patterns/components-checkbox-checkbox--default.tsx +1 -1
  137. package/docs/patterns/components-checkbox-checkbox--with-count.tsx +1 -1
  138. package/docs/patterns/components-checkbox-checkbox--with-description.tsx +1 -1
  139. package/docs/patterns/components-checkbox-checkboxgroup--default.tsx +1 -1
  140. package/docs/patterns/components-checkbox-checkboxgroup--option-counts.tsx +1 -1
  141. package/docs/patterns/components-copyfield--clipboard-blocked.tsx +1 -1
  142. package/docs/patterns/components-copyfield--copied.tsx +1 -1
  143. package/docs/patterns/components-copyfield--copy-key.tsx +1 -1
  144. package/docs/patterns/components-copyfield--on-navy.tsx +1 -1
  145. package/docs/patterns/components-descriptionlist--details.tsx +1 -1
  146. package/docs/patterns/components-descriptionlist--post-metadata.tsx +1 -1
  147. package/docs/patterns/components-dialog--alert-dialog-destructive.tsx +1 -1
  148. package/docs/patterns/components-dialog--alert-dialog-typed-confirmation.tsx +1 -1
  149. package/docs/patterns/components-dialog--default-dialog.tsx +1 -1
  150. package/docs/patterns/components-dialog--form-dialog.tsx +1 -1
  151. package/docs/patterns/components-displaycontrols--page-utilities.tsx +1 -1
  152. package/docs/patterns/components-displaycontrols--theme-switch.tsx +1 -1
  153. package/docs/patterns/components-field--horizontal-input.tsx +1 -1
  154. package/docs/patterns/components-field--horizontal-text-area.tsx +1 -1
  155. package/docs/patterns/components-field--multi-control.tsx +1 -1
  156. package/docs/patterns/components-filterpanel--panel.tsx +1 -1
  157. package/docs/patterns/components-footerreveal--marketing-hero-pattern.tsx +6 -6
  158. package/docs/patterns/components-footerreveal--marketing-hero-ruled-pattern.tsx +2 -2
  159. package/docs/patterns/components-footerreveal--marketing-hero-with-gallery-intro.tsx +6 -6
  160. package/docs/patterns/components-footerreveal--marketing-page-pattern.tsx +5 -5
  161. package/docs/patterns/components-footerreveal--ruled-grid-footer-pattern.tsx +2 -2
  162. package/docs/patterns/components-footerreveal--sequenced-marketing-hero.tsx +5 -5
  163. package/docs/patterns/components-herointro--two-line-intro.tsx +3 -3
  164. package/docs/patterns/components-herointro--with-actions.tsx +22 -0
  165. package/docs/patterns/components-herotilestack--marketing-hero-pattern.tsx +3 -3
  166. package/docs/patterns/components-herotilestack--marketing-hero-text-sequence.tsx +2 -2
  167. package/docs/patterns/components-herotilestack--marketing-hero-with-gallery-intro.tsx +3 -3
  168. package/docs/patterns/components-indexlist--post-index.tsx +1 -1
  169. package/docs/patterns/components-intakeconfirmation--booked-pattern.tsx +1 -1
  170. package/docs/patterns/components-intakeconfirmation--emailed-pattern.tsx +1 -1
  171. package/docs/patterns/components-intakeform--about-you-pattern.tsx +1 -1
  172. package/docs/patterns/components-intakeform--short-form-pattern.tsx +1 -1
  173. package/docs/patterns/components-intakemodal--intake-modal-pattern.tsx +1 -1
  174. package/docs/patterns/components-kbd--command-row.tsx +1 -1
  175. package/docs/patterns/components-kbd--numbered-choices.tsx +1 -1
  176. package/docs/patterns/components-kbd--shortcut.tsx +1 -1
  177. package/docs/patterns/components-linktile--resource-tile.tsx +2 -2
  178. package/docs/patterns/components-linktile--router-link.tsx +1 -1
  179. package/docs/patterns/components-logview--detail-pane.tsx +1 -1
  180. package/docs/patterns/components-logview--log-viewer.tsx +1 -1
  181. package/docs/patterns/components-moremenu--action-menu.tsx +1 -1
  182. package/docs/patterns/components-moremenu--in-card-header.tsx +1 -1
  183. package/docs/patterns/components-navlist--app-sidebar.tsx +1 -1
  184. package/docs/patterns/components-navlist--side-nav-settings.tsx +1 -1
  185. package/docs/patterns/components-pageheader--app-header-pattern.tsx +1 -1
  186. package/docs/patterns/components-pageheader--page-section-header.tsx +1 -1
  187. package/docs/patterns/components-pageheader--toolbar-header.tsx +1 -1
  188. package/docs/patterns/components-panel--end-detail-rail.tsx +1 -1
  189. package/docs/patterns/components-pillgroup--pill-group-pattern.tsx +1 -1
  190. package/docs/patterns/components-promptbar--pattern-prompt-bar.tsx +1 -1
  191. package/docs/patterns/components-prose--article-body.tsx +1 -1
  192. package/docs/patterns/components-radio-radiogroup--default.tsx +1 -1
  193. package/docs/patterns/components-scrollhorizontal--project-gallery-pattern.tsx +1 -1
  194. package/docs/patterns/components-scrollhorizontal--with-intro.tsx +1 -1
  195. package/docs/patterns/components-sectioncaption--column-caption.tsx +1 -1
  196. package/docs/patterns/components-sectioncaption--with-action.tsx +1 -1
  197. package/docs/patterns/components-sheet--bottom-sheet.tsx +1 -1
  198. package/docs/patterns/components-sheet--end-sheet.tsx +1 -1
  199. package/docs/patterns/components-sheet--side-sheet-header-actions.tsx +1 -1
  200. package/docs/patterns/components-sheet--side-sheet-url-deep-link.tsx +1 -1
  201. package/docs/patterns/components-sheet--side-sheet.tsx +1 -1
  202. package/docs/patterns/components-sitenav--brand-and-cta.tsx +1 -1
  203. package/docs/patterns/components-sitenav--centered-links.tsx +1 -1
  204. package/docs/patterns/components-sitenav--compact.tsx +1 -1
  205. package/docs/patterns/components-sitenav--marketing-header.tsx +2 -1
  206. package/docs/patterns/components-sitenav--mega-menu.tsx +1 -1
  207. package/docs/patterns/components-stat--hero-stat.tsx +1 -1
  208. package/docs/patterns/components-stat--insights-row.tsx +1 -1
  209. package/docs/patterns/components-stepprogress--step-progress-pattern.tsx +1 -1
  210. package/docs/patterns/components-switch--default.tsx +1 -1
  211. package/docs/patterns/components-switch--settings-row.tsx +1 -1
  212. package/docs/patterns/components-tab--settings-pages.tsx +1 -1
  213. package/docs/patterns/components-table--approvals-with-sheet.tsx +1 -1
  214. package/docs/patterns/components-table--approvals.tsx +3 -3
  215. package/docs/patterns/components-table--basic.tsx +1 -1
  216. package/docs/patterns/components-taskrows--action-details.tsx +1 -1
  217. package/docs/patterns/components-taskrows--capsules.tsx +1 -1
  218. package/docs/patterns/components-taskrows--card-with-status-rows.tsx +1 -1
  219. package/docs/patterns/components-taskrows--controlled-expand.tsx +1 -1
  220. package/docs/patterns/components-taskrows--custom-slots.tsx +1 -1
  221. package/docs/patterns/components-taskrows--needs-you-table.tsx +1 -1
  222. package/docs/patterns/components-taskrows--status-list.tsx +1 -1
  223. package/docs/patterns/components-taskrows--tag-chips.tsx +1 -1
  224. package/docs/patterns/components-textarea--save-status.tsx +1 -1
  225. package/docs/patterns/components-textlink--external-destination.tsx +1 -1
  226. package/docs/patterns/components-textlink--inline-prose.tsx +1 -1
  227. package/docs/patterns/components-textlink--quiet-title.tsx +1 -1
  228. package/docs/patterns/components-textlink--supporting-copy.tsx +1 -1
  229. package/docs/patterns/components-textsequence--default.tsx +1 -1
  230. package/docs/patterns/components-textsequence--reduced-motion.tsx +1 -1
  231. package/docs/patterns/components-textsequence--shapes.tsx +2 -2
  232. package/docs/patterns/components-tilegrid--masonry.tsx +2 -2
  233. package/docs/patterns/components-toast--stacked-notifications.tsx +1 -1
  234. package/docs/patterns/components-tooltip--controlled.tsx +1 -1
  235. package/docs/patterns/components-tooltip--disabled-control.tsx +1 -1
  236. package/docs/patterns/components-tooltip--icon-action.tsx +1 -1
  237. package/docs/patterns/components-tooltip--keyboard-shortcut.tsx +1 -1
  238. package/docs/patterns/components-tooltip--placement.tsx +1 -1
  239. package/docs/patterns/foundations-scroll-fade--horizontal-rail.tsx +1 -1
  240. package/docs/patterns/foundations-scroll-fade--overflowing-list.tsx +1 -1
  241. package/docs/patterns/guides-chart-explorations--comparison-gallery.tsx +1 -1
  242. package/docs/patterns/guides-filter-panel--filtered-grid.tsx +4 -4
  243. package/docs/patterns/guides-filter-panel--filtered-index.tsx +3 -3
  244. package/docs/patterns/guides-overlay-flows--notification-preferences.tsx +1 -1
  245. package/docs/patterns/guides-post-page--post-page.tsx +3 -3
  246. package/docs/patterns/guides-profile-typography--editorial-profile.tsx +6 -6
  247. package/docs/patterns/guides-resource-detail--detail.tsx +2 -2
  248. package/docs/patterns/index.json +9 -1
  249. package/package.json +1 -1
@@ -3,35 +3,35 @@
3
3
  import { cn as e } from "../../../lib/cn.js";
4
4
  import { Button as t } from "../../atoms/Button/Button.js";
5
5
  import { footerRevealAt as n } from "./footerRevealAt.js";
6
- import { footerRevealBrandClasses as r, footerRevealBrandCopyClasses as i, footerRevealBrandHeadlineClasses as a, footerRevealContentClasses as o, footerRevealExternalLinkProps as s, footerRevealFadeClasses as c, footerRevealFieldClasses as l, footerRevealFieldContentClasses as u, footerRevealFieldGuideClasses as d, footerRevealFieldGuideFrameClasses as f, footerRevealFieldLinkClasses as p, footerRevealRootClasses as m, footerRevealRuledFieldClasses as h, footerRevealScaleClasses as g, footerRevealSocialLinkClasses as _, footerRevealSocialListClasses as v, footerRevealStickyClasses as y, footerRevealWordmarkClasses as b, footerRevealWordmarkFontSize as x, footerRevealWordmarkFrameClasses as S } from "./footerRevealStyles.js";
7
- import { syncFooterRevealWordmark as C } from "./footerRevealWordmark.js";
8
- import { FooterRevealRuled as w, footerRevealRuledEmailHref as T } from "./FooterRevealRuled.js";
9
- import { createContext as E, useContext as D, useLayoutEffect as O, useRef as k, useState as A, useSyncExternalStore as j } from "react";
10
- import { jsx as M, jsxs as N } from "react/jsx-runtime";
11
- import { MotionConfigContext as P, motion as F, useMotionTemplate as I, useScroll as L, useTransform as R } from "motion/react";
6
+ import { footerRevealBrandClasses as r, footerRevealBrandCopyClasses as i, footerRevealBrandHeadlineClasses as a, footerRevealContentClasses as o, footerRevealFadeClasses as s, footerRevealFieldClasses as c, footerRevealFieldContentClasses as l, footerRevealFieldGuideClasses as u, footerRevealFieldGuideFrameClasses as d, footerRevealFieldLinkClasses as f, footerRevealRootClasses as p, footerRevealRuledFieldClasses as m, footerRevealScaleClasses as h, footerRevealSocialLinkClasses as g, footerRevealSocialListClasses as _, footerRevealStickyClasses as v, footerRevealWordmarkClasses as y, footerRevealWordmarkFontSize as b, footerRevealWordmarkFrameClasses as x } from "./footerRevealStyles.js";
7
+ import { syncFooterRevealWordmark as S } from "./footerRevealWordmark.js";
8
+ import { FooterRevealRuled as C, footerRevealRuledEmailHref as w } from "./FooterRevealRuled.js";
9
+ import { createContext as T, useContext as E, useLayoutEffect as D, useRef as O, useState as k, useSyncExternalStore as A } from "react";
10
+ import { jsx as j, jsxs as M } from "react/jsx-runtime";
11
+ import { MotionConfigContext as N, motion as P, useMotionTemplate as F, useScroll as I, useTransform as L } from "motion/react";
12
12
  //#region src/components/organisms/FooterReveal/FooterReveal.tsx
13
- var z = E(null), B = "(prefers-reduced-motion: reduce)";
14
- function V(e) {
15
- let t = window.matchMedia(B);
13
+ var R = T(null), z = "(prefers-reduced-motion: reduce)";
14
+ function B(e) {
15
+ let t = window.matchMedia(z);
16
16
  return t.addEventListener("change", e), () => t.removeEventListener("change", e);
17
17
  }
18
- function H() {
19
- return window.matchMedia(B).matches;
18
+ function V() {
19
+ return window.matchMedia(z).matches;
20
20
  }
21
- function U() {
22
- return j(V, H, () => !0);
21
+ function H() {
22
+ return A(B, V, () => !0);
23
23
  }
24
- function W(e) {
25
- let t = D(z);
24
+ function U(e) {
25
+ let t = E(R);
26
26
  if (!t) throw Error(`${e} must be rendered inside FooterReveal.`);
27
27
  return t;
28
28
  }
29
- function G() {
30
- return W("useFooterRevealProgress").reveal;
29
+ function W() {
30
+ return U("useFooterRevealProgress").reveal;
31
31
  }
32
- function K({ children: t, className: r }) {
33
- let i = k(null), a = k(null), [o, s] = A(.35), { reducedMotion: c } = D(P), l = U() || c === "always";
34
- O(() => {
32
+ function G({ children: t, className: r }) {
33
+ let i = O(null), a = O(null), [o, s] = k(.35), { reducedMotion: c } = E(N), l = H() || c === "always";
34
+ D(() => {
35
35
  let e = a.current;
36
36
  if (!e || typeof ResizeObserver > "u") return;
37
37
  let t = () => {
@@ -43,104 +43,104 @@ function K({ children: t, className: r }) {
43
43
  r.disconnect(), window.removeEventListener("resize", t);
44
44
  };
45
45
  }, []);
46
- let { scrollYProgress: u } = L({
46
+ let { scrollYProgress: u } = I({
47
47
  target: i,
48
48
  offset: ["end end", "end start"]
49
- }), d = R(u, [0, o], [0, 1]), f = R(d, (e) => l ? 1 : e), p = R(u, [0, o], l ? [1, 1] : [.9, 1]), h = R(u, [0, o], l ? [0, 0] : [12, 0]), g = {
49
+ }), d = L(u, [0, o], [0, 1]), f = L(d, (e) => l ? 1 : e), m = L(u, [0, o], l ? [1, 1] : [.9, 1]), h = L(u, [0, o], l ? [0, 0] : [12, 0]), g = {
50
50
  reveal: f,
51
51
  reduceMotion: l,
52
52
  contentRef: i,
53
53
  footerRef: a,
54
- scale: p,
55
- filter: I`blur(${h}px)`,
56
- opacityWillChange: R(u, (e) => !l && e > 1e-4 && e < o ? "opacity" : "auto"),
57
- contentWillChange: R(u, (e) => !l && e > 1e-4 && e < o ? "transform, filter" : "auto")
54
+ scale: m,
55
+ filter: F`blur(${h}px)`,
56
+ opacityWillChange: L(u, (e) => !l && e > 1e-4 && e < o ? "opacity" : "auto"),
57
+ contentWillChange: L(u, (e) => !l && e > 1e-4 && e < o ? "transform, filter" : "auto")
58
58
  };
59
- return /* @__PURE__ */ M(z.Provider, {
59
+ return /* @__PURE__ */ j(R.Provider, {
60
60
  value: g,
61
- children: /* @__PURE__ */ M("div", {
62
- className: e(m, r),
61
+ children: /* @__PURE__ */ j("div", {
62
+ className: e(p, r),
63
63
  "data-footer-reveal": "root",
64
64
  children: t
65
65
  })
66
66
  });
67
67
  }
68
- function q({ children: t, className: n }) {
69
- let { contentRef: r } = W("FooterReveal.Content");
70
- return /* @__PURE__ */ M("div", {
68
+ function K({ children: t, className: n }) {
69
+ let { contentRef: r } = U("FooterReveal.Content");
70
+ return /* @__PURE__ */ j("div", {
71
71
  ref: r,
72
72
  className: e(o, n),
73
73
  "data-footer-reveal": "content",
74
74
  children: t
75
75
  });
76
76
  }
77
- function J({ children: e }) {
78
- return /* @__PURE__ */ N("div", {
77
+ function q({ children: e }) {
78
+ return /* @__PURE__ */ M("div", {
79
79
  className: "relative",
80
- children: [/* @__PURE__ */ M("div", {
81
- className: d,
80
+ children: [/* @__PURE__ */ j("div", {
81
+ className: u,
82
82
  "data-footer-reveal": "guides",
83
83
  "aria-hidden": "true",
84
- children: /* @__PURE__ */ M("div", {
85
- className: f,
86
- children: /* @__PURE__ */ M("div", { className: "grid-guides-cols" })
84
+ children: /* @__PURE__ */ j("div", {
85
+ className: d,
86
+ children: /* @__PURE__ */ j("div", { className: "grid-guides-cols" })
87
87
  })
88
- }), /* @__PURE__ */ M("div", {
89
- className: u,
88
+ }), /* @__PURE__ */ j("div", {
89
+ className: l,
90
90
  "data-footer-reveal": "field",
91
91
  children: e
92
92
  })]
93
93
  });
94
94
  }
95
- function Y({ children: t, className: n }) {
96
- let { footerRef: r, reveal: i, reduceMotion: a, scale: o, filter: s, opacityWillChange: l, contentWillChange: u } = W("FooterReveal.Footer");
97
- return /* @__PURE__ */ M("footer", {
95
+ function J({ children: t, className: n }) {
96
+ let { footerRef: r, reveal: i, reduceMotion: a, scale: o, filter: c, opacityWillChange: l, contentWillChange: u } = U("FooterReveal.Footer");
97
+ return /* @__PURE__ */ j("footer", {
98
98
  ref: r,
99
- className: y,
99
+ className: v,
100
100
  "data-footer-reveal": "sticky",
101
- children: a ? /* @__PURE__ */ M("div", {
102
- className: e(c, n),
101
+ children: a ? /* @__PURE__ */ j("div", {
102
+ className: e(s, n),
103
103
  style: { opacity: 1 },
104
104
  "data-footer-reveal": "fade",
105
- children: /* @__PURE__ */ M("div", {
106
- className: g,
105
+ children: /* @__PURE__ */ j("div", {
106
+ className: h,
107
107
  style: {
108
108
  transform: "none",
109
109
  filter: "none",
110
110
  transformOrigin: "50% 100%"
111
111
  },
112
112
  "data-footer-reveal": "scale",
113
- children: /* @__PURE__ */ M(J, { children: t })
113
+ children: /* @__PURE__ */ j(q, { children: t })
114
114
  })
115
- }) : /* @__PURE__ */ M(F.div, {
116
- className: e(c, n),
115
+ }) : /* @__PURE__ */ j(P.div, {
116
+ className: e(s, n),
117
117
  style: {
118
118
  opacity: i,
119
119
  willChange: l
120
120
  },
121
121
  "data-footer-reveal": "fade",
122
- children: /* @__PURE__ */ M(F.div, {
123
- className: g,
122
+ children: /* @__PURE__ */ j(P.div, {
123
+ className: h,
124
124
  style: {
125
125
  scale: o,
126
- filter: s,
126
+ filter: c,
127
127
  transformOrigin: "50% 100%",
128
128
  willChange: u
129
129
  },
130
130
  "data-footer-reveal": "scale",
131
- children: /* @__PURE__ */ M(J, { children: t })
131
+ children: /* @__PURE__ */ j(q, { children: t })
132
132
  })
133
133
  })
134
134
  });
135
135
  }
136
- function X({ text: e }) {
137
- let t = k(null), n = k(null);
138
- return O(() => {
136
+ function Y({ text: e }) {
137
+ let t = O(null), n = O(null);
138
+ return D(() => {
139
139
  let e = t.current, r = n.current;
140
140
  if (!e || !r) return;
141
141
  let i = -1, a = () => {
142
142
  let t = e.clientWidth;
143
- t <= 0 || Math.abs(t - i) < .5 && e.style.getPropertyValue("--footer-wordmark-em") || (i = t, C(r, e));
143
+ t <= 0 || Math.abs(t - i) < .5 && e.style.getPropertyValue("--footer-wordmark-em") || (i = t, S(r, e));
144
144
  };
145
145
  a();
146
146
  let o = typeof ResizeObserver > "u" ? null : new ResizeObserver(() => {
@@ -153,56 +153,56 @@ function X({ text: e }) {
153
153
  return s?.addEventListener?.("loadingdone", c), s?.ready && s.ready.then(c).catch(() => {}), () => {
154
154
  o?.disconnect(), s?.removeEventListener?.("loadingdone", c);
155
155
  };
156
- }, [e]), /* @__PURE__ */ M("div", {
156
+ }, [e]), /* @__PURE__ */ j("div", {
157
157
  ref: t,
158
- className: S,
158
+ className: x,
159
159
  "data-footer-reveal": "wordmark-frame",
160
- children: /* @__PURE__ */ M("p", {
160
+ children: /* @__PURE__ */ j("p", {
161
161
  ref: n,
162
- className: b,
163
- style: { fontSize: x },
162
+ className: y,
163
+ style: { fontSize: b },
164
164
  "aria-hidden": "true",
165
165
  "data-footer-reveal": "wordmark",
166
166
  children: e
167
167
  })
168
168
  });
169
169
  }
170
- function Z({ headline: n, ctaLabel: o, onCtaClick: c, ctaHref: l, wordmark: u, socialLinks: d = [], className: f }) {
171
- return /* @__PURE__ */ N("div", {
172
- className: e(r, f),
173
- children: [/* @__PURE__ */ N("div", {
170
+ function X({ headline: n, ctaLabel: o, onCtaClick: s, ctaHref: c, wordmark: l, socialLinks: u = [], className: d }) {
171
+ return /* @__PURE__ */ M("div", {
172
+ className: e(r, d),
173
+ children: [/* @__PURE__ */ M("div", {
174
174
  className: i,
175
175
  children: [
176
- /* @__PURE__ */ M("h2", {
176
+ /* @__PURE__ */ j("h2", {
177
177
  className: a,
178
178
  children: n
179
179
  }),
180
- /* @__PURE__ */ M(t, {
180
+ /* @__PURE__ */ j(t, {
181
181
  role: "inverse",
182
182
  size: "lg",
183
183
  type: "button",
184
- onClick: c,
185
- render: l ? /* @__PURE__ */ M("a", { href: l }) : void 0,
184
+ onClick: s,
185
+ render: c ? /* @__PURE__ */ j("a", { href: c }) : void 0,
186
186
  children: o
187
187
  }),
188
- d.length > 0 ? /* @__PURE__ */ M("ul", {
189
- className: v,
190
- children: d.map((e) => /* @__PURE__ */ M("li", { children: /* @__PURE__ */ M("a", {
188
+ u.length > 0 ? /* @__PURE__ */ j("ul", {
189
+ className: _,
190
+ children: u.map((e) => /* @__PURE__ */ j("li", { children: /* @__PURE__ */ j("a", {
191
191
  href: e.href,
192
- className: _,
193
- ...s(e.href),
192
+ className: g,
193
+ "aria-label": e.ariaLabel,
194
194
  children: e.label
195
195
  }) }, e.label))
196
196
  }) : null
197
197
  ]
198
- }), /* @__PURE__ */ M(X, { text: u })]
198
+ }), /* @__PURE__ */ j(Y, { text: l })]
199
199
  });
200
200
  }
201
- var Q = Object.assign(K, {
202
- Content: q,
203
- Footer: Y,
204
- Brand: Z,
205
- Ruled: w
201
+ var Z = Object.assign(G, {
202
+ Content: K,
203
+ Footer: J,
204
+ Brand: X,
205
+ Ruled: C
206
206
  });
207
207
  //#endregion
208
- export { Q as FooterReveal, l as footerRevealFieldClasses, p as footerRevealFieldLinkClasses, T as footerRevealRuledEmailHref, h as footerRevealRuledFieldClasses, G as useFooterRevealProgress };
208
+ export { Z as FooterReveal, c as footerRevealFieldClasses, f as footerRevealFieldLinkClasses, w as footerRevealRuledEmailHref, m as footerRevealRuledFieldClasses, W as useFooterRevealProgress };
@@ -1 +1 @@
1
- {"version":3,"file":"FooterRevealRuled.d.ts","sourceRoot":"","sources":["../../../../src/components/organisms/FooterReveal/FooterRevealRuled.tsx"],"names":[],"mappings":"AAwBA,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;GAGG;AACH,MAAM,WAAW,sBAAsB;IACrC,wEAAwE;IACxE,QAAQ,EAAE,MAAM,CAAC;IACjB,uFAAuF;IACvF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,sGAAsG;IACtG,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,+DAA+D;IAC/D,KAAK,CAAC,EAAE,SAAS,qBAAqB,EAAE,CAAC;IACzC,6EAA6E;IAC7E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,0CAA0C;IAC1C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oEAAoE;IACpE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,qCAAqC;IACrC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,uDAAuD;AACvD,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAGpF;AAkFD;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAAC,EAChC,QAAQ,EACR,SAAS,EACT,IAAI,EACJ,KAAU,EACV,KAAK,EACL,SAAS,EACT,MAAM,EACN,SAAS,GACV,EAAE,sBAAsB,+BAwDxB"}
1
+ {"version":3,"file":"FooterRevealRuled.d.ts","sourceRoot":"","sources":["../../../../src/components/organisms/FooterReveal/FooterRevealRuled.tsx"],"names":[],"mappings":"AAwBA,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;GAGG;AACH,MAAM,WAAW,sBAAsB;IACrC,wEAAwE;IACxE,QAAQ,EAAE,MAAM,CAAC;IACjB,uFAAuF;IACvF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,sGAAsG;IACtG,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,+DAA+D;IAC/D,KAAK,CAAC,EAAE,SAAS,qBAAqB,EAAE,CAAC;IACzC,6EAA6E;IAC7E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,0CAA0C;IAC1C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oEAAoE;IACpE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,qCAAqC;IACrC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,uDAAuD;AACvD,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAGpF;AAkFD;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAAC,EAChC,QAAQ,EACR,SAAS,EACT,IAAI,EACJ,KAAU,EACV,KAAK,EACL,SAAS,EACT,MAAM,EACN,SAAS,GACV,EAAE,sBAAsB,+BAuDxB"}
@@ -2,22 +2,22 @@
2
2
  "use client";
3
3
  import { cn as e } from "../../../lib/cn.js";
4
4
  import { TextLink as t } from "../../atoms/TextLink/TextLink.js";
5
- import { footerRevealExternalLinkProps as n, footerRevealRuledContactClasses as r, footerRevealRuledCopyrightClasses as i, footerRevealRuledCreditClasses as a, footerRevealRuledCreditCopyClasses as o, footerRevealRuledEmailClasses as s, footerRevealRuledIdentityClasses as c, footerRevealRuledLinkListClasses as l, footerRevealRuledLinksClasses as u, footerRevealRuledMarkClasses as d, footerRevealRuledMetaClasses as f, footerRevealRuledNavLinkClasses as p, footerRevealRuledRootClasses as m, footerRevealRuledWordmarkClasses as h, footerRevealRuledWordmarkFrameClasses as g, footerRevealWordmarkFontSize as _ } from "./footerRevealStyles.js";
6
- import { syncFooterRevealWordmark as v } from "./footerRevealWordmark.js";
7
- import { useLayoutEffect as y, useRef as b } from "react";
8
- import { jsx as x, jsxs as S } from "react/jsx-runtime";
5
+ import { footerRevealRuledContactClasses as n, footerRevealRuledCopyrightClasses as r, footerRevealRuledCreditClasses as i, footerRevealRuledCreditCopyClasses as a, footerRevealRuledEmailClasses as o, footerRevealRuledIdentityClasses as s, footerRevealRuledLinkListClasses as c, footerRevealRuledLinksClasses as l, footerRevealRuledMarkClasses as u, footerRevealRuledMetaClasses as d, footerRevealRuledNavLinkClasses as f, footerRevealRuledRootClasses as p, footerRevealRuledWordmarkClasses as m, footerRevealRuledWordmarkFrameClasses as h, footerRevealWordmarkFontSize as g } from "./footerRevealStyles.js";
6
+ import { syncFooterRevealWordmark as _ } from "./footerRevealWordmark.js";
7
+ import { useLayoutEffect as v, useRef as y } from "react";
8
+ import { jsx as b, jsxs as x } from "react/jsx-runtime";
9
9
  //#region src/components/organisms/FooterReveal/FooterRevealRuled.tsx
10
- function C(e, t) {
10
+ function S(e, t) {
11
11
  return t || `mailto:${e}`;
12
12
  }
13
- function w(e) {
14
- let t = b(null), n = b(null);
15
- return y(() => {
13
+ function C(e) {
14
+ let t = y(null), n = y(null);
15
+ return v(() => {
16
16
  let e = t.current, r = n.current;
17
17
  if (!e || !r) return;
18
18
  let i = -1, a = () => {
19
19
  let t = e.clientWidth;
20
- t <= 0 || Math.abs(t - i) < .5 && e.style.getPropertyValue("--footer-wordmark-em") || (i = t, v(r, e));
20
+ t <= 0 || Math.abs(t - i) < .5 && e.style.getPropertyValue("--footer-wordmark-em") || (i = t, _(r, e));
21
21
  };
22
22
  a();
23
23
  let o = typeof ResizeObserver > "u" ? null : new ResizeObserver(() => {
@@ -35,80 +35,79 @@ function w(e) {
35
35
  textRef: n
36
36
  };
37
37
  }
38
- function T({ text: e, frameClassName: t, textClassName: n, slot: r }) {
39
- let { frameRef: i, textRef: a } = w(e);
40
- return /* @__PURE__ */ x("div", {
38
+ function w({ text: e, frameClassName: t, textClassName: n, slot: r }) {
39
+ let { frameRef: i, textRef: a } = C(e);
40
+ return /* @__PURE__ */ b("div", {
41
41
  ref: i,
42
42
  className: t,
43
43
  "data-footer-ruled": `${r}-frame`,
44
- children: /* @__PURE__ */ x("p", {
44
+ children: /* @__PURE__ */ b("p", {
45
45
  ref: a,
46
46
  className: n,
47
- style: { fontSize: _ },
47
+ style: { fontSize: g },
48
48
  "aria-hidden": "true",
49
49
  "data-footer-ruled": r,
50
50
  children: e
51
51
  })
52
52
  });
53
53
  }
54
- function E({ wordmark: _, copyright: v, mark: y, links: b = [], email: w, emailHref: E, credit: D, className: O }) {
55
- let k = w ? C(w, E) : void 0;
56
- return /* @__PURE__ */ S("div", {
57
- className: e(m, O),
54
+ function T({ wordmark: g, copyright: _, mark: v, links: y = [], email: C, emailHref: T, credit: E, className: D }) {
55
+ let O = C ? S(C, T) : void 0;
56
+ return /* @__PURE__ */ x("div", {
57
+ className: e(p, D),
58
58
  "data-footer-ruled": "root",
59
59
  children: [
60
- b.length > 0 ? /* @__PURE__ */ x("nav", {
60
+ y.length > 0 ? /* @__PURE__ */ b("nav", {
61
61
  "aria-label": "Footer",
62
- className: u,
62
+ className: l,
63
63
  "data-footer-ruled": "links",
64
- children: /* @__PURE__ */ x("ul", {
65
- className: l,
66
- children: b.map((e) => /* @__PURE__ */ x("li", { children: /* @__PURE__ */ x(t, {
64
+ children: /* @__PURE__ */ b("ul", {
65
+ className: c,
66
+ children: y.map((e) => /* @__PURE__ */ b("li", { children: /* @__PURE__ */ b(t, {
67
67
  href: e.href,
68
68
  external: /^https?:\/\//i.test(e.href),
69
- className: p,
69
+ className: f,
70
70
  children: e.label
71
71
  }) }, e.href))
72
72
  })
73
73
  }) : null,
74
- /* @__PURE__ */ x(T, {
75
- text: _,
76
- frameClassName: g,
77
- textClassName: h,
74
+ /* @__PURE__ */ b(w, {
75
+ text: g,
76
+ frameClassName: h,
77
+ textClassName: m,
78
78
  slot: "wordmark"
79
79
  }),
80
- /* @__PURE__ */ S("div", {
81
- className: f,
80
+ /* @__PURE__ */ x("div", {
81
+ className: d,
82
82
  "data-footer-ruled": "meta",
83
83
  children: [
84
- /* @__PURE__ */ S("div", {
85
- className: c,
84
+ /* @__PURE__ */ x("div", {
85
+ className: s,
86
86
  "data-footer-ruled": "identity",
87
- children: [y ? /* @__PURE__ */ x("span", {
88
- className: d,
87
+ children: [v ? /* @__PURE__ */ b("span", {
88
+ className: u,
89
89
  "aria-hidden": "true",
90
- children: y
91
- }) : null, v ? /* @__PURE__ */ x("p", {
92
- className: i,
93
90
  children: v
91
+ }) : null, _ ? /* @__PURE__ */ b("p", {
92
+ className: r,
93
+ children: _
94
94
  }) : null]
95
95
  }),
96
- /* @__PURE__ */ x("div", {
97
- className: r,
96
+ /* @__PURE__ */ b("div", {
97
+ className: n,
98
98
  "data-footer-ruled": "contact",
99
- children: w && k ? /* @__PURE__ */ x("a", {
100
- href: k,
101
- className: s,
102
- ...n(k),
103
- children: w
99
+ children: C && O ? /* @__PURE__ */ b("a", {
100
+ href: O,
101
+ className: o,
102
+ children: C
104
103
  }) : null
105
104
  }),
106
- /* @__PURE__ */ x("div", {
107
- className: a,
105
+ /* @__PURE__ */ b("div", {
106
+ className: i,
108
107
  "data-footer-ruled": "credit",
109
- children: D ? /* @__PURE__ */ x("p", {
110
- className: o,
111
- children: D
108
+ children: E ? /* @__PURE__ */ b("p", {
109
+ className: a,
110
+ children: E
112
111
  }) : null
113
112
  })
114
113
  ]
@@ -117,4 +116,4 @@ function E({ wordmark: _, copyright: v, mark: y, links: b = [], email: w, emailH
117
116
  });
118
117
  }
119
118
  //#endregion
120
- export { E as FooterRevealRuled, C as footerRevealRuledEmailHref };
119
+ export { T as FooterRevealRuled, S as footerRevealRuledEmailHref };
@@ -44,9 +44,16 @@ export declare const footerRevealFieldGuideFrameClasses = "pointer-events-none a
44
44
  /** Footer type and controls. Above the field guides. */
45
45
  export declare const footerRevealFieldContentClasses = "footer-reveal-field-content relative z-[1]";
46
46
  export declare const footerRevealBrandCopyClasses = "relative z-[1] flex w-full max-w-4xl flex-col items-center gap-10";
47
- export declare const footerRevealBrandHeadlineClasses = "type-display-1 text-balance text-on-brand";
47
+ /**
48
+ * The headline is a heading step, not display: the fitted wordmark is the footer's one display moment
49
+ * (Display rule D9). The wordmark is a logo graphic, exempt from D1/D2, and hidden from screen readers.
50
+ */
51
+ export declare const footerRevealBrandHeadlineClasses = "type-heading-1 text-balance text-on-brand";
48
52
  export declare const footerRevealSocialListClasses = "m-0 flex list-none flex-wrap items-center justify-center gap-x-8 gap-y-3 p-0";
49
- /** Heading-1 (24px) so the row clears large-text AA on brand, with the field underline. */
53
+ /**
54
+ * Heading-1 (24px) so the row clears large-text AA on brand, with the field underline. At least 24px wide, so a
55
+ * one-letter label (X) is still a 24px target, and 24px tall at the tight leading (Links K6, WCAG 2.5.8).
56
+ */
50
57
  export declare const footerRevealSocialLinkClasses: string;
51
58
  /**
52
59
  * Full-bleed wordmark frame. Inline-size container for the wordmark's `cqi`
@@ -71,11 +78,6 @@ export declare const footerRevealWordmarkFontSize = "calc(100cqi / var(--footer-
71
78
  * stays visible; 20% white sinks into `#011272`.
72
79
  */
73
80
  export declare const footerRevealWordmarkClasses: string;
74
- /** `https` links open in a new tab. Hash placeholders stay in the page. */
75
- export declare function footerRevealExternalLinkProps(href: string): {
76
- target?: "_blank";
77
- rel?: "noopener";
78
- };
79
81
  /**
80
82
  * Cream field with brand ink. Page background (`bg-body`) and `--color-brand`
81
83
  * (`#011272`). Dark theme repaints this class to `--color-on-brand` — brand
@@ -1 +1 @@
1
- {"version":3,"file":"footerRevealStyles.d.ts","sourceRoot":"","sources":["../../../../src/components/organisms/FooterReveal/footerRevealStyles.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,wFAAwF;AACxF,eAAO,MAAM,uBAAuB,wDAAwD,CAAC;AAE7F,yFAAyF;AACzF,eAAO,MAAM,0BAA0B,wEACgC,CAAC;AAExE;;;GAGG;AACH,eAAO,MAAM,yBAAyB,oFAC6C,CAAC;AAEpF,gFAAgF;AAChF,eAAO,MAAM,uBAAuB,sCAAsC,CAAC;AAE3E,8EAA8E;AAC9E,eAAO,MAAM,wBAAwB,sBAAsB,CAAC;AAE5D;;;GAGG;AACH,eAAO,MAAM,wBAAwB,2BAA2B,CAAC;AAEjE;;;GAGG;AACH,eAAO,MAAM,4BAA4B,QAIN,CAAC;AAEpC,wFAAwF;AACxF,eAAO,MAAM,wBAAwB,QAEkB,CAAC;AAExD;;;GAGG;AACH,eAAO,MAAM,6BAA6B,yEAC8B,CAAC;AAEzE,+EAA+E;AAC/E,eAAO,MAAM,kCAAkC,gGACgD,CAAC;AAEhG,wDAAwD;AACxD,eAAO,MAAM,+BAA+B,+CAA+C,CAAC;AAE5F,eAAO,MAAM,4BAA4B,sEAC4B,CAAC;AAEtE,eAAO,MAAM,gCAAgC,8CAA8C,CAAC;AAE5F,eAAO,MAAM,6BAA6B,iFACsC,CAAC;AAEjF,2FAA2F;AAC3F,eAAO,MAAM,6BAA6B,QAAmD,CAAC;AAE9F;;;;GAIG;AACH,eAAO,MAAM,gCAAgC,8FACgD,CAAC;AAE9F;;;GAGG;AACH,eAAO,MAAM,8BAA8B,IAAI,CAAC;AAEhD;;;;GAIG;AACH,eAAO,MAAM,4BAA4B,gDACsC,CAAC;AAEhF;;;;GAIG;AACH,eAAO,MAAM,2BAA2B,QAGrB,CAAC;AAEpB,2EAA2E;AAC3E,wBAAgB,6BAA6B,CAC3C,IAAI,EAAE,MAAM,GACX;IAAE,MAAM,CAAC,EAAE,QAAQ,CAAC;IAAC,GAAG,CAAC,EAAE,UAAU,CAAA;CAAE,CAGzC;AAED;;;;GAIG;AACH;;;GAGG;AACH,eAAO,MAAM,6BAA6B,+DACoB,CAAC;AAE/D;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,4BAA4B,QAEyD,CAAC;AAEnG,uFAAuF;AACvF,eAAO,MAAM,6BAA6B,+DACoB,CAAC;AAE/D;;;;;GAKG;AACH,eAAO,MAAM,gCAAgC,QAEqB,CAAC;AAEnE;;;;GAIG;AACH,eAAO,MAAM,+BAA+B,gBAAgB,CAAC;AAE7D;;;GAGG;AACH,eAAO,MAAM,4BAA4B,uGAC6D,CAAC;AAEvG,eAAO,MAAM,gCAAgC,oEACsB,CAAC;AAEpE,eAAO,MAAM,iCAAiC,uCAAuC,CAAC;AAEtF,4EAA4E;AAC5E,eAAO,MAAM,4BAA4B,8GACoE,CAAC;AAE9G,eAAO,MAAM,+BAA+B,gCAAgC,CAAC;AAE7E,eAAO,MAAM,6BAA6B,QAEO,CAAC;AAElD;;;;GAIG;AACH,eAAO,MAAM,qCAAqC,+GAC4D,CAAC;AAE/G,mFAAmF;AACnF,eAAO,MAAM,gCAAgC,4HAC8E,CAAC;AAE5H,eAAO,MAAM,8BAA8B,+CAA+C,CAAC;AAE3F,eAAO,MAAM,kCAAkC,iIACiF,CAAC"}
1
+ {"version":3,"file":"footerRevealStyles.d.ts","sourceRoot":"","sources":["../../../../src/components/organisms/FooterReveal/footerRevealStyles.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,wFAAwF;AACxF,eAAO,MAAM,uBAAuB,wDAAwD,CAAC;AAE7F,yFAAyF;AACzF,eAAO,MAAM,0BAA0B,wEACgC,CAAC;AAExE;;;GAGG;AACH,eAAO,MAAM,yBAAyB,oFAC6C,CAAC;AAEpF,gFAAgF;AAChF,eAAO,MAAM,uBAAuB,sCAAsC,CAAC;AAE3E,8EAA8E;AAC9E,eAAO,MAAM,wBAAwB,sBAAsB,CAAC;AAE5D;;;GAGG;AACH,eAAO,MAAM,wBAAwB,2BAA2B,CAAC;AAEjE;;;GAGG;AACH,eAAO,MAAM,4BAA4B,QAIN,CAAC;AAEpC,wFAAwF;AACxF,eAAO,MAAM,wBAAwB,QAEkB,CAAC;AAExD;;;GAGG;AACH,eAAO,MAAM,6BAA6B,yEAC8B,CAAC;AAEzE,+EAA+E;AAC/E,eAAO,MAAM,kCAAkC,gGACgD,CAAC;AAEhG,wDAAwD;AACxD,eAAO,MAAM,+BAA+B,+CAA+C,CAAC;AAE5F,eAAO,MAAM,4BAA4B,sEAC4B,CAAC;AAEtE;;;GAGG;AACH,eAAO,MAAM,gCAAgC,8CAA8C,CAAC;AAE5F,eAAO,MAAM,6BAA6B,iFACsC,CAAC;AAEjF;;;GAGG;AACH,eAAO,MAAM,6BAA6B,QAAsG,CAAC;AAEjJ;;;;GAIG;AACH,eAAO,MAAM,gCAAgC,8FACgD,CAAC;AAE9F;;;GAGG;AACH,eAAO,MAAM,8BAA8B,IAAI,CAAC;AAEhD;;;;GAIG;AACH,eAAO,MAAM,4BAA4B,gDACsC,CAAC;AAEhF;;;;GAIG;AACH,eAAO,MAAM,2BAA2B,QAGrB,CAAC;AAGpB;;;;GAIG;AACH;;;GAGG;AACH,eAAO,MAAM,6BAA6B,+DACoB,CAAC;AAE/D;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,4BAA4B,QAEyD,CAAC;AAEnG,uFAAuF;AACvF,eAAO,MAAM,6BAA6B,+DACoB,CAAC;AAE/D;;;;;GAKG;AACH,eAAO,MAAM,gCAAgC,QAEqB,CAAC;AAEnE;;;;GAIG;AACH,eAAO,MAAM,+BAA+B,gBAAgB,CAAC;AAE7D;;;GAGG;AACH,eAAO,MAAM,4BAA4B,uGAC6D,CAAC;AAEvG,eAAO,MAAM,gCAAgC,oEACsB,CAAC;AAEpE,eAAO,MAAM,iCAAiC,uCAAuC,CAAC;AAEtF,4EAA4E;AAC5E,eAAO,MAAM,4BAA4B,8GACoE,CAAC;AAE9G,eAAO,MAAM,+BAA+B,gCAAgC,CAAC;AAE7E,eAAO,MAAM,6BAA6B,QAEO,CAAC;AAElD;;;;GAIG;AACH,eAAO,MAAM,qCAAqC,+GAC4D,CAAC;AAE/G,mFAAmF;AACnF,eAAO,MAAM,gCAAgC,4HAC8E,CAAC;AAE5H,eAAO,MAAM,8BAA8B,+CAA+C,CAAC;AAE3F,eAAO,MAAM,kCAAkC,iIACiF,CAAC"}
@@ -1,12 +1,5 @@
1
1
  "use client";
2
2
  //#region src/components/organisms/FooterReveal/footerRevealStyles.ts
3
- var e = "relative isolate w-full max-w-full overflow-visible", t = "relative z-[1] min-h-dvh w-full max-w-full overflow-visible bg-body", n = "sticky bottom-0 z-[-1] m-0 w-full max-w-full overflow-x-clip bg-transparent p-0", r = "w-full max-w-full overflow-x-clip", i = "w-full max-w-full", a = "bg-brand text-on-brand", o = "text-inherit underline decoration-solid underline-offset-[0.18em] hover:decoration-current focus-visible:rounded-sm focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-on-brand focus-visible:ring-offset-2 focus-visible:ring-offset-brand", s = "relative flex min-h-dvh w-full max-w-full flex-col items-center justify-center overflow-hidden px-[var(--grid-margin)] pb-[18vw] pt-24 text-center", c = "footer-reveal-guides pointer-events-none absolute inset-0 z-0 hidden", l = "pointer-events-none absolute inset-y-0 right-0 left-0 mx-auto w-[min(100%,var(--grid-max))]", u = "footer-reveal-field-content relative z-[1]", d = "relative z-[1] flex w-full max-w-4xl flex-col items-center gap-10", f = "type-display-1 text-balance text-on-brand", p = "m-0 flex list-none flex-wrap items-center justify-center gap-x-8 gap-y-3 p-0", m = "text-inherit underline decoration-solid underline-offset-[0.18em] hover:decoration-current focus-visible:rounded-sm focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-on-brand focus-visible:ring-offset-2 focus-visible:ring-offset-brand type-heading-1", h = "@container pointer-events-none absolute inset-x-0 bottom-0 z-0 flex w-full justify-center", g = "calc(100cqi / var(--footer-wordmark-em, 9))", _ = "pointer-events-none w-max max-w-none shrink-0 translate-y-[16%] select-none whitespace-nowrap text-center font-sans font-bold leading-[0.78] tracking-[-0.045em] text-brand-soft";
4
- function v(e) {
5
- return /^https?:\/\//i.test(e) ? {
6
- target: "_blank",
7
- rel: "noopener"
8
- } : {};
9
- }
10
- var y = "footer-reveal-ruled-field min-h-[100vh] bg-body text-brand", b = "flex min-h-[100vh] w-full min-w-0 flex-col items-center justify-center-safe gap-[var(--grid-pad)] pb-[var(--grid-pad)] pt-[calc(var(--site-nav-height)+var(--spacing)*4)] text-center text-brand", x = "flex w-full min-w-0 justify-center px-[var(--grid-margin)]", S = "m-0 flex list-none flex-col items-center gap-3 whitespace-nowrap p-0 font-sans text-[length:var(--font-size-4xl)] leading-none sm:text-[4rem]", C = "!text-brand", w = "grid w-full min-w-0 grid-cols-1 items-center gap-3 px-[var(--grid-margin)] md:grid-cols-3 md:gap-4", T = "flex min-w-0 items-center justify-center gap-2 md:justify-start", E = "type-supporting min-w-0 text-brand", D = "shrink-0 font-sans text-[length:var(--font-size-xl)] font-bold leading-none tracking-[-0.04em] text-brand", O = "flex min-w-0 justify-center", k = "type-label text-brand focus-visible:rounded-sm focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-brand", A = "@container flex w-full min-w-0 items-center justify-center overflow-visible px-3 py-[var(--grid-baseline)]", j = "w-max max-w-none shrink-0 whitespace-nowrap text-center font-sans font-bold leading-none tracking-[-0.045em] text-brand", M = "flex min-w-0 justify-center md:justify-end", N = "min-w-0 max-w-full text-center font-mono text-[length:var(--font-size-sm)] leading-none text-brand break-words md:text-right";
3
+ var e = "relative isolate w-full max-w-full overflow-visible", t = "relative z-[1] min-h-dvh w-full max-w-full overflow-visible bg-body", n = "sticky bottom-0 z-[-1] m-0 w-full max-w-full overflow-x-clip bg-transparent p-0", r = "w-full max-w-full overflow-x-clip", i = "w-full max-w-full", a = "bg-brand text-on-brand", o = "text-inherit underline decoration-solid underline-offset-[0.18em] hover:decoration-current focus-visible:rounded-sm focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-on-brand focus-visible:ring-offset-2 focus-visible:ring-offset-brand", s = "relative flex min-h-dvh w-full max-w-full flex-col items-center justify-center overflow-hidden px-[var(--grid-margin)] pb-[18vw] pt-24 text-center", c = "footer-reveal-guides pointer-events-none absolute inset-0 z-0 hidden", l = "pointer-events-none absolute inset-y-0 right-0 left-0 mx-auto w-[min(100%,var(--grid-max))]", u = "footer-reveal-field-content relative z-[1]", d = "relative z-[1] flex w-full max-w-4xl flex-col items-center gap-10", f = "type-heading-1 text-balance text-on-brand", p = "m-0 flex list-none flex-wrap items-center justify-center gap-x-8 gap-y-3 p-0", m = "text-inherit underline decoration-solid underline-offset-[0.18em] hover:decoration-current focus-visible:rounded-sm focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-on-brand focus-visible:ring-offset-2 focus-visible:ring-offset-brand type-heading-1 inline-block min-h-[24px] min-w-[24px] text-center", h = "@container pointer-events-none absolute inset-x-0 bottom-0 z-0 flex w-full justify-center", g = "calc(100cqi / var(--footer-wordmark-em, 9))", _ = "pointer-events-none w-max max-w-none shrink-0 translate-y-[16%] select-none whitespace-nowrap text-center font-sans font-bold leading-[0.78] tracking-[-0.045em] text-brand-soft", v = "footer-reveal-ruled-field min-h-[100vh] bg-body text-brand", y = "flex min-h-[100vh] w-full min-w-0 flex-col items-center justify-center-safe gap-[var(--grid-pad)] pb-[var(--grid-pad)] pt-[calc(var(--site-nav-height)+var(--spacing)*4)] text-center text-brand", b = "flex w-full min-w-0 justify-center px-[var(--grid-margin)]", x = "m-0 flex list-none flex-col items-center gap-3 whitespace-nowrap p-0 font-sans text-[length:var(--font-size-4xl)] leading-none md:text-[4rem]", S = "!text-brand", C = "grid w-full min-w-0 grid-cols-1 items-center gap-3 px-[var(--grid-margin)] md:grid-cols-3 md:gap-4", w = "flex min-w-0 items-center justify-center gap-2 md:justify-start", T = "type-supporting min-w-0 text-brand", E = "shrink-0 font-sans text-[length:var(--font-size-xl)] font-bold leading-none tracking-[-0.04em] text-brand", D = "flex min-w-0 justify-center", O = "type-label text-brand focus-visible:rounded-sm focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-brand", k = "@container flex w-full min-w-0 items-center justify-center overflow-visible px-3 py-[var(--grid-baseline)]", A = "w-max max-w-none shrink-0 whitespace-nowrap text-center font-sans font-bold leading-none tracking-[-0.045em] text-brand", j = "flex min-w-0 justify-center md:justify-end", M = "min-w-0 max-w-full text-center font-mono text-[length:var(--font-size-sm)] leading-none text-brand break-words md:text-right";
11
4
  //#endregion
12
- export { s as footerRevealBrandClasses, d as footerRevealBrandCopyClasses, f as footerRevealBrandHeadlineClasses, t as footerRevealContentClasses, v as footerRevealExternalLinkProps, r as footerRevealFadeClasses, a as footerRevealFieldClasses, u as footerRevealFieldContentClasses, c as footerRevealFieldGuideClasses, l as footerRevealFieldGuideFrameClasses, o as footerRevealFieldLinkClasses, e as footerRevealRootClasses, O as footerRevealRuledContactClasses, E as footerRevealRuledCopyrightClasses, M as footerRevealRuledCreditClasses, N as footerRevealRuledCreditCopyClasses, k as footerRevealRuledEmailClasses, y as footerRevealRuledFieldClasses, T as footerRevealRuledIdentityClasses, S as footerRevealRuledLinkListClasses, x as footerRevealRuledLinksClasses, D as footerRevealRuledMarkClasses, w as footerRevealRuledMetaClasses, C as footerRevealRuledNavLinkClasses, b as footerRevealRuledRootClasses, j as footerRevealRuledWordmarkClasses, A as footerRevealRuledWordmarkFrameClasses, i as footerRevealScaleClasses, m as footerRevealSocialLinkClasses, p as footerRevealSocialListClasses, n as footerRevealStickyClasses, _ as footerRevealWordmarkClasses, g as footerRevealWordmarkFontSize, h as footerRevealWordmarkFrameClasses };
5
+ export { s as footerRevealBrandClasses, d as footerRevealBrandCopyClasses, f as footerRevealBrandHeadlineClasses, t as footerRevealContentClasses, r as footerRevealFadeClasses, a as footerRevealFieldClasses, u as footerRevealFieldContentClasses, c as footerRevealFieldGuideClasses, l as footerRevealFieldGuideFrameClasses, o as footerRevealFieldLinkClasses, e as footerRevealRootClasses, D as footerRevealRuledContactClasses, T as footerRevealRuledCopyrightClasses, j as footerRevealRuledCreditClasses, M as footerRevealRuledCreditCopyClasses, O as footerRevealRuledEmailClasses, v as footerRevealRuledFieldClasses, w as footerRevealRuledIdentityClasses, x as footerRevealRuledLinkListClasses, b as footerRevealRuledLinksClasses, E as footerRevealRuledMarkClasses, C as footerRevealRuledMetaClasses, S as footerRevealRuledNavLinkClasses, y as footerRevealRuledRootClasses, A as footerRevealRuledWordmarkClasses, k as footerRevealRuledWordmarkFrameClasses, i as footerRevealScaleClasses, m as footerRevealSocialLinkClasses, p as footerRevealSocialListClasses, n as footerRevealStickyClasses, _ as footerRevealWordmarkClasses, g as footerRevealWordmarkFontSize, h as footerRevealWordmarkFrameClasses };
@@ -14,7 +14,8 @@ export declare const intakeConfirmationClasses: string;
14
14
  /** Existing display-2 — the confirmation headline, larger than the step titles. */
15
15
  export declare const intakeConfirmationTitleClasses = "type-display-2 text-balance text-fg";
16
16
  /** Existing heading-2 — the confirmation sentence under the headline. */
17
- export declare const intakeConfirmationBodyClasses = "type-heading-2 max-w-2xl text-balance text-fg";
17
+ /** A paragraph, so regular body text, not a heading style (Body rule B4). */
18
+ export declare const intakeConfirmationBodyClasses = "type-large max-w-2xl text-balance text-fg";
18
19
  /** Booked time under the body — supporting muted type. */
19
20
  export declare const intakeConfirmationMetaClasses = "type-body text-balance text-muted";
20
21
  /** Optional booking actions — **TextLink** / **Button** stack, same center column. */
@@ -1 +1 @@
1
- {"version":3,"file":"intakeConfirmationStyles.d.ts","sourceRoot":"","sources":["../../../../src/components/organisms/IntakeConfirmation/intakeConfirmationStyles.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,eAAO,MAAM,oBAAoB,8MAQvB,CAAC;AAEX,eAAO,MAAM,0BAA0B,gCAAiC,CAAC;AAEzE,MAAM,MAAM,yBAAyB,GAAG,CAAC,OAAO,0BAA0B,CAAC,CAAC,MAAM,CAAC,CAAC;AAEpF,eAAO,MAAM,sBAAsB,EAAE,MAAM,CACzC,yBAAyB,EACzB;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAY/C,CAAC;AAEF,eAAO,MAAM,yBAAyB,QAErC,CAAC;AAEF,mFAAmF;AACnF,eAAO,MAAM,8BAA8B,wCAAwC,CAAC;AAEpF,yEAAyE;AACzE,eAAO,MAAM,6BAA6B,kDAAkD,CAAC;AAE7F,0DAA0D;AAC1D,eAAO,MAAM,6BAA6B,sCAAsC,CAAC;AAEjF,sFAAsF;AACtF,eAAO,MAAM,gCAAgC,qDACO,CAAC"}
1
+ {"version":3,"file":"intakeConfirmationStyles.d.ts","sourceRoot":"","sources":["../../../../src/components/organisms/IntakeConfirmation/intakeConfirmationStyles.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,eAAO,MAAM,oBAAoB,8MAQvB,CAAC;AAEX,eAAO,MAAM,0BAA0B,gCAAiC,CAAC;AAEzE,MAAM,MAAM,yBAAyB,GAAG,CAAC,OAAO,0BAA0B,CAAC,CAAC,MAAM,CAAC,CAAC;AAEpF,eAAO,MAAM,sBAAsB,EAAE,MAAM,CACzC,yBAAyB,EACzB;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAY/C,CAAC;AAEF,eAAO,MAAM,yBAAyB,QAErC,CAAC;AAEF,mFAAmF;AACnF,eAAO,MAAM,8BAA8B,wCAAwC,CAAC;AAEpF,yEAAyE;AACzE,6EAA6E;AAC7E,eAAO,MAAM,6BAA6B,8CAA8C,CAAC;AAEzF,0DAA0D;AAC1D,eAAO,MAAM,6BAA6B,sCAAsC,CAAC;AAEjF,sFAAsF;AACtF,eAAO,MAAM,gCAAgC,qDACO,CAAC"}
@@ -20,6 +20,6 @@ var t = [
20
20
  title: "We'll be in touch",
21
21
  body: "No calendar needed. We'll reply by email with a few times that fit."
22
22
  }
23
- }, i = e("flex w-full max-w-3xl flex-col items-center gap-8 text-center"), a = "type-display-2 text-balance text-fg", o = "type-heading-2 max-w-2xl text-balance text-fg", s = "type-body text-balance text-muted", c = "flex w-full max-w-md flex-col items-center gap-3";
23
+ }, i = e("flex w-full max-w-3xl flex-col items-center gap-8 text-center"), a = "type-display-2 text-balance text-fg", o = "type-large max-w-2xl text-balance text-fg", s = "type-body text-balance text-muted", c = "flex w-full max-w-md flex-col items-center gap-3";
24
24
  //#endregion
25
25
  export { t as intakeConfettiColors, c as intakeConfirmationActionsClasses, o as intakeConfirmationBodyClasses, i as intakeConfirmationClasses, r as intakeConfirmationCopy, s as intakeConfirmationMetaClasses, a as intakeConfirmationTitleClasses, n as intakeConfirmationVariants };
@@ -10,15 +10,22 @@ export interface SiteNavProps {
10
10
  start?: ReactNode;
11
11
  /** Center slot — **SiteNav.Links** (links + mega menus). Hidden below `md` when `mobile` is set. */
12
12
  middle?: ReactNode;
13
- /** Trailing slot — login link + primary CTA (**Button** `size="sm"`). */
13
+ /**
14
+ * Trailing slot — login link + primary CTA (**Button** `size="sm"`). With `mobile`, it gives way when it
15
+ * doesn't fit beside the Menu button (Header rule N7); the menu's `mobileAction` carries the CTA.
16
+ */
14
17
  end?: ReactNode;
15
18
  /**
16
- * Mobile menu body (below `md`) — rendered inside a **Sheet** opened from a **Menu** IconButton
17
- * appended to `end`. Compose **SiteNav.MobileLink** rows or a **NavList**.
19
+ * Phone menu (below `md`): **SiteNav.MobileLink** rows (or a **NavList**) in a full-height panel under
20
+ * the bar, opened by a "☰ Menu" button that becomes "✕ Close" in the same place. The panel is a
21
+ * dialog: focus moves to its first link and cycles through the bar and the panel, Escape or Close
22
+ * closes it, tapping any link closes it, focus returns to the Menu button, and the page doesn't scroll.
18
23
  */
19
24
  mobile?: ReactNode;
20
- /** Sheet title for the mobile menu. Default: `"Menu"`. */
21
- mobileTitle?: ReactNode;
25
+ /** The main action at the bottom of the open menu — usually the same **Button** as in `end`. */
26
+ mobileAction?: ReactNode;
27
+ /** The menu dialog's accessible name. Default: `"Menu"`. */
28
+ mobileTitle?: string;
22
29
  /**
23
30
  * Scroll distance (px) that reveals the compact pill. Omit to use half the scrollport
24
31
  * height (`siteNavDefaultCollapseRatio` — 50% of the window or `scrollContainer`).
@@ -37,7 +44,7 @@ export interface SiteNavProps {
37
44
  "aria-label"?: string;
38
45
  className?: SiteNavLayoutClassName;
39
46
  }
40
- declare function SiteNavRoot({ start, middle, end, mobile, mobileTitle, collapseAt, state: controlledState, onStateChange, compactLayout, placement, scrollContainer, "aria-label": ariaLabel, className, }: SiteNavProps): import("react").JSX.Element;
47
+ declare function SiteNavRoot({ start, middle, end, mobile, mobileAction, mobileTitle, collapseAt, state: controlledState, onStateChange, compactLayout, placement, scrollContainer, "aria-label": ariaLabel, className, }: SiteNavProps): import("react").JSX.Element;
41
48
  export interface SiteNavBrandProps {
42
49
  href: string;
43
50
  /**
@@ -101,12 +108,14 @@ export interface SiteNavMenuLinkProps {
101
108
  children: ReactNode;
102
109
  /** Leading Lucide glyph. */
103
110
  icon?: ReactElement;
104
- /** Opens in a new tab with the external-destination indicator. */
111
+ /** Another site: opens in the same tab (Links K9). Add `newTab` to open a new tab and say so. */
105
112
  external?: boolean;
113
+ /** `external` only — opt in to a new tab; adds "(opens in a new tab)" to the accessible name. */
114
+ newTab?: boolean;
106
115
  size?: Extract<ButtonSize, "xs" | "sm">;
107
116
  }
108
117
  /** Quiet link row inside a menu section — ghost **Button** anchor that closes the menu on click. */
109
- declare function SiteNavMenuLink({ href, children, icon, external, size }: SiteNavMenuLinkProps): import("react").JSX.Element;
118
+ declare function SiteNavMenuLink({ href, children, icon, external, newTab, size }: SiteNavMenuLinkProps): import("react").JSX.Element;
110
119
  /** Two-column grid of **SiteNav.MenuLink** rows. */
111
120
  declare function SiteNavMenuLinkGrid({ children }: {
112
121
  children: ReactNode;