jfs-components 0.0.5 → 0.0.7
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/lib/commonjs/components/Accordion/Accordion.mdx +1 -1
- package/lib/commonjs/components/ActionFooter/ActionFooter.js +2 -14
- package/lib/commonjs/components/ActionFooter/ActionFooter.js.map +1 -1
- package/lib/commonjs/components/ActionFooter/ActionFooter.mdx +1 -1
- package/lib/commonjs/components/ActionTile/ActionTile.js +10 -1
- package/lib/commonjs/components/ActionTile/ActionTile.js.map +1 -1
- package/lib/commonjs/components/ActionTile/ActionTile.mdx +5 -1
- package/lib/commonjs/components/AppBar/AppBar.js +109 -231
- package/lib/commonjs/components/AppBar/AppBar.js.map +1 -1
- package/lib/commonjs/components/AppBar/AppBar.mdx +51 -39
- package/lib/commonjs/components/Avatar/Avatar.mdx +9 -1
- package/lib/commonjs/components/AvatarGroup/AvatarGroup.mdx +9 -1
- package/lib/commonjs/components/Badge/Badge.mdx +1 -1
- package/lib/commonjs/components/Balance/Balance.js +77 -0
- package/lib/commonjs/components/Balance/Balance.js.map +1 -0
- package/lib/commonjs/components/Balance/Balance.mdx +62 -0
- package/lib/commonjs/components/BottomNav/BottomNav.js +9 -1
- package/lib/commonjs/components/BottomNav/BottomNav.js.map +1 -1
- package/lib/commonjs/components/BottomNav/BottomNav.mdx +5 -1
- package/lib/commonjs/components/BottomNavItem/BottomNavItem.js +9 -1
- package/lib/commonjs/components/BottomNavItem/BottomNavItem.js.map +1 -1
- package/lib/commonjs/components/BottomNavItem/BottomNavItem.mdx +5 -1
- package/lib/commonjs/components/Button/Button.mdx +5 -1
- package/lib/commonjs/components/ButtonGroup/ButtonGroup.js +64 -0
- package/lib/commonjs/components/ButtonGroup/ButtonGroup.js.map +1 -0
- package/lib/commonjs/components/ButtonGroup/ButtonGroup.mdx +56 -0
- package/lib/commonjs/components/Card/Card.mdx +1 -1
- package/lib/commonjs/components/CardFeedback/CardFeedback.mdx +5 -1
- package/lib/commonjs/components/ChipGroup/ChipGroup.js +54 -0
- package/lib/commonjs/components/ChipGroup/ChipGroup.js.map +1 -0
- package/lib/commonjs/components/ChipGroup/ChipGroup.mdx +40 -0
- package/lib/commonjs/components/ChipSelect/ChipSelect.js +103 -0
- package/lib/commonjs/components/ChipSelect/ChipSelect.js.map +1 -0
- package/lib/commonjs/components/ChipSelect/ChipSelect.mdx +80 -0
- package/lib/commonjs/components/CtaCard/CtaCard.js +15 -20
- package/lib/commonjs/components/CtaCard/CtaCard.js.map +1 -1
- package/lib/commonjs/components/CtaCard/CtaCard.mdx +1 -1
- package/lib/commonjs/components/Disclaimer/Disclaimer.js +9 -1
- package/lib/commonjs/components/Disclaimer/Disclaimer.js.map +1 -1
- package/lib/commonjs/components/Disclaimer/Disclaimer.mdx +5 -1
- package/lib/commonjs/components/Divider/Divider.mdx +5 -1
- package/lib/commonjs/components/Drawer/Drawer.mdx +9 -1
- package/lib/commonjs/components/EmptyState/EmptyState.js +138 -0
- package/lib/commonjs/components/EmptyState/EmptyState.js.map +1 -0
- package/lib/commonjs/components/EmptyState/EmptyState.mdx +73 -0
- package/lib/commonjs/components/FilterBar/FilterBar.mdx +1 -1
- package/lib/commonjs/components/HStack/HStack.js +67 -0
- package/lib/commonjs/components/HStack/HStack.js.map +1 -0
- package/lib/commonjs/components/HStack/HStack.mdx +44 -0
- package/lib/commonjs/components/IconButton/IconButton.mdx +5 -1
- package/lib/commonjs/components/IconCapsule/IconCapsule.js +12 -4
- package/lib/commonjs/components/IconCapsule/IconCapsule.js.map +1 -1
- package/lib/commonjs/components/IconCapsule/IconCapsule.mdx +12 -4
- package/lib/commonjs/components/Introduction.mdx +3 -98
- package/lib/commonjs/components/LazyList/LazyList.mdx +1 -1
- package/lib/commonjs/components/ListGroup/ListGroup.js +3 -30
- package/lib/commonjs/components/ListGroup/ListGroup.js.map +1 -1
- package/lib/commonjs/components/ListGroup/ListGroup.mdx +5 -1
- package/lib/commonjs/components/ListItem/ListItem.js +5 -37
- package/lib/commonjs/components/ListItem/ListItem.js.map +1 -1
- package/lib/commonjs/components/ListItem/ListItem.mdx +5 -1
- package/lib/commonjs/components/MediaCard/MediaCard.mdx +5 -1
- package/lib/commonjs/components/MerchantProfile/MerchantProfile.mdx +1 -1
- package/lib/commonjs/components/MoneyValue/MoneyValue.mdx +6 -2
- package/lib/commonjs/components/NavArrow/NavArrow.js +42 -17
- package/lib/commonjs/components/NavArrow/NavArrow.js.map +1 -1
- package/lib/commonjs/components/NavArrow/NavArrow.mdx +5 -1
- package/lib/commonjs/components/PageTitle/PageTitle.js +10 -1
- package/lib/commonjs/components/PageTitle/PageTitle.js.map +1 -1
- package/lib/commonjs/components/PageTitle/PageTitle.mdx +5 -1
- package/lib/commonjs/components/Screen/Screen.js +53 -0
- package/lib/commonjs/components/Screen/Screen.js.map +1 -0
- package/lib/commonjs/components/Screen/Screen.mdx +58 -0
- package/lib/commonjs/components/Section/Section.js +3 -25
- package/lib/commonjs/components/Section/Section.js.map +1 -1
- package/lib/commonjs/components/Section/Section.mdx +5 -1
- package/lib/commonjs/components/Stepper/Step.mdx +5 -1
- package/lib/commonjs/components/Stepper/StepLabel.mdx +5 -1
- package/lib/commonjs/components/Stepper/Stepper.mdx +1 -1
- package/lib/commonjs/components/SupportText/SupportText.js +83 -0
- package/lib/commonjs/components/SupportText/SupportText.js.map +1 -0
- package/lib/commonjs/components/SupportText/SupportText.mdx +48 -0
- package/lib/commonjs/components/SupportText/SupportTextIcon.js +47 -0
- package/lib/commonjs/components/SupportText/SupportTextIcon.js.map +1 -0
- package/lib/commonjs/components/SupportText/SupportTextIcon.mdx +35 -0
- package/lib/commonjs/components/SupportText/index.js +21 -0
- package/lib/commonjs/components/SupportText/index.js.map +1 -0
- package/lib/commonjs/components/TextInput/TextInput.mdx +9 -1
- package/lib/commonjs/components/ThreadHero/ThreadHero.mdx +1 -1
- package/lib/commonjs/components/Tooltip/Tooltip.mdx +5 -1
- package/lib/commonjs/components/TransactionBubble/TransactionBubble.mdx +1 -1
- package/lib/commonjs/components/TransactionDetails/TransactionDetails.js +2 -24
- package/lib/commonjs/components/TransactionDetails/TransactionDetails.js.map +1 -1
- package/lib/commonjs/components/TransactionDetails/TransactionDetails.mdx +1 -1
- package/lib/commonjs/components/TransactionStatus/TransactionStatus.mdx +1 -1
- package/lib/commonjs/components/UpiHandle/UpiHandle.js +9 -1
- package/lib/commonjs/components/UpiHandle/UpiHandle.js.map +1 -1
- package/lib/commonjs/components/UpiHandle/UpiHandle.mdx +5 -1
- package/lib/commonjs/components/VStack/VStack.js +73 -0
- package/lib/commonjs/components/VStack/VStack.js.map +1 -0
- package/lib/commonjs/components/VStack/VStack.mdx +44 -0
- package/lib/commonjs/components/index.js +28 -0
- package/lib/commonjs/components/index.js.map +1 -1
- package/lib/commonjs/design-tokens/JFS Variables-variables-full.json +1 -18633
- package/lib/commonjs/icons/ic_info.svg +1 -0
- package/lib/commonjs/icons/ic_warning.svg +1 -0
- package/lib/commonjs/icons/registry.js +2 -2
- package/lib/commonjs/icons/registry.js.map +1 -1
- package/lib/commonjs/utils/react-utils.js +47 -0
- package/lib/commonjs/utils/react-utils.js.map +1 -0
- package/lib/module/components/Accordion/Accordion.mdx +1 -1
- package/lib/module/components/ActionFooter/ActionFooter.js +2 -14
- package/lib/module/components/ActionFooter/ActionFooter.js.map +1 -1
- package/lib/module/components/ActionFooter/ActionFooter.mdx +1 -1
- package/lib/module/components/ActionTile/ActionTile.js +10 -1
- package/lib/module/components/ActionTile/ActionTile.js.map +1 -1
- package/lib/module/components/ActionTile/ActionTile.mdx +5 -1
- package/lib/module/components/AppBar/AppBar.js +109 -231
- package/lib/module/components/AppBar/AppBar.js.map +1 -1
- package/lib/module/components/AppBar/AppBar.mdx +51 -39
- package/lib/module/components/Avatar/Avatar.mdx +9 -1
- package/lib/module/components/AvatarGroup/AvatarGroup.mdx +9 -1
- package/lib/module/components/Badge/Badge.mdx +1 -1
- package/lib/module/components/Balance/Balance.js +72 -0
- package/lib/module/components/Balance/Balance.js.map +1 -0
- package/lib/module/components/Balance/Balance.mdx +62 -0
- package/lib/module/components/BottomNav/BottomNav.js +9 -1
- package/lib/module/components/BottomNav/BottomNav.js.map +1 -1
- package/lib/module/components/BottomNav/BottomNav.mdx +5 -1
- package/lib/module/components/BottomNavItem/BottomNavItem.js +9 -1
- package/lib/module/components/BottomNavItem/BottomNavItem.js.map +1 -1
- package/lib/module/components/BottomNavItem/BottomNavItem.mdx +5 -1
- package/lib/module/components/Button/Button.mdx +5 -1
- package/lib/module/components/ButtonGroup/ButtonGroup.js +59 -0
- package/lib/module/components/ButtonGroup/ButtonGroup.js.map +1 -0
- package/lib/module/components/ButtonGroup/ButtonGroup.mdx +56 -0
- package/lib/module/components/Card/Card.mdx +1 -1
- package/lib/module/components/CardFeedback/CardFeedback.mdx +5 -1
- package/lib/module/components/ChipGroup/ChipGroup.js +49 -0
- package/lib/module/components/ChipGroup/ChipGroup.js.map +1 -0
- package/lib/module/components/ChipGroup/ChipGroup.mdx +40 -0
- package/lib/module/components/ChipSelect/ChipSelect.js +98 -0
- package/lib/module/components/ChipSelect/ChipSelect.js.map +1 -0
- package/lib/module/components/ChipSelect/ChipSelect.mdx +80 -0
- package/lib/module/components/CtaCard/CtaCard.js +15 -20
- package/lib/module/components/CtaCard/CtaCard.js.map +1 -1
- package/lib/module/components/CtaCard/CtaCard.mdx +1 -1
- package/lib/module/components/Disclaimer/Disclaimer.js +9 -1
- package/lib/module/components/Disclaimer/Disclaimer.js.map +1 -1
- package/lib/module/components/Disclaimer/Disclaimer.mdx +5 -1
- package/lib/module/components/Divider/Divider.mdx +5 -1
- package/lib/module/components/Drawer/Drawer.mdx +9 -1
- package/lib/module/components/EmptyState/EmptyState.js +132 -0
- package/lib/module/components/EmptyState/EmptyState.js.map +1 -0
- package/lib/module/components/EmptyState/EmptyState.mdx +73 -0
- package/lib/module/components/FilterBar/FilterBar.mdx +1 -1
- package/lib/module/components/HStack/HStack.js +61 -0
- package/lib/module/components/HStack/HStack.js.map +1 -0
- package/lib/module/components/HStack/HStack.mdx +44 -0
- package/lib/module/components/IconButton/IconButton.mdx +5 -1
- package/lib/module/components/IconCapsule/IconCapsule.js +12 -4
- package/lib/module/components/IconCapsule/IconCapsule.js.map +1 -1
- package/lib/module/components/IconCapsule/IconCapsule.mdx +12 -4
- package/lib/module/components/Introduction.mdx +3 -98
- package/lib/module/components/LazyList/LazyList.mdx +1 -1
- package/lib/module/components/ListGroup/ListGroup.js +1 -30
- package/lib/module/components/ListGroup/ListGroup.js.map +1 -1
- package/lib/module/components/ListGroup/ListGroup.mdx +5 -1
- package/lib/module/components/ListItem/ListItem.js +1 -35
- package/lib/module/components/ListItem/ListItem.js.map +1 -1
- package/lib/module/components/ListItem/ListItem.mdx +5 -1
- package/lib/module/components/MediaCard/MediaCard.mdx +5 -1
- package/lib/module/components/MerchantProfile/MerchantProfile.mdx +1 -1
- package/lib/module/components/MoneyValue/MoneyValue.mdx +6 -2
- package/lib/module/components/NavArrow/NavArrow.js +42 -17
- package/lib/module/components/NavArrow/NavArrow.js.map +1 -1
- package/lib/module/components/NavArrow/NavArrow.mdx +5 -1
- package/lib/module/components/PageTitle/PageTitle.js +10 -1
- package/lib/module/components/PageTitle/PageTitle.js.map +1 -1
- package/lib/module/components/PageTitle/PageTitle.mdx +5 -1
- package/lib/module/components/Screen/Screen.js +47 -0
- package/lib/module/components/Screen/Screen.js.map +1 -0
- package/lib/module/components/Screen/Screen.mdx +58 -0
- package/lib/module/components/Section/Section.js +1 -23
- package/lib/module/components/Section/Section.js.map +1 -1
- package/lib/module/components/Section/Section.mdx +5 -1
- package/lib/module/components/Stepper/Step.mdx +5 -1
- package/lib/module/components/Stepper/StepLabel.mdx +5 -1
- package/lib/module/components/Stepper/Stepper.mdx +1 -1
- package/lib/module/components/SupportText/SupportText.js +78 -0
- package/lib/module/components/SupportText/SupportText.js.map +1 -0
- package/lib/module/components/SupportText/SupportText.mdx +48 -0
- package/lib/module/components/SupportText/SupportTextIcon.js +42 -0
- package/lib/module/components/SupportText/SupportTextIcon.js.map +1 -0
- package/lib/module/components/SupportText/SupportTextIcon.mdx +35 -0
- package/lib/module/components/SupportText/index.js +5 -0
- package/lib/module/components/SupportText/index.js.map +1 -0
- package/lib/module/components/TextInput/TextInput.mdx +9 -1
- package/lib/module/components/ThreadHero/ThreadHero.mdx +1 -1
- package/lib/module/components/Tooltip/Tooltip.mdx +5 -1
- package/lib/module/components/TransactionBubble/TransactionBubble.mdx +1 -1
- package/lib/module/components/TransactionDetails/TransactionDetails.js +2 -26
- package/lib/module/components/TransactionDetails/TransactionDetails.js.map +1 -1
- package/lib/module/components/TransactionDetails/TransactionDetails.mdx +1 -1
- package/lib/module/components/TransactionStatus/TransactionStatus.mdx +1 -1
- package/lib/module/components/UpiHandle/UpiHandle.js +9 -1
- package/lib/module/components/UpiHandle/UpiHandle.js.map +1 -1
- package/lib/module/components/UpiHandle/UpiHandle.mdx +5 -1
- package/lib/module/components/VStack/VStack.js +67 -0
- package/lib/module/components/VStack/VStack.js.map +1 -0
- package/lib/module/components/VStack/VStack.mdx +44 -0
- package/lib/module/components/index.js +4 -0
- package/lib/module/components/index.js.map +1 -1
- package/lib/module/design-tokens/JFS Variables-variables-full.json +1 -18633
- package/lib/module/design-tokens/figma-variables-resolver.js +2 -2
- package/lib/module/design-tokens/figma-variables-resolver.js.map +1 -1
- package/lib/module/icons/ic_info.svg +1 -0
- package/lib/module/icons/ic_warning.svg +1 -0
- package/lib/module/icons/registry.js +2 -2
- package/lib/module/icons/registry.js.map +1 -1
- package/lib/module/utils/react-utils.js +43 -0
- package/lib/module/utils/react-utils.js.map +1 -0
- package/lib/typescript/components/ActionFooter/ActionFooter.d.ts.map +1 -1
- package/lib/typescript/components/ActionTile/ActionTile.d.ts +1 -1
- package/lib/typescript/components/ActionTile/ActionTile.d.ts.map +1 -1
- package/lib/typescript/components/AppBar/AppBar.d.ts +34 -68
- package/lib/typescript/components/AppBar/AppBar.d.ts.map +1 -1
- package/lib/typescript/components/Balance/Balance.d.ts +44 -0
- package/lib/typescript/components/Balance/Balance.d.ts.map +1 -0
- package/lib/typescript/components/BottomNav/BottomNav.d.ts +1 -1
- package/lib/typescript/components/BottomNav/BottomNav.d.ts.map +1 -1
- package/lib/typescript/components/BottomNavItem/BottomNavItem.d.ts +1 -1
- package/lib/typescript/components/BottomNavItem/BottomNavItem.d.ts.map +1 -1
- package/lib/typescript/components/ButtonGroup/ButtonGroup.d.ts +36 -0
- package/lib/typescript/components/ButtonGroup/ButtonGroup.d.ts.map +1 -0
- package/lib/typescript/components/ChipGroup/ChipGroup.d.ts +29 -0
- package/lib/typescript/components/ChipGroup/ChipGroup.d.ts.map +1 -0
- package/lib/typescript/components/ChipSelect/ChipSelect.d.ts +47 -0
- package/lib/typescript/components/ChipSelect/ChipSelect.d.ts.map +1 -0
- package/lib/typescript/components/CtaCard/CtaCard.d.ts +1 -1
- package/lib/typescript/components/CtaCard/CtaCard.d.ts.map +1 -1
- package/lib/typescript/components/Disclaimer/Disclaimer.d.ts +1 -1
- package/lib/typescript/components/Disclaimer/Disclaimer.d.ts.map +1 -1
- package/lib/typescript/components/EmptyState/EmptyState.d.ts +38 -0
- package/lib/typescript/components/EmptyState/EmptyState.d.ts.map +1 -0
- package/lib/typescript/components/HStack/HStack.d.ts +41 -0
- package/lib/typescript/components/HStack/HStack.d.ts.map +1 -0
- package/lib/typescript/components/IconCapsule/IconCapsule.d.ts +1 -1
- package/lib/typescript/components/IconCapsule/IconCapsule.d.ts.map +1 -1
- package/lib/typescript/components/ListGroup/ListGroup.d.ts.map +1 -1
- package/lib/typescript/components/ListItem/ListItem.d.ts.map +1 -1
- package/lib/typescript/components/NavArrow/NavArrow.d.ts +3 -3
- package/lib/typescript/components/NavArrow/NavArrow.d.ts.map +1 -1
- package/lib/typescript/components/PageTitle/PageTitle.d.ts +1 -1
- package/lib/typescript/components/PageTitle/PageTitle.d.ts.map +1 -1
- package/lib/typescript/components/Screen/Screen.d.ts +23 -0
- package/lib/typescript/components/Screen/Screen.d.ts.map +1 -0
- package/lib/typescript/components/Section/Section.d.ts.map +1 -1
- package/lib/typescript/components/SupportText/SupportText.d.ts +34 -0
- package/lib/typescript/components/SupportText/SupportText.d.ts.map +1 -0
- package/lib/typescript/components/SupportText/SupportTextIcon.d.ts +10 -0
- package/lib/typescript/components/SupportText/SupportTextIcon.d.ts.map +1 -0
- package/lib/typescript/components/SupportText/index.d.ts +3 -0
- package/lib/typescript/components/SupportText/index.d.ts.map +1 -0
- package/lib/typescript/components/TransactionDetails/TransactionDetails.d.ts.map +1 -1
- package/lib/typescript/components/UpiHandle/UpiHandle.d.ts +1 -1
- package/lib/typescript/components/UpiHandle/UpiHandle.d.ts.map +1 -1
- package/lib/typescript/components/VStack/VStack.d.ts +41 -0
- package/lib/typescript/components/VStack/VStack.d.ts.map +1 -0
- package/lib/typescript/components/index.d.ts +4 -0
- package/lib/typescript/components/index.d.ts.map +1 -1
- package/lib/typescript/icons/registry.d.ts +1 -1
- package/lib/typescript/icons/registry.d.ts.map +1 -1
- package/lib/typescript/utils/react-utils.d.ts +7 -0
- package/lib/typescript/utils/react-utils.d.ts.map +1 -0
- package/package.json +7 -5
- package/src/components/.token-metadata.json +468 -12
- package/src/components/Accordion/Accordion.mdx +1 -1
- package/src/components/ActionFooter/ActionFooter.mdx +1 -1
- package/src/components/ActionFooter/ActionFooter.tsx +3 -12
- package/src/components/ActionTile/ActionTile.mdx +5 -1
- package/src/components/ActionTile/ActionTile.tsx +5 -1
- package/src/components/AppBar/AppBar.mdx +51 -39
- package/src/components/AppBar/AppBar.tsx +149 -263
- package/src/components/Avatar/Avatar.mdx +9 -1
- package/src/components/AvatarGroup/AvatarGroup.mdx +9 -1
- package/src/components/Badge/Badge.mdx +1 -1
- package/src/components/Balance/Balance.mdx +62 -0
- package/src/components/Balance/Balance.tsx +107 -0
- package/src/components/BottomNav/BottomNav.mdx +5 -1
- package/src/components/BottomNav/BottomNav.tsx +6 -3
- package/src/components/BottomNavItem/BottomNavItem.mdx +5 -1
- package/src/components/BottomNavItem/BottomNavItem.tsx +19 -16
- package/src/components/Button/Button.mdx +5 -1
- package/src/components/ButtonGroup/ButtonGroup.mdx +56 -0
- package/src/components/ButtonGroup/ButtonGroup.tsx +78 -0
- package/src/components/Card/Card.mdx +1 -1
- package/src/components/CardFeedback/CardFeedback.mdx +5 -1
- package/src/components/ChipGroup/ChipGroup.mdx +40 -0
- package/src/components/ChipGroup/ChipGroup.tsx +67 -0
- package/src/components/ChipSelect/ChipSelect.mdx +80 -0
- package/src/components/ChipSelect/ChipSelect.tsx +138 -0
- package/src/components/CtaCard/CtaCard.mdx +1 -1
- package/src/components/CtaCard/CtaCard.tsx +16 -21
- package/src/components/Disclaimer/Disclaimer.mdx +5 -1
- package/src/components/Disclaimer/Disclaimer.tsx +6 -3
- package/src/components/Divider/Divider.mdx +5 -1
- package/src/components/Drawer/Drawer.mdx +9 -1
- package/src/components/EmptyState/EmptyState.mdx +73 -0
- package/src/components/EmptyState/EmptyState.tsx +181 -0
- package/src/components/FilterBar/FilterBar.mdx +1 -1
- package/src/components/HStack/HStack.mdx +44 -0
- package/src/components/HStack/HStack.tsx +95 -0
- package/src/components/IconButton/IconButton.mdx +5 -1
- package/src/components/IconCapsule/IconCapsule.mdx +12 -4
- package/src/components/IconCapsule/IconCapsule.tsx +13 -10
- package/src/components/Introduction.mdx +3 -98
- package/src/components/LazyList/LazyList.mdx +1 -1
- package/src/components/ListGroup/ListGroup.mdx +5 -1
- package/src/components/ListGroup/ListGroup.tsx +5 -43
- package/src/components/ListItem/ListItem.mdx +5 -1
- package/src/components/ListItem/ListItem.tsx +15 -60
- package/src/components/MediaCard/MediaCard.mdx +5 -1
- package/src/components/MerchantProfile/MerchantProfile.mdx +1 -1
- package/src/components/MoneyValue/MoneyValue.mdx +6 -2
- package/src/components/NavArrow/NavArrow.mdx +5 -1
- package/src/components/NavArrow/NavArrow.tsx +48 -16
- package/src/components/PageTitle/PageTitle.mdx +5 -1
- package/src/components/PageTitle/PageTitle.tsx +8 -4
- package/src/components/Screen/Screen.mdx +58 -0
- package/src/components/Screen/Screen.tsx +60 -0
- package/src/components/Section/Section.mdx +5 -1
- package/src/components/Section/Section.tsx +17 -46
- package/src/components/Stepper/Step.mdx +5 -1
- package/src/components/Stepper/StepLabel.mdx +5 -1
- package/src/components/Stepper/Stepper.mdx +1 -1
- package/src/components/SupportText/SupportText.mdx +48 -0
- package/src/components/SupportText/SupportText.tsx +104 -0
- package/src/components/SupportText/SupportTextIcon.mdx +35 -0
- package/src/components/SupportText/SupportTextIcon.tsx +45 -0
- package/src/components/SupportText/index.ts +2 -0
- package/src/components/TextInput/TextInput.mdx +9 -1
- package/src/components/ThreadHero/ThreadHero.mdx +1 -1
- package/src/components/Tooltip/Tooltip.mdx +5 -1
- package/src/components/TransactionBubble/TransactionBubble.mdx +1 -1
- package/src/components/TransactionDetails/TransactionDetails.mdx +1 -1
- package/src/components/TransactionDetails/TransactionDetails.tsx +1 -38
- package/src/components/TransactionStatus/TransactionStatus.mdx +1 -1
- package/src/components/UpiHandle/UpiHandle.mdx +5 -1
- package/src/components/UpiHandle/UpiHandle.tsx +4 -1
- package/src/components/VStack/VStack.mdx +44 -0
- package/src/components/VStack/VStack.tsx +100 -0
- package/src/components/index.ts +4 -0
- package/src/design-tokens/JFS Variables-variables-full.json +1 -18633
- package/src/icons/ic_info.svg +1 -0
- package/src/icons/ic_warning.svg +1 -0
- package/src/icons/registry.ts +9 -1
- package/src/utils/react-utils.ts +51 -0
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import React from 'react';
|
|
4
|
+
import { View, Text } from 'react-native';
|
|
5
|
+
import { getVariableByName } from '../../design-tokens/figma-variables-resolver';
|
|
6
|
+
import MoneyValue from '../MoneyValue/MoneyValue';
|
|
7
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
8
|
+
/**
|
|
9
|
+
* Balance component that displays a title and a monetary value.
|
|
10
|
+
*
|
|
11
|
+
* @component
|
|
12
|
+
* @example
|
|
13
|
+
* ```jsx
|
|
14
|
+
* <Balance title="Total Balance" amount="12500" />
|
|
15
|
+
* ```
|
|
16
|
+
*/
|
|
17
|
+
function Balance({
|
|
18
|
+
title = "Total owed to people",
|
|
19
|
+
amount = "500",
|
|
20
|
+
currency = "₹",
|
|
21
|
+
modes = {},
|
|
22
|
+
style,
|
|
23
|
+
children
|
|
24
|
+
}) {
|
|
25
|
+
// Resolve design tokens
|
|
26
|
+
const gap = getVariableByName('balance/gap', modes) ?? 6;
|
|
27
|
+
|
|
28
|
+
// Title styles
|
|
29
|
+
const titleColor = getVariableByName('balance/title/foreground', modes) ?? '#0c0d10';
|
|
30
|
+
const titleFontSize = getVariableByName('balance/title/fontSize', modes) ?? 14;
|
|
31
|
+
const titleFontFamily = getVariableByName('balance/title/fontFamily', modes) ?? 'System';
|
|
32
|
+
const titleLineHeight = getVariableByName('balance/title/lineHeight', modes) ?? 18;
|
|
33
|
+
const titleFontWeightValue = getVariableByName('balance/title/fontWeight', modes) ?? 500;
|
|
34
|
+
const titleFontWeight = typeof titleFontWeightValue === 'number' ? titleFontWeightValue.toString() : titleFontWeightValue;
|
|
35
|
+
const containerStyle = {
|
|
36
|
+
flexDirection: 'column',
|
|
37
|
+
alignItems: 'flex-start',
|
|
38
|
+
gap: gap
|
|
39
|
+
};
|
|
40
|
+
const titleStyle = {
|
|
41
|
+
color: titleColor,
|
|
42
|
+
fontSize: titleFontSize,
|
|
43
|
+
fontFamily: titleFontFamily,
|
|
44
|
+
lineHeight: titleLineHeight,
|
|
45
|
+
fontWeight: titleFontWeight
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
// Handle slot children or default content
|
|
49
|
+
const content = React.Children.map(children, child => {
|
|
50
|
+
if (/*#__PURE__*/React.isValidElement(child)) {
|
|
51
|
+
return /*#__PURE__*/React.cloneElement(child, {
|
|
52
|
+
modes
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
return child;
|
|
56
|
+
});
|
|
57
|
+
return /*#__PURE__*/_jsxs(View, {
|
|
58
|
+
style: [containerStyle, style],
|
|
59
|
+
"data-node-id": "1986:6203",
|
|
60
|
+
children: [/*#__PURE__*/_jsx(Text, {
|
|
61
|
+
style: titleStyle,
|
|
62
|
+
"data-node-id": "1986:2613",
|
|
63
|
+
children: title
|
|
64
|
+
}), children ? content : /*#__PURE__*/_jsx(MoneyValue, {
|
|
65
|
+
value: amount,
|
|
66
|
+
currency: currency,
|
|
67
|
+
modes: modes
|
|
68
|
+
})]
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
export default Balance;
|
|
72
|
+
//# sourceMappingURL=Balance.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","View","Text","getVariableByName","MoneyValue","jsx","_jsx","jsxs","_jsxs","Balance","title","amount","currency","modes","style","children","gap","titleColor","titleFontSize","titleFontFamily","titleLineHeight","titleFontWeightValue","titleFontWeight","toString","containerStyle","flexDirection","alignItems","titleStyle","color","fontSize","fontFamily","lineHeight","fontWeight","content","Children","map","child","isValidElement","cloneElement","value"],"sourceRoot":"../../../../src","sources":["components/Balance/Balance.tsx"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,IAAI,EAAEC,IAAI,QAAwD,cAAc;AACzF,SAASC,iBAAiB,QAAQ,8CAA8C;AAChF,OAAOC,UAAU,MAAM,0BAA0B;AAAA,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAiCjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASC,OAAOA,CAAC;EACbC,KAAK,GAAG,sBAAsB;EAC9BC,MAAM,GAAG,KAAK;EACdC,QAAQ,GAAG,GAAG;EACdC,KAAK,GAAG,CAAC,CAAC;EACVC,KAAK;EACLC;AACU,CAAC,EAAE;EACb;EACA,MAAMC,GAAG,GAAGb,iBAAiB,CAAC,aAAa,EAAEU,KAAK,CAAC,IAAI,CAAC;;EAExD;EACA,MAAMI,UAAU,GAAGd,iBAAiB,CAAC,0BAA0B,EAAEU,KAAK,CAAC,IAAI,SAAS;EACpF,MAAMK,aAAa,GAAGf,iBAAiB,CAAC,wBAAwB,EAAEU,KAAK,CAAC,IAAI,EAAE;EAC9E,MAAMM,eAAe,GAAGhB,iBAAiB,CAAC,0BAA0B,EAAEU,KAAK,CAAC,IAAI,QAAQ;EACxF,MAAMO,eAAe,GAAGjB,iBAAiB,CAAC,0BAA0B,EAAEU,KAAK,CAAC,IAAI,EAAE;EAClF,MAAMQ,oBAAoB,GAAGlB,iBAAiB,CAAC,0BAA0B,EAAEU,KAAK,CAAC,IAAI,GAAG;EACxF,MAAMS,eAAe,GAAG,OAAOD,oBAAoB,KAAK,QAAQ,GAC1DA,oBAAoB,CAACE,QAAQ,CAAC,CAAC,GAC/BF,oBAAoB;EAE1B,MAAMG,cAAyB,GAAG;IAC9BC,aAAa,EAAE,QAAQ;IACvBC,UAAU,EAAE,YAAY;IACxBV,GAAG,EAAEA;EACT,CAAC;EAED,MAAMW,UAAqB,GAAG;IAC1BC,KAAK,EAAEX,UAAU;IACjBY,QAAQ,EAAEX,aAAa;IACvBY,UAAU,EAAEX,eAAe;IAC3BY,UAAU,EAAEX,eAAe;IAC3BY,UAAU,EAAEV;EAChB,CAAC;;EAED;EACA,MAAMW,OAAO,GAAGjC,KAAK,CAACkC,QAAQ,CAACC,GAAG,CAACpB,QAAQ,EAAGqB,KAAK,IAAK;IACpD,iBAAIpC,KAAK,CAACqC,cAAc,CAACD,KAAK,CAAC,EAAE;MAC7B,oBAAOpC,KAAK,CAACsC,YAAY,CAACF,KAAK,EAAE;QAAEvB;MAAM,CAAQ,CAAC;IACtD;IACA,OAAOuB,KAAK;EAChB,CAAC,CAAC;EAEF,oBACI5B,KAAA,CAACP,IAAI;IAACa,KAAK,EAAE,CAACU,cAAc,EAAEV,KAAK,CAAE;IAAC,gBAAa,WAAW;IAAAC,QAAA,gBAC1DT,IAAA,CAACJ,IAAI;MAACY,KAAK,EAAEa,UAAW;MAAC,gBAAa,WAAW;MAAAZ,QAAA,EAC5CL;IAAK,CACJ,CAAC,EACNK,QAAQ,GACLkB,OAAO,gBAEP3B,IAAA,CAACF,UAAU;MACPmC,KAAK,EAAE5B,MAAO;MACdC,QAAQ,EAAEA,QAAS;MACnBC,KAAK,EAAEA;IAAM,CAChB,CACJ;EAAA,CACC,CAAC;AAEf;AAEA,eAAeJ,OAAO","ignoreList":[]}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { Meta, Story, Canvas, ArgsTable } from '@storybook/addon-docs';
|
|
2
|
+
import Balance from './Balance';
|
|
3
|
+
import * as BalanceStories from './Balance.stories';
|
|
4
|
+
|
|
5
|
+
<Meta of={BalanceStories} />
|
|
6
|
+
|
|
7
|
+
# Balance
|
|
8
|
+
|
|
9
|
+
The `Balance` component displays a title and a monetary value, typically used to show total amounts or outstanding balances.
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
## Available Collections and Modes
|
|
13
|
+
|
|
14
|
+
This component does not use any design token collections with multiple modes.
|
|
15
|
+
## Usage
|
|
16
|
+
|
|
17
|
+
```tsx
|
|
18
|
+
import { Balance } from 'jfs-components';
|
|
19
|
+
|
|
20
|
+
// Basic usage
|
|
21
|
+
<Balance
|
|
22
|
+
title="Total owed to people"
|
|
23
|
+
amount="50,000.67"
|
|
24
|
+
currency="₹"
|
|
25
|
+
/>
|
|
26
|
+
|
|
27
|
+
// With modes
|
|
28
|
+
<Balance
|
|
29
|
+
title="Total Balance"
|
|
30
|
+
amount="12,500.00"
|
|
31
|
+
modes={{ "Color Mode": "Dark" }}
|
|
32
|
+
/>
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
## Props
|
|
36
|
+
|
|
37
|
+
<ArgsTable of={Balance} />
|
|
38
|
+
|
|
39
|
+
## Stories
|
|
40
|
+
|
|
41
|
+
### Default
|
|
42
|
+
<Canvas of={BalanceStories.Default} />
|
|
43
|
+
|
|
44
|
+
### With Modes
|
|
45
|
+
<Canvas of={BalanceStories.WithModes} />
|
|
46
|
+
|
|
47
|
+
### Custom Slot
|
|
48
|
+
<Canvas of={BalanceStories.CustomSlot} />
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
## Design Tokens
|
|
52
|
+
|
|
53
|
+
This component uses the following design tokens, resolved through `getVariableByName`:
|
|
54
|
+
|
|
55
|
+
- **`balance/gap`**
|
|
56
|
+
- **`balance/title/fontFamily`**
|
|
57
|
+
- **`balance/title/fontSize`**
|
|
58
|
+
- **`balance/title/fontWeight`**
|
|
59
|
+
- **`balance/title/foreground`**
|
|
60
|
+
- **`balance/title/lineHeight`**
|
|
61
|
+
|
|
62
|
+
All tokens support mode-based theming through the `modes` prop.
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
import React from 'react';
|
|
4
4
|
import { View } from 'react-native';
|
|
5
5
|
import { getVariableByName } from '../../design-tokens/figma-variables-resolver';
|
|
6
|
+
import { useTokens } from '../../design-tokens/JFSThemeProvider';
|
|
6
7
|
import BottomNavItem from '../BottomNavItem/BottomNavItem';
|
|
7
8
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
8
9
|
/**
|
|
@@ -48,13 +49,20 @@ function BottomNav({
|
|
|
48
49
|
label: 'Explore',
|
|
49
50
|
iconName: 'ic_search'
|
|
50
51
|
}],
|
|
51
|
-
modes = {},
|
|
52
|
+
modes: propModes = {},
|
|
52
53
|
onItemPress,
|
|
53
54
|
style,
|
|
54
55
|
accessibilityLabel = "Bottom navigation",
|
|
55
56
|
accessibilityHint,
|
|
56
57
|
...rest
|
|
57
58
|
}) {
|
|
59
|
+
const {
|
|
60
|
+
modes: globalModes
|
|
61
|
+
} = useTokens();
|
|
62
|
+
const modes = {
|
|
63
|
+
...globalModes,
|
|
64
|
+
...propModes
|
|
65
|
+
};
|
|
58
66
|
// Resolve container styling tokens
|
|
59
67
|
const backgroundColor = getVariableByName('bottomNav/background', modes) || '#ffffff';
|
|
60
68
|
const borderColor = getVariableByName('bottomNav/border/color', modes) || '#cccfd1';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","View","getVariableByName","BottomNavItem","jsx","_jsx","BottomNav","items","key","label","iconName","modes","onItemPress","style","accessibilityLabel","accessibilityHint","rest","backgroundColor","borderColor","borderWidth","paddingTop","paddingBottom","paddingHorizontal","containerStyle","flexDirection","alignItems","borderTopWidth","borderTopColor","borderLeftWidth","borderRightWidth","borderBottomWidth","renderItem","item","itemModes","handlePress","onPress","undefined","onKeyPress","e","nativeEvent","disabled","flex","labelStyle","iconColor","iconSize","accessibilityRole","children","map"],"sourceRoot":"../../../../src","sources":["components/BottomNav/BottomNav.tsx"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,IAAI,QAAwC,cAAc;AACnE,SAASC,iBAAiB,QAAQ,8CAA8C;AAChF,OAAOC,aAAa,MAAM,gCAAgC;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAwB1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASC,SAASA,CAAC;EACjBC,KAAK,GAAG,CACN;IAAEC,GAAG,EAAE,MAAM;IAAEC,KAAK,EAAE,MAAM;IAAEC,QAAQ,EAAE;EAAU,CAAC,EACnD;IAAEF,GAAG,EAAE,UAAU;IAAEC,KAAK,EAAE,UAAU;IAAEC,QAAQ,EAAE;EAAW,CAAC,EAC5D;IAAEF,GAAG,EAAE,KAAK;IAAEC,KAAK,EAAE,KAAK;IAAEC,QAAQ,EAAE;EAAkB,CAAC,EACzD;IAAEF,GAAG,EAAE,QAAQ;IAAEC,KAAK,EAAE,QAAQ;IAAEC,QAAQ,EAAE;EAAgB,CAAC,EAC7D;IAAEF,GAAG,EAAE,SAAS;IAAEC,KAAK,EAAE,SAAS;IAAEC,QAAQ,EAAE;EAAY,CAAC,CAC5D;EACDC,KAAK,GAAG,CAAC,CAAC;
|
|
1
|
+
{"version":3,"names":["React","View","getVariableByName","useTokens","BottomNavItem","jsx","_jsx","BottomNav","items","key","label","iconName","modes","propModes","onItemPress","style","accessibilityLabel","accessibilityHint","rest","globalModes","backgroundColor","borderColor","borderWidth","paddingTop","paddingBottom","paddingHorizontal","containerStyle","flexDirection","alignItems","borderTopWidth","borderTopColor","borderLeftWidth","borderRightWidth","borderBottomWidth","renderItem","item","itemModes","handlePress","onPress","undefined","onKeyPress","e","nativeEvent","disabled","flex","labelStyle","iconColor","iconSize","accessibilityRole","children","map"],"sourceRoot":"../../../../src","sources":["components/BottomNav/BottomNav.tsx"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,IAAI,QAAwC,cAAc;AACnE,SAASC,iBAAiB,QAAQ,8CAA8C;AAChF,SAASC,SAAS,QAAQ,sCAAsC;AAChE,OAAOC,aAAa,MAAM,gCAAgC;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAwB1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASC,SAASA,CAAC;EACjBC,KAAK,GAAG,CACN;IAAEC,GAAG,EAAE,MAAM;IAAEC,KAAK,EAAE,MAAM;IAAEC,QAAQ,EAAE;EAAU,CAAC,EACnD;IAAEF,GAAG,EAAE,UAAU;IAAEC,KAAK,EAAE,UAAU;IAAEC,QAAQ,EAAE;EAAW,CAAC,EAC5D;IAAEF,GAAG,EAAE,KAAK;IAAEC,KAAK,EAAE,KAAK;IAAEC,QAAQ,EAAE;EAAkB,CAAC,EACzD;IAAEF,GAAG,EAAE,QAAQ;IAAEC,KAAK,EAAE,QAAQ;IAAEC,QAAQ,EAAE;EAAgB,CAAC,EAC7D;IAAEF,GAAG,EAAE,SAAS;IAAEC,KAAK,EAAE,SAAS;IAAEC,QAAQ,EAAE;EAAY,CAAC,CAC5D;EACDC,KAAK,EAAEC,SAAS,GAAG,CAAC,CAAC;EACrBC,WAAW;EACXC,KAAK;EACLC,kBAAkB,GAAG,mBAAmB;EACxCC,iBAAiB;EACjB,GAAGC;AACW,CAAC,EAAE;EACjB,MAAM;IAAEN,KAAK,EAAEO;EAAY,CAAC,GAAGhB,SAAS,CAAC,CAAC;EAC1C,MAAMS,KAAK,GAAG;IAAE,GAAGO,WAAW;IAAE,GAAGN;EAAU,CAAC;EAC9C;EACA,MAAMO,eAAe,GAAGlB,iBAAiB,CAAC,sBAAsB,EAAEU,KAAK,CAAC,IAAI,SAAS;EACrF,MAAMS,WAAW,GAAGnB,iBAAiB,CAAC,wBAAwB,EAAEU,KAAK,CAAC,IAAI,SAAS;EACnF,MAAMU,WAAW,GAAGpB,iBAAiB,CAAC,wBAAwB,EAAEU,KAAK,CAAC,IAAI,CAAC;EAC3E,MAAMW,UAAU,GAAGrB,iBAAiB,CAAC,uBAAuB,EAAEU,KAAK,CAAC,IAAI,EAAE;EAC1E,MAAMY,aAAa,GAAGtB,iBAAiB,CAAC,0BAA0B,EAAEU,KAAK,CAAC,IAAI,EAAE;EAChF,MAAMa,iBAAiB,GAAGvB,iBAAiB,CAAC,8BAA8B,EAAEU,KAAK,CAAC,IAAI,EAAE;EAExF,MAAMc,cAAyB,GAAG;IAChCC,aAAa,EAAE,KAAK;IACpBC,UAAU,EAAE,QAAQ;IACpBR,eAAe;IACfG,UAAU;IACVC,aAAa;IACbC,iBAAiB;IACjBI,cAAc,EAAEP,WAAW;IAC3BQ,cAAc,EAAET,WAAW;IAC3BU,eAAe,EAAE,CAAC;IAClBC,gBAAgB,EAAE,CAAC;IACnBC,iBAAiB,EAAE;EACrB,CAAC;EAED,MAAMC,UAAU,GAAIC,IAAuB,IAAK;IAC9C,MAAMC,SAAS,GAAGD,IAAI,CAACvB,KAAK,GAAG;MAAE,GAAGA,KAAK;MAAE,GAAGuB,IAAI,CAACvB;IAAM,CAAC,GAAGA,KAAK;IAClE,MAAMyB,WAAW,GAAGA,CAAA,KAAM;MACxB,IAAIF,IAAI,CAACG,OAAO,EAAE;QAChBH,IAAI,CAACG,OAAO,CAAC,CAAC;MAChB;MACA,IAAIxB,WAAW,EAAE;QACfA,WAAW,CAACqB,IAAI,CAAC;MACnB;IACF,CAAC;IAED,oBACE7B,IAAA,CAACF,aAAa;MAAA,IAEP+B,IAAI,CAACxB,QAAQ,KAAK4B,SAAS,GAAG;QAAE5B,QAAQ,EAAEwB,IAAI,CAACxB;MAAS,CAAC,GAAG,CAAC,CAAC;MAAA,IAC9DwB,IAAI,CAACzB,KAAK,KAAK6B,SAAS,GAAG;QAAE7B,KAAK,EAAEyB,IAAI,CAACzB;MAAM,CAAC,GAAG,CAAC,CAAC;MAC1DE,KAAK,EAAEwB,SAAU;MAAA,IACXD,IAAI,CAACG,OAAO,KAAKC,SAAS,IAAIzB,WAAW,KAAKyB,SAAS,GAAI;QAC/DD,OAAO,EAAED,WAAW;QACpB;QACAG,UAAU,EAAGC,CAAM,IAAK;UACtB,MAAMhC,GAAG,GAAGgC,CAAC,EAAEC,WAAW,EAAEjC,GAAG,KAAKgC,CAAC,EAAEhC,GAAG,IAAI,EAAE,CAAC;UACjD,IAAIA,GAAG,KAAK,OAAO,IAAIA,GAAG,KAAK,GAAG,IAAIA,GAAG,KAAK,UAAU,EAAE;YACxD4B,WAAW,CAAC,CAAC;UACf;UACA;UAAGF,IAAI,EAAUK,UAAU,GAAGC,CAAC,CAAC;QAClC;MACF,CAAC,GAAG,CAAC,CAAC;MAAA,IACDN,IAAI,CAACQ,QAAQ,KAAKJ,SAAS,GAAG;QAAEI,QAAQ,EAAER,IAAI,CAACQ;MAAS,CAAC,GAAG,CAAC,CAAC;MACnE5B,KAAK,EAAE,CAAC;QAAE6B,IAAI,EAAE;MAAE,CAAC,EAAET,IAAI,CAACpB,KAAK,CAAE;MAAA,IAC5BoB,IAAI,CAACU,UAAU,KAAKN,SAAS,GAAG;QAAEM,UAAU,EAAEV,IAAI,CAACU;MAAW,CAAC,GAAG,CAAC,CAAC;MAAA,IACpEV,IAAI,CAACW,SAAS,KAAKP,SAAS,GAAG;QAAEO,SAAS,EAAEX,IAAI,CAACW;MAAU,CAAC,GAAG,CAAC,CAAC;MAAA,IACjEX,IAAI,CAACY,QAAQ,KAAKR,SAAS,GAAG;QAAEQ,QAAQ,EAAEZ,IAAI,CAACY;MAAS,CAAC,GAAG,CAAC,CAAC;IAAA,GAnB9DZ,IAAI,CAAC1B,GAAG,IAAI0B,IAAI,CAACzB,KAoBvB,CAAC;EAEN,CAAC;EAED,oBACEJ,IAAA,CAACL,IAAI;IACHc,KAAK,EAAE,CAACW,cAAc,EAAEX,KAAK,CAAE;IAC/BiC,iBAAiB,EAAC,SAAS;IAC3BhC,kBAAkB,EAAEA,kBAAmB;IAAA,IAClCC,iBAAiB,KAAKsB,SAAS,GAAG;MAAEtB;IAAkB,CAAC,GAAG,CAAC,CAAC;IAAA,GAC7DC,IAAI;IAAA+B,QAAA,EAEPzC,KAAK,CAAC0C,GAAG,CAAChB,UAAU;EAAC,CAClB,CAAC;AAEX;AAEA,eAAe3B,SAAS","ignoreList":[]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Meta, Story, Canvas,
|
|
1
|
+
import { Meta, Story, Canvas, Controls } from '@storybook/blocks';
|
|
2
2
|
import * as BottomNavStories from './BottomNav.stories';
|
|
3
3
|
import BottomNav from './BottomNav';
|
|
4
4
|
import { AccessibilitySection, AnatomySection, UsageConstraintsSection } from '../docs/DocSections';
|
|
@@ -16,6 +16,10 @@ This component uses the following design token collections. Each collection supp
|
|
|
16
16
|
### Color Mode
|
|
17
17
|
- **Modes:** Light | Dark
|
|
18
18
|
- **Default:** Light
|
|
19
|
+
|
|
20
|
+
### Colors Router
|
|
21
|
+
- **Modes:** POC | Old
|
|
22
|
+
- **Default:** POC
|
|
19
23
|
## Usage
|
|
20
24
|
|
|
21
25
|
<Canvas>
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
import React, { useState } from 'react';
|
|
4
4
|
import { Pressable, Text, View } from 'react-native';
|
|
5
5
|
import { getVariableByName } from '../../design-tokens/figma-variables-resolver';
|
|
6
|
+
import { useTokens } from '../../design-tokens/JFSThemeProvider';
|
|
6
7
|
import Icon from '../../icons/Icon';
|
|
7
8
|
import { usePressableWebSupport } from '../../utils/web-platform-utils';
|
|
8
9
|
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
@@ -31,7 +32,7 @@ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-run
|
|
|
31
32
|
function BottomNavItem({
|
|
32
33
|
iconName = 'ic_home',
|
|
33
34
|
label = 'Home',
|
|
34
|
-
modes = {},
|
|
35
|
+
modes: propModes = {},
|
|
35
36
|
onPress,
|
|
36
37
|
disabled = false,
|
|
37
38
|
style,
|
|
@@ -44,6 +45,13 @@ function BottomNavItem({
|
|
|
44
45
|
webAccessibilityProps,
|
|
45
46
|
...rest
|
|
46
47
|
}) {
|
|
48
|
+
const {
|
|
49
|
+
modes: globalModes
|
|
50
|
+
} = useTokens();
|
|
51
|
+
const modes = {
|
|
52
|
+
...globalModes,
|
|
53
|
+
...propModes
|
|
54
|
+
};
|
|
47
55
|
const [isFocused, setIsFocused] = useState(false);
|
|
48
56
|
const [isHovered, setIsHovered] = useState(false);
|
|
49
57
|
const pressedStyle = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useState","Pressable","Text","View","getVariableByName","Icon","usePressableWebSupport","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","BottomNavItem","iconName","label","modes","onPress","disabled","style","labelStyle","iconColor","iconColorOverride","iconSize","iconSizeOverride","accessibilityLabel","accessibilityHint","accessibilityState","webAccessibilityProps","rest","isFocused","setIsFocused","isHovered","setIsHovered","pressedStyle","opacity","focusStyle","borderBottomWidth","borderBottomColor","hoverStyle","gap","fontFamily","fontWeightRaw","fontWeight","toString","fontSize","lineHeight","labelColor","resolvedIconColor","resolvedIconSize","baseContainerStyle","alignItems","textStyle","color","textAlign","marginTop","defaultAccessibilityLabel","webProps","restProps","undefined","renderContent","children","name","size","accessibilityElementsHidden","importantForAccessibility","accessibilityRole","selected","onPressIn","e","onPressOut","onFocus","onBlur","onHoverIn","onHoverOut","pressed"],"sourceRoot":"../../../../src","sources":["components/BottomNavItem/BottomNavItem.tsx"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,QAAQ,QAAQ,OAAO;AACvC,SACEC,SAAS,EACTC,IAAI,EACJC,IAAI,QAKC,cAAc;AACrB,SAASC,iBAAiB,QAAQ,8CAA8C;AAChF,OAAOC,IAAI,MAAM,kBAAkB;AACnC,SAASC,sBAAsB,QAA6D,gCAAgC;AAAA,SAAAC,GAAA,IAAAC,IAAA,EAAAC,QAAA,IAAAC,SAAA,EAAAC,IAAA,IAAAC,KAAA;AAqB5H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASC,aAAaA,CAAC;EACrBC,QAAQ,GAAG,SAAS;EACpBC,KAAK,GAAG,MAAM;EACdC,KAAK,GAAG,CAAC,CAAC;
|
|
1
|
+
{"version":3,"names":["React","useState","Pressable","Text","View","getVariableByName","useTokens","Icon","usePressableWebSupport","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","BottomNavItem","iconName","label","modes","propModes","onPress","disabled","style","labelStyle","iconColor","iconColorOverride","iconSize","iconSizeOverride","accessibilityLabel","accessibilityHint","accessibilityState","webAccessibilityProps","rest","globalModes","isFocused","setIsFocused","isHovered","setIsHovered","pressedStyle","opacity","focusStyle","borderBottomWidth","borderBottomColor","hoverStyle","gap","fontFamily","fontWeightRaw","fontWeight","toString","fontSize","lineHeight","labelColor","resolvedIconColor","resolvedIconSize","baseContainerStyle","alignItems","textStyle","color","textAlign","marginTop","defaultAccessibilityLabel","webProps","restProps","undefined","renderContent","children","name","size","accessibilityElementsHidden","importantForAccessibility","accessibilityRole","selected","onPressIn","e","onPressOut","onFocus","onBlur","onHoverIn","onHoverOut","pressed"],"sourceRoot":"../../../../src","sources":["components/BottomNavItem/BottomNavItem.tsx"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,QAAQ,QAAQ,OAAO;AACvC,SACEC,SAAS,EACTC,IAAI,EACJC,IAAI,QAKC,cAAc;AACrB,SAASC,iBAAiB,QAAQ,8CAA8C;AAChF,SAASC,SAAS,QAAQ,sCAAsC;AAChE,OAAOC,IAAI,MAAM,kBAAkB;AACnC,SAASC,sBAAsB,QAA6D,gCAAgC;AAAA,SAAAC,GAAA,IAAAC,IAAA,EAAAC,QAAA,IAAAC,SAAA,EAAAC,IAAA,IAAAC,KAAA;AAqB5H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASC,aAAaA,CAAC;EACrBC,QAAQ,GAAG,SAAS;EACpBC,KAAK,GAAG,MAAM;EACdC,KAAK,EAAEC,SAAS,GAAG,CAAC,CAAC;EACrBC,OAAO;EACPC,QAAQ,GAAG,KAAK;EAChBC,KAAK;EACLC,UAAU;EACVC,SAAS,EAAEC,iBAAiB;EAC5BC,QAAQ,EAAEC,gBAAgB;EAC1BC,kBAAkB;EAClBC,iBAAiB;EACjBC,kBAAkB;EAClBC,qBAAqB;EACrB,GAAGC;AACe,CAAC,EAAE;EACrB,MAAM;IAAEd,KAAK,EAAEe;EAAY,CAAC,GAAG3B,SAAS,CAAC,CAAC;EAC1C,MAAMY,KAAK,GAAG;IAAE,GAAGe,WAAW;IAAE,GAAGd;EAAU,CAAC;EAC9C,MAAM,CAACe,SAAS,EAAEC,YAAY,CAAC,GAAGlC,QAAQ,CAAC,KAAK,CAAC;EACjD,MAAM,CAACmC,SAAS,EAAEC,YAAY,CAAC,GAAGpC,QAAQ,CAAC,KAAK,CAAC;EACjD,MAAMqC,YAAY,GAAG;IAAEC,OAAO,EAAE;EAAI,CAAC;EACrC,MAAMC,UAAU,GAAG;IAAEC,iBAAiB,EAAE,CAAC;IAAEC,iBAAiB,EAAE;EAAO,CAAC;EACtE,MAAMC,UAAU,GAAG;IAAEJ,OAAO,EAAE;EAAK,CAAC;EACpC;EACA,MAAMK,GAAG,GAAGvC,iBAAiB,CAAC,mBAAmB,EAAEa,KAAK,CAAC,IAAI,CAAC;EAE9D,MAAM2B,UAAU,GACdxC,iBAAiB,CAAC,0BAA0B,EAAEa,KAAK,CAAC,IAAI,oBAAoB;EAC9E,MAAM4B,aAAa,GAAGzC,iBAAiB,CAAC,0BAA0B,EAAEa,KAAK,CAAC,IAAI,GAAG;EACjF,MAAM6B,UAAU,GAAG,OAAOD,aAAa,KAAK,QAAQ,GAAGA,aAAa,CAACE,QAAQ,CAAC,CAAC,GAAGF,aAAa;EAC/F,MAAMG,QAAQ,GAAG5C,iBAAiB,CAAC,wBAAwB,EAAEa,KAAK,CAAC,IAAI,EAAE;EACzE,MAAMgC,UAAU,GAAG7C,iBAAiB,CAAC,0BAA0B,EAAEa,KAAK,CAAC,IAAI,EAAE;EAC7E,MAAMiC,UAAU,GAAG9C,iBAAiB,CAAC,2BAA2B,EAAEa,KAAK,CAAC,IAAI,SAAS;;EAErF;EACA,MAAMkC,iBAAiB,GACrB3B,iBAAiB,IAAIpB,iBAAiB,CAAC,0BAA0B,EAAEa,KAAK,CAAC,IAAI,SAAS;EACxF,MAAMmC,gBAAgB,GAAG1B,gBAAgB,IAAItB,iBAAiB,CAAC,yBAAyB,EAAEa,KAAK,CAAC,IAAI,EAAE;EAEtG,MAAMoC,kBAA6B,GAAG;IACpCC,UAAU,EAAE,QAAQ;IACpBhB,OAAO,EAAElB,QAAQ,GAAG,GAAG,GAAG;EAC5B,CAAC;EAED,MAAMmC,SAAoB,GAAG;IAC3BC,KAAK,EAAEN,UAAU;IACjBN,UAAU;IACVE,UAAU;IACVE,QAAQ;IACRC,UAAU;IACVQ,SAAS,EAAE,QAAQ;IACnBC,SAAS,EAAEf;EACb,CAAC;;EAED;EACA,MAAMgB,yBAAyB,GAAGhC,kBAAkB,IAAIX,KAAK;;EAE7D;EACA,MAAM4C,QAAQ,GAAGrD,sBAAsB,CAAC;IACtCsD,SAAS,EAAE9B,IAAI;IACfZ,OAAO,EAAEC,QAAQ,GAAG0C,SAAS,GAAG3C,OAAO;IACvCC,QAAQ;IACRO,kBAAkB,EAAEgC,yBAAyB;IAC7C7B;EACF,CAAC,CAAC;EAEF,MAAMiC,aAAa,GAAGA,CAAA,kBACpBlD,KAAA,CAAAF,SAAA;IAAAqD,QAAA,gBACEvD,IAAA,CAACH,IAAI;MACH2D,IAAI,EAAElD,QAAS;MACfmD,IAAI,EAAEd,gBAAiB;MACvBI,KAAK,EAAEL,iBAAkB;MACzBgB,2BAA2B,EAAE,IAAK;MAClCC,yBAAyB,EAAC;IAAI,CAC/B,CAAC,eACF3D,IAAA,CAACP,IAAI;MACHmB,KAAK,EAAE,CAACkC,SAAS,EAAEjC,UAAU,CAAE;MAC/B6C,2BAA2B,EAAE,IAAK;MAClCC,yBAAyB,EAAC,IAAI;MAAAJ,QAAA,EAE7BhD;IAAK,CACF,CAAC;EAAA,CACP,CACH;EAED,IAAI,CAACG,OAAO,EAAE;IACZ,oBACEV,IAAA,CAACN,IAAI;MACHkB,KAAK,EAAE,CAACgC,kBAAkB,EAAEhC,KAAK,CAAE;MACnCgD,iBAAiB,EAAC,KAAK;MACvB1C,kBAAkB,EAAEgC,yBAA0B;MAC9C/B,iBAAiB,EAAEA,iBAAkB;MACrCC,kBAAkB,EAAE;QAClBT,QAAQ;QACR,GAAGS;MACL,CAAE;MAAA,GACEE,IAAI;MAAAiC,QAAA,EAEPD,aAAa,CAAC;IAAC,CACZ,CAAC;EAEX;EAEA,oBACEtD,IAAA,CAACR,SAAS;IACRoE,iBAAiB,EAAC,KAAK;IACvB1C,kBAAkB,EAAEgC,yBAA0B;IAC9C/B,iBAAiB,EAAEA,iBAAkB;IACrCC,kBAAkB,EAAE;MAClBT,QAAQ;MACRkD,QAAQ,EAAEzC,kBAAkB,EAAEyC,QAAQ;MACtC,GAAGzC;IACL,CAAE;IACFV,OAAO,EAAEA,OAAQ;IACjBC,QAAQ,EAAEA,QAAS;IACnBmD,SAAS,EAAGC,CAAM,IAAK;MACrB;MAAGzC,IAAI,EAAUwC,SAAS,GAAGC,CAAC,CAAC;IACjC,CAAE;IACFC,UAAU,EAAGD,CAAM,IAAK;MACtB;MAAGzC,IAAI,EAAU0C,UAAU,GAAGD,CAAC,CAAC;IAClC,CAAE;IACFE,OAAO,EAAGF,CAAM,IAAK;MACnBtC,YAAY,CAAC,IAAI,CAAC;MACbH,IAAI,EAAU2C,OAAO,GAAGF,CAAC,CAAC;IACjC,CAAE;IACFG,MAAM,EAAGH,CAAM,IAAK;MAClBtC,YAAY,CAAC,KAAK,CAAC;MACdH,IAAI,EAAU4C,MAAM,GAAGH,CAAC,CAAC;IAChC,CAAE;IACFI,SAAS,EAAGJ,CAAM,IAAK;MACrBpC,YAAY,CAAC,IAAI,CAAC;MACbL,IAAI,EAAU6C,SAAS,GAAGJ,CAAC,CAAC;IACnC,CAAE;IACFK,UAAU,EAAGL,CAAM,IAAK;MACtBpC,YAAY,CAAC,KAAK,CAAC;MACdL,IAAI,EAAU8C,UAAU,GAAGL,CAAC,CAAC;IACpC,CAAE;IACFnD,KAAK,EAAEA,CAAC;MAAEyD;IAAQ,CAAC,KACjB,CACEzB,kBAAkB,EAClBhC,KAAK,EACLyD,OAAO,IAAI,CAAC1D,QAAQ,GAAGiB,YAAY,GAAG,IAAI,EAC1CF,SAAS,IAAI,CAACf,QAAQ,GAAGsB,UAAU,GAAG,IAAI,EAC1CT,SAAS,IAAI,CAACb,QAAQ,GAAGmB,UAAU,GAAG,IAAI,CAE7C;IAAA,GACGqB,QAAQ;IAAAI,QAAA,EAEXD,aAAa,CAAC;EAAC,CACP,CAAC;AAEhB;AAEA,eAAejD,aAAa","ignoreList":[]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Meta, Story, Canvas,
|
|
1
|
+
import { Meta, Story, Canvas, Controls } from '@storybook/blocks';
|
|
2
2
|
import * as BottomNavItemStories from './BottomNavItem.stories';
|
|
3
3
|
import BottomNavItem from './BottomNavItem';
|
|
4
4
|
import { AccessibilitySection, AnatomySection, UsageConstraintsSection } from '../docs/DocSections';
|
|
@@ -20,6 +20,10 @@ This component uses the following design token collections. Each collection supp
|
|
|
20
20
|
### Color Mode
|
|
21
21
|
- **Modes:** Light | Dark
|
|
22
22
|
- **Default:** Light
|
|
23
|
+
|
|
24
|
+
### Colors Router
|
|
25
|
+
- **Modes:** POC | Old
|
|
26
|
+
- **Default:** POC
|
|
23
27
|
## Usage
|
|
24
28
|
|
|
25
29
|
<Canvas>
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Meta, Story, Canvas,
|
|
1
|
+
import { Meta, Story, Canvas, Controls } from '@storybook/blocks';
|
|
2
2
|
import * as ButtonStories from './Button.stories';
|
|
3
3
|
import Button from './Button';
|
|
4
4
|
import { AccessibilitySection, AnatomySection, UsageConstraintsSection } from '../docs/DocSections';
|
|
@@ -29,6 +29,10 @@ This component uses the following design token collections. Each collection supp
|
|
|
29
29
|
- **Modes:** Light | Dark
|
|
30
30
|
- **Default:** Light
|
|
31
31
|
|
|
32
|
+
### Colors Router
|
|
33
|
+
- **Modes:** POC | Old
|
|
34
|
+
- **Default:** POC
|
|
35
|
+
|
|
32
36
|
### Appearance.System
|
|
33
37
|
- **Modes:** positive | warning | negative
|
|
34
38
|
- **Default:** positive
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import React from 'react';
|
|
4
|
+
import { View } from 'react-native';
|
|
5
|
+
import { getVariableByName } from '../../design-tokens/figma-variables-resolver';
|
|
6
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
7
|
+
/**
|
|
8
|
+
* ButtonGroup component that aggregates multiple buttons (e.g., IconButton)
|
|
9
|
+
* and handles their layout and styling/theming via design tokens.
|
|
10
|
+
*
|
|
11
|
+
* It passes the provided `modes` to all its immediate React Element children.
|
|
12
|
+
*
|
|
13
|
+
* @component
|
|
14
|
+
* @example
|
|
15
|
+
* ```jsx
|
|
16
|
+
* <ButtonGroup modes={{"Appearance": "light"}}>
|
|
17
|
+
* <IconButton iconName="ic_qr_code" />
|
|
18
|
+
* <IconButton iconName="ic_photo" />
|
|
19
|
+
* </ButtonGroup>
|
|
20
|
+
* ```
|
|
21
|
+
*/
|
|
22
|
+
function ButtonGroup({
|
|
23
|
+
children,
|
|
24
|
+
modes = {},
|
|
25
|
+
style
|
|
26
|
+
}) {
|
|
27
|
+
// Resolve design tokens
|
|
28
|
+
const gap = getVariableByName('buttonGroup/padding/gap', modes) ?? 12;
|
|
29
|
+
const paddingHorizontal = getVariableByName('buttonGroup/padding/horizontal', modes) ?? 0;
|
|
30
|
+
const paddingVertical = getVariableByName('buttonGroup/padding/vertical', modes) ?? 0;
|
|
31
|
+
|
|
32
|
+
// Container style
|
|
33
|
+
const containerStyle = {
|
|
34
|
+
flexDirection: 'row',
|
|
35
|
+
alignItems: 'center',
|
|
36
|
+
gap: gap,
|
|
37
|
+
paddingHorizontal: paddingHorizontal,
|
|
38
|
+
paddingVertical: paddingVertical
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
// Clone children to pass `modes` prop
|
|
42
|
+
const childrenWithModes = React.Children.map(children, child => {
|
|
43
|
+
if (/*#__PURE__*/React.isValidElement(child)) {
|
|
44
|
+
// We safely try to pass `modes` to the child.
|
|
45
|
+
// If the child doesn't accept `modes`, it will just be an extra prop which is usually fine in React,
|
|
46
|
+
// but ideally children should be components that respect `modes`.
|
|
47
|
+
return /*#__PURE__*/React.cloneElement(child, {
|
|
48
|
+
modes: modes
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
return child;
|
|
52
|
+
});
|
|
53
|
+
return /*#__PURE__*/_jsx(View, {
|
|
54
|
+
style: [containerStyle, style],
|
|
55
|
+
children: childrenWithModes
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
export default ButtonGroup;
|
|
59
|
+
//# sourceMappingURL=ButtonGroup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","View","getVariableByName","jsx","_jsx","ButtonGroup","children","modes","style","gap","paddingHorizontal","paddingVertical","containerStyle","flexDirection","alignItems","childrenWithModes","Children","map","child","isValidElement","cloneElement"],"sourceRoot":"../../../../src","sources":["components/ButtonGroup/ButtonGroup.tsx"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SACIC,IAAI,QAGD,cAAc;AACrB,SAASC,iBAAiB,QAAQ,8CAA8C;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAmBhF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASC,WAAWA,CAAC;EACjBC,QAAQ;EACRC,KAAK,GAAG,CAAC,CAAC;EACVC;AACc,CAAC,EAAE;EACjB;EACA,MAAMC,GAAG,GAAGP,iBAAiB,CAAC,yBAAyB,EAAEK,KAAK,CAAC,IAAI,EAAE;EACrE,MAAMG,iBAAiB,GAAGR,iBAAiB,CAAC,gCAAgC,EAAEK,KAAK,CAAC,IAAI,CAAC;EACzF,MAAMI,eAAe,GAAGT,iBAAiB,CAAC,8BAA8B,EAAEK,KAAK,CAAC,IAAI,CAAC;;EAErF;EACA,MAAMK,cAAyB,GAAG;IAC9BC,aAAa,EAAE,KAAK;IACpBC,UAAU,EAAE,QAAQ;IACpBL,GAAG,EAAEA,GAAG;IACRC,iBAAiB,EAAEA,iBAAiB;IACpCC,eAAe,EAAEA;EACrB,CAAC;;EAED;EACA,MAAMI,iBAAiB,GAAGf,KAAK,CAACgB,QAAQ,CAACC,GAAG,CAACX,QAAQ,EAAGY,KAAK,IAAK;IAC9D,iBAAIlB,KAAK,CAACmB,cAAc,CAACD,KAAK,CAAC,EAAE;MAC7B;MACA;MACA;MACA,oBAAOlB,KAAK,CAACoB,YAAY,CAACF,KAAK,EAAE;QAAEX,KAAK,EAAEA;MAAM,CAAQ,CAAC;IAC7D;IACA,OAAOW,KAAK;EAChB,CAAC,CAAC;EAEF,oBACId,IAAA,CAACH,IAAI;IAACO,KAAK,EAAE,CAACI,cAAc,EAAEJ,KAAK,CAAE;IAAAF,QAAA,EAChCS;EAAiB,CAChB,CAAC;AAEf;AAEA,eAAeV,WAAW","ignoreList":[]}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
{/* ButtonGroup.mdx */}
|
|
2
|
+
|
|
3
|
+
import { Canvas, Meta, Story, Controls } from '@storybook/blocks';
|
|
4
|
+
import * as ButtonGroupStories from './ButtonGroup.stories';
|
|
5
|
+
|
|
6
|
+
<Meta of={ButtonGroupStories} />
|
|
7
|
+
|
|
8
|
+
# Button Group
|
|
9
|
+
|
|
10
|
+
A layout container that organizes multiple buttons (typically `IconButton`) in a horizontal row with consistent spacing as defined by design tokens.
|
|
11
|
+
|
|
12
|
+
The `ButtonGroup` component automatically passes its `modes` prop down to all valid React children, ensuring that the entire group responds to theme or mode changes in unison.
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
## Available Collections and Modes
|
|
16
|
+
|
|
17
|
+
This component does not use any design token collections with multiple modes.
|
|
18
|
+
## Usage
|
|
19
|
+
|
|
20
|
+
```tsx
|
|
21
|
+
import { ButtonGroup, IconButton } from 'jfs-components';
|
|
22
|
+
|
|
23
|
+
function MyHeader() {
|
|
24
|
+
return (
|
|
25
|
+
<ButtonGroup modes={{ "Appearance": "dark" }}>
|
|
26
|
+
<IconButton iconName="ic_qr_code" />
|
|
27
|
+
<IconButton iconName="ic_photo" />
|
|
28
|
+
</ButtonGroup>
|
|
29
|
+
);
|
|
30
|
+
}
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
## Props
|
|
34
|
+
|
|
35
|
+
<Controls />
|
|
36
|
+
|
|
37
|
+
## Examples
|
|
38
|
+
|
|
39
|
+
### Default
|
|
40
|
+
|
|
41
|
+
<Canvas of={ButtonGroupStories.Default} />
|
|
42
|
+
|
|
43
|
+
### With Custom Modes
|
|
44
|
+
|
|
45
|
+
<Canvas of={ButtonGroupStories.WithModes} />
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
## Design Tokens
|
|
49
|
+
|
|
50
|
+
This component uses the following design tokens, resolved through `getVariableByName`:
|
|
51
|
+
|
|
52
|
+
- **`buttonGroup/padding/gap`**
|
|
53
|
+
- **`buttonGroup/padding/horizontal`**
|
|
54
|
+
- **`buttonGroup/padding/vertical`**
|
|
55
|
+
|
|
56
|
+
All tokens support mode-based theming through the `modes` prop.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Meta, Story, Canvas,
|
|
1
|
+
import { Meta, Story, Canvas, Controls } from '@storybook/blocks';
|
|
2
2
|
import * as CardStories from './Card.stories';
|
|
3
3
|
import Card from './Card';
|
|
4
4
|
import { AnatomySection, UsageConstraintsSection } from '../docs/DocSections';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Meta, Story, Canvas,
|
|
1
|
+
import { Meta, Story, Canvas, Controls } from '@storybook/blocks';
|
|
2
2
|
import * as CardFeedbackStories from './CardFeedback.stories';
|
|
3
3
|
import CardFeedback from './CardFeedback';
|
|
4
4
|
import { AccessibilitySection, AnatomySection, UsageConstraintsSection } from '../docs/DocSections';
|
|
@@ -21,6 +21,10 @@ This component uses the following design token collections. Each collection supp
|
|
|
21
21
|
- **Modes:** Light | Dark
|
|
22
22
|
- **Default:** Light
|
|
23
23
|
|
|
24
|
+
### Colors Router
|
|
25
|
+
- **Modes:** POC | Old
|
|
26
|
+
- **Default:** POC
|
|
27
|
+
|
|
24
28
|
### Appearance.Brand
|
|
25
29
|
- **Modes:** Primary | Secondary | Neutral
|
|
26
30
|
- **Default:** Primary
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import React from 'react';
|
|
4
|
+
import { View } from 'react-native';
|
|
5
|
+
import { getVariableByName } from '../../design-tokens/figma-variables-resolver';
|
|
6
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
7
|
+
/**
|
|
8
|
+
* ChipGroup component that handles layout and spacing for ChipSelect components.
|
|
9
|
+
* Based on Figma Node 1905-5123.
|
|
10
|
+
*/
|
|
11
|
+
function ChipGroup({
|
|
12
|
+
children,
|
|
13
|
+
modes = {},
|
|
14
|
+
style,
|
|
15
|
+
testID
|
|
16
|
+
}) {
|
|
17
|
+
// --- Token Resolution ---
|
|
18
|
+
const gap = parseInt(getVariableByName('chipGroup/gap', modes), 10) || 8;
|
|
19
|
+
|
|
20
|
+
// --- Styles ---
|
|
21
|
+
const containerStyle = {
|
|
22
|
+
flexDirection: 'row',
|
|
23
|
+
alignItems: 'flex-start',
|
|
24
|
+
flexWrap: 'wrap',
|
|
25
|
+
gap: gap
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
// Clone children to pass `modes` prop
|
|
29
|
+
const childrenWithModes = React.Children.map(children, child => {
|
|
30
|
+
if (/*#__PURE__*/React.isValidElement(child)) {
|
|
31
|
+
// Pass merged modes (parent modes + child modes)
|
|
32
|
+
// Note: We don't have access to child's existing props here to merge modes perfectly if they were passed directly to child
|
|
33
|
+
// But usually we want parent modes to override or augment.
|
|
34
|
+
// For now, simpler approach: just pass the parent modes, assuming child will handle merging if it needs to.
|
|
35
|
+
// Actually, based on previous ButtonGroup example, we just pass { modes: modes }.
|
|
36
|
+
return /*#__PURE__*/React.cloneElement(child, {
|
|
37
|
+
modes: modes
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
return child;
|
|
41
|
+
});
|
|
42
|
+
return /*#__PURE__*/_jsx(View, {
|
|
43
|
+
style: [containerStyle, style],
|
|
44
|
+
testID: testID,
|
|
45
|
+
children: childrenWithModes
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
export default ChipGroup;
|
|
49
|
+
//# sourceMappingURL=ChipGroup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","View","getVariableByName","jsx","_jsx","ChipGroup","children","modes","style","testID","gap","parseInt","containerStyle","flexDirection","alignItems","flexWrap","childrenWithModes","Children","map","child","isValidElement","cloneElement"],"sourceRoot":"../../../../src","sources":["components/ChipGroup/ChipGroup.tsx"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,IAAI,QAAwC,cAAc;AACnE,SAASC,iBAAiB,QAAQ,8CAA8C;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAuBjF;AACA;AACA;AACA;AACA,SAASC,SAASA,CAAC;EACfC,QAAQ;EACRC,KAAK,GAAG,CAAC,CAAC;EACVC,KAAK;EACLC;AACY,CAAC,EAAE;EACf;EACA,MAAMC,GAAG,GAAGC,QAAQ,CAACT,iBAAiB,CAAC,eAAe,EAAEK,KAAK,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC;;EAExE;EACA,MAAMK,cAAyB,GAAG;IAC9BC,aAAa,EAAE,KAAK;IACpBC,UAAU,EAAE,YAAY;IACxBC,QAAQ,EAAE,MAAM;IAChBL,GAAG,EAAEA;EACT,CAAC;;EAED;EACA,MAAMM,iBAAiB,GAAGhB,KAAK,CAACiB,QAAQ,CAACC,GAAG,CAACZ,QAAQ,EAAGa,KAAK,IAAK;IAC9D,iBAAInB,KAAK,CAACoB,cAAc,CAACD,KAAK,CAAC,EAAE;MAC7B;MACA;MACA;MACA;MACA;MACA,oBAAOnB,KAAK,CAACqB,YAAY,CAACF,KAAK,EAAE;QAAEZ,KAAK,EAAEA;MAAM,CAAQ,CAAC;IAC7D;IACA,OAAOY,KAAK;EAChB,CAAC,CAAC;EAEF,oBACIf,IAAA,CAACH,IAAI;IAACO,KAAK,EAAE,CAACI,cAAc,EAAEJ,KAAK,CAAE;IAACC,MAAM,EAAEA,MAAO;IAAAH,QAAA,EAChDU;EAAiB,CAChB,CAAC;AAEf;AAEA,eAAeX,SAAS","ignoreList":[]}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { Meta, Title, Subtitle, Description, Primary, Controls, Stories, Story } from '@storybook/addon-docs';
|
|
2
|
+
import * as ChipGroupStories from './ChipGroup.stories';
|
|
3
|
+
|
|
4
|
+
<Meta of={ChipGroupStories} />
|
|
5
|
+
|
|
6
|
+
<Title />
|
|
7
|
+
<Subtitle />
|
|
8
|
+
<Description />
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
## Available Collections and Modes
|
|
12
|
+
|
|
13
|
+
This component does not use any design token collections with multiple modes.
|
|
14
|
+
## Usage
|
|
15
|
+
|
|
16
|
+
```tsx
|
|
17
|
+
import { ChipGroup } from 'jfs-components';
|
|
18
|
+
import { ChipSelect } from 'jfs-components';
|
|
19
|
+
|
|
20
|
+
const MyComponent = () => (
|
|
21
|
+
<ChipGroup>
|
|
22
|
+
<ChipSelect label="Option 1" />
|
|
23
|
+
<ChipSelect label="Option 2" />
|
|
24
|
+
<ChipSelect label="Option 3" />
|
|
25
|
+
</ChipGroup>
|
|
26
|
+
);
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
<Primary />
|
|
30
|
+
<Controls />
|
|
31
|
+
<Stories />
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
## Design Tokens
|
|
35
|
+
|
|
36
|
+
This component uses the following design tokens, resolved through `getVariableByName`:
|
|
37
|
+
|
|
38
|
+
- **`chipGroup/gap`**
|
|
39
|
+
|
|
40
|
+
All tokens support mode-based theming through the `modes` prop.
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import React from 'react';
|
|
4
|
+
import { Text, TouchableOpacity } from 'react-native';
|
|
5
|
+
import { getVariableByName } from '../../design-tokens/figma-variables-resolver';
|
|
6
|
+
import Icon from '../../icons/Icon';
|
|
7
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
8
|
+
/**
|
|
9
|
+
* ChipSelect component for selecting options (e.g. Date selection).
|
|
10
|
+
* Based on Figma Node 1901-4727.
|
|
11
|
+
*/
|
|
12
|
+
function ChipSelect({
|
|
13
|
+
label = 'Date',
|
|
14
|
+
active = false,
|
|
15
|
+
icon = 'ic_calendar_week',
|
|
16
|
+
close = true,
|
|
17
|
+
modes = {},
|
|
18
|
+
style,
|
|
19
|
+
labelSlot,
|
|
20
|
+
onPress
|
|
21
|
+
}) {
|
|
22
|
+
// Force control of the 'ChipSelect State' mode based on the active prop
|
|
23
|
+
// This overrides any 'ChipSelect State' passed from outside, but preserves other modes
|
|
24
|
+
const resolvedModes = {
|
|
25
|
+
...modes,
|
|
26
|
+
'ChipSelect State': active ? 'Active' : 'Idle'
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
// --- Token Resolution ---
|
|
30
|
+
const gap = parseInt(getVariableByName('chipSelect/gap', resolvedModes), 10) || 4;
|
|
31
|
+
const paddingHorizontal = parseInt(getVariableByName('chipSelect/padding/horizontal', resolvedModes), 10) || 16;
|
|
32
|
+
const paddingVertical = parseInt(getVariableByName('chipSelect/padding/vertical', resolvedModes), 10) || 0;
|
|
33
|
+
const radius = parseInt(getVariableByName('chipSelect/radius', resolvedModes), 10) || 999;
|
|
34
|
+
|
|
35
|
+
// Background
|
|
36
|
+
const backgroundColor = getVariableByName('chipSelect/background', resolvedModes) || '#f5f5f5';
|
|
37
|
+
|
|
38
|
+
// Text Styles
|
|
39
|
+
const textColor = getVariableByName('chipSelect/foreground', resolvedModes) || '#0d0d0f';
|
|
40
|
+
const fontSize = parseInt(getVariableByName('chipSelect/fontSize', resolvedModes), 10) || 14;
|
|
41
|
+
const fontFamily = getVariableByName('chipSelect/fontFamily', resolvedModes) || 'JioType Var';
|
|
42
|
+
const lineHeight = parseInt(getVariableByName('chipSelect/lineHeight', resolvedModes), 10) || 32;
|
|
43
|
+
const fontWeight = getVariableByName('chipSelect/fontWeight', resolvedModes) || '700';
|
|
44
|
+
|
|
45
|
+
// Icon Styles
|
|
46
|
+
const iconSize = parseInt(getVariableByName('chipSelect/icon/size', resolvedModes), 10) || 16;
|
|
47
|
+
|
|
48
|
+
// --- Styles ---
|
|
49
|
+
const containerStyle = {
|
|
50
|
+
flexDirection: 'row',
|
|
51
|
+
alignItems: 'center',
|
|
52
|
+
justifyContent: 'center',
|
|
53
|
+
backgroundColor: backgroundColor,
|
|
54
|
+
borderRadius: radius,
|
|
55
|
+
paddingHorizontal: paddingHorizontal,
|
|
56
|
+
paddingVertical: paddingVertical,
|
|
57
|
+
gap: gap
|
|
58
|
+
};
|
|
59
|
+
const textStyle = {
|
|
60
|
+
color: textColor,
|
|
61
|
+
fontFamily: fontFamily,
|
|
62
|
+
fontSize: fontSize,
|
|
63
|
+
lineHeight: lineHeight,
|
|
64
|
+
fontWeight: fontWeight,
|
|
65
|
+
textAlign: 'center'
|
|
66
|
+
};
|
|
67
|
+
const renderLabel = () => {
|
|
68
|
+
if (labelSlot) {
|
|
69
|
+
if (/*#__PURE__*/React.isValidElement(labelSlot)) {
|
|
70
|
+
// Pass resolved modes to slot
|
|
71
|
+
return /*#__PURE__*/React.cloneElement(labelSlot, {
|
|
72
|
+
modes: resolvedModes
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
return labelSlot;
|
|
76
|
+
}
|
|
77
|
+
return /*#__PURE__*/_jsx(Text, {
|
|
78
|
+
style: textStyle,
|
|
79
|
+
children: label
|
|
80
|
+
});
|
|
81
|
+
};
|
|
82
|
+
return /*#__PURE__*/_jsxs(TouchableOpacity, {
|
|
83
|
+
style: [containerStyle, style],
|
|
84
|
+
onPress: onPress,
|
|
85
|
+
activeOpacity: 0.8,
|
|
86
|
+
children: [icon && /*#__PURE__*/_jsx(Icon, {
|
|
87
|
+
name: icon,
|
|
88
|
+
size: iconSize,
|
|
89
|
+
color: textColor
|
|
90
|
+
}), renderLabel(), active && close && /*#__PURE__*/_jsx(Icon, {
|
|
91
|
+
name: "ic_close",
|
|
92
|
+
size: iconSize,
|
|
93
|
+
color: textColor
|
|
94
|
+
})]
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
export default ChipSelect;
|
|
98
|
+
//# sourceMappingURL=ChipSelect.js.map
|