@primer/react-brand 0.77.1-rc.bd5b9efe → 0.78.0-rc.85e39cb4

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 (535) hide show
  1. package/docs/components/ActionMenu/index.md +65 -19
  2. package/docs/components/ButtonGroup/index.md +9 -6
  3. package/docs/components/ButtonGroup/react.md +26 -6
  4. package/docs/components/IconButton/index.md +99 -0
  5. package/docs/components/IconButton/react.md +189 -0
  6. package/docs/components/SubNav/index.md +53 -8
  7. package/docs/components/SubdomainNavBar/index.md +3 -1
  8. package/docs/components/Tooltip/index.md +24 -13
  9. package/docs/components/index.md +1 -0
  10. package/docs/forms/TextInput/index.md +4 -2
  11. package/docs/index.md +3 -2
  12. package/esm/ActionMenu/ActionMenu.d.ts +18 -24
  13. package/esm/ActionMenu/ActionMenu.d.ts.map +1 -1
  14. package/esm/ActionMenu/ActionMenu.js +247 -168
  15. package/esm/ActionMenu/ActionMenu.js.map +1 -1
  16. package/esm/ActionMenu/ActionMenu.module-DlO2FtEt.css +1 -0
  17. package/esm/ActionMenu/ActionMenu.module.js +4 -1
  18. package/esm/ActionMenu/ActionMenu.module.js.map +1 -1
  19. package/esm/ActionMenu/ActionMenuContext.d.ts +23 -0
  20. package/esm/ActionMenu/ActionMenuContext.d.ts.map +1 -0
  21. package/esm/ActionMenu/ActionMenuContext.js +24 -0
  22. package/esm/ActionMenu/ActionMenuContext.js.map +1 -0
  23. package/esm/Button/Button.d.ts +4 -2
  24. package/esm/Button/Button.d.ts.map +1 -1
  25. package/esm/Button/Button.js +25 -24
  26. package/esm/Button/Button.js.map +1 -1
  27. package/esm/Button/Button.module-CqRiLusx.css +1 -0
  28. package/esm/Button/Button.module.js +1 -1
  29. package/esm/Button/Button.module.js.map +1 -1
  30. package/esm/ButtonGroup/ButtonGroup.d.ts +7 -1
  31. package/esm/ButtonGroup/ButtonGroup.d.ts.map +1 -1
  32. package/esm/ButtonGroup/ButtonGroup.js +44 -22
  33. package/esm/ButtonGroup/ButtonGroup.js.map +1 -1
  34. package/esm/ButtonGroup/ButtonGroup.module-pJbqxGBe.css +1 -0
  35. package/esm/ButtonGroup/ButtonGroup.module.js +8 -3
  36. package/esm/ButtonGroup/ButtonGroup.module.js.map +1 -1
  37. package/esm/IconButton/IconButton.d.ts +30 -0
  38. package/esm/IconButton/IconButton.d.ts.map +1 -0
  39. package/esm/IconButton/IconButton.js +68 -0
  40. package/esm/IconButton/IconButton.js.map +1 -0
  41. package/esm/IconButton/IconButton.module-tmxv8TCl.css +1 -0
  42. package/esm/IconButton/IconButton.module.js +19 -0
  43. package/esm/IconButton/IconButton.module.js.map +1 -0
  44. package/esm/IconButton/index.d.ts +2 -0
  45. package/esm/IconButton/index.d.ts.map +1 -0
  46. package/esm/MinimalVideoPlayer/MinimalVideoPlayer.js +1 -0
  47. package/esm/MinimalVideoPlayer/MinimalVideoPlayer.js.map +1 -1
  48. package/esm/PricingOptions/PricingOptions.js +26 -26
  49. package/esm/SubNav/SubNav.d.ts +19 -1
  50. package/esm/SubNav/SubNav.d.ts.map +1 -1
  51. package/esm/SubNav/SubNav.js +265 -166
  52. package/esm/SubNav/SubNav.js.map +1 -1
  53. package/esm/SubNav/SubNav.module-cyUt0N_h.css +1 -0
  54. package/esm/SubNav/SubNav.module.js +11 -4
  55. package/esm/SubNav/SubNav.module.js.map +1 -1
  56. package/esm/SubNav/useAnchorMenu.d.ts +5 -0
  57. package/esm/SubNav/useAnchorMenu.d.ts.map +1 -0
  58. package/esm/SubNav/useAnchorMenu.js +23 -0
  59. package/esm/SubNav/useAnchorMenu.js.map +1 -0
  60. package/esm/SubNav/useNarrowMenu.d.ts +8 -0
  61. package/esm/SubNav/useNarrowMenu.d.ts.map +1 -0
  62. package/esm/SubNav/useNarrowMenu.js +41 -0
  63. package/esm/SubNav/useNarrowMenu.js.map +1 -0
  64. package/esm/SubNav/useWideMenu.d.ts +13 -0
  65. package/esm/SubNav/useWideMenu.d.ts.map +1 -0
  66. package/esm/SubNav/useWideMenu.js +109 -0
  67. package/esm/SubNav/useWideMenu.js.map +1 -0
  68. package/esm/SubdomainNavBar/SubdomainNavBar.d.ts +2 -2
  69. package/esm/SubdomainNavBar/SubdomainNavBar.d.ts.map +1 -1
  70. package/esm/SubdomainNavBar/SubdomainNavBar.js +304 -298
  71. package/esm/SubdomainNavBar/SubdomainNavBar.js.map +1 -1
  72. package/esm/SubdomainNavBar/SubdomainNavBar.module-BLR1YjX-.css +1 -0
  73. package/esm/SubdomainNavBar/SubdomainNavBar.module.js +3 -3
  74. package/esm/SubdomainNavBar/SubdomainNavBar.module.js.map +1 -1
  75. package/esm/Tooltip/Tooltip.d.ts +5 -2
  76. package/esm/Tooltip/Tooltip.d.ts.map +1 -1
  77. package/esm/Tooltip/Tooltip.js +90 -45
  78. package/esm/Tooltip/Tooltip.js.map +1 -1
  79. package/esm/Tooltip/Tooltip.module-CSt4tNaI.css +1 -0
  80. package/esm/Tooltip/Tooltip.module.js +1 -1
  81. package/esm/Tooltip/Tooltip.module.js.map +1 -1
  82. package/esm/forms/TextInput/TextInput.d.ts +4 -2
  83. package/esm/forms/TextInput/TextInput.d.ts.map +1 -1
  84. package/esm/forms/TextInput/TextInput.js +8 -3
  85. package/esm/forms/TextInput/TextInput.js.map +1 -1
  86. package/esm/forms/TextInput/TextInput.module-CeOwKkHk.css +1 -0
  87. package/esm/forms/TextInput/TextInput.module.js +10 -1
  88. package/esm/forms/TextInput/TextInput.module.js.map +1 -1
  89. package/esm/index.d.ts +1 -0
  90. package/esm/index.d.ts.map +1 -1
  91. package/esm/index.esm.js +70 -68
  92. package/esm/packages/design-tokens/lib/design-tokens/css/tokens/functional/components/action-menu/colors-with-modes-mgXFtgvP.css +1 -0
  93. package/esm/packages/design-tokens/lib/design-tokens/css/tokens/functional/components/button/base-DhkVnZYz.css +1 -0
  94. package/esm/packages/design-tokens/lib/design-tokens/css/tokens/functional/components/icon-button/base-DLPw97mz.css +1 -0
  95. package/esm/packages/design-tokens/lib/design-tokens/css/tokens/functional/components/icon-button/colors-with-modes-D7iaptsa.css +1 -0
  96. package/esm/packages/design-tokens/lib/design-tokens/css/tokens/functional/components/sub-nav/base-Dl5rLq0_.css +1 -0
  97. package/esm/packages/design-tokens/lib/design-tokens/css/tokens/functional/components/sub-nav/colors-with-modes-Bna3nyXf.css +1 -0
  98. package/esm/packages/design-tokens/lib/design-tokens/css/tokens/functional/components/subdomain-nav-bar/colors-with-modes-C_lnz8M6.css +1 -0
  99. package/esm/river/RiverBreakoutTabs/RiverBreakoutTabs.d.ts.map +1 -1
  100. package/esm/river/RiverBreakoutTabs/RiverBreakoutTabs.js +9 -5
  101. package/esm/river/RiverBreakoutTabs/RiverBreakoutTabs.js.map +1 -1
  102. package/esm/river/RiverBreakoutTabs/RiverBreakoutTabs.module-C46WY_qp.css +1 -0
  103. package/esm/river/RiverBreakoutTabs/RiverBreakoutTabs.module.js +3 -2
  104. package/esm/river/RiverBreakoutTabs/RiverBreakoutTabs.module.js.map +1 -1
  105. package/lib/ActionMenu/ActionMenu.d.ts +18 -24
  106. package/lib/ActionMenu/ActionMenuContext.d.ts +22 -0
  107. package/lib/Button/Button.d.ts +4 -2
  108. package/lib/ButtonGroup/ButtonGroup.d.ts +7 -1
  109. package/lib/IconButton/IconButton.d.ts +29 -0
  110. package/lib/IconButton/index.d.ts +1 -0
  111. package/lib/SubNav/SubNav.d.ts +19 -1
  112. package/lib/SubNav/useAnchorMenu.d.ts +4 -0
  113. package/lib/SubNav/useNarrowMenu.d.ts +7 -0
  114. package/lib/SubNav/useWideMenu.d.ts +12 -0
  115. package/lib/SubdomainNavBar/SubdomainNavBar.d.ts +2 -2
  116. package/lib/Tooltip/Tooltip.d.ts +5 -2
  117. package/lib/css/main.css +965 -544
  118. package/lib/design-tokens/css/tokens/base/colors/color-scales-with-modes.css +1 -1
  119. package/lib/design-tokens/css/tokens/base/colors/light.css +1 -1
  120. package/lib/design-tokens/css/tokens/base/size/size.css +1 -1
  121. package/lib/design-tokens/css/tokens/base/typography/typography.css +1 -1
  122. package/lib/design-tokens/css/tokens/functional/animation/base.css +1 -1
  123. package/lib/design-tokens/css/tokens/functional/colors/global-with-modes.css +1 -1
  124. package/lib/design-tokens/css/tokens/functional/colors/global.css +1 -1
  125. package/lib/design-tokens/css/tokens/functional/components/accordion/colors-with-modes.css +1 -1
  126. package/lib/design-tokens/css/tokens/functional/components/action-menu/colors-with-modes.css +5 -1
  127. package/lib/design-tokens/css/tokens/functional/components/anchor-nav/colors-with-modes.css +1 -1
  128. package/lib/design-tokens/css/tokens/functional/components/bento/base.css +1 -1
  129. package/lib/design-tokens/css/tokens/functional/components/blinking-cursor/colors-with-modes.css +1 -1
  130. package/lib/design-tokens/css/tokens/functional/components/breadcrumbs/colors-with-modes.css +1 -1
  131. package/lib/design-tokens/css/tokens/functional/components/button/base.css +13 -0
  132. package/lib/design-tokens/css/tokens/functional/components/button/colors-with-modes.css +1 -1
  133. package/lib/design-tokens/css/tokens/functional/components/card/base.css +1 -1
  134. package/lib/design-tokens/css/tokens/functional/components/card/colors-with-modes.css +1 -1
  135. package/lib/design-tokens/css/tokens/functional/components/card/colors.css +1 -1
  136. package/lib/design-tokens/css/tokens/functional/components/comparison-table/colors-with-modes.css +1 -1
  137. package/lib/design-tokens/css/tokens/functional/components/comparison-table/comparison-table.css +1 -1
  138. package/lib/design-tokens/css/tokens/functional/components/control/colors-with-modes.css +1 -1
  139. package/lib/design-tokens/css/tokens/functional/components/cta-banner/colors-with-modes.css +1 -1
  140. package/lib/design-tokens/css/tokens/functional/components/eyebrow-banner/colors-with-modes.css +1 -1
  141. package/lib/design-tokens/css/tokens/functional/components/eyebrow-banner/eyebrow-banner.css +1 -1
  142. package/lib/design-tokens/css/tokens/functional/components/faq/base.css +1 -1
  143. package/lib/design-tokens/css/tokens/functional/components/faq/colors-with-modes.css +1 -1
  144. package/lib/design-tokens/css/tokens/functional/components/faq/colors.css +1 -1
  145. package/lib/design-tokens/css/tokens/functional/components/faq/faq.css +1 -1
  146. package/lib/design-tokens/css/tokens/functional/components/footer/base.css +1 -1
  147. package/lib/design-tokens/css/tokens/functional/components/footer/colors-with-modes.css +1 -1
  148. package/lib/design-tokens/css/tokens/functional/components/footer/colors.css +1 -1
  149. package/lib/design-tokens/css/tokens/functional/components/frosted-glass-vfx/base.css +1 -1
  150. package/lib/design-tokens/css/tokens/functional/components/frosted-glass-vfx/colors-with-modes.css +1 -1
  151. package/lib/design-tokens/css/tokens/functional/components/grid/colors-with-modes.css +1 -1
  152. package/lib/design-tokens/css/tokens/functional/components/grid/colors.css +1 -1
  153. package/lib/design-tokens/css/tokens/functional/components/grid/grid.css +1 -1
  154. package/lib/design-tokens/css/tokens/functional/components/hero/base.css +1 -1
  155. package/lib/design-tokens/css/tokens/functional/components/icon/colors-with-modes.css +1 -1
  156. package/lib/design-tokens/css/tokens/functional/components/icon/colors.css +1 -1
  157. package/lib/design-tokens/css/tokens/functional/components/icon-button/base.css +15 -0
  158. package/lib/design-tokens/css/tokens/functional/components/icon-button/colors-with-modes.css +39 -0
  159. package/lib/design-tokens/css/tokens/functional/components/icon-button/colors.css +21 -0
  160. package/lib/design-tokens/css/tokens/functional/components/ide/base.css +1 -1
  161. package/lib/design-tokens/css/tokens/functional/components/ide/colors-with-modes.css +1 -1
  162. package/lib/design-tokens/css/tokens/functional/components/image/base.css +1 -1
  163. package/lib/design-tokens/css/tokens/functional/components/inline-code/colors-with-modes.css +1 -1
  164. package/lib/design-tokens/css/tokens/functional/components/inline-code/colors.css +1 -1
  165. package/lib/design-tokens/css/tokens/functional/components/inline-link/base.css +1 -1
  166. package/lib/design-tokens/css/tokens/functional/components/inline-link/colors-with-modes.css +1 -1
  167. package/lib/design-tokens/css/tokens/functional/components/inline-link/colors.css +1 -1
  168. package/lib/design-tokens/css/tokens/functional/components/label/colors-with-modes.css +1 -1
  169. package/lib/design-tokens/css/tokens/functional/components/label/colors.css +1 -1
  170. package/lib/design-tokens/css/tokens/functional/components/link/colors-with-modes.css +1 -1
  171. package/lib/design-tokens/css/tokens/functional/components/link/colors.css +1 -1
  172. package/lib/design-tokens/css/tokens/functional/components/logosuite/base.css +1 -1
  173. package/lib/design-tokens/css/tokens/functional/components/logosuite/colors-with-modes.css +1 -1
  174. package/lib/design-tokens/css/tokens/functional/components/logosuite/colors.css +1 -1
  175. package/lib/design-tokens/css/tokens/functional/components/media-playlist/colors-with-modes.css +1 -1
  176. package/lib/design-tokens/css/tokens/functional/components/media-playlist/colors.css +1 -1
  177. package/lib/design-tokens/css/tokens/functional/components/nav-list/colors-with-modes.css +1 -1
  178. package/lib/design-tokens/css/tokens/functional/components/pricing-options/colors-with-modes.css +1 -1
  179. package/lib/design-tokens/css/tokens/functional/components/pricing-options/colors.css +1 -1
  180. package/lib/design-tokens/css/tokens/functional/components/pricing-options/pricing-options.css +1 -1
  181. package/lib/design-tokens/css/tokens/functional/components/prose/base.css +1 -1
  182. package/lib/design-tokens/css/tokens/functional/components/prose/colors-with-modes.css +1 -1
  183. package/lib/design-tokens/css/tokens/functional/components/river/base.css +1 -1
  184. package/lib/design-tokens/css/tokens/functional/components/river/river.css +1 -1
  185. package/lib/design-tokens/css/tokens/functional/components/river-story-scroll/colors-with-modes.css +1 -1
  186. package/lib/design-tokens/css/tokens/functional/components/section/section.css +1 -1
  187. package/lib/design-tokens/css/tokens/functional/components/statistic/base.css +1 -1
  188. package/lib/design-tokens/css/tokens/functional/components/sub-nav/base.css +6 -1
  189. package/lib/design-tokens/css/tokens/functional/components/sub-nav/colors-with-modes.css +15 -1
  190. package/lib/design-tokens/css/tokens/functional/components/subdomain-nav-bar/colors-with-modes.css +3 -3
  191. package/lib/design-tokens/css/tokens/functional/components/tabs/base.css +1 -1
  192. package/lib/design-tokens/css/tokens/functional/components/tabs/colors-with-modes.css +1 -1
  193. package/lib/design-tokens/css/tokens/functional/components/tabs/colors.css +1 -1
  194. package/lib/design-tokens/css/tokens/functional/components/testimonial/base.css +1 -1
  195. package/lib/design-tokens/css/tokens/functional/components/testimonial/colors-with-modes.css +1 -1
  196. package/lib/design-tokens/css/tokens/functional/components/testimonial/colors.css +1 -1
  197. package/lib/design-tokens/css/tokens/functional/components/text-cursor-animation/base.css +1 -1
  198. package/lib/design-tokens/css/tokens/functional/components/text-cursor-animation/colors-with-modes.css +1 -1
  199. package/lib/design-tokens/css/tokens/functional/components/text-cursor-animation/colors.css +1 -1
  200. package/lib/design-tokens/css/tokens/functional/components/tiles/colors-with-modes.css +1 -1
  201. package/lib/design-tokens/css/tokens/functional/components/timeline/base.css +1 -1
  202. package/lib/design-tokens/css/tokens/functional/components/timeline/colors-with-modes.css +1 -1
  203. package/lib/design-tokens/css/tokens/functional/components/timeline/colors.css +1 -1
  204. package/lib/design-tokens/css/tokens/functional/components/token/colors-with-modes.css +1 -1
  205. package/lib/design-tokens/css/tokens/functional/components/token/colors.css +1 -1
  206. package/lib/design-tokens/css/tokens/functional/components/tooltip/colors-with-modes.css +1 -1
  207. package/lib/design-tokens/css/tokens/functional/components/tooltip/colors.css +1 -1
  208. package/lib/design-tokens/css/tokens/functional/components/video-player/base.css +1 -1
  209. package/lib/design-tokens/css/tokens/functional/components/video-player/colors-with-modes.css +1 -1
  210. package/lib/design-tokens/css/tokens/functional/size/border.css +1 -1
  211. package/lib/design-tokens/css/tokens/functional/size/breakpoints.css +1 -1
  212. package/lib/design-tokens/css/tokens/functional/size/size-coarse.css +1 -1
  213. package/lib/design-tokens/css/tokens/functional/size/size-fine.css +1 -1
  214. package/lib/design-tokens/css/tokens/functional/size/size.css +1 -1
  215. package/lib/design-tokens/css/tokens/functional/size/viewport.css +1 -1
  216. package/lib/design-tokens/css/tokens/functional/typography/typography-responsive.css +1 -1
  217. package/lib/design-tokens/css/tokens/functional/typography/typography.css +1 -1
  218. package/lib/design-tokens/js/module/tokens/base/colors/light.js +1 -1
  219. package/lib/design-tokens/js/module/tokens/base/size/size.js +1 -1
  220. package/lib/design-tokens/js/module/tokens/base/typography/typography.js +1 -1
  221. package/lib/design-tokens/js/module/tokens/functional/animation/base.js +1 -1
  222. package/lib/design-tokens/js/module/tokens/functional/colors/global.js +1 -1
  223. package/lib/design-tokens/js/module/tokens/functional/components/bento/base.js +1 -1
  224. package/lib/design-tokens/js/module/tokens/functional/components/button/base.js +25 -0
  225. package/lib/design-tokens/js/module/tokens/functional/components/card/base.js +1 -1
  226. package/lib/design-tokens/js/module/tokens/functional/components/card/colors.js +1 -1
  227. package/lib/design-tokens/js/module/tokens/functional/components/comparison-table/comparison-table.js +1 -1
  228. package/lib/design-tokens/js/module/tokens/functional/components/eyebrow-banner/eyebrow-banner.js +1 -1
  229. package/lib/design-tokens/js/module/tokens/functional/components/faq/base.js +1 -1
  230. package/lib/design-tokens/js/module/tokens/functional/components/faq/colors.js +1 -1
  231. package/lib/design-tokens/js/module/tokens/functional/components/faq/faq.js +1 -1
  232. package/lib/design-tokens/js/module/tokens/functional/components/footer/base.js +1 -1
  233. package/lib/design-tokens/js/module/tokens/functional/components/footer/colors.js +1 -1
  234. package/lib/design-tokens/js/module/tokens/functional/components/frosted-glass-vfx/base.js +1 -1
  235. package/lib/design-tokens/js/module/tokens/functional/components/grid/colors.js +1 -1
  236. package/lib/design-tokens/js/module/tokens/functional/components/grid/grid.js +1 -1
  237. package/lib/design-tokens/js/module/tokens/functional/components/hero/base.js +1 -1
  238. package/lib/design-tokens/js/module/tokens/functional/components/icon/colors.js +1 -1
  239. package/lib/design-tokens/js/module/tokens/functional/components/icon-button/base.js +31 -0
  240. package/lib/design-tokens/js/module/tokens/functional/components/icon-button/colors.js +83 -0
  241. package/lib/design-tokens/js/module/tokens/functional/components/ide/base.js +1 -1
  242. package/lib/design-tokens/js/module/tokens/functional/components/image/base.js +1 -1
  243. package/lib/design-tokens/js/module/tokens/functional/components/inline-code/colors.js +1 -1
  244. package/lib/design-tokens/js/module/tokens/functional/components/inline-link/base.js +1 -1
  245. package/lib/design-tokens/js/module/tokens/functional/components/inline-link/colors.js +1 -1
  246. package/lib/design-tokens/js/module/tokens/functional/components/label/colors.js +1 -1
  247. package/lib/design-tokens/js/module/tokens/functional/components/link/colors.js +1 -1
  248. package/lib/design-tokens/js/module/tokens/functional/components/logosuite/base.js +1 -1
  249. package/lib/design-tokens/js/module/tokens/functional/components/logosuite/colors.js +1 -1
  250. package/lib/design-tokens/js/module/tokens/functional/components/media-playlist/colors.js +1 -1
  251. package/lib/design-tokens/js/module/tokens/functional/components/pricing-options/colors.js +1 -1
  252. package/lib/design-tokens/js/module/tokens/functional/components/pricing-options/pricing-options.js +1 -1
  253. package/lib/design-tokens/js/module/tokens/functional/components/prose/base.js +1 -1
  254. package/lib/design-tokens/js/module/tokens/functional/components/river/base.js +1 -1
  255. package/lib/design-tokens/js/module/tokens/functional/components/river/river.js +1 -1
  256. package/lib/design-tokens/js/module/tokens/functional/components/section/section.js +1 -1
  257. package/lib/design-tokens/js/module/tokens/functional/components/statistic/base.js +1 -1
  258. package/lib/design-tokens/js/module/tokens/functional/components/sub-nav/base.js +10 -1
  259. package/lib/design-tokens/js/module/tokens/functional/components/tabs/base.js +1 -1
  260. package/lib/design-tokens/js/module/tokens/functional/components/tabs/colors.js +1 -1
  261. package/lib/design-tokens/js/module/tokens/functional/components/testimonial/base.js +1 -1
  262. package/lib/design-tokens/js/module/tokens/functional/components/testimonial/colors.js +1 -1
  263. package/lib/design-tokens/js/module/tokens/functional/components/text-cursor-animation/base.js +1 -1
  264. package/lib/design-tokens/js/module/tokens/functional/components/text-cursor-animation/colors.js +1 -1
  265. package/lib/design-tokens/js/module/tokens/functional/components/timeline/base.js +1 -1
  266. package/lib/design-tokens/js/module/tokens/functional/components/timeline/colors.js +1 -1
  267. package/lib/design-tokens/js/module/tokens/functional/components/token/colors.js +1 -1
  268. package/lib/design-tokens/js/module/tokens/functional/components/tooltip/colors.js +1 -1
  269. package/lib/design-tokens/js/module/tokens/functional/components/video-player/base.js +1 -1
  270. package/lib/design-tokens/js/module/tokens/functional/size/border.js +1 -1
  271. package/lib/design-tokens/js/module/tokens/functional/size/breakpoints.js +1 -1
  272. package/lib/design-tokens/js/module/tokens/functional/size/size-coarse.js +1 -1
  273. package/lib/design-tokens/js/module/tokens/functional/size/size-fine.js +1 -1
  274. package/lib/design-tokens/js/module/tokens/functional/size/size.js +1 -1
  275. package/lib/design-tokens/js/module/tokens/functional/size/viewport.js +1 -1
  276. package/lib/design-tokens/js/module/tokens/functional/typography/typography-responsive.js +1 -1
  277. package/lib/design-tokens/js/module/tokens/functional/typography/typography.js +1 -1
  278. package/lib/design-tokens/js/tokens/base/colors/light.js +1 -1
  279. package/lib/design-tokens/js/tokens/base/size/size.js +1 -1
  280. package/lib/design-tokens/js/tokens/base/typography/typography.js +1 -1
  281. package/lib/design-tokens/js/tokens/functional/animation/base.js +1 -1
  282. package/lib/design-tokens/js/tokens/functional/colors/global.js +1 -1
  283. package/lib/design-tokens/js/tokens/functional/components/bento/base.js +1 -1
  284. package/lib/design-tokens/js/tokens/functional/components/button/base.js +11 -0
  285. package/lib/design-tokens/js/tokens/functional/components/card/base.js +1 -1
  286. package/lib/design-tokens/js/tokens/functional/components/card/colors.js +1 -1
  287. package/lib/design-tokens/js/tokens/functional/components/comparison-table/comparison-table.js +1 -1
  288. package/lib/design-tokens/js/tokens/functional/components/eyebrow-banner/eyebrow-banner.js +1 -1
  289. package/lib/design-tokens/js/tokens/functional/components/faq/base.js +1 -1
  290. package/lib/design-tokens/js/tokens/functional/components/faq/colors.js +1 -1
  291. package/lib/design-tokens/js/tokens/functional/components/faq/faq.js +1 -1
  292. package/lib/design-tokens/js/tokens/functional/components/footer/base.js +1 -1
  293. package/lib/design-tokens/js/tokens/functional/components/footer/colors.js +1 -1
  294. package/lib/design-tokens/js/tokens/functional/components/frosted-glass-vfx/base.js +1 -1
  295. package/lib/design-tokens/js/tokens/functional/components/grid/colors.js +1 -1
  296. package/lib/design-tokens/js/tokens/functional/components/grid/grid.js +1 -1
  297. package/lib/design-tokens/js/tokens/functional/components/hero/base.js +1 -1
  298. package/lib/design-tokens/js/tokens/functional/components/icon/colors.js +1 -1
  299. package/lib/design-tokens/js/tokens/functional/components/icon-button/base.js +13 -0
  300. package/lib/design-tokens/js/tokens/functional/components/icon-button/colors.js +19 -0
  301. package/lib/design-tokens/js/tokens/functional/components/ide/base.js +1 -1
  302. package/lib/design-tokens/js/tokens/functional/components/image/base.js +1 -1
  303. package/lib/design-tokens/js/tokens/functional/components/inline-code/colors.js +1 -1
  304. package/lib/design-tokens/js/tokens/functional/components/inline-link/base.js +1 -1
  305. package/lib/design-tokens/js/tokens/functional/components/inline-link/colors.js +1 -1
  306. package/lib/design-tokens/js/tokens/functional/components/label/colors.js +1 -1
  307. package/lib/design-tokens/js/tokens/functional/components/link/colors.js +1 -1
  308. package/lib/design-tokens/js/tokens/functional/components/logosuite/base.js +1 -1
  309. package/lib/design-tokens/js/tokens/functional/components/logosuite/colors.js +1 -1
  310. package/lib/design-tokens/js/tokens/functional/components/media-playlist/colors.js +1 -1
  311. package/lib/design-tokens/js/tokens/functional/components/pricing-options/colors.js +1 -1
  312. package/lib/design-tokens/js/tokens/functional/components/pricing-options/pricing-options.js +1 -1
  313. package/lib/design-tokens/js/tokens/functional/components/prose/base.js +1 -1
  314. package/lib/design-tokens/js/tokens/functional/components/river/base.js +1 -1
  315. package/lib/design-tokens/js/tokens/functional/components/river/river.js +1 -1
  316. package/lib/design-tokens/js/tokens/functional/components/section/section.js +1 -1
  317. package/lib/design-tokens/js/tokens/functional/components/statistic/base.js +1 -1
  318. package/lib/design-tokens/js/tokens/functional/components/sub-nav/base.js +6 -1
  319. package/lib/design-tokens/js/tokens/functional/components/tabs/base.js +1 -1
  320. package/lib/design-tokens/js/tokens/functional/components/tabs/colors.js +1 -1
  321. package/lib/design-tokens/js/tokens/functional/components/testimonial/base.js +1 -1
  322. package/lib/design-tokens/js/tokens/functional/components/testimonial/colors.js +1 -1
  323. package/lib/design-tokens/js/tokens/functional/components/text-cursor-animation/base.js +1 -1
  324. package/lib/design-tokens/js/tokens/functional/components/text-cursor-animation/colors.js +1 -1
  325. package/lib/design-tokens/js/tokens/functional/components/timeline/base.js +1 -1
  326. package/lib/design-tokens/js/tokens/functional/components/timeline/colors.js +1 -1
  327. package/lib/design-tokens/js/tokens/functional/components/token/colors.js +1 -1
  328. package/lib/design-tokens/js/tokens/functional/components/tooltip/colors.js +1 -1
  329. package/lib/design-tokens/js/tokens/functional/components/video-player/base.js +1 -1
  330. package/lib/design-tokens/js/tokens/functional/size/border.js +1 -1
  331. package/lib/design-tokens/js/tokens/functional/size/breakpoints.js +1 -1
  332. package/lib/design-tokens/js/tokens/functional/size/size-coarse.js +1 -1
  333. package/lib/design-tokens/js/tokens/functional/size/size-fine.js +1 -1
  334. package/lib/design-tokens/js/tokens/functional/size/size.js +1 -1
  335. package/lib/design-tokens/js/tokens/functional/size/viewport.js +1 -1
  336. package/lib/design-tokens/js/tokens/functional/typography/typography-responsive.js +1 -1
  337. package/lib/design-tokens/js/tokens/functional/typography/typography.js +1 -1
  338. package/lib/design-tokens/json/colors.json +24 -1
  339. package/lib/design-tokens/scss/tokens/base/colors/light.scss +1 -1
  340. package/lib/design-tokens/scss/tokens/base/size/size.scss +1 -1
  341. package/lib/design-tokens/scss/tokens/base/typography/typography.scss +1 -1
  342. package/lib/design-tokens/scss/tokens/functional/animation/base.scss +1 -1
  343. package/lib/design-tokens/scss/tokens/functional/colors/global.scss +1 -1
  344. package/lib/design-tokens/scss/tokens/functional/components/bento/base.scss +1 -1
  345. package/lib/design-tokens/scss/tokens/functional/components/button/base.scss +10 -0
  346. package/lib/design-tokens/scss/tokens/functional/components/card/base.scss +1 -1
  347. package/lib/design-tokens/scss/tokens/functional/components/card/colors.scss +1 -1
  348. package/lib/design-tokens/scss/tokens/functional/components/comparison-table/comparison-table.scss +1 -1
  349. package/lib/design-tokens/scss/tokens/functional/components/eyebrow-banner/eyebrow-banner.scss +1 -1
  350. package/lib/design-tokens/scss/tokens/functional/components/faq/base.scss +1 -1
  351. package/lib/design-tokens/scss/tokens/functional/components/faq/colors.scss +1 -1
  352. package/lib/design-tokens/scss/tokens/functional/components/faq/faq.scss +1 -1
  353. package/lib/design-tokens/scss/tokens/functional/components/footer/base.scss +1 -1
  354. package/lib/design-tokens/scss/tokens/functional/components/footer/colors.scss +1 -1
  355. package/lib/design-tokens/scss/tokens/functional/components/frosted-glass-vfx/base.scss +1 -1
  356. package/lib/design-tokens/scss/tokens/functional/components/grid/colors.scss +1 -1
  357. package/lib/design-tokens/scss/tokens/functional/components/grid/grid.scss +1 -1
  358. package/lib/design-tokens/scss/tokens/functional/components/hero/base.scss +1 -1
  359. package/lib/design-tokens/scss/tokens/functional/components/icon/colors.scss +1 -1
  360. package/lib/design-tokens/scss/tokens/functional/components/icon-button/base.scss +12 -0
  361. package/lib/design-tokens/scss/tokens/functional/components/icon-button/colors.scss +18 -0
  362. package/lib/design-tokens/scss/tokens/functional/components/ide/base.scss +1 -1
  363. package/lib/design-tokens/scss/tokens/functional/components/image/base.scss +1 -1
  364. package/lib/design-tokens/scss/tokens/functional/components/inline-code/colors.scss +1 -1
  365. package/lib/design-tokens/scss/tokens/functional/components/inline-link/base.scss +1 -1
  366. package/lib/design-tokens/scss/tokens/functional/components/inline-link/colors.scss +1 -1
  367. package/lib/design-tokens/scss/tokens/functional/components/label/colors.scss +1 -1
  368. package/lib/design-tokens/scss/tokens/functional/components/link/colors.scss +1 -1
  369. package/lib/design-tokens/scss/tokens/functional/components/logosuite/base.scss +1 -1
  370. package/lib/design-tokens/scss/tokens/functional/components/logosuite/colors.scss +1 -1
  371. package/lib/design-tokens/scss/tokens/functional/components/media-playlist/colors.scss +1 -1
  372. package/lib/design-tokens/scss/tokens/functional/components/pricing-options/colors.scss +1 -1
  373. package/lib/design-tokens/scss/tokens/functional/components/pricing-options/pricing-options.scss +1 -1
  374. package/lib/design-tokens/scss/tokens/functional/components/prose/base.scss +1 -1
  375. package/lib/design-tokens/scss/tokens/functional/components/river/base.scss +1 -1
  376. package/lib/design-tokens/scss/tokens/functional/components/river/river.scss +1 -1
  377. package/lib/design-tokens/scss/tokens/functional/components/section/section.scss +1 -1
  378. package/lib/design-tokens/scss/tokens/functional/components/statistic/base.scss +1 -1
  379. package/lib/design-tokens/scss/tokens/functional/components/sub-nav/base.scss +6 -1
  380. package/lib/design-tokens/scss/tokens/functional/components/tabs/base.scss +1 -1
  381. package/lib/design-tokens/scss/tokens/functional/components/tabs/colors.scss +1 -1
  382. package/lib/design-tokens/scss/tokens/functional/components/testimonial/base.scss +1 -1
  383. package/lib/design-tokens/scss/tokens/functional/components/testimonial/colors.scss +1 -1
  384. package/lib/design-tokens/scss/tokens/functional/components/text-cursor-animation/base.scss +1 -1
  385. package/lib/design-tokens/scss/tokens/functional/components/text-cursor-animation/colors.scss +1 -1
  386. package/lib/design-tokens/scss/tokens/functional/components/timeline/base.scss +1 -1
  387. package/lib/design-tokens/scss/tokens/functional/components/timeline/colors.scss +1 -1
  388. package/lib/design-tokens/scss/tokens/functional/components/token/colors.scss +1 -1
  389. package/lib/design-tokens/scss/tokens/functional/components/tooltip/colors.scss +1 -1
  390. package/lib/design-tokens/scss/tokens/functional/components/video-player/base.scss +1 -1
  391. package/lib/design-tokens/scss/tokens/functional/size/border.scss +1 -1
  392. package/lib/design-tokens/scss/tokens/functional/size/breakpoints.scss +1 -1
  393. package/lib/design-tokens/scss/tokens/functional/size/size-coarse.scss +1 -1
  394. package/lib/design-tokens/scss/tokens/functional/size/size-fine.scss +1 -1
  395. package/lib/design-tokens/scss/tokens/functional/size/size.scss +1 -1
  396. package/lib/design-tokens/scss/tokens/functional/size/viewport.scss +1 -1
  397. package/lib/design-tokens/scss/tokens/functional/typography/typography-responsive.scss +1 -1
  398. package/lib/design-tokens/scss/tokens/functional/typography/typography.scss +1 -1
  399. package/lib/design-tokens/ts/tokens/base/colors/light.d.ts +1 -1
  400. package/lib/design-tokens/ts/tokens/base/colors/light.js +1 -1
  401. package/lib/design-tokens/ts/tokens/base/size/size.d.ts +1 -1
  402. package/lib/design-tokens/ts/tokens/base/size/size.js +1 -1
  403. package/lib/design-tokens/ts/tokens/base/typography/typography.d.ts +1 -1
  404. package/lib/design-tokens/ts/tokens/base/typography/typography.js +1 -1
  405. package/lib/design-tokens/ts/tokens/functional/animation/base.d.ts +1 -1
  406. package/lib/design-tokens/ts/tokens/functional/animation/base.js +1 -1
  407. package/lib/design-tokens/ts/tokens/functional/colors/global.d.ts +1 -1
  408. package/lib/design-tokens/ts/tokens/functional/colors/global.js +1 -1
  409. package/lib/design-tokens/ts/tokens/functional/components/bento/base.d.ts +1 -1
  410. package/lib/design-tokens/ts/tokens/functional/components/bento/base.js +1 -1
  411. package/lib/design-tokens/ts/tokens/functional/components/button/base.d.ts +28 -0
  412. package/lib/design-tokens/ts/tokens/functional/components/button/base.js +25 -0
  413. package/lib/design-tokens/ts/tokens/functional/components/card/base.d.ts +1 -1
  414. package/lib/design-tokens/ts/tokens/functional/components/card/base.js +1 -1
  415. package/lib/design-tokens/ts/tokens/functional/components/card/colors.d.ts +1 -1
  416. package/lib/design-tokens/ts/tokens/functional/components/card/colors.js +1 -1
  417. package/lib/design-tokens/ts/tokens/functional/components/comparison-table/comparison-table.d.ts +1 -1
  418. package/lib/design-tokens/ts/tokens/functional/components/comparison-table/comparison-table.js +1 -1
  419. package/lib/design-tokens/ts/tokens/functional/components/eyebrow-banner/eyebrow-banner.d.ts +1 -1
  420. package/lib/design-tokens/ts/tokens/functional/components/eyebrow-banner/eyebrow-banner.js +1 -1
  421. package/lib/design-tokens/ts/tokens/functional/components/faq/base.d.ts +1 -1
  422. package/lib/design-tokens/ts/tokens/functional/components/faq/base.js +1 -1
  423. package/lib/design-tokens/ts/tokens/functional/components/faq/colors.d.ts +1 -1
  424. package/lib/design-tokens/ts/tokens/functional/components/faq/colors.js +1 -1
  425. package/lib/design-tokens/ts/tokens/functional/components/faq/faq.d.ts +1 -1
  426. package/lib/design-tokens/ts/tokens/functional/components/faq/faq.js +1 -1
  427. package/lib/design-tokens/ts/tokens/functional/components/footer/base.d.ts +1 -1
  428. package/lib/design-tokens/ts/tokens/functional/components/footer/base.js +1 -1
  429. package/lib/design-tokens/ts/tokens/functional/components/footer/colors.d.ts +1 -1
  430. package/lib/design-tokens/ts/tokens/functional/components/footer/colors.js +1 -1
  431. package/lib/design-tokens/ts/tokens/functional/components/frosted-glass-vfx/base.d.ts +1 -1
  432. package/lib/design-tokens/ts/tokens/functional/components/frosted-glass-vfx/base.js +1 -1
  433. package/lib/design-tokens/ts/tokens/functional/components/grid/colors.d.ts +1 -1
  434. package/lib/design-tokens/ts/tokens/functional/components/grid/colors.js +1 -1
  435. package/lib/design-tokens/ts/tokens/functional/components/grid/grid.d.ts +1 -1
  436. package/lib/design-tokens/ts/tokens/functional/components/grid/grid.js +1 -1
  437. package/lib/design-tokens/ts/tokens/functional/components/hero/base.d.ts +1 -1
  438. package/lib/design-tokens/ts/tokens/functional/components/hero/base.js +1 -1
  439. package/lib/design-tokens/ts/tokens/functional/components/icon/colors.d.ts +1 -1
  440. package/lib/design-tokens/ts/tokens/functional/components/icon/colors.js +1 -1
  441. package/lib/design-tokens/ts/tokens/functional/components/icon-button/base.d.ts +34 -0
  442. package/lib/design-tokens/ts/tokens/functional/components/icon-button/base.js +31 -0
  443. package/lib/design-tokens/ts/tokens/functional/components/icon-button/colors.d.ts +44 -0
  444. package/lib/design-tokens/ts/tokens/functional/components/icon-button/colors.js +41 -0
  445. package/lib/design-tokens/ts/tokens/functional/components/ide/base.d.ts +1 -1
  446. package/lib/design-tokens/ts/tokens/functional/components/ide/base.js +1 -1
  447. package/lib/design-tokens/ts/tokens/functional/components/image/base.d.ts +1 -1
  448. package/lib/design-tokens/ts/tokens/functional/components/image/base.js +1 -1
  449. package/lib/design-tokens/ts/tokens/functional/components/inline-code/colors.d.ts +1 -1
  450. package/lib/design-tokens/ts/tokens/functional/components/inline-code/colors.js +1 -1
  451. package/lib/design-tokens/ts/tokens/functional/components/inline-link/base.d.ts +1 -1
  452. package/lib/design-tokens/ts/tokens/functional/components/inline-link/base.js +1 -1
  453. package/lib/design-tokens/ts/tokens/functional/components/inline-link/colors.d.ts +1 -1
  454. package/lib/design-tokens/ts/tokens/functional/components/inline-link/colors.js +1 -1
  455. package/lib/design-tokens/ts/tokens/functional/components/label/colors.d.ts +1 -1
  456. package/lib/design-tokens/ts/tokens/functional/components/label/colors.js +1 -1
  457. package/lib/design-tokens/ts/tokens/functional/components/link/colors.d.ts +1 -1
  458. package/lib/design-tokens/ts/tokens/functional/components/link/colors.js +1 -1
  459. package/lib/design-tokens/ts/tokens/functional/components/logosuite/base.d.ts +1 -1
  460. package/lib/design-tokens/ts/tokens/functional/components/logosuite/base.js +1 -1
  461. package/lib/design-tokens/ts/tokens/functional/components/logosuite/colors.d.ts +1 -1
  462. package/lib/design-tokens/ts/tokens/functional/components/logosuite/colors.js +1 -1
  463. package/lib/design-tokens/ts/tokens/functional/components/media-playlist/colors.d.ts +1 -1
  464. package/lib/design-tokens/ts/tokens/functional/components/media-playlist/colors.js +1 -1
  465. package/lib/design-tokens/ts/tokens/functional/components/pricing-options/colors.d.ts +1 -1
  466. package/lib/design-tokens/ts/tokens/functional/components/pricing-options/colors.js +1 -1
  467. package/lib/design-tokens/ts/tokens/functional/components/pricing-options/pricing-options.d.ts +1 -1
  468. package/lib/design-tokens/ts/tokens/functional/components/pricing-options/pricing-options.js +1 -1
  469. package/lib/design-tokens/ts/tokens/functional/components/prose/base.d.ts +1 -1
  470. package/lib/design-tokens/ts/tokens/functional/components/prose/base.js +1 -1
  471. package/lib/design-tokens/ts/tokens/functional/components/river/base.d.ts +1 -1
  472. package/lib/design-tokens/ts/tokens/functional/components/river/base.js +1 -1
  473. package/lib/design-tokens/ts/tokens/functional/components/river/river.d.ts +1 -1
  474. package/lib/design-tokens/ts/tokens/functional/components/river/river.js +1 -1
  475. package/lib/design-tokens/ts/tokens/functional/components/section/section.d.ts +1 -1
  476. package/lib/design-tokens/ts/tokens/functional/components/section/section.js +1 -1
  477. package/lib/design-tokens/ts/tokens/functional/components/statistic/base.d.ts +1 -1
  478. package/lib/design-tokens/ts/tokens/functional/components/statistic/base.js +1 -1
  479. package/lib/design-tokens/ts/tokens/functional/components/sub-nav/base.d.ts +11 -2
  480. package/lib/design-tokens/ts/tokens/functional/components/sub-nav/base.js +10 -1
  481. package/lib/design-tokens/ts/tokens/functional/components/tabs/base.d.ts +1 -1
  482. package/lib/design-tokens/ts/tokens/functional/components/tabs/base.js +1 -1
  483. package/lib/design-tokens/ts/tokens/functional/components/tabs/colors.d.ts +1 -1
  484. package/lib/design-tokens/ts/tokens/functional/components/tabs/colors.js +1 -1
  485. package/lib/design-tokens/ts/tokens/functional/components/testimonial/base.d.ts +1 -1
  486. package/lib/design-tokens/ts/tokens/functional/components/testimonial/base.js +1 -1
  487. package/lib/design-tokens/ts/tokens/functional/components/testimonial/colors.d.ts +1 -1
  488. package/lib/design-tokens/ts/tokens/functional/components/testimonial/colors.js +1 -1
  489. package/lib/design-tokens/ts/tokens/functional/components/text-cursor-animation/base.d.ts +1 -1
  490. package/lib/design-tokens/ts/tokens/functional/components/text-cursor-animation/base.js +1 -1
  491. package/lib/design-tokens/ts/tokens/functional/components/text-cursor-animation/colors.d.ts +1 -1
  492. package/lib/design-tokens/ts/tokens/functional/components/text-cursor-animation/colors.js +1 -1
  493. package/lib/design-tokens/ts/tokens/functional/components/timeline/base.d.ts +1 -1
  494. package/lib/design-tokens/ts/tokens/functional/components/timeline/base.js +1 -1
  495. package/lib/design-tokens/ts/tokens/functional/components/timeline/colors.d.ts +1 -1
  496. package/lib/design-tokens/ts/tokens/functional/components/timeline/colors.js +1 -1
  497. package/lib/design-tokens/ts/tokens/functional/components/token/colors.d.ts +1 -1
  498. package/lib/design-tokens/ts/tokens/functional/components/token/colors.js +1 -1
  499. package/lib/design-tokens/ts/tokens/functional/components/tooltip/colors.d.ts +1 -1
  500. package/lib/design-tokens/ts/tokens/functional/components/tooltip/colors.js +1 -1
  501. package/lib/design-tokens/ts/tokens/functional/components/video-player/base.d.ts +1 -1
  502. package/lib/design-tokens/ts/tokens/functional/components/video-player/base.js +1 -1
  503. package/lib/design-tokens/ts/tokens/functional/size/border.d.ts +1 -1
  504. package/lib/design-tokens/ts/tokens/functional/size/border.js +1 -1
  505. package/lib/design-tokens/ts/tokens/functional/size/breakpoints.d.ts +1 -1
  506. package/lib/design-tokens/ts/tokens/functional/size/breakpoints.js +1 -1
  507. package/lib/design-tokens/ts/tokens/functional/size/size-coarse.d.ts +1 -1
  508. package/lib/design-tokens/ts/tokens/functional/size/size-coarse.js +1 -1
  509. package/lib/design-tokens/ts/tokens/functional/size/size-fine.d.ts +1 -1
  510. package/lib/design-tokens/ts/tokens/functional/size/size-fine.js +1 -1
  511. package/lib/design-tokens/ts/tokens/functional/size/size.d.ts +1 -1
  512. package/lib/design-tokens/ts/tokens/functional/size/size.js +1 -1
  513. package/lib/design-tokens/ts/tokens/functional/size/viewport.d.ts +1 -1
  514. package/lib/design-tokens/ts/tokens/functional/size/viewport.js +1 -1
  515. package/lib/design-tokens/ts/tokens/functional/typography/typography-responsive.d.ts +1 -1
  516. package/lib/design-tokens/ts/tokens/functional/typography/typography-responsive.js +1 -1
  517. package/lib/design-tokens/ts/tokens/functional/typography/typography.d.ts +1 -1
  518. package/lib/design-tokens/ts/tokens/functional/typography/typography.js +1 -1
  519. package/lib/forms/TextInput/TextInput.d.ts +4 -2
  520. package/lib/index.d.ts +1 -0
  521. package/lib/index.js +1 -1
  522. package/llms.txt +3 -2
  523. package/package.json +1 -1
  524. package/esm/ActionMenu/ActionMenu.module-BAeHTqHw.css +0 -1
  525. package/esm/Button/Button.module-9oHHqqnx.css +0 -1
  526. package/esm/ButtonGroup/ButtonGroup.module-wZYyupar.css +0 -1
  527. package/esm/SubNav/SubNav.module-D-gLr0JO.css +0 -1
  528. package/esm/SubdomainNavBar/SubdomainNavBar.module-DLlWpwNa.css +0 -1
  529. package/esm/Tooltip/Tooltip.module-5Km7qGR5.css +0 -1
  530. package/esm/forms/TextInput/TextInput.module-CrmcmO_m.css +0 -1
  531. package/esm/packages/design-tokens/lib/design-tokens/css/tokens/functional/components/action-menu/colors-with-modes-B69RzUbe.css +0 -1
  532. package/esm/packages/design-tokens/lib/design-tokens/css/tokens/functional/components/sub-nav/base-DIkvLW-s.css +0 -1
  533. package/esm/packages/design-tokens/lib/design-tokens/css/tokens/functional/components/sub-nav/colors-with-modes-5gfdihUt.css +0 -1
  534. package/esm/packages/design-tokens/lib/design-tokens/css/tokens/functional/components/subdomain-nav-bar/colors-with-modes-BGj0AiDW.css +0 -1
  535. package/esm/river/RiverBreakoutTabs/RiverBreakoutTabs.module-CB2SZhbE.css +0 -1
