@protonradio/proton-ui 0.13.0 → 0.13.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/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 +139 -139
- 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 -6
- 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 +34 -34
- 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 +36 -36
- 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 +15 -15
- 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 +26 -26
- package/dist/components/ButtonWithSelect/ButtonWithSelect.es.js.map +1 -1
- package/dist/components/Checkbox/CheckboxIndicator.cjs.js +1 -1
- package/dist/components/Checkbox/CheckboxIndicator.cjs.js.map +1 -1
- package/dist/components/Checkbox/CheckboxIndicator.es.js +5 -5
- package/dist/components/Checkbox/CheckboxIndicator.es.js.map +1 -1
- 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 +59 -59
- 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 +51 -51
- 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 +6 -6
- 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 +10 -10
- 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 +8 -8
- package/dist/components/Icon/IconComponents/AmazonMusicLogo.es.js.map +1 -1
- package/dist/components/Icon/IconComponents/AppleLogo.cjs.js +1 -1
- package/dist/components/Icon/IconComponents/AppleLogo.cjs.js.map +1 -1
- package/dist/components/Icon/IconComponents/AppleLogo.es.js +12 -12
- package/dist/components/Icon/IconComponents/AppleLogo.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 +17 -17
- package/dist/components/Icon/IconComponents/AppleMusicLogo.es.js.map +1 -1
- package/dist/components/Icon/IconComponents/Archive.cjs.js +1 -1
- package/dist/components/Icon/IconComponents/Archive.cjs.js.map +1 -1
- package/dist/components/Icon/IconComponents/Archive.es.js +8 -8
- package/dist/components/Icon/IconComponents/Archive.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/ArrowRight.cjs.js +1 -1
- package/dist/components/Icon/IconComponents/ArrowRight.cjs.js.map +1 -1
- package/dist/components/Icon/IconComponents/ArrowRight.es.js +11 -11
- package/dist/components/Icon/IconComponents/ArrowRight.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 +10 -10
- package/dist/components/Icon/IconComponents/BandcampLogo.es.js.map +1 -1
- package/dist/components/Icon/IconComponents/Bank.cjs.js +1 -1
- package/dist/components/Icon/IconComponents/Bank.cjs.js.map +1 -1
- package/dist/components/Icon/IconComponents/Bank.es.js +8 -8
- package/dist/components/Icon/IconComponents/Bank.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 +7 -7
- 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 +6 -6
- package/dist/components/Icon/IconComponents/Bell.es.js.map +1 -1
- package/dist/components/Icon/IconComponents/Box.cjs.js +1 -1
- package/dist/components/Icon/IconComponents/Box.cjs.js.map +1 -1
- package/dist/components/Icon/IconComponents/Box.es.js +10 -10
- package/dist/components/Icon/IconComponents/Box.es.js.map +1 -1
- package/dist/components/Icon/IconComponents/Calendar.cjs.js +1 -1
- package/dist/components/Icon/IconComponents/Calendar.cjs.js.map +1 -1
- package/dist/components/Icon/IconComponents/Calendar.es.js +22 -22
- package/dist/components/Icon/IconComponents/Calendar.es.js.map +1 -1
- package/dist/components/Icon/IconComponents/Camera.cjs.js +1 -1
- package/dist/components/Icon/IconComponents/Camera.cjs.js.map +1 -1
- package/dist/components/Icon/IconComponents/Camera.es.js +14 -14
- package/dist/components/Icon/IconComponents/Camera.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 +9 -9
- 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 +9 -9
- 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 +9 -9
- package/dist/components/Icon/IconComponents/Chart.es.js.map +1 -1
- package/dist/components/Icon/IconComponents/Chatboxes.cjs.js +1 -1
- package/dist/components/Icon/IconComponents/Chatboxes.cjs.js.map +1 -1
- package/dist/components/Icon/IconComponents/Chatboxes.es.js +15 -15
- package/dist/components/Icon/IconComponents/Chatboxes.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 +8 -8
- package/dist/components/Icon/IconComponents/CheckCircle.es.js.map +1 -1
- package/dist/components/Icon/IconComponents/Checkmark.cjs.js +1 -1
- package/dist/components/Icon/IconComponents/Checkmark.cjs.js.map +1 -1
- package/dist/components/Icon/IconComponents/Checkmark.es.js +9 -9
- package/dist/components/Icon/IconComponents/Checkmark.es.js.map +1 -1
- package/dist/components/Icon/IconComponents/CheckmarkThick.cjs.js +1 -1
- package/dist/components/Icon/IconComponents/CheckmarkThick.cjs.js.map +1 -1
- package/dist/components/Icon/IconComponents/CheckmarkThick.es.js +6 -6
- package/dist/components/Icon/IconComponents/CheckmarkThick.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 +9 -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 +6 -6
- 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 +6 -6
- 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 +11 -11
- 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 +8 -8
- 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 +7 -7
- 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 +5 -5
- package/dist/components/Icon/IconComponents/Cog.es.js.map +1 -1
- package/dist/components/Icon/IconComponents/Comment.cjs.js +1 -1
- package/dist/components/Icon/IconComponents/Comment.cjs.js.map +1 -1
- package/dist/components/Icon/IconComponents/Comment.es.js +10 -10
- package/dist/components/Icon/IconComponents/Comment.es.js.map +1 -1
- package/dist/components/Icon/IconComponents/Connections.cjs.js +1 -1
- package/dist/components/Icon/IconComponents/Connections.cjs.js.map +1 -1
- package/dist/components/Icon/IconComponents/Connections.es.js +10 -10
- package/dist/components/Icon/IconComponents/Connections.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 +14 -14
- 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 +3 -3
- 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 +10 -10
- 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 +6 -6
- 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 +6 -6
- 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 +7 -7
- package/dist/components/Icon/IconComponents/DragHandle.es.js.map +1 -1
- package/dist/components/Icon/IconComponents/DropboxLogo.cjs.js +1 -1
- package/dist/components/Icon/IconComponents/DropboxLogo.cjs.js.map +1 -1
- package/dist/components/Icon/IconComponents/DropboxLogo.es.js +13 -13
- package/dist/components/Icon/IconComponents/DropboxLogo.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 +12 -12
- 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 +19 -19
- 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 +11 -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 +12 -12
- 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 +9 -9
- 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 +11 -11
- package/dist/components/Icon/IconComponents/FacebookLogo.es.js.map +1 -1
- package/dist/components/Icon/IconComponents/Filter.cjs.js +1 -1
- package/dist/components/Icon/IconComponents/Filter.cjs.js.map +1 -1
- package/dist/components/Icon/IconComponents/Filter.es.js +9 -9
- package/dist/components/Icon/IconComponents/Filter.es.js.map +1 -1
- package/dist/components/Icon/IconComponents/GitHubLogo.cjs.js +1 -1
- package/dist/components/Icon/IconComponents/GitHubLogo.cjs.js.map +1 -1
- package/dist/components/Icon/IconComponents/GitHubLogo.es.js +10 -10
- package/dist/components/Icon/IconComponents/GitHubLogo.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 +3 -3
- package/dist/components/Icon/IconComponents/Globe.es.js.map +1 -1
- package/dist/components/Icon/IconComponents/GoogleDriveLogo.cjs.js +1 -1
- package/dist/components/Icon/IconComponents/GoogleDriveLogo.cjs.js.map +1 -1
- package/dist/components/Icon/IconComponents/GoogleDriveLogo.es.js +24 -24
- package/dist/components/Icon/IconComponents/GoogleDriveLogo.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 +10 -10
- 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 +11 -11
- 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 +13 -13
- 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 +16 -16
- 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 +15 -15
- package/dist/components/Icon/IconComponents/IntercomLogo.es.js.map +1 -1
- package/dist/components/Icon/IconComponents/Keyboard.cjs.js +1 -1
- package/dist/components/Icon/IconComponents/Keyboard.cjs.js.map +1 -1
- package/dist/components/Icon/IconComponents/Keyboard.es.js +9 -9
- package/dist/components/Icon/IconComponents/Keyboard.es.js.map +1 -1
- package/dist/components/Icon/IconComponents/Label.cjs.js +1 -1
- package/dist/components/Icon/IconComponents/Label.cjs.js.map +1 -1
- package/dist/components/Icon/IconComponents/Label.es.js +14 -14
- package/dist/components/Icon/IconComponents/Label.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 +9 -9
- 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 +6 -6
- package/dist/components/Icon/IconComponents/Link.es.js.map +1 -1
- package/dist/components/Icon/IconComponents/List.cjs.js +1 -1
- package/dist/components/Icon/IconComponents/List.cjs.js.map +1 -1
- package/dist/components/Icon/IconComponents/List.es.js +13 -13
- package/dist/components/Icon/IconComponents/List.es.js.map +1 -1
- package/dist/components/Icon/IconComponents/Lock.cjs.js +1 -1
- package/dist/components/Icon/IconComponents/Lock.cjs.js.map +1 -1
- package/dist/components/Icon/IconComponents/Lock.es.js +5 -5
- package/dist/components/Icon/IconComponents/Lock.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 +11 -11
- package/dist/components/Icon/IconComponents/MessengerLogo.es.js.map +1 -1
- package/dist/components/Icon/IconComponents/Money.cjs.js +1 -1
- package/dist/components/Icon/IconComponents/Money.cjs.js.map +1 -1
- package/dist/components/Icon/IconComponents/Money.es.js +13 -13
- package/dist/components/Icon/IconComponents/Money.es.js.map +1 -1
- package/dist/components/Icon/IconComponents/MoneyOutline.cjs.js +1 -1
- package/dist/components/Icon/IconComponents/MoneyOutline.cjs.js.map +1 -1
- package/dist/components/Icon/IconComponents/MoneyOutline.es.js +13 -13
- package/dist/components/Icon/IconComponents/MoneyOutline.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 +12 -12
- package/dist/components/Icon/IconComponents/MusicNote.es.js.map +1 -1
- package/dist/components/Icon/IconComponents/PacmanLoader.cjs.js +1 -1
- package/dist/components/Icon/IconComponents/PacmanLoader.cjs.js.map +1 -1
- package/dist/components/Icon/IconComponents/PacmanLoader.es.js +11 -11
- package/dist/components/Icon/IconComponents/PacmanLoader.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 +12 -12
- package/dist/components/Icon/IconComponents/Pause.es.js.map +1 -1
- package/dist/components/Icon/IconComponents/PayPalLogo.cjs.js +1 -1
- package/dist/components/Icon/IconComponents/PayPalLogo.cjs.js.map +1 -1
- package/dist/components/Icon/IconComponents/PayPalLogo.es.js +12 -12
- package/dist/components/Icon/IconComponents/PayPalLogo.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 +9 -9
- 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 +6 -6
- 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 +6 -6
- package/dist/components/Icon/IconComponents/PhoneThin.es.js.map +1 -1
- package/dist/components/Icon/IconComponents/PiggyBank.cjs.js +1 -1
- package/dist/components/Icon/IconComponents/PiggyBank.cjs.js.map +1 -1
- package/dist/components/Icon/IconComponents/PiggyBank.es.js +3 -3
- package/dist/components/Icon/IconComponents/PiggyBank.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 +10 -10
- 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 +13 -13
- 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 +8 -8
- package/dist/components/Icon/IconComponents/Quote.es.js.map +1 -1
- package/dist/components/Icon/IconComponents/Radio.cjs.js +1 -1
- package/dist/components/Icon/IconComponents/Radio.cjs.js.map +1 -1
- package/dist/components/Icon/IconComponents/Radio.es.js +16 -16
- package/dist/components/Icon/IconComponents/Radio.es.js.map +1 -1
- package/dist/components/Icon/IconComponents/RemoveCircle.cjs.js +1 -1
- package/dist/components/Icon/IconComponents/RemoveCircle.cjs.js.map +1 -1
- package/dist/components/Icon/IconComponents/RemoveCircle.es.js +10 -10
- package/dist/components/Icon/IconComponents/RemoveCircle.es.js.map +1 -1
- package/dist/components/Icon/IconComponents/Rocket.cjs.js +1 -1
- package/dist/components/Icon/IconComponents/Rocket.cjs.js.map +1 -1
- package/dist/components/Icon/IconComponents/Rocket.es.js +15 -15
- package/dist/components/Icon/IconComponents/Rocket.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 +9 -9
- 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 +8 -8
- 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 +14 -14
- 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 +3 -3
- 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 +13 -13
- 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 +7 -7
- package/dist/components/Icon/IconComponents/Spy.es.js.map +1 -1
- package/dist/components/Icon/IconComponents/Star.cjs.js +1 -1
- package/dist/components/Icon/IconComponents/Star.cjs.js.map +1 -1
- package/dist/components/Icon/IconComponents/Star.es.js +8 -8
- package/dist/components/Icon/IconComponents/Star.es.js.map +1 -1
- package/dist/components/Icon/IconComponents/StarCircle.cjs.js +1 -1
- package/dist/components/Icon/IconComponents/StarCircle.cjs.js.map +1 -1
- package/dist/components/Icon/IconComponents/StarCircle.es.js +10 -10
- package/dist/components/Icon/IconComponents/StarCircle.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 +10 -10
- 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 +9 -9
- 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 +6 -6
- 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 +8 -8
- 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 +15 -15
- package/dist/components/Icon/IconComponents/TraxsourceLogo.es.js.map +1 -1
- package/dist/components/Icon/IconComponents/USDCLogo.cjs.js +1 -1
- package/dist/components/Icon/IconComponents/USDCLogo.cjs.js.map +1 -1
- package/dist/components/Icon/IconComponents/USDCLogo.es.js +16 -16
- package/dist/components/Icon/IconComponents/USDCLogo.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 +12 -12
- package/dist/components/Icon/IconComponents/User.es.js.map +1 -1
- package/dist/components/Icon/IconComponents/UserAdd.cjs.js +1 -1
- package/dist/components/Icon/IconComponents/UserAdd.cjs.js.map +1 -1
- package/dist/components/Icon/IconComponents/UserAdd.es.js +10 -10
- package/dist/components/Icon/IconComponents/UserAdd.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 +8 -8
- package/dist/components/Icon/IconComponents/Users.es.js.map +1 -1
- package/dist/components/Icon/IconComponents/Verified.cjs.js +1 -1
- package/dist/components/Icon/IconComponents/Verified.cjs.js.map +1 -1
- package/dist/components/Icon/IconComponents/Verified.es.js +9 -9
- package/dist/components/Icon/IconComponents/Verified.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 +11 -11
- package/dist/components/Icon/IconComponents/WarningTriangle.es.js.map +1 -1
- package/dist/components/Icon/IconComponents/WesternUnionLogo.cjs.js +1 -1
- package/dist/components/Icon/IconComponents/WesternUnionLogo.cjs.js.map +1 -1
- package/dist/components/Icon/IconComponents/WesternUnionLogo.es.js +13 -13
- package/dist/components/Icon/IconComponents/WesternUnionLogo.es.js.map +1 -1
- package/dist/components/Icon/IconComponents/WhatsappLogo.cjs.js +1 -1
- package/dist/components/Icon/IconComponents/WhatsappLogo.cjs.js.map +1 -1
- package/dist/components/Icon/IconComponents/WhatsappLogo.es.js +15 -15
- package/dist/components/Icon/IconComponents/WhatsappLogo.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 +19 -19
- 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 +10 -10
- 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 +9 -9
- 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 +14 -14
- package/dist/components/Icon/IconComponents/YoutubeLogo.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 +18 -18
- 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 +73 -73
- 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 +23 -23
- 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 +58 -58
- package/dist/components/Input/OTPInput/OTPInput.es.js.map +1 -1
- package/dist/components/Input/SearchInput/SearchInput.cjs.js +1 -1
- package/dist/components/Input/SearchInput/SearchInput.cjs.js.map +1 -1
- package/dist/components/Input/SearchInput/SearchInput.es.js +45 -45
- 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 +31 -31
- 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 +53 -53
- 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 +49 -49
- package/dist/components/Modal/Modal.es.js.map +1 -1
- package/dist/components/Overlay/Overlay.cjs.js +1 -1
- package/dist/components/Overlay/Overlay.cjs.js.map +1 -1
- package/dist/components/Overlay/Overlay.es.js +9 -9
- package/dist/components/Overlay/Overlay.es.js.map +1 -1
- 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 +29 -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 +7 -7
- 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 +83 -83
- 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 +26 -26
- package/dist/components/Switch/Switch.es.js.map +1 -1
- package/dist/components/Table/BaseTable/Collection/collectionParser.cjs.js +1 -1
- package/dist/components/Table/BaseTable/Collection/useTableCollection.cjs.js +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 +37 -37
- package/dist/components/Table/BaseTable/Table.es.js.map +1 -1
- package/dist/components/Table/BaseTable/elements/TableBody.cjs.js +1 -1
- package/dist/components/Table/BaseTable/elements/TableBody.cjs.js.map +1 -1
- package/dist/components/Table/BaseTable/elements/TableBody.es.js +2 -2
- package/dist/components/Table/BaseTable/elements/TableBody.es.js.map +1 -1
- package/dist/components/Table/BaseTable/elements/TableCell.cjs.js +1 -1
- package/dist/components/Table/BaseTable/elements/TableCell.cjs.js.map +1 -1
- package/dist/components/Table/BaseTable/elements/TableCell.es.js +7 -7
- package/dist/components/Table/BaseTable/elements/TableCell.es.js.map +1 -1
- package/dist/components/Table/BaseTable/elements/TableHeader.cjs.js +1 -1
- package/dist/components/Table/BaseTable/elements/TableHeader.cjs.js.map +1 -1
- package/dist/components/Table/BaseTable/elements/TableHeader.es.js +2 -2
- package/dist/components/Table/BaseTable/elements/TableHeader.es.js.map +1 -1
- package/dist/components/Table/BaseTable/elements/TableHeaderCell.cjs.js +1 -1
- package/dist/components/Table/BaseTable/elements/TableHeaderCell.cjs.js.map +1 -1
- package/dist/components/Table/BaseTable/elements/TableHeaderCell.es.js +4 -4
- package/dist/components/Table/BaseTable/elements/TableHeaderCell.es.js.map +1 -1
- package/dist/components/Table/BaseTable/elements/TableHeaderRow.cjs.js +1 -1
- package/dist/components/Table/BaseTable/elements/TableHeaderRow.cjs.js.map +1 -1
- package/dist/components/Table/BaseTable/elements/TableHeaderRow.es.js +2 -2
- package/dist/components/Table/BaseTable/elements/TableHeaderRow.es.js.map +1 -1
- package/dist/components/Table/BaseTable/elements/TableRoot.cjs.js +1 -1
- package/dist/components/Table/BaseTable/elements/TableRoot.cjs.js.map +1 -1
- package/dist/components/Table/BaseTable/elements/TableRoot.es.js +7 -7
- package/dist/components/Table/BaseTable/elements/TableRoot.es.js.map +1 -1
- package/dist/components/Table/BaseTable/elements/TableRow.cjs.js +1 -1
- package/dist/components/Table/BaseTable/elements/TableRow.cjs.js.map +1 -1
- package/dist/components/Table/BaseTable/elements/TableRow.es.js +2 -2
- 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 +70 -70
- 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 +15 -21
- 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 +12 -12
- package/dist/components/Text/TextCountdown/TextCountdown.es.js.map +1 -1
- package/dist/components/Text/TextEllipsis/TextEllipsis.cjs.js +1 -1
- package/dist/components/Text/TextEllipsis/TextEllipsis.cjs.js.map +1 -1
- package/dist/components/Text/TextEllipsis/TextEllipsis.es.js +8 -8
- package/dist/components/Text/TextEllipsis/TextEllipsis.es.js.map +1 -1
- package/dist/components/Text/TextEmphasis/TextEmphasis.cjs.js +1 -1
- package/dist/components/Text/TextEmphasis/TextEmphasis.cjs.js.map +1 -1
- package/dist/components/Text/TextEmphasis/TextEmphasis.es.js +17 -17
- 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 +17 -17
- package/dist/components/ThemeProvider.es.js.map +1 -1
- package/dist/components/Tombstone/Tombstone.cjs.js +1 -1
- package/dist/components/Tombstone/Tombstone.cjs.js.map +1 -1
- package/dist/components/Tombstone/Tombstone.es.js +12 -12
- 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 +34 -34
- 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 +30 -30
- 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 +77 -77
- package/dist/components/Waveform/Waveform.es.js.map +1 -1
- package/dist/components/Waveform/WaveformBar.cjs.js +1 -1
- package/dist/components/Waveform/WaveformBar.cjs.js.map +1 -1
- package/dist/components/Waveform/WaveformBar.es.js +22 -22
- package/dist/components/Waveform/WaveformBar.es.js.map +1 -1
- package/dist/hooks/useBreakpoint.cjs.js +1 -1
- package/dist/hooks/useIsClosing.cjs.js +1 -1
- package/dist/hooks/useMergedRef.cjs.js +1 -1
- package/dist/hooks/usePalette.cjs.js +1 -1
- package/package.json +1 -1
- package/dist/_virtual/jsx-runtime.cjs.js +0 -2
- package/dist/_virtual/jsx-runtime.cjs.js.map +0 -1
- package/dist/_virtual/jsx-runtime.es.js +0 -5
- package/dist/_virtual/jsx-runtime.es.js.map +0 -1
- package/dist/_virtual/react-jsx-runtime.development.cjs.js +0 -2
- package/dist/_virtual/react-jsx-runtime.development.cjs.js.map +0 -1
- package/dist/_virtual/react-jsx-runtime.development.es.js +0 -5
- package/dist/_virtual/react-jsx-runtime.development.es.js.map +0 -1
- package/dist/_virtual/react-jsx-runtime.production.cjs.js +0 -2
- package/dist/_virtual/react-jsx-runtime.production.cjs.js.map +0 -1
- package/dist/_virtual/react-jsx-runtime.production.es.js +0 -5
- package/dist/_virtual/react-jsx-runtime.production.es.js.map +0 -1
- package/dist/node_modules/react/cjs/react-jsx-runtime.development.cjs.js +0 -15
- package/dist/node_modules/react/cjs/react-jsx-runtime.development.cjs.js.map +0 -1
- package/dist/node_modules/react/cjs/react-jsx-runtime.development.es.js +0 -245
- package/dist/node_modules/react/cjs/react-jsx-runtime.development.es.js.map +0 -1
- package/dist/node_modules/react/cjs/react-jsx-runtime.production.cjs.js +0 -10
- package/dist/node_modules/react/cjs/react-jsx-runtime.production.cjs.js.map +0 -1
- package/dist/node_modules/react/cjs/react-jsx-runtime.production.es.js +0 -36
- package/dist/node_modules/react/cjs/react-jsx-runtime.production.es.js.map +0 -1
- package/dist/node_modules/react/jsx-runtime.cjs.js +0 -2
- package/dist/node_modules/react/jsx-runtime.cjs.js.map +0 -1
- package/dist/node_modules/react/jsx-runtime.es.js +0 -9
- package/dist/node_modules/react/jsx-runtime.es.js.map +0 -1
|
@@ -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}: {\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
|
+
{"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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"}
|
|
@@ -1,54 +1,54 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { jsx as e, jsxs as h } from "react/jsx-runtime";
|
|
2
2
|
import { Table as a } from "../BaseTable/Table.es.js";
|
|
3
|
-
import { Elevation as
|
|
4
|
-
import { Tombstone as
|
|
5
|
-
import { ChevronUp as
|
|
6
|
-
import { DataTableRow as
|
|
3
|
+
import { Elevation as w } from "../../Elevation/Elevation.es.js";
|
|
4
|
+
import { Tombstone as A } from "../../Tombstone/Tombstone.es.js";
|
|
5
|
+
import { ChevronUp as E } from "../../Icon/IconComponents/ChevronUp.es.js";
|
|
6
|
+
import { DataTableRow as H } from "./DataTableRow.es.js";
|
|
7
7
|
/* empty css */
|
|
8
8
|
/* empty css */
|
|
9
|
-
const
|
|
10
|
-
columns:
|
|
11
|
-
data:
|
|
12
|
-
loading:
|
|
13
|
-
tombstoneComponent:
|
|
14
|
-
error:
|
|
15
|
-
name:
|
|
16
|
-
onRowClick:
|
|
17
|
-
emptyMessage:
|
|
18
|
-
errorMessage:
|
|
19
|
-
loadingRows:
|
|
9
|
+
const R = ({
|
|
10
|
+
columns: d,
|
|
11
|
+
data: o = [],
|
|
12
|
+
loading: p = !1,
|
|
13
|
+
tombstoneComponent: m,
|
|
14
|
+
error: s = !1,
|
|
15
|
+
name: l,
|
|
16
|
+
onRowClick: u,
|
|
17
|
+
emptyMessage: y = "Data Unavailable",
|
|
18
|
+
errorMessage: T = "An error occurred",
|
|
19
|
+
loadingRows: S = 5,
|
|
20
20
|
"data-testid": c,
|
|
21
|
-
memoize:
|
|
22
|
-
sortableColumns:
|
|
23
|
-
sortedBy:
|
|
24
|
-
sortDirection:
|
|
25
|
-
onSort:
|
|
21
|
+
memoize: D = !0,
|
|
22
|
+
sortableColumns: v = [],
|
|
23
|
+
sortedBy: b,
|
|
24
|
+
sortDirection: f,
|
|
25
|
+
onSort: C
|
|
26
26
|
}) => {
|
|
27
|
-
const
|
|
28
|
-
if (!
|
|
29
|
-
const i =
|
|
30
|
-
|
|
31
|
-
},
|
|
32
|
-
return
|
|
33
|
-
|
|
27
|
+
const n = d.filter((r) => !r.isHidden), _ = (r) => {
|
|
28
|
+
if (!C) return;
|
|
29
|
+
const i = b === r.id && f === "ASC" ? "DESC" : "ASC";
|
|
30
|
+
C(r.id, i);
|
|
31
|
+
}, N = (r) => b !== r ? "none" : f === "ASC" ? "ascending" : "descending";
|
|
32
|
+
return s ? /* @__PURE__ */ e(
|
|
33
|
+
g,
|
|
34
34
|
{
|
|
35
|
-
columns:
|
|
36
|
-
message: typeof
|
|
37
|
-
name:
|
|
35
|
+
columns: n,
|
|
36
|
+
message: typeof s == "string" ? s : T,
|
|
37
|
+
name: l,
|
|
38
38
|
testId: c,
|
|
39
39
|
isError: !0
|
|
40
40
|
}
|
|
41
|
-
) :
|
|
41
|
+
) : p ? /* @__PURE__ */ e(
|
|
42
42
|
"div",
|
|
43
43
|
{
|
|
44
44
|
className: "proton-DataTable",
|
|
45
45
|
"data-testid": c,
|
|
46
46
|
"aria-busy": "true",
|
|
47
|
-
"aria-label": `Loading ${
|
|
48
|
-
children: /* @__PURE__ */
|
|
49
|
-
/* @__PURE__ */ e
|
|
50
|
-
/* @__PURE__ */ e
|
|
51
|
-
|
|
47
|
+
"aria-label": `Loading ${l}...`,
|
|
48
|
+
children: /* @__PURE__ */ h(a, { name: l, children: [
|
|
49
|
+
/* @__PURE__ */ e(a.Header, { children: n.map((r) => /* @__PURE__ */ e(a.Column, { id: r.id, children: r.header }, r.id)) }),
|
|
50
|
+
/* @__PURE__ */ e(a.Body, { children: Array.from({ length: S }).map((r, t) => /* @__PURE__ */ e(a.Row, { children: n.map((i) => /* @__PURE__ */ e(a.Cell, { children: m || /* @__PURE__ */ e(
|
|
51
|
+
A,
|
|
52
52
|
{
|
|
53
53
|
height: "1rem",
|
|
54
54
|
width: (
|
|
@@ -59,33 +59,33 @@ const A = ({
|
|
|
59
59
|
) }, i.id)) }, `loading-${t}`)) })
|
|
60
60
|
] })
|
|
61
61
|
}
|
|
62
|
-
) : !
|
|
63
|
-
|
|
62
|
+
) : !o || o.length === 0 ? /* @__PURE__ */ e(
|
|
63
|
+
g,
|
|
64
64
|
{
|
|
65
|
-
columns:
|
|
66
|
-
message:
|
|
67
|
-
name:
|
|
65
|
+
columns: n,
|
|
66
|
+
message: y,
|
|
67
|
+
name: l,
|
|
68
68
|
testId: c
|
|
69
69
|
}
|
|
70
|
-
) : /* @__PURE__ */ e
|
|
71
|
-
/* @__PURE__ */ e
|
|
72
|
-
const t =
|
|
73
|
-
return /* @__PURE__ */ e
|
|
70
|
+
) : /* @__PURE__ */ e("div", { className: "proton-DataTable", "data-testid": c, children: /* @__PURE__ */ h(a, { name: l, children: [
|
|
71
|
+
/* @__PURE__ */ e(a.Header, { children: n.map((r) => {
|
|
72
|
+
const t = v.includes(r.id), i = N(r.id);
|
|
73
|
+
return /* @__PURE__ */ e(
|
|
74
74
|
a.Column,
|
|
75
75
|
{
|
|
76
76
|
id: r.id,
|
|
77
77
|
...t && { "aria-sort": i },
|
|
78
|
-
children: /* @__PURE__ */
|
|
78
|
+
children: /* @__PURE__ */ h("span", { className: "proton-DataTable__header-content", children: [
|
|
79
79
|
r.header,
|
|
80
|
-
t && /* @__PURE__ */ e
|
|
80
|
+
t && /* @__PURE__ */ e(
|
|
81
81
|
"button",
|
|
82
82
|
{
|
|
83
83
|
className: "proton-DataTable__sort-button",
|
|
84
|
-
onClick: () =>
|
|
84
|
+
onClick: () => _(r),
|
|
85
85
|
"aria-label": `Sort by ${r.header}: ${i}`,
|
|
86
86
|
type: "button",
|
|
87
|
-
children: /* @__PURE__ */ e
|
|
88
|
-
|
|
87
|
+
children: /* @__PURE__ */ e(
|
|
88
|
+
E,
|
|
89
89
|
{
|
|
90
90
|
size: 12,
|
|
91
91
|
color: i === "ascending" ? "var(--proton-color__primary)" : "currentColor"
|
|
@@ -98,42 +98,42 @@ const A = ({
|
|
|
98
98
|
r.id
|
|
99
99
|
);
|
|
100
100
|
}) }),
|
|
101
|
-
/* @__PURE__ */ e
|
|
101
|
+
/* @__PURE__ */ e(a.Body, { children: o.map((r, t) => {
|
|
102
102
|
const i = r;
|
|
103
|
-
return /* @__PURE__ */ e
|
|
104
|
-
|
|
103
|
+
return /* @__PURE__ */ e(
|
|
104
|
+
H,
|
|
105
105
|
{
|
|
106
106
|
row: r,
|
|
107
|
-
columns:
|
|
107
|
+
columns: n,
|
|
108
108
|
rowIndex: t,
|
|
109
|
-
onRowClick:
|
|
110
|
-
memoize:
|
|
109
|
+
onRowClick: u,
|
|
110
|
+
memoize: D,
|
|
111
111
|
dataTestId: i.dataTestId
|
|
112
112
|
},
|
|
113
113
|
i.key ?? t
|
|
114
114
|
);
|
|
115
115
|
}) })
|
|
116
116
|
] }) });
|
|
117
|
-
},
|
|
118
|
-
columns:
|
|
119
|
-
message:
|
|
120
|
-
name:
|
|
121
|
-
testId:
|
|
122
|
-
isError:
|
|
123
|
-
}) => /* @__PURE__ */ e
|
|
124
|
-
/* @__PURE__ */ e
|
|
125
|
-
/* @__PURE__ */ e
|
|
117
|
+
}, g = ({
|
|
118
|
+
columns: d,
|
|
119
|
+
message: o,
|
|
120
|
+
name: p,
|
|
121
|
+
testId: m,
|
|
122
|
+
isError: s = !1
|
|
123
|
+
}) => /* @__PURE__ */ e("div", { className: "proton-DataTable", "data-testid": m, children: /* @__PURE__ */ h(a, { name: p, children: [
|
|
124
|
+
/* @__PURE__ */ e(a.Header, { children: d.map((l) => /* @__PURE__ */ e(a.Column, { id: l.id, children: l.header }, l.id)) }),
|
|
125
|
+
/* @__PURE__ */ e(a.Body, { children: /* @__PURE__ */ e(a.Row, { children: /* @__PURE__ */ e(a.Cell, { colSpan: (d == null ? void 0 : d.length) || 1, children: /* @__PURE__ */ e(
|
|
126
126
|
"div",
|
|
127
127
|
{
|
|
128
128
|
className: "proton-DataTable__message-cell",
|
|
129
|
-
role:
|
|
129
|
+
role: s ? "alert" : "status",
|
|
130
130
|
"aria-live": "polite",
|
|
131
|
-
children: /* @__PURE__ */ e
|
|
131
|
+
children: /* @__PURE__ */ e(w, { children: /* @__PURE__ */ e("div", { className: "proton-DataTable__empty-cell", children: o }) })
|
|
132
132
|
}
|
|
133
133
|
) }) }) })
|
|
134
134
|
] }) });
|
|
135
|
-
|
|
135
|
+
R.displayName = "ProtonUIDataTable";
|
|
136
136
|
export {
|
|
137
|
-
|
|
137
|
+
R as DataTable
|
|
138
138
|
};
|
|
139
139
|
//# sourceMappingURL=DataTable.es.js.map
|
|
@@ -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}: {\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
|
+
{"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("
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("react/jsx-runtime"),u=require("react"),s=require("../../../utils/deepEqual.cjs.js"),b=require("../BaseTable/Collection/useTableCollection.cjs.js"),w=require("../BaseTable/elements/TableRow.cjs.js"),R=require("../BaseTable/elements/TableCell.cjs.js"),r=({row:a,columns:e,rowIndex:t,onRowClick:l,dataTestId:c})=>o.jsx(w.TableRow,{dataTestId:c,ariaRowIndex:b.calculateAriaRowIndex(t,e.length>0),onClick:l?()=>l(a):void 0,children:e.map((n,d)=>o.jsx(R.TableCell,{columnIndex:d+1,children:n.cell(a)},n.id))}),T=u.memo(r,(a,e)=>a.rowIndex===e.rowIndex&&s.deepEqual(a.row,e.row)),i=({memoize:a,...e})=>{if(a){const t=T;return o.jsx(t,{...e})}return o.jsx(r,{...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, 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":"
|
|
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":"2VAgBMA,EAAwB,CAAK,CACjC,IAAAC,EACA,QAAAC,EACA,SAAAC,EACA,WAAAC,EACA,WAAAC,CACF,IAEIC,EAAAA,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,UACnBC,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,MAACc,EAAA,CAAa,GAAGD,CAAA,CAAO,CACjC,CACA,OAAOb,MAACN,EAAA,CAAuB,GAAGmB,CAAA,CAAO,CAC3C,EAEAF,EAAa,YAAc"}
|
|
@@ -1,38 +1,32 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { jsx as r } from "react/jsx-runtime";
|
|
2
2
|
import { memo as d } from "react";
|
|
3
|
-
import { deepEqual as
|
|
4
|
-
import { calculateAriaRowIndex as
|
|
5
|
-
import { TableRow as
|
|
6
|
-
import { TableCell as
|
|
3
|
+
import { deepEqual as w } from "../../../utils/deepEqual.es.js";
|
|
4
|
+
import { calculateAriaRowIndex as c } from "../BaseTable/Collection/useTableCollection.es.js";
|
|
5
|
+
import { TableRow as R } from "../BaseTable/elements/TableRow.es.js";
|
|
6
|
+
import { TableCell as f } from "../BaseTable/elements/TableCell.es.js";
|
|
7
7
|
const n = ({
|
|
8
8
|
row: e,
|
|
9
9
|
columns: o,
|
|
10
10
|
rowIndex: a,
|
|
11
11
|
onRowClick: t,
|
|
12
12
|
dataTestId: i
|
|
13
|
-
}) => /* @__PURE__ */ r
|
|
14
|
-
|
|
13
|
+
}) => /* @__PURE__ */ r(
|
|
14
|
+
R,
|
|
15
15
|
{
|
|
16
16
|
dataTestId: i,
|
|
17
|
-
ariaRowIndex:
|
|
17
|
+
ariaRowIndex: c(a, o.length > 0),
|
|
18
18
|
onClick: t ? () => t(e) : void 0,
|
|
19
|
-
children: o.map((m, l) => /* @__PURE__ */ r
|
|
19
|
+
children: o.map((m, l) => /* @__PURE__ */ r(f, { columnIndex: l + 1, children: m.cell(e) }, m.id))
|
|
20
20
|
}
|
|
21
|
-
),
|
|
21
|
+
), I = d(
|
|
22
22
|
n,
|
|
23
|
-
(e, o) => e.rowIndex === o.rowIndex &&
|
|
24
|
-
),
|
|
23
|
+
(e, o) => e.rowIndex === o.rowIndex && w(e.row, o.row)
|
|
24
|
+
), b = ({
|
|
25
25
|
memoize: e,
|
|
26
26
|
...o
|
|
27
|
-
}) => {
|
|
28
|
-
|
|
29
|
-
const a = R;
|
|
30
|
-
return /* @__PURE__ */ r.jsx(a, { ...o });
|
|
31
|
-
}
|
|
32
|
-
return /* @__PURE__ */ r.jsx(n, { ...o });
|
|
33
|
-
};
|
|
34
|
-
f.displayName = "ProtonUIDataTableRow";
|
|
27
|
+
}) => e ? /* @__PURE__ */ r(I, { ...o }) : /* @__PURE__ */ r(n, { ...o });
|
|
28
|
+
b.displayName = "ProtonUIDataTableRow";
|
|
35
29
|
export {
|
|
36
|
-
|
|
30
|
+
b as DataTableRow
|
|
37
31
|
};
|
|
38
32
|
//# sourceMappingURL=DataTableRow.es.js.map
|
|
@@ -1 +1 @@
|
|
|
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"
|
|
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"],"mappings":";;;;;;AAgBA,MAAMA,IAAwB,CAAK;AAAA,EACjC,KAAAC;AAAA,EACA,SAAAC;AAAA,EACA,UAAAC;AAAA,EACA,YAAAC;AAAA,EACA,YAAAC;AACF,MAEI,gBAAAC;AAAA,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,wBACnBC,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,MACMD,IAIK,gBAAAZ,EAHaM,GAGZ,EAAa,GAAGO,EAAA,CAAO,IAE1B,gBAAAb,EAACN,GAAA,EAAuB,GAAGmB,EAAA,CAAO;AAG3CF,EAAa,cAAc;"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const m=require("
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const m=require("react/jsx-runtime"),n=require("react");function x({initialDurationSeconds:u=0,durationSeconds:a=20,children:i="Complete",label:e="",showTimer:s=!0,"data-testid":f}){const c=()=>u>0?Math.max(0,a-u):a,[r,l]=n.useState(()=>c()),t=n.useRef(null);return n.useEffect(()=>{if(!(r<=0))return t.current=setInterval(()=>{l(o=>o<=1?(t.current&&(clearInterval(t.current),t.current=null),0):o-1)},1e3),()=>{t.current&&(clearInterval(t.current),t.current=null)}},[r]),n.useEffect(()=>{l(c())},[a,u]),r<=0?m.jsx("span",{"data-testid":f,"aria-label":typeof i=="string"?i:void 0,children:i}):m.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":"
|
|
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":"wIA2CO,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,IAAC,OAAA,CACC,cAAaT,EACb,aAAY,OAAOH,GAAa,SAAWA,EAAW,OAErD,SAAAA,CAAA,CAAA,EAMLa,EAAAA,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,6 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { useState as
|
|
3
|
-
function
|
|
1
|
+
import { jsx as c, jsxs as p } from "react/jsx-runtime";
|
|
2
|
+
import { useState as x, useRef as v, useEffect as m } from "react";
|
|
3
|
+
function I({
|
|
4
4
|
initialDurationSeconds: n = 0,
|
|
5
5
|
durationSeconds: a = 20,
|
|
6
6
|
children: u = "Complete",
|
|
@@ -8,24 +8,24 @@ function v({
|
|
|
8
8
|
showTimer: i = !0,
|
|
9
9
|
"data-testid": f
|
|
10
10
|
}) {
|
|
11
|
-
const
|
|
12
|
-
return
|
|
11
|
+
const l = () => n > 0 ? Math.max(0, a - n) : a, [r, s] = x(() => l()), t = v(null);
|
|
12
|
+
return m(() => {
|
|
13
13
|
if (!(r <= 0))
|
|
14
14
|
return t.current = setInterval(() => {
|
|
15
|
-
|
|
15
|
+
s((o) => o <= 1 ? (t.current && (clearInterval(t.current), t.current = null), 0) : o - 1);
|
|
16
16
|
}, 1e3), () => {
|
|
17
17
|
t.current && (clearInterval(t.current), t.current = null);
|
|
18
18
|
};
|
|
19
|
-
}, [r]),
|
|
20
|
-
l(
|
|
21
|
-
}, [a, n]), r <= 0 ? /* @__PURE__ */
|
|
19
|
+
}, [r]), m(() => {
|
|
20
|
+
s(l());
|
|
21
|
+
}, [a, n]), r <= 0 ? /* @__PURE__ */ c(
|
|
22
22
|
"span",
|
|
23
23
|
{
|
|
24
24
|
"data-testid": f,
|
|
25
25
|
"aria-label": typeof u == "string" ? u : void 0,
|
|
26
26
|
children: u
|
|
27
27
|
}
|
|
28
|
-
) : /* @__PURE__ */
|
|
28
|
+
) : /* @__PURE__ */ p(
|
|
29
29
|
"span",
|
|
30
30
|
{
|
|
31
31
|
role: "timer",
|
|
@@ -40,8 +40,8 @@ function v({
|
|
|
40
40
|
}
|
|
41
41
|
);
|
|
42
42
|
}
|
|
43
|
-
|
|
43
|
+
I.displayName = "ProtonUITextCountdown";
|
|
44
44
|
export {
|
|
45
|
-
|
|
45
|
+
I as TextCountdown
|
|
46
46
|
};
|
|
47
47
|
//# sourceMappingURL=TextCountdown.es.js.map
|
|
@@ -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;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,
|
|
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,IAEZ,gBAAAO;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,eAAaT;AAAA,MACb,cAAY,OAAOH,KAAa,WAAWA,IAAW;AAAA,MAErD,UAAAA;AAAA,IAAA;AAAA,EAAA,IAML,gBAAAa;AAAA,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,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("react/jsx-runtime");;/* empty css */const o=require("../../../utils/string.cjs.js"),p=({children:e,maxWidth:i,singleLine:s=!0,lines:t=1,title:l,"data-testid":r})=>n.jsx("div",{className:o.csx("proton-TextEllipsis",s||t===1?"proton-TextEllipsis--single-line":t>1?"proton-TextEllipsis--multi-line":""),style:{maxWidth:i,WebkitLineClamp:t},title:l,"data-testid":r,children:e});exports.TextEllipsis=p;
|
|
2
2
|
//# sourceMappingURL=TextEllipsis.cjs.js.map
|
|
@@ -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 * Test id for the component.\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":"
|
|
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 * Test id for the component.\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":"0MAgDaA,EAAe,CAAC,CAC3B,SAAAC,EACA,SAAAC,EACA,WAAAC,EAAa,GACb,MAAAC,EAAQ,EACR,MAAAC,EACA,cAAeC,CACjB,IAEIC,EAAAA,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"}
|