jfs-components 0.1.0 → 0.1.2
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 +8 -0
- package/lib/commonjs/components/AreaLineChart/AreaLineChart.js +1 -1
- package/lib/commonjs/components/Balance/Balance.js +17 -12
- package/lib/commonjs/components/Card/Card.js +2 -1
- package/lib/commonjs/components/CardFeedback/CardFeedback.js +2 -1
- package/lib/commonjs/components/Checkbox/Checkbox.js +2 -1
- package/lib/commonjs/components/Drawer/Drawer.js +13 -4
- package/lib/commonjs/components/DropdownInput/DropdownInput.js +1 -1
- package/lib/commonjs/components/FullscreenModal/FullscreenModal.js +62 -2
- package/lib/commonjs/components/Image/Image.js +11 -5
- package/lib/commonjs/components/LottiePlayer/loadNativeLottieView.js +8 -13
- package/lib/commonjs/components/Overlay/Overlay.js +92 -0
- package/lib/commonjs/components/PlanComparisonCard/PlanComparisonCard.js +2 -1
- package/lib/commonjs/components/TextInput/TextInput.js +2 -1
- package/lib/commonjs/components/docs/modeControls.js +116 -0
- package/lib/commonjs/components/index.js +7 -0
- package/lib/commonjs/design-tokens/JFSThemeProvider.js +1 -1
- package/lib/commonjs/design-tokens/figma-modes.generated.js +391 -0
- package/lib/commonjs/design-tokens/index.js +11 -0
- package/lib/commonjs/icons/registry.js +1 -1
- package/lib/module/components/Accordion/Accordion.js +1 -2
- package/lib/module/components/AreaLineChart/AreaLineChart.js +1 -1
- package/lib/module/components/Balance/Balance.js +18 -13
- package/lib/module/components/Card/Card.js +1 -2
- package/lib/module/components/CardFeedback/CardFeedback.js +1 -2
- package/lib/module/components/Checkbox/Checkbox.js +1 -2
- package/lib/module/components/Drawer/Drawer.js +12 -4
- package/lib/module/components/DropdownInput/DropdownInput.js +1 -1
- package/lib/module/components/FullscreenModal/FullscreenModal.js +64 -5
- package/lib/module/components/Image/Image.js +11 -5
- 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/OTP/OTP.js +1 -2
- package/lib/module/components/Overlay/Overlay.js +87 -0
- package/lib/module/components/PlanComparisonCard/PlanComparisonCard.js +1 -2
- package/lib/module/components/PoweredByLabel/PoweredByLabel.js +1 -2
- package/lib/module/components/RechargeCard/RechargeCard.js +1 -2
- package/lib/module/components/Section/Section.js +1 -2
- package/lib/module/components/TextInput/TextInput.js +1 -2
- package/lib/module/components/UpiHandle/UpiHandle.js +1 -2
- package/lib/module/components/docs/modeControls.js +111 -0
- package/lib/module/components/index.js +1 -0
- package/lib/module/design-tokens/JFSThemeProvider.js +1 -1
- package/lib/module/design-tokens/figma-modes.generated.js +387 -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 +0 -1
- package/lib/typescript/scripts/extract-component-tokens.d.ts +1 -1
- package/lib/typescript/scripts/generate-mode-types.d.ts +2 -0
- package/lib/typescript/scripts/retype-modes.d.cts +2 -0
- 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 +2 -1
- 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/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/Checkbox/Checkbox.d.ts +2 -1
- package/lib/typescript/src/components/CheckboxGroup/CheckboxGroup.d.ts +2 -1
- package/lib/typescript/src/components/CheckboxItem/CheckboxItem.d.ts +2 -1
- 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/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 +2 -1
- 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 +2 -1
- 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 +2 -1
- 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 +2 -1
- 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/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/ProductOverview/ProductOverview.d.ts +2 -1
- package/lib/typescript/src/components/ProgressBadge/ProgressBadge.d.ts +2 -1
- package/lib/typescript/src/components/Radio/Radio.d.ts +2 -1
- 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/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 +3 -2
- 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 +1 -0
- package/lib/typescript/src/design-tokens/JFSThemeProvider.d.ts +4 -3
- package/lib/typescript/src/design-tokens/figma-modes.generated.d.ts +264 -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 +2 -1
- package/package.json +3 -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 +2 -1
- 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/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/Checkbox/Checkbox.tsx +2 -1
- package/src/components/CheckboxGroup/CheckboxGroup.tsx +2 -1
- package/src/components/CheckboxItem/CheckboxItem.tsx +2 -1
- 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/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 +5 -4
- 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 +3 -2
- 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 +3 -2
- 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 +2 -1
- 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/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/ProductOverview/ProductOverview.tsx +2 -1
- package/src/components/ProgressBadge/ProgressBadge.tsx +2 -1
- package/src/components/Radio/Radio.tsx +2 -1
- 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/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 +3 -2
- 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 +1 -0
- package/src/design-tokens/JFSThemeProvider.tsx +4 -3
- package/src/design-tokens/figma-modes.generated.ts +396 -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 +3 -2
|
@@ -0,0 +1,264 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Every design-token collection and its available modes, keyed by the exact
|
|
3
|
+
* collection name used by the resolver and the `modes` prop.
|
|
4
|
+
*/
|
|
5
|
+
export declare const FIGMA_MODES: {
|
|
6
|
+
readonly "Accordion / Output": readonly ["Default"];
|
|
7
|
+
readonly "Accordion States": readonly ["Idle", "Hover", "Open", "Open Hover", "Disabled"];
|
|
8
|
+
readonly "AccordionCheckbox / Output": readonly ["Default"];
|
|
9
|
+
readonly "AccordionGroup / Output": readonly ["Default"];
|
|
10
|
+
readonly "AccountCard / Output": readonly ["Default"];
|
|
11
|
+
readonly Action: readonly ["True", "False"];
|
|
12
|
+
readonly "ActionFooter / Output": readonly ["Default"];
|
|
13
|
+
readonly "ActionNumpad / Output": readonly ["Default"];
|
|
14
|
+
readonly "ActionTile / Output": readonly ["Default"];
|
|
15
|
+
readonly "Allocation Comparison Chart / Output": readonly ["Default"];
|
|
16
|
+
readonly "AmountInput / Output": readonly ["Default"];
|
|
17
|
+
readonly "AppBar.MainPage / Output": readonly ["Default"];
|
|
18
|
+
readonly "AppBar.SubPage/ Output": readonly ["Default"];
|
|
19
|
+
readonly "Appearance / DataViz": readonly ["Primary", "Secondary", "Tertiary", "Quaternary", "Quinary", "Senary", "Neutral"];
|
|
20
|
+
readonly AppearanceBrand: readonly ["Primary", "Secondary", "Neutral", "Tertiary"];
|
|
21
|
+
readonly AppearanceSystem: readonly ["positive", "warning", "negative"];
|
|
22
|
+
readonly "Attached / Output": readonly ["Default"];
|
|
23
|
+
readonly "Avatar / Output": readonly ["Default"];
|
|
24
|
+
readonly "Avatar Group / Output": readonly ["Default"];
|
|
25
|
+
readonly "Avatar Size": readonly ["L", "M", "S"];
|
|
26
|
+
readonly "Avatar Type": readonly ["Avatar", "Icon", "Text"];
|
|
27
|
+
readonly "Axis / Output": readonly ["Default"];
|
|
28
|
+
readonly Background: readonly ["False", "True"];
|
|
29
|
+
readonly "Badge / Output": readonly ["Default"];
|
|
30
|
+
readonly "Balance / Output": readonly ["Default"];
|
|
31
|
+
readonly "BankAccountCard / Output": readonly ["Default"];
|
|
32
|
+
readonly "Benefit Card": readonly ["Default"];
|
|
33
|
+
readonly Blur: readonly ["Default"];
|
|
34
|
+
readonly "bottomNav / Output": readonly ["Default"];
|
|
35
|
+
readonly "BottomNavItem / Output": readonly ["Default"];
|
|
36
|
+
readonly "BottomNavItem / State": readonly ["Idle", "Active"];
|
|
37
|
+
readonly Brand: readonly ["Jio Finance"];
|
|
38
|
+
readonly "Brand Chip / Output": readonly ["Default"];
|
|
39
|
+
readonly "Button / Output": readonly ["Default"];
|
|
40
|
+
readonly "Button / Size": readonly ["M", "S", "XS"];
|
|
41
|
+
readonly "Button / State": readonly ["Idle", "Hover", "Pressed", "Disabled"];
|
|
42
|
+
readonly "ButtonGroup / Output": readonly ["Default"];
|
|
43
|
+
readonly "Calendar Glyph / Output": readonly ["Default"];
|
|
44
|
+
readonly "Calendar Glyph State": readonly ["Idle", "notSaved", "saved"];
|
|
45
|
+
readonly "Card / Output": readonly ["Default"];
|
|
46
|
+
readonly "Card Feedback / Output": readonly ["Default"];
|
|
47
|
+
readonly "Card.Media": readonly ["Default"];
|
|
48
|
+
readonly "Card/CTA / Output": readonly ["Default"];
|
|
49
|
+
readonly "Card/Insight": readonly ["Mode 1"];
|
|
50
|
+
readonly "Card/ProviderInfo / Output": readonly ["Default"];
|
|
51
|
+
readonly "CardAdvisory / Output": readonly ["Default"];
|
|
52
|
+
readonly cardsShared: readonly ["Default"];
|
|
53
|
+
readonly "Carousel / Output": readonly ["Default"];
|
|
54
|
+
readonly "CarouselCardAccounts / Output": readonly ["Default"];
|
|
55
|
+
readonly "checkbox / Output": readonly ["Default"];
|
|
56
|
+
readonly "Checkbox / Output": readonly ["Default"];
|
|
57
|
+
readonly "Checkbox states": readonly ["Idle", "Hover", "Focus", "Focus Selected", "Selected Hover", "Disabled/Active", "Disabled", "Selected"];
|
|
58
|
+
readonly "CheckboxGroup / Output": readonly ["Default"];
|
|
59
|
+
readonly "CheckboxItem / Output": readonly ["Default"];
|
|
60
|
+
readonly "Chip / Output": readonly ["Default"];
|
|
61
|
+
readonly "Chip lineHeight": readonly ["Default"];
|
|
62
|
+
readonly "ChipGroup / Output": readonly ["Default"];
|
|
63
|
+
readonly "ChipSelect / Output": readonly ["Default"];
|
|
64
|
+
readonly "ChipSelect State": readonly ["Idle", "Active"];
|
|
65
|
+
readonly "Circular Progress Bar / Doted": readonly ["Default"];
|
|
66
|
+
readonly "Circular Rating / Output": readonly ["Defult"];
|
|
67
|
+
readonly "circularProgressBar / Output": readonly ["Default"];
|
|
68
|
+
readonly "circularProgressBar Size": readonly ["S", "M"];
|
|
69
|
+
readonly "clusterBubble / Output": readonly ["Default"];
|
|
70
|
+
readonly "Color Mode": readonly ["Light", "Dark"];
|
|
71
|
+
readonly Confidence: readonly ["High", "Medium", "Low", "None"];
|
|
72
|
+
readonly "ContentSheet / Output": readonly ["Default"];
|
|
73
|
+
readonly Context: readonly ["Default", "Nudge&Alert", "CTACard", "ListItem"];
|
|
74
|
+
readonly Context2: readonly ["Default", "AppBar"];
|
|
75
|
+
readonly Context3: readonly ["Default", "Transaction Bubble", "Balance & Cards", "Amount Input"];
|
|
76
|
+
readonly Context4: readonly ["Default", "Chip", "Button"];
|
|
77
|
+
readonly context5: readonly ["Default", "Fullscreen Modal"];
|
|
78
|
+
readonly context7: readonly ["Default", "Card"];
|
|
79
|
+
readonly "Contrast Context": readonly ["on dark", "on light"];
|
|
80
|
+
readonly "Conversation Feed / Output": readonly ["Default"];
|
|
81
|
+
readonly "Coverage Bar Comparison / Output": readonly ["Default"];
|
|
82
|
+
readonly "CoverageRing / Output": readonly ["Mode 1"];
|
|
83
|
+
readonly "CTACard / Output": readonly ["Default"];
|
|
84
|
+
readonly "DataViz / Output": readonly ["Default"];
|
|
85
|
+
readonly "DebitCard / Output": readonly ["Default"];
|
|
86
|
+
readonly "DebitCard brand": readonly ["JFS", "SBI"];
|
|
87
|
+
readonly "DebitCardStack / Output": readonly ["Default"];
|
|
88
|
+
readonly "DetailItem / Output": readonly ["Default"];
|
|
89
|
+
readonly "Disclaimer / Output": readonly ["Default"];
|
|
90
|
+
readonly "Divider / Output": readonly ["Default"];
|
|
91
|
+
readonly "Donut Chart / Output": readonly ["Default"];
|
|
92
|
+
readonly "Drawer / Output": readonly ["Default"];
|
|
93
|
+
readonly "Dropdown / Output": readonly ["Default"];
|
|
94
|
+
readonly "Dropdown Item / Output": readonly ["Default"];
|
|
95
|
+
readonly "Dropdown Item State": readonly ["Idle", "Selected"];
|
|
96
|
+
readonly Emphasis: readonly ["High", "Medium", "Low"];
|
|
97
|
+
readonly "Emphasis / DataViz": readonly ["High", "Medium", "Low"];
|
|
98
|
+
readonly "EmptyState / Output": readonly ["Default"];
|
|
99
|
+
readonly "ExpandableCheckbox / Output": readonly ["Default"];
|
|
100
|
+
readonly "Feedback / Output": readonly ["Default"];
|
|
101
|
+
readonly "filterBar / Output": readonly ["Default"];
|
|
102
|
+
readonly "FinancialConditionCard / Output": readonly ["Default"];
|
|
103
|
+
readonly "Form / Output": readonly ["Default"];
|
|
104
|
+
readonly "FormField / Output": readonly ["Default"];
|
|
105
|
+
readonly "FormField States": readonly ["Idle", "Active", "Read Only", "Error", "Disabled"];
|
|
106
|
+
readonly FullScreenModal: readonly ["Default"];
|
|
107
|
+
readonly Gap: readonly ["S", "M", "L", "None"];
|
|
108
|
+
readonly "Gauge / Output": readonly ["Default"];
|
|
109
|
+
readonly "Heading / Output": readonly ["Default"];
|
|
110
|
+
readonly "Heading text": readonly ["Default", "Slot"];
|
|
111
|
+
readonly "Holdings card / Output": readonly ["Default"];
|
|
112
|
+
readonly "HStack / Output": readonly ["Default"];
|
|
113
|
+
readonly "Icon / Output": readonly ["Default"];
|
|
114
|
+
readonly "Icon Button / Output": readonly ["Default"];
|
|
115
|
+
readonly "Icon Capsule / Output": readonly ["Default"];
|
|
116
|
+
readonly "Icon Capsule Size": readonly ["M", "L", "S"];
|
|
117
|
+
readonly "Image / Output": readonly ["Default"];
|
|
118
|
+
readonly "Input / Output": readonly ["Default"];
|
|
119
|
+
readonly "Input/PINSlot States": readonly ["Idle", "Active", "Error"];
|
|
120
|
+
readonly "Input/PINSlot / Output": readonly ["Default"];
|
|
121
|
+
readonly "InputField / Output": readonly ["Default"];
|
|
122
|
+
readonly InputState: readonly ["Idle", "Active"];
|
|
123
|
+
readonly "Institution Badge / Output": readonly ["Default"];
|
|
124
|
+
readonly isActive: readonly ["False", "True"];
|
|
125
|
+
readonly "lazyList / Output": readonly ["Default"];
|
|
126
|
+
readonly "LinearMeter / Output": readonly ["Default"];
|
|
127
|
+
readonly "LinearProgress / Output": readonly ["Default"];
|
|
128
|
+
readonly "LinearProgress Size": readonly ["M", "L"];
|
|
129
|
+
readonly "Link / Output": readonly ["Default"];
|
|
130
|
+
readonly "List Item / Output": readonly ["Default"];
|
|
131
|
+
readonly "List Item Style": readonly ["Default", "Boxed", "Minimal"];
|
|
132
|
+
readonly "listGroup / Output": readonly ["Default"];
|
|
133
|
+
readonly "ListItem State": readonly ["Idle", "Active"];
|
|
134
|
+
readonly "LottieIntroBlock / Output": readonly ["Default"];
|
|
135
|
+
readonly "Media / Output": readonly ["L", "M", "S"];
|
|
136
|
+
readonly MediaBlock: readonly ["IconCapsule", "Image"];
|
|
137
|
+
readonly "MerchantProfile / Output": readonly ["Default"];
|
|
138
|
+
readonly "Message Direction": readonly ["Incoming (Left)", "Outgoing (Right)"];
|
|
139
|
+
readonly "Message Row / Output": readonly ["Default"];
|
|
140
|
+
readonly "MessageField / Output": readonly ["Default"];
|
|
141
|
+
readonly "MetricLegendItem / Output": readonly ["Default"];
|
|
142
|
+
readonly "Money Value / Output": readonly ["Default"];
|
|
143
|
+
readonly "MonthlyStatusGrid / Output": readonly ["Default"];
|
|
144
|
+
readonly Multipliers: readonly ["Idle"];
|
|
145
|
+
readonly NavArrow: readonly ["Default"];
|
|
146
|
+
readonly "NavArrow / Output": readonly ["Default"];
|
|
147
|
+
readonly "NavArrow Direction": readonly ["Left&Right", "Top&Bottom"];
|
|
148
|
+
readonly "NoteInput / Output": readonly ["Default"];
|
|
149
|
+
readonly "Nudge / Output": readonly ["Default"];
|
|
150
|
+
readonly "Nudge padding": readonly ["Default", "None"];
|
|
151
|
+
readonly "Numpad / Output": readonly ["Default"];
|
|
152
|
+
readonly "OTP / Output": readonly ["Mode 1"];
|
|
153
|
+
readonly "Overlay / Output": readonly ["Mode 1"];
|
|
154
|
+
readonly Padding: readonly ["Default", "None"];
|
|
155
|
+
readonly "Page type": readonly ["MainPage", "SubPage", "JioPlus"];
|
|
156
|
+
readonly "PageHero / Output": readonly ["Default"];
|
|
157
|
+
readonly "PaymnetFeedback / Output": readonly ["Default"];
|
|
158
|
+
readonly peekOffset: readonly ["Medium", "Small", "Large", "None"];
|
|
159
|
+
readonly Placement: readonly ["Prefix", "Suffix"];
|
|
160
|
+
readonly "PlanComparisonCard / Output": readonly ["Default"];
|
|
161
|
+
readonly "Popup / Output": readonly ["Default"];
|
|
162
|
+
readonly "PortfolioHero / Output": readonly ["Default"];
|
|
163
|
+
readonly PoweredByLabel: readonly ["Default"];
|
|
164
|
+
readonly "ProductLabel / Output": readonly ["Default"];
|
|
165
|
+
readonly "ProductOverview / Output": readonly ["Default"];
|
|
166
|
+
readonly "ProgressBadge / Output": readonly ["Default"];
|
|
167
|
+
readonly "QR code / Output": readonly ["Idle"];
|
|
168
|
+
readonly "Radio / Output": readonly ["Default"];
|
|
169
|
+
readonly Radius: readonly ["S", "M", "L", "None"];
|
|
170
|
+
readonly "RangeTrack / Output": readonly ["Default"];
|
|
171
|
+
readonly "RechargeCard / Output": readonly ["Default"];
|
|
172
|
+
readonly rotfl: readonly ["Default"];
|
|
173
|
+
readonly "SavingsGoalSummary / Output": readonly ["Default"];
|
|
174
|
+
readonly "Screen / Output": readonly ["Default"];
|
|
175
|
+
readonly "SearchFilterBar / Output": readonly ["Default"];
|
|
176
|
+
readonly "Section / Output": readonly ["Defult"];
|
|
177
|
+
readonly "SectionBentoGrid / Output": readonly ["Default"];
|
|
178
|
+
readonly "Segment Indicator / Output": readonly ["Default"];
|
|
179
|
+
readonly "SegmentedControl / Output": readonly ["Default"];
|
|
180
|
+
readonly "SegmentedControl/Segment": readonly ["Idle", "Active"];
|
|
181
|
+
readonly "SegmentedControl/Segment / Output": readonly ["Default"];
|
|
182
|
+
readonly "SegmentedTrack / Output": readonly ["Default"];
|
|
183
|
+
readonly Selectable: readonly ["False", "True"];
|
|
184
|
+
readonly "Semantic Intent": readonly ["Brand", "System"];
|
|
185
|
+
readonly Skeleton: readonly ["Mode 1"];
|
|
186
|
+
readonly "Slot gap": readonly ["S", "M", "L", "XL"];
|
|
187
|
+
readonly "special button": readonly ["Default"];
|
|
188
|
+
readonly "Spinner / Output": readonly ["Default"];
|
|
189
|
+
readonly "statGroup / Output": readonly ["Default"];
|
|
190
|
+
readonly "StatItem / Output": readonly ["Default"];
|
|
191
|
+
readonly "StatItem Label Position ": readonly ["Top", "Bottom"];
|
|
192
|
+
readonly Status: readonly ["Auto", "Warning", "Error", "Success", "Loading", "Neutral"];
|
|
193
|
+
readonly "StatusHero / Output": readonly ["Default"];
|
|
194
|
+
readonly "Step Indicator / Output": readonly ["Default"];
|
|
195
|
+
readonly "Step Status": readonly ["active", "inactive", "complete", "error", "warning"];
|
|
196
|
+
readonly "Steper Item / Output": readonly ["Default"];
|
|
197
|
+
readonly "Stepper / Output": readonly ["Default"];
|
|
198
|
+
readonly "StrengthIndicator / Output": readonly ["Default"];
|
|
199
|
+
readonly Sufix: readonly ["False", "True"];
|
|
200
|
+
readonly "SummaryTile / Output": readonly ["Default"];
|
|
201
|
+
readonly "SupportText / Output": readonly ["Default"];
|
|
202
|
+
readonly "Swappable subComponent / Output": readonly ["Default"];
|
|
203
|
+
readonly "SwappableAmount / Output": readonly ["Default"];
|
|
204
|
+
readonly "tabItem / Output": readonly ["Default"];
|
|
205
|
+
readonly "Tabs / Output": readonly ["Default"];
|
|
206
|
+
readonly "Text / Output": readonly ["Default"];
|
|
207
|
+
readonly "textInput / Output": readonly ["Default"];
|
|
208
|
+
readonly "Thread Hero / Output": readonly ["Default"];
|
|
209
|
+
readonly "Title / Output": readonly ["Default"];
|
|
210
|
+
readonly "Title Level": readonly ["Default", "Bold"];
|
|
211
|
+
readonly "Toggle / Output": readonly ["Default"];
|
|
212
|
+
readonly "Toggle States": readonly ["Off", "On", "Disabled Off", "Disabled On"];
|
|
213
|
+
readonly "ToggleIconButton / Output": readonly ["Default"];
|
|
214
|
+
readonly "tooltip / Output": readonly ["Default"];
|
|
215
|
+
readonly "Tost Output": readonly ["Default"];
|
|
216
|
+
readonly "Transaction Status": readonly ["Request", "Paid", "Declined", "Expired"];
|
|
217
|
+
readonly "Transaction Status / Output": readonly ["Default"];
|
|
218
|
+
readonly "TransactionBubble / Output": readonly ["Default"];
|
|
219
|
+
readonly "TransationDetails / Output": readonly ["Default"];
|
|
220
|
+
readonly "UPI Handle / Output": readonly ["Default"];
|
|
221
|
+
readonly "ValueBar / Output": readonly ["Default"];
|
|
222
|
+
readonly "VStack / Output": readonly ["Default"];
|
|
223
|
+
readonly Weight: readonly ["Medium", "Regular", "Bold"];
|
|
224
|
+
};
|
|
225
|
+
/**
|
|
226
|
+
* Multi-mode collections each component actually uses (derived from the token
|
|
227
|
+
* tracing in `.token-metadata.json`). Drives the per-component Storybook mode
|
|
228
|
+
* select controls. Empty until `extract-component-tokens.js` has run.
|
|
229
|
+
*/
|
|
230
|
+
export declare const FIGMA_COMPONENT_MODES: Record<string, readonly string[]>;
|
|
231
|
+
/**
|
|
232
|
+
* Allow the known literal values to drive autocomplete while still accepting any
|
|
233
|
+
* `string` — this keeps the typing fully backward compatible with dynamically
|
|
234
|
+
* computed / forced mode values.
|
|
235
|
+
*/
|
|
236
|
+
type LiteralUnion<T extends string> = T | (string & {});
|
|
237
|
+
/** Union of every valid collection name (the keys of a `modes` object). */
|
|
238
|
+
export type CollectionName = keyof typeof FIGMA_MODES;
|
|
239
|
+
/** Valid mode names for a given collection. */
|
|
240
|
+
export type ModeOf<C extends CollectionName> = (typeof FIGMA_MODES)[C][number];
|
|
241
|
+
/**
|
|
242
|
+
* The typed `modes` prop. Known collection-name keys and their mode values
|
|
243
|
+
* drive autocomplete, while an index signature (plus `boolean`/`number` values)
|
|
244
|
+
* keeps it fully backward compatible with dynamically-built, forced, or legacy
|
|
245
|
+
* `modes` objects — nothing that compiled before starts failing.
|
|
246
|
+
*
|
|
247
|
+
* @example
|
|
248
|
+
* const modes: Modes = { 'Color Mode': 'Dark', 'Page type': 'JioPlus' }
|
|
249
|
+
*/
|
|
250
|
+
export type Modes = {
|
|
251
|
+
[K in CollectionName]?: LiteralUnion<ModeOf<K>> | boolean | number;
|
|
252
|
+
} & {
|
|
253
|
+
[collection: string]: string | boolean | number | undefined;
|
|
254
|
+
};
|
|
255
|
+
/**
|
|
256
|
+
* Strict variant: only real collection-name keys and exact mode values are
|
|
257
|
+
* allowed (no `string` escape hatch, no unknown keys). Opt in when you want
|
|
258
|
+
* typos in mode keys/values to be a compile error.
|
|
259
|
+
*/
|
|
260
|
+
export type StrictModes = {
|
|
261
|
+
[K in CollectionName]?: ModeOf<K>;
|
|
262
|
+
};
|
|
263
|
+
export {};
|
|
264
|
+
//# sourceMappingURL=figma-modes.generated.d.ts.map
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* Auto-generated from SVG files in src/icons/
|
|
5
5
|
* DO NOT EDIT MANUALLY - Run "npm run icons:generate" to regenerate
|
|
6
6
|
*
|
|
7
|
-
* Generated: 2026-06-
|
|
7
|
+
* Generated: 2026-06-10T14:28:21.260Z
|
|
8
8
|
*/
|
|
9
9
|
export declare const iconRegistry: Record<string, {
|
|
10
10
|
path: string;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { type DimensionValue, type StyleProp, type ViewStyle } from 'react-native';
|
|
3
3
|
import { type SkeletonKind } from './shimmer-tokens';
|
|
4
|
+
import type { Modes } from '../design-tokens';
|
|
4
5
|
export interface SkeletonProps {
|
|
5
6
|
/**
|
|
6
7
|
* Visual category — controls only the corner-radius token. Sizes are still
|
|
@@ -21,7 +22,7 @@ export interface SkeletonProps {
|
|
|
21
22
|
* Modes for token resolution (forwarded to `getVariableByName`). Most
|
|
22
23
|
* consumers can omit this — defaults work for every standard mode.
|
|
23
24
|
*/
|
|
24
|
-
modes?:
|
|
25
|
+
modes?: Modes;
|
|
25
26
|
}
|
|
26
27
|
/**
|
|
27
28
|
* Atomic skeleton placeholder. Renders a base rectangle (background colour +
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
+
import type { Modes } from '../design-tokens';
|
|
2
3
|
/**
|
|
3
4
|
* A shared, frozen empty modes object.
|
|
4
5
|
*
|
|
@@ -18,7 +19,7 @@ export declare const EMPTY_MODES: Readonly<Record<string, any>>;
|
|
|
18
19
|
* Helper function to recursively clone children and pass modes prop to components that accept it.
|
|
19
20
|
* This ensures that all child components in slots receive the modes prop from the parent.
|
|
20
21
|
*/
|
|
21
|
-
export declare function cloneChildrenWithModes(children: React.ReactNode, modes:
|
|
22
|
+
export declare function cloneChildrenWithModes(children: React.ReactNode, modes: Modes, forcedModes?: Modes): React.ReactNode[];
|
|
22
23
|
/**
|
|
23
24
|
* Flattens React children, extracting them from Fragments.
|
|
24
25
|
* Useful for Group components that need to process individual items (e.g., for layout or styling)
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "jfs-components",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.2",
|
|
4
4
|
"description": "React Native Jio Finance Components Library",
|
|
5
5
|
"author": "sunshuaiqi@gmail.com",
|
|
6
6
|
"license": "MIT",
|
|
@@ -31,8 +31,9 @@
|
|
|
31
31
|
"build-react": "webpack --mode production",
|
|
32
32
|
"start-react": "webpack-dev-server --config ./webpack.config.js --mode development",
|
|
33
33
|
"extract-tokens": "node scripts/extract-component-tokens.js",
|
|
34
|
+
"generate-mode-types": "node scripts/generate-mode-types.js",
|
|
34
35
|
"generate-docs": "node scripts/generate-component-docs.js",
|
|
35
|
-
"prestorybook-web": "npm run extract-tokens && npm run generate-docs",
|
|
36
|
+
"prestorybook-web": "npm run extract-tokens && npm run generate-mode-types && npm run generate-docs",
|
|
36
37
|
"storybook-web": "storybook dev -p 6006",
|
|
37
38
|
"build:storybook-web": "storybook build",
|
|
38
39
|
"deploy:storybook": "vercel --prod",
|
|
@@ -15,6 +15,7 @@ import { getVariableByName } from '../../design-tokens/figma-variables-resolver'
|
|
|
15
15
|
import Icon from '../../icons/Icon'
|
|
16
16
|
import { usePressableWebSupport, type WebAccessibilityProps } from '../../utils/web-platform-utils'
|
|
17
17
|
import { EMPTY_MODES, cloneChildrenWithModes } from '../../utils/react-utils'
|
|
18
|
+
import type { Modes } from '../../design-tokens'
|
|
18
19
|
|
|
19
20
|
// Enable LayoutAnimation on Android
|
|
20
21
|
if (Platform.OS === 'android' && UIManager.setLayoutAnimationEnabledExperimental) {
|
|
@@ -75,7 +76,7 @@ export type AccordionProps = {
|
|
|
75
76
|
/** Content to display when the accordion is expanded (Figma Slot: 'content') */
|
|
76
77
|
children?: React.ReactNode;
|
|
77
78
|
/** Modes object passed to getVariableByName for all design tokens */
|
|
78
|
-
modes?:
|
|
79
|
+
modes?: Modes;
|
|
79
80
|
/** Optional container style overrides */
|
|
80
81
|
style?: StyleProp<ViewStyle>;
|
|
81
82
|
/** Accessibility label for screen readers. If not provided, uses title */
|
|
@@ -15,6 +15,7 @@ import { EMPTY_MODES, cloneChildrenWithModes } from '../../utils/react-utils'
|
|
|
15
15
|
import Checkbox from '../Checkbox/Checkbox'
|
|
16
16
|
import Divider from '../Divider/Divider'
|
|
17
17
|
import Icon from '../../icons/Icon'
|
|
18
|
+
import type { Modes } from '../../design-tokens'
|
|
18
19
|
|
|
19
20
|
if (Platform.OS === 'android' && UIManager.setLayoutAnimationEnabledExperimental) {
|
|
20
21
|
UIManager.setLayoutAnimationEnabledExperimental(true)
|
|
@@ -46,7 +47,7 @@ export type AccordionCheckboxProps = {
|
|
|
46
47
|
*/
|
|
47
48
|
children?: React.ReactNode
|
|
48
49
|
/** Design token modes for theming (e.g. `{ 'Color Mode': 'Light' }`). */
|
|
49
|
-
modes?:
|
|
50
|
+
modes?: Modes
|
|
50
51
|
/** Override outer container styles. */
|
|
51
52
|
style?: StyleProp<ViewStyle>
|
|
52
53
|
/** Accessibility label for the header press target. Defaults to `title`. */
|
|
@@ -15,6 +15,7 @@ import {
|
|
|
15
15
|
import { getVariableByName } from '../../design-tokens/figma-variables-resolver'
|
|
16
16
|
import { EMPTY_MODES, cloneChildrenWithModes } from '../../utils/react-utils'
|
|
17
17
|
import Icon from '../../icons/Icon'
|
|
18
|
+
import type { Modes } from '../../design-tokens'
|
|
18
19
|
|
|
19
20
|
const IS_IOS = Platform.OS === 'ios'
|
|
20
21
|
const PRESS_DELAY = IS_IOS ? 130 : 0
|
|
@@ -80,7 +81,7 @@ export type AccountCardProps = {
|
|
|
80
81
|
/** Disable interaction (also dims the card). */
|
|
81
82
|
disabled?: boolean
|
|
82
83
|
/** Design token modes (e.g. `{ 'Color Mode': 'Light' }`). */
|
|
83
|
-
modes?:
|
|
84
|
+
modes?: Modes
|
|
84
85
|
/** Container style override. */
|
|
85
86
|
style?: StyleProp<ViewStyle>
|
|
86
87
|
/** Accessibility label (defaults to `title`). */
|
|
@@ -11,6 +11,7 @@ import {
|
|
|
11
11
|
import { getVariableByName } from '../../design-tokens/figma-variables-resolver'
|
|
12
12
|
import { EMPTY_MODES, cloneChildrenWithModes, flattenChildren } from '../../utils/react-utils'
|
|
13
13
|
import IconButton from '../IconButton/IconButton'
|
|
14
|
+
import type { Modes } from '../../design-tokens'
|
|
14
15
|
|
|
15
16
|
export type ActionFooterProps = {
|
|
16
17
|
/**
|
|
@@ -25,7 +26,7 @@ export type ActionFooterProps = {
|
|
|
25
26
|
* Automatically merged into every slot child via {@link cloneChildrenWithModes}
|
|
26
27
|
* so callers don't have to thread modes down by hand.
|
|
27
28
|
*/
|
|
28
|
-
modes?:
|
|
29
|
+
modes?: Modes
|
|
29
30
|
/**
|
|
30
31
|
* Optional style overrides for the outer container.
|
|
31
32
|
*/
|
|
@@ -4,6 +4,7 @@ import { getVariableByName } from '../../design-tokens/figma-variables-resolver'
|
|
|
4
4
|
import { useTokens } from '../../design-tokens/JFSThemeProvider'
|
|
5
5
|
import IconCapsule from '../IconCapsule/IconCapsule'
|
|
6
6
|
import { EMPTY_MODES } from '../../utils/react-utils'
|
|
7
|
+
import type { Modes } from '../../design-tokens'
|
|
7
8
|
|
|
8
9
|
export type ActionTileProps = {
|
|
9
10
|
/** Label text, e.g. "Cards" */
|
|
@@ -15,7 +16,7 @@ export type ActionTileProps = {
|
|
|
15
16
|
*/
|
|
16
17
|
icon?: React.ReactNode
|
|
17
18
|
/** Modes for design token resolution */
|
|
18
|
-
modes?:
|
|
19
|
+
modes?: Modes
|
|
19
20
|
/** Optional container style */
|
|
20
21
|
style?: ViewStyle
|
|
21
22
|
/** Callback when tile is pressed */
|
|
@@ -11,6 +11,7 @@ import { getVariableByName } from '../../design-tokens/figma-variables-resolver'
|
|
|
11
11
|
import { useTokens } from '../../design-tokens/JFSThemeProvider'
|
|
12
12
|
import { EMPTY_MODES } from '../../utils/react-utils'
|
|
13
13
|
import MetricLegendItem from '../MetricLegendItem/MetricLegendItem'
|
|
14
|
+
import type { Modes } from '../../design-tokens'
|
|
14
15
|
|
|
15
16
|
/**
|
|
16
17
|
* One vertical pill in the {@link AllocationComparisonChartProps.data} array.
|
|
@@ -99,7 +100,7 @@ export type AllocationComparisonChartProps = {
|
|
|
99
100
|
*/
|
|
100
101
|
formatValue?: (value: number) => string
|
|
101
102
|
/** Design token modes for theming (e.g. `{ 'Color Mode': 'Light' }`). */
|
|
102
|
-
modes?:
|
|
103
|
+
modes?: Modes
|
|
103
104
|
/** Container style override. */
|
|
104
105
|
style?: StyleProp<ViewStyle>
|
|
105
106
|
/** Style applied to the bars row. */
|
|
@@ -5,6 +5,7 @@ import { useTokens } from '../../design-tokens/JFSThemeProvider'
|
|
|
5
5
|
import MoneyValue from '../MoneyValue/MoneyValue'
|
|
6
6
|
import NoteInput from '../NoteInput/NoteInput'
|
|
7
7
|
import { EMPTY_MODES } from '../../utils/react-utils'
|
|
8
|
+
import type { Modes } from '../../design-tokens'
|
|
8
9
|
|
|
9
10
|
export type AmountInputProps = {
|
|
10
11
|
/**
|
|
@@ -16,7 +17,7 @@ export type AmountInputProps = {
|
|
|
16
17
|
*/
|
|
17
18
|
noteInputSlot?: React.ReactNode
|
|
18
19
|
/** Modes for design token resolution */
|
|
19
|
-
modes?:
|
|
20
|
+
modes?: Modes
|
|
20
21
|
/** Optional container style */
|
|
21
22
|
style?: ViewStyle
|
|
22
23
|
}
|
|
@@ -5,6 +5,7 @@ import { useTokens } from '../../design-tokens/JFSThemeProvider'
|
|
|
5
5
|
|
|
6
6
|
import NavArrow from '../NavArrow/NavArrow'
|
|
7
7
|
import { cloneChildrenWithModes, EMPTY_MODES } from '../../utils/react-utils'
|
|
8
|
+
import type { Modes } from '../../design-tokens'
|
|
8
9
|
|
|
9
10
|
type AppBarType = 'MainPage' | 'SubPage'
|
|
10
11
|
|
|
@@ -54,7 +55,7 @@ export type AppBarProps = {
|
|
|
54
55
|
/**
|
|
55
56
|
* Token modes to override.
|
|
56
57
|
*/
|
|
57
|
-
modes?:
|
|
58
|
+
modes?: Modes;
|
|
58
59
|
/**
|
|
59
60
|
* Callback for the default leading slot press (e.g. back button).
|
|
60
61
|
*/
|
|
@@ -25,6 +25,7 @@ import { getVariableByName } from '../../design-tokens/figma-variables-resolver'
|
|
|
25
25
|
import { useTokens } from '../../design-tokens/JFSThemeProvider'
|
|
26
26
|
import { EMPTY_MODES } from '../../utils/react-utils'
|
|
27
27
|
import MetricLegendItem from '../MetricLegendItem/MetricLegendItem'
|
|
28
|
+
import type { Modes } from '../../design-tokens'
|
|
28
29
|
import {
|
|
29
30
|
buildAreaPath,
|
|
30
31
|
buildLineSegments,
|
|
@@ -141,7 +142,7 @@ export type AreaLineChartProps = {
|
|
|
141
142
|
/** Enable hover/press-drag interaction + tooltip. Defaults to `true`. */
|
|
142
143
|
interactive?: boolean
|
|
143
144
|
/** Design token modes for theming (e.g. `{ 'Color Mode': 'Light' }`). */
|
|
144
|
-
modes?:
|
|
145
|
+
modes?: Modes
|
|
145
146
|
/** Container style override. */
|
|
146
147
|
style?: StyleProp<ViewStyle>
|
|
147
148
|
/** Extra SVG-decorator children rendered on top of the default layers. */
|
|
@@ -182,7 +183,7 @@ type ChartContextValue = {
|
|
|
182
183
|
formatX: (label: string | number, index: number) => React.ReactNode
|
|
183
184
|
formatY: (value: number) => React.ReactNode
|
|
184
185
|
showDots: boolean
|
|
185
|
-
modes:
|
|
186
|
+
modes: Modes
|
|
186
187
|
}
|
|
187
188
|
|
|
188
189
|
const ChartContext = createContext<ChartContextValue | null>(null)
|
|
@@ -231,7 +232,7 @@ const appearanceFor = (index: number) =>
|
|
|
231
232
|
const resolveLineColor = (
|
|
232
233
|
color: string | undefined,
|
|
233
234
|
appearance: string,
|
|
234
|
-
modes:
|
|
235
|
+
modes: Modes
|
|
235
236
|
): string => {
|
|
236
237
|
if (color) return color
|
|
237
238
|
return (
|
|
@@ -248,7 +249,7 @@ const resolveAreaColor = (
|
|
|
248
249
|
color: string | undefined,
|
|
249
250
|
lineColor: string,
|
|
250
251
|
appearance: string,
|
|
251
|
-
modes:
|
|
252
|
+
modes: Modes
|
|
252
253
|
): string => {
|
|
253
254
|
if (color) return color
|
|
254
255
|
return (
|
|
@@ -281,7 +282,7 @@ const defaultFormatX = (label: string | number): React.ReactNode => String(label
|
|
|
281
282
|
* @component
|
|
282
283
|
*/
|
|
283
284
|
function AreaLineChart({
|
|
284
|
-
series,
|
|
285
|
+
series = [],
|
|
285
286
|
xLabels,
|
|
286
287
|
yMin,
|
|
287
288
|
yMax,
|
|
@@ -1017,7 +1018,7 @@ function ChartTooltip({
|
|
|
1017
1018
|
x: number
|
|
1018
1019
|
width: number
|
|
1019
1020
|
items: Array<{ key: string; label: string; value: React.ReactNode; color: string }>
|
|
1020
|
-
modes:
|
|
1021
|
+
modes: Modes
|
|
1021
1022
|
}) {
|
|
1022
1023
|
const [size, setSize] = useState<{ width: number; height: number } | null>(null)
|
|
1023
1024
|
|
|
@@ -1098,7 +1099,7 @@ function ChartLegend() {
|
|
|
1098
1099
|
// --- Shared hooks / utils --------------------------------------------------
|
|
1099
1100
|
|
|
1100
1101
|
/** Resolve `axisItem/*` typography tokens into a memoized text style. */
|
|
1101
|
-
function useAxisTypography(modes:
|
|
1102
|
+
function useAxisTypography(modes: Modes) {
|
|
1102
1103
|
return useMemo(() => {
|
|
1103
1104
|
const color = (getVariableByName('axisItem/color', modes) as string | null) ?? '#000000'
|
|
1104
1105
|
const fontFamily =
|
|
@@ -9,6 +9,7 @@ import {
|
|
|
9
9
|
import { useTokens } from '../../design-tokens/JFSThemeProvider'
|
|
10
10
|
import { getVariableByName } from '../../design-tokens/figma-variables-resolver'
|
|
11
11
|
import { cloneChildrenWithModes, EMPTY_MODES } from '../../utils/react-utils'
|
|
12
|
+
import type { Modes } from '../../design-tokens'
|
|
12
13
|
|
|
13
14
|
/**
|
|
14
15
|
* Anchor point on the main content where the attached `badge` is centered.
|
|
@@ -75,7 +76,7 @@ export type AttachedProps = Omit<ViewProps, 'children'> & {
|
|
|
75
76
|
*/
|
|
76
77
|
circular?: boolean
|
|
77
78
|
/** Mode configuration cascaded to the token resolver and all children. */
|
|
78
|
-
modes?:
|
|
79
|
+
modes?: Modes
|
|
79
80
|
style?: StyleProp<ViewStyle>
|
|
80
81
|
}
|
|
81
82
|
|
|
@@ -16,6 +16,7 @@ import { getVariableByName } from '../../design-tokens/figma-variables-resolver'
|
|
|
16
16
|
import { EMPTY_MODES } from '../../utils/react-utils'
|
|
17
17
|
import Skeleton from '../../skeleton/Skeleton'
|
|
18
18
|
import { useSkeleton } from '../../skeleton/SkeletonGroup'
|
|
19
|
+
import type { Modes } from '../../design-tokens'
|
|
19
20
|
|
|
20
21
|
const avatarImage = require('./31595e70c4181263f9971590224b12934b280c9b.png')
|
|
21
22
|
|
|
@@ -63,7 +64,7 @@ interface AvatarTokens {
|
|
|
63
64
|
monogramTextStyle: TextStyle;
|
|
64
65
|
}
|
|
65
66
|
|
|
66
|
-
function resolveAvatarTokens(modes:
|
|
67
|
+
function resolveAvatarTokens(modes: Modes, isMonogram: boolean): AvatarTokens {
|
|
67
68
|
const size = (getVariableByName('avatar/size', modes) || 29) as number
|
|
68
69
|
const radiusRaw = (getVariableByName('avatar/radius', modes) || 9999) as number
|
|
69
70
|
const backgroundColor = getVariableByName('avatar/background', modes) || '#dbcfff'
|
|
@@ -131,7 +132,7 @@ function resolveAvatarTokens(modes: Record<string, any>, isMonogram: boolean): A
|
|
|
131
132
|
export type AvatarProps = {
|
|
132
133
|
monogram?: string;
|
|
133
134
|
style?: 'Image' | 'Monogram';
|
|
134
|
-
modes?:
|
|
135
|
+
modes?: Modes;
|
|
135
136
|
imageSource?: ImageSourcePropType | string;
|
|
136
137
|
accessibilityLabel?: string;
|
|
137
138
|
onPress?: () => void;
|
|
@@ -4,9 +4,10 @@ import MaskedView from '@react-native-masked-view/masked-view';
|
|
|
4
4
|
import Svg, { Path } from 'react-native-svg';
|
|
5
5
|
import { getVariableByName } from '../../design-tokens/figma-variables-resolver';
|
|
6
6
|
import { EMPTY_MODES, flattenChildren } from '../../utils/react-utils';
|
|
7
|
+
import type { Modes } from '../../design-tokens'
|
|
7
8
|
|
|
8
9
|
type AvatarGroupProps = {
|
|
9
|
-
modes?:
|
|
10
|
+
modes?: Modes;
|
|
10
11
|
children?: React.ReactNode;
|
|
11
12
|
style?: ViewStyle;
|
|
12
13
|
} & React.ComponentProps<typeof View>;
|
|
@@ -10,12 +10,13 @@ import { getVariableByName } from '../../design-tokens/figma-variables-resolver'
|
|
|
10
10
|
import { EMPTY_MODES } from '../../utils/react-utils'
|
|
11
11
|
import Skeleton from '../../skeleton/Skeleton'
|
|
12
12
|
import { useSkeleton } from '../../skeleton/SkeletonGroup'
|
|
13
|
+
import type { Modes } from '../../design-tokens'
|
|
13
14
|
|
|
14
15
|
type BadgeProps = {
|
|
15
16
|
/** Visible label text shown inside the badge */
|
|
16
17
|
label?: string
|
|
17
18
|
/** Modes used to resolve design tokens (e.g. Appearance, Size) */
|
|
18
|
-
modes?:
|
|
19
|
+
modes?: Modes
|
|
19
20
|
/** Optional press handler to make the badge interactive */
|
|
20
21
|
onPress?: () => void
|
|
21
22
|
accessibilityLabel?: string
|