@primer/react-brand 0.72.0-rc.f8b72452 → 0.72.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 (506) hide show
  1. package/docs/components/ButtonGroup/react.md +29 -8
  2. package/docs/components/Hero/react.md +82 -18
  3. package/docs/components/River/react.md +46 -13
  4. package/docs/components/index.md +1 -1
  5. package/docs/getting-started/index.md +9 -3
  6. package/docs/index.md +3 -3
  7. package/esm/ActionMenu/ActionMenu.d.ts +1 -1
  8. package/esm/ActionMenu/ActionMenu.d.ts.map +1 -1
  9. package/esm/ActionMenu/ActionMenu.js +60 -60
  10. package/esm/ActionMenu/ActionMenu.js.map +1 -1
  11. package/esm/AnchorNav/AnchorNav.js +20 -20
  12. package/esm/Avatar/Avatar.module-DUQdD7On.css +1 -0
  13. package/esm/Avatar/Avatar.module.js +1 -1
  14. package/esm/Avatar/Avatar.module.js.map +1 -1
  15. package/esm/BreakoutBanner/{BreakoutBanner.module-DGBSJFNJ.css → BreakoutBanner.module-gfmzcUSU.css} +1 -1
  16. package/esm/BreakoutBanner/BreakoutBanner.module.js +1 -1
  17. package/esm/BreakoutBanner/BreakoutBanner.module.js.map +1 -1
  18. package/esm/ButtonGroup/ButtonGroup.d.ts +3 -1
  19. package/esm/ButtonGroup/ButtonGroup.d.ts.map +1 -1
  20. package/esm/ButtonGroup/ButtonGroup.js +24 -16
  21. package/esm/ButtonGroup/ButtonGroup.js.map +1 -1
  22. package/esm/CTABanner/CTABanner.js +6 -6
  23. package/esm/CTABanner/CTABanner.module-CDLOww8c.css +1 -0
  24. package/esm/CTABanner/CTABanner.module.js +1 -1
  25. package/esm/CTABanner/CTABanner.module.js.map +1 -1
  26. package/esm/Card/Card.js +5 -5
  27. package/esm/EyebrowBanner/EyebrowBanner.module-DYeTmaU9.css +1 -0
  28. package/esm/EyebrowBanner/EyebrowBanner.module.js +1 -1
  29. package/esm/EyebrowBanner/EyebrowBanner.module.js.map +1 -1
  30. package/esm/Hero/Hero.d.ts +17 -4
  31. package/esm/Hero/Hero.d.ts.map +1 -1
  32. package/esm/Hero/Hero.js +103 -98
  33. package/esm/Hero/Hero.js.map +1 -1
  34. package/esm/Hero/Hero.module-BfrAFYlo.css +1 -0
  35. package/esm/Hero/Hero.module.js +8 -5
  36. package/esm/Hero/Hero.module.js.map +1 -1
  37. package/esm/Hero/HeroContext.d.ts +7 -5
  38. package/esm/Hero/HeroContext.d.ts.map +1 -1
  39. package/esm/Hero/HeroContext.js +3 -9
  40. package/esm/Hero/HeroContext.js.map +1 -1
  41. package/esm/Hero/sub-components/HeroButtonGroup.d.ts +5 -0
  42. package/esm/Hero/sub-components/HeroButtonGroup.d.ts.map +1 -0
  43. package/esm/Hero/sub-components/HeroButtonGroup.js +28 -0
  44. package/esm/Hero/sub-components/HeroButtonGroup.js.map +1 -0
  45. package/esm/Hero/sub-components/HeroImage.d.ts +7 -4
  46. package/esm/Hero/sub-components/HeroImage.d.ts.map +1 -1
  47. package/esm/Hero/sub-components/HeroImage.js +6 -6
  48. package/esm/Hero/sub-components/HeroImage.js.map +1 -1
  49. package/esm/Hero/sub-components/HeroVideo.d.ts +16 -4
  50. package/esm/Hero/sub-components/HeroVideo.d.ts.map +1 -1
  51. package/esm/Hero/sub-components/HeroVideo.js +15 -15
  52. package/esm/Hero/sub-components/HeroVideo.js.map +1 -1
  53. package/esm/Hero/sub-components/index.d.ts +2 -0
  54. package/esm/Hero/sub-components/index.d.ts.map +1 -1
  55. package/esm/Link/Link.js +5 -5
  56. package/esm/LogoSuite/LogoSuite.js +11 -11
  57. package/esm/LogoSuite/LogoSuite.module-BCbX-lfy.css +1 -0
  58. package/esm/LogoSuite/LogoSuite.module.js +1 -1
  59. package/esm/LogoSuite/LogoSuite.module.js.map +1 -1
  60. package/esm/MinimalFooter/MinimalFooter.js +6 -6
  61. package/esm/MinimalFooter/{MinimalFooter.module-DPMYigso.css → MinimalFooter.module-Cl2g38SO.css} +1 -1
  62. package/esm/MinimalFooter/MinimalFooter.module.js +1 -1
  63. package/esm/MinimalFooter/MinimalFooter.module.js.map +1 -1
  64. package/esm/PricingOptions/PricingOptions.js +18 -18
  65. package/esm/PricingOptions/{PricingOptions.module-Cm3Oq9u6.css → PricingOptions.module-CgPKaZAm.css} +1 -1
  66. package/esm/PricingOptions/PricingOptions.module.js +1 -1
  67. package/esm/PricingOptions/PricingOptions.module.js.map +1 -1
  68. package/esm/SectionIntro/SectionIntro.module-BbIW9pPO.css +1 -0
  69. package/esm/SectionIntro/SectionIntro.module.js +1 -1
  70. package/esm/SectionIntro/SectionIntro.module.js.map +1 -1
  71. package/esm/Statistic/Statistic.d.ts.map +1 -1
  72. package/esm/Statistic/Statistic.js +1 -1
  73. package/esm/Statistic/Statistic.js.map +1 -1
  74. package/esm/Statistic/{Statistic.module-Dqb6n1GX.css → Statistic.module-DvdiSbXk.css} +1 -1
  75. package/esm/Statistic/Statistic.module.js +2 -1
  76. package/esm/Statistic/Statistic.module.js.map +1 -1
  77. package/esm/SubNav/SubNav.js +30 -30
  78. package/esm/SubdomainNavBar/NavigationVisbilityObserver.js +21 -21
  79. package/esm/SubdomainNavBar/SubdomainNavBar.js +83 -83
  80. package/esm/Testimonial/Testimonial.js +1 -1
  81. package/esm/Testimonial/Testimonial.js.map +1 -1
  82. package/esm/Testimonial/Testimonial.module-BEBpUSD7.css +1 -0
  83. package/esm/Testimonial/Testimonial.module.js +2 -1
  84. package/esm/Testimonial/Testimonial.module.js.map +1 -1
  85. package/esm/VideoPlayer/VideoPlayer.js +4 -4
  86. package/esm/css/reset-CSgu34_f.css +1 -0
  87. package/esm/css/stylesheets.js +1 -1
  88. package/esm/index.esm.js +68 -68
  89. package/esm/packages/design-tokens/lib/design-tokens/css/tokens/functional/colors/global-with-modes-Bdet_nBw.css +1 -0
  90. package/esm/packages/design-tokens/lib/design-tokens/css/tokens/functional/components/river/river-DHn1_SEa.css +1 -0
  91. package/esm/river/River/River.d.ts +17 -3
  92. package/esm/river/River/River.d.ts.map +1 -1
  93. package/esm/river/River/River.js +30 -11
  94. package/esm/river/River/River.js.map +1 -1
  95. package/esm/river/River/index.d.ts +2 -2
  96. package/esm/river/River/index.d.ts.map +1 -1
  97. package/esm/river/RiverAccordion/RiverAccordion.js +1 -1
  98. package/esm/river/RiverBreakout/RiverBreakout.d.ts +2 -2
  99. package/esm/river/RiverBreakout/RiverBreakout.d.ts.map +1 -1
  100. package/esm/river/RiverBreakout/RiverBreakout.js +18 -18
  101. package/esm/river/RiverBreakout/RiverBreakout.js.map +1 -1
  102. package/esm/river/RiverBreakoutTabs/RiverBreakoutTabs.d.ts +3 -3
  103. package/esm/river/RiverBreakoutTabs/RiverBreakoutTabs.d.ts.map +1 -1
  104. package/esm/river/RiverBreakoutTabs/RiverBreakoutTabs.js +2 -2
  105. package/esm/river/RiverBreakoutTabs/RiverBreakoutTabs.js.map +1 -1
  106. package/esm/river/RiverBreakoutTabs/RiverBreakoutTabs.module-CB2SZhbE.css +1 -0
  107. package/esm/river/RiverBreakoutTabs/RiverBreakoutTabs.module.js +1 -1
  108. package/esm/river/RiverBreakoutTabs/RiverBreakoutTabs.module.js.map +1 -1
  109. package/esm/river/RiverStoryScroll/RiverStoryScroll.module-kez68wMZ.css +1 -0
  110. package/esm/river/RiverStoryScroll/RiverStoryScroll.module.js +1 -1
  111. package/esm/river/RiverStoryScroll/RiverStoryScroll.module.js.map +1 -1
  112. package/esm/river/river-shared.module-5fefR7ip.css +1 -0
  113. package/esm/river/river-shared.module.js +10 -2
  114. package/esm/river/river-shared.module.js.map +1 -1
  115. package/lib/ActionMenu/ActionMenu.d.ts +1 -1
  116. package/lib/ButtonGroup/ButtonGroup.d.ts +3 -1
  117. package/lib/Hero/Hero.d.ts +17 -4
  118. package/lib/Hero/HeroContext.d.ts +7 -5
  119. package/lib/Hero/sub-components/HeroButtonGroup.d.ts +4 -0
  120. package/lib/Hero/sub-components/HeroImage.d.ts +7 -4
  121. package/lib/Hero/sub-components/HeroVideo.d.ts +16 -4
  122. package/lib/Hero/sub-components/index.d.ts +2 -0
  123. package/lib/css/main.css +5733 -5548
  124. package/lib/design-tokens/css/tokens/base/colors/color-scales-with-modes.css +1 -1
  125. package/lib/design-tokens/css/tokens/base/colors/light.css +1 -1
  126. package/lib/design-tokens/css/tokens/base/size/size.css +1 -1
  127. package/lib/design-tokens/css/tokens/base/typography/typography.css +1 -1
  128. package/lib/design-tokens/css/tokens/functional/animation/base.css +1 -1
  129. package/lib/design-tokens/css/tokens/functional/colors/global-with-modes.css +4 -4
  130. package/lib/design-tokens/css/tokens/functional/colors/global.css +3 -3
  131. package/lib/design-tokens/css/tokens/functional/components/accordion/colors-with-modes.css +1 -1
  132. package/lib/design-tokens/css/tokens/functional/components/action-menu/colors-with-modes.css +1 -1
  133. package/lib/design-tokens/css/tokens/functional/components/anchor-nav/colors-with-modes.css +1 -1
  134. package/lib/design-tokens/css/tokens/functional/components/bento/base.css +1 -1
  135. package/lib/design-tokens/css/tokens/functional/components/blinking-cursor/colors-with-modes.css +1 -1
  136. package/lib/design-tokens/css/tokens/functional/components/breadcrumbs/colors-with-modes.css +1 -1
  137. package/lib/design-tokens/css/tokens/functional/components/button/colors-with-modes.css +1 -1
  138. package/lib/design-tokens/css/tokens/functional/components/card/base.css +1 -1
  139. package/lib/design-tokens/css/tokens/functional/components/card/colors-with-modes.css +1 -1
  140. package/lib/design-tokens/css/tokens/functional/components/card/colors.css +1 -1
  141. package/lib/design-tokens/css/tokens/functional/components/comparison-table/colors-with-modes.css +1 -1
  142. package/lib/design-tokens/css/tokens/functional/components/comparison-table/comparison-table.css +1 -1
  143. package/lib/design-tokens/css/tokens/functional/components/control/colors-with-modes.css +1 -1
  144. package/lib/design-tokens/css/tokens/functional/components/cta-banner/colors-with-modes.css +1 -1
  145. package/lib/design-tokens/css/tokens/functional/components/eyebrow-banner/colors-with-modes.css +1 -1
  146. package/lib/design-tokens/css/tokens/functional/components/eyebrow-banner/eyebrow-banner.css +1 -1
  147. package/lib/design-tokens/css/tokens/functional/components/faq/base.css +1 -1
  148. package/lib/design-tokens/css/tokens/functional/components/faq/colors-with-modes.css +1 -1
  149. package/lib/design-tokens/css/tokens/functional/components/faq/colors.css +1 -1
  150. package/lib/design-tokens/css/tokens/functional/components/faq/faq.css +1 -1
  151. package/lib/design-tokens/css/tokens/functional/components/footer/colors-with-modes.css +1 -1
  152. package/lib/design-tokens/css/tokens/functional/components/footer/colors.css +1 -1
  153. package/lib/design-tokens/css/tokens/functional/components/frosted-glass-vfx/base.css +1 -1
  154. package/lib/design-tokens/css/tokens/functional/components/frosted-glass-vfx/colors-with-modes.css +1 -1
  155. package/lib/design-tokens/css/tokens/functional/components/grid/colors-with-modes.css +1 -1
  156. package/lib/design-tokens/css/tokens/functional/components/grid/colors.css +1 -1
  157. package/lib/design-tokens/css/tokens/functional/components/grid/grid.css +1 -1
  158. package/lib/design-tokens/css/tokens/functional/components/hero/base.css +1 -1
  159. package/lib/design-tokens/css/tokens/functional/components/icon/colors-with-modes.css +1 -1
  160. package/lib/design-tokens/css/tokens/functional/components/icon/colors.css +1 -1
  161. package/lib/design-tokens/css/tokens/functional/components/ide/base.css +1 -1
  162. package/lib/design-tokens/css/tokens/functional/components/ide/colors-with-modes.css +1 -1
  163. package/lib/design-tokens/css/tokens/functional/components/image/base.css +1 -1
  164. package/lib/design-tokens/css/tokens/functional/components/inline-link/base.css +1 -1
  165. package/lib/design-tokens/css/tokens/functional/components/inline-link/colors-with-modes.css +1 -1
  166. package/lib/design-tokens/css/tokens/functional/components/inline-link/colors.css +1 -1
  167. package/lib/design-tokens/css/tokens/functional/components/label/colors-with-modes.css +1 -1
  168. package/lib/design-tokens/css/tokens/functional/components/label/colors.css +1 -1
  169. package/lib/design-tokens/css/tokens/functional/components/link/colors-with-modes.css +1 -1
  170. package/lib/design-tokens/css/tokens/functional/components/link/colors.css +1 -1
  171. package/lib/design-tokens/css/tokens/functional/components/logosuite/base.css +1 -1
  172. package/lib/design-tokens/css/tokens/functional/components/logosuite/colors-with-modes.css +1 -1
  173. package/lib/design-tokens/css/tokens/functional/components/logosuite/colors.css +1 -1
  174. package/lib/design-tokens/css/tokens/functional/components/media-playlist/colors-with-modes.css +1 -1
  175. package/lib/design-tokens/css/tokens/functional/components/media-playlist/colors.css +1 -1
  176. package/lib/design-tokens/css/tokens/functional/components/nav-list/colors-with-modes.css +1 -1
  177. package/lib/design-tokens/css/tokens/functional/components/pricing-options/colors-with-modes.css +1 -1
  178. package/lib/design-tokens/css/tokens/functional/components/pricing-options/colors.css +1 -1
  179. package/lib/design-tokens/css/tokens/functional/components/pricing-options/pricing-options.css +1 -1
  180. package/lib/design-tokens/css/tokens/functional/components/prose/base.css +1 -1
  181. package/lib/design-tokens/css/tokens/functional/components/prose/colors-with-modes.css +1 -1
  182. package/lib/design-tokens/css/tokens/functional/components/river/base.css +1 -1
  183. package/lib/design-tokens/css/tokens/functional/components/river/river.css +8 -1
  184. package/lib/design-tokens/css/tokens/functional/components/river-story-scroll/colors-with-modes.css +1 -1
  185. package/lib/design-tokens/css/tokens/functional/components/section/section.css +1 -1
  186. package/lib/design-tokens/css/tokens/functional/components/statistic/base.css +1 -1
  187. package/lib/design-tokens/css/tokens/functional/components/sub-nav/base.css +1 -1
  188. package/lib/design-tokens/css/tokens/functional/components/sub-nav/colors-with-modes.css +1 -1
  189. package/lib/design-tokens/css/tokens/functional/components/subdomain-nav-bar/colors-with-modes.css +1 -1
  190. package/lib/design-tokens/css/tokens/functional/components/tabs/base.css +1 -1
  191. package/lib/design-tokens/css/tokens/functional/components/tabs/colors-with-modes.css +1 -1
  192. package/lib/design-tokens/css/tokens/functional/components/tabs/colors.css +1 -1
  193. package/lib/design-tokens/css/tokens/functional/components/testimonial/base.css +1 -1
  194. package/lib/design-tokens/css/tokens/functional/components/testimonial/colors-with-modes.css +1 -1
  195. package/lib/design-tokens/css/tokens/functional/components/testimonial/colors.css +1 -1
  196. package/lib/design-tokens/css/tokens/functional/components/text-cursor-animation/colors-with-modes.css +1 -1
  197. package/lib/design-tokens/css/tokens/functional/components/text-cursor-animation/colors.css +1 -1
  198. package/lib/design-tokens/css/tokens/functional/components/tiles/colors-with-modes.css +1 -1
  199. package/lib/design-tokens/css/tokens/functional/components/timeline/base.css +1 -1
  200. package/lib/design-tokens/css/tokens/functional/components/timeline/colors-with-modes.css +1 -1
  201. package/lib/design-tokens/css/tokens/functional/components/timeline/colors.css +1 -1
  202. package/lib/design-tokens/css/tokens/functional/components/token/colors-with-modes.css +1 -1
  203. package/lib/design-tokens/css/tokens/functional/components/token/colors.css +1 -1
  204. package/lib/design-tokens/css/tokens/functional/components/tooltip/colors-with-modes.css +1 -1
  205. package/lib/design-tokens/css/tokens/functional/components/tooltip/colors.css +1 -1
  206. package/lib/design-tokens/css/tokens/functional/components/video-player/base.css +1 -1
  207. package/lib/design-tokens/css/tokens/functional/components/video-player/colors-with-modes.css +1 -1
  208. package/lib/design-tokens/css/tokens/functional/size/border.css +1 -1
  209. package/lib/design-tokens/css/tokens/functional/size/breakpoints.css +1 -1
  210. package/lib/design-tokens/css/tokens/functional/size/size-coarse.css +1 -1
  211. package/lib/design-tokens/css/tokens/functional/size/size-fine.css +1 -1
  212. package/lib/design-tokens/css/tokens/functional/size/size.css +1 -1
  213. package/lib/design-tokens/css/tokens/functional/size/viewport.css +1 -1
  214. package/lib/design-tokens/css/tokens/functional/typography/typography-responsive.css +1 -1
  215. package/lib/design-tokens/css/tokens/functional/typography/typography.css +1 -1
  216. package/lib/design-tokens/js/module/tokens/base/colors/light.js +1 -1
  217. package/lib/design-tokens/js/module/tokens/base/size/size.js +1 -1
  218. package/lib/design-tokens/js/module/tokens/base/typography/typography.js +1 -1
  219. package/lib/design-tokens/js/module/tokens/functional/animation/base.js +1 -1
  220. package/lib/design-tokens/js/module/tokens/functional/colors/global.js +4 -4
  221. package/lib/design-tokens/js/module/tokens/functional/components/bento/base.js +1 -1
  222. package/lib/design-tokens/js/module/tokens/functional/components/card/base.js +1 -1
  223. package/lib/design-tokens/js/module/tokens/functional/components/card/colors.js +1 -1
  224. package/lib/design-tokens/js/module/tokens/functional/components/comparison-table/comparison-table.js +1 -1
  225. package/lib/design-tokens/js/module/tokens/functional/components/eyebrow-banner/eyebrow-banner.js +1 -1
  226. package/lib/design-tokens/js/module/tokens/functional/components/faq/base.js +1 -1
  227. package/lib/design-tokens/js/module/tokens/functional/components/faq/colors.js +1 -1
  228. package/lib/design-tokens/js/module/tokens/functional/components/faq/faq.js +1 -1
  229. package/lib/design-tokens/js/module/tokens/functional/components/footer/colors.js +1 -1
  230. package/lib/design-tokens/js/module/tokens/functional/components/frosted-glass-vfx/base.js +1 -1
  231. package/lib/design-tokens/js/module/tokens/functional/components/grid/colors.js +1 -1
  232. package/lib/design-tokens/js/module/tokens/functional/components/grid/grid.js +1 -1
  233. package/lib/design-tokens/js/module/tokens/functional/components/hero/base.js +1 -1
  234. package/lib/design-tokens/js/module/tokens/functional/components/icon/colors.js +1 -1
  235. package/lib/design-tokens/js/module/tokens/functional/components/ide/base.js +1 -1
  236. package/lib/design-tokens/js/module/tokens/functional/components/image/base.js +1 -1
  237. package/lib/design-tokens/js/module/tokens/functional/components/inline-link/base.js +1 -1
  238. package/lib/design-tokens/js/module/tokens/functional/components/inline-link/colors.js +1 -1
  239. package/lib/design-tokens/js/module/tokens/functional/components/label/colors.js +1 -1
  240. package/lib/design-tokens/js/module/tokens/functional/components/link/colors.js +1 -1
  241. package/lib/design-tokens/js/module/tokens/functional/components/logosuite/base.js +1 -1
  242. package/lib/design-tokens/js/module/tokens/functional/components/logosuite/colors.js +1 -1
  243. package/lib/design-tokens/js/module/tokens/functional/components/media-playlist/colors.js +1 -1
  244. package/lib/design-tokens/js/module/tokens/functional/components/pricing-options/colors.js +1 -1
  245. package/lib/design-tokens/js/module/tokens/functional/components/pricing-options/pricing-options.js +1 -1
  246. package/lib/design-tokens/js/module/tokens/functional/components/prose/base.js +1 -1
  247. package/lib/design-tokens/js/module/tokens/functional/components/river/base.js +1 -1
  248. package/lib/design-tokens/js/module/tokens/functional/components/river/river.js +4 -1
  249. package/lib/design-tokens/js/module/tokens/functional/components/section/section.js +1 -1
  250. package/lib/design-tokens/js/module/tokens/functional/components/statistic/base.js +1 -1
  251. package/lib/design-tokens/js/module/tokens/functional/components/sub-nav/base.js +1 -1
  252. package/lib/design-tokens/js/module/tokens/functional/components/tabs/base.js +1 -1
  253. package/lib/design-tokens/js/module/tokens/functional/components/tabs/colors.js +1 -1
  254. package/lib/design-tokens/js/module/tokens/functional/components/testimonial/base.js +1 -1
  255. package/lib/design-tokens/js/module/tokens/functional/components/testimonial/colors.js +1 -1
  256. package/lib/design-tokens/js/module/tokens/functional/components/text-cursor-animation/colors.js +1 -1
  257. package/lib/design-tokens/js/module/tokens/functional/components/timeline/base.js +1 -1
  258. package/lib/design-tokens/js/module/tokens/functional/components/timeline/colors.js +1 -1
  259. package/lib/design-tokens/js/module/tokens/functional/components/token/colors.js +1 -1
  260. package/lib/design-tokens/js/module/tokens/functional/components/tooltip/colors.js +1 -1
  261. package/lib/design-tokens/js/module/tokens/functional/components/video-player/base.js +1 -1
  262. package/lib/design-tokens/js/module/tokens/functional/size/border.js +1 -1
  263. package/lib/design-tokens/js/module/tokens/functional/size/breakpoints.js +1 -1
  264. package/lib/design-tokens/js/module/tokens/functional/size/size-coarse.js +1 -1
  265. package/lib/design-tokens/js/module/tokens/functional/size/size-fine.js +1 -1
  266. package/lib/design-tokens/js/module/tokens/functional/size/size.js +1 -1
  267. package/lib/design-tokens/js/module/tokens/functional/size/viewport.js +1 -1
  268. package/lib/design-tokens/js/module/tokens/functional/typography/typography-responsive.js +1 -1
  269. package/lib/design-tokens/js/module/tokens/functional/typography/typography.js +1 -1
  270. package/lib/design-tokens/js/tokens/base/colors/light.js +1 -1
  271. package/lib/design-tokens/js/tokens/base/size/size.js +1 -1
  272. package/lib/design-tokens/js/tokens/base/typography/typography.js +1 -1
  273. package/lib/design-tokens/js/tokens/functional/animation/base.js +1 -1
  274. package/lib/design-tokens/js/tokens/functional/colors/global.js +3 -3
  275. package/lib/design-tokens/js/tokens/functional/components/bento/base.js +1 -1
  276. package/lib/design-tokens/js/tokens/functional/components/card/base.js +1 -1
  277. package/lib/design-tokens/js/tokens/functional/components/card/colors.js +1 -1
  278. package/lib/design-tokens/js/tokens/functional/components/comparison-table/comparison-table.js +1 -1
  279. package/lib/design-tokens/js/tokens/functional/components/eyebrow-banner/eyebrow-banner.js +1 -1
  280. package/lib/design-tokens/js/tokens/functional/components/faq/base.js +1 -1
  281. package/lib/design-tokens/js/tokens/functional/components/faq/colors.js +1 -1
  282. package/lib/design-tokens/js/tokens/functional/components/faq/faq.js +1 -1
  283. package/lib/design-tokens/js/tokens/functional/components/footer/colors.js +1 -1
  284. package/lib/design-tokens/js/tokens/functional/components/frosted-glass-vfx/base.js +1 -1
  285. package/lib/design-tokens/js/tokens/functional/components/grid/colors.js +1 -1
  286. package/lib/design-tokens/js/tokens/functional/components/grid/grid.js +1 -1
  287. package/lib/design-tokens/js/tokens/functional/components/hero/base.js +1 -1
  288. package/lib/design-tokens/js/tokens/functional/components/icon/colors.js +1 -1
  289. package/lib/design-tokens/js/tokens/functional/components/ide/base.js +1 -1
  290. package/lib/design-tokens/js/tokens/functional/components/image/base.js +1 -1
  291. package/lib/design-tokens/js/tokens/functional/components/inline-link/base.js +1 -1
  292. package/lib/design-tokens/js/tokens/functional/components/inline-link/colors.js +1 -1
  293. package/lib/design-tokens/js/tokens/functional/components/label/colors.js +1 -1
  294. package/lib/design-tokens/js/tokens/functional/components/link/colors.js +1 -1
  295. package/lib/design-tokens/js/tokens/functional/components/logosuite/base.js +1 -1
  296. package/lib/design-tokens/js/tokens/functional/components/logosuite/colors.js +1 -1
  297. package/lib/design-tokens/js/tokens/functional/components/media-playlist/colors.js +1 -1
  298. package/lib/design-tokens/js/tokens/functional/components/pricing-options/colors.js +1 -1
  299. package/lib/design-tokens/js/tokens/functional/components/pricing-options/pricing-options.js +1 -1
  300. package/lib/design-tokens/js/tokens/functional/components/prose/base.js +1 -1
  301. package/lib/design-tokens/js/tokens/functional/components/river/base.js +1 -1
  302. package/lib/design-tokens/js/tokens/functional/components/river/river.js +2 -1
  303. package/lib/design-tokens/js/tokens/functional/components/section/section.js +1 -1
  304. package/lib/design-tokens/js/tokens/functional/components/statistic/base.js +1 -1
  305. package/lib/design-tokens/js/tokens/functional/components/sub-nav/base.js +1 -1
  306. package/lib/design-tokens/js/tokens/functional/components/tabs/base.js +1 -1
  307. package/lib/design-tokens/js/tokens/functional/components/tabs/colors.js +1 -1
  308. package/lib/design-tokens/js/tokens/functional/components/testimonial/base.js +1 -1
  309. package/lib/design-tokens/js/tokens/functional/components/testimonial/colors.js +1 -1
  310. package/lib/design-tokens/js/tokens/functional/components/text-cursor-animation/colors.js +1 -1
  311. package/lib/design-tokens/js/tokens/functional/components/timeline/base.js +1 -1
  312. package/lib/design-tokens/js/tokens/functional/components/timeline/colors.js +1 -1
  313. package/lib/design-tokens/js/tokens/functional/components/token/colors.js +1 -1
  314. package/lib/design-tokens/js/tokens/functional/components/tooltip/colors.js +1 -1
  315. package/lib/design-tokens/js/tokens/functional/components/video-player/base.js +1 -1
  316. package/lib/design-tokens/js/tokens/functional/size/border.js +1 -1
  317. package/lib/design-tokens/js/tokens/functional/size/breakpoints.js +1 -1
  318. package/lib/design-tokens/js/tokens/functional/size/size-coarse.js +1 -1
  319. package/lib/design-tokens/js/tokens/functional/size/size-fine.js +1 -1
  320. package/lib/design-tokens/js/tokens/functional/size/size.js +1 -1
  321. package/lib/design-tokens/js/tokens/functional/size/viewport.js +1 -1
  322. package/lib/design-tokens/js/tokens/functional/typography/typography-responsive.js +1 -1
  323. package/lib/design-tokens/js/tokens/functional/typography/typography.js +1 -1
  324. package/lib/design-tokens/json/colors.json +2 -2
  325. package/lib/design-tokens/scss/tokens/base/colors/light.scss +1 -1
  326. package/lib/design-tokens/scss/tokens/base/size/size.scss +1 -1
  327. package/lib/design-tokens/scss/tokens/base/typography/typography.scss +1 -1
  328. package/lib/design-tokens/scss/tokens/functional/animation/base.scss +1 -1
  329. package/lib/design-tokens/scss/tokens/functional/colors/global.scss +3 -3
  330. package/lib/design-tokens/scss/tokens/functional/components/bento/base.scss +1 -1
  331. package/lib/design-tokens/scss/tokens/functional/components/card/base.scss +1 -1
  332. package/lib/design-tokens/scss/tokens/functional/components/card/colors.scss +1 -1
  333. package/lib/design-tokens/scss/tokens/functional/components/comparison-table/comparison-table.scss +1 -1
  334. package/lib/design-tokens/scss/tokens/functional/components/eyebrow-banner/eyebrow-banner.scss +1 -1
  335. package/lib/design-tokens/scss/tokens/functional/components/faq/base.scss +1 -1
  336. package/lib/design-tokens/scss/tokens/functional/components/faq/colors.scss +1 -1
  337. package/lib/design-tokens/scss/tokens/functional/components/faq/faq.scss +1 -1
  338. package/lib/design-tokens/scss/tokens/functional/components/footer/colors.scss +1 -1
  339. package/lib/design-tokens/scss/tokens/functional/components/frosted-glass-vfx/base.scss +1 -1
  340. package/lib/design-tokens/scss/tokens/functional/components/grid/colors.scss +1 -1
  341. package/lib/design-tokens/scss/tokens/functional/components/grid/grid.scss +1 -1
  342. package/lib/design-tokens/scss/tokens/functional/components/hero/base.scss +1 -1
  343. package/lib/design-tokens/scss/tokens/functional/components/icon/colors.scss +1 -1
  344. package/lib/design-tokens/scss/tokens/functional/components/ide/base.scss +1 -1
  345. package/lib/design-tokens/scss/tokens/functional/components/image/base.scss +1 -1
  346. package/lib/design-tokens/scss/tokens/functional/components/inline-link/base.scss +1 -1
  347. package/lib/design-tokens/scss/tokens/functional/components/inline-link/colors.scss +1 -1
  348. package/lib/design-tokens/scss/tokens/functional/components/label/colors.scss +1 -1
  349. package/lib/design-tokens/scss/tokens/functional/components/link/colors.scss +1 -1
  350. package/lib/design-tokens/scss/tokens/functional/components/logosuite/base.scss +1 -1
  351. package/lib/design-tokens/scss/tokens/functional/components/logosuite/colors.scss +1 -1
  352. package/lib/design-tokens/scss/tokens/functional/components/media-playlist/colors.scss +1 -1
  353. package/lib/design-tokens/scss/tokens/functional/components/pricing-options/colors.scss +1 -1
  354. package/lib/design-tokens/scss/tokens/functional/components/pricing-options/pricing-options.scss +1 -1
  355. package/lib/design-tokens/scss/tokens/functional/components/prose/base.scss +1 -1
  356. package/lib/design-tokens/scss/tokens/functional/components/river/base.scss +1 -1
  357. package/lib/design-tokens/scss/tokens/functional/components/river/river.scss +2 -1
  358. package/lib/design-tokens/scss/tokens/functional/components/section/section.scss +1 -1
  359. package/lib/design-tokens/scss/tokens/functional/components/statistic/base.scss +1 -1
  360. package/lib/design-tokens/scss/tokens/functional/components/sub-nav/base.scss +1 -1
  361. package/lib/design-tokens/scss/tokens/functional/components/tabs/base.scss +1 -1
  362. package/lib/design-tokens/scss/tokens/functional/components/tabs/colors.scss +1 -1
  363. package/lib/design-tokens/scss/tokens/functional/components/testimonial/base.scss +1 -1
  364. package/lib/design-tokens/scss/tokens/functional/components/testimonial/colors.scss +1 -1
  365. package/lib/design-tokens/scss/tokens/functional/components/text-cursor-animation/colors.scss +1 -1
  366. package/lib/design-tokens/scss/tokens/functional/components/timeline/base.scss +1 -1
  367. package/lib/design-tokens/scss/tokens/functional/components/timeline/colors.scss +1 -1
  368. package/lib/design-tokens/scss/tokens/functional/components/token/colors.scss +1 -1
  369. package/lib/design-tokens/scss/tokens/functional/components/tooltip/colors.scss +1 -1
  370. package/lib/design-tokens/scss/tokens/functional/components/video-player/base.scss +1 -1
  371. package/lib/design-tokens/scss/tokens/functional/size/border.scss +1 -1
  372. package/lib/design-tokens/scss/tokens/functional/size/breakpoints.scss +1 -1
  373. package/lib/design-tokens/scss/tokens/functional/size/size-coarse.scss +1 -1
  374. package/lib/design-tokens/scss/tokens/functional/size/size-fine.scss +1 -1
  375. package/lib/design-tokens/scss/tokens/functional/size/size.scss +1 -1
  376. package/lib/design-tokens/scss/tokens/functional/size/viewport.scss +1 -1
  377. package/lib/design-tokens/scss/tokens/functional/typography/typography-responsive.scss +1 -1
  378. package/lib/design-tokens/scss/tokens/functional/typography/typography.scss +1 -1
  379. package/lib/design-tokens/ts/tokens/base/colors/light.d.ts +1 -1
  380. package/lib/design-tokens/ts/tokens/base/colors/light.js +1 -1
  381. package/lib/design-tokens/ts/tokens/base/size/size.d.ts +1 -1
  382. package/lib/design-tokens/ts/tokens/base/size/size.js +1 -1
  383. package/lib/design-tokens/ts/tokens/base/typography/typography.d.ts +1 -1
  384. package/lib/design-tokens/ts/tokens/base/typography/typography.js +1 -1
  385. package/lib/design-tokens/ts/tokens/functional/animation/base.d.ts +1 -1
  386. package/lib/design-tokens/ts/tokens/functional/animation/base.js +1 -1
  387. package/lib/design-tokens/ts/tokens/functional/colors/global.d.ts +1 -1
  388. package/lib/design-tokens/ts/tokens/functional/colors/global.js +3 -3
  389. package/lib/design-tokens/ts/tokens/functional/components/bento/base.d.ts +1 -1
  390. package/lib/design-tokens/ts/tokens/functional/components/bento/base.js +1 -1
  391. package/lib/design-tokens/ts/tokens/functional/components/card/base.d.ts +1 -1
  392. package/lib/design-tokens/ts/tokens/functional/components/card/base.js +1 -1
  393. package/lib/design-tokens/ts/tokens/functional/components/card/colors.d.ts +1 -1
  394. package/lib/design-tokens/ts/tokens/functional/components/card/colors.js +1 -1
  395. package/lib/design-tokens/ts/tokens/functional/components/comparison-table/comparison-table.d.ts +1 -1
  396. package/lib/design-tokens/ts/tokens/functional/components/comparison-table/comparison-table.js +1 -1
  397. package/lib/design-tokens/ts/tokens/functional/components/eyebrow-banner/eyebrow-banner.d.ts +1 -1
  398. package/lib/design-tokens/ts/tokens/functional/components/eyebrow-banner/eyebrow-banner.js +1 -1
  399. package/lib/design-tokens/ts/tokens/functional/components/faq/base.d.ts +1 -1
  400. package/lib/design-tokens/ts/tokens/functional/components/faq/base.js +1 -1
  401. package/lib/design-tokens/ts/tokens/functional/components/faq/colors.d.ts +1 -1
  402. package/lib/design-tokens/ts/tokens/functional/components/faq/colors.js +1 -1
  403. package/lib/design-tokens/ts/tokens/functional/components/faq/faq.d.ts +1 -1
  404. package/lib/design-tokens/ts/tokens/functional/components/faq/faq.js +1 -1
  405. package/lib/design-tokens/ts/tokens/functional/components/footer/colors.d.ts +1 -1
  406. package/lib/design-tokens/ts/tokens/functional/components/footer/colors.js +1 -1
  407. package/lib/design-tokens/ts/tokens/functional/components/frosted-glass-vfx/base.d.ts +1 -1
  408. package/lib/design-tokens/ts/tokens/functional/components/frosted-glass-vfx/base.js +1 -1
  409. package/lib/design-tokens/ts/tokens/functional/components/grid/colors.d.ts +1 -1
  410. package/lib/design-tokens/ts/tokens/functional/components/grid/colors.js +1 -1
  411. package/lib/design-tokens/ts/tokens/functional/components/grid/grid.d.ts +1 -1
  412. package/lib/design-tokens/ts/tokens/functional/components/grid/grid.js +1 -1
  413. package/lib/design-tokens/ts/tokens/functional/components/hero/base.d.ts +1 -1
  414. package/lib/design-tokens/ts/tokens/functional/components/hero/base.js +1 -1
  415. package/lib/design-tokens/ts/tokens/functional/components/icon/colors.d.ts +1 -1
  416. package/lib/design-tokens/ts/tokens/functional/components/icon/colors.js +1 -1
  417. package/lib/design-tokens/ts/tokens/functional/components/ide/base.d.ts +1 -1
  418. package/lib/design-tokens/ts/tokens/functional/components/ide/base.js +1 -1
  419. package/lib/design-tokens/ts/tokens/functional/components/image/base.d.ts +1 -1
  420. package/lib/design-tokens/ts/tokens/functional/components/image/base.js +1 -1
  421. package/lib/design-tokens/ts/tokens/functional/components/inline-link/base.d.ts +1 -1
  422. package/lib/design-tokens/ts/tokens/functional/components/inline-link/base.js +1 -1
  423. package/lib/design-tokens/ts/tokens/functional/components/inline-link/colors.d.ts +1 -1
  424. package/lib/design-tokens/ts/tokens/functional/components/inline-link/colors.js +1 -1
  425. package/lib/design-tokens/ts/tokens/functional/components/label/colors.d.ts +1 -1
  426. package/lib/design-tokens/ts/tokens/functional/components/label/colors.js +1 -1
  427. package/lib/design-tokens/ts/tokens/functional/components/link/colors.d.ts +1 -1
  428. package/lib/design-tokens/ts/tokens/functional/components/link/colors.js +1 -1
  429. package/lib/design-tokens/ts/tokens/functional/components/logosuite/base.d.ts +1 -1
  430. package/lib/design-tokens/ts/tokens/functional/components/logosuite/base.js +1 -1
  431. package/lib/design-tokens/ts/tokens/functional/components/logosuite/colors.d.ts +1 -1
  432. package/lib/design-tokens/ts/tokens/functional/components/logosuite/colors.js +1 -1
  433. package/lib/design-tokens/ts/tokens/functional/components/media-playlist/colors.d.ts +1 -1
  434. package/lib/design-tokens/ts/tokens/functional/components/media-playlist/colors.js +1 -1
  435. package/lib/design-tokens/ts/tokens/functional/components/pricing-options/colors.d.ts +1 -1
  436. package/lib/design-tokens/ts/tokens/functional/components/pricing-options/colors.js +1 -1
  437. package/lib/design-tokens/ts/tokens/functional/components/pricing-options/pricing-options.d.ts +1 -1
  438. package/lib/design-tokens/ts/tokens/functional/components/pricing-options/pricing-options.js +1 -1
  439. package/lib/design-tokens/ts/tokens/functional/components/prose/base.d.ts +1 -1
  440. package/lib/design-tokens/ts/tokens/functional/components/prose/base.js +1 -1
  441. package/lib/design-tokens/ts/tokens/functional/components/river/base.d.ts +1 -1
  442. package/lib/design-tokens/ts/tokens/functional/components/river/base.js +1 -1
  443. package/lib/design-tokens/ts/tokens/functional/components/river/river.d.ts +4 -1
  444. package/lib/design-tokens/ts/tokens/functional/components/river/river.js +4 -1
  445. package/lib/design-tokens/ts/tokens/functional/components/section/section.d.ts +1 -1
  446. package/lib/design-tokens/ts/tokens/functional/components/section/section.js +1 -1
  447. package/lib/design-tokens/ts/tokens/functional/components/statistic/base.d.ts +1 -1
  448. package/lib/design-tokens/ts/tokens/functional/components/statistic/base.js +1 -1
  449. package/lib/design-tokens/ts/tokens/functional/components/sub-nav/base.d.ts +1 -1
  450. package/lib/design-tokens/ts/tokens/functional/components/sub-nav/base.js +1 -1
  451. package/lib/design-tokens/ts/tokens/functional/components/tabs/base.d.ts +1 -1
  452. package/lib/design-tokens/ts/tokens/functional/components/tabs/base.js +1 -1
  453. package/lib/design-tokens/ts/tokens/functional/components/tabs/colors.d.ts +1 -1
  454. package/lib/design-tokens/ts/tokens/functional/components/tabs/colors.js +1 -1
  455. package/lib/design-tokens/ts/tokens/functional/components/testimonial/base.d.ts +1 -1
  456. package/lib/design-tokens/ts/tokens/functional/components/testimonial/base.js +1 -1
  457. package/lib/design-tokens/ts/tokens/functional/components/testimonial/colors.d.ts +1 -1
  458. package/lib/design-tokens/ts/tokens/functional/components/testimonial/colors.js +1 -1
  459. package/lib/design-tokens/ts/tokens/functional/components/text-cursor-animation/colors.d.ts +1 -1
  460. package/lib/design-tokens/ts/tokens/functional/components/text-cursor-animation/colors.js +1 -1
  461. package/lib/design-tokens/ts/tokens/functional/components/timeline/base.d.ts +1 -1
  462. package/lib/design-tokens/ts/tokens/functional/components/timeline/base.js +1 -1
  463. package/lib/design-tokens/ts/tokens/functional/components/timeline/colors.d.ts +1 -1
  464. package/lib/design-tokens/ts/tokens/functional/components/timeline/colors.js +1 -1
  465. package/lib/design-tokens/ts/tokens/functional/components/token/colors.d.ts +1 -1
  466. package/lib/design-tokens/ts/tokens/functional/components/token/colors.js +1 -1
  467. package/lib/design-tokens/ts/tokens/functional/components/tooltip/colors.d.ts +1 -1
  468. package/lib/design-tokens/ts/tokens/functional/components/tooltip/colors.js +1 -1
  469. package/lib/design-tokens/ts/tokens/functional/components/video-player/base.d.ts +1 -1
  470. package/lib/design-tokens/ts/tokens/functional/components/video-player/base.js +1 -1
  471. package/lib/design-tokens/ts/tokens/functional/size/border.d.ts +1 -1
  472. package/lib/design-tokens/ts/tokens/functional/size/border.js +1 -1
  473. package/lib/design-tokens/ts/tokens/functional/size/breakpoints.d.ts +1 -1
  474. package/lib/design-tokens/ts/tokens/functional/size/breakpoints.js +1 -1
  475. package/lib/design-tokens/ts/tokens/functional/size/size-coarse.d.ts +1 -1
  476. package/lib/design-tokens/ts/tokens/functional/size/size-coarse.js +1 -1
  477. package/lib/design-tokens/ts/tokens/functional/size/size-fine.d.ts +1 -1
  478. package/lib/design-tokens/ts/tokens/functional/size/size-fine.js +1 -1
  479. package/lib/design-tokens/ts/tokens/functional/size/size.d.ts +1 -1
  480. package/lib/design-tokens/ts/tokens/functional/size/size.js +1 -1
  481. package/lib/design-tokens/ts/tokens/functional/size/viewport.d.ts +1 -1
  482. package/lib/design-tokens/ts/tokens/functional/size/viewport.js +1 -1
  483. package/lib/design-tokens/ts/tokens/functional/typography/typography-responsive.d.ts +1 -1
  484. package/lib/design-tokens/ts/tokens/functional/typography/typography-responsive.js +1 -1
  485. package/lib/design-tokens/ts/tokens/functional/typography/typography.d.ts +1 -1
  486. package/lib/design-tokens/ts/tokens/functional/typography/typography.js +1 -1
  487. package/lib/index.js +1 -1
  488. package/lib/river/River/River.d.ts +17 -3
  489. package/lib/river/River/index.d.ts +2 -2
  490. package/lib/river/RiverBreakout/RiverBreakout.d.ts +2 -2
  491. package/lib/river/RiverBreakoutTabs/RiverBreakoutTabs.d.ts +3 -3
  492. package/llms.txt +3 -3
  493. package/package.json +1 -1
  494. package/esm/Avatar/Avatar.module-DzfWmLu4.css +0 -1
  495. package/esm/CTABanner/CTABanner.module-DZUT186Y.css +0 -1
  496. package/esm/EyebrowBanner/EyebrowBanner.module-C8hfGfYx.css +0 -1
  497. package/esm/Hero/Hero.module-DjsgFkIQ.css +0 -1
  498. package/esm/LogoSuite/LogoSuite.module-69Mthqju.css +0 -1
  499. package/esm/SectionIntro/SectionIntro.module-CiRymbla.css +0 -1
  500. package/esm/Testimonial/Testimonial.module-DRCosU_J.css +0 -1
  501. package/esm/css/reset-PKNIUbst.css +0 -1
  502. package/esm/packages/design-tokens/lib/design-tokens/css/tokens/functional/colors/global-with-modes-tpdcmiok.css +0 -1
  503. package/esm/packages/design-tokens/lib/design-tokens/css/tokens/functional/components/river/river-QteO10lt.css +0 -1
  504. package/esm/river/RiverBreakoutTabs/RiverBreakoutTabs.module-CH8jehnx.css +0 -1
  505. package/esm/river/RiverStoryScroll/RiverStoryScroll.module-D8dFaLHq.css +0 -1
  506. package/esm/river/river-shared.module-Bf_bNlTd.css +0 -1
