@primer/react-brand 0.68.0-rc.982c487b → 0.68.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 (465) hide show
  1. package/esm/Button/Button.js +1 -1
  2. package/esm/Button/Button.module-Byz3R1qi.css +1 -0
  3. package/esm/Button/Button.module.js +2 -2
  4. package/esm/Button/Button.module.js.map +1 -1
  5. package/esm/Hero/{Hero.module-b8OFm8Ci.css → Hero.module-DvYo_AtL.css} +1 -1
  6. package/esm/Hero/Hero.module.js +1 -1
  7. package/esm/Hero/Hero.module.js.map +1 -1
  8. package/esm/Icon/Icon.module-UyYnXhrw.css +1 -0
  9. package/esm/Icon/Icon.module.js +1 -1
  10. package/esm/Icon/Icon.module.js.map +1 -1
  11. package/esm/LogoSuite/LogoSuite.module-69Mthqju.css +1 -0
  12. package/esm/LogoSuite/LogoSuite.module.js +1 -1
  13. package/esm/LogoSuite/LogoSuite.module.js.map +1 -1
  14. package/esm/MediaPlaylist/MediaPlaylist.d.ts +77 -0
  15. package/esm/MediaPlaylist/MediaPlaylist.d.ts.map +1 -0
  16. package/esm/MediaPlaylist/MediaPlaylist.js +172 -0
  17. package/esm/MediaPlaylist/MediaPlaylist.js.map +1 -0
  18. package/esm/MediaPlaylist/MediaPlaylist.module-BU39a4-W.css +1 -0
  19. package/esm/MediaPlaylist/MediaPlaylist.module.js +30 -0
  20. package/esm/MediaPlaylist/MediaPlaylist.module.js.map +1 -0
  21. package/esm/MediaPlaylist/index.d.ts +2 -0
  22. package/esm/MediaPlaylist/index.d.ts.map +1 -0
  23. package/esm/MediaPlaylist/useMediaPlaylist.d.ts +84 -0
  24. package/esm/MediaPlaylist/useMediaPlaylist.d.ts.map +1 -0
  25. package/esm/MediaPlaylist/useMediaPlaylist.js +114 -0
  26. package/esm/MediaPlaylist/useMediaPlaylist.js.map +1 -0
  27. package/esm/Pagination/Pagination.d.ts +2 -5
  28. package/esm/Pagination/Pagination.d.ts.map +1 -1
  29. package/esm/Pagination/Pagination.js +94 -52
  30. package/esm/Pagination/Pagination.js.map +1 -1
  31. package/esm/Pagination/Pagination.module-DmKBSq7s.css +1 -0
  32. package/esm/Pagination/Pagination.module.js +9 -3
  33. package/esm/Pagination/Pagination.module.js.map +1 -1
  34. package/esm/Pagination/model.d.ts +2 -2
  35. package/esm/Pagination/model.d.ts.map +1 -1
  36. package/esm/Pagination/model.js.map +1 -1
  37. package/esm/Stack/Stack.js +1 -1
  38. package/esm/SubNav/SubNav.d.ts.map +1 -1
  39. package/esm/SubNav/SubNav.js +17 -16
  40. package/esm/SubNav/SubNav.js.map +1 -1
  41. package/esm/SubNav/SubNav.module-D-gLr0JO.css +1 -0
  42. package/esm/SubNav/SubNav.module.js +1 -1
  43. package/esm/SubNav/SubNav.module.js.map +1 -1
  44. package/esm/forms/Checkbox/Checkbox.module-CtRGEfSq.css +1 -0
  45. package/esm/forms/Checkbox/Checkbox.module.js +1 -1
  46. package/esm/forms/Checkbox/Checkbox.module.js.map +1 -1
  47. package/esm/forms/ControlGroup/ControlGroup.module-XDWDqxx9.css +1 -0
  48. package/esm/forms/ControlGroup/ControlGroup.module.js +1 -1
  49. package/esm/forms/ControlGroup/ControlGroup.module.js.map +1 -1
  50. package/esm/forms/FormControl/{FormControl.module-UQqb_zPR.css → FormControl.module-CSNT689n.css} +1 -1
  51. package/esm/forms/FormControl/FormControl.module.js +1 -1
  52. package/esm/forms/FormControl/FormControl.module.js.map +1 -1
  53. package/esm/forms/Radio/Radio.module-B470XLdO.css +1 -0
  54. package/esm/forms/Radio/Radio.module.js +1 -1
  55. package/esm/forms/Radio/Radio.module.js.map +1 -1
  56. package/esm/forms/Select/Select.module-CRuV5AGO.css +1 -0
  57. package/esm/forms/Select/Select.module.js +1 -1
  58. package/esm/forms/Select/Select.module.js.map +1 -1
  59. package/esm/forms/TextInput/TextInput.module-CrmcmO_m.css +1 -0
  60. package/esm/forms/TextInput/TextInput.module.js +1 -1
  61. package/esm/forms/TextInput/TextInput.module.js.map +1 -1
  62. package/esm/forms/Textarea/{Textarea.module-CdUlSjWq.css → Textarea.module-C4pwTMjB.css} +1 -1
  63. package/esm/forms/Textarea/Textarea.module.js +1 -1
  64. package/esm/forms/Textarea/Textarea.module.js.map +1 -1
  65. package/esm/index.d.ts +1 -0
  66. package/esm/index.d.ts.map +1 -1
  67. package/esm/index.esm.js +51 -50
  68. package/esm/packages/design-tokens/lib/design-tokens/css/tokens/functional/components/button/colors-with-modes-kII0kqk3.css +1 -0
  69. package/esm/packages/design-tokens/lib/design-tokens/css/tokens/functional/components/media-playlist/colors-with-modes-YId8eSZQ.css +1 -0
  70. package/esm/packages/design-tokens/lib/design-tokens/css/tokens/functional/size/size-SXubYfUg.css +1 -0
  71. package/esm/recipes/Flexsuite/Details/FlexSuiteAIDetailsPlaylist/FlexSuiteAIDetailsPlaylist.content.d.ts +49 -0
  72. package/esm/recipes/Flexsuite/Details/FlexSuiteAIDetailsPlaylist/FlexSuiteAIDetailsPlaylist.content.d.ts.map +1 -0
  73. package/esm/recipes/Flexsuite/Details/FlexSuiteAIDetailsPlaylist/FlexSuiteAIDetailsPlaylist.d.ts +7 -0
  74. package/esm/recipes/Flexsuite/Details/FlexSuiteAIDetailsPlaylist/FlexSuiteAIDetailsPlaylist.d.ts.map +1 -0
  75. package/esm/recipes/Flexsuite/Details/index.d.ts +4 -0
  76. package/esm/recipes/Flexsuite/Details/index.d.ts.map +1 -0
  77. package/esm/recipes/Flexsuite/Overview/FlexSuiteAIOverview.d.ts.map +1 -1
  78. package/esm/river/RiverAccordion/RiverAccordion.d.ts.map +1 -1
  79. package/esm/river/RiverAccordion/RiverAccordion.js +14 -6
  80. package/esm/river/RiverAccordion/RiverAccordion.js.map +1 -1
  81. package/esm/river/RiverAccordion/RiverAccordion.module-nlZZH3O7.css +1 -0
  82. package/esm/river/RiverAccordion/RiverAccordion.module.js +3 -2
  83. package/esm/river/RiverAccordion/RiverAccordion.module.js.map +1 -1
  84. package/lib/Hero/HeroContext.d.ts +1 -1
  85. package/lib/MediaPlaylist/MediaPlaylist.d.ts +76 -0
  86. package/lib/MediaPlaylist/index.d.ts +1 -0
  87. package/lib/MediaPlaylist/useMediaPlaylist.d.ts +83 -0
  88. package/lib/Pagination/Pagination.d.ts +2 -5
  89. package/lib/Pagination/model.d.ts +2 -2
  90. package/lib/css/main.css +877 -375
  91. package/lib/design-tokens/css/tokens/base/colors/color-scales-with-modes.css +1 -1
  92. package/lib/design-tokens/css/tokens/base/colors/light.css +1 -1
  93. package/lib/design-tokens/css/tokens/base/size/size.css +1 -1
  94. package/lib/design-tokens/css/tokens/base/typography/typography.css +1 -1
  95. package/lib/design-tokens/css/tokens/functional/animation/base.css +1 -1
  96. package/lib/design-tokens/css/tokens/functional/colors/global-with-modes.css +1 -1
  97. package/lib/design-tokens/css/tokens/functional/colors/global.css +1 -1
  98. package/lib/design-tokens/css/tokens/functional/components/accordion/colors-with-modes.css +1 -1
  99. package/lib/design-tokens/css/tokens/functional/components/action-menu/colors-with-modes.css +1 -1
  100. package/lib/design-tokens/css/tokens/functional/components/anchor-nav/colors-with-modes.css +1 -1
  101. package/lib/design-tokens/css/tokens/functional/components/bento/base.css +1 -1
  102. package/lib/design-tokens/css/tokens/functional/components/blinking-cursor/colors-with-modes.css +1 -1
  103. package/lib/design-tokens/css/tokens/functional/components/breadcrumbs/colors-with-modes.css +1 -1
  104. package/lib/design-tokens/css/tokens/functional/components/button/colors-with-modes.css +7 -7
  105. package/lib/design-tokens/css/tokens/functional/components/card/base.css +1 -1
  106. package/lib/design-tokens/css/tokens/functional/components/card/colors-with-modes.css +1 -1
  107. package/lib/design-tokens/css/tokens/functional/components/card/colors.css +1 -1
  108. package/lib/design-tokens/css/tokens/functional/components/comparison-table/colors-with-modes.css +1 -1
  109. package/lib/design-tokens/css/tokens/functional/components/comparison-table/comparison-table.css +1 -1
  110. package/lib/design-tokens/css/tokens/functional/components/control/colors-with-modes.css +51 -19
  111. package/lib/design-tokens/css/tokens/functional/components/cta-banner/colors-with-modes.css +1 -1
  112. package/lib/design-tokens/css/tokens/functional/components/eyebrow-banner/colors-with-modes.css +1 -1
  113. package/lib/design-tokens/css/tokens/functional/components/eyebrow-banner/eyebrow-banner.css +1 -1
  114. package/lib/design-tokens/css/tokens/functional/components/faq/base.css +1 -1
  115. package/lib/design-tokens/css/tokens/functional/components/faq/colors-with-modes.css +1 -1
  116. package/lib/design-tokens/css/tokens/functional/components/faq/colors.css +1 -1
  117. package/lib/design-tokens/css/tokens/functional/components/faq/faq.css +1 -1
  118. package/lib/design-tokens/css/tokens/functional/components/footer/colors-with-modes.css +1 -1
  119. package/lib/design-tokens/css/tokens/functional/components/footer/colors.css +1 -1
  120. package/lib/design-tokens/css/tokens/functional/components/frosted-glass-vfx/base.css +1 -1
  121. package/lib/design-tokens/css/tokens/functional/components/frosted-glass-vfx/colors-with-modes.css +1 -1
  122. package/lib/design-tokens/css/tokens/functional/components/grid/colors-with-modes.css +1 -1
  123. package/lib/design-tokens/css/tokens/functional/components/grid/colors.css +1 -1
  124. package/lib/design-tokens/css/tokens/functional/components/grid/grid.css +1 -1
  125. package/lib/design-tokens/css/tokens/functional/components/hero/base.css +1 -1
  126. package/lib/design-tokens/css/tokens/functional/components/icon/colors-with-modes.css +1 -1
  127. package/lib/design-tokens/css/tokens/functional/components/icon/colors.css +1 -1
  128. package/lib/design-tokens/css/tokens/functional/components/ide/base.css +1 -1
  129. package/lib/design-tokens/css/tokens/functional/components/ide/colors-with-modes.css +1 -1
  130. package/lib/design-tokens/css/tokens/functional/components/image/base.css +1 -1
  131. package/lib/design-tokens/css/tokens/functional/components/inline-link/base.css +1 -1
  132. package/lib/design-tokens/css/tokens/functional/components/inline-link/colors-with-modes.css +1 -1
  133. package/lib/design-tokens/css/tokens/functional/components/inline-link/colors.css +1 -1
  134. package/lib/design-tokens/css/tokens/functional/components/label/colors-with-modes.css +1 -1
  135. package/lib/design-tokens/css/tokens/functional/components/label/colors.css +1 -1
  136. package/lib/design-tokens/css/tokens/functional/components/link/colors-with-modes.css +1 -1
  137. package/lib/design-tokens/css/tokens/functional/components/link/colors.css +1 -1
  138. package/lib/design-tokens/css/tokens/functional/components/logosuite/base.css +1 -1
  139. package/lib/design-tokens/css/tokens/functional/components/logosuite/colors-with-modes.css +1 -1
  140. package/lib/design-tokens/css/tokens/functional/components/logosuite/colors.css +1 -1
  141. package/lib/design-tokens/css/tokens/functional/components/media-playlist/colors-with-modes.css +13 -0
  142. package/lib/design-tokens/css/tokens/functional/components/media-playlist/colors.css +8 -0
  143. package/lib/design-tokens/css/tokens/functional/components/pricing-options/colors-with-modes.css +1 -1
  144. package/lib/design-tokens/css/tokens/functional/components/pricing-options/colors.css +1 -1
  145. package/lib/design-tokens/css/tokens/functional/components/pricing-options/pricing-options.css +1 -1
  146. package/lib/design-tokens/css/tokens/functional/components/prose/base.css +1 -1
  147. package/lib/design-tokens/css/tokens/functional/components/prose/colors-with-modes.css +1 -1
  148. package/lib/design-tokens/css/tokens/functional/components/river/base.css +1 -1
  149. package/lib/design-tokens/css/tokens/functional/components/river/river.css +1 -1
  150. package/lib/design-tokens/css/tokens/functional/components/river-story-scroll/colors-with-modes.css +1 -1
  151. package/lib/design-tokens/css/tokens/functional/components/section/section.css +1 -1
  152. package/lib/design-tokens/css/tokens/functional/components/statistic/base.css +1 -1
  153. package/lib/design-tokens/css/tokens/functional/components/sub-nav/base.css +1 -1
  154. package/lib/design-tokens/css/tokens/functional/components/sub-nav/colors-with-modes.css +1 -1
  155. package/lib/design-tokens/css/tokens/functional/components/subdomain-nav-bar/colors-with-modes.css +1 -1
  156. package/lib/design-tokens/css/tokens/functional/components/tabs/base.css +1 -1
  157. package/lib/design-tokens/css/tokens/functional/components/tabs/colors-with-modes.css +1 -1
  158. package/lib/design-tokens/css/tokens/functional/components/tabs/colors.css +1 -1
  159. package/lib/design-tokens/css/tokens/functional/components/testimonial/base.css +1 -1
  160. package/lib/design-tokens/css/tokens/functional/components/testimonial/colors-with-modes.css +1 -1
  161. package/lib/design-tokens/css/tokens/functional/components/testimonial/colors.css +1 -1
  162. package/lib/design-tokens/css/tokens/functional/components/tiles/colors-with-modes.css +1 -1
  163. package/lib/design-tokens/css/tokens/functional/components/timeline/base.css +1 -1
  164. package/lib/design-tokens/css/tokens/functional/components/timeline/colors-with-modes.css +1 -1
  165. package/lib/design-tokens/css/tokens/functional/components/timeline/colors.css +1 -1
  166. package/lib/design-tokens/css/tokens/functional/components/token/colors-with-modes.css +1 -1
  167. package/lib/design-tokens/css/tokens/functional/components/token/colors.css +1 -1
  168. package/lib/design-tokens/css/tokens/functional/components/tooltip/colors-with-modes.css +1 -1
  169. package/lib/design-tokens/css/tokens/functional/components/tooltip/colors.css +1 -1
  170. package/lib/design-tokens/css/tokens/functional/components/video-player/base.css +1 -1
  171. package/lib/design-tokens/css/tokens/functional/components/video-player/colors-with-modes.css +1 -1
  172. package/lib/design-tokens/css/tokens/functional/size/border.css +1 -1
  173. package/lib/design-tokens/css/tokens/functional/size/breakpoints.css +1 -1
  174. package/lib/design-tokens/css/tokens/functional/size/size-coarse.css +1 -1
  175. package/lib/design-tokens/css/tokens/functional/size/size-fine.css +1 -1
  176. package/lib/design-tokens/css/tokens/functional/size/size.css +2 -2
  177. package/lib/design-tokens/css/tokens/functional/size/viewport.css +1 -1
  178. package/lib/design-tokens/css/tokens/functional/typography/typography-responsive.css +1 -1
  179. package/lib/design-tokens/css/tokens/functional/typography/typography.css +1 -1
  180. package/lib/design-tokens/js/module/tokens/base/colors/light.js +1 -1
  181. package/lib/design-tokens/js/module/tokens/base/size/size.js +1 -1
  182. package/lib/design-tokens/js/module/tokens/base/typography/typography.js +1 -1
  183. package/lib/design-tokens/js/module/tokens/functional/animation/base.js +1 -1
  184. package/lib/design-tokens/js/module/tokens/functional/colors/global.js +1 -1
  185. package/lib/design-tokens/js/module/tokens/functional/components/bento/base.js +1 -1
  186. package/lib/design-tokens/js/module/tokens/functional/components/card/base.js +1 -1
  187. package/lib/design-tokens/js/module/tokens/functional/components/card/colors.js +1 -1
  188. package/lib/design-tokens/js/module/tokens/functional/components/comparison-table/comparison-table.js +1 -1
  189. package/lib/design-tokens/js/module/tokens/functional/components/eyebrow-banner/eyebrow-banner.js +1 -1
  190. package/lib/design-tokens/js/module/tokens/functional/components/faq/base.js +1 -1
  191. package/lib/design-tokens/js/module/tokens/functional/components/faq/colors.js +1 -1
  192. package/lib/design-tokens/js/module/tokens/functional/components/faq/faq.js +1 -1
  193. package/lib/design-tokens/js/module/tokens/functional/components/footer/colors.js +1 -1
  194. package/lib/design-tokens/js/module/tokens/functional/components/frosted-glass-vfx/base.js +1 -1
  195. package/lib/design-tokens/js/module/tokens/functional/components/grid/colors.js +1 -1
  196. package/lib/design-tokens/js/module/tokens/functional/components/grid/grid.js +1 -1
  197. package/lib/design-tokens/js/module/tokens/functional/components/hero/base.js +1 -1
  198. package/lib/design-tokens/js/module/tokens/functional/components/icon/colors.js +1 -1
  199. package/lib/design-tokens/js/module/tokens/functional/components/ide/base.js +1 -1
  200. package/lib/design-tokens/js/module/tokens/functional/components/image/base.js +1 -1
  201. package/lib/design-tokens/js/module/tokens/functional/components/inline-link/base.js +1 -1
  202. package/lib/design-tokens/js/module/tokens/functional/components/inline-link/colors.js +1 -1
  203. package/lib/design-tokens/js/module/tokens/functional/components/label/colors.js +1 -1
  204. package/lib/design-tokens/js/module/tokens/functional/components/link/colors.js +1 -1
  205. package/lib/design-tokens/js/module/tokens/functional/components/logosuite/base.js +1 -1
  206. package/lib/design-tokens/js/module/tokens/functional/components/logosuite/colors.js +1 -1
  207. package/lib/design-tokens/js/module/tokens/functional/components/media-playlist/colors.js +15 -0
  208. package/lib/design-tokens/js/module/tokens/functional/components/pricing-options/colors.js +1 -1
  209. package/lib/design-tokens/js/module/tokens/functional/components/pricing-options/pricing-options.js +1 -1
  210. package/lib/design-tokens/js/module/tokens/functional/components/prose/base.js +1 -1
  211. package/lib/design-tokens/js/module/tokens/functional/components/river/base.js +1 -1
  212. package/lib/design-tokens/js/module/tokens/functional/components/river/river.js +1 -1
  213. package/lib/design-tokens/js/module/tokens/functional/components/section/section.js +1 -1
  214. package/lib/design-tokens/js/module/tokens/functional/components/statistic/base.js +1 -1
  215. package/lib/design-tokens/js/module/tokens/functional/components/sub-nav/base.js +1 -1
  216. package/lib/design-tokens/js/module/tokens/functional/components/tabs/base.js +1 -1
  217. package/lib/design-tokens/js/module/tokens/functional/components/tabs/colors.js +1 -1
  218. package/lib/design-tokens/js/module/tokens/functional/components/testimonial/base.js +1 -1
  219. package/lib/design-tokens/js/module/tokens/functional/components/testimonial/colors.js +1 -1
  220. package/lib/design-tokens/js/module/tokens/functional/components/timeline/base.js +1 -1
  221. package/lib/design-tokens/js/module/tokens/functional/components/timeline/colors.js +1 -1
  222. package/lib/design-tokens/js/module/tokens/functional/components/token/colors.js +1 -1
  223. package/lib/design-tokens/js/module/tokens/functional/components/tooltip/colors.js +1 -1
  224. package/lib/design-tokens/js/module/tokens/functional/components/video-player/base.js +1 -1
  225. package/lib/design-tokens/js/module/tokens/functional/size/border.js +1 -1
  226. package/lib/design-tokens/js/module/tokens/functional/size/breakpoints.js +1 -1
  227. package/lib/design-tokens/js/module/tokens/functional/size/size-coarse.js +1 -1
  228. package/lib/design-tokens/js/module/tokens/functional/size/size-fine.js +1 -1
  229. package/lib/design-tokens/js/module/tokens/functional/size/size.js +2 -2
  230. package/lib/design-tokens/js/module/tokens/functional/size/viewport.js +1 -1
  231. package/lib/design-tokens/js/module/tokens/functional/typography/typography-responsive.js +1 -1
  232. package/lib/design-tokens/js/module/tokens/functional/typography/typography.js +1 -1
  233. package/lib/design-tokens/js/tokens/base/colors/light.js +1 -1
  234. package/lib/design-tokens/js/tokens/base/size/size.js +1 -1
  235. package/lib/design-tokens/js/tokens/base/typography/typography.js +1 -1
  236. package/lib/design-tokens/js/tokens/functional/animation/base.js +1 -1
  237. package/lib/design-tokens/js/tokens/functional/colors/global.js +1 -1
  238. package/lib/design-tokens/js/tokens/functional/components/bento/base.js +1 -1
  239. package/lib/design-tokens/js/tokens/functional/components/card/base.js +1 -1
  240. package/lib/design-tokens/js/tokens/functional/components/card/colors.js +1 -1
  241. package/lib/design-tokens/js/tokens/functional/components/comparison-table/comparison-table.js +1 -1
  242. package/lib/design-tokens/js/tokens/functional/components/eyebrow-banner/eyebrow-banner.js +1 -1
  243. package/lib/design-tokens/js/tokens/functional/components/faq/base.js +1 -1
  244. package/lib/design-tokens/js/tokens/functional/components/faq/colors.js +1 -1
  245. package/lib/design-tokens/js/tokens/functional/components/faq/faq.js +1 -1
  246. package/lib/design-tokens/js/tokens/functional/components/footer/colors.js +1 -1
  247. package/lib/design-tokens/js/tokens/functional/components/frosted-glass-vfx/base.js +1 -1
  248. package/lib/design-tokens/js/tokens/functional/components/grid/colors.js +1 -1
  249. package/lib/design-tokens/js/tokens/functional/components/grid/grid.js +1 -1
  250. package/lib/design-tokens/js/tokens/functional/components/hero/base.js +1 -1
  251. package/lib/design-tokens/js/tokens/functional/components/icon/colors.js +1 -1
  252. package/lib/design-tokens/js/tokens/functional/components/ide/base.js +1 -1
  253. package/lib/design-tokens/js/tokens/functional/components/image/base.js +1 -1
  254. package/lib/design-tokens/js/tokens/functional/components/inline-link/base.js +1 -1
  255. package/lib/design-tokens/js/tokens/functional/components/inline-link/colors.js +1 -1
  256. package/lib/design-tokens/js/tokens/functional/components/label/colors.js +1 -1
  257. package/lib/design-tokens/js/tokens/functional/components/link/colors.js +1 -1
  258. package/lib/design-tokens/js/tokens/functional/components/logosuite/base.js +1 -1
  259. package/lib/design-tokens/js/tokens/functional/components/logosuite/colors.js +1 -1
  260. package/lib/design-tokens/js/tokens/functional/components/media-playlist/colors.js +6 -0
  261. package/lib/design-tokens/js/tokens/functional/components/pricing-options/colors.js +1 -1
  262. package/lib/design-tokens/js/tokens/functional/components/pricing-options/pricing-options.js +1 -1
  263. package/lib/design-tokens/js/tokens/functional/components/prose/base.js +1 -1
  264. package/lib/design-tokens/js/tokens/functional/components/river/base.js +1 -1
  265. package/lib/design-tokens/js/tokens/functional/components/river/river.js +1 -1
  266. package/lib/design-tokens/js/tokens/functional/components/section/section.js +1 -1
  267. package/lib/design-tokens/js/tokens/functional/components/statistic/base.js +1 -1
  268. package/lib/design-tokens/js/tokens/functional/components/sub-nav/base.js +1 -1
  269. package/lib/design-tokens/js/tokens/functional/components/tabs/base.js +1 -1
  270. package/lib/design-tokens/js/tokens/functional/components/tabs/colors.js +1 -1
  271. package/lib/design-tokens/js/tokens/functional/components/testimonial/base.js +1 -1
  272. package/lib/design-tokens/js/tokens/functional/components/testimonial/colors.js +1 -1
  273. package/lib/design-tokens/js/tokens/functional/components/timeline/base.js +1 -1
  274. package/lib/design-tokens/js/tokens/functional/components/timeline/colors.js +1 -1
  275. package/lib/design-tokens/js/tokens/functional/components/token/colors.js +1 -1
  276. package/lib/design-tokens/js/tokens/functional/components/tooltip/colors.js +1 -1
  277. package/lib/design-tokens/js/tokens/functional/components/video-player/base.js +1 -1
  278. package/lib/design-tokens/js/tokens/functional/size/border.js +1 -1
  279. package/lib/design-tokens/js/tokens/functional/size/breakpoints.js +1 -1
  280. package/lib/design-tokens/js/tokens/functional/size/size-coarse.js +1 -1
  281. package/lib/design-tokens/js/tokens/functional/size/size-fine.js +1 -1
  282. package/lib/design-tokens/js/tokens/functional/size/size.js +2 -2
  283. package/lib/design-tokens/js/tokens/functional/size/viewport.js +1 -1
  284. package/lib/design-tokens/js/tokens/functional/typography/typography-responsive.js +1 -1
  285. package/lib/design-tokens/js/tokens/functional/typography/typography.js +1 -1
  286. package/lib/design-tokens/scss/tokens/base/colors/light.scss +1 -1
  287. package/lib/design-tokens/scss/tokens/base/size/size.scss +1 -1
  288. package/lib/design-tokens/scss/tokens/base/typography/typography.scss +1 -1
  289. package/lib/design-tokens/scss/tokens/functional/animation/base.scss +1 -1
  290. package/lib/design-tokens/scss/tokens/functional/colors/global.scss +1 -1
  291. package/lib/design-tokens/scss/tokens/functional/components/bento/base.scss +1 -1
  292. package/lib/design-tokens/scss/tokens/functional/components/card/base.scss +1 -1
  293. package/lib/design-tokens/scss/tokens/functional/components/card/colors.scss +1 -1
  294. package/lib/design-tokens/scss/tokens/functional/components/comparison-table/comparison-table.scss +1 -1
  295. package/lib/design-tokens/scss/tokens/functional/components/eyebrow-banner/eyebrow-banner.scss +1 -1
  296. package/lib/design-tokens/scss/tokens/functional/components/faq/base.scss +1 -1
  297. package/lib/design-tokens/scss/tokens/functional/components/faq/colors.scss +1 -1
  298. package/lib/design-tokens/scss/tokens/functional/components/faq/faq.scss +1 -1
  299. package/lib/design-tokens/scss/tokens/functional/components/footer/colors.scss +1 -1
  300. package/lib/design-tokens/scss/tokens/functional/components/frosted-glass-vfx/base.scss +1 -1
  301. package/lib/design-tokens/scss/tokens/functional/components/grid/colors.scss +1 -1
  302. package/lib/design-tokens/scss/tokens/functional/components/grid/grid.scss +1 -1
  303. package/lib/design-tokens/scss/tokens/functional/components/hero/base.scss +1 -1
  304. package/lib/design-tokens/scss/tokens/functional/components/icon/colors.scss +1 -1
  305. package/lib/design-tokens/scss/tokens/functional/components/ide/base.scss +1 -1
  306. package/lib/design-tokens/scss/tokens/functional/components/image/base.scss +1 -1
  307. package/lib/design-tokens/scss/tokens/functional/components/inline-link/base.scss +1 -1
  308. package/lib/design-tokens/scss/tokens/functional/components/inline-link/colors.scss +1 -1
  309. package/lib/design-tokens/scss/tokens/functional/components/label/colors.scss +1 -1
  310. package/lib/design-tokens/scss/tokens/functional/components/link/colors.scss +1 -1
  311. package/lib/design-tokens/scss/tokens/functional/components/logosuite/base.scss +1 -1
  312. package/lib/design-tokens/scss/tokens/functional/components/logosuite/colors.scss +1 -1
  313. package/lib/design-tokens/scss/tokens/functional/components/media-playlist/colors.scss +5 -0
  314. package/lib/design-tokens/scss/tokens/functional/components/pricing-options/colors.scss +1 -1
  315. package/lib/design-tokens/scss/tokens/functional/components/pricing-options/pricing-options.scss +1 -1
  316. package/lib/design-tokens/scss/tokens/functional/components/prose/base.scss +1 -1
  317. package/lib/design-tokens/scss/tokens/functional/components/river/base.scss +1 -1
  318. package/lib/design-tokens/scss/tokens/functional/components/river/river.scss +1 -1
  319. package/lib/design-tokens/scss/tokens/functional/components/section/section.scss +1 -1
  320. package/lib/design-tokens/scss/tokens/functional/components/statistic/base.scss +1 -1
  321. package/lib/design-tokens/scss/tokens/functional/components/sub-nav/base.scss +1 -1
  322. package/lib/design-tokens/scss/tokens/functional/components/tabs/base.scss +1 -1
  323. package/lib/design-tokens/scss/tokens/functional/components/tabs/colors.scss +1 -1
  324. package/lib/design-tokens/scss/tokens/functional/components/testimonial/base.scss +1 -1
  325. package/lib/design-tokens/scss/tokens/functional/components/testimonial/colors.scss +1 -1
  326. package/lib/design-tokens/scss/tokens/functional/components/timeline/base.scss +1 -1
  327. package/lib/design-tokens/scss/tokens/functional/components/timeline/colors.scss +1 -1
  328. package/lib/design-tokens/scss/tokens/functional/components/token/colors.scss +1 -1
  329. package/lib/design-tokens/scss/tokens/functional/components/tooltip/colors.scss +1 -1
  330. package/lib/design-tokens/scss/tokens/functional/components/video-player/base.scss +1 -1
  331. package/lib/design-tokens/scss/tokens/functional/size/border.scss +1 -1
  332. package/lib/design-tokens/scss/tokens/functional/size/breakpoints.scss +1 -1
  333. package/lib/design-tokens/scss/tokens/functional/size/size-coarse.scss +1 -1
  334. package/lib/design-tokens/scss/tokens/functional/size/size-fine.scss +1 -1
  335. package/lib/design-tokens/scss/tokens/functional/size/size.scss +2 -2
  336. package/lib/design-tokens/scss/tokens/functional/size/viewport.scss +1 -1
  337. package/lib/design-tokens/scss/tokens/functional/typography/typography-responsive.scss +1 -1
  338. package/lib/design-tokens/scss/tokens/functional/typography/typography.scss +1 -1
  339. package/lib/design-tokens/ts/tokens/base/colors/light.d.ts +1 -1
  340. package/lib/design-tokens/ts/tokens/base/colors/light.js +1 -1
  341. package/lib/design-tokens/ts/tokens/base/size/size.d.ts +1 -1
  342. package/lib/design-tokens/ts/tokens/base/size/size.js +1 -1
  343. package/lib/design-tokens/ts/tokens/base/typography/typography.d.ts +1 -1
  344. package/lib/design-tokens/ts/tokens/base/typography/typography.js +1 -1
  345. package/lib/design-tokens/ts/tokens/functional/animation/base.d.ts +1 -1
  346. package/lib/design-tokens/ts/tokens/functional/animation/base.js +1 -1
  347. package/lib/design-tokens/ts/tokens/functional/colors/global.d.ts +1 -1
  348. package/lib/design-tokens/ts/tokens/functional/colors/global.js +1 -1
  349. package/lib/design-tokens/ts/tokens/functional/components/bento/base.d.ts +1 -1
  350. package/lib/design-tokens/ts/tokens/functional/components/bento/base.js +1 -1
  351. package/lib/design-tokens/ts/tokens/functional/components/card/base.d.ts +1 -1
  352. package/lib/design-tokens/ts/tokens/functional/components/card/base.js +1 -1
  353. package/lib/design-tokens/ts/tokens/functional/components/card/colors.d.ts +1 -1
  354. package/lib/design-tokens/ts/tokens/functional/components/card/colors.js +1 -1
  355. package/lib/design-tokens/ts/tokens/functional/components/comparison-table/comparison-table.d.ts +1 -1
  356. package/lib/design-tokens/ts/tokens/functional/components/comparison-table/comparison-table.js +1 -1
  357. package/lib/design-tokens/ts/tokens/functional/components/eyebrow-banner/eyebrow-banner.d.ts +1 -1
  358. package/lib/design-tokens/ts/tokens/functional/components/eyebrow-banner/eyebrow-banner.js +1 -1
  359. package/lib/design-tokens/ts/tokens/functional/components/faq/base.d.ts +1 -1
  360. package/lib/design-tokens/ts/tokens/functional/components/faq/base.js +1 -1
  361. package/lib/design-tokens/ts/tokens/functional/components/faq/colors.d.ts +1 -1
  362. package/lib/design-tokens/ts/tokens/functional/components/faq/colors.js +1 -1
  363. package/lib/design-tokens/ts/tokens/functional/components/faq/faq.d.ts +1 -1
  364. package/lib/design-tokens/ts/tokens/functional/components/faq/faq.js +1 -1
  365. package/lib/design-tokens/ts/tokens/functional/components/footer/colors.d.ts +1 -1
  366. package/lib/design-tokens/ts/tokens/functional/components/footer/colors.js +1 -1
  367. package/lib/design-tokens/ts/tokens/functional/components/frosted-glass-vfx/base.d.ts +1 -1
  368. package/lib/design-tokens/ts/tokens/functional/components/frosted-glass-vfx/base.js +1 -1
  369. package/lib/design-tokens/ts/tokens/functional/components/grid/colors.d.ts +1 -1
  370. package/lib/design-tokens/ts/tokens/functional/components/grid/colors.js +1 -1
  371. package/lib/design-tokens/ts/tokens/functional/components/grid/grid.d.ts +1 -1
  372. package/lib/design-tokens/ts/tokens/functional/components/grid/grid.js +1 -1
  373. package/lib/design-tokens/ts/tokens/functional/components/hero/base.d.ts +1 -1
  374. package/lib/design-tokens/ts/tokens/functional/components/hero/base.js +1 -1
  375. package/lib/design-tokens/ts/tokens/functional/components/icon/colors.d.ts +1 -1
  376. package/lib/design-tokens/ts/tokens/functional/components/icon/colors.js +1 -1
  377. package/lib/design-tokens/ts/tokens/functional/components/ide/base.d.ts +1 -1
  378. package/lib/design-tokens/ts/tokens/functional/components/ide/base.js +1 -1
  379. package/lib/design-tokens/ts/tokens/functional/components/image/base.d.ts +1 -1
  380. package/lib/design-tokens/ts/tokens/functional/components/image/base.js +1 -1
  381. package/lib/design-tokens/ts/tokens/functional/components/inline-link/base.d.ts +1 -1
  382. package/lib/design-tokens/ts/tokens/functional/components/inline-link/base.js +1 -1
  383. package/lib/design-tokens/ts/tokens/functional/components/inline-link/colors.d.ts +1 -1
  384. package/lib/design-tokens/ts/tokens/functional/components/inline-link/colors.js +1 -1
  385. package/lib/design-tokens/ts/tokens/functional/components/label/colors.d.ts +1 -1
  386. package/lib/design-tokens/ts/tokens/functional/components/label/colors.js +1 -1
  387. package/lib/design-tokens/ts/tokens/functional/components/link/colors.d.ts +1 -1
  388. package/lib/design-tokens/ts/tokens/functional/components/link/colors.js +1 -1
  389. package/lib/design-tokens/ts/tokens/functional/components/logosuite/base.d.ts +1 -1
  390. package/lib/design-tokens/ts/tokens/functional/components/logosuite/base.js +1 -1
  391. package/lib/design-tokens/ts/tokens/functional/components/logosuite/colors.d.ts +1 -1
  392. package/lib/design-tokens/ts/tokens/functional/components/logosuite/colors.js +1 -1
  393. package/lib/design-tokens/ts/tokens/functional/components/media-playlist/colors.d.ts +15 -0
  394. package/lib/design-tokens/ts/tokens/functional/components/media-playlist/colors.js +12 -0
  395. package/lib/design-tokens/ts/tokens/functional/components/pricing-options/colors.d.ts +1 -1
  396. package/lib/design-tokens/ts/tokens/functional/components/pricing-options/colors.js +1 -1
  397. package/lib/design-tokens/ts/tokens/functional/components/pricing-options/pricing-options.d.ts +1 -1
  398. package/lib/design-tokens/ts/tokens/functional/components/pricing-options/pricing-options.js +1 -1
  399. package/lib/design-tokens/ts/tokens/functional/components/prose/base.d.ts +1 -1
  400. package/lib/design-tokens/ts/tokens/functional/components/prose/base.js +1 -1
  401. package/lib/design-tokens/ts/tokens/functional/components/river/base.d.ts +1 -1
  402. package/lib/design-tokens/ts/tokens/functional/components/river/base.js +1 -1
  403. package/lib/design-tokens/ts/tokens/functional/components/river/river.d.ts +1 -1
  404. package/lib/design-tokens/ts/tokens/functional/components/river/river.js +1 -1
  405. package/lib/design-tokens/ts/tokens/functional/components/section/section.d.ts +1 -1
  406. package/lib/design-tokens/ts/tokens/functional/components/section/section.js +1 -1
  407. package/lib/design-tokens/ts/tokens/functional/components/statistic/base.d.ts +1 -1
  408. package/lib/design-tokens/ts/tokens/functional/components/statistic/base.js +1 -1
  409. package/lib/design-tokens/ts/tokens/functional/components/sub-nav/base.d.ts +1 -1
  410. package/lib/design-tokens/ts/tokens/functional/components/sub-nav/base.js +1 -1
  411. package/lib/design-tokens/ts/tokens/functional/components/tabs/base.d.ts +1 -1
  412. package/lib/design-tokens/ts/tokens/functional/components/tabs/base.js +1 -1
  413. package/lib/design-tokens/ts/tokens/functional/components/tabs/colors.d.ts +1 -1
  414. package/lib/design-tokens/ts/tokens/functional/components/tabs/colors.js +1 -1
  415. package/lib/design-tokens/ts/tokens/functional/components/testimonial/base.d.ts +1 -1
  416. package/lib/design-tokens/ts/tokens/functional/components/testimonial/base.js +1 -1
  417. package/lib/design-tokens/ts/tokens/functional/components/testimonial/colors.d.ts +1 -1
  418. package/lib/design-tokens/ts/tokens/functional/components/testimonial/colors.js +1 -1
  419. package/lib/design-tokens/ts/tokens/functional/components/timeline/base.d.ts +1 -1
  420. package/lib/design-tokens/ts/tokens/functional/components/timeline/base.js +1 -1
  421. package/lib/design-tokens/ts/tokens/functional/components/timeline/colors.d.ts +1 -1
  422. package/lib/design-tokens/ts/tokens/functional/components/timeline/colors.js +1 -1
  423. package/lib/design-tokens/ts/tokens/functional/components/token/colors.d.ts +1 -1
  424. package/lib/design-tokens/ts/tokens/functional/components/token/colors.js +1 -1
  425. package/lib/design-tokens/ts/tokens/functional/components/tooltip/colors.d.ts +1 -1
  426. package/lib/design-tokens/ts/tokens/functional/components/tooltip/colors.js +1 -1
  427. package/lib/design-tokens/ts/tokens/functional/components/video-player/base.d.ts +1 -1
  428. package/lib/design-tokens/ts/tokens/functional/components/video-player/base.js +1 -1
  429. package/lib/design-tokens/ts/tokens/functional/size/border.d.ts +1 -1
  430. package/lib/design-tokens/ts/tokens/functional/size/border.js +1 -1
  431. package/lib/design-tokens/ts/tokens/functional/size/breakpoints.d.ts +1 -1
  432. package/lib/design-tokens/ts/tokens/functional/size/breakpoints.js +1 -1
  433. package/lib/design-tokens/ts/tokens/functional/size/size-coarse.d.ts +1 -1
  434. package/lib/design-tokens/ts/tokens/functional/size/size-coarse.js +1 -1
  435. package/lib/design-tokens/ts/tokens/functional/size/size-fine.d.ts +1 -1
  436. package/lib/design-tokens/ts/tokens/functional/size/size-fine.js +1 -1
  437. package/lib/design-tokens/ts/tokens/functional/size/size.d.ts +1 -1
  438. package/lib/design-tokens/ts/tokens/functional/size/size.js +2 -2
  439. package/lib/design-tokens/ts/tokens/functional/size/viewport.d.ts +1 -1
  440. package/lib/design-tokens/ts/tokens/functional/size/viewport.js +1 -1
  441. package/lib/design-tokens/ts/tokens/functional/typography/typography-responsive.d.ts +1 -1
  442. package/lib/design-tokens/ts/tokens/functional/typography/typography-responsive.js +1 -1
  443. package/lib/design-tokens/ts/tokens/functional/typography/typography.d.ts +1 -1
  444. package/lib/design-tokens/ts/tokens/functional/typography/typography.js +1 -1
  445. package/lib/index.d.ts +1 -0
  446. package/lib/index.js +1 -1
  447. package/lib/recipes/Flexsuite/Details/FlexSuiteAIDetailsPlaylist/FlexSuiteAIDetailsPlaylist.content.d.ts +48 -0
  448. package/lib/recipes/Flexsuite/Details/FlexSuiteAIDetailsPlaylist/FlexSuiteAIDetailsPlaylist.d.ts +6 -0
  449. package/lib/recipes/Flexsuite/Details/index.d.ts +3 -0
  450. package/package.json +1 -1
  451. package/esm/Button/Button.module-CDHmNf-Y.css +0 -1
  452. package/esm/Icon/Icon.module-C1_lP1JO.css +0 -1
  453. package/esm/LogoSuite/LogoSuite.module-CWV4mJoG.css +0 -1
  454. package/esm/Pagination/Pagination.module-C7Z_pTFq.css +0 -1
  455. package/esm/SubNav/SubNav.module-CFXuWNmS.css +0 -1
  456. package/esm/forms/Checkbox/Checkbox.module-DTWn-eCl.css +0 -1
  457. package/esm/forms/ControlGroup/ControlGroup.module-B7ITrHM_.css +0 -1
  458. package/esm/forms/Radio/Radio.module-C_NUEyme.css +0 -1
  459. package/esm/forms/Select/Select.module-q1LyPHa8.css +0 -1
  460. package/esm/forms/TextInput/TextInput.module-zPnaJdhX.css +0 -1
  461. package/esm/packages/design-tokens/lib/design-tokens/css/tokens/functional/components/button/colors-with-modes-DPvZ0fhp.css +0 -1
  462. package/esm/packages/design-tokens/lib/design-tokens/css/tokens/functional/components/pagination/colors-with-modes-C2GLM06X.css +0 -1
  463. package/esm/packages/design-tokens/lib/design-tokens/css/tokens/functional/size/size-Dr6y-7jl.css +0 -1
  464. package/esm/river/RiverAccordion/RiverAccordion.module-BSoiBgAe.css +0 -1
  465. package/lib/design-tokens/css/tokens/functional/components/pagination/colors-with-modes.css +0 -17
