@primer/react-brand 0.72.1-rc.c5f3a3b5 → 0.73.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (412) hide show
  1. package/docs/components/Card/react.md +62 -13
  2. package/docs/components/MinimalVideoPlayer/index.md +117 -0
  3. package/docs/components/index.md +1 -0
  4. package/docs/index.md +3 -2
  5. package/esm/Card/Card.d.ts +6 -3
  6. package/esm/Card/Card.d.ts.map +1 -1
  7. package/esm/Card/Card.js +28 -28
  8. package/esm/Card/Card.js.map +1 -1
  9. package/esm/Card/Card.module-4GGxtM9r.css +1 -0
  10. package/esm/Card/Card.module.js +4 -1
  11. package/esm/Card/Card.module.js.map +1 -1
  12. package/esm/FAQ/FAQ.module-BFCs33mw.css +1 -0
  13. package/esm/FAQ/FAQ.module.js +1 -1
  14. package/esm/FAQ/FAQ.module.js.map +1 -1
  15. package/esm/MinimalVideoPlayer/MinimalVideoPlayer.d.ts +65 -0
  16. package/esm/MinimalVideoPlayer/MinimalVideoPlayer.d.ts.map +1 -0
  17. package/esm/MinimalVideoPlayer/MinimalVideoPlayer.js +76 -0
  18. package/esm/MinimalVideoPlayer/MinimalVideoPlayer.js.map +1 -0
  19. package/esm/MinimalVideoPlayer/MinimalVideoPlayer.module-Bcv4-Y5D.css +1 -0
  20. package/esm/MinimalVideoPlayer/MinimalVideoPlayer.module.js +9 -0
  21. package/esm/MinimalVideoPlayer/MinimalVideoPlayer.module.js.map +1 -0
  22. package/esm/MinimalVideoPlayer/index.d.ts +2 -0
  23. package/esm/MinimalVideoPlayer/index.d.ts.map +1 -0
  24. package/esm/MinimalVideoPlayer/useMinimalVideoPlayback.d.ts +16 -0
  25. package/esm/MinimalVideoPlayer/useMinimalVideoPlayback.d.ts.map +1 -0
  26. package/esm/MinimalVideoPlayer/useMinimalVideoPlayback.js +73 -0
  27. package/esm/MinimalVideoPlayer/useMinimalVideoPlayback.js.map +1 -0
  28. package/esm/Testimonial/Testimonial.d.ts.map +1 -1
  29. package/esm/Testimonial/Testimonial.js +20 -16
  30. package/esm/Testimonial/Testimonial.js.map +1 -1
  31. package/esm/Testimonial/Testimonial.module-BEV0y2jl.css +1 -0
  32. package/esm/Testimonial/Testimonial.module.js +3 -1
  33. package/esm/Testimonial/Testimonial.module.js.map +1 -1
  34. package/esm/index.d.ts +1 -0
  35. package/esm/index.d.ts.map +1 -1
  36. package/esm/index.esm.js +26 -25
  37. package/esm/packages/design-tokens/lib/design-tokens/css/tokens/functional/components/card/base-DgOt50dE.css +1 -0
  38. package/lib/Card/Card.d.ts +6 -3
  39. package/lib/MinimalVideoPlayer/MinimalVideoPlayer.d.ts +64 -0
  40. package/lib/MinimalVideoPlayer/index.d.ts +1 -0
  41. package/lib/MinimalVideoPlayer/useMinimalVideoPlayback.d.ts +15 -0
  42. package/lib/css/main.css +365 -139
  43. package/lib/design-tokens/css/tokens/base/colors/color-scales-with-modes.css +1 -1
  44. package/lib/design-tokens/css/tokens/base/colors/light.css +1 -1
  45. package/lib/design-tokens/css/tokens/base/size/size.css +1 -1
  46. package/lib/design-tokens/css/tokens/base/typography/typography.css +1 -1
  47. package/lib/design-tokens/css/tokens/functional/animation/base.css +1 -1
  48. package/lib/design-tokens/css/tokens/functional/colors/global-with-modes.css +1 -1
  49. package/lib/design-tokens/css/tokens/functional/colors/global.css +1 -1
  50. package/lib/design-tokens/css/tokens/functional/components/accordion/colors-with-modes.css +1 -1
  51. package/lib/design-tokens/css/tokens/functional/components/action-menu/colors-with-modes.css +1 -1
  52. package/lib/design-tokens/css/tokens/functional/components/anchor-nav/colors-with-modes.css +1 -1
  53. package/lib/design-tokens/css/tokens/functional/components/bento/base.css +1 -1
  54. package/lib/design-tokens/css/tokens/functional/components/blinking-cursor/colors-with-modes.css +1 -1
  55. package/lib/design-tokens/css/tokens/functional/components/breadcrumbs/colors-with-modes.css +1 -1
  56. package/lib/design-tokens/css/tokens/functional/components/button/colors-with-modes.css +1 -1
  57. package/lib/design-tokens/css/tokens/functional/components/card/base.css +3 -1
  58. package/lib/design-tokens/css/tokens/functional/components/card/colors-with-modes.css +1 -1
  59. package/lib/design-tokens/css/tokens/functional/components/card/colors.css +1 -1
  60. package/lib/design-tokens/css/tokens/functional/components/comparison-table/colors-with-modes.css +1 -1
  61. package/lib/design-tokens/css/tokens/functional/components/comparison-table/comparison-table.css +1 -1
  62. package/lib/design-tokens/css/tokens/functional/components/control/colors-with-modes.css +1 -1
  63. package/lib/design-tokens/css/tokens/functional/components/cta-banner/colors-with-modes.css +1 -1
  64. package/lib/design-tokens/css/tokens/functional/components/eyebrow-banner/colors-with-modes.css +1 -1
  65. package/lib/design-tokens/css/tokens/functional/components/eyebrow-banner/eyebrow-banner.css +1 -1
  66. package/lib/design-tokens/css/tokens/functional/components/faq/base.css +1 -1
  67. package/lib/design-tokens/css/tokens/functional/components/faq/colors-with-modes.css +1 -1
  68. package/lib/design-tokens/css/tokens/functional/components/faq/colors.css +1 -1
  69. package/lib/design-tokens/css/tokens/functional/components/faq/faq.css +1 -1
  70. package/lib/design-tokens/css/tokens/functional/components/footer/colors-with-modes.css +1 -1
  71. package/lib/design-tokens/css/tokens/functional/components/footer/colors.css +1 -1
  72. package/lib/design-tokens/css/tokens/functional/components/frosted-glass-vfx/base.css +1 -1
  73. package/lib/design-tokens/css/tokens/functional/components/frosted-glass-vfx/colors-with-modes.css +1 -1
  74. package/lib/design-tokens/css/tokens/functional/components/grid/colors-with-modes.css +1 -1
  75. package/lib/design-tokens/css/tokens/functional/components/grid/colors.css +1 -1
  76. package/lib/design-tokens/css/tokens/functional/components/grid/grid.css +1 -1
  77. package/lib/design-tokens/css/tokens/functional/components/hero/base.css +1 -1
  78. package/lib/design-tokens/css/tokens/functional/components/icon/colors-with-modes.css +1 -1
  79. package/lib/design-tokens/css/tokens/functional/components/icon/colors.css +1 -1
  80. package/lib/design-tokens/css/tokens/functional/components/ide/base.css +1 -1
  81. package/lib/design-tokens/css/tokens/functional/components/ide/colors-with-modes.css +1 -1
  82. package/lib/design-tokens/css/tokens/functional/components/image/base.css +1 -1
  83. package/lib/design-tokens/css/tokens/functional/components/inline-link/base.css +1 -1
  84. package/lib/design-tokens/css/tokens/functional/components/inline-link/colors-with-modes.css +1 -1
  85. package/lib/design-tokens/css/tokens/functional/components/inline-link/colors.css +1 -1
  86. package/lib/design-tokens/css/tokens/functional/components/label/colors-with-modes.css +1 -1
  87. package/lib/design-tokens/css/tokens/functional/components/label/colors.css +1 -1
  88. package/lib/design-tokens/css/tokens/functional/components/link/colors-with-modes.css +1 -1
  89. package/lib/design-tokens/css/tokens/functional/components/link/colors.css +1 -1
  90. package/lib/design-tokens/css/tokens/functional/components/logosuite/base.css +1 -1
  91. package/lib/design-tokens/css/tokens/functional/components/logosuite/colors-with-modes.css +1 -1
  92. package/lib/design-tokens/css/tokens/functional/components/logosuite/colors.css +1 -1
  93. package/lib/design-tokens/css/tokens/functional/components/media-playlist/colors-with-modes.css +1 -1
  94. package/lib/design-tokens/css/tokens/functional/components/media-playlist/colors.css +1 -1
  95. package/lib/design-tokens/css/tokens/functional/components/nav-list/colors-with-modes.css +1 -1
  96. package/lib/design-tokens/css/tokens/functional/components/pricing-options/colors-with-modes.css +1 -1
  97. package/lib/design-tokens/css/tokens/functional/components/pricing-options/colors.css +1 -1
  98. package/lib/design-tokens/css/tokens/functional/components/pricing-options/pricing-options.css +1 -1
  99. package/lib/design-tokens/css/tokens/functional/components/prose/base.css +1 -1
  100. package/lib/design-tokens/css/tokens/functional/components/prose/colors-with-modes.css +1 -1
  101. package/lib/design-tokens/css/tokens/functional/components/river/base.css +1 -1
  102. package/lib/design-tokens/css/tokens/functional/components/river/river.css +1 -1
  103. package/lib/design-tokens/css/tokens/functional/components/river-story-scroll/colors-with-modes.css +1 -1
  104. package/lib/design-tokens/css/tokens/functional/components/section/section.css +1 -1
  105. package/lib/design-tokens/css/tokens/functional/components/statistic/base.css +1 -1
  106. package/lib/design-tokens/css/tokens/functional/components/sub-nav/base.css +1 -1
  107. package/lib/design-tokens/css/tokens/functional/components/sub-nav/colors-with-modes.css +1 -1
  108. package/lib/design-tokens/css/tokens/functional/components/subdomain-nav-bar/colors-with-modes.css +1 -1
  109. package/lib/design-tokens/css/tokens/functional/components/tabs/base.css +1 -1
  110. package/lib/design-tokens/css/tokens/functional/components/tabs/colors-with-modes.css +1 -1
  111. package/lib/design-tokens/css/tokens/functional/components/tabs/colors.css +1 -1
  112. package/lib/design-tokens/css/tokens/functional/components/testimonial/base.css +1 -1
  113. package/lib/design-tokens/css/tokens/functional/components/testimonial/colors-with-modes.css +1 -1
  114. package/lib/design-tokens/css/tokens/functional/components/testimonial/colors.css +1 -1
  115. package/lib/design-tokens/css/tokens/functional/components/text-cursor-animation/colors-with-modes.css +1 -1
  116. package/lib/design-tokens/css/tokens/functional/components/text-cursor-animation/colors.css +1 -1
  117. package/lib/design-tokens/css/tokens/functional/components/tiles/colors-with-modes.css +1 -1
  118. package/lib/design-tokens/css/tokens/functional/components/timeline/base.css +1 -1
  119. package/lib/design-tokens/css/tokens/functional/components/timeline/colors-with-modes.css +1 -1
  120. package/lib/design-tokens/css/tokens/functional/components/timeline/colors.css +1 -1
  121. package/lib/design-tokens/css/tokens/functional/components/token/colors-with-modes.css +1 -1
  122. package/lib/design-tokens/css/tokens/functional/components/token/colors.css +1 -1
  123. package/lib/design-tokens/css/tokens/functional/components/tooltip/colors-with-modes.css +1 -1
  124. package/lib/design-tokens/css/tokens/functional/components/tooltip/colors.css +1 -1
  125. package/lib/design-tokens/css/tokens/functional/components/video-player/base.css +1 -1
  126. package/lib/design-tokens/css/tokens/functional/components/video-player/colors-with-modes.css +1 -1
  127. package/lib/design-tokens/css/tokens/functional/size/border.css +1 -1
  128. package/lib/design-tokens/css/tokens/functional/size/breakpoints.css +1 -1
  129. package/lib/design-tokens/css/tokens/functional/size/size-coarse.css +1 -1
  130. package/lib/design-tokens/css/tokens/functional/size/size-fine.css +1 -1
  131. package/lib/design-tokens/css/tokens/functional/size/size.css +1 -1
  132. package/lib/design-tokens/css/tokens/functional/size/viewport.css +1 -1
  133. package/lib/design-tokens/css/tokens/functional/typography/typography-responsive.css +1 -1
  134. package/lib/design-tokens/css/tokens/functional/typography/typography.css +1 -1
  135. package/lib/design-tokens/js/module/tokens/base/colors/light.js +1 -1
  136. package/lib/design-tokens/js/module/tokens/base/size/size.js +1 -1
  137. package/lib/design-tokens/js/module/tokens/base/typography/typography.js +1 -1
  138. package/lib/design-tokens/js/module/tokens/functional/animation/base.js +1 -1
  139. package/lib/design-tokens/js/module/tokens/functional/colors/global.js +1 -1
  140. package/lib/design-tokens/js/module/tokens/functional/components/bento/base.js +1 -1
  141. package/lib/design-tokens/js/module/tokens/functional/components/card/base.js +5 -1
  142. package/lib/design-tokens/js/module/tokens/functional/components/card/colors.js +1 -1
  143. package/lib/design-tokens/js/module/tokens/functional/components/comparison-table/comparison-table.js +1 -1
  144. package/lib/design-tokens/js/module/tokens/functional/components/eyebrow-banner/eyebrow-banner.js +1 -1
  145. package/lib/design-tokens/js/module/tokens/functional/components/faq/base.js +1 -1
  146. package/lib/design-tokens/js/module/tokens/functional/components/faq/colors.js +1 -1
  147. package/lib/design-tokens/js/module/tokens/functional/components/faq/faq.js +1 -1
  148. package/lib/design-tokens/js/module/tokens/functional/components/footer/colors.js +1 -1
  149. package/lib/design-tokens/js/module/tokens/functional/components/frosted-glass-vfx/base.js +1 -1
  150. package/lib/design-tokens/js/module/tokens/functional/components/grid/colors.js +1 -1
  151. package/lib/design-tokens/js/module/tokens/functional/components/grid/grid.js +1 -1
  152. package/lib/design-tokens/js/module/tokens/functional/components/hero/base.js +1 -1
  153. package/lib/design-tokens/js/module/tokens/functional/components/icon/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-link/base.js +1 -1
  157. package/lib/design-tokens/js/module/tokens/functional/components/inline-link/colors.js +1 -1
  158. package/lib/design-tokens/js/module/tokens/functional/components/label/colors.js +1 -1
  159. package/lib/design-tokens/js/module/tokens/functional/components/link/colors.js +1 -1
  160. package/lib/design-tokens/js/module/tokens/functional/components/logosuite/base.js +1 -1
  161. package/lib/design-tokens/js/module/tokens/functional/components/logosuite/colors.js +1 -1
  162. package/lib/design-tokens/js/module/tokens/functional/components/media-playlist/colors.js +1 -1
  163. package/lib/design-tokens/js/module/tokens/functional/components/pricing-options/colors.js +1 -1
  164. package/lib/design-tokens/js/module/tokens/functional/components/pricing-options/pricing-options.js +1 -1
  165. package/lib/design-tokens/js/module/tokens/functional/components/prose/base.js +1 -1
  166. package/lib/design-tokens/js/module/tokens/functional/components/river/base.js +1 -1
  167. package/lib/design-tokens/js/module/tokens/functional/components/river/river.js +1 -1
  168. package/lib/design-tokens/js/module/tokens/functional/components/section/section.js +1 -1
  169. package/lib/design-tokens/js/module/tokens/functional/components/statistic/base.js +1 -1
  170. package/lib/design-tokens/js/module/tokens/functional/components/sub-nav/base.js +1 -1
  171. package/lib/design-tokens/js/module/tokens/functional/components/tabs/base.js +1 -1
  172. package/lib/design-tokens/js/module/tokens/functional/components/tabs/colors.js +1 -1
  173. package/lib/design-tokens/js/module/tokens/functional/components/testimonial/base.js +1 -1
  174. package/lib/design-tokens/js/module/tokens/functional/components/testimonial/colors.js +1 -1
  175. package/lib/design-tokens/js/module/tokens/functional/components/text-cursor-animation/colors.js +1 -1
  176. package/lib/design-tokens/js/module/tokens/functional/components/timeline/base.js +1 -1
  177. package/lib/design-tokens/js/module/tokens/functional/components/timeline/colors.js +1 -1
  178. package/lib/design-tokens/js/module/tokens/functional/components/token/colors.js +1 -1
  179. package/lib/design-tokens/js/module/tokens/functional/components/tooltip/colors.js +1 -1
  180. package/lib/design-tokens/js/module/tokens/functional/components/video-player/base.js +1 -1
  181. package/lib/design-tokens/js/module/tokens/functional/size/border.js +1 -1
  182. package/lib/design-tokens/js/module/tokens/functional/size/breakpoints.js +1 -1
  183. package/lib/design-tokens/js/module/tokens/functional/size/size-coarse.js +1 -1
  184. package/lib/design-tokens/js/module/tokens/functional/size/size-fine.js +1 -1
  185. package/lib/design-tokens/js/module/tokens/functional/size/size.js +1 -1
  186. package/lib/design-tokens/js/module/tokens/functional/size/viewport.js +1 -1
  187. package/lib/design-tokens/js/module/tokens/functional/typography/typography-responsive.js +1 -1
  188. package/lib/design-tokens/js/module/tokens/functional/typography/typography.js +1 -1
  189. package/lib/design-tokens/js/tokens/base/colors/light.js +1 -1
  190. package/lib/design-tokens/js/tokens/base/size/size.js +1 -1
  191. package/lib/design-tokens/js/tokens/base/typography/typography.js +1 -1
  192. package/lib/design-tokens/js/tokens/functional/animation/base.js +1 -1
  193. package/lib/design-tokens/js/tokens/functional/colors/global.js +1 -1
  194. package/lib/design-tokens/js/tokens/functional/components/bento/base.js +1 -1
  195. package/lib/design-tokens/js/tokens/functional/components/card/base.js +3 -1
  196. package/lib/design-tokens/js/tokens/functional/components/card/colors.js +1 -1
  197. package/lib/design-tokens/js/tokens/functional/components/comparison-table/comparison-table.js +1 -1
  198. package/lib/design-tokens/js/tokens/functional/components/eyebrow-banner/eyebrow-banner.js +1 -1
  199. package/lib/design-tokens/js/tokens/functional/components/faq/base.js +1 -1
  200. package/lib/design-tokens/js/tokens/functional/components/faq/colors.js +1 -1
  201. package/lib/design-tokens/js/tokens/functional/components/faq/faq.js +1 -1
  202. package/lib/design-tokens/js/tokens/functional/components/footer/colors.js +1 -1
  203. package/lib/design-tokens/js/tokens/functional/components/frosted-glass-vfx/base.js +1 -1
  204. package/lib/design-tokens/js/tokens/functional/components/grid/colors.js +1 -1
  205. package/lib/design-tokens/js/tokens/functional/components/grid/grid.js +1 -1
  206. package/lib/design-tokens/js/tokens/functional/components/hero/base.js +1 -1
  207. package/lib/design-tokens/js/tokens/functional/components/icon/colors.js +1 -1
  208. package/lib/design-tokens/js/tokens/functional/components/ide/base.js +1 -1
  209. package/lib/design-tokens/js/tokens/functional/components/image/base.js +1 -1
  210. package/lib/design-tokens/js/tokens/functional/components/inline-link/base.js +1 -1
  211. package/lib/design-tokens/js/tokens/functional/components/inline-link/colors.js +1 -1
  212. package/lib/design-tokens/js/tokens/functional/components/label/colors.js +1 -1
  213. package/lib/design-tokens/js/tokens/functional/components/link/colors.js +1 -1
  214. package/lib/design-tokens/js/tokens/functional/components/logosuite/base.js +1 -1
  215. package/lib/design-tokens/js/tokens/functional/components/logosuite/colors.js +1 -1
  216. package/lib/design-tokens/js/tokens/functional/components/media-playlist/colors.js +1 -1
  217. package/lib/design-tokens/js/tokens/functional/components/pricing-options/colors.js +1 -1
  218. package/lib/design-tokens/js/tokens/functional/components/pricing-options/pricing-options.js +1 -1
  219. package/lib/design-tokens/js/tokens/functional/components/prose/base.js +1 -1
  220. package/lib/design-tokens/js/tokens/functional/components/river/base.js +1 -1
  221. package/lib/design-tokens/js/tokens/functional/components/river/river.js +1 -1
  222. package/lib/design-tokens/js/tokens/functional/components/section/section.js +1 -1
  223. package/lib/design-tokens/js/tokens/functional/components/statistic/base.js +1 -1
  224. package/lib/design-tokens/js/tokens/functional/components/sub-nav/base.js +1 -1
  225. package/lib/design-tokens/js/tokens/functional/components/tabs/base.js +1 -1
  226. package/lib/design-tokens/js/tokens/functional/components/tabs/colors.js +1 -1
  227. package/lib/design-tokens/js/tokens/functional/components/testimonial/base.js +1 -1
  228. package/lib/design-tokens/js/tokens/functional/components/testimonial/colors.js +1 -1
  229. package/lib/design-tokens/js/tokens/functional/components/text-cursor-animation/colors.js +1 -1
  230. package/lib/design-tokens/js/tokens/functional/components/timeline/base.js +1 -1
  231. package/lib/design-tokens/js/tokens/functional/components/timeline/colors.js +1 -1
  232. package/lib/design-tokens/js/tokens/functional/components/token/colors.js +1 -1
  233. package/lib/design-tokens/js/tokens/functional/components/tooltip/colors.js +1 -1
  234. package/lib/design-tokens/js/tokens/functional/components/video-player/base.js +1 -1
  235. package/lib/design-tokens/js/tokens/functional/size/border.js +1 -1
  236. package/lib/design-tokens/js/tokens/functional/size/breakpoints.js +1 -1
  237. package/lib/design-tokens/js/tokens/functional/size/size-coarse.js +1 -1
  238. package/lib/design-tokens/js/tokens/functional/size/size-fine.js +1 -1
  239. package/lib/design-tokens/js/tokens/functional/size/size.js +1 -1
  240. package/lib/design-tokens/js/tokens/functional/size/viewport.js +1 -1
  241. package/lib/design-tokens/js/tokens/functional/typography/typography-responsive.js +1 -1
  242. package/lib/design-tokens/js/tokens/functional/typography/typography.js +1 -1
  243. package/lib/design-tokens/scss/tokens/base/colors/light.scss +1 -1
  244. package/lib/design-tokens/scss/tokens/base/size/size.scss +1 -1
  245. package/lib/design-tokens/scss/tokens/base/typography/typography.scss +1 -1
  246. package/lib/design-tokens/scss/tokens/functional/animation/base.scss +1 -1
  247. package/lib/design-tokens/scss/tokens/functional/colors/global.scss +1 -1
  248. package/lib/design-tokens/scss/tokens/functional/components/bento/base.scss +1 -1
  249. package/lib/design-tokens/scss/tokens/functional/components/card/base.scss +3 -1
  250. package/lib/design-tokens/scss/tokens/functional/components/card/colors.scss +1 -1
  251. package/lib/design-tokens/scss/tokens/functional/components/comparison-table/comparison-table.scss +1 -1
  252. package/lib/design-tokens/scss/tokens/functional/components/eyebrow-banner/eyebrow-banner.scss +1 -1
  253. package/lib/design-tokens/scss/tokens/functional/components/faq/base.scss +1 -1
  254. package/lib/design-tokens/scss/tokens/functional/components/faq/colors.scss +1 -1
  255. package/lib/design-tokens/scss/tokens/functional/components/faq/faq.scss +1 -1
  256. package/lib/design-tokens/scss/tokens/functional/components/footer/colors.scss +1 -1
  257. package/lib/design-tokens/scss/tokens/functional/components/frosted-glass-vfx/base.scss +1 -1
  258. package/lib/design-tokens/scss/tokens/functional/components/grid/colors.scss +1 -1
  259. package/lib/design-tokens/scss/tokens/functional/components/grid/grid.scss +1 -1
  260. package/lib/design-tokens/scss/tokens/functional/components/hero/base.scss +1 -1
  261. package/lib/design-tokens/scss/tokens/functional/components/icon/colors.scss +1 -1
  262. package/lib/design-tokens/scss/tokens/functional/components/ide/base.scss +1 -1
  263. package/lib/design-tokens/scss/tokens/functional/components/image/base.scss +1 -1
  264. package/lib/design-tokens/scss/tokens/functional/components/inline-link/base.scss +1 -1
  265. package/lib/design-tokens/scss/tokens/functional/components/inline-link/colors.scss +1 -1
  266. package/lib/design-tokens/scss/tokens/functional/components/label/colors.scss +1 -1
  267. package/lib/design-tokens/scss/tokens/functional/components/link/colors.scss +1 -1
  268. package/lib/design-tokens/scss/tokens/functional/components/logosuite/base.scss +1 -1
  269. package/lib/design-tokens/scss/tokens/functional/components/logosuite/colors.scss +1 -1
  270. package/lib/design-tokens/scss/tokens/functional/components/media-playlist/colors.scss +1 -1
  271. package/lib/design-tokens/scss/tokens/functional/components/pricing-options/colors.scss +1 -1
  272. package/lib/design-tokens/scss/tokens/functional/components/pricing-options/pricing-options.scss +1 -1
  273. package/lib/design-tokens/scss/tokens/functional/components/prose/base.scss +1 -1
  274. package/lib/design-tokens/scss/tokens/functional/components/river/base.scss +1 -1
  275. package/lib/design-tokens/scss/tokens/functional/components/river/river.scss +1 -1
  276. package/lib/design-tokens/scss/tokens/functional/components/section/section.scss +1 -1
  277. package/lib/design-tokens/scss/tokens/functional/components/statistic/base.scss +1 -1
  278. package/lib/design-tokens/scss/tokens/functional/components/sub-nav/base.scss +1 -1
  279. package/lib/design-tokens/scss/tokens/functional/components/tabs/base.scss +1 -1
  280. package/lib/design-tokens/scss/tokens/functional/components/tabs/colors.scss +1 -1
  281. package/lib/design-tokens/scss/tokens/functional/components/testimonial/base.scss +1 -1
  282. package/lib/design-tokens/scss/tokens/functional/components/testimonial/colors.scss +1 -1
  283. package/lib/design-tokens/scss/tokens/functional/components/text-cursor-animation/colors.scss +1 -1
  284. package/lib/design-tokens/scss/tokens/functional/components/timeline/base.scss +1 -1
  285. package/lib/design-tokens/scss/tokens/functional/components/timeline/colors.scss +1 -1
  286. package/lib/design-tokens/scss/tokens/functional/components/token/colors.scss +1 -1
  287. package/lib/design-tokens/scss/tokens/functional/components/tooltip/colors.scss +1 -1
  288. package/lib/design-tokens/scss/tokens/functional/components/video-player/base.scss +1 -1
  289. package/lib/design-tokens/scss/tokens/functional/size/border.scss +1 -1
  290. package/lib/design-tokens/scss/tokens/functional/size/breakpoints.scss +1 -1
  291. package/lib/design-tokens/scss/tokens/functional/size/size-coarse.scss +1 -1
  292. package/lib/design-tokens/scss/tokens/functional/size/size-fine.scss +1 -1
  293. package/lib/design-tokens/scss/tokens/functional/size/size.scss +1 -1
  294. package/lib/design-tokens/scss/tokens/functional/size/viewport.scss +1 -1
  295. package/lib/design-tokens/scss/tokens/functional/typography/typography-responsive.scss +1 -1
  296. package/lib/design-tokens/scss/tokens/functional/typography/typography.scss +1 -1
  297. package/lib/design-tokens/ts/tokens/base/colors/light.d.ts +1 -1
  298. package/lib/design-tokens/ts/tokens/base/colors/light.js +1 -1
  299. package/lib/design-tokens/ts/tokens/base/size/size.d.ts +1 -1
  300. package/lib/design-tokens/ts/tokens/base/size/size.js +1 -1
  301. package/lib/design-tokens/ts/tokens/base/typography/typography.d.ts +1 -1
  302. package/lib/design-tokens/ts/tokens/base/typography/typography.js +1 -1
  303. package/lib/design-tokens/ts/tokens/functional/animation/base.d.ts +1 -1
  304. package/lib/design-tokens/ts/tokens/functional/animation/base.js +1 -1
  305. package/lib/design-tokens/ts/tokens/functional/colors/global.d.ts +1 -1
  306. package/lib/design-tokens/ts/tokens/functional/colors/global.js +1 -1
  307. package/lib/design-tokens/ts/tokens/functional/components/bento/base.d.ts +1 -1
  308. package/lib/design-tokens/ts/tokens/functional/components/bento/base.js +1 -1
  309. package/lib/design-tokens/ts/tokens/functional/components/card/base.d.ts +5 -1
  310. package/lib/design-tokens/ts/tokens/functional/components/card/base.js +5 -1
  311. package/lib/design-tokens/ts/tokens/functional/components/card/colors.d.ts +1 -1
  312. package/lib/design-tokens/ts/tokens/functional/components/card/colors.js +1 -1
  313. package/lib/design-tokens/ts/tokens/functional/components/comparison-table/comparison-table.d.ts +1 -1
  314. package/lib/design-tokens/ts/tokens/functional/components/comparison-table/comparison-table.js +1 -1
  315. package/lib/design-tokens/ts/tokens/functional/components/eyebrow-banner/eyebrow-banner.d.ts +1 -1
  316. package/lib/design-tokens/ts/tokens/functional/components/eyebrow-banner/eyebrow-banner.js +1 -1
  317. package/lib/design-tokens/ts/tokens/functional/components/faq/base.d.ts +1 -1
  318. package/lib/design-tokens/ts/tokens/functional/components/faq/base.js +1 -1
  319. package/lib/design-tokens/ts/tokens/functional/components/faq/colors.d.ts +1 -1
  320. package/lib/design-tokens/ts/tokens/functional/components/faq/colors.js +1 -1
  321. package/lib/design-tokens/ts/tokens/functional/components/faq/faq.d.ts +1 -1
  322. package/lib/design-tokens/ts/tokens/functional/components/faq/faq.js +1 -1
  323. package/lib/design-tokens/ts/tokens/functional/components/footer/colors.d.ts +1 -1
  324. package/lib/design-tokens/ts/tokens/functional/components/footer/colors.js +1 -1
  325. package/lib/design-tokens/ts/tokens/functional/components/frosted-glass-vfx/base.d.ts +1 -1
  326. package/lib/design-tokens/ts/tokens/functional/components/frosted-glass-vfx/base.js +1 -1
  327. package/lib/design-tokens/ts/tokens/functional/components/grid/colors.d.ts +1 -1
  328. package/lib/design-tokens/ts/tokens/functional/components/grid/colors.js +1 -1
  329. package/lib/design-tokens/ts/tokens/functional/components/grid/grid.d.ts +1 -1
  330. package/lib/design-tokens/ts/tokens/functional/components/grid/grid.js +1 -1
  331. package/lib/design-tokens/ts/tokens/functional/components/hero/base.d.ts +1 -1
  332. package/lib/design-tokens/ts/tokens/functional/components/hero/base.js +1 -1
  333. package/lib/design-tokens/ts/tokens/functional/components/icon/colors.d.ts +1 -1
  334. package/lib/design-tokens/ts/tokens/functional/components/icon/colors.js +1 -1
  335. package/lib/design-tokens/ts/tokens/functional/components/ide/base.d.ts +1 -1
  336. package/lib/design-tokens/ts/tokens/functional/components/ide/base.js +1 -1
  337. package/lib/design-tokens/ts/tokens/functional/components/image/base.d.ts +1 -1
  338. package/lib/design-tokens/ts/tokens/functional/components/image/base.js +1 -1
  339. package/lib/design-tokens/ts/tokens/functional/components/inline-link/base.d.ts +1 -1
  340. package/lib/design-tokens/ts/tokens/functional/components/inline-link/base.js +1 -1
  341. package/lib/design-tokens/ts/tokens/functional/components/inline-link/colors.d.ts +1 -1
  342. package/lib/design-tokens/ts/tokens/functional/components/inline-link/colors.js +1 -1
  343. package/lib/design-tokens/ts/tokens/functional/components/label/colors.d.ts +1 -1
  344. package/lib/design-tokens/ts/tokens/functional/components/label/colors.js +1 -1
  345. package/lib/design-tokens/ts/tokens/functional/components/link/colors.d.ts +1 -1
  346. package/lib/design-tokens/ts/tokens/functional/components/link/colors.js +1 -1
  347. package/lib/design-tokens/ts/tokens/functional/components/logosuite/base.d.ts +1 -1
  348. package/lib/design-tokens/ts/tokens/functional/components/logosuite/base.js +1 -1
  349. package/lib/design-tokens/ts/tokens/functional/components/logosuite/colors.d.ts +1 -1
  350. package/lib/design-tokens/ts/tokens/functional/components/logosuite/colors.js +1 -1
  351. package/lib/design-tokens/ts/tokens/functional/components/media-playlist/colors.d.ts +1 -1
  352. package/lib/design-tokens/ts/tokens/functional/components/media-playlist/colors.js +1 -1
  353. package/lib/design-tokens/ts/tokens/functional/components/pricing-options/colors.d.ts +1 -1
  354. package/lib/design-tokens/ts/tokens/functional/components/pricing-options/colors.js +1 -1
  355. package/lib/design-tokens/ts/tokens/functional/components/pricing-options/pricing-options.d.ts +1 -1
  356. package/lib/design-tokens/ts/tokens/functional/components/pricing-options/pricing-options.js +1 -1
  357. package/lib/design-tokens/ts/tokens/functional/components/prose/base.d.ts +1 -1
  358. package/lib/design-tokens/ts/tokens/functional/components/prose/base.js +1 -1
  359. package/lib/design-tokens/ts/tokens/functional/components/river/base.d.ts +1 -1
  360. package/lib/design-tokens/ts/tokens/functional/components/river/base.js +1 -1
  361. package/lib/design-tokens/ts/tokens/functional/components/river/river.d.ts +1 -1
  362. package/lib/design-tokens/ts/tokens/functional/components/river/river.js +1 -1
  363. package/lib/design-tokens/ts/tokens/functional/components/section/section.d.ts +1 -1
  364. package/lib/design-tokens/ts/tokens/functional/components/section/section.js +1 -1
  365. package/lib/design-tokens/ts/tokens/functional/components/statistic/base.d.ts +1 -1
  366. package/lib/design-tokens/ts/tokens/functional/components/statistic/base.js +1 -1
  367. package/lib/design-tokens/ts/tokens/functional/components/sub-nav/base.d.ts +1 -1
  368. package/lib/design-tokens/ts/tokens/functional/components/sub-nav/base.js +1 -1
  369. package/lib/design-tokens/ts/tokens/functional/components/tabs/base.d.ts +1 -1
  370. package/lib/design-tokens/ts/tokens/functional/components/tabs/base.js +1 -1
  371. package/lib/design-tokens/ts/tokens/functional/components/tabs/colors.d.ts +1 -1
  372. package/lib/design-tokens/ts/tokens/functional/components/tabs/colors.js +1 -1
  373. package/lib/design-tokens/ts/tokens/functional/components/testimonial/base.d.ts +1 -1
  374. package/lib/design-tokens/ts/tokens/functional/components/testimonial/base.js +1 -1
  375. package/lib/design-tokens/ts/tokens/functional/components/testimonial/colors.d.ts +1 -1
  376. package/lib/design-tokens/ts/tokens/functional/components/testimonial/colors.js +1 -1
  377. package/lib/design-tokens/ts/tokens/functional/components/text-cursor-animation/colors.d.ts +1 -1
  378. package/lib/design-tokens/ts/tokens/functional/components/text-cursor-animation/colors.js +1 -1
  379. package/lib/design-tokens/ts/tokens/functional/components/timeline/base.d.ts +1 -1
  380. package/lib/design-tokens/ts/tokens/functional/components/timeline/base.js +1 -1
  381. package/lib/design-tokens/ts/tokens/functional/components/timeline/colors.d.ts +1 -1
  382. package/lib/design-tokens/ts/tokens/functional/components/timeline/colors.js +1 -1
  383. package/lib/design-tokens/ts/tokens/functional/components/token/colors.d.ts +1 -1
  384. package/lib/design-tokens/ts/tokens/functional/components/token/colors.js +1 -1
  385. package/lib/design-tokens/ts/tokens/functional/components/tooltip/colors.d.ts +1 -1
  386. package/lib/design-tokens/ts/tokens/functional/components/tooltip/colors.js +1 -1
  387. package/lib/design-tokens/ts/tokens/functional/components/video-player/base.d.ts +1 -1
  388. package/lib/design-tokens/ts/tokens/functional/components/video-player/base.js +1 -1
  389. package/lib/design-tokens/ts/tokens/functional/size/border.d.ts +1 -1
  390. package/lib/design-tokens/ts/tokens/functional/size/border.js +1 -1
  391. package/lib/design-tokens/ts/tokens/functional/size/breakpoints.d.ts +1 -1
  392. package/lib/design-tokens/ts/tokens/functional/size/breakpoints.js +1 -1
  393. package/lib/design-tokens/ts/tokens/functional/size/size-coarse.d.ts +1 -1
  394. package/lib/design-tokens/ts/tokens/functional/size/size-coarse.js +1 -1
  395. package/lib/design-tokens/ts/tokens/functional/size/size-fine.d.ts +1 -1
  396. package/lib/design-tokens/ts/tokens/functional/size/size-fine.js +1 -1
  397. package/lib/design-tokens/ts/tokens/functional/size/size.d.ts +1 -1
  398. package/lib/design-tokens/ts/tokens/functional/size/size.js +1 -1
  399. package/lib/design-tokens/ts/tokens/functional/size/viewport.d.ts +1 -1
  400. package/lib/design-tokens/ts/tokens/functional/size/viewport.js +1 -1
  401. package/lib/design-tokens/ts/tokens/functional/typography/typography-responsive.d.ts +1 -1
  402. package/lib/design-tokens/ts/tokens/functional/typography/typography-responsive.js +1 -1
  403. package/lib/design-tokens/ts/tokens/functional/typography/typography.d.ts +1 -1
  404. package/lib/design-tokens/ts/tokens/functional/typography/typography.js +1 -1
  405. package/lib/index.d.ts +1 -0
  406. package/lib/index.js +1 -1
  407. package/llms.txt +3 -2
  408. package/package.json +1 -1
  409. package/esm/Card/Card.module-B41BqbuX.css +0 -1
  410. package/esm/FAQ/FAQ.module-C8rxdU0Z.css +0 -1
  411. package/esm/Testimonial/Testimonial.module-BEBpUSD7.css +0 -1
  412. package/esm/packages/design-tokens/lib/design-tokens/css/tokens/functional/components/card/base-BRKNIzyd.css +0 -1
