@primer/react-brand 0.79.0 → 0.79.1-rc.5d6b749b

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 (446) hide show
  1. package/docs/components/LogoSuite/react.md +215 -13
  2. package/docs/components/RiverBreakoutTabs/index.md +34 -0
  3. package/docs/index.md +2 -2
  4. package/esm/LogoSuite/LogoSuite.d.ts +5 -1
  5. package/esm/LogoSuite/LogoSuite.d.ts.map +1 -1
  6. package/esm/LogoSuite/LogoSuite.js +36 -33
  7. package/esm/LogoSuite/LogoSuite.js.map +1 -1
  8. package/esm/LogoSuite/LogoSuite.module-BUJyNoZs.css +1 -0
  9. package/esm/LogoSuite/LogoSuite.module.js +3 -1
  10. package/esm/LogoSuite/LogoSuite.module.js.map +1 -1
  11. package/esm/MinimalVideoPlayer/MinimalVideoPlayer.d.ts.map +1 -1
  12. package/esm/MinimalVideoPlayer/MinimalVideoPlayer.js +33 -42
  13. package/esm/MinimalVideoPlayer/MinimalVideoPlayer.js.map +1 -1
  14. package/esm/PlayIcon.d.ts +3 -0
  15. package/esm/PlayIcon.d.ts.map +1 -0
  16. package/esm/PlayIcon.js +22 -0
  17. package/esm/PlayIcon.js.map +1 -0
  18. package/esm/river/RiverBreakoutTabs/RiverBreakoutTabs.d.ts.map +1 -1
  19. package/esm/river/RiverBreakoutTabs/RiverBreakoutTabs.js +12 -11
  20. package/esm/river/RiverBreakoutTabs/RiverBreakoutTabs.js.map +1 -1
  21. package/esm/river/RiverBreakoutTabs/RiverBreakoutTabs.module-Dp8ag3bt.css +1 -0
  22. package/esm/river/RiverBreakoutTabs/RiverBreakoutTabs.module.js +22 -21
  23. package/esm/river/RiverBreakoutTabs/RiverBreakoutTabs.module.js.map +1 -1
  24. package/lib/LogoSuite/LogoSuite.d.ts +5 -1
  25. package/lib/PlayIcon.d.ts +2 -0
  26. package/lib/css/main.css +152 -98
  27. package/lib/design-tokens/css/tokens/base/colors/color-scales-with-modes.css +1 -1
  28. package/lib/design-tokens/css/tokens/base/colors/light.css +1 -1
  29. package/lib/design-tokens/css/tokens/base/size/size.css +1 -1
  30. package/lib/design-tokens/css/tokens/base/typography/typography.css +1 -1
  31. package/lib/design-tokens/css/tokens/functional/animation/base.css +1 -1
  32. package/lib/design-tokens/css/tokens/functional/colors/global-with-modes.css +1 -1
  33. package/lib/design-tokens/css/tokens/functional/colors/global.css +1 -1
  34. package/lib/design-tokens/css/tokens/functional/components/accordion/colors-with-modes.css +1 -1
  35. package/lib/design-tokens/css/tokens/functional/components/action-menu/colors-with-modes.css +1 -1
  36. package/lib/design-tokens/css/tokens/functional/components/anchor-nav/colors-with-modes.css +1 -1
  37. package/lib/design-tokens/css/tokens/functional/components/bento/base.css +1 -1
  38. package/lib/design-tokens/css/tokens/functional/components/blinking-cursor/colors-with-modes.css +1 -1
  39. package/lib/design-tokens/css/tokens/functional/components/breadcrumbs/colors-with-modes.css +1 -1
  40. package/lib/design-tokens/css/tokens/functional/components/button/base.css +1 -1
  41. package/lib/design-tokens/css/tokens/functional/components/button/colors-with-modes.css +1 -1
  42. package/lib/design-tokens/css/tokens/functional/components/card/base.css +1 -1
  43. package/lib/design-tokens/css/tokens/functional/components/card/colors-with-modes.css +1 -1
  44. package/lib/design-tokens/css/tokens/functional/components/card/colors.css +1 -1
  45. package/lib/design-tokens/css/tokens/functional/components/comparison-table/colors-with-modes.css +1 -1
  46. package/lib/design-tokens/css/tokens/functional/components/comparison-table/comparison-table.css +1 -1
  47. package/lib/design-tokens/css/tokens/functional/components/control/colors-with-modes.css +1 -1
  48. package/lib/design-tokens/css/tokens/functional/components/cta-banner/colors-with-modes.css +1 -1
  49. package/lib/design-tokens/css/tokens/functional/components/eyebrow-banner/colors-with-modes.css +1 -1
  50. package/lib/design-tokens/css/tokens/functional/components/eyebrow-banner/eyebrow-banner.css +1 -1
  51. package/lib/design-tokens/css/tokens/functional/components/faq/base.css +1 -1
  52. package/lib/design-tokens/css/tokens/functional/components/faq/colors-with-modes.css +1 -1
  53. package/lib/design-tokens/css/tokens/functional/components/faq/colors.css +1 -1
  54. package/lib/design-tokens/css/tokens/functional/components/faq/faq.css +1 -1
  55. package/lib/design-tokens/css/tokens/functional/components/feature-comparison-table/base.css +1 -1
  56. package/lib/design-tokens/css/tokens/functional/components/feature-comparison-table/colors-with-modes.css +1 -1
  57. package/lib/design-tokens/css/tokens/functional/components/footer/base.css +1 -1
  58. package/lib/design-tokens/css/tokens/functional/components/footer/colors-with-modes.css +1 -1
  59. package/lib/design-tokens/css/tokens/functional/components/footer/colors.css +1 -1
  60. package/lib/design-tokens/css/tokens/functional/components/frosted-glass-vfx/base.css +1 -1
  61. package/lib/design-tokens/css/tokens/functional/components/frosted-glass-vfx/colors-with-modes.css +1 -1
  62. package/lib/design-tokens/css/tokens/functional/components/grid/colors-with-modes.css +1 -1
  63. package/lib/design-tokens/css/tokens/functional/components/grid/colors.css +1 -1
  64. package/lib/design-tokens/css/tokens/functional/components/grid/grid.css +1 -1
  65. package/lib/design-tokens/css/tokens/functional/components/hero/base.css +1 -1
  66. package/lib/design-tokens/css/tokens/functional/components/icon/colors-with-modes.css +1 -1
  67. package/lib/design-tokens/css/tokens/functional/components/icon/colors.css +1 -1
  68. package/lib/design-tokens/css/tokens/functional/components/icon-button/base.css +1 -1
  69. package/lib/design-tokens/css/tokens/functional/components/icon-button/colors-with-modes.css +1 -1
  70. package/lib/design-tokens/css/tokens/functional/components/icon-button/colors.css +1 -1
  71. package/lib/design-tokens/css/tokens/functional/components/ide/base.css +1 -1
  72. package/lib/design-tokens/css/tokens/functional/components/ide/colors-with-modes.css +1 -1
  73. package/lib/design-tokens/css/tokens/functional/components/image/base.css +1 -1
  74. package/lib/design-tokens/css/tokens/functional/components/inline-code/colors-with-modes.css +1 -1
  75. package/lib/design-tokens/css/tokens/functional/components/inline-code/colors.css +1 -1
  76. package/lib/design-tokens/css/tokens/functional/components/inline-link/base.css +1 -1
  77. package/lib/design-tokens/css/tokens/functional/components/inline-link/colors-with-modes.css +1 -1
  78. package/lib/design-tokens/css/tokens/functional/components/inline-link/colors.css +1 -1
  79. package/lib/design-tokens/css/tokens/functional/components/label/colors-with-modes.css +1 -1
  80. package/lib/design-tokens/css/tokens/functional/components/label/colors.css +1 -1
  81. package/lib/design-tokens/css/tokens/functional/components/link/colors-with-modes.css +1 -1
  82. package/lib/design-tokens/css/tokens/functional/components/link/colors.css +1 -1
  83. package/lib/design-tokens/css/tokens/functional/components/logosuite/base.css +1 -1
  84. package/lib/design-tokens/css/tokens/functional/components/logosuite/colors-with-modes.css +1 -1
  85. package/lib/design-tokens/css/tokens/functional/components/logosuite/colors.css +1 -1
  86. package/lib/design-tokens/css/tokens/functional/components/media-playlist/colors-with-modes.css +1 -1
  87. package/lib/design-tokens/css/tokens/functional/components/media-playlist/colors.css +1 -1
  88. package/lib/design-tokens/css/tokens/functional/components/nav-list/colors-with-modes.css +1 -1
  89. package/lib/design-tokens/css/tokens/functional/components/pricing-options/colors-with-modes.css +1 -1
  90. package/lib/design-tokens/css/tokens/functional/components/pricing-options/colors.css +1 -1
  91. package/lib/design-tokens/css/tokens/functional/components/pricing-options/pricing-options.css +1 -1
  92. package/lib/design-tokens/css/tokens/functional/components/prose/base.css +1 -1
  93. package/lib/design-tokens/css/tokens/functional/components/prose/colors-with-modes.css +1 -1
  94. package/lib/design-tokens/css/tokens/functional/components/river/base.css +1 -1
  95. package/lib/design-tokens/css/tokens/functional/components/river/river.css +1 -1
  96. package/lib/design-tokens/css/tokens/functional/components/river-story-scroll/colors-with-modes.css +1 -1
  97. package/lib/design-tokens/css/tokens/functional/components/section/section.css +1 -1
  98. package/lib/design-tokens/css/tokens/functional/components/statistic/base.css +1 -1
  99. package/lib/design-tokens/css/tokens/functional/components/sub-nav/base.css +1 -1
  100. package/lib/design-tokens/css/tokens/functional/components/sub-nav/colors-with-modes.css +1 -1
  101. package/lib/design-tokens/css/tokens/functional/components/subdomain-nav-bar/colors-with-modes.css +1 -1
  102. package/lib/design-tokens/css/tokens/functional/components/tabs/base.css +1 -1
  103. package/lib/design-tokens/css/tokens/functional/components/tabs/colors-with-modes.css +1 -1
  104. package/lib/design-tokens/css/tokens/functional/components/tabs/colors.css +1 -1
  105. package/lib/design-tokens/css/tokens/functional/components/testimonial/base.css +1 -1
  106. package/lib/design-tokens/css/tokens/functional/components/testimonial/colors-with-modes.css +1 -1
  107. package/lib/design-tokens/css/tokens/functional/components/testimonial/colors.css +1 -1
  108. package/lib/design-tokens/css/tokens/functional/components/text-cursor-animation/base.css +1 -1
  109. package/lib/design-tokens/css/tokens/functional/components/text-cursor-animation/colors-with-modes.css +1 -1
  110. package/lib/design-tokens/css/tokens/functional/components/text-cursor-animation/colors.css +1 -1
  111. package/lib/design-tokens/css/tokens/functional/components/tiles/base.css +1 -1
  112. package/lib/design-tokens/css/tokens/functional/components/tiles/colors-with-modes.css +1 -1
  113. package/lib/design-tokens/css/tokens/functional/components/timeline/base.css +1 -1
  114. package/lib/design-tokens/css/tokens/functional/components/timeline/colors-with-modes.css +1 -1
  115. package/lib/design-tokens/css/tokens/functional/components/timeline/colors.css +1 -1
  116. package/lib/design-tokens/css/tokens/functional/components/token/colors-with-modes.css +1 -1
  117. package/lib/design-tokens/css/tokens/functional/components/token/colors.css +1 -1
  118. package/lib/design-tokens/css/tokens/functional/components/tooltip/colors-with-modes.css +1 -1
  119. package/lib/design-tokens/css/tokens/functional/components/tooltip/colors.css +1 -1
  120. package/lib/design-tokens/css/tokens/functional/components/video-player/base.css +1 -1
  121. package/lib/design-tokens/css/tokens/functional/components/video-player/colors-with-modes.css +1 -1
  122. package/lib/design-tokens/css/tokens/functional/size/border.css +1 -1
  123. package/lib/design-tokens/css/tokens/functional/size/breakpoints.css +1 -1
  124. package/lib/design-tokens/css/tokens/functional/size/size-coarse.css +1 -1
  125. package/lib/design-tokens/css/tokens/functional/size/size-fine.css +1 -1
  126. package/lib/design-tokens/css/tokens/functional/size/size.css +1 -1
  127. package/lib/design-tokens/css/tokens/functional/size/viewport.css +1 -1
  128. package/lib/design-tokens/css/tokens/functional/typography/typography-responsive.css +1 -1
  129. package/lib/design-tokens/css/tokens/functional/typography/typography.css +1 -1
  130. package/lib/design-tokens/js/module/tokens/base/colors/light.js +1 -1
  131. package/lib/design-tokens/js/module/tokens/base/size/size.js +1 -1
  132. package/lib/design-tokens/js/module/tokens/base/typography/typography.js +1 -1
  133. package/lib/design-tokens/js/module/tokens/functional/animation/base.js +1 -1
  134. package/lib/design-tokens/js/module/tokens/functional/colors/global.js +1 -1
  135. package/lib/design-tokens/js/module/tokens/functional/components/bento/base.js +1 -1
  136. package/lib/design-tokens/js/module/tokens/functional/components/button/base.js +1 -1
  137. package/lib/design-tokens/js/module/tokens/functional/components/card/base.js +1 -1
  138. package/lib/design-tokens/js/module/tokens/functional/components/card/colors.js +1 -1
  139. package/lib/design-tokens/js/module/tokens/functional/components/comparison-table/comparison-table.js +1 -1
  140. package/lib/design-tokens/js/module/tokens/functional/components/eyebrow-banner/eyebrow-banner.js +1 -1
  141. package/lib/design-tokens/js/module/tokens/functional/components/faq/base.js +1 -1
  142. package/lib/design-tokens/js/module/tokens/functional/components/faq/colors.js +1 -1
  143. package/lib/design-tokens/js/module/tokens/functional/components/faq/faq.js +1 -1
  144. package/lib/design-tokens/js/module/tokens/functional/components/feature-comparison-table/base.js +1 -1
  145. package/lib/design-tokens/js/module/tokens/functional/components/footer/base.js +1 -1
  146. package/lib/design-tokens/js/module/tokens/functional/components/footer/colors.js +1 -1
  147. package/lib/design-tokens/js/module/tokens/functional/components/frosted-glass-vfx/base.js +1 -1
  148. package/lib/design-tokens/js/module/tokens/functional/components/grid/colors.js +1 -1
  149. package/lib/design-tokens/js/module/tokens/functional/components/grid/grid.js +1 -1
  150. package/lib/design-tokens/js/module/tokens/functional/components/hero/base.js +1 -1
  151. package/lib/design-tokens/js/module/tokens/functional/components/icon/colors.js +1 -1
  152. package/lib/design-tokens/js/module/tokens/functional/components/icon-button/base.js +1 -1
  153. package/lib/design-tokens/js/module/tokens/functional/components/icon-button/colors.js +1 -1
  154. package/lib/design-tokens/js/module/tokens/functional/components/ide/base.js +1 -1
  155. package/lib/design-tokens/js/module/tokens/functional/components/image/base.js +1 -1
  156. package/lib/design-tokens/js/module/tokens/functional/components/inline-code/colors.js +1 -1
  157. package/lib/design-tokens/js/module/tokens/functional/components/inline-link/base.js +1 -1
  158. package/lib/design-tokens/js/module/tokens/functional/components/inline-link/colors.js +1 -1
  159. package/lib/design-tokens/js/module/tokens/functional/components/label/colors.js +1 -1
  160. package/lib/design-tokens/js/module/tokens/functional/components/link/colors.js +1 -1
  161. package/lib/design-tokens/js/module/tokens/functional/components/logosuite/base.js +1 -1
  162. package/lib/design-tokens/js/module/tokens/functional/components/logosuite/colors.js +1 -1
  163. package/lib/design-tokens/js/module/tokens/functional/components/media-playlist/colors.js +1 -1
  164. package/lib/design-tokens/js/module/tokens/functional/components/pricing-options/colors.js +1 -1
  165. package/lib/design-tokens/js/module/tokens/functional/components/pricing-options/pricing-options.js +1 -1
  166. package/lib/design-tokens/js/module/tokens/functional/components/prose/base.js +1 -1
  167. package/lib/design-tokens/js/module/tokens/functional/components/river/base.js +1 -1
  168. package/lib/design-tokens/js/module/tokens/functional/components/river/river.js +1 -1
  169. package/lib/design-tokens/js/module/tokens/functional/components/section/section.js +1 -1
  170. package/lib/design-tokens/js/module/tokens/functional/components/statistic/base.js +1 -1
  171. package/lib/design-tokens/js/module/tokens/functional/components/sub-nav/base.js +1 -1
  172. package/lib/design-tokens/js/module/tokens/functional/components/tabs/base.js +1 -1
  173. package/lib/design-tokens/js/module/tokens/functional/components/tabs/colors.js +1 -1
  174. package/lib/design-tokens/js/module/tokens/functional/components/testimonial/base.js +1 -1
  175. package/lib/design-tokens/js/module/tokens/functional/components/testimonial/colors.js +1 -1
  176. package/lib/design-tokens/js/module/tokens/functional/components/text-cursor-animation/base.js +1 -1
  177. package/lib/design-tokens/js/module/tokens/functional/components/text-cursor-animation/colors.js +1 -1
  178. package/lib/design-tokens/js/module/tokens/functional/components/tiles/base.js +1 -1
  179. package/lib/design-tokens/js/module/tokens/functional/components/timeline/base.js +1 -1
  180. package/lib/design-tokens/js/module/tokens/functional/components/timeline/colors.js +1 -1
  181. package/lib/design-tokens/js/module/tokens/functional/components/token/colors.js +1 -1
  182. package/lib/design-tokens/js/module/tokens/functional/components/tooltip/colors.js +1 -1
  183. package/lib/design-tokens/js/module/tokens/functional/components/video-player/base.js +1 -1
  184. package/lib/design-tokens/js/module/tokens/functional/size/border.js +1 -1
  185. package/lib/design-tokens/js/module/tokens/functional/size/breakpoints.js +1 -1
  186. package/lib/design-tokens/js/module/tokens/functional/size/size-coarse.js +1 -1
  187. package/lib/design-tokens/js/module/tokens/functional/size/size-fine.js +1 -1
  188. package/lib/design-tokens/js/module/tokens/functional/size/size.js +1 -1
  189. package/lib/design-tokens/js/module/tokens/functional/size/viewport.js +1 -1
  190. package/lib/design-tokens/js/module/tokens/functional/typography/typography-responsive.js +1 -1
  191. package/lib/design-tokens/js/module/tokens/functional/typography/typography.js +1 -1
  192. package/lib/design-tokens/js/tokens/base/colors/light.js +1 -1
  193. package/lib/design-tokens/js/tokens/base/size/size.js +1 -1
  194. package/lib/design-tokens/js/tokens/base/typography/typography.js +1 -1
  195. package/lib/design-tokens/js/tokens/functional/animation/base.js +1 -1
  196. package/lib/design-tokens/js/tokens/functional/colors/global.js +1 -1
  197. package/lib/design-tokens/js/tokens/functional/components/bento/base.js +1 -1
  198. package/lib/design-tokens/js/tokens/functional/components/button/base.js +1 -1
  199. package/lib/design-tokens/js/tokens/functional/components/card/base.js +1 -1
  200. package/lib/design-tokens/js/tokens/functional/components/card/colors.js +1 -1
  201. package/lib/design-tokens/js/tokens/functional/components/comparison-table/comparison-table.js +1 -1
  202. package/lib/design-tokens/js/tokens/functional/components/eyebrow-banner/eyebrow-banner.js +1 -1
  203. package/lib/design-tokens/js/tokens/functional/components/faq/base.js +1 -1
  204. package/lib/design-tokens/js/tokens/functional/components/faq/colors.js +1 -1
  205. package/lib/design-tokens/js/tokens/functional/components/faq/faq.js +1 -1
  206. package/lib/design-tokens/js/tokens/functional/components/feature-comparison-table/base.js +1 -1
  207. package/lib/design-tokens/js/tokens/functional/components/footer/base.js +1 -1
  208. package/lib/design-tokens/js/tokens/functional/components/footer/colors.js +1 -1
  209. package/lib/design-tokens/js/tokens/functional/components/frosted-glass-vfx/base.js +1 -1
  210. package/lib/design-tokens/js/tokens/functional/components/grid/colors.js +1 -1
  211. package/lib/design-tokens/js/tokens/functional/components/grid/grid.js +1 -1
  212. package/lib/design-tokens/js/tokens/functional/components/hero/base.js +1 -1
  213. package/lib/design-tokens/js/tokens/functional/components/icon/colors.js +1 -1
  214. package/lib/design-tokens/js/tokens/functional/components/icon-button/base.js +1 -1
  215. package/lib/design-tokens/js/tokens/functional/components/icon-button/colors.js +1 -1
  216. package/lib/design-tokens/js/tokens/functional/components/ide/base.js +1 -1
  217. package/lib/design-tokens/js/tokens/functional/components/image/base.js +1 -1
  218. package/lib/design-tokens/js/tokens/functional/components/inline-code/colors.js +1 -1
  219. package/lib/design-tokens/js/tokens/functional/components/inline-link/base.js +1 -1
  220. package/lib/design-tokens/js/tokens/functional/components/inline-link/colors.js +1 -1
  221. package/lib/design-tokens/js/tokens/functional/components/label/colors.js +1 -1
  222. package/lib/design-tokens/js/tokens/functional/components/link/colors.js +1 -1
  223. package/lib/design-tokens/js/tokens/functional/components/logosuite/base.js +1 -1
  224. package/lib/design-tokens/js/tokens/functional/components/logosuite/colors.js +1 -1
  225. package/lib/design-tokens/js/tokens/functional/components/media-playlist/colors.js +1 -1
  226. package/lib/design-tokens/js/tokens/functional/components/pricing-options/colors.js +1 -1
  227. package/lib/design-tokens/js/tokens/functional/components/pricing-options/pricing-options.js +1 -1
  228. package/lib/design-tokens/js/tokens/functional/components/prose/base.js +1 -1
  229. package/lib/design-tokens/js/tokens/functional/components/river/base.js +1 -1
  230. package/lib/design-tokens/js/tokens/functional/components/river/river.js +1 -1
  231. package/lib/design-tokens/js/tokens/functional/components/section/section.js +1 -1
  232. package/lib/design-tokens/js/tokens/functional/components/statistic/base.js +1 -1
  233. package/lib/design-tokens/js/tokens/functional/components/sub-nav/base.js +1 -1
  234. package/lib/design-tokens/js/tokens/functional/components/tabs/base.js +1 -1
  235. package/lib/design-tokens/js/tokens/functional/components/tabs/colors.js +1 -1
  236. package/lib/design-tokens/js/tokens/functional/components/testimonial/base.js +1 -1
  237. package/lib/design-tokens/js/tokens/functional/components/testimonial/colors.js +1 -1
  238. package/lib/design-tokens/js/tokens/functional/components/text-cursor-animation/base.js +1 -1
  239. package/lib/design-tokens/js/tokens/functional/components/text-cursor-animation/colors.js +1 -1
  240. package/lib/design-tokens/js/tokens/functional/components/tiles/base.js +1 -1
  241. package/lib/design-tokens/js/tokens/functional/components/timeline/base.js +1 -1
  242. package/lib/design-tokens/js/tokens/functional/components/timeline/colors.js +1 -1
  243. package/lib/design-tokens/js/tokens/functional/components/token/colors.js +1 -1
  244. package/lib/design-tokens/js/tokens/functional/components/tooltip/colors.js +1 -1
  245. package/lib/design-tokens/js/tokens/functional/components/video-player/base.js +1 -1
  246. package/lib/design-tokens/js/tokens/functional/size/border.js +1 -1
  247. package/lib/design-tokens/js/tokens/functional/size/breakpoints.js +1 -1
  248. package/lib/design-tokens/js/tokens/functional/size/size-coarse.js +1 -1
  249. package/lib/design-tokens/js/tokens/functional/size/size-fine.js +1 -1
  250. package/lib/design-tokens/js/tokens/functional/size/size.js +1 -1
  251. package/lib/design-tokens/js/tokens/functional/size/viewport.js +1 -1
  252. package/lib/design-tokens/js/tokens/functional/typography/typography-responsive.js +1 -1
  253. package/lib/design-tokens/js/tokens/functional/typography/typography.js +1 -1
  254. package/lib/design-tokens/scss/tokens/base/colors/light.scss +1 -1
  255. package/lib/design-tokens/scss/tokens/base/size/size.scss +1 -1
  256. package/lib/design-tokens/scss/tokens/base/typography/typography.scss +1 -1
  257. package/lib/design-tokens/scss/tokens/functional/animation/base.scss +1 -1
  258. package/lib/design-tokens/scss/tokens/functional/colors/global.scss +1 -1
  259. package/lib/design-tokens/scss/tokens/functional/components/bento/base.scss +1 -1
  260. package/lib/design-tokens/scss/tokens/functional/components/button/base.scss +1 -1
  261. package/lib/design-tokens/scss/tokens/functional/components/card/base.scss +1 -1
  262. package/lib/design-tokens/scss/tokens/functional/components/card/colors.scss +1 -1
  263. package/lib/design-tokens/scss/tokens/functional/components/comparison-table/comparison-table.scss +1 -1
  264. package/lib/design-tokens/scss/tokens/functional/components/eyebrow-banner/eyebrow-banner.scss +1 -1
  265. package/lib/design-tokens/scss/tokens/functional/components/faq/base.scss +1 -1
  266. package/lib/design-tokens/scss/tokens/functional/components/faq/colors.scss +1 -1
  267. package/lib/design-tokens/scss/tokens/functional/components/faq/faq.scss +1 -1
  268. package/lib/design-tokens/scss/tokens/functional/components/feature-comparison-table/base.scss +1 -1
  269. package/lib/design-tokens/scss/tokens/functional/components/footer/base.scss +1 -1
  270. package/lib/design-tokens/scss/tokens/functional/components/footer/colors.scss +1 -1
  271. package/lib/design-tokens/scss/tokens/functional/components/frosted-glass-vfx/base.scss +1 -1
  272. package/lib/design-tokens/scss/tokens/functional/components/grid/colors.scss +1 -1
  273. package/lib/design-tokens/scss/tokens/functional/components/grid/grid.scss +1 -1
  274. package/lib/design-tokens/scss/tokens/functional/components/hero/base.scss +1 -1
  275. package/lib/design-tokens/scss/tokens/functional/components/icon/colors.scss +1 -1
  276. package/lib/design-tokens/scss/tokens/functional/components/icon-button/base.scss +1 -1
  277. package/lib/design-tokens/scss/tokens/functional/components/icon-button/colors.scss +1 -1
  278. package/lib/design-tokens/scss/tokens/functional/components/ide/base.scss +1 -1
  279. package/lib/design-tokens/scss/tokens/functional/components/image/base.scss +1 -1
  280. package/lib/design-tokens/scss/tokens/functional/components/inline-code/colors.scss +1 -1
  281. package/lib/design-tokens/scss/tokens/functional/components/inline-link/base.scss +1 -1
  282. package/lib/design-tokens/scss/tokens/functional/components/inline-link/colors.scss +1 -1
  283. package/lib/design-tokens/scss/tokens/functional/components/label/colors.scss +1 -1
  284. package/lib/design-tokens/scss/tokens/functional/components/link/colors.scss +1 -1
  285. package/lib/design-tokens/scss/tokens/functional/components/logosuite/base.scss +1 -1
  286. package/lib/design-tokens/scss/tokens/functional/components/logosuite/colors.scss +1 -1
  287. package/lib/design-tokens/scss/tokens/functional/components/media-playlist/colors.scss +1 -1
  288. package/lib/design-tokens/scss/tokens/functional/components/pricing-options/colors.scss +1 -1
  289. package/lib/design-tokens/scss/tokens/functional/components/pricing-options/pricing-options.scss +1 -1
  290. package/lib/design-tokens/scss/tokens/functional/components/prose/base.scss +1 -1
  291. package/lib/design-tokens/scss/tokens/functional/components/river/base.scss +1 -1
  292. package/lib/design-tokens/scss/tokens/functional/components/river/river.scss +1 -1
  293. package/lib/design-tokens/scss/tokens/functional/components/section/section.scss +1 -1
  294. package/lib/design-tokens/scss/tokens/functional/components/statistic/base.scss +1 -1
  295. package/lib/design-tokens/scss/tokens/functional/components/sub-nav/base.scss +1 -1
  296. package/lib/design-tokens/scss/tokens/functional/components/tabs/base.scss +1 -1
  297. package/lib/design-tokens/scss/tokens/functional/components/tabs/colors.scss +1 -1
  298. package/lib/design-tokens/scss/tokens/functional/components/testimonial/base.scss +1 -1
  299. package/lib/design-tokens/scss/tokens/functional/components/testimonial/colors.scss +1 -1
  300. package/lib/design-tokens/scss/tokens/functional/components/text-cursor-animation/base.scss +1 -1
  301. package/lib/design-tokens/scss/tokens/functional/components/text-cursor-animation/colors.scss +1 -1
  302. package/lib/design-tokens/scss/tokens/functional/components/tiles/base.scss +1 -1
  303. package/lib/design-tokens/scss/tokens/functional/components/timeline/base.scss +1 -1
  304. package/lib/design-tokens/scss/tokens/functional/components/timeline/colors.scss +1 -1
  305. package/lib/design-tokens/scss/tokens/functional/components/token/colors.scss +1 -1
  306. package/lib/design-tokens/scss/tokens/functional/components/tooltip/colors.scss +1 -1
  307. package/lib/design-tokens/scss/tokens/functional/components/video-player/base.scss +1 -1
  308. package/lib/design-tokens/scss/tokens/functional/size/border.scss +1 -1
  309. package/lib/design-tokens/scss/tokens/functional/size/breakpoints.scss +1 -1
  310. package/lib/design-tokens/scss/tokens/functional/size/size-coarse.scss +1 -1
  311. package/lib/design-tokens/scss/tokens/functional/size/size-fine.scss +1 -1
  312. package/lib/design-tokens/scss/tokens/functional/size/size.scss +1 -1
  313. package/lib/design-tokens/scss/tokens/functional/size/viewport.scss +1 -1
  314. package/lib/design-tokens/scss/tokens/functional/typography/typography-responsive.scss +1 -1
  315. package/lib/design-tokens/scss/tokens/functional/typography/typography.scss +1 -1
  316. package/lib/design-tokens/ts/tokens/base/colors/light.d.ts +1 -1
  317. package/lib/design-tokens/ts/tokens/base/colors/light.js +1 -1
  318. package/lib/design-tokens/ts/tokens/base/size/size.d.ts +1 -1
  319. package/lib/design-tokens/ts/tokens/base/size/size.js +1 -1
  320. package/lib/design-tokens/ts/tokens/base/typography/typography.d.ts +1 -1
  321. package/lib/design-tokens/ts/tokens/base/typography/typography.js +1 -1
  322. package/lib/design-tokens/ts/tokens/functional/animation/base.d.ts +1 -1
  323. package/lib/design-tokens/ts/tokens/functional/animation/base.js +1 -1
  324. package/lib/design-tokens/ts/tokens/functional/colors/global.d.ts +1 -1
  325. package/lib/design-tokens/ts/tokens/functional/colors/global.js +1 -1
  326. package/lib/design-tokens/ts/tokens/functional/components/bento/base.d.ts +1 -1
  327. package/lib/design-tokens/ts/tokens/functional/components/bento/base.js +1 -1
  328. package/lib/design-tokens/ts/tokens/functional/components/button/base.d.ts +1 -1
  329. package/lib/design-tokens/ts/tokens/functional/components/button/base.js +1 -1
  330. package/lib/design-tokens/ts/tokens/functional/components/card/base.d.ts +1 -1
  331. package/lib/design-tokens/ts/tokens/functional/components/card/base.js +1 -1
  332. package/lib/design-tokens/ts/tokens/functional/components/card/colors.d.ts +1 -1
  333. package/lib/design-tokens/ts/tokens/functional/components/card/colors.js +1 -1
  334. package/lib/design-tokens/ts/tokens/functional/components/comparison-table/comparison-table.d.ts +1 -1
  335. package/lib/design-tokens/ts/tokens/functional/components/comparison-table/comparison-table.js +1 -1
  336. package/lib/design-tokens/ts/tokens/functional/components/eyebrow-banner/eyebrow-banner.d.ts +1 -1
  337. package/lib/design-tokens/ts/tokens/functional/components/eyebrow-banner/eyebrow-banner.js +1 -1
  338. package/lib/design-tokens/ts/tokens/functional/components/faq/base.d.ts +1 -1
  339. package/lib/design-tokens/ts/tokens/functional/components/faq/base.js +1 -1
  340. package/lib/design-tokens/ts/tokens/functional/components/faq/colors.d.ts +1 -1
  341. package/lib/design-tokens/ts/tokens/functional/components/faq/colors.js +1 -1
  342. package/lib/design-tokens/ts/tokens/functional/components/faq/faq.d.ts +1 -1
  343. package/lib/design-tokens/ts/tokens/functional/components/faq/faq.js +1 -1
  344. package/lib/design-tokens/ts/tokens/functional/components/feature-comparison-table/base.d.ts +1 -1
  345. package/lib/design-tokens/ts/tokens/functional/components/feature-comparison-table/base.js +1 -1
  346. package/lib/design-tokens/ts/tokens/functional/components/footer/base.d.ts +1 -1
  347. package/lib/design-tokens/ts/tokens/functional/components/footer/base.js +1 -1
  348. package/lib/design-tokens/ts/tokens/functional/components/footer/colors.d.ts +1 -1
  349. package/lib/design-tokens/ts/tokens/functional/components/footer/colors.js +1 -1
  350. package/lib/design-tokens/ts/tokens/functional/components/frosted-glass-vfx/base.d.ts +1 -1
  351. package/lib/design-tokens/ts/tokens/functional/components/frosted-glass-vfx/base.js +1 -1
  352. package/lib/design-tokens/ts/tokens/functional/components/grid/colors.d.ts +1 -1
  353. package/lib/design-tokens/ts/tokens/functional/components/grid/colors.js +1 -1
  354. package/lib/design-tokens/ts/tokens/functional/components/grid/grid.d.ts +1 -1
  355. package/lib/design-tokens/ts/tokens/functional/components/grid/grid.js +1 -1
  356. package/lib/design-tokens/ts/tokens/functional/components/hero/base.d.ts +1 -1
  357. package/lib/design-tokens/ts/tokens/functional/components/hero/base.js +1 -1
  358. package/lib/design-tokens/ts/tokens/functional/components/icon/colors.d.ts +1 -1
  359. package/lib/design-tokens/ts/tokens/functional/components/icon/colors.js +1 -1
  360. package/lib/design-tokens/ts/tokens/functional/components/icon-button/base.d.ts +1 -1
  361. package/lib/design-tokens/ts/tokens/functional/components/icon-button/base.js +1 -1
  362. package/lib/design-tokens/ts/tokens/functional/components/icon-button/colors.d.ts +1 -1
  363. package/lib/design-tokens/ts/tokens/functional/components/icon-button/colors.js +1 -1
  364. package/lib/design-tokens/ts/tokens/functional/components/ide/base.d.ts +1 -1
  365. package/lib/design-tokens/ts/tokens/functional/components/ide/base.js +1 -1
  366. package/lib/design-tokens/ts/tokens/functional/components/image/base.d.ts +1 -1
  367. package/lib/design-tokens/ts/tokens/functional/components/image/base.js +1 -1
  368. package/lib/design-tokens/ts/tokens/functional/components/inline-code/colors.d.ts +1 -1
  369. package/lib/design-tokens/ts/tokens/functional/components/inline-code/colors.js +1 -1
  370. package/lib/design-tokens/ts/tokens/functional/components/inline-link/base.d.ts +1 -1
  371. package/lib/design-tokens/ts/tokens/functional/components/inline-link/base.js +1 -1
  372. package/lib/design-tokens/ts/tokens/functional/components/inline-link/colors.d.ts +1 -1
  373. package/lib/design-tokens/ts/tokens/functional/components/inline-link/colors.js +1 -1
  374. package/lib/design-tokens/ts/tokens/functional/components/label/colors.d.ts +1 -1
  375. package/lib/design-tokens/ts/tokens/functional/components/label/colors.js +1 -1
  376. package/lib/design-tokens/ts/tokens/functional/components/link/colors.d.ts +1 -1
  377. package/lib/design-tokens/ts/tokens/functional/components/link/colors.js +1 -1
  378. package/lib/design-tokens/ts/tokens/functional/components/logosuite/base.d.ts +1 -1
  379. package/lib/design-tokens/ts/tokens/functional/components/logosuite/base.js +1 -1
  380. package/lib/design-tokens/ts/tokens/functional/components/logosuite/colors.d.ts +1 -1
  381. package/lib/design-tokens/ts/tokens/functional/components/logosuite/colors.js +1 -1
  382. package/lib/design-tokens/ts/tokens/functional/components/media-playlist/colors.d.ts +1 -1
  383. package/lib/design-tokens/ts/tokens/functional/components/media-playlist/colors.js +1 -1
  384. package/lib/design-tokens/ts/tokens/functional/components/pricing-options/colors.d.ts +1 -1
  385. package/lib/design-tokens/ts/tokens/functional/components/pricing-options/colors.js +1 -1
  386. package/lib/design-tokens/ts/tokens/functional/components/pricing-options/pricing-options.d.ts +1 -1
  387. package/lib/design-tokens/ts/tokens/functional/components/pricing-options/pricing-options.js +1 -1
  388. package/lib/design-tokens/ts/tokens/functional/components/prose/base.d.ts +1 -1
  389. package/lib/design-tokens/ts/tokens/functional/components/prose/base.js +1 -1
  390. package/lib/design-tokens/ts/tokens/functional/components/river/base.d.ts +1 -1
  391. package/lib/design-tokens/ts/tokens/functional/components/river/base.js +1 -1
  392. package/lib/design-tokens/ts/tokens/functional/components/river/river.d.ts +1 -1
  393. package/lib/design-tokens/ts/tokens/functional/components/river/river.js +1 -1
  394. package/lib/design-tokens/ts/tokens/functional/components/section/section.d.ts +1 -1
  395. package/lib/design-tokens/ts/tokens/functional/components/section/section.js +1 -1
  396. package/lib/design-tokens/ts/tokens/functional/components/statistic/base.d.ts +1 -1
  397. package/lib/design-tokens/ts/tokens/functional/components/statistic/base.js +1 -1
  398. package/lib/design-tokens/ts/tokens/functional/components/sub-nav/base.d.ts +1 -1
  399. package/lib/design-tokens/ts/tokens/functional/components/sub-nav/base.js +1 -1
  400. package/lib/design-tokens/ts/tokens/functional/components/tabs/base.d.ts +1 -1
  401. package/lib/design-tokens/ts/tokens/functional/components/tabs/base.js +1 -1
  402. package/lib/design-tokens/ts/tokens/functional/components/tabs/colors.d.ts +1 -1
  403. package/lib/design-tokens/ts/tokens/functional/components/tabs/colors.js +1 -1
  404. package/lib/design-tokens/ts/tokens/functional/components/testimonial/base.d.ts +1 -1
  405. package/lib/design-tokens/ts/tokens/functional/components/testimonial/base.js +1 -1
  406. package/lib/design-tokens/ts/tokens/functional/components/testimonial/colors.d.ts +1 -1
  407. package/lib/design-tokens/ts/tokens/functional/components/testimonial/colors.js +1 -1
  408. package/lib/design-tokens/ts/tokens/functional/components/text-cursor-animation/base.d.ts +1 -1
  409. package/lib/design-tokens/ts/tokens/functional/components/text-cursor-animation/base.js +1 -1
  410. package/lib/design-tokens/ts/tokens/functional/components/text-cursor-animation/colors.d.ts +1 -1
  411. package/lib/design-tokens/ts/tokens/functional/components/text-cursor-animation/colors.js +1 -1
  412. package/lib/design-tokens/ts/tokens/functional/components/tiles/base.d.ts +1 -1
  413. package/lib/design-tokens/ts/tokens/functional/components/tiles/base.js +1 -1
  414. package/lib/design-tokens/ts/tokens/functional/components/timeline/base.d.ts +1 -1
  415. package/lib/design-tokens/ts/tokens/functional/components/timeline/base.js +1 -1
  416. package/lib/design-tokens/ts/tokens/functional/components/timeline/colors.d.ts +1 -1
  417. package/lib/design-tokens/ts/tokens/functional/components/timeline/colors.js +1 -1
  418. package/lib/design-tokens/ts/tokens/functional/components/token/colors.d.ts +1 -1
  419. package/lib/design-tokens/ts/tokens/functional/components/token/colors.js +1 -1
  420. package/lib/design-tokens/ts/tokens/functional/components/tooltip/colors.d.ts +1 -1
  421. package/lib/design-tokens/ts/tokens/functional/components/tooltip/colors.js +1 -1
  422. package/lib/design-tokens/ts/tokens/functional/components/video-player/base.d.ts +1 -1
  423. package/lib/design-tokens/ts/tokens/functional/components/video-player/base.js +1 -1
  424. package/lib/design-tokens/ts/tokens/functional/size/border.d.ts +1 -1
  425. package/lib/design-tokens/ts/tokens/functional/size/border.js +1 -1
  426. package/lib/design-tokens/ts/tokens/functional/size/breakpoints.d.ts +1 -1
  427. package/lib/design-tokens/ts/tokens/functional/size/breakpoints.js +1 -1
  428. package/lib/design-tokens/ts/tokens/functional/size/size-coarse.d.ts +1 -1
  429. package/lib/design-tokens/ts/tokens/functional/size/size-coarse.js +1 -1
  430. package/lib/design-tokens/ts/tokens/functional/size/size-fine.d.ts +1 -1
  431. package/lib/design-tokens/ts/tokens/functional/size/size-fine.js +1 -1
  432. package/lib/design-tokens/ts/tokens/functional/size/size.d.ts +1 -1
  433. package/lib/design-tokens/ts/tokens/functional/size/size.js +1 -1
  434. package/lib/design-tokens/ts/tokens/functional/size/viewport.d.ts +1 -1
  435. package/lib/design-tokens/ts/tokens/functional/size/viewport.js +1 -1
  436. package/lib/design-tokens/ts/tokens/functional/typography/typography-responsive.d.ts +1 -1
  437. package/lib/design-tokens/ts/tokens/functional/typography/typography-responsive.js +1 -1
  438. package/lib/design-tokens/ts/tokens/functional/typography/typography.d.ts +1 -1
  439. package/lib/design-tokens/ts/tokens/functional/typography/typography.js +1 -1
  440. package/lib/index.js +1 -1
  441. package/llms.txt +2 -2
  442. package/package.json +1 -1
  443. package/esm/LogoSuite/LogoSuite.module-BCbX-lfy.css +0 -1
  444. package/esm/node_modules/@primer/octicons-react/dist/icons/PlayIcon.js +0 -20
  445. package/esm/node_modules/@primer/octicons-react/dist/icons/PlayIcon.js.map +0 -1
  446. package/esm/river/RiverBreakoutTabs/RiverBreakoutTabs.module-C46WY_qp.css +0 -1
