jfs-components 0.1.8 → 0.1.17
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +31 -0
- package/lib/commonjs/components/Accordion/Accordion.js +2 -1
- package/lib/commonjs/components/AccordionCheckbox/AccordionCheckbox.js +4 -3
- package/lib/commonjs/components/AccountCard/AccountCard.js +4 -3
- package/lib/commonjs/components/ActionFooter/ActionFooter.js +7 -24
- package/lib/commonjs/components/ActionTile/ActionTile.js +10 -10
- package/lib/commonjs/components/AllocationComparisonChart/AllocationComparisonChart.js +9 -6
- package/lib/commonjs/components/AmountInput/AmountInput.js +3 -3
- package/lib/commonjs/components/AreaLineChart/AreaLineChart.js +13 -9
- package/lib/commonjs/components/Attached/Attached.js +1 -1
- package/lib/commonjs/components/Avatar/Avatar.js +10 -10
- package/lib/commonjs/components/AvatarGroup/AvatarGroup.js +9 -9
- package/lib/commonjs/components/Badge/Badge.js +55 -16
- package/lib/commonjs/components/BenefitCard/BenefitCard.js +95 -21
- package/lib/commonjs/components/BottomNav/BottomNav.js +2 -2
- package/lib/commonjs/components/BottomNavItem/BottomNavItem.js +3 -3
- package/lib/commonjs/components/BrandChip/BrandChip.js +3 -3
- package/lib/commonjs/components/Button/Button.js +32 -19
- package/lib/commonjs/components/Card/Card.js +20 -20
- package/lib/commonjs/components/CardAdvisory/CardAdvisory.js +8 -7
- package/lib/commonjs/components/CardBankAccount/CardBankAccount.js +3 -2
- package/lib/commonjs/components/CardCTA/CardCTA.js +215 -45
- package/lib/commonjs/components/CardFeedback/CardFeedback.js +18 -18
- package/lib/commonjs/components/CardFinancialCondition/CardFinancialCondition.js +7 -7
- package/lib/commonjs/components/CardInsight/CardInsight.js +6 -3
- package/lib/commonjs/components/Carousel/Carousel.js +18 -12
- package/lib/commonjs/components/CarouselCardAccounts/CarouselCardAccounts.js +75 -0
- package/lib/commonjs/components/Checkbox/Checkbox.js +6 -13
- package/lib/commonjs/components/ChipGroup/ChipGroup.js +1 -1
- package/lib/commonjs/components/ChipSelect/ChipSelect.js +11 -11
- package/lib/commonjs/components/CircularProgressBar/CircularProgressBar.js +12 -8
- package/lib/commonjs/components/CircularProgressBarDoted/CircularProgressBarDoted.js +11 -10
- package/lib/commonjs/components/CircularRating/CircularRating.js +5 -4
- package/lib/commonjs/components/ClusterBubble/ClusterBubble.js +3 -2
- package/lib/commonjs/components/CompareTable/CompareTable.js +88 -59
- package/lib/commonjs/components/CoverageBarComparison/CoverageBarComparison.js +3 -2
- package/lib/commonjs/components/DebitCard/DebitCard.js +18 -18
- package/lib/commonjs/components/Disclaimer/Disclaimer.js +5 -5
- package/lib/commonjs/components/DonutChart/DonutChart.js +15 -14
- package/lib/commonjs/components/Drawer/Drawer.js +60 -60
- package/lib/commonjs/components/Dropdown/Dropdown.js +25 -25
- package/lib/commonjs/components/DropdownInput/DropdownInput.js +13 -12
- package/lib/commonjs/components/EmptyState/EmptyState.js +14 -14
- package/lib/commonjs/components/ExpandableCheckbox/ExpandableCheckbox.js +2 -1
- package/lib/commonjs/components/FilterBar/FilterBar.js +2 -2
- package/lib/commonjs/components/Form/Form.js +3 -3
- package/lib/commonjs/components/FormField/FormField.js +48 -8
- package/lib/commonjs/components/FullscreenModal/FullscreenModal.js +24 -24
- package/lib/commonjs/components/Gauge/Gauge.js +9 -9
- package/lib/commonjs/components/HoldingsCard/HoldingsCard.js +13 -12
- package/lib/commonjs/components/Icon/Icon.js +6 -6
- package/lib/commonjs/components/IconCapsule/IconCapsule.js +7 -7
- package/lib/commonjs/components/InputSearch/InputSearch.js +9 -9
- package/lib/commonjs/components/InstitutionBadge/InstitutionBadge.js +5 -4
- package/lib/commonjs/components/ListGroup/ListGroup.js +10 -9
- package/lib/commonjs/components/ListItem/ListItem.js +13 -12
- package/lib/commonjs/components/LottieIntroBlock/LottieIntroBlock.js +13 -13
- package/lib/commonjs/components/LottiePlayer/LottiePlayer.js +2 -2
- package/lib/commonjs/components/LottiePlayer/LottiePlayer.web.js +2 -2
- package/lib/commonjs/components/MediaCard/MediaCard.js +25 -23
- package/lib/commonjs/components/MessageField/MessageField.js +8 -8
- package/lib/commonjs/components/MetricLegendItem/MetricLegendItem.js +3 -2
- package/lib/commonjs/components/MoneyValue/MoneyValue.js +7 -7
- package/lib/commonjs/components/MonthlyStatusGrid/MonthlyStatusGrid.js +6 -3
- package/lib/commonjs/components/NavArrow/NavArrow.js +8 -8
- package/lib/commonjs/components/NoteInput/NoteInput.js +12 -12
- package/lib/commonjs/components/Nudge/Nudge.js +20 -20
- package/lib/commonjs/components/OTP/OTP.js +15 -15
- package/lib/commonjs/components/PageHero/PageHero.js +16 -16
- package/lib/commonjs/components/PaymentFeedback/PaymentFeedback.js +23 -23
- package/lib/commonjs/components/Popup/Popup.js +1 -1
- package/lib/commonjs/components/PoweredByLabel/PoweredByLabel.js +3 -2
- package/lib/commonjs/components/ProductMerchandisingCard/ProductMerchandisingCard.js +107 -33
- package/lib/commonjs/components/ProductOverview/ProductOverview.js +4 -3
- package/lib/commonjs/components/ProgressBadge/ProgressBadge.js +7 -7
- package/lib/commonjs/components/ProjectionMarker/ProjectionMarker.js +3 -2
- package/lib/commonjs/components/Radio/Radio.js +8 -8
- package/lib/commonjs/components/RechargeCard/RechargeCard.js +31 -31
- package/lib/commonjs/components/SavingsGoalSummary/SavingsGoalSummary.js +59 -12
- package/lib/commonjs/components/ScrollArea/ScrollArea.js +126 -0
- package/lib/commonjs/components/Section/Section.js +27 -26
- package/lib/commonjs/components/Slider/Slider.js +3 -2
- package/lib/commonjs/components/Stack/Stack.js +86 -0
- package/lib/commonjs/components/StatusHero/StatusHero.js +14 -14
- package/lib/commonjs/components/Stepper/Step.js +16 -16
- package/lib/commonjs/components/Stepper/StepLabel.js +16 -16
- package/lib/commonjs/components/Stepper/Stepper.js +3 -3
- package/lib/commonjs/components/SuggestiveSearch/SuggestiveSearch.js +20 -11
- package/lib/commonjs/components/SummaryTile/SummaryTile.js +3 -2
- package/lib/commonjs/components/SupportText/SupportText.js +6 -6
- package/lib/commonjs/components/SupportText/SupportTextIcon.js +2 -2
- package/lib/commonjs/components/Table/Table.js +324 -0
- package/lib/commonjs/components/Text/Text.js +15 -2
- package/lib/commonjs/components/TextInput/TextInput.js +23 -15
- package/lib/commonjs/components/TextSegment/TextSegment.js +15 -2
- package/lib/commonjs/components/ThreadHero/ThreadHero.js +21 -22
- package/lib/commonjs/components/Title/Title.js +39 -16
- package/lib/commonjs/components/Toast/Toast.js +18 -17
- package/lib/commonjs/components/Toggle/Toggle.js +3 -11
- package/lib/commonjs/components/Tooltip/Tooltip.js +12 -12
- package/lib/commonjs/components/TransactionBubble/TransactionBubble.js +15 -14
- package/lib/commonjs/components/TransactionDetails/TransactionDetails.js +10 -10
- package/lib/commonjs/components/TransactionStatus/TransactionStatus.js +12 -11
- package/lib/commonjs/components/UpiHandle/UpiHandle.js +17 -17
- package/lib/commonjs/components/index.js +58 -0
- package/lib/commonjs/design-tokens/Coin Variables-variables-full.json +1 -1
- package/lib/commonjs/design-tokens/figma-modes.generated.js +51 -42
- package/lib/commonjs/icons/components/Icon4g.js +19 -0
- package/lib/commonjs/icons/components/Icon4gltedata.js +19 -0
- package/lib/commonjs/icons/components/Icon5g.js +19 -0
- package/lib/commonjs/icons/components/Icon5gdoubleplus.js +19 -0
- package/lib/commonjs/icons/components/Icon5gplus.js +19 -0
- package/lib/commonjs/icons/components/IconAdblocker.js +19 -0
- package/lib/commonjs/icons/components/IconAdblockplus.js +19 -0
- package/lib/commonjs/icons/components/IconAnalytics.js +19 -0
- package/lib/commonjs/icons/components/IconAnalyticsdata.js +19 -0
- package/lib/commonjs/icons/components/IconAnalyticspiechart.js +19 -0
- package/lib/commonjs/icons/components/IconAnalyticspiecharttree.js +19 -0
- package/lib/commonjs/icons/components/IconAnalyticspiecharttwo.js +19 -0
- package/lib/commonjs/icons/components/IconCompoundinterest.js +19 -0
- package/lib/commonjs/icons/components/IconConsumptionaccounted.js +19 -0
- package/lib/commonjs/icons/components/IconConsumptionaverage.js +19 -0
- package/lib/commonjs/icons/components/IconConsumptionhigh.js +19 -0
- package/lib/commonjs/icons/components/IconConsumptionlow.js +19 -0
- package/lib/commonjs/icons/components/IconConsumptionunaccounted.js +19 -0
- package/lib/commonjs/icons/components/IconCsvdoc.js +19 -0
- package/lib/commonjs/icons/components/IconDatabase.js +19 -0
- package/lib/commonjs/icons/components/IconDigitalecosystem.js +19 -0
- package/lib/commonjs/icons/components/IconDigitalselfservice.js +19 -0
- package/lib/commonjs/icons/components/IconDistribution.js +19 -0
- package/lib/commonjs/icons/components/IconDocument.js +19 -0
- package/lib/commonjs/icons/components/IconDocumentdoc.js +19 -0
- package/lib/commonjs/icons/components/IconDocumentjpg.js +19 -0
- package/lib/commonjs/icons/components/IconDocumentodt.js +19 -0
- package/lib/commonjs/icons/components/IconDocumentpdf.js +19 -0
- package/lib/commonjs/icons/components/IconDocumentpng.js +19 -0
- package/lib/commonjs/icons/components/IconDocumentraw.js +19 -0
- package/lib/commonjs/icons/components/IconDocumentrtf.js +19 -0
- package/lib/commonjs/icons/components/IconDocumentsettings.js +19 -0
- package/lib/commonjs/icons/components/IconDocumenttif.js +19 -0
- package/lib/commonjs/icons/components/IconDocumenttxt.js +19 -0
- package/lib/commonjs/icons/components/IconDocumentunknown.js +19 -0
- package/lib/commonjs/icons/components/IconDocumentxls.js +19 -0
- package/lib/commonjs/icons/components/IconDocumentxlsx.js +19 -0
- package/lib/commonjs/icons/components/IconFilerequest.js +19 -0
- package/lib/commonjs/icons/components/IconFilesend.js +19 -0
- package/lib/commonjs/icons/components/IconFileshare.js +19 -0
- package/lib/commonjs/icons/components/IconFindinpage.js +19 -0
- package/lib/commonjs/icons/components/IconFolder.js +19 -0
- package/lib/commonjs/icons/components/IconFolderbookmarks.js +19 -0
- package/lib/commonjs/icons/components/IconFolderfavorites.js +19 -0
- package/lib/commonjs/icons/components/IconFolderlocked.js +19 -0
- package/lib/commonjs/icons/components/IconFoldermovefiles.js +19 -0
- package/lib/commonjs/icons/components/IconFolderpublic.js +19 -0
- package/lib/commonjs/icons/components/IconFolderrated.js +19 -0
- package/lib/commonjs/icons/components/IconFolderrequest.js +19 -0
- package/lib/commonjs/icons/components/IconForm.js +19 -0
- package/lib/commonjs/icons/components/IconFormadd.js +19 -0
- package/lib/commonjs/icons/components/IconForms.js +19 -0
- package/lib/commonjs/icons/components/IconGraphincreasing.js +19 -0
- package/lib/commonjs/icons/components/IconGraphlow.js +19 -0
- package/lib/commonjs/icons/components/IconGraphtable.js +19 -0
- package/lib/commonjs/icons/components/IconHealthreport.js +19 -0
- package/lib/commonjs/icons/components/IconHubmode.js +19 -0
- package/lib/commonjs/icons/components/IconInfrastructure.js +19 -0
- package/lib/commonjs/icons/components/IconInterestlow.js +19 -0
- package/lib/commonjs/icons/components/IconLte.js +19 -0
- package/lib/commonjs/icons/components/IconNetworkfuture.js +19 -0
- package/lib/commonjs/icons/components/IconPagesettings.js +19 -0
- package/lib/commonjs/icons/components/IconPptxdoc.js +19 -0
- package/lib/commonjs/icons/components/IconPreferrednumber.js +19 -0
- package/lib/commonjs/icons/components/IconPremiumnumber.js +19 -0
- package/lib/commonjs/icons/components/IconProjection.js +19 -0
- package/lib/commonjs/icons/components/IconRequest.js +19 -0
- package/lib/commonjs/icons/components/IconRoutestraffic.js +19 -0
- package/lib/commonjs/icons/components/IconTechnology.js +19 -0
- package/lib/commonjs/icons/components/IconVolte.js +19 -0
- package/lib/commonjs/icons/components/IconVonr.js +19 -0
- package/lib/commonjs/icons/components/IconVowifi.js +19 -0
- package/lib/commonjs/icons/components/IconVpndata.js +19 -0
- package/lib/commonjs/icons/components/index.js +803 -0
- package/lib/commonjs/icons/registry.js +2 -2
- package/lib/commonjs/{components/ProductMerchandisingCard → utils/GlassFill}/GlassFill.js +11 -3
- package/lib/commonjs/{components/ProductMerchandisingCard → utils/GlassFill}/GlassFill.web.js +8 -4
- package/lib/commonjs/utils/index.js +25 -0
- package/lib/commonjs/utils/react-utils.js +118 -0
- package/lib/commonjs/utils/shadow.js +200 -0
- package/lib/commonjs/utils/web-platform-utils.js +59 -0
- package/lib/module/components/Accordion/Accordion.js +3 -2
- package/lib/module/components/AccordionCheckbox/AccordionCheckbox.js +5 -4
- package/lib/module/components/AccountCard/AccountCard.js +5 -4
- package/lib/module/components/ActionFooter/ActionFooter.js +7 -24
- package/lib/module/components/ActionTile/ActionTile.js +10 -10
- package/lib/module/components/AllocationComparisonChart/AllocationComparisonChart.js +10 -7
- package/lib/module/components/AmountInput/AmountInput.js +3 -3
- package/lib/module/components/AreaLineChart/AreaLineChart.js +14 -10
- package/lib/module/components/Attached/Attached.js +1 -1
- package/lib/module/components/Avatar/Avatar.js +10 -10
- package/lib/module/components/AvatarGroup/AvatarGroup.js +9 -9
- package/lib/module/components/Badge/Badge.js +57 -18
- package/lib/module/components/BenefitCard/BenefitCard.js +95 -21
- package/lib/module/components/BottomNav/BottomNav.js +2 -2
- package/lib/module/components/BottomNavItem/BottomNavItem.js +3 -3
- package/lib/module/components/BrandChip/BrandChip.js +4 -4
- package/lib/module/components/Button/Button.js +32 -19
- package/lib/module/components/Card/Card.js +20 -20
- package/lib/module/components/CardAdvisory/CardAdvisory.js +9 -8
- package/lib/module/components/CardBankAccount/CardBankAccount.js +4 -3
- package/lib/module/components/CardCTA/CardCTA.js +216 -46
- package/lib/module/components/CardFeedback/CardFeedback.js +18 -18
- package/lib/module/components/CardFinancialCondition/CardFinancialCondition.js +7 -7
- package/lib/module/components/CardInsight/CardInsight.js +6 -3
- package/lib/module/components/Carousel/Carousel.js +18 -12
- package/lib/module/components/CarouselCardAccounts/CarouselCardAccounts.js +71 -0
- package/lib/module/components/Checkbox/Checkbox.js +2 -9
- package/lib/module/components/ChipGroup/ChipGroup.js +1 -1
- package/lib/module/components/ChipSelect/ChipSelect.js +11 -11
- package/lib/module/components/CircularProgressBar/CircularProgressBar.js +13 -9
- package/lib/module/components/CircularProgressBarDoted/CircularProgressBarDoted.js +12 -11
- package/lib/module/components/CircularRating/CircularRating.js +6 -5
- package/lib/module/components/ClusterBubble/ClusterBubble.js +4 -3
- package/lib/module/components/CompareTable/CompareTable.js +89 -60
- package/lib/module/components/CoverageBarComparison/CoverageBarComparison.js +4 -3
- package/lib/module/components/DebitCard/DebitCard.js +18 -18
- package/lib/module/components/Disclaimer/Disclaimer.js +5 -5
- package/lib/module/components/DonutChart/DonutChart.js +16 -15
- package/lib/module/components/Drawer/Drawer.js +60 -60
- package/lib/module/components/Dropdown/Dropdown.js +26 -26
- package/lib/module/components/DropdownInput/DropdownInput.js +14 -13
- package/lib/module/components/EmptyState/EmptyState.js +14 -14
- package/lib/module/components/ExpandableCheckbox/ExpandableCheckbox.js +2 -1
- package/lib/module/components/FilterBar/FilterBar.js +2 -2
- package/lib/module/components/Form/Form.js +3 -3
- package/lib/module/components/FormField/FormField.js +51 -11
- package/lib/module/components/FullscreenModal/FullscreenModal.js +24 -24
- package/lib/module/components/Gauge/Gauge.js +9 -9
- package/lib/module/components/HoldingsCard/HoldingsCard.js +14 -13
- package/lib/module/components/Icon/Icon.js +6 -6
- package/lib/module/components/IconCapsule/IconCapsule.js +7 -7
- package/lib/module/components/InputSearch/InputSearch.js +9 -9
- package/lib/module/components/InstitutionBadge/InstitutionBadge.js +6 -5
- package/lib/module/components/ListGroup/ListGroup.js +11 -10
- package/lib/module/components/ListItem/ListItem.js +14 -13
- package/lib/module/components/LottieIntroBlock/LottieIntroBlock.js +13 -13
- package/lib/module/components/LottiePlayer/LottiePlayer.js +2 -2
- package/lib/module/components/LottiePlayer/LottiePlayer.web.js +2 -2
- package/lib/module/components/MediaCard/MediaCard.js +25 -23
- package/lib/module/components/MessageField/MessageField.js +8 -8
- package/lib/module/components/MetricLegendItem/MetricLegendItem.js +4 -3
- package/lib/module/components/MoneyValue/MoneyValue.js +7 -7
- package/lib/module/components/MonthlyStatusGrid/MonthlyStatusGrid.js +7 -4
- package/lib/module/components/NavArrow/NavArrow.js +8 -8
- package/lib/module/components/NoteInput/NoteInput.js +12 -12
- package/lib/module/components/Nudge/Nudge.js +20 -20
- package/lib/module/components/OTP/OTP.js +15 -15
- package/lib/module/components/PageHero/PageHero.js +16 -16
- package/lib/module/components/PaymentFeedback/PaymentFeedback.js +23 -23
- package/lib/module/components/Popup/Popup.js +1 -1
- package/lib/module/components/PoweredByLabel/PoweredByLabel.js +4 -3
- package/lib/module/components/ProductMerchandisingCard/ProductMerchandisingCard.js +109 -35
- package/lib/module/components/ProductOverview/ProductOverview.js +5 -4
- package/lib/module/components/ProgressBadge/ProgressBadge.js +8 -8
- package/lib/module/components/ProjectionMarker/ProjectionMarker.js +4 -3
- package/lib/module/components/Radio/Radio.js +9 -9
- package/lib/module/components/RechargeCard/RechargeCard.js +31 -31
- package/lib/module/components/SavingsGoalSummary/SavingsGoalSummary.js +60 -13
- package/lib/module/components/ScrollArea/ScrollArea.js +121 -0
- package/lib/module/components/Section/Section.js +28 -27
- package/lib/module/components/Slider/Slider.js +4 -3
- package/lib/module/components/Stack/Stack.js +81 -0
- package/lib/module/components/StatusHero/StatusHero.js +14 -14
- package/lib/module/components/Stepper/Step.js +16 -16
- package/lib/module/components/Stepper/StepLabel.js +16 -16
- package/lib/module/components/Stepper/Stepper.js +3 -3
- package/lib/module/components/SuggestiveSearch/SuggestiveSearch.js +20 -11
- package/lib/module/components/SummaryTile/SummaryTile.js +4 -3
- package/lib/module/components/SupportText/SupportText.js +6 -6
- package/lib/module/components/SupportText/SupportTextIcon.js +2 -2
- package/lib/module/components/Table/Table.js +315 -0
- package/lib/module/components/Text/Text.js +16 -3
- package/lib/module/components/TextInput/TextInput.js +23 -15
- package/lib/module/components/TextSegment/TextSegment.js +16 -3
- package/lib/module/components/ThreadHero/ThreadHero.js +22 -23
- package/lib/module/components/Title/Title.js +40 -17
- package/lib/module/components/Toast/Toast.js +19 -18
- package/lib/module/components/Toggle/Toggle.js +4 -12
- package/lib/module/components/Tooltip/Tooltip.js +12 -12
- package/lib/module/components/TransactionBubble/TransactionBubble.js +16 -15
- package/lib/module/components/TransactionDetails/TransactionDetails.js +10 -10
- package/lib/module/components/TransactionStatus/TransactionStatus.js +13 -12
- package/lib/module/components/UpiHandle/UpiHandle.js +18 -18
- package/lib/module/components/index.js +4 -0
- package/lib/module/design-tokens/Coin Variables-variables-full.json +1 -1
- package/lib/module/design-tokens/figma-modes.generated.js +51 -42
- package/lib/module/icons/components/Icon4g.js +12 -0
- package/lib/module/icons/components/Icon4gltedata.js +12 -0
- package/lib/module/icons/components/Icon5g.js +12 -0
- package/lib/module/icons/components/Icon5gdoubleplus.js +12 -0
- package/lib/module/icons/components/Icon5gplus.js +12 -0
- package/lib/module/icons/components/IconAdblocker.js +12 -0
- package/lib/module/icons/components/IconAdblockplus.js +12 -0
- package/lib/module/icons/components/IconAnalytics.js +12 -0
- package/lib/module/icons/components/IconAnalyticsdata.js +12 -0
- package/lib/module/icons/components/IconAnalyticspiechart.js +12 -0
- package/lib/module/icons/components/IconAnalyticspiecharttree.js +12 -0
- package/lib/module/icons/components/IconAnalyticspiecharttwo.js +12 -0
- package/lib/module/icons/components/IconCompoundinterest.js +12 -0
- package/lib/module/icons/components/IconConsumptionaccounted.js +12 -0
- package/lib/module/icons/components/IconConsumptionaverage.js +12 -0
- package/lib/module/icons/components/IconConsumptionhigh.js +12 -0
- package/lib/module/icons/components/IconConsumptionlow.js +12 -0
- package/lib/module/icons/components/IconConsumptionunaccounted.js +12 -0
- package/lib/module/icons/components/IconCsvdoc.js +12 -0
- package/lib/module/icons/components/IconDatabase.js +12 -0
- package/lib/module/icons/components/IconDigitalecosystem.js +12 -0
- package/lib/module/icons/components/IconDigitalselfservice.js +12 -0
- package/lib/module/icons/components/IconDistribution.js +12 -0
- package/lib/module/icons/components/IconDocument.js +12 -0
- package/lib/module/icons/components/IconDocumentdoc.js +12 -0
- package/lib/module/icons/components/IconDocumentjpg.js +12 -0
- package/lib/module/icons/components/IconDocumentodt.js +12 -0
- package/lib/module/icons/components/IconDocumentpdf.js +12 -0
- package/lib/module/icons/components/IconDocumentpng.js +12 -0
- package/lib/module/icons/components/IconDocumentraw.js +12 -0
- package/lib/module/icons/components/IconDocumentrtf.js +12 -0
- package/lib/module/icons/components/IconDocumentsettings.js +12 -0
- package/lib/module/icons/components/IconDocumenttif.js +12 -0
- package/lib/module/icons/components/IconDocumenttxt.js +12 -0
- package/lib/module/icons/components/IconDocumentunknown.js +12 -0
- package/lib/module/icons/components/IconDocumentxls.js +12 -0
- package/lib/module/icons/components/IconDocumentxlsx.js +12 -0
- package/lib/module/icons/components/IconFilerequest.js +12 -0
- package/lib/module/icons/components/IconFilesend.js +12 -0
- package/lib/module/icons/components/IconFileshare.js +12 -0
- package/lib/module/icons/components/IconFindinpage.js +12 -0
- package/lib/module/icons/components/IconFolder.js +12 -0
- package/lib/module/icons/components/IconFolderbookmarks.js +12 -0
- package/lib/module/icons/components/IconFolderfavorites.js +12 -0
- package/lib/module/icons/components/IconFolderlocked.js +12 -0
- package/lib/module/icons/components/IconFoldermovefiles.js +12 -0
- package/lib/module/icons/components/IconFolderpublic.js +12 -0
- package/lib/module/icons/components/IconFolderrated.js +12 -0
- package/lib/module/icons/components/IconFolderrequest.js +12 -0
- package/lib/module/icons/components/IconForm.js +12 -0
- package/lib/module/icons/components/IconFormadd.js +12 -0
- package/lib/module/icons/components/IconForms.js +12 -0
- package/lib/module/icons/components/IconGraphincreasing.js +12 -0
- package/lib/module/icons/components/IconGraphlow.js +12 -0
- package/lib/module/icons/components/IconGraphtable.js +12 -0
- package/lib/module/icons/components/IconHealthreport.js +12 -0
- package/lib/module/icons/components/IconHubmode.js +12 -0
- package/lib/module/icons/components/IconInfrastructure.js +12 -0
- package/lib/module/icons/components/IconInterestlow.js +12 -0
- package/lib/module/icons/components/IconLte.js +12 -0
- package/lib/module/icons/components/IconNetworkfuture.js +12 -0
- package/lib/module/icons/components/IconPagesettings.js +12 -0
- package/lib/module/icons/components/IconPptxdoc.js +12 -0
- package/lib/module/icons/components/IconPreferrednumber.js +12 -0
- package/lib/module/icons/components/IconPremiumnumber.js +12 -0
- package/lib/module/icons/components/IconProjection.js +12 -0
- package/lib/module/icons/components/IconRequest.js +12 -0
- package/lib/module/icons/components/IconRoutestraffic.js +12 -0
- package/lib/module/icons/components/IconTechnology.js +12 -0
- package/lib/module/icons/components/IconVolte.js +12 -0
- package/lib/module/icons/components/IconVonr.js +12 -0
- package/lib/module/icons/components/IconVowifi.js +12 -0
- package/lib/module/icons/components/IconVpndata.js +12 -0
- package/lib/module/icons/components/index.js +73 -0
- package/lib/module/icons/registry.js +2 -2
- package/lib/module/{components/ProductMerchandisingCard → utils/GlassFill}/GlassFill.js +11 -3
- package/lib/module/{components/ProductMerchandisingCard → utils/GlassFill}/GlassFill.web.js +8 -4
- package/lib/module/utils/index.js +2 -1
- package/lib/module/utils/react-utils.js +115 -0
- package/lib/module/utils/shadow.js +194 -0
- package/lib/module/utils/web-platform-utils.js +58 -0
- package/lib/typescript/src/components/Accordion/Accordion.d.ts +7 -1
- package/lib/typescript/src/components/AccordionCheckbox/AccordionCheckbox.d.ts +7 -1
- package/lib/typescript/src/components/AccountCard/AccountCard.d.ts +7 -1
- package/lib/typescript/src/components/AllocationComparisonChart/AllocationComparisonChart.d.ts +7 -1
- package/lib/typescript/src/components/AreaLineChart/AreaLineChart.d.ts +8 -1
- package/lib/typescript/src/components/Badge/Badge.d.ts +32 -2
- package/lib/typescript/src/components/BenefitCard/BenefitCard.d.ts +33 -4
- package/lib/typescript/src/components/BrandChip/BrandChip.d.ts +7 -1
- package/lib/typescript/src/components/Button/Button.d.ts +7 -1
- package/lib/typescript/src/components/CardAdvisory/CardAdvisory.d.ts +7 -1
- package/lib/typescript/src/components/CardBankAccount/CardBankAccount.d.ts +7 -1
- package/lib/typescript/src/components/CardCTA/CardCTA.d.ts +27 -5
- package/lib/typescript/src/components/Carousel/Carousel.d.ts +11 -1
- package/lib/typescript/src/components/CarouselCardAccounts/CarouselCardAccounts.d.ts +57 -0
- package/lib/typescript/src/components/CircularProgressBar/CircularProgressBar.d.ts +7 -1
- package/lib/typescript/src/components/CircularProgressBarDoted/CircularProgressBarDoted.d.ts +7 -1
- package/lib/typescript/src/components/CircularRating/CircularRating.d.ts +7 -1
- package/lib/typescript/src/components/ClusterBubble/ClusterBubble.d.ts +7 -1
- package/lib/typescript/src/components/CompareTable/CompareTable.d.ts +7 -1
- package/lib/typescript/src/components/CoverageBarComparison/CoverageBarComparison.d.ts +7 -1
- package/lib/typescript/src/components/DonutChart/DonutChart.d.ts +7 -1
- package/lib/typescript/src/components/Dropdown/Dropdown.d.ts +7 -1
- package/lib/typescript/src/components/DropdownInput/DropdownInput.d.ts +6 -0
- package/lib/typescript/src/components/ExpandableCheckbox/ExpandableCheckbox.d.ts +7 -1
- package/lib/typescript/src/components/HoldingsCard/HoldingsCard.d.ts +7 -1
- package/lib/typescript/src/components/InstitutionBadge/InstitutionBadge.d.ts +7 -1
- package/lib/typescript/src/components/ListGroup/ListGroup.d.ts +7 -1
- package/lib/typescript/src/components/ListItem/ListItem.d.ts +7 -1
- package/lib/typescript/src/components/MetricLegendItem/MetricLegendItem.d.ts +7 -1
- package/lib/typescript/src/components/MonthlyStatusGrid/MonthlyStatusGrid.d.ts +14 -2
- package/lib/typescript/src/components/PoweredByLabel/PoweredByLabel.d.ts +7 -1
- package/lib/typescript/src/components/ProductMerchandisingCard/ProductMerchandisingCard.d.ts +7 -1
- package/lib/typescript/src/components/ProductOverview/ProductOverview.d.ts +7 -1
- package/lib/typescript/src/components/ProgressBadge/ProgressBadge.d.ts +7 -1
- package/lib/typescript/src/components/ProjectionMarker/ProjectionMarker.d.ts +7 -1
- package/lib/typescript/src/components/SavingsGoalSummary/SavingsGoalSummary.d.ts +11 -1
- package/lib/typescript/src/components/ScrollArea/ScrollArea.d.ts +77 -0
- package/lib/typescript/src/components/Section/Section.d.ts +7 -1
- package/lib/typescript/src/components/Slider/Slider.d.ts +6 -0
- package/lib/typescript/src/components/Stack/Stack.d.ts +81 -0
- package/lib/typescript/src/components/SummaryTile/SummaryTile.d.ts +7 -1
- package/lib/typescript/src/components/Table/Table.d.ts +139 -0
- package/lib/typescript/src/components/Text/Text.d.ts +16 -1
- package/lib/typescript/src/components/TextSegment/TextSegment.d.ts +16 -1
- package/lib/typescript/src/components/ThreadHero/ThreadHero.d.ts +7 -1
- package/lib/typescript/src/components/Title/Title.d.ts +17 -1
- package/lib/typescript/src/components/Toast/Toast.d.ts +7 -1
- package/lib/typescript/src/components/TransactionBubble/TransactionBubble.d.ts +7 -1
- package/lib/typescript/src/components/TransactionStatus/TransactionStatus.d.ts +7 -1
- package/lib/typescript/src/components/UpiHandle/UpiHandle.d.ts +7 -1
- package/lib/typescript/src/components/index.d.ts +6 -2
- package/lib/typescript/src/design-tokens/figma-modes.generated.d.ts +23 -15
- package/lib/typescript/src/icons/components/Icon4g.d.ts +3 -0
- package/lib/typescript/src/icons/components/Icon4gltedata.d.ts +3 -0
- package/lib/typescript/src/icons/components/Icon5g.d.ts +3 -0
- package/lib/typescript/src/icons/components/Icon5gdoubleplus.d.ts +3 -0
- package/lib/typescript/src/icons/components/Icon5gplus.d.ts +3 -0
- package/lib/typescript/src/icons/components/IconAdblocker.d.ts +3 -0
- package/lib/typescript/src/icons/components/IconAdblockplus.d.ts +3 -0
- package/lib/typescript/src/icons/components/IconAnalytics.d.ts +3 -0
- package/lib/typescript/src/icons/components/IconAnalyticsdata.d.ts +3 -0
- package/lib/typescript/src/icons/components/IconAnalyticspiechart.d.ts +3 -0
- package/lib/typescript/src/icons/components/IconAnalyticspiecharttree.d.ts +3 -0
- package/lib/typescript/src/icons/components/IconAnalyticspiecharttwo.d.ts +3 -0
- package/lib/typescript/src/icons/components/IconCompoundinterest.d.ts +3 -0
- package/lib/typescript/src/icons/components/IconConsumptionaccounted.d.ts +3 -0
- package/lib/typescript/src/icons/components/IconConsumptionaverage.d.ts +3 -0
- package/lib/typescript/src/icons/components/IconConsumptionhigh.d.ts +3 -0
- package/lib/typescript/src/icons/components/IconConsumptionlow.d.ts +3 -0
- package/lib/typescript/src/icons/components/IconConsumptionunaccounted.d.ts +3 -0
- package/lib/typescript/src/icons/components/IconCsvdoc.d.ts +3 -0
- package/lib/typescript/src/icons/components/IconDatabase.d.ts +3 -0
- package/lib/typescript/src/icons/components/IconDigitalecosystem.d.ts +3 -0
- package/lib/typescript/src/icons/components/IconDigitalselfservice.d.ts +3 -0
- package/lib/typescript/src/icons/components/IconDistribution.d.ts +3 -0
- package/lib/typescript/src/icons/components/IconDocument.d.ts +3 -0
- package/lib/typescript/src/icons/components/IconDocumentdoc.d.ts +3 -0
- package/lib/typescript/src/icons/components/IconDocumentjpg.d.ts +3 -0
- package/lib/typescript/src/icons/components/IconDocumentodt.d.ts +3 -0
- package/lib/typescript/src/icons/components/IconDocumentpdf.d.ts +3 -0
- package/lib/typescript/src/icons/components/IconDocumentpng.d.ts +3 -0
- package/lib/typescript/src/icons/components/IconDocumentraw.d.ts +3 -0
- package/lib/typescript/src/icons/components/IconDocumentrtf.d.ts +3 -0
- package/lib/typescript/src/icons/components/IconDocumentsettings.d.ts +3 -0
- package/lib/typescript/src/icons/components/IconDocumenttif.d.ts +3 -0
- package/lib/typescript/src/icons/components/IconDocumenttxt.d.ts +3 -0
- package/lib/typescript/src/icons/components/IconDocumentunknown.d.ts +3 -0
- package/lib/typescript/src/icons/components/IconDocumentxls.d.ts +3 -0
- package/lib/typescript/src/icons/components/IconDocumentxlsx.d.ts +3 -0
- package/lib/typescript/src/icons/components/IconFilerequest.d.ts +3 -0
- package/lib/typescript/src/icons/components/IconFilesend.d.ts +3 -0
- package/lib/typescript/src/icons/components/IconFileshare.d.ts +3 -0
- package/lib/typescript/src/icons/components/IconFindinpage.d.ts +3 -0
- package/lib/typescript/src/icons/components/IconFolder.d.ts +3 -0
- package/lib/typescript/src/icons/components/IconFolderbookmarks.d.ts +3 -0
- package/lib/typescript/src/icons/components/IconFolderfavorites.d.ts +3 -0
- package/lib/typescript/src/icons/components/IconFolderlocked.d.ts +3 -0
- package/lib/typescript/src/icons/components/IconFoldermovefiles.d.ts +3 -0
- package/lib/typescript/src/icons/components/IconFolderpublic.d.ts +3 -0
- package/lib/typescript/src/icons/components/IconFolderrated.d.ts +3 -0
- package/lib/typescript/src/icons/components/IconFolderrequest.d.ts +3 -0
- package/lib/typescript/src/icons/components/IconForm.d.ts +3 -0
- package/lib/typescript/src/icons/components/IconFormadd.d.ts +3 -0
- package/lib/typescript/src/icons/components/IconForms.d.ts +3 -0
- package/lib/typescript/src/icons/components/IconGraphincreasing.d.ts +3 -0
- package/lib/typescript/src/icons/components/IconGraphlow.d.ts +3 -0
- package/lib/typescript/src/icons/components/IconGraphtable.d.ts +3 -0
- package/lib/typescript/src/icons/components/IconHealthreport.d.ts +3 -0
- package/lib/typescript/src/icons/components/IconHubmode.d.ts +3 -0
- package/lib/typescript/src/icons/components/IconInfrastructure.d.ts +3 -0
- package/lib/typescript/src/icons/components/IconInterestlow.d.ts +3 -0
- package/lib/typescript/src/icons/components/IconLte.d.ts +3 -0
- package/lib/typescript/src/icons/components/IconNetworkfuture.d.ts +3 -0
- package/lib/typescript/src/icons/components/IconPagesettings.d.ts +3 -0
- package/lib/typescript/src/icons/components/IconPptxdoc.d.ts +3 -0
- package/lib/typescript/src/icons/components/IconPreferrednumber.d.ts +3 -0
- package/lib/typescript/src/icons/components/IconPremiumnumber.d.ts +3 -0
- package/lib/typescript/src/icons/components/IconProjection.d.ts +3 -0
- package/lib/typescript/src/icons/components/IconRequest.d.ts +3 -0
- package/lib/typescript/src/icons/components/IconRoutestraffic.d.ts +3 -0
- package/lib/typescript/src/icons/components/IconTechnology.d.ts +3 -0
- package/lib/typescript/src/icons/components/IconVolte.d.ts +3 -0
- package/lib/typescript/src/icons/components/IconVonr.d.ts +3 -0
- package/lib/typescript/src/icons/components/IconVowifi.d.ts +3 -0
- package/lib/typescript/src/icons/components/IconVpndata.d.ts +3 -0
- package/lib/typescript/src/icons/components/index.d.ts +73 -0
- package/lib/typescript/src/icons/registry.d.ts +1 -1
- package/lib/typescript/src/{components/ProductMerchandisingCard → utils/GlassFill}/GlassFill.d.ts +31 -3
- package/lib/typescript/src/{components/ProductMerchandisingCard → utils/GlassFill}/GlassFill.web.d.ts +18 -2
- package/lib/typescript/src/utils/index.d.ts +2 -0
- package/lib/typescript/src/utils/react-utils.d.ts +76 -0
- package/lib/typescript/src/utils/shadow.d.ts +72 -0
- package/lib/typescript/src/utils/web-platform-utils.d.ts +36 -0
- package/package.json +2 -1
- package/src/components/Accordion/Accordion.tsx +9 -2
- package/src/components/AccordionCheckbox/AccordionCheckbox.tsx +10 -3
- package/src/components/AccountCard/AccountCard.tsx +10 -3
- package/src/components/ActionFooter/ActionFooter.tsx +8 -26
- package/src/components/ActionTile/ActionTile.tsx +10 -10
- package/src/components/AllocationComparisonChart/AllocationComparisonChart.tsx +14 -4
- package/src/components/AmountInput/AmountInput.tsx +3 -3
- package/src/components/AreaLineChart/AreaLineChart.tsx +17 -7
- package/src/components/Attached/Attached.tsx +1 -1
- package/src/components/Avatar/Avatar.tsx +10 -10
- package/src/components/AvatarGroup/AvatarGroup.tsx +9 -9
- package/src/components/Badge/Badge.tsx +86 -17
- package/src/components/BenefitCard/BenefitCard.tsx +120 -27
- package/src/components/BottomNav/BottomNav.tsx +2 -2
- package/src/components/BottomNavItem/BottomNavItem.tsx +3 -3
- package/src/components/BrandChip/BrandChip.tsx +9 -3
- package/src/components/Button/Button.tsx +36 -19
- package/src/components/Card/Card.tsx +20 -20
- package/src/components/CardAdvisory/CardAdvisory.tsx +15 -8
- package/src/components/CardBankAccount/CardBankAccount.tsx +9 -2
- package/src/components/CardCTA/CardCTA.tsx +237 -64
- package/src/components/CardFeedback/CardFeedback.tsx +18 -18
- package/src/components/CardFinancialCondition/CardFinancialCondition.tsx +7 -10
- package/src/components/CardInsight/CardInsight.tsx +8 -4
- package/src/components/Carousel/Carousel.tsx +29 -12
- package/src/components/CarouselCardAccounts/CarouselCardAccounts.tsx +113 -0
- package/src/components/Checkbox/Checkbox.tsx +2 -8
- package/src/components/ChipGroup/ChipGroup.tsx +1 -1
- package/src/components/ChipSelect/ChipSelect.tsx +11 -11
- package/src/components/CircularProgressBar/CircularProgressBar.tsx +19 -9
- package/src/components/CircularProgressBarDoted/CircularProgressBarDoted.tsx +18 -11
- package/src/components/CircularRating/CircularRating.tsx +12 -5
- package/src/components/ClusterBubble/ClusterBubble.tsx +9 -2
- package/src/components/CompareTable/CompareTable.tsx +114 -66
- package/src/components/CoverageBarComparison/CoverageBarComparison.tsx +9 -2
- package/src/components/DebitCard/DebitCard.tsx +22 -22
- package/src/components/Disclaimer/Disclaimer.tsx +5 -5
- package/src/components/DonutChart/DonutChart.tsx +21 -48
- package/src/components/Drawer/Drawer.tsx +80 -71
- package/src/components/Dropdown/Dropdown.tsx +32 -30
- package/src/components/DropdownInput/DropdownInput.tsx +19 -19
- package/src/components/EmptyState/EmptyState.tsx +14 -14
- package/src/components/ExpandableCheckbox/ExpandableCheckbox.tsx +8 -1
- package/src/components/FilterBar/FilterBar.tsx +2 -2
- package/src/components/Form/Form.tsx +3 -3
- package/src/components/FormField/FormField.tsx +55 -15
- package/src/components/FullscreenModal/FullscreenModal.tsx +24 -24
- package/src/components/Gauge/Gauge.tsx +9 -9
- package/src/components/HoldingsCard/HoldingsCard.tsx +19 -12
- package/src/components/Icon/Icon.tsx +6 -6
- package/src/components/IconCapsule/IconCapsule.tsx +7 -7
- package/src/components/InputSearch/InputSearch.tsx +9 -9
- package/src/components/InstitutionBadge/InstitutionBadge.tsx +12 -8
- package/src/components/ListGroup/ListGroup.tsx +17 -10
- package/src/components/ListItem/ListItem.tsx +20 -13
- package/src/components/LottieIntroBlock/LottieIntroBlock.tsx +13 -16
- package/src/components/LottiePlayer/LottiePlayer.tsx +2 -2
- package/src/components/LottiePlayer/LottiePlayer.web.tsx +2 -2
- package/src/components/MediaCard/MediaCard.tsx +23 -23
- package/src/components/MessageField/MessageField.tsx +8 -16
- package/src/components/MetricLegendItem/MetricLegendItem.tsx +9 -2
- package/src/components/MoneyValue/MoneyValue.tsx +7 -7
- package/src/components/MonthlyStatusGrid/MonthlyStatusGrid.tsx +17 -2
- package/src/components/NavArrow/NavArrow.tsx +8 -8
- package/src/components/NoteInput/NoteInput.tsx +12 -12
- package/src/components/Nudge/Nudge.tsx +20 -20
- package/src/components/OTP/OTP.tsx +16 -16
- package/src/components/PageHero/PageHero.tsx +16 -16
- package/src/components/PaymentFeedback/PaymentFeedback.tsx +27 -27
- package/src/components/Popup/Popup.tsx +1 -1
- package/src/components/PoweredByLabel/PoweredByLabel.tsx +9 -2
- package/src/components/ProductMerchandisingCard/ProductMerchandisingCard.tsx +104 -37
- package/src/components/ProductOverview/ProductOverview.tsx +10 -3
- package/src/components/ProgressBadge/ProgressBadge.tsx +14 -8
- package/src/components/ProjectionMarker/ProjectionMarker.tsx +9 -2
- package/src/components/Radio/Radio.tsx +8 -9
- package/src/components/RechargeCard/RechargeCard.tsx +31 -31
- package/src/components/SavingsGoalSummary/SavingsGoalSummary.tsx +105 -13
- package/src/components/ScrollArea/ScrollArea.tsx +200 -0
- package/src/components/Section/Section.tsx +36 -29
- package/src/components/Slider/Slider.tsx +9 -2
- package/src/components/Stack/Stack.tsx +131 -0
- package/src/components/StatusHero/StatusHero.tsx +14 -14
- package/src/components/Stepper/Step.tsx +16 -18
- package/src/components/Stepper/StepLabel.tsx +16 -27
- package/src/components/Stepper/Stepper.tsx +3 -4
- package/src/components/SuggestiveSearch/SuggestiveSearch.tsx +20 -21
- package/src/components/SummaryTile/SummaryTile.tsx +9 -2
- package/src/components/SupportText/SupportText.tsx +6 -6
- package/src/components/SupportText/SupportTextIcon.tsx +2 -2
- package/src/components/Table/Table.tsx +449 -0
- package/src/components/Text/Text.tsx +28 -3
- package/src/components/TextInput/TextInput.tsx +21 -15
- package/src/components/TextSegment/TextSegment.tsx +27 -2
- package/src/components/ThreadHero/ThreadHero.tsx +27 -20
- package/src/components/Title/Title.tsx +50 -17
- package/src/components/Toast/Toast.tsx +24 -17
- package/src/components/Toggle/Toggle.tsx +5 -10
- package/src/components/Tooltip/Tooltip.tsx +12 -12
- package/src/components/TransactionBubble/TransactionBubble.tsx +22 -15
- package/src/components/TransactionDetails/TransactionDetails.tsx +10 -10
- package/src/components/TransactionStatus/TransactionStatus.tsx +18 -11
- package/src/components/UpiHandle/UpiHandle.tsx +24 -18
- package/src/components/index.ts +25 -2
- package/src/design-tokens/Coin Variables-variables-full.json +1 -1
- package/src/design-tokens/figma-modes.generated.ts +51 -42
- package/src/icons/components/Icon4g.tsx +11 -0
- package/src/icons/components/Icon4gltedata.tsx +11 -0
- package/src/icons/components/Icon5g.tsx +11 -0
- package/src/icons/components/Icon5gdoubleplus.tsx +11 -0
- package/src/icons/components/Icon5gplus.tsx +11 -0
- package/src/icons/components/IconAdblocker.tsx +11 -0
- package/src/icons/components/IconAdblockplus.tsx +11 -0
- package/src/icons/components/IconAnalytics.tsx +11 -0
- package/src/icons/components/IconAnalyticsdata.tsx +11 -0
- package/src/icons/components/IconAnalyticspiechart.tsx +11 -0
- package/src/icons/components/IconAnalyticspiecharttree.tsx +11 -0
- package/src/icons/components/IconAnalyticspiecharttwo.tsx +11 -0
- package/src/icons/components/IconCompoundinterest.tsx +11 -0
- package/src/icons/components/IconConsumptionaccounted.tsx +11 -0
- package/src/icons/components/IconConsumptionaverage.tsx +11 -0
- package/src/icons/components/IconConsumptionhigh.tsx +11 -0
- package/src/icons/components/IconConsumptionlow.tsx +11 -0
- package/src/icons/components/IconConsumptionunaccounted.tsx +11 -0
- package/src/icons/components/IconCsvdoc.tsx +11 -0
- package/src/icons/components/IconDatabase.tsx +11 -0
- package/src/icons/components/IconDigitalecosystem.tsx +11 -0
- package/src/icons/components/IconDigitalselfservice.tsx +11 -0
- package/src/icons/components/IconDistribution.tsx +11 -0
- package/src/icons/components/IconDocument.tsx +11 -0
- package/src/icons/components/IconDocumentdoc.tsx +11 -0
- package/src/icons/components/IconDocumentjpg.tsx +11 -0
- package/src/icons/components/IconDocumentodt.tsx +11 -0
- package/src/icons/components/IconDocumentpdf.tsx +11 -0
- package/src/icons/components/IconDocumentpng.tsx +11 -0
- package/src/icons/components/IconDocumentraw.tsx +11 -0
- package/src/icons/components/IconDocumentrtf.tsx +11 -0
- package/src/icons/components/IconDocumentsettings.tsx +11 -0
- package/src/icons/components/IconDocumenttif.tsx +11 -0
- package/src/icons/components/IconDocumenttxt.tsx +11 -0
- package/src/icons/components/IconDocumentunknown.tsx +11 -0
- package/src/icons/components/IconDocumentxls.tsx +11 -0
- package/src/icons/components/IconDocumentxlsx.tsx +11 -0
- package/src/icons/components/IconFilerequest.tsx +11 -0
- package/src/icons/components/IconFilesend.tsx +11 -0
- package/src/icons/components/IconFileshare.tsx +11 -0
- package/src/icons/components/IconFindinpage.tsx +11 -0
- package/src/icons/components/IconFolder.tsx +11 -0
- package/src/icons/components/IconFolderbookmarks.tsx +11 -0
- package/src/icons/components/IconFolderfavorites.tsx +11 -0
- package/src/icons/components/IconFolderlocked.tsx +11 -0
- package/src/icons/components/IconFoldermovefiles.tsx +11 -0
- package/src/icons/components/IconFolderpublic.tsx +11 -0
- package/src/icons/components/IconFolderrated.tsx +11 -0
- package/src/icons/components/IconFolderrequest.tsx +11 -0
- package/src/icons/components/IconForm.tsx +11 -0
- package/src/icons/components/IconFormadd.tsx +11 -0
- package/src/icons/components/IconForms.tsx +11 -0
- package/src/icons/components/IconGraphincreasing.tsx +11 -0
- package/src/icons/components/IconGraphlow.tsx +11 -0
- package/src/icons/components/IconGraphtable.tsx +11 -0
- package/src/icons/components/IconHealthreport.tsx +11 -0
- package/src/icons/components/IconHubmode.tsx +11 -0
- package/src/icons/components/IconInfrastructure.tsx +11 -0
- package/src/icons/components/IconInterestlow.tsx +11 -0
- package/src/icons/components/IconLte.tsx +11 -0
- package/src/icons/components/IconNetworkfuture.tsx +11 -0
- package/src/icons/components/IconPagesettings.tsx +11 -0
- package/src/icons/components/IconPptxdoc.tsx +11 -0
- package/src/icons/components/IconPreferrednumber.tsx +11 -0
- package/src/icons/components/IconPremiumnumber.tsx +11 -0
- package/src/icons/components/IconProjection.tsx +11 -0
- package/src/icons/components/IconRequest.tsx +11 -0
- package/src/icons/components/IconRoutestraffic.tsx +11 -0
- package/src/icons/components/IconTechnology.tsx +11 -0
- package/src/icons/components/IconVolte.tsx +11 -0
- package/src/icons/components/IconVonr.tsx +11 -0
- package/src/icons/components/IconVowifi.tsx +11 -0
- package/src/icons/components/IconVpndata.tsx +11 -0
- package/src/icons/components/index.ts +73 -0
- package/src/icons/registry.ts +293 -1
- package/src/{components/ProductMerchandisingCard → utils/GlassFill}/GlassFill.tsx +32 -3
- package/src/{components/ProductMerchandisingCard → utils/GlassFill}/GlassFill.web.tsx +25 -4
- package/src/utils/index.ts +2 -0
- package/src/utils/react-utils.ts +132 -0
- package/src/utils/shadow.ts +219 -0
- package/src/utils/web-platform-utils.ts +68 -0
- package/lib/commonjs/components/MediaCard/GlassFill.js +0 -62
- package/lib/commonjs/components/MediaCard/GlassFill.web.js +0 -48
- package/lib/module/components/MediaCard/GlassFill.js +0 -57
- package/lib/module/components/MediaCard/GlassFill.web.js +0 -43
- package/lib/typescript/src/components/MediaCard/GlassFill.d.ts +0 -47
- package/lib/typescript/src/components/MediaCard/GlassFill.web.d.ts +0 -20
- package/src/components/MediaCard/GlassFill.tsx +0 -89
- package/src/components/MediaCard/GlassFill.web.tsx +0 -53
|
@@ -0,0 +1,449 @@
|
|
|
1
|
+
import React from 'react'
|
|
2
|
+
import {
|
|
3
|
+
View,
|
|
4
|
+
Text,
|
|
5
|
+
Pressable,
|
|
6
|
+
ScrollView,
|
|
7
|
+
Platform,
|
|
8
|
+
type StyleProp,
|
|
9
|
+
type ViewStyle,
|
|
10
|
+
type TextStyle,
|
|
11
|
+
} from 'react-native'
|
|
12
|
+
import { getVariableByName } from '../../design-tokens/figma-variables-resolver'
|
|
13
|
+
import { EMPTY_MODES, cloneChildrenWithModes } from '../../utils/react-utils'
|
|
14
|
+
import type { Modes } from '../../design-tokens'
|
|
15
|
+
|
|
16
|
+
/* -------------------------------------------------------------------------------------------------
|
|
17
|
+
* Shared types & token resolution
|
|
18
|
+
* -----------------------------------------------------------------------------------------------*/
|
|
19
|
+
|
|
20
|
+
export type TableCellAlign = 'left' | 'center' | 'right'
|
|
21
|
+
|
|
22
|
+
/** Resolved styling for a header cell and a body cell, derived from design tokens. */
|
|
23
|
+
type ResolvedTableTokens = {
|
|
24
|
+
headerBg: string
|
|
25
|
+
headerText: TextStyle
|
|
26
|
+
headerPaddingH: number
|
|
27
|
+
headerPaddingV: number
|
|
28
|
+
cellBg: string
|
|
29
|
+
cellText: TextStyle
|
|
30
|
+
cellPaddingH: number
|
|
31
|
+
cellPaddingV: number
|
|
32
|
+
borderColor: string
|
|
33
|
+
borderSize: number
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
const toWeight = (w: number | string): TextStyle['fontWeight'] =>
|
|
37
|
+
(typeof w === 'number' ? `${w}` : w) as TextStyle['fontWeight']
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* Resolve every token the table family needs in one place. Sub-components call
|
|
41
|
+
* this with their cascaded `modes` so they render correctly both inside a
|
|
42
|
+
* `Table` and when used standalone. Fallbacks mirror the Figma node values
|
|
43
|
+
* (`tableCell/*`, `tableHeader/*`) so the component is faithful even before the
|
|
44
|
+
* tokens are published to the local store.
|
|
45
|
+
*/
|
|
46
|
+
function resolveTableTokens(modes: Modes): ResolvedTableTokens {
|
|
47
|
+
const headerFontFamily =
|
|
48
|
+
(getVariableByName('tableHeader/label/fontfamily', modes) as string) ?? 'JioType Var'
|
|
49
|
+
const headerFontSize = (getVariableByName('tableHeader/label/fontsize', modes) as number) ?? 14
|
|
50
|
+
const headerFontWeight =
|
|
51
|
+
(getVariableByName('tableHeader/label/fontweight', modes) as number | string) ?? 600
|
|
52
|
+
|
|
53
|
+
const cellFontFamily =
|
|
54
|
+
(getVariableByName('tableCell/label/fontfamily', modes) as string) ?? 'JioType Var'
|
|
55
|
+
const cellFontSize = (getVariableByName('tableCell/label/fontsize', modes) as number) ?? 14
|
|
56
|
+
const cellFontWeight =
|
|
57
|
+
(getVariableByName('tableCell/label/fontweight', modes) as number | string) ?? 400
|
|
58
|
+
|
|
59
|
+
return {
|
|
60
|
+
headerBg: (getVariableByName('tableHeader/background/color', modes) as string) ?? '#f5f5f5',
|
|
61
|
+
headerPaddingH: (getVariableByName('tableHeader/padding/horizontal', modes) as number) ?? 12,
|
|
62
|
+
headerPaddingV: (getVariableByName('tableHeader/padding/vertical', modes) as number) ?? 12,
|
|
63
|
+
headerText: {
|
|
64
|
+
color: (getVariableByName('tableHeader/label/color', modes) as string) ?? '#000000',
|
|
65
|
+
fontFamily: headerFontFamily,
|
|
66
|
+
fontSize: headerFontSize,
|
|
67
|
+
fontWeight: toWeight(headerFontWeight),
|
|
68
|
+
lineHeight: 20,
|
|
69
|
+
},
|
|
70
|
+
cellBg: (getVariableByName('tableCell/background/color', modes) as string) ?? '#ffffff',
|
|
71
|
+
cellPaddingH: (getVariableByName('tableCell/padding/horizontal', modes) as number) ?? 12,
|
|
72
|
+
cellPaddingV: (getVariableByName('tableCell/padding/vertical', modes) as number) ?? 12,
|
|
73
|
+
cellText: {
|
|
74
|
+
color: (getVariableByName('tableCell/label/color', modes) as string) ?? '#000000',
|
|
75
|
+
fontFamily: cellFontFamily,
|
|
76
|
+
fontSize: cellFontSize,
|
|
77
|
+
fontWeight: toWeight(cellFontWeight),
|
|
78
|
+
lineHeight: 20,
|
|
79
|
+
},
|
|
80
|
+
borderColor: (getVariableByName('tableCell/border/color', modes) as string) ?? '#eeeeee',
|
|
81
|
+
borderSize: (getVariableByName('tableCell/border/size', modes) as number) ?? 1,
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
const alignToJustify = (align: TableCellAlign): ViewStyle['justifyContent'] =>
|
|
86
|
+
align === 'center' ? 'center' : align === 'right' ? 'flex-end' : 'flex-start'
|
|
87
|
+
|
|
88
|
+
/** Renders text children through the resolved label style; passes elements through untouched. */
|
|
89
|
+
function renderCellContent(
|
|
90
|
+
children: React.ReactNode,
|
|
91
|
+
textStyle: TextStyle,
|
|
92
|
+
align: TableCellAlign,
|
|
93
|
+
modes: Modes,
|
|
94
|
+
): React.ReactNode {
|
|
95
|
+
if (children == null || children === false) return null
|
|
96
|
+
if (typeof children === 'string' || typeof children === 'number') {
|
|
97
|
+
return <Text style={[textStyle, { textAlign: align }]}>{children}</Text>
|
|
98
|
+
}
|
|
99
|
+
return cloneChildrenWithModes(children, modes)
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
/* -------------------------------------------------------------------------------------------------
|
|
103
|
+
* Table.Cell — body cell (Figma `table-cell`, node 603:23)
|
|
104
|
+
* -----------------------------------------------------------------------------------------------*/
|
|
105
|
+
|
|
106
|
+
export type TableCellProps = {
|
|
107
|
+
children?: React.ReactNode
|
|
108
|
+
/** Horizontal alignment of the cell content. @default 'left' */
|
|
109
|
+
align?: TableCellAlign
|
|
110
|
+
/** Fixed cell width. Omit to let the cell flex. */
|
|
111
|
+
width?: number
|
|
112
|
+
/** Flex-grow weight when `width` is not set. @default 1 */
|
|
113
|
+
flex?: number
|
|
114
|
+
/** Drop the right divider (used for the last column). @default false */
|
|
115
|
+
isLastColumn?: boolean
|
|
116
|
+
/** Drop the bottom divider (used for the last row). @default false */
|
|
117
|
+
isLastRow?: boolean
|
|
118
|
+
modes?: Modes
|
|
119
|
+
style?: StyleProp<ViewStyle>
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
/**
|
|
123
|
+
* A single body cell. White background with a bottom + right divider, matching
|
|
124
|
+
* the Figma `table-cell` sub-component. String/number children are rendered
|
|
125
|
+
* with the token label style; any element is rendered as-is.
|
|
126
|
+
*/
|
|
127
|
+
function TableCell({
|
|
128
|
+
children,
|
|
129
|
+
align = 'left',
|
|
130
|
+
width,
|
|
131
|
+
flex = 1,
|
|
132
|
+
isLastColumn = false,
|
|
133
|
+
isLastRow = false,
|
|
134
|
+
modes = EMPTY_MODES,
|
|
135
|
+
style,
|
|
136
|
+
}: TableCellProps) {
|
|
137
|
+
const t = resolveTableTokens(modes)
|
|
138
|
+
return (
|
|
139
|
+
<View
|
|
140
|
+
style={[
|
|
141
|
+
{
|
|
142
|
+
backgroundColor: t.cellBg,
|
|
143
|
+
flexDirection: 'row',
|
|
144
|
+
alignItems: 'center',
|
|
145
|
+
justifyContent: alignToJustify(align),
|
|
146
|
+
paddingHorizontal: t.cellPaddingH,
|
|
147
|
+
paddingVertical: t.cellPaddingV,
|
|
148
|
+
borderColor: t.borderColor,
|
|
149
|
+
borderBottomWidth: isLastRow ? 0 : t.borderSize,
|
|
150
|
+
borderRightWidth: isLastColumn ? 0 : t.borderSize,
|
|
151
|
+
...(width != null ? { width } : { flex, minWidth: 0 }),
|
|
152
|
+
},
|
|
153
|
+
style,
|
|
154
|
+
]}
|
|
155
|
+
>
|
|
156
|
+
{renderCellContent(children, t.cellText, align, modes)}
|
|
157
|
+
</View>
|
|
158
|
+
)
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
/* -------------------------------------------------------------------------------------------------
|
|
162
|
+
* Table.HeaderCell — header cell (Figma `table header wrap`, node 603:21)
|
|
163
|
+
* -----------------------------------------------------------------------------------------------*/
|
|
164
|
+
|
|
165
|
+
export type TableHeaderCellProps = {
|
|
166
|
+
children?: React.ReactNode
|
|
167
|
+
/** Horizontal alignment of the header content. @default 'left' */
|
|
168
|
+
align?: TableCellAlign
|
|
169
|
+
/** Fixed cell width. Omit to let the cell flex. */
|
|
170
|
+
width?: number
|
|
171
|
+
/** Flex-grow weight when `width` is not set. @default 1 */
|
|
172
|
+
flex?: number
|
|
173
|
+
modes?: Modes
|
|
174
|
+
style?: StyleProp<ViewStyle>
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
/**
|
|
178
|
+
* A single header cell. Muted background with the bold token label style,
|
|
179
|
+
* matching the Figma `table header wrap` sub-component. Header cells carry no
|
|
180
|
+
* dividers; the header row draws a single bottom divider beneath them.
|
|
181
|
+
*/
|
|
182
|
+
function TableHeaderCell({
|
|
183
|
+
children,
|
|
184
|
+
align = 'left',
|
|
185
|
+
width,
|
|
186
|
+
flex = 1,
|
|
187
|
+
modes = EMPTY_MODES,
|
|
188
|
+
style,
|
|
189
|
+
}: TableHeaderCellProps) {
|
|
190
|
+
const t = resolveTableTokens(modes)
|
|
191
|
+
return (
|
|
192
|
+
<View
|
|
193
|
+
style={[
|
|
194
|
+
{
|
|
195
|
+
backgroundColor: t.headerBg,
|
|
196
|
+
flexDirection: 'row',
|
|
197
|
+
alignItems: 'center',
|
|
198
|
+
justifyContent: alignToJustify(align),
|
|
199
|
+
paddingHorizontal: t.headerPaddingH,
|
|
200
|
+
paddingVertical: t.headerPaddingV,
|
|
201
|
+
...(width != null ? { width } : { flex, minWidth: 0 }),
|
|
202
|
+
},
|
|
203
|
+
style,
|
|
204
|
+
]}
|
|
205
|
+
>
|
|
206
|
+
{renderCellContent(children, t.headerText, align, modes)}
|
|
207
|
+
</View>
|
|
208
|
+
)
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
/* -------------------------------------------------------------------------------------------------
|
|
212
|
+
* Table.Header — row of header cells with a bottom divider
|
|
213
|
+
* -----------------------------------------------------------------------------------------------*/
|
|
214
|
+
|
|
215
|
+
export type TableHeaderProps = {
|
|
216
|
+
children?: React.ReactNode
|
|
217
|
+
modes?: Modes
|
|
218
|
+
style?: StyleProp<ViewStyle>
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
function TableHeader({ children, modes = EMPTY_MODES, style }: TableHeaderProps) {
|
|
222
|
+
const t = resolveTableTokens(modes)
|
|
223
|
+
return (
|
|
224
|
+
<View
|
|
225
|
+
style={[
|
|
226
|
+
{
|
|
227
|
+
flexDirection: 'row',
|
|
228
|
+
width: '100%',
|
|
229
|
+
borderBottomWidth: t.borderSize,
|
|
230
|
+
borderBottomColor: t.borderColor,
|
|
231
|
+
},
|
|
232
|
+
style,
|
|
233
|
+
]}
|
|
234
|
+
>
|
|
235
|
+
{cloneChildrenWithModes(children, modes)}
|
|
236
|
+
</View>
|
|
237
|
+
)
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
/* -------------------------------------------------------------------------------------------------
|
|
241
|
+
* Table.Row — row of body cells
|
|
242
|
+
* -----------------------------------------------------------------------------------------------*/
|
|
243
|
+
|
|
244
|
+
export type TableRowProps = {
|
|
245
|
+
children?: React.ReactNode
|
|
246
|
+
/** When provided, the whole row becomes pressable. */
|
|
247
|
+
onPress?: () => void
|
|
248
|
+
modes?: Modes
|
|
249
|
+
style?: StyleProp<ViewStyle>
|
|
250
|
+
}
|
|
251
|
+
|
|
252
|
+
function TableRow({ children, onPress, modes = EMPTY_MODES, style }: TableRowProps) {
|
|
253
|
+
const rowStyle: ViewStyle = { flexDirection: 'row', width: '100%' }
|
|
254
|
+
const content = cloneChildrenWithModes(children, modes)
|
|
255
|
+
if (onPress) {
|
|
256
|
+
return (
|
|
257
|
+
<Pressable
|
|
258
|
+
onPress={onPress}
|
|
259
|
+
accessibilityRole="button"
|
|
260
|
+
style={({ pressed }) => [rowStyle, pressed ? { opacity: 0.6 } : null, style]}
|
|
261
|
+
>
|
|
262
|
+
{content}
|
|
263
|
+
</Pressable>
|
|
264
|
+
)
|
|
265
|
+
}
|
|
266
|
+
return <View style={[rowStyle, style]}>{content}</View>
|
|
267
|
+
}
|
|
268
|
+
|
|
269
|
+
/* -------------------------------------------------------------------------------------------------
|
|
270
|
+
* Table.Body — column container for rows
|
|
271
|
+
* -----------------------------------------------------------------------------------------------*/
|
|
272
|
+
|
|
273
|
+
export type TableBodyProps = {
|
|
274
|
+
children?: React.ReactNode
|
|
275
|
+
modes?: Modes
|
|
276
|
+
style?: StyleProp<ViewStyle>
|
|
277
|
+
}
|
|
278
|
+
|
|
279
|
+
function TableBody({ children, modes = EMPTY_MODES, style }: TableBodyProps) {
|
|
280
|
+
return <View style={[{ width: '100%' }, style]}>{cloneChildrenWithModes(children, modes)}</View>
|
|
281
|
+
}
|
|
282
|
+
|
|
283
|
+
/* -------------------------------------------------------------------------------------------------
|
|
284
|
+
* Table — root (Figma `Table`, node 5732:3710)
|
|
285
|
+
* -----------------------------------------------------------------------------------------------*/
|
|
286
|
+
|
|
287
|
+
/**
|
|
288
|
+
* Column definition for the data-driven `Table` API. `T` is the shape of one
|
|
289
|
+
* row record.
|
|
290
|
+
*/
|
|
291
|
+
export type TableColumn<T> = {
|
|
292
|
+
/** Stable key; also used to read `row[key]` when no `render` is provided. */
|
|
293
|
+
key: string
|
|
294
|
+
/** Header label. Defaults to `key`. */
|
|
295
|
+
header?: React.ReactNode
|
|
296
|
+
/** Cell + header horizontal alignment. @default 'left' */
|
|
297
|
+
align?: TableCellAlign
|
|
298
|
+
/** Header-only alignment override. Defaults to `align`. */
|
|
299
|
+
headerAlign?: TableCellAlign
|
|
300
|
+
/** Fixed column width. Omit to let the column flex. */
|
|
301
|
+
width?: number
|
|
302
|
+
/** Flex-grow weight when `width` is not set. @default 1 */
|
|
303
|
+
flex?: number
|
|
304
|
+
/** Custom cell renderer. Falls back to `row[key]` as text. */
|
|
305
|
+
render?: (row: T, rowIndex: number) => React.ReactNode
|
|
306
|
+
}
|
|
307
|
+
|
|
308
|
+
export type TableProps<T = Record<string, unknown>> = {
|
|
309
|
+
/** Column definitions for the data-driven API. */
|
|
310
|
+
columns?: TableColumn<T>[]
|
|
311
|
+
/** Row records, one per table row. */
|
|
312
|
+
data?: T[]
|
|
313
|
+
/**
|
|
314
|
+
* Composition children (`Table.Header`, `Table.Body`, `Table.Row`,
|
|
315
|
+
* `Table.Cell`, `Table.HeaderCell`). When provided, `columns`/`data` are
|
|
316
|
+
* ignored and the children are rendered as-is.
|
|
317
|
+
*/
|
|
318
|
+
children?: React.ReactNode
|
|
319
|
+
/** Show the header row in the data-driven API. @default true */
|
|
320
|
+
showHeader?: boolean
|
|
321
|
+
/** Resolve a stable key per row. Defaults to the row index. */
|
|
322
|
+
getRowKey?: (row: T, index: number) => React.Key
|
|
323
|
+
/** Called when a row is pressed (data-driven API). Makes rows pressable. */
|
|
324
|
+
onRowPress?: (row: T, index: number) => void
|
|
325
|
+
/**
|
|
326
|
+
* Wrap the table in a horizontal `ScrollView`. Use with fixed-width columns
|
|
327
|
+
* for wide tables that exceed the viewport on mobile. @default false
|
|
328
|
+
*/
|
|
329
|
+
scrollable?: boolean
|
|
330
|
+
/** Accessibility label for the table container. */
|
|
331
|
+
accessibilityLabel?: string
|
|
332
|
+
/** Design token modes for theming (e.g. `{ "Color Mode": "Light" }`). */
|
|
333
|
+
modes?: Modes
|
|
334
|
+
/** Override the outer container style. */
|
|
335
|
+
style?: StyleProp<ViewStyle>
|
|
336
|
+
}
|
|
337
|
+
|
|
338
|
+
/**
|
|
339
|
+
* Table renders structured rows and columns. It supports two complementary
|
|
340
|
+
* usage styles that share the same token-driven styling:
|
|
341
|
+
*
|
|
342
|
+
* 1. **Data-driven** (recommended): pass `columns` + `data`. The header and body
|
|
343
|
+
* are built for you, columns stay aligned, and per-column `align`/`width`/
|
|
344
|
+
* `flex`/`render` give full control.
|
|
345
|
+
*
|
|
346
|
+
* 2. **Composition**: pass `Table.Header` / `Table.Body` / `Table.Row` /
|
|
347
|
+
* `Table.Cell` / `Table.HeaderCell` as children for bespoke layouts. These
|
|
348
|
+
* sub-components are also exported standalone.
|
|
349
|
+
*
|
|
350
|
+
* Implementation of Figma node `5732:3710` (`Table`) with sub-components
|
|
351
|
+
* `603:23` (`table-cell`) and `603:21` (`table header wrap`).
|
|
352
|
+
*
|
|
353
|
+
* @component
|
|
354
|
+
*/
|
|
355
|
+
function Table<T = Record<string, unknown>>({
|
|
356
|
+
columns,
|
|
357
|
+
data,
|
|
358
|
+
children,
|
|
359
|
+
showHeader = true,
|
|
360
|
+
getRowKey,
|
|
361
|
+
onRowPress,
|
|
362
|
+
scrollable = false,
|
|
363
|
+
accessibilityLabel,
|
|
364
|
+
modes = EMPTY_MODES,
|
|
365
|
+
style,
|
|
366
|
+
}: TableProps<T>) {
|
|
367
|
+
const isComposition = children != null
|
|
368
|
+
|
|
369
|
+
const body = isComposition ? (
|
|
370
|
+
cloneChildrenWithModes(children, modes)
|
|
371
|
+
) : (
|
|
372
|
+
<>
|
|
373
|
+
{showHeader && columns && columns.length > 0 && (
|
|
374
|
+
<TableHeader modes={modes}>
|
|
375
|
+
{columns.map((col) => (
|
|
376
|
+
<TableHeaderCell
|
|
377
|
+
key={col.key}
|
|
378
|
+
align={col.headerAlign ?? col.align ?? 'left'}
|
|
379
|
+
width={col.width}
|
|
380
|
+
flex={col.flex ?? 1}
|
|
381
|
+
modes={modes}
|
|
382
|
+
>
|
|
383
|
+
{col.header ?? col.key}
|
|
384
|
+
</TableHeaderCell>
|
|
385
|
+
))}
|
|
386
|
+
</TableHeader>
|
|
387
|
+
)}
|
|
388
|
+
{columns && data && data.length > 0 && (
|
|
389
|
+
<TableBody modes={modes}>
|
|
390
|
+
{data.map((row, rowIndex) => {
|
|
391
|
+
const isLastRow = rowIndex === data.length - 1
|
|
392
|
+
return (
|
|
393
|
+
<TableRow
|
|
394
|
+
key={getRowKey?.(row, rowIndex) ?? rowIndex}
|
|
395
|
+
onPress={onRowPress ? () => onRowPress(row, rowIndex) : undefined}
|
|
396
|
+
modes={modes}
|
|
397
|
+
>
|
|
398
|
+
{columns.map((col, colIndex) => (
|
|
399
|
+
<TableCell
|
|
400
|
+
key={col.key}
|
|
401
|
+
align={col.align ?? 'left'}
|
|
402
|
+
width={col.width}
|
|
403
|
+
flex={col.flex ?? 1}
|
|
404
|
+
isLastColumn={colIndex === columns.length - 1}
|
|
405
|
+
isLastRow={isLastRow}
|
|
406
|
+
modes={modes}
|
|
407
|
+
>
|
|
408
|
+
{col.render
|
|
409
|
+
? col.render(row, rowIndex)
|
|
410
|
+
: (row as Record<string, unknown>)[col.key] as React.ReactNode}
|
|
411
|
+
</TableCell>
|
|
412
|
+
))}
|
|
413
|
+
</TableRow>
|
|
414
|
+
)
|
|
415
|
+
})}
|
|
416
|
+
</TableBody>
|
|
417
|
+
)}
|
|
418
|
+
</>
|
|
419
|
+
)
|
|
420
|
+
|
|
421
|
+
const container = (
|
|
422
|
+
<View
|
|
423
|
+
accessibilityRole={Platform.OS === 'web' ? ('table' as any) : undefined}
|
|
424
|
+
accessibilityLabel={accessibilityLabel}
|
|
425
|
+
style={[{ overflow: 'hidden' }, !scrollable && { width: '100%' }, style]}
|
|
426
|
+
>
|
|
427
|
+
{body}
|
|
428
|
+
</View>
|
|
429
|
+
)
|
|
430
|
+
|
|
431
|
+
if (scrollable) {
|
|
432
|
+
return (
|
|
433
|
+
<ScrollView horizontal showsHorizontalScrollIndicator={false}>
|
|
434
|
+
{container}
|
|
435
|
+
</ScrollView>
|
|
436
|
+
)
|
|
437
|
+
}
|
|
438
|
+
return container
|
|
439
|
+
}
|
|
440
|
+
|
|
441
|
+
Table.Header = TableHeader
|
|
442
|
+
Table.HeaderCell = TableHeaderCell
|
|
443
|
+
Table.Body = TableBody
|
|
444
|
+
Table.Row = TableRow
|
|
445
|
+
Table.Cell = TableCell
|
|
446
|
+
|
|
447
|
+
export { TableHeader, TableHeaderCell, TableBody, TableRow, TableCell }
|
|
448
|
+
|
|
449
|
+
export default Table
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React from 'react'
|
|
2
2
|
import { Text as RNText, type TextStyle, type StyleProp } from 'react-native'
|
|
3
3
|
import { getVariableByName } from '../../design-tokens/figma-variables-resolver'
|
|
4
|
-
import { EMPTY_MODES } from '../../utils/react-utils'
|
|
4
|
+
import { EMPTY_MODES, resolveTextLayout } from '../../utils/react-utils'
|
|
5
5
|
import Skeleton from '../../skeleton/Skeleton'
|
|
6
6
|
import { useSkeleton } from '../../skeleton/SkeletonGroup'
|
|
7
7
|
import type { Modes } from '../../design-tokens'
|
|
@@ -26,6 +26,21 @@ export type TextProps = {
|
|
|
26
26
|
style?: StyleProp<TextStyle>
|
|
27
27
|
/** Number of lines to limit the text to. */
|
|
28
28
|
numberOfLines?: number
|
|
29
|
+
/**
|
|
30
|
+
* When `true`, disables text truncation entirely: the trailing ellipsis (`…`)
|
|
31
|
+
* is never shown and any `numberOfLines` clamp is ignored. The text is also
|
|
32
|
+
* never shrunk by a tight parent — it keeps its full intrinsic size and
|
|
33
|
+
* overflows (even breaking the parent layout) rather than clipping into an
|
|
34
|
+
* ellipsis. It still wraps onto multiple lines.
|
|
35
|
+
*/
|
|
36
|
+
disableTruncation?: boolean
|
|
37
|
+
/**
|
|
38
|
+
* When `true`, forces the text onto a single line with no wrapping (implies
|
|
39
|
+
* {@link disableTruncation}). On web the line overflows horizontally —
|
|
40
|
+
* brutally breaking the parent layout if it has to — instead of wrapping or
|
|
41
|
+
* truncating.
|
|
42
|
+
*/
|
|
43
|
+
singleLine?: boolean
|
|
29
44
|
/**
|
|
30
45
|
* Explicit per-instance loading override. When `true`, this `Text` renders
|
|
31
46
|
* a skeleton placeholder regardless of any surrounding `<SkeletonGroup>`.
|
|
@@ -59,6 +74,8 @@ function Text({
|
|
|
59
74
|
modes = EMPTY_MODES,
|
|
60
75
|
style,
|
|
61
76
|
numberOfLines,
|
|
77
|
+
disableTruncation,
|
|
78
|
+
singleLine,
|
|
62
79
|
loading,
|
|
63
80
|
skeletonWidth,
|
|
64
81
|
skeletonLines,
|
|
@@ -121,10 +138,18 @@ function Text({
|
|
|
121
138
|
? text
|
|
122
139
|
: 'Korem ipsum '
|
|
123
140
|
|
|
141
|
+
// Layout `style` is merged after the consumer `style` so the brutal overflow
|
|
142
|
+
// / no-wrap behaviour always wins.
|
|
143
|
+
const { style: layoutStyle, ...truncation } = resolveTextLayout({
|
|
144
|
+
disableTruncation,
|
|
145
|
+
singleLine,
|
|
146
|
+
numberOfLines,
|
|
147
|
+
})
|
|
148
|
+
|
|
124
149
|
return (
|
|
125
150
|
<RNText
|
|
126
|
-
style={[textStyle, style]}
|
|
127
|
-
|
|
151
|
+
style={[textStyle, style, layoutStyle]}
|
|
152
|
+
{...truncation}
|
|
128
153
|
>
|
|
129
154
|
{content}
|
|
130
155
|
</RNText>
|
|
@@ -137,18 +137,18 @@ const TextInputBase = forwardRef<RNTextInput, TextInputProps>(function TextInput
|
|
|
137
137
|
const inputRef = useRef<RNTextInput>(null)
|
|
138
138
|
|
|
139
139
|
// Resolve container tokens
|
|
140
|
-
const backgroundColor = getVariableByName('textInput/background', modes)
|
|
141
|
-
const borderColor = getVariableByName('textInput/border/color', modes)
|
|
142
|
-
const paddingHorizontal = getVariableByName('textInput/horizontal/padding', modes)
|
|
143
|
-
const paddingVertical = getVariableByName('textInput/vertical/padding', modes)
|
|
144
|
-
const radius = getVariableByName('textInput/radius', modes)
|
|
140
|
+
const backgroundColor = getVariableByName('textInput/background', modes)
|
|
141
|
+
const borderColor = getVariableByName('textInput/border/color', modes)
|
|
142
|
+
const paddingHorizontal = getVariableByName('textInput/horizontal/padding', modes)
|
|
143
|
+
const paddingVertical = getVariableByName('textInput/vertical/padding', modes)
|
|
144
|
+
const radius = getVariableByName('textInput/radius', modes)
|
|
145
145
|
|
|
146
146
|
// Resolve text input typography tokens
|
|
147
|
-
const textColor = getVariableByName('textInput/label/color', modes)
|
|
148
|
-
const fontSize = getVariableByName('textInput/fontSize', modes)
|
|
149
|
-
const lineHeight = getVariableByName('textInput/lineHeight', modes)
|
|
150
|
-
const fontFamily = getVariableByName('textInput/fontFamily', modes)
|
|
151
|
-
const fontWeightRaw = getVariableByName('textInput/fontWeight', modes)
|
|
147
|
+
const textColor = getVariableByName('textInput/label/color', modes)
|
|
148
|
+
const fontSize = getVariableByName('textInput/fontSize', modes)
|
|
149
|
+
const lineHeight = getVariableByName('textInput/lineHeight', modes)
|
|
150
|
+
const fontFamily = getVariableByName('textInput/fontFamily', modes)
|
|
151
|
+
const fontWeightRaw = getVariableByName('textInput/fontWeight', modes)
|
|
152
152
|
const fontWeight =
|
|
153
153
|
typeof fontWeightRaw === 'number' ? fontWeightRaw.toString() : fontWeightRaw
|
|
154
154
|
|
|
@@ -156,8 +156,8 @@ const TextInputBase = forwardRef<RNTextInput, TextInputProps>(function TextInput
|
|
|
156
156
|
const placeholderColor = makePlaceholderColor(textColor, 0.6)
|
|
157
157
|
|
|
158
158
|
// Resolve icon tokens (for default icon rendering if needed)
|
|
159
|
-
const iconColor = getVariableByName('textInput/icon/color', modes)
|
|
160
|
-
const iconSize = getVariableByName('textInput/icon/size', modes)
|
|
159
|
+
const iconColor = getVariableByName('textInput/icon/color', modes)
|
|
160
|
+
const iconSize = getVariableByName('textInput/icon/size', modes)
|
|
161
161
|
|
|
162
162
|
// Convert radius to React Native format (if 99999, use a large value for fully rounded)
|
|
163
163
|
const borderRadius = radius === 99999 ? 99999 : radius
|
|
@@ -182,7 +182,13 @@ const TextInputBase = forwardRef<RNTextInput, TextInputProps>(function TextInput
|
|
|
182
182
|
flex: 1,
|
|
183
183
|
color: textColor,
|
|
184
184
|
fontSize,
|
|
185
|
-
lineHeight
|
|
185
|
+
// iOS-only quirk: a single-line RNTextInput with an explicit `lineHeight`
|
|
186
|
+
// larger than `fontSize` puts all the extra space ABOVE the glyphs, so the
|
|
187
|
+
// text/placeholder sits below center (iOS native font-metrics bug — see
|
|
188
|
+
// facebook/react-native#39145 / #28012). The container centers via
|
|
189
|
+
// `alignItems: 'center'` + `minHeight`, so omit lineHeight on iOS
|
|
190
|
+
// (UITextField centers natively) and keep it on Android/Web where it's fine.
|
|
191
|
+
...(Platform.OS === 'ios' ? null : { lineHeight }),
|
|
186
192
|
fontFamily,
|
|
187
193
|
fontWeight,
|
|
188
194
|
padding: 0,
|
|
@@ -340,8 +346,8 @@ const TextInputSearch = forwardRef<RNTextInput, TextInputSearchProps>(function T
|
|
|
340
346
|
...rest
|
|
341
347
|
}: TextInputSearchProps, ref: React.Ref<RNTextInput>) {
|
|
342
348
|
// Resolve icon tokens for default search icon
|
|
343
|
-
const iconColor = getVariableByName('textInput/icon/color', modes)
|
|
344
|
-
const iconSize = getVariableByName('textInput/icon/size', modes)
|
|
349
|
+
const iconColor = getVariableByName('textInput/icon/color', modes)
|
|
350
|
+
const iconSize = getVariableByName('textInput/icon/size', modes)
|
|
345
351
|
|
|
346
352
|
// Use provided leading or default to search icon
|
|
347
353
|
const defaultLeading = (
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React, { useMemo } from 'react'
|
|
2
2
|
import { Text as RNText, type TextStyle, type StyleProp } from 'react-native'
|
|
3
3
|
import { getVariableByName } from '../../design-tokens/figma-variables-resolver'
|
|
4
|
-
import { EMPTY_MODES, cloneChildrenWithModes } from '../../utils/react-utils'
|
|
4
|
+
import { EMPTY_MODES, cloneChildrenWithModes, resolveTextLayout } from '../../utils/react-utils'
|
|
5
5
|
import type { Modes } from '../../design-tokens'
|
|
6
6
|
|
|
7
7
|
/**
|
|
@@ -58,6 +58,21 @@ export type TextSegmentProps = {
|
|
|
58
58
|
textAlign?: 'Left' | 'Center'
|
|
59
59
|
/** Clamp the paragraph to this many lines (truncates with an ellipsis). Applies to the whole composed line, not per-run. */
|
|
60
60
|
numberOfLines?: number
|
|
61
|
+
/**
|
|
62
|
+
* When `true`, disables truncation entirely: the trailing ellipsis (`…`) is
|
|
63
|
+
* never shown and the `numberOfLines` clamp is ignored. The paragraph is also
|
|
64
|
+
* never shrunk by a tight parent — it keeps its full intrinsic size and
|
|
65
|
+
* overflows (even breaking the parent layout) rather than clipping into an
|
|
66
|
+
* ellipsis. It still wraps onto multiple lines.
|
|
67
|
+
*/
|
|
68
|
+
disableTruncation?: boolean
|
|
69
|
+
/**
|
|
70
|
+
* When `true`, forces the whole paragraph onto a single line with no wrapping
|
|
71
|
+
* (implies {@link disableTruncation}). On web the line overflows horizontally
|
|
72
|
+
* — brutally breaking the parent layout if it has to — instead of wrapping or
|
|
73
|
+
* truncating.
|
|
74
|
+
*/
|
|
75
|
+
singleLine?: boolean
|
|
61
76
|
/** Mode configuration used for the base style and cascaded to every run/child. */
|
|
62
77
|
modes?: Modes
|
|
63
78
|
/** Style override applied to the outer paragraph (e.g. width constraints to force wrapping). */
|
|
@@ -125,6 +140,8 @@ function TextSegment({
|
|
|
125
140
|
children,
|
|
126
141
|
textAlign = 'Left',
|
|
127
142
|
numberOfLines,
|
|
143
|
+
disableTruncation,
|
|
144
|
+
singleLine,
|
|
128
145
|
modes = EMPTY_MODES,
|
|
129
146
|
style,
|
|
130
147
|
}: TextSegmentProps) {
|
|
@@ -156,8 +173,16 @@ function TextSegment({
|
|
|
156
173
|
// while still honouring any per-child `modes` override.
|
|
157
174
|
const content = hasChildren ? cloneChildrenWithModes(children, modes) : renderedSegments
|
|
158
175
|
|
|
176
|
+
// Layout `style` is merged after the consumer `style` so the brutal overflow
|
|
177
|
+
// / no-wrap behaviour always wins.
|
|
178
|
+
const { style: layoutStyle, ...truncation } = resolveTextLayout({
|
|
179
|
+
disableTruncation,
|
|
180
|
+
singleLine,
|
|
181
|
+
numberOfLines,
|
|
182
|
+
})
|
|
183
|
+
|
|
159
184
|
return (
|
|
160
|
-
<RNText style={[baseStyle, style]}
|
|
185
|
+
<RNText style={[baseStyle, style, layoutStyle]} {...truncation}>
|
|
161
186
|
{content}
|
|
162
187
|
</RNText>
|
|
163
188
|
)
|