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
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,30 @@ 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.18] - 2026-06-29
|
|
8
|
+
|
|
9
|
+
- **Fix:** Remove `@react-native-masked-view/masked-view` — fixes `Element type is invalid` crash on New Architecture (`ProductMerchandisingCard` image cards, `AvatarGroup`, `GlassFill` progressive blur). All masking now uses `react-native-svg` (no new peer deps; consumers can drop `masked-view` if added as a workaround).
|
|
10
|
+
- `ProductMerchandisingCard` — footer image blur via SVG `FeGaussianBlur` + gradient mask (cross-platform, no per-platform `blurRadius` tuning).
|
|
11
|
+
- `AvatarGroup` — overlap cutout via SVG `Mask` + `ForeignObject`.
|
|
12
|
+
- `GlassFill` — progressive blur via stacked `BlurView` bands; no-native-blur fallback uses SVG gradient scrim.
|
|
13
|
+
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
## [0.1.16] - 2026-06-26
|
|
17
|
+
|
|
18
|
+
- Added `CarouselCardAccounts` — horizontally scrollable account-card strip built on `Carousel` with token-driven gap and snap-aligned card slots.
|
|
19
|
+
- Added `ScrollArea` — token-aware scroll container with `direction` (`vertical` / `horizontal` / `both`), padding props, and hidden scroll indicators by default.
|
|
20
|
+
- 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`.
|
|
21
|
+
- 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.
|
|
22
|
+
- `Text` / `Title` — new `singleLine` prop to force single-line layout (web uses `whiteSpace: nowrap` so text overflows instead of wrapping inside constrained parents).
|
|
23
|
+
- `Button` — web label no-wrap fix for pill buttons in tight flex layouts.
|
|
24
|
+
- `Drawer` — title-wrap padding driven by `drawer/titleWrap/padding/*` tokens; layered shadow routed through shared `boxShadow`.
|
|
25
|
+
- `SavingsGoalSummary` — optional `label` caption above the percentage value with dedicated `savingsGoalSummary/label/*` and `savingsGoalSummary/value/*` typography tokens.
|
|
26
|
+
- Icons — 73 new icons (analytics, documents, network/connectivity, folders, and related glyphs); refreshed icon registry.
|
|
27
|
+
- Figma/token sync pass; refreshed `.token-metadata.json`, `figma-modes.generated.ts`, and Coin Variables tokens.
|
|
28
|
+
|
|
29
|
+
---
|
|
30
|
+
|
|
7
31
|
## [0.1.12] - 2026-06-22
|
|
8
32
|
|
|
9
33
|
- 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;
|
|
@@ -4,30 +4,32 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
|
-
var _react =
|
|
7
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
8
8
|
var _reactNative = require("react-native");
|
|
9
|
-
var _maskedView = _interopRequireDefault(require("@react-native-masked-view/masked-view"));
|
|
10
9
|
var _reactNativeSvg = _interopRequireWildcard(require("react-native-svg"));
|
|
11
10
|
var _figmaVariablesResolver = require("../../design-tokens/figma-variables-resolver");
|
|
12
11
|
var _reactUtils = require("../../utils/react-utils");
|
|
13
12
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
14
13
|
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
|
-
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
16
14
|
function AvatarGroup({
|
|
17
15
|
modes = _reactUtils.EMPTY_MODES,
|
|
18
16
|
children,
|
|
19
17
|
style,
|
|
20
18
|
...rest
|
|
21
19
|
}) {
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
const
|
|
25
|
-
const
|
|
26
|
-
const
|
|
27
|
-
const
|
|
28
|
-
const
|
|
29
|
-
const
|
|
30
|
-
const
|
|
20
|
+
// Stable, collision-free base for the per-avatar SVG mask ids so multiple
|
|
21
|
+
// groups on one screen (and multiple avatars in a group) never clash.
|
|
22
|
+
const rawId = (0, _react.useId)();
|
|
23
|
+
const maskBaseId = `avatargroup-mask-${rawId.replace(/[^a-zA-Z0-9_-]/g, '')}`;
|
|
24
|
+
const gap = (0, _figmaVariablesResolver.getVariableByName)('avatarGroup/gap', modes);
|
|
25
|
+
const avatarSize = (0, _figmaVariablesResolver.getVariableByName)('avatar/size', modes);
|
|
26
|
+
const avatarRadius = (0, _figmaVariablesResolver.getVariableByName)('avatar/radius', modes);
|
|
27
|
+
const borderSize = (0, _figmaVariablesResolver.getVariableByName)('avatar/border/size', modes);
|
|
28
|
+
const borderColor = (0, _figmaVariablesResolver.getVariableByName)('avatar/border/color', modes);
|
|
29
|
+
const paddingLeft = (0, _figmaVariablesResolver.getVariableByName)('avatarGroup/padding/left', modes);
|
|
30
|
+
const paddingRight = (0, _figmaVariablesResolver.getVariableByName)('avatarGroup/padding/right', modes);
|
|
31
|
+
const paddingTop = (0, _figmaVariablesResolver.getVariableByName)('avatarGroup/padding/top', modes);
|
|
32
|
+
const paddingBottom = (0, _figmaVariablesResolver.getVariableByName)('avatarGroup/padding/bottom', modes);
|
|
31
33
|
const validChildren = (0, _reactUtils.flattenChildren)(children);
|
|
32
34
|
const totalChildren = validChildren.length;
|
|
33
35
|
|
|
@@ -47,7 +49,11 @@ function AvatarGroup({
|
|
|
47
49
|
y: r
|
|
48
50
|
};
|
|
49
51
|
|
|
50
|
-
// Native
|
|
52
|
+
// Native mask path: the full avatar square MINUS a circular hole where the
|
|
53
|
+
// next (overlapping) avatar sits. Drawn as a single `evenodd` path so the
|
|
54
|
+
// hole is cut out of the square. Filled WHITE because react-native-svg's
|
|
55
|
+
// `<Mask>` is a *luminance* mask (white = visible, black/absent = hidden) —
|
|
56
|
+
// the inverse of the old `@react-native-masked-view` alpha convention.
|
|
51
57
|
const rectPath = `M 0 0 h ${avatarSizeInt} v ${avatarSizeInt} h -${avatarSizeInt} z`;
|
|
52
58
|
const circlePath = `M ${holeCenter.x},${holeCenter.y} m -${holeRadius},0 a ${holeRadius},${holeRadius} 0 1,0 ${holeRadius * 2},0 a ${holeRadius},${holeRadius} 0 1,0 -${holeRadius * 2},0`;
|
|
53
59
|
const maskPath = `${rectPath} ${circlePath}`;
|
|
@@ -105,25 +111,40 @@ function AvatarGroup({
|
|
|
105
111
|
}, index);
|
|
106
112
|
}
|
|
107
113
|
|
|
108
|
-
// Native
|
|
114
|
+
// Native: mask the avatar with react-native-svg instead of the
|
|
115
|
+
// unmaintained `@react-native-masked-view/masked-view`, whose
|
|
116
|
+
// legacy `requireNativeComponent('RNCMaskedView')` resolves to a
|
|
117
|
+
// plain object (crashing "Element type is invalid") under the New
|
|
118
|
+
// Architecture interop. react-native-svg ships a Fabric/codegen
|
|
119
|
+
// `<Mask>` + `<ForeignObject>` that resolves on both architectures;
|
|
120
|
+
// the avatar is hosted inside the `<ForeignObject>` and revealed
|
|
121
|
+
// through the luminance mask.
|
|
122
|
+
const maskId = `${maskBaseId}-${index}`;
|
|
109
123
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
110
124
|
style: wrapperStyle,
|
|
111
|
-
children: /*#__PURE__*/(0, _jsxRuntime.
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
125
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNativeSvg.default, {
|
|
126
|
+
height: "100%",
|
|
127
|
+
width: "100%",
|
|
128
|
+
viewBox: `0 0 ${avatarSizeInt} ${avatarSizeInt}`,
|
|
129
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeSvg.Defs, {
|
|
130
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeSvg.Mask, {
|
|
131
|
+
id: maskId,
|
|
132
|
+
maskUnits: "userSpaceOnUse",
|
|
133
|
+
maskContentUnits: "userSpaceOnUse",
|
|
134
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeSvg.Path, {
|
|
135
|
+
d: maskPath,
|
|
136
|
+
fill: "white",
|
|
137
|
+
fillRule: "evenodd"
|
|
138
|
+
})
|
|
124
139
|
})
|
|
125
|
-
}),
|
|
126
|
-
|
|
140
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeSvg.ForeignObject, {
|
|
141
|
+
x: "0",
|
|
142
|
+
y: "0",
|
|
143
|
+
width: avatarSizeInt,
|
|
144
|
+
height: avatarSizeInt,
|
|
145
|
+
mask: `url(#${maskId})`,
|
|
146
|
+
children: clonedChild
|
|
147
|
+
})]
|
|
127
148
|
})
|
|
128
149
|
}, index);
|
|
129
150
|
})
|
|
@@ -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: {
|