@@ -81,6 +81,184 @@ import {LogoSuite} from '@primer/react-brand'
81
81
  </LogoSuite>
82
82
  ```
83
83
 
84
+ ### Linked logos
85
+
86
+ Wrap every logo in a native `<a>` element to add links and preserve its original colors. Do not mix linked and unlinked logos or use custom link components.
87
+
88
+ ```jsx
89
+ <LogoSuite>
90
+ <LogoSuite.Heading visuallyHidden>Featured logos</LogoSuite.Heading>
91
+ <LogoSuite.Logobar>
92
+ <a href="/microsoft" aria-label="Microsoft">
93
+ <svg role="img" viewBox="0 0 256 256" xmlns="http://www.w3.org/2000/svg" focusable="false">
94
+ <title>Microsoft</title>
95
+ <path fill="#F1511B" d="M121.666 121.666H0V0h121.666z" />
96
+ <path fill="#80CC28" d="M256 121.666H134.335V0H256z" />
97
+ <path fill="#00ADEF" d="M121.663 256.002H0V134.336h121.663z" />
98
+ <path fill="#FBBC09" d="M256 256.002H134.335V134.336H256z" />
99
+ </svg>
100
+ </a>
101
+ <a href="/azure" aria-label="Azure">
102
+ <svg role="img" viewBox="0 0 96 96" xmlns="http://www.w3.org/2000/svg" focusable="false">
103
+ <title>Azure</title>
104
+ <defs>
105
+ <linearGradient
106
+ id="azureGradientA"
107
+ x1="-1032.17"
108
+ x2="-1059.21"
109
+ y1="145.31"
110
+ y2="65.43"
111
+ gradientTransform="matrix(1 0 0 -1 1075 158)"
112
+ gradientUnits="userSpaceOnUse"
113
+ >
114
+ <stop offset="0" stopColor="#114a8b" />
115
+ <stop offset="1" stopColor="#0669bc" />
116
+ </linearGradient>
117
+ <linearGradient
118
+ id="azureGradientB"
119
+ x1="-1023.73"
120
+ x2="-1029.98"
121
+ y1="108.08"
122
+ y2="105.97"
123
+ gradientTransform="matrix(1 0 0 -1 1075 158)"
124
+ gradientUnits="userSpaceOnUse"
125
+ >
126
+ <stop offset="0" stopOpacity=".3" />
127
+ <stop offset=".07" stopOpacity=".2" />
128
+ <stop offset=".32" stopOpacity=".1" />
129
+ <stop offset=".62" stopOpacity=".05" />
130
+ <stop offset="1" stopOpacity="0" />
131
+ </linearGradient>
132
+ <linearGradient
133
+ id="azureGradientC"
134
+ x1="-1027.16"
135
+ x2="-997.48"
136
+ y1="147.64"
137
+ y2="68.56"
138
+ gradientTransform="matrix(1 0 0 -1 1075 158)"
139
+ gradientUnits="userSpaceOnUse"
140
+ >
141
+ <stop offset="0" stopColor="#3ccbf4" />
142
+ <stop offset="1" stopColor="#2892df" />
143
+ </linearGradient>
144
+ </defs>
145
+ <path
146
+ fill="url(#azureGradientA)"
147
+ d="M33.34 6.54h26.04l-27.03 80.1a4.15 4.15 0 0 1-3.94 2.81H8.15a4.14 4.14 0 0 1-3.93-5.47L29.4 9.38a4.15 4.15 0 0 1 3.94-2.83z"
148
+ />
149
+ <path
150
+ fill="#0078d4"
151
+ d="M71.17 60.26H29.88a1.91 1.91 0 0 0-1.3 3.31l26.53 24.76a4.17 4.17 0 0 0 2.85 1.13h23.38z"
152
+ />
153
+ <path
154
+ fill="url(#azureGradientB)"
155
+ d="M33.34 6.54a4.12 4.12 0 0 0-3.95 2.88L4.25 83.92a4.14 4.14 0 0 0 3.91 5.54h20.79a4.44 4.44 0 0 0 3.4-2.9l5.02-14.78 17.91 16.7a4.24 4.24 0 0 0 2.67.97h23.29L71.02 60.26H41.24L59.47 6.55z"
156
+ />
157
+ <path
158
+ fill="url(#azureGradientC)"
159
+ d="M66.6 9.36a4.14 4.14 0 0 0-3.93-2.82H33.65a4.15 4.15 0 0 1 3.93 2.82l25.18 74.62a4.15 4.15 0 0 1-3.93 5.48h29.02a4.15 4.15 0 0 0 3.93-5.48z"
160
+ />
161
+ </svg>
162
+ </a>
163
+ <a href="/microsoft-copilot" aria-label="Microsoft Copilot">
164
+ <svg role="img" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="2 4 43.998 40" focusable="false">
165
+ <title>Microsoft Copilot</title>
166
+ <defs>
167
+ <radialGradient
168
+ id="copilotGradientA"
169
+ cx="0"
170
+ cy="0"
171
+ r="1"
172
+ gradientTransform="matrix(-10.96051 -13.38922 12.59013 -10.30637 38.005 20.514)"
173
+ gradientUnits="userSpaceOnUse"
174
+ >
175
+ <stop offset=".096" stopColor="#00AEFF" />
176
+ <stop offset=".773" stopColor="#2253CE" />
177
+ <stop offset="1" stopColor="#0736C4" />
178
+ </radialGradient>
179
+ <radialGradient
180
+ id="copilotGradientB"
181
+ cx="0"
182
+ cy="0"
183
+ r="1"
184
+ gradientTransform="rotate(51.84 -28.201 27.85) scale(15.9912 15.5119)"
185
+ gradientUnits="userSpaceOnUse"
186
+ >
187
+ <stop stopColor="#FFB657" />
188
+ <stop offset=".634" stopColor="#FF5F3D" />
189
+ <stop offset=".923" stopColor="#C02B3C" />
190
+ </radialGradient>
191
+ <radialGradient
192
+ id="copilotGradientE"
193
+ cx="0"
194
+ cy="0"
195
+ r="1"
196
+ gradientTransform="rotate(109.274 16.301 20.802) scale(38.3873 45.9867)"
197
+ gradientUnits="userSpaceOnUse"
198
+ >
199
+ <stop offset=".066" stopColor="#8C48FF" />
200
+ <stop offset=".5" stopColor="#F2598A" />
201
+ <stop offset=".896" stopColor="#FFB152" />
202
+ </radialGradient>
203
+ <linearGradient
204
+ id="copilotGradientC"
205
+ x1="12.5"
206
+ x2="14.788"
207
+ y1="7.5"
208
+ y2="33.975"
209
+ gradientUnits="userSpaceOnUse"
210
+ >
211
+ <stop offset=".156" stopColor="#0D91E1" />
212
+ <stop offset=".487" stopColor="#52B471" />
213
+ <stop offset=".652" stopColor="#98BD42" />
214
+ <stop offset=".937" stopColor="#FFC800" />
215
+ </linearGradient>
216
+ <linearGradient id="copilotGradientD" x1="14.5" x2="15.75" y1="4" y2="32.885" gradientUnits="userSpaceOnUse">
217
+ <stop stopColor="#3DCBFF" />
218
+ <stop offset=".247" stopColor="#0588F7" stopOpacity="0" />
219
+ </linearGradient>
220
+ <linearGradient
221
+ id="copilotGradientF"
222
+ x1="42.586"
223
+ x2="42.569"
224
+ y1="13.346"
225
+ y2="21.215"
226
+ gradientUnits="userSpaceOnUse"
227
+ >
228
+ <stop offset=".058" stopColor="#F8ADFA" />
229
+ <stop offset=".708" stopColor="#A86EDD" stopOpacity="0" />
230
+ </linearGradient>
231
+ </defs>
232
+ <path
233
+ fill="url(#copilotGradientA)"
234
+ d="M34.142 7.325A4.63 4.63 0 0 0 29.7 4h-1.35a4.63 4.63 0 0 0-4.554 3.794L21.48 20.407l.575-1.965a4.63 4.63 0 0 1 4.444-3.33h7.853l3.294 1.282 3.175-1.283h-.926a4.63 4.63 0 0 1-4.443-3.325l-1.31-4.461z"
235
+ />
236
+ <path
237
+ fill="url(#copilotGradientB)"
238
+ d="M14.33 40.656A4.63 4.63 0 0 0 18.779 44h2.87a4.63 4.63 0 0 0 4.629-4.51l.312-12.163-.654 2.233a4.63 4.63 0 0 1-4.443 3.329h-7.919l-2.823-1.532-3.057 1.532h.912a4.63 4.63 0 0 1 4.447 3.344l1.279 4.423z"
239
+ />
240
+ <path
241
+ fill="url(#copilotGradientC)"
242
+ d="M29.5 4H13.46c-4.583 0-7.332 6.057-9.165 12.113C2.123 23.29-.72 32.885 7.503 32.885h6.925a4.63 4.63 0 0 0 4.456-3.358 2078.617 2078.617 0 0 1 4.971-17.156c.843-2.843 1.544-5.284 2.621-6.805C27.08 4.714 28.086 4 29.5 4z"
243
+ />
244
+ <path
245
+ fill="url(#copilotGradientD)"
246
+ d="M29.5 4H13.46c-4.583 0-7.332 6.057-9.165 12.113C2.123 23.29-.72 32.885 7.503 32.885h6.925a4.63 4.63 0 0 0 4.456-3.358 2078.617 2078.617 0 0 1 4.971-17.156c.843-2.843 1.544-5.284 2.621-6.805C27.08 4.714 28.086 4 29.5 4z"
247
+ />
248
+ <path
249
+ fill="url(#copilotGradientE)"
250
+ d="M18.498 44h16.04c4.582 0 7.332-6.058 9.165-12.115 2.171-7.177 5.013-16.775-3.208-16.775h-6.926a4.63 4.63 0 0 0-4.455 3.358 2084.036 2084.036 0 0 1-4.972 17.16c-.842 2.843-1.544 5.285-2.62 6.806-.604.852-1.61 1.566-3.024 1.566z"
251
+ />
252
+ <path
253
+ fill="url(#copilotGradientF)"
254
+ d="M18.498 44h16.04c4.582 0 7.332-6.058 9.165-12.115 2.171-7.177 5.013-16.775-3.208-16.775h-6.926a4.63 4.63 0 0 0-4.455 3.358 2084.036 2084.036 0 0 1-4.972 17.16c-.842 2.843-1.544 5.285-2.62 6.806-.604.852-1.61 1.566-3.024 1.566z"
255
+ />
256
+ </svg>
257
+ </a>
258
+ </LogoSuite.Logobar>
259
+ </LogoSuite>
260
+ ```
261
+
84
262
  ### Optional heading and description
85
263
 
86
264
  ```jsx
