jfs-components 0.1.12 → 0.1.17
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/CHANGELOG.md +15 -0
- package/lib/commonjs/components/ActionFooter/ActionFooter.js +7 -24
- package/lib/commonjs/components/ActionTile/ActionTile.js +10 -10
- package/lib/commonjs/components/AmountInput/AmountInput.js +3 -3
- package/lib/commonjs/components/AreaLineChart/AreaLineChart.js +2 -2
- package/lib/commonjs/components/Attached/Attached.js +1 -1
- package/lib/commonjs/components/Avatar/Avatar.js +10 -10
- package/lib/commonjs/components/AvatarGroup/AvatarGroup.js +9 -9
- package/lib/commonjs/components/Badge/Badge.js +12 -12
- package/lib/commonjs/components/BenefitCard/BenefitCard.js +95 -21
- package/lib/commonjs/components/BottomNav/BottomNav.js +2 -2
- package/lib/commonjs/components/BottomNavItem/BottomNavItem.js +3 -3
- package/lib/commonjs/components/Button/Button.js +31 -19
- package/lib/commonjs/components/Card/Card.js +20 -20
- package/lib/commonjs/components/CardAdvisory/CardAdvisory.js +6 -6
- package/lib/commonjs/components/CardCTA/CardCTA.js +21 -21
- package/lib/commonjs/components/CardFeedback/CardFeedback.js +18 -18
- package/lib/commonjs/components/CardFinancialCondition/CardFinancialCondition.js +7 -7
- package/lib/commonjs/components/CardInsight/CardInsight.js +1 -2
- package/lib/commonjs/components/Carousel/Carousel.js +18 -12
- package/lib/commonjs/components/CarouselCardAccounts/CarouselCardAccounts.js +75 -0
- package/lib/commonjs/components/Checkbox/Checkbox.js +6 -13
- package/lib/commonjs/components/ChipGroup/ChipGroup.js +1 -1
- package/lib/commonjs/components/ChipSelect/ChipSelect.js +11 -11
- package/lib/commonjs/components/CircularProgressBar/CircularProgressBar.js +5 -5
- package/lib/commonjs/components/CircularProgressBarDoted/CircularProgressBarDoted.js +8 -8
- package/lib/commonjs/components/CircularRating/CircularRating.js +3 -3
- package/lib/commonjs/components/CompareTable/CompareTable.js +16 -16
- package/lib/commonjs/components/DebitCard/DebitCard.js +18 -18
- package/lib/commonjs/components/Disclaimer/Disclaimer.js +5 -5
- package/lib/commonjs/components/DonutChart/DonutChart.js +11 -11
- package/lib/commonjs/components/Drawer/Drawer.js +60 -60
- package/lib/commonjs/components/Dropdown/Dropdown.js +22 -23
- package/lib/commonjs/components/DropdownInput/DropdownInput.js +10 -10
- package/lib/commonjs/components/EmptyState/EmptyState.js +14 -14
- package/lib/commonjs/components/FilterBar/FilterBar.js +2 -2
- package/lib/commonjs/components/Form/Form.js +3 -3
- package/lib/commonjs/components/FormField/FormField.js +6 -6
- package/lib/commonjs/components/FullscreenModal/FullscreenModal.js +24 -24
- package/lib/commonjs/components/Gauge/Gauge.js +8 -8
- package/lib/commonjs/components/HoldingsCard/HoldingsCard.js +10 -10
- package/lib/commonjs/components/Icon/Icon.js +6 -6
- package/lib/commonjs/components/IconCapsule/IconCapsule.js +7 -7
- package/lib/commonjs/components/InputSearch/InputSearch.js +9 -9
- package/lib/commonjs/components/InstitutionBadge/InstitutionBadge.js +3 -3
- package/lib/commonjs/components/ListGroup/ListGroup.js +8 -8
- package/lib/commonjs/components/ListItem/ListItem.js +10 -10
- package/lib/commonjs/components/LottieIntroBlock/LottieIntroBlock.js +13 -13
- package/lib/commonjs/components/LottiePlayer/LottiePlayer.js +2 -2
- package/lib/commonjs/components/LottiePlayer/LottiePlayer.web.js +2 -2
- package/lib/commonjs/components/MediaCard/MediaCard.js +21 -21
- package/lib/commonjs/components/MessageField/MessageField.js +8 -8
- package/lib/commonjs/components/MoneyValue/MoneyValue.js +7 -7
- package/lib/commonjs/components/NavArrow/NavArrow.js +8 -8
- package/lib/commonjs/components/NoteInput/NoteInput.js +12 -12
- package/lib/commonjs/components/Nudge/Nudge.js +20 -20
- package/lib/commonjs/components/OTP/OTP.js +15 -15
- package/lib/commonjs/components/PageHero/PageHero.js +16 -16
- package/lib/commonjs/components/PaymentFeedback/PaymentFeedback.js +23 -23
- package/lib/commonjs/components/Popup/Popup.js +1 -1
- package/lib/commonjs/components/ProgressBadge/ProgressBadge.js +5 -5
- package/lib/commonjs/components/Radio/Radio.js +8 -8
- package/lib/commonjs/components/RechargeCard/RechargeCard.js +31 -31
- package/lib/commonjs/components/SavingsGoalSummary/SavingsGoalSummary.js +59 -12
- package/lib/commonjs/components/ScrollArea/ScrollArea.js +126 -0
- package/lib/commonjs/components/Section/Section.js +24 -24
- package/lib/commonjs/components/StatusHero/StatusHero.js +14 -14
- package/lib/commonjs/components/Stepper/Step.js +16 -16
- package/lib/commonjs/components/Stepper/StepLabel.js +16 -16
- package/lib/commonjs/components/Stepper/Stepper.js +3 -3
- package/lib/commonjs/components/SuggestiveSearch/SuggestiveSearch.js +10 -10
- package/lib/commonjs/components/SupportText/SupportText.js +6 -6
- package/lib/commonjs/components/SupportText/SupportTextIcon.js +2 -2
- package/lib/commonjs/components/Text/Text.js +14 -2
- package/lib/commonjs/components/TextInput/TextInput.js +14 -14
- package/lib/commonjs/components/TextSegment/TextSegment.js +14 -2
- package/lib/commonjs/components/ThreadHero/ThreadHero.js +17 -17
- package/lib/commonjs/components/Title/Title.js +38 -16
- package/lib/commonjs/components/Toast/Toast.js +15 -15
- package/lib/commonjs/components/Toggle/Toggle.js +3 -11
- package/lib/commonjs/components/Tooltip/Tooltip.js +12 -12
- package/lib/commonjs/components/TransactionBubble/TransactionBubble.js +13 -13
- package/lib/commonjs/components/TransactionDetails/TransactionDetails.js +10 -10
- package/lib/commonjs/components/TransactionStatus/TransactionStatus.js +9 -9
- package/lib/commonjs/components/UpiHandle/UpiHandle.js +15 -15
- package/lib/commonjs/components/index.js +14 -0
- package/lib/commonjs/design-tokens/Coin Variables-variables-full.json +1 -1
- package/lib/commonjs/design-tokens/figma-modes.generated.js +50 -42
- package/lib/commonjs/icons/components/Icon4g.js +19 -0
- package/lib/commonjs/icons/components/Icon4gltedata.js +19 -0
- package/lib/commonjs/icons/components/Icon5g.js +19 -0
- package/lib/commonjs/icons/components/Icon5gdoubleplus.js +19 -0
- package/lib/commonjs/icons/components/Icon5gplus.js +19 -0
- package/lib/commonjs/icons/components/IconAdblocker.js +19 -0
- package/lib/commonjs/icons/components/IconAdblockplus.js +19 -0
- package/lib/commonjs/icons/components/IconAnalytics.js +19 -0
- package/lib/commonjs/icons/components/IconAnalyticsdata.js +19 -0
- package/lib/commonjs/icons/components/IconAnalyticspiechart.js +19 -0
- package/lib/commonjs/icons/components/IconAnalyticspiecharttree.js +19 -0
- package/lib/commonjs/icons/components/IconAnalyticspiecharttwo.js +19 -0
- package/lib/commonjs/icons/components/IconCompoundinterest.js +19 -0
- package/lib/commonjs/icons/components/IconConsumptionaccounted.js +19 -0
- package/lib/commonjs/icons/components/IconConsumptionaverage.js +19 -0
- package/lib/commonjs/icons/components/IconConsumptionhigh.js +19 -0
- package/lib/commonjs/icons/components/IconConsumptionlow.js +19 -0
- package/lib/commonjs/icons/components/IconConsumptionunaccounted.js +19 -0
- package/lib/commonjs/icons/components/IconCsvdoc.js +19 -0
- package/lib/commonjs/icons/components/IconDatabase.js +19 -0
- package/lib/commonjs/icons/components/IconDigitalecosystem.js +19 -0
- package/lib/commonjs/icons/components/IconDigitalselfservice.js +19 -0
- package/lib/commonjs/icons/components/IconDistribution.js +19 -0
- package/lib/commonjs/icons/components/IconDocument.js +19 -0
- package/lib/commonjs/icons/components/IconDocumentdoc.js +19 -0
- package/lib/commonjs/icons/components/IconDocumentjpg.js +19 -0
- package/lib/commonjs/icons/components/IconDocumentodt.js +19 -0
- package/lib/commonjs/icons/components/IconDocumentpdf.js +19 -0
- package/lib/commonjs/icons/components/IconDocumentpng.js +19 -0
- package/lib/commonjs/icons/components/IconDocumentraw.js +19 -0
- package/lib/commonjs/icons/components/IconDocumentrtf.js +19 -0
- package/lib/commonjs/icons/components/IconDocumentsettings.js +19 -0
- package/lib/commonjs/icons/components/IconDocumenttif.js +19 -0
- package/lib/commonjs/icons/components/IconDocumenttxt.js +19 -0
- package/lib/commonjs/icons/components/IconDocumentunknown.js +19 -0
- package/lib/commonjs/icons/components/IconDocumentxls.js +19 -0
- package/lib/commonjs/icons/components/IconDocumentxlsx.js +19 -0
- package/lib/commonjs/icons/components/IconFilerequest.js +19 -0
- package/lib/commonjs/icons/components/IconFilesend.js +19 -0
- package/lib/commonjs/icons/components/IconFileshare.js +19 -0
- package/lib/commonjs/icons/components/IconFindinpage.js +19 -0
- package/lib/commonjs/icons/components/IconFolder.js +19 -0
- package/lib/commonjs/icons/components/IconFolderbookmarks.js +19 -0
- package/lib/commonjs/icons/components/IconFolderfavorites.js +19 -0
- package/lib/commonjs/icons/components/IconFolderlocked.js +19 -0
- package/lib/commonjs/icons/components/IconFoldermovefiles.js +19 -0
- package/lib/commonjs/icons/components/IconFolderpublic.js +19 -0
- package/lib/commonjs/icons/components/IconFolderrated.js +19 -0
- package/lib/commonjs/icons/components/IconFolderrequest.js +19 -0
- package/lib/commonjs/icons/components/IconForm.js +19 -0
- package/lib/commonjs/icons/components/IconFormadd.js +19 -0
- package/lib/commonjs/icons/components/IconForms.js +19 -0
- package/lib/commonjs/icons/components/IconGraphincreasing.js +19 -0
- package/lib/commonjs/icons/components/IconGraphlow.js +19 -0
- package/lib/commonjs/icons/components/IconGraphtable.js +19 -0
- package/lib/commonjs/icons/components/IconHealthreport.js +19 -0
- package/lib/commonjs/icons/components/IconHubmode.js +19 -0
- package/lib/commonjs/icons/components/IconInfrastructure.js +19 -0
- package/lib/commonjs/icons/components/IconInterestlow.js +19 -0
- package/lib/commonjs/icons/components/IconLte.js +19 -0
- package/lib/commonjs/icons/components/IconNetworkfuture.js +19 -0
- package/lib/commonjs/icons/components/IconPagesettings.js +19 -0
- package/lib/commonjs/icons/components/IconPptxdoc.js +19 -0
- package/lib/commonjs/icons/components/IconPreferrednumber.js +19 -0
- package/lib/commonjs/icons/components/IconPremiumnumber.js +19 -0
- package/lib/commonjs/icons/components/IconProjection.js +19 -0
- package/lib/commonjs/icons/components/IconRequest.js +19 -0
- package/lib/commonjs/icons/components/IconRoutestraffic.js +19 -0
- package/lib/commonjs/icons/components/IconTechnology.js +19 -0
- package/lib/commonjs/icons/components/IconVolte.js +19 -0
- package/lib/commonjs/icons/components/IconVonr.js +19 -0
- package/lib/commonjs/icons/components/IconVowifi.js +19 -0
- package/lib/commonjs/icons/components/IconVpndata.js +19 -0
- package/lib/commonjs/icons/components/index.js +803 -0
- package/lib/commonjs/icons/registry.js +2 -2
- package/lib/commonjs/utils/index.js +25 -0
- package/lib/commonjs/utils/react-utils.js +62 -0
- package/lib/commonjs/utils/shadow.js +200 -0
- package/lib/module/components/ActionFooter/ActionFooter.js +7 -24
- package/lib/module/components/ActionTile/ActionTile.js +10 -10
- package/lib/module/components/AmountInput/AmountInput.js +3 -3
- package/lib/module/components/AreaLineChart/AreaLineChart.js +2 -2
- package/lib/module/components/Attached/Attached.js +1 -1
- package/lib/module/components/Avatar/Avatar.js +10 -10
- package/lib/module/components/AvatarGroup/AvatarGroup.js +9 -9
- package/lib/module/components/Badge/Badge.js +12 -12
- package/lib/module/components/BenefitCard/BenefitCard.js +95 -21
- package/lib/module/components/BottomNav/BottomNav.js +2 -2
- package/lib/module/components/BottomNavItem/BottomNavItem.js +3 -3
- package/lib/module/components/Button/Button.js +32 -20
- package/lib/module/components/Card/Card.js +20 -20
- package/lib/module/components/CardAdvisory/CardAdvisory.js +6 -6
- package/lib/module/components/CardCTA/CardCTA.js +21 -21
- package/lib/module/components/CardFeedback/CardFeedback.js +18 -18
- package/lib/module/components/CardFinancialCondition/CardFinancialCondition.js +7 -7
- package/lib/module/components/CardInsight/CardInsight.js +1 -2
- package/lib/module/components/Carousel/Carousel.js +18 -12
- package/lib/module/components/CarouselCardAccounts/CarouselCardAccounts.js +71 -0
- package/lib/module/components/Checkbox/Checkbox.js +2 -9
- package/lib/module/components/ChipGroup/ChipGroup.js +1 -1
- package/lib/module/components/ChipSelect/ChipSelect.js +11 -11
- package/lib/module/components/CircularProgressBar/CircularProgressBar.js +5 -5
- package/lib/module/components/CircularProgressBarDoted/CircularProgressBarDoted.js +8 -8
- package/lib/module/components/CircularRating/CircularRating.js +3 -3
- package/lib/module/components/CompareTable/CompareTable.js +16 -16
- package/lib/module/components/DebitCard/DebitCard.js +18 -18
- package/lib/module/components/Disclaimer/Disclaimer.js +5 -5
- package/lib/module/components/DonutChart/DonutChart.js +11 -11
- package/lib/module/components/Drawer/Drawer.js +60 -60
- package/lib/module/components/Dropdown/Dropdown.js +22 -23
- package/lib/module/components/DropdownInput/DropdownInput.js +10 -10
- package/lib/module/components/EmptyState/EmptyState.js +14 -14
- package/lib/module/components/FilterBar/FilterBar.js +2 -2
- package/lib/module/components/Form/Form.js +3 -3
- package/lib/module/components/FormField/FormField.js +6 -6
- package/lib/module/components/FullscreenModal/FullscreenModal.js +24 -24
- package/lib/module/components/Gauge/Gauge.js +8 -8
- package/lib/module/components/HoldingsCard/HoldingsCard.js +10 -10
- package/lib/module/components/Icon/Icon.js +6 -6
- package/lib/module/components/IconCapsule/IconCapsule.js +7 -7
- package/lib/module/components/InputSearch/InputSearch.js +9 -9
- package/lib/module/components/InstitutionBadge/InstitutionBadge.js +3 -3
- package/lib/module/components/ListGroup/ListGroup.js +8 -8
- package/lib/module/components/ListItem/ListItem.js +10 -10
- package/lib/module/components/LottieIntroBlock/LottieIntroBlock.js +13 -13
- package/lib/module/components/LottiePlayer/LottiePlayer.js +2 -2
- package/lib/module/components/LottiePlayer/LottiePlayer.web.js +2 -2
- package/lib/module/components/MediaCard/MediaCard.js +21 -21
- package/lib/module/components/MessageField/MessageField.js +8 -8
- package/lib/module/components/MoneyValue/MoneyValue.js +7 -7
- package/lib/module/components/NavArrow/NavArrow.js +8 -8
- package/lib/module/components/NoteInput/NoteInput.js +12 -12
- package/lib/module/components/Nudge/Nudge.js +20 -20
- package/lib/module/components/OTP/OTP.js +15 -15
- package/lib/module/components/PageHero/PageHero.js +16 -16
- package/lib/module/components/PaymentFeedback/PaymentFeedback.js +23 -23
- package/lib/module/components/Popup/Popup.js +1 -1
- package/lib/module/components/ProgressBadge/ProgressBadge.js +5 -5
- package/lib/module/components/Radio/Radio.js +9 -9
- package/lib/module/components/RechargeCard/RechargeCard.js +31 -31
- package/lib/module/components/SavingsGoalSummary/SavingsGoalSummary.js +60 -13
- package/lib/module/components/ScrollArea/ScrollArea.js +121 -0
- package/lib/module/components/Section/Section.js +24 -24
- package/lib/module/components/StatusHero/StatusHero.js +14 -14
- package/lib/module/components/Stepper/Step.js +16 -16
- package/lib/module/components/Stepper/StepLabel.js +16 -16
- package/lib/module/components/Stepper/Stepper.js +3 -3
- package/lib/module/components/SuggestiveSearch/SuggestiveSearch.js +10 -10
- package/lib/module/components/SupportText/SupportText.js +6 -6
- package/lib/module/components/SupportText/SupportTextIcon.js +2 -2
- package/lib/module/components/Text/Text.js +15 -3
- package/lib/module/components/TextInput/TextInput.js +14 -14
- package/lib/module/components/TextSegment/TextSegment.js +15 -3
- package/lib/module/components/ThreadHero/ThreadHero.js +17 -17
- package/lib/module/components/Title/Title.js +39 -17
- package/lib/module/components/Toast/Toast.js +15 -15
- package/lib/module/components/Toggle/Toggle.js +4 -12
- package/lib/module/components/Tooltip/Tooltip.js +12 -12
- package/lib/module/components/TransactionBubble/TransactionBubble.js +13 -13
- package/lib/module/components/TransactionDetails/TransactionDetails.js +10 -10
- package/lib/module/components/TransactionStatus/TransactionStatus.js +9 -9
- package/lib/module/components/UpiHandle/UpiHandle.js +15 -15
- package/lib/module/components/index.js +2 -0
- package/lib/module/design-tokens/Coin Variables-variables-full.json +1 -1
- package/lib/module/design-tokens/figma-modes.generated.js +50 -42
- package/lib/module/icons/components/Icon4g.js +12 -0
- package/lib/module/icons/components/Icon4gltedata.js +12 -0
- package/lib/module/icons/components/Icon5g.js +12 -0
- package/lib/module/icons/components/Icon5gdoubleplus.js +12 -0
- package/lib/module/icons/components/Icon5gplus.js +12 -0
- package/lib/module/icons/components/IconAdblocker.js +12 -0
- package/lib/module/icons/components/IconAdblockplus.js +12 -0
- package/lib/module/icons/components/IconAnalytics.js +12 -0
- package/lib/module/icons/components/IconAnalyticsdata.js +12 -0
- package/lib/module/icons/components/IconAnalyticspiechart.js +12 -0
- package/lib/module/icons/components/IconAnalyticspiecharttree.js +12 -0
- package/lib/module/icons/components/IconAnalyticspiecharttwo.js +12 -0
- package/lib/module/icons/components/IconCompoundinterest.js +12 -0
- package/lib/module/icons/components/IconConsumptionaccounted.js +12 -0
- package/lib/module/icons/components/IconConsumptionaverage.js +12 -0
- package/lib/module/icons/components/IconConsumptionhigh.js +12 -0
- package/lib/module/icons/components/IconConsumptionlow.js +12 -0
- package/lib/module/icons/components/IconConsumptionunaccounted.js +12 -0
- package/lib/module/icons/components/IconCsvdoc.js +12 -0
- package/lib/module/icons/components/IconDatabase.js +12 -0
- package/lib/module/icons/components/IconDigitalecosystem.js +12 -0
- package/lib/module/icons/components/IconDigitalselfservice.js +12 -0
- package/lib/module/icons/components/IconDistribution.js +12 -0
- package/lib/module/icons/components/IconDocument.js +12 -0
- package/lib/module/icons/components/IconDocumentdoc.js +12 -0
- package/lib/module/icons/components/IconDocumentjpg.js +12 -0
- package/lib/module/icons/components/IconDocumentodt.js +12 -0
- package/lib/module/icons/components/IconDocumentpdf.js +12 -0
- package/lib/module/icons/components/IconDocumentpng.js +12 -0
- package/lib/module/icons/components/IconDocumentraw.js +12 -0
- package/lib/module/icons/components/IconDocumentrtf.js +12 -0
- package/lib/module/icons/components/IconDocumentsettings.js +12 -0
- package/lib/module/icons/components/IconDocumenttif.js +12 -0
- package/lib/module/icons/components/IconDocumenttxt.js +12 -0
- package/lib/module/icons/components/IconDocumentunknown.js +12 -0
- package/lib/module/icons/components/IconDocumentxls.js +12 -0
- package/lib/module/icons/components/IconDocumentxlsx.js +12 -0
- package/lib/module/icons/components/IconFilerequest.js +12 -0
- package/lib/module/icons/components/IconFilesend.js +12 -0
- package/lib/module/icons/components/IconFileshare.js +12 -0
- package/lib/module/icons/components/IconFindinpage.js +12 -0
- package/lib/module/icons/components/IconFolder.js +12 -0
- package/lib/module/icons/components/IconFolderbookmarks.js +12 -0
- package/lib/module/icons/components/IconFolderfavorites.js +12 -0
- package/lib/module/icons/components/IconFolderlocked.js +12 -0
- package/lib/module/icons/components/IconFoldermovefiles.js +12 -0
- package/lib/module/icons/components/IconFolderpublic.js +12 -0
- package/lib/module/icons/components/IconFolderrated.js +12 -0
- package/lib/module/icons/components/IconFolderrequest.js +12 -0
- package/lib/module/icons/components/IconForm.js +12 -0
- package/lib/module/icons/components/IconFormadd.js +12 -0
- package/lib/module/icons/components/IconForms.js +12 -0
- package/lib/module/icons/components/IconGraphincreasing.js +12 -0
- package/lib/module/icons/components/IconGraphlow.js +12 -0
- package/lib/module/icons/components/IconGraphtable.js +12 -0
- package/lib/module/icons/components/IconHealthreport.js +12 -0
- package/lib/module/icons/components/IconHubmode.js +12 -0
- package/lib/module/icons/components/IconInfrastructure.js +12 -0
- package/lib/module/icons/components/IconInterestlow.js +12 -0
- package/lib/module/icons/components/IconLte.js +12 -0
- package/lib/module/icons/components/IconNetworkfuture.js +12 -0
- package/lib/module/icons/components/IconPagesettings.js +12 -0
- package/lib/module/icons/components/IconPptxdoc.js +12 -0
- package/lib/module/icons/components/IconPreferrednumber.js +12 -0
- package/lib/module/icons/components/IconPremiumnumber.js +12 -0
- package/lib/module/icons/components/IconProjection.js +12 -0
- package/lib/module/icons/components/IconRequest.js +12 -0
- package/lib/module/icons/components/IconRoutestraffic.js +12 -0
- package/lib/module/icons/components/IconTechnology.js +12 -0
- package/lib/module/icons/components/IconVolte.js +12 -0
- package/lib/module/icons/components/IconVonr.js +12 -0
- package/lib/module/icons/components/IconVowifi.js +12 -0
- package/lib/module/icons/components/IconVpndata.js +12 -0
- package/lib/module/icons/components/index.js +73 -0
- package/lib/module/icons/registry.js +2 -2
- package/lib/module/utils/index.js +2 -1
- package/lib/module/utils/react-utils.js +61 -0
- package/lib/module/utils/shadow.js +194 -0
- package/lib/typescript/src/components/BenefitCard/BenefitCard.d.ts +33 -4
- package/lib/typescript/src/components/Carousel/Carousel.d.ts +11 -1
- package/lib/typescript/src/components/CarouselCardAccounts/CarouselCardAccounts.d.ts +57 -0
- package/lib/typescript/src/components/SavingsGoalSummary/SavingsGoalSummary.d.ts +11 -1
- package/lib/typescript/src/components/ScrollArea/ScrollArea.d.ts +77 -0
- package/lib/typescript/src/components/Text/Text.d.ts +12 -3
- package/lib/typescript/src/components/TextSegment/TextSegment.d.ts +12 -3
- package/lib/typescript/src/components/Title/Title.d.ts +12 -2
- package/lib/typescript/src/components/index.d.ts +2 -0
- package/lib/typescript/src/design-tokens/figma-modes.generated.d.ts +23 -15
- package/lib/typescript/src/icons/components/Icon4g.d.ts +3 -0
- package/lib/typescript/src/icons/components/Icon4gltedata.d.ts +3 -0
- package/lib/typescript/src/icons/components/Icon5g.d.ts +3 -0
- package/lib/typescript/src/icons/components/Icon5gdoubleplus.d.ts +3 -0
- package/lib/typescript/src/icons/components/Icon5gplus.d.ts +3 -0
- package/lib/typescript/src/icons/components/IconAdblocker.d.ts +3 -0
- package/lib/typescript/src/icons/components/IconAdblockplus.d.ts +3 -0
- package/lib/typescript/src/icons/components/IconAnalytics.d.ts +3 -0
- package/lib/typescript/src/icons/components/IconAnalyticsdata.d.ts +3 -0
- package/lib/typescript/src/icons/components/IconAnalyticspiechart.d.ts +3 -0
- package/lib/typescript/src/icons/components/IconAnalyticspiecharttree.d.ts +3 -0
- package/lib/typescript/src/icons/components/IconAnalyticspiecharttwo.d.ts +3 -0
- package/lib/typescript/src/icons/components/IconCompoundinterest.d.ts +3 -0
- package/lib/typescript/src/icons/components/IconConsumptionaccounted.d.ts +3 -0
- package/lib/typescript/src/icons/components/IconConsumptionaverage.d.ts +3 -0
- package/lib/typescript/src/icons/components/IconConsumptionhigh.d.ts +3 -0
- package/lib/typescript/src/icons/components/IconConsumptionlow.d.ts +3 -0
- package/lib/typescript/src/icons/components/IconConsumptionunaccounted.d.ts +3 -0
- package/lib/typescript/src/icons/components/IconCsvdoc.d.ts +3 -0
- package/lib/typescript/src/icons/components/IconDatabase.d.ts +3 -0
- package/lib/typescript/src/icons/components/IconDigitalecosystem.d.ts +3 -0
- package/lib/typescript/src/icons/components/IconDigitalselfservice.d.ts +3 -0
- package/lib/typescript/src/icons/components/IconDistribution.d.ts +3 -0
- package/lib/typescript/src/icons/components/IconDocument.d.ts +3 -0
- package/lib/typescript/src/icons/components/IconDocumentdoc.d.ts +3 -0
- package/lib/typescript/src/icons/components/IconDocumentjpg.d.ts +3 -0
- package/lib/typescript/src/icons/components/IconDocumentodt.d.ts +3 -0
- package/lib/typescript/src/icons/components/IconDocumentpdf.d.ts +3 -0
- package/lib/typescript/src/icons/components/IconDocumentpng.d.ts +3 -0
- package/lib/typescript/src/icons/components/IconDocumentraw.d.ts +3 -0
- package/lib/typescript/src/icons/components/IconDocumentrtf.d.ts +3 -0
- package/lib/typescript/src/icons/components/IconDocumentsettings.d.ts +3 -0
- package/lib/typescript/src/icons/components/IconDocumenttif.d.ts +3 -0
- package/lib/typescript/src/icons/components/IconDocumenttxt.d.ts +3 -0
- package/lib/typescript/src/icons/components/IconDocumentunknown.d.ts +3 -0
- package/lib/typescript/src/icons/components/IconDocumentxls.d.ts +3 -0
- package/lib/typescript/src/icons/components/IconDocumentxlsx.d.ts +3 -0
- package/lib/typescript/src/icons/components/IconFilerequest.d.ts +3 -0
- package/lib/typescript/src/icons/components/IconFilesend.d.ts +3 -0
- package/lib/typescript/src/icons/components/IconFileshare.d.ts +3 -0
- package/lib/typescript/src/icons/components/IconFindinpage.d.ts +3 -0
- package/lib/typescript/src/icons/components/IconFolder.d.ts +3 -0
- package/lib/typescript/src/icons/components/IconFolderbookmarks.d.ts +3 -0
- package/lib/typescript/src/icons/components/IconFolderfavorites.d.ts +3 -0
- package/lib/typescript/src/icons/components/IconFolderlocked.d.ts +3 -0
- package/lib/typescript/src/icons/components/IconFoldermovefiles.d.ts +3 -0
- package/lib/typescript/src/icons/components/IconFolderpublic.d.ts +3 -0
- package/lib/typescript/src/icons/components/IconFolderrated.d.ts +3 -0
- package/lib/typescript/src/icons/components/IconFolderrequest.d.ts +3 -0
- package/lib/typescript/src/icons/components/IconForm.d.ts +3 -0
- package/lib/typescript/src/icons/components/IconFormadd.d.ts +3 -0
- package/lib/typescript/src/icons/components/IconForms.d.ts +3 -0
- package/lib/typescript/src/icons/components/IconGraphincreasing.d.ts +3 -0
- package/lib/typescript/src/icons/components/IconGraphlow.d.ts +3 -0
- package/lib/typescript/src/icons/components/IconGraphtable.d.ts +3 -0
- package/lib/typescript/src/icons/components/IconHealthreport.d.ts +3 -0
- package/lib/typescript/src/icons/components/IconHubmode.d.ts +3 -0
- package/lib/typescript/src/icons/components/IconInfrastructure.d.ts +3 -0
- package/lib/typescript/src/icons/components/IconInterestlow.d.ts +3 -0
- package/lib/typescript/src/icons/components/IconLte.d.ts +3 -0
- package/lib/typescript/src/icons/components/IconNetworkfuture.d.ts +3 -0
- package/lib/typescript/src/icons/components/IconPagesettings.d.ts +3 -0
- package/lib/typescript/src/icons/components/IconPptxdoc.d.ts +3 -0
- package/lib/typescript/src/icons/components/IconPreferrednumber.d.ts +3 -0
- package/lib/typescript/src/icons/components/IconPremiumnumber.d.ts +3 -0
- package/lib/typescript/src/icons/components/IconProjection.d.ts +3 -0
- package/lib/typescript/src/icons/components/IconRequest.d.ts +3 -0
- package/lib/typescript/src/icons/components/IconRoutestraffic.d.ts +3 -0
- package/lib/typescript/src/icons/components/IconTechnology.d.ts +3 -0
- package/lib/typescript/src/icons/components/IconVolte.d.ts +3 -0
- package/lib/typescript/src/icons/components/IconVonr.d.ts +3 -0
- package/lib/typescript/src/icons/components/IconVowifi.d.ts +3 -0
- package/lib/typescript/src/icons/components/IconVpndata.d.ts +3 -0
- package/lib/typescript/src/icons/components/index.d.ts +73 -0
- package/lib/typescript/src/icons/registry.d.ts +1 -1
- package/lib/typescript/src/utils/index.d.ts +2 -0
- package/lib/typescript/src/utils/react-utils.d.ts +40 -1
- package/lib/typescript/src/utils/shadow.d.ts +72 -0
- package/package.json +2 -1
- package/src/components/ActionFooter/ActionFooter.tsx +8 -26
- package/src/components/ActionTile/ActionTile.tsx +10 -10
- package/src/components/AmountInput/AmountInput.tsx +3 -3
- package/src/components/AreaLineChart/AreaLineChart.tsx +2 -2
- package/src/components/Attached/Attached.tsx +1 -1
- package/src/components/Avatar/Avatar.tsx +10 -10
- package/src/components/AvatarGroup/AvatarGroup.tsx +9 -9
- package/src/components/Badge/Badge.tsx +12 -13
- package/src/components/BenefitCard/BenefitCard.tsx +120 -27
- package/src/components/BottomNav/BottomNav.tsx +2 -2
- package/src/components/BottomNavItem/BottomNavItem.tsx +3 -3
- package/src/components/Button/Button.tsx +30 -20
- package/src/components/Card/Card.tsx +20 -20
- package/src/components/CardAdvisory/CardAdvisory.tsx +6 -6
- package/src/components/CardCTA/CardCTA.tsx +21 -21
- package/src/components/CardFeedback/CardFeedback.tsx +18 -18
- package/src/components/CardFinancialCondition/CardFinancialCondition.tsx +7 -10
- package/src/components/CardInsight/CardInsight.tsx +1 -3
- package/src/components/Carousel/Carousel.tsx +29 -12
- package/src/components/CarouselCardAccounts/CarouselCardAccounts.tsx +113 -0
- package/src/components/Checkbox/Checkbox.tsx +2 -8
- package/src/components/ChipGroup/ChipGroup.tsx +1 -1
- package/src/components/ChipSelect/ChipSelect.tsx +11 -11
- package/src/components/CircularProgressBar/CircularProgressBar.tsx +5 -5
- package/src/components/CircularProgressBarDoted/CircularProgressBarDoted.tsx +8 -8
- package/src/components/CircularRating/CircularRating.tsx +3 -3
- package/src/components/CompareTable/CompareTable.tsx +16 -16
- package/src/components/DebitCard/DebitCard.tsx +22 -22
- package/src/components/Disclaimer/Disclaimer.tsx +5 -5
- package/src/components/DonutChart/DonutChart.tsx +11 -45
- package/src/components/Drawer/Drawer.tsx +80 -71
- package/src/components/Dropdown/Dropdown.tsx +23 -28
- package/src/components/DropdownInput/DropdownInput.tsx +10 -17
- package/src/components/EmptyState/EmptyState.tsx +14 -14
- package/src/components/FilterBar/FilterBar.tsx +2 -2
- package/src/components/Form/Form.tsx +3 -3
- package/src/components/FormField/FormField.tsx +6 -11
- package/src/components/FullscreenModal/FullscreenModal.tsx +24 -24
- package/src/components/Gauge/Gauge.tsx +8 -8
- package/src/components/HoldingsCard/HoldingsCard.tsx +10 -10
- package/src/components/Icon/Icon.tsx +6 -6
- package/src/components/IconCapsule/IconCapsule.tsx +7 -7
- package/src/components/InputSearch/InputSearch.tsx +9 -9
- package/src/components/InstitutionBadge/InstitutionBadge.tsx +3 -6
- package/src/components/ListGroup/ListGroup.tsx +8 -8
- package/src/components/ListItem/ListItem.tsx +10 -10
- package/src/components/LottieIntroBlock/LottieIntroBlock.tsx +13 -16
- package/src/components/LottiePlayer/LottiePlayer.tsx +2 -2
- package/src/components/LottiePlayer/LottiePlayer.web.tsx +2 -2
- package/src/components/MediaCard/MediaCard.tsx +21 -21
- package/src/components/MessageField/MessageField.tsx +8 -16
- package/src/components/MoneyValue/MoneyValue.tsx +7 -7
- package/src/components/NavArrow/NavArrow.tsx +8 -8
- package/src/components/NoteInput/NoteInput.tsx +12 -12
- package/src/components/Nudge/Nudge.tsx +20 -20
- package/src/components/OTP/OTP.tsx +16 -16
- package/src/components/PageHero/PageHero.tsx +16 -16
- package/src/components/PaymentFeedback/PaymentFeedback.tsx +27 -27
- package/src/components/Popup/Popup.tsx +1 -1
- package/src/components/ProgressBadge/ProgressBadge.tsx +5 -5
- package/src/components/Radio/Radio.tsx +8 -9
- package/src/components/RechargeCard/RechargeCard.tsx +31 -31
- package/src/components/SavingsGoalSummary/SavingsGoalSummary.tsx +105 -13
- package/src/components/ScrollArea/ScrollArea.tsx +200 -0
- package/src/components/Section/Section.tsx +26 -26
- package/src/components/StatusHero/StatusHero.tsx +14 -14
- package/src/components/Stepper/Step.tsx +16 -18
- package/src/components/Stepper/StepLabel.tsx +16 -27
- package/src/components/Stepper/Stepper.tsx +3 -4
- package/src/components/SuggestiveSearch/SuggestiveSearch.tsx +10 -20
- package/src/components/SupportText/SupportText.tsx +6 -6
- package/src/components/SupportText/SupportTextIcon.tsx +2 -2
- package/src/components/Text/Text.tsx +23 -5
- package/src/components/TextInput/TextInput.tsx +14 -14
- package/src/components/TextSegment/TextSegment.tsx +22 -4
- package/src/components/ThreadHero/ThreadHero.tsx +17 -17
- package/src/components/Title/Title.tsx +44 -18
- package/src/components/Toast/Toast.tsx +15 -15
- package/src/components/Toggle/Toggle.tsx +5 -10
- package/src/components/Tooltip/Tooltip.tsx +12 -12
- package/src/components/TransactionBubble/TransactionBubble.tsx +15 -15
- package/src/components/TransactionDetails/TransactionDetails.tsx +10 -10
- package/src/components/TransactionStatus/TransactionStatus.tsx +9 -9
- package/src/components/UpiHandle/UpiHandle.tsx +15 -15
- package/src/components/index.ts +2 -0
- package/src/design-tokens/Coin Variables-variables-full.json +1 -1
- package/src/design-tokens/figma-modes.generated.ts +50 -42
- package/src/icons/components/Icon4g.tsx +11 -0
- package/src/icons/components/Icon4gltedata.tsx +11 -0
- package/src/icons/components/Icon5g.tsx +11 -0
- package/src/icons/components/Icon5gdoubleplus.tsx +11 -0
- package/src/icons/components/Icon5gplus.tsx +11 -0
- package/src/icons/components/IconAdblocker.tsx +11 -0
- package/src/icons/components/IconAdblockplus.tsx +11 -0
- package/src/icons/components/IconAnalytics.tsx +11 -0
- package/src/icons/components/IconAnalyticsdata.tsx +11 -0
- package/src/icons/components/IconAnalyticspiechart.tsx +11 -0
- package/src/icons/components/IconAnalyticspiecharttree.tsx +11 -0
- package/src/icons/components/IconAnalyticspiecharttwo.tsx +11 -0
- package/src/icons/components/IconCompoundinterest.tsx +11 -0
- package/src/icons/components/IconConsumptionaccounted.tsx +11 -0
- package/src/icons/components/IconConsumptionaverage.tsx +11 -0
- package/src/icons/components/IconConsumptionhigh.tsx +11 -0
- package/src/icons/components/IconConsumptionlow.tsx +11 -0
- package/src/icons/components/IconConsumptionunaccounted.tsx +11 -0
- package/src/icons/components/IconCsvdoc.tsx +11 -0
- package/src/icons/components/IconDatabase.tsx +11 -0
- package/src/icons/components/IconDigitalecosystem.tsx +11 -0
- package/src/icons/components/IconDigitalselfservice.tsx +11 -0
- package/src/icons/components/IconDistribution.tsx +11 -0
- package/src/icons/components/IconDocument.tsx +11 -0
- package/src/icons/components/IconDocumentdoc.tsx +11 -0
- package/src/icons/components/IconDocumentjpg.tsx +11 -0
- package/src/icons/components/IconDocumentodt.tsx +11 -0
- package/src/icons/components/IconDocumentpdf.tsx +11 -0
- package/src/icons/components/IconDocumentpng.tsx +11 -0
- package/src/icons/components/IconDocumentraw.tsx +11 -0
- package/src/icons/components/IconDocumentrtf.tsx +11 -0
- package/src/icons/components/IconDocumentsettings.tsx +11 -0
- package/src/icons/components/IconDocumenttif.tsx +11 -0
- package/src/icons/components/IconDocumenttxt.tsx +11 -0
- package/src/icons/components/IconDocumentunknown.tsx +11 -0
- package/src/icons/components/IconDocumentxls.tsx +11 -0
- package/src/icons/components/IconDocumentxlsx.tsx +11 -0
- package/src/icons/components/IconFilerequest.tsx +11 -0
- package/src/icons/components/IconFilesend.tsx +11 -0
- package/src/icons/components/IconFileshare.tsx +11 -0
- package/src/icons/components/IconFindinpage.tsx +11 -0
- package/src/icons/components/IconFolder.tsx +11 -0
- package/src/icons/components/IconFolderbookmarks.tsx +11 -0
- package/src/icons/components/IconFolderfavorites.tsx +11 -0
- package/src/icons/components/IconFolderlocked.tsx +11 -0
- package/src/icons/components/IconFoldermovefiles.tsx +11 -0
- package/src/icons/components/IconFolderpublic.tsx +11 -0
- package/src/icons/components/IconFolderrated.tsx +11 -0
- package/src/icons/components/IconFolderrequest.tsx +11 -0
- package/src/icons/components/IconForm.tsx +11 -0
- package/src/icons/components/IconFormadd.tsx +11 -0
- package/src/icons/components/IconForms.tsx +11 -0
- package/src/icons/components/IconGraphincreasing.tsx +11 -0
- package/src/icons/components/IconGraphlow.tsx +11 -0
- package/src/icons/components/IconGraphtable.tsx +11 -0
- package/src/icons/components/IconHealthreport.tsx +11 -0
- package/src/icons/components/IconHubmode.tsx +11 -0
- package/src/icons/components/IconInfrastructure.tsx +11 -0
- package/src/icons/components/IconInterestlow.tsx +11 -0
- package/src/icons/components/IconLte.tsx +11 -0
- package/src/icons/components/IconNetworkfuture.tsx +11 -0
- package/src/icons/components/IconPagesettings.tsx +11 -0
- package/src/icons/components/IconPptxdoc.tsx +11 -0
- package/src/icons/components/IconPreferrednumber.tsx +11 -0
- package/src/icons/components/IconPremiumnumber.tsx +11 -0
- package/src/icons/components/IconProjection.tsx +11 -0
- package/src/icons/components/IconRequest.tsx +11 -0
- package/src/icons/components/IconRoutestraffic.tsx +11 -0
- package/src/icons/components/IconTechnology.tsx +11 -0
- package/src/icons/components/IconVolte.tsx +11 -0
- package/src/icons/components/IconVonr.tsx +11 -0
- package/src/icons/components/IconVowifi.tsx +11 -0
- package/src/icons/components/IconVpndata.tsx +11 -0
- package/src/icons/components/index.ts +73 -0
- package/src/icons/registry.ts +293 -1
- package/src/utils/index.ts +2 -0
- package/src/utils/react-utils.ts +72 -1
- package/src/utils/shadow.ts +219 -0
|
@@ -84,34 +84,33 @@ function Badge({
|
|
|
84
84
|
// swaps the solid fill for a translucent overlay + white label, matching the
|
|
85
85
|
// Figma `badge/glass/*` tokens.
|
|
86
86
|
const backgroundColor =
|
|
87
|
-
(getVariableByName('badge/color/background', modes) as string)
|
|
87
|
+
(getVariableByName('badge/color/background', modes) as string)
|
|
88
88
|
const glassBackground =
|
|
89
|
-
(getVariableByName('badge/glass/color/background', modes) as string)
|
|
89
|
+
(getVariableByName('badge/glass/color/background', modes) as string)
|
|
90
90
|
const glassLabelColor =
|
|
91
|
-
(getVariableByName('badge/glass/color/label', modes) as string)
|
|
91
|
+
(getVariableByName('badge/glass/color/label', modes) as string)
|
|
92
92
|
const labelColor = isGlass
|
|
93
93
|
? glassLabelColor
|
|
94
|
-
: (getVariableByName('badge/color/label', modes) as string)
|
|
94
|
+
: (getVariableByName('badge/color/label', modes) as string)
|
|
95
95
|
const fontSize =
|
|
96
|
-
Number(getVariableByName('badge/label/fontSize', modes) as unknown)
|
|
96
|
+
Number(getVariableByName('badge/label/fontSize', modes) as unknown)
|
|
97
97
|
const fontFamily =
|
|
98
|
-
(getVariableByName('badge/fontFamily', modes) as string)
|
|
98
|
+
(getVariableByName('badge/fontFamily', modes) as string)
|
|
99
99
|
const fontWeight =
|
|
100
|
-
(getVariableByName('badge/label/fontWeight', modes) as string)
|
|
100
|
+
(getVariableByName('badge/label/fontWeight', modes) as string)
|
|
101
101
|
const paddingHorizontal =
|
|
102
|
-
Number(getVariableByName('badge/padding/horizontal', modes) as unknown)
|
|
102
|
+
Number(getVariableByName('badge/padding/horizontal', modes) as unknown)
|
|
103
103
|
const paddingVertical =
|
|
104
|
-
Number(getVariableByName('badge/padding/vertical', modes) as unknown)
|
|
104
|
+
Number(getVariableByName('badge/padding/vertical', modes) as unknown)
|
|
105
105
|
const borderRadius =
|
|
106
|
-
Number(getVariableByName('badge/radius', modes) as unknown)
|
|
106
|
+
Number(getVariableByName('badge/radius', modes) as unknown)
|
|
107
107
|
const lineHeight =
|
|
108
|
-
Number(getVariableByName('badge/label/lineHeight', modes) as unknown)
|
|
109
|
-
Math.round(fontSize * 1.2)
|
|
108
|
+
Number(getVariableByName('badge/label/lineHeight', modes) as unknown)
|
|
110
109
|
// Figma `blur/minimal` (px radius) -> GlassFill's 0–100 intensity scale, the
|
|
111
110
|
// same 1:1 mapping the merchandising card footer uses.
|
|
112
111
|
const blurIntensity = Math.max(
|
|
113
112
|
0,
|
|
114
|
-
Math.min(100, Math.round(Number(getVariableByName('blur/minimal', modes) as unknown)
|
|
113
|
+
Math.min(100, Math.round(Number(getVariableByName('blur/minimal', modes) as unknown))),
|
|
115
114
|
)
|
|
116
115
|
|
|
117
116
|
// Skeleton short-circuit. Size derived from the same tokens the loaded
|
|
@@ -15,6 +15,9 @@ import Text from '../Text/Text'
|
|
|
15
15
|
import ListItem from '../ListItem/ListItem'
|
|
16
16
|
import Divider from '../Divider/Divider'
|
|
17
17
|
import Button from '../Button/Button'
|
|
18
|
+
import Nudge from '../Nudge/Nudge'
|
|
19
|
+
import Avatar from '../Avatar/Avatar'
|
|
20
|
+
import TextSegment from '../TextSegment/TextSegment'
|
|
18
21
|
import type { Modes } from '../../design-tokens'
|
|
19
22
|
|
|
20
23
|
/**
|
|
@@ -42,17 +45,46 @@ export interface BenefitCardProps {
|
|
|
42
45
|
/** Header section title (e.g. `"You will earn"`). */
|
|
43
46
|
headerTitle?: string
|
|
44
47
|
/**
|
|
45
|
-
*
|
|
46
|
-
*
|
|
48
|
+
* @deprecated The header is now a multi-row list wrap. A single item still
|
|
49
|
+
* works and is rendered as a one-row list (lowest precedence, after
|
|
50
|
+
* `header` and `headerItems`). Prefer `headerItems` (declarative) or
|
|
51
|
+
* `header` (slot).
|
|
47
52
|
*/
|
|
48
53
|
headerItem?: BenefitCardItem
|
|
54
|
+
/**
|
|
55
|
+
* Declarative header list-wrap rows shown under the header title and above
|
|
56
|
+
* the divider (icon + title + optional trailing value). Replaces the
|
|
57
|
+
* legacy single {@link BenefitCardProps.headerItem}. Ignored when the
|
|
58
|
+
* `header` slot is provided.
|
|
59
|
+
*/
|
|
60
|
+
headerItems?: BenefitCardItem[]
|
|
61
|
+
/**
|
|
62
|
+
* Real slot for the header "list wrap" (the rows under the header title).
|
|
63
|
+
* Highest precedence — when provided, these children render instead of
|
|
64
|
+
* `headerItems` / `headerItem`; `modes` (plus the `List Item Style:
|
|
65
|
+
* Minimal` style) cascade into every child automatically.
|
|
66
|
+
*/
|
|
67
|
+
header?: React.ReactNode
|
|
49
68
|
/**
|
|
50
69
|
* Toggles the whole header section (title + item + divider). Mirrors the
|
|
51
70
|
* Figma `showHeader` property. Defaults to `true`.
|
|
52
71
|
*/
|
|
53
72
|
showHeader?: boolean
|
|
54
|
-
/**
|
|
73
|
+
/**
|
|
74
|
+
* @deprecated In the Figma redesign the plain body title was replaced by a
|
|
75
|
+
* slot-based upsell `Nudge` ({@link BenefitCardProps.bodyHeader}). Still
|
|
76
|
+
* honored for backward compatibility: when set, it renders as a plain text
|
|
77
|
+
* title in place of the default nudge. Prefer `bodyHeader`.
|
|
78
|
+
*/
|
|
55
79
|
bodyTitle?: string
|
|
80
|
+
/**
|
|
81
|
+
* Real slot rendered between the header divider and the body list — in the
|
|
82
|
+
* Figma reference this is an upsell `Nudge` (avatar + highlighted
|
|
83
|
+
* "JioFinance+" message). Defaults to that nudge. Pass `null`/`false` to
|
|
84
|
+
* hide it, `bodyTitle` for the legacy plain-text title, or any `ReactNode`
|
|
85
|
+
* for full control; `modes` cascade into the slot.
|
|
86
|
+
*/
|
|
87
|
+
bodyHeader?: React.ReactNode
|
|
56
88
|
/**
|
|
57
89
|
* Body benefit rows. Ignored when `children` is provided (the slot wins).
|
|
58
90
|
*/
|
|
@@ -109,8 +141,11 @@ export interface BenefitCardProps {
|
|
|
109
141
|
function BenefitCard({
|
|
110
142
|
headerTitle = 'You will earn',
|
|
111
143
|
headerItem,
|
|
144
|
+
headerItems,
|
|
145
|
+
header,
|
|
112
146
|
showHeader = true,
|
|
113
|
-
bodyTitle
|
|
147
|
+
bodyTitle,
|
|
148
|
+
bodyHeader,
|
|
114
149
|
items,
|
|
115
150
|
children,
|
|
116
151
|
buttonLabel = 'Upgrade',
|
|
@@ -125,14 +160,28 @@ function BenefitCard({
|
|
|
125
160
|
}: BenefitCardProps) {
|
|
126
161
|
const tokens = useMemo(() => resolveTokens(modes), [modes])
|
|
127
162
|
|
|
128
|
-
//
|
|
129
|
-
|
|
163
|
+
// Component-level modes. `List Item Style: Minimal` and `Nudge padding: None`
|
|
164
|
+
// are BenefitCard's own defaults: they live on the card and cascade down into
|
|
165
|
+
// every child (the list-wrap rows and the upsell nudge) rather than being
|
|
166
|
+
// threaded onto each individual item. Consumer `modes` always win.
|
|
167
|
+
const cascadeModes = useMemo<Modes>(
|
|
168
|
+
() => ({ 'List Item Style': 'Minimal', 'Nudge padding': 'None', ...modes }),
|
|
169
|
+
[modes]
|
|
170
|
+
)
|
|
171
|
+
// Sub-element modes layer their own specifics on top of the consumer modes.
|
|
130
172
|
const iconModes = useMemo<Modes>(() => ({ AppearanceBrand: 'Secondary', ...modes }), [modes])
|
|
131
173
|
const trailingTextModes = useMemo<Modes>(
|
|
132
174
|
() => ({ 'Text Sizes': 'Small', Weight: 'Regular', ...modes }),
|
|
133
175
|
[modes]
|
|
134
176
|
)
|
|
135
177
|
const ctaModes = useMemo<Modes>(() => ({ 'Button / Size': 'S', ...modes }), [modes])
|
|
178
|
+
// The upsell nudge keeps a white/transparent background (`AppearanceBrand:
|
|
179
|
+
// Neutral` → `nudge/background: #ffffff`); its `Nudge padding: None` cascades
|
|
180
|
+
// in from `cascadeModes` so it sits flush with the card.
|
|
181
|
+
const nudgeModes = useMemo<Modes>(
|
|
182
|
+
() => ({ AppearanceBrand: 'Neutral', ...cascadeModes }),
|
|
183
|
+
[cascadeModes]
|
|
184
|
+
)
|
|
136
185
|
|
|
137
186
|
const renderItem = (item: BenefitCardItem, key: React.Key) => {
|
|
138
187
|
const leading =
|
|
@@ -157,25 +206,57 @@ function BenefitCard({
|
|
|
157
206
|
leading={leading}
|
|
158
207
|
trailing={trailing}
|
|
159
208
|
onPress={item.onPress}
|
|
160
|
-
modes={listItemModes}
|
|
161
209
|
/>
|
|
162
210
|
)
|
|
163
211
|
}
|
|
164
212
|
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
213
|
+
// Header "list wrap" — slot-based. Precedence: `header` slot > `headerItems`
|
|
214
|
+
// array > legacy single `headerItem` > Figma default rows. The component-level
|
|
215
|
+
// `cascadeModes` are pushed into the whole group at once, so individual rows
|
|
216
|
+
// never carry their own list-item modes.
|
|
217
|
+
const headerListSource = header
|
|
218
|
+
? header
|
|
219
|
+
: (headerItems ?? (headerItem ? [headerItem] : DEFAULT_HEADER_ITEMS)).map((item, index) =>
|
|
220
|
+
renderItem(item, `header-${index}`)
|
|
221
|
+
)
|
|
222
|
+
const headerListNodes = cloneChildrenWithModes(headerListSource, cascadeModes)
|
|
223
|
+
|
|
224
|
+
const headerNode = showHeader ? (
|
|
225
|
+
<View style={styles.section}>
|
|
226
|
+
<View style={styles.cardHeader}>
|
|
227
|
+
{headerTitle != null ? <RNText style={tokens.title}>{headerTitle}</RNText> : null}
|
|
228
|
+
<View style={tokens.listWrap}>{headerListNodes}</View>
|
|
173
229
|
</View>
|
|
174
|
-
|
|
230
|
+
<Divider modes={modes} />
|
|
231
|
+
</View>
|
|
232
|
+
) : null
|
|
233
|
+
|
|
234
|
+
// Body "header" slot (between the divider and the body list). Precedence:
|
|
235
|
+
// explicit `bodyHeader` slot > legacy `bodyTitle` text > Figma upsell nudge.
|
|
236
|
+
const bodyHeaderNode =
|
|
237
|
+
bodyHeader === null || bodyHeader === false
|
|
238
|
+
? null
|
|
239
|
+
: bodyHeader !== undefined
|
|
240
|
+
? renderSlot(bodyHeader, cascadeModes)
|
|
241
|
+
: bodyTitle != null
|
|
242
|
+
? <RNText style={tokens.title}>{bodyTitle}</RNText>
|
|
243
|
+
: (
|
|
244
|
+
<Nudge type="inline-compact" modes={{ ...nudgeModes, ...cascadeModes }} startSlot={DEFAULT_UPSELL_AVATAR}>
|
|
245
|
+
<TextSegment
|
|
246
|
+
modes={cascadeModes}
|
|
247
|
+
segments={[
|
|
248
|
+
{ text: 'Upgrade to ' },
|
|
249
|
+
{ text: 'JioFinance+', modes: { 'Text Appearance': 'Primary' } },
|
|
250
|
+
{ text: ' and earn more' },
|
|
251
|
+
]}
|
|
252
|
+
/>
|
|
253
|
+
</Nudge>
|
|
254
|
+
)
|
|
175
255
|
|
|
176
|
-
const
|
|
177
|
-
?
|
|
256
|
+
const bodyListSource = children
|
|
257
|
+
? children
|
|
178
258
|
: (items ?? DEFAULT_ITEMS).map((item, index) => renderItem(item, index))
|
|
259
|
+
const bodyList = cloneChildrenWithModes(bodyListSource, cascadeModes)
|
|
179
260
|
|
|
180
261
|
const ctaNode = button ?? (
|
|
181
262
|
<Button label={buttonLabel} modes={ctaModes} onPress={onButtonPress} />
|
|
@@ -189,10 +270,8 @@ function BenefitCard({
|
|
|
189
270
|
const content = (
|
|
190
271
|
<>
|
|
191
272
|
{headerNode}
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
<View style={tokens.listWrap}>{bodyList}</View>
|
|
195
|
-
</View>
|
|
273
|
+
{bodyHeaderNode}
|
|
274
|
+
<View style={tokens.listWrap}>{bodyList}</View>
|
|
196
275
|
{showButton ? ctaNode : null}
|
|
197
276
|
</>
|
|
198
277
|
)
|
|
@@ -227,7 +306,6 @@ const CARD_HEADER_GAP = 4
|
|
|
227
306
|
|
|
228
307
|
interface ResolvedTokens {
|
|
229
308
|
container: ViewStyle
|
|
230
|
-
body: ViewStyle
|
|
231
309
|
listWrap: ViewStyle
|
|
232
310
|
title: TextStyle
|
|
233
311
|
}
|
|
@@ -267,10 +345,6 @@ function resolveTokens(modes: Modes): ResolvedTokens {
|
|
|
267
345
|
flexDirection: 'column',
|
|
268
346
|
alignItems: 'flex-start',
|
|
269
347
|
},
|
|
270
|
-
body: {
|
|
271
|
-
alignSelf: 'stretch',
|
|
272
|
-
gap,
|
|
273
|
-
},
|
|
274
348
|
listWrap: {
|
|
275
349
|
alignSelf: 'stretch',
|
|
276
350
|
gap,
|
|
@@ -287,11 +361,30 @@ function resolveTokens(modes: Modes): ResolvedTokens {
|
|
|
287
361
|
}
|
|
288
362
|
}
|
|
289
363
|
|
|
364
|
+
// Cascades `modes` into a slot node and unwraps a single child so the slot can
|
|
365
|
+
// be rendered inline without an extra fragment.
|
|
366
|
+
function renderSlot(node: React.ReactNode, modes: Modes): React.ReactNode {
|
|
367
|
+
const processed = cloneChildrenWithModes(node, modes)
|
|
368
|
+
return processed.length === 1 ? processed[0] : processed
|
|
369
|
+
}
|
|
370
|
+
|
|
371
|
+
// Figma reference rows for the header list wrap (two highlighted "JioPoints"
|
|
372
|
+
// rows). Used only when no `header` slot / `headerItems` / legacy `headerItem`
|
|
373
|
+
// is supplied.
|
|
374
|
+
const DEFAULT_HEADER_ITEMS: BenefitCardItem[] = [
|
|
375
|
+
{ icon: 'ic_jewellery_diamond', title: 'JioPoints', trailingText: 'Up to 2000 pts' },
|
|
376
|
+
{ icon: 'ic_jewellery_diamond', title: 'JioPoints', trailingText: 'Up to 2000 pts' },
|
|
377
|
+
]
|
|
378
|
+
|
|
290
379
|
const DEFAULT_ITEMS: BenefitCardItem[] = [
|
|
291
380
|
{ icon: 'ic_card', title: 'Up to ₹5000 cashback' },
|
|
292
381
|
{ icon: 'ic_card', title: '25% extra JioPoints' },
|
|
293
382
|
]
|
|
294
383
|
|
|
384
|
+
// Start-slot avatar for the default upsell nudge. `modes` cascade in from the
|
|
385
|
+
// nudge (XS keeps it compact next to the inline message).
|
|
386
|
+
const DEFAULT_UPSELL_AVATAR = <Avatar style="Image" modes={{ 'Avatar Size': 'XS' }} />
|
|
387
|
+
|
|
295
388
|
const styles = StyleSheet.create({
|
|
296
389
|
section: {
|
|
297
390
|
alignSelf: 'stretch',
|
|
@@ -53,8 +53,8 @@ function BottomNav({
|
|
|
53
53
|
const modes = { ...globalModes, ...propModes }
|
|
54
54
|
|
|
55
55
|
// Resolve container styling tokens
|
|
56
|
-
const backgroundColor = getVariableByName('bottomNav/background', modes)
|
|
57
|
-
const borderColor = getVariableByName('bottomNav/border/color', modes)
|
|
56
|
+
const backgroundColor = getVariableByName('bottomNav/background', modes)
|
|
57
|
+
const borderColor = getVariableByName('bottomNav/border/color', modes)
|
|
58
58
|
const borderWidth = getVariableByName('bottomNav/border/width', modes) ?? 1
|
|
59
59
|
const paddingTop = getVariableByName('bottomNav/padding/top', modes) ?? 10
|
|
60
60
|
const paddingBottom = getVariableByName('bottomNav/padding/bottom', modes) ?? 23
|
|
@@ -60,17 +60,17 @@ function resolveBottomNavItemTokens(
|
|
|
60
60
|
const gap = (getVariableByName('bottomNavItem/gap', modes) ?? 6) as number
|
|
61
61
|
|
|
62
62
|
const fontFamily =
|
|
63
|
-
(getVariableByName('bottomNavItem/fontFamily', modes)
|
|
63
|
+
(getVariableByName('bottomNavItem/fontFamily', modes)) as string
|
|
64
64
|
const fontWeightRaw = getVariableByName('bottomNavItem/fontWeight', modes) ?? 500
|
|
65
65
|
const fontWeight =
|
|
66
66
|
typeof fontWeightRaw === 'number' ? fontWeightRaw.toString() : fontWeightRaw
|
|
67
67
|
const fontSize = (getVariableByName('bottomNavItem/fontSize', modes) ?? 11) as number
|
|
68
68
|
const lineHeight = (getVariableByName('bottomNavItem/lineHeight', modes) ?? 14) as number
|
|
69
69
|
|
|
70
|
-
const labelColor = (getVariableByName('bottomNavItem/label/color', modes)
|
|
70
|
+
const labelColor = (getVariableByName('bottomNavItem/label/color', modes)) as string
|
|
71
71
|
|
|
72
72
|
const resolvedIconColor =
|
|
73
|
-
iconColorOverride || (getVariableByName('bottomNavItem/icon/color', modes)
|
|
73
|
+
iconColorOverride || (getVariableByName('bottomNavItem/icon/color', modes)) as string
|
|
74
74
|
const resolvedIconSize =
|
|
75
75
|
iconSizeOverride ?? (getVariableByName('bottomNavItem/icon/size', modes) ?? 24) as number
|
|
76
76
|
|
|
@@ -12,7 +12,7 @@ import {
|
|
|
12
12
|
} from 'react-native'
|
|
13
13
|
import { getVariableByName } from '../../design-tokens/figma-variables-resolver'
|
|
14
14
|
import { usePressableWebSupport, type SafePressableProps, type WebAccessibilityProps } from '../../utils/web-platform-utils'
|
|
15
|
-
import { EMPTY_MODES
|
|
15
|
+
import { EMPTY_MODES } from '../../utils/react-utils'
|
|
16
16
|
import Icon from '../../icons/Icon'
|
|
17
17
|
import Skeleton from '../../skeleton/Skeleton'
|
|
18
18
|
import { useSkeleton } from '../../skeleton/SkeletonGroup'
|
|
@@ -95,6 +95,15 @@ const containerLayoutStyle = {
|
|
|
95
95
|
justifyContent: 'center' as const,
|
|
96
96
|
}
|
|
97
97
|
|
|
98
|
+
// Keeps the label on a single line. `flexShrink: 0` stops a tight flex parent
|
|
99
|
+
// from squeezing the text; on web `whiteSpace: 'nowrap'` is what actually
|
|
100
|
+
// prevents the line break (a bare `numberOfLines` line-clamp still allows the
|
|
101
|
+
// text to wrap inside a width-constrained pill in react-native-web).
|
|
102
|
+
const NO_WRAP_LABEL_STYLE: TextStyle = {
|
|
103
|
+
flexShrink: 0,
|
|
104
|
+
...(IS_WEB ? { whiteSpace: 'nowrap' as const } : {}),
|
|
105
|
+
}
|
|
106
|
+
|
|
98
107
|
// ---------------------------------------------------------------------------
|
|
99
108
|
// Token resolution
|
|
100
109
|
// ---------------------------------------------------------------------------
|
|
@@ -120,28 +129,28 @@ interface ButtonTokens {
|
|
|
120
129
|
}
|
|
121
130
|
|
|
122
131
|
function resolveButtonTokens(modes: Modes, disabled: boolean): ButtonTokens {
|
|
123
|
-
const backgroundColor = getVariableByName('button/background', modes)
|
|
124
|
-
const borderColor = getVariableByName('button/border/color', modes)
|
|
132
|
+
const backgroundColor = getVariableByName('button/background', modes)
|
|
133
|
+
const borderColor = getVariableByName('button/border/color', modes)
|
|
125
134
|
const borderWidth = getVariableByName('button/border/size', modes)
|
|
126
|
-
const radius = getVariableByName('button/radius', modes)
|
|
127
|
-
const paddingHorizontal = getVariableByName('button/padding/horizontal', modes)
|
|
128
|
-
const paddingVertical = getVariableByName('button/padding/vertical', modes)
|
|
129
|
-
const gap = getVariableByName('button/gap', modes)
|
|
135
|
+
const radius = getVariableByName('button/radius', modes)
|
|
136
|
+
const paddingHorizontal = getVariableByName('button/padding/horizontal', modes)
|
|
137
|
+
const paddingVertical = getVariableByName('button/padding/vertical', modes)
|
|
138
|
+
const gap = getVariableByName('button/gap', modes)
|
|
130
139
|
|
|
131
|
-
const fontFamily = getVariableByName('button/fontFamily', modes)
|
|
132
|
-
const fontWeightValue = getVariableByName('button/fontWeight', modes)
|
|
140
|
+
const fontFamily = getVariableByName('button/fontFamily', modes)
|
|
141
|
+
const fontWeightValue = getVariableByName('button/fontWeight', modes)
|
|
133
142
|
const fontWeight = typeof fontWeightValue === 'number' ? fontWeightValue.toString() : fontWeightValue
|
|
134
|
-
const lineHeight = getVariableByName('button/lineHeight', modes)
|
|
135
|
-
const fontSize = getVariableByName('button/fontSize', modes)
|
|
136
|
-
const textColor = getVariableByName('button/foreground', modes)
|
|
143
|
+
const lineHeight = getVariableByName('button/lineHeight', modes)
|
|
144
|
+
const fontSize = getVariableByName('button/fontSize', modes)
|
|
145
|
+
const textColor = getVariableByName('button/foreground', modes)
|
|
137
146
|
const iconSize = (getVariableByName('button/icon/size', modes) ?? 18) as number
|
|
138
147
|
|
|
139
148
|
// Pressed tokens are always resolved so the Pressable `style` callback can
|
|
140
149
|
// apply the pressed visual without scheduling a React render.
|
|
141
150
|
const pressedModes = { ...modes, 'Button / State': 'Pressed' }
|
|
142
|
-
const pressedBg = getVariableByName('button/background', pressedModes)
|
|
143
|
-
const pressedBorderColor = getVariableByName('button/border/color', pressedModes)
|
|
144
|
-
const pressedTextColor = (getVariableByName('button/foreground', pressedModes)
|
|
151
|
+
const pressedBg = getVariableByName('button/background', pressedModes)
|
|
152
|
+
const pressedBorderColor = getVariableByName('button/border/color', pressedModes)
|
|
153
|
+
const pressedTextColor = (getVariableByName('button/foreground', pressedModes)) as string
|
|
145
154
|
|
|
146
155
|
// Hover tokens are only meaningful on web. Skipping them on native saves
|
|
147
156
|
// ~3 token lookups + an object spread per render on every Button.
|
|
@@ -149,9 +158,9 @@ function resolveButtonTokens(modes: Modes, disabled: boolean): ButtonTokens {
|
|
|
149
158
|
let hoverTextColor: string | null = null
|
|
150
159
|
if (IS_WEB) {
|
|
151
160
|
const hoverModes = { ...modes, 'Button / State': 'Hover' }
|
|
152
|
-
const hoverBg = getVariableByName('button/background', hoverModes)
|
|
153
|
-
const hoverBorderColor = getVariableByName('button/border/color', hoverModes)
|
|
154
|
-
hoverTextColor = (getVariableByName('button/foreground', hoverModes)
|
|
161
|
+
const hoverBg = getVariableByName('button/background', hoverModes)
|
|
162
|
+
const hoverBorderColor = getVariableByName('button/border/color', hoverModes)
|
|
163
|
+
hoverTextColor = (getVariableByName('button/foreground', hoverModes)) as string
|
|
155
164
|
hoverContainer = { backgroundColor: hoverBg as string, borderColor: hoverBorderColor as string }
|
|
156
165
|
}
|
|
157
166
|
|
|
@@ -300,8 +309,9 @@ function ButtonImpl({
|
|
|
300
309
|
} else {
|
|
301
310
|
content = (
|
|
302
311
|
<Text
|
|
303
|
-
style={activeLabelStyle}
|
|
304
|
-
{
|
|
312
|
+
style={[activeLabelStyle, disableTruncation ? null : NO_WRAP_LABEL_STYLE]}
|
|
313
|
+
numberOfLines={disableTruncation ? undefined : 1}
|
|
314
|
+
ellipsizeMode={disableTruncation ? undefined : 'tail'}
|
|
305
315
|
>
|
|
306
316
|
{label}
|
|
307
317
|
</Text>
|
|
@@ -65,18 +65,18 @@ export function Card({
|
|
|
65
65
|
style,
|
|
66
66
|
}: CardProps) {
|
|
67
67
|
// Resolve Card Container Tokens
|
|
68
|
-
const backgroundColor = getVariableByName('card/background/color', modes)
|
|
69
|
-
const borderColor = getVariableByName('card/border/color', modes)
|
|
70
|
-
const borderWidth = parseFloat(getVariableByName('card/strokeWidth', modes)
|
|
71
|
-
const radius = parseFloat(getVariableByName('card/radius', modes)
|
|
72
|
-
const gap = parseFloat(getVariableByName('card/gap', modes)
|
|
73
|
-
const paddingHorizontal = parseFloat(getVariableByName('card/padding-horizontal', modes)
|
|
74
|
-
const paddingVertical = parseFloat(getVariableByName('card/padding-vertical', modes)
|
|
68
|
+
const backgroundColor = getVariableByName('card/background/color', modes);
|
|
69
|
+
const borderColor = getVariableByName('card/border/color', modes);
|
|
70
|
+
const borderWidth = parseFloat(getVariableByName('card/strokeWidth', modes)); // Ensure number
|
|
71
|
+
const radius = parseFloat(getVariableByName('card/radius', modes));
|
|
72
|
+
const gap = parseFloat(getVariableByName('card/gap', modes));
|
|
73
|
+
const paddingHorizontal = parseFloat(getVariableByName('card/padding-horizontal', modes));
|
|
74
|
+
const paddingVertical = parseFloat(getVariableByName('card/padding-vertical', modes));
|
|
75
75
|
|
|
76
76
|
// Resolve Content Wrapper Tokens
|
|
77
|
-
const contentGap = parseFloat(getVariableByName('card/content/gap', modes)
|
|
78
|
-
const contentPaddingHorizontal = parseFloat(getVariableByName('card/content/padding/horizontal', modes)
|
|
79
|
-
const contentPaddingVertical = parseFloat(getVariableByName('card/content/padding/vertical', modes)
|
|
77
|
+
const contentGap = parseFloat(getVariableByName('card/content/gap', modes));
|
|
78
|
+
const contentPaddingHorizontal = parseFloat(getVariableByName('card/content/padding/horizontal', modes));
|
|
79
|
+
const contentPaddingVertical = parseFloat(getVariableByName('card/content/padding/vertical', modes));
|
|
80
80
|
|
|
81
81
|
// Clone media to pass modes if it's a valid element, facilitating nested style resolution
|
|
82
82
|
const mediaWithModes = isValidElement(media)
|
|
@@ -163,14 +163,14 @@ function Title({ children, style, modes: propModes }: CardTextProps) {
|
|
|
163
163
|
const context = useContext(CardContext);
|
|
164
164
|
const modes = propModes || context.modes || {};
|
|
165
165
|
|
|
166
|
-
const color = getVariableByName('card/title/color', modes)
|
|
167
|
-
const fontSize = parseFloat(getVariableByName('card/title/fontSize', modes)
|
|
168
|
-
const fontFamily = getVariableByName('card/title/fontFamily', modes)
|
|
169
|
-
const lineHeight = parseFloat(getVariableByName('card/title/lineHeight', modes)
|
|
166
|
+
const color = getVariableByName('card/title/color', modes);
|
|
167
|
+
const fontSize = parseFloat(getVariableByName('card/title/fontSize', modes));
|
|
168
|
+
const fontFamily = getVariableByName('card/title/fontFamily', modes);
|
|
169
|
+
const lineHeight = parseFloat(getVariableByName('card/title/lineHeight', modes));
|
|
170
170
|
|
|
171
171
|
// Handling the potential typo in Figma variables "fonwWeight" vs "fontWeight"
|
|
172
172
|
// We check both keys to be safe.
|
|
173
|
-
const rawFontWeight = getVariableByName('card/title/fontWeight', modes)
|
|
173
|
+
const rawFontWeight = getVariableByName('card/title/fontWeight', modes);
|
|
174
174
|
const fontWeight = typeof rawFontWeight === 'number' ? rawFontWeight.toString() : rawFontWeight;
|
|
175
175
|
|
|
176
176
|
const textStyle: TextStyle = {
|
|
@@ -192,11 +192,11 @@ function SupportText({ children, style, modes: propModes }: CardTextProps) {
|
|
|
192
192
|
const context = useContext(CardContext);
|
|
193
193
|
const modes = propModes || context.modes || {};
|
|
194
194
|
|
|
195
|
-
const color = getVariableByName('card/supportive-text/color', modes)
|
|
196
|
-
const fontSize = parseFloat(getVariableByName('card/supportive-text/fontSize', modes)
|
|
197
|
-
const fontFamily = getVariableByName('card/supportive-text/fontFamily', modes)
|
|
198
|
-
const lineHeight = parseFloat(getVariableByName('card/supportive-text/lineHeight', modes)
|
|
199
|
-
const rawFontWeight = getVariableByName('card/supportive-text/fontWeight', modes)
|
|
195
|
+
const color = getVariableByName('card/supportive-text/color', modes);
|
|
196
|
+
const fontSize = parseFloat(getVariableByName('card/supportive-text/fontSize', modes));
|
|
197
|
+
const fontFamily = getVariableByName('card/supportive-text/fontFamily', modes);
|
|
198
|
+
const lineHeight = parseFloat(getVariableByName('card/supportive-text/lineHeight', modes));
|
|
199
|
+
const rawFontWeight = getVariableByName('card/supportive-text/fontWeight', modes);
|
|
200
200
|
const fontWeight = typeof rawFontWeight === 'number' ? rawFontWeight.toString() : rawFontWeight;
|
|
201
201
|
|
|
202
202
|
const textStyle: TextStyle = {
|
|
@@ -107,22 +107,22 @@ function resolveCardAdvisoryTokens(modes: Modes): CardAdvisoryTokens {
|
|
|
107
107
|
const paddingHorizontal = toNumber(getVariableByName('cardAdvisory/padding/horizontal', modes), 0)
|
|
108
108
|
const paddingVertical = toNumber(getVariableByName('cardAdvisory/padding/vertical', modes), 0)
|
|
109
109
|
const radius = toNumber(getVariableByName('cardAdvisory/radius', modes), 0)
|
|
110
|
-
const background = getVariableByName('cardAdvisory/background', modes)
|
|
110
|
+
const background = getVariableByName('cardAdvisory/background', modes)
|
|
111
111
|
|
|
112
112
|
const mainContentGap = toNumber(getVariableByName('cardAdvisory/mainContent/gap', modes), 16)
|
|
113
113
|
const contentGap = toNumber(getVariableByName('cardAdvisory/content/gap', modes), 6)
|
|
114
114
|
const headerGap = toNumber(getVariableByName('cardAdvisory/header/gap', modes), 8)
|
|
115
115
|
|
|
116
|
-
const titleColor = getVariableByName('cardAdvisory/title/foreground', modes)
|
|
116
|
+
const titleColor = getVariableByName('cardAdvisory/title/foreground', modes)
|
|
117
117
|
const titleFontSize = toNumber(getVariableByName('cardAdvisory/title/fontSize', modes), 26)
|
|
118
|
-
const titleFontFamily = getVariableByName('cardAdvisory/title/fontFamily', modes)
|
|
118
|
+
const titleFontFamily = getVariableByName('cardAdvisory/title/fontFamily', modes)
|
|
119
119
|
const titleLineHeight = toNumber(getVariableByName('cardAdvisory/title/lineHeight', modes), 26)
|
|
120
120
|
const titleFontWeight = toFontWeight(getVariableByName('cardAdvisory/title/fontWeight', modes), '900')
|
|
121
121
|
const titleDescenderAllowance = Math.ceil(titleFontSize * 0.16)
|
|
122
122
|
|
|
123
|
-
const descriptionColor = getVariableByName('cardAdvisory/description/foreground', modes)
|
|
123
|
+
const descriptionColor = getVariableByName('cardAdvisory/description/foreground', modes)
|
|
124
124
|
const descriptionFontSize = toNumber(getVariableByName('cardAdvisory/description/fontSize', modes), 12)
|
|
125
|
-
const descriptionFontFamily = getVariableByName('cardAdvisory/description/fontFamily', modes)
|
|
125
|
+
const descriptionFontFamily = getVariableByName('cardAdvisory/description/fontFamily', modes)
|
|
126
126
|
const descriptionLineHeight = toNumber(getVariableByName('cardAdvisory/description/lineHeight', modes), 16)
|
|
127
127
|
const descriptionFontWeight = toFontWeight(
|
|
128
128
|
getVariableByName('cardAdvisory/description/fontWeight', modes),
|
|
@@ -175,7 +175,7 @@ function resolveCardAdvisoryTokens(modes: Modes): CardAdvisoryTokens {
|
|
|
175
175
|
lineHeight: descriptionLineHeight,
|
|
176
176
|
width: '100%',
|
|
177
177
|
},
|
|
178
|
-
iconColor: (getVariableByName('cardAdvisory/icon/color', modes)
|
|
178
|
+
iconColor: (getVariableByName('cardAdvisory/icon/color', modes)) as string,
|
|
179
179
|
iconSize: toNumber(getVariableByName('cardAdvisory/icon/size', modes), 18),
|
|
180
180
|
}
|
|
181
181
|
}
|
|
@@ -121,32 +121,32 @@ function CardCTA({
|
|
|
121
121
|
const isRating = normalizedType === 'rating'
|
|
122
122
|
const isSip = normalizedType === 'sip'
|
|
123
123
|
|
|
124
|
-
const background = getVariableByName('cardCTA/background', modes)
|
|
125
|
-
const radius = getVariableByName('cardCTA/radius', modes)
|
|
126
|
-
const borderSize = getVariableByName('cardCTA/border/size', modes)
|
|
127
|
-
const borderColor = getVariableByName('cardCTA/border/color', modes)
|
|
124
|
+
const background = getVariableByName('cardCTA/background', modes)
|
|
125
|
+
const radius = getVariableByName('cardCTA/radius', modes)
|
|
126
|
+
const borderSize = getVariableByName('cardCTA/border/size', modes)
|
|
127
|
+
const borderColor = getVariableByName('cardCTA/border/color', modes)
|
|
128
128
|
|
|
129
|
-
const leftPaddingH = getVariableByName('cardCTA/left-wrap/padding/horizontal', modes)
|
|
130
|
-
const leftPaddingV = getVariableByName('cardCTA/left-wrap/padding/vertical', modes)
|
|
131
|
-
const leftGap = getVariableByName('cardCTA/left-wrap/gap', modes)
|
|
129
|
+
const leftPaddingH = getVariableByName('cardCTA/left-wrap/padding/horizontal', modes)
|
|
130
|
+
const leftPaddingV = getVariableByName('cardCTA/left-wrap/padding/vertical', modes)
|
|
131
|
+
const leftGap = getVariableByName('cardCTA/left-wrap/gap', modes)
|
|
132
132
|
|
|
133
|
-
const rightPaddingH = getVariableByName('cardCTA/right-wrap/padding/horizontal', modes)
|
|
134
|
-
const rightPaddingV = getVariableByName('cardCTA/right-wrap/padding/vertical', modes)
|
|
133
|
+
const rightPaddingH = getVariableByName('cardCTA/right-wrap/padding/horizontal', modes)
|
|
134
|
+
const rightPaddingV = getVariableByName('cardCTA/right-wrap/padding/vertical', modes)
|
|
135
135
|
|
|
136
|
-
const textGap = getVariableByName('cardCTA/text-wrap/gap', modes)
|
|
136
|
+
const textGap = getVariableByName('cardCTA/text-wrap/gap', modes)
|
|
137
137
|
|
|
138
|
-
const titleColor = getVariableByName('cardCTA/title/color', modes)
|
|
139
|
-
const titleFontFamily = getVariableByName('cardCTA/title/fontFamily', modes)
|
|
140
|
-
const titleFontSize = getVariableByName('cardCTA/title/fontSize', modes)
|
|
141
|
-
const titleLineHeight = getVariableByName('cardCTA/title/lineHeight', modes)
|
|
142
|
-
const titleFontWeightRaw = getVariableByName('cardCTA/title/fontWeight', modes)
|
|
138
|
+
const titleColor = getVariableByName('cardCTA/title/color', modes)
|
|
139
|
+
const titleFontFamily = getVariableByName('cardCTA/title/fontFamily', modes)
|
|
140
|
+
const titleFontSize = getVariableByName('cardCTA/title/fontSize', modes)
|
|
141
|
+
const titleLineHeight = getVariableByName('cardCTA/title/lineHeight', modes)
|
|
142
|
+
const titleFontWeightRaw = getVariableByName('cardCTA/title/fontWeight', modes)
|
|
143
143
|
const titleFontWeight = typeof titleFontWeightRaw === 'number' ? titleFontWeightRaw.toString() : titleFontWeightRaw
|
|
144
144
|
|
|
145
|
-
const bodyColor = getVariableByName('cardCTA/body/color', modes)
|
|
146
|
-
const bodyFontFamily = getVariableByName('cardCTA/body/fontFamily', modes)
|
|
147
|
-
const bodyFontSize = getVariableByName('cardCTA/body/fontSize', modes)
|
|
148
|
-
const bodyLineHeight = getVariableByName('cardCTA/body/lineHeight', modes)
|
|
149
|
-
const bodyFontWeightRaw = getVariableByName('cardCTA/body/fontWeight', modes)
|
|
145
|
+
const bodyColor = getVariableByName('cardCTA/body/color', modes)
|
|
146
|
+
const bodyFontFamily = getVariableByName('cardCTA/body/fontFamily', modes)
|
|
147
|
+
const bodyFontSize = getVariableByName('cardCTA/body/fontSize', modes)
|
|
148
|
+
const bodyLineHeight = getVariableByName('cardCTA/body/lineHeight', modes)
|
|
149
|
+
const bodyFontWeightRaw = getVariableByName('cardCTA/body/fontWeight', modes)
|
|
150
150
|
const bodyFontWeight = typeof bodyFontWeightRaw === 'number' ? bodyFontWeightRaw.toString() : bodyFontWeightRaw
|
|
151
151
|
|
|
152
152
|
const ratingContentGap = getOptionalVariableByName('cardCTA/rating/content/gap', modes, 12)
|
|
@@ -191,7 +191,7 @@ function CardCTA({
|
|
|
191
191
|
const nonWrappingButtonLabel = effectiveButtonLabel.replace(/\s/g, '\u00A0')
|
|
192
192
|
const [measuredButtonLabelWidth, setMeasuredButtonLabelWidth] = React.useState<number | null>(null)
|
|
193
193
|
|
|
194
|
-
const buttonPaddingH = getVariableByName('button/padding/horizontal', buttonModes)
|
|
194
|
+
const buttonPaddingH = getVariableByName('button/padding/horizontal', buttonModes)
|
|
195
195
|
const buttonBorderSize = getVariableByName('button/border/size', buttonModes) ?? 1
|
|
196
196
|
// Small safety pad so sub-pixel rounding between the measure pass and the
|
|
197
197
|
// rendered glyph run can never clip the final character.
|