@@ -29,6 +29,23 @@ import {ActionMenu} from '@primer/react-brand'
29
29
  </ActionMenu>
30
30
  ```
31
31
 
32
+ ### Icon button trigger-only
33
+
34
+ Use `ActionMenu.IconButton` when a familiar icon clearly communicates that contextual actions are available. Always provide a concise, context-specific `aria-label`, which also supplies content for the visible tooltip.
35
+
36
+ Prefer `ActionMenu.Button` when the icon would be ambiguous without a visible label.
37
+
38
+ ```jsx
39
+ <ActionMenu>
40
+ <ActionMenu.IconButton icon={KebabHorizontalIcon} aria-label="File actions" />
41
+ <ActionMenu.Overlay aria-label="File actions">
42
+ <ActionMenu.Item value="Copy link">Copy link</ActionMenu.Item>
43
+ <ActionMenu.Item value="Rename file">Rename file</ActionMenu.Item>
44
+ <ActionMenu.Item value="Move to archive">Move to archive</ActionMenu.Item>
45
+ </ActionMenu.Overlay>
46
+ </ActionMenu>
47
+ ```
48
+
32
49
  ### Single selection
33
50
 
34
51
  In single selection mode it is important to apply an `aria-label` to the
@@ -62,28 +79,43 @@ render(<App />)
62
79
 
63
80
  ### Split-button layout
64
81
 
65
- In this `mode`, the `ActionMenu` can be shown as a split button with an action (left) and dropdown button (right) with an additional list of actions.
82
+ In this `mode`, the `ActionMenu` can be shown as a split button with an action on the left and a dropdown button with additional actions on the right.
83
+
84
+ The primary action may use a visible label or a familiar icon. For an icon-only primary action, ensure that its `aria-label` names the action, while the required `ActionMenu.Overlay` label names the generated menu trigger.
66
85
 
67
86
  ```jsx
