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
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,21 @@ All notable changes to this project are documented in this file.
|
|
|
4
4
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
|
|
6
6
|
|
|
7
|
+
## [0.1.16] - 2026-06-26
|
|
8
|
+
|
|
9
|
+
- Added `CarouselCardAccounts` — horizontally scrollable account-card strip built on `Carousel` with token-driven gap and snap-aligned card slots.
|
|
10
|
+
- Added `ScrollArea` — token-aware scroll container with `direction` (`vertical` / `horizontal` / `both`), padding props, and hidden scroll indicators by default.
|
|
11
|
+
- Shared `boxShadow` utility — cross-platform drop-shadow helper (`boxShadow`, `parseBoxShadow`, `supportsNativeBoxShadow`) with legacy iOS/Android fallback for pre–RN 0.76; exported from the package barrel. Adopted by `Drawer`, `Dropdown`, `Checkbox`, `Radio`, `Toggle`, and `ActionFooter`.
|
|
12
|
+
- Library-wide token audit — removed hardcoded `|| fallback` defaults from component token resolution so missing tokens are visible at runtime; added `npm run audit:tokens` (`scripts/audit-tokens.js`) to verify every referenced Figma variable exists and resolves before publish.
|
|
13
|
+
- `Text` / `Title` — new `singleLine` prop to force single-line layout (web uses `whiteSpace: nowrap` so text overflows instead of wrapping inside constrained parents).
|
|
14
|
+
- `Button` — web label no-wrap fix for pill buttons in tight flex layouts.
|
|
15
|
+
- `Drawer` — title-wrap padding driven by `drawer/titleWrap/padding/*` tokens; layered shadow routed through shared `boxShadow`.
|
|
16
|
+
- `SavingsGoalSummary` — optional `label` caption above the percentage value with dedicated `savingsGoalSummary/label/*` and `savingsGoalSummary/value/*` typography tokens.
|
|
17
|
+
- Icons — 73 new icons (analytics, documents, network/connectivity, folders, and related glyphs); refreshed icon registry.
|
|
18
|
+
- Figma/token sync pass; refreshed `.token-metadata.json`, `figma-modes.generated.ts`, and Coin Variables tokens.
|
|
19
|
+
|
|
20
|
+
---
|
|
21
|
+
|
|
7
22
|
## [0.1.12] - 2026-06-22
|
|
8
23
|
|
|
9
24
|
- Added `Stack` — token-driven vertical/horizontal layout container with `equalHeight` / `fullWidth` stretch enforcement, mode cascade to children, and `injectChildStyle` for cross-axis alignment that children cannot override.
|
|
@@ -8,12 +8,11 @@ var _react = _interopRequireWildcard(require("react"));
|
|
|
8
8
|
var _reactNative = require("react-native");
|
|
9
9
|
var _figmaVariablesResolver = require("../../design-tokens/figma-variables-resolver");
|
|
10
10
|
var _reactUtils = require("../../utils/react-utils");
|
|
11
|
+
var _shadow = require("../../utils/shadow");
|
|
11
12
|
var _IconButton = _interopRequireDefault(require("../IconButton/IconButton"));
|
|
12
13
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
13
14
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
14
15
|
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
15
|
-
const IS_WEB = _reactNative.Platform.OS === 'web';
|
|
16
|
-
|
|
17
16
|
// ---------------------------------------------------------------------------
|
|
18
17
|
// Yoga-safe stretch
|
|
19
18
|
// ---------------------------------------------------------------------------
|
|
@@ -42,27 +41,11 @@ const STRETCH_STYLE = {
|
|
|
42
41
|
minWidth: 0
|
|
43
42
|
};
|
|
44
43
|
|
|
45
|
-
//
|
|
46
|
-
//
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
ios: {
|
|
50
|
-
shadowColor: '#0c0d10',
|
|
51
|
-
shadowOffset: {
|
|
52
|
-
width: 0,
|
|
53
|
-
height: -12
|
|
54
|
-
},
|
|
55
|
-
shadowOpacity: 0.16,
|
|
56
|
-
shadowRadius: 24
|
|
57
|
-
},
|
|
58
|
-
android: {
|
|
59
|
-
elevation: 16
|
|
60
|
-
},
|
|
61
|
-
default: {}
|
|
44
|
+
// Upward drop shadow routed through the unified helper: native `boxShadow` on
|
|
45
|
+
// web + RN 0.76+, legacy `shadow*` (iOS) / `elevation` (Android) on older RN.
|
|
46
|
+
const SHADOW = (0, _shadow.boxShadow)('0px -12px 24px 0px rgba(12, 13, 16, 0.12), 0px -16px 48px 0px rgba(12, 13, 16, 0.16)', {
|
|
47
|
+
elevation: 16
|
|
62
48
|
});
|
|
63
|
-
const WEB_SHADOW = IS_WEB ? {
|
|
64
|
-
boxShadow: '0px -12px 24px 0px rgba(12, 13, 16, 0.12), 0px -16px 48px 0px rgba(12, 13, 16, 0.16)'
|
|
65
|
-
} : null;
|
|
66
49
|
|
|
67
50
|
// The runtime token a slot child must equal (by reference) to be treated as
|
|
68
51
|
// an IconButton. `IconButton` is exported wrapped in `React.memo`, so the
|
|
@@ -171,7 +154,7 @@ function ActionFooter({
|
|
|
171
154
|
paddingRight: paddingHorizontal,
|
|
172
155
|
paddingTop,
|
|
173
156
|
paddingBottom,
|
|
174
|
-
...
|
|
157
|
+
...SHADOW
|
|
175
158
|
};
|
|
176
159
|
const slot = {
|
|
177
160
|
flexDirection: 'row',
|
|
@@ -208,7 +191,7 @@ function ActionFooter({
|
|
|
208
191
|
});
|
|
209
192
|
}, [children, modes]);
|
|
210
193
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Animated.View, {
|
|
211
|
-
style: [containerStyle,
|
|
194
|
+
style: [containerStyle, style,
|
|
212
195
|
// Counter-translate by the keyboard height on Android so `adjustResize`
|
|
213
196
|
// can't lift the footer above the keyboard (no-op on iOS/web where the
|
|
214
197
|
// value stays at 0).
|
|
@@ -34,18 +34,18 @@ function ActionTile({
|
|
|
34
34
|
};
|
|
35
35
|
|
|
36
36
|
// Resolve tokens
|
|
37
|
-
const backgroundColor = (0, _figmaVariablesResolver.getVariableByName)('actionTile/background', modes)
|
|
38
|
-
const gap = Number((0, _figmaVariablesResolver.getVariableByName)('actionTile/gap', modes))
|
|
39
|
-
const paddingHorizontal = Number((0, _figmaVariablesResolver.getVariableByName)('actionTile/padding/horizontal', modes))
|
|
40
|
-
const paddingVertical = Number((0, _figmaVariablesResolver.getVariableByName)('actionTile/padding/vertical', modes))
|
|
41
|
-
const radius = Number((0, _figmaVariablesResolver.getVariableByName)('actionTile/radius', modes))
|
|
37
|
+
const backgroundColor = (0, _figmaVariablesResolver.getVariableByName)('actionTile/background', modes);
|
|
38
|
+
const gap = Number((0, _figmaVariablesResolver.getVariableByName)('actionTile/gap', modes));
|
|
39
|
+
const paddingHorizontal = Number((0, _figmaVariablesResolver.getVariableByName)('actionTile/padding/horizontal', modes));
|
|
40
|
+
const paddingVertical = Number((0, _figmaVariablesResolver.getVariableByName)('actionTile/padding/vertical', modes));
|
|
41
|
+
const radius = Number((0, _figmaVariablesResolver.getVariableByName)('actionTile/radius', modes));
|
|
42
42
|
|
|
43
43
|
// Text tokens
|
|
44
|
-
const textColor = (0, _figmaVariablesResolver.getVariableByName)('actionTile/foreground', modes)
|
|
45
|
-
const fontSize = Number((0, _figmaVariablesResolver.getVariableByName)('actionTile/fontSize', modes))
|
|
46
|
-
const fontFamily = (0, _figmaVariablesResolver.getVariableByName)('actionTile/fontFamily', modes)
|
|
47
|
-
const fontWeightStr = (0, _figmaVariablesResolver.getVariableByName)('actionTile/fontWeight', modes)
|
|
48
|
-
const lineHeight = Number((0, _figmaVariablesResolver.getVariableByName)('actionTile/lineHeight', modes))
|
|
44
|
+
const textColor = (0, _figmaVariablesResolver.getVariableByName)('actionTile/foreground', modes);
|
|
45
|
+
const fontSize = Number((0, _figmaVariablesResolver.getVariableByName)('actionTile/fontSize', modes));
|
|
46
|
+
const fontFamily = (0, _figmaVariablesResolver.getVariableByName)('actionTile/fontFamily', modes);
|
|
47
|
+
const fontWeightStr = (0, _figmaVariablesResolver.getVariableByName)('actionTile/fontWeight', modes);
|
|
48
|
+
const lineHeight = Number((0, _figmaVariablesResolver.getVariableByName)('actionTile/lineHeight', modes));
|
|
49
49
|
const containerStyle = {
|
|
50
50
|
backgroundColor,
|
|
51
51
|
borderRadius: radius,
|
|
@@ -34,9 +34,9 @@ const AmountInput = /*#__PURE__*/(0, _react.forwardRef)(function AmountInput({
|
|
|
34
34
|
};
|
|
35
35
|
|
|
36
36
|
// Resolve tokens
|
|
37
|
-
const gap = Number((0, _figmaVariablesResolver.getVariableByName)('amountInput/gap', modes))
|
|
38
|
-
const paddingHorizontal = Number((0, _figmaVariablesResolver.getVariableByName)('amountInput/padding/horizontal', modes))
|
|
39
|
-
const paddingVertical = Number((0, _figmaVariablesResolver.getVariableByName)('amountInput/padding/vertical', modes))
|
|
37
|
+
const gap = Number((0, _figmaVariablesResolver.getVariableByName)('amountInput/gap', modes));
|
|
38
|
+
const paddingHorizontal = Number((0, _figmaVariablesResolver.getVariableByName)('amountInput/padding/horizontal', modes));
|
|
39
|
+
const paddingVertical = Number((0, _figmaVariablesResolver.getVariableByName)('amountInput/padding/vertical', modes));
|
|
40
40
|
const containerStyle = {
|
|
41
41
|
flexDirection: 'column',
|
|
42
42
|
alignItems: 'center',
|
|
@@ -727,7 +727,7 @@ function ChartTooltip({
|
|
|
727
727
|
const bg = (0, _figmaVariablesResolver.getVariableByName)('tooltip/background', modes) ?? '#0f0d0a';
|
|
728
728
|
const paddingH = toNumber((0, _figmaVariablesResolver.getVariableByName)('tooltip/padding/horizontal', modes), 12);
|
|
729
729
|
const paddingV = toNumber((0, _figmaVariablesResolver.getVariableByName)('tooltip/padding/vertical', modes), 8);
|
|
730
|
-
const radius =
|
|
730
|
+
const radius = 8;
|
|
731
731
|
const labelColor = (0, _figmaVariablesResolver.getVariableByName)('tooltip/label/color', modes) ?? '#ffffff';
|
|
732
732
|
if (items.length === 0) return null;
|
|
733
733
|
|
|
@@ -805,7 +805,7 @@ function ChartLegend() {
|
|
|
805
805
|
/** Resolve `axisItem/*` typography tokens into a memoized text style. */
|
|
806
806
|
function useAxisTypography(modes) {
|
|
807
807
|
return (0, _react.useMemo)(() => {
|
|
808
|
-
const color = (0, _figmaVariablesResolver.getVariableByName)('axisItem/
|
|
808
|
+
const color = (0, _figmaVariablesResolver.getVariableByName)('axisItem/fg', modes) ?? '#000000';
|
|
809
809
|
const fontFamily = (0, _figmaVariablesResolver.getVariableByName)('axisItem/fontFamily', modes) ?? 'JioType Var';
|
|
810
810
|
const fontSize = toNumber((0, _figmaVariablesResolver.getVariableByName)('axisItem/fontSize', modes), 12);
|
|
811
811
|
const lineHeight = toNumber((0, _figmaVariablesResolver.getVariableByName)('axisItem/lineHeight', modes), 16);
|
|
@@ -129,7 +129,7 @@ function Attached({
|
|
|
129
129
|
// anchor centering intact).
|
|
130
130
|
const slotBorderStyle = (0, _react.useMemo)(() => {
|
|
131
131
|
const borderColor = (0, _figmaVariablesResolver.getVariableByName)('attached/slot/border', modes);
|
|
132
|
-
const borderWidth = parseFloat((0, _figmaVariablesResolver.getVariableByName)('attached/slot/borderWidth', modes)
|
|
132
|
+
const borderWidth = parseFloat((0, _figmaVariablesResolver.getVariableByName)('attached/slot/borderWidth', modes));
|
|
133
133
|
if (!borderColor || !(borderWidth > 0)) return null;
|
|
134
134
|
|
|
135
135
|
// Match the inner clip radius so the ring stays concentric. The outer edge
|
|
@@ -57,17 +57,17 @@ const monogramContainerStyle = {
|
|
|
57
57
|
// ---------------------------------------------------------------------------
|
|
58
58
|
|
|
59
59
|
function resolveAvatarTokens(modes, isMonogram) {
|
|
60
|
-
const size = (0, _figmaVariablesResolver.getVariableByName)('avatar/size', modes)
|
|
61
|
-
const radiusRaw = (0, _figmaVariablesResolver.getVariableByName)('avatar/radius', modes)
|
|
62
|
-
const backgroundColor = (0, _figmaVariablesResolver.getVariableByName)('avatar/background', modes)
|
|
63
|
-
const borderColor = (0, _figmaVariablesResolver.getVariableByName)('avatar/border/color', modes)
|
|
64
|
-
const borderSize = (0, _figmaVariablesResolver.getVariableByName)('avatar/border/size', modes)
|
|
65
|
-
const labelColor = (0, _figmaVariablesResolver.getVariableByName)('avatar/label/color', modes)
|
|
66
|
-
const labelFontSize = (0, _figmaVariablesResolver.getVariableByName)('avatar/label/fontSize', modes)
|
|
67
|
-
const labelLineHeight = (0, _figmaVariablesResolver.getVariableByName)('avatar/label/lineHeight', modes)
|
|
68
|
-
const labelFontWeightRaw = (0, _figmaVariablesResolver.getVariableByName)('avatar/label/fontWeight', modes)
|
|
60
|
+
const size = (0, _figmaVariablesResolver.getVariableByName)('avatar/size', modes);
|
|
61
|
+
const radiusRaw = (0, _figmaVariablesResolver.getVariableByName)('avatar/radius', modes);
|
|
62
|
+
const backgroundColor = (0, _figmaVariablesResolver.getVariableByName)('avatar/background', modes);
|
|
63
|
+
const borderColor = (0, _figmaVariablesResolver.getVariableByName)('avatar/border/color', modes);
|
|
64
|
+
const borderSize = (0, _figmaVariablesResolver.getVariableByName)('avatar/border/size', modes);
|
|
65
|
+
const labelColor = (0, _figmaVariablesResolver.getVariableByName)('avatar/label/color', modes);
|
|
66
|
+
const labelFontSize = (0, _figmaVariablesResolver.getVariableByName)('avatar/label/fontSize', modes);
|
|
67
|
+
const labelLineHeight = (0, _figmaVariablesResolver.getVariableByName)('avatar/label/lineHeight', modes);
|
|
68
|
+
const labelFontWeightRaw = (0, _figmaVariablesResolver.getVariableByName)('avatar/label/fontWeight', modes);
|
|
69
69
|
const labelFontWeight = typeof labelFontWeightRaw === 'number' ? labelFontWeightRaw.toString() : labelFontWeightRaw;
|
|
70
|
-
const labelFontFamily = (0, _figmaVariablesResolver.getVariableByName)('avatar/label/fontFamily', modes)
|
|
70
|
+
const labelFontFamily = (0, _figmaVariablesResolver.getVariableByName)('avatar/label/fontFamily', modes);
|
|
71
71
|
|
|
72
72
|
// 9999 is the design-token sentinel for "perfect circle"
|
|
73
73
|
const borderRadius = radiusRaw === 9999 ? size / 2 : radiusRaw;
|
|
@@ -19,15 +19,15 @@ function AvatarGroup({
|
|
|
19
19
|
style,
|
|
20
20
|
...rest
|
|
21
21
|
}) {
|
|
22
|
-
const gap = (0, _figmaVariablesResolver.getVariableByName)('avatarGroup/gap', modes)
|
|
23
|
-
const avatarSize = (0, _figmaVariablesResolver.getVariableByName)('avatar/size', modes)
|
|
24
|
-
const avatarRadius = (0, _figmaVariablesResolver.getVariableByName)('avatar/radius', modes)
|
|
25
|
-
const borderSize = (0, _figmaVariablesResolver.getVariableByName)('avatar/border/size', modes)
|
|
26
|
-
const borderColor = (0, _figmaVariablesResolver.getVariableByName)('avatar/border/color', modes)
|
|
27
|
-
const paddingLeft = (0, _figmaVariablesResolver.getVariableByName)('avatarGroup/padding/left', modes)
|
|
28
|
-
const paddingRight = (0, _figmaVariablesResolver.getVariableByName)('avatarGroup/padding/right', modes)
|
|
29
|
-
const paddingTop = (0, _figmaVariablesResolver.getVariableByName)('avatarGroup/padding/top', modes)
|
|
30
|
-
const paddingBottom = (0, _figmaVariablesResolver.getVariableByName)('avatarGroup/padding/bottom', modes)
|
|
22
|
+
const gap = (0, _figmaVariablesResolver.getVariableByName)('avatarGroup/gap', modes);
|
|
23
|
+
const avatarSize = (0, _figmaVariablesResolver.getVariableByName)('avatar/size', modes);
|
|
24
|
+
const avatarRadius = (0, _figmaVariablesResolver.getVariableByName)('avatar/radius', modes);
|
|
25
|
+
const borderSize = (0, _figmaVariablesResolver.getVariableByName)('avatar/border/size', modes);
|
|
26
|
+
const borderColor = (0, _figmaVariablesResolver.getVariableByName)('avatar/border/color', modes);
|
|
27
|
+
const paddingLeft = (0, _figmaVariablesResolver.getVariableByName)('avatarGroup/padding/left', modes);
|
|
28
|
+
const paddingRight = (0, _figmaVariablesResolver.getVariableByName)('avatarGroup/padding/right', modes);
|
|
29
|
+
const paddingTop = (0, _figmaVariablesResolver.getVariableByName)('avatarGroup/padding/top', modes);
|
|
30
|
+
const paddingBottom = (0, _figmaVariablesResolver.getVariableByName)('avatarGroup/padding/bottom', modes);
|
|
31
31
|
const validChildren = (0, _reactUtils.flattenChildren)(children);
|
|
32
32
|
const totalChildren = validChildren.length;
|
|
33
33
|
|
|
@@ -34,20 +34,20 @@ function Badge({
|
|
|
34
34
|
// Resolve token values (fall back to sensible defaults). The glass type
|
|
35
35
|
// swaps the solid fill for a translucent overlay + white label, matching the
|
|
36
36
|
// Figma `badge/glass/*` tokens.
|
|
37
|
-
const backgroundColor = (0, _figmaVariablesResolver.getVariableByName)('badge/color/background', modes)
|
|
38
|
-
const glassBackground = (0, _figmaVariablesResolver.getVariableByName)('badge/glass/color/background', modes)
|
|
39
|
-
const glassLabelColor = (0, _figmaVariablesResolver.getVariableByName)('badge/glass/color/label', modes)
|
|
40
|
-
const labelColor = isGlass ? glassLabelColor : (0, _figmaVariablesResolver.getVariableByName)('badge/color/label', modes)
|
|
41
|
-
const fontSize = Number((0, _figmaVariablesResolver.getVariableByName)('badge/label/fontSize', modes))
|
|
42
|
-
const fontFamily = (0, _figmaVariablesResolver.getVariableByName)('badge/fontFamily', modes)
|
|
43
|
-
const fontWeight = (0, _figmaVariablesResolver.getVariableByName)('badge/label/fontWeight', modes)
|
|
44
|
-
const paddingHorizontal = Number((0, _figmaVariablesResolver.getVariableByName)('badge/padding/horizontal', modes))
|
|
45
|
-
const paddingVertical = Number((0, _figmaVariablesResolver.getVariableByName)('badge/padding/vertical', modes))
|
|
46
|
-
const borderRadius = Number((0, _figmaVariablesResolver.getVariableByName)('badge/radius', modes))
|
|
47
|
-
const lineHeight = Number((0, _figmaVariablesResolver.getVariableByName)('badge/label/lineHeight', modes))
|
|
37
|
+
const backgroundColor = (0, _figmaVariablesResolver.getVariableByName)('badge/color/background', modes);
|
|
38
|
+
const glassBackground = (0, _figmaVariablesResolver.getVariableByName)('badge/glass/color/background', modes);
|
|
39
|
+
const glassLabelColor = (0, _figmaVariablesResolver.getVariableByName)('badge/glass/color/label', modes);
|
|
40
|
+
const labelColor = isGlass ? glassLabelColor : (0, _figmaVariablesResolver.getVariableByName)('badge/color/label', modes);
|
|
41
|
+
const fontSize = Number((0, _figmaVariablesResolver.getVariableByName)('badge/label/fontSize', modes));
|
|
42
|
+
const fontFamily = (0, _figmaVariablesResolver.getVariableByName)('badge/fontFamily', modes);
|
|
43
|
+
const fontWeight = (0, _figmaVariablesResolver.getVariableByName)('badge/label/fontWeight', modes);
|
|
44
|
+
const paddingHorizontal = Number((0, _figmaVariablesResolver.getVariableByName)('badge/padding/horizontal', modes));
|
|
45
|
+
const paddingVertical = Number((0, _figmaVariablesResolver.getVariableByName)('badge/padding/vertical', modes));
|
|
46
|
+
const borderRadius = Number((0, _figmaVariablesResolver.getVariableByName)('badge/radius', modes));
|
|
47
|
+
const lineHeight = Number((0, _figmaVariablesResolver.getVariableByName)('badge/label/lineHeight', modes));
|
|
48
48
|
// Figma `blur/minimal` (px radius) -> GlassFill's 0–100 intensity scale, the
|
|
49
49
|
// same 1:1 mapping the merchandising card footer uses.
|
|
50
|
-
const blurIntensity = Math.max(0, Math.min(100, Math.round(Number((0, _figmaVariablesResolver.getVariableByName)('blur/minimal', modes))
|
|
50
|
+
const blurIntensity = Math.max(0, Math.min(100, Math.round(Number((0, _figmaVariablesResolver.getVariableByName)('blur/minimal', modes)))));
|
|
51
51
|
|
|
52
52
|
// Skeleton short-circuit. Size derived from the same tokens the loaded
|
|
53
53
|
// badge would use so the placeholder occupies the same box.
|
|
@@ -13,6 +13,9 @@ var _Text = _interopRequireDefault(require("../Text/Text"));
|
|
|
13
13
|
var _ListItem = _interopRequireDefault(require("../ListItem/ListItem"));
|
|
14
14
|
var _Divider = _interopRequireDefault(require("../Divider/Divider"));
|
|
15
15
|
var _Button = _interopRequireDefault(require("../Button/Button"));
|
|
16
|
+
var _Nudge = _interopRequireDefault(require("../Nudge/Nudge"));
|
|
17
|
+
var _Avatar = _interopRequireDefault(require("../Avatar/Avatar"));
|
|
18
|
+
var _TextSegment = _interopRequireDefault(require("../TextSegment/TextSegment"));
|
|
16
19
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
17
20
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
18
21
|
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
@@ -44,8 +47,11 @@ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r
|
|
|
44
47
|
function BenefitCard({
|
|
45
48
|
headerTitle = 'You will earn',
|
|
46
49
|
headerItem,
|
|
50
|
+
headerItems,
|
|
51
|
+
header,
|
|
47
52
|
showHeader = true,
|
|
48
|
-
bodyTitle
|
|
53
|
+
bodyTitle,
|
|
54
|
+
bodyHeader,
|
|
49
55
|
items,
|
|
50
56
|
children,
|
|
51
57
|
buttonLabel = 'Upgrade',
|
|
@@ -60,11 +66,16 @@ function BenefitCard({
|
|
|
60
66
|
}) {
|
|
61
67
|
const tokens = (0, _react.useMemo)(() => resolveTokens(modes), [modes]);
|
|
62
68
|
|
|
63
|
-
//
|
|
64
|
-
|
|
69
|
+
// Component-level modes. `List Item Style: Minimal` and `Nudge padding: None`
|
|
70
|
+
// are BenefitCard's own defaults: they live on the card and cascade down into
|
|
71
|
+
// every child (the list-wrap rows and the upsell nudge) rather than being
|
|
72
|
+
// threaded onto each individual item. Consumer `modes` always win.
|
|
73
|
+
const cascadeModes = (0, _react.useMemo)(() => ({
|
|
65
74
|
'List Item Style': 'Minimal',
|
|
75
|
+
'Nudge padding': 'None',
|
|
66
76
|
...modes
|
|
67
77
|
}), [modes]);
|
|
78
|
+
// Sub-element modes layer their own specifics on top of the consumer modes.
|
|
68
79
|
const iconModes = (0, _react.useMemo)(() => ({
|
|
69
80
|
AppearanceBrand: 'Secondary',
|
|
70
81
|
...modes
|
|
@@ -78,6 +89,13 @@ function BenefitCard({
|
|
|
78
89
|
'Button / Size': 'S',
|
|
79
90
|
...modes
|
|
80
91
|
}), [modes]);
|
|
92
|
+
// The upsell nudge keeps a white/transparent background (`AppearanceBrand:
|
|
93
|
+
// Neutral` → `nudge/background: #ffffff`); its `Nudge padding: None` cascades
|
|
94
|
+
// in from `cascadeModes` so it sits flush with the card.
|
|
95
|
+
const nudgeModes = (0, _react.useMemo)(() => ({
|
|
96
|
+
AppearanceBrand: 'Neutral',
|
|
97
|
+
...cascadeModes
|
|
98
|
+
}), [cascadeModes]);
|
|
81
99
|
const renderItem = (item, key) => {
|
|
82
100
|
const leading = item.leading ?? (item.icon != null ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_Icon.default, {
|
|
83
101
|
iconName: item.icon,
|
|
@@ -95,23 +113,60 @@ function BenefitCard({
|
|
|
95
113
|
title: item.title,
|
|
96
114
|
leading: leading,
|
|
97
115
|
trailing: trailing,
|
|
98
|
-
onPress: item.onPress
|
|
99
|
-
modes: listItemModes
|
|
116
|
+
onPress: item.onPress
|
|
100
117
|
}, key);
|
|
101
118
|
};
|
|
102
|
-
|
|
119
|
+
|
|
120
|
+
// Header "list wrap" — slot-based. Precedence: `header` slot > `headerItems`
|
|
121
|
+
// array > legacy single `headerItem` > Figma default rows. The component-level
|
|
122
|
+
// `cascadeModes` are pushed into the whole group at once, so individual rows
|
|
123
|
+
// never carry their own list-item modes.
|
|
124
|
+
const headerListSource = header ? header : (headerItems ?? (headerItem ? [headerItem] : DEFAULT_HEADER_ITEMS)).map((item, index) => renderItem(item, `header-${index}`));
|
|
125
|
+
const headerListNodes = (0, _reactUtils.cloneChildrenWithModes)(headerListSource, cascadeModes);
|
|
126
|
+
const headerNode = showHeader ? /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
|
|
103
127
|
style: styles.section,
|
|
104
128
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
|
|
105
129
|
style: styles.cardHeader,
|
|
106
130
|
children: [headerTitle != null ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
|
|
107
131
|
style: tokens.title,
|
|
108
132
|
children: headerTitle
|
|
109
|
-
}) : null,
|
|
133
|
+
}) : null, /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
134
|
+
style: tokens.listWrap,
|
|
135
|
+
children: headerListNodes
|
|
136
|
+
})]
|
|
110
137
|
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Divider.default, {
|
|
111
138
|
modes: modes
|
|
112
139
|
})]
|
|
113
140
|
}) : null;
|
|
114
|
-
|
|
141
|
+
|
|
142
|
+
// Body "header" slot (between the divider and the body list). Precedence:
|
|
143
|
+
// explicit `bodyHeader` slot > legacy `bodyTitle` text > Figma upsell nudge.
|
|
144
|
+
const bodyHeaderNode = bodyHeader === null || bodyHeader === false ? null : bodyHeader !== undefined ? renderSlot(bodyHeader, cascadeModes) : bodyTitle != null ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
|
|
145
|
+
style: tokens.title,
|
|
146
|
+
children: bodyTitle
|
|
147
|
+
}) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_Nudge.default, {
|
|
148
|
+
type: "inline-compact",
|
|
149
|
+
modes: {
|
|
150
|
+
...nudgeModes,
|
|
151
|
+
...cascadeModes
|
|
152
|
+
},
|
|
153
|
+
startSlot: DEFAULT_UPSELL_AVATAR,
|
|
154
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_TextSegment.default, {
|
|
155
|
+
modes: cascadeModes,
|
|
156
|
+
segments: [{
|
|
157
|
+
text: 'Upgrade to '
|
|
158
|
+
}, {
|
|
159
|
+
text: 'JioFinance+',
|
|
160
|
+
modes: {
|
|
161
|
+
'Text Appearance': 'Primary'
|
|
162
|
+
}
|
|
163
|
+
}, {
|
|
164
|
+
text: ' and earn more'
|
|
165
|
+
}]
|
|
166
|
+
})
|
|
167
|
+
});
|
|
168
|
+
const bodyListSource = children ? children : (items ?? DEFAULT_ITEMS).map((item, index) => renderItem(item, index));
|
|
169
|
+
const bodyList = (0, _reactUtils.cloneChildrenWithModes)(bodyListSource, cascadeModes);
|
|
115
170
|
const ctaNode = button ?? /*#__PURE__*/(0, _jsxRuntime.jsx)(_Button.default, {
|
|
116
171
|
label: buttonLabel,
|
|
117
172
|
modes: ctaModes,
|
|
@@ -122,15 +177,9 @@ function BenefitCard({
|
|
|
122
177
|
width
|
|
123
178
|
}), [tokens.container, width]);
|
|
124
179
|
const content = /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
|
|
125
|
-
children: [headerNode, /*#__PURE__*/(0, _jsxRuntime.
|
|
126
|
-
style: tokens.
|
|
127
|
-
children:
|
|
128
|
-
style: tokens.title,
|
|
129
|
-
children: bodyTitle
|
|
130
|
-
}) : null, /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
131
|
-
style: tokens.listWrap,
|
|
132
|
-
children: bodyList
|
|
133
|
-
})]
|
|
180
|
+
children: [headerNode, bodyHeaderNode, /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
181
|
+
style: tokens.listWrap,
|
|
182
|
+
children: bodyList
|
|
134
183
|
}), showButton ? ctaNode : null]
|
|
135
184
|
});
|
|
136
185
|
if (onPress) {
|
|
@@ -189,10 +238,6 @@ function resolveTokens(modes) {
|
|
|
189
238
|
flexDirection: 'column',
|
|
190
239
|
alignItems: 'flex-start'
|
|
191
240
|
},
|
|
192
|
-
body: {
|
|
193
|
-
alignSelf: 'stretch',
|
|
194
|
-
gap
|
|
195
|
-
},
|
|
196
241
|
listWrap: {
|
|
197
242
|
alignSelf: 'stretch',
|
|
198
243
|
gap
|
|
@@ -208,6 +253,26 @@ function resolveTokens(modes) {
|
|
|
208
253
|
}
|
|
209
254
|
};
|
|
210
255
|
}
|
|
256
|
+
|
|
257
|
+
// Cascades `modes` into a slot node and unwraps a single child so the slot can
|
|
258
|
+
// be rendered inline without an extra fragment.
|
|
259
|
+
function renderSlot(node, modes) {
|
|
260
|
+
const processed = (0, _reactUtils.cloneChildrenWithModes)(node, modes);
|
|
261
|
+
return processed.length === 1 ? processed[0] : processed;
|
|
262
|
+
}
|
|
263
|
+
|
|
264
|
+
// Figma reference rows for the header list wrap (two highlighted "JioPoints"
|
|
265
|
+
// rows). Used only when no `header` slot / `headerItems` / legacy `headerItem`
|
|
266
|
+
// is supplied.
|
|
267
|
+
const DEFAULT_HEADER_ITEMS = [{
|
|
268
|
+
icon: 'ic_jewellery_diamond',
|
|
269
|
+
title: 'JioPoints',
|
|
270
|
+
trailingText: 'Up to 2000 pts'
|
|
271
|
+
}, {
|
|
272
|
+
icon: 'ic_jewellery_diamond',
|
|
273
|
+
title: 'JioPoints',
|
|
274
|
+
trailingText: 'Up to 2000 pts'
|
|
275
|
+
}];
|
|
211
276
|
const DEFAULT_ITEMS = [{
|
|
212
277
|
icon: 'ic_card',
|
|
213
278
|
title: 'Up to ₹5000 cashback'
|
|
@@ -215,6 +280,15 @@ const DEFAULT_ITEMS = [{
|
|
|
215
280
|
icon: 'ic_card',
|
|
216
281
|
title: '25% extra JioPoints'
|
|
217
282
|
}];
|
|
283
|
+
|
|
284
|
+
// Start-slot avatar for the default upsell nudge. `modes` cascade in from the
|
|
285
|
+
// nudge (XS keeps it compact next to the inline message).
|
|
286
|
+
const DEFAULT_UPSELL_AVATAR = /*#__PURE__*/(0, _jsxRuntime.jsx)(_Avatar.default, {
|
|
287
|
+
style: "Image",
|
|
288
|
+
modes: {
|
|
289
|
+
'Avatar Size': 'XS'
|
|
290
|
+
}
|
|
291
|
+
});
|
|
218
292
|
const styles = _reactNative.StyleSheet.create({
|
|
219
293
|
section: {
|
|
220
294
|
alignSelf: 'stretch',
|
|
@@ -42,8 +42,8 @@ function BottomNav({
|
|
|
42
42
|
};
|
|
43
43
|
|
|
44
44
|
// Resolve container styling tokens
|
|
45
|
-
const backgroundColor = (0, _figmaVariablesResolver.getVariableByName)('bottomNav/background', modes)
|
|
46
|
-
const borderColor = (0, _figmaVariablesResolver.getVariableByName)('bottomNav/border/color', modes)
|
|
45
|
+
const backgroundColor = (0, _figmaVariablesResolver.getVariableByName)('bottomNav/background', modes);
|
|
46
|
+
const borderColor = (0, _figmaVariablesResolver.getVariableByName)('bottomNav/border/color', modes);
|
|
47
47
|
const borderWidth = (0, _figmaVariablesResolver.getVariableByName)('bottomNav/border/width', modes) ?? 1;
|
|
48
48
|
const paddingTop = (0, _figmaVariablesResolver.getVariableByName)('bottomNav/padding/top', modes) ?? 10;
|
|
49
49
|
const paddingBottom = (0, _figmaVariablesResolver.getVariableByName)('bottomNav/padding/bottom', modes) ?? 23;
|
|
@@ -29,13 +29,13 @@ const focusOverlayStyle = {
|
|
|
29
29
|
};
|
|
30
30
|
function resolveBottomNavItemTokens(modes, disabled, iconColorOverride, iconSizeOverride) {
|
|
31
31
|
const gap = (0, _figmaVariablesResolver.getVariableByName)('bottomNavItem/gap', modes) ?? 6;
|
|
32
|
-
const fontFamily = (0, _figmaVariablesResolver.getVariableByName)('bottomNavItem/fontFamily', modes)
|
|
32
|
+
const fontFamily = (0, _figmaVariablesResolver.getVariableByName)('bottomNavItem/fontFamily', modes);
|
|
33
33
|
const fontWeightRaw = (0, _figmaVariablesResolver.getVariableByName)('bottomNavItem/fontWeight', modes) ?? 500;
|
|
34
34
|
const fontWeight = typeof fontWeightRaw === 'number' ? fontWeightRaw.toString() : fontWeightRaw;
|
|
35
35
|
const fontSize = (0, _figmaVariablesResolver.getVariableByName)('bottomNavItem/fontSize', modes) ?? 11;
|
|
36
36
|
const lineHeight = (0, _figmaVariablesResolver.getVariableByName)('bottomNavItem/lineHeight', modes) ?? 14;
|
|
37
|
-
const labelColor = (0, _figmaVariablesResolver.getVariableByName)('bottomNavItem/label/color', modes)
|
|
38
|
-
const resolvedIconColor = iconColorOverride || (0, _figmaVariablesResolver.getVariableByName)('bottomNavItem/icon/color', modes)
|
|
37
|
+
const labelColor = (0, _figmaVariablesResolver.getVariableByName)('bottomNavItem/label/color', modes);
|
|
38
|
+
const resolvedIconColor = iconColorOverride || (0, _figmaVariablesResolver.getVariableByName)('bottomNavItem/icon/color', modes);
|
|
39
39
|
const resolvedIconSize = iconSizeOverride ?? (0, _figmaVariablesResolver.getVariableByName)('bottomNavItem/icon/size', modes) ?? 24;
|
|
40
40
|
return {
|
|
41
41
|
baseContainerStyle: {
|
|
@@ -37,6 +37,17 @@ const containerLayoutStyle = {
|
|
|
37
37
|
justifyContent: 'center'
|
|
38
38
|
};
|
|
39
39
|
|
|
40
|
+
// Keeps the label on a single line. `flexShrink: 0` stops a tight flex parent
|
|
41
|
+
// from squeezing the text; on web `whiteSpace: 'nowrap'` is what actually
|
|
42
|
+
// prevents the line break (a bare `numberOfLines` line-clamp still allows the
|
|
43
|
+
// text to wrap inside a width-constrained pill in react-native-web).
|
|
44
|
+
const NO_WRAP_LABEL_STYLE = {
|
|
45
|
+
flexShrink: 0,
|
|
46
|
+
...(IS_WEB ? {
|
|
47
|
+
whiteSpace: 'nowrap'
|
|
48
|
+
} : {})
|
|
49
|
+
};
|
|
50
|
+
|
|
40
51
|
// ---------------------------------------------------------------------------
|
|
41
52
|
// Token resolution
|
|
42
53
|
// ---------------------------------------------------------------------------
|
|
@@ -48,19 +59,19 @@ const containerLayoutStyle = {
|
|
|
48
59
|
// ---------------------------------------------------------------------------
|
|
49
60
|
|
|
50
61
|
function resolveButtonTokens(modes, disabled) {
|
|
51
|
-
const backgroundColor = (0, _figmaVariablesResolver.getVariableByName)('button/background', modes)
|
|
52
|
-
const borderColor = (0, _figmaVariablesResolver.getVariableByName)('button/border/color', modes)
|
|
62
|
+
const backgroundColor = (0, _figmaVariablesResolver.getVariableByName)('button/background', modes);
|
|
63
|
+
const borderColor = (0, _figmaVariablesResolver.getVariableByName)('button/border/color', modes);
|
|
53
64
|
const borderWidth = (0, _figmaVariablesResolver.getVariableByName)('button/border/size', modes);
|
|
54
|
-
const radius = (0, _figmaVariablesResolver.getVariableByName)('button/radius', modes)
|
|
55
|
-
const paddingHorizontal = (0, _figmaVariablesResolver.getVariableByName)('button/padding/horizontal', modes)
|
|
56
|
-
const paddingVertical = (0, _figmaVariablesResolver.getVariableByName)('button/padding/vertical', modes)
|
|
57
|
-
const gap = (0, _figmaVariablesResolver.getVariableByName)('button/gap', modes)
|
|
58
|
-
const fontFamily = (0, _figmaVariablesResolver.getVariableByName)('button/fontFamily', modes)
|
|
59
|
-
const fontWeightValue = (0, _figmaVariablesResolver.getVariableByName)('button/fontWeight', modes)
|
|
65
|
+
const radius = (0, _figmaVariablesResolver.getVariableByName)('button/radius', modes);
|
|
66
|
+
const paddingHorizontal = (0, _figmaVariablesResolver.getVariableByName)('button/padding/horizontal', modes);
|
|
67
|
+
const paddingVertical = (0, _figmaVariablesResolver.getVariableByName)('button/padding/vertical', modes);
|
|
68
|
+
const gap = (0, _figmaVariablesResolver.getVariableByName)('button/gap', modes);
|
|
69
|
+
const fontFamily = (0, _figmaVariablesResolver.getVariableByName)('button/fontFamily', modes);
|
|
70
|
+
const fontWeightValue = (0, _figmaVariablesResolver.getVariableByName)('button/fontWeight', modes);
|
|
60
71
|
const fontWeight = typeof fontWeightValue === 'number' ? fontWeightValue.toString() : fontWeightValue;
|
|
61
|
-
const lineHeight = (0, _figmaVariablesResolver.getVariableByName)('button/lineHeight', modes)
|
|
62
|
-
const fontSize = (0, _figmaVariablesResolver.getVariableByName)('button/fontSize', modes)
|
|
63
|
-
const textColor = (0, _figmaVariablesResolver.getVariableByName)('button/foreground', modes)
|
|
72
|
+
const lineHeight = (0, _figmaVariablesResolver.getVariableByName)('button/lineHeight', modes);
|
|
73
|
+
const fontSize = (0, _figmaVariablesResolver.getVariableByName)('button/fontSize', modes);
|
|
74
|
+
const textColor = (0, _figmaVariablesResolver.getVariableByName)('button/foreground', modes);
|
|
64
75
|
const iconSize = (0, _figmaVariablesResolver.getVariableByName)('button/icon/size', modes) ?? 18;
|
|
65
76
|
|
|
66
77
|
// Pressed tokens are always resolved so the Pressable `style` callback can
|
|
@@ -69,9 +80,9 @@ function resolveButtonTokens(modes, disabled) {
|
|
|
69
80
|
...modes,
|
|
70
81
|
'Button / State': 'Pressed'
|
|
71
82
|
};
|
|
72
|
-
const pressedBg = (0, _figmaVariablesResolver.getVariableByName)('button/background', pressedModes)
|
|
73
|
-
const pressedBorderColor = (0, _figmaVariablesResolver.getVariableByName)('button/border/color', pressedModes)
|
|
74
|
-
const pressedTextColor = (0, _figmaVariablesResolver.getVariableByName)('button/foreground', pressedModes)
|
|
83
|
+
const pressedBg = (0, _figmaVariablesResolver.getVariableByName)('button/background', pressedModes);
|
|
84
|
+
const pressedBorderColor = (0, _figmaVariablesResolver.getVariableByName)('button/border/color', pressedModes);
|
|
85
|
+
const pressedTextColor = (0, _figmaVariablesResolver.getVariableByName)('button/foreground', pressedModes);
|
|
75
86
|
|
|
76
87
|
// Hover tokens are only meaningful on web. Skipping them on native saves
|
|
77
88
|
// ~3 token lookups + an object spread per render on every Button.
|
|
@@ -82,9 +93,9 @@ function resolveButtonTokens(modes, disabled) {
|
|
|
82
93
|
...modes,
|
|
83
94
|
'Button / State': 'Hover'
|
|
84
95
|
};
|
|
85
|
-
const hoverBg = (0, _figmaVariablesResolver.getVariableByName)('button/background', hoverModes)
|
|
86
|
-
const hoverBorderColor = (0, _figmaVariablesResolver.getVariableByName)('button/border/color', hoverModes)
|
|
87
|
-
hoverTextColor = (0, _figmaVariablesResolver.getVariableByName)('button/foreground', hoverModes)
|
|
96
|
+
const hoverBg = (0, _figmaVariablesResolver.getVariableByName)('button/background', hoverModes);
|
|
97
|
+
const hoverBorderColor = (0, _figmaVariablesResolver.getVariableByName)('button/border/color', hoverModes);
|
|
98
|
+
hoverTextColor = (0, _figmaVariablesResolver.getVariableByName)('button/foreground', hoverModes);
|
|
88
99
|
hoverContainer = {
|
|
89
100
|
backgroundColor: hoverBg,
|
|
90
101
|
borderColor: hoverBorderColor
|
|
@@ -220,8 +231,9 @@ function ButtonImpl({
|
|
|
220
231
|
content = children;
|
|
221
232
|
} else {
|
|
222
233
|
content = /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
|
|
223
|
-
style: activeLabelStyle,
|
|
224
|
-
|
|
234
|
+
style: [activeLabelStyle, disableTruncation ? null : NO_WRAP_LABEL_STYLE],
|
|
235
|
+
numberOfLines: disableTruncation ? undefined : 1,
|
|
236
|
+
ellipsizeMode: disableTruncation ? undefined : 'tail',
|
|
225
237
|
children: label
|
|
226
238
|
});
|
|
227
239
|
}
|