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
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { type ViewStyle, type StyleProp, type ImageSourcePropType } from 'react-native';
|
|
3
|
+
import type { Modes } from '../../design-tokens';
|
|
3
4
|
export type CardProviderInfoProps = {
|
|
4
5
|
/** Product name shown in the ProductLabel header. */
|
|
5
6
|
label?: string;
|
|
@@ -8,7 +9,7 @@ export type CardProviderInfoProps = {
|
|
|
8
9
|
/** Slot content — typically StatItem components arranged in a 2-column grid. */
|
|
9
10
|
children?: React.ReactNode;
|
|
10
11
|
/** Design token modes for theming. */
|
|
11
|
-
modes?:
|
|
12
|
+
modes?: Modes;
|
|
12
13
|
/** Override container styles. */
|
|
13
14
|
style?: StyleProp<ViewStyle>;
|
|
14
15
|
};
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { type ViewStyle, type StyleProp } from 'react-native';
|
|
3
|
+
import type { Modes } from '../../design-tokens';
|
|
3
4
|
export interface CarouselProps {
|
|
4
5
|
/** Content items to display (should be Carousel.Item or any React nodes). */
|
|
5
6
|
children?: React.ReactNode;
|
|
6
7
|
/** Modes object for design-token resolution. */
|
|
7
|
-
modes?:
|
|
8
|
+
modes?: Modes;
|
|
8
9
|
/** Enable auto-play. Default: false. */
|
|
9
10
|
autoPlay?: boolean;
|
|
10
11
|
/** Auto-play interval in ms. Default: 4000. */
|
|
@@ -29,7 +30,7 @@ export declare namespace Carousel {
|
|
|
29
30
|
}
|
|
30
31
|
export interface CarouselItemProps {
|
|
31
32
|
children?: React.ReactNode;
|
|
32
|
-
modes?:
|
|
33
|
+
modes?: Modes;
|
|
33
34
|
style?: StyleProp<ViewStyle>;
|
|
34
35
|
}
|
|
35
36
|
/**
|
|
@@ -38,7 +39,7 @@ export interface CarouselItemProps {
|
|
|
38
39
|
*/
|
|
39
40
|
export declare function Item({ children, modes: _modes, style }: CarouselItemProps): import("react/jsx-runtime").JSX.Element;
|
|
40
41
|
export interface PaginationProps {
|
|
41
|
-
modes?:
|
|
42
|
+
modes?: Modes;
|
|
42
43
|
style?: StyleProp<ViewStyle>;
|
|
43
44
|
}
|
|
44
45
|
export declare function Pagination({ modes: propModes, style }: PaginationProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { type ViewStyle, type StyleProp, type ImageSourcePropType } from 'react-native';
|
|
3
|
+
import { type TextSegmentRun } from '../TextSegment/TextSegment';
|
|
4
|
+
import type { Modes } from '../../design-tokens';
|
|
5
|
+
/**
|
|
6
|
+
* A single coloured chip rendered in the card header. Each badge resolves its
|
|
7
|
+
* own design tokens through `modes`, so different appearances (brand, tonal,
|
|
8
|
+
* etc.) can sit side-by-side in the same group.
|
|
9
|
+
*/
|
|
10
|
+
export interface CcCardBadge {
|
|
11
|
+
/** Visible label text. */
|
|
12
|
+
label: string;
|
|
13
|
+
/** Per-badge mode overrides (e.g. `{ AppearanceBrand: 'Tertiary' }`). */
|
|
14
|
+
modes?: Modes;
|
|
15
|
+
/** Background color override (wins over the token-resolved value). */
|
|
16
|
+
color?: string;
|
|
17
|
+
/** Label color override (wins over the token-resolved value). */
|
|
18
|
+
labelColor?: string;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* A single benefit row in the card's list, rendered through the shared
|
|
22
|
+
* {@link ListItem} primitive (leading icon + title).
|
|
23
|
+
*/
|
|
24
|
+
export interface CcCardListItem {
|
|
25
|
+
/**
|
|
26
|
+
* Registry icon name for the leading glyph. Defaults to `'ic_card'`. Pass
|
|
27
|
+
* `null` to omit the leading icon.
|
|
28
|
+
*/
|
|
29
|
+
icon?: string | null;
|
|
30
|
+
/** Per-row override for the leading icon color. */
|
|
31
|
+
iconColor?: string;
|
|
32
|
+
/** Full override for the leading node. Takes precedence over `icon`. */
|
|
33
|
+
leading?: React.ReactNode;
|
|
34
|
+
/** Row title (e.g. `"4 domestic + 2 intl. lounge access yearly"`). */
|
|
35
|
+
title: string;
|
|
36
|
+
/** Makes the row pressable. */
|
|
37
|
+
onPress?: () => void;
|
|
38
|
+
}
|
|
39
|
+
export interface CcCardProps {
|
|
40
|
+
/**
|
|
41
|
+
* Compact variant. Renders only the leading media slot (an `Avatar` by
|
|
42
|
+
* default) followed by the footer **without** its CTA button — a condensed
|
|
43
|
+
* representation of the card. Mirrors the Figma `compact` property.
|
|
44
|
+
*/
|
|
45
|
+
compact?: boolean;
|
|
46
|
+
/** Toggles the header badge row. Defaults to `true`. */
|
|
47
|
+
showHeader?: boolean;
|
|
48
|
+
/** Leading (left) badge group. */
|
|
49
|
+
badges?: CcCardBadge[];
|
|
50
|
+
/** Trailing (right-aligned) badge group. */
|
|
51
|
+
trailingBadges?: CcCardBadge[];
|
|
52
|
+
/** Full override for the header. Takes precedence over `badges`/`trailingBadges`. */
|
|
53
|
+
header?: React.ReactNode;
|
|
54
|
+
/**
|
|
55
|
+
* Image source for the default media slot. Accepts a URL string or any RN
|
|
56
|
+
* `ImageSourcePropType`. Ignored when `media` is provided.
|
|
57
|
+
*/
|
|
58
|
+
imageSource?: ImageSourcePropType | string;
|
|
59
|
+
/** Default media image width. Defaults to the Figma spec (`88`). */
|
|
60
|
+
imageWidth?: number;
|
|
61
|
+
/** Default media image height. Defaults to the Figma spec (`54`). */
|
|
62
|
+
imageHeight?: number;
|
|
63
|
+
/** Product title rendered next to the media slot (non-compact only). */
|
|
64
|
+
title?: string;
|
|
65
|
+
/** Product subtitle rendered below the title (non-compact only). */
|
|
66
|
+
subtitle?: string;
|
|
67
|
+
/**
|
|
68
|
+
* Full override for the media slot's visual. Whatever you pass here is
|
|
69
|
+
* rendered **in both the compact and non-compact variants** — e.g. pass an
|
|
70
|
+
* `Avatar` and it stays an avatar in both, pass an `Image` and it stays an
|
|
71
|
+
* image in both. `modes` cascade into it automatically. Defaults to an
|
|
72
|
+
* `Image` driven by `imageSource`.
|
|
73
|
+
*/
|
|
74
|
+
media?: React.ReactNode;
|
|
75
|
+
/** Benefit rows rendered in the list. Defaults to three sample rows. */
|
|
76
|
+
items?: CcCardListItem[];
|
|
77
|
+
/** Toggles the upsell nudge row. Defaults to `true`. */
|
|
78
|
+
showNudge?: boolean;
|
|
79
|
+
/**
|
|
80
|
+
* Declarative content for the nudge's inline text. Defaults to a sample
|
|
81
|
+
* "Upsell message JioFinance+" string with the last run brand-coloured.
|
|
82
|
+
*/
|
|
83
|
+
nudgeSegments?: TextSegmentRun[];
|
|
84
|
+
/** Avatar image source shown at the start of the nudge row. */
|
|
85
|
+
nudgeAvatarSource?: ImageSourcePropType | string;
|
|
86
|
+
/** Full override for the nudge row. Takes precedence over the declarative props. */
|
|
87
|
+
nudge?: React.ReactNode;
|
|
88
|
+
/** Small muted label above the footer title (`ccCard/headline/*`). */
|
|
89
|
+
headline?: string;
|
|
90
|
+
/** Bold footer value (`ccCard/title/*`). */
|
|
91
|
+
description?: string;
|
|
92
|
+
/** Muted caption rendered inline after the description (`ccCard/subtitle/*`). */
|
|
93
|
+
footerSubtitle?: string;
|
|
94
|
+
/** Full override for the footer text block. */
|
|
95
|
+
footer?: React.ReactNode;
|
|
96
|
+
/** CTA button label. Defaults to `"Button"`. */
|
|
97
|
+
buttonLabel?: string;
|
|
98
|
+
/** CTA press handler. */
|
|
99
|
+
onButtonPress?: () => void;
|
|
100
|
+
/** Full override for the CTA. Takes precedence over `buttonLabel`. */
|
|
101
|
+
button?: React.ReactNode;
|
|
102
|
+
/** Toggles the CTA button (non-compact). Defaults to `true`. */
|
|
103
|
+
showButton?: boolean;
|
|
104
|
+
/** Press handler for the whole card. When set, the card becomes pressable. */
|
|
105
|
+
onPress?: () => void;
|
|
106
|
+
/** Card width. Defaults to the Figma spec (`343`). Pass `'100%'` to fill the parent. */
|
|
107
|
+
width?: number | `${number}%`;
|
|
108
|
+
/** Modes object for design-token resolution. Cascaded to all children. */
|
|
109
|
+
modes?: Modes;
|
|
110
|
+
/** Style overrides for the card container. */
|
|
111
|
+
style?: StyleProp<ViewStyle>;
|
|
112
|
+
/** Accessibility label for the card. */
|
|
113
|
+
accessibilityLabel?: string;
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* CcCard — Figma node 5434:1992 ("Cc Card").
|
|
117
|
+
*
|
|
118
|
+
* A white, rounded credit-card product card composed entirely from the shared
|
|
119
|
+
* design-system primitives so it stays in sync with the rest of the library:
|
|
120
|
+
*
|
|
121
|
+
* - **Header** — two {@link Badge} groups (a leading group + a right-aligned
|
|
122
|
+
* trailing group), e.g. `Pre-qualified` / `Lifetime free`.
|
|
123
|
+
* - **Media** — a product `Image` + a {@link Title} (title + subtitle resolved
|
|
124
|
+
* through the `context7: Card` mode → 14px/12px).
|
|
125
|
+
* - **List** — a column of benefit {@link ListItem}s (`List Item Style:
|
|
126
|
+
* Minimal`) with leading icons.
|
|
127
|
+
* - **Nudge** — an inline upsell row: an {@link Avatar} + a {@link TextSegment}.
|
|
128
|
+
* - **Footer** — a headline + description + subtitle text block alongside a
|
|
129
|
+
* small {@link Button} (`Button / Size: S`, `AppearanceBrand: Secondary`).
|
|
130
|
+
*
|
|
131
|
+
* The {@link CcCardProps.compact} variant collapses the card to just the
|
|
132
|
+
* leading avatar slot + the footer text block (no CTA button). All defaults can
|
|
133
|
+
* be overridden via `modes`.
|
|
134
|
+
*/
|
|
135
|
+
declare function CcCard({ compact, showHeader, badges, trailingBadges, header, imageSource, imageWidth, imageHeight, title, subtitle, media, items, showNudge, nudgeSegments, nudgeAvatarSource, nudge, headline, description, footerSubtitle, footer, buttonLabel, onButtonPress, button, showButton, onPress, width, modes, style, accessibilityLabel, }: CcCardProps): import("react/jsx-runtime").JSX.Element;
|
|
136
|
+
export default CcCard;
|
|
137
|
+
//# sourceMappingURL=CcCard.d.ts.map
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
import
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { View, type StyleProp, type ViewStyle } from 'react-native';
|
|
3
|
+
import type { Modes } from '../../design-tokens';
|
|
2
4
|
export interface CheckboxProps {
|
|
3
5
|
/** Whether the checkbox is checked (controlled) */
|
|
4
6
|
checked?: boolean;
|
|
@@ -9,7 +11,7 @@ export interface CheckboxProps {
|
|
|
9
11
|
/** Whether the checkbox is disabled */
|
|
10
12
|
disabled?: boolean;
|
|
11
13
|
/** Design token modes for theming */
|
|
12
|
-
modes?:
|
|
14
|
+
modes?: Modes;
|
|
13
15
|
/** Override container styles */
|
|
14
16
|
style?: StyleProp<ViewStyle>;
|
|
15
17
|
/** Accessibility label for screen readers */
|
|
@@ -25,6 +27,6 @@ export interface CheckboxProps {
|
|
|
25
27
|
* @component
|
|
26
28
|
* @param {CheckboxProps} props
|
|
27
29
|
*/
|
|
28
|
-
declare
|
|
30
|
+
declare const Checkbox: React.ForwardRefExoticComponent<CheckboxProps & React.RefAttributes<View>>;
|
|
29
31
|
export default Checkbox;
|
|
30
32
|
//# sourceMappingURL=Checkbox.d.ts.map
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { type StyleProp, type ViewStyle } from 'react-native';
|
|
3
|
+
import type { Modes } from '../../design-tokens';
|
|
3
4
|
export type CheckboxGroupProps = {
|
|
4
5
|
/**
|
|
5
6
|
* Slot — a list of `CheckboxItem` (or compatible) elements to render inside
|
|
@@ -10,7 +11,7 @@ export type CheckboxGroupProps = {
|
|
|
10
11
|
*/
|
|
11
12
|
children?: React.ReactNode;
|
|
12
13
|
/** Design token modes for theming (e.g. `{ 'Color Mode': 'Light' }`). */
|
|
13
|
-
modes?:
|
|
14
|
+
modes?: Modes;
|
|
14
15
|
/** Override container styles. */
|
|
15
16
|
style?: StyleProp<ViewStyle>;
|
|
16
17
|
/** Accessibility label for the surrounding group. */
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import { type StyleProp, type ViewStyle, type TextStyle } from 'react-native';
|
|
2
|
+
import { View, type StyleProp, type ViewStyle, type TextStyle } from 'react-native';
|
|
3
|
+
import type { Modes } from '../../design-tokens';
|
|
3
4
|
export type CheckboxItemProps = {
|
|
4
5
|
/** Whether the checkbox is checked (controlled). */
|
|
5
6
|
checked?: boolean;
|
|
@@ -32,7 +33,7 @@ export type CheckboxItemProps = {
|
|
|
32
33
|
/** Width of the end slot container in pixels. Defaults to 80 to match the Figma reference. */
|
|
33
34
|
endSlotWidth?: number;
|
|
34
35
|
/** Design token modes for theming (e.g. `{ 'Color Mode': 'Light' }`). */
|
|
35
|
-
modes?:
|
|
36
|
+
modes?: Modes;
|
|
36
37
|
/** Override container styles. */
|
|
37
38
|
style?: StyleProp<ViewStyle>;
|
|
38
39
|
/** Override the label text styles. */
|
|
@@ -67,6 +68,6 @@ export type CheckboxItemProps = {
|
|
|
67
68
|
* />
|
|
68
69
|
* ```
|
|
69
70
|
*/
|
|
70
|
-
declare
|
|
71
|
+
declare const CheckboxItem: React.ForwardRefExoticComponent<CheckboxItemProps & React.RefAttributes<View>>;
|
|
71
72
|
export default CheckboxItem;
|
|
72
73
|
//# sourceMappingURL=CheckboxItem.d.ts.map
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { type StyleProp, type ViewStyle } from 'react-native';
|
|
3
|
+
import type { Modes } from '../../design-tokens';
|
|
3
4
|
export type ChipGroupProps = {
|
|
4
5
|
/**
|
|
5
6
|
* Child elements to be rendered inside the chip group.
|
|
@@ -10,7 +11,7 @@ export type ChipGroupProps = {
|
|
|
10
11
|
* Mode configuration for design tokens.
|
|
11
12
|
* These modes are passed down to all child components.
|
|
12
13
|
*/
|
|
13
|
-
modes?:
|
|
14
|
+
modes?: Modes;
|
|
14
15
|
/**
|
|
15
16
|
* Additional styles for the container.
|
|
16
17
|
*/
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { type StyleProp, type ViewStyle } from 'react-native';
|
|
3
|
+
import type { Modes } from '../../design-tokens';
|
|
3
4
|
export type ChipSelectProps = {
|
|
4
5
|
/**
|
|
5
6
|
* Label text to display.
|
|
@@ -19,7 +20,7 @@ export type ChipSelectProps = {
|
|
|
19
20
|
/**
|
|
20
21
|
* Modes for design token resolution.
|
|
21
22
|
*/
|
|
22
|
-
modes?:
|
|
23
|
+
modes?: Modes;
|
|
23
24
|
/**
|
|
24
25
|
* Optional style overrides.
|
|
25
26
|
*/
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { View, type StyleProp, type TextStyle, type ViewStyle } from 'react-native';
|
|
3
|
+
import type { Modes } from '../../design-tokens';
|
|
3
4
|
type CircularProgressBarBaseProps = Omit<React.ComponentProps<typeof View>, 'children' | 'style'>;
|
|
4
5
|
export type CircularProgressBarState = 'Active' | 'Inactive';
|
|
5
6
|
export type CircularProgressBarProps = CircularProgressBarBaseProps & {
|
|
@@ -18,7 +19,7 @@ export type CircularProgressBarProps = CircularProgressBarBaseProps & {
|
|
|
18
19
|
*/
|
|
19
20
|
supportText?: string;
|
|
20
21
|
/** Design token modes forwarded to token lookups. */
|
|
21
|
-
modes?:
|
|
22
|
+
modes?: Modes;
|
|
22
23
|
/** Container style override. */
|
|
23
24
|
style?: StyleProp<ViewStyle>;
|
|
24
25
|
/** Track stroke style override. */
|
package/lib/typescript/src/components/CircularProgressBarDoted/CircularProgressBarDoted.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { View, type StyleProp, type TextStyle, type ViewStyle } from 'react-native';
|
|
3
|
+
import type { Modes } from '../../design-tokens';
|
|
3
4
|
type CircularProgressBarDotedBaseProps = Omit<React.ComponentProps<typeof View>, 'children' | 'style'>;
|
|
4
5
|
export type CircularProgressBarDotedProps = CircularProgressBarDotedBaseProps & {
|
|
5
6
|
/** Progress value. Clamped between 0 and 100. */
|
|
@@ -17,7 +18,7 @@ export type CircularProgressBarDotedProps = CircularProgressBarDotedBaseProps &
|
|
|
17
18
|
/** Called when the tier row is pressed. */
|
|
18
19
|
onTierPress?: () => void;
|
|
19
20
|
/** Design token modes forwarded to token lookups and slot children. */
|
|
20
|
-
modes?:
|
|
21
|
+
modes?: Modes;
|
|
21
22
|
/** Slot rendered in the center of the dotted ring. Receives `modes` recursively. */
|
|
22
23
|
children?: React.ReactNode;
|
|
23
24
|
/** Container style override. */
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { View, type StyleProp, type TextStyle, type ViewStyle } from 'react-native';
|
|
3
|
+
import type { Modes } from '../../design-tokens';
|
|
3
4
|
type CircularRatingBaseProps = Omit<React.ComponentProps<typeof View>, 'children' | 'style'>;
|
|
4
5
|
export type CircularRatingProps = CircularRatingBaseProps & {
|
|
5
6
|
/** Rating value. Clamped by CircularProgressBarDoted between 0 and 100. */
|
|
@@ -29,7 +30,7 @@ export type CircularRatingProps = CircularRatingBaseProps & {
|
|
|
29
30
|
/** Optional nudge slot. Receives `modes` recursively. */
|
|
30
31
|
nudgeSlot?: React.ReactNode;
|
|
31
32
|
/** Design token modes forwarded to token lookups and child components. */
|
|
32
|
-
modes?:
|
|
33
|
+
modes?: Modes;
|
|
33
34
|
/** Optional container style overrides. */
|
|
34
35
|
style?: StyleProp<ViewStyle>;
|
|
35
36
|
/** Optional rating ring wrapper style overrides. */
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { type StyleProp, type TextStyle, type ViewStyle } from 'react-native';
|
|
3
|
+
import type { Modes } from '../../design-tokens';
|
|
3
4
|
/** Where the value/label text sits relative to the circle. */
|
|
4
5
|
export type ClusterBubbleLabelPlacement = 'inside' | 'outside' | 'auto';
|
|
5
6
|
/** Which side of the circle an *outside* label is anchored to. */
|
|
@@ -57,7 +58,7 @@ export type ClusterBubbleProps = {
|
|
|
57
58
|
/** Style override for the outer container. */
|
|
58
59
|
style?: StyleProp<ViewStyle>;
|
|
59
60
|
/** Design token modes for theming (e.g. `{ 'Color Mode': 'Light' }`). */
|
|
60
|
-
modes?:
|
|
61
|
+
modes?: Modes;
|
|
61
62
|
/** Accessibility label. Defaults to a `value + label` composite. */
|
|
62
63
|
accessibilityLabel?: string;
|
|
63
64
|
};
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { type ImageSourcePropType, type StyleProp, type ViewStyle } from 'react-native';
|
|
3
|
+
import type { Modes } from '../../design-tokens';
|
|
4
|
+
/**
|
|
5
|
+
* A single product/plan column rendered as a selection card at the top of the
|
|
6
|
+
* table. The card order maps 1:1 to each {@link CompareTableRow}'s `values`.
|
|
7
|
+
*/
|
|
8
|
+
export type CompareTableColumn = {
|
|
9
|
+
/** Product / plan name shown under the image. */
|
|
10
|
+
label?: string;
|
|
11
|
+
/** Thumbnail / logo image. Accepts a URL string or an RN image source. */
|
|
12
|
+
imageSource?: ImageSourcePropType | string;
|
|
13
|
+
/** CTA link text (e.g. "View details"). Omit to hide the link. */
|
|
14
|
+
actionLabel?: string;
|
|
15
|
+
/** Handler for the CTA link. Implies the link is shown. */
|
|
16
|
+
onActionPress?: () => void;
|
|
17
|
+
/** When provided, renders a tappable close icon to remove the column. */
|
|
18
|
+
onRemove?: () => void;
|
|
19
|
+
/** Stable key. Falls back to the label / index. */
|
|
20
|
+
key?: React.Key;
|
|
21
|
+
};
|
|
22
|
+
/**
|
|
23
|
+
* Value rendered inside a comparison cell.
|
|
24
|
+
* - `string` / `number` → rendered as value text.
|
|
25
|
+
* - `false` → renders the muted "not available" cross icon.
|
|
26
|
+
* - any React element → rendered as-is (e.g. a `Badge`, `MoneyValue`, icon…).
|
|
27
|
+
* - `null` / `undefined` / `true` → empty cell.
|
|
28
|
+
*/
|
|
29
|
+
export type CompareTableCellValue = string | number | boolean | null | undefined | React.ReactElement;
|
|
30
|
+
export type CompareTableRow = {
|
|
31
|
+
/** One value per column, in the same order as `columns`. */
|
|
32
|
+
values: CompareTableCellValue[];
|
|
33
|
+
/** Stable key. Falls back to the index. */
|
|
34
|
+
key?: React.Key;
|
|
35
|
+
};
|
|
36
|
+
/**
|
|
37
|
+
* A collapsible section. Each section renders as an `Accordion` whose body is a
|
|
38
|
+
* comparison table that spans the same columns as the selection cards.
|
|
39
|
+
*/
|
|
40
|
+
export type CompareTableSection = {
|
|
41
|
+
/** Accordion header label, e.g. "Fees & charges". */
|
|
42
|
+
title: string;
|
|
43
|
+
/** Optional full-width header row shown at the top of the table body. */
|
|
44
|
+
header?: string;
|
|
45
|
+
/** Comparison rows; each row's `values` map 1:1 to `columns`. */
|
|
46
|
+
rows: CompareTableRow[];
|
|
47
|
+
/** Initial expanded state. Defaults to `true` for the first section. */
|
|
48
|
+
defaultExpanded?: boolean;
|
|
49
|
+
/** Stable key. Falls back to the title / index. */
|
|
50
|
+
key?: React.Key;
|
|
51
|
+
};
|
|
52
|
+
export type CompareTableProps = {
|
|
53
|
+
/**
|
|
54
|
+
* Product / plan columns rendered as selection cards. Their order maps 1:1
|
|
55
|
+
* to each row's `values` array. Supports any number of columns.
|
|
56
|
+
*/
|
|
57
|
+
columns?: CompareTableColumn[];
|
|
58
|
+
/** Collapsible comparison sections. */
|
|
59
|
+
sections?: CompareTableSection[];
|
|
60
|
+
/**
|
|
61
|
+
* When provided, renders an "Add a card" tile after the columns. Hidden once
|
|
62
|
+
* `columns.length` reaches `maxColumns`.
|
|
63
|
+
*/
|
|
64
|
+
onAddColumn?: () => void;
|
|
65
|
+
/** Label for the add-a-card tile. @default 'Add a card' */
|
|
66
|
+
addColumnLabel?: string;
|
|
67
|
+
/** Maximum number of columns before the add tile is hidden. @default 4 */
|
|
68
|
+
maxColumns?: number;
|
|
69
|
+
/** Design token modes for theming (e.g. `{ "Color Mode": "Light" }`). */
|
|
70
|
+
modes?: Modes;
|
|
71
|
+
/** Override the outer container style. */
|
|
72
|
+
style?: StyleProp<ViewStyle>;
|
|
73
|
+
};
|
|
74
|
+
/**
|
|
75
|
+
* CompareTable renders a product comparison surface: a row of selection cards
|
|
76
|
+
* (one per column) followed by one or more collapsible sections, each holding a
|
|
77
|
+
* comparison table whose cells line up beneath their column.
|
|
78
|
+
*
|
|
79
|
+
* The selection card is an internal sub-component and is intentionally not
|
|
80
|
+
* exported — it should only be used through `CompareTable`. Implementation of
|
|
81
|
+
* Figma node `5568:3496` (`Compare table`) with sub-component `5568:3487`
|
|
82
|
+
* (`selectioncard`).
|
|
83
|
+
*
|
|
84
|
+
* @component
|
|
85
|
+
*/
|
|
86
|
+
declare function CompareTable({ columns, sections, onAddColumn, addColumnLabel, maxColumns, modes, style, }: CompareTableProps): import("react/jsx-runtime").JSX.Element;
|
|
87
|
+
export default CompareTable;
|
|
88
|
+
//# sourceMappingURL=CompareTable.d.ts.map
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { type ImageSourcePropType, type StyleProp, type ViewStyle } from 'react-native';
|
|
3
|
+
import type { Modes } from '../../design-tokens';
|
|
4
|
+
/**
|
|
5
|
+
* A single slot in the {@link ComparisonBar}. Each item is either empty (the
|
|
6
|
+
* "Add" state — a tappable `+` capsule) or filled with an image (the
|
|
7
|
+
* "Image Added" state — the image plus a dismiss capsule in the corner).
|
|
8
|
+
*
|
|
9
|
+
* The presence of {@link ComparisonBarItem.imageSource} is what toggles the
|
|
10
|
+
* state: provide a source to show the image, leave it `undefined`/`null` to
|
|
11
|
+
* show the empty add slot. This keeps the component fully controlled — the
|
|
12
|
+
* `ComparisonBar` never owns the image state itself, so the consumer decides
|
|
13
|
+
* (e.g. after opening a file/asset picker) when and how an item flips between
|
|
14
|
+
* the two states.
|
|
15
|
+
*/
|
|
16
|
+
export type ComparisonBarItem = {
|
|
17
|
+
/**
|
|
18
|
+
* Stable identifier for this slot. Returned to callbacks so the consumer
|
|
19
|
+
* can target the exact item that was interacted with. Falls back to the
|
|
20
|
+
* array index when omitted.
|
|
21
|
+
*/
|
|
22
|
+
id?: string | number;
|
|
23
|
+
/**
|
|
24
|
+
* Image to render in the slot. When provided the slot renders in the
|
|
25
|
+
* "Image Added" state; when omitted/`null` it renders the empty "Add" state.
|
|
26
|
+
* Accepts the same shapes as the library `Image` component (remote URL
|
|
27
|
+
* string, `{ uri }`, or a `require()`d asset).
|
|
28
|
+
*/
|
|
29
|
+
imageSource?: ImageSourcePropType | string | null;
|
|
30
|
+
/** Accessibility label for the slot. Defaults to a generic add/remove label. */
|
|
31
|
+
accessibilityLabel?: string;
|
|
32
|
+
};
|
|
33
|
+
export type ComparisonBarProps = {
|
|
34
|
+
/**
|
|
35
|
+
* The slots rendered before the Compare button. Each entry controls its own
|
|
36
|
+
* add/image state via {@link ComparisonBarItem.imageSource}.
|
|
37
|
+
*/
|
|
38
|
+
items: ComparisonBarItem[];
|
|
39
|
+
/**
|
|
40
|
+
* Fired when an empty (Add) slot is tapped. The consumer is expected to react
|
|
41
|
+
* by opening whatever picker is appropriate and then updating that item's
|
|
42
|
+
* `imageSource` to flip it into the "Image Added" state — the component does
|
|
43
|
+
* not know how images are sourced. Receives the item's `id` (or index when no
|
|
44
|
+
* id was supplied) and the slot index.
|
|
45
|
+
*/
|
|
46
|
+
onItemPress?: (id: ComparisonBarItem['id'], index: number) => void;
|
|
47
|
+
/**
|
|
48
|
+
* Fired when a filled slot is tapped. For better mobile ergonomics the
|
|
49
|
+
* *entire* filled slot is the remove target (the dismiss capsule is just a
|
|
50
|
+
* visual affordance), so a fingertip anywhere on the item triggers this. The
|
|
51
|
+
* consumer is expected to clear that item's `imageSource` to return it to the
|
|
52
|
+
* "Add" state. Receives the item's `id` (or index) and the slot index.
|
|
53
|
+
*/
|
|
54
|
+
onItemRemove?: (id: ComparisonBarItem['id'], index: number) => void;
|
|
55
|
+
/** Fired when the Compare button is pressed. */
|
|
56
|
+
onCompare?: () => void;
|
|
57
|
+
/** Label for the trailing action button. Defaults to `"Compare"`. */
|
|
58
|
+
compareLabel?: string;
|
|
59
|
+
/**
|
|
60
|
+
* Explicitly controls the Compare button's *functional* disabled state — a
|
|
61
|
+
* truly disabled button is non-interactive (its `onPress` never fires), not
|
|
62
|
+
* just dimmed. Note that `modes` only affects appearance, so dimming the
|
|
63
|
+
* button via tokens does NOT stop taps; that is what this prop is for.
|
|
64
|
+
*
|
|
65
|
+
* When provided (a boolean), it always wins over
|
|
66
|
+
* {@link ComparisonBarProps.disableCompareWhenEmpty}. Leave it `undefined`
|
|
67
|
+
* to fall back to the auto behavior.
|
|
68
|
+
*/
|
|
69
|
+
compareDisabled?: boolean;
|
|
70
|
+
/**
|
|
71
|
+
* When `true` (default) the Compare button is automatically (and truly)
|
|
72
|
+
* disabled while no slot has an image — there is nothing to compare yet. Set
|
|
73
|
+
* to `false` to keep it tappable even when empty. Ignored when
|
|
74
|
+
* {@link ComparisonBarProps.compareDisabled} is set explicitly.
|
|
75
|
+
*/
|
|
76
|
+
disableCompareWhenEmpty?: boolean;
|
|
77
|
+
/** Mode configuration passed to the token resolver. */
|
|
78
|
+
modes?: Modes;
|
|
79
|
+
/** Style overrides for the outer floating card. */
|
|
80
|
+
style?: StyleProp<ViewStyle>;
|
|
81
|
+
};
|
|
82
|
+
/**
|
|
83
|
+
* ComparisonBar — a floating card that lets a user assemble a set of items to
|
|
84
|
+
* compare, then trigger the comparison.
|
|
85
|
+
*
|
|
86
|
+
* Each slot is fully controlled via its `imageSource`: an empty slot shows a
|
|
87
|
+
* tappable `+` (the "Add" state) and a filled slot shows the image with a
|
|
88
|
+
* dismiss capsule (the "Image Added" state). The component never sources or
|
|
89
|
+
* stores images itself — when an empty slot is pressed it fires `onItemPress`
|
|
90
|
+
* with the item's id/index so the consumer can open whatever picker is
|
|
91
|
+
* appropriate and then update that item's `imageSource` to flip its state.
|
|
92
|
+
* Tapping a filled slot (anywhere on it — a mobile-friendly hit target, with
|
|
93
|
+
* the dismiss capsule as a visual affordance) fires `onItemRemove` so the
|
|
94
|
+
* consumer can clear the source again.
|
|
95
|
+
*
|
|
96
|
+
* @example
|
|
97
|
+
* ```tsx
|
|
98
|
+
* const [items, setItems] = useState<ComparisonBarItem[]>([
|
|
99
|
+
* { id: 'a' }, { id: 'b' }, { id: 'c' }, { id: 'd' },
|
|
100
|
+
* ])
|
|
101
|
+
*
|
|
102
|
+
* <ComparisonBar
|
|
103
|
+
* items={items}
|
|
104
|
+
* onItemPress={async (id) => {
|
|
105
|
+
* const uri = await openImagePicker()
|
|
106
|
+
* setItems(prev => prev.map(it => it.id === id ? { ...it, imageSource: uri } : it))
|
|
107
|
+
* }}
|
|
108
|
+
* onItemRemove={(id) =>
|
|
109
|
+
* setItems(prev => prev.map(it => it.id === id ? { ...it, imageSource: null } : it))
|
|
110
|
+
* }
|
|
111
|
+
* onCompare={runComparison}
|
|
112
|
+
* />
|
|
113
|
+
* ```
|
|
114
|
+
*/
|
|
115
|
+
declare function ComparisonBar({ items, onItemPress, onItemRemove, onCompare, compareLabel, compareDisabled, disableCompareWhenEmpty, modes: propModes, style, }: ComparisonBarProps): import("react/jsx-runtime").JSX.Element;
|
|
116
|
+
declare const _default: React.MemoExoticComponent<typeof ComparisonBar>;
|
|
117
|
+
export default _default;
|
|
118
|
+
//# sourceMappingURL=ComparisonBar.d.ts.map
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { type StyleProp, type TextStyle, type ViewStyle } from 'react-native';
|
|
3
|
+
import type { Modes } from '../../design-tokens';
|
|
3
4
|
/**
|
|
4
5
|
* One entry in the {@link CoverageBarComparisonProps.bars} array.
|
|
5
6
|
*
|
|
@@ -41,7 +42,7 @@ export type CoverageBarComparisonItem = {
|
|
|
41
42
|
* Per-bar design token mode overrides. Merged on top of the parent `modes`
|
|
42
43
|
* and the per-index `Emphasis / DataViz` defaults injected by the parent.
|
|
43
44
|
*/
|
|
44
|
-
modes?:
|
|
45
|
+
modes?: Modes;
|
|
45
46
|
/** Per-bar accessibility label. */
|
|
46
47
|
accessibilityLabel?: string;
|
|
47
48
|
};
|
|
@@ -71,7 +72,7 @@ export type CoverageBarComparisonProps = {
|
|
|
71
72
|
*/
|
|
72
73
|
legendGap?: number;
|
|
73
74
|
/** Design token modes for theming (e.g. `{ 'Color Mode': 'Light' }`). */
|
|
74
|
-
modes?:
|
|
75
|
+
modes?: Modes;
|
|
75
76
|
/** Container style override. */
|
|
76
77
|
style?: StyleProp<ViewStyle>;
|
|
77
78
|
/** Style applied to the chart row (the bars container). */
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { View, type StyleProp, type TextStyle, type ViewStyle } from 'react-native';
|
|
3
3
|
import { type ButtonProps } from '../Button/Button';
|
|
4
|
+
import type { Modes } from '../../design-tokens';
|
|
4
5
|
type CoverageRingBaseProps = Omit<React.ComponentProps<typeof View>, 'children' | 'style'>;
|
|
5
6
|
export type CoverageRingProps = CoverageRingBaseProps & {
|
|
6
7
|
/**
|
|
@@ -59,7 +60,7 @@ export type CoverageRingProps = CoverageRingBaseProps & {
|
|
|
59
60
|
*/
|
|
60
61
|
children?: React.ReactNode;
|
|
61
62
|
/** Design token modes forwarded to token lookups and slot children. */
|
|
62
|
-
modes?:
|
|
63
|
+
modes?: Modes;
|
|
63
64
|
/** Container style override. */
|
|
64
65
|
style?: StyleProp<ViewStyle>;
|
|
65
66
|
/** Override the support-text style inside the ring. */
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { type ViewStyle, type StyleProp, type ImageSourcePropType } from 'react-native';
|
|
3
|
+
import type { Modes } from '../../design-tokens';
|
|
3
4
|
export type DebitCardProps = {
|
|
4
5
|
/** Cardholder name displayed in the footer */
|
|
5
6
|
cardholderName?: string;
|
|
@@ -18,7 +19,7 @@ export type DebitCardProps = {
|
|
|
18
19
|
/** Slot: custom content for the provider logo area (right side of header, after cardType text) */
|
|
19
20
|
providerLogoSlot?: React.ReactNode;
|
|
20
21
|
/** Mode configuration for design token resolution */
|
|
21
|
-
modes?:
|
|
22
|
+
modes?: Modes;
|
|
22
23
|
/** Container style overrides */
|
|
23
24
|
style?: StyleProp<ViewStyle>;
|
|
24
25
|
};
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { View, type StyleProp, type ViewStyle, type TextStyle } from 'react-native';
|
|
3
|
+
import type { Modes } from '../../design-tokens';
|
|
3
4
|
type DisclaimerProps = {
|
|
4
5
|
disclaimer?: string;
|
|
5
|
-
modes?:
|
|
6
|
+
modes?: Modes;
|
|
6
7
|
style?: StyleProp<ViewStyle>;
|
|
7
8
|
textStyle?: StyleProp<TextStyle>;
|
|
8
9
|
accessibilityLabel?: string;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { type ViewStyle, type StyleProp } from 'react-native';
|
|
2
|
+
import type { Modes } from '../../design-tokens';
|
|
2
3
|
export type DividerDirection = 'horizontal' | 'vertical';
|
|
3
4
|
export type DividerProps = {
|
|
4
5
|
/**
|
|
@@ -10,7 +11,7 @@ export type DividerProps = {
|
|
|
10
11
|
/**
|
|
11
12
|
* Mode configuration passed to the token resolver.
|
|
12
13
|
*/
|
|
13
|
-
modes?:
|
|
14
|
+
modes?: Modes;
|
|
14
15
|
/**
|
|
15
16
|
* Optional style overrides for the divider
|
|
16
17
|
*/
|