@@ -445,6 +623,30 @@ Logobars using the `emphasis` variant will appear with relatively higher contras
445
623
  </Stack>
446
624
  ```
447
625
 
626
+ ### Gridline variant
627
+
628
+ The `gridline` variant displays the heading and description above the logos in a single-column layout.
629
+
630
+ ```jsx
631
+ <LogoSuite variant="gridline">
632
+ <LogoSuite.Heading>Trusted by the world's leading organizations</LogoSuite.Heading>
633
+ <LogoSuite.Logobar marquee>
634
+ <svg role="img" viewBox="0 0 300 100">
635
+ <title>Placeholder logo</title>
636
+ <rect width="100%" height="100%" />
637
+ </svg>
638
+ <svg role="img" viewBox="0 0 300 100">
639
+ <title>Placeholder logo</title>
640
+ <rect width="100%" height="100%" />
641
+ </svg>
642
+ <svg role="img" viewBox="0 0 300 100">
643
+ <title>Placeholder logo</title>
644
+ <rect width="100%" height="100%" />
645
+ </svg>
646
+ </LogoSuite.Logobar>
647
+ </LogoSuite>
648
+ ```
649
+
448
650
  ### Gridline expressive variant
449
651
 
450
652
  The `gridline-expressive` variant displays the logo suite in a side-by-side layout with heading/description on the left and logos on the right, separated by a vertical border.
@@ -637,11 +839,11 @@ The `takeoverButton` prop on `LogoSuite.Logobar` adds an interactive hover effec
637
839
 
638
840
  ### LogoSuite
639
841
 
640
- | Name | Type | Default | Description |
641
- | :----------- | :----------------------------------- | :---------- | :---------------------------------------------------------- |
642
- | `align` | `'start' \| 'center' \| 'justify'` | `'center'` | The horizontal alignment of the LogoSuite. |
643
- | `hasDivider` | `boolean` | `true` | Whether to render a divider immediately after the LogoSuite |
644
- | `variant` | `'default' \| 'gridline-expressive'` | `'default'` | The presentational variant of the LogoSuite. |
842
+ | Name | Type | Default | Description |
843
+ | :----------- | :------------------------------------------------- | :---------- | :---------------------------------------------------------- |
844
+ | `align` | `'start' \| 'center' \| 'justify'` | `'center'` | The horizontal alignment of the LogoSuite. |
845
+ | `hasDivider` | `boolean` | `true` | Whether to render a divider immediately after the LogoSuite |
846
+ | `variant` | `'default' \| 'gridline' \| 'gridline-expressive'` | `'default'` | The presentational variant of the LogoSuite. |
645
847
 
646
848
  ### LogoSuite.Heading `Required`
647
849
 
@@ -657,11 +859,11 @@ Forwards all props from the [Text component](../../typography/Text/index.md), in
657
859
 
658
860
  ### LogoSuite.Logobar
659
861
 
660
- | Name | Type | Default | Description |
661
- | :--------------- | :-------------------------------------- | :---------- | :-------------------------------------------------------------------------------------------- |
662
- | `children` | | `undefined` | Logobar requires SVG or Image elements to render correctly |
663
- | `marquee` | `boolean` | `false` | Enables an optional marquee effect. |
664
- | `marqueeSpeed` | `'slow' \| 'normal'` | `'normal'` | The speed of the marquee effect. |
665
- | `gap` | `'default' \| 'condensed'` | `'default'` | The gap between logos. |
666
- | `variant` | `'muted' \| 'emphasis'` | `undefined` | The stylistic variant of the LogoBar. |
667
- | `takeoverButton` | `` `{label: string \| href: string}` `` | `undefined` | Displays a takeover button on hover/focus. Cannot be used with `marquee`. Requires a `label`. |
862
+ | Name | Type | Default | Description |
863
+ | :--------------- | :-------------------------------------- | :---------- | :---------------------------------------------------------------------------------------------------------------- |
864
+ | `children` | | `undefined` | SVG/Image elements, either all unlinked or all wrapped in native anchors. Custom link components are unsupported. |
865
+ | `marquee` | `boolean` | `false` | Enables an optional marquee effect. |
866
+ | `marqueeSpeed` | `'slow' \| 'normal'` | `'normal'` | The speed of the marquee effect. |
867
+ | `gap` | `'default' \| 'condensed'` | `'default'` | The gap between logos. |
868
+ | `variant` | `'muted' \| 'emphasis'` | `undefined` | The stylistic variant of the LogoBar. |
869
+ | `takeoverButton` | `` `{label: string \| href: string}` `` | `undefined` | Displays a takeover button on hover/focus. Cannot be used with `marquee`. Requires a `label`. |
@@ -56,6 +56,40 @@ import {RiverBreakoutTabs} from '@primer/react-brand'
56
56
  </Section>
57
57
  ```
