jfs-components 0.1.12 → 0.1.18
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 +24 -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 +50 -29
- 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/ProductMerchandisingCard/ProductMerchandisingCard.js +64 -60
- 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/GlassFill/GlassFill.js +69 -73
- 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 +52 -30
- 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/ProductMerchandisingCard/ProductMerchandisingCard.js +66 -62
- 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/GlassFill/GlassFill.js +69 -72
- 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/GlassFill/GlassFill.d.ts +11 -4
- 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 -2
- 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 +53 -27
- 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/ProductMerchandisingCard/ProductMerchandisingCard.tsx +76 -47
- 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/GlassFill/GlassFill.tsx +59 -56
- package/src/utils/index.ts +2 -0
- package/src/utils/react-utils.ts +72 -1
- package/src/utils/shadow.ts +219 -0
|
@@ -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.
|
|
@@ -41,11 +41,11 @@ export function CardFeedback({
|
|
|
41
41
|
...propModes,
|
|
42
42
|
};
|
|
43
43
|
// Container Tokens
|
|
44
|
-
const backgroundColor = getVariableByName('cardFeedback/background', modes)
|
|
45
|
-
const radius = parseFloat(getVariableByName('cardFeedback/radius', modes)
|
|
46
|
-
const gap = parseFloat(getVariableByName('cardFeedback/gap', modes)
|
|
47
|
-
const paddingHorizontal = parseFloat(getVariableByName('cardFeedback/padding/horizontal', modes)
|
|
48
|
-
const paddingVertical = parseFloat(getVariableByName('cardFeedback/padding/vertical', modes)
|
|
44
|
+
const backgroundColor = getVariableByName('cardFeedback/background', modes);
|
|
45
|
+
const radius = parseFloat(getVariableByName('cardFeedback/radius', modes));
|
|
46
|
+
const gap = parseFloat(getVariableByName('cardFeedback/gap', modes));
|
|
47
|
+
const paddingHorizontal = parseFloat(getVariableByName('cardFeedback/padding/horizontal', modes));
|
|
48
|
+
const paddingVertical = parseFloat(getVariableByName('cardFeedback/padding/vertical', modes));
|
|
49
49
|
|
|
50
50
|
const containerStyle: ViewStyle = {
|
|
51
51
|
backgroundColor,
|
|
@@ -80,7 +80,7 @@ export function Icon({ children, style, modes: propModes, icon }: { children?: R
|
|
|
80
80
|
const context = useContext(CardFeedbackContext);
|
|
81
81
|
const modes = propModes || context.modes || {};
|
|
82
82
|
|
|
83
|
-
const size = parseFloat(getVariableByName('cardFeedback/icon/size', modes)
|
|
83
|
+
const size = parseFloat(getVariableByName('cardFeedback/icon/size', modes));
|
|
84
84
|
// Color for the icon itself
|
|
85
85
|
const color = getVariableByName('appearanceFeedback/cardFeedback/icon/color', modes);
|
|
86
86
|
console.log(color);
|
|
@@ -120,7 +120,7 @@ export function Content({ children, style, modes: propModes }: { children?: Reac
|
|
|
120
120
|
const context = useContext(CardFeedbackContext);
|
|
121
121
|
const modes = propModes || context.modes || {};
|
|
122
122
|
|
|
123
|
-
const gap = parseFloat(getVariableByName('cardFeedback/text/gap', modes)
|
|
123
|
+
const gap = parseFloat(getVariableByName('cardFeedback/text/gap', modes));
|
|
124
124
|
|
|
125
125
|
// Pass modes to children (Title, Body, etc.)
|
|
126
126
|
const childrenWithModes = React.Children.map(children, child => {
|
|
@@ -145,11 +145,11 @@ export function Title({ children, style, modes: propModes }: { children?: React.
|
|
|
145
145
|
const context = useContext(CardFeedbackContext);
|
|
146
146
|
const modes = propModes || context.modes || {};
|
|
147
147
|
|
|
148
|
-
const color = getVariableByName('cardFeedback/title/color', modes)
|
|
149
|
-
const fontSize = parseFloat(getVariableByName('cardFeedback/title/fontSize', modes)
|
|
150
|
-
const fontFamily = getVariableByName('cardFeedback/title/fontFamily', modes)
|
|
151
|
-
const lineHeight = parseFloat(getVariableByName('cardFeedback/title/lineHeight', modes)
|
|
152
|
-
const fontWeight = getVariableByName('cardFeedback/title/fontWeight', modes)
|
|
148
|
+
const color = getVariableByName('cardFeedback/title/color', modes);
|
|
149
|
+
const fontSize = parseFloat(getVariableByName('cardFeedback/title/fontSize', modes));
|
|
150
|
+
const fontFamily = getVariableByName('cardFeedback/title/fontFamily', modes);
|
|
151
|
+
const lineHeight = parseFloat(getVariableByName('cardFeedback/title/lineHeight', modes));
|
|
152
|
+
const fontWeight = getVariableByName('cardFeedback/title/fontWeight', modes);
|
|
153
153
|
|
|
154
154
|
const textStyle: TextStyle = {
|
|
155
155
|
color,
|
|
@@ -170,11 +170,11 @@ export function Body({ children, style, modes: propModes }: { children?: React.R
|
|
|
170
170
|
const context = useContext(CardFeedbackContext);
|
|
171
171
|
const modes = propModes || context.modes || {};
|
|
172
172
|
|
|
173
|
-
const color = getVariableByName('cardFeedback/body/color', modes)
|
|
174
|
-
const fontSize = parseFloat(getVariableByName('cardFeedback/body/fontSize', modes)
|
|
175
|
-
const fontFamily = getVariableByName('cardFeedback/body/fontFamily', modes)
|
|
176
|
-
const lineHeight = parseFloat(getVariableByName('cardFeedback/body/lineHeight', modes)
|
|
177
|
-
const fontWeight = getVariableByName('cardFeedback/body/fontWeight', modes)
|
|
173
|
+
const color = getVariableByName('cardFeedback/body/color', modes);
|
|
174
|
+
const fontSize = parseFloat(getVariableByName('cardFeedback/body/fontSize', modes));
|
|
175
|
+
const fontFamily = getVariableByName('cardFeedback/body/fontFamily', modes);
|
|
176
|
+
const lineHeight = parseFloat(getVariableByName('cardFeedback/body/lineHeight', modes));
|
|
177
|
+
const fontWeight = getVariableByName('cardFeedback/body/fontWeight', modes);
|
|
178
178
|
|
|
179
179
|
const textStyle: TextStyle = {
|
|
180
180
|
color,
|
|
@@ -195,7 +195,7 @@ export function Action({ children, style, modes: propModes }: { children?: React
|
|
|
195
195
|
const context = useContext(CardFeedbackContext);
|
|
196
196
|
const modes = propModes || context.modes || {};
|
|
197
197
|
|
|
198
|
-
const gap = parseFloat(getVariableByName('cardFeedback/actionSlot/gap', modes)
|
|
198
|
+
const gap = parseFloat(getVariableByName('cardFeedback/actionSlot/gap', modes));
|
|
199
199
|
|
|
200
200
|
// "Maximise existing component usage" -> Pass modes to children (Buttons)
|
|
201
201
|
const childrenWithModes = React.Children.map(children, child => {
|
|
@@ -104,8 +104,7 @@ function resolveCardFinancialConditionTokens(
|
|
|
104
104
|
modes: Modes
|
|
105
105
|
): CardFinancialConditionTokens {
|
|
106
106
|
const background =
|
|
107
|
-
(getVariableByName('financialConditionCard/background', modes) as string)
|
|
108
|
-
'#ffffff'
|
|
107
|
+
(getVariableByName('financialConditionCard/background', modes) as string)
|
|
109
108
|
const radius = toNumber(
|
|
110
109
|
getVariableByName('financialConditionCard/radius', modes),
|
|
111
110
|
16
|
|
@@ -133,8 +132,7 @@ function resolveCardFinancialConditionTokens(
|
|
|
133
132
|
)
|
|
134
133
|
|
|
135
134
|
const titleColor =
|
|
136
|
-
(getVariableByName('financialConditionCard/title/color', modes) as string)
|
|
137
|
-
'#0c0d10'
|
|
135
|
+
(getVariableByName('financialConditionCard/title/color', modes) as string)
|
|
138
136
|
const titleFontSize = toNumber(
|
|
139
137
|
getVariableByName('financialConditionCard/title/fontSize', modes),
|
|
140
138
|
16
|
|
@@ -143,7 +141,7 @@ function resolveCardFinancialConditionTokens(
|
|
|
143
141
|
(getVariableByName(
|
|
144
142
|
'financialConditionCard/title/fontFamily',
|
|
145
143
|
modes
|
|
146
|
-
) as string)
|
|
144
|
+
) as string)
|
|
147
145
|
const titleLineHeight = toNumber(
|
|
148
146
|
getVariableByName('financialConditionCard/title/lineHeight', modes),
|
|
149
147
|
18
|
|
@@ -154,8 +152,7 @@ function resolveCardFinancialConditionTokens(
|
|
|
154
152
|
)
|
|
155
153
|
|
|
156
154
|
const bodyColor =
|
|
157
|
-
(getVariableByName('financialConditionCard/body/color', modes) as string)
|
|
158
|
-
'#0c0d10'
|
|
155
|
+
(getVariableByName('financialConditionCard/body/color', modes) as string)
|
|
159
156
|
const bodyFontSize = toNumber(
|
|
160
157
|
getVariableByName('financialConditionCard/body/fontSize', modes),
|
|
161
158
|
14
|
|
@@ -164,7 +161,7 @@ function resolveCardFinancialConditionTokens(
|
|
|
164
161
|
(getVariableByName(
|
|
165
162
|
'financialConditionCard/body/fontFamily',
|
|
166
163
|
modes
|
|
167
|
-
) as string)
|
|
164
|
+
) as string)
|
|
168
165
|
const bodyLineHeight = toNumber(
|
|
169
166
|
getVariableByName('financialConditionCard/body/lineHeight', modes),
|
|
170
167
|
17
|
|
@@ -175,13 +172,13 @@ function resolveCardFinancialConditionTokens(
|
|
|
175
172
|
)
|
|
176
173
|
|
|
177
174
|
const nudgeBodyColor =
|
|
178
|
-
(getVariableByName('nudge/body/color', modes) as string)
|
|
175
|
+
(getVariableByName('nudge/body/color', modes) as string)
|
|
179
176
|
const nudgeBodyFontSize = toNumber(
|
|
180
177
|
getVariableByName('nudge/body/fontSize', modes),
|
|
181
178
|
12
|
|
182
179
|
)
|
|
183
180
|
const nudgeBodyFontFamily =
|
|
184
|
-
(getVariableByName('nudge/body/fontFamily', modes) as string)
|
|
181
|
+
(getVariableByName('nudge/body/fontFamily', modes) as string)
|
|
185
182
|
const nudgeBodyLineHeight = toNumber(
|
|
186
183
|
getVariableByName('nudge/body/lineHeight', modes),
|
|
187
184
|
16
|
|
@@ -83,7 +83,6 @@ function CardInsight({
|
|
|
83
83
|
const gap = (getVariableByName('cardInsight/gap', modes) as number | null) ?? 12
|
|
84
84
|
const contentGap =
|
|
85
85
|
(getVariableByName('cardInsight/contentGap', modes) as number | null) ?? 8
|
|
86
|
-
const width = (getVariableByName('cardInsight/width', modes) as number | null) ?? 356
|
|
87
86
|
const slotBackground =
|
|
88
87
|
(getVariableByName('cardInsight/slot/background', modes) as string | null) ?? '#ffffff'
|
|
89
88
|
|
|
@@ -129,7 +128,7 @@ function CardInsight({
|
|
|
129
128
|
|
|
130
129
|
const renderSlot = (): React.ReactNode => {
|
|
131
130
|
if (!children) {
|
|
132
|
-
return <SavingsGoalSummary modes={modes} />
|
|
131
|
+
return <SavingsGoalSummary label="Credit usage" modes={modes} />
|
|
133
132
|
}
|
|
134
133
|
const processed = cloneChildrenWithModes(children, modes)
|
|
135
134
|
return processed.length === 1 ? processed[0] : processed
|
|
@@ -165,7 +164,6 @@ function CardInsight({
|
|
|
165
164
|
<View
|
|
166
165
|
style={[
|
|
167
166
|
{
|
|
168
|
-
width,
|
|
169
167
|
backgroundColor: background,
|
|
170
168
|
borderRadius: radius,
|
|
171
169
|
borderWidth,
|
|
@@ -65,6 +65,16 @@ export interface CarouselProps {
|
|
|
65
65
|
gap?: number
|
|
66
66
|
/** Width of each carousel item. When undefined, items take full container width. */
|
|
67
67
|
itemWidth?: number
|
|
68
|
+
/**
|
|
69
|
+
* Explicit horizontal padding (px) for the scroll content. When provided it
|
|
70
|
+
* overrides the token-derived padding verbatim — the built-in `carousel/
|
|
71
|
+
* padding/horizontal × 2` "peek" multiplier is NOT applied. Use this for
|
|
72
|
+
* presets (e.g. the account-card strip) whose own tokens define a flush,
|
|
73
|
+
* non-peeking layout.
|
|
74
|
+
*/
|
|
75
|
+
paddingHorizontal?: number
|
|
76
|
+
/** Explicit vertical padding (px) for the outer container. Overrides `carousel/padding/vertical`. */
|
|
77
|
+
paddingVertical?: number
|
|
68
78
|
|
|
69
79
|
/** Called when the active index changes. */
|
|
70
80
|
onIndexChange?: (index: number) => void
|
|
@@ -85,27 +95,29 @@ export function Carousel({
|
|
|
85
95
|
loop = true,
|
|
86
96
|
gap: gapProp,
|
|
87
97
|
itemWidth: itemWidthProp,
|
|
98
|
+
paddingHorizontal: paddingHorizontalProp,
|
|
99
|
+
paddingVertical: paddingVerticalProp,
|
|
88
100
|
|
|
89
101
|
onIndexChange,
|
|
90
102
|
style,
|
|
91
103
|
}: CarouselProps) {
|
|
92
104
|
// ---- Token resolution ----
|
|
93
105
|
const tokenGap = parseFloat(
|
|
94
|
-
getVariableByName('carousel/gap', modes)
|
|
106
|
+
getVariableByName('carousel/gap', modes),
|
|
95
107
|
)
|
|
96
108
|
const gap = gapProp ?? tokenGap
|
|
97
109
|
|
|
98
110
|
|
|
99
111
|
|
|
100
112
|
const containerPaddingH = parseFloat(
|
|
101
|
-
getVariableByName('carousel/padding/horizontal', modes)
|
|
113
|
+
getVariableByName('carousel/padding/horizontal', modes),
|
|
102
114
|
)
|
|
103
115
|
const containerPaddingV = parseFloat(
|
|
104
|
-
getVariableByName('carousel/padding/vertical', modes)
|
|
116
|
+
getVariableByName('carousel/padding/vertical', modes),
|
|
105
117
|
)
|
|
106
118
|
// Outer container max height per Figma (`carousel/maxHeight`).
|
|
107
119
|
const maxHeight = parseFloat(
|
|
108
|
-
getVariableByName('carousel/maxHeight', modes)
|
|
120
|
+
getVariableByName('carousel/maxHeight', modes),
|
|
109
121
|
)
|
|
110
122
|
// Spacing between the cards row and the pagination dots uses `carousel/gap`.
|
|
111
123
|
const paginationOffset = gap
|
|
@@ -254,13 +266,18 @@ export function Carousel({
|
|
|
254
266
|
)
|
|
255
267
|
|
|
256
268
|
// ---- Render ----
|
|
269
|
+
// Explicit padding props win verbatim; otherwise fall back to the
|
|
270
|
+
// token-derived values (horizontal keeps its legacy ×2 "peek" multiplier).
|
|
271
|
+
const effectivePaddingH = paddingHorizontalProp ?? containerPaddingH
|
|
272
|
+
const effectivePaddingV = paddingVerticalProp ?? containerPaddingV
|
|
273
|
+
|
|
257
274
|
const outerStyle: ViewStyle = {
|
|
258
|
-
paddingVertical:
|
|
275
|
+
paddingVertical: effectivePaddingV,
|
|
259
276
|
maxHeight,
|
|
260
277
|
}
|
|
261
278
|
|
|
262
279
|
const contentContainerStyle: ViewStyle = {
|
|
263
|
-
paddingHorizontal:
|
|
280
|
+
paddingHorizontal: effectivePaddingH,
|
|
264
281
|
gap,
|
|
265
282
|
// Align items to the start so snap works correctly
|
|
266
283
|
alignItems: 'flex-start',
|
|
@@ -372,26 +389,26 @@ export function Pagination({ modes: propModes, style }: PaginationProps) {
|
|
|
372
389
|
// Token resolution for dots — matches Figma tokens
|
|
373
390
|
// (carousel/pagination/gap, carousel/pagination/indicator/{activeColor,inactiveColor,radius,size,activeWidth}).
|
|
374
391
|
const dotSize = parseFloat(
|
|
375
|
-
getVariableByName('carousel/pagination/indicator/size', modes)
|
|
392
|
+
getVariableByName('carousel/pagination/indicator/size', modes),
|
|
376
393
|
)
|
|
377
394
|
const dotActiveWidth = parseFloat(
|
|
378
|
-
getVariableByName('carousel/pagination/indicator/activeWidth', modes)
|
|
395
|
+
getVariableByName('carousel/pagination/indicator/activeWidth', modes),
|
|
379
396
|
)
|
|
380
397
|
const dotGap = parseFloat(
|
|
381
|
-
getVariableByName('carousel/pagination/gap', modes)
|
|
398
|
+
getVariableByName('carousel/pagination/gap', modes),
|
|
382
399
|
)
|
|
383
400
|
const dotColor =
|
|
384
401
|
(getVariableByName(
|
|
385
402
|
'carousel/pagination/indicator/inactiveColor',
|
|
386
403
|
modes,
|
|
387
|
-
) as string)
|
|
404
|
+
) as string)
|
|
388
405
|
const dotActiveColor =
|
|
389
406
|
(getVariableByName(
|
|
390
407
|
'carousel/pagination/indicator/activeColor',
|
|
391
408
|
modes,
|
|
392
|
-
) as string)
|
|
409
|
+
) as string)
|
|
393
410
|
const dotRadius = parseFloat(
|
|
394
|
-
getVariableByName('carousel/pagination/indicator/radius', modes)
|
|
411
|
+
getVariableByName('carousel/pagination/indicator/radius', modes),
|
|
395
412
|
)
|
|
396
413
|
|
|
397
414
|
const containerStyle: ViewStyle = {
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
import React from 'react'
|
|
2
|
+
import type { StyleProp, ViewStyle } from 'react-native'
|
|
3
|
+
import { getVariableByName } from '../../design-tokens/figma-variables-resolver'
|
|
4
|
+
import { EMPTY_MODES } from '../../utils/react-utils'
|
|
5
|
+
import type { Modes } from '../../design-tokens'
|
|
6
|
+
import Carousel from '../Carousel/Carousel'
|
|
7
|
+
|
|
8
|
+
// Figma reference width for a single Account Card slot (`Carousel / Card Accounts`).
|
|
9
|
+
const DEFAULT_ITEM_WIDTH = 125
|
|
10
|
+
|
|
11
|
+
const toNumber = (value: unknown, fallback: number): number => {
|
|
12
|
+
if (typeof value === 'number') return Number.isFinite(value) ? value : fallback
|
|
13
|
+
if (typeof value === 'string') {
|
|
14
|
+
const parsed = parseFloat(value)
|
|
15
|
+
return Number.isFinite(parsed) ? parsed : fallback
|
|
16
|
+
}
|
|
17
|
+
return fallback
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
export interface CarouselCardAccountsProps {
|
|
21
|
+
/**
|
|
22
|
+
* The account cards to render — this is the slot. Pass any number of
|
|
23
|
+
* `AccountCard` elements (or any node). Each becomes one horizontally
|
|
24
|
+
* scrollable, snap-aligned item. `modes` are forwarded to every child.
|
|
25
|
+
*/
|
|
26
|
+
children?: React.ReactNode
|
|
27
|
+
/** Design-token modes (e.g. `{ 'Color Mode': 'Light' }`). */
|
|
28
|
+
modes?: Modes
|
|
29
|
+
/**
|
|
30
|
+
* Width of each card slot in px. Defaults to the Figma reference width
|
|
31
|
+
* (`125`). Combined with `gap` this drives the per-card snap interval.
|
|
32
|
+
*/
|
|
33
|
+
itemWidth?: number
|
|
34
|
+
/**
|
|
35
|
+
* Gap between cards in px. Resolved from the `carouselCardAccounts/gap`
|
|
36
|
+
* token (default `8`) when omitted.
|
|
37
|
+
*/
|
|
38
|
+
gap?: number
|
|
39
|
+
/**
|
|
40
|
+
* Show the pagination dots. Defaults to `false` — the account strip is a
|
|
41
|
+
* flush, free-scrolling row rather than a paged hero carousel.
|
|
42
|
+
*/
|
|
43
|
+
showPagination?: boolean
|
|
44
|
+
/** Loop back to the first card after the last. Default: `false`. */
|
|
45
|
+
loop?: boolean
|
|
46
|
+
/** Called when the active (snapped) card index changes. */
|
|
47
|
+
onIndexChange?: (index: number) => void
|
|
48
|
+
/** Style override for the outermost container. */
|
|
49
|
+
style?: StyleProp<ViewStyle>
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* `CarouselCardAccounts` — a horizontally scrollable strip of compact
|
|
54
|
+
* `AccountCard`s (the Figma "Carousel / Card Accounts" component).
|
|
55
|
+
*
|
|
56
|
+
* It is a thin, opinionated preset over the shared {@link Carousel} scroll
|
|
57
|
+
* engine — so the snap/scroll/modes-cascade behaviour is **not** duplicated.
|
|
58
|
+
* Its niche is the account-selection strip: fixed-width card slots, flush
|
|
59
|
+
* (no peek) padding, per-card snapping, and no pagination by default.
|
|
60
|
+
*
|
|
61
|
+
* The cards are a real slot: pass any number of `AccountCard` children
|
|
62
|
+
* (typically a list of `connected` cards followed by a single `add` card).
|
|
63
|
+
*
|
|
64
|
+
* @example
|
|
65
|
+
* <CarouselCardAccounts modes={modes}>
|
|
66
|
+
* <AccountCard title="Personal account" subtitle="**** 5651" imageSource={art} />
|
|
67
|
+
* <AccountCard title="Salary account" subtitle="**** 1180" imageSource={art} />
|
|
68
|
+
* <AccountCard state="add" title="Add a card" onPress={openLinkFlow} />
|
|
69
|
+
* </CarouselCardAccounts>
|
|
70
|
+
*/
|
|
71
|
+
function CarouselCardAccounts({
|
|
72
|
+
children,
|
|
73
|
+
modes = EMPTY_MODES,
|
|
74
|
+
itemWidth = DEFAULT_ITEM_WIDTH,
|
|
75
|
+
gap: gapProp,
|
|
76
|
+
showPagination = false,
|
|
77
|
+
loop = false,
|
|
78
|
+
onIndexChange,
|
|
79
|
+
style,
|
|
80
|
+
}: CarouselCardAccountsProps) {
|
|
81
|
+
const gap = gapProp ?? toNumber(getVariableByName('carouselCardAccounts/gap', modes), 8)
|
|
82
|
+
|
|
83
|
+
// Outer-container padding is driven by the design's own tokens
|
|
84
|
+
// (`carouselCardAccounts/padding/*`) rather than the generic `carousel/*`
|
|
85
|
+
// padding, matching the Figma "Carousel / Card Accounts" frame.
|
|
86
|
+
const paddingHorizontal = toNumber(
|
|
87
|
+
getVariableByName('carouselCardAccounts/padding/horizontal', modes),
|
|
88
|
+
0,
|
|
89
|
+
)
|
|
90
|
+
const paddingVertical = toNumber(
|
|
91
|
+
getVariableByName('carouselCardAccounts/padding/vertical', modes),
|
|
92
|
+
0,
|
|
93
|
+
)
|
|
94
|
+
|
|
95
|
+
return (
|
|
96
|
+
<Carousel
|
|
97
|
+
modes={modes}
|
|
98
|
+
itemWidth={itemWidth}
|
|
99
|
+
gap={gap}
|
|
100
|
+
showPagination={showPagination}
|
|
101
|
+
loop={loop}
|
|
102
|
+
autoPlay={false}
|
|
103
|
+
paddingHorizontal={paddingHorizontal}
|
|
104
|
+
paddingVertical={paddingVertical}
|
|
105
|
+
{...(onIndexChange ? { onIndexChange } : {})}
|
|
106
|
+
style={style}
|
|
107
|
+
>
|
|
108
|
+
{children}
|
|
109
|
+
</Carousel>
|
|
110
|
+
)
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
export default React.memo(CarouselCardAccounts)
|
|
@@ -9,6 +9,7 @@ import {
|
|
|
9
9
|
import Svg, { Path } from 'react-native-svg'
|
|
10
10
|
import { getVariableByName } from '../../design-tokens/figma-variables-resolver'
|
|
11
11
|
import { EMPTY_MODES } from '../../utils/react-utils'
|
|
12
|
+
import { boxShadow } from '../../utils/shadow'
|
|
12
13
|
import type { Modes } from '../../design-tokens'
|
|
13
14
|
|
|
14
15
|
/**
|
|
@@ -116,7 +117,7 @@ const Checkbox = forwardRef<View, CheckboxProps>(function Checkbox({
|
|
|
116
117
|
|
|
117
118
|
const size = getVariableByName('checkbox/size', modes) ?? 18
|
|
118
119
|
const radius = getVariableByName('checkbox/radius', modes) ?? 4
|
|
119
|
-
const strokeWidth =
|
|
120
|
+
const strokeWidth = 1
|
|
120
121
|
|
|
121
122
|
const idleStroke = getVariableByName('checkbox/idle/stroke/color', modes) ?? '#666666'
|
|
122
123
|
const hoverFill = getVariableByName('checkbox/hover/fill/color', modes) ?? 'rgba(0,0,0,0.1)'
|
|
@@ -256,11 +257,4 @@ const Checkbox = forwardRef<View, CheckboxProps>(function Checkbox({
|
|
|
256
257
|
)
|
|
257
258
|
})
|
|
258
259
|
|
|
259
|
-
function boxShadow(value: string): ViewStyle {
|
|
260
|
-
if (Platform.OS === 'web') {
|
|
261
|
-
return { boxShadow: value } as ViewStyle
|
|
262
|
-
}
|
|
263
|
-
return {}
|
|
264
|
-
}
|
|
265
|
-
|
|
266
260
|
export default Checkbox
|
|
@@ -36,7 +36,7 @@ function ChipGroup({
|
|
|
36
36
|
testID,
|
|
37
37
|
}: ChipGroupProps) {
|
|
38
38
|
// --- Token Resolution ---
|
|
39
|
-
const gap = parseInt(getVariableByName('chipGroup/gap', modes), 10)
|
|
39
|
+
const gap = parseInt(getVariableByName('chipGroup/gap', modes), 10);
|
|
40
40
|
|
|
41
41
|
// --- Styles ---
|
|
42
42
|
const containerStyle: ViewStyle = {
|
|
@@ -60,23 +60,23 @@ function ChipSelect({
|
|
|
60
60
|
};
|
|
61
61
|
|
|
62
62
|
// --- Token Resolution ---
|
|
63
|
-
const gap = parseInt(getVariableByName('chipSelect/gap', resolvedModes), 10)
|
|
64
|
-
const paddingHorizontal = parseInt(getVariableByName('chipSelect/padding/horizontal', resolvedModes), 10)
|
|
65
|
-
const paddingVertical = parseInt(getVariableByName('chipSelect/padding/vertical', resolvedModes), 10)
|
|
66
|
-
const radius = parseInt(getVariableByName('chipSelect/radius', resolvedModes), 10)
|
|
63
|
+
const gap = parseInt(getVariableByName('chipSelect/gap', resolvedModes), 10);
|
|
64
|
+
const paddingHorizontal = parseInt(getVariableByName('chipSelect/padding/horizontal', resolvedModes), 10);
|
|
65
|
+
const paddingVertical = parseInt(getVariableByName('chipSelect/padding/vertical', resolvedModes), 10);
|
|
66
|
+
const radius = parseInt(getVariableByName('chipSelect/radius', resolvedModes), 10);
|
|
67
67
|
|
|
68
68
|
// Background
|
|
69
|
-
const backgroundColor = getVariableByName('chipSelect/background', resolvedModes)
|
|
69
|
+
const backgroundColor = getVariableByName('chipSelect/background', resolvedModes);
|
|
70
70
|
|
|
71
71
|
// Text Styles
|
|
72
|
-
const textColor = getVariableByName('chipSelect/foreground', resolvedModes)
|
|
73
|
-
const fontSize = parseInt(getVariableByName('chipSelect/fontSize', resolvedModes), 10)
|
|
74
|
-
const fontFamily = getVariableByName('chipSelect/fontFamily', resolvedModes)
|
|
75
|
-
const lineHeight = parseInt(getVariableByName('chipSelect/lineHeight', resolvedModes), 10)
|
|
76
|
-
const fontWeight = getVariableByName('chipSelect/fontWeight', resolvedModes)
|
|
72
|
+
const textColor = getVariableByName('chipSelect/foreground', resolvedModes);
|
|
73
|
+
const fontSize = parseInt(getVariableByName('chipSelect/fontSize', resolvedModes), 10);
|
|
74
|
+
const fontFamily = getVariableByName('chipSelect/fontFamily', resolvedModes);
|
|
75
|
+
const lineHeight = parseInt(getVariableByName('chipSelect/lineHeight', resolvedModes), 10);
|
|
76
|
+
const fontWeight = getVariableByName('chipSelect/fontWeight', resolvedModes);
|
|
77
77
|
|
|
78
78
|
// Icon Styles
|
|
79
|
-
const iconSize = parseInt(getVariableByName('chipSelect/icon/size', resolvedModes), 10)
|
|
79
|
+
const iconSize = parseInt(getVariableByName('chipSelect/icon/size', resolvedModes), 10);
|
|
80
80
|
|
|
81
81
|
// --- Styles ---
|
|
82
82
|
const containerStyle: ViewStyle = {
|