@@ -58,7 +58,11 @@ Use `ctaVariant="none"` when the card should remain fully clickable without visi
58
58
 
59
59
  ### Arrow CTA
60
60
 
61
- Use `ctaVariant="arrow"` when the card should present an icon-only call to action instead of the default text-plus-arrow treatment.
61
+ Use `ctaVariant="arrow"` for a compact call to action. On devices that support hover, the label is visually
62
+ hidden until the Card is hovered or focused. On devices without hover, the label remains visible so the call
63
+ to action does not rely on an unavailable interaction.
64
+
65
+ Set `disableAnimation` to `true` when CTA state changes should occur without animated transitions.
62
66
 
63
67
  ```jsx
64
68
  <Card href="https://github.com" ctaVariant="arrow">
@@ -143,6 +147,46 @@ Use the `Image` component to add an image to the `Card`. The `Image` component i
143
147
  </>
144
148
  ```
145
149
 
150
+ ### Full-bleed images
151
+
152
+ When an image should stretch to fill the card width, set `padding="none"` on `Card.Image` and add `hasBorder` to the `Card` for visual containment. Display full-bleed cards in a regular `Grid` with clear gaps between them rather than in a shared gridline frame. Keep the image position and aspect ratio consistent across the group.
153
+
154
+ ```jsx
155
+ <Grid>
156
+ {[
157
+ {
158
+ heading: 'Build with GitHub Copilot',
159
+ description: 'Write, review, and understand code with AI-powered assistance.',
160
+ image: '/images/placeholder-1.png',
161
+ },
162
+ {
163
+ heading: 'Automate your workflow',
164
+ description: 'Keep projects moving with tools that fit the way your team works.',
165
+ image: '/images/placeholder-2.png',
166
+ },
167
+ {
168
+ heading: 'Ship secure software',
169
+ description: 'Find and fix vulnerabilities throughout the development lifecycle.',
170
+ image: '/images/placeholder-3.png',
171
+ },
172
+ ].map(card => (
173
+ <Grid.Column key={card.heading} span={{xsmall: 12, large: 4}}>
174
+ <Card href="https://github.com" fullWidth hasBorder ctaVariant="arrow">
175
+ <Card.Heading>{card.heading}</Card.Heading>
176
+ <Card.Description>{card.description}</Card.Description>
177
+ <Card.Image
178
+ position="block-end"
179
+ padding="none"
180
+ src={card.image}
181
+ alt="Abstract gradient illustration"
182
+ aspectRatio="4:3"
183
+ />
184
+ </Card>
185
+ </Grid.Column>
186
+ ))}
187
+ </Grid>
188
+ ```
189
+
146
190
  ### Tokens
