Icons
This commit is contained in:
@@ -0,0 +1 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24"><path fill="#000" fill-rule="evenodd" d="M8 6a1 1 0 0 1 1-1h9a1 1 0 0 1 1 1v9a1 1 0 1 1-2 0V8.414l-9.793 9.793a1 1 0 0 1-1.414-1.414L15.586 7H9a1 1 0 0 1-1-1Z" clip-rule="evenodd"/></svg>
|
||||||
|
After Width: | Height: | Size: 260 B |
@@ -0,0 +1 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24"><path fill="#000" fill-rule="evenodd" d="M4.062 11h2.961c.103-2.204.545-4.218 1.235-5.77.06-.136.123-.269.188-.399A8.007 8.007 0 0 0 4.062 11ZM12 2C6.477 2 2 6.477 2 12s4.477 10 10 10 10-4.477 10-10S17.523 2 12 2Zm0 2c-.227 0-.518.1-.868.432-.354.337-.719.872-1.047 1.61-.561 1.263-.958 2.991-1.06 4.958h5.95c-.102-1.967-.499-3.695-1.06-4.958-.328-.738-.693-1.273-1.047-1.61C12.518 4.099 12.227 4 12 4Zm4.977 7c-.103-2.204-.545-4.218-1.235-5.77a9.78 9.78 0 0 0-.188-.399A8.006 8.006 0 0 1 19.938 11h-2.961Zm-2.003 2H9.026c.101 1.966.498 3.695 1.06 4.958.327.738.692 1.273 1.046 1.61.35.333.641.432.868.432.227 0 .518-.1.868-.432.354-.337.719-.872 1.047-1.61.561-1.263.958-2.991 1.06-4.958Zm.58 6.169c.065-.13.128-.263.188-.399.69-1.552 1.132-3.566 1.235-5.77h2.961a8.006 8.006 0 0 1-4.384 6.169Zm-7.108 0a9.877 9.877 0 0 1-.188-.399c-.69-1.552-1.132-3.566-1.235-5.77H4.062a8.006 8.006 0 0 0 4.384 6.169Z" clip-rule="evenodd"/></svg>
|
||||||
|
After Width: | Height: | Size: 1005 B |
@@ -0,0 +1,27 @@
|
|||||||
|
import React from 'react'
|
||||||
|
import Svg, {Path} from 'react-native-svg'
|
||||||
|
|
||||||
|
import {useCommonSVGProps, Props} from '#/components/icons/common'
|
||||||
|
|
||||||
|
export const ArrowTopRight_Stroke2_Corner0_Rounded = React.forwardRef(
|
||||||
|
function LogoImpl(props: Props, ref) {
|
||||||
|
const {fill, size, style, ...rest} = useCommonSVGProps(props)
|
||||||
|
|
||||||
|
return (
|
||||||
|
<Svg
|
||||||
|
fill="none"
|
||||||
|
{...rest}
|
||||||
|
// @ts-ignore it's fiiiiine
|
||||||
|
ref={ref}
|
||||||
|
viewBox="0 0 24 24"
|
||||||
|
style={[{width: size}, style]}>
|
||||||
|
<Path
|
||||||
|
fill={fill}
|
||||||
|
fill-rule="evenodd"
|
||||||
|
clip-rule="evenodd"
|
||||||
|
d="M8 6a1 1 0 0 1 1-1h9a1 1 0 0 1 1 1v9a1 1 0 1 1-2 0V8.414l-9.793 9.793a1 1 0 0 1-1.414-1.414L15.586 7H9a1 1 0 0 1-1-1Z"
|
||||||
|
/>
|
||||||
|
</Svg>
|
||||||
|
)
|
||||||
|
},
|
||||||
|
)
|
||||||
@@ -0,0 +1,27 @@
|
|||||||
|
import React from 'react'
|
||||||
|
import Svg, {Path} from 'react-native-svg'
|
||||||
|
|
||||||
|
import {useCommonSVGProps, Props} from '#/components/icons/common'
|
||||||
|
|
||||||
|
export const Globe_Stroke2_Corner0_Rounded = React.forwardRef(function LogoImpl(
|
||||||
|
props: Props,
|
||||||
|
ref,
|
||||||
|
) {
|
||||||
|
const {fill, size, style, ...rest} = useCommonSVGProps(props)
|
||||||
|
|
||||||
|
return (
|
||||||
|
<Svg
|
||||||
|
fill="none"
|
||||||
|
{...rest}
|
||||||
|
// @ts-ignore it's fiiiiine
|
||||||
|
ref={ref}
|
||||||
|
viewBox="0 0 24 24"
|
||||||
|
style={[{width: size}, style]}>
|
||||||
|
<Path
|
||||||
|
fill={fill}
|
||||||
|
fill-rule="evenodd"
|
||||||
|
d="M4.062 11h2.961c.103-2.204.545-4.218 1.235-5.77.06-.136.123-.269.188-.399A8.007 8.007 0 0 0 4.062 11ZM12 2C6.477 2 2 6.477 2 12s4.477 10 10 10 10-4.477 10-10S17.523 2 12 2Zm0 2c-.227 0-.518.1-.868.432-.354.337-.719.872-1.047 1.61-.561 1.263-.958 2.991-1.06 4.958h5.95c-.102-1.967-.499-3.695-1.06-4.958-.328-.738-.693-1.273-1.047-1.61C12.518 4.099 12.227 4 12 4Zm4.977 7c-.103-2.204-.545-4.218-1.235-5.77a9.78 9.78 0 0 0-.188-.399A8.006 8.006 0 0 1 19.938 11h-2.961Zm-2.003 2H9.026c.101 1.966.498 3.695 1.06 4.958.327.738.692 1.273 1.046 1.61.35.333.641.432.868.432.227 0 .518-.1.868-.432.354-.337.719-.872 1.047-1.61.561-1.263.958-2.991 1.06-4.958Zm.58 6.169c.065-.13.128-.263.188-.399.69-1.552 1.132-3.566 1.235-5.77h2.961a8.006 8.006 0 0 1-4.384 6.169Zm-7.108 0a9.877 9.877 0 0 1-.188-.399c-.69-1.552-1.132-3.566-1.235-5.77H4.062a8.006 8.006 0 0 0 4.384 6.169Z"
|
||||||
|
/>
|
||||||
|
</Svg>
|
||||||
|
)
|
||||||
|
})
|
||||||
@@ -0,0 +1,27 @@
|
|||||||
|
import React from 'react'
|
||||||
|
import Svg, {Path} from 'react-native-svg'
|
||||||
|
|
||||||
|
import {useCommonSVGProps, Props} from '#/components/icons/common'
|
||||||
|
|
||||||
|
export const IconTemplate_Stroke2_Corner0_Rounded = React.forwardRef(
|
||||||
|
function LogoImpl(props: Props, ref) {
|
||||||
|
const {fill, size, style, ...rest} = useCommonSVGProps(props)
|
||||||
|
|
||||||
|
return (
|
||||||
|
<Svg
|
||||||
|
fill="none"
|
||||||
|
{...rest}
|
||||||
|
// @ts-ignore it's fiiiiine
|
||||||
|
ref={ref}
|
||||||
|
viewBox="0 0 24 24"
|
||||||
|
style={[{width: size}, style]}>
|
||||||
|
<Path
|
||||||
|
fill={fill}
|
||||||
|
fill-rule="evenodd"
|
||||||
|
clip-rule="evenodd"
|
||||||
|
d="M4.062 11h2.961c.103-2.204.545-4.218 1.235-5.77.06-.136.123-.269.188-.399A8.007 8.007 0 0 0 4.062 11ZM12 2C6.477 2 2 6.477 2 12s4.477 10 10 10 10-4.477 10-10S17.523 2 12 2Zm0 2c-.227 0-.518.1-.868.432-.354.337-.719.872-1.047 1.61-.561 1.263-.958 2.991-1.06 4.958h5.95c-.102-1.967-.499-3.695-1.06-4.958-.328-.738-.693-1.273-1.047-1.61C12.518 4.099 12.227 4 12 4Zm4.977 7c-.103-2.204-.545-4.218-1.235-5.77a9.78 9.78 0 0 0-.188-.399A8.006 8.006 0 0 1 19.938 11h-2.961Zm-2.003 2H9.026c.101 1.966.498 3.695 1.06 4.958.327.738.692 1.273 1.046 1.61.35.333.641.432.868.432.227 0 .518-.1.868-.432.354-.337.719-.872 1.047-1.61.561-1.263.958-2.991 1.06-4.958Zm.58 6.169c.065-.13.128-.263.188-.399.69-1.552 1.132-3.566 1.235-5.77h2.961a8.006 8.006 0 0 1-4.384 6.169Zm-7.108 0a9.877 9.877 0 0 1-.188-.399c-.69-1.552-1.132-3.566-1.235-5.77H4.062a8.006 8.006 0 0 0 4.384 6.169Z"
|
||||||
|
/>
|
||||||
|
</Svg>
|
||||||
|
)
|
||||||
|
},
|
||||||
|
)
|
||||||
@@ -0,0 +1,32 @@
|
|||||||
|
import {StyleSheet, TextProps} from 'react-native'
|
||||||
|
import type {SvgProps, PathProps} from 'react-native-svg'
|
||||||
|
|
||||||
|
import {tokens} from '#/alf'
|
||||||
|
|
||||||
|
export type Props = {
|
||||||
|
fill?: PathProps['fill']
|
||||||
|
style?: TextProps['style']
|
||||||
|
size?: keyof typeof sizes
|
||||||
|
} & Omit<SvgProps, 'style'>
|
||||||
|
|
||||||
|
export const sizes = {
|
||||||
|
xs: 12,
|
||||||
|
sm: 16,
|
||||||
|
md: 20,
|
||||||
|
lg: 24,
|
||||||
|
xl: 28,
|
||||||
|
}
|
||||||
|
|
||||||
|
export function useCommonSVGProps(props: Props) {
|
||||||
|
const {fill, size, ...rest} = props
|
||||||
|
const style = StyleSheet.flatten(rest.style)
|
||||||
|
const _fill = fill || style?.color || tokens.color.blue_500
|
||||||
|
const _size = Number(size ? sizes[size] : rest.width || sizes.md)
|
||||||
|
|
||||||
|
return {
|
||||||
|
fill: _fill,
|
||||||
|
size: _size,
|
||||||
|
style,
|
||||||
|
...rest,
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,32 @@
|
|||||||
|
import React from 'react'
|
||||||
|
import {View} from 'react-native'
|
||||||
|
|
||||||
|
import {atoms as a, useTheme} from '#/alf'
|
||||||
|
import {H1} from '#/components/Typography'
|
||||||
|
import {Globe_Stroke2_Corner0_Rounded as Globe} from '#/components/icons/Globe'
|
||||||
|
import {ArrowTopRight_Stroke2_Corner0_Rounded as ArrowTopRight} from '#/components/icons/ArrowTopRight'
|
||||||
|
|
||||||
|
export function Icons() {
|
||||||
|
const t = useTheme()
|
||||||
|
return (
|
||||||
|
<View style={[a.gap_md]}>
|
||||||
|
<H1>Icons</H1>
|
||||||
|
|
||||||
|
<View style={[a.flex_row, a.gap_xl]}>
|
||||||
|
<Globe size="xs" fill={t.atoms.text.color} />
|
||||||
|
<Globe size="sm" fill={t.atoms.text.color} />
|
||||||
|
<Globe size="md" fill={t.atoms.text.color} />
|
||||||
|
<Globe size="lg" fill={t.atoms.text.color} />
|
||||||
|
<Globe size="xl" fill={t.atoms.text.color} />
|
||||||
|
</View>
|
||||||
|
|
||||||
|
<View style={[a.flex_row, a.gap_xl]}>
|
||||||
|
<ArrowTopRight size="xs" fill={t.atoms.text.color} />
|
||||||
|
<ArrowTopRight size="sm" fill={t.atoms.text.color} />
|
||||||
|
<ArrowTopRight size="md" fill={t.atoms.text.color} />
|
||||||
|
<ArrowTopRight size="lg" fill={t.atoms.text.color} />
|
||||||
|
<ArrowTopRight size="xl" fill={t.atoms.text.color} />
|
||||||
|
</View>
|
||||||
|
</View>
|
||||||
|
)
|
||||||
|
}
|
||||||
@@ -15,6 +15,7 @@ import {Forms} from './Forms'
|
|||||||
import {Dialogs} from './Dialogs'
|
import {Dialogs} from './Dialogs'
|
||||||
import {Breakpoints} from './Breakpoints'
|
import {Breakpoints} from './Breakpoints'
|
||||||
import {Shadows} from './Shadows'
|
import {Shadows} from './Shadows'
|
||||||
|
import {Icons} from './Icons'
|
||||||
|
|
||||||
export function Storybook() {
|
export function Storybook() {
|
||||||
const t = useTheme()
|
const t = useTheme()
|
||||||
@@ -53,7 +54,6 @@ export function Storybook() {
|
|||||||
Dark
|
Dark
|
||||||
</Button>
|
</Button>
|
||||||
</View>
|
</View>
|
||||||
<Dialogs />
|
|
||||||
|
|
||||||
<ThemeProvider theme="light">
|
<ThemeProvider theme="light">
|
||||||
<Theming />
|
<Theming />
|
||||||
@@ -69,8 +69,10 @@ export function Storybook() {
|
|||||||
<Spacing />
|
<Spacing />
|
||||||
<Shadows />
|
<Shadows />
|
||||||
<Buttons />
|
<Buttons />
|
||||||
|
<Icons />
|
||||||
<Links />
|
<Links />
|
||||||
<Forms />
|
<Forms />
|
||||||
|
<Dialogs />
|
||||||
<Breakpoints />
|
<Breakpoints />
|
||||||
</View>
|
</View>
|
||||||
</CenteredView>
|
</CenteredView>
|
||||||
|
|||||||
Reference in New Issue
Block a user