@primer/react-brand 0.75.0-rc.a3f7dbd6 → 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 (940) hide show
  1. package/docs/components/SubdomainNavBar/index.md +215 -86
  2. package/docs/index.md +2 -2
  3. package/esm/Accordion/Accordion.d.ts +2 -2
  4. package/esm/Accordion/Accordion.d.ts.map +1 -1
  5. package/esm/Accordion/Accordion.js +2 -2
  6. package/esm/Accordion/Accordion.js.map +1 -1
  7. package/esm/Accordion/Accordion.module.js +6 -5
  8. package/esm/ActionMenu/ActionMenu.d.ts +2 -2
  9. package/esm/ActionMenu/ActionMenu.js +3 -2
  10. package/esm/ActionMenu/ActionMenu.js.map +1 -1
  11. package/esm/ActionMenu/ActionMenu.module.js +7 -6
  12. package/esm/AnchorNav/AnchorNav.d.ts +4 -4
  13. package/esm/AnchorNav/AnchorNav.d.ts.map +1 -1
  14. package/esm/AnchorNav/AnchorNav.js +9 -4
  15. package/esm/AnchorNav/AnchorNav.js.map +1 -1
  16. package/esm/AnchorNav/AnchorNav.module.js +5 -4
  17. package/esm/AnchorNav/useExpandedMenu.js.map +1 -1
  18. package/esm/Avatar/Avatar.js +1 -1
  19. package/esm/Avatar/Avatar.js.map +1 -1
  20. package/esm/Avatar/Avatar.module.js +5 -4
  21. package/esm/Bento/Bento.d.ts +4 -4
  22. package/esm/Bento/Bento.js +1 -1
  23. package/esm/Bento/Bento.js.map +1 -1
  24. package/esm/Bento/Bento.module.js +7 -6
  25. package/esm/Box/Box.d.ts +1 -1
  26. package/esm/Box/Box.d.ts.map +1 -1
  27. package/esm/Box/Box.js +1 -1
  28. package/esm/Box/Box.js.map +1 -1
  29. package/esm/Breadcrumbs/Breadcrumbs.js +1 -1
  30. package/esm/Breadcrumbs/Breadcrumbs.js.map +1 -1
  31. package/esm/Breadcrumbs/Breadcrumbs.module.js +7 -6
  32. package/esm/BreakoutBanner/BreakoutBanner.js +1 -1
  33. package/esm/BreakoutBanner/BreakoutBanner.js.map +1 -1
  34. package/esm/BreakoutBanner/BreakoutBanner.module.js +5 -4
  35. package/esm/Button/Button.js +1 -1
  36. package/esm/Button/Button.js.map +1 -1
  37. package/esm/Button/Button.module.js +5 -4
  38. package/esm/ButtonGroup/ButtonGroup.js +1 -1
  39. package/esm/ButtonGroup/ButtonGroup.js.map +1 -1
  40. package/esm/ButtonGroup/ButtonGroup.module.js +3 -2
  41. package/esm/CTABanner/CTABanner.d.ts +1 -1
  42. package/esm/CTABanner/CTABanner.js +2 -2
  43. package/esm/CTABanner/CTABanner.js.map +1 -1
  44. package/esm/CTABanner/CTABanner.module.js +4 -3
  45. package/esm/CTAForm/CTAForm.js +1 -1
  46. package/esm/CTAForm/CTAForm.js.map +1 -1
  47. package/esm/CTAForm/CTAForm.module.js +4 -3
  48. package/esm/Card/Card.d.ts +2 -2
  49. package/esm/Card/Card.d.ts.map +1 -1
  50. package/esm/Card/Card.js +3 -3
  51. package/esm/Card/Card.js.map +1 -1
  52. package/esm/Card/Card.module.js +18 -17
  53. package/esm/ComparisonTable/ComparisonTable.d.ts +3 -3
  54. package/esm/ComparisonTable/ComparisonTable.js +1 -1
  55. package/esm/ComparisonTable/ComparisonTable.js.map +1 -1
  56. package/esm/ComparisonTable/ComparisonTable.module.js +4 -3
  57. package/esm/ExpandableArrow/ExpandableArrow.d.ts +2 -1
  58. package/esm/ExpandableArrow/ExpandableArrow.d.ts.map +1 -1
  59. package/esm/ExpandableArrow/ExpandableArrow.js +1 -1
  60. package/esm/ExpandableArrow/ExpandableArrow.js.map +1 -1
  61. package/esm/ExpandableArrow/ExpandableArrow.module.js +4 -3
  62. package/esm/EyebrowBanner/EyebrowBanner.js +2 -2
  63. package/esm/EyebrowBanner/EyebrowBanner.js.map +1 -1
  64. package/esm/EyebrowBanner/EyebrowBanner.module.js +12 -11
  65. package/esm/EyebrowText/EyebrowText.js +1 -1
  66. package/esm/EyebrowText/EyebrowText.js.map +1 -1
  67. package/esm/EyebrowText/EyebrowText.module.js +4 -3
  68. package/esm/FAQ/FAQ.d.ts +2 -2
  69. package/esm/FAQ/FAQ.d.ts.map +1 -1
  70. package/esm/FAQ/FAQ.js +1 -1
  71. package/esm/FAQ/FAQ.js.map +1 -1
  72. package/esm/FAQ/FAQ.module.js +7 -6
  73. package/esm/FAQ/FAQGroup.d.ts +2 -2
  74. package/esm/FAQ/FAQGroup.d.ts.map +1 -1
  75. package/esm/FAQ/FAQGroup.js +7 -3
  76. package/esm/FAQ/FAQGroup.js.map +1 -1
  77. package/esm/FAQ/FAQGroup.module.js +8 -7
  78. package/esm/Footnotes/Footnotes.d.ts +2 -2
  79. package/esm/Footnotes/Footnotes.d.ts.map +1 -1
  80. package/esm/Footnotes/Footnotes.js +2 -2
  81. package/esm/Footnotes/Footnotes.js.map +1 -1
  82. package/esm/Footnotes/Footnotes.module.js +7 -6
  83. package/esm/FrostedGlassVFX/FrostedGlassVFX.d.ts +1 -1
  84. package/esm/FrostedGlassVFX/FrostedGlassVFX.d.ts.map +1 -1
  85. package/esm/FrostedGlassVFX/FrostedGlassVFX.js +1 -1
  86. package/esm/FrostedGlassVFX/FrostedGlassVFX.js.map +1 -1
  87. package/esm/FrostedGlassVFX/FrostedGlassVFX.module.js +4 -3
  88. package/esm/Grid/Grid.d.ts +2 -2
  89. package/esm/Grid/Grid.js +2 -2
  90. package/esm/Grid/Grid.js.map +1 -1
  91. package/esm/Grid/Grid.module.js +5 -4
  92. package/esm/Heading/Heading.js +1 -1
  93. package/esm/Heading/Heading.js.map +1 -1
  94. package/esm/Heading/Heading.module.js +4 -3
  95. package/esm/Hero/Hero.js +1 -1
  96. package/esm/Hero/Hero.js.map +1 -1
  97. package/esm/Hero/Hero.module.js +4 -3
  98. package/esm/Hero/HeroContext.js.map +1 -1
  99. package/esm/Hero/sub-components/HeroButtonGroup.js +1 -1
  100. package/esm/Hero/sub-components/HeroButtonGroup.js.map +1 -1
  101. package/esm/Hero/sub-components/HeroDescription.js +1 -1
  102. package/esm/Hero/sub-components/HeroDescription.js.map +1 -1
  103. package/esm/Hero/sub-components/HeroEyebrow.js +1 -1
  104. package/esm/Hero/sub-components/HeroEyebrow.js.map +1 -1
  105. package/esm/Hero/sub-components/HeroHeading.js +1 -1
  106. package/esm/Hero/sub-components/HeroHeading.js.map +1 -1
  107. package/esm/Hero/sub-components/HeroImage.js +1 -1
  108. package/esm/Hero/sub-components/HeroImage.js.map +1 -1
  109. package/esm/Hero/sub-components/HeroLabel.js +1 -1
  110. package/esm/Hero/sub-components/HeroLabel.js.map +1 -1
  111. package/esm/Hero/sub-components/HeroPrimaryAction.js.map +1 -1
  112. package/esm/Hero/sub-components/HeroSecondaryAction.js.map +1 -1
  113. package/esm/Hero/sub-components/HeroVideo.js +2 -2
  114. package/esm/Hero/sub-components/HeroVideo.js.map +1 -1
  115. package/esm/IDE/IDE.d.ts +1 -1
  116. package/esm/IDE/IDE.js +3 -2
  117. package/esm/IDE/IDE.js.map +1 -1
  118. package/esm/IDE/IDE.module.js +8 -7
  119. package/esm/Icon/Icon.d.ts +2 -2
  120. package/esm/Icon/Icon.d.ts.map +1 -1
  121. package/esm/Icon/Icon.js +2 -2
  122. package/esm/Icon/Icon.js.map +1 -1
  123. package/esm/Icon/Icon.module.js +4 -3
  124. package/esm/Image/Image.d.ts +1 -1
  125. package/esm/Image/Image.d.ts.map +1 -1
  126. package/esm/Image/Image.js +1 -1
  127. package/esm/Image/Image.js.map +1 -1
  128. package/esm/Image/Image.module.js +5 -4
  129. package/esm/InlineCode/InlineCode.js +1 -1
  130. package/esm/InlineCode/InlineCode.js.map +1 -1
  131. package/esm/InlineCode/InlineCode.module.js +5 -4
  132. package/esm/InlineLink/InlineLink.js +2 -2
  133. package/esm/InlineLink/InlineLink.js.map +1 -1
  134. package/esm/InlineLink/InlineLink.module.js +3 -2
  135. package/esm/Label/Label.js +1 -1
  136. package/esm/Label/Label.js.map +1 -1
  137. package/esm/Label/Label.module.js +6 -5
  138. package/esm/Link/Link.d.ts +1 -1
  139. package/esm/Link/Link.d.ts.map +1 -1
  140. package/esm/Link/Link.js +2 -2
  141. package/esm/Link/Link.js.map +1 -1
  142. package/esm/Link/Link.module.js +4 -3
  143. package/esm/LogoSuite/LogoSuite.d.ts +1 -1
  144. package/esm/LogoSuite/LogoSuite.js +4 -3
  145. package/esm/LogoSuite/LogoSuite.js.map +1 -1
  146. package/esm/LogoSuite/LogoSuite.module.js +11 -10
  147. package/esm/MediaPlaylist/MediaPlaylist.d.ts +4 -4
  148. package/esm/MediaPlaylist/MediaPlaylist.d.ts.map +1 -1
  149. package/esm/MediaPlaylist/MediaPlaylist.js +1 -1
  150. package/esm/MediaPlaylist/MediaPlaylist.js.map +1 -1
  151. package/esm/MediaPlaylist/MediaPlaylist.module.js +25 -24
  152. package/esm/MediaPlaylist/useMediaPlaylist.js.map +1 -1
  153. package/esm/MinimalFooter/MinimalFooter.d.ts +3 -3
  154. package/esm/MinimalFooter/MinimalFooter.d.ts.map +1 -1
  155. package/esm/MinimalFooter/MinimalFooter.js +4 -3
  156. package/esm/MinimalFooter/MinimalFooter.js.map +1 -1
  157. package/esm/MinimalFooter/MinimalFooter.module.js +15 -14
  158. package/esm/MinimalVideoPlayer/MinimalVideoPlayer.js +2 -2
  159. package/esm/MinimalVideoPlayer/MinimalVideoPlayer.js.map +1 -1
  160. package/esm/MinimalVideoPlayer/MinimalVideoPlayer.module.js +6 -5
  161. package/esm/MinimalVideoPlayer/useMinimalVideoPlayback.js.map +1 -1
  162. package/esm/NavList/NavList.js +2 -2
  163. package/esm/NavList/NavList.js.map +1 -1
  164. package/esm/NavList/NavList.module.js +18 -17
  165. package/esm/Pagination/Pagination.d.ts +1 -1
  166. package/esm/Pagination/Pagination.d.ts.map +1 -1
  167. package/esm/Pagination/Pagination.js +1 -1
  168. package/esm/Pagination/Pagination.js.map +1 -1
  169. package/esm/Pagination/Pagination.module.js +11 -10
  170. package/esm/Pagination/model.js.map +1 -1
  171. package/esm/Pillar/Pillar.d.ts +2 -2
  172. package/esm/Pillar/Pillar.d.ts.map +1 -1
  173. package/esm/Pillar/Pillar.js +1 -1
  174. package/esm/Pillar/Pillar.js.map +1 -1
  175. package/esm/Pillar/Pillar.module.js +9 -8
  176. package/esm/PricingOptions/PricingOptions.d.ts +1 -1
  177. package/esm/PricingOptions/PricingOptions.js +5 -3
  178. package/esm/PricingOptions/PricingOptions.js.map +1 -1
  179. package/esm/PricingOptions/PricingOptions.module.js +13 -12
  180. package/esm/Prose/Prose.js +1 -1
  181. package/esm/Prose/Prose.js.map +1 -1
  182. package/esm/Prose/Prose.module.js +4 -3
  183. package/esm/Section/Section.js +1 -1
  184. package/esm/Section/Section.js.map +1 -1
  185. package/esm/Section/Section.module.js +5 -4
  186. package/esm/SectionIntro/SectionIntro.js +1 -1
  187. package/esm/SectionIntro/SectionIntro.js.map +1 -1
  188. package/esm/SectionIntro/SectionIntro.module.js +4 -3
  189. package/esm/SectionIntroStacked/SectionIntroStacked.d.ts +3 -3
  190. package/esm/SectionIntroStacked/SectionIntroStacked.js +1 -1
  191. package/esm/SectionIntroStacked/SectionIntroStacked.js.map +1 -1
  192. package/esm/SectionIntroStacked/SectionIntroStacked.module.js +6 -5
  193. package/esm/Stack/Stack.js +1 -1
  194. package/esm/Stack/Stack.js.map +1 -1
  195. package/esm/Stack/Stack.module.js +4 -3
  196. package/esm/Statistic/Statistic.js +1 -1
  197. package/esm/Statistic/Statistic.js.map +1 -1
  198. package/esm/Statistic/Statistic.module.js +6 -5
  199. package/esm/SubNav/SubNav.d.ts +4 -4
  200. package/esm/SubNav/SubNav.d.ts.map +1 -1
  201. package/esm/SubNav/SubNav.js +6 -4
  202. package/esm/SubNav/SubNav.js.map +1 -1
  203. package/esm/SubNav/SubNav.module.js +9 -8
  204. package/esm/SubNav/useContainsFocus.js.map +1 -1
  205. package/esm/SubdomainNavBar/NavigationVisbilityObserver.d.ts +3 -1
  206. package/esm/SubdomainNavBar/NavigationVisbilityObserver.d.ts.map +1 -1
  207. package/esm/SubdomainNavBar/NavigationVisbilityObserver.js +117 -64
  208. package/esm/SubdomainNavBar/NavigationVisbilityObserver.js.map +1 -1
  209. package/esm/SubdomainNavBar/SubdomainNavBar.d.ts +157 -20
  210. package/esm/SubdomainNavBar/SubdomainNavBar.d.ts.map +1 -1
  211. package/esm/SubdomainNavBar/SubdomainNavBar.js +479 -299
  212. package/esm/SubdomainNavBar/SubdomainNavBar.js.map +1 -1
  213. package/esm/SubdomainNavBar/SubdomainNavBar.module-WIrpYyjV.css +1 -0
  214. package/esm/SubdomainNavBar/SubdomainNavBar.module.js +36 -11
  215. package/esm/SubdomainNavBar/SubdomainNavBar.module.js.map +1 -1
  216. package/esm/SubdomainNavBar/SubdomainNavBarLinkContext.d.ts +9 -0
  217. package/esm/SubdomainNavBar/SubdomainNavBarLinkContext.d.ts.map +1 -0
  218. package/esm/SubdomainNavBar/SubdomainNavBarLinkContext.js +10 -0
  219. package/esm/SubdomainNavBar/SubdomainNavBarLinkContext.js.map +1 -0
  220. package/esm/SubdomainNavBar/useSearchKeyboardShortcut.d.ts +8 -0
  221. package/esm/SubdomainNavBar/useSearchKeyboardShortcut.d.ts.map +1 -0
  222. package/esm/SubdomainNavBar/useSearchKeyboardShortcut.js +52 -0
  223. package/esm/SubdomainNavBar/useSearchKeyboardShortcut.js.map +1 -0
  224. package/esm/SubdomainNavBar/useSearchResults.d.ts +24 -0
  225. package/esm/SubdomainNavBar/useSearchResults.d.ts.map +1 -0
  226. package/esm/SubdomainNavBar/useSearchResults.js +57 -0
  227. package/esm/SubdomainNavBar/useSearchResults.js.map +1 -0
  228. package/esm/SubdomainNavBar/useVisibilityObserver.d.ts +1 -1
  229. package/esm/SubdomainNavBar/useVisibilityObserver.d.ts.map +1 -1
  230. package/esm/SubdomainNavBar/useVisibilityObserver.js +60 -23
  231. package/esm/SubdomainNavBar/useVisibilityObserver.js.map +1 -1
  232. package/esm/Tabs/Tabs.js +3 -2
  233. package/esm/Tabs/Tabs.js.map +1 -1
  234. package/esm/Tabs/Tabs.module.js +12 -11
  235. package/esm/Testimonial/Testimonial.d.ts +1 -1
  236. package/esm/Testimonial/Testimonial.d.ts.map +1 -1
  237. package/esm/Testimonial/Testimonial.js +1 -1
  238. package/esm/Testimonial/Testimonial.js.map +1 -1
  239. package/esm/Testimonial/Testimonial.module.js +8 -7
  240. package/esm/Text/Text.d.ts +1 -1
  241. package/esm/Text/Text.d.ts.map +1 -1
  242. package/esm/Text/Text.js +1 -1
  243. package/esm/Text/Text.js.map +1 -1
  244. package/esm/Text/Text.module.js +4 -3
  245. package/esm/TextCursorAnimation/TextCursorAnimation.d.ts +1 -1
  246. package/esm/TextCursorAnimation/TextCursorAnimation.d.ts.map +1 -1
  247. package/esm/TextCursorAnimation/TextCursorAnimation.js +1 -1
  248. package/esm/TextCursorAnimation/TextCursorAnimation.js.map +1 -1
  249. package/esm/TextCursorAnimation/TextCursorAnimation.module.js +10 -9
  250. package/esm/ThemeProvider/ThemeProvider.d.ts +1 -1
  251. package/esm/ThemeProvider/ThemeProvider.d.ts.map +1 -1
  252. package/esm/ThemeProvider/ThemeProvider.js +4 -4
  253. package/esm/ThemeProvider/ThemeProvider.js.map +1 -1
  254. package/esm/ThemeProvider/useTheme.js.map +1 -1
  255. package/esm/Tiles/Tiles.js +2 -2
  256. package/esm/Tiles/Tiles.js.map +1 -1
  257. package/esm/Tiles/Tiles.module.js +4 -3
  258. package/esm/Timeline/Timeline.d.ts +3 -3
  259. package/esm/Timeline/Timeline.d.ts.map +1 -1
  260. package/esm/Timeline/Timeline.js +2 -2
  261. package/esm/Timeline/Timeline.js.map +1 -1
  262. package/esm/Timeline/Timeline.module.js +5 -4
  263. package/esm/Token/Token.js +1 -1
  264. package/esm/Token/Token.js.map +1 -1
  265. package/esm/Token/Token.module.js +6 -5
  266. package/esm/Tooltip/Tooltip.js +2 -2
  267. package/esm/Tooltip/Tooltip.js.map +1 -1
  268. package/esm/Tooltip/Tooltip.module.js +4 -3
  269. package/esm/VideoPlayer/VideoPlayer.d.ts +2 -2
  270. package/esm/VideoPlayer/VideoPlayer.js +2 -2
  271. package/esm/VideoPlayer/VideoPlayer.js.map +1 -1
  272. package/esm/VideoPlayer/VideoPlayer.module.js +29 -28
  273. package/esm/VideoPlayer/components/CCButton/CCButton.d.ts +2 -2
  274. package/esm/VideoPlayer/components/CCButton/CCButton.d.ts.map +1 -1
  275. package/esm/VideoPlayer/components/CCButton/CCButton.js +1 -1
  276. package/esm/VideoPlayer/components/CCButton/CCButton.js.map +1 -1
  277. package/esm/VideoPlayer/components/Captions/Captions.d.ts +2 -2
  278. package/esm/VideoPlayer/components/Captions/Captions.d.ts.map +1 -1
  279. package/esm/VideoPlayer/components/Captions/Captions.js +1 -1
  280. package/esm/VideoPlayer/components/Captions/Captions.js.map +1 -1
  281. package/esm/VideoPlayer/components/Captions/Captions.module.js +5 -4
  282. package/esm/VideoPlayer/components/ControlsBar/ControlsBar.d.ts +2 -2
  283. package/esm/VideoPlayer/components/ControlsBar/ControlsBar.d.ts.map +1 -1
  284. package/esm/VideoPlayer/components/ControlsBar/ControlsBar.js +1 -1
  285. package/esm/VideoPlayer/components/ControlsBar/ControlsBar.js.map +1 -1
  286. package/esm/VideoPlayer/components/FullScreenButton/FullScreenButton.d.ts +2 -2
  287. package/esm/VideoPlayer/components/FullScreenButton/FullScreenButton.d.ts.map +1 -1
  288. package/esm/VideoPlayer/components/FullScreenButton/FullScreenButton.js +2 -1
  289. package/esm/VideoPlayer/components/FullScreenButton/FullScreenButton.js.map +1 -1
  290. package/esm/VideoPlayer/components/IconControl/IconControl.d.ts +2 -2
  291. package/esm/VideoPlayer/components/IconControl/IconControl.d.ts.map +1 -1
  292. package/esm/VideoPlayer/components/IconControl/IconControl.js +1 -1
  293. package/esm/VideoPlayer/components/IconControl/IconControl.js.map +1 -1
  294. package/esm/VideoPlayer/components/MuteButton/MuteButton.d.ts +2 -2
  295. package/esm/VideoPlayer/components/MuteButton/MuteButton.d.ts.map +1 -1
  296. package/esm/VideoPlayer/components/MuteButton/MuteButton.js +2 -1
  297. package/esm/VideoPlayer/components/MuteButton/MuteButton.js.map +1 -1
  298. package/esm/VideoPlayer/components/PauseIcon/PauseIcon.d.ts +2 -2
  299. package/esm/VideoPlayer/components/PauseIcon/PauseIcon.d.ts.map +1 -1
  300. package/esm/VideoPlayer/components/PauseIcon/PauseIcon.js.map +1 -1
  301. package/esm/VideoPlayer/components/PlayIcon/PlayIcon.d.ts +2 -2
  302. package/esm/VideoPlayer/components/PlayIcon/PlayIcon.d.ts.map +1 -1
  303. package/esm/VideoPlayer/components/PlayIcon/PlayIcon.js.map +1 -1
  304. package/esm/VideoPlayer/components/PlayPauseButton/PlayPauseButton.d.ts +2 -2
  305. package/esm/VideoPlayer/components/PlayPauseButton/PlayPauseButton.d.ts.map +1 -1
  306. package/esm/VideoPlayer/components/PlayPauseButton/PlayPauseButton.js.map +1 -1
  307. package/esm/VideoPlayer/components/Range/Range.d.ts +1 -1
  308. package/esm/VideoPlayer/components/Range/Range.d.ts.map +1 -1
  309. package/esm/VideoPlayer/components/Range/Range.js +1 -1
  310. package/esm/VideoPlayer/components/Range/Range.js.map +1 -1
  311. package/esm/VideoPlayer/components/SeekControl/SeekControl.d.ts +2 -2
  312. package/esm/VideoPlayer/components/SeekControl/SeekControl.d.ts.map +1 -1
  313. package/esm/VideoPlayer/components/SeekControl/SeekControl.js +1 -1
  314. package/esm/VideoPlayer/components/SeekControl/SeekControl.js.map +1 -1
  315. package/esm/VideoPlayer/components/VideoTooltip/VideoTooltip.d.ts +2 -2
  316. package/esm/VideoPlayer/components/VideoTooltip/VideoTooltip.d.ts.map +1 -1
  317. package/esm/VideoPlayer/components/VideoTooltip/VideoTooltip.js +3 -2
  318. package/esm/VideoPlayer/components/VideoTooltip/VideoTooltip.js.map +1 -1
  319. package/esm/VideoPlayer/components/VolumeControl/VolumeControl.d.ts +2 -1
  320. package/esm/VideoPlayer/components/VolumeControl/VolumeControl.d.ts.map +1 -1
  321. package/esm/VideoPlayer/components/VolumeControl/VolumeControl.js.map +1 -1
  322. package/esm/VideoPlayer/components/VolumeControl/VolumeControl.module.js +3 -2
  323. package/esm/VideoPlayer/hooks/useIsElementFullScreen.js.map +1 -1
  324. package/esm/VideoPlayer/hooks/useVideo.js.map +1 -1
  325. package/esm/VideoPlayer/hooks/useVideoResizeObserver.js.map +1 -1
  326. package/esm/animation/Animate/Animate.d.ts +1 -1
  327. package/esm/animation/Animate/Animate.d.ts.map +1 -1
  328. package/esm/animation/Animate/Animate.js +1 -1
  329. package/esm/animation/Animate/Animate.js.map +1 -1
  330. package/esm/animation/Animation.module.js +4 -3
  331. package/esm/animation/AnimationProvider/AnimationProvider.d.ts +1 -1
  332. package/esm/animation/AnimationProvider/AnimationProvider.d.ts.map +1 -1
  333. package/esm/animation/AnimationProvider/AnimationProvider.js.map +1 -1
  334. package/esm/animation/TextRevealAnimation/TextRevealAnimation.js +1 -1
  335. package/esm/animation/TextRevealAnimation/TextRevealAnimation.js.map +1 -1
  336. package/esm/animation/TextRevealAnimation/TextRevealAnimation.module.js +5 -4
  337. package/esm/animation/TextRevealAnimation/useTextRevealAnimationLines.js.map +1 -1
  338. package/esm/animation/useAnimation.js.map +1 -1
  339. package/esm/component-helpers/shared.module.js +3 -2
  340. package/esm/component-helpers.d.ts +2 -2
  341. package/esm/component-helpers.d.ts.map +1 -1
  342. package/esm/constants.js.map +1 -1
  343. package/esm/css/stylesheets.js +1 -1
  344. package/esm/findElementInChildren.js.map +1 -1
  345. package/esm/forms/Checkbox/Checkbox.js +2 -2
  346. package/esm/forms/Checkbox/Checkbox.js.map +1 -1
  347. package/esm/forms/Checkbox/Checkbox.module.js +4 -3
  348. package/esm/forms/ControlGroup/ControlGroup.js +3 -2
  349. package/esm/forms/ControlGroup/ControlGroup.js.map +1 -1
  350. package/esm/forms/ControlGroup/ControlGroup.module.js +7 -6
  351. package/esm/forms/FormControl/FormControl.d.ts +5 -5
  352. package/esm/forms/FormControl/FormControl.d.ts.map +1 -1
  353. package/esm/forms/FormControl/FormControl.js +4 -3
  354. package/esm/forms/FormControl/FormControl.js.map +1 -1
  355. package/esm/forms/FormControl/FormControl.module.js +5 -4
  356. package/esm/forms/Radio/Radio.js +1 -1
  357. package/esm/forms/Radio/Radio.js.map +1 -1
  358. package/esm/forms/Radio/Radio.module.js +4 -3
  359. package/esm/forms/Select/Select.d.ts +2 -2
  360. package/esm/forms/Select/Select.js +1 -1
  361. package/esm/forms/Select/Select.js.map +1 -1
  362. package/esm/forms/Select/Select.module.js +4 -3
  363. package/esm/forms/TextInput/TextInput.js +1 -1
  364. package/esm/forms/TextInput/TextInput.js.map +1 -1
  365. package/esm/forms/TextInput/TextInput.module.js +5 -4
  366. package/esm/forms/Textarea/Textarea.js +1 -1
  367. package/esm/forms/Textarea/Textarea.js.map +1 -1
  368. package/esm/forms/Textarea/Textarea.module.js +4 -3
  369. package/esm/hooks/useAnchoredPosition.js +7 -4
  370. package/esm/hooks/useAnchoredPosition.js.map +1 -1
  371. package/esm/hooks/useCursorAnimation.js +4 -2
  372. package/esm/hooks/useCursorAnimation.js.map +1 -1
  373. package/esm/hooks/useFocusTrap.js.map +1 -1
  374. package/esm/hooks/useId.js.map +1 -1
  375. package/esm/hooks/useKeyboardEscape.js.map +1 -1
  376. package/esm/hooks/useOnClickOutside.js.map +1 -1
  377. package/esm/hooks/useReducedMotion.js +1 -1
  378. package/esm/hooks/useReducedMotion.js.map +1 -1
  379. package/esm/hooks/useRef.js.map +1 -1
  380. package/esm/hooks/useResizeObserver.js.map +1 -1
  381. package/esm/hooks/useTabs.js +1 -1
  382. package/esm/hooks/useTabs.js.map +1 -1
  383. package/esm/hooks/useWindowSize.js +7 -7
  384. package/esm/hooks/useWindowSize.js.map +1 -1
  385. package/esm/list/ListItem/ListItem.js +4 -2
  386. package/esm/list/ListItem/ListItem.js.map +1 -1
  387. package/esm/list/ListItem/ListItem.module.js +5 -4
  388. package/esm/list/OrderedList/OrderedList.d.ts +2 -2
  389. package/esm/list/OrderedList/OrderedList.d.ts.map +1 -1
  390. package/esm/list/OrderedList/OrderedList.js +1 -1
  391. package/esm/list/OrderedList/OrderedList.js.map +1 -1
  392. package/esm/list/OrderedList/OrderedList.module.js +3 -2
  393. package/esm/list/UnorderedList/UnorderedList.d.ts +2 -2
  394. package/esm/list/UnorderedList/UnorderedList.d.ts.map +1 -1
  395. package/esm/list/UnorderedList/UnorderedList.js +1 -1
  396. package/esm/list/UnorderedList/UnorderedList.js.map +1 -1
  397. package/esm/list/list-shared.module.js +3 -2
  398. package/esm/list/listContext.js.map +1 -1
  399. package/esm/node_modules/@primer/octicons-react/dist/icons/AlertFillIcon.js +28 -0
  400. package/esm/node_modules/@primer/octicons-react/dist/icons/AlertFillIcon.js.map +1 -0
  401. package/esm/node_modules/@primer/octicons-react/dist/icons/ArrowUpIcon.js +20 -0
  402. package/esm/node_modules/@primer/octicons-react/dist/icons/ArrowUpIcon.js.map +1 -0
  403. package/esm/node_modules/@primer/octicons-react/dist/icons/ArrowUpRightIcon.js +20 -0
  404. package/esm/node_modules/@primer/octicons-react/dist/icons/ArrowUpRightIcon.js.map +1 -0
  405. package/esm/node_modules/@primer/octicons-react/dist/icons/CheckCircleFillIcon.js +28 -0
  406. package/esm/node_modules/@primer/octicons-react/dist/icons/CheckCircleFillIcon.js.map +1 -0
  407. package/esm/node_modules/@primer/octicons-react/dist/icons/CheckIcon.js +20 -0
  408. package/esm/node_modules/@primer/octicons-react/dist/icons/CheckIcon.js.map +1 -0
  409. package/esm/node_modules/@primer/octicons-react/dist/icons/ChevronDownIcon.js +28 -0
  410. package/esm/node_modules/@primer/octicons-react/dist/icons/ChevronDownIcon.js.map +1 -0
  411. package/esm/node_modules/@primer/octicons-react/dist/icons/ChevronLeftIcon.js +28 -0
  412. package/esm/node_modules/@primer/octicons-react/dist/icons/ChevronLeftIcon.js.map +1 -0
  413. package/esm/node_modules/@primer/octicons-react/dist/icons/ChevronRightIcon.js +28 -0
  414. package/esm/node_modules/@primer/octicons-react/dist/icons/ChevronRightIcon.js.map +1 -0
  415. package/esm/node_modules/@primer/octicons-react/dist/icons/ChevronUpIcon.js +28 -0
  416. package/esm/node_modules/@primer/octicons-react/dist/icons/ChevronUpIcon.js.map +1 -0
  417. package/esm/node_modules/@primer/octicons-react/dist/icons/CopilotIcon.js +33 -0
  418. package/esm/node_modules/@primer/octicons-react/dist/icons/CopilotIcon.js.map +1 -0
  419. package/esm/node_modules/@primer/octicons-react/dist/icons/DashIcon.js +20 -0
  420. package/esm/node_modules/@primer/octicons-react/dist/icons/DashIcon.js.map +1 -0
  421. package/esm/node_modules/@primer/octicons-react/dist/icons/LinkExternalIcon.js +20 -0
  422. package/esm/node_modules/@primer/octicons-react/dist/icons/LinkExternalIcon.js.map +1 -0
  423. package/esm/node_modules/@primer/octicons-react/dist/icons/MarkGithubIcon.js +20 -0
  424. package/esm/node_modules/@primer/octicons-react/dist/icons/MarkGithubIcon.js.map +1 -0
  425. package/esm/node_modules/@primer/octicons-react/dist/icons/MuteIcon.js +20 -0
  426. package/esm/node_modules/@primer/octicons-react/dist/icons/MuteIcon.js.map +1 -0
  427. package/esm/node_modules/@primer/octicons-react/dist/icons/PaperAirplaneIcon.js +20 -0
  428. package/esm/node_modules/@primer/octicons-react/dist/icons/PaperAirplaneIcon.js.map +1 -0
  429. package/esm/node_modules/@primer/octicons-react/dist/icons/PauseIcon.js +20 -0
  430. package/esm/node_modules/@primer/octicons-react/dist/icons/PauseIcon.js.map +1 -0
  431. package/esm/node_modules/@primer/octicons-react/dist/icons/PlayIcon.js +20 -0
  432. package/esm/node_modules/@primer/octicons-react/dist/icons/PlayIcon.js.map +1 -0
  433. package/esm/node_modules/@primer/octicons-react/dist/icons/ReplyIcon.js +20 -0
  434. package/esm/node_modules/@primer/octicons-react/dist/icons/ReplyIcon.js.map +1 -0
  435. package/esm/node_modules/@primer/octicons-react/dist/icons/ScreenFullIcon.js +20 -0
  436. package/esm/node_modules/@primer/octicons-react/dist/icons/ScreenFullIcon.js.map +1 -0
  437. package/esm/node_modules/@primer/octicons-react/dist/icons/ScreenNormalIcon.js +20 -0
  438. package/esm/node_modules/@primer/octicons-react/dist/icons/ScreenNormalIcon.js.map +1 -0
  439. package/esm/node_modules/@primer/octicons-react/dist/icons/SearchIcon.js +20 -0
  440. package/esm/node_modules/@primer/octicons-react/dist/icons/SearchIcon.js.map +1 -0
  441. package/esm/node_modules/@primer/octicons-react/dist/icons/TriangleDownIcon.js +20 -0
  442. package/esm/node_modules/@primer/octicons-react/dist/icons/TriangleDownIcon.js.map +1 -0
  443. package/esm/node_modules/@primer/octicons-react/dist/icons/TriangleUpIcon.js +20 -0
  444. package/esm/node_modules/@primer/octicons-react/dist/icons/TriangleUpIcon.js.map +1 -0
  445. package/esm/node_modules/@primer/octicons-react/dist/icons/UnmuteIcon.js +20 -0
  446. package/esm/node_modules/@primer/octicons-react/dist/icons/UnmuteIcon.js.map +1 -0
  447. package/esm/node_modules/@primer/octicons-react/dist/icons/XIcon.js +28 -0
  448. package/esm/node_modules/@primer/octicons-react/dist/icons/XIcon.js.map +1 -0
  449. package/esm/node_modules/@primer/octicons-react/dist/renderOcticon-DuMQdmQC.js +132 -0
  450. package/esm/node_modules/@primer/octicons-react/dist/renderOcticon-DuMQdmQC.js.map +1 -0
  451. package/esm/node_modules/clsx/dist/clsx.js +1 -1
  452. package/esm/node_modules/clsx/dist/clsx.js.map +1 -1
  453. package/esm/packages/design-tokens/lib/design-tokens/css/tokens/functional/components/subdomain-nav-bar/colors-with-modes-BGj0AiDW.css +1 -0
  454. package/esm/river/River/River.js +2 -2
  455. package/esm/river/River/River.js.map +1 -1
  456. package/esm/river/RiverAccordion/RiverAccordion.d.ts +4 -4
  457. package/esm/river/RiverAccordion/RiverAccordion.js +3 -2
  458. package/esm/river/RiverAccordion/RiverAccordion.js.map +1 -1
  459. package/esm/river/RiverAccordion/RiverAccordion.module.js +16 -15
  460. package/esm/river/RiverBreakout/RiverBreakout.d.ts +1 -1
  461. package/esm/river/RiverBreakout/RiverBreakout.js +1 -1
  462. package/esm/river/RiverBreakout/RiverBreakout.js.map +1 -1
  463. package/esm/river/RiverBreakoutTabs/RiverBreakoutTabs.d.ts +5 -5
  464. package/esm/river/RiverBreakoutTabs/RiverBreakoutTabs.js +2 -2
  465. package/esm/river/RiverBreakoutTabs/RiverBreakoutTabs.js.map +1 -1
  466. package/esm/river/RiverBreakoutTabs/RiverBreakoutTabs.module.js +31 -30
  467. package/esm/river/RiverStoryScroll/RiverStoryScroll.d.ts +1 -1
  468. package/esm/river/RiverStoryScroll/RiverStoryScroll.d.ts.map +1 -1
  469. package/esm/river/RiverStoryScroll/RiverStoryScroll.js +5 -3
  470. package/esm/river/RiverStoryScroll/RiverStoryScroll.js.map +1 -1
  471. package/esm/river/RiverStoryScroll/RiverStoryScroll.module.js +8 -7
  472. package/esm/river/RiverStoryScroll/RiverStoryScrollProvider.d.ts +2 -2
  473. package/esm/river/RiverStoryScroll/RiverStoryScrollProvider.d.ts.map +1 -1
  474. package/esm/river/RiverStoryScroll/RiverStoryScrollProvider.js.map +1 -1
  475. package/esm/river/RiverStoryScroll/RiverStoryScrollResponder.d.ts +1 -1
  476. package/esm/river/RiverStoryScroll/RiverStoryScrollResponder.d.ts.map +1 -1
  477. package/esm/river/RiverStoryScroll/RiverStoryScrollResponder.js +1 -1
  478. package/esm/river/RiverStoryScroll/RiverStoryScrollResponder.js.map +1 -1
  479. package/esm/river/RiverStoryScroll/RiverStoryScrollTracker.d.ts +1 -1
  480. package/esm/river/RiverStoryScroll/RiverStoryScrollTracker.d.ts.map +1 -1
  481. package/esm/river/RiverStoryScroll/RiverStoryScrollTracker.js +1 -1
  482. package/esm/river/RiverStoryScroll/RiverStoryScrollTracker.js.map +1 -1
  483. package/esm/river/river-shared.module.js +13 -12
  484. package/esm/utils/getTextContent.js.map +1 -1
  485. package/esm/utils/isFragmentElement.js.map +1 -1
  486. package/lib/Accordion/Accordion.d.ts +2 -2
  487. package/lib/ActionMenu/ActionMenu.d.ts +2 -2
  488. package/lib/AnchorNav/AnchorNav.d.ts +4 -4
  489. package/lib/Bento/Bento.d.ts +4 -4
  490. package/lib/Box/Box.d.ts +1 -1
  491. package/lib/CTABanner/CTABanner.d.ts +1 -1
  492. package/lib/Card/Card.d.ts +2 -2
  493. package/lib/ComparisonTable/ComparisonTable.d.ts +3 -3
  494. package/lib/ExpandableArrow/ExpandableArrow.d.ts +2 -1
  495. package/lib/FAQ/FAQ.d.ts +2 -2
  496. package/lib/FAQ/FAQGroup.d.ts +2 -2
  497. package/lib/Footnotes/Footnotes.d.ts +2 -2
  498. package/lib/FrostedGlassVFX/FrostedGlassVFX.d.ts +1 -1
  499. package/lib/Grid/Grid.d.ts +2 -2
  500. package/lib/IDE/IDE.d.ts +1 -1
  501. package/lib/Icon/Icon.d.ts +2 -2
  502. package/lib/Image/Image.d.ts +1 -1
  503. package/lib/Link/Link.d.ts +1 -1
  504. package/lib/LogoSuite/LogoSuite.d.ts +1 -1
  505. package/lib/MediaPlaylist/MediaPlaylist.d.ts +4 -4
  506. package/lib/MinimalFooter/MinimalFooter.d.ts +3 -3
  507. package/lib/Pagination/Pagination.d.ts +1 -1
  508. package/lib/Pillar/Pillar.d.ts +2 -2
  509. package/lib/PricingOptions/PricingOptions.d.ts +1 -1
  510. package/lib/SectionIntroStacked/SectionIntroStacked.d.ts +3 -3
  511. package/lib/SubNav/SubNav.d.ts +4 -4
  512. package/lib/SubdomainNavBar/NavigationVisbilityObserver.d.ts +3 -1
  513. package/lib/SubdomainNavBar/SubdomainNavBar.d.ts +157 -20
  514. package/lib/SubdomainNavBar/SubdomainNavBarLinkContext.d.ts +8 -0
  515. package/lib/SubdomainNavBar/useSearchKeyboardShortcut.d.ts +7 -0
  516. package/lib/SubdomainNavBar/useSearchResults.d.ts +23 -0
  517. package/lib/SubdomainNavBar/useVisibilityObserver.d.ts +1 -1
  518. package/lib/Testimonial/Testimonial.d.ts +1 -1
  519. package/lib/Text/Text.d.ts +1 -1
  520. package/lib/TextCursorAnimation/TextCursorAnimation.d.ts +1 -1
  521. package/lib/ThemeProvider/ThemeProvider.d.ts +1 -1
  522. package/lib/Timeline/Timeline.d.ts +3 -3
  523. package/lib/VideoPlayer/VideoPlayer.d.ts +2 -2
  524. package/lib/VideoPlayer/components/CCButton/CCButton.d.ts +2 -2
  525. package/lib/VideoPlayer/components/Captions/Captions.d.ts +2 -2
  526. package/lib/VideoPlayer/components/ControlsBar/ControlsBar.d.ts +2 -2
  527. package/lib/VideoPlayer/components/FullScreenButton/FullScreenButton.d.ts +2 -2
  528. package/lib/VideoPlayer/components/IconControl/IconControl.d.ts +2 -2
  529. package/lib/VideoPlayer/components/MuteButton/MuteButton.d.ts +2 -2
  530. package/lib/VideoPlayer/components/PauseIcon/PauseIcon.d.ts +2 -2
  531. package/lib/VideoPlayer/components/PlayIcon/PlayIcon.d.ts +2 -2
  532. package/lib/VideoPlayer/components/PlayPauseButton/PlayPauseButton.d.ts +2 -2
  533. package/lib/VideoPlayer/components/Range/Range.d.ts +1 -1
  534. package/lib/VideoPlayer/components/SeekControl/SeekControl.d.ts +2 -2
  535. package/lib/VideoPlayer/components/VideoTooltip/VideoTooltip.d.ts +2 -2
  536. package/lib/VideoPlayer/components/VolumeControl/VolumeControl.d.ts +2 -1
  537. package/lib/animation/Animate/Animate.d.ts +1 -1
  538. package/lib/animation/AnimationProvider/AnimationProvider.d.ts +1 -1
  539. package/lib/component-helpers.d.ts +2 -2
  540. package/lib/css/main.css +1390 -1056
  541. package/lib/design-tokens/css/tokens/base/colors/color-scales-with-modes.css +1 -1
  542. package/lib/design-tokens/css/tokens/base/colors/light.css +1 -1
  543. package/lib/design-tokens/css/tokens/base/size/size.css +1 -1
  544. package/lib/design-tokens/css/tokens/base/typography/typography.css +1 -1
  545. package/lib/design-tokens/css/tokens/functional/animation/base.css +1 -1
  546. package/lib/design-tokens/css/tokens/functional/colors/global-with-modes.css +1 -1
  547. package/lib/design-tokens/css/tokens/functional/colors/global.css +1 -1
  548. package/lib/design-tokens/css/tokens/functional/components/accordion/colors-with-modes.css +1 -1
  549. package/lib/design-tokens/css/tokens/functional/components/action-menu/colors-with-modes.css +1 -1
  550. package/lib/design-tokens/css/tokens/functional/components/anchor-nav/colors-with-modes.css +1 -1
  551. package/lib/design-tokens/css/tokens/functional/components/bento/base.css +1 -1
  552. package/lib/design-tokens/css/tokens/functional/components/blinking-cursor/colors-with-modes.css +1 -1
  553. package/lib/design-tokens/css/tokens/functional/components/breadcrumbs/colors-with-modes.css +1 -1
  554. package/lib/design-tokens/css/tokens/functional/components/button/colors-with-modes.css +1 -1
  555. package/lib/design-tokens/css/tokens/functional/components/card/base.css +1 -1
  556. package/lib/design-tokens/css/tokens/functional/components/card/colors-with-modes.css +1 -1
  557. package/lib/design-tokens/css/tokens/functional/components/card/colors.css +1 -1
  558. package/lib/design-tokens/css/tokens/functional/components/comparison-table/colors-with-modes.css +1 -1
  559. package/lib/design-tokens/css/tokens/functional/components/comparison-table/comparison-table.css +1 -1
  560. package/lib/design-tokens/css/tokens/functional/components/control/colors-with-modes.css +1 -1
  561. package/lib/design-tokens/css/tokens/functional/components/cta-banner/colors-with-modes.css +1 -1
  562. package/lib/design-tokens/css/tokens/functional/components/eyebrow-banner/colors-with-modes.css +1 -1
  563. package/lib/design-tokens/css/tokens/functional/components/eyebrow-banner/eyebrow-banner.css +1 -1
  564. package/lib/design-tokens/css/tokens/functional/components/faq/base.css +1 -1
  565. package/lib/design-tokens/css/tokens/functional/components/faq/colors-with-modes.css +1 -1
  566. package/lib/design-tokens/css/tokens/functional/components/faq/colors.css +1 -1
  567. package/lib/design-tokens/css/tokens/functional/components/faq/faq.css +1 -1
  568. package/lib/design-tokens/css/tokens/functional/components/footer/base.css +1 -1
  569. package/lib/design-tokens/css/tokens/functional/components/footer/colors-with-modes.css +1 -1
  570. package/lib/design-tokens/css/tokens/functional/components/footer/colors.css +1 -1
  571. package/lib/design-tokens/css/tokens/functional/components/frosted-glass-vfx/base.css +1 -1
  572. package/lib/design-tokens/css/tokens/functional/components/frosted-glass-vfx/colors-with-modes.css +1 -1
  573. package/lib/design-tokens/css/tokens/functional/components/grid/colors-with-modes.css +1 -1
  574. package/lib/design-tokens/css/tokens/functional/components/grid/colors.css +1 -1
  575. package/lib/design-tokens/css/tokens/functional/components/grid/grid.css +1 -1
  576. package/lib/design-tokens/css/tokens/functional/components/hero/base.css +1 -1
  577. package/lib/design-tokens/css/tokens/functional/components/icon/colors-with-modes.css +1 -1
  578. package/lib/design-tokens/css/tokens/functional/components/icon/colors.css +1 -1
  579. package/lib/design-tokens/css/tokens/functional/components/ide/base.css +1 -1
  580. package/lib/design-tokens/css/tokens/functional/components/ide/colors-with-modes.css +1 -1
  581. package/lib/design-tokens/css/tokens/functional/components/image/base.css +1 -1
  582. package/lib/design-tokens/css/tokens/functional/components/inline-code/colors-with-modes.css +1 -1
  583. package/lib/design-tokens/css/tokens/functional/components/inline-code/colors.css +1 -1
  584. package/lib/design-tokens/css/tokens/functional/components/inline-link/base.css +1 -1
  585. package/lib/design-tokens/css/tokens/functional/components/inline-link/colors-with-modes.css +1 -1
  586. package/lib/design-tokens/css/tokens/functional/components/inline-link/colors.css +1 -1
  587. package/lib/design-tokens/css/tokens/functional/components/label/colors-with-modes.css +1 -1
  588. package/lib/design-tokens/css/tokens/functional/components/label/colors.css +1 -1
  589. package/lib/design-tokens/css/tokens/functional/components/link/colors-with-modes.css +1 -1
  590. package/lib/design-tokens/css/tokens/functional/components/link/colors.css +1 -1
  591. package/lib/design-tokens/css/tokens/functional/components/logosuite/base.css +1 -1
  592. package/lib/design-tokens/css/tokens/functional/components/logosuite/colors-with-modes.css +1 -1
  593. package/lib/design-tokens/css/tokens/functional/components/logosuite/colors.css +1 -1
  594. package/lib/design-tokens/css/tokens/functional/components/media-playlist/colors-with-modes.css +1 -1
  595. package/lib/design-tokens/css/tokens/functional/components/media-playlist/colors.css +1 -1
  596. package/lib/design-tokens/css/tokens/functional/components/nav-list/colors-with-modes.css +1 -1
  597. package/lib/design-tokens/css/tokens/functional/components/pricing-options/colors-with-modes.css +1 -1
  598. package/lib/design-tokens/css/tokens/functional/components/pricing-options/colors.css +1 -1
  599. package/lib/design-tokens/css/tokens/functional/components/pricing-options/pricing-options.css +1 -1
  600. package/lib/design-tokens/css/tokens/functional/components/prose/base.css +1 -1
  601. package/lib/design-tokens/css/tokens/functional/components/prose/colors-with-modes.css +1 -1
  602. package/lib/design-tokens/css/tokens/functional/components/river/base.css +1 -1
  603. package/lib/design-tokens/css/tokens/functional/components/river/river.css +1 -1
  604. package/lib/design-tokens/css/tokens/functional/components/river-story-scroll/colors-with-modes.css +1 -1
  605. package/lib/design-tokens/css/tokens/functional/components/section/section.css +1 -1
  606. package/lib/design-tokens/css/tokens/functional/components/statistic/base.css +1 -1
  607. package/lib/design-tokens/css/tokens/functional/components/sub-nav/base.css +1 -1
  608. package/lib/design-tokens/css/tokens/functional/components/sub-nav/colors-with-modes.css +1 -1
  609. package/lib/design-tokens/css/tokens/functional/components/subdomain-nav-bar/colors-with-modes.css +7 -1
  610. package/lib/design-tokens/css/tokens/functional/components/tabs/base.css +1 -1
  611. package/lib/design-tokens/css/tokens/functional/components/tabs/colors-with-modes.css +1 -1
  612. package/lib/design-tokens/css/tokens/functional/components/tabs/colors.css +1 -1
  613. package/lib/design-tokens/css/tokens/functional/components/testimonial/base.css +1 -1
  614. package/lib/design-tokens/css/tokens/functional/components/testimonial/colors-with-modes.css +1 -1
  615. package/lib/design-tokens/css/tokens/functional/components/testimonial/colors.css +1 -1
  616. package/lib/design-tokens/css/tokens/functional/components/text-cursor-animation/base.css +1 -1
  617. package/lib/design-tokens/css/tokens/functional/components/text-cursor-animation/colors-with-modes.css +1 -1
  618. package/lib/design-tokens/css/tokens/functional/components/text-cursor-animation/colors.css +1 -1
  619. package/lib/design-tokens/css/tokens/functional/components/tiles/colors-with-modes.css +1 -1
  620. package/lib/design-tokens/css/tokens/functional/components/timeline/base.css +1 -1
  621. package/lib/design-tokens/css/tokens/functional/components/timeline/colors-with-modes.css +1 -1
  622. package/lib/design-tokens/css/tokens/functional/components/timeline/colors.css +1 -1
  623. package/lib/design-tokens/css/tokens/functional/components/token/colors-with-modes.css +1 -1
  624. package/lib/design-tokens/css/tokens/functional/components/token/colors.css +1 -1
  625. package/lib/design-tokens/css/tokens/functional/components/tooltip/colors-with-modes.css +1 -1
  626. package/lib/design-tokens/css/tokens/functional/components/tooltip/colors.css +1 -1
  627. package/lib/design-tokens/css/tokens/functional/components/video-player/base.css +1 -1
  628. package/lib/design-tokens/css/tokens/functional/components/video-player/colors-with-modes.css +1 -1
  629. package/lib/design-tokens/css/tokens/functional/size/border.css +1 -1
  630. package/lib/design-tokens/css/tokens/functional/size/breakpoints.css +1 -1
  631. package/lib/design-tokens/css/tokens/functional/size/size-coarse.css +1 -1
  632. package/lib/design-tokens/css/tokens/functional/size/size-fine.css +1 -1
  633. package/lib/design-tokens/css/tokens/functional/size/size.css +1 -1
  634. package/lib/design-tokens/css/tokens/functional/size/viewport.css +1 -1
  635. package/lib/design-tokens/css/tokens/functional/typography/typography-responsive.css +1 -1
  636. package/lib/design-tokens/css/tokens/functional/typography/typography.css +1 -1
  637. package/lib/design-tokens/js/module/tokens/base/colors/light.js +1 -1
  638. package/lib/design-tokens/js/module/tokens/base/size/size.js +1 -1
  639. package/lib/design-tokens/js/module/tokens/base/typography/typography.js +1 -1
  640. package/lib/design-tokens/js/module/tokens/functional/animation/base.js +1 -1
  641. package/lib/design-tokens/js/module/tokens/functional/colors/global.js +1 -1
  642. package/lib/design-tokens/js/module/tokens/functional/components/bento/base.js +1 -1
  643. package/lib/design-tokens/js/module/tokens/functional/components/card/base.js +1 -1
  644. package/lib/design-tokens/js/module/tokens/functional/components/card/colors.js +1 -1
  645. package/lib/design-tokens/js/module/tokens/functional/components/comparison-table/comparison-table.js +1 -1
  646. package/lib/design-tokens/js/module/tokens/functional/components/eyebrow-banner/eyebrow-banner.js +1 -1
  647. package/lib/design-tokens/js/module/tokens/functional/components/faq/base.js +1 -1
  648. package/lib/design-tokens/js/module/tokens/functional/components/faq/colors.js +1 -1
  649. package/lib/design-tokens/js/module/tokens/functional/components/faq/faq.js +1 -1
  650. package/lib/design-tokens/js/module/tokens/functional/components/footer/base.js +1 -1
  651. package/lib/design-tokens/js/module/tokens/functional/components/footer/colors.js +1 -1
  652. package/lib/design-tokens/js/module/tokens/functional/components/frosted-glass-vfx/base.js +1 -1
  653. package/lib/design-tokens/js/module/tokens/functional/components/grid/colors.js +1 -1
  654. package/lib/design-tokens/js/module/tokens/functional/components/grid/grid.js +1 -1
  655. package/lib/design-tokens/js/module/tokens/functional/components/hero/base.js +1 -1
  656. package/lib/design-tokens/js/module/tokens/functional/components/icon/colors.js +1 -1
  657. package/lib/design-tokens/js/module/tokens/functional/components/ide/base.js +1 -1
  658. package/lib/design-tokens/js/module/tokens/functional/components/image/base.js +1 -1
  659. package/lib/design-tokens/js/module/tokens/functional/components/inline-code/colors.js +1 -1
  660. package/lib/design-tokens/js/module/tokens/functional/components/inline-link/base.js +1 -1
  661. package/lib/design-tokens/js/module/tokens/functional/components/inline-link/colors.js +1 -1
  662. package/lib/design-tokens/js/module/tokens/functional/components/label/colors.js +1 -1
  663. package/lib/design-tokens/js/module/tokens/functional/components/link/colors.js +1 -1
  664. package/lib/design-tokens/js/module/tokens/functional/components/logosuite/base.js +1 -1
  665. package/lib/design-tokens/js/module/tokens/functional/components/logosuite/colors.js +1 -1
  666. package/lib/design-tokens/js/module/tokens/functional/components/media-playlist/colors.js +1 -1
  667. package/lib/design-tokens/js/module/tokens/functional/components/pricing-options/colors.js +1 -1
  668. package/lib/design-tokens/js/module/tokens/functional/components/pricing-options/pricing-options.js +1 -1
  669. package/lib/design-tokens/js/module/tokens/functional/components/prose/base.js +1 -1
  670. package/lib/design-tokens/js/module/tokens/functional/components/river/base.js +1 -1
  671. package/lib/design-tokens/js/module/tokens/functional/components/river/river.js +1 -1
  672. package/lib/design-tokens/js/module/tokens/functional/components/section/section.js +1 -1
  673. package/lib/design-tokens/js/module/tokens/functional/components/statistic/base.js +1 -1
  674. package/lib/design-tokens/js/module/tokens/functional/components/sub-nav/base.js +1 -1
  675. package/lib/design-tokens/js/module/tokens/functional/components/tabs/base.js +1 -1
  676. package/lib/design-tokens/js/module/tokens/functional/components/tabs/colors.js +1 -1
  677. package/lib/design-tokens/js/module/tokens/functional/components/testimonial/base.js +1 -1
  678. package/lib/design-tokens/js/module/tokens/functional/components/testimonial/colors.js +1 -1
  679. package/lib/design-tokens/js/module/tokens/functional/components/text-cursor-animation/base.js +1 -1
  680. package/lib/design-tokens/js/module/tokens/functional/components/text-cursor-animation/colors.js +1 -1
  681. package/lib/design-tokens/js/module/tokens/functional/components/timeline/base.js +1 -1
  682. package/lib/design-tokens/js/module/tokens/functional/components/timeline/colors.js +1 -1
  683. package/lib/design-tokens/js/module/tokens/functional/components/token/colors.js +1 -1
  684. package/lib/design-tokens/js/module/tokens/functional/components/tooltip/colors.js +1 -1
  685. package/lib/design-tokens/js/module/tokens/functional/components/video-player/base.js +1 -1
  686. package/lib/design-tokens/js/module/tokens/functional/size/border.js +1 -1
  687. package/lib/design-tokens/js/module/tokens/functional/size/breakpoints.js +1 -1
  688. package/lib/design-tokens/js/module/tokens/functional/size/size-coarse.js +1 -1
  689. package/lib/design-tokens/js/module/tokens/functional/size/size-fine.js +1 -1
  690. package/lib/design-tokens/js/module/tokens/functional/size/size.js +1 -1
  691. package/lib/design-tokens/js/module/tokens/functional/size/viewport.js +1 -1
  692. package/lib/design-tokens/js/module/tokens/functional/typography/typography-responsive.js +1 -1
  693. package/lib/design-tokens/js/module/tokens/functional/typography/typography.js +1 -1
  694. package/lib/design-tokens/js/tokens/base/colors/light.js +1 -1
  695. package/lib/design-tokens/js/tokens/base/size/size.js +1 -1
  696. package/lib/design-tokens/js/tokens/base/typography/typography.js +1 -1
  697. package/lib/design-tokens/js/tokens/functional/animation/base.js +1 -1
  698. package/lib/design-tokens/js/tokens/functional/colors/global.js +1 -1
  699. package/lib/design-tokens/js/tokens/functional/components/bento/base.js +1 -1
  700. package/lib/design-tokens/js/tokens/functional/components/card/base.js +1 -1
  701. package/lib/design-tokens/js/tokens/functional/components/card/colors.js +1 -1
  702. package/lib/design-tokens/js/tokens/functional/components/comparison-table/comparison-table.js +1 -1
  703. package/lib/design-tokens/js/tokens/functional/components/eyebrow-banner/eyebrow-banner.js +1 -1
  704. package/lib/design-tokens/js/tokens/functional/components/faq/base.js +1 -1
  705. package/lib/design-tokens/js/tokens/functional/components/faq/colors.js +1 -1
  706. package/lib/design-tokens/js/tokens/functional/components/faq/faq.js +1 -1
  707. package/lib/design-tokens/js/tokens/functional/components/footer/base.js +1 -1
  708. package/lib/design-tokens/js/tokens/functional/components/footer/colors.js +1 -1
  709. package/lib/design-tokens/js/tokens/functional/components/frosted-glass-vfx/base.js +1 -1
  710. package/lib/design-tokens/js/tokens/functional/components/grid/colors.js +1 -1
  711. package/lib/design-tokens/js/tokens/functional/components/grid/grid.js +1 -1
  712. package/lib/design-tokens/js/tokens/functional/components/hero/base.js +1 -1
  713. package/lib/design-tokens/js/tokens/functional/components/icon/colors.js +1 -1
  714. package/lib/design-tokens/js/tokens/functional/components/ide/base.js +1 -1
  715. package/lib/design-tokens/js/tokens/functional/components/image/base.js +1 -1
  716. package/lib/design-tokens/js/tokens/functional/components/inline-code/colors.js +1 -1
  717. package/lib/design-tokens/js/tokens/functional/components/inline-link/base.js +1 -1
  718. package/lib/design-tokens/js/tokens/functional/components/inline-link/colors.js +1 -1
  719. package/lib/design-tokens/js/tokens/functional/components/label/colors.js +1 -1
  720. package/lib/design-tokens/js/tokens/functional/components/link/colors.js +1 -1
  721. package/lib/design-tokens/js/tokens/functional/components/logosuite/base.js +1 -1
  722. package/lib/design-tokens/js/tokens/functional/components/logosuite/colors.js +1 -1
  723. package/lib/design-tokens/js/tokens/functional/components/media-playlist/colors.js +1 -1
  724. package/lib/design-tokens/js/tokens/functional/components/pricing-options/colors.js +1 -1
  725. package/lib/design-tokens/js/tokens/functional/components/pricing-options/pricing-options.js +1 -1
  726. package/lib/design-tokens/js/tokens/functional/components/prose/base.js +1 -1
  727. package/lib/design-tokens/js/tokens/functional/components/river/base.js +1 -1
  728. package/lib/design-tokens/js/tokens/functional/components/river/river.js +1 -1
  729. package/lib/design-tokens/js/tokens/functional/components/section/section.js +1 -1
  730. package/lib/design-tokens/js/tokens/functional/components/statistic/base.js +1 -1
  731. package/lib/design-tokens/js/tokens/functional/components/sub-nav/base.js +1 -1
  732. package/lib/design-tokens/js/tokens/functional/components/tabs/base.js +1 -1
  733. package/lib/design-tokens/js/tokens/functional/components/tabs/colors.js +1 -1
  734. package/lib/design-tokens/js/tokens/functional/components/testimonial/base.js +1 -1
  735. package/lib/design-tokens/js/tokens/functional/components/testimonial/colors.js +1 -1
  736. package/lib/design-tokens/js/tokens/functional/components/text-cursor-animation/base.js +1 -1
  737. package/lib/design-tokens/js/tokens/functional/components/text-cursor-animation/colors.js +1 -1
  738. package/lib/design-tokens/js/tokens/functional/components/timeline/base.js +1 -1
  739. package/lib/design-tokens/js/tokens/functional/components/timeline/colors.js +1 -1
  740. package/lib/design-tokens/js/tokens/functional/components/token/colors.js +1 -1
  741. package/lib/design-tokens/js/tokens/functional/components/tooltip/colors.js +1 -1
  742. package/lib/design-tokens/js/tokens/functional/components/video-player/base.js +1 -1
  743. package/lib/design-tokens/js/tokens/functional/size/border.js +1 -1
  744. package/lib/design-tokens/js/tokens/functional/size/breakpoints.js +1 -1
  745. package/lib/design-tokens/js/tokens/functional/size/size-coarse.js +1 -1
  746. package/lib/design-tokens/js/tokens/functional/size/size-fine.js +1 -1
  747. package/lib/design-tokens/js/tokens/functional/size/size.js +1 -1
  748. package/lib/design-tokens/js/tokens/functional/size/viewport.js +1 -1
  749. package/lib/design-tokens/js/tokens/functional/typography/typography-responsive.js +1 -1
  750. package/lib/design-tokens/js/tokens/functional/typography/typography.js +1 -1
  751. package/lib/design-tokens/json/colors.json +3 -0
  752. package/lib/design-tokens/scss/tokens/base/colors/light.scss +1 -1
  753. package/lib/design-tokens/scss/tokens/base/size/size.scss +1 -1
  754. package/lib/design-tokens/scss/tokens/base/typography/typography.scss +1 -1
  755. package/lib/design-tokens/scss/tokens/functional/animation/base.scss +1 -1
  756. package/lib/design-tokens/scss/tokens/functional/colors/global.scss +1 -1
  757. package/lib/design-tokens/scss/tokens/functional/components/bento/base.scss +1 -1
  758. package/lib/design-tokens/scss/tokens/functional/components/card/base.scss +1 -1
  759. package/lib/design-tokens/scss/tokens/functional/components/card/colors.scss +1 -1
  760. package/lib/design-tokens/scss/tokens/functional/components/comparison-table/comparison-table.scss +1 -1
  761. package/lib/design-tokens/scss/tokens/functional/components/eyebrow-banner/eyebrow-banner.scss +1 -1
  762. package/lib/design-tokens/scss/tokens/functional/components/faq/base.scss +1 -1
  763. package/lib/design-tokens/scss/tokens/functional/components/faq/colors.scss +1 -1
  764. package/lib/design-tokens/scss/tokens/functional/components/faq/faq.scss +1 -1
  765. package/lib/design-tokens/scss/tokens/functional/components/footer/base.scss +1 -1
  766. package/lib/design-tokens/scss/tokens/functional/components/footer/colors.scss +1 -1
  767. package/lib/design-tokens/scss/tokens/functional/components/frosted-glass-vfx/base.scss +1 -1
  768. package/lib/design-tokens/scss/tokens/functional/components/grid/colors.scss +1 -1
  769. package/lib/design-tokens/scss/tokens/functional/components/grid/grid.scss +1 -1
  770. package/lib/design-tokens/scss/tokens/functional/components/hero/base.scss +1 -1
  771. package/lib/design-tokens/scss/tokens/functional/components/icon/colors.scss +1 -1
  772. package/lib/design-tokens/scss/tokens/functional/components/ide/base.scss +1 -1
  773. package/lib/design-tokens/scss/tokens/functional/components/image/base.scss +1 -1
  774. package/lib/design-tokens/scss/tokens/functional/components/inline-code/colors.scss +1 -1
  775. package/lib/design-tokens/scss/tokens/functional/components/inline-link/base.scss +1 -1
  776. package/lib/design-tokens/scss/tokens/functional/components/inline-link/colors.scss +1 -1
  777. package/lib/design-tokens/scss/tokens/functional/components/label/colors.scss +1 -1
  778. package/lib/design-tokens/scss/tokens/functional/components/link/colors.scss +1 -1
  779. package/lib/design-tokens/scss/tokens/functional/components/logosuite/base.scss +1 -1
  780. package/lib/design-tokens/scss/tokens/functional/components/logosuite/colors.scss +1 -1
  781. package/lib/design-tokens/scss/tokens/functional/components/media-playlist/colors.scss +1 -1
  782. package/lib/design-tokens/scss/tokens/functional/components/pricing-options/colors.scss +1 -1
  783. package/lib/design-tokens/scss/tokens/functional/components/pricing-options/pricing-options.scss +1 -1
  784. package/lib/design-tokens/scss/tokens/functional/components/prose/base.scss +1 -1
  785. package/lib/design-tokens/scss/tokens/functional/components/river/base.scss +1 -1
  786. package/lib/design-tokens/scss/tokens/functional/components/river/river.scss +1 -1
  787. package/lib/design-tokens/scss/tokens/functional/components/section/section.scss +1 -1
  788. package/lib/design-tokens/scss/tokens/functional/components/statistic/base.scss +1 -1
  789. package/lib/design-tokens/scss/tokens/functional/components/sub-nav/base.scss +1 -1
  790. package/lib/design-tokens/scss/tokens/functional/components/tabs/base.scss +1 -1
  791. package/lib/design-tokens/scss/tokens/functional/components/tabs/colors.scss +1 -1
  792. package/lib/design-tokens/scss/tokens/functional/components/testimonial/base.scss +1 -1
  793. package/lib/design-tokens/scss/tokens/functional/components/testimonial/colors.scss +1 -1
  794. package/lib/design-tokens/scss/tokens/functional/components/text-cursor-animation/base.scss +1 -1
  795. package/lib/design-tokens/scss/tokens/functional/components/text-cursor-animation/colors.scss +1 -1
  796. package/lib/design-tokens/scss/tokens/functional/components/timeline/base.scss +1 -1
  797. package/lib/design-tokens/scss/tokens/functional/components/timeline/colors.scss +1 -1
  798. package/lib/design-tokens/scss/tokens/functional/components/token/colors.scss +1 -1
  799. package/lib/design-tokens/scss/tokens/functional/components/tooltip/colors.scss +1 -1
  800. package/lib/design-tokens/scss/tokens/functional/components/video-player/base.scss +1 -1
  801. package/lib/design-tokens/scss/tokens/functional/size/border.scss +1 -1
  802. package/lib/design-tokens/scss/tokens/functional/size/breakpoints.scss +1 -1
  803. package/lib/design-tokens/scss/tokens/functional/size/size-coarse.scss +1 -1
  804. package/lib/design-tokens/scss/tokens/functional/size/size-fine.scss +1 -1
  805. package/lib/design-tokens/scss/tokens/functional/size/size.scss +1 -1
  806. package/lib/design-tokens/scss/tokens/functional/size/viewport.scss +1 -1
  807. package/lib/design-tokens/scss/tokens/functional/typography/typography-responsive.scss +1 -1
  808. package/lib/design-tokens/scss/tokens/functional/typography/typography.scss +1 -1
  809. package/lib/design-tokens/ts/tokens/base/colors/light.d.ts +1 -1
  810. package/lib/design-tokens/ts/tokens/base/colors/light.js +1 -1
  811. package/lib/design-tokens/ts/tokens/base/size/size.d.ts +1 -1
  812. package/lib/design-tokens/ts/tokens/base/size/size.js +1 -1
  813. package/lib/design-tokens/ts/tokens/base/typography/typography.d.ts +1 -1
  814. package/lib/design-tokens/ts/tokens/base/typography/typography.js +1 -1
  815. package/lib/design-tokens/ts/tokens/functional/animation/base.d.ts +1 -1
  816. package/lib/design-tokens/ts/tokens/functional/animation/base.js +1 -1
  817. package/lib/design-tokens/ts/tokens/functional/colors/global.d.ts +1 -1
  818. package/lib/design-tokens/ts/tokens/functional/colors/global.js +1 -1
  819. package/lib/design-tokens/ts/tokens/functional/components/bento/base.d.ts +1 -1
  820. package/lib/design-tokens/ts/tokens/functional/components/bento/base.js +1 -1
  821. package/lib/design-tokens/ts/tokens/functional/components/card/base.d.ts +1 -1
  822. package/lib/design-tokens/ts/tokens/functional/components/card/base.js +1 -1
  823. package/lib/design-tokens/ts/tokens/functional/components/card/colors.d.ts +1 -1
  824. package/lib/design-tokens/ts/tokens/functional/components/card/colors.js +1 -1
  825. package/lib/design-tokens/ts/tokens/functional/components/comparison-table/comparison-table.d.ts +1 -1
  826. package/lib/design-tokens/ts/tokens/functional/components/comparison-table/comparison-table.js +1 -1
  827. package/lib/design-tokens/ts/tokens/functional/components/eyebrow-banner/eyebrow-banner.d.ts +1 -1
  828. package/lib/design-tokens/ts/tokens/functional/components/eyebrow-banner/eyebrow-banner.js +1 -1
  829. package/lib/design-tokens/ts/tokens/functional/components/faq/base.d.ts +1 -1
  830. package/lib/design-tokens/ts/tokens/functional/components/faq/base.js +1 -1
  831. package/lib/design-tokens/ts/tokens/functional/components/faq/colors.d.ts +1 -1
  832. package/lib/design-tokens/ts/tokens/functional/components/faq/colors.js +1 -1
  833. package/lib/design-tokens/ts/tokens/functional/components/faq/faq.d.ts +1 -1
  834. package/lib/design-tokens/ts/tokens/functional/components/faq/faq.js +1 -1
  835. package/lib/design-tokens/ts/tokens/functional/components/footer/base.d.ts +1 -1
  836. package/lib/design-tokens/ts/tokens/functional/components/footer/base.js +1 -1
  837. package/lib/design-tokens/ts/tokens/functional/components/footer/colors.d.ts +1 -1
  838. package/lib/design-tokens/ts/tokens/functional/components/footer/colors.js +1 -1
  839. package/lib/design-tokens/ts/tokens/functional/components/frosted-glass-vfx/base.d.ts +1 -1
  840. package/lib/design-tokens/ts/tokens/functional/components/frosted-glass-vfx/base.js +1 -1
  841. package/lib/design-tokens/ts/tokens/functional/components/grid/colors.d.ts +1 -1
  842. package/lib/design-tokens/ts/tokens/functional/components/grid/colors.js +1 -1
  843. package/lib/design-tokens/ts/tokens/functional/components/grid/grid.d.ts +1 -1
  844. package/lib/design-tokens/ts/tokens/functional/components/grid/grid.js +1 -1
  845. package/lib/design-tokens/ts/tokens/functional/components/hero/base.d.ts +1 -1
  846. package/lib/design-tokens/ts/tokens/functional/components/hero/base.js +1 -1
  847. package/lib/design-tokens/ts/tokens/functional/components/icon/colors.d.ts +1 -1
  848. package/lib/design-tokens/ts/tokens/functional/components/icon/colors.js +1 -1
  849. package/lib/design-tokens/ts/tokens/functional/components/ide/base.d.ts +1 -1
  850. package/lib/design-tokens/ts/tokens/functional/components/ide/base.js +1 -1
  851. package/lib/design-tokens/ts/tokens/functional/components/image/base.d.ts +1 -1
  852. package/lib/design-tokens/ts/tokens/functional/components/image/base.js +1 -1
  853. package/lib/design-tokens/ts/tokens/functional/components/inline-code/colors.d.ts +1 -1
  854. package/lib/design-tokens/ts/tokens/functional/components/inline-code/colors.js +1 -1
  855. package/lib/design-tokens/ts/tokens/functional/components/inline-link/base.d.ts +1 -1
  856. package/lib/design-tokens/ts/tokens/functional/components/inline-link/base.js +1 -1
  857. package/lib/design-tokens/ts/tokens/functional/components/inline-link/colors.d.ts +1 -1
  858. package/lib/design-tokens/ts/tokens/functional/components/inline-link/colors.js +1 -1
  859. package/lib/design-tokens/ts/tokens/functional/components/label/colors.d.ts +1 -1
  860. package/lib/design-tokens/ts/tokens/functional/components/label/colors.js +1 -1
  861. package/lib/design-tokens/ts/tokens/functional/components/link/colors.d.ts +1 -1
  862. package/lib/design-tokens/ts/tokens/functional/components/link/colors.js +1 -1
  863. package/lib/design-tokens/ts/tokens/functional/components/logosuite/base.d.ts +1 -1
  864. package/lib/design-tokens/ts/tokens/functional/components/logosuite/base.js +1 -1
  865. package/lib/design-tokens/ts/tokens/functional/components/logosuite/colors.d.ts +1 -1
  866. package/lib/design-tokens/ts/tokens/functional/components/logosuite/colors.js +1 -1
  867. package/lib/design-tokens/ts/tokens/functional/components/media-playlist/colors.d.ts +1 -1
  868. package/lib/design-tokens/ts/tokens/functional/components/media-playlist/colors.js +1 -1
  869. package/lib/design-tokens/ts/tokens/functional/components/pricing-options/colors.d.ts +1 -1
  870. package/lib/design-tokens/ts/tokens/functional/components/pricing-options/colors.js +1 -1
  871. package/lib/design-tokens/ts/tokens/functional/components/pricing-options/pricing-options.d.ts +1 -1
  872. package/lib/design-tokens/ts/tokens/functional/components/pricing-options/pricing-options.js +1 -1
  873. package/lib/design-tokens/ts/tokens/functional/components/prose/base.d.ts +1 -1
  874. package/lib/design-tokens/ts/tokens/functional/components/prose/base.js +1 -1
  875. package/lib/design-tokens/ts/tokens/functional/components/river/base.d.ts +1 -1
  876. package/lib/design-tokens/ts/tokens/functional/components/river/base.js +1 -1
  877. package/lib/design-tokens/ts/tokens/functional/components/river/river.d.ts +1 -1
  878. package/lib/design-tokens/ts/tokens/functional/components/river/river.js +1 -1
  879. package/lib/design-tokens/ts/tokens/functional/components/section/section.d.ts +1 -1
  880. package/lib/design-tokens/ts/tokens/functional/components/section/section.js +1 -1
  881. package/lib/design-tokens/ts/tokens/functional/components/statistic/base.d.ts +1 -1
  882. package/lib/design-tokens/ts/tokens/functional/components/statistic/base.js +1 -1
  883. package/lib/design-tokens/ts/tokens/functional/components/sub-nav/base.d.ts +1 -1
  884. package/lib/design-tokens/ts/tokens/functional/components/sub-nav/base.js +1 -1
  885. package/lib/design-tokens/ts/tokens/functional/components/tabs/base.d.ts +1 -1
  886. package/lib/design-tokens/ts/tokens/functional/components/tabs/base.js +1 -1
  887. package/lib/design-tokens/ts/tokens/functional/components/tabs/colors.d.ts +1 -1
  888. package/lib/design-tokens/ts/tokens/functional/components/tabs/colors.js +1 -1
  889. package/lib/design-tokens/ts/tokens/functional/components/testimonial/base.d.ts +1 -1
  890. package/lib/design-tokens/ts/tokens/functional/components/testimonial/base.js +1 -1
  891. package/lib/design-tokens/ts/tokens/functional/components/testimonial/colors.d.ts +1 -1
  892. package/lib/design-tokens/ts/tokens/functional/components/testimonial/colors.js +1 -1
  893. package/lib/design-tokens/ts/tokens/functional/components/text-cursor-animation/base.d.ts +1 -1
  894. package/lib/design-tokens/ts/tokens/functional/components/text-cursor-animation/base.js +1 -1
  895. package/lib/design-tokens/ts/tokens/functional/components/text-cursor-animation/colors.d.ts +1 -1
  896. package/lib/design-tokens/ts/tokens/functional/components/text-cursor-animation/colors.js +1 -1
  897. package/lib/design-tokens/ts/tokens/functional/components/timeline/base.d.ts +1 -1
  898. package/lib/design-tokens/ts/tokens/functional/components/timeline/base.js +1 -1
  899. package/lib/design-tokens/ts/tokens/functional/components/timeline/colors.d.ts +1 -1
  900. package/lib/design-tokens/ts/tokens/functional/components/timeline/colors.js +1 -1
  901. package/lib/design-tokens/ts/tokens/functional/components/token/colors.d.ts +1 -1
  902. package/lib/design-tokens/ts/tokens/functional/components/token/colors.js +1 -1
  903. package/lib/design-tokens/ts/tokens/functional/components/tooltip/colors.d.ts +1 -1
  904. package/lib/design-tokens/ts/tokens/functional/components/tooltip/colors.js +1 -1
  905. package/lib/design-tokens/ts/tokens/functional/components/video-player/base.d.ts +1 -1
  906. package/lib/design-tokens/ts/tokens/functional/components/video-player/base.js +1 -1
  907. package/lib/design-tokens/ts/tokens/functional/size/border.d.ts +1 -1
  908. package/lib/design-tokens/ts/tokens/functional/size/border.js +1 -1
  909. package/lib/design-tokens/ts/tokens/functional/size/breakpoints.d.ts +1 -1
  910. package/lib/design-tokens/ts/tokens/functional/size/breakpoints.js +1 -1
  911. package/lib/design-tokens/ts/tokens/functional/size/size-coarse.d.ts +1 -1
  912. package/lib/design-tokens/ts/tokens/functional/size/size-coarse.js +1 -1
  913. package/lib/design-tokens/ts/tokens/functional/size/size-fine.d.ts +1 -1
  914. package/lib/design-tokens/ts/tokens/functional/size/size-fine.js +1 -1
  915. package/lib/design-tokens/ts/tokens/functional/size/size.d.ts +1 -1
  916. package/lib/design-tokens/ts/tokens/functional/size/size.js +1 -1
  917. package/lib/design-tokens/ts/tokens/functional/size/viewport.d.ts +1 -1
  918. package/lib/design-tokens/ts/tokens/functional/size/viewport.js +1 -1
  919. package/lib/design-tokens/ts/tokens/functional/typography/typography-responsive.d.ts +1 -1
  920. package/lib/design-tokens/ts/tokens/functional/typography/typography-responsive.js +1 -1
  921. package/lib/design-tokens/ts/tokens/functional/typography/typography.d.ts +1 -1
  922. package/lib/design-tokens/ts/tokens/functional/typography/typography.js +1 -1
  923. package/lib/forms/FormControl/FormControl.d.ts +5 -5
  924. package/lib/forms/Select/Select.d.ts +2 -2
  925. package/lib/index.js +1 -1
  926. package/lib/list/OrderedList/OrderedList.d.ts +2 -2
  927. package/lib/list/UnorderedList/UnorderedList.d.ts +2 -2
  928. package/lib/river/RiverAccordion/RiverAccordion.d.ts +4 -4
  929. package/lib/river/RiverBreakout/RiverBreakout.d.ts +1 -1
  930. package/lib/river/RiverBreakoutTabs/RiverBreakoutTabs.d.ts +5 -5
  931. package/lib/river/RiverStoryScroll/RiverStoryScroll.d.ts +1 -1
  932. package/lib/river/RiverStoryScroll/RiverStoryScrollProvider.d.ts +2 -2
  933. package/lib/river/RiverStoryScroll/RiverStoryScrollResponder.d.ts +1 -1
  934. package/lib/river/RiverStoryScroll/RiverStoryScrollTracker.d.ts +1 -1
  935. package/llms.txt +2 -2
  936. package/package.json +24 -24
  937. package/esm/SubdomainNavBar/SubdomainNavBar.module-Rf4qEDka.css +0 -1
  938. package/esm/node_modules/@primer/octicons-react/dist/index.esm.js +0 -434
  939. package/esm/node_modules/@primer/octicons-react/dist/index.esm.js.map +0 -1
  940. package/esm/packages/design-tokens/lib/design-tokens/css/tokens/functional/components/subdomain-nav-bar/colors-with-modes-ehJCoExh.css +0 -1
