@ledgerhq/lumen-ui-rnative 0.1.47 → 0.1.49
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/dist/module/i18n/locales/de.json +1 -3
- package/dist/module/i18n/locales/en.json +1 -3
- package/dist/module/i18n/locales/es.json +1 -3
- package/dist/module/i18n/locales/fr.json +1 -3
- package/dist/module/i18n/locales/ja.json +1 -3
- package/dist/module/i18n/locales/ko.json +1 -3
- package/dist/module/i18n/locales/pt.json +1 -3
- package/dist/module/i18n/locales/ru.json +1 -3
- package/dist/module/i18n/locales/th.json +1 -3
- package/dist/module/i18n/locales/tr.json +1 -3
- package/dist/module/i18n/locales/zh.json +1 -3
- package/dist/module/lib/Animations/Pulse/Pulse.js +3 -3
- package/dist/module/lib/Animations/Pulse/Pulse.js.map +1 -1
- package/dist/module/lib/Animations/Pulse/Pulse.mdx +0 -1
- package/dist/module/lib/Animations/Spin/Spin.js +3 -3
- package/dist/module/lib/Animations/Spin/Spin.js.map +1 -1
- package/dist/module/lib/Animations/Spin/Spin.mdx +0 -1
- package/dist/module/lib/Components/AddressInput/AddressInput.figma.js +36 -0
- package/dist/module/lib/Components/AddressInput/AddressInput.figma.js.map +1 -0
- package/dist/module/lib/Components/AddressInput/AddressInput.mdx +0 -183
- package/dist/module/lib/Components/AmountDisplay/AmountDisplay.figma.js +31 -0
- package/dist/module/lib/Components/AmountDisplay/AmountDisplay.figma.js.map +1 -0
- package/dist/module/lib/Components/AmountDisplay/AmountDisplay.mdx +0 -90
- package/dist/module/lib/Components/AmountInput/AmountInput.figma.js +70 -0
- package/dist/module/lib/Components/AmountInput/AmountInput.figma.js.map +1 -0
- package/dist/module/lib/Components/AmountInput/AmountInput.js +3 -1
- package/dist/module/lib/Components/AmountInput/AmountInput.js.map +1 -1
- package/dist/module/lib/Components/AmountInput/AmountInput.mdx +0 -190
- package/dist/module/lib/Components/AmountInput/AmountInput.stories.js +15 -0
- package/dist/module/lib/Components/AmountInput/AmountInput.stories.js.map +1 -1
- package/dist/module/lib/Components/AmountInput/useAmountInputFormatting/useAmountInputFormatting.js +1 -1
- package/dist/module/lib/Components/AmountInput/useAmountInputFormatting/useAmountInputFormatting.js.map +1 -1
- package/dist/module/lib/Components/AmountInput/useAmountInputFormatting/useAmountInputFormatting.test.js +20 -1
- package/dist/module/lib/Components/AmountInput/useAmountInputFormatting/useAmountInputFormatting.test.js.map +1 -1
- package/dist/module/lib/Components/Avatar/Avatar.figma.js +15 -12
- package/dist/module/lib/Components/Avatar/Avatar.figma.js.map +1 -1
- package/dist/module/lib/Components/Avatar/Avatar.js +4 -27
- package/dist/module/lib/Components/Avatar/Avatar.js.map +1 -1
- package/dist/module/lib/Components/Avatar/Avatar.mdx +53 -69
- package/dist/module/lib/Components/Avatar/Avatar.stories.js +27 -33
- package/dist/module/lib/Components/Avatar/Avatar.stories.js.map +1 -1
- package/dist/module/lib/Components/Avatar/Avatar.test.js +21 -39
- package/dist/module/lib/Components/Avatar/Avatar.test.js.map +1 -1
- package/dist/module/lib/Components/Banner/Banner.figma.js +107 -0
- package/dist/module/lib/Components/Banner/Banner.figma.js.map +1 -0
- package/dist/module/lib/Components/Banner/Banner.mdx +0 -86
- package/dist/module/lib/Components/BottomSheet/BottomSheet.figma.js +49 -0
- package/dist/module/lib/Components/BottomSheet/BottomSheet.figma.js.map +1 -0
- package/dist/module/lib/Components/BottomSheet/BottomSheet.mdx +0 -119
- package/dist/module/lib/Components/Button/Button.figma.js +45 -0
- package/dist/module/lib/Components/Button/Button.figma.js.map +1 -0
- package/dist/module/lib/Components/Button/Button.mdx +25 -224
- package/dist/module/lib/Components/Button/Button.stories.js +4 -36
- package/dist/module/lib/Components/Button/Button.stories.js.map +1 -1
- package/dist/module/lib/Components/Card/Card.figma.js +143 -0
- package/dist/module/lib/Components/Card/Card.figma.js.map +1 -0
- package/dist/module/lib/Components/Card/Card.mdx +0 -160
- package/dist/module/lib/Components/CardButton/CardButton.figma.js +38 -0
- package/dist/module/lib/Components/CardButton/CardButton.figma.js.map +1 -0
- package/dist/module/lib/Components/CardButton/CardButton.mdx +0 -48
- package/dist/module/lib/Components/Checkbox/Checkbox.figma.js +48 -0
- package/dist/module/lib/Components/Checkbox/Checkbox.figma.js.map +1 -0
- package/dist/module/lib/Components/Checkbox/Checkbox.mdx +0 -73
- package/dist/module/lib/Components/ContentBanner/ContentBanner.figma.js +91 -0
- package/dist/module/lib/Components/ContentBanner/ContentBanner.figma.js.map +1 -0
- package/dist/module/lib/Components/ContentBanner/ContentBanner.mdx +0 -2
- package/dist/module/lib/Components/CryptoIcon/CryptoIcon.figma.js +17 -0
- package/dist/module/lib/Components/CryptoIcon/CryptoIcon.figma.js.map +1 -0
- package/dist/module/lib/Components/DescriptionItem/DescriptionItem.figma.js +29 -0
- package/dist/module/lib/Components/DescriptionItem/DescriptionItem.figma.js.map +1 -0
- package/dist/module/lib/Components/Divider/Divider.figma.js +10 -0
- package/dist/module/lib/Components/Divider/Divider.figma.js.map +1 -0
- package/dist/module/lib/Components/Divider/Divider.mdx +0 -2
- package/dist/module/lib/Components/DotCount/DotCount.figma.js +29 -0
- package/dist/module/lib/Components/DotCount/DotCount.figma.js.map +1 -0
- package/dist/module/lib/Components/DotIndicator/DotIndicator.figma.js +29 -0
- package/dist/module/lib/Components/DotIndicator/DotIndicator.figma.js.map +1 -0
- package/dist/module/lib/Components/DotIndicator/DotIndicator.stories.js +6 -3
- package/dist/module/lib/Components/DotIndicator/DotIndicator.stories.js.map +1 -1
- package/dist/module/lib/Components/DotIndicator/getDotIndicatorProps.js +17 -0
- package/dist/module/lib/Components/DotIndicator/getDotIndicatorProps.js.map +1 -0
- package/dist/module/lib/Components/DotIndicator/getDotIndicatorProps.test.js +17 -0
- package/dist/module/lib/Components/DotIndicator/getDotIndicatorProps.test.js.map +1 -0
- package/dist/module/lib/Components/DotIndicator/index.js +1 -0
- package/dist/module/lib/Components/DotIndicator/index.js.map +1 -1
- package/dist/module/lib/Components/Icon/Icon.figma.js +1840 -0
- package/dist/module/lib/Components/Icon/Icon.figma.js.map +1 -0
- package/dist/module/lib/Components/Icon/Icon.mdx +0 -62
- package/dist/module/lib/Components/IconButton/IconButton.figma.js +42 -0
- package/dist/module/lib/Components/IconButton/IconButton.figma.js.map +1 -0
- package/dist/module/lib/Components/IconButton/IconButton.mdx +0 -68
- package/dist/module/lib/Components/InteractiveIcon/InteractiveIcon.figma.js +51 -0
- package/dist/module/lib/Components/InteractiveIcon/InteractiveIcon.figma.js.map +1 -0
- package/dist/module/lib/Components/InteractiveIcon/InteractiveIcon.mdx +0 -107
- package/dist/module/lib/Components/Link/Link.figma.js +41 -0
- package/dist/module/lib/Components/Link/Link.figma.js.map +1 -0
- package/dist/module/lib/Components/Link/Link.mdx +0 -102
- package/dist/module/lib/Components/ListItem/ListItem.figma.js +416 -0
- package/dist/module/lib/Components/ListItem/ListItem.figma.js.map +1 -0
- package/dist/module/lib/Components/ListItem/ListItem.mdx +0 -129
- package/dist/module/lib/Components/MediaBanner/MediaBanner.figma.js +25 -0
- package/dist/module/lib/Components/MediaBanner/MediaBanner.figma.js.map +1 -0
- package/dist/module/lib/Components/MediaBanner/MediaBanner.mdx +0 -3
- package/dist/module/lib/Components/MediaButton/MediaButton.figma.js +72 -0
- package/dist/module/lib/Components/MediaButton/MediaButton.figma.js.map +1 -0
- package/dist/module/lib/Components/MediaCard/MediaCard.figma.js +28 -0
- package/dist/module/lib/Components/MediaCard/MediaCard.figma.js.map +1 -0
- package/dist/module/lib/Components/MediaCard/MediaCard.mdx +0 -2
- package/dist/module/lib/Components/MediaImage/MediaImage.mdx +0 -1
- package/dist/module/lib/Components/MediaTag/MediaTag.figma.js +100 -0
- package/dist/module/lib/Components/MediaTag/MediaTag.figma.js.map +1 -0
- package/dist/module/lib/Components/MediaTag/MediaTag.mdx +0 -2
- package/dist/module/lib/Components/NavBar/NavBar.figma.js +79 -0
- package/dist/module/lib/Components/NavBar/NavBar.figma.js.map +1 -0
- package/dist/module/lib/Components/NavBar/NavBar.mdx +0 -2
- package/dist/module/lib/Components/OptionList/OptionList.js +16 -1
- package/dist/module/lib/Components/OptionList/OptionList.js.map +1 -1
- package/dist/module/lib/Components/OptionList/OptionList.mdx +45 -90
- package/dist/module/lib/Components/OptionList/OptionList.stories.js +61 -1
- package/dist/module/lib/Components/OptionList/OptionList.stories.js.map +1 -1
- package/dist/module/lib/Components/OptionList/OptionList.test.js +43 -1
- package/dist/module/lib/Components/OptionList/OptionList.test.js.map +1 -1
- package/dist/module/lib/Components/OptionList/useOptionList/useOptionListItems.js.map +1 -1
- package/dist/module/lib/Components/PageIndicator/PageIndicator.figma.js +13 -0
- package/dist/module/lib/Components/PageIndicator/PageIndicator.figma.js.map +1 -0
- package/dist/module/lib/Components/PageIndicator/PageIndicator.mdx +0 -2
- package/dist/module/lib/Components/SearchInput/SearchInput.figma.js +31 -0
- package/dist/module/lib/Components/SearchInput/SearchInput.figma.js.map +1 -0
- package/dist/module/lib/Components/SearchInput/SearchInput.mdx +0 -199
- package/dist/module/lib/Components/SegmentedControl/SegmentedControl.figma.js +35 -0
- package/dist/module/lib/Components/SegmentedControl/SegmentedControl.figma.js.map +1 -0
- package/dist/module/lib/Components/SegmentedControl/SegmentedControl.js +7 -1
- package/dist/module/lib/Components/SegmentedControl/SegmentedControl.js.map +1 -1
- package/dist/module/lib/Components/SegmentedControl/SegmentedControl.mdx +28 -1
- package/dist/module/lib/Components/SegmentedControl/SegmentedControl.stories.js +24 -1
- package/dist/module/lib/Components/SegmentedControl/SegmentedControl.stories.js.map +1 -1
- package/dist/module/lib/Components/SegmentedControl/SegmentedControl.test.js +28 -1
- package/dist/module/lib/Components/SegmentedControl/SegmentedControl.test.js.map +1 -1
- package/dist/module/lib/Components/Skeleton/Skeleton.figma.js +18 -0
- package/dist/module/lib/Components/Skeleton/Skeleton.figma.js.map +1 -0
- package/dist/module/lib/Components/Skeleton/Skeleton.mdx +0 -71
- package/dist/module/lib/Components/Spinner/Spinner.figma.js +13 -0
- package/dist/module/lib/Components/Spinner/Spinner.figma.js.map +1 -0
- package/dist/module/lib/Components/Spinner/Spinner.mdx +0 -100
- package/dist/module/lib/Components/Spot/Spot.figma.js +37 -0
- package/dist/module/lib/Components/Spot/Spot.figma.js.map +1 -0
- package/dist/module/lib/Components/Spot/Spot.mdx +0 -94
- package/dist/module/lib/Components/Stepper/Stepper.figma.js +13 -0
- package/dist/module/lib/Components/Stepper/Stepper.figma.js.map +1 -0
- package/dist/module/lib/Components/Stepper/Stepper.mdx +0 -67
- package/dist/module/lib/Components/Subheader/Subheader.figma.js +67 -0
- package/dist/module/lib/Components/Subheader/Subheader.figma.js.map +1 -0
- package/dist/module/lib/Components/Subheader/Subheader.mdx +0 -116
- package/dist/module/lib/Components/Switch/Switch.figma.js +58 -0
- package/dist/module/lib/Components/Switch/Switch.figma.js.map +1 -0
- package/dist/module/lib/Components/Switch/Switch.mdx +0 -39
- package/dist/module/lib/Components/TabBar/TabBar.figma.js +98 -0
- package/dist/module/lib/Components/TabBar/TabBar.figma.js.map +1 -0
- package/dist/module/lib/Components/TabBar/TabBar.js +7 -4
- package/dist/module/lib/Components/TabBar/TabBar.js.map +1 -1
- package/dist/module/lib/Components/TabBar/TabBar.mdx +29 -5
- package/dist/module/lib/Components/TabBar/TabBar.stories.js +35 -1
- package/dist/module/lib/Components/TabBar/TabBar.stories.js.map +1 -1
- package/dist/module/lib/Components/TabBar/TabBar.test.js +28 -1
- package/dist/module/lib/Components/TabBar/TabBar.test.js.map +1 -1
- package/dist/module/lib/Components/TabBar/index.js +2 -1
- package/dist/module/lib/Components/TabBar/index.js.map +1 -1
- package/dist/module/lib/Components/Tag/Tag.figma.js +41 -0
- package/dist/module/lib/Components/Tag/Tag.figma.js.map +1 -0
- package/dist/module/lib/Components/Tag/Tag.mdx +0 -2
- package/dist/module/lib/Components/TextInput/TextInput.figma.js +37 -0
- package/dist/module/lib/Components/TextInput/TextInput.figma.js.map +1 -0
- package/dist/module/lib/Components/TextInput/TextInput.mdx +0 -178
- package/dist/module/lib/Components/Tile/Tile.figma.js +111 -0
- package/dist/module/lib/Components/Tile/Tile.figma.js.map +1 -0
- package/dist/module/lib/Components/Tile/Tile.mdx +0 -53
- package/dist/module/lib/Components/TileButton/TileButton.figma.js +23 -0
- package/dist/module/lib/Components/TileButton/TileButton.figma.js.map +1 -0
- package/dist/module/lib/Components/TileButton/TileButton.mdx +0 -40
- package/dist/module/lib/Components/Tooltip/Tooltip.figma.js +26 -0
- package/dist/module/lib/Components/Tooltip/Tooltip.figma.js.map +1 -0
- package/dist/module/lib/Components/Tooltip/Tooltip.mdx +0 -183
- package/dist/module/lib/Components/Trend/Trend.figma.js +29 -0
- package/dist/module/lib/Components/Trend/Trend.figma.js.map +1 -0
- package/dist/module/lib/Components/Trend/Trend.mdx +0 -2
- package/dist/module/lib/Components/Utility/Text/Text.mdx +0 -1
- package/dist/module/lib/Symbols/Icons/ChevronAscending.js +1 -1
- package/dist/module/lib/Symbols/Icons/ChevronDescending.js +1 -1
- package/dist/module/lib/Symbols/Icons/Contact.js +50 -0
- package/dist/module/lib/Symbols/Icons/Contact.js.map +1 -0
- package/dist/module/lib/Symbols/index.js +1 -0
- package/dist/module/lib/Symbols/index.js.map +1 -1
- package/dist/typescript/src/lib/Animations/Pulse/Pulse.d.ts.map +1 -1
- package/dist/typescript/src/lib/Animations/Spin/Spin.d.ts.map +1 -1
- package/dist/typescript/src/lib/Components/AmountInput/AmountInput.d.ts +1 -1
- package/dist/typescript/src/lib/Components/AmountInput/AmountInput.d.ts.map +1 -1
- package/dist/typescript/src/lib/Components/AmountInput/types.d.ts +8 -0
- package/dist/typescript/src/lib/Components/AmountInput/types.d.ts.map +1 -1
- package/dist/typescript/src/lib/Components/AmountInput/useAmountInputFormatting/useAmountInputFormatting.d.ts +1 -0
- package/dist/typescript/src/lib/Components/AmountInput/useAmountInputFormatting/useAmountInputFormatting.d.ts.map +1 -1
- package/dist/typescript/src/lib/Components/Avatar/Avatar.d.ts +1 -4
- package/dist/typescript/src/lib/Components/Avatar/Avatar.d.ts.map +1 -1
- package/dist/typescript/src/lib/Components/Avatar/types.d.ts +0 -6
- package/dist/typescript/src/lib/Components/Avatar/types.d.ts.map +1 -1
- package/dist/typescript/src/lib/Components/DotIndicator/getDotIndicatorProps.d.ts +24 -0
- package/dist/typescript/src/lib/Components/DotIndicator/getDotIndicatorProps.d.ts.map +1 -0
- package/dist/typescript/src/lib/Components/DotIndicator/index.d.ts +1 -0
- package/dist/typescript/src/lib/Components/DotIndicator/index.d.ts.map +1 -1
- package/dist/typescript/src/lib/Components/OptionList/OptionList.d.ts +18 -4
- package/dist/typescript/src/lib/Components/OptionList/OptionList.d.ts.map +1 -1
- package/dist/typescript/src/lib/Components/OptionList/types.d.ts +16 -15
- package/dist/typescript/src/lib/Components/OptionList/types.d.ts.map +1 -1
- package/dist/typescript/src/lib/Components/OptionList/useOptionList/useOptionListItems.d.ts +9 -9
- package/dist/typescript/src/lib/Components/OptionList/useOptionList/useOptionListItems.d.ts.map +1 -1
- package/dist/typescript/src/lib/Components/SegmentedControl/SegmentedControl.d.ts +8 -3
- package/dist/typescript/src/lib/Components/SegmentedControl/SegmentedControl.d.ts.map +1 -1
- package/dist/typescript/src/lib/Components/SegmentedControl/types.d.ts +6 -5
- package/dist/typescript/src/lib/Components/SegmentedControl/types.d.ts.map +1 -1
- package/dist/typescript/src/lib/Components/TabBar/TabBar.d.ts +7 -2
- package/dist/typescript/src/lib/Components/TabBar/TabBar.d.ts.map +1 -1
- package/dist/typescript/src/lib/Components/TabBar/index.d.ts +2 -2
- package/dist/typescript/src/lib/Components/TabBar/index.d.ts.map +1 -1
- package/dist/typescript/src/lib/Components/TabBar/types.d.ts +17 -16
- package/dist/typescript/src/lib/Components/TabBar/types.d.ts.map +1 -1
- package/dist/typescript/src/lib/Symbols/Icons/Contact.d.ts +35 -0
- package/dist/typescript/src/lib/Symbols/Icons/Contact.d.ts.map +1 -0
- package/dist/typescript/src/lib/Symbols/index.d.ts +1 -0
- package/dist/typescript/src/lib/Symbols/index.d.ts.map +1 -1
- package/package.json +3 -3
- package/src/i18n/locales/de.json +1 -3
- package/src/i18n/locales/en.json +1 -3
- package/src/i18n/locales/es.json +1 -3
- package/src/i18n/locales/fr.json +1 -3
- package/src/i18n/locales/ja.json +1 -3
- package/src/i18n/locales/ko.json +1 -3
- package/src/i18n/locales/pt.json +1 -3
- package/src/i18n/locales/ru.json +1 -3
- package/src/i18n/locales/th.json +1 -3
- package/src/i18n/locales/tr.json +1 -3
- package/src/i18n/locales/zh.json +1 -3
- package/src/lib/Animations/Pulse/Pulse.mdx +0 -1
- package/src/lib/Animations/Pulse/Pulse.tsx +8 -1
- package/src/lib/Animations/Spin/Spin.mdx +0 -1
- package/src/lib/Animations/Spin/Spin.tsx +8 -1
- package/src/lib/Components/AddressInput/AddressInput.figma.tsx +39 -0
- package/src/lib/Components/AddressInput/AddressInput.mdx +0 -183
- package/src/lib/Components/AmountDisplay/AmountDisplay.figma.tsx +37 -0
- package/src/lib/Components/AmountDisplay/AmountDisplay.mdx +0 -90
- package/src/lib/Components/AmountInput/AmountInput.figma.tsx +78 -0
- package/src/lib/Components/AmountInput/AmountInput.mdx +0 -190
- package/src/lib/Components/AmountInput/AmountInput.stories.tsx +14 -0
- package/src/lib/Components/AmountInput/AmountInput.tsx +2 -0
- package/src/lib/Components/AmountInput/types.ts +8 -0
- package/src/lib/Components/AmountInput/useAmountInputFormatting/useAmountInputFormatting.test.ts +20 -0
- package/src/lib/Components/AmountInput/useAmountInputFormatting/useAmountInputFormatting.ts +2 -0
- package/src/lib/Components/Avatar/Avatar.figma.tsx +24 -14
- package/src/lib/Components/Avatar/Avatar.mdx +53 -69
- package/src/lib/Components/Avatar/Avatar.stories.tsx +16 -50
- package/src/lib/Components/Avatar/Avatar.test.tsx +12 -32
- package/src/lib/Components/Avatar/Avatar.tsx +4 -34
- package/src/lib/Components/Avatar/types.ts +0 -6
- package/src/lib/Components/Banner/Banner.figma.tsx +115 -0
- package/src/lib/Components/Banner/Banner.mdx +0 -86
- package/src/lib/Components/BottomSheet/BottomSheet.figma.tsx +52 -0
- package/src/lib/Components/BottomSheet/BottomSheet.mdx +0 -119
- package/src/lib/Components/Button/Button.figma.tsx +57 -0
- package/src/lib/Components/Button/Button.mdx +25 -224
- package/src/lib/Components/Button/Button.stories.tsx +3 -35
- package/src/lib/Components/Card/Card.figma.tsx +149 -0
- package/src/lib/Components/Card/Card.mdx +0 -160
- package/src/lib/Components/CardButton/CardButton.figma.tsx +49 -0
- package/src/lib/Components/CardButton/CardButton.mdx +0 -48
- package/src/lib/Components/Checkbox/Checkbox.figma.tsx +54 -0
- package/src/lib/Components/Checkbox/Checkbox.mdx +0 -73
- package/src/lib/Components/ContentBanner/ContentBanner.figma.tsx +108 -0
- package/src/lib/Components/ContentBanner/ContentBanner.mdx +0 -2
- package/src/lib/Components/CryptoIcon/CryptoIcon.figma.tsx +20 -0
- package/src/lib/Components/DescriptionItem/DescriptionItem.figma.tsx +36 -0
- package/src/lib/Components/Divider/Divider.figma.tsx +11 -0
- package/src/lib/Components/Divider/Divider.mdx +0 -2
- package/src/lib/Components/DotCount/DotCount.figma.tsx +32 -0
- package/src/lib/Components/DotIndicator/DotIndicator.figma.tsx +32 -0
- package/src/lib/Components/DotIndicator/DotIndicator.stories.tsx +4 -1
- package/src/lib/Components/DotIndicator/getDotIndicatorProps.test.ts +15 -0
- package/src/lib/Components/DotIndicator/getDotIndicatorProps.ts +10 -0
- package/src/lib/Components/DotIndicator/index.ts +1 -0
- package/src/lib/Components/Icon/Icon.figma.tsx +3085 -0
- package/src/lib/Components/Icon/Icon.mdx +0 -62
- package/src/lib/Components/IconButton/IconButton.figma.tsx +53 -0
- package/src/lib/Components/IconButton/IconButton.mdx +0 -68
- package/src/lib/Components/InteractiveIcon/InteractiveIcon.figma.tsx +52 -0
- package/src/lib/Components/InteractiveIcon/InteractiveIcon.mdx +0 -107
- package/src/lib/Components/Link/Link.figma.tsx +53 -0
- package/src/lib/Components/Link/Link.mdx +0 -102
- package/src/lib/Components/ListItem/ListItem.figma.tsx +431 -0
- package/src/lib/Components/ListItem/ListItem.mdx +0 -129
- package/src/lib/Components/MediaBanner/MediaBanner.figma.tsx +32 -0
- package/src/lib/Components/MediaBanner/MediaBanner.mdx +0 -3
- package/src/lib/Components/MediaButton/MediaButton.figma.tsx +60 -0
- package/src/lib/Components/MediaCard/MediaCard.figma.tsx +27 -0
- package/src/lib/Components/MediaCard/MediaCard.mdx +0 -2
- package/src/lib/Components/MediaImage/MediaImage.mdx +0 -1
- package/src/lib/Components/MediaTag/MediaTag.figma.tsx +116 -0
- package/src/lib/Components/MediaTag/MediaTag.mdx +0 -2
- package/src/lib/Components/NavBar/NavBar.figma.tsx +84 -0
- package/src/lib/Components/NavBar/NavBar.mdx +0 -2
- package/src/lib/Components/OptionList/OptionList.mdx +45 -90
- package/src/lib/Components/OptionList/OptionList.stories.tsx +63 -0
- package/src/lib/Components/OptionList/OptionList.test.tsx +40 -0
- package/src/lib/Components/OptionList/OptionList.tsx +57 -10
- package/src/lib/Components/OptionList/types.ts +34 -15
- package/src/lib/Components/OptionList/useOptionList/useOptionListItems.ts +28 -13
- package/src/lib/Components/PageIndicator/PageIndicator.figma.tsx +11 -0
- package/src/lib/Components/PageIndicator/PageIndicator.mdx +0 -2
- package/src/lib/Components/SearchInput/SearchInput.figma.tsx +34 -0
- package/src/lib/Components/SearchInput/SearchInput.mdx +0 -199
- package/src/lib/Components/SegmentedControl/SegmentedControl.figma.tsx +34 -0
- package/src/lib/Components/SegmentedControl/SegmentedControl.mdx +28 -1
- package/src/lib/Components/SegmentedControl/SegmentedControl.stories.tsx +34 -1
- package/src/lib/Components/SegmentedControl/SegmentedControl.test.tsx +32 -1
- package/src/lib/Components/SegmentedControl/SegmentedControl.tsx +22 -5
- package/src/lib/Components/SegmentedControl/types.ts +11 -5
- package/src/lib/Components/Skeleton/Skeleton.figma.tsx +17 -0
- package/src/lib/Components/Skeleton/Skeleton.mdx +0 -71
- package/src/lib/Components/Spinner/Spinner.figma.tsx +12 -0
- package/src/lib/Components/Spinner/Spinner.mdx +0 -100
- package/src/lib/Components/Spot/Spot.figma.tsx +50 -0
- package/src/lib/Components/Spot/Spot.mdx +0 -94
- package/src/lib/Components/Stepper/Stepper.figma.tsx +11 -0
- package/src/lib/Components/Stepper/Stepper.mdx +0 -67
- package/src/lib/Components/Subheader/Subheader.figma.tsx +72 -0
- package/src/lib/Components/Subheader/Subheader.mdx +0 -116
- package/src/lib/Components/Switch/Switch.figma.tsx +66 -0
- package/src/lib/Components/Switch/Switch.mdx +0 -39
- package/src/lib/Components/TabBar/TabBar.figma.tsx +70 -0
- package/src/lib/Components/TabBar/TabBar.mdx +29 -5
- package/src/lib/Components/TabBar/TabBar.stories.tsx +34 -1
- package/src/lib/Components/TabBar/TabBar.test.tsx +23 -1
- package/src/lib/Components/TabBar/TabBar.tsx +17 -9
- package/src/lib/Components/TabBar/index.ts +2 -2
- package/src/lib/Components/TabBar/types.ts +19 -17
- package/src/lib/Components/Tag/Tag.figma.tsx +52 -0
- package/src/lib/Components/Tag/Tag.mdx +0 -2
- package/src/lib/Components/TextInput/TextInput.figma.tsx +40 -0
- package/src/lib/Components/TextInput/TextInput.mdx +0 -178
- package/src/lib/Components/Tile/Tile.figma.tsx +113 -0
- package/src/lib/Components/Tile/Tile.mdx +0 -53
- package/src/lib/Components/TileButton/TileButton.figma.tsx +35 -0
- package/src/lib/Components/TileButton/TileButton.mdx +0 -40
- package/src/lib/Components/Tooltip/Tooltip.figma.tsx +30 -0
- package/src/lib/Components/Tooltip/Tooltip.mdx +0 -183
- package/src/lib/Components/Trend/Trend.figma.tsx +28 -0
- package/src/lib/Components/Trend/Trend.mdx +0 -2
- package/src/lib/Components/Utility/Text/Text.mdx +0 -1
- package/src/lib/Symbols/Icons/ChevronAscending.tsx +1 -1
- package/src/lib/Symbols/Icons/ChevronDescending.tsx +1 -1
- package/src/lib/Symbols/Icons/Contact.tsx +45 -0
- package/src/lib/Symbols/index.ts +1 -0
- package/dist/typescript/src/lib/Components/Avatar/Avatar.figma.d.ts +0 -2
- package/dist/typescript/src/lib/Components/Avatar/Avatar.figma.d.ts.map +0 -1
- package/dist/typescript/src/lib/Components/OptionList/OptionList.figma.d.ts +0 -2
- package/dist/typescript/src/lib/Components/OptionList/OptionList.figma.d.ts.map +0 -1
|
@@ -3,8 +3,6 @@ import * as BannerStories from './Banner.stories';
|
|
|
3
3
|
import { Banner } from './Banner';
|
|
4
4
|
import { Box } from '../Utility';
|
|
5
5
|
import { CustomTabs, Tab } from '../../../../.storybook/components';
|
|
6
|
-
import { DoVsDontRow, DoBlockItem, DontBlockItem } from '../../../../.storybook/components/DoVsDont';
|
|
7
|
-
import CommonRulesDoAndDont from '../../../../.storybook/components/DoVsDont/CommonRulesDoAndDont.mdx';
|
|
8
6
|
|
|
9
7
|
<Meta title='Core/Banner' of={BannerStories} />
|
|
10
8
|
|
|
@@ -349,90 +347,6 @@ Use the `lx` prop for layout adjustments like margins or positioning:
|
|
|
349
347
|
/>
|
|
350
348
|
```
|
|
351
349
|
|
|
352
|
-
## Do's and Don'ts
|
|
353
|
-
|
|
354
|
-
The following guidelines ensure consistent usage of the Banner component and maintain design system principles.
|
|
355
|
-
|
|
356
|
-
<Box lx={{ flexDirection: 'column', gap: 's16' }}>
|
|
357
|
-
|
|
358
|
-
<DoVsDontRow>
|
|
359
|
-
<DoBlockItem
|
|
360
|
-
title='Use lx for layout adjustments only'
|
|
361
|
-
description='Use the lx prop for margins, positioning, and other layout adjustments'
|
|
362
|
-
>
|
|
363
|
-
|
|
364
|
-
{/* prettier-ignore */}
|
|
365
|
-
```tsx
|
|
366
|
-
<Banner
|
|
367
|
-
title='System Notice'
|
|
368
|
-
description='Maintenance scheduled for tonight'
|
|
369
|
-
lx={{ marginTop: 's16' }}
|
|
370
|
-
appearance='warning'
|
|
371
|
-
/>
|
|
372
|
-
```
|
|
373
|
-
|
|
374
|
-
</DoBlockItem>
|
|
375
|
-
<DontBlockItem
|
|
376
|
-
title="Don't use lx for appearance changes"
|
|
377
|
-
description='Avoid using lx to modify colors, padding, or other core appearance styles'
|
|
378
|
-
>
|
|
379
|
-
|
|
380
|
-
{/* prettier-ignore */}
|
|
381
|
-
```tsx
|
|
382
|
-
<Banner
|
|
383
|
-
title='System Notice'
|
|
384
|
-
description='Maintenance scheduled for tonight'
|
|
385
|
-
lx={{ backgroundColor: 'accent', padding: 's24' }}
|
|
386
|
-
appearance='warning'
|
|
387
|
-
/>
|
|
388
|
-
```
|
|
389
|
-
|
|
390
|
-
</DontBlockItem>
|
|
391
|
-
|
|
392
|
-
</DoVsDontRow>
|
|
393
|
-
|
|
394
|
-
<DoVsDontRow>
|
|
395
|
-
<DoBlockItem
|
|
396
|
-
title='Pass complete Button components with proper styling'
|
|
397
|
-
description='Always provide fully styled Button components with appearance and size props for actions'
|
|
398
|
-
>
|
|
399
|
-
|
|
400
|
-
{/* prettier-ignore */}
|
|
401
|
-
```tsx
|
|
402
|
-
<Banner
|
|
403
|
-
title='Confirm Action'
|
|
404
|
-
description='This action cannot be undone'
|
|
405
|
-
primaryAction={
|
|
406
|
-
<Button appearance='transparent' size='sm' onPress={handleConfirm}>
|
|
407
|
-
Confirm
|
|
408
|
-
</Button>
|
|
409
|
-
}
|
|
410
|
-
appearance='warning'
|
|
411
|
-
/>
|
|
412
|
-
```
|
|
413
|
-
|
|
414
|
-
</DoBlockItem>
|
|
415
|
-
<DontBlockItem
|
|
416
|
-
title="Don't pass incomplete or unstyled buttons"
|
|
417
|
-
description='Avoid passing Button components without proper appearance and size props'
|
|
418
|
-
>
|
|
419
|
-
|
|
420
|
-
{/* prettier-ignore */}
|
|
421
|
-
```tsx
|
|
422
|
-
<Banner
|
|
423
|
-
title='Broken Action'
|
|
424
|
-
description="This won't work properly"
|
|
425
|
-
primaryAction={<Button onPress={handleSubmit}>Submit</Button>}
|
|
426
|
-
appearance='warning'
|
|
427
|
-
/>
|
|
428
|
-
```
|
|
429
|
-
|
|
430
|
-
</DontBlockItem>
|
|
431
|
-
|
|
432
|
-
</DoVsDontRow>
|
|
433
|
-
|
|
434
|
-
<CommonRulesDoAndDont />
|
|
435
|
-
</Box>
|
|
436
350
|
|
|
437
351
|
</Tab>
|
|
438
352
|
</CustomTabs>
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import figma from '@figma/code-connect';
|
|
4
|
+
import { Button } from "../Button/index.js";
|
|
5
|
+
import { BottomSheet } from "./BottomSheet.js";
|
|
6
|
+
import { BottomSheetHeader } from "./BottomSheetHeader.js";
|
|
7
|
+
import { BottomSheetView } from "./Scrollables.js";
|
|
8
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
9
|
+
figma.connect(BottomSheet, 'https://www.figma.com/design/JxaLVMTWirCpU0rsbZ30k7?node-id=118-1734', {
|
|
10
|
+
imports: ["import { BottomSheet, BottomSheetHeader, BottomSheetView, useBottomSheetRef } from '@ledgerhq/lumen-ui-rnative'", "import { Button } from '@ledgerhq/lumen-ui-rnative'"],
|
|
11
|
+
props: {
|
|
12
|
+
header: figma.nestedProps('.bottom-sheet-header', {
|
|
13
|
+
density: figma.enum('density', {
|
|
14
|
+
compact: 'compact',
|
|
15
|
+
expanded: 'expanded'
|
|
16
|
+
}),
|
|
17
|
+
title: figma.boolean('show-title', {
|
|
18
|
+
true: figma.string('title'),
|
|
19
|
+
false: undefined
|
|
20
|
+
}),
|
|
21
|
+
description: figma.boolean('show-description', {
|
|
22
|
+
true: figma.string('description'),
|
|
23
|
+
false: undefined
|
|
24
|
+
}),
|
|
25
|
+
onBack: figma.boolean('show-back-icon', {
|
|
26
|
+
true: () => {},
|
|
27
|
+
false: undefined
|
|
28
|
+
})
|
|
29
|
+
})
|
|
30
|
+
},
|
|
31
|
+
example: props => {
|
|
32
|
+
return /*#__PURE__*/_jsxs(BottomSheet, {
|
|
33
|
+
onBack: props.header.onBack,
|
|
34
|
+
children: [/*#__PURE__*/_jsx(BottomSheetHeader, {
|
|
35
|
+
density: props.header.density,
|
|
36
|
+
title: props.header.title,
|
|
37
|
+
description: props.header.description
|
|
38
|
+
}), /*#__PURE__*/_jsx(BottomSheetView, {
|
|
39
|
+
children: /*#__PURE__*/_jsx(Button, {
|
|
40
|
+
appearance: "base",
|
|
41
|
+
isFull: true,
|
|
42
|
+
onPress: () => {},
|
|
43
|
+
children: "Confirm"
|
|
44
|
+
})
|
|
45
|
+
})]
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
});
|
|
49
|
+
//# sourceMappingURL=BottomSheet.figma.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["figma","Button","BottomSheet","BottomSheetHeader","BottomSheetView","jsx","_jsx","jsxs","_jsxs","connect","imports","props","header","nestedProps","density","enum","compact","expanded","title","boolean","true","string","false","undefined","description","onBack","example","children","appearance","isFull","onPress"],"sourceRoot":"../../../../../src","sources":["lib/Components/BottomSheet/BottomSheet.figma.tsx"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,qBAAqB;AACvC,SAASC,MAAM,QAAQ,oBAAW;AAClC,SAASC,WAAW,QAAQ,kBAAe;AAC3C,SAASC,iBAAiB,QAAQ,wBAAqB;AACvD,SAASC,eAAe,QAAQ,kBAAe;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAEhDR,KAAK,CAACS,OAAO,CACXP,WAAW,EACX,sEAAsE,EACtE;EACEQ,OAAO,EAAE,CACP,iHAAiH,EACjH,qDAAqD,CACtD;EACDC,KAAK,EAAE;IACLC,MAAM,EAAEZ,KAAK,CAACa,WAAW,CAAC,sBAAsB,EAAE;MAChDC,OAAO,EAAEd,KAAK,CAACe,IAAI,CAAC,SAAS,EAAE;QAC7BC,OAAO,EAAE,SAAS;QAClBC,QAAQ,EAAE;MACZ,CAAC,CAAC;MACFC,KAAK,EAAElB,KAAK,CAACmB,OAAO,CAAC,YAAY,EAAE;QACjCC,IAAI,EAAEpB,KAAK,CAACqB,MAAM,CAAC,OAAO,CAAC;QAC3BC,KAAK,EAAEC;MACT,CAAC,CAAC;MACFC,WAAW,EAAExB,KAAK,CAACmB,OAAO,CAAC,kBAAkB,EAAE;QAC7CC,IAAI,EAAEpB,KAAK,CAACqB,MAAM,CAAC,aAAa,CAAC;QACjCC,KAAK,EAAEC;MACT,CAAC,CAAC;MACFE,MAAM,EAAEzB,KAAK,CAACmB,OAAO,CAAC,gBAAgB,EAAE;QACtCC,IAAI,EAAEA,CAAA,KAAM,CAAC,CAAC;QACdE,KAAK,EAAEC;MACT,CAAC;IACH,CAAC;EACH,CAAC;EACDG,OAAO,EAAGf,KAAK,IAAK;IAClB,oBACEH,KAAA,CAACN,WAAW;MAACuB,MAAM,EAAEd,KAAK,CAACC,MAAM,CAACa,MAAO;MAAAE,QAAA,gBACvCrB,IAAA,CAACH,iBAAiB;QAChBW,OAAO,EAAEH,KAAK,CAACC,MAAM,CAACE,OAAQ;QAC9BI,KAAK,EAAEP,KAAK,CAACC,MAAM,CAACM,KAAM;QAC1BM,WAAW,EAAEb,KAAK,CAACC,MAAM,CAACY;MAAY,CACvC,CAAC,eACFlB,IAAA,CAACF,eAAe;QAAAuB,QAAA,eACdrB,IAAA,CAACL,MAAM;UAAC2B,UAAU,EAAC,MAAM;UAACC,MAAM;UAACC,OAAO,EAAEA,CAAA,KAAM,CAAC,CAAE;UAAAH,QAAA,EAAC;QAEpD,CAAQ;MAAC,CACM,CAAC;IAAA,CACP,CAAC;EAElB;AACF,CACF,CAAC","ignoreList":[]}
|
|
@@ -2,8 +2,6 @@ import { Meta, Story, Canvas, Controls } from '@storybook/addon-docs/blocks';
|
|
|
2
2
|
import * as BottomSheetStories from './BottomSheet.stories';
|
|
3
3
|
import { BottomSheet } from './BottomSheet';
|
|
4
4
|
import { CustomTabs, Tab } from '../../../../.storybook/components';
|
|
5
|
-
import { DoVsDontRow, DoBlockItem, DontBlockItem } from '../../../../.storybook/components/DoVsDont';
|
|
6
|
-
import CommonRulesDoAndDont from '../../../../.storybook/components/DoVsDont/CommonRulesDoAndDont.mdx';
|
|
7
5
|
import { Box } from '../Utility';
|
|
8
6
|
|
|
9
7
|
<Meta title='Core/BottomSheet' of={BottomSheetStories} />
|
|
@@ -275,123 +273,6 @@ import {
|
|
|
275
273
|
- **SectionList**: Not compatible with react-native-web. See [Gorhom documentation](https://gorhom.dev/react-native-bottom-sheet/components/bottomsheetsectionlist).
|
|
276
274
|
- **FlashList**: Requires `@shopify/flash-list` package. See [Gorhom docs](https://gorhom.dev/react-native-bottom-sheet/components/bottomsheetflashlist)
|
|
277
275
|
|
|
278
|
-
## Do's and Don'ts
|
|
279
|
-
|
|
280
|
-
<Box lx={{ flexDirection: 'column', gap: 's24' }}>
|
|
281
|
-
<DoVsDontRow>
|
|
282
|
-
<DoBlockItem
|
|
283
|
-
title='Use specialized scrollable components'
|
|
284
|
-
description='Always use BottomSheet-specific components for scrollable content'
|
|
285
|
-
>
|
|
286
|
-
|
|
287
|
-
{/* prettier-ignore */}
|
|
288
|
-
```tsx
|
|
289
|
-
<BottomSheet ref={bottomSheetRef} snapPoints='full'>
|
|
290
|
-
<BottomSheetScrollView>
|
|
291
|
-
<BottomSheetHeader title='Title' density='compact' />
|
|
292
|
-
<Text typography='body2' lx={{ color: 'base' }}>Content</Text>
|
|
293
|
-
</BottomSheetScrollView>
|
|
294
|
-
</BottomSheet>
|
|
295
|
-
```
|
|
296
|
-
|
|
297
|
-
</DoBlockItem>
|
|
298
|
-
<DontBlockItem
|
|
299
|
-
title="Don't use regular React Native components"
|
|
300
|
-
description='Avoid using regular ScrollView, FlatList, etc. - they will not work properly'
|
|
301
|
-
>
|
|
302
|
-
|
|
303
|
-
{/* prettier-ignore */}
|
|
304
|
-
```tsx
|
|
305
|
-
<BottomSheet ref={bottomSheetRef} snapPoints='full'>
|
|
306
|
-
<ScrollView>
|
|
307
|
-
<BottomSheetHeader title='Title' density='compact' />
|
|
308
|
-
<Text typography='body2' lx={{ color: 'base' }}>Content</Text>
|
|
309
|
-
</ScrollView>
|
|
310
|
-
</BottomSheet>
|
|
311
|
-
```
|
|
312
|
-
|
|
313
|
-
</DontBlockItem>
|
|
314
|
-
|
|
315
|
-
</DoVsDontRow>
|
|
316
|
-
|
|
317
|
-
<DoVsDontRow>
|
|
318
|
-
<DoBlockItem
|
|
319
|
-
title='Use useBottomSheetRef with optional chaining'
|
|
320
|
-
description='Use the provided hook and always use optional chaining to call methods safely'
|
|
321
|
-
>
|
|
322
|
-
|
|
323
|
-
{/* prettier-ignore */}
|
|
324
|
-
```tsx
|
|
325
|
-
const bottomSheetRef = useBottomSheetRef();
|
|
326
|
-
|
|
327
|
-
bottomSheetRef.current?.present();
|
|
328
|
-
bottomSheetRef.current?.dismiss();
|
|
329
|
-
```
|
|
330
|
-
|
|
331
|
-
</DoBlockItem>
|
|
332
|
-
<DontBlockItem
|
|
333
|
-
title="Don't call methods without optional chaining"
|
|
334
|
-
description='Calling methods without optional chaining may crash if ref is not yet mounted'
|
|
335
|
-
>
|
|
336
|
-
|
|
337
|
-
{/* prettier-ignore */}
|
|
338
|
-
```tsx
|
|
339
|
-
const bottomSheetRef = useBottomSheetRef();
|
|
340
|
-
|
|
341
|
-
bottomSheetRef.current.present();
|
|
342
|
-
bottomSheetRef.current.dismiss();
|
|
343
|
-
```
|
|
344
|
-
|
|
345
|
-
</DontBlockItem>
|
|
346
|
-
|
|
347
|
-
</DoVsDontRow>
|
|
348
|
-
|
|
349
|
-
<DoVsDontRow>
|
|
350
|
-
<DoBlockItem
|
|
351
|
-
title='Disable both props for non-dismissible sheets'
|
|
352
|
-
description='For critical flows, disable both close button and pan-down gesture'
|
|
353
|
-
>
|
|
354
|
-
|
|
355
|
-
{/* prettier-ignore */}
|
|
356
|
-
```tsx
|
|
357
|
-
<BottomSheet
|
|
358
|
-
ref={bottomSheetRef}
|
|
359
|
-
snapPoints='full'
|
|
360
|
-
hideCloseButton
|
|
361
|
-
enablePanDownToClose={false}
|
|
362
|
-
backdropPressBehavior='none'
|
|
363
|
-
>
|
|
364
|
-
<BottomSheetView>
|
|
365
|
-
<Text typography='body2' lx={{ color: 'base' }}>Critical content</Text>
|
|
366
|
-
</BottomSheetView>
|
|
367
|
-
</BottomSheet>
|
|
368
|
-
```
|
|
369
|
-
|
|
370
|
-
</DoBlockItem>
|
|
371
|
-
<DontBlockItem
|
|
372
|
-
title="Don't disable only one dismissal method"
|
|
373
|
-
description='Partially blocking dismissal creates confusing UX - disable all methods or none'
|
|
374
|
-
>
|
|
375
|
-
|
|
376
|
-
{/* prettier-ignore */}
|
|
377
|
-
```tsx
|
|
378
|
-
<BottomSheet
|
|
379
|
-
ref={bottomSheetRef}
|
|
380
|
-
snapPoints='full'
|
|
381
|
-
hideCloseButton
|
|
382
|
-
>
|
|
383
|
-
<BottomSheetView>
|
|
384
|
-
<Text typography='body2' lx={{ color: 'base' }}>Critical content</Text>
|
|
385
|
-
</BottomSheetView>
|
|
386
|
-
</BottomSheet>
|
|
387
|
-
```
|
|
388
|
-
|
|
389
|
-
</DontBlockItem>
|
|
390
|
-
|
|
391
|
-
</DoVsDontRow>
|
|
392
|
-
|
|
393
|
-
<CommonRulesDoAndDont />
|
|
394
|
-
</Box>
|
|
395
276
|
|
|
396
277
|
## Learn More
|
|
397
278
|
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import figma from '@figma/code-connect';
|
|
4
|
+
import { Placeholder } from "../../Symbols/index.js";
|
|
5
|
+
import { Button } from "./Button.js";
|
|
6
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
7
|
+
figma.connect(Button, 'https://www.figma.com/design/JxaLVMTWirCpU0rsbZ30k7?node-id=9%3A28', {
|
|
8
|
+
imports: ["import { Button } from '@ledgerhq/lumen-ui-rnative'", "import { Placeholder } from '@ledgerhq/lumen-ui-rnative/symbols'"],
|
|
9
|
+
props: {
|
|
10
|
+
disabled: figma.enum('state', {
|
|
11
|
+
disabled: true
|
|
12
|
+
}),
|
|
13
|
+
loading: figma.enum('state', {
|
|
14
|
+
loading: true
|
|
15
|
+
}),
|
|
16
|
+
appearance: figma.enum('appearance', {
|
|
17
|
+
base: 'base',
|
|
18
|
+
gray: 'gray',
|
|
19
|
+
accent: 'accent',
|
|
20
|
+
transparent: 'transparent',
|
|
21
|
+
'no-background': 'no-background',
|
|
22
|
+
red: 'red'
|
|
23
|
+
}),
|
|
24
|
+
size: figma.enum('size', {
|
|
25
|
+
sm: 'sm',
|
|
26
|
+
md: 'md',
|
|
27
|
+
lg: 'lg'
|
|
28
|
+
}),
|
|
29
|
+
children: figma.string('label'),
|
|
30
|
+
icon: figma.enum('content', {
|
|
31
|
+
'icon-text': Placeholder,
|
|
32
|
+
text: undefined
|
|
33
|
+
})
|
|
34
|
+
},
|
|
35
|
+
example: props => /*#__PURE__*/_jsx(Button, {
|
|
36
|
+
disabled: props.disabled,
|
|
37
|
+
loading: props.loading,
|
|
38
|
+
appearance: props.appearance,
|
|
39
|
+
size: props.size,
|
|
40
|
+
icon: props.icon,
|
|
41
|
+
onPress: () => {},
|
|
42
|
+
children: props.children
|
|
43
|
+
})
|
|
44
|
+
});
|
|
45
|
+
//# sourceMappingURL=Button.figma.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["figma","Placeholder","Button","jsx","_jsx","connect","imports","props","disabled","enum","loading","appearance","base","gray","accent","transparent","red","size","sm","md","lg","children","string","icon","text","undefined","example","onPress"],"sourceRoot":"../../../../../src","sources":["lib/Components/Button/Button.figma.tsx"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,qBAAqB;AACvC,SAASC,WAAW,QAAQ,wBAAe;AAC3C,SAASC,MAAM,QAAQ,aAAU;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAGlCJ,KAAK,CAACK,OAAO,CACXH,MAAM,EACN,oEAAoE,EACpE;EACEI,OAAO,EAAE,CACP,qDAAqD,EACrD,kEAAkE,CACnE;EACDC,KAAK,EAAE;IACLC,QAAQ,EAAER,KAAK,CAACS,IAAI,CAAC,OAAO,EAAE;MAC5BD,QAAQ,EAAE;IACZ,CAAC,CAAC;IACFE,OAAO,EAAEV,KAAK,CAACS,IAAI,CAAC,OAAO,EAAE;MAC3BC,OAAO,EAAE;IACX,CAAC,CAAC;IACFC,UAAU,EAAEX,KAAK,CAACS,IAAI,CAAC,YAAY,EAAE;MACnCG,IAAI,EAAE,MAAM;MACZC,IAAI,EAAE,MAAM;MACZC,MAAM,EAAE,QAAQ;MAChBC,WAAW,EAAE,aAAa;MAC1B,eAAe,EAAE,eAAe;MAChCC,GAAG,EAAE;IACP,CAAC,CAAC;IACFC,IAAI,EAAEjB,KAAK,CAACS,IAAI,CAAC,MAAM,EAAE;MACvBS,EAAE,EAAE,IAAI;MACRC,EAAE,EAAE,IAAI;MACRC,EAAE,EAAE;IACN,CAAC,CAAC;IACFC,QAAQ,EAAErB,KAAK,CAACsB,MAAM,CAAC,OAAO,CAAC;IAC/BC,IAAI,EAAEvB,KAAK,CAACS,IAAI,CAAC,SAAS,EAAE;MAC1B,WAAW,EAAER,WAAW;MACxBuB,IAAI,EAAEC;IACR,CAAC;EACH,CAAC;EACDC,OAAO,EACLnB,KAEC,iBAEDH,IAAA,CAACF,MAAM;IACLM,QAAQ,EAAED,KAAK,CAACC,QAAS;IACzBE,OAAO,EAAEH,KAAK,CAACG,OAAQ;IACvBC,UAAU,EAAEJ,KAAK,CAACI,UAAW;IAC7BM,IAAI,EAAEV,KAAK,CAACU,IAAK;IACjBM,IAAI,EAAEhB,KAAK,CAACgB,IAAK;IACjBI,OAAO,EAAEA,CAAA,KAAM,CAAC,CAAE;IAAAN,QAAA,EAEjBd,KAAK,CAACc;EAAQ,CACT;AAEZ,CACF,CAAC","ignoreList":[]}
|
|
@@ -1,17 +1,14 @@
|
|
|
1
|
-
import { Meta, Canvas, Controls } from '@storybook/addon-docs/blocks';
|
|
1
|
+
import { Meta, Canvas, Controls, Source } from '@storybook/addon-docs/blocks';
|
|
2
2
|
import * as ButtonStories from './Button.stories';
|
|
3
3
|
import { Button } from './Button';
|
|
4
|
-
import { CustomTabs, Tab } from '../../../../.storybook/components';
|
|
5
|
-
import { DoVsDontRow, DoBlockItem, DontBlockItem } from '../../../../.storybook/components/DoVsDont';
|
|
6
|
-
import CommonRulesDoAndDont from '../../../../.storybook/components/DoVsDont/CommonRulesDoAndDont.mdx';
|
|
7
|
-
import { Box } from '../Utility';
|
|
4
|
+
import { CustomTabs, Tab, SetupNote } from '../../../../.storybook/components';
|
|
8
5
|
|
|
9
6
|
<Meta title='Core/Button' of={ButtonStories} />
|
|
10
7
|
|
|
11
8
|
# Button
|
|
12
9
|
|
|
13
10
|
<CustomTabs>
|
|
14
|
-
<Tab label="Overview
|
|
11
|
+
<Tab label="Overview">
|
|
15
12
|
|
|
16
13
|
## Introduction
|
|
17
14
|
|
|
@@ -23,9 +20,11 @@ Buttons are key interactive elements that trigger actions and guide users throug
|
|
|
23
20
|
|
|
24
21
|
<Canvas of={ButtonStories.IconText} />
|
|
25
22
|
|
|
26
|
-
- **Label**:
|
|
23
|
+
- **Label(required)**: must be present and describe the action that occurs when the button is tapped
|
|
27
24
|
- **Icon (optional)**: visually communicate the button's action, and helps draw attention
|
|
28
25
|
|
|
26
|
+
> Note: For **icon-only buttons**, use the [IconButton](https://ldls-react-native.vercel.app/?path=/docs/rnative-iconbutton--docs) component instead. It's specifically designed for icon-only interactions with proper accessibility support.
|
|
27
|
+
|
|
29
28
|
## Properties
|
|
30
29
|
|
|
31
30
|
### Overview
|
|
@@ -53,8 +52,6 @@ Buttons' contents can be of two types:
|
|
|
53
52
|
- text (default)
|
|
54
53
|
- icon-text
|
|
55
54
|
|
|
56
|
-
> Note: For `icon-only` buttons, use the [IconButton](https://ldls-react-native.vercel.app/?path=/docs/rnative-iconbutton--docs) component instead. It's specifically designed for icon-only interactions with proper accessibility support.
|
|
57
|
-
|
|
58
55
|
<Canvas of={ButtonStories.ContentTypesShowcase} />
|
|
59
56
|
|
|
60
57
|
### Size
|
|
@@ -69,11 +66,12 @@ Buttons come in four different sizes:
|
|
|
69
66
|
|
|
70
67
|
<Canvas of={ButtonStories.SizesShowcase} />
|
|
71
68
|
|
|
72
|
-
|
|
73
69
|
### States
|
|
74
70
|
|
|
75
71
|
<Canvas of={ButtonStories.StatesShowcase} />
|
|
76
72
|
|
|
73
|
+
> **Important Note:** The `loading` and `disabled` states are **not coupled**. When `disabled` is set, all event handlers are deactivated. When only `loading` is set (without `disabled`), the button remains pressable. Combine both props if you need to prevent interactions during loading.
|
|
74
|
+
|
|
77
75
|
## Responsive Layout
|
|
78
76
|
|
|
79
77
|
Buttons dynamically adapt their width to the size of their content, while keeping the default paddings:
|
|
@@ -86,84 +84,23 @@ When a label is too long, it's truncated to 2 lines, with a maximum width of the
|
|
|
86
84
|
|
|
87
85
|
> The Button must dynamically resize to its container constraints.
|
|
88
86
|
|
|
89
|
-
##
|
|
90
|
-
|
|
91
|
-
To be implemented:
|
|
92
|
-
|
|
93
|
-
- Color contrast
|
|
94
|
-
- Text zoom
|
|
95
|
-
- Touch target sizing (minimum 44px)
|
|
96
|
-
- Screen reader compatibility
|
|
97
|
-
- Semantic labeling
|
|
98
|
-
|
|
99
|
-
### Interactive States
|
|
87
|
+
## Interactive States
|
|
100
88
|
|
|
101
89
|
<Canvas of={ButtonStories.InteractiveLoadingStates} />
|
|
102
90
|
|
|
103
|
-
</Tab> <Tab label="Implementation
|
|
104
|
-
|
|
105
|
-
## Setup
|
|
91
|
+
</Tab> <Tab label="Implementation">
|
|
106
92
|
|
|
107
|
-
|
|
93
|
+
<SetupNote />
|
|
108
94
|
|
|
109
95
|
### Basic Usage
|
|
110
96
|
|
|
111
|
-
|
|
112
|
-
import { Button } from '@ledgerhq/lumen-ui-rnative';
|
|
113
|
-
|
|
114
|
-
function MyComponent() {
|
|
115
|
-
return (
|
|
116
|
-
<Button size='md' appearance='base' onPress={() => console.log('Pressed!')}>
|
|
117
|
-
Click me
|
|
118
|
-
</Button>
|
|
119
|
-
);
|
|
120
|
-
}
|
|
121
|
-
```
|
|
122
|
-
|
|
123
|
-
### Custom Styling
|
|
124
|
-
|
|
125
|
-
While the component comes with predefined styles, you can extend them using the `lx` prop for token-based styling:
|
|
126
|
-
|
|
127
|
-
```tsx
|
|
128
|
-
<Button
|
|
129
|
-
size='md'
|
|
130
|
-
appearance='base'
|
|
131
|
-
lx={{ marginTop: 's4' }} // Custom margin top using design tokens
|
|
132
|
-
onPress={() => {}}
|
|
133
|
-
>
|
|
134
|
-
Custom Button
|
|
135
|
-
</Button>
|
|
136
|
-
```
|
|
137
|
-
|
|
138
|
-
You can also use the `style` prop for escape-hatch styling when needed:
|
|
139
|
-
|
|
140
|
-
```tsx
|
|
141
|
-
<Button
|
|
142
|
-
size='md'
|
|
143
|
-
appearance='base'
|
|
144
|
-
style={{ marginTop: 16 }} // Raw style values
|
|
145
|
-
onPress={() => {}}
|
|
146
|
-
>
|
|
147
|
-
Custom Button
|
|
148
|
-
</Button>
|
|
149
|
-
```
|
|
97
|
+
<Source of={ButtonStories.Base} />
|
|
150
98
|
|
|
151
99
|
### With Icons
|
|
152
100
|
|
|
153
|
-
The Button
|
|
101
|
+
The Button supports icons with automatic size adjustment based on the button size.
|
|
154
102
|
|
|
155
|
-
|
|
156
|
-
import { Button } from '@ledgerhq/lumen-ui-rnative';
|
|
157
|
-
import { ArrowRight } from '@ledgerhq/lumen-ui-rnative/symbols';
|
|
158
|
-
|
|
159
|
-
function MyComponent() {
|
|
160
|
-
return (
|
|
161
|
-
<Button size='md' appearance='base' icon={ArrowRight} onPress={() => {}}>
|
|
162
|
-
Continue
|
|
163
|
-
</Button>
|
|
164
|
-
);
|
|
165
|
-
}
|
|
166
|
-
```
|
|
103
|
+
<Source of={ButtonStories.IconText} />
|
|
167
104
|
|
|
168
105
|
### Full Width
|
|
169
106
|
|
|
@@ -175,173 +112,37 @@ Use the `isFull` prop to make the button take the full width of its container:
|
|
|
175
112
|
</Button>
|
|
176
113
|
```
|
|
177
114
|
|
|
178
|
-
###
|
|
115
|
+
### States
|
|
116
|
+
|
|
117
|
+
Use the `loading` and `disabled` props to reflect state. `loading` shows a spinner; combine it with `disabled` to block interaction while loading.
|
|
118
|
+
|
|
119
|
+
<Source of={ButtonStories.StatesShowcase} />
|
|
179
120
|
|
|
180
|
-
|
|
121
|
+
### Custom Styling
|
|
122
|
+
|
|
123
|
+
Extend layout with the token-based `lx` prop, or the `style` prop as an escape hatch:
|
|
181
124
|
|
|
182
125
|
```tsx
|
|
183
|
-
<Button
|
|
184
|
-
|
|
185
|
-
appearance='base'
|
|
186
|
-
loading={isLoading}
|
|
187
|
-
disabled={isLoading}
|
|
188
|
-
onPress={() => {}}
|
|
189
|
-
>
|
|
190
|
-
{isLoading ? 'Loading...' : 'Submit'}
|
|
126
|
+
<Button size='md' appearance='base' lx={{ marginTop: 's4' }} onPress={() => {}}>
|
|
127
|
+
Custom Button
|
|
191
128
|
</Button>
|
|
192
129
|
```
|
|
193
130
|
|
|
194
131
|
### Pressable Integration
|
|
195
132
|
|
|
196
|
-
The Button
|
|
133
|
+
The Button is built on React Native's `Pressable` and accepts all its props:
|
|
197
134
|
|
|
198
135
|
```tsx
|
|
199
136
|
<Button
|
|
200
|
-
size='md'
|
|
201
137
|
appearance='base'
|
|
202
138
|
onPress={() => console.log('Pressed!')}
|
|
203
139
|
onPressIn={() => console.log('Press started')}
|
|
204
140
|
onPressOut={() => console.log('Press ended')}
|
|
205
|
-
disabled={false}
|
|
206
141
|
>
|
|
207
142
|
Interactive Button
|
|
208
143
|
</Button>
|
|
209
144
|
```
|
|
210
145
|
|
|
211
|
-
## Do's and Don'ts
|
|
212
|
-
|
|
213
|
-
The following guidelines are based on our [Button Component API Design ADR](https://ledgerhq.atlassian.net/wiki/spaces/DLS/pages/6003949581/ADR-001+Button+Component+API+Design). These decisions were made to ensure consistency, maintainability, and proper implementation of our design system principles.
|
|
214
|
-
|
|
215
|
-
<Box lx={{ flexDirection: 'column', gap: 's24' }}>
|
|
216
|
-
<DoVsDontRow>
|
|
217
|
-
<DoBlockItem
|
|
218
|
-
title='Use icon prop'
|
|
219
|
-
description='Pass icon as a component reference for proper sizing and alignment'
|
|
220
|
-
>
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
{/* prettier-ignore */}
|
|
224
|
-
```tsx
|
|
225
|
-
import { Plus } from '@ledgerhq/lumen-ui-rnative/symbols';
|
|
226
|
-
|
|
227
|
-
<Button icon={Plus} onPress={() => {}}>
|
|
228
|
-
Add Item
|
|
229
|
-
</Button>
|
|
230
|
-
```
|
|
231
|
-
|
|
232
|
-
</DoBlockItem>
|
|
233
|
-
<DontBlockItem
|
|
234
|
-
title="Don't include icon in children"
|
|
235
|
-
description='Avoid placing icons inside children as this breaks automatic sizing'
|
|
236
|
-
>
|
|
237
|
-
|
|
238
|
-
{/* prettier-ignore */}
|
|
239
|
-
```tsx
|
|
240
|
-
import { Plus } from '@ledgerhq/lumen-ui-rnative/symbols';
|
|
241
|
-
|
|
242
|
-
<Button onPress={() => {}}>
|
|
243
|
-
<Plus /> Add Item
|
|
244
|
-
</Button>
|
|
245
|
-
```
|
|
246
|
-
|
|
247
|
-
</DontBlockItem>
|
|
248
|
-
|
|
249
|
-
</DoVsDontRow>
|
|
250
|
-
|
|
251
|
-
<DoVsDontRow>
|
|
252
|
-
<DoBlockItem
|
|
253
|
-
title='Let Button handle icon sizing'
|
|
254
|
-
description='Icon size adjusts automatically based on button size'
|
|
255
|
-
>
|
|
256
|
-
|
|
257
|
-
{/* prettier-ignore */}
|
|
258
|
-
```tsx
|
|
259
|
-
import { Settings } from '@ledgerhq/lumen-ui-rnative/symbols';
|
|
260
|
-
|
|
261
|
-
<Button icon={Settings} size='sm' onPress={() => {}}>
|
|
262
|
-
Settings
|
|
263
|
-
</Button>
|
|
264
|
-
```
|
|
265
|
-
|
|
266
|
-
</DoBlockItem>
|
|
267
|
-
<DontBlockItem
|
|
268
|
-
title="Don't modify icon size directly"
|
|
269
|
-
description='Avoid overriding icon dimensions in children'
|
|
270
|
-
>
|
|
271
|
-
|
|
272
|
-
{/* prettier-ignore */}
|
|
273
|
-
```tsx
|
|
274
|
-
import { Settings } from '@ledgerhq/lumen-ui-rnative/symbols';
|
|
275
|
-
|
|
276
|
-
<Button size='sm' onPress={() => {}}>
|
|
277
|
-
<Settings size={24} /> Settings
|
|
278
|
-
</Button>
|
|
279
|
-
```
|
|
280
|
-
|
|
281
|
-
</DontBlockItem>
|
|
282
|
-
|
|
283
|
-
</DoVsDontRow>
|
|
284
|
-
|
|
285
|
-
<DoVsDontRow>
|
|
286
|
-
<DoBlockItem
|
|
287
|
-
title='Use isFull for width'
|
|
288
|
-
description='Use the isFull prop for full-width buttons'
|
|
289
|
-
>
|
|
290
|
-
|
|
291
|
-
{/* prettier-ignore */}
|
|
292
|
-
```tsx
|
|
293
|
-
<Button isFull onPress={() => {}}>
|
|
294
|
-
Full Width
|
|
295
|
-
</Button>
|
|
296
|
-
```
|
|
297
|
-
|
|
298
|
-
</DoBlockItem>
|
|
299
|
-
<DontBlockItem
|
|
300
|
-
title="Don't use style for full width"
|
|
301
|
-
description='Avoid using style to control button width'
|
|
302
|
-
>
|
|
303
|
-
|
|
304
|
-
{/* prettier-ignore */}
|
|
305
|
-
```tsx
|
|
306
|
-
<Button style={{ width: '100%' }} onPress={() => {}}>
|
|
307
|
-
Full Width
|
|
308
|
-
</Button>
|
|
309
|
-
```
|
|
310
|
-
|
|
311
|
-
</DontBlockItem>
|
|
312
|
-
|
|
313
|
-
</DoVsDontRow>
|
|
314
|
-
|
|
315
|
-
<DoVsDontRow>
|
|
316
|
-
<DoBlockItem
|
|
317
|
-
title='Provide proper onPress handlers'
|
|
318
|
-
description='Always provide an onPress handler for interactive buttons'
|
|
319
|
-
>
|
|
320
|
-
|
|
321
|
-
{/* prettier-ignore */}
|
|
322
|
-
```tsx
|
|
323
|
-
<Button onPress={() => navigation.navigate('Details')}>
|
|
324
|
-
View Details
|
|
325
|
-
</Button>
|
|
326
|
-
```
|
|
327
|
-
|
|
328
|
-
</DoBlockItem>
|
|
329
|
-
<DontBlockItem
|
|
330
|
-
title="Don't omit onPress"
|
|
331
|
-
description='Avoid creating buttons without onPress handlers'
|
|
332
|
-
>
|
|
333
|
-
|
|
334
|
-
{/* prettier-ignore */}
|
|
335
|
-
```tsx
|
|
336
|
-
<Button>
|
|
337
|
-
Clickable Looking Button
|
|
338
|
-
</Button>
|
|
339
|
-
```
|
|
340
|
-
</DontBlockItem>
|
|
341
|
-
</DoVsDontRow>
|
|
342
|
-
<CommonRulesDoAndDont />
|
|
343
|
-
</Box>
|
|
344
|
-
|
|
345
146
|
## Platform Considerations
|
|
346
147
|
|
|
347
148
|
### iOS Specific
|