@@ -1,13 +1,13 @@
1
1
  import e from "../node_modules/clsx/dist/clsx.js";
2
2
  import { useId as t } from "../hooks/useId.js";
3
3
  import { Text as n } from "../Text/Text.js";
4
- import { CheckIcon as r, ChevronDownIcon as i } from "../node_modules/@primer/octicons-react/dist/index.esm.js";
5
- import { Button as a } from "../Button/Button.js";
6
- import { ThemeProvider as o } from "../ThemeProvider/ThemeProvider.js";
7
- import { useTheme as s } from "../ThemeProvider/useTheme.js";
8
- import { useOnClickOutside as c } from "../hooks/useOnClickOutside.js";
9
- import { useKeyboardEscape as l } from "../hooks/useKeyboardEscape.js";
10
- import { useAnchoredPosition as u } from "../hooks/useAnchoredPosition.js";
4
+ import { Button as r } from "../Button/Button.js";
5
+ import { ThemeProvider as i } from "../ThemeProvider/ThemeProvider.js";
6
+ import { useTheme as a } from "../ThemeProvider/useTheme.js";
7
+ import { useAnchoredPosition as o } from "../hooks/useAnchoredPosition.js";
8
+ import { useOnClickOutside as s } from "../hooks/useOnClickOutside.js";
9
+ import { useKeyboardEscape as c } from "../hooks/useKeyboardEscape.js";
10
+ import { CheckIcon as l, ChevronDownIcon as u } from "../node_modules/@primer/octicons-react/dist/index.esm.js";
11
11
  import '../packages/design-tokens/lib/design-tokens/css/tokens/functional/components/action-menu/colors-with-modes-B69RzUbe.css';/* empty css */
