@primer/react-brand 0.68.0-rc.0963e67e → 0.68.0-rc.20c2136f

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 (507) hide show
  1. package/esm/Button/Button.js +1 -1
  2. package/esm/Button/Button.module-Byz3R1qi.css +1 -0
  3. package/esm/Button/Button.module.js +2 -2
  4. package/esm/Button/Button.module.js.map +1 -1
  5. package/esm/Hero/{Hero.module-b8OFm8Ci.css → Hero.module-DvYo_AtL.css} +1 -1
  6. package/esm/Hero/Hero.module.js +1 -1
  7. package/esm/Hero/Hero.module.js.map +1 -1
  8. package/esm/Icon/Icon.module-UyYnXhrw.css +1 -0
  9. package/esm/Icon/Icon.module.js +1 -1
  10. package/esm/Icon/Icon.module.js.map +1 -1
  11. package/esm/LogoSuite/LogoSuite.module-69Mthqju.css +1 -0
  12. package/esm/LogoSuite/LogoSuite.module.js +1 -1
  13. package/esm/LogoSuite/LogoSuite.module.js.map +1 -1
  14. package/esm/MediaPlaylist/MediaPlaylist.d.ts +77 -0
  15. package/esm/MediaPlaylist/MediaPlaylist.d.ts.map +1 -0
  16. package/esm/MediaPlaylist/MediaPlaylist.js +172 -0
  17. package/esm/MediaPlaylist/MediaPlaylist.js.map +1 -0
  18. package/esm/MediaPlaylist/MediaPlaylist.module-BU39a4-W.css +1 -0
  19. package/esm/MediaPlaylist/MediaPlaylist.module.js +30 -0
  20. package/esm/MediaPlaylist/MediaPlaylist.module.js.map +1 -0
  21. package/esm/MediaPlaylist/index.d.ts +2 -0
  22. package/esm/MediaPlaylist/index.d.ts.map +1 -0
  23. package/esm/MediaPlaylist/useMediaPlaylist.d.ts +84 -0
  24. package/esm/MediaPlaylist/useMediaPlaylist.d.ts.map +1 -0
  25. package/esm/MediaPlaylist/useMediaPlaylist.js +114 -0
  26. package/esm/MediaPlaylist/useMediaPlaylist.js.map +1 -0
  27. package/esm/Pagination/Pagination.d.ts +2 -5
  28. package/esm/Pagination/Pagination.d.ts.map +1 -1
  29. package/esm/Pagination/Pagination.js +94 -52
  30. package/esm/Pagination/Pagination.js.map +1 -1
  31. package/esm/Pagination/Pagination.module-DmKBSq7s.css +1 -0
  32. package/esm/Pagination/Pagination.module.js +9 -3
  33. package/esm/Pagination/Pagination.module.js.map +1 -1
  34. package/esm/Pagination/model.d.ts +2 -2
  35. package/esm/Pagination/model.d.ts.map +1 -1
  36. package/esm/Pagination/model.js.map +1 -1
  37. package/esm/Pillar/Pillar.d.ts +4 -0
  38. package/esm/Pillar/Pillar.d.ts.map +1 -1
  39. package/esm/Pillar/Pillar.js +7 -7
  40. package/esm/Pillar/Pillar.js.map +1 -1
  41. package/esm/Pillar/Pillar.module-BM_qcCVC.css +1 -0
  42. package/esm/Pillar/Pillar.module.js +2 -1
  43. package/esm/Pillar/Pillar.module.js.map +1 -1
  44. package/esm/SectionIntroStacked/SectionIntroStacked.d.ts.map +1 -1
  45. package/esm/SectionIntroStacked/SectionIntroStacked.js +60 -59
  46. package/esm/SectionIntroStacked/SectionIntroStacked.js.map +1 -1
  47. package/esm/SectionIntroStacked/SectionIntroStacked.module-Cr7kUqTH.css +1 -0
  48. package/esm/SectionIntroStacked/SectionIntroStacked.module.js +1 -1
  49. package/esm/SectionIntroStacked/SectionIntroStacked.module.js.map +1 -1
  50. package/esm/Stack/Stack.js +1 -1
  51. package/esm/SubNav/SubNav.d.ts.map +1 -1
  52. package/esm/SubNav/SubNav.js +17 -16
  53. package/esm/SubNav/SubNav.js.map +1 -1
  54. package/esm/SubNav/SubNav.module-D-gLr0JO.css +1 -0
  55. package/esm/SubNav/SubNav.module.js +1 -1
  56. package/esm/SubNav/SubNav.module.js.map +1 -1
  57. package/esm/Tiles/Tiles.d.ts.map +1 -1
  58. package/esm/Tiles/Tiles.js +37 -36
  59. package/esm/Tiles/Tiles.js.map +1 -1
  60. package/esm/Tiles/Tiles.module-DVK0nMCy.css +1 -0
  61. package/esm/Tiles/Tiles.module.js +1 -1
  62. package/esm/Tiles/Tiles.module.js.map +1 -1
  63. package/esm/component-helpers/shared.module-CrdMh7Vf.css +1 -0
  64. package/esm/component-helpers/shared.module.js +5 -0
  65. package/esm/component-helpers/shared.module.js.map +1 -0
  66. package/esm/forms/Checkbox/Checkbox.module-CtRGEfSq.css +1 -0
  67. package/esm/forms/Checkbox/Checkbox.module.js +1 -1
  68. package/esm/forms/Checkbox/Checkbox.module.js.map +1 -1
  69. package/esm/forms/ControlGroup/ControlGroup.module-XDWDqxx9.css +1 -0
  70. package/esm/forms/ControlGroup/ControlGroup.module.js +1 -1
  71. package/esm/forms/ControlGroup/ControlGroup.module.js.map +1 -1
  72. package/esm/forms/FormControl/{FormControl.module-UQqb_zPR.css → FormControl.module-CSNT689n.css} +1 -1
  73. package/esm/forms/FormControl/FormControl.module.js +1 -1
  74. package/esm/forms/FormControl/FormControl.module.js.map +1 -1
  75. package/esm/forms/Radio/Radio.module-B470XLdO.css +1 -0
  76. package/esm/forms/Radio/Radio.module.js +1 -1
  77. package/esm/forms/Radio/Radio.module.js.map +1 -1
  78. package/esm/forms/Select/Select.module-CRuV5AGO.css +1 -0
  79. package/esm/forms/Select/Select.module.js +1 -1
  80. package/esm/forms/Select/Select.module.js.map +1 -1
  81. package/esm/forms/TextInput/TextInput.module-CrmcmO_m.css +1 -0
  82. package/esm/forms/TextInput/TextInput.module.js +1 -1
  83. package/esm/forms/TextInput/TextInput.module.js.map +1 -1
  84. package/esm/forms/Textarea/{Textarea.module-CdUlSjWq.css → Textarea.module-C4pwTMjB.css} +1 -1
  85. package/esm/forms/Textarea/Textarea.module.js +1 -1
  86. package/esm/forms/Textarea/Textarea.module.js.map +1 -1
  87. package/esm/index.d.ts +1 -0
  88. package/esm/index.d.ts.map +1 -1
  89. package/esm/index.esm.js +51 -50
  90. package/esm/packages/design-tokens/lib/design-tokens/css/tokens/functional/components/button/colors-with-modes-kII0kqk3.css +1 -0
  91. package/esm/packages/design-tokens/lib/design-tokens/css/tokens/functional/components/media-playlist/colors-with-modes-YId8eSZQ.css +1 -0
  92. package/esm/packages/design-tokens/lib/design-tokens/css/tokens/functional/size/size-SXubYfUg.css +1 -0
  93. package/esm/recipes/Flexsuite/Category/FlexSuiteSecurityCategory/FlexSuiteSecurityCategory.content.d.ts +9 -0
  94. package/esm/recipes/Flexsuite/Category/FlexSuiteSecurityCategory/FlexSuiteSecurityCategory.content.d.ts.map +1 -1
  95. package/esm/recipes/Flexsuite/Category/FlexSuiteSecurityCategory/FlexSuiteSecurityCategory.d.ts.map +1 -1
  96. package/esm/recipes/Flexsuite/Details/FlexSuiteAIDetailsPlaylist/FlexSuiteAIDetailsPlaylist.content.d.ts +49 -0
  97. package/esm/recipes/Flexsuite/Details/FlexSuiteAIDetailsPlaylist/FlexSuiteAIDetailsPlaylist.content.d.ts.map +1 -0
  98. package/esm/recipes/Flexsuite/Details/FlexSuiteAIDetailsPlaylist/FlexSuiteAIDetailsPlaylist.d.ts +7 -0
  99. package/esm/recipes/Flexsuite/Details/FlexSuiteAIDetailsPlaylist/FlexSuiteAIDetailsPlaylist.d.ts.map +1 -0
  100. package/esm/recipes/Flexsuite/Details/index.d.ts +4 -0
  101. package/esm/recipes/Flexsuite/Details/index.d.ts.map +1 -0
  102. package/esm/recipes/Flexsuite/Overview/FlexSuiteAIOverview.d.ts.map +1 -1
  103. package/esm/river/River/River.d.ts.map +1 -1
  104. package/esm/river/River/River.js +46 -45
  105. package/esm/river/River/River.js.map +1 -1
  106. package/esm/river/RiverAccordion/RiverAccordion.d.ts.map +1 -1
  107. package/esm/river/RiverAccordion/RiverAccordion.js +74 -65
  108. package/esm/river/RiverAccordion/RiverAccordion.js.map +1 -1
  109. package/esm/river/RiverAccordion/RiverAccordion.module-nlZZH3O7.css +1 -0
  110. package/esm/river/RiverAccordion/RiverAccordion.module.js +3 -2
  111. package/esm/river/RiverAccordion/RiverAccordion.module.js.map +1 -1
  112. package/esm/river/RiverBreakout/RiverBreakout.d.ts.map +1 -1
  113. package/esm/river/RiverBreakout/RiverBreakout.js +21 -20
  114. package/esm/river/RiverBreakout/RiverBreakout.js.map +1 -1
  115. package/esm/river/RiverBreakoutTabs/RiverBreakoutTabs.d.ts.map +1 -1
  116. package/esm/river/RiverBreakoutTabs/RiverBreakoutTabs.js +114 -113
  117. package/esm/river/RiverBreakoutTabs/RiverBreakoutTabs.js.map +1 -1
  118. package/esm/river/river-shared.module-D0AV93uz.css +1 -0
  119. package/esm/river/river-shared.module.js +1 -1
  120. package/esm/river/river-shared.module.js.map +1 -1
  121. package/lib/MediaPlaylist/MediaPlaylist.d.ts +76 -0
  122. package/lib/MediaPlaylist/index.d.ts +1 -0
  123. package/lib/MediaPlaylist/useMediaPlaylist.d.ts +83 -0
  124. package/lib/Pagination/Pagination.d.ts +2 -5
  125. package/lib/Pagination/model.d.ts +2 -2
  126. package/lib/Pillar/Pillar.d.ts +4 -0
  127. package/lib/css/main.css +879 -442
  128. package/lib/design-tokens/css/tokens/base/colors/color-scales-with-modes.css +1 -1
  129. package/lib/design-tokens/css/tokens/base/colors/light.css +1 -1
  130. package/lib/design-tokens/css/tokens/base/size/size.css +1 -1
  131. package/lib/design-tokens/css/tokens/base/typography/typography.css +1 -1
  132. package/lib/design-tokens/css/tokens/functional/animation/base.css +1 -1
  133. package/lib/design-tokens/css/tokens/functional/colors/global-with-modes.css +1 -1
  134. package/lib/design-tokens/css/tokens/functional/colors/global.css +1 -1
  135. package/lib/design-tokens/css/tokens/functional/components/accordion/colors-with-modes.css +1 -1
  136. package/lib/design-tokens/css/tokens/functional/components/action-menu/colors-with-modes.css +1 -1
  137. package/lib/design-tokens/css/tokens/functional/components/anchor-nav/colors-with-modes.css +1 -1
  138. package/lib/design-tokens/css/tokens/functional/components/bento/base.css +1 -1
  139. package/lib/design-tokens/css/tokens/functional/components/blinking-cursor/colors-with-modes.css +1 -1
  140. package/lib/design-tokens/css/tokens/functional/components/breadcrumbs/colors-with-modes.css +1 -1
  141. package/lib/design-tokens/css/tokens/functional/components/button/colors-with-modes.css +7 -7
  142. package/lib/design-tokens/css/tokens/functional/components/card/base.css +1 -1
  143. package/lib/design-tokens/css/tokens/functional/components/card/colors-with-modes.css +1 -1
  144. package/lib/design-tokens/css/tokens/functional/components/card/colors.css +1 -1
  145. package/lib/design-tokens/css/tokens/functional/components/comparison-table/colors-with-modes.css +1 -1
  146. package/lib/design-tokens/css/tokens/functional/components/comparison-table/comparison-table.css +1 -1
  147. package/lib/design-tokens/css/tokens/functional/components/control/colors-with-modes.css +51 -19
  148. package/lib/design-tokens/css/tokens/functional/components/cta-banner/colors-with-modes.css +1 -1
  149. package/lib/design-tokens/css/tokens/functional/components/eyebrow-banner/colors-with-modes.css +1 -1
  150. package/lib/design-tokens/css/tokens/functional/components/eyebrow-banner/eyebrow-banner.css +1 -1
  151. package/lib/design-tokens/css/tokens/functional/components/faq/base.css +1 -1
  152. package/lib/design-tokens/css/tokens/functional/components/faq/colors-with-modes.css +1 -1
  153. package/lib/design-tokens/css/tokens/functional/components/faq/colors.css +1 -1
  154. package/lib/design-tokens/css/tokens/functional/components/faq/faq.css +1 -1
  155. package/lib/design-tokens/css/tokens/functional/components/footer/colors-with-modes.css +1 -1
  156. package/lib/design-tokens/css/tokens/functional/components/footer/colors.css +1 -1
  157. package/lib/design-tokens/css/tokens/functional/components/frosted-glass-vfx/base.css +1 -1
  158. package/lib/design-tokens/css/tokens/functional/components/frosted-glass-vfx/colors-with-modes.css +1 -1
  159. package/lib/design-tokens/css/tokens/functional/components/grid/colors-with-modes.css +1 -1
  160. package/lib/design-tokens/css/tokens/functional/components/grid/colors.css +1 -1
  161. package/lib/design-tokens/css/tokens/functional/components/grid/grid.css +1 -1
  162. package/lib/design-tokens/css/tokens/functional/components/hero/base.css +1 -1
  163. package/lib/design-tokens/css/tokens/functional/components/icon/colors-with-modes.css +1 -1
  164. package/lib/design-tokens/css/tokens/functional/components/icon/colors.css +1 -1
  165. package/lib/design-tokens/css/tokens/functional/components/ide/base.css +1 -1
  166. package/lib/design-tokens/css/tokens/functional/components/ide/colors-with-modes.css +1 -1
  167. package/lib/design-tokens/css/tokens/functional/components/image/base.css +1 -1
  168. package/lib/design-tokens/css/tokens/functional/components/inline-link/base.css +1 -1
  169. package/lib/design-tokens/css/tokens/functional/components/inline-link/colors-with-modes.css +1 -1
  170. package/lib/design-tokens/css/tokens/functional/components/inline-link/colors.css +1 -1
  171. package/lib/design-tokens/css/tokens/functional/components/label/colors-with-modes.css +1 -1
  172. package/lib/design-tokens/css/tokens/functional/components/label/colors.css +1 -1
  173. package/lib/design-tokens/css/tokens/functional/components/link/colors-with-modes.css +1 -1
  174. package/lib/design-tokens/css/tokens/functional/components/link/colors.css +1 -1
  175. package/lib/design-tokens/css/tokens/functional/components/logosuite/base.css +1 -1
  176. package/lib/design-tokens/css/tokens/functional/components/logosuite/colors-with-modes.css +1 -1
  177. package/lib/design-tokens/css/tokens/functional/components/logosuite/colors.css +1 -1
  178. package/lib/design-tokens/css/tokens/functional/components/media-playlist/colors-with-modes.css +13 -0
  179. package/lib/design-tokens/css/tokens/functional/components/media-playlist/colors.css +8 -0
  180. package/lib/design-tokens/css/tokens/functional/components/pricing-options/colors-with-modes.css +1 -1
  181. package/lib/design-tokens/css/tokens/functional/components/pricing-options/colors.css +1 -1
  182. package/lib/design-tokens/css/tokens/functional/components/pricing-options/pricing-options.css +1 -1
  183. package/lib/design-tokens/css/tokens/functional/components/prose/base.css +1 -1
  184. package/lib/design-tokens/css/tokens/functional/components/prose/colors-with-modes.css +1 -1
  185. package/lib/design-tokens/css/tokens/functional/components/river/base.css +1 -1
  186. package/lib/design-tokens/css/tokens/functional/components/river/river.css +1 -1
  187. package/lib/design-tokens/css/tokens/functional/components/river-story-scroll/colors-with-modes.css +1 -1
  188. package/lib/design-tokens/css/tokens/functional/components/section/section.css +1 -1
  189. package/lib/design-tokens/css/tokens/functional/components/statistic/base.css +1 -1
  190. package/lib/design-tokens/css/tokens/functional/components/sub-nav/base.css +1 -1
  191. package/lib/design-tokens/css/tokens/functional/components/sub-nav/colors-with-modes.css +1 -1
  192. package/lib/design-tokens/css/tokens/functional/components/subdomain-nav-bar/colors-with-modes.css +1 -1
  193. package/lib/design-tokens/css/tokens/functional/components/tabs/base.css +1 -1
  194. package/lib/design-tokens/css/tokens/functional/components/tabs/colors-with-modes.css +1 -1
  195. package/lib/design-tokens/css/tokens/functional/components/tabs/colors.css +1 -1
  196. package/lib/design-tokens/css/tokens/functional/components/testimonial/base.css +1 -1
  197. package/lib/design-tokens/css/tokens/functional/components/testimonial/colors-with-modes.css +1 -1
  198. package/lib/design-tokens/css/tokens/functional/components/testimonial/colors.css +1 -1
  199. package/lib/design-tokens/css/tokens/functional/components/tiles/colors-with-modes.css +1 -1
  200. package/lib/design-tokens/css/tokens/functional/components/timeline/base.css +1 -1
  201. package/lib/design-tokens/css/tokens/functional/components/timeline/colors-with-modes.css +1 -1
  202. package/lib/design-tokens/css/tokens/functional/components/timeline/colors.css +1 -1
  203. package/lib/design-tokens/css/tokens/functional/components/token/colors-with-modes.css +1 -1
  204. package/lib/design-tokens/css/tokens/functional/components/token/colors.css +1 -1
  205. package/lib/design-tokens/css/tokens/functional/components/tooltip/colors-with-modes.css +1 -1
  206. package/lib/design-tokens/css/tokens/functional/components/tooltip/colors.css +1 -1
  207. package/lib/design-tokens/css/tokens/functional/components/video-player/base.css +1 -1
  208. package/lib/design-tokens/css/tokens/functional/components/video-player/colors-with-modes.css +1 -1
  209. package/lib/design-tokens/css/tokens/functional/size/border.css +1 -1
  210. package/lib/design-tokens/css/tokens/functional/size/breakpoints.css +1 -1
  211. package/lib/design-tokens/css/tokens/functional/size/size-coarse.css +1 -1
  212. package/lib/design-tokens/css/tokens/functional/size/size-fine.css +1 -1
  213. package/lib/design-tokens/css/tokens/functional/size/size.css +2 -2
  214. package/lib/design-tokens/css/tokens/functional/size/viewport.css +1 -1
  215. package/lib/design-tokens/css/tokens/functional/typography/typography-responsive.css +1 -1
  216. package/lib/design-tokens/css/tokens/functional/typography/typography.css +1 -1
  217. package/lib/design-tokens/js/module/tokens/base/colors/light.js +1 -1
  218. package/lib/design-tokens/js/module/tokens/base/size/size.js +1 -1
  219. package/lib/design-tokens/js/module/tokens/base/typography/typography.js +1 -1
  220. package/lib/design-tokens/js/module/tokens/functional/animation/base.js +1 -1
  221. package/lib/design-tokens/js/module/tokens/functional/colors/global.js +1 -1
  222. package/lib/design-tokens/js/module/tokens/functional/components/bento/base.js +1 -1
  223. package/lib/design-tokens/js/module/tokens/functional/components/card/base.js +1 -1
  224. package/lib/design-tokens/js/module/tokens/functional/components/card/colors.js +1 -1
  225. package/lib/design-tokens/js/module/tokens/functional/components/comparison-table/comparison-table.js +1 -1
  226. package/lib/design-tokens/js/module/tokens/functional/components/eyebrow-banner/eyebrow-banner.js +1 -1
  227. package/lib/design-tokens/js/module/tokens/functional/components/faq/base.js +1 -1
  228. package/lib/design-tokens/js/module/tokens/functional/components/faq/colors.js +1 -1
  229. package/lib/design-tokens/js/module/tokens/functional/components/faq/faq.js +1 -1
  230. package/lib/design-tokens/js/module/tokens/functional/components/footer/colors.js +1 -1
  231. package/lib/design-tokens/js/module/tokens/functional/components/frosted-glass-vfx/base.js +1 -1
  232. package/lib/design-tokens/js/module/tokens/functional/components/grid/colors.js +1 -1
  233. package/lib/design-tokens/js/module/tokens/functional/components/grid/grid.js +1 -1
  234. package/lib/design-tokens/js/module/tokens/functional/components/hero/base.js +1 -1
  235. package/lib/design-tokens/js/module/tokens/functional/components/icon/colors.js +1 -1
  236. package/lib/design-tokens/js/module/tokens/functional/components/ide/base.js +1 -1
  237. package/lib/design-tokens/js/module/tokens/functional/components/image/base.js +1 -1
  238. package/lib/design-tokens/js/module/tokens/functional/components/inline-link/base.js +1 -1
  239. package/lib/design-tokens/js/module/tokens/functional/components/inline-link/colors.js +1 -1
  240. package/lib/design-tokens/js/module/tokens/functional/components/label/colors.js +1 -1
  241. package/lib/design-tokens/js/module/tokens/functional/components/link/colors.js +1 -1
  242. package/lib/design-tokens/js/module/tokens/functional/components/logosuite/base.js +1 -1
  243. package/lib/design-tokens/js/module/tokens/functional/components/logosuite/colors.js +1 -1
  244. package/lib/design-tokens/js/module/tokens/functional/components/media-playlist/colors.js +15 -0
  245. package/lib/design-tokens/js/module/tokens/functional/components/pricing-options/colors.js +1 -1
  246. package/lib/design-tokens/js/module/tokens/functional/components/pricing-options/pricing-options.js +1 -1
  247. package/lib/design-tokens/js/module/tokens/functional/components/prose/base.js +1 -1
  248. package/lib/design-tokens/js/module/tokens/functional/components/river/base.js +1 -1
  249. package/lib/design-tokens/js/module/tokens/functional/components/river/river.js +1 -1
  250. package/lib/design-tokens/js/module/tokens/functional/components/section/section.js +1 -1
  251. package/lib/design-tokens/js/module/tokens/functional/components/statistic/base.js +1 -1
  252. package/lib/design-tokens/js/module/tokens/functional/components/sub-nav/base.js +1 -1
  253. package/lib/design-tokens/js/module/tokens/functional/components/tabs/base.js +1 -1
  254. package/lib/design-tokens/js/module/tokens/functional/components/tabs/colors.js +1 -1
  255. package/lib/design-tokens/js/module/tokens/functional/components/testimonial/base.js +1 -1
  256. package/lib/design-tokens/js/module/tokens/functional/components/testimonial/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 +2 -2
  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 +1 -1
  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 +6 -0
  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 +1 -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/timeline/base.js +1 -1
  311. package/lib/design-tokens/js/tokens/functional/components/timeline/colors.js +1 -1
  312. package/lib/design-tokens/js/tokens/functional/components/token/colors.js +1 -1
  313. package/lib/design-tokens/js/tokens/functional/components/tooltip/colors.js +1 -1
  314. package/lib/design-tokens/js/tokens/functional/components/video-player/base.js +1 -1
  315. package/lib/design-tokens/js/tokens/functional/size/border.js +1 -1
  316. package/lib/design-tokens/js/tokens/functional/size/breakpoints.js +1 -1
  317. package/lib/design-tokens/js/tokens/functional/size/size-coarse.js +1 -1
  318. package/lib/design-tokens/js/tokens/functional/size/size-fine.js +1 -1
  319. package/lib/design-tokens/js/tokens/functional/size/size.js +2 -2
  320. package/lib/design-tokens/js/tokens/functional/size/viewport.js +1 -1
  321. package/lib/design-tokens/js/tokens/functional/typography/typography-responsive.js +1 -1
  322. package/lib/design-tokens/js/tokens/functional/typography/typography.js +1 -1
  323. package/lib/design-tokens/scss/tokens/base/colors/light.scss +1 -1
  324. package/lib/design-tokens/scss/tokens/base/size/size.scss +1 -1
  325. package/lib/design-tokens/scss/tokens/base/typography/typography.scss +1 -1
  326. package/lib/design-tokens/scss/tokens/functional/animation/base.scss +1 -1
  327. package/lib/design-tokens/scss/tokens/functional/colors/global.scss +1 -1
  328. package/lib/design-tokens/scss/tokens/functional/components/bento/base.scss +1 -1
  329. package/lib/design-tokens/scss/tokens/functional/components/card/base.scss +1 -1
  330. package/lib/design-tokens/scss/tokens/functional/components/card/colors.scss +1 -1
  331. package/lib/design-tokens/scss/tokens/functional/components/comparison-table/comparison-table.scss +1 -1
  332. package/lib/design-tokens/scss/tokens/functional/components/eyebrow-banner/eyebrow-banner.scss +1 -1
  333. package/lib/design-tokens/scss/tokens/functional/components/faq/base.scss +1 -1
  334. package/lib/design-tokens/scss/tokens/functional/components/faq/colors.scss +1 -1
  335. package/lib/design-tokens/scss/tokens/functional/components/faq/faq.scss +1 -1
  336. package/lib/design-tokens/scss/tokens/functional/components/footer/colors.scss +1 -1
  337. package/lib/design-tokens/scss/tokens/functional/components/frosted-glass-vfx/base.scss +1 -1
  338. package/lib/design-tokens/scss/tokens/functional/components/grid/colors.scss +1 -1
  339. package/lib/design-tokens/scss/tokens/functional/components/grid/grid.scss +1 -1
  340. package/lib/design-tokens/scss/tokens/functional/components/hero/base.scss +1 -1
  341. package/lib/design-tokens/scss/tokens/functional/components/icon/colors.scss +1 -1
  342. package/lib/design-tokens/scss/tokens/functional/components/ide/base.scss +1 -1
  343. package/lib/design-tokens/scss/tokens/functional/components/image/base.scss +1 -1
  344. package/lib/design-tokens/scss/tokens/functional/components/inline-link/base.scss +1 -1
  345. package/lib/design-tokens/scss/tokens/functional/components/inline-link/colors.scss +1 -1
  346. package/lib/design-tokens/scss/tokens/functional/components/label/colors.scss +1 -1
  347. package/lib/design-tokens/scss/tokens/functional/components/link/colors.scss +1 -1
  348. package/lib/design-tokens/scss/tokens/functional/components/logosuite/base.scss +1 -1
  349. package/lib/design-tokens/scss/tokens/functional/components/logosuite/colors.scss +1 -1
  350. package/lib/design-tokens/scss/tokens/functional/components/media-playlist/colors.scss +5 -0
  351. package/lib/design-tokens/scss/tokens/functional/components/pricing-options/colors.scss +1 -1
  352. package/lib/design-tokens/scss/tokens/functional/components/pricing-options/pricing-options.scss +1 -1
  353. package/lib/design-tokens/scss/tokens/functional/components/prose/base.scss +1 -1
  354. package/lib/design-tokens/scss/tokens/functional/components/river/base.scss +1 -1
  355. package/lib/design-tokens/scss/tokens/functional/components/river/river.scss +1 -1
  356. package/lib/design-tokens/scss/tokens/functional/components/section/section.scss +1 -1
  357. package/lib/design-tokens/scss/tokens/functional/components/statistic/base.scss +1 -1
  358. package/lib/design-tokens/scss/tokens/functional/components/sub-nav/base.scss +1 -1
  359. package/lib/design-tokens/scss/tokens/functional/components/tabs/base.scss +1 -1
  360. package/lib/design-tokens/scss/tokens/functional/components/tabs/colors.scss +1 -1
  361. package/lib/design-tokens/scss/tokens/functional/components/testimonial/base.scss +1 -1
  362. package/lib/design-tokens/scss/tokens/functional/components/testimonial/colors.scss +1 -1
  363. package/lib/design-tokens/scss/tokens/functional/components/timeline/base.scss +1 -1
  364. package/lib/design-tokens/scss/tokens/functional/components/timeline/colors.scss +1 -1
  365. package/lib/design-tokens/scss/tokens/functional/components/token/colors.scss +1 -1
  366. package/lib/design-tokens/scss/tokens/functional/components/tooltip/colors.scss +1 -1
  367. package/lib/design-tokens/scss/tokens/functional/components/video-player/base.scss +1 -1
  368. package/lib/design-tokens/scss/tokens/functional/size/border.scss +1 -1
  369. package/lib/design-tokens/scss/tokens/functional/size/breakpoints.scss +1 -1
  370. package/lib/design-tokens/scss/tokens/functional/size/size-coarse.scss +1 -1
  371. package/lib/design-tokens/scss/tokens/functional/size/size-fine.scss +1 -1
  372. package/lib/design-tokens/scss/tokens/functional/size/size.scss +2 -2
  373. package/lib/design-tokens/scss/tokens/functional/size/viewport.scss +1 -1
  374. package/lib/design-tokens/scss/tokens/functional/typography/typography-responsive.scss +1 -1
  375. package/lib/design-tokens/scss/tokens/functional/typography/typography.scss +1 -1
  376. package/lib/design-tokens/ts/tokens/base/colors/light.d.ts +1 -1
  377. package/lib/design-tokens/ts/tokens/base/colors/light.js +1 -1
  378. package/lib/design-tokens/ts/tokens/base/size/size.d.ts +1 -1
  379. package/lib/design-tokens/ts/tokens/base/size/size.js +1 -1
  380. package/lib/design-tokens/ts/tokens/base/typography/typography.d.ts +1 -1
  381. package/lib/design-tokens/ts/tokens/base/typography/typography.js +1 -1
  382. package/lib/design-tokens/ts/tokens/functional/animation/base.d.ts +1 -1
  383. package/lib/design-tokens/ts/tokens/functional/animation/base.js +1 -1
  384. package/lib/design-tokens/ts/tokens/functional/colors/global.d.ts +1 -1
  385. package/lib/design-tokens/ts/tokens/functional/colors/global.js +1 -1
  386. package/lib/design-tokens/ts/tokens/functional/components/bento/base.d.ts +1 -1
  387. package/lib/design-tokens/ts/tokens/functional/components/bento/base.js +1 -1
  388. package/lib/design-tokens/ts/tokens/functional/components/card/base.d.ts +1 -1
  389. package/lib/design-tokens/ts/tokens/functional/components/card/base.js +1 -1
  390. package/lib/design-tokens/ts/tokens/functional/components/card/colors.d.ts +1 -1
  391. package/lib/design-tokens/ts/tokens/functional/components/card/colors.js +1 -1
  392. package/lib/design-tokens/ts/tokens/functional/components/comparison-table/comparison-table.d.ts +1 -1
  393. package/lib/design-tokens/ts/tokens/functional/components/comparison-table/comparison-table.js +1 -1
  394. package/lib/design-tokens/ts/tokens/functional/components/eyebrow-banner/eyebrow-banner.d.ts +1 -1
  395. package/lib/design-tokens/ts/tokens/functional/components/eyebrow-banner/eyebrow-banner.js +1 -1
  396. package/lib/design-tokens/ts/tokens/functional/components/faq/base.d.ts +1 -1
  397. package/lib/design-tokens/ts/tokens/functional/components/faq/base.js +1 -1
  398. package/lib/design-tokens/ts/tokens/functional/components/faq/colors.d.ts +1 -1
  399. package/lib/design-tokens/ts/tokens/functional/components/faq/colors.js +1 -1
  400. package/lib/design-tokens/ts/tokens/functional/components/faq/faq.d.ts +1 -1
  401. package/lib/design-tokens/ts/tokens/functional/components/faq/faq.js +1 -1
  402. package/lib/design-tokens/ts/tokens/functional/components/footer/colors.d.ts +1 -1
  403. package/lib/design-tokens/ts/tokens/functional/components/footer/colors.js +1 -1
  404. package/lib/design-tokens/ts/tokens/functional/components/frosted-glass-vfx/base.d.ts +1 -1
  405. package/lib/design-tokens/ts/tokens/functional/components/frosted-glass-vfx/base.js +1 -1
  406. package/lib/design-tokens/ts/tokens/functional/components/grid/colors.d.ts +1 -1
  407. package/lib/design-tokens/ts/tokens/functional/components/grid/colors.js +1 -1
  408. package/lib/design-tokens/ts/tokens/functional/components/grid/grid.d.ts +1 -1
  409. package/lib/design-tokens/ts/tokens/functional/components/grid/grid.js +1 -1
  410. package/lib/design-tokens/ts/tokens/functional/components/hero/base.d.ts +1 -1
  411. package/lib/design-tokens/ts/tokens/functional/components/hero/base.js +1 -1
  412. package/lib/design-tokens/ts/tokens/functional/components/icon/colors.d.ts +1 -1
  413. package/lib/design-tokens/ts/tokens/functional/components/icon/colors.js +1 -1
  414. package/lib/design-tokens/ts/tokens/functional/components/ide/base.d.ts +1 -1
  415. package/lib/design-tokens/ts/tokens/functional/components/ide/base.js +1 -1
  416. package/lib/design-tokens/ts/tokens/functional/components/image/base.d.ts +1 -1
  417. package/lib/design-tokens/ts/tokens/functional/components/image/base.js +1 -1
  418. package/lib/design-tokens/ts/tokens/functional/components/inline-link/base.d.ts +1 -1
  419. package/lib/design-tokens/ts/tokens/functional/components/inline-link/base.js +1 -1
  420. package/lib/design-tokens/ts/tokens/functional/components/inline-link/colors.d.ts +1 -1
  421. package/lib/design-tokens/ts/tokens/functional/components/inline-link/colors.js +1 -1
  422. package/lib/design-tokens/ts/tokens/functional/components/label/colors.d.ts +1 -1
  423. package/lib/design-tokens/ts/tokens/functional/components/label/colors.js +1 -1
  424. package/lib/design-tokens/ts/tokens/functional/components/link/colors.d.ts +1 -1
  425. package/lib/design-tokens/ts/tokens/functional/components/link/colors.js +1 -1
  426. package/lib/design-tokens/ts/tokens/functional/components/logosuite/base.d.ts +1 -1
  427. package/lib/design-tokens/ts/tokens/functional/components/logosuite/base.js +1 -1
  428. package/lib/design-tokens/ts/tokens/functional/components/logosuite/colors.d.ts +1 -1
  429. package/lib/design-tokens/ts/tokens/functional/components/logosuite/colors.js +1 -1
  430. package/lib/design-tokens/ts/tokens/functional/components/media-playlist/colors.d.ts +15 -0
  431. package/lib/design-tokens/ts/tokens/functional/components/media-playlist/colors.js +12 -0
  432. package/lib/design-tokens/ts/tokens/functional/components/pricing-options/colors.d.ts +1 -1
  433. package/lib/design-tokens/ts/tokens/functional/components/pricing-options/colors.js +1 -1
  434. package/lib/design-tokens/ts/tokens/functional/components/pricing-options/pricing-options.d.ts +1 -1
  435. package/lib/design-tokens/ts/tokens/functional/components/pricing-options/pricing-options.js +1 -1
  436. package/lib/design-tokens/ts/tokens/functional/components/prose/base.d.ts +1 -1
  437. package/lib/design-tokens/ts/tokens/functional/components/prose/base.js +1 -1
  438. package/lib/design-tokens/ts/tokens/functional/components/river/base.d.ts +1 -1
  439. package/lib/design-tokens/ts/tokens/functional/components/river/base.js +1 -1
  440. package/lib/design-tokens/ts/tokens/functional/components/river/river.d.ts +1 -1
  441. package/lib/design-tokens/ts/tokens/functional/components/river/river.js +1 -1
  442. package/lib/design-tokens/ts/tokens/functional/components/section/section.d.ts +1 -1
  443. package/lib/design-tokens/ts/tokens/functional/components/section/section.js +1 -1
  444. package/lib/design-tokens/ts/tokens/functional/components/statistic/base.d.ts +1 -1
  445. package/lib/design-tokens/ts/tokens/functional/components/statistic/base.js +1 -1
  446. package/lib/design-tokens/ts/tokens/functional/components/sub-nav/base.d.ts +1 -1
  447. package/lib/design-tokens/ts/tokens/functional/components/sub-nav/base.js +1 -1
  448. package/lib/design-tokens/ts/tokens/functional/components/tabs/base.d.ts +1 -1
  449. package/lib/design-tokens/ts/tokens/functional/components/tabs/base.js +1 -1
  450. package/lib/design-tokens/ts/tokens/functional/components/tabs/colors.d.ts +1 -1
  451. package/lib/design-tokens/ts/tokens/functional/components/tabs/colors.js +1 -1
  452. package/lib/design-tokens/ts/tokens/functional/components/testimonial/base.d.ts +1 -1
  453. package/lib/design-tokens/ts/tokens/functional/components/testimonial/base.js +1 -1
  454. package/lib/design-tokens/ts/tokens/functional/components/testimonial/colors.d.ts +1 -1
  455. package/lib/design-tokens/ts/tokens/functional/components/testimonial/colors.js +1 -1
  456. package/lib/design-tokens/ts/tokens/functional/components/timeline/base.d.ts +1 -1
  457. package/lib/design-tokens/ts/tokens/functional/components/timeline/base.js +1 -1
  458. package/lib/design-tokens/ts/tokens/functional/components/timeline/colors.d.ts +1 -1
  459. package/lib/design-tokens/ts/tokens/functional/components/timeline/colors.js +1 -1
  460. package/lib/design-tokens/ts/tokens/functional/components/token/colors.d.ts +1 -1
  461. package/lib/design-tokens/ts/tokens/functional/components/token/colors.js +1 -1
  462. package/lib/design-tokens/ts/tokens/functional/components/tooltip/colors.d.ts +1 -1
  463. package/lib/design-tokens/ts/tokens/functional/components/tooltip/colors.js +1 -1
  464. package/lib/design-tokens/ts/tokens/functional/components/video-player/base.d.ts +1 -1
  465. package/lib/design-tokens/ts/tokens/functional/components/video-player/base.js +1 -1
  466. package/lib/design-tokens/ts/tokens/functional/size/border.d.ts +1 -1
  467. package/lib/design-tokens/ts/tokens/functional/size/border.js +1 -1
  468. package/lib/design-tokens/ts/tokens/functional/size/breakpoints.d.ts +1 -1
  469. package/lib/design-tokens/ts/tokens/functional/size/breakpoints.js +1 -1
  470. package/lib/design-tokens/ts/tokens/functional/size/size-coarse.d.ts +1 -1
  471. package/lib/design-tokens/ts/tokens/functional/size/size-coarse.js +1 -1
  472. package/lib/design-tokens/ts/tokens/functional/size/size-fine.d.ts +1 -1
  473. package/lib/design-tokens/ts/tokens/functional/size/size-fine.js +1 -1
  474. package/lib/design-tokens/ts/tokens/functional/size/size.d.ts +1 -1
  475. package/lib/design-tokens/ts/tokens/functional/size/size.js +2 -2
  476. package/lib/design-tokens/ts/tokens/functional/size/viewport.d.ts +1 -1
  477. package/lib/design-tokens/ts/tokens/functional/size/viewport.js +1 -1
  478. package/lib/design-tokens/ts/tokens/functional/typography/typography-responsive.d.ts +1 -1
  479. package/lib/design-tokens/ts/tokens/functional/typography/typography-responsive.js +1 -1
  480. package/lib/design-tokens/ts/tokens/functional/typography/typography.d.ts +1 -1
  481. package/lib/design-tokens/ts/tokens/functional/typography/typography.js +1 -1
  482. package/lib/index.d.ts +1 -0
  483. package/lib/index.js +1 -1
  484. package/lib/recipes/Flexsuite/Category/FlexSuiteSecurityCategory/FlexSuiteSecurityCategory.content.d.ts +9 -0
  485. package/lib/recipes/Flexsuite/Details/FlexSuiteAIDetailsPlaylist/FlexSuiteAIDetailsPlaylist.content.d.ts +48 -0
  486. package/lib/recipes/Flexsuite/Details/FlexSuiteAIDetailsPlaylist/FlexSuiteAIDetailsPlaylist.d.ts +6 -0
  487. package/lib/recipes/Flexsuite/Details/index.d.ts +3 -0
  488. package/package.json +1 -1
  489. package/esm/Button/Button.module-CDHmNf-Y.css +0 -1
  490. package/esm/Icon/Icon.module-C1_lP1JO.css +0 -1
  491. package/esm/LogoSuite/LogoSuite.module-CWV4mJoG.css +0 -1
  492. package/esm/Pagination/Pagination.module-C7Z_pTFq.css +0 -1
  493. package/esm/Pillar/Pillar.module-Cpx4mbRH.css +0 -1
  494. package/esm/SectionIntroStacked/SectionIntroStacked.module-DvJXKMKX.css +0 -1
  495. package/esm/SubNav/SubNav.module-CFXuWNmS.css +0 -1
  496. package/esm/Tiles/Tiles.module-D7UJKhKM.css +0 -1
  497. package/esm/forms/Checkbox/Checkbox.module-DTWn-eCl.css +0 -1
  498. package/esm/forms/ControlGroup/ControlGroup.module-B7ITrHM_.css +0 -1
  499. package/esm/forms/Radio/Radio.module-C_NUEyme.css +0 -1
  500. package/esm/forms/Select/Select.module-q1LyPHa8.css +0 -1
  501. package/esm/forms/TextInput/TextInput.module-zPnaJdhX.css +0 -1
  502. package/esm/packages/design-tokens/lib/design-tokens/css/tokens/functional/components/button/colors-with-modes-DPvZ0fhp.css +0 -1
  503. package/esm/packages/design-tokens/lib/design-tokens/css/tokens/functional/components/pagination/colors-with-modes-C2GLM06X.css +0 -1
  504. package/esm/packages/design-tokens/lib/design-tokens/css/tokens/functional/size/size-Dr6y-7jl.css +0 -1
  505. package/esm/river/RiverAccordion/RiverAccordion.module-DrtqdEOQ.css +0 -1
  506. package/esm/river/river-shared.module-Cc5R8-Kl.css +0 -1
  507. package/lib/design-tokens/css/tokens/functional/components/pagination/colors-with-modes.css +0 -17