@@ -1 +1 @@
1
- {"version":3,"file":"RiverAccordion.js","names":[],"sources":["../../../src/river/RiverAccordion/RiverAccordion.tsx"],"sourcesContent":["import React, {createContext, forwardRef, useCallback, useContext, useMemo, useState, useRef, useEffect} from 'react'\nimport {clsx} from 'clsx'\nimport {ChevronDownIcon, ChevronUpIcon} from '@primer/octicons-react'\n\nimport {Heading, type HeadingProps, Link, Text} from '../..'\nimport {useProvidedRefOrCreate} from '../../hooks/useRef'\nimport {useId} from '../../hooks/useId'\n\n/**\n * Design tokens\n */\nimport '@primer/brand-primitives/lib/design-tokens/css/tokens/functional/components/river/river.css'\n\n/** Main Stylesheet (as a CSS Module) */\nimport styles from './RiverAccordion.module.css'\nimport gridlineStyles from '../../component-helpers/shared.module.css'\n\ntype RiverAccordionContextType = {\n openIndex: number\n setOpenIndex: (index: number) => void\n}\n\nconst RiverAccordionContext = createContext<RiverAccordionContextType | null>(null)\n\nconst useRiverAccordionContext = (): RiverAccordionContextType => {\n const context = useContext(RiverAccordionContext)\n if (context === null) {\n throw new Error('useRiverAccordionContext must be used within a RiverAccordion component')\n }\n return context\n}\n\ntype RiverAccordionItemContextType = {\n index: number\n isOpen: boolean\n id: string\n}\n\nconst RiverAccordionItemContext = createContext<RiverAccordionItemContextType | null>(null)\n\nconst useRiverAccordionItemContext = (): RiverAccordionItemContextType => {\n const context = useContext(RiverAccordionItemContext)\n if (context === null) {\n throw new Error('useRiverAccordionItemContext must be used within a RiverAccordion component')\n }\n return context\n}\n\nexport const RiverAccordionVariants = ['default', 'gridline'] as const\nexport type RiverAccordionVariant = (typeof RiverAccordionVariants)[number]\n\nexport type RiverAccordionProps = React.PropsWithChildren<{\n align?: 'start' | 'end'\n variant?: RiverAccordionVariant\n}> &\n React.HTMLAttributes<HTMLDivElement>\n\nconst RiverAccordionRoot = forwardRef<HTMLDivElement, RiverAccordionProps>(\n ({align = 'start', variant = 'default', children, className, ...rest}, forwardedRef) => {\n const containerRef = useProvidedRefOrCreate<HTMLDivElement>(forwardedRef as React.RefObject<HTMLDivElement>)\n const [openIndex, setOpenIndex] = useState(0)\n\n const accordionComponents = useMemo(() => {\n return React.Children.toArray(children).reduce<{\n items: React.ReactElement<RiverAccordionItemProps>[]\n visuals: React.ReactElement<RiverAccordionVisualProps>[]\n }>(\n (acc, child) => {\n if (!isRiverAccordionItem(child)) {\n return acc\n }\n\n const visualChild = React.Children.toArray(child.props.children).find(isRiverAccordionVisual)\n\n if (visualChild) {\n acc.items.push(child)\n acc.visuals.push(visualChild)\n }\n\n return acc\n },\n {items: [], visuals: []},\n )\n }, [children])\n\n const items = accordionComponents.items.map((item, index) => React.cloneElement(item, {key: index, index}))\n const visuals = accordionComponents.visuals.map((visual, index) =>\n React.cloneElement(visual, {key: index, 'aria-hidden': true}),\n )\n\n const contextValue = useMemo(\n () => ({\n openIndex,\n setOpenIndex,\n }),\n [openIndex, setOpenIndex],\n )\n\n return (\n <RiverAccordionContext.Provider value={contextValue}>\n <div\n ref={containerRef}\n className={clsx(\n styles.RiverAccordion,\n styles[`RiverAccordion__align-${align}`],\n styles[`RiverAccordion--variant-${variant}`],\n variant === 'gridline' && gridlineStyles.gridline,\n className,\n )}\n {...rest}\n >\n <div className={styles.RiverAccordion__accordionContainer}>{items}</div>\n <div className={styles.RiverAccordion__visualsContainer}>\n <div className={styles.RiverAccordion__visualsWrapper}>{visuals}</div>\n </div>\n </div>\n </RiverAccordionContext.Provider>\n )\n },\n)\n\nexport type RiverAccordionItemProps = React.HTMLAttributes<HTMLDivElement> & {\n children: React.ReactElement<RiverAccordionHeadingProps | RiverAccordionContentProps>[]\n index?: number\n}\n\nconst RiverAccordionItem = ({className, index, children, ...props}: RiverAccordionItemProps) => {\n const {openIndex} = useRiverAccordionContext()\n const panelId = useId()\n const isOpen = index === openIndex\n const panelRef = useRef<HTMLDivElement>(null)\n\n useEffect(() => {\n if (panelRef.current) {\n // Workaround to avoid React 18 / 19 type mismatches with the `inert` attribute.\n // This approach won't immediately apply the attribute in pure SSR contexts, only post-hydration\n // TODO: Move back to JSX when React 19 is fully adopted in Dotcom.\n panelRef.current.toggleAttribute('inert', !isOpen)\n }\n }, [isOpen])\n\n const itemContextValue = useMemo(\n () => ({\n id: panelId,\n // Index optional for consumers, but always provided by parent\n index: index as number,\n isOpen,\n }),\n [panelId, index, isOpen],\n )\n\n const {heading, content, visual} = useMemo(() => {\n return React.Children.toArray(children).reduce<{\n heading: React.ReactElement<RiverAccordionHeadingProps> | null\n content: React.ReactElement<RiverAccordionContentProps> | null\n visual: React.ReactElement<RiverAccordionVisualProps> | null\n }>(\n (acc, child) => {\n if (isRiverAccordionHeading(child)) {\n acc.heading = child\n }\n\n if (isRiverAccordionContent(child)) {\n acc.content = child\n }\n\n if (isRiverAccordionVisual(child)) {\n acc.visual = child\n }\n\n return acc\n },\n {heading: null, content: null, visual: null},\n )\n }, [children])\n\n if (!heading || !content || !visual) {\n return null\n }\n\n return (\n <RiverAccordionItemContext.Provider value={itemContextValue}>\n <div\n className={clsx(styles.RiverAccordion__item, isOpen && styles['RiverAccordion__item--open'], className)}\n {...props}\n >\n {heading}\n <div ref={panelRef} className={styles.RiverAccordion__panel} id={panelId} aria-hidden={!isOpen}>\n {content}\n {visual}\n </div>\n </div>\n </RiverAccordionItemContext.Provider>\n )\n}\n\nexport type RiverAccordionHeadingProps = HeadingProps\n\nconst RiverAccordionHeading = ({as = 'h3', children, className, size = '6', ...props}: RiverAccordionHeadingProps) => {\n const {setOpenIndex} = useRiverAccordionContext()\n const {id, index, isOpen} = useRiverAccordionItemContext()\n\n const onClick = useCallback(() => {\n if (!isOpen) {\n setOpenIndex(index)\n }\n }, [index, isOpen, setOpenIndex])\n\n return (\n <Heading size={size} as={as} className={clsx(styles.RiverAccordion__heading, className)} {...props}>\n <button\n type=\"button\"\n className={styles.RiverAccordion__trigger}\n onClick={onClick}\n aria-disabled={isOpen}\n aria-controls={id}\n aria-expanded={isOpen}\n >\n {children}\n <span aria-hidden=\"true\" className={styles.RiverAccordion__icon}>\n {isOpen ? <ChevronUpIcon size={24} /> : <ChevronDownIcon size={24} />}\n </span>\n </button>\n </Heading>\n )\n}\n\nexport type RiverAccordionContentProps = React.HTMLAttributes<HTMLDivElement>\n\nconst RiverAccordionContent = ({className, children, ...props}: RiverAccordionContentProps) => {\n const childrenWithStyledText = useMemo(() => {\n const isLink = createComponentTypeGuard(Link)\n const isText = createComponentTypeGuard(Text)\n\n return React.Children.toArray(children).map(child => {\n if (isText(child)) {\n return React.cloneElement(child, {\n as: child.props.as ?? 'p',\n variant: child.props.variant ?? 'muted',\n size: child.props.size ?? '300',\n })\n }\n\n if (isLink(child)) {\n return React.cloneElement(child, {\n variant: child.props.variant ?? 'accent',\n })\n }\n\n return child\n })\n }, [children])\n\n return (\n <div className={clsx(styles.RiverAccordion__content, className)} {...props}>\n {childrenWithStyledText}\n </div>\n )\n}\n\nexport type RiverAccordionVisualProps = React.HTMLAttributes<HTMLDivElement>\n\nconst RiverAccordionVisual = ({className, ...props}: RiverAccordionVisualProps) => {\n return <div className={clsx(styles.RiverAccordion__visual, className)} {...props} />\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 isRiverAccordionItem = createComponentTypeGuard(RiverAccordionItem)\nconst isRiverAccordionContent = createComponentTypeGuard(RiverAccordionContent)\nconst isRiverAccordionHeading = createComponentTypeGuard(RiverAccordionHeading)\nconst isRiverAccordionVisual = createComponentTypeGuard(RiverAccordionVisual)\n\n/**\n * Use the RiverAccordion to create collapsible content panels with associated visuals.\n * @see https://primer.style/brand/components/RiverAccordion\n */\nexport const RiverAccordion = Object.assign(RiverAccordionRoot, {\n Content: RiverAccordionContent,\n Heading: RiverAccordionHeading,\n Item: RiverAccordionItem,\n Visual: RiverAccordionVisual,\n})\n"],"mappings":"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"}
1
+ {"version":3,"file":"RiverAccordion.js","names":[],"sources":["../../../src/river/RiverAccordion/RiverAccordion.tsx"],"sourcesContent":["import React, {createContext, forwardRef, useCallback, useContext, useMemo, useState, useRef, useEffect} from 'react'\nimport {clsx} from 'clsx'\nimport {ChevronDownIcon, ChevronUpIcon} from '@primer/octicons-react'\n\nimport {Heading, type HeadingProps, Link, Text} from '../..'\nimport {useProvidedRefOrCreate} from '../../hooks/useRef'\nimport {useId} from '../../hooks/useId'\n\n/**\n * Design tokens\n */\nimport '@primer/brand-primitives/lib/design-tokens/css/tokens/functional/components/river/river.css'\n\n/** Main Stylesheet (as a CSS Module) */\nimport styles from './RiverAccordion.module.css'\nimport gridlineStyles from '../../component-helpers/shared.module.css'\n\ntype RiverAccordionContextType = {\n openIndex: number\n setOpenIndex: (index: number) => void\n variant: RiverAccordionVariant\n}\n\nconst RiverAccordionContext = createContext<RiverAccordionContextType | null>(null)\n\nconst useRiverAccordionContext = (): RiverAccordionContextType => {\n const context = useContext(RiverAccordionContext)\n if (context === null) {\n throw new Error('useRiverAccordionContext must be used within a RiverAccordion component')\n }\n return context\n}\n\ntype RiverAccordionItemContextType = {\n index: number\n isOpen: boolean\n id: string\n}\n\nconst RiverAccordionItemContext = createContext<RiverAccordionItemContextType | null>(null)\n\nconst useRiverAccordionItemContext = (): RiverAccordionItemContextType => {\n const context = useContext(RiverAccordionItemContext)\n if (context === null) {\n throw new Error('useRiverAccordionItemContext must be used within a RiverAccordion component')\n }\n return context\n}\n\nexport const RiverAccordionVariants = ['default', 'gridline'] as const\nexport type RiverAccordionVariant = (typeof RiverAccordionVariants)[number]\n\nexport type RiverAccordionProps = React.PropsWithChildren<{\n align?: 'start' | 'end'\n variant?: RiverAccordionVariant\n}> &\n React.HTMLAttributes<HTMLDivElement>\n\nconst RiverAccordionRoot = forwardRef<HTMLDivElement, RiverAccordionProps>(\n ({align = 'start', variant = 'default', children, className, ...rest}, forwardedRef) => {\n const containerRef = useProvidedRefOrCreate<HTMLDivElement>(forwardedRef as React.RefObject<HTMLDivElement>)\n const [openIndex, setOpenIndex] = useState(0)\n\n const accordionComponents = useMemo(() => {\n return React.Children.toArray(children).reduce<{\n items: React.ReactElement<RiverAccordionItemProps>[]\n visuals: React.ReactElement<RiverAccordionVisualProps>[]\n }>(\n (acc, child) => {\n if (!isRiverAccordionItem(child)) {\n return acc\n }\n\n const visualChild = React.Children.toArray(child.props.children).find(isRiverAccordionVisual)\n\n if (visualChild) {\n acc.items.push(child)\n acc.visuals.push(visualChild)\n }\n\n return acc\n },\n {items: [], visuals: []},\n )\n }, [children])\n\n const items = accordionComponents.items.map((item, index) => React.cloneElement(item, {key: index, index}))\n const visuals = accordionComponents.visuals.map((visual, index) =>\n React.cloneElement(visual, {key: index, 'aria-hidden': true}),\n )\n\n const contextValue = useMemo(\n () => ({\n openIndex,\n setOpenIndex,\n variant,\n }),\n [openIndex, setOpenIndex, variant],\n )\n\n return (\n <RiverAccordionContext.Provider value={contextValue}>\n <div\n ref={containerRef}\n className={clsx(\n styles.RiverAccordion,\n styles[`RiverAccordion__align-${align}`],\n styles[`RiverAccordion--variant-${variant}`],\n variant === 'gridline' && gridlineStyles.gridline,\n className,\n )}\n {...rest}\n >\n <div className={styles.RiverAccordion__accordionContainer}>{items}</div>\n <div className={styles.RiverAccordion__visualsContainer}>\n <div className={styles.RiverAccordion__visualsWrapper}>{visuals}</div>\n </div>\n </div>\n </RiverAccordionContext.Provider>\n )\n },\n)\n\nexport type RiverAccordionItemProps = React.HTMLAttributes<HTMLDivElement> & {\n children: React.ReactElement<RiverAccordionHeadingProps | RiverAccordionContentProps>[]\n index?: number\n}\n\nconst RiverAccordionItem = ({className, index, children, ...props}: RiverAccordionItemProps) => {\n const {openIndex} = useRiverAccordionContext()\n const panelId = useId()\n const isOpen = index === openIndex\n const panelRef = useRef<HTMLDivElement>(null)\n\n useEffect(() => {\n if (panelRef.current) {\n // Workaround to avoid React 18 / 19 type mismatches with the `inert` attribute.\n // This approach won't immediately apply the attribute in pure SSR contexts, only post-hydration\n // TODO: Move back to JSX when React 19 is fully adopted in Dotcom.\n panelRef.current.toggleAttribute('inert', !isOpen)\n }\n }, [isOpen])\n\n const itemContextValue = useMemo(\n () => ({\n id: panelId,\n // Index optional for consumers, but always provided by parent\n index: index as number,\n isOpen,\n }),\n [panelId, index, isOpen],\n )\n\n const {heading, content, visual} = useMemo(() => {\n return React.Children.toArray(children).reduce<{\n heading: React.ReactElement<RiverAccordionHeadingProps> | null\n content: React.ReactElement<RiverAccordionContentProps> | null\n visual: React.ReactElement<RiverAccordionVisualProps> | null\n }>(\n (acc, child) => {\n if (isRiverAccordionHeading(child)) {\n acc.heading = child\n }\n\n if (isRiverAccordionContent(child)) {\n acc.content = child\n }\n\n if (isRiverAccordionVisual(child)) {\n acc.visual = child\n }\n\n return acc\n },\n {heading: null, content: null, visual: null},\n )\n }, [children])\n\n if (!heading || !content || !visual) {\n return null\n }\n\n return (\n <RiverAccordionItemContext.Provider value={itemContextValue}>\n <div\n className={clsx(styles.RiverAccordion__item, isOpen && styles['RiverAccordion__item--open'], className)}\n {...props}\n >\n {heading}\n <div ref={panelRef} className={styles.RiverAccordion__panel} id={panelId} aria-hidden={!isOpen}>\n {content}\n {visual}\n </div>\n </div>\n </RiverAccordionItemContext.Provider>\n )\n}\n\nexport type RiverAccordionHeadingProps = HeadingProps\n\nconst RiverAccordionHeading = ({as = 'h3', children, className, size = '6', ...props}: RiverAccordionHeadingProps) => {\n const {setOpenIndex} = useRiverAccordionContext()\n const {id, index, isOpen} = useRiverAccordionItemContext()\n\n const onClick = useCallback(() => {\n if (!isOpen) {\n setOpenIndex(index)\n }\n }, [index, isOpen, setOpenIndex])\n\n return (\n <Heading size={size} as={as} className={clsx(styles.RiverAccordion__heading, className)} {...props}>\n <button\n type=\"button\"\n className={styles.RiverAccordion__trigger}\n onClick={onClick}\n aria-disabled={isOpen}\n aria-controls={id}\n aria-expanded={isOpen}\n >\n {children}\n <span aria-hidden=\"true\" className={styles.RiverAccordion__icon}>\n {isOpen ? <ChevronUpIcon size={24} /> : <ChevronDownIcon size={24} />}\n </span>\n </button>\n </Heading>\n )\n}\n\nexport type RiverAccordionContentProps = React.HTMLAttributes<HTMLDivElement>\n\nconst RiverAccordionContent = ({className, children, ...props}: RiverAccordionContentProps) => {\n const childrenWithStyledText = useMemo(() => {\n const isLink = createComponentTypeGuard(Link)\n const isText = createComponentTypeGuard(Text)\n\n return React.Children.toArray(children).map(child => {\n if (isText(child)) {\n return React.cloneElement(child, {\n as: child.props.as ?? 'p',\n variant: child.props.variant ?? 'muted',\n size: child.props.size ?? '300',\n })\n }\n\n if (isLink(child)) {\n return React.cloneElement(child, {\n variant: child.props.variant ?? 'accent',\n })\n }\n\n return child\n })\n }, [children])\n\n return (\n <div className={clsx(styles.RiverAccordion__content, className)} {...props}>\n {childrenWithStyledText}\n </div>\n )\n}\n\nexport type RiverAccordionVisualProps = React.HTMLAttributes<HTMLDivElement>\n\nconst RiverAccordionVisual = ({className, ...props}: RiverAccordionVisualProps) => {\n const {variant} = useRiverAccordionContext()\n\n return (\n <div\n className={clsx(\n styles.RiverAccordion__visual,\n variant === 'gridline' && styles['RiverAccordion__visual--has-background'],\n className,\n )}\n {...props}\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 isRiverAccordionItem = createComponentTypeGuard(RiverAccordionItem)\nconst isRiverAccordionContent = createComponentTypeGuard(RiverAccordionContent)\nconst isRiverAccordionHeading = createComponentTypeGuard(RiverAccordionHeading)\nconst isRiverAccordionVisual = createComponentTypeGuard(RiverAccordionVisual)\n\n/**\n * Use the RiverAccordion to create collapsible content panels with associated visuals.\n * @see https://primer.style/brand/components/RiverAccordion\n */\nexport const RiverAccordion = Object.assign(RiverAccordionRoot, {\n Content: RiverAccordionContent,\n Heading: RiverAccordionHeading,\n Item: RiverAccordionItem,\n Visual: RiverAccordionVisual,\n})\n"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ .Primer_Brand__RiverAccordion-module__RiverAccordion___cECsB{grid-gap:0;grid-template:"visual""accordion"/1fr;gap:0;display:grid;position:relative}@media (width>=48rem){.Primer_Brand__RiverAccordion-module__RiverAccordion___cECsB{--gap-width:var(--brand-Grid-spacing-column-gap);--column-and-gap-width:calc((100% + var(--gap-width)) / 12);--4-grid-columns:calc(4 * var(--column-and-gap-width));--7-grid-columns-minus-last-gap:calc((7 * var(--column-and-gap-width)) - var(--gap-width));gap:var(--column-and-gap-width);grid-template-rows:auto}.Primer_Brand__RiverAccordion-module__RiverAccordion__align-start___wbXB3{grid-template-columns:var(--4-grid-columns) var(--7-grid-columns-minus-last-gap);grid-template-areas:"accordion visual"}.Primer_Brand__RiverAccordion-module__RiverAccordion__align-end___Zq4qJ{grid-template-columns:var(--7-grid-columns-minus-last-gap) var(--4-grid-columns);grid-template-areas:"visual accordion"}}.Primer_Brand__RiverAccordion-module__RiverAccordion--variant-gridline___1SmA4{padding-inline:var(--brand-RiverAccordion-variant-gridline-spacing-outerInline);padding-block:var(--brand-RiverAccordion-variant-gridline-spacing-outerBlock);position:relative}@media (width>=48rem){.Primer_Brand__RiverAccordion-module__RiverAccordion--variant-gridline___1SmA4{--gap-width:var(--brand-RiverAccordion-variant-gridline-spacing-contentGap);--half-column:calc(50% - var(--gap-width) / 2);gap:var(--gap-width);align-items:center}.Primer_Brand__RiverAccordion-module__RiverAccordion--variant-gridline___1SmA4.Primer_Brand__RiverAccordion-module__RiverAccordion__align-start___wbXB3{grid-template-columns:var(--half-column) var(--half-column);grid-template-areas:"accordion visual"}.Primer_Brand__RiverAccordion-module__RiverAccordion--variant-gridline___1SmA4.Primer_Brand__RiverAccordion-module__RiverAccordion__align-end___Zq4qJ{grid-template-columns:var(--half-column) var(--half-column);grid-template-areas:"visual accordion"}}@media (width>=80rem){.Primer_Brand__RiverAccordion-module__RiverAccordion--variant-gridline___1SmA4{border-inline:var(--brand-borderWidth-thin) solid var(--brand-color-border-muted)}}.Primer_Brand__RiverAccordion-module__RiverAccordion--variant-gridline___1SmA4 .Primer_Brand__RiverAccordion-module__RiverAccordion__visualsWrapper___Z8Yr6{border-radius:var(--brand-borderRadius-medium)}.Primer_Brand__RiverAccordion-module__RiverAccordion--variant-gridline___1SmA4:has(.Primer_Brand__RiverAccordion-module__RiverAccordion__visual--has-background___JQ9GB) .Primer_Brand__RiverAccordion-module__RiverAccordion__visualsContainer___IvQlx{margin-inline:calc(-1 * var(--brand-RiverAccordion-variant-gridline-spacing-outerInline));margin-block-start:calc(-1 * var(--brand-RiverAccordion-variant-gridline-spacing-outerBlock))}.Primer_Brand__RiverAccordion-module__RiverAccordion--variant-gridline___1SmA4 .Primer_Brand__RiverAccordion-module__RiverAccordion__visualsWrapper___Z8Yr6:has(.Primer_Brand__RiverAccordion-module__RiverAccordion__visual--has-background___JQ9GB){border-radius:0}.Primer_Brand__RiverAccordion-module__RiverAccordion__accordionContainer___a80ds{grid-area:accordion}.Primer_Brand__RiverAccordion-module__RiverAccordion__visualsContainer___IvQlx{grid-area:visual}.Primer_Brand__RiverAccordion-module__RiverAccordion__visualsWrapper___Z8Yr6{border-radius:var(--brand-borderRadius-xlarge);grid-template-columns:subgrid;grid-template-rows:subgrid;width:100%;display:grid;overflow:hidden}.Primer_Brand__RiverAccordion-module__RiverAccordion__visualsWrapper___Z8Yr6>.Primer_Brand__RiverAccordion-module__RiverAccordion__visual___aIsob{opacity:0;width:100%;height:100%;transition:opacity var(--brand-animation-duration-default) var(--brand-animation-easing-default), scale var(--brand-animation-duration-default) var(--brand-animation-easing-default);grid-area:1/1;align-items:center;display:flex;scale:1.05}.Primer_Brand__RiverAccordion-module__RiverAccordion__visualsWrapper___Z8Yr6>.Primer_Brand__RiverAccordion-module__RiverAccordion__visual___aIsob>*{border-radius:var(--brand-borderRadius-xlarge);-o-object-fit:contain;object-fit:contain;width:100%;height:auto;display:block;overflow:hidden}.Primer_Brand__RiverAccordion-module__RiverAccordion--variant-gridline___1SmA4 .Primer_Brand__RiverAccordion-module__RiverAccordion__visualsWrapper___Z8Yr6>.Primer_Brand__RiverAccordion-module__RiverAccordion__visual___aIsob>*{border-radius:var(--brand-borderRadius-medium)}.Primer_Brand__RiverAccordion-module__RiverAccordion__visualsWrapper___Z8Yr6>.Primer_Brand__RiverAccordion-module__RiverAccordion__visual___aIsob img,.Primer_Brand__RiverAccordion-module__RiverAccordion__visualsWrapper___Z8Yr6>.Primer_Brand__RiverAccordion-module__RiverAccordion__visual___aIsob picture,.Primer_Brand__RiverAccordion-module__RiverAccordion__visualsWrapper___Z8Yr6>.Primer_Brand__RiverAccordion-module__RiverAccordion__visual___aIsob video{border-radius:inherit;-o-object-fit:contain;object-fit:contain;width:100%;height:auto;display:block}.Primer_Brand__RiverAccordion-module__RiverAccordion__visualsWrapper___Z8Yr6>.Primer_Brand__RiverAccordion-module__RiverAccordion__visual___aIsob>* img,.Primer_Brand__RiverAccordion-module__RiverAccordion__visualsWrapper___Z8Yr6>.Primer_Brand__RiverAccordion-module__RiverAccordion__visual___aIsob>* video{border-radius:inherit;-o-object-fit:cover;object-fit:cover;width:100%;height:100%;display:block}.Primer_Brand__RiverAccordion-module__RiverAccordion--variant-gridline___1SmA4 .Primer_Brand__RiverAccordion-module__RiverAccordion__visualsWrapper___Z8Yr6>.Primer_Brand__RiverAccordion-module__RiverAccordion__visual--has-background___JQ9GB{padding:var(--base-size-32);background:var(--brand-RiverAccordion-visual-background,var(--brand-color-canvas-subtle));justify-content:center;align-items:center;display:flex}.Primer_Brand__RiverAccordion-module__RiverAccordion--variant-gridline___1SmA4 .Primer_Brand__RiverAccordion-module__RiverAccordion__visualsWrapper___Z8Yr6>.Primer_Brand__RiverAccordion-module__RiverAccordion__visual--has-background___JQ9GB>*{border-radius:var(--brand-borderRadius-large);justify-content:center;align-items:center;max-width:100%;height:auto;display:flex}.Primer_Brand__RiverAccordion-module__RiverAccordion--variant-gridline___1SmA4 .Primer_Brand__RiverAccordion-module__RiverAccordion__visualsWrapper___Z8Yr6>.Primer_Brand__RiverAccordion-module__RiverAccordion__visual--has-background___JQ9GB img,.Primer_Brand__RiverAccordion-module__RiverAccordion--variant-gridline___1SmA4 .Primer_Brand__RiverAccordion-module__RiverAccordion__visualsWrapper___Z8Yr6>.Primer_Brand__RiverAccordion-module__RiverAccordion__visual--has-background___JQ9GB picture,.Primer_Brand__RiverAccordion-module__RiverAccordion--variant-gridline___1SmA4 .Primer_Brand__RiverAccordion-module__RiverAccordion__visualsWrapper___Z8Yr6>.Primer_Brand__RiverAccordion-module__RiverAccordion__visual--has-background___JQ9GB video{border-radius:var(--brand-borderRadius-large);max-width:100%;height:100%}@media (width>=48rem){.Primer_Brand__RiverAccordion-module__RiverAccordion--variant-gridline___1SmA4:has(.Primer_Brand__RiverAccordion-module__RiverAccordion__visual--has-background___JQ9GB){grid-template-columns:1fr 1fr;align-items:stretch;gap:0;padding:0}.Primer_Brand__RiverAccordion-module__RiverAccordion--variant-gridline___1SmA4:has(.Primer_Brand__RiverAccordion-module__RiverAccordion__visual--has-background___JQ9GB) .Primer_Brand__RiverAccordion-module__RiverAccordion__accordionContainer___a80ds{padding:var(--brand-RiverAccordion-variant-gridline-spacing-outerBlock) var(--brand-RiverAccordion-variant-gridline-spacing-outerInline);flex-direction:column;justify-content:center;display:flex}.Primer_Brand__RiverAccordion-module__RiverAccordion--variant-gridline___1SmA4.Primer_Brand__RiverAccordion-module__RiverAccordion__align-start___wbXB3:has(.Primer_Brand__RiverAccordion-module__RiverAccordion__visual--has-background___JQ9GB) .Primer_Brand__RiverAccordion-module__RiverAccordion__accordionContainer___a80ds{padding-inline-end:var(--brand-RiverAccordion-variant-gridline-spacing-contentGap)}.Primer_Brand__RiverAccordion-module__RiverAccordion--variant-gridline___1SmA4.Primer_Brand__RiverAccordion-module__RiverAccordion__align-end___Zq4qJ:has(.Primer_Brand__RiverAccordion-module__RiverAccordion__visual--has-background___JQ9GB) .Primer_Brand__RiverAccordion-module__RiverAccordion__accordionContainer___a80ds{padding-inline-start:var(--brand-RiverAccordion-variant-gridline-spacing-contentGap)}.Primer_Brand__RiverAccordion-module__RiverAccordion--variant-gridline___1SmA4:has(.Primer_Brand__RiverAccordion-module__RiverAccordion__visual--has-background___JQ9GB) .Primer_Brand__RiverAccordion-module__RiverAccordion__visualsContainer___IvQlx{margin:0}.Primer_Brand__RiverAccordion-module__RiverAccordion--variant-gridline___1SmA4 .Primer_Brand__RiverAccordion-module__RiverAccordion__visualsWrapper___Z8Yr6:has(.Primer_Brand__RiverAccordion-module__RiverAccordion__visual--has-background___JQ9GB){height:100%}.Primer_Brand__RiverAccordion-module__RiverAccordion--variant-gridline___1SmA4 .Primer_Brand__RiverAccordion-module__RiverAccordion__visualsWrapper___Z8Yr6>.Primer_Brand__RiverAccordion-module__RiverAccordion__visual--has-background___JQ9GB{padding:var(--base-size-64);justify-content:center;align-items:center}.Primer_Brand__RiverAccordion-module__RiverAccordion--variant-gridline___1SmA4 .Primer_Brand__RiverAccordion-module__RiverAccordion__visualsWrapper___Z8Yr6>.Primer_Brand__RiverAccordion-module__RiverAccordion__visual--has-background___JQ9GB>*,.Primer_Brand__RiverAccordion-module__RiverAccordion--variant-gridline___1SmA4 .Primer_Brand__RiverAccordion-module__RiverAccordion__visualsWrapper___Z8Yr6>.Primer_Brand__RiverAccordion-module__RiverAccordion__visual--has-background___JQ9GB img,.Primer_Brand__RiverAccordion-module__RiverAccordion--variant-gridline___1SmA4 .Primer_Brand__RiverAccordion-module__RiverAccordion__visualsWrapper___Z8Yr6>.Primer_Brand__RiverAccordion-module__RiverAccordion__visual--has-background___JQ9GB picture,.Primer_Brand__RiverAccordion-module__RiverAccordion--variant-gridline___1SmA4 .Primer_Brand__RiverAccordion-module__RiverAccordion__visualsWrapper___Z8Yr6>.Primer_Brand__RiverAccordion-module__RiverAccordion__visual--has-background___JQ9GB video{border-radius:var(--brand-borderRadius-large)}}:is(.Primer_Brand__RiverAccordion-module__RiverAccordion___cECsB:has(.Primer_Brand__RiverAccordion-module__RiverAccordion__item--open___YH6K2:first-child) .Primer_Brand__RiverAccordion-module__RiverAccordion__visualsContainer___IvQlx .Primer_Brand__RiverAccordion-module__RiverAccordion__visual___aIsob:first-child,.Primer_Brand__RiverAccordion-module__RiverAccordion___cECsB:has(.Primer_Brand__RiverAccordion-module__RiverAccordion__item--open___YH6K2:nth-child(2)) .Primer_Brand__RiverAccordion-module__RiverAccordion__visualsContainer___IvQlx .Primer_Brand__RiverAccordion-module__RiverAccordion__visual___aIsob:nth-child(2),.Primer_Brand__RiverAccordion-module__RiverAccordion___cECsB:has(.Primer_Brand__RiverAccordion-module__RiverAccordion__item--open___YH6K2:nth-child(3)) .Primer_Brand__RiverAccordion-module__RiverAccordion__visualsContainer___IvQlx .Primer_Brand__RiverAccordion-module__RiverAccordion__visual___aIsob:nth-child(3),.Primer_Brand__RiverAccordion-module__RiverAccordion___cECsB:has(.Primer_Brand__RiverAccordion-module__RiverAccordion__item--open___YH6K2:nth-child(4)) .Primer_Brand__RiverAccordion-module__RiverAccordion__visualsContainer___IvQlx .Primer_Brand__RiverAccordion-module__RiverAccordion__visual___aIsob:nth-child(4),.Primer_Brand__RiverAccordion-module__RiverAccordion___cECsB:has(.Primer_Brand__RiverAccordion-module__RiverAccordion__item--open___YH6K2:nth-child(5)) .Primer_Brand__RiverAccordion-module__RiverAccordion__visualsContainer___IvQlx .Primer_Brand__RiverAccordion-module__RiverAccordion__visual___aIsob:nth-child(5),.Primer_Brand__RiverAccordion-module__RiverAccordion___cECsB:has(.Primer_Brand__RiverAccordion-module__RiverAccordion__item--open___YH6K2:nth-child(6)) .Primer_Brand__RiverAccordion-module__RiverAccordion__visualsContainer___IvQlx .Primer_Brand__RiverAccordion-module__RiverAccordion__visual___aIsob:nth-child(6),.Primer_Brand__RiverAccordion-module__RiverAccordion___cECsB:has(.Primer_Brand__RiverAccordion-module__RiverAccordion__item--open___YH6K2:nth-child(7)) .Primer_Brand__RiverAccordion-module__RiverAccordion__visualsContainer___IvQlx .Primer_Brand__RiverAccordion-module__RiverAccordion__visual___aIsob:nth-child(7),.Primer_Brand__RiverAccordion-module__RiverAccordion___cECsB:has(.Primer_Brand__RiverAccordion-module__RiverAccordion__item--open___YH6K2:nth-child(8)) .Primer_Brand__RiverAccordion-module__RiverAccordion__visualsContainer___IvQlx .Primer_Brand__RiverAccordion-module__RiverAccordion__visual___aIsob:nth-child(8),.Primer_Brand__RiverAccordion-module__RiverAccordion___cECsB:has(.Primer_Brand__RiverAccordion-module__RiverAccordion__item--open___YH6K2:nth-child(9)) .Primer_Brand__RiverAccordion-module__RiverAccordion__visualsContainer___IvQlx .Primer_Brand__RiverAccordion-module__RiverAccordion__visual___aIsob:nth-child(9),.Primer_Brand__RiverAccordion-module__RiverAccordion___cECsB:has(.Primer_Brand__RiverAccordion-module__RiverAccordion__item--open___YH6K2:nth-child(10)) .Primer_Brand__RiverAccordion-module__RiverAccordion__visualsContainer___IvQlx .Primer_Brand__RiverAccordion-module__RiverAccordion__visual___aIsob:nth-child(10),.Primer_Brand__RiverAccordion-module__RiverAccordion___cECsB:not(:has(.Primer_Brand__RiverAccordion-module__RiverAccordion__item--open___YH6K2)) .Primer_Brand__RiverAccordion-module__RiverAccordion__visualsContainer___IvQlx .Primer_Brand__RiverAccordion-module__RiverAccordion__visual___aIsob:first-child){opacity:1;z-index:1;scale:1}.Primer_Brand__RiverAccordion-module__RiverAccordion__accordionContainer___a80ds .Primer_Brand__RiverAccordion-module__RiverAccordion__visual___aIsob{clip:rect(0, 0, 0, 0);word-wrap:normal;border:0;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}.Primer_Brand__RiverAccordion-module__RiverAccordion__item___SheMX{border-bottom:var(--brand-borderWidth-thin) solid var(--brand-color-border-muted);padding-block-start:var(--base-size-32);position:relative}.Primer_Brand__RiverAccordion-module__RiverAccordion__item___SheMX:not(.Primer_Brand__RiverAccordion-module__RiverAccordion__item--open___YH6K2) .Primer_Brand__RiverAccordion-module__RiverAccordion__heading___O56M6{color:var(--brand-color-text-muted)}.Primer_Brand__RiverAccordion-module__RiverAccordion__trigger___1RM50{color:inherit;cursor:pointer;font:inherit;text-align:left;width:100%;padding:0;padding:var(--base-size-4);margin:0;margin:calc(var(--base-size-4) * -1);background:0 0;border:none;justify-content:space-between;align-items:center;display:flex}.Primer_Brand__RiverAccordion-module__RiverAccordion__item--open___YH6K2 .Primer_Brand__RiverAccordion-module__RiverAccordion__trigger___1RM50{cursor:auto;cursor:initial}.Primer_Brand__RiverAccordion-module__RiverAccordion__item___SheMX:not(.Primer_Brand__RiverAccordion-module__RiverAccordion__item--open___YH6K2) .Primer_Brand__RiverAccordion-module__RiverAccordion__trigger___1RM50:after{content:"";width:100%;height:100%;display:block;position:absolute}.Primer_Brand__RiverAccordion-module__RiverAccordion__panel___Y4GUN{transition:grid-template-rows var(--brand-animation-duration-default) var(--brand-animation-easing-default), margin-block-start var(--brand-animation-duration-default) var(--brand-animation-easing-default), padding-block-end var(--brand-animation-duration-default) var(--brand-animation-easing-default);grid-template-rows:0fr;margin-block-start:var(--base-size-32);display:grid;overflow-y:clip}.Primer_Brand__RiverAccordion-module__RiverAccordion__item--open___YH6K2 .Primer_Brand__RiverAccordion-module__RiverAccordion__panel___Y4GUN{grid-template-rows:1fr;margin-block-start:var(--base-size-12);padding-block-end:var(--base-size-32)}.Primer_Brand__RiverAccordion-module__RiverAccordion__content___87sh8{align-items:flex-start;gap:var(--base-size-20);flex-direction:column;min-height:0;display:flex}.Primer_Brand__RiverAccordion-module__RiverAccordion__icon___FMAZH{color:var(--brand-color-text-muted);flex-shrink:0;align-items:center;display:flex}.Primer_Brand__RiverAccordion-module__RiverAccordion__item--open___YH6K2 .Primer_Brand__RiverAccordion-module__RiverAccordion__icon___FMAZH{color:var(--brand-color-text-default)}
@@ -1,11 +1,12 @@
1
- import './RiverAccordion.module-BSoiBgAe.css';var e = {
1
+ import './RiverAccordion.module-nlZZH3O7.css';var e = {
2
2
  RiverAccordion: "Primer_Brand__RiverAccordion-module__RiverAccordion___cECsB",
3
3
  "RiverAccordion__align-start": "Primer_Brand__RiverAccordion-module__RiverAccordion__align-start___wbXB3",
4
4
  "RiverAccordion__align-end": "Primer_Brand__RiverAccordion-module__RiverAccordion__align-end___Zq4qJ",
5
5
  "RiverAccordion--variant-gridline": "Primer_Brand__RiverAccordion-module__RiverAccordion--variant-gridline___1SmA4",
6
6
  RiverAccordion__visualsWrapper: "Primer_Brand__RiverAccordion-module__RiverAccordion__visualsWrapper___Z8Yr6",
7
- RiverAccordion__accordionContainer: "Primer_Brand__RiverAccordion-module__RiverAccordion__accordionContainer___a80ds",
7
+ "RiverAccordion__visual--has-background": "Primer_Brand__RiverAccordion-module__RiverAccordion__visual--has-background___JQ9GB",
8
8
  RiverAccordion__visualsContainer: "Primer_Brand__RiverAccordion-module__RiverAccordion__visualsContainer___IvQlx",
9
+ RiverAccordion__accordionContainer: "Primer_Brand__RiverAccordion-module__RiverAccordion__accordionContainer___a80ds",
9
10
  RiverAccordion__visual: "Primer_Brand__RiverAccordion-module__RiverAccordion__visual___aIsob",
10
11
  "RiverAccordion__item--open": "Primer_Brand__RiverAccordion-module__RiverAccordion__item--open___YH6K2",
11
12
  RiverAccordion__item: "Primer_Brand__RiverAccordion-module__RiverAccordion__item___SheMX",
@@ -1 +1 @@
1
- {"version":3,"file":"RiverAccordion.module.js","names":[],"sources":["../../../src/river/RiverAccordion/RiverAccordion.module.css"],"sourcesContent":[".RiverAccordion {\n display: grid;\n grid-template-columns: 1fr;\n grid-template-rows: auto auto;\n grid-template-areas:\n 'visual'\n 'accordion';\n gap: 0;\n position: relative;\n}\n\n@media (min-width: 48rem) {\n .RiverAccordion {\n --gap-width: var(--brand-Grid-spacing-column-gap);\n --column-and-gap-width: calc((100% + var(--gap-width)) / 12);\n\n --4-grid-columns: calc(4 * var(--column-and-gap-width));\n --7-grid-columns-minus-last-gap: calc((7 * var(--column-and-gap-width)) - var(--gap-width));\n\n grid-template-rows: auto;\n gap: var(--column-and-gap-width);\n }\n\n .RiverAccordion__align-start {\n grid-template-columns: var(--4-grid-columns) var(--7-grid-columns-minus-last-gap);\n grid-template-areas: 'accordion visual';\n }\n\n .RiverAccordion__align-end {\n grid-template-columns: var(--7-grid-columns-minus-last-gap) var(--4-grid-columns);\n grid-template-areas: 'visual accordion';\n }\n}\n\n/* Gridline variant */\n\n.RiverAccordion--variant-gridline {\n position: relative;\n padding-inline: var(--brand-RiverAccordion-variant-gridline-spacing-outerInline);\n padding-block: var(--brand-RiverAccordion-variant-gridline-spacing-outerBlock);\n}\n\n@media (min-width: 48rem) {\n .RiverAccordion--variant-gridline {\n --gap-width: var(--brand-RiverAccordion-variant-gridline-spacing-contentGap);\n --half-column: calc(50% - var(--gap-width) / 2);\n\n gap: var(--gap-width);\n align-items: center;\n }\n\n .RiverAccordion--variant-gridline.RiverAccordion__align-start {\n grid-template-columns: var(--half-column) var(--half-column);\n grid-template-areas: 'accordion visual';\n }\n\n .RiverAccordion--variant-gridline.RiverAccordion__align-end {\n grid-template-columns: var(--half-column) var(--half-column);\n grid-template-areas: 'visual accordion';\n }\n}\n\n@media (min-width: 80rem) {\n .RiverAccordion--variant-gridline {\n border-inline: var(--brand-borderWidth-thin) solid var(--brand-color-border-muted);\n }\n}\n\n.RiverAccordion--variant-gridline .RiverAccordion__visualsWrapper {\n border-radius: var(--brand-borderRadius-medium);\n}\n\n.RiverAccordion__accordionContainer {\n grid-area: accordion;\n}\n\n.RiverAccordion__visualsContainer {\n grid-area: visual;\n}\n\n.RiverAccordion__visualsWrapper {\n width: 100%;\n overflow: hidden;\n border-radius: var(--brand-borderRadius-xlarge);\n display: grid;\n grid-template-columns: subgrid;\n grid-template-rows: subgrid;\n}\n\n.RiverAccordion__visualsWrapper > .RiverAccordion__visual {\n grid-column: 1;\n grid-row: 1;\n width: 100%;\n height: 100%;\n opacity: 0;\n scale: 1.05;\n transition: opacity var(--brand-animation-duration-default) var(--brand-animation-easing-default),\n scale var(--brand-animation-duration-default) var(--brand-animation-easing-default);\n}\n\n.RiverAccordion__visualsWrapper > .RiverAccordion__visual > * {\n width: 100%;\n object-fit: contain;\n}\n\n/* Show the visual when the corresponding accordion item is open */\n.RiverAccordion:has(.RiverAccordion__item--open:nth-child(1)) .RiverAccordion__visualsContainer .RiverAccordion__visual:nth-child(1),\n.RiverAccordion:has(.RiverAccordion__item--open:nth-child(2)) .RiverAccordion__visualsContainer .RiverAccordion__visual:nth-child(2),\n.RiverAccordion:has(.RiverAccordion__item--open:nth-child(3)) .RiverAccordion__visualsContainer .RiverAccordion__visual:nth-child(3),\n.RiverAccordion:has(.RiverAccordion__item--open:nth-child(4)) .RiverAccordion__visualsContainer .RiverAccordion__visual:nth-child(4),\n.RiverAccordion:has(.RiverAccordion__item--open:nth-child(5)) .RiverAccordion__visualsContainer .RiverAccordion__visual:nth-child(5),\n.RiverAccordion:has(.RiverAccordion__item--open:nth-child(6)) .RiverAccordion__visualsContainer .RiverAccordion__visual:nth-child(6),\n.RiverAccordion:has(.RiverAccordion__item--open:nth-child(7)) .RiverAccordion__visualsContainer .RiverAccordion__visual:nth-child(7),\n.RiverAccordion:has(.RiverAccordion__item--open:nth-child(8)) .RiverAccordion__visualsContainer .RiverAccordion__visual:nth-child(8),\n.RiverAccordion:has(.RiverAccordion__item--open:nth-child(9)) .RiverAccordion__visualsContainer .RiverAccordion__visual:nth-child(9),\n.RiverAccordion:has(.RiverAccordion__item--open:nth-child(10)) .RiverAccordion__visualsContainer .RiverAccordion__visual:nth-child(10),\n/* Just in case all accordions are somehow closed, show the first visual */\n.RiverAccordion:not(:has(.RiverAccordion__item--open)) .RiverAccordion__visualsContainer .RiverAccordion__visual:nth-child(1) {\n opacity: 1;\n scale: 1;\n z-index: 1;\n}\n\n/* Visually hide visuals inside the accordion */\n.RiverAccordion__accordionContainer .RiverAccordion__visual {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n word-wrap: normal;\n border: 0;\n}\n\n.RiverAccordion__item {\n position: relative;\n padding-block-start: var(--base-size-32);\n border-bottom: var(--brand-borderWidth-thin) solid var(--brand-color-border-muted);\n}\n\n.RiverAccordion__item:not(.RiverAccordion__item--open) .RiverAccordion__heading {\n color: var(--brand-color-text-muted);\n}\n\n.RiverAccordion__trigger {\n background: none;\n border: none;\n color: inherit;\n cursor: pointer;\n font: inherit;\n margin: 0;\n padding: 0;\n text-align: left;\n width: 100%;\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: var(--base-size-4);\n margin: calc(var(--base-size-4) * -1);\n}\n\n.RiverAccordion__item--open .RiverAccordion__trigger {\n cursor: initial;\n}\n\n.RiverAccordion__item:not(.RiverAccordion__item--open) .RiverAccordion__trigger::after {\n content: '';\n position: absolute;\n display: block;\n width: 100%;\n height: 100%;\n}\n\n.RiverAccordion__panel {\n display: grid;\n grid-template-rows: 0fr;\n transition: grid-template-rows var(--brand-animation-duration-default) var(--brand-animation-easing-default),\n margin-block-start var(--brand-animation-duration-default) var(--brand-animation-easing-default),\n padding-block-end var(--brand-animation-duration-default) var(--brand-animation-easing-default);\n margin-block-start: var(--base-size-32);\n overflow-y: clip;\n}\n\n.RiverAccordion__item--open .RiverAccordion__panel {\n margin-block-start: var(--base-size-12);\n padding-block-end: var(--base-size-32);\n grid-template-rows: 1fr;\n}\n\n.RiverAccordion__content {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n min-height: 0;\n gap: var(--base-size-20);\n}\n\n.RiverAccordion__icon {\n flex-shrink: 0;\n display: flex;\n align-items: center;\n color: var(--brand-color-text-muted);\n}\n\n.RiverAccordion__item--open .RiverAccordion__icon {\n color: var(--brand-color-text-default);\n}\n"],"mappings":""}
1
+ {"version":3,"file":"RiverAccordion.module.js","names":[],"sources":["../../../src/river/RiverAccordion/RiverAccordion.module.css"],"sourcesContent":[".RiverAccordion {\n display: grid;\n grid-template-columns: 1fr;\n grid-template-rows: auto auto;\n grid-template-areas:\n 'visual'\n 'accordion';\n gap: 0;\n position: relative;\n}\n\n@media (min-width: 48rem) {\n .RiverAccordion {\n --gap-width: var(--brand-Grid-spacing-column-gap);\n --column-and-gap-width: calc((100% + var(--gap-width)) / 12);\n\n --4-grid-columns: calc(4 * var(--column-and-gap-width));\n --7-grid-columns-minus-last-gap: calc((7 * var(--column-and-gap-width)) - var(--gap-width));\n\n grid-template-rows: auto;\n gap: var(--column-and-gap-width);\n }\n\n .RiverAccordion__align-start {\n grid-template-columns: var(--4-grid-columns) var(--7-grid-columns-minus-last-gap);\n grid-template-areas: 'accordion visual';\n }\n\n .RiverAccordion__align-end {\n grid-template-columns: var(--7-grid-columns-minus-last-gap) var(--4-grid-columns);\n grid-template-areas: 'visual accordion';\n }\n}\n\n/* Gridline variant */\n\n.RiverAccordion--variant-gridline {\n position: relative;\n padding-inline: var(--brand-RiverAccordion-variant-gridline-spacing-outerInline);\n padding-block: var(--brand-RiverAccordion-variant-gridline-spacing-outerBlock);\n}\n\n@media (min-width: 48rem) {\n .RiverAccordion--variant-gridline {\n --gap-width: var(--brand-RiverAccordion-variant-gridline-spacing-contentGap);\n --half-column: calc(50% - var(--gap-width) / 2);\n\n gap: var(--gap-width);\n align-items: center;\n }\n\n .RiverAccordion--variant-gridline.RiverAccordion__align-start {\n grid-template-columns: var(--half-column) var(--half-column);\n grid-template-areas: 'accordion visual';\n }\n\n .RiverAccordion--variant-gridline.RiverAccordion__align-end {\n grid-template-columns: var(--half-column) var(--half-column);\n grid-template-areas: 'visual accordion';\n }\n}\n\n@media (min-width: 80rem) {\n .RiverAccordion--variant-gridline {\n border-inline: var(--brand-borderWidth-thin) solid var(--brand-color-border-muted);\n }\n}\n\n.RiverAccordion--variant-gridline .RiverAccordion__visualsWrapper {\n border-radius: var(--brand-borderRadius-medium);\n}\n\n.RiverAccordion--variant-gridline:has(.RiverAccordion__visual--has-background) .RiverAccordion__visualsContainer {\n margin-inline: calc(-1 * var(--brand-RiverAccordion-variant-gridline-spacing-outerInline));\n margin-block-start: calc(-1 * var(--brand-RiverAccordion-variant-gridline-spacing-outerBlock));\n}\n\n.RiverAccordion--variant-gridline .RiverAccordion__visualsWrapper:has(.RiverAccordion__visual--has-background) {\n border-radius: 0;\n}\n\n.RiverAccordion__accordionContainer {\n grid-area: accordion;\n}\n\n.RiverAccordion__visualsContainer {\n grid-area: visual;\n}\n\n.RiverAccordion__visualsWrapper {\n width: 100%;\n overflow: hidden;\n border-radius: var(--brand-borderRadius-xlarge);\n display: grid;\n grid-template-columns: subgrid;\n grid-template-rows: subgrid;\n}\n\n.RiverAccordion__visualsWrapper > .RiverAccordion__visual {\n grid-column: 1;\n grid-row: 1;\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n opacity: 0;\n scale: 1.05;\n transition: opacity var(--brand-animation-duration-default) var(--brand-animation-easing-default),\n scale var(--brand-animation-duration-default) var(--brand-animation-easing-default);\n}\n\n.RiverAccordion__visualsWrapper > .RiverAccordion__visual > * {\n display: block;\n width: 100%;\n height: auto;\n overflow: hidden;\n border-radius: var(--brand-borderRadius-xlarge);\n object-fit: contain;\n}\n\n.RiverAccordion--variant-gridline .RiverAccordion__visualsWrapper > .RiverAccordion__visual > * {\n border-radius: var(--brand-borderRadius-medium);\n}\n\n.RiverAccordion__visualsWrapper > .RiverAccordion__visual img,\n.RiverAccordion__visualsWrapper > .RiverAccordion__visual picture,\n.RiverAccordion__visualsWrapper > .RiverAccordion__visual video {\n display: block;\n width: 100%;\n height: auto;\n border-radius: inherit;\n object-fit: contain;\n}\n\n.RiverAccordion__visualsWrapper > .RiverAccordion__visual > * img,\n.RiverAccordion__visualsWrapper > .RiverAccordion__visual > * video {\n display: block;\n width: 100%;\n height: 100%;\n border-radius: inherit;\n object-fit: cover;\n}\n\n.RiverAccordion--variant-gridline .RiverAccordion__visualsWrapper > .RiverAccordion__visual--has-background {\n display: flex;\n align-items: center;\n justify-content: center;\n padding: var(--base-size-32);\n background: var(--brand-RiverAccordion-visual-background, var(--brand-color-canvas-subtle));\n}\n\n.RiverAccordion--variant-gridline .RiverAccordion__visualsWrapper > .RiverAccordion__visual--has-background > * {\n display: flex;\n align-items: center;\n justify-content: center;\n max-width: 100%;\n height: auto;\n border-radius: var(--brand-borderRadius-large);\n}\n\n.RiverAccordion--variant-gridline .RiverAccordion__visualsWrapper > .RiverAccordion__visual--has-background img,\n.RiverAccordion--variant-gridline .RiverAccordion__visualsWrapper > .RiverAccordion__visual--has-background picture,\n.RiverAccordion--variant-gridline .RiverAccordion__visualsWrapper > .RiverAccordion__visual--has-background video {\n max-width: 100%;\n height: 100%;\n border-radius: var(--brand-borderRadius-large);\n}\n\n@media (min-width: 48rem) {\n .RiverAccordion--variant-gridline:has(.RiverAccordion__visual--has-background) {\n padding: 0;\n gap: 0;\n align-items: stretch;\n grid-template-columns: 1fr 1fr;\n }\n\n .RiverAccordion--variant-gridline:has(.RiverAccordion__visual--has-background) .RiverAccordion__accordionContainer {\n display: flex;\n flex-direction: column;\n justify-content: center;\n padding: var(--brand-RiverAccordion-variant-gridline-spacing-outerBlock)\n var(--brand-RiverAccordion-variant-gridline-spacing-outerInline);\n }\n\n .RiverAccordion--variant-gridline.RiverAccordion__align-start:has(.RiverAccordion__visual--has-background)\n .RiverAccordion__accordionContainer {\n padding-inline-end: var(--brand-RiverAccordion-variant-gridline-spacing-contentGap);\n }\n\n .RiverAccordion--variant-gridline.RiverAccordion__align-end:has(.RiverAccordion__visual--has-background)\n .RiverAccordion__accordionContainer {\n padding-inline-start: var(--brand-RiverAccordion-variant-gridline-spacing-contentGap);\n }\n\n .RiverAccordion--variant-gridline:has(.RiverAccordion__visual--has-background) .RiverAccordion__visualsContainer {\n margin: 0;\n }\n\n .RiverAccordion--variant-gridline .RiverAccordion__visualsWrapper:has(.RiverAccordion__visual--has-background) {\n height: 100%;\n }\n\n .RiverAccordion--variant-gridline .RiverAccordion__visualsWrapper > .RiverAccordion__visual--has-background {\n align-items: center;\n justify-content: center;\n padding: var(--base-size-64);\n }\n\n .RiverAccordion--variant-gridline .RiverAccordion__visualsWrapper > .RiverAccordion__visual--has-background > *,\n .RiverAccordion--variant-gridline .RiverAccordion__visualsWrapper > .RiverAccordion__visual--has-background img,\n .RiverAccordion--variant-gridline .RiverAccordion__visualsWrapper > .RiverAccordion__visual--has-background picture,\n .RiverAccordion--variant-gridline .RiverAccordion__visualsWrapper > .RiverAccordion__visual--has-background video {\n border-radius: var(--brand-borderRadius-large);\n }\n}\n\n/* Show the visual when the corresponding accordion item is open */\n.RiverAccordion:has(.RiverAccordion__item--open:nth-child(1)) .RiverAccordion__visualsContainer .RiverAccordion__visual:nth-child(1),\n.RiverAccordion:has(.RiverAccordion__item--open:nth-child(2)) .RiverAccordion__visualsContainer .RiverAccordion__visual:nth-child(2),\n.RiverAccordion:has(.RiverAccordion__item--open:nth-child(3)) .RiverAccordion__visualsContainer .RiverAccordion__visual:nth-child(3),\n.RiverAccordion:has(.RiverAccordion__item--open:nth-child(4)) .RiverAccordion__visualsContainer .RiverAccordion__visual:nth-child(4),\n.RiverAccordion:has(.RiverAccordion__item--open:nth-child(5)) .RiverAccordion__visualsContainer .RiverAccordion__visual:nth-child(5),\n.RiverAccordion:has(.RiverAccordion__item--open:nth-child(6)) .RiverAccordion__visualsContainer .RiverAccordion__visual:nth-child(6),\n.RiverAccordion:has(.RiverAccordion__item--open:nth-child(7)) .RiverAccordion__visualsContainer .RiverAccordion__visual:nth-child(7),\n.RiverAccordion:has(.RiverAccordion__item--open:nth-child(8)) .RiverAccordion__visualsContainer .RiverAccordion__visual:nth-child(8),\n.RiverAccordion:has(.RiverAccordion__item--open:nth-child(9)) .RiverAccordion__visualsContainer .RiverAccordion__visual:nth-child(9),\n.RiverAccordion:has(.RiverAccordion__item--open:nth-child(10)) .RiverAccordion__visualsContainer .RiverAccordion__visual:nth-child(10),\n/* Just in case all accordions are somehow closed, show the first visual */\n.RiverAccordion:not(:has(.RiverAccordion__item--open)) .RiverAccordion__visualsContainer .RiverAccordion__visual:nth-child(1) {\n opacity: 1;\n scale: 1;\n z-index: 1;\n}\n\n/* Visually hide visuals inside the accordion */\n.RiverAccordion__accordionContainer .RiverAccordion__visual {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n word-wrap: normal;\n border: 0;\n}\n\n.RiverAccordion__item {\n position: relative;\n padding-block-start: var(--base-size-32);\n border-bottom: var(--brand-borderWidth-thin) solid var(--brand-color-border-muted);\n}\n\n.RiverAccordion__item:not(.RiverAccordion__item--open) .RiverAccordion__heading {\n color: var(--brand-color-text-muted);\n}\n\n.RiverAccordion__trigger {\n background: none;\n border: none;\n color: inherit;\n cursor: pointer;\n font: inherit;\n margin: 0;\n padding: 0;\n text-align: left;\n width: 100%;\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: var(--base-size-4);\n margin: calc(var(--base-size-4) * -1);\n}\n\n.RiverAccordion__item--open .RiverAccordion__trigger {\n cursor: initial;\n}\n\n.RiverAccordion__item:not(.RiverAccordion__item--open) .RiverAccordion__trigger::after {\n content: '';\n position: absolute;\n display: block;\n width: 100%;\n height: 100%;\n}\n\n.RiverAccordion__panel {\n display: grid;\n grid-template-rows: 0fr;\n transition: grid-template-rows var(--brand-animation-duration-default) var(--brand-animation-easing-default),\n margin-block-start var(--brand-animation-duration-default) var(--brand-animation-easing-default),\n padding-block-end var(--brand-animation-duration-default) var(--brand-animation-easing-default);\n margin-block-start: var(--base-size-32);\n overflow-y: clip;\n}\n\n.RiverAccordion__item--open .RiverAccordion__panel {\n margin-block-start: var(--base-size-12);\n padding-block-end: var(--base-size-32);\n grid-template-rows: 1fr;\n}\n\n.RiverAccordion__content {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n min-height: 0;\n gap: var(--base-size-20);\n}\n\n.RiverAccordion__icon {\n flex-shrink: 0;\n display: flex;\n align-items: center;\n color: var(--brand-color-text-muted);\n}\n\n.RiverAccordion__item--open .RiverAccordion__icon {\n color: var(--brand-color-text-default);\n}\n"],"mappings":""}
@@ -4,7 +4,7 @@ export type HeroAlign = (typeof HeroAlignOptions)[number];
4
4
  export declare const HeroVariantOptions: readonly ["default", "gridline", "gridline-expressive"];
5
5
  export type HeroVariant = (typeof HeroVariantOptions)[number];
6
6
  export declare const heroMediaPositions: readonly ["block-end", "block-end-padded", "inline-start", "inline-end", "inline-end-padded", "inline-start-padded"];
7
- export declare const heroMediaInlinePositions: ("inline-end" | "inline-start" | "block-end" | "block-end-padded" | "inline-end-padded" | "inline-start-padded")[];
7
+ export declare const heroMediaInlinePositions: ("block-end" | "block-end-padded" | "inline-start" | "inline-end" | "inline-end-padded" | "inline-start-padded")[];
8
8
  export type HeroMediaPositions = (typeof heroMediaPositions)[number];
9
9
  export type HeroMediaInlinePositions = (typeof heroMediaInlinePositions)[number];
10
10
  type HeroContextType = {
@@ -0,0 +1,76 @@
1
+ import React from 'react';
2
+ import { type HeadingProps, type TextProps } from '..';
3
+ import type { BaseProps } from '../component-helpers';
4
+ /**
5
+ * Design tokens
6
+ */
7
+ import '@primer/brand-primitives/lib/design-tokens/css/tokens/functional/components/media-playlist/colors-with-modes.css';
8
+ export type MediaPlaylistProps = React.PropsWithChildren<{
9
+ /**
10
+ * The index of the item to be selected by default. This is ignored if `selectedIndex` is provided.
11
+ */
12
+ defaultSelectedIndex?: number;
13
+ /**
14
+ * The index of the currently selected item. This makes the component controlled.
15
+ */
16
+ selectedIndex?: number;
17
+ /**
18
+ * Callback fired when the selected index changes.
19
+ */
20
+ onChange?: (selectedIndex: number) => void;
21
+ 'data-testid'?: string;
22
+ }> & Omit<React.HTMLAttributes<HTMLDivElement>, 'onChange'>;
23
+ export type MediaPlaylistHeadingProps = React.PropsWithChildren<{
24
+ as?: Exclude<HeadingProps['as'], 'h1'>;
25
+ }> & BaseProps<HTMLDivElement>;
26
+ type MediaPlaylistHeadingInternalProps = {
27
+ activeIndex?: number | null;
28
+ itemCount?: number;
29
+ };
30
+ declare function MediaPlaylistHeading({ activeIndex, as, children, className, id, itemCount, ...props }: MediaPlaylistHeadingProps & MediaPlaylistHeadingInternalProps): import("react/jsx-runtime").JSX.Element;
31
+ export type MediaPlaylistItemProps = React.PropsWithChildren<{
32
+ /**
33
+ * An optional thumbnail to be shown in the playlist for this item.
34
+ */
35
+ thumbnail?: React.ReactNode;
36
+ } & BaseProps<HTMLDivElement>>;
37
+ declare function MediaPlaylistItem({ children }: MediaPlaylistItemProps): import("react/jsx-runtime").JSX.Element;
38
+ export type MediaPlaylistItemHeadingProps = Omit<TextProps, 'as' | 'children' | 'title'> & {
39
+ children?: React.ReactNode;
40
+ description?: React.ReactNode;
41
+ title?: React.ReactNode;
42
+ };
43
+ declare function MediaPlaylistItemHeading({ children, className, description, font, size, title, variant, weight, ...props }: MediaPlaylistItemHeadingProps): import("react/jsx-runtime").JSX.Element;
44
+ export type MediaPlaylistItemContentProps = React.HTMLAttributes<HTMLDivElement>;
45
+ declare function MediaPlaylistItemContent({ children, className, ...props }: MediaPlaylistItemContentProps): import("react/jsx-runtime").JSX.Element;
46
+ export type MediaPlaylistItemMediaProps = React.HTMLAttributes<HTMLDivElement>;
47
+ /**
48
+ * Use MediaPlaylist to pair media playback with an itemized, thumbnail-backed playlist.
49
+ */
50
+ export declare const MediaPlaylist: React.ForwardRefExoticComponent<{
51
+ /**
52
+ * The index of the item to be selected by default. This is ignored if `selectedIndex` is provided.
53
+ */
54
+ defaultSelectedIndex?: number;
55
+ /**
56
+ * The index of the currently selected item. This makes the component controlled.
57
+ */
58
+ selectedIndex?: number;
59
+ /**
60
+ * Callback fired when the selected index changes.
61
+ */
62
+ onChange?: (selectedIndex: number) => void;
63
+ 'data-testid'?: string;
64
+ } & {
65
+ children?: React.ReactNode | undefined;
66
+ } & Omit<React.HTMLAttributes<HTMLDivElement>, "onChange"> & React.RefAttributes<HTMLDivElement>> & {
67
+ Heading: typeof MediaPlaylistHeading;
68
+ Item: typeof MediaPlaylistItem;
69
+ ItemHeading: typeof MediaPlaylistItemHeading;
70
+ ItemContent: typeof MediaPlaylistItemContent;
71
+ ItemMedia: React.ForwardRefExoticComponent<MediaPlaylistItemMediaProps & React.RefAttributes<HTMLDivElement>>;
72
+ testIds: {
73
+ root: string;
74
+ };
75
+ };
76
+ export {};
@@ -0,0 +1 @@
1
+ export * from './MediaPlaylist';
@@ -0,0 +1,83 @@
1
+ import React from 'react';
2
+ import type { PaginationPageType } from '../Pagination/model';
3
+ type UseMediaPlaylistProps = {
4
+ children: React.ReactNode;
5
+ components: MediaPlaylistComponentTypes;
6
+ defaultSelectedIndex: number;
7
+ onChange?: (selectedIndex: number) => void;
8
+ selectedIndex?: number;
9
+ };
10
+ /**
11
+ * Internal only hook used by MediaPlaylist to manage state and behavior.
12
+ * @private
13
+ * @internal
14
+ */
15
+ export type MediaPlaylistComponentTypes = {
16
+ Heading: React.ElementType;
17
+ Item: React.ElementType;
18
+ ItemHeading: React.ElementType;
19
+ ItemContent: React.ElementType;
20
+ ItemMedia: React.ElementType;
21
+ };
22
+ type MediaPlaylistHeadingChildProps = {
23
+ activeIndex?: number | null;
24
+ id?: string;
25
+ itemCount?: number;
26
+ };
27
+ type MediaPlaylistItemChildProps = React.PropsWithChildren<Record<string, unknown>>;
28
+ type MediaPlaylistItemChild = React.ReactElement<MediaPlaylistItemChildProps>;
29
+ type MediaPlaylistItemData = {
30
+ className?: string;
31
+ content: MediaPlaylistItemChild;
32
+ heading: MediaPlaylistItemChild;
33
+ media: MediaPlaylistItemChild;
34
+ thumbnail?: React.ReactNode;
35
+ };
36
+ /**
37
+ * Internal only hook used by MediaPlaylist to manage state and behavior.
38
+ * @private
39
+ * @internal
40
+ */
41
+ export declare function useMediaPlaylist({ children, components, defaultSelectedIndex, onChange, selectedIndex, }: UseMediaPlaylistProps): {
42
+ activeIndex: number | null;
43
+ currentItemPage: number;
44
+ getPaginationAttributes: (pageNumber: number, page: PaginationPageType) => {
45
+ [key: string]: string;
46
+ };
47
+ getTabListProps: (props: {
48
+ label: string;
49
+ labelledBy?: never;
50
+ } | {
51
+ labelledBy: string;
52
+ label?: never;
53
+ }) => {
54
+ role: "tablist";
55
+ 'aria-orientation': "horizontal" | "vertical";
56
+ };
57
+ getTabPanelProps: (id: string) => {
58
+ role: "tabpanel";
59
+ id: `tabs-${string}-panel-${string}`;
60
+ 'aria-labelledby': `tabs-${string}-tab-${string}`;
61
+ hidden: boolean;
62
+ tabIndex: 0;
63
+ };
64
+ getTabProps: <T extends HTMLElement = HTMLElement>(id: string, externalRef?: React.Ref<T>) => {
65
+ role: "tab";
66
+ id: `tabs-${string}-tab-${string}`;
67
+ 'aria-controls': `tabs-${string}-panel-${string}`;
68
+ 'aria-selected': boolean;
69
+ tabIndex: 0 | -1;
70
+ onClick: () => void;
71
+ onKeyDown: (event: React.KeyboardEvent) => void;
72
+ onFocus: () => void;
73
+ ref: (element: HTMLElement | null) => void;
74
+ };
75
+ handlePageChange: (event: React.MouseEvent, page: number) => void;
76
+ hasOverflowItems: boolean;
77
+ headingChild: React.ReactElement<MediaPlaylistHeadingChildProps, string | React.JSXElementConstructor<any>> | null;
78
+ isItemSelected: (index: number) => boolean;
79
+ items: MediaPlaylistItemData[];
80
+ setItemRef: (index: number, element: HTMLDivElement | null) => void;
81
+ tabListRef: React.RefObject<HTMLDivElement | null>;
82
+ };
83
+ export {};
@@ -1,14 +1,11 @@
1
1
  import React from 'react';
2
- /**
3
- * Design tokens
4
- */
5
- import '@primer/brand-primitives/lib/design-tokens/css/tokens/functional/components/pagination/colors-with-modes.css';
2
+ import { PaginationPageType } from './model';
6
3
  export type PaginationProps = {
7
4
  pageCount: number;
8
5
  currentPage: number;
9
6
  onPageChange?: (e: React.MouseEvent, n: number) => void;
10
7
  hrefBuilder?: (n: number) => string;
11
- pageAttributesBuilder?: (n: number) => {
8
+ pageAttributesBuilder?: (n: number, page: PaginationPageType) => {
12
9
  [attributeName: string]: string;
13
10
  };
14
11
  marginPageCount?: number;
@@ -1,8 +1,8 @@
1
- export type PageType = {
1
+ export type PaginationPageType = {
2
2
  type: 'PREV' | 'NEXT' | 'NUM' | 'BREAK';
3
3
  num: number;
4
4
  disabled?: boolean;
5
5
  selected?: boolean;
6
6
  precedesBreak?: boolean;
7
7
  };
8
- export declare function buildPaginationModel(pageCount: number, currentPage: number, showPages: boolean, marginPageCount: number, surroundingPageCount: number): PageType[];
8
+ export declare function buildPaginationModel(pageCount: number, currentPage: number, showPages: boolean, marginPageCount: number, surroundingPageCount: number): PaginationPageType[];