@protonradio/proton-ui 0.11.34 → 0.12.1
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/README.md +1 -1
- package/dist/_virtual/{react-jsx-runtime.production.min.cjs.js → react-jsx-runtime.production.cjs.js} +1 -1
- package/dist/_virtual/react-jsx-runtime.production.cjs.js.map +1 -0
- package/dist/_virtual/react-jsx-runtime.production.es.js +5 -0
- package/dist/_virtual/react-jsx-runtime.production.es.js.map +1 -0
- package/dist/components/ActionMenu/ActionMenu.cjs.js +1 -1
- package/dist/components/ActionMenu/ActionMenu.cjs.js.map +1 -1
- package/dist/components/ActionMenu/ActionMenu.es.js +87 -88
- package/dist/components/ActionMenu/ActionMenu.es.js.map +1 -1
- package/dist/components/Badge/Badge.cjs.js +1 -1
- package/dist/components/Badge/Badge.cjs.js.map +1 -1
- package/dist/components/Badge/Badge.es.js +6 -2
- package/dist/components/Badge/Badge.es.js.map +1 -1
- package/dist/components/Banner/Banner.cjs.js +1 -1
- package/dist/components/Banner/Banner.cjs.js.map +1 -1
- package/dist/components/Banner/Banner.es.js +4 -4
- package/dist/components/Banner/Banner.es.js.map +1 -1
- package/dist/components/Button/Button.cjs.js +1 -1
- package/dist/components/Button/Button.cjs.js.map +1 -1
- package/dist/components/Button/Button.es.js.map +1 -1
- package/dist/components/ButtonGroup/ButtonGroup.cjs.js +1 -1
- package/dist/components/ButtonGroup/ButtonGroup.cjs.js.map +1 -1
- package/dist/components/ButtonGroup/ButtonGroup.es.js +42 -38
- package/dist/components/ButtonGroup/ButtonGroup.es.js.map +1 -1
- package/dist/components/ButtonWithSelect/ButtonWithSelect.cjs.js +1 -1
- package/dist/components/ButtonWithSelect/ButtonWithSelect.cjs.js.map +1 -1
- package/dist/components/ButtonWithSelect/ButtonWithSelect.es.js +12 -12
- package/dist/components/ButtonWithSelect/ButtonWithSelect.es.js.map +1 -1
- package/dist/components/Checkbox/CheckboxIndicator.cjs.js +2 -0
- package/dist/components/Checkbox/CheckboxIndicator.cjs.js.map +1 -0
- package/dist/components/Checkbox/CheckboxIndicator.es.js +44 -0
- package/dist/components/Checkbox/CheckboxIndicator.es.js.map +1 -0
- package/dist/components/Checkbox/CheckboxInput/CheckboxInput.cjs.js +1 -1
- package/dist/components/Checkbox/CheckboxInput/CheckboxInput.cjs.js.map +1 -1
- package/dist/components/Checkbox/CheckboxInput/CheckboxInput.es.js +62 -58
- package/dist/components/Checkbox/CheckboxInput/CheckboxInput.es.js.map +1 -1
- package/dist/components/Checkbox/CheckboxRadioGroup/CheckboxRadioGroup.cjs.js +1 -1
- package/dist/components/Checkbox/CheckboxRadioGroup/CheckboxRadioGroup.cjs.js.map +1 -1
- package/dist/components/Checkbox/CheckboxRadioGroup/CheckboxRadioGroup.es.js +53 -43
- package/dist/components/Checkbox/CheckboxRadioGroup/CheckboxRadioGroup.es.js.map +1 -1
- package/dist/components/Elevation/Elevation.cjs.js +1 -1
- package/dist/components/Elevation/Elevation.cjs.js.map +1 -1
- package/dist/components/Elevation/Elevation.es.js +11 -10
- package/dist/components/Elevation/Elevation.es.js.map +1 -1
- package/dist/components/Icon/IconComponents/AlertCircle.cjs.js +1 -1
- package/dist/components/Icon/IconComponents/AlertCircle.cjs.js.map +1 -1
- package/dist/components/Icon/IconComponents/AlertCircle.es.js +9 -9
- package/dist/components/Icon/IconComponents/AlertCircle.es.js.map +1 -1
- package/dist/components/Icon/IconComponents/AmazonMusicLogo.cjs.js +1 -1
- package/dist/components/Icon/IconComponents/AmazonMusicLogo.cjs.js.map +1 -1
- package/dist/components/Icon/IconComponents/AmazonMusicLogo.es.js +10 -10
- package/dist/components/Icon/IconComponents/AmazonMusicLogo.es.js.map +1 -1
- package/dist/components/Icon/IconComponents/AppleMusicLogo.cjs.js +1 -1
- package/dist/components/Icon/IconComponents/AppleMusicLogo.cjs.js.map +1 -1
- package/dist/components/Icon/IconComponents/AppleMusicLogo.es.js +10 -10
- package/dist/components/Icon/IconComponents/AppleMusicLogo.es.js.map +1 -1
- package/dist/components/Icon/IconComponents/ArrowLeft.cjs.js +1 -1
- package/dist/components/Icon/IconComponents/ArrowLeft.cjs.js.map +1 -1
- package/dist/components/Icon/IconComponents/ArrowLeft.es.js +11 -11
- package/dist/components/Icon/IconComponents/ArrowLeft.es.js.map +1 -1
- package/dist/components/Icon/IconComponents/BandcampLogo.cjs.js +1 -1
- package/dist/components/Icon/IconComponents/BandcampLogo.cjs.js.map +1 -1
- package/dist/components/Icon/IconComponents/BandcampLogo.es.js +16 -16
- package/dist/components/Icon/IconComponents/BandcampLogo.es.js.map +1 -1
- package/dist/components/Icon/IconComponents/BeatportLogo.cjs.js +1 -1
- package/dist/components/Icon/IconComponents/BeatportLogo.cjs.js.map +1 -1
- package/dist/components/Icon/IconComponents/BeatportLogo.es.js +15 -15
- package/dist/components/Icon/IconComponents/BeatportLogo.es.js.map +1 -1
- package/dist/components/Icon/IconComponents/Bell.cjs.js +1 -1
- package/dist/components/Icon/IconComponents/Bell.cjs.js.map +1 -1
- package/dist/components/Icon/IconComponents/Bell.es.js +8 -8
- package/dist/components/Icon/IconComponents/Bell.es.js.map +1 -1
- package/dist/components/Icon/IconComponents/CaretDown.cjs.js +1 -1
- package/dist/components/Icon/IconComponents/CaretDown.cjs.js.map +1 -1
- package/dist/components/Icon/IconComponents/CaretDown.es.js +14 -14
- package/dist/components/Icon/IconComponents/CaretDown.es.js.map +1 -1
- package/dist/components/Icon/IconComponents/CaretRight.cjs.js +1 -1
- package/dist/components/Icon/IconComponents/CaretRight.cjs.js.map +1 -1
- package/dist/components/Icon/IconComponents/CaretRight.es.js +14 -14
- package/dist/components/Icon/IconComponents/CaretRight.es.js.map +1 -1
- package/dist/components/Icon/IconComponents/Chart.cjs.js +1 -1
- package/dist/components/Icon/IconComponents/Chart.cjs.js.map +1 -1
- package/dist/components/Icon/IconComponents/Chart.es.js +14 -14
- package/dist/components/Icon/IconComponents/Chart.es.js.map +1 -1
- package/dist/components/Icon/IconComponents/CheckCircle.cjs.js +1 -1
- package/dist/components/Icon/IconComponents/CheckCircle.cjs.js.map +1 -1
- package/dist/components/Icon/IconComponents/CheckCircle.es.js +9 -9
- package/dist/components/Icon/IconComponents/CheckCircle.es.js.map +1 -1
- package/dist/components/Icon/IconComponents/ChevronDown.cjs.js +1 -1
- package/dist/components/Icon/IconComponents/ChevronDown.cjs.js.map +1 -1
- package/dist/components/Icon/IconComponents/ChevronDown.es.js +13 -9
- package/dist/components/Icon/IconComponents/ChevronDown.es.js.map +1 -1
- package/dist/components/Icon/IconComponents/ChevronLeft.cjs.js +1 -1
- package/dist/components/Icon/IconComponents/ChevronLeft.cjs.js.map +1 -1
- package/dist/components/Icon/IconComponents/ChevronLeft.es.js +12 -8
- package/dist/components/Icon/IconComponents/ChevronLeft.es.js.map +1 -1
- package/dist/components/Icon/IconComponents/ChevronRight.cjs.js +1 -1
- package/dist/components/Icon/IconComponents/ChevronRight.cjs.js.map +1 -1
- package/dist/components/Icon/IconComponents/ChevronRight.es.js +14 -14
- package/dist/components/Icon/IconComponents/ChevronRight.es.js.map +1 -1
- package/dist/components/Icon/IconComponents/ChevronSquareDown.cjs.js +1 -1
- package/dist/components/Icon/IconComponents/ChevronSquareDown.cjs.js.map +1 -1
- package/dist/components/Icon/IconComponents/ChevronSquareDown.es.js +17 -17
- package/dist/components/Icon/IconComponents/ChevronSquareDown.es.js.map +1 -1
- package/dist/components/Icon/IconComponents/ChevronUp.cjs.js +1 -1
- package/dist/components/Icon/IconComponents/ChevronUp.cjs.js.map +1 -1
- package/dist/components/Icon/IconComponents/ChevronUp.es.js +14 -14
- package/dist/components/Icon/IconComponents/ChevronUp.es.js.map +1 -1
- package/dist/components/Icon/IconComponents/Close.cjs.js +1 -1
- package/dist/components/Icon/IconComponents/Close.cjs.js.map +1 -1
- package/dist/components/Icon/IconComponents/Close.es.js +14 -14
- package/dist/components/Icon/IconComponents/Close.es.js.map +1 -1
- package/dist/components/Icon/IconComponents/Cog.cjs.js +1 -1
- package/dist/components/Icon/IconComponents/Cog.cjs.js.map +1 -1
- package/dist/components/Icon/IconComponents/Cog.es.js +15 -11
- package/dist/components/Icon/IconComponents/Cog.es.js.map +1 -1
- package/dist/components/Icon/IconComponents/Copy.cjs.js +1 -1
- package/dist/components/Icon/IconComponents/Copy.cjs.js.map +1 -1
- package/dist/components/Icon/IconComponents/Copy.es.js +11 -11
- package/dist/components/Icon/IconComponents/Copy.es.js.map +1 -1
- package/dist/components/Icon/IconComponents/DangerCircle.cjs.js +1 -1
- package/dist/components/Icon/IconComponents/DangerCircle.cjs.js.map +1 -1
- package/dist/components/Icon/IconComponents/DangerCircle.es.js +11 -11
- package/dist/components/Icon/IconComponents/DangerCircle.es.js.map +1 -1
- package/dist/components/Icon/IconComponents/Dashboard.cjs.js +1 -1
- package/dist/components/Icon/IconComponents/Dashboard.cjs.js.map +1 -1
- package/dist/components/Icon/IconComponents/Dashboard.es.js +15 -11
- package/dist/components/Icon/IconComponents/Dashboard.es.js.map +1 -1
- package/dist/components/Icon/IconComponents/DeezerLogo.cjs.js +1 -1
- package/dist/components/Icon/IconComponents/DeezerLogo.cjs.js.map +1 -1
- package/dist/components/Icon/IconComponents/DeezerLogo.es.js +10 -10
- package/dist/components/Icon/IconComponents/DeezerLogo.es.js.map +1 -1
- package/dist/components/Icon/IconComponents/Download.cjs.js +1 -1
- package/dist/components/Icon/IconComponents/Download.cjs.js.map +1 -1
- package/dist/components/Icon/IconComponents/Download.es.js +13 -9
- package/dist/components/Icon/IconComponents/Download.es.js.map +1 -1
- package/dist/components/Icon/IconComponents/DragHandle.cjs.js +1 -1
- package/dist/components/Icon/IconComponents/DragHandle.cjs.js.map +1 -1
- package/dist/components/Icon/IconComponents/DragHandle.es.js +12 -8
- package/dist/components/Icon/IconComponents/DragHandle.es.js.map +1 -1
- package/dist/components/Icon/IconComponents/Edit.cjs.js +1 -1
- package/dist/components/Icon/IconComponents/Edit.cjs.js.map +1 -1
- package/dist/components/Icon/IconComponents/Edit.es.js +13 -9
- package/dist/components/Icon/IconComponents/Edit.es.js.map +1 -1
- package/dist/components/Icon/IconComponents/Ellipsis.cjs.js +1 -1
- package/dist/components/Icon/IconComponents/Ellipsis.cjs.js.map +1 -1
- package/dist/components/Icon/IconComponents/Ellipsis.es.js +14 -10
- package/dist/components/Icon/IconComponents/Ellipsis.es.js.map +1 -1
- package/dist/components/Icon/IconComponents/EmailThick.cjs.js +1 -1
- package/dist/components/Icon/IconComponents/EmailThick.cjs.js.map +1 -1
- package/dist/components/Icon/IconComponents/EmailThick.es.js +15 -11
- package/dist/components/Icon/IconComponents/EmailThick.es.js.map +1 -1
- package/dist/components/Icon/IconComponents/EmailThin.cjs.js +1 -1
- package/dist/components/Icon/IconComponents/EmailThin.cjs.js.map +1 -1
- package/dist/components/Icon/IconComponents/EmailThin.es.js +15 -11
- package/dist/components/Icon/IconComponents/EmailThin.es.js.map +1 -1
- package/dist/components/Icon/IconComponents/ExternalLink.cjs.js +1 -1
- package/dist/components/Icon/IconComponents/ExternalLink.cjs.js.map +1 -1
- package/dist/components/Icon/IconComponents/ExternalLink.es.js +18 -14
- package/dist/components/Icon/IconComponents/ExternalLink.es.js.map +1 -1
- package/dist/components/Icon/IconComponents/FacebookLogo.cjs.js +1 -1
- package/dist/components/Icon/IconComponents/FacebookLogo.cjs.js.map +1 -1
- package/dist/components/Icon/IconComponents/FacebookLogo.es.js +10 -10
- package/dist/components/Icon/IconComponents/FacebookLogo.es.js.map +1 -1
- package/dist/components/Icon/IconComponents/Globe.cjs.js +1 -1
- package/dist/components/Icon/IconComponents/Globe.cjs.js.map +1 -1
- package/dist/components/Icon/IconComponents/Globe.es.js +12 -8
- package/dist/components/Icon/IconComponents/Globe.es.js.map +1 -1
- package/dist/components/Icon/IconComponents/Hamburger.cjs.js +1 -1
- package/dist/components/Icon/IconComponents/Hamburger.cjs.js.map +1 -1
- package/dist/components/Icon/IconComponents/Hamburger.es.js +16 -12
- package/dist/components/Icon/IconComponents/Hamburger.es.js.map +1 -1
- package/dist/components/Icon/IconComponents/Heartbeat.cjs.js +1 -1
- package/dist/components/Icon/IconComponents/Heartbeat.cjs.js.map +1 -1
- package/dist/components/Icon/IconComponents/Heartbeat.es.js +16 -12
- package/dist/components/Icon/IconComponents/Heartbeat.es.js.map +1 -1
- package/dist/components/Icon/IconComponents/Info.cjs.js +1 -1
- package/dist/components/Icon/IconComponents/Info.cjs.js.map +1 -1
- package/dist/components/Icon/IconComponents/Info.es.js +9 -9
- package/dist/components/Icon/IconComponents/Info.es.js.map +1 -1
- package/dist/components/Icon/IconComponents/InfoOutline.cjs.js +1 -1
- package/dist/components/Icon/IconComponents/InfoOutline.cjs.js.map +1 -1
- package/dist/components/Icon/IconComponents/InfoOutline.es.js +15 -11
- package/dist/components/Icon/IconComponents/InfoOutline.es.js.map +1 -1
- package/dist/components/Icon/IconComponents/InstagramLogo.cjs.js +1 -1
- package/dist/components/Icon/IconComponents/InstagramLogo.cjs.js.map +1 -1
- package/dist/components/Icon/IconComponents/InstagramLogo.es.js +10 -10
- package/dist/components/Icon/IconComponents/InstagramLogo.es.js.map +1 -1
- package/dist/components/Icon/IconComponents/IntercomLogo.cjs.js +1 -1
- package/dist/components/Icon/IconComponents/IntercomLogo.cjs.js.map +1 -1
- package/dist/components/Icon/IconComponents/IntercomLogo.es.js +10 -10
- package/dist/components/Icon/IconComponents/IntercomLogo.es.js.map +1 -1
- package/dist/components/Icon/IconComponents/Lightning.cjs.js +1 -1
- package/dist/components/Icon/IconComponents/Lightning.cjs.js.map +1 -1
- package/dist/components/Icon/IconComponents/Lightning.es.js +16 -12
- package/dist/components/Icon/IconComponents/Lightning.es.js.map +1 -1
- package/dist/components/Icon/IconComponents/Link.cjs.js +1 -1
- package/dist/components/Icon/IconComponents/Link.cjs.js.map +1 -1
- package/dist/components/Icon/IconComponents/Link.es.js +12 -8
- package/dist/components/Icon/IconComponents/Link.es.js.map +1 -1
- package/dist/components/Icon/IconComponents/MessengerLogo.cjs.js +1 -1
- package/dist/components/Icon/IconComponents/MessengerLogo.cjs.js.map +1 -1
- package/dist/components/Icon/IconComponents/MessengerLogo.es.js +9 -9
- package/dist/components/Icon/IconComponents/MessengerLogo.es.js.map +1 -1
- package/dist/components/Icon/IconComponents/MusicNote.cjs.js +1 -1
- package/dist/components/Icon/IconComponents/MusicNote.cjs.js.map +1 -1
- package/dist/components/Icon/IconComponents/MusicNote.es.js +15 -11
- package/dist/components/Icon/IconComponents/MusicNote.es.js.map +1 -1
- package/dist/components/Icon/IconComponents/Pause.cjs.js +1 -1
- package/dist/components/Icon/IconComponents/Pause.cjs.js.map +1 -1
- package/dist/components/Icon/IconComponents/Pause.es.js +17 -13
- package/dist/components/Icon/IconComponents/Pause.es.js.map +1 -1
- package/dist/components/Icon/IconComponents/Pencil.cjs.js +1 -1
- package/dist/components/Icon/IconComponents/Pencil.cjs.js.map +1 -1
- package/dist/components/Icon/IconComponents/Pencil.es.js +15 -11
- package/dist/components/Icon/IconComponents/Pencil.es.js.map +1 -1
- package/dist/components/Icon/IconComponents/PhoneThick.cjs.js +1 -1
- package/dist/components/Icon/IconComponents/PhoneThick.cjs.js.map +1 -1
- package/dist/components/Icon/IconComponents/PhoneThick.es.js +17 -13
- package/dist/components/Icon/IconComponents/PhoneThick.es.js.map +1 -1
- package/dist/components/Icon/IconComponents/PhoneThin.cjs.js +1 -1
- package/dist/components/Icon/IconComponents/PhoneThin.cjs.js.map +1 -1
- package/dist/components/Icon/IconComponents/PhoneThin.es.js +17 -13
- package/dist/components/Icon/IconComponents/PhoneThin.es.js.map +1 -1
- package/dist/components/Icon/IconComponents/Play.cjs.js +1 -1
- package/dist/components/Icon/IconComponents/Play.cjs.js.map +1 -1
- package/dist/components/Icon/IconComponents/Play.es.js +13 -9
- package/dist/components/Icon/IconComponents/Play.es.js.map +1 -1
- package/dist/components/Icon/IconComponents/ProtonLogo.cjs.js +1 -1
- package/dist/components/Icon/IconComponents/ProtonLogo.cjs.js.map +1 -1
- package/dist/components/Icon/IconComponents/ProtonLogo.es.js +10 -10
- package/dist/components/Icon/IconComponents/ProtonLogo.es.js.map +1 -1
- package/dist/components/Icon/IconComponents/Quote.cjs.js +1 -1
- package/dist/components/Icon/IconComponents/Quote.cjs.js.map +1 -1
- package/dist/components/Icon/IconComponents/Quote.es.js +18 -14
- package/dist/components/Icon/IconComponents/Quote.es.js.map +1 -1
- package/dist/components/Icon/IconComponents/Search.cjs.js +1 -1
- package/dist/components/Icon/IconComponents/Search.cjs.js.map +1 -1
- package/dist/components/Icon/IconComponents/Search.es.js +14 -14
- package/dist/components/Icon/IconComponents/Search.es.js.map +1 -1
- package/dist/components/Icon/IconComponents/Share.cjs.js +1 -1
- package/dist/components/Icon/IconComponents/Share.cjs.js.map +1 -1
- package/dist/components/Icon/IconComponents/Share.es.js +13 -9
- package/dist/components/Icon/IconComponents/Share.es.js.map +1 -1
- package/dist/components/Icon/IconComponents/SignOut.cjs.js +1 -1
- package/dist/components/Icon/IconComponents/SignOut.cjs.js.map +1 -1
- package/dist/components/Icon/IconComponents/SignOut.es.js +15 -11
- package/dist/components/Icon/IconComponents/SignOut.es.js.map +1 -1
- package/dist/components/Icon/IconComponents/SoundcloudLogo.cjs.js +1 -1
- package/dist/components/Icon/IconComponents/SoundcloudLogo.cjs.js.map +1 -1
- package/dist/components/Icon/IconComponents/SoundcloudLogo.es.js +10 -10
- package/dist/components/Icon/IconComponents/SoundcloudLogo.es.js.map +1 -1
- package/dist/components/Icon/IconComponents/SpotifyLogo.cjs.js +1 -1
- package/dist/components/Icon/IconComponents/SpotifyLogo.cjs.js.map +1 -1
- package/dist/components/Icon/IconComponents/SpotifyLogo.es.js +10 -10
- package/dist/components/Icon/IconComponents/SpotifyLogo.es.js.map +1 -1
- package/dist/components/Icon/IconComponents/Spy.cjs.js +1 -1
- package/dist/components/Icon/IconComponents/Spy.cjs.js.map +1 -1
- package/dist/components/Icon/IconComponents/Spy.es.js +13 -9
- package/dist/components/Icon/IconComponents/Spy.es.js.map +1 -1
- package/dist/components/Icon/IconComponents/SuccessCircle.cjs.js +1 -1
- package/dist/components/Icon/IconComponents/SuccessCircle.cjs.js.map +1 -1
- package/dist/components/Icon/IconComponents/SuccessCircle.es.js +9 -9
- package/dist/components/Icon/IconComponents/SuccessCircle.es.js.map +1 -1
- package/dist/components/Icon/IconComponents/TelegramLogo.cjs.js +1 -1
- package/dist/components/Icon/IconComponents/TelegramLogo.cjs.js.map +1 -1
- package/dist/components/Icon/IconComponents/TelegramLogo.es.js +14 -14
- package/dist/components/Icon/IconComponents/TelegramLogo.es.js.map +1 -1
- package/dist/components/Icon/IconComponents/TiktokLogo.cjs.js +1 -1
- package/dist/components/Icon/IconComponents/TiktokLogo.cjs.js.map +1 -1
- package/dist/components/Icon/IconComponents/TiktokLogo.es.js +10 -10
- package/dist/components/Icon/IconComponents/TiktokLogo.es.js.map +1 -1
- package/dist/components/Icon/IconComponents/Tracklist.cjs.js +1 -1
- package/dist/components/Icon/IconComponents/Tracklist.cjs.js.map +1 -1
- package/dist/components/Icon/IconComponents/Tracklist.es.js +16 -12
- package/dist/components/Icon/IconComponents/Tracklist.es.js.map +1 -1
- package/dist/components/Icon/IconComponents/TrashCan.cjs.js +1 -1
- package/dist/components/Icon/IconComponents/TrashCan.cjs.js.map +1 -1
- package/dist/components/Icon/IconComponents/TrashCan.es.js +13 -9
- package/dist/components/Icon/IconComponents/TrashCan.es.js.map +1 -1
- package/dist/components/Icon/IconComponents/TraxsourceLogo.cjs.js +1 -1
- package/dist/components/Icon/IconComponents/TraxsourceLogo.cjs.js.map +1 -1
- package/dist/components/Icon/IconComponents/TraxsourceLogo.es.js +14 -14
- package/dist/components/Icon/IconComponents/TraxsourceLogo.es.js.map +1 -1
- package/dist/components/Icon/IconComponents/User.cjs.js +1 -1
- package/dist/components/Icon/IconComponents/User.cjs.js.map +1 -1
- package/dist/components/Icon/IconComponents/User.es.js +9 -9
- package/dist/components/Icon/IconComponents/User.es.js.map +1 -1
- package/dist/components/Icon/IconComponents/Users.cjs.js +1 -1
- package/dist/components/Icon/IconComponents/Users.cjs.js.map +1 -1
- package/dist/components/Icon/IconComponents/Users.es.js +12 -8
- package/dist/components/Icon/IconComponents/Users.es.js.map +1 -1
- package/dist/components/Icon/IconComponents/WarningTriangle.cjs.js +1 -1
- package/dist/components/Icon/IconComponents/WarningTriangle.cjs.js.map +1 -1
- package/dist/components/Icon/IconComponents/WarningTriangle.es.js +13 -13
- package/dist/components/Icon/IconComponents/WarningTriangle.es.js.map +1 -1
- package/dist/components/Icon/IconComponents/WhatsappLogoThick.cjs.js +1 -1
- package/dist/components/Icon/IconComponents/WhatsappLogoThick.cjs.js.map +1 -1
- package/dist/components/Icon/IconComponents/WhatsappLogoThick.es.js +14 -14
- package/dist/components/Icon/IconComponents/WhatsappLogoThick.es.js.map +1 -1
- package/dist/components/Icon/IconComponents/WhatsappLogoThin.cjs.js +1 -1
- package/dist/components/Icon/IconComponents/WhatsappLogoThin.cjs.js.map +1 -1
- package/dist/components/Icon/IconComponents/WhatsappLogoThin.es.js +10 -10
- package/dist/components/Icon/IconComponents/WhatsappLogoThin.es.js.map +1 -1
- package/dist/components/Icon/IconComponents/XTwitterLogo.cjs.js +1 -1
- package/dist/components/Icon/IconComponents/XTwitterLogo.cjs.js.map +1 -1
- package/dist/components/Icon/IconComponents/XTwitterLogo.es.js +9 -9
- package/dist/components/Icon/IconComponents/XTwitterLogo.es.js.map +1 -1
- package/dist/components/Icon/IconComponents/YandexLogo.cjs.js +1 -1
- package/dist/components/Icon/IconComponents/YandexLogo.cjs.js.map +1 -1
- package/dist/components/Icon/IconComponents/YandexLogo.es.js +14 -14
- package/dist/components/Icon/IconComponents/YandexLogo.es.js.map +1 -1
- package/dist/components/Icon/IconComponents/YoutubeLogo.cjs.js +1 -1
- package/dist/components/Icon/IconComponents/YoutubeLogo.cjs.js.map +1 -1
- package/dist/components/Icon/IconComponents/YoutubeLogo.es.js +10 -10
- package/dist/components/Icon/IconComponents/YoutubeLogo.es.js.map +1 -1
- package/dist/components/Icon/IconProps.cjs.js +1 -1
- package/dist/components/Icon/IconProps.cjs.js.map +1 -1
- package/dist/components/Icon/IconProps.es.js +11 -7
- package/dist/components/Icon/IconProps.es.js.map +1 -1
- package/dist/components/ImageBackground/ImageBackground.cjs.js +1 -1
- package/dist/components/ImageBackground/ImageBackground.cjs.js.map +1 -1
- package/dist/components/ImageBackground/ImageBackground.es.js +5 -5
- package/dist/components/ImageBackground/ImageBackground.es.js.map +1 -1
- package/dist/components/Input/BaseInput/Input.cjs.js +1 -1
- package/dist/components/Input/BaseInput/Input.cjs.js.map +1 -1
- package/dist/components/Input/BaseInput/Input.es.js +63 -62
- package/dist/components/Input/BaseInput/Input.es.js.map +1 -1
- package/dist/components/Input/CopyInput/CopyInput.cjs.js +1 -1
- package/dist/components/Input/CopyInput/CopyInput.cjs.js.map +1 -1
- package/dist/components/Input/CopyInput/CopyInput.es.js +5 -2
- package/dist/components/Input/CopyInput/CopyInput.es.js.map +1 -1
- package/dist/components/Input/OTPInput/OTPInput.cjs.js +1 -1
- package/dist/components/Input/OTPInput/OTPInput.cjs.js.map +1 -1
- package/dist/components/Input/OTPInput/OTPInput.es.js.map +1 -1
- package/dist/components/Input/SearchInput/SearchInput.cjs.js.map +1 -1
- package/dist/components/Input/SearchInput/SearchInput.es.js.map +1 -1
- package/dist/components/Menu/MenuTrigger.cjs.js +1 -1
- package/dist/components/Menu/MenuTrigger.cjs.js.map +1 -1
- package/dist/components/Menu/MenuTrigger.es.js.map +1 -1
- package/dist/components/Menu/PopoverMenu.cjs.js +1 -1
- package/dist/components/Menu/PopoverMenu.cjs.js.map +1 -1
- package/dist/components/Menu/PopoverMenu.es.js +31 -30
- package/dist/components/Menu/PopoverMenu.es.js.map +1 -1
- package/dist/components/Modal/Modal.cjs.js +1 -1
- package/dist/components/Modal/Modal.cjs.js.map +1 -1
- package/dist/components/Modal/Modal.es.js +46 -41
- package/dist/components/Modal/Modal.es.js.map +1 -1
- package/dist/components/Overlay/Overlay.cjs.js +2 -0
- package/dist/components/Overlay/Overlay.cjs.js.map +1 -0
- package/dist/components/Overlay/Overlay.es.js +25 -0
- package/dist/components/Overlay/Overlay.es.js.map +1 -0
- package/dist/components/Popover/Popover.cjs.js +1 -1
- package/dist/components/Popover/Popover.cjs.js.map +1 -1
- package/dist/components/Popover/Popover.es.js +35 -29
- package/dist/components/Popover/Popover.es.js.map +1 -1
- package/dist/components/ScreenOverlay/ScreenOverlay.cjs.js +1 -1
- package/dist/components/ScreenOverlay/ScreenOverlay.cjs.js.map +1 -1
- package/dist/components/ScreenOverlay/ScreenOverlay.es.js.map +1 -1
- package/dist/components/Select/Select.cjs.js +1 -1
- package/dist/components/Select/Select.cjs.js.map +1 -1
- package/dist/components/Select/Select.es.js +104 -106
- package/dist/components/Select/Select.es.js.map +1 -1
- package/dist/components/Switch/Switch.cjs.js +1 -1
- package/dist/components/Switch/Switch.cjs.js.map +1 -1
- package/dist/components/Switch/Switch.es.js +42 -29
- package/dist/components/Switch/Switch.es.js.map +1 -1
- package/dist/components/Table/BaseTable/Collection/CompoundComponents.cjs.js.map +1 -1
- package/dist/components/Table/BaseTable/Collection/CompoundComponents.es.js.map +1 -1
- package/dist/components/Table/BaseTable/Collection/collectionParser.cjs.js +1 -1
- package/dist/components/Table/BaseTable/Collection/collectionParser.cjs.js.map +1 -1
- package/dist/components/Table/BaseTable/Collection/collectionParser.es.js.map +1 -1
- package/dist/components/Table/BaseTable/Collection/useTableCollection.cjs.js.map +1 -1
- package/dist/components/Table/BaseTable/Collection/useTableCollection.es.js.map +1 -1
- package/dist/components/Table/BaseTable/Table.cjs.js +1 -1
- package/dist/components/Table/BaseTable/Table.cjs.js.map +1 -1
- package/dist/components/Table/BaseTable/Table.es.js +5 -5
- package/dist/components/Table/BaseTable/Table.es.js.map +1 -1
- package/dist/components/Table/BaseTable/elements/TableBody.cjs.js.map +1 -1
- package/dist/components/Table/BaseTable/elements/TableBody.es.js.map +1 -1
- package/dist/components/Table/BaseTable/elements/TableCell.cjs.js.map +1 -1
- package/dist/components/Table/BaseTable/elements/TableCell.es.js.map +1 -1
- package/dist/components/Table/BaseTable/elements/TableHeader.cjs.js.map +1 -1
- package/dist/components/Table/BaseTable/elements/TableHeader.es.js.map +1 -1
- package/dist/components/Table/BaseTable/elements/TableHeaderCell.cjs.js.map +1 -1
- package/dist/components/Table/BaseTable/elements/TableHeaderCell.es.js.map +1 -1
- package/dist/components/Table/BaseTable/elements/TableHeaderRow.cjs.js.map +1 -1
- package/dist/components/Table/BaseTable/elements/TableHeaderRow.es.js.map +1 -1
- package/dist/components/Table/BaseTable/elements/TableRoot.cjs.js.map +1 -1
- package/dist/components/Table/BaseTable/elements/TableRoot.es.js.map +1 -1
- package/dist/components/Table/BaseTable/elements/TableRow.cjs.js.map +1 -1
- package/dist/components/Table/BaseTable/elements/TableRow.es.js.map +1 -1
- package/dist/components/Table/DataTable/DataTable.cjs.js +1 -1
- package/dist/components/Table/DataTable/DataTable.cjs.js.map +1 -1
- package/dist/components/Table/DataTable/DataTable.es.js +26 -26
- package/dist/components/Table/DataTable/DataTable.es.js.map +1 -1
- package/dist/components/Table/DataTable/DataTableRow.cjs.js +1 -1
- package/dist/components/Table/DataTable/DataTableRow.cjs.js.map +1 -1
- package/dist/components/Table/DataTable/DataTableRow.es.js +23 -17
- package/dist/components/Table/DataTable/DataTableRow.es.js.map +1 -1
- package/dist/components/Text/TextCountdown/TextCountdown.cjs.js +1 -1
- package/dist/components/Text/TextCountdown/TextCountdown.cjs.js.map +1 -1
- package/dist/components/Text/TextCountdown/TextCountdown.es.js.map +1 -1
- package/dist/components/Text/TextEllipsis/TextEllipsis.cjs.js.map +1 -1
- package/dist/components/Text/TextEllipsis/TextEllipsis.es.js.map +1 -1
- package/dist/components/Text/TextEmphasis/TextEmphasis.cjs.js.map +1 -1
- package/dist/components/Text/TextEmphasis/TextEmphasis.es.js.map +1 -1
- package/dist/components/ThemeProvider.cjs.js +1 -1
- package/dist/components/ThemeProvider.cjs.js.map +1 -1
- package/dist/components/ThemeProvider.es.js +4 -4
- package/dist/components/ThemeProvider.es.js.map +1 -1
- package/dist/components/Tombstone/Tombstone.cjs.js.map +1 -1
- package/dist/components/Tombstone/Tombstone.es.js.map +1 -1
- package/dist/components/Tooltip/ResponsiveTooltip.cjs.js +1 -1
- package/dist/components/Tooltip/ResponsiveTooltip.cjs.js.map +1 -1
- package/dist/components/Tooltip/ResponsiveTooltip.es.js +48 -46
- package/dist/components/Tooltip/ResponsiveTooltip.es.js.map +1 -1
- package/dist/components/Tooltip/Tooltip.cjs.js +1 -1
- package/dist/components/Tooltip/Tooltip.cjs.js.map +1 -1
- package/dist/components/Tooltip/Tooltip.es.js +57 -52
- package/dist/components/Tooltip/Tooltip.es.js.map +1 -1
- package/dist/components/Waveform/Waveform.cjs.js +1 -1
- package/dist/components/Waveform/Waveform.cjs.js.map +1 -1
- package/dist/components/Waveform/Waveform.es.js +1 -1
- package/dist/components/Waveform/Waveform.es.js.map +1 -1
- package/dist/components/Waveform/WaveformBar.cjs.js.map +1 -1
- package/dist/components/Waveform/WaveformBar.es.js.map +1 -1
- package/dist/constants.cjs.js +1 -1
- package/dist/constants.d.ts +5 -3
- package/dist/constants.es.js +2 -4
- package/dist/constants.es.js.map +1 -1
- package/dist/dark.d.ts +3 -3
- package/dist/design/colors.cjs.js.map +1 -1
- package/dist/design/colors.es.js.map +1 -1
- package/dist/design/darkTheme/colors.cjs.js +1 -1
- package/dist/design/darkTheme/colors.cjs.js.map +1 -1
- package/dist/design/darkTheme/colors.es.js +7 -7
- package/dist/design/darkTheme/colors.es.js.map +1 -1
- package/dist/design/darkTheme/stylesheet.cjs.js +1 -1
- package/dist/design/darkTheme/stylesheet.cjs.js.map +1 -1
- package/dist/design/darkTheme/stylesheet.es.js +17 -14
- package/dist/design/darkTheme/stylesheet.es.js.map +1 -1
- package/dist/design/generateStylesheet.cjs.js.map +1 -1
- package/dist/design/generateStylesheet.es.js.map +1 -1
- package/dist/design/lightTheme/colors.cjs.js.map +1 -1
- package/dist/design/lightTheme/colors.es.js +3 -3
- package/dist/design/lightTheme/stylesheet.cjs.js +1 -1
- package/dist/design/lightTheme/stylesheet.cjs.js.map +1 -1
- package/dist/design/lightTheme/stylesheet.es.js +17 -17
- package/dist/design/lightTheme/stylesheet.es.js.map +1 -1
- package/dist/hooks/useBreakpoint.cjs.js +1 -1
- package/dist/hooks/useBreakpoint.cjs.js.map +1 -1
- package/dist/hooks/useBreakpoint.es.js +13 -12
- package/dist/hooks/useBreakpoint.es.js.map +1 -1
- package/dist/hooks/useIsClosing.cjs.js +1 -1
- package/dist/hooks/useIsClosing.cjs.js.map +1 -1
- package/dist/hooks/useIsClosing.es.js.map +1 -1
- package/dist/hooks/useLockBodyScroll.cjs.js.map +1 -1
- package/dist/hooks/useLockBodyScroll.es.js.map +1 -1
- package/dist/hooks/useMergedRef.cjs.js +2 -0
- package/dist/hooks/useMergedRef.cjs.js.map +1 -0
- package/dist/hooks/useMergedRef.es.js +13 -0
- package/dist/hooks/useMergedRef.es.js.map +1 -0
- package/dist/hooks/usePalette.cjs.js +1 -1
- package/dist/hooks/usePalette.cjs.js.map +1 -1
- package/dist/hooks/usePalette.es.js.map +1 -1
- package/dist/hooks.cjs.js +1 -1
- package/dist/hooks.d.ts +12 -1
- package/dist/hooks.es.js +6 -4
- package/dist/hooks.es.js.map +1 -1
- package/dist/icons.d.ts +79 -74
- package/dist/index.cjs.js +1 -1
- package/dist/index.d.ts +131 -151
- package/dist/index.es.js +20 -20
- package/dist/light.d.ts +1 -1
- package/dist/node_modules/color2k/dist/index.exports.import.es.cjs.js.map +1 -1
- package/dist/node_modules/color2k/dist/index.exports.import.es.es.js.map +1 -1
- package/dist/node_modules/react/cjs/react-jsx-runtime.development.cjs.js +4 -12
- package/dist/node_modules/react/cjs/react-jsx-runtime.development.cjs.js.map +1 -1
- package/dist/node_modules/react/cjs/react-jsx-runtime.development.es.js +193 -557
- package/dist/node_modules/react/cjs/react-jsx-runtime.development.es.js.map +1 -1
- package/dist/node_modules/react/cjs/react-jsx-runtime.production.cjs.js +10 -0
- package/dist/node_modules/react/cjs/react-jsx-runtime.production.cjs.js.map +1 -0
- package/dist/node_modules/react/cjs/react-jsx-runtime.production.es.js +36 -0
- package/dist/node_modules/react/cjs/react-jsx-runtime.production.es.js.map +1 -0
- package/dist/node_modules/react/jsx-runtime.cjs.js +1 -1
- package/dist/node_modules/react/jsx-runtime.cjs.js.map +1 -1
- package/dist/node_modules/react/jsx-runtime.es.js +1 -1
- package/dist/node_modules/react/jsx-runtime.es.js.map +1 -1
- package/dist/style.css +1 -1
- package/dist/theme.d.ts +20 -4
- package/dist/utils/color2k.cjs.js.map +1 -1
- package/dist/utils/color2k.es.js +2 -2
- package/dist/utils/color2k.es.js.map +1 -1
- package/dist/utils/copy.cjs.js +1 -1
- package/dist/utils/copy.cjs.js.map +1 -1
- package/dist/utils/copy.es.js +12 -11
- package/dist/utils/copy.es.js.map +1 -1
- package/dist/utils/deepEqual.cjs.js.map +1 -1
- package/dist/utils/deepEqual.es.js.map +1 -1
- package/dist/utils/image.cjs.js +1 -1
- package/dist/utils/image.cjs.js.map +1 -1
- package/dist/utils/image.es.js +15 -14
- package/dist/utils/image.es.js.map +1 -1
- package/dist/utils/navigation.cjs.js.map +1 -1
- package/dist/utils/navigation.es.js.map +1 -1
- package/dist/utils/palette.cjs.js +1 -1
- package/dist/utils/palette.cjs.js.map +1 -1
- package/dist/utils/palette.es.js +40 -34
- package/dist/utils/palette.es.js.map +1 -1
- package/package.json +21 -28
- package/dist/_virtual/react-jsx-runtime.production.min.cjs.js.map +0 -1
- package/dist/_virtual/react-jsx-runtime.production.min.es.js +0 -5
- package/dist/_virtual/react-jsx-runtime.production.min.es.js.map +0 -1
- package/dist/components/Dialog/Dialog.cjs.js +0 -2
- package/dist/components/Dialog/Dialog.cjs.js.map +0 -1
- package/dist/components/Dialog/Dialog.es.js +0 -15
- package/dist/components/Dialog/Dialog.es.js.map +0 -1
- package/dist/constants/placement.cjs.js +0 -2
- package/dist/constants/placement.cjs.js.map +0 -1
- package/dist/constants/placement.es.js +0 -28
- package/dist/constants/placement.es.js.map +0 -1
- package/dist/node_modules/@react-aria/dialog/dist/useDialog.cjs.js +0 -2
- package/dist/node_modules/@react-aria/dialog/dist/useDialog.cjs.js.map +0 -1
- package/dist/node_modules/@react-aria/dialog/dist/useDialog.es.js +0 -44
- package/dist/node_modules/@react-aria/dialog/dist/useDialog.es.js.map +0 -1
- package/dist/node_modules/@react-aria/focus/dist/FocusScope.cjs.js +0 -2
- package/dist/node_modules/@react-aria/focus/dist/FocusScope.cjs.js.map +0 -1
- package/dist/node_modules/@react-aria/focus/dist/FocusScope.es.js +0 -88
- package/dist/node_modules/@react-aria/focus/dist/FocusScope.es.js.map +0 -1
- package/dist/node_modules/@react-aria/form/dist/useFormValidation.cjs.js +0 -2
- package/dist/node_modules/@react-aria/form/dist/useFormValidation.cjs.js.map +0 -1
- package/dist/node_modules/@react-aria/form/dist/useFormValidation.es.js +0 -78
- package/dist/node_modules/@react-aria/form/dist/useFormValidation.es.js.map +0 -1
- package/dist/node_modules/@react-aria/i18n/dist/context.cjs.js +0 -2
- package/dist/node_modules/@react-aria/i18n/dist/context.cjs.js.map +0 -1
- package/dist/node_modules/@react-aria/i18n/dist/context.es.js +0 -11
- package/dist/node_modules/@react-aria/i18n/dist/context.es.js.map +0 -1
- package/dist/node_modules/@react-aria/i18n/dist/useDefaultLocale.cjs.js +0 -2
- package/dist/node_modules/@react-aria/i18n/dist/useDefaultLocale.cjs.js.map +0 -1
- package/dist/node_modules/@react-aria/i18n/dist/useDefaultLocale.es.js +0 -30
- package/dist/node_modules/@react-aria/i18n/dist/useDefaultLocale.es.js.map +0 -1
- package/dist/node_modules/@react-aria/i18n/dist/utils.cjs.js +0 -2
- package/dist/node_modules/@react-aria/i18n/dist/utils.cjs.js.map +0 -1
- package/dist/node_modules/@react-aria/i18n/dist/utils.es.js +0 -45
- package/dist/node_modules/@react-aria/i18n/dist/utils.es.js.map +0 -1
- package/dist/node_modules/@react-aria/interactions/dist/context.cjs.js +0 -2
- package/dist/node_modules/@react-aria/interactions/dist/context.cjs.js.map +0 -1
- package/dist/node_modules/@react-aria/interactions/dist/context.es.js +0 -10
- package/dist/node_modules/@react-aria/interactions/dist/context.es.js.map +0 -1
- package/dist/node_modules/@react-aria/interactions/dist/createEventHandler.cjs.js +0 -2
- package/dist/node_modules/@react-aria/interactions/dist/createEventHandler.cjs.js.map +0 -1
- package/dist/node_modules/@react-aria/interactions/dist/createEventHandler.es.js +0 -29
- package/dist/node_modules/@react-aria/interactions/dist/createEventHandler.es.js.map +0 -1
- package/dist/node_modules/@react-aria/interactions/dist/focusSafely.cjs.js +0 -2
- package/dist/node_modules/@react-aria/interactions/dist/focusSafely.cjs.js.map +0 -1
- package/dist/node_modules/@react-aria/interactions/dist/focusSafely.es.js +0 -15
- package/dist/node_modules/@react-aria/interactions/dist/focusSafely.es.js.map +0 -1
- package/dist/node_modules/@react-aria/interactions/dist/textSelection.cjs.js +0 -2
- package/dist/node_modules/@react-aria/interactions/dist/textSelection.cjs.js.map +0 -1
- package/dist/node_modules/@react-aria/interactions/dist/textSelection.es.js +0 -35
- package/dist/node_modules/@react-aria/interactions/dist/textSelection.es.js.map +0 -1
- package/dist/node_modules/@react-aria/interactions/dist/useFocus.cjs.js +0 -2
- package/dist/node_modules/@react-aria/interactions/dist/useFocus.cjs.js.map +0 -1
- package/dist/node_modules/@react-aria/interactions/dist/useFocus.es.js +0 -30
- package/dist/node_modules/@react-aria/interactions/dist/useFocus.es.js.map +0 -1
- package/dist/node_modules/@react-aria/interactions/dist/useFocusVisible.cjs.js +0 -2
- package/dist/node_modules/@react-aria/interactions/dist/useFocusVisible.cjs.js.map +0 -1
- package/dist/node_modules/@react-aria/interactions/dist/useFocusVisible.es.js +0 -63
- package/dist/node_modules/@react-aria/interactions/dist/useFocusVisible.es.js.map +0 -1
- package/dist/node_modules/@react-aria/interactions/dist/useFocusWithin.cjs.js +0 -2
- package/dist/node_modules/@react-aria/interactions/dist/useFocusWithin.cjs.js.map +0 -1
- package/dist/node_modules/@react-aria/interactions/dist/useFocusWithin.es.js +0 -56
- package/dist/node_modules/@react-aria/interactions/dist/useFocusWithin.es.js.map +0 -1
- package/dist/node_modules/@react-aria/interactions/dist/useFocusable.cjs.js +0 -2
- package/dist/node_modules/@react-aria/interactions/dist/useFocusable.cjs.js.map +0 -1
- package/dist/node_modules/@react-aria/interactions/dist/useFocusable.es.js +0 -32
- package/dist/node_modules/@react-aria/interactions/dist/useFocusable.es.js.map +0 -1
- package/dist/node_modules/@react-aria/interactions/dist/useKeyboard.cjs.js +0 -2
- package/dist/node_modules/@react-aria/interactions/dist/useKeyboard.cjs.js.map +0 -1
- package/dist/node_modules/@react-aria/interactions/dist/useKeyboard.es.js +0 -13
- package/dist/node_modules/@react-aria/interactions/dist/useKeyboard.es.js.map +0 -1
- package/dist/node_modules/@react-aria/interactions/dist/usePress.cjs.js +0 -8
- package/dist/node_modules/@react-aria/interactions/dist/usePress.cjs.js.map +0 -1
- package/dist/node_modules/@react-aria/interactions/dist/usePress.es.js +0 -386
- package/dist/node_modules/@react-aria/interactions/dist/usePress.es.js.map +0 -1
- package/dist/node_modules/@react-aria/interactions/dist/utils.cjs.js +0 -2
- package/dist/node_modules/@react-aria/interactions/dist/utils.cjs.js.map +0 -1
- package/dist/node_modules/@react-aria/interactions/dist/utils.es.js +0 -92
- package/dist/node_modules/@react-aria/interactions/dist/utils.es.js.map +0 -1
- package/dist/node_modules/@react-aria/label/dist/useField.cjs.js +0 -2
- package/dist/node_modules/@react-aria/label/dist/useField.cjs.js.map +0 -1
- package/dist/node_modules/@react-aria/label/dist/useField.es.js +0 -36
- package/dist/node_modules/@react-aria/label/dist/useField.es.js.map +0 -1
- package/dist/node_modules/@react-aria/label/dist/useLabel.cjs.js +0 -2
- package/dist/node_modules/@react-aria/label/dist/useLabel.cjs.js.map +0 -1
- package/dist/node_modules/@react-aria/label/dist/useLabel.es.js +0 -23
- package/dist/node_modules/@react-aria/label/dist/useLabel.es.js.map +0 -1
- package/dist/node_modules/@react-aria/overlays/dist/Overlay.cjs.js +0 -2
- package/dist/node_modules/@react-aria/overlays/dist/Overlay.cjs.js.map +0 -1
- package/dist/node_modules/@react-aria/overlays/dist/Overlay.es.js +0 -16
- package/dist/node_modules/@react-aria/overlays/dist/Overlay.es.js.map +0 -1
- package/dist/node_modules/@react-aria/radio/dist/useRadio.cjs.js +0 -2
- package/dist/node_modules/@react-aria/radio/dist/useRadio.cjs.js.map +0 -1
- package/dist/node_modules/@react-aria/radio/dist/useRadio.es.js +0 -70
- package/dist/node_modules/@react-aria/radio/dist/useRadio.es.js.map +0 -1
- package/dist/node_modules/@react-aria/radio/dist/useRadioGroup.cjs.js +0 -2
- package/dist/node_modules/@react-aria/radio/dist/useRadioGroup.cjs.js.map +0 -1
- package/dist/node_modules/@react-aria/radio/dist/useRadioGroup.es.js +0 -80
- package/dist/node_modules/@react-aria/radio/dist/useRadioGroup.es.js.map +0 -1
- package/dist/node_modules/@react-aria/radio/dist/utils.cjs.js +0 -2
- package/dist/node_modules/@react-aria/radio/dist/utils.cjs.js.map +0 -1
- package/dist/node_modules/@react-aria/radio/dist/utils.es.js +0 -5
- package/dist/node_modules/@react-aria/radio/dist/utils.es.js.map +0 -1
- package/dist/node_modules/@react-aria/ssr/dist/SSRProvider.cjs.js +0 -2
- package/dist/node_modules/@react-aria/ssr/dist/SSRProvider.cjs.js.map +0 -1
- package/dist/node_modules/@react-aria/ssr/dist/SSRProvider.es.js +0 -19
- package/dist/node_modules/@react-aria/ssr/dist/SSRProvider.es.js.map +0 -1
- package/dist/node_modules/@react-aria/switch/dist/useSwitch.cjs.js +0 -2
- package/dist/node_modules/@react-aria/switch/dist/useSwitch.cjs.js.map +0 -1
- package/dist/node_modules/@react-aria/switch/dist/useSwitch.es.js +0 -20
- package/dist/node_modules/@react-aria/switch/dist/useSwitch.es.js.map +0 -1
- package/dist/node_modules/@react-aria/toggle/dist/useToggle.cjs.js +0 -2
- package/dist/node_modules/@react-aria/toggle/dist/useToggle.cjs.js.map +0 -1
- package/dist/node_modules/@react-aria/toggle/dist/useToggle.es.js +0 -60
- package/dist/node_modules/@react-aria/toggle/dist/useToggle.es.js.map +0 -1
- package/dist/node_modules/@react-aria/visually-hidden/dist/VisuallyHidden.cjs.js +0 -2
- package/dist/node_modules/@react-aria/visually-hidden/dist/VisuallyHidden.cjs.js.map +0 -1
- package/dist/node_modules/@react-aria/visually-hidden/dist/VisuallyHidden.es.js +0 -41
- package/dist/node_modules/@react-aria/visually-hidden/dist/VisuallyHidden.es.js.map +0 -1
- package/dist/node_modules/@react-stately/form/dist/useFormValidationState.cjs.js +0 -2
- package/dist/node_modules/@react-stately/form/dist/useFormValidationState.cjs.js.map +0 -1
- package/dist/node_modules/@react-stately/form/dist/useFormValidationState.es.js +0 -110
- package/dist/node_modules/@react-stately/form/dist/useFormValidationState.es.js.map +0 -1
- package/dist/node_modules/@react-stately/radio/dist/useRadioGroupState.cjs.js +0 -2
- package/dist/node_modules/@react-stately/radio/dist/useRadioGroupState.cjs.js.map +0 -1
- package/dist/node_modules/@react-stately/radio/dist/useRadioGroupState.es.js +0 -35
- package/dist/node_modules/@react-stately/radio/dist/useRadioGroupState.es.js.map +0 -1
- package/dist/node_modules/@react-stately/toggle/dist/useToggleState.cjs.js +0 -2
- package/dist/node_modules/@react-stately/toggle/dist/useToggleState.cjs.js.map +0 -1
- package/dist/node_modules/@react-stately/toggle/dist/useToggleState.es.js +0 -22
- package/dist/node_modules/@react-stately/toggle/dist/useToggleState.es.js.map +0 -1
- package/dist/node_modules/@react-stately/utils/dist/useControlledState.cjs.js +0 -2
- package/dist/node_modules/@react-stately/utils/dist/useControlledState.cjs.js.map +0 -1
- package/dist/node_modules/@react-stately/utils/dist/useControlledState.es.js +0 -31
- package/dist/node_modules/@react-stately/utils/dist/useControlledState.es.js.map +0 -1
- package/dist/node_modules/@swc/helpers/esm/_check_private_redeclaration.cjs.js +0 -2
- package/dist/node_modules/@swc/helpers/esm/_check_private_redeclaration.cjs.js.map +0 -1
- package/dist/node_modules/@swc/helpers/esm/_check_private_redeclaration.es.js +0 -9
- package/dist/node_modules/@swc/helpers/esm/_check_private_redeclaration.es.js.map +0 -1
- package/dist/node_modules/@swc/helpers/esm/_class_apply_descriptor_get.cjs.js +0 -2
- package/dist/node_modules/@swc/helpers/esm/_class_apply_descriptor_get.cjs.js.map +0 -1
- package/dist/node_modules/@swc/helpers/esm/_class_apply_descriptor_get.es.js +0 -8
- package/dist/node_modules/@swc/helpers/esm/_class_apply_descriptor_get.es.js.map +0 -1
- package/dist/node_modules/@swc/helpers/esm/_class_apply_descriptor_set.cjs.js +0 -2
- package/dist/node_modules/@swc/helpers/esm/_class_apply_descriptor_set.cjs.js.map +0 -1
- package/dist/node_modules/@swc/helpers/esm/_class_apply_descriptor_set.es.js +0 -13
- package/dist/node_modules/@swc/helpers/esm/_class_apply_descriptor_set.es.js.map +0 -1
- package/dist/node_modules/@swc/helpers/esm/_class_extract_field_descriptor.cjs.js +0 -2
- package/dist/node_modules/@swc/helpers/esm/_class_extract_field_descriptor.cjs.js.map +0 -1
- package/dist/node_modules/@swc/helpers/esm/_class_extract_field_descriptor.es.js +0 -9
- package/dist/node_modules/@swc/helpers/esm/_class_extract_field_descriptor.es.js.map +0 -1
- package/dist/node_modules/@swc/helpers/esm/_class_private_field_get.cjs.js +0 -2
- package/dist/node_modules/@swc/helpers/esm/_class_private_field_get.cjs.js.map +0 -1
- package/dist/node_modules/@swc/helpers/esm/_class_private_field_get.es.js +0 -11
- package/dist/node_modules/@swc/helpers/esm/_class_private_field_get.es.js.map +0 -1
- package/dist/node_modules/@swc/helpers/esm/_class_private_field_init.cjs.js +0 -2
- package/dist/node_modules/@swc/helpers/esm/_class_private_field_init.cjs.js.map +0 -1
- package/dist/node_modules/@swc/helpers/esm/_class_private_field_init.es.js +0 -9
- package/dist/node_modules/@swc/helpers/esm/_class_private_field_init.es.js.map +0 -1
- package/dist/node_modules/@swc/helpers/esm/_class_private_field_set.cjs.js +0 -2
- package/dist/node_modules/@swc/helpers/esm/_class_private_field_set.cjs.js.map +0 -1
- package/dist/node_modules/@swc/helpers/esm/_class_private_field_set.es.js +0 -11
- package/dist/node_modules/@swc/helpers/esm/_class_private_field_set.es.js.map +0 -1
- package/dist/node_modules/react/cjs/react-jsx-runtime.production.min.cjs.js +0 -10
- package/dist/node_modules/react/cjs/react-jsx-runtime.production.min.cjs.js.map +0 -1
- package/dist/node_modules/react/cjs/react-jsx-runtime.production.min.es.js +0 -29
- package/dist/node_modules/react/cjs/react-jsx-runtime.production.min.es.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ActionMenu.es.js","sources":["../../../src/components/ActionMenu/ActionMenu.tsx"],"sourcesContent":["\"use client\";\n\nimport { ReactNode, useEffect, useRef, useState } from \"react\";\nimport type { Selection } from \"@react-types/shared\";\n\nimport { useIsClosing } from \"../../hooks/useIsClosing\";\nimport { useLockBodyScroll } from \"../../hooks/useLockBodyScroll\";\nimport { handleInternalNavigation, isUrlExternal } from \"../../utils\";\n\nimport { Button } from \"../Button/Button\";\nimport { ScreenOverlay } from \"../ScreenOverlay/ScreenOverlay\";\nimport { DropdownMenu } from \"radix-ui\";\nimport { ChevronLeft } from \"../Icon/IconComponents/ChevronLeft\";\nimport { ChevronRight } from \"../Icon/IconComponents/ChevronRight\";\n\nimport \"./ActionMenu.css\";\n\nexport interface ActionMenuAction {\n key: string;\n label?: ReactNode;\n description?: ReactNode;\n to?: string;\n onAction?: (key: string) => void;\n children?: ActionMenuAction[];\n}\n\nexport type ActionMenuSelectionMode = \"single\" | \"multiple\" | \"none\";\n\nexport interface ActionMenuProps {\n /** The actions of the menu\n * - type {@link ActionMenuAction}[]\n */\n actions?: ActionMenuAction[];\n\n /** The text of the cancel button */\n cancelButtonText?: string;\n\n /** The children of the menu */\n children?: ReactNode | ((props: { close: () => void }) => ReactNode);\n\n /** The test id of the menu */\n \"data-testid\"?: string;\n\n /** The keys of the disabled items\n * @default []\n */\n disabledKeys?: string[];\n\n /** Whether the menu is open\n * @default false\n */\n isOpen: boolean;\n\n /** The callback function to close the menu */\n onClose?: () => void;\n\n /** The callback function to change the selection\n * - type {@link Selection}\n */\n onSelectionChange?: (keys: Selection) => void;\n\n /** The selection mode of the menu\n * @default \"single\"\n */\n selectionMode?: ActionMenuSelectionMode;\n\n /** The keys of the selected items */\n selectedKeys?: string[];\n\n /** Whether to show the cancel button */\n showCancel?: boolean;\n\n /** The title of the menu */\n title?: string;\n}\n\ntype ActionStack = {\n title: ReactNode | null;\n actions: ActionMenuAction[];\n key: string | null;\n previousKey: string | null;\n};\n\n/**\n * A controlled ActionMenu to display a menu of actions.\n * Renders a list of actions as a focusable menu, or non-focusable children.\n *\n * API:\n * - {@link ActionMenuProps}\n */\nexport const ActionMenu = ({\n isOpen,\n actions = [],\n children,\n showCancel = true,\n cancelButtonText = \"Cancel\",\n selectionMode = \"single\",\n selectedKeys,\n disabledKeys = [],\n onSelectionChange,\n onClose,\n title,\n \"data-testid\": testId,\n}: ActionMenuProps) => {\n useLockBodyScroll(isOpen);\n const [contentHeight, setContentHeight] = useState<number>(0);\n const [stackHistory, setStackHistory] = useState<ActionStack[]>([]);\n const [currentActionStack, setCurrentActionStack] = useState<ActionStack>({\n title,\n actions,\n key: null,\n previousKey: null,\n });\n const contentRef = useRef<HTMLDivElement>(null);\n const menuRef = useRef<HTMLDivElement>(null);\n const overlayRef = useRef<HTMLDivElement>(null);\n const { isClosing, handleClose } = useIsClosing({ onClose, overlayRef });\n\n const currentActions = currentActionStack.actions || [];\n const hasActions = currentActions && currentActions.length > 0;\n const hasContent = children || hasActions || showCancel;\n const isInSubmenu = stackHistory.length > 0;\n\n function handleSubmenuOpen(key: string) {\n const action = currentActions.find((action) => action.key === key);\n if (!action) {\n console.error(`Action with key ${key} not found`);\n return;\n }\n\n setStackHistory((prevStackHistory) => [\n ...prevStackHistory,\n currentActionStack,\n ]);\n setCurrentActionStack((prevStack) => ({\n title: action.label,\n actions: action.children,\n key: action.key,\n previousKey: prevStack.key,\n }));\n }\n\n function handleBack() {\n if (stackHistory.length > 0) {\n const previousStack = stackHistory[stackHistory.length - 1];\n setCurrentActionStack(previousStack);\n setStackHistory(stackHistory.slice(0, -1));\n }\n }\n\n // Re-measure the open menu's content height when stack history changes\n useEffect(() => {\n if (!isOpen) return;\n\n requestAnimationFrame(() => {\n if (contentRef.current) {\n setContentHeight(contentRef.current.scrollHeight + 12);\n }\n });\n }, [isOpen, stackHistory, hasContent]);\n\n // Reset content height when menu closes or is closing\n useEffect(() => {\n if (!isOpen || isClosing) {\n setContentHeight(0);\n }\n }, [isOpen, isClosing]);\n\n if (!isOpen && !isClosing) return null;\n\n return (\n <ScreenOverlay fadeIn ref={overlayRef}>\n <DropdownMenu.Root\n modal\n open={isOpen}\n onOpenChange={(open) => {\n if (!open) handleClose();\n }}\n >\n <DropdownMenu.Trigger asChild>\n {/* No visible trigger, menu is controlled by isOpen */}\n <div>{\"\"}</div>\n </DropdownMenu.Trigger>\n\n <div\n className=\"proton-ActionMenu__background-wrapper\"\n style={{ opacity: isClosing ? 0 : 1 }}\n >\n <div\n data-testid={testId || \"ActionMenu-wrapper\"}\n className=\"proton-ActionMenu__wrapper\"\n >\n <div\n className=\"proton-ActionMenu__card\"\n data-testid=\"ActionMenu-content\"\n style={{ height: `${contentHeight}px` }}\n >\n <div ref={menuRef} className=\"proton-ActionMenu__menu\">\n <DropdownMenu.Content loop sideOffset={8} ref={contentRef}>\n {hasContent && (\n <>\n {children && (\n <div className=\"proton-ActionMenu__content\">\n {typeof children === \"function\"\n ? children({ close: handleClose })\n : children}\n </div>\n )}\n\n {hasActions && (\n <ActionMenuList\n actions={currentActions}\n selectionMode={selectionMode}\n selectedKeys={selectedKeys}\n onSelectionChange={onSelectionChange}\n disabledKeys={disabledKeys}\n handleSubmenuOpen={handleSubmenuOpen}\n title={currentActionStack.title}\n isInSubmenu={isInSubmenu}\n handleBack={handleBack}\n previousMenuTitle={\n stackHistory[stackHistory.length - 1]?.title\n }\n />\n )}\n\n {showCancel && (\n <>\n <DropdownMenu.Separator />\n <DropdownMenu.Item className=\"proton-ActionMenu__cancel-button\">\n <Button\n data-testid=\"ActionMenuItem-cancel\"\n onPress={handleClose}\n fullWidth\n variant=\"secondary\"\n >\n {cancelButtonText}\n </Button>\n </DropdownMenu.Item>\n </>\n )}\n </>\n )}\n </DropdownMenu.Content>\n </div>\n </div>\n </div>\n </div>\n </DropdownMenu.Root>\n </ScreenOverlay>\n );\n};\n\ninterface ActionMenuListProps {\n actions: ActionMenuAction[];\n selectionMode: ActionMenuSelectionMode;\n selectedKeys?: string[];\n onSelectionChange?: (keys: Selection) => void;\n disabledKeys?: string[];\n handleSubmenuOpen: (key: string) => void;\n title?: ReactNode;\n isInSubmenu?: boolean;\n handleBack?: () => void;\n previousMenuTitle?: ReactNode;\n}\n\nconst ActionMenuList = ({\n actions,\n selectionMode,\n selectedKeys = [],\n onSelectionChange,\n disabledKeys = [],\n handleSubmenuOpen,\n title,\n isInSubmenu = false,\n handleBack,\n previousMenuTitle,\n}: ActionMenuListProps) => {\n const ActionMenuItemMap = () => (\n <>\n {isInSubmenu && handleBack && (\n <div className=\"proton-ActionMenu__back-button-container\">\n <DropdownMenu.Item\n className=\"proton-ActionMenu__back-button\"\n onSelect={(event) => {\n event.preventDefault();\n handleBack();\n }}\n aria-label={`Go back to ${previousMenuTitle || \"previous menu\"}`}\n >\n <ChevronLeft size={16} />\n </DropdownMenu.Item>\n <div\n className=\"proton-ActionMenu__title\"\n role=\"banner\"\n aria-label={isInSubmenu ? `Submenu: ${title}` : `Menu: ${title}`}\n >\n <span>{title}</span>\n </div>\n <DropdownMenu.Separator />\n </div>\n )}\n\n {actions.map((action, i) => {\n const itemProps = actions[i];\n return (\n <ActionMenuItem\n key={action.key}\n item={action}\n isSubmenu={Boolean(itemProps.children?.length)}\n selectionMode={selectionMode}\n onSelectionChange={onSelectionChange}\n selectedKeys={selectedKeys}\n disabledKeys={disabledKeys}\n handleSubmenuOpen={handleSubmenuOpen}\n />\n );\n })}\n </>\n );\n\n return (\n <div\n aria-disabled={selectionMode === \"none\"}\n className=\"proton-ActionMenu__list\"\n role=\"menu\"\n aria-label={\n title ? `${isInSubmenu ? \"Submenu\" : \"Menu\"}: ${title}` : \"Action menu\"\n }\n aria-orientation=\"vertical\"\n >\n {selectionMode === \"single\" ? (\n <DropdownMenu.RadioGroup\n value={selectedKeys?.[0] || \"\"}\n onValueChange={(value) => {\n // Check if this is a submenu item - if so, don't trigger selection change\n const action = actions.find((action) => action.key === value);\n if (action?.children?.length) {\n return;\n }\n\n if (onSelectionChange) {\n onSelectionChange(new Set([value]));\n }\n }}\n >\n <ActionMenuItemMap />\n </DropdownMenu.RadioGroup>\n ) : (\n <DropdownMenu.Group>\n <ActionMenuItemMap />\n </DropdownMenu.Group>\n )}\n </div>\n );\n};\n\ninterface ActionMenuItemProps {\n to?: string;\n item: ActionMenuAction;\n isSubmenu?: boolean;\n selectionMode: ActionMenuSelectionMode;\n onSelectionChange?: (keys: Selection) => void;\n selectedKeys?: string[];\n disabledKeys?: string[];\n handleSubmenuOpen: (key: string) => void;\n}\n\nconst ActionMenuItem = ({\n item,\n isSubmenu,\n selectionMode,\n onSelectionChange,\n selectedKeys = [],\n disabledKeys = [],\n handleSubmenuOpen,\n}: ActionMenuItemProps) => {\n const ref = useRef(null);\n const isExternal = item.to && isUrlExternal(item.to);\n const isDisabled = disabledKeys.includes(item.key);\n const isSelected = selectedKeys.includes(item.key);\n\n const radixItemProps = {\n className: \"proton-ActionMenu__item\",\n \"aria-label\": item.label\n ? `${item.label}${item.description ? `, ${item.description}` : \"\"}`\n : `ActionMenu-Item-${item.key}`,\n role: \"menuitem\",\n disabled: isDisabled,\n ref,\n };\n\n const onSelect = (event: Event) => {\n if (item?.children?.length) {\n event.preventDefault();\n handleSubmenuOpen(item.key);\n return;\n }\n if (item.onAction) {\n item.onAction(item.key);\n }\n };\n\n const content = (\n <>\n <div className=\"proton-ActionMenu__item-content\">\n <div className=\"proton-ActionMenu__item-label\">{item.label}</div>\n {item.description && (\n <div className=\"proton-ActionMenu__description\">\n {item.description}\n </div>\n )}\n </div>\n {isSubmenu && <ChevronRight size={16} />}\n </>\n );\n\n if (item.to) {\n return (\n <DropdownMenu.Item {...radixItemProps} key={item.key} asChild>\n <a\n aria-label={\n item.label\n ? `${item.label}${item.description ? `, ${item.description}` : \"\"}`\n : `ActionMenu-Item-${item.key}`\n }\n aria-disabled={isDisabled}\n aria-checked={isSelected}\n aria-expanded={isSubmenu ? false : undefined}\n href={item.to}\n target={isExternal ? \"_blank\" : undefined}\n rel={isExternal ? \"noopener noreferrer\" : undefined}\n onClick={(e: React.MouseEvent<HTMLAnchorElement>) => {\n if (isExternal || !item.to) {\n return;\n }\n handleInternalNavigation(e, item.to);\n }}\n >\n {content}\n </a>\n </DropdownMenu.Item>\n );\n }\n\n if (selectionMode === \"multiple\") {\n return (\n <DropdownMenu.CheckboxItem\n {...radixItemProps}\n key={item.key}\n checked={isSelected}\n onSelect={onSelect}\n onCheckedChange={(checked: boolean) => {\n if (!onSelectionChange) return;\n\n const currentKeys = new Set(selectedKeys);\n if (checked) {\n currentKeys.add(item.key);\n } else {\n currentKeys.delete(item.key);\n }\n onSelectionChange(currentKeys);\n }}\n >\n {content}\n </DropdownMenu.CheckboxItem>\n );\n }\n\n return (\n <DropdownMenu.RadioItem\n {...radixItemProps}\n value={item.key}\n key={item.key}\n aria-checked={isSelected}\n aria-expanded={isSubmenu ? false : undefined}\n onSelect={onSelect}\n >\n {content}\n </DropdownMenu.RadioItem>\n );\n};\n"],"names":["ActionMenu","isOpen","actions","children","showCancel","cancelButtonText","selectionMode","selectedKeys","disabledKeys","onSelectionChange","onClose","title","testId","useLockBodyScroll","contentHeight","setContentHeight","useState","stackHistory","setStackHistory","currentActionStack","setCurrentActionStack","contentRef","useRef","menuRef","overlayRef","isClosing","handleClose","useIsClosing","currentActions","hasActions","hasContent","isInSubmenu","handleSubmenuOpen","key","action","prevStackHistory","prevStack","handleBack","previousStack","useEffect","jsx","ScreenOverlay","jsxs","DropdownMenu","open","Fragment","ActionMenuList","_a","Button","previousMenuTitle","ActionMenuItemMap","event","ChevronLeft","itemProps","ActionMenuItem","value","item","isSubmenu","ref","isExternal","isUrlExternal","isDisabled","isSelected","radixItemProps","onSelect","content","ChevronRight","createElement","e","handleInternalNavigation","checked","currentKeys"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ActionMenu.es.js","sources":["../../../src/components/ActionMenu/ActionMenu.tsx"],"sourcesContent":["\"use client\";\n\nimport { ReactNode, useEffect, useRef, useState } from \"react\";\n\nimport { useIsClosing } from \"../../hooks/useIsClosing\";\nimport { handleInternalNavigation, isUrlExternal } from \"../../utils\";\n\nimport { Button } from \"../Button/Button\";\nimport { ScreenOverlay } from \"../ScreenOverlay/ScreenOverlay\";\nimport { DropdownMenu } from \"radix-ui\";\nimport { ChevronLeft } from \"../Icon/IconComponents/ChevronLeft\";\nimport { ChevronRight } from \"../Icon/IconComponents/ChevronRight\";\n\nimport \"./ActionMenu.css\";\n\nexport interface ActionMenuAction {\n key: string;\n label?: ReactNode;\n description?: ReactNode;\n to?: string;\n onAction?: (key: string) => void;\n children?: ActionMenuAction[];\n}\n\nexport type ActionMenuSelectionMode = \"single\" | \"multiple\" | \"none\";\n\n/** Keys passed to `onSelectionChange` (Set of item keys, or `\"all\"`). */\nexport type ActionMenuSelection = \"all\" | Set<string>;\n\nexport interface ActionMenuProps {\n /** The actions of the menu\n * - type {@link ActionMenuAction}[]\n */\n actions?: ActionMenuAction[];\n\n /** The text of the cancel button */\n cancelButtonText?: string;\n\n /** The children of the menu */\n children?: ReactNode | ((props: { close: () => void }) => ReactNode);\n\n /** The test id of the menu */\n \"data-testid\"?: string;\n\n /** The keys of the disabled items\n * @default []\n */\n disabledKeys?: string[];\n\n /** Whether the menu is open\n * @default false\n */\n isOpen: boolean;\n\n /** The callback function to close the menu */\n onClose?: () => void;\n\n /** The callback function to change the selection\n * - type {@link ActionMenuSelection}\n */\n onSelectionChange?: (keys: ActionMenuSelection) => void;\n\n /** The selection mode of the menu\n * @default \"single\"\n */\n selectionMode?: ActionMenuSelectionMode;\n\n /** The keys of the selected items */\n selectedKeys?: string[];\n\n /** Whether to show the cancel button */\n showCancel?: boolean;\n\n /** The title of the menu */\n title?: string;\n}\n\ntype ActionStack = {\n title: ReactNode | null;\n actions: ActionMenuAction[];\n key: string | null;\n previousKey: string | null;\n};\n\n/**\n * A controlled ActionMenu to display a menu of actions.\n * Renders a list of actions as a focusable menu, or non-focusable children.\n *\n * API:\n * - {@link ActionMenuProps}\n */\nexport const ActionMenu = ({\n isOpen,\n actions = [],\n children,\n showCancel = true,\n cancelButtonText = \"Cancel\",\n selectionMode = \"single\",\n selectedKeys,\n disabledKeys = [],\n onSelectionChange,\n onClose,\n title,\n \"data-testid\": testId,\n}: ActionMenuProps) => {\n const [contentHeight, setContentHeight] = useState<number>(0);\n const [stackHistory, setStackHistory] = useState<ActionStack[]>([]);\n const [currentActionStack, setCurrentActionStack] = useState<ActionStack>({\n title,\n actions,\n key: null,\n previousKey: null,\n });\n const contentRef = useRef<HTMLDivElement>(null);\n const menuRef = useRef<HTMLDivElement>(null);\n const overlayRef = useRef<HTMLDivElement>(null);\n const { isClosing, handleClose } = useIsClosing({ onClose, overlayRef });\n\n const currentActions = currentActionStack.actions || [];\n const hasActions = currentActions && currentActions.length > 0;\n const hasContent = children || hasActions || showCancel;\n const isInSubmenu = stackHistory.length > 0;\n\n function handleSubmenuOpen(key: string) {\n const action = currentActions.find((action) => action.key === key);\n if (!action) {\n console.error(`Action with key ${key} not found`);\n return;\n }\n\n setStackHistory((prevStackHistory) => [\n ...prevStackHistory,\n currentActionStack,\n ]);\n setCurrentActionStack((prevStack) => ({\n title: action.label,\n actions: action.children || [],\n key: action.key,\n previousKey: prevStack.key,\n }));\n }\n\n function handleBack() {\n if (stackHistory.length > 0) {\n const previousStack = stackHistory[stackHistory.length - 1];\n setCurrentActionStack(previousStack);\n setStackHistory(stackHistory.slice(0, -1));\n }\n }\n\n // Re-measure the open menu's content height when stack history changes\n useEffect(() => {\n if (!isOpen) return;\n\n requestAnimationFrame(() => {\n if (contentRef.current) {\n setContentHeight(contentRef.current.scrollHeight + 12);\n }\n });\n }, [isOpen, stackHistory, hasContent]);\n\n // Reset content height when menu closes or is closing\n useEffect(() => {\n if (!isOpen || isClosing) {\n setContentHeight(0);\n }\n }, [isOpen, isClosing]);\n\n if (!isOpen && !isClosing) return null;\n\n return (\n <ScreenOverlay fadeIn ref={overlayRef}>\n <DropdownMenu.Root\n modal\n open={isOpen}\n onOpenChange={(open) => {\n if (!open) handleClose();\n }}\n >\n <DropdownMenu.Trigger asChild>\n {/* No visible trigger, menu is controlled by isOpen */}\n <div>{\"\"}</div>\n </DropdownMenu.Trigger>\n\n <div\n data-disable-document-scroll={isOpen}\n className=\"proton-ActionMenu__background-wrapper\"\n style={{ opacity: isClosing ? 0 : 1 }}\n >\n <div\n data-testid={testId || \"ActionMenu-wrapper\"}\n className=\"proton-ActionMenu__wrapper\"\n >\n <div\n className=\"proton-ActionMenu__card\"\n data-testid=\"ActionMenu-content\"\n style={{ height: `${contentHeight}px` }}\n >\n <div ref={menuRef} className=\"proton-ActionMenu__menu\">\n <DropdownMenu.Content loop sideOffset={8} ref={contentRef}>\n {hasContent && (\n <>\n {children && (\n <div className=\"proton-ActionMenu__content\">\n {typeof children === \"function\"\n ? children({ close: handleClose })\n : children}\n </div>\n )}\n\n {hasActions && (\n <ActionMenuList\n actions={currentActions}\n selectionMode={selectionMode}\n selectedKeys={selectedKeys}\n onSelectionChange={onSelectionChange}\n disabledKeys={disabledKeys}\n handleSubmenuOpen={handleSubmenuOpen}\n title={currentActionStack.title}\n isInSubmenu={isInSubmenu}\n handleBack={handleBack}\n previousMenuTitle={\n stackHistory[stackHistory.length - 1]?.title\n }\n />\n )}\n\n {showCancel && (\n <>\n <DropdownMenu.Separator />\n <DropdownMenu.Item className=\"proton-ActionMenu__cancel-button\">\n <Button\n data-testid=\"ActionMenuItem-cancel\"\n onPress={handleClose}\n fullWidth\n variant=\"secondary\"\n >\n {cancelButtonText}\n </Button>\n </DropdownMenu.Item>\n </>\n )}\n </>\n )}\n </DropdownMenu.Content>\n </div>\n </div>\n </div>\n </div>\n </DropdownMenu.Root>\n </ScreenOverlay>\n );\n};\n\ninterface ActionMenuListProps {\n actions: ActionMenuAction[];\n selectionMode: ActionMenuSelectionMode;\n selectedKeys?: string[];\n onSelectionChange?: (keys: ActionMenuSelection) => void;\n disabledKeys?: string[];\n handleSubmenuOpen: (key: string) => void;\n title?: ReactNode;\n isInSubmenu?: boolean;\n handleBack?: () => void;\n previousMenuTitle?: ReactNode;\n}\n\nconst ActionMenuList = ({\n actions,\n selectionMode,\n selectedKeys = [],\n onSelectionChange,\n disabledKeys = [],\n handleSubmenuOpen,\n title,\n isInSubmenu = false,\n handleBack,\n previousMenuTitle,\n}: ActionMenuListProps) => {\n const ActionMenuItemMap = () => (\n <>\n {isInSubmenu && handleBack && (\n <div className=\"proton-ActionMenu__back-button-container\">\n <DropdownMenu.Item\n className=\"proton-ActionMenu__back-button\"\n onSelect={(event) => {\n event.preventDefault();\n handleBack();\n }}\n aria-label={`Go back to ${previousMenuTitle || \"previous menu\"}`}\n >\n <ChevronLeft size={16} />\n </DropdownMenu.Item>\n <div\n className=\"proton-ActionMenu__title\"\n role=\"banner\"\n aria-label={isInSubmenu ? `Submenu: ${title}` : `Menu: ${title}`}\n >\n <span>{title}</span>\n </div>\n <DropdownMenu.Separator />\n </div>\n )}\n\n {actions.map((action, i) => {\n const itemProps = actions[i];\n return (\n <ActionMenuItem\n key={action.key}\n item={action}\n isSubmenu={Boolean(itemProps.children?.length)}\n selectionMode={selectionMode}\n onSelectionChange={onSelectionChange}\n selectedKeys={selectedKeys}\n disabledKeys={disabledKeys}\n handleSubmenuOpen={handleSubmenuOpen}\n />\n );\n })}\n </>\n );\n\n return (\n <div\n aria-disabled={selectionMode === \"none\"}\n className=\"proton-ActionMenu__list\"\n role=\"menu\"\n aria-label={\n title ? `${isInSubmenu ? \"Submenu\" : \"Menu\"}: ${title}` : \"Action menu\"\n }\n aria-orientation=\"vertical\"\n >\n {selectionMode === \"single\" ? (\n <DropdownMenu.RadioGroup\n value={selectedKeys?.[0] || \"\"}\n onValueChange={(value) => {\n // Check if this is a submenu item - if so, don't trigger selection change\n const action = actions.find((action) => action.key === value);\n if (action?.children?.length) {\n return;\n }\n\n if (onSelectionChange) {\n onSelectionChange(new Set([value]));\n }\n }}\n >\n <ActionMenuItemMap />\n </DropdownMenu.RadioGroup>\n ) : (\n <DropdownMenu.Group>\n <ActionMenuItemMap />\n </DropdownMenu.Group>\n )}\n </div>\n );\n};\n\ninterface ActionMenuItemProps {\n to?: string;\n item: ActionMenuAction;\n isSubmenu?: boolean;\n selectionMode: ActionMenuSelectionMode;\n onSelectionChange?: (keys: ActionMenuSelection) => void;\n selectedKeys?: string[];\n disabledKeys?: string[];\n handleSubmenuOpen: (key: string) => void;\n}\n\nconst ActionMenuItem = ({\n item,\n isSubmenu,\n selectionMode,\n onSelectionChange,\n selectedKeys = [],\n disabledKeys = [],\n handleSubmenuOpen,\n}: ActionMenuItemProps) => {\n const ref = useRef(null);\n const isExternal = item.to && isUrlExternal(item.to);\n const isDisabled = disabledKeys.includes(item.key);\n const isSelected = selectedKeys.includes(item.key);\n\n const radixItemProps = {\n className: \"proton-ActionMenu__item\",\n \"aria-label\": item.label\n ? `${item.label}${item.description ? `, ${item.description}` : \"\"}`\n : `ActionMenu-Item-${item.key}`,\n role: \"menuitem\",\n disabled: isDisabled,\n ref,\n };\n\n const onSelect = (event: Event) => {\n if (item?.children?.length) {\n event.preventDefault();\n handleSubmenuOpen(item.key);\n return;\n }\n if (item.onAction) {\n item.onAction(item.key);\n }\n };\n\n const content = (\n <>\n <div className=\"proton-ActionMenu__item-content\">\n <div className=\"proton-ActionMenu__item-label\">{item.label}</div>\n {item.description && (\n <div className=\"proton-ActionMenu__description\">\n {item.description}\n </div>\n )}\n </div>\n {isSubmenu && <ChevronRight size={16} />}\n </>\n );\n\n if (item.to) {\n return (\n <DropdownMenu.Item {...radixItemProps} key={item.key} asChild>\n <a\n aria-label={`ActionMenu-Item-${item.key}`}\n aria-disabled={isDisabled}\n aria-checked={isSelected}\n aria-expanded={isSubmenu ? false : undefined}\n href={item.to}\n target={isExternal ? \"_blank\" : undefined}\n rel={isExternal ? \"noopener noreferrer\" : undefined}\n onClick={(e: React.MouseEvent<HTMLAnchorElement>) => {\n if (isExternal || !item.to) {\n return;\n }\n handleInternalNavigation(e, item.to);\n }}\n >\n {content}\n </a>\n </DropdownMenu.Item>\n );\n }\n\n if (selectionMode === \"multiple\") {\n return (\n <DropdownMenu.CheckboxItem\n {...radixItemProps}\n key={item.key}\n checked={isSelected}\n onSelect={onSelect}\n onCheckedChange={(checked: boolean) => {\n if (!onSelectionChange) return;\n\n const currentKeys = new Set(selectedKeys);\n if (checked) {\n currentKeys.add(item.key);\n } else {\n currentKeys.delete(item.key);\n }\n onSelectionChange(currentKeys);\n }}\n >\n {content}\n </DropdownMenu.CheckboxItem>\n );\n }\n\n return (\n <DropdownMenu.RadioItem\n {...radixItemProps}\n value={item.key}\n key={item.key}\n aria-checked={isSelected}\n aria-expanded={isSubmenu ? false : undefined}\n onSelect={onSelect}\n >\n {content}\n </DropdownMenu.RadioItem>\n );\n};\n"],"names":["ActionMenu","isOpen","actions","children","showCancel","cancelButtonText","selectionMode","selectedKeys","disabledKeys","onSelectionChange","onClose","title","testId","contentHeight","setContentHeight","useState","stackHistory","setStackHistory","currentActionStack","setCurrentActionStack","contentRef","useRef","menuRef","overlayRef","isClosing","handleClose","useIsClosing","currentActions","hasActions","hasContent","isInSubmenu","handleSubmenuOpen","key","action","prevStackHistory","prevStack","handleBack","previousStack","useEffect","jsx","ScreenOverlay","jsxs","DropdownMenu","open","Fragment","ActionMenuList","_a","Button","previousMenuTitle","ActionMenuItemMap","event","ChevronLeft","i","itemProps","ActionMenuItem","value","item","isSubmenu","ref","isExternal","isUrlExternal","isDisabled","isSelected","radixItemProps","onSelect","content","ChevronRight","createElement","e","handleInternalNavigation","checked","currentKeys"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("../../node_modules/react/jsx-runtime.cjs.js");;/* empty css */const s=require("../../utils/string.cjs.js"),n={primary:"primary",secondary:"secondary",transparent:"transparent",success:"success",warning:"warning",danger:"danger"},i=({variant:e,children:r
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("../../node_modules/react/jsx-runtime.cjs.js");;/* empty css */const s=require("../../utils/string.cjs.js"),n={primary:"primary",secondary:"secondary",transparent:"transparent",success:"success",warning:"warning",danger:"danger"},i=({variant:e,children:r,"data-testid":a})=>t.jsxRuntimeExports.jsx("div",{role:"status","aria-live":"polite","data-testid":a,className:s.csx("proton-Badge",e&&`proton-Badge--${e}`),children:r});exports.Badge=i;exports.BadgeVariants=n;
|
|
2
2
|
//# sourceMappingURL=Badge.cjs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Badge.cjs.js","sources":["../../../src/components/Badge/Badge.tsx"],"sourcesContent":["\"use client\";\n\nimport { ReactNode } from \"react\";\nimport { csx } from \"../../utils\";\n\nimport \"./Badge.css\";\n\nexport type BadgeVariant =\n | \"primary\"\n | \"secondary\"\n | \"transparent\"\n | \"success\"\n | \"warning\"\n | \"danger\";\n\nexport const BadgeVariants: Record<BadgeVariant, BadgeVariant> = {\n primary: \"primary\",\n secondary: \"secondary\",\n transparent: \"transparent\",\n success: \"success\",\n warning: \"warning\",\n danger: \"danger\",\n};\n\nexport interface BadgeProps
|
|
1
|
+
{"version":3,"file":"Badge.cjs.js","sources":["../../../src/components/Badge/Badge.tsx"],"sourcesContent":["\"use client\";\n\nimport { ReactNode } from \"react\";\nimport { csx } from \"../../utils\";\n\nimport \"./Badge.css\";\n\nexport type BadgeVariant =\n | \"primary\"\n | \"secondary\"\n | \"transparent\"\n | \"success\"\n | \"warning\"\n | \"danger\";\n\nexport const BadgeVariants: Record<BadgeVariant, BadgeVariant> = {\n primary: \"primary\",\n secondary: \"secondary\",\n transparent: \"transparent\",\n success: \"success\",\n warning: \"warning\",\n danger: \"danger\",\n};\n\nexport interface BadgeProps {\n /**\n * The content to display within the badge.\n */\n children: ReactNode;\n /**\n * The badge's visual aesthetic.\n * - type {@link BadgeVariant}\n */\n variant?: BadgeVariant;\n /**\n * The test id for the badge.\n */\n \"data-testid\"?: string;\n}\n\n/**\n * A badge component for displaying status, categories, or counts with various visual styles.\n *\n * API:\n * - {@link BadgeProps}\n */\nexport const Badge = ({\n variant,\n children,\n \"data-testid\": dataTestId,\n}: BadgeProps) => {\n return (\n <div\n role=\"status\"\n aria-live=\"polite\"\n data-testid={dataTestId}\n className={csx(\"proton-Badge\", variant && `proton-Badge--${variant}`)}\n >\n {children}\n </div>\n );\n};\n"],"names":["BadgeVariants","Badge","variant","children","dataTestId","jsx","csx"],"mappings":"0NAeaA,EAAoD,CAC/D,QAAS,UACT,UAAW,YACX,YAAa,cACb,QAAS,UACT,QAAS,UACT,OAAQ,QACV,EAwBaC,EAAQ,CAAC,CACpB,QAAAC,EACA,SAAAC,EACA,cAAeC,CACjB,IAEIC,EAAAA,kBAAAA,IAAC,MAAA,CACC,KAAK,SACL,YAAU,SACV,cAAaD,EACb,UAAWE,EAAAA,IAAI,eAAgBJ,GAAW,iBAAiBA,CAAO,EAAE,EAEnE,SAAAC,CAAA,CAAA"}
|
|
@@ -8,12 +8,16 @@ const d = {
|
|
|
8
8
|
success: "success",
|
|
9
9
|
warning: "warning",
|
|
10
10
|
danger: "danger"
|
|
11
|
-
}, p = ({
|
|
11
|
+
}, p = ({
|
|
12
|
+
variant: r,
|
|
13
|
+
children: a,
|
|
14
|
+
"data-testid": s
|
|
15
|
+
}) => /* @__PURE__ */ t.jsx(
|
|
12
16
|
"div",
|
|
13
17
|
{
|
|
14
18
|
role: "status",
|
|
15
19
|
"aria-live": "polite",
|
|
16
|
-
"data-testid": s
|
|
20
|
+
"data-testid": s,
|
|
17
21
|
className: e("proton-Badge", r && `proton-Badge--${r}`),
|
|
18
22
|
children: a
|
|
19
23
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Badge.es.js","sources":["../../../src/components/Badge/Badge.tsx"],"sourcesContent":["\"use client\";\n\nimport { ReactNode } from \"react\";\nimport { csx } from \"../../utils\";\n\nimport \"./Badge.css\";\n\nexport type BadgeVariant =\n | \"primary\"\n | \"secondary\"\n | \"transparent\"\n | \"success\"\n | \"warning\"\n | \"danger\";\n\nexport const BadgeVariants: Record<BadgeVariant, BadgeVariant> = {\n primary: \"primary\",\n secondary: \"secondary\",\n transparent: \"transparent\",\n success: \"success\",\n warning: \"warning\",\n danger: \"danger\",\n};\n\nexport interface BadgeProps
|
|
1
|
+
{"version":3,"file":"Badge.es.js","sources":["../../../src/components/Badge/Badge.tsx"],"sourcesContent":["\"use client\";\n\nimport { ReactNode } from \"react\";\nimport { csx } from \"../../utils\";\n\nimport \"./Badge.css\";\n\nexport type BadgeVariant =\n | \"primary\"\n | \"secondary\"\n | \"transparent\"\n | \"success\"\n | \"warning\"\n | \"danger\";\n\nexport const BadgeVariants: Record<BadgeVariant, BadgeVariant> = {\n primary: \"primary\",\n secondary: \"secondary\",\n transparent: \"transparent\",\n success: \"success\",\n warning: \"warning\",\n danger: \"danger\",\n};\n\nexport interface BadgeProps {\n /**\n * The content to display within the badge.\n */\n children: ReactNode;\n /**\n * The badge's visual aesthetic.\n * - type {@link BadgeVariant}\n */\n variant?: BadgeVariant;\n /**\n * The test id for the badge.\n */\n \"data-testid\"?: string;\n}\n\n/**\n * A badge component for displaying status, categories, or counts with various visual styles.\n *\n * API:\n * - {@link BadgeProps}\n */\nexport const Badge = ({\n variant,\n children,\n \"data-testid\": dataTestId,\n}: BadgeProps) => {\n return (\n <div\n role=\"status\"\n aria-live=\"polite\"\n data-testid={dataTestId}\n className={csx(\"proton-Badge\", variant && `proton-Badge--${variant}`)}\n >\n {children}\n </div>\n );\n};\n"],"names":["BadgeVariants","Badge","variant","children","dataTestId","jsx","csx"],"mappings":";;;AAeO,MAAMA,IAAoD;AAAA,EAC/D,SAAS;AAAA,EACT,WAAW;AAAA,EACX,aAAa;AAAA,EACb,SAAS;AAAA,EACT,SAAS;AAAA,EACT,QAAQ;AACV,GAwBaC,IAAQ,CAAC;AAAA,EACpB,SAAAC;AAAA,EACA,UAAAC;AAAA,EACA,eAAeC;AACjB,MAEIC,gBAAAA,EAAAA;AAAAA,EAAC;AAAA,EAAA;AAAA,IACC,MAAK;AAAA,IACL,aAAU;AAAA,IACV,eAAaD;AAAA,IACb,WAAWE,EAAI,gBAAgBJ,KAAW,iBAAiBA,CAAO,EAAE;AAAA,IAEnE,UAAAC;AAAA,EAAA;AAAA;"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("../../node_modules/react/jsx-runtime.cjs.js"),a=require("react"),_=require("../Button/Button.cjs.js");;/* empty css */const s=require("../../utils/string.cjs.js"),N=require("../Icon/IconComponents/
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("../../node_modules/react/jsx-runtime.cjs.js"),a=require("react"),_=require("../Button/Button.cjs.js");;/* empty css */const s=require("../../utils/string.cjs.js"),N=require("../Icon/IconComponents/DangerCircle.cjs.js"),j=require("../Icon/IconComponents/WarningTriangle.cjs.js"),g=require("../Icon/IconComponents/SuccessCircle.cjs.js"),E={success:"var(--proton-color__success-light)",warning:"var(--proton-color__warning-light)",danger:"var(--proton-color__danger-light)"},C={success:g.SuccessCircle,warning:j.WarningTriangle,danger:N.DangerCircle},R={default:"default",success:"success",warning:"warning",danger:"danger"},c=a.createContext(void 0),o=({variant:n="default",rounded:t=!0,icon:e=!1,compact:i=!0,children:B,"data-testid":m})=>r.jsxRuntimeExports.jsx(c.Provider,{value:n,children:r.jsxRuntimeExports.jsx("div",{role:"status","aria-live":"polite",className:s.csx("proton-Banner",`proton-Banner--${n}`,t&&"proton-Banner--rounded"),"data-testid":m,children:r.jsxRuntimeExports.jsxs("div",{className:s.csx("proton-Banner__wrapper",i&&"proton-Banner__wrapper--compact"),children:[r.jsxRuntimeExports.jsx(o.Icon,{icon:e}),r.jsxRuntimeExports.jsx("div",{className:"proton-Banner__content-wrapper",children:r.jsxRuntimeExports.jsx("div",{className:"proton-Banner__container",children:B})})]})})});o.displayName="ProtonUIBanner";const u=({children:n,"data-testid":t})=>{const e=a.useContext(c);if(!e)throw new Error("BannerTitle must be used within a Banner");return r.jsxRuntimeExports.jsx("h3",{className:s.csx("proton-Banner__title",`proton-Banner--${e}__title`),"data-testid":t,children:n})};u.displayName="ProtonUIBanner.Title";const l=({children:n,"data-testid":t})=>{const e=a.useContext(c);if(!e)throw new Error("BannerContent must be used within a Banner");return r.jsxRuntimeExports.jsx("p",{className:s.csx("proton-Banner__content",`proton-Banner--${e}__content`),"data-testid":t,children:n})};l.displayName="ProtonUIBanner.Content";function w(n,t){if(a.isValidElement(n))return n;if(n&&t!=="default"){const e=C[t];if(e)return r.jsxRuntimeExports.jsx(e,{size:18,color:E[t]})}return null}const d=({icon:n,"data-testid":t})=>{const e=a.useContext(c);if(!e)throw new Error("BannerIcon must be used within a Banner");const i=w(n,e);return i?r.jsxRuntimeExports.jsx("div",{"aria-hidden":"true","data-testid":t,className:s.csx("proton-Banner__icon",`proton-Banner--${e}__icon`),children:i}):null};d.displayName="ProtonUIBanner.Icon";const x=({children:n,...t})=>r.jsxRuntimeExports.jsx(_.Button,{...t,children:n});x.displayName="ProtonUIBanner.Action";const p=({children:n})=>r.jsxRuntimeExports.jsx("div",{className:"proton-Banner__actions",children:n});p.displayName="ProtonUIBanner.Actions";o.Title=u;o.Content=l;o.Icon=d;o.Action=x;o.Actions=p;exports.BANNER_VARIANTS=R;exports.Banner=o;
|
|
2
2
|
//# sourceMappingURL=Banner.cjs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Banner.cjs.js","sources":["../../../src/components/Banner/Banner.tsx"],"sourcesContent":["\"use client\";\n\nimport { ReactNode, createContext, isValidElement, useContext } from \"react\";\nimport { csx } from \"../../utils\";\nimport { Button, type ButtonProps } from \"../Button/Button\";\nimport { DangerCircle, SuccessCircle, WarningTriangle } from \"../Icon\";\n\nimport \"./Banner.css\";\n\nconst BANNER_ICON_COLORS = {\n success: \"var(--proton-color__success-light)\",\n warning: \"var(--proton-color__warning-light)\",\n danger: \"var(--proton-color__danger-light)\",\n} as const;\n\nconst BANNER_ICON_COMPONENTS = {\n success: SuccessCircle,\n warning: WarningTriangle,\n danger: DangerCircle,\n} as const;\n\nexport const BANNER_VARIANTS = {\n default: \"default\",\n success: \"success\",\n warning: \"warning\",\n danger: \"danger\",\n} as const;\n\nexport type BannerVariant = \"default\" | \"success\" | \"warning\" | \"danger\";\n\nconst BannerContext = createContext<BannerVariant | undefined>(undefined);\n\ninterface BannerIconProps {\n /**\n * Optional custom icon or children for the icon area.\n */\n children?: ReactNode;\n /**\n * The icon to display in the banner.\n * Can be a boolean to conditionally show or hide, or a ReactNode to provide a custom icon.\n */\n icon?: boolean | ReactNode;\n /**\n * The data-testid to display within the banner.\n */\n \"data-testid\"?: string;\n}\n\ninterface BannerProps extends BannerIconProps {\n /**\n * Compact padding around the content of the banner.\n * @default true\n */\n compact?: boolean;\n /**\n * The content to display within the banner.\n */\n children: ReactNode;\n /**\n * The data-testid to display within the banner.\n */\n \"data-testid\"?: string;\n /**\n * Round the corners of the banner.\n * @default true\n */\n rounded?: boolean;\n /**\n * The banner's visual aesthetic.\n * - type {@link BannerVariant}\n */\n variant?: BannerVariant;\n}\n\n/**\n * A banner used to display a success, warning, or error message.\n *\n * API:\n * - {@link BannerProps}\n * - extends {@link BannerIconProps}\n */\nconst Banner = ({\n variant = \"default\",\n rounded = true,\n icon = false,\n compact = true,\n children,\n \"data-testid\": dataTestId,\n}: BannerProps) => {\n return (\n <BannerContext.Provider value={variant}>\n <div\n role=\"status\"\n aria-live=\"polite\"\n className={csx(\n \"proton-Banner\",\n `proton-Banner--${variant}`,\n rounded && \"proton-Banner--rounded\",\n )}\n data-testid={dataTestId}\n >\n <div\n className={csx(\n \"proton-Banner__wrapper\",\n compact && \"proton-Banner__wrapper--compact\",\n )}\n >\n <Banner.Icon icon={icon} />\n <div className=\"proton-Banner__content-wrapper\">\n <div className=\"proton-Banner__container\">{children}</div>\n </div>\n </div>\n </div>\n </BannerContext.Provider>\n );\n};\n\nBanner.displayName = \"ProtonUIBanner\";\n\nconst BannerTitle = ({\n children,\n \"data-testid\": dataTestId,\n}: {\n children: ReactNode;\n \"data-testid\"?: string;\n}) => {\n const variant = useContext(BannerContext);\n if (!variant) throw new Error(\"BannerTitle must be used within a Banner\");\n\n return (\n <h3\n className={csx(\n \"proton-Banner__title\",\n `proton-Banner--${variant}__title`,\n )}\n data-testid={dataTestId}\n >\n {children}\n </h3>\n );\n};\n\nBannerTitle.displayName = \"ProtonUIBanner.Title\";\n\nconst BannerContent = ({\n children,\n \"data-testid\": dataTestId,\n}: {\n children: ReactNode;\n \"data-testid\"?: string;\n}) => {\n const variant = useContext(BannerContext);\n if (!variant) throw new Error(\"BannerContent must be used within a Banner\");\n\n return (\n <p\n className={csx(\n \"proton-Banner__content\",\n `proton-Banner--${variant}__content`,\n )}\n data-testid={dataTestId}\n >\n {children}\n </p>\n );\n};\n\nBannerContent.displayName = \"ProtonUIBanner.Content\";\n\nfunction getIconContent(icon: ReactNode, variant: BannerVariant) {\n if (isValidElement(icon)) return icon;\n\n if (icon && variant !== \"default\") {\n const IconComponent = BANNER_ICON_COMPONENTS[variant];\n\n if (IconComponent) {\n return <IconComponent size={18} color={BANNER_ICON_COLORS[variant]} />;\n }\n }\n\n return null;\n}\n\nconst BannerIcon = ({ icon, \"data-testid\": dataTestId }: BannerIconProps) => {\n const variant = useContext(BannerContext);\n if (!variant) throw new Error(\"BannerIcon must be used within a Banner\");\n\n const iconContent = getIconContent(icon, variant);\n if (!iconContent) return null;\n\n return (\n <div\n aria-hidden=\"true\"\n data-testid={dataTestId}\n className={csx(\"proton-Banner__icon\", `proton-Banner--${variant}__icon`)}\n >\n {iconContent}\n </div>\n );\n};\n\nBannerIcon.displayName = \"ProtonUIBanner.Icon\";\n\nconst BannerAction = ({ children, ...buttonProps }: ButtonProps) => {\n return <Button {...buttonProps}>{children}</Button>;\n};\n\nBannerAction.displayName = \"ProtonUIBanner.Action\";\n\nconst BannerActions = ({ children }: { children: ReactNode }) => {\n return <div className=\"proton-Banner__actions\">{children}</div>;\n};\n\nBannerActions.displayName = \"ProtonUIBanner.Actions\";\n\n/**\n * Renders an h3 styled banner.\n */\nBanner.Title = BannerTitle;\n\n/**\n * Renders a p styled banner.\n */\nBanner.Content = BannerContent;\n\n/**\n * Renders an icon inline with the banner title.\n *\n * API:\n * - {@link BannerIconProps}\n */\nBanner.Icon = BannerIcon;\n\n/**\n * Renders a Proton Button.\n * - @prop buttonProps {@link ButtonProps}\n */\nBanner.Action = BannerAction;\n\n/**\n * Renders Proton Buttons in a responsive actions grid.\n */\nBanner.Actions = BannerActions;\n\nexport { Banner };\n"],"names":["BANNER_ICON_COLORS","BANNER_ICON_COMPONENTS","SuccessCircle","WarningTriangle","DangerCircle","BANNER_VARIANTS","BannerContext","createContext","Banner","variant","rounded","icon","compact","children","dataTestId","jsx","csx","jsxs","BannerTitle","useContext","BannerContent","getIconContent","isValidElement","IconComponent","BannerIcon","iconContent","BannerAction","buttonProps","Button","BannerActions"],"mappings":"+bASMA,EAAqB,CACzB,QAAS,qCACT,QAAS,qCACT,OAAQ,mCACV,EAEMC,EAAyB,CAC7B,QAASC,
|
|
1
|
+
{"version":3,"file":"Banner.cjs.js","sources":["../../../src/components/Banner/Banner.tsx"],"sourcesContent":["\"use client\";\n\nimport { ReactNode, createContext, isValidElement, useContext } from \"react\";\nimport { csx } from \"../../utils\";\nimport { Button, type ButtonProps } from \"../Button/Button\";\nimport { DangerCircle, SuccessCircle, WarningTriangle } from \"../Icon\";\n\nimport \"./Banner.css\";\n\nconst BANNER_ICON_COLORS = {\n success: \"var(--proton-color__success-light)\",\n warning: \"var(--proton-color__warning-light)\",\n danger: \"var(--proton-color__danger-light)\",\n} as const;\n\nconst BANNER_ICON_COMPONENTS = {\n success: SuccessCircle,\n warning: WarningTriangle,\n danger: DangerCircle,\n} as const;\n\nexport const BANNER_VARIANTS = {\n default: \"default\",\n success: \"success\",\n warning: \"warning\",\n danger: \"danger\",\n} as const;\n\nexport type BannerVariant = \"default\" | \"success\" | \"warning\" | \"danger\";\n\nconst BannerContext = createContext<BannerVariant | undefined>(undefined);\n\ninterface BannerIconProps {\n /**\n * Optional custom icon or children for the icon area.\n */\n children?: ReactNode;\n /**\n * The icon to display in the banner.\n * Can be a boolean to conditionally show or hide, or a ReactNode to provide a custom icon.\n */\n icon?: boolean | ReactNode;\n /**\n * The data-testid to display within the banner.\n */\n \"data-testid\"?: string;\n}\n\ninterface BannerProps extends BannerIconProps {\n /**\n * Compact padding around the content of the banner.\n * @default true\n */\n compact?: boolean;\n /**\n * The content to display within the banner.\n */\n children: ReactNode;\n /**\n * The data-testid to display within the banner.\n */\n \"data-testid\"?: string;\n /**\n * Round the corners of the banner.\n * @default true\n */\n rounded?: boolean;\n /**\n * The banner's visual aesthetic.\n * - type {@link BannerVariant}\n */\n variant?: BannerVariant;\n}\n\n/**\n * A banner used to display a success, warning, or error message.\n *\n * API:\n * - {@link BannerProps}\n * - extends {@link BannerIconProps}\n */\nconst Banner = ({\n variant = \"default\",\n rounded = true,\n icon = false,\n compact = true,\n children,\n \"data-testid\": dataTestId,\n}: BannerProps) => {\n return (\n <BannerContext.Provider value={variant}>\n <div\n role=\"status\"\n aria-live=\"polite\"\n className={csx(\n \"proton-Banner\",\n `proton-Banner--${variant}`,\n rounded && \"proton-Banner--rounded\",\n )}\n data-testid={dataTestId}\n >\n <div\n className={csx(\n \"proton-Banner__wrapper\",\n compact && \"proton-Banner__wrapper--compact\",\n )}\n >\n <Banner.Icon icon={icon} />\n <div className=\"proton-Banner__content-wrapper\">\n <div className=\"proton-Banner__container\">{children}</div>\n </div>\n </div>\n </div>\n </BannerContext.Provider>\n );\n};\n\nBanner.displayName = \"ProtonUIBanner\";\n\nconst BannerTitle = ({\n children,\n \"data-testid\": dataTestId,\n}: {\n children: ReactNode;\n \"data-testid\"?: string;\n}) => {\n const variant = useContext(BannerContext);\n if (!variant) throw new Error(\"BannerTitle must be used within a Banner\");\n\n return (\n <h3\n className={csx(\n \"proton-Banner__title\",\n `proton-Banner--${variant}__title`,\n )}\n data-testid={dataTestId}\n >\n {children}\n </h3>\n );\n};\n\nBannerTitle.displayName = \"ProtonUIBanner.Title\";\n\nconst BannerContent = ({\n children,\n \"data-testid\": dataTestId,\n}: {\n children: ReactNode;\n \"data-testid\"?: string;\n}) => {\n const variant = useContext(BannerContext);\n if (!variant) throw new Error(\"BannerContent must be used within a Banner\");\n\n return (\n <p\n className={csx(\n \"proton-Banner__content\",\n `proton-Banner--${variant}__content`,\n )}\n data-testid={dataTestId}\n >\n {children}\n </p>\n );\n};\n\nBannerContent.displayName = \"ProtonUIBanner.Content\";\n\nfunction getIconContent(icon: ReactNode, variant: BannerVariant) {\n if (isValidElement(icon)) return icon;\n\n if (icon && variant !== \"default\") {\n const IconComponent = BANNER_ICON_COMPONENTS[variant];\n\n if (IconComponent) {\n return <IconComponent size={18} color={BANNER_ICON_COLORS[variant]} />;\n }\n }\n\n return null;\n}\n\nconst BannerIcon = ({ icon, \"data-testid\": dataTestId }: BannerIconProps) => {\n const variant = useContext(BannerContext);\n if (!variant) throw new Error(\"BannerIcon must be used within a Banner\");\n\n const iconContent = getIconContent(icon, variant);\n if (!iconContent) return null;\n\n return (\n <div\n aria-hidden=\"true\"\n data-testid={dataTestId}\n className={csx(\"proton-Banner__icon\", `proton-Banner--${variant}__icon`)}\n >\n {iconContent}\n </div>\n );\n};\n\nBannerIcon.displayName = \"ProtonUIBanner.Icon\";\n\nconst BannerAction = ({ children, ...buttonProps }: ButtonProps) => {\n return <Button {...buttonProps}>{children}</Button>;\n};\n\nBannerAction.displayName = \"ProtonUIBanner.Action\";\n\nconst BannerActions = ({ children }: { children: ReactNode }) => {\n return <div className=\"proton-Banner__actions\">{children}</div>;\n};\n\nBannerActions.displayName = \"ProtonUIBanner.Actions\";\n\n/**\n * Renders an h3 styled banner.\n */\nBanner.Title = BannerTitle;\n\n/**\n * Renders a p styled banner.\n */\nBanner.Content = BannerContent;\n\n/**\n * Renders an icon inline with the banner title.\n *\n * API:\n * - {@link BannerIconProps}\n */\nBanner.Icon = BannerIcon;\n\n/**\n * Renders a Proton Button.\n * - @prop buttonProps {@link ButtonProps}\n */\nBanner.Action = BannerAction;\n\n/**\n * Renders Proton Buttons in a responsive actions grid.\n */\nBanner.Actions = BannerActions;\n\nexport { Banner };\n"],"names":["BANNER_ICON_COLORS","BANNER_ICON_COMPONENTS","SuccessCircle","WarningTriangle","DangerCircle","BANNER_VARIANTS","BannerContext","createContext","Banner","variant","rounded","icon","compact","children","dataTestId","jsx","csx","jsxs","BannerTitle","useContext","BannerContent","getIconContent","isValidElement","IconComponent","BannerIcon","iconContent","BannerAction","buttonProps","Button","BannerActions"],"mappings":"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"}
|
|
@@ -3,17 +3,17 @@ import { createContext as N, useContext as c, isValidElement as f } from "react"
|
|
|
3
3
|
import { Button as x } from "../Button/Button.es.js";
|
|
4
4
|
/* empty css */
|
|
5
5
|
import { csx as a } from "../../utils/string.es.js";
|
|
6
|
-
import {
|
|
6
|
+
import { DangerCircle as g } from "../Icon/IconComponents/DangerCircle.es.js";
|
|
7
7
|
import { WarningTriangle as w } from "../Icon/IconComponents/WarningTriangle.es.js";
|
|
8
|
-
import {
|
|
8
|
+
import { SuccessCircle as h } from "../Icon/IconComponents/SuccessCircle.es.js";
|
|
9
9
|
const C = {
|
|
10
10
|
success: "var(--proton-color__success-light)",
|
|
11
11
|
warning: "var(--proton-color__warning-light)",
|
|
12
12
|
danger: "var(--proton-color__danger-light)"
|
|
13
13
|
}, I = {
|
|
14
|
-
success:
|
|
14
|
+
success: h,
|
|
15
15
|
warning: w,
|
|
16
|
-
danger:
|
|
16
|
+
danger: g
|
|
17
17
|
}, U = {
|
|
18
18
|
default: "default",
|
|
19
19
|
success: "success",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Banner.es.js","sources":["../../../src/components/Banner/Banner.tsx"],"sourcesContent":["\"use client\";\n\nimport { ReactNode, createContext, isValidElement, useContext } from \"react\";\nimport { csx } from \"../../utils\";\nimport { Button, type ButtonProps } from \"../Button/Button\";\nimport { DangerCircle, SuccessCircle, WarningTriangle } from \"../Icon\";\n\nimport \"./Banner.css\";\n\nconst BANNER_ICON_COLORS = {\n success: \"var(--proton-color__success-light)\",\n warning: \"var(--proton-color__warning-light)\",\n danger: \"var(--proton-color__danger-light)\",\n} as const;\n\nconst BANNER_ICON_COMPONENTS = {\n success: SuccessCircle,\n warning: WarningTriangle,\n danger: DangerCircle,\n} as const;\n\nexport const BANNER_VARIANTS = {\n default: \"default\",\n success: \"success\",\n warning: \"warning\",\n danger: \"danger\",\n} as const;\n\nexport type BannerVariant = \"default\" | \"success\" | \"warning\" | \"danger\";\n\nconst BannerContext = createContext<BannerVariant | undefined>(undefined);\n\ninterface BannerIconProps {\n /**\n * Optional custom icon or children for the icon area.\n */\n children?: ReactNode;\n /**\n * The icon to display in the banner.\n * Can be a boolean to conditionally show or hide, or a ReactNode to provide a custom icon.\n */\n icon?: boolean | ReactNode;\n /**\n * The data-testid to display within the banner.\n */\n \"data-testid\"?: string;\n}\n\ninterface BannerProps extends BannerIconProps {\n /**\n * Compact padding around the content of the banner.\n * @default true\n */\n compact?: boolean;\n /**\n * The content to display within the banner.\n */\n children: ReactNode;\n /**\n * The data-testid to display within the banner.\n */\n \"data-testid\"?: string;\n /**\n * Round the corners of the banner.\n * @default true\n */\n rounded?: boolean;\n /**\n * The banner's visual aesthetic.\n * - type {@link BannerVariant}\n */\n variant?: BannerVariant;\n}\n\n/**\n * A banner used to display a success, warning, or error message.\n *\n * API:\n * - {@link BannerProps}\n * - extends {@link BannerIconProps}\n */\nconst Banner = ({\n variant = \"default\",\n rounded = true,\n icon = false,\n compact = true,\n children,\n \"data-testid\": dataTestId,\n}: BannerProps) => {\n return (\n <BannerContext.Provider value={variant}>\n <div\n role=\"status\"\n aria-live=\"polite\"\n className={csx(\n \"proton-Banner\",\n `proton-Banner--${variant}`,\n rounded && \"proton-Banner--rounded\",\n )}\n data-testid={dataTestId}\n >\n <div\n className={csx(\n \"proton-Banner__wrapper\",\n compact && \"proton-Banner__wrapper--compact\",\n )}\n >\n <Banner.Icon icon={icon} />\n <div className=\"proton-Banner__content-wrapper\">\n <div className=\"proton-Banner__container\">{children}</div>\n </div>\n </div>\n </div>\n </BannerContext.Provider>\n );\n};\n\nBanner.displayName = \"ProtonUIBanner\";\n\nconst BannerTitle = ({\n children,\n \"data-testid\": dataTestId,\n}: {\n children: ReactNode;\n \"data-testid\"?: string;\n}) => {\n const variant = useContext(BannerContext);\n if (!variant) throw new Error(\"BannerTitle must be used within a Banner\");\n\n return (\n <h3\n className={csx(\n \"proton-Banner__title\",\n `proton-Banner--${variant}__title`,\n )}\n data-testid={dataTestId}\n >\n {children}\n </h3>\n );\n};\n\nBannerTitle.displayName = \"ProtonUIBanner.Title\";\n\nconst BannerContent = ({\n children,\n \"data-testid\": dataTestId,\n}: {\n children: ReactNode;\n \"data-testid\"?: string;\n}) => {\n const variant = useContext(BannerContext);\n if (!variant) throw new Error(\"BannerContent must be used within a Banner\");\n\n return (\n <p\n className={csx(\n \"proton-Banner__content\",\n `proton-Banner--${variant}__content`,\n )}\n data-testid={dataTestId}\n >\n {children}\n </p>\n );\n};\n\nBannerContent.displayName = \"ProtonUIBanner.Content\";\n\nfunction getIconContent(icon: ReactNode, variant: BannerVariant) {\n if (isValidElement(icon)) return icon;\n\n if (icon && variant !== \"default\") {\n const IconComponent = BANNER_ICON_COMPONENTS[variant];\n\n if (IconComponent) {\n return <IconComponent size={18} color={BANNER_ICON_COLORS[variant]} />;\n }\n }\n\n return null;\n}\n\nconst BannerIcon = ({ icon, \"data-testid\": dataTestId }: BannerIconProps) => {\n const variant = useContext(BannerContext);\n if (!variant) throw new Error(\"BannerIcon must be used within a Banner\");\n\n const iconContent = getIconContent(icon, variant);\n if (!iconContent) return null;\n\n return (\n <div\n aria-hidden=\"true\"\n data-testid={dataTestId}\n className={csx(\"proton-Banner__icon\", `proton-Banner--${variant}__icon`)}\n >\n {iconContent}\n </div>\n );\n};\n\nBannerIcon.displayName = \"ProtonUIBanner.Icon\";\n\nconst BannerAction = ({ children, ...buttonProps }: ButtonProps) => {\n return <Button {...buttonProps}>{children}</Button>;\n};\n\nBannerAction.displayName = \"ProtonUIBanner.Action\";\n\nconst BannerActions = ({ children }: { children: ReactNode }) => {\n return <div className=\"proton-Banner__actions\">{children}</div>;\n};\n\nBannerActions.displayName = \"ProtonUIBanner.Actions\";\n\n/**\n * Renders an h3 styled banner.\n */\nBanner.Title = BannerTitle;\n\n/**\n * Renders a p styled banner.\n */\nBanner.Content = BannerContent;\n\n/**\n * Renders an icon inline with the banner title.\n *\n * API:\n * - {@link BannerIconProps}\n */\nBanner.Icon = BannerIcon;\n\n/**\n * Renders a Proton Button.\n * - @prop buttonProps {@link ButtonProps}\n */\nBanner.Action = BannerAction;\n\n/**\n * Renders Proton Buttons in a responsive actions grid.\n */\nBanner.Actions = BannerActions;\n\nexport { Banner };\n"],"names":["BANNER_ICON_COLORS","BANNER_ICON_COMPONENTS","SuccessCircle","WarningTriangle","DangerCircle","BANNER_VARIANTS","BannerContext","createContext","Banner","variant","rounded","icon","compact","children","dataTestId","jsx","csx","jsxs","BannerTitle","useContext","BannerContent","getIconContent","isValidElement","IconComponent","BannerIcon","iconContent","BannerAction","buttonProps","Button","BannerActions"],"mappings":";;;;;;;;AASA,MAAMA,IAAqB;AAAA,EACzB,SAAS;AAAA,EACT,SAAS;AAAA,EACT,QAAQ;AACV,GAEMC,IAAyB;AAAA,EAC7B,SAASC;AAAA,EACT,SAASC;AAAA,EACT,QAAQC;AACV,GAEaC,IAAkB;AAAA,EAC7B,SAAS;AAAA,EACT,SAAS;AAAA,EACT,SAAS;AAAA,EACT,QAAQ;AACV,GAIMC,IAAgBC,EAAyC,MAAS,GAmDlEC,IAAS,CAAC;AAAA,EACd,SAAAC,IAAU;AAAA,EACV,SAAAC,IAAU;AAAA,EACV,MAAAC,IAAO;AAAA,EACP,SAAAC,IAAU;AAAA,EACV,UAAAC;AAAA,EACA,eAAeC;AACjB,
|
|
1
|
+
{"version":3,"file":"Banner.es.js","sources":["../../../src/components/Banner/Banner.tsx"],"sourcesContent":["\"use client\";\n\nimport { ReactNode, createContext, isValidElement, useContext } from \"react\";\nimport { csx } from \"../../utils\";\nimport { Button, type ButtonProps } from \"../Button/Button\";\nimport { DangerCircle, SuccessCircle, WarningTriangle } from \"../Icon\";\n\nimport \"./Banner.css\";\n\nconst BANNER_ICON_COLORS = {\n success: \"var(--proton-color__success-light)\",\n warning: \"var(--proton-color__warning-light)\",\n danger: \"var(--proton-color__danger-light)\",\n} as const;\n\nconst BANNER_ICON_COMPONENTS = {\n success: SuccessCircle,\n warning: WarningTriangle,\n danger: DangerCircle,\n} as const;\n\nexport const BANNER_VARIANTS = {\n default: \"default\",\n success: \"success\",\n warning: \"warning\",\n danger: \"danger\",\n} as const;\n\nexport type BannerVariant = \"default\" | \"success\" | \"warning\" | \"danger\";\n\nconst BannerContext = createContext<BannerVariant | undefined>(undefined);\n\ninterface BannerIconProps {\n /**\n * Optional custom icon or children for the icon area.\n */\n children?: ReactNode;\n /**\n * The icon to display in the banner.\n * Can be a boolean to conditionally show or hide, or a ReactNode to provide a custom icon.\n */\n icon?: boolean | ReactNode;\n /**\n * The data-testid to display within the banner.\n */\n \"data-testid\"?: string;\n}\n\ninterface BannerProps extends BannerIconProps {\n /**\n * Compact padding around the content of the banner.\n * @default true\n */\n compact?: boolean;\n /**\n * The content to display within the banner.\n */\n children: ReactNode;\n /**\n * The data-testid to display within the banner.\n */\n \"data-testid\"?: string;\n /**\n * Round the corners of the banner.\n * @default true\n */\n rounded?: boolean;\n /**\n * The banner's visual aesthetic.\n * - type {@link BannerVariant}\n */\n variant?: BannerVariant;\n}\n\n/**\n * A banner used to display a success, warning, or error message.\n *\n * API:\n * - {@link BannerProps}\n * - extends {@link BannerIconProps}\n */\nconst Banner = ({\n variant = \"default\",\n rounded = true,\n icon = false,\n compact = true,\n children,\n \"data-testid\": dataTestId,\n}: BannerProps) => {\n return (\n <BannerContext.Provider value={variant}>\n <div\n role=\"status\"\n aria-live=\"polite\"\n className={csx(\n \"proton-Banner\",\n `proton-Banner--${variant}`,\n rounded && \"proton-Banner--rounded\",\n )}\n data-testid={dataTestId}\n >\n <div\n className={csx(\n \"proton-Banner__wrapper\",\n compact && \"proton-Banner__wrapper--compact\",\n )}\n >\n <Banner.Icon icon={icon} />\n <div className=\"proton-Banner__content-wrapper\">\n <div className=\"proton-Banner__container\">{children}</div>\n </div>\n </div>\n </div>\n </BannerContext.Provider>\n );\n};\n\nBanner.displayName = \"ProtonUIBanner\";\n\nconst BannerTitle = ({\n children,\n \"data-testid\": dataTestId,\n}: {\n children: ReactNode;\n \"data-testid\"?: string;\n}) => {\n const variant = useContext(BannerContext);\n if (!variant) throw new Error(\"BannerTitle must be used within a Banner\");\n\n return (\n <h3\n className={csx(\n \"proton-Banner__title\",\n `proton-Banner--${variant}__title`,\n )}\n data-testid={dataTestId}\n >\n {children}\n </h3>\n );\n};\n\nBannerTitle.displayName = \"ProtonUIBanner.Title\";\n\nconst BannerContent = ({\n children,\n \"data-testid\": dataTestId,\n}: {\n children: ReactNode;\n \"data-testid\"?: string;\n}) => {\n const variant = useContext(BannerContext);\n if (!variant) throw new Error(\"BannerContent must be used within a Banner\");\n\n return (\n <p\n className={csx(\n \"proton-Banner__content\",\n `proton-Banner--${variant}__content`,\n )}\n data-testid={dataTestId}\n >\n {children}\n </p>\n );\n};\n\nBannerContent.displayName = \"ProtonUIBanner.Content\";\n\nfunction getIconContent(icon: ReactNode, variant: BannerVariant) {\n if (isValidElement(icon)) return icon;\n\n if (icon && variant !== \"default\") {\n const IconComponent = BANNER_ICON_COMPONENTS[variant];\n\n if (IconComponent) {\n return <IconComponent size={18} color={BANNER_ICON_COLORS[variant]} />;\n }\n }\n\n return null;\n}\n\nconst BannerIcon = ({ icon, \"data-testid\": dataTestId }: BannerIconProps) => {\n const variant = useContext(BannerContext);\n if (!variant) throw new Error(\"BannerIcon must be used within a Banner\");\n\n const iconContent = getIconContent(icon, variant);\n if (!iconContent) return null;\n\n return (\n <div\n aria-hidden=\"true\"\n data-testid={dataTestId}\n className={csx(\"proton-Banner__icon\", `proton-Banner--${variant}__icon`)}\n >\n {iconContent}\n </div>\n );\n};\n\nBannerIcon.displayName = \"ProtonUIBanner.Icon\";\n\nconst BannerAction = ({ children, ...buttonProps }: ButtonProps) => {\n return <Button {...buttonProps}>{children}</Button>;\n};\n\nBannerAction.displayName = \"ProtonUIBanner.Action\";\n\nconst BannerActions = ({ children }: { children: ReactNode }) => {\n return <div className=\"proton-Banner__actions\">{children}</div>;\n};\n\nBannerActions.displayName = \"ProtonUIBanner.Actions\";\n\n/**\n * Renders an h3 styled banner.\n */\nBanner.Title = BannerTitle;\n\n/**\n * Renders a p styled banner.\n */\nBanner.Content = BannerContent;\n\n/**\n * Renders an icon inline with the banner title.\n *\n * API:\n * - {@link BannerIconProps}\n */\nBanner.Icon = BannerIcon;\n\n/**\n * Renders a Proton Button.\n * - @prop buttonProps {@link ButtonProps}\n */\nBanner.Action = BannerAction;\n\n/**\n * Renders Proton Buttons in a responsive actions grid.\n */\nBanner.Actions = BannerActions;\n\nexport { Banner };\n"],"names":["BANNER_ICON_COLORS","BANNER_ICON_COMPONENTS","SuccessCircle","WarningTriangle","DangerCircle","BANNER_VARIANTS","BannerContext","createContext","Banner","variant","rounded","icon","compact","children","dataTestId","jsx","csx","jsxs","BannerTitle","useContext","BannerContent","getIconContent","isValidElement","IconComponent","BannerIcon","iconContent","BannerAction","buttonProps","Button","BannerActions"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("../../node_modules/react/jsx-runtime.cjs.js"),y=require("react"),p=require("../../utils/string.cjs.js"),B=require("../../utils/navigation.cjs.js");;/* empty css */const E={primary:"primary",secondary:"secondary",success:"success",danger:"danger",translucent:"translucent"},R={small:"small",medium:"medium",large:"large",xlarge:"xlarge","2xlarge":"2xlarge"},g=y.forwardRef(({variant:j="primary",size:i="medium",fullWidth:s=!1,icon:c,to:t,target:a,onPress:
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("../../node_modules/react/jsx-runtime.cjs.js"),y=require("react"),p=require("../../utils/string.cjs.js"),B=require("../../utils/navigation.cjs.js");;/* empty css */const E={primary:"primary",secondary:"secondary",success:"success",danger:"danger",translucent:"translucent"},R={small:"small",medium:"medium",large:"large",xlarge:"xlarge","2xlarge":"2xlarge"},g=y.forwardRef(({variant:j="primary",size:i="medium",fullWidth:s=!1,icon:c,to:t,target:a,onPress:e,type:f="button",isDisabled:n,"data-testid":v,children:l},d)=>{const u=t&&B.isUrlExternal(t),x={className:p.csx("proton-Button",`proton-Button--${j}`,s&&"proton-Button--fullWidth",n&&"proton-Button--disabled",i&&`proton-Button--${i}`),"data-testid":v,...t&&{"aria-disabled":n},...n&&{tabIndex:-1}},m=r.jsxRuntimeExports.jsxs(r.jsxRuntimeExports.Fragment,{children:[c&&r.jsxRuntimeExports.jsx("div",{className:p.csx("proton-Button__icon-decorator",s&&"proton-Button__icon-decorator--fullWidth"),children:c}),l&&r.jsxRuntimeExports.jsx("div",{className:"proton-Button__text",children:l})]});return t?r.jsxRuntimeExports.jsx("a",{...x,href:t,target:a||(u?"_blank":void 0),rel:u||a==="_blank"?"noopener noreferrer":void 0,ref:d,onClick:o=>{if(n){o.preventDefault();return}!u&&!a&&B.handleInternalNavigation(o,t),e==null||e(o)},role:"button",children:m}):r.jsxRuntimeExports.jsx("button",{...x,type:f,disabled:n,ref:d,onClick:o=>{!n&&e&&e(o)},children:m})});g.displayName="ProtonUIButton";exports.Button=g;exports.ButtonSizes=R;exports.ButtonVariants=E;
|
|
2
2
|
//# sourceMappingURL=Button.cjs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Button.cjs.js","sources":["../../../src/components/Button/Button.tsx"],"sourcesContent":["\"use client\";\n\nimport { forwardRef, MouseEvent } from \"react\";\n\nimport { csx } from \"../../utils/string\";\nimport {\n isUrlExternal,\n handleInternalNavigation,\n} from \"../../utils/navigation\";\nimport \"./Button.css\";\n\nexport type ButtonVariant =\n | \"primary\"\n | \"secondary\"\n | \"success\"\n | \"danger\"\n | \"translucent\";\n\nexport const ButtonVariants: Record<ButtonVariant, ButtonVariant> = {\n primary: \"primary\",\n secondary: \"secondary\",\n success: \"success\",\n danger: \"danger\",\n translucent: \"translucent\",\n};\n\nexport type ButtonSize = \"small\" | \"medium\" | \"large\" | \"xlarge\" | \"2xlarge\";\n\nexport const ButtonSizes: Record<ButtonSize, ButtonSize> = {\n small: \"small\",\n medium: \"medium\",\n large: \"large\",\n xlarge: \"xlarge\",\n \"2xlarge\": \"2xlarge\",\n};\n\nexport interface ButtonProps {\n /** The button's visual aesthetic\n * - type {@link ButtonVariant}\n */\n variant?: ButtonVariant;\n\n /** The size of the button\n * - type {@link ButtonSize}\n * @default \"medium\"\n */\n size?: ButtonSize;\n\n /** Should the button be full width?\n * @default false\n */\n fullWidth?: boolean;\n\n /** The prefix to display within the button */\n icon?: React.ReactNode;\n\n /** Should the button be non-interactive? */\n isDisabled?: boolean;\n\n /** The URL that the button should link to. Turns the element into an `a` tag. If the URL is external, you should pass the entire URL to the `to` prop (e.g. `https://example.com`). */\n to?: string;\n\n /** The target attribute for the link. Defaults to `_blank` if the URL is external. */\n target?: \"_blank\" | \"_self\" | \"_parent\" | \"_top\" | string;\n\n /** Called when the button is pressed (on release, not keydown) */\n onPress?: (e: MouseEvent<HTMLButtonElement | HTMLAnchorElement>) => void;\n\n /** The type of button */\n type?: \"button\" | \"submit\" | \"reset\";\n\n /** The test ID for the button */\n \"data-testid\"?: string;\n\n /** The content to display within the button */\n children?: React.ReactNode;\n}\n\n/**\n * A customizable button component that can render as either a button or anchor element.\n *\n * API:\n * - {@link ButtonProps}\n */\nexport const Button = forwardRef<\n HTMLButtonElement | HTMLAnchorElement,\n ButtonProps\n>(\n (\n {\n variant = \"primary\",\n size = \"medium\",\n fullWidth = false,\n icon,\n to,\n target,\n onPress,\n type = \"button\",\n isDisabled,\n \"data-testid\": testId,\n children,\n }: ButtonProps,\n ref\n ) => {\n const isExternal = to && isUrlExternal(to);\n\n const commonProps = {\n className: csx(\n \"proton-Button\",\n `proton-Button--${variant}`,\n fullWidth && \"proton-Button--fullWidth\",\n isDisabled && \"proton-Button--disabled\",\n size && `proton-Button--${size}`\n ),\n \"data-testid\": testId,\n ...(to && { \"aria-disabled\": isDisabled }),\n ...(isDisabled && { tabIndex: -1 }),\n };\n\n const content = (\n <>\n {icon && (\n <div\n className={csx(\n \"proton-Button__icon-decorator\",\n fullWidth && \"proton-Button__icon-decorator--fullWidth\"\n )}\n >\n {icon}\n </div>\n )}\n {children && <div className=\"proton-Button__text\">{children}</div>}\n </>\n );\n\n if (to) {\n return (\n <a\n {...commonProps}\n href={to}\n target={target || (isExternal ? \"_blank\" : undefined)}\n rel={\n isExternal || target === \"_blank\"\n ? \"noopener noreferrer\"\n : undefined\n }\n ref={ref as React.RefObject<HTMLAnchorElement>}\n onClick={(e) => {\n if (isDisabled) {\n e.preventDefault();\n return;\n }\n\n if (!isExternal && !target) {\n handleInternalNavigation(e, to);\n }\n\n onPress?.(e);\n }}\n role=\"button\"\n >\n {content}\n </a>\n );\n }\n\n return (\n <button\n {...commonProps}\n type={type}\n disabled={isDisabled}\n ref={ref as React.RefObject<HTMLButtonElement>}\n onClick={(e) => {\n if (!isDisabled && onPress) {\n onPress(e);\n }\n }}\n >\n {content}\n </button>\n );\n }\n);\n\nButton.displayName = \"ProtonUIButton\";\n"],"names":["ButtonVariants","ButtonSizes","Button","forwardRef","variant","size","fullWidth","icon","to","target","onPress","type","isDisabled","testId","children","ref","isExternal","isUrlExternal","commonProps","csx","content","jsxs","Fragment","jsx","handleInternalNavigation"],"mappings":"mRAkBO,MAAMA,EAAuD,CAClE,QAAS,UACT,UAAW,YACX,QAAS,UACT,OAAQ,SACR,YAAa,aACf,EAIaC,EAA8C,CACzD,MAAO,QACP,OAAQ,SACR,MAAO,QACP,OAAQ,SACR,UAAW,SACb,EAkDaC,EAASC,
|
|
1
|
+
{"version":3,"file":"Button.cjs.js","sources":["../../../src/components/Button/Button.tsx"],"sourcesContent":["\"use client\";\n\nimport { forwardRef, MouseEvent } from \"react\";\n\nimport { csx } from \"../../utils/string\";\nimport {\n isUrlExternal,\n handleInternalNavigation,\n} from \"../../utils/navigation\";\nimport \"./Button.css\";\n\nexport type ButtonVariant =\n | \"primary\"\n | \"secondary\"\n | \"success\"\n | \"danger\"\n | \"translucent\";\n\nexport const ButtonVariants: Record<ButtonVariant, ButtonVariant> = {\n primary: \"primary\",\n secondary: \"secondary\",\n success: \"success\",\n danger: \"danger\",\n translucent: \"translucent\",\n};\n\nexport type ButtonSize = \"small\" | \"medium\" | \"large\" | \"xlarge\" | \"2xlarge\";\n\nexport const ButtonSizes: Record<ButtonSize, ButtonSize> = {\n small: \"small\",\n medium: \"medium\",\n large: \"large\",\n xlarge: \"xlarge\",\n \"2xlarge\": \"2xlarge\",\n};\n\nexport interface ButtonProps {\n /** The button's visual aesthetic\n * - type {@link ButtonVariant}\n */\n variant?: ButtonVariant;\n\n /** The size of the button\n * - type {@link ButtonSize}\n * @default \"medium\"\n */\n size?: ButtonSize;\n\n /** Should the button be full width?\n * @default false\n */\n fullWidth?: boolean;\n\n /** The prefix to display within the button */\n icon?: React.ReactNode;\n\n /** Should the button be non-interactive? */\n isDisabled?: boolean;\n\n /** The URL that the button should link to. Turns the element into an `a` tag. If the URL is external, you should pass the entire URL to the `to` prop (e.g. `https://example.com`). */\n to?: string;\n\n /** The target attribute for the link. Defaults to `_blank` if the URL is external. */\n target?: \"_blank\" | \"_self\" | \"_parent\" | \"_top\" | string;\n\n /** Called when the button is pressed (on release, not keydown) */\n onPress?: (e: MouseEvent<HTMLButtonElement | HTMLAnchorElement>) => void;\n\n /** The type of button */\n type?: \"button\" | \"submit\" | \"reset\";\n\n /** The test ID for the button */\n \"data-testid\"?: string;\n\n /** The content to display within the button */\n children?: React.ReactNode;\n}\n\n/**\n * A customizable button component that can render as either a button or anchor element.\n *\n * API:\n * - {@link ButtonProps}\n */\nexport const Button = forwardRef<\n HTMLButtonElement | HTMLAnchorElement,\n ButtonProps\n>(\n (\n {\n variant = \"primary\",\n size = \"medium\",\n fullWidth = false,\n icon,\n to,\n target,\n onPress,\n type = \"button\",\n isDisabled,\n \"data-testid\": testId,\n children,\n }: ButtonProps,\n ref\n ) => {\n const isExternal = to && isUrlExternal(to);\n\n const commonProps = {\n className: csx(\n \"proton-Button\",\n `proton-Button--${variant}`,\n fullWidth && \"proton-Button--fullWidth\",\n isDisabled && \"proton-Button--disabled\",\n size && `proton-Button--${size}`\n ),\n \"data-testid\": testId,\n ...(to && { \"aria-disabled\": isDisabled }),\n ...(isDisabled && { tabIndex: -1 }),\n };\n\n const content = (\n <>\n {icon && (\n <div\n className={csx(\n \"proton-Button__icon-decorator\",\n fullWidth && \"proton-Button__icon-decorator--fullWidth\"\n )}\n >\n {icon}\n </div>\n )}\n {children && <div className=\"proton-Button__text\">{children}</div>}\n </>\n );\n\n if (to) {\n return (\n <a\n {...commonProps}\n href={to}\n target={target || (isExternal ? \"_blank\" : undefined)}\n rel={\n isExternal || target === \"_blank\"\n ? \"noopener noreferrer\"\n : undefined\n }\n ref={ref as React.RefObject<HTMLAnchorElement>}\n onClick={(e) => {\n if (isDisabled) {\n e.preventDefault();\n return;\n }\n\n if (!isExternal && !target) {\n handleInternalNavigation(e, to);\n }\n\n onPress?.(e);\n }}\n role=\"button\"\n >\n {content}\n </a>\n );\n }\n\n return (\n <button\n {...commonProps}\n type={type}\n disabled={isDisabled}\n ref={ref as React.RefObject<HTMLButtonElement>}\n onClick={(e) => {\n if (!isDisabled && onPress) {\n onPress(e);\n }\n }}\n >\n {content}\n </button>\n );\n }\n);\n\nButton.displayName = \"ProtonUIButton\";\n"],"names":["ButtonVariants","ButtonSizes","Button","forwardRef","variant","size","fullWidth","icon","to","target","onPress","type","isDisabled","testId","children","ref","isExternal","isUrlExternal","commonProps","csx","content","jsxs","Fragment","jsx","e","handleInternalNavigation"],"mappings":"mRAkBO,MAAMA,EAAuD,CAClE,QAAS,UACT,UAAW,YACX,QAAS,UACT,OAAQ,SACR,YAAa,aACf,EAIaC,EAA8C,CACzD,MAAO,QACP,OAAQ,SACR,MAAO,QACP,OAAQ,SACR,UAAW,SACb,EAkDaC,EAASC,EAAAA,WAIpB,CACE,CACE,QAAAC,EAAU,UACV,KAAAC,EAAO,SACP,UAAAC,EAAY,GACZ,KAAAC,EACA,GAAAC,EACA,OAAAC,EACA,QAAAC,EACA,KAAAC,EAAO,SACP,WAAAC,EACA,cAAeC,EACf,SAAAC,CAAA,EAEFC,IACG,CACH,MAAMC,EAAaR,GAAMS,EAAAA,cAAcT,CAAE,EAEnCU,EAAc,CAClB,UAAWC,EAAAA,IACT,gBACA,kBAAkBf,CAAO,GACzBE,GAAa,2BACbM,GAAc,0BACdP,GAAQ,kBAAkBA,CAAI,EAAA,EAEhC,cAAeQ,EACf,GAAIL,GAAM,CAAE,gBAAiBI,CAAA,EAC7B,GAAIA,GAAc,CAAE,SAAU,EAAA,CAAG,EAG7BQ,EACJC,EAAAA,kBAAAA,KAAAC,EAAAA,kBAAAA,SAAA,CACG,SAAA,CAAAf,GACCgB,EAAAA,kBAAAA,IAAC,MAAA,CACC,UAAWJ,EAAAA,IACT,gCACAb,GAAa,0CAAA,EAGd,SAAAC,CAAA,CAAA,EAGJO,GAAYS,EAAAA,kBAAAA,IAAC,MAAA,CAAI,UAAU,sBAAuB,SAAAT,CAAA,CAAS,CAAA,EAC9D,EAGF,OAAIN,EAEAe,EAAAA,kBAAAA,IAAC,IAAA,CACE,GAAGL,EACJ,KAAMV,EACN,OAAQC,IAAWO,EAAa,SAAW,QAC3C,IACEA,GAAcP,IAAW,SACrB,sBACA,OAEN,IAAAM,EACA,QAAUS,GAAM,CACd,GAAIZ,EAAY,CACdY,EAAE,eAAA,EACF,MACF,CAEI,CAACR,GAAc,CAACP,GAClBgB,EAAAA,yBAAyBD,EAAGhB,CAAE,EAGhCE,GAAA,MAAAA,EAAUc,EACZ,EACA,KAAK,SAEJ,SAAAJ,CAAA,CAAA,EAMLG,EAAAA,kBAAAA,IAAC,SAAA,CACE,GAAGL,EACJ,KAAAP,EACA,SAAUC,EACV,IAAAG,EACA,QAAUS,GAAM,CACV,CAACZ,GAAcF,GACjBA,EAAQc,CAAC,CAEb,EAEC,SAAAJ,CAAA,CAAA,CAGP,CACF,EAEAlB,EAAO,YAAc"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Button.es.js","sources":["../../../src/components/Button/Button.tsx"],"sourcesContent":["\"use client\";\n\nimport { forwardRef, MouseEvent } from \"react\";\n\nimport { csx } from \"../../utils/string\";\nimport {\n isUrlExternal,\n handleInternalNavigation,\n} from \"../../utils/navigation\";\nimport \"./Button.css\";\n\nexport type ButtonVariant =\n | \"primary\"\n | \"secondary\"\n | \"success\"\n | \"danger\"\n | \"translucent\";\n\nexport const ButtonVariants: Record<ButtonVariant, ButtonVariant> = {\n primary: \"primary\",\n secondary: \"secondary\",\n success: \"success\",\n danger: \"danger\",\n translucent: \"translucent\",\n};\n\nexport type ButtonSize = \"small\" | \"medium\" | \"large\" | \"xlarge\" | \"2xlarge\";\n\nexport const ButtonSizes: Record<ButtonSize, ButtonSize> = {\n small: \"small\",\n medium: \"medium\",\n large: \"large\",\n xlarge: \"xlarge\",\n \"2xlarge\": \"2xlarge\",\n};\n\nexport interface ButtonProps {\n /** The button's visual aesthetic\n * - type {@link ButtonVariant}\n */\n variant?: ButtonVariant;\n\n /** The size of the button\n * - type {@link ButtonSize}\n * @default \"medium\"\n */\n size?: ButtonSize;\n\n /** Should the button be full width?\n * @default false\n */\n fullWidth?: boolean;\n\n /** The prefix to display within the button */\n icon?: React.ReactNode;\n\n /** Should the button be non-interactive? */\n isDisabled?: boolean;\n\n /** The URL that the button should link to. Turns the element into an `a` tag. If the URL is external, you should pass the entire URL to the `to` prop (e.g. `https://example.com`). */\n to?: string;\n\n /** The target attribute for the link. Defaults to `_blank` if the URL is external. */\n target?: \"_blank\" | \"_self\" | \"_parent\" | \"_top\" | string;\n\n /** Called when the button is pressed (on release, not keydown) */\n onPress?: (e: MouseEvent<HTMLButtonElement | HTMLAnchorElement>) => void;\n\n /** The type of button */\n type?: \"button\" | \"submit\" | \"reset\";\n\n /** The test ID for the button */\n \"data-testid\"?: string;\n\n /** The content to display within the button */\n children?: React.ReactNode;\n}\n\n/**\n * A customizable button component that can render as either a button or anchor element.\n *\n * API:\n * - {@link ButtonProps}\n */\nexport const Button = forwardRef<\n HTMLButtonElement | HTMLAnchorElement,\n ButtonProps\n>(\n (\n {\n variant = \"primary\",\n size = \"medium\",\n fullWidth = false,\n icon,\n to,\n target,\n onPress,\n type = \"button\",\n isDisabled,\n \"data-testid\": testId,\n children,\n }: ButtonProps,\n ref\n ) => {\n const isExternal = to && isUrlExternal(to);\n\n const commonProps = {\n className: csx(\n \"proton-Button\",\n `proton-Button--${variant}`,\n fullWidth && \"proton-Button--fullWidth\",\n isDisabled && \"proton-Button--disabled\",\n size && `proton-Button--${size}`\n ),\n \"data-testid\": testId,\n ...(to && { \"aria-disabled\": isDisabled }),\n ...(isDisabled && { tabIndex: -1 }),\n };\n\n const content = (\n <>\n {icon && (\n <div\n className={csx(\n \"proton-Button__icon-decorator\",\n fullWidth && \"proton-Button__icon-decorator--fullWidth\"\n )}\n >\n {icon}\n </div>\n )}\n {children && <div className=\"proton-Button__text\">{children}</div>}\n </>\n );\n\n if (to) {\n return (\n <a\n {...commonProps}\n href={to}\n target={target || (isExternal ? \"_blank\" : undefined)}\n rel={\n isExternal || target === \"_blank\"\n ? \"noopener noreferrer\"\n : undefined\n }\n ref={ref as React.RefObject<HTMLAnchorElement>}\n onClick={(e) => {\n if (isDisabled) {\n e.preventDefault();\n return;\n }\n\n if (!isExternal && !target) {\n handleInternalNavigation(e, to);\n }\n\n onPress?.(e);\n }}\n role=\"button\"\n >\n {content}\n </a>\n );\n }\n\n return (\n <button\n {...commonProps}\n type={type}\n disabled={isDisabled}\n ref={ref as React.RefObject<HTMLButtonElement>}\n onClick={(e) => {\n if (!isDisabled && onPress) {\n onPress(e);\n }\n }}\n >\n {content}\n </button>\n );\n }\n);\n\nButton.displayName = \"ProtonUIButton\";\n"],"names":["ButtonVariants","ButtonSizes","Button","forwardRef","variant","size","fullWidth","icon","to","target","onPress","type","isDisabled","testId","children","ref","isExternal","isUrlExternal","commonProps","csx","content","jsxs","Fragment","jsx","e","handleInternalNavigation"],"mappings":";;;;;AAkBO,MAAMA,IAAuD;AAAA,EAClE,SAAS;AAAA,EACT,WAAW;AAAA,EACX,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,aAAa;AACf,GAIaC,IAA8C;AAAA,EACzD,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,WAAW;AACb,GAkDaC,IAASC;AAAA,EAIpB,CACE;AAAA,IACE,SAAAC,IAAU;AAAA,IACV,MAAAC,IAAO;AAAA,IACP,WAAAC,IAAY;AAAA,IACZ,MAAAC;AAAA,IACA,IAAAC;AAAA,IACA,QAAAC;AAAA,IACA,SAAAC;AAAA,IACA,MAAAC,IAAO;AAAA,IACP,YAAAC;AAAA,IACA,eAAeC;AAAA,IACf,UAAAC;AAAA,
|
|
1
|
+
{"version":3,"file":"Button.es.js","sources":["../../../src/components/Button/Button.tsx"],"sourcesContent":["\"use client\";\n\nimport { forwardRef, MouseEvent } from \"react\";\n\nimport { csx } from \"../../utils/string\";\nimport {\n isUrlExternal,\n handleInternalNavigation,\n} from \"../../utils/navigation\";\nimport \"./Button.css\";\n\nexport type ButtonVariant =\n | \"primary\"\n | \"secondary\"\n | \"success\"\n | \"danger\"\n | \"translucent\";\n\nexport const ButtonVariants: Record<ButtonVariant, ButtonVariant> = {\n primary: \"primary\",\n secondary: \"secondary\",\n success: \"success\",\n danger: \"danger\",\n translucent: \"translucent\",\n};\n\nexport type ButtonSize = \"small\" | \"medium\" | \"large\" | \"xlarge\" | \"2xlarge\";\n\nexport const ButtonSizes: Record<ButtonSize, ButtonSize> = {\n small: \"small\",\n medium: \"medium\",\n large: \"large\",\n xlarge: \"xlarge\",\n \"2xlarge\": \"2xlarge\",\n};\n\nexport interface ButtonProps {\n /** The button's visual aesthetic\n * - type {@link ButtonVariant}\n */\n variant?: ButtonVariant;\n\n /** The size of the button\n * - type {@link ButtonSize}\n * @default \"medium\"\n */\n size?: ButtonSize;\n\n /** Should the button be full width?\n * @default false\n */\n fullWidth?: boolean;\n\n /** The prefix to display within the button */\n icon?: React.ReactNode;\n\n /** Should the button be non-interactive? */\n isDisabled?: boolean;\n\n /** The URL that the button should link to. Turns the element into an `a` tag. If the URL is external, you should pass the entire URL to the `to` prop (e.g. `https://example.com`). */\n to?: string;\n\n /** The target attribute for the link. Defaults to `_blank` if the URL is external. */\n target?: \"_blank\" | \"_self\" | \"_parent\" | \"_top\" | string;\n\n /** Called when the button is pressed (on release, not keydown) */\n onPress?: (e: MouseEvent<HTMLButtonElement | HTMLAnchorElement>) => void;\n\n /** The type of button */\n type?: \"button\" | \"submit\" | \"reset\";\n\n /** The test ID for the button */\n \"data-testid\"?: string;\n\n /** The content to display within the button */\n children?: React.ReactNode;\n}\n\n/**\n * A customizable button component that can render as either a button or anchor element.\n *\n * API:\n * - {@link ButtonProps}\n */\nexport const Button = forwardRef<\n HTMLButtonElement | HTMLAnchorElement,\n ButtonProps\n>(\n (\n {\n variant = \"primary\",\n size = \"medium\",\n fullWidth = false,\n icon,\n to,\n target,\n onPress,\n type = \"button\",\n isDisabled,\n \"data-testid\": testId,\n children,\n }: ButtonProps,\n ref\n ) => {\n const isExternal = to && isUrlExternal(to);\n\n const commonProps = {\n className: csx(\n \"proton-Button\",\n `proton-Button--${variant}`,\n fullWidth && \"proton-Button--fullWidth\",\n isDisabled && \"proton-Button--disabled\",\n size && `proton-Button--${size}`\n ),\n \"data-testid\": testId,\n ...(to && { \"aria-disabled\": isDisabled }),\n ...(isDisabled && { tabIndex: -1 }),\n };\n\n const content = (\n <>\n {icon && (\n <div\n className={csx(\n \"proton-Button__icon-decorator\",\n fullWidth && \"proton-Button__icon-decorator--fullWidth\"\n )}\n >\n {icon}\n </div>\n )}\n {children && <div className=\"proton-Button__text\">{children}</div>}\n </>\n );\n\n if (to) {\n return (\n <a\n {...commonProps}\n href={to}\n target={target || (isExternal ? \"_blank\" : undefined)}\n rel={\n isExternal || target === \"_blank\"\n ? \"noopener noreferrer\"\n : undefined\n }\n ref={ref as React.RefObject<HTMLAnchorElement>}\n onClick={(e) => {\n if (isDisabled) {\n e.preventDefault();\n return;\n }\n\n if (!isExternal && !target) {\n handleInternalNavigation(e, to);\n }\n\n onPress?.(e);\n }}\n role=\"button\"\n >\n {content}\n </a>\n );\n }\n\n return (\n <button\n {...commonProps}\n type={type}\n disabled={isDisabled}\n ref={ref as React.RefObject<HTMLButtonElement>}\n onClick={(e) => {\n if (!isDisabled && onPress) {\n onPress(e);\n }\n }}\n >\n {content}\n </button>\n );\n }\n);\n\nButton.displayName = \"ProtonUIButton\";\n"],"names":["ButtonVariants","ButtonSizes","Button","forwardRef","variant","size","fullWidth","icon","to","target","onPress","type","isDisabled","testId","children","ref","isExternal","isUrlExternal","commonProps","csx","content","jsxs","Fragment","jsx","e","handleInternalNavigation"],"mappings":";;;;;AAkBO,MAAMA,IAAuD;AAAA,EAClE,SAAS;AAAA,EACT,WAAW;AAAA,EACX,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,aAAa;AACf,GAIaC,IAA8C;AAAA,EACzD,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,WAAW;AACb,GAkDaC,IAASC;AAAA,EAIpB,CACE;AAAA,IACE,SAAAC,IAAU;AAAA,IACV,MAAAC,IAAO;AAAA,IACP,WAAAC,IAAY;AAAA,IACZ,MAAAC;AAAA,IACA,IAAAC;AAAA,IACA,QAAAC;AAAA,IACA,SAAAC;AAAA,IACA,MAAAC,IAAO;AAAA,IACP,YAAAC;AAAA,IACA,eAAeC;AAAA,IACf,UAAAC;AAAA,EAAA,GAEFC,MACG;AACH,UAAMC,IAAaR,KAAMS,EAAcT,CAAE,GAEnCU,IAAc;AAAA,MAClB,WAAWC;AAAA,QACT;AAAA,QACA,kBAAkBf,CAAO;AAAA,QACzBE,KAAa;AAAA,QACbM,KAAc;AAAA,QACdP,KAAQ,kBAAkBA,CAAI;AAAA,MAAA;AAAA,MAEhC,eAAeQ;AAAA,MACf,GAAIL,KAAM,EAAE,iBAAiBI,EAAA;AAAA,MAC7B,GAAIA,KAAc,EAAE,UAAU,GAAA;AAAA,IAAG,GAG7BQ,IACJC,gBAAAA,EAAAA,KAAAC,EAAAA,UAAA,EACG,UAAA;AAAA,MAAAf,KACCgB,gBAAAA,EAAAA;AAAAA,QAAC;AAAA,QAAA;AAAA,UACC,WAAWJ;AAAA,YACT;AAAA,YACAb,KAAa;AAAA,UAAA;AAAA,UAGd,UAAAC;AAAA,QAAA;AAAA,MAAA;AAAA,MAGJO,KAAYS,gBAAAA,EAAAA,IAAC,OAAA,EAAI,WAAU,uBAAuB,UAAAT,EAAA,CAAS;AAAA,IAAA,GAC9D;AAGF,WAAIN,IAEAe,gBAAAA,EAAAA;AAAAA,MAAC;AAAA,MAAA;AAAA,QACE,GAAGL;AAAA,QACJ,MAAMV;AAAA,QACN,QAAQC,MAAWO,IAAa,WAAW;AAAA,QAC3C,KACEA,KAAcP,MAAW,WACrB,wBACA;AAAA,QAEN,KAAAM;AAAA,QACA,SAAS,CAACS,MAAM;AACd,cAAIZ,GAAY;AACd,YAAAY,EAAE,eAAA;AACF;AAAA,UACF;AAEA,UAAI,CAACR,KAAc,CAACP,KAClBgB,EAAyBD,GAAGhB,CAAE,GAGhCE,KAAA,QAAAA,EAAUc;AAAA,QACZ;AAAA,QACA,MAAK;AAAA,QAEJ,UAAAJ;AAAA,MAAA;AAAA,IAAA,IAMLG,gBAAAA,EAAAA;AAAAA,MAAC;AAAA,MAAA;AAAA,QACE,GAAGL;AAAA,QACJ,MAAAP;AAAA,QACA,UAAUC;AAAA,QACV,KAAAG;AAAA,QACA,SAAS,CAACS,MAAM;AACd,UAAI,CAACZ,KAAcF,KACjBA,EAAQc,CAAC;AAAA,QAEb;AAAA,QAEC,UAAAJ;AAAA,MAAA;AAAA,IAAA;AAAA,EAGP;AACF;AAEAlB,EAAO,cAAc;"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("../../node_modules/react/jsx-runtime.cjs.js"),x=require("react"),d=require("radix-ui");;/* empty css */function a({name:i="ButtonGroup",value:t,defaultValue:o,onChange:e,children:u,"data-testid":l}){const r=t!==void 0,[p,c]=x.useState(()=>o||""),G=r?t||"":p;return s.jsxRuntimeExports.jsx(d.RadioGroup.Root,{name:i,value:r?t:void 0,defaultValue:r?void 0:o,onValueChange:n=>{r||c(n),e==null||e(n)},orientation:"horizontal",className:"proton-ButtonGroup","data-value":G||void 0,"data-testid":l||void 0,"aria-label":i,children:u})}a.displayName="ProtonUIButtonGroup";a.Option=function({value:t,children:o,"data-testid":e}){const u=typeof o=="string"?o:t;return s.jsxRuntimeExports.jsx(d.RadioGroup.Item,{value:t,className:"proton-ButtonGroup__option","data-testid":e||void 0,"aria-label":u,children:o})};exports.ButtonGroup=a;
|
|
2
2
|
//# sourceMappingURL=ButtonGroup.cjs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ButtonGroup.cjs.js","sources":["../../../src/components/ButtonGroup/ButtonGroup.tsx"],"sourcesContent":["\"use client\";\n\nimport {
|
|
1
|
+
{"version":3,"file":"ButtonGroup.cjs.js","sources":["../../../src/components/ButtonGroup/ButtonGroup.tsx"],"sourcesContent":["\"use client\";\n\nimport { type ReactNode, useState } from \"react\";\nimport { RadioGroup as RadixRadioGroup } from \"radix-ui\";\n\nimport \"./ButtonGroup.css\";\n\nexport interface ButtonGroupProps {\n /**\n * The name of the ButtonGroup.\n */\n name?: string;\n /**\n * The value of the currently selected option in the ButtonGroup. Providing\n * this prop causes the component to become controlled.\n */\n value?: string;\n /**\n * The initially selected value of the ButtonGroup.\n */\n defaultValue?: string;\n /**\n * Called when the ButtonGroup's selected value changes.\n */\n onChange?: (value: string) => void;\n /**\n * The ButtonGroup.Option elements to be rendered as the selectable values.\n */\n children?: ReactNode;\n /** The test ID for the component. */\n \"data-testid\"?: string;\n}\n\n/**\n * A radio button group component that allows selection of a single option from multiple choices.\n *\n * API:\n * - {@link ButtonGroupProps}\n */\nexport function ButtonGroup({\n name = \"ButtonGroup\",\n value,\n defaultValue,\n onChange,\n children,\n \"data-testid\": testId,\n}: ButtonGroupProps) {\n const isControlled = value !== undefined;\n const [uncontrolledValue, setUncontrolledValue] = useState(\n () => defaultValue || \"\"\n );\n const dataValue = isControlled ? (value || \"\") : uncontrolledValue;\n\n return (\n <RadixRadioGroup.Root\n name={name}\n value={isControlled ? value : undefined}\n defaultValue={isControlled ? undefined : defaultValue}\n onValueChange={(v) => {\n if (!isControlled) setUncontrolledValue(v);\n onChange?.(v);\n }}\n orientation=\"horizontal\"\n className=\"proton-ButtonGroup\"\n data-value={dataValue || undefined}\n data-testid={testId || undefined}\n aria-label={name}\n >\n {children}\n </RadixRadioGroup.Root>\n );\n}\n\nButtonGroup.displayName = \"ProtonUIButtonGroup\";\n\nexport interface ButtonGroupOptionProps {\n /**\n * The value of this option. When this option is selected, this value will\n * become the ButtonGroup's new `value`.\n */\n value: string;\n /**\n * The text or component to be rendered as this option's content.\n */\n children: ReactNode;\n /** The test ID for this option. */\n \"data-testid\"?: string;\n}\n\n/**\n * A radio button option for the ButtonGroup.\n *\n * API:\n * - {@link ButtonGroupOptionProps}\n */\nButtonGroup.Option = function ButtonGroupOption({\n value,\n children,\n \"data-testid\": testId,\n}: ButtonGroupOptionProps) {\n const accessibleLabel = typeof children === \"string\" ? children : value;\n\n return (\n <RadixRadioGroup.Item\n value={value}\n className=\"proton-ButtonGroup__option\"\n data-testid={testId || undefined}\n aria-label={accessibleLabel}\n >\n {children}\n </RadixRadioGroup.Item>\n );\n};\n"],"names":["ButtonGroup","name","value","defaultValue","onChange","children","testId","isControlled","uncontrolledValue","setUncontrolledValue","useState","dataValue","jsx","RadixRadioGroup","v","accessibleLabel"],"mappings":"4NAuCO,SAASA,EAAY,CAC1B,KAAAC,EAAO,cACP,MAAAC,EACA,aAAAC,EACA,SAAAC,EACA,SAAAC,EACA,cAAeC,CACjB,EAAqB,CACnB,MAAMC,EAAeL,IAAU,OACzB,CAACM,EAAmBC,CAAoB,EAAIC,EAAAA,SAChD,IAAMP,GAAgB,EAAA,EAElBQ,EAAYJ,EAAgBL,GAAS,GAAMM,EAEjD,OACEI,EAAAA,kBAAAA,IAACC,EAAAA,WAAgB,KAAhB,CACC,KAAAZ,EACA,MAAOM,EAAeL,EAAQ,OAC9B,aAAcK,EAAe,OAAYJ,EACzC,cAAgBW,GAAM,CACfP,GAAcE,EAAqBK,CAAC,EACzCV,GAAA,MAAAA,EAAWU,EACb,EACA,YAAY,aACZ,UAAU,qBACV,aAAYH,GAAa,OACzB,cAAaL,GAAU,OACvB,aAAYL,EAEX,SAAAI,CAAA,CAAA,CAGP,CAEAL,EAAY,YAAc,sBAsB1BA,EAAY,OAAS,SAA2B,CAC9C,MAAAE,EACA,SAAAG,EACA,cAAeC,CACjB,EAA2B,CACzB,MAAMS,EAAkB,OAAOV,GAAa,SAAWA,EAAWH,EAElE,OACEU,EAAAA,kBAAAA,IAACC,EAAAA,WAAgB,KAAhB,CACC,MAAAX,EACA,UAAU,6BACV,cAAaI,GAAU,OACvB,aAAYS,EAEX,SAAAV,CAAA,CAAA,CAGP"}
|
|
@@ -1,51 +1,55 @@
|
|
|
1
|
-
import { j as
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import { useRadioGroup as m } from "../../node_modules/@react-aria/radio/dist/useRadioGroup.es.js";
|
|
5
|
-
import { VisuallyHidden as x } from "../../node_modules/@react-aria/visually-hidden/dist/VisuallyHidden.es.js";
|
|
6
|
-
import { useRadioGroupState as $ } from "../../node_modules/@react-stately/radio/dist/useRadioGroupState.es.js";
|
|
1
|
+
import { j as u } from "../../node_modules/react/jsx-runtime.es.js";
|
|
2
|
+
import { useState as f } from "react";
|
|
3
|
+
import { RadioGroup as e } from "radix-ui";
|
|
7
4
|
/* empty css */
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
5
|
+
function p({
|
|
6
|
+
name: r = "ButtonGroup",
|
|
7
|
+
value: t,
|
|
8
|
+
defaultValue: o,
|
|
9
|
+
onChange: a,
|
|
10
|
+
children: s,
|
|
11
|
+
"data-testid": d
|
|
12
|
+
}) {
|
|
13
|
+
const i = t !== void 0, [l, m] = f(
|
|
14
|
+
() => o || ""
|
|
15
|
+
), c = i ? t || "" : l;
|
|
16
|
+
return /* @__PURE__ */ u.jsx(
|
|
17
|
+
e.Root,
|
|
17
18
|
{
|
|
18
|
-
|
|
19
|
+
name: r,
|
|
20
|
+
value: i ? t : void 0,
|
|
21
|
+
defaultValue: i ? void 0 : o,
|
|
22
|
+
onValueChange: (n) => {
|
|
23
|
+
i || m(n), a == null || a(n);
|
|
24
|
+
},
|
|
25
|
+
orientation: "horizontal",
|
|
19
26
|
className: "proton-ButtonGroup",
|
|
20
|
-
"data-value":
|
|
21
|
-
"data-testid":
|
|
22
|
-
|
|
27
|
+
"data-value": c || void 0,
|
|
28
|
+
"data-testid": d || void 0,
|
|
29
|
+
"aria-label": r,
|
|
30
|
+
children: s
|
|
23
31
|
}
|
|
24
32
|
);
|
|
25
33
|
}
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
+
p.displayName = "ProtonUIButtonGroup";
|
|
35
|
+
p.Option = function({
|
|
36
|
+
value: t,
|
|
37
|
+
children: o,
|
|
38
|
+
"data-testid": a
|
|
39
|
+
}) {
|
|
40
|
+
const s = typeof o == "string" ? o : t;
|
|
41
|
+
return /* @__PURE__ */ u.jsx(
|
|
42
|
+
e.Item,
|
|
34
43
|
{
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
"data-testid": t["data-testid"] || void 0,
|
|
41
|
-
children: [
|
|
42
|
-
/* @__PURE__ */ o.jsx(x, { children: /* @__PURE__ */ o.jsx("input", { ...u, ref: d }) }),
|
|
43
|
-
t.children
|
|
44
|
-
]
|
|
44
|
+
value: t,
|
|
45
|
+
className: "proton-ButtonGroup__option",
|
|
46
|
+
"data-testid": a || void 0,
|
|
47
|
+
"aria-label": s,
|
|
48
|
+
children: o
|
|
45
49
|
}
|
|
46
50
|
);
|
|
47
51
|
};
|
|
48
52
|
export {
|
|
49
|
-
|
|
53
|
+
p as ButtonGroup
|
|
50
54
|
};
|
|
51
55
|
//# sourceMappingURL=ButtonGroup.es.js.map
|