@@ -95,7 +95,7 @@ var P = y(_(({ id: o, children: s, className: f, "data-testid": g, fullWidth: _,
95
95
  return !1;
96
96
  }));
97
97
  }, [W]);
98
- let { heading: J, subheading: Y, links: X, action: ne } = W.reduce((e, t) => {
98
+ let { heading: J, subheading: Y, links: ne, action: re } = W.reduce((e, t) => {
99
99
  if (v(t)) if (t.type === F) e.heading = t;
100
100
  else if (t.type === I) e.subheading = t;
101
101
  else if (t.type === R) {
@@ -111,10 +111,10 @@ var P = y(_(({ id: o, children: s, className: f, "data-testid": g, fullWidth: _,
111
111
  subheading: void 0,
112
112
  links: [],
113
113
  action: void 0
114
- }), re = q ? h.toArray(q.props.children) : [], Z = re[0], Q = re[1], ie = v(Q) && Q.type === z && Q.props.variant === "anchor" ? Q : null, $ = v(Y) && Y.type === I && !!Y.props["aria-current"], ae = C(() => /* @__PURE__ */ E("div", {
114
+ }), ie = q ? h.toArray(q.props.children) : [], X = ie[0], Z = ie[1], ae = v(Z) && Z.type === z && Z.props.variant === "anchor" ? Z : null, Q = v(Y) && Y.type === I && !!Y.props["aria-current"], $ = Y ? X : null, oe = C(() => /* @__PURE__ */ E("div", {
115
115
  className: e(p["SubNav__overlay-toggle"], L && p["SubNav__overlay-toggle--open"]),
116
116
  children: /* @__PURE__ */ E("span", {
117
- className: e(p["SubNav__overlay-toggle-content"], !Z && p["SubNav__overlay-toggle-content--end"]),
117
+ className: e(p["SubNav__overlay-toggle-content"], !$ && p["SubNav__overlay-toggle-content--end"]),
118
118
  children: /* @__PURE__ */ D("button", {
119
119
  ref: P,
120
120
  className: p["SubNav__overlay-toggle-label"],
@@ -122,11 +122,11 @@ var P = y(_(({ id: o, children: s, className: f, "data-testid": g, fullWidth: _,
122
122
  onClick: L ? G : K,
123
123
  "aria-expanded": L ? "true" : "false",
124
124
  "aria-controls": H,
125
- "aria-label": Z ? `Navigation menu. Current page: ${Z}` : "Navigation menu",
126
- children: [Z && /* @__PURE__ */ E(r, {
125
+ "aria-label": X ? `Navigation menu. Current page: ${X}` : "Navigation menu",
126
+ children: [$ && /* @__PURE__ */ E(r, {
127
127
  as: "span",
128
128
  size: "100",
129
- children: Z
129
+ children: $
130
130
  }), E(L ? a : i, {
131
131
  className: p["SubNav__overlay-toggle-icon"],
132
132
  size: 13
@@ -134,15 +134,16 @@ var P = y(_(({ id: o, children: s, className: f, "data-testid": g, fullWidth: _,
134
134
  })
135
135
  })
136
136
  }), [
137
- Z,
137
+ X,
138
138
  G,
139
139
  K,
140
140
  H,
141
- L
141
+ L,
142
+ $
142
143
  ]);
143
144
  return /* @__PURE__ */ E("div", {
144
145
  ref: O,
145
- className: e(p.SubNav__container, Y && p["SubNav--has-sub-heading"], Y && $ && p["SubNav--subHeadingActive"], ee && p["SubNav__container--with-anchor-nav"]),
146
+ className: e(p.SubNav__container, Y && p["SubNav--has-sub-heading"], Y && Q && p["SubNav--subHeadingActive"], ee && p["SubNav__container--with-anchor-nav"]),
146
147
  children: /* @__PURE__ */ E(N, { children: /* @__PURE__ */ E("nav", {
147
148
  ref: j,
148
149
  id: o,
@@ -160,22 +161,22 @@ var P = y(_(({ id: o, children: s, className: f, "data-testid": g, fullWidth: _,
160
161
  children: J
161
162
  }),
162
163
  Y && /* @__PURE__ */ E("div", {
163
- className: e(p["SubNav__heading-container"], p["SubNav__subheading-container"], $ && p["SubNav__subheading-container-active"]),
164
+ className: e(p["SubNav__heading-container"], p["SubNav__subheading-container"], Q && p["SubNav__subheading-container-active"]),
164
165
  children: Y
165
166
  }),
166
- !U && (!Y || $) && ae,
167
- ie && ie
167
+ !U && (!Y || Q) && oe,
168
+ ae && ae
168
169
  ]
169
170
  }),
170
- !U && Y && !$ && ae,
171
- X.length > 0 && /* @__PURE__ */ D("ul", {
171
+ !U && Y && !Q && oe,
172
+ ne.length > 0 && /* @__PURE__ */ D("ul", {
172
173
  ref: M,
173
174
  id: H,
174
175
  className: e(p["SubNav__links-overlay"], L && p["SubNav__links-overlay--open"]),
175
176
  "data-testid": k.overlay,
176
- children: [X, ne && /* @__PURE__ */ E("li", {
177
+ children: [ne, re && /* @__PURE__ */ E("li", {
177
178
  className: p["SubNav__action-container"],
178
- children: ne
179
+ children: re
179
180
  })]
180
181
  })
181
182
  ]
@@ -1 +1 @@
1
- {"version":3,"file":"SubNav.js","names":[],"sources":["../../src/SubNav/SubNav.tsx"],"sourcesContent":["import React, {\n Children,\n createContext,\n forwardRef,\n isValidElement,\n memo,\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useRef,\n useState,\n type PropsWithChildren,\n type ReactNode,\n type RefObject,\n} from 'react'\nimport {Button, ButtonSizes, ButtonVariants, Text, TextProps, ThemeProvider, useWindowSize} from '..'\n\nimport {clsx} from 'clsx'\nimport {TriangleDownIcon, TriangleUpIcon} from '@primer/octicons-react'\nimport {useId} from '../hooks/useId'\nimport {useKeyboardEscape} from '../hooks/useKeyboardEscape'\nimport {useOnClickOutside} from '../hooks/useOnClickOutside'\nimport {useFocusTrap} from '../hooks/useFocusTrap'\nimport {useProvidedRefOrCreate} from '../hooks/useRef'\nimport {useContainsFocus} from './useContainsFocus'\n\nimport type {BaseProps} from '../component-helpers'\n\n/**\n * Design tokens\n */\nimport '@primer/brand-primitives/lib/design-tokens/css/tokens/functional/components/sub-nav/base.css'\nimport '@primer/brand-primitives/lib/design-tokens/css/tokens/functional/components/sub-nav/colors-with-modes.css'\n\n/** * Main Stylesheet (as a CSS Module) */\nimport styles from './SubNav.module.css'\nimport {createPortal} from 'react-dom'\n\nconst testIds = {\n root: 'SubNav-root',\n get button() {\n return `${this.root}-button`\n },\n get overlay() {\n return `${this.root}-overlay`\n },\n get link() {\n return `${this.root}-link`\n },\n get heading() {\n return `${this.root}-heading`\n },\n get action() {\n return `${this.root}-action`\n },\n get subMenu() {\n return `${this.root}-sub-menu`\n },\n}\n\nexport const SubNavSubMenuVariants = ['dropdown', 'anchor'] as const\ntype SubMenuVariants = (typeof SubNavSubMenuVariants)[number]\n\ntype SubNavContextType = {\n portalRef: RefObject<HTMLDivElement | null>\n}\n\nconst SubNavContext = createContext<SubNavContextType | undefined>(undefined)\n\nexport const useSubNavContext = () => {\n const context = useContext(SubNavContext)\n if (!context) {\n throw new Error('useSubNavContext must be used within a SubNavProvider')\n }\n return context\n}\n\nfunction SubNavProvider({children}: {children: React.ReactNode}) {\n const anchoredNavOuterPortalRef = React.useRef<HTMLDivElement>(null)\n const anchoredNavPortalRef = React.useRef<HTMLDivElement>(null)\n\n const value = useMemo(\n () => ({\n portalRef: anchoredNavPortalRef,\n }),\n [],\n )\n\n useEffect(() => {\n const menuContainer = anchoredNavOuterPortalRef.current\n\n const observer = new IntersectionObserver(\n ([entry]) => {\n entry.target.classList.toggle(styles['SubNav__anchor-menu-outer-container--stuck'], entry.intersectionRatio < 1)\n },\n {threshold: [1]},\n )\n\n if (menuContainer) {\n observer.observe(menuContainer)\n }\n\n return () => {\n if (menuContainer) {\n observer.unobserve(menuContainer)\n }\n }\n }, [])\n\n return (\n <SubNavContext.Provider value={value}>\n {children}\n\n <div className={styles['SubNav__anchor-menu-outer-container']} ref={anchoredNavOuterPortalRef}>\n <div className={clsx(styles['SubNav__anchor-menu-container'])} ref={anchoredNavPortalRef} />\n </div>\n </SubNavContext.Provider>\n )\n}\n\nexport type SubNavProps = {\n /**\n * @deprecated The hasShadow prop is deprecated and will be removed in a future release.\n */\n hasShadow?: boolean\n /**\n * Allows the SubNav to be used at full width,\n * removing any internal padding and guttering.\n */\n fullWidth?: boolean\n 'data-testid'?: string\n} & PropsWithChildren<BaseProps<HTMLDivElement>>\n\nconst SubNavRoot = memo(\n forwardRef<HTMLDivElement, SubNavProps>(\n ({id, children, className, 'data-testid': testId, fullWidth, hasShadow}, ref) => {\n const rootRef = useProvidedRefOrCreate<HTMLDivElement>(ref as RefObject<HTMLDivElement>)\n const innerRootRef = React.useRef<HTMLDivElement>(null)\n const navRef = React.useRef<HTMLElement>(null)\n const overlayRef = React.useRef<HTMLUListElement>(null)\n const narrowButtonRef = useRef<HTMLButtonElement>(null)\n const [isOpenAtNarrow, setIsOpenAtNarrow] = useState(false)\n const idForLinkContainer = useId()\n const [hasAnchoredNav, setHasAnchoredNav] = useState(false)\n\n const {isLarge} = useWindowSize()\n\n useFocusTrap({containerRef: innerRootRef, disabled: !isOpenAtNarrow})\n\n const childrenArr = Children.toArray(children)\n\n const closeMenuCallback = useCallback(() => {\n if (isLarge) return\n setIsOpenAtNarrow(false)\n }, [isLarge])\n\n const handleMenuToggle = useCallback(() => {\n if (isLarge) return\n setIsOpenAtNarrow(prev => !prev)\n }, [isLarge])\n\n useOnClickOutside(innerRootRef, closeMenuCallback)\n useKeyboardEscape(closeMenuCallback)\n\n useEffect(() => {\n const navElement = navRef.current\n\n const updateAvailableHeight = () => {\n if (navElement) {\n const navTop = navElement.getBoundingClientRect().top\n navElement.style.setProperty('--subnav-available-height', `${window.innerHeight - navTop}px`)\n }\n }\n\n if (isOpenAtNarrow && !isLarge) {\n document.body.style.overflow = 'hidden'\n updateAvailableHeight()\n // eslint-disable-next-line github/prefer-observers\n window.addEventListener('resize', updateAvailableHeight)\n } else {\n document.body.style.overflow = 'auto'\n\n if (navElement) {\n navElement.style.removeProperty('--subnav-available-height')\n }\n }\n\n return () => {\n document.body.style.overflow = 'auto'\n window.removeEventListener('resize', updateAvailableHeight)\n\n if (navElement) {\n navElement.style.removeProperty('--subnav-available-height')\n }\n }\n }, [isOpenAtNarrow, isLarge])\n\n const activeLink = childrenArr.find(child => {\n return isValidElement<LinkBaseProps>(child) && Boolean(child.props['aria-current'])\n }) as React.ReactElement<LinkBaseProps> | undefined\n\n useEffect(() => {\n // check if there is an anchored nav in the SubNav.SubMenu child\n const hasAnchorVariant = childrenArr.some(child => {\n if (isValidElement<LinkBaseProps>(child) && child.type === LinkBase) {\n const childNodes = Children.toArray(child.props.children)\n const maybeSubMenu = childNodes[1]\n if (\n isValidElement<SubMenuProps>(maybeSubMenu) &&\n maybeSubMenu.type === SubMenuBase &&\n maybeSubMenu.props.variant === 'anchor'\n ) {\n return true\n }\n }\n return false\n })\n setHasAnchoredNav(hasAnchorVariant)\n }, [childrenArr])\n\n const {\n heading: HeadingChild,\n subheading: SubHeadingChild,\n links: LinkChildren,\n action: ActionChild,\n } = childrenArr.reduce(\n (\n acc: {\n heading?: React.ReactElement<HeadingBaseProps>\n subheading?: React.ReactElement<SubHeadingBaseProps>\n links: React.ReactElement<LinkBaseProps>[]\n action?: React.ReactElement<SubNavActionProps>\n },\n child,\n ) => {\n if (isValidElement(child)) {\n if (child.type === HeadingBase) {\n acc.heading = child as React.ReactElement<HeadingBaseProps>\n } else if (child.type === SubHeadingBase) {\n acc.subheading = child as React.ReactElement<SubHeadingBaseProps>\n } else if (child.type === LinkBase) {\n const linkChild = child as React.ReactElement<LinkBaseProps>\n const childNodes = Children.toArray(linkChild.props.children)\n const [link, subMenu] = childNodes\n const isAnchorVariant =\n isValidElement<SubMenuProps>(subMenu) &&\n subMenu.type === SubMenuBase &&\n subMenu.props.variant === 'anchor'\n\n acc.links.push(\n React.cloneElement(linkChild, {\n ...(isAnchorVariant ? {children: [link]} : {}),\n onClick: linkChild.props['aria-current'] ? closeMenuCallback : linkChild.props.onClick,\n }),\n )\n } else if (child.type === ActionBase) {\n acc.action = child as React.ReactElement<SubNavActionProps>\n }\n }\n return acc\n },\n {heading: undefined, subheading: undefined, links: [], action: undefined},\n )\n\n const activeLinkChildren = activeLink ? Children.toArray(activeLink.props.children) : []\n const activeLinklabel = activeLinkChildren[0]\n\n // needed to prevent rendering of anchor subnav inside the narrow <button> element\n const maybeSubMenu = activeLinkChildren[1]\n const MaybeSubNav =\n isValidElement<SubMenuProps>(maybeSubMenu) &&\n maybeSubMenu.type === SubMenuBase &&\n maybeSubMenu.props.variant === 'anchor'\n ? maybeSubMenu\n : null\n\n const subHeadingIsActive =\n isValidElement<SubHeadingBaseProps>(SubHeadingChild) &&\n SubHeadingChild.type === SubHeadingBase &&\n Boolean(SubHeadingChild.props['aria-current'])\n\n const NarrowButton = useMemo(\n () => (\n <div\n className={clsx(styles['SubNav__overlay-toggle'], isOpenAtNarrow && styles['SubNav__overlay-toggle--open'])}\n >\n <span\n className={clsx(\n styles['SubNav__overlay-toggle-content'],\n !activeLinklabel && styles['SubNav__overlay-toggle-content--end'],\n )}\n >\n <button\n ref={narrowButtonRef}\n className={styles['SubNav__overlay-toggle-label']}\n data-testid={testIds.button}\n onClick={isOpenAtNarrow ? closeMenuCallback : handleMenuToggle}\n aria-expanded={isOpenAtNarrow ? 'true' : 'false'}\n aria-controls={idForLinkContainer}\n aria-label={activeLinklabel ? `Navigation menu. Current page: ${activeLinklabel}` : 'Navigation menu'}\n >\n {activeLinklabel && (\n <Text as=\"span\" size=\"100\">\n {activeLinklabel}\n </Text>\n )}\n {isOpenAtNarrow ? (\n <TriangleUpIcon className={styles['SubNav__overlay-toggle-icon']} size={13} />\n ) : (\n <TriangleDownIcon className={styles['SubNav__overlay-toggle-icon']} size={13} />\n )}\n </button>\n </span>\n </div>\n ),\n [activeLinklabel, closeMenuCallback, handleMenuToggle, idForLinkContainer, isOpenAtNarrow],\n )\n\n return (\n <div\n ref={rootRef}\n className={clsx(\n styles['SubNav__container'],\n SubHeadingChild && styles['SubNav--has-sub-heading'],\n SubHeadingChild && subHeadingIsActive && styles['SubNav--subHeadingActive'],\n hasAnchoredNav && styles['SubNav__container--with-anchor-nav'],\n )}\n >\n <SubNavProvider>\n <nav\n ref={navRef}\n id={id}\n className={clsx(\n styles.SubNav,\n isOpenAtNarrow && styles['SubNav--open'],\n hasShadow && styles['SubNav--has-shadow'],\n fullWidth && styles['SubNav--full-width'],\n className,\n )}\n data-testid={testId || testIds.root}\n >\n <div ref={innerRootRef} className={styles['SubNav--header-container-outer']}>\n <div className={styles['SubNav__header-container']}>\n {HeadingChild && <div className={styles['SubNav__heading-container']}>{HeadingChild}</div>}\n\n {SubHeadingChild && (\n <div\n className={clsx(\n styles['SubNav__heading-container'],\n styles['SubNav__subheading-container'],\n subHeadingIsActive && styles['SubNav__subheading-container-active'],\n )}\n >\n {SubHeadingChild}\n </div>\n )}\n\n {!isLarge && (!SubHeadingChild || subHeadingIsActive) && NarrowButton}\n\n {MaybeSubNav && MaybeSubNav}\n </div>\n {!isLarge && SubHeadingChild && !subHeadingIsActive && NarrowButton}\n {LinkChildren.length > 0 && (\n <ul\n ref={overlayRef}\n id={idForLinkContainer}\n className={clsx(\n styles['SubNav__links-overlay'],\n isOpenAtNarrow && styles['SubNav__links-overlay--open'],\n )}\n data-testid={testIds.overlay}\n >\n {LinkChildren}\n {ActionChild && <li className={styles['SubNav__action-container']}>{ActionChild}</li>}\n </ul>\n )}\n </div>\n </nav>\n </SubNavProvider>\n </div>\n )\n },\n ),\n)\n\ntype HeadingBaseProps = {\n href: string\n 'data-testid'?: string\n} & PropsWithChildren<React.HTMLProps<HTMLAnchorElement>> &\n BaseProps<HTMLAnchorElement>\n\nconst HeadingBase = ({href, children, className, 'data-testid': testID, ...props}: HeadingBaseProps) => {\n return (\n <a\n href={href}\n className={clsx(styles['SubNav__heading'], className)}\n data-testid={testIds.heading || testID}\n {...props}\n >\n {children}\n </a>\n )\n}\n\ntype SubHeadingBaseProps = {\n href: string\n 'data-testid'?: string\n} & PropsWithChildren<React.HTMLProps<HTMLAnchorElement>> &\n BaseProps<HTMLAnchorElement>\n\nconst SubHeadingBase = ({href, children, className, 'data-testid': testID, ...props}: SubHeadingBaseProps) => {\n return (\n <a\n href={href}\n className={clsx(styles['SubNav__heading'], styles['SubNav__link'], styles['SubNav__subHeading'], className)}\n data-testid={testIds.heading || testID}\n {...props}\n >\n {children}\n </a>\n )\n}\n\ntype LinkBaseProps = {\n href: string\n 'data-testid'?: string\n variant?: TextProps['variant']\n _subMenuVariant?: SubMenuVariants\n} & PropsWithChildren<React.HTMLProps<HTMLAnchorElement>> &\n BaseProps<HTMLAnchorElement>\n\nconst LinkBaseWithSubmenu = forwardRef<HTMLDivElement, LinkBaseProps>(\n (\n {children, href, 'aria-current': ariaCurrent, 'data-testid': testId, className, _subMenuVariant, variant, ...props},\n forwardedRef,\n ) => {\n const submenuId = useId()\n const {isLarge} = useWindowSize()\n\n const [isExpanded, setIsExpanded] = useState(false)\n const ref = useProvidedRefOrCreate(forwardedRef as RefObject<HTMLDivElement>)\n const subMenuChildrenRef = useRef<HTMLDivElement>(null)\n\n useContainsFocus(ref, (containsFocus: boolean) => {\n if (!containsFocus) {\n setIsExpanded(false)\n }\n })\n\n const expand = useCallback(() => setIsExpanded(true), [])\n const collapse = useCallback(() => setIsExpanded(false), [])\n const toggleExpanded = useCallback(() => setIsExpanded(prev => !prev), [])\n const isAriaCurrent = Boolean(ariaCurrent) && ariaCurrent !== 'false'\n\n useKeyboardEscape(collapse)\n\n useEffect(() => {\n if (subMenuChildrenRef.current) {\n // Workaround to avoid React 18 / 19 type mismatches with the `inert` attribute.\n // This approach won't immediately apply the attribute in pure SSR contexts, only post-hydration\n // TODO: Move back to JSX when React 19 is fully adopted in Dotcom.\n // `inert` removes the collapsed submenu from tab order and the accessibility tree\n // without affecting visual appearance\n subMenuChildrenRef.current.toggleAttribute('inert', isLarge && !isExpanded)\n }\n }, [isLarge, isExpanded])\n\n const [label, SubMenuChildren] = children as ReactNode[]\n\n return (\n <div\n className={clsx(\n styles['SubNav__link--has-sub-menu'],\n isExpanded && styles['SubNav__link--expanded'],\n isAriaCurrent && styles['SubNav__link--has-active-sub-menu'],\n )}\n data-testid={testId || testIds.subMenu}\n ref={ref}\n onMouseOver={expand}\n onMouseOut={collapse}\n /**\n * onFocus and onBlur need to be defined to keep the jsx-a11y/mouse-events-have-key-events\n * eslint rule happy. The focus/blur behaviour is handled by useContainsFocus\n */\n onFocus={() => null}\n onBlur={() => null}\n >\n <a\n href={href}\n className={clsx(styles['SubNav__link'], ariaCurrent && styles['SubNav__link--active'], className)}\n aria-current={ariaCurrent}\n {...props}\n >\n <Text as=\"span\" size=\"100\" weight=\"medium\" className={styles['SubNav__link-label']}>\n {label}\n </Text>\n </a>\n {isLarge && (\n <button\n className={styles['SubNav__sub-menu-toggle']}\n onClick={toggleExpanded}\n aria-expanded={isExpanded ? 'true' : 'false'}\n aria-controls={submenuId}\n aria-label={`${label?.toString().trim()} submenu`}\n >\n <TriangleDownIcon className={styles['SubNav__sub-menu-icon']} size={16} />\n </button>\n )}\n\n <div id={submenuId} className={styles['SubNav__sub-menu-children']} ref={subMenuChildrenRef}>\n {SubMenuChildren}\n </div>\n </div>\n )\n },\n)\n\nconst LinkBase = forwardRef<HTMLAnchorElement | HTMLDivElement, LinkBaseProps>((props, ref) => {\n const [isInView, setIsInView] = useState(false)\n const childrenArr = Children.toArray(props.children)\n\n const hasSubMenu = childrenArr.some(child => {\n if (isValidElement(child)) {\n return child.type === SubMenuBase\n }\n })\n\n useEffect(() => {\n if (hasSubMenu) return\n const targetId = props.href.replace('#', '')\n const target = document.getElementById(targetId)\n if (!target) return\n\n const topOfWindow = '0px 0px -100%'\n const observerParams = {threshold: 0, root: null, rootMargin: topOfWindow}\n\n const handleIntersectionUpdate: IntersectionObserverCallback = ([entry]) => {\n setIsInView(entry.isIntersecting)\n }\n\n const observer = new IntersectionObserver(handleIntersectionUpdate, observerParams)\n observer.observe(target)\n return () => observer.disconnect()\n }, [hasSubMenu, props.href])\n\n if (hasSubMenu) {\n const isAnchorVariantSubMenu = childrenArr.some(child => {\n return isValidElement<SubMenuProps>(child) && child.type === SubMenuBase && child.props.variant === 'anchor'\n })\n\n return (\n <li>\n <LinkBaseWithSubmenu\n ref={ref as RefObject<HTMLDivElement>}\n {...props}\n _subMenuVariant={isAnchorVariantSubMenu ? 'anchor' : undefined}\n />\n </li>\n )\n }\n\n const {children, href, 'aria-current': ariaCurrent, 'data-testid': testId, variant, className, ...rest} = props\n\n return (\n <li>\n <a\n href={href}\n className={clsx(\n styles['SubNav__link'],\n ariaCurrent && styles['SubNav__link--active'],\n isInView && styles['SubNav__link--is-in-view'],\n className,\n )}\n aria-current={ariaCurrent}\n data-testid={testId || testIds.link}\n ref={ref as RefObject<HTMLAnchorElement>}\n {...rest}\n >\n <Text as=\"span\" size=\"100\" weight=\"medium\" className={styles['SubNav__link-label']}>\n {children}\n </Text>\n </a>\n </li>\n )\n})\n\ntype SubMenuProps = {\n variant?: SubMenuVariants\n} & React.HTMLAttributes<HTMLUListElement> &\n BaseProps<HTMLUListElement>\n\nfunction SubMenuBase({children, className, variant = 'dropdown', ...props}: SubMenuProps) {\n const context = React.useContext(SubNavContext)\n const navRef = useRef<HTMLElement>(null)\n\n const {isLarge} = useWindowSize()\n\n /**\n * Effect is needed to prevent the bubbling of onClick events to the overlay trigger.\n * Removing this effect will cause clicks on the anchor nav element to toggle the overlay.\n */\n useEffect(() => {\n const handleClick = (e: MouseEvent) => {\n if (navRef.current && !navRef.current.contains(e.target as Node)) {\n return\n }\n\n if (!(e.target instanceof HTMLAnchorElement)) {\n e.stopPropagation()\n }\n }\n\n if (variant === 'anchor') {\n document.addEventListener('click', handleClick, true) // Capture phase\n }\n\n return () => {\n document.removeEventListener('click', handleClick, true)\n }\n }, [variant])\n\n if (variant === 'anchor' && context?.portalRef.current) {\n return createPortal(\n <nav\n ref={navRef}\n className={clsx(styles['SubNav__sub-menu'], styles['SubNav__sub-menu--anchor'], className)}\n role=\"navigation\"\n aria-label=\"Sub navigation\"\n >\n <ul className={styles['SubNav__sub-menu-list']} {...props}>\n {React.Children.map(children, child => {\n if (isValidElement<LinkBaseProps>(child) && child.type === LinkBase) {\n return React.cloneElement(child, {\n onClick: e => {\n child.props.onClick?.(e)\n },\n })\n }\n return null\n })}\n </ul>\n </nav>,\n context.portalRef.current,\n )\n } else {\n const Tag = isLarge ? ThemeProvider : React.Fragment\n\n return (\n <Tag {...(isLarge ? {colorMode: 'light'} : {})}>\n <ul className={clsx(styles['SubNav__sub-menu'], styles[`SubNav__sub-menu--${variant}`], className)} {...props}>\n {children}\n </ul>\n </Tag>\n )\n }\n}\n\ntype SubNavActionProps = {\n /**\n * Required path or location for the action button to link to.\n */\n href: string\n /**\n * Optional sizes for the button.\n */\n size?: (typeof ButtonSizes)[number]\n /**\n * Optional sizes for the button.\n */\n variant?: (typeof ButtonVariants)[number]\n} & Omit<React.AnchorHTMLAttributes<HTMLAnchorElement>, 'href'>\n\nfunction ActionBase({children, href, variant = 'primary', size = 'small', ...rest}: SubNavActionProps) {\n return (\n <Button\n className={styles['SubNav__action']}\n as=\"a\"\n href={href}\n variant={variant}\n data-testid={testIds.action}\n size={size}\n {...rest}\n >\n {children}\n </Button>\n )\n}\n\n/**\n * Use SubNav to display a secondary navigation beneath a primary header.\n * @see https://primer.style/brand/components/SubNav\n */\nexport const SubNav = Object.assign(SubNavRoot, {\n Heading: HeadingBase,\n SubHeading: SubHeadingBase,\n Link: LinkBase,\n Action: ActionBase,\n SubMenu: SubMenuBase,\n testIds,\n})\n"],"mappings":"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"}
1
+ {"version":3,"file":"SubNav.js","names":[],"sources":["../../src/SubNav/SubNav.tsx"],"sourcesContent":["import React, {\n Children,\n createContext,\n forwardRef,\n isValidElement,\n memo,\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useRef,\n useState,\n type PropsWithChildren,\n type ReactNode,\n type RefObject,\n} from 'react'\nimport {Button, ButtonSizes, ButtonVariants, Text, TextProps, ThemeProvider, useWindowSize} from '..'\n\nimport {clsx} from 'clsx'\nimport {TriangleDownIcon, TriangleUpIcon} from '@primer/octicons-react'\nimport {useId} from '../hooks/useId'\nimport {useKeyboardEscape} from '../hooks/useKeyboardEscape'\nimport {useOnClickOutside} from '../hooks/useOnClickOutside'\nimport {useFocusTrap} from '../hooks/useFocusTrap'\nimport {useProvidedRefOrCreate} from '../hooks/useRef'\nimport {useContainsFocus} from './useContainsFocus'\n\nimport type {BaseProps} from '../component-helpers'\n\n/**\n * Design tokens\n */\nimport '@primer/brand-primitives/lib/design-tokens/css/tokens/functional/components/sub-nav/base.css'\nimport '@primer/brand-primitives/lib/design-tokens/css/tokens/functional/components/sub-nav/colors-with-modes.css'\n\n/** * Main Stylesheet (as a CSS Module) */\nimport styles from './SubNav.module.css'\nimport {createPortal} from 'react-dom'\n\nconst testIds = {\n root: 'SubNav-root',\n get button() {\n return `${this.root}-button`\n },\n get overlay() {\n return `${this.root}-overlay`\n },\n get link() {\n return `${this.root}-link`\n },\n get heading() {\n return `${this.root}-heading`\n },\n get action() {\n return `${this.root}-action`\n },\n get subMenu() {\n return `${this.root}-sub-menu`\n },\n}\n\nexport const SubNavSubMenuVariants = ['dropdown', 'anchor'] as const\ntype SubMenuVariants = (typeof SubNavSubMenuVariants)[number]\n\ntype SubNavContextType = {\n portalRef: RefObject<HTMLDivElement | null>\n}\n\nconst SubNavContext = createContext<SubNavContextType | undefined>(undefined)\n\nexport const useSubNavContext = () => {\n const context = useContext(SubNavContext)\n if (!context) {\n throw new Error('useSubNavContext must be used within a SubNavProvider')\n }\n return context\n}\n\nfunction SubNavProvider({children}: {children: React.ReactNode}) {\n const anchoredNavOuterPortalRef = React.useRef<HTMLDivElement>(null)\n const anchoredNavPortalRef = React.useRef<HTMLDivElement>(null)\n\n const value = useMemo(\n () => ({\n portalRef: anchoredNavPortalRef,\n }),\n [],\n )\n\n useEffect(() => {\n const menuContainer = anchoredNavOuterPortalRef.current\n\n const observer = new IntersectionObserver(\n ([entry]) => {\n entry.target.classList.toggle(styles['SubNav__anchor-menu-outer-container--stuck'], entry.intersectionRatio < 1)\n },\n {threshold: [1]},\n )\n\n if (menuContainer) {\n observer.observe(menuContainer)\n }\n\n return () => {\n if (menuContainer) {\n observer.unobserve(menuContainer)\n }\n }\n }, [])\n\n return (\n <SubNavContext.Provider value={value}>\n {children}\n\n <div className={styles['SubNav__anchor-menu-outer-container']} ref={anchoredNavOuterPortalRef}>\n <div className={clsx(styles['SubNav__anchor-menu-container'])} ref={anchoredNavPortalRef} />\n </div>\n </SubNavContext.Provider>\n )\n}\n\nexport type SubNavProps = {\n /**\n * @deprecated The hasShadow prop is deprecated and will be removed in a future release.\n */\n hasShadow?: boolean\n /**\n * Allows the SubNav to be used at full width,\n * removing any internal padding and guttering.\n */\n fullWidth?: boolean\n 'data-testid'?: string\n} & PropsWithChildren<BaseProps<HTMLDivElement>>\n\nconst SubNavRoot = memo(\n forwardRef<HTMLDivElement, SubNavProps>(\n ({id, children, className, 'data-testid': testId, fullWidth, hasShadow}, ref) => {\n const rootRef = useProvidedRefOrCreate<HTMLDivElement>(ref as RefObject<HTMLDivElement>)\n const innerRootRef = React.useRef<HTMLDivElement>(null)\n const navRef = React.useRef<HTMLElement>(null)\n const overlayRef = React.useRef<HTMLUListElement>(null)\n const narrowButtonRef = useRef<HTMLButtonElement>(null)\n const [isOpenAtNarrow, setIsOpenAtNarrow] = useState(false)\n const idForLinkContainer = useId()\n const [hasAnchoredNav, setHasAnchoredNav] = useState(false)\n\n const {isLarge} = useWindowSize()\n\n useFocusTrap({containerRef: innerRootRef, disabled: !isOpenAtNarrow})\n\n const childrenArr = Children.toArray(children)\n\n const closeMenuCallback = useCallback(() => {\n if (isLarge) return\n setIsOpenAtNarrow(false)\n }, [isLarge])\n\n const handleMenuToggle = useCallback(() => {\n if (isLarge) return\n setIsOpenAtNarrow(prev => !prev)\n }, [isLarge])\n\n useOnClickOutside(innerRootRef, closeMenuCallback)\n useKeyboardEscape(closeMenuCallback)\n\n useEffect(() => {\n const navElement = navRef.current\n\n const updateAvailableHeight = () => {\n if (navElement) {\n const navTop = navElement.getBoundingClientRect().top\n navElement.style.setProperty('--subnav-available-height', `${window.innerHeight - navTop}px`)\n }\n }\n\n if (isOpenAtNarrow && !isLarge) {\n document.body.style.overflow = 'hidden'\n updateAvailableHeight()\n // eslint-disable-next-line github/prefer-observers\n window.addEventListener('resize', updateAvailableHeight)\n } else {\n document.body.style.overflow = 'auto'\n\n if (navElement) {\n navElement.style.removeProperty('--subnav-available-height')\n }\n }\n\n return () => {\n document.body.style.overflow = 'auto'\n window.removeEventListener('resize', updateAvailableHeight)\n\n if (navElement) {\n navElement.style.removeProperty('--subnav-available-height')\n }\n }\n }, [isOpenAtNarrow, isLarge])\n\n const activeLink = childrenArr.find(child => {\n return isValidElement<LinkBaseProps>(child) && Boolean(child.props['aria-current'])\n }) as React.ReactElement<LinkBaseProps> | undefined\n\n useEffect(() => {\n // check if there is an anchored nav in the SubNav.SubMenu child\n const hasAnchorVariant = childrenArr.some(child => {\n if (isValidElement<LinkBaseProps>(child) && child.type === LinkBase) {\n const childNodes = Children.toArray(child.props.children)\n const maybeSubMenu = childNodes[1]\n if (\n isValidElement<SubMenuProps>(maybeSubMenu) &&\n maybeSubMenu.type === SubMenuBase &&\n maybeSubMenu.props.variant === 'anchor'\n ) {\n return true\n }\n }\n return false\n })\n setHasAnchoredNav(hasAnchorVariant)\n }, [childrenArr])\n\n const {\n heading: HeadingChild,\n subheading: SubHeadingChild,\n links: LinkChildren,\n action: ActionChild,\n } = childrenArr.reduce(\n (\n acc: {\n heading?: React.ReactElement<HeadingBaseProps>\n subheading?: React.ReactElement<SubHeadingBaseProps>\n links: React.ReactElement<LinkBaseProps>[]\n action?: React.ReactElement<SubNavActionProps>\n },\n child,\n ) => {\n if (isValidElement(child)) {\n if (child.type === HeadingBase) {\n acc.heading = child as React.ReactElement<HeadingBaseProps>\n } else if (child.type === SubHeadingBase) {\n acc.subheading = child as React.ReactElement<SubHeadingBaseProps>\n } else if (child.type === LinkBase) {\n const linkChild = child as React.ReactElement<LinkBaseProps>\n const childNodes = Children.toArray(linkChild.props.children)\n const [link, subMenu] = childNodes\n const isAnchorVariant =\n isValidElement<SubMenuProps>(subMenu) &&\n subMenu.type === SubMenuBase &&\n subMenu.props.variant === 'anchor'\n\n acc.links.push(\n React.cloneElement(linkChild, {\n ...(isAnchorVariant ? {children: [link]} : {}),\n onClick: linkChild.props['aria-current'] ? closeMenuCallback : linkChild.props.onClick,\n }),\n )\n } else if (child.type === ActionBase) {\n acc.action = child as React.ReactElement<SubNavActionProps>\n }\n }\n return acc\n },\n {heading: undefined, subheading: undefined, links: [], action: undefined},\n )\n\n const activeLinkChildren = activeLink ? Children.toArray(activeLink.props.children) : []\n const activeLinklabel = activeLinkChildren[0]\n\n // needed to prevent rendering of anchor subnav inside the narrow <button> element\n const maybeSubMenu = activeLinkChildren[1]\n const MaybeSubNav =\n isValidElement<SubMenuProps>(maybeSubMenu) &&\n maybeSubMenu.type === SubMenuBase &&\n maybeSubMenu.props.variant === 'anchor'\n ? maybeSubMenu\n : null\n\n const subHeadingIsActive =\n isValidElement<SubHeadingBaseProps>(SubHeadingChild) &&\n SubHeadingChild.type === SubHeadingBase &&\n Boolean(SubHeadingChild.props['aria-current'])\n const narrowButtonLabel = SubHeadingChild ? activeLinklabel : null\n\n const NarrowButton = useMemo(\n () => (\n <div\n className={clsx(styles['SubNav__overlay-toggle'], isOpenAtNarrow && styles['SubNav__overlay-toggle--open'])}\n >\n <span\n className={clsx(\n styles['SubNav__overlay-toggle-content'],\n !narrowButtonLabel && styles['SubNav__overlay-toggle-content--end'],\n )}\n >\n <button\n ref={narrowButtonRef}\n className={styles['SubNav__overlay-toggle-label']}\n data-testid={testIds.button}\n onClick={isOpenAtNarrow ? closeMenuCallback : handleMenuToggle}\n aria-expanded={isOpenAtNarrow ? 'true' : 'false'}\n aria-controls={idForLinkContainer}\n aria-label={activeLinklabel ? `Navigation menu. Current page: ${activeLinklabel}` : 'Navigation menu'}\n >\n {narrowButtonLabel && (\n <Text as=\"span\" size=\"100\">\n {narrowButtonLabel}\n </Text>\n )}\n {isOpenAtNarrow ? (\n <TriangleUpIcon className={styles['SubNav__overlay-toggle-icon']} size={13} />\n ) : (\n <TriangleDownIcon className={styles['SubNav__overlay-toggle-icon']} size={13} />\n )}\n </button>\n </span>\n </div>\n ),\n [activeLinklabel, closeMenuCallback, handleMenuToggle, idForLinkContainer, isOpenAtNarrow, narrowButtonLabel],\n )\n\n return (\n <div\n ref={rootRef}\n className={clsx(\n styles['SubNav__container'],\n SubHeadingChild && styles['SubNav--has-sub-heading'],\n SubHeadingChild && subHeadingIsActive && styles['SubNav--subHeadingActive'],\n hasAnchoredNav && styles['SubNav__container--with-anchor-nav'],\n )}\n >\n <SubNavProvider>\n <nav\n ref={navRef}\n id={id}\n className={clsx(\n styles.SubNav,\n isOpenAtNarrow && styles['SubNav--open'],\n hasShadow && styles['SubNav--has-shadow'],\n fullWidth && styles['SubNav--full-width'],\n className,\n )}\n data-testid={testId || testIds.root}\n >\n <div ref={innerRootRef} className={styles['SubNav--header-container-outer']}>\n <div className={styles['SubNav__header-container']}>\n {HeadingChild && <div className={styles['SubNav__heading-container']}>{HeadingChild}</div>}\n\n {SubHeadingChild && (\n <div\n className={clsx(\n styles['SubNav__heading-container'],\n styles['SubNav__subheading-container'],\n subHeadingIsActive && styles['SubNav__subheading-container-active'],\n )}\n >\n {SubHeadingChild}\n </div>\n )}\n\n {!isLarge && (!SubHeadingChild || subHeadingIsActive) && NarrowButton}\n\n {MaybeSubNav && MaybeSubNav}\n </div>\n {!isLarge && SubHeadingChild && !subHeadingIsActive && NarrowButton}\n {LinkChildren.length > 0 && (\n <ul\n ref={overlayRef}\n id={idForLinkContainer}\n className={clsx(\n styles['SubNav__links-overlay'],\n isOpenAtNarrow && styles['SubNav__links-overlay--open'],\n )}\n data-testid={testIds.overlay}\n >\n {LinkChildren}\n {ActionChild && <li className={styles['SubNav__action-container']}>{ActionChild}</li>}\n </ul>\n )}\n </div>\n </nav>\n </SubNavProvider>\n </div>\n )\n },\n ),\n)\n\ntype HeadingBaseProps = {\n href: string\n 'data-testid'?: string\n} & PropsWithChildren<React.HTMLProps<HTMLAnchorElement>> &\n BaseProps<HTMLAnchorElement>\n\nconst HeadingBase = ({href, children, className, 'data-testid': testID, ...props}: HeadingBaseProps) => {\n return (\n <a\n href={href}\n className={clsx(styles['SubNav__heading'], className)}\n data-testid={testIds.heading || testID}\n {...props}\n >\n {children}\n </a>\n )\n}\n\ntype SubHeadingBaseProps = {\n href: string\n 'data-testid'?: string\n} & PropsWithChildren<React.HTMLProps<HTMLAnchorElement>> &\n BaseProps<HTMLAnchorElement>\n\nconst SubHeadingBase = ({href, children, className, 'data-testid': testID, ...props}: SubHeadingBaseProps) => {\n return (\n <a\n href={href}\n className={clsx(styles['SubNav__heading'], styles['SubNav__link'], styles['SubNav__subHeading'], className)}\n data-testid={testIds.heading || testID}\n {...props}\n >\n {children}\n </a>\n )\n}\n\ntype LinkBaseProps = {\n href: string\n 'data-testid'?: string\n variant?: TextProps['variant']\n _subMenuVariant?: SubMenuVariants\n} & PropsWithChildren<React.HTMLProps<HTMLAnchorElement>> &\n BaseProps<HTMLAnchorElement>\n\nconst LinkBaseWithSubmenu = forwardRef<HTMLDivElement, LinkBaseProps>(\n (\n {children, href, 'aria-current': ariaCurrent, 'data-testid': testId, className, _subMenuVariant, variant, ...props},\n forwardedRef,\n ) => {\n const submenuId = useId()\n const {isLarge} = useWindowSize()\n\n const [isExpanded, setIsExpanded] = useState(false)\n const ref = useProvidedRefOrCreate(forwardedRef as RefObject<HTMLDivElement>)\n const subMenuChildrenRef = useRef<HTMLDivElement>(null)\n\n useContainsFocus(ref, (containsFocus: boolean) => {\n if (!containsFocus) {\n setIsExpanded(false)\n }\n })\n\n const expand = useCallback(() => setIsExpanded(true), [])\n const collapse = useCallback(() => setIsExpanded(false), [])\n const toggleExpanded = useCallback(() => setIsExpanded(prev => !prev), [])\n const isAriaCurrent = Boolean(ariaCurrent) && ariaCurrent !== 'false'\n\n useKeyboardEscape(collapse)\n\n useEffect(() => {\n if (subMenuChildrenRef.current) {\n // Workaround to avoid React 18 / 19 type mismatches with the `inert` attribute.\n // This approach won't immediately apply the attribute in pure SSR contexts, only post-hydration\n // TODO: Move back to JSX when React 19 is fully adopted in Dotcom.\n // `inert` removes the collapsed submenu from tab order and the accessibility tree\n // without affecting visual appearance\n subMenuChildrenRef.current.toggleAttribute('inert', isLarge && !isExpanded)\n }\n }, [isLarge, isExpanded])\n\n const [label, SubMenuChildren] = children as ReactNode[]\n\n return (\n <div\n className={clsx(\n styles['SubNav__link--has-sub-menu'],\n isExpanded && styles['SubNav__link--expanded'],\n isAriaCurrent && styles['SubNav__link--has-active-sub-menu'],\n )}\n data-testid={testId || testIds.subMenu}\n ref={ref}\n onMouseOver={expand}\n onMouseOut={collapse}\n /**\n * onFocus and onBlur need to be defined to keep the jsx-a11y/mouse-events-have-key-events\n * eslint rule happy. The focus/blur behaviour is handled by useContainsFocus\n */\n onFocus={() => null}\n onBlur={() => null}\n >\n <a\n href={href}\n className={clsx(styles['SubNav__link'], ariaCurrent && styles['SubNav__link--active'], className)}\n aria-current={ariaCurrent}\n {...props}\n >\n <Text as=\"span\" size=\"100\" weight=\"medium\" className={styles['SubNav__link-label']}>\n {label}\n </Text>\n </a>\n {isLarge && (\n <button\n className={styles['SubNav__sub-menu-toggle']}\n onClick={toggleExpanded}\n aria-expanded={isExpanded ? 'true' : 'false'}\n aria-controls={submenuId}\n aria-label={`${label?.toString().trim()} submenu`}\n >\n <TriangleDownIcon className={styles['SubNav__sub-menu-icon']} size={16} />\n </button>\n )}\n\n <div id={submenuId} className={styles['SubNav__sub-menu-children']} ref={subMenuChildrenRef}>\n {SubMenuChildren}\n </div>\n </div>\n )\n },\n)\n\nconst LinkBase = forwardRef<HTMLAnchorElement | HTMLDivElement, LinkBaseProps>((props, ref) => {\n const [isInView, setIsInView] = useState(false)\n const childrenArr = Children.toArray(props.children)\n\n const hasSubMenu = childrenArr.some(child => {\n if (isValidElement(child)) {\n return child.type === SubMenuBase\n }\n })\n\n useEffect(() => {\n if (hasSubMenu) return\n const targetId = props.href.replace('#', '')\n const target = document.getElementById(targetId)\n if (!target) return\n\n const topOfWindow = '0px 0px -100%'\n const observerParams = {threshold: 0, root: null, rootMargin: topOfWindow}\n\n const handleIntersectionUpdate: IntersectionObserverCallback = ([entry]) => {\n setIsInView(entry.isIntersecting)\n }\n\n const observer = new IntersectionObserver(handleIntersectionUpdate, observerParams)\n observer.observe(target)\n return () => observer.disconnect()\n }, [hasSubMenu, props.href])\n\n if (hasSubMenu) {\n const isAnchorVariantSubMenu = childrenArr.some(child => {\n return isValidElement<SubMenuProps>(child) && child.type === SubMenuBase && child.props.variant === 'anchor'\n })\n\n return (\n <li>\n <LinkBaseWithSubmenu\n ref={ref as RefObject<HTMLDivElement>}\n {...props}\n _subMenuVariant={isAnchorVariantSubMenu ? 'anchor' : undefined}\n />\n </li>\n )\n }\n\n const {children, href, 'aria-current': ariaCurrent, 'data-testid': testId, variant, className, ...rest} = props\n\n return (\n <li>\n <a\n href={href}\n className={clsx(\n styles['SubNav__link'],\n ariaCurrent && styles['SubNav__link--active'],\n isInView && styles['SubNav__link--is-in-view'],\n className,\n )}\n aria-current={ariaCurrent}\n data-testid={testId || testIds.link}\n ref={ref as RefObject<HTMLAnchorElement>}\n {...rest}\n >\n <Text as=\"span\" size=\"100\" weight=\"medium\" className={styles['SubNav__link-label']}>\n {children}\n </Text>\n </a>\n </li>\n )\n})\n\ntype SubMenuProps = {\n variant?: SubMenuVariants\n} & React.HTMLAttributes<HTMLUListElement> &\n BaseProps<HTMLUListElement>\n\nfunction SubMenuBase({children, className, variant = 'dropdown', ...props}: SubMenuProps) {\n const context = React.useContext(SubNavContext)\n const navRef = useRef<HTMLElement>(null)\n\n const {isLarge} = useWindowSize()\n\n /**\n * Effect is needed to prevent the bubbling of onClick events to the overlay trigger.\n * Removing this effect will cause clicks on the anchor nav element to toggle the overlay.\n */\n useEffect(() => {\n const handleClick = (e: MouseEvent) => {\n if (navRef.current && !navRef.current.contains(e.target as Node)) {\n return\n }\n\n if (!(e.target instanceof HTMLAnchorElement)) {\n e.stopPropagation()\n }\n }\n\n if (variant === 'anchor') {\n document.addEventListener('click', handleClick, true) // Capture phase\n }\n\n return () => {\n document.removeEventListener('click', handleClick, true)\n }\n }, [variant])\n\n if (variant === 'anchor' && context?.portalRef.current) {\n return createPortal(\n <nav\n ref={navRef}\n className={clsx(styles['SubNav__sub-menu'], styles['SubNav__sub-menu--anchor'], className)}\n role=\"navigation\"\n aria-label=\"Sub navigation\"\n >\n <ul className={styles['SubNav__sub-menu-list']} {...props}>\n {React.Children.map(children, child => {\n if (isValidElement<LinkBaseProps>(child) && child.type === LinkBase) {\n return React.cloneElement(child, {\n onClick: e => {\n child.props.onClick?.(e)\n },\n })\n }\n return null\n })}\n </ul>\n </nav>,\n context.portalRef.current,\n )\n } else {\n const Tag = isLarge ? ThemeProvider : React.Fragment\n\n return (\n <Tag {...(isLarge ? {colorMode: 'light'} : {})}>\n <ul className={clsx(styles['SubNav__sub-menu'], styles[`SubNav__sub-menu--${variant}`], className)} {...props}>\n {children}\n </ul>\n </Tag>\n )\n }\n}\n\ntype SubNavActionProps = {\n /**\n * Required path or location for the action button to link to.\n */\n href: string\n /**\n * Optional sizes for the button.\n */\n size?: (typeof ButtonSizes)[number]\n /**\n * Optional sizes for the button.\n */\n variant?: (typeof ButtonVariants)[number]\n} & Omit<React.AnchorHTMLAttributes<HTMLAnchorElement>, 'href'>\n\nfunction ActionBase({children, href, variant = 'primary', size = 'small', ...rest}: SubNavActionProps) {\n return (\n <Button\n className={styles['SubNav__action']}\n as=\"a\"\n href={href}\n variant={variant}\n data-testid={testIds.action}\n size={size}\n {...rest}\n >\n {children}\n </Button>\n )\n}\n\n/**\n * Use SubNav to display a secondary navigation beneath a primary header.\n * @see https://primer.style/brand/components/SubNav\n */\nexport const SubNav = Object.assign(SubNavRoot, {\n Heading: HeadingBase,\n SubHeading: SubHeadingBase,\n Link: LinkBase,\n Action: ActionBase,\n SubMenu: SubMenuBase,\n testIds,\n})\n"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ .Primer_Brand__SubNav-module__SubNav__container___e4u9B{z-index:2;border-block:var(--brand-borderWidth-thin) solid var(--brand-color-border-muted);width:100%;position:absolute}.Primer_Brand__SubNav-module__SubNav__container--with-anchor-nav___jf8vj{display:inline;display:initial;position:relative}.Primer_Brand__SubNav-module__SubNav__container--with-anchor-nav___jf8vj .Primer_Brand__SubNav-module__SubNav___txUks{border-block:var(--brand-borderWidth-thin) solid var(--brand-color-border-muted)}.Primer_Brand__SubNav-module__SubNav___txUks{z-index:1;background-color:var(--brand-SubNav-bgColor);width:100%;display:flex}[data-color-mode=dark] .Primer_Brand__SubNav-module__SubNav___txUks{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.Primer_Brand__SubNav-module__SubNav__heading___d8v1r,.Primer_Brand__SubNav-module__SubNav__subHeading___cmfhs{font-size:calc(var(--base-size-16) - 1px);line-height:calc(var(--base-size-16) - 1px);font-weight:var(--brand-text-subhead-weight-medium);color:var(--brand-color-text-default);font-family:var(--brand-heading-fontFamily);-webkit-text-decoration:none;text-decoration:none;display:block}.Primer_Brand__SubNav-module__SubNav__heading___d8v1r:hover,.Primer_Brand__SubNav-module__SubNav__subHeading___cmfhs:hover,.Primer_Brand__SubNav-module__SubNav__link___rY_yE:hover .Primer_Brand__SubNav-module__SubNav__link-label___NVLOG{color:var(--brand-color-text-muted);-webkit-text-decoration:none!important;text-decoration:none!important}.Primer_Brand__SubNav-module__SubNav--header-container-outer___TODOB{width:100%}.Primer_Brand__SubNav-module__SubNav__heading-container___09GuE{z-index:9998;min-height:60px;padding:var(--base-size-16);border-inline-end:var(--brand-borderWidth-thin) solid var(--brand-color-border-muted);align-items:center;display:flex;position:relative}.Primer_Brand__SubNav-module__SubNav__heading-container___09GuE+.Primer_Brand__SubNav-module__SubNav__heading-container___09GuE{padding-inline-start:var(--base-size-24)}.Primer_Brand__SubNav-module__SubNav--has-shadow___9iM59{box-shadow:var(--brand-SubNav-shadow);background-color:var(--brand-color-canvas-default)}.Primer_Brand__SubNav-module__SubNav--full-width___PoXey{padding-inline:0}.Primer_Brand__SubNav-module__SubNav__action-container___Od_kP{margin-left:auto}.Primer_Brand__SubNav-module__SubNav__sub-menu-icon___5Gkyb{display:none!important}.Primer_Brand__SubNav-module__SubNav__sub-menu-children___5gfUK{display:contents}.Primer_Brand__SubNav-module__SubNav__links-overlay___IL2F1{margin:0;padding:0;list-style:none}.Primer_Brand__SubNav-module__SubNav__links-overlay___IL2F1>span,.Primer_Brand__SubNav-module__SubNav__sub-menu-toggle___ys018{display:none}.Primer_Brand__SubNav-module__SubNav__anchor-menu-outer-container___Mt06f{z-index:91;position:sticky;top:-1px}.Primer_Brand__SubNav-module__SubNav__anchor-menu-container___mSc6_{opacity:0;transform:translateY(var(--brand-animation-variant-slideInDown-distance));transition:opacity var(--brand-animation-duration-default) var(--brand-animation-easing-default), background-color var(--brand-animation-duration-default) var(--brand-animation-easing-default);background-color:#0000}.Primer_Brand__SubNav-module__SubNav__anchor-menu-outer-container___Mt06f:focus-within .Primer_Brand__SubNav-module__SubNav__anchor-menu-container___mSc6_,.Primer_Brand__SubNav-module__SubNav__anchor-menu-outer-container--stuck___KKSlj .Primer_Brand__SubNav-module__SubNav__anchor-menu-container___mSc6_{opacity:1;background-color:var(--brand-color-canvas-default);transform:translateY(0)}.Primer_Brand__SubNav-module__SubNav__anchor-menu-outer-container___Mt06f{height:0;transition:height var(--brand-animation-duration-default) var(--brand-animation-easing-default)}.Primer_Brand__SubNav-module__SubNav__anchor-menu-outer-container___Mt06f:focus-within,.Primer_Brand__SubNav-module__SubNav__anchor-menu-outer-container--stuck___KKSlj{height:auto}.Primer_Brand__SubNav-module__SubNav__sub-menu--anchor___te9GI{opacity:0;transform:translateY(var(--brand-animation-variant-slideInDown-distance));transition:opacity var(--brand-animation-duration-default) var(--brand-animation-easing-default), height var(--brand-animation-duration-default) var(--brand-animation-easing-default), transform var(--brand-animation-duration-default) var(--brand-animation-easing-default)}.Primer_Brand__SubNav-module__SubNav__anchor-menu-outer-container___Mt06f:focus-within .Primer_Brand__SubNav-module__SubNav__sub-menu--anchor___te9GI,.Primer_Brand__SubNav-module__SubNav__anchor-menu-outer-container--stuck___KKSlj .Primer_Brand__SubNav-module__SubNav__sub-menu--anchor___te9GI{visibility:visible;opacity:1;transform:translateY(0)}.Primer_Brand__SubNav-module__SubNav__sub-menu--anchor___te9GI{padding-block:var(--base-size-12);border-block:var(--brand-borderWidth-thin) solid var(--brand-color-border-muted);display:flex}.Primer_Brand__SubNav-module__SubNav__sub-menu--anchor___te9GI .Primer_Brand__SubNav-module__SubNav__sub-menu-list___3rKmh{gap:var(--base-size-20);margin:0;padding:0;list-style-type:none;display:inline-flex}.Primer_Brand__SubNav-module__SubNav__link-label___NVLOG{font-weight:450}.Primer_Brand__SubNav-module__SubNav__sub-menu--anchor___te9GI .Primer_Brand__SubNav-module__SubNav__link-label___NVLOG{padding:var(--base-size-6) var(--base-size-12);border-radius:var(--brand-borderRadius-full);transition:background-color var(--brand-animation-duration-default) var(--brand-animation-easing-default), color var(--brand-animation-duration-default) var(--brand-animation-easing-default);background-color:#0000}.Primer_Brand__SubNav-module__SubNav__sub-menu--anchor___te9GI .Primer_Brand__SubNav-module__SubNav__link--is-in-view___5HQNs .Primer_Brand__SubNav-module__SubNav__link-label___NVLOG{background-color:var(--brand-SubNav-color-link-bgColor)}.Primer_Brand__SubNav-module__SubNav__link___rY_yE:focus-visible .Primer_Brand__SubNav-module__SubNav__link-label___NVLOG:after,.Primer_Brand__SubNav-module__SubNav__sub-menu--anchor___te9GI .Primer_Brand__SubNav-module__SubNav__link--is-in-view___5HQNs:focus-visible .Primer_Brand__SubNav-module__SubNav__link-label___NVLOG:after{opacity:0}.Primer_Brand__SubNav-module__SubNav__link___rY_yE[aria-current]:not([aria-current=false]) *{color:var(--brand-SubNav-color-link-active);-webkit-text-decoration:none!important;text-decoration:none!important}.Primer_Brand__SubNav-module__SubNav__link___rY_yE:hover .Primer_Brand__SubNav-module__SubNav__link-label___NVLOG{transition:color var(--brand-animation-duration-fast) var(--brand-animation-easing-default)}.Primer_Brand__SubNav-module__SubNav__link___rY_yE:hover .Primer_Brand__SubNav-module__SubNav__link-label___NVLOG:after{border-color:var(--brand-color-text-default)}@media screen and (width<=63.24rem){.Primer_Brand__SubNav-module__SubNav___txUks{position:relative}.Primer_Brand__SubNav-module__SubNav___txUks:before{content:"";opacity:0;z-index:9997;position:absolute;inset:0}.Primer_Brand__SubNav-module__SubNav___txUks:after{content:"";z-index:-1;background-color:var(--base-color-scale-black-0);opacity:0;visibility:hidden;width:100%;height:100%;position:fixed;inset:0}.Primer_Brand__SubNav-module__SubNav--open___uMKHN:after{opacity:.3;visibility:visible;transition:visibility var(--brand-animation-duration-default) var(--brand-animation-easing-default), opacity var(--brand-animation-duration-default) var(--brand-animation-easing-default)}.Primer_Brand__SubNav-module__SubNav__heading___d8v1r{font-size:var(--base-size-16);line-height:var(--base-size-24)}.Primer_Brand__SubNav-module__SubNav--open___uMKHN{display:block}.Primer_Brand__SubNav-module__SubNav--open___uMKHN .Primer_Brand__SubNav-module__SubNav--header-container-outer___TODOB{max-height:100dvh;max-height:var(--subnav-available-height,100dvh);flex-direction:column;display:flex;overflow:hidden}.Primer_Brand__SubNav-module__SubNav--open___uMKHN .Primer_Brand__SubNav-module__SubNav__header-container___seaW6{flex-shrink:0}.Primer_Brand__SubNav-module__SubNav--open___uMKHN+.Primer_Brand__SubNav-module__SubNav__anchor-menu-outer-container___Mt06f{z-index:-1}.Primer_Brand__SubNav-module__SubNav--open___uMKHN:before{background-color:var(--brand-color-canvas-default);animation:Primer_Brand__SubNav-module__fade-in___6VxHj .3s var(--brand-animation-easing-glide) forwards}.Primer_Brand__SubNav-module__SubNav__heading-separator--main___6nQIi:not(.Primer_Brand__SubNav-module__SubNav__heading-separator--has-adjacent-label____My0U),.Primer_Brand__SubNav-module__SubNav__heading-separator--subheading-active___TGiD4,.Primer_Brand__SubNav-module__SubNav__subheading-container-active___NAyYL{display:none}.Primer_Brand__SubNav-module__SubNav__header-container___seaW6{white-space:pre;z-index:9998;width:100%;display:flex;position:relative}.Primer_Brand__SubNav-module__SubNav__heading-container___09GuE+.Primer_Brand__SubNav-module__SubNav__heading-container___09GuE{padding-inline-start:var(--base-size-16)}.Primer_Brand__SubNav-module__SubNav__heading-separator___LratU{z-index:9998;margin-inline-end:var(--base-size-16)}.Primer_Brand__SubNav-module__SubNav__links-overlay___IL2F1{z-index:9998;padding-inline:var(--base-size-8);flex-direction:column;flex:auto;justify-content:center;display:none;position:relative}.Primer_Brand__SubNav-module__SubNav__links-overlay--open___TxiWn{gap:var(--base-size-8);padding-block:var(--base-size-16);border-block-start:var(--brand-borderWidth-thin) solid var(--brand-color-border-muted);flex-direction:column;justify-content:flex-start;min-height:0;display:flex;overflow-y:auto}.Primer_Brand__SubNav-module__SubNav__links-overlay--open___TxiWn .Primer_Brand__SubNav-module__SubNav__link___rY_yE:hover .Primer_Brand__SubNav-module__SubNav__link-label___NVLOG{color:var(--brand-color-text-default)}.Primer_Brand__SubNav-module__SubNav__overlay-toggle___37Xw7{z-index:9999;width:100%;justify-content:flex-end;padding-inline-end:var(--base-size-16);display:flex;position:relative}.Primer_Brand__SubNav-module__SubNav--has-sub-heading___u6kR9:not(.Primer_Brand__SubNav-module__SubNav--subHeadingActive___C7_mM) .Primer_Brand__SubNav-module__SubNav__overlay-toggle___37Xw7{border-block-start:var(--brand-borderWidth-thin) solid var(--brand-color-border-muted);padding-block:var(--base-size-12);margin-block:0;display:block}.Primer_Brand__SubNav-module__SubNav__overlay-toggle-content___r7g9W{width:100%;padding-inline-start:var(--base-size-16)}.Primer_Brand__SubNav-module__SubNav__overlay-toggle-label___FRenU{background-color:var(--brand-SubNav-color-link-bgColor);border-radius:var(--brand-borderRadius-full);padding:var(--base-size-4) var(--base-size-12);gap:var(--base-size-6);cursor:pointer;font:inherit;border:none;align-items:center;display:flex}.Primer_Brand__SubNav-module__SubNav--full-width___PoXey .Primer_Brand__SubNav-module__SubNav__overlay-toggle___37Xw7{right:0}.Primer_Brand__SubNav-module__SubNav__link___rY_yE,.Primer_Brand__SubNav-module__SubNav__action-container___Od_kP{-webkit-text-decoration:none;text-decoration:none;display:none}.Primer_Brand__SubNav-module__SubNav__links-overlay--open___TxiWn .Primer_Brand__SubNav-module__SubNav__link-label___NVLOG{position:relative}.Primer_Brand__SubNav-module__SubNav__links-overlay--open___TxiWn .Primer_Brand__SubNav-module__SubNav__link___rY_yE[aria-current]:not([aria-current=false]) *{color:var(--brand-SubNav-color-link-active)}.Primer_Brand__SubNav-module__SubNav__links-overlay--open___TxiWn .Primer_Brand__SubNav-module__SubNav__link___rY_yE{padding:var(--base-size-4) var(--base-size-12);margin-inline-start:var(--base-size-8)}.Primer_Brand__SubNav-module__SubNav__links-overlay--open___TxiWn .Primer_Brand__SubNav-module__SubNav__link___rY_yE[aria-current]:not([aria-current=false]),.Primer_Brand__SubNav-module__SubNav__links-overlay--open___TxiWn .Primer_Brand__SubNav-module__SubNav__link___rY_yE:hover{background-color:var(--brand-SubNav-color-link-bgColor);border-radius:var(--brand-borderRadius-full);display:inline-flex}.Primer_Brand__SubNav-module__SubNav__links-overlay--open___TxiWn .Primer_Brand__SubNav-module__SubNav__link___rY_yE{animation:Primer_Brand__SubNav-module__fade-in___6VxHj .3s var(--brand-animation-easing-glide) forwards;display:inline-flex}.Primer_Brand__SubNav-module__SubNav__links-overlay--open___TxiWn .Primer_Brand__SubNav-module__SubNav__action-container___Od_kP{animation:Primer_Brand__SubNav-module__fade-in___6VxHj .3s var(--brand-animation-easing-glide) forwards;display:block}.Primer_Brand__SubNav-module__SubNav__links-overlay--open___TxiWn .Primer_Brand__SubNav-module__SubNav__link--has-sub-menu___Sy_3p{padding-block:0}.Primer_Brand__SubNav-module__SubNav__links-overlay--open___TxiWn .Primer_Brand__SubNav-module__SubNav__action-container___Od_kP,.Primer_Brand__SubNav-module__SubNav__links-overlay--open___TxiWn .Primer_Brand__SubNav-module__SubNav__action___Yrrhg{width:100%}.Primer_Brand__SubNav-module__SubNav__sub-menu___b8DSd{gap:var(--base-size-8);flex-direction:column;margin:0;padding:0;padding-block-start:var(--base-size-8);padding-inline-start:var(--base-size-16);list-style:none;display:flex}.Primer_Brand__SubNav-module__SubNav__sub-menu___b8DSd .Primer_Brand__SubNav-module__SubNav__link___rY_yE{margin-inline-start:0}.Primer_Brand__SubNav-module__SubNav__sub-menu--dropdown___uiVDU .Primer_Brand__SubNav-module__SubNav__link___rY_yE:hover .Primer_Brand__SubNav-module__SubNav__link-label___NVLOG{color:var(--brand-color-text-default)!important}.Primer_Brand__SubNav-module__SubNav__anchor-menu-container___mSc6_{z-index:99;width:100%;overflow:auto hidden}.Primer_Brand__SubNav-module__SubNav__anchor-menu-outer-container___Mt06f{position:sticky;top:-1px}.Primer_Brand__SubNav-module__SubNav__anchor-menu-outer-container___Mt06f:after{content:"";width:var(--base-size-32);background:linear-gradient(to left, var(--brand-color-canvas-default), transparent);pointer-events:none;z-index:100;position:absolute;top:0;bottom:0;right:0}.Primer_Brand__SubNav-module__SubNav__sub-menu--anchor___te9GI{padding-inline:var(--base-size-16);padding-block-start:var(--base-size-16);padding-block-end:var(--base-size-16)}.Primer_Brand__SubNav-module__SubNav__sub-menu--anchor___te9GI .Primer_Brand__SubNav-module__SubNav__link-label___NVLOG{font-size:var(--brand-text-size-100);line-height:var(--brand-text-lineHeight-100);letter-spacing:var(--brand-text-letterSpacing-100)}.Primer_Brand__SubNav-module__SubNav__sub-menu--anchor___te9GI .Primer_Brand__SubNav-module__SubNav__sub-menu-list___3rKmh{padding-inline-end:var(--base-size-32)}.Primer_Brand__SubNav-module__SubNav__sub-menu--anchor___te9GI .Primer_Brand__SubNav-module__SubNav__link___rY_yE{white-space:pre;top:var(--base-size-2);display:block;position:relative}}.Primer_Brand__SubNav-module__SubNav__overlay-toggle-icon___Fo5xs{fill:var(--brand-color-text-default)}.Primer_Brand__SubNav-module__SubNav__overlay-toggle-content___r7g9W{align-items:center;gap:var(--base-size-8);display:flex}.Primer_Brand__SubNav-module__SubNav__overlay-toggle-content--end___zLnlL{justify-content:flex-end}.Primer_Brand__SubNav-module__SubNav__link___rY_yE:focus-visible,.Primer_Brand__SubNav-module__SubNav__heading___d8v1r:focus-visible,.Primer_Brand__SubNav-module__SubNav__subHeading___cmfhs:focus-visible,.Primer_Brand__SubNav-module__SubNav__sub-menu-toggle___ys018:focus-visible,.Primer_Brand__SubNav-module__SubNav__overlay-toggle-label___FRenU:focus-visible{outline:var(--brand-borderWidth-thick) solid var(--brand-color-focus);outline-offset:var(--base-size-2)}.Primer_Brand__SubNav-module__SubNav__subHeading___cmfhs{white-space:nowrap;display:block;position:relative}.Primer_Brand__SubNav-module__SubNav__subHeading___cmfhs[aria-current]:not([aria-current=false]){background-color:var(--brand-SubNav-color-link-bgColor);border-radius:var(--brand-borderRadius-full);padding:var(--base-size-6) var(--base-size-12);border:none}@media screen and (width>=48rem){.Primer_Brand__SubNav-module__SubNav__heading-container___09GuE{padding-inline:var(--base-size-24)}.Primer_Brand__SubNav-module__SubNav__overlay-toggle-content___r7g9W{padding-inline-start:var(--base-size-24)}.Primer_Brand__SubNav-module__SubNav__links-overlay--open___TxiWn{padding:var(--base-size-24)}.Primer_Brand__SubNav-module__SubNav--full-width___PoXey{padding-inline:0}.Primer_Brand__SubNav-module__SubNav__sub-menu--anchor___te9GI{padding-inline:var(--base-size-24)}}.Primer_Brand__SubNav-module__SubNav__heading-label___Bv69i{white-space:pre}@media screen and (width>=63.25rem){.Primer_Brand__SubNav-module__SubNav___txUks{z-index:92;padding-inline:var(--base-size-32);align-items:center;display:flex}.Primer_Brand__SubNav-module__SubNav__links-overlay--open___TxiWn{padding:0}.Primer_Brand__SubNav-module__SubNav___txUks:has(+.Primer_Brand__SubNav-module__SubNav__anchor-menu-container___mSc6_){padding-block-end:0}.Primer_Brand__SubNav-module__SubNav__heading-container___09GuE{padding-inline-start:0}.Primer_Brand__SubNav-module__SubNav--full-width___PoXey{padding-inline:0}.Primer_Brand__SubNav-module__SubNav__overlay-toggle___37Xw7{display:none}.Primer_Brand__SubNav-module__SubNav__container--with-anchor-nav___jf8vj .Primer_Brand__SubNav-module__SubNav__heading___d8v1r{padding-block-end:1px}.Primer_Brand__SubNav-module__SubNav__heading-separator___LratU{margin-inline-end:var(--base-size-20);display:inline-flex;top:0}.Primer_Brand__SubNav-module__SubNav__container--with-anchor-nav___jf8vj .Primer_Brand__SubNav-module__SubNav__heading-separator___LratU{top:-1px}.Primer_Brand__SubNav-module__SubNav--header-container-outer___TODOB,.Primer_Brand__SubNav-module__SubNav__header-container___seaW6{align-items:center;display:flex}.Primer_Brand__SubNav-module__SubNav__links-overlay___IL2F1{align-items:center;gap:var(--base-size-2);z-index:92;flex-grow:1;padding-inline-start:var(--base-size-24);display:flex}.Primer_Brand__SubNav-module__SubNav__link___rY_yE{transition:color .2s var(--brand-animation-easing-glide);padding:var(--base-size-4) var(--base-size-12);border-radius:var(--brand-borderRadius-full);position:relative;-webkit-text-decoration:none!important;text-decoration:none!important}.Primer_Brand__SubNav-module__SubNav__link-label___NVLOG{font-size:var(--brand-text-size-100);line-height:var(--brand-text-lineHeight-100)}.Primer_Brand__SubNav-module__SubNav__link--has-sub-menu___Sy_3p{padding:var(--base-size-4) 0}.Primer_Brand__SubNav-module__SubNav__link--has-sub-menu___Sy_3p:after{content:"";bottom:calc(var(--base-size-12) * -1);width:100%;height:var(--base-size-12);background:0 0;position:absolute;left:0}.Primer_Brand__SubNav-module__SubNav__sub-menu___b8DSd.Primer_Brand__SubNav-module__SubNav__sub-menu--dropdown___uiVDU{background-clip:padding-box;background-color:var(--brand-color-canvas-default);border:var(--brand-color-border-muted) solid var(--brand-borderWidth-thin);border-radius:var(--brand-borderRadius-medium);padding:var(--base-size-8);z-index:9998;transition-timing-function:var(--brand-animation-easing-glide);transition-duration:var(--brand-animation-duration-fast);top:90%;left:0;left:var(--base-size-4);visibility:hidden;opacity:0;transform-origin:top;gap:var(--base-size-8);width:var(--brand-SubNav-width-subMenu);flex-direction:column;margin-block-start:var(--base-size-8);list-style:none;transition-property:opacity,transform;display:flex;position:absolute;transform:scale(.99)translateY(-.7em)translate(-8px)}.Primer_Brand__SubNav-module__SubNav__link--expanded___pUtmL .Primer_Brand__SubNav-module__SubNav__sub-menu___b8DSd.Primer_Brand__SubNav-module__SubNav__sub-menu--dropdown___uiVDU{visibility:visible;opacity:1;transform:scale(1)translateY(0)translate(-8px)}.Primer_Brand__SubNav-module__SubNav__sub-menu-toggle___ys018{width:var(--base-size-24);height:var(--base-size-24);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;margin:0;margin-inline-end:calc(-1 * var(--base-size-8));padding:0;padding-inline-end:var(--base-size-8);display:inline-flex}.Primer_Brand__SubNav-module__SubNav__sub-menu___b8DSd .Primer_Brand__SubNav-module__SubNav__link___rY_yE{display:block}.Primer_Brand__SubNav-module__SubNav__sub-menu--dropdown___uiVDU .Primer_Brand__SubNav-module__SubNav__link-label___NVLOG:after{opacity:1;transform:scale(0)}.Primer_Brand__SubNav-module__SubNav__link--has-sub-menu___Sy_3p{align-items:center;gap:var(--base-size-4);cursor:pointer;display:inline-flex;position:relative}.Primer_Brand__SubNav-module__SubNav__link--has-sub-menu___Sy_3p>.Primer_Brand__SubNav-module__SubNav__link___rY_yE{padding-inline-end:0}.Primer_Brand__SubNav-module__SubNav__sub-menu--dropdown___uiVDU .Primer_Brand__SubNav-module__SubNav__link-label___NVLOG{padding:var(--base-size-4) 0;position:relative}.Primer_Brand__SubNav-module__SubNav__link--has-active-sub-menu___GyXf4{background-color:var(--brand-SubNav-color-link-bgColor);border-radius:var(--brand-borderRadius-full);padding:0 var(--base-size-8) 0 0;gap:0}.Primer_Brand__SubNav-module__SubNav__link--has-active-sub-menu___GyXf4>.Primer_Brand__SubNav-module__SubNav__link___rY_yE{padding:var(--base-size-4) 0 var(--base-size-4) var(--base-size-12)}.Primer_Brand__SubNav-module__SubNav__sub-menu___b8DSd.Primer_Brand__SubNav-module__SubNav__sub-menu--dropdown___uiVDU .Primer_Brand__SubNav-module__SubNav__link___rY_yE{padding:var(--base-size-12)}.Primer_Brand__SubNav-module__SubNav__links-overlay___IL2F1 .Primer_Brand__SubNav-module__SubNav__link___rY_yE[aria-current]:not([aria-current=false]){background-color:var(--brand-SubNav-color-link-bgColor);line-height:1.1em}@supports ((-moz-appearance:none)){.Primer_Brand__SubNav-module__SubNav__links-overlay___IL2F1 .Primer_Brand__SubNav-module__SubNav__link--has-sub-menu___Sy_3p .Primer_Brand__SubNav-module__SubNav__link___rY_yE[aria-current]:not([aria-current=false]) .Primer_Brand__SubNav-module__SubNav__link-label___NVLOG{top:0}}.Primer_Brand__SubNav-module__SubNav__links-overlay___IL2F1 .Primer_Brand__SubNav-module__SubNav__link--has-active-sub-menu___GyXf4 .Primer_Brand__SubNav-module__SubNav__link___rY_yE[aria-current]:not([aria-current=false]){padding-inline-end:var(--base-size-4)}.Primer_Brand__SubNav-module__SubNav__sub-menu___b8DSd.Primer_Brand__SubNav-module__SubNav__sub-menu--dropdown___uiVDU .Primer_Brand__SubNav-module__SubNav__link___rY_yE[aria-current]:not([aria-current=false]){border-radius:var(--brand-borderRadius-medium);padding:var(--base-size-4) var(--base-size-8) var(--base-size-4) var(--base-size-12);top:auto;top:initial;background-color:#0000}.Primer_Brand__SubNav-module__SubNav__sub-menu___b8DSd.Primer_Brand__SubNav-module__SubNav__sub-menu--dropdown___uiVDU .Primer_Brand__SubNav-module__SubNav__link___rY_yE:hover{background-color:var(--brand-SubNav-color-link-bgColor);border-radius:var(--brand-borderRadius-medium)}.Primer_Brand__SubNav-module__SubNav__sub-menu-icon___5Gkyb{fill:var(--brand-color-text-muted);transition:transform var(--brand-animation-duration-fast);display:inline-block!important}.Primer_Brand__SubNav-module__SubNav__link--has-sub-menu___Sy_3p:not(.Primer_Brand__SubNav-module__SubNav__link--has-active-sub-menu___GyXf4) .Primer_Brand__SubNav-module__SubNav__sub-menu-icon___5Gkyb{top:calc(-1 * var(--brand-borderWidth-thin));position:relative}.Primer_Brand__SubNav-module__SubNav__sub-menu--anchor___te9GI{padding-inline:var(--base-size-32)}}@keyframes Primer_Brand__SubNav-module__fade-in___6VxHj{0%{opacity:0}to{opacity:1}}@keyframes Primer_Brand__SubNav-module__fade-in-down___UKi30{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion:reduce){.Primer_Brand__SubNav-module__SubNav___txUks,.Primer_Brand__SubNav-module__SubNav___txUks:before,.Primer_Brand__SubNav-module__SubNav___txUks:after,.Primer_Brand__SubNav-module__SubNav___txUks *{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
@@ -1,4 +1,4 @@
1
- import './SubNav.module-CFXuWNmS.css';var e = {
1
+ import './SubNav.module-D-gLr0JO.css';var e = {
2
2
  SubNav__container: "Primer_Brand__SubNav-module__SubNav__container___e4u9B",
3
3
  "SubNav__container--with-anchor-nav": "Primer_Brand__SubNav-module__SubNav__container--with-anchor-nav___jf8vj",
4
4
  SubNav: "Primer_Brand__SubNav-module__SubNav___txUks",
@@ -1 +1 @@
1
- {"version":3,"file":"SubNav.module.js","names":[],"sources":["../../src/SubNav/SubNav.module.css"],"sourcesContent":[".SubNav__container {\n position: absolute;\n width: 100%;\n z-index: 2;\n border-block: var(--brand-borderWidth-thin) solid var(--brand-color-border-muted);\n}\n\n.SubNav__container--with-anchor-nav {\n display: unset;\n position: relative;\n}\n\n.SubNav__container--with-anchor-nav .SubNav {\n border-block: var(--brand-borderWidth-thin) solid var(--brand-color-border-muted);\n}\n\n.SubNav {\n width: 100%;\n display: flex;\n z-index: 1;\n background-color: var(--brand-SubNav-bgColor);\n}\n\n[data-color-mode='dark'] .SubNav {\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\n.SubNav__heading,\n.SubNav__subHeading {\n display: block;\n font-size: calc(var(--base-size-16) - 1px); /* One-off override to match design */\n line-height: calc(var(--base-size-16) - 1px); /* One-off override to match design */\n font-weight: var(--brand-text-subhead-weight-medium);\n color: var(--brand-color-text-default);\n font-family: var(--brand-heading-fontFamily);\n text-decoration: none;\n}\n\n.SubNav__heading:hover,\n.SubNav__subHeading:hover,\n.SubNav__link:hover .SubNav__link-label {\n color: var(--brand-color-text-muted);\n text-decoration: none !important; /* dotcom override */\n}\n\n.SubNav--header-container-outer {\n width: 100%;\n}\n\n.SubNav__heading-container {\n min-height: 60px;\n position: relative;\n z-index: 9998;\n display: flex;\n align-items: center;\n padding: var(--base-size-16);\n border-inline-end: var(--brand-borderWidth-thin) solid var(--brand-color-border-muted);\n}\n\n.SubNav__heading-container + .SubNav__heading-container {\n padding-inline-start: var(--base-size-24);\n}\n\n.SubNav--has-shadow {\n box-shadow: var(--brand-SubNav-shadow);\n background-color: var(--brand-color-canvas-default);\n}\n\n.SubNav--full-width {\n padding-inline: 0;\n}\n\n.SubNav__action-container {\n margin-left: auto;\n}\n\n.SubNav__sub-menu-icon {\n display: none !important;\n}\n\n.SubNav__sub-menu-children {\n display: contents;\n}\n\n.SubNav__links-overlay {\n list-style: none;\n margin: 0;\n padding: 0;\n}\n\n.SubNav__links-overlay > span {\n display: none;\n}\n\n.SubNav__sub-menu-toggle {\n display: none;\n}\n\n/*\n * Anchor Nav Submenu\n */\n\n.SubNav__anchor-menu-outer-container {\n position: sticky;\n top: -1px;\n z-index: 91; /* must be higher than subdomain nav bar */\n}\n\n.SubNav__anchor-menu-container {\n opacity: 0;\n background-color: transparent;\n transform: translateY(var(--brand-animation-variant-slideInDown-distance));\n transition: opacity var(--brand-animation-duration-default) var(--brand-animation-easing-default),\n background-color var(--brand-animation-duration-default) var(--brand-animation-easing-default);\n}\n\n.SubNav__anchor-menu-outer-container:focus-within .SubNav__anchor-menu-container,\n.SubNav__anchor-menu-outer-container--stuck .SubNav__anchor-menu-container {\n transform: translateY(0);\n opacity: 1;\n background-color: var(--brand-color-canvas-default);\n}\n\n.SubNav__anchor-menu-outer-container {\n height: 0;\n transition: height var(--brand-animation-duration-default) var(--brand-animation-easing-default);\n}\n\n.SubNav__anchor-menu-outer-container:focus-within,\n.SubNav__anchor-menu-outer-container--stuck {\n height: auto;\n}\n\n.SubNav__sub-menu--anchor {\n opacity: 0;\n transform: translateY(var(--brand-animation-variant-slideInDown-distance));\n transition: opacity var(--brand-animation-duration-default) var(--brand-animation-easing-default),\n height var(--brand-animation-duration-default) var(--brand-animation-easing-default),\n transform var(--brand-animation-duration-default) var(--brand-animation-easing-default);\n}\n\n.SubNav__anchor-menu-outer-container:focus-within .SubNav__sub-menu--anchor,\n.SubNav__anchor-menu-outer-container--stuck .SubNav__sub-menu--anchor {\n visibility: visible;\n opacity: 1;\n transform: translateY(0);\n}\n\n.SubNav__sub-menu--anchor {\n display: flex;\n padding-block: var(--base-size-12);\n border-block: var(--brand-borderWidth-thin) solid var(--brand-color-border-muted);\n}\n\n.SubNav__sub-menu--anchor .SubNav__sub-menu-list {\n display: inline-flex;\n list-style-type: none;\n margin: 0;\n padding: 0;\n gap: var(--base-size-20);\n}\n\n.SubNav__link-label {\n font-weight: 450; /* FIXME: unsupported in our font weight primitives */\n}\n\n.SubNav__sub-menu--anchor .SubNav__link-label {\n padding: var(--base-size-6) var(--base-size-12);\n background-color: transparent;\n border-radius: var(--brand-borderRadius-full);\n transition: background-color var(--brand-animation-duration-default) var(--brand-animation-easing-default),\n color var(--brand-animation-duration-default) var(--brand-animation-easing-default);\n}\n\n.SubNav__sub-menu--anchor .SubNav__link--is-in-view .SubNav__link-label {\n background-color: var(--brand-SubNav-color-link-bgColor);\n}\n\n.SubNav__link:focus-visible .SubNav__link-label::after,\n.SubNav__sub-menu--anchor .SubNav__link--is-in-view:focus-visible .SubNav__link-label::after {\n opacity: 0;\n}\n\n.SubNav__link[aria-current]:not([aria-current='false']) * {\n color: var(--brand-SubNav-color-link-active);\n text-decoration: none !important; /* dotcom override */\n}\n\n.SubNav__link:hover .SubNav__link-label {\n transition: color var(--brand-animation-duration-fast) var(--brand-animation-easing-default);\n}\n\n.SubNav__link:hover .SubNav__link-label::after {\n border-color: var(--brand-color-text-default);\n}\n\n/*\n * Narrow breakpoint\n */\n\n@media screen and (max-width: 63.24rem) {\n .SubNav {\n position: relative;\n }\n\n .SubNav::before {\n content: '';\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n right: 0;\n opacity: 0;\n z-index: 9997;\n }\n\n .SubNav::after {\n content: '';\n z-index: -1;\n position: fixed;\n background-color: var(--base-color-scale-black-0);\n opacity: 0;\n visibility: hidden;\n top: 0;\n right: 0;\n left: 0;\n bottom: 0;\n width: 100%;\n height: 100%;\n }\n\n .SubNav--open::after {\n opacity: 0.3;\n visibility: visible;\n transition: visibility var(--brand-animation-duration-default) var(--brand-animation-easing-default),\n opacity var(--brand-animation-duration-default) var(--brand-animation-easing-default);\n }\n\n .SubNav__heading {\n font-size: var(--base-size-16);\n line-height: var(--base-size-24);\n }\n\n .SubNav--open {\n display: block;\n }\n\n .SubNav--open .SubNav--header-container-outer {\n display: flex;\n flex-direction: column;\n max-height: var(--subnav-available-height, 100dvh);\n overflow: hidden;\n }\n\n .SubNav--open .SubNav__header-container {\n flex-shrink: 0;\n }\n\n .SubNav--open + .SubNav__anchor-menu-outer-container {\n z-index: -1;\n }\n\n .SubNav--open::before {\n background-color: var(--brand-color-canvas-default);\n animation: fade-in 0.3s var(--brand-animation-easing-glide) forwards;\n }\n\n .SubNav__heading-separator--main:not(.SubNav__heading-separator--has-adjacent-label),\n .SubNav__heading-separator--subheading-active,\n .SubNav__subheading-container-active {\n display: none;\n }\n\n .SubNav__header-container {\n display: flex;\n width: 100%;\n white-space: pre;\n position: relative;\n z-index: 9998;\n }\n\n .SubNav__heading-container + .SubNav__heading-container {\n padding-inline-start: var(--base-size-16);\n }\n\n .SubNav__heading-separator {\n margin-inline-end: var(--base-size-16);\n z-index: 9998;\n }\n\n .SubNav__links-overlay {\n position: relative;\n display: flex;\n flex: auto;\n flex-direction: column;\n justify-content: center;\n z-index: 9998;\n display: none;\n padding-inline: var(--base-size-8);\n }\n\n .SubNav__links-overlay--open {\n display: flex;\n flex-direction: column;\n gap: var(--base-size-8);\n padding-block: var(--base-size-16);\n border-block-start: var(--brand-borderWidth-thin) solid var(--brand-color-border-muted);\n justify-content: flex-start;\n overflow-y: auto;\n min-height: 0;\n }\n\n .SubNav__links-overlay--open .SubNav__link:hover .SubNav__link-label {\n color: var(--brand-color-text-default);\n }\n\n .SubNav__overlay-toggle {\n display: flex;\n position: relative;\n width: 100%;\n z-index: 9999;\n justify-content: flex-end;\n padding-inline-end: var(--base-size-16);\n }\n\n .SubNav--has-sub-heading:not(.SubNav--subHeadingActive) .SubNav__overlay-toggle {\n border-block-start: var(--brand-borderWidth-thin) solid var(--brand-color-border-muted);\n display: block;\n padding-block: var(--base-size-12);\n margin-block: 0;\n }\n\n .SubNav__overlay-toggle-content {\n width: 100%;\n padding-inline-start: var(--base-size-16);\n }\n\n .SubNav__overlay-toggle-label {\n background-color: var(--brand-SubNav-color-link-bgColor);\n border: none;\n border-radius: var(--brand-borderRadius-full);\n padding: var(--base-size-4) var(--base-size-12);\n gap: var(--base-size-6);\n display: flex;\n align-items: center;\n cursor: pointer;\n font: inherit;\n }\n\n .SubNav--full-width .SubNav__overlay-toggle {\n right: 0;\n }\n\n .SubNav__link,\n .SubNav__action-container {\n display: none;\n text-decoration: none;\n }\n\n .SubNav__links-overlay--open .SubNav__link-label {\n position: relative;\n }\n\n .SubNav__links-overlay--open .SubNav__link[aria-current]:not([aria-current='false']) * {\n color: var(--brand-SubNav-color-link-active);\n }\n\n .SubNav__links-overlay--open .SubNav__link {\n padding: var(--base-size-8);\n }\n\n .SubNav__links-overlay--open .SubNav__link[aria-current]:not([aria-current='false']) {\n display: inline-block;\n background-color: var(--brand-SubNav-color-link-bgColor);\n border-radius: var(--brand-borderRadius-full);\n padding: var(--base-size-2) var(--base-size-12) var(--base-size-4);\n margin-inline-start: var(--base-size-8);\n }\n\n .SubNav__links-overlay--open .SubNav__link:hover {\n background-color: var(--brand-SubNav-color-link-bgColor);\n border-radius: var(--brand-borderRadius-medium);\n }\n\n .SubNav__links-overlay--open .SubNav__link,\n .SubNav__links-overlay--open .SubNav__action-container {\n display: block;\n animation: fade-in 0.3s var(--brand-animation-easing-glide) forwards;\n }\n\n .SubNav__links-overlay--open .SubNav__link--has-sub-menu {\n padding-block: 0;\n }\n\n .SubNav__links-overlay--open .SubNav__action-container {\n width: 100%;\n }\n\n .SubNav__links-overlay--open .SubNav__action {\n width: 100%;\n }\n\n .SubNav__sub-menu {\n list-style: none;\n padding: 0;\n margin: 0;\n padding-inline-start: var(--base-size-16);\n padding-block-start: var(--base-size-8);\n }\n\n .SubNav__sub-menu--dropdown .SubNav__link:hover .SubNav__link-label {\n color: var(--brand-color-text-default) !important;\n }\n\n .SubNav__anchor-menu-container {\n z-index: 99;\n overflow-x: auto;\n overflow-y: hidden;\n width: 100%;\n }\n\n .SubNav__anchor-menu-outer-container {\n position: sticky;\n top: -1px;\n }\n\n .SubNav__anchor-menu-outer-container::after {\n content: '';\n position: absolute;\n right: 0;\n top: 0;\n bottom: 0;\n width: var(--base-size-32);\n background: linear-gradient(to left, var(--brand-color-canvas-default), transparent);\n pointer-events: none;\n z-index: 100;\n }\n\n .SubNav__link-label {\n padding-block-end: var(--base-size-6);\n }\n\n .SubNav__sub-menu--anchor {\n padding-inline: var(--base-size-16);\n padding-block-end: var(--base-size-16);\n padding-block-start: var(--base-size-16);\n }\n\n .SubNav__sub-menu--anchor .SubNav__link-label {\n font-size: var(--brand-text-size-100);\n line-height: var(--brand-text-lineHeight-100);\n letter-spacing: var(--brand-text-letterSpacing-100);\n }\n\n .SubNav__sub-menu--anchor .SubNav__sub-menu-list {\n padding-inline-end: var(--base-size-32);\n }\n\n .SubNav__sub-menu--anchor .SubNav__link {\n display: block;\n white-space: pre;\n position: relative;\n top: var(--base-size-2);\n }\n}\n\n.SubNav__overlay-toggle-icon {\n fill: var(--brand-color-text-default);\n}\n\n.SubNav__overlay-toggle-content {\n display: flex;\n align-items: center;\n gap: var(--base-size-8);\n}\n\n.SubNav__overlay-toggle-content--end {\n justify-content: flex-end;\n}\n\n.SubNav__link:focus-visible,\n.SubNav__heading:focus-visible,\n.SubNav__subHeading:focus-visible,\n.SubNav__sub-menu-toggle:focus-visible,\n.SubNav__overlay-toggle-label:focus-visible {\n outline: var(--brand-borderWidth-thick) solid var(--brand-color-focus);\n outline-offset: var(--base-size-2);\n}\n\n.SubNav__subHeading {\n display: block;\n position: relative;\n white-space: nowrap;\n}\n\n.SubNav__subHeading[aria-current]:not([aria-current='false']) {\n background-color: var(--brand-SubNav-color-link-bgColor);\n border: none;\n border-radius: var(--brand-borderRadius-full);\n padding: var(--base-size-6) var(--base-size-12);\n}\n\n@media screen and (min-width: 48rem) {\n .SubNav__heading-container {\n padding-inline: var(--base-size-24);\n }\n\n .SubNav__overlay-toggle-content {\n padding-inline-start: var(--base-size-24);\n }\n\n .SubNav__links-overlay--open {\n padding: var(--base-size-24);\n }\n\n .SubNav--full-width {\n padding-inline: 0;\n }\n\n .SubNav__sub-menu--anchor {\n padding-inline: var(--base-size-24);\n }\n}\n\n.SubNav__heading-label {\n white-space: pre;\n}\n\n/*\n * Wide breakpoint\n */\n\n@media screen and (min-width: 63.25rem) {\n .SubNav {\n align-items: center;\n display: flex;\n z-index: 92;\n padding-inline: var(--base-size-32);\n }\n\n .SubNav__links-overlay--open {\n padding: 0;\n }\n\n .SubNav:has(+ .SubNav__anchor-menu-container) {\n padding-block-end: 0;\n }\n\n .SubNav__heading-container {\n padding-inline-start: 0;\n }\n\n .SubNav--full-width {\n padding-inline: 0;\n }\n\n .SubNav__overlay-toggle {\n display: none;\n }\n\n .SubNav__container--with-anchor-nav .SubNav__heading {\n padding-block-end: 1px;\n }\n\n .SubNav__heading-separator {\n margin-inline-end: var(--base-size-20);\n display: inline-flex;\n top: 0;\n }\n\n .SubNav__container--with-anchor-nav .SubNav__heading-separator {\n top: -1px;\n }\n\n .SubNav--header-container-outer {\n display: flex;\n align-items: center;\n }\n\n .SubNav__header-container {\n display: flex;\n align-items: center;\n }\n\n .SubNav__links-overlay {\n align-items: center;\n display: flex;\n gap: var(--base-size-2);\n z-index: 92;\n flex-grow: 1;\n padding-inline-start: var(--base-size-24);\n }\n\n .SubNav__link {\n text-decoration: none !important; /* dotcom override */\n transition: color 0.2s var(--brand-animation-easing-glide);\n position: relative;\n padding: var(--base-size-4) var(--base-size-12);\n border-radius: var(--brand-borderRadius-full);\n }\n\n .SubNav__link-label {\n font-size: var(--brand-text-size-100);\n line-height: var(--brand-text-lineHeight-100);\n }\n\n .SubNav__link--has-sub-menu {\n padding: var(--base-size-4) 0;\n }\n\n /* To fix hover distance between link and dropdown */\n .SubNav__link--has-sub-menu::after {\n content: '';\n position: absolute;\n bottom: calc(var(--base-size-12) * -1);\n left: 0;\n width: 100%;\n height: var(--base-size-12);\n background: transparent;\n }\n\n .SubNav__sub-menu.SubNav__sub-menu--dropdown {\n background-clip: padding-box;\n background-color: var(--brand-color-canvas-default);\n border: var(--brand-color-border-muted) solid var(--brand-borderWidth-thin);\n border-radius: var(--brand-borderRadius-medium);\n left: 0;\n list-style: none;\n margin-block-start: var(--base-size-8);\n padding: var(--base-size-8);\n position: absolute;\n top: 90%;\n z-index: 9998;\n transition-timing-function: var(--brand-animation-easing-glide);\n transition-duration: var(--brand-animation-duration-fast);\n transition-property: opacity, transform;\n left: var(--base-size-4);\n visibility: hidden;\n opacity: 0;\n transform: scale(0.99) translateY(-0.7em) translateX(-8px);\n transform-origin: top;\n display: flex;\n flex-direction: column;\n gap: var(--base-size-8);\n width: var(--brand-SubNav-width-subMenu);\n }\n\n .SubNav__link--expanded .SubNav__sub-menu.SubNav__sub-menu--dropdown {\n visibility: visible;\n opacity: 1;\n transform: scale(1) translateY(0) translateX(-8px);\n }\n\n .SubNav__sub-menu-toggle {\n width: var(--base-size-24);\n height: var(--base-size-24);\n border: none;\n padding: 0;\n margin: 0;\n padding-inline-end: var(--base-size-8);\n margin-inline-end: calc(-1 * var(--base-size-8));\n background: none;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n }\n\n .SubNav__sub-menu .SubNav__link {\n display: block;\n }\n\n .SubNav__sub-menu--dropdown .SubNav__link-label::after {\n opacity: 1;\n transform: scale(0);\n }\n\n .SubNav__link--has-sub-menu {\n position: relative;\n display: inline-flex;\n align-items: center;\n gap: var(--base-size-4);\n cursor: pointer;\n }\n\n .SubNav__sub-menu--dropdown .SubNav__link-label {\n position: relative;\n padding: var(--base-size-4) 0;\n }\n\n /* Show pill on submenu parent */\n .SubNav__link--has-active-sub-menu {\n background-color: var(--brand-SubNav-color-link-bgColor);\n border-radius: var(--brand-borderRadius-full);\n padding: 0 var(--base-size-8) 0 0;\n gap: 0;\n }\n\n .SubNav__link--has-active-sub-menu > .SubNav__link {\n padding: var(--base-size-4) 0 var(--base-size-4) var(--base-size-12);\n }\n\n .SubNav__sub-menu.SubNav__sub-menu--dropdown .SubNav__link {\n padding: var(--base-size-12);\n }\n\n /* Active link pill styling */\n .SubNav__links-overlay .SubNav__link[aria-current]:not([aria-current='false']) {\n background-color: var(--brand-SubNav-color-link-bgColor);\n line-height: 1.1em;\n padding: var(--base-size-2) var(--base-size-12) var(--base-size-4);\n }\n\n /* Firefox optical alignment fix */\n @supports (-moz-appearance: none) {\n .SubNav__links-overlay\n .SubNav__link--has-sub-menu\n .SubNav__link[aria-current]:not([aria-current='false'])\n .SubNav__link-label {\n top: 0;\n }\n }\n\n .SubNav__links-overlay .SubNav__link--has-active-sub-menu .SubNav__link[aria-current]:not([aria-current='false']) {\n padding-inline-end: var(--base-size-4);\n }\n\n .SubNav__sub-menu.SubNav__sub-menu--dropdown .SubNav__link[aria-current]:not([aria-current='false']) {\n background-color: transparent;\n border-radius: var(--brand-borderRadius-medium);\n padding: var(--base-size-4) var(--base-size-8) var(--base-size-4) var(--base-size-12);\n top: unset;\n }\n\n .SubNav__sub-menu.SubNav__sub-menu--dropdown .SubNav__link:hover {\n background-color: var(--brand-SubNav-color-link-bgColor);\n border-radius: var(--brand-borderRadius-medium);\n }\n\n .SubNav__sub-menu-icon {\n display: inline-block !important;\n fill: var(--brand-color-text-muted);\n transition: transform var(--brand-animation-duration-fast);\n }\n\n .SubNav__sub-menu--anchor {\n padding-inline: var(--base-size-32);\n }\n}\n\n@keyframes fade-in {\n 0% {\n opacity: 0;\n }\n 100% {\n opacity: 1;\n }\n}\n\n@keyframes fade-in-down {\n 0% {\n opacity: 0;\n }\n 100% {\n opacity: 1;\n }\n}\n\n/* Remove all animations, transitions and smooth scroll for people that prefer not to see them */\n@media (prefers-reduced-motion: reduce) {\n .SubNav,\n .SubNav::before,\n .SubNav::after,\n .SubNav * {\n animation: none !important;\n transition: none !important;\n scroll-behavior: auto !important;\n }\n}\n"],"mappings":""}
1
+ {"version":3,"file":"SubNav.module.js","names":[],"sources":["../../src/SubNav/SubNav.module.css"],"sourcesContent":[".SubNav__container {\n position: absolute;\n width: 100%;\n z-index: 2;\n border-block: var(--brand-borderWidth-thin) solid var(--brand-color-border-muted);\n}\n\n.SubNav__container--with-anchor-nav {\n display: unset;\n position: relative;\n}\n\n.SubNav__container--with-anchor-nav .SubNav {\n border-block: var(--brand-borderWidth-thin) solid var(--brand-color-border-muted);\n}\n\n.SubNav {\n width: 100%;\n display: flex;\n z-index: 1;\n background-color: var(--brand-SubNav-bgColor);\n}\n\n[data-color-mode='dark'] .SubNav {\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\n.SubNav__heading,\n.SubNav__subHeading {\n display: block;\n font-size: calc(var(--base-size-16) - 1px); /* One-off override to match design */\n line-height: calc(var(--base-size-16) - 1px); /* One-off override to match design */\n font-weight: var(--brand-text-subhead-weight-medium);\n color: var(--brand-color-text-default);\n font-family: var(--brand-heading-fontFamily);\n text-decoration: none;\n}\n\n.SubNav__heading:hover,\n.SubNav__subHeading:hover,\n.SubNav__link:hover .SubNav__link-label {\n color: var(--brand-color-text-muted);\n text-decoration: none !important; /* dotcom override */\n}\n\n.SubNav--header-container-outer {\n width: 100%;\n}\n\n.SubNav__heading-container {\n min-height: 60px;\n position: relative;\n z-index: 9998;\n display: flex;\n align-items: center;\n padding: var(--base-size-16);\n border-inline-end: var(--brand-borderWidth-thin) solid var(--brand-color-border-muted);\n}\n\n.SubNav__heading-container + .SubNav__heading-container {\n padding-inline-start: var(--base-size-24);\n}\n\n.SubNav--has-shadow {\n box-shadow: var(--brand-SubNav-shadow);\n background-color: var(--brand-color-canvas-default);\n}\n\n.SubNav--full-width {\n padding-inline: 0;\n}\n\n.SubNav__action-container {\n margin-left: auto;\n}\n\n.SubNav__sub-menu-icon {\n display: none !important;\n}\n\n.SubNav__sub-menu-children {\n display: contents;\n}\n\n.SubNav__links-overlay {\n list-style: none;\n margin: 0;\n padding: 0;\n}\n\n.SubNav__links-overlay > span {\n display: none;\n}\n\n.SubNav__sub-menu-toggle {\n display: none;\n}\n\n/*\n * Anchor Nav Submenu\n */\n\n.SubNav__anchor-menu-outer-container {\n position: sticky;\n top: -1px;\n z-index: 91; /* must be higher than subdomain nav bar */\n}\n\n.SubNav__anchor-menu-container {\n opacity: 0;\n background-color: transparent;\n transform: translateY(var(--brand-animation-variant-slideInDown-distance));\n transition: opacity var(--brand-animation-duration-default) var(--brand-animation-easing-default),\n background-color var(--brand-animation-duration-default) var(--brand-animation-easing-default);\n}\n\n.SubNav__anchor-menu-outer-container:focus-within .SubNav__anchor-menu-container,\n.SubNav__anchor-menu-outer-container--stuck .SubNav__anchor-menu-container {\n transform: translateY(0);\n opacity: 1;\n background-color: var(--brand-color-canvas-default);\n}\n\n.SubNav__anchor-menu-outer-container {\n height: 0;\n transition: height var(--brand-animation-duration-default) var(--brand-animation-easing-default);\n}\n\n.SubNav__anchor-menu-outer-container:focus-within,\n.SubNav__anchor-menu-outer-container--stuck {\n height: auto;\n}\n\n.SubNav__sub-menu--anchor {\n opacity: 0;\n transform: translateY(var(--brand-animation-variant-slideInDown-distance));\n transition: opacity var(--brand-animation-duration-default) var(--brand-animation-easing-default),\n height var(--brand-animation-duration-default) var(--brand-animation-easing-default),\n transform var(--brand-animation-duration-default) var(--brand-animation-easing-default);\n}\n\n.SubNav__anchor-menu-outer-container:focus-within .SubNav__sub-menu--anchor,\n.SubNav__anchor-menu-outer-container--stuck .SubNav__sub-menu--anchor {\n visibility: visible;\n opacity: 1;\n transform: translateY(0);\n}\n\n.SubNav__sub-menu--anchor {\n display: flex;\n padding-block: var(--base-size-12);\n border-block: var(--brand-borderWidth-thin) solid var(--brand-color-border-muted);\n}\n\n.SubNav__sub-menu--anchor .SubNav__sub-menu-list {\n display: inline-flex;\n list-style-type: none;\n margin: 0;\n padding: 0;\n gap: var(--base-size-20);\n}\n\n.SubNav__link-label {\n font-weight: 450; /* FIXME: unsupported in our font weight primitives */\n}\n\n.SubNav__sub-menu--anchor .SubNav__link-label {\n padding: var(--base-size-6) var(--base-size-12);\n background-color: transparent;\n border-radius: var(--brand-borderRadius-full);\n transition: background-color var(--brand-animation-duration-default) var(--brand-animation-easing-default),\n color var(--brand-animation-duration-default) var(--brand-animation-easing-default);\n}\n\n.SubNav__sub-menu--anchor .SubNav__link--is-in-view .SubNav__link-label {\n background-color: var(--brand-SubNav-color-link-bgColor);\n}\n\n.SubNav__link:focus-visible .SubNav__link-label::after,\n.SubNav__sub-menu--anchor .SubNav__link--is-in-view:focus-visible .SubNav__link-label::after {\n opacity: 0;\n}\n\n.SubNav__link[aria-current]:not([aria-current='false']) * {\n color: var(--brand-SubNav-color-link-active);\n text-decoration: none !important; /* dotcom override */\n}\n\n.SubNav__link:hover .SubNav__link-label {\n transition: color var(--brand-animation-duration-fast) var(--brand-animation-easing-default);\n}\n\n.SubNav__link:hover .SubNav__link-label::after {\n border-color: var(--brand-color-text-default);\n}\n\n/*\n * Narrow breakpoint\n */\n\n@media screen and (max-width: 63.24rem) {\n .SubNav {\n position: relative;\n }\n\n .SubNav::before {\n content: '';\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n right: 0;\n opacity: 0;\n z-index: 9997;\n }\n\n .SubNav::after {\n content: '';\n z-index: -1;\n position: fixed;\n background-color: var(--base-color-scale-black-0);\n opacity: 0;\n visibility: hidden;\n top: 0;\n right: 0;\n left: 0;\n bottom: 0;\n width: 100%;\n height: 100%;\n }\n\n .SubNav--open::after {\n opacity: 0.3;\n visibility: visible;\n transition: visibility var(--brand-animation-duration-default) var(--brand-animation-easing-default),\n opacity var(--brand-animation-duration-default) var(--brand-animation-easing-default);\n }\n\n .SubNav__heading {\n font-size: var(--base-size-16);\n line-height: var(--base-size-24);\n }\n\n .SubNav--open {\n display: block;\n }\n\n .SubNav--open .SubNav--header-container-outer {\n display: flex;\n flex-direction: column;\n max-height: var(--subnav-available-height, 100dvh);\n overflow: hidden;\n }\n\n .SubNav--open .SubNav__header-container {\n flex-shrink: 0;\n }\n\n .SubNav--open + .SubNav__anchor-menu-outer-container {\n z-index: -1;\n }\n\n .SubNav--open::before {\n background-color: var(--brand-color-canvas-default);\n animation: fade-in 0.3s var(--brand-animation-easing-glide) forwards;\n }\n\n .SubNav__heading-separator--main:not(.SubNav__heading-separator--has-adjacent-label),\n .SubNav__heading-separator--subheading-active,\n .SubNav__subheading-container-active {\n display: none;\n }\n\n .SubNav__header-container {\n display: flex;\n width: 100%;\n white-space: pre;\n position: relative;\n z-index: 9998;\n }\n\n .SubNav__heading-container + .SubNav__heading-container {\n padding-inline-start: var(--base-size-16);\n }\n\n .SubNav__heading-separator {\n margin-inline-end: var(--base-size-16);\n z-index: 9998;\n }\n\n .SubNav__links-overlay {\n position: relative;\n display: flex;\n flex: auto;\n flex-direction: column;\n justify-content: center;\n z-index: 9998;\n display: none;\n padding-inline: var(--base-size-8);\n }\n\n .SubNav__links-overlay--open {\n display: flex;\n flex-direction: column;\n gap: var(--base-size-8);\n padding-block: var(--base-size-16);\n border-block-start: var(--brand-borderWidth-thin) solid var(--brand-color-border-muted);\n justify-content: flex-start;\n overflow-y: auto;\n min-height: 0;\n }\n\n .SubNav__links-overlay--open .SubNav__link:hover .SubNav__link-label {\n color: var(--brand-color-text-default);\n }\n\n .SubNav__overlay-toggle {\n display: flex;\n position: relative;\n width: 100%;\n z-index: 9999;\n justify-content: flex-end;\n padding-inline-end: var(--base-size-16);\n }\n\n .SubNav--has-sub-heading:not(.SubNav--subHeadingActive) .SubNav__overlay-toggle {\n border-block-start: var(--brand-borderWidth-thin) solid var(--brand-color-border-muted);\n display: block;\n padding-block: var(--base-size-12);\n margin-block: 0;\n }\n\n .SubNav__overlay-toggle-content {\n width: 100%;\n padding-inline-start: var(--base-size-16);\n }\n\n .SubNav__overlay-toggle-label {\n background-color: var(--brand-SubNav-color-link-bgColor);\n border: none;\n border-radius: var(--brand-borderRadius-full);\n padding: var(--base-size-4) var(--base-size-12);\n gap: var(--base-size-6);\n display: flex;\n align-items: center;\n cursor: pointer;\n font: inherit;\n }\n\n .SubNav--full-width .SubNav__overlay-toggle {\n right: 0;\n }\n\n .SubNav__link,\n .SubNav__action-container {\n display: none;\n text-decoration: none;\n }\n\n .SubNav__links-overlay--open .SubNav__link-label {\n position: relative;\n }\n\n .SubNav__links-overlay--open .SubNav__link[aria-current]:not([aria-current='false']) * {\n color: var(--brand-SubNav-color-link-active);\n }\n\n .SubNav__links-overlay--open .SubNav__link {\n margin-inline-start: var(--base-size-8);\n padding: var(--base-size-4) var(--base-size-12);\n }\n\n .SubNav__links-overlay--open .SubNav__link[aria-current]:not([aria-current='false']) {\n display: inline-flex;\n background-color: var(--brand-SubNav-color-link-bgColor);\n border-radius: var(--brand-borderRadius-full);\n }\n\n .SubNav__links-overlay--open .SubNav__link:hover {\n display: inline-flex;\n background-color: var(--brand-SubNav-color-link-bgColor);\n border-radius: var(--brand-borderRadius-full);\n }\n\n .SubNav__links-overlay--open .SubNav__link {\n display: inline-flex;\n animation: fade-in 0.3s var(--brand-animation-easing-glide) forwards;\n }\n\n .SubNav__links-overlay--open .SubNav__action-container {\n display: block;\n animation: fade-in 0.3s var(--brand-animation-easing-glide) forwards;\n }\n\n .SubNav__links-overlay--open .SubNav__link--has-sub-menu {\n padding-block: 0;\n }\n\n .SubNav__links-overlay--open .SubNav__action-container {\n width: 100%;\n }\n\n .SubNav__links-overlay--open .SubNav__action {\n width: 100%;\n }\n\n .SubNav__sub-menu {\n list-style: none;\n padding: 0;\n margin: 0;\n padding-inline-start: var(--base-size-16);\n padding-block-start: var(--base-size-8);\n display: flex;\n flex-direction: column;\n gap: var(--base-size-8);\n }\n\n .SubNav__sub-menu .SubNav__link {\n margin-inline-start: 0;\n }\n\n .SubNav__sub-menu--dropdown .SubNav__link:hover .SubNav__link-label {\n color: var(--brand-color-text-default) !important;\n }\n\n .SubNav__anchor-menu-container {\n z-index: 99;\n overflow-x: auto;\n overflow-y: hidden;\n width: 100%;\n }\n\n .SubNav__anchor-menu-outer-container {\n position: sticky;\n top: -1px;\n }\n\n .SubNav__anchor-menu-outer-container::after {\n content: '';\n position: absolute;\n right: 0;\n top: 0;\n bottom: 0;\n width: var(--base-size-32);\n background: linear-gradient(to left, var(--brand-color-canvas-default), transparent);\n pointer-events: none;\n z-index: 100;\n }\n\n .SubNav__sub-menu--anchor {\n padding-inline: var(--base-size-16);\n padding-block-end: var(--base-size-16);\n padding-block-start: var(--base-size-16);\n }\n\n .SubNav__sub-menu--anchor .SubNav__link-label {\n font-size: var(--brand-text-size-100);\n line-height: var(--brand-text-lineHeight-100);\n letter-spacing: var(--brand-text-letterSpacing-100);\n }\n\n .SubNav__sub-menu--anchor .SubNav__sub-menu-list {\n padding-inline-end: var(--base-size-32);\n }\n\n .SubNav__sub-menu--anchor .SubNav__link {\n display: block;\n white-space: pre;\n position: relative;\n top: var(--base-size-2);\n }\n}\n\n.SubNav__overlay-toggle-icon {\n fill: var(--brand-color-text-default);\n}\n\n.SubNav__overlay-toggle-content {\n display: flex;\n align-items: center;\n gap: var(--base-size-8);\n}\n\n.SubNav__overlay-toggle-content--end {\n justify-content: flex-end;\n}\n\n.SubNav__link:focus-visible,\n.SubNav__heading:focus-visible,\n.SubNav__subHeading:focus-visible,\n.SubNav__sub-menu-toggle:focus-visible,\n.SubNav__overlay-toggle-label:focus-visible {\n outline: var(--brand-borderWidth-thick) solid var(--brand-color-focus);\n outline-offset: var(--base-size-2);\n}\n\n.SubNav__subHeading {\n display: block;\n position: relative;\n white-space: nowrap;\n}\n\n.SubNav__subHeading[aria-current]:not([aria-current='false']) {\n background-color: var(--brand-SubNav-color-link-bgColor);\n border: none;\n border-radius: var(--brand-borderRadius-full);\n padding: var(--base-size-6) var(--base-size-12);\n}\n\n@media screen and (min-width: 48rem) {\n .SubNav__heading-container {\n padding-inline: var(--base-size-24);\n }\n\n .SubNav__overlay-toggle-content {\n padding-inline-start: var(--base-size-24);\n }\n\n .SubNav__links-overlay--open {\n padding: var(--base-size-24);\n }\n\n .SubNav--full-width {\n padding-inline: 0;\n }\n\n .SubNav__sub-menu--anchor {\n padding-inline: var(--base-size-24);\n }\n}\n\n.SubNav__heading-label {\n white-space: pre;\n}\n\n/*\n * Wide breakpoint\n */\n\n@media screen and (min-width: 63.25rem) {\n .SubNav {\n align-items: center;\n display: flex;\n z-index: 92;\n padding-inline: var(--base-size-32);\n }\n\n .SubNav__links-overlay--open {\n padding: 0;\n }\n\n .SubNav:has(+ .SubNav__anchor-menu-container) {\n padding-block-end: 0;\n }\n\n .SubNav__heading-container {\n padding-inline-start: 0;\n }\n\n .SubNav--full-width {\n padding-inline: 0;\n }\n\n .SubNav__overlay-toggle {\n display: none;\n }\n\n .SubNav__container--with-anchor-nav .SubNav__heading {\n padding-block-end: 1px;\n }\n\n .SubNav__heading-separator {\n margin-inline-end: var(--base-size-20);\n display: inline-flex;\n top: 0;\n }\n\n .SubNav__container--with-anchor-nav .SubNav__heading-separator {\n top: -1px;\n }\n\n .SubNav--header-container-outer {\n display: flex;\n align-items: center;\n }\n\n .SubNav__header-container {\n display: flex;\n align-items: center;\n }\n\n .SubNav__links-overlay {\n align-items: center;\n display: flex;\n gap: var(--base-size-2);\n z-index: 92;\n flex-grow: 1;\n padding-inline-start: var(--base-size-24);\n }\n\n .SubNav__link {\n text-decoration: none !important; /* dotcom override */\n transition: color 0.2s var(--brand-animation-easing-glide);\n position: relative;\n padding: var(--base-size-4) var(--base-size-12);\n border-radius: var(--brand-borderRadius-full);\n }\n\n .SubNav__link-label {\n font-size: var(--brand-text-size-100);\n line-height: var(--brand-text-lineHeight-100);\n }\n\n .SubNav__link--has-sub-menu {\n padding: var(--base-size-4) 0;\n }\n\n /* To fix hover distance between link and dropdown */\n .SubNav__link--has-sub-menu::after {\n content: '';\n position: absolute;\n bottom: calc(var(--base-size-12) * -1);\n left: 0;\n width: 100%;\n height: var(--base-size-12);\n background: transparent;\n }\n\n .SubNav__sub-menu.SubNav__sub-menu--dropdown {\n background-clip: padding-box;\n background-color: var(--brand-color-canvas-default);\n border: var(--brand-color-border-muted) solid var(--brand-borderWidth-thin);\n border-radius: var(--brand-borderRadius-medium);\n left: 0;\n list-style: none;\n margin-block-start: var(--base-size-8);\n padding: var(--base-size-8);\n position: absolute;\n top: 90%;\n z-index: 9998;\n transition-timing-function: var(--brand-animation-easing-glide);\n transition-duration: var(--brand-animation-duration-fast);\n transition-property: opacity, transform;\n left: var(--base-size-4);\n visibility: hidden;\n opacity: 0;\n transform: scale(0.99) translateY(-0.7em) translateX(-8px);\n transform-origin: top;\n display: flex;\n flex-direction: column;\n gap: var(--base-size-8);\n width: var(--brand-SubNav-width-subMenu);\n }\n\n .SubNav__link--expanded .SubNav__sub-menu.SubNav__sub-menu--dropdown {\n visibility: visible;\n opacity: 1;\n transform: scale(1) translateY(0) translateX(-8px);\n }\n\n .SubNav__sub-menu-toggle {\n width: var(--base-size-24);\n height: var(--base-size-24);\n border: none;\n padding: 0;\n margin: 0;\n padding-inline-end: var(--base-size-8);\n margin-inline-end: calc(-1 * var(--base-size-8));\n background: none;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n }\n\n .SubNav__sub-menu .SubNav__link {\n display: block;\n }\n\n .SubNav__sub-menu--dropdown .SubNav__link-label::after {\n opacity: 1;\n transform: scale(0);\n }\n\n .SubNav__link--has-sub-menu {\n position: relative;\n display: inline-flex;\n align-items: center;\n gap: var(--base-size-4);\n cursor: pointer;\n }\n\n .SubNav__link--has-sub-menu > .SubNav__link {\n padding-inline-end: 0;\n }\n\n .SubNav__sub-menu--dropdown .SubNav__link-label {\n position: relative;\n padding: var(--base-size-4) 0;\n }\n\n /* Show pill on submenu parent */\n .SubNav__link--has-active-sub-menu {\n background-color: var(--brand-SubNav-color-link-bgColor);\n border-radius: var(--brand-borderRadius-full);\n padding: 0 var(--base-size-8) 0 0;\n gap: 0;\n }\n\n .SubNav__link--has-active-sub-menu > .SubNav__link {\n padding: var(--base-size-4) 0 var(--base-size-4) var(--base-size-12);\n }\n\n .SubNav__sub-menu.SubNav__sub-menu--dropdown .SubNav__link {\n padding: var(--base-size-12);\n }\n\n /* Active link pill styling */\n .SubNav__links-overlay .SubNav__link[aria-current]:not([aria-current='false']) {\n background-color: var(--brand-SubNav-color-link-bgColor);\n line-height: 1.1em;\n }\n\n /* Firefox optical alignment fix */\n @supports (-moz-appearance: none) {\n .SubNav__links-overlay\n .SubNav__link--has-sub-menu\n .SubNav__link[aria-current]:not([aria-current='false'])\n .SubNav__link-label {\n top: 0;\n }\n }\n\n .SubNav__links-overlay .SubNav__link--has-active-sub-menu .SubNav__link[aria-current]:not([aria-current='false']) {\n padding-inline-end: var(--base-size-4);\n }\n\n .SubNav__sub-menu.SubNav__sub-menu--dropdown .SubNav__link[aria-current]:not([aria-current='false']) {\n background-color: transparent;\n border-radius: var(--brand-borderRadius-medium);\n padding: var(--base-size-4) var(--base-size-8) var(--base-size-4) var(--base-size-12);\n top: unset;\n }\n\n .SubNav__sub-menu.SubNav__sub-menu--dropdown .SubNav__link:hover {\n background-color: var(--brand-SubNav-color-link-bgColor);\n border-radius: var(--brand-borderRadius-medium);\n }\n\n .SubNav__sub-menu-icon {\n display: inline-block !important;\n fill: var(--brand-color-text-muted);\n transition: transform var(--brand-animation-duration-fast);\n }\n\n .SubNav__link--has-sub-menu:not(.SubNav__link--has-active-sub-menu) .SubNav__sub-menu-icon {\n position: relative;\n top: calc(-1 * var(--brand-borderWidth-thin));\n }\n\n .SubNav__sub-menu--anchor {\n padding-inline: var(--base-size-32);\n }\n}\n\n@keyframes fade-in {\n 0% {\n opacity: 0;\n }\n 100% {\n opacity: 1;\n }\n}\n\n@keyframes fade-in-down {\n 0% {\n opacity: 0;\n }\n 100% {\n opacity: 1;\n }\n}\n\n/* Remove all animations, transitions and smooth scroll for people that prefer not to see them */\n@media (prefers-reduced-motion: reduce) {\n .SubNav,\n .SubNav::before,\n .SubNav::after,\n .SubNav * {\n animation: none !important;\n transition: none !important;\n scroll-behavior: auto !important;\n }\n}\n"],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"file":"Tiles.d.ts","sourceRoot":"","sources":["../../src/Tiles/Tiles.tsx"],"names":[],"mappings":"AACA,OAAO,KAAgF,MAAM,OAAO,CAAA;AAEpG,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,sBAAsB,CAAA;AAGnD,sBAAsB;AACtB,OAAO,yGAAyG,CAAA;AAehH,KAAK,YAAY,GAAG,SAAS,GAAG,WAAW,CAAA;AAE3C,KAAK,WAAW,GAAG,SAAS,GAAG,SAAS,CAAA;AAIxC,MAAM,MAAM,UAAU,GAAG;IACvB;;OAEG;IACH,OAAO,CAAC,EAAE,YAAY,CAAA;IACtB;;OAEG;IACH,MAAM,CAAC,EAAE,WAAW,CAAA;IACpB;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB,GAAG,SAAS,CAAC,cAAc,CAAC,GAC3B,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,CAAA;AAoCtC,MAAM,MAAM,cAAc,GAAG;IAC3B;;OAEG;IACH,IAAI,EAAE,MAAM,CAAA;IACZ;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAA;IACb;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB,GAAG,SAAS,CAAC,aAAa,CAAC,GAC1B,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,aAAa,CAAC,EAAE,UAAU,CAAC,GAAG;IACtD,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAC1B,CAAA;AAoCH;;;GAGG;AACH,eAAO,MAAM,KAAK;;;;;;;CAGhB,CAAA"}
1
+ {"version":3,"file":"Tiles.d.ts","sourceRoot":"","sources":["../../src/Tiles/Tiles.tsx"],"names":[],"mappings":"AACA,OAAO,KAAgF,MAAM,OAAO,CAAA;AAEpG,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,sBAAsB,CAAA;AAInD,sBAAsB;AACtB,OAAO,yGAAyG,CAAA;AAehH,KAAK,YAAY,GAAG,SAAS,GAAG,WAAW,CAAA;AAE3C,KAAK,WAAW,GAAG,SAAS,GAAG,SAAS,CAAA;AAIxC,MAAM,MAAM,UAAU,GAAG;IACvB;;OAEG;IACH,OAAO,CAAC,EAAE,YAAY,CAAA;IACtB;;OAEG;IACH,MAAM,CAAC,EAAE,WAAW,CAAA;IACpB;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB,GAAG,SAAS,CAAC,cAAc,CAAC,GAC3B,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,CAAA;AAqCtC,MAAM,MAAM,cAAc,GAAG;IAC3B;;OAEG;IACH,IAAI,EAAE,MAAM,CAAA;IACZ;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAA;IACb;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB,GAAG,SAAS,CAAC,aAAa,CAAC,GAC1B,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,aAAa,CAAC,EAAE,UAAU,CAAC,GAAG;IACtD,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAC1B,CAAA;AAoCH;;;GAGG;AACH,eAAO,MAAM,KAAK;;;;;;;CAGhB,CAAA"}
@@ -1,12 +1,13 @@
1
1
  import e from "../node_modules/clsx/dist/clsx.js";
2
2
  import { Text as t } from "../Text/Text.js";
3
3
  import { ArrowUpRightIcon as n } from "../node_modules/@primer/octicons-react/dist/index.esm.js";
4
+ import r from "../component-helpers/shared.module.js";
4
5
  import '../packages/design-tokens/lib/design-tokens/css/tokens/functional/components/tiles/colors-with-modes-DTTqGOfy.css';/* empty css */
5
- import r from "./Tiles.module.js";
6
- import { createContext as i, forwardRef as a, useContext as o } from "react";
7
- import { jsx as s, jsxs as c } from "react/jsx-runtime";
6
+ import i from "./Tiles.module.js";
7
+ import { createContext as a, forwardRef as o, useContext as s } from "react";
8
+ import { jsx as c, jsxs as l } from "react/jsx-runtime";
8
9
  //#region src/Tiles/Tiles.tsx
9
- var l = {
10
+ var u = {
10
11
  root: "Tiles",
11
12
  get grid() {
12
13
  return `${this.root}-grid`;
@@ -14,56 +15,56 @@ var l = {
14
15
  get item() {
15
16
  return `${this.root}-item`;
16
17
  }
17
- }, u = i("default"), d = a(({ variant: t = "default", layout: n = "default", children: i, className: a, "data-testid": o, ...c }, d) => /* @__PURE__ */ s(u.Provider, {
18
+ }, d = a("default"), f = o(({ variant: t = "default", layout: n = "default", children: a, className: o, "data-testid": s, ...l }, f) => /* @__PURE__ */ c(d.Provider, {
18
19
  value: n,
19
- children: /* @__PURE__ */ s("div", {
20
- ref: d,
21
- className: e(r.Tiles, r[`Tiles--variant-${t}`], r[`Tiles--layout-${n}`], a),
22
- "data-testid": o || l.root,
23
- ...c,
24
- children: /* @__PURE__ */ s("ul", {
25
- className: r["Tiles-grid"],
26
- "data-testid": l.grid,
27
- children: i
20
+ children: /* @__PURE__ */ c("div", {
21
+ ref: f,
22
+ className: e(i.Tiles, i[`Tiles--variant-${t}`], i[`Tiles--layout-${n}`], t === "gridlines" && r.gridline, o),
23
+ "data-testid": s || u.root,
24
+ ...l,
25
+ children: /* @__PURE__ */ c("ul", {
26
+ className: i["Tiles-grid"],
27
+ "data-testid": u.grid,
28
+ children: a
28
29
  })
29
30
  })
30
- })), f = a(({ name: i, href: a, children: d, className: f, "data-testid": p, ...m }, h) => {
31
- let g = o(u), _ = !!a, v = g === "compact" && !_, y = /* @__PURE__ */ c("span", {
32
- className: r["Tiles-item-content"],
33
- children: [/* @__PURE__ */ s("span", {
34
- className: r["Tiles-item-media"],
31
+ })), p = o(({ name: r, href: a, children: o, className: f, "data-testid": p, ...m }, h) => {
32
+ let g = s(d), _ = !!a, v = g === "compact" && !_, y = /* @__PURE__ */ l("span", {
33
+ className: i["Tiles-item-content"],
34
+ children: [/* @__PURE__ */ c("span", {
35
+ className: i["Tiles-item-media"],
35
36
  "aria-hidden": "true",
36
- children: d
37
- }), /* @__PURE__ */ c("span", {
38
- className: e(r["Tiles-item-label"], v && "visually-hidden"),
39
- children: [/* @__PURE__ */ s(t, {
37
+ children: o
38
+ }), /* @__PURE__ */ l("span", {
39
+ className: e(i["Tiles-item-label"], v && "visually-hidden"),
40
+ children: [/* @__PURE__ */ c(t, {
40
41
  as: "span",
41
42
  size: "100",
42
- className: r["Tiles-item-name"],
43
- children: i
44
- }), _ && /* @__PURE__ */ s(n, {
43
+ className: i["Tiles-item-name"],
44
+ children: r
45
+ }), _ && /* @__PURE__ */ c(n, {
45
46
  size: 16,
46
- className: r["Tiles-item-icon"],
47
+ className: i["Tiles-item-icon"],
47
48
  "aria-hidden": "true"
48
49
  })]
49
50
  })]
50
51
  });
51
- return /* @__PURE__ */ s("li", {
52
+ return /* @__PURE__ */ c("li", {
52
53
  ref: h,
53
- className: e(r["Tiles-item"], f),
54
- "data-testid": p || l.item,
54
+ className: e(i["Tiles-item"], f),
55
+ "data-testid": p || u.item,
55
56
  ...m,
56
- children: _ ? /* @__PURE__ */ s("a", {
57
+ children: _ ? /* @__PURE__ */ c("a", {
57
58
  href: a,
58
- className: r["Tiles-item-link"],
59
+ className: i["Tiles-item-link"],
59
60
  children: y
60
61
  }) : y
61
62
  });
62
- }), p = Object.assign(d, {
63
- Item: f,
64
- testIds: l
63
+ }), m = Object.assign(f, {
64
+ Item: p,
65
+ testIds: u
65
66
  });
66
67
  //#endregion
67
- export { p as Tiles };
68
+ export { m as Tiles };
68
69
 
69
70
  //# sourceMappingURL=Tiles.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Tiles.js","names":[],"sources":["../../src/Tiles/Tiles.tsx"],"sourcesContent":["import {clsx} from 'clsx'\nimport React, {createContext, forwardRef, type PropsWithChildren, type Ref, useContext} from 'react'\nimport {ArrowUpRightIcon} from '@primer/octicons-react'\nimport type {BaseProps} from '../component-helpers'\nimport {Text} from '../Text'\n\n/** * Design Tokens */\nimport '@primer/brand-primitives/lib/design-tokens/css/tokens/functional/components/tiles/colors-with-modes.css'\n\n/** * Main Stylesheet (as a CSS Module) */\nimport styles from './Tiles.module.css'\n\nconst testIds = {\n root: 'Tiles',\n get grid() {\n return `${this.root}-grid`\n },\n get item() {\n return `${this.root}-item`\n },\n}\n\ntype TilesVariant = 'default' | 'gridlines'\n\ntype TilesLayout = 'default' | 'compact'\n\nconst TilesContext = createContext<TilesLayout>('default')\n\nexport type TilesProps = {\n /**\n * The visual variant of the Tiles component.\n */\n variant?: TilesVariant\n /**\n * The layout density of the Tiles grid.\n */\n layout?: TilesLayout\n /**\n * Test id for the root Tiles element.\n */\n 'data-testid'?: string\n} & BaseProps<HTMLDivElement> &\n React.HTMLAttributes<HTMLDivElement>\n\nconst TilesRoot = forwardRef(\n (\n {\n variant = 'default',\n layout = 'default',\n children,\n className,\n 'data-testid': testId,\n ...rest\n }: PropsWithChildren<TilesProps>,\n ref: Ref<HTMLDivElement>,\n ) => {\n return (\n <TilesContext.Provider value={layout}>\n <div\n ref={ref}\n className={clsx(\n styles.Tiles,\n styles[`Tiles--variant-${variant}`],\n styles[`Tiles--layout-${layout}`],\n className,\n )}\n data-testid={testId || testIds.root}\n {...rest}\n >\n <ul className={styles['Tiles-grid']} data-testid={testIds.grid}>\n {children}\n </ul>\n </div>\n </TilesContext.Provider>\n )\n },\n)\n\nexport type TilesItemProps = {\n /**\n * The accessible name for the tile item.\n */\n name: string\n /**\n * Optional URL to link the tile to.\n */\n href?: string\n /**\n * Test id for the tile item element.\n */\n 'data-testid'?: string\n} & BaseProps<HTMLLIElement> &\n Omit<React.HTMLAttributes<HTMLLIElement>, 'children'> & {\n children: React.ReactNode\n }\n\nconst _Item = forwardRef(\n ({name, href, children, className, 'data-testid': testId, ...rest}: TilesItemProps, ref: Ref<HTMLLIElement>) => {\n const layout = useContext(TilesContext)\n const hasLink = Boolean(href)\n const isLabelHidden = layout === 'compact' && !hasLink\n\n const content = (\n <span className={styles['Tiles-item-content']}>\n <span className={styles['Tiles-item-media']} aria-hidden=\"true\">\n {children}\n </span>\n <span className={clsx(styles['Tiles-item-label'], isLabelHidden && 'visually-hidden')}>\n <Text as=\"span\" size=\"100\" className={styles['Tiles-item-name']}>\n {name}\n </Text>\n {hasLink && <ArrowUpRightIcon size={16} className={styles['Tiles-item-icon']} aria-hidden=\"true\" />}\n </span>\n </span>\n )\n\n return (\n <li ref={ref} className={clsx(styles['Tiles-item'], className)} data-testid={testId || testIds.item} {...rest}>\n {hasLink ? (\n <a href={href} className={styles['Tiles-item-link']}>\n {content}\n </a>\n ) : (\n content\n )}\n </li>\n )\n },\n)\n\n/**\n * Use Tiles to display a grid of logos or icons with optional links.\n * @see https://primer.style/brand/components/Tiles\n */\nexport const Tiles = Object.assign(TilesRoot, {\n Item: _Item,\n testIds,\n})\n"],"mappings":";;;;;;;;AAYA,IAAM,IAAU;CACd,MAAM;CACN,IAAI,OAAO;AACT,SAAO,GAAG,KAAK,KAAK;;CAEtB,IAAI,OAAO;AACT,SAAO,GAAG,KAAK,KAAK;;CAEvB,EAMK,IAAe,EAA2B,UAAU,EAkBpD,IAAY,GAEd,EACE,aAAU,WACV,YAAS,WACT,aACA,cACA,eAAe,GACf,GAAG,KAEL,MAGE,kBAAC,EAAa,UAAd;CAAuB,OAAO;WAC5B,kBAAC,OAAD;EACO;EACL,WAAW,EACT,EAAO,OACP,EAAO,kBAAkB,MACzB,EAAO,iBAAiB,MACxB,EACD;EACD,eAAa,KAAU,EAAQ;EAC/B,GAAI;YAEJ,kBAAC,MAAD;GAAI,WAAW,EAAO;GAAe,eAAa,EAAQ;GACvD;GACE,CAAA;EACD,CAAA;CACgB,CAAA,CAG7B,EAoBK,IAAQ,GACX,EAAC,SAAM,SAAM,aAAU,cAAW,eAAe,GAAQ,GAAG,KAAuB,MAA4B;CAC9G,IAAM,IAAS,EAAW,EAAa,EACjC,IAAU,EAAQ,GAClB,IAAgB,MAAW,aAAa,CAAC,GAEzC,IACJ,kBAAC,QAAD;EAAM,WAAW,EAAO;YAAxB,CACE,kBAAC,QAAD;GAAM,WAAW,EAAO;GAAqB,eAAY;GACtD;GACI,CAAA,EACP,kBAAC,QAAD;GAAM,WAAW,EAAK,EAAO,qBAAqB,KAAiB,kBAAkB;aAArF,CACE,kBAAC,GAAD;IAAM,IAAG;IAAO,MAAK;IAAM,WAAW,EAAO;cAC1C;IACI,CAAA,EACN,KAAW,kBAAC,GAAD;IAAkB,MAAM;IAAI,WAAW,EAAO;IAAoB,eAAY;IAAS,CAAA,CAC9F;KACF;;AAGT,QACE,kBAAC,MAAD;EAAS;EAAK,WAAW,EAAK,EAAO,eAAe,EAAU;EAAE,eAAa,KAAU,EAAQ;EAAM,GAAI;YACtG,IACC,kBAAC,KAAD;GAAS;GAAM,WAAW,EAAO;aAC9B;GACC,CAAA,GAEJ;EAEC,CAAA;EAGV,EAMY,IAAQ,OAAO,OAAO,GAAW;CAC5C,MAAM;CACN;CACD,CAAC"}
1
+ {"version":3,"file":"Tiles.js","names":[],"sources":["../../src/Tiles/Tiles.tsx"],"sourcesContent":["import {clsx} from 'clsx'\nimport React, {createContext, forwardRef, type PropsWithChildren, type Ref, useContext} from 'react'\nimport {ArrowUpRightIcon} from '@primer/octicons-react'\nimport type {BaseProps} from '../component-helpers'\nimport gridlineStyles from '../component-helpers/shared.module.css'\nimport {Text} from '../Text'\n\n/** * Design Tokens */\nimport '@primer/brand-primitives/lib/design-tokens/css/tokens/functional/components/tiles/colors-with-modes.css'\n\n/** * Main Stylesheet (as a CSS Module) */\nimport styles from './Tiles.module.css'\n\nconst testIds = {\n root: 'Tiles',\n get grid() {\n return `${this.root}-grid`\n },\n get item() {\n return `${this.root}-item`\n },\n}\n\ntype TilesVariant = 'default' | 'gridlines'\n\ntype TilesLayout = 'default' | 'compact'\n\nconst TilesContext = createContext<TilesLayout>('default')\n\nexport type TilesProps = {\n /**\n * The visual variant of the Tiles component.\n */\n variant?: TilesVariant\n /**\n * The layout density of the Tiles grid.\n */\n layout?: TilesLayout\n /**\n * Test id for the root Tiles element.\n */\n 'data-testid'?: string\n} & BaseProps<HTMLDivElement> &\n React.HTMLAttributes<HTMLDivElement>\n\nconst TilesRoot = forwardRef(\n (\n {\n variant = 'default',\n layout = 'default',\n children,\n className,\n 'data-testid': testId,\n ...rest\n }: PropsWithChildren<TilesProps>,\n ref: Ref<HTMLDivElement>,\n ) => {\n return (\n <TilesContext.Provider value={layout}>\n <div\n ref={ref}\n className={clsx(\n styles.Tiles,\n styles[`Tiles--variant-${variant}`],\n styles[`Tiles--layout-${layout}`],\n variant === 'gridlines' && gridlineStyles.gridline,\n className,\n )}\n data-testid={testId || testIds.root}\n {...rest}\n >\n <ul className={styles['Tiles-grid']} data-testid={testIds.grid}>\n {children}\n </ul>\n </div>\n </TilesContext.Provider>\n )\n },\n)\n\nexport type TilesItemProps = {\n /**\n * The accessible name for the tile item.\n */\n name: string\n /**\n * Optional URL to link the tile to.\n */\n href?: string\n /**\n * Test id for the tile item element.\n */\n 'data-testid'?: string\n} & BaseProps<HTMLLIElement> &\n Omit<React.HTMLAttributes<HTMLLIElement>, 'children'> & {\n children: React.ReactNode\n }\n\nconst _Item = forwardRef(\n ({name, href, children, className, 'data-testid': testId, ...rest}: TilesItemProps, ref: Ref<HTMLLIElement>) => {\n const layout = useContext(TilesContext)\n const hasLink = Boolean(href)\n const isLabelHidden = layout === 'compact' && !hasLink\n\n const content = (\n <span className={styles['Tiles-item-content']}>\n <span className={styles['Tiles-item-media']} aria-hidden=\"true\">\n {children}\n </span>\n <span className={clsx(styles['Tiles-item-label'], isLabelHidden && 'visually-hidden')}>\n <Text as=\"span\" size=\"100\" className={styles['Tiles-item-name']}>\n {name}\n </Text>\n {hasLink && <ArrowUpRightIcon size={16} className={styles['Tiles-item-icon']} aria-hidden=\"true\" />}\n </span>\n </span>\n )\n\n return (\n <li ref={ref} className={clsx(styles['Tiles-item'], className)} data-testid={testId || testIds.item} {...rest}>\n {hasLink ? (\n <a href={href} className={styles['Tiles-item-link']}>\n {content}\n </a>\n ) : (\n content\n )}\n </li>\n )\n },\n)\n\n/**\n * Use Tiles to display a grid of logos or icons with optional links.\n * @see https://primer.style/brand/components/Tiles\n */\nexport const Tiles = Object.assign(TilesRoot, {\n Item: _Item,\n testIds,\n})\n"],"mappings":";;;;;;;;;AAaA,IAAM,IAAU;CACd,MAAM;CACN,IAAI,OAAO;AACT,SAAO,GAAG,KAAK,KAAK;;CAEtB,IAAI,OAAO;AACT,SAAO,GAAG,KAAK,KAAK;;CAEvB,EAMK,IAAe,EAA2B,UAAU,EAkBpD,IAAY,GAEd,EACE,aAAU,WACV,YAAS,WACT,aACA,cACA,eAAe,GACf,GAAG,KAEL,MAGE,kBAAC,EAAa,UAAd;CAAuB,OAAO;WAC5B,kBAAC,OAAD;EACO;EACL,WAAW,EACT,EAAO,OACP,EAAO,kBAAkB,MACzB,EAAO,iBAAiB,MACxB,MAAY,eAAe,EAAe,UAC1C,EACD;EACD,eAAa,KAAU,EAAQ;EAC/B,GAAI;YAEJ,kBAAC,MAAD;GAAI,WAAW,EAAO;GAAe,eAAa,EAAQ;GACvD;GACE,CAAA;EACD,CAAA;CACgB,CAAA,CAG7B,EAoBK,IAAQ,GACX,EAAC,SAAM,SAAM,aAAU,cAAW,eAAe,GAAQ,GAAG,KAAuB,MAA4B;CAC9G,IAAM,IAAS,EAAW,EAAa,EACjC,IAAU,EAAQ,GAClB,IAAgB,MAAW,aAAa,CAAC,GAEzC,IACJ,kBAAC,QAAD;EAAM,WAAW,EAAO;YAAxB,CACE,kBAAC,QAAD;GAAM,WAAW,EAAO;GAAqB,eAAY;GACtD;GACI,CAAA,EACP,kBAAC,QAAD;GAAM,WAAW,EAAK,EAAO,qBAAqB,KAAiB,kBAAkB;aAArF,CACE,kBAAC,GAAD;IAAM,IAAG;IAAO,MAAK;IAAM,WAAW,EAAO;cAC1C;IACI,CAAA,EACN,KAAW,kBAAC,GAAD;IAAkB,MAAM;IAAI,WAAW,EAAO;IAAoB,eAAY;IAAS,CAAA,CAC9F;KACF;;AAGT,QACE,kBAAC,MAAD;EAAS;EAAK,WAAW,EAAK,EAAO,eAAe,EAAU;EAAE,eAAa,KAAU,EAAQ;EAAM,GAAI;YACtG,IACC,kBAAC,KAAD;GAAS;GAAM,WAAW,EAAO;aAC9B;GACC,CAAA,GAEJ;EAEC,CAAA;EAGV,EAMY,IAAQ,OAAO,OAAO,GAAW;CAC5C,MAAM;CACN;CACD,CAAC"}
@@ -0,0 +1 @@
1
+ .Primer_Brand__Tiles-module__Tiles___RhWBm{width:100%;color:var(--brand-color-text-default)}.Primer_Brand__Tiles-module__Tiles-grid___lAoQw{--tiles-columns:2;flex-wrap:wrap;justify-content:center;margin:0;padding:0;list-style:none;display:flex}@media screen and (width>=48rem){.Primer_Brand__Tiles-module__Tiles--layout-default___szHFY .Primer_Brand__Tiles-module__Tiles-grid___lAoQw{--tiles-columns:4}}@media screen and (width>=63.25rem){.Primer_Brand__Tiles-module__Tiles--layout-default___szHFY .Primer_Brand__Tiles-module__Tiles-grid___lAoQw{--tiles-columns:6}}@media screen and (width>=48rem){.Primer_Brand__Tiles-module__Tiles--layout-compact___HBisD .Primer_Brand__Tiles-module__Tiles-grid___lAoQw{--tiles-columns:4}}@media screen and (width>=63.25rem){.Primer_Brand__Tiles-module__Tiles--layout-compact___HBisD .Primer_Brand__Tiles-module__Tiles-grid___lAoQw{--tiles-columns:8}}.Primer_Brand__Tiles-module__Tiles--variant-gridlines___6CsMP .Primer_Brand__Tiles-module__Tiles-grid___lAoQw{padding-right:var(--brand-borderWidth-thin);padding-bottom:var(--brand-borderWidth-thin);position:relative}.Primer_Brand__Tiles-module__Tiles--variant-gridlines___6CsMP .Primer_Brand__Tiles-module__Tiles-grid___lAoQw:before,.Primer_Brand__Tiles-module__Tiles--variant-gridlines___6CsMP .Primer_Brand__Tiles-module__Tiles-grid___lAoQw:after{content:"";border-left:var(--brand-borderWidth-thin) solid var(--brand-color-border-muted);z-index:1;pointer-events:none;width:0;position:absolute;top:0;bottom:0}.Primer_Brand__Tiles-module__Tiles--variant-gridlines___6CsMP .Primer_Brand__Tiles-module__Tiles-grid___lAoQw:before{left:0}.Primer_Brand__Tiles-module__Tiles--variant-gridlines___6CsMP .Primer_Brand__Tiles-module__Tiles-grid___lAoQw:after{right:0}.Primer_Brand__Tiles-module__Tiles-item___YlnUj{--tiles-inset-shadow:inset 0 0 0 transparent;width:calc(100% / var(--tiles-columns));box-sizing:border-box;background-color:var(--brand-tiles-bgColor-rest);border-top:var(--brand-borderWidth-thin) solid var(--brand-color-border-muted);border-left:var(--brand-borderWidth-thin) solid var(--brand-color-border-muted);box-shadow:var(--brand-borderWidth-thin) 0 0 0 var(--brand-color-border-muted), 0 var(--brand-borderWidth-thin) 0 0 var(--brand-color-border-muted), inset 0 0 0 transparent;box-shadow:var(--brand-borderWidth-thin) 0 0 0 var(--brand-color-border-muted), 0 var(--brand-borderWidth-thin) 0 0 var(--brand-color-border-muted), var(--tiles-inset-shadow);transition:background-color var(--brand-animation-duration-faster) var(--brand-animation-easing-default), box-shadow var(--brand-animation-duration-faster) var(--brand-animation-easing-default);flex-direction:column;display:flex;position:relative}:is(.Primer_Brand__Tiles-module__Tiles-item___YlnUj:has(.Primer_Brand__Tiles-module__Tiles-item-link___NcK69):hover,.Primer_Brand__Tiles-module__Tiles-item___YlnUj:has(.Primer_Brand__Tiles-module__Tiles-item-link___NcK69):focus-within){--tiles-inset-shadow:inset 0 var(--base-size-2) 0 var(--brand-tiles-highlightColor);background-color:var(--brand-tiles-bgColor-hover)}.Primer_Brand__Tiles-module__Tiles-item-link___NcK69{width:100%;color:inherit;flex:1;-webkit-text-decoration:none;text-decoration:none;display:flex}.Primer_Brand__Tiles-module__Tiles-item-link___NcK69:focus-visible{outline:var(--base-size-4) solid var(--brand-color-focus);outline-offset:calc(-1 * var(--base-size-4));border-radius:var(--brand-borderRadius-small)}.Primer_Brand__Tiles-module__Tiles-item-content___YIq8M{aspect-ratio:1;justify-content:center;align-items:center;width:100%;display:flex;position:relative}.Primer_Brand__Tiles-module__Tiles-item-media___QH9l2{justify-content:center;align-items:center;display:flex}.Primer_Brand__Tiles-module__Tiles-item-media___QH9l2 svg,.Primer_Brand__Tiles-module__Tiles-item-media___QH9l2 img{width:auto;height:var(--base-size-40);max-width:100%}.Primer_Brand__Tiles-module__Tiles--layout-compact___HBisD .Primer_Brand__Tiles-module__Tiles-item-media___QH9l2 svg,.Primer_Brand__Tiles-module__Tiles--layout-compact___HBisD .Primer_Brand__Tiles-module__Tiles-item-media___QH9l2 img{height:var(--base-size-32)}.Primer_Brand__Tiles-module__Tiles-item-label___L9BIA{justify-content:space-between;align-items:center;gap:var(--base-size-4);padding:var(--base-size-12) var(--base-size-16);display:flex;position:absolute;bottom:0;left:0;right:0}.Primer_Brand__Tiles-module__Tiles--layout-compact___HBisD .Primer_Brand__Tiles-module__Tiles-item-media___QH9l2{transition:transform var(--brand-animation-duration-fast) var(--brand-animation-easing-default)}.Primer_Brand__Tiles-module__Tiles--layout-compact___HBisD .Primer_Brand__Tiles-module__Tiles-item-link___NcK69:hover .Primer_Brand__Tiles-module__Tiles-item-media___QH9l2,.Primer_Brand__Tiles-module__Tiles--layout-compact___HBisD .Primer_Brand__Tiles-module__Tiles-item-link___NcK69:focus-visible .Primer_Brand__Tiles-module__Tiles-item-media___QH9l2{transform:translateY(calc(-1 * var(--base-size-4)))}.Primer_Brand__Tiles-module__Tiles--layout-compact___HBisD .Primer_Brand__Tiles-module__Tiles-item-label___L9BIA{opacity:0;transform:translateY(var(--base-size-4));transition:opacity var(--brand-animation-duration-fast) var(--brand-animation-easing-default), transform var(--brand-animation-duration-fast) var(--brand-animation-easing-default);pointer-events:none}.Primer_Brand__Tiles-module__Tiles--layout-compact___HBisD .Primer_Brand__Tiles-module__Tiles-item-link___NcK69:hover .Primer_Brand__Tiles-module__Tiles-item-label___L9BIA,.Primer_Brand__Tiles-module__Tiles--layout-compact___HBisD .Primer_Brand__Tiles-module__Tiles-item-link___NcK69:focus-visible .Primer_Brand__Tiles-module__Tiles-item-label___L9BIA{opacity:1;transform:translateY(0)}.Primer_Brand__Tiles-module__Tiles-item-name___47ZMU{white-space:nowrap;text-overflow:ellipsis;min-width:0;overflow:hidden}.Primer_Brand__Tiles-module__Tiles-item-icon___2Hu6M{color:var(--brand-color-text-default);flex-shrink:0}@media (prefers-reduced-motion:reduce){.Primer_Brand__Tiles-module__Tiles-item___YlnUj,.Primer_Brand__Tiles-module__Tiles--layout-compact___HBisD .Primer_Brand__Tiles-module__Tiles-item-media___QH9l2,.Primer_Brand__Tiles-module__Tiles--layout-compact___HBisD .Primer_Brand__Tiles-module__Tiles-item-label___L9BIA{transition:none}}
@@ -1,4 +1,4 @@
1
- import './Tiles.module-D7UJKhKM.css';var e = {
1
+ import './Tiles.module-DVK0nMCy.css';var e = {
2
2
  Tiles: "Primer_Brand__Tiles-module__Tiles___RhWBm",
3
3
  "Tiles-grid": "Primer_Brand__Tiles-module__Tiles-grid___lAoQw",
4
4
  "Tiles--layout-default": "Primer_Brand__Tiles-module__Tiles--layout-default___szHFY",