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
|
@@ -9,6 +9,9 @@ import Text from '../Text/Text';
|
|
|
9
9
|
import ListItem from '../ListItem/ListItem';
|
|
10
10
|
import Divider from '../Divider/Divider';
|
|
11
11
|
import Button from '../Button/Button';
|
|
12
|
+
import Nudge from '../Nudge/Nudge';
|
|
13
|
+
import Avatar from '../Avatar/Avatar';
|
|
14
|
+
import TextSegment from '../TextSegment/TextSegment';
|
|
12
15
|
|
|
13
16
|
/**
|
|
14
17
|
* A single benefit row rendered with the shared `ListItem` primitive: a
|
|
@@ -38,8 +41,11 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
|
|
|
38
41
|
function BenefitCard({
|
|
39
42
|
headerTitle = 'You will earn',
|
|
40
43
|
headerItem,
|
|
44
|
+
headerItems,
|
|
45
|
+
header,
|
|
41
46
|
showHeader = true,
|
|
42
|
-
bodyTitle
|
|
47
|
+
bodyTitle,
|
|
48
|
+
bodyHeader,
|
|
43
49
|
items,
|
|
44
50
|
children,
|
|
45
51
|
buttonLabel = 'Upgrade',
|
|
@@ -54,11 +60,16 @@ function BenefitCard({
|
|
|
54
60
|
}) {
|
|
55
61
|
const tokens = useMemo(() => resolveTokens(modes), [modes]);
|
|
56
62
|
|
|
57
|
-
//
|
|
58
|
-
|
|
63
|
+
// Component-level modes. `List Item Style: Minimal` and `Nudge padding: None`
|
|
64
|
+
// are BenefitCard's own defaults: they live on the card and cascade down into
|
|
65
|
+
// every child (the list-wrap rows and the upsell nudge) rather than being
|
|
66
|
+
// threaded onto each individual item. Consumer `modes` always win.
|
|
67
|
+
const cascadeModes = useMemo(() => ({
|
|
59
68
|
'List Item Style': 'Minimal',
|
|
69
|
+
'Nudge padding': 'None',
|
|
60
70
|
...modes
|
|
61
71
|
}), [modes]);
|
|
72
|
+
// Sub-element modes layer their own specifics on top of the consumer modes.
|
|
62
73
|
const iconModes = useMemo(() => ({
|
|
63
74
|
AppearanceBrand: 'Secondary',
|
|
64
75
|
...modes
|
|
@@ -72,6 +83,13 @@ function BenefitCard({
|
|
|
72
83
|
'Button / Size': 'S',
|
|
73
84
|
...modes
|
|
74
85
|
}), [modes]);
|
|
86
|
+
// The upsell nudge keeps a white/transparent background (`AppearanceBrand:
|
|
87
|
+
// Neutral` → `nudge/background: #ffffff`); its `Nudge padding: None` cascades
|
|
88
|
+
// in from `cascadeModes` so it sits flush with the card.
|
|
89
|
+
const nudgeModes = useMemo(() => ({
|
|
90
|
+
AppearanceBrand: 'Neutral',
|
|
91
|
+
...cascadeModes
|
|
92
|
+
}), [cascadeModes]);
|
|
75
93
|
const renderItem = (item, key) => {
|
|
76
94
|
const leading = item.leading ?? (item.icon != null ? /*#__PURE__*/_jsx(Icon, {
|
|
77
95
|
iconName: item.icon,
|
|
@@ -89,23 +107,60 @@ function BenefitCard({
|
|
|
89
107
|
title: item.title,
|
|
90
108
|
leading: leading,
|
|
91
109
|
trailing: trailing,
|
|
92
|
-
onPress: item.onPress
|
|
93
|
-
modes: listItemModes
|
|
110
|
+
onPress: item.onPress
|
|
94
111
|
}, key);
|
|
95
112
|
};
|
|
96
|
-
|
|
113
|
+
|
|
114
|
+
// Header "list wrap" — slot-based. Precedence: `header` slot > `headerItems`
|
|
115
|
+
// array > legacy single `headerItem` > Figma default rows. The component-level
|
|
116
|
+
// `cascadeModes` are pushed into the whole group at once, so individual rows
|
|
117
|
+
// never carry their own list-item modes.
|
|
118
|
+
const headerListSource = header ? header : (headerItems ?? (headerItem ? [headerItem] : DEFAULT_HEADER_ITEMS)).map((item, index) => renderItem(item, `header-${index}`));
|
|
119
|
+
const headerListNodes = cloneChildrenWithModes(headerListSource, cascadeModes);
|
|
120
|
+
const headerNode = showHeader ? /*#__PURE__*/_jsxs(View, {
|
|
97
121
|
style: styles.section,
|
|
98
122
|
children: [/*#__PURE__*/_jsxs(View, {
|
|
99
123
|
style: styles.cardHeader,
|
|
100
124
|
children: [headerTitle != null ? /*#__PURE__*/_jsx(RNText, {
|
|
101
125
|
style: tokens.title,
|
|
102
126
|
children: headerTitle
|
|
103
|
-
}) : null,
|
|
127
|
+
}) : null, /*#__PURE__*/_jsx(View, {
|
|
128
|
+
style: tokens.listWrap,
|
|
129
|
+
children: headerListNodes
|
|
130
|
+
})]
|
|
104
131
|
}), /*#__PURE__*/_jsx(Divider, {
|
|
105
132
|
modes: modes
|
|
106
133
|
})]
|
|
107
134
|
}) : null;
|
|
108
|
-
|
|
135
|
+
|
|
136
|
+
// Body "header" slot (between the divider and the body list). Precedence:
|
|
137
|
+
// explicit `bodyHeader` slot > legacy `bodyTitle` text > Figma upsell nudge.
|
|
138
|
+
const bodyHeaderNode = bodyHeader === null || bodyHeader === false ? null : bodyHeader !== undefined ? renderSlot(bodyHeader, cascadeModes) : bodyTitle != null ? /*#__PURE__*/_jsx(RNText, {
|
|
139
|
+
style: tokens.title,
|
|
140
|
+
children: bodyTitle
|
|
141
|
+
}) : /*#__PURE__*/_jsx(Nudge, {
|
|
142
|
+
type: "inline-compact",
|
|
143
|
+
modes: {
|
|
144
|
+
...nudgeModes,
|
|
145
|
+
...cascadeModes
|
|
146
|
+
},
|
|
147
|
+
startSlot: DEFAULT_UPSELL_AVATAR,
|
|
148
|
+
children: /*#__PURE__*/_jsx(TextSegment, {
|
|
149
|
+
modes: cascadeModes,
|
|
150
|
+
segments: [{
|
|
151
|
+
text: 'Upgrade to '
|
|
152
|
+
}, {
|
|
153
|
+
text: 'JioFinance+',
|
|
154
|
+
modes: {
|
|
155
|
+
'Text Appearance': 'Primary'
|
|
156
|
+
}
|
|
157
|
+
}, {
|
|
158
|
+
text: ' and earn more'
|
|
159
|
+
}]
|
|
160
|
+
})
|
|
161
|
+
});
|
|
162
|
+
const bodyListSource = children ? children : (items ?? DEFAULT_ITEMS).map((item, index) => renderItem(item, index));
|
|
163
|
+
const bodyList = cloneChildrenWithModes(bodyListSource, cascadeModes);
|
|
109
164
|
const ctaNode = button ?? /*#__PURE__*/_jsx(Button, {
|
|
110
165
|
label: buttonLabel,
|
|
111
166
|
modes: ctaModes,
|
|
@@ -116,15 +171,9 @@ function BenefitCard({
|
|
|
116
171
|
width
|
|
117
172
|
}), [tokens.container, width]);
|
|
118
173
|
const content = /*#__PURE__*/_jsxs(_Fragment, {
|
|
119
|
-
children: [headerNode, /*#__PURE__*/
|
|
120
|
-
style: tokens.
|
|
121
|
-
children:
|
|
122
|
-
style: tokens.title,
|
|
123
|
-
children: bodyTitle
|
|
124
|
-
}) : null, /*#__PURE__*/_jsx(View, {
|
|
125
|
-
style: tokens.listWrap,
|
|
126
|
-
children: bodyList
|
|
127
|
-
})]
|
|
174
|
+
children: [headerNode, bodyHeaderNode, /*#__PURE__*/_jsx(View, {
|
|
175
|
+
style: tokens.listWrap,
|
|
176
|
+
children: bodyList
|
|
128
177
|
}), showButton ? ctaNode : null]
|
|
129
178
|
});
|
|
130
179
|
if (onPress) {
|
|
@@ -183,10 +232,6 @@ function resolveTokens(modes) {
|
|
|
183
232
|
flexDirection: 'column',
|
|
184
233
|
alignItems: 'flex-start'
|
|
185
234
|
},
|
|
186
|
-
body: {
|
|
187
|
-
alignSelf: 'stretch',
|
|
188
|
-
gap
|
|
189
|
-
},
|
|
190
235
|
listWrap: {
|
|
191
236
|
alignSelf: 'stretch',
|
|
192
237
|
gap
|
|
@@ -202,6 +247,26 @@ function resolveTokens(modes) {
|
|
|
202
247
|
}
|
|
203
248
|
};
|
|
204
249
|
}
|
|
250
|
+
|
|
251
|
+
// Cascades `modes` into a slot node and unwraps a single child so the slot can
|
|
252
|
+
// be rendered inline without an extra fragment.
|
|
253
|
+
function renderSlot(node, modes) {
|
|
254
|
+
const processed = cloneChildrenWithModes(node, modes);
|
|
255
|
+
return processed.length === 1 ? processed[0] : processed;
|
|
256
|
+
}
|
|
257
|
+
|
|
258
|
+
// Figma reference rows for the header list wrap (two highlighted "JioPoints"
|
|
259
|
+
// rows). Used only when no `header` slot / `headerItems` / legacy `headerItem`
|
|
260
|
+
// is supplied.
|
|
261
|
+
const DEFAULT_HEADER_ITEMS = [{
|
|
262
|
+
icon: 'ic_jewellery_diamond',
|
|
263
|
+
title: 'JioPoints',
|
|
264
|
+
trailingText: 'Up to 2000 pts'
|
|
265
|
+
}, {
|
|
266
|
+
icon: 'ic_jewellery_diamond',
|
|
267
|
+
title: 'JioPoints',
|
|
268
|
+
trailingText: 'Up to 2000 pts'
|
|
269
|
+
}];
|
|
205
270
|
const DEFAULT_ITEMS = [{
|
|
206
271
|
icon: 'ic_card',
|
|
207
272
|
title: 'Up to ₹5000 cashback'
|
|
@@ -209,6 +274,15 @@ const DEFAULT_ITEMS = [{
|
|
|
209
274
|
icon: 'ic_card',
|
|
210
275
|
title: '25% extra JioPoints'
|
|
211
276
|
}];
|
|
277
|
+
|
|
278
|
+
// Start-slot avatar for the default upsell nudge. `modes` cascade in from the
|
|
279
|
+
// nudge (XS keeps it compact next to the inline message).
|
|
280
|
+
const DEFAULT_UPSELL_AVATAR = /*#__PURE__*/_jsx(Avatar, {
|
|
281
|
+
style: "Image",
|
|
282
|
+
modes: {
|
|
283
|
+
'Avatar Size': 'XS'
|
|
284
|
+
}
|
|
285
|
+
});
|
|
212
286
|
const styles = StyleSheet.create({
|
|
213
287
|
section: {
|
|
214
288
|
alignSelf: 'stretch',
|
|
@@ -37,8 +37,8 @@ function BottomNav({
|
|
|
37
37
|
};
|
|
38
38
|
|
|
39
39
|
// Resolve container styling tokens
|
|
40
|
-
const backgroundColor = getVariableByName('bottomNav/background', modes)
|
|
41
|
-
const borderColor = getVariableByName('bottomNav/border/color', modes)
|
|
40
|
+
const backgroundColor = getVariableByName('bottomNav/background', modes);
|
|
41
|
+
const borderColor = getVariableByName('bottomNav/border/color', modes);
|
|
42
42
|
const borderWidth = getVariableByName('bottomNav/border/width', modes) ?? 1;
|
|
43
43
|
const paddingTop = getVariableByName('bottomNav/padding/top', modes) ?? 10;
|
|
44
44
|
const paddingBottom = getVariableByName('bottomNav/padding/bottom', modes) ?? 23;
|
|
@@ -23,13 +23,13 @@ const focusOverlayStyle = {
|
|
|
23
23
|
};
|
|
24
24
|
function resolveBottomNavItemTokens(modes, disabled, iconColorOverride, iconSizeOverride) {
|
|
25
25
|
const gap = getVariableByName('bottomNavItem/gap', modes) ?? 6;
|
|
26
|
-
const fontFamily = getVariableByName('bottomNavItem/fontFamily', modes)
|
|
26
|
+
const fontFamily = getVariableByName('bottomNavItem/fontFamily', modes);
|
|
27
27
|
const fontWeightRaw = getVariableByName('bottomNavItem/fontWeight', modes) ?? 500;
|
|
28
28
|
const fontWeight = typeof fontWeightRaw === 'number' ? fontWeightRaw.toString() : fontWeightRaw;
|
|
29
29
|
const fontSize = getVariableByName('bottomNavItem/fontSize', modes) ?? 11;
|
|
30
30
|
const lineHeight = getVariableByName('bottomNavItem/lineHeight', modes) ?? 14;
|
|
31
|
-
const labelColor = getVariableByName('bottomNavItem/label/color', modes)
|
|
32
|
-
const resolvedIconColor = iconColorOverride || getVariableByName('bottomNavItem/icon/color', modes)
|
|
31
|
+
const labelColor = getVariableByName('bottomNavItem/label/color', modes);
|
|
32
|
+
const resolvedIconColor = iconColorOverride || getVariableByName('bottomNavItem/icon/color', modes);
|
|
33
33
|
const resolvedIconSize = iconSizeOverride ?? getVariableByName('bottomNavItem/icon/size', modes) ?? 24;
|
|
34
34
|
return {
|
|
35
35
|
baseContainerStyle: {
|
|
@@ -4,7 +4,7 @@ import React, { useCallback, useMemo, useRef, useState } from 'react';
|
|
|
4
4
|
import { Platform, Pressable, Text, View } from 'react-native';
|
|
5
5
|
import { getVariableByName } from '../../design-tokens/figma-variables-resolver';
|
|
6
6
|
import { usePressableWebSupport } from '../../utils/web-platform-utils';
|
|
7
|
-
import { EMPTY_MODES
|
|
7
|
+
import { EMPTY_MODES } from '../../utils/react-utils';
|
|
8
8
|
import Icon from '../../icons/Icon';
|
|
9
9
|
import Skeleton from '../../skeleton/Skeleton';
|
|
10
10
|
import { useSkeleton } from '../../skeleton/SkeletonGroup';
|
|
@@ -31,6 +31,17 @@ const containerLayoutStyle = {
|
|
|
31
31
|
justifyContent: 'center'
|
|
32
32
|
};
|
|
33
33
|
|
|
34
|
+
// Keeps the label on a single line. `flexShrink: 0` stops a tight flex parent
|
|
35
|
+
// from squeezing the text; on web `whiteSpace: 'nowrap'` is what actually
|
|
36
|
+
// prevents the line break (a bare `numberOfLines` line-clamp still allows the
|
|
37
|
+
// text to wrap inside a width-constrained pill in react-native-web).
|
|
38
|
+
const NO_WRAP_LABEL_STYLE = {
|
|
39
|
+
flexShrink: 0,
|
|
40
|
+
...(IS_WEB ? {
|
|
41
|
+
whiteSpace: 'nowrap'
|
|
42
|
+
} : {})
|
|
43
|
+
};
|
|
44
|
+
|
|
34
45
|
// ---------------------------------------------------------------------------
|
|
35
46
|
// Token resolution
|
|
36
47
|
// ---------------------------------------------------------------------------
|
|
@@ -42,19 +53,19 @@ const containerLayoutStyle = {
|
|
|
42
53
|
// ---------------------------------------------------------------------------
|
|
43
54
|
|
|
44
55
|
function resolveButtonTokens(modes, disabled) {
|
|
45
|
-
const backgroundColor = getVariableByName('button/background', modes)
|
|
46
|
-
const borderColor = getVariableByName('button/border/color', modes)
|
|
56
|
+
const backgroundColor = getVariableByName('button/background', modes);
|
|
57
|
+
const borderColor = getVariableByName('button/border/color', modes);
|
|
47
58
|
const borderWidth = getVariableByName('button/border/size', modes);
|
|
48
|
-
const radius = getVariableByName('button/radius', modes)
|
|
49
|
-
const paddingHorizontal = getVariableByName('button/padding/horizontal', modes)
|
|
50
|
-
const paddingVertical = getVariableByName('button/padding/vertical', modes)
|
|
51
|
-
const gap = getVariableByName('button/gap', modes)
|
|
52
|
-
const fontFamily = getVariableByName('button/fontFamily', modes)
|
|
53
|
-
const fontWeightValue = getVariableByName('button/fontWeight', modes)
|
|
59
|
+
const radius = getVariableByName('button/radius', modes);
|
|
60
|
+
const paddingHorizontal = getVariableByName('button/padding/horizontal', modes);
|
|
61
|
+
const paddingVertical = getVariableByName('button/padding/vertical', modes);
|
|
62
|
+
const gap = getVariableByName('button/gap', modes);
|
|
63
|
+
const fontFamily = getVariableByName('button/fontFamily', modes);
|
|
64
|
+
const fontWeightValue = getVariableByName('button/fontWeight', modes);
|
|
54
65
|
const fontWeight = typeof fontWeightValue === 'number' ? fontWeightValue.toString() : fontWeightValue;
|
|
55
|
-
const lineHeight = getVariableByName('button/lineHeight', modes)
|
|
56
|
-
const fontSize = getVariableByName('button/fontSize', modes)
|
|
57
|
-
const textColor = getVariableByName('button/foreground', modes)
|
|
66
|
+
const lineHeight = getVariableByName('button/lineHeight', modes);
|
|
67
|
+
const fontSize = getVariableByName('button/fontSize', modes);
|
|
68
|
+
const textColor = getVariableByName('button/foreground', modes);
|
|
58
69
|
const iconSize = getVariableByName('button/icon/size', modes) ?? 18;
|
|
59
70
|
|
|
60
71
|
// Pressed tokens are always resolved so the Pressable `style` callback can
|
|
@@ -63,9 +74,9 @@ function resolveButtonTokens(modes, disabled) {
|
|
|
63
74
|
...modes,
|
|
64
75
|
'Button / State': 'Pressed'
|
|
65
76
|
};
|
|
66
|
-
const pressedBg = getVariableByName('button/background', pressedModes)
|
|
67
|
-
const pressedBorderColor = getVariableByName('button/border/color', pressedModes)
|
|
68
|
-
const pressedTextColor = getVariableByName('button/foreground', pressedModes)
|
|
77
|
+
const pressedBg = getVariableByName('button/background', pressedModes);
|
|
78
|
+
const pressedBorderColor = getVariableByName('button/border/color', pressedModes);
|
|
79
|
+
const pressedTextColor = getVariableByName('button/foreground', pressedModes);
|
|
69
80
|
|
|
70
81
|
// Hover tokens are only meaningful on web. Skipping them on native saves
|
|
71
82
|
// ~3 token lookups + an object spread per render on every Button.
|
|
@@ -76,9 +87,9 @@ function resolveButtonTokens(modes, disabled) {
|
|
|
76
87
|
...modes,
|
|
77
88
|
'Button / State': 'Hover'
|
|
78
89
|
};
|
|
79
|
-
const hoverBg = getVariableByName('button/background', hoverModes)
|
|
80
|
-
const hoverBorderColor = getVariableByName('button/border/color', hoverModes)
|
|
81
|
-
hoverTextColor = getVariableByName('button/foreground', hoverModes)
|
|
90
|
+
const hoverBg = getVariableByName('button/background', hoverModes);
|
|
91
|
+
const hoverBorderColor = getVariableByName('button/border/color', hoverModes);
|
|
92
|
+
hoverTextColor = getVariableByName('button/foreground', hoverModes);
|
|
82
93
|
hoverContainer = {
|
|
83
94
|
backgroundColor: hoverBg,
|
|
84
95
|
borderColor: hoverBorderColor
|
|
@@ -214,8 +225,9 @@ function ButtonImpl({
|
|
|
214
225
|
content = children;
|
|
215
226
|
} else {
|
|
216
227
|
content = /*#__PURE__*/_jsx(Text, {
|
|
217
|
-
style: activeLabelStyle,
|
|
218
|
-
|
|
228
|
+
style: [activeLabelStyle, disableTruncation ? null : NO_WRAP_LABEL_STYLE],
|
|
229
|
+
numberOfLines: disableTruncation ? undefined : 1,
|
|
230
|
+
ellipsizeMode: disableTruncation ? undefined : 'tail',
|
|
219
231
|
children: label
|
|
220
232
|
});
|
|
221
233
|
}
|
|
@@ -35,18 +35,18 @@ export function Card({
|
|
|
35
35
|
style
|
|
36
36
|
}) {
|
|
37
37
|
// Resolve Card Container Tokens
|
|
38
|
-
const backgroundColor = getVariableByName('card/background/color', modes)
|
|
39
|
-
const borderColor = getVariableByName('card/border/color', modes)
|
|
40
|
-
const borderWidth = parseFloat(getVariableByName('card/strokeWidth', modes)
|
|
41
|
-
const radius = parseFloat(getVariableByName('card/radius', modes)
|
|
42
|
-
const gap = parseFloat(getVariableByName('card/gap', modes)
|
|
43
|
-
const paddingHorizontal = parseFloat(getVariableByName('card/padding-horizontal', modes)
|
|
44
|
-
const paddingVertical = parseFloat(getVariableByName('card/padding-vertical', modes)
|
|
38
|
+
const backgroundColor = getVariableByName('card/background/color', modes);
|
|
39
|
+
const borderColor = getVariableByName('card/border/color', modes);
|
|
40
|
+
const borderWidth = parseFloat(getVariableByName('card/strokeWidth', modes)); // Ensure number
|
|
41
|
+
const radius = parseFloat(getVariableByName('card/radius', modes));
|
|
42
|
+
const gap = parseFloat(getVariableByName('card/gap', modes));
|
|
43
|
+
const paddingHorizontal = parseFloat(getVariableByName('card/padding-horizontal', modes));
|
|
44
|
+
const paddingVertical = parseFloat(getVariableByName('card/padding-vertical', modes));
|
|
45
45
|
|
|
46
46
|
// Resolve Content Wrapper Tokens
|
|
47
|
-
const contentGap = parseFloat(getVariableByName('card/content/gap', modes)
|
|
48
|
-
const contentPaddingHorizontal = parseFloat(getVariableByName('card/content/padding/horizontal', modes)
|
|
49
|
-
const contentPaddingVertical = parseFloat(getVariableByName('card/content/padding/vertical', modes)
|
|
47
|
+
const contentGap = parseFloat(getVariableByName('card/content/gap', modes));
|
|
48
|
+
const contentPaddingHorizontal = parseFloat(getVariableByName('card/content/padding/horizontal', modes));
|
|
49
|
+
const contentPaddingVertical = parseFloat(getVariableByName('card/content/padding/vertical', modes));
|
|
50
50
|
|
|
51
51
|
// Clone media to pass modes if it's a valid element, facilitating nested style resolution
|
|
52
52
|
const mediaWithModes = /*#__PURE__*/isValidElement(media) ? /*#__PURE__*/cloneElement(media, {
|
|
@@ -131,14 +131,14 @@ function Title({
|
|
|
131
131
|
}) {
|
|
132
132
|
const context = useContext(CardContext);
|
|
133
133
|
const modes = propModes || context.modes || {};
|
|
134
|
-
const color = getVariableByName('card/title/color', modes)
|
|
135
|
-
const fontSize = parseFloat(getVariableByName('card/title/fontSize', modes)
|
|
136
|
-
const fontFamily = getVariableByName('card/title/fontFamily', modes)
|
|
137
|
-
const lineHeight = parseFloat(getVariableByName('card/title/lineHeight', modes)
|
|
134
|
+
const color = getVariableByName('card/title/color', modes);
|
|
135
|
+
const fontSize = parseFloat(getVariableByName('card/title/fontSize', modes));
|
|
136
|
+
const fontFamily = getVariableByName('card/title/fontFamily', modes);
|
|
137
|
+
const lineHeight = parseFloat(getVariableByName('card/title/lineHeight', modes));
|
|
138
138
|
|
|
139
139
|
// Handling the potential typo in Figma variables "fonwWeight" vs "fontWeight"
|
|
140
140
|
// We check both keys to be safe.
|
|
141
|
-
const rawFontWeight = getVariableByName('card/title/fontWeight', modes)
|
|
141
|
+
const rawFontWeight = getVariableByName('card/title/fontWeight', modes);
|
|
142
142
|
const fontWeight = typeof rawFontWeight === 'number' ? rawFontWeight.toString() : rawFontWeight;
|
|
143
143
|
const textStyle = {
|
|
144
144
|
color,
|
|
@@ -164,11 +164,11 @@ function SupportText({
|
|
|
164
164
|
}) {
|
|
165
165
|
const context = useContext(CardContext);
|
|
166
166
|
const modes = propModes || context.modes || {};
|
|
167
|
-
const color = getVariableByName('card/supportive-text/color', modes)
|
|
168
|
-
const fontSize = parseFloat(getVariableByName('card/supportive-text/fontSize', modes)
|
|
169
|
-
const fontFamily = getVariableByName('card/supportive-text/fontFamily', modes)
|
|
170
|
-
const lineHeight = parseFloat(getVariableByName('card/supportive-text/lineHeight', modes)
|
|
171
|
-
const rawFontWeight = getVariableByName('card/supportive-text/fontWeight', modes)
|
|
167
|
+
const color = getVariableByName('card/supportive-text/color', modes);
|
|
168
|
+
const fontSize = parseFloat(getVariableByName('card/supportive-text/fontSize', modes));
|
|
169
|
+
const fontFamily = getVariableByName('card/supportive-text/fontFamily', modes);
|
|
170
|
+
const lineHeight = parseFloat(getVariableByName('card/supportive-text/lineHeight', modes));
|
|
171
|
+
const rawFontWeight = getVariableByName('card/supportive-text/fontWeight', modes);
|
|
172
172
|
const fontWeight = typeof rawFontWeight === 'number' ? rawFontWeight.toString() : rawFontWeight;
|
|
173
173
|
const textStyle = {
|
|
174
174
|
color,
|
|
@@ -34,19 +34,19 @@ function resolveCardAdvisoryTokens(modes) {
|
|
|
34
34
|
const paddingHorizontal = toNumber(getVariableByName('cardAdvisory/padding/horizontal', modes), 0);
|
|
35
35
|
const paddingVertical = toNumber(getVariableByName('cardAdvisory/padding/vertical', modes), 0);
|
|
36
36
|
const radius = toNumber(getVariableByName('cardAdvisory/radius', modes), 0);
|
|
37
|
-
const background = getVariableByName('cardAdvisory/background', modes)
|
|
37
|
+
const background = getVariableByName('cardAdvisory/background', modes);
|
|
38
38
|
const mainContentGap = toNumber(getVariableByName('cardAdvisory/mainContent/gap', modes), 16);
|
|
39
39
|
const contentGap = toNumber(getVariableByName('cardAdvisory/content/gap', modes), 6);
|
|
40
40
|
const headerGap = toNumber(getVariableByName('cardAdvisory/header/gap', modes), 8);
|
|
41
|
-
const titleColor = getVariableByName('cardAdvisory/title/foreground', modes)
|
|
41
|
+
const titleColor = getVariableByName('cardAdvisory/title/foreground', modes);
|
|
42
42
|
const titleFontSize = toNumber(getVariableByName('cardAdvisory/title/fontSize', modes), 26);
|
|
43
|
-
const titleFontFamily = getVariableByName('cardAdvisory/title/fontFamily', modes)
|
|
43
|
+
const titleFontFamily = getVariableByName('cardAdvisory/title/fontFamily', modes);
|
|
44
44
|
const titleLineHeight = toNumber(getVariableByName('cardAdvisory/title/lineHeight', modes), 26);
|
|
45
45
|
const titleFontWeight = toFontWeight(getVariableByName('cardAdvisory/title/fontWeight', modes), '900');
|
|
46
46
|
const titleDescenderAllowance = Math.ceil(titleFontSize * 0.16);
|
|
47
|
-
const descriptionColor = getVariableByName('cardAdvisory/description/foreground', modes)
|
|
47
|
+
const descriptionColor = getVariableByName('cardAdvisory/description/foreground', modes);
|
|
48
48
|
const descriptionFontSize = toNumber(getVariableByName('cardAdvisory/description/fontSize', modes), 12);
|
|
49
|
-
const descriptionFontFamily = getVariableByName('cardAdvisory/description/fontFamily', modes)
|
|
49
|
+
const descriptionFontFamily = getVariableByName('cardAdvisory/description/fontFamily', modes);
|
|
50
50
|
const descriptionLineHeight = toNumber(getVariableByName('cardAdvisory/description/lineHeight', modes), 16);
|
|
51
51
|
const descriptionFontWeight = toFontWeight(getVariableByName('cardAdvisory/description/fontWeight', modes), '500');
|
|
52
52
|
return {
|
|
@@ -95,7 +95,7 @@ function resolveCardAdvisoryTokens(modes) {
|
|
|
95
95
|
lineHeight: descriptionLineHeight,
|
|
96
96
|
width: '100%'
|
|
97
97
|
},
|
|
98
|
-
iconColor: getVariableByName('cardAdvisory/icon/color', modes)
|
|
98
|
+
iconColor: getVariableByName('cardAdvisory/icon/color', modes),
|
|
99
99
|
iconSize: toNumber(getVariableByName('cardAdvisory/icon/size', modes), 18)
|
|
100
100
|
};
|
|
101
101
|
}
|
|
@@ -66,27 +66,27 @@ function CardCTA({
|
|
|
66
66
|
const normalizedType = typeof type === 'string' ? type.toLowerCase() : 'cta';
|
|
67
67
|
const isRating = normalizedType === 'rating';
|
|
68
68
|
const isSip = normalizedType === 'sip';
|
|
69
|
-
const background = getVariableByName('cardCTA/background', modes)
|
|
70
|
-
const radius = getVariableByName('cardCTA/radius', modes)
|
|
71
|
-
const borderSize = getVariableByName('cardCTA/border/size', modes)
|
|
72
|
-
const borderColor = getVariableByName('cardCTA/border/color', modes)
|
|
73
|
-
const leftPaddingH = getVariableByName('cardCTA/left-wrap/padding/horizontal', modes)
|
|
74
|
-
const leftPaddingV = getVariableByName('cardCTA/left-wrap/padding/vertical', modes)
|
|
75
|
-
const leftGap = getVariableByName('cardCTA/left-wrap/gap', modes)
|
|
76
|
-
const rightPaddingH = getVariableByName('cardCTA/right-wrap/padding/horizontal', modes)
|
|
77
|
-
const rightPaddingV = getVariableByName('cardCTA/right-wrap/padding/vertical', modes)
|
|
78
|
-
const textGap = getVariableByName('cardCTA/text-wrap/gap', modes)
|
|
79
|
-
const titleColor = getVariableByName('cardCTA/title/color', modes)
|
|
80
|
-
const titleFontFamily = getVariableByName('cardCTA/title/fontFamily', modes)
|
|
81
|
-
const titleFontSize = getVariableByName('cardCTA/title/fontSize', modes)
|
|
82
|
-
const titleLineHeight = getVariableByName('cardCTA/title/lineHeight', modes)
|
|
83
|
-
const titleFontWeightRaw = getVariableByName('cardCTA/title/fontWeight', modes)
|
|
69
|
+
const background = getVariableByName('cardCTA/background', modes);
|
|
70
|
+
const radius = getVariableByName('cardCTA/radius', modes);
|
|
71
|
+
const borderSize = getVariableByName('cardCTA/border/size', modes);
|
|
72
|
+
const borderColor = getVariableByName('cardCTA/border/color', modes);
|
|
73
|
+
const leftPaddingH = getVariableByName('cardCTA/left-wrap/padding/horizontal', modes);
|
|
74
|
+
const leftPaddingV = getVariableByName('cardCTA/left-wrap/padding/vertical', modes);
|
|
75
|
+
const leftGap = getVariableByName('cardCTA/left-wrap/gap', modes);
|
|
76
|
+
const rightPaddingH = getVariableByName('cardCTA/right-wrap/padding/horizontal', modes);
|
|
77
|
+
const rightPaddingV = getVariableByName('cardCTA/right-wrap/padding/vertical', modes);
|
|
78
|
+
const textGap = getVariableByName('cardCTA/text-wrap/gap', modes);
|
|
79
|
+
const titleColor = getVariableByName('cardCTA/title/color', modes);
|
|
80
|
+
const titleFontFamily = getVariableByName('cardCTA/title/fontFamily', modes);
|
|
81
|
+
const titleFontSize = getVariableByName('cardCTA/title/fontSize', modes);
|
|
82
|
+
const titleLineHeight = getVariableByName('cardCTA/title/lineHeight', modes);
|
|
83
|
+
const titleFontWeightRaw = getVariableByName('cardCTA/title/fontWeight', modes);
|
|
84
84
|
const titleFontWeight = typeof titleFontWeightRaw === 'number' ? titleFontWeightRaw.toString() : titleFontWeightRaw;
|
|
85
|
-
const bodyColor = getVariableByName('cardCTA/body/color', modes)
|
|
86
|
-
const bodyFontFamily = getVariableByName('cardCTA/body/fontFamily', modes)
|
|
87
|
-
const bodyFontSize = getVariableByName('cardCTA/body/fontSize', modes)
|
|
88
|
-
const bodyLineHeight = getVariableByName('cardCTA/body/lineHeight', modes)
|
|
89
|
-
const bodyFontWeightRaw = getVariableByName('cardCTA/body/fontWeight', modes)
|
|
85
|
+
const bodyColor = getVariableByName('cardCTA/body/color', modes);
|
|
86
|
+
const bodyFontFamily = getVariableByName('cardCTA/body/fontFamily', modes);
|
|
87
|
+
const bodyFontSize = getVariableByName('cardCTA/body/fontSize', modes);
|
|
88
|
+
const bodyLineHeight = getVariableByName('cardCTA/body/lineHeight', modes);
|
|
89
|
+
const bodyFontWeightRaw = getVariableByName('cardCTA/body/fontWeight', modes);
|
|
90
90
|
const bodyFontWeight = typeof bodyFontWeightRaw === 'number' ? bodyFontWeightRaw.toString() : bodyFontWeightRaw;
|
|
91
91
|
const ratingContentGap = getOptionalVariableByName('cardCTA/rating/content/gap', modes, 12);
|
|
92
92
|
const ratingContentPaddingH = getOptionalVariableByName('cardCTA/rating/content/padding/horizontal', modes, 16);
|
|
@@ -135,7 +135,7 @@ function CardCTA({
|
|
|
135
135
|
const effectiveButtonLabel = buttonLabel ?? (isRating ? 'Save' : 'Button');
|
|
136
136
|
const nonWrappingButtonLabel = effectiveButtonLabel.replace(/\s/g, '\u00A0');
|
|
137
137
|
const [measuredButtonLabelWidth, setMeasuredButtonLabelWidth] = React.useState(null);
|
|
138
|
-
const buttonPaddingH = getVariableByName('button/padding/horizontal', buttonModes)
|
|
138
|
+
const buttonPaddingH = getVariableByName('button/padding/horizontal', buttonModes);
|
|
139
139
|
const buttonBorderSize = getVariableByName('button/border/size', buttonModes) ?? 1;
|
|
140
140
|
// Small safety pad so sub-pixel rounding between the measure pass and the
|
|
141
141
|
// rendered glyph run can never clip the final character.
|
|
@@ -26,11 +26,11 @@ export function CardFeedback({
|
|
|
26
26
|
...propModes
|
|
27
27
|
};
|
|
28
28
|
// Container Tokens
|
|
29
|
-
const backgroundColor = getVariableByName('cardFeedback/background', modes)
|
|
30
|
-
const radius = parseFloat(getVariableByName('cardFeedback/radius', modes)
|
|
31
|
-
const gap = parseFloat(getVariableByName('cardFeedback/gap', modes)
|
|
32
|
-
const paddingHorizontal = parseFloat(getVariableByName('cardFeedback/padding/horizontal', modes)
|
|
33
|
-
const paddingVertical = parseFloat(getVariableByName('cardFeedback/padding/vertical', modes)
|
|
29
|
+
const backgroundColor = getVariableByName('cardFeedback/background', modes);
|
|
30
|
+
const radius = parseFloat(getVariableByName('cardFeedback/radius', modes));
|
|
31
|
+
const gap = parseFloat(getVariableByName('cardFeedback/gap', modes));
|
|
32
|
+
const paddingHorizontal = parseFloat(getVariableByName('cardFeedback/padding/horizontal', modes));
|
|
33
|
+
const paddingVertical = parseFloat(getVariableByName('cardFeedback/padding/vertical', modes));
|
|
34
34
|
const containerStyle = {
|
|
35
35
|
backgroundColor,
|
|
36
36
|
borderRadius: radius,
|
|
@@ -69,7 +69,7 @@ export function Icon({
|
|
|
69
69
|
}) {
|
|
70
70
|
const context = useContext(CardFeedbackContext);
|
|
71
71
|
const modes = propModes || context.modes || {};
|
|
72
|
-
const size = parseFloat(getVariableByName('cardFeedback/icon/size', modes)
|
|
72
|
+
const size = parseFloat(getVariableByName('cardFeedback/icon/size', modes));
|
|
73
73
|
// Color for the icon itself
|
|
74
74
|
const color = getVariableByName('appearanceFeedback/cardFeedback/icon/color', modes);
|
|
75
75
|
console.log(color);
|
|
@@ -115,7 +115,7 @@ export function Content({
|
|
|
115
115
|
}) {
|
|
116
116
|
const context = useContext(CardFeedbackContext);
|
|
117
117
|
const modes = propModes || context.modes || {};
|
|
118
|
-
const gap = parseFloat(getVariableByName('cardFeedback/text/gap', modes)
|
|
118
|
+
const gap = parseFloat(getVariableByName('cardFeedback/text/gap', modes));
|
|
119
119
|
|
|
120
120
|
// Pass modes to children (Title, Body, etc.)
|
|
121
121
|
const childrenWithModes = React.Children.map(children, child => {
|
|
@@ -149,11 +149,11 @@ export function Title({
|
|
|
149
149
|
}) {
|
|
150
150
|
const context = useContext(CardFeedbackContext);
|
|
151
151
|
const modes = propModes || context.modes || {};
|
|
152
|
-
const color = getVariableByName('cardFeedback/title/color', modes)
|
|
153
|
-
const fontSize = parseFloat(getVariableByName('cardFeedback/title/fontSize', modes)
|
|
154
|
-
const fontFamily = getVariableByName('cardFeedback/title/fontFamily', modes)
|
|
155
|
-
const lineHeight = parseFloat(getVariableByName('cardFeedback/title/lineHeight', modes)
|
|
156
|
-
const fontWeight = getVariableByName('cardFeedback/title/fontWeight', modes)
|
|
152
|
+
const color = getVariableByName('cardFeedback/title/color', modes);
|
|
153
|
+
const fontSize = parseFloat(getVariableByName('cardFeedback/title/fontSize', modes));
|
|
154
|
+
const fontFamily = getVariableByName('cardFeedback/title/fontFamily', modes);
|
|
155
|
+
const lineHeight = parseFloat(getVariableByName('cardFeedback/title/lineHeight', modes));
|
|
156
|
+
const fontWeight = getVariableByName('cardFeedback/title/fontWeight', modes);
|
|
157
157
|
const textStyle = {
|
|
158
158
|
color,
|
|
159
159
|
fontSize,
|
|
@@ -178,11 +178,11 @@ export function Body({
|
|
|
178
178
|
}) {
|
|
179
179
|
const context = useContext(CardFeedbackContext);
|
|
180
180
|
const modes = propModes || context.modes || {};
|
|
181
|
-
const color = getVariableByName('cardFeedback/body/color', modes)
|
|
182
|
-
const fontSize = parseFloat(getVariableByName('cardFeedback/body/fontSize', modes)
|
|
183
|
-
const fontFamily = getVariableByName('cardFeedback/body/fontFamily', modes)
|
|
184
|
-
const lineHeight = parseFloat(getVariableByName('cardFeedback/body/lineHeight', modes)
|
|
185
|
-
const fontWeight = getVariableByName('cardFeedback/body/fontWeight', modes)
|
|
181
|
+
const color = getVariableByName('cardFeedback/body/color', modes);
|
|
182
|
+
const fontSize = parseFloat(getVariableByName('cardFeedback/body/fontSize', modes));
|
|
183
|
+
const fontFamily = getVariableByName('cardFeedback/body/fontFamily', modes);
|
|
184
|
+
const lineHeight = parseFloat(getVariableByName('cardFeedback/body/lineHeight', modes));
|
|
185
|
+
const fontWeight = getVariableByName('cardFeedback/body/fontWeight', modes);
|
|
186
186
|
const textStyle = {
|
|
187
187
|
color,
|
|
188
188
|
fontSize,
|
|
@@ -207,7 +207,7 @@ export function Action({
|
|
|
207
207
|
}) {
|
|
208
208
|
const context = useContext(CardFeedbackContext);
|
|
209
209
|
const modes = propModes || context.modes || {};
|
|
210
|
-
const gap = parseFloat(getVariableByName('cardFeedback/actionSlot/gap', modes)
|
|
210
|
+
const gap = parseFloat(getVariableByName('cardFeedback/actionSlot/gap', modes));
|
|
211
211
|
|
|
212
212
|
// "Maximise existing component usage" -> Pass modes to children (Buttons)
|
|
213
213
|
const childrenWithModes = React.Children.map(children, child => {
|
|
@@ -30,26 +30,26 @@ const toFontWeight = (value, fallback) => {
|
|
|
30
30
|
return fallback;
|
|
31
31
|
};
|
|
32
32
|
function resolveCardFinancialConditionTokens(modes) {
|
|
33
|
-
const background = getVariableByName('financialConditionCard/background', modes)
|
|
33
|
+
const background = getVariableByName('financialConditionCard/background', modes);
|
|
34
34
|
const radius = toNumber(getVariableByName('financialConditionCard/radius', modes), 16);
|
|
35
35
|
const paddingH = toNumber(getVariableByName('financialConditionCard/padding/horizontal', modes), 16);
|
|
36
36
|
const paddingV = toNumber(getVariableByName('financialConditionCard/padding/vertical', modes), 16);
|
|
37
37
|
const gap = toNumber(getVariableByName('financialConditionCard/gap', modes), 8);
|
|
38
38
|
const headerGap = toNumber(getVariableByName('financialConditionCard/header/gap', modes), 16);
|
|
39
39
|
const textContentGap = toNumber(getVariableByName('financialConditionCard/textContent/gap', modes), 8);
|
|
40
|
-
const titleColor = getVariableByName('financialConditionCard/title/color', modes)
|
|
40
|
+
const titleColor = getVariableByName('financialConditionCard/title/color', modes);
|
|
41
41
|
const titleFontSize = toNumber(getVariableByName('financialConditionCard/title/fontSize', modes), 16);
|
|
42
|
-
const titleFontFamily = getVariableByName('financialConditionCard/title/fontFamily', modes)
|
|
42
|
+
const titleFontFamily = getVariableByName('financialConditionCard/title/fontFamily', modes);
|
|
43
43
|
const titleLineHeight = toNumber(getVariableByName('financialConditionCard/title/lineHeight', modes), 18);
|
|
44
44
|
const titleFontWeight = toFontWeight(getVariableByName('financialConditionCard/title/fontWeight', modes), '700');
|
|
45
|
-
const bodyColor = getVariableByName('financialConditionCard/body/color', modes)
|
|
45
|
+
const bodyColor = getVariableByName('financialConditionCard/body/color', modes);
|
|
46
46
|
const bodyFontSize = toNumber(getVariableByName('financialConditionCard/body/fontSize', modes), 14);
|
|
47
|
-
const bodyFontFamily = getVariableByName('financialConditionCard/body/fontFamily', modes)
|
|
47
|
+
const bodyFontFamily = getVariableByName('financialConditionCard/body/fontFamily', modes);
|
|
48
48
|
const bodyLineHeight = toNumber(getVariableByName('financialConditionCard/body/lineHeight', modes), 17);
|
|
49
49
|
const bodyFontWeight = toFontWeight(getVariableByName('financialConditionCard/body/fontWeight', modes), '400');
|
|
50
|
-
const nudgeBodyColor = getVariableByName('nudge/body/color', modes)
|
|
50
|
+
const nudgeBodyColor = getVariableByName('nudge/body/color', modes);
|
|
51
51
|
const nudgeBodyFontSize = toNumber(getVariableByName('nudge/body/fontSize', modes), 12);
|
|
52
|
-
const nudgeBodyFontFamily = getVariableByName('nudge/body/fontFamily', modes)
|
|
52
|
+
const nudgeBodyFontFamily = getVariableByName('nudge/body/fontFamily', modes);
|
|
53
53
|
const nudgeBodyLineHeight = toNumber(getVariableByName('nudge/body/lineHeight', modes), 16);
|
|
54
54
|
const nudgeBodyFontWeight = toFontWeight(getVariableByName('nudge/body/fontWeight', modes), '500');
|
|
55
55
|
return {
|
|
@@ -38,7 +38,6 @@ function CardInsight({
|
|
|
38
38
|
const paddingVertical = getVariableByName('cardInsight/padding/vertical', modes) ?? 16;
|
|
39
39
|
const gap = getVariableByName('cardInsight/gap', modes) ?? 12;
|
|
40
40
|
const contentGap = getVariableByName('cardInsight/contentGap', modes) ?? 8;
|
|
41
|
-
const width = getVariableByName('cardInsight/width', modes) ?? 356;
|
|
42
41
|
const slotBackground = getVariableByName('cardInsight/slot/background', modes) ?? '#ffffff';
|
|
43
42
|
const headerGap = getVariableByName('cardInsight/header/gap', modes) ?? 8;
|
|
44
43
|
const textGap = getVariableByName('cardInsight/text/gap', modes) ?? 4;
|
|
@@ -68,6 +67,7 @@ function CardInsight({
|
|
|
68
67
|
const renderSlot = () => {
|
|
69
68
|
if (!children) {
|
|
70
69
|
return /*#__PURE__*/_jsx(SavingsGoalSummary, {
|
|
70
|
+
label: "Credit usage",
|
|
71
71
|
modes: modes
|
|
72
72
|
});
|
|
73
73
|
}
|
|
@@ -103,7 +103,6 @@ function CardInsight({
|
|
|
103
103
|
const showDivider = footerNode !== null && divider !== false && divider !== null;
|
|
104
104
|
return /*#__PURE__*/_jsxs(View, {
|
|
105
105
|
style: [{
|
|
106
|
-
width,
|
|
107
106
|
backgroundColor: background,
|
|
108
107
|
borderRadius: radius,
|
|
109
108
|
borderWidth,
|