@primer/react-brand 0.70.0-rc.4599efb5 → 0.70.0-rc.88de47fc

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 (385) hide show
  1. package/docs/components/NavList/index.md +210 -0
  2. package/docs/components/index.md +1 -0
  3. package/docs/index.md +3 -2
  4. package/esm/NavList/NavList.d.ts +86 -0
  5. package/esm/NavList/NavList.d.ts.map +1 -0
  6. package/esm/NavList/NavList.js +277 -0
  7. package/esm/NavList/NavList.js.map +1 -0
  8. package/esm/NavList/NavList.module-CZFnt8br.css +1 -0
  9. package/esm/NavList/NavList.module.js +32 -0
  10. package/esm/NavList/NavList.module.js.map +1 -0
  11. package/esm/NavList/index.d.ts +2 -0
  12. package/esm/NavList/index.d.ts.map +1 -0
  13. package/esm/index.d.ts +1 -0
  14. package/esm/index.d.ts.map +1 -1
  15. package/esm/index.esm.js +12 -11
  16. package/esm/packages/design-tokens/lib/design-tokens/css/tokens/functional/components/nav-list/colors-with-modes-CGyt2t8f.css +1 -0
  17. package/lib/NavList/NavList.d.ts +85 -0
  18. package/lib/NavList/index.d.ts +1 -0
  19. package/lib/css/main.css +605 -67
  20. package/lib/design-tokens/css/tokens/base/colors/color-scales-with-modes.css +1 -1
  21. package/lib/design-tokens/css/tokens/base/colors/light.css +1 -1
  22. package/lib/design-tokens/css/tokens/base/size/size.css +1 -1
  23. package/lib/design-tokens/css/tokens/base/typography/typography.css +1 -1
  24. package/lib/design-tokens/css/tokens/functional/animation/base.css +1 -1
  25. package/lib/design-tokens/css/tokens/functional/colors/global-with-modes.css +1 -1
  26. package/lib/design-tokens/css/tokens/functional/colors/global.css +1 -1
  27. package/lib/design-tokens/css/tokens/functional/components/accordion/colors-with-modes.css +1 -1
  28. package/lib/design-tokens/css/tokens/functional/components/action-menu/colors-with-modes.css +1 -1
  29. package/lib/design-tokens/css/tokens/functional/components/anchor-nav/colors-with-modes.css +1 -1
  30. package/lib/design-tokens/css/tokens/functional/components/bento/base.css +1 -1
  31. package/lib/design-tokens/css/tokens/functional/components/blinking-cursor/colors-with-modes.css +1 -1
  32. package/lib/design-tokens/css/tokens/functional/components/breadcrumbs/colors-with-modes.css +1 -1
  33. package/lib/design-tokens/css/tokens/functional/components/button/colors-with-modes.css +1 -1
  34. package/lib/design-tokens/css/tokens/functional/components/card/base.css +1 -1
  35. package/lib/design-tokens/css/tokens/functional/components/card/colors-with-modes.css +1 -1
  36. package/lib/design-tokens/css/tokens/functional/components/card/colors.css +1 -1
  37. package/lib/design-tokens/css/tokens/functional/components/comparison-table/colors-with-modes.css +1 -1
  38. package/lib/design-tokens/css/tokens/functional/components/comparison-table/comparison-table.css +1 -1
  39. package/lib/design-tokens/css/tokens/functional/components/control/colors-with-modes.css +1 -1
  40. package/lib/design-tokens/css/tokens/functional/components/cta-banner/colors-with-modes.css +1 -1
  41. package/lib/design-tokens/css/tokens/functional/components/eyebrow-banner/colors-with-modes.css +1 -1
  42. package/lib/design-tokens/css/tokens/functional/components/eyebrow-banner/eyebrow-banner.css +1 -1
  43. package/lib/design-tokens/css/tokens/functional/components/faq/base.css +1 -1
  44. package/lib/design-tokens/css/tokens/functional/components/faq/colors-with-modes.css +1 -1
  45. package/lib/design-tokens/css/tokens/functional/components/faq/colors.css +1 -1
  46. package/lib/design-tokens/css/tokens/functional/components/faq/faq.css +1 -1
  47. package/lib/design-tokens/css/tokens/functional/components/footer/colors-with-modes.css +1 -1
  48. package/lib/design-tokens/css/tokens/functional/components/footer/colors.css +1 -1
  49. package/lib/design-tokens/css/tokens/functional/components/frosted-glass-vfx/base.css +1 -1
  50. package/lib/design-tokens/css/tokens/functional/components/frosted-glass-vfx/colors-with-modes.css +1 -1
  51. package/lib/design-tokens/css/tokens/functional/components/grid/colors-with-modes.css +1 -1
  52. package/lib/design-tokens/css/tokens/functional/components/grid/colors.css +1 -1
  53. package/lib/design-tokens/css/tokens/functional/components/grid/grid.css +1 -1
  54. package/lib/design-tokens/css/tokens/functional/components/hero/base.css +1 -1
  55. package/lib/design-tokens/css/tokens/functional/components/icon/colors-with-modes.css +1 -1
  56. package/lib/design-tokens/css/tokens/functional/components/icon/colors.css +1 -1
  57. package/lib/design-tokens/css/tokens/functional/components/ide/base.css +1 -1
  58. package/lib/design-tokens/css/tokens/functional/components/ide/colors-with-modes.css +1 -1
  59. package/lib/design-tokens/css/tokens/functional/components/image/base.css +1 -1
  60. package/lib/design-tokens/css/tokens/functional/components/inline-link/base.css +1 -1
  61. package/lib/design-tokens/css/tokens/functional/components/inline-link/colors-with-modes.css +1 -1
  62. package/lib/design-tokens/css/tokens/functional/components/inline-link/colors.css +1 -1
  63. package/lib/design-tokens/css/tokens/functional/components/label/colors-with-modes.css +1 -1
  64. package/lib/design-tokens/css/tokens/functional/components/label/colors.css +1 -1
  65. package/lib/design-tokens/css/tokens/functional/components/link/colors-with-modes.css +1 -1
  66. package/lib/design-tokens/css/tokens/functional/components/link/colors.css +1 -1
  67. package/lib/design-tokens/css/tokens/functional/components/logosuite/base.css +1 -1
  68. package/lib/design-tokens/css/tokens/functional/components/logosuite/colors-with-modes.css +1 -1
  69. package/lib/design-tokens/css/tokens/functional/components/logosuite/colors.css +1 -1
  70. package/lib/design-tokens/css/tokens/functional/components/media-playlist/colors-with-modes.css +1 -1
  71. package/lib/design-tokens/css/tokens/functional/components/media-playlist/colors.css +1 -1
  72. package/lib/design-tokens/css/tokens/functional/components/nav-list/colors-with-modes.css +13 -0
  73. package/lib/design-tokens/css/tokens/functional/components/pricing-options/colors-with-modes.css +1 -1
  74. package/lib/design-tokens/css/tokens/functional/components/pricing-options/colors.css +1 -1
  75. package/lib/design-tokens/css/tokens/functional/components/pricing-options/pricing-options.css +1 -1
  76. package/lib/design-tokens/css/tokens/functional/components/prose/base.css +1 -1
  77. package/lib/design-tokens/css/tokens/functional/components/prose/colors-with-modes.css +1 -1
  78. package/lib/design-tokens/css/tokens/functional/components/river/base.css +1 -1
  79. package/lib/design-tokens/css/tokens/functional/components/river/river.css +1 -1
  80. package/lib/design-tokens/css/tokens/functional/components/river-story-scroll/colors-with-modes.css +1 -1
  81. package/lib/design-tokens/css/tokens/functional/components/section/section.css +1 -1
  82. package/lib/design-tokens/css/tokens/functional/components/statistic/base.css +1 -1
  83. package/lib/design-tokens/css/tokens/functional/components/sub-nav/base.css +1 -1
  84. package/lib/design-tokens/css/tokens/functional/components/sub-nav/colors-with-modes.css +1 -1
  85. package/lib/design-tokens/css/tokens/functional/components/subdomain-nav-bar/colors-with-modes.css +1 -1
  86. package/lib/design-tokens/css/tokens/functional/components/tabs/base.css +1 -1
  87. package/lib/design-tokens/css/tokens/functional/components/tabs/colors-with-modes.css +1 -1
  88. package/lib/design-tokens/css/tokens/functional/components/tabs/colors.css +1 -1
  89. package/lib/design-tokens/css/tokens/functional/components/testimonial/base.css +1 -1
  90. package/lib/design-tokens/css/tokens/functional/components/testimonial/colors-with-modes.css +1 -1
  91. package/lib/design-tokens/css/tokens/functional/components/testimonial/colors.css +1 -1
  92. package/lib/design-tokens/css/tokens/functional/components/text-cursor-animation/colors-with-modes.css +1 -1
  93. package/lib/design-tokens/css/tokens/functional/components/text-cursor-animation/colors.css +1 -1
  94. package/lib/design-tokens/css/tokens/functional/components/tiles/colors-with-modes.css +1 -1
  95. package/lib/design-tokens/css/tokens/functional/components/timeline/base.css +1 -1
  96. package/lib/design-tokens/css/tokens/functional/components/timeline/colors-with-modes.css +1 -1
  97. package/lib/design-tokens/css/tokens/functional/components/timeline/colors.css +1 -1
  98. package/lib/design-tokens/css/tokens/functional/components/token/colors-with-modes.css +1 -1
  99. package/lib/design-tokens/css/tokens/functional/components/token/colors.css +1 -1
  100. package/lib/design-tokens/css/tokens/functional/components/tooltip/colors-with-modes.css +1 -1
  101. package/lib/design-tokens/css/tokens/functional/components/tooltip/colors.css +1 -1
  102. package/lib/design-tokens/css/tokens/functional/components/video-player/base.css +1 -1
  103. package/lib/design-tokens/css/tokens/functional/components/video-player/colors-with-modes.css +1 -1
  104. package/lib/design-tokens/css/tokens/functional/size/border.css +1 -1
  105. package/lib/design-tokens/css/tokens/functional/size/breakpoints.css +1 -1
  106. package/lib/design-tokens/css/tokens/functional/size/size-coarse.css +1 -1
  107. package/lib/design-tokens/css/tokens/functional/size/size-fine.css +1 -1
  108. package/lib/design-tokens/css/tokens/functional/size/size.css +1 -1
  109. package/lib/design-tokens/css/tokens/functional/size/viewport.css +1 -1
  110. package/lib/design-tokens/css/tokens/functional/typography/typography-responsive.css +1 -1
  111. package/lib/design-tokens/css/tokens/functional/typography/typography.css +1 -1
  112. package/lib/design-tokens/js/module/tokens/base/colors/light.js +1 -1
  113. package/lib/design-tokens/js/module/tokens/base/size/size.js +1 -1
  114. package/lib/design-tokens/js/module/tokens/base/typography/typography.js +1 -1
  115. package/lib/design-tokens/js/module/tokens/functional/animation/base.js +1 -1
  116. package/lib/design-tokens/js/module/tokens/functional/colors/global.js +1 -1
  117. package/lib/design-tokens/js/module/tokens/functional/components/bento/base.js +1 -1
  118. package/lib/design-tokens/js/module/tokens/functional/components/card/base.js +1 -1
  119. package/lib/design-tokens/js/module/tokens/functional/components/card/colors.js +1 -1
  120. package/lib/design-tokens/js/module/tokens/functional/components/comparison-table/comparison-table.js +1 -1
  121. package/lib/design-tokens/js/module/tokens/functional/components/eyebrow-banner/eyebrow-banner.js +1 -1
  122. package/lib/design-tokens/js/module/tokens/functional/components/faq/base.js +1 -1
  123. package/lib/design-tokens/js/module/tokens/functional/components/faq/colors.js +1 -1
  124. package/lib/design-tokens/js/module/tokens/functional/components/faq/faq.js +1 -1
  125. package/lib/design-tokens/js/module/tokens/functional/components/footer/colors.js +1 -1
  126. package/lib/design-tokens/js/module/tokens/functional/components/frosted-glass-vfx/base.js +1 -1
  127. package/lib/design-tokens/js/module/tokens/functional/components/grid/colors.js +1 -1
  128. package/lib/design-tokens/js/module/tokens/functional/components/grid/grid.js +1 -1
  129. package/lib/design-tokens/js/module/tokens/functional/components/hero/base.js +1 -1
  130. package/lib/design-tokens/js/module/tokens/functional/components/icon/colors.js +1 -1
  131. package/lib/design-tokens/js/module/tokens/functional/components/ide/base.js +1 -1
  132. package/lib/design-tokens/js/module/tokens/functional/components/image/base.js +1 -1
  133. package/lib/design-tokens/js/module/tokens/functional/components/inline-link/base.js +1 -1
  134. package/lib/design-tokens/js/module/tokens/functional/components/inline-link/colors.js +1 -1
  135. package/lib/design-tokens/js/module/tokens/functional/components/label/colors.js +1 -1
  136. package/lib/design-tokens/js/module/tokens/functional/components/link/colors.js +1 -1
  137. package/lib/design-tokens/js/module/tokens/functional/components/logosuite/base.js +1 -1
  138. package/lib/design-tokens/js/module/tokens/functional/components/logosuite/colors.js +1 -1
  139. package/lib/design-tokens/js/module/tokens/functional/components/media-playlist/colors.js +1 -1
  140. package/lib/design-tokens/js/module/tokens/functional/components/pricing-options/colors.js +1 -1
  141. package/lib/design-tokens/js/module/tokens/functional/components/pricing-options/pricing-options.js +1 -1
  142. package/lib/design-tokens/js/module/tokens/functional/components/prose/base.js +1 -1
  143. package/lib/design-tokens/js/module/tokens/functional/components/river/base.js +1 -1
  144. package/lib/design-tokens/js/module/tokens/functional/components/river/river.js +1 -1
  145. package/lib/design-tokens/js/module/tokens/functional/components/section/section.js +1 -1
  146. package/lib/design-tokens/js/module/tokens/functional/components/statistic/base.js +1 -1
  147. package/lib/design-tokens/js/module/tokens/functional/components/sub-nav/base.js +1 -1
  148. package/lib/design-tokens/js/module/tokens/functional/components/tabs/base.js +1 -1
  149. package/lib/design-tokens/js/module/tokens/functional/components/tabs/colors.js +1 -1
  150. package/lib/design-tokens/js/module/tokens/functional/components/testimonial/base.js +1 -1
  151. package/lib/design-tokens/js/module/tokens/functional/components/testimonial/colors.js +1 -1
  152. package/lib/design-tokens/js/module/tokens/functional/components/text-cursor-animation/colors.js +1 -1
  153. package/lib/design-tokens/js/module/tokens/functional/components/timeline/base.js +1 -1
  154. package/lib/design-tokens/js/module/tokens/functional/components/timeline/colors.js +1 -1
  155. package/lib/design-tokens/js/module/tokens/functional/components/token/colors.js +1 -1
  156. package/lib/design-tokens/js/module/tokens/functional/components/tooltip/colors.js +1 -1
  157. package/lib/design-tokens/js/module/tokens/functional/components/video-player/base.js +1 -1
  158. package/lib/design-tokens/js/module/tokens/functional/size/border.js +1 -1
  159. package/lib/design-tokens/js/module/tokens/functional/size/breakpoints.js +1 -1
  160. package/lib/design-tokens/js/module/tokens/functional/size/size-coarse.js +1 -1
  161. package/lib/design-tokens/js/module/tokens/functional/size/size-fine.js +1 -1
  162. package/lib/design-tokens/js/module/tokens/functional/size/size.js +1 -1
  163. package/lib/design-tokens/js/module/tokens/functional/size/viewport.js +1 -1
  164. package/lib/design-tokens/js/module/tokens/functional/typography/typography-responsive.js +1 -1
  165. package/lib/design-tokens/js/module/tokens/functional/typography/typography.js +1 -1
  166. package/lib/design-tokens/js/tokens/base/colors/light.js +1 -1
  167. package/lib/design-tokens/js/tokens/base/size/size.js +1 -1
  168. package/lib/design-tokens/js/tokens/base/typography/typography.js +1 -1
  169. package/lib/design-tokens/js/tokens/functional/animation/base.js +1 -1
  170. package/lib/design-tokens/js/tokens/functional/colors/global.js +1 -1
  171. package/lib/design-tokens/js/tokens/functional/components/bento/base.js +1 -1
  172. package/lib/design-tokens/js/tokens/functional/components/card/base.js +1 -1
  173. package/lib/design-tokens/js/tokens/functional/components/card/colors.js +1 -1
  174. package/lib/design-tokens/js/tokens/functional/components/comparison-table/comparison-table.js +1 -1
  175. package/lib/design-tokens/js/tokens/functional/components/eyebrow-banner/eyebrow-banner.js +1 -1
  176. package/lib/design-tokens/js/tokens/functional/components/faq/base.js +1 -1
  177. package/lib/design-tokens/js/tokens/functional/components/faq/colors.js +1 -1
  178. package/lib/design-tokens/js/tokens/functional/components/faq/faq.js +1 -1
  179. package/lib/design-tokens/js/tokens/functional/components/footer/colors.js +1 -1
  180. package/lib/design-tokens/js/tokens/functional/components/frosted-glass-vfx/base.js +1 -1
  181. package/lib/design-tokens/js/tokens/functional/components/grid/colors.js +1 -1
  182. package/lib/design-tokens/js/tokens/functional/components/grid/grid.js +1 -1
  183. package/lib/design-tokens/js/tokens/functional/components/hero/base.js +1 -1
  184. package/lib/design-tokens/js/tokens/functional/components/icon/colors.js +1 -1
  185. package/lib/design-tokens/js/tokens/functional/components/ide/base.js +1 -1
  186. package/lib/design-tokens/js/tokens/functional/components/image/base.js +1 -1
  187. package/lib/design-tokens/js/tokens/functional/components/inline-link/base.js +1 -1
  188. package/lib/design-tokens/js/tokens/functional/components/inline-link/colors.js +1 -1
  189. package/lib/design-tokens/js/tokens/functional/components/label/colors.js +1 -1
  190. package/lib/design-tokens/js/tokens/functional/components/link/colors.js +1 -1
  191. package/lib/design-tokens/js/tokens/functional/components/logosuite/base.js +1 -1
  192. package/lib/design-tokens/js/tokens/functional/components/logosuite/colors.js +1 -1
  193. package/lib/design-tokens/js/tokens/functional/components/media-playlist/colors.js +1 -1
  194. package/lib/design-tokens/js/tokens/functional/components/pricing-options/colors.js +1 -1
  195. package/lib/design-tokens/js/tokens/functional/components/pricing-options/pricing-options.js +1 -1
  196. package/lib/design-tokens/js/tokens/functional/components/prose/base.js +1 -1
  197. package/lib/design-tokens/js/tokens/functional/components/river/base.js +1 -1
  198. package/lib/design-tokens/js/tokens/functional/components/river/river.js +1 -1
  199. package/lib/design-tokens/js/tokens/functional/components/section/section.js +1 -1
  200. package/lib/design-tokens/js/tokens/functional/components/statistic/base.js +1 -1
  201. package/lib/design-tokens/js/tokens/functional/components/sub-nav/base.js +1 -1
  202. package/lib/design-tokens/js/tokens/functional/components/tabs/base.js +1 -1
  203. package/lib/design-tokens/js/tokens/functional/components/tabs/colors.js +1 -1
  204. package/lib/design-tokens/js/tokens/functional/components/testimonial/base.js +1 -1
  205. package/lib/design-tokens/js/tokens/functional/components/testimonial/colors.js +1 -1
  206. package/lib/design-tokens/js/tokens/functional/components/text-cursor-animation/colors.js +1 -1
  207. package/lib/design-tokens/js/tokens/functional/components/timeline/base.js +1 -1
  208. package/lib/design-tokens/js/tokens/functional/components/timeline/colors.js +1 -1
  209. package/lib/design-tokens/js/tokens/functional/components/token/colors.js +1 -1
  210. package/lib/design-tokens/js/tokens/functional/components/tooltip/colors.js +1 -1
  211. package/lib/design-tokens/js/tokens/functional/components/video-player/base.js +1 -1
  212. package/lib/design-tokens/js/tokens/functional/size/border.js +1 -1
  213. package/lib/design-tokens/js/tokens/functional/size/breakpoints.js +1 -1
  214. package/lib/design-tokens/js/tokens/functional/size/size-coarse.js +1 -1
  215. package/lib/design-tokens/js/tokens/functional/size/size-fine.js +1 -1
  216. package/lib/design-tokens/js/tokens/functional/size/size.js +1 -1
  217. package/lib/design-tokens/js/tokens/functional/size/viewport.js +1 -1
  218. package/lib/design-tokens/js/tokens/functional/typography/typography-responsive.js +1 -1
  219. package/lib/design-tokens/js/tokens/functional/typography/typography.js +1 -1
  220. package/lib/design-tokens/scss/tokens/base/colors/light.scss +1 -1
  221. package/lib/design-tokens/scss/tokens/base/size/size.scss +1 -1
  222. package/lib/design-tokens/scss/tokens/base/typography/typography.scss +1 -1
  223. package/lib/design-tokens/scss/tokens/functional/animation/base.scss +1 -1
  224. package/lib/design-tokens/scss/tokens/functional/colors/global.scss +1 -1
  225. package/lib/design-tokens/scss/tokens/functional/components/bento/base.scss +1 -1
  226. package/lib/design-tokens/scss/tokens/functional/components/card/base.scss +1 -1
  227. package/lib/design-tokens/scss/tokens/functional/components/card/colors.scss +1 -1
  228. package/lib/design-tokens/scss/tokens/functional/components/comparison-table/comparison-table.scss +1 -1
  229. package/lib/design-tokens/scss/tokens/functional/components/eyebrow-banner/eyebrow-banner.scss +1 -1
  230. package/lib/design-tokens/scss/tokens/functional/components/faq/base.scss +1 -1
  231. package/lib/design-tokens/scss/tokens/functional/components/faq/colors.scss +1 -1
  232. package/lib/design-tokens/scss/tokens/functional/components/faq/faq.scss +1 -1
  233. package/lib/design-tokens/scss/tokens/functional/components/footer/colors.scss +1 -1
  234. package/lib/design-tokens/scss/tokens/functional/components/frosted-glass-vfx/base.scss +1 -1
  235. package/lib/design-tokens/scss/tokens/functional/components/grid/colors.scss +1 -1
  236. package/lib/design-tokens/scss/tokens/functional/components/grid/grid.scss +1 -1
  237. package/lib/design-tokens/scss/tokens/functional/components/hero/base.scss +1 -1
  238. package/lib/design-tokens/scss/tokens/functional/components/icon/colors.scss +1 -1
  239. package/lib/design-tokens/scss/tokens/functional/components/ide/base.scss +1 -1
  240. package/lib/design-tokens/scss/tokens/functional/components/image/base.scss +1 -1
  241. package/lib/design-tokens/scss/tokens/functional/components/inline-link/base.scss +1 -1
  242. package/lib/design-tokens/scss/tokens/functional/components/inline-link/colors.scss +1 -1
  243. package/lib/design-tokens/scss/tokens/functional/components/label/colors.scss +1 -1
  244. package/lib/design-tokens/scss/tokens/functional/components/link/colors.scss +1 -1
  245. package/lib/design-tokens/scss/tokens/functional/components/logosuite/base.scss +1 -1
  246. package/lib/design-tokens/scss/tokens/functional/components/logosuite/colors.scss +1 -1
  247. package/lib/design-tokens/scss/tokens/functional/components/media-playlist/colors.scss +1 -1
  248. package/lib/design-tokens/scss/tokens/functional/components/pricing-options/colors.scss +1 -1
  249. package/lib/design-tokens/scss/tokens/functional/components/pricing-options/pricing-options.scss +1 -1
  250. package/lib/design-tokens/scss/tokens/functional/components/prose/base.scss +1 -1
  251. package/lib/design-tokens/scss/tokens/functional/components/river/base.scss +1 -1
  252. package/lib/design-tokens/scss/tokens/functional/components/river/river.scss +1 -1
  253. package/lib/design-tokens/scss/tokens/functional/components/section/section.scss +1 -1
  254. package/lib/design-tokens/scss/tokens/functional/components/statistic/base.scss +1 -1
  255. package/lib/design-tokens/scss/tokens/functional/components/sub-nav/base.scss +1 -1
  256. package/lib/design-tokens/scss/tokens/functional/components/tabs/base.scss +1 -1
  257. package/lib/design-tokens/scss/tokens/functional/components/tabs/colors.scss +1 -1
  258. package/lib/design-tokens/scss/tokens/functional/components/testimonial/base.scss +1 -1
  259. package/lib/design-tokens/scss/tokens/functional/components/testimonial/colors.scss +1 -1
  260. package/lib/design-tokens/scss/tokens/functional/components/text-cursor-animation/colors.scss +1 -1
  261. package/lib/design-tokens/scss/tokens/functional/components/timeline/base.scss +1 -1
  262. package/lib/design-tokens/scss/tokens/functional/components/timeline/colors.scss +1 -1
  263. package/lib/design-tokens/scss/tokens/functional/components/token/colors.scss +1 -1
  264. package/lib/design-tokens/scss/tokens/functional/components/tooltip/colors.scss +1 -1
  265. package/lib/design-tokens/scss/tokens/functional/components/video-player/base.scss +1 -1
  266. package/lib/design-tokens/scss/tokens/functional/size/border.scss +1 -1
  267. package/lib/design-tokens/scss/tokens/functional/size/breakpoints.scss +1 -1
  268. package/lib/design-tokens/scss/tokens/functional/size/size-coarse.scss +1 -1
  269. package/lib/design-tokens/scss/tokens/functional/size/size-fine.scss +1 -1
  270. package/lib/design-tokens/scss/tokens/functional/size/size.scss +1 -1
  271. package/lib/design-tokens/scss/tokens/functional/size/viewport.scss +1 -1
  272. package/lib/design-tokens/scss/tokens/functional/typography/typography-responsive.scss +1 -1
  273. package/lib/design-tokens/scss/tokens/functional/typography/typography.scss +1 -1
  274. package/lib/design-tokens/ts/tokens/base/colors/light.d.ts +1 -1
  275. package/lib/design-tokens/ts/tokens/base/colors/light.js +1 -1
  276. package/lib/design-tokens/ts/tokens/base/size/size.d.ts +1 -1
  277. package/lib/design-tokens/ts/tokens/base/size/size.js +1 -1
  278. package/lib/design-tokens/ts/tokens/base/typography/typography.d.ts +1 -1
  279. package/lib/design-tokens/ts/tokens/base/typography/typography.js +1 -1
  280. package/lib/design-tokens/ts/tokens/functional/animation/base.d.ts +1 -1
  281. package/lib/design-tokens/ts/tokens/functional/animation/base.js +1 -1
  282. package/lib/design-tokens/ts/tokens/functional/colors/global.d.ts +1 -1
  283. package/lib/design-tokens/ts/tokens/functional/colors/global.js +1 -1
  284. package/lib/design-tokens/ts/tokens/functional/components/bento/base.d.ts +1 -1
  285. package/lib/design-tokens/ts/tokens/functional/components/bento/base.js +1 -1
  286. package/lib/design-tokens/ts/tokens/functional/components/card/base.d.ts +1 -1
  287. package/lib/design-tokens/ts/tokens/functional/components/card/base.js +1 -1
  288. package/lib/design-tokens/ts/tokens/functional/components/card/colors.d.ts +1 -1
  289. package/lib/design-tokens/ts/tokens/functional/components/card/colors.js +1 -1
  290. package/lib/design-tokens/ts/tokens/functional/components/comparison-table/comparison-table.d.ts +1 -1
  291. package/lib/design-tokens/ts/tokens/functional/components/comparison-table/comparison-table.js +1 -1
  292. package/lib/design-tokens/ts/tokens/functional/components/eyebrow-banner/eyebrow-banner.d.ts +1 -1
  293. package/lib/design-tokens/ts/tokens/functional/components/eyebrow-banner/eyebrow-banner.js +1 -1
  294. package/lib/design-tokens/ts/tokens/functional/components/faq/base.d.ts +1 -1
  295. package/lib/design-tokens/ts/tokens/functional/components/faq/base.js +1 -1
  296. package/lib/design-tokens/ts/tokens/functional/components/faq/colors.d.ts +1 -1
  297. package/lib/design-tokens/ts/tokens/functional/components/faq/colors.js +1 -1
  298. package/lib/design-tokens/ts/tokens/functional/components/faq/faq.d.ts +1 -1
  299. package/lib/design-tokens/ts/tokens/functional/components/faq/faq.js +1 -1
  300. package/lib/design-tokens/ts/tokens/functional/components/footer/colors.d.ts +1 -1
  301. package/lib/design-tokens/ts/tokens/functional/components/footer/colors.js +1 -1
  302. package/lib/design-tokens/ts/tokens/functional/components/frosted-glass-vfx/base.d.ts +1 -1
  303. package/lib/design-tokens/ts/tokens/functional/components/frosted-glass-vfx/base.js +1 -1
  304. package/lib/design-tokens/ts/tokens/functional/components/grid/colors.d.ts +1 -1
  305. package/lib/design-tokens/ts/tokens/functional/components/grid/colors.js +1 -1
  306. package/lib/design-tokens/ts/tokens/functional/components/grid/grid.d.ts +1 -1
  307. package/lib/design-tokens/ts/tokens/functional/components/grid/grid.js +1 -1
  308. package/lib/design-tokens/ts/tokens/functional/components/hero/base.d.ts +1 -1
  309. package/lib/design-tokens/ts/tokens/functional/components/hero/base.js +1 -1
  310. package/lib/design-tokens/ts/tokens/functional/components/icon/colors.d.ts +1 -1
  311. package/lib/design-tokens/ts/tokens/functional/components/icon/colors.js +1 -1
  312. package/lib/design-tokens/ts/tokens/functional/components/ide/base.d.ts +1 -1
  313. package/lib/design-tokens/ts/tokens/functional/components/ide/base.js +1 -1
  314. package/lib/design-tokens/ts/tokens/functional/components/image/base.d.ts +1 -1
  315. package/lib/design-tokens/ts/tokens/functional/components/image/base.js +1 -1
  316. package/lib/design-tokens/ts/tokens/functional/components/inline-link/base.d.ts +1 -1
  317. package/lib/design-tokens/ts/tokens/functional/components/inline-link/base.js +1 -1
  318. package/lib/design-tokens/ts/tokens/functional/components/inline-link/colors.d.ts +1 -1
  319. package/lib/design-tokens/ts/tokens/functional/components/inline-link/colors.js +1 -1
  320. package/lib/design-tokens/ts/tokens/functional/components/label/colors.d.ts +1 -1
  321. package/lib/design-tokens/ts/tokens/functional/components/label/colors.js +1 -1
  322. package/lib/design-tokens/ts/tokens/functional/components/link/colors.d.ts +1 -1
  323. package/lib/design-tokens/ts/tokens/functional/components/link/colors.js +1 -1
  324. package/lib/design-tokens/ts/tokens/functional/components/logosuite/base.d.ts +1 -1
  325. package/lib/design-tokens/ts/tokens/functional/components/logosuite/base.js +1 -1
  326. package/lib/design-tokens/ts/tokens/functional/components/logosuite/colors.d.ts +1 -1
  327. package/lib/design-tokens/ts/tokens/functional/components/logosuite/colors.js +1 -1
  328. package/lib/design-tokens/ts/tokens/functional/components/media-playlist/colors.d.ts +1 -1
  329. package/lib/design-tokens/ts/tokens/functional/components/media-playlist/colors.js +1 -1
  330. package/lib/design-tokens/ts/tokens/functional/components/pricing-options/colors.d.ts +1 -1
  331. package/lib/design-tokens/ts/tokens/functional/components/pricing-options/colors.js +1 -1
  332. package/lib/design-tokens/ts/tokens/functional/components/pricing-options/pricing-options.d.ts +1 -1
  333. package/lib/design-tokens/ts/tokens/functional/components/pricing-options/pricing-options.js +1 -1
  334. package/lib/design-tokens/ts/tokens/functional/components/prose/base.d.ts +1 -1
  335. package/lib/design-tokens/ts/tokens/functional/components/prose/base.js +1 -1
  336. package/lib/design-tokens/ts/tokens/functional/components/river/base.d.ts +1 -1
  337. package/lib/design-tokens/ts/tokens/functional/components/river/base.js +1 -1
  338. package/lib/design-tokens/ts/tokens/functional/components/river/river.d.ts +1 -1
  339. package/lib/design-tokens/ts/tokens/functional/components/river/river.js +1 -1
  340. package/lib/design-tokens/ts/tokens/functional/components/section/section.d.ts +1 -1
  341. package/lib/design-tokens/ts/tokens/functional/components/section/section.js +1 -1
  342. package/lib/design-tokens/ts/tokens/functional/components/statistic/base.d.ts +1 -1
  343. package/lib/design-tokens/ts/tokens/functional/components/statistic/base.js +1 -1
  344. package/lib/design-tokens/ts/tokens/functional/components/sub-nav/base.d.ts +1 -1
  345. package/lib/design-tokens/ts/tokens/functional/components/sub-nav/base.js +1 -1
  346. package/lib/design-tokens/ts/tokens/functional/components/tabs/base.d.ts +1 -1
  347. package/lib/design-tokens/ts/tokens/functional/components/tabs/base.js +1 -1
  348. package/lib/design-tokens/ts/tokens/functional/components/tabs/colors.d.ts +1 -1
  349. package/lib/design-tokens/ts/tokens/functional/components/tabs/colors.js +1 -1
  350. package/lib/design-tokens/ts/tokens/functional/components/testimonial/base.d.ts +1 -1
  351. package/lib/design-tokens/ts/tokens/functional/components/testimonial/base.js +1 -1
  352. package/lib/design-tokens/ts/tokens/functional/components/testimonial/colors.d.ts +1 -1
  353. package/lib/design-tokens/ts/tokens/functional/components/testimonial/colors.js +1 -1
  354. package/lib/design-tokens/ts/tokens/functional/components/text-cursor-animation/colors.d.ts +1 -1
  355. package/lib/design-tokens/ts/tokens/functional/components/text-cursor-animation/colors.js +1 -1
  356. package/lib/design-tokens/ts/tokens/functional/components/timeline/base.d.ts +1 -1
  357. package/lib/design-tokens/ts/tokens/functional/components/timeline/base.js +1 -1
  358. package/lib/design-tokens/ts/tokens/functional/components/timeline/colors.d.ts +1 -1
  359. package/lib/design-tokens/ts/tokens/functional/components/timeline/colors.js +1 -1
  360. package/lib/design-tokens/ts/tokens/functional/components/token/colors.d.ts +1 -1
  361. package/lib/design-tokens/ts/tokens/functional/components/token/colors.js +1 -1
  362. package/lib/design-tokens/ts/tokens/functional/components/tooltip/colors.d.ts +1 -1
  363. package/lib/design-tokens/ts/tokens/functional/components/tooltip/colors.js +1 -1
  364. package/lib/design-tokens/ts/tokens/functional/components/video-player/base.d.ts +1 -1
  365. package/lib/design-tokens/ts/tokens/functional/components/video-player/base.js +1 -1
  366. package/lib/design-tokens/ts/tokens/functional/size/border.d.ts +1 -1
  367. package/lib/design-tokens/ts/tokens/functional/size/border.js +1 -1
  368. package/lib/design-tokens/ts/tokens/functional/size/breakpoints.d.ts +1 -1
  369. package/lib/design-tokens/ts/tokens/functional/size/breakpoints.js +1 -1
  370. package/lib/design-tokens/ts/tokens/functional/size/size-coarse.d.ts +1 -1
  371. package/lib/design-tokens/ts/tokens/functional/size/size-coarse.js +1 -1
  372. package/lib/design-tokens/ts/tokens/functional/size/size-fine.d.ts +1 -1
  373. package/lib/design-tokens/ts/tokens/functional/size/size-fine.js +1 -1
  374. package/lib/design-tokens/ts/tokens/functional/size/size.d.ts +1 -1
  375. package/lib/design-tokens/ts/tokens/functional/size/size.js +1 -1
  376. package/lib/design-tokens/ts/tokens/functional/size/viewport.d.ts +1 -1
  377. package/lib/design-tokens/ts/tokens/functional/size/viewport.js +1 -1
  378. package/lib/design-tokens/ts/tokens/functional/typography/typography-responsive.d.ts +1 -1
  379. package/lib/design-tokens/ts/tokens/functional/typography/typography-responsive.js +1 -1
  380. package/lib/design-tokens/ts/tokens/functional/typography/typography.d.ts +1 -1
  381. package/lib/design-tokens/ts/tokens/functional/typography/typography.js +1 -1
  382. package/lib/index.d.ts +1 -0
  383. package/lib/index.js +1 -1
  384. package/llms.txt +3 -2
  385. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NavList.js","names":[],"sources":["../../src/NavList/NavList.tsx"],"sourcesContent":["import React, {\n Children,\n createContext,\n forwardRef,\n isValidElement,\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useRef,\n useState,\n type AriaAttributes,\n type MutableRefObject,\n type PropsWithChildren,\n type ReactElement,\n type ReactNode,\n type Ref,\n} from 'react'\n\nimport {clsx} from 'clsx'\nimport {TriangleDownIcon, type Icon} from '@primer/octicons-react'\nimport type {BaseProps} from '../component-helpers'\nimport {useId} from '../hooks/useId'\nimport '@primer/brand-primitives/lib/design-tokens/css/tokens/functional/components/nav-list/colors-with-modes.css'\n\n/** * Main stylesheet (as a CSS Module) */\nimport styles from './NavList.module.css'\n\nconst testIds = {\n root: 'NavList',\n get list() {\n return `${this.root}-list`\n },\n get item() {\n return `${this.root}-item`\n },\n get link() {\n return `${this.root}-link`\n },\n get leadingVisual() {\n return `${this.root}-leading-visual`\n },\n get trailingVisual() {\n return `${this.root}-trailing-visual`\n },\n get subNav() {\n return `${this.root}-sub-nav`\n },\n get group() {\n return `${this.root}-group`\n },\n get groupTitle() {\n return `${this.root}-group-title`\n },\n get groupList() {\n return `${this.root}-group-list`\n },\n get toggle() {\n return `${this.root}-toggle`\n },\n}\n\nexport type NavListRootProps = {\n /**\n * Accessible label for the navigation landmark.\n */\n 'aria-label': string\n /**\n * ID of an element that labels the navigation landmark.\n */\n 'aria-labelledby'?: string\n children: ReactNode\n 'data-testid'?: string\n} & BaseProps<HTMLElement> &\n Omit<React.HTMLAttributes<HTMLElement>, 'aria-label' | 'aria-labelledby'>\n\ntype NavListLevel = 1 | 2 | 3 | 4 | 5\n\nconst MaxNavListLevel = 5\nconst NavListLevelContext = createContext<NavListLevel>(1)\nconst NavListSubNavContext = createContext<{\n expanded: boolean\n labelledBy?: string\n level: NavListLevel\n}>({\n expanded: true,\n level: 2,\n})\n\nconst NavListRoot = forwardRef<HTMLElement, NavListRootProps>(\n (\n {children, className, 'aria-label': ariaLabel, 'aria-labelledby': ariaLabelledBy, 'data-testid': testId, ...rest},\n ref,\n ) => {\n const childrenArray = useMemo(() => Children.toArray(children), [children])\n const hasTopLevelSubNav = useMemo(() => childrenArray.some(childHasDirectSubNav), [childrenArray])\n const hasTopLevelGroup = useMemo(() => childrenArray.some(childIsNavListGroupElement), [childrenArray])\n const rootLevel = hasTopLevelSubNav ? 1 : 2\n const hasFlatRootList = !hasTopLevelSubNav && !hasTopLevelGroup\n\n return (\n <nav\n ref={ref}\n className={clsx(styles.NavList, className)}\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledBy}\n data-testid={testId || testIds.root}\n {...rest}\n >\n <NavListLevelContext.Provider value={rootLevel}>\n <ul\n className={clsx(styles.NavList__list, hasFlatRootList && styles['NavList__list--flat'])}\n data-testid={testIds.list}\n >\n {children}\n </ul>\n </NavListLevelContext.Provider>\n </nav>\n )\n },\n)\n\ntype Visual = ReactElement | React.ElementType | Icon\ntype NavListItemAs = 'a' | 'button'\n\ntype NavListItemBaseProps = {\n /**\n * Leading visual rendered before the item label.\n */\n leadingVisual?: Visual\n /**\n * Trailing visual rendered after the item label.\n */\n trailingVisual?: Visual\n /**\n * Whether nested items should be expanded by default.\n */\n defaultExpanded?: boolean\n /**\n * Controls the nested item expanded state.\n */\n expanded?: boolean\n /**\n * Called when a nested item is expanded or collapsed.\n */\n onExpandedChange?: (expanded: boolean) => void\n /**\n * Marks the item as disabled. Disabled link items receive `aria-disabled`.\n */\n disabled?: boolean\n 'data-testid'?: string\n}\n\nexport type NavListItemProps<C extends NavListItemAs = 'a'> = {\n as?: C\n} & NavListItemBaseProps &\n PropsWithChildren<BaseProps<HTMLElement>> &\n Omit<React.ComponentPropsWithoutRef<C>, keyof NavListItemBaseProps | keyof BaseProps<HTMLElement> | 'as' | 'children'>\n\ntype NavListSubNavElement = ReactElement<NavListSubNavProps>\n\nconst NavListItem = forwardRef(\n (\n {\n as,\n children,\n className,\n defaultExpanded = false,\n disabled = false,\n expanded,\n leadingVisual,\n onClick,\n onExpandedChange,\n trailingVisual,\n 'aria-current': ariaCurrent,\n 'data-testid': testId,\n ...rest\n }: NavListItemProps<NavListItemAs>,\n ref: Ref<HTMLElement>,\n ) => {\n const Component = (as || 'a') as React.ElementType\n const level = useContext(NavListLevelContext)\n const subNavId = useId()\n const accordionButtonId = useId()\n const childrenArray = useMemo(() => Children.toArray(children), [children])\n const subNavChildren = useMemo(() => childrenArray.filter(isNavListSubNavElement), [childrenArray])\n const subNav = useMemo(() => childrenArray.find(isNavListSubNavElement), [childrenArray])\n const navListGroupChildren = useMemo(() => childrenArray.filter(childHasNavListGroupElement), [childrenArray])\n const labelChildren = useMemo(\n () => (subNav ? childrenArray.filter(child => child !== subNav) : childrenArray),\n [childrenArray, subNav],\n )\n const hasLabelContent = labelChildren.length > 0\n const hasSubNav = Boolean(subNav)\n const canExpand = level < MaxNavListLevel\n const isLeafItem = !hasSubNav\n const controlledSubNavId = subNav?.props.id ?? subNavId\n const hasCurrentSubNavItem = useMemo(() => hasCurrentDescendant(subNav?.props.children), [subNav?.props.children])\n const isControlled = expanded !== undefined\n const [uncontrolledExpanded, setUncontrolledExpanded] = useState(defaultExpanded || hasCurrentSubNavItem)\n const isExpanded = Boolean(isControlled ? expanded : uncontrolledExpanded)\n const {\n href,\n id: accordionButtonIdProp,\n ...accordionButtonProps\n } = rest as React.ButtonHTMLAttributes<HTMLButtonElement> & {\n href?: string\n }\n const controlledAccordionButtonId = accordionButtonIdProp ?? accordionButtonId\n const itemOnClick = onClick as React.MouseEventHandler<HTMLElement> | undefined\n const invalidMessage = useMemo(() => {\n if (navListGroupChildren.length > 0) {\n return 'NavList.Item: NavList.Group is not supported as a child. Use NavList.SubNav for nested disclosure. NavList.Item will not be rendered.'\n }\n\n if (hasSubNav && !canExpand) {\n return 'NavList.Item: NavList supports up to 5 levels. Level 5 items cannot contain NavList.SubNav. NavList.Item will not be rendered.'\n }\n\n if (subNavChildren.length > 1) {\n return 'NavList.Item: Only one NavList.SubNav child is supported. NavList.Item will not be rendered.'\n }\n\n if (hasSubNav && !hasLabelContent) {\n return 'NavList.Item: A label is required when using NavList.SubNav. NavList.Item will not be rendered.'\n }\n\n if (hasSubNav && (href !== undefined || as !== undefined)) {\n return 'NavList.Item: `href` and `as` are not supported when using NavList.SubNav because expandable items render as buttons. NavList.Item will not be rendered.'\n }\n }, [as, canExpand, hasLabelContent, hasSubNav, href, navListGroupChildren.length, subNavChildren.length])\n\n useEffect(() => {\n if (hasCurrentSubNavItem && !isControlled) {\n setUncontrolledExpanded(true)\n }\n }, [hasCurrentSubNavItem, isControlled])\n\n const setExpanded = useCallback(\n (value: boolean) => {\n if (!isControlled) {\n setUncontrolledExpanded(value)\n }\n onExpandedChange?.(value)\n },\n [isControlled, onExpandedChange],\n )\n\n const toggleExpanded = useCallback(() => {\n setExpanded(!isExpanded)\n }, [isExpanded, setExpanded])\n\n const handleClick = useCallback(\n (event: React.MouseEvent<HTMLElement>) => {\n if (disabled) {\n event.preventDefault()\n return\n }\n\n itemOnClick?.(event)\n },\n [disabled, itemOnClick],\n )\n\n const setAccordionButtonRef = useCallback(\n (node: HTMLButtonElement | null) => {\n assignRef(ref, node)\n },\n [ref],\n )\n\n const handleAccordionClick = useCallback(\n (event: React.MouseEvent<HTMLButtonElement>) => {\n if (disabled) {\n event.preventDefault()\n return\n }\n\n itemOnClick?.(event)\n\n if (!event.defaultPrevented) {\n toggleExpanded()\n }\n },\n [disabled, itemOnClick, toggleExpanded],\n )\n\n if (invalidMessage) {\n warnNavListValidation(invalidMessage)\n return null\n }\n\n const labelArea = (\n <span className={styles.NavList__labelArea}>\n {renderVisual(leadingVisual, styles.NavList__leadingVisual, testIds.leadingVisual)}\n <span className={styles.NavList__label}>{labelChildren}</span>\n {renderVisual(trailingVisual, styles.NavList__trailingVisual, testIds.trailingVisual)}\n </span>\n )\n\n return (\n <li\n className={clsx(\n styles.NavList__item,\n styles[`NavList__item--level-${level}`],\n isLeafItem && styles['NavList__item--leaf'],\n hasSubNav && isExpanded && styles['NavList__item--expanded'],\n hasCurrentSubNavItem && styles['NavList__item--has-current-descendant'],\n )}\n data-testid={testId || testIds.item}\n >\n <div className={styles.NavList__itemContent}>\n {hasSubNav && canExpand ? (\n <button\n ref={setAccordionButtonRef}\n id={controlledAccordionButtonId}\n type=\"button\"\n className={clsx(\n styles.NavList__link,\n styles.NavList__accordionButton,\n disabled && styles['NavList__link--disabled'],\n className,\n )}\n aria-expanded={isExpanded ? 'true' : 'false'}\n aria-controls={controlledSubNavId}\n data-testid={testIds.toggle}\n {...accordionButtonProps}\n disabled={disabled}\n onClick={handleAccordionClick}\n >\n <TriangleDownIcon className={styles.NavList__toggleIcon} aria-hidden=\"true\" />\n {labelArea}\n </button>\n ) : (\n <Component\n ref={ref}\n className={clsx(styles.NavList__link, disabled && styles['NavList__link--disabled'], className)}\n aria-current={ariaCurrent}\n aria-disabled={disabled || undefined}\n data-testid={testIds.link}\n onClick={handleClick}\n {...rest}\n >\n {labelArea}\n </Component>\n )}\n </div>\n\n {subNav ? (\n <NavListSubNavContext.Provider\n value={{expanded: isExpanded, labelledBy: controlledAccordionButtonId, level: (level + 1) as NavListLevel}}\n >\n {React.cloneElement(subNav, {\n id: controlledSubNavId,\n })}\n </NavListSubNavContext.Provider>\n ) : null}\n </li>\n )\n },\n) as <C extends NavListItemAs = 'a'>(props: NavListItemProps<C> & {ref?: Ref<HTMLElement>}) => ReactElement | null\n\nexport type NavListSubNavProps = {\n children: ReactNode\n 'data-testid'?: string\n} & BaseProps<HTMLUListElement> &\n React.HTMLAttributes<HTMLUListElement>\n\nconst NavListSubNav = forwardRef<HTMLUListElement, NavListSubNavProps>(\n ({children, className, 'aria-labelledby': ariaLabelledBy, 'data-testid': testId, ...rest}, ref) => {\n const {expanded, labelledBy, level} = useContext(NavListSubNavContext)\n const subNavRef = useRef<HTMLUListElement | null>(null)\n\n const setSubNavHeight = useCallback((subNav: HTMLUListElement) => {\n subNav.style.setProperty('--brand-NavList-subNav-height', `${subNav.scrollHeight}px`)\n }, [])\n\n const setSubNavAndAncestorHeights = useCallback(() => {\n let subNav = subNavRef.current\n\n while (subNav) {\n setSubNavHeight(subNav)\n subNav = subNav.parentElement?.closest<HTMLUListElement>(`.${styles.NavList__subNav}`) ?? null\n }\n }, [setSubNavHeight])\n\n const setSubNavRef = useCallback(\n (node: HTMLUListElement | null) => {\n subNavRef.current = node\n assignRef(ref, node)\n },\n [ref],\n )\n\n useEffect(() => {\n setSubNavAndAncestorHeights()\n }, [children, expanded, setSubNavAndAncestorHeights])\n\n useEffect(() => {\n subNavRef.current?.toggleAttribute('inert', !expanded)\n }, [expanded])\n\n useEffect(() => {\n const subNav = subNavRef.current\n\n if (!subNav || typeof ResizeObserver === 'undefined') {\n return\n }\n\n const resizeObserver = new ResizeObserver(setSubNavAndAncestorHeights)\n resizeObserver.observe(subNav)\n\n return () => {\n resizeObserver.disconnect()\n }\n }, [setSubNavAndAncestorHeights])\n\n return (\n <ul\n ref={setSubNavRef}\n className={clsx(styles.NavList__subNav, expanded && styles['NavList__subNav--expanded'], className)}\n aria-labelledby={ariaLabelledBy ?? labelledBy}\n {...rest}\n aria-hidden={expanded ? undefined : 'true'}\n data-testid={testId || testIds.subNav}\n >\n <NavListLevelContext.Provider value={level}>{children}</NavListLevelContext.Provider>\n </ul>\n )\n },\n)\n\nexport type NavListGroupProps = {\n /**\n * Heading text for the group.\n */\n title?: ReactNode\n children: ReactNode\n 'data-testid'?: string\n} & BaseProps<HTMLLIElement> &\n Omit<React.LiHTMLAttributes<HTMLLIElement>, 'title'>\n\nconst NavListGroup = forwardRef<HTMLLIElement, NavListGroupProps>(\n ({title, children, className, 'data-testid': testId, ...rest}, ref) => {\n const titleId = useId()\n const validChildren = useMemo(() => {\n const getValidChildren = (childrenToValidate: ReactNode): ReactNode[] =>\n Children.toArray(childrenToValidate).flatMap(child => {\n if (isNavListItemElement(child)) {\n return [child]\n }\n\n if (isValidElement(child) && child.type === React.Fragment) {\n return getValidChildren((child as ElementWithChildren).props.children)\n }\n\n return []\n })\n\n return getValidChildren(children)\n }, [children])\n const hasInvalidChild = useMemo(() => {\n const containsInvalidChild = (childrenToValidate: ReactNode): boolean =>\n Children.toArray(childrenToValidate).some(child => {\n if (isNavListItemElement(child)) {\n return false\n }\n\n if (isValidElement(child) && child.type === React.Fragment) {\n return containsInvalidChild((child as ElementWithChildren).props.children)\n }\n\n return true\n })\n\n return containsInvalidChild(children)\n }, [children])\n\n if (hasInvalidChild) {\n warnNavListValidation(\n 'NavList.Group: Only NavList.Item children are supported. Invalid children will not be rendered. Use NavList.SubNav as a child of NavList.Item for nested disclosure.',\n )\n }\n\n return (\n <li ref={ref} className={clsx(styles.NavList__group, className)} data-testid={testId || testIds.group} {...rest}>\n {title ? (\n <h3 id={titleId} className={styles.NavList__groupTitle} data-testid={testIds.groupTitle}>\n {title}\n </h3>\n ) : null}\n <ul\n className={styles.NavList__groupList}\n aria-labelledby={title ? titleId : undefined}\n data-testid={testIds.groupList}\n >\n <NavListLevelContext.Provider value={2}>{validChildren}</NavListLevelContext.Provider>\n </ul>\n </li>\n )\n },\n)\n\n/**\n * Use NavList to render vertical navigation links with groups and expandable nested lists.\n * @see https://primer.style/brand/components/NavList\n */\nexport const NavList = Object.assign(NavListRoot, {\n Item: NavListItem,\n SubNav: NavListSubNav,\n Group: NavListGroup,\n testIds,\n})\n\ntype ElementWithChildren = ReactElement<{children?: ReactNode}>\ntype ElementWithCurrent = ReactElement<{children?: ReactNode; 'aria-current'?: AriaAttributes['aria-current']}>\n\nfunction isNavListSubNavElement(node: ReactNode): node is NavListSubNavElement {\n return isValidElement<NavListSubNavProps>(node) && node.type === NavListSubNav\n}\n\nfunction isNavListItemElement(node: ReactNode): node is ReactElement<NavListItemProps> {\n return isValidElement<NavListItemProps>(node) && node.type === NavListItem\n}\n\nfunction isNavListGroupElement(node: ReactNode): node is ReactElement<NavListGroupProps> {\n return isValidElement<NavListGroupProps>(node) && node.type === NavListGroup\n}\n\nfunction isCurrentValue(value: AriaAttributes['aria-current']) {\n return Boolean(value) && value !== 'false'\n}\n\nfunction hasCurrentDescendant(node: ReactNode): boolean {\n return Children.toArray(node).some(child => {\n if (!isValidElement(child)) return false\n\n const currentChild = child as ElementWithCurrent\n if (isCurrentValue(currentChild.props['aria-current'])) return true\n\n return hasCurrentDescendant((child as ElementWithChildren).props.children)\n })\n}\n\nfunction assignRef<T>(ref: Ref<T> | undefined, value: T | null) {\n if (!ref) return\n\n if (typeof ref === 'function') {\n ref(value)\n return\n }\n\n ;(ref as MutableRefObject<T | null>).current = value\n}\n\nfunction childHasDirectSubNav(node: ReactNode): boolean {\n if (!isValidElement(node)) return false\n\n if (node.type === React.Fragment) {\n return Children.toArray((node as ElementWithChildren).props.children).some(childHasDirectSubNav)\n }\n\n return Children.toArray((node as ElementWithChildren).props.children).some(isNavListSubNavElement)\n}\n\nfunction childIsNavListGroupElement(node: ReactNode): boolean {\n if (!isValidElement(node)) return false\n\n if (node.type === React.Fragment) {\n return Children.toArray((node as ElementWithChildren).props.children).some(childIsNavListGroupElement)\n }\n\n return isNavListGroupElement(node)\n}\n\nfunction childHasNavListGroupElement(node: ReactNode): boolean {\n if (!isValidElement(node)) return false\n\n if (node.type === React.Fragment) {\n return Children.toArray((node as ElementWithChildren).props.children).some(childHasNavListGroupElement)\n }\n\n return isNavListGroupElement(node)\n}\n\nfunction renderVisual(visual: Visual | undefined, className: string, testId: string) {\n if (!visual) return null\n\n const visualElement = isValidElement(visual) ? visual : React.createElement(visual)\n\n if (!isValidElement<{className?: string; ['aria-hidden']?: string; focusable?: string}>(visualElement)) return null\n\n return (\n <span className={className} data-testid={testId}>\n {React.cloneElement(visualElement, {\n className: visualElement.props.className,\n 'aria-hidden': 'true',\n focusable: 'false',\n })}\n </span>\n )\n}\n\nfunction warnNavListValidation(message: string) {\n if (process.env.NODE_ENV === 'development' || process.env.NODE_ENV === 'test') {\n // eslint-disable-next-line no-console\n console.warn(message)\n }\n}\n"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ .Primer_Brand__NavList-module__NavList___tuR_C{box-sizing:border-box;font-family:var(--brand-fontStack-sansSerif);color:var(--brand-color-text-default);width:100%;padding-inline-start:var(--base-size-16)}.Primer_Brand__NavList-module__NavList__list___gwquf,.Primer_Brand__NavList-module__NavList__subNav___Q4xI7,.Primer_Brand__NavList-module__NavList__groupList___Mtk4a{margin:0;padding:0;list-style:none}.Primer_Brand__NavList-module__NavList__list___gwquf{flex-direction:column;gap:0;display:flex}.Primer_Brand__NavList-module__NavList__list--flat___xvRQl,.Primer_Brand__NavList-module__NavList__groupList___Mtk4a{--brand-NavList-alignedLabel-paddingInlineStart:var(--base-size-2)}.Primer_Brand__NavList-module__NavList__groupList___Mtk4a{--brand-NavList-item-paddingInlineStart-level-2:var(--base-size-2)}.Primer_Brand__NavList-module__NavList__item___HTVCC,.Primer_Brand__NavList-module__NavList__group___Jnwkd{position:relative}.Primer_Brand__NavList-module__NavList__list___gwquf:not(.Primer_Brand__NavList-module__NavList__list--flat___xvRQl)>.Primer_Brand__NavList-module__NavList__item___HTVCC+.Primer_Brand__NavList-module__NavList__item___HTVCC,.Primer_Brand__NavList-module__NavList__list___gwquf:not(.Primer_Brand__NavList-module__NavList__list--flat___xvRQl)>.Primer_Brand__NavList-module__NavList__item___HTVCC+.Primer_Brand__NavList-module__NavList__group___Jnwkd,.Primer_Brand__NavList-module__NavList__list___gwquf:not(.Primer_Brand__NavList-module__NavList__list--flat___xvRQl)>.Primer_Brand__NavList-module__NavList__group___Jnwkd+.Primer_Brand__NavList-module__NavList__item___HTVCC,.Primer_Brand__NavList-module__NavList__list___gwquf:not(.Primer_Brand__NavList-module__NavList__list--flat___xvRQl)>.Primer_Brand__NavList-module__NavList__group___Jnwkd+.Primer_Brand__NavList-module__NavList__group___Jnwkd{background-image:repeating-linear-gradient(to right, var(--brand-color-border-muted) 0 var(--base-size-2), transparent var(--base-size-2) var(--base-size-4));background-repeat:no-repeat;background-size:100% var(--brand-borderWidth-thin);background-position:0 0}.Primer_Brand__NavList-module__NavList__groupTitle___r47_e{padding:var(--base-size-24) var(--base-size-16) var(--base-size-16);color:var(--brand-color-text-default);font-size:var(--brand-text-size-200);font-weight:var(--brand-text-weight-500);line-height:var(--brand-text-lineHeight-200);letter-spacing:var(--brand-text-letterSpacing-200);margin:0}.Primer_Brand__NavList-module__NavList__groupList___Mtk4a{flex-direction:column;gap:0;padding-block-end:var(--base-size-16);display:flex}.Primer_Brand__NavList-module__NavList__itemContent___bYaVR{align-items:center;gap:var(--base-size-8);min-width:0;display:flex}.Primer_Brand__NavList-module__NavList__link___k0zio{align-items:center;gap:var(--base-size-8);border-radius:var(--brand-borderRadius-medium);min-width:0;color:var(--brand-color-text-muted);font-size:var(--brand-text-size-100);font-weight:var(--brand-text-weight-500);line-height:var(--brand-text-lineHeight-100);letter-spacing:var(--brand-text-letterSpacing-100);transition:background-color var(--brand-animation-duration-fast) var(--brand-animation-easing-default), color var(--brand-animation-duration-fast) var(--brand-animation-easing-default);flex:auto;padding:0;display:flex;position:relative;-webkit-text-decoration:none!important;text-decoration:none!important}.Primer_Brand__NavList-module__NavList__accordionButton___F5tOc{box-sizing:border-box;width:100%;color:var(--brand-color-text-muted);cursor:pointer;text-align:start;background:0 0;border:0;font-family:inherit;position:relative}.Primer_Brand__NavList-module__NavList__link___k0zio:hover{color:var(--brand-color-text-default);background-color:var(--brand-color-canvas-subtle)}.Primer_Brand__NavList-module__NavList__accordionButton___F5tOc:hover{color:var(--brand-color-text-default);background-color:#0000}.Primer_Brand__NavList-module__NavList__item___HTVCC:not(.Primer_Brand__NavList-module__NavList__item--level-1___gWx1n)>.Primer_Brand__NavList-module__NavList__itemContent___bYaVR .Primer_Brand__NavList-module__NavList__accordionButton___F5tOc .Primer_Brand__NavList-module__NavList__labelArea___c4ORu{min-height:var(--base-size-32);order:2;padding-inline-start:var(--base-size-6)}.Primer_Brand__NavList-module__NavList__item___HTVCC:not(.Primer_Brand__NavList-module__NavList__item--level-1___gWx1n)>.Primer_Brand__NavList-module__NavList__itemContent___bYaVR .Primer_Brand__NavList-module__NavList__accordionButton___F5tOc:not(:disabled):hover .Primer_Brand__NavList-module__NavList__labelArea___c4ORu{background-color:var(--brand-color-canvas-subtle)}.Primer_Brand__NavList-module__NavList__item--has-current-descendant___JG7dQ>.Primer_Brand__NavList-module__NavList__itemContent___bYaVR .Primer_Brand__NavList-module__NavList__accordionButton___F5tOc:not(:disabled){color:var(--brand-color-text-default)}.Primer_Brand__NavList-module__NavList__item___HTVCC:not(.Primer_Brand__NavList-module__NavList__item--level-1___gWx1n).Primer_Brand__NavList-module__NavList__item--has-current-descendant___JG7dQ>.Primer_Brand__NavList-module__NavList__itemContent___bYaVR .Primer_Brand__NavList-module__NavList__accordionButton___F5tOc[aria-expanded=false]:not(:disabled) .Primer_Brand__NavList-module__NavList__labelArea___c4ORu{background-color:var(--brand-color-canvas-subtle)}.Primer_Brand__NavList-module__NavList__link___k0zio:focus-visible,.Primer_Brand__NavList-module__NavList__accordionButton___F5tOc:focus-visible{outline:var(--brand-borderWidth-thick) solid var(--brand-color-focus);outline-offset:var(--base-size-2)}.Primer_Brand__NavList-module__NavList__subNav___Q4xI7 .Primer_Brand__NavList-module__NavList__link___k0zio:focus-visible,.Primer_Brand__NavList-module__NavList__subNav___Q4xI7 .Primer_Brand__NavList-module__NavList__accordionButton___F5tOc:focus-visible{outline-offset:calc(-1 * var(--base-size-2))}.Primer_Brand__NavList-module__NavList__link___k0zio[aria-current]:not([aria-current=false]){color:var(--brand-color-text-default);background-color:var(--brand-color-canvas-subtle);padding-inline-start:var(--base-size-6)}.Primer_Brand__NavList-module__NavList__item--leaf___YFNSZ:not(.Primer_Brand__NavList-module__NavList__item--level-1___gWx1n) .Primer_Brand__NavList-module__NavList__link___k0zio[aria-current]:not([aria-current=false]):before{content:"";inset-block:var(--base-size-8);width:var(--base-size-4);border-radius:var(--base-size-2);background-color:var(--brand-NavList-activeIndicator-color);position:absolute;inset-inline-start:0}.Primer_Brand__NavList-module__NavList__item--has-current-descendant___JG7dQ>.Primer_Brand__NavList-module__NavList__itemContent___bYaVR .Primer_Brand__NavList-module__NavList__accordionButton___F5tOc[aria-expanded=false]:not(:disabled):before{content:"";block-size:var(--base-size-16);width:var(--base-size-4);border-radius:var(--base-size-2);background-color:var(--brand-NavList-activeIndicator-color);z-index:1;position:absolute;inset-block-start:50%;transform:translateY(-50%)}.Primer_Brand__NavList-module__NavList__item--level-1___gWx1n.Primer_Brand__NavList-module__NavList__item--has-current-descendant___JG7dQ>.Primer_Brand__NavList-module__NavList__itemContent___bYaVR .Primer_Brand__NavList-module__NavList__accordionButton___F5tOc[aria-expanded=false]:before{inset-inline-start:calc(-1 * var(--base-size-8))}.Primer_Brand__NavList-module__NavList__item___HTVCC:not(.Primer_Brand__NavList-module__NavList__item--level-1___gWx1n).Primer_Brand__NavList-module__NavList__item--has-current-descendant___JG7dQ>.Primer_Brand__NavList-module__NavList__itemContent___bYaVR .Primer_Brand__NavList-module__NavList__accordionButton___F5tOc[aria-expanded=false]:before{inset-inline-start:var(--base-size-4)}.Primer_Brand__NavList-module__NavList__item___HTVCC:not(.Primer_Brand__NavList-module__NavList__item--level-1___gWx1n).Primer_Brand__NavList-module__NavList__item--has-current-descendant___JG7dQ>.Primer_Brand__NavList-module__NavList__itemContent___bYaVR .Primer_Brand__NavList-module__NavList__accordionButton___F5tOc[aria-expanded=false]{padding-inline-start:var(--base-size-12)}.Primer_Brand__NavList-module__NavList__item___HTVCC:not(.Primer_Brand__NavList-module__NavList__item--level-1___gWx1n).Primer_Brand__NavList-module__NavList__item--has-current-descendant___JG7dQ>.Primer_Brand__NavList-module__NavList__itemContent___bYaVR .Primer_Brand__NavList-module__NavList__accordionButton___F5tOc[aria-expanded=false] .Primer_Brand__NavList-module__NavList__labelArea___c4ORu{padding-inline-start:var(--base-size-2)}.Primer_Brand__NavList-module__NavList__item--level-1___gWx1n>.Primer_Brand__NavList-module__NavList__itemContent___bYaVR .Primer_Brand__NavList-module__NavList__link___k0zio[aria-current]:not([aria-current=false]){padding-inline-start:0}.Primer_Brand__NavList-module__NavList__link--disabled___Eg304{color:var(--brand-color-text-disabled);pointer-events:none}.Primer_Brand__NavList-module__NavList__accordionButton___F5tOc:disabled{color:var(--brand-color-text-disabled);cursor:not-allowed}.Primer_Brand__NavList-module__NavList__label___ogBmt{word-break:break-word;min-width:0}.Primer_Brand__NavList-module__NavList__labelArea___c4ORu{align-items:center;gap:var(--base-size-8);border-radius:var(--brand-borderRadius-small);flex:auto;min-width:0;display:flex}.Primer_Brand__NavList-module__NavList__leadingVisual___KqRaq,.Primer_Brand__NavList-module__NavList__trailingVisual___BrZXI{color:inherit;flex:none;display:inline-flex}.Primer_Brand__NavList-module__NavList__trailingVisual___BrZXI{margin-inline-start:auto;margin-inline-end:var(--base-size-6)}.Primer_Brand__NavList-module__NavList__toggleIcon___nlJbF{transform-origin:50%;transition:transform var(--brand-animation-duration-fast) var(--brand-animation-easing-glide);flex:none}.Primer_Brand__NavList-module__NavList__accordionButton___F5tOc[aria-expanded=true] .Primer_Brand__NavList-module__NavList__toggleIcon___nlJbF{transform:rotate(-180deg)}.Primer_Brand__NavList-module__NavList__subNav___Q4xI7{opacity:0;max-height:0;transform:translateY(calc(-1 * var(--base-size-8)));visibility:hidden;transition:max-height var(--brand-animation-duration-fast) var(--brand-animation-easing-glide), opacity var(--brand-animation-duration-fast) var(--brand-animation-easing-glide), transform var(--brand-animation-duration-fast) var(--brand-animation-easing-glide), visibility 0s linear var(--brand-animation-duration-fast);flex-direction:column;gap:0;margin:0;padding:0;display:flex;overflow:hidden}.Primer_Brand__NavList-module__NavList__subNav--expanded___ap3X8{max-height:none;max-height:var(--brand-NavList-subNav-height,none);opacity:1;visibility:visible;transition:max-height var(--brand-animation-duration-fast) var(--brand-animation-easing-glide), opacity var(--brand-animation-duration-fast) var(--brand-animation-easing-glide), transform var(--brand-animation-duration-fast) var(--brand-animation-easing-glide), visibility 0s linear 0s;transform:translateY(0)}.Primer_Brand__NavList-module__NavList__subNav___Q4xI7[aria-hidden=true] .Primer_Brand__NavList-module__NavList__subNav___Q4xI7{visibility:hidden}.Primer_Brand__NavList-module__NavList__item--level-1___gWx1n>.Primer_Brand__NavList-module__NavList__itemContent___bYaVR{padding:var(--base-size-24) var(--base-size-16) var(--base-size-16)}.Primer_Brand__NavList-module__NavList__item--level-1___gWx1n.Primer_Brand__NavList-module__NavList__item--expanded___pH_PL{padding-block-end:var(--base-size-16)}.Primer_Brand__NavList-module__NavList__item--level-1___gWx1n>.Primer_Brand__NavList-module__NavList__itemContent___bYaVR .Primer_Brand__NavList-module__NavList__link___k0zio{font-size:var(--brand-text-size-200);font-weight:var(--brand-text-weight-500);line-height:var(--brand-text-lineHeight-200);order:1}.Primer_Brand__NavList-module__NavList__item--level-1___gWx1n>.Primer_Brand__NavList-module__NavList__itemContent___bYaVR .Primer_Brand__NavList-module__NavList__accordionButton___F5tOc{color:var(--brand-color-text-default);min-height:var(--base-size-32);margin-block:calc(-1 * var(--base-size-8));border-radius:var(--brand-borderRadius-small);padding-inline-start:0;padding-inline-end:var(--base-size-6)}.Primer_Brand__NavList-module__NavList__item--level-1___gWx1n>.Primer_Brand__NavList-module__NavList__itemContent___bYaVR .Primer_Brand__NavList-module__NavList__accordionButton___F5tOc>*{z-index:1;position:relative}.Primer_Brand__NavList-module__NavList__item--level-1___gWx1n>.Primer_Brand__NavList-module__NavList__itemContent___bYaVR .Primer_Brand__NavList-module__NavList__accordionButton___F5tOc:not(:disabled):hover:after,.Primer_Brand__NavList-module__NavList__item--level-1___gWx1n>.Primer_Brand__NavList-module__NavList__itemContent___bYaVR .Primer_Brand__NavList-module__NavList__accordionButton___F5tOc:not(:disabled):active:after,.Primer_Brand__NavList-module__NavList__item--level-1___gWx1n.Primer_Brand__NavList-module__NavList__item--has-current-descendant___JG7dQ>.Primer_Brand__NavList-module__NavList__itemContent___bYaVR .Primer_Brand__NavList-module__NavList__accordionButton___F5tOc[aria-expanded=false]:not(:disabled):after{content:"";z-index:0;border-radius:var(--brand-borderRadius-small);background-color:var(--brand-color-canvas-subtle);pointer-events:none;position:absolute;inset-block:0;inset-inline:0}.Primer_Brand__NavList-module__NavList__item--level-1___gWx1n>.Primer_Brand__NavList-module__NavList__itemContent___bYaVR .Primer_Brand__NavList-module__NavList__toggleIcon___nlJbF{order:2;margin-inline-start:auto}.Primer_Brand__NavList-module__NavList__item___HTVCC.Primer_Brand__NavList-module__NavList__item--level-2___kXyLx>.Primer_Brand__NavList-module__NavList__itemContent___bYaVR,.Primer_Brand__NavList-module__NavList__item___HTVCC.Primer_Brand__NavList-module__NavList__item--level-3___Z5uiQ>.Primer_Brand__NavList-module__NavList__itemContent___bYaVR,.Primer_Brand__NavList-module__NavList__item___HTVCC.Primer_Brand__NavList-module__NavList__item--level-4___k3h0P>.Primer_Brand__NavList-module__NavList__itemContent___bYaVR{padding-block:calc(var(--base-size-8) + var(--base-size-2));padding-inline-end:var(--base-size-16)}.Primer_Brand__NavList-module__NavList__item--level-2___kXyLx>.Primer_Brand__NavList-module__NavList__itemContent___bYaVR{padding-inline-start:var(--brand-NavList-item-paddingInlineStart-level-2,var(--base-size-24))}.Primer_Brand__NavList-module__NavList__item--level-3___Z5uiQ>.Primer_Brand__NavList-module__NavList__itemContent___bYaVR{padding-inline-start:var(--base-size-40)}.Primer_Brand__NavList-module__NavList__item--level-4___k3h0P>.Primer_Brand__NavList-module__NavList__itemContent___bYaVR{padding-inline-start:calc(var(--base-size-48) + var(--base-size-8))}.Primer_Brand__NavList-module__NavList__item--leaf___YFNSZ:not(.Primer_Brand__NavList-module__NavList__item--level-1___gWx1n)>.Primer_Brand__NavList-module__NavList__itemContent___bYaVR{min-height:var(--base-size-32);padding-block:0;padding-inline:var(--base-size-16)}.Primer_Brand__NavList-module__NavList__item--leaf___YFNSZ.Primer_Brand__NavList-module__NavList__item--level-2___kXyLx>.Primer_Brand__NavList-module__NavList__itemContent___bYaVR{padding-inline-start:var(--brand-NavList-alignedLabel-paddingInlineStart,var(--base-size-24))}.Primer_Brand__NavList-module__NavList__item--leaf___YFNSZ.Primer_Brand__NavList-module__NavList__item--level-3___Z5uiQ>.Primer_Brand__NavList-module__NavList__itemContent___bYaVR{padding-inline-start:var(--base-size-40)}.Primer_Brand__NavList-module__NavList__item--leaf___YFNSZ.Primer_Brand__NavList-module__NavList__item--level-4___k3h0P>.Primer_Brand__NavList-module__NavList__itemContent___bYaVR{padding-inline-start:calc(var(--base-size-48) + var(--base-size-8))}.Primer_Brand__NavList-module__NavList__item--leaf___YFNSZ.Primer_Brand__NavList-module__NavList__item--level-5___4mJ4N>.Primer_Brand__NavList-module__NavList__itemContent___bYaVR{padding-inline-start:calc(var(--base-size-64) + var(--base-size-8))}.Primer_Brand__NavList-module__NavList__item___HTVCC.Primer_Brand__NavList-module__NavList__item--level-2___kXyLx>.Primer_Brand__NavList-module__NavList__itemContent___bYaVR .Primer_Brand__NavList-module__NavList__toggleIcon___nlJbF,.Primer_Brand__NavList-module__NavList__item___HTVCC.Primer_Brand__NavList-module__NavList__item--level-3___Z5uiQ>.Primer_Brand__NavList-module__NavList__itemContent___bYaVR .Primer_Brand__NavList-module__NavList__toggleIcon___nlJbF,.Primer_Brand__NavList-module__NavList__item___HTVCC.Primer_Brand__NavList-module__NavList__item--level-4___k3h0P>.Primer_Brand__NavList-module__NavList__itemContent___bYaVR .Primer_Brand__NavList-module__NavList__toggleIcon___nlJbF{order:1}.Primer_Brand__NavList-module__NavList__item___HTVCC.Primer_Brand__NavList-module__NavList__item--level-2___kXyLx>.Primer_Brand__NavList-module__NavList__itemContent___bYaVR .Primer_Brand__NavList-module__NavList__accordionButton___F5tOc,.Primer_Brand__NavList-module__NavList__item___HTVCC.Primer_Brand__NavList-module__NavList__item--level-3___Z5uiQ>.Primer_Brand__NavList-module__NavList__itemContent___bYaVR .Primer_Brand__NavList-module__NavList__accordionButton___F5tOc,.Primer_Brand__NavList-module__NavList__item___HTVCC.Primer_Brand__NavList-module__NavList__item--level-4___k3h0P>.Primer_Brand__NavList-module__NavList__itemContent___bYaVR .Primer_Brand__NavList-module__NavList__accordionButton___F5tOc{min-height:var(--base-size-32);margin-block:calc(-1 * var(--base-size-8));border-radius:var(--brand-borderRadius-small);padding-inline-start:var(--base-size-8)}.Primer_Brand__NavList-module__NavList__item___HTVCC.Primer_Brand__NavList-module__NavList__item--level-2___kXyLx>.Primer_Brand__NavList-module__NavList__itemContent___bYaVR .Primer_Brand__NavList-module__NavList__toggleIcon___nlJbF,.Primer_Brand__NavList-module__NavList__item___HTVCC.Primer_Brand__NavList-module__NavList__item--level-3___Z5uiQ>.Primer_Brand__NavList-module__NavList__itemContent___bYaVR .Primer_Brand__NavList-module__NavList__toggleIcon___nlJbF,.Primer_Brand__NavList-module__NavList__item___HTVCC.Primer_Brand__NavList-module__NavList__item--level-4___k3h0P>.Primer_Brand__NavList-module__NavList__itemContent___bYaVR .Primer_Brand__NavList-module__NavList__toggleIcon___nlJbF{position:absolute;inset-block-start:50%;inset-inline-start:calc(-1 * var(--base-size-8));transform:translateY(-50%)}.Primer_Brand__NavList-module__NavList__item___HTVCC.Primer_Brand__NavList-module__NavList__item--level-2___kXyLx>.Primer_Brand__NavList-module__NavList__itemContent___bYaVR .Primer_Brand__NavList-module__NavList__accordionButton___F5tOc[aria-expanded=true] .Primer_Brand__NavList-module__NavList__toggleIcon___nlJbF,.Primer_Brand__NavList-module__NavList__item___HTVCC.Primer_Brand__NavList-module__NavList__item--level-3___Z5uiQ>.Primer_Brand__NavList-module__NavList__itemContent___bYaVR .Primer_Brand__NavList-module__NavList__accordionButton___F5tOc[aria-expanded=true] .Primer_Brand__NavList-module__NavList__toggleIcon___nlJbF,.Primer_Brand__NavList-module__NavList__item___HTVCC.Primer_Brand__NavList-module__NavList__item--level-4___k3h0P>.Primer_Brand__NavList-module__NavList__itemContent___bYaVR .Primer_Brand__NavList-module__NavList__accordionButton___F5tOc[aria-expanded=true] .Primer_Brand__NavList-module__NavList__toggleIcon___nlJbF{transform:translateY(-50%)rotate(-180deg)}.Primer_Brand__NavList-module__NavList__item___HTVCC:not(.Primer_Brand__NavList-module__NavList__item--level-1___gWx1n).Primer_Brand__NavList-module__NavList__item--has-current-descendant___JG7dQ>.Primer_Brand__NavList-module__NavList__itemContent___bYaVR .Primer_Brand__NavList-module__NavList__accordionButton___F5tOc[aria-expanded=false] .Primer_Brand__NavList-module__NavList__toggleIcon___nlJbF{inset-inline-start:calc(-1 * var(--base-size-16))}.Primer_Brand__NavList-module__NavList__item___HTVCC.Primer_Brand__NavList-module__NavList__item--level-2___kXyLx>.Primer_Brand__NavList-module__NavList__itemContent___bYaVR .Primer_Brand__NavList-module__NavList__link___k0zio,.Primer_Brand__NavList-module__NavList__item___HTVCC.Primer_Brand__NavList-module__NavList__item--level-3___Z5uiQ>.Primer_Brand__NavList-module__NavList__itemContent___bYaVR .Primer_Brand__NavList-module__NavList__link___k0zio,.Primer_Brand__NavList-module__NavList__item___HTVCC.Primer_Brand__NavList-module__NavList__item--level-4___k3h0P>.Primer_Brand__NavList-module__NavList__itemContent___bYaVR .Primer_Brand__NavList-module__NavList__link___k0zio,.Primer_Brand__NavList-module__NavList__item___HTVCC.Primer_Brand__NavList-module__NavList__item--level-5___4mJ4N>.Primer_Brand__NavList-module__NavList__itemContent___bYaVR .Primer_Brand__NavList-module__NavList__link___k0zio{font-size:var(--brand-text-size-100);line-height:var(--brand-text-lineHeight-100);order:2}.Primer_Brand__NavList-module__NavList__list--flat___xvRQl>.Primer_Brand__NavList-module__NavList__item--leaf___YFNSZ>.Primer_Brand__NavList-module__NavList__itemContent___bYaVR .Primer_Brand__NavList-module__NavList__link___k0zio{font-size:var(--brand-text-size-200);line-height:var(--brand-text-lineHeight-200);letter-spacing:var(--brand-text-letterSpacing-200)}.Primer_Brand__NavList-module__NavList__item--leaf___YFNSZ:not(.Primer_Brand__NavList-module__NavList__item--level-1___gWx1n)>.Primer_Brand__NavList-module__NavList__itemContent___bYaVR .Primer_Brand__NavList-module__NavList__link___k0zio{min-height:var(--base-size-32);border-radius:var(--brand-borderRadius-small);padding-inline-start:var(--base-size-8)}.Primer_Brand__NavList-module__NavList__item--leaf___YFNSZ:not(.Primer_Brand__NavList-module__NavList__item--level-1___gWx1n)>.Primer_Brand__NavList-module__NavList__itemContent___bYaVR .Primer_Brand__NavList-module__NavList__labelArea___c4ORu{min-height:calc(var(--base-size-32) - var(--brand-borderWidth-thin));margin-block-end:var(--brand-borderWidth-thin);padding-inline-start:var(--base-size-6)}.Primer_Brand__NavList-module__NavList__item--leaf___YFNSZ:not(.Primer_Brand__NavList-module__NavList__item--level-1___gWx1n) .Primer_Brand__NavList-module__NavList__link___k0zio[aria-current]:not([aria-current=false]){background-color:#0000;padding-inline-start:var(--base-size-8)}.Primer_Brand__NavList-module__NavList__item--leaf___YFNSZ:not(.Primer_Brand__NavList-module__NavList__item--level-1___gWx1n)>.Primer_Brand__NavList-module__NavList__itemContent___bYaVR .Primer_Brand__NavList-module__NavList__link___k0zio:hover .Primer_Brand__NavList-module__NavList__labelArea___c4ORu,.Primer_Brand__NavList-module__NavList__item--leaf___YFNSZ:not(.Primer_Brand__NavList-module__NavList__item--level-1___gWx1n) .Primer_Brand__NavList-module__NavList__link___k0zio[aria-current]:not([aria-current=false]) .Primer_Brand__NavList-module__NavList__labelArea___c4ORu{background-color:var(--brand-color-canvas-subtle)}.Primer_Brand__NavList-module__NavList__item--leaf___YFNSZ:not(.Primer_Brand__NavList-module__NavList__item--level-1___gWx1n)>.Primer_Brand__NavList-module__NavList__itemContent___bYaVR .Primer_Brand__NavList-module__NavList__link___k0zio:hover{background-color:#0000;padding-inline-start:var(--base-size-8)}[data-color-mode=dark] .Primer_Brand__NavList-module__NavList___tuR_C{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-reduced-motion:reduce){.Primer_Brand__NavList-module__NavList___tuR_C,.Primer_Brand__NavList-module__NavList___tuR_C:before,.Primer_Brand__NavList-module__NavList___tuR_C:after,.Primer_Brand__NavList-module__NavList___tuR_C *{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
@@ -0,0 +1,32 @@
1
+ import './NavList.module-CZFnt8br.css';var e = {
2
+ NavList: "Primer_Brand__NavList-module__NavList___tuR_C",
3
+ NavList__list: "Primer_Brand__NavList-module__NavList__list___gwquf",
4
+ NavList__subNav: "Primer_Brand__NavList-module__NavList__subNav___Q4xI7",
5
+ NavList__groupList: "Primer_Brand__NavList-module__NavList__groupList___Mtk4a",
6
+ "NavList__list--flat": "Primer_Brand__NavList-module__NavList__list--flat___xvRQl",
7
+ NavList__item: "Primer_Brand__NavList-module__NavList__item___HTVCC",
8
+ NavList__group: "Primer_Brand__NavList-module__NavList__group___Jnwkd",
9
+ NavList__groupTitle: "Primer_Brand__NavList-module__NavList__groupTitle___r47_e",
10
+ NavList__itemContent: "Primer_Brand__NavList-module__NavList__itemContent___bYaVR",
11
+ NavList__link: "Primer_Brand__NavList-module__NavList__link___k0zio",
12
+ NavList__accordionButton: "Primer_Brand__NavList-module__NavList__accordionButton___F5tOc",
13
+ "NavList__item--level-1": "Primer_Brand__NavList-module__NavList__item--level-1___gWx1n",
14
+ NavList__labelArea: "Primer_Brand__NavList-module__NavList__labelArea___c4ORu",
15
+ "NavList__item--has-current-descendant": "Primer_Brand__NavList-module__NavList__item--has-current-descendant___JG7dQ",
16
+ "NavList__item--leaf": "Primer_Brand__NavList-module__NavList__item--leaf___YFNSZ",
17
+ "NavList__link--disabled": "Primer_Brand__NavList-module__NavList__link--disabled___Eg304",
18
+ NavList__label: "Primer_Brand__NavList-module__NavList__label___ogBmt",
19
+ NavList__leadingVisual: "Primer_Brand__NavList-module__NavList__leadingVisual___KqRaq",
20
+ NavList__trailingVisual: "Primer_Brand__NavList-module__NavList__trailingVisual___BrZXI",
21
+ NavList__toggleIcon: "Primer_Brand__NavList-module__NavList__toggleIcon___nlJbF",
22
+ "NavList__subNav--expanded": "Primer_Brand__NavList-module__NavList__subNav--expanded___ap3X8",
23
+ "NavList__item--expanded": "Primer_Brand__NavList-module__NavList__item--expanded___pH_PL",
24
+ "NavList__item--level-2": "Primer_Brand__NavList-module__NavList__item--level-2___kXyLx",
25
+ "NavList__item--level-3": "Primer_Brand__NavList-module__NavList__item--level-3___Z5uiQ",
26
+ "NavList__item--level-4": "Primer_Brand__NavList-module__NavList__item--level-4___k3h0P",
27
+ "NavList__item--level-5": "Primer_Brand__NavList-module__NavList__item--level-5___4mJ4N"
28
+ };
29
+ //#endregion
30
+ export { e as default };
31
+
32
+ //# sourceMappingURL=NavList.module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NavList.module.js","names":[],"sources":["../../src/NavList/NavList.module.css"],"sourcesContent":[".NavList {\n box-sizing: border-box;\n font-family: var(--brand-fontStack-sansSerif);\n color: var(--brand-color-text-default);\n padding-inline-start: var(--base-size-16);\n width: 100%;\n}\n\n.NavList__list,\n.NavList__subNav,\n.NavList__groupList {\n list-style: none;\n margin: 0;\n padding: 0;\n}\n\n.NavList__list {\n display: flex;\n flex-direction: column;\n gap: 0;\n}\n\n.NavList__list--flat,\n.NavList__groupList {\n --brand-NavList-alignedLabel-paddingInlineStart: var(--base-size-2);\n}\n\n.NavList__groupList {\n --brand-NavList-item-paddingInlineStart-level-2: var(--base-size-2);\n}\n\n.NavList__item,\n.NavList__group {\n position: relative;\n}\n\n.NavList__list:not(.NavList__list--flat) > :is(.NavList__item, .NavList__group) + :is(.NavList__item, .NavList__group) {\n background-image: repeating-linear-gradient(\n to right,\n var(--brand-color-border-muted) 0 var(--base-size-2),\n transparent var(--base-size-2) var(--base-size-4)\n );\n background-repeat: no-repeat;\n background-size: 100% var(--brand-borderWidth-thin);\n background-position: top left;\n}\n\n.NavList__groupTitle {\n margin: 0;\n padding: var(--base-size-24) var(--base-size-16) var(--base-size-16);\n color: var(--brand-color-text-default);\n font-size: var(--brand-text-size-200);\n font-weight: var(--brand-text-weight-500);\n line-height: var(--brand-text-lineHeight-200);\n letter-spacing: var(--brand-text-letterSpacing-200);\n}\n\n.NavList__groupList {\n display: flex;\n flex-direction: column;\n gap: 0;\n padding-block-end: var(--base-size-16);\n}\n\n.NavList__itemContent {\n display: flex;\n align-items: center;\n gap: var(--base-size-8);\n min-width: 0;\n}\n\n.NavList__link {\n position: relative;\n display: flex;\n align-items: center;\n gap: var(--base-size-8);\n flex: 1 1 auto;\n min-width: 0;\n border-radius: var(--brand-borderRadius-medium);\n padding: 0;\n color: var(--brand-color-text-muted);\n font-size: var(--brand-text-size-100);\n font-weight: var(--brand-text-weight-500);\n line-height: var(--brand-text-lineHeight-100);\n letter-spacing: var(--brand-text-letterSpacing-100);\n text-decoration: none !important; /* dotcom override */\n transition: background-color var(--brand-animation-duration-fast) var(--brand-animation-easing-default),\n color var(--brand-animation-duration-fast) var(--brand-animation-easing-default);\n}\n\n.NavList__accordionButton {\n position: relative;\n box-sizing: border-box;\n width: 100%;\n border: 0;\n background: transparent;\n color: var(--brand-color-text-muted);\n cursor: pointer;\n font-family: inherit;\n text-align: start;\n}\n\n.NavList__link:hover {\n color: var(--brand-color-text-default);\n background-color: var(--brand-color-canvas-subtle);\n}\n\n.NavList__accordionButton:hover {\n color: var(--brand-color-text-default);\n background-color: transparent;\n}\n\n.NavList__item:not(.NavList__item--level-1) > .NavList__itemContent .NavList__accordionButton .NavList__labelArea {\n order: 2;\n min-height: var(--base-size-32);\n padding-inline-start: var(--base-size-6);\n}\n\n.NavList__item:not(.NavList__item--level-1)\n > .NavList__itemContent\n .NavList__accordionButton:not(:disabled):hover\n .NavList__labelArea {\n background-color: var(--brand-color-canvas-subtle);\n}\n\n.NavList__item--has-current-descendant > .NavList__itemContent .NavList__accordionButton:not(:disabled) {\n color: var(--brand-color-text-default);\n}\n\n.NavList__item:not(.NavList__item--level-1).NavList__item--has-current-descendant\n > .NavList__itemContent\n .NavList__accordionButton[aria-expanded='false']:not(:disabled)\n .NavList__labelArea {\n background-color: var(--brand-color-canvas-subtle);\n}\n\n:is(.NavList__link, .NavList__accordionButton):focus-visible {\n outline: var(--brand-borderWidth-thick) solid var(--brand-color-focus);\n outline-offset: var(--base-size-2);\n}\n\n.NavList__subNav :is(.NavList__link, .NavList__accordionButton):focus-visible {\n outline-offset: calc(-1 * var(--base-size-2));\n}\n\n.NavList__link[aria-current]:not([aria-current='false']) {\n color: var(--brand-color-text-default);\n background-color: var(--brand-color-canvas-subtle);\n padding-inline-start: var(--base-size-6);\n}\n\n.NavList__item--leaf:not(.NavList__item--level-1) .NavList__link[aria-current]:not([aria-current='false'])::before {\n content: '';\n position: absolute;\n inset-block: var(--base-size-8);\n inset-inline-start: 0;\n width: var(--base-size-4);\n border-radius: var(--base-size-2);\n background-color: var(--brand-NavList-activeIndicator-color);\n}\n\n.NavList__item--has-current-descendant\n > .NavList__itemContent\n .NavList__accordionButton[aria-expanded='false']:not(:disabled)::before {\n content: '';\n position: absolute;\n inset-block-start: 50%;\n block-size: var(--base-size-16);\n width: var(--base-size-4);\n border-radius: var(--base-size-2);\n background-color: var(--brand-NavList-activeIndicator-color);\n transform: translateY(-50%);\n z-index: 1;\n}\n\n.NavList__item--level-1.NavList__item--has-current-descendant\n > .NavList__itemContent\n .NavList__accordionButton[aria-expanded='false']::before {\n inset-inline-start: calc(-1 * var(--base-size-8));\n}\n\n.NavList__item:not(.NavList__item--level-1).NavList__item--has-current-descendant\n > .NavList__itemContent\n .NavList__accordionButton[aria-expanded='false']::before {\n inset-inline-start: var(--base-size-4);\n}\n\n.NavList__item:not(.NavList__item--level-1).NavList__item--has-current-descendant\n > .NavList__itemContent\n .NavList__accordionButton[aria-expanded='false'] {\n padding-inline-start: var(--base-size-12);\n}\n\n.NavList__item:not(.NavList__item--level-1).NavList__item--has-current-descendant\n > .NavList__itemContent\n .NavList__accordionButton[aria-expanded='false']\n .NavList__labelArea {\n padding-inline-start: var(--base-size-2);\n}\n\n.NavList__item--level-1 > .NavList__itemContent .NavList__link[aria-current]:not([aria-current='false']) {\n padding-inline-start: 0;\n}\n\n.NavList__link--disabled {\n color: var(--brand-color-text-disabled);\n pointer-events: none;\n}\n\n.NavList__accordionButton:disabled {\n color: var(--brand-color-text-disabled);\n cursor: not-allowed;\n}\n\n.NavList__label {\n min-width: 0;\n word-break: break-word;\n}\n\n.NavList__labelArea {\n display: flex;\n align-items: center;\n flex: 1 1 auto;\n gap: var(--base-size-8);\n min-width: 0;\n border-radius: var(--brand-borderRadius-small);\n}\n\n.NavList__leadingVisual,\n.NavList__trailingVisual {\n display: inline-flex;\n flex: none;\n color: inherit;\n}\n\n.NavList__trailingVisual {\n margin-inline-start: auto;\n margin-inline-end: var(--base-size-6);\n}\n\n.NavList__toggleIcon {\n flex: none;\n transform-origin: 50% 50%;\n transition: transform var(--brand-animation-duration-fast) var(--brand-animation-easing-glide);\n}\n\n.NavList__accordionButton[aria-expanded='true'] .NavList__toggleIcon {\n transform: rotate(-180deg);\n}\n\n.NavList__subNav {\n display: flex;\n flex-direction: column;\n gap: 0;\n margin: 0;\n max-height: 0;\n opacity: 0;\n overflow: hidden;\n padding: 0;\n transform: translateY(calc(-1 * var(--base-size-8)));\n visibility: hidden;\n transition: max-height var(--brand-animation-duration-fast) var(--brand-animation-easing-glide),\n opacity var(--brand-animation-duration-fast) var(--brand-animation-easing-glide),\n transform var(--brand-animation-duration-fast) var(--brand-animation-easing-glide),\n visibility 0s linear var(--brand-animation-duration-fast);\n}\n\n.NavList__subNav--expanded {\n max-height: var(--brand-NavList-subNav-height, none);\n opacity: 1;\n transform: translateY(0);\n visibility: visible;\n transition: max-height var(--brand-animation-duration-fast) var(--brand-animation-easing-glide),\n opacity var(--brand-animation-duration-fast) var(--brand-animation-easing-glide),\n transform var(--brand-animation-duration-fast) var(--brand-animation-easing-glide), visibility 0s linear 0s;\n}\n\n.NavList__subNav[aria-hidden='true'] .NavList__subNav {\n visibility: hidden;\n}\n\n.NavList__item--level-1 > .NavList__itemContent {\n padding: var(--base-size-24) var(--base-size-16) var(--base-size-16);\n}\n\n.NavList__item--level-1.NavList__item--expanded {\n padding-block-end: var(--base-size-16);\n}\n\n.NavList__item--level-1 > .NavList__itemContent .NavList__link {\n order: 1;\n font-size: var(--brand-text-size-200);\n font-weight: var(--brand-text-weight-500);\n line-height: var(--brand-text-lineHeight-200);\n}\n\n.NavList__item--level-1 > .NavList__itemContent .NavList__accordionButton {\n color: var(--brand-color-text-default);\n min-height: var(--base-size-32);\n margin-block: calc(-1 * var(--base-size-8));\n padding-inline-start: 0;\n padding-inline-end: var(--base-size-6);\n border-radius: var(--brand-borderRadius-small);\n}\n\n.NavList__item--level-1 > .NavList__itemContent .NavList__accordionButton > * {\n position: relative;\n z-index: 1;\n}\n\n.NavList__item--level-1 > .NavList__itemContent .NavList__accordionButton:not(:disabled):is(:hover, :active)::after,\n.NavList__item--level-1.NavList__item--has-current-descendant\n > .NavList__itemContent\n .NavList__accordionButton[aria-expanded='false']:not(:disabled)::after {\n content: '';\n position: absolute;\n z-index: 0;\n inset-block: 0;\n inset-inline-start: 0;\n inset-inline-end: 0;\n border-radius: var(--brand-borderRadius-small);\n background-color: var(--brand-color-canvas-subtle);\n pointer-events: none;\n}\n\n.NavList__item--level-1 > .NavList__itemContent .NavList__toggleIcon {\n order: 2;\n margin-inline-start: auto;\n}\n\n.NavList__item:is(.NavList__item--level-2, .NavList__item--level-3, .NavList__item--level-4) > .NavList__itemContent {\n padding-block: calc(var(--base-size-8) + var(--base-size-2));\n padding-inline-end: var(--base-size-16);\n}\n\n.NavList__item--level-2 > .NavList__itemContent {\n padding-inline-start: var(--brand-NavList-item-paddingInlineStart-level-2, var(--base-size-24));\n}\n\n.NavList__item--level-3 > .NavList__itemContent {\n padding-inline-start: var(--base-size-40);\n}\n\n.NavList__item--level-4 > .NavList__itemContent {\n padding-inline-start: calc(var(--base-size-48) + var(--base-size-8));\n}\n\n.NavList__item--leaf:not(.NavList__item--level-1) > .NavList__itemContent {\n min-height: var(--base-size-32);\n padding-block: 0;\n padding-inline: var(--base-size-16);\n}\n\n.NavList__item--leaf.NavList__item--level-2 > .NavList__itemContent {\n padding-inline-start: var(--brand-NavList-alignedLabel-paddingInlineStart, var(--base-size-24));\n}\n\n.NavList__item--leaf.NavList__item--level-3 > .NavList__itemContent {\n padding-inline-start: var(--base-size-40);\n}\n\n.NavList__item--leaf.NavList__item--level-4 > .NavList__itemContent {\n padding-inline-start: calc(var(--base-size-48) + var(--base-size-8));\n}\n\n.NavList__item--leaf.NavList__item--level-5 > .NavList__itemContent {\n padding-inline-start: calc(var(--base-size-64) + var(--base-size-8));\n}\n\n.NavList__item:is(.NavList__item--level-2, .NavList__item--level-3, .NavList__item--level-4)\n > .NavList__itemContent\n .NavList__toggleIcon {\n order: 1;\n}\n\n.NavList__item:is(.NavList__item--level-2, .NavList__item--level-3, .NavList__item--level-4)\n > .NavList__itemContent\n .NavList__accordionButton {\n min-height: var(--base-size-32);\n margin-block: calc(-1 * var(--base-size-8));\n padding-inline-start: var(--base-size-8);\n border-radius: var(--brand-borderRadius-small);\n}\n\n.NavList__item:is(.NavList__item--level-2, .NavList__item--level-3, .NavList__item--level-4)\n > .NavList__itemContent\n .NavList__toggleIcon {\n position: absolute;\n inset-block-start: 50%;\n inset-inline-start: calc(-1 * var(--base-size-8));\n transform: translateY(-50%);\n}\n\n.NavList__item:is(.NavList__item--level-2, .NavList__item--level-3, .NavList__item--level-4)\n > .NavList__itemContent\n .NavList__accordionButton[aria-expanded='true']\n .NavList__toggleIcon {\n transform: translateY(-50%) rotate(-180deg);\n}\n\n.NavList__item:not(.NavList__item--level-1).NavList__item--has-current-descendant\n > .NavList__itemContent\n .NavList__accordionButton[aria-expanded='false']\n .NavList__toggleIcon {\n inset-inline-start: calc(-1 * var(--base-size-16));\n}\n\n.NavList__item:is(.NavList__item--level-2, .NavList__item--level-3, .NavList__item--level-4, .NavList__item--level-5)\n > .NavList__itemContent\n .NavList__link {\n order: 2;\n font-size: var(--brand-text-size-100);\n line-height: var(--brand-text-lineHeight-100);\n}\n\n.NavList__list--flat > .NavList__item--leaf > .NavList__itemContent .NavList__link {\n font-size: var(--brand-text-size-200);\n line-height: var(--brand-text-lineHeight-200);\n letter-spacing: var(--brand-text-letterSpacing-200);\n}\n\n.NavList__item--leaf:not(.NavList__item--level-1) > .NavList__itemContent .NavList__link {\n min-height: var(--base-size-32);\n padding-inline-start: var(--base-size-8);\n border-radius: var(--brand-borderRadius-small);\n}\n\n.NavList__item--leaf:not(.NavList__item--level-1) > .NavList__itemContent .NavList__labelArea {\n min-height: calc(var(--base-size-32) - var(--brand-borderWidth-thin));\n margin-block-end: var(--brand-borderWidth-thin);\n padding-inline-start: var(--base-size-6);\n}\n\n.NavList__item--leaf:not(.NavList__item--level-1) .NavList__link[aria-current]:not([aria-current='false']) {\n background-color: transparent;\n padding-inline-start: var(--base-size-8);\n}\n\n.NavList__item--leaf:not(.NavList__item--level-1) > .NavList__itemContent .NavList__link:hover .NavList__labelArea,\n.NavList__item--leaf:not(.NavList__item--level-1)\n .NavList__link[aria-current]:not([aria-current='false'])\n .NavList__labelArea {\n background-color: var(--brand-color-canvas-subtle);\n}\n\n.NavList__item--leaf:not(.NavList__item--level-1) > .NavList__itemContent .NavList__link:hover {\n background-color: transparent;\n padding-inline-start: var(--base-size-8);\n}\n\n[data-color-mode='dark'] .NavList {\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .NavList,\n .NavList::before,\n .NavList::after,\n .NavList * {\n animation: none !important;\n transition: none !important;\n scroll-behavior: auto !important;\n }\n}\n"],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export * from './NavList';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/NavList/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAA"}
package/esm/index.d.ts CHANGED
@@ -41,6 +41,7 @@ export * from './Bento';
41
41
  export * from './EyebrowBanner';
42
42
  export * from './PricingOptions';
43
43
  export * from './SubNav';
44
+ export * from './NavList';
44
45
  export * from './IDE';
45
46
  export * from './Breadcrumbs';
46
47
  export * from './Pagination';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAA;AAEjC,cAAc,QAAQ,CAAA;AACtB,cAAc,QAAQ,CAAA;AACtB,cAAc,WAAW,CAAA;AACzB,cAAc,iBAAiB,CAAA;AAC/B,cAAc,UAAU,CAAA;AACxB,cAAc,eAAe,CAAA;AAC7B,cAAc,SAAS,CAAA;AACvB,cAAc,iBAAiB,CAAA;AAC/B,cAAc,mBAAmB,CAAA;AACjC,cAAc,cAAc,CAAA;AAC5B,cAAc,QAAQ,CAAA;AACtB,cAAc,SAAS,CAAA;AACvB,cAAc,SAAS,CAAA;AACvB,cAAc,eAAe,CAAA;AAC7B,cAAc,aAAa,CAAA;AAC3B,cAAc,OAAO,CAAA;AACrB,cAAc,SAAS,CAAA;AACvB,cAAc,SAAS,CAAA;AACvB,cAAc,UAAU,CAAA;AACxB,cAAc,eAAe,CAAA;AAC7B,cAAc,mBAAmB,CAAA;AACjC,cAAc,aAAa,CAAA;AAC3B,cAAc,aAAa,CAAA;AAC3B,cAAc,QAAQ,CAAA;AACtB,cAAc,WAAW,CAAA;AACzB,cAAc,iBAAiB,CAAA;AAC/B,cAAc,UAAU,CAAA;AACxB,cAAc,QAAQ,CAAA;AACtB,cAAc,gBAAgB,CAAA;AAC9B,cAAc,cAAc,CAAA;AAC5B,cAAc,QAAQ,CAAA;AACtB,cAAc,SAAS,CAAA;AACvB,cAAc,aAAa,CAAA;AAC3B,cAAc,SAAS,CAAA;AACvB,cAAc,OAAO,CAAA;AACrB,cAAc,eAAe,CAAA;AAC7B,cAAc,aAAa,CAAA;AAC3B,cAAc,YAAY,CAAA;AAC1B,cAAc,SAAS,CAAA;AACvB,cAAc,iBAAiB,CAAA;AAC/B,cAAc,kBAAkB,CAAA;AAChC,cAAc,UAAU,CAAA;AACxB,cAAc,OAAO,CAAA;AACrB,cAAc,eAAe,CAAA;AAC7B,cAAc,cAAc,CAAA;AAC5B,cAAc,WAAW,CAAA;AACzB,cAAc,WAAW,CAAA;AACzB,cAAc,aAAa,CAAA;AAC3B,cAAc,kBAAkB,CAAA;AAChC,cAAc,aAAa,CAAA;AAC3B,cAAc,QAAQ,CAAA;AACtB,cAAc,mBAAmB,CAAA;AACjC,cAAc,uBAAuB,CAAA;AACrC,cAAc,QAAQ,CAAA;AACtB,cAAc,uBAAuB,CAAA;AACrC,cAAc,SAAS,CAAA;AAGvB,cAAc,uBAAuB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAA;AAEjC,cAAc,QAAQ,CAAA;AACtB,cAAc,QAAQ,CAAA;AACtB,cAAc,WAAW,CAAA;AACzB,cAAc,iBAAiB,CAAA;AAC/B,cAAc,UAAU,CAAA;AACxB,cAAc,eAAe,CAAA;AAC7B,cAAc,SAAS,CAAA;AACvB,cAAc,iBAAiB,CAAA;AAC/B,cAAc,mBAAmB,CAAA;AACjC,cAAc,cAAc,CAAA;AAC5B,cAAc,QAAQ,CAAA;AACtB,cAAc,SAAS,CAAA;AACvB,cAAc,SAAS,CAAA;AACvB,cAAc,eAAe,CAAA;AAC7B,cAAc,aAAa,CAAA;AAC3B,cAAc,OAAO,CAAA;AACrB,cAAc,SAAS,CAAA;AACvB,cAAc,SAAS,CAAA;AACvB,cAAc,UAAU,CAAA;AACxB,cAAc,eAAe,CAAA;AAC7B,cAAc,mBAAmB,CAAA;AACjC,cAAc,aAAa,CAAA;AAC3B,cAAc,aAAa,CAAA;AAC3B,cAAc,QAAQ,CAAA;AACtB,cAAc,WAAW,CAAA;AACzB,cAAc,iBAAiB,CAAA;AAC/B,cAAc,UAAU,CAAA;AACxB,cAAc,QAAQ,CAAA;AACtB,cAAc,gBAAgB,CAAA;AAC9B,cAAc,cAAc,CAAA;AAC5B,cAAc,QAAQ,CAAA;AACtB,cAAc,SAAS,CAAA;AACvB,cAAc,aAAa,CAAA;AAC3B,cAAc,SAAS,CAAA;AACvB,cAAc,OAAO,CAAA;AACrB,cAAc,eAAe,CAAA;AAC7B,cAAc,aAAa,CAAA;AAC3B,cAAc,YAAY,CAAA;AAC1B,cAAc,SAAS,CAAA;AACvB,cAAc,iBAAiB,CAAA;AAC/B,cAAc,kBAAkB,CAAA;AAChC,cAAc,UAAU,CAAA;AACxB,cAAc,WAAW,CAAA;AACzB,cAAc,OAAO,CAAA;AACrB,cAAc,eAAe,CAAA;AAC7B,cAAc,cAAc,CAAA;AAC5B,cAAc,WAAW,CAAA;AACzB,cAAc,WAAW,CAAA;AACzB,cAAc,aAAa,CAAA;AAC3B,cAAc,kBAAkB,CAAA;AAChC,cAAc,aAAa,CAAA;AAC3B,cAAc,QAAQ,CAAA;AACtB,cAAc,mBAAmB,CAAA;AACjC,cAAc,uBAAuB,CAAA;AACrC,cAAc,QAAQ,CAAA;AACtB,cAAc,uBAAuB,CAAA;AACrC,cAAc,SAAS,CAAA;AAGvB,cAAc,uBAAuB,CAAA"}
package/esm/index.esm.js CHANGED
@@ -65,14 +65,15 @@ import { EyebrowBanner as Xt, EyebrowBannerIconColors as Zt, EyebrowBannerLabelC
65
65
  import { Tooltip as en, TooltipContext as tn } from "./Tooltip/Tooltip.js";
66
66
  import { PricingOptions as nn } from "./PricingOptions/PricingOptions.js";
67
67
  import { SubNav as rn, SubNavSubMenuVariants as an, useSubNavContext as on } from "./SubNav/SubNav.js";
68
- import { IDE as sn, IDEDefaultIconMap as cn, IDEFileExtensions as ln } from "./IDE/IDE.js";
69
- import { BreadcrumbVariants as un, Breadcrumbs as dn } from "./Breadcrumbs/Breadcrumbs.js";
70
- import { Section as fn, SectionBackgroundColors as pn, SectionPaddingVariants as mn } from "./Section/Section.js";
71
- import { Statistic as hn, StatisticSizes as gn, StatisticSpacingValues as _n } from "./Statistic/Statistic.js";
72
- import { BreakoutBanner as vn, BreakoutBannerBackgroundColors as yn } from "./BreakoutBanner/BreakoutBanner.js";
73
- import { Footnotes as bn, FootnotesItemTags as xn, FootnotesTags as Sn } from "./Footnotes/Footnotes.js";
74
- import { FrostedGlassVFX as Cn, FrostedGlassVFXIntensity as wn, defaultFrostedGlassVFXIntensity as Tn } from "./FrostedGlassVFX/FrostedGlassVFX.js";
75
- import { SectionIntroStacked as En, SectionIntroStackedVariants as Dn } from "./SectionIntroStacked/SectionIntroStacked.js";
76
- import { Tabs as On } from "./Tabs/Tabs.js";
77
- import { Tiles as kn } from "./Tiles/Tiles.js";
78
- export { He as Accordion, Ue as AccordionContent, We as AccordionHeading, Ge as AccordionRoot, Ke as AccordionToggleColors, Rt as ActionMenu, zt as ActionMenuButtonModes, Bt as ActionMenuProvider, Vt as ActionMenuSizes, gt as AnchorNav, a as Animate, n as AnimationContext, r as AnimationProvider, i as AnimationVariants, ot as Avatar, st as AvatarShapes, ct as AvatarSizes, Yt as Bento, g as Box, _ as BoxBackgroundColors, v as BoxBorderColorOptions, y as BoxBorderRadiusOptions, b as BoxBorderWidthOptions, x as BoxSpacingValues, un as BreadcrumbVariants, dn as Breadcrumbs, vn as BreakoutBanner, yn as BreakoutBannerBackgroundColors, je as BreakpointSize, J as Button, ae as ButtonGroup, Y as ButtonSizes, X as ButtonVariants, _t as CTABanner, vt as CTABannerBackgroundColors, xt as CTAForm, Et as Card, Dt as CardBackgroundColors, Ot as CardCTAVariants, kt as CardIconColors, At as CardLabelVariants, It as CardSkewEffect, jt as CardTokenPositions, Mt as CardVariants, Ye as Checkbox, it as CheckboxGroup, te as ColorModesEnum, mt as ComparisonTable, Xe as DEFAULT_TEXTAREA_COLS, Ze as DEFAULT_TEXTAREA_RESIZE, Qe as DEFAULT_TEXTAREA_ROWS, Xt as EyebrowBanner, Zt as EyebrowBannerIconColors, Qt as EyebrowBannerLabelColors, M as EyebrowText, N as EyebrowTextVariants, qe as FAQ, Je as FAQGroup, bn as Footnotes, xn as FootnotesItemTags, Sn as FootnotesTags, rt as FormControl, Cn as FrostedGlassVFX, wn as FrostedGlassVFXIntensity, t as Grid, I as Heading, L as HeadingFontVariants, R as HeadingLetterSpacing, z as HeadingSizes, B as HeadingStretch, V as HeadingTags, H as HeadingWeights, ee as Hero, sn as IDE, cn as IDEDefaultIconMap, ln as IDEFileExtensions, Ce as Icon, K as Image, q as ImageBorderRadiusOptions, Re as InlineLink, fe as Label, pe as LabelColors, me as LabelSizes, ce as Link, le as LinkArrowDirections, ue as LinkSizes, de as LinkVariants, qt as LogoSuite, Ie as MediaPlaylist, St as MinimalFooter, bt as OrderedList, Fe as Pagination, Ct as Pillar, nn as PricingOptions, Wt as Prose, nt as Radio, at as RadioGroup, _e as River, oe as RiverAccordion, se as RiverAccordionVariants, xe as RiverBreakout, Ne as RiverBreakoutTabs, Se as RiverBreakoutVariants, Pe as RiverStoryScroll, fn as Section, pn as SectionBackgroundColors, Lt as SectionIntro, En as SectionIntroStacked, Dn as SectionIntroStackedVariants, mn as SectionPaddingVariants, tt as Select, c as Stack, l as StackAlignItemVariants, u as StackDirectionVariants, d as StackFlexWrapVariants, f as StackJustifyContentVariants, p as StackSpacingVariants, hn as Statistic, gn as StatisticSizes, _n as StatisticSpacingValues, rn as SubNav, an as SubNavSubMenuVariants, Le as SubdomainNavBar, On as Tabs, lt as Testimonial, ut as TestimonialQuoteMarkColors, dt as TestimonialVariants, S as Text, P as TextCursorAnimation, C as TextFontVariants, et as TextInput, s as TextRevealAnimation, w as TextSizes, T as TextTags, E as TextVariants, D as TextWeights, $e as Textarea, ne as ThemeContext, re as ThemeProvider, kn as Tiles, Jt as Timeline, ze as Token, Be as TokenVariants, en as Tooltip, tn as TooltipContext, yt as UnorderedList, Kt as VideoPlayer, Z as _Button, ht as _ComparisonTable, e as _GLOBAL_STYLES, Ht as actionMenuOverlaySides, U as classMap, Q as defaultButtonSize, $ as defaultButtonVariant, Nt as defaultCardCTAVariant, Pt as defaultCardIconColor, Ft as defaultCardLabelVariant, $t as defaultEyebrowBannerIconColor, O as defaultFontVariant, Tn as defaultFrostedGlassVFXIntensity, W as defaultHeadingFont, G as defaultHeadingTag, we as defaultIconColor, Te as defaultIconSize, he as defaultLabelColor, ge as defaultLabelSize, wt as defaultPillarIconColor, Tt as defaultPillarIconSize, ft as defaultQuoteMarkColor, ve as defaultRiverAlign, ye as defaultRiverImageTextRatio, be as defaultRiverVariant, m as defaultStackDirection, h as defaultStackSpacing, pt as defaultTestimonialVariant, k as defaultTextSize, A as defaultTextTag, j as defaultTextVariant, Ve as defaultTokenVariant, Ee as iconColors, De as iconSizeMap, Oe as iconSizes, ke as namedIconSizes, Ae as numericIconSizes, F as testIds, Ut as useActionMenuContext, o as useAnimation, on as useSubNavContext, ie as useTheme, Gt as useVideo, Me as useWindowSize };
68
+ import { NavList as sn } from "./NavList/NavList.js";
69
+ import { IDE as cn, IDEDefaultIconMap as ln, IDEFileExtensions as un } from "./IDE/IDE.js";
70
+ import { BreadcrumbVariants as dn, Breadcrumbs as fn } from "./Breadcrumbs/Breadcrumbs.js";
71
+ import { Section as pn, SectionBackgroundColors as mn, SectionPaddingVariants as hn } from "./Section/Section.js";
72
+ import { Statistic as gn, StatisticSizes as _n, StatisticSpacingValues as vn } from "./Statistic/Statistic.js";
73
+ import { BreakoutBanner as yn, BreakoutBannerBackgroundColors as bn } from "./BreakoutBanner/BreakoutBanner.js";
74
+ import { Footnotes as xn, FootnotesItemTags as Sn, FootnotesTags as Cn } from "./Footnotes/Footnotes.js";
75
+ import { FrostedGlassVFX as wn, FrostedGlassVFXIntensity as Tn, defaultFrostedGlassVFXIntensity as En } from "./FrostedGlassVFX/FrostedGlassVFX.js";
76
+ import { SectionIntroStacked as Dn, SectionIntroStackedVariants as On } from "./SectionIntroStacked/SectionIntroStacked.js";
77
+ import { Tabs as kn } from "./Tabs/Tabs.js";
78
+ import { Tiles as An } from "./Tiles/Tiles.js";
79
+ export { He as Accordion, Ue as AccordionContent, We as AccordionHeading, Ge as AccordionRoot, Ke as AccordionToggleColors, Rt as ActionMenu, zt as ActionMenuButtonModes, Bt as ActionMenuProvider, Vt as ActionMenuSizes, gt as AnchorNav, a as Animate, n as AnimationContext, r as AnimationProvider, i as AnimationVariants, ot as Avatar, st as AvatarShapes, ct as AvatarSizes, Yt as Bento, g as Box, _ as BoxBackgroundColors, v as BoxBorderColorOptions, y as BoxBorderRadiusOptions, b as BoxBorderWidthOptions, x as BoxSpacingValues, dn as BreadcrumbVariants, fn as Breadcrumbs, yn as BreakoutBanner, bn as BreakoutBannerBackgroundColors, je as BreakpointSize, J as Button, ae as ButtonGroup, Y as ButtonSizes, X as ButtonVariants, _t as CTABanner, vt as CTABannerBackgroundColors, xt as CTAForm, Et as Card, Dt as CardBackgroundColors, Ot as CardCTAVariants, kt as CardIconColors, At as CardLabelVariants, It as CardSkewEffect, jt as CardTokenPositions, Mt as CardVariants, Ye as Checkbox, it as CheckboxGroup, te as ColorModesEnum, mt as ComparisonTable, Xe as DEFAULT_TEXTAREA_COLS, Ze as DEFAULT_TEXTAREA_RESIZE, Qe as DEFAULT_TEXTAREA_ROWS, Xt as EyebrowBanner, Zt as EyebrowBannerIconColors, Qt as EyebrowBannerLabelColors, M as EyebrowText, N as EyebrowTextVariants, qe as FAQ, Je as FAQGroup, xn as Footnotes, Sn as FootnotesItemTags, Cn as FootnotesTags, rt as FormControl, wn as FrostedGlassVFX, Tn as FrostedGlassVFXIntensity, t as Grid, I as Heading, L as HeadingFontVariants, R as HeadingLetterSpacing, z as HeadingSizes, B as HeadingStretch, V as HeadingTags, H as HeadingWeights, ee as Hero, cn as IDE, ln as IDEDefaultIconMap, un as IDEFileExtensions, Ce as Icon, K as Image, q as ImageBorderRadiusOptions, Re as InlineLink, fe as Label, pe as LabelColors, me as LabelSizes, ce as Link, le as LinkArrowDirections, ue as LinkSizes, de as LinkVariants, qt as LogoSuite, Ie as MediaPlaylist, St as MinimalFooter, sn as NavList, bt as OrderedList, Fe as Pagination, Ct as Pillar, nn as PricingOptions, Wt as Prose, nt as Radio, at as RadioGroup, _e as River, oe as RiverAccordion, se as RiverAccordionVariants, xe as RiverBreakout, Ne as RiverBreakoutTabs, Se as RiverBreakoutVariants, Pe as RiverStoryScroll, pn as Section, mn as SectionBackgroundColors, Lt as SectionIntro, Dn as SectionIntroStacked, On as SectionIntroStackedVariants, hn as SectionPaddingVariants, tt as Select, c as Stack, l as StackAlignItemVariants, u as StackDirectionVariants, d as StackFlexWrapVariants, f as StackJustifyContentVariants, p as StackSpacingVariants, gn as Statistic, _n as StatisticSizes, vn as StatisticSpacingValues, rn as SubNav, an as SubNavSubMenuVariants, Le as SubdomainNavBar, kn as Tabs, lt as Testimonial, ut as TestimonialQuoteMarkColors, dt as TestimonialVariants, S as Text, P as TextCursorAnimation, C as TextFontVariants, et as TextInput, s as TextRevealAnimation, w as TextSizes, T as TextTags, E as TextVariants, D as TextWeights, $e as Textarea, ne as ThemeContext, re as ThemeProvider, An as Tiles, Jt as Timeline, ze as Token, Be as TokenVariants, en as Tooltip, tn as TooltipContext, yt as UnorderedList, Kt as VideoPlayer, Z as _Button, ht as _ComparisonTable, e as _GLOBAL_STYLES, Ht as actionMenuOverlaySides, U as classMap, Q as defaultButtonSize, $ as defaultButtonVariant, Nt as defaultCardCTAVariant, Pt as defaultCardIconColor, Ft as defaultCardLabelVariant, $t as defaultEyebrowBannerIconColor, O as defaultFontVariant, En as defaultFrostedGlassVFXIntensity, W as defaultHeadingFont, G as defaultHeadingTag, we as defaultIconColor, Te as defaultIconSize, he as defaultLabelColor, ge as defaultLabelSize, wt as defaultPillarIconColor, Tt as defaultPillarIconSize, ft as defaultQuoteMarkColor, ve as defaultRiverAlign, ye as defaultRiverImageTextRatio, be as defaultRiverVariant, m as defaultStackDirection, h as defaultStackSpacing, pt as defaultTestimonialVariant, k as defaultTextSize, A as defaultTextTag, j as defaultTextVariant, Ve as defaultTokenVariant, Ee as iconColors, De as iconSizeMap, Oe as iconSizes, ke as namedIconSizes, Ae as numericIconSizes, F as testIds, Ut as useActionMenuContext, o as useAnimation, on as useSubNavContext, ie as useTheme, Gt as useVideo, Me as useWindowSize };
@@ -0,0 +1 @@
1
+ :root,[data-color-mode=light]{--brand-NavList-activeIndicator-color:var(--brand-color-text-emphasized)}[data-color-mode=dark]{--brand-NavList-activeIndicator-color:var(--brand-color-accent-primary)}
@@ -0,0 +1,85 @@
1
+ import React, { type PropsWithChildren, type ReactElement, type ReactNode, type Ref } from 'react';
2
+ import { type Icon } from '@primer/octicons-react';
3
+ import type { BaseProps } from '../component-helpers';
4
+ import '@primer/brand-primitives/lib/design-tokens/css/tokens/functional/components/nav-list/colors-with-modes.css';
5
+ export type NavListRootProps = {
6
+ /**
7
+ * Accessible label for the navigation landmark.
8
+ */
9
+ 'aria-label': string;
10
+ /**
11
+ * ID of an element that labels the navigation landmark.
12
+ */
13
+ 'aria-labelledby'?: string;
14
+ children: ReactNode;
15
+ 'data-testid'?: string;
16
+ } & BaseProps<HTMLElement> & Omit<React.HTMLAttributes<HTMLElement>, 'aria-label' | 'aria-labelledby'>;
17
+ type Visual = ReactElement | React.ElementType | Icon;
18
+ type NavListItemAs = 'a' | 'button';
19
+ type NavListItemBaseProps = {
20
+ /**
21
+ * Leading visual rendered before the item label.
22
+ */
23
+ leadingVisual?: Visual;
24
+ /**
25
+ * Trailing visual rendered after the item label.
26
+ */
27
+ trailingVisual?: Visual;
28
+ /**
29
+ * Whether nested items should be expanded by default.
30
+ */
31
+ defaultExpanded?: boolean;
32
+ /**
33
+ * Controls the nested item expanded state.
34
+ */
35
+ expanded?: boolean;
36
+ /**
37
+ * Called when a nested item is expanded or collapsed.
38
+ */
39
+ onExpandedChange?: (expanded: boolean) => void;
40
+ /**
41
+ * Marks the item as disabled. Disabled link items receive `aria-disabled`.
42
+ */
43
+ disabled?: boolean;
44
+ 'data-testid'?: string;
45
+ };
46
+ export type NavListItemProps<C extends NavListItemAs = 'a'> = {
47
+ as?: C;
48
+ } & NavListItemBaseProps & PropsWithChildren<BaseProps<HTMLElement>> & Omit<React.ComponentPropsWithoutRef<C>, keyof NavListItemBaseProps | keyof BaseProps<HTMLElement> | 'as' | 'children'>;
49
+ export type NavListSubNavProps = {
50
+ children: ReactNode;
51
+ 'data-testid'?: string;
52
+ } & BaseProps<HTMLUListElement> & React.HTMLAttributes<HTMLUListElement>;
53
+ export type NavListGroupProps = {
54
+ /**
55
+ * Heading text for the group.
56
+ */
57
+ title?: ReactNode;
58
+ children: ReactNode;
59
+ 'data-testid'?: string;
60
+ } & BaseProps<HTMLLIElement> & Omit<React.LiHTMLAttributes<HTMLLIElement>, 'title'>;
61
+ /**
62
+ * Use NavList to render vertical navigation links with groups and expandable nested lists.
63
+ * @see https://primer.style/brand/components/NavList
64
+ */
65
+ export declare const NavList: React.ForwardRefExoticComponent<Omit<NavListRootProps, "ref"> & React.RefAttributes<HTMLElement>> & {
66
+ Item: <C extends NavListItemAs = "a">(props: NavListItemProps<C> & {
67
+ ref?: Ref<HTMLElement>;
68
+ }) => ReactElement | null;
69
+ SubNav: React.ForwardRefExoticComponent<Omit<NavListSubNavProps, "ref"> & React.RefAttributes<HTMLUListElement>>;
70
+ Group: React.ForwardRefExoticComponent<Omit<NavListGroupProps, "ref"> & React.RefAttributes<HTMLLIElement>>;
71
+ testIds: {
72
+ root: string;
73
+ readonly list: string;
74
+ readonly item: string;
75
+ readonly link: string;
76
+ readonly leadingVisual: string;
77
+ readonly trailingVisual: string;
78
+ readonly subNav: string;
79
+ readonly group: string;
80
+ readonly groupTitle: string;
81
+ readonly groupList: string;
82
+ readonly toggle: string;
83
+ };
84
+ };
85
+ export {};
@@ -0,0 +1 @@
1
+ export * from './NavList';