68
- <ActionMenu mode="split-button">
69
- <ActionMenu.Button variant="subtle" as="a" href="#location-for-link" leadingVisual={<StarIcon />}>
70
- Action 1
71
- </ActionMenu.Button>
72
- <ActionMenu.Overlay aria-label="Alternative actions">
73
- <ActionMenu.Item as="a" href="#location-for-link" leadingVisual={<StarIcon />}>
87
+ <Stack direction="horizontal" alignItems="center" gap="condensed">
88
+ <ActionMenu mode="split-button">
89
+ <ActionMenu.Button variant="subtle" as="a" href="#location-for-link" leadingVisual={<StarIcon />}>
74
90
  Action 1
75
- </ActionMenu.Item>
76
- <ActionMenu.Item as="a" href="#location-for-link-2" leadingVisual={<StarIcon />}>
77
- Action 2
78
- </ActionMenu.Item>
79
- <ActionMenu.Item as="a" href="#location-for-link-3" leadingVisual={<StarIcon />}>
80
- Action 3
81
- </ActionMenu.Item>
82
- <ActionMenu.Item as="a" href="#location-for-link-4" leadingVisual={<StarIcon />}>
83
- Action 4
84
- </ActionMenu.Item>
85
- </ActionMenu.Overlay>
86
- </ActionMenu>
91
+ </ActionMenu.Button>
92
+ <ActionMenu.Overlay aria-label="Alternative actions">
93
+ <ActionMenu.Item as="a" href="#location-for-link" leadingVisual={<StarIcon />}>
94
+ Action 1
95
+ </ActionMenu.Item>
96
+ <ActionMenu.Item as="a" href="#location-for-link-2" leadingVisual={<StarIcon />}>
97
+ Action 2
98
+ </ActionMenu.Item>
99
+ <ActionMenu.Item as="a" href="#location-for-link-3" leadingVisual={<StarIcon />}>
100
+ Action 3
101
+ </ActionMenu.Item>
102
+ <ActionMenu.Item as="a" href="#location-for-link-4" leadingVisual={<StarIcon />}>
103
+ Action 4
104
+ </ActionMenu.Item>
105
+ </ActionMenu.Overlay>
106
+ </ActionMenu>
107
+ <ActionMenu mode="split-button">
108
+ <ActionMenu.IconButton as="a" href="#new-document" icon={PlusIcon} aria-label="Create document" />
109
+ <ActionMenu.Overlay aria-label="Creation options">
110
+ <ActionMenu.Item as="a" href="#new-document">
111
+ New document
112
+ </ActionMenu.Item>
113
+ <ActionMenu.Item as="a" href="#upload-file">
114
+ Upload file
115
+ </ActionMenu.Item>
116
+ </ActionMenu.Overlay>
117
+ </ActionMenu>
118
+ </Stack>
87
119
  ```
88
120
 
89
121
  ### Sizes
@@ -135,6 +167,20 @@ In this `mode`, the `ActionMenu` can be shown as a split button with an action (
135
167
  | `onClick` | `(event: MouseEvent) => void` | `undefined` | `false` | Handles activation of the button |
136
168
  | `leadingVisual` | `ReactElement` | `undefined` | `false` | Renders a leading visual before the button label |
137
169
 
170
+ ### ActionMenu.IconButton
171
+
172
+ | name | type | default | required | description |
173
+ | ------------------ | ----------------------------- | ------------- | -------- | ------------------------------------------------------------- |
174
+ | `icon` | `Icon` | | `true` | Icon that represents the menu trigger |
175
+ | `aria-label` | `string` | | `true` | Action-oriented accessible label and visible tooltip text |
176
+ | `as` | `ElementType` | `'button'` | `false` | Element rendered for the primary action |
177
+ | `href` | `string` | `undefined` | `false` | Link destination when the primary action renders as an anchor |
178
+ | `variant` | `IconButtonVariants` | `'secondary'` | `false` | Sets the icon button styling variation |
179
+ | `description` | `string` | `undefined` | `false` | Supplies supplementary tooltip text |
180
+ | `tooltipDirection` | `TooltipDirection` | `'s'` | `false` | Preferred direction for the automatic tooltip |
181
+ | `rounded` | `boolean` | `false` | `false` | Uses a fully rounded shape |
182
+ | `onClick` | `(event: MouseEvent) => void` | `undefined` | `false` | Handles activation; toggles the menu only in default mode |
183
+
138
184
  ### ActionMenu.Overlay `Required`
139
185
 
140
186
  | name | type | default | required | description |
@@ -8,10 +8,12 @@ keywords: ['buttons', 'control', 'action', 'group', 'paired']
8
8
 
9
9
  ## Usage
10
10
 
11
- Use button group to group a set of actions that are related between them or to a single application. E,g, "Log in" and "Sign up" or "Try it out" and "Learn more".
11
+ Use a button group for actions that are related to each other or to a single task, such as “Log in” and “Sign up” or “Try it out” and “Learn more.”
12
12
 
13
13
  Use button group to display a pair of primary and a secondary actions. The primary button is used for the main call to action while the secondary button is a related, less important action.
14
14
 
15
+ Join controls when they represent closely related peer actions with equal hierarchy. Icon-only actions must use a familiar symbol and have a concise, action-oriented accessible name.
16
+
15
17
  **✅ Do**
16
18
 
17
19
  ![](https://github.com/primer/brand/assets/6951037/c69ae38e-819b-4e03-9b92-665a479f188a)
@@ -52,11 +54,12 @@ _Don't stack the buttons horizontally when there's not enough space to avoid tex
52
54
 
53
55
  ### Size
54
56
 
55
- The button group component has two sizes: `medium` and `large`. The `medium` size should be used for most cases. The `large` size should be used when the button group is used in large headings that introduces a page, as in the [Hero](../Hero/index.md) component.
57
+ Use the default size in most cases. Use the smallest size in compact toolbars and the largest size alongside prominent page introductions.
56
58
 
57
59
  ## Related components
58
60
 
59
- - [Button](../Button/index.md): To display a button that performs an action.
60
- - Link: To display a link that navigates to another page.
61
- - [Hero](../Hero/index.md): To display a large heading and a description with a button group.
62
- - [CTA banner](../CTABanner/index.md): To draw attention to or create urgency around a user action.
61
+ - [Button](../Button/index.md): To display an action with a visible label.
62
+ - [Icon button](../IconButton/index.md): To display a familiar icon-only action with an accessible name.
63
+ - Link: To navigate to another page.
64
+ - [Hero](../Hero/index.md): To introduce a page with a large heading, description, and actions.
65
+ - [CTA banner](../CTABanner/index.md): To draw attention to or create urgency around an action.
@@ -8,7 +8,7 @@ storybook: '/brand/storybook/?path=/story/components-buttongroup--playground'
8
8
  ---
9
9
 
10
10
  ```js