@@ -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":";;;;;;;;;;AAmBA,IAAM,IAAiB;CACrB,GAAG;EACD,UAAU;EACV,KAAK;EACL,MAAM;EACN,WAAW;EACX,YAAY;EACb;CACD,QAAQ;EACN,UAAU;EACV,KAAK;EACL,MAAM;EACN,WAAW;EACX,YAAY;EACb;CACD,UAAU;EACR,UAAU;EACV,KAAK;EACL,MAAM;EACN,WAAW;EACX,YAAY;EACb;CACD,SAAS;EACP,UAAU;EACV,KAAK;EACL,MAAM;EACN,WAAW;EACX,YAAY;EACb;CACD,UAAU;EACR,UAAU;EACV,KAAK;EACL,MAAM;EACN,WAAW;EACX,YAAY;EACb;CACD,QAAQ;EACN,UAAU;EACV,KAAK;EACL,MAAM;EACN,WAAW;EACX,YAAY;EACb;CACD,QAAQ;EACN,UAAU;EACV,KAAK;EACL,MAAM;EACN,WAAW;EACX,YAAY;EACb;CACD,WAAW;EACT,UAAU;EACV,KAAK;EACL,MAAM;EACN,WAAW;EACX,YAAY;EACb;CACF,EAGK,IAAkB,OAAO,KAAK,EAAe;AAyBnD,SAAS,EAAK,EACZ,oBACA,cACA,aACA,uBACA,cAAW,sBACX,gBACA,GAAG,KACqC;CACxC,IAAI,GACA,GACE,IAA8B,EAAE;AAEtC,MAAK,IAAM,KAAS,EAAM,SAAS,QAAQ,EAAS,CAC7C,GAAM,eAAe,EAAM,KAI5B,EAAM,SAAS,IACjB,MAAc,IACL,EAAM,SAAS,IACxB,MAAc,IACL,EAAM,SAAS,KAAQ,EAAM,SAAS,KAC/C,EAAM,KAAK,EAAM;CAIrB,IAAM,qBAAc,IAAI,MAAM,EAAC,aAAa,EACtC,IAAsB,MAAgB,KAAA,IAAY,IAAkB,GACpE,IAAsB,MAAwB,KAAQ,EAAE,GAAG,GAC3D,IAAiB,EAAoB,SAAS,GAC9C,IAAW,EAAM,SAAS,GAC1B,IAAgB,IAAW,kBAAC,OAAD;EAAK,WAAW,EAAO;YAAuB;EAAY,CAAA,GAAG,MACxF,IACJ,kBAAC,GAAD;EACE,IAAG;EACH,MAAK;EACL,MAAK;EACL,QAAQ;GAAC,QAAQ;GAAU,MAAM;GAAS;EAC1C,SAAQ;EACR,WAAW,EAAK,EAAO,0BAA0B,EAAO,wBAAwB;YAE/E,KAA0C,UAAU,EAAY;EAC5D,CAAA;AAGT,QACE,kBAAC,UAAD;EACE,WAAW,EAAK,EAAO,eAAe,KAAa,EAAO,iCAAiC,EAAU;EACrG,GAAI;YAFN;GAIG;GACD,kBAAC,OAAD;IAAK,WAAW,EAAO;cACrB,kBAAC,WAAD;KAAS,WAAW,EAAO;eACzB,kBAAC,OAAD;MAAK,WAAW,EAAO;gBACrB,kBAAC,OAAD;OAAK,WAAW,EAAO;iBAAvB,CACE,kBAAC,GAAD,EAAoB,aAAY,CAAA,EAC/B,KAAY,IACX,kBAAC,OAAD;QAAK,WAAW,EAAO;kBAAvB,CACG,GACA,EACG;YACJ,KACA;;MACF,CAAA;KACE,CAAA;IACN,CAAA;GACL,IACC,kBAAC,OAAD;IAAK,WAAW,EAAK,EAAO,wBAAwB,EAAO,kCAAkC;cAC3F,kBAAC,WAAD;KAAS,WAAW,EAAO;eAA2B;KAA0B,CAAA;IAC5E,CAAA,GACJ;GACJ,kBAAC,OAAD;IAAK,WAAW,EAAK,EAAO,wBAAwB,EAAO,kCAAkC;cAC3F,kBAAC,WAAD;KAAS,WAAW,EAAO;eACzB,kBAAC,OAAD;MAAK,WAAW,EAAO;gBACrB,kBAAC,OAAD;OAAK,WAAW,EAAO;iBAAvB,CACG,GACA,IAAiB,kBAAC,GAAD,EAAa,aAAa,GAAuB,CAAA,GAAG,KAClE;;MACF,CAAA;KACE,CAAA;IACN,CAAA;GACC;;;AAMb,SAAS,EAAU,EAAC,aAAU,gBAA8C;CAC1E,IAAM,IAAiB,EAAM,SAAS,IAAI,IAAU,MAAS;AAC3D,MAAI,EAAM,eAAkD,EAAM,IAAI,EAAM,SAAS,GAAM;GACzF,IAAM,IAAY,GACZ,IAA4D;IAChE,SAAS;IACT,MAAM;IACN,WAAW,EAAK,EAAO,8BAA8B,EAAU,MAAM,UAAU;IAChF;AAMD,UAJK,EAAU,MAAM,OACnB,EAAc,KAAK,MAGd,EAAM,aAAa,GAAW,EAAc;;AAGrD,SAAO;GACP;AAEF,QACE,kBAAC,OAAD;EAAK,WAAW,EAAK,EAAO,wBAAwB,EAAO,qCAAqC;YAC9F,kBAAC,WAAD;GAAS,WAAW,EAAO;aACzB,kBAAC,OAAD;IAAK,WAAW,EAAK,EAAO,sBAAsB,EAAU;cAAG;IAAqB,CAAA;GAC5E,CAAA;EACN,CAAA;;AAMV,IAAM,KAAc,EAAC,cAA2B;CAC9C,IAAM,IAAO,EAAe;AAC5B,QACE,kBAAC,MAAD,EAAA,UACE,kBAAC,KAAD;EACE,MAAM,EAAK;EACX,WAAW,EAAO;EAClB,wBAAsB,wCAAwC,EAAK,SAAS,kBAAkB,EAAK;YAHrG,CAKE,kBAAC,OAAD;GACE,WAAW,EAAO;GAClB,KAAK,EAAK;GACV,QAAQ,EAAK;GACb,OAAO,EAAK;GACZ,SAAQ;GACR,UAAS;GACT,KAAI;GACJ,CAAA,EACF,kBAAC,QAAD;GAAM,WAAU;aAAhB,CAAkC,cAAW,EAAK,SAAgB;KAChE;KACD,CAAA;;AAIT,SAAS,EAAS,EAAC,eAAgC;AACjD,QACE,kBAAC,KAAD;EACE,MAAM;EACN,WAAW,EAAO;EAClB,wBAAqB;EACrB,cAAW;YAEX,kBAAC,GAAD,EAAgB,MAAM,IAAM,CAAA;EAC1B,CAAA;;AAIR,SAAS,EAAY,EAAC,kBAA+C;AACnE,QACE,kBAAC,MAAD;EAAI,WAAW,EAAO;YACnB,EAAY,KAAI,MACf,kBAAC,GAAD,EAA6B,SAAQ,EAApB,EAAoB,CACrC;EACC,CAAA;;AAST,IAAM,KAA2C,EAAC,OAAI,aAAU,GAAG,QAG/D,kBAFgB,KAAM,KAEtB;CACE,WAAW,EAAO;CAClB,wBACE,EAAK,OAAU,wCAAwC,EAAK,KAAQ,kBAAkB,EAAS,MAAM,KAAA;CAEvG,GAAI;WAEJ,kBAAC,GAAD;EACE,SAAQ;EACR,MAAK;EACL,MAAK;EACL,QAAQ;GAAC,QAAQ;GAAU,MAAM;GAAS;EAC1C,WAAW,EAAO;EAEjB;EACI,CAAA;CACG,CAAA,EAwBV,IAAY,GACf,EAAC,aAAU,cAAW,kBAAe,YAAS,UAAO,UAAU,GAAG,KAAO,MAAQ;CAChF,IAAM,IAAuB,GAAkB,EAEzC,IAAc,GAClB,MAAS;AACP,UAAU,EAAM,EAEZ,GAAM,qBAIV,OAAO,SAAS;GACd,KAAK;GACL,UAAU,IAAuB,YAAY;GAC9C,CAAC,EAEE,EAAM,WAAW,IAAG;GACtB,IAAM,IAAc,IAChB,SAAS,eAAe,EAAc,GACtC,SAAS,cAA2B,OAAO,IAC3C,SAAS,cAA2B,OAAO,IAC3C,SAAS;AAEb,OAAI,CAAC,GAAa;AAChB,KAAA,QAAA,IAAA,aAA6B,iBAAA,QAAA,IAAA,aAA0C,WAErE,QAAQ,KAAK,sDAAsD,EAAc,IAAI;AAEvF;;AAUF,GAPoB,EAAY,aAAa,WAExC,KACH,EAAY,WAAW,IACvB,EAAY,iBAAiB,cAAc,EAAY,gBAAgB,WAAW,EAAE,EAAC,MAAM,IAAK,CAAC,GAGnG,EAAY,MAAM,EAAC,eAAe,IAAK,CAAC;;IAG5C;EAAC;EAAe;EAAS;EAAqB,CAC/C;AAED,QACE,kBAAC,UAAD;EACO;EACC;EACN,WAAW,EAAK,EAAO,0BAA0B,EAAU;EAC3D,SAAS;EACT,GAAI;YAEJ,kBAAC,QAAD;GAAM,WAAW,EAAO;aAAxB,CACE,kBAAC,GAAD;IAAM,IAAG;IAAO,MAAK;IAAM,QAAO;IAAS,WAAW,EAAO;IAC1D;IACI,CAAA,EACP,kBAAC,QAAD;IAAM,WAAW,EAAO;IAAkC,eAAY;cACpE,kBAAC,GAAD,EAAe,CAAA;IACV,CAAA,CACF;;EACA,CAAA;EAGd,EAMY,IAAgB,OAAO,OAAO,GAAM;CAC/C;CACA;CACA;CACD,CAAC"}
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,17 +1,18 @@
1
- import './MinimalFooter.module-CGtOtT5r.css';var e = {
2
- MinimalFooter: "Primer_Brand__MinimalFooter-module__MinimalFooter___xLq65",
1
+ import './MinimalFooter.module-CGtOtT5r.css';//#region src/MinimalFooter/MinimalFooter.module.css
2
+ var e = "Primer_Brand__MinimalFooter-module__MinimalFooter___xLq65", t = "Primer_Brand__MinimalFooter-module__MinimalFooter__container___mhY_8", n = "Primer_Brand__MinimalFooter-module__MinimalFooter__terms___gwB2R", r = "Primer_Brand__MinimalFooter-module__MinimalFooter__top___UXzkJ", i = "Primer_Brand__MinimalFooter-module__MinimalFooter__links___kwBz2", a = "Primer_Brand__MinimalFooter-module__MinimalFooter__backToTop___fmxit", o = "Primer_Brand__MinimalFooter-module__MinimalFooter__logo___rFLvw", s = "Primer_Brand__MinimalFooter-module__MinimalFooter__bottom___oi9Jk", c = "Primer_Brand__MinimalFooter-module__MinimalFooter__section___W7x7a", l = "Primer_Brand__MinimalFooter-module__MinimalFooter__copyright___qQ3QR", u = "Primer_Brand__MinimalFooter-module__MinimalFooter__metaText___peNSx", d = "Primer_Brand__MinimalFooter-module__MinimalFooter__link___T4gI3", f = {
3
+ MinimalFooter: e,
3
4
  "MinimalFooter--withFootnotes": "Primer_Brand__MinimalFooter-module__MinimalFooter--withFootnotes___oUvH8",
4
- MinimalFooter__container: "Primer_Brand__MinimalFooter-module__MinimalFooter__container___mhY_8",
5
- MinimalFooter__terms: "Primer_Brand__MinimalFooter-module__MinimalFooter__terms___gwB2R",
5
+ MinimalFooter__container: t,
6
+ MinimalFooter__terms: n,
6
7
  "MinimalFooter__terms-item": "Primer_Brand__MinimalFooter-module__MinimalFooter__terms-item___VB5Sx",
7
- MinimalFooter__top: "Primer_Brand__MinimalFooter-module__MinimalFooter__top___UXzkJ",
8
+ MinimalFooter__top: r,
8
9
  "MinimalFooter__top-row": "Primer_Brand__MinimalFooter-module__MinimalFooter__top-row____WR7L",
9
10
  "MinimalFooter__top-actions": "Primer_Brand__MinimalFooter-module__MinimalFooter__top-actions___dz_zd",
10
- MinimalFooter__links: "Primer_Brand__MinimalFooter-module__MinimalFooter__links___kwBz2",
11
- MinimalFooter__backToTop: "Primer_Brand__MinimalFooter-module__MinimalFooter__backToTop___fmxit",
12
- MinimalFooter__logo: "Primer_Brand__MinimalFooter-module__MinimalFooter__logo___rFLvw",
13
- MinimalFooter__bottom: "Primer_Brand__MinimalFooter-module__MinimalFooter__bottom___oi9Jk",
14
- MinimalFooter__section: "Primer_Brand__MinimalFooter-module__MinimalFooter__section___W7x7a",
11
+ MinimalFooter__links: i,
12
+ MinimalFooter__backToTop: a,
13
+ MinimalFooter__logo: o,
14
+ MinimalFooter__bottom: s,
15
+ MinimalFooter__section: c,
15
16
  "MinimalFooter__section--footnotes": "Primer_Brand__MinimalFooter-module__MinimalFooter__section--footnotes___9t40F",
16
17
  "MinimalFooter__section--center": "Primer_Brand__MinimalFooter-module__MinimalFooter__section--center___K3_Ia",
17
18
  "MinimalFooter__section--bottom": "Primer_Brand__MinimalFooter-module__MinimalFooter__section--bottom___HwSJJ",
@@ -19,13 +20,13 @@ import './MinimalFooter.module-CGtOtT5r.css';var e = {
19
20
  "MinimalFooter__social-links": "Primer_Brand__MinimalFooter-module__MinimalFooter__social-links___0zKRs",
20
21
  "MinimalFooter__social-link": "Primer_Brand__MinimalFooter-module__MinimalFooter__social-link___T5TF0",
21
22
  "MinimalFooter__social-icon": "Primer_Brand__MinimalFooter-module__MinimalFooter__social-icon___N1tDK",
22
- MinimalFooter__copyright: "Primer_Brand__MinimalFooter-module__MinimalFooter__copyright___qQ3QR",
23
- MinimalFooter__metaText: "Primer_Brand__MinimalFooter-module__MinimalFooter__metaText___peNSx",
24
- MinimalFooter__link: "Primer_Brand__MinimalFooter-module__MinimalFooter__link___T4gI3",
23
+ MinimalFooter__copyright: l,
24
+ MinimalFooter__metaText: u,
25
+ MinimalFooter__link: d,
25
26
  "MinimalFooter__backToTop-content": "Primer_Brand__MinimalFooter-module__MinimalFooter__backToTop-content___umaLY",
26
27
  "MinimalFooter__backToTop-icon": "Primer_Brand__MinimalFooter-module__MinimalFooter__backToTop-icon___y85GZ"
27
28
  };
28
29
  //#endregion
29
- export { e as default };
30
+ export { e as MinimalFooter, a as MinimalFooter__backToTop, s as MinimalFooter__bottom, t as MinimalFooter__container, l as MinimalFooter__copyright, d as MinimalFooter__link, i as MinimalFooter__links, o as MinimalFooter__logo, u as MinimalFooter__metaText, c as MinimalFooter__section, n as MinimalFooter__terms, r as MinimalFooter__top, f as default };
30
31
 
31
32
  //# sourceMappingURL=MinimalFooter.module.js.map
@@ -1,6 +1,6 @@
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
- import { PauseIcon as n } from "../node_modules/@primer/octicons-react/dist/index.esm.js";
3
+ import { PauseIcon as n } from "../node_modules/@primer/octicons-react/dist/icons/PauseIcon.js";
4
4
  import { useMinimalVideoPlayback as r } from "./useMinimalVideoPlayback.js";
5
5
  import i from "./MinimalVideoPlayer.module.js";
6
6
  import { forwardRef as a } from "react";
@@ -1 +1 @@
1
- {"version":3,"file":"MinimalVideoPlayer.js","names":[],"sources":["../../src/MinimalVideoPlayer/MinimalVideoPlayer.tsx"],"sourcesContent":["import {clsx} from 'clsx'\nimport {PauseIcon} from '@primer/octicons-react'\nimport React, {forwardRef, type ComponentPropsWithoutRef} from 'react'\n\nimport {useReducedMotion} from '../hooks/useReducedMotion'\nimport {useMinimalVideoPlayback} from './useMinimalVideoPlayback'\nimport styles from './MinimalVideoPlayer.module.css'\n\nexport type MinimalVideoPlayerProps = Omit<\n ComponentPropsWithoutRef<'video'>,\n 'autoPlay' | 'controls' | 'defaultMuted' | 'muted' | 'onVolumeChange' | 'playsInline' | 'title'\n> & {\n /**\n * Plays the video when it is visible.\n * @default true\n */\n autoPlay?: boolean\n /**\n * Provides an accessible name for the video.\n */\n title: string\n /**\n * Customizable labels for the internal play and pause control.\n */\n internalAccessibleLabels?: {\n play: string\n pause: string\n }\n ['data-testid']?: string\n}\n\nconst defaultInternalAccessibleLabels = {\n play: 'Play video',\n pause: 'Pause video',\n}\n\nconst testIds = {\n root: 'MinimalVideoPlayer',\n get video() {\n return `${this.root}-video`\n },\n get control() {\n return `${this.root}-control`\n },\n}\n\nexport const _MinimalVideoPlayer = forwardRef<HTMLVideoElement, MinimalVideoPlayerProps>(\n (\n {\n autoPlay = true,\n children,\n className,\n 'data-testid': testId,\n internalAccessibleLabels = defaultInternalAccessibleLabels,\n loop = true,\n onEnded,\n onPause,\n onPlay,\n onPlaying,\n title,\n ...rest\n },\n forwardedRef,\n ) => {\n const prefersReducedMotion = useReducedMotion()\n const {handlePlaybackEnded, handlePlaybackPaused, handlePlaybackStarted, isPlaying, togglePlayback, videoRef} =\n useMinimalVideoPlayback({\n autoPlay,\n forwardedRef,\n prefersReducedMotion,\n })\n\n return (\n <div className={styles.MinimalVideoPlayer} data-testid={testId || testIds.root}>\n <video\n {...rest}\n ref={videoRef}\n autoPlay={false}\n className={clsx(styles.MinimalVideoPlayer__video, className)}\n controls={false}\n data-testid={testIds.video}\n loop={loop}\n muted\n onEnded={event => {\n handlePlaybackEnded()\n onEnded?.(event)\n }}\n onPause={event => {\n handlePlaybackPaused()\n onPause?.(event)\n }}\n onPlay={event => {\n handlePlaybackStarted()\n onPlay?.(event)\n }}\n onPlaying={event => {\n handlePlaybackStarted()\n onPlaying?.(event)\n }}\n playsInline\n title={title}\n >\n {children}\n </video>\n <button\n aria-label={isPlaying ? internalAccessibleLabels.pause : internalAccessibleLabels.play}\n className={styles.MinimalVideoPlayer__control}\n data-testid={testIds.control}\n onClick={togglePlayback}\n type=\"button\"\n >\n {isPlaying ? (\n <PauseIcon aria-hidden=\"true\" />\n ) : (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M13.3777 6.94756C14.2069 7.40341 14.2069 8.59489 13.3777 9.05073L5.37808 13.4483C4.57834 13.8879 3.60001 13.3093 3.60001 12.3967L3.60001 3.60161C3.60001 2.689 4.57834 2.1104 5.37808 2.55003L13.3777 6.94756Z\"\n fill=\"currentColor\"\n />\n </svg>\n )}\n </button>\n </div>\n )\n },\n)\n\nexport const MinimalVideoPlayer = Object.assign(_MinimalVideoPlayer, {testIds})\n"],"mappings":";;;;;;;;AA+BA,IAAM,IAAkC;CACtC,MAAM;CACN,OAAO;CACR,EAEK,IAAU;CACd,MAAM;CACN,IAAI,QAAQ;AACV,SAAO,GAAG,KAAK,KAAK;;CAEtB,IAAI,UAAU;AACZ,SAAO,GAAG,KAAK,KAAK;;CAEvB,EAEY,IAAsB,GAE/B,EACE,cAAW,IACX,aACA,cACA,eAAe,GACf,8BAA2B,GAC3B,UAAO,IACP,YACA,YACA,WACA,cACA,UACA,GAAG,KAEL,MACG;CAEH,IAAM,EAAC,wBAAqB,yBAAsB,0BAAuB,cAAW,mBAAgB,gBAClG,EAAwB;EACtB;EACA;EACA,sBALyB,GAKzB;EACD,CAAC;AAEJ,QACE,kBAAC,OAAD;EAAK,WAAW,EAAO;EAAoB,eAAa,KAAU,EAAQ;YAA1E,CACE,kBAAC,SAAD;GACE,GAAI;GACJ,KAAK;GACL,UAAU;GACV,WAAW,EAAK,EAAO,2BAA2B,EAAU;GAC5D,UAAU;GACV,eAAa,EAAQ;GACf;GACN,OAAA;GACA,UAAS,MAAS;AAEhB,IADA,GAAqB,EACrB,IAAU,EAAM;;GAElB,UAAS,MAAS;AAEhB,IADA,GAAsB,EACtB,IAAU,EAAM;;GAElB,SAAQ,MAAS;AAEf,IADA,GAAuB,EACvB,IAAS,EAAM;;GAEjB,YAAW,MAAS;AAElB,IADA,GAAuB,EACvB,IAAY,EAAM;;GAEpB,aAAA;GACO;GAEN;GACK,CAAA,EACR,kBAAC,UAAD;GACE,cAAY,IAAY,EAAyB,QAAQ,EAAyB;GAClF,WAAW,EAAO;GAClB,eAAa,EAAQ;GACrB,SAAS;GACT,MAAK;aAEJ,IACC,kBAAC,GAAD,EAAW,eAAY,QAAS,CAAA,GAEhC,kBAAC,OAAD;IAAK,OAAM;IAAK,QAAO;IAAK,SAAQ;IAAY,MAAK;IAAO,OAAM;cAChE,kBAAC,QAAD;KACE,GAAE;KACF,MAAK;KACL,CAAA;IACE,CAAA;GAED,CAAA,CACL;;EAGX,EAEY,IAAqB,OAAO,OAAO,GAAqB,EAAC,YAAQ,CAAC"}
1
+ {"version":3,"file":"MinimalVideoPlayer.js","names":[],"sources":["../../src/MinimalVideoPlayer/MinimalVideoPlayer.tsx"],"sourcesContent":["import {clsx} from 'clsx'\nimport {PauseIcon} from '@primer/octicons-react'\nimport React, {forwardRef, type ComponentPropsWithoutRef} from 'react'\n\nimport {useReducedMotion} from '../hooks/useReducedMotion'\nimport {useMinimalVideoPlayback} from './useMinimalVideoPlayback'\nimport styles from './MinimalVideoPlayer.module.css'\n\nexport type MinimalVideoPlayerProps = Omit<\n ComponentPropsWithoutRef<'video'>,\n 'autoPlay' | 'controls' | 'defaultMuted' | 'muted' | 'onVolumeChange' | 'playsInline' | 'title'\n> & {\n /**\n * Plays the video when it is visible.\n * @default true\n */\n autoPlay?: boolean\n /**\n * Provides an accessible name for the video.\n */\n title: string\n /**\n * Customizable labels for the internal play and pause control.\n */\n internalAccessibleLabels?: {\n play: string\n pause: string\n }\n ['data-testid']?: string\n}\n\nconst defaultInternalAccessibleLabels = {\n play: 'Play video',\n pause: 'Pause video',\n}\n\nconst testIds = {\n root: 'MinimalVideoPlayer',\n get video() {\n return `${this.root}-video`\n },\n get control() {\n return `${this.root}-control`\n },\n}\n\nexport const _MinimalVideoPlayer = forwardRef<HTMLVideoElement, MinimalVideoPlayerProps>(\n (\n {\n autoPlay = true,\n children,\n className,\n 'data-testid': testId,\n internalAccessibleLabels = defaultInternalAccessibleLabels,\n loop = true,\n onEnded,\n onPause,\n onPlay,\n onPlaying,\n title,\n ...rest\n },\n forwardedRef,\n ) => {\n const prefersReducedMotion = useReducedMotion()\n const {handlePlaybackEnded, handlePlaybackPaused, handlePlaybackStarted, isPlaying, togglePlayback, videoRef} =\n useMinimalVideoPlayback({\n autoPlay,\n forwardedRef,\n prefersReducedMotion,\n })\n\n return (\n <div className={styles.MinimalVideoPlayer} data-testid={testId || testIds.root}>\n <video\n {...rest}\n ref={videoRef}\n autoPlay={false}\n className={clsx(styles.MinimalVideoPlayer__video, className)}\n controls={false}\n data-testid={testIds.video}\n loop={loop}\n muted\n onEnded={event => {\n handlePlaybackEnded()\n onEnded?.(event)\n }}\n onPause={event => {\n handlePlaybackPaused()\n onPause?.(event)\n }}\n onPlay={event => {\n handlePlaybackStarted()\n onPlay?.(event)\n }}\n onPlaying={event => {\n handlePlaybackStarted()\n onPlaying?.(event)\n }}\n playsInline\n title={title}\n >\n {children}\n </video>\n <button\n aria-label={isPlaying ? internalAccessibleLabels.pause : internalAccessibleLabels.play}\n className={styles.MinimalVideoPlayer__control}\n data-testid={testIds.control}\n onClick={togglePlayback}\n type=\"button\"\n >\n {isPlaying ? (\n <PauseIcon aria-hidden=\"true\" />\n ) : (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M13.3777 6.94756C14.2069 7.40341 14.2069 8.59489 13.3777 9.05073L5.37808 13.4483C4.57834 13.8879 3.60001 13.3093 3.60001 12.3967L3.60001 3.60161C3.60001 2.689 4.57834 2.1104 5.37808 2.55003L13.3777 6.94756Z\"\n fill=\"currentColor\"\n />\n </svg>\n )}\n </button>\n </div>\n )\n },\n)\n\nexport const MinimalVideoPlayer = Object.assign(_MinimalVideoPlayer, {testIds})\n"],"mappings":";;;;;;;;AA+BA,IAAM,IAAkC;CACtC,MAAM;CACN,OAAO;AACT,GAEM,IAAU;CACd,MAAM;CACN,IAAI,QAAQ;EACV,OAAO,GAAG,KAAK,KAAK;CACtB;CACA,IAAI,UAAU;EACZ,OAAO,GAAG,KAAK,KAAK;CACtB;AACF,GAEa,IAAsB,GAE/B,EACE,cAAW,IACX,aACA,cACA,eAAe,GACf,8BAA2B,GAC3B,UAAO,IACP,YACA,YACA,WACA,cACA,UACA,GAAG,KAEL,MACG;CAEH,IAAM,EAAC,wBAAqB,yBAAsB,0BAAuB,cAAW,mBAAgB,gBAClG,EAAwB;EACtB;EACA;EACA,sBALyB,EAKzB;CACF,CAAC;CAEH,OACE,kBAAC,OAAD;EAAK,WAAW,EAAO;EAAoB,eAAa,KAAU,EAAQ;YAA1E,CACE,kBAAC,SAAD;GACE,GAAI;GACJ,KAAK;GACL,UAAU;GACV,WAAW,EAAK,EAAO,2BAA2B,CAAS;GAC3D,UAAU;GACV,eAAa,EAAQ;GACf;GACN,OAAA;GACA,UAAS,MAAS;IAEhB,AADA,EAAoB,GACpB,IAAU,CAAK;GACjB;GACA,UAAS,MAAS;IAEhB,AADA,EAAqB,GACrB,IAAU,CAAK;GACjB;GACA,SAAQ,MAAS;IAEf,AADA,EAAsB,GACtB,IAAS,CAAK;GAChB;GACA,YAAW,MAAS;IAElB,AADA,EAAsB,GACtB,IAAY,CAAK;GACnB;GACA,aAAA;GACO;GAEN;EACI,CAAA,GACP,kBAAC,UAAD;GACE,cAAY,IAAY,EAAyB,QAAQ,EAAyB;GAClF,WAAW,EAAO;GAClB,eAAa,EAAQ;GACrB,SAAS;GACT,MAAK;aAEJ,IACC,kBAAC,GAAD,EAAW,eAAY,OAAQ,CAAA,IAE/B,kBAAC,OAAD;IAAK,OAAM;IAAK,QAAO;IAAK,SAAQ;IAAY,MAAK;IAAO,OAAM;cAChE,kBAAC,QAAD;KACE,GAAE;KACF,MAAK;IACN,CAAA;GACE,CAAA;EAED,CAAA,CACL;;AAET,CACF,GAEa,IAAqB,OAAO,OAAO,GAAqB,EAAC,WAAO,CAAC"}
@@ -1,9 +1,10 @@
1
- import './MinimalVideoPlayer.module-Bcv4-Y5D.css';var e = {
2
- MinimalVideoPlayer: "Primer_Brand__MinimalVideoPlayer-module__MinimalVideoPlayer___s8ncI",
3
- MinimalVideoPlayer__video: "Primer_Brand__MinimalVideoPlayer-module__MinimalVideoPlayer__video___f5cBj",
4
- MinimalVideoPlayer__control: "Primer_Brand__MinimalVideoPlayer-module__MinimalVideoPlayer__control___w7dA_"
1
+ import './MinimalVideoPlayer.module-Bcv4-Y5D.css';//#region src/MinimalVideoPlayer/MinimalVideoPlayer.module.css
2
+ var e = "Primer_Brand__MinimalVideoPlayer-module__MinimalVideoPlayer___s8ncI", t = "Primer_Brand__MinimalVideoPlayer-module__MinimalVideoPlayer__video___f5cBj", n = "Primer_Brand__MinimalVideoPlayer-module__MinimalVideoPlayer__control___w7dA_", r = {
3
+ MinimalVideoPlayer: e,
4
+ MinimalVideoPlayer__video: t,
5
+ MinimalVideoPlayer__control: n
5
6
  };
6
7
  //#endregion
7
- export { e as default };
8
+ export { e as MinimalVideoPlayer, n as MinimalVideoPlayer__control, t as MinimalVideoPlayer__video, r as default };
8
9
 
9
10
  //# sourceMappingURL=MinimalVideoPlayer.module.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useMinimalVideoPlayback.js","names":[],"sources":["../../src/MinimalVideoPlayer/useMinimalVideoPlayback.ts"],"sourcesContent":["import {useCallback, useEffect, useRef, useState, type Ref} from 'react'\n\nimport {useProvidedRefOrCreate} from '../hooks/useRef'\n\ntype UseMinimalVideoPlaybackOptions = {\n autoPlay: boolean\n forwardedRef: Ref<HTMLVideoElement>\n prefersReducedMotion: boolean\n}\n\nexport function useMinimalVideoPlayback({\n autoPlay,\n forwardedRef,\n prefersReducedMotion,\n}: UseMinimalVideoPlaybackOptions) {\n const videoRef = useProvidedRefOrCreate<HTMLVideoElement | null>(forwardedRef)\n const pausedByViewportRef = useRef(false)\n const initialAutoPlayHandledRef = useRef(false)\n const [isPlaying, setIsPlaying] = useState(false)\n\n const requestPlayback = useCallback(async () => {\n const video = videoRef.current\n\n if (!video) return\n\n try {\n await video.play()\n } catch {\n if (video.paused) {\n setIsPlaying(false)\n }\n }\n }, [videoRef])\n\n const handlePlaybackStarted = useCallback(() => setIsPlaying(true), [])\n const handlePlaybackPaused = useCallback(() => setIsPlaying(false), [])\n const handlePlaybackEnded = useCallback(() => {\n pausedByViewportRef.current = false\n setIsPlaying(false)\n }, [])\n\n useEffect(() => {\n const video = videoRef.current\n\n if (!video) return\n\n const handleVisibilityChange = (isVisible: boolean) => {\n if (isVisible) {\n if (pausedByViewportRef.current) {\n pausedByViewportRef.current = false\n if (autoPlay && !prefersReducedMotion) {\n requestPlayback()\n }\n return\n }\n\n if (!initialAutoPlayHandledRef.current && prefersReducedMotion) {\n initialAutoPlayHandledRef.current = true\n return\n }\n\n if (!initialAutoPlayHandledRef.current && autoPlay) {\n initialAutoPlayHandledRef.current = true\n requestPlayback()\n }\n return\n }\n\n if (!video.paused) {\n pausedByViewportRef.current = autoPlay && !prefersReducedMotion\n video.pause()\n }\n }\n\n if (typeof IntersectionObserver === 'undefined') {\n handleVisibilityChange(true)\n return\n }\n\n const observer = new IntersectionObserver(([entry]) => {\n handleVisibilityChange(entry.intersectionRatio > 0)\n })\n\n observer.observe(video)\n return () => observer.disconnect()\n }, [autoPlay, prefersReducedMotion, requestPlayback, videoRef])\n\n useEffect(() => {\n if (!prefersReducedMotion) return\n\n initialAutoPlayHandledRef.current = true\n pausedByViewportRef.current = false\n videoRef.current?.pause()\n }, [prefersReducedMotion, videoRef])\n\n const togglePlayback = useCallback(() => {\n const video = videoRef.current\n\n if (!video) return\n\n initialAutoPlayHandledRef.current = true\n pausedByViewportRef.current = false\n\n if (isPlaying) {\n setIsPlaying(false)\n video.pause()\n return\n }\n\n requestPlayback()\n }, [isPlaying, requestPlayback, videoRef])\n\n return {\n handlePlaybackEnded,\n handlePlaybackPaused,\n handlePlaybackStarted,\n isPlaying,\n togglePlayback,\n videoRef,\n }\n}\n"],"mappings":";;;AAUA,SAAgB,EAAwB,EACtC,aACA,iBACA,2BACiC;CACjC,IAAM,IAAW,EAAgD,EAAa,EACxE,IAAsB,EAAO,GAAM,EACnC,IAA4B,EAAO,GAAM,EACzC,CAAC,GAAW,KAAgB,EAAS,GAAM,EAE3C,IAAkB,EAAY,YAAY;EAC9C,IAAM,IAAQ,EAAS;AAElB,QAEL,KAAI;AACF,SAAM,EAAM,MAAM;UACZ;AACN,GAAI,EAAM,UACR,EAAa,GAAM;;IAGtB,CAAC,EAAS,CAAC,EAER,IAAwB,QAAkB,EAAa,GAAK,EAAE,EAAE,CAAC,EACjE,IAAuB,QAAkB,EAAa,GAAM,EAAE,EAAE,CAAC,EACjE,IAAsB,QAAkB;AAE5C,EADA,EAAoB,UAAU,IAC9B,EAAa,GAAM;IAClB,EAAE,CAAC;AAyEN,QAvEA,QAAgB;EACd,IAAM,IAAQ,EAAS;AAEvB,MAAI,CAAC,EAAO;EAEZ,IAAM,KAA0B,MAAuB;AACrD,OAAI,GAAW;AACb,QAAI,EAAoB,SAAS;AAE/B,KADA,EAAoB,UAAU,IAC1B,KAAY,CAAC,KACf,GAAiB;AAEnB;;AAGF,QAAI,CAAC,EAA0B,WAAW,GAAsB;AAC9D,OAA0B,UAAU;AACpC;;AAGF,IAAI,CAAC,EAA0B,WAAW,MACxC,EAA0B,UAAU,IACpC,GAAiB;AAEnB;;AAGF,GAAK,EAAM,WACT,EAAoB,UAAU,KAAY,CAAC,GAC3C,EAAM,OAAO;;AAIjB,MAAI,OAAO,uBAAyB,KAAa;AAC/C,KAAuB,GAAK;AAC5B;;EAGF,IAAM,IAAW,IAAI,sBAAsB,CAAC,OAAW;AACrD,KAAuB,EAAM,oBAAoB,EAAE;IACnD;AAGF,SADA,EAAS,QAAQ,EAAM,QACV,EAAS,YAAY;IACjC;EAAC;EAAU;EAAsB;EAAiB;EAAS,CAAC,EAE/D,QAAgB;AACT,QAEL,EAA0B,UAAU,IACpC,EAAoB,UAAU,IAC9B,EAAS,SAAS,OAAO;IACxB,CAAC,GAAsB,EAAS,CAAC,EAmB7B;EACL;EACA;EACA;EACA;EACA,gBAtBqB,QAAkB;GACvC,IAAM,IAAQ,EAAS;AAElB,UAKL;QAHA,EAA0B,UAAU,IACpC,EAAoB,UAAU,IAE1B,GAAW;AAEb,KADA,EAAa,GAAM,EACnB,EAAM,OAAO;AACb;;AAGF,OAAiB;;KAChB;GAAC;GAAW;GAAiB;GAAS,CAOvC;EACA;EACD"}
1
+ {"version":3,"file":"useMinimalVideoPlayback.js","names":[],"sources":["../../src/MinimalVideoPlayer/useMinimalVideoPlayback.ts"],"sourcesContent":["import {useCallback, useEffect, useRef, useState, type Ref} from 'react'\n\nimport {useProvidedRefOrCreate} from '../hooks/useRef'\n\ntype UseMinimalVideoPlaybackOptions = {\n autoPlay: boolean\n forwardedRef: Ref<HTMLVideoElement>\n prefersReducedMotion: boolean\n}\n\nexport function useMinimalVideoPlayback({\n autoPlay,\n forwardedRef,\n prefersReducedMotion,\n}: UseMinimalVideoPlaybackOptions) {\n const videoRef = useProvidedRefOrCreate<HTMLVideoElement | null>(forwardedRef)\n const pausedByViewportRef = useRef(false)\n const initialAutoPlayHandledRef = useRef(false)\n const [isPlaying, setIsPlaying] = useState(false)\n\n const requestPlayback = useCallback(async () => {\n const video = videoRef.current\n\n if (!video) return\n\n try {\n await video.play()\n } catch {\n if (video.paused) {\n setIsPlaying(false)\n }\n }\n }, [videoRef])\n\n const handlePlaybackStarted = useCallback(() => setIsPlaying(true), [])\n const handlePlaybackPaused = useCallback(() => setIsPlaying(false), [])\n const handlePlaybackEnded = useCallback(() => {\n pausedByViewportRef.current = false\n setIsPlaying(false)\n }, [])\n\n useEffect(() => {\n const video = videoRef.current\n\n if (!video) return\n\n const handleVisibilityChange = (isVisible: boolean) => {\n if (isVisible) {\n if (pausedByViewportRef.current) {\n pausedByViewportRef.current = false\n if (autoPlay && !prefersReducedMotion) {\n requestPlayback()\n }\n return\n }\n\n if (!initialAutoPlayHandledRef.current && prefersReducedMotion) {\n initialAutoPlayHandledRef.current = true\n return\n }\n\n if (!initialAutoPlayHandledRef.current && autoPlay) {\n initialAutoPlayHandledRef.current = true\n requestPlayback()\n }\n return\n }\n\n if (!video.paused) {\n pausedByViewportRef.current = autoPlay && !prefersReducedMotion\n video.pause()\n }\n }\n\n if (typeof IntersectionObserver === 'undefined') {\n handleVisibilityChange(true)\n return\n }\n\n const observer = new IntersectionObserver(([entry]) => {\n handleVisibilityChange(entry.intersectionRatio > 0)\n })\n\n observer.observe(video)\n return () => observer.disconnect()\n }, [autoPlay, prefersReducedMotion, requestPlayback, videoRef])\n\n useEffect(() => {\n if (!prefersReducedMotion) return\n\n initialAutoPlayHandledRef.current = true\n pausedByViewportRef.current = false\n videoRef.current?.pause()\n }, [prefersReducedMotion, videoRef])\n\n const togglePlayback = useCallback(() => {\n const video = videoRef.current\n\n if (!video) return\n\n initialAutoPlayHandledRef.current = true\n pausedByViewportRef.current = false\n\n if (isPlaying) {\n setIsPlaying(false)\n video.pause()\n return\n }\n\n requestPlayback()\n }, [isPlaying, requestPlayback, videoRef])\n\n return {\n handlePlaybackEnded,\n handlePlaybackPaused,\n handlePlaybackStarted,\n isPlaying,\n togglePlayback,\n videoRef,\n }\n}\n"],"mappings":";;;AAUA,SAAgB,EAAwB,EACtC,aACA,iBACA,2BACiC;CACjC,IAAM,IAAW,EAAgD,CAAY,GACvE,IAAsB,EAAO,EAAK,GAClC,IAA4B,EAAO,EAAK,GACxC,CAAC,GAAW,KAAgB,EAAS,EAAK,GAE1C,IAAkB,EAAY,YAAY;EAC9C,IAAM,IAAQ,EAAS;EAElB,OAEL,IAAI;GACF,MAAM,EAAM,KAAK;EACnB,QAAQ;GACN,AAAI,EAAM,UACR,EAAa,EAAK;EAEtB;CACF,GAAG,CAAC,CAAQ,CAAC,GAEP,IAAwB,QAAkB,EAAa,EAAI,GAAG,CAAC,CAAC,GAChE,IAAuB,QAAkB,EAAa,EAAK,GAAG,CAAC,CAAC,GAChE,IAAsB,QAAkB;EAE5C,AADA,EAAoB,UAAU,IAC9B,EAAa,EAAK;CACpB,GAAG,CAAC,CAAC;CAyEL,OAvEA,QAAgB;EACd,IAAM,IAAQ,EAAS;EAEvB,IAAI,CAAC,GAAO;EAEZ,IAAM,KAA0B,MAAuB;GACrD,IAAI,GAAW;IACb,IAAI,EAAoB,SAAS;KAE/B,AADA,EAAoB,UAAU,IAC1B,KAAY,CAAC,KACf,EAAgB;KAElB;IACF;IAEA,IAAI,CAAC,EAA0B,WAAW,GAAsB;KAC9D,EAA0B,UAAU;KACpC;IACF;IAEA,AAAI,CAAC,EAA0B,WAAW,MACxC,EAA0B,UAAU,IACpC,EAAgB;IAElB;GACF;GAEA,AAAK,EAAM,WACT,EAAoB,UAAU,KAAY,CAAC,GAC3C,EAAM,MAAM;EAEhB;EAEA,IAAI,OAAO,uBAAyB,KAAa;GAC/C,EAAuB,EAAI;GAC3B;EACF;EAEA,IAAM,IAAW,IAAI,sBAAsB,CAAC,OAAW;GACrD,EAAuB,EAAM,oBAAoB,CAAC;EACpD,CAAC;EAGD,OADA,EAAS,QAAQ,CAAK,SACT,EAAS,WAAW;CACnC,GAAG;EAAC;EAAU;EAAsB;EAAiB;CAAQ,CAAC,GAE9D,QAAgB;EACT,MAEL,EAA0B,UAAU,IACpC,EAAoB,UAAU,IAC9B,EAAS,SAAS,MAAM;CAC1B,GAAG,CAAC,GAAsB,CAAQ,CAAC,GAmB5B;EACL;EACA;EACA;EACA;EACA,gBAtBqB,QAAkB;GACvC,IAAM,IAAQ,EAAS;GAElB,OAKL;QAHA,EAA0B,UAAU,IACpC,EAAoB,UAAU,IAE1B,GAAW;KAEb,AADA,EAAa,EAAK,GAClB,EAAM,MAAM;KACZ;IACF;IAEA,EAAgB;GAFhB;EAGF,GAAG;GAAC;GAAW;GAAiB;EAAQ,CAOtC;EACA;CACF;AACF"}
@@ -1,6 +1,6 @@
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
- import { TriangleDownIcon as n } from "../node_modules/@primer/octicons-react/dist/index.esm.js";
3
+ import { TriangleDownIcon as n } from "../node_modules/@primer/octicons-react/dist/icons/TriangleDownIcon.js";
4
4
  import '../packages/design-tokens/lib/design-tokens/css/tokens/functional/components/nav-list/colors-with-modes-CGyt2t8f.css';/* empty css */
5
5
  import r from "./NavList.module.js";
6
6
  import i, { Children as a, createContext as o, forwardRef as s, isValidElement as c, useCallback as l, useContext as u, useEffect as d, useMemo as f, useRef as p, useState as m } from "react";
@@ -1 +1 @@
1
- {"version":3,"file":"NavList.js","names":[],"sources":["../../src/NavList/NavList.tsx"],"sourcesContent":["import React, {\n Children,\n createContext,\n forwardRef,\n isValidElement,\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useRef,\n useState,\n type AriaAttributes,\n type MutableRefObject,\n type PropsWithChildren,\n type ReactElement,\n type ReactNode,\n type Ref,\n} from 'react'\n\nimport {clsx} from 'clsx'\nimport {TriangleDownIcon, type Icon} from '@primer/octicons-react'\nimport type {BaseProps} from '../component-helpers'\nimport {useId} from '../hooks/useId'\nimport '@primer/brand-primitives/lib/design-tokens/css/tokens/functional/components/nav-list/colors-with-modes.css'\n\n/** * Main stylesheet (as a CSS Module) */\nimport styles from './NavList.module.css'\n\nconst testIds = {\n root: 'NavList',\n get list() {\n return `${this.root}-list`\n },\n get item() {\n return `${this.root}-item`\n },\n get link() {\n return `${this.root}-link`\n },\n get leadingVisual() {\n return `${this.root}-leading-visual`\n },\n get trailingVisual() {\n return `${this.root}-trailing-visual`\n },\n get subNav() {\n return `${this.root}-sub-nav`\n },\n get group() {\n return `${this.root}-group`\n },\n get groupTitle() {\n return `${this.root}-group-title`\n },\n get groupList() {\n return `${this.root}-group-list`\n },\n get toggle() {\n return `${this.root}-toggle`\n },\n}\n\nexport type NavListRootProps = {\n /**\n * Accessible label for the navigation landmark.\n */\n 'aria-label': string\n /**\n * ID of an element that labels the navigation landmark.\n */\n 'aria-labelledby'?: string\n children: ReactNode\n 'data-testid'?: string\n} & BaseProps<HTMLElement> &\n Omit<React.HTMLAttributes<HTMLElement>, 'aria-label' | 'aria-labelledby'>\n\ntype NavListLevel = 1 | 2 | 3 | 4 | 5\n\nconst MaxNavListLevel = 5\nconst NavListLevelContext = createContext<NavListLevel>(1)\nconst NavListSubNavContext = createContext<{\n expanded: boolean\n labelledBy?: string\n level: NavListLevel\n}>({\n expanded: true,\n level: 2,\n})\n\nconst NavListRoot = forwardRef<HTMLElement, NavListRootProps>(\n (\n {children, className, 'aria-label': ariaLabel, 'aria-labelledby': ariaLabelledBy, 'data-testid': testId, ...rest},\n ref,\n ) => {\n const childrenArray = useMemo(() => Children.toArray(children), [children])\n const hasTopLevelSubNav = useMemo(() => childrenArray.some(childHasDirectSubNav), [childrenArray])\n const hasTopLevelGroup = useMemo(() => childrenArray.some(childIsNavListGroupElement), [childrenArray])\n const rootLevel = hasTopLevelSubNav ? 1 : 2\n const hasFlatRootList = !hasTopLevelSubNav && !hasTopLevelGroup\n\n return (\n <nav\n ref={ref}\n className={clsx(styles.NavList, className)}\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledBy}\n data-testid={testId || testIds.root}\n {...rest}\n >\n <NavListLevelContext.Provider value={rootLevel}>\n <ul\n className={clsx(styles.NavList__list, hasFlatRootList && styles['NavList__list--flat'])}\n data-testid={testIds.list}\n >\n {children}\n </ul>\n </NavListLevelContext.Provider>\n </nav>\n )\n },\n)\n\ntype Visual = ReactElement | React.ElementType | Icon\ntype NavListItemAs = 'a' | 'button'\n\ntype NavListItemBaseProps = {\n /**\n * Leading visual rendered before the item label.\n */\n leadingVisual?: Visual\n /**\n * Trailing visual rendered after the item label.\n */\n trailingVisual?: Visual\n /**\n * Whether nested items should be expanded by default.\n */\n defaultExpanded?: boolean\n /**\n * Controls the nested item expanded state.\n */\n expanded?: boolean\n /**\n * Called when a nested item is expanded or collapsed.\n */\n onExpandedChange?: (expanded: boolean) => void\n /**\n * Marks the item as disabled. Disabled link items receive `aria-disabled`.\n */\n disabled?: boolean\n 'data-testid'?: string\n}\n\nexport type NavListItemProps<C extends NavListItemAs = 'a'> = {\n as?: C\n} & NavListItemBaseProps &\n PropsWithChildren<BaseProps<HTMLElement>> &\n Omit<React.ComponentPropsWithoutRef<C>, keyof NavListItemBaseProps | keyof BaseProps<HTMLElement> | 'as' | 'children'>\n\ntype NavListSubNavElement = ReactElement<NavListSubNavProps>\n\nconst NavListItem = forwardRef(\n (\n {\n as,\n children,\n className,\n defaultExpanded = false,\n disabled = false,\n expanded,\n leadingVisual,\n onClick,\n onExpandedChange,\n trailingVisual,\n 'aria-current': ariaCurrent,\n 'data-testid': testId,\n ...rest\n }: NavListItemProps<NavListItemAs>,\n ref: Ref<HTMLElement>,\n ) => {\n const Component = (as || 'a') as React.ElementType\n const level = useContext(NavListLevelContext)\n const subNavId = useId()\n const accordionButtonId = useId()\n const childrenArray = useMemo(() => Children.toArray(children), [children])\n const subNavChildren = useMemo(() => childrenArray.filter(isNavListSubNavElement), [childrenArray])\n const subNav = useMemo(() => childrenArray.find(isNavListSubNavElement), [childrenArray])\n const navListGroupChildren = useMemo(() => childrenArray.filter(childHasNavListGroupElement), [childrenArray])\n const labelChildren = useMemo(\n () => (subNav ? childrenArray.filter(child => child !== subNav) : childrenArray),\n [childrenArray, subNav],\n )\n const hasLabelContent = labelChildren.length > 0\n const hasSubNav = Boolean(subNav)\n const canExpand = level < MaxNavListLevel\n const isLeafItem = !hasSubNav\n const controlledSubNavId = subNav?.props.id ?? subNavId\n const hasCurrentSubNavItem = useMemo(() => hasCurrentDescendant(subNav?.props.children), [subNav?.props.children])\n const isControlled = expanded !== undefined\n const [uncontrolledExpanded, setUncontrolledExpanded] = useState(defaultExpanded || hasCurrentSubNavItem)\n const isExpanded = Boolean(isControlled ? expanded : uncontrolledExpanded)\n const {\n href,\n id: accordionButtonIdProp,\n ...accordionButtonProps\n } = rest as React.ButtonHTMLAttributes<HTMLButtonElement> & {\n href?: string\n }\n const controlledAccordionButtonId = accordionButtonIdProp ?? accordionButtonId\n const itemOnClick = onClick as React.MouseEventHandler<HTMLElement> | undefined\n const invalidMessage = useMemo(() => {\n if (navListGroupChildren.length > 0) {\n return 'NavList.Item: NavList.Group is not supported as a child. Use NavList.SubNav for nested disclosure. NavList.Item will not be rendered.'\n }\n\n if (hasSubNav && !canExpand) {\n return 'NavList.Item: NavList supports up to 5 levels. Level 5 items cannot contain NavList.SubNav. NavList.Item will not be rendered.'\n }\n\n if (subNavChildren.length > 1) {\n return 'NavList.Item: Only one NavList.SubNav child is supported. NavList.Item will not be rendered.'\n }\n\n if (hasSubNav && !hasLabelContent) {\n return 'NavList.Item: A label is required when using NavList.SubNav. NavList.Item will not be rendered.'\n }\n\n if (hasSubNav && (href !== undefined || as !== undefined)) {\n return 'NavList.Item: `href` and `as` are not supported when using NavList.SubNav because expandable items render as buttons. NavList.Item will not be rendered.'\n }\n }, [as, canExpand, hasLabelContent, hasSubNav, href, navListGroupChildren.length, subNavChildren.length])\n\n useEffect(() => {\n if (hasCurrentSubNavItem && !isControlled) {\n setUncontrolledExpanded(true)\n }\n }, [hasCurrentSubNavItem, isControlled])\n\n const setExpanded = useCallback(\n (value: boolean) => {\n if (!isControlled) {\n setUncontrolledExpanded(value)\n }\n onExpandedChange?.(value)\n },\n [isControlled, onExpandedChange],\n )\n\n const toggleExpanded = useCallback(() => {\n setExpanded(!isExpanded)\n }, [isExpanded, setExpanded])\n\n const handleClick = useCallback(\n (event: React.MouseEvent<HTMLElement>) => {\n if (disabled) {\n event.preventDefault()\n return\n }\n\n itemOnClick?.(event)\n },\n [disabled, itemOnClick],\n )\n\n const setAccordionButtonRef = useCallback(\n (node: HTMLButtonElement | null) => {\n assignRef(ref, node)\n },\n [ref],\n )\n\n const handleAccordionClick = useCallback(\n (event: React.MouseEvent<HTMLButtonElement>) => {\n if (disabled) {\n event.preventDefault()\n return\n }\n\n itemOnClick?.(event)\n\n if (!event.defaultPrevented) {\n toggleExpanded()\n }\n },\n [disabled, itemOnClick, toggleExpanded],\n )\n\n if (invalidMessage) {\n warnNavListValidation(invalidMessage)\n return null\n }\n\n const labelArea = (\n <span className={styles.NavList__labelArea}>\n {renderVisual(leadingVisual, styles.NavList__leadingVisual, testIds.leadingVisual)}\n <span className={styles.NavList__label}>{labelChildren}</span>\n {renderVisual(trailingVisual, styles.NavList__trailingVisual, testIds.trailingVisual)}\n </span>\n )\n\n return (\n <li\n className={clsx(\n styles.NavList__item,\n styles[`NavList__item--level-${level}`],\n isLeafItem && styles['NavList__item--leaf'],\n hasSubNav && isExpanded && styles['NavList__item--expanded'],\n hasCurrentSubNavItem && styles['NavList__item--has-current-descendant'],\n )}\n data-testid={testId || testIds.item}\n >\n <div className={styles.NavList__itemContent}>\n {hasSubNav && canExpand ? (\n <button\n ref={setAccordionButtonRef}\n id={controlledAccordionButtonId}\n type=\"button\"\n className={clsx(\n styles.NavList__link,\n styles.NavList__accordionButton,\n disabled && styles['NavList__link--disabled'],\n className,\n )}\n aria-expanded={isExpanded ? 'true' : 'false'}\n aria-controls={controlledSubNavId}\n data-testid={testIds.toggle}\n {...accordionButtonProps}\n disabled={disabled}\n onClick={handleAccordionClick}\n >\n <TriangleDownIcon className={styles.NavList__toggleIcon} aria-hidden=\"true\" />\n {labelArea}\n </button>\n ) : (\n <Component\n ref={ref}\n className={clsx(styles.NavList__link, disabled && styles['NavList__link--disabled'], className)}\n aria-current={ariaCurrent}\n aria-disabled={disabled || undefined}\n data-testid={testIds.link}\n onClick={handleClick}\n {...rest}\n >\n {labelArea}\n </Component>\n )}\n </div>\n\n {subNav ? (\n <NavListSubNavContext.Provider\n value={{expanded: isExpanded, labelledBy: controlledAccordionButtonId, level: (level + 1) as NavListLevel}}\n >\n {React.cloneElement(subNav, {\n id: controlledSubNavId,\n })}\n </NavListSubNavContext.Provider>\n ) : null}\n </li>\n )\n },\n) as <C extends NavListItemAs = 'a'>(props: NavListItemProps<C> & {ref?: Ref<HTMLElement>}) => ReactElement | null\n\nexport type NavListSubNavProps = {\n children: ReactNode\n 'data-testid'?: string\n} & BaseProps<HTMLUListElement> &\n React.HTMLAttributes<HTMLUListElement>\n\nconst NavListSubNav = forwardRef<HTMLUListElement, NavListSubNavProps>(\n ({children, className, 'aria-labelledby': ariaLabelledBy, 'data-testid': testId, ...rest}, ref) => {\n const {expanded, labelledBy, level} = useContext(NavListSubNavContext)\n const subNavRef = useRef<HTMLUListElement | null>(null)\n\n const setSubNavHeight = useCallback((subNav: HTMLUListElement) => {\n subNav.style.setProperty('--brand-NavList-subNav-height', `${subNav.scrollHeight}px`)\n }, [])\n\n const setSubNavAndAncestorHeights = useCallback(() => {\n let subNav = subNavRef.current\n\n while (subNav) {\n setSubNavHeight(subNav)\n subNav = subNav.parentElement?.closest<HTMLUListElement>(`.${styles.NavList__subNav}`) ?? null\n }\n }, [setSubNavHeight])\n\n const setSubNavRef = useCallback(\n (node: HTMLUListElement | null) => {\n subNavRef.current = node\n assignRef(ref, node)\n },\n [ref],\n )\n\n useEffect(() => {\n setSubNavAndAncestorHeights()\n }, [children, expanded, setSubNavAndAncestorHeights])\n\n useEffect(() => {\n subNavRef.current?.toggleAttribute('inert', !expanded)\n }, [expanded])\n\n useEffect(() => {\n const subNav = subNavRef.current\n\n if (!subNav || typeof ResizeObserver === 'undefined') {\n return\n }\n\n const resizeObserver = new ResizeObserver(setSubNavAndAncestorHeights)\n resizeObserver.observe(subNav)\n\n return () => {\n resizeObserver.disconnect()\n }\n }, [setSubNavAndAncestorHeights])\n\n return (\n <ul\n ref={setSubNavRef}\n className={clsx(styles.NavList__subNav, expanded && styles['NavList__subNav--expanded'], className)}\n aria-labelledby={ariaLabelledBy ?? labelledBy}\n {...rest}\n aria-hidden={expanded ? undefined : 'true'}\n data-testid={testId || testIds.subNav}\n >\n <NavListLevelContext.Provider value={level}>{children}</NavListLevelContext.Provider>\n </ul>\n )\n },\n)\n\nexport type NavListGroupProps = {\n /**\n * Heading text for the group.\n */\n title?: ReactNode\n children: ReactNode\n 'data-testid'?: string\n} & BaseProps<HTMLLIElement> &\n Omit<React.LiHTMLAttributes<HTMLLIElement>, 'title'>\n\nconst NavListGroup = forwardRef<HTMLLIElement, NavListGroupProps>(\n ({title, children, className, 'data-testid': testId, ...rest}, ref) => {\n const titleId = useId()\n const validChildren = useMemo(() => {\n const getValidChildren = (childrenToValidate: ReactNode): ReactNode[] =>\n Children.toArray(childrenToValidate).flatMap(child => {\n if (isNavListItemElement(child)) {\n return [child]\n }\n\n if (isValidElement(child) && child.type === React.Fragment) {\n return getValidChildren((child as ElementWithChildren).props.children)\n }\n\n return []\n })\n\n return getValidChildren(children)\n }, [children])\n const hasInvalidChild = useMemo(() => {\n const containsInvalidChild = (childrenToValidate: ReactNode): boolean =>\n Children.toArray(childrenToValidate).some(child => {\n if (isNavListItemElement(child)) {\n return false\n }\n\n if (isValidElement(child) && child.type === React.Fragment) {\n return containsInvalidChild((child as ElementWithChildren).props.children)\n }\n\n return true\n })\n\n return containsInvalidChild(children)\n }, [children])\n\n if (hasInvalidChild) {\n warnNavListValidation(\n 'NavList.Group: Only NavList.Item children are supported. Invalid children will not be rendered. Use NavList.SubNav as a child of NavList.Item for nested disclosure.',\n )\n }\n\n return (\n <li ref={ref} className={clsx(styles.NavList__group, className)} data-testid={testId || testIds.group} {...rest}>\n {title ? (\n <h3 id={titleId} className={styles.NavList__groupTitle} data-testid={testIds.groupTitle}>\n {title}\n </h3>\n ) : null}\n <ul\n className={styles.NavList__groupList}\n aria-labelledby={title ? titleId : undefined}\n data-testid={testIds.groupList}\n >\n <NavListLevelContext.Provider value={2}>{validChildren}</NavListLevelContext.Provider>\n </ul>\n </li>\n )\n },\n)\n\n/**\n * Use NavList to render vertical navigation links with groups and expandable nested lists.\n * @see https://primer.style/brand/components/NavList\n */\nexport const NavList = Object.assign(NavListRoot, {\n Item: NavListItem,\n SubNav: NavListSubNav,\n Group: NavListGroup,\n testIds,\n})\n\ntype ElementWithChildren = ReactElement<{children?: ReactNode}>\ntype ElementWithCurrent = ReactElement<{children?: ReactNode; 'aria-current'?: AriaAttributes['aria-current']}>\n\nfunction isNavListSubNavElement(node: ReactNode): node is NavListSubNavElement {\n return isValidElement<NavListSubNavProps>(node) && node.type === NavListSubNav\n}\n\nfunction isNavListItemElement(node: ReactNode): node is ReactElement<NavListItemProps> {\n return isValidElement<NavListItemProps>(node) && node.type === NavListItem\n}\n\nfunction isNavListGroupElement(node: ReactNode): node is ReactElement<NavListGroupProps> {\n return isValidElement<NavListGroupProps>(node) && node.type === NavListGroup\n}\n\nfunction isCurrentValue(value: AriaAttributes['aria-current']) {\n return Boolean(value) && value !== 'false'\n}\n\nfunction hasCurrentDescendant(node: ReactNode): boolean {\n return Children.toArray(node).some(child => {\n if (!isValidElement(child)) return false\n\n const currentChild = child as ElementWithCurrent\n if (isCurrentValue(currentChild.props['aria-current'])) return true\n\n return hasCurrentDescendant((child as ElementWithChildren).props.children)\n })\n}\n\nfunction assignRef<T>(ref: Ref<T> | undefined, value: T | null) {\n if (!ref) return\n\n if (typeof ref === 'function') {\n ref(value)\n return\n }\n\n ;(ref as MutableRefObject<T | null>).current = value\n}\n\nfunction childHasDirectSubNav(node: ReactNode): boolean {\n if (!isValidElement(node)) return false\n\n if (node.type === React.Fragment) {\n return Children.toArray((node as ElementWithChildren).props.children).some(childHasDirectSubNav)\n }\n\n return Children.toArray((node as ElementWithChildren).props.children).some(isNavListSubNavElement)\n}\n\nfunction childIsNavListGroupElement(node: ReactNode): boolean {\n if (!isValidElement(node)) return false\n\n if (node.type === React.Fragment) {\n return Children.toArray((node as ElementWithChildren).props.children).some(childIsNavListGroupElement)\n }\n\n return isNavListGroupElement(node)\n}\n\nfunction childHasNavListGroupElement(node: ReactNode): boolean {\n if (!isValidElement(node)) return false\n\n if (node.type === React.Fragment) {\n return Children.toArray((node as ElementWithChildren).props.children).some(childHasNavListGroupElement)\n }\n\n return isNavListGroupElement(node)\n}\n\nfunction renderVisual(visual: Visual | undefined, className: string, testId: string) {\n if (!visual) return null\n\n const visualElement = isValidElement(visual) ? visual : React.createElement(visual)\n\n if (!isValidElement<{className?: string; ['aria-hidden']?: string; focusable?: string}>(visualElement)) return null\n\n return (\n <span className={className} data-testid={testId}>\n {React.cloneElement(visualElement, {\n className: visualElement.props.className,\n 'aria-hidden': 'true',\n focusable: 'false',\n })}\n </span>\n )\n}\n\nfunction warnNavListValidation(message: string) {\n if (process.env.NODE_ENV === 'development' || process.env.NODE_ENV === 'test') {\n // eslint-disable-next-line no-console\n console.warn(message)\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"NavList.js","names":[],"sources":["../../src/NavList/NavList.tsx"],"sourcesContent":["import React, {\n Children,\n createContext,\n forwardRef,\n isValidElement,\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useRef,\n useState,\n type AriaAttributes,\n type MutableRefObject,\n type PropsWithChildren,\n type ReactElement,\n type ReactNode,\n type Ref,\n} from 'react'\n\nimport {clsx} from 'clsx'\nimport {TriangleDownIcon, type Icon} from '@primer/octicons-react'\nimport type {BaseProps} from '../component-helpers'\nimport {useId} from '../hooks/useId'\nimport '@primer/brand-primitives/lib/design-tokens/css/tokens/functional/components/nav-list/colors-with-modes.css'\n\n/** * Main stylesheet (as a CSS Module) */\nimport styles from './NavList.module.css'\n\nconst testIds = {\n root: 'NavList',\n get list() {\n return `${this.root}-list`\n },\n get item() {\n return `${this.root}-item`\n },\n get link() {\n return `${this.root}-link`\n },\n get leadingVisual() {\n return `${this.root}-leading-visual`\n },\n get trailingVisual() {\n return `${this.root}-trailing-visual`\n },\n get subNav() {\n return `${this.root}-sub-nav`\n },\n get group() {\n return `${this.root}-group`\n },\n get groupTitle() {\n return `${this.root}-group-title`\n },\n get groupList() {\n return `${this.root}-group-list`\n },\n get toggle() {\n return `${this.root}-toggle`\n },\n}\n\nexport type NavListRootProps = {\n /**\n * Accessible label for the navigation landmark.\n */\n 'aria-label': string\n /**\n * ID of an element that labels the navigation landmark.\n */\n 'aria-labelledby'?: string\n children: ReactNode\n 'data-testid'?: string\n} & BaseProps<HTMLElement> &\n Omit<React.HTMLAttributes<HTMLElement>, 'aria-label' | 'aria-labelledby'>\n\ntype NavListLevel = 1 | 2 | 3 | 4 | 5\n\nconst MaxNavListLevel = 5\nconst NavListLevelContext = createContext<NavListLevel>(1)\nconst NavListSubNavContext = createContext<{\n expanded: boolean\n labelledBy?: string\n level: NavListLevel\n}>({\n expanded: true,\n level: 2,\n})\n\nconst NavListRoot = forwardRef<HTMLElement, NavListRootProps>(\n (\n {children, className, 'aria-label': ariaLabel, 'aria-labelledby': ariaLabelledBy, 'data-testid': testId, ...rest},\n ref,\n ) => {\n const childrenArray = useMemo(() => Children.toArray(children), [children])\n const hasTopLevelSubNav = useMemo(() => childrenArray.some(childHasDirectSubNav), [childrenArray])\n const hasTopLevelGroup = useMemo(() => childrenArray.some(childIsNavListGroupElement), [childrenArray])\n const rootLevel = hasTopLevelSubNav ? 1 : 2\n const hasFlatRootList = !hasTopLevelSubNav && !hasTopLevelGroup\n\n return (\n <nav\n ref={ref}\n className={clsx(styles.NavList, className)}\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledBy}\n data-testid={testId || testIds.root}\n {...rest}\n >\n <NavListLevelContext.Provider value={rootLevel}>\n <ul\n className={clsx(styles.NavList__list, hasFlatRootList && styles['NavList__list--flat'])}\n data-testid={testIds.list}\n >\n {children}\n </ul>\n </NavListLevelContext.Provider>\n </nav>\n )\n },\n)\n\ntype Visual = ReactElement | React.ElementType | Icon\ntype NavListItemAs = 'a' | 'button'\n\ntype NavListItemBaseProps = {\n /**\n * Leading visual rendered before the item label.\n */\n leadingVisual?: Visual\n /**\n * Trailing visual rendered after the item label.\n */\n trailingVisual?: Visual\n /**\n * Whether nested items should be expanded by default.\n */\n defaultExpanded?: boolean\n /**\n * Controls the nested item expanded state.\n */\n expanded?: boolean\n /**\n * Called when a nested item is expanded or collapsed.\n */\n onExpandedChange?: (expanded: boolean) => void\n /**\n * Marks the item as disabled. Disabled link items receive `aria-disabled`.\n */\n disabled?: boolean\n 'data-testid'?: string\n}\n\nexport type NavListItemProps<C extends NavListItemAs = 'a'> = {\n as?: C\n} & NavListItemBaseProps &\n PropsWithChildren<BaseProps<HTMLElement>> &\n Omit<React.ComponentPropsWithoutRef<C>, keyof NavListItemBaseProps | keyof BaseProps<HTMLElement> | 'as' | 'children'>\n\ntype NavListSubNavElement = ReactElement<NavListSubNavProps>\n\nconst NavListItem = forwardRef(\n (\n {\n as,\n children,\n className,\n defaultExpanded = false,\n disabled = false,\n expanded,\n leadingVisual,\n onClick,\n onExpandedChange,\n trailingVisual,\n 'aria-current': ariaCurrent,\n 'data-testid': testId,\n ...rest\n }: NavListItemProps<NavListItemAs>,\n ref: Ref<HTMLElement>,\n ) => {\n const Component = (as || 'a') as React.ElementType\n const level = useContext(NavListLevelContext)\n const subNavId = useId()\n const accordionButtonId = useId()\n const childrenArray = useMemo(() => Children.toArray(children), [children])\n const subNavChildren = useMemo(() => childrenArray.filter(isNavListSubNavElement), [childrenArray])\n const subNav = useMemo(() => childrenArray.find(isNavListSubNavElement), [childrenArray])\n const navListGroupChildren = useMemo(() => childrenArray.filter(childHasNavListGroupElement), [childrenArray])\n const labelChildren = useMemo(\n () => (subNav ? childrenArray.filter(child => child !== subNav) : childrenArray),\n [childrenArray, subNav],\n )\n const hasLabelContent = labelChildren.length > 0\n const hasSubNav = Boolean(subNav)\n const canExpand = level < MaxNavListLevel\n const isLeafItem = !hasSubNav\n const controlledSubNavId = subNav?.props.id ?? subNavId\n const hasCurrentSubNavItem = useMemo(() => hasCurrentDescendant(subNav?.props.children), [subNav?.props.children])\n const isControlled = expanded !== undefined\n const [uncontrolledExpanded, setUncontrolledExpanded] = useState(defaultExpanded || hasCurrentSubNavItem)\n const isExpanded = Boolean(isControlled ? expanded : uncontrolledExpanded)\n const {\n href,\n id: accordionButtonIdProp,\n ...accordionButtonProps\n } = rest as React.ButtonHTMLAttributes<HTMLButtonElement> & {\n href?: string\n }\n const controlledAccordionButtonId = accordionButtonIdProp ?? accordionButtonId\n const itemOnClick = onClick as React.MouseEventHandler<HTMLElement> | undefined\n const invalidMessage = useMemo(() => {\n if (navListGroupChildren.length > 0) {\n return 'NavList.Item: NavList.Group is not supported as a child. Use NavList.SubNav for nested disclosure. NavList.Item will not be rendered.'\n }\n\n if (hasSubNav && !canExpand) {\n return 'NavList.Item: NavList supports up to 5 levels. Level 5 items cannot contain NavList.SubNav. NavList.Item will not be rendered.'\n }\n\n if (subNavChildren.length > 1) {\n return 'NavList.Item: Only one NavList.SubNav child is supported. NavList.Item will not be rendered.'\n }\n\n if (hasSubNav && !hasLabelContent) {\n return 'NavList.Item: A label is required when using NavList.SubNav. NavList.Item will not be rendered.'\n }\n\n if (hasSubNav && (href !== undefined || as !== undefined)) {\n return 'NavList.Item: `href` and `as` are not supported when using NavList.SubNav because expandable items render as buttons. NavList.Item will not be rendered.'\n }\n }, [as, canExpand, hasLabelContent, hasSubNav, href, navListGroupChildren.length, subNavChildren.length])\n\n useEffect(() => {\n if (hasCurrentSubNavItem && !isControlled) {\n setUncontrolledExpanded(true)\n }\n }, [hasCurrentSubNavItem, isControlled])\n\n const setExpanded = useCallback(\n (value: boolean) => {\n if (!isControlled) {\n setUncontrolledExpanded(value)\n }\n onExpandedChange?.(value)\n },\n [isControlled, onExpandedChange],\n )\n\n const toggleExpanded = useCallback(() => {\n setExpanded(!isExpanded)\n }, [isExpanded, setExpanded])\n\n const handleClick = useCallback(\n (event: React.MouseEvent<HTMLElement>) => {\n if (disabled) {\n event.preventDefault()\n return\n }\n\n itemOnClick?.(event)\n },\n [disabled, itemOnClick],\n )\n\n const setAccordionButtonRef = useCallback(\n (node: HTMLButtonElement | null) => {\n assignRef(ref, node)\n },\n [ref],\n )\n\n const handleAccordionClick = useCallback(\n (event: React.MouseEvent<HTMLButtonElement>) => {\n if (disabled) {\n event.preventDefault()\n return\n }\n\n itemOnClick?.(event)\n\n if (!event.defaultPrevented) {\n toggleExpanded()\n }\n },\n [disabled, itemOnClick, toggleExpanded],\n )\n\n if (invalidMessage) {\n warnNavListValidation(invalidMessage)\n return null\n }\n\n const labelArea = (\n <span className={styles.NavList__labelArea}>\n {renderVisual(leadingVisual, styles.NavList__leadingVisual, testIds.leadingVisual)}\n <span className={styles.NavList__label}>{labelChildren}</span>\n {renderVisual(trailingVisual, styles.NavList__trailingVisual, testIds.trailingVisual)}\n </span>\n )\n\n return (\n <li\n className={clsx(\n styles.NavList__item,\n styles[`NavList__item--level-${level}`],\n isLeafItem && styles['NavList__item--leaf'],\n hasSubNav && isExpanded && styles['NavList__item--expanded'],\n hasCurrentSubNavItem && styles['NavList__item--has-current-descendant'],\n )}\n data-testid={testId || testIds.item}\n >\n <div className={styles.NavList__itemContent}>\n {hasSubNav && canExpand ? (\n <button\n ref={setAccordionButtonRef}\n id={controlledAccordionButtonId}\n type=\"button\"\n className={clsx(\n styles.NavList__link,\n styles.NavList__accordionButton,\n disabled && styles['NavList__link--disabled'],\n className,\n )}\n aria-expanded={isExpanded ? 'true' : 'false'}\n aria-controls={controlledSubNavId}\n data-testid={testIds.toggle}\n {...accordionButtonProps}\n disabled={disabled}\n onClick={handleAccordionClick}\n >\n <TriangleDownIcon className={styles.NavList__toggleIcon} aria-hidden=\"true\" />\n {labelArea}\n </button>\n ) : (\n <Component\n ref={ref}\n className={clsx(styles.NavList__link, disabled && styles['NavList__link--disabled'], className)}\n aria-current={ariaCurrent}\n aria-disabled={disabled || undefined}\n data-testid={testIds.link}\n onClick={handleClick}\n {...rest}\n >\n {labelArea}\n </Component>\n )}\n </div>\n\n {subNav ? (\n <NavListSubNavContext.Provider\n value={{expanded: isExpanded, labelledBy: controlledAccordionButtonId, level: (level + 1) as NavListLevel}}\n >\n {React.cloneElement(subNav, {\n id: controlledSubNavId,\n })}\n </NavListSubNavContext.Provider>\n ) : null}\n </li>\n )\n },\n) as <C extends NavListItemAs = 'a'>(props: NavListItemProps<C> & {ref?: Ref<HTMLElement>}) => ReactElement | null\n\nexport type NavListSubNavProps = {\n children: ReactNode\n 'data-testid'?: string\n} & BaseProps<HTMLUListElement> &\n React.HTMLAttributes<HTMLUListElement>\n\nconst NavListSubNav = forwardRef<HTMLUListElement, NavListSubNavProps>(\n ({children, className, 'aria-labelledby': ariaLabelledBy, 'data-testid': testId, ...rest}, ref) => {\n const {expanded, labelledBy, level} = useContext(NavListSubNavContext)\n const subNavRef = useRef<HTMLUListElement | null>(null)\n\n const setSubNavHeight = useCallback((subNav: HTMLUListElement) => {\n subNav.style.setProperty('--brand-NavList-subNav-height', `${subNav.scrollHeight}px`)\n }, [])\n\n const setSubNavAndAncestorHeights = useCallback(() => {\n let subNav = subNavRef.current\n\n while (subNav) {\n setSubNavHeight(subNav)\n subNav = subNav.parentElement?.closest<HTMLUListElement>(`.${styles.NavList__subNav}`) ?? null\n }\n }, [setSubNavHeight])\n\n const setSubNavRef = useCallback(\n (node: HTMLUListElement | null) => {\n subNavRef.current = node\n assignRef(ref, node)\n },\n [ref],\n )\n\n useEffect(() => {\n setSubNavAndAncestorHeights()\n }, [children, expanded, setSubNavAndAncestorHeights])\n\n useEffect(() => {\n subNavRef.current?.toggleAttribute('inert', !expanded)\n }, [expanded])\n\n useEffect(() => {\n const subNav = subNavRef.current\n\n if (!subNav || typeof ResizeObserver === 'undefined') {\n return\n }\n\n const resizeObserver = new ResizeObserver(setSubNavAndAncestorHeights)\n resizeObserver.observe(subNav)\n\n return () => {\n resizeObserver.disconnect()\n }\n }, [setSubNavAndAncestorHeights])\n\n return (\n <ul\n ref={setSubNavRef}\n className={clsx(styles.NavList__subNav, expanded && styles['NavList__subNav--expanded'], className)}\n aria-labelledby={ariaLabelledBy ?? labelledBy}\n {...rest}\n aria-hidden={expanded ? undefined : 'true'}\n data-testid={testId || testIds.subNav}\n >\n <NavListLevelContext.Provider value={level}>{children}</NavListLevelContext.Provider>\n </ul>\n )\n },\n)\n\nexport type NavListGroupProps = {\n /**\n * Heading text for the group.\n */\n title?: ReactNode\n children: ReactNode\n 'data-testid'?: string\n} & BaseProps<HTMLLIElement> &\n Omit<React.LiHTMLAttributes<HTMLLIElement>, 'title'>\n\nconst NavListGroup = forwardRef<HTMLLIElement, NavListGroupProps>(\n ({title, children, className, 'data-testid': testId, ...rest}, ref) => {\n const titleId = useId()\n const validChildren = useMemo(() => {\n const getValidChildren = (childrenToValidate: ReactNode): ReactNode[] =>\n Children.toArray(childrenToValidate).flatMap(child => {\n if (isNavListItemElement(child)) {\n return [child]\n }\n\n if (isValidElement(child) && child.type === React.Fragment) {\n return getValidChildren((child as ElementWithChildren).props.children)\n }\n\n return []\n })\n\n return getValidChildren(children)\n }, [children])\n const hasInvalidChild = useMemo(() => {\n const containsInvalidChild = (childrenToValidate: ReactNode): boolean =>\n Children.toArray(childrenToValidate).some(child => {\n if (isNavListItemElement(child)) {\n return false\n }\n\n if (isValidElement(child) && child.type === React.Fragment) {\n return containsInvalidChild((child as ElementWithChildren).props.children)\n }\n\n return true\n })\n\n return containsInvalidChild(children)\n }, [children])\n\n if (hasInvalidChild) {\n warnNavListValidation(\n 'NavList.Group: Only NavList.Item children are supported. Invalid children will not be rendered. Use NavList.SubNav as a child of NavList.Item for nested disclosure.',\n )\n }\n\n return (\n <li ref={ref} className={clsx(styles.NavList__group, className)} data-testid={testId || testIds.group} {...rest}>\n {title ? (\n <h3 id={titleId} className={styles.NavList__groupTitle} data-testid={testIds.groupTitle}>\n {title}\n </h3>\n ) : null}\n <ul\n className={styles.NavList__groupList}\n aria-labelledby={title ? titleId : undefined}\n data-testid={testIds.groupList}\n >\n <NavListLevelContext.Provider value={2}>{validChildren}</NavListLevelContext.Provider>\n </ul>\n </li>\n )\n },\n)\n\n/**\n * Use NavList to render vertical navigation links with groups and expandable nested lists.\n * @see https://primer.style/brand/components/NavList\n */\nexport const NavList = Object.assign(NavListRoot, {\n Item: NavListItem,\n SubNav: NavListSubNav,\n Group: NavListGroup,\n testIds,\n})\n\ntype ElementWithChildren = ReactElement<{children?: ReactNode}>\ntype ElementWithCurrent = ReactElement<{children?: ReactNode; 'aria-current'?: AriaAttributes['aria-current']}>\n\nfunction isNavListSubNavElement(node: ReactNode): node is NavListSubNavElement {\n return isValidElement<NavListSubNavProps>(node) && node.type === NavListSubNav\n}\n\nfunction isNavListItemElement(node: ReactNode): node is ReactElement<NavListItemProps> {\n return isValidElement<NavListItemProps>(node) && node.type === NavListItem\n}\n\nfunction isNavListGroupElement(node: ReactNode): node is ReactElement<NavListGroupProps> {\n return isValidElement<NavListGroupProps>(node) && node.type === NavListGroup\n}\n\nfunction isCurrentValue(value: AriaAttributes['aria-current']) {\n return Boolean(value) && value !== 'false'\n}\n\nfunction hasCurrentDescendant(node: ReactNode): boolean {\n return Children.toArray(node).some(child => {\n if (!isValidElement(child)) return false\n\n const currentChild = child as ElementWithCurrent\n if (isCurrentValue(currentChild.props['aria-current'])) return true\n\n return hasCurrentDescendant((child as ElementWithChildren).props.children)\n })\n}\n\nfunction assignRef<T>(ref: Ref<T> | undefined, value: T | null) {\n if (!ref) return\n\n if (typeof ref === 'function') {\n ref(value)\n return\n }\n\n ;(ref as MutableRefObject<T | null>).current = value\n}\n\nfunction childHasDirectSubNav(node: ReactNode): boolean {\n if (!isValidElement(node)) return false\n\n if (node.type === React.Fragment) {\n return Children.toArray((node as ElementWithChildren).props.children).some(childHasDirectSubNav)\n }\n\n return Children.toArray((node as ElementWithChildren).props.children).some(isNavListSubNavElement)\n}\n\nfunction childIsNavListGroupElement(node: ReactNode): boolean {\n if (!isValidElement(node)) return false\n\n if (node.type === React.Fragment) {\n return Children.toArray((node as ElementWithChildren).props.children).some(childIsNavListGroupElement)\n }\n\n return isNavListGroupElement(node)\n}\n\nfunction childHasNavListGroupElement(node: ReactNode): boolean {\n if (!isValidElement(node)) return false\n\n if (node.type === React.Fragment) {\n return Children.toArray((node as ElementWithChildren).props.children).some(childHasNavListGroupElement)\n }\n\n return isNavListGroupElement(node)\n}\n\nfunction renderVisual(visual: Visual | undefined, className: string, testId: string) {\n if (!visual) return null\n\n const visualElement = isValidElement(visual) ? visual : React.createElement(visual)\n\n if (!isValidElement<{className?: string; ['aria-hidden']?: string; focusable?: string}>(visualElement)) return null\n\n return (\n <span className={className} data-testid={testId}>\n {React.cloneElement(visualElement, {\n className: visualElement.props.className,\n 'aria-hidden': 'true',\n focusable: 'false',\n })}\n </span>\n )\n}\n\nfunction warnNavListValidation(message: string) {\n if (process.env.NODE_ENV === 'development' || process.env.NODE_ENV === 'test') {\n // eslint-disable-next-line no-console\n console.warn(message)\n }\n}\n"],"mappings":"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"}