58
58
 
59
+ ### Buttons in content
60
+
61
+ Place action buttons inside `RiverBreakoutTabs.Content`. They remain outside the desktop tab controls, so people can focus and activate them independently.
62
+
63
+ ```jsx
64
+ <Section>
65
+ <RiverBreakoutTabs>
66
+ <RiverBreakoutTabs.A11yHeading>Plan and review work</RiverBreakoutTabs.A11yHeading>
67
+
68
+ <RiverBreakoutTabs.Item>
69
+ <RiverBreakoutTabs.Heading>Plan</RiverBreakoutTabs.Heading>
70
+ <RiverBreakoutTabs.Content>
71
+ <Text>Break large issues into practical implementation steps.</Text>
72
+ <Button>Start planning</Button>
73
+ </RiverBreakoutTabs.Content>
74
+ <RiverBreakoutTabs.Visual>
75
+ <img src="/images/placeholder-1.png" alt="Planning workflow in editor" />
76
+ </RiverBreakoutTabs.Visual>
77
+ </RiverBreakoutTabs.Item>
78
+
79
+ <RiverBreakoutTabs.Item>
80
+ <RiverBreakoutTabs.Heading>Review</RiverBreakoutTabs.Heading>
81
+ <RiverBreakoutTabs.Content>
82
+ <Text>Keep discussion, suggestions, and diffs together while you review.</Text>
83
+ <Button>Start reviewing</Button>
84
+ </RiverBreakoutTabs.Content>
85
+ <RiverBreakoutTabs.Visual>
86
+ <img src="/images/placeholder-2.png" alt="Review workflow with shared context" />
87
+ </RiverBreakoutTabs.Visual>
88
+ </RiverBreakoutTabs.Item>
89
+ </RiverBreakoutTabs>
90
+ </Section>
91
+ ```
92
+
59
93
  ### With an optional background and inset media
60
94
 
