@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 './Link.module-CiGiy5gk.css';var e = {
2
- Link: "Primer_Brand__Link-module__Link___lF11y",
1
+ import './Link.module-CiGiy5gk.css';//#region src/Link/Link.module.css
2
+ var e = "Primer_Brand__Link-module__Link___lF11y", t = {
3
+ Link: e,
3
4
  "Link--arrow-start": "Primer_Brand__Link-module__Link--arrow-start___Cyw51",
4
5
  "Link--arrow-end": "Primer_Brand__Link-module__Link--arrow-end___esdN8",
5
6
  "Link--large": "Primer_Brand__Link-module__Link--large___mTWWi",
@@ -10,6 +11,6 @@ import './Link.module-CiGiy5gk.css';var e = {
10
11
  "Link-arrow": "Primer_Brand__Link-module__Link-arrow___yd78i"
11
12
  };
12
13
  //#endregion
13
- export { e as default };
14
+ export { e as Link, t as default };
14
15
 
15
16
  //# sourceMappingURL=Link.module.js.map
@@ -62,7 +62,7 @@ export type LogoSuiteLogoBarProps = BaseProps<HTMLDivElement> & {
62
62
  * Use LogoSuite to present a list of logos, such as sponsors or vendors.
63
63
  * @see https://primer.style/brand/components/LogoSuite
64
64
  */
65
- export declare const LogoSuite: (({ align, children, className, hasDivider, variant, "data-testid": testId, }: PropsWithChildren<LogoSuiteProps>) => import("react/jsx-runtime").JSX.Element) & {
65
+ export declare const LogoSuite: (({ align, children, className, hasDivider, variant, "data-testid": testId, }: PropsWithChildren<LogoSuiteProps>) => React.JSX.Element) & {
66
66
  Heading: React.ForwardRefExoticComponent<Omit<React.PropsWithChildren<LogoSuiteHeadingProps>, "ref"> & React.RefAttributes<HTMLHeadingElement>>;
67
67
  Description: React.ForwardRefExoticComponent<(Omit<BaseProps<HTMLParagraphElement> & {
68
68
  font?: import("../Text").TextFontVariants;
@@ -1,11 +1,12 @@
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 { Grid as t } from "../Grid/Grid.js";
3
3
  import { useReducedMotion as n } from "../hooks/useReducedMotion.js";
4
4
  import { Text as r } from "../Text/Text.js";
5
5
  import { Heading as i, defaultHeadingTag as a } from "../Heading/Heading.js";
6
6
  import { Button as o } from "../Button/Button.js";
7
- import { PauseIcon as s, PlayIcon as c } from "../node_modules/@primer/octicons-react/dist/index.esm.js";
8
- import '../packages/design-tokens/lib/design-tokens/css/tokens/functional/components/logosuite/colors-with-modes-B8ia26TA.css';import '../packages/design-tokens/lib/design-tokens/css/tokens/functional/components/logosuite/base-DTi5Rx4y.css';/* empty css */
7
+ import { PauseIcon as s } from "../node_modules/@primer/octicons-react/dist/icons/PauseIcon.js";
8
+ import { PlayIcon as c } from "../node_modules/@primer/octicons-react/dist/icons/PlayIcon.js";
9
+ import '../packages/design-tokens/lib/design-tokens/css/tokens/functional/components/logosuite/base-DTi5Rx4y.css';import '../packages/design-tokens/lib/design-tokens/css/tokens/functional/components/logosuite/colors-with-modes-B8ia26TA.css';/* empty css */
9
10
  /* empty css */
10
11
  import l from "./LogoSuite.module.js";
11
12
  import u, { forwardRef as d, useCallback as f, useEffect as p, useMemo as m, useState as h } from "react";
@@ -1 +1 @@
1
- {"version":3,"file":"LogoSuite.js","names":[],"sources":["../../src/LogoSuite/LogoSuite.tsx"],"sourcesContent":["import {clsx} from 'clsx'\nimport React, {type PropsWithChildren, type Ref, forwardRef, useCallback, useEffect, useMemo, useState} from 'react'\nimport {useReducedMotion} from '../hooks/useReducedMotion'\nimport {PauseIcon, PlayIcon} from '@primer/octicons-react'\nimport type {BaseProps} from '../component-helpers'\nimport {Heading, HeadingProps, defaultHeadingTag, Text, TextProps, Grid, Button} from '../'\n\n/**\n * Design tokens\n */\nimport '@primer/brand-primitives/lib/design-tokens/css/tokens/functional/components/logosuite/colors-with-modes.css'\nimport '@primer/brand-primitives/lib/design-tokens/css/tokens/functional/components/logosuite/base.css'\n\n/** * Main Stylesheet (as a CSS Module) */\nimport styles from './LogoSuite.module.css'\n\nconst testIds = {\n root: 'LogoSuite',\n get marqueeGroup() {\n return `${this.root}-marqueeGroup`\n },\n}\n\nexport type LogoSuiteProps = {\n /**\n * The horizontal alignment of the LogoSuite.\n */\n align?: 'start' | 'center' | 'justify'\n /**\n * Whether to render a divider immediately after the LogoSuite.\n */\n hasDivider?: boolean\n /**\n * Test id for the root LogoSuite element.\n */\n 'data-testid'?: string\n /**\n * Alternative presentation\n */\n variant?: 'default' | 'gridline-expressive'\n} & BaseProps<HTMLDivElement> &\n React.HTMLAttributes<HTMLDivElement>\n\nconst LogoSuiteBase = ({\n align = 'center',\n children,\n className,\n hasDivider = true,\n variant = 'default',\n 'data-testid': testId,\n}: PropsWithChildren<LogoSuiteProps>) => {\n const childrenArray = useMemo(() => React.Children.toArray(children), [children])\n\n const HeadingChild = childrenArray.find(child => {\n return React.isValidElement(child) && child.type === _Heading\n })\n\n const DescriptionChild = childrenArray.find(child => {\n return React.isValidElement(child) && child.type === _Description\n })\n\n const LogobarChild = childrenArray.find(child => {\n return React.isValidElement(child) && child.type === _LogoBar\n })\n\n if (!HeadingChild) {\n if (process.env.NODE_ENV === 'development' || process.env.NODE_ENV === 'test') {\n // eslint-disable-next-line no-console\n console.warn('LogoSuite: Heading child is required. You may use `visuallyHidden` to hide it from view.')\n }\n }\n\n const isHeadingVisuallyHidden =\n React.isValidElement<LogoSuiteHeadingProps>(HeadingChild) && HeadingChild.props.visuallyHidden\n const isGridlineExpressive = variant === 'gridline-expressive'\n const hasVisibleTextContent = isGridlineExpressive && ((HeadingChild && !isHeadingVisuallyHidden) || DescriptionChild)\n\n return (\n <div\n className={clsx(\n styles.LogoSuite,\n styles[`LogoSuite--${align}`],\n hasDivider && styles['LogoSuite--hasDivider'],\n styles[`LogoSuite--${variant}`],\n className,\n )}\n data-testid={testId}\n >\n {isGridlineExpressive ? (\n <Grid className={styles['LogoSuite__content']}>\n {hasVisibleTextContent && (\n <Grid.Column span={{large: 3}} className={styles['LogoSuite__textContainer']}>\n {HeadingChild}\n {DescriptionChild}\n </Grid.Column>\n )}\n <Grid.Column span={{large: hasVisibleTextContent ? 9 : 12}} className={styles['LogoSuite__logobarContainer']}>\n {!hasVisibleTextContent && isHeadingVisuallyHidden && HeadingChild}\n {LogobarChild}\n </Grid.Column>\n </Grid>\n ) : (\n <>\n {HeadingChild}\n {DescriptionChild}\n {LogobarChild}\n </>\n )}\n </div>\n )\n}\n\nexport type LogoSuiteHeadingProps = BaseProps<HTMLHeadingElement> &\n HeadingProps & {\n /**\n * Whether to visually hide the heading.\n */\n visuallyHidden?: boolean\n }\n\nconst _Heading = forwardRef(\n (\n {\n as = defaultHeadingTag,\n size = 'subhead-large',\n className,\n children,\n visuallyHidden,\n ...props\n }: PropsWithChildren<LogoSuiteHeadingProps>,\n ref: Ref<HTMLHeadingElement>,\n ) => {\n return (\n <Heading\n ref={ref}\n className={clsx(\n styles['LogoSuite__heading'],\n visuallyHidden && styles['LogoSuite__heading--visually-hidden'],\n visuallyHidden && 'visually-hidden',\n className,\n )}\n size={size}\n as={as}\n {...props}\n >\n {children}\n </Heading>\n )\n },\n)\n\nexport type LogoSuiteDescriptionProps = BaseProps<HTMLParagraphElement> &\n TextProps & {\n children: React.ReactNode | React.ReactNode[]\n }\n\nconst _Description = forwardRef(\n (\n {className, children, size = '200', variant = 'muted', ...props}: LogoSuiteDescriptionProps,\n ref: Ref<HTMLParagraphElement>,\n ) => {\n return (\n <Text\n as=\"p\"\n ref={ref}\n size={size}\n variant={variant}\n className={clsx(styles['LogoSuite__description'], className)}\n {...props}\n >\n {children}\n </Text>\n )\n },\n)\n\ntype PlayPauseButtonProps = {\n isPlaying?: boolean\n onPlayPause?: (isPlaying: boolean) => void\n}\n\nconst PlayPauseButton = ({isPlaying = true, onPlayPause}: PlayPauseButtonProps) => {\n const onClick = useCallback(() => {\n onPlayPause?.(!isPlaying)\n }, [onPlayPause, isPlaying])\n\n /**\n * aria-pressed is intentionally not used here to prevent potentially confusing screen reader announcements\n * eg \"Play animation on\" or \"Pause animation off\"\n */\n return (\n <button\n className={styles['LogoSuite__logobar-playPauseButton']}\n type=\"button\"\n onClick={onClick}\n aria-label={isPlaying ? 'Pause animation' : 'Play animation'}\n >\n {isPlaying ? <PauseIcon /> : <PlayIcon />}\n </button>\n )\n}\n\nexport type LogoSuiteLogoBarProps = BaseProps<HTMLDivElement> & {\n children: React.ReactNode | React.ReactNode[]\n /**\n * The gap between logos\n */\n gap?: 'default' | 'condensed'\n /**\n * Enables an optional marquee effect\n */\n marquee?: boolean\n /**\n * The speed of the marquee effect\n */\n marqueeSpeed?: 'slow' | 'normal' | 'idle'\n /**\n * The stylistic variant of the LogoBar.\n */\n variant?: 'muted' | 'emphasis'\n /**\n * Displays an optional takeover button (as an anchor) on hover/focus.\n */\n takeoverButton?: {\n label: string\n } & Omit<React.AnchorHTMLAttributes<HTMLAnchorElement>, 'children'> &\n BaseProps<HTMLAnchorElement>\n}\n\nconst _LogoBar = forwardRef(\n (\n {\n className,\n children,\n gap = 'default',\n marquee = false,\n marqueeSpeed = 'normal',\n variant = 'muted',\n takeoverButton,\n ...props\n }: LogoSuiteLogoBarProps,\n ref: Ref<HTMLDivElement>,\n ) => {\n const prefersReducedMotion = useReducedMotion()\n const [isPlaying, setIsPlaying] = useState(() => marquee && !prefersReducedMotion && marqueeSpeed !== 'idle')\n\n useEffect(() => {\n setIsPlaying(marquee && !prefersReducedMotion && marqueeSpeed !== 'idle')\n }, [marquee, prefersReducedMotion, marqueeSpeed])\n\n if (marquee && takeoverButton) {\n if (process.env.NODE_ENV === 'development' || process.env.NODE_ENV === 'test') {\n // eslint-disable-next-line no-console\n console.warn(\n 'LogoSuite.Logobar: `takeoverButton` cant be used with `marquee` prop due to accessibility risks. Set `marquee={false}` to use the takeover feature.',\n )\n }\n }\n\n const defaultProps = {\n ref,\n className: clsx(\n styles['LogoSuite__logobar'],\n styles[`LogoSuite__logobar--variant-${variant}`],\n styles[`LogoSuite__logobar--gap-${gap}`],\n className,\n ),\n ...props,\n }\n\n const [isFocusWithin, setIsFocusWithin] = useState(false)\n\n const handleFocus = useCallback(() => {\n setIsFocusWithin(true)\n }, [])\n\n const handleBlur = useCallback((event: React.FocusEvent) => {\n if (!event.currentTarget.contains(event.relatedTarget as Node)) {\n setIsFocusWithin(false)\n }\n }, [])\n\n const renderTakeoverButton = () => {\n if (!takeoverButton) return null\n const {className: takeoverButtonClassName, label, ref: _ref, ...takeoverButtonProps} = takeoverButton\n return (\n <div className={styles['LogoSuite__logobar-takeoverButtonContainer']}>\n <Button\n as=\"a\"\n variant=\"primary\"\n className={clsx(styles['LogoSuite__logobar-takeoverButton'], takeoverButtonClassName)}\n {...takeoverButtonProps}\n >\n {label}\n </Button>\n </div>\n )\n }\n\n if (marquee) {\n const {className: marqueeDefaultClassName, ...restProps} = defaultProps\n const shouldPause = !isPlaying || prefersReducedMotion\n return (\n <div\n {...restProps}\n className={clsx(\n styles['LogoSuite__logobar--has-marquee'],\n marqueeDefaultClassName,\n shouldPause && styles['LogoSuite__logobar--paused'],\n )}\n >\n <div\n className={clsx(\n styles['LogoSuite__logobar-marquee'],\n isFocusWithin && styles['LogoSuite__logobar-marquee--focused'],\n )}\n onFocus={handleFocus}\n onBlur={handleBlur}\n >\n <div\n className={clsx(\n styles['LogoSuite__logobar-marqueeGroup'],\n styles[`LogoSuite__logobar-marqueeGroup--speed-${marqueeSpeed}`],\n )}\n data-testid={testIds.marqueeGroup}\n >\n {children}\n </div>\n <div\n inert\n aria-hidden=\"true\"\n className={clsx(\n styles['LogoSuite__logobar-marqueeGroup'],\n styles[`LogoSuite__logobar-marqueeGroup--speed-${marqueeSpeed}`],\n )}\n >\n {children}\n </div>\n </div>\n <PlayPauseButton onPlayPause={setIsPlaying} isPlaying={isPlaying} />\n </div>\n )\n }\n\n if (takeoverButton) {\n const {className: defaultClassName, ...restProps} = defaultProps\n return (\n <div {...restProps} className={clsx(defaultClassName, styles['LogoSuite__logobar--has-takeover'])}>\n {children}\n {renderTakeoverButton()}\n </div>\n )\n }\n\n return <div {...defaultProps}>{children}</div>\n },\n)\n\n/**\n * Use LogoSuite to present a list of logos, such as sponsors or vendors.\n * @see https://primer.style/brand/components/LogoSuite\n */\nexport const LogoSuite = Object.assign(LogoSuiteBase, {\n Heading: _Heading,\n Description: _Description,\n Logobar: _LogoBar,\n testIds,\n})\n"],"mappings":"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"}
1
+ {"version":3,"file":"LogoSuite.js","names":[],"sources":["../../src/LogoSuite/LogoSuite.tsx"],"sourcesContent":["import {clsx} from 'clsx'\nimport React, {type PropsWithChildren, type Ref, forwardRef, useCallback, useEffect, useMemo, useState} from 'react'\nimport {useReducedMotion} from '../hooks/useReducedMotion'\nimport {PauseIcon, PlayIcon} from '@primer/octicons-react'\nimport type {BaseProps} from '../component-helpers'\nimport {Heading, HeadingProps, defaultHeadingTag, Text, TextProps, Grid, Button} from '../'\n\n/**\n * Design tokens\n */\nimport '@primer/brand-primitives/lib/design-tokens/css/tokens/functional/components/logosuite/colors-with-modes.css'\nimport '@primer/brand-primitives/lib/design-tokens/css/tokens/functional/components/logosuite/base.css'\n\n/** * Main Stylesheet (as a CSS Module) */\nimport styles from './LogoSuite.module.css'\n\nconst testIds = {\n root: 'LogoSuite',\n get marqueeGroup() {\n return `${this.root}-marqueeGroup`\n },\n}\n\nexport type LogoSuiteProps = {\n /**\n * The horizontal alignment of the LogoSuite.\n */\n align?: 'start' | 'center' | 'justify'\n /**\n * Whether to render a divider immediately after the LogoSuite.\n */\n hasDivider?: boolean\n /**\n * Test id for the root LogoSuite element.\n */\n 'data-testid'?: string\n /**\n * Alternative presentation\n */\n variant?: 'default' | 'gridline-expressive'\n} & BaseProps<HTMLDivElement> &\n React.HTMLAttributes<HTMLDivElement>\n\nconst LogoSuiteBase = ({\n align = 'center',\n children,\n className,\n hasDivider = true,\n variant = 'default',\n 'data-testid': testId,\n}: PropsWithChildren<LogoSuiteProps>) => {\n const childrenArray = useMemo(() => React.Children.toArray(children), [children])\n\n const HeadingChild = childrenArray.find(child => {\n return React.isValidElement(child) && child.type === _Heading\n })\n\n const DescriptionChild = childrenArray.find(child => {\n return React.isValidElement(child) && child.type === _Description\n })\n\n const LogobarChild = childrenArray.find(child => {\n return React.isValidElement(child) && child.type === _LogoBar\n })\n\n if (!HeadingChild) {\n if (process.env.NODE_ENV === 'development' || process.env.NODE_ENV === 'test') {\n // eslint-disable-next-line no-console\n console.warn('LogoSuite: Heading child is required. You may use `visuallyHidden` to hide it from view.')\n }\n }\n\n const isHeadingVisuallyHidden =\n React.isValidElement<LogoSuiteHeadingProps>(HeadingChild) && HeadingChild.props.visuallyHidden\n const isGridlineExpressive = variant === 'gridline-expressive'\n const hasVisibleTextContent = isGridlineExpressive && ((HeadingChild && !isHeadingVisuallyHidden) || DescriptionChild)\n\n return (\n <div\n className={clsx(\n styles.LogoSuite,\n styles[`LogoSuite--${align}`],\n hasDivider && styles['LogoSuite--hasDivider'],\n styles[`LogoSuite--${variant}`],\n className,\n )}\n data-testid={testId}\n >\n {isGridlineExpressive ? (\n <Grid className={styles['LogoSuite__content']}>\n {hasVisibleTextContent && (\n <Grid.Column span={{large: 3}} className={styles['LogoSuite__textContainer']}>\n {HeadingChild}\n {DescriptionChild}\n </Grid.Column>\n )}\n <Grid.Column span={{large: hasVisibleTextContent ? 9 : 12}} className={styles['LogoSuite__logobarContainer']}>\n {!hasVisibleTextContent && isHeadingVisuallyHidden && HeadingChild}\n {LogobarChild}\n </Grid.Column>\n </Grid>\n ) : (\n <>\n {HeadingChild}\n {DescriptionChild}\n {LogobarChild}\n </>\n )}\n </div>\n )\n}\n\nexport type LogoSuiteHeadingProps = BaseProps<HTMLHeadingElement> &\n HeadingProps & {\n /**\n * Whether to visually hide the heading.\n */\n visuallyHidden?: boolean\n }\n\nconst _Heading = forwardRef(\n (\n {\n as = defaultHeadingTag,\n size = 'subhead-large',\n className,\n children,\n visuallyHidden,\n ...props\n }: PropsWithChildren<LogoSuiteHeadingProps>,\n ref: Ref<HTMLHeadingElement>,\n ) => {\n return (\n <Heading\n ref={ref}\n className={clsx(\n styles['LogoSuite__heading'],\n visuallyHidden && styles['LogoSuite__heading--visually-hidden'],\n visuallyHidden && 'visually-hidden',\n className,\n )}\n size={size}\n as={as}\n {...props}\n >\n {children}\n </Heading>\n )\n },\n)\n\nexport type LogoSuiteDescriptionProps = BaseProps<HTMLParagraphElement> &\n TextProps & {\n children: React.ReactNode | React.ReactNode[]\n }\n\nconst _Description = forwardRef(\n (\n {className, children, size = '200', variant = 'muted', ...props}: LogoSuiteDescriptionProps,\n ref: Ref<HTMLParagraphElement>,\n ) => {\n return (\n <Text\n as=\"p\"\n ref={ref}\n size={size}\n variant={variant}\n className={clsx(styles['LogoSuite__description'], className)}\n {...props}\n >\n {children}\n </Text>\n )\n },\n)\n\ntype PlayPauseButtonProps = {\n isPlaying?: boolean\n onPlayPause?: (isPlaying: boolean) => void\n}\n\nconst PlayPauseButton = ({isPlaying = true, onPlayPause}: PlayPauseButtonProps) => {\n const onClick = useCallback(() => {\n onPlayPause?.(!isPlaying)\n }, [onPlayPause, isPlaying])\n\n /**\n * aria-pressed is intentionally not used here to prevent potentially confusing screen reader announcements\n * eg \"Play animation on\" or \"Pause animation off\"\n */\n return (\n <button\n className={styles['LogoSuite__logobar-playPauseButton']}\n type=\"button\"\n onClick={onClick}\n aria-label={isPlaying ? 'Pause animation' : 'Play animation'}\n >\n {isPlaying ? <PauseIcon /> : <PlayIcon />}\n </button>\n )\n}\n\nexport type LogoSuiteLogoBarProps = BaseProps<HTMLDivElement> & {\n children: React.ReactNode | React.ReactNode[]\n /**\n * The gap between logos\n */\n gap?: 'default' | 'condensed'\n /**\n * Enables an optional marquee effect\n */\n marquee?: boolean\n /**\n * The speed of the marquee effect\n */\n marqueeSpeed?: 'slow' | 'normal' | 'idle'\n /**\n * The stylistic variant of the LogoBar.\n */\n variant?: 'muted' | 'emphasis'\n /**\n * Displays an optional takeover button (as an anchor) on hover/focus.\n */\n takeoverButton?: {\n label: string\n } & Omit<React.AnchorHTMLAttributes<HTMLAnchorElement>, 'children'> &\n BaseProps<HTMLAnchorElement>\n}\n\nconst _LogoBar = forwardRef(\n (\n {\n className,\n children,\n gap = 'default',\n marquee = false,\n marqueeSpeed = 'normal',\n variant = 'muted',\n takeoverButton,\n ...props\n }: LogoSuiteLogoBarProps,\n ref: Ref<HTMLDivElement>,\n ) => {\n const prefersReducedMotion = useReducedMotion()\n const [isPlaying, setIsPlaying] = useState(() => marquee && !prefersReducedMotion && marqueeSpeed !== 'idle')\n\n useEffect(() => {\n setIsPlaying(marquee && !prefersReducedMotion && marqueeSpeed !== 'idle')\n }, [marquee, prefersReducedMotion, marqueeSpeed])\n\n if (marquee && takeoverButton) {\n if (process.env.NODE_ENV === 'development' || process.env.NODE_ENV === 'test') {\n // eslint-disable-next-line no-console\n console.warn(\n 'LogoSuite.Logobar: `takeoverButton` cant be used with `marquee` prop due to accessibility risks. Set `marquee={false}` to use the takeover feature.',\n )\n }\n }\n\n const defaultProps = {\n ref,\n className: clsx(\n styles['LogoSuite__logobar'],\n styles[`LogoSuite__logobar--variant-${variant}`],\n styles[`LogoSuite__logobar--gap-${gap}`],\n className,\n ),\n ...props,\n }\n\n const [isFocusWithin, setIsFocusWithin] = useState(false)\n\n const handleFocus = useCallback(() => {\n setIsFocusWithin(true)\n }, [])\n\n const handleBlur = useCallback((event: React.FocusEvent) => {\n if (!event.currentTarget.contains(event.relatedTarget as Node)) {\n setIsFocusWithin(false)\n }\n }, [])\n\n const renderTakeoverButton = () => {\n if (!takeoverButton) return null\n const {className: takeoverButtonClassName, label, ref: _ref, ...takeoverButtonProps} = takeoverButton\n return (\n <div className={styles['LogoSuite__logobar-takeoverButtonContainer']}>\n <Button\n as=\"a\"\n variant=\"primary\"\n className={clsx(styles['LogoSuite__logobar-takeoverButton'], takeoverButtonClassName)}\n {...takeoverButtonProps}\n >\n {label}\n </Button>\n </div>\n )\n }\n\n if (marquee) {\n const {className: marqueeDefaultClassName, ...restProps} = defaultProps\n const shouldPause = !isPlaying || prefersReducedMotion\n return (\n <div\n {...restProps}\n className={clsx(\n styles['LogoSuite__logobar--has-marquee'],\n marqueeDefaultClassName,\n shouldPause && styles['LogoSuite__logobar--paused'],\n )}\n >\n <div\n className={clsx(\n styles['LogoSuite__logobar-marquee'],\n isFocusWithin && styles['LogoSuite__logobar-marquee--focused'],\n )}\n onFocus={handleFocus}\n onBlur={handleBlur}\n >\n <div\n className={clsx(\n styles['LogoSuite__logobar-marqueeGroup'],\n styles[`LogoSuite__logobar-marqueeGroup--speed-${marqueeSpeed}`],\n )}\n data-testid={testIds.marqueeGroup}\n >\n {children}\n </div>\n <div\n inert\n aria-hidden=\"true\"\n className={clsx(\n styles['LogoSuite__logobar-marqueeGroup'],\n styles[`LogoSuite__logobar-marqueeGroup--speed-${marqueeSpeed}`],\n )}\n >\n {children}\n </div>\n </div>\n <PlayPauseButton onPlayPause={setIsPlaying} isPlaying={isPlaying} />\n </div>\n )\n }\n\n if (takeoverButton) {\n const {className: defaultClassName, ...restProps} = defaultProps\n return (\n <div {...restProps} className={clsx(defaultClassName, styles['LogoSuite__logobar--has-takeover'])}>\n {children}\n {renderTakeoverButton()}\n </div>\n )\n }\n\n return <div {...defaultProps}>{children}</div>\n },\n)\n\n/**\n * Use LogoSuite to present a list of logos, such as sponsors or vendors.\n * @see https://primer.style/brand/components/LogoSuite\n */\nexport const LogoSuite = Object.assign(LogoSuiteBase, {\n Heading: _Heading,\n Description: _Description,\n Logobar: _LogoBar,\n testIds,\n})\n"],"mappings":"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"}
@@ -1,12 +1,13 @@
1
- import './LogoSuite.module-BCbX-lfy.css';var e = {
2
- LogoSuite: "Primer_Brand__LogoSuite-module__LogoSuite___bHvbJ",
1
+ import './LogoSuite.module-BCbX-lfy.css';//#region src/LogoSuite/LogoSuite.module.css
2
+ var e = "Primer_Brand__LogoSuite-module__LogoSuite___bHvbJ", t = "Primer_Brand__LogoSuite-module__LogoSuite__description___J_Sms", n = "Primer_Brand__LogoSuite-module__LogoSuite__heading___PsSGL", r = "Primer_Brand__LogoSuite-module__LogoSuite__logobar___3IogC", i = "Primer_Brand__LogoSuite-module__LogobarScrollX___eGhi4", a = "Primer_Brand__LogoSuite-module__LogoSuite__content____8K_Y", o = "Primer_Brand__LogoSuite-module__LogoSuite__textContainer___OB63e", s = "Primer_Brand__LogoSuite-module__LogoSuite__logobarContainer___RcqbC", c = {
3
+ LogoSuite: e,
3
4
  "LogoSuite--default": "Primer_Brand__LogoSuite-module__LogoSuite--default___mbLiN",
4
- LogoSuite__description: "Primer_Brand__LogoSuite-module__LogoSuite__description___J_Sms",
5
- LogoSuite__heading: "Primer_Brand__LogoSuite-module__LogoSuite__heading___PsSGL",
5
+ LogoSuite__description: t,
6
+ LogoSuite__heading: n,
6
7
  "LogoSuite--start": "Primer_Brand__LogoSuite-module__LogoSuite--start___zqwlX",
7
8
  "LogoSuite--center": "Primer_Brand__LogoSuite-module__LogoSuite--center___j119b",
8
9
  "LogoSuite--justify": "Primer_Brand__LogoSuite-module__LogoSuite--justify___MTk0u",
9
- LogoSuite__logobar: "Primer_Brand__LogoSuite-module__LogoSuite__logobar___3IogC",
10
+ LogoSuite__logobar: r,
10
11
  "LogoSuite__logobar--gap-default": "Primer_Brand__LogoSuite-module__LogoSuite__logobar--gap-default___sGwUx",
11
12
  "LogoSuite__logobar--gap-condensed": "Primer_Brand__LogoSuite-module__LogoSuite__logobar--gap-condensed___T86E8",
12
13
  "LogoSuite__heading--visually-hidden": "Primer_Brand__LogoSuite-module__LogoSuite__heading--visually-hidden___oZzlO",
@@ -15,7 +16,7 @@ import './LogoSuite.module-BCbX-lfy.css';var e = {
15
16
  "LogoSuite--hasDivider": "Primer_Brand__LogoSuite-module__LogoSuite--hasDivider___Wj8u_",
16
17
  "LogoSuite__logobar--has-marquee": "Primer_Brand__LogoSuite-module__LogoSuite__logobar--has-marquee___tyW6K",
17
18
  "LogoSuite__logobar-marqueeGroup": "Primer_Brand__LogoSuite-module__LogoSuite__logobar-marqueeGroup___bUhyS",
18
- LogobarScrollX: "Primer_Brand__LogoSuite-module__LogobarScrollX___eGhi4",
19
+ LogobarScrollX: i,
19
20
  "LogoSuite__logobar-marqueeGroup--speed-default": "Primer_Brand__LogoSuite-module__LogoSuite__logobar-marqueeGroup--speed-default___nsm9D",
20
21
  "LogoSuite__logobar-marqueeGroup--speed-slow": "Primer_Brand__LogoSuite-module__LogoSuite__logobar-marqueeGroup--speed-slow___NZHrb",
21
22
  "LogoSuite__logobar-marquee": "Primer_Brand__LogoSuite-module__LogoSuite__logobar-marquee____s6pK",
@@ -23,13 +24,13 @@ import './LogoSuite.module-BCbX-lfy.css';var e = {
23
24
  "LogoSuite__logobar-marquee--focused": "Primer_Brand__LogoSuite-module__LogoSuite__logobar-marquee--focused___zizoE",
24
25
  "LogoSuite__logobar-playPauseButton": "Primer_Brand__LogoSuite-module__LogoSuite__logobar-playPauseButton___KDfie",
25
26
  "LogoSuite--gridline-expressive": "Primer_Brand__LogoSuite-module__LogoSuite--gridline-expressive___86D16",
26
- LogoSuite__content: "Primer_Brand__LogoSuite-module__LogoSuite__content____8K_Y",
27
- LogoSuite__textContainer: "Primer_Brand__LogoSuite-module__LogoSuite__textContainer___OB63e",
28
- LogoSuite__logobarContainer: "Primer_Brand__LogoSuite-module__LogoSuite__logobarContainer___RcqbC",
27
+ LogoSuite__content: a,
28
+ LogoSuite__textContainer: o,
29
+ LogoSuite__logobarContainer: s,
29
30
  "LogoSuite__logobar--has-takeover": "Primer_Brand__LogoSuite-module__LogoSuite__logobar--has-takeover___ZQbXf",
30
31
  "LogoSuite__logobar-takeoverButtonContainer": "Primer_Brand__LogoSuite-module__LogoSuite__logobar-takeoverButtonContainer___ehoEd"
31
32
  };
32
33
  //#endregion
33
- export { e as default };
34
+ export { e as LogoSuite, a as LogoSuite__content, t as LogoSuite__description, n as LogoSuite__heading, r as LogoSuite__logobar, s as LogoSuite__logobarContainer, o as LogoSuite__textContainer, i as LogobarScrollX, c as default };
34
35
 
35
36
  //# sourceMappingURL=LogoSuite.module.js.map
@@ -27,22 +27,22 @@ type MediaPlaylistHeadingInternalProps = {
27
27
  activeIndex?: number | null;
28
28
  itemCount?: number;
29
29
  };
30
- declare function MediaPlaylistHeading({ activeIndex, as, children, className, id, itemCount, ...props }: MediaPlaylistHeadingProps & MediaPlaylistHeadingInternalProps): import("react/jsx-runtime").JSX.Element;
30
+ declare function MediaPlaylistHeading({ activeIndex, as, children, className, id, itemCount, ...props }: MediaPlaylistHeadingProps & MediaPlaylistHeadingInternalProps): React.JSX.Element;
31
31
  export type MediaPlaylistItemProps = React.PropsWithChildren<{
32
32
  /**
33
33
  * An optional thumbnail to be shown in the playlist for this item.
34
34
  */
35
35
  thumbnail?: React.ReactNode;
36
36
  } & BaseProps<HTMLDivElement>>;
37
- declare function MediaPlaylistItem({ children }: MediaPlaylistItemProps): import("react/jsx-runtime").JSX.Element;
37
+ declare function MediaPlaylistItem({ children }: MediaPlaylistItemProps): React.JSX.Element;
38
38
  export type MediaPlaylistItemHeadingProps = Omit<TextProps, 'as' | 'children' | 'title'> & {
39
39
  children?: React.ReactNode;
40
40
  description?: React.ReactNode;
41
41
  title?: React.ReactNode;
42
42
  };
43
- declare function MediaPlaylistItemHeading({ children, className, description, font, size, title, variant, weight, ...props }: MediaPlaylistItemHeadingProps): import("react/jsx-runtime").JSX.Element;
43
+ declare function MediaPlaylistItemHeading({ children, className, description, font, size, title, variant, weight, ...props }: MediaPlaylistItemHeadingProps): React.JSX.Element;
44
44
  export type MediaPlaylistItemContentProps = React.HTMLAttributes<HTMLDivElement>;
45
- declare function MediaPlaylistItemContent({ children, className, ...props }: MediaPlaylistItemContentProps): import("react/jsx-runtime").JSX.Element;
45
+ declare function MediaPlaylistItemContent({ children, className, ...props }: MediaPlaylistItemContentProps): React.JSX.Element;
46
46
  export type MediaPlaylistItemMediaProps = React.HTMLAttributes<HTMLDivElement>;
47
47
  /**
48
48
  * Use MediaPlaylist to pair media playback with an itemized, thumbnail-backed playlist.
@@ -1 +1 @@
1
- {"version":3,"file":"MediaPlaylist.d.ts","sourceRoot":"","sources":["../../src/MediaPlaylist/MediaPlaylist.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAiC,MAAM,OAAO,CAAA;AAGrD,OAAO,EAAgB,KAAK,YAAY,EAAE,KAAK,SAAS,EAAC,MAAM,IAAI,CAAA;AAKnE,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,sBAAsB,CAAA;AACnD;;GAEG;AACH,OAAO,kHAAkH,CAAA;AAOzH,MAAM,MAAM,kBAAkB,GAAG,KAAK,CAAC,iBAAiB,CAAC;IACvD;;OAEG;IACH,oBAAoB,CAAC,EAAE,MAAM,CAAA;IAC7B;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB;;OAEG;IACH,QAAQ,CAAC,EAAE,CAAC,aAAa,EAAE,MAAM,KAAK,IAAI,CAAA;IAC1C,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB,CAAC,GACA,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,UAAU,CAAC,CAAA;AA6HxD,MAAM,MAAM,yBAAyB,GAAG,KAAK,CAAC,iBAAiB,CAAC;IAC9D,EAAE,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAA;CACvC,CAAC,GACA,SAAS,CAAC,cAAc,CAAC,CAAA;AAE3B,KAAK,iCAAiC,GAAG;IACvC,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,CAAA;AAED,iBAAS,oBAAoB,CAAC,EAC5B,WAAkB,EAClB,EAAS,EACT,QAAQ,EACR,SAAS,EACT,EAAE,EACF,SAAa,EACb,GAAG,KAAK,EACT,EAAE,yBAAyB,GAAG,iCAAiC,2CAa/D;AAED,MAAM,MAAM,sBAAsB,GAAG,KAAK,CAAC,iBAAiB,CAC1D;IACE;;OAEG;IACH,SAAS,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;CAC5B,GAAG,SAAS,CAAC,cAAc,CAAC,CAC9B,CAAA;AAED,iBAAS,iBAAiB,CAAC,EAAC,QAAQ,EAAC,EAAE,sBAAsB,2CAE5D;AAED,MAAM,MAAM,6BAA6B,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI,GAAG,UAAU,GAAG,OAAO,CAAC,GAAG;IACzF,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC1B,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC7B,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;CACxB,CAAA;AAED,iBAAS,wBAAwB,CAAC,EAChC,QAAQ,EACR,SAAS,EACT,WAAW,EACX,IAAkB,EAClB,IAAY,EACZ,KAAK,EACL,OAAmB,EACnB,MAAiB,EACjB,GAAG,KAAK,EACT,EAAE,6BAA6B,2CA4B/B;AAED,MAAM,MAAM,6BAA6B,GAAG,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,CAAA;AAEhF,iBAAS,wBAAwB,CAAC,EAAC,QAAQ,EAAE,SAAS,EAAE,GAAG,KAAK,EAAC,EAAE,6BAA6B,2CAM/F;AAED,MAAM,MAAM,2BAA2B,GAAG,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,CAAA;AAyB9E;;GAEG;AACH,eAAO,MAAM,aAAa;IA7QxB;;OAEG;2BACoB,MAAM;IAC7B;;OAEG;oBACa,MAAM;IACtB;;OAEG;eACQ,CAAC,aAAa,EAAE,MAAM,KAAK,IAAI;oBAC1B,MAAM;;;;;;;;;;;;CAwQtB,CAAA"}
1
+ {"version":3,"file":"MediaPlaylist.d.ts","sourceRoot":"","sources":["../../src/MediaPlaylist/MediaPlaylist.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAiC,MAAM,OAAO,CAAA;AAGrD,OAAO,EAAgB,KAAK,YAAY,EAAE,KAAK,SAAS,EAAC,MAAM,IAAI,CAAA;AAKnE,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,sBAAsB,CAAA;AACnD;;GAEG;AACH,OAAO,kHAAkH,CAAA;AAOzH,MAAM,MAAM,kBAAkB,GAAG,KAAK,CAAC,iBAAiB,CAAC;IACvD;;OAEG;IACH,oBAAoB,CAAC,EAAE,MAAM,CAAA;IAC7B;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB;;OAEG;IACH,QAAQ,CAAC,EAAE,CAAC,aAAa,EAAE,MAAM,KAAK,IAAI,CAAA;IAC1C,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB,CAAC,GACA,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,UAAU,CAAC,CAAA;AA6HxD,MAAM,MAAM,yBAAyB,GAAG,KAAK,CAAC,iBAAiB,CAAC;IAC9D,EAAE,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAA;CACvC,CAAC,GACA,SAAS,CAAC,cAAc,CAAC,CAAA;AAE3B,KAAK,iCAAiC,GAAG;IACvC,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,CAAA;AAED,iBAAS,oBAAoB,CAAC,EAC5B,WAAkB,EAClB,EAAS,EACT,QAAQ,EACR,SAAS,EACT,EAAE,EACF,SAAa,EACb,GAAG,KAAK,EACT,EAAE,yBAAyB,GAAG,iCAAiC,qBAa/D;AAED,MAAM,MAAM,sBAAsB,GAAG,KAAK,CAAC,iBAAiB,CAC1D;IACE;;OAEG;IACH,SAAS,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;CAC5B,GAAG,SAAS,CAAC,cAAc,CAAC,CAC9B,CAAA;AAED,iBAAS,iBAAiB,CAAC,EAAC,QAAQ,EAAC,EAAE,sBAAsB,qBAE5D;AAED,MAAM,MAAM,6BAA6B,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI,GAAG,UAAU,GAAG,OAAO,CAAC,GAAG;IACzF,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC1B,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC7B,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;CACxB,CAAA;AAED,iBAAS,wBAAwB,CAAC,EAChC,QAAQ,EACR,SAAS,EACT,WAAW,EACX,IAAkB,EAClB,IAAY,EACZ,KAAK,EACL,OAAmB,EACnB,MAAiB,EACjB,GAAG,KAAK,EACT,EAAE,6BAA6B,qBA4B/B;AAED,MAAM,MAAM,6BAA6B,GAAG,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,CAAA;AAEhF,iBAAS,wBAAwB,CAAC,EAAC,QAAQ,EAAE,SAAS,EAAE,GAAG,KAAK,EAAC,EAAE,6BAA6B,qBAM/F;AAED,MAAM,MAAM,2BAA2B,GAAG,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,CAAA;AAwB9E;;GAEG;AACH,eAAO,MAAM,aAAa;IA5QxB;;OAEG;2BACoB,MAAM;IAC7B;;OAEG;oBACa,MAAM;IACtB;;OAEG;eACQ,CAAC,aAAa,EAAE,MAAM,KAAK,IAAI;oBAC1B,MAAM;;;;;;;;;;;;CAuQtB,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 { Text as n } from "../Text/Text.js";
4
4
  import { Heading as r } from "../Heading/Heading.js";
@@ -1 +1 @@
1
- {"version":3,"file":"MediaPlaylist.js","names":[],"sources":["../../src/MediaPlaylist/MediaPlaylist.tsx"],"sourcesContent":["import React, {cloneElement, forwardRef} from 'react'\nimport {clsx} from 'clsx'\n\nimport {Heading, Text, type HeadingProps, type TextProps} from '..'\nimport {Pagination} from '../Pagination'\nimport {useId} from '../hooks/useId'\n\nimport {type MediaPlaylistComponentTypes, useMediaPlaylist} from './useMediaPlaylist'\nimport type {BaseProps} from '../component-helpers'\n/**\n * Design tokens\n */\nimport '@primer/brand-primitives/lib/design-tokens/css/tokens/functional/components/media-playlist/colors-with-modes.css'\n\n/** Main Stylesheet (as a CSS Module) */\n\nimport styles from './MediaPlaylist.module.css'\nimport gridlineStyles from '../component-helpers/shared.module.css'\n\nexport type MediaPlaylistProps = React.PropsWithChildren<{\n /**\n * The index of the item to be selected by default. This is ignored if `selectedIndex` is provided.\n */\n defaultSelectedIndex?: number\n /**\n * The index of the currently selected item. This makes the component controlled.\n */\n selectedIndex?: number\n /**\n * Callback fired when the selected index changes.\n */\n onChange?: (selectedIndex: number) => void\n 'data-testid'?: string\n}> &\n Omit<React.HTMLAttributes<HTMLDivElement>, 'onChange'>\n\nconst MediaPlaylistRoot = forwardRef<HTMLDivElement, MediaPlaylistProps>(\n ({children, className, defaultSelectedIndex = 0, onChange, selectedIndex, 'data-testid': testId, ...props}, ref) => {\n const uniqueId = useId()\n\n const {\n activeIndex,\n currentItemPage,\n getPaginationAttributes,\n getTabListProps,\n getTabPanelProps,\n getTabProps,\n handlePageChange,\n hasOverflowItems,\n headingChild,\n isItemSelected,\n items,\n setItemRef,\n tabListRef,\n } = useMediaPlaylist({\n children,\n components: mediaPlaylistComponents,\n defaultSelectedIndex,\n onChange,\n selectedIndex,\n })\n\n const headingId = headingChild?.props.id ?? `${uniqueId}-heading`\n\n if (!headingChild && (process.env.NODE_ENV === 'development' || process.env.NODE_ENV === 'test')) {\n // eslint-disable-next-line no-console\n console.warn(\n 'MediaPlaylist: Heading child is required. This element labels the playlist for assistive technologies.',\n )\n }\n\n const tabListProps = headingChild\n ? getTabListProps({labelledBy: headingId})\n : getTabListProps({label: 'Media playlist'})\n\n return (\n <div\n ref={ref}\n className={clsx(\n styles.MediaPlaylist,\n gridlineStyles.gridline,\n hasOverflowItems && styles['MediaPlaylist--overflowItems'],\n className,\n )}\n data-testid={testId || testIds.root}\n {...props}\n >\n <div className={styles.MediaPlaylist__layout}>\n <div className={styles.MediaPlaylist__playlist}>\n {headingChild &&\n cloneElement(headingChild, {\n activeIndex,\n id: headingId,\n itemCount: items.length,\n })}\n <div {...tabListProps} ref={tabListRef} className={styles.MediaPlaylist__tablist}>\n {items.map((item, index) => {\n const tabProps = getTabProps<HTMLButtonElement>(String(index))\n\n return (\n <div\n key={index}\n ref={element => {\n setItemRef(index, element)\n }}\n className={clsx(\n styles.MediaPlaylist__item,\n isItemSelected(index) && styles['MediaPlaylist__item--selected'],\n item.className,\n )}\n >\n <button type=\"button\" {...tabProps} className={styles.MediaPlaylist__tab}>\n <span className={styles.MediaPlaylist__tabContent}>\n {item.thumbnail && <span className={styles.MediaPlaylist__thumbnail}>{item.thumbnail}</span>}\n <span className={styles.MediaPlaylist__itemHeadingContent}>{item.heading}</span>\n </span>\n </button>\n </div>\n )\n })}\n </div>\n\n {hasOverflowItems && (\n <Pagination\n className={styles.MediaPlaylist__pagination}\n pageCount={items.length}\n currentPage={currentItemPage}\n onPageChange={handlePageChange}\n hrefBuilder={() => '#'}\n pageAttributesBuilder={getPaginationAttributes}\n aria-label=\"Media playlist items\"\n showPages={false}\n />\n )}\n </div>\n\n <div className={styles.MediaPlaylist__mediaPanels}>\n {items.map((item, index) => {\n const panelProps = getTabPanelProps(String(index))\n\n return (\n <div\n key={index}\n {...panelProps}\n tabIndex={-1}\n className={clsx(styles.MediaPlaylist__mediaPanel, styles.MediaPlaylist__panel)}\n >\n {item.media}\n <div className={styles.MediaPlaylist__panelContent}>{item.content}</div>\n </div>\n )\n })}\n </div>\n </div>\n </div>\n )\n },\n)\n\nexport type MediaPlaylistHeadingProps = React.PropsWithChildren<{\n as?: Exclude<HeadingProps['as'], 'h1'>\n}> &\n BaseProps<HTMLDivElement>\n\ntype MediaPlaylistHeadingInternalProps = {\n activeIndex?: number | null\n itemCount?: number\n}\n\nfunction MediaPlaylistHeading({\n activeIndex = null,\n as = 'h3',\n children,\n className,\n id,\n itemCount = 0,\n ...props\n}: MediaPlaylistHeadingProps & MediaPlaylistHeadingInternalProps) {\n return (\n <div className={clsx(styles.MediaPlaylist__heading, className)} {...props}>\n <Heading as={as} id={id} className={styles.MediaPlaylist__headingLabel}>\n {children}\n </Heading>\n {itemCount > 0 && activeIndex !== null && (\n <span className={styles.MediaPlaylist__headingCounter} aria-live=\"polite\">\n {activeIndex + 1}/{itemCount}\n </span>\n )}\n </div>\n )\n}\n\nexport type MediaPlaylistItemProps = React.PropsWithChildren<\n {\n /**\n * An optional thumbnail to be shown in the playlist for this item.\n */\n thumbnail?: React.ReactNode\n } & BaseProps<HTMLDivElement>\n>\n\nfunction MediaPlaylistItem({children}: MediaPlaylistItemProps) {\n return <>{children}</>\n}\n\nexport type MediaPlaylistItemHeadingProps = Omit<TextProps, 'as' | 'children' | 'title'> & {\n children?: React.ReactNode\n description?: React.ReactNode\n title?: React.ReactNode\n}\n\nfunction MediaPlaylistItemHeading({\n children,\n className,\n description,\n font = 'mona-sans',\n size = '200',\n title,\n variant = 'default',\n weight = 'medium',\n ...props\n}: MediaPlaylistItemHeadingProps) {\n const hasStructuredContent = title !== undefined || description !== undefined\n const headingTitle = title ?? children\n\n return (\n <Text\n {...props}\n as=\"span\"\n className={clsx(styles.MediaPlaylist__itemHeading, className)}\n font={font}\n size={size}\n variant={variant}\n weight={weight}\n >\n {hasStructuredContent ? (\n <span className={styles.MediaPlaylist__itemHeadingDetails}>\n {headingTitle && <span className={styles.MediaPlaylist__itemHeadingTitle}>{headingTitle}</span>}\n {description && (\n <Text as=\"span\" font=\"monospace\" size=\"100\" variant=\"muted\">\n {description}\n </Text>\n )}\n </span>\n ) : (\n children\n )}\n </Text>\n )\n}\n\nexport type MediaPlaylistItemContentProps = React.HTMLAttributes<HTMLDivElement>\n\nfunction MediaPlaylistItemContent({children, className, ...props}: MediaPlaylistItemContentProps) {\n return (\n <div className={clsx(styles.MediaPlaylist__content, className)} {...props}>\n {children}\n </div>\n )\n}\n\nexport type MediaPlaylistItemMediaProps = React.HTMLAttributes<HTMLDivElement>\n\nconst MediaPlaylistItemMedia = forwardRef<HTMLDivElement, MediaPlaylistItemMediaProps>(function MediaPlaylistItemMedia(\n {children, className, ...props},\n ref,\n) {\n return (\n <div ref={ref} className={clsx(styles.MediaPlaylist__media, className)} {...props}>\n {children}\n </div>\n )\n})\n\nconst mediaPlaylistComponents = {\n Heading: MediaPlaylistHeading,\n Item: MediaPlaylistItem,\n ItemHeading: MediaPlaylistItemHeading,\n ItemContent: MediaPlaylistItemContent,\n ItemMedia: MediaPlaylistItemMedia,\n} satisfies MediaPlaylistComponentTypes\n\nconst testIds = {\n root: 'MediaPlaylist',\n}\n\n/**\n * Use MediaPlaylist to pair media playback with an itemized, thumbnail-backed playlist.\n */\nexport const MediaPlaylist = Object.assign(MediaPlaylistRoot, {\n Heading: MediaPlaylistHeading,\n Item: MediaPlaylistItem,\n ItemHeading: MediaPlaylistItemHeading,\n ItemContent: MediaPlaylistItemContent,\n ItemMedia: MediaPlaylistItemMedia,\n testIds,\n})\n"],"mappings":"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"}
1
+ {"version":3,"file":"MediaPlaylist.js","names":[],"sources":["../../src/MediaPlaylist/MediaPlaylist.tsx"],"sourcesContent":["import React, {cloneElement, forwardRef} from 'react'\nimport {clsx} from 'clsx'\n\nimport {Heading, Text, type HeadingProps, type TextProps} from '..'\nimport {Pagination} from '../Pagination'\nimport {useId} from '../hooks/useId'\n\nimport {type MediaPlaylistComponentTypes, useMediaPlaylist} from './useMediaPlaylist'\nimport type {BaseProps} from '../component-helpers'\n/**\n * Design tokens\n */\nimport '@primer/brand-primitives/lib/design-tokens/css/tokens/functional/components/media-playlist/colors-with-modes.css'\n\n/** Main Stylesheet (as a CSS Module) */\n\nimport styles from './MediaPlaylist.module.css'\nimport gridlineStyles from '../component-helpers/shared.module.css'\n\nexport type MediaPlaylistProps = React.PropsWithChildren<{\n /**\n * The index of the item to be selected by default. This is ignored if `selectedIndex` is provided.\n */\n defaultSelectedIndex?: number\n /**\n * The index of the currently selected item. This makes the component controlled.\n */\n selectedIndex?: number\n /**\n * Callback fired when the selected index changes.\n */\n onChange?: (selectedIndex: number) => void\n 'data-testid'?: string\n}> &\n Omit<React.HTMLAttributes<HTMLDivElement>, 'onChange'>\n\nconst MediaPlaylistRoot = forwardRef<HTMLDivElement, MediaPlaylistProps>(\n ({children, className, defaultSelectedIndex = 0, onChange, selectedIndex, 'data-testid': testId, ...props}, ref) => {\n const uniqueId = useId()\n\n const {\n activeIndex,\n currentItemPage,\n getPaginationAttributes,\n getTabListProps,\n getTabPanelProps,\n getTabProps,\n handlePageChange,\n hasOverflowItems,\n headingChild,\n isItemSelected,\n items,\n setItemRef,\n tabListRef,\n } = useMediaPlaylist({\n children,\n components: mediaPlaylistComponents,\n defaultSelectedIndex,\n onChange,\n selectedIndex,\n })\n\n const headingId = headingChild?.props.id ?? `${uniqueId}-heading`\n\n if (!headingChild && (process.env.NODE_ENV === 'development' || process.env.NODE_ENV === 'test')) {\n // eslint-disable-next-line no-console\n console.warn(\n 'MediaPlaylist: Heading child is required. This element labels the playlist for assistive technologies.',\n )\n }\n\n const tabListProps = headingChild\n ? getTabListProps({labelledBy: headingId})\n : getTabListProps({label: 'Media playlist'})\n\n return (\n <div\n ref={ref}\n className={clsx(\n styles.MediaPlaylist,\n gridlineStyles.gridline,\n hasOverflowItems && styles['MediaPlaylist--overflowItems'],\n className,\n )}\n data-testid={testId || testIds.root}\n {...props}\n >\n <div className={styles.MediaPlaylist__layout}>\n <div className={styles.MediaPlaylist__playlist}>\n {headingChild &&\n cloneElement(headingChild, {\n activeIndex,\n id: headingId,\n itemCount: items.length,\n })}\n <div {...tabListProps} ref={tabListRef} className={styles.MediaPlaylist__tablist}>\n {items.map((item, index) => {\n const tabProps = getTabProps<HTMLButtonElement>(String(index))\n\n return (\n <div\n key={index}\n ref={element => {\n setItemRef(index, element)\n }}\n className={clsx(\n styles.MediaPlaylist__item,\n isItemSelected(index) && styles['MediaPlaylist__item--selected'],\n item.className,\n )}\n >\n <button type=\"button\" {...tabProps} className={styles.MediaPlaylist__tab}>\n <span className={styles.MediaPlaylist__tabContent}>\n {item.thumbnail && <span className={styles.MediaPlaylist__thumbnail}>{item.thumbnail}</span>}\n <span className={styles.MediaPlaylist__itemHeadingContent}>{item.heading}</span>\n </span>\n </button>\n </div>\n )\n })}\n </div>\n\n {hasOverflowItems && (\n <Pagination\n className={styles.MediaPlaylist__pagination}\n pageCount={items.length}\n currentPage={currentItemPage}\n onPageChange={handlePageChange}\n hrefBuilder={() => '#'}\n pageAttributesBuilder={getPaginationAttributes}\n aria-label=\"Media playlist items\"\n showPages={false}\n />\n )}\n </div>\n\n <div className={styles.MediaPlaylist__mediaPanels}>\n {items.map((item, index) => {\n const panelProps = getTabPanelProps(String(index))\n\n return (\n <div\n key={index}\n {...panelProps}\n tabIndex={-1}\n className={clsx(styles.MediaPlaylist__mediaPanel, styles.MediaPlaylist__panel)}\n >\n {item.media}\n <div className={styles.MediaPlaylist__panelContent}>{item.content}</div>\n </div>\n )\n })}\n </div>\n </div>\n </div>\n )\n },\n)\n\nexport type MediaPlaylistHeadingProps = React.PropsWithChildren<{\n as?: Exclude<HeadingProps['as'], 'h1'>\n}> &\n BaseProps<HTMLDivElement>\n\ntype MediaPlaylistHeadingInternalProps = {\n activeIndex?: number | null\n itemCount?: number\n}\n\nfunction MediaPlaylistHeading({\n activeIndex = null,\n as = 'h3',\n children,\n className,\n id,\n itemCount = 0,\n ...props\n}: MediaPlaylistHeadingProps & MediaPlaylistHeadingInternalProps) {\n return (\n <div className={clsx(styles.MediaPlaylist__heading, className)} {...props}>\n <Heading as={as} id={id} className={styles.MediaPlaylist__headingLabel}>\n {children}\n </Heading>\n {itemCount > 0 && activeIndex !== null && (\n <span className={styles.MediaPlaylist__headingCounter} aria-live=\"polite\">\n {activeIndex + 1}/{itemCount}\n </span>\n )}\n </div>\n )\n}\n\nexport type MediaPlaylistItemProps = React.PropsWithChildren<\n {\n /**\n * An optional thumbnail to be shown in the playlist for this item.\n */\n thumbnail?: React.ReactNode\n } & BaseProps<HTMLDivElement>\n>\n\nfunction MediaPlaylistItem({children}: MediaPlaylistItemProps) {\n return <>{children}</>\n}\n\nexport type MediaPlaylistItemHeadingProps = Omit<TextProps, 'as' | 'children' | 'title'> & {\n children?: React.ReactNode\n description?: React.ReactNode\n title?: React.ReactNode\n}\n\nfunction MediaPlaylistItemHeading({\n children,\n className,\n description,\n font = 'mona-sans',\n size = '200',\n title,\n variant = 'default',\n weight = 'medium',\n ...props\n}: MediaPlaylistItemHeadingProps) {\n const hasStructuredContent = title !== undefined || description !== undefined\n const headingTitle = title ?? children\n\n return (\n <Text\n {...props}\n as=\"span\"\n className={clsx(styles.MediaPlaylist__itemHeading, className)}\n font={font}\n size={size}\n variant={variant}\n weight={weight}\n >\n {hasStructuredContent ? (\n <span className={styles.MediaPlaylist__itemHeadingDetails}>\n {headingTitle && <span className={styles.MediaPlaylist__itemHeadingTitle}>{headingTitle}</span>}\n {description && (\n <Text as=\"span\" font=\"monospace\" size=\"100\" variant=\"muted\">\n {description}\n </Text>\n )}\n </span>\n ) : (\n children\n )}\n </Text>\n )\n}\n\nexport type MediaPlaylistItemContentProps = React.HTMLAttributes<HTMLDivElement>\n\nfunction MediaPlaylistItemContent({children, className, ...props}: MediaPlaylistItemContentProps) {\n return (\n <div className={clsx(styles.MediaPlaylist__content, className)} {...props}>\n {children}\n </div>\n )\n}\n\nexport type MediaPlaylistItemMediaProps = React.HTMLAttributes<HTMLDivElement>\n\nconst MediaPlaylistItemMedia = forwardRef<HTMLDivElement, MediaPlaylistItemMediaProps>(\n function MediaPlaylistItemMediaWithRef({children, className, ...props}, ref) {\n return (\n <div ref={ref} className={clsx(styles.MediaPlaylist__media, className)} {...props}>\n {children}\n </div>\n )\n },\n)\n\nconst mediaPlaylistComponents = {\n Heading: MediaPlaylistHeading,\n Item: MediaPlaylistItem,\n ItemHeading: MediaPlaylistItemHeading,\n ItemContent: MediaPlaylistItemContent,\n ItemMedia: MediaPlaylistItemMedia,\n} satisfies MediaPlaylistComponentTypes\n\nconst testIds = {\n root: 'MediaPlaylist',\n}\n\n/**\n * Use MediaPlaylist to pair media playback with an itemized, thumbnail-backed playlist.\n */\nexport const MediaPlaylist = Object.assign(MediaPlaylistRoot, {\n Heading: MediaPlaylistHeading,\n Item: MediaPlaylistItem,\n ItemHeading: MediaPlaylistItemHeading,\n ItemContent: MediaPlaylistItemContent,\n ItemMedia: MediaPlaylistItemMedia,\n testIds,\n})\n"],"mappings":"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"}
@@ -1,30 +1,31 @@
1
- import './MediaPlaylist.module-BddC0boN.css';var e = {
2
- MediaPlaylist: "Primer_Brand__MediaPlaylist-module__MediaPlaylist___mqadg",
3
- MediaPlaylist__panelContent: "Primer_Brand__MediaPlaylist-module__MediaPlaylist__panelContent___nD2Xr",
4
- MediaPlaylist__layout: "Primer_Brand__MediaPlaylist-module__MediaPlaylist__layout___Jxb17",
5
- MediaPlaylist__playlist: "Primer_Brand__MediaPlaylist-module__MediaPlaylist__playlist___r232y",
6
- MediaPlaylist__heading: "Primer_Brand__MediaPlaylist-module__MediaPlaylist__heading___bvLnj",
7
- MediaPlaylist__headingLabel: "Primer_Brand__MediaPlaylist-module__MediaPlaylist__headingLabel___cOPfs",
8
- MediaPlaylist__headingCounter: "Primer_Brand__MediaPlaylist-module__MediaPlaylist__headingCounter___xJSQs",
9
- MediaPlaylist__mediaPanels: "Primer_Brand__MediaPlaylist-module__MediaPlaylist__mediaPanels___bgH_2",
10
- MediaPlaylist__mediaPanel: "Primer_Brand__MediaPlaylist-module__MediaPlaylist__mediaPanel___YI_I2",
11
- MediaPlaylist__panel: "Primer_Brand__MediaPlaylist-module__MediaPlaylist__panel___iC9Tx",
12
- MediaPlaylist__media: "Primer_Brand__MediaPlaylist-module__MediaPlaylist__media___HVCCb",
13
- MediaPlaylist__tablist: "Primer_Brand__MediaPlaylist-module__MediaPlaylist__tablist___EhGxB",
1
+ import './MediaPlaylist.module-BddC0boN.css';//#region src/MediaPlaylist/MediaPlaylist.module.css
2
+ var e = "Primer_Brand__MediaPlaylist-module__MediaPlaylist___mqadg", t = "Primer_Brand__MediaPlaylist-module__MediaPlaylist__panelContent___nD2Xr", n = "Primer_Brand__MediaPlaylist-module__MediaPlaylist__layout___Jxb17", r = "Primer_Brand__MediaPlaylist-module__MediaPlaylist__playlist___r232y", i = "Primer_Brand__MediaPlaylist-module__MediaPlaylist__heading___bvLnj", a = "Primer_Brand__MediaPlaylist-module__MediaPlaylist__headingLabel___cOPfs", o = "Primer_Brand__MediaPlaylist-module__MediaPlaylist__headingCounter___xJSQs", s = "Primer_Brand__MediaPlaylist-module__MediaPlaylist__mediaPanels___bgH_2", c = "Primer_Brand__MediaPlaylist-module__MediaPlaylist__mediaPanel___YI_I2", l = "Primer_Brand__MediaPlaylist-module__MediaPlaylist__panel___iC9Tx", u = "Primer_Brand__MediaPlaylist-module__MediaPlaylist__media___HVCCb", d = "Primer_Brand__MediaPlaylist-module__MediaPlaylist__tablist___EhGxB", f = "Primer_Brand__MediaPlaylist-module__MediaPlaylist__pagination___mct_v", p = "Primer_Brand__MediaPlaylist-module__MediaPlaylist__item___KJx6C", m = "Primer_Brand__MediaPlaylist-module__MediaPlaylist__itemHeading___j5Q2s", h = "Primer_Brand__MediaPlaylist-module__MediaPlaylist__itemHeadingContent___pzVd0", g = "Primer_Brand__MediaPlaylist-module__MediaPlaylist__itemHeadingDetails___wQCnu", _ = "Primer_Brand__MediaPlaylist-module__MediaPlaylist__itemHeadingTitle___F1sIm", v = "Primer_Brand__MediaPlaylist-module__MediaPlaylist__tab___LvxjX", y = "Primer_Brand__MediaPlaylist-module__MediaPlaylist__tabContent___9cPbZ", b = "Primer_Brand__MediaPlaylist-module__MediaPlaylist__thumbnail___PENaA", x = "Primer_Brand__MediaPlaylist-module__MediaPlaylist__content___m36IL", S = {
3
+ MediaPlaylist: e,
4
+ MediaPlaylist__panelContent: t,
5
+ MediaPlaylist__layout: n,
6
+ MediaPlaylist__playlist: r,
7
+ MediaPlaylist__heading: i,
8
+ MediaPlaylist__headingLabel: a,
9
+ MediaPlaylist__headingCounter: o,
10
+ MediaPlaylist__mediaPanels: s,
11
+ MediaPlaylist__mediaPanel: c,
12
+ MediaPlaylist__panel: l,
13
+ MediaPlaylist__media: u,
14
+ MediaPlaylist__tablist: d,
14
15
  "MediaPlaylist--overflowItems": "Primer_Brand__MediaPlaylist-module__MediaPlaylist--overflowItems___QWHRc",
15
- MediaPlaylist__pagination: "Primer_Brand__MediaPlaylist-module__MediaPlaylist__pagination___mct_v",
16
- MediaPlaylist__item: "Primer_Brand__MediaPlaylist-module__MediaPlaylist__item___KJx6C",
16
+ MediaPlaylist__pagination: f,
17
+ MediaPlaylist__item: p,
17
18
  "MediaPlaylist__item--selected": "Primer_Brand__MediaPlaylist-module__MediaPlaylist__item--selected___Ihn_G",
18
- MediaPlaylist__itemHeading: "Primer_Brand__MediaPlaylist-module__MediaPlaylist__itemHeading___j5Q2s",
19
- MediaPlaylist__itemHeadingContent: "Primer_Brand__MediaPlaylist-module__MediaPlaylist__itemHeadingContent___pzVd0",
20
- MediaPlaylist__itemHeadingDetails: "Primer_Brand__MediaPlaylist-module__MediaPlaylist__itemHeadingDetails___wQCnu",
21
- MediaPlaylist__itemHeadingTitle: "Primer_Brand__MediaPlaylist-module__MediaPlaylist__itemHeadingTitle___F1sIm",
22
- MediaPlaylist__tab: "Primer_Brand__MediaPlaylist-module__MediaPlaylist__tab___LvxjX",
23
- MediaPlaylist__tabContent: "Primer_Brand__MediaPlaylist-module__MediaPlaylist__tabContent___9cPbZ",
24
- MediaPlaylist__thumbnail: "Primer_Brand__MediaPlaylist-module__MediaPlaylist__thumbnail___PENaA",
25
- MediaPlaylist__content: "Primer_Brand__MediaPlaylist-module__MediaPlaylist__content___m36IL"
19
+ MediaPlaylist__itemHeading: m,
20
+ MediaPlaylist__itemHeadingContent: h,
21
+ MediaPlaylist__itemHeadingDetails: g,
22
+ MediaPlaylist__itemHeadingTitle: _,
23
+ MediaPlaylist__tab: v,
24
+ MediaPlaylist__tabContent: y,
25
+ MediaPlaylist__thumbnail: b,
26
+ MediaPlaylist__content: x
26
27
  };
27
28
  //#endregion
28
- export { e as default };
29
+ export { e as MediaPlaylist, x as MediaPlaylist__content, i as MediaPlaylist__heading, o as MediaPlaylist__headingCounter, a as MediaPlaylist__headingLabel, p as MediaPlaylist__item, m as MediaPlaylist__itemHeading, h as MediaPlaylist__itemHeadingContent, g as MediaPlaylist__itemHeadingDetails, _ as MediaPlaylist__itemHeadingTitle, n as MediaPlaylist__layout, u as MediaPlaylist__media, c as MediaPlaylist__mediaPanel, s as MediaPlaylist__mediaPanels, f as MediaPlaylist__pagination, l as MediaPlaylist__panel, t as MediaPlaylist__panelContent, r as MediaPlaylist__playlist, v as MediaPlaylist__tab, y as MediaPlaylist__tabContent, d as MediaPlaylist__tablist, b as MediaPlaylist__thumbnail, S as default };
29
30
 
30
31
  //# sourceMappingURL=MediaPlaylist.module.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useMediaPlaylist.js","names":[],"sources":["../../src/MediaPlaylist/useMediaPlaylist.ts"],"sourcesContent":["import React, {useCallback, useEffect, useMemo, useRef} from 'react'\n\nimport type {PaginationPageType} from '../Pagination/model'\nimport {useTabs} from '../hooks/useTabs'\n\ntype UseMediaPlaylistProps = {\n children: React.ReactNode\n components: MediaPlaylistComponentTypes\n defaultSelectedIndex: number\n onChange?: (selectedIndex: number) => void\n selectedIndex?: number\n}\n\n/**\n * Internal only hook used by MediaPlaylist to manage state and behavior.\n * @private\n * @internal\n */\nexport type MediaPlaylistComponentTypes = {\n Heading: React.ElementType\n Item: React.ElementType\n ItemHeading: React.ElementType\n ItemContent: React.ElementType\n ItemMedia: React.ElementType\n}\n\ntype MediaPlaylistHeadingChildProps = {\n activeIndex?: number | null\n id?: string\n itemCount?: number\n}\n\ntype MediaPlaylistItemProps = React.PropsWithChildren<{\n className?: string\n thumbnail?: React.ReactNode\n}>\n\ntype MediaPlaylistItemChildProps = React.PropsWithChildren<Record<string, unknown>>\n\ntype MediaPlaylistItemChild = React.ReactElement<MediaPlaylistItemChildProps>\n\ntype MediaPlaylistItemData = {\n className?: string\n content: MediaPlaylistItemChild\n heading: MediaPlaylistItemChild\n media: MediaPlaylistItemChild\n thumbnail?: React.ReactNode\n}\n\n/**\n * Internal only hook used by MediaPlaylist to manage state and behavior.\n * @private\n * @internal\n */\nexport function useMediaPlaylist({\n children,\n components,\n defaultSelectedIndex,\n onChange,\n selectedIndex,\n}: UseMediaPlaylistProps) {\n const {headingChild, items} = useMemo(() => getMediaPlaylistChildren(children, components), [children, components])\n const itemCount = items.length\n const defaultActiveIndex = getValidIndex(defaultSelectedIndex, itemCount)\n\n const controlledActiveIndex =\n typeof selectedIndex === 'number' && Number.isFinite(selectedIndex) ? getValidIndex(selectedIndex, itemCount) : null\n\n const initialActiveIndex = controlledActiveIndex ?? defaultActiveIndex\n const initialActiveTab = initialActiveIndex === null ? undefined : String(initialActiveIndex)\n const hasOverflowItems = itemCount > 3\n const tabListRef = useRef<HTMLDivElement>(null)\n const itemRefs = useRef<Array<HTMLDivElement | null>>([])\n const suppressOnTabActivateRef = useRef(false)\n\n const scrollListToIndex = useCallback((index: number) => {\n const tabList = tabListRef.current\n const item = itemRefs.current[index]\n\n if (!tabList || !item || typeof tabList.scrollTo !== 'function') return\n\n tabList.scrollTo({\n top: Math.max(0, item.offsetTop - tabList.offsetTop),\n behavior: 'smooth',\n })\n }, [])\n\n const handleTabActivate = useCallback(\n (id: string) => {\n const nextIndex = Number(id)\n if (Number.isNaN(nextIndex)) return\n\n if (hasOverflowItems) {\n scrollListToIndex(nextIndex)\n }\n\n if (suppressOnTabActivateRef.current) {\n suppressOnTabActivateRef.current = false\n return\n }\n\n onChange?.(nextIndex)\n },\n [hasOverflowItems, onChange, scrollListToIndex],\n )\n\n const {activeTab, activateTab, getTabListProps, getTabPanelProps, getTabProps} = useTabs({\n defaultTab: initialActiveTab,\n onTabActivate: handleTabActivate,\n orientation: 'vertical',\n })\n\n const activeIndex = activeTab === null ? initialActiveIndex : getValidIndex(Number(activeTab), itemCount)\n const currentItemPage = activeIndex === null ? 1 : activeIndex + 1\n\n useEffect(() => {\n if (controlledActiveIndex === null) return\n\n const controlledTab = String(controlledActiveIndex)\n if (activeTab !== controlledTab) {\n suppressOnTabActivateRef.current = true\n activateTab(controlledTab)\n }\n }, [activateTab, activeTab, controlledActiveIndex])\n\n useEffect(() => {\n if (activeIndex === null || activeTab === String(activeIndex)) return\n\n suppressOnTabActivateRef.current = true\n activateTab(String(activeIndex))\n }, [activateTab, activeIndex, activeTab])\n\n const handlePageChange = useCallback(\n (event: React.MouseEvent, page: number) => {\n event.preventDefault()\n\n const nextIndex = getValidIndex(page - 1, itemCount)\n if (nextIndex === null) return\n\n scrollListToIndex(nextIndex)\n\n if (activeTab !== String(nextIndex)) {\n activateTab(String(nextIndex))\n }\n },\n [activateTab, activeTab, itemCount, scrollListToIndex],\n )\n\n const isItemSelected = useCallback((index: number) => activeTab === String(index), [activeTab])\n\n const setItemRef = useCallback((index: number, element: HTMLDivElement | null) => {\n itemRefs.current[index] = element\n }, [])\n\n const getPaginationAttributes = useCallback((pageNumber: number, page: PaginationPageType) => {\n switch (page.type) {\n case 'PREV':\n return {'aria-label': 'Previous video'}\n case 'NEXT':\n return {'aria-label': 'Next video'}\n case 'NUM': {\n const attributes: {[key: string]: string} = {'aria-label': `Video ${pageNumber}`}\n\n if (page.selected) {\n attributes['aria-current'] = 'step'\n }\n\n return attributes\n }\n case 'BREAK':\n return {}\n }\n }, [])\n\n return {\n activeIndex,\n currentItemPage,\n getPaginationAttributes,\n getTabListProps,\n getTabPanelProps,\n getTabProps,\n handlePageChange,\n hasOverflowItems,\n headingChild,\n isItemSelected,\n items,\n setItemRef,\n tabListRef,\n }\n}\n\nconst createComponentTypeGuard =\n <T>(componentType: React.ElementType) =>\n (element: unknown): element is React.ReactElement<T> =>\n React.isValidElement<T>(element) && element.type === componentType\n\nfunction getMediaPlaylistChildren(children: React.ReactNode, components: MediaPlaylistComponentTypes) {\n const isHeading = createComponentTypeGuard<MediaPlaylistHeadingChildProps>(components.Heading)\n const isItem = createComponentTypeGuard<MediaPlaylistItemProps>(components.Item)\n const isItemHeading = createComponentTypeGuard<MediaPlaylistItemChildProps>(components.ItemHeading)\n const isItemContent = createComponentTypeGuard<MediaPlaylistItemChildProps>(components.ItemContent)\n const isItemMedia = createComponentTypeGuard<MediaPlaylistItemChildProps>(components.ItemMedia)\n\n const playlistChildren = {\n headingChild: null as React.ReactElement<MediaPlaylistHeadingChildProps> | null,\n items: [] as MediaPlaylistItemData[],\n }\n\n for (const child of React.Children.toArray(children)) {\n if (isHeading(child)) {\n playlistChildren.headingChild = child\n continue\n }\n\n if (!isItem(child)) {\n continue\n }\n\n const itemChildren = React.Children.toArray(child.props.children)\n\n const itemParts = {\n heading: null as MediaPlaylistItemChild | null,\n content: null as MediaPlaylistItemChild | null,\n media: null as MediaPlaylistItemChild | null,\n }\n\n for (const itemChild of itemChildren) {\n if (isItemHeading(itemChild)) {\n itemParts.heading = itemChild\n }\n\n if (isItemContent(itemChild)) {\n itemParts.content = itemChild\n }\n\n if (isItemMedia(itemChild)) {\n itemParts.media = itemChild\n }\n }\n\n if (!itemParts.heading || !itemParts.content || !itemParts.media) {\n continue\n }\n\n playlistChildren.items.push({\n className: child.props.className,\n content: itemParts.content,\n heading: itemParts.heading,\n media: itemParts.media,\n thumbnail: child.props.thumbnail,\n })\n }\n\n return playlistChildren\n}\n\nconst getValidIndex = (index: number, length: number) => {\n if (length < 1) return null\n\n const normalizedIndex = Number.isFinite(index) ? Math.trunc(index) : 0\n return Math.min(Math.max(normalizedIndex, 0), length - 1)\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"useMediaPlaylist.js","names":[],"sources":["../../src/MediaPlaylist/useMediaPlaylist.ts"],"sourcesContent":["import React, {useCallback, useEffect, useMemo, useRef} from 'react'\n\nimport type {PaginationPageType} from '../Pagination/model'\nimport {useTabs} from '../hooks/useTabs'\n\ntype UseMediaPlaylistProps = {\n children: React.ReactNode\n components: MediaPlaylistComponentTypes\n defaultSelectedIndex: number\n onChange?: (selectedIndex: number) => void\n selectedIndex?: number\n}\n\n/**\n * Internal only hook used by MediaPlaylist to manage state and behavior.\n * @private\n * @internal\n */\nexport type MediaPlaylistComponentTypes = {\n Heading: React.ElementType\n Item: React.ElementType\n ItemHeading: React.ElementType\n ItemContent: React.ElementType\n ItemMedia: React.ElementType\n}\n\ntype MediaPlaylistHeadingChildProps = {\n activeIndex?: number | null\n id?: string\n itemCount?: number\n}\n\ntype MediaPlaylistItemProps = React.PropsWithChildren<{\n className?: string\n thumbnail?: React.ReactNode\n}>\n\ntype MediaPlaylistItemChildProps = React.PropsWithChildren<Record<string, unknown>>\n\ntype MediaPlaylistItemChild = React.ReactElement<MediaPlaylistItemChildProps>\n\ntype MediaPlaylistItemData = {\n className?: string\n content: MediaPlaylistItemChild\n heading: MediaPlaylistItemChild\n media: MediaPlaylistItemChild\n thumbnail?: React.ReactNode\n}\n\n/**\n * Internal only hook used by MediaPlaylist to manage state and behavior.\n * @private\n * @internal\n */\nexport function useMediaPlaylist({\n children,\n components,\n defaultSelectedIndex,\n onChange,\n selectedIndex,\n}: UseMediaPlaylistProps) {\n const {headingChild, items} = useMemo(() => getMediaPlaylistChildren(children, components), [children, components])\n const itemCount = items.length\n const defaultActiveIndex = getValidIndex(defaultSelectedIndex, itemCount)\n\n const controlledActiveIndex =\n typeof selectedIndex === 'number' && Number.isFinite(selectedIndex) ? getValidIndex(selectedIndex, itemCount) : null\n\n const initialActiveIndex = controlledActiveIndex ?? defaultActiveIndex\n const initialActiveTab = initialActiveIndex === null ? undefined : String(initialActiveIndex)\n const hasOverflowItems = itemCount > 3\n const tabListRef = useRef<HTMLDivElement>(null)\n const itemRefs = useRef<Array<HTMLDivElement | null>>([])\n const suppressOnTabActivateRef = useRef(false)\n\n const scrollListToIndex = useCallback((index: number) => {\n const tabList = tabListRef.current\n const item = itemRefs.current[index]\n\n if (!tabList || !item || typeof tabList.scrollTo !== 'function') return\n\n tabList.scrollTo({\n top: Math.max(0, item.offsetTop - tabList.offsetTop),\n behavior: 'smooth',\n })\n }, [])\n\n const handleTabActivate = useCallback(\n (id: string) => {\n const nextIndex = Number(id)\n if (Number.isNaN(nextIndex)) return\n\n if (hasOverflowItems) {\n scrollListToIndex(nextIndex)\n }\n\n if (suppressOnTabActivateRef.current) {\n suppressOnTabActivateRef.current = false\n return\n }\n\n onChange?.(nextIndex)\n },\n [hasOverflowItems, onChange, scrollListToIndex],\n )\n\n const {activeTab, activateTab, getTabListProps, getTabPanelProps, getTabProps} = useTabs({\n defaultTab: initialActiveTab,\n onTabActivate: handleTabActivate,\n orientation: 'vertical',\n })\n\n const activeIndex = activeTab === null ? initialActiveIndex : getValidIndex(Number(activeTab), itemCount)\n const currentItemPage = activeIndex === null ? 1 : activeIndex + 1\n\n useEffect(() => {\n if (controlledActiveIndex === null) return\n\n const controlledTab = String(controlledActiveIndex)\n if (activeTab !== controlledTab) {\n suppressOnTabActivateRef.current = true\n activateTab(controlledTab)\n }\n }, [activateTab, activeTab, controlledActiveIndex])\n\n useEffect(() => {\n if (activeIndex === null || activeTab === String(activeIndex)) return\n\n suppressOnTabActivateRef.current = true\n activateTab(String(activeIndex))\n }, [activateTab, activeIndex, activeTab])\n\n const handlePageChange = useCallback(\n (event: React.MouseEvent, page: number) => {\n event.preventDefault()\n\n const nextIndex = getValidIndex(page - 1, itemCount)\n if (nextIndex === null) return\n\n scrollListToIndex(nextIndex)\n\n if (activeTab !== String(nextIndex)) {\n activateTab(String(nextIndex))\n }\n },\n [activateTab, activeTab, itemCount, scrollListToIndex],\n )\n\n const isItemSelected = useCallback((index: number) => activeTab === String(index), [activeTab])\n\n const setItemRef = useCallback((index: number, element: HTMLDivElement | null) => {\n itemRefs.current[index] = element\n }, [])\n\n const getPaginationAttributes = useCallback((pageNumber: number, page: PaginationPageType) => {\n switch (page.type) {\n case 'PREV':\n return {'aria-label': 'Previous video'}\n case 'NEXT':\n return {'aria-label': 'Next video'}\n case 'NUM': {\n const attributes: {[key: string]: string} = {'aria-label': `Video ${pageNumber}`}\n\n if (page.selected) {\n attributes['aria-current'] = 'step'\n }\n\n return attributes\n }\n case 'BREAK':\n return {}\n }\n }, [])\n\n return {\n activeIndex,\n currentItemPage,\n getPaginationAttributes,\n getTabListProps,\n getTabPanelProps,\n getTabProps,\n handlePageChange,\n hasOverflowItems,\n headingChild,\n isItemSelected,\n items,\n setItemRef,\n tabListRef,\n }\n}\n\nconst createComponentTypeGuard =\n <T>(componentType: React.ElementType) =>\n (element: unknown): element is React.ReactElement<T> =>\n React.isValidElement<T>(element) && element.type === componentType\n\nfunction getMediaPlaylistChildren(children: React.ReactNode, components: MediaPlaylistComponentTypes) {\n const isHeading = createComponentTypeGuard<MediaPlaylistHeadingChildProps>(components.Heading)\n const isItem = createComponentTypeGuard<MediaPlaylistItemProps>(components.Item)\n const isItemHeading = createComponentTypeGuard<MediaPlaylistItemChildProps>(components.ItemHeading)\n const isItemContent = createComponentTypeGuard<MediaPlaylistItemChildProps>(components.ItemContent)\n const isItemMedia = createComponentTypeGuard<MediaPlaylistItemChildProps>(components.ItemMedia)\n\n const playlistChildren = {\n headingChild: null as React.ReactElement<MediaPlaylistHeadingChildProps> | null,\n items: [] as MediaPlaylistItemData[],\n }\n\n for (const child of React.Children.toArray(children)) {\n if (isHeading(child)) {\n playlistChildren.headingChild = child\n continue\n }\n\n if (!isItem(child)) {\n continue\n }\n\n const itemChildren = React.Children.toArray(child.props.children)\n\n const itemParts = {\n heading: null as MediaPlaylistItemChild | null,\n content: null as MediaPlaylistItemChild | null,\n media: null as MediaPlaylistItemChild | null,\n }\n\n for (const itemChild of itemChildren) {\n if (isItemHeading(itemChild)) {\n itemParts.heading = itemChild\n }\n\n if (isItemContent(itemChild)) {\n itemParts.content = itemChild\n }\n\n if (isItemMedia(itemChild)) {\n itemParts.media = itemChild\n }\n }\n\n if (!itemParts.heading || !itemParts.content || !itemParts.media) {\n continue\n }\n\n playlistChildren.items.push({\n className: child.props.className,\n content: itemParts.content,\n heading: itemParts.heading,\n media: itemParts.media,\n thumbnail: child.props.thumbnail,\n })\n }\n\n return playlistChildren\n}\n\nconst getValidIndex = (index: number, length: number) => {\n if (length < 1) return null\n\n const normalizedIndex = Number.isFinite(index) ? Math.trunc(index) : 0\n return Math.min(Math.max(normalizedIndex, 0), length - 1)\n}\n"],"mappings":"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"}
@@ -86,9 +86,9 @@ export type MinimalFooterProps = {
86
86
  */
87
87
  copyrightStatement?: string | React.ReactElement;
88
88
  } & BaseProps<HTMLElement>;
89
- declare function Root({ centerComponent, className, children, copyrightStatement, logoHref, socialLinks, ...rest }: PropsWithChildren<MinimalFooterProps>): import("react/jsx-runtime").JSX.Element;
89
+ declare function Root({ centerComponent, className, children, copyrightStatement, logoHref, socialLinks, ...rest }: PropsWithChildren<MinimalFooterProps>): React.JSX.Element;
90
90
  type FootnoteProps = BaseProps<HTMLElement>;
91
- declare function Footnotes({ children, className }: PropsWithChildren<FootnoteProps>): import("react/jsx-runtime").JSX.Element;
91
+ declare function Footnotes({ children, className }: PropsWithChildren<FootnoteProps>): React.JSX.Element;
92
92
  type LinkProps<C extends React.ElementType> = BaseProps<C> & {
93
93
  as?: 'a' | 'button';
94
94
  } & Omit<React.ComponentPropsWithoutRef<C>, keyof C>;
@@ -113,7 +113,7 @@ export type MinimalFooterBackToTopProps = {
113
113
  */
114
114
  export declare const MinimalFooter: typeof Root & {
115
115
  Footnotes: typeof Footnotes;
116
- Link: <C extends React.ElementType = "a">({ as, children, ...rest }: PropsWithChildren<LinkProps<C>>) => import("react/jsx-runtime").JSX.Element;
116
+ Link: <C extends React.ElementType = "a">({ as, children, ...rest }: PropsWithChildren<LinkProps<C>>) => React.JSX.Element;
117
117
  BackToTop: React.ForwardRefExoticComponent<Omit<MinimalFooterBackToTopProps, "ref"> & React.RefAttributes<HTMLButtonElement>>;
118
118
  };
119
119
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"MinimalFooter.d.ts","sourceRoot":"","sources":["../../src/MinimalFooter/MinimalFooter.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAa,iBAAiB,EAAc,MAAM,OAAO,CAAA;AAKvE,OAAO,EAAC,SAAS,EAAC,MAAM,sBAAsB,CAAA;AAG9C;;GAEG;AACH,OAAO,0GAA0G,CAAA;AACjH,OAAO,6FAA6F,CAAA;AAOpG,QAAA,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyDV,CAAA;AAEV,KAAK,cAAc,GAAG,MAAM,OAAO,cAAc,CAAA;AAGjD,MAAM,MAAM,kBAAkB,GAAG;IAC/B;;;;;OAKG;IACH,eAAe,CAAC,EAAE,KAAK,CAAC,YAAY,CAAA;IACpC;;OAEG;IACH,WAAW,CAAC,EAAE,cAAc,EAAE,GAAG,KAAK,CAAA;IACtC;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB;;;OAGG;IACH,kBAAkB,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC,YAAY,CAAA;CACjD,GAAG,SAAS,CAAC,WAAW,CAAC,CAAA;AAE1B,iBAAS,IAAI,CAAC,EACZ,eAAe,EACf,SAAS,EACT,QAAQ,EACR,kBAAkB,EAClB,QAA+B,EAC/B,WAAW,EACX,GAAG,IAAI,EACR,EAAE,iBAAiB,CAAC,kBAAkB,CAAC,2CA4EvC;AAED,KAAK,aAAa,GAAG,SAAS,CAAC,WAAW,CAAC,CAAA;AAE3C,iBAAS,SAAS,CAAC,EAAC,QAAQ,EAAE,SAAS,EAAC,EAAE,iBAAiB,CAAC,aAAa,CAAC,2CA2BzE;AAmDD,KAAK,SAAS,CAAC,CAAC,SAAS,KAAK,CAAC,WAAW,IAAI,SAAS,CAAC,CAAC,CAAC,GAAG;IAAC,EAAE,CAAC,EAAE,GAAG,GAAG,QAAQ,CAAA;CAAC,GAAG,IAAI,CACrF,KAAK,CAAC,wBAAwB,CAAC,CAAC,CAAC,EACjC,MAAM,CAAC,CACR,CAAA;AAyBH,MAAM,MAAM,2BAA2B,GAAG;IACxC;;OAEG;IACH,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB;;OAEG;IACH,OAAO,CAAC,EAAE,KAAK,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,CAAA;CACrD,GAAG,SAAS,CAAC,iBAAiB,CAAC,GAC9B,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,EAAE,SAAS,GAAG,UAAU,CAAC,CAAA;AAuE7E;;;GAGG;AACH,eAAO,MAAM,aAAa;;WAjHZ,CAAC,SAAS,KAAK,CAAC,WAAW,mCAAiC,iBAAiB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;;CAqHvG,CAAA"}
1
+ {"version":3,"file":"MinimalFooter.d.ts","sourceRoot":"","sources":["../../src/MinimalFooter/MinimalFooter.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAa,iBAAiB,EAAc,MAAM,OAAO,CAAA;AAKvE,OAAO,EAAC,SAAS,EAAC,MAAM,sBAAsB,CAAA;AAG9C;;GAEG;AACH,OAAO,0GAA0G,CAAA;AACjH,OAAO,6FAA6F,CAAA;AAOpG,QAAA,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyDV,CAAA;AAEV,KAAK,cAAc,GAAG,MAAM,OAAO,cAAc,CAAA;AAGjD,MAAM,MAAM,kBAAkB,GAAG;IAC/B;;;;;OAKG;IACH,eAAe,CAAC,EAAE,KAAK,CAAC,YAAY,CAAA;IACpC;;OAEG;IACH,WAAW,CAAC,EAAE,cAAc,EAAE,GAAG,KAAK,CAAA;IACtC;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB;;;OAGG;IACH,kBAAkB,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC,YAAY,CAAA;CACjD,GAAG,SAAS,CAAC,WAAW,CAAC,CAAA;AAE1B,iBAAS,IAAI,CAAC,EACZ,eAAe,EACf,SAAS,EACT,QAAQ,EACR,kBAAkB,EAClB,QAA+B,EAC/B,WAAW,EACX,GAAG,IAAI,EACR,EAAE,iBAAiB,CAAC,kBAAkB,CAAC,qBA4EvC;AAED,KAAK,aAAa,GAAG,SAAS,CAAC,WAAW,CAAC,CAAA;AAE3C,iBAAS,SAAS,CAAC,EAAC,QAAQ,EAAE,SAAS,EAAC,EAAE,iBAAiB,CAAC,aAAa,CAAC,qBA2BzE;AAmDD,KAAK,SAAS,CAAC,CAAC,SAAS,KAAK,CAAC,WAAW,IAAI,SAAS,CAAC,CAAC,CAAC,GAAG;IAAC,EAAE,CAAC,EAAE,GAAG,GAAG,QAAQ,CAAA;CAAC,GAAG,IAAI,CACrF,KAAK,CAAC,wBAAwB,CAAC,CAAC,CAAC,EACjC,MAAM,CAAC,CACR,CAAA;AAyBH,MAAM,MAAM,2BAA2B,GAAG;IACxC;;OAEG;IACH,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB;;OAEG;IACH,OAAO,CAAC,EAAE,KAAK,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,CAAA;CACrD,GAAG,SAAS,CAAC,iBAAiB,CAAC,GAC9B,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,EAAE,SAAS,GAAG,UAAU,CAAC,CAAA;AAuE7E;;;GAGG;AACH,eAAO,MAAM,aAAa;;WAjHZ,CAAC,SAAS,KAAK,CAAC,WAAW,mCAAiC,iBAAiB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;;CAqHvG,CAAA"}
@@ -1,8 +1,9 @@
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 { useReducedMotion as t } from "../hooks/useReducedMotion.js";
3
3
  import { Text as n } from "../Text/Text.js";
4
- import { ArrowUpIcon as r, MarkGithubIcon as i } from "../node_modules/@primer/octicons-react/dist/index.esm.js";
5
- import '../packages/design-tokens/lib/design-tokens/css/tokens/functional/components/footer/colors-with-modes-CMFhnjfv.css';import '../packages/design-tokens/lib/design-tokens/css/tokens/functional/components/footer/base-C0fjI9_t.css';/* empty css */
4
+ import { ArrowUpIcon as r } from "../node_modules/@primer/octicons-react/dist/icons/ArrowUpIcon.js";
5
+ import { MarkGithubIcon as i } from "../node_modules/@primer/octicons-react/dist/icons/MarkGithubIcon.js";
6
+ import '../packages/design-tokens/lib/design-tokens/css/tokens/functional/components/footer/base-C0fjI9_t.css';import '../packages/design-tokens/lib/design-tokens/css/tokens/functional/components/footer/colors-with-modes-CMFhnjfv.css';/* empty css */
6
7
  /* empty css */
7
8
  import a from "./MinimalFooter.module.js";
8
9
  import o, { forwardRef as s, useCallback as c } from "react";
@@ -1 +1 @@
1
- {"version":3,"file":"MinimalFooter.js","names":[],"sources":["../../src/MinimalFooter/MinimalFooter.tsx"],"sourcesContent":["import React, {forwardRef, PropsWithChildren, useCallback} from 'react'\nimport {clsx} from 'clsx'\nimport {ArrowUpIcon, MarkGithubIcon} from '@primer/octicons-react'\n\nimport {Text} from '../'\nimport {BaseProps} from '../component-helpers'\nimport {useReducedMotion} from '../hooks/useReducedMotion'\n\n/**\n * Design tokens\n */\nimport '@primer/brand-primitives/lib/design-tokens/css/tokens/functional/components/footer/colors-with-modes.css'\nimport '@primer/brand-primitives/lib/design-tokens/css/tokens/functional/components/footer/base.css'\n\n/**\n * Main Stylesheet (as a CSS Module)\n */\nimport styles from './MinimalFooter.module.css'\n\nconst socialLinkData = {\n x: {\n fullName: 'X',\n url: 'https://x.com/github',\n icon: 'https://github.githubassets.com/images/modules/site/icons/footer/x.svg',\n iconWidth: 20,\n iconHeight: 16,\n },\n github: {\n fullName: 'GitHub',\n url: 'https://github.com/github',\n icon: 'https://github.githubassets.com/images/modules/site/icons/footer/github-mark.svg',\n iconWidth: 20,\n iconHeight: 20,\n },\n linkedin: {\n fullName: 'LinkedIn',\n url: 'https://www.linkedin.com/company/github',\n icon: 'https://github.githubassets.com/images/modules/site/icons/footer/linkedin.svg',\n iconWidth: 19,\n iconHeight: 18,\n },\n youtube: {\n fullName: 'YouTube',\n url: 'https://www.youtube.com/github',\n icon: 'https://github.githubassets.com/images/modules/site/icons/footer/youtube.svg',\n iconWidth: 23,\n iconHeight: 16,\n },\n facebook: {\n fullName: 'Facebook',\n url: 'https://www.facebook.com/GitHub',\n icon: 'https://github.githubassets.com/images/modules/site/icons/footer/facebook.svg',\n iconWidth: 18,\n iconHeight: 18,\n },\n twitch: {\n fullName: 'Twitch',\n url: 'https://www.twitch.tv/github',\n icon: 'https://github.githubassets.com/images/modules/site/icons/footer/twitch.svg',\n iconWidth: 18,\n iconHeight: 18,\n },\n tiktok: {\n fullName: 'TikTok',\n url: 'https://www.tiktok.com/@github',\n icon: 'https://github.githubassets.com/images/modules/site/icons/footer/tiktok.svg',\n iconWidth: 18,\n iconHeight: 18,\n },\n instagram: {\n fullName: 'Instagram',\n url: 'https://www.instagram.com/github/',\n icon: 'https://github.githubassets.com/images/modules/site/icons/footer/instagram.svg',\n iconWidth: 24,\n iconHeight: 24,\n },\n} as const\n\ntype SocialLinkName = keyof typeof socialLinkData\nconst socialLinkNames = Object.keys(socialLinkData) as SocialLinkName[]\n\nexport type MinimalFooterProps = {\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 centerComponent?: React.ReactElement\n /**\n * An array of social links to be displayed in the footer.\n */\n socialLinks?: SocialLinkName[] | false\n /**\n * The href for the GitHub logo.\n */\n logoHref?: string\n /**\n * The copyright statement to be displayed in the footer.\n * If not provided, the copyright statement will be the default GitHub copyright statement.\n */\n copyrightStatement?: string | React.ReactElement\n} & BaseProps<HTMLElement>\n\nfunction Root({\n centerComponent,\n className,\n children,\n copyrightStatement,\n logoHref = 'https://github.com',\n socialLinks,\n ...rest\n}: PropsWithChildren<MinimalFooterProps>) {\n let footnotes: React.ReactElement | undefined\n let backToTop: React.ReactElement | undefined\n const links: React.ReactElement[] = []\n\n for (const child of React.Children.toArray(children)) {\n if (!React.isValidElement(child)) {\n continue\n }\n\n if (child.type === Footnotes) {\n footnotes ??= child\n } else if (child.type === BackToTop) {\n backToTop ??= child\n } else if (child.type === Link && links.length < 5) {\n links.push(child)\n }\n }\n\n const currentYear = new Date().getFullYear()\n const resolvedSocialLinks = socialLinks === undefined ? socialLinkNames : socialLinks\n const renderedSocialLinks = resolvedSocialLinks === false ? [] : resolvedSocialLinks\n const hasSocialLinks = renderedSocialLinks.length > 0\n const hasLinks = links.length > 0\n const renderedLinks = hasLinks ? <div className={styles.MinimalFooter__links}>{links}</div> : null\n const copyright = (\n <Text\n as=\"p\"\n size=\"100\"\n font=\"monospace\"\n weight={{narrow: 'medium', wide: 'normal'}}\n variant=\"muted\"\n className={clsx(styles.MinimalFooter__copyright, styles.MinimalFooter__metaText)}\n >\n {copyrightStatement ? copyrightStatement : `\\u00A9 ${currentYear} GitHub. All rights reserved.`}\n </Text>\n )\n\n return (\n <footer\n className={clsx(styles.MinimalFooter, footnotes && styles['MinimalFooter--withFootnotes'], className)}\n {...rest}\n >\n {footnotes}\n <div className={styles.MinimalFooter__section}>\n <section className={styles.MinimalFooter__top}>\n <div className={styles.MinimalFooter__container}>\n <div className={styles['MinimalFooter__top-row']}>\n <LogoLink logoHref={logoHref} />\n {hasLinks || backToTop ? (\n <div className={styles['MinimalFooter__top-actions']}>\n {backToTop}\n {renderedLinks}\n </div>\n ) : null}\n </div>\n </div>\n </section>\n </div>\n {centerComponent ? (\n <div className={clsx(styles.MinimalFooter__section, styles['MinimalFooter__section--center'])}>\n <section className={styles.MinimalFooter__container}>{centerComponent}</section>\n </div>\n ) : null}\n <div className={clsx(styles.MinimalFooter__section, styles['MinimalFooter__section--bottom'])}>\n <section className={styles.MinimalFooter__bottom}>\n <div className={styles.MinimalFooter__container}>\n <div className={styles['MinimalFooter__bottom-row']}>\n {copyright}\n {hasSocialLinks ? <SocialLinks socialLinks={renderedSocialLinks} /> : null}\n </div>\n </div>\n </section>\n </div>\n </footer>\n )\n}\n\ntype FootnoteProps = BaseProps<HTMLElement>\n\nfunction Footnotes({children, className}: PropsWithChildren<FootnoteProps>) {\n const styledChildren = React.Children.map(children, child => {\n if (React.isValidElement<React.ComponentProps<typeof Text>>(child) && child.type === Text) {\n const textChild = child as React.ReactElement<React.ComponentProps<typeof Text>>\n const overrideProps: Partial<React.ComponentProps<typeof Text>> = {\n variant: 'muted',\n size: '100',\n className: clsx(styles['MinimalFooter__terms-item'], textChild.props.className),\n }\n\n if (!textChild.props.as) {\n overrideProps.as = 'p'\n }\n\n return React.cloneElement(textChild, overrideProps)\n }\n\n return null\n })\n\n return (\n <div className={clsx(styles.MinimalFooter__section, styles['MinimalFooter__section--footnotes'])}>\n <section className={styles.MinimalFooter__container}>\n <div className={clsx(styles.MinimalFooter__terms, className)}>{styledChildren}</div>\n </section>\n </div>\n )\n}\n\ntype SocialLinkProps = {name: SocialLinkName}\n\nconst SocialLink = ({name}: SocialLinkProps) => {\n const link = socialLinkData[name]\n return (\n <li>\n <a\n href={link.url}\n className={styles['MinimalFooter__social-link']}\n data-analytics-event={`{\"category\":\"Footer\",\"action\":\"go to ${link.fullName}\",\"label\":\"text:${name}\"}`}\n >\n <img\n className={styles['MinimalFooter__social-icon']}\n src={link.icon}\n height={link.iconHeight}\n width={link.iconWidth}\n loading=\"lazy\"\n decoding=\"async\"\n alt=\"\"\n />\n <span className=\"visually-hidden\">GitHub on {link.fullName}</span>\n </a>\n </li>\n )\n}\n\nfunction LogoLink({logoHref}: {logoHref?: string}) {\n return (\n <a\n href={logoHref}\n className={styles.MinimalFooter__logo}\n data-analytics-event='{\"category\":\"Footer\",\"action\":\"go to home\",\"label\":\"text:home\"}'\n aria-label=\"GitHub\"\n >\n <MarkGithubIcon size={24} />\n </a>\n )\n}\n\nfunction SocialLinks({socialLinks}: {socialLinks: SocialLinkName[]}) {\n return (\n <ul className={styles['MinimalFooter__social-links']}>\n {socialLinks.map(name => (\n <SocialLink key={name} name={name} />\n ))}\n </ul>\n )\n}\n\ntype LinkProps<C extends React.ElementType> = BaseProps<C> & {as?: 'a' | 'button'} & Omit<\n React.ComponentPropsWithoutRef<C>,\n keyof C\n >\n\nconst Link = <C extends React.ElementType = 'a'>({as, children, ...rest}: PropsWithChildren<LinkProps<C>>) => {\n const Component = as || 'a'\n return (\n <Component\n className={styles.MinimalFooter__link}\n data-analytics-event={\n rest['href'] ? `{\"category\":\"Footer\",\"action\":\"go to ${rest['href']}\",\"label\":\"text:${children}\"}` : undefined\n }\n {...rest}\n >\n <Text\n variant=\"muted\"\n size=\"100\"\n font=\"monospace\"\n weight={{narrow: 'medium', wide: 'normal'}}\n className={styles.MinimalFooter__metaText}\n >\n {children}\n </Text>\n </Component>\n )\n}\n\nexport type MinimalFooterBackToTopProps = {\n /**\n * The visible and accessible label.\n */\n children: React.ReactNode\n /**\n * The ID of the semantic top-of-page element that receives focus after keyboard activation.\n * Defaults to the first `<main>` element, then falls back to `<body>`.\n */\n focusTargetId?: string\n /**\n * Runs before the built-in behavior. Call `event.preventDefault()` to cancel scrolling and focus transfer.\n */\n onClick?: React.MouseEventHandler<HTMLButtonElement>\n} & BaseProps<HTMLButtonElement> &\n Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, 'onClick' | 'children'>\n\n/**\n * Scrolls to the top and, after keyboard activation, moves focus to the configured top-of-page destination.\n */\nconst BackToTop = forwardRef<HTMLButtonElement, MinimalFooterBackToTopProps>(\n ({children, className, focusTargetId, onClick, type = 'button', ...rest}, ref) => {\n const prefersReducedMotion = useReducedMotion()\n\n const handleClick = useCallback<React.MouseEventHandler<HTMLButtonElement>>(\n event => {\n onClick?.(event)\n\n if (event.defaultPrevented) {\n return\n }\n\n window.scrollTo({\n top: 0,\n behavior: prefersReducedMotion ? 'instant' : 'smooth',\n })\n\n if (event.detail === 0) {\n const focusTarget = focusTargetId\n ? document.getElementById(focusTargetId)\n : document.querySelector<HTMLElement>('main') ??\n document.querySelector<HTMLElement>('body') ??\n document.documentElement\n\n if (!focusTarget) {\n if (process.env.NODE_ENV === 'development' || process.env.NODE_ENV === 'test') {\n // eslint-disable-next-line no-console\n console.warn(`MinimalFooter.BackToTop: No element found with id \"${focusTargetId}\".`)\n }\n return\n }\n\n const hadTabIndex = focusTarget.hasAttribute('tabindex')\n\n if (!hadTabIndex) {\n focusTarget.tabIndex = -1\n focusTarget.addEventListener('blur', () => focusTarget.removeAttribute('tabindex'), {once: true})\n }\n\n focusTarget.focus({preventScroll: true})\n }\n },\n [focusTargetId, onClick, prefersReducedMotion],\n )\n\n return (\n <button\n ref={ref}\n type={type}\n className={clsx(styles.MinimalFooter__backToTop, className)}\n onClick={handleClick}\n {...rest}\n >\n <span className={styles['MinimalFooter__backToTop-content']}>\n <Text as=\"span\" size=\"100\" weight=\"medium\" className={styles.MinimalFooter__metaText}>\n {children}\n </Text>\n <span className={styles['MinimalFooter__backToTop-icon']} aria-hidden=\"true\">\n <ArrowUpIcon />\n </span>\n </span>\n </button>\n )\n },\n)\n\n/**\n * Use MinimalFooter to render a global footer on all GitHub pages.\n * @see https://primer.style/brand/components/MinimalFooter\n */\nexport const MinimalFooter = Object.assign(Root, {\n Footnotes,\n Link,\n BackToTop,\n})\n"],"mappings":"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"}
1
+ {"version":3,"file":"MinimalFooter.js","names":[],"sources":["../../src/MinimalFooter/MinimalFooter.tsx"],"sourcesContent":["import React, {forwardRef, PropsWithChildren, useCallback} from 'react'\nimport {clsx} from 'clsx'\nimport {ArrowUpIcon, MarkGithubIcon} from '@primer/octicons-react'\n\nimport {Text} from '../'\nimport {BaseProps} from '../component-helpers'\nimport {useReducedMotion} from '../hooks/useReducedMotion'\n\n/**\n * Design tokens\n */\nimport '@primer/brand-primitives/lib/design-tokens/css/tokens/functional/components/footer/colors-with-modes.css'\nimport '@primer/brand-primitives/lib/design-tokens/css/tokens/functional/components/footer/base.css'\n\n/**\n * Main Stylesheet (as a CSS Module)\n */\nimport styles from './MinimalFooter.module.css'\n\nconst socialLinkData = {\n x: {\n fullName: 'X',\n url: 'https://x.com/github',\n icon: 'https://github.githubassets.com/images/modules/site/icons/footer/x.svg',\n iconWidth: 20,\n iconHeight: 16,\n },\n github: {\n fullName: 'GitHub',\n url: 'https://github.com/github',\n icon: 'https://github.githubassets.com/images/modules/site/icons/footer/github-mark.svg',\n iconWidth: 20,\n iconHeight: 20,\n },\n linkedin: {\n fullName: 'LinkedIn',\n url: 'https://www.linkedin.com/company/github',\n icon: 'https://github.githubassets.com/images/modules/site/icons/footer/linkedin.svg',\n iconWidth: 19,\n iconHeight: 18,\n },\n youtube: {\n fullName: 'YouTube',\n url: 'https://www.youtube.com/github',\n icon: 'https://github.githubassets.com/images/modules/site/icons/footer/youtube.svg',\n iconWidth: 23,\n iconHeight: 16,\n },\n facebook: {\n fullName: 'Facebook',\n url: 'https://www.facebook.com/GitHub',\n icon: 'https://github.githubassets.com/images/modules/site/icons/footer/facebook.svg',\n iconWidth: 18,\n iconHeight: 18,\n },\n twitch: {\n fullName: 'Twitch',\n url: 'https://www.twitch.tv/github',\n icon: 'https://github.githubassets.com/images/modules/site/icons/footer/twitch.svg',\n iconWidth: 18,\n iconHeight: 18,\n },\n tiktok: {\n fullName: 'TikTok',\n url: 'https://www.tiktok.com/@github',\n icon: 'https://github.githubassets.com/images/modules/site/icons/footer/tiktok.svg',\n iconWidth: 18,\n iconHeight: 18,\n },\n instagram: {\n fullName: 'Instagram',\n url: 'https://www.instagram.com/github/',\n icon: 'https://github.githubassets.com/images/modules/site/icons/footer/instagram.svg',\n iconWidth: 24,\n iconHeight: 24,\n },\n} as const\n\ntype SocialLinkName = keyof typeof socialLinkData\nconst socialLinkNames = Object.keys(socialLinkData) as SocialLinkName[]\n\nexport type MinimalFooterProps = {\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 centerComponent?: React.ReactElement\n /**\n * An array of social links to be displayed in the footer.\n */\n socialLinks?: SocialLinkName[] | false\n /**\n * The href for the GitHub logo.\n */\n logoHref?: string\n /**\n * The copyright statement to be displayed in the footer.\n * If not provided, the copyright statement will be the default GitHub copyright statement.\n */\n copyrightStatement?: string | React.ReactElement\n} & BaseProps<HTMLElement>\n\nfunction Root({\n centerComponent,\n className,\n children,\n copyrightStatement,\n logoHref = 'https://github.com',\n socialLinks,\n ...rest\n}: PropsWithChildren<MinimalFooterProps>) {\n let footnotes: React.ReactElement | undefined\n let backToTop: React.ReactElement | undefined\n const links: React.ReactElement[] = []\n\n for (const child of React.Children.toArray(children)) {\n if (!React.isValidElement(child)) {\n continue\n }\n\n if (child.type === Footnotes) {\n footnotes ??= child\n } else if (child.type === BackToTop) {\n backToTop ??= child\n } else if (child.type === Link && links.length < 5) {\n links.push(child)\n }\n }\n\n const currentYear = new Date().getFullYear()\n const resolvedSocialLinks = socialLinks === undefined ? socialLinkNames : socialLinks\n const renderedSocialLinks = resolvedSocialLinks === false ? [] : resolvedSocialLinks\n const hasSocialLinks = renderedSocialLinks.length > 0\n const hasLinks = links.length > 0\n const renderedLinks = hasLinks ? <div className={styles.MinimalFooter__links}>{links}</div> : null\n const copyright = (\n <Text\n as=\"p\"\n size=\"100\"\n font=\"monospace\"\n weight={{narrow: 'medium', wide: 'normal'}}\n variant=\"muted\"\n className={clsx(styles.MinimalFooter__copyright, styles.MinimalFooter__metaText)}\n >\n {copyrightStatement ? copyrightStatement : `\\u00A9 ${currentYear} GitHub. All rights reserved.`}\n </Text>\n )\n\n return (\n <footer\n className={clsx(styles.MinimalFooter, footnotes && styles['MinimalFooter--withFootnotes'], className)}\n {...rest}\n >\n {footnotes}\n <div className={styles.MinimalFooter__section}>\n <section className={styles.MinimalFooter__top}>\n <div className={styles.MinimalFooter__container}>\n <div className={styles['MinimalFooter__top-row']}>\n <LogoLink logoHref={logoHref} />\n {hasLinks || backToTop ? (\n <div className={styles['MinimalFooter__top-actions']}>\n {backToTop}\n {renderedLinks}\n </div>\n ) : null}\n </div>\n </div>\n </section>\n </div>\n {centerComponent ? (\n <div className={clsx(styles.MinimalFooter__section, styles['MinimalFooter__section--center'])}>\n <section className={styles.MinimalFooter__container}>{centerComponent}</section>\n </div>\n ) : null}\n <div className={clsx(styles.MinimalFooter__section, styles['MinimalFooter__section--bottom'])}>\n <section className={styles.MinimalFooter__bottom}>\n <div className={styles.MinimalFooter__container}>\n <div className={styles['MinimalFooter__bottom-row']}>\n {copyright}\n {hasSocialLinks ? <SocialLinks socialLinks={renderedSocialLinks} /> : null}\n </div>\n </div>\n </section>\n </div>\n </footer>\n )\n}\n\ntype FootnoteProps = BaseProps<HTMLElement>\n\nfunction Footnotes({children, className}: PropsWithChildren<FootnoteProps>) {\n const styledChildren = React.Children.map(children, child => {\n if (React.isValidElement<React.ComponentProps<typeof Text>>(child) && child.type === Text) {\n const textChild = child as React.ReactElement<React.ComponentProps<typeof Text>>\n const overrideProps: Partial<React.ComponentProps<typeof Text>> = {\n variant: 'muted',\n size: '100',\n className: clsx(styles['MinimalFooter__terms-item'], textChild.props.className),\n }\n\n if (!textChild.props.as) {\n overrideProps.as = 'p'\n }\n\n return React.cloneElement(textChild, overrideProps)\n }\n\n return null\n })\n\n return (\n <div className={clsx(styles.MinimalFooter__section, styles['MinimalFooter__section--footnotes'])}>\n <section className={styles.MinimalFooter__container}>\n <div className={clsx(styles.MinimalFooter__terms, className)}>{styledChildren}</div>\n </section>\n </div>\n )\n}\n\ntype SocialLinkProps = {name: SocialLinkName}\n\nconst SocialLink = ({name}: SocialLinkProps) => {\n const link = socialLinkData[name]\n return (\n <li>\n <a\n href={link.url}\n className={styles['MinimalFooter__social-link']}\n data-analytics-event={`{\"category\":\"Footer\",\"action\":\"go to ${link.fullName}\",\"label\":\"text:${name}\"}`}\n >\n <img\n className={styles['MinimalFooter__social-icon']}\n src={link.icon}\n height={link.iconHeight}\n width={link.iconWidth}\n loading=\"lazy\"\n decoding=\"async\"\n alt=\"\"\n />\n <span className=\"visually-hidden\">GitHub on {link.fullName}</span>\n </a>\n </li>\n )\n}\n\nfunction LogoLink({logoHref}: {logoHref?: string}) {\n return (\n <a\n href={logoHref}\n className={styles.MinimalFooter__logo}\n data-analytics-event='{\"category\":\"Footer\",\"action\":\"go to home\",\"label\":\"text:home\"}'\n aria-label=\"GitHub\"\n >\n <MarkGithubIcon size={24} />\n </a>\n )\n}\n\nfunction SocialLinks({socialLinks}: {socialLinks: SocialLinkName[]}) {\n return (\n <ul className={styles['MinimalFooter__social-links']}>\n {socialLinks.map(name => (\n <SocialLink key={name} name={name} />\n ))}\n </ul>\n )\n}\n\ntype LinkProps<C extends React.ElementType> = BaseProps<C> & {as?: 'a' | 'button'} & Omit<\n React.ComponentPropsWithoutRef<C>,\n keyof C\n >\n\nconst Link = <C extends React.ElementType = 'a'>({as, children, ...rest}: PropsWithChildren<LinkProps<C>>) => {\n const Component = as || 'a'\n return (\n <Component\n className={styles.MinimalFooter__link}\n data-analytics-event={\n rest['href'] ? `{\"category\":\"Footer\",\"action\":\"go to ${rest['href']}\",\"label\":\"text:${children}\"}` : undefined\n }\n {...rest}\n >\n <Text\n variant=\"muted\"\n size=\"100\"\n font=\"monospace\"\n weight={{narrow: 'medium', wide: 'normal'}}\n className={styles.MinimalFooter__metaText}\n >\n {children}\n </Text>\n </Component>\n )\n}\n\nexport type MinimalFooterBackToTopProps = {\n /**\n * The visible and accessible label.\n */\n children: React.ReactNode\n /**\n * The ID of the semantic top-of-page element that receives focus after keyboard activation.\n * Defaults to the first `<main>` element, then falls back to `<body>`.\n */\n focusTargetId?: string\n /**\n * Runs before the built-in behavior. Call `event.preventDefault()` to cancel scrolling and focus transfer.\n */\n onClick?: React.MouseEventHandler<HTMLButtonElement>\n} & BaseProps<HTMLButtonElement> &\n Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, 'onClick' | 'children'>\n\n/**\n * Scrolls to the top and, after keyboard activation, moves focus to the configured top-of-page destination.\n */\nconst BackToTop = forwardRef<HTMLButtonElement, MinimalFooterBackToTopProps>(\n ({children, className, focusTargetId, onClick, type = 'button', ...rest}, ref) => {\n const prefersReducedMotion = useReducedMotion()\n\n const handleClick = useCallback<React.MouseEventHandler<HTMLButtonElement>>(\n event => {\n onClick?.(event)\n\n if (event.defaultPrevented) {\n return\n }\n\n window.scrollTo({\n top: 0,\n behavior: prefersReducedMotion ? 'instant' : 'smooth',\n })\n\n if (event.detail === 0) {\n const focusTarget = focusTargetId\n ? document.getElementById(focusTargetId)\n : document.querySelector<HTMLElement>('main') ??\n document.querySelector<HTMLElement>('body') ??\n document.documentElement\n\n if (!focusTarget) {\n if (process.env.NODE_ENV === 'development' || process.env.NODE_ENV === 'test') {\n // eslint-disable-next-line no-console\n console.warn(`MinimalFooter.BackToTop: No element found with id \"${focusTargetId}\".`)\n }\n return\n }\n\n const hadTabIndex = focusTarget.hasAttribute('tabindex')\n\n if (!hadTabIndex) {\n focusTarget.tabIndex = -1\n focusTarget.addEventListener('blur', () => focusTarget.removeAttribute('tabindex'), {once: true})\n }\n\n focusTarget.focus({preventScroll: true})\n }\n },\n [focusTargetId, onClick, prefersReducedMotion],\n )\n\n return (\n <button\n ref={ref}\n type={type}\n className={clsx(styles.MinimalFooter__backToTop, className)}\n onClick={handleClick}\n {...rest}\n >\n <span className={styles['MinimalFooter__backToTop-content']}>\n <Text as=\"span\" size=\"100\" weight=\"medium\" className={styles.MinimalFooter__metaText}>\n {children}\n </Text>\n <span className={styles['MinimalFooter__backToTop-icon']} aria-hidden=\"true\">\n <ArrowUpIcon />\n </span>\n </span>\n </button>\n )\n },\n)\n\n/**\n * Use MinimalFooter to render a global footer on all GitHub pages.\n * @see https://primer.style/brand/components/MinimalFooter\n */\nexport const MinimalFooter = Object.assign(Root, {\n Footnotes,\n Link,\n BackToTop,\n})\n"],"mappings":"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"}