@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":"TableHeader.cjs.js","sources":["../../../../../src/components/Table/BaseTable/elements/TableHeader.tsx"],"sourcesContent":["import { ReactNode } from \"react\";\n\nexport interface TableHeaderProps {\n /** Header row content (TableHeaderCell elements) */\n children: ReactNode;\n /** Whether the header should be visually hidden */\n isHidden?: boolean;\n}\n\n/**\n * Table header row group element (`<thead>`) with styling and ARIA attributes.\n *\n * @see {@link TableHeaderProps}\n */\nexport const TableHeader = ({ children, isHidden }: TableHeaderProps) => {\n return (\n <thead\n className=\"proton-Table__rowGroup--header\"\n role=\"rowgroup\"\n style={isHidden ? { display: \"none\" } : undefined}\n >\n {children}\n </thead>\n );\n};\n\nTableHeader.displayName = \"ProtonUITableHeader\";\n"],"names":["TableHeader","children","isHidden","jsx"],"mappings":"qJAcaA,EAAc,CAAC,CAAE,SAAAC,EAAU,SAAAC,KAEpCC,
|
|
1
|
+
{"version":3,"file":"TableHeader.cjs.js","sources":["../../../../../src/components/Table/BaseTable/elements/TableHeader.tsx"],"sourcesContent":["import { ReactNode } from \"react\";\n\nexport interface TableHeaderProps {\n /** Header row content (TableHeaderCell elements) */\n children: ReactNode;\n /** Whether the header should be visually hidden */\n isHidden?: boolean;\n}\n\n/**\n * Table header row group element (`<thead>`) with styling and ARIA attributes.\n *\n * @see {@link TableHeaderProps}\n */\nexport const TableHeader = ({ children, isHidden }: TableHeaderProps) => {\n return (\n <thead\n className=\"proton-Table__rowGroup--header\"\n role=\"rowgroup\"\n style={isHidden ? { display: \"none\" } : undefined}\n >\n {children}\n </thead>\n );\n};\n\nTableHeader.displayName = \"ProtonUITableHeader\";\n"],"names":["TableHeader","children","isHidden","jsx"],"mappings":"qJAcaA,EAAc,CAAC,CAAE,SAAAC,EAAU,SAAAC,KAEpCC,EAAAA,kBAAAA,IAAC,QAAA,CACC,UAAU,iCACV,KAAK,WACL,MAAOD,EAAW,CAAE,QAAS,QAAW,OAEvC,SAAAD,CAAA,CAAA,EAKPD,EAAY,YAAc"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TableHeader.es.js","sources":["../../../../../src/components/Table/BaseTable/elements/TableHeader.tsx"],"sourcesContent":["import { ReactNode } from \"react\";\n\nexport interface TableHeaderProps {\n /** Header row content (TableHeaderCell elements) */\n children: ReactNode;\n /** Whether the header should be visually hidden */\n isHidden?: boolean;\n}\n\n/**\n * Table header row group element (`<thead>`) with styling and ARIA attributes.\n *\n * @see {@link TableHeaderProps}\n */\nexport const TableHeader = ({ children, isHidden }: TableHeaderProps) => {\n return (\n <thead\n className=\"proton-Table__rowGroup--header\"\n role=\"rowgroup\"\n style={isHidden ? { display: \"none\" } : undefined}\n >\n {children}\n </thead>\n );\n};\n\nTableHeader.displayName = \"ProtonUITableHeader\";\n"],"names":["TableHeader","children","isHidden","jsx"],"mappings":";AAcO,MAAMA,IAAc,CAAC,EAAE,UAAAC,GAAU,UAAAC,QAEpCC,gBAAAA,
|
|
1
|
+
{"version":3,"file":"TableHeader.es.js","sources":["../../../../../src/components/Table/BaseTable/elements/TableHeader.tsx"],"sourcesContent":["import { ReactNode } from \"react\";\n\nexport interface TableHeaderProps {\n /** Header row content (TableHeaderCell elements) */\n children: ReactNode;\n /** Whether the header should be visually hidden */\n isHidden?: boolean;\n}\n\n/**\n * Table header row group element (`<thead>`) with styling and ARIA attributes.\n *\n * @see {@link TableHeaderProps}\n */\nexport const TableHeader = ({ children, isHidden }: TableHeaderProps) => {\n return (\n <thead\n className=\"proton-Table__rowGroup--header\"\n role=\"rowgroup\"\n style={isHidden ? { display: \"none\" } : undefined}\n >\n {children}\n </thead>\n );\n};\n\nTableHeader.displayName = \"ProtonUITableHeader\";\n"],"names":["TableHeader","children","isHidden","jsx"],"mappings":";AAcO,MAAMA,IAAc,CAAC,EAAE,UAAAC,GAAU,UAAAC,QAEpCC,gBAAAA,EAAAA;AAAAA,EAAC;AAAA,EAAA;AAAA,IACC,WAAU;AAAA,IACV,MAAK;AAAA,IACL,OAAOD,IAAW,EAAE,SAAS,WAAW;AAAA,IAEvC,UAAAD;AAAA,EAAA;AAAA;AAKPD,EAAY,cAAc;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TableHeaderCell.cjs.js","sources":["../../../../../src/components/Table/BaseTable/elements/TableHeaderCell.tsx"],"sourcesContent":["import { AriaAttributes, ReactNode } from \"react\";\n\nexport interface TableHeaderCellProps {\n /** Header cell content */\n children: ReactNode;\n /** 1-based column index for aria-colindex */\n colIndex: number;\n /** Sort state for sortable columns */\n ariaSort?: AriaAttributes[\"aria-sort\"];\n /** Test ID for testing purposes */\n \"data-testid\"?: string;\n}\n\n/**\n * Table header cell element (`<th>`) with styling and ARIA attributes.\n *\n * @see {@link TableHeaderCellProps}\n */\nexport const TableHeaderCell = ({\n children,\n colIndex,\n ariaSort,\n \"data-testid\": testId,\n}: TableHeaderCellProps) => {\n return (\n <th\n className=\"proton-Table__header\"\n role=\"columnheader\"\n scope=\"col\"\n aria-colindex={colIndex}\n aria-sort={ariaSort}\n data-testid={testId}\n >\n {children}\n </th>\n );\n};\n\nTableHeaderCell.displayName = \"ProtonUITableHeaderCell\";\n"],"names":["TableHeaderCell","children","colIndex","ariaSort","testId","jsx"],"mappings":"qJAkBaA,EAAkB,CAAC,CAC9B,SAAAC,EACA,SAAAC,EACA,SAAAC,EACA,cAAeC,CACjB,IAEIC,
|
|
1
|
+
{"version":3,"file":"TableHeaderCell.cjs.js","sources":["../../../../../src/components/Table/BaseTable/elements/TableHeaderCell.tsx"],"sourcesContent":["import { AriaAttributes, ReactNode } from \"react\";\n\nexport interface TableHeaderCellProps {\n /** Header cell content */\n children: ReactNode;\n /** 1-based column index for aria-colindex */\n colIndex: number;\n /** Sort state for sortable columns */\n ariaSort?: AriaAttributes[\"aria-sort\"];\n /** Test ID for testing purposes */\n \"data-testid\"?: string;\n}\n\n/**\n * Table header cell element (`<th>`) with styling and ARIA attributes.\n *\n * @see {@link TableHeaderCellProps}\n */\nexport const TableHeaderCell = ({\n children,\n colIndex,\n ariaSort,\n \"data-testid\": testId,\n}: TableHeaderCellProps) => {\n return (\n <th\n className=\"proton-Table__header\"\n role=\"columnheader\"\n scope=\"col\"\n aria-colindex={colIndex}\n aria-sort={ariaSort}\n data-testid={testId}\n >\n {children}\n </th>\n );\n};\n\nTableHeaderCell.displayName = \"ProtonUITableHeaderCell\";\n"],"names":["TableHeaderCell","children","colIndex","ariaSort","testId","jsx"],"mappings":"qJAkBaA,EAAkB,CAAC,CAC9B,SAAAC,EACA,SAAAC,EACA,SAAAC,EACA,cAAeC,CACjB,IAEIC,EAAAA,kBAAAA,IAAC,KAAA,CACC,UAAU,uBACV,KAAK,eACL,MAAM,MACN,gBAAeH,EACf,YAAWC,EACX,cAAaC,EAEZ,SAAAH,CAAA,CAAA,EAKPD,EAAgB,YAAc"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TableHeaderCell.es.js","sources":["../../../../../src/components/Table/BaseTable/elements/TableHeaderCell.tsx"],"sourcesContent":["import { AriaAttributes, ReactNode } from \"react\";\n\nexport interface TableHeaderCellProps {\n /** Header cell content */\n children: ReactNode;\n /** 1-based column index for aria-colindex */\n colIndex: number;\n /** Sort state for sortable columns */\n ariaSort?: AriaAttributes[\"aria-sort\"];\n /** Test ID for testing purposes */\n \"data-testid\"?: string;\n}\n\n/**\n * Table header cell element (`<th>`) with styling and ARIA attributes.\n *\n * @see {@link TableHeaderCellProps}\n */\nexport const TableHeaderCell = ({\n children,\n colIndex,\n ariaSort,\n \"data-testid\": testId,\n}: TableHeaderCellProps) => {\n return (\n <th\n className=\"proton-Table__header\"\n role=\"columnheader\"\n scope=\"col\"\n aria-colindex={colIndex}\n aria-sort={ariaSort}\n data-testid={testId}\n >\n {children}\n </th>\n );\n};\n\nTableHeaderCell.displayName = \"ProtonUITableHeaderCell\";\n"],"names":["TableHeaderCell","children","colIndex","ariaSort","testId","jsx"],"mappings":";AAkBO,MAAMA,IAAkB,CAAC;AAAA,EAC9B,UAAAC;AAAA,EACA,UAAAC;AAAA,EACA,UAAAC;AAAA,EACA,eAAeC;AACjB,MAEIC,gBAAAA,
|
|
1
|
+
{"version":3,"file":"TableHeaderCell.es.js","sources":["../../../../../src/components/Table/BaseTable/elements/TableHeaderCell.tsx"],"sourcesContent":["import { AriaAttributes, ReactNode } from \"react\";\n\nexport interface TableHeaderCellProps {\n /** Header cell content */\n children: ReactNode;\n /** 1-based column index for aria-colindex */\n colIndex: number;\n /** Sort state for sortable columns */\n ariaSort?: AriaAttributes[\"aria-sort\"];\n /** Test ID for testing purposes */\n \"data-testid\"?: string;\n}\n\n/**\n * Table header cell element (`<th>`) with styling and ARIA attributes.\n *\n * @see {@link TableHeaderCellProps}\n */\nexport const TableHeaderCell = ({\n children,\n colIndex,\n ariaSort,\n \"data-testid\": testId,\n}: TableHeaderCellProps) => {\n return (\n <th\n className=\"proton-Table__header\"\n role=\"columnheader\"\n scope=\"col\"\n aria-colindex={colIndex}\n aria-sort={ariaSort}\n data-testid={testId}\n >\n {children}\n </th>\n );\n};\n\nTableHeaderCell.displayName = \"ProtonUITableHeaderCell\";\n"],"names":["TableHeaderCell","children","colIndex","ariaSort","testId","jsx"],"mappings":";AAkBO,MAAMA,IAAkB,CAAC;AAAA,EAC9B,UAAAC;AAAA,EACA,UAAAC;AAAA,EACA,UAAAC;AAAA,EACA,eAAeC;AACjB,MAEIC,gBAAAA,EAAAA;AAAAA,EAAC;AAAA,EAAA;AAAA,IACC,WAAU;AAAA,IACV,MAAK;AAAA,IACL,OAAM;AAAA,IACN,iBAAeH;AAAA,IACf,aAAWC;AAAA,IACX,eAAaC;AAAA,IAEZ,UAAAH;AAAA,EAAA;AAAA;AAKPD,EAAgB,cAAc;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TableHeaderRow.cjs.js","sources":["../../../../../src/components/Table/BaseTable/elements/TableHeaderRow.tsx"],"sourcesContent":["import { ReactNode } from \"react\";\n\nexport interface TableHeaderRowProps {\n /** Header cell content (TableHeaderCell elements) */\n children: ReactNode;\n /** 1-based aria-rowindex (typically 1 for header row) */\n ariaRowIndex?: number;\n}\n\n/**\n * Table header row element (`<tr>` inside `<thead>`) with styling and ARIA attributes.\n *\n * @see {@link TableHeaderRowProps}\n */\nexport const TableHeaderRow = ({\n children,\n ariaRowIndex = 1,\n}: TableHeaderRowProps) => {\n return (\n <tr\n className=\"proton-Table__header-row\"\n role=\"row\"\n aria-rowindex={ariaRowIndex}\n >\n {children}\n </tr>\n );\n};\n\nTableHeaderRow.displayName = \"ProtonUITableHeaderRow\";\n"],"names":["TableHeaderRow","children","ariaRowIndex","jsx"],"mappings":"qJAcaA,EAAiB,CAAC,CAC7B,SAAAC,EACA,aAAAC,EAAe,CACjB,IAEIC,
|
|
1
|
+
{"version":3,"file":"TableHeaderRow.cjs.js","sources":["../../../../../src/components/Table/BaseTable/elements/TableHeaderRow.tsx"],"sourcesContent":["import { ReactNode } from \"react\";\n\nexport interface TableHeaderRowProps {\n /** Header cell content (TableHeaderCell elements) */\n children: ReactNode;\n /** 1-based aria-rowindex (typically 1 for header row) */\n ariaRowIndex?: number;\n}\n\n/**\n * Table header row element (`<tr>` inside `<thead>`) with styling and ARIA attributes.\n *\n * @see {@link TableHeaderRowProps}\n */\nexport const TableHeaderRow = ({\n children,\n ariaRowIndex = 1,\n}: TableHeaderRowProps) => {\n return (\n <tr\n className=\"proton-Table__header-row\"\n role=\"row\"\n aria-rowindex={ariaRowIndex}\n >\n {children}\n </tr>\n );\n};\n\nTableHeaderRow.displayName = \"ProtonUITableHeaderRow\";\n"],"names":["TableHeaderRow","children","ariaRowIndex","jsx"],"mappings":"qJAcaA,EAAiB,CAAC,CAC7B,SAAAC,EACA,aAAAC,EAAe,CACjB,IAEIC,EAAAA,kBAAAA,IAAC,KAAA,CACC,UAAU,2BACV,KAAK,MACL,gBAAeD,EAEd,SAAAD,CAAA,CAAA,EAKPD,EAAe,YAAc"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TableHeaderRow.es.js","sources":["../../../../../src/components/Table/BaseTable/elements/TableHeaderRow.tsx"],"sourcesContent":["import { ReactNode } from \"react\";\n\nexport interface TableHeaderRowProps {\n /** Header cell content (TableHeaderCell elements) */\n children: ReactNode;\n /** 1-based aria-rowindex (typically 1 for header row) */\n ariaRowIndex?: number;\n}\n\n/**\n * Table header row element (`<tr>` inside `<thead>`) with styling and ARIA attributes.\n *\n * @see {@link TableHeaderRowProps}\n */\nexport const TableHeaderRow = ({\n children,\n ariaRowIndex = 1,\n}: TableHeaderRowProps) => {\n return (\n <tr\n className=\"proton-Table__header-row\"\n role=\"row\"\n aria-rowindex={ariaRowIndex}\n >\n {children}\n </tr>\n );\n};\n\nTableHeaderRow.displayName = \"ProtonUITableHeaderRow\";\n"],"names":["TableHeaderRow","children","ariaRowIndex","jsx"],"mappings":";AAcO,MAAMA,IAAiB,CAAC;AAAA,EAC7B,UAAAC;AAAA,EACA,cAAAC,IAAe;AACjB,MAEIC,gBAAAA,
|
|
1
|
+
{"version":3,"file":"TableHeaderRow.es.js","sources":["../../../../../src/components/Table/BaseTable/elements/TableHeaderRow.tsx"],"sourcesContent":["import { ReactNode } from \"react\";\n\nexport interface TableHeaderRowProps {\n /** Header cell content (TableHeaderCell elements) */\n children: ReactNode;\n /** 1-based aria-rowindex (typically 1 for header row) */\n ariaRowIndex?: number;\n}\n\n/**\n * Table header row element (`<tr>` inside `<thead>`) with styling and ARIA attributes.\n *\n * @see {@link TableHeaderRowProps}\n */\nexport const TableHeaderRow = ({\n children,\n ariaRowIndex = 1,\n}: TableHeaderRowProps) => {\n return (\n <tr\n className=\"proton-Table__header-row\"\n role=\"row\"\n aria-rowindex={ariaRowIndex}\n >\n {children}\n </tr>\n );\n};\n\nTableHeaderRow.displayName = \"ProtonUITableHeaderRow\";\n"],"names":["TableHeaderRow","children","ariaRowIndex","jsx"],"mappings":";AAcO,MAAMA,IAAiB,CAAC;AAAA,EAC7B,UAAAC;AAAA,EACA,cAAAC,IAAe;AACjB,MAEIC,gBAAAA,EAAAA;AAAAA,EAAC;AAAA,EAAA;AAAA,IACC,WAAU;AAAA,IACV,MAAK;AAAA,IACL,iBAAeD;AAAA,IAEd,UAAAD;AAAA,EAAA;AAAA;AAKPD,EAAe,cAAc;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TableRoot.cjs.js","sources":["../../../../../src/components/Table/BaseTable/elements/TableRoot.tsx"],"sourcesContent":["import { ReactNode } from \"react\";\n\nexport interface TableRootProps {\n /** Table content (thead, tbody) */\n children: ReactNode;\n /** Table name/caption for accessibility */\n name: string;\n /** Total row count for aria-rowcount */\n rowCount: number;\n /** Total column count for aria-colcount */\n colCount: number;\n /** Test ID for testing purposes */\n \"data-testid\"?: string;\n}\n\n/**\n * Root table element with styling and ARIA attributes.\n * Wraps table content with proper accessibility semantics.\n *\n * @see {@link TableRootProps}\n */\nexport const TableRoot = ({\n children,\n name,\n rowCount,\n colCount,\n \"data-testid\": testId,\n}: TableRootProps) => {\n return (\n <table\n className=\"proton-Table\"\n role=\"table\"\n aria-rowcount={rowCount}\n aria-colcount={colCount}\n aria-label={name}\n data-testid={testId}\n >\n <caption className=\"proton-Table__caption\">{name}</caption>\n {children}\n </table>\n );\n};\n\nTableRoot.displayName = \"ProtonUITableRoot\";\n"],"names":["TableRoot","children","name","rowCount","colCount","testId","jsxs","jsx"],"mappings":"qJAqBaA,EAAY,CAAC,CACxB,SAAAC,EACA,KAAAC,EACA,SAAAC,EACA,SAAAC,EACA,cAAeC,CACjB,IAEIC,
|
|
1
|
+
{"version":3,"file":"TableRoot.cjs.js","sources":["../../../../../src/components/Table/BaseTable/elements/TableRoot.tsx"],"sourcesContent":["import { ReactNode } from \"react\";\n\nexport interface TableRootProps {\n /** Table content (thead, tbody) */\n children: ReactNode;\n /** Table name/caption for accessibility */\n name: string;\n /** Total row count for aria-rowcount */\n rowCount: number;\n /** Total column count for aria-colcount */\n colCount: number;\n /** Test ID for testing purposes */\n \"data-testid\"?: string;\n}\n\n/**\n * Root table element with styling and ARIA attributes.\n * Wraps table content with proper accessibility semantics.\n *\n * @see {@link TableRootProps}\n */\nexport const TableRoot = ({\n children,\n name,\n rowCount,\n colCount,\n \"data-testid\": testId,\n}: TableRootProps) => {\n return (\n <table\n className=\"proton-Table\"\n role=\"table\"\n aria-rowcount={rowCount}\n aria-colcount={colCount}\n aria-label={name}\n data-testid={testId}\n >\n <caption className=\"proton-Table__caption\">{name}</caption>\n {children}\n </table>\n );\n};\n\nTableRoot.displayName = \"ProtonUITableRoot\";\n"],"names":["TableRoot","children","name","rowCount","colCount","testId","jsxs","jsx"],"mappings":"qJAqBaA,EAAY,CAAC,CACxB,SAAAC,EACA,KAAAC,EACA,SAAAC,EACA,SAAAC,EACA,cAAeC,CACjB,IAEIC,EAAAA,kBAAAA,KAAC,QAAA,CACC,UAAU,eACV,KAAK,QACL,gBAAeH,EACf,gBAAeC,EACf,aAAYF,EACZ,cAAaG,EAEb,SAAA,CAAAE,EAAAA,kBAAAA,IAAC,UAAA,CAAQ,UAAU,wBAAyB,SAAAL,EAAK,EAChDD,CAAA,CAAA,CAAA,EAKPD,EAAU,YAAc"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TableRoot.es.js","sources":["../../../../../src/components/Table/BaseTable/elements/TableRoot.tsx"],"sourcesContent":["import { ReactNode } from \"react\";\n\nexport interface TableRootProps {\n /** Table content (thead, tbody) */\n children: ReactNode;\n /** Table name/caption for accessibility */\n name: string;\n /** Total row count for aria-rowcount */\n rowCount: number;\n /** Total column count for aria-colcount */\n colCount: number;\n /** Test ID for testing purposes */\n \"data-testid\"?: string;\n}\n\n/**\n * Root table element with styling and ARIA attributes.\n * Wraps table content with proper accessibility semantics.\n *\n * @see {@link TableRootProps}\n */\nexport const TableRoot = ({\n children,\n name,\n rowCount,\n colCount,\n \"data-testid\": testId,\n}: TableRootProps) => {\n return (\n <table\n className=\"proton-Table\"\n role=\"table\"\n aria-rowcount={rowCount}\n aria-colcount={colCount}\n aria-label={name}\n data-testid={testId}\n >\n <caption className=\"proton-Table__caption\">{name}</caption>\n {children}\n </table>\n );\n};\n\nTableRoot.displayName = \"ProtonUITableRoot\";\n"],"names":["TableRoot","children","name","rowCount","colCount","testId","jsxs","jsx"],"mappings":";AAqBO,MAAMA,IAAY,CAAC;AAAA,EACxB,UAAAC;AAAA,EACA,MAAAC;AAAA,EACA,UAAAC;AAAA,EACA,UAAAC;AAAA,EACA,eAAeC;AACjB,MAEIC,gBAAAA,
|
|
1
|
+
{"version":3,"file":"TableRoot.es.js","sources":["../../../../../src/components/Table/BaseTable/elements/TableRoot.tsx"],"sourcesContent":["import { ReactNode } from \"react\";\n\nexport interface TableRootProps {\n /** Table content (thead, tbody) */\n children: ReactNode;\n /** Table name/caption for accessibility */\n name: string;\n /** Total row count for aria-rowcount */\n rowCount: number;\n /** Total column count for aria-colcount */\n colCount: number;\n /** Test ID for testing purposes */\n \"data-testid\"?: string;\n}\n\n/**\n * Root table element with styling and ARIA attributes.\n * Wraps table content with proper accessibility semantics.\n *\n * @see {@link TableRootProps}\n */\nexport const TableRoot = ({\n children,\n name,\n rowCount,\n colCount,\n \"data-testid\": testId,\n}: TableRootProps) => {\n return (\n <table\n className=\"proton-Table\"\n role=\"table\"\n aria-rowcount={rowCount}\n aria-colcount={colCount}\n aria-label={name}\n data-testid={testId}\n >\n <caption className=\"proton-Table__caption\">{name}</caption>\n {children}\n </table>\n );\n};\n\nTableRoot.displayName = \"ProtonUITableRoot\";\n"],"names":["TableRoot","children","name","rowCount","colCount","testId","jsxs","jsx"],"mappings":";AAqBO,MAAMA,IAAY,CAAC;AAAA,EACxB,UAAAC;AAAA,EACA,MAAAC;AAAA,EACA,UAAAC;AAAA,EACA,UAAAC;AAAA,EACA,eAAeC;AACjB,MAEIC,gBAAAA,EAAAA;AAAAA,EAAC;AAAA,EAAA;AAAA,IACC,WAAU;AAAA,IACV,MAAK;AAAA,IACL,iBAAeH;AAAA,IACf,iBAAeC;AAAA,IACf,cAAYF;AAAA,IACZ,eAAaG;AAAA,IAEb,UAAA;AAAA,MAAAE,gBAAAA,EAAAA,IAAC,WAAA,EAAQ,WAAU,yBAAyB,UAAAL,GAAK;AAAA,MAChDD;AAAA,IAAA;AAAA,EAAA;AAAA;AAKPD,EAAU,cAAc;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TableRow.cjs.js","sources":["../../../../../src/components/Table/BaseTable/elements/TableRow.tsx"],"sourcesContent":["import { ReactNode } from \"react\";\n\nexport interface TableRowProps {\n /** 1-based row index for aria-rowindex */\n ariaRowIndex: number;\n /** Click handler for interactive rows */\n onClick?: () => void;\n /** Row content (TableCell elements) */\n children: ReactNode;\n /** Test ID for testing purposes */\n dataTestId?: string;\n}\n\n/**\n * Table row element (`<tr>`) with styling, ARIA attributes, and keyboard support.\n *\n * @see {@link TableRowProps}\n */\nexport const TableRow = ({\n ariaRowIndex,\n onClick,\n children,\n dataTestId,\n}: TableRowProps) => {\n return (\n <tr\n className=\"proton-Table__row\"\n role=\"row\"\n aria-rowindex={ariaRowIndex}\n onClick={onClick}\n tabIndex={onClick ? 0 : undefined}\n onKeyDown={\n onClick\n ? (e) => {\n if (e.key === \"Enter\" || e.key === \" \") {\n e.preventDefault();\n onClick();\n }\n }\n : undefined\n }\n data-testid={dataTestId}\n >\n {children}\n </tr>\n );\n};\n\nTableRow.displayName = \"ProtonUITableRow\";\n"],"names":["TableRow","ariaRowIndex","onClick","children","dataTestId","jsx","e"],"mappings":"qJAkBaA,EAAW,CAAC,CACvB,aAAAC,EACA,QAAAC,EACA,SAAAC,EACA,WAAAC,CACF,IAEIC,
|
|
1
|
+
{"version":3,"file":"TableRow.cjs.js","sources":["../../../../../src/components/Table/BaseTable/elements/TableRow.tsx"],"sourcesContent":["import { ReactNode } from \"react\";\n\nexport interface TableRowProps {\n /** 1-based row index for aria-rowindex */\n ariaRowIndex: number;\n /** Click handler for interactive rows */\n onClick?: () => void;\n /** Row content (TableCell elements) */\n children: ReactNode;\n /** Test ID for testing purposes */\n dataTestId?: string;\n}\n\n/**\n * Table row element (`<tr>`) with styling, ARIA attributes, and keyboard support.\n *\n * @see {@link TableRowProps}\n */\nexport const TableRow = ({\n ariaRowIndex,\n onClick,\n children,\n dataTestId,\n}: TableRowProps) => {\n return (\n <tr\n className=\"proton-Table__row\"\n role=\"row\"\n aria-rowindex={ariaRowIndex}\n onClick={onClick}\n tabIndex={onClick ? 0 : undefined}\n onKeyDown={\n onClick\n ? (e) => {\n if (e.key === \"Enter\" || e.key === \" \") {\n e.preventDefault();\n onClick();\n }\n }\n : undefined\n }\n data-testid={dataTestId}\n >\n {children}\n </tr>\n );\n};\n\nTableRow.displayName = \"ProtonUITableRow\";\n"],"names":["TableRow","ariaRowIndex","onClick","children","dataTestId","jsx","e"],"mappings":"qJAkBaA,EAAW,CAAC,CACvB,aAAAC,EACA,QAAAC,EACA,SAAAC,EACA,WAAAC,CACF,IAEIC,EAAAA,kBAAAA,IAAC,KAAA,CACC,UAAU,oBACV,KAAK,MACL,gBAAeJ,EACf,QAAAC,EACA,SAAUA,EAAU,EAAI,OACxB,UACEA,EACKI,GAAM,EACDA,EAAE,MAAQ,SAAWA,EAAE,MAAQ,OACjCA,EAAE,eAAA,EACFJ,EAAA,EAEJ,EACA,OAEN,cAAaE,EAEZ,SAAAD,CAAA,CAAA,EAKPH,EAAS,YAAc"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TableRow.es.js","sources":["../../../../../src/components/Table/BaseTable/elements/TableRow.tsx"],"sourcesContent":["import { ReactNode } from \"react\";\n\nexport interface TableRowProps {\n /** 1-based row index for aria-rowindex */\n ariaRowIndex: number;\n /** Click handler for interactive rows */\n onClick?: () => void;\n /** Row content (TableCell elements) */\n children: ReactNode;\n /** Test ID for testing purposes */\n dataTestId?: string;\n}\n\n/**\n * Table row element (`<tr>`) with styling, ARIA attributes, and keyboard support.\n *\n * @see {@link TableRowProps}\n */\nexport const TableRow = ({\n ariaRowIndex,\n onClick,\n children,\n dataTestId,\n}: TableRowProps) => {\n return (\n <tr\n className=\"proton-Table__row\"\n role=\"row\"\n aria-rowindex={ariaRowIndex}\n onClick={onClick}\n tabIndex={onClick ? 0 : undefined}\n onKeyDown={\n onClick\n ? (e) => {\n if (e.key === \"Enter\" || e.key === \" \") {\n e.preventDefault();\n onClick();\n }\n }\n : undefined\n }\n data-testid={dataTestId}\n >\n {children}\n </tr>\n );\n};\n\nTableRow.displayName = \"ProtonUITableRow\";\n"],"names":["TableRow","ariaRowIndex","onClick","children","dataTestId","jsx","e"],"mappings":";AAkBO,MAAMA,IAAW,CAAC;AAAA,EACvB,cAAAC;AAAA,EACA,SAAAC;AAAA,EACA,UAAAC;AAAA,EACA,YAAAC;AACF,MAEIC,gBAAAA,
|
|
1
|
+
{"version":3,"file":"TableRow.es.js","sources":["../../../../../src/components/Table/BaseTable/elements/TableRow.tsx"],"sourcesContent":["import { ReactNode } from \"react\";\n\nexport interface TableRowProps {\n /** 1-based row index for aria-rowindex */\n ariaRowIndex: number;\n /** Click handler for interactive rows */\n onClick?: () => void;\n /** Row content (TableCell elements) */\n children: ReactNode;\n /** Test ID for testing purposes */\n dataTestId?: string;\n}\n\n/**\n * Table row element (`<tr>`) with styling, ARIA attributes, and keyboard support.\n *\n * @see {@link TableRowProps}\n */\nexport const TableRow = ({\n ariaRowIndex,\n onClick,\n children,\n dataTestId,\n}: TableRowProps) => {\n return (\n <tr\n className=\"proton-Table__row\"\n role=\"row\"\n aria-rowindex={ariaRowIndex}\n onClick={onClick}\n tabIndex={onClick ? 0 : undefined}\n onKeyDown={\n onClick\n ? (e) => {\n if (e.key === \"Enter\" || e.key === \" \") {\n e.preventDefault();\n onClick();\n }\n }\n : undefined\n }\n data-testid={dataTestId}\n >\n {children}\n </tr>\n );\n};\n\nTableRow.displayName = \"ProtonUITableRow\";\n"],"names":["TableRow","ariaRowIndex","onClick","children","dataTestId","jsx","e"],"mappings":";AAkBO,MAAMA,IAAW,CAAC;AAAA,EACvB,cAAAC;AAAA,EACA,SAAAC;AAAA,EACA,UAAAC;AAAA,EACA,YAAAC;AACF,MAEIC,gBAAAA,EAAAA;AAAAA,EAAC;AAAA,EAAA;AAAA,IACC,WAAU;AAAA,IACV,MAAK;AAAA,IACL,iBAAeJ;AAAA,IACf,SAAAC;AAAA,IACA,UAAUA,IAAU,IAAI;AAAA,IACxB,WACEA,IACI,CAACI,MAAM;AACL,OAAIA,EAAE,QAAQ,WAAWA,EAAE,QAAQ,SACjCA,EAAE,eAAA,GACFJ,EAAA;AAAA,IAEJ,IACA;AAAA,IAEN,eAAaE;AAAA,IAEZ,UAAAD;AAAA,EAAA;AAAA;AAKPH,EAAS,cAAc;"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("../../../node_modules/react/jsx-runtime.cjs.js"),s=require("../BaseTable/Table.cjs.js"),D=require("../../Elevation/Elevation.cjs.js"),f=require("../../Tombstone/Tombstone.cjs.js"),_=require("../../Icon/IconComponents/ChevronUp.cjs.js"),q=require("./DataTableRow.cjs.js");;/* empty css */;/* empty css */const
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("../../../node_modules/react/jsx-runtime.cjs.js"),s=require("../BaseTable/Table.cjs.js"),D=require("../../Elevation/Elevation.cjs.js"),f=require("../../Tombstone/Tombstone.cjs.js"),_=require("../../Icon/IconComponents/ChevronUp.cjs.js"),q=require("./DataTableRow.cjs.js");;/* empty css */;/* empty css */const h=({columns:n,data:l=[],loading:j=!1,tombstoneComponent:p,error:x=!1,name:i,onRowClick:R,emptyMessage:E="Data Unavailable",errorMessage:T="An error occurred",loadingRows:C=5,"data-testid":d,memoize:g=!0,sortableColumns:y=[],sortedBy:u,sortDirection:c,onSort:b})=>{const o=n.filter(t=>!t.isHidden),S=t=>{if(!b)return;const a=u===t.id&&c==="ASC"?"DESC":"ASC";b(t.id,a)},v=t=>u!==t?"none":c==="ASC"?"ascending":"descending";return x?e.jsxRuntimeExports.jsx(m,{columns:o,message:typeof x=="string"?x:T,name:i,testId:d,isError:!0}):j?e.jsxRuntimeExports.jsx("div",{className:"proton-DataTable","data-testid":d,"aria-busy":"true","aria-label":`Loading ${i}...`,children:e.jsxRuntimeExports.jsxs(s.Table,{name:i,children:[e.jsxRuntimeExports.jsx(s.Table.Header,{children:o.map(t=>e.jsxRuntimeExports.jsx(s.Table.Column,{id:t.id,children:t.header},t.id))}),e.jsxRuntimeExports.jsx(s.Table.Body,{children:Array.from({length:C}).map((t,r)=>e.jsxRuntimeExports.jsx(s.Table.Row,{children:o.map(a=>e.jsxRuntimeExports.jsx(s.Table.Cell,{children:p||e.jsxRuntimeExports.jsx(f.Tombstone,{height:"1rem",width:r%3===0?"80%":r%3===1?"60%":"90%"})},a.id))},`loading-${r}`))})]})}):!l||l.length===0?e.jsxRuntimeExports.jsx(m,{columns:o,message:E,name:i,testId:d}):e.jsxRuntimeExports.jsx("div",{className:"proton-DataTable","data-testid":d,children:e.jsxRuntimeExports.jsxs(s.Table,{name:i,children:[e.jsxRuntimeExports.jsx(s.Table.Header,{children:o.map(t=>{const r=y.includes(t.id),a=v(t.id);return e.jsxRuntimeExports.jsx(s.Table.Column,{id:t.id,...r&&{"aria-sort":a},children:e.jsxRuntimeExports.jsxs("span",{className:"proton-DataTable__header-content",children:[t.header,r&&e.jsxRuntimeExports.jsx("button",{className:"proton-DataTable__sort-button",onClick:()=>S(t),"aria-label":`Sort by ${t.header}: ${a}`,type:"button",children:e.jsxRuntimeExports.jsx(_.ChevronUp,{size:12,color:a==="ascending"?"var(--proton-color__primary)":"currentColor"})})]})},t.id)})}),e.jsxRuntimeExports.jsx(s.Table.Body,{children:l.map((t,r)=>{const a=t;return e.jsxRuntimeExports.jsx(q.DataTableRow,{row:t,columns:o,rowIndex:r,onRowClick:R,memoize:g,dataTestId:a.dataTestId},a.key??r)})})]})})},m=({columns:n,message:l,name:j,testId:p,isError:x=!1})=>e.jsxRuntimeExports.jsx("div",{className:"proton-DataTable","data-testid":p,children:e.jsxRuntimeExports.jsxs(s.Table,{name:j,children:[e.jsxRuntimeExports.jsx(s.Table.Header,{children:n.map(i=>e.jsxRuntimeExports.jsx(s.Table.Column,{id:i.id,children:i.header},i.id))}),e.jsxRuntimeExports.jsx(s.Table.Body,{children:e.jsxRuntimeExports.jsx(s.Table.Row,{children:e.jsxRuntimeExports.jsx(s.Table.Cell,{colSpan:(n==null?void 0:n.length)||1,children:e.jsxRuntimeExports.jsx("div",{className:"proton-DataTable__message-cell",role:x?"alert":"status","aria-live":"polite",children:e.jsxRuntimeExports.jsx(D.Elevation,{children:e.jsxRuntimeExports.jsx("div",{className:"proton-DataTable__empty-cell",children:l})})})})})})]})});h.displayName="ProtonUIDataTable";exports.DataTable=h;
|
|
2
2
|
//# sourceMappingURL=DataTable.cjs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataTable.cjs.js","sources":["../../../../src/components/Table/DataTable/DataTable.tsx"],"sourcesContent":["\"use client\";\n\nimport { AriaAttributes, ReactNode } from \"react\";\nimport { deepEqual } from \"../../../utils/deepEqual\";\n\nimport { Table, TableRowData } from \"../BaseTable/Table\";\nimport { Elevation } from \"../../Elevation/Elevation\";\nimport { Tombstone } from \"../../Tombstone/Tombstone\";\nimport { ChevronUp } from \"../../Icon/IconComponents/ChevronUp\";\nimport { DataTableRow } from \"./DataTableRow\";\n\nimport \"../BaseTable/Table.css\";\nimport \"./DataTable.css\";\n\nexport type SortDirection = \"ASC\" | \"DESC\";\n\ntype SortingConfig =\n | {\n /** When sorting is enabled, all these props must be provided together. */\n sortableColumns: string[];\n sortedBy: string;\n sortDirection: SortDirection;\n onSort: (columnId: string, direction: SortDirection) => void;\n }\n | {\n /** When no sorting is needed, none of these props should be provided */\n sortableColumns?: never;\n sortedBy?: never;\n sortDirection?: never;\n onSort?: never;\n };\n\nexport interface DataTableColumn<T> {\n /** id for the column */\n id: string;\n /** Header text or component */\n header: ReactNode;\n /** Function to render cell content from row data */\n cell: (row: T) => ReactNode;\n /** Whether this column should be hidden */\n isHidden?: boolean;\n}\n\ninterface BaseDataTableProps<T = any> {\n /**\n * Array of column definitions\n * - {@link DataTableColumn}\n */\n columns: DataTableColumn<T>[];\n /**\n * Array of data objects to display. Can be empty array for loading/empty states\n * @default []\n * */\n data?: T[] | null;\n /**\n * Test ID for testing purposes\n * */\n \"data-testid\"?: string;\n /**\n * Error state\n * @default false\n */\n error?: boolean | string;\n /**\n * Custom empty state message\n * @default \"Data Unavailable\"\n */\n emptyMessage?: string;\n /**\n * Custom error message\n * @default \"An error occurred\"\n */\n errorMessage?: string;\n /** Callback when a row is clicked */\n onRowClick?: (row: T) => void;\n /** Loading state */\n loading?: boolean;\n /**\n * Number of skeleton rows to show in loading state\n * @default 5\n */\n loadingRows?: number;\n /**\n * Enable row-level memoization for performance optimization.\n * Uses deepEqual to compare row data. @see {@link deepEqual}\n * @default true\n */\n memoize?: boolean;\n /**\n * Table name/caption for accessibility. Provides essential context for screen readers.\n * */\n name: string;\n /** Optional tombstone component to use when loading */\n tombstoneComponent?: ReactNode;\n}\n\nexport type DataTableProps<T = any> = BaseDataTableProps<T> & SortingConfig;\n\n/**\n * DataTable is a declarative wrapper around the base Table component.\n * API:\n * - {@link DataTableProps}\n * - {@link SortingConfig}\n *\n * @note Row memoization is enabled by default. Rows only re-render when row data or index changes.\n */\nexport const DataTable = <T,>({\n columns,\n data = [],\n loading = false,\n tombstoneComponent,\n error = false,\n name,\n onRowClick,\n emptyMessage = \"Data Unavailable\",\n errorMessage = \"An error occurred\",\n loadingRows = 5,\n \"data-testid\": testId,\n memoize = true,\n sortableColumns = [],\n sortedBy,\n sortDirection,\n onSort,\n}: DataTableProps<T>) => {\n const visibleColumns = columns.filter((col) => !col.isHidden);\n\n const handleSortClick = (column: DataTableColumn<T>) => {\n if (!onSort) return;\n\n const isCurrentlySorted = sortedBy === column.id;\n const newDirection =\n isCurrentlySorted && sortDirection === \"ASC\" ? \"DESC\" : \"ASC\";\n\n onSort(column.id, newDirection);\n };\n\n const getSortState = (columnId: string): AriaAttributes[\"aria-sort\"] => {\n if (sortedBy !== columnId) return \"none\";\n return sortDirection === \"ASC\" ? \"ascending\" : \"descending\";\n };\n\n if (error) {\n return (\n <EmptyState\n columns={visibleColumns}\n message={typeof error === \"string\" ? error : errorMessage}\n name={name}\n testId={testId}\n isError\n />\n );\n }\n\n if (loading) {\n return (\n <div\n className=\"proton-DataTable\"\n data-testid={testId}\n aria-busy=\"true\"\n aria-label={`Loading ${name}...`}\n >\n <Table name={name}>\n <Table.Header>\n {visibleColumns.map((column) => (\n <Table.Column key={column.id} id={column.id}>\n {column.header}\n </Table.Column>\n ))}\n </Table.Header>\n <Table.Body>\n {Array.from({ length: loadingRows }).map((_, index) => (\n <Table.Row key={`loading-${index}`}>\n {visibleColumns.map((column) => (\n <Table.Cell key={column.id}>\n {tombstoneComponent || (\n <Tombstone\n height=\"1rem\"\n width={\n // cascading tombstone widths\n index % 3 === 0\n ? \"80%\"\n : index % 3 === 1\n ? \"60%\"\n : \"90%\"\n }\n />\n )}\n </Table.Cell>\n ))}\n </Table.Row>\n ))}\n </Table.Body>\n </Table>\n </div>\n );\n }\n\n if (!data || data.length === 0) {\n return (\n <EmptyState\n columns={visibleColumns}\n message={emptyMessage}\n name={name}\n testId={testId}\n />\n );\n }\n\n return (\n <div className=\"proton-DataTable\" data-testid={testId}>\n <Table name={name}>\n <Table.Header>\n {visibleColumns.map((column) => {\n const isSortable = sortableColumns.includes(column.id);\n const sortState = getSortState(column.id);\n\n return (\n <Table.Column\n key={column.id}\n id={column.id}\n {...(isSortable && { \"aria-sort\": sortState })}\n >\n <span className=\"proton-DataTable__header-content\">\n {column.header}\n\n {isSortable && (\n <button\n className=\"proton-DataTable__sort-button\"\n onClick={() => handleSortClick(column)}\n aria-label={`Sort by ${column.header}: ${sortState}`}\n type=\"button\"\n >\n <ChevronUp\n size={12}\n color={\n sortState === \"ascending\"\n ? \"var(--proton-color__primary)\"\n : \"currentColor\"\n }\n />\n </button>\n )}\n </span>\n </Table.Column>\n );\n })}\n </Table.Header>\n <Table.Body>\n {data.map((row, index) => {\n const tableRow = row as TableRowData;\n\n return (\n <DataTableRow\n key={tableRow.key ?? index}\n row={row}\n columns={visibleColumns}\n rowIndex={index}\n onRowClick={onRowClick}\n memoize={memoize}\n dataTestId={tableRow.dataTestId}\n />\n );\n })}\n </Table.Body>\n </Table>\n </div>\n );\n};\n\nconst EmptyState = ({\n columns,\n message,\n name,\n testId,\n isError = false,\n}: Partial<DataTableProps> & {\n testId?: string;\n message: string;\n isError?: boolean;\n}) => {\n return (\n <div className=\"proton-DataTable\" data-testid={testId}>\n <Table name={name}>\n <Table.Header>\n {columns?.map((column) => (\n <Table.Column key={column.id} id={column.id}>\n {column.header}\n </Table.Column>\n ))}\n </Table.Header>\n <Table.Body>\n <Table.Row>\n <Table.Cell colSpan={columns?.length || 1}>\n <div\n className=\"proton-DataTable__message-cell\"\n role={isError ? \"alert\" : \"status\"}\n aria-live=\"polite\"\n >\n <Elevation>\n <div className=\"proton-DataTable__empty-cell\">{message}</div>\n </Elevation>\n </div>\n </Table.Cell>\n </Table.Row>\n </Table.Body>\n </Table>\n </div>\n );\n};\n\nDataTable.displayName = \"ProtonUIDataTable\";\n"],"names":["DataTable","columns","data","loading","tombstoneComponent","error","name","onRowClick","emptyMessage","errorMessage","loadingRows","testId","memoize","sortableColumns","sortedBy","sortDirection","onSort","visibleColumns","col","handleSortClick","column","newDirection","getSortState","columnId","jsx","EmptyState","jsxs","Table","_","index","Tombstone","isSortable","sortState","ChevronUp","row","tableRow","DataTableRow","message","isError","Elevation"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DataTable.cjs.js","sources":["../../../../src/components/Table/DataTable/DataTable.tsx"],"sourcesContent":["\"use client\";\n\nimport { AriaAttributes, ReactNode } from \"react\";\nimport { deepEqual } from \"../../../utils/deepEqual\";\n\nimport { Table, TableRowData } from \"../BaseTable/Table\";\nimport { Elevation } from \"../../Elevation/Elevation\";\nimport { Tombstone } from \"../../Tombstone/Tombstone\";\nimport { ChevronUp } from \"../../Icon/IconComponents/ChevronUp\";\nimport { DataTableRow } from \"./DataTableRow\";\n\nimport \"../BaseTable/Table.css\";\nimport \"./DataTable.css\";\n\nexport type SortDirection = \"ASC\" | \"DESC\";\n\ntype SortingConfig =\n | {\n /** When sorting is enabled, all these props must be provided together. */\n sortableColumns: string[];\n sortedBy: string;\n sortDirection: SortDirection;\n onSort: (columnId: string, direction: SortDirection) => void;\n }\n | {\n /** When no sorting is needed, none of these props should be provided */\n sortableColumns?: never;\n sortedBy?: never;\n sortDirection?: never;\n onSort?: never;\n };\n\nexport interface DataTableColumn<T> {\n /** id for the column */\n id: string;\n /** Header text or component */\n header: ReactNode;\n /** Function to render cell content from row data */\n cell: (row: T) => ReactNode;\n /** Whether this column should be hidden */\n isHidden?: boolean;\n}\n\ninterface BaseDataTableProps<T = any> {\n /**\n * Array of column definitions\n * - {@link DataTableColumn}\n */\n columns: DataTableColumn<T>[];\n /**\n * Array of data objects to display. Can be empty array for loading/empty states\n * @default []\n * */\n data?: T[] | null;\n /**\n * Test ID for testing purposes\n * */\n \"data-testid\"?: string;\n /**\n * Error state\n * @default false\n */\n error?: boolean | string;\n /**\n * Custom empty state message\n * @default \"Data Unavailable\"\n */\n emptyMessage?: string;\n /**\n * Custom error message\n * @default \"An error occurred\"\n */\n errorMessage?: string;\n /** Callback when a row is clicked */\n onRowClick?: (row: T) => void;\n /** Loading state */\n loading?: boolean;\n /**\n * Number of skeleton rows to show in loading state\n * @default 5\n */\n loadingRows?: number;\n /**\n * Enable row-level memoization for performance optimization.\n * Uses deepEqual to compare row data. @see {@link deepEqual}\n * @default true\n */\n memoize?: boolean;\n /**\n * Table name/caption for accessibility. Provides essential context for screen readers.\n * */\n name: string;\n /** Optional tombstone component to use when loading */\n tombstoneComponent?: ReactNode;\n}\n\nexport type DataTableProps<T = any> = BaseDataTableProps<T> & SortingConfig;\n\n/**\n * DataTable is a declarative wrapper around the base Table component.\n * API:\n * - {@link DataTableProps}\n * - {@link SortingConfig}\n *\n * @note Row memoization is enabled by default. Rows only re-render when row data or index changes.\n */\nexport const DataTable = <T,>({\n columns,\n data = [],\n loading = false,\n tombstoneComponent,\n error = false,\n name,\n onRowClick,\n emptyMessage = \"Data Unavailable\",\n errorMessage = \"An error occurred\",\n loadingRows = 5,\n \"data-testid\": testId,\n memoize = true,\n sortableColumns = [],\n sortedBy,\n sortDirection,\n onSort,\n}: DataTableProps<T>) => {\n const visibleColumns = columns.filter((col) => !col.isHidden);\n\n const handleSortClick = (column: DataTableColumn<T>) => {\n if (!onSort) return;\n\n const isCurrentlySorted = sortedBy === column.id;\n const newDirection =\n isCurrentlySorted && sortDirection === \"ASC\" ? \"DESC\" : \"ASC\";\n\n onSort(column.id, newDirection);\n };\n\n const getSortState = (columnId: string): AriaAttributes[\"aria-sort\"] => {\n if (sortedBy !== columnId) return \"none\";\n return sortDirection === \"ASC\" ? \"ascending\" : \"descending\";\n };\n\n if (error) {\n return (\n <EmptyState\n columns={visibleColumns}\n message={typeof error === \"string\" ? error : errorMessage}\n name={name}\n testId={testId}\n isError\n />\n );\n }\n\n if (loading) {\n return (\n <div\n className=\"proton-DataTable\"\n data-testid={testId}\n aria-busy=\"true\"\n aria-label={`Loading ${name}...`}\n >\n <Table name={name}>\n <Table.Header>\n {visibleColumns.map((column) => (\n <Table.Column key={column.id} id={column.id}>\n {column.header}\n </Table.Column>\n ))}\n </Table.Header>\n <Table.Body>\n {Array.from({ length: loadingRows }).map((_, index) => (\n <Table.Row key={`loading-${index}`}>\n {visibleColumns.map((column) => (\n <Table.Cell key={column.id}>\n {tombstoneComponent || (\n <Tombstone\n height=\"1rem\"\n width={\n // cascading tombstone widths\n index % 3 === 0\n ? \"80%\"\n : index % 3 === 1\n ? \"60%\"\n : \"90%\"\n }\n />\n )}\n </Table.Cell>\n ))}\n </Table.Row>\n ))}\n </Table.Body>\n </Table>\n </div>\n );\n }\n\n if (!data || data.length === 0) {\n return (\n <EmptyState\n columns={visibleColumns}\n message={emptyMessage}\n name={name}\n testId={testId}\n />\n );\n }\n\n return (\n <div className=\"proton-DataTable\" data-testid={testId}>\n <Table name={name}>\n <Table.Header>\n {visibleColumns.map((column) => {\n const isSortable = sortableColumns.includes(column.id);\n const sortState = getSortState(column.id);\n\n return (\n <Table.Column\n key={column.id}\n id={column.id}\n {...(isSortable && { \"aria-sort\": sortState })}\n >\n <span className=\"proton-DataTable__header-content\">\n {column.header}\n\n {isSortable && (\n <button\n className=\"proton-DataTable__sort-button\"\n onClick={() => handleSortClick(column)}\n aria-label={`Sort by ${column.header}: ${sortState}`}\n type=\"button\"\n >\n <ChevronUp\n size={12}\n color={\n sortState === \"ascending\"\n ? \"var(--proton-color__primary)\"\n : \"currentColor\"\n }\n />\n </button>\n )}\n </span>\n </Table.Column>\n );\n })}\n </Table.Header>\n <Table.Body>\n {data.map((row, index) => {\n const tableRow = row as TableRowData;\n\n return (\n <DataTableRow\n key={tableRow.key ?? index}\n row={row}\n columns={visibleColumns}\n rowIndex={index}\n onRowClick={onRowClick}\n memoize={memoize}\n dataTestId={tableRow.dataTestId}\n />\n );\n })}\n </Table.Body>\n </Table>\n </div>\n );\n};\n\nconst EmptyState = ({\n columns,\n message,\n name,\n testId,\n isError = false,\n}: {\n columns: DataTableColumn<any>[];\n name: string;\n testId?: string;\n message: string;\n isError?: boolean;\n}) => {\n return (\n <div className=\"proton-DataTable\" data-testid={testId}>\n <Table name={name}>\n <Table.Header>\n {columns.map((column) => (\n <Table.Column key={column.id} id={column.id}>\n {column.header}\n </Table.Column>\n ))}\n </Table.Header>\n <Table.Body>\n <Table.Row>\n <Table.Cell colSpan={columns?.length || 1}>\n <div\n className=\"proton-DataTable__message-cell\"\n role={isError ? \"alert\" : \"status\"}\n aria-live=\"polite\"\n >\n <Elevation>\n <div className=\"proton-DataTable__empty-cell\">{message}</div>\n </Elevation>\n </div>\n </Table.Cell>\n </Table.Row>\n </Table.Body>\n </Table>\n </div>\n );\n};\n\nDataTable.displayName = \"ProtonUIDataTable\";\n"],"names":["DataTable","columns","data","loading","tombstoneComponent","error","name","onRowClick","emptyMessage","errorMessage","loadingRows","testId","memoize","sortableColumns","sortedBy","sortDirection","onSort","visibleColumns","col","handleSortClick","column","newDirection","getSortState","columnId","jsx","EmptyState","jsxs","Table","_","index","Tombstone","isSortable","sortState","ChevronUp","row","tableRow","DataTableRow","message","isError","Elevation"],"mappings":"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"}
|
|
@@ -7,7 +7,7 @@ import { DataTableRow as w } from "./DataTableRow.es.js";
|
|
|
7
7
|
/* empty css */
|
|
8
8
|
/* empty css */
|
|
9
9
|
const A = ({
|
|
10
|
-
columns:
|
|
10
|
+
columns: l,
|
|
11
11
|
data: n = [],
|
|
12
12
|
loading: h = !1,
|
|
13
13
|
tombstoneComponent: p,
|
|
@@ -15,25 +15,25 @@ const A = ({
|
|
|
15
15
|
name: s,
|
|
16
16
|
onRowClick: f,
|
|
17
17
|
emptyMessage: C = "Data Unavailable",
|
|
18
|
-
errorMessage:
|
|
19
|
-
loadingRows:
|
|
18
|
+
errorMessage: u = "An error occurred",
|
|
19
|
+
loadingRows: g = 5,
|
|
20
20
|
"data-testid": c,
|
|
21
|
-
memoize:
|
|
22
|
-
sortableColumns:
|
|
21
|
+
memoize: y = !0,
|
|
22
|
+
sortableColumns: T = [],
|
|
23
23
|
sortedBy: j,
|
|
24
24
|
sortDirection: x,
|
|
25
|
-
onSort:
|
|
25
|
+
onSort: m
|
|
26
26
|
}) => {
|
|
27
|
-
const
|
|
28
|
-
if (!
|
|
27
|
+
const d = l.filter((r) => !r.isHidden), S = (r) => {
|
|
28
|
+
if (!m) return;
|
|
29
29
|
const i = j === r.id && x === "ASC" ? "DESC" : "ASC";
|
|
30
|
-
|
|
31
|
-
},
|
|
30
|
+
m(r.id, i);
|
|
31
|
+
}, D = (r) => j !== r ? "none" : x === "ASC" ? "ascending" : "descending";
|
|
32
32
|
return o ? /* @__PURE__ */ e.jsx(
|
|
33
|
-
|
|
33
|
+
b,
|
|
34
34
|
{
|
|
35
|
-
columns:
|
|
36
|
-
message: typeof o == "string" ? o :
|
|
35
|
+
columns: d,
|
|
36
|
+
message: typeof o == "string" ? o : u,
|
|
37
37
|
name: s,
|
|
38
38
|
testId: c,
|
|
39
39
|
isError: !0
|
|
@@ -46,8 +46,8 @@ const A = ({
|
|
|
46
46
|
"aria-busy": "true",
|
|
47
47
|
"aria-label": `Loading ${s}...`,
|
|
48
48
|
children: /* @__PURE__ */ e.jsxs(a, { name: s, children: [
|
|
49
|
-
/* @__PURE__ */ e.jsx(a.Header, { children:
|
|
50
|
-
/* @__PURE__ */ e.jsx(a.Body, { children: Array.from({ length:
|
|
49
|
+
/* @__PURE__ */ e.jsx(a.Header, { children: d.map((r) => /* @__PURE__ */ e.jsx(a.Column, { id: r.id, children: r.header }, r.id)) }),
|
|
50
|
+
/* @__PURE__ */ e.jsx(a.Body, { children: Array.from({ length: g }).map((r, t) => /* @__PURE__ */ e.jsx(a.Row, { children: d.map((i) => /* @__PURE__ */ e.jsx(a.Cell, { children: p || /* @__PURE__ */ e.jsx(
|
|
51
51
|
_,
|
|
52
52
|
{
|
|
53
53
|
height: "1rem",
|
|
@@ -60,16 +60,16 @@ const A = ({
|
|
|
60
60
|
] })
|
|
61
61
|
}
|
|
62
62
|
) : !n || n.length === 0 ? /* @__PURE__ */ e.jsx(
|
|
63
|
-
|
|
63
|
+
b,
|
|
64
64
|
{
|
|
65
|
-
columns:
|
|
65
|
+
columns: d,
|
|
66
66
|
message: C,
|
|
67
67
|
name: s,
|
|
68
68
|
testId: c
|
|
69
69
|
}
|
|
70
70
|
) : /* @__PURE__ */ e.jsx("div", { className: "proton-DataTable", "data-testid": c, children: /* @__PURE__ */ e.jsxs(a, { name: s, children: [
|
|
71
|
-
/* @__PURE__ */ e.jsx(a.Header, { children:
|
|
72
|
-
const t =
|
|
71
|
+
/* @__PURE__ */ e.jsx(a.Header, { children: d.map((r) => {
|
|
72
|
+
const t = T.includes(r.id), i = D(r.id);
|
|
73
73
|
return /* @__PURE__ */ e.jsx(
|
|
74
74
|
a.Column,
|
|
75
75
|
{
|
|
@@ -81,7 +81,7 @@ const A = ({
|
|
|
81
81
|
"button",
|
|
82
82
|
{
|
|
83
83
|
className: "proton-DataTable__sort-button",
|
|
84
|
-
onClick: () =>
|
|
84
|
+
onClick: () => S(r),
|
|
85
85
|
"aria-label": `Sort by ${r.header}: ${i}`,
|
|
86
86
|
type: "button",
|
|
87
87
|
children: /* @__PURE__ */ e.jsx(
|
|
@@ -104,25 +104,25 @@ const A = ({
|
|
|
104
104
|
w,
|
|
105
105
|
{
|
|
106
106
|
row: r,
|
|
107
|
-
columns:
|
|
107
|
+
columns: d,
|
|
108
108
|
rowIndex: t,
|
|
109
109
|
onRowClick: f,
|
|
110
|
-
memoize:
|
|
110
|
+
memoize: y,
|
|
111
111
|
dataTestId: i.dataTestId
|
|
112
112
|
},
|
|
113
113
|
i.key ?? t
|
|
114
114
|
);
|
|
115
115
|
}) })
|
|
116
116
|
] }) });
|
|
117
|
-
},
|
|
118
|
-
columns:
|
|
117
|
+
}, b = ({
|
|
118
|
+
columns: l,
|
|
119
119
|
message: n,
|
|
120
120
|
name: h,
|
|
121
121
|
testId: p,
|
|
122
122
|
isError: o = !1
|
|
123
123
|
}) => /* @__PURE__ */ e.jsx("div", { className: "proton-DataTable", "data-testid": p, children: /* @__PURE__ */ e.jsxs(a, { name: h, children: [
|
|
124
|
-
/* @__PURE__ */ e.jsx(a.Header, { children:
|
|
125
|
-
/* @__PURE__ */ e.jsx(a.Body, { children: /* @__PURE__ */ e.jsx(a.Row, { children: /* @__PURE__ */ e.jsx(a.Cell, { colSpan: (
|
|
124
|
+
/* @__PURE__ */ e.jsx(a.Header, { children: l.map((s) => /* @__PURE__ */ e.jsx(a.Column, { id: s.id, children: s.header }, s.id)) }),
|
|
125
|
+
/* @__PURE__ */ e.jsx(a.Body, { children: /* @__PURE__ */ e.jsx(a.Row, { children: /* @__PURE__ */ e.jsx(a.Cell, { colSpan: (l == null ? void 0 : l.length) || 1, children: /* @__PURE__ */ e.jsx(
|
|
126
126
|
"div",
|
|
127
127
|
{
|
|
128
128
|
className: "proton-DataTable__message-cell",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataTable.es.js","sources":["../../../../src/components/Table/DataTable/DataTable.tsx"],"sourcesContent":["\"use client\";\n\nimport { AriaAttributes, ReactNode } from \"react\";\nimport { deepEqual } from \"../../../utils/deepEqual\";\n\nimport { Table, TableRowData } from \"../BaseTable/Table\";\nimport { Elevation } from \"../../Elevation/Elevation\";\nimport { Tombstone } from \"../../Tombstone/Tombstone\";\nimport { ChevronUp } from \"../../Icon/IconComponents/ChevronUp\";\nimport { DataTableRow } from \"./DataTableRow\";\n\nimport \"../BaseTable/Table.css\";\nimport \"./DataTable.css\";\n\nexport type SortDirection = \"ASC\" | \"DESC\";\n\ntype SortingConfig =\n | {\n /** When sorting is enabled, all these props must be provided together. */\n sortableColumns: string[];\n sortedBy: string;\n sortDirection: SortDirection;\n onSort: (columnId: string, direction: SortDirection) => void;\n }\n | {\n /** When no sorting is needed, none of these props should be provided */\n sortableColumns?: never;\n sortedBy?: never;\n sortDirection?: never;\n onSort?: never;\n };\n\nexport interface DataTableColumn<T> {\n /** id for the column */\n id: string;\n /** Header text or component */\n header: ReactNode;\n /** Function to render cell content from row data */\n cell: (row: T) => ReactNode;\n /** Whether this column should be hidden */\n isHidden?: boolean;\n}\n\ninterface BaseDataTableProps<T = any> {\n /**\n * Array of column definitions\n * - {@link DataTableColumn}\n */\n columns: DataTableColumn<T>[];\n /**\n * Array of data objects to display. Can be empty array for loading/empty states\n * @default []\n * */\n data?: T[] | null;\n /**\n * Test ID for testing purposes\n * */\n \"data-testid\"?: string;\n /**\n * Error state\n * @default false\n */\n error?: boolean | string;\n /**\n * Custom empty state message\n * @default \"Data Unavailable\"\n */\n emptyMessage?: string;\n /**\n * Custom error message\n * @default \"An error occurred\"\n */\n errorMessage?: string;\n /** Callback when a row is clicked */\n onRowClick?: (row: T) => void;\n /** Loading state */\n loading?: boolean;\n /**\n * Number of skeleton rows to show in loading state\n * @default 5\n */\n loadingRows?: number;\n /**\n * Enable row-level memoization for performance optimization.\n * Uses deepEqual to compare row data. @see {@link deepEqual}\n * @default true\n */\n memoize?: boolean;\n /**\n * Table name/caption for accessibility. Provides essential context for screen readers.\n * */\n name: string;\n /** Optional tombstone component to use when loading */\n tombstoneComponent?: ReactNode;\n}\n\nexport type DataTableProps<T = any> = BaseDataTableProps<T> & SortingConfig;\n\n/**\n * DataTable is a declarative wrapper around the base Table component.\n * API:\n * - {@link DataTableProps}\n * - {@link SortingConfig}\n *\n * @note Row memoization is enabled by default. Rows only re-render when row data or index changes.\n */\nexport const DataTable = <T,>({\n columns,\n data = [],\n loading = false,\n tombstoneComponent,\n error = false,\n name,\n onRowClick,\n emptyMessage = \"Data Unavailable\",\n errorMessage = \"An error occurred\",\n loadingRows = 5,\n \"data-testid\": testId,\n memoize = true,\n sortableColumns = [],\n sortedBy,\n sortDirection,\n onSort,\n}: DataTableProps<T>) => {\n const visibleColumns = columns.filter((col) => !col.isHidden);\n\n const handleSortClick = (column: DataTableColumn<T>) => {\n if (!onSort) return;\n\n const isCurrentlySorted = sortedBy === column.id;\n const newDirection =\n isCurrentlySorted && sortDirection === \"ASC\" ? \"DESC\" : \"ASC\";\n\n onSort(column.id, newDirection);\n };\n\n const getSortState = (columnId: string): AriaAttributes[\"aria-sort\"] => {\n if (sortedBy !== columnId) return \"none\";\n return sortDirection === \"ASC\" ? \"ascending\" : \"descending\";\n };\n\n if (error) {\n return (\n <EmptyState\n columns={visibleColumns}\n message={typeof error === \"string\" ? error : errorMessage}\n name={name}\n testId={testId}\n isError\n />\n );\n }\n\n if (loading) {\n return (\n <div\n className=\"proton-DataTable\"\n data-testid={testId}\n aria-busy=\"true\"\n aria-label={`Loading ${name}...`}\n >\n <Table name={name}>\n <Table.Header>\n {visibleColumns.map((column) => (\n <Table.Column key={column.id} id={column.id}>\n {column.header}\n </Table.Column>\n ))}\n </Table.Header>\n <Table.Body>\n {Array.from({ length: loadingRows }).map((_, index) => (\n <Table.Row key={`loading-${index}`}>\n {visibleColumns.map((column) => (\n <Table.Cell key={column.id}>\n {tombstoneComponent || (\n <Tombstone\n height=\"1rem\"\n width={\n // cascading tombstone widths\n index % 3 === 0\n ? \"80%\"\n : index % 3 === 1\n ? \"60%\"\n : \"90%\"\n }\n />\n )}\n </Table.Cell>\n ))}\n </Table.Row>\n ))}\n </Table.Body>\n </Table>\n </div>\n );\n }\n\n if (!data || data.length === 0) {\n return (\n <EmptyState\n columns={visibleColumns}\n message={emptyMessage}\n name={name}\n testId={testId}\n />\n );\n }\n\n return (\n <div className=\"proton-DataTable\" data-testid={testId}>\n <Table name={name}>\n <Table.Header>\n {visibleColumns.map((column) => {\n const isSortable = sortableColumns.includes(column.id);\n const sortState = getSortState(column.id);\n\n return (\n <Table.Column\n key={column.id}\n id={column.id}\n {...(isSortable && { \"aria-sort\": sortState })}\n >\n <span className=\"proton-DataTable__header-content\">\n {column.header}\n\n {isSortable && (\n <button\n className=\"proton-DataTable__sort-button\"\n onClick={() => handleSortClick(column)}\n aria-label={`Sort by ${column.header}: ${sortState}`}\n type=\"button\"\n >\n <ChevronUp\n size={12}\n color={\n sortState === \"ascending\"\n ? \"var(--proton-color__primary)\"\n : \"currentColor\"\n }\n />\n </button>\n )}\n </span>\n </Table.Column>\n );\n })}\n </Table.Header>\n <Table.Body>\n {data.map((row, index) => {\n const tableRow = row as TableRowData;\n\n return (\n <DataTableRow\n key={tableRow.key ?? index}\n row={row}\n columns={visibleColumns}\n rowIndex={index}\n onRowClick={onRowClick}\n memoize={memoize}\n dataTestId={tableRow.dataTestId}\n />\n );\n })}\n </Table.Body>\n </Table>\n </div>\n );\n};\n\nconst EmptyState = ({\n columns,\n message,\n name,\n testId,\n isError = false,\n}: Partial<DataTableProps> & {\n testId?: string;\n message: string;\n isError?: boolean;\n}) => {\n return (\n <div className=\"proton-DataTable\" data-testid={testId}>\n <Table name={name}>\n <Table.Header>\n {columns?.map((column) => (\n <Table.Column key={column.id} id={column.id}>\n {column.header}\n </Table.Column>\n ))}\n </Table.Header>\n <Table.Body>\n <Table.Row>\n <Table.Cell colSpan={columns?.length || 1}>\n <div\n className=\"proton-DataTable__message-cell\"\n role={isError ? \"alert\" : \"status\"}\n aria-live=\"polite\"\n >\n <Elevation>\n <div className=\"proton-DataTable__empty-cell\">{message}</div>\n </Elevation>\n </div>\n </Table.Cell>\n </Table.Row>\n </Table.Body>\n </Table>\n </div>\n );\n};\n\nDataTable.displayName = \"ProtonUIDataTable\";\n"],"names":["DataTable","columns","data","loading","tombstoneComponent","error","name","onRowClick","emptyMessage","errorMessage","loadingRows","testId","memoize","sortableColumns","sortedBy","sortDirection","onSort","visibleColumns","col","handleSortClick","column","newDirection","getSortState","columnId","jsx","EmptyState","jsxs","Table","_","index","Tombstone","isSortable","sortState","ChevronUp","row","tableRow","DataTableRow","message","isError","Elevation"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DataTable.es.js","sources":["../../../../src/components/Table/DataTable/DataTable.tsx"],"sourcesContent":["\"use client\";\n\nimport { AriaAttributes, ReactNode } from \"react\";\nimport { deepEqual } from \"../../../utils/deepEqual\";\n\nimport { Table, TableRowData } from \"../BaseTable/Table\";\nimport { Elevation } from \"../../Elevation/Elevation\";\nimport { Tombstone } from \"../../Tombstone/Tombstone\";\nimport { ChevronUp } from \"../../Icon/IconComponents/ChevronUp\";\nimport { DataTableRow } from \"./DataTableRow\";\n\nimport \"../BaseTable/Table.css\";\nimport \"./DataTable.css\";\n\nexport type SortDirection = \"ASC\" | \"DESC\";\n\ntype SortingConfig =\n | {\n /** When sorting is enabled, all these props must be provided together. */\n sortableColumns: string[];\n sortedBy: string;\n sortDirection: SortDirection;\n onSort: (columnId: string, direction: SortDirection) => void;\n }\n | {\n /** When no sorting is needed, none of these props should be provided */\n sortableColumns?: never;\n sortedBy?: never;\n sortDirection?: never;\n onSort?: never;\n };\n\nexport interface DataTableColumn<T> {\n /** id for the column */\n id: string;\n /** Header text or component */\n header: ReactNode;\n /** Function to render cell content from row data */\n cell: (row: T) => ReactNode;\n /** Whether this column should be hidden */\n isHidden?: boolean;\n}\n\ninterface BaseDataTableProps<T = any> {\n /**\n * Array of column definitions\n * - {@link DataTableColumn}\n */\n columns: DataTableColumn<T>[];\n /**\n * Array of data objects to display. Can be empty array for loading/empty states\n * @default []\n * */\n data?: T[] | null;\n /**\n * Test ID for testing purposes\n * */\n \"data-testid\"?: string;\n /**\n * Error state\n * @default false\n */\n error?: boolean | string;\n /**\n * Custom empty state message\n * @default \"Data Unavailable\"\n */\n emptyMessage?: string;\n /**\n * Custom error message\n * @default \"An error occurred\"\n */\n errorMessage?: string;\n /** Callback when a row is clicked */\n onRowClick?: (row: T) => void;\n /** Loading state */\n loading?: boolean;\n /**\n * Number of skeleton rows to show in loading state\n * @default 5\n */\n loadingRows?: number;\n /**\n * Enable row-level memoization for performance optimization.\n * Uses deepEqual to compare row data. @see {@link deepEqual}\n * @default true\n */\n memoize?: boolean;\n /**\n * Table name/caption for accessibility. Provides essential context for screen readers.\n * */\n name: string;\n /** Optional tombstone component to use when loading */\n tombstoneComponent?: ReactNode;\n}\n\nexport type DataTableProps<T = any> = BaseDataTableProps<T> & SortingConfig;\n\n/**\n * DataTable is a declarative wrapper around the base Table component.\n * API:\n * - {@link DataTableProps}\n * - {@link SortingConfig}\n *\n * @note Row memoization is enabled by default. Rows only re-render when row data or index changes.\n */\nexport const DataTable = <T,>({\n columns,\n data = [],\n loading = false,\n tombstoneComponent,\n error = false,\n name,\n onRowClick,\n emptyMessage = \"Data Unavailable\",\n errorMessage = \"An error occurred\",\n loadingRows = 5,\n \"data-testid\": testId,\n memoize = true,\n sortableColumns = [],\n sortedBy,\n sortDirection,\n onSort,\n}: DataTableProps<T>) => {\n const visibleColumns = columns.filter((col) => !col.isHidden);\n\n const handleSortClick = (column: DataTableColumn<T>) => {\n if (!onSort) return;\n\n const isCurrentlySorted = sortedBy === column.id;\n const newDirection =\n isCurrentlySorted && sortDirection === \"ASC\" ? \"DESC\" : \"ASC\";\n\n onSort(column.id, newDirection);\n };\n\n const getSortState = (columnId: string): AriaAttributes[\"aria-sort\"] => {\n if (sortedBy !== columnId) return \"none\";\n return sortDirection === \"ASC\" ? \"ascending\" : \"descending\";\n };\n\n if (error) {\n return (\n <EmptyState\n columns={visibleColumns}\n message={typeof error === \"string\" ? error : errorMessage}\n name={name}\n testId={testId}\n isError\n />\n );\n }\n\n if (loading) {\n return (\n <div\n className=\"proton-DataTable\"\n data-testid={testId}\n aria-busy=\"true\"\n aria-label={`Loading ${name}...`}\n >\n <Table name={name}>\n <Table.Header>\n {visibleColumns.map((column) => (\n <Table.Column key={column.id} id={column.id}>\n {column.header}\n </Table.Column>\n ))}\n </Table.Header>\n <Table.Body>\n {Array.from({ length: loadingRows }).map((_, index) => (\n <Table.Row key={`loading-${index}`}>\n {visibleColumns.map((column) => (\n <Table.Cell key={column.id}>\n {tombstoneComponent || (\n <Tombstone\n height=\"1rem\"\n width={\n // cascading tombstone widths\n index % 3 === 0\n ? \"80%\"\n : index % 3 === 1\n ? \"60%\"\n : \"90%\"\n }\n />\n )}\n </Table.Cell>\n ))}\n </Table.Row>\n ))}\n </Table.Body>\n </Table>\n </div>\n );\n }\n\n if (!data || data.length === 0) {\n return (\n <EmptyState\n columns={visibleColumns}\n message={emptyMessage}\n name={name}\n testId={testId}\n />\n );\n }\n\n return (\n <div className=\"proton-DataTable\" data-testid={testId}>\n <Table name={name}>\n <Table.Header>\n {visibleColumns.map((column) => {\n const isSortable = sortableColumns.includes(column.id);\n const sortState = getSortState(column.id);\n\n return (\n <Table.Column\n key={column.id}\n id={column.id}\n {...(isSortable && { \"aria-sort\": sortState })}\n >\n <span className=\"proton-DataTable__header-content\">\n {column.header}\n\n {isSortable && (\n <button\n className=\"proton-DataTable__sort-button\"\n onClick={() => handleSortClick(column)}\n aria-label={`Sort by ${column.header}: ${sortState}`}\n type=\"button\"\n >\n <ChevronUp\n size={12}\n color={\n sortState === \"ascending\"\n ? \"var(--proton-color__primary)\"\n : \"currentColor\"\n }\n />\n </button>\n )}\n </span>\n </Table.Column>\n );\n })}\n </Table.Header>\n <Table.Body>\n {data.map((row, index) => {\n const tableRow = row as TableRowData;\n\n return (\n <DataTableRow\n key={tableRow.key ?? index}\n row={row}\n columns={visibleColumns}\n rowIndex={index}\n onRowClick={onRowClick}\n memoize={memoize}\n dataTestId={tableRow.dataTestId}\n />\n );\n })}\n </Table.Body>\n </Table>\n </div>\n );\n};\n\nconst EmptyState = ({\n columns,\n message,\n name,\n testId,\n isError = false,\n}: {\n columns: DataTableColumn<any>[];\n name: string;\n testId?: string;\n message: string;\n isError?: boolean;\n}) => {\n return (\n <div className=\"proton-DataTable\" data-testid={testId}>\n <Table name={name}>\n <Table.Header>\n {columns.map((column) => (\n <Table.Column key={column.id} id={column.id}>\n {column.header}\n </Table.Column>\n ))}\n </Table.Header>\n <Table.Body>\n <Table.Row>\n <Table.Cell colSpan={columns?.length || 1}>\n <div\n className=\"proton-DataTable__message-cell\"\n role={isError ? \"alert\" : \"status\"}\n aria-live=\"polite\"\n >\n <Elevation>\n <div className=\"proton-DataTable__empty-cell\">{message}</div>\n </Elevation>\n </div>\n </Table.Cell>\n </Table.Row>\n </Table.Body>\n </Table>\n </div>\n );\n};\n\nDataTable.displayName = \"ProtonUIDataTable\";\n"],"names":["DataTable","columns","data","loading","tombstoneComponent","error","name","onRowClick","emptyMessage","errorMessage","loadingRows","testId","memoize","sortableColumns","sortedBy","sortDirection","onSort","visibleColumns","col","handleSortClick","column","newDirection","getSortState","columnId","jsx","EmptyState","jsxs","Table","_","index","Tombstone","isSortable","sortState","ChevronUp","row","tableRow","DataTableRow","message","isError","Elevation"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("../../../node_modules/react/jsx-runtime.cjs.js"),c=require("react"),x=require("../../../utils/deepEqual.cjs.js"),d=require("../BaseTable/Collection/useTableCollection.cjs.js"),R=require("../BaseTable/elements/TableRow.cjs.js"),b=require("../BaseTable/elements/TableCell.cjs.js"),
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("../../../node_modules/react/jsx-runtime.cjs.js"),c=require("react"),x=require("../../../utils/deepEqual.cjs.js"),d=require("../BaseTable/Collection/useTableCollection.cjs.js"),R=require("../BaseTable/elements/TableRow.cjs.js"),b=require("../BaseTable/elements/TableCell.cjs.js"),l=({row:t,columns:e,rowIndex:r,onRowClick:a,dataTestId:s})=>o.jsxRuntimeExports.jsx(R.TableRow,{dataTestId:s,ariaRowIndex:d.calculateAriaRowIndex(r,e.length>0),onClick:a?()=>a(t):void 0,children:e.map((n,u)=>o.jsxRuntimeExports.jsx(b.TableCell,{columnIndex:u+1,children:n.cell(t)},n.id))}),m=c.memo(l,(t,e)=>t.rowIndex===e.rowIndex&&x.deepEqual(t.row,e.row)),i=({memoize:t,...e})=>{if(t){const r=m;return o.jsxRuntimeExports.jsx(r,{...e})}return o.jsxRuntimeExports.jsx(l,{...e})};i.displayName="ProtonUIDataTableRow";exports.DataTableRow=i;
|
|
2
2
|
//# sourceMappingURL=DataTableRow.cjs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataTableRow.cjs.js","sources":["../../../../src/components/Table/DataTable/DataTableRow.tsx"],"sourcesContent":["import { memo, ReactNode } from \"react\";\nimport { DataTableColumn } from \"./DataTable\";\nimport { deepEqual } from \"../../../utils/deepEqual\";\nimport { calculateAriaRowIndex } from \"../BaseTable/Collection/useTableCollection\";\nimport { TableRow } from \"../BaseTable/elements/TableRow\";\nimport { TableCell } from \"../BaseTable/elements/TableCell\";\n\ninterface DataTableRowProps<T> {\n row: T;\n columns: DataTableColumn<T>[];\n rowIndex: number;\n onRowClick?: (row: T) => void;\n memoize?: boolean;\n dataTestId?: string;\n}\n\nconst DataTableRowComponent = <T,>({\n row,\n columns,\n rowIndex,\n onRowClick,\n dataTestId,\n}: DataTableRowProps<T>) => {\n return (\n <TableRow\n dataTestId={dataTestId}\n ariaRowIndex={calculateAriaRowIndex(rowIndex, columns.length > 0)}\n onClick={onRowClick ? () => onRowClick(row) : undefined}\n >\n {columns.map((column, colIndex) => (\n <TableCell key={column.id} columnIndex={colIndex + 1}>\n {column.cell(row)}\n </TableCell>\n ))}\n </TableRow>\n );\n};\n\nconst
|
|
1
|
+
{"version":3,"file":"DataTableRow.cjs.js","sources":["../../../../src/components/Table/DataTable/DataTableRow.tsx"],"sourcesContent":["import { memo, type ComponentType, type ReactNode } from \"react\";\nimport { DataTableColumn } from \"./DataTable\";\nimport { deepEqual } from \"../../../utils/deepEqual\";\nimport { calculateAriaRowIndex } from \"../BaseTable/Collection/useTableCollection\";\nimport { TableRow } from \"../BaseTable/elements/TableRow\";\nimport { TableCell } from \"../BaseTable/elements/TableCell\";\n\ninterface DataTableRowProps<T> {\n row: T;\n columns: DataTableColumn<T>[];\n rowIndex: number;\n onRowClick?: (row: T) => void;\n memoize?: boolean;\n dataTestId?: string;\n}\n\nconst DataTableRowComponent = <T,>({\n row,\n columns,\n rowIndex,\n onRowClick,\n dataTestId,\n}: DataTableRowProps<T>) => {\n return (\n <TableRow\n dataTestId={dataTestId}\n ariaRowIndex={calculateAriaRowIndex(rowIndex, columns.length > 0)}\n onClick={onRowClick ? () => onRowClick(row) : undefined}\n >\n {columns.map((column, colIndex) => (\n <TableCell key={column.id} columnIndex={colIndex + 1}>\n {column.cell(row)}\n </TableCell>\n ))}\n </TableRow>\n );\n};\n\nconst MemoizedDataTableRowInner = memo(\n DataTableRowComponent,\n (prevProps, nextProps) =>\n prevProps.rowIndex === nextProps.rowIndex &&\n deepEqual(prevProps.row, nextProps.row),\n) as typeof DataTableRowComponent;\n\n/**\n * Memoized wrapper for a DataTableRow.\n */\nexport const DataTableRow = <T,>({\n memoize,\n ...props\n}: DataTableRowProps<T>): ReactNode => {\n if (memoize) {\n const MemoizedRow = MemoizedDataTableRowInner as ComponentType<\n DataTableRowProps<T>\n >;\n return <MemoizedRow {...props} />;\n }\n return <DataTableRowComponent {...props} />;\n};\n\nDataTableRow.displayName = \"ProtonUIDataTableRow\";\n"],"names":["DataTableRowComponent","row","columns","rowIndex","onRowClick","dataTestId","jsx","TableRow","calculateAriaRowIndex","column","colIndex","TableCell","MemoizedDataTableRowInner","memo","prevProps","nextProps","deepEqual","DataTableRow","memoize","props","MemoizedRow"],"mappings":"wXAgBMA,EAAwB,CAAK,CACjC,IAAAC,EACA,QAAAC,EACA,SAAAC,EACA,WAAAC,EACA,WAAAC,CACF,IAEIC,EAAAA,kBAAAA,IAACC,EAAAA,SAAA,CACC,WAAAF,EACA,aAAcG,EAAAA,sBAAsBL,EAAUD,EAAQ,OAAS,CAAC,EAChE,QAASE,EAAa,IAAMA,EAAWH,CAAG,EAAI,OAE7C,WAAQ,IAAI,CAACQ,EAAQC,4BACnBC,EAAAA,UAAA,CAA0B,YAAaD,EAAW,EAChD,WAAO,KAAKT,CAAG,CAAA,EADFQ,EAAO,EAEvB,CACD,CAAA,CAAA,EAKDG,EAA4BC,EAAAA,KAChCb,EACA,CAACc,EAAWC,IACVD,EAAU,WAAaC,EAAU,UACjCC,YAAUF,EAAU,IAAKC,EAAU,GAAG,CAC1C,EAKaE,EAAe,CAAK,CAC/B,QAAAC,EACA,GAAGC,CACL,IAAuC,CACrC,GAAID,EAAS,CACX,MAAME,EAAcR,EAGpB,OAAON,wBAACc,EAAA,CAAa,GAAGD,CAAA,CAAO,CACjC,CACA,OAAOb,wBAACN,EAAA,CAAuB,GAAGmB,CAAA,CAAO,CAC3C,EAEAF,EAAa,YAAc"}
|
|
@@ -1,32 +1,38 @@
|
|
|
1
|
-
import { j as
|
|
1
|
+
import { j as r } from "../../../node_modules/react/jsx-runtime.es.js";
|
|
2
2
|
import { memo as d } from "react";
|
|
3
3
|
import { deepEqual as x } from "../../../utils/deepEqual.es.js";
|
|
4
4
|
import { calculateAriaRowIndex as w } from "../BaseTable/Collection/useTableCollection.es.js";
|
|
5
|
-
import { TableRow as
|
|
6
|
-
import { TableCell as
|
|
7
|
-
const
|
|
5
|
+
import { TableRow as c } from "../BaseTable/elements/TableRow.es.js";
|
|
6
|
+
import { TableCell as s } from "../BaseTable/elements/TableCell.es.js";
|
|
7
|
+
const n = ({
|
|
8
8
|
row: e,
|
|
9
9
|
columns: o,
|
|
10
|
-
rowIndex:
|
|
11
|
-
onRowClick:
|
|
10
|
+
rowIndex: a,
|
|
11
|
+
onRowClick: t,
|
|
12
12
|
dataTestId: i
|
|
13
|
-
}) => /* @__PURE__ */
|
|
14
|
-
|
|
13
|
+
}) => /* @__PURE__ */ r.jsx(
|
|
14
|
+
c,
|
|
15
15
|
{
|
|
16
16
|
dataTestId: i,
|
|
17
|
-
ariaRowIndex: w(
|
|
18
|
-
onClick:
|
|
19
|
-
children: o.map((
|
|
17
|
+
ariaRowIndex: w(a, o.length > 0),
|
|
18
|
+
onClick: t ? () => t(e) : void 0,
|
|
19
|
+
children: o.map((m, l) => /* @__PURE__ */ r.jsx(s, { columnIndex: l + 1, children: m.cell(e) }, m.id))
|
|
20
20
|
}
|
|
21
|
-
),
|
|
22
|
-
|
|
21
|
+
), R = d(
|
|
22
|
+
n,
|
|
23
23
|
(e, o) => e.rowIndex === o.rowIndex && x(e.row, o.row)
|
|
24
|
-
),
|
|
24
|
+
), f = ({
|
|
25
25
|
memoize: e,
|
|
26
26
|
...o
|
|
27
|
-
}) =>
|
|
28
|
-
|
|
27
|
+
}) => {
|
|
28
|
+
if (e) {
|
|
29
|
+
const a = R;
|
|
30
|
+
return /* @__PURE__ */ r.jsx(a, { ...o });
|
|
31
|
+
}
|
|
32
|
+
return /* @__PURE__ */ r.jsx(n, { ...o });
|
|
33
|
+
};
|
|
34
|
+
f.displayName = "ProtonUIDataTableRow";
|
|
29
35
|
export {
|
|
30
|
-
|
|
36
|
+
f as DataTableRow
|
|
31
37
|
};
|
|
32
38
|
//# sourceMappingURL=DataTableRow.es.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataTableRow.es.js","sources":["../../../../src/components/Table/DataTable/DataTableRow.tsx"],"sourcesContent":["import { memo, ReactNode } from \"react\";\nimport { DataTableColumn } from \"./DataTable\";\nimport { deepEqual } from \"../../../utils/deepEqual\";\nimport { calculateAriaRowIndex } from \"../BaseTable/Collection/useTableCollection\";\nimport { TableRow } from \"../BaseTable/elements/TableRow\";\nimport { TableCell } from \"../BaseTable/elements/TableCell\";\n\ninterface DataTableRowProps<T> {\n row: T;\n columns: DataTableColumn<T>[];\n rowIndex: number;\n onRowClick?: (row: T) => void;\n memoize?: boolean;\n dataTestId?: string;\n}\n\nconst DataTableRowComponent = <T,>({\n row,\n columns,\n rowIndex,\n onRowClick,\n dataTestId,\n}: DataTableRowProps<T>) => {\n return (\n <TableRow\n dataTestId={dataTestId}\n ariaRowIndex={calculateAriaRowIndex(rowIndex, columns.length > 0)}\n onClick={onRowClick ? () => onRowClick(row) : undefined}\n >\n {columns.map((column, colIndex) => (\n <TableCell key={column.id} columnIndex={colIndex + 1}>\n {column.cell(row)}\n </TableCell>\n ))}\n </TableRow>\n );\n};\n\nconst
|
|
1
|
+
{"version":3,"file":"DataTableRow.es.js","sources":["../../../../src/components/Table/DataTable/DataTableRow.tsx"],"sourcesContent":["import { memo, type ComponentType, type ReactNode } from \"react\";\nimport { DataTableColumn } from \"./DataTable\";\nimport { deepEqual } from \"../../../utils/deepEqual\";\nimport { calculateAriaRowIndex } from \"../BaseTable/Collection/useTableCollection\";\nimport { TableRow } from \"../BaseTable/elements/TableRow\";\nimport { TableCell } from \"../BaseTable/elements/TableCell\";\n\ninterface DataTableRowProps<T> {\n row: T;\n columns: DataTableColumn<T>[];\n rowIndex: number;\n onRowClick?: (row: T) => void;\n memoize?: boolean;\n dataTestId?: string;\n}\n\nconst DataTableRowComponent = <T,>({\n row,\n columns,\n rowIndex,\n onRowClick,\n dataTestId,\n}: DataTableRowProps<T>) => {\n return (\n <TableRow\n dataTestId={dataTestId}\n ariaRowIndex={calculateAriaRowIndex(rowIndex, columns.length > 0)}\n onClick={onRowClick ? () => onRowClick(row) : undefined}\n >\n {columns.map((column, colIndex) => (\n <TableCell key={column.id} columnIndex={colIndex + 1}>\n {column.cell(row)}\n </TableCell>\n ))}\n </TableRow>\n );\n};\n\nconst MemoizedDataTableRowInner = memo(\n DataTableRowComponent,\n (prevProps, nextProps) =>\n prevProps.rowIndex === nextProps.rowIndex &&\n deepEqual(prevProps.row, nextProps.row),\n) as typeof DataTableRowComponent;\n\n/**\n * Memoized wrapper for a DataTableRow.\n */\nexport const DataTableRow = <T,>({\n memoize,\n ...props\n}: DataTableRowProps<T>): ReactNode => {\n if (memoize) {\n const MemoizedRow = MemoizedDataTableRowInner as ComponentType<\n DataTableRowProps<T>\n >;\n return <MemoizedRow {...props} />;\n }\n return <DataTableRowComponent {...props} />;\n};\n\nDataTableRow.displayName = \"ProtonUIDataTableRow\";\n"],"names":["DataTableRowComponent","row","columns","rowIndex","onRowClick","dataTestId","jsx","TableRow","calculateAriaRowIndex","column","colIndex","TableCell","MemoizedDataTableRowInner","memo","prevProps","nextProps","deepEqual","DataTableRow","memoize","props","MemoizedRow"],"mappings":";;;;;;AAgBA,MAAMA,IAAwB,CAAK;AAAA,EACjC,KAAAC;AAAA,EACA,SAAAC;AAAA,EACA,UAAAC;AAAA,EACA,YAAAC;AAAA,EACA,YAAAC;AACF,MAEIC,gBAAAA,EAAAA;AAAAA,EAACC;AAAA,EAAA;AAAA,IACC,YAAAF;AAAA,IACA,cAAcG,EAAsBL,GAAUD,EAAQ,SAAS,CAAC;AAAA,IAChE,SAASE,IAAa,MAAMA,EAAWH,CAAG,IAAI;AAAA,IAE7C,YAAQ,IAAI,CAACQ,GAAQC,4BACnBC,GAAA,EAA0B,aAAaD,IAAW,GAChD,YAAO,KAAKT,CAAG,EAAA,GADFQ,EAAO,EAEvB,CACD;AAAA,EAAA;AAAA,GAKDG,IAA4BC;AAAA,EAChCb;AAAA,EACA,CAACc,GAAWC,MACVD,EAAU,aAAaC,EAAU,YACjCC,EAAUF,EAAU,KAAKC,EAAU,GAAG;AAC1C,GAKaE,IAAe,CAAK;AAAA,EAC/B,SAAAC;AAAA,EACA,GAAGC;AACL,MAAuC;AACrC,MAAID,GAAS;AACX,UAAME,IAAcR;AAGpB,WAAON,gBAAAA,MAACc,GAAA,EAAa,GAAGD,EAAA,CAAO;AAAA,EACjC;AACA,SAAOb,gBAAAA,MAACN,GAAA,EAAuB,GAAGmB,EAAA,CAAO;AAC3C;AAEAF,EAAa,cAAc;"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const m=require("../../../node_modules/react/jsx-runtime.cjs.js"),n=require("react");function x({initialDurationSeconds:u=0,durationSeconds:a=20,children:i="Complete",label:e="",showTimer:s=!0,"data-testid":f}){const o=()=>u>0?Math.max(0,a-u):a,[r,
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const m=require("../../../node_modules/react/jsx-runtime.cjs.js"),n=require("react");function x({initialDurationSeconds:u=0,durationSeconds:a=20,children:i="Complete",label:e="",showTimer:s=!0,"data-testid":f}){const o=()=>u>0?Math.max(0,a-u):a,[r,l]=n.useState(()=>o()),t=n.useRef(null);return n.useEffect(()=>{if(!(r<=0))return t.current=setInterval(()=>{l(c=>c<=1?(t.current&&(clearInterval(t.current),t.current=null),0):c-1)},1e3),()=>{t.current&&(clearInterval(t.current),t.current=null)}},[r]),n.useEffect(()=>{l(o())},[a,u]),r<=0?m.jsxRuntimeExports.jsx("span",{"data-testid":f,"aria-label":typeof i=="string"?i:void 0,children:i}):m.jsxRuntimeExports.jsxs("span",{role:"timer","aria-live":"polite","aria-atomic":"true","aria-label":e,"data-testid":f,children:[e&&(s?`${e} `:e),s&&`${String(r)}s...`]})}x.displayName="ProtonUITextCountdown";exports.TextCountdown=x;
|
|
2
2
|
//# sourceMappingURL=TextCountdown.cjs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TextCountdown.cjs.js","sources":["../../../../src/components/Text/TextCountdown/TextCountdown.tsx"],"sourcesContent":["\"use client\";\n\nimport { useEffect, useRef, useState, type ReactNode } from \"react\";\n\nexport interface TextCountdownProps {\n /** Content to show when countdown has finished and the button is clickable.\n * @default \"Complete\"\n */\n children?: ReactNode;\n\n /** Test ID for the component. */\n \"data-testid\"?: string;\n\n /** Total time the timer runs for, in seconds.\n * @default 20\n */\n durationSeconds?: number;\n\n /** Whether to show the timer.\n * @default true\n */\n showTimer?: boolean;\n\n /** Label to show before the timer.\n * @default \"\"\n */\n label?: string;\n\n /**\n * When provided (and positive), subtracted from durationSeconds to get the initial time left\n * (e.g. durationSeconds=20, initialDurationSeconds=5 → starts at 15s).\n * When 0 or omitted, the countdown starts at the full durationSeconds.\n * @default 0\n */\n initialDurationSeconds?: number;\n}\n\n/**\n * A component that displays text with a countdown timer.\n *\n * API:\n * - {@link TextCountdownProps}\n */\nexport function TextCountdown({\n initialDurationSeconds = 0,\n durationSeconds = 20,\n children = \"Complete\",\n label = \"\",\n showTimer = true,\n \"data-testid\": testId,\n}: TextCountdownProps) {\n const getInitialTimeLeft = () =>\n initialDurationSeconds > 0\n ? Math.max(0, durationSeconds - initialDurationSeconds)\n : durationSeconds;\n\n const [timeLeft, setTimeLeft] = useState<number>(() => getInitialTimeLeft());\n const intervalRef = useRef<ReturnType<typeof setInterval> | null>(null);\n\n useEffect(() => {\n if (timeLeft <= 0) {\n return;\n }\n\n intervalRef.current = setInterval(() => {\n setTimeLeft((prev) => {\n if (prev <= 1) {\n if (intervalRef.current) {\n clearInterval(intervalRef.current);\n intervalRef.current = null;\n }\n return 0;\n }\n return prev - 1;\n });\n }, 1000);\n\n return () => {\n if (intervalRef.current) {\n clearInterval(intervalRef.current);\n intervalRef.current = null;\n }\n };\n }, [timeLeft]);\n\n useEffect(() => {\n setTimeLeft(getInitialTimeLeft());\n }, [durationSeconds, initialDurationSeconds]);\n\n if (timeLeft <= 0) {\n return (\n <span\n data-testid={testId}\n aria-label={typeof children === \"string\" ? children : undefined}\n >\n {children}\n </span>\n );\n }\n\n return (\n <span\n role=\"timer\"\n aria-live=\"polite\"\n aria-atomic=\"true\"\n aria-label={label}\n data-testid={testId}\n >\n {label && (showTimer ? `${label} ` : label)}\n {showTimer && `${String(timeLeft)}s...`}\n </span>\n );\n}\n\nTextCountdown.displayName = \"ProtonUITextCountdown\";\n"],"names":["TextCountdown","initialDurationSeconds","durationSeconds","children","label","showTimer","testId","getInitialTimeLeft","timeLeft","setTimeLeft","useState","intervalRef","useRef","useEffect","prev","jsx","jsxs"],"mappings":"qKA2CO,SAASA,EAAc,CAC5B,uBAAAC,EAAyB,EACzB,gBAAAC,EAAkB,GAClB,SAAAC,EAAW,WACX,MAAAC,EAAQ,GACR,UAAAC,EAAY,GACZ,cAAeC,CACjB,EAAuB,
|
|
1
|
+
{"version":3,"file":"TextCountdown.cjs.js","sources":["../../../../src/components/Text/TextCountdown/TextCountdown.tsx"],"sourcesContent":["\"use client\";\n\nimport { useEffect, useRef, useState, type ReactNode } from \"react\";\n\nexport interface TextCountdownProps {\n /** Content to show when countdown has finished and the button is clickable.\n * @default \"Complete\"\n */\n children?: ReactNode;\n\n /** Test ID for the component. */\n \"data-testid\"?: string;\n\n /** Total time the timer runs for, in seconds.\n * @default 20\n */\n durationSeconds?: number;\n\n /** Whether to show the timer.\n * @default true\n */\n showTimer?: boolean;\n\n /** Label to show before the timer.\n * @default \"\"\n */\n label?: string;\n\n /**\n * When provided (and positive), subtracted from durationSeconds to get the initial time left\n * (e.g. durationSeconds=20, initialDurationSeconds=5 → starts at 15s).\n * When 0 or omitted, the countdown starts at the full durationSeconds.\n * @default 0\n */\n initialDurationSeconds?: number;\n}\n\n/**\n * A component that displays text with a countdown timer.\n *\n * API:\n * - {@link TextCountdownProps}\n */\nexport function TextCountdown({\n initialDurationSeconds = 0,\n durationSeconds = 20,\n children = \"Complete\",\n label = \"\",\n showTimer = true,\n \"data-testid\": testId,\n}: TextCountdownProps) {\n const getInitialTimeLeft = () =>\n initialDurationSeconds > 0\n ? Math.max(0, durationSeconds - initialDurationSeconds)\n : durationSeconds;\n\n const [timeLeft, setTimeLeft] = useState<number>(() => getInitialTimeLeft());\n const intervalRef = useRef<ReturnType<typeof setInterval> | null>(null);\n\n useEffect(() => {\n if (timeLeft <= 0) {\n return;\n }\n\n intervalRef.current = setInterval(() => {\n setTimeLeft((prev) => {\n if (prev <= 1) {\n if (intervalRef.current) {\n clearInterval(intervalRef.current);\n intervalRef.current = null;\n }\n return 0;\n }\n return prev - 1;\n });\n }, 1000);\n\n return () => {\n if (intervalRef.current) {\n clearInterval(intervalRef.current);\n intervalRef.current = null;\n }\n };\n }, [timeLeft]);\n\n useEffect(() => {\n setTimeLeft(getInitialTimeLeft());\n }, [durationSeconds, initialDurationSeconds]);\n\n if (timeLeft <= 0) {\n return (\n <span\n data-testid={testId}\n aria-label={typeof children === \"string\" ? children : undefined}\n >\n {children}\n </span>\n );\n }\n\n return (\n <span\n role=\"timer\"\n aria-live=\"polite\"\n aria-atomic=\"true\"\n aria-label={label}\n data-testid={testId}\n >\n {label && (showTimer ? `${label} ` : label)}\n {showTimer && `${String(timeLeft)}s...`}\n </span>\n );\n}\n\nTextCountdown.displayName = \"ProtonUITextCountdown\";\n"],"names":["TextCountdown","initialDurationSeconds","durationSeconds","children","label","showTimer","testId","getInitialTimeLeft","timeLeft","setTimeLeft","useState","intervalRef","useRef","useEffect","prev","jsx","jsxs"],"mappings":"qKA2CO,SAASA,EAAc,CAC5B,uBAAAC,EAAyB,EACzB,gBAAAC,EAAkB,GAClB,SAAAC,EAAW,WACX,MAAAC,EAAQ,GACR,UAAAC,EAAY,GACZ,cAAeC,CACjB,EAAuB,CACrB,MAAMC,EAAqB,IACzBN,EAAyB,EACrB,KAAK,IAAI,EAAGC,EAAkBD,CAAsB,EACpDC,EAEA,CAACM,EAAUC,CAAW,EAAIC,EAAAA,SAAiB,IAAMH,GAAoB,EACrEI,EAAcC,EAAAA,OAA8C,IAAI,EAgCtE,OA9BAC,EAAAA,UAAU,IAAM,CACd,GAAI,EAAAL,GAAY,GAIhB,OAAAG,EAAY,QAAU,YAAY,IAAM,CACtCF,EAAaK,GACPA,GAAQ,GACNH,EAAY,UACd,cAAcA,EAAY,OAAO,EACjCA,EAAY,QAAU,MAEjB,GAEFG,EAAO,CACf,CACH,EAAG,GAAI,EAEA,IAAM,CACPH,EAAY,UACd,cAAcA,EAAY,OAAO,EACjCA,EAAY,QAAU,KAE1B,CACF,EAAG,CAACH,CAAQ,CAAC,EAEbK,EAAAA,UAAU,IAAM,CACdJ,EAAYF,GAAoB,CAClC,EAAG,CAACL,EAAiBD,CAAsB,CAAC,EAExCO,GAAY,EAEZO,EAAAA,kBAAAA,IAAC,OAAA,CACC,cAAaT,EACb,aAAY,OAAOH,GAAa,SAAWA,EAAW,OAErD,SAAAA,CAAA,CAAA,EAMLa,EAAAA,kBAAAA,KAAC,OAAA,CACC,KAAK,QACL,YAAU,SACV,cAAY,OACZ,aAAYZ,EACZ,cAAaE,EAEZ,SAAA,CAAAF,IAAUC,EAAY,GAAGD,CAAK,IAAMA,GACpCC,GAAa,GAAG,OAAOG,CAAQ,CAAC,MAAA,CAAA,CAAA,CAGvC,CAEAR,EAAc,YAAc"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TextCountdown.es.js","sources":["../../../../src/components/Text/TextCountdown/TextCountdown.tsx"],"sourcesContent":["\"use client\";\n\nimport { useEffect, useRef, useState, type ReactNode } from \"react\";\n\nexport interface TextCountdownProps {\n /** Content to show when countdown has finished and the button is clickable.\n * @default \"Complete\"\n */\n children?: ReactNode;\n\n /** Test ID for the component. */\n \"data-testid\"?: string;\n\n /** Total time the timer runs for, in seconds.\n * @default 20\n */\n durationSeconds?: number;\n\n /** Whether to show the timer.\n * @default true\n */\n showTimer?: boolean;\n\n /** Label to show before the timer.\n * @default \"\"\n */\n label?: string;\n\n /**\n * When provided (and positive), subtracted from durationSeconds to get the initial time left\n * (e.g. durationSeconds=20, initialDurationSeconds=5 → starts at 15s).\n * When 0 or omitted, the countdown starts at the full durationSeconds.\n * @default 0\n */\n initialDurationSeconds?: number;\n}\n\n/**\n * A component that displays text with a countdown timer.\n *\n * API:\n * - {@link TextCountdownProps}\n */\nexport function TextCountdown({\n initialDurationSeconds = 0,\n durationSeconds = 20,\n children = \"Complete\",\n label = \"\",\n showTimer = true,\n \"data-testid\": testId,\n}: TextCountdownProps) {\n const getInitialTimeLeft = () =>\n initialDurationSeconds > 0\n ? Math.max(0, durationSeconds - initialDurationSeconds)\n : durationSeconds;\n\n const [timeLeft, setTimeLeft] = useState<number>(() => getInitialTimeLeft());\n const intervalRef = useRef<ReturnType<typeof setInterval> | null>(null);\n\n useEffect(() => {\n if (timeLeft <= 0) {\n return;\n }\n\n intervalRef.current = setInterval(() => {\n setTimeLeft((prev) => {\n if (prev <= 1) {\n if (intervalRef.current) {\n clearInterval(intervalRef.current);\n intervalRef.current = null;\n }\n return 0;\n }\n return prev - 1;\n });\n }, 1000);\n\n return () => {\n if (intervalRef.current) {\n clearInterval(intervalRef.current);\n intervalRef.current = null;\n }\n };\n }, [timeLeft]);\n\n useEffect(() => {\n setTimeLeft(getInitialTimeLeft());\n }, [durationSeconds, initialDurationSeconds]);\n\n if (timeLeft <= 0) {\n return (\n <span\n data-testid={testId}\n aria-label={typeof children === \"string\" ? children : undefined}\n >\n {children}\n </span>\n );\n }\n\n return (\n <span\n role=\"timer\"\n aria-live=\"polite\"\n aria-atomic=\"true\"\n aria-label={label}\n data-testid={testId}\n >\n {label && (showTimer ? `${label} ` : label)}\n {showTimer && `${String(timeLeft)}s...`}\n </span>\n );\n}\n\nTextCountdown.displayName = \"ProtonUITextCountdown\";\n"],"names":["TextCountdown","initialDurationSeconds","durationSeconds","children","label","showTimer","testId","getInitialTimeLeft","timeLeft","setTimeLeft","useState","intervalRef","useRef","useEffect","prev","jsx","jsxs"],"mappings":";;AA2CO,SAASA,EAAc;AAAA,EAC5B,wBAAAC,IAAyB;AAAA,EACzB,iBAAAC,IAAkB;AAAA,EAClB,UAAAC,IAAW;AAAA,EACX,OAAAC,IAAQ;AAAA,EACR,WAAAC,IAAY;AAAA,EACZ,eAAeC;AACjB,GAAuB;
|
|
1
|
+
{"version":3,"file":"TextCountdown.es.js","sources":["../../../../src/components/Text/TextCountdown/TextCountdown.tsx"],"sourcesContent":["\"use client\";\n\nimport { useEffect, useRef, useState, type ReactNode } from \"react\";\n\nexport interface TextCountdownProps {\n /** Content to show when countdown has finished and the button is clickable.\n * @default \"Complete\"\n */\n children?: ReactNode;\n\n /** Test ID for the component. */\n \"data-testid\"?: string;\n\n /** Total time the timer runs for, in seconds.\n * @default 20\n */\n durationSeconds?: number;\n\n /** Whether to show the timer.\n * @default true\n */\n showTimer?: boolean;\n\n /** Label to show before the timer.\n * @default \"\"\n */\n label?: string;\n\n /**\n * When provided (and positive), subtracted from durationSeconds to get the initial time left\n * (e.g. durationSeconds=20, initialDurationSeconds=5 → starts at 15s).\n * When 0 or omitted, the countdown starts at the full durationSeconds.\n * @default 0\n */\n initialDurationSeconds?: number;\n}\n\n/**\n * A component that displays text with a countdown timer.\n *\n * API:\n * - {@link TextCountdownProps}\n */\nexport function TextCountdown({\n initialDurationSeconds = 0,\n durationSeconds = 20,\n children = \"Complete\",\n label = \"\",\n showTimer = true,\n \"data-testid\": testId,\n}: TextCountdownProps) {\n const getInitialTimeLeft = () =>\n initialDurationSeconds > 0\n ? Math.max(0, durationSeconds - initialDurationSeconds)\n : durationSeconds;\n\n const [timeLeft, setTimeLeft] = useState<number>(() => getInitialTimeLeft());\n const intervalRef = useRef<ReturnType<typeof setInterval> | null>(null);\n\n useEffect(() => {\n if (timeLeft <= 0) {\n return;\n }\n\n intervalRef.current = setInterval(() => {\n setTimeLeft((prev) => {\n if (prev <= 1) {\n if (intervalRef.current) {\n clearInterval(intervalRef.current);\n intervalRef.current = null;\n }\n return 0;\n }\n return prev - 1;\n });\n }, 1000);\n\n return () => {\n if (intervalRef.current) {\n clearInterval(intervalRef.current);\n intervalRef.current = null;\n }\n };\n }, [timeLeft]);\n\n useEffect(() => {\n setTimeLeft(getInitialTimeLeft());\n }, [durationSeconds, initialDurationSeconds]);\n\n if (timeLeft <= 0) {\n return (\n <span\n data-testid={testId}\n aria-label={typeof children === \"string\" ? children : undefined}\n >\n {children}\n </span>\n );\n }\n\n return (\n <span\n role=\"timer\"\n aria-live=\"polite\"\n aria-atomic=\"true\"\n aria-label={label}\n data-testid={testId}\n >\n {label && (showTimer ? `${label} ` : label)}\n {showTimer && `${String(timeLeft)}s...`}\n </span>\n );\n}\n\nTextCountdown.displayName = \"ProtonUITextCountdown\";\n"],"names":["TextCountdown","initialDurationSeconds","durationSeconds","children","label","showTimer","testId","getInitialTimeLeft","timeLeft","setTimeLeft","useState","intervalRef","useRef","useEffect","prev","jsx","jsxs"],"mappings":";;AA2CO,SAASA,EAAc;AAAA,EAC5B,wBAAAC,IAAyB;AAAA,EACzB,iBAAAC,IAAkB;AAAA,EAClB,UAAAC,IAAW;AAAA,EACX,OAAAC,IAAQ;AAAA,EACR,WAAAC,IAAY;AAAA,EACZ,eAAeC;AACjB,GAAuB;AACrB,QAAMC,IAAqB,MACzBN,IAAyB,IACrB,KAAK,IAAI,GAAGC,IAAkBD,CAAsB,IACpDC,GAEA,CAACM,GAAUC,CAAW,IAAIC,EAAiB,MAAMH,GAAoB,GACrEI,IAAcC,EAA8C,IAAI;AAgCtE,SA9BAC,EAAU,MAAM;AACd,QAAI,EAAAL,KAAY;AAIhB,aAAAG,EAAY,UAAU,YAAY,MAAM;AACtC,QAAAF,EAAY,CAACK,MACPA,KAAQ,KACNH,EAAY,YACd,cAAcA,EAAY,OAAO,GACjCA,EAAY,UAAU,OAEjB,KAEFG,IAAO,CACf;AAAA,MACH,GAAG,GAAI,GAEA,MAAM;AACX,QAAIH,EAAY,YACd,cAAcA,EAAY,OAAO,GACjCA,EAAY,UAAU;AAAA,MAE1B;AAAA,EACF,GAAG,CAACH,CAAQ,CAAC,GAEbK,EAAU,MAAM;AACd,IAAAJ,EAAYF,GAAoB;AAAA,EAClC,GAAG,CAACL,GAAiBD,CAAsB,CAAC,GAExCO,KAAY,IAEZO,gBAAAA,EAAAA;AAAAA,IAAC;AAAA,IAAA;AAAA,MACC,eAAaT;AAAA,MACb,cAAY,OAAOH,KAAa,WAAWA,IAAW;AAAA,MAErD,UAAAA;AAAA,IAAA;AAAA,EAAA,IAMLa,gBAAAA,EAAAA;AAAAA,IAAC;AAAA,IAAA;AAAA,MACC,MAAK;AAAA,MACL,aAAU;AAAA,MACV,eAAY;AAAA,MACZ,cAAYZ;AAAA,MACZ,eAAaE;AAAA,MAEZ,UAAA;AAAA,QAAAF,MAAUC,IAAY,GAAGD,CAAK,MAAMA;AAAA,QACpCC,KAAa,GAAG,OAAOG,CAAQ,CAAC;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGvC;AAEAR,EAAc,cAAc;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TextEllipsis.cjs.js","sources":["../../../../src/components/Text/TextEllipsis/TextEllipsis.tsx"],"sourcesContent":["\"use client\";\n\nimport { ReactNode } from \"react\";\nimport { csx } from \"../../../utils\";\nimport \"./TextEllipsis.css\";\n\ninterface TextEllipsisProps {\n /**\n * The content to display within the text ellipsis.\n */\n children: ReactNode;\n\n /**\n * The maximum width of the text container in any valid CSS unit (px, rem, em, %, etc.).\n * When the container width is less than this value, text will be truncated with an ellipsis.\n */\n maxWidth?: string | number;\n\n /**\n * Whether to truncate the text to a single line. Default is true.\n * If false, the text will wrap to multiple lines.\n */\n singleLine?: boolean;\n\n /**\n * The number of lines to show before truncating with an ellipsis.\n * Only applies when singleLine is false.\n */\n lines?: number;\n\n /**\n * The title attribute to show on hover. If not provided and singleLine is true,\n * the children will be used as the title (if children is a string).\n */\n title?: string;\n\n /**\n * A test ID.\n */\n \"data-testid\"?: string;\n}\n\n/**\n * A component that displays text with an ellipsis when it overflows its container.\n *\n * API:\n * - {@link TextEllipsisProps}\n */\nexport const TextEllipsis = ({\n children,\n maxWidth,\n singleLine = true,\n lines = 1,\n title,\n \"data-testid\": testId,\n}: TextEllipsisProps) => {\n return (\n <div\n className={csx(\n \"proton-TextEllipsis\",\n singleLine || lines === 1\n ? \"proton-TextEllipsis--single-line\"\n : lines > 1\n ? \"proton-TextEllipsis--multi-line\"\n : \"\"\n )}\n style={{\n maxWidth: maxWidth,\n WebkitLineClamp: lines,\n }}\n title={title}\n data-testid={testId}\n >\n {children}\n </div>\n );\n};\n"],"names":["TextEllipsis","children","maxWidth","singleLine","lines","title","testId","jsx","csx"],"mappings":"uOAgDaA,EAAe,CAAC,CAC3B,SAAAC,EACA,SAAAC,EACA,WAAAC,EAAa,GACb,MAAAC,EAAQ,EACR,MAAAC,EACA,cAAeC,CACjB,IAEIC,
|
|
1
|
+
{"version":3,"file":"TextEllipsis.cjs.js","sources":["../../../../src/components/Text/TextEllipsis/TextEllipsis.tsx"],"sourcesContent":["\"use client\";\n\nimport { ReactNode } from \"react\";\nimport { csx } from \"../../../utils\";\nimport \"./TextEllipsis.css\";\n\ninterface TextEllipsisProps {\n /**\n * The content to display within the text ellipsis.\n */\n children: ReactNode;\n\n /**\n * The maximum width of the text container in any valid CSS unit (px, rem, em, %, etc.).\n * When the container width is less than this value, text will be truncated with an ellipsis.\n */\n maxWidth?: string | number;\n\n /**\n * Whether to truncate the text to a single line. Default is true.\n * If false, the text will wrap to multiple lines.\n */\n singleLine?: boolean;\n\n /**\n * The number of lines to show before truncating with an ellipsis.\n * Only applies when singleLine is false.\n */\n lines?: number;\n\n /**\n * The title attribute to show on hover. If not provided and singleLine is true,\n * the children will be used as the title (if children is a string).\n */\n title?: string;\n\n /**\n * A test ID.\n */\n \"data-testid\"?: string;\n}\n\n/**\n * A component that displays text with an ellipsis when it overflows its container.\n *\n * API:\n * - {@link TextEllipsisProps}\n */\nexport const TextEllipsis = ({\n children,\n maxWidth,\n singleLine = true,\n lines = 1,\n title,\n \"data-testid\": testId,\n}: TextEllipsisProps) => {\n return (\n <div\n className={csx(\n \"proton-TextEllipsis\",\n singleLine || lines === 1\n ? \"proton-TextEllipsis--single-line\"\n : lines > 1\n ? \"proton-TextEllipsis--multi-line\"\n : \"\"\n )}\n style={{\n maxWidth: maxWidth,\n WebkitLineClamp: lines,\n }}\n title={title}\n data-testid={testId}\n >\n {children}\n </div>\n );\n};\n"],"names":["TextEllipsis","children","maxWidth","singleLine","lines","title","testId","jsx","csx"],"mappings":"uOAgDaA,EAAe,CAAC,CAC3B,SAAAC,EACA,SAAAC,EACA,WAAAC,EAAa,GACb,MAAAC,EAAQ,EACR,MAAAC,EACA,cAAeC,CACjB,IAEIC,EAAAA,kBAAAA,IAAC,MAAA,CACC,UAAWC,EAAAA,IACT,sBACAL,GAAcC,IAAU,EACpB,mCACAA,EAAQ,EACN,kCACA,EAAA,EAER,MAAO,CACL,SAAAF,EACA,gBAAiBE,CAAA,EAEnB,MAAAC,EACA,cAAaC,EAEZ,SAAAL,CAAA,CAAA"}
|