147
191
 
148
192
  Use `Card.Tokens` to display more than one [Token](../Token/index.md).
@@ -178,23 +222,28 @@ Use `Card.Tokens` to display more than one [Token](../Token/index.md).
178
222
 
179
223
  ### Card `Required`
180
224
 
181
- | name | type | default | required | description |
182
- | ------------------ | --------------------------------- | ------------ | -------- | ---------------------------------------------------------------- |
183
- | `align` | | `'start'` | `false` | Aligns the card content |
184
- | `backgroundColor` | `'default' \| 'subtle' \| 'none'` | `'default'` | `false` | Optional background color override for the card |
185
- | `ctaText` | `string` | `Learn more` | `false` | Label of the link at the bottom of the card |
186
- | `ctaVariant` | `'text' \| 'arrow' \| 'none'` | `'text'` | `false` | Presentation of the call-to-action area |
187
- | `disableAnimation` | `boolean` | `false` | `false` | A flag to disable the default hover animation effect of the card |
188
- | `fullWidth` | `boolean` | `false` | `false` | A flag to optionally fill the width of the parent container |
189
- | `hasBorder` | `boolean` | `false` | `false` | A flag used to provide a border to the card |
190
- | `href` | `string` | | `true` | URL to the card content |
191
- | `leadingVisual` | `ReactElement` | | `false` | Logo or brand mark shown above the card content |
192
- | `variant` | `'default' \| 'minimal'` | `'default'` | `false` | The variant of the card |
225
+ | name | type | default | required | description |
226
+ | ------------------ | --------------------------------- | ------------ | -------- | ----------------------------------------------------------- |
227
+ | `align` | | `'start'` | `false` | Aligns the card content |
228
+ | `backgroundColor` | `'default' \| 'subtle' \| 'none'` | `'default'` | `false` | Optional background color override for the card |
229
+ | `ctaText` | `string` | `Learn more` | `false` | Label of the link at the bottom of the card |
230
+ | `ctaVariant` | `'text' \| 'arrow' \| 'none'` | `'text'` | `false` | Presentation of the call-to-action area |
231
+ | `disableAnimation` | `boolean` | `false` | `false` | Disables transitions and animations within the Card |
232
+ | `fullWidth` | `boolean` | `false` | `false` | A flag to optionally fill the width of the parent container |
233
+ | `hasBorder` | `boolean` | `false` | `false` | A flag used to provide a border to the card |
234
+ | `href` | `string` | | `true` | URL to the card content |
235
+ | `leadingVisual` | `ReactElement` | | `false` | Logo or brand mark shown above the card content |
236
+ | `variant` | `'default' \| 'minimal'` | `'default'` | `false` | The variant of the card |
193
237
 