12
12
  import d from "./ActionMenu.module.js";
13
13
  import f, { Children as p, cloneElement as m, forwardRef as h, isValidElement as g, memo as _, useCallback as v, useEffect as y, useMemo as b, useRef as x, useState as S } from "react";
@@ -48,9 +48,9 @@ var O = {
48
48
  },
49
49
  children: t
50
50
  });
51
- }, F = _(({ id: n, children: r, "data-testid": i, disabled: a, open: o = !1, selectionVariant: s = "none", menuAlignment: f = "end", size: h = "medium", menuSide: _, onSelect: b, mode: C = "default" }) => {
52
- let [k, A] = S(o), j = x(null), M = x(null), N = t(n);
53
- c(j, () => A(!1), M), l(v(() => {
51
+ }, F = _(({ id: n, children: r, "data-testid": i, disabled: a, open: l = !1, selectionVariant: u = "none", menuAlignment: f = "end", size: h = "medium", menuSide: _, onSelect: b, mode: C = "default" }) => {
52
+ let [k, A] = S(l), j = x(null), M = x(null), N = t(n);
53
+ s(j, () => A(!1), M), c(v(() => {
54
54
  A(!1);
55
55
  }, []));
56
56
  let F = v(() => {
@@ -104,7 +104,7 @@ var O = {
104
104
  F,
105
105
  L
106
106
  ]);
107
- let { position: B } = u({
107
+ let { position: B } = o({
108
108
  floatingElementRef: j,
109
109
  anchorElementRef: M,
110
110
  align: f,
@@ -128,7 +128,7 @@ var O = {
128
128
  id: `${N}-menu`,
129
129
  children: p.map(n.props.children, (e) => g(e) ? m(e, {
130
130
  handler: R,
131
- type: C === "split-button" ? "link" : s
131
+ type: C === "split-button" ? "link" : u
132
132
  }) : e)
133
133
  })), t), {});
134
134
  return /* @__PURE__ */ w(P, {
@@ -141,125 +141,125 @@ var O = {
141
141
  children: [V, k ? H : null]
142
142
  })
143
143
  });
144
- }), I = h(({ as: t, href: n, id: r, children: o, className: s, "data-testid": c, disabled: l, menuOpen: u, size: f, _mode: p = "default", onClick: m, leadingVisual: h, variant: g, ..._ }, y) => {
144
+ }), I = h(({ as: t, href: n, id: i, children: a, className: o, "data-testid": s, disabled: c, menuOpen: l, size: f, _mode: p = "default", onClick: m, leadingVisual: h, variant: g, ..._ }, y) => {
145
145
  let { onMenuToggle: b } = N(), x = v((e) => {
146
146
  m?.(e), e.defaultPrevented || b?.();
147
147
  }, [m, b]);
148
148
  if (p === "split-button") {
149
149
  let p = g ?? "primary";
150
150
  return /* @__PURE__ */ T("div", {
151
- className: e(d.ActionMenu__button, d[`ActionMenu__button--${f}`], s),
152
- children: [/* @__PURE__ */ w(a, {
151
+ className: e(d.ActionMenu__button, d[`ActionMenu__button--${f}`], o),
152
+ children: [/* @__PURE__ */ w(r, {
153
153
  as: t,
154
154
  href: n,
155
- className: e(d["ActionMenu__innerButton--split-button"], d[`ActionMenu__innerButton--${p}`], d[`ActionMenu__innerButton--${f}`], l && d["ActionMenu__innerButton--disabled"]),
155
+ className: e(d["ActionMenu__innerButton--split-button"], d[`ActionMenu__innerButton--${p}`], d[`ActionMenu__innerButton--${f}`], c && d["ActionMenu__innerButton--disabled"]),
156
156
  variant: p,
157
- "aria-disabled": l,
158
- "data-testid": c || O.button,
157
+ "aria-disabled": c,
158
+ "data-testid": s || O.button,
159
159
  size: f,
160
160
  leadingVisual: h,
161
161
  onClick: m,
162
162
  ..._,
163
163
  children: /* @__PURE__ */ w("span", {
164
164
  className: d["ActionMenu__button-text"],
165
- children: o
165
+ children: a
166
166
  })
167
- }), /* @__PURE__ */ w(a, {
167
+ }), /* @__PURE__ */ w(r, {
168
168
  ref: y,
169
- id: r,
169
+ id: i,
170
170
  as: "button",
171
171
  className: d["ActionMenu__innerButton--split-button"],
172
172
  variant: p,
173
173
  "aria-haspopup": "true",
174
174
  "aria-label": "Menu",
175
175
  size: f,
176
- "aria-expanded": u ? "true" : "false",
176
+ "aria-expanded": l ? "true" : "false",
177
177
  onClick: b,
178
- disabled: l,
179
- children: /* @__PURE__ */ w(i, { className: d["ActionMenu__inner-button-dropdown-icon"] })
178
+ disabled: c,
179
+ children: /* @__PURE__ */ w(u, { className: d["ActionMenu__inner-button-dropdown-icon"] })
180
180
  })]
181
181
  });
182
182
  }
183
- return /* @__PURE__ */ w(a, {
183
+ return /* @__PURE__ */ w(r, {
184
184
  ref: y,
185
- id: r,
186
- className: e(d.ActionMenu__button, d[`ActionMenu__button--${f}`], s),
185
+ id: i,
186
+ className: e(d.ActionMenu__button, d[`ActionMenu__button--${f}`], o),
187
187
  "aria-haspopup": "true",
188
- "aria-expanded": u ? "true" : "false",
189
- disabled: l,
190
- "data-testid": c || O.button,
188
+ "aria-expanded": l ? "true" : "false",
189
+ disabled: c,
190
+ "data-testid": s || O.button,
191
191
  size: f,
192
192
  variant: g,
193
193
  leadingVisual: h,
194
- trailingVisual: /* @__PURE__ */ w(i, {}),
194
+ trailingVisual: /* @__PURE__ */ w(u, {}),
195
195
  onClick: x,
196
196
  ..._,
197
197
  children: /* @__PURE__ */ w("span", {
198
198
  className: d["ActionMenu__button-text"],
199
- children: o
199
+ children: a
200
200
  })
201
201
  });
202
202
  }), L = {
203
203
  none: "menuitem",
204
204
  single: "menuitemradio",
205
205
  link: "menuitem"
206
- }, R = ({ as: t, children: i, className: a, disabled: o, handler: s, selected: c, type: l, value: u, onClick: p, onKeyDown: m, leadingVisual: h, ...g }) => {
206
+ }, R = ({ as: t, children: r, className: i, disabled: a, handler: o, selected: s, type: c, value: u, onClick: p, onKeyDown: m, leadingVisual: h, ...g }) => {
207
207
  let { size: _ } = N(), y = v((e) => {
208
- p?.(e), o || s?.(String(u));
208
+ p?.(e), a || o?.(String(u));
209
209
  }, [
210
- s,
211
- u,
212
210
  o,
211
+ u,
212
+ a,
213
213
  p
214
214
  ]), x = v((e) => {
215
- m?.(e), !o && e.key === "Enter" && s?.(String(u));
215
+ m?.(e), !a && e.key === "Enter" && o?.(String(u));
216
216
  }, [
217
- s,
218
- u,
219
217
  o,
218
+ u,
219
+ a,
220
220
  m
221
221
  ]), S = b(() => ({
222
- className: e(d.ActionMenu__item, l === "single" && d[`ActionMenu__item--selection-type-${l}`], _ && d[`ActionMenu__item--${_}`], a),
223
- role: L[l || "single"],
224
- "aria-disabled": o,
222
+ className: e(d.ActionMenu__item, c === "single" && d[`ActionMenu__item--selection-type-${c}`], _ && d[`ActionMenu__item--${_}`], i),
223
+ role: L[c || "single"],
224
+ "aria-disabled": a,
225
225
  tabIndex: -1,
226
226
  "data-value": u,
227
227
  ...g
228
228
  }), [
229
229
  g,
230
- l,
230
+ c,
231
231
  _,
232
+ i,
232
233
  a,
233
- o,
234
234
  u
235
235
  ]), E = b(() => /* @__PURE__ */ T(C, { children: [
236
236
  f.isValidElement(h) ? f.cloneElement(h, {
237
237
  width: h.props.width || 20,
238
238
  height: h.props.width || 20
239
239
  }) : null,
240
- l === "single" && /* @__PURE__ */ w("span", {
240
+ c === "single" && /* @__PURE__ */ w("span", {
241
241
  className: d["ActionMenu__item-leadingVisual"],
242
- children: c && /* @__PURE__ */ w(r, {
243
- className: e(d["ActionMenu__item-icon"], o && d["ActionMenu__item-icon--disabled"]),
242
+ children: s && /* @__PURE__ */ w(l, {
243
+ className: e(d["ActionMenu__item-icon"], a && d["ActionMenu__item-icon--disabled"]),
244
244
  size: 16
245
245
  })
246
246
  }),
247
247
  /* @__PURE__ */ w("span", {
248
248
  className: d["ActionMenu__item-text"],
249
249
  children: /* @__PURE__ */ w(n, {
250
- variant: o ? "muted" : "default",
250
+ variant: a ? "muted" : "default",
251
251
  size: _ === "medium" ? "200" : "100",
252
- className: e(o && d["ActionMenu__item-content--disabled"]),
253
- children: i
252
+ className: e(a && d["ActionMenu__item-content--disabled"]),
253
+ children: r
254
254
  })
255
255
  })
256
256
  ] }), [
257
257
  h,
258
- i,
259
- c,
260
- o,
258
+ r,
259
+ s,
260
+ a,
261
261
  _,
262
- l
262
+ c
263
263
  ]);
264
264
  return t === "a" ? /* @__PURE__ */ w("li", {
265
265
  role: "menuitem",
@@ -267,28 +267,28 @@ var O = {
267
267
  onClick: p,
268
268
  onKeyDown: m,
269
269
  children: /* @__PURE__ */ w("a", {
270
- className: e(d["ActionMenu__item-anchor"], o && d["ActionMenu__item--disabled"]),
270
+ className: e(d["ActionMenu__item-anchor"], a && d["ActionMenu__item--disabled"]),
271
271
  href: g.href,
272
272
  children: E
273
273
  })
274
274
  }) : /* @__PURE__ */ w("li", {
275
275
  role: "menuitem",
276
276
  ...S,
277
- "aria-checked": l === "none" ? void 0 : c ? "true" : "false",
277
+ "aria-checked": c === "none" ? void 0 : s ? "true" : "false",
278
278
  onClick: y,
279
279
  onKeyDown: x,
280
280
  children: E
281
281
  });
282
- }, z = h(({ children: t, className: n, "data-testid": r, menuOpen: i, ...a }, c) => {
283
- let { colorMode: l } = s();
284
- return /* @__PURE__ */ w(o, {
282
+ }, z = h(({ children: t, className: n, "data-testid": r, menuOpen: o, ...s }, c) => {
283
+ let { colorMode: l } = a();
284
+ return /* @__PURE__ */ w(i, {
285
285
  colorMode: n?.includes("ActionMenu__menu--split") ? "light" : l,
286
286
  children: /* @__PURE__ */ w("ul", {
287
287
  ref: c,
288
288
  className: e(n),
289
289
  role: "menu",
290
290
  "data-testid": r || O.list,
291
- ...a,
291
+ ...s,
292
292
  children: t
293
293
  })
294
294
  });
@@ -1 +1 @@
1
- {"version":3,"file":"ActionMenu.js","names":[],"sources":["../../src/ActionMenu/ActionMenu.tsx"],"sourcesContent":["import React, {\n Children,\n isValidElement,\n cloneElement,\n useRef,\n useCallback,\n useState,\n useEffect,\n PropsWithChildren,\n forwardRef,\n memo,\n ReactElement,\n useMemo,\n} from 'react'\nimport {Button, ButtonProps, Text, ThemeProvider, useTheme} from '../'\nimport {useAnchoredPosition} from '../hooks/useAnchoredPosition'\nimport {useOnClickOutside} from '../hooks/useOnClickOutside'\nimport {useKeyboardEscape} from '../hooks/useKeyboardEscape'\n\nimport {clsx} from 'clsx'\nimport {CheckIcon, ChevronDownIcon, type Icon} from '@primer/octicons-react'\nimport {useId} from '../hooks/useId'\n\nimport {FocusKeys, type PositionSettings, focusZone} from '@primer/behaviors'\nimport type {BaseProps} from '../component-helpers'\n\n/**\n * Design tokens\n */\nimport '@primer/brand-primitives/lib/design-tokens/css/tokens/functional/components/action-menu/colors-with-modes.css'\n\n/** * Main Stylesheet (as a CSS Module) */\nimport styles from './ActionMenu.module.css'\n\nconst testIds = {\n root: 'ActionMenu',\n get button() {\n return `${this.root}-button`\n },\n get overlay() {\n return `${this.root}-overlay`\n },\n get list() {\n return `${this.root}-list`\n },\n get item() {\n return `${this.root}-list-item`\n },\n}\n\n// primer behaviors doesn't export these values, recreating manually\n// https://github.com/primer/behaviors/blob/main/src/anchored-position.ts#L5\nexport const actionMenuOverlaySides = [\n 'inside-top',\n 'inside-bottom',\n 'inside-left',\n 'inside-right',\n 'inside-center',\n 'outside-top',\n 'outside-bottom',\n 'outside-left',\n 'outside-right',\n] as PositionSettings['side'][]\n\nexport const ActionMenuSizes = ['small', 'medium'] as const\n\nexport const ActionMenuButtonModes = ['default', 'split-button'] as const\nexport type ActionMenuButtonModes = (typeof ActionMenuButtonModes)[number]\n\nexport type ActionMenuSizes = (typeof ActionMenuSizes)[number]\n\nexport type ActionMenuProps = {\n /**\n * The content of the ActionMenu. Must be an ActionMenu.Button and an ActionMenu.Overlay\n */\n children:\n | ReactElement<ActionMenuButtonProps>\n | ReactElement<ActionMenuOverlayProps>\n | Array<ReactElement<ActionMenuButtonProps> | ReactElement<ActionMenuOverlayProps>>\n /**\n * Determines whether the ActionMenu is disabled\n */\n disabled?: boolean\n /**\n * Determines whether the ActionMenu is open by default\n */\n open?: boolean\n /**\n * Callback that is called when an item is selected.\n * The value of the selected item is passed as an argument.\n */\n onSelect?: (newValue: string) => void\n /**\n * The selection variant of the ActionMenu.\n * - `single`: Only one item can be selected at a time. Menu items as a menuitemradio.\n * - `none`: No items can be selected. Menu items as a menuitem.\n */\n selectionVariant?: 'single' | 'none'\n /**\n * Test id for the ActionMenu\n */\n 'data-testid'?: string\n /**\n * Horizontal alignment of the menu relative to the bottom of the button\n */\n menuAlignment?: 'start' | 'end'\n /**\n * Size configuratin of the ActionMenu\n */\n size?: ActionMenuSizes\n /*\n * Side the menu overlay appears\n */\n menuSide?: PositionSettings['side']\n /**\n * Alternative behavior for the button and menu items\n * - `default`: The button and menu items behave as a standard button and menu item.\n * - `split-button`: The button behaves as a split button, and the menu items behave as links.\n */\n mode?: ActionMenuButtonModes\n} & BaseProps<HTMLDivElement>\n\ntype ActionMenuContextType = {\n size?: ActionMenuSizes\n setSize?: React.Dispatch<React.SetStateAction<ActionMenuSizes | undefined>>\n onMenuToggle?: () => void\n}\n\nconst ActionMenuContext = React.createContext<ActionMenuContextType>({})\n\nexport const useActionMenuContext = (): ActionMenuContextType => {\n return React.useContext(ActionMenuContext)\n}\n\ntype ActionMenuProviderProps = ActionMenuProps & Pick<ActionMenuContextType, 'onMenuToggle'>\n\nexport const ActionMenuProvider: React.FC<ActionMenuProviderProps> = ({size, children, onMenuToggle}) => {\n const [currentSize, setSize] = useState(size)\n\n return (\n <ActionMenuContext.Provider value={{size: currentSize, setSize, onMenuToggle}}>\n {children}\n </ActionMenuContext.Provider>\n )\n}\n\nconst _ActionMenuRoot = memo(\n ({\n id,\n children,\n 'data-testid': testId,\n disabled,\n open = false,\n selectionVariant = 'none',\n menuAlignment = 'end',\n size = 'medium',\n menuSide,\n onSelect,\n mode = 'default',\n }: ActionMenuProps) => {\n const [showMenu, setShowMenu] = useState(open)\n const floatingElementRef = useRef<HTMLUListElement>(null)\n const anchorElementRef = useRef<HTMLButtonElement>(null)\n const instanceId = useId(id)\n\n useOnClickOutside(floatingElementRef, () => setShowMenu(false), anchorElementRef)\n\n const closeMenuCallback = useCallback(() => {\n setShowMenu(false)\n }, [])\n\n useKeyboardEscape(closeMenuCallback)\n\n const toggleMenu = useCallback(() => {\n setShowMenu(!showMenu)\n }, [showMenu])\n\n const handleOnSelect = useCallback(\n (newValue: string) => {\n if (onSelect) onSelect(newValue)\n toggleMenu()\n },\n [onSelect, toggleMenu],\n )\n\n const handleItemSelection = useCallback(\n (newValue: string) => {\n handleOnSelect(newValue)\n toggleMenu()\n anchorElementRef.current?.focus()\n },\n [handleOnSelect, toggleMenu, anchorElementRef],\n )\n\n useEffect(() => {\n if (showMenu && floatingElementRef.current) {\n const floatingElement = floatingElementRef.current\n const isSplitLayout = mode === 'split-button'\n const splitLayoutFilter = isSplitLayout ? element => element.tagName === 'A' : undefined\n\n focusZone(floatingElementRef.current, {\n bindKeys: FocusKeys.ArrowVertical,\n focusableElementFilter: splitLayoutFilter,\n focusInStrategy: isSplitLayout ? 'first' : undefined,\n })\n\n // enter selects item\n floatingElement.addEventListener('keydown', event => {\n if (event.key === 'Enter') {\n const target = event.target as HTMLElement\n\n // Get the proper element containing the data-value\n const targetElement = target.tagName === 'A' ? target.closest('li') : target\n\n if (!targetElement || targetElement.getAttribute('aria-disabled') === 'true') return\n\n const value = targetElement.getAttribute('data-value')\n if (value) {\n handleOnSelect(value)\n setShowMenu(false)\n setTimeout(() => {\n anchorElementRef.current?.focus()\n }, 10)\n }\n }\n })\n\n const targetSelector = isSplitLayout ? 'a' : 'li'\n\n // focusses first item\n const firstItem = floatingElementRef.current.querySelector(targetSelector)\n if (firstItem) {\n setTimeout(() => {\n firstItem.focus()\n }, 10)\n }\n\n const lastItem =\n floatingElement.querySelectorAll(targetSelector)[floatingElement.querySelectorAll(targetSelector).length - 1]\n lastItem.addEventListener('keydown', (event: Event) => {\n const keyboardEvent = event as KeyboardEvent\n if (keyboardEvent.key === 'ArrowDown') {\n keyboardEvent.preventDefault()\n firstItem?.focus()\n }\n })\n\n firstItem?.addEventListener('keydown', (event: Event) => {\n const keyboardEvent = event as KeyboardEvent\n if (keyboardEvent.key === 'ArrowUp') {\n keyboardEvent.preventDefault()\n lastItem.focus()\n }\n })\n\n //on escape refocus\n floatingElement.addEventListener('keydown', (event: Event) => {\n const keyboardEvent = event as KeyboardEvent\n if (keyboardEvent.key === 'Escape') {\n anchorElementRef.current?.focus()\n }\n })\n }\n }, [showMenu, floatingElementRef, mode, handleItemSelection, toggleMenu, handleOnSelect])\n\n // Calculate the position of the menu\n const {position} = useAnchoredPosition(\n {\n floatingElementRef,\n anchorElementRef,\n align: menuAlignment,\n allowOutOfBounds: true,\n side: menuSide,\n },\n [showMenu],\n )\n\n const {Button: SelectButton, Overlay: SelectOverlay} = Children.toArray(children).reduce<{\n Button?: ReactElement<ActionMenuButtonProps>\n Overlay?: ReactElement<ActionMenuOverlayProps>\n }>((acc, child) => {\n if (isValidElement<ActionMenuButtonProps>(child) && child.type === ActionMenuButton) {\n acc.Button = cloneElement(child, {\n ref: anchorElementRef as React.RefObject<HTMLButtonElement>,\n className: clsx(child.props.className, styles[`ActionMenu__button--${mode}`], showMenu),\n menuOpen: showMenu,\n disabled,\n id: `${instanceId}-button`,\n size,\n _mode: mode,\n })\n } else if (isValidElement<ActionMenuOverlayProps>(child) && child.type === ActionMenuOverlay) {\n acc.Overlay = cloneElement(child, {\n ref: floatingElementRef as React.RefObject<HTMLUListElement>,\n className: clsx(\n styles.ActionMenu__menu,\n position && styles['ActionMenu__menu--visible'],\n position && styles[`ActionMenu__menu--pos-${position.anchorSide}`],\n styles[`ActionMenu__menu--${size}`],\n mode === 'split-button' && 'ActionMenu__menu--split',\n ),\n style: {\n top: `${position?.top ?? 0}px`,\n left: `${position?.left ?? 0}px`,\n },\n id: `${instanceId}-menu`,\n children: Children.map(child.props.children, item => {\n if (isValidElement<ActionMenuItemBaseProps>(item)) {\n return cloneElement(item, {\n handler: handleItemSelection,\n type: mode === 'split-button' ? 'link' : selectionVariant,\n })\n }\n return item\n }),\n })\n }\n return acc\n }, {})\n\n return (\n <ActionMenuProvider size={size} onMenuToggle={toggleMenu}>\n <div\n id={instanceId}\n className={clsx(styles.ActionMenu, disabled && styles['ActionMenu--disabled'])}\n data-testid={testId || testIds.root}\n >\n {SelectButton}\n {showMenu ? SelectOverlay : null}\n </div>\n </ActionMenuProvider>\n )\n },\n)\n\ntype ActionMenuButtonProps = PropsWithChildren<\n BaseProps<HTMLButtonElement> & Pick<React.ButtonHTMLAttributes<HTMLButtonElement>, 'id' | 'disabled' | 'onClick'>\n> & {\n as?: ButtonProps<'a'>['as']\n href?: ButtonProps<'a'>['href']\n menuOpen?: boolean\n 'data-testid'?: string\n size?: ActionMenuSizes\n _mode?: ActionMenuButtonModes\n variant?: ButtonProps<'a'>['variant']\n leadingVisual?: ButtonProps<'a'>['leadingVisual']\n}\n\nconst ActionMenuButton = forwardRef<HTMLButtonElement, ActionMenuButtonProps>(\n (\n {\n as,\n href,\n id,\n children,\n className,\n 'data-testid': testId,\n disabled,\n menuOpen,\n size,\n _mode = 'default',\n onClick,\n leadingVisual,\n variant,\n ...props\n },\n ref,\n ) => {\n const {onMenuToggle} = useActionMenuContext()\n const handleClick = useCallback(\n (event: React.MouseEvent<HTMLButtonElement>) => {\n onClick?.(event)\n\n if (!event.defaultPrevented) {\n onMenuToggle?.()\n }\n },\n [onClick, onMenuToggle],\n )\n\n if (_mode === 'split-button') {\n const splitButtonVariant = variant ?? 'primary'\n\n return (\n <div className={clsx(styles.ActionMenu__button, styles[`ActionMenu__button--${size}`], className)}>\n <Button\n as={as}\n href={href}\n className={clsx(\n styles['ActionMenu__innerButton--split-button'],\n styles[`ActionMenu__innerButton--${splitButtonVariant}`],\n styles[`ActionMenu__innerButton--${size}`],\n disabled && styles['ActionMenu__innerButton--disabled'],\n )}\n variant={splitButtonVariant}\n aria-disabled={disabled}\n data-testid={testId || testIds.button}\n size={size}\n leadingVisual={leadingVisual}\n onClick={onClick}\n {...props}\n >\n <span className={styles['ActionMenu__button-text']}>{children}</span>\n </Button>\n <Button\n ref={ref}\n id={id}\n as=\"button\"\n className={styles['ActionMenu__innerButton--split-button']}\n variant={splitButtonVariant}\n aria-haspopup=\"true\"\n aria-label=\"Menu\"\n size={size}\n aria-expanded={menuOpen ? 'true' : 'false'}\n onClick={onMenuToggle}\n disabled={disabled}\n >\n <ChevronDownIcon className={styles['ActionMenu__inner-button-dropdown-icon']} />\n </Button>\n </div>\n )\n }\n\n return (\n <Button\n ref={ref}\n id={id}\n className={clsx(styles.ActionMenu__button, styles[`ActionMenu__button--${size}`], className)}\n aria-haspopup=\"true\"\n aria-expanded={menuOpen ? 'true' : 'false'}\n disabled={disabled}\n data-testid={testId || testIds.button}\n size={size}\n variant={variant}\n leadingVisual={leadingVisual}\n trailingVisual={<ChevronDownIcon />}\n onClick={handleClick}\n {...props}\n >\n <span className={styles['ActionMenu__button-text']}>{children}</span>\n </Button>\n )\n },\n)\n\ntype ActionMenuItemBaseProps = {\n handler?: (newValue: string) => void\n type?: 'none' | 'single' | 'link'\n disabled?: boolean\n size?: ActionMenuSizes\n leadingVisual?: React.ReactElement | React.ReactNode | Icon\n} & PropsWithChildren<React.HTMLProps<HTMLLIElement>>\n\ntype ActionMenuItemAnchorProps = ActionMenuItemBaseProps & {\n as: 'a'\n} & Omit<React.HTMLProps<HTMLAnchorElement>, keyof ActionMenuItemBaseProps | 'as'>\n\n// Type for when 'as' is not set or is anything other than 'a'\ntype ActionMenuItemDefaultProps = ActionMenuItemBaseProps & {\n as?: string\n value?: string\n selected?: boolean\n} & Omit<React.HTMLProps<HTMLLIElement>, keyof ActionMenuItemBaseProps | 'as'>\n\nconst roleTypeMap = {\n none: 'menuitem',\n single: 'menuitemradio',\n link: 'menuitem',\n}\n\nconst ActionMenuItem = ({\n as,\n children,\n className,\n disabled,\n handler,\n selected,\n type,\n value,\n onClick,\n onKeyDown,\n leadingVisual: LeadingVisual,\n ...props\n}: ActionMenuItemAnchorProps | ActionMenuItemDefaultProps) => {\n const {size} = useActionMenuContext()\n\n const handleClick = useCallback(\n (e: React.MouseEvent<HTMLLIElement>) => {\n onClick?.(e)\n\n if (!disabled) {\n handler?.(String(value))\n }\n },\n [handler, value, disabled, onClick],\n )\n\n const handleKeyDown = useCallback(\n (e: React.KeyboardEvent<HTMLLIElement>) => {\n onKeyDown?.(e)\n\n if (!disabled && e.key === 'Enter') {\n handler?.(String(value))\n }\n },\n [handler, value, disabled, onKeyDown],\n )\n\n const liProps = useMemo<React.HTMLProps<HTMLLIElement> & {'data-value': unknown}>(\n () => ({\n className: clsx(\n styles.ActionMenu__item,\n type === 'single' && styles[`ActionMenu__item--selection-type-${type}`],\n size && styles[`ActionMenu__item--${size}`],\n className,\n ),\n role: roleTypeMap[type || 'single'],\n 'aria-disabled': disabled,\n tabIndex: -1,\n 'data-value': value,\n ...props,\n }),\n [props, type, size, className, disabled, value],\n )\n\n const contents = useMemo(\n () => (\n <>\n {React.isValidElement<{width?: number; height?: number}>(LeadingVisual)\n ? React.cloneElement(LeadingVisual, {\n width: LeadingVisual.props.width || 20,\n height: LeadingVisual.props.width || 20,\n })\n : null}\n {type === 'single' && (\n <span className={styles['ActionMenu__item-leadingVisual']}>\n {selected && (\n <CheckIcon\n className={clsx(styles['ActionMenu__item-icon'], disabled && styles['ActionMenu__item-icon--disabled'])}\n size={16}\n />\n )}\n </span>\n )}\n\n <span className={styles['ActionMenu__item-text']}>\n <Text\n variant={disabled ? 'muted' : 'default'}\n size={size === 'medium' ? '200' : '100'}\n className={clsx(disabled && styles['ActionMenu__item-content--disabled'])}\n >\n {children}\n </Text>\n </span>\n </>\n ),\n [LeadingVisual, children, selected, disabled, size, type],\n )\n\n if (as === 'a') {\n return (\n <li\n // This role will be overridden by the role prop in `liProps`. It's just here to keep the linter happy\n role=\"menuitem\"\n {...liProps}\n // Intentionally not calling handle[Click/KeyDown] here so as to not call the handler\n onClick={onClick}\n onKeyDown={onKeyDown}\n >\n <a\n className={clsx(styles['ActionMenu__item-anchor'], disabled && styles['ActionMenu__item--disabled'])}\n href={props.href}\n >\n {contents}\n </a>\n </li>\n )\n }\n\n return (\n // eslint-disable-next-line jsx-a11y/role-supports-aria-props\n <li\n // This role will be overridden by the role prop in `liProps`. It's just here to keep the linter happy\n role=\"menuitem\"\n {...liProps}\n aria-checked={type === 'none' ? undefined : selected ? 'true' : 'false'}\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n >\n {contents}\n </li>\n )\n}\n\ntype ActionMenuOverlayProps = PropsWithChildren<\n BaseProps<HTMLUListElement> & React.HTMLAttributes<HTMLUListElement>\n> & {\n 'aria-label': string\n id?: string\n 'data-testid'?: string\n menuOpen?: boolean\n style?: React.CSSProperties\n}\n\nconst ActionMenuOverlay = forwardRef<HTMLUListElement, ActionMenuOverlayProps>(\n ({children, className, 'data-testid': testId, menuOpen, ...rest}, ref) => {\n const {colorMode: defaultColorMode} = useTheme()\n\n const colorMode = className?.includes('ActionMenu__menu--split') ? 'light' : defaultColorMode\n\n return (\n <ThemeProvider colorMode={colorMode}>\n <ul ref={ref} className={clsx(className)} role=\"menu\" data-testid={testId || testIds.list} {...rest}>\n {children}\n </ul>\n </ThemeProvider>\n )\n },\n)\n\n/**\n * Use ActionMenu to display a list of actions or selections that expand through a trigger button.\n * @see https://primer.style/brand/components/ActionMenu\n */\nexport const ActionMenu = Object.assign(_ActionMenuRoot, {\n Button: ActionMenuButton,\n Item: ActionMenuItem,\n Overlay: ActionMenuOverlay,\n testIds,\n})\n"],"mappings":";;;;;;;;;;;;;;;;AAkCA,IAAM,IAAU;CACd,MAAM;CACN,IAAI,SAAS;AACX,SAAO,GAAG,KAAK,KAAK;;CAEtB,IAAI,UAAU;AACZ,SAAO,GAAG,KAAK,KAAK;;CAEtB,IAAI,OAAO;AACT,SAAO,GAAG,KAAK,KAAK;;CAEtB,IAAI,OAAO;AACT,SAAO,GAAG,KAAK,KAAK;;CAEvB,EAIY,IAAyB;CACpC;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACD,EAEY,IAAkB,CAAC,SAAS,SAAS,EAErC,IAAwB,CAAC,WAAW,eAAe,EA8D1D,IAAoB,EAAM,cAAqC,EAAE,CAAC,EAE3D,UACJ,EAAM,WAAW,EAAkB,EAK/B,KAAyD,EAAC,SAAM,aAAU,sBAAkB;CACvG,IAAM,CAAC,GAAa,KAAW,EAAS,EAAK;AAE7C,QACE,kBAAC,EAAkB,UAAnB;EAA4B,OAAO;GAAC,MAAM;GAAa;GAAS;GAAa;EAC1E;EAC0B,CAAA;GAI3B,IAAkB,GACrB,EACC,OACA,aACA,eAAe,GACf,aACA,UAAO,IACP,sBAAmB,QACnB,mBAAgB,OAChB,UAAO,UACP,aACA,aACA,UAAO,gBACc;CACrB,IAAM,CAAC,GAAU,KAAe,EAAS,EAAK,EACxC,IAAqB,EAAyB,KAAK,EACnD,IAAmB,EAA0B,KAAK,EAClD,IAAa,EAAM,EAAG;AAQ5B,CANA,EAAkB,SAA0B,EAAY,GAAM,EAAE,EAAiB,EAMjF,EAJ0B,QAAkB;AAC1C,IAAY,GAAM;IACjB,EAAE,CAEa,CAAkB;CAEpC,IAAM,IAAa,QAAkB;AACnC,IAAY,CAAC,EAAS;IACrB,CAAC,EAAS,CAAC,EAER,IAAiB,GACpB,MAAqB;AAEpB,EADI,KAAU,EAAS,EAAS,EAChC,GAAY;IAEd,CAAC,GAAU,EAAW,CACvB,EAEK,IAAsB,GACzB,MAAqB;AAGpB,EAFA,EAAe,EAAS,EACxB,GAAY,EACZ,EAAiB,SAAS,OAAO;IAEnC;EAAC;EAAgB;EAAY;EAAiB,CAC/C;AAED,SAAgB;AACd,MAAI,KAAY,EAAmB,SAAS;GAC1C,IAAM,IAAkB,EAAmB,SACrC,IAAgB,MAAS,gBACzB,IAAoB,KAAgB,MAAW,EAAQ,YAAY,MAAM,KAAA;AAS/E,GAPA,EAAU,EAAmB,SAAS;IACpC,UAAU,EAAU;IACpB,wBAAwB;IACxB,iBAAiB,IAAgB,UAAU,KAAA;IAC5C,CAAC,EAGF,EAAgB,iBAAiB,YAAW,MAAS;AACnD,QAAI,EAAM,QAAQ,SAAS;KACzB,IAAM,IAAS,EAAM,QAGf,IAAgB,EAAO,YAAY,MAAM,EAAO,QAAQ,KAAK,GAAG;AAEtE,SAAI,CAAC,KAAiB,EAAc,aAAa,gBAAgB,KAAK,OAAQ;KAE9E,IAAM,IAAQ,EAAc,aAAa,aAAa;AACtD,KAAI,MACF,EAAe,EAAM,EACrB,EAAY,GAAM,EAClB,iBAAiB;AACf,QAAiB,SAAS,OAAO;QAChC,GAAG;;KAGV;GAEF,IAAM,IAAiB,IAAgB,MAAM,MAGvC,IAAY,EAAmB,QAAQ,cAAc,EAAe;AAC1E,GAAI,KACF,iBAAiB;AACf,MAAU,OAAO;MAChB,GAAG;GAGR,IAAM,IACJ,EAAgB,iBAAiB,EAAe,CAAC,EAAgB,iBAAiB,EAAe,CAAC,SAAS;AAkB7G,GAjBA,EAAS,iBAAiB,YAAY,MAAiB;IACrD,IAAM,IAAgB;AACtB,IAAI,EAAc,QAAQ,gBACxB,EAAc,gBAAgB,EAC9B,GAAW,OAAO;KAEpB,EAEF,GAAW,iBAAiB,YAAY,MAAiB;IACvD,IAAM,IAAgB;AACtB,IAAI,EAAc,QAAQ,cACxB,EAAc,gBAAgB,EAC9B,EAAS,OAAO;KAElB,EAGF,EAAgB,iBAAiB,YAAY,MAAiB;AAE5D,IAAI,EAAc,QAAQ,YACxB,EAAiB,SAAS,OAAO;KAEnC;;IAEH;EAAC;EAAU;EAAoB;EAAM;EAAqB;EAAY;EAAe,CAAC;CAGzF,IAAM,EAAC,gBAAY,EACjB;EACE;EACA;EACA,OAAO;EACP,kBAAkB;EAClB,MAAM;EACP,EACD,CAAC,EAAS,CACX,EAEK,EAAC,QAAQ,GAAc,SAAS,MAAiB,EAAS,QAAQ,EAAS,CAAC,QAG9E,GAAK,OACH,EAAsC,EAAM,IAAI,EAAM,SAAS,IACjE,EAAI,SAAS,EAAa,GAAO;EAC/B,KAAK;EACL,WAAW,EAAK,EAAM,MAAM,WAAW,EAAO,uBAAuB,MAAS,EAAS;EACvF,UAAU;EACV;EACA,IAAI,GAAG,EAAW;EAClB;EACA,OAAO;EACR,CAAC,GACO,EAAuC,EAAM,IAAI,EAAM,SAAS,MACzE,EAAI,UAAU,EAAa,GAAO;EAChC,KAAK;EACL,WAAW,EACT,EAAO,kBACP,KAAY,EAAO,8BACnB,KAAY,EAAO,yBAAyB,EAAS,eACrD,EAAO,qBAAqB,MAC5B,MAAS,kBAAkB,0BAC5B;EACD,OAAO;GACL,KAAK,GAAG,GAAU,OAAO,EAAE;GAC3B,MAAM,GAAG,GAAU,QAAQ,EAAE;GAC9B;EACD,IAAI,GAAG,EAAW;EAClB,UAAU,EAAS,IAAI,EAAM,MAAM,WAAU,MACvC,EAAwC,EAAK,GACxC,EAAa,GAAM;GACxB,SAAS;GACT,MAAM,MAAS,iBAAiB,SAAS;GAC1C,CAAC,GAEG,EACP;EACH,CAAC,GAEG,IACN,EAAE,CAAC;AAEN,QACE,kBAAC,GAAD;EAA0B;EAAM,cAAc;YAC5C,kBAAC,OAAD;GACE,IAAI;GACJ,WAAW,EAAK,EAAO,YAAY,KAAY,EAAO,wBAAwB;GAC9E,eAAa,KAAU,EAAQ;aAHjC,CAKG,GACA,IAAW,IAAgB,KACxB;;EACa,CAAA;EAG1B,EAeK,IAAmB,GAErB,EACE,OACA,SACA,OACA,aACA,cACA,eAAe,GACf,aACA,aACA,SACA,WAAQ,WACR,YACA,kBACA,YACA,GAAG,KAEL,MACG;CACH,IAAM,EAAC,oBAAgB,GAAsB,EACvC,IAAc,GACjB,MAA+C;AAG9C,EAFA,IAAU,EAAM,EAEX,EAAM,oBACT,KAAgB;IAGpB,CAAC,GAAS,EAAa,CACxB;AAED,KAAI,MAAU,gBAAgB;EAC5B,IAAM,IAAqB,KAAW;AAEtC,SACE,kBAAC,OAAD;GAAK,WAAW,EAAK,EAAO,oBAAoB,EAAO,uBAAuB,MAAS,EAAU;aAAjG,CACE,kBAAC,GAAD;IACM;IACE;IACN,WAAW,EACT,EAAO,0CACP,EAAO,4BAA4B,MACnC,EAAO,4BAA4B,MACnC,KAAY,EAAO,qCACpB;IACD,SAAS;IACT,iBAAe;IACf,eAAa,KAAU,EAAQ;IACzB;IACS;IACN;IACT,GAAI;cAEJ,kBAAC,QAAD;KAAM,WAAW,EAAO;KAA6B;KAAgB,CAAA;IAC9D,CAAA,EACT,kBAAC,GAAD;IACO;IACD;IACJ,IAAG;IACH,WAAW,EAAO;IAClB,SAAS;IACT,iBAAc;IACd,cAAW;IACL;IACN,iBAAe,IAAW,SAAS;IACnC,SAAS;IACC;cAEV,kBAAC,GAAD,EAAiB,WAAW,EAAO,2CAA6C,CAAA;IACzE,CAAA,CACL;;;AAIV,QACE,kBAAC,GAAD;EACO;EACD;EACJ,WAAW,EAAK,EAAO,oBAAoB,EAAO,uBAAuB,MAAS,EAAU;EAC5F,iBAAc;EACd,iBAAe,IAAW,SAAS;EACzB;EACV,eAAa,KAAU,EAAQ;EACzB;EACG;EACM;EACf,gBAAgB,kBAAC,GAAD,EAAmB,CAAA;EACnC,SAAS;EACT,GAAI;YAEJ,kBAAC,QAAD;GAAM,WAAW,EAAO;GAA6B;GAAgB,CAAA;EAC9D,CAAA;EAGd,EAqBK,IAAc;CAClB,MAAM;CACN,QAAQ;CACR,MAAM;CACP,EAEK,KAAkB,EACtB,OACA,aACA,cACA,aACA,YACA,aACA,SACA,UACA,YACA,cACA,eAAe,GACf,GAAG,QACyD;CAC5D,IAAM,EAAC,YAAQ,GAAsB,EAE/B,IAAc,GACjB,MAAuC;AAGtC,EAFA,IAAU,EAAE,EAEP,KACH,IAAU,OAAO,EAAM,CAAC;IAG5B;EAAC;EAAS;EAAO;EAAU;EAAQ,CACpC,EAEK,IAAgB,GACnB,MAA0C;AAGzC,EAFA,IAAY,EAAE,EAEV,CAAC,KAAY,EAAE,QAAQ,WACzB,IAAU,OAAO,EAAM,CAAC;IAG5B;EAAC;EAAS;EAAO;EAAU;EAAU,CACtC,EAEK,IAAU,SACP;EACL,WAAW,EACT,EAAO,kBACP,MAAS,YAAY,EAAO,oCAAoC,MAChE,KAAQ,EAAO,qBAAqB,MACpC,EACD;EACD,MAAM,EAAY,KAAQ;EAC1B,iBAAiB;EACjB,UAAU;EACV,cAAc;EACd,GAAG;EACJ,GACD;EAAC;EAAO;EAAM;EAAM;EAAW;EAAU;EAAM,CAChD,EAEK,IAAW,QAEb,kBAAA,GAAA,EAAA,UAAA;EACG,EAAM,eAAkD,EAAc,GACnE,EAAM,aAAa,GAAe;GAChC,OAAO,EAAc,MAAM,SAAS;GACpC,QAAQ,EAAc,MAAM,SAAS;GACtC,CAAC,GACF;EACH,MAAS,YACR,kBAAC,QAAD;GAAM,WAAW,EAAO;aACrB,KACC,kBAAC,GAAD;IACE,WAAW,EAAK,EAAO,0BAA0B,KAAY,EAAO,mCAAmC;IACvG,MAAM;IACN,CAAA;GAEC,CAAA;EAGT,kBAAC,QAAD;GAAM,WAAW,EAAO;aACtB,kBAAC,GAAD;IACE,SAAS,IAAW,UAAU;IAC9B,MAAM,MAAS,WAAW,QAAQ;IAClC,WAAW,EAAK,KAAY,EAAO,sCAAsC;IAExE;IACI,CAAA;GACF,CAAA;EACN,EAAA,CAAA,EAEL;EAAC;EAAe;EAAU;EAAU;EAAU;EAAM;EAAK,CAC1D;AAsBD,QApBI,MAAO,MAEP,kBAAC,MAAD;EAEE,MAAK;EACL,GAAI;EAEK;EACE;YAEX,kBAAC,KAAD;GACE,WAAW,EAAK,EAAO,4BAA4B,KAAY,EAAO,8BAA8B;GACpG,MAAM,EAAM;aAEX;GACC,CAAA;EACD,CAAA,GAMP,kBAAC,MAAD;EAEE,MAAK;EACL,GAAI;EACJ,gBAAc,MAAS,SAAS,KAAA,IAAY,IAAW,SAAS;EAChE,SAAS;EACT,WAAW;YAEV;EACE,CAAA;GAcH,IAAoB,GACvB,EAAC,aAAU,cAAW,eAAe,GAAQ,aAAU,GAAG,KAAO,MAAQ;CACxE,IAAM,EAAC,WAAW,MAAoB,GAAU;AAIhD,QACE,kBAAC,GAAD;EAA0B,WAHV,GAAW,SAAS,0BAA0B,GAAG,UAAU;YAIzE,kBAAC,MAAD;GAAS;GAAK,WAAW,EAAK,EAAU;GAAE,MAAK;GAAO,eAAa,KAAU,EAAQ;GAAM,GAAI;GAC5F;GACE,CAAA;EACS,CAAA;EAGrB,EAMY,IAAa,OAAO,OAAO,GAAiB;CACvD,QAAQ;CACR,MAAM;CACN,SAAS;CACT;CACD,CAAC"}
1
+ {"version":3,"file":"ActionMenu.js","names":[],"sources":["../../src/ActionMenu/ActionMenu.tsx"],"sourcesContent":["import React, {\n Children,\n isValidElement,\n cloneElement,\n useRef,\n useCallback,\n useState,\n useEffect,\n PropsWithChildren,\n forwardRef,\n memo,\n ReactElement,\n useMemo,\n} from 'react'\nimport {Button, ButtonProps} from '../Button'\nimport {Text} from '../Text'\nimport {ThemeProvider, useTheme} from '../ThemeProvider'\nimport {useAnchoredPosition} from '../hooks/useAnchoredPosition'\nimport {useOnClickOutside} from '../hooks/useOnClickOutside'\nimport {useKeyboardEscape} from '../hooks/useKeyboardEscape'\n\nimport {clsx} from 'clsx'\nimport {CheckIcon, ChevronDownIcon, type Icon} from '@primer/octicons-react'\nimport {useId} from '../hooks/useId'\n\nimport {FocusKeys, type PositionSettings, focusZone} from '@primer/behaviors'\nimport type {BaseProps} from '../component-helpers'\n\n/**\n * Design tokens\n */\nimport '@primer/brand-primitives/lib/design-tokens/css/tokens/functional/components/action-menu/colors-with-modes.css'\n\n/** * Main Stylesheet (as a CSS Module) */\nimport styles from './ActionMenu.module.css'\n\nconst testIds = {\n root: 'ActionMenu',\n get button() {\n return `${this.root}-button`\n },\n get overlay() {\n return `${this.root}-overlay`\n },\n get list() {\n return `${this.root}-list`\n },\n get item() {\n return `${this.root}-list-item`\n },\n}\n\n// primer behaviors doesn't export these values, recreating manually\n// https://github.com/primer/behaviors/blob/main/src/anchored-position.ts#L5\nexport const actionMenuOverlaySides = [\n 'inside-top',\n 'inside-bottom',\n 'inside-left',\n 'inside-right',\n 'inside-center',\n 'outside-top',\n 'outside-bottom',\n 'outside-left',\n 'outside-right',\n] as PositionSettings['side'][]\n\nexport const ActionMenuSizes = ['small', 'medium'] as const\n\nexport const ActionMenuButtonModes = ['default', 'split-button'] as const\nexport type ActionMenuButtonModes = (typeof ActionMenuButtonModes)[number]\n\nexport type ActionMenuSizes = (typeof ActionMenuSizes)[number]\n\nexport type ActionMenuProps = {\n /**\n * The content of the ActionMenu. Must be an ActionMenu.Button and an ActionMenu.Overlay\n */\n children:\n | ReactElement<ActionMenuButtonProps>\n | ReactElement<ActionMenuOverlayProps>\n | Array<ReactElement<ActionMenuButtonProps> | ReactElement<ActionMenuOverlayProps>>\n /**\n * Determines whether the ActionMenu is disabled\n */\n disabled?: boolean\n /**\n * Determines whether the ActionMenu is open by default\n */\n open?: boolean\n /**\n * Callback that is called when an item is selected.\n * The value of the selected item is passed as an argument.\n */\n onSelect?: (newValue: string) => void\n /**\n * The selection variant of the ActionMenu.\n * - `single`: Only one item can be selected at a time. Menu items as a menuitemradio.\n * - `none`: No items can be selected. Menu items as a menuitem.\n */\n selectionVariant?: 'single' | 'none'\n /**\n * Test id for the ActionMenu\n */\n 'data-testid'?: string\n /**\n * Horizontal alignment of the menu relative to the bottom of the button\n */\n menuAlignment?: 'start' | 'end'\n /**\n * Size configuratin of the ActionMenu\n */\n size?: ActionMenuSizes\n /*\n * Side the menu overlay appears\n */\n menuSide?: PositionSettings['side']\n /**\n * Alternative behavior for the button and menu items\n * - `default`: The button and menu items behave as a standard button and menu item.\n * - `split-button`: The button behaves as a split button, and the menu items behave as links.\n */\n mode?: ActionMenuButtonModes\n} & BaseProps<HTMLDivElement>\n\ntype ActionMenuContextType = {\n size?: ActionMenuSizes\n setSize?: React.Dispatch<React.SetStateAction<ActionMenuSizes | undefined>>\n onMenuToggle?: () => void\n}\n\nconst ActionMenuContext = React.createContext<ActionMenuContextType>({})\n\nexport const useActionMenuContext = (): ActionMenuContextType => {\n return React.useContext(ActionMenuContext)\n}\n\ntype ActionMenuProviderProps = ActionMenuProps & Pick<ActionMenuContextType, 'onMenuToggle'>\n\nexport const ActionMenuProvider: React.FC<ActionMenuProviderProps> = ({size, children, onMenuToggle}) => {\n const [currentSize, setSize] = useState(size)\n\n return (\n <ActionMenuContext.Provider value={{size: currentSize, setSize, onMenuToggle}}>\n {children}\n </ActionMenuContext.Provider>\n )\n}\n\nconst _ActionMenuRoot = memo(\n ({\n id,\n children,\n 'data-testid': testId,\n disabled,\n open = false,\n selectionVariant = 'none',\n menuAlignment = 'end',\n size = 'medium',\n menuSide,\n onSelect,\n mode = 'default',\n }: ActionMenuProps) => {\n const [showMenu, setShowMenu] = useState(open)\n const floatingElementRef = useRef<HTMLUListElement>(null)\n const anchorElementRef = useRef<HTMLButtonElement>(null)\n const instanceId = useId(id)\n\n useOnClickOutside(floatingElementRef, () => setShowMenu(false), anchorElementRef)\n\n const closeMenuCallback = useCallback(() => {\n setShowMenu(false)\n }, [])\n\n useKeyboardEscape(closeMenuCallback)\n\n const toggleMenu = useCallback(() => {\n setShowMenu(!showMenu)\n }, [showMenu])\n\n const handleOnSelect = useCallback(\n (newValue: string) => {\n if (onSelect) onSelect(newValue)\n toggleMenu()\n },\n [onSelect, toggleMenu],\n )\n\n const handleItemSelection = useCallback(\n (newValue: string) => {\n handleOnSelect(newValue)\n toggleMenu()\n anchorElementRef.current?.focus()\n },\n [handleOnSelect, toggleMenu, anchorElementRef],\n )\n\n useEffect(() => {\n if (showMenu && floatingElementRef.current) {\n const floatingElement = floatingElementRef.current\n const isSplitLayout = mode === 'split-button'\n const splitLayoutFilter = isSplitLayout ? element => element.tagName === 'A' : undefined\n\n focusZone(floatingElementRef.current, {\n bindKeys: FocusKeys.ArrowVertical,\n focusableElementFilter: splitLayoutFilter,\n focusInStrategy: isSplitLayout ? 'first' : undefined,\n })\n\n // enter selects item\n floatingElement.addEventListener('keydown', event => {\n if (event.key === 'Enter') {\n const target = event.target as HTMLElement\n\n // Get the proper element containing the data-value\n const targetElement = target.tagName === 'A' ? target.closest('li') : target\n\n if (!targetElement || targetElement.getAttribute('aria-disabled') === 'true') return\n\n const value = targetElement.getAttribute('data-value')\n if (value) {\n handleOnSelect(value)\n setShowMenu(false)\n setTimeout(() => {\n anchorElementRef.current?.focus()\n }, 10)\n }\n }\n })\n\n const targetSelector = isSplitLayout ? 'a' : 'li'\n\n // focusses first item\n const firstItem = floatingElementRef.current.querySelector(targetSelector)\n if (firstItem) {\n setTimeout(() => {\n firstItem.focus()\n }, 10)\n }\n\n const lastItem =\n floatingElement.querySelectorAll(targetSelector)[floatingElement.querySelectorAll(targetSelector).length - 1]\n lastItem.addEventListener('keydown', (event: Event) => {\n const keyboardEvent = event as KeyboardEvent\n if (keyboardEvent.key === 'ArrowDown') {\n keyboardEvent.preventDefault()\n firstItem?.focus()\n }\n })\n\n firstItem?.addEventListener('keydown', (event: Event) => {\n const keyboardEvent = event as KeyboardEvent\n if (keyboardEvent.key === 'ArrowUp') {\n keyboardEvent.preventDefault()\n lastItem.focus()\n }\n })\n\n //on escape refocus\n floatingElement.addEventListener('keydown', (event: Event) => {\n const keyboardEvent = event as KeyboardEvent\n if (keyboardEvent.key === 'Escape') {\n anchorElementRef.current?.focus()\n }\n })\n }\n }, [showMenu, floatingElementRef, mode, handleItemSelection, toggleMenu, handleOnSelect])\n\n // Calculate the position of the menu\n const {position} = useAnchoredPosition(\n {\n floatingElementRef,\n anchorElementRef,\n align: menuAlignment,\n allowOutOfBounds: true,\n side: menuSide,\n },\n [showMenu],\n )\n\n const {Button: SelectButton, Overlay: SelectOverlay} = Children.toArray(children).reduce<{\n Button?: ReactElement<ActionMenuButtonProps>\n Overlay?: ReactElement<ActionMenuOverlayProps>\n }>((acc, child) => {\n if (isValidElement<ActionMenuButtonProps>(child) && child.type === ActionMenuButton) {\n acc.Button = cloneElement(child, {\n ref: anchorElementRef as React.RefObject<HTMLButtonElement>,\n className: clsx(child.props.className, styles[`ActionMenu__button--${mode}`], showMenu),\n menuOpen: showMenu,\n disabled,\n id: `${instanceId}-button`,\n size,\n _mode: mode,\n })\n } else if (isValidElement<ActionMenuOverlayProps>(child) && child.type === ActionMenuOverlay) {\n acc.Overlay = cloneElement(child, {\n ref: floatingElementRef as React.RefObject<HTMLUListElement>,\n className: clsx(\n styles.ActionMenu__menu,\n position && styles['ActionMenu__menu--visible'],\n position && styles[`ActionMenu__menu--pos-${position.anchorSide}`],\n styles[`ActionMenu__menu--${size}`],\n mode === 'split-button' && 'ActionMenu__menu--split',\n ),\n style: {\n top: `${position?.top ?? 0}px`,\n left: `${position?.left ?? 0}px`,\n },\n id: `${instanceId}-menu`,\n children: Children.map(child.props.children, item => {\n if (isValidElement<ActionMenuItemBaseProps>(item)) {\n return cloneElement(item, {\n handler: handleItemSelection,\n type: mode === 'split-button' ? 'link' : selectionVariant,\n })\n }\n return item\n }),\n })\n }\n return acc\n }, {})\n\n return (\n <ActionMenuProvider size={size} onMenuToggle={toggleMenu}>\n <div\n id={instanceId}\n className={clsx(styles.ActionMenu, disabled && styles['ActionMenu--disabled'])}\n data-testid={testId || testIds.root}\n >\n {SelectButton}\n {showMenu ? SelectOverlay : null}\n </div>\n </ActionMenuProvider>\n )\n },\n)\n\ntype ActionMenuButtonProps = PropsWithChildren<\n BaseProps<HTMLButtonElement> & Pick<React.ButtonHTMLAttributes<HTMLButtonElement>, 'id' | 'disabled' | 'onClick'>\n> & {\n as?: ButtonProps<'a'>['as']\n href?: ButtonProps<'a'>['href']\n menuOpen?: boolean\n 'data-testid'?: string\n size?: ActionMenuSizes\n _mode?: ActionMenuButtonModes\n variant?: ButtonProps<'a'>['variant']\n leadingVisual?: ButtonProps<'a'>['leadingVisual']\n}\n\nconst ActionMenuButton = forwardRef<HTMLButtonElement, ActionMenuButtonProps>(\n (\n {\n as,\n href,\n id,\n children,\n className,\n 'data-testid': testId,\n disabled,\n menuOpen,\n size,\n _mode = 'default',\n onClick,\n leadingVisual,\n variant,\n ...props\n },\n ref,\n ) => {\n const {onMenuToggle} = useActionMenuContext()\n const handleClick = useCallback(\n (event: React.MouseEvent<HTMLButtonElement>) => {\n onClick?.(event)\n\n if (!event.defaultPrevented) {\n onMenuToggle?.()\n }\n },\n [onClick, onMenuToggle],\n )\n\n if (_mode === 'split-button') {\n const splitButtonVariant = variant ?? 'primary'\n\n return (\n <div className={clsx(styles.ActionMenu__button, styles[`ActionMenu__button--${size}`], className)}>\n <Button\n as={as}\n href={href}\n className={clsx(\n styles['ActionMenu__innerButton--split-button'],\n styles[`ActionMenu__innerButton--${splitButtonVariant}`],\n styles[`ActionMenu__innerButton--${size}`],\n disabled && styles['ActionMenu__innerButton--disabled'],\n )}\n variant={splitButtonVariant}\n aria-disabled={disabled}\n data-testid={testId || testIds.button}\n size={size}\n leadingVisual={leadingVisual}\n onClick={onClick}\n {...props}\n >\n <span className={styles['ActionMenu__button-text']}>{children}</span>\n </Button>\n <Button\n ref={ref}\n id={id}\n as=\"button\"\n className={styles['ActionMenu__innerButton--split-button']}\n variant={splitButtonVariant}\n aria-haspopup=\"true\"\n aria-label=\"Menu\"\n size={size}\n aria-expanded={menuOpen ? 'true' : 'false'}\n onClick={onMenuToggle}\n disabled={disabled}\n >\n <ChevronDownIcon className={styles['ActionMenu__inner-button-dropdown-icon']} />\n </Button>\n </div>\n )\n }\n\n return (\n <Button\n ref={ref}\n id={id}\n className={clsx(styles.ActionMenu__button, styles[`ActionMenu__button--${size}`], className)}\n aria-haspopup=\"true\"\n aria-expanded={menuOpen ? 'true' : 'false'}\n disabled={disabled}\n data-testid={testId || testIds.button}\n size={size}\n variant={variant}\n leadingVisual={leadingVisual}\n trailingVisual={<ChevronDownIcon />}\n onClick={handleClick}\n {...props}\n >\n <span className={styles['ActionMenu__button-text']}>{children}</span>\n </Button>\n )\n },\n)\n\ntype ActionMenuItemBaseProps = {\n handler?: (newValue: string) => void\n type?: 'none' | 'single' | 'link'\n disabled?: boolean\n size?: ActionMenuSizes\n leadingVisual?: React.ReactElement | React.ReactNode | Icon\n} & PropsWithChildren<React.HTMLProps<HTMLLIElement>>\n\ntype ActionMenuItemAnchorProps = ActionMenuItemBaseProps & {\n as: 'a'\n} & Omit<React.HTMLProps<HTMLAnchorElement>, keyof ActionMenuItemBaseProps | 'as'>\n\n// Type for when 'as' is not set or is anything other than 'a'\ntype ActionMenuItemDefaultProps = ActionMenuItemBaseProps & {\n as?: string\n value?: string\n selected?: boolean\n} & Omit<React.HTMLProps<HTMLLIElement>, keyof ActionMenuItemBaseProps | 'as'>\n\nconst roleTypeMap = {\n none: 'menuitem',\n single: 'menuitemradio',\n link: 'menuitem',\n}\n\nconst ActionMenuItem = ({\n as,\n children,\n className,\n disabled,\n handler,\n selected,\n type,\n value,\n onClick,\n onKeyDown,\n leadingVisual: LeadingVisual,\n ...props\n}: ActionMenuItemAnchorProps | ActionMenuItemDefaultProps) => {\n const {size} = useActionMenuContext()\n\n const handleClick = useCallback(\n (e: React.MouseEvent<HTMLLIElement>) => {\n onClick?.(e)\n\n if (!disabled) {\n handler?.(String(value))\n }\n },\n [handler, value, disabled, onClick],\n )\n\n const handleKeyDown = useCallback(\n (e: React.KeyboardEvent<HTMLLIElement>) => {\n onKeyDown?.(e)\n\n if (!disabled && e.key === 'Enter') {\n handler?.(String(value))\n }\n },\n [handler, value, disabled, onKeyDown],\n )\n\n const liProps = useMemo<React.HTMLProps<HTMLLIElement> & {'data-value': unknown}>(\n () => ({\n className: clsx(\n styles.ActionMenu__item,\n type === 'single' && styles[`ActionMenu__item--selection-type-${type}`],\n size && styles[`ActionMenu__item--${size}`],\n className,\n ),\n role: roleTypeMap[type || 'single'],\n 'aria-disabled': disabled,\n tabIndex: -1,\n 'data-value': value,\n ...props,\n }),\n [props, type, size, className, disabled, value],\n )\n\n const contents = useMemo(\n () => (\n <>\n {React.isValidElement<{width?: number; height?: number}>(LeadingVisual)\n ? React.cloneElement(LeadingVisual, {\n width: LeadingVisual.props.width || 20,\n height: LeadingVisual.props.width || 20,\n })\n : null}\n {type === 'single' && (\n <span className={styles['ActionMenu__item-leadingVisual']}>\n {selected && (\n <CheckIcon\n className={clsx(styles['ActionMenu__item-icon'], disabled && styles['ActionMenu__item-icon--disabled'])}\n size={16}\n />\n )}\n </span>\n )}\n\n <span className={styles['ActionMenu__item-text']}>\n <Text\n variant={disabled ? 'muted' : 'default'}\n size={size === 'medium' ? '200' : '100'}\n className={clsx(disabled && styles['ActionMenu__item-content--disabled'])}\n >\n {children}\n </Text>\n </span>\n </>\n ),\n [LeadingVisual, children, selected, disabled, size, type],\n )\n\n if (as === 'a') {\n return (\n <li\n // This role will be overridden by the role prop in `liProps`. It's just here to keep the linter happy\n role=\"menuitem\"\n {...liProps}\n // Intentionally not calling handle[Click/KeyDown] here so as to not call the handler\n onClick={onClick}\n onKeyDown={onKeyDown}\n >\n <a\n className={clsx(styles['ActionMenu__item-anchor'], disabled && styles['ActionMenu__item--disabled'])}\n href={props.href}\n >\n {contents}\n </a>\n </li>\n )\n }\n\n return (\n // eslint-disable-next-line jsx-a11y/role-supports-aria-props\n <li\n // This role will be overridden by the role prop in `liProps`. It's just here to keep the linter happy\n role=\"menuitem\"\n {...liProps}\n aria-checked={type === 'none' ? undefined : selected ? 'true' : 'false'}\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n >\n {contents}\n </li>\n )\n}\n\ntype ActionMenuOverlayProps = PropsWithChildren<\n BaseProps<HTMLUListElement> & React.HTMLAttributes<HTMLUListElement>\n> & {\n 'aria-label': string\n id?: string\n 'data-testid'?: string\n menuOpen?: boolean\n style?: React.CSSProperties\n}\n\nconst ActionMenuOverlay = forwardRef<HTMLUListElement, ActionMenuOverlayProps>(\n ({children, className, 'data-testid': testId, menuOpen, ...rest}, ref) => {\n const {colorMode: defaultColorMode} = useTheme()\n\n const colorMode = className?.includes('ActionMenu__menu--split') ? 'light' : defaultColorMode\n\n return (\n <ThemeProvider colorMode={colorMode}>\n <ul ref={ref} className={clsx(className)} role=\"menu\" data-testid={testId || testIds.list} {...rest}>\n {children}\n </ul>\n </ThemeProvider>\n )\n },\n)\n\n/**\n * Use ActionMenu to display a list of actions or selections that expand through a trigger button.\n * @see https://primer.style/brand/components/ActionMenu\n */\nexport const ActionMenu = Object.assign(_ActionMenuRoot, {\n Button: ActionMenuButton,\n Item: ActionMenuItem,\n Overlay: ActionMenuOverlay,\n testIds,\n})\n"],"mappings":";;;;;;;;;;;;;;;;AAoCA,IAAM,IAAU;CACd,MAAM;CACN,IAAI,SAAS;AACX,SAAO,GAAG,KAAK,KAAK;;CAEtB,IAAI,UAAU;AACZ,SAAO,GAAG,KAAK,KAAK;;CAEtB,IAAI,OAAO;AACT,SAAO,GAAG,KAAK,KAAK;;CAEtB,IAAI,OAAO;AACT,SAAO,GAAG,KAAK,KAAK;;CAEvB,EAIY,IAAyB;CACpC;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACD,EAEY,IAAkB,CAAC,SAAS,SAAS,EAErC,IAAwB,CAAC,WAAW,eAAe,EA8D1D,IAAoB,EAAM,cAAqC,EAAE,CAAC,EAE3D,UACJ,EAAM,WAAW,EAAkB,EAK/B,KAAyD,EAAC,SAAM,aAAU,sBAAkB;CACvG,IAAM,CAAC,GAAa,KAAW,EAAS,EAAK;AAE7C,QACE,kBAAC,EAAkB,UAAnB;EAA4B,OAAO;GAAC,MAAM;GAAa;GAAS;GAAa;EAC1E;EAC0B,CAAA;GAI3B,IAAkB,GACrB,EACC,OACA,aACA,eAAe,GACf,aACA,UAAO,IACP,sBAAmB,QACnB,mBAAgB,OAChB,UAAO,UACP,aACA,aACA,UAAO,gBACc;CACrB,IAAM,CAAC,GAAU,KAAe,EAAS,EAAK,EACxC,IAAqB,EAAyB,KAAK,EACnD,IAAmB,EAA0B,KAAK,EAClD,IAAa,EAAM,EAAG;AAQ5B,CANA,EAAkB,SAA0B,EAAY,GAAM,EAAE,EAAiB,EAMjF,EAJ0B,QAAkB;AAC1C,IAAY,GAAM;IACjB,EAAE,CAEa,CAAkB;CAEpC,IAAM,IAAa,QAAkB;AACnC,IAAY,CAAC,EAAS;IACrB,CAAC,EAAS,CAAC,EAER,IAAiB,GACpB,MAAqB;AAEpB,EADI,KAAU,EAAS,EAAS,EAChC,GAAY;IAEd,CAAC,GAAU,EAAW,CACvB,EAEK,IAAsB,GACzB,MAAqB;AAGpB,EAFA,EAAe,EAAS,EACxB,GAAY,EACZ,EAAiB,SAAS,OAAO;IAEnC;EAAC;EAAgB;EAAY;EAAiB,CAC/C;AAED,SAAgB;AACd,MAAI,KAAY,EAAmB,SAAS;GAC1C,IAAM,IAAkB,EAAmB,SACrC,IAAgB,MAAS,gBACzB,IAAoB,KAAgB,MAAW,EAAQ,YAAY,MAAM,KAAA;AAS/E,GAPA,EAAU,EAAmB,SAAS;IACpC,UAAU,EAAU;IACpB,wBAAwB;IACxB,iBAAiB,IAAgB,UAAU,KAAA;IAC5C,CAAC,EAGF,EAAgB,iBAAiB,YAAW,MAAS;AACnD,QAAI,EAAM,QAAQ,SAAS;KACzB,IAAM,IAAS,EAAM,QAGf,IAAgB,EAAO,YAAY,MAAM,EAAO,QAAQ,KAAK,GAAG;AAEtE,SAAI,CAAC,KAAiB,EAAc,aAAa,gBAAgB,KAAK,OAAQ;KAE9E,IAAM,IAAQ,EAAc,aAAa,aAAa;AACtD,KAAI,MACF,EAAe,EAAM,EACrB,EAAY,GAAM,EAClB,iBAAiB;AACf,QAAiB,SAAS,OAAO;QAChC,GAAG;;KAGV;GAEF,IAAM,IAAiB,IAAgB,MAAM,MAGvC,IAAY,EAAmB,QAAQ,cAAc,EAAe;AAC1E,GAAI,KACF,iBAAiB;AACf,MAAU,OAAO;MAChB,GAAG;GAGR,IAAM,IACJ,EAAgB,iBAAiB,EAAe,CAAC,EAAgB,iBAAiB,EAAe,CAAC,SAAS;AAkB7G,GAjBA,EAAS,iBAAiB,YAAY,MAAiB;IACrD,IAAM,IAAgB;AACtB,IAAI,EAAc,QAAQ,gBACxB,EAAc,gBAAgB,EAC9B,GAAW,OAAO;KAEpB,EAEF,GAAW,iBAAiB,YAAY,MAAiB;IACvD,IAAM,IAAgB;AACtB,IAAI,EAAc,QAAQ,cACxB,EAAc,gBAAgB,EAC9B,EAAS,OAAO;KAElB,EAGF,EAAgB,iBAAiB,YAAY,MAAiB;AAE5D,IAAI,EAAc,QAAQ,YACxB,EAAiB,SAAS,OAAO;KAEnC;;IAEH;EAAC;EAAU;EAAoB;EAAM;EAAqB;EAAY;EAAe,CAAC;CAGzF,IAAM,EAAC,gBAAY,EACjB;EACE;EACA;EACA,OAAO;EACP,kBAAkB;EAClB,MAAM;EACP,EACD,CAAC,EAAS,CACX,EAEK,EAAC,QAAQ,GAAc,SAAS,MAAiB,EAAS,QAAQ,EAAS,CAAC,QAG9E,GAAK,OACH,EAAsC,EAAM,IAAI,EAAM,SAAS,IACjE,EAAI,SAAS,EAAa,GAAO;EAC/B,KAAK;EACL,WAAW,EAAK,EAAM,MAAM,WAAW,EAAO,uBAAuB,MAAS,EAAS;EACvF,UAAU;EACV;EACA,IAAI,GAAG,EAAW;EAClB;EACA,OAAO;EACR,CAAC,GACO,EAAuC,EAAM,IAAI,EAAM,SAAS,MACzE,EAAI,UAAU,EAAa,GAAO;EAChC,KAAK;EACL,WAAW,EACT,EAAO,kBACP,KAAY,EAAO,8BACnB,KAAY,EAAO,yBAAyB,EAAS,eACrD,EAAO,qBAAqB,MAC5B,MAAS,kBAAkB,0BAC5B;EACD,OAAO;GACL,KAAK,GAAG,GAAU,OAAO,EAAE;GAC3B,MAAM,GAAG,GAAU,QAAQ,EAAE;GAC9B;EACD,IAAI,GAAG,EAAW;EAClB,UAAU,EAAS,IAAI,EAAM,MAAM,WAAU,MACvC,EAAwC,EAAK,GACxC,EAAa,GAAM;GACxB,SAAS;GACT,MAAM,MAAS,iBAAiB,SAAS;GAC1C,CAAC,GAEG,EACP;EACH,CAAC,GAEG,IACN,EAAE,CAAC;AAEN,QACE,kBAAC,GAAD;EAA0B;EAAM,cAAc;YAC5C,kBAAC,OAAD;GACE,IAAI;GACJ,WAAW,EAAK,EAAO,YAAY,KAAY,EAAO,wBAAwB;GAC9E,eAAa,KAAU,EAAQ;aAHjC,CAKG,GACA,IAAW,IAAgB,KACxB;;EACa,CAAA;EAG1B,EAeK,IAAmB,GAErB,EACE,OACA,SACA,OACA,aACA,cACA,eAAe,GACf,aACA,aACA,SACA,WAAQ,WACR,YACA,kBACA,YACA,GAAG,KAEL,MACG;CACH,IAAM,EAAC,oBAAgB,GAAsB,EACvC,IAAc,GACjB,MAA+C;AAG9C,EAFA,IAAU,EAAM,EAEX,EAAM,oBACT,KAAgB;IAGpB,CAAC,GAAS,EAAa,CACxB;AAED,KAAI,MAAU,gBAAgB;EAC5B,IAAM,IAAqB,KAAW;AAEtC,SACE,kBAAC,OAAD;GAAK,WAAW,EAAK,EAAO,oBAAoB,EAAO,uBAAuB,MAAS,EAAU;aAAjG,CACE,kBAAC,GAAD;IACM;IACE;IACN,WAAW,EACT,EAAO,0CACP,EAAO,4BAA4B,MACnC,EAAO,4BAA4B,MACnC,KAAY,EAAO,qCACpB;IACD,SAAS;IACT,iBAAe;IACf,eAAa,KAAU,EAAQ;IACzB;IACS;IACN;IACT,GAAI;cAEJ,kBAAC,QAAD;KAAM,WAAW,EAAO;KAA6B;KAAgB,CAAA;IAC9D,CAAA,EACT,kBAAC,GAAD;IACO;IACD;IACJ,IAAG;IACH,WAAW,EAAO;IAClB,SAAS;IACT,iBAAc;IACd,cAAW;IACL;IACN,iBAAe,IAAW,SAAS;IACnC,SAAS;IACC;cAEV,kBAAC,GAAD,EAAiB,WAAW,EAAO,2CAA6C,CAAA;IACzE,CAAA,CACL;;;AAIV,QACE,kBAAC,GAAD;EACO;EACD;EACJ,WAAW,EAAK,EAAO,oBAAoB,EAAO,uBAAuB,MAAS,EAAU;EAC5F,iBAAc;EACd,iBAAe,IAAW,SAAS;EACzB;EACV,eAAa,KAAU,EAAQ;EACzB;EACG;EACM;EACf,gBAAgB,kBAAC,GAAD,EAAmB,CAAA;EACnC,SAAS;EACT,GAAI;YAEJ,kBAAC,QAAD;GAAM,WAAW,EAAO;GAA6B;GAAgB,CAAA;EAC9D,CAAA;EAGd,EAqBK,IAAc;CAClB,MAAM;CACN,QAAQ;CACR,MAAM;CACP,EAEK,KAAkB,EACtB,OACA,aACA,cACA,aACA,YACA,aACA,SACA,UACA,YACA,cACA,eAAe,GACf,GAAG,QACyD;CAC5D,IAAM,EAAC,YAAQ,GAAsB,EAE/B,IAAc,GACjB,MAAuC;AAGtC,EAFA,IAAU,EAAE,EAEP,KACH,IAAU,OAAO,EAAM,CAAC;IAG5B;EAAC;EAAS;EAAO;EAAU;EAAQ,CACpC,EAEK,IAAgB,GACnB,MAA0C;AAGzC,EAFA,IAAY,EAAE,EAEV,CAAC,KAAY,EAAE,QAAQ,WACzB,IAAU,OAAO,EAAM,CAAC;IAG5B;EAAC;EAAS;EAAO;EAAU;EAAU,CACtC,EAEK,IAAU,SACP;EACL,WAAW,EACT,EAAO,kBACP,MAAS,YAAY,EAAO,oCAAoC,MAChE,KAAQ,EAAO,qBAAqB,MACpC,EACD;EACD,MAAM,EAAY,KAAQ;EAC1B,iBAAiB;EACjB,UAAU;EACV,cAAc;EACd,GAAG;EACJ,GACD;EAAC;EAAO;EAAM;EAAM;EAAW;EAAU;EAAM,CAChD,EAEK,IAAW,QAEb,kBAAA,GAAA,EAAA,UAAA;EACG,EAAM,eAAkD,EAAc,GACnE,EAAM,aAAa,GAAe;GAChC,OAAO,EAAc,MAAM,SAAS;GACpC,QAAQ,EAAc,MAAM,SAAS;GACtC,CAAC,GACF;EACH,MAAS,YACR,kBAAC,QAAD;GAAM,WAAW,EAAO;aACrB,KACC,kBAAC,GAAD;IACE,WAAW,EAAK,EAAO,0BAA0B,KAAY,EAAO,mCAAmC;IACvG,MAAM;IACN,CAAA;GAEC,CAAA;EAGT,kBAAC,QAAD;GAAM,WAAW,EAAO;aACtB,kBAAC,GAAD;IACE,SAAS,IAAW,UAAU;IAC9B,MAAM,MAAS,WAAW,QAAQ;IAClC,WAAW,EAAK,KAAY,EAAO,sCAAsC;IAExE;IACI,CAAA;GACF,CAAA;EACN,EAAA,CAAA,EAEL;EAAC;EAAe;EAAU;EAAU;EAAU;EAAM;EAAK,CAC1D;AAsBD,QApBI,MAAO,MAEP,kBAAC,MAAD;EAEE,MAAK;EACL,GAAI;EAEK;EACE;YAEX,kBAAC,KAAD;GACE,WAAW,EAAK,EAAO,4BAA4B,KAAY,EAAO,8BAA8B;GACpG,MAAM,EAAM;aAEX;GACC,CAAA;EACD,CAAA,GAMP,kBAAC,MAAD;EAEE,MAAK;EACL,GAAI;EACJ,gBAAc,MAAS,SAAS,KAAA,IAAY,IAAW,SAAS;EAChE,SAAS;EACT,WAAW;YAEV;EACE,CAAA;GAcH,IAAoB,GACvB,EAAC,aAAU,cAAW,eAAe,GAAQ,aAAU,GAAG,KAAO,MAAQ;CACxE,IAAM,EAAC,WAAW,MAAoB,GAAU;AAIhD,QACE,kBAAC,GAAD;EAA0B,WAHV,GAAW,SAAS,0BAA0B,GAAG,UAAU;YAIzE,kBAAC,MAAD;GAAS;GAAK,WAAW,EAAK,EAAU;GAAE,MAAK;GAAO,eAAa,KAAU,EAAQ;GAAM,GAAI;GAC5F;GACE,CAAA;EACS,CAAA;EAGrB,EAMY,IAAa,OAAO,OAAO,GAAiB;CACvD,QAAQ;CACR,MAAM;CACN,SAAS;CACT;CACD,CAAC"}
@@ -1,10 +1,10 @@
1
1
  import e from "../node_modules/clsx/dist/clsx.js";
2
2
  import { useId as t } from "../hooks/useId.js";
3
3
  import { Text as n } from "../Text/Text.js";
4
- import { ChevronDownIcon as r, ChevronUpIcon as i } from "../node_modules/@primer/octicons-react/dist/index.esm.js";
5
- import { Button as a } from "../Button/Button.js";
6
- import { useWindowSize as o } from "../hooks/useWindowSize.js";
7
- import { useKeyboardEscape as s } from "../hooks/useKeyboardEscape.js";
4
+ import { Button as r } from "../Button/Button.js";
5
+ import { useKeyboardEscape as i } from "../hooks/useKeyboardEscape.js";
6
+ import { ChevronDownIcon as a, ChevronUpIcon as o } from "../node_modules/@primer/octicons-react/dist/index.esm.js";
7
+ import { useWindowSize as s } from "../hooks/useWindowSize.js";
8
8
  import c from "./AnchorNav.module.js";
9
9
  import { useExpandedMenu as l } from "./useExpandedMenu.js";
10
10
  import '../packages/design-tokens/lib/design-tokens/css/tokens/functional/components/anchor-nav/colors-with-modes-98imfMkq.css';/* empty css */
@@ -29,15 +29,15 @@ var v = {
29
29
  return `${this.root}-nav-spacer`;
30
30
  }
31
31
  };
32
- function y({ children: a, enableDefaultBgColor: y = !1, hideUntilSticky: C = !1, ...w }) {
33
- let [T, E] = h(!1), [D, ee] = h(!1), [O, k] = h(), [A, j] = h(), [M, N] = h(), [P, F] = h(!1), [I, L] = h(0), R = m(null), z = m(null), B = m(null), V = m(null), { isLarge: H } = o(), U = t(), W = d(() => E(!1), [E]), G = d(() => E(!T), [T]), K = p(() => u.Children.toArray(a).filter((e) => u.isValidElement(e) && typeof e.type != "string"), [a]);
32
+ function y({ children: r, enableDefaultBgColor: y = !1, hideUntilSticky: C = !1, ...w }) {
33
+ let [T, E] = h(!1), [D, ee] = h(!1), [O, k] = h(), [A, j] = h(), [M, N] = h(), [P, F] = h(!1), [I, L] = h(0), R = m(null), z = m(null), B = m(null), V = m(null), { isLarge: H } = s(), U = t(), W = d(() => E(!1), [E]), G = d(() => E(!T), [T]), K = p(() => u.Children.toArray(r).filter((e) => u.isValidElement(e) && typeof e.type != "string"), [r]);
34
34
  f(() => {
35
35
  M === void 0 && A && N(A.boundingClientRect.y + window.scrollY);
36
36
  }, [M, A]);
37
37
  let q = ([e]) => {
38
38
  j(e);
39
39
  };
40
- s(W), l(T, B, V, !H, W), f(() => {
40
+ i(W), l(T, B, V, !H, W), f(() => {
41
41
  if (R.current) {
42
42
  let e = R.current.offsetHeight;
43
43
  L(e);
@@ -104,7 +104,7 @@ function y({ children: a, enableDefaultBgColor: y = !1, hideUntilSticky: C = !1,
104
104
  "aria-controls": U,
105
105
  "data-testid": v.menuButton,
106
106
  children: [
107
- g(T ? i : r, {
107
+ g(T ? o : a, {
108
108
  size: 16,
109
109
  className: c["AnchorNav-menu-button-arrow"],
110
110
  fill: "currentcolor"
@@ -145,8 +145,8 @@ function y({ children: a, enableDefaultBgColor: y = !1, hideUntilSticky: C = !1,
145
145
  })]
146
146
  });
147
147
  }
148
- function b({ alignment: t = "start", children: r, href: i, isActive: a, toggleMenuCallback: s, prefersReducedMotion: l, intersectionOptions: u = { rootMargin: "middle" }, updateCurrentActiveNav: p, ...m }) {
149
- let { isLarge: _ } = o(), [v, y] = h(), b = /^#/.test(i), x = !!v?.isIntersecting, S = ([e]) => {
148
+ function b({ alignment: t = "start", children: r, href: i, isActive: a, toggleMenuCallback: o, prefersReducedMotion: l, intersectionOptions: u = { rootMargin: "middle" }, updateCurrentActiveNav: p, ...m }) {
149
+ let { isLarge: _ } = s(), [v, y] = h(), b = /^#/.test(i), x = !!v?.isIntersecting, S = ([e]) => {
150
150
  y(e);
151
151
  };
152
152
  f(() => {
@@ -170,8 +170,8 @@ function b({ alignment: t = "start", children: r, href: i, isActive: a, toggleMe
170
170
  p
171
171
  ]);
172
172
  let C = d(() => {
173
- s && !_ && s();
174
- }, [_, s]);
173
+ o && !_ && o();
174
+ }, [_, o]);
175
175
  return /* @__PURE__ */ g("a", {
176
176
  className: e(c["AnchorNav-link"], c[`AnchorNav-link--${t}`], x && c["AnchorNav-link--is-active"]),
177
177
  href: b ? i : `#${i}`,
@@ -187,26 +187,26 @@ function b({ alignment: t = "start", children: r, href: i, isActive: a, toggleMe
187
187
  })
188
188
  });
189
189
  }
190
- function x({ children: t, href: n, variant: r = "secondary", size: i = "small", ...o }) {
191
- return /* @__PURE__ */ g(a, {
190
+ function x({ children: t, href: n, variant: i = "secondary", size: a = "small", ...o }) {
191
+ return /* @__PURE__ */ g(r, {
192
192
  as: "a",
193
- variant: r,
193
+ variant: i,
194
194
  className: e(c["AnchorNav-action"]),
195
195
  href: n,
196
196
  "data-testid": v.action,
197
- size: i,
197
+ size: a,
198
198
  ...o,
199
199
  children: t
200
200
  });
201
201
  }
202
- function S({ children: t, href: n, variant: r = "secondary", size: i = "small", ...o }) {
203
- return /* @__PURE__ */ g(a, {
202
+ function S({ children: t, href: n, variant: i = "secondary", size: a = "small", ...o }) {
203
+ return /* @__PURE__ */ g(r, {
204
204
  as: "a",
205
- variant: r,
205
+ variant: i,
206
206
  className: e(c["AnchorNav-action"]),
207
207
  href: n,
208
208
  "data-testid": v.secondaryAction,
209
- size: i,
209
+ size: a,
210
210
  ...o,
211
211
  children: t
212
212
  });
@@ -0,0 +1 @@
1
+ .Primer_Brand__Avatar-module__Avatar___VP3QQ{width:var(--base-size-40);height:var(--base-size-40);display:inline-block;overflow:hidden}.Primer_Brand__Avatar-module__Avatar--shape-circle___Yz6Zj{border-radius:var(--brand-borderRadius-full)}.Primer_Brand__Avatar-module__Avatar--shape-square___f2Rrz{border-radius:var(--brand-borderRadius-medium)}.Primer_Brand__Avatar-module__Avatar__image___ImYTc{-o-object-fit:cover;object-fit:cover;width:100%;height:100%;display:block}.Primer_Brand__Avatar-module__Avatar--size-32___P1cC2{width:var(--base-size-32);height:var(--base-size-32)}.Primer_Brand__Avatar-module__Avatar--size-40___fFZWc{width:var(--base-size-40);height:var(--base-size-40)}.Primer_Brand__Avatar-module__Avatar--size-48___ZrSSm{width:var(--base-size-48);height:var(--base-size-48)}.Primer_Brand__Avatar-module__Avatar--size-64___QMrC7{width:var(--base-size-64);height:var(--base-size-64)}.Primer_Brand__Avatar-module__Avatar--size-80___1NIGx{width:var(--base-size-80);height:var(--base-size-80)}.Primer_Brand__Avatar-module__Avatar-narrow--size-32___Dl3Q7{width:var(--base-size-32);height:var(--base-size-32)}.Primer_Brand__Avatar-module__Avatar-narrow--size-40___8KQIy{width:var(--base-size-40);height:var(--base-size-40)}.Primer_Brand__Avatar-module__Avatar-narrow--size-48___gN_Ov{width:var(--base-size-48);height:var(--base-size-48)}@media screen and (width>=48rem){.Primer_Brand__Avatar-module__Avatar-regular--size-32___Keys0{width:var(--base-size-32);height:var(--base-size-32)}.Primer_Brand__Avatar-module__Avatar-regular--size-40___bajRu{width:var(--base-size-40);height:var(--base-size-40)}.Primer_Brand__Avatar-module__Avatar-regular--size-48___f2itY{width:var(--base-size-48);height:var(--base-size-48)}.Primer_Brand__Avatar-module__Avatar-regular--size-64___6_jqI{width:var(--base-size-64);height:var(--base-size-64)}.Primer_Brand__Avatar-module__Avatar-regular--size-80___q7H8m{width:var(--base-size-80);height:var(--base-size-80)}}@media screen and (width>=80rem){.Primer_Brand__Avatar-module__Avatar-wide--size-32___g7fYr{width:var(--base-size-32);height:var(--base-size-32)}.Primer_Brand__Avatar-module__Avatar-wide--size-40___48LVl{width:var(--base-size-40);height:var(--base-size-40)}.Primer_Brand__Avatar-module__Avatar-wide--size-48___cwlSk{width:var(--base-size-48);height:var(--base-size-48)}.Primer_Brand__Avatar-module__Avatar-wide--size-64___w72xb{width:var(--base-size-64);height:var(--base-size-64)}.Primer_Brand__Avatar-module__Avatar-wide--size-80___MptXL{width:var(--base-size-80);height:var(--base-size-80)}}
@@ -1,4 +1,4 @@
1
- import './Avatar.module-DzfWmLu4.css';var e = {
1
+ import './Avatar.module-DUQdD7On.css';var e = {
2
2
  Avatar: "Primer_Brand__Avatar-module__Avatar___VP3QQ",
3
3
  "Avatar--shape-circle": "Primer_Brand__Avatar-module__Avatar--shape-circle___Yz6Zj",
4
4
  "Avatar--shape-square": "Primer_Brand__Avatar-module__Avatar--shape-square___f2Rrz",
@@ -1 +1 @@
1
- {"version":3,"file":"Avatar.module.js","names":[],"sources":["../../src/Avatar/Avatar.module.css"],"sourcesContent":[".Avatar {\n display: inline-block;\n overflow: hidden;\n width: var(--base-size-40);\n height: var(--base-size-40);\n}\n\n.Avatar--shape-circle {\n border-radius: var(--brand-borderRadius-full);\n}\n\n.Avatar--shape-square {\n border-radius: var(--brand-borderRadius-medium);\n}\n\n.Avatar__image {\n width: 100%;\n height: 100%;\n object-fit: cover;\n}\n\n.Avatar--size-32 {\n width: var(--base-size-32);\n height: var(--base-size-32);\n}\n\n.Avatar--size-40 {\n width: var(--base-size-40);\n height: var(--base-size-40);\n}\n\n.Avatar--size-48 {\n width: var(--base-size-48);\n height: var(--base-size-48);\n}\n\n.Avatar--size-64 {\n width: var(--base-size-64);\n height: var(--base-size-64);\n}\n\n.Avatar--size-80 {\n width: var(--base-size-80);\n height: var(--base-size-80);\n}\n\n.Avatar-narrow--size-32 {\n width: var(--base-size-32);\n height: var(--base-size-32);\n}\n\n.Avatar-narrow--size-40 {\n width: var(--base-size-40);\n height: var(--base-size-40);\n}\n\n.Avatar-narrow--size-48 {\n width: var(--base-size-48);\n height: var(--base-size-48);\n}\n\n@media screen and (min-width: 48rem) {\n .Avatar-regular--size-32 {\n width: var(--base-size-32);\n height: var(--base-size-32);\n }\n\n .Avatar-regular--size-40 {\n width: var(--base-size-40);\n height: var(--base-size-40);\n }\n\n .Avatar-regular--size-48 {\n width: var(--base-size-48);\n height: var(--base-size-48);\n }\n\n .Avatar-regular--size-64 {\n width: var(--base-size-64);\n height: var(--base-size-64);\n }\n\n .Avatar-regular--size-80 {\n width: var(--base-size-80);\n height: var(--base-size-80);\n }\n}\n\n@media screen and (min-width: 80rem) {\n .Avatar-wide--size-32 {\n width: var(--base-size-32);\n height: var(--base-size-32);\n }\n\n .Avatar-wide--size-40 {\n width: var(--base-size-40);\n height: var(--base-size-40);\n }\n\n .Avatar-wide--size-48 {\n width: var(--base-size-48);\n height: var(--base-size-48);\n }\n\n .Avatar-wide--size-64 {\n width: var(--base-size-64);\n height: var(--base-size-64);\n }\n\n .Avatar-wide--size-80 {\n width: var(--base-size-80);\n height: var(--base-size-80);\n }\n}\n"],"mappings":""}
1
+ {"version":3,"file":"Avatar.module.js","names":[],"sources":["../../src/Avatar/Avatar.module.css"],"sourcesContent":[".Avatar {\n display: inline-block;\n overflow: hidden;\n width: var(--base-size-40);\n height: var(--base-size-40);\n}\n\n.Avatar--shape-circle {\n border-radius: var(--brand-borderRadius-full);\n}\n\n.Avatar--shape-square {\n border-radius: var(--brand-borderRadius-medium);\n}\n\n.Avatar__image {\n display: block;\n width: 100%;\n height: 100%;\n object-fit: cover;\n}\n\n.Avatar--size-32 {\n width: var(--base-size-32);\n height: var(--base-size-32);\n}\n\n.Avatar--size-40 {\n width: var(--base-size-40);\n height: var(--base-size-40);\n}\n\n.Avatar--size-48 {\n width: var(--base-size-48);\n height: var(--base-size-48);\n}\n\n.Avatar--size-64 {\n width: var(--base-size-64);\n height: var(--base-size-64);\n}\n\n.Avatar--size-80 {\n width: var(--base-size-80);\n height: var(--base-size-80);\n}\n\n.Avatar-narrow--size-32 {\n width: var(--base-size-32);\n height: var(--base-size-32);\n}\n\n.Avatar-narrow--size-40 {\n width: var(--base-size-40);\n height: var(--base-size-40);\n}\n\n.Avatar-narrow--size-48 {\n width: var(--base-size-48);\n height: var(--base-size-48);\n}\n\n@media screen and (min-width: 48rem) {\n .Avatar-regular--size-32 {\n width: var(--base-size-32);\n height: var(--base-size-32);\n }\n\n .Avatar-regular--size-40 {\n width: var(--base-size-40);\n height: var(--base-size-40);\n }\n\n .Avatar-regular--size-48 {\n width: var(--base-size-48);\n height: var(--base-size-48);\n }\n\n .Avatar-regular--size-64 {\n width: var(--base-size-64);\n height: var(--base-size-64);\n }\n\n .Avatar-regular--size-80 {\n width: var(--base-size-80);\n height: var(--base-size-80);\n }\n}\n\n@media screen and (min-width: 80rem) {\n .Avatar-wide--size-32 {\n width: var(--base-size-32);\n height: var(--base-size-32);\n }\n\n .Avatar-wide--size-40 {\n width: var(--base-size-40);\n height: var(--base-size-40);\n }\n\n .Avatar-wide--size-48 {\n width: var(--base-size-48);\n height: var(--base-size-48);\n }\n\n .Avatar-wide--size-64 {\n width: var(--base-size-64);\n height: var(--base-size-64);\n }\n\n .Avatar-wide--size-80 {\n width: var(--base-size-80);\n height: var(--base-size-80);\n }\n}\n"],"mappings":""}
@@ -1 +1 @@
1
- .Primer_Brand__BreakoutBanner-module__BreakoutBanner___QH5la{max-width:var(--brand-breakpoint-xlarge);border-radius:var(--brand-borderRadius-large);background-repeat:no-repeat;background-color:var(--brand-BreakoutBanner-narrow-background-color,var(--brand-BreakoutBanner-background-color));background-image:var(--brand-BreakoutBanner-narrow-background-image-src,var(--brand-BreakoutBanner-background-image-src));background-size:var(--brand-BreakoutBanner-narrow-background-image-size,var(--brand-BreakoutBanner-background-image-size));background-position:50%;background-position:var(--brand-BreakoutBanner-narrow-background-image-position,var(--brand-BreakoutBanner-background-image-position,center));width:100%;margin:0 auto;display:flex;position:relative}.Primer_Brand__BreakoutBanner-module__BreakoutBanner-container___JC9dt{border-radius:var(--brand-borderRadius-xlarge);padding:var(--base-size-40) var(--base-size-24) var(--base-size-128);z-index:1;box-sizing:border-box;width:100%}.Primer_Brand__BreakoutBanner-module__BreakoutBanner-content___gZsEk{flex-direction:column;align-items:flex-start;display:flex}.Primer_Brand__BreakoutBanner-module__BreakoutBanner-container--background___Uex_J{background:var(--brand-BreakoutBanner-bgColor)}.Primer_Brand__BreakoutBanner-module__BreakoutBanner-content--center___oB7l0{text-align:center;align-items:center}.Primer_Brand__BreakoutBanner-module__BreakoutBanner__heading___9zftT{max-width:20ch}.Primer_Brand__BreakoutBanner-module__BreakoutBanner-description___nFBHL{max-width:54ch;margin-block-start:var(--base-size-16)}.Primer_Brand__BreakoutBanner-module__BreakoutBanner-linkGroup___g_h1l{margin-block-start:var(--base-size-48)}.Primer_Brand__BreakoutBanner-module__BreakoutBanner-leadingVisual___GRbZf{margin-block-end:var(--base-size-48)}@media screen and (width>=48rem){.Primer_Brand__BreakoutBanner-module__BreakoutBanner___QH5la{background-color:var(--brand-BreakoutBanner-regular-background-color,var(--brand-BreakoutBanner-background-color));background-image:var(--brand-BreakoutBanner-regular-background-image-src,var(--brand-BreakoutBanner-background-image-src));background-size:var(--brand-BreakoutBanner-regular-background-image-size,var(--brand-BreakoutBanner-background-image-size));background-position:var(--brand-BreakoutBanner-regular-background-image-position,var(--brand-BreakoutBanner-background-image-position))}.Primer_Brand__BreakoutBanner-module__BreakoutBanner-container___JC9dt{padding:var(--base-size-48)}}@media screen and (width>=80rem){.Primer_Brand__BreakoutBanner-module__BreakoutBanner___QH5la{background-color:var(--brand-BreakoutBanner-wide-background-color,var(--brand-BreakoutBanner-background-color));background-image:var(--brand-BreakoutBanner-wide-background-image-src,var(--brand-BreakoutBanner-background-image-src));background-size:var(--brand-BreakoutBanner-wide-background-image-size,var(--brand-BreakoutBanner-background-image-size));background-position:var(--brand-BreakoutBanner-wide-background-image-position,var(--brand-BreakoutBanner-background-image-position))}}
1
+ .Primer_Brand__BreakoutBanner-module__BreakoutBanner___QH5la{max-width:var(--brand-breakpoint-xlarge);border-radius:var(--brand-borderRadius-large);background-repeat:no-repeat;background-color:var(--brand-BreakoutBanner-narrow-background-color,var(--brand-BreakoutBanner-background-color));background-image:var(--brand-BreakoutBanner-narrow-background-image-src,var(--brand-BreakoutBanner-background-image-src));background-size:var(--brand-BreakoutBanner-narrow-background-image-size,var(--brand-BreakoutBanner-background-image-size));background-position:50%;background-position:var(--brand-BreakoutBanner-narrow-background-image-position,var(--brand-BreakoutBanner-background-image-position,center));width:100%;margin:0 auto;display:flex;position:relative}.Primer_Brand__BreakoutBanner-module__BreakoutBanner-container___JC9dt{border-radius:var(--brand-borderRadius-xlarge);padding:var(--base-size-40) var(--base-size-24) var(--base-size-128);z-index:1;box-sizing:border-box;width:100%}.Primer_Brand__BreakoutBanner-module__BreakoutBanner-content___gZsEk{flex-direction:column;align-items:flex-start;display:flex}.Primer_Brand__BreakoutBanner-module__BreakoutBanner-container--background___Uex_J{background:var(--brand-BreakoutBanner-bgColor)}.Primer_Brand__BreakoutBanner-module__BreakoutBanner-content--center___oB7l0{text-align:center;align-items:center}.Primer_Brand__BreakoutBanner-module__BreakoutBanner__heading___9zftT{max-width:20ch}.Primer_Brand__BreakoutBanner-module__BreakoutBanner-description___nFBHL{max-width:54ch;margin-block-start:var(--base-size-16)}.Primer_Brand__BreakoutBanner-module__BreakoutBanner-linkGroup___g_h1l{margin-block-start:var(--base-size-48)}.Primer_Brand__BreakoutBanner-module__BreakoutBanner-leadingVisual___GRbZf{margin-block-end:var(--base-size-48)}.Primer_Brand__BreakoutBanner-module__BreakoutBanner-leadingVisual___GRbZf img,.Primer_Brand__BreakoutBanner-module__BreakoutBanner-leadingVisual___GRbZf picture{display:block}@media screen and (width>=48rem){.Primer_Brand__BreakoutBanner-module__BreakoutBanner___QH5la{background-color:var(--brand-BreakoutBanner-regular-background-color,var(--brand-BreakoutBanner-background-color));background-image:var(--brand-BreakoutBanner-regular-background-image-src,var(--brand-BreakoutBanner-background-image-src));background-size:var(--brand-BreakoutBanner-regular-background-image-size,var(--brand-BreakoutBanner-background-image-size));background-position:var(--brand-BreakoutBanner-regular-background-image-position,var(--brand-BreakoutBanner-background-image-position))}.Primer_Brand__BreakoutBanner-module__BreakoutBanner-container___JC9dt{padding:var(--base-size-48)}}@media screen and (width>=80rem){.Primer_Brand__BreakoutBanner-module__BreakoutBanner___QH5la{background-color:var(--brand-BreakoutBanner-wide-background-color,var(--brand-BreakoutBanner-background-color));background-image:var(--brand-BreakoutBanner-wide-background-image-src,var(--brand-BreakoutBanner-background-image-src));background-size:var(--brand-BreakoutBanner-wide-background-image-size,var(--brand-BreakoutBanner-background-image-size));background-position:var(--brand-BreakoutBanner-wide-background-image-position,var(--brand-BreakoutBanner-background-image-position))}}
@@ -1,4 +1,4 @@
1
- import './BreakoutBanner.module-DGBSJFNJ.css';var e = {
1
+ import './BreakoutBanner.module-gfmzcUSU.css';var e = {
2
2
  BreakoutBanner: "Primer_Brand__BreakoutBanner-module__BreakoutBanner___QH5la",
3
3
  "BreakoutBanner-container": "Primer_Brand__BreakoutBanner-module__BreakoutBanner-container___JC9dt",
4
4
  "BreakoutBanner-content": "Primer_Brand__BreakoutBanner-module__BreakoutBanner-content___gZsEk",
@@ -1 +1 @@
1
- {"version":3,"file":"BreakoutBanner.module.js","names":[],"sources":["../../src/BreakoutBanner/BreakoutBanner.module.css"],"sourcesContent":[".BreakoutBanner {\n position: relative;\n margin: 0 auto;\n display: flex;\n max-width: var(--brand-breakpoint-xlarge);\n width: 100%;\n border-radius: var(--brand-borderRadius-large);\n background-repeat: no-repeat;\n background-color: var(--brand-BreakoutBanner-narrow-background-color, var(--brand-BreakoutBanner-background-color));\n background-image: var(\n --brand-BreakoutBanner-narrow-background-image-src,\n var(--brand-BreakoutBanner-background-image-src)\n );\n background-size: var(\n --brand-BreakoutBanner-narrow-background-image-size,\n var(--brand-BreakoutBanner-background-image-size)\n );\n\n background-position: var(\n --brand-BreakoutBanner-narrow-background-image-position,\n var(--brand-BreakoutBanner-background-image-position, center)\n );\n}\n\n.BreakoutBanner-container {\n border-radius: var(--brand-borderRadius-xlarge);\n padding: var(--base-size-40) var(--base-size-24) var(--base-size-128);\n z-index: 1;\n width: 100%;\n box-sizing: border-box;\n}\n\n.BreakoutBanner-content {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n}\n\n.BreakoutBanner-container--background {\n background: var(--brand-BreakoutBanner-bgColor);\n}\n\n.BreakoutBanner-content--center {\n align-items: center;\n text-align: center;\n}\n\n.BreakoutBanner__heading {\n max-width: 20ch;\n}\n\n.BreakoutBanner-description {\n max-width: 54ch;\n margin-block-start: var(--base-size-16);\n}\n\n.BreakoutBanner-linkGroup {\n margin-block-start: var(--base-size-48);\n}\n\n.BreakoutBanner-leadingVisual {\n margin-block-end: var(--base-size-48);\n}\n\n/* Regular */\n@media screen and (min-width: 48rem) {\n .BreakoutBanner {\n background-color: var(\n --brand-BreakoutBanner-regular-background-color,\n var(--brand-BreakoutBanner-background-color)\n );\n background-image: var(\n --brand-BreakoutBanner-regular-background-image-src,\n var(--brand-BreakoutBanner-background-image-src)\n );\n background-size: var(\n --brand-BreakoutBanner-regular-background-image-size,\n var(--brand-BreakoutBanner-background-image-size)\n );\n background-position: var(\n --brand-BreakoutBanner-regular-background-image-position,\n var(--brand-BreakoutBanner-background-image-position)\n );\n }\n\n .BreakoutBanner-container {\n padding: var(--base-size-48);\n }\n}\n\n/* Wide */\n@media screen and (min-width: 80rem) {\n .BreakoutBanner {\n background-color: var(--brand-BreakoutBanner-wide-background-color, var(--brand-BreakoutBanner-background-color));\n background-image: var(\n --brand-BreakoutBanner-wide-background-image-src,\n var(--brand-BreakoutBanner-background-image-src)\n );\n background-size: var(\n --brand-BreakoutBanner-wide-background-image-size,\n var(--brand-BreakoutBanner-background-image-size)\n );\n\n background-position: var(\n --brand-BreakoutBanner-wide-background-image-position,\n var(--brand-BreakoutBanner-background-image-position)\n );\n }\n}\n"],"mappings":""}
1
+ {"version":3,"file":"BreakoutBanner.module.js","names":[],"sources":["../../src/BreakoutBanner/BreakoutBanner.module.css"],"sourcesContent":[".BreakoutBanner {\n position: relative;\n margin: 0 auto;\n display: flex;\n max-width: var(--brand-breakpoint-xlarge);\n width: 100%;\n border-radius: var(--brand-borderRadius-large);\n background-repeat: no-repeat;\n background-color: var(--brand-BreakoutBanner-narrow-background-color, var(--brand-BreakoutBanner-background-color));\n background-image: var(\n --brand-BreakoutBanner-narrow-background-image-src,\n var(--brand-BreakoutBanner-background-image-src)\n );\n background-size: var(\n --brand-BreakoutBanner-narrow-background-image-size,\n var(--brand-BreakoutBanner-background-image-size)\n );\n\n background-position: var(\n --brand-BreakoutBanner-narrow-background-image-position,\n var(--brand-BreakoutBanner-background-image-position, center)\n );\n}\n\n.BreakoutBanner-container {\n border-radius: var(--brand-borderRadius-xlarge);\n padding: var(--base-size-40) var(--base-size-24) var(--base-size-128);\n z-index: 1;\n width: 100%;\n box-sizing: border-box;\n}\n\n.BreakoutBanner-content {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n}\n\n.BreakoutBanner-container--background {\n background: var(--brand-BreakoutBanner-bgColor);\n}\n\n.BreakoutBanner-content--center {\n align-items: center;\n text-align: center;\n}\n\n.BreakoutBanner__heading {\n max-width: 20ch;\n}\n\n.BreakoutBanner-description {\n max-width: 54ch;\n margin-block-start: var(--base-size-16);\n}\n\n.BreakoutBanner-linkGroup {\n margin-block-start: var(--base-size-48);\n}\n\n.BreakoutBanner-leadingVisual {\n margin-block-end: var(--base-size-48);\n}\n\n.BreakoutBanner-leadingVisual :is(img, picture) {\n display: block;\n}\n\n/* Regular */\n@media screen and (min-width: 48rem) {\n .BreakoutBanner {\n background-color: var(\n --brand-BreakoutBanner-regular-background-color,\n var(--brand-BreakoutBanner-background-color)\n );\n background-image: var(\n --brand-BreakoutBanner-regular-background-image-src,\n var(--brand-BreakoutBanner-background-image-src)\n );\n background-size: var(\n --brand-BreakoutBanner-regular-background-image-size,\n var(--brand-BreakoutBanner-background-image-size)\n );\n background-position: var(\n --brand-BreakoutBanner-regular-background-image-position,\n var(--brand-BreakoutBanner-background-image-position)\n );\n }\n\n .BreakoutBanner-container {\n padding: var(--base-size-48);\n }\n}\n\n/* Wide */\n@media screen and (min-width: 80rem) {\n .BreakoutBanner {\n background-color: var(--brand-BreakoutBanner-wide-background-color, var(--brand-BreakoutBanner-background-color));\n background-image: var(\n --brand-BreakoutBanner-wide-background-image-src,\n var(--brand-BreakoutBanner-background-image-src)\n );\n background-size: var(\n --brand-BreakoutBanner-wide-background-image-size,\n var(--brand-BreakoutBanner-background-image-size)\n );\n\n background-position: var(\n --brand-BreakoutBanner-wide-background-image-position,\n var(--brand-BreakoutBanner-background-image-position)\n );\n }\n}\n"],"mappings":""}
@@ -1,9 +1,11 @@
1
1
  import React from 'react';
2
2
  import type { BaseProps } from '../component-helpers';
3
3
  import { ButtonProps } from '../Button';
4
+ import { ActionMenuProps } from '../ActionMenu';
4
5
  export type PrimerBrandButtonType = React.ReactElement<ButtonProps<React.ElementType<'button' | 'a'>>>;
6
+ export type PrimerBrandActionMenuType = React.ReactElement<ActionMenuProps>;
5
7
  export type ButtonGroupProps = BaseProps<HTMLDivElement> & {
6
- children: PrimerBrandButtonType[] | PrimerBrandButtonType;
8
+ children: Array<PrimerBrandButtonType | PrimerBrandActionMenuType> | PrimerBrandButtonType | PrimerBrandActionMenuType;
7
9
  buttonSize?: ButtonProps<'button' | 'a'>['size'];
8
10
  buttonsAs?: 'button' | 'a';
9
11
  };
@@ -1 +1 @@
1
- {"version":3,"file":"ButtonGroup.d.ts","sourceRoot":"","sources":["../../src/ButtonGroup/ButtonGroup.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA6B,MAAM,OAAO,CAAA;AAEjD,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,sBAAsB,CAAA;AACnD,OAAO,EAAS,WAAW,EAAC,MAAM,WAAW,CAAA;AAG7C,MAAM,MAAM,qBAAqB,GAAG,KAAK,CAAC,YAAY,CAAC,WAAW,CAAC,KAAK,CAAC,WAAW,CAAC,QAAQ,GAAG,GAAG,CAAC,CAAC,CAAC,CAAA;AAEtG,MAAM,MAAM,gBAAgB,GAAG,SAAS,CAAC,cAAc,CAAC,GAAG;IACzD,QAAQ,EAAE,qBAAqB,EAAE,GAAG,qBAAqB,CAAA;IACzD,UAAU,CAAC,EAAE,WAAW,CAAC,QAAQ,GAAG,GAAG,CAAC,CAAC,MAAM,CAAC,CAAA;IAChD,SAAS,CAAC,EAAE,QAAQ,GAAG,GAAG,CAAA;CAC3B,CAAA;AAED,eAAO,MAAM,WAAW,sGAuBvB,CAAA"}
1
+ {"version":3,"file":"ButtonGroup.d.ts","sourceRoot":"","sources":["../../src/ButtonGroup/ButtonGroup.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA6B,MAAM,OAAO,CAAA;AAEjD,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,sBAAsB,CAAA;AACnD,OAAO,EAAS,WAAW,EAAC,MAAM,WAAW,CAAA;AAC7C,OAAO,EAAa,eAAe,EAAC,MAAM,eAAe,CAAA;AAGzD,MAAM,MAAM,qBAAqB,GAAG,KAAK,CAAC,YAAY,CAAC,WAAW,CAAC,KAAK,CAAC,WAAW,CAAC,QAAQ,GAAG,GAAG,CAAC,CAAC,CAAC,CAAA;AACtG,MAAM,MAAM,yBAAyB,GAAG,KAAK,CAAC,YAAY,CAAC,eAAe,CAAC,CAAA;AAE3E,MAAM,MAAM,gBAAgB,GAAG,SAAS,CAAC,cAAc,CAAC,GAAG;IACzD,QAAQ,EAAE,KAAK,CAAC,qBAAqB,GAAG,yBAAyB,CAAC,GAAG,qBAAqB,GAAG,yBAAyB,CAAA;IACtH,UAAU,CAAC,EAAE,WAAW,CAAC,QAAQ,GAAG,GAAG,CAAC,CAAC,MAAM,CAAC,CAAA;IAChD,SAAS,CAAC,EAAE,QAAQ,GAAG,GAAG,CAAA;CAC3B,CAAA;AAED,eAAO,MAAM,WAAW,sGA6CvB,CAAA"}