@primer/react-brand 0.75.0-rc.c3abcc84 → 0.75.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (915) hide show
  1. package/docs/index.md +2 -2
  2. package/esm/Accordion/Accordion.d.ts +2 -2
  3. package/esm/Accordion/Accordion.d.ts.map +1 -1
  4. package/esm/Accordion/Accordion.js +2 -2
  5. package/esm/Accordion/Accordion.js.map +1 -1
  6. package/esm/Accordion/Accordion.module.js +6 -5
  7. package/esm/ActionMenu/ActionMenu.d.ts +2 -2
  8. package/esm/ActionMenu/ActionMenu.js +3 -2
  9. package/esm/ActionMenu/ActionMenu.js.map +1 -1
  10. package/esm/ActionMenu/ActionMenu.module.js +7 -6
  11. package/esm/AnchorNav/AnchorNav.d.ts +4 -4
  12. package/esm/AnchorNav/AnchorNav.d.ts.map +1 -1
  13. package/esm/AnchorNav/AnchorNav.js +9 -4
  14. package/esm/AnchorNav/AnchorNav.js.map +1 -1
  15. package/esm/AnchorNav/AnchorNav.module.js +5 -4
  16. package/esm/AnchorNav/useExpandedMenu.js.map +1 -1
  17. package/esm/Avatar/Avatar.js +1 -1
  18. package/esm/Avatar/Avatar.js.map +1 -1
  19. package/esm/Avatar/Avatar.module.js +5 -4
  20. package/esm/Bento/Bento.d.ts +4 -4
  21. package/esm/Bento/Bento.js +1 -1
  22. package/esm/Bento/Bento.js.map +1 -1
  23. package/esm/Bento/Bento.module.js +7 -6
  24. package/esm/Box/Box.d.ts +1 -1
  25. package/esm/Box/Box.d.ts.map +1 -1
  26. package/esm/Box/Box.js +1 -1
  27. package/esm/Box/Box.js.map +1 -1
  28. package/esm/Breadcrumbs/Breadcrumbs.js +1 -1
  29. package/esm/Breadcrumbs/Breadcrumbs.js.map +1 -1
  30. package/esm/Breadcrumbs/Breadcrumbs.module.js +7 -6
  31. package/esm/BreakoutBanner/BreakoutBanner.js +1 -1
  32. package/esm/BreakoutBanner/BreakoutBanner.js.map +1 -1
  33. package/esm/BreakoutBanner/BreakoutBanner.module.js +5 -4
  34. package/esm/Button/Button.js +1 -1
  35. package/esm/Button/Button.js.map +1 -1
  36. package/esm/Button/Button.module.js +5 -4
  37. package/esm/ButtonGroup/ButtonGroup.js +1 -1
  38. package/esm/ButtonGroup/ButtonGroup.js.map +1 -1
  39. package/esm/ButtonGroup/ButtonGroup.module.js +3 -2
  40. package/esm/CTABanner/CTABanner.d.ts +1 -1
  41. package/esm/CTABanner/CTABanner.js +2 -2
  42. package/esm/CTABanner/CTABanner.js.map +1 -1
  43. package/esm/CTABanner/CTABanner.module.js +4 -3
  44. package/esm/CTAForm/CTAForm.js +1 -1
  45. package/esm/CTAForm/CTAForm.js.map +1 -1
  46. package/esm/CTAForm/CTAForm.module.js +4 -3
  47. package/esm/Card/Card.d.ts +2 -2
  48. package/esm/Card/Card.d.ts.map +1 -1
  49. package/esm/Card/Card.js +3 -3
  50. package/esm/Card/Card.js.map +1 -1
  51. package/esm/Card/Card.module.js +18 -17
  52. package/esm/ComparisonTable/ComparisonTable.d.ts +3 -3
  53. package/esm/ComparisonTable/ComparisonTable.js +1 -1
  54. package/esm/ComparisonTable/ComparisonTable.js.map +1 -1
  55. package/esm/ComparisonTable/ComparisonTable.module.js +4 -3
  56. package/esm/ExpandableArrow/ExpandableArrow.d.ts +2 -1
  57. package/esm/ExpandableArrow/ExpandableArrow.d.ts.map +1 -1
  58. package/esm/ExpandableArrow/ExpandableArrow.js +1 -1
  59. package/esm/ExpandableArrow/ExpandableArrow.js.map +1 -1
  60. package/esm/ExpandableArrow/ExpandableArrow.module.js +4 -3
  61. package/esm/EyebrowBanner/EyebrowBanner.js +2 -2
  62. package/esm/EyebrowBanner/EyebrowBanner.js.map +1 -1
  63. package/esm/EyebrowBanner/EyebrowBanner.module.js +12 -11
  64. package/esm/EyebrowText/EyebrowText.js +1 -1
  65. package/esm/EyebrowText/EyebrowText.js.map +1 -1
  66. package/esm/EyebrowText/EyebrowText.module.js +4 -3
  67. package/esm/FAQ/FAQ.d.ts +2 -2
  68. package/esm/FAQ/FAQ.d.ts.map +1 -1
  69. package/esm/FAQ/FAQ.js +1 -1
  70. package/esm/FAQ/FAQ.js.map +1 -1
  71. package/esm/FAQ/FAQ.module.js +7 -6
  72. package/esm/FAQ/FAQGroup.d.ts +2 -2
  73. package/esm/FAQ/FAQGroup.d.ts.map +1 -1
  74. package/esm/FAQ/FAQGroup.js +7 -3
  75. package/esm/FAQ/FAQGroup.js.map +1 -1
  76. package/esm/FAQ/FAQGroup.module.js +8 -7
  77. package/esm/Footnotes/Footnotes.d.ts +2 -2
  78. package/esm/Footnotes/Footnotes.d.ts.map +1 -1
  79. package/esm/Footnotes/Footnotes.js +2 -2
  80. package/esm/Footnotes/Footnotes.js.map +1 -1
  81. package/esm/Footnotes/Footnotes.module.js +7 -6
  82. package/esm/FrostedGlassVFX/FrostedGlassVFX.d.ts +1 -1
  83. package/esm/FrostedGlassVFX/FrostedGlassVFX.d.ts.map +1 -1
  84. package/esm/FrostedGlassVFX/FrostedGlassVFX.js +1 -1
  85. package/esm/FrostedGlassVFX/FrostedGlassVFX.js.map +1 -1
  86. package/esm/FrostedGlassVFX/FrostedGlassVFX.module.js +4 -3
  87. package/esm/Grid/Grid.d.ts +2 -2
  88. package/esm/Grid/Grid.js +2 -2
  89. package/esm/Grid/Grid.js.map +1 -1
  90. package/esm/Grid/Grid.module.js +5 -4
  91. package/esm/Heading/Heading.js +1 -1
  92. package/esm/Heading/Heading.js.map +1 -1
  93. package/esm/Heading/Heading.module.js +4 -3
  94. package/esm/Hero/Hero.js +1 -1
  95. package/esm/Hero/Hero.js.map +1 -1
  96. package/esm/Hero/Hero.module.js +4 -3
  97. package/esm/Hero/HeroContext.js.map +1 -1
  98. package/esm/Hero/sub-components/HeroButtonGroup.js +1 -1
  99. package/esm/Hero/sub-components/HeroButtonGroup.js.map +1 -1
  100. package/esm/Hero/sub-components/HeroDescription.js +1 -1
  101. package/esm/Hero/sub-components/HeroDescription.js.map +1 -1
  102. package/esm/Hero/sub-components/HeroEyebrow.js +1 -1
  103. package/esm/Hero/sub-components/HeroEyebrow.js.map +1 -1
  104. package/esm/Hero/sub-components/HeroHeading.js +1 -1
  105. package/esm/Hero/sub-components/HeroHeading.js.map +1 -1
  106. package/esm/Hero/sub-components/HeroImage.js +1 -1
  107. package/esm/Hero/sub-components/HeroImage.js.map +1 -1
  108. package/esm/Hero/sub-components/HeroLabel.js +1 -1
  109. package/esm/Hero/sub-components/HeroLabel.js.map +1 -1
  110. package/esm/Hero/sub-components/HeroPrimaryAction.js.map +1 -1
  111. package/esm/Hero/sub-components/HeroSecondaryAction.js.map +1 -1
  112. package/esm/Hero/sub-components/HeroVideo.js +2 -2
  113. package/esm/Hero/sub-components/HeroVideo.js.map +1 -1
  114. package/esm/IDE/IDE.d.ts +1 -1
  115. package/esm/IDE/IDE.js +3 -2
  116. package/esm/IDE/IDE.js.map +1 -1
  117. package/esm/IDE/IDE.module.js +8 -7
  118. package/esm/Icon/Icon.d.ts +2 -2
  119. package/esm/Icon/Icon.d.ts.map +1 -1
  120. package/esm/Icon/Icon.js +2 -2
  121. package/esm/Icon/Icon.js.map +1 -1
  122. package/esm/Icon/Icon.module.js +4 -3
  123. package/esm/Image/Image.d.ts +1 -1
  124. package/esm/Image/Image.d.ts.map +1 -1
  125. package/esm/Image/Image.js +1 -1
  126. package/esm/Image/Image.js.map +1 -1
  127. package/esm/Image/Image.module.js +5 -4
  128. package/esm/InlineCode/InlineCode.js +1 -1
  129. package/esm/InlineCode/InlineCode.js.map +1 -1
  130. package/esm/InlineCode/InlineCode.module.js +5 -4
  131. package/esm/InlineLink/InlineLink.js +2 -2
  132. package/esm/InlineLink/InlineLink.js.map +1 -1
  133. package/esm/InlineLink/InlineLink.module.js +3 -2
  134. package/esm/Label/Label.js +1 -1
  135. package/esm/Label/Label.js.map +1 -1
  136. package/esm/Label/Label.module.js +6 -5
  137. package/esm/Link/Link.d.ts +1 -1
  138. package/esm/Link/Link.d.ts.map +1 -1
  139. package/esm/Link/Link.js +2 -2
  140. package/esm/Link/Link.js.map +1 -1
  141. package/esm/Link/Link.module.js +4 -3
  142. package/esm/LogoSuite/LogoSuite.d.ts +1 -1
  143. package/esm/LogoSuite/LogoSuite.js +4 -3
  144. package/esm/LogoSuite/LogoSuite.js.map +1 -1
  145. package/esm/LogoSuite/LogoSuite.module.js +11 -10
  146. package/esm/MediaPlaylist/MediaPlaylist.d.ts +4 -4
  147. package/esm/MediaPlaylist/MediaPlaylist.d.ts.map +1 -1
  148. package/esm/MediaPlaylist/MediaPlaylist.js +1 -1
  149. package/esm/MediaPlaylist/MediaPlaylist.js.map +1 -1
  150. package/esm/MediaPlaylist/MediaPlaylist.module.js +25 -24
  151. package/esm/MediaPlaylist/useMediaPlaylist.js.map +1 -1
  152. package/esm/MinimalFooter/MinimalFooter.d.ts +3 -3
  153. package/esm/MinimalFooter/MinimalFooter.d.ts.map +1 -1
  154. package/esm/MinimalFooter/MinimalFooter.js +4 -3
  155. package/esm/MinimalFooter/MinimalFooter.js.map +1 -1
  156. package/esm/MinimalFooter/MinimalFooter.module.js +15 -14
  157. package/esm/MinimalVideoPlayer/MinimalVideoPlayer.js +2 -2
  158. package/esm/MinimalVideoPlayer/MinimalVideoPlayer.js.map +1 -1
  159. package/esm/MinimalVideoPlayer/MinimalVideoPlayer.module.js +6 -5
  160. package/esm/MinimalVideoPlayer/useMinimalVideoPlayback.js.map +1 -1
  161. package/esm/NavList/NavList.js +2 -2
  162. package/esm/NavList/NavList.js.map +1 -1
  163. package/esm/NavList/NavList.module.js +18 -17
  164. package/esm/Pagination/Pagination.d.ts +1 -1
  165. package/esm/Pagination/Pagination.d.ts.map +1 -1
  166. package/esm/Pagination/Pagination.js +1 -1
  167. package/esm/Pagination/Pagination.js.map +1 -1
  168. package/esm/Pagination/Pagination.module.js +11 -10
  169. package/esm/Pagination/model.js.map +1 -1
  170. package/esm/Pillar/Pillar.d.ts +2 -2
  171. package/esm/Pillar/Pillar.d.ts.map +1 -1
  172. package/esm/Pillar/Pillar.js +1 -1
  173. package/esm/Pillar/Pillar.js.map +1 -1
  174. package/esm/Pillar/Pillar.module.js +9 -8
  175. package/esm/PricingOptions/PricingOptions.d.ts +1 -1
  176. package/esm/PricingOptions/PricingOptions.js +5 -3
  177. package/esm/PricingOptions/PricingOptions.js.map +1 -1
  178. package/esm/PricingOptions/PricingOptions.module.js +13 -12
  179. package/esm/Prose/Prose.js +1 -1
  180. package/esm/Prose/Prose.js.map +1 -1
  181. package/esm/Prose/Prose.module.js +4 -3
  182. package/esm/Section/Section.js +1 -1
  183. package/esm/Section/Section.js.map +1 -1
  184. package/esm/Section/Section.module.js +5 -4
  185. package/esm/SectionIntro/SectionIntro.js +1 -1
  186. package/esm/SectionIntro/SectionIntro.js.map +1 -1
  187. package/esm/SectionIntro/SectionIntro.module.js +4 -3
  188. package/esm/SectionIntroStacked/SectionIntroStacked.d.ts +3 -3
  189. package/esm/SectionIntroStacked/SectionIntroStacked.js +1 -1
  190. package/esm/SectionIntroStacked/SectionIntroStacked.js.map +1 -1
  191. package/esm/SectionIntroStacked/SectionIntroStacked.module.js +6 -5
  192. package/esm/Stack/Stack.js +1 -1
  193. package/esm/Stack/Stack.js.map +1 -1
  194. package/esm/Stack/Stack.module.js +4 -3
  195. package/esm/Statistic/Statistic.js +1 -1
  196. package/esm/Statistic/Statistic.js.map +1 -1
  197. package/esm/Statistic/Statistic.module.js +6 -5
  198. package/esm/SubNav/SubNav.d.ts +4 -4
  199. package/esm/SubNav/SubNav.d.ts.map +1 -1
  200. package/esm/SubNav/SubNav.js +6 -4
  201. package/esm/SubNav/SubNav.js.map +1 -1
  202. package/esm/SubNav/SubNav.module.js +9 -8
  203. package/esm/SubNav/useContainsFocus.js.map +1 -1
  204. package/esm/SubdomainNavBar/NavigationVisbilityObserver.js +4 -3
  205. package/esm/SubdomainNavBar/NavigationVisbilityObserver.js.map +1 -1
  206. package/esm/SubdomainNavBar/SubdomainNavBar.d.ts +3 -3
  207. package/esm/SubdomainNavBar/SubdomainNavBar.d.ts.map +1 -1
  208. package/esm/SubdomainNavBar/SubdomainNavBar.js +6 -2
  209. package/esm/SubdomainNavBar/SubdomainNavBar.js.map +1 -1
  210. package/esm/SubdomainNavBar/SubdomainNavBar.module.js +4 -3
  211. package/esm/SubdomainNavBar/SubdomainNavBarLinkContext.js.map +1 -1
  212. package/esm/SubdomainNavBar/useSearchKeyboardShortcut.js +2 -2
  213. package/esm/SubdomainNavBar/useSearchKeyboardShortcut.js.map +1 -1
  214. package/esm/SubdomainNavBar/useSearchResults.js.map +1 -1
  215. package/esm/SubdomainNavBar/useVisibilityObserver.js.map +1 -1
  216. package/esm/Tabs/Tabs.js +3 -2
  217. package/esm/Tabs/Tabs.js.map +1 -1
  218. package/esm/Tabs/Tabs.module.js +12 -11
  219. package/esm/Testimonial/Testimonial.d.ts +1 -1
  220. package/esm/Testimonial/Testimonial.d.ts.map +1 -1
  221. package/esm/Testimonial/Testimonial.js +1 -1
  222. package/esm/Testimonial/Testimonial.js.map +1 -1
  223. package/esm/Testimonial/Testimonial.module.js +8 -7
  224. package/esm/Text/Text.d.ts +1 -1
  225. package/esm/Text/Text.d.ts.map +1 -1
  226. package/esm/Text/Text.js +1 -1
  227. package/esm/Text/Text.js.map +1 -1
  228. package/esm/Text/Text.module.js +4 -3
  229. package/esm/TextCursorAnimation/TextCursorAnimation.d.ts +1 -1
  230. package/esm/TextCursorAnimation/TextCursorAnimation.d.ts.map +1 -1
  231. package/esm/TextCursorAnimation/TextCursorAnimation.js +1 -1
  232. package/esm/TextCursorAnimation/TextCursorAnimation.js.map +1 -1
  233. package/esm/TextCursorAnimation/TextCursorAnimation.module.js +10 -9
  234. package/esm/ThemeProvider/ThemeProvider.d.ts +1 -1
  235. package/esm/ThemeProvider/ThemeProvider.d.ts.map +1 -1
  236. package/esm/ThemeProvider/ThemeProvider.js +4 -4
  237. package/esm/ThemeProvider/ThemeProvider.js.map +1 -1
  238. package/esm/ThemeProvider/useTheme.js.map +1 -1
  239. package/esm/Tiles/Tiles.js +2 -2
  240. package/esm/Tiles/Tiles.js.map +1 -1
  241. package/esm/Tiles/Tiles.module.js +4 -3
  242. package/esm/Timeline/Timeline.d.ts +3 -3
  243. package/esm/Timeline/Timeline.d.ts.map +1 -1
  244. package/esm/Timeline/Timeline.js +2 -2
  245. package/esm/Timeline/Timeline.js.map +1 -1
  246. package/esm/Timeline/Timeline.module.js +5 -4
  247. package/esm/Token/Token.js +1 -1
  248. package/esm/Token/Token.js.map +1 -1
  249. package/esm/Token/Token.module.js +6 -5
  250. package/esm/Tooltip/Tooltip.js +2 -2
  251. package/esm/Tooltip/Tooltip.js.map +1 -1
  252. package/esm/Tooltip/Tooltip.module.js +4 -3
  253. package/esm/VideoPlayer/VideoPlayer.d.ts +2 -2
  254. package/esm/VideoPlayer/VideoPlayer.js +2 -2
  255. package/esm/VideoPlayer/VideoPlayer.js.map +1 -1
  256. package/esm/VideoPlayer/VideoPlayer.module.js +29 -28
  257. package/esm/VideoPlayer/components/CCButton/CCButton.d.ts +2 -2
  258. package/esm/VideoPlayer/components/CCButton/CCButton.d.ts.map +1 -1
  259. package/esm/VideoPlayer/components/CCButton/CCButton.js +1 -1
  260. package/esm/VideoPlayer/components/CCButton/CCButton.js.map +1 -1
  261. package/esm/VideoPlayer/components/Captions/Captions.d.ts +2 -2
  262. package/esm/VideoPlayer/components/Captions/Captions.d.ts.map +1 -1
  263. package/esm/VideoPlayer/components/Captions/Captions.js +1 -1
  264. package/esm/VideoPlayer/components/Captions/Captions.js.map +1 -1
  265. package/esm/VideoPlayer/components/Captions/Captions.module.js +5 -4
  266. package/esm/VideoPlayer/components/ControlsBar/ControlsBar.d.ts +2 -2
  267. package/esm/VideoPlayer/components/ControlsBar/ControlsBar.d.ts.map +1 -1
  268. package/esm/VideoPlayer/components/ControlsBar/ControlsBar.js +1 -1
  269. package/esm/VideoPlayer/components/ControlsBar/ControlsBar.js.map +1 -1
  270. package/esm/VideoPlayer/components/FullScreenButton/FullScreenButton.d.ts +2 -2
  271. package/esm/VideoPlayer/components/FullScreenButton/FullScreenButton.d.ts.map +1 -1
  272. package/esm/VideoPlayer/components/FullScreenButton/FullScreenButton.js +2 -1
  273. package/esm/VideoPlayer/components/FullScreenButton/FullScreenButton.js.map +1 -1
  274. package/esm/VideoPlayer/components/IconControl/IconControl.d.ts +2 -2
  275. package/esm/VideoPlayer/components/IconControl/IconControl.d.ts.map +1 -1
  276. package/esm/VideoPlayer/components/IconControl/IconControl.js +1 -1
  277. package/esm/VideoPlayer/components/IconControl/IconControl.js.map +1 -1
  278. package/esm/VideoPlayer/components/MuteButton/MuteButton.d.ts +2 -2
  279. package/esm/VideoPlayer/components/MuteButton/MuteButton.d.ts.map +1 -1
  280. package/esm/VideoPlayer/components/MuteButton/MuteButton.js +2 -1
  281. package/esm/VideoPlayer/components/MuteButton/MuteButton.js.map +1 -1
  282. package/esm/VideoPlayer/components/PauseIcon/PauseIcon.d.ts +2 -2
  283. package/esm/VideoPlayer/components/PauseIcon/PauseIcon.d.ts.map +1 -1
  284. package/esm/VideoPlayer/components/PauseIcon/PauseIcon.js.map +1 -1
  285. package/esm/VideoPlayer/components/PlayIcon/PlayIcon.d.ts +2 -2
  286. package/esm/VideoPlayer/components/PlayIcon/PlayIcon.d.ts.map +1 -1
  287. package/esm/VideoPlayer/components/PlayIcon/PlayIcon.js.map +1 -1
  288. package/esm/VideoPlayer/components/PlayPauseButton/PlayPauseButton.d.ts +2 -2
  289. package/esm/VideoPlayer/components/PlayPauseButton/PlayPauseButton.d.ts.map +1 -1
  290. package/esm/VideoPlayer/components/PlayPauseButton/PlayPauseButton.js.map +1 -1
  291. package/esm/VideoPlayer/components/Range/Range.d.ts +1 -1
  292. package/esm/VideoPlayer/components/Range/Range.d.ts.map +1 -1
  293. package/esm/VideoPlayer/components/Range/Range.js +1 -1
  294. package/esm/VideoPlayer/components/Range/Range.js.map +1 -1
  295. package/esm/VideoPlayer/components/SeekControl/SeekControl.d.ts +2 -2
  296. package/esm/VideoPlayer/components/SeekControl/SeekControl.d.ts.map +1 -1
  297. package/esm/VideoPlayer/components/SeekControl/SeekControl.js +1 -1
  298. package/esm/VideoPlayer/components/SeekControl/SeekControl.js.map +1 -1
  299. package/esm/VideoPlayer/components/VideoTooltip/VideoTooltip.d.ts +2 -2
  300. package/esm/VideoPlayer/components/VideoTooltip/VideoTooltip.d.ts.map +1 -1
  301. package/esm/VideoPlayer/components/VideoTooltip/VideoTooltip.js +3 -2
  302. package/esm/VideoPlayer/components/VideoTooltip/VideoTooltip.js.map +1 -1
  303. package/esm/VideoPlayer/components/VolumeControl/VolumeControl.d.ts +2 -1
  304. package/esm/VideoPlayer/components/VolumeControl/VolumeControl.d.ts.map +1 -1
  305. package/esm/VideoPlayer/components/VolumeControl/VolumeControl.js.map +1 -1
  306. package/esm/VideoPlayer/components/VolumeControl/VolumeControl.module.js +3 -2
  307. package/esm/VideoPlayer/hooks/useIsElementFullScreen.js.map +1 -1
  308. package/esm/VideoPlayer/hooks/useVideo.js.map +1 -1
  309. package/esm/VideoPlayer/hooks/useVideoResizeObserver.js.map +1 -1
  310. package/esm/animation/Animate/Animate.d.ts +1 -1
  311. package/esm/animation/Animate/Animate.d.ts.map +1 -1
  312. package/esm/animation/Animate/Animate.js +1 -1
  313. package/esm/animation/Animate/Animate.js.map +1 -1
  314. package/esm/animation/Animation.module.js +4 -3
  315. package/esm/animation/AnimationProvider/AnimationProvider.d.ts +1 -1
  316. package/esm/animation/AnimationProvider/AnimationProvider.d.ts.map +1 -1
  317. package/esm/animation/AnimationProvider/AnimationProvider.js.map +1 -1
  318. package/esm/animation/TextRevealAnimation/TextRevealAnimation.js +1 -1
  319. package/esm/animation/TextRevealAnimation/TextRevealAnimation.js.map +1 -1
  320. package/esm/animation/TextRevealAnimation/TextRevealAnimation.module.js +5 -4
  321. package/esm/animation/TextRevealAnimation/useTextRevealAnimationLines.js.map +1 -1
  322. package/esm/animation/useAnimation.js.map +1 -1
  323. package/esm/component-helpers/shared.module.js +3 -2
  324. package/esm/component-helpers.d.ts +2 -2
  325. package/esm/component-helpers.d.ts.map +1 -1
  326. package/esm/constants.js.map +1 -1
  327. package/esm/css/stylesheets.js +1 -1
  328. package/esm/findElementInChildren.js.map +1 -1
  329. package/esm/forms/Checkbox/Checkbox.js +2 -2
  330. package/esm/forms/Checkbox/Checkbox.js.map +1 -1
  331. package/esm/forms/Checkbox/Checkbox.module.js +4 -3
  332. package/esm/forms/ControlGroup/ControlGroup.js +3 -2
  333. package/esm/forms/ControlGroup/ControlGroup.js.map +1 -1
  334. package/esm/forms/ControlGroup/ControlGroup.module.js +7 -6
  335. package/esm/forms/FormControl/FormControl.d.ts +5 -5
  336. package/esm/forms/FormControl/FormControl.d.ts.map +1 -1
  337. package/esm/forms/FormControl/FormControl.js +4 -3
  338. package/esm/forms/FormControl/FormControl.js.map +1 -1
  339. package/esm/forms/FormControl/FormControl.module.js +5 -4
  340. package/esm/forms/Radio/Radio.js +1 -1
  341. package/esm/forms/Radio/Radio.js.map +1 -1
  342. package/esm/forms/Radio/Radio.module.js +4 -3
  343. package/esm/forms/Select/Select.d.ts +2 -2
  344. package/esm/forms/Select/Select.js +1 -1
  345. package/esm/forms/Select/Select.js.map +1 -1
  346. package/esm/forms/Select/Select.module.js +4 -3
  347. package/esm/forms/TextInput/TextInput.js +1 -1
  348. package/esm/forms/TextInput/TextInput.js.map +1 -1
  349. package/esm/forms/TextInput/TextInput.module.js +5 -4
  350. package/esm/forms/Textarea/Textarea.js +1 -1
  351. package/esm/forms/Textarea/Textarea.js.map +1 -1
  352. package/esm/forms/Textarea/Textarea.module.js +4 -3
  353. package/esm/hooks/useAnchoredPosition.js +7 -4
  354. package/esm/hooks/useAnchoredPosition.js.map +1 -1
  355. package/esm/hooks/useCursorAnimation.js +4 -2
  356. package/esm/hooks/useCursorAnimation.js.map +1 -1
  357. package/esm/hooks/useFocusTrap.js.map +1 -1
  358. package/esm/hooks/useId.js.map +1 -1
  359. package/esm/hooks/useKeyboardEscape.js.map +1 -1
  360. package/esm/hooks/useOnClickOutside.js.map +1 -1
  361. package/esm/hooks/useReducedMotion.js +1 -1
  362. package/esm/hooks/useReducedMotion.js.map +1 -1
  363. package/esm/hooks/useRef.js.map +1 -1
  364. package/esm/hooks/useResizeObserver.js.map +1 -1
  365. package/esm/hooks/useTabs.js +1 -1
  366. package/esm/hooks/useTabs.js.map +1 -1
  367. package/esm/hooks/useWindowSize.js +7 -7
  368. package/esm/hooks/useWindowSize.js.map +1 -1
  369. package/esm/list/ListItem/ListItem.js +4 -2
  370. package/esm/list/ListItem/ListItem.js.map +1 -1
  371. package/esm/list/ListItem/ListItem.module.js +5 -4
  372. package/esm/list/OrderedList/OrderedList.d.ts +2 -2
  373. package/esm/list/OrderedList/OrderedList.d.ts.map +1 -1
  374. package/esm/list/OrderedList/OrderedList.js +1 -1
  375. package/esm/list/OrderedList/OrderedList.js.map +1 -1
  376. package/esm/list/OrderedList/OrderedList.module.js +3 -2
  377. package/esm/list/UnorderedList/UnorderedList.d.ts +2 -2
  378. package/esm/list/UnorderedList/UnorderedList.d.ts.map +1 -1
  379. package/esm/list/UnorderedList/UnorderedList.js +1 -1
  380. package/esm/list/UnorderedList/UnorderedList.js.map +1 -1
  381. package/esm/list/list-shared.module.js +3 -2
  382. package/esm/list/listContext.js.map +1 -1
  383. package/esm/node_modules/@primer/octicons-react/dist/icons/AlertFillIcon.js +28 -0
  384. package/esm/node_modules/@primer/octicons-react/dist/icons/AlertFillIcon.js.map +1 -0
  385. package/esm/node_modules/@primer/octicons-react/dist/icons/ArrowUpIcon.js +20 -0
  386. package/esm/node_modules/@primer/octicons-react/dist/icons/ArrowUpIcon.js.map +1 -0
  387. package/esm/node_modules/@primer/octicons-react/dist/icons/ArrowUpRightIcon.js +20 -0
  388. package/esm/node_modules/@primer/octicons-react/dist/icons/ArrowUpRightIcon.js.map +1 -0
  389. package/esm/node_modules/@primer/octicons-react/dist/icons/CheckCircleFillIcon.js +28 -0
  390. package/esm/node_modules/@primer/octicons-react/dist/icons/CheckCircleFillIcon.js.map +1 -0
  391. package/esm/node_modules/@primer/octicons-react/dist/icons/CheckIcon.js +20 -0
  392. package/esm/node_modules/@primer/octicons-react/dist/icons/CheckIcon.js.map +1 -0
  393. package/esm/node_modules/@primer/octicons-react/dist/icons/ChevronDownIcon.js +28 -0
  394. package/esm/node_modules/@primer/octicons-react/dist/icons/ChevronDownIcon.js.map +1 -0
  395. package/esm/node_modules/@primer/octicons-react/dist/icons/ChevronLeftIcon.js +28 -0
  396. package/esm/node_modules/@primer/octicons-react/dist/icons/ChevronLeftIcon.js.map +1 -0
  397. package/esm/node_modules/@primer/octicons-react/dist/icons/ChevronRightIcon.js +28 -0
  398. package/esm/node_modules/@primer/octicons-react/dist/icons/ChevronRightIcon.js.map +1 -0
  399. package/esm/node_modules/@primer/octicons-react/dist/icons/ChevronUpIcon.js +28 -0
  400. package/esm/node_modules/@primer/octicons-react/dist/icons/ChevronUpIcon.js.map +1 -0
  401. package/esm/node_modules/@primer/octicons-react/dist/icons/CopilotIcon.js +33 -0
  402. package/esm/node_modules/@primer/octicons-react/dist/icons/CopilotIcon.js.map +1 -0
  403. package/esm/node_modules/@primer/octicons-react/dist/icons/DashIcon.js +20 -0
  404. package/esm/node_modules/@primer/octicons-react/dist/icons/DashIcon.js.map +1 -0
  405. package/esm/node_modules/@primer/octicons-react/dist/icons/LinkExternalIcon.js +20 -0
  406. package/esm/node_modules/@primer/octicons-react/dist/icons/LinkExternalIcon.js.map +1 -0
  407. package/esm/node_modules/@primer/octicons-react/dist/icons/MarkGithubIcon.js +20 -0
  408. package/esm/node_modules/@primer/octicons-react/dist/icons/MarkGithubIcon.js.map +1 -0
  409. package/esm/node_modules/@primer/octicons-react/dist/icons/MuteIcon.js +20 -0
  410. package/esm/node_modules/@primer/octicons-react/dist/icons/MuteIcon.js.map +1 -0
  411. package/esm/node_modules/@primer/octicons-react/dist/icons/PaperAirplaneIcon.js +20 -0
  412. package/esm/node_modules/@primer/octicons-react/dist/icons/PaperAirplaneIcon.js.map +1 -0
  413. package/esm/node_modules/@primer/octicons-react/dist/icons/PauseIcon.js +20 -0
  414. package/esm/node_modules/@primer/octicons-react/dist/icons/PauseIcon.js.map +1 -0
  415. package/esm/node_modules/@primer/octicons-react/dist/icons/PlayIcon.js +20 -0
  416. package/esm/node_modules/@primer/octicons-react/dist/icons/PlayIcon.js.map +1 -0
  417. package/esm/node_modules/@primer/octicons-react/dist/icons/ReplyIcon.js +20 -0
  418. package/esm/node_modules/@primer/octicons-react/dist/icons/ReplyIcon.js.map +1 -0
  419. package/esm/node_modules/@primer/octicons-react/dist/icons/ScreenFullIcon.js +20 -0
  420. package/esm/node_modules/@primer/octicons-react/dist/icons/ScreenFullIcon.js.map +1 -0
  421. package/esm/node_modules/@primer/octicons-react/dist/icons/ScreenNormalIcon.js +20 -0
  422. package/esm/node_modules/@primer/octicons-react/dist/icons/ScreenNormalIcon.js.map +1 -0
  423. package/esm/node_modules/@primer/octicons-react/dist/icons/SearchIcon.js +20 -0
  424. package/esm/node_modules/@primer/octicons-react/dist/icons/SearchIcon.js.map +1 -0
  425. package/esm/node_modules/@primer/octicons-react/dist/icons/TriangleDownIcon.js +20 -0
  426. package/esm/node_modules/@primer/octicons-react/dist/icons/TriangleDownIcon.js.map +1 -0
  427. package/esm/node_modules/@primer/octicons-react/dist/icons/TriangleUpIcon.js +20 -0
  428. package/esm/node_modules/@primer/octicons-react/dist/icons/TriangleUpIcon.js.map +1 -0
  429. package/esm/node_modules/@primer/octicons-react/dist/icons/UnmuteIcon.js +20 -0
  430. package/esm/node_modules/@primer/octicons-react/dist/icons/UnmuteIcon.js.map +1 -0
  431. package/esm/node_modules/@primer/octicons-react/dist/icons/XIcon.js +28 -0
  432. package/esm/node_modules/@primer/octicons-react/dist/icons/XIcon.js.map +1 -0
  433. package/esm/node_modules/@primer/octicons-react/dist/renderOcticon-DuMQdmQC.js +132 -0
  434. package/esm/node_modules/@primer/octicons-react/dist/renderOcticon-DuMQdmQC.js.map +1 -0
  435. package/esm/node_modules/clsx/dist/clsx.js +1 -1
  436. package/esm/node_modules/clsx/dist/clsx.js.map +1 -1
  437. package/esm/river/River/River.js +2 -2
  438. package/esm/river/River/River.js.map +1 -1
  439. package/esm/river/RiverAccordion/RiverAccordion.d.ts +4 -4
  440. package/esm/river/RiverAccordion/RiverAccordion.js +3 -2
  441. package/esm/river/RiverAccordion/RiverAccordion.js.map +1 -1
  442. package/esm/river/RiverAccordion/RiverAccordion.module.js +16 -15
  443. package/esm/river/RiverBreakout/RiverBreakout.d.ts +1 -1
  444. package/esm/river/RiverBreakout/RiverBreakout.js +1 -1
  445. package/esm/river/RiverBreakout/RiverBreakout.js.map +1 -1
  446. package/esm/river/RiverBreakoutTabs/RiverBreakoutTabs.d.ts +5 -5
  447. package/esm/river/RiverBreakoutTabs/RiverBreakoutTabs.js +2 -2
  448. package/esm/river/RiverBreakoutTabs/RiverBreakoutTabs.js.map +1 -1
  449. package/esm/river/RiverBreakoutTabs/RiverBreakoutTabs.module.js +31 -30
  450. package/esm/river/RiverStoryScroll/RiverStoryScroll.d.ts +1 -1
  451. package/esm/river/RiverStoryScroll/RiverStoryScroll.d.ts.map +1 -1
  452. package/esm/river/RiverStoryScroll/RiverStoryScroll.js +5 -3
  453. package/esm/river/RiverStoryScroll/RiverStoryScroll.js.map +1 -1
  454. package/esm/river/RiverStoryScroll/RiverStoryScroll.module.js +8 -7
  455. package/esm/river/RiverStoryScroll/RiverStoryScrollProvider.d.ts +2 -2
  456. package/esm/river/RiverStoryScroll/RiverStoryScrollProvider.d.ts.map +1 -1
  457. package/esm/river/RiverStoryScroll/RiverStoryScrollProvider.js.map +1 -1
  458. package/esm/river/RiverStoryScroll/RiverStoryScrollResponder.d.ts +1 -1
  459. package/esm/river/RiverStoryScroll/RiverStoryScrollResponder.d.ts.map +1 -1
  460. package/esm/river/RiverStoryScroll/RiverStoryScrollResponder.js +1 -1
  461. package/esm/river/RiverStoryScroll/RiverStoryScrollResponder.js.map +1 -1
  462. package/esm/river/RiverStoryScroll/RiverStoryScrollTracker.d.ts +1 -1
  463. package/esm/river/RiverStoryScroll/RiverStoryScrollTracker.d.ts.map +1 -1
  464. package/esm/river/RiverStoryScroll/RiverStoryScrollTracker.js +1 -1
  465. package/esm/river/RiverStoryScroll/RiverStoryScrollTracker.js.map +1 -1
  466. package/esm/river/river-shared.module.js +13 -12
  467. package/esm/utils/getTextContent.js.map +1 -1
  468. package/esm/utils/isFragmentElement.js.map +1 -1
  469. package/lib/Accordion/Accordion.d.ts +2 -2
  470. package/lib/ActionMenu/ActionMenu.d.ts +2 -2
  471. package/lib/AnchorNav/AnchorNav.d.ts +4 -4
  472. package/lib/Bento/Bento.d.ts +4 -4
  473. package/lib/Box/Box.d.ts +1 -1
  474. package/lib/CTABanner/CTABanner.d.ts +1 -1
  475. package/lib/Card/Card.d.ts +2 -2
  476. package/lib/ComparisonTable/ComparisonTable.d.ts +3 -3
  477. package/lib/ExpandableArrow/ExpandableArrow.d.ts +2 -1
  478. package/lib/FAQ/FAQ.d.ts +2 -2
  479. package/lib/FAQ/FAQGroup.d.ts +2 -2
  480. package/lib/Footnotes/Footnotes.d.ts +2 -2
  481. package/lib/FrostedGlassVFX/FrostedGlassVFX.d.ts +1 -1
  482. package/lib/Grid/Grid.d.ts +2 -2
  483. package/lib/IDE/IDE.d.ts +1 -1
  484. package/lib/Icon/Icon.d.ts +2 -2
  485. package/lib/Image/Image.d.ts +1 -1
  486. package/lib/Link/Link.d.ts +1 -1
  487. package/lib/LogoSuite/LogoSuite.d.ts +1 -1
  488. package/lib/MediaPlaylist/MediaPlaylist.d.ts +4 -4
  489. package/lib/MinimalFooter/MinimalFooter.d.ts +3 -3
  490. package/lib/Pagination/Pagination.d.ts +1 -1
  491. package/lib/Pillar/Pillar.d.ts +2 -2
  492. package/lib/PricingOptions/PricingOptions.d.ts +1 -1
  493. package/lib/SectionIntroStacked/SectionIntroStacked.d.ts +3 -3
  494. package/lib/SubNav/SubNav.d.ts +4 -4
  495. package/lib/SubdomainNavBar/SubdomainNavBar.d.ts +3 -3
  496. package/lib/Testimonial/Testimonial.d.ts +1 -1
  497. package/lib/Text/Text.d.ts +1 -1
  498. package/lib/TextCursorAnimation/TextCursorAnimation.d.ts +1 -1
  499. package/lib/ThemeProvider/ThemeProvider.d.ts +1 -1
  500. package/lib/Timeline/Timeline.d.ts +3 -3
  501. package/lib/VideoPlayer/VideoPlayer.d.ts +2 -2
  502. package/lib/VideoPlayer/components/CCButton/CCButton.d.ts +2 -2
  503. package/lib/VideoPlayer/components/Captions/Captions.d.ts +2 -2
  504. package/lib/VideoPlayer/components/ControlsBar/ControlsBar.d.ts +2 -2
  505. package/lib/VideoPlayer/components/FullScreenButton/FullScreenButton.d.ts +2 -2
  506. package/lib/VideoPlayer/components/IconControl/IconControl.d.ts +2 -2
  507. package/lib/VideoPlayer/components/MuteButton/MuteButton.d.ts +2 -2
  508. package/lib/VideoPlayer/components/PauseIcon/PauseIcon.d.ts +2 -2
  509. package/lib/VideoPlayer/components/PlayIcon/PlayIcon.d.ts +2 -2
  510. package/lib/VideoPlayer/components/PlayPauseButton/PlayPauseButton.d.ts +2 -2
  511. package/lib/VideoPlayer/components/Range/Range.d.ts +1 -1
  512. package/lib/VideoPlayer/components/SeekControl/SeekControl.d.ts +2 -2
  513. package/lib/VideoPlayer/components/VideoTooltip/VideoTooltip.d.ts +2 -2
  514. package/lib/VideoPlayer/components/VolumeControl/VolumeControl.d.ts +2 -1
  515. package/lib/animation/Animate/Animate.d.ts +1 -1
  516. package/lib/animation/AnimationProvider/AnimationProvider.d.ts +1 -1
  517. package/lib/component-helpers.d.ts +2 -2
  518. package/lib/css/main.css +148 -838
  519. package/lib/design-tokens/css/tokens/base/colors/color-scales-with-modes.css +1 -1
  520. package/lib/design-tokens/css/tokens/base/colors/light.css +1 -1
  521. package/lib/design-tokens/css/tokens/base/size/size.css +1 -1
  522. package/lib/design-tokens/css/tokens/base/typography/typography.css +1 -1
  523. package/lib/design-tokens/css/tokens/functional/animation/base.css +1 -1
  524. package/lib/design-tokens/css/tokens/functional/colors/global-with-modes.css +1 -1
  525. package/lib/design-tokens/css/tokens/functional/colors/global.css +1 -1
  526. package/lib/design-tokens/css/tokens/functional/components/accordion/colors-with-modes.css +1 -1
  527. package/lib/design-tokens/css/tokens/functional/components/action-menu/colors-with-modes.css +1 -1
  528. package/lib/design-tokens/css/tokens/functional/components/anchor-nav/colors-with-modes.css +1 -1
  529. package/lib/design-tokens/css/tokens/functional/components/bento/base.css +1 -1
  530. package/lib/design-tokens/css/tokens/functional/components/blinking-cursor/colors-with-modes.css +1 -1
  531. package/lib/design-tokens/css/tokens/functional/components/breadcrumbs/colors-with-modes.css +1 -1
  532. package/lib/design-tokens/css/tokens/functional/components/button/colors-with-modes.css +1 -1
  533. package/lib/design-tokens/css/tokens/functional/components/card/base.css +1 -1
  534. package/lib/design-tokens/css/tokens/functional/components/card/colors-with-modes.css +1 -1
  535. package/lib/design-tokens/css/tokens/functional/components/card/colors.css +1 -1
  536. package/lib/design-tokens/css/tokens/functional/components/comparison-table/colors-with-modes.css +1 -1
  537. package/lib/design-tokens/css/tokens/functional/components/comparison-table/comparison-table.css +1 -1
  538. package/lib/design-tokens/css/tokens/functional/components/control/colors-with-modes.css +1 -1
  539. package/lib/design-tokens/css/tokens/functional/components/cta-banner/colors-with-modes.css +1 -1
  540. package/lib/design-tokens/css/tokens/functional/components/eyebrow-banner/colors-with-modes.css +1 -1
  541. package/lib/design-tokens/css/tokens/functional/components/eyebrow-banner/eyebrow-banner.css +1 -1
  542. package/lib/design-tokens/css/tokens/functional/components/faq/base.css +1 -1
  543. package/lib/design-tokens/css/tokens/functional/components/faq/colors-with-modes.css +1 -1
  544. package/lib/design-tokens/css/tokens/functional/components/faq/colors.css +1 -1
  545. package/lib/design-tokens/css/tokens/functional/components/faq/faq.css +1 -1
  546. package/lib/design-tokens/css/tokens/functional/components/footer/base.css +1 -1
  547. package/lib/design-tokens/css/tokens/functional/components/footer/colors-with-modes.css +1 -1
  548. package/lib/design-tokens/css/tokens/functional/components/footer/colors.css +1 -1
  549. package/lib/design-tokens/css/tokens/functional/components/frosted-glass-vfx/base.css +1 -1
  550. package/lib/design-tokens/css/tokens/functional/components/frosted-glass-vfx/colors-with-modes.css +1 -1
  551. package/lib/design-tokens/css/tokens/functional/components/grid/colors-with-modes.css +1 -1
  552. package/lib/design-tokens/css/tokens/functional/components/grid/colors.css +1 -1
  553. package/lib/design-tokens/css/tokens/functional/components/grid/grid.css +1 -1
  554. package/lib/design-tokens/css/tokens/functional/components/hero/base.css +1 -1
  555. package/lib/design-tokens/css/tokens/functional/components/icon/colors-with-modes.css +1 -1
  556. package/lib/design-tokens/css/tokens/functional/components/icon/colors.css +1 -1
  557. package/lib/design-tokens/css/tokens/functional/components/ide/base.css +1 -1
  558. package/lib/design-tokens/css/tokens/functional/components/ide/colors-with-modes.css +1 -1
  559. package/lib/design-tokens/css/tokens/functional/components/image/base.css +1 -1
  560. package/lib/design-tokens/css/tokens/functional/components/inline-code/colors-with-modes.css +1 -1
  561. package/lib/design-tokens/css/tokens/functional/components/inline-code/colors.css +1 -1
  562. package/lib/design-tokens/css/tokens/functional/components/inline-link/base.css +1 -1
  563. package/lib/design-tokens/css/tokens/functional/components/inline-link/colors-with-modes.css +1 -1
  564. package/lib/design-tokens/css/tokens/functional/components/inline-link/colors.css +1 -1
  565. package/lib/design-tokens/css/tokens/functional/components/label/colors-with-modes.css +1 -1
  566. package/lib/design-tokens/css/tokens/functional/components/label/colors.css +1 -1
  567. package/lib/design-tokens/css/tokens/functional/components/link/colors-with-modes.css +1 -1
  568. package/lib/design-tokens/css/tokens/functional/components/link/colors.css +1 -1
  569. package/lib/design-tokens/css/tokens/functional/components/logosuite/base.css +1 -1
  570. package/lib/design-tokens/css/tokens/functional/components/logosuite/colors-with-modes.css +1 -1
  571. package/lib/design-tokens/css/tokens/functional/components/logosuite/colors.css +1 -1
  572. package/lib/design-tokens/css/tokens/functional/components/media-playlist/colors-with-modes.css +1 -1
  573. package/lib/design-tokens/css/tokens/functional/components/media-playlist/colors.css +1 -1
  574. package/lib/design-tokens/css/tokens/functional/components/nav-list/colors-with-modes.css +1 -1
  575. package/lib/design-tokens/css/tokens/functional/components/pricing-options/colors-with-modes.css +1 -1
  576. package/lib/design-tokens/css/tokens/functional/components/pricing-options/colors.css +1 -1
  577. package/lib/design-tokens/css/tokens/functional/components/pricing-options/pricing-options.css +1 -1
  578. package/lib/design-tokens/css/tokens/functional/components/prose/base.css +1 -1
  579. package/lib/design-tokens/css/tokens/functional/components/prose/colors-with-modes.css +1 -1
  580. package/lib/design-tokens/css/tokens/functional/components/river/base.css +1 -1
  581. package/lib/design-tokens/css/tokens/functional/components/river/river.css +1 -1
  582. package/lib/design-tokens/css/tokens/functional/components/river-story-scroll/colors-with-modes.css +1 -1
  583. package/lib/design-tokens/css/tokens/functional/components/section/section.css +1 -1
  584. package/lib/design-tokens/css/tokens/functional/components/statistic/base.css +1 -1
  585. package/lib/design-tokens/css/tokens/functional/components/sub-nav/base.css +1 -1
  586. package/lib/design-tokens/css/tokens/functional/components/sub-nav/colors-with-modes.css +1 -1
  587. package/lib/design-tokens/css/tokens/functional/components/subdomain-nav-bar/colors-with-modes.css +1 -1
  588. package/lib/design-tokens/css/tokens/functional/components/tabs/base.css +1 -1
  589. package/lib/design-tokens/css/tokens/functional/components/tabs/colors-with-modes.css +1 -1
  590. package/lib/design-tokens/css/tokens/functional/components/tabs/colors.css +1 -1
  591. package/lib/design-tokens/css/tokens/functional/components/testimonial/base.css +1 -1
  592. package/lib/design-tokens/css/tokens/functional/components/testimonial/colors-with-modes.css +1 -1
  593. package/lib/design-tokens/css/tokens/functional/components/testimonial/colors.css +1 -1
  594. package/lib/design-tokens/css/tokens/functional/components/text-cursor-animation/base.css +1 -1
  595. package/lib/design-tokens/css/tokens/functional/components/text-cursor-animation/colors-with-modes.css +1 -1
  596. package/lib/design-tokens/css/tokens/functional/components/text-cursor-animation/colors.css +1 -1
  597. package/lib/design-tokens/css/tokens/functional/components/tiles/colors-with-modes.css +1 -1
  598. package/lib/design-tokens/css/tokens/functional/components/timeline/base.css +1 -1
  599. package/lib/design-tokens/css/tokens/functional/components/timeline/colors-with-modes.css +1 -1
  600. package/lib/design-tokens/css/tokens/functional/components/timeline/colors.css +1 -1
  601. package/lib/design-tokens/css/tokens/functional/components/token/colors-with-modes.css +1 -1
  602. package/lib/design-tokens/css/tokens/functional/components/token/colors.css +1 -1
  603. package/lib/design-tokens/css/tokens/functional/components/tooltip/colors-with-modes.css +1 -1
  604. package/lib/design-tokens/css/tokens/functional/components/tooltip/colors.css +1 -1
  605. package/lib/design-tokens/css/tokens/functional/components/video-player/base.css +1 -1
  606. package/lib/design-tokens/css/tokens/functional/components/video-player/colors-with-modes.css +1 -1
  607. package/lib/design-tokens/css/tokens/functional/size/border.css +1 -1
  608. package/lib/design-tokens/css/tokens/functional/size/breakpoints.css +1 -1
  609. package/lib/design-tokens/css/tokens/functional/size/size-coarse.css +1 -1
  610. package/lib/design-tokens/css/tokens/functional/size/size-fine.css +1 -1
  611. package/lib/design-tokens/css/tokens/functional/size/size.css +1 -1
  612. package/lib/design-tokens/css/tokens/functional/size/viewport.css +1 -1
  613. package/lib/design-tokens/css/tokens/functional/typography/typography-responsive.css +1 -1
  614. package/lib/design-tokens/css/tokens/functional/typography/typography.css +1 -1
  615. package/lib/design-tokens/js/module/tokens/base/colors/light.js +1 -1
  616. package/lib/design-tokens/js/module/tokens/base/size/size.js +1 -1
  617. package/lib/design-tokens/js/module/tokens/base/typography/typography.js +1 -1
  618. package/lib/design-tokens/js/module/tokens/functional/animation/base.js +1 -1
  619. package/lib/design-tokens/js/module/tokens/functional/colors/global.js +1 -1
  620. package/lib/design-tokens/js/module/tokens/functional/components/bento/base.js +1 -1
  621. package/lib/design-tokens/js/module/tokens/functional/components/card/base.js +1 -1
  622. package/lib/design-tokens/js/module/tokens/functional/components/card/colors.js +1 -1
  623. package/lib/design-tokens/js/module/tokens/functional/components/comparison-table/comparison-table.js +1 -1
  624. package/lib/design-tokens/js/module/tokens/functional/components/eyebrow-banner/eyebrow-banner.js +1 -1
  625. package/lib/design-tokens/js/module/tokens/functional/components/faq/base.js +1 -1
  626. package/lib/design-tokens/js/module/tokens/functional/components/faq/colors.js +1 -1
  627. package/lib/design-tokens/js/module/tokens/functional/components/faq/faq.js +1 -1
  628. package/lib/design-tokens/js/module/tokens/functional/components/footer/base.js +1 -1
  629. package/lib/design-tokens/js/module/tokens/functional/components/footer/colors.js +1 -1
  630. package/lib/design-tokens/js/module/tokens/functional/components/frosted-glass-vfx/base.js +1 -1
  631. package/lib/design-tokens/js/module/tokens/functional/components/grid/colors.js +1 -1
  632. package/lib/design-tokens/js/module/tokens/functional/components/grid/grid.js +1 -1
  633. package/lib/design-tokens/js/module/tokens/functional/components/hero/base.js +1 -1
  634. package/lib/design-tokens/js/module/tokens/functional/components/icon/colors.js +1 -1
  635. package/lib/design-tokens/js/module/tokens/functional/components/ide/base.js +1 -1
  636. package/lib/design-tokens/js/module/tokens/functional/components/image/base.js +1 -1
  637. package/lib/design-tokens/js/module/tokens/functional/components/inline-code/colors.js +1 -1
  638. package/lib/design-tokens/js/module/tokens/functional/components/inline-link/base.js +1 -1
  639. package/lib/design-tokens/js/module/tokens/functional/components/inline-link/colors.js +1 -1
  640. package/lib/design-tokens/js/module/tokens/functional/components/label/colors.js +1 -1
  641. package/lib/design-tokens/js/module/tokens/functional/components/link/colors.js +1 -1
  642. package/lib/design-tokens/js/module/tokens/functional/components/logosuite/base.js +1 -1
  643. package/lib/design-tokens/js/module/tokens/functional/components/logosuite/colors.js +1 -1
  644. package/lib/design-tokens/js/module/tokens/functional/components/media-playlist/colors.js +1 -1
  645. package/lib/design-tokens/js/module/tokens/functional/components/pricing-options/colors.js +1 -1
  646. package/lib/design-tokens/js/module/tokens/functional/components/pricing-options/pricing-options.js +1 -1
  647. package/lib/design-tokens/js/module/tokens/functional/components/prose/base.js +1 -1
  648. package/lib/design-tokens/js/module/tokens/functional/components/river/base.js +1 -1
  649. package/lib/design-tokens/js/module/tokens/functional/components/river/river.js +1 -1
  650. package/lib/design-tokens/js/module/tokens/functional/components/section/section.js +1 -1
  651. package/lib/design-tokens/js/module/tokens/functional/components/statistic/base.js +1 -1
  652. package/lib/design-tokens/js/module/tokens/functional/components/sub-nav/base.js +1 -1
  653. package/lib/design-tokens/js/module/tokens/functional/components/tabs/base.js +1 -1
  654. package/lib/design-tokens/js/module/tokens/functional/components/tabs/colors.js +1 -1
  655. package/lib/design-tokens/js/module/tokens/functional/components/testimonial/base.js +1 -1
  656. package/lib/design-tokens/js/module/tokens/functional/components/testimonial/colors.js +1 -1
  657. package/lib/design-tokens/js/module/tokens/functional/components/text-cursor-animation/base.js +1 -1
  658. package/lib/design-tokens/js/module/tokens/functional/components/text-cursor-animation/colors.js +1 -1
  659. package/lib/design-tokens/js/module/tokens/functional/components/timeline/base.js +1 -1
  660. package/lib/design-tokens/js/module/tokens/functional/components/timeline/colors.js +1 -1
  661. package/lib/design-tokens/js/module/tokens/functional/components/token/colors.js +1 -1
  662. package/lib/design-tokens/js/module/tokens/functional/components/tooltip/colors.js +1 -1
  663. package/lib/design-tokens/js/module/tokens/functional/components/video-player/base.js +1 -1
  664. package/lib/design-tokens/js/module/tokens/functional/size/border.js +1 -1
  665. package/lib/design-tokens/js/module/tokens/functional/size/breakpoints.js +1 -1
  666. package/lib/design-tokens/js/module/tokens/functional/size/size-coarse.js +1 -1
  667. package/lib/design-tokens/js/module/tokens/functional/size/size-fine.js +1 -1
  668. package/lib/design-tokens/js/module/tokens/functional/size/size.js +1 -1
  669. package/lib/design-tokens/js/module/tokens/functional/size/viewport.js +1 -1
  670. package/lib/design-tokens/js/module/tokens/functional/typography/typography-responsive.js +1 -1
  671. package/lib/design-tokens/js/module/tokens/functional/typography/typography.js +1 -1
  672. package/lib/design-tokens/js/tokens/base/colors/light.js +1 -1
  673. package/lib/design-tokens/js/tokens/base/size/size.js +1 -1
  674. package/lib/design-tokens/js/tokens/base/typography/typography.js +1 -1
  675. package/lib/design-tokens/js/tokens/functional/animation/base.js +1 -1
  676. package/lib/design-tokens/js/tokens/functional/colors/global.js +1 -1
  677. package/lib/design-tokens/js/tokens/functional/components/bento/base.js +1 -1
  678. package/lib/design-tokens/js/tokens/functional/components/card/base.js +1 -1
  679. package/lib/design-tokens/js/tokens/functional/components/card/colors.js +1 -1
  680. package/lib/design-tokens/js/tokens/functional/components/comparison-table/comparison-table.js +1 -1
  681. package/lib/design-tokens/js/tokens/functional/components/eyebrow-banner/eyebrow-banner.js +1 -1
  682. package/lib/design-tokens/js/tokens/functional/components/faq/base.js +1 -1
  683. package/lib/design-tokens/js/tokens/functional/components/faq/colors.js +1 -1
  684. package/lib/design-tokens/js/tokens/functional/components/faq/faq.js +1 -1
  685. package/lib/design-tokens/js/tokens/functional/components/footer/base.js +1 -1
  686. package/lib/design-tokens/js/tokens/functional/components/footer/colors.js +1 -1
  687. package/lib/design-tokens/js/tokens/functional/components/frosted-glass-vfx/base.js +1 -1
  688. package/lib/design-tokens/js/tokens/functional/components/grid/colors.js +1 -1
  689. package/lib/design-tokens/js/tokens/functional/components/grid/grid.js +1 -1
  690. package/lib/design-tokens/js/tokens/functional/components/hero/base.js +1 -1
  691. package/lib/design-tokens/js/tokens/functional/components/icon/colors.js +1 -1
  692. package/lib/design-tokens/js/tokens/functional/components/ide/base.js +1 -1
  693. package/lib/design-tokens/js/tokens/functional/components/image/base.js +1 -1
  694. package/lib/design-tokens/js/tokens/functional/components/inline-code/colors.js +1 -1
  695. package/lib/design-tokens/js/tokens/functional/components/inline-link/base.js +1 -1
  696. package/lib/design-tokens/js/tokens/functional/components/inline-link/colors.js +1 -1
  697. package/lib/design-tokens/js/tokens/functional/components/label/colors.js +1 -1
  698. package/lib/design-tokens/js/tokens/functional/components/link/colors.js +1 -1
  699. package/lib/design-tokens/js/tokens/functional/components/logosuite/base.js +1 -1
  700. package/lib/design-tokens/js/tokens/functional/components/logosuite/colors.js +1 -1
  701. package/lib/design-tokens/js/tokens/functional/components/media-playlist/colors.js +1 -1
  702. package/lib/design-tokens/js/tokens/functional/components/pricing-options/colors.js +1 -1
  703. package/lib/design-tokens/js/tokens/functional/components/pricing-options/pricing-options.js +1 -1
  704. package/lib/design-tokens/js/tokens/functional/components/prose/base.js +1 -1
  705. package/lib/design-tokens/js/tokens/functional/components/river/base.js +1 -1
  706. package/lib/design-tokens/js/tokens/functional/components/river/river.js +1 -1
  707. package/lib/design-tokens/js/tokens/functional/components/section/section.js +1 -1
  708. package/lib/design-tokens/js/tokens/functional/components/statistic/base.js +1 -1
  709. package/lib/design-tokens/js/tokens/functional/components/sub-nav/base.js +1 -1
  710. package/lib/design-tokens/js/tokens/functional/components/tabs/base.js +1 -1
  711. package/lib/design-tokens/js/tokens/functional/components/tabs/colors.js +1 -1
  712. package/lib/design-tokens/js/tokens/functional/components/testimonial/base.js +1 -1
  713. package/lib/design-tokens/js/tokens/functional/components/testimonial/colors.js +1 -1
  714. package/lib/design-tokens/js/tokens/functional/components/text-cursor-animation/base.js +1 -1
  715. package/lib/design-tokens/js/tokens/functional/components/text-cursor-animation/colors.js +1 -1
  716. package/lib/design-tokens/js/tokens/functional/components/timeline/base.js +1 -1
  717. package/lib/design-tokens/js/tokens/functional/components/timeline/colors.js +1 -1
  718. package/lib/design-tokens/js/tokens/functional/components/token/colors.js +1 -1
  719. package/lib/design-tokens/js/tokens/functional/components/tooltip/colors.js +1 -1
  720. package/lib/design-tokens/js/tokens/functional/components/video-player/base.js +1 -1
  721. package/lib/design-tokens/js/tokens/functional/size/border.js +1 -1
  722. package/lib/design-tokens/js/tokens/functional/size/breakpoints.js +1 -1
  723. package/lib/design-tokens/js/tokens/functional/size/size-coarse.js +1 -1
  724. package/lib/design-tokens/js/tokens/functional/size/size-fine.js +1 -1
  725. package/lib/design-tokens/js/tokens/functional/size/size.js +1 -1
  726. package/lib/design-tokens/js/tokens/functional/size/viewport.js +1 -1
  727. package/lib/design-tokens/js/tokens/functional/typography/typography-responsive.js +1 -1
  728. package/lib/design-tokens/js/tokens/functional/typography/typography.js +1 -1
  729. package/lib/design-tokens/scss/tokens/base/colors/light.scss +1 -1
  730. package/lib/design-tokens/scss/tokens/base/size/size.scss +1 -1
  731. package/lib/design-tokens/scss/tokens/base/typography/typography.scss +1 -1
  732. package/lib/design-tokens/scss/tokens/functional/animation/base.scss +1 -1
  733. package/lib/design-tokens/scss/tokens/functional/colors/global.scss +1 -1
  734. package/lib/design-tokens/scss/tokens/functional/components/bento/base.scss +1 -1
  735. package/lib/design-tokens/scss/tokens/functional/components/card/base.scss +1 -1
  736. package/lib/design-tokens/scss/tokens/functional/components/card/colors.scss +1 -1
  737. package/lib/design-tokens/scss/tokens/functional/components/comparison-table/comparison-table.scss +1 -1
  738. package/lib/design-tokens/scss/tokens/functional/components/eyebrow-banner/eyebrow-banner.scss +1 -1
  739. package/lib/design-tokens/scss/tokens/functional/components/faq/base.scss +1 -1
  740. package/lib/design-tokens/scss/tokens/functional/components/faq/colors.scss +1 -1
  741. package/lib/design-tokens/scss/tokens/functional/components/faq/faq.scss +1 -1
  742. package/lib/design-tokens/scss/tokens/functional/components/footer/base.scss +1 -1
  743. package/lib/design-tokens/scss/tokens/functional/components/footer/colors.scss +1 -1
  744. package/lib/design-tokens/scss/tokens/functional/components/frosted-glass-vfx/base.scss +1 -1
  745. package/lib/design-tokens/scss/tokens/functional/components/grid/colors.scss +1 -1
  746. package/lib/design-tokens/scss/tokens/functional/components/grid/grid.scss +1 -1
  747. package/lib/design-tokens/scss/tokens/functional/components/hero/base.scss +1 -1
  748. package/lib/design-tokens/scss/tokens/functional/components/icon/colors.scss +1 -1
  749. package/lib/design-tokens/scss/tokens/functional/components/ide/base.scss +1 -1
  750. package/lib/design-tokens/scss/tokens/functional/components/image/base.scss +1 -1
  751. package/lib/design-tokens/scss/tokens/functional/components/inline-code/colors.scss +1 -1
  752. package/lib/design-tokens/scss/tokens/functional/components/inline-link/base.scss +1 -1
  753. package/lib/design-tokens/scss/tokens/functional/components/inline-link/colors.scss +1 -1
  754. package/lib/design-tokens/scss/tokens/functional/components/label/colors.scss +1 -1
  755. package/lib/design-tokens/scss/tokens/functional/components/link/colors.scss +1 -1
  756. package/lib/design-tokens/scss/tokens/functional/components/logosuite/base.scss +1 -1
  757. package/lib/design-tokens/scss/tokens/functional/components/logosuite/colors.scss +1 -1
  758. package/lib/design-tokens/scss/tokens/functional/components/media-playlist/colors.scss +1 -1
  759. package/lib/design-tokens/scss/tokens/functional/components/pricing-options/colors.scss +1 -1
  760. package/lib/design-tokens/scss/tokens/functional/components/pricing-options/pricing-options.scss +1 -1
  761. package/lib/design-tokens/scss/tokens/functional/components/prose/base.scss +1 -1
  762. package/lib/design-tokens/scss/tokens/functional/components/river/base.scss +1 -1
  763. package/lib/design-tokens/scss/tokens/functional/components/river/river.scss +1 -1
  764. package/lib/design-tokens/scss/tokens/functional/components/section/section.scss +1 -1
  765. package/lib/design-tokens/scss/tokens/functional/components/statistic/base.scss +1 -1
  766. package/lib/design-tokens/scss/tokens/functional/components/sub-nav/base.scss +1 -1
  767. package/lib/design-tokens/scss/tokens/functional/components/tabs/base.scss +1 -1
  768. package/lib/design-tokens/scss/tokens/functional/components/tabs/colors.scss +1 -1
  769. package/lib/design-tokens/scss/tokens/functional/components/testimonial/base.scss +1 -1
  770. package/lib/design-tokens/scss/tokens/functional/components/testimonial/colors.scss +1 -1
  771. package/lib/design-tokens/scss/tokens/functional/components/text-cursor-animation/base.scss +1 -1
  772. package/lib/design-tokens/scss/tokens/functional/components/text-cursor-animation/colors.scss +1 -1
  773. package/lib/design-tokens/scss/tokens/functional/components/timeline/base.scss +1 -1
  774. package/lib/design-tokens/scss/tokens/functional/components/timeline/colors.scss +1 -1
  775. package/lib/design-tokens/scss/tokens/functional/components/token/colors.scss +1 -1
  776. package/lib/design-tokens/scss/tokens/functional/components/tooltip/colors.scss +1 -1
  777. package/lib/design-tokens/scss/tokens/functional/components/video-player/base.scss +1 -1
  778. package/lib/design-tokens/scss/tokens/functional/size/border.scss +1 -1
  779. package/lib/design-tokens/scss/tokens/functional/size/breakpoints.scss +1 -1
  780. package/lib/design-tokens/scss/tokens/functional/size/size-coarse.scss +1 -1
  781. package/lib/design-tokens/scss/tokens/functional/size/size-fine.scss +1 -1
  782. package/lib/design-tokens/scss/tokens/functional/size/size.scss +1 -1
  783. package/lib/design-tokens/scss/tokens/functional/size/viewport.scss +1 -1
  784. package/lib/design-tokens/scss/tokens/functional/typography/typography-responsive.scss +1 -1
  785. package/lib/design-tokens/scss/tokens/functional/typography/typography.scss +1 -1
  786. package/lib/design-tokens/ts/tokens/base/colors/light.d.ts +1 -1
  787. package/lib/design-tokens/ts/tokens/base/colors/light.js +1 -1
  788. package/lib/design-tokens/ts/tokens/base/size/size.d.ts +1 -1
  789. package/lib/design-tokens/ts/tokens/base/size/size.js +1 -1
  790. package/lib/design-tokens/ts/tokens/base/typography/typography.d.ts +1 -1
  791. package/lib/design-tokens/ts/tokens/base/typography/typography.js +1 -1
  792. package/lib/design-tokens/ts/tokens/functional/animation/base.d.ts +1 -1
  793. package/lib/design-tokens/ts/tokens/functional/animation/base.js +1 -1
  794. package/lib/design-tokens/ts/tokens/functional/colors/global.d.ts +1 -1
  795. package/lib/design-tokens/ts/tokens/functional/colors/global.js +1 -1
  796. package/lib/design-tokens/ts/tokens/functional/components/bento/base.d.ts +1 -1
  797. package/lib/design-tokens/ts/tokens/functional/components/bento/base.js +1 -1
  798. package/lib/design-tokens/ts/tokens/functional/components/card/base.d.ts +1 -1
  799. package/lib/design-tokens/ts/tokens/functional/components/card/base.js +1 -1
  800. package/lib/design-tokens/ts/tokens/functional/components/card/colors.d.ts +1 -1
  801. package/lib/design-tokens/ts/tokens/functional/components/card/colors.js +1 -1
  802. package/lib/design-tokens/ts/tokens/functional/components/comparison-table/comparison-table.d.ts +1 -1
  803. package/lib/design-tokens/ts/tokens/functional/components/comparison-table/comparison-table.js +1 -1
  804. package/lib/design-tokens/ts/tokens/functional/components/eyebrow-banner/eyebrow-banner.d.ts +1 -1
  805. package/lib/design-tokens/ts/tokens/functional/components/eyebrow-banner/eyebrow-banner.js +1 -1
  806. package/lib/design-tokens/ts/tokens/functional/components/faq/base.d.ts +1 -1
  807. package/lib/design-tokens/ts/tokens/functional/components/faq/base.js +1 -1
  808. package/lib/design-tokens/ts/tokens/functional/components/faq/colors.d.ts +1 -1
  809. package/lib/design-tokens/ts/tokens/functional/components/faq/colors.js +1 -1
  810. package/lib/design-tokens/ts/tokens/functional/components/faq/faq.d.ts +1 -1
  811. package/lib/design-tokens/ts/tokens/functional/components/faq/faq.js +1 -1
  812. package/lib/design-tokens/ts/tokens/functional/components/footer/base.d.ts +1 -1
  813. package/lib/design-tokens/ts/tokens/functional/components/footer/base.js +1 -1
  814. package/lib/design-tokens/ts/tokens/functional/components/footer/colors.d.ts +1 -1
  815. package/lib/design-tokens/ts/tokens/functional/components/footer/colors.js +1 -1
  816. package/lib/design-tokens/ts/tokens/functional/components/frosted-glass-vfx/base.d.ts +1 -1
  817. package/lib/design-tokens/ts/tokens/functional/components/frosted-glass-vfx/base.js +1 -1
  818. package/lib/design-tokens/ts/tokens/functional/components/grid/colors.d.ts +1 -1
  819. package/lib/design-tokens/ts/tokens/functional/components/grid/colors.js +1 -1
  820. package/lib/design-tokens/ts/tokens/functional/components/grid/grid.d.ts +1 -1
  821. package/lib/design-tokens/ts/tokens/functional/components/grid/grid.js +1 -1
  822. package/lib/design-tokens/ts/tokens/functional/components/hero/base.d.ts +1 -1
  823. package/lib/design-tokens/ts/tokens/functional/components/hero/base.js +1 -1
  824. package/lib/design-tokens/ts/tokens/functional/components/icon/colors.d.ts +1 -1
  825. package/lib/design-tokens/ts/tokens/functional/components/icon/colors.js +1 -1
  826. package/lib/design-tokens/ts/tokens/functional/components/ide/base.d.ts +1 -1
  827. package/lib/design-tokens/ts/tokens/functional/components/ide/base.js +1 -1
  828. package/lib/design-tokens/ts/tokens/functional/components/image/base.d.ts +1 -1
  829. package/lib/design-tokens/ts/tokens/functional/components/image/base.js +1 -1
  830. package/lib/design-tokens/ts/tokens/functional/components/inline-code/colors.d.ts +1 -1
  831. package/lib/design-tokens/ts/tokens/functional/components/inline-code/colors.js +1 -1
  832. package/lib/design-tokens/ts/tokens/functional/components/inline-link/base.d.ts +1 -1
  833. package/lib/design-tokens/ts/tokens/functional/components/inline-link/base.js +1 -1
  834. package/lib/design-tokens/ts/tokens/functional/components/inline-link/colors.d.ts +1 -1
  835. package/lib/design-tokens/ts/tokens/functional/components/inline-link/colors.js +1 -1
  836. package/lib/design-tokens/ts/tokens/functional/components/label/colors.d.ts +1 -1
  837. package/lib/design-tokens/ts/tokens/functional/components/label/colors.js +1 -1
  838. package/lib/design-tokens/ts/tokens/functional/components/link/colors.d.ts +1 -1
  839. package/lib/design-tokens/ts/tokens/functional/components/link/colors.js +1 -1
  840. package/lib/design-tokens/ts/tokens/functional/components/logosuite/base.d.ts +1 -1
  841. package/lib/design-tokens/ts/tokens/functional/components/logosuite/base.js +1 -1
  842. package/lib/design-tokens/ts/tokens/functional/components/logosuite/colors.d.ts +1 -1
  843. package/lib/design-tokens/ts/tokens/functional/components/logosuite/colors.js +1 -1
  844. package/lib/design-tokens/ts/tokens/functional/components/media-playlist/colors.d.ts +1 -1
  845. package/lib/design-tokens/ts/tokens/functional/components/media-playlist/colors.js +1 -1
  846. package/lib/design-tokens/ts/tokens/functional/components/pricing-options/colors.d.ts +1 -1
  847. package/lib/design-tokens/ts/tokens/functional/components/pricing-options/colors.js +1 -1
  848. package/lib/design-tokens/ts/tokens/functional/components/pricing-options/pricing-options.d.ts +1 -1
  849. package/lib/design-tokens/ts/tokens/functional/components/pricing-options/pricing-options.js +1 -1
  850. package/lib/design-tokens/ts/tokens/functional/components/prose/base.d.ts +1 -1
  851. package/lib/design-tokens/ts/tokens/functional/components/prose/base.js +1 -1
  852. package/lib/design-tokens/ts/tokens/functional/components/river/base.d.ts +1 -1
  853. package/lib/design-tokens/ts/tokens/functional/components/river/base.js +1 -1
  854. package/lib/design-tokens/ts/tokens/functional/components/river/river.d.ts +1 -1
  855. package/lib/design-tokens/ts/tokens/functional/components/river/river.js +1 -1
  856. package/lib/design-tokens/ts/tokens/functional/components/section/section.d.ts +1 -1
  857. package/lib/design-tokens/ts/tokens/functional/components/section/section.js +1 -1
  858. package/lib/design-tokens/ts/tokens/functional/components/statistic/base.d.ts +1 -1
  859. package/lib/design-tokens/ts/tokens/functional/components/statistic/base.js +1 -1
  860. package/lib/design-tokens/ts/tokens/functional/components/sub-nav/base.d.ts +1 -1
  861. package/lib/design-tokens/ts/tokens/functional/components/sub-nav/base.js +1 -1
  862. package/lib/design-tokens/ts/tokens/functional/components/tabs/base.d.ts +1 -1
  863. package/lib/design-tokens/ts/tokens/functional/components/tabs/base.js +1 -1
  864. package/lib/design-tokens/ts/tokens/functional/components/tabs/colors.d.ts +1 -1
  865. package/lib/design-tokens/ts/tokens/functional/components/tabs/colors.js +1 -1
  866. package/lib/design-tokens/ts/tokens/functional/components/testimonial/base.d.ts +1 -1
  867. package/lib/design-tokens/ts/tokens/functional/components/testimonial/base.js +1 -1
  868. package/lib/design-tokens/ts/tokens/functional/components/testimonial/colors.d.ts +1 -1
  869. package/lib/design-tokens/ts/tokens/functional/components/testimonial/colors.js +1 -1
  870. package/lib/design-tokens/ts/tokens/functional/components/text-cursor-animation/base.d.ts +1 -1
  871. package/lib/design-tokens/ts/tokens/functional/components/text-cursor-animation/base.js +1 -1
  872. package/lib/design-tokens/ts/tokens/functional/components/text-cursor-animation/colors.d.ts +1 -1
  873. package/lib/design-tokens/ts/tokens/functional/components/text-cursor-animation/colors.js +1 -1
  874. package/lib/design-tokens/ts/tokens/functional/components/timeline/base.d.ts +1 -1
  875. package/lib/design-tokens/ts/tokens/functional/components/timeline/base.js +1 -1
  876. package/lib/design-tokens/ts/tokens/functional/components/timeline/colors.d.ts +1 -1
  877. package/lib/design-tokens/ts/tokens/functional/components/timeline/colors.js +1 -1
  878. package/lib/design-tokens/ts/tokens/functional/components/token/colors.d.ts +1 -1
  879. package/lib/design-tokens/ts/tokens/functional/components/token/colors.js +1 -1
  880. package/lib/design-tokens/ts/tokens/functional/components/tooltip/colors.d.ts +1 -1
  881. package/lib/design-tokens/ts/tokens/functional/components/tooltip/colors.js +1 -1
  882. package/lib/design-tokens/ts/tokens/functional/components/video-player/base.d.ts +1 -1
  883. package/lib/design-tokens/ts/tokens/functional/components/video-player/base.js +1 -1
  884. package/lib/design-tokens/ts/tokens/functional/size/border.d.ts +1 -1
  885. package/lib/design-tokens/ts/tokens/functional/size/border.js +1 -1
  886. package/lib/design-tokens/ts/tokens/functional/size/breakpoints.d.ts +1 -1
  887. package/lib/design-tokens/ts/tokens/functional/size/breakpoints.js +1 -1
  888. package/lib/design-tokens/ts/tokens/functional/size/size-coarse.d.ts +1 -1
  889. package/lib/design-tokens/ts/tokens/functional/size/size-coarse.js +1 -1
  890. package/lib/design-tokens/ts/tokens/functional/size/size-fine.d.ts +1 -1
  891. package/lib/design-tokens/ts/tokens/functional/size/size-fine.js +1 -1
  892. package/lib/design-tokens/ts/tokens/functional/size/size.d.ts +1 -1
  893. package/lib/design-tokens/ts/tokens/functional/size/size.js +1 -1
  894. package/lib/design-tokens/ts/tokens/functional/size/viewport.d.ts +1 -1
  895. package/lib/design-tokens/ts/tokens/functional/size/viewport.js +1 -1
  896. package/lib/design-tokens/ts/tokens/functional/typography/typography-responsive.d.ts +1 -1
  897. package/lib/design-tokens/ts/tokens/functional/typography/typography-responsive.js +1 -1
  898. package/lib/design-tokens/ts/tokens/functional/typography/typography.d.ts +1 -1
  899. package/lib/design-tokens/ts/tokens/functional/typography/typography.js +1 -1
  900. package/lib/forms/FormControl/FormControl.d.ts +5 -5
  901. package/lib/forms/Select/Select.d.ts +2 -2
  902. package/lib/index.js +1 -1
  903. package/lib/list/OrderedList/OrderedList.d.ts +2 -2
  904. package/lib/list/UnorderedList/UnorderedList.d.ts +2 -2
  905. package/lib/river/RiverAccordion/RiverAccordion.d.ts +4 -4
  906. package/lib/river/RiverBreakout/RiverBreakout.d.ts +1 -1
  907. package/lib/river/RiverBreakoutTabs/RiverBreakoutTabs.d.ts +5 -5
  908. package/lib/river/RiverStoryScroll/RiverStoryScroll.d.ts +1 -1
  909. package/lib/river/RiverStoryScroll/RiverStoryScrollProvider.d.ts +2 -2
  910. package/lib/river/RiverStoryScroll/RiverStoryScrollResponder.d.ts +1 -1
  911. package/lib/river/RiverStoryScroll/RiverStoryScrollTracker.d.ts +1 -1
  912. package/llms.txt +2 -2
  913. package/package.json +24 -23
  914. package/esm/node_modules/@primer/octicons-react/dist/index.esm.js +0 -434
  915. package/esm/node_modules/@primer/octicons-react/dist/index.esm.js.map +0 -1
