jfs-components 0.1.0 → 0.1.8
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 +37 -0
- package/lib/commonjs/components/AmountInput/AmountInput.js +8 -5
- package/lib/commonjs/components/AreaLineChart/AreaLineChart.js +1 -1
- package/lib/commonjs/components/Balance/Balance.js +17 -12
- package/lib/commonjs/components/BenefitCard/BenefitCard.js +231 -0
- package/lib/commonjs/components/Card/Card.js +2 -1
- package/lib/commonjs/components/CardFeedback/CardFeedback.js +2 -1
- package/lib/commonjs/components/CcCard/CcCard.js +470 -0
- package/lib/commonjs/components/Checkbox/Checkbox.js +6 -4
- package/lib/commonjs/components/CheckboxItem/CheckboxItem.js +4 -3
- package/lib/commonjs/components/CompareTable/CompareTable.js +372 -0
- package/lib/commonjs/components/ComparisonBar/ComparisonBar.js +266 -0
- package/lib/commonjs/components/Drawer/Drawer.js +13 -4
- package/lib/commonjs/components/DropdownInput/DropdownInput.js +36 -4
- package/lib/commonjs/components/FormField/FormField.js +4 -3
- package/lib/commonjs/components/FullscreenModal/FullscreenModal.js +62 -2
- package/lib/commonjs/components/Image/Image.js +11 -5
- package/lib/commonjs/components/InputSearch/InputSearch.js +6 -4
- package/lib/commonjs/components/LottiePlayer/loadNativeLottieView.js +8 -13
- package/lib/commonjs/components/NoteInput/NoteInput.js +6 -5
- package/lib/commonjs/components/Overlay/Overlay.js +92 -0
- package/lib/commonjs/components/PdpCcCard/PdpCcCard.js +273 -0
- package/lib/commonjs/components/PlanComparisonCard/PlanComparisonCard.js +2 -1
- package/lib/commonjs/components/ProductMerchandisingCard/GlassFill.js +263 -0
- package/lib/commonjs/components/ProductMerchandisingCard/GlassFill.web.js +116 -0
- package/lib/commonjs/components/ProductMerchandisingCard/ProductMerchandisingCard.js +353 -0
- package/lib/commonjs/components/ProjectionMarker/ProjectionMarker.js +161 -0
- package/lib/commonjs/components/Radio/Radio.js +5 -5
- package/lib/commonjs/components/Slider/Slider.js +473 -0
- package/lib/commonjs/components/TextInput/TextInput.js +15 -9
- package/lib/commonjs/components/TextSegment/TextSegment.js +118 -0
- package/lib/commonjs/components/docs/modeControls.js +116 -0
- package/lib/commonjs/components/index.js +70 -0
- package/lib/commonjs/design-tokens/Coin Variables-variables-full.json +1 -1
- package/lib/commonjs/design-tokens/JFSThemeProvider.js +1 -1
- package/lib/commonjs/design-tokens/figma-modes.generated.js +420 -0
- package/lib/commonjs/design-tokens/index.js +11 -0
- package/lib/commonjs/icons/registry.js +1 -1
- package/lib/commonjs/utils/react-utils.js +22 -0
- package/lib/module/components/Accordion/Accordion.js +1 -2
- package/lib/module/components/AmountInput/AmountInput.js +6 -4
- package/lib/module/components/AreaLineChart/AreaLineChart.js +1 -1
- package/lib/module/components/Balance/Balance.js +18 -13
- package/lib/module/components/BenefitCard/BenefitCard.js +225 -0
- package/lib/module/components/Card/Card.js +1 -2
- package/lib/module/components/CardFeedback/CardFeedback.js +1 -2
- package/lib/module/components/CcCard/CcCard.js +464 -0
- package/lib/module/components/Checkbox/Checkbox.js +6 -6
- package/lib/module/components/CheckboxItem/CheckboxItem.js +5 -4
- package/lib/module/components/CompareTable/CompareTable.js +367 -0
- package/lib/module/components/ComparisonBar/ComparisonBar.js +260 -0
- package/lib/module/components/Drawer/Drawer.js +12 -4
- package/lib/module/components/DropdownInput/DropdownInput.js +37 -5
- package/lib/module/components/FormField/FormField.js +5 -4
- package/lib/module/components/FullscreenModal/FullscreenModal.js +64 -5
- package/lib/module/components/Image/Image.js +11 -5
- package/lib/module/components/InputSearch/InputSearch.js +6 -4
- package/lib/module/components/InstitutionBadge/InstitutionBadge.js +1 -2
- package/lib/module/components/LottiePlayer/loadNativeLottieView.js +8 -13
- package/lib/module/components/MoneyValue/MoneyValue.js +1 -2
- package/lib/module/components/NoteInput/NoteInput.js +7 -6
- package/lib/module/components/OTP/OTP.js +1 -2
- package/lib/module/components/Overlay/Overlay.js +87 -0
- package/lib/module/components/PdpCcCard/PdpCcCard.js +267 -0
- package/lib/module/components/PlanComparisonCard/PlanComparisonCard.js +1 -2
- package/lib/module/components/PoweredByLabel/PoweredByLabel.js +1 -2
- package/lib/module/components/ProductMerchandisingCard/GlassFill.js +257 -0
- package/lib/module/components/ProductMerchandisingCard/GlassFill.web.js +111 -0
- package/lib/module/components/ProductMerchandisingCard/ProductMerchandisingCard.js +347 -0
- package/lib/module/components/ProjectionMarker/ProjectionMarker.js +156 -0
- package/lib/module/components/Radio/Radio.js +5 -4
- package/lib/module/components/RechargeCard/RechargeCard.js +1 -2
- package/lib/module/components/Section/Section.js +1 -2
- package/lib/module/components/Slider/Slider.js +468 -0
- package/lib/module/components/TextInput/TextInput.js +16 -12
- package/lib/module/components/TextSegment/TextSegment.js +113 -0
- package/lib/module/components/UpiHandle/UpiHandle.js +1 -2
- package/lib/module/components/docs/modeControls.js +111 -0
- package/lib/module/components/index.js +10 -0
- package/lib/module/design-tokens/Coin Variables-variables-full.json +1 -1
- package/lib/module/design-tokens/JFSThemeProvider.js +1 -1
- package/lib/module/design-tokens/figma-modes.generated.js +416 -0
- package/lib/module/design-tokens/index.js +2 -1
- package/lib/module/icons/registry.js +1 -1
- package/lib/module/utils/react-utils.js +21 -1
- package/lib/typescript/src/components/Accordion/Accordion.d.ts +2 -1
- package/lib/typescript/src/components/AccordionCheckbox/AccordionCheckbox.d.ts +2 -1
- package/lib/typescript/src/components/AccountCard/AccountCard.d.ts +2 -1
- package/lib/typescript/src/components/ActionFooter/ActionFooter.d.ts +2 -1
- package/lib/typescript/src/components/ActionTile/ActionTile.d.ts +2 -1
- package/lib/typescript/src/components/AllocationComparisonChart/AllocationComparisonChart.d.ts +2 -1
- package/lib/typescript/src/components/AmountInput/AmountInput.d.ts +5 -3
- package/lib/typescript/src/components/AppBar/AppBar.d.ts +2 -1
- package/lib/typescript/src/components/AreaLineChart/AreaLineChart.d.ts +3 -2
- package/lib/typescript/src/components/Attached/Attached.d.ts +2 -1
- package/lib/typescript/src/components/Avatar/Avatar.d.ts +2 -1
- package/lib/typescript/src/components/AvatarGroup/AvatarGroup.d.ts +2 -1
- package/lib/typescript/src/components/Badge/Badge.d.ts +2 -1
- package/lib/typescript/src/components/Balance/Balance.d.ts +2 -1
- package/lib/typescript/src/components/BenefitCard/BenefitCard.d.ts +93 -0
- package/lib/typescript/src/components/BottomNav/BottomNav.d.ts +2 -1
- package/lib/typescript/src/components/BottomNavItem/BottomNavItem.d.ts +2 -1
- package/lib/typescript/src/components/BrandChip/BrandChip.d.ts +2 -1
- package/lib/typescript/src/components/BubbleChart/BubbleChart.d.ts +2 -1
- package/lib/typescript/src/components/Button/Button.d.ts +2 -1
- package/lib/typescript/src/components/ButtonGroup/ButtonGroup.d.ts +2 -1
- package/lib/typescript/src/components/Card/Card.d.ts +3 -2
- package/lib/typescript/src/components/CardAdvisory/CardAdvisory.d.ts +2 -1
- package/lib/typescript/src/components/CardBankAccount/CardBankAccount.d.ts +2 -1
- package/lib/typescript/src/components/CardCTA/CardCTA.d.ts +2 -1
- package/lib/typescript/src/components/CardFeedback/CardFeedback.d.ts +7 -6
- package/lib/typescript/src/components/CardFinancialCondition/CardFinancialCondition.d.ts +2 -1
- package/lib/typescript/src/components/CardInsight/CardInsight.d.ts +2 -1
- package/lib/typescript/src/components/CardProviderInfo/CardProviderInfo.d.ts +2 -1
- package/lib/typescript/src/components/Carousel/Carousel.d.ts +4 -3
- package/lib/typescript/src/components/CcCard/CcCard.d.ts +137 -0
- package/lib/typescript/src/components/Checkbox/Checkbox.d.ts +5 -3
- package/lib/typescript/src/components/CheckboxGroup/CheckboxGroup.d.ts +2 -1
- package/lib/typescript/src/components/CheckboxItem/CheckboxItem.d.ts +4 -3
- package/lib/typescript/src/components/ChipGroup/ChipGroup.d.ts +2 -1
- package/lib/typescript/src/components/ChipSelect/ChipSelect.d.ts +2 -1
- package/lib/typescript/src/components/CircularProgressBar/CircularProgressBar.d.ts +2 -1
- package/lib/typescript/src/components/CircularProgressBarDoted/CircularProgressBarDoted.d.ts +2 -1
- package/lib/typescript/src/components/CircularRating/CircularRating.d.ts +2 -1
- package/lib/typescript/src/components/ClusterBubble/ClusterBubble.d.ts +2 -1
- package/lib/typescript/src/components/CompareTable/CompareTable.d.ts +88 -0
- package/lib/typescript/src/components/ComparisonBar/ComparisonBar.d.ts +118 -0
- package/lib/typescript/src/components/CoverageBarComparison/CoverageBarComparison.d.ts +3 -2
- package/lib/typescript/src/components/CoverageRing/CoverageRing.d.ts +2 -1
- package/lib/typescript/src/components/DebitCard/DebitCard.d.ts +2 -1
- package/lib/typescript/src/components/Disclaimer/Disclaimer.d.ts +2 -1
- package/lib/typescript/src/components/Divider/Divider.d.ts +2 -1
- package/lib/typescript/src/components/DonutChart/DonutChart.d.ts +4 -3
- package/lib/typescript/src/components/DonutChartSummary/DonutChartSummary.d.ts +3 -2
- package/lib/typescript/src/components/Drawer/Drawer.d.ts +15 -1
- package/lib/typescript/src/components/Dropdown/Dropdown.d.ts +3 -2
- package/lib/typescript/src/components/DropdownInput/DropdownInput.d.ts +22 -2
- package/lib/typescript/src/components/EmptyState/EmptyState.d.ts +2 -1
- package/lib/typescript/src/components/ExpandableCheckbox/ExpandableCheckbox.d.ts +2 -1
- package/lib/typescript/src/components/FilterBar/FilterBar.d.ts +3 -2
- package/lib/typescript/src/components/Form/Form.d.ts +2 -1
- package/lib/typescript/src/components/FormField/FormField.d.ts +4 -3
- package/lib/typescript/src/components/FullscreenModal/FullscreenModal.d.ts +2 -1
- package/lib/typescript/src/components/Gauge/Gauge.d.ts +2 -1
- package/lib/typescript/src/components/HStack/HStack.d.ts +2 -1
- package/lib/typescript/src/components/HoldingsCard/HoldingsCard.d.ts +2 -1
- package/lib/typescript/src/components/Icon/Icon.d.ts +2 -1
- package/lib/typescript/src/components/IconButton/IconButton.d.ts +2 -1
- package/lib/typescript/src/components/IconCapsule/IconCapsule.d.ts +2 -1
- package/lib/typescript/src/components/Image/Image.d.ts +17 -1
- package/lib/typescript/src/components/InputSearch/InputSearch.d.ts +25 -3
- package/lib/typescript/src/components/InstitutionBadge/InstitutionBadge.d.ts +2 -1
- package/lib/typescript/src/components/LazyList/LazyList.d.ts +2 -1
- package/lib/typescript/src/components/LinearMeter/LinearMeter.d.ts +3 -2
- package/lib/typescript/src/components/LinearProgress/LinearProgress.d.ts +2 -1
- package/lib/typescript/src/components/ListGroup/ListGroup.d.ts +2 -1
- package/lib/typescript/src/components/ListItem/ListItem.d.ts +2 -1
- package/lib/typescript/src/components/LottieIntroBlock/LottieIntroBlock.d.ts +2 -1
- package/lib/typescript/src/components/LottiePlayer/LottiePlayer.d.ts +2 -1
- package/lib/typescript/src/components/LottiePlayer/LottiePlayer.web.d.ts +2 -1
- package/lib/typescript/src/components/MediaCard/MediaCard.d.ts +6 -5
- package/lib/typescript/src/components/MerchantProfile/MerchantProfile.d.ts +2 -1
- package/lib/typescript/src/components/MessageField/MessageField.d.ts +2 -1
- package/lib/typescript/src/components/MetricLegendItem/MetricLegendItem.d.ts +2 -1
- package/lib/typescript/src/components/MoneyValue/MoneyValue.d.ts +2 -1
- package/lib/typescript/src/components/MonthlyStatusGrid/MonthlyStatusGrid.d.ts +4 -3
- package/lib/typescript/src/components/NavArrow/NavArrow.d.ts +2 -1
- package/lib/typescript/src/components/NoteInput/NoteInput.d.ts +21 -3
- package/lib/typescript/src/components/Nudge/Nudge.d.ts +2 -1
- package/lib/typescript/src/components/Numpad/Numpad.d.ts +2 -1
- package/lib/typescript/src/components/OTP/OTP.d.ts +3 -2
- package/lib/typescript/src/components/Overlay/Overlay.d.ts +52 -0
- package/lib/typescript/src/components/PageHero/PageHero.d.ts +2 -1
- package/lib/typescript/src/components/PaymentFeedback/PaymentFeedback.d.ts +2 -1
- package/lib/typescript/src/components/PdpCcCard/PdpCcCard.d.ts +84 -0
- package/lib/typescript/src/components/PlanComparisonCard/PlanComparisonCard.d.ts +2 -1
- package/lib/typescript/src/components/Popup/Popup.d.ts +2 -1
- package/lib/typescript/src/components/PortfolioHero/PortfolioHero.d.ts +2 -1
- package/lib/typescript/src/components/PoweredByLabel/PoweredByLabel.d.ts +2 -1
- package/lib/typescript/src/components/ProductLabel/ProductLabel.d.ts +2 -1
- package/lib/typescript/src/components/ProductMerchandisingCard/GlassFill.d.ts +56 -0
- package/lib/typescript/src/components/ProductMerchandisingCard/GlassFill.web.d.ts +27 -0
- package/lib/typescript/src/components/ProductMerchandisingCard/ProductMerchandisingCard.d.ts +81 -0
- package/lib/typescript/src/components/ProductOverview/ProductOverview.d.ts +2 -1
- package/lib/typescript/src/components/ProgressBadge/ProgressBadge.d.ts +2 -1
- package/lib/typescript/src/components/ProjectionMarker/ProjectionMarker.d.ts +82 -0
- package/lib/typescript/src/components/Radio/Radio.d.ts +5 -3
- package/lib/typescript/src/components/RadioButton/RadioButton.d.ts +2 -2
- package/lib/typescript/src/components/RangeTrack/RangeTrack.d.ts +3 -2
- package/lib/typescript/src/components/RechargeCard/RechargeCard.d.ts +2 -1
- package/lib/typescript/src/components/SavingsGoalSummary/SavingsGoalSummary.d.ts +2 -1
- package/lib/typescript/src/components/Screen/Screen.d.ts +2 -1
- package/lib/typescript/src/components/Section/Section.d.ts +3 -2
- package/lib/typescript/src/components/SegmentedControl/SegmentedControl.d.ts +2 -1
- package/lib/typescript/src/components/SegmentedTrack/SegmentedTrack.d.ts +4 -3
- package/lib/typescript/src/components/Slider/Slider.d.ts +99 -0
- package/lib/typescript/src/components/Slot/Slot.d.ts +2 -1
- package/lib/typescript/src/components/Spinner/Spinner.d.ts +2 -1
- package/lib/typescript/src/components/StatGroup/StatGroup.d.ts +2 -1
- package/lib/typescript/src/components/StatItem/StatItem.d.ts +2 -1
- package/lib/typescript/src/components/StatusHero/StatusHero.d.ts +2 -1
- package/lib/typescript/src/components/Stepper/Step.d.ts +2 -1
- package/lib/typescript/src/components/Stepper/StepLabel.d.ts +2 -1
- package/lib/typescript/src/components/Stepper/Stepper.d.ts +2 -1
- package/lib/typescript/src/components/StrengthIndicator/StrengthIndicator.d.ts +2 -1
- package/lib/typescript/src/components/SuggestiveSearch/SuggestiveSearch.d.ts +2 -1
- package/lib/typescript/src/components/SummaryTile/SummaryTile.d.ts +2 -1
- package/lib/typescript/src/components/SupportText/SupportText.d.ts +2 -1
- package/lib/typescript/src/components/SupportText/SupportTextIcon.d.ts +2 -1
- package/lib/typescript/src/components/SwappableAmount/SwappableAmount.d.ts +2 -1
- package/lib/typescript/src/components/Tabs/TabItem.d.ts +2 -1
- package/lib/typescript/src/components/Tabs/Tabs.d.ts +2 -1
- package/lib/typescript/src/components/TestimonialsCard/TestimonialsCard.d.ts +2 -1
- package/lib/typescript/src/components/Text/Text.d.ts +2 -1
- package/lib/typescript/src/components/TextInput/TextInput.d.ts +12 -31
- package/lib/typescript/src/components/TextSegment/TextSegment.d.ts +100 -0
- package/lib/typescript/src/components/ThreadHero/ThreadHero.d.ts +2 -1
- package/lib/typescript/src/components/Title/Title.d.ts +2 -1
- package/lib/typescript/src/components/Toast/Toast.d.ts +2 -1
- package/lib/typescript/src/components/Toast/ToastProvider.d.ts +2 -1
- package/lib/typescript/src/components/Toast/useToast.d.ts +3 -2
- package/lib/typescript/src/components/Toggle/Toggle.d.ts +2 -1
- package/lib/typescript/src/components/Tooltip/Tooltip.d.ts +2 -1
- package/lib/typescript/src/components/TransactionBubble/TransactionBubble.d.ts +2 -1
- package/lib/typescript/src/components/TransactionDetails/TransactionDetails.d.ts +3 -2
- package/lib/typescript/src/components/TransactionStatus/TransactionStatus.d.ts +2 -1
- package/lib/typescript/src/components/UpiHandle/UpiHandle.d.ts +2 -1
- package/lib/typescript/src/components/VStack/VStack.d.ts +2 -1
- package/lib/typescript/src/components/docs/modeControls.d.ts +28 -0
- package/lib/typescript/src/components/index.d.ts +11 -1
- package/lib/typescript/src/design-tokens/JFSThemeProvider.d.ts +4 -3
- package/lib/typescript/src/design-tokens/figma-modes.generated.d.ts +284 -0
- package/lib/typescript/src/design-tokens/index.d.ts +1 -0
- package/lib/typescript/src/icons/registry.d.ts +1 -1
- package/lib/typescript/src/skeleton/Skeleton.d.ts +2 -1
- package/lib/typescript/src/utils/react-utils.d.ts +12 -1
- package/package.json +4 -2
- package/src/components/Accordion/Accordion.tsx +2 -1
- package/src/components/AccordionCheckbox/AccordionCheckbox.tsx +2 -1
- package/src/components/AccountCard/AccountCard.tsx +2 -1
- package/src/components/ActionFooter/ActionFooter.tsx +2 -1
- package/src/components/ActionTile/ActionTile.tsx +2 -1
- package/src/components/AllocationComparisonChart/AllocationComparisonChart.tsx +2 -1
- package/src/components/AmountInput/AmountInput.tsx +9 -6
- package/src/components/AppBar/AppBar.tsx +2 -1
- package/src/components/AreaLineChart/AreaLineChart.tsx +8 -7
- package/src/components/Attached/Attached.tsx +2 -1
- package/src/components/Avatar/Avatar.tsx +3 -2
- package/src/components/AvatarGroup/AvatarGroup.tsx +2 -1
- package/src/components/Badge/Badge.tsx +2 -1
- package/src/components/Balance/Balance.tsx +18 -12
- package/src/components/BenefitCard/BenefitCard.tsx +309 -0
- package/src/components/BottomNav/BottomNav.tsx +2 -1
- package/src/components/BottomNavItem/BottomNavItem.tsx +3 -2
- package/src/components/BrandChip/BrandChip.tsx +3 -2
- package/src/components/BubbleChart/BubbleChart.tsx +2 -1
- package/src/components/Button/Button.tsx +3 -2
- package/src/components/ButtonGroup/ButtonGroup.tsx +2 -1
- package/src/components/Card/Card.tsx +4 -3
- package/src/components/CardAdvisory/CardAdvisory.tsx +3 -2
- package/src/components/CardBankAccount/CardBankAccount.tsx +2 -1
- package/src/components/CardCTA/CardCTA.tsx +3 -2
- package/src/components/CardFeedback/CardFeedback.tsx +11 -10
- package/src/components/CardFinancialCondition/CardFinancialCondition.tsx +3 -2
- package/src/components/CardInsight/CardInsight.tsx +2 -1
- package/src/components/CardProviderInfo/CardProviderInfo.tsx +2 -1
- package/src/components/Carousel/Carousel.tsx +5 -4
- package/src/components/CcCard/CcCard.tsx +598 -0
- package/src/components/Checkbox/Checkbox.tsx +7 -5
- package/src/components/CheckboxGroup/CheckboxGroup.tsx +2 -1
- package/src/components/CheckboxItem/CheckboxItem.tsx +7 -5
- package/src/components/ChipGroup/ChipGroup.tsx +2 -1
- package/src/components/ChipSelect/ChipSelect.tsx +2 -1
- package/src/components/CircularProgressBar/CircularProgressBar.tsx +2 -1
- package/src/components/CircularProgressBarDoted/CircularProgressBarDoted.tsx +2 -1
- package/src/components/CircularRating/CircularRating.tsx +3 -2
- package/src/components/ClusterBubble/ClusterBubble.tsx +2 -1
- package/src/components/CompareTable/CompareTable.tsx +477 -0
- package/src/components/ComparisonBar/ComparisonBar.tsx +356 -0
- package/src/components/CoverageBarComparison/CoverageBarComparison.tsx +3 -2
- package/src/components/CoverageRing/CoverageRing.tsx +2 -1
- package/src/components/DebitCard/DebitCard.tsx +2 -1
- package/src/components/Disclaimer/Disclaimer.tsx +2 -1
- package/src/components/Divider/Divider.tsx +2 -1
- package/src/components/DonutChart/DonutChart.tsx +6 -5
- package/src/components/DonutChartSummary/DonutChartSummary.tsx +3 -2
- package/src/components/Drawer/Drawer.tsx +21 -1
- package/src/components/Dropdown/Dropdown.tsx +4 -3
- package/src/components/DropdownInput/DropdownInput.tsx +60 -7
- package/src/components/EmptyState/EmptyState.tsx +2 -1
- package/src/components/ExpandableCheckbox/ExpandableCheckbox.tsx +2 -1
- package/src/components/FilterBar/FilterBar.tsx +3 -2
- package/src/components/Form/Form.tsx +2 -1
- package/src/components/FormField/FormField.tsx +8 -6
- package/src/components/FullscreenModal/FullscreenModal.tsx +68 -10
- package/src/components/Gauge/Gauge.tsx +2 -1
- package/src/components/HStack/HStack.tsx +2 -1
- package/src/components/HoldingsCard/HoldingsCard.tsx +2 -1
- package/src/components/Icon/Icon.tsx +3 -2
- package/src/components/IconButton/IconButton.tsx +3 -2
- package/src/components/IconCapsule/IconCapsule.tsx +3 -2
- package/src/components/Image/Image.tsx +29 -5
- package/src/components/InputSearch/InputSearch.tsx +11 -7
- package/src/components/InstitutionBadge/InstitutionBadge.tsx +3 -2
- package/src/components/LazyList/LazyList.tsx +2 -1
- package/src/components/LinearMeter/LinearMeter.tsx +3 -2
- package/src/components/LinearProgress/LinearProgress.tsx +2 -1
- package/src/components/ListGroup/ListGroup.tsx +2 -1
- package/src/components/ListItem/ListItem.tsx +3 -2
- package/src/components/LottieIntroBlock/LottieIntroBlock.tsx +2 -1
- package/src/components/LottiePlayer/LottiePlayer.tsx +3 -2
- package/src/components/LottiePlayer/LottiePlayer.web.tsx +3 -2
- package/src/components/LottiePlayer/loadNativeLottieView.tsx +9 -13
- package/src/components/MediaCard/MediaCard.tsx +7 -6
- package/src/components/MerchantProfile/MerchantProfile.tsx +2 -1
- package/src/components/MessageField/MessageField.tsx +3 -2
- package/src/components/MetricLegendItem/MetricLegendItem.tsx +2 -1
- package/src/components/MoneyValue/MoneyValue.tsx +2 -1
- package/src/components/MonthlyStatusGrid/MonthlyStatusGrid.tsx +5 -4
- package/src/components/NavArrow/NavArrow.tsx +3 -2
- package/src/components/NoteInput/NoteInput.tsx +10 -7
- package/src/components/Nudge/Nudge.tsx +3 -2
- package/src/components/Numpad/Numpad.tsx +2 -1
- package/src/components/OTP/OTP.tsx +3 -2
- package/src/components/Overlay/Overlay.tsx +114 -0
- package/src/components/PageHero/PageHero.tsx +2 -1
- package/src/components/PaymentFeedback/PaymentFeedback.tsx +2 -1
- package/src/components/PdpCcCard/PdpCcCard.tsx +356 -0
- package/src/components/PlanComparisonCard/PlanComparisonCard.tsx +2 -1
- package/src/components/Popup/Popup.tsx +2 -1
- package/src/components/PortfolioHero/PortfolioHero.tsx +2 -1
- package/src/components/PoweredByLabel/PoweredByLabel.tsx +2 -1
- package/src/components/ProductLabel/ProductLabel.tsx +2 -1
- package/src/components/ProductMerchandisingCard/GlassFill.tsx +276 -0
- package/src/components/ProductMerchandisingCard/GlassFill.web.tsx +127 -0
- package/src/components/ProductMerchandisingCard/ProductMerchandisingCard.tsx +423 -0
- package/src/components/ProductOverview/ProductOverview.tsx +2 -1
- package/src/components/ProgressBadge/ProgressBadge.tsx +2 -1
- package/src/components/ProjectionMarker/ProjectionMarker.tsx +277 -0
- package/src/components/Radio/Radio.tsx +7 -5
- package/src/components/RangeTrack/RangeTrack.tsx +3 -2
- package/src/components/RechargeCard/RechargeCard.tsx +2 -1
- package/src/components/SavingsGoalSummary/SavingsGoalSummary.tsx +2 -1
- package/src/components/Screen/Screen.tsx +2 -1
- package/src/components/Section/Section.tsx +6 -5
- package/src/components/SegmentedControl/SegmentedControl.tsx +3 -2
- package/src/components/SegmentedTrack/SegmentedTrack.tsx +5 -4
- package/src/components/Slider/Slider.tsx +628 -0
- package/src/components/Slot/Slot.tsx +2 -1
- package/src/components/Spinner/Spinner.tsx +2 -1
- package/src/components/StatGroup/StatGroup.tsx +3 -2
- package/src/components/StatItem/StatItem.tsx +2 -1
- package/src/components/StatusHero/StatusHero.tsx +2 -1
- package/src/components/Stepper/Step.tsx +2 -1
- package/src/components/Stepper/StepLabel.tsx +2 -1
- package/src/components/Stepper/Stepper.tsx +2 -1
- package/src/components/StrengthIndicator/StrengthIndicator.tsx +2 -1
- package/src/components/SuggestiveSearch/SuggestiveSearch.tsx +4 -3
- package/src/components/SummaryTile/SummaryTile.tsx +2 -1
- package/src/components/SupportText/SupportText.tsx +2 -1
- package/src/components/SupportText/SupportTextIcon.tsx +2 -1
- package/src/components/SwappableAmount/SwappableAmount.tsx +2 -1
- package/src/components/Tabs/TabItem.tsx +2 -1
- package/src/components/Tabs/Tabs.tsx +2 -1
- package/src/components/TestimonialsCard/TestimonialsCard.tsx +2 -1
- package/src/components/Text/Text.tsx +2 -1
- package/src/components/TextInput/TextInput.tsx +18 -13
- package/src/components/TextSegment/TextSegment.tsx +166 -0
- package/src/components/ThreadHero/ThreadHero.tsx +2 -1
- package/src/components/Title/Title.tsx +2 -1
- package/src/components/Toast/Toast.tsx +2 -1
- package/src/components/Toast/ToastProvider.tsx +2 -1
- package/src/components/Toast/useToast.ts +3 -2
- package/src/components/Toggle/Toggle.tsx +2 -1
- package/src/components/Tooltip/Tooltip.tsx +3 -2
- package/src/components/TransactionBubble/TransactionBubble.tsx +2 -1
- package/src/components/TransactionDetails/TransactionDetails.tsx +3 -2
- package/src/components/TransactionStatus/TransactionStatus.tsx +3 -2
- package/src/components/UpiHandle/UpiHandle.tsx +3 -2
- package/src/components/VStack/VStack.tsx +2 -1
- package/src/components/docs/modeControls.tsx +122 -0
- package/src/components/index.ts +11 -1
- package/src/design-tokens/Coin Variables-variables-full.json +1 -1
- package/src/design-tokens/JFSThemeProvider.tsx +4 -3
- package/src/design-tokens/figma-modes.generated.ts +425 -0
- package/src/design-tokens/index.ts +1 -0
- package/src/icons/registry.ts +1 -1
- package/src/skeleton/Skeleton.tsx +2 -1
- package/src/utils/react-utils.ts +26 -2
- package/lib/typescript/scripts/extract-component-tokens.d.ts +0 -9
- package/lib/typescript/scripts/generate-component-docs.d.ts +0 -9
- package/lib/typescript/scripts/generate-icon-registry.d.ts +0 -3
|
@@ -0,0 +1,277 @@
|
|
|
1
|
+
import React from 'react'
|
|
2
|
+
import {
|
|
3
|
+
View,
|
|
4
|
+
Text,
|
|
5
|
+
type StyleProp,
|
|
6
|
+
type ViewStyle,
|
|
7
|
+
type TextStyle,
|
|
8
|
+
} from 'react-native'
|
|
9
|
+
import { getVariableByName } from '../../design-tokens/figma-variables-resolver'
|
|
10
|
+
import { EMPTY_MODES, cloneChildrenWithModes } from '../../utils/react-utils'
|
|
11
|
+
import type { Modes } from '../../design-tokens'
|
|
12
|
+
import Divider from '../Divider/Divider'
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* A value rendered at either end of the marker. A `string`/`number` is rendered
|
|
16
|
+
* with the built-in title typography; any other `ReactNode` (e.g. a
|
|
17
|
+
* `MoneyValue`) is rendered as-is so consumers can fully control presentation.
|
|
18
|
+
*/
|
|
19
|
+
type ProjectionMarkerEndValue = React.ReactNode
|
|
20
|
+
|
|
21
|
+
export type ProjectionMarkerProps = {
|
|
22
|
+
/**
|
|
23
|
+
* Value shown on the leading (left) end of the marker — typically the
|
|
24
|
+
* invested/starting amount. Accepts a string for the default styling or any
|
|
25
|
+
* `ReactNode` (e.g. `MoneyValue`) for custom rendering.
|
|
26
|
+
*/
|
|
27
|
+
startValue?: ProjectionMarkerEndValue
|
|
28
|
+
/**
|
|
29
|
+
* Value shown on the trailing (right) end of the marker — typically the
|
|
30
|
+
* projected/ending amount.
|
|
31
|
+
*/
|
|
32
|
+
endValue?: ProjectionMarkerEndValue
|
|
33
|
+
/**
|
|
34
|
+
* Primary line inside the center badge — typically the duration
|
|
35
|
+
* (e.g. `"1Y 10M"`).
|
|
36
|
+
*/
|
|
37
|
+
duration?: React.ReactNode
|
|
38
|
+
/**
|
|
39
|
+
* Secondary line inside the center badge — typically the rate
|
|
40
|
+
* (e.g. `"@ 8.25 %"`).
|
|
41
|
+
*/
|
|
42
|
+
rate?: React.ReactNode
|
|
43
|
+
/**
|
|
44
|
+
* Whether to render the connector lines between the end values and the
|
|
45
|
+
* center badge. Defaults to `true`.
|
|
46
|
+
*/
|
|
47
|
+
showConnectors?: boolean
|
|
48
|
+
/** Design token modes for theming. */
|
|
49
|
+
modes?: Modes
|
|
50
|
+
/** Override the root container styles. */
|
|
51
|
+
style?: StyleProp<ViewStyle>
|
|
52
|
+
/** Override the leading value text styles (only applies to string values). */
|
|
53
|
+
startValueStyle?: StyleProp<TextStyle>
|
|
54
|
+
/** Override the trailing value text styles (only applies to string values). */
|
|
55
|
+
endValueStyle?: StyleProp<TextStyle>
|
|
56
|
+
/** Override the center badge container styles. */
|
|
57
|
+
badgeStyle?: StyleProp<ViewStyle>
|
|
58
|
+
/** Override the duration text styles. */
|
|
59
|
+
durationStyle?: StyleProp<TextStyle>
|
|
60
|
+
/** Override the rate text styles. */
|
|
61
|
+
rateStyle?: StyleProp<TextStyle>
|
|
62
|
+
/** Accessibility label for the whole marker. */
|
|
63
|
+
accessibilityLabel?: string
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
const isTextValue = (value: React.ReactNode): value is string | number =>
|
|
67
|
+
typeof value === 'string' || typeof value === 'number'
|
|
68
|
+
|
|
69
|
+
/**
|
|
70
|
+
* ProjectionMarker renders a start value and an end value connected to a
|
|
71
|
+
* centered badge that summarizes the projection (e.g. a tenure and interest
|
|
72
|
+
* rate). It mirrors the Figma `projectionMarker` component and is commonly used
|
|
73
|
+
* inside "Potential returns" style cards.
|
|
74
|
+
*
|
|
75
|
+
* @example
|
|
76
|
+
* ```tsx
|
|
77
|
+
* <ProjectionMarker
|
|
78
|
+
* startValue="₹1,00,000"
|
|
79
|
+
* endValue="₹1,25,101"
|
|
80
|
+
* duration="1Y 10M"
|
|
81
|
+
* rate="@ 8.25 %"
|
|
82
|
+
* />
|
|
83
|
+
* ```
|
|
84
|
+
*
|
|
85
|
+
* @example Custom end values via MoneyValue
|
|
86
|
+
* ```tsx
|
|
87
|
+
* <ProjectionMarker
|
|
88
|
+
* startValue={<MoneyValue value="1,00,000" />}
|
|
89
|
+
* endValue={<MoneyValue value="1,25,101" />}
|
|
90
|
+
* duration="1Y 10M"
|
|
91
|
+
* rate="@ 8.25 %"
|
|
92
|
+
* />
|
|
93
|
+
* ```
|
|
94
|
+
*/
|
|
95
|
+
function ProjectionMarker({
|
|
96
|
+
startValue = '₹1,00,000',
|
|
97
|
+
endValue = '₹1,25,101',
|
|
98
|
+
duration = '1Y 10M',
|
|
99
|
+
rate = '@ 8.25 %',
|
|
100
|
+
showConnectors = true,
|
|
101
|
+
modes = EMPTY_MODES,
|
|
102
|
+
style,
|
|
103
|
+
startValueStyle,
|
|
104
|
+
endValueStyle,
|
|
105
|
+
badgeStyle,
|
|
106
|
+
durationStyle,
|
|
107
|
+
rateStyle,
|
|
108
|
+
accessibilityLabel,
|
|
109
|
+
}: ProjectionMarkerProps) {
|
|
110
|
+
const titleColor =
|
|
111
|
+
(getVariableByName('projectionMarker/title/color', modes) as string | null) ?? '#000000'
|
|
112
|
+
const titleFontFamily =
|
|
113
|
+
(getVariableByName('projectionMarker/title/fontfamily', modes) as string | null) ??
|
|
114
|
+
'JioType Var'
|
|
115
|
+
const titleFontSize =
|
|
116
|
+
(getVariableByName('projectionMarker/title/fontsize', modes) as number | null) ?? 14
|
|
117
|
+
const titleFontWeight = String(
|
|
118
|
+
getVariableByName('projectionMarker/title/fontweight', modes) ?? 600
|
|
119
|
+
) as TextStyle['fontWeight']
|
|
120
|
+
|
|
121
|
+
const durationColor =
|
|
122
|
+
(getVariableByName('projectionMarker/duration/color', modes) as string | null) ?? '#000000'
|
|
123
|
+
const durationFontFamily =
|
|
124
|
+
(getVariableByName('projectionMarker/duration/fontfamily', modes) as string | null) ??
|
|
125
|
+
'JioType Var'
|
|
126
|
+
const durationFontSize =
|
|
127
|
+
(getVariableByName('projectionMarker/duration/fontsize', modes) as number | null) ?? 12
|
|
128
|
+
const durationFontWeight = String(
|
|
129
|
+
getVariableByName('projectionMarker/duration/fontweight', modes) ?? 500
|
|
130
|
+
) as TextStyle['fontWeight']
|
|
131
|
+
|
|
132
|
+
const rateColor =
|
|
133
|
+
(getVariableByName('projectionMarker/rate/color', modes) as string | null) ?? '#6b6b6b'
|
|
134
|
+
const rateFontFamily =
|
|
135
|
+
(getVariableByName('metricdata/rate/fontfamily', modes) as string | null) ?? 'JioType Var'
|
|
136
|
+
const rateFontSize =
|
|
137
|
+
(getVariableByName('metricdata/rate/fontsize', modes) as number | null) ?? 11
|
|
138
|
+
const rateFontWeight = String(
|
|
139
|
+
getVariableByName('metricdata/rate/fontweight', modes) ?? 400
|
|
140
|
+
) as TextStyle['fontWeight']
|
|
141
|
+
|
|
142
|
+
const badgeBg =
|
|
143
|
+
(getVariableByName('projectionMarker/durationWrap/bg/color', modes) as string | null) ??
|
|
144
|
+
'#f5f5f5'
|
|
145
|
+
const badgeBorderColor =
|
|
146
|
+
(getVariableByName('projectionMarker/durationWrap/border/color', modes) as string | null) ??
|
|
147
|
+
'#ebebed'
|
|
148
|
+
const badgeBorderWidth =
|
|
149
|
+
(getVariableByName('metricdata/durationWrap/stroke', modes) as number | null) ?? 1
|
|
150
|
+
const badgeRadius =
|
|
151
|
+
(getVariableByName('metricdata/durationWrap/radius', modes) as number | null) ?? 8
|
|
152
|
+
const badgePaddingHorizontal =
|
|
153
|
+
(getVariableByName('metricdata/durationWrap/padding/horizontal', modes) as number | null) ?? 16
|
|
154
|
+
const badgePaddingVertical =
|
|
155
|
+
(getVariableByName('metricdata/durationWrap/padding/vertical', modes) as number | null) ?? 8
|
|
156
|
+
|
|
157
|
+
const titleTextStyle: TextStyle = {
|
|
158
|
+
color: titleColor,
|
|
159
|
+
fontFamily: titleFontFamily,
|
|
160
|
+
fontSize: titleFontSize,
|
|
161
|
+
fontWeight: titleFontWeight,
|
|
162
|
+
lineHeight: titleFontSize * 1.3,
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
const renderEndValue = (
|
|
166
|
+
value: React.ReactNode,
|
|
167
|
+
overrideStyle: StyleProp<TextStyle>
|
|
168
|
+
): React.ReactNode => {
|
|
169
|
+
if (value === null || value === undefined) return null
|
|
170
|
+
if (isTextValue(value)) {
|
|
171
|
+
return (
|
|
172
|
+
<Text style={[titleTextStyle, overrideStyle]} numberOfLines={1}>
|
|
173
|
+
{value}
|
|
174
|
+
</Text>
|
|
175
|
+
)
|
|
176
|
+
}
|
|
177
|
+
return cloneChildrenWithModes(value, modes)
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
return (
|
|
181
|
+
<View
|
|
182
|
+
style={[styles.container, style]}
|
|
183
|
+
accessibilityRole="summary"
|
|
184
|
+
accessibilityLabel={accessibilityLabel}
|
|
185
|
+
>
|
|
186
|
+
{renderEndValue(startValue, startValueStyle)}
|
|
187
|
+
|
|
188
|
+
{showConnectors && (
|
|
189
|
+
<Divider direction="horizontal" modes={modes} style={styles.connector} />
|
|
190
|
+
)}
|
|
191
|
+
|
|
192
|
+
<View
|
|
193
|
+
style={[
|
|
194
|
+
styles.badge,
|
|
195
|
+
{
|
|
196
|
+
backgroundColor: badgeBg,
|
|
197
|
+
borderColor: badgeBorderColor,
|
|
198
|
+
borderWidth: badgeBorderWidth,
|
|
199
|
+
borderRadius: badgeRadius,
|
|
200
|
+
paddingHorizontal: badgePaddingHorizontal,
|
|
201
|
+
paddingVertical: badgePaddingVertical,
|
|
202
|
+
},
|
|
203
|
+
badgeStyle,
|
|
204
|
+
]}
|
|
205
|
+
>
|
|
206
|
+
{duration !== null && duration !== undefined
|
|
207
|
+
? isTextValue(duration)
|
|
208
|
+
? (
|
|
209
|
+
<Text
|
|
210
|
+
style={[
|
|
211
|
+
{
|
|
212
|
+
color: durationColor,
|
|
213
|
+
fontFamily: durationFontFamily,
|
|
214
|
+
fontSize: durationFontSize,
|
|
215
|
+
fontWeight: durationFontWeight,
|
|
216
|
+
lineHeight: durationFontSize * 1.2,
|
|
217
|
+
textAlign: 'center',
|
|
218
|
+
},
|
|
219
|
+
durationStyle,
|
|
220
|
+
]}
|
|
221
|
+
>
|
|
222
|
+
{duration}
|
|
223
|
+
</Text>
|
|
224
|
+
)
|
|
225
|
+
: cloneChildrenWithModes(duration, modes)
|
|
226
|
+
: null}
|
|
227
|
+
{rate !== null && rate !== undefined
|
|
228
|
+
? isTextValue(rate)
|
|
229
|
+
? (
|
|
230
|
+
<Text
|
|
231
|
+
style={[
|
|
232
|
+
{
|
|
233
|
+
color: rateColor,
|
|
234
|
+
fontFamily: rateFontFamily,
|
|
235
|
+
fontSize: rateFontSize,
|
|
236
|
+
fontWeight: rateFontWeight,
|
|
237
|
+
lineHeight: rateFontSize * 1.3,
|
|
238
|
+
textAlign: 'center',
|
|
239
|
+
},
|
|
240
|
+
rateStyle,
|
|
241
|
+
]}
|
|
242
|
+
>
|
|
243
|
+
{rate}
|
|
244
|
+
</Text>
|
|
245
|
+
)
|
|
246
|
+
: cloneChildrenWithModes(rate, modes)
|
|
247
|
+
: null}
|
|
248
|
+
</View>
|
|
249
|
+
|
|
250
|
+
{showConnectors && (
|
|
251
|
+
<Divider direction="horizontal" modes={modes} style={styles.connector} />
|
|
252
|
+
)}
|
|
253
|
+
|
|
254
|
+
{renderEndValue(endValue, endValueStyle)}
|
|
255
|
+
</View>
|
|
256
|
+
)
|
|
257
|
+
}
|
|
258
|
+
|
|
259
|
+
const styles = {
|
|
260
|
+
container: {
|
|
261
|
+
flexDirection: 'row',
|
|
262
|
+
alignItems: 'center',
|
|
263
|
+
width: '100%',
|
|
264
|
+
} as ViewStyle,
|
|
265
|
+
connector: {
|
|
266
|
+
flex: 1,
|
|
267
|
+
alignSelf: 'center',
|
|
268
|
+
marginHorizontal: 16,
|
|
269
|
+
} as ViewStyle,
|
|
270
|
+
badge: {
|
|
271
|
+
flexDirection: 'column',
|
|
272
|
+
alignItems: 'center',
|
|
273
|
+
justifyContent: 'center',
|
|
274
|
+
} as ViewStyle,
|
|
275
|
+
}
|
|
276
|
+
|
|
277
|
+
export default ProjectionMarker
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React, {
|
|
1
|
+
import React, { forwardRef, useState } from 'react'
|
|
2
2
|
import {
|
|
3
3
|
Pressable,
|
|
4
4
|
View,
|
|
@@ -10,6 +10,7 @@ import {
|
|
|
10
10
|
} from 'react-native'
|
|
11
11
|
import { getVariableByName } from '../../design-tokens/figma-variables-resolver'
|
|
12
12
|
import { EMPTY_MODES } from '../../utils/react-utils'
|
|
13
|
+
import type { Modes } from '../../design-tokens'
|
|
13
14
|
|
|
14
15
|
// ---------------------------------------------------------------------------
|
|
15
16
|
// Props
|
|
@@ -31,7 +32,7 @@ export interface RadioProps {
|
|
|
31
32
|
/**
|
|
32
33
|
* Modes object for design-token resolution.
|
|
33
34
|
*/
|
|
34
|
-
modes?:
|
|
35
|
+
modes?: Modes
|
|
35
36
|
/**
|
|
36
37
|
* Custom style for the radio container.
|
|
37
38
|
*/
|
|
@@ -46,14 +47,14 @@ export interface RadioProps {
|
|
|
46
47
|
// Radio
|
|
47
48
|
// ---------------------------------------------------------------------------
|
|
48
49
|
|
|
49
|
-
export function Radio({
|
|
50
|
+
export const Radio = forwardRef<View, RadioProps>(function Radio({
|
|
50
51
|
selected = false,
|
|
51
52
|
disabled = false,
|
|
52
53
|
onPress,
|
|
53
54
|
modes = EMPTY_MODES,
|
|
54
55
|
style,
|
|
55
56
|
testID,
|
|
56
|
-
}: RadioProps) {
|
|
57
|
+
}: RadioProps, ref: React.Ref<View>) {
|
|
57
58
|
// ---- Refs & State ----
|
|
58
59
|
const [hovered, setHovered] = useState(false)
|
|
59
60
|
const [focused, setFocused] = useState(false)
|
|
@@ -205,6 +206,7 @@ export function Radio({
|
|
|
205
206
|
|
|
206
207
|
return (
|
|
207
208
|
<Pressable
|
|
209
|
+
ref={ref}
|
|
208
210
|
testID={testID}
|
|
209
211
|
disabled={disabled}
|
|
210
212
|
onPress={onPress}
|
|
@@ -222,6 +224,6 @@ export function Radio({
|
|
|
222
224
|
<View style={selectorStyle} />
|
|
223
225
|
</Pressable>
|
|
224
226
|
)
|
|
225
|
-
}
|
|
227
|
+
})
|
|
226
228
|
|
|
227
229
|
export default Radio
|
|
@@ -9,6 +9,7 @@ import SegmentedTrack, {
|
|
|
9
9
|
} from '../SegmentedTrack/SegmentedTrack'
|
|
10
10
|
import Tabs from '../Tabs/Tabs'
|
|
11
11
|
import TabItem from '../Tabs/TabItem'
|
|
12
|
+
import type { Modes } from '../../design-tokens'
|
|
12
13
|
|
|
13
14
|
/**
|
|
14
15
|
* One row of data inside a `RangeTrack` tab.
|
|
@@ -48,7 +49,7 @@ export type RangeTrackItem = {
|
|
|
48
49
|
* `modes` and the per-index `Emphasis / DataViz` defaults
|
|
49
50
|
* (`High`, `Medium`, `Low`, then cycles).
|
|
50
51
|
*/
|
|
51
|
-
modes?:
|
|
52
|
+
modes?: Modes
|
|
52
53
|
/** Accessibility label for the segment + legend row pairing. */
|
|
53
54
|
accessibilityLabel?: string
|
|
54
55
|
}
|
|
@@ -119,7 +120,7 @@ export type RangeTrackProps = {
|
|
|
119
120
|
*/
|
|
120
121
|
scrollableTabs?: boolean
|
|
121
122
|
/** Design token modes for theming (e.g. `{ 'Color Mode': 'Light' }`). */
|
|
122
|
-
modes?:
|
|
123
|
+
modes?: Modes
|
|
123
124
|
/** Override the outer container styles. */
|
|
124
125
|
style?: StyleProp<ViewStyle>
|
|
125
126
|
/** Override the tab row styles. */
|
|
@@ -5,6 +5,7 @@ import AvatarGroup from '../AvatarGroup/AvatarGroup';
|
|
|
5
5
|
import { getVariableByName } from '../../design-tokens/figma-variables-resolver';
|
|
6
6
|
import { EMPTY_MODES } from '../../utils/react-utils';
|
|
7
7
|
import MoneyValue from '../MoneyValue/MoneyValue';
|
|
8
|
+
import type { Modes } from '../../design-tokens'
|
|
8
9
|
|
|
9
10
|
// Defaults applied to the inner ButtonGroup so the card matches Figma out of
|
|
10
11
|
// the box. They are spread *before* the caller's `modes` so any consumer can
|
|
@@ -62,7 +63,7 @@ export type RechargeCardProps = {
|
|
|
62
63
|
/**
|
|
63
64
|
* Mode configuration for design tokens.
|
|
64
65
|
*/
|
|
65
|
-
modes?:
|
|
66
|
+
modes?: Modes;
|
|
66
67
|
style?: ViewStyle;
|
|
67
68
|
};
|
|
68
69
|
|
|
@@ -11,6 +11,7 @@ import { formatIndianNumber } from '../../utils/number-utils'
|
|
|
11
11
|
import Title from '../Title/Title'
|
|
12
12
|
import LinearProgress from '../LinearProgress/LinearProgress'
|
|
13
13
|
import MetricLegendItem from '../MetricLegendItem/MetricLegendItem'
|
|
14
|
+
import type { Modes } from '../../design-tokens'
|
|
14
15
|
|
|
15
16
|
/**
|
|
16
17
|
* A single row in the savings-goal legend (current vs. target).
|
|
@@ -72,7 +73,7 @@ export type SavingsGoalSummaryProps = {
|
|
|
72
73
|
* which renders the thicker progress bar from the Figma reference. Caller
|
|
73
74
|
* modes are merged on top and can override every default key.
|
|
74
75
|
*/
|
|
75
|
-
modes?:
|
|
76
|
+
modes?: Modes
|
|
76
77
|
/** Override container styles. */
|
|
77
78
|
style?: StyleProp<ViewStyle>
|
|
78
79
|
/**
|
|
@@ -8,6 +8,7 @@ import { useTokens } from '../../design-tokens/JFSThemeProvider'
|
|
|
8
8
|
* This ensures that all child components in slots receive the modes prop from the parent.
|
|
9
9
|
*/
|
|
10
10
|
import { cloneChildrenWithModes, EMPTY_MODES } from '../../utils/react-utils'
|
|
11
|
+
import type { Modes } from '../../design-tokens'
|
|
11
12
|
|
|
12
13
|
export interface ScreenProps {
|
|
13
14
|
/**
|
|
@@ -17,7 +18,7 @@ export interface ScreenProps {
|
|
|
17
18
|
/**
|
|
18
19
|
* Modes object to override default variable values.
|
|
19
20
|
*/
|
|
20
|
-
modes?:
|
|
21
|
+
modes?: Modes;
|
|
21
22
|
/**
|
|
22
23
|
* Optional style overrides for the container.
|
|
23
24
|
*/
|
|
@@ -15,6 +15,7 @@ import IconCapsule from '../IconCapsule/IconCapsule'
|
|
|
15
15
|
import ListItem from '../ListItem/ListItem'
|
|
16
16
|
import { usePressableWebSupport, type WebAccessibilityProps } from '../../utils/web-platform-utils'
|
|
17
17
|
import { EMPTY_MODES, cloneChildrenWithModes, flattenChildren } from '../../utils/react-utils'
|
|
18
|
+
import type { Modes } from '../../design-tokens'
|
|
18
19
|
|
|
19
20
|
// Match Button: delay the press visual on iOS so a scroll-cancelled touch
|
|
20
21
|
// never applies the "pressed" style. See Button.tsx for the rationale.
|
|
@@ -356,7 +357,7 @@ type SectionProps = {
|
|
|
356
357
|
slot?: React.ReactNode;
|
|
357
358
|
/** Layout direction of the slot's children. Defaults to 'row' (horizontal). */
|
|
358
359
|
slotDirection?: 'row' | 'column';
|
|
359
|
-
modes?:
|
|
360
|
+
modes?: Modes;
|
|
360
361
|
onPress?: () => void;
|
|
361
362
|
style?: StyleProp<ViewStyle>;
|
|
362
363
|
accessibilityLabel?: string;
|
|
@@ -400,7 +401,7 @@ interface SectionTokens {
|
|
|
400
401
|
slotGap: number;
|
|
401
402
|
}
|
|
402
403
|
|
|
403
|
-
function resolveSectionTokens(modes:
|
|
404
|
+
function resolveSectionTokens(modes: Modes): SectionTokens {
|
|
404
405
|
const backgroundColor = getVariableByName('section/background/color', modes) || '#ffffff'
|
|
405
406
|
const sectionGap = (getVariableByName('section/gap', modes) || 12) as number
|
|
406
407
|
const slotGap = (getVariableByName('slot/gap', modes) || 12) as number
|
|
@@ -630,7 +631,7 @@ function Section({
|
|
|
630
631
|
|
|
631
632
|
type SectionSlotProps = {
|
|
632
633
|
slot: React.ReactNode;
|
|
633
|
-
modes:
|
|
634
|
+
modes: Modes;
|
|
634
635
|
direction: 'row' | 'column';
|
|
635
636
|
rowGap: number;
|
|
636
637
|
columnGap: number;
|
|
@@ -667,7 +668,7 @@ type BentoToggleRenderState = {
|
|
|
667
668
|
type SectionBentoProps = {
|
|
668
669
|
navSlot?: React.ReactNode;
|
|
669
670
|
upiSlot?: React.ReactNode;
|
|
670
|
-
modes?:
|
|
671
|
+
modes?: Modes;
|
|
671
672
|
style?: StyleProp<ViewStyle>;
|
|
672
673
|
accessibilityLabel?: string;
|
|
673
674
|
accessibilityHint?: string;
|
|
@@ -891,7 +892,7 @@ function SectionBento({
|
|
|
891
892
|
type DefaultBentoToggleProps = {
|
|
892
893
|
expanded: boolean;
|
|
893
894
|
onPress: () => void;
|
|
894
|
-
modes:
|
|
895
|
+
modes: Modes;
|
|
895
896
|
moreLabel: string;
|
|
896
897
|
lessLabel: string;
|
|
897
898
|
moreIcon: string;
|
|
@@ -9,6 +9,7 @@ import {
|
|
|
9
9
|
} from 'react-native'
|
|
10
10
|
import { getVariableByName } from '../../design-tokens/figma-variables-resolver'
|
|
11
11
|
import { EMPTY_MODES } from '../../utils/react-utils'
|
|
12
|
+
import type { Modes } from '../../design-tokens'
|
|
12
13
|
|
|
13
14
|
export type SegmentedControlItem = {
|
|
14
15
|
key: React.Key
|
|
@@ -25,7 +26,7 @@ export type SegmentedControlProps = {
|
|
|
25
26
|
/** Callback fired when the selected segment changes */
|
|
26
27
|
onSelectionChange?: (key: React.Key) => void
|
|
27
28
|
/** Design token modes for theming */
|
|
28
|
-
modes?:
|
|
29
|
+
modes?: Modes
|
|
29
30
|
/** Override container styles */
|
|
30
31
|
style?: StyleProp<ViewStyle>
|
|
31
32
|
}
|
|
@@ -39,7 +40,7 @@ function SegmentedControlSegment({
|
|
|
39
40
|
label: string
|
|
40
41
|
active: boolean
|
|
41
42
|
onPress: () => void
|
|
42
|
-
modes:
|
|
43
|
+
modes: Modes
|
|
43
44
|
}) {
|
|
44
45
|
const resolvedModes = {
|
|
45
46
|
...modes,
|
|
@@ -7,6 +7,7 @@ import {
|
|
|
7
7
|
import { getVariableByName } from '../../design-tokens/figma-variables-resolver'
|
|
8
8
|
import { useTokens } from '../../design-tokens/JFSThemeProvider'
|
|
9
9
|
import { EMPTY_MODES, flattenChildren } from '../../utils/react-utils'
|
|
10
|
+
import type { Modes } from '../../design-tokens'
|
|
10
11
|
|
|
11
12
|
/**
|
|
12
13
|
* Per-segment data definition for the data-driven `segments` prop.
|
|
@@ -39,7 +40,7 @@ export type SegmentedTrackSegmentData = {
|
|
|
39
40
|
* Per-segment design token mode overrides. Merged on top of the parent
|
|
40
41
|
* `modes` and the per-index Emphasis defaults.
|
|
41
42
|
*/
|
|
42
|
-
modes?:
|
|
43
|
+
modes?: Modes
|
|
43
44
|
/** Override individual segment styles. */
|
|
44
45
|
style?: StyleProp<ViewStyle>
|
|
45
46
|
/** Per-segment accessibility label. */
|
|
@@ -60,7 +61,7 @@ export type SegmentedTrackProps = {
|
|
|
60
61
|
*/
|
|
61
62
|
children?: React.ReactNode
|
|
62
63
|
/** Design token modes for theming (e.g. `{ 'Color Mode': 'Light' }`). */
|
|
63
|
-
modes?:
|
|
64
|
+
modes?: Modes
|
|
64
65
|
/** Override the container styles. */
|
|
65
66
|
style?: StyleProp<ViewStyle>
|
|
66
67
|
/** Style applied to every segment (data-driven mode only). */
|
|
@@ -83,7 +84,7 @@ type SegmentedTrackSegmentProps = {
|
|
|
83
84
|
* Design token modes for the segment. Merged with parent `modes` and the
|
|
84
85
|
* per-index Emphasis defaults injected by the parent `SegmentedTrack`.
|
|
85
86
|
*/
|
|
86
|
-
modes?:
|
|
87
|
+
modes?: Modes | undefined
|
|
87
88
|
/** Override the segment styles. */
|
|
88
89
|
style?: StyleProp<ViewStyle> | undefined
|
|
89
90
|
/** Per-segment accessibility label. */
|
|
@@ -216,7 +217,7 @@ function renderSegments({
|
|
|
216
217
|
}: {
|
|
217
218
|
segments: SegmentedTrackSegmentData[] | undefined
|
|
218
219
|
children: React.ReactNode | undefined
|
|
219
|
-
modes:
|
|
220
|
+
modes: Modes
|
|
220
221
|
segmentStyle: StyleProp<ViewStyle> | undefined
|
|
221
222
|
}): React.ReactNode[] {
|
|
222
223
|
if (children !== undefined && children !== null) {
|