11
- import {ActionMenu, Button, ButtonGroup} from '@primer/react-brand'
11
+ import {ActionMenu, Button, ButtonGroup, IconButton} from '@primer/react-brand'
12
12
  ```
13
13
 
14
14
  ## Examples
@@ -24,9 +24,28 @@ This is the default variant for the ButtonGroup component. The first item in the
24
24
  </ButtonGroup>
25
25
  ```
26
26
 
27
+ ### Joined buttons and icon buttons
28
+
29
+ Set `variant="joined"` to connect any number of `Button` and `IconButton` children. Joined controls use the `secondary` variant by default so they share one visual hierarchy; explicit child variants override that default.
30
+
31
+ ```jsx
32
+ <Stack direction="vertical" alignItems="flex-start" gap="condensed">
33
+ <ButtonGroup variant="joined">
34
+ <Button>Previous</Button>
35
+ <Button>Today</Button>
36
+ <Button>Next</Button>
37
+ </ButtonGroup>
38
+ <ButtonGroup variant="joined">
39
+ <IconButton icon={DownloadIcon} aria-label="Download" />
40
+ <IconButton icon={ShareIcon} aria-label="Share" />
41
+ <IconButton icon={KebabHorizontalIcon} aria-label="More actions" />
42
+ </ButtonGroup>
43
+ </Stack>
44
+ ```
45
+
27
46
  ### Action menus