194
238
  ### Card.Image
195
239
 
196
240
  Forwards all the props from the [Image component](../Image/index.md), including `src`, `alt`, and `aspectRatio`.
197
241
 
242
+ | name | type | default | required | description |
243
+ | ---------- | ------------------------------ | ------------- | -------- | ----------------------------------------------------------------- |
244
+ | `padding` | `'default' \| 'none'` | `'default'` | `false` | Controls spacing around the image within the card |
245
+ | `position` | `'block-start' \| 'block-end'` | `block-start` | `false` | Places the image at the block-start or block-end edge of the card |
246
+
198
247
  ### Card.Icon
199
248
 
200
249
  | name | type | default | required | description |
@@ -0,0 +1,117 @@
1
+ ---
2
+ title: Minimal video player
3
+ description: Use MinimalVideoPlayer for muted, looping product demonstrations with a single play and pause control
4
+ keywords: ['playback', 'media', 'video', 'motion']
5
+ ready: true
6
+ source: https://github.com/primer/brand/blob/main/packages/react/src/MinimalVideoPlayer/MinimalVideoPlayer.tsx
7
+ storybook: '/brand/storybook/?path=/story/components-minimalvideoplayer--playground'
8
+ ---
9
+
10
+ ```js
11
+ import {MinimalVideoPlayer} from '@primer/react-brand'
12
+ ```
13
+
14
+ Use `MinimalVideoPlayer` for short, silent product demonstrations that need only a play and pause control.
15
+
16
+ Use [VideoPlayer](../VideoPlayer/index.md) when viewers need audio, captions, seeking, volume, fullscreen controls,
17
+ branding, or a dedicated programmatic playback API.
18
+
19
+ ## Examples
20
+
21
+ ### Default
22
+
23
+ Pass a native video URL with `src`. The required `title` provides a concise accessible name for the video.
24
+
25
+ ```jsx
26
+ <MinimalVideoPlayer
27
+ aria-describedby="product-demo-description"
28
+ poster="/images/example-poster.png"
29
+ src="/example.mp4"
30
+ title="Product interface demonstration"
31
+ />
32
+ ```
33
+
34
+ ### Native source element
35
+
36
+ The component also accepts native `<source>` children.
37
+
38
+ ```jsx
39
+ <MinimalVideoPlayer poster="/images/example-poster.png" title="Product interface demonstration">
40
+ <source src="/example.mp4" type="video/mp4" />
41
+ </MinimalVideoPlayer>
42
+ ```
43
+
44
+ ### Disable automatic playback
45
+
46
+ `autoPlay` defaults to `true`, making the video eligible to play when it enters the viewport. Set it to `false` when playback should always begin with an explicit user action.
47
+
48
+ ```jsx
49
+ <MinimalVideoPlayer
50
+ autoPlay={false}
51
+ poster="/images/example-poster.png"
52
+ src="/example.mp4"
53
+ title="Product interface demonstration"
54
+ />
55
+ ```
56
+
57
+ ### Disable looping
58
+
59
+ Videos loop by default. Set `loop` to `false` when the demonstration should stop after one playback.
60
+
61
+ ```jsx
62
+ <MinimalVideoPlayer
63
+ loop={false}
64
+ poster="/images/example-poster.png"
65
+ src="/example.mp4"
66
+ title="Product interface demonstration"
67
+ />
68
+ ```
69
+
70
+ ### Customize control labels
71
+
72
+ Provide localized play and pause labels with `internalAccessibleLabels`. Keep `title` focused on naming the video rather than the control.
73
+
74
+ ```jsx
75
+ <MinimalVideoPlayer
76
+ autoPlay={false}
77
+ internalAccessibleLabels={{
78
+ play: 'Play product demonstration',
79
+ pause: 'Pause product demonstration',
80
+ }}
81
+ poster="/images/example-poster.png"
82
+ src="/example.mp4"
83
+ title="Product interface demonstration"
84
+ />
85
+ ```
86
+
87
+ ## Playback behavior
88
+
89
+ `MinimalVideoPlayer` is always muted, plays inline, and hides native controls. When `autoPlay` is enabled, it starts only while visible, pauses after leaving the viewport, and resumes after re-entering the viewport unless the viewer paused it manually.
90
+
91
+ The forwarded ref provides access to the underlying `<video>` element, but the component does not provide a higher-level programmatic playback API.
92
+
93
+ The component respects the viewer's reduced-motion preference. It suppresses initial automatic playback when reduced motion is requested and pauses playback if that preference becomes active. A viewer can still start the video with the visible play control.
94
+
95
+ ## Accessibility
96
+
97
+ The `title` prop provides an accessible name for the video. It does not replace a text alternative for meaningful visual content.
98
+
99
+ For decorative motion or a demonstration that repeats information already communicated by the surrounding content, use a concise `title`. A separate description is not required because the same information is already available on the page.
100
+
101
+ For a meaningful silent demonstration, provide adjacent text that communicates the important actions and outcomes shown in the video. Associate that text with the video using the native `aria-describedby` attribute, as shown in the [default example](#default).
102
+
103
+ Use [VideoPlayer](../VideoPlayer/index.md) instead when the media needs audio, captions, seeking, volume, fullscreen controls, or a standalone viewing experience.
104
+
105
+ ## Component props
106
+
107
+ `MinimalVideoPlayer` supports standard native `<video>` attributes except the playback attributes controlled by the component.
108
+
109
+ | Name | Type | Default | Required | Description |
110
+ | :------------------------- | :------------------------------ | :------------------------------------------: | :------: | :--------------------------------------------------------------------- |
111
+ | `autoPlay` | `boolean` | `true` | `false` | Plays automatically while visible when reduced motion is not requested |
112
+ | `children` | `React.ReactNode` | | `false` | Accepts native `<source>` elements |
113
+ | `internalAccessibleLabels` | `{play: string, pause: string}` | `{play: 'Play video', pause: 'Pause video'}` | `false` | Sets accessible labels for the play and pause control |
114
+ | `loop` | `boolean` | `true` | `false` | Repeats the video after playback ends |
115
+ | `poster` | `string` | | `false` | Sets the image shown before playback begins |
116
+ | `src` | `string` | | `false` | Sets the native video source URL |
117
+ | `title` | `string` | | `true` | Provides an accessible name for the video |
@@ -28,6 +28,7 @@ description: Primer Brand UI components
28
28
  - [Logo suite](LogoSuite/react.md): Use a logo suite to present a list logos, such as sponsors or vendors.
29
29
  - [Media playlist](MediaPlaylist/index.md): Use MediaPlaylist to pair thumbnail-backed media items with a shared playback or media area.
30
30
  - [Minimal footer](MinimalFooter/index.md): Use the minimal footer component to provide a global footer featuring legal links, GitHub logomarks and footnotes.
31
+ - [Minimal video player](MinimalVideoPlayer/index.md): Use MinimalVideoPlayer for muted, looping product demonstrations with a single play and pause control
31
32
  - [NavList](NavList/index.md): Use NavList to render vertical navigation with optional expandable groups.
32
33
  - [Ordered list](OrderedList/react.md): Use the ordered list component to display a list of numbered items.
33
34
  - [Pagination](Pagination/index.md): Use Pagination to display a sequence of links that allow navigation to discrete, related pages.
package/docs/index.md CHANGED
@@ -1,6 +1,6 @@
1
- # Primer Brand docs (v0.72.1-rc.c5f3a3b5)
1
+ # Primer Brand docs (v0.73.0)
2
2
 
3
- These docs are bundled with `@primer/react-brand@0.72.1-rc.c5f3a3b5` and match your installed version.
3
+ These docs are bundled with `@primer/react-brand@0.73.0` 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.
@@ -62,6 +62,7 @@ stylesheet and font setup. Component directories are named after their import (e
62
62
  - [Logo suite](components/LogoSuite/react.md): Use a logo suite to present a list logos, such as sponsors or vendors.
63
63
  - [Media playlist](components/MediaPlaylist/index.md): Use MediaPlaylist to pair thumbnail-backed media items with a shared playback or media area.
64
64
  - [Minimal footer](components/MinimalFooter/index.md): Use the minimal footer component to provide a global footer featuring legal links, GitHub logomarks and footnotes.
65
+ - [Minimal video player](components/MinimalVideoPlayer/index.md): Use MinimalVideoPlayer for muted, looping product demonstrations with a single play and pause control
65
66
  - [NavList](components/NavList/index.md): Use NavList to render vertical navigation with optional expandable groups.
66
67
  - [Ordered list](components/OrderedList/react.md): Use the ordered list component to display a list of numbered items.
67
68
  - [Pagination](components/Pagination/index.md): Use Pagination to display a sequence of links that allow navigation to discrete, related pages.
@@ -12,6 +12,7 @@ export declare const CardCTAVariants: readonly ["text", "arrow", "none"];
12
12
  export declare const CardBackgroundColors: readonly ["default", "subtle", "none"];
13
13
  export declare const CardTokenPositions: readonly ["block-start", "block-end"];
14
14
  export declare const CardLabelVariants: readonly ["token", "accent-text"];
15
+ export declare const CardImagePaddingOptions: readonly ["default", "none"];
15
16
  export declare const CardIconColors: readonly ["default", "blue", "coral", "green", "gray", "indigo", "lemon", "lime", "orange", "pink", "purple", "red", "teal", "yellow"];
16
17
  export declare const defaultCardIconColor: "default";
17
18
  export declare const defaultCardCTAVariant: "text";
@@ -21,6 +22,7 @@ export type CardCTAVariant = (typeof CardCTAVariants)[number];
21
22
  export type CardTokenPosition = (typeof CardTokenPositions)[number];
22
23
  export type CardLabelVariant = (typeof CardLabelVariants)[number];
23
24
  export type CardBackgroundColor = (typeof CardBackgroundColors)[number];
25
+ export type CardImagePadding = (typeof CardImagePaddingOptions)[number];
24
26
  type CardLeadingVisual = React.ReactElement | React.ComponentType<{
25
27
  className?: string;
26
28
  }>;
@@ -34,7 +36,7 @@ export type CardProps = {
34
36
  */
35
37
  children: React.ReactNode | React.ReactElement<CardImageProps> | React.ReactElement<CardIconProps> | React.ReactElement<CardLabelProps> | React.ReactElement<CardTokensProps> | React.ReactElement<CardHeadingProps> | React.ReactElement<CardDescriptionProps>;
36
38
  /**
37
- * Disable the default hover animation
39
+ * Disable transitions and animations within the Card
38
40
  */
39
41
  disableAnimation?: boolean;
40
42
  /**
@@ -70,10 +72,11 @@ export type CardProps = {
70
72
  */
71
73
  align?: 'start' | 'center';
72
74
  } & Omit<BaseProps<HTMLDivElement>, 'animate'> & Omit<React.ComponentPropsWithoutRef<'div'>, 'onMouseEnter' | 'onMouseLeave' | 'onFocus' | 'onBlur'> & Pick<React.ComponentPropsWithoutRef<'a'>, 'onMouseEnter' | 'onMouseLeave' | 'onFocus' | 'onBlur'>;
73
- type CardImageProps = {
75
+ export type CardImageProps = {
74
76
  position?: 'block-start' | 'block-end';
77
+ padding?: CardImagePadding;
75
78
  } & ImageProps;
76
- declare function CardImage({ className, ...rest }: CardImageProps): import("react/jsx-runtime").JSX.Element;
79
+ declare function CardImage({ className, position, padding, ...rest }: CardImageProps): import("react/jsx-runtime").JSX.Element;
77
80
  type CardIconProps = IconProps;
78
81
  type CardTokensProps = BaseProps<HTMLDivElement> & {
79
82
  children: React.ReactNode | React.ReactNode[];
@@ -1 +1 @@
1
- {"version":3,"file":"Card.d.ts","sourceRoot":"","sources":["../../src/Card/Card.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Card.d.ts","sourceRoot":"","sources":["../../src/Card/Card.tsx"],"names":[],"mappings":"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"}
package/esm/Card/Card.js CHANGED
@@ -10,7 +10,7 @@ import c from "../Link/Link.module.js";
10
10
  import { Icon as l } from "../Icon/Icon.js";
11
11
  import { Token as u } from "../Token/Token.js";
12
12
  import { isFragmentElement as d } from "../utils/isFragmentElement.js";
13
- import '../packages/design-tokens/lib/design-tokens/css/tokens/functional/components/card/colors-with-modes-C43pQ5wc.css';import '../packages/design-tokens/lib/design-tokens/css/tokens/functional/components/card/base-BRKNIzyd.css';/* empty css */
13
+ import '../packages/design-tokens/lib/design-tokens/css/tokens/functional/components/card/colors-with-modes-C43pQ5wc.css';import '../packages/design-tokens/lib/design-tokens/css/tokens/functional/components/card/base-DgOt50dE.css';/* empty css */
14
14
  /* empty css */
15
15
  import f from "./Card.module.js";
16
16
  import p, { forwardRef as m } from "react";
@@ -24,18 +24,18 @@ var _ = ["default", "minimal"], v = [
24
24
  "default",
25
25
  "subtle",
26
26
  "none"
27
- ], b = ["block-start", "block-end"], x = ["token", "accent-text"], S = t, C = S[0], w = v[0], T = x[0], E = m(({ align: t = "start", onMouseEnter: i, onMouseLeave: a, onFocus: s, onBlur: l, children: u, className: m, ctaText: _ = "Learn more", ctaVariant: v = w, disableAnimation: y = !1, fullWidth: b = !1, href: x, hasBorder: S = !1, leadingVisual: C, style: T, variant: E = "default", backgroundColor: k, ...A }, j) => {
28
- let M = n(j), N = k ?? (E === "minimal" || v === "arrow" ? "none" : "default"), P;
27
+ ], b = ["block-start", "block-end"], x = ["token", "accent-text"], S = ["default", "none"], C = t, w = C[0], T = v[0], E = x[0], D = m(({ align: t = "start", onMouseEnter: i, onMouseLeave: a, onFocus: s, onBlur: l, children: u, className: m, ctaText: _ = "Learn more", ctaVariant: v = T, disableAnimation: y = !1, fullWidth: b = !1, href: x, hasBorder: S = !1, leadingVisual: C, style: w, variant: E = "default", backgroundColor: D, ...A }, j) => {
28
+ let M = n(j), N = D ?? (E === "minimal" || v === "arrow" ? "none" : "default"), P;
29
29
  P = u == null ? null : d(u) ? u.props.children ?? null : u;
30
- let { cardImage: F, cardIcon: H, cardLabel: U, cardTokensBlockStart: W, cardTokensBlockEnd: G, cardHeading: K, cardDescription: q } = p.Children.toArray(P).reduce((e, t) => (B(t) ? e.cardHeading = p.cloneElement(t, { href: x }) : I(t) ? e.cardImage = t : L(t) ? e.cardIcon = t : R(t) ? e.cardLabel = t : z(t) ? t.props.position === "block-end" ? e.cardTokensBlockEnd = t : e.cardTokensBlockStart = t : V(t) && (e.cardDescription = t), e), {});
31
- (process.env.NODE_ENV === "development" || process.env.NODE_ENV === "test") && C && H && console.warn("Card: `leadingVisual` and `Card.Icon` cannot be used together. `Card.Icon` will not be rendered.");
32
- let J = O(C), Y = J ? void 0 : H, X = F ? F.props.position || "block-start" : null, Z = !(t === "center" && v === "text");
33
- return /* @__PURE__ */ h(D, {
34
- style: T,
30
+ let { cardImage: F, cardIcon: I, cardLabel: U, cardTokensBlockStart: W, cardTokensBlockEnd: G, cardHeading: K, cardDescription: q } = p.Children.toArray(P).reduce((e, t) => (V(t) ? e.cardHeading = p.cloneElement(t, { href: x }) : L(t) ? e.cardImage = t : R(t) ? e.cardIcon = t : z(t) ? e.cardLabel = t : B(t) ? t.props.position === "block-end" ? e.cardTokensBlockEnd = t : e.cardTokensBlockStart = t : H(t) && (e.cardDescription = t), e), {});
31
+ (process.env.NODE_ENV === "development" || process.env.NODE_ENV === "test") && C && I && console.warn("Card: `leadingVisual` and `Card.Icon` cannot be used together. `Card.Icon` will not be rendered.");
32
+ let J = k(C), Y = J ? void 0 : I, X = F ? F.props.position || "block-start" : null, Z = !(t === "center" && v === "text");
33
+ return /* @__PURE__ */ h(O, {
34
+ style: w,
35
35
  className: e(b ? f["Card--fullWidth"] : f["Card--maxWidth"], f[`Card--align-${t}`]),
36
36
  children: /* @__PURE__ */ g("div", {
37
37
  className: e(f.Card, y && f["Card--disableAnimation"], J && f["Card--hasLeadingVisual"], v === "arrow" && f["Card--ctaVariant-arrow"], G && f["Card--tokensPosition-block-end"], E === "minimal" && f["Card--variant-minimal"], S && f["Card--border"], f[`Card--backgroundColor-${N}`], X && f[`Card--imagePos-${X}`], m),
38
- style: T,
38
+ style: w,
39
39
  ref: M,
40
40
  ...A,
41
41
  children: [
@@ -74,35 +74,35 @@ var _ = ["default", "minimal"], v = [
74
74
  })
75
75
  });
76
76
  });
77
- function D({ className: t, children: n, style: r }) {
77
+ function O({ className: t, children: n, style: r }) {
78
78
  return /* @__PURE__ */ h("div", {
79
79
  className: e(f.Card__outer, t),
80
80
  style: r,
81
81
  children: n
82
82
  });
83
83
  }
84
- function O(t) {
84
+ function k(t) {
85
85
  return t ? typeof t == "function" ? p.createElement(t, { className: f.Card__leadingVisualItem }) : p.isValidElement(t) ? p.cloneElement(t, { className: e(f.Card__leadingVisualItem, t.props.className) }) : null : null;
86
86
  }
87
- function k({ className: e, ...t }) {
87
+ function A({ className: t, position: n = "block-start", padding: r = "default", ...i }) {
88
88
  return /* @__PURE__ */ h("div", {
89
- className: f.Card__image,
89
+ className: e(f.Card__image, f[`Card__image--position-${n}`], r === "none" && f["Card__image--padding-none"]),
90
90
  children: /* @__PURE__ */ h(s, {
91
- className: e,
92
- ...t
91
+ className: t,
92
+ ...i
93
93
  })
94
94
  });
95
95
  }
96
- var A = ({ className: t, hasBackground: n = !0, ...r }) => /* @__PURE__ */ h(l, {
96
+ var j = ({ className: t, hasBackground: n = !0, ...r }) => /* @__PURE__ */ h(l, {
97
97
  className: e(f.Card__icon, t),
98
98
  hasBackground: n,
99
99
  ...r
100
- }), j = m(({ children: t, className: n, position: r = "block-start", ...i }, a) => /* @__PURE__ */ h("div", {
100
+ }), M = m(({ children: t, className: n, position: r = "block-start", ...i }, a) => /* @__PURE__ */ h("div", {
101
101
  className: e(f.Card__tokens, r === "block-end" && f["Card__tokens--position-block-end"], n),
102
102
  ref: a,
103
103
  ...i,
104
104
  children: t
105
- })), M = m(({ children: t, variant: n = T, className: r, ...a }, o) => n === "accent-text" ? /* @__PURE__ */ h(i, {
105
+ })), N = m(({ children: t, variant: n = E, className: r, ...a }, o) => n === "accent-text" ? /* @__PURE__ */ h(i, {
106
106
  ref: o,
107
107
  className: e(f.Card__label, r),
108
108
  variant: "accent",
@@ -113,7 +113,7 @@ var A = ({ className: t, hasBackground: n = !0, ...r }) => /* @__PURE__ */ h(l,
113
113
  className: e(f.Card__label, r),
114
114
  ...a,
115
115
  children: t
116
- })), N = m(({ children: t, as: n = "h3", className: r, href: i, onMouseEnter: o, onMouseLeave: s, onBlur: c, onFocus: l, ...u }, d) => /* @__PURE__ */ h(a, {
116
+ })), P = m(({ children: t, as: n = "h3", className: r, href: i, onMouseEnter: o, onMouseLeave: s, onBlur: c, onFocus: l, ...u }, d) => /* @__PURE__ */ h(a, {
117
117
  size: "6",
118
118
  className: e(f.Card__heading, r),
119
119
  ref: d,
@@ -128,7 +128,7 @@ var A = ({ className: t, hasBackground: n = !0, ...r }) => /* @__PURE__ */ h(l,
128
128
  onFocus: l,
129
129
  children: t
130
130
  })
131
- })), P = m(({ children: t, className: n, ...i }, a) => /* @__PURE__ */ h(r, {
131
+ })), F = m(({ children: t, className: n, ...i }, a) => /* @__PURE__ */ h(r, {
132
132
  variant: "muted",
133
133
  ref: a,
134
134
  size: "200",
@@ -136,15 +136,15 @@ var A = ({ className: t, hasBackground: n = !0, ...r }) => /* @__PURE__ */ h(l,
136
136
  className: e(f.Card__description, n),
137
137
  ...i,
138
138
  children: t
139
- })), F = (e) => (t) => p.isValidElement(t) && t.type === e, I = F(k), L = F(A), R = F(M), z = F(j), B = F(N), V = F(P), H = Object.assign(E, {
140
- Image: k,
141
- Icon: A,
142
- Label: M,
143
- Tokens: j,
144
- Heading: N,
145
- Description: P
139
+ })), I = (e) => (t) => p.isValidElement(t) && t.type === e, L = I(A), R = I(j), z = I(N), B = I(M), V = I(P), H = I(F), U = Object.assign(D, {
140
+ Image: A,
141
+ Icon: j,
142
+ Label: N,
143
+ Tokens: M,
144
+ Heading: P,
145
+ Description: F
146
146
  });
147
147
  //#endregion
148
- export { H as Card, y as CardBackgroundColors, v as CardCTAVariants, S as CardIconColors, x as CardLabelVariants, b as CardTokenPositions, _ as CardVariants, w as defaultCardCTAVariant, C as defaultCardIconColor, T as defaultCardLabelVariant };
148
+ export { U as Card, y as CardBackgroundColors, v as CardCTAVariants, C as CardIconColors, S as CardImagePaddingOptions, x as CardLabelVariants, b as CardTokenPositions, _ as CardVariants, T as defaultCardCTAVariant, w as defaultCardIconColor, E as defaultCardLabelVariant };
149
149
 
150
150
  //# sourceMappingURL=Card.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Card.js","names":[],"sources":["../../src/Card/Card.tsx"],"sourcesContent":["import React, {RefObject, forwardRef} from 'react'\n\nimport {clsx} from 'clsx'\nimport {Heading, HeadingProps, Text, Image, type ImageProps} from '..'\nimport {EyebrowText} from '../EyebrowText'\nimport {Icon, type IconProps} from '../Icon'\nimport {Token} from '../Token'\nimport {ExpandableArrow} from '../ExpandableArrow'\nimport type {BaseProps} from '../component-helpers'\nimport {useProvidedRefOrCreate} from '../hooks/useRef'\nimport {Colors} from '../constants'\nimport {isFragmentElement} from '../utils/isFragmentElement'\n\n/**\n * Design tokens\n */\nimport '@primer/brand-primitives/lib/design-tokens/css/tokens/functional/components/card/base.css'\nimport '@primer/brand-primitives/lib/design-tokens/css/tokens/functional/components/card/colors-with-modes.css'\n\n/**\n * Main stylesheet (as a CSS Module)\n */\nimport styles from './Card.module.css'\nimport stylesLink from '../Link/Link.module.css'\n\nexport const CardVariants = ['default', 'minimal'] as const\nexport const CardCTAVariants = ['text', 'arrow', 'none'] as const\nexport const CardBackgroundColors = ['default', 'subtle', 'none'] as const\nexport const CardTokenPositions = ['block-start', 'block-end'] as const\nexport const CardLabelVariants = ['token', 'accent-text'] as const\n\nexport const CardIconColors = Colors\n\nexport const defaultCardIconColor = CardIconColors[0]\nexport const defaultCardCTAVariant = CardCTAVariants[0]\nexport const defaultCardLabelVariant = CardLabelVariants[0]\n\nexport type CardVariants = (typeof CardVariants)[number]\nexport type CardCTAVariant = (typeof CardCTAVariants)[number]\nexport type CardTokenPosition = (typeof CardTokenPositions)[number]\nexport type CardLabelVariant = (typeof CardLabelVariants)[number]\nexport type CardBackgroundColor = (typeof CardBackgroundColors)[number]\n\ntype CardLeadingVisual = React.ReactElement | React.ComponentType<{className?: string}>\n\nexport type CardProps = {\n /**\n * Specify alternative card appearance\n */\n variant?: CardVariants\n /**\n * Valid children include Card.Image, Card.Icon, Card.Label, Card.Tokens, Card.Heading, and Card.Description\n */\n children:\n | React.ReactNode\n | React.ReactElement<CardImageProps>\n | React.ReactElement<CardIconProps>\n | React.ReactElement<CardLabelProps>\n | React.ReactElement<CardTokensProps>\n | React.ReactElement<CardHeadingProps>\n | React.ReactElement<CardDescriptionProps>\n /**\n * Disable the default hover animation\n */\n disableAnimation?: boolean\n /**\n * The href of the link\n * */\n href: string\n /**\n * Changes the cta text of the card\n * */\n ctaText?: string\n /**\n * Specifies the presentation of the call-to-action area\n */\n ctaVariant?: CardCTAVariant\n /**\n * Optional, custom background color.\n */\n backgroundColor?: CardBackgroundColor\n /**\n * A visual that appears before the heading, commonly used for a logo or brand mark\n */\n leadingVisual?: CardLeadingVisual\n /**\n * Adds a border to the card.\n */\n hasBorder?: boolean\n /**\n * Fills the width of the parent container and removes the default max-width.\n */\n fullWidth?: boolean\n /**\n * Aligns the card content\n */\n align?: 'start' | 'center'\n} & Omit<BaseProps<HTMLDivElement>, 'animate'> &\n Omit<React.ComponentPropsWithoutRef<'div'>, 'onMouseEnter' | 'onMouseLeave' | 'onFocus' | 'onBlur'> &\n Pick<React.ComponentPropsWithoutRef<'a'>, 'onMouseEnter' | 'onMouseLeave' | 'onFocus' | 'onBlur'>\n\nconst CardRoot = forwardRef<HTMLDivElement, CardProps>(\n (\n {\n align = 'start',\n onMouseEnter,\n onMouseLeave,\n onFocus,\n onBlur,\n children: childrenMaybeWrappedInFragment,\n className,\n ctaText = 'Learn more',\n ctaVariant = defaultCardCTAVariant,\n disableAnimation = false,\n fullWidth = false,\n href,\n hasBorder = false,\n leadingVisual,\n style,\n variant = 'default',\n backgroundColor,\n ...props\n },\n ref,\n ) => {\n const cardRef = useProvidedRefOrCreate(ref as RefObject<HTMLDivElement>)\n const resolvedBackgroundColor =\n backgroundColor ?? (variant === 'minimal' || ctaVariant === 'arrow' ? 'none' : 'default')\n\n let children: React.ReactNode | null\n\n if (childrenMaybeWrappedInFragment == null) {\n children = null\n } else if (isFragmentElement(childrenMaybeWrappedInFragment)) {\n children = childrenMaybeWrappedInFragment.props.children ?? null\n } else {\n children = childrenMaybeWrappedInFragment\n }\n\n const {cardImage, cardIcon, cardLabel, cardTokensBlockStart, cardTokensBlockEnd, cardHeading, cardDescription} =\n React.Children.toArray(children).reduce<{\n cardHeading?: ReturnType<typeof CardHeading>\n cardImage?: ReturnType<typeof CardImage>\n cardIcon?: ReturnType<typeof CardIcon>\n cardLabel?: ReturnType<typeof CardLabel>\n cardTokensBlockStart?: ReturnType<typeof CardTokens>\n cardTokensBlockEnd?: ReturnType<typeof CardTokens>\n cardDescription?: ReturnType<typeof CardDescription>\n }>((acc, child) => {\n if (isCardHeading(child)) {\n acc.cardHeading = React.cloneElement(child, {\n href,\n })\n } else if (isCardImage(child)) {\n acc.cardImage = child\n } else if (isCardIcon(child)) {\n acc.cardIcon = child\n } else if (isCardLabel(child)) {\n acc.cardLabel = child\n } else if (isCardTokens(child)) {\n if (child.props.position === 'block-end') {\n acc.cardTokensBlockEnd = child\n } else {\n acc.cardTokensBlockStart = child\n }\n } else if (isCardDescription(child)) {\n acc.cardDescription = child\n }\n\n return acc\n }, {})\n\n if ((process.env.NODE_ENV === 'development' || process.env.NODE_ENV === 'test') && leadingVisual && cardIcon) {\n // eslint-disable-next-line no-console\n console.warn('Card: `leadingVisual` and `Card.Icon` cannot be used together. `Card.Icon` will not be rendered.')\n }\n\n const renderedLeadingVisual = getRenderableLeadingVisual(leadingVisual)\n const renderedCardIcon = renderedLeadingVisual ? undefined : cardIcon\n const imagePosition = cardImage ? cardImage.props.position || 'block-start' : null\n const shouldRenderLinkArrow = !(align === 'center' && ctaVariant === 'text')\n\n return (\n <DefaultCardWrapperComponent\n style={style}\n className={clsx(\n fullWidth ? styles['Card--fullWidth'] : styles['Card--maxWidth'],\n styles[`Card--align-${align}`],\n )}\n >\n <div\n className={clsx(\n styles.Card,\n disableAnimation && styles['Card--disableAnimation'],\n renderedLeadingVisual && styles['Card--hasLeadingVisual'],\n ctaVariant === 'arrow' && styles['Card--ctaVariant-arrow'],\n cardTokensBlockEnd && styles['Card--tokensPosition-block-end'],\n variant === 'minimal' && styles['Card--variant-minimal'],\n hasBorder && styles['Card--border'],\n styles[`Card--backgroundColor-${resolvedBackgroundColor}`],\n imagePosition && styles[`Card--imagePos-${imagePosition}`],\n className,\n )}\n style={style}\n ref={cardRef}\n {...props}\n >\n {imagePosition === 'block-start' ? cardImage : null}\n {renderedLeadingVisual ? <div className={styles.Card__leadingVisual}>{renderedLeadingVisual}</div> : null}\n {renderedCardIcon}\n {cardTokensBlockStart}\n {cardLabel}\n {cardHeading}\n {cardDescription}\n {cardTokensBlockEnd}\n {imagePosition === 'block-end' ? cardImage : null}\n\n {ctaVariant !== 'none' ? (\n <div\n className={clsx(styles.Card__action, ctaVariant === 'arrow' && styles['Card__action--arrowOnly'])}\n aria-hidden={ctaVariant === 'arrow' ? true : undefined}\n >\n <span className={clsx(ctaVariant === 'arrow' && styles.Card__actionLabelClip)}>\n <Text as=\"span\" size=\"200\" className={clsx(stylesLink['Link--label'], styles.Card__actionLabel)}>\n {ctaText}\n </Text>\n </span>\n {shouldRenderLinkArrow ? (\n <span\n className={clsx(\n styles.Card__actionIcon,\n ctaVariant === 'arrow' && styles['Card__actionIcon--arrowOnly'],\n )}\n >\n <ExpandableArrow\n className={clsx(stylesLink['Link-arrow'], styles['Card--expandableArrow'])}\n aria-hidden=\"true\"\n />\n </span>\n ) : null}\n </div>\n ) : null}\n </div>\n </DefaultCardWrapperComponent>\n )\n },\n)\n\ntype DefaultCardWrapperComponentProps = React.PropsWithChildren<{\n className?: string\n style?: React.CSSProperties\n}>\n\nfunction DefaultCardWrapperComponent({className, children, style}: DefaultCardWrapperComponentProps) {\n return (\n <div className={clsx(styles['Card__outer'], className)} style={style}>\n {children}\n </div>\n )\n}\n\nfunction getRenderableLeadingVisual(leadingVisual?: CardLeadingVisual) {\n if (!leadingVisual) {\n return null\n }\n\n if (typeof leadingVisual === 'function') {\n return React.createElement(leadingVisual, {className: styles['Card__leadingVisualItem']})\n }\n\n if (React.isValidElement<{className?: string}>(leadingVisual)) {\n return React.cloneElement(leadingVisual, {\n className: clsx(styles['Card__leadingVisualItem'], leadingVisual.props.className),\n })\n }\n\n return null\n}\n\ntype CardImageProps = {\n position?: 'block-start' | 'block-end'\n} & ImageProps\n\nfunction CardImage({className, ...rest}: CardImageProps) {\n return (\n <div className={styles.Card__image}>\n <Image className={className} {...rest} />\n </div>\n )\n}\n\ntype CardIconProps = IconProps\n\nconst CardIcon = ({className, hasBackground = true, ...props}: IconProps) => (\n <Icon className={clsx(styles.Card__icon, className)} hasBackground={hasBackground} {...props} />\n)\n\ntype CardTokensProps = BaseProps<HTMLDivElement> & {\n children: React.ReactNode | React.ReactNode[]\n position?: CardTokenPosition\n}\n\nconst CardTokens = forwardRef<HTMLDivElement, CardTokensProps>(\n ({children, className, position = 'block-start', ...rest}, ref) => {\n return (\n <div\n className={clsx(\n styles.Card__tokens,\n position === 'block-end' && styles['Card__tokens--position-block-end'],\n className,\n )}\n ref={ref}\n {...rest}\n >\n {children}\n </div>\n )\n },\n)\n\ntype CardLabelProps = Omit<BaseProps<HTMLSpanElement>, 'animate'> &\n Omit<React.ComponentPropsWithoutRef<'span'>, 'children'> & {\n children: React.ReactNode | React.ReactNode[]\n variant?: CardLabelVariant\n }\n\nconst CardLabel = forwardRef<HTMLSpanElement, CardLabelProps>(\n ({children, variant = defaultCardLabelVariant, className, ...rest}, ref) => {\n if (variant === 'accent-text') {\n return (\n <EyebrowText ref={ref} className={clsx(styles.Card__label, className)} variant=\"accent\" {...rest}>\n {children}\n </EyebrowText>\n )\n }\n\n return (\n <Token\n ref={ref as React.Ref<HTMLSpanElement | HTMLAnchorElement>}\n className={clsx(styles.Card__label, className)}\n {...rest}\n >\n {children}\n </Token>\n )\n },\n)\n\ntype CardHeadingProps = BaseProps<HTMLHeadingElement> & {\n children: React.ReactNode | React.ReactNode[]\n as?: Exclude<HeadingProps['as'], 'h1'>\n href?: string\n} & Omit<HeadingProps, 'onMouseEnter' | 'onMouseLeave' | 'onFocus' | 'onBlur'> &\n React.ComponentPropsWithoutRef<'a'>\n\nconst CardHeading = forwardRef<HTMLHeadingElement, CardHeadingProps>(\n ({children, as = 'h3', className, href, onMouseEnter, onMouseLeave, onBlur, onFocus, ...rest}, ref) => {\n return (\n <Heading size=\"6\" className={clsx(styles.Card__heading, className)} ref={ref} as={as} {...rest}>\n <a\n href={href}\n className={clsx(styles.Card__link)}\n onMouseEnter={onMouseEnter}\n onMouseLeave={onMouseLeave}\n onBlur={onBlur}\n onFocus={onFocus}\n >\n {children}\n </a>\n </Heading>\n )\n },\n)\n\ntype CardDescriptionProps = BaseProps<HTMLParagraphElement> & {\n children: React.ReactNode | React.ReactNode[]\n}\n\nconst CardDescription = forwardRef<HTMLParagraphElement, CardDescriptionProps>(\n ({children, className, ...rest}, ref) => {\n return (\n <Text variant=\"muted\" ref={ref} size=\"200\" as=\"p\" className={clsx(styles.Card__description, className)} {...rest}>\n {children}\n </Text>\n )\n },\n)\n\nconst createComponentTypeGuard =\n <T,>(componentType: React.ComponentType<T>) =>\n (element: unknown): element is React.ReactElement<T> =>\n React.isValidElement(element) && element.type === componentType\n\nconst isCardImage = createComponentTypeGuard(CardImage)\nconst isCardIcon = createComponentTypeGuard(CardIcon)\nconst isCardLabel = createComponentTypeGuard(CardLabel)\nconst isCardTokens = createComponentTypeGuard(CardTokens)\nconst isCardHeading = createComponentTypeGuard(CardHeading)\nconst isCardDescription = createComponentTypeGuard(CardDescription)\n\n/**\n * Card component:\n * {@link https://primer.style/brand/components/Card/ See usage examples}.\n */\nexport const Card = Object.assign(CardRoot, {\n Image: CardImage,\n Icon: CardIcon,\n Label: CardLabel,\n Tokens: CardTokens,\n Heading: CardHeading,\n Description: CardDescription,\n})\n"],"mappings":"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"}
1
+ {"version":3,"file":"Card.js","names":[],"sources":["../../src/Card/Card.tsx"],"sourcesContent":["import React, {RefObject, forwardRef} from 'react'\n\nimport {clsx} from 'clsx'\nimport {Heading, HeadingProps, Text, Image, type ImageProps} from '..'\nimport {EyebrowText} from '../EyebrowText'\nimport {Icon, type IconProps} from '../Icon'\nimport {Token} from '../Token'\nimport {ExpandableArrow} from '../ExpandableArrow'\nimport type {BaseProps} from '../component-helpers'\nimport {useProvidedRefOrCreate} from '../hooks/useRef'\nimport {Colors} from '../constants'\nimport {isFragmentElement} from '../utils/isFragmentElement'\n\n/**\n * Design tokens\n */\nimport '@primer/brand-primitives/lib/design-tokens/css/tokens/functional/components/card/base.css'\nimport '@primer/brand-primitives/lib/design-tokens/css/tokens/functional/components/card/colors-with-modes.css'\n\n/**\n * Main stylesheet (as a CSS Module)\n */\nimport styles from './Card.module.css'\nimport stylesLink from '../Link/Link.module.css'\n\nexport const CardVariants = ['default', 'minimal'] as const\nexport const CardCTAVariants = ['text', 'arrow', 'none'] as const\nexport const CardBackgroundColors = ['default', 'subtle', 'none'] as const\nexport const CardTokenPositions = ['block-start', 'block-end'] as const\nexport const CardLabelVariants = ['token', 'accent-text'] as const\nexport const CardImagePaddingOptions = ['default', 'none'] as const\n\nexport const CardIconColors = Colors\n\nexport const defaultCardIconColor = CardIconColors[0]\nexport const defaultCardCTAVariant = CardCTAVariants[0]\nexport const defaultCardLabelVariant = CardLabelVariants[0]\n\nexport type CardVariants = (typeof CardVariants)[number]\nexport type CardCTAVariant = (typeof CardCTAVariants)[number]\nexport type CardTokenPosition = (typeof CardTokenPositions)[number]\nexport type CardLabelVariant = (typeof CardLabelVariants)[number]\nexport type CardBackgroundColor = (typeof CardBackgroundColors)[number]\nexport type CardImagePadding = (typeof CardImagePaddingOptions)[number]\n\ntype CardLeadingVisual = React.ReactElement | React.ComponentType<{className?: string}>\n\nexport type CardProps = {\n /**\n * Specify alternative card appearance\n */\n variant?: CardVariants\n /**\n * Valid children include Card.Image, Card.Icon, Card.Label, Card.Tokens, Card.Heading, and Card.Description\n */\n children:\n | React.ReactNode\n | React.ReactElement<CardImageProps>\n | React.ReactElement<CardIconProps>\n | React.ReactElement<CardLabelProps>\n | React.ReactElement<CardTokensProps>\n | React.ReactElement<CardHeadingProps>\n | React.ReactElement<CardDescriptionProps>\n /**\n * Disable transitions and animations within the Card\n */\n disableAnimation?: boolean\n /**\n * The href of the link\n * */\n href: string\n /**\n * Changes the cta text of the card\n * */\n ctaText?: string\n /**\n * Specifies the presentation of the call-to-action area\n */\n ctaVariant?: CardCTAVariant\n /**\n * Optional, custom background color.\n */\n backgroundColor?: CardBackgroundColor\n /**\n * A visual that appears before the heading, commonly used for a logo or brand mark\n */\n leadingVisual?: CardLeadingVisual\n /**\n * Adds a border to the card.\n */\n hasBorder?: boolean\n /**\n * Fills the width of the parent container and removes the default max-width.\n */\n fullWidth?: boolean\n /**\n * Aligns the card content\n */\n align?: 'start' | 'center'\n} & Omit<BaseProps<HTMLDivElement>, 'animate'> &\n Omit<React.ComponentPropsWithoutRef<'div'>, 'onMouseEnter' | 'onMouseLeave' | 'onFocus' | 'onBlur'> &\n Pick<React.ComponentPropsWithoutRef<'a'>, 'onMouseEnter' | 'onMouseLeave' | 'onFocus' | 'onBlur'>\n\nconst CardRoot = forwardRef<HTMLDivElement, CardProps>(\n (\n {\n align = 'start',\n onMouseEnter,\n onMouseLeave,\n onFocus,\n onBlur,\n children: childrenMaybeWrappedInFragment,\n className,\n ctaText = 'Learn more',\n ctaVariant = defaultCardCTAVariant,\n disableAnimation = false,\n fullWidth = false,\n href,\n hasBorder = false,\n leadingVisual,\n style,\n variant = 'default',\n backgroundColor,\n ...props\n },\n ref,\n ) => {\n const cardRef = useProvidedRefOrCreate(ref as RefObject<HTMLDivElement>)\n const resolvedBackgroundColor =\n backgroundColor ?? (variant === 'minimal' || ctaVariant === 'arrow' ? 'none' : 'default')\n\n let children: React.ReactNode | null\n\n if (childrenMaybeWrappedInFragment == null) {\n children = null\n } else if (isFragmentElement(childrenMaybeWrappedInFragment)) {\n children = childrenMaybeWrappedInFragment.props.children ?? null\n } else {\n children = childrenMaybeWrappedInFragment\n }\n\n const {cardImage, cardIcon, cardLabel, cardTokensBlockStart, cardTokensBlockEnd, cardHeading, cardDescription} =\n React.Children.toArray(children).reduce<{\n cardHeading?: ReturnType<typeof CardHeading>\n cardImage?: ReturnType<typeof CardImage>\n cardIcon?: ReturnType<typeof CardIcon>\n cardLabel?: ReturnType<typeof CardLabel>\n cardTokensBlockStart?: ReturnType<typeof CardTokens>\n cardTokensBlockEnd?: ReturnType<typeof CardTokens>\n cardDescription?: ReturnType<typeof CardDescription>\n }>((acc, child) => {\n if (isCardHeading(child)) {\n acc.cardHeading = React.cloneElement(child, {\n href,\n })\n } else if (isCardImage(child)) {\n acc.cardImage = child\n } else if (isCardIcon(child)) {\n acc.cardIcon = child\n } else if (isCardLabel(child)) {\n acc.cardLabel = child\n } else if (isCardTokens(child)) {\n if (child.props.position === 'block-end') {\n acc.cardTokensBlockEnd = child\n } else {\n acc.cardTokensBlockStart = child\n }\n } else if (isCardDescription(child)) {\n acc.cardDescription = child\n }\n\n return acc\n }, {})\n\n if ((process.env.NODE_ENV === 'development' || process.env.NODE_ENV === 'test') && leadingVisual && cardIcon) {\n // eslint-disable-next-line no-console\n console.warn('Card: `leadingVisual` and `Card.Icon` cannot be used together. `Card.Icon` will not be rendered.')\n }\n\n const renderedLeadingVisual = getRenderableLeadingVisual(leadingVisual)\n const renderedCardIcon = renderedLeadingVisual ? undefined : cardIcon\n const imagePosition = cardImage ? cardImage.props.position || 'block-start' : null\n const shouldRenderLinkArrow = !(align === 'center' && ctaVariant === 'text')\n\n return (\n <DefaultCardWrapperComponent\n style={style}\n className={clsx(\n fullWidth ? styles['Card--fullWidth'] : styles['Card--maxWidth'],\n styles[`Card--align-${align}`],\n )}\n >\n <div\n className={clsx(\n styles.Card,\n disableAnimation && styles['Card--disableAnimation'],\n renderedLeadingVisual && styles['Card--hasLeadingVisual'],\n ctaVariant === 'arrow' && styles['Card--ctaVariant-arrow'],\n cardTokensBlockEnd && styles['Card--tokensPosition-block-end'],\n variant === 'minimal' && styles['Card--variant-minimal'],\n hasBorder && styles['Card--border'],\n styles[`Card--backgroundColor-${resolvedBackgroundColor}`],\n imagePosition && styles[`Card--imagePos-${imagePosition}`],\n className,\n )}\n style={style}\n ref={cardRef}\n {...props}\n >\n {imagePosition === 'block-start' ? cardImage : null}\n {renderedLeadingVisual ? <div className={styles.Card__leadingVisual}>{renderedLeadingVisual}</div> : null}\n {renderedCardIcon}\n {cardTokensBlockStart}\n {cardLabel}\n {cardHeading}\n {cardDescription}\n {cardTokensBlockEnd}\n {imagePosition === 'block-end' ? cardImage : null}\n\n {ctaVariant !== 'none' ? (\n <div\n className={clsx(styles.Card__action, ctaVariant === 'arrow' && styles['Card__action--arrowOnly'])}\n aria-hidden={ctaVariant === 'arrow' ? true : undefined}\n >\n <span className={clsx(ctaVariant === 'arrow' && styles.Card__actionLabelClip)}>\n <Text as=\"span\" size=\"200\" className={clsx(stylesLink['Link--label'], styles.Card__actionLabel)}>\n {ctaText}\n </Text>\n </span>\n {shouldRenderLinkArrow ? (\n <span\n className={clsx(\n styles.Card__actionIcon,\n ctaVariant === 'arrow' && styles['Card__actionIcon--arrowOnly'],\n )}\n >\n <ExpandableArrow\n className={clsx(stylesLink['Link-arrow'], styles['Card--expandableArrow'])}\n aria-hidden=\"true\"\n />\n </span>\n ) : null}\n </div>\n ) : null}\n </div>\n </DefaultCardWrapperComponent>\n )\n },\n)\n\ntype DefaultCardWrapperComponentProps = React.PropsWithChildren<{\n className?: string\n style?: React.CSSProperties\n}>\n\nfunction DefaultCardWrapperComponent({className, children, style}: DefaultCardWrapperComponentProps) {\n return (\n <div className={clsx(styles['Card__outer'], className)} style={style}>\n {children}\n </div>\n )\n}\n\nfunction getRenderableLeadingVisual(leadingVisual?: CardLeadingVisual) {\n if (!leadingVisual) {\n return null\n }\n\n if (typeof leadingVisual === 'function') {\n return React.createElement(leadingVisual, {className: styles['Card__leadingVisualItem']})\n }\n\n if (React.isValidElement<{className?: string}>(leadingVisual)) {\n return React.cloneElement(leadingVisual, {\n className: clsx(styles['Card__leadingVisualItem'], leadingVisual.props.className),\n })\n }\n\n return null\n}\n\nexport type CardImageProps = {\n position?: 'block-start' | 'block-end'\n padding?: CardImagePadding\n} & ImageProps\n\nfunction CardImage({className, position = 'block-start', padding = 'default', ...rest}: CardImageProps) {\n return (\n <div\n className={clsx(\n styles.Card__image,\n styles[`Card__image--position-${position}`],\n padding === 'none' && styles['Card__image--padding-none'],\n )}\n >\n <Image className={className} {...rest} />\n </div>\n )\n}\n\ntype CardIconProps = IconProps\n\nconst CardIcon = ({className, hasBackground = true, ...props}: IconProps) => (\n <Icon className={clsx(styles.Card__icon, className)} hasBackground={hasBackground} {...props} />\n)\n\ntype CardTokensProps = BaseProps<HTMLDivElement> & {\n children: React.ReactNode | React.ReactNode[]\n position?: CardTokenPosition\n}\n\nconst CardTokens = forwardRef<HTMLDivElement, CardTokensProps>(\n ({children, className, position = 'block-start', ...rest}, ref) => {\n return (\n <div\n className={clsx(\n styles.Card__tokens,\n position === 'block-end' && styles['Card__tokens--position-block-end'],\n className,\n )}\n ref={ref}\n {...rest}\n >\n {children}\n </div>\n )\n },\n)\n\ntype CardLabelProps = Omit<BaseProps<HTMLSpanElement>, 'animate'> &\n Omit<React.ComponentPropsWithoutRef<'span'>, 'children'> & {\n children: React.ReactNode | React.ReactNode[]\n variant?: CardLabelVariant\n }\n\nconst CardLabel = forwardRef<HTMLSpanElement, CardLabelProps>(\n ({children, variant = defaultCardLabelVariant, className, ...rest}, ref) => {\n if (variant === 'accent-text') {\n return (\n <EyebrowText ref={ref} className={clsx(styles.Card__label, className)} variant=\"accent\" {...rest}>\n {children}\n </EyebrowText>\n )\n }\n\n return (\n <Token\n ref={ref as React.Ref<HTMLSpanElement | HTMLAnchorElement>}\n className={clsx(styles.Card__label, className)}\n {...rest}\n >\n {children}\n </Token>\n )\n },\n)\n\ntype CardHeadingProps = BaseProps<HTMLHeadingElement> & {\n children: React.ReactNode | React.ReactNode[]\n as?: Exclude<HeadingProps['as'], 'h1'>\n href?: string\n} & Omit<HeadingProps, 'onMouseEnter' | 'onMouseLeave' | 'onFocus' | 'onBlur'> &\n React.ComponentPropsWithoutRef<'a'>\n\nconst CardHeading = forwardRef<HTMLHeadingElement, CardHeadingProps>(\n ({children, as = 'h3', className, href, onMouseEnter, onMouseLeave, onBlur, onFocus, ...rest}, ref) => {\n return (\n <Heading size=\"6\" className={clsx(styles.Card__heading, className)} ref={ref} as={as} {...rest}>\n <a\n href={href}\n className={clsx(styles.Card__link)}\n onMouseEnter={onMouseEnter}\n onMouseLeave={onMouseLeave}\n onBlur={onBlur}\n onFocus={onFocus}\n >\n {children}\n </a>\n </Heading>\n )\n },\n)\n\ntype CardDescriptionProps = BaseProps<HTMLParagraphElement> & {\n children: React.ReactNode | React.ReactNode[]\n}\n\nconst CardDescription = forwardRef<HTMLParagraphElement, CardDescriptionProps>(\n ({children, className, ...rest}, ref) => {\n return (\n <Text variant=\"muted\" ref={ref} size=\"200\" as=\"p\" className={clsx(styles.Card__description, className)} {...rest}>\n {children}\n </Text>\n )\n },\n)\n\nconst createComponentTypeGuard =\n <T,>(componentType: React.ComponentType<T>) =>\n (element: unknown): element is React.ReactElement<T> =>\n React.isValidElement(element) && element.type === componentType\n\nconst isCardImage = createComponentTypeGuard(CardImage)\nconst isCardIcon = createComponentTypeGuard(CardIcon)\nconst isCardLabel = createComponentTypeGuard(CardLabel)\nconst isCardTokens = createComponentTypeGuard(CardTokens)\nconst isCardHeading = createComponentTypeGuard(CardHeading)\nconst isCardDescription = createComponentTypeGuard(CardDescription)\n\n/**\n * Card component:\n * {@link https://primer.style/brand/components/Card/ See usage examples}.\n */\nexport const Card = Object.assign(CardRoot, {\n Image: CardImage,\n Icon: CardIcon,\n Label: CardLabel,\n Tokens: CardTokens,\n Heading: CardHeading,\n Description: CardDescription,\n})\n"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ .Primer_Brand__Card-module__Card___txAQX{--Card-grid-template-rows:auto auto auto auto auto auto 1fr auto;color:var(--brand-color-text-default);padding:var(--brand-Card-padding-block) var(--brand-Card-padding-inline);grid-template:"image image""leadingVisual leadingVisual""icon icon""tokens tokens""label label""heading heading""description description"1fr"action action"/1fr 1fr;grid-template-rows:var(--Card-grid-template-rows);border-radius:var(--brand-borderRadius-medium);flex:auto;height:100%;-webkit-text-decoration:none;text-decoration:none;display:grid;position:relative}@media screen and (width>=64rem){.Primer_Brand__Card-module__Card___txAQX{--brand-Card-padding-inline:var(--base-size-32)}}.Primer_Brand__Card-module__Card--align-center___zuZI_ .Primer_Brand__Card-module__Card___txAQX{--brand-Card-padding-block:var(--base-size-64);--brand-Card-padding-inline:var(--base-size-40);text-align:center}@media screen and (width>=64rem){.Primer_Brand__Card-module__Card--align-center___zuZI_ .Primer_Brand__Card-module__Card___txAQX{--brand-Card-padding-inline:var(--base-size-80)}}.Primer_Brand__Card-module__Card--align-center___zuZI_ .Primer_Brand__Card-module__Card___txAQX{grid-template-columns:1fr;grid-template-areas:"image""leadingVisual""icon""tokens""label""heading""description""action";justify-items:center}.Primer_Brand__Card-module__Card--backgroundColor-default___1JGan{background-color:var(--brand-Card-background-default)}.Primer_Brand__Card-module__Card--backgroundColor-subtle___0bVGO{background-color:var(--brand-color-canvas-subtle)}.Primer_Brand__Card-module__Card--backgroundColor-none___GVX0n{background-color:#0000}.Primer_Brand__Card-module__Card--tokensPosition-block-end___E6Buy{--Card-grid-template-rows:auto auto auto auto auto 1fr auto auto;grid-template-areas:"image image""leadingVisual leadingVisual""icon icon""label label""heading heading""description description""tokens tokens""action action"}.Primer_Brand__Card-module__Card--align-center___zuZI_ .Primer_Brand__Card-module__Card--tokensPosition-block-end___E6Buy{grid-template-areas:"image""leadingVisual""icon""label""heading""description""tokens""action"}.Primer_Brand__Card-module__Card--imagePos-block-end___fG_r_{--Card-grid-template-rows:auto auto auto auto auto 1fr auto auto;grid-template-areas:"leadingVisual leadingVisual""icon icon""tokens tokens""label label""heading heading""description description""action action""image image"}.Primer_Brand__Card-module__Card--align-center___zuZI_ .Primer_Brand__Card-module__Card--imagePos-block-end___fG_r_{grid-template-areas:"leadingVisual""icon""tokens""label""heading""description""action""image"}.Primer_Brand__Card-module__Card--imagePos-block-end___fG_r_.Primer_Brand__Card-module__Card--tokensPosition-block-end___E6Buy{--Card-grid-template-rows:auto auto auto auto 1fr auto auto auto;grid-template-areas:"leadingVisual leadingVisual""icon icon""label label""heading heading""description description""tokens tokens""action action""image image"}.Primer_Brand__Card-module__Card--align-center___zuZI_ .Primer_Brand__Card-module__Card--imagePos-block-end___fG_r_.Primer_Brand__Card-module__Card--tokensPosition-block-end___E6Buy{grid-template-areas:"leadingVisual""icon""label""heading""description""tokens""action""image"}.Primer_Brand__Card-module__Card--hasLeadingVisual___M8XW4{--brand-Card-padding-block:var(--base-size-64);--brand-Card-padding-inline:var(--base-size-40)}.Primer_Brand__Card-module__Card--imagePos-block-end___fG_r_ .Primer_Brand__Card-module__Card__image___3J5wL{margin-bottom:0;margin-top:var(--base-size-28)}.Primer_Brand__Card-module__Card--maxWidth___vGoIk{max-width:var(--brand-Card-maxWidth)}.Primer_Brand__Card-module__Card--fullWidth___nh9Zq{max-width:none;max-width:initial}.Primer_Brand__Card-module__Card--variant-minimal___V3m21,.Primer_Brand__Card-module__Card--align-center___zuZI_ .Primer_Brand__Card-module__Card--variant-minimal___V3m21{padding:0}.Primer_Brand__Card-module__Card--ctaVariant-arrow___vXAWH{--Card-arrowAction-endInset:var(--base-size-40)}.Primer_Brand__Card-module__Card___txAQX:hover{-webkit-text-decoration:none;text-decoration:none}.Primer_Brand__Card-module__Card__link___LyRm6{color:currentColor;-webkit-text-decoration:none!important;text-decoration:none!important}.Primer_Brand__Card-module__Card__link___LyRm6 code,.Primer_Brand__Card-module__Card__description___6RhVF code{font-size:inherit;font-family:var(--brand-fontStack-monospace);background-color:var(--brand-color-canvas-subtle);padding:0 var(--base-size-4) var(--base-size-2);margin-inline:var(--base-size-2);border:var(--brand-borderWidth-thin) solid var(--brand-color-border-default);border-radius:var(--brand-borderRadius-small);box-shadow:var(--brand-borderWidth-thin) var(--brand-borderWidth-thin) 0 0 var(--brand-color-border-default)}.Primer_Brand__Card-module__Card__description___6RhVF code{padding:var(--base-size-2) var(--base-size-4) 0}.Primer_Brand__Card-module__Card__link___LyRm6:has(code){line-height:1.4lh}.Primer_Brand__Card-module__Card__description___6RhVF.Primer_Brand__Card-module__Card__description___6RhVF:has(code){line-height:1.25lh}.Primer_Brand__Card-module__Card--disableAnimation___wZ9Jc:hover .Primer_Brand__Card-module__Card__link___LyRm6{-webkit-text-decoration:underline!important;text-decoration:underline!important}.Primer_Brand__Card-module__Card__link___LyRm6:focus{outline:none}.Primer_Brand__Card-module__Card__link___LyRm6:before{content:"";position:absolute;inset:0}.Primer_Brand__Card-module__Card--border___7rvcG{border:var(--brand-borderWidth-thin) solid var(--brand-color-border-default);border-radius:var(--brand-borderRadius-medium)}.Primer_Brand__Card-module__Card__outer___FFzJY{height:100%}.Primer_Brand__Card-module__Card__outer___FFzJY:has(.Primer_Brand__Card-module__Card--variant-minimal___V3m21){border-radius:var(--brand-borderRadius-small)}.Primer_Brand__Card-module__Card__outer___FFzJY:focus-within{outline:var(--brand-borderWidth-thick) solid var(--brand-color-focus);border-radius:var(--brand-borderRadius-medium)}.Primer_Brand__Card-module__Card__outer___FFzJY:has(.Primer_Brand__Card-module__Card--variant-minimal___V3m21):focus-within{outline-offset:var(--base-size-12)}.Primer_Brand__Card-module__Card__image___3J5wL{border-radius:var(--brand-borderRadius-medium);grid-area:image;margin-block-end:var(--base-size-28);overflow:hidden}.Primer_Brand__Card-module__Card__image--padding-none___Bh_kj{margin-inline:calc(var(--brand-Card-padding-inline) * -1)}.Primer_Brand__Card-module__Card__image--position-block-start___Tdkgr.Primer_Brand__Card-module__Card__image--padding-none___Bh_kj{margin-block-start:calc(var(--brand-Card-padding-block) * -1)}.Primer_Brand__Card-module__Card__image--position-block-end___E_0LZ.Primer_Brand__Card-module__Card__image--padding-none___Bh_kj{margin-block-end:calc(var(--brand-Card-padding-block) * -1)}.Primer_Brand__Card-module__Card--border___7rvcG .Primer_Brand__Card-module__Card__image--position-block-start___Tdkgr.Primer_Brand__Card-module__Card__image--padding-none___Bh_kj{border-end-end-radius:0;border-end-start-radius:0}.Primer_Brand__Card-module__Card--border___7rvcG .Primer_Brand__Card-module__Card__image--position-block-end___E_0LZ.Primer_Brand__Card-module__Card__image--padding-none___Bh_kj{border-block-start:var(--brand-borderWidth-thin) solid var(--brand-color-border-muted);border-start-start-radius:0;border-start-end-radius:0}.Primer_Brand__Card-module__Card--variant-minimal___V3m21 .Primer_Brand__Card-module__Card__image--padding-none___Bh_kj{margin-inline:0}.Primer_Brand__Card-module__Card--variant-minimal___V3m21 .Primer_Brand__Card-module__Card__image--position-block-start___Tdkgr.Primer_Brand__Card-module__Card__image--padding-none___Bh_kj{margin-block-start:0}.Primer_Brand__Card-module__Card--variant-minimal___V3m21 .Primer_Brand__Card-module__Card__image--position-block-end___E_0LZ.Primer_Brand__Card-module__Card__image--padding-none___Bh_kj{margin-block-end:0}.Primer_Brand__Card-module__Card__image___3J5wL img,.Primer_Brand__Card-module__Card__image___3J5wL picture,.Primer_Brand__Card-module__Card__image___3J5wL span{display:block}.Primer_Brand__Card-module__Card__leadingVisual___l_R3_{grid-area:leadingVisual;align-items:center;margin-block-end:var(--base-size-36);display:flex}.Primer_Brand__Card-module__Card--align-center___zuZI_ .Primer_Brand__Card-module__Card__leadingVisual___l_R3_{justify-content:center}.Primer_Brand__Card-module__Card__leadingVisualItem___ICuuV{max-width:100%;height:var(--base-size-40);width:auto;display:block}.Primer_Brand__Card-module__Card__icon___gPD1k{margin-bottom:var(--base-size-24);grid-area:icon}.Primer_Brand__Card-module__Card__tokens___9L_4a{gap:var(--base-size-8);margin-bottom:var(--base-size-20);flex-wrap:wrap;grid-area:tokens;display:flex}.Primer_Brand__Card-module__Card--align-center___zuZI_ .Primer_Brand__Card-module__Card__tokens___9L_4a{justify-content:center}.Primer_Brand__Card-module__Card__tokens--position-block-end___TL4R0{margin-block-start:var(--base-size-20);margin-block-end:0}.Primer_Brand__Card-module__Card__label___q_cqg{grid-area:label;inline-size:fit-content;max-inline-size:100%;margin-block-end:var(--base-size-20)}.Primer_Brand__Card-module__Card__heading___vdQlj{grid-area:heading;margin-block-end:var(--base-size-12)}.Primer_Brand__Card-module__Card__description___6RhVF{grid-area:description;margin-block-end:var(--base-size-24)}.Primer_Brand__Card-module__Card__action___NKFQ0{pointer-events:none;grid-area:action;align-items:center;max-inline-size:100%;margin-block-start:auto;display:inline-flex}.Primer_Brand__Card-module__Card__actionIcon___KF4ar{flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.Primer_Brand__Card-module__Card__actionLabel____icG0{text-overflow:clip;white-space:normal;min-inline-size:0;display:block;overflow:visible}.Primer_Brand__Card-module__Card___txAQX:not(.Primer_Brand__Card-module__Card--ctaVariant-arrow___vXAWH) .Primer_Brand__Card-module__Card__action___NKFQ0{inline-size:100%;min-inline-size:0}.Primer_Brand__Card-module__Card___txAQX:not(.Primer_Brand__Card-module__Card--ctaVariant-arrow___vXAWH) .Primer_Brand__Card-module__Card__action___NKFQ0>span:first-child{min-inline-size:0}.Primer_Brand__Card-module__Card___txAQX:not(.Primer_Brand__Card-module__Card--ctaVariant-arrow___vXAWH) .Primer_Brand__Card-module__Card__actionLabel____icG0{text-overflow:clip;white-space:normal;word-wrap:anywhere;overflow:visible}.Primer_Brand__Card-module__Card--align-center___zuZI_:not(.Primer_Brand__Card-module__Card--ctaVariant-arrow___vXAWH) .Primer_Brand__Card-module__Card__actionLabel____icG0{text-align:center}.Primer_Brand__Card-module__Card__actionLabelClip___kEth0{display:contents}.Primer_Brand__Card-module__Card--tokensPosition-block-end___E6Buy .Primer_Brand__Card-module__Card__action___NKFQ0{margin-block-start:var(--base-size-20)}.Primer_Brand__Card-module__Card__action--arrowOnly___19e3M{--actionArrow-duration:.3s;min-height:var(--base-size-40);width:auto;min-inline-size:0;max-inline-size:calc(100% - var(--Card-arrowAction-endInset));-moz-column-gap:var(--base-size-8);justify-content:flex-start;column-gap:var(--base-size-8);padding-block:var(--base-size-4);border:var(--brand-borderWidth-thin) solid var(--brand-color-border-default);border-radius:var(--brand-borderRadius-full);background-color:var(--brand-Card-background-overlay);flex-shrink:0;margin-block-start:var(--base-size-20);padding-inline-start:var(--base-size-12);padding-inline-end:var(--base-size-4);overflow:hidden}.Primer_Brand__Card-module__Card__actionIcon--arrowOnly___vCck1{width:var(--base-size-32);min-width:var(--base-size-32);height:var(--base-size-32);min-height:var(--base-size-32);border:var(--brand-borderWidth-thin) solid var(--brand-color-border-default);border-radius:var(--brand-borderRadius-full);background-color:var(--brand-color-canvas-default)}.Primer_Brand__Card-module__Card--align-center___zuZI_ .Primer_Brand__Card-module__Card__action___NKFQ0{justify-content:center}.Primer_Brand__Card-module__Card__action___NKFQ0,.Primer_Brand__Card-module__Card__action___NKFQ0 span{color:var(--brand-Link-color-accent)}.Primer_Brand__Card-module__Card__action___NKFQ0,.Primer_Brand__Card-module__Card__action___NKFQ0 *{cursor:inherit}.Primer_Brand__Card-module__Card--skew___k2nMy:focus-within{outline:var(--brand-borderWidth-thick) solid var(--brand-color-focus)}.Primer_Brand__Card-module__Card--skew___k2nMy:hover .Primer_Brand__Card-module__Card__torch___hdUqp{opacity:.85}.Primer_Brand__Card-module__Card__skew-bounding___g108S{border-radius:var(--brand-borderRadius-medium);z-index:1;background-color:var(--brand-Card-background-default);height:100%;position:relative;overflow:hidden}.Primer_Brand__Card-module__Card__torch___hdUqp{background-color:var(--brand-color-accent-primary);filter:blur(180px);opacity:0;mix-blend-mode:soft-light;will-change:transform;pointer-events:none;z-index:-1;border-radius:300px;width:650px;height:650px;transition:opacity 1.2s cubic-bezier(.16,1,.3,1);position:absolute;bottom:0;right:0}.Primer_Brand__Card-module__Card--expandableArrow____CfmY{margin-inline-start:var(--base-size-4)}.Primer_Brand__Card-module__Card--ctaVariant-arrow___vXAWH .Primer_Brand__Card-module__Card--expandableArrow____CfmY{--ExpandableArrow-duration:var(--brand-Card-animation-duration);--ExpandableArrow-easing:var(--brand-Card-animation-easing)}.Primer_Brand__Card-module__Card__actionIcon--arrowOnly___vCck1 .Primer_Brand__Card-module__Card--expandableArrow____CfmY{margin-inline-start:0}.Primer_Brand__Card-module__Card--ctaVariant-arrow___vXAWH .Primer_Brand__Card-module__Card__description___6RhVF{margin-bottom:var(--base-size-12)}.Primer_Brand__Card-module__Card--ctaVariant-arrow___vXAWH .Primer_Brand__Card-module__Card__action___NKFQ0{justify-self:start;min-inline-size:0}@media (hover:hover){.Primer_Brand__Card-module__Card__action--arrowOnly___19e3M{-moz-column-gap:0;transition:border-color var(--actionArrow-duration) ease-out, background-color var(--actionArrow-duration) ease-out, column-gap var(--actionArrow-duration) ease-out, padding-inline var(--actionArrow-duration) ease-out;transition:border-color var(--actionArrow-duration) ease-out, background-color var(--actionArrow-duration) ease-out, column-gap var(--actionArrow-duration) ease-out, padding-inline var(--actionArrow-duration) ease-out, -moz-column-gap var(--actionArrow-duration) ease-out;background-color:#0000;border-color:#0000;column-gap:0;padding-inline:0}.Primer_Brand__Card-module__Card__actionLabelClip___kEth0{--actionLabelClip-duration:.4s;opacity:0;min-inline-size:0;max-inline-size:0;transform:translateX(calc(var(--base-size-12) * -1));transition:max-inline-size .4s var(--brand-Card-animation-easing), opacity .4s ease-out, transform .4s ease-out, margin-inline .4s ease-out, padding-inline .4s ease-out;transition:max-inline-size var(--actionLabelClip-duration) var(--brand-Card-animation-easing), opacity var(--actionLabelClip-duration) ease-out, transform var(--actionLabelClip-duration) ease-out, margin-inline var(--actionLabelClip-duration) ease-out, padding-inline var(--actionLabelClip-duration) ease-out;background-color:#0000;flex:auto;align-self:stretch;align-items:center;margin-inline:0;padding-inline:0;display:inline-flex;overflow:hidden}.Primer_Brand__Card-module__Card--ctaVariant-arrow___vXAWH .Primer_Brand__Card-module__Card__actionLabel____icG0{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}}.Primer_Brand__Card-module__Card--align-center___zuZI_ .Primer_Brand__Card-module__Card--ctaVariant-arrow___vXAWH .Primer_Brand__Card-module__Card__action___NKFQ0{justify-self:center}.Primer_Brand__Card-module__Card--ctaVariant-arrow___vXAWH:focus-within .Primer_Brand__Card-module__Card__action--arrowOnly___19e3M,.Primer_Brand__Card-module__Card--ctaVariant-arrow___vXAWH:hover .Primer_Brand__Card-module__Card__action--arrowOnly___19e3M{-moz-column-gap:var(--base-size-8);column-gap:var(--base-size-8);border-color:var(--brand-color-border-default);background-color:var(--brand-Card-background-overlay);padding-inline-start:var(--base-size-12);padding-inline-end:var(--base-size-4)}.Primer_Brand__Card-module__Card--ctaVariant-arrow___vXAWH:focus-within .Primer_Brand__Card-module__Card__actionLabelClip___kEth0,.Primer_Brand__Card-module__Card--ctaVariant-arrow___vXAWH:hover .Primer_Brand__Card-module__Card__actionLabelClip___kEth0{opacity:1;max-inline-size:100%;margin-inline-start:calc(var(--base-size-12) * -1);margin-inline-end:0;padding-inline-start:var(--base-size-12);padding-inline-end:var(--base-size-4);transform:translate(0)}.Primer_Brand__Card-module__Card___txAQX:focus-within .Primer_Brand__Card-module__Card--expandableArrow____CfmY,.Primer_Brand__Card-module__Card___txAQX:hover .Primer_Brand__Card-module__Card--expandableArrow____CfmY{transform:translateX(var(--base-size-2))}.Primer_Brand__Card-module__Card___txAQX:hover .Primer_Brand__Card-module__Card--expandableArrow____CfmY path:nth-of-type(2),.Primer_Brand__Card-module__Card___txAQX:focus-within .Primer_Brand__Card-module__Card--expandableArrow____CfmY path:nth-of-type(2){stroke-dashoffset:20px}.Primer_Brand__Card-module__Card--disableAnimation___wZ9Jc,.Primer_Brand__Card-module__Card--disableAnimation___wZ9Jc *{transition:none;animation:none}@media (prefers-reduced-motion:reduce){.Primer_Brand__Card-module__Card___txAQX,.Primer_Brand__Card-module__Card___txAQX:before,.Primer_Brand__Card-module__Card___txAQX:after,.Primer_Brand__Card-module__Card___txAQX *{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
@@ -1,4 +1,4 @@
1
- import './Card.module-B41BqbuX.css';var e = {
1
+ import './Card.module-4GGxtM9r.css';var e = {
2
2
  Card: "Primer_Brand__Card-module__Card___txAQX",
3
3
  "Card--align-center": "Primer_Brand__Card-module__Card--align-center___zuZI_",
4
4
  "Card--backgroundColor-default": "Primer_Brand__Card-module__Card--backgroundColor-default___1JGan",
@@ -17,6 +17,9 @@ import './Card.module-B41BqbuX.css';var e = {
17
17
  "Card--disableAnimation": "Primer_Brand__Card-module__Card--disableAnimation___wZ9Jc",
18
18
  "Card--border": "Primer_Brand__Card-module__Card--border___7rvcG",
19
19
  Card__outer: "Primer_Brand__Card-module__Card__outer___FFzJY",
20
+ "Card__image--padding-none": "Primer_Brand__Card-module__Card__image--padding-none___Bh_kj",
21
+ "Card__image--position-block-start": "Primer_Brand__Card-module__Card__image--position-block-start___Tdkgr",
22
+ "Card__image--position-block-end": "Primer_Brand__Card-module__Card__image--position-block-end___E_0LZ",
20
23
  Card__leadingVisual: "Primer_Brand__Card-module__Card__leadingVisual___l_R3_",
21
24
  Card__leadingVisualItem: "Primer_Brand__Card-module__Card__leadingVisualItem___ICuuV",
22
25
  Card__icon: "Primer_Brand__Card-module__Card__icon___gPD1k",