@primer/react-brand 0.74.0 → 0.75.0-rc.89e3cadf

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 (957) hide show
  1. package/docs/components/RiverAccordion/index.md +49 -6
  2. package/docs/components/SubdomainNavBar/index.md +215 -86
  3. package/docs/index.md +2 -2
  4. package/esm/Accordion/Accordion.d.ts +2 -2
  5. package/esm/Accordion/Accordion.d.ts.map +1 -1
  6. package/esm/Accordion/Accordion.js +2 -2
  7. package/esm/Accordion/Accordion.js.map +1 -1
  8. package/esm/Accordion/Accordion.module.js +6 -5
  9. package/esm/ActionMenu/ActionMenu.d.ts +2 -2
  10. package/esm/ActionMenu/ActionMenu.js +3 -2
  11. package/esm/ActionMenu/ActionMenu.js.map +1 -1
  12. package/esm/ActionMenu/ActionMenu.module.js +7 -6
  13. package/esm/AnchorNav/AnchorNav.d.ts +4 -4
  14. package/esm/AnchorNav/AnchorNav.d.ts.map +1 -1
  15. package/esm/AnchorNav/AnchorNav.js +9 -4
  16. package/esm/AnchorNav/AnchorNav.js.map +1 -1
  17. package/esm/AnchorNav/AnchorNav.module.js +5 -4
  18. package/esm/AnchorNav/useExpandedMenu.js.map +1 -1
  19. package/esm/Avatar/Avatar.js +1 -1
  20. package/esm/Avatar/Avatar.js.map +1 -1
  21. package/esm/Avatar/Avatar.module.js +5 -4
  22. package/esm/Bento/Bento.d.ts +4 -4
  23. package/esm/Bento/Bento.js +1 -1
  24. package/esm/Bento/Bento.js.map +1 -1
  25. package/esm/Bento/Bento.module.js +7 -6
  26. package/esm/Box/Box.d.ts +1 -1
  27. package/esm/Box/Box.d.ts.map +1 -1
  28. package/esm/Box/Box.js +1 -1
  29. package/esm/Box/Box.js.map +1 -1
  30. package/esm/Breadcrumbs/Breadcrumbs.js +1 -1
  31. package/esm/Breadcrumbs/Breadcrumbs.js.map +1 -1
  32. package/esm/Breadcrumbs/Breadcrumbs.module.js +7 -6
  33. package/esm/BreakoutBanner/BreakoutBanner.js +1 -1
  34. package/esm/BreakoutBanner/BreakoutBanner.js.map +1 -1
  35. package/esm/BreakoutBanner/BreakoutBanner.module.js +5 -4
  36. package/esm/Button/Button.js +1 -1
  37. package/esm/Button/Button.js.map +1 -1
  38. package/esm/Button/Button.module.js +5 -4
  39. package/esm/ButtonGroup/ButtonGroup.js +1 -1
  40. package/esm/ButtonGroup/ButtonGroup.js.map +1 -1
  41. package/esm/ButtonGroup/ButtonGroup.module.js +3 -2
  42. package/esm/CTABanner/CTABanner.d.ts +1 -1
  43. package/esm/CTABanner/CTABanner.js +2 -2
  44. package/esm/CTABanner/CTABanner.js.map +1 -1
  45. package/esm/CTABanner/CTABanner.module.js +4 -3
  46. package/esm/CTAForm/CTAForm.js +1 -1
  47. package/esm/CTAForm/CTAForm.js.map +1 -1
  48. package/esm/CTAForm/CTAForm.module.js +4 -3
  49. package/esm/Card/Card.d.ts +2 -2
  50. package/esm/Card/Card.d.ts.map +1 -1
  51. package/esm/Card/Card.js +3 -3
  52. package/esm/Card/Card.js.map +1 -1
  53. package/esm/Card/Card.module.js +18 -17
  54. package/esm/ComparisonTable/ComparisonTable.d.ts +3 -3
  55. package/esm/ComparisonTable/ComparisonTable.js +1 -1
  56. package/esm/ComparisonTable/ComparisonTable.js.map +1 -1
  57. package/esm/ComparisonTable/ComparisonTable.module.js +4 -3
  58. package/esm/ExpandableArrow/ExpandableArrow.d.ts +2 -1
  59. package/esm/ExpandableArrow/ExpandableArrow.d.ts.map +1 -1
  60. package/esm/ExpandableArrow/ExpandableArrow.js +1 -1
  61. package/esm/ExpandableArrow/ExpandableArrow.js.map +1 -1
  62. package/esm/ExpandableArrow/ExpandableArrow.module.js +4 -3
  63. package/esm/EyebrowBanner/EyebrowBanner.js +2 -2
  64. package/esm/EyebrowBanner/EyebrowBanner.js.map +1 -1
  65. package/esm/EyebrowBanner/EyebrowBanner.module.js +12 -11
  66. package/esm/EyebrowText/EyebrowText.js +1 -1
  67. package/esm/EyebrowText/EyebrowText.js.map +1 -1
  68. package/esm/EyebrowText/EyebrowText.module.js +4 -3
  69. package/esm/FAQ/FAQ.d.ts +2 -2
  70. package/esm/FAQ/FAQ.d.ts.map +1 -1
  71. package/esm/FAQ/FAQ.js +1 -1
  72. package/esm/FAQ/FAQ.js.map +1 -1
  73. package/esm/FAQ/FAQ.module.js +7 -6
  74. package/esm/FAQ/FAQGroup.d.ts +2 -2
  75. package/esm/FAQ/FAQGroup.d.ts.map +1 -1
  76. package/esm/FAQ/FAQGroup.js +7 -3
  77. package/esm/FAQ/FAQGroup.js.map +1 -1
  78. package/esm/FAQ/FAQGroup.module.js +8 -7
  79. package/esm/Footnotes/Footnotes.d.ts +2 -2
  80. package/esm/Footnotes/Footnotes.d.ts.map +1 -1
  81. package/esm/Footnotes/Footnotes.js +2 -2
  82. package/esm/Footnotes/Footnotes.js.map +1 -1
  83. package/esm/Footnotes/Footnotes.module.js +7 -6
  84. package/esm/FrostedGlassVFX/FrostedGlassVFX.d.ts +1 -1
  85. package/esm/FrostedGlassVFX/FrostedGlassVFX.d.ts.map +1 -1
  86. package/esm/FrostedGlassVFX/FrostedGlassVFX.js +1 -1
  87. package/esm/FrostedGlassVFX/FrostedGlassVFX.js.map +1 -1
  88. package/esm/FrostedGlassVFX/FrostedGlassVFX.module.js +4 -3
  89. package/esm/Grid/Grid.d.ts +2 -2
  90. package/esm/Grid/Grid.js +2 -2
  91. package/esm/Grid/Grid.js.map +1 -1
  92. package/esm/Grid/Grid.module.js +5 -4
  93. package/esm/Heading/Heading.js +1 -1
  94. package/esm/Heading/Heading.js.map +1 -1
  95. package/esm/Heading/Heading.module.js +4 -3
  96. package/esm/Hero/Hero.js +1 -1
  97. package/esm/Hero/Hero.js.map +1 -1
  98. package/esm/Hero/Hero.module.js +4 -3
  99. package/esm/Hero/HeroContext.js.map +1 -1
  100. package/esm/Hero/sub-components/HeroButtonGroup.js +1 -1
  101. package/esm/Hero/sub-components/HeroButtonGroup.js.map +1 -1
  102. package/esm/Hero/sub-components/HeroDescription.js +1 -1
  103. package/esm/Hero/sub-components/HeroDescription.js.map +1 -1
  104. package/esm/Hero/sub-components/HeroEyebrow.js +1 -1
  105. package/esm/Hero/sub-components/HeroEyebrow.js.map +1 -1
  106. package/esm/Hero/sub-components/HeroHeading.js +1 -1
  107. package/esm/Hero/sub-components/HeroHeading.js.map +1 -1
  108. package/esm/Hero/sub-components/HeroImage.js +1 -1
  109. package/esm/Hero/sub-components/HeroImage.js.map +1 -1
  110. package/esm/Hero/sub-components/HeroLabel.d.ts +1 -0
  111. package/esm/Hero/sub-components/HeroLabel.d.ts.map +1 -1
  112. package/esm/Hero/sub-components/HeroLabel.js +8 -7
  113. package/esm/Hero/sub-components/HeroLabel.js.map +1 -1
  114. package/esm/Hero/sub-components/HeroPrimaryAction.js.map +1 -1
  115. package/esm/Hero/sub-components/HeroSecondaryAction.js.map +1 -1
  116. package/esm/Hero/sub-components/HeroVideo.js +2 -2
  117. package/esm/Hero/sub-components/HeroVideo.js.map +1 -1
  118. package/esm/IDE/IDE.d.ts +1 -1
  119. package/esm/IDE/IDE.js +3 -2
  120. package/esm/IDE/IDE.js.map +1 -1
  121. package/esm/IDE/IDE.module.js +8 -7
  122. package/esm/Icon/Icon.d.ts +2 -2
  123. package/esm/Icon/Icon.d.ts.map +1 -1
  124. package/esm/Icon/Icon.js +2 -2
  125. package/esm/Icon/Icon.js.map +1 -1
  126. package/esm/Icon/Icon.module.js +4 -3
  127. package/esm/Image/Image.d.ts +1 -1
  128. package/esm/Image/Image.d.ts.map +1 -1
  129. package/esm/Image/Image.js +1 -1
  130. package/esm/Image/Image.js.map +1 -1
  131. package/esm/Image/Image.module.js +5 -4
  132. package/esm/InlineCode/InlineCode.js +1 -1
  133. package/esm/InlineCode/InlineCode.js.map +1 -1
  134. package/esm/InlineCode/InlineCode.module.js +5 -4
  135. package/esm/InlineLink/InlineLink.js +2 -2
  136. package/esm/InlineLink/InlineLink.js.map +1 -1
  137. package/esm/InlineLink/InlineLink.module.js +3 -2
  138. package/esm/Label/Label.js +1 -1
  139. package/esm/Label/Label.js.map +1 -1
  140. package/esm/Label/Label.module.js +6 -5
  141. package/esm/Link/Link.d.ts +1 -1
  142. package/esm/Link/Link.d.ts.map +1 -1
  143. package/esm/Link/Link.js +2 -2
  144. package/esm/Link/Link.js.map +1 -1
  145. package/esm/Link/Link.module.js +4 -3
  146. package/esm/LogoSuite/LogoSuite.d.ts +1 -1
  147. package/esm/LogoSuite/LogoSuite.js +4 -3
  148. package/esm/LogoSuite/LogoSuite.js.map +1 -1
  149. package/esm/LogoSuite/LogoSuite.module.js +11 -10
  150. package/esm/MediaPlaylist/MediaPlaylist.d.ts +4 -4
  151. package/esm/MediaPlaylist/MediaPlaylist.d.ts.map +1 -1
  152. package/esm/MediaPlaylist/MediaPlaylist.js +1 -1
  153. package/esm/MediaPlaylist/MediaPlaylist.js.map +1 -1
  154. package/esm/MediaPlaylist/MediaPlaylist.module.js +25 -24
  155. package/esm/MediaPlaylist/useMediaPlaylist.js.map +1 -1
  156. package/esm/MinimalFooter/MinimalFooter.d.ts +3 -3
  157. package/esm/MinimalFooter/MinimalFooter.d.ts.map +1 -1
  158. package/esm/MinimalFooter/MinimalFooter.js +4 -3
  159. package/esm/MinimalFooter/MinimalFooter.js.map +1 -1
  160. package/esm/MinimalFooter/MinimalFooter.module.js +15 -14
  161. package/esm/MinimalVideoPlayer/MinimalVideoPlayer.js +2 -2
  162. package/esm/MinimalVideoPlayer/MinimalVideoPlayer.js.map +1 -1
  163. package/esm/MinimalVideoPlayer/MinimalVideoPlayer.module.js +6 -5
  164. package/esm/MinimalVideoPlayer/useMinimalVideoPlayback.js.map +1 -1
  165. package/esm/NavList/NavList.js +2 -2
  166. package/esm/NavList/NavList.js.map +1 -1
  167. package/esm/NavList/NavList.module.js +18 -17
  168. package/esm/Pagination/Pagination.d.ts +1 -1
  169. package/esm/Pagination/Pagination.d.ts.map +1 -1
  170. package/esm/Pagination/Pagination.js +1 -1
  171. package/esm/Pagination/Pagination.js.map +1 -1
  172. package/esm/Pagination/Pagination.module.js +11 -10
  173. package/esm/Pagination/model.js.map +1 -1
  174. package/esm/Pillar/Pillar.d.ts +2 -2
  175. package/esm/Pillar/Pillar.d.ts.map +1 -1
  176. package/esm/Pillar/Pillar.js +1 -1
  177. package/esm/Pillar/Pillar.js.map +1 -1
  178. package/esm/Pillar/Pillar.module.js +9 -8
  179. package/esm/PricingOptions/PricingOptions.d.ts +1 -1
  180. package/esm/PricingOptions/PricingOptions.js +5 -3
  181. package/esm/PricingOptions/PricingOptions.js.map +1 -1
  182. package/esm/PricingOptions/PricingOptions.module.js +13 -12
  183. package/esm/Prose/Prose.js +1 -1
  184. package/esm/Prose/Prose.js.map +1 -1
  185. package/esm/Prose/Prose.module.js +4 -3
  186. package/esm/Section/Section.js +1 -1
  187. package/esm/Section/Section.js.map +1 -1
  188. package/esm/Section/Section.module.js +5 -4
  189. package/esm/SectionIntro/SectionIntro.js +1 -1
  190. package/esm/SectionIntro/SectionIntro.js.map +1 -1
  191. package/esm/SectionIntro/SectionIntro.module.js +4 -3
  192. package/esm/SectionIntroStacked/SectionIntroStacked.d.ts +3 -3
  193. package/esm/SectionIntroStacked/SectionIntroStacked.js +1 -1
  194. package/esm/SectionIntroStacked/SectionIntroStacked.js.map +1 -1
  195. package/esm/SectionIntroStacked/SectionIntroStacked.module.js +6 -5
  196. package/esm/Stack/Stack.js +1 -1
  197. package/esm/Stack/Stack.js.map +1 -1
  198. package/esm/Stack/Stack.module.js +4 -3
  199. package/esm/Statistic/Statistic.js +1 -1
  200. package/esm/Statistic/Statistic.js.map +1 -1
  201. package/esm/Statistic/Statistic.module.js +6 -5
  202. package/esm/SubNav/SubNav.d.ts +4 -4
  203. package/esm/SubNav/SubNav.d.ts.map +1 -1
  204. package/esm/SubNav/SubNav.js +6 -4
  205. package/esm/SubNav/SubNav.js.map +1 -1
  206. package/esm/SubNav/SubNav.module.js +9 -8
  207. package/esm/SubNav/useContainsFocus.js.map +1 -1
  208. package/esm/SubdomainNavBar/NavigationVisbilityObserver.d.ts +3 -1
  209. package/esm/SubdomainNavBar/NavigationVisbilityObserver.d.ts.map +1 -1
  210. package/esm/SubdomainNavBar/NavigationVisbilityObserver.js +117 -64
  211. package/esm/SubdomainNavBar/NavigationVisbilityObserver.js.map +1 -1
  212. package/esm/SubdomainNavBar/SubdomainNavBar.d.ts +157 -20
  213. package/esm/SubdomainNavBar/SubdomainNavBar.d.ts.map +1 -1
  214. package/esm/SubdomainNavBar/SubdomainNavBar.js +479 -299
  215. package/esm/SubdomainNavBar/SubdomainNavBar.js.map +1 -1
  216. package/esm/SubdomainNavBar/SubdomainNavBar.module-WIrpYyjV.css +1 -0
  217. package/esm/SubdomainNavBar/SubdomainNavBar.module.js +36 -11
  218. package/esm/SubdomainNavBar/SubdomainNavBar.module.js.map +1 -1
  219. package/esm/SubdomainNavBar/SubdomainNavBarLinkContext.d.ts +9 -0
  220. package/esm/SubdomainNavBar/SubdomainNavBarLinkContext.d.ts.map +1 -0
  221. package/esm/SubdomainNavBar/SubdomainNavBarLinkContext.js +10 -0
  222. package/esm/SubdomainNavBar/SubdomainNavBarLinkContext.js.map +1 -0
  223. package/esm/SubdomainNavBar/useSearchKeyboardShortcut.d.ts +8 -0
  224. package/esm/SubdomainNavBar/useSearchKeyboardShortcut.d.ts.map +1 -0
  225. package/esm/SubdomainNavBar/useSearchKeyboardShortcut.js +52 -0
  226. package/esm/SubdomainNavBar/useSearchKeyboardShortcut.js.map +1 -0
  227. package/esm/SubdomainNavBar/useSearchResults.d.ts +24 -0
  228. package/esm/SubdomainNavBar/useSearchResults.d.ts.map +1 -0
  229. package/esm/SubdomainNavBar/useSearchResults.js +57 -0
  230. package/esm/SubdomainNavBar/useSearchResults.js.map +1 -0
  231. package/esm/SubdomainNavBar/useVisibilityObserver.d.ts +1 -1
  232. package/esm/SubdomainNavBar/useVisibilityObserver.d.ts.map +1 -1
  233. package/esm/SubdomainNavBar/useVisibilityObserver.js +60 -23
  234. package/esm/SubdomainNavBar/useVisibilityObserver.js.map +1 -1
  235. package/esm/Tabs/Tabs.js +3 -2
  236. package/esm/Tabs/Tabs.js.map +1 -1
  237. package/esm/Tabs/Tabs.module.js +12 -11
  238. package/esm/Testimonial/Testimonial.d.ts +1 -1
  239. package/esm/Testimonial/Testimonial.d.ts.map +1 -1
  240. package/esm/Testimonial/Testimonial.js +1 -1
  241. package/esm/Testimonial/Testimonial.js.map +1 -1
  242. package/esm/Testimonial/Testimonial.module.js +8 -7
  243. package/esm/Text/Text.d.ts +1 -1
  244. package/esm/Text/Text.d.ts.map +1 -1
  245. package/esm/Text/Text.js +1 -1
  246. package/esm/Text/Text.js.map +1 -1
  247. package/esm/Text/Text.module.js +4 -3
  248. package/esm/TextCursorAnimation/TextCursorAnimation.d.ts +8 -3
  249. package/esm/TextCursorAnimation/TextCursorAnimation.d.ts.map +1 -1
  250. package/esm/TextCursorAnimation/TextCursorAnimation.js +54 -28
  251. package/esm/TextCursorAnimation/TextCursorAnimation.js.map +1 -1
  252. package/esm/TextCursorAnimation/TextCursorAnimation.module-BS4hPR8H.css +1 -0
  253. package/esm/TextCursorAnimation/TextCursorAnimation.module.js +17 -6
  254. package/esm/TextCursorAnimation/TextCursorAnimation.module.js.map +1 -1
  255. package/esm/ThemeProvider/ThemeProvider.d.ts +1 -1
  256. package/esm/ThemeProvider/ThemeProvider.d.ts.map +1 -1
  257. package/esm/ThemeProvider/ThemeProvider.js +4 -4
  258. package/esm/ThemeProvider/ThemeProvider.js.map +1 -1
  259. package/esm/ThemeProvider/useTheme.js.map +1 -1
  260. package/esm/Tiles/Tiles.js +2 -2
  261. package/esm/Tiles/Tiles.js.map +1 -1
  262. package/esm/Tiles/Tiles.module.js +4 -3
  263. package/esm/Timeline/Timeline.d.ts +3 -3
  264. package/esm/Timeline/Timeline.d.ts.map +1 -1
  265. package/esm/Timeline/Timeline.js +2 -2
  266. package/esm/Timeline/Timeline.js.map +1 -1
  267. package/esm/Timeline/Timeline.module.js +5 -4
  268. package/esm/Token/Token.js +1 -1
  269. package/esm/Token/Token.js.map +1 -1
  270. package/esm/Token/Token.module.js +6 -5
  271. package/esm/Tooltip/Tooltip.js +2 -2
  272. package/esm/Tooltip/Tooltip.js.map +1 -1
  273. package/esm/Tooltip/Tooltip.module.js +4 -3
  274. package/esm/VideoPlayer/VideoPlayer.d.ts +2 -2
  275. package/esm/VideoPlayer/VideoPlayer.js +2 -2
  276. package/esm/VideoPlayer/VideoPlayer.js.map +1 -1
  277. package/esm/VideoPlayer/VideoPlayer.module.js +29 -28
  278. package/esm/VideoPlayer/components/CCButton/CCButton.d.ts +2 -2
  279. package/esm/VideoPlayer/components/CCButton/CCButton.d.ts.map +1 -1
  280. package/esm/VideoPlayer/components/CCButton/CCButton.js +1 -1
  281. package/esm/VideoPlayer/components/CCButton/CCButton.js.map +1 -1
  282. package/esm/VideoPlayer/components/Captions/Captions.d.ts +2 -2
  283. package/esm/VideoPlayer/components/Captions/Captions.d.ts.map +1 -1
  284. package/esm/VideoPlayer/components/Captions/Captions.js +1 -1
  285. package/esm/VideoPlayer/components/Captions/Captions.js.map +1 -1
  286. package/esm/VideoPlayer/components/Captions/Captions.module.js +5 -4
  287. package/esm/VideoPlayer/components/ControlsBar/ControlsBar.d.ts +2 -2
  288. package/esm/VideoPlayer/components/ControlsBar/ControlsBar.d.ts.map +1 -1
  289. package/esm/VideoPlayer/components/ControlsBar/ControlsBar.js +1 -1
  290. package/esm/VideoPlayer/components/ControlsBar/ControlsBar.js.map +1 -1
  291. package/esm/VideoPlayer/components/FullScreenButton/FullScreenButton.d.ts +2 -2
  292. package/esm/VideoPlayer/components/FullScreenButton/FullScreenButton.d.ts.map +1 -1
  293. package/esm/VideoPlayer/components/FullScreenButton/FullScreenButton.js +2 -1
  294. package/esm/VideoPlayer/components/FullScreenButton/FullScreenButton.js.map +1 -1
  295. package/esm/VideoPlayer/components/IconControl/IconControl.d.ts +2 -2
  296. package/esm/VideoPlayer/components/IconControl/IconControl.d.ts.map +1 -1
  297. package/esm/VideoPlayer/components/IconControl/IconControl.js +1 -1
  298. package/esm/VideoPlayer/components/IconControl/IconControl.js.map +1 -1
  299. package/esm/VideoPlayer/components/MuteButton/MuteButton.d.ts +2 -2
  300. package/esm/VideoPlayer/components/MuteButton/MuteButton.d.ts.map +1 -1
  301. package/esm/VideoPlayer/components/MuteButton/MuteButton.js +2 -1
  302. package/esm/VideoPlayer/components/MuteButton/MuteButton.js.map +1 -1
  303. package/esm/VideoPlayer/components/PauseIcon/PauseIcon.d.ts +2 -2
  304. package/esm/VideoPlayer/components/PauseIcon/PauseIcon.d.ts.map +1 -1
  305. package/esm/VideoPlayer/components/PauseIcon/PauseIcon.js.map +1 -1
  306. package/esm/VideoPlayer/components/PlayIcon/PlayIcon.d.ts +2 -2
  307. package/esm/VideoPlayer/components/PlayIcon/PlayIcon.d.ts.map +1 -1
  308. package/esm/VideoPlayer/components/PlayIcon/PlayIcon.js.map +1 -1
  309. package/esm/VideoPlayer/components/PlayPauseButton/PlayPauseButton.d.ts +2 -2
  310. package/esm/VideoPlayer/components/PlayPauseButton/PlayPauseButton.d.ts.map +1 -1
  311. package/esm/VideoPlayer/components/PlayPauseButton/PlayPauseButton.js.map +1 -1
  312. package/esm/VideoPlayer/components/Range/Range.d.ts +1 -1
  313. package/esm/VideoPlayer/components/Range/Range.d.ts.map +1 -1
  314. package/esm/VideoPlayer/components/Range/Range.js +1 -1
  315. package/esm/VideoPlayer/components/Range/Range.js.map +1 -1
  316. package/esm/VideoPlayer/components/SeekControl/SeekControl.d.ts +2 -2
  317. package/esm/VideoPlayer/components/SeekControl/SeekControl.d.ts.map +1 -1
  318. package/esm/VideoPlayer/components/SeekControl/SeekControl.js +1 -1
  319. package/esm/VideoPlayer/components/SeekControl/SeekControl.js.map +1 -1
  320. package/esm/VideoPlayer/components/VideoTooltip/VideoTooltip.d.ts +2 -2
  321. package/esm/VideoPlayer/components/VideoTooltip/VideoTooltip.d.ts.map +1 -1
  322. package/esm/VideoPlayer/components/VideoTooltip/VideoTooltip.js +3 -2
  323. package/esm/VideoPlayer/components/VideoTooltip/VideoTooltip.js.map +1 -1
  324. package/esm/VideoPlayer/components/VolumeControl/VolumeControl.d.ts +2 -1
  325. package/esm/VideoPlayer/components/VolumeControl/VolumeControl.d.ts.map +1 -1
  326. package/esm/VideoPlayer/components/VolumeControl/VolumeControl.js.map +1 -1
  327. package/esm/VideoPlayer/components/VolumeControl/VolumeControl.module.js +3 -2
  328. package/esm/VideoPlayer/hooks/useIsElementFullScreen.js.map +1 -1
  329. package/esm/VideoPlayer/hooks/useVideo.js.map +1 -1
  330. package/esm/VideoPlayer/hooks/useVideoResizeObserver.js.map +1 -1
  331. package/esm/animation/Animate/Animate.d.ts +1 -1
  332. package/esm/animation/Animate/Animate.d.ts.map +1 -1
  333. package/esm/animation/Animate/Animate.js +1 -1
  334. package/esm/animation/Animate/Animate.js.map +1 -1
  335. package/esm/animation/Animation.module.js +4 -3
  336. package/esm/animation/AnimationProvider/AnimationProvider.d.ts +1 -1
  337. package/esm/animation/AnimationProvider/AnimationProvider.d.ts.map +1 -1
  338. package/esm/animation/AnimationProvider/AnimationProvider.js.map +1 -1
  339. package/esm/animation/TextRevealAnimation/TextRevealAnimation.js +1 -1
  340. package/esm/animation/TextRevealAnimation/TextRevealAnimation.js.map +1 -1
  341. package/esm/animation/TextRevealAnimation/TextRevealAnimation.module.js +5 -4
  342. package/esm/animation/TextRevealAnimation/useTextRevealAnimationLines.js.map +1 -1
  343. package/esm/animation/useAnimation.js.map +1 -1
  344. package/esm/component-helpers/shared.module.js +3 -2
  345. package/esm/component-helpers.d.ts +2 -2
  346. package/esm/component-helpers.d.ts.map +1 -1
  347. package/esm/constants.js.map +1 -1
  348. package/esm/css/stylesheets.js +1 -1
  349. package/esm/findElementInChildren.js.map +1 -1
  350. package/esm/forms/Checkbox/Checkbox.js +2 -2
  351. package/esm/forms/Checkbox/Checkbox.js.map +1 -1
  352. package/esm/forms/Checkbox/Checkbox.module.js +4 -3
  353. package/esm/forms/ControlGroup/ControlGroup.js +3 -2
  354. package/esm/forms/ControlGroup/ControlGroup.js.map +1 -1
  355. package/esm/forms/ControlGroup/ControlGroup.module.js +7 -6
  356. package/esm/forms/FormControl/FormControl.d.ts +5 -5
  357. package/esm/forms/FormControl/FormControl.d.ts.map +1 -1
  358. package/esm/forms/FormControl/FormControl.js +4 -3
  359. package/esm/forms/FormControl/FormControl.js.map +1 -1
  360. package/esm/forms/FormControl/FormControl.module.js +5 -4
  361. package/esm/forms/Radio/Radio.js +1 -1
  362. package/esm/forms/Radio/Radio.js.map +1 -1
  363. package/esm/forms/Radio/Radio.module.js +4 -3
  364. package/esm/forms/Select/Select.d.ts +2 -2
  365. package/esm/forms/Select/Select.js +1 -1
  366. package/esm/forms/Select/Select.js.map +1 -1
  367. package/esm/forms/Select/Select.module.js +4 -3
  368. package/esm/forms/TextInput/TextInput.js +1 -1
  369. package/esm/forms/TextInput/TextInput.js.map +1 -1
  370. package/esm/forms/TextInput/TextInput.module.js +5 -4
  371. package/esm/forms/Textarea/Textarea.js +1 -1
  372. package/esm/forms/Textarea/Textarea.js.map +1 -1
  373. package/esm/forms/Textarea/Textarea.module.js +4 -3
  374. package/esm/hooks/useAnchoredPosition.js +7 -4
  375. package/esm/hooks/useAnchoredPosition.js.map +1 -1
  376. package/esm/hooks/useCursorAnimation.d.ts +8 -31
  377. package/esm/hooks/useCursorAnimation.d.ts.map +1 -1
  378. package/esm/hooks/useCursorAnimation.js +86 -36
  379. package/esm/hooks/useCursorAnimation.js.map +1 -1
  380. package/esm/hooks/useFocusTrap.js.map +1 -1
  381. package/esm/hooks/useId.js.map +1 -1
  382. package/esm/hooks/useKeyboardEscape.js.map +1 -1
  383. package/esm/hooks/useOnClickOutside.js.map +1 -1
  384. package/esm/hooks/useReducedMotion.js +1 -1
  385. package/esm/hooks/useReducedMotion.js.map +1 -1
  386. package/esm/hooks/useRef.js.map +1 -1
  387. package/esm/hooks/useResizeObserver.js.map +1 -1
  388. package/esm/hooks/useTabs.js +1 -1
  389. package/esm/hooks/useTabs.js.map +1 -1
  390. package/esm/hooks/useWindowSize.js +7 -7
  391. package/esm/hooks/useWindowSize.js.map +1 -1
  392. package/esm/list/ListItem/ListItem.js +4 -2
  393. package/esm/list/ListItem/ListItem.js.map +1 -1
  394. package/esm/list/ListItem/ListItem.module.js +5 -4
  395. package/esm/list/OrderedList/OrderedList.d.ts +2 -2
  396. package/esm/list/OrderedList/OrderedList.d.ts.map +1 -1
  397. package/esm/list/OrderedList/OrderedList.js +1 -1
  398. package/esm/list/OrderedList/OrderedList.js.map +1 -1
  399. package/esm/list/OrderedList/OrderedList.module.js +3 -2
  400. package/esm/list/UnorderedList/UnorderedList.d.ts +2 -2
  401. package/esm/list/UnorderedList/UnorderedList.d.ts.map +1 -1
  402. package/esm/list/UnorderedList/UnorderedList.js +1 -1
  403. package/esm/list/UnorderedList/UnorderedList.js.map +1 -1
  404. package/esm/list/list-shared.module.js +3 -2
  405. package/esm/list/listContext.js.map +1 -1
  406. package/esm/node_modules/@primer/octicons-react/dist/icons/AlertFillIcon.js +28 -0
  407. package/esm/node_modules/@primer/octicons-react/dist/icons/AlertFillIcon.js.map +1 -0
  408. package/esm/node_modules/@primer/octicons-react/dist/icons/ArrowUpIcon.js +20 -0
  409. package/esm/node_modules/@primer/octicons-react/dist/icons/ArrowUpIcon.js.map +1 -0
  410. package/esm/node_modules/@primer/octicons-react/dist/icons/ArrowUpRightIcon.js +20 -0
  411. package/esm/node_modules/@primer/octicons-react/dist/icons/ArrowUpRightIcon.js.map +1 -0
  412. package/esm/node_modules/@primer/octicons-react/dist/icons/CheckCircleFillIcon.js +28 -0
  413. package/esm/node_modules/@primer/octicons-react/dist/icons/CheckCircleFillIcon.js.map +1 -0
  414. package/esm/node_modules/@primer/octicons-react/dist/icons/CheckIcon.js +20 -0
  415. package/esm/node_modules/@primer/octicons-react/dist/icons/CheckIcon.js.map +1 -0
  416. package/esm/node_modules/@primer/octicons-react/dist/icons/ChevronDownIcon.js +28 -0
  417. package/esm/node_modules/@primer/octicons-react/dist/icons/ChevronDownIcon.js.map +1 -0
  418. package/esm/node_modules/@primer/octicons-react/dist/icons/ChevronLeftIcon.js +28 -0
  419. package/esm/node_modules/@primer/octicons-react/dist/icons/ChevronLeftIcon.js.map +1 -0
  420. package/esm/node_modules/@primer/octicons-react/dist/icons/ChevronRightIcon.js +28 -0
  421. package/esm/node_modules/@primer/octicons-react/dist/icons/ChevronRightIcon.js.map +1 -0
  422. package/esm/node_modules/@primer/octicons-react/dist/icons/ChevronUpIcon.js +28 -0
  423. package/esm/node_modules/@primer/octicons-react/dist/icons/ChevronUpIcon.js.map +1 -0
  424. package/esm/node_modules/@primer/octicons-react/dist/icons/CopilotIcon.js +33 -0
  425. package/esm/node_modules/@primer/octicons-react/dist/icons/CopilotIcon.js.map +1 -0
  426. package/esm/node_modules/@primer/octicons-react/dist/icons/DashIcon.js +20 -0
  427. package/esm/node_modules/@primer/octicons-react/dist/icons/DashIcon.js.map +1 -0
  428. package/esm/node_modules/@primer/octicons-react/dist/icons/LinkExternalIcon.js +20 -0
  429. package/esm/node_modules/@primer/octicons-react/dist/icons/LinkExternalIcon.js.map +1 -0
  430. package/esm/node_modules/@primer/octicons-react/dist/icons/MarkGithubIcon.js +20 -0
  431. package/esm/node_modules/@primer/octicons-react/dist/icons/MarkGithubIcon.js.map +1 -0
  432. package/esm/node_modules/@primer/octicons-react/dist/icons/MuteIcon.js +20 -0
  433. package/esm/node_modules/@primer/octicons-react/dist/icons/MuteIcon.js.map +1 -0
  434. package/esm/node_modules/@primer/octicons-react/dist/icons/PaperAirplaneIcon.js +20 -0
  435. package/esm/node_modules/@primer/octicons-react/dist/icons/PaperAirplaneIcon.js.map +1 -0
  436. package/esm/node_modules/@primer/octicons-react/dist/icons/PauseIcon.js +20 -0
  437. package/esm/node_modules/@primer/octicons-react/dist/icons/PauseIcon.js.map +1 -0
  438. package/esm/node_modules/@primer/octicons-react/dist/icons/PlayIcon.js +20 -0
  439. package/esm/node_modules/@primer/octicons-react/dist/icons/PlayIcon.js.map +1 -0
  440. package/esm/node_modules/@primer/octicons-react/dist/icons/ReplyIcon.js +20 -0
  441. package/esm/node_modules/@primer/octicons-react/dist/icons/ReplyIcon.js.map +1 -0
  442. package/esm/node_modules/@primer/octicons-react/dist/icons/ScreenFullIcon.js +20 -0
  443. package/esm/node_modules/@primer/octicons-react/dist/icons/ScreenFullIcon.js.map +1 -0
  444. package/esm/node_modules/@primer/octicons-react/dist/icons/ScreenNormalIcon.js +20 -0
  445. package/esm/node_modules/@primer/octicons-react/dist/icons/ScreenNormalIcon.js.map +1 -0
  446. package/esm/node_modules/@primer/octicons-react/dist/icons/SearchIcon.js +20 -0
  447. package/esm/node_modules/@primer/octicons-react/dist/icons/SearchIcon.js.map +1 -0
  448. package/esm/node_modules/@primer/octicons-react/dist/icons/TriangleDownIcon.js +20 -0
  449. package/esm/node_modules/@primer/octicons-react/dist/icons/TriangleDownIcon.js.map +1 -0
  450. package/esm/node_modules/@primer/octicons-react/dist/icons/TriangleUpIcon.js +20 -0
  451. package/esm/node_modules/@primer/octicons-react/dist/icons/TriangleUpIcon.js.map +1 -0
  452. package/esm/node_modules/@primer/octicons-react/dist/icons/UnmuteIcon.js +20 -0
  453. package/esm/node_modules/@primer/octicons-react/dist/icons/UnmuteIcon.js.map +1 -0
  454. package/esm/node_modules/@primer/octicons-react/dist/icons/XIcon.js +28 -0
  455. package/esm/node_modules/@primer/octicons-react/dist/icons/XIcon.js.map +1 -0
  456. package/esm/node_modules/@primer/octicons-react/dist/renderOcticon-DuMQdmQC.js +132 -0
  457. package/esm/node_modules/@primer/octicons-react/dist/renderOcticon-DuMQdmQC.js.map +1 -0
  458. package/esm/node_modules/clsx/dist/clsx.js +1 -1
  459. package/esm/node_modules/clsx/dist/clsx.js.map +1 -1
  460. package/esm/packages/design-tokens/lib/design-tokens/css/tokens/functional/components/subdomain-nav-bar/colors-with-modes-BGj0AiDW.css +1 -0
  461. package/esm/packages/design-tokens/lib/design-tokens/css/tokens/functional/components/text-cursor-animation/base-DKbXhPKv.css +1 -0
  462. package/esm/packages/design-tokens/lib/design-tokens/css/tokens/functional/components/text-cursor-animation/colors-with-modes-BucKYl1n.css +1 -0
  463. package/esm/river/River/River.js +2 -2
  464. package/esm/river/River/River.js.map +1 -1
  465. package/esm/river/RiverAccordion/RiverAccordion.d.ts +15 -6
  466. package/esm/river/RiverAccordion/RiverAccordion.d.ts.map +1 -1
  467. package/esm/river/RiverAccordion/RiverAccordion.js +38 -26
  468. package/esm/river/RiverAccordion/RiverAccordion.js.map +1 -1
  469. package/esm/river/RiverAccordion/RiverAccordion.module-Cr6Q-qkm.css +1 -0
  470. package/esm/river/RiverAccordion/RiverAccordion.module.js +18 -13
  471. package/esm/river/RiverAccordion/RiverAccordion.module.js.map +1 -1
  472. package/esm/river/RiverBreakout/RiverBreakout.d.ts +1 -1
  473. package/esm/river/RiverBreakout/RiverBreakout.js +1 -1
  474. package/esm/river/RiverBreakout/RiverBreakout.js.map +1 -1
  475. package/esm/river/RiverBreakoutTabs/RiverBreakoutTabs.d.ts +5 -5
  476. package/esm/river/RiverBreakoutTabs/RiverBreakoutTabs.js +2 -2
  477. package/esm/river/RiverBreakoutTabs/RiverBreakoutTabs.js.map +1 -1
  478. package/esm/river/RiverBreakoutTabs/RiverBreakoutTabs.module.js +31 -30
  479. package/esm/river/RiverStoryScroll/RiverStoryScroll.d.ts +1 -1
  480. package/esm/river/RiverStoryScroll/RiverStoryScroll.d.ts.map +1 -1
  481. package/esm/river/RiverStoryScroll/RiverStoryScroll.js +5 -3
  482. package/esm/river/RiverStoryScroll/RiverStoryScroll.js.map +1 -1
  483. package/esm/river/RiverStoryScroll/RiverStoryScroll.module.js +8 -7
  484. package/esm/river/RiverStoryScroll/RiverStoryScrollProvider.d.ts +2 -2
  485. package/esm/river/RiverStoryScroll/RiverStoryScrollProvider.d.ts.map +1 -1
  486. package/esm/river/RiverStoryScroll/RiverStoryScrollProvider.js.map +1 -1
  487. package/esm/river/RiverStoryScroll/RiverStoryScrollResponder.d.ts +1 -1
  488. package/esm/river/RiverStoryScroll/RiverStoryScrollResponder.d.ts.map +1 -1
  489. package/esm/river/RiverStoryScroll/RiverStoryScrollResponder.js +1 -1
  490. package/esm/river/RiverStoryScroll/RiverStoryScrollResponder.js.map +1 -1
  491. package/esm/river/RiverStoryScroll/RiverStoryScrollTracker.d.ts +1 -1
  492. package/esm/river/RiverStoryScroll/RiverStoryScrollTracker.d.ts.map +1 -1
  493. package/esm/river/RiverStoryScroll/RiverStoryScrollTracker.js +1 -1
  494. package/esm/river/RiverStoryScroll/RiverStoryScrollTracker.js.map +1 -1
  495. package/esm/river/river-shared.module.js +13 -12
  496. package/esm/utils/getTextContent.js.map +1 -1
  497. package/esm/utils/isFragmentElement.js.map +1 -1
  498. package/lib/Accordion/Accordion.d.ts +2 -2
  499. package/lib/ActionMenu/ActionMenu.d.ts +2 -2
  500. package/lib/AnchorNav/AnchorNav.d.ts +4 -4
  501. package/lib/Bento/Bento.d.ts +4 -4
  502. package/lib/Box/Box.d.ts +1 -1
  503. package/lib/CTABanner/CTABanner.d.ts +1 -1
  504. package/lib/Card/Card.d.ts +2 -2
  505. package/lib/ComparisonTable/ComparisonTable.d.ts +3 -3
  506. package/lib/ExpandableArrow/ExpandableArrow.d.ts +2 -1
  507. package/lib/FAQ/FAQ.d.ts +2 -2
  508. package/lib/FAQ/FAQGroup.d.ts +2 -2
  509. package/lib/Footnotes/Footnotes.d.ts +2 -2
  510. package/lib/FrostedGlassVFX/FrostedGlassVFX.d.ts +1 -1
  511. package/lib/Grid/Grid.d.ts +2 -2
  512. package/lib/Hero/sub-components/HeroLabel.d.ts +1 -0
  513. package/lib/IDE/IDE.d.ts +1 -1
  514. package/lib/Icon/Icon.d.ts +2 -2
  515. package/lib/Image/Image.d.ts +1 -1
  516. package/lib/Link/Link.d.ts +1 -1
  517. package/lib/LogoSuite/LogoSuite.d.ts +1 -1
  518. package/lib/MediaPlaylist/MediaPlaylist.d.ts +4 -4
  519. package/lib/MinimalFooter/MinimalFooter.d.ts +3 -3
  520. package/lib/Pagination/Pagination.d.ts +1 -1
  521. package/lib/Pillar/Pillar.d.ts +2 -2
  522. package/lib/PricingOptions/PricingOptions.d.ts +1 -1
  523. package/lib/SectionIntroStacked/SectionIntroStacked.d.ts +3 -3
  524. package/lib/SubNav/SubNav.d.ts +4 -4
  525. package/lib/SubdomainNavBar/NavigationVisbilityObserver.d.ts +3 -1
  526. package/lib/SubdomainNavBar/SubdomainNavBar.d.ts +157 -20
  527. package/lib/SubdomainNavBar/SubdomainNavBarLinkContext.d.ts +8 -0
  528. package/lib/SubdomainNavBar/useSearchKeyboardShortcut.d.ts +7 -0
  529. package/lib/SubdomainNavBar/useSearchResults.d.ts +23 -0
  530. package/lib/SubdomainNavBar/useVisibilityObserver.d.ts +1 -1
  531. package/lib/Testimonial/Testimonial.d.ts +1 -1
  532. package/lib/Text/Text.d.ts +1 -1
  533. package/lib/TextCursorAnimation/TextCursorAnimation.d.ts +8 -3
  534. package/lib/ThemeProvider/ThemeProvider.d.ts +1 -1
  535. package/lib/Timeline/Timeline.d.ts +3 -3
  536. package/lib/VideoPlayer/VideoPlayer.d.ts +2 -2
  537. package/lib/VideoPlayer/components/CCButton/CCButton.d.ts +2 -2
  538. package/lib/VideoPlayer/components/Captions/Captions.d.ts +2 -2
  539. package/lib/VideoPlayer/components/ControlsBar/ControlsBar.d.ts +2 -2
  540. package/lib/VideoPlayer/components/FullScreenButton/FullScreenButton.d.ts +2 -2
  541. package/lib/VideoPlayer/components/IconControl/IconControl.d.ts +2 -2
  542. package/lib/VideoPlayer/components/MuteButton/MuteButton.d.ts +2 -2
  543. package/lib/VideoPlayer/components/PauseIcon/PauseIcon.d.ts +2 -2
  544. package/lib/VideoPlayer/components/PlayIcon/PlayIcon.d.ts +2 -2
  545. package/lib/VideoPlayer/components/PlayPauseButton/PlayPauseButton.d.ts +2 -2
  546. package/lib/VideoPlayer/components/Range/Range.d.ts +1 -1
  547. package/lib/VideoPlayer/components/SeekControl/SeekControl.d.ts +2 -2
  548. package/lib/VideoPlayer/components/VideoTooltip/VideoTooltip.d.ts +2 -2
  549. package/lib/VideoPlayer/components/VolumeControl/VolumeControl.d.ts +2 -1
  550. package/lib/animation/Animate/Animate.d.ts +1 -1
  551. package/lib/animation/AnimationProvider/AnimationProvider.d.ts +1 -1
  552. package/lib/component-helpers.d.ts +2 -2
  553. package/lib/css/main.css +1482 -1086
  554. package/lib/design-tokens/css/tokens/base/colors/color-scales-with-modes.css +1 -1
  555. package/lib/design-tokens/css/tokens/base/colors/light.css +1 -1
  556. package/lib/design-tokens/css/tokens/base/size/size.css +1 -1
  557. package/lib/design-tokens/css/tokens/base/typography/typography.css +1 -1
  558. package/lib/design-tokens/css/tokens/functional/animation/base.css +1 -1
  559. package/lib/design-tokens/css/tokens/functional/colors/global-with-modes.css +1 -1
  560. package/lib/design-tokens/css/tokens/functional/colors/global.css +1 -1
  561. package/lib/design-tokens/css/tokens/functional/components/accordion/colors-with-modes.css +1 -1
  562. package/lib/design-tokens/css/tokens/functional/components/action-menu/colors-with-modes.css +1 -1
  563. package/lib/design-tokens/css/tokens/functional/components/anchor-nav/colors-with-modes.css +1 -1
  564. package/lib/design-tokens/css/tokens/functional/components/bento/base.css +1 -1
  565. package/lib/design-tokens/css/tokens/functional/components/blinking-cursor/colors-with-modes.css +1 -1
  566. package/lib/design-tokens/css/tokens/functional/components/breadcrumbs/colors-with-modes.css +1 -1
  567. package/lib/design-tokens/css/tokens/functional/components/button/colors-with-modes.css +1 -1
  568. package/lib/design-tokens/css/tokens/functional/components/card/base.css +1 -1
  569. package/lib/design-tokens/css/tokens/functional/components/card/colors-with-modes.css +1 -1
  570. package/lib/design-tokens/css/tokens/functional/components/card/colors.css +1 -1
  571. package/lib/design-tokens/css/tokens/functional/components/comparison-table/colors-with-modes.css +1 -1
  572. package/lib/design-tokens/css/tokens/functional/components/comparison-table/comparison-table.css +1 -1
  573. package/lib/design-tokens/css/tokens/functional/components/control/colors-with-modes.css +1 -1
  574. package/lib/design-tokens/css/tokens/functional/components/cta-banner/colors-with-modes.css +1 -1
  575. package/lib/design-tokens/css/tokens/functional/components/eyebrow-banner/colors-with-modes.css +1 -1
  576. package/lib/design-tokens/css/tokens/functional/components/eyebrow-banner/eyebrow-banner.css +1 -1
  577. package/lib/design-tokens/css/tokens/functional/components/faq/base.css +1 -1
  578. package/lib/design-tokens/css/tokens/functional/components/faq/colors-with-modes.css +1 -1
  579. package/lib/design-tokens/css/tokens/functional/components/faq/colors.css +1 -1
  580. package/lib/design-tokens/css/tokens/functional/components/faq/faq.css +1 -1
  581. package/lib/design-tokens/css/tokens/functional/components/footer/base.css +1 -1
  582. package/lib/design-tokens/css/tokens/functional/components/footer/colors-with-modes.css +1 -1
  583. package/lib/design-tokens/css/tokens/functional/components/footer/colors.css +1 -1
  584. package/lib/design-tokens/css/tokens/functional/components/frosted-glass-vfx/base.css +1 -1
  585. package/lib/design-tokens/css/tokens/functional/components/frosted-glass-vfx/colors-with-modes.css +1 -1
  586. package/lib/design-tokens/css/tokens/functional/components/grid/colors-with-modes.css +1 -1
  587. package/lib/design-tokens/css/tokens/functional/components/grid/colors.css +1 -1
  588. package/lib/design-tokens/css/tokens/functional/components/grid/grid.css +1 -1
  589. package/lib/design-tokens/css/tokens/functional/components/hero/base.css +1 -1
  590. package/lib/design-tokens/css/tokens/functional/components/icon/colors-with-modes.css +1 -1
  591. package/lib/design-tokens/css/tokens/functional/components/icon/colors.css +1 -1
  592. package/lib/design-tokens/css/tokens/functional/components/ide/base.css +1 -1
  593. package/lib/design-tokens/css/tokens/functional/components/ide/colors-with-modes.css +1 -1
  594. package/lib/design-tokens/css/tokens/functional/components/image/base.css +1 -1
  595. package/lib/design-tokens/css/tokens/functional/components/inline-code/colors-with-modes.css +1 -1
  596. package/lib/design-tokens/css/tokens/functional/components/inline-code/colors.css +1 -1
  597. package/lib/design-tokens/css/tokens/functional/components/inline-link/base.css +1 -1
  598. package/lib/design-tokens/css/tokens/functional/components/inline-link/colors-with-modes.css +1 -1
  599. package/lib/design-tokens/css/tokens/functional/components/inline-link/colors.css +1 -1
  600. package/lib/design-tokens/css/tokens/functional/components/label/colors-with-modes.css +1 -1
  601. package/lib/design-tokens/css/tokens/functional/components/label/colors.css +1 -1
  602. package/lib/design-tokens/css/tokens/functional/components/link/colors-with-modes.css +1 -1
  603. package/lib/design-tokens/css/tokens/functional/components/link/colors.css +1 -1
  604. package/lib/design-tokens/css/tokens/functional/components/logosuite/base.css +1 -1
  605. package/lib/design-tokens/css/tokens/functional/components/logosuite/colors-with-modes.css +1 -1
  606. package/lib/design-tokens/css/tokens/functional/components/logosuite/colors.css +1 -1
  607. package/lib/design-tokens/css/tokens/functional/components/media-playlist/colors-with-modes.css +1 -1
  608. package/lib/design-tokens/css/tokens/functional/components/media-playlist/colors.css +1 -1
  609. package/lib/design-tokens/css/tokens/functional/components/nav-list/colors-with-modes.css +1 -1
  610. package/lib/design-tokens/css/tokens/functional/components/pricing-options/colors-with-modes.css +1 -1
  611. package/lib/design-tokens/css/tokens/functional/components/pricing-options/colors.css +1 -1
  612. package/lib/design-tokens/css/tokens/functional/components/pricing-options/pricing-options.css +1 -1
  613. package/lib/design-tokens/css/tokens/functional/components/prose/base.css +1 -1
  614. package/lib/design-tokens/css/tokens/functional/components/prose/colors-with-modes.css +1 -1
  615. package/lib/design-tokens/css/tokens/functional/components/river/base.css +1 -1
  616. package/lib/design-tokens/css/tokens/functional/components/river/river.css +1 -1
  617. package/lib/design-tokens/css/tokens/functional/components/river-story-scroll/colors-with-modes.css +1 -1
  618. package/lib/design-tokens/css/tokens/functional/components/section/section.css +1 -1
  619. package/lib/design-tokens/css/tokens/functional/components/statistic/base.css +1 -1
  620. package/lib/design-tokens/css/tokens/functional/components/sub-nav/base.css +1 -1
  621. package/lib/design-tokens/css/tokens/functional/components/sub-nav/colors-with-modes.css +1 -1
  622. package/lib/design-tokens/css/tokens/functional/components/subdomain-nav-bar/colors-with-modes.css +7 -1
  623. package/lib/design-tokens/css/tokens/functional/components/tabs/base.css +1 -1
  624. package/lib/design-tokens/css/tokens/functional/components/tabs/colors-with-modes.css +1 -1
  625. package/lib/design-tokens/css/tokens/functional/components/tabs/colors.css +1 -1
  626. package/lib/design-tokens/css/tokens/functional/components/testimonial/base.css +1 -1
  627. package/lib/design-tokens/css/tokens/functional/components/testimonial/colors-with-modes.css +1 -1
  628. package/lib/design-tokens/css/tokens/functional/components/testimonial/colors.css +1 -1
  629. package/lib/design-tokens/css/tokens/functional/components/text-cursor-animation/base.css +8 -0
  630. package/lib/design-tokens/css/tokens/functional/components/text-cursor-animation/colors-with-modes.css +7 -3
  631. package/lib/design-tokens/css/tokens/functional/components/text-cursor-animation/colors.css +4 -2
  632. package/lib/design-tokens/css/tokens/functional/components/tiles/colors-with-modes.css +1 -1
  633. package/lib/design-tokens/css/tokens/functional/components/timeline/base.css +1 -1
  634. package/lib/design-tokens/css/tokens/functional/components/timeline/colors-with-modes.css +1 -1
  635. package/lib/design-tokens/css/tokens/functional/components/timeline/colors.css +1 -1
  636. package/lib/design-tokens/css/tokens/functional/components/token/colors-with-modes.css +1 -1
  637. package/lib/design-tokens/css/tokens/functional/components/token/colors.css +1 -1
  638. package/lib/design-tokens/css/tokens/functional/components/tooltip/colors-with-modes.css +1 -1
  639. package/lib/design-tokens/css/tokens/functional/components/tooltip/colors.css +1 -1
  640. package/lib/design-tokens/css/tokens/functional/components/video-player/base.css +1 -1
  641. package/lib/design-tokens/css/tokens/functional/components/video-player/colors-with-modes.css +1 -1
  642. package/lib/design-tokens/css/tokens/functional/size/border.css +1 -1
  643. package/lib/design-tokens/css/tokens/functional/size/breakpoints.css +1 -1
  644. package/lib/design-tokens/css/tokens/functional/size/size-coarse.css +1 -1
  645. package/lib/design-tokens/css/tokens/functional/size/size-fine.css +1 -1
  646. package/lib/design-tokens/css/tokens/functional/size/size.css +1 -1
  647. package/lib/design-tokens/css/tokens/functional/size/viewport.css +1 -1
  648. package/lib/design-tokens/css/tokens/functional/typography/typography-responsive.css +1 -1
  649. package/lib/design-tokens/css/tokens/functional/typography/typography.css +1 -1
  650. package/lib/design-tokens/js/module/tokens/base/colors/light.js +1 -1
  651. package/lib/design-tokens/js/module/tokens/base/size/size.js +1 -1
  652. package/lib/design-tokens/js/module/tokens/base/typography/typography.js +1 -1
  653. package/lib/design-tokens/js/module/tokens/functional/animation/base.js +1 -1
  654. package/lib/design-tokens/js/module/tokens/functional/colors/global.js +1 -1
  655. package/lib/design-tokens/js/module/tokens/functional/components/bento/base.js +1 -1
  656. package/lib/design-tokens/js/module/tokens/functional/components/card/base.js +1 -1
  657. package/lib/design-tokens/js/module/tokens/functional/components/card/colors.js +1 -1
  658. package/lib/design-tokens/js/module/tokens/functional/components/comparison-table/comparison-table.js +1 -1
  659. package/lib/design-tokens/js/module/tokens/functional/components/eyebrow-banner/eyebrow-banner.js +1 -1
  660. package/lib/design-tokens/js/module/tokens/functional/components/faq/base.js +1 -1
  661. package/lib/design-tokens/js/module/tokens/functional/components/faq/colors.js +1 -1
  662. package/lib/design-tokens/js/module/tokens/functional/components/faq/faq.js +1 -1
  663. package/lib/design-tokens/js/module/tokens/functional/components/footer/base.js +1 -1
  664. package/lib/design-tokens/js/module/tokens/functional/components/footer/colors.js +1 -1
  665. package/lib/design-tokens/js/module/tokens/functional/components/frosted-glass-vfx/base.js +1 -1
  666. package/lib/design-tokens/js/module/tokens/functional/components/grid/colors.js +1 -1
  667. package/lib/design-tokens/js/module/tokens/functional/components/grid/grid.js +1 -1
  668. package/lib/design-tokens/js/module/tokens/functional/components/hero/base.js +1 -1
  669. package/lib/design-tokens/js/module/tokens/functional/components/icon/colors.js +1 -1
  670. package/lib/design-tokens/js/module/tokens/functional/components/ide/base.js +1 -1
  671. package/lib/design-tokens/js/module/tokens/functional/components/image/base.js +1 -1
  672. package/lib/design-tokens/js/module/tokens/functional/components/inline-code/colors.js +1 -1
  673. package/lib/design-tokens/js/module/tokens/functional/components/inline-link/base.js +1 -1
  674. package/lib/design-tokens/js/module/tokens/functional/components/inline-link/colors.js +1 -1
  675. package/lib/design-tokens/js/module/tokens/functional/components/label/colors.js +1 -1
  676. package/lib/design-tokens/js/module/tokens/functional/components/link/colors.js +1 -1
  677. package/lib/design-tokens/js/module/tokens/functional/components/logosuite/base.js +1 -1
  678. package/lib/design-tokens/js/module/tokens/functional/components/logosuite/colors.js +1 -1
  679. package/lib/design-tokens/js/module/tokens/functional/components/media-playlist/colors.js +1 -1
  680. package/lib/design-tokens/js/module/tokens/functional/components/pricing-options/colors.js +1 -1
  681. package/lib/design-tokens/js/module/tokens/functional/components/pricing-options/pricing-options.js +1 -1
  682. package/lib/design-tokens/js/module/tokens/functional/components/prose/base.js +1 -1
  683. package/lib/design-tokens/js/module/tokens/functional/components/river/base.js +1 -1
  684. package/lib/design-tokens/js/module/tokens/functional/components/river/river.js +1 -1
  685. package/lib/design-tokens/js/module/tokens/functional/components/section/section.js +1 -1
  686. package/lib/design-tokens/js/module/tokens/functional/components/statistic/base.js +1 -1
  687. package/lib/design-tokens/js/module/tokens/functional/components/sub-nav/base.js +1 -1
  688. package/lib/design-tokens/js/module/tokens/functional/components/tabs/base.js +1 -1
  689. package/lib/design-tokens/js/module/tokens/functional/components/tabs/colors.js +1 -1
  690. package/lib/design-tokens/js/module/tokens/functional/components/testimonial/base.js +1 -1
  691. package/lib/design-tokens/js/module/tokens/functional/components/testimonial/colors.js +1 -1
  692. package/lib/design-tokens/js/module/tokens/functional/components/text-cursor-animation/base.js +14 -0
  693. package/lib/design-tokens/js/module/tokens/functional/components/text-cursor-animation/colors.js +10 -2
  694. package/lib/design-tokens/js/module/tokens/functional/components/timeline/base.js +1 -1
  695. package/lib/design-tokens/js/module/tokens/functional/components/timeline/colors.js +1 -1
  696. package/lib/design-tokens/js/module/tokens/functional/components/token/colors.js +1 -1
  697. package/lib/design-tokens/js/module/tokens/functional/components/tooltip/colors.js +1 -1
  698. package/lib/design-tokens/js/module/tokens/functional/components/video-player/base.js +1 -1
  699. package/lib/design-tokens/js/module/tokens/functional/size/border.js +1 -1
  700. package/lib/design-tokens/js/module/tokens/functional/size/breakpoints.js +1 -1
  701. package/lib/design-tokens/js/module/tokens/functional/size/size-coarse.js +1 -1
  702. package/lib/design-tokens/js/module/tokens/functional/size/size-fine.js +1 -1
  703. package/lib/design-tokens/js/module/tokens/functional/size/size.js +1 -1
  704. package/lib/design-tokens/js/module/tokens/functional/size/viewport.js +1 -1
  705. package/lib/design-tokens/js/module/tokens/functional/typography/typography-responsive.js +1 -1
  706. package/lib/design-tokens/js/module/tokens/functional/typography/typography.js +1 -1
  707. package/lib/design-tokens/js/tokens/base/colors/light.js +1 -1
  708. package/lib/design-tokens/js/tokens/base/size/size.js +1 -1
  709. package/lib/design-tokens/js/tokens/base/typography/typography.js +1 -1
  710. package/lib/design-tokens/js/tokens/functional/animation/base.js +1 -1
  711. package/lib/design-tokens/js/tokens/functional/colors/global.js +1 -1
  712. package/lib/design-tokens/js/tokens/functional/components/bento/base.js +1 -1
  713. package/lib/design-tokens/js/tokens/functional/components/card/base.js +1 -1
  714. package/lib/design-tokens/js/tokens/functional/components/card/colors.js +1 -1
  715. package/lib/design-tokens/js/tokens/functional/components/comparison-table/comparison-table.js +1 -1
  716. package/lib/design-tokens/js/tokens/functional/components/eyebrow-banner/eyebrow-banner.js +1 -1
  717. package/lib/design-tokens/js/tokens/functional/components/faq/base.js +1 -1
  718. package/lib/design-tokens/js/tokens/functional/components/faq/colors.js +1 -1
  719. package/lib/design-tokens/js/tokens/functional/components/faq/faq.js +1 -1
  720. package/lib/design-tokens/js/tokens/functional/components/footer/base.js +1 -1
  721. package/lib/design-tokens/js/tokens/functional/components/footer/colors.js +1 -1
  722. package/lib/design-tokens/js/tokens/functional/components/frosted-glass-vfx/base.js +1 -1
  723. package/lib/design-tokens/js/tokens/functional/components/grid/colors.js +1 -1
  724. package/lib/design-tokens/js/tokens/functional/components/grid/grid.js +1 -1
  725. package/lib/design-tokens/js/tokens/functional/components/hero/base.js +1 -1
  726. package/lib/design-tokens/js/tokens/functional/components/icon/colors.js +1 -1
  727. package/lib/design-tokens/js/tokens/functional/components/ide/base.js +1 -1
  728. package/lib/design-tokens/js/tokens/functional/components/image/base.js +1 -1
  729. package/lib/design-tokens/js/tokens/functional/components/inline-code/colors.js +1 -1
  730. package/lib/design-tokens/js/tokens/functional/components/inline-link/base.js +1 -1
  731. package/lib/design-tokens/js/tokens/functional/components/inline-link/colors.js +1 -1
  732. package/lib/design-tokens/js/tokens/functional/components/label/colors.js +1 -1
  733. package/lib/design-tokens/js/tokens/functional/components/link/colors.js +1 -1
  734. package/lib/design-tokens/js/tokens/functional/components/logosuite/base.js +1 -1
  735. package/lib/design-tokens/js/tokens/functional/components/logosuite/colors.js +1 -1
  736. package/lib/design-tokens/js/tokens/functional/components/media-playlist/colors.js +1 -1
  737. package/lib/design-tokens/js/tokens/functional/components/pricing-options/colors.js +1 -1
  738. package/lib/design-tokens/js/tokens/functional/components/pricing-options/pricing-options.js +1 -1
  739. package/lib/design-tokens/js/tokens/functional/components/prose/base.js +1 -1
  740. package/lib/design-tokens/js/tokens/functional/components/river/base.js +1 -1
  741. package/lib/design-tokens/js/tokens/functional/components/river/river.js +1 -1
  742. package/lib/design-tokens/js/tokens/functional/components/section/section.js +1 -1
  743. package/lib/design-tokens/js/tokens/functional/components/statistic/base.js +1 -1
  744. package/lib/design-tokens/js/tokens/functional/components/sub-nav/base.js +1 -1
  745. package/lib/design-tokens/js/tokens/functional/components/tabs/base.js +1 -1
  746. package/lib/design-tokens/js/tokens/functional/components/tabs/colors.js +1 -1
  747. package/lib/design-tokens/js/tokens/functional/components/testimonial/base.js +1 -1
  748. package/lib/design-tokens/js/tokens/functional/components/testimonial/colors.js +1 -1
  749. package/lib/design-tokens/js/tokens/functional/components/text-cursor-animation/base.js +6 -0
  750. package/lib/design-tokens/js/tokens/functional/components/text-cursor-animation/colors.js +4 -2
  751. package/lib/design-tokens/js/tokens/functional/components/timeline/base.js +1 -1
  752. package/lib/design-tokens/js/tokens/functional/components/timeline/colors.js +1 -1
  753. package/lib/design-tokens/js/tokens/functional/components/token/colors.js +1 -1
  754. package/lib/design-tokens/js/tokens/functional/components/tooltip/colors.js +1 -1
  755. package/lib/design-tokens/js/tokens/functional/components/video-player/base.js +1 -1
  756. package/lib/design-tokens/js/tokens/functional/size/border.js +1 -1
  757. package/lib/design-tokens/js/tokens/functional/size/breakpoints.js +1 -1
  758. package/lib/design-tokens/js/tokens/functional/size/size-coarse.js +1 -1
  759. package/lib/design-tokens/js/tokens/functional/size/size-fine.js +1 -1
  760. package/lib/design-tokens/js/tokens/functional/size/size.js +1 -1
  761. package/lib/design-tokens/js/tokens/functional/size/viewport.js +1 -1
  762. package/lib/design-tokens/js/tokens/functional/typography/typography-responsive.js +1 -1
  763. package/lib/design-tokens/js/tokens/functional/typography/typography.js +1 -1
  764. package/lib/design-tokens/json/colors.json +6 -1
  765. package/lib/design-tokens/scss/tokens/base/colors/light.scss +1 -1
  766. package/lib/design-tokens/scss/tokens/base/size/size.scss +1 -1
  767. package/lib/design-tokens/scss/tokens/base/typography/typography.scss +1 -1
  768. package/lib/design-tokens/scss/tokens/functional/animation/base.scss +1 -1
  769. package/lib/design-tokens/scss/tokens/functional/colors/global.scss +1 -1
  770. package/lib/design-tokens/scss/tokens/functional/components/bento/base.scss +1 -1
  771. package/lib/design-tokens/scss/tokens/functional/components/card/base.scss +1 -1
  772. package/lib/design-tokens/scss/tokens/functional/components/card/colors.scss +1 -1
  773. package/lib/design-tokens/scss/tokens/functional/components/comparison-table/comparison-table.scss +1 -1
  774. package/lib/design-tokens/scss/tokens/functional/components/eyebrow-banner/eyebrow-banner.scss +1 -1
  775. package/lib/design-tokens/scss/tokens/functional/components/faq/base.scss +1 -1
  776. package/lib/design-tokens/scss/tokens/functional/components/faq/colors.scss +1 -1
  777. package/lib/design-tokens/scss/tokens/functional/components/faq/faq.scss +1 -1
  778. package/lib/design-tokens/scss/tokens/functional/components/footer/base.scss +1 -1
  779. package/lib/design-tokens/scss/tokens/functional/components/footer/colors.scss +1 -1
  780. package/lib/design-tokens/scss/tokens/functional/components/frosted-glass-vfx/base.scss +1 -1
  781. package/lib/design-tokens/scss/tokens/functional/components/grid/colors.scss +1 -1
  782. package/lib/design-tokens/scss/tokens/functional/components/grid/grid.scss +1 -1
  783. package/lib/design-tokens/scss/tokens/functional/components/hero/base.scss +1 -1
  784. package/lib/design-tokens/scss/tokens/functional/components/icon/colors.scss +1 -1
  785. package/lib/design-tokens/scss/tokens/functional/components/ide/base.scss +1 -1
  786. package/lib/design-tokens/scss/tokens/functional/components/image/base.scss +1 -1
  787. package/lib/design-tokens/scss/tokens/functional/components/inline-code/colors.scss +1 -1
  788. package/lib/design-tokens/scss/tokens/functional/components/inline-link/base.scss +1 -1
  789. package/lib/design-tokens/scss/tokens/functional/components/inline-link/colors.scss +1 -1
  790. package/lib/design-tokens/scss/tokens/functional/components/label/colors.scss +1 -1
  791. package/lib/design-tokens/scss/tokens/functional/components/link/colors.scss +1 -1
  792. package/lib/design-tokens/scss/tokens/functional/components/logosuite/base.scss +1 -1
  793. package/lib/design-tokens/scss/tokens/functional/components/logosuite/colors.scss +1 -1
  794. package/lib/design-tokens/scss/tokens/functional/components/media-playlist/colors.scss +1 -1
  795. package/lib/design-tokens/scss/tokens/functional/components/pricing-options/colors.scss +1 -1
  796. package/lib/design-tokens/scss/tokens/functional/components/pricing-options/pricing-options.scss +1 -1
  797. package/lib/design-tokens/scss/tokens/functional/components/prose/base.scss +1 -1
  798. package/lib/design-tokens/scss/tokens/functional/components/river/base.scss +1 -1
  799. package/lib/design-tokens/scss/tokens/functional/components/river/river.scss +1 -1
  800. package/lib/design-tokens/scss/tokens/functional/components/section/section.scss +1 -1
  801. package/lib/design-tokens/scss/tokens/functional/components/statistic/base.scss +1 -1
  802. package/lib/design-tokens/scss/tokens/functional/components/sub-nav/base.scss +1 -1
  803. package/lib/design-tokens/scss/tokens/functional/components/tabs/base.scss +1 -1
  804. package/lib/design-tokens/scss/tokens/functional/components/tabs/colors.scss +1 -1
  805. package/lib/design-tokens/scss/tokens/functional/components/testimonial/base.scss +1 -1
  806. package/lib/design-tokens/scss/tokens/functional/components/testimonial/colors.scss +1 -1
  807. package/lib/design-tokens/scss/tokens/functional/components/text-cursor-animation/base.scss +5 -0
  808. package/lib/design-tokens/scss/tokens/functional/components/text-cursor-animation/colors.scss +4 -2
  809. package/lib/design-tokens/scss/tokens/functional/components/timeline/base.scss +1 -1
  810. package/lib/design-tokens/scss/tokens/functional/components/timeline/colors.scss +1 -1
  811. package/lib/design-tokens/scss/tokens/functional/components/token/colors.scss +1 -1
  812. package/lib/design-tokens/scss/tokens/functional/components/tooltip/colors.scss +1 -1
  813. package/lib/design-tokens/scss/tokens/functional/components/video-player/base.scss +1 -1
  814. package/lib/design-tokens/scss/tokens/functional/size/border.scss +1 -1
  815. package/lib/design-tokens/scss/tokens/functional/size/breakpoints.scss +1 -1
  816. package/lib/design-tokens/scss/tokens/functional/size/size-coarse.scss +1 -1
  817. package/lib/design-tokens/scss/tokens/functional/size/size-fine.scss +1 -1
  818. package/lib/design-tokens/scss/tokens/functional/size/size.scss +1 -1
  819. package/lib/design-tokens/scss/tokens/functional/size/viewport.scss +1 -1
  820. package/lib/design-tokens/scss/tokens/functional/typography/typography-responsive.scss +1 -1
  821. package/lib/design-tokens/scss/tokens/functional/typography/typography.scss +1 -1
  822. package/lib/design-tokens/ts/tokens/base/colors/light.d.ts +1 -1
  823. package/lib/design-tokens/ts/tokens/base/colors/light.js +1 -1
  824. package/lib/design-tokens/ts/tokens/base/size/size.d.ts +1 -1
  825. package/lib/design-tokens/ts/tokens/base/size/size.js +1 -1
  826. package/lib/design-tokens/ts/tokens/base/typography/typography.d.ts +1 -1
  827. package/lib/design-tokens/ts/tokens/base/typography/typography.js +1 -1
  828. package/lib/design-tokens/ts/tokens/functional/animation/base.d.ts +1 -1
  829. package/lib/design-tokens/ts/tokens/functional/animation/base.js +1 -1
  830. package/lib/design-tokens/ts/tokens/functional/colors/global.d.ts +1 -1
  831. package/lib/design-tokens/ts/tokens/functional/colors/global.js +1 -1
  832. package/lib/design-tokens/ts/tokens/functional/components/bento/base.d.ts +1 -1
  833. package/lib/design-tokens/ts/tokens/functional/components/bento/base.js +1 -1
  834. package/lib/design-tokens/ts/tokens/functional/components/card/base.d.ts +1 -1
  835. package/lib/design-tokens/ts/tokens/functional/components/card/base.js +1 -1
  836. package/lib/design-tokens/ts/tokens/functional/components/card/colors.d.ts +1 -1
  837. package/lib/design-tokens/ts/tokens/functional/components/card/colors.js +1 -1
  838. package/lib/design-tokens/ts/tokens/functional/components/comparison-table/comparison-table.d.ts +1 -1
  839. package/lib/design-tokens/ts/tokens/functional/components/comparison-table/comparison-table.js +1 -1
  840. package/lib/design-tokens/ts/tokens/functional/components/eyebrow-banner/eyebrow-banner.d.ts +1 -1
  841. package/lib/design-tokens/ts/tokens/functional/components/eyebrow-banner/eyebrow-banner.js +1 -1
  842. package/lib/design-tokens/ts/tokens/functional/components/faq/base.d.ts +1 -1
  843. package/lib/design-tokens/ts/tokens/functional/components/faq/base.js +1 -1
  844. package/lib/design-tokens/ts/tokens/functional/components/faq/colors.d.ts +1 -1
  845. package/lib/design-tokens/ts/tokens/functional/components/faq/colors.js +1 -1
  846. package/lib/design-tokens/ts/tokens/functional/components/faq/faq.d.ts +1 -1
  847. package/lib/design-tokens/ts/tokens/functional/components/faq/faq.js +1 -1
  848. package/lib/design-tokens/ts/tokens/functional/components/footer/base.d.ts +1 -1
  849. package/lib/design-tokens/ts/tokens/functional/components/footer/base.js +1 -1
  850. package/lib/design-tokens/ts/tokens/functional/components/footer/colors.d.ts +1 -1
  851. package/lib/design-tokens/ts/tokens/functional/components/footer/colors.js +1 -1
  852. package/lib/design-tokens/ts/tokens/functional/components/frosted-glass-vfx/base.d.ts +1 -1
  853. package/lib/design-tokens/ts/tokens/functional/components/frosted-glass-vfx/base.js +1 -1
  854. package/lib/design-tokens/ts/tokens/functional/components/grid/colors.d.ts +1 -1
  855. package/lib/design-tokens/ts/tokens/functional/components/grid/colors.js +1 -1
  856. package/lib/design-tokens/ts/tokens/functional/components/grid/grid.d.ts +1 -1
  857. package/lib/design-tokens/ts/tokens/functional/components/grid/grid.js +1 -1
  858. package/lib/design-tokens/ts/tokens/functional/components/hero/base.d.ts +1 -1
  859. package/lib/design-tokens/ts/tokens/functional/components/hero/base.js +1 -1
  860. package/lib/design-tokens/ts/tokens/functional/components/icon/colors.d.ts +1 -1
  861. package/lib/design-tokens/ts/tokens/functional/components/icon/colors.js +1 -1
  862. package/lib/design-tokens/ts/tokens/functional/components/ide/base.d.ts +1 -1
  863. package/lib/design-tokens/ts/tokens/functional/components/ide/base.js +1 -1
  864. package/lib/design-tokens/ts/tokens/functional/components/image/base.d.ts +1 -1
  865. package/lib/design-tokens/ts/tokens/functional/components/image/base.js +1 -1
  866. package/lib/design-tokens/ts/tokens/functional/components/inline-code/colors.d.ts +1 -1
  867. package/lib/design-tokens/ts/tokens/functional/components/inline-code/colors.js +1 -1
  868. package/lib/design-tokens/ts/tokens/functional/components/inline-link/base.d.ts +1 -1
  869. package/lib/design-tokens/ts/tokens/functional/components/inline-link/base.js +1 -1
  870. package/lib/design-tokens/ts/tokens/functional/components/inline-link/colors.d.ts +1 -1
  871. package/lib/design-tokens/ts/tokens/functional/components/inline-link/colors.js +1 -1
  872. package/lib/design-tokens/ts/tokens/functional/components/label/colors.d.ts +1 -1
  873. package/lib/design-tokens/ts/tokens/functional/components/label/colors.js +1 -1
  874. package/lib/design-tokens/ts/tokens/functional/components/link/colors.d.ts +1 -1
  875. package/lib/design-tokens/ts/tokens/functional/components/link/colors.js +1 -1
  876. package/lib/design-tokens/ts/tokens/functional/components/logosuite/base.d.ts +1 -1
  877. package/lib/design-tokens/ts/tokens/functional/components/logosuite/base.js +1 -1
  878. package/lib/design-tokens/ts/tokens/functional/components/logosuite/colors.d.ts +1 -1
  879. package/lib/design-tokens/ts/tokens/functional/components/logosuite/colors.js +1 -1
  880. package/lib/design-tokens/ts/tokens/functional/components/media-playlist/colors.d.ts +1 -1
  881. package/lib/design-tokens/ts/tokens/functional/components/media-playlist/colors.js +1 -1
  882. package/lib/design-tokens/ts/tokens/functional/components/pricing-options/colors.d.ts +1 -1
  883. package/lib/design-tokens/ts/tokens/functional/components/pricing-options/colors.js +1 -1
  884. package/lib/design-tokens/ts/tokens/functional/components/pricing-options/pricing-options.d.ts +1 -1
  885. package/lib/design-tokens/ts/tokens/functional/components/pricing-options/pricing-options.js +1 -1
  886. package/lib/design-tokens/ts/tokens/functional/components/prose/base.d.ts +1 -1
  887. package/lib/design-tokens/ts/tokens/functional/components/prose/base.js +1 -1
  888. package/lib/design-tokens/ts/tokens/functional/components/river/base.d.ts +1 -1
  889. package/lib/design-tokens/ts/tokens/functional/components/river/base.js +1 -1
  890. package/lib/design-tokens/ts/tokens/functional/components/river/river.d.ts +1 -1
  891. package/lib/design-tokens/ts/tokens/functional/components/river/river.js +1 -1
  892. package/lib/design-tokens/ts/tokens/functional/components/section/section.d.ts +1 -1
  893. package/lib/design-tokens/ts/tokens/functional/components/section/section.js +1 -1
  894. package/lib/design-tokens/ts/tokens/functional/components/statistic/base.d.ts +1 -1
  895. package/lib/design-tokens/ts/tokens/functional/components/statistic/base.js +1 -1
  896. package/lib/design-tokens/ts/tokens/functional/components/sub-nav/base.d.ts +1 -1
  897. package/lib/design-tokens/ts/tokens/functional/components/sub-nav/base.js +1 -1
  898. package/lib/design-tokens/ts/tokens/functional/components/tabs/base.d.ts +1 -1
  899. package/lib/design-tokens/ts/tokens/functional/components/tabs/base.js +1 -1
  900. package/lib/design-tokens/ts/tokens/functional/components/tabs/colors.d.ts +1 -1
  901. package/lib/design-tokens/ts/tokens/functional/components/tabs/colors.js +1 -1
  902. package/lib/design-tokens/ts/tokens/functional/components/testimonial/base.d.ts +1 -1
  903. package/lib/design-tokens/ts/tokens/functional/components/testimonial/base.js +1 -1
  904. package/lib/design-tokens/ts/tokens/functional/components/testimonial/colors.d.ts +1 -1
  905. package/lib/design-tokens/ts/tokens/functional/components/testimonial/colors.js +1 -1
  906. package/lib/design-tokens/ts/tokens/functional/components/text-cursor-animation/base.d.ts +17 -0
  907. package/lib/design-tokens/ts/tokens/functional/components/text-cursor-animation/base.js +14 -0
  908. package/lib/design-tokens/ts/tokens/functional/components/text-cursor-animation/colors.d.ts +4 -2
  909. package/lib/design-tokens/ts/tokens/functional/components/text-cursor-animation/colors.js +4 -2
  910. package/lib/design-tokens/ts/tokens/functional/components/timeline/base.d.ts +1 -1
  911. package/lib/design-tokens/ts/tokens/functional/components/timeline/base.js +1 -1
  912. package/lib/design-tokens/ts/tokens/functional/components/timeline/colors.d.ts +1 -1
  913. package/lib/design-tokens/ts/tokens/functional/components/timeline/colors.js +1 -1
  914. package/lib/design-tokens/ts/tokens/functional/components/token/colors.d.ts +1 -1
  915. package/lib/design-tokens/ts/tokens/functional/components/token/colors.js +1 -1
  916. package/lib/design-tokens/ts/tokens/functional/components/tooltip/colors.d.ts +1 -1
  917. package/lib/design-tokens/ts/tokens/functional/components/tooltip/colors.js +1 -1
  918. package/lib/design-tokens/ts/tokens/functional/components/video-player/base.d.ts +1 -1
  919. package/lib/design-tokens/ts/tokens/functional/components/video-player/base.js +1 -1
  920. package/lib/design-tokens/ts/tokens/functional/size/border.d.ts +1 -1
  921. package/lib/design-tokens/ts/tokens/functional/size/border.js +1 -1
  922. package/lib/design-tokens/ts/tokens/functional/size/breakpoints.d.ts +1 -1
  923. package/lib/design-tokens/ts/tokens/functional/size/breakpoints.js +1 -1
  924. package/lib/design-tokens/ts/tokens/functional/size/size-coarse.d.ts +1 -1
  925. package/lib/design-tokens/ts/tokens/functional/size/size-coarse.js +1 -1
  926. package/lib/design-tokens/ts/tokens/functional/size/size-fine.d.ts +1 -1
  927. package/lib/design-tokens/ts/tokens/functional/size/size-fine.js +1 -1
  928. package/lib/design-tokens/ts/tokens/functional/size/size.d.ts +1 -1
  929. package/lib/design-tokens/ts/tokens/functional/size/size.js +1 -1
  930. package/lib/design-tokens/ts/tokens/functional/size/viewport.d.ts +1 -1
  931. package/lib/design-tokens/ts/tokens/functional/size/viewport.js +1 -1
  932. package/lib/design-tokens/ts/tokens/functional/typography/typography-responsive.d.ts +1 -1
  933. package/lib/design-tokens/ts/tokens/functional/typography/typography-responsive.js +1 -1
  934. package/lib/design-tokens/ts/tokens/functional/typography/typography.d.ts +1 -1
  935. package/lib/design-tokens/ts/tokens/functional/typography/typography.js +1 -1
  936. package/lib/forms/FormControl/FormControl.d.ts +5 -5
  937. package/lib/forms/Select/Select.d.ts +2 -2
  938. package/lib/hooks/useCursorAnimation.d.ts +8 -31
  939. package/lib/index.js +1 -1
  940. package/lib/list/OrderedList/OrderedList.d.ts +2 -2
  941. package/lib/list/UnorderedList/UnorderedList.d.ts +2 -2
  942. package/lib/river/RiverAccordion/RiverAccordion.d.ts +15 -6
  943. package/lib/river/RiverBreakout/RiverBreakout.d.ts +1 -1
  944. package/lib/river/RiverBreakoutTabs/RiverBreakoutTabs.d.ts +5 -5
  945. package/lib/river/RiverStoryScroll/RiverStoryScroll.d.ts +1 -1
  946. package/lib/river/RiverStoryScroll/RiverStoryScrollProvider.d.ts +2 -2
  947. package/lib/river/RiverStoryScroll/RiverStoryScrollResponder.d.ts +1 -1
  948. package/lib/river/RiverStoryScroll/RiverStoryScrollTracker.d.ts +1 -1
  949. package/llms.txt +2 -2
  950. package/package.json +24 -24
  951. package/esm/SubdomainNavBar/SubdomainNavBar.module-Rf4qEDka.css +0 -1
  952. package/esm/TextCursorAnimation/TextCursorAnimation.module-BJLhwKrK.css +0 -1
  953. package/esm/node_modules/@primer/octicons-react/dist/index.esm.js +0 -434
  954. package/esm/node_modules/@primer/octicons-react/dist/index.esm.js.map +0 -1
  955. package/esm/packages/design-tokens/lib/design-tokens/css/tokens/functional/components/subdomain-nav-bar/colors-with-modes-ehJCoExh.css +0 -1
  956. package/esm/packages/design-tokens/lib/design-tokens/css/tokens/functional/components/text-cursor-animation/colors-with-modes-BODdIvrY.css +0 -1
  957. package/esm/river/RiverAccordion/RiverAccordion.module-BTU_metB.css +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"AnimationProvider.js","names":[],"sources":["../../../src/animation/AnimationProvider/AnimationProvider.tsx"],"sourcesContent":["import React, {createContext, PropsWithChildren, useEffect, useState} from 'react'\n\n/**\n * Design tokens\n */\nimport '@primer/brand-primitives/lib/design-tokens/css/tokens/functional/animation/base.css'\n\n/** * Main Stylesheet (as a CSS Module) */\nimport styles from '../Animation.module.css'\nimport {useId} from '../../hooks/useId'\n\nexport const AnimationVariants = [\n 'fade-in',\n 'fade-out',\n 'slide-in-up',\n 'slide-in-down',\n 'slide-in-left',\n 'slide-in-right',\n 'scale-in-up',\n 'scale-in-down',\n 'scale-in',\n 'fill-in-top',\n 'scale-in-right',\n 'scale-in-left',\n 'fill-in-right',\n 'reveal-in-up',\n] as const\n\ntype Variant = (typeof AnimationVariants)[number]\n\ntype VariantAdvanced = {\n variant: Variant\n delay?: number\n duration?: number\n ease?: string\n}\nexport type AnimateProps = Variant | VariantAdvanced\n\ntype AnimationTrigger = 'click' | 'on-visible' | 'immediate'\ntype IntersectionVisibilityeOptions = 'bottom-of-screen' | 'middle-of-screen' | 'about-to-leave' | number\n\ntype AnimationProviderProps = {\n /**\n * Prevents animations from running inside the provider\n */\n disableAnimations?: boolean\n /**\n * Controls the trigger method for the animation. One of `click`, `on-visible`, or `immediate`.\n */\n animationTrigger?: AnimationTrigger\n /**\n * Controls the intersection observer options for the animation.\n * One of `bottom-of-screen`, `middle-of-screen`, `about-to-leave`, or a number between 0 and 1.\n */\n visibilityOptions?: IntersectionVisibilityeOptions\n /**\n * Will persist the animation end-state after the animation has completed\n */\n runOnce?: boolean\n\n /**\n * Will stagger the animations of the children using an incrementing delay\n */\n autoStaggerChildren?: boolean\n\n /**\n * Stagger delay increment. Should be used alongside `autoStaggerChildren`.\n */\n staggerDelayIncrement?: number\n}\n\nexport const AnimationContext = createContext<AnimationProviderProps>({})\n\nfunction getIntersectionObserverOptions(animationOptions: AnimationProviderProps): IntersectionObserverInit {\n const {visibilityOptions} = animationOptions\n\n switch (visibilityOptions) {\n case 'bottom-of-screen':\n return {\n rootMargin: '0px 0px -10% 0px',\n threshold: 0.4,\n }\n case 'middle-of-screen':\n return {\n rootMargin: '0px 0px -30% 0px',\n threshold: 0.4,\n }\n case 'about-to-leave':\n return {\n rootMargin: '0px 0px -100% 0px',\n threshold: 0.4,\n }\n default:\n return typeof visibilityOptions === 'number'\n ? {\n rootMargin: '0px',\n threshold: visibilityOptions / 100,\n }\n : {\n rootMargin: '0px',\n threshold: 0.4,\n }\n }\n}\n\nexport function AnimationProvider({\n children,\n disableAnimations = false,\n animationTrigger = 'on-visible',\n visibilityOptions = 'bottom-of-screen',\n runOnce = false,\n autoStaggerChildren = true,\n staggerDelayIncrement = 100,\n}: PropsWithChildren<AnimationProviderProps>) {\n const uniqueId = useId()\n const [animationContext, setAnimationContext] = useState<AnimationProviderProps>({\n disableAnimations,\n animationTrigger,\n visibilityOptions,\n runOnce,\n })\n\n useEffect(() => {\n const prefersReducedMotion = window.matchMedia('(prefers-reduced-motion: reduce)').matches\n\n if (prefersReducedMotion) {\n setAnimationContext({\n disableAnimations: true,\n animationTrigger,\n visibilityOptions,\n })\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [])\n\n // add useEffect to add transition-delay to children that contain the Animation class\n useEffect(() => {\n if (!disableAnimations && autoStaggerChildren && uniqueId) {\n const stagger = staggerDelayIncrement\n const animationProvider = document.getElementById(uniqueId)\n\n if (!animationProvider) return\n\n const items = Array.from(animationProvider.querySelectorAll<HTMLElement>(`.${styles.Animation}`))\n\n if (items.length === 0) return\n\n for (let i = 0; i < items.length; i++) {\n items[i].style.transitionDelay = `${i * stagger}ms`\n }\n }\n }, [disableAnimations, autoStaggerChildren, staggerDelayIncrement, uniqueId])\n\n // Immediately run animations and bypass intersection observer\n useEffect(() => {\n if (!disableAnimations && animationTrigger === 'immediate' && uniqueId) {\n const animationProvider = document.getElementById(uniqueId)\n if (!animationProvider) return\n\n requestAnimationFrame(() => {\n const elements = Array.from(animationProvider.querySelectorAll(`.${styles.Animation}`))\n for (const element of elements) {\n element.classList.add(styles['Animation--active'])\n }\n })\n }\n }, [disableAnimations, animationTrigger, uniqueId])\n\n useEffect(() => {\n if (!disableAnimations && animationTrigger === 'on-visible') {\n const observer = new IntersectionObserver(\n entries => {\n for (const entry of entries) {\n if (entry.isIntersecting && entry.target.classList.contains(styles.Animation)) {\n entry.target.classList.add(styles['Animation--active'])\n } else {\n if (!runOnce) {\n entry.target.classList.remove(styles['Animation--active'])\n }\n }\n }\n },\n getIntersectionObserverOptions({\n disableAnimations,\n animationTrigger,\n visibilityOptions,\n }),\n )\n\n const elements = Array.from(document.querySelectorAll(`.${styles.Animation}`))\n\n for (const element of elements) {\n observer.observe(element)\n }\n\n return () => {\n observer.disconnect()\n }\n }\n\n if (!disableAnimations && animationTrigger === 'click') {\n const handleClick = (event: MouseEvent) => {\n const target = event.target as HTMLElement\n if (target.classList.contains(styles.Animation)) {\n target.classList.add(styles['Animation--active'])\n }\n }\n\n document.addEventListener('click', handleClick)\n\n return () => {\n document.removeEventListener('click', handleClick)\n }\n }\n }, [disableAnimations, animationTrigger, visibilityOptions, runOnce])\n return (\n <AnimationContext.Provider value={animationContext}>\n <div id={uniqueId}>{children}</div>\n </AnimationContext.Provider>\n )\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"AnimationProvider.js","names":[],"sources":["../../../src/animation/AnimationProvider/AnimationProvider.tsx"],"sourcesContent":["import React, {createContext, PropsWithChildren, useEffect, useState} from 'react'\n\n/**\n * Design tokens\n */\nimport '@primer/brand-primitives/lib/design-tokens/css/tokens/functional/animation/base.css'\n\n/** * Main Stylesheet (as a CSS Module) */\nimport styles from '../Animation.module.css'\nimport {useId} from '../../hooks/useId'\n\nexport const AnimationVariants = [\n 'fade-in',\n 'fade-out',\n 'slide-in-up',\n 'slide-in-down',\n 'slide-in-left',\n 'slide-in-right',\n 'scale-in-up',\n 'scale-in-down',\n 'scale-in',\n 'fill-in-top',\n 'scale-in-right',\n 'scale-in-left',\n 'fill-in-right',\n 'reveal-in-up',\n] as const\n\ntype Variant = (typeof AnimationVariants)[number]\n\ntype VariantAdvanced = {\n variant: Variant\n delay?: number\n duration?: number\n ease?: string\n}\nexport type AnimateProps = Variant | VariantAdvanced\n\ntype AnimationTrigger = 'click' | 'on-visible' | 'immediate'\ntype IntersectionVisibilityeOptions = 'bottom-of-screen' | 'middle-of-screen' | 'about-to-leave' | number\n\ntype AnimationProviderProps = {\n /**\n * Prevents animations from running inside the provider\n */\n disableAnimations?: boolean\n /**\n * Controls the trigger method for the animation. One of `click`, `on-visible`, or `immediate`.\n */\n animationTrigger?: AnimationTrigger\n /**\n * Controls the intersection observer options for the animation.\n * One of `bottom-of-screen`, `middle-of-screen`, `about-to-leave`, or a number between 0 and 1.\n */\n visibilityOptions?: IntersectionVisibilityeOptions\n /**\n * Will persist the animation end-state after the animation has completed\n */\n runOnce?: boolean\n\n /**\n * Will stagger the animations of the children using an incrementing delay\n */\n autoStaggerChildren?: boolean\n\n /**\n * Stagger delay increment. Should be used alongside `autoStaggerChildren`.\n */\n staggerDelayIncrement?: number\n}\n\nexport const AnimationContext = createContext<AnimationProviderProps>({})\n\nfunction getIntersectionObserverOptions(animationOptions: AnimationProviderProps): IntersectionObserverInit {\n const {visibilityOptions} = animationOptions\n\n switch (visibilityOptions) {\n case 'bottom-of-screen':\n return {\n rootMargin: '0px 0px -10% 0px',\n threshold: 0.4,\n }\n case 'middle-of-screen':\n return {\n rootMargin: '0px 0px -30% 0px',\n threshold: 0.4,\n }\n case 'about-to-leave':\n return {\n rootMargin: '0px 0px -100% 0px',\n threshold: 0.4,\n }\n default:\n return typeof visibilityOptions === 'number'\n ? {\n rootMargin: '0px',\n threshold: visibilityOptions / 100,\n }\n : {\n rootMargin: '0px',\n threshold: 0.4,\n }\n }\n}\n\nexport function AnimationProvider({\n children,\n disableAnimations = false,\n animationTrigger = 'on-visible',\n visibilityOptions = 'bottom-of-screen',\n runOnce = false,\n autoStaggerChildren = true,\n staggerDelayIncrement = 100,\n}: PropsWithChildren<AnimationProviderProps>) {\n const uniqueId = useId()\n const [animationContext, setAnimationContext] = useState<AnimationProviderProps>({\n disableAnimations,\n animationTrigger,\n visibilityOptions,\n runOnce,\n })\n\n useEffect(() => {\n const prefersReducedMotion = window.matchMedia('(prefers-reduced-motion: reduce)').matches\n\n if (prefersReducedMotion) {\n setAnimationContext({\n disableAnimations: true,\n animationTrigger,\n visibilityOptions,\n })\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [])\n\n // add useEffect to add transition-delay to children that contain the Animation class\n useEffect(() => {\n if (!disableAnimations && autoStaggerChildren && uniqueId) {\n const stagger = staggerDelayIncrement\n const animationProvider = document.getElementById(uniqueId)\n\n if (!animationProvider) return\n\n const items = Array.from(animationProvider.querySelectorAll<HTMLElement>(`.${styles.Animation}`))\n\n if (items.length === 0) return\n\n for (let i = 0; i < items.length; i++) {\n items[i].style.transitionDelay = `${i * stagger}ms`\n }\n }\n }, [disableAnimations, autoStaggerChildren, staggerDelayIncrement, uniqueId])\n\n // Immediately run animations and bypass intersection observer\n useEffect(() => {\n if (!disableAnimations && animationTrigger === 'immediate' && uniqueId) {\n const animationProvider = document.getElementById(uniqueId)\n if (!animationProvider) return\n\n requestAnimationFrame(() => {\n const elements = Array.from(animationProvider.querySelectorAll(`.${styles.Animation}`))\n for (const element of elements) {\n element.classList.add(styles['Animation--active'])\n }\n })\n }\n }, [disableAnimations, animationTrigger, uniqueId])\n\n useEffect(() => {\n if (!disableAnimations && animationTrigger === 'on-visible') {\n const observer = new IntersectionObserver(\n entries => {\n for (const entry of entries) {\n if (entry.isIntersecting && entry.target.classList.contains(styles.Animation)) {\n entry.target.classList.add(styles['Animation--active'])\n } else {\n if (!runOnce) {\n entry.target.classList.remove(styles['Animation--active'])\n }\n }\n }\n },\n getIntersectionObserverOptions({\n disableAnimations,\n animationTrigger,\n visibilityOptions,\n }),\n )\n\n const elements = Array.from(document.querySelectorAll(`.${styles.Animation}`))\n\n for (const element of elements) {\n observer.observe(element)\n }\n\n return () => {\n observer.disconnect()\n }\n }\n\n if (!disableAnimations && animationTrigger === 'click') {\n const handleClick = (event: MouseEvent) => {\n const target = event.target as HTMLElement\n if (target.classList.contains(styles.Animation)) {\n target.classList.add(styles['Animation--active'])\n }\n }\n\n document.addEventListener('click', handleClick)\n\n return () => {\n document.removeEventListener('click', handleClick)\n }\n }\n }, [disableAnimations, animationTrigger, visibilityOptions, runOnce])\n return (\n <AnimationContext.Provider value={animationContext}>\n <div id={uniqueId}>{children}</div>\n </AnimationContext.Provider>\n )\n}\n"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import e from "../../node_modules/clsx/dist/clsx.js";
1
+ import { clsx as e } from "../../node_modules/clsx/dist/clsx.js";
2
2
  import { useTextRevealAnimationLines as t } from "./useTextRevealAnimationLines.js";
3
3
  import n from "./TextRevealAnimation.module.js";
4
4
  import { useProvidedRefOrCreate as r } from "../../hooks/useRef.js";
@@ -1 +1 @@
1
- {"version":3,"file":"TextRevealAnimation.js","names":[],"sources":["../../../src/animation/TextRevealAnimation/TextRevealAnimation.tsx"],"sourcesContent":["import React, {useEffect} from 'react'\nimport {clsx} from 'clsx'\nimport {useTextRevealAnimationLines} from './useTextRevealAnimationLines'\n\nimport styles from './TextRevealAnimation.module.css'\nimport {BaseProps} from '../../component-helpers'\nimport {useProvidedRefOrCreate} from '../../hooks/useRef'\n\nexport type TextRevealAnimationProps = BaseProps<HTMLSpanElement> &\n Omit<React.HTMLAttributes<HTMLSpanElement>, 'children'> & {\n children: string\n }\n\nexport const TextRevealAnimation = React.forwardRef<HTMLSpanElement, TextRevealAnimationProps>(\n function TextRevealAnimation({children, ...rest}, forwardedRef) {\n const spanRef = useProvidedRefOrCreate<HTMLSpanElement | null>(\n forwardedRef as React.RefObject<HTMLSpanElement> | React.RefCallback<HTMLSpanElement> | null,\n )\n const {lines} = useTextRevealAnimationLines(children || '', spanRef)\n const [animationStarted, setAnimationStarted] = React.useState(false)\n const [hasAnimationCompleted, setHasAnimationCompleted] = React.useState(false)\n\n const onLineAnimationEnd = (i: number) => {\n if (lines && i === lines.length - 1) {\n setHasAnimationCompleted(true)\n }\n }\n\n useEffect(() => {\n const el = spanRef.current\n const observer = new IntersectionObserver(\n entries => {\n for (const entry of entries) {\n if (entry.isIntersecting) {\n setAnimationStarted(true)\n if (el) {\n observer.unobserve(el)\n }\n }\n }\n },\n {\n threshold: 1,\n rootMargin: '0px 0px -10% 0px',\n },\n )\n\n if (el) {\n observer.observe(el)\n }\n\n return () => {\n if (el) {\n observer.unobserve(el)\n }\n }\n }, [spanRef])\n\n if (typeof children !== 'string' && (process.env.NODE_ENV === 'development' || process.env.NODE_ENV === 'test')) {\n // eslint-disable-next-line no-console\n console.warn('Children passed to TextRevealAnimation must be a string')\n return null\n }\n\n return (\n <span ref={spanRef} {...rest}>\n {lines?.map((line, i) => (\n <React.Fragment key={line}>\n <span\n className={clsx(\n styles.TextRevealAnimation,\n animationStarted && styles['TextRevealAnimation--visible'],\n animationStarted &&\n (hasAnimationCompleted ? styles['TextRevealAnimation'] : styles['TextRevealAnimation--animated']),\n )}\n style={{'--animation-delay': `${220 + i * 200}ms`} as React.CSSProperties}\n onAnimationEnd={() => onLineAnimationEnd(i)}\n >\n {line}\n </span>{' '}\n {/* The trailing space above is intentional. It prevents adjacent words at the start/end of lines from being rendered as a single word */}\n </React.Fragment>\n ))}\n </span>\n )\n },\n)\n"],"mappings":";;;;;;;AAaA,IAAa,IAAsB,EAAM,WACvC,SAA6B,EAAC,aAAU,GAAG,KAAO,GAAc;CAC9D,IAAM,IAAU,EACd,EACD,EACK,EAAC,aAAS,EAA4B,KAAY,IAAI,EAAQ,EAC9D,CAAC,GAAkB,KAAuB,EAAM,SAAS,GAAM,EAC/D,CAAC,GAAuB,KAA4B,EAAM,SAAS,GAAM,EAEzE,KAAsB,MAAc;AACxC,EAAI,KAAS,MAAM,EAAM,SAAS,KAChC,EAAyB,GAAK;;AAwClC,QApCA,QAAgB;EACd,IAAM,IAAK,EAAQ,SACb,IAAW,IAAI,sBACnB,MAAW;AACT,QAAK,IAAM,KAAS,EAClB,CAAI,EAAM,mBACR,EAAoB,GAAK,EACrB,KACF,EAAS,UAAU,EAAG;KAK9B;GACE,WAAW;GACX,YAAY;GACb,CACF;AAMD,SAJI,KACF,EAAS,QAAQ,EAAG,QAGT;AACX,GAAI,KACF,EAAS,UAAU,EAAG;;IAGzB,CAAC,EAAQ,CAAC,EAET,OAAO,KAAa,aAAA,QAAA,IAAA,aAAsC,iBAAA,QAAA,IAAA,aAA0C,WAEtG,QAAQ,KAAK,0DAA0D,EAChE,QAIP,kBAAC,QAAD;EAAM,KAAK;EAAS,GAAI;YACrB,GAAO,KAAK,GAAM,MACjB,kBAAC,EAAM,UAAP,EAAA,UAAA,CACE,kBAAC,QAAD;GACE,WAAW,EACT,EAAO,qBACP,KAAoB,EAAO,iCAC3B,MACG,IAAwB,EAAO,sBAAyB,EAAO,kCACnE;GACD,OAAO,EAAC,qBAAqB,GAAG,MAAM,IAAI,IAAI,KAAI;GAClD,sBAAsB,EAAmB,EAAE;aAE1C;GACI,CAAA,EAAC,IAEO,EAAA,EAdI,EAcJ,CACjB;EACG,CAAA;EAGZ"}
1
+ {"version":3,"file":"TextRevealAnimation.js","names":[],"sources":["../../../src/animation/TextRevealAnimation/TextRevealAnimation.tsx"],"sourcesContent":["import React, {useEffect} from 'react'\nimport {clsx} from 'clsx'\nimport {useTextRevealAnimationLines} from './useTextRevealAnimationLines'\n\nimport styles from './TextRevealAnimation.module.css'\nimport {BaseProps} from '../../component-helpers'\nimport {useProvidedRefOrCreate} from '../../hooks/useRef'\n\nexport type TextRevealAnimationProps = BaseProps<HTMLSpanElement> &\n Omit<React.HTMLAttributes<HTMLSpanElement>, 'children'> & {\n children: string\n }\n\nexport const TextRevealAnimation = React.forwardRef<HTMLSpanElement, TextRevealAnimationProps>(\n function TextRevealAnimationWithRef({children, ...rest}, forwardedRef) {\n const spanRef = useProvidedRefOrCreate<HTMLSpanElement | null>(\n forwardedRef as React.RefObject<HTMLSpanElement> | React.RefCallback<HTMLSpanElement> | null,\n )\n const {lines} = useTextRevealAnimationLines(children || '', spanRef)\n const [animationStarted, setAnimationStarted] = React.useState(false)\n const [hasAnimationCompleted, setHasAnimationCompleted] = React.useState(false)\n\n const onLineAnimationEnd = (i: number) => {\n if (lines && i === lines.length - 1) {\n setHasAnimationCompleted(true)\n }\n }\n\n useEffect(() => {\n const el = spanRef.current\n const observer = new IntersectionObserver(\n entries => {\n for (const entry of entries) {\n if (entry.isIntersecting) {\n setAnimationStarted(true)\n if (el) {\n observer.unobserve(el)\n }\n }\n }\n },\n {\n threshold: 1,\n rootMargin: '0px 0px -10% 0px',\n },\n )\n\n if (el) {\n observer.observe(el)\n }\n\n return () => {\n if (el) {\n observer.unobserve(el)\n }\n }\n }, [spanRef])\n\n if (typeof children !== 'string' && (process.env.NODE_ENV === 'development' || process.env.NODE_ENV === 'test')) {\n // eslint-disable-next-line no-console\n console.warn('Children passed to TextRevealAnimation must be a string')\n return null\n }\n\n return (\n <span ref={spanRef} {...rest}>\n {lines?.map((line, i) => (\n <React.Fragment key={line}>\n <span\n className={clsx(\n styles.TextRevealAnimation,\n animationStarted && styles['TextRevealAnimation--visible'],\n animationStarted &&\n (hasAnimationCompleted ? styles['TextRevealAnimation'] : styles['TextRevealAnimation--animated']),\n )}\n style={{'--animation-delay': `${220 + i * 200}ms`} as React.CSSProperties}\n onAnimationEnd={() => onLineAnimationEnd(i)}\n >\n {line}\n </span>{' '}\n {/* The trailing space above is intentional. It prevents adjacent words at the start/end of lines from being rendered as a single word */}\n </React.Fragment>\n ))}\n </span>\n )\n },\n)\n"],"mappings":";;;;;;;AAaA,IAAa,IAAsB,EAAM,WACvC,SAAoC,EAAC,aAAU,GAAG,KAAO,GAAc;CACrE,IAAM,IAAU,EACd,CACF,GACM,EAAC,aAAS,EAA4B,KAAY,IAAI,CAAO,GAC7D,CAAC,GAAkB,KAAuB,EAAM,SAAS,EAAK,GAC9D,CAAC,GAAuB,KAA4B,EAAM,SAAS,EAAK,GAExE,KAAsB,MAAc;EACxC,AAAI,KAAS,MAAM,EAAM,SAAS,KAChC,EAAyB,EAAI;CAEjC;CAsCA,OApCA,QAAgB;EACd,IAAM,IAAK,EAAQ,SACb,IAAW,IAAI,sBACnB,MAAW;GACT,KAAK,IAAM,KAAS,GAClB,AAAI,EAAM,mBACR,EAAoB,EAAI,GACpB,KACF,EAAS,UAAU,CAAE;EAI7B,GACA;GACE,WAAW;GACX,YAAY;EACd,CACF;EAMA,OAJI,KACF,EAAS,QAAQ,CAAE,SAGR;GACX,AAAI,KACF,EAAS,UAAU,CAAE;EAEzB;CACF,GAAG,CAAC,CAAO,CAAC,GAER,OAAO,KAAa,aAAA,QAAA,IAAA,aAAsC,iBAAA,QAAA,IAAA,aAA0C,WAEtG,QAAQ,KAAK,yDAAyD,GAC/D,QAIP,kBAAC,QAAD;EAAM,KAAK;EAAS,GAAI;YACrB,GAAO,KAAK,GAAM,MACjB,kBAAC,EAAM,UAAP,EAAA,UAAA,CACE,kBAAC,QAAD;GACE,WAAW,EACT,EAAO,qBACP,KAAoB,EAAO,iCAC3B,MACG,IAAwB,EAAO,sBAAyB,EAAO,iCACpE;GACA,OAAO,EAAC,qBAAqB,GAAG,MAAM,IAAI,IAAI,IAAG;GACjD,sBAAsB,EAAmB,CAAC;aAEzC;EACG,CAAA,GAAE,GAEM,EAAA,GAdK,CAcL,CACjB;CACG,CAAA;AAEV,CACF"}
@@ -1,10 +1,11 @@
1
- import './TextRevealAnimation.module-BzK16DXS.css';var e = {
2
- TextRevealAnimation: "Primer_Brand__TextRevealAnimation-module__TextRevealAnimation___W6_ey",
1
+ import './TextRevealAnimation.module-BzK16DXS.css';//#region src/animation/TextRevealAnimation/TextRevealAnimation.module.css
2
+ var e = "Primer_Brand__TextRevealAnimation-module__TextRevealAnimation___W6_ey", t = "Primer_Brand__TextRevealAnimation-module__wipe___IwKBR", n = {
3
+ TextRevealAnimation: e,
3
4
  "TextRevealAnimation--visible": "Primer_Brand__TextRevealAnimation-module__TextRevealAnimation--visible___VS7mJ",
4
5
  "TextRevealAnimation--animated": "Primer_Brand__TextRevealAnimation-module__TextRevealAnimation--animated___wKBYl",
5
- wipe: "Primer_Brand__TextRevealAnimation-module__wipe___IwKBR"
6
+ wipe: t
6
7
  };
7
8
  //#endregion
8
- export { e as default };
9
+ export { e as TextRevealAnimation, n as default, t as wipe };
9
10
 
10
11
  //# sourceMappingURL=TextRevealAnimation.module.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useTextRevealAnimationLines.js","names":[],"sources":["../../../src/animation/TextRevealAnimation/useTextRevealAnimationLines.ts"],"sourcesContent":["import {useRef, useEffect, useState, RefObject} from 'react'\n\nexport const useTextRevealAnimationLines = (text?: string, providedRef?: RefObject<HTMLElement | null>) => {\n const internalRef = useRef<HTMLElement>(null)\n const ref = providedRef ?? internalRef\n const [lines, setLines] = useState<string[]>()\n\n useEffect(() => {\n if (!ref.current || !text) return\n\n const wrapLines = () => {\n const element = ref.current\n\n if (!element || !text) return\n\n const originalColor = window.getComputedStyle(element).color\n\n element.style.color = 'transparent'\n element.textContent = ''\n\n const words = text.split(' ')\n\n const lineBreakPositions: number[] = []\n let prevHeight = 0\n const linesArr: string[][] = []\n\n for (const word of words) {\n element.textContent += `${word} `\n const height = element.offsetHeight\n\n if (linesArr.length === 0) {\n prevHeight = height\n linesArr.push([word])\n continue\n }\n\n if (height > prevHeight) {\n lineBreakPositions.push(linesArr.length)\n linesArr.push([word])\n } else {\n linesArr.at(-1)?.push(word)\n }\n\n prevHeight = height\n }\n\n element.style.color = originalColor\n element.textContent = ''\n\n setLines(linesArr.map(line => line.join(' ')))\n }\n\n wrapLines()\n }, [text, ref])\n\n return {ref, lines}\n}\n"],"mappings":";;AAEA,IAAa,KAA+B,GAAe,MAAgD;CACzG,IAAM,IAAc,EAAoB,KAAK,EACvC,IAAM,KAAe,GACrB,CAAC,GAAO,KAAY,GAAoB;AAkD9C,QAhDA,QAAgB;AACV,GAAC,EAAI,WAAW,CAAC,YAEG;GACtB,IAAM,IAAU,EAAI;AAEpB,OAAI,CAAC,KAAW,CAAC,EAAM;GAEvB,IAAM,IAAgB,OAAO,iBAAiB,EAAQ,CAAC;AAGvD,GADA,EAAQ,MAAM,QAAQ,eACtB,EAAQ,cAAc;GAEtB,IAAM,IAAQ,EAAK,MAAM,IAAI,EAEvB,IAA+B,EAAE,EACnC,IAAa,GACX,IAAuB,EAAE;AAE/B,QAAK,IAAM,KAAQ,GAAO;AACxB,MAAQ,eAAe,GAAG,EAAK;IAC/B,IAAM,IAAS,EAAQ;AAEvB,QAAI,EAAS,WAAW,GAAG;AAEzB,KADA,IAAa,GACb,EAAS,KAAK,CAAC,EAAK,CAAC;AACrB;;AAUF,IAPI,IAAS,KACX,EAAmB,KAAK,EAAS,OAAO,EACxC,EAAS,KAAK,CAAC,EAAK,CAAC,IAErB,EAAS,GAAG,GAAG,EAAE,KAAK,EAAK,EAG7B,IAAa;;AAMf,GAHA,EAAQ,MAAM,QAAQ,GACtB,EAAQ,cAAc,IAEtB,EAAS,EAAS,KAAI,MAAQ,EAAK,KAAK,IAAI,CAAC,CAAC;MAGrC;IACV,CAAC,GAAM,EAAI,CAAC,EAER;EAAC;EAAK;EAAM"}
1
+ {"version":3,"file":"useTextRevealAnimationLines.js","names":[],"sources":["../../../src/animation/TextRevealAnimation/useTextRevealAnimationLines.ts"],"sourcesContent":["import {useRef, useEffect, useState, RefObject} from 'react'\n\nexport const useTextRevealAnimationLines = (text?: string, providedRef?: RefObject<HTMLElement | null>) => {\n const internalRef = useRef<HTMLElement>(null)\n const ref = providedRef ?? internalRef\n const [lines, setLines] = useState<string[]>()\n\n useEffect(() => {\n if (!ref.current || !text) return\n\n const wrapLines = () => {\n const element = ref.current\n\n if (!element || !text) return\n\n const originalColor = window.getComputedStyle(element).color\n\n element.style.color = 'transparent'\n element.textContent = ''\n\n const words = text.split(' ')\n\n const lineBreakPositions: number[] = []\n let prevHeight = 0\n const linesArr: string[][] = []\n\n for (const word of words) {\n element.textContent += `${word} `\n const height = element.offsetHeight\n\n if (linesArr.length === 0) {\n prevHeight = height\n linesArr.push([word])\n continue\n }\n\n if (height > prevHeight) {\n lineBreakPositions.push(linesArr.length)\n linesArr.push([word])\n } else {\n linesArr.at(-1)?.push(word)\n }\n\n prevHeight = height\n }\n\n element.style.color = originalColor\n element.textContent = ''\n\n setLines(linesArr.map(line => line.join(' ')))\n }\n\n wrapLines()\n }, [text, ref])\n\n return {ref, lines}\n}\n"],"mappings":";;AAEA,IAAa,KAA+B,GAAe,MAAgD;CACzG,IAAM,IAAc,EAAoB,IAAI,GACtC,IAAM,KAAe,GACrB,CAAC,GAAO,KAAY,EAAmB;CAkD7C,OAhDA,QAAgB;EACV,CAAC,EAAI,WAAW,CAAC,YAEG;GACtB,IAAM,IAAU,EAAI;GAEpB,IAAI,CAAC,KAAW,CAAC,GAAM;GAEvB,IAAM,IAAgB,OAAO,iBAAiB,CAAO,CAAC,CAAC;GAGvD,AADA,EAAQ,MAAM,QAAQ,eACtB,EAAQ,cAAc;GAEtB,IAAM,IAAQ,EAAK,MAAM,GAAG,GAEtB,IAA+B,CAAC,GAClC,IAAa,GACX,IAAuB,CAAC;GAE9B,KAAK,IAAM,KAAQ,GAAO;IACxB,EAAQ,eAAe,GAAG,EAAK;IAC/B,IAAM,IAAS,EAAQ;IAEvB,IAAI,EAAS,WAAW,GAAG;KAEzB,AADA,IAAa,GACb,EAAS,KAAK,CAAC,CAAI,CAAC;KACpB;IACF;IASA,AAPI,IAAS,KACX,EAAmB,KAAK,EAAS,MAAM,GACvC,EAAS,KAAK,CAAC,CAAI,CAAC,KAEpB,EAAS,GAAG,EAAE,CAAC,EAAE,KAAK,CAAI,GAG5B,IAAa;GACf;GAKA,AAHA,EAAQ,MAAM,QAAQ,GACtB,EAAQ,cAAc,IAEtB,EAAS,EAAS,KAAI,MAAQ,EAAK,KAAK,GAAG,CAAC,CAAC;EAC/C,EAEA,CAAU;CACZ,GAAG,CAAC,GAAM,CAAG,CAAC,GAEP;EAAC;EAAK;CAAK;AACpB"}
@@ -1 +1 @@
1
- {"version":3,"file":"useAnimation.js","names":[],"sources":["../../src/animation/useAnimation.ts"],"sourcesContent":["import {CSSProperties, useContext, useMemo} from 'react'\nimport {AnimateProps, AnimationContext, AnimationVariants} from './AnimationProvider'\n\nimport styles from './Animation.module.css'\n\nconst animationTypeToClass = AnimationVariants.reduce((acc, key) => {\n acc[key] = styles[`Animation--${key}`]\n return acc\n}, {})\n\n/**\n * A hook that returns CSS classes and styles for animating an element.\n * @param {AnimateProps} [animateProps] - An object containing animation properties.\n * @returns {{classes: string; styles: CSSProperties}} - An object containing CSS classes and styles for animating an element.\n */\nexport const useAnimation = (animateProps?: AnimateProps): {classes: string; styles: CSSProperties} => {\n const {disableAnimations} = useContext(AnimationContext)\n\n const animationClasses = useMemo(() => {\n if (!animateProps || disableAnimations) {\n return ''\n }\n\n const defaultClasses = styles.Animation\n const dynamicClasses: string[] = []\n\n const animationType = typeof animateProps === 'string' ? animateProps : animateProps.variant\n const animationClass = animationTypeToClass[animationType]\n if (animationClass) {\n dynamicClasses.push(animationClass)\n }\n\n return `${defaultClasses} ${dynamicClasses.join(' ')}`\n }, [animateProps, disableAnimations])\n\n const animationStyles = useMemo(() => {\n if (!animateProps) {\n return {}\n }\n\n const newStyles: CSSProperties = {}\n\n if (typeof animateProps === 'object') {\n const {delay, duration, ease} = animateProps\n if (typeof delay === 'number') {\n newStyles.transitionDelay = `${delay}ms`\n }\n if (typeof duration === 'number') {\n newStyles.transitionDuration = `${duration}ms`\n }\n\n if (ease) {\n newStyles.transitionTimingFunction = ease\n }\n }\n\n return newStyles\n }, [animateProps])\n\n return {\n classes: animationClasses,\n styles: animationStyles,\n }\n}\n"],"mappings":";;;;AAKA,IAAM,IAAuB,EAAkB,QAAQ,GAAK,OAC1D,EAAI,KAAO,EAAO,cAAc,MACzB,IACN,EAAE,CAAC,EAOO,KAAgB,MAA0E;CACrG,IAAM,EAAC,yBAAqB,EAAW,EAAiB;AA2CxD,QAAO;EACL,SA1CuB,QAAc;AACrC,OAAI,CAAC,KAAgB,EACnB,QAAO;GAGT,IAAM,IAAiB,EAAO,WACxB,IAA2B,EAAE,EAG7B,IAAiB,EADD,OAAO,KAAiB,WAAW,IAAe,EAAa;AAMrF,UAJI,KACF,EAAe,KAAK,EAAe,EAG9B,GAAG,EAAe,GAAG,EAAe,KAAK,IAAI;KACnD,CAAC,GAAc,EAAkB,CA2BzB;EACT,QA1BsB,QAAc;AACpC,OAAI,CAAC,EACH,QAAO,EAAE;GAGX,IAAM,IAA2B,EAAE;AAEnC,OAAI,OAAO,KAAiB,UAAU;IACpC,IAAM,EAAC,UAAO,aAAU,YAAQ;AAQhC,IAPI,OAAO,KAAU,aACnB,EAAU,kBAAkB,GAAG,EAAM,MAEnC,OAAO,KAAa,aACtB,EAAU,qBAAqB,GAAG,EAAS,MAGzC,MACF,EAAU,2BAA2B;;AAIzC,UAAO;KACN,CAAC,EAAa,CAIP;EACT"}
1
+ {"version":3,"file":"useAnimation.js","names":[],"sources":["../../src/animation/useAnimation.ts"],"sourcesContent":["import {CSSProperties, useContext, useMemo} from 'react'\nimport {AnimateProps, AnimationContext, AnimationVariants} from './AnimationProvider'\n\nimport styles from './Animation.module.css'\n\nconst animationTypeToClass = AnimationVariants.reduce((acc, key) => {\n acc[key] = styles[`Animation--${key}`]\n return acc\n}, {})\n\n/**\n * A hook that returns CSS classes and styles for animating an element.\n * @param {AnimateProps} [animateProps] - An object containing animation properties.\n * @returns {{classes: string; styles: CSSProperties}} - An object containing CSS classes and styles for animating an element.\n */\nexport const useAnimation = (animateProps?: AnimateProps): {classes: string; styles: CSSProperties} => {\n const {disableAnimations} = useContext(AnimationContext)\n\n const animationClasses = useMemo(() => {\n if (!animateProps || disableAnimations) {\n return ''\n }\n\n const defaultClasses = styles.Animation\n const dynamicClasses: string[] = []\n\n const animationType = typeof animateProps === 'string' ? animateProps : animateProps.variant\n const animationClass = animationTypeToClass[animationType]\n if (animationClass) {\n dynamicClasses.push(animationClass)\n }\n\n return `${defaultClasses} ${dynamicClasses.join(' ')}`\n }, [animateProps, disableAnimations])\n\n const animationStyles = useMemo(() => {\n if (!animateProps) {\n return {}\n }\n\n const newStyles: CSSProperties = {}\n\n if (typeof animateProps === 'object') {\n const {delay, duration, ease} = animateProps\n if (typeof delay === 'number') {\n newStyles.transitionDelay = `${delay}ms`\n }\n if (typeof duration === 'number') {\n newStyles.transitionDuration = `${duration}ms`\n }\n\n if (ease) {\n newStyles.transitionTimingFunction = ease\n }\n }\n\n return newStyles\n }, [animateProps])\n\n return {\n classes: animationClasses,\n styles: animationStyles,\n }\n}\n"],"mappings":";;;;AAKA,IAAM,IAAuB,EAAkB,QAAQ,GAAK,OAC1D,EAAI,KAAO,EAAO,cAAc,MACzB,IACN,CAAC,CAAC,GAOQ,KAAgB,MAA0E;CACrG,IAAM,EAAC,yBAAqB,EAAW,CAAgB;CA2CvD,OAAO;EACL,SA1CuB,QAAc;GACrC,IAAI,CAAC,KAAgB,GACnB,OAAO;GAGT,IAAM,IAAiB,EAAO,WACxB,IAA2B,CAAC,GAG5B,IAAiB,EADD,OAAO,KAAiB,WAAW,IAAe,EAAa;GAMrF,OAJI,KACF,EAAe,KAAK,CAAc,GAG7B,GAAG,EAAe,GAAG,EAAe,KAAK,GAAG;EACrD,GAAG,CAAC,GAAc,CAAiB,CA2BxB;EACT,QA1BsB,QAAc;GACpC,IAAI,CAAC,GACH,OAAO,CAAC;GAGV,IAAM,IAA2B,CAAC;GAElC,IAAI,OAAO,KAAiB,UAAU;IACpC,IAAM,EAAC,UAAO,aAAU,YAAQ;IAQhC,AAPI,OAAO,KAAU,aACnB,EAAU,kBAAkB,GAAG,EAAM,MAEnC,OAAO,KAAa,aACtB,EAAU,qBAAqB,GAAG,EAAS,MAGzC,MACF,EAAU,2BAA2B;GAEzC;GAEA,OAAO;EACT,GAAG,CAAC,CAAY,CAIN;CACV;AACF"}
@@ -1,5 +1,6 @@
1
- import './shared.module-CrdMh7Vf.css';var e = { gridline: "Primer_Brand__shared-module__gridline___FDR_5" };
1
+ import './shared.module-CrdMh7Vf.css';//#region src/component-helpers/shared.module.css
2
+ var e = "Primer_Brand__shared-module__gridline___FDR_5", t = { gridline: e };
2
3
  //#endregion
3
- export { e as default };
4
+ export { t as default, e as gridline };
4
5
 
5
6
  //# sourceMappingURL=shared.module.js.map
@@ -6,14 +6,14 @@ import { AnimateProps } from './animation/AnimationProvider';
6
6
  export declare const Container: ({ children, style, }: {
7
7
  children: React.ReactElement[] | React.ReactElement;
8
8
  style?: React.CSSProperties;
9
- }) => import("react/jsx-runtime").JSX.Element;
9
+ }) => React.JSX.Element;
10
10
  type RedlineBackgroundProps = {
11
11
  height?: number;
12
12
  hasBorder?: boolean;
13
13
  className?: string;
14
14
  style?: CSSProperties;
15
15
  };
16
- export declare function RedlineBackground({ height, hasBorder, style, ...rest }: PropsWithChildren<RedlineBackgroundProps>): import("react/jsx-runtime").JSX.Element;
16
+ export declare function RedlineBackground({ height, hasBorder, style, ...rest }: PropsWithChildren<RedlineBackgroundProps>): React.JSX.Element;
17
17
  /**
18
18
  * Base Types
19
19
  */
@@ -1 +1 @@
1
- {"version":3,"file":"component-helpers.d.ts","sourceRoot":"","sources":["../src/component-helpers.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAC,GAAG,EAAE,iBAAiB,EAAE,aAAa,EAAC,MAAM,OAAO,CAAA;AAClE,OAAO,EAAC,YAAY,EAAC,MAAM,+BAA+B,CAAA;AAE1D;;GAEG;AACH,eAAO,MAAM,SAAS,GAAI,sBAGvB;IACD,QAAQ,EAAE,KAAK,CAAC,YAAY,EAAE,GAAG,KAAK,CAAC,YAAY,CAAA;IACnD,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAA;CAC5B,4CAA+E,CAAA;AAEhF,KAAK,sBAAsB,GAAG;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,KAAK,CAAC,EAAE,aAAa,CAAA;CACtB,CAAA;AAED,wBAAgB,iBAAiB,CAAC,EAChC,MAAM,EACN,SAAgB,EAChB,KAAK,EACL,GAAG,IAAI,EACR,EAAE,iBAAiB,CAAC,sBAAsB,CAAC,2CAoB3C;AAED;;GAEG;AAEH;;;;;;;;GAQG;AACH,MAAM,MAAM,SAAS,CAAC,CAAC,IAAI;IACzB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAA;IACZ,OAAO,CAAC,EAAE,YAAY,CAAA;CACvB,CAAA"}
1
+ {"version":3,"file":"component-helpers.d.ts","sourceRoot":"","sources":["../src/component-helpers.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAC,GAAG,EAAE,iBAAiB,EAAE,aAAa,EAAC,MAAM,OAAO,CAAA;AAClE,OAAO,EAAC,YAAY,EAAC,MAAM,+BAA+B,CAAA;AAE1D;;GAEG;AACH,eAAO,MAAM,SAAS,GAAI,sBAGvB;IACD,QAAQ,EAAE,KAAK,CAAC,YAAY,EAAE,GAAG,KAAK,CAAC,YAAY,CAAA;IACnD,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAA;CAC5B,sBAA+E,CAAA;AAEhF,KAAK,sBAAsB,GAAG;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,KAAK,CAAC,EAAE,aAAa,CAAA;CACtB,CAAA;AAED,wBAAgB,iBAAiB,CAAC,EAChC,MAAM,EACN,SAAgB,EAChB,KAAK,EACL,GAAG,IAAI,EACR,EAAE,iBAAiB,CAAC,sBAAsB,CAAC,qBAoB3C;AAED;;GAEG;AAEH;;;;;;;;GAQG;AACH,MAAM,MAAM,SAAS,CAAC,CAAC,IAAI;IACzB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAA;IACZ,OAAO,CAAC,EAAE,YAAY,CAAA;CACvB,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","names":[],"sources":["../src/constants.tsx"],"sourcesContent":["export const Colors = [\n 'default',\n 'blue',\n 'coral',\n 'green',\n 'gray',\n 'indigo',\n 'lemon',\n 'lime',\n 'orange',\n 'pink',\n 'purple',\n 'red',\n 'teal',\n 'yellow',\n] as const\n\nexport const BiColorGradients = ['blue-purple', 'green-blue', 'pink-blue', 'purple-red', 'red-orange'] as const\nexport const TriColorGradients = ['green-blue-purple'] as const\n\n// TODO: consider generating the scale from style dictionary and serve from the brand-primitives package\nexport const BaseSizeScale = [4, 8, 12, 16, 20, 24, 28, 32, 36, 40, 44, 48, 60, 64, 80, 88, 96, 112, 128] as const\ntype BaseSizeScale = (typeof BaseSizeScale)[number]\n"],"mappings":";AAAA,IAAa,IAAS;CACpB;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACD,EAEY,IAAmB;CAAC;CAAe;CAAc;CAAa;CAAc;CAAa,EACzF,IAAoB,CAAC,oBAAoB,EAGzC,IAAgB;CAAC;CAAG;CAAG;CAAI;CAAI;CAAI;CAAI;CAAI;CAAI;CAAI;CAAI;CAAI;CAAI;CAAI;CAAI;CAAI;CAAI;CAAI;CAAK;CAAI"}
1
+ {"version":3,"file":"constants.js","names":[],"sources":["../src/constants.tsx"],"sourcesContent":["export const Colors = [\n 'default',\n 'blue',\n 'coral',\n 'green',\n 'gray',\n 'indigo',\n 'lemon',\n 'lime',\n 'orange',\n 'pink',\n 'purple',\n 'red',\n 'teal',\n 'yellow',\n] as const\n\nexport const BiColorGradients = ['blue-purple', 'green-blue', 'pink-blue', 'purple-red', 'red-orange'] as const\nexport const TriColorGradients = ['green-blue-purple'] as const\n\n// TODO: consider generating the scale from style dictionary and serve from the brand-primitives package\nexport const BaseSizeScale = [4, 8, 12, 16, 20, 24, 28, 32, 36, 40, 44, 48, 60, 64, 80, 88, 96, 112, 128] as const\ntype BaseSizeScale = (typeof BaseSizeScale)[number]\n"],"mappings":";AAAA,IAAa,IAAS;CACpB;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACF,GAEa,IAAmB;CAAC;CAAe;CAAc;CAAa;CAAc;AAAY,GACxF,IAAoB,CAAC,mBAAmB,GAGxC,IAAgB;CAAC;CAAG;CAAG;CAAI;CAAI;CAAI;CAAI;CAAI;CAAI;CAAI;CAAI;CAAI;CAAI;CAAI;CAAI;CAAI;CAAI;CAAI;CAAK;AAAG"}
@@ -1,4 +1,4 @@
1
- import './utilities-BivJncWo.css';import './reset-CSgu34_f.css';import '../packages/design-tokens/lib/design-tokens/css/tokens/functional/typography/typography-responsive-D6GwCHec.css';import '../packages/design-tokens/lib/design-tokens/css/tokens/functional/size/size-SXubYfUg.css';import '../packages/design-tokens/lib/design-tokens/css/tokens/functional/size/breakpoints-DV9ZFHGu.css';import '../packages/design-tokens/lib/design-tokens/css/tokens/functional/size/border-B0NqqX5b.css';import '../packages/design-tokens/lib/design-tokens/css/tokens/functional/colors/global-with-modes-Bdet_nBw.css';import '../packages/design-tokens/lib/design-tokens/css/tokens/functional/animation/base-BIr7u5g8.css';import '../packages/design-tokens/lib/design-tokens/css/tokens/base/typography/typography-CAC6sGQ3.css';import '../packages/design-tokens/lib/design-tokens/css/tokens/base/size/size-6EfgMG7y.css';import '../packages/design-tokens/lib/design-tokens/css/tokens/base/colors/color-scales-with-modes-BVk7bh0Y.css';/* empty css */
1
+ import './utilities-BivJncWo.css';import '../packages/design-tokens/lib/design-tokens/css/tokens/functional/colors/global-with-modes-Bdet_nBw.css';import '../packages/design-tokens/lib/design-tokens/css/tokens/functional/size/border-B0NqqX5b.css';import '../packages/design-tokens/lib/design-tokens/css/tokens/functional/size/breakpoints-DV9ZFHGu.css';import '../packages/design-tokens/lib/design-tokens/css/tokens/functional/typography/typography-responsive-D6GwCHec.css';import '../packages/design-tokens/lib/design-tokens/css/tokens/functional/size/size-SXubYfUg.css';import '../packages/design-tokens/lib/design-tokens/css/tokens/functional/animation/base-BIr7u5g8.css';import '../packages/design-tokens/lib/design-tokens/css/tokens/base/typography/typography-CAC6sGQ3.css';import '../packages/design-tokens/lib/design-tokens/css/tokens/base/size/size-6EfgMG7y.css';import '../packages/design-tokens/lib/design-tokens/css/tokens/base/colors/color-scales-with-modes-BVk7bh0Y.css';import './reset-CSgu34_f.css';/* empty css */
2
2
  /* empty css */
3
3
  /* empty css */
4
4
  /* empty css */
@@ -1 +1 @@
1
- {"version":3,"file":"findElementInChildren.js","names":[],"sources":["../src/findElementInChildren.ts"],"sourcesContent":["import React from 'react'\n\nconst findElementInChildren = (children: React.ReactNode, element: React.ElementType): boolean => {\n if (!children) {\n return false\n }\n\n if (Array.isArray(children)) {\n for (const child of children) {\n if (findElementInChildren(child, element)) {\n return true\n }\n }\n } else if (React.isValidElement<{children?: React.ReactNode}>(children)) {\n if (children.type === element) {\n return true\n }\n\n if (children.props.children && findElementInChildren(children.props.children, element)) {\n return true\n }\n }\n\n return false\n}\n\nexport default findElementInChildren\n"],"mappings":";;AAEA,IAAM,KAAyB,GAA2B,MAAwC;AAChG,KAAI,CAAC,EACH,QAAO;AAGT,KAAI,MAAM,QAAQ,EAAS;OACpB,IAAM,KAAS,EAClB,KAAI,EAAsB,GAAO,EAAQ,CACvC,QAAO;YAGF,EAAM,eAA6C,EAAS,KACjE,EAAS,SAAS,KAIlB,EAAS,MAAM,YAAY,EAAsB,EAAS,MAAM,UAAU,EAAQ,EACpF,QAAO;AAIX,QAAO"}
1
+ {"version":3,"file":"findElementInChildren.js","names":[],"sources":["../src/findElementInChildren.ts"],"sourcesContent":["import React from 'react'\n\nconst findElementInChildren = (children: React.ReactNode, element: React.ElementType): boolean => {\n if (!children) {\n return false\n }\n\n if (Array.isArray(children)) {\n for (const child of children) {\n if (findElementInChildren(child, element)) {\n return true\n }\n }\n } else if (React.isValidElement<{children?: React.ReactNode}>(children)) {\n if (children.type === element) {\n return true\n }\n\n if (children.props.children && findElementInChildren(children.props.children, element)) {\n return true\n }\n }\n\n return false\n}\n\nexport default findElementInChildren\n"],"mappings":";;AAEA,IAAM,KAAyB,GAA2B,MAAwC;CAChG,IAAI,CAAC,GACH,OAAO;CAGT,IAAI,MAAM,QAAQ,CAAQ;OACnB,IAAM,KAAS,GAClB,IAAI,EAAsB,GAAO,CAAO,GACtC,OAAO;CAAA,OAGN,IAAI,EAAM,eAA6C,CAAQ,MAChE,EAAS,SAAS,KAIlB,EAAS,MAAM,YAAY,EAAsB,EAAS,MAAM,UAAU,CAAO,IACnF,OAAO;CAIX,OAAO;AACT"}
@@ -1,4 +1,4 @@
1
- import e from "../../node_modules/clsx/dist/clsx.js";
1
+ import { clsx as e } from "../../node_modules/clsx/dist/clsx.js";
2
2
  import { useId as t } from "../../hooks/useId.js";
3
3
  import { useProvidedRefOrCreate as n } from "../../hooks/useRef.js";
4
4
  import r from "../../hooks/useIsomorphicLayoutEffect.js";
@@ -25,7 +25,7 @@ var l = a(({ checked: a, className: l, indeterminate: u, disabled: d, id: f, onC
25
25
  "aria-invalid": h === "error" ? "true" : "false",
26
26
  "aria-required": m ? "true" : "false",
27
27
  "aria-checked": u ? "mixed" : a,
28
- checked: u ? !1 : a,
28
+ checked: !u && a,
29
29
  className: e(i["Checkbox-input"]),
30
30
  disabled: d,
31
31
  name: g,
@@ -1 +1 @@
1
- {"version":3,"file":"Checkbox.js","names":[],"sources":["../../../src/forms/Checkbox/Checkbox.tsx"],"sourcesContent":["import React, {forwardRef, useCallback, type InputHTMLAttributes, type ReactElement} from 'react'\nimport {clsx} from 'clsx'\nimport {useId} from '../../hooks/useId'\n\nimport type {BaseProps} from '../../component-helpers'\nimport type {FormValidationStatus} from '../form-types'\nimport useLayoutEffect from '../../hooks/useIsomorphicLayoutEffect'\n\nimport '@primer/brand-primitives/lib/design-tokens/css/tokens/functional/components/control/colors-with-modes.css'\nimport styles from './Checkbox.module.css'\nimport {useProvidedRefOrCreate} from '../../hooks/useRef'\n\nexport type CheckboxProps = {\n /**\n * Apply indeterminate visual appearance to the checkbox\n */\n indeterminate?: boolean\n /**\n * Apply inactive visual appearance to the checkbox\n */\n disabled?: boolean\n /**\n * Indicates whether the checkbox must be checked\n */\n required?: boolean\n /**\n * Only used to inform ARIA attributes. Individual checkboxes do not have validation styles.\n */\n validationStatus?: FormValidationStatus\n /**\n * A unique value that is never shown to the user.\n * Used during form submission and to identify which checkbox inputs are selected\n */\n value?: string\n} & Exclude<InputHTMLAttributes<HTMLInputElement>, 'value'> &\n BaseProps<HTMLInputElement>\n\nconst CheckboxInternal = (\n {\n checked,\n className,\n indeterminate,\n disabled,\n id,\n onChange,\n required,\n validationStatus,\n value,\n ...rest\n }: CheckboxProps,\n ref,\n): ReactElement => {\n const inputRef = useProvidedRefOrCreate<HTMLInputElement | null>(ref || null)\n const uniqueId = useId(id)\n\n useLayoutEffect(() => {\n if (inputRef.current) {\n inputRef.current.indeterminate = indeterminate || false\n }\n }, [indeterminate, checked, inputRef])\n\n const onClick = useCallback(() => {\n if (!disabled && inputRef.current) {\n inputRef.current.click()\n }\n }, [disabled, inputRef])\n\n return (\n <span className={styles['Checkbox-wrapper']}>\n <input\n id={uniqueId}\n aria-invalid={validationStatus === 'error' ? 'true' : 'false'}\n aria-required={required ? 'true' : 'false'}\n aria-checked={indeterminate ? 'mixed' : checked}\n checked={indeterminate ? false : checked}\n className={clsx(styles['Checkbox-input'])}\n disabled={disabled}\n name={value}\n onChange={onChange}\n ref={inputRef}\n required={required}\n type=\"checkbox\"\n value={value}\n {...rest}\n />\n <span\n className={clsx(styles['Checkbox'], indeterminate && styles['Checkbox--indeterminate'], className)}\n onClick={onClick}\n tabIndex={-1}\n aria-hidden=\"true\"\n >\n {indeterminate ? (\n <svg\n className={clsx(styles['Checkbox-checkmark'])}\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 16 16\"\n width=\"16\"\n height=\"16\"\n aria-hidden=\"true\"\n >\n <path fillRule=\"evenodd\" d=\"M2 7.75A.75.75 0 012.75 7h10a.75.75 0 010 1.5h-10A.75.75 0 012 7.75z\"></path>\n </svg>\n ) : (\n <svg viewBox=\"0 0 100 100\" className={clsx(styles['Checkbox-checkmark'])} aria-hidden=\"true\">\n <path\n className={clsx(styles['Checkbox-checkmark-path'])}\n fill=\"none\"\n stroke=\"#000\"\n strokeWidth=\"13\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeMiterlimit=\"10\"\n d=\"M12.1 52.1l24.4 24.4 53-53\"\n />\n </svg>\n )}\n </span>\n </span>\n )\n}\n\nexport const Checkbox = forwardRef(CheckboxInternal)\n"],"mappings":";;;;;;;;AAyHA,IAAa,IAAW,GAnFtB,EACE,YACA,cACA,kBACA,aACA,OACA,aACA,aACA,qBACA,UACA,GAAG,KAEL,MACiB;CACjB,IAAM,IAAW,EAAgD,KAAO,KAAK,EACvE,IAAW,EAAM,EAAG;AAE1B,SAAsB;AACpB,EAAI,EAAS,YACX,EAAS,QAAQ,gBAAgB,KAAiB;IAEnD;EAAC;EAAe;EAAS;EAAS,CAAC;CAEtC,IAAM,IAAU,QAAkB;AAChC,EAAI,CAAC,KAAY,EAAS,WACxB,EAAS,QAAQ,OAAO;IAEzB,CAAC,GAAU,EAAS,CAAC;AAExB,QACE,kBAAC,QAAD;EAAM,WAAW,EAAO;YAAxB,CACE,kBAAC,SAAD;GACE,IAAI;GACJ,gBAAc,MAAqB,UAAU,SAAS;GACtD,iBAAe,IAAW,SAAS;GACnC,gBAAc,IAAgB,UAAU;GACxC,SAAS,IAAgB,KAAQ;GACjC,WAAW,EAAK,EAAO,kBAAkB;GAC/B;GACV,MAAM;GACI;GACV,KAAK;GACK;GACV,MAAK;GACE;GACP,GAAI;GACJ,CAAA,EACF,kBAAC,QAAD;GACE,WAAW,EAAK,EAAO,UAAa,KAAiB,EAAO,4BAA4B,EAAU;GACzF;GACT,UAAU;GACV,eAAY;aAEX,IACC,kBAAC,OAAD;IACE,WAAW,EAAK,EAAO,sBAAsB;IAC7C,OAAM;IACN,SAAQ;IACR,OAAM;IACN,QAAO;IACP,eAAY;cAEZ,kBAAC,QAAD;KAAM,UAAS;KAAU,GAAE;KAA8E,CAAA;IACrG,CAAA,GAEN,kBAAC,OAAD;IAAK,SAAQ;IAAc,WAAW,EAAK,EAAO,sBAAsB;IAAE,eAAY;cACpF,kBAAC,QAAD;KACE,WAAW,EAAK,EAAO,2BAA2B;KAClD,MAAK;KACL,QAAO;KACP,aAAY;KACZ,eAAc;KACd,gBAAe;KACf,kBAAiB;KACjB,GAAE;KACF,CAAA;IACE,CAAA;GAEH,CAAA,CACF;;EAIyC"}
1
+ {"version":3,"file":"Checkbox.js","names":[],"sources":["../../../src/forms/Checkbox/Checkbox.tsx"],"sourcesContent":["import React, {forwardRef, useCallback, type InputHTMLAttributes, type ReactElement} from 'react'\nimport {clsx} from 'clsx'\nimport {useId} from '../../hooks/useId'\n\nimport type {BaseProps} from '../../component-helpers'\nimport type {FormValidationStatus} from '../form-types'\nimport useLayoutEffect from '../../hooks/useIsomorphicLayoutEffect'\n\nimport '@primer/brand-primitives/lib/design-tokens/css/tokens/functional/components/control/colors-with-modes.css'\nimport styles from './Checkbox.module.css'\nimport {useProvidedRefOrCreate} from '../../hooks/useRef'\n\nexport type CheckboxProps = {\n /**\n * Apply indeterminate visual appearance to the checkbox\n */\n indeterminate?: boolean\n /**\n * Apply inactive visual appearance to the checkbox\n */\n disabled?: boolean\n /**\n * Indicates whether the checkbox must be checked\n */\n required?: boolean\n /**\n * Only used to inform ARIA attributes. Individual checkboxes do not have validation styles.\n */\n validationStatus?: FormValidationStatus\n /**\n * A unique value that is never shown to the user.\n * Used during form submission and to identify which checkbox inputs are selected\n */\n value?: string\n} & Exclude<InputHTMLAttributes<HTMLInputElement>, 'value'> &\n BaseProps<HTMLInputElement>\n\nconst CheckboxInternal = (\n {\n checked,\n className,\n indeterminate,\n disabled,\n id,\n onChange,\n required,\n validationStatus,\n value,\n ...rest\n }: CheckboxProps,\n ref,\n): ReactElement => {\n const inputRef = useProvidedRefOrCreate<HTMLInputElement | null>(ref || null)\n const uniqueId = useId(id)\n\n useLayoutEffect(() => {\n if (inputRef.current) {\n inputRef.current.indeterminate = indeterminate || false\n }\n }, [indeterminate, checked, inputRef])\n\n const onClick = useCallback(() => {\n if (!disabled && inputRef.current) {\n inputRef.current.click()\n }\n }, [disabled, inputRef])\n\n return (\n <span className={styles['Checkbox-wrapper']}>\n <input\n id={uniqueId}\n aria-invalid={validationStatus === 'error' ? 'true' : 'false'}\n aria-required={required ? 'true' : 'false'}\n aria-checked={indeterminate ? 'mixed' : checked}\n checked={indeterminate ? false : checked}\n className={clsx(styles['Checkbox-input'])}\n disabled={disabled}\n name={value}\n onChange={onChange}\n ref={inputRef}\n required={required}\n type=\"checkbox\"\n value={value}\n {...rest}\n />\n <span\n className={clsx(styles['Checkbox'], indeterminate && styles['Checkbox--indeterminate'], className)}\n onClick={onClick}\n tabIndex={-1}\n aria-hidden=\"true\"\n >\n {indeterminate ? (\n <svg\n className={clsx(styles['Checkbox-checkmark'])}\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 16 16\"\n width=\"16\"\n height=\"16\"\n aria-hidden=\"true\"\n >\n <path fillRule=\"evenodd\" d=\"M2 7.75A.75.75 0 012.75 7h10a.75.75 0 010 1.5h-10A.75.75 0 012 7.75z\"></path>\n </svg>\n ) : (\n <svg viewBox=\"0 0 100 100\" className={clsx(styles['Checkbox-checkmark'])} aria-hidden=\"true\">\n <path\n className={clsx(styles['Checkbox-checkmark-path'])}\n fill=\"none\"\n stroke=\"#000\"\n strokeWidth=\"13\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeMiterlimit=\"10\"\n d=\"M12.1 52.1l24.4 24.4 53-53\"\n />\n </svg>\n )}\n </span>\n </span>\n )\n}\n\nexport const Checkbox = forwardRef(CheckboxInternal)\n"],"mappings":";;;;;;;;AAyHA,IAAa,IAAW,GAnFtB,EACE,YACA,cACA,kBACA,aACA,OACA,aACA,aACA,qBACA,UACA,GAAG,KAEL,MACiB;CACjB,IAAM,IAAW,EAAgD,KAAO,IAAI,GACtE,IAAW,EAAM,CAAE;CAEzB,QAAsB;EACpB,AAAI,EAAS,YACX,EAAS,QAAQ,gBAAgB,KAAiB;CAEtD,GAAG;EAAC;EAAe;EAAS;CAAQ,CAAC;CAErC,IAAM,IAAU,QAAkB;EAChC,AAAI,CAAC,KAAY,EAAS,WACxB,EAAS,QAAQ,MAAM;CAE3B,GAAG,CAAC,GAAU,CAAQ,CAAC;CAEvB,OACE,kBAAC,QAAD;EAAM,WAAW,EAAO;YAAxB,CACE,kBAAC,SAAD;GACE,IAAI;GACJ,gBAAc,MAAqB,UAAU,SAAS;GACtD,iBAAe,IAAW,SAAS;GACnC,gBAAc,IAAgB,UAAU;GACxC,SAAS,MAAwB;GACjC,WAAW,EAAK,EAAO,iBAAiB;GAC9B;GACV,MAAM;GACI;GACV,KAAK;GACK;GACV,MAAK;GACE;GACP,GAAI;EACL,CAAA,GACD,kBAAC,QAAD;GACE,WAAW,EAAK,EAAO,UAAa,KAAiB,EAAO,4BAA4B,CAAS;GACxF;GACT,UAAU;GACV,eAAY;aAEX,IACC,kBAAC,OAAD;IACE,WAAW,EAAK,EAAO,qBAAqB;IAC5C,OAAM;IACN,SAAQ;IACR,OAAM;IACN,QAAO;IACP,eAAY;cAEZ,kBAAC,QAAD;KAAM,UAAS;KAAU,GAAE;IAA6E,CAAA;GACrG,CAAA,IAEL,kBAAC,OAAD;IAAK,SAAQ;IAAc,WAAW,EAAK,EAAO,qBAAqB;IAAG,eAAY;cACpF,kBAAC,QAAD;KACE,WAAW,EAAK,EAAO,0BAA0B;KACjD,MAAK;KACL,QAAO;KACP,aAAY;KACZ,eAAc;KACd,gBAAe;KACf,kBAAiB;KACjB,GAAE;IACH,CAAA;GACE,CAAA;EAEH,CAAA,CACF;;AAEV,CAEmD"}
@@ -1,12 +1,13 @@
1
- import './Checkbox.module-CtRGEfSq.css';var e = {
1
+ import './Checkbox.module-CtRGEfSq.css';//#region src/forms/Checkbox/Checkbox.module.css
2
+ var e = "Primer_Brand__Checkbox-module__Checkbox___u6_Bq", t = {
2
3
  "Checkbox-wrapper": "Primer_Brand__Checkbox-module__Checkbox-wrapper___81I1z",
3
- Checkbox: "Primer_Brand__Checkbox-module__Checkbox___u6_Bq",
4
+ Checkbox: e,
4
5
  "Checkbox-input": "Primer_Brand__Checkbox-module__Checkbox-input___NQtTz",
5
6
  "Checkbox-checkmark": "Primer_Brand__Checkbox-module__Checkbox-checkmark___1RiBT",
6
7
  "Checkbox-checkmark-path": "Primer_Brand__Checkbox-module__Checkbox-checkmark-path___NHI_D",
7
8
  "Checkbox--indeterminate": "Primer_Brand__Checkbox-module__Checkbox--indeterminate___TsIkM"
8
9
  };
9
10
  //#endregion
10
- export { e as default };
11
+ export { e as Checkbox, t as default };
11
12
 
12
13
  //# sourceMappingURL=Checkbox.module.js.map
@@ -1,7 +1,8 @@
1
- import e from "../../node_modules/clsx/dist/clsx.js";
1
+ import { clsx as e } from "../../node_modules/clsx/dist/clsx.js";
2
2
  import { useId as t } from "../../hooks/useId.js";
3
3
  import { Text as n } from "../../Text/Text.js";
4
- import { AlertFillIcon as r, CheckCircleFillIcon as i } from "../../node_modules/@primer/octicons-react/dist/index.esm.js";
4
+ import { AlertFillIcon as r } from "../../node_modules/@primer/octicons-react/dist/icons/AlertFillIcon.js";
5
+ import { CheckCircleFillIcon as i } from "../../node_modules/@primer/octicons-react/dist/icons/CheckCircleFillIcon.js";
5
6
  import a from "./ControlGroup.module.js";
6
7
  import { Children as o, createContext as s, forwardRef as c, isValidElement as l, useContext as u } from "react";
7
8
  import { jsx as d, jsxs as f } from "react/jsx-runtime";
@@ -1 +1 @@
1
- {"version":3,"file":"ControlGroup.js","names":[],"sources":["../../../src/forms/ControlGroup/ControlGroup.tsx"],"sourcesContent":["import React, {Children, createContext, forwardRef, isValidElement, useContext, type HTMLAttributes} from 'react'\nimport {clsx} from 'clsx'\nimport {AlertFillIcon, CheckCircleFillIcon} from '@primer/octicons-react'\nimport {useId} from '../../hooks/useId'\n\nimport type {FormValidationStatus} from '..'\nimport {Text} from '../..'\nimport styles from './ControlGroup.module.css'\n\ntype ControlGroupContext = {\n id?: string\n}\n\nconst ControlGroupContext = createContext<ControlGroupContext | null>(null)\n\nconst useControlGroup = () => {\n const context = useContext(ControlGroupContext)\n\n if (!context) {\n throw new Error(\n 'useControlGroup must be used within an ControlGroupProvider. Did you forget to wrap your component in a <ControlGroupProvider>?',\n )\n }\n\n return context\n}\n\nexport type ControlGroupProps = HTMLAttributes<HTMLFieldSetElement>\nconst _ControlGroup = forwardRef<HTMLFieldSetElement, ControlGroupProps>(({className, id, ...props}, ref) => {\n const uniqueId = useId(id)\n\n const containsCaption = Children.toArray(props.children).some(\n child => isValidElement(child) && child.type === ControlGroupCaption,\n )\n const containsValidation = Children.toArray(props.children).some(\n child => isValidElement(child) && child.type === ControlGroupValidation,\n )\n\n const describedBy =\n [containsCaption && `${uniqueId}-caption`, containsValidation && `${uniqueId}-validation`]\n .filter(Boolean)\n .join(' ') || undefined\n\n return (\n <ControlGroupContext.Provider value={{id: uniqueId}}>\n <fieldset\n ref={ref}\n className={clsx(styles.ControlGroup__container, className)}\n aria-describedby={describedBy}\n {...props}\n />\n </ControlGroupContext.Provider>\n )\n})\n\nexport type ControlGroupLabelProps = {visuallyHidden?: boolean} & HTMLAttributes<HTMLLegendElement>\nconst ControlGroupLabel = forwardRef<HTMLLegendElement, ControlGroupLabelProps>(\n ({children, className, visuallyHidden, ...props}, ref) => {\n return (\n <legend\n ref={ref}\n className={clsx(styles.ControlGroup__label, visuallyHidden && 'visually-hidden', className)}\n {...props}\n >\n <Text as=\"span\" weight=\"medium\" size=\"100\">\n {children}\n </Text>\n </legend>\n )\n },\n)\n\nexport type ControlGroupCaptionProps = HTMLAttributes<HTMLSpanElement>\nconst ControlGroupCaption = forwardRef<HTMLSpanElement, ControlGroupCaptionProps>(({className, ...props}, ref) => {\n const {id} = useControlGroup()\n\n return <Text as=\"span\" size=\"100\" variant=\"muted\" ref={ref} id={`${id}-caption`} className={className} {...props} />\n})\n\nexport type ControlGroupValidationProps = {variant: FormValidationStatus} & HTMLAttributes<HTMLSpanElement>\nconst ControlGroupValidation = forwardRef<HTMLSpanElement, ControlGroupValidationProps>(\n ({className, variant, children, ...props}, ref) => {\n const {id} = useControlGroup()\n\n return (\n <Text\n as=\"span\"\n size=\"100\"\n ref={ref}\n id={`${id}-validation`}\n className={clsx(\n styles.ControlGroup__validation,\n styles['ControlGroup__validation--animate-in'],\n variant === 'success' && styles['ControlGroup__validation--success'],\n variant === 'error' && styles['ControlGroup__validation--error'],\n className,\n )}\n {...props}\n >\n {variant === 'success' && (\n <span className={styles['ControlGroup__validation-icon--success']}>\n <CheckCircleFillIcon />\n </span>\n )}\n {variant === 'error' && (\n <span className={styles['ControlGroup__validation-icon--error']}>\n <AlertFillIcon />\n </span>\n )}\n {children}\n </Text>\n )\n },\n)\n\nexport const ControlGroup = Object.assign(_ControlGroup, {\n Label: ControlGroupLabel,\n Caption: ControlGroupCaption,\n Validation: ControlGroupValidation,\n})\n"],"mappings":";;;;;;;;AAaA,IAAM,IAAsB,EAA0C,KAAK,EAErE,UAAwB;CAC5B,IAAM,IAAU,EAAW,EAAoB;AAE/C,KAAI,CAAC,EACH,OAAU,MACR,kIACD;AAGH,QAAO;GAIH,IAAgB,GAAoD,EAAC,cAAW,OAAI,GAAG,KAAQ,MAAQ;CAC3G,IAAM,IAAW,EAAM,EAAG,EAEpB,IAAkB,EAAS,QAAQ,EAAM,SAAS,CAAC,MACvD,MAAS,EAAe,EAAM,IAAI,EAAM,SAAS,EAClD,EACK,IAAqB,EAAS,QAAQ,EAAM,SAAS,CAAC,MAC1D,MAAS,EAAe,EAAM,IAAI,EAAM,SAAS,EAClD,EAEK,IACJ,CAAC,KAAmB,GAAG,EAAS,WAAW,KAAsB,GAAG,EAAS,aAAa,CACvF,OAAO,QAAQ,CACf,KAAK,IAAI,IAAI,KAAA;AAElB,QACE,kBAAC,EAAoB,UAArB;EAA8B,OAAO,EAAC,IAAI,GAAS;YACjD,kBAAC,YAAD;GACO;GACL,WAAW,EAAK,EAAO,yBAAyB,EAAU;GAC1D,oBAAkB;GAClB,GAAI;GACJ,CAAA;EAC2B,CAAA;EAEjC,EAGI,IAAoB,GACvB,EAAC,aAAU,cAAW,mBAAgB,GAAG,KAAQ,MAE9C,kBAAC,UAAD;CACO;CACL,WAAW,EAAK,EAAO,qBAAqB,KAAkB,mBAAmB,EAAU;CAC3F,GAAI;WAEJ,kBAAC,GAAD;EAAM,IAAG;EAAO,QAAO;EAAS,MAAK;EAClC;EACI,CAAA;CACA,CAAA,CAGd,EAGK,IAAsB,GAAuD,EAAC,cAAW,GAAG,KAAQ,MAAQ;CAChH,IAAM,EAAC,UAAM,GAAiB;AAE9B,QAAO,kBAAC,GAAD;EAAM,IAAG;EAAO,MAAK;EAAM,SAAQ;EAAa;EAAK,IAAI,GAAG,EAAG;EAAsB;EAAW,GAAI;EAAS,CAAA;EACpH,EAGI,IAAyB,GAC5B,EAAC,cAAW,YAAS,aAAU,GAAG,KAAQ,MAAQ;CACjD,IAAM,EAAC,UAAM,GAAiB;AAE9B,QACE,kBAAC,GAAD;EACE,IAAG;EACH,MAAK;EACA;EACL,IAAI,GAAG,EAAG;EACV,WAAW,EACT,EAAO,0BACP,EAAO,yCACP,MAAY,aAAa,EAAO,sCAChC,MAAY,WAAW,EAAO,oCAC9B,EACD;EACD,GAAI;YAZN;GAcG,MAAY,aACX,kBAAC,QAAD;IAAM,WAAW,EAAO;cACtB,kBAAC,GAAD,EAAuB,CAAA;IAClB,CAAA;GAER,MAAY,WACX,kBAAC,QAAD;IAAM,WAAW,EAAO;cACtB,kBAAC,GAAD,EAAiB,CAAA;IACZ,CAAA;GAER;GACI;;EAGZ,EAEY,IAAe,OAAO,OAAO,GAAe;CACvD,OAAO;CACP,SAAS;CACT,YAAY;CACb,CAAC"}
1
+ {"version":3,"file":"ControlGroup.js","names":[],"sources":["../../../src/forms/ControlGroup/ControlGroup.tsx"],"sourcesContent":["import React, {Children, createContext, forwardRef, isValidElement, useContext, type HTMLAttributes} from 'react'\nimport {clsx} from 'clsx'\nimport {AlertFillIcon, CheckCircleFillIcon} from '@primer/octicons-react'\nimport {useId} from '../../hooks/useId'\n\nimport type {FormValidationStatus} from '..'\nimport {Text} from '../..'\nimport styles from './ControlGroup.module.css'\n\ntype ControlGroupContext = {\n id?: string\n}\n\nconst ControlGroupContext = createContext<ControlGroupContext | null>(null)\n\nconst useControlGroup = () => {\n const context = useContext(ControlGroupContext)\n\n if (!context) {\n throw new Error(\n 'useControlGroup must be used within an ControlGroupProvider. Did you forget to wrap your component in a <ControlGroupProvider>?',\n )\n }\n\n return context\n}\n\nexport type ControlGroupProps = HTMLAttributes<HTMLFieldSetElement>\nconst _ControlGroup = forwardRef<HTMLFieldSetElement, ControlGroupProps>(({className, id, ...props}, ref) => {\n const uniqueId = useId(id)\n\n const containsCaption = Children.toArray(props.children).some(\n child => isValidElement(child) && child.type === ControlGroupCaption,\n )\n const containsValidation = Children.toArray(props.children).some(\n child => isValidElement(child) && child.type === ControlGroupValidation,\n )\n\n const describedBy =\n [containsCaption && `${uniqueId}-caption`, containsValidation && `${uniqueId}-validation`]\n .filter(Boolean)\n .join(' ') || undefined\n\n return (\n <ControlGroupContext.Provider value={{id: uniqueId}}>\n <fieldset\n ref={ref}\n className={clsx(styles.ControlGroup__container, className)}\n aria-describedby={describedBy}\n {...props}\n />\n </ControlGroupContext.Provider>\n )\n})\n\nexport type ControlGroupLabelProps = {visuallyHidden?: boolean} & HTMLAttributes<HTMLLegendElement>\nconst ControlGroupLabel = forwardRef<HTMLLegendElement, ControlGroupLabelProps>(\n ({children, className, visuallyHidden, ...props}, ref) => {\n return (\n <legend\n ref={ref}\n className={clsx(styles.ControlGroup__label, visuallyHidden && 'visually-hidden', className)}\n {...props}\n >\n <Text as=\"span\" weight=\"medium\" size=\"100\">\n {children}\n </Text>\n </legend>\n )\n },\n)\n\nexport type ControlGroupCaptionProps = HTMLAttributes<HTMLSpanElement>\nconst ControlGroupCaption = forwardRef<HTMLSpanElement, ControlGroupCaptionProps>(({className, ...props}, ref) => {\n const {id} = useControlGroup()\n\n return <Text as=\"span\" size=\"100\" variant=\"muted\" ref={ref} id={`${id}-caption`} className={className} {...props} />\n})\n\nexport type ControlGroupValidationProps = {variant: FormValidationStatus} & HTMLAttributes<HTMLSpanElement>\nconst ControlGroupValidation = forwardRef<HTMLSpanElement, ControlGroupValidationProps>(\n ({className, variant, children, ...props}, ref) => {\n const {id} = useControlGroup()\n\n return (\n <Text\n as=\"span\"\n size=\"100\"\n ref={ref}\n id={`${id}-validation`}\n className={clsx(\n styles.ControlGroup__validation,\n styles['ControlGroup__validation--animate-in'],\n variant === 'success' && styles['ControlGroup__validation--success'],\n variant === 'error' && styles['ControlGroup__validation--error'],\n className,\n )}\n {...props}\n >\n {variant === 'success' && (\n <span className={styles['ControlGroup__validation-icon--success']}>\n <CheckCircleFillIcon />\n </span>\n )}\n {variant === 'error' && (\n <span className={styles['ControlGroup__validation-icon--error']}>\n <AlertFillIcon />\n </span>\n )}\n {children}\n </Text>\n )\n },\n)\n\nexport const ControlGroup = Object.assign(_ControlGroup, {\n Label: ControlGroupLabel,\n Caption: ControlGroupCaption,\n Validation: ControlGroupValidation,\n})\n"],"mappings":";;;;;;;;;AAaA,IAAM,IAAsB,EAA0C,IAAI,GAEpE,UAAwB;CAC5B,IAAM,IAAU,EAAW,CAAmB;CAE9C,IAAI,CAAC,GACH,MAAU,MACR,iIACF;CAGF,OAAO;AACT,GAGM,IAAgB,GAAoD,EAAC,cAAW,OAAI,GAAG,KAAQ,MAAQ;CAC3G,IAAM,IAAW,EAAM,CAAE,GAEnB,IAAkB,EAAS,QAAQ,EAAM,QAAQ,CAAC,CAAC,MACvD,MAAS,EAAe,CAAK,KAAK,EAAM,SAAS,CACnD,GACM,IAAqB,EAAS,QAAQ,EAAM,QAAQ,CAAC,CAAC,MAC1D,MAAS,EAAe,CAAK,KAAK,EAAM,SAAS,CACnD,GAEM,IACJ,CAAC,KAAmB,GAAG,EAAS,WAAW,KAAsB,GAAG,EAAS,YAAY,CAAC,CACvF,OAAO,OAAO,CAAC,CACf,KAAK,GAAG,KAAK,KAAA;CAElB,OACE,kBAAC,EAAoB,UAArB;EAA8B,OAAO,EAAC,IAAI,EAAQ;YAChD,kBAAC,YAAD;GACO;GACL,WAAW,EAAK,EAAO,yBAAyB,CAAS;GACzD,oBAAkB;GAClB,GAAI;EACL,CAAA;CAC2B,CAAA;AAElC,CAAC,GAGK,IAAoB,GACvB,EAAC,aAAU,cAAW,mBAAgB,GAAG,KAAQ,MAE9C,kBAAC,UAAD;CACO;CACL,WAAW,EAAK,EAAO,qBAAqB,KAAkB,mBAAmB,CAAS;CAC1F,GAAI;WAEJ,kBAAC,GAAD;EAAM,IAAG;EAAO,QAAO;EAAS,MAAK;EAClC;CACG,CAAA;AACA,CAAA,CAGd,GAGM,IAAsB,GAAuD,EAAC,cAAW,GAAG,KAAQ,MAAQ;CAChH,IAAM,EAAC,UAAM,EAAgB;CAE7B,OAAO,kBAAC,GAAD;EAAM,IAAG;EAAO,MAAK;EAAM,SAAQ;EAAa;EAAK,IAAI,GAAG,EAAG;EAAsB;EAAW,GAAI;CAAQ,CAAA;AACrH,CAAC,GAGK,IAAyB,GAC5B,EAAC,cAAW,YAAS,aAAU,GAAG,KAAQ,MAAQ;CACjD,IAAM,EAAC,UAAM,EAAgB;CAE7B,OACE,kBAAC,GAAD;EACE,IAAG;EACH,MAAK;EACA;EACL,IAAI,GAAG,EAAG;EACV,WAAW,EACT,EAAO,0BACP,EAAO,yCACP,MAAY,aAAa,EAAO,sCAChC,MAAY,WAAW,EAAO,oCAC9B,CACF;EACA,GAAI;YAZN;GAcG,MAAY,aACX,kBAAC,QAAD;IAAM,WAAW,EAAO;cACtB,kBAAC,GAAD,CAAsB,CAAA;GAClB,CAAA;GAEP,MAAY,WACX,kBAAC,QAAD;IAAM,WAAW,EAAO;cACtB,kBAAC,GAAD,CAAgB,CAAA;GACZ,CAAA;GAEP;EACG;;AAEV,CACF,GAEa,IAAe,OAAO,OAAO,GAAe;CACvD,OAAO;CACP,SAAS;CACT,YAAY;AACd,CAAC"}
@@ -1,15 +1,16 @@
1
- import './ControlGroup.module-XDWDqxx9.css';var e = {
2
- ControlGroup__container: "Primer_Brand__ControlGroup-module__ControlGroup__container___k0gGq",
3
- ControlGroup__label: "Primer_Brand__ControlGroup-module__ControlGroup__label___T4WJ_",
4
- ControlGroup__validation: "Primer_Brand__ControlGroup-module__ControlGroup__validation___Mw_kk",
1
+ import './ControlGroup.module-XDWDqxx9.css';//#region src/forms/ControlGroup/ControlGroup.module.css
2
+ var e = "Primer_Brand__ControlGroup-module__ControlGroup__container___k0gGq", t = "Primer_Brand__ControlGroup-module__ControlGroup__label___T4WJ_", n = "Primer_Brand__ControlGroup-module__ControlGroup__validation___Mw_kk", r = "Primer_Brand__ControlGroup-module__ControlGroupValidationFadeIn___XyNBx", i = {
3
+ ControlGroup__container: e,
4
+ ControlGroup__label: t,
5
+ ControlGroup__validation: n,
5
6
  "ControlGroup__validation--success": "Primer_Brand__ControlGroup-module__ControlGroup__validation--success___MyYHt",
6
7
  "ControlGroup__validation--error": "Primer_Brand__ControlGroup-module__ControlGroup__validation--error___LauSr",
7
8
  "ControlGroup__validation-icon--success": "Primer_Brand__ControlGroup-module__ControlGroup__validation-icon--success___DM0ZI",
8
9
  "ControlGroup__validation-icon--error": "Primer_Brand__ControlGroup-module__ControlGroup__validation-icon--error___IDxnE",
9
10
  "ControlGroup__validation--animate-in": "Primer_Brand__ControlGroup-module__ControlGroup__validation--animate-in___RqXFv",
10
- ControlGroupValidationFadeIn: "Primer_Brand__ControlGroup-module__ControlGroupValidationFadeIn___XyNBx"
11
+ ControlGroupValidationFadeIn: r
11
12
  };
12
13
  //#endregion
13
- export { e as default };
14
+ export { r as ControlGroupValidationFadeIn, e as ControlGroup__container, t as ControlGroup__label, n as ControlGroup__validation, i as default };
14
15
 
15
16
  //# sourceMappingURL=ControlGroup.module.js.map
@@ -1,4 +1,4 @@
1
- import { PropsWithChildren } from 'react';
1
+ import React, { PropsWithChildren } from 'react';
2
2
  import type { BaseProps } from '../../component-helpers';
3
3
  import type { FormValidationStatus, FormInputSizes } from '../';
4
4
  import '@primer/brand-primitives/lib/design-tokens/css/tokens/functional/components/control/colors-with-modes.css';
@@ -47,10 +47,10 @@ type FormControlHintProps = PropsWithChildren<BaseProps<HTMLSpanElement>>;
47
47
  * FormControl
48
48
  * {@link https://primer.style/brand/components/FormControl/ See usage examples}.
49
49
  */
50
- export declare const FormControl: (({ children, className, hasBorder, fullWidth, id, required, size, validationStatus, ...rest }: PropsWithChildren<FormControlProps>) => import("react/jsx-runtime").JSX.Element) & {
51
- Label: ({ children, className, htmlFor, required, showRequiredIndicator, size, validationStatus, visuallyHidden, ...rest }: PropsWithChildren<FormControlLabelProps>) => import("react/jsx-runtime").JSX.Element;
52
- Validation: ({ children, validationStatus, className, ...props }: FormControlValidationProps) => import("react/jsx-runtime").JSX.Element;
53
- Hint: ({ className, ...rest }: FormControlHintProps) => import("react/jsx-runtime").JSX.Element;
50
+ export declare const FormControl: (({ children, className, hasBorder, fullWidth, id, required, size, validationStatus, ...rest }: PropsWithChildren<FormControlProps>) => React.JSX.Element) & {
51
+ Label: ({ children, className, htmlFor, required, showRequiredIndicator, size, validationStatus, visuallyHidden, ...rest }: PropsWithChildren<FormControlLabelProps>) => React.JSX.Element;
52
+ Validation: ({ children, validationStatus, className, ...props }: FormControlValidationProps) => React.JSX.Element;
53
+ Hint: ({ className, ...rest }: FormControlHintProps) => React.JSX.Element;
54
54
  };
55
55
  export {};
56
56
  //# sourceMappingURL=FormControl.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"FormControl.d.ts","sourceRoot":"","sources":["../../../src/forms/FormControl/FormControl.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAC,iBAAiB,EAAC,MAAM,OAAO,CAAA;AAK9C,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,yBAAyB,CAAA;AACtD,OAAO,KAAK,EAAC,oBAAoB,EAAE,cAAc,EAAC,MAAM,KAAK,CAAA;AAS7D,OAAO,2GAA2G,CAAA;AAGlH,MAAM,MAAM,gBAAgB,GAAG,SAAS,CAAC,WAAW,CAAC,GAAG;IACtD;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB;;;;OAIG;IACH,EAAE,CAAC,EAAE,MAAM,CAAA;IACX;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB;;OAEG;IACH,IAAI,CAAC,EAAE,cAAc,CAAA;IACrB;;OAEG;IACH,gBAAgB,CAAC,EAAE,oBAAoB,CAAA;CACxC,CAAA;AA2JD,KAAK,qBAAqB,GAAG;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,qBAAqB,CAAC,EAAE,OAAO,CAAA;IAC/B,IAAI,CAAC,EAAE,cAAc,CAAA;IACrB,gBAAgB,CAAC,EAAE,oBAAoB,CAAA;IACvC,cAAc,CAAC,EAAE,OAAO,CAAA;CACzB,GAAG,SAAS,CAAC,gBAAgB,CAAC,CAAA;AA4C/B,KAAK,0BAA0B,GAAG;IAChC,QAAQ,EAAE,MAAM,CAAA;IAChB,gBAAgB,CAAC,EAAE,oBAAoB,CAAA;CACxC,GAAG,SAAS,CAAC,eAAe,CAAC,CAAA;AA8B9B,KAAK,oBAAoB,GAAG,iBAAiB,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC,CAAA;AAMzE;;;GAGG;AACH,eAAO,MAAM,WAAW,kGAnOrB,iBAAiB,CAAC,gBAAgB,CAAC;gIAwJnC,iBAAiB,CAAC,qBAAqB,CAAC;sEAqCuC,0BAA0B;mCA8B7D,oBAAoB;CAYjE,CAAA"}
1
+ {"version":3,"file":"FormControl.d.ts","sourceRoot":"","sources":["../../../src/forms/FormControl/FormControl.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAC,iBAAiB,EAAC,MAAM,OAAO,CAAA;AAK9C,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,yBAAyB,CAAA;AACtD,OAAO,KAAK,EAAC,oBAAoB,EAAE,cAAc,EAAC,MAAM,KAAK,CAAA;AAS7D,OAAO,2GAA2G,CAAA;AAGlH,MAAM,MAAM,gBAAgB,GAAG,SAAS,CAAC,WAAW,CAAC,GAAG;IACtD;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB;;;;OAIG;IACH,EAAE,CAAC,EAAE,MAAM,CAAA;IACX;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB;;OAEG;IACH,IAAI,CAAC,EAAE,cAAc,CAAA;IACrB;;OAEG;IACH,gBAAgB,CAAC,EAAE,oBAAoB,CAAA;CACxC,CAAA;AA2JD,KAAK,qBAAqB,GAAG;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,qBAAqB,CAAC,EAAE,OAAO,CAAA;IAC/B,IAAI,CAAC,EAAE,cAAc,CAAA;IACrB,gBAAgB,CAAC,EAAE,oBAAoB,CAAA;IACvC,cAAc,CAAC,EAAE,OAAO,CAAA;CACzB,GAAG,SAAS,CAAC,gBAAgB,CAAC,CAAA;AA4C/B,KAAK,0BAA0B,GAAG;IAChC,QAAQ,EAAE,MAAM,CAAA;IAChB,gBAAgB,CAAC,EAAE,oBAAoB,CAAA;CACxC,GAAG,SAAS,CAAC,eAAe,CAAC,CAAA;AA8B9B,KAAK,oBAAoB,GAAG,iBAAiB,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC,CAAA;AAMzE;;;GAGG;AACH,eAAO,MAAM,WAAW,kGAnOrB,iBAAiB,CAAC,gBAAgB,CAAC;gIAwJnC,iBAAiB,CAAC,qBAAqB,CAAC;sEAqCuC,0BAA0B;mCA8B7D,oBAAoB;CAYjE,CAAA"}
@@ -1,7 +1,8 @@
1
- import e from "../../node_modules/clsx/dist/clsx.js";
1
+ import { clsx as e } from "../../node_modules/clsx/dist/clsx.js";
2
2
  import { useId as t } from "../../hooks/useId.js";
3
3
  import { Text as n } from "../../Text/Text.js";
4
- import { AlertFillIcon as r, CheckCircleFillIcon as i } from "../../node_modules/@primer/octicons-react/dist/index.esm.js";
4
+ import { AlertFillIcon as r } from "../../node_modules/@primer/octicons-react/dist/icons/AlertFillIcon.js";
5
+ import { CheckCircleFillIcon as i } from "../../node_modules/@primer/octicons-react/dist/icons/CheckCircleFillIcon.js";
5
6
  import '../../packages/design-tokens/lib/design-tokens/css/tokens/functional/components/control/colors-with-modes-C05YPRXo.css';/* empty css */
6
7
  import { Checkbox as a } from "../Checkbox/Checkbox.js";
7
8
  import { Textarea as o } from "../Textarea/Textarea.js";
@@ -90,7 +91,7 @@ var m = ({ children: n, className: r, hasBorder: i, fullWidth: p, id: m, require
90
91
  required: v,
91
92
  validationStatus: b,
92
93
  size: y,
93
- showRequiredIndicator: w ? !1 : n.props.showRequiredIndicator
94
+ showRequiredIndicator: !w && n.props.showRequiredIndicator
94
95
  });
95
96
  }
96
97
  if (t.type === g) {
@@ -1 +1 @@
1
- {"version":3,"file":"FormControl.js","names":[],"sources":["../../../src/forms/FormControl/FormControl.tsx"],"sourcesContent":["import React, {PropsWithChildren} from 'react'\nimport {useId} from '../../hooks/useId'\nimport {clsx} from 'clsx'\nimport {AlertFillIcon, CheckCircleFillIcon} from '@primer/octicons-react'\n\nimport type {BaseProps} from '../../component-helpers'\nimport type {FormValidationStatus, FormInputSizes} from '../'\n\nimport {Checkbox} from '../Checkbox'\nimport {Select} from '../Select'\nimport {TextInput} from '../TextInput'\nimport {Textarea} from '../Textarea'\nimport {Radio} from '../Radio'\nimport {Text} from '../../Text'\n\nimport '@primer/brand-primitives/lib/design-tokens/css/tokens/functional/components/control/colors-with-modes.css'\nimport styles from './FormControl.module.css'\n\nexport type FormControlProps = BaseProps<HTMLElement> & {\n /**\n * Apply a decorative border to the form control.\n */\n hasBorder?: boolean\n /**\n * Applies full width styling.\n */\n fullWidth?: boolean\n /**\n * A unique identifier for the form control.\n * This is used to associate the form control with its associated label.\n * If an id is not provided, a unique id will be generated.\n */\n id?: string\n /**\n * Applies required styling to the label and input.\n */\n required?: boolean\n /**\n * Alternative sizes for inputs and labels.\n */\n size?: FormInputSizes\n /**\n * Provides contextual validation feedback to all children, showing relevant messaging where applicable.\n */\n validationStatus?: FormValidationStatus\n}\n\n/**\n * The Checkbox and the Radio components both use the trick of using a <label> to render the visual control,\n * and visually hiding the <input>. This means that, when you add a FormControl.Label alongside your\n * Checkbox/Radio, the <input> technically has two <label> elements associated with it.\n * That doesn't appear to be a problem (it's valid HTML and NVDA announces it correctly) but it does annoy\n * our Storybook Axe tests because they only seem to look at one of the labels.\n * To fix this, we recommend that the FormControl.Label always appears before the Checkbox/Radio in the DOM,\n * even though it visually appears after the Checkbox/Radio, as this keeps Storybook Axe happy.\n */\n\nconst Root = ({\n children,\n className,\n hasBorder,\n fullWidth,\n id,\n required,\n size = 'medium',\n validationStatus,\n ...rest\n}: PropsWithChildren<FormControlProps>) => {\n const uniqueId = useId(id)\n const childrenArr = React.Children.toArray(children)\n\n const isInlineControl = childrenArr.some(\n child => React.isValidElement(child) && (child.type === Checkbox || child.type === Radio),\n )\n\n const containsHint = childrenArr.some(child => React.isValidElement(child) && child.type === FormControlHint)\n const containsValidation = childrenArr.some(\n child => React.isValidElement(child) && child.type === FormControlValidation,\n )\n\n return (\n <section\n id={`FormControl--${uniqueId}`}\n className={clsx(\n styles.FormControl,\n fullWidth && styles[`FormControl--fullWidth`],\n isInlineControl && styles['FormControl--checkbox'],\n hasBorder && styles['FormControl--border'],\n className,\n )}\n {...rest}\n >\n {React.Children.map(children, child => {\n if (!React.isValidElement(child)) return child\n\n const describedBy =\n [containsHint && `${uniqueId}-hint`, containsValidation && `${uniqueId}-validation`]\n .filter(Boolean)\n .join(' ') || undefined\n\n if (child.type === TextInput) {\n const element = child as React.ReactElement<React.ComponentProps<typeof TextInput>>\n return React.cloneElement(element, {\n className: clsx(element.props.className),\n id: uniqueId,\n name: element.props.name || uniqueId,\n required: element.props.required || required,\n validationStatus: element.props.validationStatus || validationStatus,\n fullWidth,\n size,\n 'aria-describedby': describedBy,\n })\n }\n\n if (child.type === Textarea) {\n const element = child as React.ReactElement<React.ComponentProps<typeof Textarea>>\n return React.cloneElement(element, {\n className: clsx(element.props.className),\n id: uniqueId,\n name: element.props.name || uniqueId,\n required: element.props.required || required,\n validationStatus: element.props.validationStatus || validationStatus,\n fullWidth,\n size,\n 'aria-describedby': describedBy,\n })\n }\n\n if (child.type === Select) {\n const element = child as React.ReactElement<React.ComponentProps<typeof Select>>\n return React.cloneElement(element, {\n className: clsx(element.props.className),\n id: uniqueId,\n name: element.props.name || uniqueId,\n required: element.props.required || required,\n validationStatus: element.props.validationStatus || validationStatus,\n fullWidth,\n size,\n 'aria-describedby': describedBy,\n })\n }\n\n if (child.type === Checkbox) {\n const element = child as React.ReactElement<React.ComponentProps<typeof Checkbox>>\n return React.cloneElement(element, {\n className: clsx(element.props.className, styles['FormControl-control--checkbox']),\n id: uniqueId,\n name: element.props.name || uniqueId,\n required: element.props.required || required,\n validationStatus: element.props.validationStatus || validationStatus,\n 'aria-describedby': describedBy,\n })\n }\n\n if (child.type === Radio) {\n const element = child as React.ReactElement<React.ComponentProps<typeof Radio>>\n return React.cloneElement(element, {\n className: clsx(isInlineControl && styles['FormControl-control--radio'], element.props.className),\n id: uniqueId,\n name: element.props.name,\n required: element.props.required || required,\n 'aria-describedby': describedBy,\n })\n }\n\n if (child.type === FormControlLabel) {\n const element = child as React.ReactElement<React.ComponentProps<typeof FormControlLabel>>\n return React.cloneElement(element, {\n className: clsx(isInlineControl && styles['FormControl-label--checkbox'], element.props.className),\n htmlFor: uniqueId,\n children: element.props.children,\n required,\n validationStatus,\n size,\n showRequiredIndicator: isInlineControl ? false : element.props.showRequiredIndicator,\n })\n }\n\n if (child.type === FormControlValidation) {\n const element = child as React.ReactElement<React.ComponentProps<typeof FormControlValidation>>\n return React.cloneElement(element, {\n className: clsx(isInlineControl && styles['FormControl-validation-checkbox'], element.props.className),\n validationStatus,\n id: `${uniqueId}-validation`,\n })\n }\n\n if (child.type === FormControlHint) {\n const element = child as React.ReactElement<React.ComponentProps<typeof FormControlHint>>\n return React.cloneElement(element, {\n id: `${uniqueId}-hint`,\n })\n }\n\n return child\n })}\n </section>\n )\n}\n\ntype FormControlLabelProps = {\n htmlFor?: string\n required?: boolean\n showRequiredIndicator?: boolean\n size?: FormInputSizes\n validationStatus?: FormValidationStatus\n visuallyHidden?: boolean\n} & BaseProps<HTMLLabelElement>\n\nconst FormControlLabel = ({\n children,\n className,\n htmlFor,\n required,\n showRequiredIndicator = true,\n size = 'medium',\n validationStatus,\n visuallyHidden,\n ...rest\n}: PropsWithChildren<FormControlLabelProps>) => {\n return (\n <label\n htmlFor={htmlFor}\n className={clsx(\n styles['FormControl-label'],\n validationStatus && styles[`FormControl-label--${validationStatus}`],\n styles[`FormControl-label--${size}`],\n visuallyHidden && styles['FormControl-label--visually-hidden'],\n className,\n )}\n {...rest}\n >\n {React.Children.map(children, child => {\n if (React.isValidElement<FormControlHintProps>(child) && child.type === FormControlHint) {\n return React.cloneElement(child, {\n className: clsx(styles['FormControl--visible'], child.props.className),\n })\n }\n return child\n })}\n\n {required && showRequiredIndicator && (\n <span className={styles['FormControl-label-required']} aria-hidden>\n {' '}\n *\n </span>\n )}\n </label>\n )\n}\n\ntype FormControlValidationProps = {\n children: string\n validationStatus?: FormValidationStatus\n} & BaseProps<HTMLSpanElement>\n\nconst FormControlValidation = ({children, validationStatus, className, ...props}: FormControlValidationProps) => {\n return (\n <Text\n as=\"span\"\n size=\"100\"\n className={clsx(\n styles['FormControl-validation'],\n validationStatus && styles['FormControl-validation--animate-in'],\n validationStatus && styles[`FormControl-validation--${validationStatus}`],\n className,\n )}\n {...props}\n >\n {validationStatus === 'error' && (\n <span className={styles['FormControl-validation-error-icon']}>\n <AlertFillIcon />\n </span>\n )}\n {validationStatus === 'success' && (\n <span className={styles['FormControl-validation-success-icon']}>\n <CheckCircleFillIcon />\n </span>\n )}\n {children}\n </Text>\n )\n}\n\ntype FormControlHintProps = PropsWithChildren<BaseProps<HTMLSpanElement>>\n\nconst FormControlHint = ({className, ...rest}: FormControlHintProps) => {\n return <Text as=\"span\" size=\"100\" variant=\"muted\" className={clsx(styles['FormControl-hint'], className)} {...rest} />\n}\n\n/**\n * FormControl\n * {@link https://primer.style/brand/components/FormControl/ See usage examples}.\n */\nexport const FormControl = Object.assign(Root, {\n Label: FormControlLabel,\n Validation: FormControlValidation,\n Hint: FormControlHint,\n})\n"],"mappings":"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"}
1
+ {"version":3,"file":"FormControl.js","names":[],"sources":["../../../src/forms/FormControl/FormControl.tsx"],"sourcesContent":["import React, {PropsWithChildren} from 'react'\nimport {useId} from '../../hooks/useId'\nimport {clsx} from 'clsx'\nimport {AlertFillIcon, CheckCircleFillIcon} from '@primer/octicons-react'\n\nimport type {BaseProps} from '../../component-helpers'\nimport type {FormValidationStatus, FormInputSizes} from '../'\n\nimport {Checkbox} from '../Checkbox'\nimport {Select} from '../Select'\nimport {TextInput} from '../TextInput'\nimport {Textarea} from '../Textarea'\nimport {Radio} from '../Radio'\nimport {Text} from '../../Text'\n\nimport '@primer/brand-primitives/lib/design-tokens/css/tokens/functional/components/control/colors-with-modes.css'\nimport styles from './FormControl.module.css'\n\nexport type FormControlProps = BaseProps<HTMLElement> & {\n /**\n * Apply a decorative border to the form control.\n */\n hasBorder?: boolean\n /**\n * Applies full width styling.\n */\n fullWidth?: boolean\n /**\n * A unique identifier for the form control.\n * This is used to associate the form control with its associated label.\n * If an id is not provided, a unique id will be generated.\n */\n id?: string\n /**\n * Applies required styling to the label and input.\n */\n required?: boolean\n /**\n * Alternative sizes for inputs and labels.\n */\n size?: FormInputSizes\n /**\n * Provides contextual validation feedback to all children, showing relevant messaging where applicable.\n */\n validationStatus?: FormValidationStatus\n}\n\n/**\n * The Checkbox and the Radio components both use the trick of using a <label> to render the visual control,\n * and visually hiding the <input>. This means that, when you add a FormControl.Label alongside your\n * Checkbox/Radio, the <input> technically has two <label> elements associated with it.\n * That doesn't appear to be a problem (it's valid HTML and NVDA announces it correctly) but it does annoy\n * our Storybook Axe tests because they only seem to look at one of the labels.\n * To fix this, we recommend that the FormControl.Label always appears before the Checkbox/Radio in the DOM,\n * even though it visually appears after the Checkbox/Radio, as this keeps Storybook Axe happy.\n */\n\nconst Root = ({\n children,\n className,\n hasBorder,\n fullWidth,\n id,\n required,\n size = 'medium',\n validationStatus,\n ...rest\n}: PropsWithChildren<FormControlProps>) => {\n const uniqueId = useId(id)\n const childrenArr = React.Children.toArray(children)\n\n const isInlineControl = childrenArr.some(\n child => React.isValidElement(child) && (child.type === Checkbox || child.type === Radio),\n )\n\n const containsHint = childrenArr.some(child => React.isValidElement(child) && child.type === FormControlHint)\n const containsValidation = childrenArr.some(\n child => React.isValidElement(child) && child.type === FormControlValidation,\n )\n\n return (\n <section\n id={`FormControl--${uniqueId}`}\n className={clsx(\n styles.FormControl,\n fullWidth && styles[`FormControl--fullWidth`],\n isInlineControl && styles['FormControl--checkbox'],\n hasBorder && styles['FormControl--border'],\n className,\n )}\n {...rest}\n >\n {React.Children.map(children, child => {\n if (!React.isValidElement(child)) return child\n\n const describedBy =\n [containsHint && `${uniqueId}-hint`, containsValidation && `${uniqueId}-validation`]\n .filter(Boolean)\n .join(' ') || undefined\n\n if (child.type === TextInput) {\n const element = child as React.ReactElement<React.ComponentProps<typeof TextInput>>\n return React.cloneElement(element, {\n className: clsx(element.props.className),\n id: uniqueId,\n name: element.props.name || uniqueId,\n required: element.props.required || required,\n validationStatus: element.props.validationStatus || validationStatus,\n fullWidth,\n size,\n 'aria-describedby': describedBy,\n })\n }\n\n if (child.type === Textarea) {\n const element = child as React.ReactElement<React.ComponentProps<typeof Textarea>>\n return React.cloneElement(element, {\n className: clsx(element.props.className),\n id: uniqueId,\n name: element.props.name || uniqueId,\n required: element.props.required || required,\n validationStatus: element.props.validationStatus || validationStatus,\n fullWidth,\n size,\n 'aria-describedby': describedBy,\n })\n }\n\n if (child.type === Select) {\n const element = child as React.ReactElement<React.ComponentProps<typeof Select>>\n return React.cloneElement(element, {\n className: clsx(element.props.className),\n id: uniqueId,\n name: element.props.name || uniqueId,\n required: element.props.required || required,\n validationStatus: element.props.validationStatus || validationStatus,\n fullWidth,\n size,\n 'aria-describedby': describedBy,\n })\n }\n\n if (child.type === Checkbox) {\n const element = child as React.ReactElement<React.ComponentProps<typeof Checkbox>>\n return React.cloneElement(element, {\n className: clsx(element.props.className, styles['FormControl-control--checkbox']),\n id: uniqueId,\n name: element.props.name || uniqueId,\n required: element.props.required || required,\n validationStatus: element.props.validationStatus || validationStatus,\n 'aria-describedby': describedBy,\n })\n }\n\n if (child.type === Radio) {\n const element = child as React.ReactElement<React.ComponentProps<typeof Radio>>\n return React.cloneElement(element, {\n className: clsx(isInlineControl && styles['FormControl-control--radio'], element.props.className),\n id: uniqueId,\n name: element.props.name,\n required: element.props.required || required,\n 'aria-describedby': describedBy,\n })\n }\n\n if (child.type === FormControlLabel) {\n const element = child as React.ReactElement<React.ComponentProps<typeof FormControlLabel>>\n return React.cloneElement(element, {\n className: clsx(isInlineControl && styles['FormControl-label--checkbox'], element.props.className),\n htmlFor: uniqueId,\n children: element.props.children,\n required,\n validationStatus,\n size,\n showRequiredIndicator: isInlineControl ? false : element.props.showRequiredIndicator,\n })\n }\n\n if (child.type === FormControlValidation) {\n const element = child as React.ReactElement<React.ComponentProps<typeof FormControlValidation>>\n return React.cloneElement(element, {\n className: clsx(isInlineControl && styles['FormControl-validation-checkbox'], element.props.className),\n validationStatus,\n id: `${uniqueId}-validation`,\n })\n }\n\n if (child.type === FormControlHint) {\n const element = child as React.ReactElement<React.ComponentProps<typeof FormControlHint>>\n return React.cloneElement(element, {\n id: `${uniqueId}-hint`,\n })\n }\n\n return child\n })}\n </section>\n )\n}\n\ntype FormControlLabelProps = {\n htmlFor?: string\n required?: boolean\n showRequiredIndicator?: boolean\n size?: FormInputSizes\n validationStatus?: FormValidationStatus\n visuallyHidden?: boolean\n} & BaseProps<HTMLLabelElement>\n\nconst FormControlLabel = ({\n children,\n className,\n htmlFor,\n required,\n showRequiredIndicator = true,\n size = 'medium',\n validationStatus,\n visuallyHidden,\n ...rest\n}: PropsWithChildren<FormControlLabelProps>) => {\n return (\n <label\n htmlFor={htmlFor}\n className={clsx(\n styles['FormControl-label'],\n validationStatus && styles[`FormControl-label--${validationStatus}`],\n styles[`FormControl-label--${size}`],\n visuallyHidden && styles['FormControl-label--visually-hidden'],\n className,\n )}\n {...rest}\n >\n {React.Children.map(children, child => {\n if (React.isValidElement<FormControlHintProps>(child) && child.type === FormControlHint) {\n return React.cloneElement(child, {\n className: clsx(styles['FormControl--visible'], child.props.className),\n })\n }\n return child\n })}\n\n {required && showRequiredIndicator && (\n <span className={styles['FormControl-label-required']} aria-hidden>\n {' '}\n *\n </span>\n )}\n </label>\n )\n}\n\ntype FormControlValidationProps = {\n children: string\n validationStatus?: FormValidationStatus\n} & BaseProps<HTMLSpanElement>\n\nconst FormControlValidation = ({children, validationStatus, className, ...props}: FormControlValidationProps) => {\n return (\n <Text\n as=\"span\"\n size=\"100\"\n className={clsx(\n styles['FormControl-validation'],\n validationStatus && styles['FormControl-validation--animate-in'],\n validationStatus && styles[`FormControl-validation--${validationStatus}`],\n className,\n )}\n {...props}\n >\n {validationStatus === 'error' && (\n <span className={styles['FormControl-validation-error-icon']}>\n <AlertFillIcon />\n </span>\n )}\n {validationStatus === 'success' && (\n <span className={styles['FormControl-validation-success-icon']}>\n <CheckCircleFillIcon />\n </span>\n )}\n {children}\n </Text>\n )\n}\n\ntype FormControlHintProps = PropsWithChildren<BaseProps<HTMLSpanElement>>\n\nconst FormControlHint = ({className, ...rest}: FormControlHintProps) => {\n return <Text as=\"span\" size=\"100\" variant=\"muted\" className={clsx(styles['FormControl-hint'], className)} {...rest} />\n}\n\n/**\n * FormControl\n * {@link https://primer.style/brand/components/FormControl/ See usage examples}.\n */\nexport const FormControl = Object.assign(Root, {\n Label: FormControlLabel,\n Validation: FormControlValidation,\n Hint: FormControlHint,\n})\n"],"mappings":"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"}
@@ -1,5 +1,6 @@
1
- import './FormControl.module-CSNT689n.css';var e = {
2
- FormControl: "Primer_Brand__FormControl-module__FormControl___xyCI6",
1
+ import './FormControl.module-CSNT689n.css';//#region src/forms/FormControl/FormControl.module.css
2
+ var e = "Primer_Brand__FormControl-module__FormControl___xyCI6", t = "Primer_Brand__FormControl-module__FormControlValidationFadeIn___tj0TP", n = {
3
+ FormControl: e,
3
4
  "FormControl--fullWidth": "Primer_Brand__FormControl-module__FormControl--fullWidth____kgvY",
4
5
  "FormControl--checkbox": "Primer_Brand__FormControl-module__FormControl--checkbox___bF4ig",
5
6
  "FormControl--border": "Primer_Brand__FormControl-module__FormControl--border___JkgNP",
@@ -16,10 +17,10 @@ import './FormControl.module-CSNT689n.css';var e = {
16
17
  "FormControl-validation-success-icon": "Primer_Brand__FormControl-module__FormControl-validation-success-icon___zPbVN",
17
18
  "FormControl-validation-error-icon": "Primer_Brand__FormControl-module__FormControl-validation-error-icon___hijkD",
18
19
  "FormControl-validation--animate-in": "Primer_Brand__FormControl-module__FormControl-validation--animate-in___bQToQ",
19
- FormControlValidationFadeIn: "Primer_Brand__FormControl-module__FormControlValidationFadeIn___tj0TP",
20
+ FormControlValidationFadeIn: t,
20
21
  "FormControl-validation-checkbox": "Primer_Brand__FormControl-module__FormControl-validation-checkbox___o5dVo"
21
22
  };
22
23
  //#endregion
23
- export { e as default };
24
+ export { e as FormControl, t as FormControlValidationFadeIn, n as default };
24
25
 
25
26
  //# sourceMappingURL=FormControl.module.js.map
@@ -1,4 +1,4 @@
1
- import e from "../../node_modules/clsx/dist/clsx.js";
1
+ import { clsx as e } from "../../node_modules/clsx/dist/clsx.js";
2
2
  import { useId as t } from "../../hooks/useId.js";
3
3
  import { useProvidedRefOrCreate as n } from "../../hooks/useRef.js";
4
4
  import '../../packages/design-tokens/lib/design-tokens/css/tokens/functional/components/control/colors-with-modes-C05YPRXo.css';/* empty css */
@@ -1 +1 @@
1
- {"version":3,"file":"Radio.js","names":[],"sources":["../../../src/forms/Radio/Radio.tsx"],"sourcesContent":["import React, {forwardRef, useCallback, type InputHTMLAttributes, type ReactElement} from 'react'\nimport {clsx} from 'clsx'\nimport {useId} from '../../hooks/useId'\nimport {useProvidedRefOrCreate} from '../../hooks/useRef'\n\nimport type {BaseProps} from '../../component-helpers'\n\nimport '@primer/brand-primitives/lib/design-tokens/css/tokens/functional/components/control/colors-with-modes.css'\nimport styles from './Radio.module.css'\n\nexport type RadioProps = {\n /**\n * Apply inactive visual appearance to the Radio\n */\n disabled?: boolean\n /**\n * Indicates whether the Radio must be checked\n */\n required?: boolean\n /**\n * A unique value that is never shown to the user.\n * Used during form submission and to identify which Radio inputs are selected\n */\n value?: string\n} & Exclude<InputHTMLAttributes<HTMLInputElement>, 'value'> &\n BaseProps<HTMLInputElement>\n\nconst RadioInternal = (\n {checked, className, disabled, id, onChange, required, value, ...rest}: RadioProps,\n ref,\n): ReactElement => {\n const inputRef = useProvidedRefOrCreate<HTMLInputElement | null>(ref || null)\n const uniqueId = useId(id)\n\n const onClick = useCallback(() => {\n if (!disabled && inputRef.current) {\n inputRef.current.click()\n }\n }, [disabled, inputRef])\n\n return (\n <span className={styles['Radio-wrapper']}>\n <input\n id={uniqueId}\n aria-checked={checked ? 'true' : 'false'}\n checked={checked}\n className={clsx(styles['Radio-input'])}\n disabled={disabled}\n name={value}\n onChange={onChange}\n ref={inputRef}\n required={required}\n type=\"radio\"\n value={value}\n {...rest}\n />\n <span className={clsx(styles.Radio, className)} onClick={onClick} tabIndex={-1} aria-hidden=\"true\">\n <span className={styles['Radio-dot']} />\n </span>\n </span>\n )\n}\n\nexport const Radio = forwardRef(RadioInternal)\n"],"mappings":";;;;;;;AA+DA,IAAa,IAAQ,GAnCnB,EAAC,YAAS,cAAW,aAAU,OAAI,aAAU,aAAU,UAAO,GAAG,KACjE,MACiB;CACjB,IAAM,IAAW,EAAgD,KAAO,KAAK,EACvE,IAAW,EAAM,EAAG,EAEpB,IAAU,QAAkB;AAChC,EAAI,CAAC,KAAY,EAAS,WACxB,EAAS,QAAQ,OAAO;IAEzB,CAAC,GAAU,EAAS,CAAC;AAExB,QACE,kBAAC,QAAD;EAAM,WAAW,EAAO;YAAxB,CACE,kBAAC,SAAD;GACE,IAAI;GACJ,gBAAc,IAAU,SAAS;GACxB;GACT,WAAW,EAAK,EAAO,eAAe;GAC5B;GACV,MAAM;GACI;GACV,KAAK;GACK;GACV,MAAK;GACE;GACP,GAAI;GACJ,CAAA,EACF,kBAAC,QAAD;GAAM,WAAW,EAAK,EAAO,OAAO,EAAU;GAAW;GAAS,UAAU;GAAI,eAAY;aAC1F,kBAAC,QAAD,EAAM,WAAW,EAAO,cAAgB,CAAA;GACnC,CAAA,CACF;;EAImC"}
1
+ {"version":3,"file":"Radio.js","names":[],"sources":["../../../src/forms/Radio/Radio.tsx"],"sourcesContent":["import React, {forwardRef, useCallback, type InputHTMLAttributes, type ReactElement} from 'react'\nimport {clsx} from 'clsx'\nimport {useId} from '../../hooks/useId'\nimport {useProvidedRefOrCreate} from '../../hooks/useRef'\n\nimport type {BaseProps} from '../../component-helpers'\n\nimport '@primer/brand-primitives/lib/design-tokens/css/tokens/functional/components/control/colors-with-modes.css'\nimport styles from './Radio.module.css'\n\nexport type RadioProps = {\n /**\n * Apply inactive visual appearance to the Radio\n */\n disabled?: boolean\n /**\n * Indicates whether the Radio must be checked\n */\n required?: boolean\n /**\n * A unique value that is never shown to the user.\n * Used during form submission and to identify which Radio inputs are selected\n */\n value?: string\n} & Exclude<InputHTMLAttributes<HTMLInputElement>, 'value'> &\n BaseProps<HTMLInputElement>\n\nconst RadioInternal = (\n {checked, className, disabled, id, onChange, required, value, ...rest}: RadioProps,\n ref,\n): ReactElement => {\n const inputRef = useProvidedRefOrCreate<HTMLInputElement | null>(ref || null)\n const uniqueId = useId(id)\n\n const onClick = useCallback(() => {\n if (!disabled && inputRef.current) {\n inputRef.current.click()\n }\n }, [disabled, inputRef])\n\n return (\n <span className={styles['Radio-wrapper']}>\n <input\n id={uniqueId}\n aria-checked={checked ? 'true' : 'false'}\n checked={checked}\n className={clsx(styles['Radio-input'])}\n disabled={disabled}\n name={value}\n onChange={onChange}\n ref={inputRef}\n required={required}\n type=\"radio\"\n value={value}\n {...rest}\n />\n <span className={clsx(styles.Radio, className)} onClick={onClick} tabIndex={-1} aria-hidden=\"true\">\n <span className={styles['Radio-dot']} />\n </span>\n </span>\n )\n}\n\nexport const Radio = forwardRef(RadioInternal)\n"],"mappings":";;;;;;;AA+DA,IAAa,IAAQ,GAnCnB,EAAC,YAAS,cAAW,aAAU,OAAI,aAAU,aAAU,UAAO,GAAG,KACjE,MACiB;CACjB,IAAM,IAAW,EAAgD,KAAO,IAAI,GACtE,IAAW,EAAM,CAAE,GAEnB,IAAU,QAAkB;EAChC,AAAI,CAAC,KAAY,EAAS,WACxB,EAAS,QAAQ,MAAM;CAE3B,GAAG,CAAC,GAAU,CAAQ,CAAC;CAEvB,OACE,kBAAC,QAAD;EAAM,WAAW,EAAO;YAAxB,CACE,kBAAC,SAAD;GACE,IAAI;GACJ,gBAAc,IAAU,SAAS;GACxB;GACT,WAAW,EAAK,EAAO,cAAc;GAC3B;GACV,MAAM;GACI;GACV,KAAK;GACK;GACV,MAAK;GACE;GACP,GAAI;EACL,CAAA,GACD,kBAAC,QAAD;GAAM,WAAW,EAAK,EAAO,OAAO,CAAS;GAAY;GAAS,UAAU;GAAI,eAAY;aAC1F,kBAAC,QAAD,EAAM,WAAW,EAAO,aAAe,CAAA;EACnC,CAAA,CACF;;AAEV,CAE6C"}
@@ -1,10 +1,11 @@
1
- import './Radio.module-B470XLdO.css';var e = {
1
+ import './Radio.module-B470XLdO.css';//#region src/forms/Radio/Radio.module.css
2
+ var e = "Primer_Brand__Radio-module__Radio___vTG_e", t = {
2
3
  "Radio-wrapper": "Primer_Brand__Radio-module__Radio-wrapper___zXaOV",
3
- Radio: "Primer_Brand__Radio-module__Radio___vTG_e",
4
+ Radio: e,
4
5
  "Radio-input": "Primer_Brand__Radio-module__Radio-input___K0b_k",
5
6
  "Radio-dot": "Primer_Brand__Radio-module__Radio-dot___9afdK"
6
7
  };
7
8
  //#endregion
8
- export { e as default };
9
+ export { e as Radio, t as default };
9
10
 
10
11
  //# sourceMappingURL=Radio.module.js.map
@@ -41,7 +41,7 @@ export type OptGroupProps = {
41
41
  * Select
42
42
  */
43
43
  export declare const Select: React.ForwardRefExoticComponent<Omit<SelectProps, "ref"> & React.RefAttributes<unknown>> & {
44
- Option: ({ children, value, ...rest }: OptionProps) => import("react/jsx-runtime").JSX.Element;
45
- OptGroup: ({ children, label, ...rest }: OptGroupProps) => import("react/jsx-runtime").JSX.Element;
44
+ Option: ({ children, value, ...rest }: OptionProps) => React.JSX.Element;
45
+ OptGroup: ({ children, label, ...rest }: OptGroupProps) => React.JSX.Element;
46
46
  };
47
47
  //# sourceMappingURL=Select.d.ts.map
@@ -1,4 +1,4 @@
1
- import e from "../../node_modules/clsx/dist/clsx.js";
1
+ import { clsx as e } from "../../node_modules/clsx/dist/clsx.js";
2
2
  import '../../packages/design-tokens/lib/design-tokens/css/tokens/functional/components/control/colors-with-modes-C05YPRXo.css';/* empty css */
3
3
  import t from "./Select.module.js";
4
4
  import { forwardRef as n } from "react";
@@ -1 +1 @@
1
- {"version":3,"file":"Select.js","names":[],"sources":["../../../src/forms/Select/Select.tsx"],"sourcesContent":["import React, {forwardRef} from 'react'\nimport {clsx} from 'clsx'\n\nimport type {BaseProps} from '../../component-helpers'\nimport type {FormInputSizes, FormValidationStatus} from '../form-types'\n\nimport '@primer/brand-primitives/lib/design-tokens/css/tokens/functional/components/control/colors-with-modes.css'\nimport styles from './Select.module.css'\n\nexport type SelectProps = {\n /**\n * Applies full width styling.\n */\n fullWidth?: boolean\n /**\n * Applies a required attribute to the input\n */\n required?: boolean\n /**\n * Applies alternative sizing to the input\n */\n size?: FormInputSizes\n /**\n * Placeholder text to display when no value is selected\n */\n placeholder?: string\n /**\n *\n */\n validationStatus?: FormValidationStatus\n} & Omit<React.InputHTMLAttributes<HTMLSelectElement>, 'size'> &\n BaseProps<HTMLSelectElement>\n\nconst _SelectRoot = (\n {\n children,\n className,\n disabled,\n fullWidth = false,\n placeholder,\n size = 'medium',\n validationStatus,\n ...rest\n }: SelectProps,\n ref,\n) => {\n return (\n <span\n className={clsx(\n styles['Select-wrapper'],\n styles[`Select-wrapper--${size}`],\n fullWidth && styles['Select-wrapper--fullWidth'],\n validationStatus && styles[`Select--${validationStatus}`],\n disabled && styles[`Select-wrapper--disabled`],\n )}\n >\n <select\n aria-invalid={validationStatus === 'error'}\n className={clsx(\n styles.Select,\n styles[`Select--${size}`],\n 'Select',\n fullWidth && styles['Select--fullWidth'],\n className,\n )}\n disabled={disabled}\n ref={ref}\n {...rest}\n >\n {placeholder && (\n <option value=\"\" disabled={disabled}>\n {placeholder}\n </option>\n )}\n {children}\n </select>\n </span>\n )\n}\n\nconst SelectRoot = forwardRef(_SelectRoot)\n\nexport type OptionProps = {\n value: string\n} & React.PropsWithChildren<React.HTMLProps<HTMLOptionElement>>\n\nconst Option = ({children, value, ...rest}: OptionProps) => {\n return (\n <option value={value} {...rest}>\n {children}\n </option>\n )\n}\n\nexport type OptGroupProps = {\n /**\n * Specifies that an option-group should be disabled\n */\n disabled?: string\n /**\n * Specifies a label for an option-group\n */\n label: string\n} & React.PropsWithChildren<React.HTMLProps<HTMLOptGroupElement>>\n\nconst OptGroup = ({children, label, ...rest}: OptGroupProps) => {\n return (\n <optgroup label={label} {...rest}>\n {children}\n </optgroup>\n )\n}\n\n/**\n * Select\n */\nexport const Select = Object.assign(SelectRoot, {\n Option,\n OptGroup,\n})\n"],"mappings":";;;;;AAgFA,IAAM,IAAa,GA9CjB,EACE,aACA,cACA,aACA,eAAY,IACZ,gBACA,UAAO,UACP,qBACA,GAAG,KAEL,MAGE,kBAAC,QAAD;CACE,WAAW,EACT,EAAO,mBACP,EAAO,mBAAmB,MAC1B,KAAa,EAAO,8BACpB,KAAoB,EAAO,WAAW,MACtC,KAAY,EAAO,4BACpB;WAED,kBAAC,UAAD;EACE,gBAAc,MAAqB;EACnC,WAAW,EACT,EAAO,QACP,EAAO,WAAW,MAClB,UACA,KAAa,EAAO,sBACpB,EACD;EACS;EACL;EACL,GAAI;YAXN,CAaG,KACC,kBAAC,UAAD;GAAQ,OAAM;GAAa;aACxB;GACM,CAAA,EAEV,EACM;;CACJ,CAAA,CAI+B,EAoC7B,IAAS,OAAO,OAAO,GAAY;CAC9C,SA/Bc,EAAC,aAAU,UAAO,GAAG,QAEjC,kBAAC,UAAD;EAAe;EAAO,GAAI;EACvB;EACM,CAAA;CA4BX,WAbgB,EAAC,aAAU,UAAO,GAAG,QAEnC,kBAAC,YAAD;EAAiB;EAAO,GAAI;EACzB;EACQ,CAAA;CAUd,CAAC"}
1
+ {"version":3,"file":"Select.js","names":[],"sources":["../../../src/forms/Select/Select.tsx"],"sourcesContent":["import React, {forwardRef} from 'react'\nimport {clsx} from 'clsx'\n\nimport type {BaseProps} from '../../component-helpers'\nimport type {FormInputSizes, FormValidationStatus} from '../form-types'\n\nimport '@primer/brand-primitives/lib/design-tokens/css/tokens/functional/components/control/colors-with-modes.css'\nimport styles from './Select.module.css'\n\nexport type SelectProps = {\n /**\n * Applies full width styling.\n */\n fullWidth?: boolean\n /**\n * Applies a required attribute to the input\n */\n required?: boolean\n /**\n * Applies alternative sizing to the input\n */\n size?: FormInputSizes\n /**\n * Placeholder text to display when no value is selected\n */\n placeholder?: string\n /**\n *\n */\n validationStatus?: FormValidationStatus\n} & Omit<React.InputHTMLAttributes<HTMLSelectElement>, 'size'> &\n BaseProps<HTMLSelectElement>\n\nconst _SelectRoot = (\n {\n children,\n className,\n disabled,\n fullWidth = false,\n placeholder,\n size = 'medium',\n validationStatus,\n ...rest\n }: SelectProps,\n ref,\n) => {\n return (\n <span\n className={clsx(\n styles['Select-wrapper'],\n styles[`Select-wrapper--${size}`],\n fullWidth && styles['Select-wrapper--fullWidth'],\n validationStatus && styles[`Select--${validationStatus}`],\n disabled && styles[`Select-wrapper--disabled`],\n )}\n >\n <select\n aria-invalid={validationStatus === 'error'}\n className={clsx(\n styles.Select,\n styles[`Select--${size}`],\n 'Select',\n fullWidth && styles['Select--fullWidth'],\n className,\n )}\n disabled={disabled}\n ref={ref}\n {...rest}\n >\n {placeholder && (\n <option value=\"\" disabled={disabled}>\n {placeholder}\n </option>\n )}\n {children}\n </select>\n </span>\n )\n}\n\nconst SelectRoot = forwardRef(_SelectRoot)\n\nexport type OptionProps = {\n value: string\n} & React.PropsWithChildren<React.HTMLProps<HTMLOptionElement>>\n\nconst Option = ({children, value, ...rest}: OptionProps) => {\n return (\n <option value={value} {...rest}>\n {children}\n </option>\n )\n}\n\nexport type OptGroupProps = {\n /**\n * Specifies that an option-group should be disabled\n */\n disabled?: string\n /**\n * Specifies a label for an option-group\n */\n label: string\n} & React.PropsWithChildren<React.HTMLProps<HTMLOptGroupElement>>\n\nconst OptGroup = ({children, label, ...rest}: OptGroupProps) => {\n return (\n <optgroup label={label} {...rest}>\n {children}\n </optgroup>\n )\n}\n\n/**\n * Select\n */\nexport const Select = Object.assign(SelectRoot, {\n Option,\n OptGroup,\n})\n"],"mappings":";;;;;AAgFA,IAAM,IAAa,GA9CjB,EACE,aACA,cACA,aACA,eAAY,IACZ,gBACA,UAAO,UACP,qBACA,GAAG,KAEL,MAGE,kBAAC,QAAD;CACE,WAAW,EACT,EAAO,mBACP,EAAO,mBAAmB,MAC1B,KAAa,EAAO,8BACpB,KAAoB,EAAO,WAAW,MACtC,KAAY,EAAO,2BACrB;WAEA,kBAAC,UAAD;EACE,gBAAc,MAAqB;EACnC,WAAW,EACT,EAAO,QACP,EAAO,WAAW,MAClB,UACA,KAAa,EAAO,sBACpB,CACF;EACU;EACL;EACL,GAAI;YAXN,CAaG,KACC,kBAAC,UAAD;GAAQ,OAAM;GAAa;aACxB;EACK,CAAA,GAET,CACK;;AACJ,CAAA,CAI+B,GAoC5B,IAAS,OAAO,OAAO,GAAY;CAC9C,SA/Bc,EAAC,aAAU,UAAO,GAAG,QAEjC,kBAAC,UAAD;EAAe;EAAO,GAAI;EACvB;CACK,CAAA;CA4BV,WAbgB,EAAC,aAAU,UAAO,GAAG,QAEnC,kBAAC,YAAD;EAAiB;EAAO,GAAI;EACzB;CACO,CAAA;AAUd,CAAC"}