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
|
@@ -456,19 +456,19 @@ function OTP({
|
|
|
456
456
|
}, [isDisabled])
|
|
457
457
|
|
|
458
458
|
// --- Token resolution (state-independent tokens resolved once) ---
|
|
459
|
-
const otpGap = Number(getVariableByName('otp/gap', modes))
|
|
460
|
-
const otpPaddingH = Number(getVariableByName('otp/padding/horizontal', modes))
|
|
461
|
-
const otpPaddingV = Number(getVariableByName('otp/padding/vertical', modes))
|
|
462
|
-
|
|
463
|
-
const slotWidth = Number(getVariableByName('pinSlot/width', modes))
|
|
464
|
-
const slotGap = Number(getVariableByName('pinSlot/gap', modes))
|
|
465
|
-
const digitColor = (getVariableByName('pinSlot/digit/color', modes) as string)
|
|
466
|
-
const digitFontSize = Number(getVariableByName('pinSlot/digit/fontSize', modes))
|
|
467
|
-
const digitFontFamily = (getVariableByName('pinSlot/digit/fontFamily', modes) as string)
|
|
468
|
-
const digitLineHeight = Number(getVariableByName('pinSlot/digit/lineHeight', modes))
|
|
469
|
-
const digitFontWeight = (getVariableByName('pinSlot/digit/fontWeight', modes) as string)
|
|
470
|
-
const underlineHeight = Number(getVariableByName('pinSlot/underline/height', modes))
|
|
471
|
-
const underlineRadius = Number(getVariableByName('pinSlot/underline/radius', modes))
|
|
459
|
+
const otpGap = Number(getVariableByName('otp/gap', modes))
|
|
460
|
+
const otpPaddingH = Number(getVariableByName('otp/padding/horizontal', modes))
|
|
461
|
+
const otpPaddingV = Number(getVariableByName('otp/padding/vertical', modes))
|
|
462
|
+
|
|
463
|
+
const slotWidth = Number(getVariableByName('pinSlot/width', modes))
|
|
464
|
+
const slotGap = Number(getVariableByName('pinSlot/gap', modes))
|
|
465
|
+
const digitColor = (getVariableByName('pinSlot/digit/color', modes) as string)
|
|
466
|
+
const digitFontSize = Number(getVariableByName('pinSlot/digit/fontSize', modes))
|
|
467
|
+
const digitFontFamily = (getVariableByName('pinSlot/digit/fontFamily', modes) as string)
|
|
468
|
+
const digitLineHeight = Number(getVariableByName('pinSlot/digit/lineHeight', modes))
|
|
469
|
+
const digitFontWeight = (getVariableByName('pinSlot/digit/fontWeight', modes) as string)
|
|
470
|
+
const underlineHeight = Number(getVariableByName('pinSlot/underline/height', modes))
|
|
471
|
+
const underlineRadius = Number(getVariableByName('pinSlot/underline/radius', modes))
|
|
472
472
|
|
|
473
473
|
// --- Resolve the three underline colors ONCE per render. We then
|
|
474
474
|
// animate between idle ↔ active per-slot using interpolation; the
|
|
@@ -478,7 +478,7 @@ function OTP({
|
|
|
478
478
|
(getVariableByName('PinSlot/underline/color', {
|
|
479
479
|
...modes,
|
|
480
480
|
'Input/PINSlot States': 'Idle',
|
|
481
|
-
}) as string)
|
|
481
|
+
}) as string),
|
|
482
482
|
[modes],
|
|
483
483
|
)
|
|
484
484
|
const activeUnderlineColor = useMemo(
|
|
@@ -486,7 +486,7 @@ function OTP({
|
|
|
486
486
|
(getVariableByName('PinSlot/underline/color', {
|
|
487
487
|
...modes,
|
|
488
488
|
'Input/PINSlot States': 'Active',
|
|
489
|
-
}) as string)
|
|
489
|
+
}) as string),
|
|
490
490
|
[modes],
|
|
491
491
|
)
|
|
492
492
|
const errorUnderlineColor = useMemo(
|
|
@@ -494,7 +494,7 @@ function OTP({
|
|
|
494
494
|
(getVariableByName('PinSlot/underline/color', {
|
|
495
495
|
...modes,
|
|
496
496
|
'Input/PINSlot States': 'Error',
|
|
497
|
-
}) as string)
|
|
497
|
+
}) as string),
|
|
498
498
|
[modes],
|
|
499
499
|
)
|
|
500
500
|
|
|
@@ -107,47 +107,47 @@ function PageHero({
|
|
|
107
107
|
[globalModes, propModes]
|
|
108
108
|
)
|
|
109
109
|
|
|
110
|
-
const gap = Number(getVariableByName('PageHero/gap', modes))
|
|
110
|
+
const gap = Number(getVariableByName('PageHero/gap', modes))
|
|
111
111
|
const paddingHorizontal =
|
|
112
|
-
Number(getVariableByName('PageHero/padding/horizontal', modes))
|
|
112
|
+
Number(getVariableByName('PageHero/padding/horizontal', modes))
|
|
113
113
|
|
|
114
114
|
const textWrapGap =
|
|
115
|
-
Number(getVariableByName('PageHero/textWrap/gap', modes))
|
|
115
|
+
Number(getVariableByName('PageHero/textWrap/gap', modes))
|
|
116
116
|
|
|
117
117
|
// Media slot box — matches the 117×117 frame in Figma (node 4540:7845).
|
|
118
118
|
// Tokens fall back to 117 when not defined in the variables collection,
|
|
119
119
|
// so the layout stays stable on consumers that haven't tokenized this yet.
|
|
120
|
-
const mediaWidth = Number(getVariableByName('media/width', modes))
|
|
121
|
-
const mediaHeight = Number(getVariableByName('media/height', modes))
|
|
120
|
+
const mediaWidth = Number(getVariableByName('media/width', modes))
|
|
121
|
+
const mediaHeight = Number(getVariableByName('media/height', modes))
|
|
122
122
|
|
|
123
123
|
const eyebrowColor =
|
|
124
|
-
getVariableByName('PageHero/eyebrow/color', modes)
|
|
124
|
+
getVariableByName('PageHero/eyebrow/color', modes)
|
|
125
125
|
const eyebrowFontFamily =
|
|
126
|
-
getVariableByName('PageHero/eyebrow/fontFamily', modes)
|
|
126
|
+
getVariableByName('PageHero/eyebrow/fontFamily', modes)
|
|
127
127
|
const eyebrowFontSize =
|
|
128
|
-
Number(getVariableByName('PageHero/eyebrow/fontSize', modes))
|
|
128
|
+
Number(getVariableByName('PageHero/eyebrow/fontSize', modes))
|
|
129
129
|
const eyebrowFontWeight =
|
|
130
|
-
getVariableByName('PageHero/eyebrow/fontWeight', modes)
|
|
130
|
+
getVariableByName('PageHero/eyebrow/fontWeight', modes)
|
|
131
131
|
const eyebrowLineHeight =
|
|
132
|
-
Number(getVariableByName('PageHero/eyebrow/lineHeight', modes))
|
|
132
|
+
Number(getVariableByName('PageHero/eyebrow/lineHeight', modes))
|
|
133
133
|
|
|
134
134
|
const headlineColor =
|
|
135
|
-
getVariableByName('PageHero/headline/color', modes)
|
|
135
|
+
getVariableByName('PageHero/headline/color', modes)
|
|
136
136
|
const headlineFontFamily =
|
|
137
|
-
getVariableByName('PageHero/headline/fontFamily', modes)
|
|
137
|
+
getVariableByName('PageHero/headline/fontFamily', modes)
|
|
138
138
|
const headlineFontSize =
|
|
139
|
-
Number(getVariableByName('PageHero/headline/fontSize', modes))
|
|
139
|
+
Number(getVariableByName('PageHero/headline/fontSize', modes))
|
|
140
140
|
const headlineFontWeight =
|
|
141
|
-
getVariableByName('PageHero/headline/fontWeight', modes)
|
|
141
|
+
getVariableByName('PageHero/headline/fontWeight', modes)
|
|
142
142
|
const headlineLineHeight =
|
|
143
|
-
Number(getVariableByName('PageHero/headline/lineHeight', modes))
|
|
143
|
+
Number(getVariableByName('PageHero/headline/lineHeight', modes))
|
|
144
144
|
|
|
145
145
|
// Only `lineHeight` is tokenized for the supporting text in the Figma source.
|
|
146
146
|
// Color, font size and weight are inline literals in the design (12px medium
|
|
147
147
|
// white) — we mirror that here so the visual stays faithful when no token
|
|
148
148
|
// exists.
|
|
149
149
|
const supportingTextLineHeight =
|
|
150
|
-
Number(getVariableByName('PageHero/supportingText/lineHeight', modes))
|
|
150
|
+
Number(getVariableByName('PageHero/supportingText/lineHeight', modes))
|
|
151
151
|
|
|
152
152
|
const containerStyle: ViewStyle = {
|
|
153
153
|
flexDirection: 'column',
|
|
@@ -44,33 +44,33 @@ export default function PaymentFeedback({
|
|
|
44
44
|
const { modes: globalModes } = useTokens()
|
|
45
45
|
const modes = { ...globalModes, ...propModes }
|
|
46
46
|
|
|
47
|
-
const containerGap = Number(getVariableByName('paymnetFeedback/container/gap', modes))
|
|
48
|
-
const messageGap = Number(getVariableByName('paymnetFeedback/message/gap', modes))
|
|
49
|
-
|
|
50
|
-
const titleColor = getVariableByName('paymnetFeedback/title/color', modes)
|
|
51
|
-
const titleFontSize = Number(getVariableByName('paymnetFeedback/title/fontSize', modes))
|
|
52
|
-
const titleFontFamily = getVariableByName('paymnetFeedback/title/fontFamily', modes)
|
|
53
|
-
const titleLineHeight = Number(getVariableByName('paymnetFeedback/title/lineHeight', modes))
|
|
54
|
-
const titleFontWeight = getVariableByName('paymnetFeedback/title/fontWeight', modes)
|
|
55
|
-
|
|
56
|
-
const subtitleColor = getVariableByName('paymnetFeedback/subtitle/color', modes)
|
|
57
|
-
const subtitleFontSize = Number(getVariableByName('paymnetFeedback/subtitle/fontSize', modes))
|
|
58
|
-
const subtitleFontFamily = getVariableByName('paymnetFeedback/subtitle/fontFamily', modes)
|
|
59
|
-
const subtitleLineHeight = Number(getVariableByName('paymnetFeedback/subtitle/lineHeight', modes))
|
|
60
|
-
const subtitleFontWeight = getVariableByName('paymnetFeedback/subtitle/fontWeight', modes)
|
|
61
|
-
|
|
62
|
-
const bodyColor = getVariableByName('paymnetFeedback/body/color', modes)
|
|
63
|
-
const bodyFontSize = Number(getVariableByName('paymnetFeedback/body/fontSize', modes))
|
|
64
|
-
const bodyFontFamily = getVariableByName('paymnetFeedback/body/fontFamily', modes)
|
|
65
|
-
const bodyLineHeight = Number(getVariableByName('paymnetFeedback/body/lineHeight', modes))
|
|
66
|
-
const bodyFontWeight = getVariableByName('paymnetFeedback/body/fontWeight', modes)
|
|
67
|
-
|
|
68
|
-
const detailsColor = getVariableByName('paymnetFeedback/details/color', modes)
|
|
69
|
-
const detailsFontSize = Number(getVariableByName('paymnetFeedback/details/fontSize', modes))
|
|
70
|
-
const detailsFontFamily = getVariableByName('paymnetFeedback/details/fontFamily', modes)
|
|
71
|
-
const detailsLineHeight = Number(getVariableByName('paymnetFeedback/details/lineHeight', modes))
|
|
72
|
-
const detailsFontWeight = getVariableByName('paymnetFeedback/details/fontWeight', modes)
|
|
73
|
-
const detailsParagraphSpacing = Number(getVariableByName('paymnetFeedback/details/paragraphSpacing', modes))
|
|
47
|
+
const containerGap = Number(getVariableByName('paymnetFeedback/container/gap', modes))
|
|
48
|
+
const messageGap = Number(getVariableByName('paymnetFeedback/message/gap', modes))
|
|
49
|
+
|
|
50
|
+
const titleColor = getVariableByName('paymnetFeedback/title/color', modes)
|
|
51
|
+
const titleFontSize = Number(getVariableByName('paymnetFeedback/title/fontSize', modes))
|
|
52
|
+
const titleFontFamily = getVariableByName('paymnetFeedback/title/fontFamily', modes)
|
|
53
|
+
const titleLineHeight = Number(getVariableByName('paymnetFeedback/title/lineHeight', modes))
|
|
54
|
+
const titleFontWeight = getVariableByName('paymnetFeedback/title/fontWeight', modes)
|
|
55
|
+
|
|
56
|
+
const subtitleColor = getVariableByName('paymnetFeedback/subtitle/color', modes)
|
|
57
|
+
const subtitleFontSize = Number(getVariableByName('paymnetFeedback/subtitle/fontSize', modes))
|
|
58
|
+
const subtitleFontFamily = getVariableByName('paymnetFeedback/subtitle/fontFamily', modes)
|
|
59
|
+
const subtitleLineHeight = Number(getVariableByName('paymnetFeedback/subtitle/lineHeight', modes))
|
|
60
|
+
const subtitleFontWeight = getVariableByName('paymnetFeedback/subtitle/fontWeight', modes)
|
|
61
|
+
|
|
62
|
+
const bodyColor = getVariableByName('paymnetFeedback/body/color', modes)
|
|
63
|
+
const bodyFontSize = Number(getVariableByName('paymnetFeedback/body/fontSize', modes))
|
|
64
|
+
const bodyFontFamily = getVariableByName('paymnetFeedback/body/fontFamily', modes)
|
|
65
|
+
const bodyLineHeight = Number(getVariableByName('paymnetFeedback/body/lineHeight', modes))
|
|
66
|
+
const bodyFontWeight = getVariableByName('paymnetFeedback/body/fontWeight', modes)
|
|
67
|
+
|
|
68
|
+
const detailsColor = getVariableByName('paymnetFeedback/details/color', modes)
|
|
69
|
+
const detailsFontSize = Number(getVariableByName('paymnetFeedback/details/fontSize', modes))
|
|
70
|
+
const detailsFontFamily = getVariableByName('paymnetFeedback/details/fontFamily', modes)
|
|
71
|
+
const detailsLineHeight = Number(getVariableByName('paymnetFeedback/details/lineHeight', modes))
|
|
72
|
+
const detailsFontWeight = getVariableByName('paymnetFeedback/details/fontWeight', modes)
|
|
73
|
+
const detailsParagraphSpacing = Number(getVariableByName('paymnetFeedback/details/paragraphSpacing', modes))
|
|
74
74
|
|
|
75
75
|
const containerStyle: ViewStyle = {
|
|
76
76
|
flexDirection: 'column',
|
|
@@ -133,7 +133,7 @@ const Popup = forwardRef<PopupRef, PopupProps>(function Popup(
|
|
|
133
133
|
return () => anim.stop()
|
|
134
134
|
}, [isOpen, modalVisible, slideY, backdropAnim, maxBackdropOpacity, animationDuration])
|
|
135
135
|
|
|
136
|
-
const background = getVariableByName('popup/background', modes)
|
|
136
|
+
const background = getVariableByName('popup/background', modes)
|
|
137
137
|
const paddingH = getVariableByName('popup/padding/horizontal', modes) ?? 0
|
|
138
138
|
const paddingTopVal = getVariableByName('popup/padding/top', modes) ?? 0
|
|
139
139
|
const paddingBottomVal = getVariableByName('popup/padding/bottom', modes) ?? 24
|
|
@@ -9,7 +9,7 @@ import {
|
|
|
9
9
|
} from 'react-native'
|
|
10
10
|
import { getVariableByName } from '../../design-tokens/figma-variables-resolver'
|
|
11
11
|
import { useTokens } from '../../design-tokens/JFSThemeProvider'
|
|
12
|
-
import { EMPTY_MODES, cloneChildrenWithModes } from '../../utils/react-utils'
|
|
12
|
+
import { EMPTY_MODES, cloneChildrenWithModes, resolveTruncation } from '../../utils/react-utils'
|
|
13
13
|
import MediaSource, { type UnifiedSource } from '../../utils/MediaSource'
|
|
14
14
|
import type { Modes } from '../../design-tokens'
|
|
15
15
|
|
|
@@ -65,6 +65,12 @@ export type PoweredByLabelProps = {
|
|
|
65
65
|
* (which is decorative) does not need to be announced separately.
|
|
66
66
|
*/
|
|
67
67
|
accessibilityLabel?: string
|
|
68
|
+
/**
|
|
69
|
+
* When `true`, disables text truncation: the trailing ellipsis (`…`) is never
|
|
70
|
+
* shown and any `numberOfLines` clamp is ignored, so the text wraps to as many
|
|
71
|
+
* lines as it needs even when horizontal space is tight.
|
|
72
|
+
*/
|
|
73
|
+
disableTruncation?: boolean
|
|
68
74
|
}
|
|
69
75
|
|
|
70
76
|
const toNumber = (value: unknown, fallback: number): number => {
|
|
@@ -115,6 +121,7 @@ function PoweredByLabel({
|
|
|
115
121
|
textStyle,
|
|
116
122
|
imageStyle,
|
|
117
123
|
accessibilityLabel,
|
|
124
|
+
disableTruncation,
|
|
118
125
|
}: PoweredByLabelProps) {
|
|
119
126
|
const { modes: globalModes } = useTokens()
|
|
120
127
|
const modes = useMemo(
|
|
@@ -210,7 +217,7 @@ function PoweredByLabel({
|
|
|
210
217
|
style={[labelTextStyle, textStyle]}
|
|
211
218
|
accessibilityElementsHidden={true}
|
|
212
219
|
importantForAccessibility="no"
|
|
213
|
-
|
|
220
|
+
{...resolveTruncation(disableTruncation, 1)}
|
|
214
221
|
>
|
|
215
222
|
{label}
|
|
216
223
|
</Text>
|
|
@@ -4,21 +4,31 @@ import {
|
|
|
4
4
|
Text,
|
|
5
5
|
Pressable,
|
|
6
6
|
StyleSheet,
|
|
7
|
+
Platform,
|
|
8
|
+
Image as RNImage,
|
|
7
9
|
type ViewStyle,
|
|
8
10
|
type TextStyle,
|
|
9
11
|
type StyleProp,
|
|
10
12
|
type ImageSourcePropType,
|
|
11
13
|
} from 'react-native'
|
|
14
|
+
import MaskedView from '@react-native-masked-view/masked-view'
|
|
12
15
|
import Svg, { Defs, LinearGradient, Stop, Rect } from 'react-native-svg'
|
|
13
16
|
import { getVariableByName } from '../../design-tokens/figma-variables-resolver'
|
|
14
|
-
import { EMPTY_MODES } from '../../utils/react-utils'
|
|
17
|
+
import { EMPTY_MODES, resolveTruncation } from '../../utils/react-utils'
|
|
15
18
|
import Avatar from '../Avatar/Avatar'
|
|
16
19
|
import Badge from '../Badge/Badge'
|
|
17
20
|
import Button from '../Button/Button'
|
|
18
21
|
import Image from '../Image/Image'
|
|
19
|
-
import GlassFill from '
|
|
22
|
+
import GlassFill from '../../utils/GlassFill/GlassFill'
|
|
20
23
|
import type { Modes } from '../../design-tokens'
|
|
21
24
|
|
|
25
|
+
function normalizeImageSource(
|
|
26
|
+
src: ImageSourcePropType | string | undefined
|
|
27
|
+
): ImageSourcePropType | undefined {
|
|
28
|
+
if (src == null) return undefined
|
|
29
|
+
return typeof src === 'string' ? { uri: src } : src
|
|
30
|
+
}
|
|
31
|
+
|
|
22
32
|
export interface ProductMerchandisingCardProps {
|
|
23
33
|
/**
|
|
24
34
|
* Background media for the card. Accepts a URL string or any RN
|
|
@@ -73,6 +83,12 @@ export interface ProductMerchandisingCardProps {
|
|
|
73
83
|
style?: StyleProp<ViewStyle>
|
|
74
84
|
/** Accessibility label for the card. */
|
|
75
85
|
accessibilityLabel?: string
|
|
86
|
+
/**
|
|
87
|
+
* When `true`, disables text truncation: the trailing ellipsis (`…`) is never
|
|
88
|
+
* shown and any `numberOfLines` clamp is ignored, so the text wraps to as many
|
|
89
|
+
* lines as it needs even when horizontal space is tight.
|
|
90
|
+
*/
|
|
91
|
+
disableTruncation?: boolean
|
|
76
92
|
}
|
|
77
93
|
|
|
78
94
|
/**
|
|
@@ -116,10 +132,15 @@ function ProductMerchandisingCard({
|
|
|
116
132
|
modes = EMPTY_MODES,
|
|
117
133
|
style,
|
|
118
134
|
accessibilityLabel,
|
|
135
|
+
disableTruncation,
|
|
119
136
|
}: ProductMerchandisingCardProps) {
|
|
120
|
-
// Unique gradient
|
|
137
|
+
// Unique gradient ids so multiple cards on one (web) document never collide.
|
|
121
138
|
const rawId = useId()
|
|
122
|
-
const
|
|
139
|
+
const safeId = rawId.replace(/[^a-zA-Z0-9_-]/g, '')
|
|
140
|
+
const scrimId = `pmc-footer-scrim-${safeId}`
|
|
141
|
+
const blurMaskId = `pmc-footer-blurmask-${safeId}`
|
|
142
|
+
|
|
143
|
+
const normalizedImageSource = useMemo(() => normalizeImageSource(imageSource), [imageSource])
|
|
123
144
|
|
|
124
145
|
const tokens = useMemo(() => resolveTokens(modes), [modes])
|
|
125
146
|
|
|
@@ -159,23 +180,26 @@ function ProductMerchandisingCard({
|
|
|
159
180
|
)
|
|
160
181
|
: null
|
|
161
182
|
|
|
183
|
+
// The footer "special badge" is now the shared <Badge type="glass">. The
|
|
184
|
+
// hardcoded literals that defined its look (warm frosted overlay, gentle
|
|
185
|
+
// 5px blur, 6/2 padding, 4px radius, weight-500 white label) are preserved
|
|
186
|
+
// 1:1 via the glass overrides + `style`/`labelStyle`, and the optional
|
|
187
|
+
// `specialBadgeIcon` maps to Badge's `leading` slot — so every existing
|
|
188
|
+
// instantiation renders byte-for-byte the same as before.
|
|
162
189
|
const footerSpecialBadge =
|
|
163
190
|
specialBadge ??
|
|
164
191
|
(specialBadgeLabel != null ? (
|
|
165
|
-
<
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
{
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
{specialBadgeLabel}
|
|
177
|
-
</Text>
|
|
178
|
-
</View>
|
|
192
|
+
<Badge
|
|
193
|
+
type="glass"
|
|
194
|
+
label={specialBadgeLabel}
|
|
195
|
+
leading={specialBadgeIcon}
|
|
196
|
+
glassOverlayColor={SPECIAL_BADGE_BG}
|
|
197
|
+
glassIntensity={SPECIAL_BADGE_INTENSITY}
|
|
198
|
+
modes={modes}
|
|
199
|
+
style={styles.specialBadge}
|
|
200
|
+
labelStyle={tokens.specialBadgeText}
|
|
201
|
+
{...(disableTruncation != null ? { disableTruncation } : null)}
|
|
202
|
+
/>
|
|
179
203
|
) : null)
|
|
180
204
|
|
|
181
205
|
// The Figma CTA uses the brand "Secondary" appearance (purple fill, white
|
|
@@ -209,11 +233,49 @@ function ProductMerchandisingCard({
|
|
|
209
233
|
</View>
|
|
210
234
|
|
|
211
235
|
<View style={tokens.footer} pointerEvents="box-none">
|
|
212
|
-
{/* Progressive
|
|
213
|
-
soft blur at the bottom
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
236
|
+
{/* Progressive blur — clear at the top of the footer, ramping to
|
|
237
|
+
a soft blur at the bottom. Rather than the unmaintained native
|
|
238
|
+
BlurView (which renders as a flat black tint on Android +
|
|
239
|
+
Fabric and can hide the image on iOS), we reveal a *blurred
|
|
240
|
+
copy of the card's own image* through a vertical gradient
|
|
241
|
+
mask. `Image.blurRadius` is a built-in RN prop with a real
|
|
242
|
+
Gaussian blur on BOTH iOS and Android and needs no native
|
|
243
|
+
module. The blurred copy is pinned to the card's bottom at the
|
|
244
|
+
full card height so it lines up pixel-for-pixel with the
|
|
245
|
+
full-bleed background, and the mask makes the blur swell in
|
|
246
|
+
smoothly toward the bottom (true progressive blur). */}
|
|
247
|
+
{normalizedImageSource != null ? (
|
|
248
|
+
<View style={StyleSheet.absoluteFill} pointerEvents="none">
|
|
249
|
+
<MaskedView
|
|
250
|
+
style={StyleSheet.absoluteFill}
|
|
251
|
+
maskElement={
|
|
252
|
+
<Svg width="100%" height="100%">
|
|
253
|
+
<Defs>
|
|
254
|
+
<LinearGradient id={blurMaskId} x1="0" y1="0" x2="0" y2="1">
|
|
255
|
+
<Stop offset="0" stopColor="#000000" stopOpacity={0} />
|
|
256
|
+
<Stop offset="0.35" stopColor="#000000" stopOpacity={0.5} />
|
|
257
|
+
<Stop offset="0.7" stopColor="#000000" stopOpacity={0.92} />
|
|
258
|
+
<Stop offset="1" stopColor="#000000" stopOpacity={1} />
|
|
259
|
+
</LinearGradient>
|
|
260
|
+
</Defs>
|
|
261
|
+
<Rect x="0" y="0" width="100%" height="100%" fill={`url(#${blurMaskId})`} />
|
|
262
|
+
</Svg>
|
|
263
|
+
}
|
|
264
|
+
>
|
|
265
|
+
<RNImage
|
|
266
|
+
source={normalizedImageSource}
|
|
267
|
+
blurRadius={tokens.imageBlurRadius}
|
|
268
|
+
resizeMode="cover"
|
|
269
|
+
style={{ position: 'absolute', left: 0, right: 0, bottom: 0, width: '100%', height }}
|
|
270
|
+
/>
|
|
271
|
+
</MaskedView>
|
|
272
|
+
</View>
|
|
273
|
+
) : (
|
|
274
|
+
<GlassFill tint="dark" intensity={tokens.blurIntensity} progressive />
|
|
275
|
+
)}
|
|
276
|
+
{/* Transparent -> black gradient scrim for text legibility,
|
|
277
|
+
identical on all platforms. Kept lighter than a solid fill so
|
|
278
|
+
the blurred image stays visible behind the footer text. */}
|
|
217
279
|
<View style={[StyleSheet.absoluteFill, styles.scrim]} pointerEvents="none">
|
|
218
280
|
<Svg width="100%" height="100%">
|
|
219
281
|
<Defs>
|
|
@@ -230,11 +292,11 @@ function ProductMerchandisingCard({
|
|
|
230
292
|
|
|
231
293
|
<View style={styles.footerRow}>
|
|
232
294
|
<View style={tokens.textWrap}>
|
|
233
|
-
<Text style={tokens.title}
|
|
295
|
+
<Text style={tokens.title} {...resolveTruncation(disableTruncation, 1)}>
|
|
234
296
|
{title}
|
|
235
297
|
</Text>
|
|
236
298
|
{subtitle != null ? (
|
|
237
|
-
<Text style={tokens.subtitle}
|
|
299
|
+
<Text style={tokens.subtitle} {...resolveTruncation(disableTruncation, 1)}>
|
|
238
300
|
{subtitle}
|
|
239
301
|
</Text>
|
|
240
302
|
) : null}
|
|
@@ -286,6 +348,7 @@ const SPECIAL_BADGE_INTENSITY = 17 // ~5px CSS blur / ~2 native blurAmount
|
|
|
286
348
|
interface ResolvedTokens {
|
|
287
349
|
radius: number
|
|
288
350
|
blurIntensity: number
|
|
351
|
+
imageBlurRadius: number
|
|
289
352
|
header: ViewStyle
|
|
290
353
|
footer: ViewStyle
|
|
291
354
|
textWrap: ViewStyle
|
|
@@ -331,9 +394,20 @@ function resolveTokens(modes: Modes): ResolvedTokens {
|
|
|
331
394
|
const sbFamily = asStr(getVariableByName('productMerchandisingcard/specialbadge/text/fontfamily', modes), 'JioType Var')
|
|
332
395
|
const sbWeight = asStr(getVariableByName('productMerchandisingcard/specialbadge/text/fontweight', modes), '500')
|
|
333
396
|
|
|
397
|
+
// `Image.blurRadius` is interpreted differently per platform — iOS applies a
|
|
398
|
+
// strong Gaussian while Android's IterativeBoxBlur is gentler at the same
|
|
399
|
+
// numeric radius — so we tune each platform to land on the same perceived
|
|
400
|
+
// "minimal" frosted strength as the Figma design.
|
|
401
|
+
const imageBlurRadius = Platform.select({
|
|
402
|
+
ios: Math.max(6, Math.round(blurRadius * 0.5)),
|
|
403
|
+
android: Math.max(12, Math.round(blurRadius * 0.95)),
|
|
404
|
+
default: Math.max(8, Math.round(blurRadius * 0.6)),
|
|
405
|
+
}) as number
|
|
406
|
+
|
|
334
407
|
return {
|
|
335
408
|
radius,
|
|
336
409
|
blurIntensity: Math.max(0, Math.min(100, Math.round(blurRadius * BLUR_INTENSITY_FACTOR))),
|
|
410
|
+
imageBlurRadius,
|
|
337
411
|
header: {
|
|
338
412
|
flexDirection: 'row',
|
|
339
413
|
alignItems: 'flex-start',
|
|
@@ -398,22 +472,15 @@ const styles = StyleSheet.create({
|
|
|
398
472
|
// the intended fade strength.
|
|
399
473
|
opacity: 0.9,
|
|
400
474
|
},
|
|
475
|
+
// Overrides layered on top of <Badge type="glass">. Badge already supplies
|
|
476
|
+
// the row layout + 4px gap (when a leading icon is present), `overflow:
|
|
477
|
+
// 'hidden'`, `alignSelf: 'flex-start'` and `alignItems: 'center'`; these
|
|
478
|
+
// pin the special badge's literal Figma box (6/2 padding, 4px radius)
|
|
479
|
+
// regardless of the badge size tokens resolved by the active modes.
|
|
401
480
|
specialBadge: {
|
|
402
|
-
flexDirection: 'row',
|
|
403
|
-
alignItems: 'center',
|
|
404
|
-
gap: 4,
|
|
405
481
|
paddingHorizontal: 6,
|
|
406
482
|
paddingVertical: 2,
|
|
407
483
|
borderRadius: 4,
|
|
408
|
-
overflow: 'hidden',
|
|
409
|
-
alignSelf: 'flex-start',
|
|
410
|
-
},
|
|
411
|
-
specialBadgeFill: {
|
|
412
|
-
borderRadius: 4,
|
|
413
|
-
},
|
|
414
|
-
specialBadgeIcon: {
|
|
415
|
-
justifyContent: 'center',
|
|
416
|
-
alignItems: 'center',
|
|
417
484
|
},
|
|
418
485
|
pressed: {
|
|
419
486
|
opacity: 0.92,
|
|
@@ -8,7 +8,7 @@ import {
|
|
|
8
8
|
type ImageSourcePropType,
|
|
9
9
|
} from 'react-native'
|
|
10
10
|
import { getVariableByName } from '../../design-tokens/figma-variables-resolver'
|
|
11
|
-
import { EMPTY_MODES, cloneChildrenWithModes } from '../../utils/react-utils'
|
|
11
|
+
import { EMPTY_MODES, cloneChildrenWithModes, resolveTruncation } from '../../utils/react-utils'
|
|
12
12
|
import Image from '../Image/Image'
|
|
13
13
|
import ProductLabel from '../ProductLabel/ProductLabel'
|
|
14
14
|
import type { Modes } from '../../design-tokens'
|
|
@@ -47,6 +47,12 @@ export type ProductOverviewProps = {
|
|
|
47
47
|
* for badges, callouts, etc. Receives the same `modes` as the parent.
|
|
48
48
|
*/
|
|
49
49
|
children?: React.ReactNode
|
|
50
|
+
/**
|
|
51
|
+
* When `true`, disables text truncation: the trailing ellipsis (`…`) is never
|
|
52
|
+
* shown and any `numberOfLines` clamp is ignored, so the text wraps to as many
|
|
53
|
+
* lines as it needs even when horizontal space is tight.
|
|
54
|
+
*/
|
|
55
|
+
disableTruncation?: boolean
|
|
50
56
|
}
|
|
51
57
|
|
|
52
58
|
const DEFAULT_STATS: ProductOverviewStat[] = [
|
|
@@ -65,6 +71,7 @@ const ProductOverview = ({
|
|
|
65
71
|
modes = EMPTY_MODES,
|
|
66
72
|
style,
|
|
67
73
|
children,
|
|
74
|
+
disableTruncation,
|
|
68
75
|
}: ProductOverviewProps) => {
|
|
69
76
|
const padding = (getVariableByName('productOverview/padding', modes) as number | null) ?? 24
|
|
70
77
|
const gap = (getVariableByName('productOverview/gap', modes) as number | null) ?? 12
|
|
@@ -220,10 +227,10 @@ const ProductOverview = ({
|
|
|
220
227
|
overflow: 'hidden',
|
|
221
228
|
}}
|
|
222
229
|
>
|
|
223
|
-
<Text style={statValueStyle}
|
|
230
|
+
<Text style={statValueStyle} {...resolveTruncation(disableTruncation, 1)}>
|
|
224
231
|
{stat.value}
|
|
225
232
|
</Text>
|
|
226
|
-
<Text style={statLabelStyle}
|
|
233
|
+
<Text style={statLabelStyle} {...resolveTruncation(disableTruncation, 1)}>
|
|
227
234
|
{stat.label}
|
|
228
235
|
</Text>
|
|
229
236
|
</View>
|
|
@@ -8,7 +8,7 @@ import {
|
|
|
8
8
|
} from 'react-native'
|
|
9
9
|
import { getVariableByName } from '../../design-tokens/figma-variables-resolver'
|
|
10
10
|
import Icon from '../../icons/Icon'
|
|
11
|
-
import { EMPTY_MODES, cloneChildrenWithModes } from '../../utils/react-utils'
|
|
11
|
+
import { EMPTY_MODES, cloneChildrenWithModes, resolveTruncation } from '../../utils/react-utils'
|
|
12
12
|
import type { Modes } from '../../design-tokens'
|
|
13
13
|
|
|
14
14
|
export type ProgressBadgeProps = {
|
|
@@ -26,6 +26,12 @@ export type ProgressBadgeProps = {
|
|
|
26
26
|
textStyle?: StyleProp<TextStyle>
|
|
27
27
|
/** Accessibility label for screen readers */
|
|
28
28
|
accessibilityLabel?: string
|
|
29
|
+
/**
|
|
30
|
+
* When `true`, disables text truncation: the trailing ellipsis (`…`) is never
|
|
31
|
+
* shown and any `numberOfLines` clamp is ignored, so the text wraps to as many
|
|
32
|
+
* lines as it needs even when horizontal space is tight.
|
|
33
|
+
*/
|
|
34
|
+
disableTruncation?: boolean
|
|
29
35
|
} & React.ComponentProps<typeof View>
|
|
30
36
|
|
|
31
37
|
/**
|
|
@@ -51,13 +57,14 @@ function ProgressBadge({
|
|
|
51
57
|
style,
|
|
52
58
|
textStyle: textStyleOverride,
|
|
53
59
|
accessibilityLabel,
|
|
60
|
+
disableTruncation,
|
|
54
61
|
...rest
|
|
55
62
|
}: ProgressBadgeProps) {
|
|
56
63
|
// Resolve layout tokens
|
|
57
64
|
const backgroundColor =
|
|
58
|
-
getVariableByName('progressBadge/background', modes)
|
|
65
|
+
getVariableByName('progressBadge/background', modes)
|
|
59
66
|
const progressColor =
|
|
60
|
-
getVariableByName('progressBadge/progress/color', modes)
|
|
67
|
+
getVariableByName('progressBadge/progress/color', modes)
|
|
61
68
|
const gap = getVariableByName('progressBadge/gap', modes) ?? 12
|
|
62
69
|
const paddingHorizontal =
|
|
63
70
|
getVariableByName('progressBadge/padding/horizontal', modes) ?? 16
|
|
@@ -69,7 +76,7 @@ function ProgressBadge({
|
|
|
69
76
|
|
|
70
77
|
// Resolve typography tokens
|
|
71
78
|
const fontFamily =
|
|
72
|
-
getVariableByName('progressBadge/fontFamily', modes)
|
|
79
|
+
getVariableByName('progressBadge/fontFamily', modes)
|
|
73
80
|
const fontWeightRaw = getVariableByName('progressBadge/fontWeight', modes) ?? 500
|
|
74
81
|
const fontWeight =
|
|
75
82
|
typeof fontWeightRaw === 'number'
|
|
@@ -78,11 +85,11 @@ function ProgressBadge({
|
|
|
78
85
|
const fontSize = getVariableByName('progressBadge/fontSize', modes) ?? 14
|
|
79
86
|
const lineHeight = getVariableByName('progressBadge/lineHeight', modes) ?? 17
|
|
80
87
|
const textColor =
|
|
81
|
-
getVariableByName('progressBadge/foreground', modes)
|
|
88
|
+
getVariableByName('progressBadge/foreground', modes)
|
|
82
89
|
|
|
83
90
|
// Resolve icon tokens
|
|
84
91
|
const iconColor =
|
|
85
|
-
getVariableByName('progressBadge/icon/color', modes)
|
|
92
|
+
getVariableByName('progressBadge/icon/color', modes)
|
|
86
93
|
const iconSize = getVariableByName('progressBadge/icon/size', modes) ?? 18
|
|
87
94
|
|
|
88
95
|
const containerStyle: ViewStyle = {
|
|
@@ -158,8 +165,7 @@ function ProgressBadge({
|
|
|
158
165
|
) : null}
|
|
159
166
|
<Text
|
|
160
167
|
style={[textStyle, textStyleOverride]}
|
|
161
|
-
|
|
162
|
-
ellipsizeMode="tail"
|
|
168
|
+
{...resolveTruncation(disableTruncation, 1, 'tail')}
|
|
163
169
|
accessibilityElementsHidden={true}
|
|
164
170
|
importantForAccessibility="no"
|
|
165
171
|
>
|
|
@@ -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 type { Modes } from '../../design-tokens'
|
|
12
12
|
import Divider from '../Divider/Divider'
|
|
13
13
|
|
|
@@ -61,6 +61,12 @@ export type ProjectionMarkerProps = {
|
|
|
61
61
|
rateStyle?: StyleProp<TextStyle>
|
|
62
62
|
/** Accessibility label for the whole marker. */
|
|
63
63
|
accessibilityLabel?: string
|
|
64
|
+
/**
|
|
65
|
+
* When `true`, disables text truncation: the trailing ellipsis (`…`) is never
|
|
66
|
+
* shown and any `numberOfLines` clamp is ignored, so the text wraps to as many
|
|
67
|
+
* lines as it needs even when horizontal space is tight.
|
|
68
|
+
*/
|
|
69
|
+
disableTruncation?: boolean
|
|
64
70
|
}
|
|
65
71
|
|
|
66
72
|
const isTextValue = (value: React.ReactNode): value is string | number =>
|
|
@@ -106,6 +112,7 @@ function ProjectionMarker({
|
|
|
106
112
|
durationStyle,
|
|
107
113
|
rateStyle,
|
|
108
114
|
accessibilityLabel,
|
|
115
|
+
disableTruncation,
|
|
109
116
|
}: ProjectionMarkerProps) {
|
|
110
117
|
const titleColor =
|
|
111
118
|
(getVariableByName('projectionMarker/title/color', modes) as string | null) ?? '#000000'
|
|
@@ -169,7 +176,7 @@ function ProjectionMarker({
|
|
|
169
176
|
if (value === null || value === undefined) return null
|
|
170
177
|
if (isTextValue(value)) {
|
|
171
178
|
return (
|
|
172
|
-
<Text style={[titleTextStyle, overrideStyle]}
|
|
179
|
+
<Text style={[titleTextStyle, overrideStyle]} {...resolveTruncation(disableTruncation, 1)}>
|
|
173
180
|
{value}
|
|
174
181
|
</Text>
|
|
175
182
|
)
|