@primer/react-brand 0.75.0-rc.a3f7dbd6 → 0.75.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/docs/components/SubdomainNavBar/index.md +215 -86
- package/docs/index.md +2 -2
- package/esm/Accordion/Accordion.d.ts +2 -2
- package/esm/Accordion/Accordion.d.ts.map +1 -1
- package/esm/Accordion/Accordion.js +2 -2
- package/esm/Accordion/Accordion.js.map +1 -1
- package/esm/Accordion/Accordion.module.js +6 -5
- package/esm/ActionMenu/ActionMenu.d.ts +2 -2
- package/esm/ActionMenu/ActionMenu.js +3 -2
- package/esm/ActionMenu/ActionMenu.js.map +1 -1
- package/esm/ActionMenu/ActionMenu.module.js +7 -6
- package/esm/AnchorNav/AnchorNav.d.ts +4 -4
- package/esm/AnchorNav/AnchorNav.d.ts.map +1 -1
- package/esm/AnchorNav/AnchorNav.js +9 -4
- package/esm/AnchorNav/AnchorNav.js.map +1 -1
- package/esm/AnchorNav/AnchorNav.module.js +5 -4
- package/esm/AnchorNav/useExpandedMenu.js.map +1 -1
- package/esm/Avatar/Avatar.js +1 -1
- package/esm/Avatar/Avatar.js.map +1 -1
- package/esm/Avatar/Avatar.module.js +5 -4
- package/esm/Bento/Bento.d.ts +4 -4
- package/esm/Bento/Bento.js +1 -1
- package/esm/Bento/Bento.js.map +1 -1
- package/esm/Bento/Bento.module.js +7 -6
- package/esm/Box/Box.d.ts +1 -1
- package/esm/Box/Box.d.ts.map +1 -1
- package/esm/Box/Box.js +1 -1
- package/esm/Box/Box.js.map +1 -1
- package/esm/Breadcrumbs/Breadcrumbs.js +1 -1
- package/esm/Breadcrumbs/Breadcrumbs.js.map +1 -1
- package/esm/Breadcrumbs/Breadcrumbs.module.js +7 -6
- package/esm/BreakoutBanner/BreakoutBanner.js +1 -1
- package/esm/BreakoutBanner/BreakoutBanner.js.map +1 -1
- package/esm/BreakoutBanner/BreakoutBanner.module.js +5 -4
- package/esm/Button/Button.js +1 -1
- package/esm/Button/Button.js.map +1 -1
- package/esm/Button/Button.module.js +5 -4
- package/esm/ButtonGroup/ButtonGroup.js +1 -1
- package/esm/ButtonGroup/ButtonGroup.js.map +1 -1
- package/esm/ButtonGroup/ButtonGroup.module.js +3 -2
- package/esm/CTABanner/CTABanner.d.ts +1 -1
- package/esm/CTABanner/CTABanner.js +2 -2
- package/esm/CTABanner/CTABanner.js.map +1 -1
- package/esm/CTABanner/CTABanner.module.js +4 -3
- package/esm/CTAForm/CTAForm.js +1 -1
- package/esm/CTAForm/CTAForm.js.map +1 -1
- package/esm/CTAForm/CTAForm.module.js +4 -3
- package/esm/Card/Card.d.ts +2 -2
- package/esm/Card/Card.d.ts.map +1 -1
- package/esm/Card/Card.js +3 -3
- package/esm/Card/Card.js.map +1 -1
- package/esm/Card/Card.module.js +18 -17
- package/esm/ComparisonTable/ComparisonTable.d.ts +3 -3
- package/esm/ComparisonTable/ComparisonTable.js +1 -1
- package/esm/ComparisonTable/ComparisonTable.js.map +1 -1
- package/esm/ComparisonTable/ComparisonTable.module.js +4 -3
- package/esm/ExpandableArrow/ExpandableArrow.d.ts +2 -1
- package/esm/ExpandableArrow/ExpandableArrow.d.ts.map +1 -1
- package/esm/ExpandableArrow/ExpandableArrow.js +1 -1
- package/esm/ExpandableArrow/ExpandableArrow.js.map +1 -1
- package/esm/ExpandableArrow/ExpandableArrow.module.js +4 -3
- package/esm/EyebrowBanner/EyebrowBanner.js +2 -2
- package/esm/EyebrowBanner/EyebrowBanner.js.map +1 -1
- package/esm/EyebrowBanner/EyebrowBanner.module.js +12 -11
- package/esm/EyebrowText/EyebrowText.js +1 -1
- package/esm/EyebrowText/EyebrowText.js.map +1 -1
- package/esm/EyebrowText/EyebrowText.module.js +4 -3
- package/esm/FAQ/FAQ.d.ts +2 -2
- package/esm/FAQ/FAQ.d.ts.map +1 -1
- package/esm/FAQ/FAQ.js +1 -1
- package/esm/FAQ/FAQ.js.map +1 -1
- package/esm/FAQ/FAQ.module.js +7 -6
- package/esm/FAQ/FAQGroup.d.ts +2 -2
- package/esm/FAQ/FAQGroup.d.ts.map +1 -1
- package/esm/FAQ/FAQGroup.js +7 -3
- package/esm/FAQ/FAQGroup.js.map +1 -1
- package/esm/FAQ/FAQGroup.module.js +8 -7
- package/esm/Footnotes/Footnotes.d.ts +2 -2
- package/esm/Footnotes/Footnotes.d.ts.map +1 -1
- package/esm/Footnotes/Footnotes.js +2 -2
- package/esm/Footnotes/Footnotes.js.map +1 -1
- package/esm/Footnotes/Footnotes.module.js +7 -6
- package/esm/FrostedGlassVFX/FrostedGlassVFX.d.ts +1 -1
- package/esm/FrostedGlassVFX/FrostedGlassVFX.d.ts.map +1 -1
- package/esm/FrostedGlassVFX/FrostedGlassVFX.js +1 -1
- package/esm/FrostedGlassVFX/FrostedGlassVFX.js.map +1 -1
- package/esm/FrostedGlassVFX/FrostedGlassVFX.module.js +4 -3
- package/esm/Grid/Grid.d.ts +2 -2
- package/esm/Grid/Grid.js +2 -2
- package/esm/Grid/Grid.js.map +1 -1
- package/esm/Grid/Grid.module.js +5 -4
- package/esm/Heading/Heading.js +1 -1
- package/esm/Heading/Heading.js.map +1 -1
- package/esm/Heading/Heading.module.js +4 -3
- package/esm/Hero/Hero.js +1 -1
- package/esm/Hero/Hero.js.map +1 -1
- package/esm/Hero/Hero.module.js +4 -3
- package/esm/Hero/HeroContext.js.map +1 -1
- package/esm/Hero/sub-components/HeroButtonGroup.js +1 -1
- package/esm/Hero/sub-components/HeroButtonGroup.js.map +1 -1
- package/esm/Hero/sub-components/HeroDescription.js +1 -1
- package/esm/Hero/sub-components/HeroDescription.js.map +1 -1
- package/esm/Hero/sub-components/HeroEyebrow.js +1 -1
- package/esm/Hero/sub-components/HeroEyebrow.js.map +1 -1
- package/esm/Hero/sub-components/HeroHeading.js +1 -1
- package/esm/Hero/sub-components/HeroHeading.js.map +1 -1
- package/esm/Hero/sub-components/HeroImage.js +1 -1
- package/esm/Hero/sub-components/HeroImage.js.map +1 -1
- package/esm/Hero/sub-components/HeroLabel.js +1 -1
- package/esm/Hero/sub-components/HeroLabel.js.map +1 -1
- package/esm/Hero/sub-components/HeroPrimaryAction.js.map +1 -1
- package/esm/Hero/sub-components/HeroSecondaryAction.js.map +1 -1
- package/esm/Hero/sub-components/HeroVideo.js +2 -2
- package/esm/Hero/sub-components/HeroVideo.js.map +1 -1
- package/esm/IDE/IDE.d.ts +1 -1
- package/esm/IDE/IDE.js +3 -2
- package/esm/IDE/IDE.js.map +1 -1
- package/esm/IDE/IDE.module.js +8 -7
- package/esm/Icon/Icon.d.ts +2 -2
- package/esm/Icon/Icon.d.ts.map +1 -1
- package/esm/Icon/Icon.js +2 -2
- package/esm/Icon/Icon.js.map +1 -1
- package/esm/Icon/Icon.module.js +4 -3
- package/esm/Image/Image.d.ts +1 -1
- package/esm/Image/Image.d.ts.map +1 -1
- package/esm/Image/Image.js +1 -1
- package/esm/Image/Image.js.map +1 -1
- package/esm/Image/Image.module.js +5 -4
- package/esm/InlineCode/InlineCode.js +1 -1
- package/esm/InlineCode/InlineCode.js.map +1 -1
- package/esm/InlineCode/InlineCode.module.js +5 -4
- package/esm/InlineLink/InlineLink.js +2 -2
- package/esm/InlineLink/InlineLink.js.map +1 -1
- package/esm/InlineLink/InlineLink.module.js +3 -2
- package/esm/Label/Label.js +1 -1
- package/esm/Label/Label.js.map +1 -1
- package/esm/Label/Label.module.js +6 -5
- package/esm/Link/Link.d.ts +1 -1
- package/esm/Link/Link.d.ts.map +1 -1
- package/esm/Link/Link.js +2 -2
- package/esm/Link/Link.js.map +1 -1
- package/esm/Link/Link.module.js +4 -3
- package/esm/LogoSuite/LogoSuite.d.ts +1 -1
- package/esm/LogoSuite/LogoSuite.js +4 -3
- package/esm/LogoSuite/LogoSuite.js.map +1 -1
- package/esm/LogoSuite/LogoSuite.module.js +11 -10
- package/esm/MediaPlaylist/MediaPlaylist.d.ts +4 -4
- package/esm/MediaPlaylist/MediaPlaylist.d.ts.map +1 -1
- package/esm/MediaPlaylist/MediaPlaylist.js +1 -1
- package/esm/MediaPlaylist/MediaPlaylist.js.map +1 -1
- package/esm/MediaPlaylist/MediaPlaylist.module.js +25 -24
- package/esm/MediaPlaylist/useMediaPlaylist.js.map +1 -1
- package/esm/MinimalFooter/MinimalFooter.d.ts +3 -3
- package/esm/MinimalFooter/MinimalFooter.d.ts.map +1 -1
- package/esm/MinimalFooter/MinimalFooter.js +4 -3
- package/esm/MinimalFooter/MinimalFooter.js.map +1 -1
- package/esm/MinimalFooter/MinimalFooter.module.js +15 -14
- package/esm/MinimalVideoPlayer/MinimalVideoPlayer.js +2 -2
- package/esm/MinimalVideoPlayer/MinimalVideoPlayer.js.map +1 -1
- package/esm/MinimalVideoPlayer/MinimalVideoPlayer.module.js +6 -5
- package/esm/MinimalVideoPlayer/useMinimalVideoPlayback.js.map +1 -1
- package/esm/NavList/NavList.js +2 -2
- package/esm/NavList/NavList.js.map +1 -1
- package/esm/NavList/NavList.module.js +18 -17
- package/esm/Pagination/Pagination.d.ts +1 -1
- package/esm/Pagination/Pagination.d.ts.map +1 -1
- package/esm/Pagination/Pagination.js +1 -1
- package/esm/Pagination/Pagination.js.map +1 -1
- package/esm/Pagination/Pagination.module.js +11 -10
- package/esm/Pagination/model.js.map +1 -1
- package/esm/Pillar/Pillar.d.ts +2 -2
- package/esm/Pillar/Pillar.d.ts.map +1 -1
- package/esm/Pillar/Pillar.js +1 -1
- package/esm/Pillar/Pillar.js.map +1 -1
- package/esm/Pillar/Pillar.module.js +9 -8
- package/esm/PricingOptions/PricingOptions.d.ts +1 -1
- package/esm/PricingOptions/PricingOptions.js +5 -3
- package/esm/PricingOptions/PricingOptions.js.map +1 -1
- package/esm/PricingOptions/PricingOptions.module.js +13 -12
- package/esm/Prose/Prose.js +1 -1
- package/esm/Prose/Prose.js.map +1 -1
- package/esm/Prose/Prose.module.js +4 -3
- package/esm/Section/Section.js +1 -1
- package/esm/Section/Section.js.map +1 -1
- package/esm/Section/Section.module.js +5 -4
- package/esm/SectionIntro/SectionIntro.js +1 -1
- package/esm/SectionIntro/SectionIntro.js.map +1 -1
- package/esm/SectionIntro/SectionIntro.module.js +4 -3
- package/esm/SectionIntroStacked/SectionIntroStacked.d.ts +3 -3
- package/esm/SectionIntroStacked/SectionIntroStacked.js +1 -1
- package/esm/SectionIntroStacked/SectionIntroStacked.js.map +1 -1
- package/esm/SectionIntroStacked/SectionIntroStacked.module.js +6 -5
- package/esm/Stack/Stack.js +1 -1
- package/esm/Stack/Stack.js.map +1 -1
- package/esm/Stack/Stack.module.js +4 -3
- package/esm/Statistic/Statistic.js +1 -1
- package/esm/Statistic/Statistic.js.map +1 -1
- package/esm/Statistic/Statistic.module.js +6 -5
- package/esm/SubNav/SubNav.d.ts +4 -4
- package/esm/SubNav/SubNav.d.ts.map +1 -1
- package/esm/SubNav/SubNav.js +6 -4
- package/esm/SubNav/SubNav.js.map +1 -1
- package/esm/SubNav/SubNav.module.js +9 -8
- package/esm/SubNav/useContainsFocus.js.map +1 -1
- package/esm/SubdomainNavBar/NavigationVisbilityObserver.d.ts +3 -1
- package/esm/SubdomainNavBar/NavigationVisbilityObserver.d.ts.map +1 -1
- package/esm/SubdomainNavBar/NavigationVisbilityObserver.js +117 -64
- package/esm/SubdomainNavBar/NavigationVisbilityObserver.js.map +1 -1
- package/esm/SubdomainNavBar/SubdomainNavBar.d.ts +157 -20
- package/esm/SubdomainNavBar/SubdomainNavBar.d.ts.map +1 -1
- package/esm/SubdomainNavBar/SubdomainNavBar.js +479 -299
- package/esm/SubdomainNavBar/SubdomainNavBar.js.map +1 -1
- package/esm/SubdomainNavBar/SubdomainNavBar.module-WIrpYyjV.css +1 -0
- package/esm/SubdomainNavBar/SubdomainNavBar.module.js +36 -11
- package/esm/SubdomainNavBar/SubdomainNavBar.module.js.map +1 -1
- package/esm/SubdomainNavBar/SubdomainNavBarLinkContext.d.ts +9 -0
- package/esm/SubdomainNavBar/SubdomainNavBarLinkContext.d.ts.map +1 -0
- package/esm/SubdomainNavBar/SubdomainNavBarLinkContext.js +10 -0
- package/esm/SubdomainNavBar/SubdomainNavBarLinkContext.js.map +1 -0
- package/esm/SubdomainNavBar/useSearchKeyboardShortcut.d.ts +8 -0
- package/esm/SubdomainNavBar/useSearchKeyboardShortcut.d.ts.map +1 -0
- package/esm/SubdomainNavBar/useSearchKeyboardShortcut.js +52 -0
- package/esm/SubdomainNavBar/useSearchKeyboardShortcut.js.map +1 -0
- package/esm/SubdomainNavBar/useSearchResults.d.ts +24 -0
- package/esm/SubdomainNavBar/useSearchResults.d.ts.map +1 -0
- package/esm/SubdomainNavBar/useSearchResults.js +57 -0
- package/esm/SubdomainNavBar/useSearchResults.js.map +1 -0
- package/esm/SubdomainNavBar/useVisibilityObserver.d.ts +1 -1
- package/esm/SubdomainNavBar/useVisibilityObserver.d.ts.map +1 -1
- package/esm/SubdomainNavBar/useVisibilityObserver.js +60 -23
- package/esm/SubdomainNavBar/useVisibilityObserver.js.map +1 -1
- package/esm/Tabs/Tabs.js +3 -2
- package/esm/Tabs/Tabs.js.map +1 -1
- package/esm/Tabs/Tabs.module.js +12 -11
- package/esm/Testimonial/Testimonial.d.ts +1 -1
- package/esm/Testimonial/Testimonial.d.ts.map +1 -1
- package/esm/Testimonial/Testimonial.js +1 -1
- package/esm/Testimonial/Testimonial.js.map +1 -1
- package/esm/Testimonial/Testimonial.module.js +8 -7
- package/esm/Text/Text.d.ts +1 -1
- package/esm/Text/Text.d.ts.map +1 -1
- package/esm/Text/Text.js +1 -1
- package/esm/Text/Text.js.map +1 -1
- package/esm/Text/Text.module.js +4 -3
- package/esm/TextCursorAnimation/TextCursorAnimation.d.ts +1 -1
- package/esm/TextCursorAnimation/TextCursorAnimation.d.ts.map +1 -1
- package/esm/TextCursorAnimation/TextCursorAnimation.js +1 -1
- package/esm/TextCursorAnimation/TextCursorAnimation.js.map +1 -1
- package/esm/TextCursorAnimation/TextCursorAnimation.module.js +10 -9
- package/esm/ThemeProvider/ThemeProvider.d.ts +1 -1
- package/esm/ThemeProvider/ThemeProvider.d.ts.map +1 -1
- package/esm/ThemeProvider/ThemeProvider.js +4 -4
- package/esm/ThemeProvider/ThemeProvider.js.map +1 -1
- package/esm/ThemeProvider/useTheme.js.map +1 -1
- package/esm/Tiles/Tiles.js +2 -2
- package/esm/Tiles/Tiles.js.map +1 -1
- package/esm/Tiles/Tiles.module.js +4 -3
- package/esm/Timeline/Timeline.d.ts +3 -3
- package/esm/Timeline/Timeline.d.ts.map +1 -1
- package/esm/Timeline/Timeline.js +2 -2
- package/esm/Timeline/Timeline.js.map +1 -1
- package/esm/Timeline/Timeline.module.js +5 -4
- package/esm/Token/Token.js +1 -1
- package/esm/Token/Token.js.map +1 -1
- package/esm/Token/Token.module.js +6 -5
- package/esm/Tooltip/Tooltip.js +2 -2
- package/esm/Tooltip/Tooltip.js.map +1 -1
- package/esm/Tooltip/Tooltip.module.js +4 -3
- package/esm/VideoPlayer/VideoPlayer.d.ts +2 -2
- package/esm/VideoPlayer/VideoPlayer.js +2 -2
- package/esm/VideoPlayer/VideoPlayer.js.map +1 -1
- package/esm/VideoPlayer/VideoPlayer.module.js +29 -28
- package/esm/VideoPlayer/components/CCButton/CCButton.d.ts +2 -2
- package/esm/VideoPlayer/components/CCButton/CCButton.d.ts.map +1 -1
- package/esm/VideoPlayer/components/CCButton/CCButton.js +1 -1
- package/esm/VideoPlayer/components/CCButton/CCButton.js.map +1 -1
- package/esm/VideoPlayer/components/Captions/Captions.d.ts +2 -2
- package/esm/VideoPlayer/components/Captions/Captions.d.ts.map +1 -1
- package/esm/VideoPlayer/components/Captions/Captions.js +1 -1
- package/esm/VideoPlayer/components/Captions/Captions.js.map +1 -1
- package/esm/VideoPlayer/components/Captions/Captions.module.js +5 -4
- package/esm/VideoPlayer/components/ControlsBar/ControlsBar.d.ts +2 -2
- package/esm/VideoPlayer/components/ControlsBar/ControlsBar.d.ts.map +1 -1
- package/esm/VideoPlayer/components/ControlsBar/ControlsBar.js +1 -1
- package/esm/VideoPlayer/components/ControlsBar/ControlsBar.js.map +1 -1
- package/esm/VideoPlayer/components/FullScreenButton/FullScreenButton.d.ts +2 -2
- package/esm/VideoPlayer/components/FullScreenButton/FullScreenButton.d.ts.map +1 -1
- package/esm/VideoPlayer/components/FullScreenButton/FullScreenButton.js +2 -1
- package/esm/VideoPlayer/components/FullScreenButton/FullScreenButton.js.map +1 -1
- package/esm/VideoPlayer/components/IconControl/IconControl.d.ts +2 -2
- package/esm/VideoPlayer/components/IconControl/IconControl.d.ts.map +1 -1
- package/esm/VideoPlayer/components/IconControl/IconControl.js +1 -1
- package/esm/VideoPlayer/components/IconControl/IconControl.js.map +1 -1
- package/esm/VideoPlayer/components/MuteButton/MuteButton.d.ts +2 -2
- package/esm/VideoPlayer/components/MuteButton/MuteButton.d.ts.map +1 -1
- package/esm/VideoPlayer/components/MuteButton/MuteButton.js +2 -1
- package/esm/VideoPlayer/components/MuteButton/MuteButton.js.map +1 -1
- package/esm/VideoPlayer/components/PauseIcon/PauseIcon.d.ts +2 -2
- package/esm/VideoPlayer/components/PauseIcon/PauseIcon.d.ts.map +1 -1
- package/esm/VideoPlayer/components/PauseIcon/PauseIcon.js.map +1 -1
- package/esm/VideoPlayer/components/PlayIcon/PlayIcon.d.ts +2 -2
- package/esm/VideoPlayer/components/PlayIcon/PlayIcon.d.ts.map +1 -1
- package/esm/VideoPlayer/components/PlayIcon/PlayIcon.js.map +1 -1
- package/esm/VideoPlayer/components/PlayPauseButton/PlayPauseButton.d.ts +2 -2
- package/esm/VideoPlayer/components/PlayPauseButton/PlayPauseButton.d.ts.map +1 -1
- package/esm/VideoPlayer/components/PlayPauseButton/PlayPauseButton.js.map +1 -1
- package/esm/VideoPlayer/components/Range/Range.d.ts +1 -1
- package/esm/VideoPlayer/components/Range/Range.d.ts.map +1 -1
- package/esm/VideoPlayer/components/Range/Range.js +1 -1
- package/esm/VideoPlayer/components/Range/Range.js.map +1 -1
- package/esm/VideoPlayer/components/SeekControl/SeekControl.d.ts +2 -2
- package/esm/VideoPlayer/components/SeekControl/SeekControl.d.ts.map +1 -1
- package/esm/VideoPlayer/components/SeekControl/SeekControl.js +1 -1
- package/esm/VideoPlayer/components/SeekControl/SeekControl.js.map +1 -1
- package/esm/VideoPlayer/components/VideoTooltip/VideoTooltip.d.ts +2 -2
- package/esm/VideoPlayer/components/VideoTooltip/VideoTooltip.d.ts.map +1 -1
- package/esm/VideoPlayer/components/VideoTooltip/VideoTooltip.js +3 -2
- package/esm/VideoPlayer/components/VideoTooltip/VideoTooltip.js.map +1 -1
- package/esm/VideoPlayer/components/VolumeControl/VolumeControl.d.ts +2 -1
- package/esm/VideoPlayer/components/VolumeControl/VolumeControl.d.ts.map +1 -1
- package/esm/VideoPlayer/components/VolumeControl/VolumeControl.js.map +1 -1
- package/esm/VideoPlayer/components/VolumeControl/VolumeControl.module.js +3 -2
- package/esm/VideoPlayer/hooks/useIsElementFullScreen.js.map +1 -1
- package/esm/VideoPlayer/hooks/useVideo.js.map +1 -1
- package/esm/VideoPlayer/hooks/useVideoResizeObserver.js.map +1 -1
- package/esm/animation/Animate/Animate.d.ts +1 -1
- package/esm/animation/Animate/Animate.d.ts.map +1 -1
- package/esm/animation/Animate/Animate.js +1 -1
- package/esm/animation/Animate/Animate.js.map +1 -1
- package/esm/animation/Animation.module.js +4 -3
- package/esm/animation/AnimationProvider/AnimationProvider.d.ts +1 -1
- package/esm/animation/AnimationProvider/AnimationProvider.d.ts.map +1 -1
- package/esm/animation/AnimationProvider/AnimationProvider.js.map +1 -1
- package/esm/animation/TextRevealAnimation/TextRevealAnimation.js +1 -1
- package/esm/animation/TextRevealAnimation/TextRevealAnimation.js.map +1 -1
- package/esm/animation/TextRevealAnimation/TextRevealAnimation.module.js +5 -4
- package/esm/animation/TextRevealAnimation/useTextRevealAnimationLines.js.map +1 -1
- package/esm/animation/useAnimation.js.map +1 -1
- package/esm/component-helpers/shared.module.js +3 -2
- package/esm/component-helpers.d.ts +2 -2
- package/esm/component-helpers.d.ts.map +1 -1
- package/esm/constants.js.map +1 -1
- package/esm/css/stylesheets.js +1 -1
- package/esm/findElementInChildren.js.map +1 -1
- package/esm/forms/Checkbox/Checkbox.js +2 -2
- package/esm/forms/Checkbox/Checkbox.js.map +1 -1
- package/esm/forms/Checkbox/Checkbox.module.js +4 -3
- package/esm/forms/ControlGroup/ControlGroup.js +3 -2
- package/esm/forms/ControlGroup/ControlGroup.js.map +1 -1
- package/esm/forms/ControlGroup/ControlGroup.module.js +7 -6
- package/esm/forms/FormControl/FormControl.d.ts +5 -5
- package/esm/forms/FormControl/FormControl.d.ts.map +1 -1
- package/esm/forms/FormControl/FormControl.js +4 -3
- package/esm/forms/FormControl/FormControl.js.map +1 -1
- package/esm/forms/FormControl/FormControl.module.js +5 -4
- package/esm/forms/Radio/Radio.js +1 -1
- package/esm/forms/Radio/Radio.js.map +1 -1
- package/esm/forms/Radio/Radio.module.js +4 -3
- package/esm/forms/Select/Select.d.ts +2 -2
- package/esm/forms/Select/Select.js +1 -1
- package/esm/forms/Select/Select.js.map +1 -1
- package/esm/forms/Select/Select.module.js +4 -3
- package/esm/forms/TextInput/TextInput.js +1 -1
- package/esm/forms/TextInput/TextInput.js.map +1 -1
- package/esm/forms/TextInput/TextInput.module.js +5 -4
- package/esm/forms/Textarea/Textarea.js +1 -1
- package/esm/forms/Textarea/Textarea.js.map +1 -1
- package/esm/forms/Textarea/Textarea.module.js +4 -3
- package/esm/hooks/useAnchoredPosition.js +7 -4
- package/esm/hooks/useAnchoredPosition.js.map +1 -1
- package/esm/hooks/useCursorAnimation.js +4 -2
- package/esm/hooks/useCursorAnimation.js.map +1 -1
- package/esm/hooks/useFocusTrap.js.map +1 -1
- package/esm/hooks/useId.js.map +1 -1
- package/esm/hooks/useKeyboardEscape.js.map +1 -1
- package/esm/hooks/useOnClickOutside.js.map +1 -1
- package/esm/hooks/useReducedMotion.js +1 -1
- package/esm/hooks/useReducedMotion.js.map +1 -1
- package/esm/hooks/useRef.js.map +1 -1
- package/esm/hooks/useResizeObserver.js.map +1 -1
- package/esm/hooks/useTabs.js +1 -1
- package/esm/hooks/useTabs.js.map +1 -1
- package/esm/hooks/useWindowSize.js +7 -7
- package/esm/hooks/useWindowSize.js.map +1 -1
- package/esm/list/ListItem/ListItem.js +4 -2
- package/esm/list/ListItem/ListItem.js.map +1 -1
- package/esm/list/ListItem/ListItem.module.js +5 -4
- package/esm/list/OrderedList/OrderedList.d.ts +2 -2
- package/esm/list/OrderedList/OrderedList.d.ts.map +1 -1
- package/esm/list/OrderedList/OrderedList.js +1 -1
- package/esm/list/OrderedList/OrderedList.js.map +1 -1
- package/esm/list/OrderedList/OrderedList.module.js +3 -2
- package/esm/list/UnorderedList/UnorderedList.d.ts +2 -2
- package/esm/list/UnorderedList/UnorderedList.d.ts.map +1 -1
- package/esm/list/UnorderedList/UnorderedList.js +1 -1
- package/esm/list/UnorderedList/UnorderedList.js.map +1 -1
- package/esm/list/list-shared.module.js +3 -2
- package/esm/list/listContext.js.map +1 -1
- package/esm/node_modules/@primer/octicons-react/dist/icons/AlertFillIcon.js +28 -0
- package/esm/node_modules/@primer/octicons-react/dist/icons/AlertFillIcon.js.map +1 -0
- package/esm/node_modules/@primer/octicons-react/dist/icons/ArrowUpIcon.js +20 -0
- package/esm/node_modules/@primer/octicons-react/dist/icons/ArrowUpIcon.js.map +1 -0
- package/esm/node_modules/@primer/octicons-react/dist/icons/ArrowUpRightIcon.js +20 -0
- package/esm/node_modules/@primer/octicons-react/dist/icons/ArrowUpRightIcon.js.map +1 -0
- package/esm/node_modules/@primer/octicons-react/dist/icons/CheckCircleFillIcon.js +28 -0
- package/esm/node_modules/@primer/octicons-react/dist/icons/CheckCircleFillIcon.js.map +1 -0
- package/esm/node_modules/@primer/octicons-react/dist/icons/CheckIcon.js +20 -0
- package/esm/node_modules/@primer/octicons-react/dist/icons/CheckIcon.js.map +1 -0
- package/esm/node_modules/@primer/octicons-react/dist/icons/ChevronDownIcon.js +28 -0
- package/esm/node_modules/@primer/octicons-react/dist/icons/ChevronDownIcon.js.map +1 -0
- package/esm/node_modules/@primer/octicons-react/dist/icons/ChevronLeftIcon.js +28 -0
- package/esm/node_modules/@primer/octicons-react/dist/icons/ChevronLeftIcon.js.map +1 -0
- package/esm/node_modules/@primer/octicons-react/dist/icons/ChevronRightIcon.js +28 -0
- package/esm/node_modules/@primer/octicons-react/dist/icons/ChevronRightIcon.js.map +1 -0
- package/esm/node_modules/@primer/octicons-react/dist/icons/ChevronUpIcon.js +28 -0
- package/esm/node_modules/@primer/octicons-react/dist/icons/ChevronUpIcon.js.map +1 -0
- package/esm/node_modules/@primer/octicons-react/dist/icons/CopilotIcon.js +33 -0
- package/esm/node_modules/@primer/octicons-react/dist/icons/CopilotIcon.js.map +1 -0
- package/esm/node_modules/@primer/octicons-react/dist/icons/DashIcon.js +20 -0
- package/esm/node_modules/@primer/octicons-react/dist/icons/DashIcon.js.map +1 -0
- package/esm/node_modules/@primer/octicons-react/dist/icons/LinkExternalIcon.js +20 -0
- package/esm/node_modules/@primer/octicons-react/dist/icons/LinkExternalIcon.js.map +1 -0
- package/esm/node_modules/@primer/octicons-react/dist/icons/MarkGithubIcon.js +20 -0
- package/esm/node_modules/@primer/octicons-react/dist/icons/MarkGithubIcon.js.map +1 -0
- package/esm/node_modules/@primer/octicons-react/dist/icons/MuteIcon.js +20 -0
- package/esm/node_modules/@primer/octicons-react/dist/icons/MuteIcon.js.map +1 -0
- package/esm/node_modules/@primer/octicons-react/dist/icons/PaperAirplaneIcon.js +20 -0
- package/esm/node_modules/@primer/octicons-react/dist/icons/PaperAirplaneIcon.js.map +1 -0
- package/esm/node_modules/@primer/octicons-react/dist/icons/PauseIcon.js +20 -0
- package/esm/node_modules/@primer/octicons-react/dist/icons/PauseIcon.js.map +1 -0
- package/esm/node_modules/@primer/octicons-react/dist/icons/PlayIcon.js +20 -0
- package/esm/node_modules/@primer/octicons-react/dist/icons/PlayIcon.js.map +1 -0
- package/esm/node_modules/@primer/octicons-react/dist/icons/ReplyIcon.js +20 -0
- package/esm/node_modules/@primer/octicons-react/dist/icons/ReplyIcon.js.map +1 -0
- package/esm/node_modules/@primer/octicons-react/dist/icons/ScreenFullIcon.js +20 -0
- package/esm/node_modules/@primer/octicons-react/dist/icons/ScreenFullIcon.js.map +1 -0
- package/esm/node_modules/@primer/octicons-react/dist/icons/ScreenNormalIcon.js +20 -0
- package/esm/node_modules/@primer/octicons-react/dist/icons/ScreenNormalIcon.js.map +1 -0
- package/esm/node_modules/@primer/octicons-react/dist/icons/SearchIcon.js +20 -0
- package/esm/node_modules/@primer/octicons-react/dist/icons/SearchIcon.js.map +1 -0
- package/esm/node_modules/@primer/octicons-react/dist/icons/TriangleDownIcon.js +20 -0
- package/esm/node_modules/@primer/octicons-react/dist/icons/TriangleDownIcon.js.map +1 -0
- package/esm/node_modules/@primer/octicons-react/dist/icons/TriangleUpIcon.js +20 -0
- package/esm/node_modules/@primer/octicons-react/dist/icons/TriangleUpIcon.js.map +1 -0
- package/esm/node_modules/@primer/octicons-react/dist/icons/UnmuteIcon.js +20 -0
- package/esm/node_modules/@primer/octicons-react/dist/icons/UnmuteIcon.js.map +1 -0
- package/esm/node_modules/@primer/octicons-react/dist/icons/XIcon.js +28 -0
- package/esm/node_modules/@primer/octicons-react/dist/icons/XIcon.js.map +1 -0
- package/esm/node_modules/@primer/octicons-react/dist/renderOcticon-DuMQdmQC.js +132 -0
- package/esm/node_modules/@primer/octicons-react/dist/renderOcticon-DuMQdmQC.js.map +1 -0
- package/esm/node_modules/clsx/dist/clsx.js +1 -1
- package/esm/node_modules/clsx/dist/clsx.js.map +1 -1
- package/esm/packages/design-tokens/lib/design-tokens/css/tokens/functional/components/subdomain-nav-bar/colors-with-modes-BGj0AiDW.css +1 -0
- package/esm/river/River/River.js +2 -2
- package/esm/river/River/River.js.map +1 -1
- package/esm/river/RiverAccordion/RiverAccordion.d.ts +4 -4
- package/esm/river/RiverAccordion/RiverAccordion.js +3 -2
- package/esm/river/RiverAccordion/RiverAccordion.js.map +1 -1
- package/esm/river/RiverAccordion/RiverAccordion.module.js +16 -15
- package/esm/river/RiverBreakout/RiverBreakout.d.ts +1 -1
- package/esm/river/RiverBreakout/RiverBreakout.js +1 -1
- package/esm/river/RiverBreakout/RiverBreakout.js.map +1 -1
- package/esm/river/RiverBreakoutTabs/RiverBreakoutTabs.d.ts +5 -5
- package/esm/river/RiverBreakoutTabs/RiverBreakoutTabs.js +2 -2
- package/esm/river/RiverBreakoutTabs/RiverBreakoutTabs.js.map +1 -1
- package/esm/river/RiverBreakoutTabs/RiverBreakoutTabs.module.js +31 -30
- package/esm/river/RiverStoryScroll/RiverStoryScroll.d.ts +1 -1
- package/esm/river/RiverStoryScroll/RiverStoryScroll.d.ts.map +1 -1
- package/esm/river/RiverStoryScroll/RiverStoryScroll.js +5 -3
- package/esm/river/RiverStoryScroll/RiverStoryScroll.js.map +1 -1
- package/esm/river/RiverStoryScroll/RiverStoryScroll.module.js +8 -7
- package/esm/river/RiverStoryScroll/RiverStoryScrollProvider.d.ts +2 -2
- package/esm/river/RiverStoryScroll/RiverStoryScrollProvider.d.ts.map +1 -1
- package/esm/river/RiverStoryScroll/RiverStoryScrollProvider.js.map +1 -1
- package/esm/river/RiverStoryScroll/RiverStoryScrollResponder.d.ts +1 -1
- package/esm/river/RiverStoryScroll/RiverStoryScrollResponder.d.ts.map +1 -1
- package/esm/river/RiverStoryScroll/RiverStoryScrollResponder.js +1 -1
- package/esm/river/RiverStoryScroll/RiverStoryScrollResponder.js.map +1 -1
- package/esm/river/RiverStoryScroll/RiverStoryScrollTracker.d.ts +1 -1
- package/esm/river/RiverStoryScroll/RiverStoryScrollTracker.d.ts.map +1 -1
- package/esm/river/RiverStoryScroll/RiverStoryScrollTracker.js +1 -1
- package/esm/river/RiverStoryScroll/RiverStoryScrollTracker.js.map +1 -1
- package/esm/river/river-shared.module.js +13 -12
- package/esm/utils/getTextContent.js.map +1 -1
- package/esm/utils/isFragmentElement.js.map +1 -1
- package/lib/Accordion/Accordion.d.ts +2 -2
- package/lib/ActionMenu/ActionMenu.d.ts +2 -2
- package/lib/AnchorNav/AnchorNav.d.ts +4 -4
- package/lib/Bento/Bento.d.ts +4 -4
- package/lib/Box/Box.d.ts +1 -1
- package/lib/CTABanner/CTABanner.d.ts +1 -1
- package/lib/Card/Card.d.ts +2 -2
- package/lib/ComparisonTable/ComparisonTable.d.ts +3 -3
- package/lib/ExpandableArrow/ExpandableArrow.d.ts +2 -1
- package/lib/FAQ/FAQ.d.ts +2 -2
- package/lib/FAQ/FAQGroup.d.ts +2 -2
- package/lib/Footnotes/Footnotes.d.ts +2 -2
- package/lib/FrostedGlassVFX/FrostedGlassVFX.d.ts +1 -1
- package/lib/Grid/Grid.d.ts +2 -2
- package/lib/IDE/IDE.d.ts +1 -1
- package/lib/Icon/Icon.d.ts +2 -2
- package/lib/Image/Image.d.ts +1 -1
- package/lib/Link/Link.d.ts +1 -1
- package/lib/LogoSuite/LogoSuite.d.ts +1 -1
- package/lib/MediaPlaylist/MediaPlaylist.d.ts +4 -4
- package/lib/MinimalFooter/MinimalFooter.d.ts +3 -3
- package/lib/Pagination/Pagination.d.ts +1 -1
- package/lib/Pillar/Pillar.d.ts +2 -2
- package/lib/PricingOptions/PricingOptions.d.ts +1 -1
- package/lib/SectionIntroStacked/SectionIntroStacked.d.ts +3 -3
- package/lib/SubNav/SubNav.d.ts +4 -4
- package/lib/SubdomainNavBar/NavigationVisbilityObserver.d.ts +3 -1
- package/lib/SubdomainNavBar/SubdomainNavBar.d.ts +157 -20
- package/lib/SubdomainNavBar/SubdomainNavBarLinkContext.d.ts +8 -0
- package/lib/SubdomainNavBar/useSearchKeyboardShortcut.d.ts +7 -0
- package/lib/SubdomainNavBar/useSearchResults.d.ts +23 -0
- package/lib/SubdomainNavBar/useVisibilityObserver.d.ts +1 -1
- package/lib/Testimonial/Testimonial.d.ts +1 -1
- package/lib/Text/Text.d.ts +1 -1
- package/lib/TextCursorAnimation/TextCursorAnimation.d.ts +1 -1
- package/lib/ThemeProvider/ThemeProvider.d.ts +1 -1
- package/lib/Timeline/Timeline.d.ts +3 -3
- package/lib/VideoPlayer/VideoPlayer.d.ts +2 -2
- package/lib/VideoPlayer/components/CCButton/CCButton.d.ts +2 -2
- package/lib/VideoPlayer/components/Captions/Captions.d.ts +2 -2
- package/lib/VideoPlayer/components/ControlsBar/ControlsBar.d.ts +2 -2
- package/lib/VideoPlayer/components/FullScreenButton/FullScreenButton.d.ts +2 -2
- package/lib/VideoPlayer/components/IconControl/IconControl.d.ts +2 -2
- package/lib/VideoPlayer/components/MuteButton/MuteButton.d.ts +2 -2
- package/lib/VideoPlayer/components/PauseIcon/PauseIcon.d.ts +2 -2
- package/lib/VideoPlayer/components/PlayIcon/PlayIcon.d.ts +2 -2
- package/lib/VideoPlayer/components/PlayPauseButton/PlayPauseButton.d.ts +2 -2
- package/lib/VideoPlayer/components/Range/Range.d.ts +1 -1
- package/lib/VideoPlayer/components/SeekControl/SeekControl.d.ts +2 -2
- package/lib/VideoPlayer/components/VideoTooltip/VideoTooltip.d.ts +2 -2
- package/lib/VideoPlayer/components/VolumeControl/VolumeControl.d.ts +2 -1
- package/lib/animation/Animate/Animate.d.ts +1 -1
- package/lib/animation/AnimationProvider/AnimationProvider.d.ts +1 -1
- package/lib/component-helpers.d.ts +2 -2
- package/lib/css/main.css +1390 -1056
- package/lib/design-tokens/css/tokens/base/colors/color-scales-with-modes.css +1 -1
- package/lib/design-tokens/css/tokens/base/colors/light.css +1 -1
- package/lib/design-tokens/css/tokens/base/size/size.css +1 -1
- package/lib/design-tokens/css/tokens/base/typography/typography.css +1 -1
- package/lib/design-tokens/css/tokens/functional/animation/base.css +1 -1
- package/lib/design-tokens/css/tokens/functional/colors/global-with-modes.css +1 -1
- package/lib/design-tokens/css/tokens/functional/colors/global.css +1 -1
- package/lib/design-tokens/css/tokens/functional/components/accordion/colors-with-modes.css +1 -1
- package/lib/design-tokens/css/tokens/functional/components/action-menu/colors-with-modes.css +1 -1
- package/lib/design-tokens/css/tokens/functional/components/anchor-nav/colors-with-modes.css +1 -1
- package/lib/design-tokens/css/tokens/functional/components/bento/base.css +1 -1
- package/lib/design-tokens/css/tokens/functional/components/blinking-cursor/colors-with-modes.css +1 -1
- package/lib/design-tokens/css/tokens/functional/components/breadcrumbs/colors-with-modes.css +1 -1
- package/lib/design-tokens/css/tokens/functional/components/button/colors-with-modes.css +1 -1
- package/lib/design-tokens/css/tokens/functional/components/card/base.css +1 -1
- package/lib/design-tokens/css/tokens/functional/components/card/colors-with-modes.css +1 -1
- package/lib/design-tokens/css/tokens/functional/components/card/colors.css +1 -1
- package/lib/design-tokens/css/tokens/functional/components/comparison-table/colors-with-modes.css +1 -1
- package/lib/design-tokens/css/tokens/functional/components/comparison-table/comparison-table.css +1 -1
- package/lib/design-tokens/css/tokens/functional/components/control/colors-with-modes.css +1 -1
- package/lib/design-tokens/css/tokens/functional/components/cta-banner/colors-with-modes.css +1 -1
- package/lib/design-tokens/css/tokens/functional/components/eyebrow-banner/colors-with-modes.css +1 -1
- package/lib/design-tokens/css/tokens/functional/components/eyebrow-banner/eyebrow-banner.css +1 -1
- package/lib/design-tokens/css/tokens/functional/components/faq/base.css +1 -1
- package/lib/design-tokens/css/tokens/functional/components/faq/colors-with-modes.css +1 -1
- package/lib/design-tokens/css/tokens/functional/components/faq/colors.css +1 -1
- package/lib/design-tokens/css/tokens/functional/components/faq/faq.css +1 -1
- package/lib/design-tokens/css/tokens/functional/components/footer/base.css +1 -1
- package/lib/design-tokens/css/tokens/functional/components/footer/colors-with-modes.css +1 -1
- package/lib/design-tokens/css/tokens/functional/components/footer/colors.css +1 -1
- package/lib/design-tokens/css/tokens/functional/components/frosted-glass-vfx/base.css +1 -1
- package/lib/design-tokens/css/tokens/functional/components/frosted-glass-vfx/colors-with-modes.css +1 -1
- package/lib/design-tokens/css/tokens/functional/components/grid/colors-with-modes.css +1 -1
- package/lib/design-tokens/css/tokens/functional/components/grid/colors.css +1 -1
- package/lib/design-tokens/css/tokens/functional/components/grid/grid.css +1 -1
- package/lib/design-tokens/css/tokens/functional/components/hero/base.css +1 -1
- package/lib/design-tokens/css/tokens/functional/components/icon/colors-with-modes.css +1 -1
- package/lib/design-tokens/css/tokens/functional/components/icon/colors.css +1 -1
- package/lib/design-tokens/css/tokens/functional/components/ide/base.css +1 -1
- package/lib/design-tokens/css/tokens/functional/components/ide/colors-with-modes.css +1 -1
- package/lib/design-tokens/css/tokens/functional/components/image/base.css +1 -1
- package/lib/design-tokens/css/tokens/functional/components/inline-code/colors-with-modes.css +1 -1
- package/lib/design-tokens/css/tokens/functional/components/inline-code/colors.css +1 -1
- package/lib/design-tokens/css/tokens/functional/components/inline-link/base.css +1 -1
- package/lib/design-tokens/css/tokens/functional/components/inline-link/colors-with-modes.css +1 -1
- package/lib/design-tokens/css/tokens/functional/components/inline-link/colors.css +1 -1
- package/lib/design-tokens/css/tokens/functional/components/label/colors-with-modes.css +1 -1
- package/lib/design-tokens/css/tokens/functional/components/label/colors.css +1 -1
- package/lib/design-tokens/css/tokens/functional/components/link/colors-with-modes.css +1 -1
- package/lib/design-tokens/css/tokens/functional/components/link/colors.css +1 -1
- package/lib/design-tokens/css/tokens/functional/components/logosuite/base.css +1 -1
- package/lib/design-tokens/css/tokens/functional/components/logosuite/colors-with-modes.css +1 -1
- package/lib/design-tokens/css/tokens/functional/components/logosuite/colors.css +1 -1
- package/lib/design-tokens/css/tokens/functional/components/media-playlist/colors-with-modes.css +1 -1
- package/lib/design-tokens/css/tokens/functional/components/media-playlist/colors.css +1 -1
- package/lib/design-tokens/css/tokens/functional/components/nav-list/colors-with-modes.css +1 -1
- package/lib/design-tokens/css/tokens/functional/components/pricing-options/colors-with-modes.css +1 -1
- package/lib/design-tokens/css/tokens/functional/components/pricing-options/colors.css +1 -1
- package/lib/design-tokens/css/tokens/functional/components/pricing-options/pricing-options.css +1 -1
- package/lib/design-tokens/css/tokens/functional/components/prose/base.css +1 -1
- package/lib/design-tokens/css/tokens/functional/components/prose/colors-with-modes.css +1 -1
- package/lib/design-tokens/css/tokens/functional/components/river/base.css +1 -1
- package/lib/design-tokens/css/tokens/functional/components/river/river.css +1 -1
- package/lib/design-tokens/css/tokens/functional/components/river-story-scroll/colors-with-modes.css +1 -1
- package/lib/design-tokens/css/tokens/functional/components/section/section.css +1 -1
- package/lib/design-tokens/css/tokens/functional/components/statistic/base.css +1 -1
- package/lib/design-tokens/css/tokens/functional/components/sub-nav/base.css +1 -1
- package/lib/design-tokens/css/tokens/functional/components/sub-nav/colors-with-modes.css +1 -1
- package/lib/design-tokens/css/tokens/functional/components/subdomain-nav-bar/colors-with-modes.css +7 -1
- package/lib/design-tokens/css/tokens/functional/components/tabs/base.css +1 -1
- package/lib/design-tokens/css/tokens/functional/components/tabs/colors-with-modes.css +1 -1
- package/lib/design-tokens/css/tokens/functional/components/tabs/colors.css +1 -1
- package/lib/design-tokens/css/tokens/functional/components/testimonial/base.css +1 -1
- package/lib/design-tokens/css/tokens/functional/components/testimonial/colors-with-modes.css +1 -1
- package/lib/design-tokens/css/tokens/functional/components/testimonial/colors.css +1 -1
- package/lib/design-tokens/css/tokens/functional/components/text-cursor-animation/base.css +1 -1
- package/lib/design-tokens/css/tokens/functional/components/text-cursor-animation/colors-with-modes.css +1 -1
- package/lib/design-tokens/css/tokens/functional/components/text-cursor-animation/colors.css +1 -1
- package/lib/design-tokens/css/tokens/functional/components/tiles/colors-with-modes.css +1 -1
- package/lib/design-tokens/css/tokens/functional/components/timeline/base.css +1 -1
- package/lib/design-tokens/css/tokens/functional/components/timeline/colors-with-modes.css +1 -1
- package/lib/design-tokens/css/tokens/functional/components/timeline/colors.css +1 -1
- package/lib/design-tokens/css/tokens/functional/components/token/colors-with-modes.css +1 -1
- package/lib/design-tokens/css/tokens/functional/components/token/colors.css +1 -1
- package/lib/design-tokens/css/tokens/functional/components/tooltip/colors-with-modes.css +1 -1
- package/lib/design-tokens/css/tokens/functional/components/tooltip/colors.css +1 -1
- package/lib/design-tokens/css/tokens/functional/components/video-player/base.css +1 -1
- package/lib/design-tokens/css/tokens/functional/components/video-player/colors-with-modes.css +1 -1
- package/lib/design-tokens/css/tokens/functional/size/border.css +1 -1
- package/lib/design-tokens/css/tokens/functional/size/breakpoints.css +1 -1
- package/lib/design-tokens/css/tokens/functional/size/size-coarse.css +1 -1
- package/lib/design-tokens/css/tokens/functional/size/size-fine.css +1 -1
- package/lib/design-tokens/css/tokens/functional/size/size.css +1 -1
- package/lib/design-tokens/css/tokens/functional/size/viewport.css +1 -1
- package/lib/design-tokens/css/tokens/functional/typography/typography-responsive.css +1 -1
- package/lib/design-tokens/css/tokens/functional/typography/typography.css +1 -1
- package/lib/design-tokens/js/module/tokens/base/colors/light.js +1 -1
- package/lib/design-tokens/js/module/tokens/base/size/size.js +1 -1
- package/lib/design-tokens/js/module/tokens/base/typography/typography.js +1 -1
- package/lib/design-tokens/js/module/tokens/functional/animation/base.js +1 -1
- package/lib/design-tokens/js/module/tokens/functional/colors/global.js +1 -1
- package/lib/design-tokens/js/module/tokens/functional/components/bento/base.js +1 -1
- package/lib/design-tokens/js/module/tokens/functional/components/card/base.js +1 -1
- package/lib/design-tokens/js/module/tokens/functional/components/card/colors.js +1 -1
- package/lib/design-tokens/js/module/tokens/functional/components/comparison-table/comparison-table.js +1 -1
- package/lib/design-tokens/js/module/tokens/functional/components/eyebrow-banner/eyebrow-banner.js +1 -1
- package/lib/design-tokens/js/module/tokens/functional/components/faq/base.js +1 -1
- package/lib/design-tokens/js/module/tokens/functional/components/faq/colors.js +1 -1
- package/lib/design-tokens/js/module/tokens/functional/components/faq/faq.js +1 -1
- package/lib/design-tokens/js/module/tokens/functional/components/footer/base.js +1 -1
- package/lib/design-tokens/js/module/tokens/functional/components/footer/colors.js +1 -1
- package/lib/design-tokens/js/module/tokens/functional/components/frosted-glass-vfx/base.js +1 -1
- package/lib/design-tokens/js/module/tokens/functional/components/grid/colors.js +1 -1
- package/lib/design-tokens/js/module/tokens/functional/components/grid/grid.js +1 -1
- package/lib/design-tokens/js/module/tokens/functional/components/hero/base.js +1 -1
- package/lib/design-tokens/js/module/tokens/functional/components/icon/colors.js +1 -1
- package/lib/design-tokens/js/module/tokens/functional/components/ide/base.js +1 -1
- package/lib/design-tokens/js/module/tokens/functional/components/image/base.js +1 -1
- package/lib/design-tokens/js/module/tokens/functional/components/inline-code/colors.js +1 -1
- package/lib/design-tokens/js/module/tokens/functional/components/inline-link/base.js +1 -1
- package/lib/design-tokens/js/module/tokens/functional/components/inline-link/colors.js +1 -1
- package/lib/design-tokens/js/module/tokens/functional/components/label/colors.js +1 -1
- package/lib/design-tokens/js/module/tokens/functional/components/link/colors.js +1 -1
- package/lib/design-tokens/js/module/tokens/functional/components/logosuite/base.js +1 -1
- package/lib/design-tokens/js/module/tokens/functional/components/logosuite/colors.js +1 -1
- package/lib/design-tokens/js/module/tokens/functional/components/media-playlist/colors.js +1 -1
- package/lib/design-tokens/js/module/tokens/functional/components/pricing-options/colors.js +1 -1
- package/lib/design-tokens/js/module/tokens/functional/components/pricing-options/pricing-options.js +1 -1
- package/lib/design-tokens/js/module/tokens/functional/components/prose/base.js +1 -1
- package/lib/design-tokens/js/module/tokens/functional/components/river/base.js +1 -1
- package/lib/design-tokens/js/module/tokens/functional/components/river/river.js +1 -1
- package/lib/design-tokens/js/module/tokens/functional/components/section/section.js +1 -1
- package/lib/design-tokens/js/module/tokens/functional/components/statistic/base.js +1 -1
- package/lib/design-tokens/js/module/tokens/functional/components/sub-nav/base.js +1 -1
- package/lib/design-tokens/js/module/tokens/functional/components/tabs/base.js +1 -1
- package/lib/design-tokens/js/module/tokens/functional/components/tabs/colors.js +1 -1
- package/lib/design-tokens/js/module/tokens/functional/components/testimonial/base.js +1 -1
- package/lib/design-tokens/js/module/tokens/functional/components/testimonial/colors.js +1 -1
- package/lib/design-tokens/js/module/tokens/functional/components/text-cursor-animation/base.js +1 -1
- package/lib/design-tokens/js/module/tokens/functional/components/text-cursor-animation/colors.js +1 -1
- package/lib/design-tokens/js/module/tokens/functional/components/timeline/base.js +1 -1
- package/lib/design-tokens/js/module/tokens/functional/components/timeline/colors.js +1 -1
- package/lib/design-tokens/js/module/tokens/functional/components/token/colors.js +1 -1
- package/lib/design-tokens/js/module/tokens/functional/components/tooltip/colors.js +1 -1
- package/lib/design-tokens/js/module/tokens/functional/components/video-player/base.js +1 -1
- package/lib/design-tokens/js/module/tokens/functional/size/border.js +1 -1
- package/lib/design-tokens/js/module/tokens/functional/size/breakpoints.js +1 -1
- package/lib/design-tokens/js/module/tokens/functional/size/size-coarse.js +1 -1
- package/lib/design-tokens/js/module/tokens/functional/size/size-fine.js +1 -1
- package/lib/design-tokens/js/module/tokens/functional/size/size.js +1 -1
- package/lib/design-tokens/js/module/tokens/functional/size/viewport.js +1 -1
- package/lib/design-tokens/js/module/tokens/functional/typography/typography-responsive.js +1 -1
- package/lib/design-tokens/js/module/tokens/functional/typography/typography.js +1 -1
- package/lib/design-tokens/js/tokens/base/colors/light.js +1 -1
- package/lib/design-tokens/js/tokens/base/size/size.js +1 -1
- package/lib/design-tokens/js/tokens/base/typography/typography.js +1 -1
- package/lib/design-tokens/js/tokens/functional/animation/base.js +1 -1
- package/lib/design-tokens/js/tokens/functional/colors/global.js +1 -1
- package/lib/design-tokens/js/tokens/functional/components/bento/base.js +1 -1
- package/lib/design-tokens/js/tokens/functional/components/card/base.js +1 -1
- package/lib/design-tokens/js/tokens/functional/components/card/colors.js +1 -1
- package/lib/design-tokens/js/tokens/functional/components/comparison-table/comparison-table.js +1 -1
- package/lib/design-tokens/js/tokens/functional/components/eyebrow-banner/eyebrow-banner.js +1 -1
- package/lib/design-tokens/js/tokens/functional/components/faq/base.js +1 -1
- package/lib/design-tokens/js/tokens/functional/components/faq/colors.js +1 -1
- package/lib/design-tokens/js/tokens/functional/components/faq/faq.js +1 -1
- package/lib/design-tokens/js/tokens/functional/components/footer/base.js +1 -1
- package/lib/design-tokens/js/tokens/functional/components/footer/colors.js +1 -1
- package/lib/design-tokens/js/tokens/functional/components/frosted-glass-vfx/base.js +1 -1
- package/lib/design-tokens/js/tokens/functional/components/grid/colors.js +1 -1
- package/lib/design-tokens/js/tokens/functional/components/grid/grid.js +1 -1
- package/lib/design-tokens/js/tokens/functional/components/hero/base.js +1 -1
- package/lib/design-tokens/js/tokens/functional/components/icon/colors.js +1 -1
- package/lib/design-tokens/js/tokens/functional/components/ide/base.js +1 -1
- package/lib/design-tokens/js/tokens/functional/components/image/base.js +1 -1
- package/lib/design-tokens/js/tokens/functional/components/inline-code/colors.js +1 -1
- package/lib/design-tokens/js/tokens/functional/components/inline-link/base.js +1 -1
- package/lib/design-tokens/js/tokens/functional/components/inline-link/colors.js +1 -1
- package/lib/design-tokens/js/tokens/functional/components/label/colors.js +1 -1
- package/lib/design-tokens/js/tokens/functional/components/link/colors.js +1 -1
- package/lib/design-tokens/js/tokens/functional/components/logosuite/base.js +1 -1
- package/lib/design-tokens/js/tokens/functional/components/logosuite/colors.js +1 -1
- package/lib/design-tokens/js/tokens/functional/components/media-playlist/colors.js +1 -1
- package/lib/design-tokens/js/tokens/functional/components/pricing-options/colors.js +1 -1
- package/lib/design-tokens/js/tokens/functional/components/pricing-options/pricing-options.js +1 -1
- package/lib/design-tokens/js/tokens/functional/components/prose/base.js +1 -1
- package/lib/design-tokens/js/tokens/functional/components/river/base.js +1 -1
- package/lib/design-tokens/js/tokens/functional/components/river/river.js +1 -1
- package/lib/design-tokens/js/tokens/functional/components/section/section.js +1 -1
- package/lib/design-tokens/js/tokens/functional/components/statistic/base.js +1 -1
- package/lib/design-tokens/js/tokens/functional/components/sub-nav/base.js +1 -1
- package/lib/design-tokens/js/tokens/functional/components/tabs/base.js +1 -1
- package/lib/design-tokens/js/tokens/functional/components/tabs/colors.js +1 -1
- package/lib/design-tokens/js/tokens/functional/components/testimonial/base.js +1 -1
- package/lib/design-tokens/js/tokens/functional/components/testimonial/colors.js +1 -1
- package/lib/design-tokens/js/tokens/functional/components/text-cursor-animation/base.js +1 -1
- package/lib/design-tokens/js/tokens/functional/components/text-cursor-animation/colors.js +1 -1
- package/lib/design-tokens/js/tokens/functional/components/timeline/base.js +1 -1
- package/lib/design-tokens/js/tokens/functional/components/timeline/colors.js +1 -1
- package/lib/design-tokens/js/tokens/functional/components/token/colors.js +1 -1
- package/lib/design-tokens/js/tokens/functional/components/tooltip/colors.js +1 -1
- package/lib/design-tokens/js/tokens/functional/components/video-player/base.js +1 -1
- package/lib/design-tokens/js/tokens/functional/size/border.js +1 -1
- package/lib/design-tokens/js/tokens/functional/size/breakpoints.js +1 -1
- package/lib/design-tokens/js/tokens/functional/size/size-coarse.js +1 -1
- package/lib/design-tokens/js/tokens/functional/size/size-fine.js +1 -1
- package/lib/design-tokens/js/tokens/functional/size/size.js +1 -1
- package/lib/design-tokens/js/tokens/functional/size/viewport.js +1 -1
- package/lib/design-tokens/js/tokens/functional/typography/typography-responsive.js +1 -1
- package/lib/design-tokens/js/tokens/functional/typography/typography.js +1 -1
- package/lib/design-tokens/json/colors.json +3 -0
- package/lib/design-tokens/scss/tokens/base/colors/light.scss +1 -1
- package/lib/design-tokens/scss/tokens/base/size/size.scss +1 -1
- package/lib/design-tokens/scss/tokens/base/typography/typography.scss +1 -1
- package/lib/design-tokens/scss/tokens/functional/animation/base.scss +1 -1
- package/lib/design-tokens/scss/tokens/functional/colors/global.scss +1 -1
- package/lib/design-tokens/scss/tokens/functional/components/bento/base.scss +1 -1
- package/lib/design-tokens/scss/tokens/functional/components/card/base.scss +1 -1
- package/lib/design-tokens/scss/tokens/functional/components/card/colors.scss +1 -1
- package/lib/design-tokens/scss/tokens/functional/components/comparison-table/comparison-table.scss +1 -1
- package/lib/design-tokens/scss/tokens/functional/components/eyebrow-banner/eyebrow-banner.scss +1 -1
- package/lib/design-tokens/scss/tokens/functional/components/faq/base.scss +1 -1
- package/lib/design-tokens/scss/tokens/functional/components/faq/colors.scss +1 -1
- package/lib/design-tokens/scss/tokens/functional/components/faq/faq.scss +1 -1
- package/lib/design-tokens/scss/tokens/functional/components/footer/base.scss +1 -1
- package/lib/design-tokens/scss/tokens/functional/components/footer/colors.scss +1 -1
- package/lib/design-tokens/scss/tokens/functional/components/frosted-glass-vfx/base.scss +1 -1
- package/lib/design-tokens/scss/tokens/functional/components/grid/colors.scss +1 -1
- package/lib/design-tokens/scss/tokens/functional/components/grid/grid.scss +1 -1
- package/lib/design-tokens/scss/tokens/functional/components/hero/base.scss +1 -1
- package/lib/design-tokens/scss/tokens/functional/components/icon/colors.scss +1 -1
- package/lib/design-tokens/scss/tokens/functional/components/ide/base.scss +1 -1
- package/lib/design-tokens/scss/tokens/functional/components/image/base.scss +1 -1
- package/lib/design-tokens/scss/tokens/functional/components/inline-code/colors.scss +1 -1
- package/lib/design-tokens/scss/tokens/functional/components/inline-link/base.scss +1 -1
- package/lib/design-tokens/scss/tokens/functional/components/inline-link/colors.scss +1 -1
- package/lib/design-tokens/scss/tokens/functional/components/label/colors.scss +1 -1
- package/lib/design-tokens/scss/tokens/functional/components/link/colors.scss +1 -1
- package/lib/design-tokens/scss/tokens/functional/components/logosuite/base.scss +1 -1
- package/lib/design-tokens/scss/tokens/functional/components/logosuite/colors.scss +1 -1
- package/lib/design-tokens/scss/tokens/functional/components/media-playlist/colors.scss +1 -1
- package/lib/design-tokens/scss/tokens/functional/components/pricing-options/colors.scss +1 -1
- package/lib/design-tokens/scss/tokens/functional/components/pricing-options/pricing-options.scss +1 -1
- package/lib/design-tokens/scss/tokens/functional/components/prose/base.scss +1 -1
- package/lib/design-tokens/scss/tokens/functional/components/river/base.scss +1 -1
- package/lib/design-tokens/scss/tokens/functional/components/river/river.scss +1 -1
- package/lib/design-tokens/scss/tokens/functional/components/section/section.scss +1 -1
- package/lib/design-tokens/scss/tokens/functional/components/statistic/base.scss +1 -1
- package/lib/design-tokens/scss/tokens/functional/components/sub-nav/base.scss +1 -1
- package/lib/design-tokens/scss/tokens/functional/components/tabs/base.scss +1 -1
- package/lib/design-tokens/scss/tokens/functional/components/tabs/colors.scss +1 -1
- package/lib/design-tokens/scss/tokens/functional/components/testimonial/base.scss +1 -1
- package/lib/design-tokens/scss/tokens/functional/components/testimonial/colors.scss +1 -1
- package/lib/design-tokens/scss/tokens/functional/components/text-cursor-animation/base.scss +1 -1
- package/lib/design-tokens/scss/tokens/functional/components/text-cursor-animation/colors.scss +1 -1
- package/lib/design-tokens/scss/tokens/functional/components/timeline/base.scss +1 -1
- package/lib/design-tokens/scss/tokens/functional/components/timeline/colors.scss +1 -1
- package/lib/design-tokens/scss/tokens/functional/components/token/colors.scss +1 -1
- package/lib/design-tokens/scss/tokens/functional/components/tooltip/colors.scss +1 -1
- package/lib/design-tokens/scss/tokens/functional/components/video-player/base.scss +1 -1
- package/lib/design-tokens/scss/tokens/functional/size/border.scss +1 -1
- package/lib/design-tokens/scss/tokens/functional/size/breakpoints.scss +1 -1
- package/lib/design-tokens/scss/tokens/functional/size/size-coarse.scss +1 -1
- package/lib/design-tokens/scss/tokens/functional/size/size-fine.scss +1 -1
- package/lib/design-tokens/scss/tokens/functional/size/size.scss +1 -1
- package/lib/design-tokens/scss/tokens/functional/size/viewport.scss +1 -1
- package/lib/design-tokens/scss/tokens/functional/typography/typography-responsive.scss +1 -1
- package/lib/design-tokens/scss/tokens/functional/typography/typography.scss +1 -1
- package/lib/design-tokens/ts/tokens/base/colors/light.d.ts +1 -1
- package/lib/design-tokens/ts/tokens/base/colors/light.js +1 -1
- package/lib/design-tokens/ts/tokens/base/size/size.d.ts +1 -1
- package/lib/design-tokens/ts/tokens/base/size/size.js +1 -1
- package/lib/design-tokens/ts/tokens/base/typography/typography.d.ts +1 -1
- package/lib/design-tokens/ts/tokens/base/typography/typography.js +1 -1
- package/lib/design-tokens/ts/tokens/functional/animation/base.d.ts +1 -1
- package/lib/design-tokens/ts/tokens/functional/animation/base.js +1 -1
- package/lib/design-tokens/ts/tokens/functional/colors/global.d.ts +1 -1
- package/lib/design-tokens/ts/tokens/functional/colors/global.js +1 -1
- package/lib/design-tokens/ts/tokens/functional/components/bento/base.d.ts +1 -1
- package/lib/design-tokens/ts/tokens/functional/components/bento/base.js +1 -1
- package/lib/design-tokens/ts/tokens/functional/components/card/base.d.ts +1 -1
- package/lib/design-tokens/ts/tokens/functional/components/card/base.js +1 -1
- package/lib/design-tokens/ts/tokens/functional/components/card/colors.d.ts +1 -1
- package/lib/design-tokens/ts/tokens/functional/components/card/colors.js +1 -1
- package/lib/design-tokens/ts/tokens/functional/components/comparison-table/comparison-table.d.ts +1 -1
- package/lib/design-tokens/ts/tokens/functional/components/comparison-table/comparison-table.js +1 -1
- package/lib/design-tokens/ts/tokens/functional/components/eyebrow-banner/eyebrow-banner.d.ts +1 -1
- package/lib/design-tokens/ts/tokens/functional/components/eyebrow-banner/eyebrow-banner.js +1 -1
- package/lib/design-tokens/ts/tokens/functional/components/faq/base.d.ts +1 -1
- package/lib/design-tokens/ts/tokens/functional/components/faq/base.js +1 -1
- package/lib/design-tokens/ts/tokens/functional/components/faq/colors.d.ts +1 -1
- package/lib/design-tokens/ts/tokens/functional/components/faq/colors.js +1 -1
- package/lib/design-tokens/ts/tokens/functional/components/faq/faq.d.ts +1 -1
- package/lib/design-tokens/ts/tokens/functional/components/faq/faq.js +1 -1
- package/lib/design-tokens/ts/tokens/functional/components/footer/base.d.ts +1 -1
- package/lib/design-tokens/ts/tokens/functional/components/footer/base.js +1 -1
- package/lib/design-tokens/ts/tokens/functional/components/footer/colors.d.ts +1 -1
- package/lib/design-tokens/ts/tokens/functional/components/footer/colors.js +1 -1
- package/lib/design-tokens/ts/tokens/functional/components/frosted-glass-vfx/base.d.ts +1 -1
- package/lib/design-tokens/ts/tokens/functional/components/frosted-glass-vfx/base.js +1 -1
- package/lib/design-tokens/ts/tokens/functional/components/grid/colors.d.ts +1 -1
- package/lib/design-tokens/ts/tokens/functional/components/grid/colors.js +1 -1
- package/lib/design-tokens/ts/tokens/functional/components/grid/grid.d.ts +1 -1
- package/lib/design-tokens/ts/tokens/functional/components/grid/grid.js +1 -1
- package/lib/design-tokens/ts/tokens/functional/components/hero/base.d.ts +1 -1
- package/lib/design-tokens/ts/tokens/functional/components/hero/base.js +1 -1
- package/lib/design-tokens/ts/tokens/functional/components/icon/colors.d.ts +1 -1
- package/lib/design-tokens/ts/tokens/functional/components/icon/colors.js +1 -1
- package/lib/design-tokens/ts/tokens/functional/components/ide/base.d.ts +1 -1
- package/lib/design-tokens/ts/tokens/functional/components/ide/base.js +1 -1
- package/lib/design-tokens/ts/tokens/functional/components/image/base.d.ts +1 -1
- package/lib/design-tokens/ts/tokens/functional/components/image/base.js +1 -1
- package/lib/design-tokens/ts/tokens/functional/components/inline-code/colors.d.ts +1 -1
- package/lib/design-tokens/ts/tokens/functional/components/inline-code/colors.js +1 -1
- package/lib/design-tokens/ts/tokens/functional/components/inline-link/base.d.ts +1 -1
- package/lib/design-tokens/ts/tokens/functional/components/inline-link/base.js +1 -1
- package/lib/design-tokens/ts/tokens/functional/components/inline-link/colors.d.ts +1 -1
- package/lib/design-tokens/ts/tokens/functional/components/inline-link/colors.js +1 -1
- package/lib/design-tokens/ts/tokens/functional/components/label/colors.d.ts +1 -1
- package/lib/design-tokens/ts/tokens/functional/components/label/colors.js +1 -1
- package/lib/design-tokens/ts/tokens/functional/components/link/colors.d.ts +1 -1
- package/lib/design-tokens/ts/tokens/functional/components/link/colors.js +1 -1
- package/lib/design-tokens/ts/tokens/functional/components/logosuite/base.d.ts +1 -1
- package/lib/design-tokens/ts/tokens/functional/components/logosuite/base.js +1 -1
- package/lib/design-tokens/ts/tokens/functional/components/logosuite/colors.d.ts +1 -1
- package/lib/design-tokens/ts/tokens/functional/components/logosuite/colors.js +1 -1
- package/lib/design-tokens/ts/tokens/functional/components/media-playlist/colors.d.ts +1 -1
- package/lib/design-tokens/ts/tokens/functional/components/media-playlist/colors.js +1 -1
- package/lib/design-tokens/ts/tokens/functional/components/pricing-options/colors.d.ts +1 -1
- package/lib/design-tokens/ts/tokens/functional/components/pricing-options/colors.js +1 -1
- package/lib/design-tokens/ts/tokens/functional/components/pricing-options/pricing-options.d.ts +1 -1
- package/lib/design-tokens/ts/tokens/functional/components/pricing-options/pricing-options.js +1 -1
- package/lib/design-tokens/ts/tokens/functional/components/prose/base.d.ts +1 -1
- package/lib/design-tokens/ts/tokens/functional/components/prose/base.js +1 -1
- package/lib/design-tokens/ts/tokens/functional/components/river/base.d.ts +1 -1
- package/lib/design-tokens/ts/tokens/functional/components/river/base.js +1 -1
- package/lib/design-tokens/ts/tokens/functional/components/river/river.d.ts +1 -1
- package/lib/design-tokens/ts/tokens/functional/components/river/river.js +1 -1
- package/lib/design-tokens/ts/tokens/functional/components/section/section.d.ts +1 -1
- package/lib/design-tokens/ts/tokens/functional/components/section/section.js +1 -1
- package/lib/design-tokens/ts/tokens/functional/components/statistic/base.d.ts +1 -1
- package/lib/design-tokens/ts/tokens/functional/components/statistic/base.js +1 -1
- package/lib/design-tokens/ts/tokens/functional/components/sub-nav/base.d.ts +1 -1
- package/lib/design-tokens/ts/tokens/functional/components/sub-nav/base.js +1 -1
- package/lib/design-tokens/ts/tokens/functional/components/tabs/base.d.ts +1 -1
- package/lib/design-tokens/ts/tokens/functional/components/tabs/base.js +1 -1
- package/lib/design-tokens/ts/tokens/functional/components/tabs/colors.d.ts +1 -1
- package/lib/design-tokens/ts/tokens/functional/components/tabs/colors.js +1 -1
- package/lib/design-tokens/ts/tokens/functional/components/testimonial/base.d.ts +1 -1
- package/lib/design-tokens/ts/tokens/functional/components/testimonial/base.js +1 -1
- package/lib/design-tokens/ts/tokens/functional/components/testimonial/colors.d.ts +1 -1
- package/lib/design-tokens/ts/tokens/functional/components/testimonial/colors.js +1 -1
- package/lib/design-tokens/ts/tokens/functional/components/text-cursor-animation/base.d.ts +1 -1
- package/lib/design-tokens/ts/tokens/functional/components/text-cursor-animation/base.js +1 -1
- package/lib/design-tokens/ts/tokens/functional/components/text-cursor-animation/colors.d.ts +1 -1
- package/lib/design-tokens/ts/tokens/functional/components/text-cursor-animation/colors.js +1 -1
- package/lib/design-tokens/ts/tokens/functional/components/timeline/base.d.ts +1 -1
- package/lib/design-tokens/ts/tokens/functional/components/timeline/base.js +1 -1
- package/lib/design-tokens/ts/tokens/functional/components/timeline/colors.d.ts +1 -1
- package/lib/design-tokens/ts/tokens/functional/components/timeline/colors.js +1 -1
- package/lib/design-tokens/ts/tokens/functional/components/token/colors.d.ts +1 -1
- package/lib/design-tokens/ts/tokens/functional/components/token/colors.js +1 -1
- package/lib/design-tokens/ts/tokens/functional/components/tooltip/colors.d.ts +1 -1
- package/lib/design-tokens/ts/tokens/functional/components/tooltip/colors.js +1 -1
- package/lib/design-tokens/ts/tokens/functional/components/video-player/base.d.ts +1 -1
- package/lib/design-tokens/ts/tokens/functional/components/video-player/base.js +1 -1
- package/lib/design-tokens/ts/tokens/functional/size/border.d.ts +1 -1
- package/lib/design-tokens/ts/tokens/functional/size/border.js +1 -1
- package/lib/design-tokens/ts/tokens/functional/size/breakpoints.d.ts +1 -1
- package/lib/design-tokens/ts/tokens/functional/size/breakpoints.js +1 -1
- package/lib/design-tokens/ts/tokens/functional/size/size-coarse.d.ts +1 -1
- package/lib/design-tokens/ts/tokens/functional/size/size-coarse.js +1 -1
- package/lib/design-tokens/ts/tokens/functional/size/size-fine.d.ts +1 -1
- package/lib/design-tokens/ts/tokens/functional/size/size-fine.js +1 -1
- package/lib/design-tokens/ts/tokens/functional/size/size.d.ts +1 -1
- package/lib/design-tokens/ts/tokens/functional/size/size.js +1 -1
- package/lib/design-tokens/ts/tokens/functional/size/viewport.d.ts +1 -1
- package/lib/design-tokens/ts/tokens/functional/size/viewport.js +1 -1
- package/lib/design-tokens/ts/tokens/functional/typography/typography-responsive.d.ts +1 -1
- package/lib/design-tokens/ts/tokens/functional/typography/typography-responsive.js +1 -1
- package/lib/design-tokens/ts/tokens/functional/typography/typography.d.ts +1 -1
- package/lib/design-tokens/ts/tokens/functional/typography/typography.js +1 -1
- package/lib/forms/FormControl/FormControl.d.ts +5 -5
- package/lib/forms/Select/Select.d.ts +2 -2
- package/lib/index.js +1 -1
- package/lib/list/OrderedList/OrderedList.d.ts +2 -2
- package/lib/list/UnorderedList/UnorderedList.d.ts +2 -2
- package/lib/river/RiverAccordion/RiverAccordion.d.ts +4 -4
- package/lib/river/RiverBreakout/RiverBreakout.d.ts +1 -1
- package/lib/river/RiverBreakoutTabs/RiverBreakoutTabs.d.ts +5 -5
- package/lib/river/RiverStoryScroll/RiverStoryScroll.d.ts +1 -1
- package/lib/river/RiverStoryScroll/RiverStoryScrollProvider.d.ts +2 -2
- package/lib/river/RiverStoryScroll/RiverStoryScrollResponder.d.ts +1 -1
- package/lib/river/RiverStoryScroll/RiverStoryScrollTracker.d.ts +1 -1
- package/llms.txt +2 -2
- package/package.json +24 -24
- package/esm/SubdomainNavBar/SubdomainNavBar.module-Rf4qEDka.css +0 -1
- package/esm/node_modules/@primer/octicons-react/dist/index.esm.js +0 -434
- package/esm/node_modules/@primer/octicons-react/dist/index.esm.js.map +0 -1
- package/esm/packages/design-tokens/lib/design-tokens/css/tokens/functional/components/subdomain-nav-bar/colors-with-modes-ehJCoExh.css +0 -1
package/esm/Tabs/Tabs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tabs.js","names":[],"sources":["../../src/Tabs/Tabs.tsx"],"sourcesContent":["import React, {\n memo,\n ReactNode,\n forwardRef,\n Children,\n isValidElement,\n cloneElement,\n useRef,\n useEffect,\n HTMLAttributes,\n useCallback,\n} from 'react'\nimport {clsx} from 'clsx'\nimport {ChevronLeftIcon, ChevronRightIcon} from '@primer/octicons-react'\nimport {useTabs} from '../hooks/useTabs'\nimport {useProvidedRefOrCreate} from '../hooks/useRef'\nimport {BaseProps} from '../component-helpers'\nimport {Animate, AnimationProvider, AnimationVariants} from '../animation'\nimport {Text} from '../Text'\nimport {Stack} from '../Stack'\n\n/**\n * Design tokens\n */\nimport '@primer/brand-primitives/lib/design-tokens/css/tokens/functional/components/tabs/base.css'\nimport '@primer/brand-primitives/lib/design-tokens/css/tokens/functional/components/tabs/colors-with-modes.css'\n\n/** * Main Stylesheet (as a CSS Module) */\nimport styles from './Tabs.module.css'\n\nconst testIds = {\n root: 'Tabs',\n get tab() {\n return `${this.root}-tab`\n },\n get panel() {\n return `${this.root}-panel`\n },\n get indicators() {\n return `${this.root}-indicators`\n },\n}\n\n/**\n * Accessible label for the entire tabs component, used by screen readers to describe the tab group.\n * Note: Only use one of `aria-label` or `aria-labelled` by. Not both or neither.\n */\ntype LabelOrLabelledBy =\n | {'aria-label': string; 'aria-labelledby'?: never}\n | {'aria-labelledby': string; 'aria-label'?: never}\n\nexport type TabsProps = {\n /**\n * Visual style variant of the tabs. Affects the appearance and styling theme.\n */\n variant?: 'default' | 'accent' | 'underline'\n /**\n * Horizontal alignment of the tab navigation. Defaults to 'start'.\n */\n align?: 'start' | 'center'\n /**\n * Named children to be rendered as tab items and panels.\n */\n children: ReactNode\n /**\n * Sets the default active tab. \"0\" (first tab) by default.\n */\n defaultActiveTab?: string\n /**\n * Callback function triggered when the active tab changes. Receives the new active tab identifier.\n */\n onChange?: (activeTab: string) => void\n\n /**\n * Additional CSS class names to apply to the tabs container for custom styling.\n */\n className?: string\n /**\n * @param internalAccessibleLabels - Customizable labels for screen readers to improve accessibility. These are applied internally using the aria-label attribute.\n * @param internalAccessibleLabels.controlsNext - Label for the \"next tab\" control button, used by screen readers. Default is \"Next tab\".\n * @param internalAccessibleLabels.controlsPrev - Label for the \"previous tab\" control button, used by screen readers. Default is \"Previous tab\".\n */\n internalAccessibleLabels?: {\n controlsNext: string\n controlsPrev: string\n }\n} & LabelOrLabelledBy &\n BaseProps<HTMLDivElement> &\n Omit<HTMLAttributes<HTMLDivElement>, 'onChange' | 'aria-label' | 'aria-labelledby'>\n\nconst defaultInternalAccessibleLabels = {\n controlsNext: 'Next tab',\n controlsPrev: 'Previous tab',\n}\n\nconst _TabsRoot = forwardRef<HTMLDivElement, TabsProps>(\n (\n {\n align = 'center',\n children,\n defaultActiveTab,\n onChange,\n variant = 'default',\n className,\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledBy,\n internalAccessibleLabels = defaultInternalAccessibleLabels,\n ...props\n },\n ref,\n ) => {\n const {activeTab, activateTab, getTabListProps, getTabProps, getTabPanelProps} = useTabs({\n defaultTab: defaultActiveTab,\n onTabActivate: onChange,\n })\n const tabsContainerRef = useRef<HTMLDivElement>(null)\n const tabsWrapperRef = useRef<HTMLDivElement>(null)\n const sliderRef = useRef<HTMLDivElement>(null)\n\n const childrenArray = Children.toArray(children)\n\n type TabsItemElement = React.ReactElement<TabsItemProps> & {ref?: React.Ref<HTMLButtonElement>}\n\n const tabs = childrenArray\n .filter((child): child is TabsItemElement => isValidElement<TabsItemProps>(child) && child.type === TabsItem)\n .map((tab, index) => {\n const tabId = String(index)\n const originalRef = tab.ref\n const tabProps = getTabProps<HTMLButtonElement>(tabId, originalRef)\n\n return cloneElement(tab, {\n ...tabProps,\n id: tab.props.id ?? tabProps.id,\n 'aria-controls': tab.props['aria-controls'] ?? tabProps['aria-controls'],\n value: tabId,\n key: tabProps.id,\n isActive: activeTab === tabId,\n variant,\n })\n })\n\n const panels = childrenArray\n .filter(\n (child): child is React.ReactElement<TabsPanelProps> =>\n isValidElement<TabsPanelProps>(child) && child.type === TabsPanel,\n )\n .map((child, index) => {\n const panelId = String(index)\n const tabPanelProps = getTabPanelProps(panelId)\n\n return cloneElement(child, {\n ...tabPanelProps,\n id: child.props.id ?? tabPanelProps.id,\n key: String(index),\n })\n })\n\n useEffect(() => {\n /* istanbul ignore next */\n if (!tabsContainerRef.current || !sliderRef.current) return\n\n const activeTabButton = tabsContainerRef.current.querySelector(`[aria-selected=\"true\"]`) as HTMLButtonElement\n\n if (!activeTab) return\n\n const updateSliderPosition = () => {\n const sliderElement = sliderRef.current\n const tabsContainer = tabsContainerRef.current\n /* istanbul ignore next */\n if (!sliderElement || !tabsContainer) return\n\n const containerPaddingRem = window\n .getComputedStyle(tabsContainer)\n .getPropertyValue('--brand-Tabs-container-padding')\n\n const containerPadding = parseFloat(containerPaddingRem) * 16 // base size\n\n const offsetX = activeTabButton.offsetLeft - containerPadding\n const width = activeTabButton.offsetWidth\n\n sliderElement.style.setProperty('--brand-Tabs-slider-x', `${offsetX}px`)\n sliderElement.style.setProperty('--brand-Tabs-slider-width', `${width}px`)\n }\n\n updateSliderPosition()\n\n const resizeObserver = new ResizeObserver(updateSliderPosition)\n resizeObserver.observe(tabsContainerRef.current)\n\n // On narrow viewports this will scroll the active tab into the center.\n // Important because we show a gradient in dark mode.\n const tabsContainer = tabsContainerRef.current\n const containerWidth = tabsContainer.clientWidth\n const containerPaddingRem = window\n .getComputedStyle(tabsContainer)\n .getPropertyValue('--brand-Tabs-container-padding')\n const containerPadding = parseFloat(containerPaddingRem) * 16\n const tabLeft = activeTabButton.offsetLeft - containerPadding\n const tabWidth = activeTabButton.offsetWidth\n const tabCenter = tabLeft + tabWidth / 2\n\n const targetScrollLeft = tabCenter - containerWidth / 2\n\n const maxScrollLeft = tabsContainer.scrollWidth - containerWidth // defines boudnary\n const finalScrollLeft = Math.max(0, Math.min(targetScrollLeft, maxScrollLeft))\n\n tabsContainer.scrollTo({\n left: finalScrollLeft,\n behavior: 'smooth',\n })\n\n return () => {\n resizeObserver.disconnect()\n }\n }, [activeTab])\n\n // Tracks the overflow state for mobile gradient visibility\n // Should only appear when enough items trigger an overflow\n // Related to gradient functionality\n useEffect(() => {\n const tabsContainer = tabsContainerRef.current\n const wrapperElement = tabsWrapperRef.current\n /* istanbul ignore next */\n if (!tabsContainer || !wrapperElement) return\n\n // This relies heavily on layout and measurement and, as such, isn't practical to test\n /* istanbul ignore next */\n const updateScrollState = () => {\n const {scrollLeft, scrollWidth, clientWidth} = tabsContainer\n const hasOverflow = scrollWidth > clientWidth\n\n const canScrollRight = hasOverflow && scrollLeft < scrollWidth - clientWidth - 1\n\n // Set CSS variables on the wrapper element for the gradient\n wrapperElement.style.setProperty('--scroll-offset', `${scrollLeft}px`)\n wrapperElement.style.setProperty('--has-overflow', hasOverflow ? '1' : '0')\n wrapperElement.style.setProperty('--can-scroll-right', canScrollRight ? '1' : '0')\n }\n\n updateScrollState()\n const resizeObserver = new ResizeObserver(updateScrollState)\n resizeObserver.observe(tabsContainer)\n\n // eslint-disable-next-line github/prefer-observers\n tabsContainer.addEventListener('scroll', updateScrollState)\n\n return () => {\n tabsContainer.removeEventListener('scroll', updateScrollState)\n resizeObserver.disconnect()\n }\n }, [tabs])\n\n /**\n * The LabelOrLabelledBy type guarantees that, if ariaLabel isn't a string,\n * then ariaLabelledBy is guaranteed to be a string, and vice versa.\n */\n const accessibleLabel = typeof ariaLabel === 'string' ? {label: ariaLabel} : {labelledBy: ariaLabelledBy}\n const tabListProps = getTabListProps(accessibleLabel)\n\n const handleNextTabControl = useCallback(() => {\n if (activeTab && activeTab !== String(tabs.length - 1)) {\n activateTab(String(Number(activeTab) + 1))\n }\n }, [activeTab, activateTab, tabs])\n\n const handlePrevTabControl = useCallback(() => {\n if (activeTab && activeTab !== '0') {\n activateTab(String(Number(activeTab) - 1))\n }\n }, [activeTab, activateTab])\n\n const hasMoreThanTwoTabs = tabs.length >= 3\n const isLastTabActive = String(tabs.length - 1) === activeTab\n\n return (\n <div\n className={clsx(\n styles['Tabs-container'],\n styles[`Tabs-container--align-${align}`],\n isLastTabActive && styles['Tabs-container--lastTabIsActive'],\n className,\n )}\n ref={ref}\n data-testid={testIds.root}\n {...props}\n >\n {/* Narrow only indicators and controls */}\n {tabs.length >= 3 && (\n <div className={styles.Tabs__controls} data-testid={testIds.indicators}>\n <Stack direction=\"horizontal\" padding=\"none\" justifyContent=\"space-between\">\n <button\n onClick={handlePrevTabControl}\n className={styles.Tabs__control}\n aria-label={internalAccessibleLabels.controlsPrev}\n >\n <Text size=\"100\">\n <ChevronLeftIcon size={16} className={styles['Tabs__control-icon']} />\n </Text>\n </button>\n <Stack direction=\"horizontal\" gap={4} padding=\"none\" justifyContent=\"space-between\" alignItems=\"center\">\n {tabs.map((_, index) => {\n return (\n <div\n key={index}\n className={clsx(\n styles.Tabs__indicator,\n activeTab && Number(activeTab) === index && styles['Tabs__indicator--active'],\n )}\n />\n )\n })}\n </Stack>\n <button\n onClick={handleNextTabControl}\n className={styles.Tabs__control}\n aria-label={internalAccessibleLabels.controlsNext}\n >\n <Text size=\"100\">\n <ChevronRightIcon size={16} className={styles['Tabs__control-icon']} />\n </Text>\n </button>\n </Stack>\n </div>\n )}\n\n <div\n ref={tabsWrapperRef}\n className={clsx(\n styles['Tablist__wrapper'],\n styles[`Tablist__wrapper--${variant}`],\n isLastTabActive && styles['Tablist__wrapper--lastTabIsActive'],\n )}\n >\n <div\n ref={tabsContainerRef}\n {...tabListProps}\n className={clsx(\n styles.Tabs,\n styles[`Tabs--${variant}`],\n hasMoreThanTwoTabs && styles['Tabs--hasMoreThanTwoTabs'],\n )}\n >\n <div ref={sliderRef} className={styles.Tabs__slider} aria-hidden />\n {tabs}\n </div>\n </div>\n\n {panels.length > 0 && <div className={styles['Tabs__panelContainer']}>{panels}</div>}\n </div>\n )\n },\n)\n\nexport type TabsItemProps = {\n children: ReactNode\n className?: string\n isActive?: boolean\n variant?: 'default' | 'accent' | 'underline'\n /**\n * ⚠️ WARNING: Setting a custom id will override the automatically generated ARIA attributes\n * (aria-controls, aria-labelledby). You will need to manually implement proper accessibility\n * relationships between tabs and panels.\n * @see https://primer.style/brand/components/Tabs/#custom-panels\n */\n id?: string\n} & Omit<React.ComponentPropsWithoutRef<'button'>, 'id'>\n\nconst TabsItem = forwardRef<HTMLButtonElement, TabsItemProps>(\n ({children, className, isActive, variant, ...props}, ref) => {\n const tabRef = useProvidedRefOrCreate(ref)\n\n return (\n <button\n ref={tabRef}\n className={clsx(\n styles.Tabs__item,\n isActive && styles['Tabs__item--active'],\n variant && styles[`Tabs__item--${variant}`],\n className,\n )}\n data-testid={testIds.tab}\n {...props}\n >\n {children}\n </button>\n )\n },\n)\n\nexport type TabsPanelProps = {\n children: ReactNode\n className?: string\n animation?: (typeof AnimationVariants)[number] | false\n hidden?: boolean\n /**\n * ⚠️ WARNING: Setting a custom id will override the automatically generated ARIA attributes\n * (aria-controls, aria-labelledby). You will need to manually implement proper accessibility\n * relationships between tabs and panels.\n * @see https://primer.style/brand/components/Tabs/#custom-panels\n */\n id?: string\n} & Omit<React.HTMLAttributes<HTMLDivElement>, 'id'>\n\nconst TabsPanel = memo(function TabsPanel({\n children,\n animation = false,\n className,\n\n hidden,\n ...rest\n}: TabsPanelProps) {\n const conditionalRender = animation ? (\n <AnimationProvider autoStaggerChildren={false}>\n <Animate animate={animation}>{children}</Animate>\n </AnimationProvider>\n ) : (\n children\n )\n\n return (\n <div className={clsx(styles['Tabs__panel'], className)} data-testid={testIds.panel} hidden={hidden} {...rest}>\n {conditionalRender}\n </div>\n )\n})\n\n/**\n * Use Tabs to display a list of tabs with associated content panels.\n * @see https://primer.style/brand/components/Tabs\n */\nexport const Tabs = Object.assign(_TabsRoot, {\n Item: TabsItem,\n Panel: TabsPanel,\n testIds,\n})\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Tabs.js","names":[],"sources":["../../src/Tabs/Tabs.tsx"],"sourcesContent":["import React, {\n memo,\n ReactNode,\n forwardRef,\n Children,\n isValidElement,\n cloneElement,\n useRef,\n useEffect,\n HTMLAttributes,\n useCallback,\n} from 'react'\nimport {clsx} from 'clsx'\nimport {ChevronLeftIcon, ChevronRightIcon} from '@primer/octicons-react'\nimport {useTabs} from '../hooks/useTabs'\nimport {useProvidedRefOrCreate} from '../hooks/useRef'\nimport {BaseProps} from '../component-helpers'\nimport {Animate, AnimationProvider, AnimationVariants} from '../animation'\nimport {Text} from '../Text'\nimport {Stack} from '../Stack'\n\n/**\n * Design tokens\n */\nimport '@primer/brand-primitives/lib/design-tokens/css/tokens/functional/components/tabs/base.css'\nimport '@primer/brand-primitives/lib/design-tokens/css/tokens/functional/components/tabs/colors-with-modes.css'\n\n/** * Main Stylesheet (as a CSS Module) */\nimport styles from './Tabs.module.css'\n\nconst testIds = {\n root: 'Tabs',\n get tab() {\n return `${this.root}-tab`\n },\n get panel() {\n return `${this.root}-panel`\n },\n get indicators() {\n return `${this.root}-indicators`\n },\n}\n\n/**\n * Accessible label for the entire tabs component, used by screen readers to describe the tab group.\n * Note: Only use one of `aria-label` or `aria-labelled` by. Not both or neither.\n */\ntype LabelOrLabelledBy =\n | {'aria-label': string; 'aria-labelledby'?: never}\n | {'aria-labelledby': string; 'aria-label'?: never}\n\nexport type TabsProps = {\n /**\n * Visual style variant of the tabs. Affects the appearance and styling theme.\n */\n variant?: 'default' | 'accent' | 'underline'\n /**\n * Horizontal alignment of the tab navigation. Defaults to 'start'.\n */\n align?: 'start' | 'center'\n /**\n * Named children to be rendered as tab items and panels.\n */\n children: ReactNode\n /**\n * Sets the default active tab. \"0\" (first tab) by default.\n */\n defaultActiveTab?: string\n /**\n * Callback function triggered when the active tab changes. Receives the new active tab identifier.\n */\n onChange?: (activeTab: string) => void\n\n /**\n * Additional CSS class names to apply to the tabs container for custom styling.\n */\n className?: string\n /**\n * @param internalAccessibleLabels - Customizable labels for screen readers to improve accessibility. These are applied internally using the aria-label attribute.\n * @param internalAccessibleLabels.controlsNext - Label for the \"next tab\" control button, used by screen readers. Default is \"Next tab\".\n * @param internalAccessibleLabels.controlsPrev - Label for the \"previous tab\" control button, used by screen readers. Default is \"Previous tab\".\n */\n internalAccessibleLabels?: {\n controlsNext: string\n controlsPrev: string\n }\n} & LabelOrLabelledBy &\n BaseProps<HTMLDivElement> &\n Omit<HTMLAttributes<HTMLDivElement>, 'onChange' | 'aria-label' | 'aria-labelledby'>\n\nconst defaultInternalAccessibleLabels = {\n controlsNext: 'Next tab',\n controlsPrev: 'Previous tab',\n}\n\nconst _TabsRoot = forwardRef<HTMLDivElement, TabsProps>(\n (\n {\n align = 'center',\n children,\n defaultActiveTab,\n onChange,\n variant = 'default',\n className,\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledBy,\n internalAccessibleLabels = defaultInternalAccessibleLabels,\n ...props\n },\n ref,\n ) => {\n const {activeTab, activateTab, getTabListProps, getTabProps, getTabPanelProps} = useTabs({\n defaultTab: defaultActiveTab,\n onTabActivate: onChange,\n })\n const tabsContainerRef = useRef<HTMLDivElement>(null)\n const tabsWrapperRef = useRef<HTMLDivElement>(null)\n const sliderRef = useRef<HTMLDivElement>(null)\n\n const childrenArray = Children.toArray(children)\n\n type TabsItemElement = React.ReactElement<TabsItemProps> & {ref?: React.Ref<HTMLButtonElement>}\n\n const tabs = childrenArray\n .filter((child): child is TabsItemElement => isValidElement<TabsItemProps>(child) && child.type === TabsItem)\n .map((tab, index) => {\n const tabId = String(index)\n const originalRef = tab.ref\n const tabProps = getTabProps<HTMLButtonElement>(tabId, originalRef)\n\n return cloneElement(tab, {\n ...tabProps,\n id: tab.props.id ?? tabProps.id,\n 'aria-controls': tab.props['aria-controls'] ?? tabProps['aria-controls'],\n value: tabId,\n key: tabProps.id,\n isActive: activeTab === tabId,\n variant,\n })\n })\n\n const panels = childrenArray\n .filter(\n (child): child is React.ReactElement<TabsPanelProps> =>\n isValidElement<TabsPanelProps>(child) && child.type === TabsPanel,\n )\n .map((child, index) => {\n const panelId = String(index)\n const tabPanelProps = getTabPanelProps(panelId)\n\n return cloneElement(child, {\n ...tabPanelProps,\n id: child.props.id ?? tabPanelProps.id,\n key: String(index),\n })\n })\n\n useEffect(() => {\n /* istanbul ignore next */\n if (!tabsContainerRef.current || !sliderRef.current) return\n\n const activeTabButton = tabsContainerRef.current.querySelector(`[aria-selected=\"true\"]`) as HTMLButtonElement\n\n if (!activeTab) return\n\n const updateSliderPosition = () => {\n const sliderElement = sliderRef.current\n const tabsContainer = tabsContainerRef.current\n /* istanbul ignore next */\n if (!sliderElement || !tabsContainer) return\n\n const containerPaddingRem = window\n .getComputedStyle(tabsContainer)\n .getPropertyValue('--brand-Tabs-container-padding')\n\n const containerPadding = parseFloat(containerPaddingRem) * 16 // base size\n\n const offsetX = activeTabButton.offsetLeft - containerPadding\n const width = activeTabButton.offsetWidth\n\n sliderElement.style.setProperty('--brand-Tabs-slider-x', `${offsetX}px`)\n sliderElement.style.setProperty('--brand-Tabs-slider-width', `${width}px`)\n }\n\n updateSliderPosition()\n\n const resizeObserver = new ResizeObserver(updateSliderPosition)\n resizeObserver.observe(tabsContainerRef.current)\n\n // On narrow viewports this will scroll the active tab into the center.\n // Important because we show a gradient in dark mode.\n const tabsContainer = tabsContainerRef.current\n const containerWidth = tabsContainer.clientWidth\n const containerPaddingRem = window\n .getComputedStyle(tabsContainer)\n .getPropertyValue('--brand-Tabs-container-padding')\n const containerPadding = parseFloat(containerPaddingRem) * 16\n const tabLeft = activeTabButton.offsetLeft - containerPadding\n const tabWidth = activeTabButton.offsetWidth\n const tabCenter = tabLeft + tabWidth / 2\n\n const targetScrollLeft = tabCenter - containerWidth / 2\n\n const maxScrollLeft = tabsContainer.scrollWidth - containerWidth // defines boudnary\n const finalScrollLeft = Math.max(0, Math.min(targetScrollLeft, maxScrollLeft))\n\n tabsContainer.scrollTo({\n left: finalScrollLeft,\n behavior: 'smooth',\n })\n\n return () => {\n resizeObserver.disconnect()\n }\n }, [activeTab])\n\n // Tracks the overflow state for mobile gradient visibility\n // Should only appear when enough items trigger an overflow\n // Related to gradient functionality\n useEffect(() => {\n const tabsContainer = tabsContainerRef.current\n const wrapperElement = tabsWrapperRef.current\n /* istanbul ignore next */\n if (!tabsContainer || !wrapperElement) return\n\n // This relies heavily on layout and measurement and, as such, isn't practical to test\n /* istanbul ignore next */\n const updateScrollState = () => {\n const {scrollLeft, scrollWidth, clientWidth} = tabsContainer\n const hasOverflow = scrollWidth > clientWidth\n\n const canScrollRight = hasOverflow && scrollLeft < scrollWidth - clientWidth - 1\n\n // Set CSS variables on the wrapper element for the gradient\n wrapperElement.style.setProperty('--scroll-offset', `${scrollLeft}px`)\n wrapperElement.style.setProperty('--has-overflow', hasOverflow ? '1' : '0')\n wrapperElement.style.setProperty('--can-scroll-right', canScrollRight ? '1' : '0')\n }\n\n updateScrollState()\n const resizeObserver = new ResizeObserver(updateScrollState)\n resizeObserver.observe(tabsContainer)\n\n // eslint-disable-next-line github/prefer-observers\n tabsContainer.addEventListener('scroll', updateScrollState)\n\n return () => {\n tabsContainer.removeEventListener('scroll', updateScrollState)\n resizeObserver.disconnect()\n }\n }, [tabs])\n\n /**\n * The LabelOrLabelledBy type guarantees that, if ariaLabel isn't a string,\n * then ariaLabelledBy is guaranteed to be a string, and vice versa.\n */\n const accessibleLabel = typeof ariaLabel === 'string' ? {label: ariaLabel} : {labelledBy: ariaLabelledBy}\n const tabListProps = getTabListProps(accessibleLabel)\n\n const handleNextTabControl = useCallback(() => {\n if (activeTab && activeTab !== String(tabs.length - 1)) {\n activateTab(String(Number(activeTab) + 1))\n }\n }, [activeTab, activateTab, tabs])\n\n const handlePrevTabControl = useCallback(() => {\n if (activeTab && activeTab !== '0') {\n activateTab(String(Number(activeTab) - 1))\n }\n }, [activeTab, activateTab])\n\n const hasMoreThanTwoTabs = tabs.length >= 3\n const isLastTabActive = String(tabs.length - 1) === activeTab\n\n return (\n <div\n className={clsx(\n styles['Tabs-container'],\n styles[`Tabs-container--align-${align}`],\n isLastTabActive && styles['Tabs-container--lastTabIsActive'],\n className,\n )}\n ref={ref}\n data-testid={testIds.root}\n {...props}\n >\n {/* Narrow only indicators and controls */}\n {tabs.length >= 3 && (\n <div className={styles.Tabs__controls} data-testid={testIds.indicators}>\n <Stack direction=\"horizontal\" padding=\"none\" justifyContent=\"space-between\">\n <button\n onClick={handlePrevTabControl}\n className={styles.Tabs__control}\n aria-label={internalAccessibleLabels.controlsPrev}\n >\n <Text size=\"100\">\n <ChevronLeftIcon size={16} className={styles['Tabs__control-icon']} />\n </Text>\n </button>\n <Stack direction=\"horizontal\" gap={4} padding=\"none\" justifyContent=\"space-between\" alignItems=\"center\">\n {tabs.map((_, index) => {\n return (\n <div\n key={index}\n className={clsx(\n styles.Tabs__indicator,\n activeTab && Number(activeTab) === index && styles['Tabs__indicator--active'],\n )}\n />\n )\n })}\n </Stack>\n <button\n onClick={handleNextTabControl}\n className={styles.Tabs__control}\n aria-label={internalAccessibleLabels.controlsNext}\n >\n <Text size=\"100\">\n <ChevronRightIcon size={16} className={styles['Tabs__control-icon']} />\n </Text>\n </button>\n </Stack>\n </div>\n )}\n\n <div\n ref={tabsWrapperRef}\n className={clsx(\n styles['Tablist__wrapper'],\n styles[`Tablist__wrapper--${variant}`],\n isLastTabActive && styles['Tablist__wrapper--lastTabIsActive'],\n )}\n >\n <div\n ref={tabsContainerRef}\n {...tabListProps}\n className={clsx(\n styles.Tabs,\n styles[`Tabs--${variant}`],\n hasMoreThanTwoTabs && styles['Tabs--hasMoreThanTwoTabs'],\n )}\n >\n <div ref={sliderRef} className={styles.Tabs__slider} aria-hidden />\n {tabs}\n </div>\n </div>\n\n {panels.length > 0 && <div className={styles['Tabs__panelContainer']}>{panels}</div>}\n </div>\n )\n },\n)\n\nexport type TabsItemProps = {\n children: ReactNode\n className?: string\n isActive?: boolean\n variant?: 'default' | 'accent' | 'underline'\n /**\n * ⚠️ WARNING: Setting a custom id will override the automatically generated ARIA attributes\n * (aria-controls, aria-labelledby). You will need to manually implement proper accessibility\n * relationships between tabs and panels.\n * @see https://primer.style/brand/components/Tabs/#custom-panels\n */\n id?: string\n} & Omit<React.ComponentPropsWithoutRef<'button'>, 'id'>\n\nconst TabsItem = forwardRef<HTMLButtonElement, TabsItemProps>(\n ({children, className, isActive, variant, ...props}, ref) => {\n const tabRef = useProvidedRefOrCreate(ref)\n\n return (\n <button\n ref={tabRef}\n className={clsx(\n styles.Tabs__item,\n isActive && styles['Tabs__item--active'],\n variant && styles[`Tabs__item--${variant}`],\n className,\n )}\n data-testid={testIds.tab}\n {...props}\n >\n {children}\n </button>\n )\n },\n)\n\nexport type TabsPanelProps = {\n children: ReactNode\n className?: string\n animation?: (typeof AnimationVariants)[number] | false\n hidden?: boolean\n /**\n * ⚠️ WARNING: Setting a custom id will override the automatically generated ARIA attributes\n * (aria-controls, aria-labelledby). You will need to manually implement proper accessibility\n * relationships between tabs and panels.\n * @see https://primer.style/brand/components/Tabs/#custom-panels\n */\n id?: string\n} & Omit<React.HTMLAttributes<HTMLDivElement>, 'id'>\n\nconst TabsPanel = memo(function TabsPanelComponent({\n children,\n animation = false,\n className,\n\n hidden,\n ...rest\n}: TabsPanelProps) {\n const conditionalRender = animation ? (\n <AnimationProvider autoStaggerChildren={false}>\n <Animate animate={animation}>{children}</Animate>\n </AnimationProvider>\n ) : (\n children\n )\n\n return (\n <div className={clsx(styles['Tabs__panel'], className)} data-testid={testIds.panel} hidden={hidden} {...rest}>\n {conditionalRender}\n </div>\n )\n})\n\n/**\n * Use Tabs to display a list of tabs with associated content panels.\n * @see https://primer.style/brand/components/Tabs\n */\nexport const Tabs = Object.assign(_TabsRoot, {\n Item: TabsItem,\n Panel: TabsPanel,\n testIds,\n})\n"],"mappings":"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"}
|
package/esm/Tabs/Tabs.module.js
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import './Tabs.module-CK_p1qwC.css'
|
|
2
|
-
|
|
1
|
+
import './Tabs.module-CK_p1qwC.css';//#region src/Tabs/Tabs.module.css
|
|
2
|
+
var e = "Primer_Brand__Tabs-module__Tabs___zia5x", t = "Primer_Brand__Tabs-module__Tablist__wrapper___MDIB8", n = "Primer_Brand__Tabs-module__Tabs__item___4V44f", r = "Primer_Brand__Tabs-module__Tabs__slider___tkaHu", i = "Primer_Brand__Tabs-module__Tabs__panelContainer___WhkhR", a = "Primer_Brand__Tabs-module__Tabs__panel___UdoZQ", o = "Primer_Brand__Tabs-module__Tabs__controls___Cg7GX", s = "Primer_Brand__Tabs-module__Tabs__indicator___Tmwuv", c = "Primer_Brand__Tabs-module__Tabs__control___xG_4C", l = {
|
|
3
|
+
Tabs: e,
|
|
3
4
|
"Tabs-container": "Primer_Brand__Tabs-module__Tabs-container___wuq7I",
|
|
4
5
|
"Tabs-container--align-start": "Primer_Brand__Tabs-module__Tabs-container--align-start___n0cXk",
|
|
5
6
|
"Tabs-container--align-center": "Primer_Brand__Tabs-module__Tabs-container--align-center___LjUrd",
|
|
6
|
-
Tablist__wrapper:
|
|
7
|
+
Tablist__wrapper: t,
|
|
7
8
|
"Tablist__wrapper--default": "Primer_Brand__Tabs-module__Tablist__wrapper--default___Wdb55",
|
|
8
9
|
"Tablist__wrapper--accent": "Primer_Brand__Tabs-module__Tablist__wrapper--accent___QV6Jx",
|
|
9
10
|
"Tablist__wrapper--underline": "Primer_Brand__Tabs-module__Tablist__wrapper--underline___IZ_zV",
|
|
@@ -11,18 +12,18 @@ import './Tabs.module-CK_p1qwC.css';var e = {
|
|
|
11
12
|
"Tabs--default": "Primer_Brand__Tabs-module__Tabs--default___MUcm6",
|
|
12
13
|
"Tabs--accent": "Primer_Brand__Tabs-module__Tabs--accent___p1SQc",
|
|
13
14
|
"Tabs--underline": "Primer_Brand__Tabs-module__Tabs--underline___CAXqd",
|
|
14
|
-
Tabs__item:
|
|
15
|
-
Tabs__slider:
|
|
15
|
+
Tabs__item: n,
|
|
16
|
+
Tabs__slider: r,
|
|
16
17
|
"Tabs__item--active": "Primer_Brand__Tabs-module__Tabs__item--active___Guj0b",
|
|
17
|
-
Tabs__panelContainer:
|
|
18
|
-
Tabs__panel:
|
|
19
|
-
Tabs__controls:
|
|
20
|
-
Tabs__indicator:
|
|
18
|
+
Tabs__panelContainer: i,
|
|
19
|
+
Tabs__panel: a,
|
|
20
|
+
Tabs__controls: o,
|
|
21
|
+
Tabs__indicator: s,
|
|
21
22
|
"Tabs__indicator--active": "Primer_Brand__Tabs-module__Tabs__indicator--active___h_TV1",
|
|
22
|
-
Tabs__control:
|
|
23
|
+
Tabs__control: c,
|
|
23
24
|
"Tabs__control-icon": "Primer_Brand__Tabs-module__Tabs__control-icon___V9mNe"
|
|
24
25
|
};
|
|
25
26
|
//#endregion
|
|
26
|
-
export { e as default };
|
|
27
|
+
export { t as Tablist__wrapper, e as Tabs, c as Tabs__control, o as Tabs__controls, s as Tabs__indicator, n as Tabs__item, a as Tabs__panel, i as Tabs__panelContainer, r as Tabs__slider, l as default };
|
|
27
28
|
|
|
28
29
|
//# sourceMappingURL=Tabs.module.js.map
|
|
@@ -52,7 +52,7 @@ type LogoProps = {
|
|
|
52
52
|
* Testimonial avatar child element
|
|
53
53
|
* <Testimonial.Avatar>
|
|
54
54
|
*/
|
|
55
|
-
declare function _Avatar({ size, ...rest }: AvatarProps):
|
|
55
|
+
declare function _Avatar({ size, ...rest }: AvatarProps): React.JSX.Element;
|
|
56
56
|
/**
|
|
57
57
|
* Use Testimonial to display a quote from a customer or user.
|
|
58
58
|
* @see https://primer.style/brand/components/Testimonial
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Testimonial.d.ts","sourceRoot":"","sources":["../../src/Testimonial/Testimonial.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EACZ,cAAc,EAGd,QAAQ,EAGT,MAAM,OAAO,CAAA;AAEd,OAAO,EAAC,SAAS,EAAC,MAAM,sBAAsB,CAAA;AAE9C,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,KAAK,CAAA;AAGpC,OAAO,kGAAkG,CAAA;AACzG,OAAO,+GAA+G,CAAA;AAKtH,KAAK,eAAe,GAAG,OAAO,GAAG,OAAO,CAAA;AAExC,eAAO,MAAM,0BAA0B,8MAA4C,CAAA;AACnF,eAAO,MAAM,qBAAqB,WAAgC,CAAA;AAElE,eAAO,MAAM,mBAAmB,yDAA0D,CAAA;AAC1F,KAAK,kBAAkB,GAAG,CAAC,OAAO,mBAAmB,CAAC,CAAC,MAAM,CAAC,CAAA;AAC9D,eAAO,MAAM,yBAAyB,EAAE,kBAA8B,CAAA;AAEtE,MAAM,MAAM,gBAAgB,GAAG;IAC7B;;OAEG;IACH,OAAO,CAAC,EAAE,kBAAkB,CAAA;IAC5B;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB;;OAEG;IACH,QAAQ,EACJ,KAAK,CAAC,SAAS,GACf,KAAK,CAAC,YAAY,CAAC,UAAU,CAAC,GAC9B,KAAK,CAAC,YAAY,CAAC,SAAS,CAAC,GAC7B,KAAK,CAAC,YAAY,CAAC,WAAW,CAAC,GAC/B,KAAK,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE,CAAA;IACnC;;OAEG;IACH,IAAI,CAAC,EAAE,eAAe,CAAA;IACtB,uCAAuC;IACvC,cAAc,CAAC,EAAE,CAAC,OAAO,0BAA0B,CAAC,CAAC,MAAM,CAAC,CAAA;CAC7D,GAAG,SAAS,CAAC,WAAW,CAAC,GACxB,KAAK,CAAC,cAAc,CAAC,WAAW,CAAC,CAAA;AAmFnC;;;GAGG;AACH,KAAK,UAAU,GAAG,KAAK,CAAC,cAAc,CAAC,WAAW,CAAC,GAAG,SAAS,CAAC,WAAW,CAAC,CAAA;AAY5E;;;GAGG;AACH,KAAK,SAAS,GAAG;IACf,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB,GAAG,KAAK,CAAC,cAAc,CAAC,WAAW,CAAC,GACnC,SAAS,CAAC,WAAW,CAAC,CAAA;AAmBxB;;;GAGG;AACH,KAAK,SAAS,GAAG;IACf,QAAQ,EAAE,KAAK,CAAC,YAAY,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,GAAG,KAAK,CAAC,YAAY,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC,CAAA;CAC7G,GAAG,KAAK,CAAC,cAAc,CAAC,gBAAgB,CAAC,GACxC,SAAS,CAAC,gBAAgB,CAAC,CAAA;AAwB7B;;;GAGG;AAEH,iBAAS,OAAO,CAAC,EAAC,IAAI,EAAE,GAAG,IAAI,EAAC,EAAE,WAAW,
|
|
1
|
+
{"version":3,"file":"Testimonial.d.ts","sourceRoot":"","sources":["../../src/Testimonial/Testimonial.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EACZ,cAAc,EAGd,QAAQ,EAGT,MAAM,OAAO,CAAA;AAEd,OAAO,EAAC,SAAS,EAAC,MAAM,sBAAsB,CAAA;AAE9C,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,KAAK,CAAA;AAGpC,OAAO,kGAAkG,CAAA;AACzG,OAAO,+GAA+G,CAAA;AAKtH,KAAK,eAAe,GAAG,OAAO,GAAG,OAAO,CAAA;AAExC,eAAO,MAAM,0BAA0B,8MAA4C,CAAA;AACnF,eAAO,MAAM,qBAAqB,WAAgC,CAAA;AAElE,eAAO,MAAM,mBAAmB,yDAA0D,CAAA;AAC1F,KAAK,kBAAkB,GAAG,CAAC,OAAO,mBAAmB,CAAC,CAAC,MAAM,CAAC,CAAA;AAC9D,eAAO,MAAM,yBAAyB,EAAE,kBAA8B,CAAA;AAEtE,MAAM,MAAM,gBAAgB,GAAG;IAC7B;;OAEG;IACH,OAAO,CAAC,EAAE,kBAAkB,CAAA;IAC5B;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB;;OAEG;IACH,QAAQ,EACJ,KAAK,CAAC,SAAS,GACf,KAAK,CAAC,YAAY,CAAC,UAAU,CAAC,GAC9B,KAAK,CAAC,YAAY,CAAC,SAAS,CAAC,GAC7B,KAAK,CAAC,YAAY,CAAC,WAAW,CAAC,GAC/B,KAAK,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE,CAAA;IACnC;;OAEG;IACH,IAAI,CAAC,EAAE,eAAe,CAAA;IACtB,uCAAuC;IACvC,cAAc,CAAC,EAAE,CAAC,OAAO,0BAA0B,CAAC,CAAC,MAAM,CAAC,CAAA;CAC7D,GAAG,SAAS,CAAC,WAAW,CAAC,GACxB,KAAK,CAAC,cAAc,CAAC,WAAW,CAAC,CAAA;AAmFnC;;;GAGG;AACH,KAAK,UAAU,GAAG,KAAK,CAAC,cAAc,CAAC,WAAW,CAAC,GAAG,SAAS,CAAC,WAAW,CAAC,CAAA;AAY5E;;;GAGG;AACH,KAAK,SAAS,GAAG;IACf,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB,GAAG,KAAK,CAAC,cAAc,CAAC,WAAW,CAAC,GACnC,SAAS,CAAC,WAAW,CAAC,CAAA;AAmBxB;;;GAGG;AACH,KAAK,SAAS,GAAG;IACf,QAAQ,EAAE,KAAK,CAAC,YAAY,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,GAAG,KAAK,CAAC,YAAY,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC,CAAA;CAC7G,GAAG,KAAK,CAAC,cAAc,CAAC,gBAAgB,CAAC,GACxC,SAAS,CAAC,gBAAgB,CAAC,CAAA;AAwB7B;;;GAGG;AAEH,iBAAS,OAAO,CAAC,EAAC,IAAI,EAAE,GAAG,IAAI,EAAC,EAAE,WAAW,qBAE5C;AAcD;;;GAGG;AACH,eAAO,MAAM,WAAW;;;;;;;;;;;CAMtB,CAAA"}
|
|
@@ -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 { BiColorGradients as t, Colors as n } from "../constants.js";
|
|
3
3
|
import { useAnimation as r } from "../animation/useAnimation.js";
|
|
4
4
|
import { Text as i } from "../Text/Text.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Testimonial.js","names":[],"sources":["../../src/Testimonial/Testimonial.tsx"],"sourcesContent":["import React, {\n HTMLAttributes,\n PropsWithChildren,\n forwardRef,\n SVGProps,\n CSSProperties,\n ComponentPropsWithRef,\n} from 'react'\nimport {clsx} from 'clsx'\nimport {BaseProps} from '../component-helpers'\nimport {Text, Avatar as BaseAvatar, useAnimation} from '../'\nimport type {AvatarProps} from '../'\nimport {Link, type LinkProps} from '../Link'\n\nimport '@primer/brand-primitives/lib/design-tokens/css/tokens/functional/components/testimonial/base.css'\nimport '@primer/brand-primitives/lib/design-tokens/css/tokens/functional/components/testimonial/colors-with-modes.css'\n\nimport styles from './Testimonial.module.css'\nimport {Colors, BiColorGradients} from '../constants'\n\ntype TestimonialSize = 'small' | 'large'\n\nexport const TestimonialQuoteMarkColors = [...Colors, ...BiColorGradients] as const\nexport const defaultQuoteMarkColor = TestimonialQuoteMarkColors[0]\n\nexport const TestimonialVariants = ['subtle', 'default', 'minimal', 'expressive'] as const\ntype TestimonialVariant = (typeof TestimonialVariants)[number]\nexport const defaultTestimonialVariant: TestimonialVariant = 'minimal'\n\nexport type TestimonialProps = {\n /**\n * Sets alternative appearance for the testimonial\n */\n variant?: TestimonialVariant\n /**\n * Applies an optional border where a variant supports it\n */\n hasBorder?: boolean\n /**\n * Valid children include Testimonial.Name, Testimonial.Avatar, and Testimonial.Name\n */\n children:\n | React.ReactNode\n | React.ReactElement<QuoteProps>\n | React.ReactElement<NameProps>\n | React.ReactElement<AvatarProps>\n | React.ReactElement<LogoProps>[]\n /**\n * Sets the testimonial text size\n */\n size?: TestimonialSize\n /** Sets the color of the quote mark */\n quoteMarkColor?: (typeof TestimonialQuoteMarkColors)[number]\n} & BaseProps<HTMLElement> &\n React.HTMLAttributes<HTMLElement>\n\n/**\n * Testimonial parent element\n * <Testimonial>\n */\nfunction TestimonialBase(\n {\n quoteMarkColor,\n animate,\n className,\n children,\n variant = 'minimal',\n hasBorder = true,\n size,\n style,\n ...rest\n }: PropsWithChildren<TestimonialProps>,\n ref,\n) {\n const {classes: animationClasses, styles: animationInlineStyles} = useAnimation(animate)\n\n const resolvedQuoteMarkColor = quoteMarkColor ?? (variant === 'expressive' ? 'green' : 'default')\n\n const quoteMark = (\n <div\n aria-hidden=\"true\"\n className={clsx(\n styles['Testimonial__quoteMark'],\n styles[`Testimonial__quoteMark--${resolvedQuoteMarkColor}`],\n variant === 'expressive' && styles['Testimonial__quoteMark--hasBackground'],\n )}\n >\n <span className={styles['Testimonial__quoteMarkGlyph']}>“</span>\n </div>\n )\n\n const childrenArray = React.Children.toArray(children)\n const findChild = (type: React.ElementType) =>\n childrenArray.find(child => React.isValidElement(child) && child.type === type)\n\n const quoteChild = findChild(Quote)\n const actionChild = findChild(_Link)\n const avatarChild = findChild(Avatar)\n const logoChild = findChild(Logo)\n const nameChild = findChild(Name)\n\n return (\n <figure\n ref={ref}\n className={clsx(\n animationClasses,\n styles['Testimonial'],\n styles[`Testimonial--variant-${variant}`],\n size && styles[`Testimonial--size-${size}`],\n hasBorder && styles['Testimonial--border'],\n variant === 'expressive' && actionChild && styles['Testimonial--hasLink'],\n className,\n )}\n style={{\n ...animationInlineStyles,\n ...style,\n ['--testimonial-accent-color' as keyof CSSProperties]: resolvedQuoteMarkColor,\n }}\n {...rest}\n >\n <div className={styles['Testimonial__quoteWrapper']}>\n {quoteMark}\n {quoteChild}\n {variant !== 'expressive' && actionChild}\n </div>\n <div className={styles['Testimonial__media']}>\n {avatarChild}\n {logoChild}\n {nameChild}\n </div>\n {variant === 'expressive' && actionChild}\n </figure>\n )\n}\n\nconst Root = forwardRef(TestimonialBase)\n\n/**\n * Testimonial quote child element\n * <Testimonial.Quote>\n */\ntype QuoteProps = React.HTMLAttributes<HTMLElement> & BaseProps<HTMLElement>\n\nfunction QuoteBase({children, className}: QuoteProps, ref) {\n return (\n <blockquote ref={ref}>\n <Text className={clsx(styles['Testimonial-quote'], className)}>{children}</Text>\n </blockquote>\n )\n}\n\nconst Quote = forwardRef(QuoteBase)\n\n/**\n * Testimonial name child element\n * <Testimonial.Name>\n */\ntype NameProps = {\n position?: string\n} & React.HTMLAttributes<HTMLElement> &\n BaseProps<HTMLElement>\n\nfunction _Name({children, className, position}: NameProps, ref) {\n return (\n <figcaption ref={ref} className={clsx(styles['Testimonial-caption'], className)}>\n <Text size=\"200\" className={clsx(styles['Testimonial-from'])} font=\"monospace\">\n {children}\n </Text>\n {position && (\n <Text size=\"200\" className={clsx(styles['Testimonial-position'])} variant=\"muted\">\n {position}\n </Text>\n )}\n </figcaption>\n )\n}\n\nconst Name = forwardRef(_Name)\n\n/**\n * Testimonial logo child element\n * <Testimonial.Logo>\n */\ntype LogoProps = {\n children: React.ReactElement<SVGProps<SVGSVGElement>> | React.ReactElement<HTMLAttributes<HTMLImageElement>>\n} & React.HTMLAttributes<HTMLImageElement> &\n BaseProps<HTMLImageElement>\n\nfunction _Logo({children, ...rest}: LogoProps, ref) {\n return (\n <div className={styles['Testimonial-logo']} {...rest}>\n {React.Children.map(children, child => {\n if (React.isValidElement(child)) {\n if (child.type === 'img') {\n const imageChild = child as React.ReactElement<ComponentPropsWithRef<'img'>>\n const imageProps: ComponentPropsWithRef<'img'> = {\n className: clsx(styles['Testimonial-logo-image'], imageChild.props.className),\n ref: ref as ComponentPropsWithRef<'img'>['ref'],\n }\n\n return React.cloneElement(imageChild, imageProps)\n }\n }\n })}\n </div>\n )\n}\n\nconst Logo = forwardRef(_Logo)\n\n/**\n * Testimonial avatar child element\n * <Testimonial.Avatar>\n */\n\nfunction _Avatar({size, ...rest}: AvatarProps) {\n return <BaseAvatar className={clsx(styles['Testimonial-avatar'])} size={48} {...rest} />\n}\n\nconst Avatar = _Avatar\n\n/**\n * Testimonial link child element\n * <Testimonial.Link>\n */\nfunction _LinkBase({className, ...rest}: LinkProps, _ref) {\n return <Link className={clsx(styles['Testimonial-link'], className)} {...rest} size=\"medium\" variant=\"accent\" />\n}\n\nconst _Link = forwardRef(_LinkBase)\n\n/**\n * Use Testimonial to display a quote from a customer or user.\n * @see https://primer.style/brand/components/Testimonial\n */\nexport const Testimonial = Object.assign(Root, {\n Quote,\n Name,\n Avatar,\n Logo,\n Link: _Link,\n})\n"],"mappings":";;;;;;;;;;;;AAsBA,IAAa,IAA6B,CAAC,GAAG,GAAQ,GAAG,
|
|
1
|
+
{"version":3,"file":"Testimonial.js","names":[],"sources":["../../src/Testimonial/Testimonial.tsx"],"sourcesContent":["import React, {\n HTMLAttributes,\n PropsWithChildren,\n forwardRef,\n SVGProps,\n CSSProperties,\n ComponentPropsWithRef,\n} from 'react'\nimport {clsx} from 'clsx'\nimport {BaseProps} from '../component-helpers'\nimport {Text, Avatar as BaseAvatar, useAnimation} from '../'\nimport type {AvatarProps} from '../'\nimport {Link, type LinkProps} from '../Link'\n\nimport '@primer/brand-primitives/lib/design-tokens/css/tokens/functional/components/testimonial/base.css'\nimport '@primer/brand-primitives/lib/design-tokens/css/tokens/functional/components/testimonial/colors-with-modes.css'\n\nimport styles from './Testimonial.module.css'\nimport {Colors, BiColorGradients} from '../constants'\n\ntype TestimonialSize = 'small' | 'large'\n\nexport const TestimonialQuoteMarkColors = [...Colors, ...BiColorGradients] as const\nexport const defaultQuoteMarkColor = TestimonialQuoteMarkColors[0]\n\nexport const TestimonialVariants = ['subtle', 'default', 'minimal', 'expressive'] as const\ntype TestimonialVariant = (typeof TestimonialVariants)[number]\nexport const defaultTestimonialVariant: TestimonialVariant = 'minimal'\n\nexport type TestimonialProps = {\n /**\n * Sets alternative appearance for the testimonial\n */\n variant?: TestimonialVariant\n /**\n * Applies an optional border where a variant supports it\n */\n hasBorder?: boolean\n /**\n * Valid children include Testimonial.Name, Testimonial.Avatar, and Testimonial.Name\n */\n children:\n | React.ReactNode\n | React.ReactElement<QuoteProps>\n | React.ReactElement<NameProps>\n | React.ReactElement<AvatarProps>\n | React.ReactElement<LogoProps>[]\n /**\n * Sets the testimonial text size\n */\n size?: TestimonialSize\n /** Sets the color of the quote mark */\n quoteMarkColor?: (typeof TestimonialQuoteMarkColors)[number]\n} & BaseProps<HTMLElement> &\n React.HTMLAttributes<HTMLElement>\n\n/**\n * Testimonial parent element\n * <Testimonial>\n */\nfunction TestimonialBase(\n {\n quoteMarkColor,\n animate,\n className,\n children,\n variant = 'minimal',\n hasBorder = true,\n size,\n style,\n ...rest\n }: PropsWithChildren<TestimonialProps>,\n ref,\n) {\n const {classes: animationClasses, styles: animationInlineStyles} = useAnimation(animate)\n\n const resolvedQuoteMarkColor = quoteMarkColor ?? (variant === 'expressive' ? 'green' : 'default')\n\n const quoteMark = (\n <div\n aria-hidden=\"true\"\n className={clsx(\n styles['Testimonial__quoteMark'],\n styles[`Testimonial__quoteMark--${resolvedQuoteMarkColor}`],\n variant === 'expressive' && styles['Testimonial__quoteMark--hasBackground'],\n )}\n >\n <span className={styles['Testimonial__quoteMarkGlyph']}>“</span>\n </div>\n )\n\n const childrenArray = React.Children.toArray(children)\n const findChild = (type: React.ElementType) =>\n childrenArray.find(child => React.isValidElement(child) && child.type === type)\n\n const quoteChild = findChild(Quote)\n const actionChild = findChild(_Link)\n const avatarChild = findChild(Avatar)\n const logoChild = findChild(Logo)\n const nameChild = findChild(Name)\n\n return (\n <figure\n ref={ref}\n className={clsx(\n animationClasses,\n styles['Testimonial'],\n styles[`Testimonial--variant-${variant}`],\n size && styles[`Testimonial--size-${size}`],\n hasBorder && styles['Testimonial--border'],\n variant === 'expressive' && actionChild && styles['Testimonial--hasLink'],\n className,\n )}\n style={{\n ...animationInlineStyles,\n ...style,\n ['--testimonial-accent-color' as keyof CSSProperties]: resolvedQuoteMarkColor,\n }}\n {...rest}\n >\n <div className={styles['Testimonial__quoteWrapper']}>\n {quoteMark}\n {quoteChild}\n {variant !== 'expressive' && actionChild}\n </div>\n <div className={styles['Testimonial__media']}>\n {avatarChild}\n {logoChild}\n {nameChild}\n </div>\n {variant === 'expressive' && actionChild}\n </figure>\n )\n}\n\nconst Root = forwardRef(TestimonialBase)\n\n/**\n * Testimonial quote child element\n * <Testimonial.Quote>\n */\ntype QuoteProps = React.HTMLAttributes<HTMLElement> & BaseProps<HTMLElement>\n\nfunction QuoteBase({children, className}: QuoteProps, ref) {\n return (\n <blockquote ref={ref}>\n <Text className={clsx(styles['Testimonial-quote'], className)}>{children}</Text>\n </blockquote>\n )\n}\n\nconst Quote = forwardRef(QuoteBase)\n\n/**\n * Testimonial name child element\n * <Testimonial.Name>\n */\ntype NameProps = {\n position?: string\n} & React.HTMLAttributes<HTMLElement> &\n BaseProps<HTMLElement>\n\nfunction _Name({children, className, position}: NameProps, ref) {\n return (\n <figcaption ref={ref} className={clsx(styles['Testimonial-caption'], className)}>\n <Text size=\"200\" className={clsx(styles['Testimonial-from'])} font=\"monospace\">\n {children}\n </Text>\n {position && (\n <Text size=\"200\" className={clsx(styles['Testimonial-position'])} variant=\"muted\">\n {position}\n </Text>\n )}\n </figcaption>\n )\n}\n\nconst Name = forwardRef(_Name)\n\n/**\n * Testimonial logo child element\n * <Testimonial.Logo>\n */\ntype LogoProps = {\n children: React.ReactElement<SVGProps<SVGSVGElement>> | React.ReactElement<HTMLAttributes<HTMLImageElement>>\n} & React.HTMLAttributes<HTMLImageElement> &\n BaseProps<HTMLImageElement>\n\nfunction _Logo({children, ...rest}: LogoProps, ref) {\n return (\n <div className={styles['Testimonial-logo']} {...rest}>\n {React.Children.map(children, child => {\n if (React.isValidElement(child)) {\n if (child.type === 'img') {\n const imageChild = child as React.ReactElement<ComponentPropsWithRef<'img'>>\n const imageProps: ComponentPropsWithRef<'img'> = {\n className: clsx(styles['Testimonial-logo-image'], imageChild.props.className),\n ref: ref as ComponentPropsWithRef<'img'>['ref'],\n }\n\n return React.cloneElement(imageChild, imageProps)\n }\n }\n })}\n </div>\n )\n}\n\nconst Logo = forwardRef(_Logo)\n\n/**\n * Testimonial avatar child element\n * <Testimonial.Avatar>\n */\n\nfunction _Avatar({size, ...rest}: AvatarProps) {\n return <BaseAvatar className={clsx(styles['Testimonial-avatar'])} size={48} {...rest} />\n}\n\nconst Avatar = _Avatar\n\n/**\n * Testimonial link child element\n * <Testimonial.Link>\n */\nfunction _LinkBase({className, ...rest}: LinkProps, _ref) {\n return <Link className={clsx(styles['Testimonial-link'], className)} {...rest} size=\"medium\" variant=\"accent\" />\n}\n\nconst _Link = forwardRef(_LinkBase)\n\n/**\n * Use Testimonial to display a quote from a customer or user.\n * @see https://primer.style/brand/components/Testimonial\n */\nexport const Testimonial = Object.assign(Root, {\n Quote,\n Name,\n Avatar,\n Logo,\n Link: _Link,\n})\n"],"mappings":"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"}
|
|
@@ -1,20 +1,21 @@
|
|
|
1
|
-
import './Testimonial.module-BEV0y2jl.css'
|
|
2
|
-
|
|
1
|
+
import './Testimonial.module-BEV0y2jl.css';//#region src/Testimonial/Testimonial.module.css
|
|
2
|
+
var e = "Primer_Brand__Testimonial-module__Testimonial___kxB6R", t = "Primer_Brand__Testimonial-module__Testimonial__quoteMark___sC3I2", n = "Primer_Brand__Testimonial-module__Testimonial__quoteMarkGlyph___1eZ5L", r = "Primer_Brand__Testimonial-module__Testimonial__media___rvn7k", i = "Primer_Brand__Testimonial-module__Testimonial__quoteWrapper___vcgUf", a = {
|
|
3
|
+
Testimonial: e,
|
|
3
4
|
"Testimonial--variant-subtle": "Primer_Brand__Testimonial-module__Testimonial--variant-subtle___rmjBe",
|
|
4
5
|
"Testimonial--variant-default": "Primer_Brand__Testimonial-module__Testimonial--variant-default___uNm5S",
|
|
5
6
|
"Testimonial--size-large": "Primer_Brand__Testimonial-module__Testimonial--size-large___NH7Vg",
|
|
6
7
|
"Testimonial--border": "Primer_Brand__Testimonial-module__Testimonial--border___pbUPS",
|
|
7
|
-
Testimonial__quoteMark:
|
|
8
|
+
Testimonial__quoteMark: t,
|
|
8
9
|
"Testimonial__quoteMark--hasBackground": "Primer_Brand__Testimonial-module__Testimonial__quoteMark--hasBackground___AUVX2",
|
|
9
|
-
Testimonial__quoteMarkGlyph:
|
|
10
|
+
Testimonial__quoteMarkGlyph: n,
|
|
10
11
|
"Testimonial-quote": "Primer_Brand__Testimonial-module__Testimonial-quote___xbxri",
|
|
11
|
-
Testimonial__media:
|
|
12
|
+
Testimonial__media: r,
|
|
12
13
|
"Testimonial-logo-image": "Primer_Brand__Testimonial-module__Testimonial-logo-image___rpGVd",
|
|
13
14
|
"Testimonial-caption": "Primer_Brand__Testimonial-module__Testimonial-caption___8c_KF",
|
|
14
15
|
"Testimonial-avatar": "Primer_Brand__Testimonial-module__Testimonial-avatar___kWqMQ",
|
|
15
16
|
"Testimonial-from": "Primer_Brand__Testimonial-module__Testimonial-from___XLpqj",
|
|
16
17
|
"Testimonial--variant-expressive": "Primer_Brand__Testimonial-module__Testimonial--variant-expressive___J1PIY",
|
|
17
|
-
Testimonial__quoteWrapper:
|
|
18
|
+
Testimonial__quoteWrapper: i,
|
|
18
19
|
"Testimonial-position": "Primer_Brand__Testimonial-module__Testimonial-position____jQ17",
|
|
19
20
|
"Testimonial--hasLink": "Primer_Brand__Testimonial-module__Testimonial--hasLink___U6yF2",
|
|
20
21
|
"Testimonial-link": "Primer_Brand__Testimonial-module__Testimonial-link___kK8cZ",
|
|
@@ -39,6 +40,6 @@ import './Testimonial.module-BEV0y2jl.css';var e = {
|
|
|
39
40
|
"Testimonial__quoteMark--yellow": "Primer_Brand__Testimonial-module__Testimonial__quoteMark--yellow___W8v__"
|
|
40
41
|
};
|
|
41
42
|
//#endregion
|
|
42
|
-
export { e as default };
|
|
43
|
+
export { e as Testimonial, r as Testimonial__media, t as Testimonial__quoteMark, n as Testimonial__quoteMarkGlyph, i as Testimonial__quoteWrapper, a as default };
|
|
43
44
|
|
|
44
45
|
//# sourceMappingURL=Testimonial.module.js.map
|
package/esm/Text/Text.d.ts
CHANGED
|
@@ -58,6 +58,6 @@ export type TextProps = {
|
|
|
58
58
|
*/
|
|
59
59
|
hasAntiAliasing?: boolean;
|
|
60
60
|
} & TextTags;
|
|
61
|
-
export declare function Text({ align, animate, as, className, children, font, size, variant, weight, style, hasAntiAliasing, ...rest }: PropsWithChildren<TextProps>):
|
|
61
|
+
export declare function Text({ align, animate, as, className, children, font, size, variant, weight, style, hasAntiAliasing, ...rest }: PropsWithChildren<TextProps>): React.JSX.Element;
|
|
62
62
|
export {};
|
|
63
63
|
//# sourceMappingURL=Text.d.ts.map
|
package/esm/Text/Text.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Text.d.ts","sourceRoot":"","sources":["../../src/Text/Text.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAC,iBAAiB,EAAU,MAAM,OAAO,CAAA;AAIvD,OAAO,EAAC,SAAS,EAAC,MAAM,sBAAsB,CAAA;AAE9C,eAAO,MAAM,SAAS,yFAA0F,CAAA;AAChH,eAAO,MAAM,QAAQ,+CAAgD,CAAA;AACrE,eAAO,MAAM,YAAY,+BAAgC,CAAA;AACzD,eAAO,MAAM,WAAW,gGASd,CAAA;AACV,eAAO,MAAM,gBAAgB,mDAAoD,CAAA;AAEjF,eAAO,MAAM,cAAc,QAAc,CAAA;AACzC,eAAO,MAAM,eAAe,OAAe,CAAA;AAC3C,eAAO,MAAM,kBAAkB,WAAkB,CAAA;AACjD,eAAO,MAAM,kBAAkB,aAAsB,CAAA;AAErD,MAAM,MAAM,kBAAkB,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,CAAC,CAAA;AAC7D,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAA;AAEhE,MAAM,MAAM,mBAAmB,GAAG;IAChC,MAAM,CAAC,EAAE,kBAAkB,CAAA;IAC3B,OAAO,CAAC,EAAE,kBAAkB,CAAA;IAC5B,IAAI,CAAC,EAAE,kBAAkB,CAAA;CAC1B,CAAA;AAED,KAAK,sBAAsB,GACvB,CAAC,KAAK,CAAC,cAAc,CAAC,oBAAoB,CAAC,GAAG,SAAS,CAAC,oBAAoB,CAAC,GAAG;IAAC,EAAE,CAAC,EAAE,GAAG,CAAA;CAAC,CAAC,GAC3F,CAAC,KAAK,CAAC,cAAc,CAAC,eAAe,CAAC,GAAG,SAAS,CAAC,eAAe,CAAC,GAAG;IAAC,EAAE,CAAC,EAAE,MAAM,CAAA;CAAC,CAAC,GACpF,CAAC,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,GAAG,SAAS,CAAC,cAAc,CAAC,GAAG;IAAC,EAAE,CAAC,EAAE,KAAK,CAAA;CAAC,CAAC,GACjF,CAAC,KAAK,CAAC,cAAc,CAAC,WAAW,CAAC,GAAG,SAAS,CAAC,WAAW,CAAC,GAAG;IAAC,EAAE,CAAC,EAAE,QAAQ,CAAA;CAAC,CAAC,GAC9E,CAAC,KAAK,CAAC,cAAc,CAAC,WAAW,CAAC,GAAG,SAAS,CAAC,WAAW,CAAC,GAAG;IAAC,EAAE,CAAC,EAAE,IAAI,CAAA;CAAC,CAAC,CAAA;AAE9E,KAAK,QAAQ,GAAG;IACd;;OAEG;IACH,EAAE,CAAC,EAAE,CAAC,OAAO,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAA;CAC/B,GAAG,sBAAsB,CAAA;AAE1B,MAAM,MAAM,SAAS,GAAG;IACtB,IAAI,CAAC,EAAE,gBAAgB,CAAA;IACvB;;OAEG;IACH,IAAI,CAAC,EAAE,CAAC,OAAO,SAAS,CAAC,CAAC,MAAM,CAAC,CAAA;IACjC;;OAEG;IACH,OAAO,CAAC,EAAE,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,CAAC,CAAA;IACvC;;OAEG;IACH,MAAM,CAAC,EAAE,kBAAkB,GAAG,mBAAmB,CAAA;IACjD;;;;OAIG;IACH,KAAK,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,KAAK,CAAA;IAClC;;OAEG;IACH,eAAe,CAAC,EAAE,OAAO,CAAA;CAC1B,GAAG,QAAQ,CAAA;AAEZ,wBAAgB,IAAI,CAAC,EACnB,KAAK,EACL,OAAO,EACP,EAAmB,EACnB,SAAS,EACT,QAAQ,EACR,IAAyB,EACzB,IAAsB,EACtB,OAA4B,EAC5B,MAAM,EACN,KAAK,EACL,eAAsB,EACtB,GAAG,IAAI,EACR,EAAE,iBAAiB,CAAC,SAAS,CAAC,
|
|
1
|
+
{"version":3,"file":"Text.d.ts","sourceRoot":"","sources":["../../src/Text/Text.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAC,iBAAiB,EAAU,MAAM,OAAO,CAAA;AAIvD,OAAO,EAAC,SAAS,EAAC,MAAM,sBAAsB,CAAA;AAE9C,eAAO,MAAM,SAAS,yFAA0F,CAAA;AAChH,eAAO,MAAM,QAAQ,+CAAgD,CAAA;AACrE,eAAO,MAAM,YAAY,+BAAgC,CAAA;AACzD,eAAO,MAAM,WAAW,gGASd,CAAA;AACV,eAAO,MAAM,gBAAgB,mDAAoD,CAAA;AAEjF,eAAO,MAAM,cAAc,QAAc,CAAA;AACzC,eAAO,MAAM,eAAe,OAAe,CAAA;AAC3C,eAAO,MAAM,kBAAkB,WAAkB,CAAA;AACjD,eAAO,MAAM,kBAAkB,aAAsB,CAAA;AAErD,MAAM,MAAM,kBAAkB,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,CAAC,CAAA;AAC7D,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAA;AAEhE,MAAM,MAAM,mBAAmB,GAAG;IAChC,MAAM,CAAC,EAAE,kBAAkB,CAAA;IAC3B,OAAO,CAAC,EAAE,kBAAkB,CAAA;IAC5B,IAAI,CAAC,EAAE,kBAAkB,CAAA;CAC1B,CAAA;AAED,KAAK,sBAAsB,GACvB,CAAC,KAAK,CAAC,cAAc,CAAC,oBAAoB,CAAC,GAAG,SAAS,CAAC,oBAAoB,CAAC,GAAG;IAAC,EAAE,CAAC,EAAE,GAAG,CAAA;CAAC,CAAC,GAC3F,CAAC,KAAK,CAAC,cAAc,CAAC,eAAe,CAAC,GAAG,SAAS,CAAC,eAAe,CAAC,GAAG;IAAC,EAAE,CAAC,EAAE,MAAM,CAAA;CAAC,CAAC,GACpF,CAAC,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,GAAG,SAAS,CAAC,cAAc,CAAC,GAAG;IAAC,EAAE,CAAC,EAAE,KAAK,CAAA;CAAC,CAAC,GACjF,CAAC,KAAK,CAAC,cAAc,CAAC,WAAW,CAAC,GAAG,SAAS,CAAC,WAAW,CAAC,GAAG;IAAC,EAAE,CAAC,EAAE,QAAQ,CAAA;CAAC,CAAC,GAC9E,CAAC,KAAK,CAAC,cAAc,CAAC,WAAW,CAAC,GAAG,SAAS,CAAC,WAAW,CAAC,GAAG;IAAC,EAAE,CAAC,EAAE,IAAI,CAAA;CAAC,CAAC,CAAA;AAE9E,KAAK,QAAQ,GAAG;IACd;;OAEG;IACH,EAAE,CAAC,EAAE,CAAC,OAAO,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAA;CAC/B,GAAG,sBAAsB,CAAA;AAE1B,MAAM,MAAM,SAAS,GAAG;IACtB,IAAI,CAAC,EAAE,gBAAgB,CAAA;IACvB;;OAEG;IACH,IAAI,CAAC,EAAE,CAAC,OAAO,SAAS,CAAC,CAAC,MAAM,CAAC,CAAA;IACjC;;OAEG;IACH,OAAO,CAAC,EAAE,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,CAAC,CAAA;IACvC;;OAEG;IACH,MAAM,CAAC,EAAE,kBAAkB,GAAG,mBAAmB,CAAA;IACjD;;;;OAIG;IACH,KAAK,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,KAAK,CAAA;IAClC;;OAEG;IACH,eAAe,CAAC,EAAE,OAAO,CAAA;CAC1B,GAAG,QAAQ,CAAA;AAEZ,wBAAgB,IAAI,CAAC,EACnB,KAAK,EACL,OAAO,EACP,EAAmB,EACnB,SAAS,EACT,QAAQ,EACR,IAAyB,EACzB,IAAsB,EACtB,OAA4B,EAC5B,MAAM,EACN,KAAK,EACL,eAAsB,EACtB,GAAG,IAAI,EACR,EAAE,iBAAiB,CAAC,SAAS,CAAC,qBAiF9B"}
|
package/esm/Text/Text.js
CHANGED
package/esm/Text/Text.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Text.js","names":[],"sources":["../../src/Text/Text.tsx"],"sourcesContent":["import React, {PropsWithChildren, useMemo} from 'react'\nimport {clsx} from 'clsx'\nimport {useAnimation} from '../animation'\nimport styles from './Text.module.css'\nimport {BaseProps} from '../component-helpers'\n\nexport const TextSizes = ['1000', '900', '800', '700', '600', '500', '400', '350', '300', '200', '100'] as const\nexport const TextTags = ['p', 'span', 'div', 'strong', 'em'] as const\nexport const TextVariants = ['default', 'muted'] as const\nexport const TextWeights = [\n 'heavy',\n 'extrabold',\n 'bold',\n 'semibold',\n 'medium',\n 'normal',\n 'light',\n 'extralight',\n] as const\nexport const TextFontVariants = ['mona-sans', 'hubot-sans', 'monospace'] as const\n\nexport const defaultTextTag = TextTags[1]\nexport const defaultTextSize = TextSizes[9]\nexport const defaultTextVariant = TextVariants[0]\nexport const defaultFontVariant = TextFontVariants[0]\n\nexport type TextWeightVariants = (typeof TextWeights)[number]\nexport type TextFontVariants = (typeof TextFontVariants)[number]\n\nexport type ResponsiveWeightMap = {\n narrow?: TextWeightVariants\n regular?: TextWeightVariants\n wide?: TextWeightVariants\n}\n\ntype RestrictedPolymorphism =\n | (React.HTMLAttributes<HTMLParagraphElement> & BaseProps<HTMLParagraphElement> & {as?: 'p'})\n | (React.HTMLAttributes<HTMLSpanElement> & BaseProps<HTMLSpanElement> & {as?: 'span'})\n | (React.HTMLAttributes<HTMLDivElement> & BaseProps<HTMLDivElement> & {as?: 'div'})\n | (React.HTMLAttributes<HTMLElement> & BaseProps<HTMLElement> & {as?: 'strong'})\n | (React.HTMLAttributes<HTMLElement> & BaseProps<HTMLElement> & {as?: 'em'})\n\ntype TextTags = {\n /**\n * Applies the underlying HTML element\n */\n as?: (typeof TextTags)[number]\n} & RestrictedPolymorphism\n\nexport type TextProps = {\n font?: TextFontVariants\n /**\n * Specify the text size\n */\n size?: (typeof TextSizes)[number]\n /**\n * Specify alternative text appearance\n */\n variant?: (typeof TextVariants)[number]\n /**\n * Specify the text weight\n */\n weight?: TextWeightVariants | ResponsiveWeightMap\n /**\n * Specify the text alignment.\n * Corresponds to the CSS `text-align` property.\n * Note: Only applies to block elements.\n */\n align?: 'start' | 'center' | 'end'\n /**\n * Toggle antialiasing on or off\n */\n hasAntiAliasing?: boolean\n} & TextTags\n\nexport function Text({\n align,\n animate,\n as = defaultTextTag,\n className,\n children,\n font = defaultFontVariant,\n size = defaultTextSize,\n variant = defaultTextVariant,\n weight,\n style,\n hasAntiAliasing = true,\n ...rest\n}: PropsWithChildren<TextProps>) {\n const {classes: animationClasses, styles: animationInlineStyles} = useAnimation(animate)\n\n const weightClass = useMemo(() => {\n if (!weight) return null\n\n return typeof weight === 'string'\n ? styles[`Text--weight-${weight}`]\n : Object.keys(weight)\n .map(viewport => {\n return styles[`Text-${viewport}--weight-${weight[viewport]}`]\n })\n .join(' ')\n }, [weight])\n\n const dontApplyAA = Boolean(\n // When explicitly disabled\n !hasAntiAliasing ||\n // When selected font weight is not suitable for anti-aliasing\n (weight && ['light', 'extralight'].includes(weight as TextWeightVariants) && ['100', '200'].includes(size)) ||\n // When size is too small\n size === '100',\n )\n\n const textClassName = clsx(\n animationClasses,\n styles.Text,\n styles[`Text-font--${font}`],\n styles[`Text--${variant}`],\n styles[`Text--${size}`],\n !dontApplyAA && styles['Text--antialiased'],\n weight && weightClass,\n align && styles[`Text-align--${align}`],\n className,\n )\n\n if (as === 'p') {\n return (\n <p\n className={textClassName}\n style={{...animationInlineStyles, ...style}}\n {...(rest as BaseProps<HTMLParagraphElement>)}\n >\n {children}\n </p>\n )\n }\n\n if (as === 'em') {\n return (\n <em className={textClassName} style={{...animationInlineStyles, ...style}} {...rest}>\n {children}\n </em>\n )\n }\n\n if (as === 'div') {\n return (\n <div\n className={textClassName}\n style={{...animationInlineStyles, ...style}}\n {...(rest as BaseProps<HTMLDivElement>)}\n >\n {children}\n </div>\n )\n }\n\n if (as === 'strong') {\n return (\n <strong className={textClassName} style={{...animationInlineStyles, ...style}} {...rest}>\n {children}\n </strong>\n )\n }\n\n return (\n <span className={textClassName} style={{...animationInlineStyles, ...style}} {...rest}>\n {children}\n </span>\n )\n}\n"],"mappings":";;;;;;AAMA,IAAa,IAAY;CAAC;CAAQ;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;
|
|
1
|
+
{"version":3,"file":"Text.js","names":[],"sources":["../../src/Text/Text.tsx"],"sourcesContent":["import React, {PropsWithChildren, useMemo} from 'react'\nimport {clsx} from 'clsx'\nimport {useAnimation} from '../animation'\nimport styles from './Text.module.css'\nimport {BaseProps} from '../component-helpers'\n\nexport const TextSizes = ['1000', '900', '800', '700', '600', '500', '400', '350', '300', '200', '100'] as const\nexport const TextTags = ['p', 'span', 'div', 'strong', 'em'] as const\nexport const TextVariants = ['default', 'muted'] as const\nexport const TextWeights = [\n 'heavy',\n 'extrabold',\n 'bold',\n 'semibold',\n 'medium',\n 'normal',\n 'light',\n 'extralight',\n] as const\nexport const TextFontVariants = ['mona-sans', 'hubot-sans', 'monospace'] as const\n\nexport const defaultTextTag = TextTags[1]\nexport const defaultTextSize = TextSizes[9]\nexport const defaultTextVariant = TextVariants[0]\nexport const defaultFontVariant = TextFontVariants[0]\n\nexport type TextWeightVariants = (typeof TextWeights)[number]\nexport type TextFontVariants = (typeof TextFontVariants)[number]\n\nexport type ResponsiveWeightMap = {\n narrow?: TextWeightVariants\n regular?: TextWeightVariants\n wide?: TextWeightVariants\n}\n\ntype RestrictedPolymorphism =\n | (React.HTMLAttributes<HTMLParagraphElement> & BaseProps<HTMLParagraphElement> & {as?: 'p'})\n | (React.HTMLAttributes<HTMLSpanElement> & BaseProps<HTMLSpanElement> & {as?: 'span'})\n | (React.HTMLAttributes<HTMLDivElement> & BaseProps<HTMLDivElement> & {as?: 'div'})\n | (React.HTMLAttributes<HTMLElement> & BaseProps<HTMLElement> & {as?: 'strong'})\n | (React.HTMLAttributes<HTMLElement> & BaseProps<HTMLElement> & {as?: 'em'})\n\ntype TextTags = {\n /**\n * Applies the underlying HTML element\n */\n as?: (typeof TextTags)[number]\n} & RestrictedPolymorphism\n\nexport type TextProps = {\n font?: TextFontVariants\n /**\n * Specify the text size\n */\n size?: (typeof TextSizes)[number]\n /**\n * Specify alternative text appearance\n */\n variant?: (typeof TextVariants)[number]\n /**\n * Specify the text weight\n */\n weight?: TextWeightVariants | ResponsiveWeightMap\n /**\n * Specify the text alignment.\n * Corresponds to the CSS `text-align` property.\n * Note: Only applies to block elements.\n */\n align?: 'start' | 'center' | 'end'\n /**\n * Toggle antialiasing on or off\n */\n hasAntiAliasing?: boolean\n} & TextTags\n\nexport function Text({\n align,\n animate,\n as = defaultTextTag,\n className,\n children,\n font = defaultFontVariant,\n size = defaultTextSize,\n variant = defaultTextVariant,\n weight,\n style,\n hasAntiAliasing = true,\n ...rest\n}: PropsWithChildren<TextProps>) {\n const {classes: animationClasses, styles: animationInlineStyles} = useAnimation(animate)\n\n const weightClass = useMemo(() => {\n if (!weight) return null\n\n return typeof weight === 'string'\n ? styles[`Text--weight-${weight}`]\n : Object.keys(weight)\n .map(viewport => {\n return styles[`Text-${viewport}--weight-${weight[viewport]}`]\n })\n .join(' ')\n }, [weight])\n\n const dontApplyAA = Boolean(\n // When explicitly disabled\n !hasAntiAliasing ||\n // When selected font weight is not suitable for anti-aliasing\n (weight && ['light', 'extralight'].includes(weight as TextWeightVariants) && ['100', '200'].includes(size)) ||\n // When size is too small\n size === '100',\n )\n\n const textClassName = clsx(\n animationClasses,\n styles.Text,\n styles[`Text-font--${font}`],\n styles[`Text--${variant}`],\n styles[`Text--${size}`],\n !dontApplyAA && styles['Text--antialiased'],\n weight && weightClass,\n align && styles[`Text-align--${align}`],\n className,\n )\n\n if (as === 'p') {\n return (\n <p\n className={textClassName}\n style={{...animationInlineStyles, ...style}}\n {...(rest as BaseProps<HTMLParagraphElement>)}\n >\n {children}\n </p>\n )\n }\n\n if (as === 'em') {\n return (\n <em className={textClassName} style={{...animationInlineStyles, ...style}} {...rest}>\n {children}\n </em>\n )\n }\n\n if (as === 'div') {\n return (\n <div\n className={textClassName}\n style={{...animationInlineStyles, ...style}}\n {...(rest as BaseProps<HTMLDivElement>)}\n >\n {children}\n </div>\n )\n }\n\n if (as === 'strong') {\n return (\n <strong className={textClassName} style={{...animationInlineStyles, ...style}} {...rest}>\n {children}\n </strong>\n )\n }\n\n return (\n <span className={textClassName} style={{...animationInlineStyles, ...style}} {...rest}>\n {children}\n </span>\n )\n}\n"],"mappings":";;;;;;AAMA,IAAa,IAAY;CAAC;CAAQ;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;AAAK,GACzF,IAAW;CAAC;CAAK;CAAQ;CAAO;CAAU;AAAI,GAC9C,IAAe,CAAC,WAAW,OAAO,GAClC,IAAc;CACzB;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACF,GACa,IAAmB;CAAC;CAAa;CAAc;AAAW,GAE1D,IAAiB,EAAS,IAC1B,IAAkB,EAAU,IAC5B,IAAqB,EAAa,IAClC,IAAqB,EAAiB;AAmDnD,SAAgB,EAAK,EACnB,UACA,YACA,QAAK,GACL,cACA,aACA,UAAO,GACP,UAAO,GACP,aAAU,GACV,WACA,UACA,qBAAkB,IAClB,GAAG,KAC4B;CAC/B,IAAM,EAAC,SAAS,GAAkB,QAAQ,MAAyB,EAAa,CAAO,GAEjF,IAAc,QACb,IAEE,OAAO,KAAW,WACrB,EAAO,gBAAgB,OACvB,OAAO,KAAK,CAAM,CAAC,CAChB,KAAI,MACI,EAAO,QAAQ,EAAS,WAAW,EAAO,KAClD,CAAC,CACD,KAAK,GAAG,IARK,MASnB,CAAC,CAAM,CAAC,GAEL,IAAc,GAElB,CAAC,KAEE,KAAU,CAAC,SAAS,YAAY,CAAC,CAAC,SAAS,CAA4B,KAAK,CAAC,OAAO,KAAK,CAAC,CAAC,SAAS,CAAI,KAEzG,MAAS,QAGP,IAAgB,EACpB,GACA,EAAO,MACP,EAAO,cAAc,MACrB,EAAO,SAAS,MAChB,EAAO,SAAS,MAChB,CAAC,KAAe,EAAO,sBACvB,KAAU,GACV,KAAS,EAAO,eAAe,MAC/B,CACF;CA0CA,OAtCI,EAFA,MAAO,MAEN,MAUD,MAAO,OAEN,OAMD,MAAO,QAEN,QAUD,MAAO,WAEN,WAOF,QAvCC;EACE,WAAW;EACX,OAAO;GAAC,GAAG;GAAuB,GAAG;EAAK;EAC1C,GAAK;EAEJ;CACA,CAAA;AAqCT"}
|
package/esm/Text/Text.module.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import './Text.module-D0UHZ0pq.css'
|
|
2
|
-
|
|
1
|
+
import './Text.module-D0UHZ0pq.css';//#region src/Text/Text.module.css
|
|
2
|
+
var e = "Primer_Brand__Text-module__Text___XeGJJ", t = {
|
|
3
|
+
Text: e,
|
|
3
4
|
"Text--antialiased": "Primer_Brand__Text-module__Text--antialiased___TYoXS",
|
|
4
5
|
"Text--default": "Primer_Brand__Text-module__Text--default___GhPh_",
|
|
5
6
|
"Text--muted": "Primer_Brand__Text-module__Text--muted___rE6mh",
|
|
@@ -54,6 +55,6 @@ import './Text.module-D0UHZ0pq.css';var e = {
|
|
|
54
55
|
"Text-align--center": "Primer_Brand__Text-module__Text-align--center___NERb4"
|
|
55
56
|
};
|
|
56
57
|
//#endregion
|
|
57
|
-
export { e as default };
|
|
58
|
+
export { e as Text, t as default };
|
|
58
59
|
|
|
59
60
|
//# sourceMappingURL=Text.module.js.map
|
|
@@ -20,5 +20,5 @@ export type TextCursorAnimationProps = {
|
|
|
20
20
|
delay?: number;
|
|
21
21
|
waitForPageLoad?: boolean;
|
|
22
22
|
} & React.HTMLAttributes<HTMLSpanElement> & Omit<TextProps, 'animate' | 'as'>;
|
|
23
|
-
export declare function TextCursorAnimation({ children, className, animate, initialText, 'data-testid': testId, delay, waitForPageLoad, variant, }: PropsWithChildren<TextCursorAnimationProps>):
|
|
23
|
+
export declare function TextCursorAnimation({ children, className, animate, initialText, 'data-testid': testId, delay, waitForPageLoad, variant, }: PropsWithChildren<TextCursorAnimationProps>): React.JSX.Element;
|
|
24
24
|
//# sourceMappingURL=TextCursorAnimation.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TextCursorAnimation.d.ts","sourceRoot":"","sources":["../../src/TextCursorAnimation/TextCursorAnimation.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAC,iBAAiB,EAAC,MAAM,OAAO,CAAA;AAI9C,OAAO,EAAC,SAAS,EAAC,MAAM,cAAc,CAAA;AAEtC,OAAO,4GAA4G,CAAA;AACnH,OAAO,yHAAyH,CAAA;AAIhI,eAAO,MAAM,OAAO;;;;CAQnB,CAAA;AAED,MAAM,MAAM,wBAAwB,GAAG;IACrC;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,CAAC,aAAa,CAAC,CAAC,EAAE,MAAM,CAAA;IACxB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,eAAe,CAAC,EAAE,OAAO,CAAA;CAC1B,GAAG,KAAK,CAAC,cAAc,CAAC,eAAe,CAAC,GACvC,IAAI,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI,CAAC,CAAA;AAEnC,wBAAgB,mBAAmB,CAAC,EAClC,QAAQ,EACR,SAAS,EACT,OAAO,EACP,WAAW,EACX,aAAa,EAAE,MAAM,EACrB,KAAK,EACL,eAAsB,EACtB,OAAiB,GAClB,EAAE,iBAAiB,CAAC,wBAAwB,CAAC,
|
|
1
|
+
{"version":3,"file":"TextCursorAnimation.d.ts","sourceRoot":"","sources":["../../src/TextCursorAnimation/TextCursorAnimation.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAC,iBAAiB,EAAC,MAAM,OAAO,CAAA;AAI9C,OAAO,EAAC,SAAS,EAAC,MAAM,cAAc,CAAA;AAEtC,OAAO,4GAA4G,CAAA;AACnH,OAAO,yHAAyH,CAAA;AAIhI,eAAO,MAAM,OAAO;;;;CAQnB,CAAA;AAED,MAAM,MAAM,wBAAwB,GAAG;IACrC;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,CAAC,aAAa,CAAC,CAAC,EAAE,MAAM,CAAA;IACxB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,eAAe,CAAC,EAAE,OAAO,CAAA;CAC1B,GAAG,KAAK,CAAC,cAAc,CAAC,eAAe,CAAC,GACvC,IAAI,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI,CAAC,CAAA;AAEnC,wBAAgB,mBAAmB,CAAC,EAClC,QAAQ,EACR,SAAS,EACT,OAAO,EACP,WAAW,EACX,aAAa,EAAE,MAAM,EACrB,KAAK,EACL,eAAsB,EACtB,OAAiB,GAClB,EAAE,iBAAiB,CAAC,wBAAwB,CAAC,qBA+E7C"}
|
|
@@ -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 { useCursorAnimation as t } from "../hooks/useCursorAnimation.js";
|
|
3
3
|
import { EyebrowText as n } from "../EyebrowText/EyebrowText.js";
|
|
4
4
|
import '../packages/design-tokens/lib/design-tokens/css/tokens/functional/components/text-cursor-animation/colors-with-modes-BucKYl1n.css';import '../packages/design-tokens/lib/design-tokens/css/tokens/functional/components/text-cursor-animation/base-DKbXhPKv.css';/* empty css */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TextCursorAnimation.js","names":[],"sources":["../../src/TextCursorAnimation/TextCursorAnimation.tsx"],"sourcesContent":["import React, {PropsWithChildren} from 'react'\nimport {clsx} from 'clsx'\nimport {useCursorAnimation} from '../hooks/useCursorAnimation'\nimport {EyebrowText} from '../EyebrowText'\nimport {TextProps} from '../Text/Text'\n\nimport '@primer/brand-primitives/lib/design-tokens/css/tokens/functional/components/text-cursor-animation/base.css'\nimport '@primer/brand-primitives/lib/design-tokens/css/tokens/functional/components/text-cursor-animation/colors-with-modes.css'\n\nimport styles from './TextCursorAnimation.module.css'\n\nexport const testIds = {\n root: 'TextCursorAnimation',\n get text() {\n return `${this.root}-text`\n },\n get cursor() {\n return `${this.root}-cursor`\n },\n}\n\nexport type TextCursorAnimationProps = {\n /**\n * Whether to animate the text with a typing effect.\n */\n animate?: boolean\n /**\n * Optional text to type before transitioning to the final text\n */\n initialText?: string\n ['data-testid']?: string\n delay?: number\n waitForPageLoad?: boolean\n} & React.HTMLAttributes<HTMLSpanElement> &\n Omit<TextProps, 'animate' | 'as'>\n\nexport function TextCursorAnimation({\n children,\n className,\n animate,\n initialText,\n 'data-testid': testId,\n delay,\n waitForPageLoad = true,\n variant = 'muted',\n}: PropsWithChildren<TextCursorAnimationProps>) {\n const text = typeof children === 'string' ? children : ''\n const {showCursor, visibleText, cursorPhase} = useCursorAnimation({\n text,\n initialText,\n animate,\n delay,\n waitForPageLoad,\n })\n\n const hasAnimation = animate === true && text.length > 0\n const content = text || children\n const cursorPhaseClassName = {\n initial: styles['TextCursorAnimation__cursor--initial'],\n correction: styles['TextCursorAnimation__cursor--correction'],\n final: styles['TextCursorAnimation__cursor--final'],\n complete: styles['TextCursorAnimation__cursor--complete'],\n }[hasAnimation ? cursorPhase : 'complete']\n\n return (\n <span className={clsx(styles.TextCursorAnimation, className)} data-testid={testId || testIds.root}>\n <span className={styles.TextCursorAnimation__inner}>\n {hasAnimation && (\n <span className={styles.TextCursorAnimation__sizingContainer}>\n <EyebrowText\n size=\"100\"\n variant={variant}\n font=\"monospace\"\n weight=\"medium\"\n className={clsx(styles.TextCursorAnimation__text, styles.TextCursorAnimation__sizingText)}\n >\n {text}\n </EyebrowText>\n {initialText && initialText !== text && (\n <EyebrowText\n size=\"100\"\n variant={variant}\n font=\"monospace\"\n weight=\"medium\"\n className={clsx(styles.TextCursorAnimation__text, styles.TextCursorAnimation__sizingText)}\n aria-hidden=\"true\"\n >\n {initialText}\n </EyebrowText>\n )}\n </span>\n )}\n <span\n className={clsx(\n styles.TextCursorAnimation__content,\n hasAnimation && styles['TextCursorAnimation__content--animated'],\n )}\n aria-hidden={hasAnimation ? 'true' : undefined}\n >\n <EyebrowText\n size=\"100\"\n variant={variant}\n font=\"monospace\"\n weight=\"medium\"\n className={styles.TextCursorAnimation__text}\n data-testid={testIds.text}\n >\n {hasAnimation ? visibleText : content}\n </EyebrowText>\n {showCursor && (\n <span\n className={clsx(\n styles.TextCursorAnimation__cursor,\n hasAnimation && styles['TextCursorAnimation__cursor--animated'],\n cursorPhaseClassName,\n )}\n aria-hidden=\"true\"\n data-testid={testIds.cursor}\n />\n )}\n </span>\n </span>\n </span>\n )\n}\n"],"mappings":";;;;;;;;;AAWA,IAAa,IAAU;CACrB,MAAM;CACN,IAAI,OAAO;
|
|
1
|
+
{"version":3,"file":"TextCursorAnimation.js","names":[],"sources":["../../src/TextCursorAnimation/TextCursorAnimation.tsx"],"sourcesContent":["import React, {PropsWithChildren} from 'react'\nimport {clsx} from 'clsx'\nimport {useCursorAnimation} from '../hooks/useCursorAnimation'\nimport {EyebrowText} from '../EyebrowText'\nimport {TextProps} from '../Text/Text'\n\nimport '@primer/brand-primitives/lib/design-tokens/css/tokens/functional/components/text-cursor-animation/base.css'\nimport '@primer/brand-primitives/lib/design-tokens/css/tokens/functional/components/text-cursor-animation/colors-with-modes.css'\n\nimport styles from './TextCursorAnimation.module.css'\n\nexport const testIds = {\n root: 'TextCursorAnimation',\n get text() {\n return `${this.root}-text`\n },\n get cursor() {\n return `${this.root}-cursor`\n },\n}\n\nexport type TextCursorAnimationProps = {\n /**\n * Whether to animate the text with a typing effect.\n */\n animate?: boolean\n /**\n * Optional text to type before transitioning to the final text\n */\n initialText?: string\n ['data-testid']?: string\n delay?: number\n waitForPageLoad?: boolean\n} & React.HTMLAttributes<HTMLSpanElement> &\n Omit<TextProps, 'animate' | 'as'>\n\nexport function TextCursorAnimation({\n children,\n className,\n animate,\n initialText,\n 'data-testid': testId,\n delay,\n waitForPageLoad = true,\n variant = 'muted',\n}: PropsWithChildren<TextCursorAnimationProps>) {\n const text = typeof children === 'string' ? children : ''\n const {showCursor, visibleText, cursorPhase} = useCursorAnimation({\n text,\n initialText,\n animate,\n delay,\n waitForPageLoad,\n })\n\n const hasAnimation = animate === true && text.length > 0\n const content = text || children\n const cursorPhaseClassName = {\n initial: styles['TextCursorAnimation__cursor--initial'],\n correction: styles['TextCursorAnimation__cursor--correction'],\n final: styles['TextCursorAnimation__cursor--final'],\n complete: styles['TextCursorAnimation__cursor--complete'],\n }[hasAnimation ? cursorPhase : 'complete']\n\n return (\n <span className={clsx(styles.TextCursorAnimation, className)} data-testid={testId || testIds.root}>\n <span className={styles.TextCursorAnimation__inner}>\n {hasAnimation && (\n <span className={styles.TextCursorAnimation__sizingContainer}>\n <EyebrowText\n size=\"100\"\n variant={variant}\n font=\"monospace\"\n weight=\"medium\"\n className={clsx(styles.TextCursorAnimation__text, styles.TextCursorAnimation__sizingText)}\n >\n {text}\n </EyebrowText>\n {initialText && initialText !== text && (\n <EyebrowText\n size=\"100\"\n variant={variant}\n font=\"monospace\"\n weight=\"medium\"\n className={clsx(styles.TextCursorAnimation__text, styles.TextCursorAnimation__sizingText)}\n aria-hidden=\"true\"\n >\n {initialText}\n </EyebrowText>\n )}\n </span>\n )}\n <span\n className={clsx(\n styles.TextCursorAnimation__content,\n hasAnimation && styles['TextCursorAnimation__content--animated'],\n )}\n aria-hidden={hasAnimation ? 'true' : undefined}\n >\n <EyebrowText\n size=\"100\"\n variant={variant}\n font=\"monospace\"\n weight=\"medium\"\n className={styles.TextCursorAnimation__text}\n data-testid={testIds.text}\n >\n {hasAnimation ? visibleText : content}\n </EyebrowText>\n {showCursor && (\n <span\n className={clsx(\n styles.TextCursorAnimation__cursor,\n hasAnimation && styles['TextCursorAnimation__cursor--animated'],\n cursorPhaseClassName,\n )}\n aria-hidden=\"true\"\n data-testid={testIds.cursor}\n />\n )}\n </span>\n </span>\n </span>\n )\n}\n"],"mappings":";;;;;;;;;AAWA,IAAa,IAAU;CACrB,MAAM;CACN,IAAI,OAAO;EACT,OAAO,GAAG,KAAK,KAAK;CACtB;CACA,IAAI,SAAS;EACX,OAAO,GAAG,KAAK,KAAK;CACtB;AACF;AAiBA,SAAgB,EAAoB,EAClC,aACA,cACA,YACA,gBACA,eAAe,GACf,UACA,qBAAkB,IAClB,aAAU,WACoC;CAC9C,IAAM,IAAO,OAAO,KAAa,WAAW,IAAW,IACjD,EAAC,eAAY,gBAAa,mBAAe,EAAmB;EAChE;EACA;EACA;EACA;EACA;CACF,CAAC,GAEK,IAAe,MAAY,MAAQ,EAAK,SAAS,GACjD,IAAU,KAAQ,GAClB,IAAuB;EAC3B,SAAS,EAAO;EAChB,YAAY,EAAO;EACnB,OAAO,EAAO;EACd,UAAU,EAAO;CACnB,EAAE,IAAe,IAAc;CAE/B,OACE,kBAAC,QAAD;EAAM,WAAW,EAAK,EAAO,qBAAqB,CAAS;EAAG,eAAa,KAAU,EAAQ;YAC3F,kBAAC,QAAD;GAAM,WAAW,EAAO;aAAxB,CACG,KACC,kBAAC,QAAD;IAAM,WAAW,EAAO;cAAxB,CACE,kBAAC,GAAD;KACE,MAAK;KACI;KACT,MAAK;KACL,QAAO;KACP,WAAW,EAAK,EAAO,2BAA2B,EAAO,+BAA+B;eAEvF;IACU,CAAA,GACZ,KAAe,MAAgB,KAC9B,kBAAC,GAAD;KACE,MAAK;KACI;KACT,MAAK;KACL,QAAO;KACP,WAAW,EAAK,EAAO,2BAA2B,EAAO,+BAA+B;KACxF,eAAY;eAEX;IACU,CAAA,CAEX;OAER,kBAAC,QAAD;IACE,WAAW,EACT,EAAO,8BACP,KAAgB,EAAO,yCACzB;IACA,eAAa,IAAe,SAAS,KAAA;cALvC,CAOE,kBAAC,GAAD;KACE,MAAK;KACI;KACT,MAAK;KACL,QAAO;KACP,WAAW,EAAO;KAClB,eAAa,EAAQ;eAEpB,IAAe,IAAc;IACnB,CAAA,GACZ,KACC,kBAAC,QAAD;KACE,WAAW,EACT,EAAO,6BACP,KAAgB,EAAO,0CACvB,CACF;KACA,eAAY;KACZ,eAAa,EAAQ;IACtB,CAAA,CAEC;KACF;;CACF,CAAA;AAEV"}
|
|
@@ -1,12 +1,13 @@
|
|
|
1
|
-
import './TextCursorAnimation.module-BS4hPR8H.css'
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
1
|
+
import './TextCursorAnimation.module-BS4hPR8H.css';//#region src/TextCursorAnimation/TextCursorAnimation.module.css
|
|
2
|
+
var e = "Primer_Brand__TextCursorAnimation-module__TextCursorAnimation___fMZNu", t = "Primer_Brand__TextCursorAnimation-module__TextCursorAnimation__inner____uwkl", n = "Primer_Brand__TextCursorAnimation-module__TextCursorAnimation__text___t1rcc", r = "Primer_Brand__TextCursorAnimation-module__TextCursorAnimation__sizingContainer___7_wcg", i = "Primer_Brand__TextCursorAnimation-module__TextCursorAnimation__sizingText___Mhr64", a = "Primer_Brand__TextCursorAnimation-module__TextCursorAnimation__content___M_K3E", o = "Primer_Brand__TextCursorAnimation-module__TextCursorAnimation__cursor___suzWD", s = {
|
|
3
|
+
TextCursorAnimation: e,
|
|
4
|
+
TextCursorAnimation__inner: t,
|
|
5
|
+
TextCursorAnimation__text: n,
|
|
6
|
+
TextCursorAnimation__sizingContainer: r,
|
|
7
|
+
TextCursorAnimation__sizingText: i,
|
|
8
|
+
TextCursorAnimation__content: a,
|
|
8
9
|
"TextCursorAnimation__content--animated": "Primer_Brand__TextCursorAnimation-module__TextCursorAnimation__content--animated___Zmg8H",
|
|
9
|
-
TextCursorAnimation__cursor:
|
|
10
|
+
TextCursorAnimation__cursor: o,
|
|
10
11
|
"TextCursorAnimation__cursor--initial": "Primer_Brand__TextCursorAnimation-module__TextCursorAnimation__cursor--initial___Ozy64",
|
|
11
12
|
"TextCursorAnimation__cursor--animated": "Primer_Brand__TextCursorAnimation-module__TextCursorAnimation__cursor--animated___EfpR4",
|
|
12
13
|
"TextCursorAnimation-cursor-blink": "Primer_Brand__TextCursorAnimation-module__TextCursorAnimation-cursor-blink___cTxPh",
|
|
@@ -15,6 +16,6 @@ import './TextCursorAnimation.module-BS4hPR8H.css';var e = {
|
|
|
15
16
|
"TextCursorAnimation__cursor--complete": "Primer_Brand__TextCursorAnimation-module__TextCursorAnimation__cursor--complete___gufWv"
|
|
16
17
|
};
|
|
17
18
|
//#endregion
|
|
18
|
-
export { e as default };
|
|
19
|
+
export { e as TextCursorAnimation, a as TextCursorAnimation__content, o as TextCursorAnimation__cursor, t as TextCursorAnimation__inner, r as TextCursorAnimation__sizingContainer, i as TextCursorAnimation__sizingText, n as TextCursorAnimation__text, s as default };
|
|
19
20
|
|
|
20
21
|
//# sourceMappingURL=TextCursorAnimation.module.js.map
|
|
@@ -16,5 +16,5 @@ export declare const ThemeContext: React.Context<ThemeContextProps>;
|
|
|
16
16
|
/**
|
|
17
17
|
* ThemeProvider is used to provide theme-related context to its child components.
|
|
18
18
|
*/
|
|
19
|
-
export declare function ThemeProvider({ colorMode, children, ...rest }: PropsWithChildren<ThemeProviderProps>):
|
|
19
|
+
export declare function ThemeProvider({ colorMode, children, ...rest }: PropsWithChildren<ThemeProviderProps>): React.JSX.Element;
|
|
20
20
|
//# sourceMappingURL=ThemeProvider.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ThemeProvider.d.ts","sourceRoot":"","sources":["../../src/ThemeProvider/ThemeProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAA8C,cAAc,EAAE,iBAAiB,EAAC,MAAM,OAAO,CAAA;AAE3G,oBAAY,cAAc;IACxB,KAAK,UAAU;IACf,IAAI,SAAS;IACb,IAAI,SAAS;CACd;AAED,MAAM,MAAM,SAAS,GAAG,GAAG,cAAc,EAAE,CAAA;AAE3C,MAAM,MAAM,iBAAiB,GAAG;IAI9B,SAAS,EAAE,SAAS,CAAA;IAKpB,mBAAmB,EAAE,cAAc,EAAE,CAAA;CACtC,CAAA;AAED,MAAM,MAAM,kBAAkB,GAAG;IAC/B,SAAS,CAAC,EAAE,SAAS,CAAA;CACtB,GAAG,cAAc,CAAC,cAAc,CAAC,CAAA;AAIlC,eAAO,MAAM,YAAY,kCAGvB,CAAA;AAEF;;GAEG;AACH,wBAAgB,aAAa,CAAC,EAAC,SAAuB,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAC,EAAE,iBAAiB,CAAC,kBAAkB,CAAC,
|
|
1
|
+
{"version":3,"file":"ThemeProvider.d.ts","sourceRoot":"","sources":["../../src/ThemeProvider/ThemeProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAA8C,cAAc,EAAE,iBAAiB,EAAC,MAAM,OAAO,CAAA;AAE3G,oBAAY,cAAc;IACxB,KAAK,UAAU;IACf,IAAI,SAAS;IACb,IAAI,SAAS;CACd;AAED,MAAM,MAAM,SAAS,GAAG,GAAG,cAAc,EAAE,CAAA;AAE3C,MAAM,MAAM,iBAAiB,GAAG;IAI9B,SAAS,EAAE,SAAS,CAAA;IAKpB,mBAAmB,EAAE,cAAc,EAAE,CAAA;CACtC,CAAA;AAED,MAAM,MAAM,kBAAkB,GAAG;IAC/B,SAAS,CAAC,EAAE,SAAS,CAAA;CACtB,GAAG,cAAc,CAAC,cAAc,CAAC,CAAA;AAIlC,eAAO,MAAM,YAAY,kCAGvB,CAAA;AAEF;;GAEG;AACH,wBAAgB,aAAa,CAAC,EAAC,SAAuB,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAC,EAAE,iBAAiB,CAAC,kBAAkB,CAAC,qBAqBhH"}
|
|
@@ -3,13 +3,13 @@ import { jsx as i } from "react/jsx-runtime";
|
|
|
3
3
|
//#region src/ThemeProvider/ThemeProvider.tsx
|
|
4
4
|
var a = /* @__PURE__ */ function(e) {
|
|
5
5
|
return e.LIGHT = "light", e.DARK = "dark", e.AUTO = "auto", e;
|
|
6
|
-
}({}), o =
|
|
6
|
+
}({}), o = "light", s = e({
|
|
7
7
|
colorMode: o,
|
|
8
8
|
availableColorModes: Object.values(a)
|
|
9
9
|
});
|
|
10
10
|
function c({ colorMode: e = o, children: c, ...l }) {
|
|
11
11
|
let [f, p] = r(e), m = n(() => Object.values(a), []);
|
|
12
|
-
return t(() => (e ===
|
|
12
|
+
return t(() => (e === "auto" ? p(u()) : f !== e && p(e), d(p)), [
|
|
13
13
|
e,
|
|
14
14
|
f,
|
|
15
15
|
p
|
|
@@ -25,8 +25,8 @@ function c({ colorMode: e = o, children: c, ...l }) {
|
|
|
25
25
|
})
|
|
26
26
|
});
|
|
27
27
|
}
|
|
28
|
-
var l = () => window.matchMedia(
|
|
29
|
-
let t = l(), n = (t) => e(t.matches ?
|
|
28
|
+
var l = () => window.matchMedia("(prefers-color-scheme: dark)"), u = () => l().matches ? "dark" : "light", d = (e) => {
|
|
29
|
+
let t = l(), n = (t) => e(t.matches ? "dark" : "light");
|
|
30
30
|
return t.addEventListener("change", n), () => t.removeEventListener("change", n);
|
|
31
31
|
};
|
|
32
32
|
//#endregion
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ThemeProvider.js","names":[],"sources":["../../src/ThemeProvider/ThemeProvider.tsx"],"sourcesContent":["import React, {useState, useMemo, useEffect, createContext, HTMLAttributes, PropsWithChildren} from 'react'\n\nexport enum ColorModesEnum {\n LIGHT = 'light',\n DARK = 'dark',\n AUTO = 'auto',\n}\n\nexport type ColorMode = `${ColorModesEnum}`\n\nexport type ThemeContextProps = {\n /*\n * The active color mode of the parent ThemeProvider.\n */\n colorMode: ColorMode\n\n /*\n * List of available color modes.\n */\n availableColorModes: ColorModesEnum[]\n}\n\nexport type ThemeProviderProps = {\n colorMode?: ColorMode\n} & HTMLAttributes<HTMLDivElement>\n\nconst defaultMode = ColorModesEnum.LIGHT\n\nexport const ThemeContext = createContext<ThemeContextProps>({\n colorMode: defaultMode,\n availableColorModes: Object.values(ColorModesEnum),\n})\n\n/**\n * ThemeProvider is used to provide theme-related context to its child components.\n */\nexport function ThemeProvider({colorMode = defaultMode, children, ...rest}: PropsWithChildren<ThemeProviderProps>) {\n const [activeMode, setActiveMode] = useState(colorMode)\n const availableColorModes = useMemo(() => Object.values(ColorModesEnum), [])\n\n useEffect(() => {\n if (colorMode === ColorModesEnum.AUTO) {\n setActiveMode(getActiveAutoMode())\n } else if (activeMode !== colorMode) {\n setActiveMode(colorMode)\n }\n\n return handleSystemPreferenceChange(setActiveMode)\n }, [colorMode, activeMode, setActiveMode])\n\n return (\n <ThemeContext.Provider value={{colorMode: activeMode, availableColorModes}}>\n <div data-color-mode={activeMode} {...rest}>\n {children}\n </div>\n </ThemeContext.Provider>\n )\n}\n\nconst queryBrowserPreference = () => window.matchMedia(`(prefers-color-scheme: ${ColorModesEnum.DARK})`)\n\nconst getActiveAutoMode = () => {\n const mediaQueryList: MediaQueryList = queryBrowserPreference()\n return mediaQueryList.matches ? ColorModesEnum.DARK : ColorModesEnum.LIGHT\n}\n\nconst handleSystemPreferenceChange = callback => {\n const mediaQueryList = queryBrowserPreference()\n const changeHandler = event => callback(event.matches ? ColorModesEnum.DARK : ColorModesEnum.LIGHT)\n mediaQueryList.addEventListener('change', changeHandler)\n return () => mediaQueryList.removeEventListener('change', changeHandler)\n}\n"],"mappings":";;;AAEA,IAAY,IAAL,yBAAA,GAAA;QACL,EAAA,
|
|
1
|
+
{"version":3,"file":"ThemeProvider.js","names":[],"sources":["../../src/ThemeProvider/ThemeProvider.tsx"],"sourcesContent":["import React, {useState, useMemo, useEffect, createContext, HTMLAttributes, PropsWithChildren} from 'react'\n\nexport enum ColorModesEnum {\n LIGHT = 'light',\n DARK = 'dark',\n AUTO = 'auto',\n}\n\nexport type ColorMode = `${ColorModesEnum}`\n\nexport type ThemeContextProps = {\n /*\n * The active color mode of the parent ThemeProvider.\n */\n colorMode: ColorMode\n\n /*\n * List of available color modes.\n */\n availableColorModes: ColorModesEnum[]\n}\n\nexport type ThemeProviderProps = {\n colorMode?: ColorMode\n} & HTMLAttributes<HTMLDivElement>\n\nconst defaultMode = ColorModesEnum.LIGHT\n\nexport const ThemeContext = createContext<ThemeContextProps>({\n colorMode: defaultMode,\n availableColorModes: Object.values(ColorModesEnum),\n})\n\n/**\n * ThemeProvider is used to provide theme-related context to its child components.\n */\nexport function ThemeProvider({colorMode = defaultMode, children, ...rest}: PropsWithChildren<ThemeProviderProps>) {\n const [activeMode, setActiveMode] = useState(colorMode)\n const availableColorModes = useMemo(() => Object.values(ColorModesEnum), [])\n\n useEffect(() => {\n if (colorMode === ColorModesEnum.AUTO) {\n setActiveMode(getActiveAutoMode())\n } else if (activeMode !== colorMode) {\n setActiveMode(colorMode)\n }\n\n return handleSystemPreferenceChange(setActiveMode)\n }, [colorMode, activeMode, setActiveMode])\n\n return (\n <ThemeContext.Provider value={{colorMode: activeMode, availableColorModes}}>\n <div data-color-mode={activeMode} {...rest}>\n {children}\n </div>\n </ThemeContext.Provider>\n )\n}\n\nconst queryBrowserPreference = () => window.matchMedia(`(prefers-color-scheme: ${ColorModesEnum.DARK})`)\n\nconst getActiveAutoMode = () => {\n const mediaQueryList: MediaQueryList = queryBrowserPreference()\n return mediaQueryList.matches ? ColorModesEnum.DARK : ColorModesEnum.LIGHT\n}\n\nconst handleSystemPreferenceChange = callback => {\n const mediaQueryList = queryBrowserPreference()\n const changeHandler = event => callback(event.matches ? ColorModesEnum.DARK : ColorModesEnum.LIGHT)\n mediaQueryList.addEventListener('change', changeHandler)\n return () => mediaQueryList.removeEventListener('change', changeHandler)\n}\n"],"mappings":";;;AAEA,IAAY,IAAL,yBAAA,GAAA;QACL,EAAA,QAAA,SACA,EAAA,OAAA,QACA,EAAA,OAAA;AACF,EAAA,CAAA,CAAA,GAoBM,IAAA,SAEO,IAAe,EAAiC;CAC3D,WAAW;CACX,qBAAqB,OAAO,OAAO,CAAc;AACnD,CAAC;AAKD,SAAgB,EAAc,EAAC,eAAY,GAAa,aAAU,GAAG,KAA8C;CACjH,IAAM,CAAC,GAAY,KAAiB,EAAS,CAAS,GAChD,IAAsB,QAAc,OAAO,OAAO,CAAc,GAAG,CAAC,CAAC;CAY3E,OAVA,SACM,MAAA,SACF,EAAc,EAAkB,CAAC,IACxB,MAAe,KACxB,EAAc,CAAS,GAGlB,EAA6B,CAAa,IAChD;EAAC;EAAW;EAAY;CAAa,CAAC,GAGvC,kBAAC,EAAa,UAAd;EAAuB,OAAO;GAAC,WAAW;GAAY;EAAmB;YACvE,kBAAC,OAAD;GAAK,mBAAiB;GAAY,GAAI;GACnC;EACE,CAAA;CACgB,CAAA;AAE3B;AAEA,IAAM,UAA+B,OAAO,WAAW,8BAAgD,GAEjG,UACmC,EAChC,CAAA,CAAe,UAAA,SAAA,SAGlB,KAA+B,MAAY;CAC/C,IAAM,IAAiB,EAAuB,GACxC,KAAgB,MAAS,EAAS,EAAM,UAAA,SAAA,OAAoD;CAElG,OADA,EAAe,iBAAiB,UAAU,CAAa,SAC1C,EAAe,oBAAoB,UAAU,CAAa;AACzE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useTheme.js","names":[],"sources":["../../src/ThemeProvider/useTheme.ts"],"sourcesContent":["import {useContext} from 'react'\nimport {ThemeContext} from './ThemeProvider'\n\nexport const useTheme = () => useContext(ThemeContext)\n"],"mappings":";;;AAGA,IAAa,UAAiB,EAAW,
|
|
1
|
+
{"version":3,"file":"useTheme.js","names":[],"sources":["../../src/ThemeProvider/useTheme.ts"],"sourcesContent":["import {useContext} from 'react'\nimport {ThemeContext} from './ThemeProvider'\n\nexport const useTheme = () => useContext(ThemeContext)\n"],"mappings":";;;AAGA,IAAa,UAAiB,EAAW,CAAY"}
|
package/esm/Tiles/Tiles.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
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 { Text as t } from "../Text/Text.js";
|
|
3
|
-
import { ArrowUpRightIcon as n } from "../node_modules/@primer/octicons-react/dist/
|
|
3
|
+
import { ArrowUpRightIcon as n } from "../node_modules/@primer/octicons-react/dist/icons/ArrowUpRightIcon.js";
|
|
4
4
|
import r from "../component-helpers/shared.module.js";
|
|
5
5
|
import '../packages/design-tokens/lib/design-tokens/css/tokens/functional/components/tiles/colors-with-modes-DTTqGOfy.css';/* empty css */
|
|
6
6
|
import i from "./Tiles.module.js";
|
package/esm/Tiles/Tiles.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tiles.js","names":[],"sources":["../../src/Tiles/Tiles.tsx"],"sourcesContent":["import {clsx} from 'clsx'\nimport React, {createContext, forwardRef, type PropsWithChildren, type Ref, useContext} from 'react'\nimport {ArrowUpRightIcon} from '@primer/octicons-react'\nimport type {BaseProps} from '../component-helpers'\nimport gridlineStyles from '../component-helpers/shared.module.css'\nimport {Text} from '../Text'\n\n/** * Design Tokens */\nimport '@primer/brand-primitives/lib/design-tokens/css/tokens/functional/components/tiles/colors-with-modes.css'\n\n/** * Main Stylesheet (as a CSS Module) */\nimport styles from './Tiles.module.css'\n\nconst testIds = {\n root: 'Tiles',\n get grid() {\n return `${this.root}-grid`\n },\n get item() {\n return `${this.root}-item`\n },\n}\n\ntype TilesVariant = 'default' | 'gridlines'\n\ntype TilesLayout = 'default' | 'compact'\n\nconst TilesContext = createContext<TilesLayout>('default')\n\nexport type TilesProps = {\n /**\n * The visual variant of the Tiles component.\n */\n variant?: TilesVariant\n /**\n * The layout density of the Tiles grid.\n */\n layout?: TilesLayout\n /**\n * Test id for the root Tiles element.\n */\n 'data-testid'?: string\n} & BaseProps<HTMLDivElement> &\n React.HTMLAttributes<HTMLDivElement>\n\nconst TilesRoot = forwardRef(\n (\n {\n variant = 'default',\n layout = 'default',\n children,\n className,\n 'data-testid': testId,\n ...rest\n }: PropsWithChildren<TilesProps>,\n ref: Ref<HTMLDivElement>,\n ) => {\n return (\n <TilesContext.Provider value={layout}>\n <div\n ref={ref}\n className={clsx(\n styles.Tiles,\n styles[`Tiles--variant-${variant}`],\n styles[`Tiles--layout-${layout}`],\n variant === 'gridlines' && gridlineStyles.gridline,\n className,\n )}\n data-testid={testId || testIds.root}\n {...rest}\n >\n <ul className={styles['Tiles-grid']} data-testid={testIds.grid}>\n {children}\n </ul>\n </div>\n </TilesContext.Provider>\n )\n },\n)\n\nexport type TilesItemProps = {\n /**\n * The accessible name for the tile item.\n */\n name: string\n /**\n * Optional URL to link the tile to.\n */\n href?: string\n /**\n * Test id for the tile item element.\n */\n 'data-testid'?: string\n} & BaseProps<HTMLLIElement> &\n Omit<React.HTMLAttributes<HTMLLIElement>, 'children'> & {\n children: React.ReactNode\n }\n\nconst _Item = forwardRef(\n ({name, href, children, className, 'data-testid': testId, ...rest}: TilesItemProps, ref: Ref<HTMLLIElement>) => {\n const layout = useContext(TilesContext)\n const hasLink = Boolean(href)\n const isLabelHidden = layout === 'compact' && !hasLink\n\n const content = (\n <span className={styles['Tiles-item-content']}>\n <span className={styles['Tiles-item-media']} aria-hidden=\"true\">\n {children}\n </span>\n <span className={clsx(styles['Tiles-item-label'], isLabelHidden && 'visually-hidden')}>\n <Text as=\"span\" size=\"100\" className={styles['Tiles-item-name']}>\n {name}\n </Text>\n {hasLink && <ArrowUpRightIcon size={16} className={styles['Tiles-item-icon']} aria-hidden=\"true\" />}\n </span>\n </span>\n )\n\n return (\n <li ref={ref} className={clsx(styles['Tiles-item'], className)} data-testid={testId || testIds.item} {...rest}>\n {hasLink ? (\n <a href={href} className={styles['Tiles-item-link']}>\n {content}\n </a>\n ) : (\n content\n )}\n </li>\n )\n },\n)\n\n/**\n * Use Tiles to display a grid of logos or icons with optional links.\n * @see https://primer.style/brand/components/Tiles\n */\nexport const Tiles = Object.assign(TilesRoot, {\n Item: _Item,\n testIds,\n})\n"],"mappings":";;;;;;;;;AAaA,IAAM,IAAU;CACd,MAAM;CACN,IAAI,OAAO;
|
|
1
|
+
{"version":3,"file":"Tiles.js","names":[],"sources":["../../src/Tiles/Tiles.tsx"],"sourcesContent":["import {clsx} from 'clsx'\nimport React, {createContext, forwardRef, type PropsWithChildren, type Ref, useContext} from 'react'\nimport {ArrowUpRightIcon} from '@primer/octicons-react'\nimport type {BaseProps} from '../component-helpers'\nimport gridlineStyles from '../component-helpers/shared.module.css'\nimport {Text} from '../Text'\n\n/** * Design Tokens */\nimport '@primer/brand-primitives/lib/design-tokens/css/tokens/functional/components/tiles/colors-with-modes.css'\n\n/** * Main Stylesheet (as a CSS Module) */\nimport styles from './Tiles.module.css'\n\nconst testIds = {\n root: 'Tiles',\n get grid() {\n return `${this.root}-grid`\n },\n get item() {\n return `${this.root}-item`\n },\n}\n\ntype TilesVariant = 'default' | 'gridlines'\n\ntype TilesLayout = 'default' | 'compact'\n\nconst TilesContext = createContext<TilesLayout>('default')\n\nexport type TilesProps = {\n /**\n * The visual variant of the Tiles component.\n */\n variant?: TilesVariant\n /**\n * The layout density of the Tiles grid.\n */\n layout?: TilesLayout\n /**\n * Test id for the root Tiles element.\n */\n 'data-testid'?: string\n} & BaseProps<HTMLDivElement> &\n React.HTMLAttributes<HTMLDivElement>\n\nconst TilesRoot = forwardRef(\n (\n {\n variant = 'default',\n layout = 'default',\n children,\n className,\n 'data-testid': testId,\n ...rest\n }: PropsWithChildren<TilesProps>,\n ref: Ref<HTMLDivElement>,\n ) => {\n return (\n <TilesContext.Provider value={layout}>\n <div\n ref={ref}\n className={clsx(\n styles.Tiles,\n styles[`Tiles--variant-${variant}`],\n styles[`Tiles--layout-${layout}`],\n variant === 'gridlines' && gridlineStyles.gridline,\n className,\n )}\n data-testid={testId || testIds.root}\n {...rest}\n >\n <ul className={styles['Tiles-grid']} data-testid={testIds.grid}>\n {children}\n </ul>\n </div>\n </TilesContext.Provider>\n )\n },\n)\n\nexport type TilesItemProps = {\n /**\n * The accessible name for the tile item.\n */\n name: string\n /**\n * Optional URL to link the tile to.\n */\n href?: string\n /**\n * Test id for the tile item element.\n */\n 'data-testid'?: string\n} & BaseProps<HTMLLIElement> &\n Omit<React.HTMLAttributes<HTMLLIElement>, 'children'> & {\n children: React.ReactNode\n }\n\nconst _Item = forwardRef(\n ({name, href, children, className, 'data-testid': testId, ...rest}: TilesItemProps, ref: Ref<HTMLLIElement>) => {\n const layout = useContext(TilesContext)\n const hasLink = Boolean(href)\n const isLabelHidden = layout === 'compact' && !hasLink\n\n const content = (\n <span className={styles['Tiles-item-content']}>\n <span className={styles['Tiles-item-media']} aria-hidden=\"true\">\n {children}\n </span>\n <span className={clsx(styles['Tiles-item-label'], isLabelHidden && 'visually-hidden')}>\n <Text as=\"span\" size=\"100\" className={styles['Tiles-item-name']}>\n {name}\n </Text>\n {hasLink && <ArrowUpRightIcon size={16} className={styles['Tiles-item-icon']} aria-hidden=\"true\" />}\n </span>\n </span>\n )\n\n return (\n <li ref={ref} className={clsx(styles['Tiles-item'], className)} data-testid={testId || testIds.item} {...rest}>\n {hasLink ? (\n <a href={href} className={styles['Tiles-item-link']}>\n {content}\n </a>\n ) : (\n content\n )}\n </li>\n )\n },\n)\n\n/**\n * Use Tiles to display a grid of logos or icons with optional links.\n * @see https://primer.style/brand/components/Tiles\n */\nexport const Tiles = Object.assign(TilesRoot, {\n Item: _Item,\n testIds,\n})\n"],"mappings":";;;;;;;;;AAaA,IAAM,IAAU;CACd,MAAM;CACN,IAAI,OAAO;EACT,OAAO,GAAG,KAAK,KAAK;CACtB;CACA,IAAI,OAAO;EACT,OAAO,GAAG,KAAK,KAAK;CACtB;AACF,GAMM,IAAe,EAA2B,SAAS,GAkBnD,IAAY,GAEd,EACE,aAAU,WACV,YAAS,WACT,aACA,cACA,eAAe,GACf,GAAG,KAEL,MAGE,kBAAC,EAAa,UAAd;CAAuB,OAAO;WAC5B,kBAAC,OAAD;EACO;EACL,WAAW,EACT,EAAO,OACP,EAAO,kBAAkB,MACzB,EAAO,iBAAiB,MACxB,MAAY,eAAe,EAAe,UAC1C,CACF;EACA,eAAa,KAAU,EAAQ;EAC/B,GAAI;YAEJ,kBAAC,MAAD;GAAI,WAAW,EAAO;GAAe,eAAa,EAAQ;GACvD;EACC,CAAA;CACD,CAAA;AACgB,CAAA,CAG7B,GAoBM,IAAQ,GACX,EAAC,SAAM,SAAM,aAAU,cAAW,eAAe,GAAQ,GAAG,KAAuB,MAA4B;CAC9G,IAAM,IAAS,EAAW,CAAY,GAChC,IAAU,EAAQ,GAClB,IAAgB,MAAW,aAAa,CAAC,GAEzC,IACJ,kBAAC,QAAD;EAAM,WAAW,EAAO;YAAxB,CACE,kBAAC,QAAD;GAAM,WAAW,EAAO;GAAqB,eAAY;GACtD;EACG,CAAA,GACN,kBAAC,QAAD;GAAM,WAAW,EAAK,EAAO,qBAAqB,KAAiB,iBAAiB;aAApF,CACE,kBAAC,GAAD;IAAM,IAAG;IAAO,MAAK;IAAM,WAAW,EAAO;cAC1C;GACG,CAAA,GACL,KAAW,kBAAC,GAAD;IAAkB,MAAM;IAAI,WAAW,EAAO;IAAoB,eAAY;GAAQ,CAAA,CAC9F;IACF;;CAGR,OACE,kBAAC,MAAD;EAAS;EAAK,WAAW,EAAK,EAAO,eAAe,CAAS;EAAG,eAAa,KAAU,EAAQ;EAAM,GAAI;YACtG,IACC,kBAAC,KAAD;GAAS;GAAM,WAAW,EAAO;aAC9B;EACA,CAAA,IAEH;CAEA,CAAA;AAER,CACF,GAMa,IAAQ,OAAO,OAAO,GAAW;CAC5C,MAAM;CACN;AACF,CAAC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import './Tiles.module-BzHaDJV8.css'
|
|
2
|
-
|
|
1
|
+
import './Tiles.module-BzHaDJV8.css';//#region src/Tiles/Tiles.module.css
|
|
2
|
+
var e = "Primer_Brand__Tiles-module__Tiles___RhWBm", t = {
|
|
3
|
+
Tiles: e,
|
|
3
4
|
"Tiles-grid": "Primer_Brand__Tiles-module__Tiles-grid___lAoQw",
|
|
4
5
|
"Tiles--layout-compact": "Primer_Brand__Tiles-module__Tiles--layout-compact___HBisD",
|
|
5
6
|
"Tiles--layout-default": "Primer_Brand__Tiles-module__Tiles--layout-default___szHFY",
|
|
@@ -13,6 +14,6 @@ import './Tiles.module-BzHaDJV8.css';var e = {
|
|
|
13
14
|
"Tiles-item-icon": "Primer_Brand__Tiles-module__Tiles-item-icon___2Hu6M"
|
|
14
15
|
};
|
|
15
16
|
//#endregion
|
|
16
|
-
export { e as default };
|
|
17
|
+
export { e as Tiles, t as default };
|
|
17
18
|
|
|
18
19
|
//# sourceMappingURL=Tiles.module.js.map
|