@@ -1,5 +1,6 @@
1
- import './SectionIntroStacked.module-w4PEL6ek.css';var e = {
2
- SectionIntroStacked: "Primer_Brand__SectionIntroStacked-module__SectionIntroStacked___UM_8Y",
1
+ import './SectionIntroStacked.module-w4PEL6ek.css';//#region src/SectionIntroStacked/SectionIntroStacked.module.css
2
+ var e = "Primer_Brand__SectionIntroStacked-module__SectionIntroStacked___UM_8Y", t = "Primer_Brand__SectionIntroStacked-module__SectionIntroStackedItem__content___kUlfY", n = "Primer_Brand__SectionIntroStacked-module__SectionIntroStackedItem__icon___PkmCx", r = {
3
+ SectionIntroStacked: e,
3
4
  "SectionIntroStacked--variant-gridline": "Primer_Brand__SectionIntroStacked-module__SectionIntroStacked--variant-gridline___TUqhi",
4
5
  "SectionIntroStacked-heading--muted": "Primer_Brand__SectionIntroStacked-module__SectionIntroStacked-heading--muted___MNSqH",
5
6
  "SectionIntroStackedItem__item-text--muted": "Primer_Brand__SectionIntroStacked-module__SectionIntroStackedItem__item-text--muted___PAxL5",
@@ -12,10 +13,10 @@ import './SectionIntroStacked.module-w4PEL6ek.css';var e = {
12
13
  "SectionIntroStacked-content": "Primer_Brand__SectionIntroStacked-module__SectionIntroStacked-content___Sh_hs",
13
14
  "SectionIntroStackedItem-item": "Primer_Brand__SectionIntroStacked-module__SectionIntroStackedItem-item___hzIws",
14
15
  "SectionIntroStackedItem-item--with-icon": "Primer_Brand__SectionIntroStacked-module__SectionIntroStackedItem-item--with-icon___XYMFo",
15
- SectionIntroStackedItem__content: "Primer_Brand__SectionIntroStacked-module__SectionIntroStackedItem__content___kUlfY",
16
- SectionIntroStackedItem__icon: "Primer_Brand__SectionIntroStacked-module__SectionIntroStackedItem__icon___PkmCx"
16
+ SectionIntroStackedItem__content: t,
17
+ SectionIntroStackedItem__icon: n
17
18
  };
18
19
  //#endregion
19
- export { e as default };
20
+ export { e as SectionIntroStacked, t as SectionIntroStackedItem__content, n as SectionIntroStackedItem__icon, r as default };
20
21
 
21
22
  //# sourceMappingURL=SectionIntroStacked.module.js.map
@@ -1,5 +1,5 @@
1
1
  import '../packages/design-tokens/lib/design-tokens/css/tokens/functional/size/size-SXubYfUg.css';/* empty css */
2
- import e from "../node_modules/clsx/dist/clsx.js";
2
+ import { clsx as e } from "../node_modules/clsx/dist/clsx.js";
3
3
  import { BaseSizeScale as t } from "../constants.js";
4
4
  import { useAnimation as n } from "../animation/useAnimation.js";
5
5
  import r from "./Stack.module.js";
@@ -1 +1 @@
1
- {"version":3,"file":"Stack.js","names":[],"sources":["../../src/Stack/Stack.tsx"],"sourcesContent":["import React, {forwardRef, useMemo} from 'react'\nimport {clsx} from 'clsx'\n\nimport type {BaseProps} from '../component-helpers'\nimport {BaseSizeScale} from '../constants'\nimport {useAnimation} from '../animation'\n\nimport '@primer/brand-primitives/lib/design-tokens/css/tokens/functional/size/size.css'\nimport styles from './Stack.module.css'\n\nexport const StackDirectionVariants = ['horizontal', 'vertical'] as const\ntype StackDirectionVariants = (typeof StackDirectionVariants)[number]\nexport const defaultStackDirection = StackDirectionVariants[1]\n\nexport const StackSpacingVariants = ['none', 'condensed', 'normal', 'spacious', ...BaseSizeScale] as const\ntype StackSpacingVariants = (typeof StackSpacingVariants)[number]\nexport const defaultStackSpacing = StackSpacingVariants[1]\n\nexport const StackAlignItemVariants = ['center', 'flex-start', 'flex-end'] as const\ntype StackAlignItemVariants = (typeof StackAlignItemVariants)[number]\n\nexport const StackFlexWrapVariants = ['wrap', 'nowrap'] as const\ntype StackFlexWrapVariants = (typeof StackFlexWrapVariants)[number]\n\nexport const StackJustifyContentVariants = [\n ...StackAlignItemVariants,\n 'space-between',\n 'space-around',\n 'space-evenly',\n] as const\ntype justifyContentVariants = (typeof StackJustifyContentVariants)[number]\n\ntype ResponsiveJustifyContentMap = {\n narrow?: justifyContentVariants\n regular?: justifyContentVariants\n wide?: justifyContentVariants\n}\n\ntype ResponsiveAlignItemsMap = {\n narrow?: StackAlignItemVariants\n regular?: StackAlignItemVariants\n wide?: StackAlignItemVariants\n}\n\ntype ResponsiveDirectionMap = {\n narrow?: StackDirectionVariants\n regular?: StackDirectionVariants\n wide?: StackDirectionVariants\n}\n\ntype ResponsiveSpacingMap = {\n narrow?: StackSpacingVariants\n regular?: StackSpacingVariants\n wide?: StackSpacingVariants\n}\n\ntype ResponsiveFlexWrapMap = {\n narrow?: StackFlexWrapVariants\n regular?: StackFlexWrapVariants\n wide?: StackFlexWrapVariants\n}\n\nexport type StackProps = BaseProps<HTMLElement> & {\n children: React.ReactNode[] | React.ReactNode\n /**\n * Defines the flex-direction CSS property.\n * A string value will be applied to all viewports.\n * An object can be used to define different values for different viewports.\n */\n direction?: StackDirectionVariants | ResponsiveDirectionMap\n /**\n * Defines the gap CSS property.\n * A string value will be applied to all viewports.\n * An object can be used to define different values for different viewports.\n */\n gap?: StackSpacingVariants | ResponsiveSpacingMap\n /**\n * Applies vertical alignment to child elements relative to the Stack, using the align-items CSS property.\n * A string value will be applied to all viewports.\n * An object can be used to define different values for different viewports.\n */\n alignItems?: StackAlignItemVariants | ResponsiveAlignItemsMap\n /**\n * Defines the padding CSS property on the parent Stack.\n * A string value will be applied to all viewports.\n * An object can be used to define different values for different viewports.\n */\n padding?: StackSpacingVariants | ResponsiveSpacingMap\n /**\n * Applies horizontal alignment to child elements relative to the Stack, using the justify-content CSS property.\n * A string value will be applied to all viewports.\n * An object can be used to define different values for different viewports.\n */\n justifyContent?: justifyContentVariants | ResponsiveJustifyContentMap\n /**\n * Forward inline styles\n */\n style?: React.CSSProperties\n /**\n * Applies flex-wrap to the Stack, using the flex-wrap CSS property.\n */\n flexWrap?: StackFlexWrapVariants | ResponsiveFlexWrapMap\n} & BaseProps<HTMLDivElement> &\n React.HTMLAttributes<HTMLDivElement>\n\nconst StackBase = (\n {\n animate,\n children,\n direction = defaultStackDirection,\n gap = defaultStackSpacing,\n alignItems,\n padding = defaultStackSpacing,\n justifyContent,\n className,\n style,\n flexWrap,\n ...rest\n }: StackProps,\n ref,\n): React.ReactElement => {\n const {classes: animationClasses, styles: animationInlineStyles} = useAnimation(animate)\n\n const directionClass = useMemo(\n () =>\n typeof direction === 'string'\n ? styles[`Stack--${direction}`]\n : Object.keys(direction)\n .map(viewport => styles[`Stack-${viewport}--${direction[viewport]}`])\n .join(' '),\n [direction],\n )\n\n const gapClass = useMemo(\n () =>\n typeof gap === 'string' || typeof gap === 'number'\n ? styles[`Stack--gap-${gap}`]\n : Object.keys(gap)\n .map(viewport => styles[`Stack-${viewport}--gap-${gap[viewport]}`])\n .join(' '),\n [gap],\n )\n\n const paddingClass = useMemo(\n () =>\n typeof padding === 'string' || typeof padding === 'number'\n ? styles[`Stack--padding-${padding}`]\n : Object.keys(padding)\n .map(viewport => styles[`Stack-${viewport}--padding-${padding[viewport]}`])\n .join(' '),\n [padding],\n )\n\n const alignItemsClass = useMemo(\n () =>\n typeof alignItems === 'string'\n ? styles[`Stack--align-items-${alignItems}`]\n : typeof alignItems === 'object'\n ? Object.keys(alignItems)\n .map(viewport => styles[`Stack-${viewport}--align-items-${alignItems[viewport]}`])\n .join(' ')\n : null,\n [alignItems],\n )\n\n const justifyContentClass = useMemo(\n () =>\n typeof justifyContent === 'string'\n ? styles[`Stack--justify-content-${justifyContent}`]\n : typeof justifyContent === 'object'\n ? Object.keys(justifyContent)\n .map(viewport => styles[`Stack-${viewport}--justify-content-${justifyContent[viewport]}`])\n .join(' ')\n : null,\n [justifyContent],\n )\n\n const flexWrapClass = useMemo(\n () =>\n typeof flexWrap === 'string'\n ? styles[`Stack-flexWrap--${flexWrap}`]\n : typeof flexWrap === 'object'\n ? Object.keys(flexWrap)\n .map(viewport => styles[`Stack-${viewport}-flexWrap--${flexWrap[viewport]}`])\n .join(' ')\n : null,\n [flexWrap],\n )\n\n return (\n <div\n ref={ref}\n className={clsx(\n animationClasses,\n styles.Stack,\n directionClass,\n gapClass,\n alignItemsClass,\n justifyContentClass,\n paddingClass,\n flexWrapClass,\n className,\n )}\n style={{...animationInlineStyles, ...style}}\n {...rest}\n >\n {children}\n </div>\n )\n}\n\n/**\n * Stack enables layout of its immediate children along the vertical or horizontal axis\n * @see https://primer.style/brand/components/Stack\n */\nexport const Stack = forwardRef(StackBase)\n"],"mappings":";;;;;;;;AAUA,IAAa,IAAyB,CAAC,cAAc,WAAW,EAEnD,IAAwB,EAAuB,IAE/C,IAAuB;CAAC;CAAQ;CAAa;CAAU;CAAY,GAAG;CAAc,EAEpF,IAAsB,EAAqB,IAE3C,IAAyB;CAAC;CAAU;CAAc;CAAW,EAG7D,IAAwB,CAAC,QAAQ,SAAS,EAG1C,IAA8B;CACzC,GAAG;CACH;CACA;CACA;CACD,EA0LY,IAAQ,GA7GnB,EACE,YACA,aACA,eAAY,GACZ,SAAM,GACN,eACA,aAAU,GACV,mBACA,cACA,UACA,aACA,GAAG,KAEL,MACuB;CACvB,IAAM,EAAC,SAAS,GAAkB,QAAQ,MAAyB,EAAa,EAAQ,EAElF,IAAiB,QAEnB,OAAO,KAAc,WACjB,EAAO,UAAU,OACjB,OAAO,KAAK,EAAU,CACnB,KAAI,MAAY,EAAO,SAAS,EAAS,IAAI,EAAU,MAAa,CACpE,KAAK,IAAI,EAClB,CAAC,EAAU,CACZ,EAEK,IAAW,QAEb,OAAO,KAAQ,YAAY,OAAO,KAAQ,WACtC,EAAO,cAAc,OACrB,OAAO,KAAK,EAAI,CACb,KAAI,MAAY,EAAO,SAAS,EAAS,QAAQ,EAAI,MAAa,CAClE,KAAK,IAAI,EAClB,CAAC,EAAI,CACN,EAEK,IAAe,QAEjB,OAAO,KAAY,YAAY,OAAO,KAAY,WAC9C,EAAO,kBAAkB,OACzB,OAAO,KAAK,EAAQ,CACjB,KAAI,MAAY,EAAO,SAAS,EAAS,YAAY,EAAQ,MAAa,CAC1E,KAAK,IAAI,EAClB,CAAC,EAAQ,CACV,EAEK,IAAkB,QAEpB,OAAO,KAAe,WAClB,EAAO,sBAAsB,OAC7B,OAAO,KAAe,WACtB,OAAO,KAAK,EAAW,CACpB,KAAI,MAAY,EAAO,SAAS,EAAS,gBAAgB,EAAW,MAAa,CACjF,KAAK,IAAI,GACZ,MACN,CAAC,EAAW,CACb,EAEK,IAAsB,QAExB,OAAO,KAAmB,WACtB,EAAO,0BAA0B,OACjC,OAAO,KAAmB,WAC1B,OAAO,KAAK,EAAe,CACxB,KAAI,MAAY,EAAO,SAAS,EAAS,oBAAoB,EAAe,MAAa,CACzF,KAAK,IAAI,GACZ,MACN,CAAC,EAAe,CACjB,EAEK,IAAgB,QAElB,OAAO,KAAa,WAChB,EAAO,mBAAmB,OAC1B,OAAO,KAAa,WACpB,OAAO,KAAK,EAAS,CAClB,KAAI,MAAY,EAAO,SAAS,EAAS,aAAa,EAAS,MAAa,CAC5E,KAAK,IAAI,GACZ,MACN,CAAC,EAAS,CACX;AAED,QACE,kBAAC,OAAD;EACO;EACL,WAAW,EACT,GACA,EAAO,OACP,GACA,GACA,GACA,GACA,GACA,GACA,EACD;EACD,OAAO;GAAC,GAAG;GAAuB,GAAG;GAAM;EAC3C,GAAI;EAEH;EACG,CAAA;EAQgC"}
1
+ {"version":3,"file":"Stack.js","names":[],"sources":["../../src/Stack/Stack.tsx"],"sourcesContent":["import React, {forwardRef, useMemo} from 'react'\nimport {clsx} from 'clsx'\n\nimport type {BaseProps} from '../component-helpers'\nimport {BaseSizeScale} from '../constants'\nimport {useAnimation} from '../animation'\n\nimport '@primer/brand-primitives/lib/design-tokens/css/tokens/functional/size/size.css'\nimport styles from './Stack.module.css'\n\nexport const StackDirectionVariants = ['horizontal', 'vertical'] as const\ntype StackDirectionVariants = (typeof StackDirectionVariants)[number]\nexport const defaultStackDirection = StackDirectionVariants[1]\n\nexport const StackSpacingVariants = ['none', 'condensed', 'normal', 'spacious', ...BaseSizeScale] as const\ntype StackSpacingVariants = (typeof StackSpacingVariants)[number]\nexport const defaultStackSpacing = StackSpacingVariants[1]\n\nexport const StackAlignItemVariants = ['center', 'flex-start', 'flex-end'] as const\ntype StackAlignItemVariants = (typeof StackAlignItemVariants)[number]\n\nexport const StackFlexWrapVariants = ['wrap', 'nowrap'] as const\ntype StackFlexWrapVariants = (typeof StackFlexWrapVariants)[number]\n\nexport const StackJustifyContentVariants = [\n ...StackAlignItemVariants,\n 'space-between',\n 'space-around',\n 'space-evenly',\n] as const\ntype justifyContentVariants = (typeof StackJustifyContentVariants)[number]\n\ntype ResponsiveJustifyContentMap = {\n narrow?: justifyContentVariants\n regular?: justifyContentVariants\n wide?: justifyContentVariants\n}\n\ntype ResponsiveAlignItemsMap = {\n narrow?: StackAlignItemVariants\n regular?: StackAlignItemVariants\n wide?: StackAlignItemVariants\n}\n\ntype ResponsiveDirectionMap = {\n narrow?: StackDirectionVariants\n regular?: StackDirectionVariants\n wide?: StackDirectionVariants\n}\n\ntype ResponsiveSpacingMap = {\n narrow?: StackSpacingVariants\n regular?: StackSpacingVariants\n wide?: StackSpacingVariants\n}\n\ntype ResponsiveFlexWrapMap = {\n narrow?: StackFlexWrapVariants\n regular?: StackFlexWrapVariants\n wide?: StackFlexWrapVariants\n}\n\nexport type StackProps = BaseProps<HTMLElement> & {\n children: React.ReactNode[] | React.ReactNode\n /**\n * Defines the flex-direction CSS property.\n * A string value will be applied to all viewports.\n * An object can be used to define different values for different viewports.\n */\n direction?: StackDirectionVariants | ResponsiveDirectionMap\n /**\n * Defines the gap CSS property.\n * A string value will be applied to all viewports.\n * An object can be used to define different values for different viewports.\n */\n gap?: StackSpacingVariants | ResponsiveSpacingMap\n /**\n * Applies vertical alignment to child elements relative to the Stack, using the align-items CSS property.\n * A string value will be applied to all viewports.\n * An object can be used to define different values for different viewports.\n */\n alignItems?: StackAlignItemVariants | ResponsiveAlignItemsMap\n /**\n * Defines the padding CSS property on the parent Stack.\n * A string value will be applied to all viewports.\n * An object can be used to define different values for different viewports.\n */\n padding?: StackSpacingVariants | ResponsiveSpacingMap\n /**\n * Applies horizontal alignment to child elements relative to the Stack, using the justify-content CSS property.\n * A string value will be applied to all viewports.\n * An object can be used to define different values for different viewports.\n */\n justifyContent?: justifyContentVariants | ResponsiveJustifyContentMap\n /**\n * Forward inline styles\n */\n style?: React.CSSProperties\n /**\n * Applies flex-wrap to the Stack, using the flex-wrap CSS property.\n */\n flexWrap?: StackFlexWrapVariants | ResponsiveFlexWrapMap\n} & BaseProps<HTMLDivElement> &\n React.HTMLAttributes<HTMLDivElement>\n\nconst StackBase = (\n {\n animate,\n children,\n direction = defaultStackDirection,\n gap = defaultStackSpacing,\n alignItems,\n padding = defaultStackSpacing,\n justifyContent,\n className,\n style,\n flexWrap,\n ...rest\n }: StackProps,\n ref,\n): React.ReactElement => {\n const {classes: animationClasses, styles: animationInlineStyles} = useAnimation(animate)\n\n const directionClass = useMemo(\n () =>\n typeof direction === 'string'\n ? styles[`Stack--${direction}`]\n : Object.keys(direction)\n .map(viewport => styles[`Stack-${viewport}--${direction[viewport]}`])\n .join(' '),\n [direction],\n )\n\n const gapClass = useMemo(\n () =>\n typeof gap === 'string' || typeof gap === 'number'\n ? styles[`Stack--gap-${gap}`]\n : Object.keys(gap)\n .map(viewport => styles[`Stack-${viewport}--gap-${gap[viewport]}`])\n .join(' '),\n [gap],\n )\n\n const paddingClass = useMemo(\n () =>\n typeof padding === 'string' || typeof padding === 'number'\n ? styles[`Stack--padding-${padding}`]\n : Object.keys(padding)\n .map(viewport => styles[`Stack-${viewport}--padding-${padding[viewport]}`])\n .join(' '),\n [padding],\n )\n\n const alignItemsClass = useMemo(\n () =>\n typeof alignItems === 'string'\n ? styles[`Stack--align-items-${alignItems}`]\n : typeof alignItems === 'object'\n ? Object.keys(alignItems)\n .map(viewport => styles[`Stack-${viewport}--align-items-${alignItems[viewport]}`])\n .join(' ')\n : null,\n [alignItems],\n )\n\n const justifyContentClass = useMemo(\n () =>\n typeof justifyContent === 'string'\n ? styles[`Stack--justify-content-${justifyContent}`]\n : typeof justifyContent === 'object'\n ? Object.keys(justifyContent)\n .map(viewport => styles[`Stack-${viewport}--justify-content-${justifyContent[viewport]}`])\n .join(' ')\n : null,\n [justifyContent],\n )\n\n const flexWrapClass = useMemo(\n () =>\n typeof flexWrap === 'string'\n ? styles[`Stack-flexWrap--${flexWrap}`]\n : typeof flexWrap === 'object'\n ? Object.keys(flexWrap)\n .map(viewport => styles[`Stack-${viewport}-flexWrap--${flexWrap[viewport]}`])\n .join(' ')\n : null,\n [flexWrap],\n )\n\n return (\n <div\n ref={ref}\n className={clsx(\n animationClasses,\n styles.Stack,\n directionClass,\n gapClass,\n alignItemsClass,\n justifyContentClass,\n paddingClass,\n flexWrapClass,\n className,\n )}\n style={{...animationInlineStyles, ...style}}\n {...rest}\n >\n {children}\n </div>\n )\n}\n\n/**\n * Stack enables layout of its immediate children along the vertical or horizontal axis\n * @see https://primer.style/brand/components/Stack\n */\nexport const Stack = forwardRef(StackBase)\n"],"mappings":";;;;;;;;AAUA,IAAa,IAAyB,CAAC,cAAc,UAAU,GAElD,IAAwB,EAAuB,IAE/C,IAAuB;CAAC;CAAQ;CAAa;CAAU;CAAY,GAAG;AAAa,GAEnF,IAAsB,EAAqB,IAE3C,IAAyB;CAAC;CAAU;CAAc;AAAU,GAG5D,IAAwB,CAAC,QAAQ,QAAQ,GAGzC,IAA8B;CACzC,GAAG;CACH;CACA;CACA;AACF,GA0La,IAAQ,GA7GnB,EACE,YACA,aACA,eAAY,GACZ,SAAM,GACN,eACA,aAAU,GACV,mBACA,cACA,UACA,aACA,GAAG,KAEL,MACuB;CACvB,IAAM,EAAC,SAAS,GAAkB,QAAQ,MAAyB,EAAa,CAAO,GAEjF,IAAiB,QAEnB,OAAO,KAAc,WACjB,EAAO,UAAU,OACjB,OAAO,KAAK,CAAS,CAAC,CACnB,KAAI,MAAY,EAAO,SAAS,EAAS,IAAI,EAAU,KAAY,CAAC,CACpE,KAAK,GAAG,GACjB,CAAC,CAAS,CACZ,GAEM,IAAW,QAEb,OAAO,KAAQ,YAAY,OAAO,KAAQ,WACtC,EAAO,cAAc,OACrB,OAAO,KAAK,CAAG,CAAC,CACb,KAAI,MAAY,EAAO,SAAS,EAAS,QAAQ,EAAI,KAAY,CAAC,CAClE,KAAK,GAAG,GACjB,CAAC,CAAG,CACN,GAEM,IAAe,QAEjB,OAAO,KAAY,YAAY,OAAO,KAAY,WAC9C,EAAO,kBAAkB,OACzB,OAAO,KAAK,CAAO,CAAC,CACjB,KAAI,MAAY,EAAO,SAAS,EAAS,YAAY,EAAQ,KAAY,CAAC,CAC1E,KAAK,GAAG,GACjB,CAAC,CAAO,CACV,GAEM,IAAkB,QAEpB,OAAO,KAAe,WAClB,EAAO,sBAAsB,OAC7B,OAAO,KAAe,WACtB,OAAO,KAAK,CAAU,CAAC,CACpB,KAAI,MAAY,EAAO,SAAS,EAAS,gBAAgB,EAAW,KAAY,CAAC,CACjF,KAAK,GAAG,IACX,MACN,CAAC,CAAU,CACb,GAEM,IAAsB,QAExB,OAAO,KAAmB,WACtB,EAAO,0BAA0B,OACjC,OAAO,KAAmB,WAC1B,OAAO,KAAK,CAAc,CAAC,CACxB,KAAI,MAAY,EAAO,SAAS,EAAS,oBAAoB,EAAe,KAAY,CAAC,CACzF,KAAK,GAAG,IACX,MACN,CAAC,CAAc,CACjB,GAEM,IAAgB,QAElB,OAAO,KAAa,WAChB,EAAO,mBAAmB,OAC1B,OAAO,KAAa,WACpB,OAAO,KAAK,CAAQ,CAAC,CAClB,KAAI,MAAY,EAAO,SAAS,EAAS,aAAa,EAAS,KAAY,CAAC,CAC5E,KAAK,GAAG,IACX,MACN,CAAC,CAAQ,CACX;CAEA,OACE,kBAAC,OAAD;EACO;EACL,WAAW,EACT,GACA,EAAO,OACP,GACA,GACA,GACA,GACA,GACA,GACA,CACF;EACA,OAAO;GAAC,GAAG;GAAuB,GAAG;EAAK;EAC1C,GAAI;EAEH;CACE,CAAA;AAET,CAMyC"}
@@ -1,5 +1,6 @@
1
- import './Stack.module-BlpDkOqI.css';var e = {
2
- Stack: "Primer_Brand__Stack-module__Stack___kkChc",
1
+ import './Stack.module-BlpDkOqI.css';//#region src/Stack/Stack.module.css
2
+ var e = "Primer_Brand__Stack-module__Stack___kkChc", t = {
3
+ Stack: e,
3
4
  "Stack--vertical": "Primer_Brand__Stack-module__Stack--vertical___bDZvE",
4
5
  "Stack--horizontal": "Primer_Brand__Stack-module__Stack--horizontal___SffMX",
5
6
  "Stack-narrow--vertical": "Primer_Brand__Stack-module__Stack-narrow--vertical___IAUDe",
@@ -238,6 +239,6 @@ import './Stack.module-BlpDkOqI.css';var e = {
238
239
  "Stack-wide-flexWrap--no-wrap": "Primer_Brand__Stack-module__Stack-wide-flexWrap--no-wrap___7PGRZ"
239
240
  };
240
241
  //#endregion
241
- export { e as default };
242
+ export { e as Stack, t as default };
242
243
 
243
244
  //# sourceMappingURL=Stack.module.js.map
@@ -1,4 +1,4 @@
1
- import e from "../node_modules/clsx/dist/clsx.js";
1
+ import { clsx as e } from "../node_modules/clsx/dist/clsx.js";
2
2
  import { useAnimation as t } from "../animation/useAnimation.js";
3
3
  import { Text as n } from "../Text/Text.js";
4
4
  import '../packages/design-tokens/lib/design-tokens/css/tokens/functional/components/statistic/base-DWOQrMC8.css';/* empty css */
@@ -1 +1 @@
1
- {"version":3,"file":"Statistic.js","names":[],"sources":["../../src/Statistic/Statistic.tsx"],"sourcesContent":["import React, {PropsWithChildren, forwardRef, useMemo} from 'react'\nimport {clsx} from 'clsx'\n\nimport {Text, TextProps, useAnimation} from '../'\n\nimport type {BaseProps} from '../component-helpers'\n\n/**\n * Design tokens\n */\nimport '@primer/brand-primitives/lib/design-tokens/css/tokens/functional/components/statistic/base.css'\n\n/** * Main Stylesheet (as a CSS Module) */\nimport styles from './Statistic.module.css'\n\nexport const StatisticSizes = ['small', 'medium', 'large'] as const\nexport const StatisticSpacingValues = ['none', 'condensed', 'normal', 'spacious'] as const\n\ntype StatisticSpacingValues = (typeof StatisticSpacingValues)[number]\n\nexport type StatisticSize = (typeof StatisticSizes)[number]\n\ntype ResponsiveMap<T> = {\n narrow?: T\n regular?: T\n wide?: T\n}\n\nexport type StatisticProps = BaseProps<HTMLAnchorElement> & {\n /**\n * The size of the Statistic\n */\n size?: StatisticSize\n /**\n * Adding padding to all internal sides of the component\n */\n padding?: StatisticSpacingValues | ResponsiveMap<StatisticSpacingValues>\n /**\n * Specify alternative appearance\n */\n variant?: 'default' | 'boxed'\n /**\n * Escape-hatch for inserting custom React components.\n * Warning:\n * This prop isn't advertised in our docs but remains part of the public API for edge-cases.\n * Need to use this prop? Please check in with #primer-brand first to confirm correct usage.\n */\n leadingComponent?: React.FunctionComponent\n /**\n * Escape-hatch for inserting custom React components.\n * Warning:\n * This prop isn't advertised in our docs but remains part of the public API for edge-cases.\n * Need to use this prop? Please check in with #primer-brand first to confirm correct usage.\n */\n trailingComponent?: React.FunctionComponent\n /**\n * Optional attirbute for testing\n */\n ['data-testid']?: string\n} & BaseProps<HTMLDivElement> &\n React.HTMLAttributes<HTMLDivElement>\n\nconst testIds = {\n root: 'Statistic',\n}\n\nconst _HeadingSizeMap: {\n [key in StatisticSize]: TextProps['size']\n} = {\n small: '600',\n medium: '800',\n large: '1000',\n}\n\nconst classBuilder = (property: string, value?: StatisticSpacingValues | ResponsiveMap<StatisticSpacingValues>) => {\n if (!value) return ''\n\n if (typeof value === 'string' || typeof value === 'number') {\n return styles[`Statistic--${property}-${value}`]\n } else {\n return Object.keys(value)\n .map(viewport => styles[`Statistic--${viewport}-${property}-${value[viewport]}`])\n .join(' ')\n }\n}\n\nconst _Statistic = forwardRef<HTMLDivElement, PropsWithChildren<StatisticProps>>(\n (\n {\n animate,\n className,\n children,\n 'data-testid': testId,\n size = 'large',\n variant = 'default',\n padding = 'none',\n leadingComponent: LeadingComponent,\n trailingComponent: TrailingComponent,\n style,\n ...rest\n },\n ref,\n ) => {\n const {classes: animationClasses, styles: animationInlineStyles} = useAnimation(animate)\n const paddingClasses = useMemo(() => classBuilder('padding', padding), [padding])\n\n type HeadingElement = React.ReactElement<React.ComponentProps<typeof StatisticHeading>>\n type DescriptionElement = React.ReactElement<React.ComponentProps<typeof StatisticDescription>>\n\n const headingChild = useMemo(() => {\n const candidate = React.Children.toArray(children).find(child => {\n return (\n React.isValidElement<React.ComponentProps<typeof StatisticHeading>>(child) && child.type === StatisticHeading\n )\n })\n\n return React.isValidElement<React.ComponentProps<typeof StatisticHeading>>(candidate)\n ? (candidate as HeadingElement)\n : undefined\n }, [children])\n\n const descriptionChild = useMemo(() => {\n const candidate = React.Children.toArray(children).find(child => {\n return (\n React.isValidElement<React.ComponentProps<typeof StatisticDescription>>(child) &&\n child.type === StatisticDescription\n )\n })\n\n return React.isValidElement<React.ComponentProps<typeof StatisticDescription>>(candidate)\n ? (candidate as DescriptionElement)\n : undefined\n }, [children])\n\n let headingToRender = headingChild\n\n /**\n * To aid assistive technology, we append the optional description to the heading\n */\n if (descriptionChild && headingToRender) {\n headingToRender = React.cloneElement(headingToRender, {\n children: (\n <>\n {headingToRender.props.children} {descriptionChild}\n </>\n ),\n })\n }\n\n return (\n <div\n ref={ref}\n className={clsx(\n styles.Statistic,\n styles[`Statistic--variant-${variant}`],\n paddingClasses,\n animationClasses,\n className,\n )}\n style={{...animationInlineStyles, ...style}}\n data-testid={testId || testIds.root}\n {...rest}\n >\n {LeadingComponent && <LeadingComponent />}\n\n {headingToRender &&\n React.cloneElement(headingToRender, {\n size: headingToRender.props.size || _HeadingSizeMap[size],\n })}\n\n {TrailingComponent && <TrailingComponent />}\n </div>\n )\n },\n)\n\ntype StatisticHeadingProps = TextProps\n\nconst StatisticHeading = forwardRef<HTMLParagraphElement, StatisticHeadingProps>(\n ({as = 'p', className, children, font = 'hubot-sans', weight = 'medium', size = '1000', ...rest}, ref) => {\n return (\n <Text\n as={as}\n ref={ref}\n className={clsx(styles[`Statistic__heading`], className)}\n font={font}\n weight={weight}\n size={size}\n {...rest}\n >\n {children}\n </Text>\n )\n },\n)\n\ntype StatisticDescriptionProps = BaseProps<HTMLSpanElement> &\n Omit<TextProps, 'variant' | 'as'> & {\n variant?: 'default' | 'muted' | 'accent'\n }\n\nconst StatisticDescription = forwardRef<HTMLSpanElement, PropsWithChildren<StatisticDescriptionProps>>(\n ({children, className, size = '300', variant = 'muted', ...rest}, ref) => {\n return (\n <Text\n variant={variant !== 'accent' ? variant : 'muted'}\n ref={ref}\n size={size}\n font=\"mona-sans\"\n className={clsx(styles['Statistic__description'], styles[`Statistic__description--${variant}`], className)}\n {...rest}\n >\n {children}\n </Text>\n )\n },\n)\n\n/**\n * Use the statistic component display concise numerical information\n * @see https://primer.style/brand/components/Statistic\n */\nexport const Statistic = Object.assign(_Statistic, {\n Heading: StatisticHeading,\n Description: StatisticDescription,\n testIds,\n})\n"],"mappings":";;;;;;;;AAeA,IAAa,IAAiB;CAAC;CAAS;CAAU;CAAQ,EAC7C,IAAyB;CAAC;CAAQ;CAAa;CAAU;CAAW,EA8C3E,IAAU,EACd,MAAM,aACP,EAEK,IAEF;CACF,OAAO;CACP,QAAQ;CACR,OAAO;CACR,EAEK,KAAgB,GAAkB,MACjC,IAED,OAAO,KAAU,YAAY,OAAO,KAAU,WACzC,EAAO,cAAc,EAAS,GAAG,OAEjC,OAAO,KAAK,EAAM,CACtB,KAAI,MAAY,EAAO,cAAc,EAAS,GAAG,EAAS,GAAG,EAAM,MAAa,CAChF,KAAK,IAAI,GAPK,IAWf,IAAa,GAEf,EACE,YACA,cACA,aACA,eAAe,GACf,UAAO,SACP,aAAU,WACV,aAAU,QACV,kBAAkB,GAClB,mBAAmB,GACnB,UACA,GAAG,KAEL,MACG;CACH,IAAM,EAAC,SAAS,GAAkB,QAAQ,MAAyB,EAAa,EAAQ,EAClF,IAAiB,QAAc,EAAa,WAAW,EAAQ,EAAE,CAAC,EAAQ,CAAC,EAK3E,IAAe,QAAc;EACjC,IAAM,IAAY,EAAM,SAAS,QAAQ,EAAS,CAAC,MAAK,MAEpD,EAAM,eAA8D,EAAM,IAAI,EAAM,SAAS,EAE/F;AAEF,SAAO,EAAM,eAA8D,EAAU,GAChF,IACD,KAAA;IACH,CAAC,EAAS,CAAC,EAER,IAAmB,QAAc;EACrC,IAAM,IAAY,EAAM,SAAS,QAAQ,EAAS,CAAC,MAAK,MAEpD,EAAM,eAAkE,EAAM,IAC9E,EAAM,SAAS,EAEjB;AAEF,SAAO,EAAM,eAAkE,EAAU,GACpF,IACD,KAAA;IACH,CAAC,EAAS,CAAC,EAEV,IAAkB;AAetB,QAVI,KAAoB,MACtB,IAAkB,EAAM,aAAa,GAAiB,EACpD,UACE,kBAAA,GAAA,EAAA,UAAA;EACG,EAAgB,MAAM;EAAS;EAAE;EACjC,EAAA,CAAA,EAEN,CAAC,GAIF,kBAAC,OAAD;EACO;EACL,WAAW,EACT,EAAO,WACP,EAAO,sBAAsB,MAC7B,GACA,GACA,EACD;EACD,OAAO;GAAC,GAAG;GAAuB,GAAG;GAAM;EAC3C,eAAa,KAAU,EAAQ;EAC/B,GAAI;YAXN;GAaG,KAAoB,kBAAC,GAAD,EAAoB,CAAA;GAExC,KACC,EAAM,aAAa,GAAiB,EAClC,MAAM,EAAgB,MAAM,QAAQ,EAAgB,IACrD,CAAC;GAEH,KAAqB,kBAAC,GAAD,EAAqB,CAAA;GACvC;;EAGX,EAIK,IAAmB,GACtB,EAAC,QAAK,KAAK,cAAW,aAAU,UAAO,cAAc,YAAS,UAAU,UAAO,QAAQ,GAAG,KAAO,MAE9F,kBAAC,GAAD;CACM;CACC;CACL,WAAW,EAAK,EAAO,oBAAuB,EAAU;CAClD;CACE;CACF;CACN,GAAI;CAEH;CACI,CAAA,CAGZ,EAOK,IAAuB,GAC1B,EAAC,aAAU,cAAW,UAAO,OAAO,aAAU,SAAS,GAAG,KAAO,MAE9D,kBAAC,GAAD;CACE,SAAS,MAAY,WAAqB,UAAV;CAC3B;CACC;CACN,MAAK;CACL,WAAW,EAAK,EAAO,wBAA2B,EAAO,2BAA2B,MAAY,EAAU;CAC1G,GAAI;CAEH;CACI,CAAA,CAGZ,EAMY,IAAY,OAAO,OAAO,GAAY;CACjD,SAAS;CACT,aAAa;CACb;CACD,CAAC"}
1
+ {"version":3,"file":"Statistic.js","names":[],"sources":["../../src/Statistic/Statistic.tsx"],"sourcesContent":["import React, {PropsWithChildren, forwardRef, useMemo} from 'react'\nimport {clsx} from 'clsx'\n\nimport {Text, TextProps, useAnimation} from '../'\n\nimport type {BaseProps} from '../component-helpers'\n\n/**\n * Design tokens\n */\nimport '@primer/brand-primitives/lib/design-tokens/css/tokens/functional/components/statistic/base.css'\n\n/** * Main Stylesheet (as a CSS Module) */\nimport styles from './Statistic.module.css'\n\nexport const StatisticSizes = ['small', 'medium', 'large'] as const\nexport const StatisticSpacingValues = ['none', 'condensed', 'normal', 'spacious'] as const\n\ntype StatisticSpacingValues = (typeof StatisticSpacingValues)[number]\n\nexport type StatisticSize = (typeof StatisticSizes)[number]\n\ntype ResponsiveMap<T> = {\n narrow?: T\n regular?: T\n wide?: T\n}\n\nexport type StatisticProps = BaseProps<HTMLAnchorElement> & {\n /**\n * The size of the Statistic\n */\n size?: StatisticSize\n /**\n * Adding padding to all internal sides of the component\n */\n padding?: StatisticSpacingValues | ResponsiveMap<StatisticSpacingValues>\n /**\n * Specify alternative appearance\n */\n variant?: 'default' | 'boxed'\n /**\n * Escape-hatch for inserting custom React components.\n * Warning:\n * This prop isn't advertised in our docs but remains part of the public API for edge-cases.\n * Need to use this prop? Please check in with #primer-brand first to confirm correct usage.\n */\n leadingComponent?: React.FunctionComponent\n /**\n * Escape-hatch for inserting custom React components.\n * Warning:\n * This prop isn't advertised in our docs but remains part of the public API for edge-cases.\n * Need to use this prop? Please check in with #primer-brand first to confirm correct usage.\n */\n trailingComponent?: React.FunctionComponent\n /**\n * Optional attirbute for testing\n */\n ['data-testid']?: string\n} & BaseProps<HTMLDivElement> &\n React.HTMLAttributes<HTMLDivElement>\n\nconst testIds = {\n root: 'Statistic',\n}\n\nconst _HeadingSizeMap: {\n [key in StatisticSize]: TextProps['size']\n} = {\n small: '600',\n medium: '800',\n large: '1000',\n}\n\nconst classBuilder = (property: string, value?: StatisticSpacingValues | ResponsiveMap<StatisticSpacingValues>) => {\n if (!value) return ''\n\n if (typeof value === 'string' || typeof value === 'number') {\n return styles[`Statistic--${property}-${value}`]\n } else {\n return Object.keys(value)\n .map(viewport => styles[`Statistic--${viewport}-${property}-${value[viewport]}`])\n .join(' ')\n }\n}\n\nconst _Statistic = forwardRef<HTMLDivElement, PropsWithChildren<StatisticProps>>(\n (\n {\n animate,\n className,\n children,\n 'data-testid': testId,\n size = 'large',\n variant = 'default',\n padding = 'none',\n leadingComponent: LeadingComponent,\n trailingComponent: TrailingComponent,\n style,\n ...rest\n },\n ref,\n ) => {\n const {classes: animationClasses, styles: animationInlineStyles} = useAnimation(animate)\n const paddingClasses = useMemo(() => classBuilder('padding', padding), [padding])\n\n type HeadingElement = React.ReactElement<React.ComponentProps<typeof StatisticHeading>>\n type DescriptionElement = React.ReactElement<React.ComponentProps<typeof StatisticDescription>>\n\n const headingChild = useMemo(() => {\n const candidate = React.Children.toArray(children).find(child => {\n return (\n React.isValidElement<React.ComponentProps<typeof StatisticHeading>>(child) && child.type === StatisticHeading\n )\n })\n\n return React.isValidElement<React.ComponentProps<typeof StatisticHeading>>(candidate)\n ? (candidate as HeadingElement)\n : undefined\n }, [children])\n\n const descriptionChild = useMemo(() => {\n const candidate = React.Children.toArray(children).find(child => {\n return (\n React.isValidElement<React.ComponentProps<typeof StatisticDescription>>(child) &&\n child.type === StatisticDescription\n )\n })\n\n return React.isValidElement<React.ComponentProps<typeof StatisticDescription>>(candidate)\n ? (candidate as DescriptionElement)\n : undefined\n }, [children])\n\n let headingToRender = headingChild\n\n /**\n * To aid assistive technology, we append the optional description to the heading\n */\n if (descriptionChild && headingToRender) {\n headingToRender = React.cloneElement(headingToRender, {\n children: (\n <>\n {headingToRender.props.children} {descriptionChild}\n </>\n ),\n })\n }\n\n return (\n <div\n ref={ref}\n className={clsx(\n styles.Statistic,\n styles[`Statistic--variant-${variant}`],\n paddingClasses,\n animationClasses,\n className,\n )}\n style={{...animationInlineStyles, ...style}}\n data-testid={testId || testIds.root}\n {...rest}\n >\n {LeadingComponent && <LeadingComponent />}\n\n {headingToRender &&\n React.cloneElement(headingToRender, {\n size: headingToRender.props.size || _HeadingSizeMap[size],\n })}\n\n {TrailingComponent && <TrailingComponent />}\n </div>\n )\n },\n)\n\ntype StatisticHeadingProps = TextProps\n\nconst StatisticHeading = forwardRef<HTMLParagraphElement, StatisticHeadingProps>(\n ({as = 'p', className, children, font = 'hubot-sans', weight = 'medium', size = '1000', ...rest}, ref) => {\n return (\n <Text\n as={as}\n ref={ref}\n className={clsx(styles[`Statistic__heading`], className)}\n font={font}\n weight={weight}\n size={size}\n {...rest}\n >\n {children}\n </Text>\n )\n },\n)\n\ntype StatisticDescriptionProps = BaseProps<HTMLSpanElement> &\n Omit<TextProps, 'variant' | 'as'> & {\n variant?: 'default' | 'muted' | 'accent'\n }\n\nconst StatisticDescription = forwardRef<HTMLSpanElement, PropsWithChildren<StatisticDescriptionProps>>(\n ({children, className, size = '300', variant = 'muted', ...rest}, ref) => {\n return (\n <Text\n variant={variant !== 'accent' ? variant : 'muted'}\n ref={ref}\n size={size}\n font=\"mona-sans\"\n className={clsx(styles['Statistic__description'], styles[`Statistic__description--${variant}`], className)}\n {...rest}\n >\n {children}\n </Text>\n )\n },\n)\n\n/**\n * Use the statistic component display concise numerical information\n * @see https://primer.style/brand/components/Statistic\n */\nexport const Statistic = Object.assign(_Statistic, {\n Heading: StatisticHeading,\n Description: StatisticDescription,\n testIds,\n})\n"],"mappings":";;;;;;;;AAeA,IAAa,IAAiB;CAAC;CAAS;CAAU;AAAO,GAC5C,IAAyB;CAAC;CAAQ;CAAa;CAAU;AAAU,GA8C1E,IAAU,EACd,MAAM,YACR,GAEM,IAEF;CACF,OAAO;CACP,QAAQ;CACR,OAAO;AACT,GAEM,KAAgB,GAAkB,MACjC,IAED,OAAO,KAAU,YAAY,OAAO,KAAU,WACzC,EAAO,cAAc,EAAS,GAAG,OAEjC,OAAO,KAAK,CAAK,CAAC,CACtB,KAAI,MAAY,EAAO,cAAc,EAAS,GAAG,EAAS,GAAG,EAAM,KAAY,CAAC,CAChF,KAAK,GAAG,IAPM,IAWf,IAAa,GAEf,EACE,YACA,cACA,aACA,eAAe,GACf,UAAO,SACP,aAAU,WACV,aAAU,QACV,kBAAkB,GAClB,mBAAmB,GACnB,UACA,GAAG,KAEL,MACG;CACH,IAAM,EAAC,SAAS,GAAkB,QAAQ,MAAyB,EAAa,CAAO,GACjF,IAAiB,QAAc,EAAa,WAAW,CAAO,GAAG,CAAC,CAAO,CAAC,GAK1E,IAAe,QAAc;EACjC,IAAM,IAAY,EAAM,SAAS,QAAQ,CAAQ,CAAC,CAAC,MAAK,MAEpD,EAAM,eAA8D,CAAK,KAAK,EAAM,SAAS,CAEhG;EAED,OAAO,EAAM,eAA8D,CAAS,IAC/E,IACD,KAAA;CACN,GAAG,CAAC,CAAQ,CAAC,GAEP,IAAmB,QAAc;EACrC,IAAM,IAAY,EAAM,SAAS,QAAQ,CAAQ,CAAC,CAAC,MAAK,MAEpD,EAAM,eAAkE,CAAK,KAC7E,EAAM,SAAS,CAElB;EAED,OAAO,EAAM,eAAkE,CAAS,IACnF,IACD,KAAA;CACN,GAAG,CAAC,CAAQ,CAAC,GAET,IAAkB;CAetB,OAVI,KAAoB,MACtB,IAAkB,EAAM,aAAa,GAAiB,EACpD,UACE,kBAAA,GAAA,EAAA,UAAA;EACG,EAAgB,MAAM;EAAS;EAAE;CAClC,EAAA,CAAA,EAEN,CAAC,IAID,kBAAC,OAAD;EACO;EACL,WAAW,EACT,EAAO,WACP,EAAO,sBAAsB,MAC7B,GACA,GACA,CACF;EACA,OAAO;GAAC,GAAG;GAAuB,GAAG;EAAK;EAC1C,eAAa,KAAU,EAAQ;EAC/B,GAAI;YAXN;GAaG,KAAoB,kBAAC,GAAD,CAAmB,CAAA;GAEvC,KACC,EAAM,aAAa,GAAiB,EAClC,MAAM,EAAgB,MAAM,QAAQ,EAAgB,GACtD,CAAC;GAEF,KAAqB,kBAAC,GAAD,CAAoB,CAAA;EACvC;;AAET,CACF,GAIM,IAAmB,GACtB,EAAC,QAAK,KAAK,cAAW,aAAU,UAAO,cAAc,YAAS,UAAU,UAAO,QAAQ,GAAG,KAAO,MAE9F,kBAAC,GAAD;CACM;CACC;CACL,WAAW,EAAK,EAAO,oBAAuB,CAAS;CACjD;CACE;CACF;CACN,GAAI;CAEH;AACG,CAAA,CAGZ,GAOM,IAAuB,GAC1B,EAAC,aAAU,cAAW,UAAO,OAAO,aAAU,SAAS,GAAG,KAAO,MAE9D,kBAAC,GAAD;CACE,SAAS,MAAY,WAAqB,UAAV;CAC3B;CACC;CACN,MAAK;CACL,WAAW,EAAK,EAAO,wBAA2B,EAAO,2BAA2B,MAAY,CAAS;CACzG,GAAI;CAEH;AACG,CAAA,CAGZ,GAMa,IAAY,OAAO,OAAO,GAAY;CACjD,SAAS;CACT,aAAa;CACb;AACF,CAAC"}
@@ -1,5 +1,6 @@
1
- import './Statistic.module-DvdiSbXk.css';var e = {
2
- Statistic: "Primer_Brand__Statistic-module__Statistic___tRtgu",
1
+ import './Statistic.module-DvdiSbXk.css';//#region src/Statistic/Statistic.module.css
2
+ var e = "Primer_Brand__Statistic-module__Statistic___tRtgu", t = "Primer_Brand__Statistic-module__Statistic__heading___zkSQX", n = "Primer_Brand__Statistic-module__Statistic__description___6v0Xv", r = {
3
+ Statistic: e,
3
4
  "Statistic--variant-boxed": "Primer_Brand__Statistic-module__Statistic--variant-boxed___Y0Zpi",
4
5
  "Statistic--padding-none": "Primer_Brand__Statistic-module__Statistic--padding-none___GUt1Q",
5
6
  "Statistic--padding-condensed": "Primer_Brand__Statistic-module__Statistic--padding-condensed___JI2lY",
@@ -17,11 +18,11 @@ import './Statistic.module-DvdiSbXk.css';var e = {
17
18
  "Statistic--wide-padding-normal": "Primer_Brand__Statistic-module__Statistic--wide-padding-normal___VpWHZ",
18
19
  "Statistic--wide-padding-spacious": "Primer_Brand__Statistic-module__Statistic--wide-padding-spacious___55ImP",
19
20
  "Statistic--wide-padding-none": "Primer_Brand__Statistic-module__Statistic--wide-padding-none___36TdO",
20
- Statistic__heading: "Primer_Brand__Statistic-module__Statistic__heading___zkSQX",
21
+ Statistic__heading: t,
21
22
  "Statistic__description--accent": "Primer_Brand__Statistic-module__Statistic__description--accent___yiXP4",
22
- Statistic__description: "Primer_Brand__Statistic-module__Statistic__description___6v0Xv"
23
+ Statistic__description: n
23
24
  };
24
25
  //#endregion
25
- export { e as default };
26
+ export { e as Statistic, n as Statistic__description, t as Statistic__heading, r as default };
26
27
 
27
28
  //# sourceMappingURL=Statistic.module.js.map
@@ -41,7 +41,7 @@ type LinkBaseProps = {
41
41
  type SubMenuProps = {
42
42
  variant?: SubMenuVariants;
43
43
  } & React.HTMLAttributes<HTMLUListElement> & BaseProps<HTMLUListElement>;
44
- declare function SubMenuBase({ children, className, variant, ...props }: SubMenuProps): import("react/jsx-runtime").JSX.Element;
44
+ declare function SubMenuBase({ children, className, variant, ...props }: SubMenuProps): React.JSX.Element;
45
45
  type SubNavActionProps = {
46
46
  /**
47
47
  * Required path or location for the action button to link to.
@@ -56,14 +56,14 @@ type SubNavActionProps = {
56
56
  */
57
57
  variant?: (typeof ButtonVariants)[number];
58
58
  } & Omit<React.AnchorHTMLAttributes<HTMLAnchorElement>, 'href'>;
59
- declare function ActionBase({ children, href, variant, size, ...rest }: SubNavActionProps): import("react/jsx-runtime").JSX.Element;
59
+ declare function ActionBase({ children, href, variant, size, ...rest }: SubNavActionProps): React.JSX.Element;
60
60
  /**
61
61
  * Use SubNav to display a secondary navigation beneath a primary header.
62
62
  * @see https://primer.style/brand/components/SubNav
63
63
  */
64
64
  export declare const SubNav: React.NamedExoticComponent<Omit<SubNavProps, "ref"> & React.RefAttributes<HTMLDivElement>> & {
65
- Heading: ({ href, children, className, "data-testid": testID, ...props }: HeadingBaseProps) => import("react/jsx-runtime").JSX.Element;
66
- SubHeading: ({ href, children, className, "data-testid": testID, ...props }: SubHeadingBaseProps) => import("react/jsx-runtime").JSX.Element;
65
+ Heading: ({ href, children, className, "data-testid": testID, ...props }: HeadingBaseProps) => React.JSX.Element;
66
+ SubHeading: ({ href, children, className, "data-testid": testID, ...props }: SubHeadingBaseProps) => React.JSX.Element;
67
67
  Link: React.ForwardRefExoticComponent<Omit<LinkBaseProps, "ref"> & React.RefAttributes<HTMLAnchorElement | HTMLDivElement>>;
68
68
  Action: typeof ActionBase;
69
69
  SubMenu: typeof SubMenuBase;
@@ -1 +1 @@
1
- {"version":3,"file":"SubNav.d.ts","sourceRoot":"","sources":["../../src/SubNav/SubNav.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAYZ,KAAK,iBAAiB,EAEtB,KAAK,SAAS,EACf,MAAM,OAAO,CAAA;AACd,OAAO,EAAS,WAAW,EAAE,cAAc,EAAQ,SAAS,EAA+B,MAAM,IAAI,CAAA;AAWrG,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,sBAAsB,CAAA;AAEnD;;GAEG;AACH,OAAO,8FAA8F,CAAA;AACrG,OAAO,2GAA2G,CAAA;AA4BlH,eAAO,MAAM,qBAAqB,iCAAkC,CAAA;AACpE,KAAK,eAAe,GAAG,CAAC,OAAO,qBAAqB,CAAC,CAAC,MAAM,CAAC,CAAA;AAE7D,KAAK,iBAAiB,GAAG;IACvB,SAAS,EAAE,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,CAAA;CAC5C,CAAA;AAID,eAAO,MAAM,gBAAgB,yBAM5B,CAAA;AA6CD,MAAM,MAAM,WAAW,GAAG;IACxB;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB,GAAG,iBAAiB,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC,CAAA;AA+PhD,KAAK,gBAAgB,GAAG;IACtB,IAAI,EAAE,MAAM,CAAA;IACZ,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB,GAAG,iBAAiB,CAAC,KAAK,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC,GACvD,SAAS,CAAC,iBAAiB,CAAC,CAAA;AAe9B,KAAK,mBAAmB,GAAG;IACzB,IAAI,EAAE,MAAM,CAAA;IACZ,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB,GAAG,iBAAiB,CAAC,KAAK,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC,GACvD,SAAS,CAAC,iBAAiB,CAAC,CAAA;AAe9B,KAAK,aAAa,GAAG;IACnB,IAAI,EAAE,MAAM,CAAA;IACZ,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,OAAO,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAA;IAC9B,eAAe,CAAC,EAAE,eAAe,CAAA;CAClC,GAAG,iBAAiB,CAAC,KAAK,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC,GACvD,SAAS,CAAC,iBAAiB,CAAC,CAAA;AA6J9B,KAAK,YAAY,GAAG;IAClB,OAAO,CAAC,EAAE,eAAe,CAAA;CAC1B,GAAG,KAAK,CAAC,cAAc,CAAC,gBAAgB,CAAC,GACxC,SAAS,CAAC,gBAAgB,CAAC,CAAA;AAE7B,iBAAS,WAAW,CAAC,EAAC,QAAQ,EAAE,SAAS,EAAE,OAAoB,EAAE,GAAG,KAAK,EAAC,EAAE,YAAY,2CAgEvF;AAED,KAAK,iBAAiB,GAAG;IACvB;;OAEG;IACH,IAAI,EAAE,MAAM,CAAA;IACZ;;OAEG;IACH,IAAI,CAAC,EAAE,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,CAAC,CAAA;IACnC;;OAEG;IACH,OAAO,CAAC,EAAE,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,CAAC,CAAA;CAC1C,GAAG,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC,CAAA;AAE/D,iBAAS,UAAU,CAAC,EAAC,QAAQ,EAAE,IAAI,EAAE,OAAmB,EAAE,IAAc,EAAE,GAAG,IAAI,EAAC,EAAE,iBAAiB,2CAcpG;AAED;;;GAGG;AACH,eAAO,MAAM,MAAM;8EA7SgE,gBAAgB;iFAmBb,mBAAmB;;;;;;;;;;;;;CAiSvG,CAAA"}
1
+ {"version":3,"file":"SubNav.d.ts","sourceRoot":"","sources":["../../src/SubNav/SubNav.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAYZ,KAAK,iBAAiB,EAEtB,KAAK,SAAS,EACf,MAAM,OAAO,CAAA;AACd,OAAO,EAAS,WAAW,EAAE,cAAc,EAAQ,SAAS,EAA+B,MAAM,IAAI,CAAA;AAWrG,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,sBAAsB,CAAA;AAEnD;;GAEG;AACH,OAAO,8FAA8F,CAAA;AACrG,OAAO,2GAA2G,CAAA;AA4BlH,eAAO,MAAM,qBAAqB,iCAAkC,CAAA;AACpE,KAAK,eAAe,GAAG,CAAC,OAAO,qBAAqB,CAAC,CAAC,MAAM,CAAC,CAAA;AAE7D,KAAK,iBAAiB,GAAG;IACvB,SAAS,EAAE,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,CAAA;CAC5C,CAAA;AAID,eAAO,MAAM,gBAAgB,yBAM5B,CAAA;AA6CD,MAAM,MAAM,WAAW,GAAG;IACxB;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB,GAAG,iBAAiB,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC,CAAA;AA+PhD,KAAK,gBAAgB,GAAG;IACtB,IAAI,EAAE,MAAM,CAAA;IACZ,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB,GAAG,iBAAiB,CAAC,KAAK,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC,GACvD,SAAS,CAAC,iBAAiB,CAAC,CAAA;AAe9B,KAAK,mBAAmB,GAAG;IACzB,IAAI,EAAE,MAAM,CAAA;IACZ,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB,GAAG,iBAAiB,CAAC,KAAK,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC,GACvD,SAAS,CAAC,iBAAiB,CAAC,CAAA;AAe9B,KAAK,aAAa,GAAG;IACnB,IAAI,EAAE,MAAM,CAAA;IACZ,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,OAAO,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAA;IAC9B,eAAe,CAAC,EAAE,eAAe,CAAA;CAClC,GAAG,iBAAiB,CAAC,KAAK,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC,GACvD,SAAS,CAAC,iBAAiB,CAAC,CAAA;AA6J9B,KAAK,YAAY,GAAG;IAClB,OAAO,CAAC,EAAE,eAAe,CAAA;CAC1B,GAAG,KAAK,CAAC,cAAc,CAAC,gBAAgB,CAAC,GACxC,SAAS,CAAC,gBAAgB,CAAC,CAAA;AAE7B,iBAAS,WAAW,CAAC,EAAC,QAAQ,EAAE,SAAS,EAAE,OAAoB,EAAE,GAAG,KAAK,EAAC,EAAE,YAAY,qBAgEvF;AAED,KAAK,iBAAiB,GAAG;IACvB;;OAEG;IACH,IAAI,EAAE,MAAM,CAAA;IACZ;;OAEG;IACH,IAAI,CAAC,EAAE,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,CAAC,CAAA;IACnC;;OAEG;IACH,OAAO,CAAC,EAAE,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,CAAC,CAAA;CAC1C,GAAG,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC,CAAA;AAE/D,iBAAS,UAAU,CAAC,EAAC,QAAQ,EAAE,IAAI,EAAE,OAAmB,EAAE,IAAc,EAAE,GAAG,IAAI,EAAC,EAAE,iBAAiB,qBAcpG;AAED;;;GAGG;AACH,eAAO,MAAM,MAAM;8EA7SgE,gBAAgB;iFAmBb,mBAAmB;;;;;;;;;;;;;CAiSvG,CAAA"}
@@ -1,4 +1,4 @@
1
- import e from "../node_modules/clsx/dist/clsx.js";
1
+ import { clsx as e } from "../node_modules/clsx/dist/clsx.js";
2
2
  import { useId as t } from "../hooks/useId.js";
3
3
  import { useProvidedRefOrCreate as n } from "../hooks/useRef.js";
4
4
  import { Text as r } from "../Text/Text.js";
@@ -6,7 +6,8 @@ import { Button as i } from "../Button/Button.js";
6
6
  import { ThemeProvider as a } from "../ThemeProvider/ThemeProvider.js";
7
7
  import { useOnClickOutside as o } from "../hooks/useOnClickOutside.js";
8
8
  import { useKeyboardEscape as s } from "../hooks/useKeyboardEscape.js";
9
- import { TriangleDownIcon as c, TriangleUpIcon as l } from "../node_modules/@primer/octicons-react/dist/index.esm.js";
9
+ import { TriangleDownIcon as c } from "../node_modules/@primer/octicons-react/dist/icons/TriangleDownIcon.js";
10
+ import { TriangleUpIcon as l } from "../node_modules/@primer/octicons-react/dist/icons/TriangleUpIcon.js";
10
11
  import { useWindowSize as u } from "../hooks/useWindowSize.js";
11
12
  import { useFocusTrap as d } from "../hooks/useFocusTrap.js";
12
13
  import { useContainsFocus as f } from "./useContainsFocus.js";
@@ -87,13 +88,14 @@ var P = y(_(({ id: i, children: a, className: f, "data-testid": g, fullWidth: _,
87
88
  }, [L, U]);
88
89
  let q = W.find((e) => v(e) && !!e.props["aria-current"]);
89
90
  S(() => {
90
- te(W.some((e) => {
91
+ let e = W.some((e) => {
91
92
  if (v(e) && e.type === R) {
92
93
  let t = h.toArray(e.props.children)[1];
93
94
  if (v(t) && t.type === z && t.props.variant === "anchor") return !0;
94
95
  }
95
96
  return !1;
96
- }));
97
+ });
98
+ te(e);
97
99
  }, [W]);
98
100
  let { heading: J, subheading: Y, links: ne, action: re } = W.reduce((e, t) => {
99
101
  if (v(t)) if (t.type === F) e.heading = t;
@@ -1 +1 @@
1
- {"version":3,"file":"SubNav.js","names":[],"sources":["../../src/SubNav/SubNav.tsx"],"sourcesContent":["import React, {\n Children,\n createContext,\n forwardRef,\n isValidElement,\n memo,\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useRef,\n useState,\n type PropsWithChildren,\n type ReactNode,\n type RefObject,\n} from 'react'\nimport {Button, ButtonSizes, ButtonVariants, Text, TextProps, ThemeProvider, useWindowSize} from '..'\n\nimport {clsx} from 'clsx'\nimport {TriangleDownIcon, TriangleUpIcon} from '@primer/octicons-react'\nimport {useId} from '../hooks/useId'\nimport {useKeyboardEscape} from '../hooks/useKeyboardEscape'\nimport {useOnClickOutside} from '../hooks/useOnClickOutside'\nimport {useFocusTrap} from '../hooks/useFocusTrap'\nimport {useProvidedRefOrCreate} from '../hooks/useRef'\nimport {useContainsFocus} from './useContainsFocus'\n\nimport type {BaseProps} from '../component-helpers'\n\n/**\n * Design tokens\n */\nimport '@primer/brand-primitives/lib/design-tokens/css/tokens/functional/components/sub-nav/base.css'\nimport '@primer/brand-primitives/lib/design-tokens/css/tokens/functional/components/sub-nav/colors-with-modes.css'\n\n/** * Main Stylesheet (as a CSS Module) */\nimport styles from './SubNav.module.css'\nimport {createPortal} from 'react-dom'\n\nconst testIds = {\n root: 'SubNav-root',\n get button() {\n return `${this.root}-button`\n },\n get overlay() {\n return `${this.root}-overlay`\n },\n get link() {\n return `${this.root}-link`\n },\n get heading() {\n return `${this.root}-heading`\n },\n get action() {\n return `${this.root}-action`\n },\n get subMenu() {\n return `${this.root}-sub-menu`\n },\n}\n\nexport const SubNavSubMenuVariants = ['dropdown', 'anchor'] as const\ntype SubMenuVariants = (typeof SubNavSubMenuVariants)[number]\n\ntype SubNavContextType = {\n portalRef: RefObject<HTMLDivElement | null>\n}\n\nconst SubNavContext = createContext<SubNavContextType | undefined>(undefined)\n\nexport const useSubNavContext = () => {\n const context = useContext(SubNavContext)\n if (!context) {\n throw new Error('useSubNavContext must be used within a SubNavProvider')\n }\n return context\n}\n\nfunction SubNavProvider({children}: {children: React.ReactNode}) {\n const anchoredNavOuterPortalRef = React.useRef<HTMLDivElement>(null)\n const anchoredNavPortalRef = React.useRef<HTMLDivElement>(null)\n\n const value = useMemo(\n () => ({\n portalRef: anchoredNavPortalRef,\n }),\n [],\n )\n\n useEffect(() => {\n const menuContainer = anchoredNavOuterPortalRef.current\n\n const observer = new IntersectionObserver(\n ([entry]) => {\n entry.target.classList.toggle(styles['SubNav__anchor-menu-outer-container--stuck'], entry.intersectionRatio < 1)\n },\n {threshold: [1]},\n )\n\n if (menuContainer) {\n observer.observe(menuContainer)\n }\n\n return () => {\n if (menuContainer) {\n observer.unobserve(menuContainer)\n }\n }\n }, [])\n\n return (\n <SubNavContext.Provider value={value}>\n {children}\n\n <div className={styles['SubNav__anchor-menu-outer-container']} ref={anchoredNavOuterPortalRef}>\n <div className={clsx(styles['SubNav__anchor-menu-container'])} ref={anchoredNavPortalRef} />\n </div>\n </SubNavContext.Provider>\n )\n}\n\nexport type SubNavProps = {\n /**\n * @deprecated The hasShadow prop is deprecated and will be removed in a future release.\n */\n hasShadow?: boolean\n /**\n * Allows the SubNav to be used at full width,\n * removing any internal padding and guttering.\n */\n fullWidth?: boolean\n 'data-testid'?: string\n} & PropsWithChildren<BaseProps<HTMLDivElement>>\n\nconst SubNavRoot = memo(\n forwardRef<HTMLDivElement, SubNavProps>(\n ({id, children, className, 'data-testid': testId, fullWidth, hasShadow}, ref) => {\n const rootRef = useProvidedRefOrCreate<HTMLDivElement>(ref as RefObject<HTMLDivElement>)\n const innerRootRef = React.useRef<HTMLDivElement>(null)\n const navRef = React.useRef<HTMLElement>(null)\n const overlayRef = React.useRef<HTMLUListElement>(null)\n const narrowButtonRef = useRef<HTMLButtonElement>(null)\n const [isOpenAtNarrow, setIsOpenAtNarrow] = useState(false)\n const idForLinkContainer = useId()\n const [hasAnchoredNav, setHasAnchoredNav] = useState(false)\n\n const {isLarge} = useWindowSize()\n\n useFocusTrap({containerRef: innerRootRef, disabled: !isOpenAtNarrow})\n\n const childrenArr = Children.toArray(children)\n\n const closeMenuCallback = useCallback(() => {\n if (isLarge) return\n setIsOpenAtNarrow(false)\n }, [isLarge])\n\n const handleMenuToggle = useCallback(() => {\n if (isLarge) return\n setIsOpenAtNarrow(prev => !prev)\n }, [isLarge])\n\n useOnClickOutside(innerRootRef, closeMenuCallback)\n useKeyboardEscape(closeMenuCallback)\n\n useEffect(() => {\n const navElement = navRef.current\n\n const updateAvailableHeight = () => {\n if (navElement) {\n const navTop = navElement.getBoundingClientRect().top\n navElement.style.setProperty('--subnav-available-height', `${window.innerHeight - navTop}px`)\n }\n }\n\n if (isOpenAtNarrow && !isLarge) {\n document.body.style.overflow = 'hidden'\n updateAvailableHeight()\n // eslint-disable-next-line github/prefer-observers\n window.addEventListener('resize', updateAvailableHeight)\n } else {\n document.body.style.overflow = 'auto'\n\n if (navElement) {\n navElement.style.removeProperty('--subnav-available-height')\n }\n }\n\n return () => {\n document.body.style.overflow = 'auto'\n window.removeEventListener('resize', updateAvailableHeight)\n\n if (navElement) {\n navElement.style.removeProperty('--subnav-available-height')\n }\n }\n }, [isOpenAtNarrow, isLarge])\n\n const activeLink = childrenArr.find(child => {\n return isValidElement<LinkBaseProps>(child) && Boolean(child.props['aria-current'])\n }) as React.ReactElement<LinkBaseProps> | undefined\n\n useEffect(() => {\n // check if there is an anchored nav in the SubNav.SubMenu child\n const hasAnchorVariant = childrenArr.some(child => {\n if (isValidElement<LinkBaseProps>(child) && child.type === LinkBase) {\n const childNodes = Children.toArray(child.props.children)\n const maybeSubMenu = childNodes[1]\n if (\n isValidElement<SubMenuProps>(maybeSubMenu) &&\n maybeSubMenu.type === SubMenuBase &&\n maybeSubMenu.props.variant === 'anchor'\n ) {\n return true\n }\n }\n return false\n })\n setHasAnchoredNav(hasAnchorVariant)\n }, [childrenArr])\n\n const {\n heading: HeadingChild,\n subheading: SubHeadingChild,\n links: LinkChildren,\n action: ActionChild,\n } = childrenArr.reduce(\n (\n acc: {\n heading?: React.ReactElement<HeadingBaseProps>\n subheading?: React.ReactElement<SubHeadingBaseProps>\n links: React.ReactElement<LinkBaseProps>[]\n action?: React.ReactElement<SubNavActionProps>\n },\n child,\n ) => {\n if (isValidElement(child)) {\n if (child.type === HeadingBase) {\n acc.heading = child as React.ReactElement<HeadingBaseProps>\n } else if (child.type === SubHeadingBase) {\n acc.subheading = child as React.ReactElement<SubHeadingBaseProps>\n } else if (child.type === LinkBase) {\n const linkChild = child as React.ReactElement<LinkBaseProps>\n const childNodes = Children.toArray(linkChild.props.children)\n const [link, subMenu] = childNodes\n const isAnchorVariant =\n isValidElement<SubMenuProps>(subMenu) &&\n subMenu.type === SubMenuBase &&\n subMenu.props.variant === 'anchor'\n\n acc.links.push(\n React.cloneElement(linkChild, {\n ...(isAnchorVariant ? {children: [link]} : {}),\n onClick: linkChild.props['aria-current'] ? closeMenuCallback : linkChild.props.onClick,\n }),\n )\n } else if (child.type === ActionBase) {\n acc.action = child as React.ReactElement<SubNavActionProps>\n }\n }\n return acc\n },\n {heading: undefined, subheading: undefined, links: [], action: undefined},\n )\n\n const activeLinkChildren = activeLink ? Children.toArray(activeLink.props.children) : []\n const activeLinklabel = activeLinkChildren[0]\n\n // needed to prevent rendering of anchor subnav inside the narrow <button> element\n const maybeSubMenu = activeLinkChildren[1]\n const MaybeSubNav =\n isValidElement<SubMenuProps>(maybeSubMenu) &&\n maybeSubMenu.type === SubMenuBase &&\n maybeSubMenu.props.variant === 'anchor'\n ? maybeSubMenu\n : null\n\n const subHeadingIsActive =\n isValidElement<SubHeadingBaseProps>(SubHeadingChild) &&\n SubHeadingChild.type === SubHeadingBase &&\n Boolean(SubHeadingChild.props['aria-current'])\n const narrowButtonLabel = SubHeadingChild ? activeLinklabel : null\n\n const NarrowButton = useMemo(\n () => (\n <div\n className={clsx(styles['SubNav__overlay-toggle'], isOpenAtNarrow && styles['SubNav__overlay-toggle--open'])}\n >\n <span\n className={clsx(\n styles['SubNav__overlay-toggle-content'],\n !narrowButtonLabel && styles['SubNav__overlay-toggle-content--end'],\n )}\n >\n <button\n ref={narrowButtonRef}\n className={styles['SubNav__overlay-toggle-label']}\n data-testid={testIds.button}\n onClick={isOpenAtNarrow ? closeMenuCallback : handleMenuToggle}\n aria-expanded={isOpenAtNarrow ? 'true' : 'false'}\n aria-controls={idForLinkContainer}\n aria-label={activeLinklabel ? `Navigation menu. Current page: ${activeLinklabel}` : 'Navigation menu'}\n >\n {narrowButtonLabel && (\n <Text as=\"span\" size=\"100\">\n {narrowButtonLabel}\n </Text>\n )}\n {isOpenAtNarrow ? (\n <TriangleUpIcon className={styles['SubNav__overlay-toggle-icon']} size={13} />\n ) : (\n <TriangleDownIcon className={styles['SubNav__overlay-toggle-icon']} size={13} />\n )}\n </button>\n </span>\n </div>\n ),\n [activeLinklabel, closeMenuCallback, handleMenuToggle, idForLinkContainer, isOpenAtNarrow, narrowButtonLabel],\n )\n\n return (\n <div\n ref={rootRef}\n className={clsx(\n styles['SubNav__container'],\n SubHeadingChild && styles['SubNav--has-sub-heading'],\n SubHeadingChild && subHeadingIsActive && styles['SubNav--subHeadingActive'],\n hasAnchoredNav && styles['SubNav__container--with-anchor-nav'],\n )}\n >\n <SubNavProvider>\n <nav\n ref={navRef}\n id={id}\n className={clsx(\n styles.SubNav,\n isOpenAtNarrow && styles['SubNav--open'],\n hasShadow && styles['SubNav--has-shadow'],\n fullWidth && styles['SubNav--full-width'],\n className,\n )}\n data-testid={testId || testIds.root}\n >\n <div ref={innerRootRef} className={styles['SubNav--header-container-outer']}>\n <div className={styles['SubNav__header-container']}>\n {HeadingChild && <div className={styles['SubNav__heading-container']}>{HeadingChild}</div>}\n\n {SubHeadingChild && (\n <div\n className={clsx(\n styles['SubNav__heading-container'],\n styles['SubNav__subheading-container'],\n subHeadingIsActive && styles['SubNav__subheading-container-active'],\n )}\n >\n {SubHeadingChild}\n </div>\n )}\n\n {!isLarge && (!SubHeadingChild || subHeadingIsActive) && NarrowButton}\n\n {MaybeSubNav && MaybeSubNav}\n </div>\n {!isLarge && SubHeadingChild && !subHeadingIsActive && NarrowButton}\n {LinkChildren.length > 0 && (\n <ul\n ref={overlayRef}\n id={idForLinkContainer}\n className={clsx(\n styles['SubNav__links-overlay'],\n isOpenAtNarrow && styles['SubNav__links-overlay--open'],\n )}\n data-testid={testIds.overlay}\n >\n {LinkChildren}\n {ActionChild && <li className={styles['SubNav__action-container']}>{ActionChild}</li>}\n </ul>\n )}\n </div>\n </nav>\n </SubNavProvider>\n </div>\n )\n },\n ),\n)\n\ntype HeadingBaseProps = {\n href: string\n 'data-testid'?: string\n} & PropsWithChildren<React.HTMLProps<HTMLAnchorElement>> &\n BaseProps<HTMLAnchorElement>\n\nconst HeadingBase = ({href, children, className, 'data-testid': testID, ...props}: HeadingBaseProps) => {\n return (\n <a\n href={href}\n className={clsx(styles['SubNav__heading'], className)}\n data-testid={testIds.heading || testID}\n {...props}\n >\n {children}\n </a>\n )\n}\n\ntype SubHeadingBaseProps = {\n href: string\n 'data-testid'?: string\n} & PropsWithChildren<React.HTMLProps<HTMLAnchorElement>> &\n BaseProps<HTMLAnchorElement>\n\nconst SubHeadingBase = ({href, children, className, 'data-testid': testID, ...props}: SubHeadingBaseProps) => {\n return (\n <a\n href={href}\n className={clsx(styles['SubNav__heading'], styles['SubNav__link'], styles['SubNav__subHeading'], className)}\n data-testid={testIds.heading || testID}\n {...props}\n >\n {children}\n </a>\n )\n}\n\ntype LinkBaseProps = {\n href: string\n 'data-testid'?: string\n variant?: TextProps['variant']\n _subMenuVariant?: SubMenuVariants\n} & PropsWithChildren<React.HTMLProps<HTMLAnchorElement>> &\n BaseProps<HTMLAnchorElement>\n\nconst LinkBaseWithSubmenu = forwardRef<HTMLDivElement, LinkBaseProps>(\n (\n {children, href, 'aria-current': ariaCurrent, 'data-testid': testId, className, _subMenuVariant, variant, ...props},\n forwardedRef,\n ) => {\n const submenuId = useId()\n const {isLarge} = useWindowSize()\n\n const [isExpanded, setIsExpanded] = useState(false)\n const ref = useProvidedRefOrCreate(forwardedRef as RefObject<HTMLDivElement>)\n const subMenuChildrenRef = useRef<HTMLDivElement>(null)\n\n useContainsFocus(ref, (containsFocus: boolean) => {\n if (!containsFocus) {\n setIsExpanded(false)\n }\n })\n\n const expand = useCallback(() => setIsExpanded(true), [])\n const collapse = useCallback(() => setIsExpanded(false), [])\n const toggleExpanded = useCallback(() => setIsExpanded(prev => !prev), [])\n const isAriaCurrent = Boolean(ariaCurrent) && ariaCurrent !== 'false'\n\n useKeyboardEscape(collapse)\n\n useEffect(() => {\n if (subMenuChildrenRef.current) {\n // Workaround to avoid React 18 / 19 type mismatches with the `inert` attribute.\n // This approach won't immediately apply the attribute in pure SSR contexts, only post-hydration\n // TODO: Move back to JSX when React 19 is fully adopted in Dotcom.\n // `inert` removes the collapsed submenu from tab order and the accessibility tree\n // without affecting visual appearance\n subMenuChildrenRef.current.toggleAttribute('inert', isLarge && !isExpanded)\n }\n }, [isLarge, isExpanded])\n\n const [label, SubMenuChildren] = children as ReactNode[]\n\n return (\n <div\n className={clsx(\n styles['SubNav__link--has-sub-menu'],\n isExpanded && styles['SubNav__link--expanded'],\n isAriaCurrent && styles['SubNav__link--has-active-sub-menu'],\n )}\n data-testid={testId || testIds.subMenu}\n ref={ref}\n onMouseOver={expand}\n onMouseOut={collapse}\n /**\n * onFocus and onBlur need to be defined to keep the jsx-a11y/mouse-events-have-key-events\n * eslint rule happy. The focus/blur behaviour is handled by useContainsFocus\n */\n onFocus={() => null}\n onBlur={() => null}\n >\n <a\n href={href}\n className={clsx(styles['SubNav__link'], ariaCurrent && styles['SubNav__link--active'], className)}\n aria-current={ariaCurrent}\n {...props}\n >\n <Text as=\"span\" size=\"100\" weight=\"medium\" className={styles['SubNav__link-label']}>\n {label}\n </Text>\n </a>\n {isLarge && (\n <button\n className={styles['SubNav__sub-menu-toggle']}\n onClick={toggleExpanded}\n aria-expanded={isExpanded ? 'true' : 'false'}\n aria-controls={submenuId}\n aria-label={`${label?.toString().trim()} submenu`}\n >\n <TriangleDownIcon className={styles['SubNav__sub-menu-icon']} size={16} />\n </button>\n )}\n\n <div id={submenuId} className={styles['SubNav__sub-menu-children']} ref={subMenuChildrenRef}>\n {SubMenuChildren}\n </div>\n </div>\n )\n },\n)\n\nconst LinkBase = forwardRef<HTMLAnchorElement | HTMLDivElement, LinkBaseProps>((props, ref) => {\n const [isInView, setIsInView] = useState(false)\n const childrenArr = Children.toArray(props.children)\n\n const hasSubMenu = childrenArr.some(child => {\n if (isValidElement(child)) {\n return child.type === SubMenuBase\n }\n })\n\n useEffect(() => {\n if (hasSubMenu) return\n const targetId = props.href.replace('#', '')\n const target = document.getElementById(targetId)\n if (!target) return\n\n const topOfWindow = '0px 0px -100%'\n const observerParams = {threshold: 0, root: null, rootMargin: topOfWindow}\n\n const handleIntersectionUpdate: IntersectionObserverCallback = ([entry]) => {\n setIsInView(entry.isIntersecting)\n }\n\n const observer = new IntersectionObserver(handleIntersectionUpdate, observerParams)\n observer.observe(target)\n return () => observer.disconnect()\n }, [hasSubMenu, props.href])\n\n if (hasSubMenu) {\n const isAnchorVariantSubMenu = childrenArr.some(child => {\n return isValidElement<SubMenuProps>(child) && child.type === SubMenuBase && child.props.variant === 'anchor'\n })\n\n return (\n <li>\n <LinkBaseWithSubmenu\n ref={ref as RefObject<HTMLDivElement>}\n {...props}\n _subMenuVariant={isAnchorVariantSubMenu ? 'anchor' : undefined}\n />\n </li>\n )\n }\n\n const {children, href, 'aria-current': ariaCurrent, 'data-testid': testId, variant, className, ...rest} = props\n\n return (\n <li>\n <a\n href={href}\n className={clsx(\n styles['SubNav__link'],\n ariaCurrent && styles['SubNav__link--active'],\n isInView && styles['SubNav__link--is-in-view'],\n className,\n )}\n aria-current={ariaCurrent}\n data-testid={testId || testIds.link}\n ref={ref as RefObject<HTMLAnchorElement>}\n {...rest}\n >\n <Text as=\"span\" size=\"100\" weight=\"medium\" className={styles['SubNav__link-label']}>\n {children}\n </Text>\n </a>\n </li>\n )\n})\n\ntype SubMenuProps = {\n variant?: SubMenuVariants\n} & React.HTMLAttributes<HTMLUListElement> &\n BaseProps<HTMLUListElement>\n\nfunction SubMenuBase({children, className, variant = 'dropdown', ...props}: SubMenuProps) {\n const context = React.useContext(SubNavContext)\n const navRef = useRef<HTMLElement>(null)\n\n const {isLarge} = useWindowSize()\n\n /**\n * Effect is needed to prevent the bubbling of onClick events to the overlay trigger.\n * Removing this effect will cause clicks on the anchor nav element to toggle the overlay.\n */\n useEffect(() => {\n const handleClick = (e: MouseEvent) => {\n if (navRef.current && !navRef.current.contains(e.target as Node)) {\n return\n }\n\n if (!(e.target instanceof HTMLAnchorElement)) {\n e.stopPropagation()\n }\n }\n\n if (variant === 'anchor') {\n document.addEventListener('click', handleClick, true) // Capture phase\n }\n\n return () => {\n document.removeEventListener('click', handleClick, true)\n }\n }, [variant])\n\n if (variant === 'anchor' && context?.portalRef.current) {\n return createPortal(\n <nav\n ref={navRef}\n className={clsx(styles['SubNav__sub-menu'], styles['SubNav__sub-menu--anchor'], className)}\n role=\"navigation\"\n aria-label=\"Sub navigation\"\n >\n <ul className={styles['SubNav__sub-menu-list']} {...props}>\n {React.Children.map(children, child => {\n if (isValidElement<LinkBaseProps>(child) && child.type === LinkBase) {\n return React.cloneElement(child, {\n onClick: e => {\n child.props.onClick?.(e)\n },\n })\n }\n return null\n })}\n </ul>\n </nav>,\n context.portalRef.current,\n )\n } else {\n const Tag = isLarge ? ThemeProvider : React.Fragment\n\n return (\n <Tag {...(isLarge ? {colorMode: 'light'} : {})}>\n <ul className={clsx(styles['SubNav__sub-menu'], styles[`SubNav__sub-menu--${variant}`], className)} {...props}>\n {children}\n </ul>\n </Tag>\n )\n }\n}\n\ntype SubNavActionProps = {\n /**\n * Required path or location for the action button to link to.\n */\n href: string\n /**\n * Optional sizes for the button.\n */\n size?: (typeof ButtonSizes)[number]\n /**\n * Optional sizes for the button.\n */\n variant?: (typeof ButtonVariants)[number]\n} & Omit<React.AnchorHTMLAttributes<HTMLAnchorElement>, 'href'>\n\nfunction ActionBase({children, href, variant = 'primary', size = 'small', ...rest}: SubNavActionProps) {\n return (\n <Button\n className={styles['SubNav__action']}\n as=\"a\"\n href={href}\n variant={variant}\n data-testid={testIds.action}\n size={size}\n {...rest}\n >\n {children}\n </Button>\n )\n}\n\n/**\n * Use SubNav to display a secondary navigation beneath a primary header.\n * @see https://primer.style/brand/components/SubNav\n */\nexport const SubNav = Object.assign(SubNavRoot, {\n Heading: HeadingBase,\n SubHeading: SubHeadingBase,\n Link: LinkBase,\n Action: ActionBase,\n SubMenu: SubMenuBase,\n testIds,\n})\n"],"mappings":"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"}
1
+ {"version":3,"file":"SubNav.js","names":[],"sources":["../../src/SubNav/SubNav.tsx"],"sourcesContent":["import React, {\n Children,\n createContext,\n forwardRef,\n isValidElement,\n memo,\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useRef,\n useState,\n type PropsWithChildren,\n type ReactNode,\n type RefObject,\n} from 'react'\nimport {Button, ButtonSizes, ButtonVariants, Text, TextProps, ThemeProvider, useWindowSize} from '..'\n\nimport {clsx} from 'clsx'\nimport {TriangleDownIcon, TriangleUpIcon} from '@primer/octicons-react'\nimport {useId} from '../hooks/useId'\nimport {useKeyboardEscape} from '../hooks/useKeyboardEscape'\nimport {useOnClickOutside} from '../hooks/useOnClickOutside'\nimport {useFocusTrap} from '../hooks/useFocusTrap'\nimport {useProvidedRefOrCreate} from '../hooks/useRef'\nimport {useContainsFocus} from './useContainsFocus'\n\nimport type {BaseProps} from '../component-helpers'\n\n/**\n * Design tokens\n */\nimport '@primer/brand-primitives/lib/design-tokens/css/tokens/functional/components/sub-nav/base.css'\nimport '@primer/brand-primitives/lib/design-tokens/css/tokens/functional/components/sub-nav/colors-with-modes.css'\n\n/** * Main Stylesheet (as a CSS Module) */\nimport styles from './SubNav.module.css'\nimport {createPortal} from 'react-dom'\n\nconst testIds = {\n root: 'SubNav-root',\n get button() {\n return `${this.root}-button`\n },\n get overlay() {\n return `${this.root}-overlay`\n },\n get link() {\n return `${this.root}-link`\n },\n get heading() {\n return `${this.root}-heading`\n },\n get action() {\n return `${this.root}-action`\n },\n get subMenu() {\n return `${this.root}-sub-menu`\n },\n}\n\nexport const SubNavSubMenuVariants = ['dropdown', 'anchor'] as const\ntype SubMenuVariants = (typeof SubNavSubMenuVariants)[number]\n\ntype SubNavContextType = {\n portalRef: RefObject<HTMLDivElement | null>\n}\n\nconst SubNavContext = createContext<SubNavContextType | undefined>(undefined)\n\nexport const useSubNavContext = () => {\n const context = useContext(SubNavContext)\n if (!context) {\n throw new Error('useSubNavContext must be used within a SubNavProvider')\n }\n return context\n}\n\nfunction SubNavProvider({children}: {children: React.ReactNode}) {\n const anchoredNavOuterPortalRef = React.useRef<HTMLDivElement>(null)\n const anchoredNavPortalRef = React.useRef<HTMLDivElement>(null)\n\n const value = useMemo(\n () => ({\n portalRef: anchoredNavPortalRef,\n }),\n [],\n )\n\n useEffect(() => {\n const menuContainer = anchoredNavOuterPortalRef.current\n\n const observer = new IntersectionObserver(\n ([entry]) => {\n entry.target.classList.toggle(styles['SubNav__anchor-menu-outer-container--stuck'], entry.intersectionRatio < 1)\n },\n {threshold: [1]},\n )\n\n if (menuContainer) {\n observer.observe(menuContainer)\n }\n\n return () => {\n if (menuContainer) {\n observer.unobserve(menuContainer)\n }\n }\n }, [])\n\n return (\n <SubNavContext.Provider value={value}>\n {children}\n\n <div className={styles['SubNav__anchor-menu-outer-container']} ref={anchoredNavOuterPortalRef}>\n <div className={clsx(styles['SubNav__anchor-menu-container'])} ref={anchoredNavPortalRef} />\n </div>\n </SubNavContext.Provider>\n )\n}\n\nexport type SubNavProps = {\n /**\n * @deprecated The hasShadow prop is deprecated and will be removed in a future release.\n */\n hasShadow?: boolean\n /**\n * Allows the SubNav to be used at full width,\n * removing any internal padding and guttering.\n */\n fullWidth?: boolean\n 'data-testid'?: string\n} & PropsWithChildren<BaseProps<HTMLDivElement>>\n\nconst SubNavRoot = memo(\n forwardRef<HTMLDivElement, SubNavProps>(\n ({id, children, className, 'data-testid': testId, fullWidth, hasShadow}, ref) => {\n const rootRef = useProvidedRefOrCreate<HTMLDivElement>(ref as RefObject<HTMLDivElement>)\n const innerRootRef = React.useRef<HTMLDivElement>(null)\n const navRef = React.useRef<HTMLElement>(null)\n const overlayRef = React.useRef<HTMLUListElement>(null)\n const narrowButtonRef = useRef<HTMLButtonElement>(null)\n const [isOpenAtNarrow, setIsOpenAtNarrow] = useState(false)\n const idForLinkContainer = useId()\n const [hasAnchoredNav, setHasAnchoredNav] = useState(false)\n\n const {isLarge} = useWindowSize()\n\n useFocusTrap({containerRef: innerRootRef, disabled: !isOpenAtNarrow})\n\n const childrenArr = Children.toArray(children)\n\n const closeMenuCallback = useCallback(() => {\n if (isLarge) return\n setIsOpenAtNarrow(false)\n }, [isLarge])\n\n const handleMenuToggle = useCallback(() => {\n if (isLarge) return\n setIsOpenAtNarrow(prev => !prev)\n }, [isLarge])\n\n useOnClickOutside(innerRootRef, closeMenuCallback)\n useKeyboardEscape(closeMenuCallback)\n\n useEffect(() => {\n const navElement = navRef.current\n\n const updateAvailableHeight = () => {\n if (navElement) {\n const navTop = navElement.getBoundingClientRect().top\n navElement.style.setProperty('--subnav-available-height', `${window.innerHeight - navTop}px`)\n }\n }\n\n if (isOpenAtNarrow && !isLarge) {\n document.body.style.overflow = 'hidden'\n updateAvailableHeight()\n // eslint-disable-next-line github/prefer-observers\n window.addEventListener('resize', updateAvailableHeight)\n } else {\n document.body.style.overflow = 'auto'\n\n if (navElement) {\n navElement.style.removeProperty('--subnav-available-height')\n }\n }\n\n return () => {\n document.body.style.overflow = 'auto'\n window.removeEventListener('resize', updateAvailableHeight)\n\n if (navElement) {\n navElement.style.removeProperty('--subnav-available-height')\n }\n }\n }, [isOpenAtNarrow, isLarge])\n\n const activeLink = childrenArr.find(child => {\n return isValidElement<LinkBaseProps>(child) && Boolean(child.props['aria-current'])\n }) as React.ReactElement<LinkBaseProps> | undefined\n\n useEffect(() => {\n // check if there is an anchored nav in the SubNav.SubMenu child\n const hasAnchorVariant = childrenArr.some(child => {\n if (isValidElement<LinkBaseProps>(child) && child.type === LinkBase) {\n const childNodes = Children.toArray(child.props.children)\n const maybeSubMenu = childNodes[1]\n if (\n isValidElement<SubMenuProps>(maybeSubMenu) &&\n maybeSubMenu.type === SubMenuBase &&\n maybeSubMenu.props.variant === 'anchor'\n ) {\n return true\n }\n }\n return false\n })\n setHasAnchoredNav(hasAnchorVariant)\n }, [childrenArr])\n\n const {\n heading: HeadingChild,\n subheading: SubHeadingChild,\n links: LinkChildren,\n action: ActionChild,\n } = childrenArr.reduce(\n (\n acc: {\n heading?: React.ReactElement<HeadingBaseProps>\n subheading?: React.ReactElement<SubHeadingBaseProps>\n links: React.ReactElement<LinkBaseProps>[]\n action?: React.ReactElement<SubNavActionProps>\n },\n child,\n ) => {\n if (isValidElement(child)) {\n if (child.type === HeadingBase) {\n acc.heading = child as React.ReactElement<HeadingBaseProps>\n } else if (child.type === SubHeadingBase) {\n acc.subheading = child as React.ReactElement<SubHeadingBaseProps>\n } else if (child.type === LinkBase) {\n const linkChild = child as React.ReactElement<LinkBaseProps>\n const childNodes = Children.toArray(linkChild.props.children)\n const [link, subMenu] = childNodes\n const isAnchorVariant =\n isValidElement<SubMenuProps>(subMenu) &&\n subMenu.type === SubMenuBase &&\n subMenu.props.variant === 'anchor'\n\n acc.links.push(\n React.cloneElement(linkChild, {\n ...(isAnchorVariant ? {children: [link]} : {}),\n onClick: linkChild.props['aria-current'] ? closeMenuCallback : linkChild.props.onClick,\n }),\n )\n } else if (child.type === ActionBase) {\n acc.action = child as React.ReactElement<SubNavActionProps>\n }\n }\n return acc\n },\n {heading: undefined, subheading: undefined, links: [], action: undefined},\n )\n\n const activeLinkChildren = activeLink ? Children.toArray(activeLink.props.children) : []\n const activeLinklabel = activeLinkChildren[0]\n\n // needed to prevent rendering of anchor subnav inside the narrow <button> element\n const maybeSubMenu = activeLinkChildren[1]\n const MaybeSubNav =\n isValidElement<SubMenuProps>(maybeSubMenu) &&\n maybeSubMenu.type === SubMenuBase &&\n maybeSubMenu.props.variant === 'anchor'\n ? maybeSubMenu\n : null\n\n const subHeadingIsActive =\n isValidElement<SubHeadingBaseProps>(SubHeadingChild) &&\n SubHeadingChild.type === SubHeadingBase &&\n Boolean(SubHeadingChild.props['aria-current'])\n const narrowButtonLabel = SubHeadingChild ? activeLinklabel : null\n\n const NarrowButton = useMemo(\n () => (\n <div\n className={clsx(styles['SubNav__overlay-toggle'], isOpenAtNarrow && styles['SubNav__overlay-toggle--open'])}\n >\n <span\n className={clsx(\n styles['SubNav__overlay-toggle-content'],\n !narrowButtonLabel && styles['SubNav__overlay-toggle-content--end'],\n )}\n >\n <button\n ref={narrowButtonRef}\n className={styles['SubNav__overlay-toggle-label']}\n data-testid={testIds.button}\n onClick={isOpenAtNarrow ? closeMenuCallback : handleMenuToggle}\n aria-expanded={isOpenAtNarrow ? 'true' : 'false'}\n aria-controls={idForLinkContainer}\n aria-label={activeLinklabel ? `Navigation menu. Current page: ${activeLinklabel}` : 'Navigation menu'}\n >\n {narrowButtonLabel && (\n <Text as=\"span\" size=\"100\">\n {narrowButtonLabel}\n </Text>\n )}\n {isOpenAtNarrow ? (\n <TriangleUpIcon className={styles['SubNav__overlay-toggle-icon']} size={13} />\n ) : (\n <TriangleDownIcon className={styles['SubNav__overlay-toggle-icon']} size={13} />\n )}\n </button>\n </span>\n </div>\n ),\n [activeLinklabel, closeMenuCallback, handleMenuToggle, idForLinkContainer, isOpenAtNarrow, narrowButtonLabel],\n )\n\n return (\n <div\n ref={rootRef}\n className={clsx(\n styles['SubNav__container'],\n SubHeadingChild && styles['SubNav--has-sub-heading'],\n SubHeadingChild && subHeadingIsActive && styles['SubNav--subHeadingActive'],\n hasAnchoredNav && styles['SubNav__container--with-anchor-nav'],\n )}\n >\n <SubNavProvider>\n <nav\n ref={navRef}\n id={id}\n className={clsx(\n styles.SubNav,\n isOpenAtNarrow && styles['SubNav--open'],\n hasShadow && styles['SubNav--has-shadow'],\n fullWidth && styles['SubNav--full-width'],\n className,\n )}\n data-testid={testId || testIds.root}\n >\n <div ref={innerRootRef} className={styles['SubNav--header-container-outer']}>\n <div className={styles['SubNav__header-container']}>\n {HeadingChild && <div className={styles['SubNav__heading-container']}>{HeadingChild}</div>}\n\n {SubHeadingChild && (\n <div\n className={clsx(\n styles['SubNav__heading-container'],\n styles['SubNav__subheading-container'],\n subHeadingIsActive && styles['SubNav__subheading-container-active'],\n )}\n >\n {SubHeadingChild}\n </div>\n )}\n\n {!isLarge && (!SubHeadingChild || subHeadingIsActive) && NarrowButton}\n\n {MaybeSubNav && MaybeSubNav}\n </div>\n {!isLarge && SubHeadingChild && !subHeadingIsActive && NarrowButton}\n {LinkChildren.length > 0 && (\n <ul\n ref={overlayRef}\n id={idForLinkContainer}\n className={clsx(\n styles['SubNav__links-overlay'],\n isOpenAtNarrow && styles['SubNav__links-overlay--open'],\n )}\n data-testid={testIds.overlay}\n >\n {LinkChildren}\n {ActionChild && <li className={styles['SubNav__action-container']}>{ActionChild}</li>}\n </ul>\n )}\n </div>\n </nav>\n </SubNavProvider>\n </div>\n )\n },\n ),\n)\n\ntype HeadingBaseProps = {\n href: string\n 'data-testid'?: string\n} & PropsWithChildren<React.HTMLProps<HTMLAnchorElement>> &\n BaseProps<HTMLAnchorElement>\n\nconst HeadingBase = ({href, children, className, 'data-testid': testID, ...props}: HeadingBaseProps) => {\n return (\n <a\n href={href}\n className={clsx(styles['SubNav__heading'], className)}\n data-testid={testIds.heading || testID}\n {...props}\n >\n {children}\n </a>\n )\n}\n\ntype SubHeadingBaseProps = {\n href: string\n 'data-testid'?: string\n} & PropsWithChildren<React.HTMLProps<HTMLAnchorElement>> &\n BaseProps<HTMLAnchorElement>\n\nconst SubHeadingBase = ({href, children, className, 'data-testid': testID, ...props}: SubHeadingBaseProps) => {\n return (\n <a\n href={href}\n className={clsx(styles['SubNav__heading'], styles['SubNav__link'], styles['SubNav__subHeading'], className)}\n data-testid={testIds.heading || testID}\n {...props}\n >\n {children}\n </a>\n )\n}\n\ntype LinkBaseProps = {\n href: string\n 'data-testid'?: string\n variant?: TextProps['variant']\n _subMenuVariant?: SubMenuVariants\n} & PropsWithChildren<React.HTMLProps<HTMLAnchorElement>> &\n BaseProps<HTMLAnchorElement>\n\nconst LinkBaseWithSubmenu = forwardRef<HTMLDivElement, LinkBaseProps>(\n (\n {children, href, 'aria-current': ariaCurrent, 'data-testid': testId, className, _subMenuVariant, variant, ...props},\n forwardedRef,\n ) => {\n const submenuId = useId()\n const {isLarge} = useWindowSize()\n\n const [isExpanded, setIsExpanded] = useState(false)\n const ref = useProvidedRefOrCreate(forwardedRef as RefObject<HTMLDivElement>)\n const subMenuChildrenRef = useRef<HTMLDivElement>(null)\n\n useContainsFocus(ref, (containsFocus: boolean) => {\n if (!containsFocus) {\n setIsExpanded(false)\n }\n })\n\n const expand = useCallback(() => setIsExpanded(true), [])\n const collapse = useCallback(() => setIsExpanded(false), [])\n const toggleExpanded = useCallback(() => setIsExpanded(prev => !prev), [])\n const isAriaCurrent = Boolean(ariaCurrent) && ariaCurrent !== 'false'\n\n useKeyboardEscape(collapse)\n\n useEffect(() => {\n if (subMenuChildrenRef.current) {\n // Workaround to avoid React 18 / 19 type mismatches with the `inert` attribute.\n // This approach won't immediately apply the attribute in pure SSR contexts, only post-hydration\n // TODO: Move back to JSX when React 19 is fully adopted in Dotcom.\n // `inert` removes the collapsed submenu from tab order and the accessibility tree\n // without affecting visual appearance\n subMenuChildrenRef.current.toggleAttribute('inert', isLarge && !isExpanded)\n }\n }, [isLarge, isExpanded])\n\n const [label, SubMenuChildren] = children as ReactNode[]\n\n return (\n <div\n className={clsx(\n styles['SubNav__link--has-sub-menu'],\n isExpanded && styles['SubNav__link--expanded'],\n isAriaCurrent && styles['SubNav__link--has-active-sub-menu'],\n )}\n data-testid={testId || testIds.subMenu}\n ref={ref}\n onMouseOver={expand}\n onMouseOut={collapse}\n /**\n * onFocus and onBlur need to be defined to keep the jsx-a11y/mouse-events-have-key-events\n * eslint rule happy. The focus/blur behaviour is handled by useContainsFocus\n */\n onFocus={() => null}\n onBlur={() => null}\n >\n <a\n href={href}\n className={clsx(styles['SubNav__link'], ariaCurrent && styles['SubNav__link--active'], className)}\n aria-current={ariaCurrent}\n {...props}\n >\n <Text as=\"span\" size=\"100\" weight=\"medium\" className={styles['SubNav__link-label']}>\n {label}\n </Text>\n </a>\n {isLarge && (\n <button\n className={styles['SubNav__sub-menu-toggle']}\n onClick={toggleExpanded}\n aria-expanded={isExpanded ? 'true' : 'false'}\n aria-controls={submenuId}\n aria-label={`${label?.toString().trim()} submenu`}\n >\n <TriangleDownIcon className={styles['SubNav__sub-menu-icon']} size={16} />\n </button>\n )}\n\n <div id={submenuId} className={styles['SubNav__sub-menu-children']} ref={subMenuChildrenRef}>\n {SubMenuChildren}\n </div>\n </div>\n )\n },\n)\n\nconst LinkBase = forwardRef<HTMLAnchorElement | HTMLDivElement, LinkBaseProps>((props, ref) => {\n const [isInView, setIsInView] = useState(false)\n const childrenArr = Children.toArray(props.children)\n\n const hasSubMenu = childrenArr.some(child => {\n if (isValidElement(child)) {\n return child.type === SubMenuBase\n }\n })\n\n useEffect(() => {\n if (hasSubMenu) return\n const targetId = props.href.replace('#', '')\n const target = document.getElementById(targetId)\n if (!target) return\n\n const topOfWindow = '0px 0px -100%'\n const observerParams = {threshold: 0, root: null, rootMargin: topOfWindow}\n\n const handleIntersectionUpdate: IntersectionObserverCallback = ([entry]) => {\n setIsInView(entry.isIntersecting)\n }\n\n const observer = new IntersectionObserver(handleIntersectionUpdate, observerParams)\n observer.observe(target)\n return () => observer.disconnect()\n }, [hasSubMenu, props.href])\n\n if (hasSubMenu) {\n const isAnchorVariantSubMenu = childrenArr.some(child => {\n return isValidElement<SubMenuProps>(child) && child.type === SubMenuBase && child.props.variant === 'anchor'\n })\n\n return (\n <li>\n <LinkBaseWithSubmenu\n ref={ref as RefObject<HTMLDivElement>}\n {...props}\n _subMenuVariant={isAnchorVariantSubMenu ? 'anchor' : undefined}\n />\n </li>\n )\n }\n\n const {children, href, 'aria-current': ariaCurrent, 'data-testid': testId, variant, className, ...rest} = props\n\n return (\n <li>\n <a\n href={href}\n className={clsx(\n styles['SubNav__link'],\n ariaCurrent && styles['SubNav__link--active'],\n isInView && styles['SubNav__link--is-in-view'],\n className,\n )}\n aria-current={ariaCurrent}\n data-testid={testId || testIds.link}\n ref={ref as RefObject<HTMLAnchorElement>}\n {...rest}\n >\n <Text as=\"span\" size=\"100\" weight=\"medium\" className={styles['SubNav__link-label']}>\n {children}\n </Text>\n </a>\n </li>\n )\n})\n\ntype SubMenuProps = {\n variant?: SubMenuVariants\n} & React.HTMLAttributes<HTMLUListElement> &\n BaseProps<HTMLUListElement>\n\nfunction SubMenuBase({children, className, variant = 'dropdown', ...props}: SubMenuProps) {\n const context = React.useContext(SubNavContext)\n const navRef = useRef<HTMLElement>(null)\n\n const {isLarge} = useWindowSize()\n\n /**\n * Effect is needed to prevent the bubbling of onClick events to the overlay trigger.\n * Removing this effect will cause clicks on the anchor nav element to toggle the overlay.\n */\n useEffect(() => {\n const handleClick = (e: MouseEvent) => {\n if (navRef.current && !navRef.current.contains(e.target as Node)) {\n return\n }\n\n if (!(e.target instanceof HTMLAnchorElement)) {\n e.stopPropagation()\n }\n }\n\n if (variant === 'anchor') {\n document.addEventListener('click', handleClick, true) // Capture phase\n }\n\n return () => {\n document.removeEventListener('click', handleClick, true)\n }\n }, [variant])\n\n if (variant === 'anchor' && context?.portalRef.current) {\n return createPortal(\n <nav\n ref={navRef}\n className={clsx(styles['SubNav__sub-menu'], styles['SubNav__sub-menu--anchor'], className)}\n role=\"navigation\"\n aria-label=\"Sub navigation\"\n >\n <ul className={styles['SubNav__sub-menu-list']} {...props}>\n {React.Children.map(children, child => {\n if (isValidElement<LinkBaseProps>(child) && child.type === LinkBase) {\n return React.cloneElement(child, {\n onClick: e => {\n child.props.onClick?.(e)\n },\n })\n }\n return null\n })}\n </ul>\n </nav>,\n context.portalRef.current,\n )\n } else {\n const Tag = isLarge ? ThemeProvider : React.Fragment\n\n return (\n <Tag {...(isLarge ? {colorMode: 'light'} : {})}>\n <ul className={clsx(styles['SubNav__sub-menu'], styles[`SubNav__sub-menu--${variant}`], className)} {...props}>\n {children}\n </ul>\n </Tag>\n )\n }\n}\n\ntype SubNavActionProps = {\n /**\n * Required path or location for the action button to link to.\n */\n href: string\n /**\n * Optional sizes for the button.\n */\n size?: (typeof ButtonSizes)[number]\n /**\n * Optional sizes for the button.\n */\n variant?: (typeof ButtonVariants)[number]\n} & Omit<React.AnchorHTMLAttributes<HTMLAnchorElement>, 'href'>\n\nfunction ActionBase({children, href, variant = 'primary', size = 'small', ...rest}: SubNavActionProps) {\n return (\n <Button\n className={styles['SubNav__action']}\n as=\"a\"\n href={href}\n variant={variant}\n data-testid={testIds.action}\n size={size}\n {...rest}\n >\n {children}\n </Button>\n )\n}\n\n/**\n * Use SubNav to display a secondary navigation beneath a primary header.\n * @see https://primer.style/brand/components/SubNav\n */\nexport const SubNav = Object.assign(SubNavRoot, {\n Heading: HeadingBase,\n SubHeading: SubHeadingBase,\n Link: LinkBase,\n Action: ActionBase,\n SubMenu: SubMenuBase,\n testIds,\n})\n"],"mappings":"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"}
@@ -1,10 +1,11 @@
1
- import './SubNav.module-D-gLr0JO.css';var e = {
2
- SubNav__container: "Primer_Brand__SubNav-module__SubNav__container___e4u9B",
1
+ import './SubNav.module-D-gLr0JO.css';//#region src/SubNav/SubNav.module.css
2
+ var e = "Primer_Brand__SubNav-module__SubNav__container___e4u9B", t = "Primer_Brand__SubNav-module__SubNav___txUks", n = "Primer_Brand__SubNav-module__SubNav__heading___d8v1r", r = "Primer_Brand__SubNav-module__SubNav__subHeading___cmfhs", i = "Primer_Brand__SubNav-module__SubNav__link___rY_yE", a = "Primer_Brand__SubNav-module__SubNav__action___Yrrhg", o = {
3
+ SubNav__container: e,
3
4
  "SubNav__container--with-anchor-nav": "Primer_Brand__SubNav-module__SubNav__container--with-anchor-nav___jf8vj",
4
- SubNav: "Primer_Brand__SubNav-module__SubNav___txUks",
5
- SubNav__heading: "Primer_Brand__SubNav-module__SubNav__heading___d8v1r",
6
- SubNav__subHeading: "Primer_Brand__SubNav-module__SubNav__subHeading___cmfhs",
7
- SubNav__link: "Primer_Brand__SubNav-module__SubNav__link___rY_yE",
5
+ SubNav: t,
6
+ SubNav__heading: n,
7
+ SubNav__subHeading: r,
8
+ SubNav__link: i,
8
9
  "SubNav__link-label": "Primer_Brand__SubNav-module__SubNav__link-label___NVLOG",
9
10
  "SubNav--header-container-outer": "Primer_Brand__SubNav-module__SubNav--header-container-outer___TODOB",
10
11
  "SubNav__heading-container": "Primer_Brand__SubNav-module__SubNav__heading-container___09GuE",
@@ -36,7 +37,7 @@ import './SubNav.module-D-gLr0JO.css';var e = {
36
37
  "SubNav__overlay-toggle-content": "Primer_Brand__SubNav-module__SubNav__overlay-toggle-content___r7g9W",
37
38
  "SubNav__overlay-toggle-label": "Primer_Brand__SubNav-module__SubNav__overlay-toggle-label___FRenU",
38
39
  "SubNav__link--has-sub-menu": "Primer_Brand__SubNav-module__SubNav__link--has-sub-menu___Sy_3p",
39
- SubNav__action: "Primer_Brand__SubNav-module__SubNav__action___Yrrhg",
40
+ SubNav__action: a,
40
41
  "SubNav__sub-menu": "Primer_Brand__SubNav-module__SubNav__sub-menu___b8DSd",
41
42
  "SubNav__sub-menu--dropdown": "Primer_Brand__SubNav-module__SubNav__sub-menu--dropdown___uiVDU",
42
43
  "SubNav__overlay-toggle-icon": "Primer_Brand__SubNav-module__SubNav__overlay-toggle-icon___Fo5xs",
@@ -47,6 +48,6 @@ import './SubNav.module-D-gLr0JO.css';var e = {
47
48
  "fade-in-down": "Primer_Brand__SubNav-module__fade-in-down___UKi30"
48
49
  };
49
50
  //#endregion
50
- export { e as default };
51
+ export { t as SubNav, a as SubNav__action, e as SubNav__container, n as SubNav__heading, i as SubNav__link, r as SubNav__subHeading, o as default };
51
52
 
52
53
  //# sourceMappingURL=SubNav.module.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useContainsFocus.js","names":[],"sources":["../../src/SubNav/useContainsFocus.ts"],"sourcesContent":["import {useCallback, useEffect, useState, type RefObject} from 'react'\n\n/**\n * Determine if a child element of the provided ref is currently focussed.\n * @param containerRef The ref to the container element.\n * @param onFocusChange The callback to be called when the focus state changes.\n * @type T The type of the container element.\n * @returns The ref to be applied to the container element.\n */\nexport const useContainsFocus = <T extends HTMLElement>(\n containerRef?: RefObject<T | null>,\n onFocusChange?: (isFocussed: boolean) => void,\n) => {\n const [isChildFocused, setIsChildFocused] = useState(false)\n\n const updateState = useCallback(\n (isFocused: boolean) => {\n if (isFocused !== isChildFocused) {\n setIsChildFocused(isFocused)\n onFocusChange?.(isFocused)\n }\n },\n [isChildFocused, onFocusChange],\n )\n\n useEffect(() => {\n if (!containerRef) {\n return\n }\n\n const handleFocusIn = () => {\n updateState(true)\n }\n\n const handleFocusOut = (event: FocusEvent) => {\n if (containerRef.current && !containerRef.current.contains(event.relatedTarget as Node)) {\n updateState(false)\n }\n }\n\n const container = containerRef.current\n\n if (container) {\n container.addEventListener('focusin', handleFocusIn, true)\n container.addEventListener('focusout', handleFocusOut, true)\n\n return () => {\n container.removeEventListener('focusin', handleFocusIn, true)\n container.removeEventListener('focusout', handleFocusOut, true)\n }\n }\n }, [updateState, containerRef])\n}\n"],"mappings":";;AASA,IAAa,KACX,GACA,MACG;CACH,IAAM,CAAC,GAAgB,KAAqB,EAAS,GAAM,EAErD,IAAc,GACjB,MAAuB;AACtB,EAAI,MAAc,MAChB,EAAkB,EAAU,EAC5B,IAAgB,EAAU;IAG9B,CAAC,GAAgB,EAAc,CAChC;AAED,SAAgB;AACd,MAAI,CAAC,EACH;EAGF,IAAM,UAAsB;AAC1B,KAAY,GAAK;KAGb,KAAkB,MAAsB;AAC5C,GAAI,EAAa,WAAW,CAAC,EAAa,QAAQ,SAAS,EAAM,cAAsB,IACrF,EAAY,GAAM;KAIhB,IAAY,EAAa;AAE/B,MAAI,EAIF,QAHA,EAAU,iBAAiB,WAAW,GAAe,GAAK,EAC1D,EAAU,iBAAiB,YAAY,GAAgB,GAAK,QAE/C;AAEX,GADA,EAAU,oBAAoB,WAAW,GAAe,GAAK,EAC7D,EAAU,oBAAoB,YAAY,GAAgB,GAAK;;IAGlE,CAAC,GAAa,EAAa,CAAC"}
1
+ {"version":3,"file":"useContainsFocus.js","names":[],"sources":["../../src/SubNav/useContainsFocus.ts"],"sourcesContent":["import {useCallback, useEffect, useState, type RefObject} from 'react'\n\n/**\n * Determine if a child element of the provided ref is currently focussed.\n * @param containerRef The ref to the container element.\n * @param onFocusChange The callback to be called when the focus state changes.\n * @type T The type of the container element.\n * @returns The ref to be applied to the container element.\n */\nexport const useContainsFocus = <T extends HTMLElement>(\n containerRef?: RefObject<T | null>,\n onFocusChange?: (isFocussed: boolean) => void,\n) => {\n const [isChildFocused, setIsChildFocused] = useState(false)\n\n const updateState = useCallback(\n (isFocused: boolean) => {\n if (isFocused !== isChildFocused) {\n setIsChildFocused(isFocused)\n onFocusChange?.(isFocused)\n }\n },\n [isChildFocused, onFocusChange],\n )\n\n useEffect(() => {\n if (!containerRef) {\n return\n }\n\n const handleFocusIn = () => {\n updateState(true)\n }\n\n const handleFocusOut = (event: FocusEvent) => {\n if (containerRef.current && !containerRef.current.contains(event.relatedTarget as Node)) {\n updateState(false)\n }\n }\n\n const container = containerRef.current\n\n if (container) {\n container.addEventListener('focusin', handleFocusIn, true)\n container.addEventListener('focusout', handleFocusOut, true)\n\n return () => {\n container.removeEventListener('focusin', handleFocusIn, true)\n container.removeEventListener('focusout', handleFocusOut, true)\n }\n }\n }, [updateState, containerRef])\n}\n"],"mappings":";;AASA,IAAa,KACX,GACA,MACG;CACH,IAAM,CAAC,GAAgB,KAAqB,EAAS,EAAK,GAEpD,IAAc,GACjB,MAAuB;EACtB,AAAI,MAAc,MAChB,EAAkB,CAAS,GAC3B,IAAgB,CAAS;CAE7B,GACA,CAAC,GAAgB,CAAa,CAChC;CAEA,QAAgB;EACd,IAAI,CAAC,GACH;EAGF,IAAM,UAAsB;GAC1B,EAAY,EAAI;EAClB,GAEM,KAAkB,MAAsB;GAC5C,AAAI,EAAa,WAAW,CAAC,EAAa,QAAQ,SAAS,EAAM,aAAqB,KACpF,EAAY,EAAK;EAErB,GAEM,IAAY,EAAa;EAE/B,IAAI,GAIF,OAHA,EAAU,iBAAiB,WAAW,GAAe,EAAI,GACzD,EAAU,iBAAiB,YAAY,GAAgB,EAAI,SAE9C;GAEX,AADA,EAAU,oBAAoB,WAAW,GAAe,EAAI,GAC5D,EAAU,oBAAoB,YAAY,GAAgB,EAAI;EAChE;CAEJ,GAAG,CAAC,GAAa,CAAY,CAAC;AAChC"}
@@ -1,9 +1,10 @@
1
- import e from "../node_modules/clsx/dist/clsx.js";
1
+ import { clsx as e } from "../node_modules/clsx/dist/clsx.js";
2
2
  import { useProvidedRefOrCreate as t } from "../hooks/useRef.js";
3
3
  import { useAnchoredPosition as n } from "../hooks/useAnchoredPosition.js";
4
4
  import { useOnClickOutside as r } from "../hooks/useOnClickOutside.js";
5
5
  import { useKeyboardEscape as i } from "../hooks/useKeyboardEscape.js";
6
- import { TriangleDownIcon as a, TriangleUpIcon as o } from "../node_modules/@primer/octicons-react/dist/index.esm.js";
6
+ import { TriangleDownIcon as a } from "../node_modules/@primer/octicons-react/dist/icons/TriangleDownIcon.js";
7
+ import { TriangleUpIcon as o } from "../node_modules/@primer/octicons-react/dist/icons/TriangleUpIcon.js";
7
8
  import { useWindowSize as s } from "../hooks/useWindowSize.js";
8
9
  import { useVisibilityObserver as c } from "./useVisibilityObserver.js";
9
10
  import l from "./SubdomainNavBar.module.js";
@@ -82,7 +83,7 @@ var y = f(({ children: a, className: o, overflowMenuLabel: f, ...y }, S) => {
82
83
  }), b = f(({ ariaControls: n, buttonRef: r, className: i, menuOpen: s, onClick: c, order: u, overflowMenuLabel: d, visible: f }, p) => {
83
84
  let m = t(p);
84
85
  return /* @__PURE__ */ _("li", {
85
- "aria-hidden": f ? void 0 : !0,
86
+ "aria-hidden": !f || void 0,
86
87
  className: e(l["SubdomainNavBar-primary-nav-list-item--overflow"], i),
87
88
  ref: m,
88
89
  style: { order: u },
@@ -1 +1 @@
1
- {"version":3,"file":"NavigationVisbilityObserver.js","names":[],"sources":["../../src/SubdomainNavBar/NavigationVisbilityObserver.tsx"],"sourcesContent":["import React, {forwardRef, useCallback, useEffect, useRef, useState, PropsWithChildren} from 'react'\nimport {clsx} from 'clsx'\nimport {TriangleDownIcon, TriangleUpIcon} from '@primer/octicons-react'\n\nimport {BaseProps} from '../component-helpers'\nimport {useVisibilityObserver} from './useVisibilityObserver'\nimport {useOnClickOutside} from '../hooks/useOnClickOutside'\nimport type {VisibilityMap} from './useVisibilityObserver'\nimport type {SubdomainNavBarLinkProps} from './SubdomainNavBar'\n\nimport styles from './SubdomainNavBar.module.css'\nimport {useAnchoredPosition} from '../hooks/useAnchoredPosition'\nimport {useKeyboardEscape} from '../hooks/useKeyboardEscape'\nimport {useWindowSize} from '../hooks/useWindowSize'\nimport {useProvidedRefOrCreate} from '../hooks/useRef'\nimport {SubdomainNavBarLinkContext} from './SubdomainNavBarLinkContext'\n\ntype NavigationVisibilityObserverProps = PropsWithChildren<\n BaseProps<HTMLUListElement> &\n React.HTMLAttributes<HTMLUListElement> & {\n overflowMenuLabel: string\n }\n>\n\nexport const NavigationVisbilityObserver = forwardRef<HTMLUListElement, NavigationVisibilityObserverProps>(\n ({children, className, overflowMenuLabel, ...rest}, forwardedRef) => {\n const navRef = useProvidedRefOrCreate<HTMLUListElement>(\n forwardedRef as React.RefObject<HTMLUListElement> | React.RefCallback<HTMLUListElement> | null,\n )\n const overflowRef = useRef<HTMLLIElement | null>(null)\n const overflowButtonRef = useRef<HTMLButtonElement | null>(null)\n const overflowMenuRef = useRef<HTMLDivElement | null>(null)\n const {isMedium} = useWindowSize()\n const measurementKey = React.Children.toArray(children)\n .map((child, index) => {\n if (React.isValidElement<SubdomainNavBarLinkProps>(child)) {\n return `${index}:${typeof child.props.children === 'string' ? child.props.children : ''}`\n }\n\n return `${index}:`\n })\n .join('|')\n const [visibilityMap] = useVisibilityObserver(navRef, overflowRef, measurementKey, !isMedium)\n const [menuOpen, setMenuOpen] = useState(false)\n\n const showOverflow = Object.values(visibilityMap).includes(false)\n const overflowMenuId = React.useId()\n const firstOverflowedItemIndex = React.Children.toArray(children).findIndex((child, index) => {\n if (React.isValidElement<SubdomainNavBarLinkProps>(child)) {\n return visibilityMap[index] === false\n }\n\n return false\n })\n const overflowOrder =\n firstOverflowedItemIndex === -1 ? React.Children.count(children) * 2 : firstOverflowedItemIndex * 2 - 1\n\n const navItems = React.Children.map(children, (child, index) => {\n if (React.isValidElement<SubdomainNavBarLinkProps>(child)) {\n const isOverflowed = isMedium && visibilityMap[index] === false\n return (\n <SubdomainNavBarLinkContext.Provider value={{isOverflowed}}>\n {React.cloneElement(child, {\n className: clsx(\n child.props.className,\n isOverflowed && styles['SubdomainNavBar-primary-nav-list-item--overflowed'],\n ),\n style: {\n ...child.props.style,\n order: index * 2,\n },\n })}\n </SubdomainNavBarLinkContext.Provider>\n )\n }\n\n return child\n })\n\n const handleClose = useCallback(() => {\n setMenuOpen(false)\n }, [])\n\n const handleOverflowButtonClick = () => {\n setMenuOpen(prevMenuOpen => !prevMenuOpen)\n }\n\n const handleEscape = useCallback(() => {\n if (menuOpen) {\n handleClose()\n overflowButtonRef.current?.focus()\n }\n }, [handleClose, menuOpen])\n\n useEffect(() => {\n if (!showOverflow) {\n handleClose()\n }\n }, [handleClose, showOverflow])\n\n useOnClickOutside(overflowRef, handleClose, overflowMenuRef)\n useKeyboardEscape(handleEscape)\n\n const {position} = useAnchoredPosition(\n {\n floatingElementRef: overflowMenuRef,\n anchorElementRef: overflowButtonRef,\n align: 'end',\n side: 'outside-bottom',\n },\n [menuOpen, showOverflow, overflowOrder, visibilityMap],\n )\n\n if (!isMedium) {\n return (\n <ul className={clsx(styles['SubdomainNavBar-primary-nav-list'], className)} ref={navRef} {...rest}>\n {children}\n </ul>\n )\n }\n\n return (\n <div\n className={clsx(\n styles['SubdomainNavBar-primary-nav-overflow'],\n showOverflow && styles['SubdomainNavBar-primary-nav-overflow--has-overflow'],\n className,\n )}\n >\n <ul className={styles['SubdomainNavBar-primary-nav-list']} ref={navRef} {...rest}>\n {navItems}\n <OverflowButton\n ariaControls={overflowMenuId}\n buttonRef={overflowButtonRef}\n menuOpen={menuOpen}\n onClick={handleOverflowButtonClick}\n order={overflowOrder}\n overflowMenuLabel={overflowMenuLabel}\n ref={overflowRef}\n visible={showOverflow}\n />\n </ul>\n <OverflowMenu\n id={overflowMenuId}\n menuOpen={menuOpen}\n onClose={handleClose}\n position={position}\n ref={overflowMenuRef}\n visibilityMap={visibilityMap}\n >\n {children}\n </OverflowMenu>\n </div>\n )\n },\n)\n\ntype OverflowButtonProps = {\n ariaControls: string\n buttonRef: React.RefObject<HTMLButtonElement | null>\n menuOpen: boolean\n onClick: () => void\n order: number\n overflowMenuLabel: string\n visible: boolean\n} & BaseProps<HTMLLIElement>\n\nconst OverflowButton = forwardRef<HTMLLIElement, OverflowButtonProps>(\n ({ariaControls, buttonRef, className, menuOpen, onClick, order, overflowMenuLabel, visible}, forwardedRef) => {\n const ref = useProvidedRefOrCreate<HTMLLIElement>(\n forwardedRef as React.RefObject<HTMLLIElement> | React.RefCallback<HTMLLIElement> | null,\n )\n\n return (\n <li\n aria-hidden={visible ? undefined : true}\n className={clsx(styles['SubdomainNavBar-primary-nav-list-item--overflow'], className)}\n ref={ref}\n style={{order}}\n >\n <button\n aria-expanded={menuOpen ? 'true' : 'false'}\n aria-controls={ariaControls}\n onClick={onClick}\n className={clsx(styles['SubdomainNavBar-link'], styles['SubdomainNavBar-more-link'])}\n ref={buttonRef}\n tabIndex={visible ? undefined : -1}\n >\n <span className={styles['SubdomainNavBar-link-content']}>\n {overflowMenuLabel}\n {menuOpen ? <TriangleUpIcon /> : <TriangleDownIcon />}\n </span>\n </button>\n </li>\n )\n },\n)\n\ntype OverflowMenuProps = {\n id: string\n menuOpen: boolean\n onClose: () => void\n position?: {top: number; left: number}\n visibilityMap: VisibilityMap\n} & BaseProps<HTMLDivElement>\n\nconst OverflowMenu = forwardRef<HTMLDivElement, React.PropsWithChildren<OverflowMenuProps>>(\n ({children, className, id, menuOpen, onClose, position, visibilityMap}, forwardedRef) => {\n if (!menuOpen) {\n return null\n }\n\n return (\n <div\n id={id}\n ref={forwardedRef}\n style={{\n top: `${position?.top ?? 0}px`,\n left: `${position?.left ?? 0}px`,\n visibility: position ? undefined : 'hidden',\n }}\n className={clsx(styles['SubdomainNavBar-overflow-menu'], className)}\n >\n <ul className={clsx(styles['SubdomainNavBar-overflow-menu-list'])}>\n {React.Children.map(children, (child, index) => {\n if (React.isValidElement<SubdomainNavBarLinkProps>(child)) {\n if (visibilityMap[index] !== false) {\n return null\n }\n\n return (\n <SubdomainNavBarLinkContext.Provider value={{isOverflowed: false, onLinkClick: onClose}}>\n {React.cloneElement(child, {\n className: clsx(styles['SubdomainNavBar-overflow-menu-item'], child.props.className),\n })}\n </SubdomainNavBarLinkContext.Provider>\n )\n }\n return null\n })}\n </ul>\n </div>\n )\n },\n)\n"],"mappings":"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"}
1
+ {"version":3,"file":"NavigationVisbilityObserver.js","names":[],"sources":["../../src/SubdomainNavBar/NavigationVisbilityObserver.tsx"],"sourcesContent":["import React, {forwardRef, useCallback, useEffect, useRef, useState, PropsWithChildren} from 'react'\nimport {clsx} from 'clsx'\nimport {TriangleDownIcon, TriangleUpIcon} from '@primer/octicons-react'\n\nimport {BaseProps} from '../component-helpers'\nimport {useVisibilityObserver} from './useVisibilityObserver'\nimport {useOnClickOutside} from '../hooks/useOnClickOutside'\nimport type {VisibilityMap} from './useVisibilityObserver'\nimport type {SubdomainNavBarLinkProps} from './SubdomainNavBar'\n\nimport styles from './SubdomainNavBar.module.css'\nimport {useAnchoredPosition} from '../hooks/useAnchoredPosition'\nimport {useKeyboardEscape} from '../hooks/useKeyboardEscape'\nimport {useWindowSize} from '../hooks/useWindowSize'\nimport {useProvidedRefOrCreate} from '../hooks/useRef'\nimport {SubdomainNavBarLinkContext} from './SubdomainNavBarLinkContext'\n\ntype NavigationVisibilityObserverProps = PropsWithChildren<\n BaseProps<HTMLUListElement> &\n React.HTMLAttributes<HTMLUListElement> & {\n overflowMenuLabel: string\n }\n>\n\nexport const NavigationVisbilityObserver = forwardRef<HTMLUListElement, NavigationVisibilityObserverProps>(\n ({children, className, overflowMenuLabel, ...rest}, forwardedRef) => {\n const navRef = useProvidedRefOrCreate<HTMLUListElement>(\n forwardedRef as React.RefObject<HTMLUListElement> | React.RefCallback<HTMLUListElement> | null,\n )\n const overflowRef = useRef<HTMLLIElement | null>(null)\n const overflowButtonRef = useRef<HTMLButtonElement | null>(null)\n const overflowMenuRef = useRef<HTMLDivElement | null>(null)\n const {isMedium} = useWindowSize()\n const measurementKey = React.Children.toArray(children)\n .map((child, index) => {\n if (React.isValidElement<SubdomainNavBarLinkProps>(child)) {\n return `${index}:${typeof child.props.children === 'string' ? child.props.children : ''}`\n }\n\n return `${index}:`\n })\n .join('|')\n const [visibilityMap] = useVisibilityObserver(navRef, overflowRef, measurementKey, !isMedium)\n const [menuOpen, setMenuOpen] = useState(false)\n\n const showOverflow = Object.values(visibilityMap).includes(false)\n const overflowMenuId = React.useId()\n const firstOverflowedItemIndex = React.Children.toArray(children).findIndex((child, index) => {\n if (React.isValidElement<SubdomainNavBarLinkProps>(child)) {\n return visibilityMap[index] === false\n }\n\n return false\n })\n const overflowOrder =\n firstOverflowedItemIndex === -1 ? React.Children.count(children) * 2 : firstOverflowedItemIndex * 2 - 1\n\n const navItems = React.Children.map(children, (child, index) => {\n if (React.isValidElement<SubdomainNavBarLinkProps>(child)) {\n const isOverflowed = isMedium && visibilityMap[index] === false\n return (\n <SubdomainNavBarLinkContext.Provider value={{isOverflowed}}>\n {React.cloneElement(child, {\n className: clsx(\n child.props.className,\n isOverflowed && styles['SubdomainNavBar-primary-nav-list-item--overflowed'],\n ),\n style: {\n ...child.props.style,\n order: index * 2,\n },\n })}\n </SubdomainNavBarLinkContext.Provider>\n )\n }\n\n return child\n })\n\n const handleClose = useCallback(() => {\n setMenuOpen(false)\n }, [])\n\n const handleOverflowButtonClick = () => {\n setMenuOpen(prevMenuOpen => !prevMenuOpen)\n }\n\n const handleEscape = useCallback(() => {\n if (menuOpen) {\n handleClose()\n overflowButtonRef.current?.focus()\n }\n }, [handleClose, menuOpen])\n\n useEffect(() => {\n if (!showOverflow) {\n handleClose()\n }\n }, [handleClose, showOverflow])\n\n useOnClickOutside(overflowRef, handleClose, overflowMenuRef)\n useKeyboardEscape(handleEscape)\n\n const {position} = useAnchoredPosition(\n {\n floatingElementRef: overflowMenuRef,\n anchorElementRef: overflowButtonRef,\n align: 'end',\n side: 'outside-bottom',\n },\n [menuOpen, showOverflow, overflowOrder, visibilityMap],\n )\n\n if (!isMedium) {\n return (\n <ul className={clsx(styles['SubdomainNavBar-primary-nav-list'], className)} ref={navRef} {...rest}>\n {children}\n </ul>\n )\n }\n\n return (\n <div\n className={clsx(\n styles['SubdomainNavBar-primary-nav-overflow'],\n showOverflow && styles['SubdomainNavBar-primary-nav-overflow--has-overflow'],\n className,\n )}\n >\n <ul className={styles['SubdomainNavBar-primary-nav-list']} ref={navRef} {...rest}>\n {navItems}\n <OverflowButton\n ariaControls={overflowMenuId}\n buttonRef={overflowButtonRef}\n menuOpen={menuOpen}\n onClick={handleOverflowButtonClick}\n order={overflowOrder}\n overflowMenuLabel={overflowMenuLabel}\n ref={overflowRef}\n visible={showOverflow}\n />\n </ul>\n <OverflowMenu\n id={overflowMenuId}\n menuOpen={menuOpen}\n onClose={handleClose}\n position={position}\n ref={overflowMenuRef}\n visibilityMap={visibilityMap}\n >\n {children}\n </OverflowMenu>\n </div>\n )\n },\n)\n\ntype OverflowButtonProps = {\n ariaControls: string\n buttonRef: React.RefObject<HTMLButtonElement | null>\n menuOpen: boolean\n onClick: () => void\n order: number\n overflowMenuLabel: string\n visible: boolean\n} & BaseProps<HTMLLIElement>\n\nconst OverflowButton = forwardRef<HTMLLIElement, OverflowButtonProps>(\n ({ariaControls, buttonRef, className, menuOpen, onClick, order, overflowMenuLabel, visible}, forwardedRef) => {\n const ref = useProvidedRefOrCreate<HTMLLIElement>(\n forwardedRef as React.RefObject<HTMLLIElement> | React.RefCallback<HTMLLIElement> | null,\n )\n\n return (\n <li\n aria-hidden={visible ? undefined : true}\n className={clsx(styles['SubdomainNavBar-primary-nav-list-item--overflow'], className)}\n ref={ref}\n style={{order}}\n >\n <button\n aria-expanded={menuOpen ? 'true' : 'false'}\n aria-controls={ariaControls}\n onClick={onClick}\n className={clsx(styles['SubdomainNavBar-link'], styles['SubdomainNavBar-more-link'])}\n ref={buttonRef}\n tabIndex={visible ? undefined : -1}\n >\n <span className={styles['SubdomainNavBar-link-content']}>\n {overflowMenuLabel}\n {menuOpen ? <TriangleUpIcon /> : <TriangleDownIcon />}\n </span>\n </button>\n </li>\n )\n },\n)\n\ntype OverflowMenuProps = {\n id: string\n menuOpen: boolean\n onClose: () => void\n position?: {top: number; left: number}\n visibilityMap: VisibilityMap\n} & BaseProps<HTMLDivElement>\n\nconst OverflowMenu = forwardRef<HTMLDivElement, React.PropsWithChildren<OverflowMenuProps>>(\n ({children, className, id, menuOpen, onClose, position, visibilityMap}, forwardedRef) => {\n if (!menuOpen) {\n return null\n }\n\n return (\n <div\n id={id}\n ref={forwardedRef}\n style={{\n top: `${position?.top ?? 0}px`,\n left: `${position?.left ?? 0}px`,\n visibility: position ? undefined : 'hidden',\n }}\n className={clsx(styles['SubdomainNavBar-overflow-menu'], className)}\n >\n <ul className={clsx(styles['SubdomainNavBar-overflow-menu-list'])}>\n {React.Children.map(children, (child, index) => {\n if (React.isValidElement<SubdomainNavBarLinkProps>(child)) {\n if (visibilityMap[index] !== false) {\n return null\n }\n\n return (\n <SubdomainNavBarLinkContext.Provider value={{isOverflowed: false, onLinkClick: onClose}}>\n {React.cloneElement(child, {\n className: clsx(styles['SubdomainNavBar-overflow-menu-item'], child.props.className),\n })}\n </SubdomainNavBarLinkContext.Provider>\n )\n }\n return null\n })}\n </ul>\n </div>\n )\n },\n)\n"],"mappings":";;;;;;;;;;;;;;AAwBA,IAAa,IAA8B,GACxC,EAAC,aAAU,cAAW,sBAAmB,GAAG,KAAO,MAAiB;CACnE,IAAM,IAAS,EACb,CACF,GACM,IAAc,EAA6B,IAAI,GAC/C,IAAoB,EAAiC,IAAI,GACzD,IAAkB,EAA8B,IAAI,GACpD,EAAC,gBAAY,EAAc,GAU3B,CAAC,KAAiB,EAAsB,GAAQ,GAT/B,EAAM,SAAS,QAAQ,CAAQ,CAAC,CACpD,KAAK,GAAO,MACP,EAAM,eAAyC,CAAK,IAC/C,GAAG,EAAM,GAAG,OAAO,EAAM,MAAM,YAAa,WAAW,EAAM,MAAM,WAAW,OAGhF,GAAG,EAAM,EACjB,CAAC,CACD,KAAK,GAC2D,GAAgB,CAAC,CAAQ,GACtF,CAAC,GAAU,KAAe,EAAS,EAAK,GAExC,IAAe,OAAO,OAAO,CAAa,CAAC,CAAC,SAAS,EAAK,GAC1D,IAAiB,EAAM,MAAM,GAC7B,IAA2B,EAAM,SAAS,QAAQ,CAAQ,CAAC,CAAC,WAAW,GAAO,MAC9E,EAAM,eAAyC,CAAK,IAC/C,EAAc,OAAW,KAG3B,EACR,GACK,IACJ,MAA6B,KAAK,EAAM,SAAS,MAAM,CAAQ,IAAI,IAAI,IAA2B,IAAI,GAElG,IAAW,EAAM,SAAS,IAAI,IAAW,GAAO,MAAU;EAC9D,IAAI,EAAM,eAAyC,CAAK,GAAG;GACzD,IAAM,IAAe,KAAY,EAAc,OAAW;GAC1D,OACE,kBAAC,EAA2B,UAA5B;IAAqC,OAAO,EAAC,gBAAY;cACtD,EAAM,aAAa,GAAO;KACzB,WAAW,EACT,EAAM,MAAM,WACZ,KAAgB,EAAO,oDACzB;KACA,OAAO;MACL,GAAG,EAAM,MAAM;MACf,OAAO,IAAQ;KACjB;IACF,CAAC;GACkC,CAAA;EAEzC;EAEA,OAAO;CACT,CAAC,GAEK,IAAc,QAAkB;EACpC,EAAY,EAAK;CACnB,GAAG,CAAC,CAAC,GAEC,UAAkC;EACtC,GAAY,MAAgB,CAAC,CAAY;CAC3C,GAEM,IAAe,QAAkB;EACrC,AAAI,MACF,EAAY,GACZ,EAAkB,SAAS,MAAM;CAErC,GAAG,CAAC,GAAa,CAAQ,CAAC;CAS1B,AAPA,QAAgB;EACd,AAAK,KACH,EAAY;CAEhB,GAAG,CAAC,GAAa,CAAY,CAAC,GAE9B,EAAkB,GAAa,GAAa,CAAe,GAC3D,EAAkB,CAAY;CAE9B,IAAM,EAAC,gBAAY,EACjB;EACE,oBAAoB;EACpB,kBAAkB;EAClB,OAAO;EACP,MAAM;CACR,GACA;EAAC;EAAU;EAAc;EAAe;CAAa,CACvD;CAUA,OARK,IASH,kBAAC,OAAD;EACE,WAAW,EACT,EAAO,yCACP,KAAgB,EAAO,uDACvB,CACF;YALF,CAOE,kBAAC,MAAD;GAAI,WAAW,EAAO;GAAqC,KAAK;GAAQ,GAAI;aAA5E,CACG,GACD,kBAAC,GAAD;IACE,cAAc;IACd,WAAW;IACD;IACV,SAAS;IACT,OAAO;IACY;IACnB,KAAK;IACL,SAAS;GACV,CAAA,CACC;MACJ,kBAAC,GAAD;GACE,IAAI;GACM;GACV,SAAS;GACC;GACV,KAAK;GACU;GAEd;EACW,CAAA,CACX;MArCH,kBAAC,MAAD;EAAI,WAAW,EAAK,EAAO,qCAAqC,CAAS;EAAG,KAAK;EAAQ,GAAI;EAC1F;CACC,CAAA;AAqCV,CACF,GAYM,IAAiB,GACpB,EAAC,iBAAc,cAAW,cAAW,aAAU,YAAS,UAAO,sBAAmB,cAAU,MAAiB;CAC5G,IAAM,IAAM,EACV,CACF;CAEA,OACE,kBAAC,MAAD;EACE,eAAa,MAAU,KAAA;EACvB,WAAW,EAAK,EAAO,oDAAoD,CAAS;EAC/E;EACL,OAAO,EAAC,SAAK;YAEb,kBAAC,UAAD;GACE,iBAAe,IAAW,SAAS;GACnC,iBAAe;GACN;GACT,WAAW,EAAK,EAAO,yBAAyB,EAAO,4BAA4B;GACnF,KAAK;GACL,UAAU,IAAU,KAAA,IAAY;aAEhC,kBAAC,QAAD;IAAM,WAAW,EAAO;cAAxB,CACG,GACW,EAAX,IAAY,IAAqB,GAAtB,CAAiB,CAAuB,CAChD;;EACA,CAAA;CACN,CAAA;AAER,CACF,GAUM,IAAe,GAClB,EAAC,aAAU,cAAW,OAAI,aAAU,YAAS,aAAU,oBAAgB,MACjE,IAKH,kBAAC,OAAD;CACM;CACJ,KAAK;CACL,OAAO;EACL,KAAK,GAAG,GAAU,OAAO,EAAE;EAC3B,MAAM,GAAG,GAAU,QAAQ,EAAE;EAC7B,YAAY,IAAW,KAAA,IAAY;CACrC;CACA,WAAW,EAAK,EAAO,kCAAkC,CAAS;WAElE,kBAAC,MAAD;EAAI,WAAW,EAAK,EAAO,qCAAqC;YAC7D,EAAM,SAAS,IAAI,IAAW,GAAO,MAChC,EAAM,eAAyC,CAAK,KAClD,EAAc,OAAW,KAK3B,kBAAC,EAA2B,UAA5B;GAAqC,OAAO;IAAC,cAAc;IAAO,aAAa;GAAO;aACnF,EAAM,aAAa,GAAO,EACzB,WAAW,EAAK,EAAO,uCAAuC,EAAM,MAAM,SAAS,EACrF,CAAC;EACkC,CAAA,IAR9B,IAYZ;CACC,CAAA;AACD,CAAA,IAhCE,IAmCb"}
@@ -73,7 +73,7 @@ export type SubdomainNavBarLinkProps = {
73
73
  href: string;
74
74
  isExternal?: boolean;
75
75
  } & React.DetailedHTMLProps<React.LiHTMLAttributes<HTMLLIElement>, HTMLLIElement>;
76
- declare function Link({ href, className, children, isExternal, 'aria-current': ariaCurrent, 'aria-hidden': ariaHidden, tabIndex, ...rest }: PropsWithChildren<SubdomainNavBarLinkProps>): import("react/jsx-runtime").JSX.Element;
76
+ declare function Link({ href, className, children, isExternal, 'aria-current': ariaCurrent, 'aria-hidden': ariaHidden, tabIndex, ...rest }: PropsWithChildren<SubdomainNavBarLinkProps>): React.JSX.Element;
77
77
  export type SubdomainNavBarSearchResultProps = {
78
78
  title: string;
79
79
  description: string;
@@ -157,8 +157,8 @@ export type SubdomainNavBarSearchProps = {
157
157
  type CTAActionProps = {
158
158
  href: string;
159
159
  } & React.HTMLAttributes<HTMLAnchorElement>;
160
- declare function PrimaryAction({ children, href, ...rest }: PropsWithChildren<CTAActionProps>): import("react/jsx-runtime").JSX.Element;
161
- declare function SecondaryAction({ children, href, ...rest }: PropsWithChildren<CTAActionProps>): import("react/jsx-runtime").JSX.Element;
160
+ declare function PrimaryAction({ children, href, ...rest }: PropsWithChildren<CTAActionProps>): React.JSX.Element;
161
+ declare function SecondaryAction({ children, href, ...rest }: PropsWithChildren<CTAActionProps>): React.JSX.Element;
162
162
  export declare const SubdomainNavBar: React.ForwardRefExoticComponent<Omit<React.HTMLAttributes<HTMLElement>, "title" | "children"> & {
163
163
  /**
164
164
  * Valid child elements are `SubdomainNavBar.Link`, `SubdomainNavBar.PrimaryAction`,