61
95
  ```jsx
package/docs/index.md CHANGED
@@ -1,6 +1,6 @@
1
- # Primer Brand docs (v0.79.0)
1
+ # Primer Brand docs (v0.79.1-rc.5d6b749b)
2
2
 
3
- These docs are bundled with `@primer/react-brand@0.79.0` and match your installed version.
3
+ These docs are bundled with `@primer/react-brand@0.79.1-rc.5d6b749b` and match your installed version.
4
4
 
5
5
  New here? Start with [Getting started](getting-started/index.md) for installation, global
6
6
  stylesheet and font setup. Component directories are named after their import (e.g.
@@ -22,7 +22,7 @@ export type LogoSuiteProps = {
22
22
  /**
23
23
  * Alternative presentation
24
24
  */
25
- variant?: 'default' | 'gridline-expressive';
25
+ variant?: 'default' | 'gridline' | 'gridline-expressive';
26
26
  } & BaseProps<HTMLDivElement> & React.HTMLAttributes<HTMLDivElement>;
27
27
  export type LogoSuiteHeadingProps = BaseProps<HTMLHeadingElement> & HeadingProps & {
28
28
  /**
@@ -34,6 +34,10 @@ export type LogoSuiteDescriptionProps = BaseProps<HTMLParagraphElement> & TextPr
34
34
  children: React.ReactNode | React.ReactNode[];
35
35
  };
36
36
  export type LogoSuiteLogoBarProps = BaseProps<HTMLDivElement> & {
37
+ /**
38
+ * The logos to display in the LogoBar.
39
+ * Accepts either SVG/Image elements or logos wrapped with links
40
+ */
37
41
  children: React.ReactNode | React.ReactNode[];
38
42
  /**
39
43
  * The gap between logos
@@ -1 +1 @@
1
- {"version":3,"file":"LogoSuite.d.ts","sourceRoot":"","sources":["../../src/LogoSuite/LogoSuite.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAC,KAAK,iBAAiB,EAAkE,MAAM,OAAO,CAAA;AAGpH,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,sBAAsB,CAAA;AACnD,OAAO,EAAU,YAAY,EAA2B,SAAS,EAAe,MAAM,KAAK,CAAA;AAE3F;;GAEG;AACH,OAAO,6GAA6G,CAAA;AACpH,OAAO,gGAAgG,CAAA;AAYvG,MAAM,MAAM,cAAc,GAAG;IAC3B;;OAEG;IACH,KAAK,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,SAAS,CAAA;IACtC;;OAEG;IACH,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB;;OAEG;IACH,OAAO,CAAC,EAAE,SAAS,GAAG,qBAAqB,CAAA;CAC5C,GAAG,SAAS,CAAC,cAAc,CAAC,GAC3B,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,CAAA;AAuEtC,MAAM,MAAM,qBAAqB,GAAG,SAAS,CAAC,kBAAkB,CAAC,GAC/D,YAAY,GAAG;IACb;;OAEG;IACH,cAAc,CAAC,EAAE,OAAO,CAAA;CACzB,CAAA;AAiCH,MAAM,MAAM,yBAAyB,GAAG,SAAS,CAAC,oBAAoB,CAAC,GACrE,SAAS,GAAG;IACV,QAAQ,EAAE,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,EAAE,CAAA;CAC9C,CAAA;AAgDH,MAAM,MAAM,qBAAqB,GAAG,SAAS,CAAC,cAAc,CAAC,GAAG;IAC9D,QAAQ,EAAE,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,EAAE,CAAA;IAC7C;;OAEG;IACH,GAAG,CAAC,EAAE,SAAS,GAAG,WAAW,CAAA;IAC7B;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,MAAM,CAAA;IACzC;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,GAAG,UAAU,CAAA;IAC9B;;OAEG;IACH,cAAc,CAAC,EAAE;QACf,KAAK,EAAE,MAAM,CAAA;KACd,GAAG,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,EAAE,UAAU,CAAC,GACjE,SAAS,CAAC,iBAAiB,CAAC,CAAA;CAC/B,CAAA;AAmID;;;GAGG;AACH,eAAO,MAAM,SAAS,iFAxTnB,iBAAiB,CAAC,cAAc,CAAC;;;;;;;;;;;;;;kBAuGtB,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,EAAE;;;;;;;;;;;;;kBAAnC,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,EAAE;;;;;;;;;;;;;kBAAnC,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,EAAE;;;;;;;;;;;;;kBAAnC,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,EAAE;;;;;;;;;;;;;kBAAnC,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,EAAE;;;;;;;CAsN/C,CAAA"}
1
+ {"version":3,"file":"LogoSuite.d.ts","sourceRoot":"","sources":["../../src/LogoSuite/LogoSuite.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAC,KAAK,iBAAiB,EAAkE,MAAM,OAAO,CAAA;AAGpH,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,sBAAsB,CAAA;AACnD,OAAO,EAAU,YAAY,EAA2B,SAAS,EAAe,MAAM,KAAK,CAAA;AAG3F;;GAEG;AACH,OAAO,6GAA6G,CAAA;AACpH,OAAO,gGAAgG,CAAA;AAYvG,MAAM,MAAM,cAAc,GAAG;IAC3B;;OAEG;IACH,KAAK,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,SAAS,CAAA;IACtC;;OAEG;IACH,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB;;OAEG;IACH,OAAO,CAAC,EAAE,SAAS,GAAG,UAAU,GAAG,qBAAqB,CAAA;CACzD,GAAG,SAAS,CAAC,cAAc,CAAC,GAC3B,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,CAAA;AA4EtC,MAAM,MAAM,qBAAqB,GAAG,SAAS,CAAC,kBAAkB,CAAC,GAC/D,YAAY,GAAG;IACb;;OAEG;IACH,cAAc,CAAC,EAAE,OAAO,CAAA;CACzB,CAAA;AAiCH,MAAM,MAAM,yBAAyB,GAAG,SAAS,CAAC,oBAAoB,CAAC,GACrE,SAAS,GAAG;IACV,QAAQ,EAAE,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,EAAE,CAAA;CAC9C,CAAA;AAgDH,MAAM,MAAM,qBAAqB,GAAG,SAAS,CAAC,cAAc,CAAC,GAAG;IAC9D;;;OAGG;IACH,QAAQ,EAAE,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,EAAE,CAAA;IAC7C;;OAEG;IACH,GAAG,CAAC,EAAE,SAAS,GAAG,WAAW,CAAA;IAC7B;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,MAAM,CAAA;IACzC;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,GAAG,UAAU,CAAA;IAC9B;;OAEG;IACH,cAAc,CAAC,EAAE;QACf,KAAK,EAAE,MAAM,CAAA;KACd,GAAG,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,EAAE,UAAU,CAAC,GACjE,SAAS,CAAC,iBAAiB,CAAC,CAAA;CAC/B,CAAA;AAmJD;;;GAGG;AACH,eAAO,MAAM,SAAS,iFAjVnB,iBAAiB,CAAC,cAAc,CAAC;;;;;;;;;;;;;;kBA4GtB,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,EAAE;;;;;;;;;;;;;kBAAnC,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,EAAE;;;;;;;;;;;;;kBAAnC,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,EAAE;;;;;;;;;;;;;kBAAnC,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,EAAE;;;;;;;;;;;;;kBAAnC,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,EAAE;;;;;;;CA0O/C,CAAA"}
@@ -5,7 +5,7 @@ import { Text as r } from "../Text/Text.js";
5
5
  import { Heading as i, defaultHeadingTag as a } from "../Heading/Heading.js";
6
6
  import { Button as o } from "../Button/Button.js";
7
7
  import { PauseIcon as s } from "../node_modules/@primer/octicons-react/dist/icons/PauseIcon.js";
8
- import { PlayIcon as c } from "../node_modules/@primer/octicons-react/dist/icons/PlayIcon.js";
8
+ import { PlayIcon as c } from "../PlayIcon.js";
9
9
  import '../packages/design-tokens/lib/design-tokens/css/tokens/functional/components/logosuite/base-DTi5Rx4y.css';import '../packages/design-tokens/lib/design-tokens/css/tokens/functional/components/logosuite/colors-with-modes-B8ia26TA.css';/* empty css */
10
10
  /* empty css */
11
11
  import l from "./LogoSuite.module.js";
@@ -20,20 +20,20 @@ var y = {
20
20
  }, b = ({ align: n = "center", children: r, className: i, hasDivider: a = !0, variant: o = "default", "data-testid": s }) => {
21
21
  let c = m(() => u.Children.toArray(r), [r]), d = c.find((e) => u.isValidElement(e) && e.type === x), f = c.find((e) => u.isValidElement(e) && e.type === S), p = c.find((e) => u.isValidElement(e) && e.type === w);
22
22
  d || (process.env.NODE_ENV === "development" || process.env.NODE_ENV === "test") && console.warn("LogoSuite: Heading child is required. You may use `visuallyHidden` to hide it from view.");
23
- let h = u.isValidElement(d) && d.props.visuallyHidden, y = o === "gridline-expressive", b = y && (d && !h || f);
23
+ let h = u.isValidElement(d) && d.props.visuallyHidden, y = o === "gridline", b = o === "gridline-expressive", C = y || b, T = C && (d && !h || f);
24
24
  return /* @__PURE__ */ _("div", {
25
25
  className: e(l.LogoSuite, l[`LogoSuite--${n}`], a && l["LogoSuite--hasDivider"], l[`LogoSuite--${o}`], i),
26
26
  "data-testid": s,
27
- children: y ? /* @__PURE__ */ v(t, {
27
+ children: C ? /* @__PURE__ */ v(t, {
28
28
  className: l.LogoSuite__content,
29
- children: [b && /* @__PURE__ */ v(t.Column, {
30
- span: { large: 3 },
29
+ children: [T && /* @__PURE__ */ v(t.Column, {
30
+ span: { large: b ? 3 : 12 },
31
31
  className: l.LogoSuite__textContainer,
32
32
  children: [d, f]
33
33
  }), /* @__PURE__ */ v(t.Column, {
34
- span: { large: b ? 9 : 12 },
34
+ span: { large: b && T ? 9 : 12 },
35
35
  className: l.LogoSuite__logobarContainer,
36
- children: [!b && h && d, p]
36
+ children: [!T && h && d, p]
37
37
  })]
38
38
  }) : /* @__PURE__ */ v(g, { children: [
39
39
  d,
@@ -67,26 +67,29 @@ var y = {
67
67
  "aria-label": e ? "Pause animation" : "Play animation",
68
68
  children: _(e ? s : c, {})
69
69
  });
70
- }, w = d(({ className: t, children: r, gap: i = "default", marquee: a = !1, marqueeSpeed: s = "normal", variant: c = "muted", takeoverButton: u, ...d }, m) => {
71
- let g = n(), [b, x] = h(() => a && !g && s !== "idle");
70
+ }, w = d(({ className: t, children: r, gap: i = "default", marquee: a = !1, marqueeSpeed: s = "normal", variant: c = "muted", takeoverButton: d, ...m }, g) => {
71
+ let b = n(), [x, S] = h(() => a && !b && s !== "idle");
72
72
  p(() => {
73
- x(a && !g && s !== "idle");
73
+ S(a && !b && s !== "idle");
74
74
  }, [
75
75
  a,
76
- g,
76
+ b,
77
77
  s
78
- ]), a && u && (process.env.NODE_ENV === "development" || process.env.NODE_ENV === "test") && console.warn("LogoSuite.Logobar: `takeoverButton` cant be used with `marquee` prop due to accessibility risks. Set `marquee={false}` to use the takeover feature.");
79
- let S = {
80
- ref: m,
81
- className: e(l.LogoSuite__logobar, l[`LogoSuite__logobar--variant-${c}`], l[`LogoSuite__logobar--gap-${i}`], t),
82
- ...d
83
- }, [w, T] = h(!1), E = f(() => {
84
- T(!0);
85
- }, []), D = f((e) => {
86
- e.currentTarget.contains(e.relatedTarget) || T(!1);
87
- }, []), O = () => {
88
- if (!u) return null;
89
- let { className: t, label: n, ref: r, ...i } = u;
78
+ ]), a && d && (process.env.NODE_ENV === "development" || process.env.NODE_ENV === "test") && console.warn("LogoSuite.Logobar: `takeoverButton` cant be used with `marquee` prop due to accessibility risks. Set `marquee={false}` to use the takeover feature.");
79
+ let w = (e) => {
80
+ let t = u.Children.toArray(e);
81
+ return t.length > 0 && t.every((e) => u.isValidElement(e) ? e.type === "a" || e.type === u.Fragment && w(e.props.children) : !1);
82
+ }, T = w(r), E = {
83
+ ref: g,
84
+ className: e(l.LogoSuite__logobar, l[`LogoSuite__logobar--variant-${c}`], l[`LogoSuite__logobar--gap-${i}`], T && l["LogoSuite__logobar--has-linked-logos"], t),
85
+ ...m
86
+ }, [D, O] = h(!1), k = f(() => {
87
+ O(!0);
88
+ }, []), A = f((e) => {
89
+ e.currentTarget.contains(e.relatedTarget) || O(!1);
90
+ }, []), j = () => {
91
+ if (!d) return null;
92
+ let { className: t, label: n, ref: r, ...i } = d;
90
93
  return /* @__PURE__ */ _("div", {
91
94
  className: l["LogoSuite__logobar-takeoverButtonContainer"],
92
95
  children: /* @__PURE__ */ _(o, {
@@ -99,14 +102,14 @@ var y = {
99
102
  });
100
103
  };
101
104
  if (a) {
102
- let { className: t, ...n } = S, i = !b || g;
105
+ let { className: t, ...n } = E, i = !x || b;
103
106
  return /* @__PURE__ */ v("div", {
104
107
  ...n,
105
108
  className: e(l["LogoSuite__logobar--has-marquee"], t, i && l["LogoSuite__logobar--paused"]),
106
109
  children: [/* @__PURE__ */ v("div", {
107
- className: e(l["LogoSuite__logobar-marquee"], w && l["LogoSuite__logobar-marquee--focused"]),
108
- onFocus: E,
109
- onBlur: D,
110
+ className: e(l["LogoSuite__logobar-marquee"], D && l["LogoSuite__logobar-marquee--focused"]),
111
+ onFocus: k,
112
+ onBlur: A,
110
113
  children: [/* @__PURE__ */ _("div", {
111
114
  className: e(l["LogoSuite__logobar-marqueeGroup"], l[`LogoSuite__logobar-marqueeGroup--speed-${s}`]),
112
115
  "data-testid": y.marqueeGroup,
@@ -118,21 +121,21 @@ var y = {
118
121
  children: r
119
122
  })]
120
123
  }), /* @__PURE__ */ _(C, {
121
- onPlayPause: x,
122
- isPlaying: b
124
+ onPlayPause: S,
125
+ isPlaying: x
123
126
  })]
124
127
  });
125
128
  }
126
- if (u) {
127
- let { className: t, ...n } = S;
129
+ if (d) {
130
+ let { className: t, ...n } = E;
128
131
  return /* @__PURE__ */ v("div", {
129
132
  ...n,
130
133
  className: e(t, l["LogoSuite__logobar--has-takeover"]),
131
- children: [r, O()]
134
+ children: [r, j()]
132
135
  });
133
136
  }
134
137
  return /* @__PURE__ */ _("div", {
135
- ...S,
138
+ ...E,
136
139
  children: r
137
140
  });
138
141
  }), T = Object.assign(b, {
@@ -1 +1 @@
1
- {"version":3,"file":"LogoSuite.js","names":[],"sources":["../../src/LogoSuite/LogoSuite.tsx"],"sourcesContent":["import {clsx} from 'clsx'\nimport React, {type PropsWithChildren, type Ref, forwardRef, useCallback, useEffect, useMemo, useState} from 'react'\nimport {useReducedMotion} from '../hooks/useReducedMotion'\nimport {PauseIcon, PlayIcon} from '@primer/octicons-react'\nimport type {BaseProps} from '../component-helpers'\nimport {Heading, HeadingProps, defaultHeadingTag, Text, TextProps, Grid, Button} from '../'\n\n/**\n * Design tokens\n */\nimport '@primer/brand-primitives/lib/design-tokens/css/tokens/functional/components/logosuite/colors-with-modes.css'\nimport '@primer/brand-primitives/lib/design-tokens/css/tokens/functional/components/logosuite/base.css'\n\n/** * Main Stylesheet (as a CSS Module) */\nimport styles from './LogoSuite.module.css'\n\nconst testIds = {\n root: 'LogoSuite',\n get marqueeGroup() {\n return `${this.root}-marqueeGroup`\n },\n}\n\nexport type LogoSuiteProps = {\n /**\n * The horizontal alignment of the LogoSuite.\n */\n align?: 'start' | 'center' | 'justify'\n /**\n * Whether to render a divider immediately after the LogoSuite.\n */\n hasDivider?: boolean\n /**\n * Test id for the root LogoSuite element.\n */\n 'data-testid'?: string\n /**\n * Alternative presentation\n */\n variant?: 'default' | 'gridline-expressive'\n} & BaseProps<HTMLDivElement> &\n React.HTMLAttributes<HTMLDivElement>\n\nconst LogoSuiteBase = ({\n align = 'center',\n children,\n className,\n hasDivider = true,\n variant = 'default',\n 'data-testid': testId,\n}: PropsWithChildren<LogoSuiteProps>) => {\n const childrenArray = useMemo(() => React.Children.toArray(children), [children])\n\n const HeadingChild = childrenArray.find(child => {\n return React.isValidElement(child) && child.type === _Heading\n })\n\n const DescriptionChild = childrenArray.find(child => {\n return React.isValidElement(child) && child.type === _Description\n })\n\n const LogobarChild = childrenArray.find(child => {\n return React.isValidElement(child) && child.type === _LogoBar\n })\n\n if (!HeadingChild) {\n if (process.env.NODE_ENV === 'development' || process.env.NODE_ENV === 'test') {\n // eslint-disable-next-line no-console\n console.warn('LogoSuite: Heading child is required. You may use `visuallyHidden` to hide it from view.')\n }\n }\n\n const isHeadingVisuallyHidden =\n React.isValidElement<LogoSuiteHeadingProps>(HeadingChild) && HeadingChild.props.visuallyHidden\n const isGridlineExpressive = variant === 'gridline-expressive'\n const hasVisibleTextContent = isGridlineExpressive && ((HeadingChild && !isHeadingVisuallyHidden) || DescriptionChild)\n\n return (\n <div\n className={clsx(\n styles.LogoSuite,\n styles[`LogoSuite--${align}`],\n hasDivider && styles['LogoSuite--hasDivider'],\n styles[`LogoSuite--${variant}`],\n className,\n )}\n data-testid={testId}\n >\n {isGridlineExpressive ? (\n <Grid className={styles['LogoSuite__content']}>\n {hasVisibleTextContent && (\n <Grid.Column span={{large: 3}} className={styles['LogoSuite__textContainer']}>\n {HeadingChild}\n {DescriptionChild}\n </Grid.Column>\n )}\n <Grid.Column span={{large: hasVisibleTextContent ? 9 : 12}} className={styles['LogoSuite__logobarContainer']}>\n {!hasVisibleTextContent && isHeadingVisuallyHidden && HeadingChild}\n {LogobarChild}\n </Grid.Column>\n </Grid>\n ) : (\n <>\n {HeadingChild}\n {DescriptionChild}\n {LogobarChild}\n </>\n )}\n </div>\n )\n}\n\nexport type LogoSuiteHeadingProps = BaseProps<HTMLHeadingElement> &\n HeadingProps & {\n /**\n * Whether to visually hide the heading.\n */\n visuallyHidden?: boolean\n }\n\nconst _Heading = forwardRef(\n (\n {\n as = defaultHeadingTag,\n size = 'subhead-large',\n className,\n children,\n visuallyHidden,\n ...props\n }: PropsWithChildren<LogoSuiteHeadingProps>,\n ref: Ref<HTMLHeadingElement>,\n ) => {\n return (\n <Heading\n ref={ref}\n className={clsx(\n styles['LogoSuite__heading'],\n visuallyHidden && styles['LogoSuite__heading--visually-hidden'],\n visuallyHidden && 'visually-hidden',\n className,\n )}\n size={size}\n as={as}\n {...props}\n >\n {children}\n </Heading>\n )\n },\n)\n\nexport type LogoSuiteDescriptionProps = BaseProps<HTMLParagraphElement> &\n TextProps & {\n children: React.ReactNode | React.ReactNode[]\n }\n\nconst _Description = forwardRef(\n (\n {className, children, size = '200', variant = 'muted', ...props}: LogoSuiteDescriptionProps,\n ref: Ref<HTMLParagraphElement>,\n ) => {\n return (\n <Text\n as=\"p\"\n ref={ref}\n size={size}\n variant={variant}\n className={clsx(styles['LogoSuite__description'], className)}\n {...props}\n >\n {children}\n </Text>\n )\n },\n)\n\ntype PlayPauseButtonProps = {\n isPlaying?: boolean\n onPlayPause?: (isPlaying: boolean) => void\n}\n\nconst PlayPauseButton = ({isPlaying = true, onPlayPause}: PlayPauseButtonProps) => {\n const onClick = useCallback(() => {\n onPlayPause?.(!isPlaying)\n }, [onPlayPause, isPlaying])\n\n /**\n * aria-pressed is intentionally not used here to prevent potentially confusing screen reader announcements\n * eg \"Play animation on\" or \"Pause animation off\"\n */\n return (\n <button\n className={styles['LogoSuite__logobar-playPauseButton']}\n type=\"button\"\n onClick={onClick}\n aria-label={isPlaying ? 'Pause animation' : 'Play animation'}\n >\n {isPlaying ? <PauseIcon /> : <PlayIcon />}\n </button>\n )\n}\n\nexport type LogoSuiteLogoBarProps = BaseProps<HTMLDivElement> & {\n children: React.ReactNode | React.ReactNode[]\n /**\n * The gap between logos\n */\n gap?: 'default' | 'condensed'\n /**\n * Enables an optional marquee effect\n */\n marquee?: boolean\n /**\n * The speed of the marquee effect\n */\n marqueeSpeed?: 'slow' | 'normal' | 'idle'\n /**\n * The stylistic variant of the LogoBar.\n */\n variant?: 'muted' | 'emphasis'\n /**\n * Displays an optional takeover button (as an anchor) on hover/focus.\n */\n takeoverButton?: {\n label: string\n } & Omit<React.AnchorHTMLAttributes<HTMLAnchorElement>, 'children'> &\n BaseProps<HTMLAnchorElement>\n}\n\nconst _LogoBar = forwardRef(\n (\n {\n className,\n children,\n gap = 'default',\n marquee = false,\n marqueeSpeed = 'normal',\n variant = 'muted',\n takeoverButton,\n ...props\n }: LogoSuiteLogoBarProps,\n ref: Ref<HTMLDivElement>,\n ) => {\n const prefersReducedMotion = useReducedMotion()\n const [isPlaying, setIsPlaying] = useState(() => marquee && !prefersReducedMotion && marqueeSpeed !== 'idle')\n\n useEffect(() => {\n setIsPlaying(marquee && !prefersReducedMotion && marqueeSpeed !== 'idle')\n }, [marquee, prefersReducedMotion, marqueeSpeed])\n\n if (marquee && takeoverButton) {\n if (process.env.NODE_ENV === 'development' || process.env.NODE_ENV === 'test') {\n // eslint-disable-next-line no-console\n console.warn(\n 'LogoSuite.Logobar: `takeoverButton` cant be used with `marquee` prop due to accessibility risks. Set `marquee={false}` to use the takeover feature.',\n )\n }\n }\n\n const defaultProps = {\n ref,\n className: clsx(\n styles['LogoSuite__logobar'],\n styles[`LogoSuite__logobar--variant-${variant}`],\n styles[`LogoSuite__logobar--gap-${gap}`],\n className,\n ),\n ...props,\n }\n\n const [isFocusWithin, setIsFocusWithin] = useState(false)\n\n const handleFocus = useCallback(() => {\n setIsFocusWithin(true)\n }, [])\n\n const handleBlur = useCallback((event: React.FocusEvent) => {\n if (!event.currentTarget.contains(event.relatedTarget as Node)) {\n setIsFocusWithin(false)\n }\n }, [])\n\n const renderTakeoverButton = () => {\n if (!takeoverButton) return null\n const {className: takeoverButtonClassName, label, ref: _ref, ...takeoverButtonProps} = takeoverButton\n return (\n <div className={styles['LogoSuite__logobar-takeoverButtonContainer']}>\n <Button\n as=\"a\"\n variant=\"primary\"\n className={clsx(styles['LogoSuite__logobar-takeoverButton'], takeoverButtonClassName)}\n {...takeoverButtonProps}\n >\n {label}\n </Button>\n </div>\n )\n }\n\n if (marquee) {\n const {className: marqueeDefaultClassName, ...restProps} = defaultProps\n const shouldPause = !isPlaying || prefersReducedMotion\n return (\n <div\n {...restProps}\n className={clsx(\n styles['LogoSuite__logobar--has-marquee'],\n marqueeDefaultClassName,\n shouldPause && styles['LogoSuite__logobar--paused'],\n )}\n >\n <div\n className={clsx(\n styles['LogoSuite__logobar-marquee'],\n isFocusWithin && styles['LogoSuite__logobar-marquee--focused'],\n )}\n onFocus={handleFocus}\n onBlur={handleBlur}\n >\n <div\n className={clsx(\n styles['LogoSuite__logobar-marqueeGroup'],\n styles[`LogoSuite__logobar-marqueeGroup--speed-${marqueeSpeed}`],\n )}\n data-testid={testIds.marqueeGroup}\n >\n {children}\n </div>\n <div\n inert\n aria-hidden=\"true\"\n className={clsx(\n styles['LogoSuite__logobar-marqueeGroup'],\n styles[`LogoSuite__logobar-marqueeGroup--speed-${marqueeSpeed}`],\n )}\n >\n {children}\n </div>\n </div>\n <PlayPauseButton onPlayPause={setIsPlaying} isPlaying={isPlaying} />\n </div>\n )\n }\n\n if (takeoverButton) {\n const {className: defaultClassName, ...restProps} = defaultProps\n return (\n <div {...restProps} className={clsx(defaultClassName, styles['LogoSuite__logobar--has-takeover'])}>\n {children}\n {renderTakeoverButton()}\n </div>\n )\n }\n\n return <div {...defaultProps}>{children}</div>\n },\n)\n\n/**\n * Use LogoSuite to present a list of logos, such as sponsors or vendors.\n * @see https://primer.style/brand/components/LogoSuite\n */\nexport const LogoSuite = Object.assign(LogoSuiteBase, {\n Heading: _Heading,\n Description: _Description,\n Logobar: _LogoBar,\n testIds,\n})\n"],"mappings":"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"}
1
+ {"version":3,"file":"LogoSuite.js","names":[],"sources":["../../src/LogoSuite/LogoSuite.tsx"],"sourcesContent":["import {clsx} from 'clsx'\nimport React, {type PropsWithChildren, type Ref, forwardRef, useCallback, useEffect, useMemo, useState} from 'react'\nimport {useReducedMotion} from '../hooks/useReducedMotion'\nimport {PauseIcon} from '@primer/octicons-react'\nimport type {BaseProps} from '../component-helpers'\nimport {Heading, HeadingProps, defaultHeadingTag, Text, TextProps, Grid, Button} from '../'\nimport {PlayIcon} from '../PlayIcon'\n\n/**\n * Design tokens\n */\nimport '@primer/brand-primitives/lib/design-tokens/css/tokens/functional/components/logosuite/colors-with-modes.css'\nimport '@primer/brand-primitives/lib/design-tokens/css/tokens/functional/components/logosuite/base.css'\n\n/** * Main Stylesheet (as a CSS Module) */\nimport styles from './LogoSuite.module.css'\n\nconst testIds = {\n root: 'LogoSuite',\n get marqueeGroup() {\n return `${this.root}-marqueeGroup`\n },\n}\n\nexport type LogoSuiteProps = {\n /**\n * The horizontal alignment of the LogoSuite.\n */\n align?: 'start' | 'center' | 'justify'\n /**\n * Whether to render a divider immediately after the LogoSuite.\n */\n hasDivider?: boolean\n /**\n * Test id for the root LogoSuite element.\n */\n 'data-testid'?: string\n /**\n * Alternative presentation\n */\n variant?: 'default' | 'gridline' | 'gridline-expressive'\n} & BaseProps<HTMLDivElement> &\n React.HTMLAttributes<HTMLDivElement>\n\nconst LogoSuiteBase = ({\n align = 'center',\n children,\n className,\n hasDivider = true,\n variant = 'default',\n 'data-testid': testId,\n}: PropsWithChildren<LogoSuiteProps>) => {\n const childrenArray = useMemo(() => React.Children.toArray(children), [children])\n\n const HeadingChild = childrenArray.find(child => {\n return React.isValidElement(child) && child.type === _Heading\n })\n\n const DescriptionChild = childrenArray.find(child => {\n return React.isValidElement(child) && child.type === _Description\n })\n\n const LogobarChild = childrenArray.find(child => {\n return React.isValidElement(child) && child.type === _LogoBar\n })\n\n if (!HeadingChild) {\n if (process.env.NODE_ENV === 'development' || process.env.NODE_ENV === 'test') {\n // eslint-disable-next-line no-console\n console.warn('LogoSuite: Heading child is required. You may use `visuallyHidden` to hide it from view.')\n }\n }\n\n const isHeadingVisuallyHidden =\n React.isValidElement<LogoSuiteHeadingProps>(HeadingChild) && HeadingChild.props.visuallyHidden\n const isGridline = variant === 'gridline'\n const isGridlineExpressive = variant === 'gridline-expressive'\n const hasGridlineLayout = isGridline || isGridlineExpressive\n const hasVisibleTextContent = hasGridlineLayout && ((HeadingChild && !isHeadingVisuallyHidden) || DescriptionChild)\n\n return (\n <div\n className={clsx(\n styles.LogoSuite,\n styles[`LogoSuite--${align}`],\n hasDivider && styles['LogoSuite--hasDivider'],\n styles[`LogoSuite--${variant}`],\n className,\n )}\n data-testid={testId}\n >\n {hasGridlineLayout ? (\n <Grid className={styles['LogoSuite__content']}>\n {hasVisibleTextContent && (\n <Grid.Column span={{large: isGridlineExpressive ? 3 : 12}} className={styles['LogoSuite__textContainer']}>\n {HeadingChild}\n {DescriptionChild}\n </Grid.Column>\n )}\n <Grid.Column\n span={{large: isGridlineExpressive && hasVisibleTextContent ? 9 : 12}}\n className={styles['LogoSuite__logobarContainer']}\n >\n {!hasVisibleTextContent && isHeadingVisuallyHidden && HeadingChild}\n {LogobarChild}\n </Grid.Column>\n </Grid>\n ) : (\n <>\n {HeadingChild}\n {DescriptionChild}\n {LogobarChild}\n </>\n )}\n </div>\n )\n}\n\nexport type LogoSuiteHeadingProps = BaseProps<HTMLHeadingElement> &\n HeadingProps & {\n /**\n * Whether to visually hide the heading.\n */\n visuallyHidden?: boolean\n }\n\nconst _Heading = forwardRef(\n (\n {\n as = defaultHeadingTag,\n size = 'subhead-large',\n className,\n children,\n visuallyHidden,\n ...props\n }: PropsWithChildren<LogoSuiteHeadingProps>,\n ref: Ref<HTMLHeadingElement>,\n ) => {\n return (\n <Heading\n ref={ref}\n className={clsx(\n styles['LogoSuite__heading'],\n visuallyHidden && styles['LogoSuite__heading--visually-hidden'],\n visuallyHidden && 'visually-hidden',\n className,\n )}\n size={size}\n as={as}\n {...props}\n >\n {children}\n </Heading>\n )\n },\n)\n\nexport type LogoSuiteDescriptionProps = BaseProps<HTMLParagraphElement> &\n TextProps & {\n children: React.ReactNode | React.ReactNode[]\n }\n\nconst _Description = forwardRef(\n (\n {className, children, size = '200', variant = 'muted', ...props}: LogoSuiteDescriptionProps,\n ref: Ref<HTMLParagraphElement>,\n ) => {\n return (\n <Text\n as=\"p\"\n ref={ref}\n size={size}\n variant={variant}\n className={clsx(styles['LogoSuite__description'], className)}\n {...props}\n >\n {children}\n </Text>\n )\n },\n)\n\ntype PlayPauseButtonProps = {\n isPlaying?: boolean\n onPlayPause?: (isPlaying: boolean) => void\n}\n\nconst PlayPauseButton = ({isPlaying = true, onPlayPause}: PlayPauseButtonProps) => {\n const onClick = useCallback(() => {\n onPlayPause?.(!isPlaying)\n }, [onPlayPause, isPlaying])\n\n /**\n * aria-pressed is intentionally not used here to prevent potentially confusing screen reader announcements\n * eg \"Play animation on\" or \"Pause animation off\"\n */\n return (\n <button\n className={styles['LogoSuite__logobar-playPauseButton']}\n type=\"button\"\n onClick={onClick}\n aria-label={isPlaying ? 'Pause animation' : 'Play animation'}\n >\n {isPlaying ? <PauseIcon /> : <PlayIcon />}\n </button>\n )\n}\n\nexport type LogoSuiteLogoBarProps = BaseProps<HTMLDivElement> & {\n /**\n * The logos to display in the LogoBar.\n * Accepts either SVG/Image elements or logos wrapped with links\n */\n children: React.ReactNode | React.ReactNode[]\n /**\n * The gap between logos\n */\n gap?: 'default' | 'condensed'\n /**\n * Enables an optional marquee effect\n */\n marquee?: boolean\n /**\n * The speed of the marquee effect\n */\n marqueeSpeed?: 'slow' | 'normal' | 'idle'\n /**\n * The stylistic variant of the LogoBar.\n */\n variant?: 'muted' | 'emphasis'\n /**\n * Displays an optional takeover button (as an anchor) on hover/focus.\n */\n takeoverButton?: {\n label: string\n } & Omit<React.AnchorHTMLAttributes<HTMLAnchorElement>, 'children'> &\n BaseProps<HTMLAnchorElement>\n}\n\nconst _LogoBar = forwardRef(\n (\n {\n className,\n children,\n gap = 'default',\n marquee = false,\n marqueeSpeed = 'normal',\n variant = 'muted',\n takeoverButton,\n ...props\n }: LogoSuiteLogoBarProps,\n ref: Ref<HTMLDivElement>,\n ) => {\n const prefersReducedMotion = useReducedMotion()\n const [isPlaying, setIsPlaying] = useState(() => marquee && !prefersReducedMotion && marqueeSpeed !== 'idle')\n\n useEffect(() => {\n setIsPlaying(marquee && !prefersReducedMotion && marqueeSpeed !== 'idle')\n }, [marquee, prefersReducedMotion, marqueeSpeed])\n\n if (marquee && takeoverButton) {\n if (process.env.NODE_ENV === 'development' || process.env.NODE_ENV === 'test') {\n // eslint-disable-next-line no-console\n console.warn(\n 'LogoSuite.Logobar: `takeoverButton` cant be used with `marquee` prop due to accessibility risks. Set `marquee={false}` to use the takeover feature.',\n )\n }\n }\n\n const checkAllLogosAreLinks = (nodes: React.ReactNode): boolean => {\n const childNodes = React.Children.toArray(nodes)\n\n return (\n childNodes.length > 0 &&\n childNodes.every(child => {\n if (!React.isValidElement<PropsWithChildren>(child)) return false\n if (child.type === 'a') return true\n return child.type === React.Fragment && checkAllLogosAreLinks(child.props.children)\n })\n )\n }\n\n const hasLinkedLogos = checkAllLogosAreLinks(children)\n\n const defaultProps = {\n ref,\n className: clsx(\n styles['LogoSuite__logobar'],\n styles[`LogoSuite__logobar--variant-${variant}`],\n styles[`LogoSuite__logobar--gap-${gap}`],\n hasLinkedLogos && styles['LogoSuite__logobar--has-linked-logos'],\n className,\n ),\n ...props,\n }\n\n const [isFocusWithin, setIsFocusWithin] = useState(false)\n\n const handleFocus = useCallback(() => {\n setIsFocusWithin(true)\n }, [])\n\n const handleBlur = useCallback((event: React.FocusEvent) => {\n if (!event.currentTarget.contains(event.relatedTarget as Node)) {\n setIsFocusWithin(false)\n }\n }, [])\n\n const renderTakeoverButton = () => {\n if (!takeoverButton) return null\n const {className: takeoverButtonClassName, label, ref: _ref, ...takeoverButtonProps} = takeoverButton\n return (\n <div className={styles['LogoSuite__logobar-takeoverButtonContainer']}>\n <Button\n as=\"a\"\n variant=\"primary\"\n className={clsx(styles['LogoSuite__logobar-takeoverButton'], takeoverButtonClassName)}\n {...takeoverButtonProps}\n >\n {label}\n </Button>\n </div>\n )\n }\n\n if (marquee) {\n const {className: marqueeDefaultClassName, ...restProps} = defaultProps\n const shouldPause = !isPlaying || prefersReducedMotion\n return (\n <div\n {...restProps}\n className={clsx(\n styles['LogoSuite__logobar--has-marquee'],\n marqueeDefaultClassName,\n shouldPause && styles['LogoSuite__logobar--paused'],\n )}\n >\n <div\n className={clsx(\n styles['LogoSuite__logobar-marquee'],\n isFocusWithin && styles['LogoSuite__logobar-marquee--focused'],\n )}\n onFocus={handleFocus}\n onBlur={handleBlur}\n >\n <div\n className={clsx(\n styles['LogoSuite__logobar-marqueeGroup'],\n styles[`LogoSuite__logobar-marqueeGroup--speed-${marqueeSpeed}`],\n )}\n data-testid={testIds.marqueeGroup}\n >\n {children}\n </div>\n <div\n inert\n aria-hidden=\"true\"\n className={clsx(\n styles['LogoSuite__logobar-marqueeGroup'],\n styles[`LogoSuite__logobar-marqueeGroup--speed-${marqueeSpeed}`],\n )}\n >\n {children}\n </div>\n </div>\n <PlayPauseButton onPlayPause={setIsPlaying} isPlaying={isPlaying} />\n </div>\n )\n }\n\n if (takeoverButton) {\n const {className: defaultClassName, ...restProps} = defaultProps\n return (\n <div {...restProps} className={clsx(defaultClassName, styles['LogoSuite__logobar--has-takeover'])}>\n {children}\n {renderTakeoverButton()}\n </div>\n )\n }\n\n return <div {...defaultProps}>{children}</div>\n },\n)\n\n/**\n * Use LogoSuite to present a list of logos, such as sponsors or vendors.\n * @see https://primer.style/brand/components/LogoSuite\n */\nexport const LogoSuite = Object.assign(LogoSuiteBase, {\n Heading: _Heading,\n Description: _Description,\n Logobar: _LogoBar,\n testIds,\n})\n"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ .Primer_Brand__LogoSuite-module__LogoSuite___bHvbJ{padding-block-end:var(--brand-LogoSuite-logobar-rowGap)}.Primer_Brand__LogoSuite-module__LogoSuite--default___mbLiN+.Primer_Brand__LogoSuite-module__LogoSuite--default___mbLiN{padding-block-start:var(--brand-LogoSuite-logobar-rowGap)}.Primer_Brand__LogoSuite-module__LogoSuite___bHvbJ:not(:has(.Primer_Brand__LogoSuite-module__LogoSuite__description___J_Sms)) .Primer_Brand__LogoSuite-module__LogoSuite__heading___PsSGL{font-family:var(--brand-fontStack-monospace);font-weight:var(--brand-text-weight-100);font-size:var(--brand-text-size-100);line-height:var(--brand-text-lineHeight-100);letter-spacing:var(--brand-text-letterSpacing-100);text-transform:uppercase;color:var(--brand-color-text-muted)}.Primer_Brand__LogoSuite-module__LogoSuite__heading___PsSGL+.Primer_Brand__LogoSuite-module__LogoSuite__description___J_Sms{padding-block-start:var(--base-size-16)}.Primer_Brand__LogoSuite-module__LogoSuite--start___zqwlX{text-align:left}.Primer_Brand__LogoSuite-module__LogoSuite--center___j119b,.Primer_Brand__LogoSuite-module__LogoSuite--justify___MTk0u{text-align:center}.Primer_Brand__LogoSuite-module__LogoSuite--default___mbLiN:not(.Primer_Brand__LogoSuite-module__LogoSuite___bHvbJ+.Primer_Brand__LogoSuite-module__LogoSuite___bHvbJ) .Primer_Brand__LogoSuite-module__LogoSuite__logobar___3IogC{padding-block-start:var(--base-size-32)}.Primer_Brand__LogoSuite-module__LogoSuite__logobar___3IogC{row-gap:var(--brand-LogoSuite-logobar-rowGap);flex-wrap:wrap;justify-content:center;display:flex}.Primer_Brand__LogoSuite-module__LogoSuite__logobar--gap-default___sGwUx{--marquee-gap:var(--brand-LogoSuite-logobar-marquee-gap-default);-moz-column-gap:var(--brand-LogoSuite-logobar-columnGap-default);column-gap:var(--brand-LogoSuite-logobar-columnGap-default)}.Primer_Brand__LogoSuite-module__LogoSuite__logobar--gap-condensed___T86E8{--marquee-gap:var(--brand-LogoSuite-logobar-marquee-gap-condensed);-moz-column-gap:var(--brand-LogoSuite-logobar-columnGap-condensed);column-gap:var(--brand-LogoSuite-logobar-columnGap-condensed)}.Primer_Brand__LogoSuite-module__LogoSuite___bHvbJ:not(.Primer_Brand__LogoSuite-module__LogoSuite___bHvbJ+.Primer_Brand__LogoSuite-module__LogoSuite___bHvbJ) .Primer_Brand__LogoSuite-module__LogoSuite__heading___PsSGL:not(.Primer_Brand__LogoSuite-module__LogoSuite__heading--visually-hidden___oZzlO)+.Primer_Brand__LogoSuite-module__LogoSuite__logobar___3IogC,.Primer_Brand__LogoSuite-module__LogoSuite___bHvbJ:not(.Primer_Brand__LogoSuite-module__LogoSuite___bHvbJ+.Primer_Brand__LogoSuite-module__LogoSuite___bHvbJ) .Primer_Brand__LogoSuite-module__LogoSuite__description___J_Sms+.Primer_Brand__LogoSuite-module__LogoSuite__logobar___3IogC{margin-block-start:var(--base-size-44);padding-block-start:0}.Primer_Brand__LogoSuite-module__LogoSuite__logobar--variant-muted___iM9ru svg,.Primer_Brand__LogoSuite-module__LogoSuite__logobar--variant-muted___iM9ru img,.Primer_Brand__LogoSuite-module__LogoSuite__logobar--variant-muted___iM9ru a,.Primer_Brand__LogoSuite-module__LogoSuite__logobar--variant-emphasis___yvuYR svg,.Primer_Brand__LogoSuite-module__LogoSuite__logobar--variant-emphasis___yvuYR img,.Primer_Brand__LogoSuite-module__LogoSuite__logobar--variant-emphasis___yvuYR a{width:auto;height:var(--base-size-32)}.Primer_Brand__LogoSuite-module__LogoSuite__logobar___3IogC img{display:block}.Primer_Brand__LogoSuite-module__LogoSuite__logobar--has-linked-logos___52pLk :where(a){color:var(--brand-color-text-default)}.Primer_Brand__LogoSuite-module__LogoSuite__logobar--variant-muted___iM9ru:where(:not(.Primer_Brand__LogoSuite-module__LogoSuite__logobar--has-linked-logos___52pLk)) svg,.Primer_Brand__LogoSuite-module__LogoSuite__logobar--variant-muted___iM9ru:where(:not(.Primer_Brand__LogoSuite-module__LogoSuite__logobar--has-linked-logos___52pLk)) path{fill:var(--brand-LogoSuite-color-logo-muted)}.Primer_Brand__LogoSuite-module__LogoSuite__logobar--variant-muted___iM9ru:where(:not(.Primer_Brand__LogoSuite-module__LogoSuite__logobar--has-linked-logos___52pLk)) img{filter:var(--brand-LogoSuite-color-logo-filter-muted)}.Primer_Brand__LogoSuite-module__LogoSuite__logobar--variant-emphasis___yvuYR:where(:not(.Primer_Brand__LogoSuite-module__LogoSuite__logobar--has-linked-logos___52pLk)) svg,.Primer_Brand__LogoSuite-module__LogoSuite__logobar--variant-emphasis___yvuYR:where(:not(.Primer_Brand__LogoSuite-module__LogoSuite__logobar--has-linked-logos___52pLk)) path{fill:var(--brand-LogoSuite-color-logo-emphasis)}.Primer_Brand__LogoSuite-module__LogoSuite__logobar--variant-emphasis___yvuYR:where(:not(.Primer_Brand__LogoSuite-module__LogoSuite__logobar--has-linked-logos___52pLk)) img{filter:var(--brand-LogoSuite-color-logo-filter-emphasis)}.Primer_Brand__LogoSuite-module__LogoSuite--start___zqwlX .Primer_Brand__LogoSuite-module__LogoSuite__logobar___3IogC{justify-content:center}@media screen and (width>=48rem){.Primer_Brand__LogoSuite-module__LogoSuite--justify___MTk0u .Primer_Brand__LogoSuite-module__LogoSuite__logobar___3IogC{justify-content:space-between}}.Primer_Brand__LogoSuite-module__LogoSuite__logobar___3IogC a:focus-visible{outline:var(--brand-borderWidth-thick) solid var(--brand-color-focus);outline-offset:var(--base-size-2);border-radius:var(--base-size-4)}.Primer_Brand__LogoSuite-module__LogoSuite--hasDivider___Wj8u_{border-bottom:var(--brand-borderWidth-thin) solid var(--brand-color-border-muted)}.Primer_Brand__LogoSuite-module__LogoSuite__logobar--has-marquee___tyW6K{align-items:center;gap:var(--base-size-24);flex-direction:row;max-width:100vw;margin:auto;display:flex;position:relative}.Primer_Brand__LogoSuite-module__LogoSuite__logobar-marqueeGroup___bUhyS{justify-content:space-around;align-items:center;gap:var(--marquee-gap);min-width:100%;animation-name:Primer_Brand__LogoSuite-module__LogobarScrollX___eGhi4;animation-duration:var(--brand-LogoSuite-logobar-marquee-default);flex-shrink:0;animation-timing-function:linear;animation-iteration-count:infinite;animation-direction:normal;animation-play-state:running;animation-fill-mode:none;display:flex}.Primer_Brand__LogoSuite-module__LogoSuite__logobar-marqueeGroup--speed-default___nsm9D{animation-duration:var(--brand-LogoSuite-logobar-marquee-default)}.Primer_Brand__LogoSuite-module__LogoSuite__logobar-marqueeGroup--speed-slow___NZHrb{animation-duration:var(--brand-LogoSuite-logobar-marquee-slow)}@keyframes Primer_Brand__LogoSuite-module__LogobarScrollX___eGhi4{0%{transform:translate(0)}to{transform:translateX(calc(-100% - var(--marquee-gap)))}}.Primer_Brand__LogoSuite-module__LogoSuite__logobar-marquee____s6pK:hover .Primer_Brand__LogoSuite-module__LogoSuite__logobar-marqueeGroup___bUhyS,.Primer_Brand__LogoSuite-module__LogoSuite__logobar-marquee____s6pK:focus-within .Primer_Brand__LogoSuite-module__LogoSuite__logobar-marqueeGroup___bUhyS{animation-play-state:paused}.Primer_Brand__LogoSuite-module__LogoSuite__logobar-marquee____s6pK{padding-block:var(--base-size-4);-webkit-user-select:none;user-select:none;gap:var(--marquee-gap);flex:1;min-width:0;display:flex;overflow:hidden visible;-webkit-mask-image:linear-gradient(90deg,#0000,#000 20% 80%,#0000);mask-image:linear-gradient(90deg,#0000,#000 20% 80%,#0000)}.Primer_Brand__LogoSuite-module__LogoSuite__logobar--paused___7p9ka *{animation-play-state:paused!important}.Primer_Brand__LogoSuite-module__LogoSuite__logobar-marquee--focused___zizoE .Primer_Brand__LogoSuite-module__LogoSuite__logobar-marqueeGroup___bUhyS{animation-name:none}.Primer_Brand__LogoSuite-module__LogoSuite__logobar-playPauseButton___KDfie{cursor:pointer;width:var(--base-size-32);height:var(--base-size-32);border-radius:var(--base-size-48);border:none;border:var(--brand-borderWidth-thin) solid var(--brand-color-border-muted);background-color:var(--brand-LogoSuite-color-control-rest);transition:background-color var(--brand-animation-duration-faster);flex-shrink:0;justify-content:center;align-items:center;margin:0;padding:0;display:flex}.Primer_Brand__LogoSuite-module__LogoSuite__logobar-playPauseButton___KDfie:hover{background-color:var(--brand-LogoSuite-color-control-hover)}.Primer_Brand__LogoSuite-module__LogoSuite__logobar-playPauseButton___KDfie:focus-visible{outline:var(--base-size-4) solid var(--brand-color-focus);outline-offset:var(--base-size-2)}.Primer_Brand__LogoSuite-module__LogoSuite__logobar-playPauseButton___KDfie svg{width:var(--base-size-16);height:var(--base-size-16);fill:var(--brand-color-text-muted)}.Primer_Brand__LogoSuite-module__LogoSuite__logobar-playPauseButton___KDfie path{fill:var(--brand-color-text-muted)}.Primer_Brand__LogoSuite-module__LogoSuite--gridline___9nj9A,.Primer_Brand__LogoSuite-module__LogoSuite--gridline-expressive___86D16{padding:0}.Primer_Brand__LogoSuite-module__LogoSuite--gridline___9nj9A .Primer_Brand__LogoSuite-module__LogoSuite__content____8K_Y,.Primer_Brand__LogoSuite-module__LogoSuite--gridline-expressive___86D16 .Primer_Brand__LogoSuite-module__LogoSuite__content____8K_Y{gap:0;padding-inline:0}.Primer_Brand__LogoSuite-module__LogoSuite--gridline___9nj9A .Primer_Brand__LogoSuite-module__LogoSuite__textContainer___OB63e,.Primer_Brand__LogoSuite-module__LogoSuite--gridline-expressive___86D16 .Primer_Brand__LogoSuite-module__LogoSuite__textContainer___OB63e,.Primer_Brand__LogoSuite-module__LogoSuite--gridline___9nj9A .Primer_Brand__LogoSuite-module__LogoSuite__logobarContainer___RcqbC,.Primer_Brand__LogoSuite-module__LogoSuite--gridline-expressive___86D16 .Primer_Brand__LogoSuite-module__LogoSuite__logobarContainer___RcqbC{flex-direction:column;justify-content:center;display:flex}.Primer_Brand__LogoSuite-module__LogoSuite--gridline___9nj9A .Primer_Brand__LogoSuite-module__LogoSuite__logobar___3IogC,.Primer_Brand__LogoSuite-module__LogoSuite--gridline-expressive___86D16 .Primer_Brand__LogoSuite-module__LogoSuite__logobar___3IogC{margin-block-start:auto;padding-block-start:0}.Primer_Brand__LogoSuite-module__LogoSuite--gridline___9nj9A .Primer_Brand__LogoSuite-module__LogoSuite__heading___PsSGL+.Primer_Brand__LogoSuite-module__LogoSuite__description___J_Sms,.Primer_Brand__LogoSuite-module__LogoSuite--gridline-expressive___86D16 .Primer_Brand__LogoSuite-module__LogoSuite__heading___PsSGL+.Primer_Brand__LogoSuite-module__LogoSuite__description___J_Sms{padding-block-start:var(--base-size-8)}.Primer_Brand__LogoSuite-module__LogoSuite--gridline___9nj9A .Primer_Brand__LogoSuite-module__LogoSuite__logobar___3IogC,.Primer_Brand__LogoSuite-module__LogoSuite--gridline___9nj9A .Primer_Brand__LogoSuite-module__LogoSuite__logobar--has-marquee___tyW6K,.Primer_Brand__LogoSuite-module__LogoSuite--gridline-expressive___86D16 .Primer_Brand__LogoSuite-module__LogoSuite__logobar___3IogC,.Primer_Brand__LogoSuite-module__LogoSuite--gridline-expressive___86D16 .Primer_Brand__LogoSuite-module__LogoSuite__logobar--has-marquee___tyW6K{width:100%;max-width:none}.Primer_Brand__LogoSuite-module__LogoSuite--gridline___9nj9A .Primer_Brand__LogoSuite-module__LogoSuite__textContainer___OB63e{padding:var(--base-size-40) var(--base-size-20) 0}.Primer_Brand__LogoSuite-module__LogoSuite--gridline___9nj9A .Primer_Brand__LogoSuite-module__LogoSuite__logobarContainer___RcqbC{padding:var(--base-size-40) var(--base-size-20) var(--base-size-48)}@media screen and (width>=48rem){.Primer_Brand__LogoSuite-module__LogoSuite--gridline___9nj9A .Primer_Brand__LogoSuite-module__LogoSuite__textContainer___OB63e{padding:var(--base-size-48) var(--base-size-40) 0}.Primer_Brand__LogoSuite-module__LogoSuite--gridline___9nj9A .Primer_Brand__LogoSuite-module__LogoSuite__logobarContainer___RcqbC{padding:var(--base-size-40) var(--base-size-40) var(--base-size-64)}}@media screen and (width>=64rem){.Primer_Brand__LogoSuite-module__LogoSuite--gridline___9nj9A .Primer_Brand__LogoSuite-module__LogoSuite__textContainer___OB63e{padding:var(--base-size-48) var(--base-size-64) 0}.Primer_Brand__LogoSuite-module__LogoSuite--gridline___9nj9A .Primer_Brand__LogoSuite-module__LogoSuite__logobarContainer___RcqbC{padding:var(--base-size-48) var(--base-size-64) var(--base-size-64)}}@media screen and (width>=80rem){.Primer_Brand__LogoSuite-module__LogoSuite--gridline___9nj9A .Primer_Brand__LogoSuite-module__LogoSuite__content____8K_Y{border-inline:var(--brand-borderWidth-thin) solid var(--brand-color-border-muted)}}.Primer_Brand__LogoSuite-module__LogoSuite--gridline-expressive___86D16 .Primer_Brand__LogoSuite-module__LogoSuite__textContainer___OB63e{padding:var(--base-size-20)}.Primer_Brand__LogoSuite-module__LogoSuite--gridline-expressive___86D16 .Primer_Brand__LogoSuite-module__LogoSuite__logobarContainer___RcqbC{padding:var(--base-size-32) var(--base-size-20) var(--base-size-32)}@media screen and (width>=48rem){.Primer_Brand__LogoSuite-module__LogoSuite--gridline-expressive___86D16{padding-inline:91px}.Primer_Brand__LogoSuite-module__LogoSuite--gridline-expressive___86D16 .Primer_Brand__LogoSuite-module__LogoSuite__logobarContainer___RcqbC{padding:var(--base-size-40)}.Primer_Brand__LogoSuite-module__LogoSuite--gridline-expressive___86D16 .Primer_Brand__LogoSuite-module__LogoSuite__content____8K_Y{border-inline:var(--brand-borderWidth-thin) solid var(--brand-color-border-muted)}.Primer_Brand__LogoSuite-module__LogoSuite--gridline-expressive___86D16 .Primer_Brand__LogoSuite-module__LogoSuite__textContainer___OB63e{border-inline-end:var(--brand-borderWidth-thin) solid var(--brand-color-border-muted)}}@media screen and (width>=64rem){.Primer_Brand__LogoSuite-module__LogoSuite--gridline-expressive___86D16{padding-inline:0}.Primer_Brand__LogoSuite-module__LogoSuite--gridline-expressive___86D16 .Primer_Brand__LogoSuite-module__LogoSuite__content____8K_Y{max-width:1280px}.Primer_Brand__LogoSuite-module__LogoSuite--gridline-expressive___86D16 .Primer_Brand__LogoSuite-module__LogoSuite__textContainer___OB63e{text-align:left;padding:var(--base-size-64)}.Primer_Brand__LogoSuite-module__LogoSuite--gridline-expressive___86D16 .Primer_Brand__LogoSuite-module__LogoSuite__logobarContainer___RcqbC{padding:var(--base-size-64)}}@media screen and (width>=1281px){.Primer_Brand__LogoSuite-module__LogoSuite--gridline-expressive___86D16 .Primer_Brand__LogoSuite-module__LogoSuite__content____8K_Y{border-inline:var(--brand-borderWidth-thin) solid var(--brand-color-border-muted)}.Primer_Brand__LogoSuite-module__LogoSuite--gridline-expressive___86D16 .Primer_Brand__LogoSuite-module__LogoSuite__logobarContainer___RcqbC:first-child{border-inline-start:none}}.Primer_Brand__LogoSuite-module__LogoSuite__logobar--has-takeover___ZQbXf{position:relative;overflow:visible}.Primer_Brand__LogoSuite-module__LogoSuite__logobar--has-takeover___ZQbXf:before{content:"";inset:calc(-1 * var(--base-size-16)) 0;z-index:1;pointer-events:none;opacity:0;-webkit-backdrop-filter:blur(var(--base-size-6));transition:opacity var(--brand-animation-duration-default) var(--brand-animation-easing-default);position:absolute}.Primer_Brand__LogoSuite-module__LogoSuite__logobar--has-takeover___ZQbXf:hover:before,.Primer_Brand__LogoSuite-module__LogoSuite__logobar--has-takeover___ZQbXf:focus-within:before{opacity:1}.Primer_Brand__LogoSuite-module__LogoSuite__logobar--has-takeover___ZQbXf:hover svg,.Primer_Brand__LogoSuite-module__LogoSuite__logobar--has-takeover___ZQbXf:focus-within svg,.Primer_Brand__LogoSuite-module__LogoSuite__logobar--has-takeover___ZQbXf:hover img,.Primer_Brand__LogoSuite-module__LogoSuite__logobar--has-takeover___ZQbXf:focus-within img{opacity:.7;transition:opacity var(--brand-animation-duration-default) var(--brand-animation-easing-default)}.Primer_Brand__LogoSuite-module__LogoSuite__logobar-takeoverButtonContainer___ehoEd{opacity:0;visibility:hidden;z-index:2;transition:opacity var(--brand-animation-duration-default) var(--brand-animation-easing-default);position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.Primer_Brand__LogoSuite-module__LogoSuite__logobar--has-takeover___ZQbXf:hover .Primer_Brand__LogoSuite-module__LogoSuite__logobar-takeoverButtonContainer___ehoEd,.Primer_Brand__LogoSuite-module__LogoSuite__logobar--has-takeover___ZQbXf:focus-within .Primer_Brand__LogoSuite-module__LogoSuite__logobar-takeoverButtonContainer___ehoEd{opacity:1;visibility:visible}
@@ -1,4 +1,4 @@
1
- import './LogoSuite.module-BCbX-lfy.css';//#region src/LogoSuite/LogoSuite.module.css
1
+ import './LogoSuite.module-BUJyNoZs.css';//#region src/LogoSuite/LogoSuite.module.css
2
2
  var e = "Primer_Brand__LogoSuite-module__LogoSuite___bHvbJ", t = "Primer_Brand__LogoSuite-module__LogoSuite__description___J_Sms", n = "Primer_Brand__LogoSuite-module__LogoSuite__heading___PsSGL", r = "Primer_Brand__LogoSuite-module__LogoSuite__logobar___3IogC", i = "Primer_Brand__LogoSuite-module__LogobarScrollX___eGhi4", a = "Primer_Brand__LogoSuite-module__LogoSuite__content____8K_Y", o = "Primer_Brand__LogoSuite-module__LogoSuite__textContainer___OB63e", s = "Primer_Brand__LogoSuite-module__LogoSuite__logobarContainer___RcqbC", c = {
3
3
  LogoSuite: e,
4
4
  "LogoSuite--default": "Primer_Brand__LogoSuite-module__LogoSuite--default___mbLiN",
@@ -13,6 +13,7 @@ var e = "Primer_Brand__LogoSuite-module__LogoSuite___bHvbJ", t = "Primer_Brand__
13
13
  "LogoSuite__heading--visually-hidden": "Primer_Brand__LogoSuite-module__LogoSuite__heading--visually-hidden___oZzlO",
14
14
  "LogoSuite__logobar--variant-muted": "Primer_Brand__LogoSuite-module__LogoSuite__logobar--variant-muted___iM9ru",
15
15
  "LogoSuite__logobar--variant-emphasis": "Primer_Brand__LogoSuite-module__LogoSuite__logobar--variant-emphasis___yvuYR",
16
+ "LogoSuite__logobar--has-linked-logos": "Primer_Brand__LogoSuite-module__LogoSuite__logobar--has-linked-logos___52pLk",
16
17
  "LogoSuite--hasDivider": "Primer_Brand__LogoSuite-module__LogoSuite--hasDivider___Wj8u_",
17
18
  "LogoSuite__logobar--has-marquee": "Primer_Brand__LogoSuite-module__LogoSuite__logobar--has-marquee___tyW6K",
18
19
  "LogoSuite__logobar-marqueeGroup": "Primer_Brand__LogoSuite-module__LogoSuite__logobar-marqueeGroup___bUhyS",
@@ -23,6 +24,7 @@ var e = "Primer_Brand__LogoSuite-module__LogoSuite___bHvbJ", t = "Primer_Brand__
23
24
  "LogoSuite__logobar--paused": "Primer_Brand__LogoSuite-module__LogoSuite__logobar--paused___7p9ka",
24
25
  "LogoSuite__logobar-marquee--focused": "Primer_Brand__LogoSuite-module__LogoSuite__logobar-marquee--focused___zizoE",
25
26
  "LogoSuite__logobar-playPauseButton": "Primer_Brand__LogoSuite-module__LogoSuite__logobar-playPauseButton___KDfie",
27
+ "LogoSuite--gridline": "Primer_Brand__LogoSuite-module__LogoSuite--gridline___9nj9A",
26
28
  "LogoSuite--gridline-expressive": "Primer_Brand__LogoSuite-module__LogoSuite--gridline-expressive___86D16",
27
29
  LogoSuite__content: a,
28
30
  LogoSuite__textContainer: o,