jfs-components 0.1.8 → 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 +31 -0
- package/lib/commonjs/components/Accordion/Accordion.js +2 -1
- package/lib/commonjs/components/AccordionCheckbox/AccordionCheckbox.js +4 -3
- package/lib/commonjs/components/AccountCard/AccountCard.js +4 -3
- package/lib/commonjs/components/ActionFooter/ActionFooter.js +7 -24
- package/lib/commonjs/components/ActionTile/ActionTile.js +10 -10
- package/lib/commonjs/components/AllocationComparisonChart/AllocationComparisonChart.js +9 -6
- package/lib/commonjs/components/AmountInput/AmountInput.js +3 -3
- package/lib/commonjs/components/AreaLineChart/AreaLineChart.js +13 -9
- 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 +55 -16
- 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/BrandChip/BrandChip.js +3 -3
- package/lib/commonjs/components/Button/Button.js +32 -19
- package/lib/commonjs/components/Card/Card.js +20 -20
- package/lib/commonjs/components/CardAdvisory/CardAdvisory.js +8 -7
- package/lib/commonjs/components/CardBankAccount/CardBankAccount.js +3 -2
- package/lib/commonjs/components/CardCTA/CardCTA.js +215 -45
- 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 +6 -3
- 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 +12 -8
- package/lib/commonjs/components/CircularProgressBarDoted/CircularProgressBarDoted.js +11 -10
- package/lib/commonjs/components/CircularRating/CircularRating.js +5 -4
- package/lib/commonjs/components/ClusterBubble/ClusterBubble.js +3 -2
- package/lib/commonjs/components/CompareTable/CompareTable.js +88 -59
- package/lib/commonjs/components/CoverageBarComparison/CoverageBarComparison.js +3 -2
- 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 +15 -14
- package/lib/commonjs/components/Drawer/Drawer.js +60 -60
- package/lib/commonjs/components/Dropdown/Dropdown.js +25 -25
- package/lib/commonjs/components/DropdownInput/DropdownInput.js +13 -12
- package/lib/commonjs/components/EmptyState/EmptyState.js +14 -14
- package/lib/commonjs/components/ExpandableCheckbox/ExpandableCheckbox.js +2 -1
- 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 +48 -8
- package/lib/commonjs/components/FullscreenModal/FullscreenModal.js +24 -24
- package/lib/commonjs/components/Gauge/Gauge.js +9 -9
- package/lib/commonjs/components/HoldingsCard/HoldingsCard.js +13 -12
- 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 +5 -4
- package/lib/commonjs/components/ListGroup/ListGroup.js +10 -9
- package/lib/commonjs/components/ListItem/ListItem.js +13 -12
- 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 +25 -23
- package/lib/commonjs/components/MessageField/MessageField.js +8 -8
- package/lib/commonjs/components/MetricLegendItem/MetricLegendItem.js +3 -2
- package/lib/commonjs/components/MoneyValue/MoneyValue.js +7 -7
- package/lib/commonjs/components/MonthlyStatusGrid/MonthlyStatusGrid.js +6 -3
- 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/PoweredByLabel/PoweredByLabel.js +3 -2
- package/lib/commonjs/components/ProductMerchandisingCard/ProductMerchandisingCard.js +107 -33
- package/lib/commonjs/components/ProductOverview/ProductOverview.js +4 -3
- package/lib/commonjs/components/ProgressBadge/ProgressBadge.js +7 -7
- package/lib/commonjs/components/ProjectionMarker/ProjectionMarker.js +3 -2
- 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 +27 -26
- package/lib/commonjs/components/Slider/Slider.js +3 -2
- package/lib/commonjs/components/Stack/Stack.js +86 -0
- 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 +20 -11
- package/lib/commonjs/components/SummaryTile/SummaryTile.js +3 -2
- package/lib/commonjs/components/SupportText/SupportText.js +6 -6
- package/lib/commonjs/components/SupportText/SupportTextIcon.js +2 -2
- package/lib/commonjs/components/Table/Table.js +324 -0
- package/lib/commonjs/components/Text/Text.js +15 -2
- package/lib/commonjs/components/TextInput/TextInput.js +23 -15
- package/lib/commonjs/components/TextSegment/TextSegment.js +15 -2
- package/lib/commonjs/components/ThreadHero/ThreadHero.js +21 -22
- package/lib/commonjs/components/Title/Title.js +39 -16
- package/lib/commonjs/components/Toast/Toast.js +18 -17
- 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 +15 -14
- package/lib/commonjs/components/TransactionDetails/TransactionDetails.js +10 -10
- package/lib/commonjs/components/TransactionStatus/TransactionStatus.js +12 -11
- package/lib/commonjs/components/UpiHandle/UpiHandle.js +17 -17
- package/lib/commonjs/components/index.js +58 -0
- package/lib/commonjs/design-tokens/Coin Variables-variables-full.json +1 -1
- package/lib/commonjs/design-tokens/figma-modes.generated.js +51 -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/{components/ProductMerchandisingCard → utils/GlassFill}/GlassFill.js +11 -3
- package/lib/commonjs/{components/ProductMerchandisingCard → utils/GlassFill}/GlassFill.web.js +8 -4
- package/lib/commonjs/utils/index.js +25 -0
- package/lib/commonjs/utils/react-utils.js +118 -0
- package/lib/commonjs/utils/shadow.js +200 -0
- package/lib/commonjs/utils/web-platform-utils.js +59 -0
- package/lib/module/components/Accordion/Accordion.js +3 -2
- package/lib/module/components/AccordionCheckbox/AccordionCheckbox.js +5 -4
- package/lib/module/components/AccountCard/AccountCard.js +5 -4
- package/lib/module/components/ActionFooter/ActionFooter.js +7 -24
- package/lib/module/components/ActionTile/ActionTile.js +10 -10
- package/lib/module/components/AllocationComparisonChart/AllocationComparisonChart.js +10 -7
- package/lib/module/components/AmountInput/AmountInput.js +3 -3
- package/lib/module/components/AreaLineChart/AreaLineChart.js +14 -10
- 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 +57 -18
- 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/BrandChip/BrandChip.js +4 -4
- package/lib/module/components/Button/Button.js +32 -19
- package/lib/module/components/Card/Card.js +20 -20
- package/lib/module/components/CardAdvisory/CardAdvisory.js +9 -8
- package/lib/module/components/CardBankAccount/CardBankAccount.js +4 -3
- package/lib/module/components/CardCTA/CardCTA.js +216 -46
- 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 +6 -3
- 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 +13 -9
- package/lib/module/components/CircularProgressBarDoted/CircularProgressBarDoted.js +12 -11
- package/lib/module/components/CircularRating/CircularRating.js +6 -5
- package/lib/module/components/ClusterBubble/ClusterBubble.js +4 -3
- package/lib/module/components/CompareTable/CompareTable.js +89 -60
- package/lib/module/components/CoverageBarComparison/CoverageBarComparison.js +4 -3
- 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 +16 -15
- package/lib/module/components/Drawer/Drawer.js +60 -60
- package/lib/module/components/Dropdown/Dropdown.js +26 -26
- package/lib/module/components/DropdownInput/DropdownInput.js +14 -13
- package/lib/module/components/EmptyState/EmptyState.js +14 -14
- package/lib/module/components/ExpandableCheckbox/ExpandableCheckbox.js +2 -1
- 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 +51 -11
- package/lib/module/components/FullscreenModal/FullscreenModal.js +24 -24
- package/lib/module/components/Gauge/Gauge.js +9 -9
- package/lib/module/components/HoldingsCard/HoldingsCard.js +14 -13
- 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 +6 -5
- package/lib/module/components/ListGroup/ListGroup.js +11 -10
- package/lib/module/components/ListItem/ListItem.js +14 -13
- 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 +25 -23
- package/lib/module/components/MessageField/MessageField.js +8 -8
- package/lib/module/components/MetricLegendItem/MetricLegendItem.js +4 -3
- package/lib/module/components/MoneyValue/MoneyValue.js +7 -7
- package/lib/module/components/MonthlyStatusGrid/MonthlyStatusGrid.js +7 -4
- 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/PoweredByLabel/PoweredByLabel.js +4 -3
- package/lib/module/components/ProductMerchandisingCard/ProductMerchandisingCard.js +109 -35
- package/lib/module/components/ProductOverview/ProductOverview.js +5 -4
- package/lib/module/components/ProgressBadge/ProgressBadge.js +8 -8
- package/lib/module/components/ProjectionMarker/ProjectionMarker.js +4 -3
- 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 +28 -27
- package/lib/module/components/Slider/Slider.js +4 -3
- package/lib/module/components/Stack/Stack.js +81 -0
- 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 +20 -11
- package/lib/module/components/SummaryTile/SummaryTile.js +4 -3
- package/lib/module/components/SupportText/SupportText.js +6 -6
- package/lib/module/components/SupportText/SupportTextIcon.js +2 -2
- package/lib/module/components/Table/Table.js +315 -0
- package/lib/module/components/Text/Text.js +16 -3
- package/lib/module/components/TextInput/TextInput.js +23 -15
- package/lib/module/components/TextSegment/TextSegment.js +16 -3
- package/lib/module/components/ThreadHero/ThreadHero.js +22 -23
- package/lib/module/components/Title/Title.js +40 -17
- package/lib/module/components/Toast/Toast.js +19 -18
- 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 +16 -15
- package/lib/module/components/TransactionDetails/TransactionDetails.js +10 -10
- package/lib/module/components/TransactionStatus/TransactionStatus.js +13 -12
- package/lib/module/components/UpiHandle/UpiHandle.js +18 -18
- package/lib/module/components/index.js +4 -0
- package/lib/module/design-tokens/Coin Variables-variables-full.json +1 -1
- package/lib/module/design-tokens/figma-modes.generated.js +51 -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/{components/ProductMerchandisingCard → utils/GlassFill}/GlassFill.js +11 -3
- package/lib/module/{components/ProductMerchandisingCard → utils/GlassFill}/GlassFill.web.js +8 -4
- package/lib/module/utils/index.js +2 -1
- package/lib/module/utils/react-utils.js +115 -0
- package/lib/module/utils/shadow.js +194 -0
- package/lib/module/utils/web-platform-utils.js +58 -0
- package/lib/typescript/src/components/Accordion/Accordion.d.ts +7 -1
- package/lib/typescript/src/components/AccordionCheckbox/AccordionCheckbox.d.ts +7 -1
- package/lib/typescript/src/components/AccountCard/AccountCard.d.ts +7 -1
- package/lib/typescript/src/components/AllocationComparisonChart/AllocationComparisonChart.d.ts +7 -1
- package/lib/typescript/src/components/AreaLineChart/AreaLineChart.d.ts +8 -1
- package/lib/typescript/src/components/Badge/Badge.d.ts +32 -2
- package/lib/typescript/src/components/BenefitCard/BenefitCard.d.ts +33 -4
- package/lib/typescript/src/components/BrandChip/BrandChip.d.ts +7 -1
- package/lib/typescript/src/components/Button/Button.d.ts +7 -1
- package/lib/typescript/src/components/CardAdvisory/CardAdvisory.d.ts +7 -1
- package/lib/typescript/src/components/CardBankAccount/CardBankAccount.d.ts +7 -1
- package/lib/typescript/src/components/CardCTA/CardCTA.d.ts +27 -5
- 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/CircularProgressBar/CircularProgressBar.d.ts +7 -1
- package/lib/typescript/src/components/CircularProgressBarDoted/CircularProgressBarDoted.d.ts +7 -1
- package/lib/typescript/src/components/CircularRating/CircularRating.d.ts +7 -1
- package/lib/typescript/src/components/ClusterBubble/ClusterBubble.d.ts +7 -1
- package/lib/typescript/src/components/CompareTable/CompareTable.d.ts +7 -1
- package/lib/typescript/src/components/CoverageBarComparison/CoverageBarComparison.d.ts +7 -1
- package/lib/typescript/src/components/DonutChart/DonutChart.d.ts +7 -1
- package/lib/typescript/src/components/Dropdown/Dropdown.d.ts +7 -1
- package/lib/typescript/src/components/DropdownInput/DropdownInput.d.ts +6 -0
- package/lib/typescript/src/components/ExpandableCheckbox/ExpandableCheckbox.d.ts +7 -1
- package/lib/typescript/src/components/HoldingsCard/HoldingsCard.d.ts +7 -1
- package/lib/typescript/src/components/InstitutionBadge/InstitutionBadge.d.ts +7 -1
- package/lib/typescript/src/components/ListGroup/ListGroup.d.ts +7 -1
- package/lib/typescript/src/components/ListItem/ListItem.d.ts +7 -1
- package/lib/typescript/src/components/MetricLegendItem/MetricLegendItem.d.ts +7 -1
- package/lib/typescript/src/components/MonthlyStatusGrid/MonthlyStatusGrid.d.ts +14 -2
- package/lib/typescript/src/components/PoweredByLabel/PoweredByLabel.d.ts +7 -1
- package/lib/typescript/src/components/ProductMerchandisingCard/ProductMerchandisingCard.d.ts +7 -1
- package/lib/typescript/src/components/ProductOverview/ProductOverview.d.ts +7 -1
- package/lib/typescript/src/components/ProgressBadge/ProgressBadge.d.ts +7 -1
- package/lib/typescript/src/components/ProjectionMarker/ProjectionMarker.d.ts +7 -1
- 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/Section/Section.d.ts +7 -1
- package/lib/typescript/src/components/Slider/Slider.d.ts +6 -0
- package/lib/typescript/src/components/Stack/Stack.d.ts +81 -0
- package/lib/typescript/src/components/SummaryTile/SummaryTile.d.ts +7 -1
- package/lib/typescript/src/components/Table/Table.d.ts +139 -0
- package/lib/typescript/src/components/Text/Text.d.ts +16 -1
- package/lib/typescript/src/components/TextSegment/TextSegment.d.ts +16 -1
- package/lib/typescript/src/components/ThreadHero/ThreadHero.d.ts +7 -1
- package/lib/typescript/src/components/Title/Title.d.ts +17 -1
- package/lib/typescript/src/components/Toast/Toast.d.ts +7 -1
- package/lib/typescript/src/components/TransactionBubble/TransactionBubble.d.ts +7 -1
- package/lib/typescript/src/components/TransactionStatus/TransactionStatus.d.ts +7 -1
- package/lib/typescript/src/components/UpiHandle/UpiHandle.d.ts +7 -1
- package/lib/typescript/src/components/index.d.ts +6 -2
- 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/{components/ProductMerchandisingCard → utils/GlassFill}/GlassFill.d.ts +31 -3
- package/lib/typescript/src/{components/ProductMerchandisingCard → utils/GlassFill}/GlassFill.web.d.ts +18 -2
- package/lib/typescript/src/utils/index.d.ts +2 -0
- package/lib/typescript/src/utils/react-utils.d.ts +76 -0
- package/lib/typescript/src/utils/shadow.d.ts +72 -0
- package/lib/typescript/src/utils/web-platform-utils.d.ts +36 -0
- package/package.json +2 -1
- package/src/components/Accordion/Accordion.tsx +9 -2
- package/src/components/AccordionCheckbox/AccordionCheckbox.tsx +10 -3
- package/src/components/AccountCard/AccountCard.tsx +10 -3
- package/src/components/ActionFooter/ActionFooter.tsx +8 -26
- package/src/components/ActionTile/ActionTile.tsx +10 -10
- package/src/components/AllocationComparisonChart/AllocationComparisonChart.tsx +14 -4
- package/src/components/AmountInput/AmountInput.tsx +3 -3
- package/src/components/AreaLineChart/AreaLineChart.tsx +17 -7
- 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 +86 -17
- 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/BrandChip/BrandChip.tsx +9 -3
- package/src/components/Button/Button.tsx +36 -19
- package/src/components/Card/Card.tsx +20 -20
- package/src/components/CardAdvisory/CardAdvisory.tsx +15 -8
- package/src/components/CardBankAccount/CardBankAccount.tsx +9 -2
- package/src/components/CardCTA/CardCTA.tsx +237 -64
- package/src/components/CardFeedback/CardFeedback.tsx +18 -18
- package/src/components/CardFinancialCondition/CardFinancialCondition.tsx +7 -10
- package/src/components/CardInsight/CardInsight.tsx +8 -4
- 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 +19 -9
- package/src/components/CircularProgressBarDoted/CircularProgressBarDoted.tsx +18 -11
- package/src/components/CircularRating/CircularRating.tsx +12 -5
- package/src/components/ClusterBubble/ClusterBubble.tsx +9 -2
- package/src/components/CompareTable/CompareTable.tsx +114 -66
- package/src/components/CoverageBarComparison/CoverageBarComparison.tsx +9 -2
- package/src/components/DebitCard/DebitCard.tsx +22 -22
- package/src/components/Disclaimer/Disclaimer.tsx +5 -5
- package/src/components/DonutChart/DonutChart.tsx +21 -48
- package/src/components/Drawer/Drawer.tsx +80 -71
- package/src/components/Dropdown/Dropdown.tsx +32 -30
- package/src/components/DropdownInput/DropdownInput.tsx +19 -19
- package/src/components/EmptyState/EmptyState.tsx +14 -14
- package/src/components/ExpandableCheckbox/ExpandableCheckbox.tsx +8 -1
- package/src/components/FilterBar/FilterBar.tsx +2 -2
- package/src/components/Form/Form.tsx +3 -3
- package/src/components/FormField/FormField.tsx +55 -15
- package/src/components/FullscreenModal/FullscreenModal.tsx +24 -24
- package/src/components/Gauge/Gauge.tsx +9 -9
- package/src/components/HoldingsCard/HoldingsCard.tsx +19 -12
- 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 +12 -8
- package/src/components/ListGroup/ListGroup.tsx +17 -10
- package/src/components/ListItem/ListItem.tsx +20 -13
- 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 +23 -23
- package/src/components/MessageField/MessageField.tsx +8 -16
- package/src/components/MetricLegendItem/MetricLegendItem.tsx +9 -2
- package/src/components/MoneyValue/MoneyValue.tsx +7 -7
- package/src/components/MonthlyStatusGrid/MonthlyStatusGrid.tsx +17 -2
- 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/PoweredByLabel/PoweredByLabel.tsx +9 -2
- package/src/components/ProductMerchandisingCard/ProductMerchandisingCard.tsx +104 -37
- package/src/components/ProductOverview/ProductOverview.tsx +10 -3
- package/src/components/ProgressBadge/ProgressBadge.tsx +14 -8
- package/src/components/ProjectionMarker/ProjectionMarker.tsx +9 -2
- 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 +36 -29
- package/src/components/Slider/Slider.tsx +9 -2
- package/src/components/Stack/Stack.tsx +131 -0
- 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 +20 -21
- package/src/components/SummaryTile/SummaryTile.tsx +9 -2
- package/src/components/SupportText/SupportText.tsx +6 -6
- package/src/components/SupportText/SupportTextIcon.tsx +2 -2
- package/src/components/Table/Table.tsx +449 -0
- package/src/components/Text/Text.tsx +28 -3
- package/src/components/TextInput/TextInput.tsx +21 -15
- package/src/components/TextSegment/TextSegment.tsx +27 -2
- package/src/components/ThreadHero/ThreadHero.tsx +27 -20
- package/src/components/Title/Title.tsx +50 -17
- package/src/components/Toast/Toast.tsx +24 -17
- package/src/components/Toggle/Toggle.tsx +5 -10
- package/src/components/Tooltip/Tooltip.tsx +12 -12
- package/src/components/TransactionBubble/TransactionBubble.tsx +22 -15
- package/src/components/TransactionDetails/TransactionDetails.tsx +10 -10
- package/src/components/TransactionStatus/TransactionStatus.tsx +18 -11
- package/src/components/UpiHandle/UpiHandle.tsx +24 -18
- package/src/components/index.ts +25 -2
- package/src/design-tokens/Coin Variables-variables-full.json +1 -1
- package/src/design-tokens/figma-modes.generated.ts +51 -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/{components/ProductMerchandisingCard → utils/GlassFill}/GlassFill.tsx +32 -3
- package/src/{components/ProductMerchandisingCard → utils/GlassFill}/GlassFill.web.tsx +25 -4
- package/src/utils/index.ts +2 -0
- package/src/utils/react-utils.ts +132 -0
- package/src/utils/shadow.ts +219 -0
- package/src/utils/web-platform-utils.ts +68 -0
- package/lib/commonjs/components/MediaCard/GlassFill.js +0 -62
- package/lib/commonjs/components/MediaCard/GlassFill.web.js +0 -48
- package/lib/module/components/MediaCard/GlassFill.js +0 -57
- package/lib/module/components/MediaCard/GlassFill.web.js +0 -43
- package/lib/typescript/src/components/MediaCard/GlassFill.d.ts +0 -47
- package/lib/typescript/src/components/MediaCard/GlassFill.web.d.ts +0 -20
- package/src/components/MediaCard/GlassFill.tsx +0 -89
- package/src/components/MediaCard/GlassFill.web.tsx +0 -53
|
@@ -15,6 +15,9 @@ import Text from '../Text/Text'
|
|
|
15
15
|
import ListItem from '../ListItem/ListItem'
|
|
16
16
|
import Divider from '../Divider/Divider'
|
|
17
17
|
import Button from '../Button/Button'
|
|
18
|
+
import Nudge from '../Nudge/Nudge'
|
|
19
|
+
import Avatar from '../Avatar/Avatar'
|
|
20
|
+
import TextSegment from '../TextSegment/TextSegment'
|
|
18
21
|
import type { Modes } from '../../design-tokens'
|
|
19
22
|
|
|
20
23
|
/**
|
|
@@ -42,17 +45,46 @@ export interface BenefitCardProps {
|
|
|
42
45
|
/** Header section title (e.g. `"You will earn"`). */
|
|
43
46
|
headerTitle?: string
|
|
44
47
|
/**
|
|
45
|
-
*
|
|
46
|
-
*
|
|
48
|
+
* @deprecated The header is now a multi-row list wrap. A single item still
|
|
49
|
+
* works and is rendered as a one-row list (lowest precedence, after
|
|
50
|
+
* `header` and `headerItems`). Prefer `headerItems` (declarative) or
|
|
51
|
+
* `header` (slot).
|
|
47
52
|
*/
|
|
48
53
|
headerItem?: BenefitCardItem
|
|
54
|
+
/**
|
|
55
|
+
* Declarative header list-wrap rows shown under the header title and above
|
|
56
|
+
* the divider (icon + title + optional trailing value). Replaces the
|
|
57
|
+
* legacy single {@link BenefitCardProps.headerItem}. Ignored when the
|
|
58
|
+
* `header` slot is provided.
|
|
59
|
+
*/
|
|
60
|
+
headerItems?: BenefitCardItem[]
|
|
61
|
+
/**
|
|
62
|
+
* Real slot for the header "list wrap" (the rows under the header title).
|
|
63
|
+
* Highest precedence — when provided, these children render instead of
|
|
64
|
+
* `headerItems` / `headerItem`; `modes` (plus the `List Item Style:
|
|
65
|
+
* Minimal` style) cascade into every child automatically.
|
|
66
|
+
*/
|
|
67
|
+
header?: React.ReactNode
|
|
49
68
|
/**
|
|
50
69
|
* Toggles the whole header section (title + item + divider). Mirrors the
|
|
51
70
|
* Figma `showHeader` property. Defaults to `true`.
|
|
52
71
|
*/
|
|
53
72
|
showHeader?: boolean
|
|
54
|
-
/**
|
|
73
|
+
/**
|
|
74
|
+
* @deprecated In the Figma redesign the plain body title was replaced by a
|
|
75
|
+
* slot-based upsell `Nudge` ({@link BenefitCardProps.bodyHeader}). Still
|
|
76
|
+
* honored for backward compatibility: when set, it renders as a plain text
|
|
77
|
+
* title in place of the default nudge. Prefer `bodyHeader`.
|
|
78
|
+
*/
|
|
55
79
|
bodyTitle?: string
|
|
80
|
+
/**
|
|
81
|
+
* Real slot rendered between the header divider and the body list — in the
|
|
82
|
+
* Figma reference this is an upsell `Nudge` (avatar + highlighted
|
|
83
|
+
* "JioFinance+" message). Defaults to that nudge. Pass `null`/`false` to
|
|
84
|
+
* hide it, `bodyTitle` for the legacy plain-text title, or any `ReactNode`
|
|
85
|
+
* for full control; `modes` cascade into the slot.
|
|
86
|
+
*/
|
|
87
|
+
bodyHeader?: React.ReactNode
|
|
56
88
|
/**
|
|
57
89
|
* Body benefit rows. Ignored when `children` is provided (the slot wins).
|
|
58
90
|
*/
|
|
@@ -109,8 +141,11 @@ export interface BenefitCardProps {
|
|
|
109
141
|
function BenefitCard({
|
|
110
142
|
headerTitle = 'You will earn',
|
|
111
143
|
headerItem,
|
|
144
|
+
headerItems,
|
|
145
|
+
header,
|
|
112
146
|
showHeader = true,
|
|
113
|
-
bodyTitle
|
|
147
|
+
bodyTitle,
|
|
148
|
+
bodyHeader,
|
|
114
149
|
items,
|
|
115
150
|
children,
|
|
116
151
|
buttonLabel = 'Upgrade',
|
|
@@ -125,14 +160,28 @@ function BenefitCard({
|
|
|
125
160
|
}: BenefitCardProps) {
|
|
126
161
|
const tokens = useMemo(() => resolveTokens(modes), [modes])
|
|
127
162
|
|
|
128
|
-
//
|
|
129
|
-
|
|
163
|
+
// Component-level modes. `List Item Style: Minimal` and `Nudge padding: None`
|
|
164
|
+
// are BenefitCard's own defaults: they live on the card and cascade down into
|
|
165
|
+
// every child (the list-wrap rows and the upsell nudge) rather than being
|
|
166
|
+
// threaded onto each individual item. Consumer `modes` always win.
|
|
167
|
+
const cascadeModes = useMemo<Modes>(
|
|
168
|
+
() => ({ 'List Item Style': 'Minimal', 'Nudge padding': 'None', ...modes }),
|
|
169
|
+
[modes]
|
|
170
|
+
)
|
|
171
|
+
// Sub-element modes layer their own specifics on top of the consumer modes.
|
|
130
172
|
const iconModes = useMemo<Modes>(() => ({ AppearanceBrand: 'Secondary', ...modes }), [modes])
|
|
131
173
|
const trailingTextModes = useMemo<Modes>(
|
|
132
174
|
() => ({ 'Text Sizes': 'Small', Weight: 'Regular', ...modes }),
|
|
133
175
|
[modes]
|
|
134
176
|
)
|
|
135
177
|
const ctaModes = useMemo<Modes>(() => ({ 'Button / Size': 'S', ...modes }), [modes])
|
|
178
|
+
// The upsell nudge keeps a white/transparent background (`AppearanceBrand:
|
|
179
|
+
// Neutral` → `nudge/background: #ffffff`); its `Nudge padding: None` cascades
|
|
180
|
+
// in from `cascadeModes` so it sits flush with the card.
|
|
181
|
+
const nudgeModes = useMemo<Modes>(
|
|
182
|
+
() => ({ AppearanceBrand: 'Neutral', ...cascadeModes }),
|
|
183
|
+
[cascadeModes]
|
|
184
|
+
)
|
|
136
185
|
|
|
137
186
|
const renderItem = (item: BenefitCardItem, key: React.Key) => {
|
|
138
187
|
const leading =
|
|
@@ -157,25 +206,57 @@ function BenefitCard({
|
|
|
157
206
|
leading={leading}
|
|
158
207
|
trailing={trailing}
|
|
159
208
|
onPress={item.onPress}
|
|
160
|
-
modes={listItemModes}
|
|
161
209
|
/>
|
|
162
210
|
)
|
|
163
211
|
}
|
|
164
212
|
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
213
|
+
// Header "list wrap" — slot-based. Precedence: `header` slot > `headerItems`
|
|
214
|
+
// array > legacy single `headerItem` > Figma default rows. The component-level
|
|
215
|
+
// `cascadeModes` are pushed into the whole group at once, so individual rows
|
|
216
|
+
// never carry their own list-item modes.
|
|
217
|
+
const headerListSource = header
|
|
218
|
+
? header
|
|
219
|
+
: (headerItems ?? (headerItem ? [headerItem] : DEFAULT_HEADER_ITEMS)).map((item, index) =>
|
|
220
|
+
renderItem(item, `header-${index}`)
|
|
221
|
+
)
|
|
222
|
+
const headerListNodes = cloneChildrenWithModes(headerListSource, cascadeModes)
|
|
223
|
+
|
|
224
|
+
const headerNode = showHeader ? (
|
|
225
|
+
<View style={styles.section}>
|
|
226
|
+
<View style={styles.cardHeader}>
|
|
227
|
+
{headerTitle != null ? <RNText style={tokens.title}>{headerTitle}</RNText> : null}
|
|
228
|
+
<View style={tokens.listWrap}>{headerListNodes}</View>
|
|
173
229
|
</View>
|
|
174
|
-
|
|
230
|
+
<Divider modes={modes} />
|
|
231
|
+
</View>
|
|
232
|
+
) : null
|
|
233
|
+
|
|
234
|
+
// Body "header" slot (between the divider and the body list). Precedence:
|
|
235
|
+
// explicit `bodyHeader` slot > legacy `bodyTitle` text > Figma upsell nudge.
|
|
236
|
+
const bodyHeaderNode =
|
|
237
|
+
bodyHeader === null || bodyHeader === false
|
|
238
|
+
? null
|
|
239
|
+
: bodyHeader !== undefined
|
|
240
|
+
? renderSlot(bodyHeader, cascadeModes)
|
|
241
|
+
: bodyTitle != null
|
|
242
|
+
? <RNText style={tokens.title}>{bodyTitle}</RNText>
|
|
243
|
+
: (
|
|
244
|
+
<Nudge type="inline-compact" modes={{ ...nudgeModes, ...cascadeModes }} startSlot={DEFAULT_UPSELL_AVATAR}>
|
|
245
|
+
<TextSegment
|
|
246
|
+
modes={cascadeModes}
|
|
247
|
+
segments={[
|
|
248
|
+
{ text: 'Upgrade to ' },
|
|
249
|
+
{ text: 'JioFinance+', modes: { 'Text Appearance': 'Primary' } },
|
|
250
|
+
{ text: ' and earn more' },
|
|
251
|
+
]}
|
|
252
|
+
/>
|
|
253
|
+
</Nudge>
|
|
254
|
+
)
|
|
175
255
|
|
|
176
|
-
const
|
|
177
|
-
?
|
|
256
|
+
const bodyListSource = children
|
|
257
|
+
? children
|
|
178
258
|
: (items ?? DEFAULT_ITEMS).map((item, index) => renderItem(item, index))
|
|
259
|
+
const bodyList = cloneChildrenWithModes(bodyListSource, cascadeModes)
|
|
179
260
|
|
|
180
261
|
const ctaNode = button ?? (
|
|
181
262
|
<Button label={buttonLabel} modes={ctaModes} onPress={onButtonPress} />
|
|
@@ -189,10 +270,8 @@ function BenefitCard({
|
|
|
189
270
|
const content = (
|
|
190
271
|
<>
|
|
191
272
|
{headerNode}
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
<View style={tokens.listWrap}>{bodyList}</View>
|
|
195
|
-
</View>
|
|
273
|
+
{bodyHeaderNode}
|
|
274
|
+
<View style={tokens.listWrap}>{bodyList}</View>
|
|
196
275
|
{showButton ? ctaNode : null}
|
|
197
276
|
</>
|
|
198
277
|
)
|
|
@@ -227,7 +306,6 @@ const CARD_HEADER_GAP = 4
|
|
|
227
306
|
|
|
228
307
|
interface ResolvedTokens {
|
|
229
308
|
container: ViewStyle
|
|
230
|
-
body: ViewStyle
|
|
231
309
|
listWrap: ViewStyle
|
|
232
310
|
title: TextStyle
|
|
233
311
|
}
|
|
@@ -267,10 +345,6 @@ function resolveTokens(modes: Modes): ResolvedTokens {
|
|
|
267
345
|
flexDirection: 'column',
|
|
268
346
|
alignItems: 'flex-start',
|
|
269
347
|
},
|
|
270
|
-
body: {
|
|
271
|
-
alignSelf: 'stretch',
|
|
272
|
-
gap,
|
|
273
|
-
},
|
|
274
348
|
listWrap: {
|
|
275
349
|
alignSelf: 'stretch',
|
|
276
350
|
gap,
|
|
@@ -287,11 +361,30 @@ function resolveTokens(modes: Modes): ResolvedTokens {
|
|
|
287
361
|
}
|
|
288
362
|
}
|
|
289
363
|
|
|
364
|
+
// Cascades `modes` into a slot node and unwraps a single child so the slot can
|
|
365
|
+
// be rendered inline without an extra fragment.
|
|
366
|
+
function renderSlot(node: React.ReactNode, modes: Modes): React.ReactNode {
|
|
367
|
+
const processed = cloneChildrenWithModes(node, modes)
|
|
368
|
+
return processed.length === 1 ? processed[0] : processed
|
|
369
|
+
}
|
|
370
|
+
|
|
371
|
+
// Figma reference rows for the header list wrap (two highlighted "JioPoints"
|
|
372
|
+
// rows). Used only when no `header` slot / `headerItems` / legacy `headerItem`
|
|
373
|
+
// is supplied.
|
|
374
|
+
const DEFAULT_HEADER_ITEMS: BenefitCardItem[] = [
|
|
375
|
+
{ icon: 'ic_jewellery_diamond', title: 'JioPoints', trailingText: 'Up to 2000 pts' },
|
|
376
|
+
{ icon: 'ic_jewellery_diamond', title: 'JioPoints', trailingText: 'Up to 2000 pts' },
|
|
377
|
+
]
|
|
378
|
+
|
|
290
379
|
const DEFAULT_ITEMS: BenefitCardItem[] = [
|
|
291
380
|
{ icon: 'ic_card', title: 'Up to ₹5000 cashback' },
|
|
292
381
|
{ icon: 'ic_card', title: '25% extra JioPoints' },
|
|
293
382
|
]
|
|
294
383
|
|
|
384
|
+
// Start-slot avatar for the default upsell nudge. `modes` cascade in from the
|
|
385
|
+
// nudge (XS keeps it compact next to the inline message).
|
|
386
|
+
const DEFAULT_UPSELL_AVATAR = <Avatar style="Image" modes={{ 'Avatar Size': 'XS' }} />
|
|
387
|
+
|
|
295
388
|
const styles = StyleSheet.create({
|
|
296
389
|
section: {
|
|
297
390
|
alignSelf: 'stretch',
|
|
@@ -53,8 +53,8 @@ function BottomNav({
|
|
|
53
53
|
const modes = { ...globalModes, ...propModes }
|
|
54
54
|
|
|
55
55
|
// Resolve container styling tokens
|
|
56
|
-
const backgroundColor = getVariableByName('bottomNav/background', modes)
|
|
57
|
-
const borderColor = getVariableByName('bottomNav/border/color', modes)
|
|
56
|
+
const backgroundColor = getVariableByName('bottomNav/background', modes)
|
|
57
|
+
const borderColor = getVariableByName('bottomNav/border/color', modes)
|
|
58
58
|
const borderWidth = getVariableByName('bottomNav/border/width', modes) ?? 1
|
|
59
59
|
const paddingTop = getVariableByName('bottomNav/padding/top', modes) ?? 10
|
|
60
60
|
const paddingBottom = getVariableByName('bottomNav/padding/bottom', modes) ?? 23
|
|
@@ -60,17 +60,17 @@ function resolveBottomNavItemTokens(
|
|
|
60
60
|
const gap = (getVariableByName('bottomNavItem/gap', modes) ?? 6) as number
|
|
61
61
|
|
|
62
62
|
const fontFamily =
|
|
63
|
-
(getVariableByName('bottomNavItem/fontFamily', modes)
|
|
63
|
+
(getVariableByName('bottomNavItem/fontFamily', modes)) as string
|
|
64
64
|
const fontWeightRaw = getVariableByName('bottomNavItem/fontWeight', modes) ?? 500
|
|
65
65
|
const fontWeight =
|
|
66
66
|
typeof fontWeightRaw === 'number' ? fontWeightRaw.toString() : fontWeightRaw
|
|
67
67
|
const fontSize = (getVariableByName('bottomNavItem/fontSize', modes) ?? 11) as number
|
|
68
68
|
const lineHeight = (getVariableByName('bottomNavItem/lineHeight', modes) ?? 14) as number
|
|
69
69
|
|
|
70
|
-
const labelColor = (getVariableByName('bottomNavItem/label/color', modes)
|
|
70
|
+
const labelColor = (getVariableByName('bottomNavItem/label/color', modes)) as string
|
|
71
71
|
|
|
72
72
|
const resolvedIconColor =
|
|
73
|
-
iconColorOverride || (getVariableByName('bottomNavItem/icon/color', modes)
|
|
73
|
+
iconColorOverride || (getVariableByName('bottomNavItem/icon/color', modes)) as string
|
|
74
74
|
const resolvedIconSize =
|
|
75
75
|
iconSizeOverride ?? (getVariableByName('bottomNavItem/icon/size', modes) ?? 24) as number
|
|
76
76
|
|
|
@@ -10,7 +10,7 @@ import {
|
|
|
10
10
|
} from 'react-native'
|
|
11
11
|
import { getVariableByName } from '../../design-tokens/figma-variables-resolver'
|
|
12
12
|
import { useTokens } from '../../design-tokens/JFSThemeProvider'
|
|
13
|
-
import { EMPTY_MODES, cloneChildrenWithModes } from '../../utils/react-utils'
|
|
13
|
+
import { EMPTY_MODES, cloneChildrenWithModes, resolveTruncation } from '../../utils/react-utils'
|
|
14
14
|
import Avatar from '../Avatar/Avatar'
|
|
15
15
|
import type { Modes } from '../../design-tokens'
|
|
16
16
|
|
|
@@ -38,6 +38,12 @@ export type BrandChipProps = {
|
|
|
38
38
|
labelStyle?: StyleProp<TextStyle>
|
|
39
39
|
/** Accessibility label. Defaults to `label`. */
|
|
40
40
|
accessibilityLabel?: string
|
|
41
|
+
/**
|
|
42
|
+
* When `true`, disables text truncation: the trailing ellipsis (`…`) is never
|
|
43
|
+
* shown and any `numberOfLines` clamp is ignored, so the text wraps to as many
|
|
44
|
+
* lines as it needs even when horizontal space is tight.
|
|
45
|
+
*/
|
|
46
|
+
disableTruncation?: boolean
|
|
41
47
|
}
|
|
42
48
|
|
|
43
49
|
interface BrandChipTokens {
|
|
@@ -164,6 +170,7 @@ function BrandChip({
|
|
|
164
170
|
style,
|
|
165
171
|
labelStyle,
|
|
166
172
|
accessibilityLabel,
|
|
173
|
+
disableTruncation,
|
|
167
174
|
}: BrandChipProps) {
|
|
168
175
|
const { modes: globalModes } = useTokens()
|
|
169
176
|
const modes = useMemo(
|
|
@@ -202,8 +209,7 @@ function BrandChip({
|
|
|
202
209
|
{avatarNode}
|
|
203
210
|
<Text
|
|
204
211
|
style={[tokens.labelStyle, labelStyle]}
|
|
205
|
-
|
|
206
|
-
ellipsizeMode="tail"
|
|
212
|
+
{...resolveTruncation(disableTruncation, 1, 'tail')}
|
|
207
213
|
>
|
|
208
214
|
{label}
|
|
209
215
|
</Text>
|
|
@@ -64,6 +64,12 @@ export type ButtonProps = SafePressableProps & {
|
|
|
64
64
|
* the group.
|
|
65
65
|
*/
|
|
66
66
|
loading?: boolean;
|
|
67
|
+
/**
|
|
68
|
+
* When `true`, disables text truncation: the trailing ellipsis (`…`) is never
|
|
69
|
+
* shown and any `numberOfLines` clamp is ignored, so the text wraps to as many
|
|
70
|
+
* lines as it needs even when horizontal space is tight.
|
|
71
|
+
*/
|
|
72
|
+
disableTruncation?: boolean;
|
|
67
73
|
};
|
|
68
74
|
|
|
69
75
|
// ---------------------------------------------------------------------------
|
|
@@ -89,6 +95,15 @@ const containerLayoutStyle = {
|
|
|
89
95
|
justifyContent: 'center' as const,
|
|
90
96
|
}
|
|
91
97
|
|
|
98
|
+
// Keeps the label on a single line. `flexShrink: 0` stops a tight flex parent
|
|
99
|
+
// from squeezing the text; on web `whiteSpace: 'nowrap'` is what actually
|
|
100
|
+
// prevents the line break (a bare `numberOfLines` line-clamp still allows the
|
|
101
|
+
// text to wrap inside a width-constrained pill in react-native-web).
|
|
102
|
+
const NO_WRAP_LABEL_STYLE: TextStyle = {
|
|
103
|
+
flexShrink: 0,
|
|
104
|
+
...(IS_WEB ? { whiteSpace: 'nowrap' as const } : {}),
|
|
105
|
+
}
|
|
106
|
+
|
|
92
107
|
// ---------------------------------------------------------------------------
|
|
93
108
|
// Token resolution
|
|
94
109
|
// ---------------------------------------------------------------------------
|
|
@@ -114,28 +129,28 @@ interface ButtonTokens {
|
|
|
114
129
|
}
|
|
115
130
|
|
|
116
131
|
function resolveButtonTokens(modes: Modes, disabled: boolean): ButtonTokens {
|
|
117
|
-
const backgroundColor = getVariableByName('button/background', modes)
|
|
118
|
-
const borderColor = getVariableByName('button/border/color', modes)
|
|
132
|
+
const backgroundColor = getVariableByName('button/background', modes)
|
|
133
|
+
const borderColor = getVariableByName('button/border/color', modes)
|
|
119
134
|
const borderWidth = getVariableByName('button/border/size', modes)
|
|
120
|
-
const radius = getVariableByName('button/radius', modes)
|
|
121
|
-
const paddingHorizontal = getVariableByName('button/padding/horizontal', modes)
|
|
122
|
-
const paddingVertical = getVariableByName('button/padding/vertical', modes)
|
|
123
|
-
const gap = getVariableByName('button/gap', modes)
|
|
135
|
+
const radius = getVariableByName('button/radius', modes)
|
|
136
|
+
const paddingHorizontal = getVariableByName('button/padding/horizontal', modes)
|
|
137
|
+
const paddingVertical = getVariableByName('button/padding/vertical', modes)
|
|
138
|
+
const gap = getVariableByName('button/gap', modes)
|
|
124
139
|
|
|
125
|
-
const fontFamily = getVariableByName('button/fontFamily', modes)
|
|
126
|
-
const fontWeightValue = getVariableByName('button/fontWeight', modes)
|
|
140
|
+
const fontFamily = getVariableByName('button/fontFamily', modes)
|
|
141
|
+
const fontWeightValue = getVariableByName('button/fontWeight', modes)
|
|
127
142
|
const fontWeight = typeof fontWeightValue === 'number' ? fontWeightValue.toString() : fontWeightValue
|
|
128
|
-
const lineHeight = getVariableByName('button/lineHeight', modes)
|
|
129
|
-
const fontSize = getVariableByName('button/fontSize', modes)
|
|
130
|
-
const textColor = getVariableByName('button/foreground', modes)
|
|
143
|
+
const lineHeight = getVariableByName('button/lineHeight', modes)
|
|
144
|
+
const fontSize = getVariableByName('button/fontSize', modes)
|
|
145
|
+
const textColor = getVariableByName('button/foreground', modes)
|
|
131
146
|
const iconSize = (getVariableByName('button/icon/size', modes) ?? 18) as number
|
|
132
147
|
|
|
133
148
|
// Pressed tokens are always resolved so the Pressable `style` callback can
|
|
134
149
|
// apply the pressed visual without scheduling a React render.
|
|
135
150
|
const pressedModes = { ...modes, 'Button / State': 'Pressed' }
|
|
136
|
-
const pressedBg = getVariableByName('button/background', pressedModes)
|
|
137
|
-
const pressedBorderColor = getVariableByName('button/border/color', pressedModes)
|
|
138
|
-
const pressedTextColor = (getVariableByName('button/foreground', pressedModes)
|
|
151
|
+
const pressedBg = getVariableByName('button/background', pressedModes)
|
|
152
|
+
const pressedBorderColor = getVariableByName('button/border/color', pressedModes)
|
|
153
|
+
const pressedTextColor = (getVariableByName('button/foreground', pressedModes)) as string
|
|
139
154
|
|
|
140
155
|
// Hover tokens are only meaningful on web. Skipping them on native saves
|
|
141
156
|
// ~3 token lookups + an object spread per render on every Button.
|
|
@@ -143,9 +158,9 @@ function resolveButtonTokens(modes: Modes, disabled: boolean): ButtonTokens {
|
|
|
143
158
|
let hoverTextColor: string | null = null
|
|
144
159
|
if (IS_WEB) {
|
|
145
160
|
const hoverModes = { ...modes, 'Button / State': 'Hover' }
|
|
146
|
-
const hoverBg = getVariableByName('button/background', hoverModes)
|
|
147
|
-
const hoverBorderColor = getVariableByName('button/border/color', hoverModes)
|
|
148
|
-
hoverTextColor = (getVariableByName('button/foreground', hoverModes)
|
|
161
|
+
const hoverBg = getVariableByName('button/background', hoverModes)
|
|
162
|
+
const hoverBorderColor = getVariableByName('button/border/color', hoverModes)
|
|
163
|
+
hoverTextColor = (getVariableByName('button/foreground', hoverModes)) as string
|
|
149
164
|
hoverContainer = { backgroundColor: hoverBg as string, borderColor: hoverBorderColor as string }
|
|
150
165
|
}
|
|
151
166
|
|
|
@@ -235,6 +250,7 @@ function ButtonImpl({
|
|
|
235
250
|
accessibilityState,
|
|
236
251
|
webAccessibilityProps,
|
|
237
252
|
loading,
|
|
253
|
+
disableTruncation,
|
|
238
254
|
...rest
|
|
239
255
|
}: ButtonProps) {
|
|
240
256
|
// Hover state is web-only in practice; the setter is gated so native taps
|
|
@@ -293,8 +309,9 @@ function ButtonImpl({
|
|
|
293
309
|
} else {
|
|
294
310
|
content = (
|
|
295
311
|
<Text
|
|
296
|
-
style={activeLabelStyle}
|
|
297
|
-
numberOfLines={1}
|
|
312
|
+
style={[activeLabelStyle, disableTruncation ? null : NO_WRAP_LABEL_STYLE]}
|
|
313
|
+
numberOfLines={disableTruncation ? undefined : 1}
|
|
314
|
+
ellipsizeMode={disableTruncation ? undefined : 'tail'}
|
|
298
315
|
>
|
|
299
316
|
{label}
|
|
300
317
|
</Text>
|
|
@@ -65,18 +65,18 @@ export function Card({
|
|
|
65
65
|
style,
|
|
66
66
|
}: CardProps) {
|
|
67
67
|
// Resolve Card Container Tokens
|
|
68
|
-
const backgroundColor = getVariableByName('card/background/color', modes)
|
|
69
|
-
const borderColor = getVariableByName('card/border/color', modes)
|
|
70
|
-
const borderWidth = parseFloat(getVariableByName('card/strokeWidth', modes)
|
|
71
|
-
const radius = parseFloat(getVariableByName('card/radius', modes)
|
|
72
|
-
const gap = parseFloat(getVariableByName('card/gap', modes)
|
|
73
|
-
const paddingHorizontal = parseFloat(getVariableByName('card/padding-horizontal', modes)
|
|
74
|
-
const paddingVertical = parseFloat(getVariableByName('card/padding-vertical', modes)
|
|
68
|
+
const backgroundColor = getVariableByName('card/background/color', modes);
|
|
69
|
+
const borderColor = getVariableByName('card/border/color', modes);
|
|
70
|
+
const borderWidth = parseFloat(getVariableByName('card/strokeWidth', modes)); // Ensure number
|
|
71
|
+
const radius = parseFloat(getVariableByName('card/radius', modes));
|
|
72
|
+
const gap = parseFloat(getVariableByName('card/gap', modes));
|
|
73
|
+
const paddingHorizontal = parseFloat(getVariableByName('card/padding-horizontal', modes));
|
|
74
|
+
const paddingVertical = parseFloat(getVariableByName('card/padding-vertical', modes));
|
|
75
75
|
|
|
76
76
|
// Resolve Content Wrapper Tokens
|
|
77
|
-
const contentGap = parseFloat(getVariableByName('card/content/gap', modes)
|
|
78
|
-
const contentPaddingHorizontal = parseFloat(getVariableByName('card/content/padding/horizontal', modes)
|
|
79
|
-
const contentPaddingVertical = parseFloat(getVariableByName('card/content/padding/vertical', modes)
|
|
77
|
+
const contentGap = parseFloat(getVariableByName('card/content/gap', modes));
|
|
78
|
+
const contentPaddingHorizontal = parseFloat(getVariableByName('card/content/padding/horizontal', modes));
|
|
79
|
+
const contentPaddingVertical = parseFloat(getVariableByName('card/content/padding/vertical', modes));
|
|
80
80
|
|
|
81
81
|
// Clone media to pass modes if it's a valid element, facilitating nested style resolution
|
|
82
82
|
const mediaWithModes = isValidElement(media)
|
|
@@ -163,14 +163,14 @@ function Title({ children, style, modes: propModes }: CardTextProps) {
|
|
|
163
163
|
const context = useContext(CardContext);
|
|
164
164
|
const modes = propModes || context.modes || {};
|
|
165
165
|
|
|
166
|
-
const color = getVariableByName('card/title/color', modes)
|
|
167
|
-
const fontSize = parseFloat(getVariableByName('card/title/fontSize', modes)
|
|
168
|
-
const fontFamily = getVariableByName('card/title/fontFamily', modes)
|
|
169
|
-
const lineHeight = parseFloat(getVariableByName('card/title/lineHeight', modes)
|
|
166
|
+
const color = getVariableByName('card/title/color', modes);
|
|
167
|
+
const fontSize = parseFloat(getVariableByName('card/title/fontSize', modes));
|
|
168
|
+
const fontFamily = getVariableByName('card/title/fontFamily', modes);
|
|
169
|
+
const lineHeight = parseFloat(getVariableByName('card/title/lineHeight', modes));
|
|
170
170
|
|
|
171
171
|
// Handling the potential typo in Figma variables "fonwWeight" vs "fontWeight"
|
|
172
172
|
// We check both keys to be safe.
|
|
173
|
-
const rawFontWeight = getVariableByName('card/title/fontWeight', modes)
|
|
173
|
+
const rawFontWeight = getVariableByName('card/title/fontWeight', modes);
|
|
174
174
|
const fontWeight = typeof rawFontWeight === 'number' ? rawFontWeight.toString() : rawFontWeight;
|
|
175
175
|
|
|
176
176
|
const textStyle: TextStyle = {
|
|
@@ -192,11 +192,11 @@ function SupportText({ children, style, modes: propModes }: CardTextProps) {
|
|
|
192
192
|
const context = useContext(CardContext);
|
|
193
193
|
const modes = propModes || context.modes || {};
|
|
194
194
|
|
|
195
|
-
const color = getVariableByName('card/supportive-text/color', modes)
|
|
196
|
-
const fontSize = parseFloat(getVariableByName('card/supportive-text/fontSize', modes)
|
|
197
|
-
const fontFamily = getVariableByName('card/supportive-text/fontFamily', modes)
|
|
198
|
-
const lineHeight = parseFloat(getVariableByName('card/supportive-text/lineHeight', modes)
|
|
199
|
-
const rawFontWeight = getVariableByName('card/supportive-text/fontWeight', modes)
|
|
195
|
+
const color = getVariableByName('card/supportive-text/color', modes);
|
|
196
|
+
const fontSize = parseFloat(getVariableByName('card/supportive-text/fontSize', modes));
|
|
197
|
+
const fontFamily = getVariableByName('card/supportive-text/fontFamily', modes);
|
|
198
|
+
const lineHeight = parseFloat(getVariableByName('card/supportive-text/lineHeight', modes));
|
|
199
|
+
const rawFontWeight = getVariableByName('card/supportive-text/fontWeight', modes);
|
|
200
200
|
const fontWeight = typeof rawFontWeight === 'number' ? rawFontWeight.toString() : rawFontWeight;
|
|
201
201
|
|
|
202
202
|
const textStyle: TextStyle = {
|
|
@@ -9,7 +9,7 @@ import {
|
|
|
9
9
|
import { getVariableByName } from '../../design-tokens/figma-variables-resolver'
|
|
10
10
|
import { useTokens } from '../../design-tokens/JFSThemeProvider'
|
|
11
11
|
import Icon from '../../icons/Icon'
|
|
12
|
-
import { EMPTY_MODES, cloneChildrenWithModes } from '../../utils/react-utils'
|
|
12
|
+
import { EMPTY_MODES, cloneChildrenWithModes, resolveTruncation } from '../../utils/react-utils'
|
|
13
13
|
import CircularProgressBar from '../CircularProgressBar/CircularProgressBar'
|
|
14
14
|
import Nudge from '../Nudge/Nudge'
|
|
15
15
|
import type { Modes } from '../../design-tokens'
|
|
@@ -57,6 +57,12 @@ export type CardAdvisoryProps = CardAdvisoryBaseProps & {
|
|
|
57
57
|
nudgeStyle?: StyleProp<ViewStyle>
|
|
58
58
|
/** Accessibility label for the full card. */
|
|
59
59
|
accessibilityLabel?: string
|
|
60
|
+
/**
|
|
61
|
+
* When `true`, disables text truncation: the trailing ellipsis (`…`) is never
|
|
62
|
+
* shown and any `numberOfLines` clamp is ignored, so the text wraps to as many
|
|
63
|
+
* lines as it needs even when horizontal space is tight.
|
|
64
|
+
*/
|
|
65
|
+
disableTruncation?: boolean
|
|
60
66
|
}
|
|
61
67
|
|
|
62
68
|
interface CardAdvisoryTokens {
|
|
@@ -101,22 +107,22 @@ function resolveCardAdvisoryTokens(modes: Modes): CardAdvisoryTokens {
|
|
|
101
107
|
const paddingHorizontal = toNumber(getVariableByName('cardAdvisory/padding/horizontal', modes), 0)
|
|
102
108
|
const paddingVertical = toNumber(getVariableByName('cardAdvisory/padding/vertical', modes), 0)
|
|
103
109
|
const radius = toNumber(getVariableByName('cardAdvisory/radius', modes), 0)
|
|
104
|
-
const background = getVariableByName('cardAdvisory/background', modes)
|
|
110
|
+
const background = getVariableByName('cardAdvisory/background', modes)
|
|
105
111
|
|
|
106
112
|
const mainContentGap = toNumber(getVariableByName('cardAdvisory/mainContent/gap', modes), 16)
|
|
107
113
|
const contentGap = toNumber(getVariableByName('cardAdvisory/content/gap', modes), 6)
|
|
108
114
|
const headerGap = toNumber(getVariableByName('cardAdvisory/header/gap', modes), 8)
|
|
109
115
|
|
|
110
|
-
const titleColor = getVariableByName('cardAdvisory/title/foreground', modes)
|
|
116
|
+
const titleColor = getVariableByName('cardAdvisory/title/foreground', modes)
|
|
111
117
|
const titleFontSize = toNumber(getVariableByName('cardAdvisory/title/fontSize', modes), 26)
|
|
112
|
-
const titleFontFamily = getVariableByName('cardAdvisory/title/fontFamily', modes)
|
|
118
|
+
const titleFontFamily = getVariableByName('cardAdvisory/title/fontFamily', modes)
|
|
113
119
|
const titleLineHeight = toNumber(getVariableByName('cardAdvisory/title/lineHeight', modes), 26)
|
|
114
120
|
const titleFontWeight = toFontWeight(getVariableByName('cardAdvisory/title/fontWeight', modes), '900')
|
|
115
121
|
const titleDescenderAllowance = Math.ceil(titleFontSize * 0.16)
|
|
116
122
|
|
|
117
|
-
const descriptionColor = getVariableByName('cardAdvisory/description/foreground', modes)
|
|
123
|
+
const descriptionColor = getVariableByName('cardAdvisory/description/foreground', modes)
|
|
118
124
|
const descriptionFontSize = toNumber(getVariableByName('cardAdvisory/description/fontSize', modes), 12)
|
|
119
|
-
const descriptionFontFamily = getVariableByName('cardAdvisory/description/fontFamily', modes)
|
|
125
|
+
const descriptionFontFamily = getVariableByName('cardAdvisory/description/fontFamily', modes)
|
|
120
126
|
const descriptionLineHeight = toNumber(getVariableByName('cardAdvisory/description/lineHeight', modes), 16)
|
|
121
127
|
const descriptionFontWeight = toFontWeight(
|
|
122
128
|
getVariableByName('cardAdvisory/description/fontWeight', modes),
|
|
@@ -169,7 +175,7 @@ function resolveCardAdvisoryTokens(modes: Modes): CardAdvisoryTokens {
|
|
|
169
175
|
lineHeight: descriptionLineHeight,
|
|
170
176
|
width: '100%',
|
|
171
177
|
},
|
|
172
|
-
iconColor: (getVariableByName('cardAdvisory/icon/color', modes)
|
|
178
|
+
iconColor: (getVariableByName('cardAdvisory/icon/color', modes)) as string,
|
|
173
179
|
iconSize: toNumber(getVariableByName('cardAdvisory/icon/size', modes), 18),
|
|
174
180
|
}
|
|
175
181
|
}
|
|
@@ -195,6 +201,7 @@ function CardAdvisory({
|
|
|
195
201
|
progressStyle,
|
|
196
202
|
nudgeStyle,
|
|
197
203
|
accessibilityLabel,
|
|
204
|
+
disableTruncation,
|
|
198
205
|
...rest
|
|
199
206
|
}: CardAdvisoryProps) {
|
|
200
207
|
const { modes: globalModes } = useTokens()
|
|
@@ -236,7 +243,7 @@ function CardAdvisory({
|
|
|
236
243
|
<View style={[tokens.mainContentStyle, mainContentStyle]}>
|
|
237
244
|
<View style={tokens.contentStyle}>
|
|
238
245
|
<View style={tokens.headerStyle}>
|
|
239
|
-
<Text
|
|
246
|
+
<Text {...resolveTruncation(disableTruncation, 1)} style={[tokens.titleStyle, titleStyle]}>
|
|
240
247
|
{title}
|
|
241
248
|
</Text>
|
|
242
249
|
{processedTitleEndSlot || (showInfoIcon ? (
|
|
@@ -7,7 +7,7 @@ import {
|
|
|
7
7
|
type TextStyle,
|
|
8
8
|
} from 'react-native'
|
|
9
9
|
import { getVariableByName } from '../../design-tokens/figma-variables-resolver'
|
|
10
|
-
import { EMPTY_MODES, cloneChildrenWithModes } from '../../utils/react-utils'
|
|
10
|
+
import { EMPTY_MODES, cloneChildrenWithModes, resolveTruncation } from '../../utils/react-utils'
|
|
11
11
|
import Badge from '../Badge/Badge'
|
|
12
12
|
import Button from '../Button/Button'
|
|
13
13
|
import InstitutionBadge from '../InstitutionBadge/InstitutionBadge'
|
|
@@ -80,6 +80,12 @@ export type CardBankAccountProps = {
|
|
|
80
80
|
style?: StyleProp<ViewStyle>
|
|
81
81
|
/** Accessibility label for the card region. */
|
|
82
82
|
accessibilityLabel?: string
|
|
83
|
+
/**
|
|
84
|
+
* When `true`, disables text truncation: the trailing ellipsis (`…`) is never
|
|
85
|
+
* shown and any `numberOfLines` clamp is ignored, so the text wraps to as many
|
|
86
|
+
* lines as it needs even when horizontal space is tight.
|
|
87
|
+
*/
|
|
88
|
+
disableTruncation?: boolean
|
|
83
89
|
}
|
|
84
90
|
|
|
85
91
|
const DEFAULT_ITEMS: CardBankAccountItem[] = [
|
|
@@ -138,6 +144,7 @@ function CardBankAccount({
|
|
|
138
144
|
modes: propModes = EMPTY_MODES,
|
|
139
145
|
style,
|
|
140
146
|
accessibilityLabel,
|
|
147
|
+
disableTruncation,
|
|
141
148
|
}: CardBankAccountProps) {
|
|
142
149
|
// Merge caller modes on top of `DEFAULT_MODES` so every default key
|
|
143
150
|
// (e.g. `Button / Size`, `AppearanceBrand`, `Emphasis`) can be overridden
|
|
@@ -268,7 +275,7 @@ function CardBankAccount({
|
|
|
268
275
|
<Text style={labelStyle}>{item.label}</Text>
|
|
269
276
|
</View>
|
|
270
277
|
{typeof item.value === 'string' || typeof item.value === 'number' ? (
|
|
271
|
-
<Text style={valueTextStyle}
|
|
278
|
+
<Text style={valueTextStyle} {...resolveTruncation(disableTruncation, 1)}>
|
|
272
279
|
{item.value}
|
|
273
280
|
</Text>
|
|
274
281
|
) : (
|