28
47
 
29
- `ButtonGroup` supports up to two `Button` or `ActionMenu` children and applies a default `variant` to each one.
48
+ The default ButtonGroup variant supports up to two children and applies `primary` to the first action and `secondary` to the second. Joined groups support any number of `Button` and `IconButton` children. `ActionMenu` is supported only by the default variant.
30
49
 
31
50
  Explicit `variant` overrides to `Button` or `ActionMenu.Button` will override the default values.
32
51
 
@@ -75,7 +94,8 @@ The `Button` component can render as a `button` or `a` HTML element. By default,
75
94
 
76
95
  ### ButtonGroup
77
96
 
78
- | Name | Type | Default | Description |
79
- | :----------- | :------------------------------- | :--------: | :-------------------------------------- |
80
- | `buttonSize` | `'small' \| 'medium' \| 'large'` | `'medium'` | The size variations available in Button |
81
- | `buttonsAs` | `'button' \| 'a'` | `'button'` | The HTML variations available in Button |
97
+ | Name | Type | Default | Description |
98
+ | :----------- | :------------------------------- | :---------: | :-------------------------------------- |
99
+ | `buttonSize` | `'small' \| 'medium' \| 'large'` | `'medium'` | The size variations available in Button |
100
+ | `buttonsAs` | `'button' \| 'a'` | `'button'` | The HTML variations available in Button |
101
+ | `variant` | `ButtonGroupVariants` | `'default'` | The visual presentation of the group |
@@ -0,0 +1,99 @@
1
+ ---
2
+ title: Icon button
3
+ description: Use an icon button to represent an action with an Octicon instead of a visible text label.
4
+ keywords: ['action', 'button', 'control', 'icon', 'interactive']
5
+ ready: true
6
+ ---
7
+
8
+ ## Usage
9
+
10
+ Icon buttons represent an action with an [Octicon](https://primer.style/octicons) instead of a visible text label. Always choose a familiar Octicon whose meaning is clear in context. Otherwise, use a [button](../Button/index.md) with a visible text label.
11
+
12
+ Every icon button displays a tooltip on hover and keyboard focus. The tooltip repeats the accessible label by default, helping users confirm the action before activating it.
13
+
14
+ **✅ Do**
15
+
16
+ _Use an Octicon that clearly represents the action._
17
+
18
+ **❌ Don't**
19
+
20
+ _Don't pair a familiar Octicon with an unrelated action._
21
+
22
+ ## Labels
23
+
24
+ Every icon button needs a concise name that describes what happens when someone activates it. Begin with a clear verb when possible, such as Search, Share, Close, or Delete item.
25
+
26
+ Describe the action rather than the icon's appearance. Keep supplementary tooltip text short and non-essential.
27
+
28
+ **✅ Do**
29
+
30
+ _Describe the action the button performs._
31
+
32
+ **❌ Don't**
33
+
34
+ _Don't describe the icon's appearance._
35
+
36
+ ## Hierarchy and emphasis
37
+
38
+ Use the default visual appearance for most icon buttons. Only use the stronger accent colors for the highest-priority action in a group.
39
+
40
+ Reserve danger styling for destructive actions. The icon and accessible name must still communicate the destructive outcome without relying on color alone.
41
+
42
+ Use the invisible appearance only when the surrounding interface already provides enough structure and the control remains discoverable in every interaction state.
43
+
44
+ ## Grouping
45
+
46
+ Join closely related peer actions so their relationship is visually clear. Keep unrelated actions separate and provide enough space between their targets.
47
+
48
+ **✅ Do**
49
+
50
+ _Join closely related icon buttons into one group._
51
+
52
+ **❌ Don't**
53
+
54
+ _Don't separate icon buttons that represent one related set of actions._
55
+
56
+ ## Shape
57
+
58
+ Icon buttons are available in two shapes, with square the default.
59
+
60
+ Use the standard square shape for most use-cases. Use a rounded shape only when it matches an established interaction pattern, such as sending a chat message or advancing through media quickly.
61
+
62
+ Keep shape consistent among related controls. Do not use shape alone to communicate an action's meaning or state.
63
+
64
+ **✅ Do**
65
+
66
+ _Use a consistent shape for related icon buttons._
67
+
68
+ **❌ Don't**
69
+
70
+ _Don't mix shapes unless the difference communicates an established pattern._
71
+
72
+ ## Loading
73
+
74
+ Show progress in place when an action takes time to complete. Keep focus on the control, prevent repeated activation, and announce that work is in progress. Use a specific announcement when the surrounding context does not make the operation clear.
75
+
76
+ **✅ Do**
77
+
78
+ _Replace the Octicon with a loading indicator while the action is in progress._
79
+
80
+ **❌ Don't**
81
+
82
+ _Don't use only disabled styling to communicate that an action is in progress._
83
+
84
+ ## Accessibility
85
+
86
+ - Give every icon button an accessible name, even when the icon seems self-explanatory.
87
+ - Ensure the name describes the action and remains accurate when the button's state changes.
88
+ - Keep the tooltip available on both pointer hover and keyboard focus.
89
+ - Ensure the control has a visible focus indicator.
90
+ - Maintain at least a 24x24 pixel target size and provide enough spacing from nearby controls.
91
+ - Treat the Octicon as decorative because the accessible name communicates the purpose.
92
+ - Do not rely on color, shape, or iconography alone to communicate state.
93
+
94
+ ## Related components
95
+
96
+ - [Button](../Button/index.md): For actions with a visible text label.
97
+ - [Button group](../ButtonGroup/index.md): For a set of closely related actions.
98
+ - [Tooltip](../Tooltip/index.md): For guidance on concise labels and supplementary information.
99
+ - [Octicons](https://primer.style/octicons): For the icon library used by icon buttons.
@@ -0,0 +1,189 @@
1
+ ---
2
+ title: Icon button
3
+ description: Use an icon button to represent an action with an Octicon instead of a visible text label.
4
+ keywords: ['action', 'button', 'control', 'icon', 'interactive']
5
+ ready: true
6
+ a11yReviewed: false
7
+ source: https://github.com/primer/brand/blob/main/packages/react/src/IconButton/IconButton.tsx
8
+ storybook: '/brand/storybook/?path=/story/components-iconbutton--playground'
9
+ ---
10
+
11
+ ```js
12
+ import {IconButton} from '@primer/react-brand'
13
+ ```
14
+
15
+ ## Examples
16
+
17
+ ### Default
18
+
19
+ ```jsx
20
+ <IconButton icon={HeartIcon} aria-label="Favorite" />
21
+ ```
22
+
23
+ ### Variants
24
+
25
+ IconButton inherits standard variants from Button and adds `danger` and `invisible` variants.
26
+
27
+ ```jsx
28
+ <Stack direction={{narrow: 'vertical', regular: 'horizontal'}}>
29
+ <IconButton icon={HeartIcon} aria-label="Favorite" variant="primary" />
30
+ <IconButton icon={HeartIcon} aria-label="Favorite" variant="secondary" />
31
+ <IconButton icon={HeartIcon} aria-label="Favorite" variant="subtle" />
32
+ <IconButton icon={TrashIcon} aria-label="Delete item" variant="danger" />
33
+ <IconButton icon={HeartIcon} aria-label="Favorite" variant="invisible" />
34
+ </Stack>
35
+ ```
36
+
37
+ ### Sizes
38
+
39
+ ```jsx
40
+ <Stack direction="horizontal" alignItems="center">
41
+ <IconButton icon={SearchIcon} aria-label="Search" size="small" />
42
+ <IconButton icon={SearchIcon} aria-label="Search" size="medium" />
43
+ <IconButton icon={SearchIcon} aria-label="Search" size="large" />
44
+ </Stack>
45
+ ```
46
+
47
+ ### Rounded
48
+
49
+ Use `rounded` for circular controls, such as a chat submit action.
50
+
51
+ ```jsx
52
+ <IconButton rounded icon={ArrowUpIcon} aria-label="Send message" variant="primary" />
53
+ ```
54
+
55
+ ### In a `ButtonGroup`
56
+
57
+ Use `variant="joined"` to display related `IconButton` components.
58
+
59
+ ```jsx
60
+ <ButtonGroup variant="joined">
61
+ <IconButton icon={DownloadIcon} aria-label="Download" />
62
+ <IconButton icon={ShareIcon} aria-label="Share" />
63
+ <IconButton icon={KebabHorizontalIcon} aria-label="More actions" />
64
+ </ButtonGroup>
65
+ ```
66
+
67
+ ### In a toolbar
68
+
69
+ Use small icon buttons for familiar actions in compact toolbars.
70
+
71
+ ```jsx filename="noinline"
72
+ const App = () => {
73
+ const {isMedium} = useWindowSize()
74
+
75
+ return (
76
+ <Box padding="condensed" backgroundColor="subtle" borderRadius="medium">
77
+ <Stack direction="horizontal" alignItems="center" gap="condensed">
78
+ {isMedium !== false && (
79
+ <FormControl fullWidth>
80
+ <FormControl.Label visuallyHidden>Search files</FormControl.Label>
81
+ <TextInput type="search" size="small" leadingVisual={<SearchIcon />} placeholder="Search files" fullWidth />
82
+ </FormControl>
83
+ )}
84
+ <Stack direction="horizontal" alignItems="center" gap={4} padding="none">
85
+ <ActionMenu mode="split-button" size="small">
86
+ <ActionMenu.IconButton as="a" href="#new-project" icon={PlusIcon} aria-label="Create project" />
87
+ <ActionMenu.Overlay aria-label="Creation options">
88
+ <ActionMenu.Item as="a" href="#new-project">
89
+ New project
90
+ </ActionMenu.Item>
91
+ <ActionMenu.Item as="a" href="#upload-files">
92
+ Upload files
93
+ </ActionMenu.Item>
94
+ </ActionMenu.Overlay>
95
+ </ActionMenu>
96
+ <IconButton size="small" icon={ShareIcon} aria-label="Share workspace" />
97
+ <IconButton size="small" icon={InboxIcon} aria-label="Open notifications" />
98
+ <Avatar size={32} src="/images/avatar-mona.png" alt="Mona profile" />
99
+ </Stack>
100
+ </Stack>
101
+ </Box>
102
+ )
103
+ }
104
+
105
+ render(<App />)
106
+ ```
107
+
108
+ ### In an `ActionMenu`
109
+
110
+ Use an icon button as the trigger when a familiar icon clearly communicates that contextual actions are available. The menu label also supplies the accessible name for the generated menu trigger.
111
+
112
+ ```jsx
113
+ <Stack direction="horizontal" alignItems="center" gap="condensed">
114
+ <ActionMenu>
115
+ <ActionMenu.IconButton icon={KebabHorizontalIcon} aria-label="File actions" />
116
+ <ActionMenu.Overlay aria-label="File actions">
117
+ <ActionMenu.Item value="Copy link">Copy link</ActionMenu.Item>
118
+ <ActionMenu.Item value="Rename file">Rename file</ActionMenu.Item>
119
+ <ActionMenu.Item value="Move to archive">Move to archive</ActionMenu.Item>
120
+ </ActionMenu.Overlay>
121
+ </ActionMenu>
122
+ <ActionMenu mode="split-button">
123
+ <ActionMenu.IconButton as="a" href="#new-document" icon={PlusIcon} aria-label="Create document" />
124
+ <ActionMenu.Overlay aria-label="Creation options">
125
+ <ActionMenu.Item as="a" href="#new-document">
126
+ New document
127
+ </ActionMenu.Item>
128
+ <ActionMenu.Item as="a" href="#upload-file">
129
+ Upload file
130
+ </ActionMenu.Item>
131
+ </ActionMenu.Overlay>
132
+ </ActionMenu>
133
+ </Stack>
134
+ ```
135
+
136
+ ### Description
137
+
138
+ Use `description` to add supplementary information to the tooltip while keeping `aria-label` as the action name.
139
+
140
+ ```jsx
141
+ <IconButton icon={InboxIcon} aria-label="Notifications" description="You have unread notifications" />
142
+ ```
143
+
144
+ ### Delayed tooltip
145
+
146
+ Wrap IconButton in Tooltip with `delay="long"` when familiar controls appear in a dense group and immediate pointer tooltips would be distracting. Keyboard focus remains immediate.
147
+
148
+ ```jsx
149
+ <Tooltip text="Favorite" delay="long">
150
+ <IconButton icon={HeartIcon} aria-label="Favorite" />
151
+ </Tooltip>
152
+ ```
153
+
154
+ ### Loading
155
+
156
+ ```jsx
157
+ <IconButton loading loadingAnnouncement="Saving favorite" icon={HeartIcon} aria-label="Favorite" />
158
+ ```
159
+
160
+ ### Inactive
161
+
162
+ Inactive controls use the same muted style for every variant and retain focus and activation so they can explain why an action is unavailable. They render with `aria-disabled="true"` and must not perform their normal action.
163
+
164
+ ```jsx
165
+ <IconButton
166
+ inactive
167
+ icon={HeartIcon}
168
+ aria-label="Favorite"
169
+ description="Favorites are temporarily unavailable"
170
+ onClick={() => window.alert('Favorites are temporarily unavailable. Try again later.')}
171
+ />
172
+ ```
173
+
174
+ ## Component props
175
+
176
+ | Name | Type | Default | Required | Description |
177
+ | :-------------------- | :------------------- | :-----------: | :------: | :-------------------------------------------------------------------------------------- |
178
+ | `icon` | `Icon` | | `true` | Octicon component rendered in the center of the button |
179
+ | `aria-label` | `string` | | `true` | Required non-empty accessible action name and default tooltip label |
180
+ | `variant` | `IconButtonVariants` | `'secondary'` | `false` | Button variants plus IconButton-only `danger` and `invisible` variations |
181
+ | `size` | `IconButtonSizes` | `'medium'` | `false` | Control sizes inherited from Button |
182
+ | `description` | `string` | `undefined` | `false` | Supplementary tooltip description |
183
+ | `tooltipDirection` | `TooltipDirections` | `'s'` | `false` | Preferred tooltip direction |
184
+ | `inactive` | `boolean` | `false` | `false` | Applies variant-independent muted styling while preserving input for required feedback |
185
+ | `loading` | `boolean` | `false` | `false` | Replaces the icon with a loading indicator and blocks activation without removing focus |
186
+ | `loadingAnnouncement` | `string` | `'Loading'` | `false` | Polite live-region message announced while loading |
187
+ | `rounded` | `boolean` | `false` | `false` | Renders the control with a fully circular shape |
188
+ | `disabled` | `boolean` | `false` | `false` | Disables the control using Button's native or polymorphic behavior |
189
+ | `as` | `React.ElementType` | `'button'` | `false` | Element rendered by Button; provide `href` when rendering an anchor |
@@ -45,6 +45,37 @@ import {SubNav} from '@primer/react-brand'
45
45
  </div>
46
46
  ```
47
47
 
48
+ ### Localized menu controls
49
+
50
+ Internal `SubNav` labels such as the "More" link are rendered in `en` by default. Use `menuLabels` to customize these to different locales.
51
+
52
+ ```jsx
53
+ <div style={{position: 'relative', height: 360, width: '100%'}}>
54
+ <SubNav
55
+ menuLabels={{
56
+ menuLabel: 'Menú de navegación',
57
+ closeLabel: 'Cerrar menú de navegación',
58
+ activeLabel: 'Menú de navegación. Página actual:',
59
+ closeActiveLabel: 'Cerrar menú de navegación. Página actual:',
60
+ overflowMenuLabel: 'Más',
61
+ }}
62
+ >
63
+ <SubNav.Heading href="#">AI</SubNav.Heading>
64
+ <SubNav.SubHeading href="#">GitHub Copilot</SubNav.SubHeading>
65
+ <SubNav.Link href="#">Aplicación de escritorio</SubNav.Link>
66
+ <SubNav.Link href="#" aria-current="page">
67
+ Copilot en VS Code
68
+ </SubNav.Link>
69
+ <SubNav.Link href="#">Agentes en GitHub</SubNav.Link>
70
+ <SubNav.Link href="#">Copilot CLI</SubNav.Link>
71
+ <SubNav.Link href="#">Revisión de código de Copilot</SubNav.Link>
72
+ <SubNav.Link href="#">Para empresas</SubNav.Link>
73
+ <SubNav.Link href="#">Tutoriales</SubNav.Link>
74
+ <SubNav.Link href="#">Planes y precios</SubNav.Link>
75
+ </SubNav>
76
+ </div>
77
+ ```
78
+
48
79
  ### Optional CTA
49
80
 
50
81
  ```jsx
@@ -72,7 +103,7 @@ Submenus appear as a dropdown by default.
72
103
  <SubNav.Heading href="#">Features</SubNav.Heading>
73
104
  <SubNav.Link href="#" aria-current="page">
74
105
  Actions
75
- <SubNav.SubMenu>
106
+ <SubNav.SubMenu aria-label="Actions submenu">
76
107
  <SubNav.Link href="#">Actions feature one</SubNav.Link>
77
108
  <SubNav.Link href="#">Actions feature two</SubNav.Link>
78
109
  <SubNav.Link href="#">Actions feature three</SubNav.Link>
@@ -116,9 +147,22 @@ Ensure that the text of each `SubNav.Link` within the anchor-based submenu fits
116
147
 
117
148
  ### SubNav `Required`
118
149
 
119
- | name | type | default | required | description |
120
- | ----------- | --------- | ------- | -------- | ----------------------------------------------------------------------------- |
121
- | `fullWidth` | `boolean` | `false` | `false` | Allows the SubNav to be used at full width, removing default internal padding |
150
+ | name | type | default | required | description |
151
+ | ------------ | --------------------------- | -------------- | -------- | ----------------------------------------------------------------------------- |
152
+ | `fullWidth` | `boolean` | `false` | `false` | Allows the SubNav to be used at full width, removing default internal padding |
153
+ | `menuLabels` | `Partial<SubNavMenuLabels>` | English labels | `false` | Customizes the menu's accessible labels |
154
+
155
+ `SubNavMenuLabels` is exported from `@primer/react-brand`.
156
+
157
+ #### Menu labels
158
+
159
+ | Field | Type | English default | Purpose |
160
+ | ------------------- | -------- | -------------------------------------- | ----------------------------------------------------------------------------- |
161
+ | `menuLabel` | `string` | `Navigation menu` | Accessible label while the narrow menu is closed |
162
+ | `closeLabel` | `string` | `Close navigation menu` | Accessible label while the narrow menu is open |
163
+ | `activeLabel` | `string` | `Navigation menu. Current page:` | Complete prefix while the narrow menu is closed and a current page is present |
164
+ | `closeActiveLabel` | `string` | `Close navigation menu. Current page:` | Complete prefix while the narrow menu is open and a current page is present |
165
+ | `overflowMenuLabel` | `string` | `More` | Visible and accessible label for the desktop overflow menu |
122
166
 
123
167
  ### SubNav.Heading `Required`
124
168
 
@@ -150,7 +194,8 @@ Ensure that the text of each `SubNav.Link` within the anchor-based submenu fits
150
194
 
151
195
  ### SubNav.SubMenu
152
196
 
153
- | name | type | default | required | description |
154
- | ---------- | ----------------------- | ----------- | -------- | ------------------------------------- |
155
- | `children` | `SubNav.Link` | | `false` | Container for submenu links |
156
- | `variant` | `SubNavSubMenuVariants` | `'default'` | `false` | Alternative presentation for submenus |
197
+ | name | type | default | required | description |
198
+ | ------------ | ----------------------- | ---------------------------- | -------- | ----------------------------------------------------------------------------------------------------------------- |
199
+ | `children` | `SubNav.Link` | | `false` | Container for submenu links |
200
+ | `variant` | `SubNavSubMenuVariants` | `'default'` | `false` | Alternative presentation for submenus |
201
+ | `aria-label` | `string` | `'Sub navigation'` (content) | `false` | Complete accessible name for the submenu toggle and content; names the navigation landmark for the anchor variant |
@@ -288,5 +288,7 @@ render(<LocalizedMenu />)
288
288
  | `className` | `string` | | Applies a custom class |
289
289
  | `href` | `string` | | Destination path for the anchor element |
290
290
  | `isExternal` | `boolean` | `false` | Renders an external-link icon after the link when `true` |
291
+ | `rel` | `string` | | Sets the relationship between the current page and link |
292
+ | `target` | `string` | | Sets where the linked document opens |
291
293
 
292
- Additional props are passed to the wrapping `<li>` element. [See MDN for accepted list item attributes](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/li#attributes).
294
+ The `target` and `rel` props are passed to the rendered anchor. Other additional props are passed to the wrapping `<li>` element.
@@ -23,7 +23,8 @@ import {Tooltip} from '@primer/react-brand'
23
23
 
24
24
  ### Custom direction
25
25
 
26
- By default, tooltips appear below the element. You can change the direction by passing the `direction` prop with a value of `n`, `e`, `s`, or `w`.
26
+ By default, tooltips appear below the element. You can change the direction by passing the `direction` prop with a cardinal or diagonal direction.
27
+ Supported values are `n`, `ne`, `e`, `se`, `s`, `sw`, `w`, and `nw`.
27
28
 
28
29
  As long as there is enough room in the viewport, the tooltip will appear in the specified direction. If there is not enough room, the tooltip will appear in whatever direction it can place the tooltip without overflowing the viewport.
29
30
 
@@ -33,29 +34,39 @@ As long as there is enough room in the viewport, the tooltip will appear in the
33
34
  </Tooltip>
34
35
  ```
35
36
 
36
- ### Substitute a visible label
37
+ ### Delay
37
38
 
38
- If a ubiquitously understood icon is used in place of a text label, you can use the `type` to provide a text label for assistive technologies such as screen readers.
39
+ Tooltips use a short pointer delay by default to avoid appearing while the pointer passes over a trigger. Use `medium` or `long` for groups of familiar controls where immediate tooltips would be distracting. Keyboard focus always opens the tooltip immediately.
40
+
41
+ ```jsx
42
+ <Tooltip text="Sample tooltip content" delay="long">
43
+ <Button>Long delay</Button>
44
+ </Tooltip>
45
+ ```
46
+
47
+ ### With an icon button
48
+
49
+ Use `IconButton` when a familiar Octicon can replace a visible text label. Its required `aria-label` provides the accessible name and automatically appears in a tooltip on hover and keyboard focus, so it does not need to be wrapped in `Tooltip`.
39
50
 
40
51
  Use this with caution. It is generally better to use a visible label for better usability and accessibility.
41
52
 
42
53
  ```jsx
43
- <Tooltip text="Go fullscreen" type="label">
44
- <Button>
45
- <ScreenFullIcon />
46
- </Button>
47
- </Tooltip>
54
+ <IconButton icon={ScreenFullIcon} aria-label="Go fullscreen" />
48
55
  ```
49
56
 
57
+ For other custom icon-only controls, use `type="label"` to make the tooltip text the trigger's accessible name.
58
+
50
59
  ## Component props
51
60
 
52
- | name | type | default | required | description |
53
- | ----------- | -------------------------- | --------------- | -------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
54
- | `direction` | `'n' \| 'e' \| 's' \| 'w'` | `'s'` | `false` | The side the tooltip appears on |
55
- | `text` | `string` | `undefined` | `true` | The text to be displayed in the tooltip |
56
- | `type` | `'description' \| 'label'` | `'description'` | `false` | The type of tooltip. `label` is used for labelling the element that triggers tooltip. `description` is used for describing or adding a supplementary information to the element that triggers the tooltip. |
61
+ | name | type | default | required | description |
62
+ | ----------- | -------------------------- | --------------- | -------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
63
+ | `direction` | `TooltipDirections` | `'s'` | `false` | The side the tooltip appears on |
64
+ | `delay` | `TooltipDelays` | `'short'` | `false` | Pointer hover delay: `short` (50ms), `medium` (400ms), or `long` (1200ms). Keyboard focus is immediate. |
65
+ | `text` | `string` | `undefined` | `true` | The text to be displayed in the tooltip |
66
+ | `type` | `'description' \| 'label'` | `'description'` | `false` | The tooltip's semantic relationship to its trigger. `label` provides the accessible name, while `description` provides supplementary information alongside the trigger's existing label. |
57
67
 
58
68
  ## Related components
59
69
 
60
70
  - Popover: For displaying more complex interactive content that appears when triggered
61
71
  - [Button](../Button/index.md): Often used in conjunction with tooltips
72
+ - [Icon button](../IconButton/index.md): For familiar icon-only actions with automatic tooltips