diff --git a/.npmignore b/.npmignore new file mode 100644 index 0000000..1b24c18 --- /dev/null +++ b/.npmignore @@ -0,0 +1,2 @@ +sketch +storybook \ No newline at end of file diff --git a/fonts/baseui-icons.ttf b/fonts/baseui-icons.ttf new file mode 100644 index 0000000..dcd0135 Binary files /dev/null and b/fonts/baseui-icons.ttf differ diff --git a/react-native.config.js b/react-native.config.js new file mode 100644 index 0000000..eb592d2 --- /dev/null +++ b/react-native.config.js @@ -0,0 +1,5 @@ +module.exports = { + dependency: { + assets: ['fonts'], + }, +}; diff --git a/sketch/designs.sketch b/sketch/designs.sketch new file mode 100644 index 0000000..93252e7 Binary files /dev/null and b/sketch/designs.sketch differ diff --git a/sketch/icons/alert.svg b/sketch/icons/alert.svg new file mode 100644 index 0000000..e8ed565 --- /dev/null +++ b/sketch/icons/alert.svg @@ -0,0 +1,9 @@ + + + + alert + Created with Sketch. + + + + \ No newline at end of file diff --git a/sketch/icons/arrow-down.svg b/sketch/icons/arrow-down.svg new file mode 100644 index 0000000..1c91a85 --- /dev/null +++ b/sketch/icons/arrow-down.svg @@ -0,0 +1,9 @@ + + + + arrow-down + Created with Sketch. + + + + \ No newline at end of file diff --git a/sketch/icons/arrow-left.svg b/sketch/icons/arrow-left.svg new file mode 100644 index 0000000..80fc672 --- /dev/null +++ b/sketch/icons/arrow-left.svg @@ -0,0 +1,9 @@ + + + + arrow-left + Created with Sketch. + + + + \ No newline at end of file diff --git a/sketch/icons/arrow-right.svg b/sketch/icons/arrow-right.svg new file mode 100644 index 0000000..64d2855 --- /dev/null +++ b/sketch/icons/arrow-right.svg @@ -0,0 +1,9 @@ + + + + arrow-right + Created with Sketch. + + + + \ No newline at end of file diff --git a/sketch/icons/arrow-up.svg b/sketch/icons/arrow-up.svg new file mode 100644 index 0000000..34d4ded --- /dev/null +++ b/sketch/icons/arrow-up.svg @@ -0,0 +1,9 @@ + + + + arrow-up + Created with Sketch. + + + + \ No newline at end of file diff --git a/sketch/icons/blank.svg b/sketch/icons/blank.svg new file mode 100644 index 0000000..711bc19 --- /dev/null +++ b/sketch/icons/blank.svg @@ -0,0 +1,7 @@ + + + + blank + Created with Sketch. + + \ No newline at end of file diff --git a/sketch/icons/check-indeterminate.svg b/sketch/icons/check-indeterminate.svg new file mode 100644 index 0000000..7463914 --- /dev/null +++ b/sketch/icons/check-indeterminate.svg @@ -0,0 +1,9 @@ + + + + check-indeterminate + Created with Sketch. + + + + \ No newline at end of file diff --git a/sketch/icons/check.svg b/sketch/icons/check.svg new file mode 100644 index 0000000..b45d02b --- /dev/null +++ b/sketch/icons/check.svg @@ -0,0 +1,9 @@ + + + + check + Created with Sketch. + + + + \ No newline at end of file diff --git a/sketch/icons/chevron-down.svg b/sketch/icons/chevron-down.svg new file mode 100644 index 0000000..a7e262c --- /dev/null +++ b/sketch/icons/chevron-down.svg @@ -0,0 +1,9 @@ + + + + chevron-down + Created with Sketch. + + + + \ No newline at end of file diff --git a/sketch/icons/chevron-left.svg b/sketch/icons/chevron-left.svg new file mode 100644 index 0000000..bcac311 --- /dev/null +++ b/sketch/icons/chevron-left.svg @@ -0,0 +1,9 @@ + + + + chevron-left + Created with Sketch. + + + + \ No newline at end of file diff --git a/sketch/icons/chevron-right.svg b/sketch/icons/chevron-right.svg new file mode 100644 index 0000000..2332ead --- /dev/null +++ b/sketch/icons/chevron-right.svg @@ -0,0 +1,9 @@ + + + + chevron-right + Created with Sketch. + + + + \ No newline at end of file diff --git a/sketch/icons/chevron-up.svg b/sketch/icons/chevron-up.svg new file mode 100644 index 0000000..a506358 --- /dev/null +++ b/sketch/icons/chevron-up.svg @@ -0,0 +1,9 @@ + + + + chevron-up + Created with Sketch. + + + + \ No newline at end of file diff --git a/sketch/icons/delete-alt.svg b/sketch/icons/delete-alt.svg new file mode 100644 index 0000000..121410e --- /dev/null +++ b/sketch/icons/delete-alt.svg @@ -0,0 +1,9 @@ + + + + delete-alt + Created with Sketch. + + + + \ No newline at end of file diff --git a/sketch/icons/delete.svg b/sketch/icons/delete.svg new file mode 100644 index 0000000..ae0177d --- /dev/null +++ b/sketch/icons/delete.svg @@ -0,0 +1,9 @@ + + + + delete + Created with Sketch. + + + + \ No newline at end of file diff --git a/sketch/icons/filter.svg b/sketch/icons/filter.svg new file mode 100644 index 0000000..ee9fbf6 --- /dev/null +++ b/sketch/icons/filter.svg @@ -0,0 +1,11 @@ + + + + filter + Created with Sketch. + + + + + + \ No newline at end of file diff --git a/sketch/icons/grab.svg b/sketch/icons/grab.svg new file mode 100644 index 0000000..5e6f9b2 --- /dev/null +++ b/sketch/icons/grab.svg @@ -0,0 +1,9 @@ + + + + grab + Created with Sketch. + + + + \ No newline at end of file diff --git a/sketch/icons/hide.svg b/sketch/icons/hide.svg new file mode 100644 index 0000000..7b4cb72 --- /dev/null +++ b/sketch/icons/hide.svg @@ -0,0 +1,11 @@ + + + + hide + Created with Sketch. + + + + + + \ No newline at end of file diff --git a/sketch/icons/menu.svg b/sketch/icons/menu.svg new file mode 100644 index 0000000..f9fe3c3 --- /dev/null +++ b/sketch/icons/menu.svg @@ -0,0 +1,11 @@ + + + + menu + Created with Sketch. + + + + + + \ No newline at end of file diff --git a/sketch/icons/overflow.svg b/sketch/icons/overflow.svg new file mode 100644 index 0000000..0e9d1be --- /dev/null +++ b/sketch/icons/overflow.svg @@ -0,0 +1,11 @@ + + + + overflow + Created with Sketch. + + + + + + \ No newline at end of file diff --git a/sketch/icons/plus.svg b/sketch/icons/plus.svg new file mode 100644 index 0000000..a18637d --- /dev/null +++ b/sketch/icons/plus.svg @@ -0,0 +1,9 @@ + + + + plus + Created with Sketch. + + + + \ No newline at end of file diff --git a/sketch/icons/search.svg b/sketch/icons/search.svg new file mode 100644 index 0000000..ae778e0 --- /dev/null +++ b/sketch/icons/search.svg @@ -0,0 +1,9 @@ + + + + search + Created with Sketch. + + + + \ No newline at end of file diff --git a/sketch/icons/show.svg b/sketch/icons/show.svg new file mode 100644 index 0000000..0171dcf --- /dev/null +++ b/sketch/icons/show.svg @@ -0,0 +1,10 @@ + + + + show + Created with Sketch. + + + + + \ No newline at end of file diff --git a/sketch/icons/spinner.svg b/sketch/icons/spinner.svg new file mode 100644 index 0000000..a293e02 --- /dev/null +++ b/sketch/icons/spinner.svg @@ -0,0 +1,10 @@ + + + + spinner + Created with Sketch. + + + + + \ No newline at end of file diff --git a/sketch/icons/triangle-down.svg b/sketch/icons/triangle-down.svg new file mode 100644 index 0000000..1099bdf --- /dev/null +++ b/sketch/icons/triangle-down.svg @@ -0,0 +1,9 @@ + + + + triangle-down + Created with Sketch. + + + + \ No newline at end of file diff --git a/sketch/icons/triangle-left.svg b/sketch/icons/triangle-left.svg new file mode 100644 index 0000000..5b78670 --- /dev/null +++ b/sketch/icons/triangle-left.svg @@ -0,0 +1,9 @@ + + + + triangle-left + Created with Sketch. + + + + \ No newline at end of file diff --git a/sketch/icons/triangle-right.svg b/sketch/icons/triangle-right.svg new file mode 100644 index 0000000..4086378 --- /dev/null +++ b/sketch/icons/triangle-right.svg @@ -0,0 +1,9 @@ + + + + triangle-right + Created with Sketch. + + + + \ No newline at end of file diff --git a/sketch/icons/triangle-up.svg b/sketch/icons/triangle-up.svg new file mode 100644 index 0000000..e55e04e --- /dev/null +++ b/sketch/icons/triangle-up.svg @@ -0,0 +1,9 @@ + + + + triangle-up + Created with Sketch. + + + + \ No newline at end of file diff --git a/sketch/icons/upload.svg b/sketch/icons/upload.svg new file mode 100644 index 0000000..f71a89f --- /dev/null +++ b/sketch/icons/upload.svg @@ -0,0 +1,9 @@ + + + + upload + Created with Sketch. + + + + \ No newline at end of file diff --git a/src/icon/Icon.stories.tsx b/src/icon/Icon.stories.tsx new file mode 100644 index 0000000..64ad4e2 --- /dev/null +++ b/src/icon/Icon.stories.tsx @@ -0,0 +1,47 @@ +import React from 'react'; +import { StyleSheet, Text, View } from 'react-native'; +import { storiesOf } from '@storybook/react-native'; +import { select, color, number } from '@storybook/addon-knobs'; +import Icon from './Icon'; +import type { IconProps, NAME } from './types'; +import { ICON_SETS } from './constants'; + +const getProps = (): IconProps => ({ + name: select( + 'name', + Object.keys(ICON_SETS).reduce((result, key) => { + // @ts-ignore + result[key] = key; + return result; + }, {}), + 'show' + ), + size: number('size', 46), + // @ts-ignore + color: color('color', undefined), +}); + +storiesOf('Icon', module) + .add('default', () => ) + .add('all', () => ( + <> + {Object.keys(ICON_SETS).map((key: any) => ( + + {key} + + + ))} + + )); + +const styles = StyleSheet.create({ + container: { + width: 200, + alignContent: 'space-between', + justifyContent: 'space-between', + flexDirection: 'row', + }, + text: { + color: 'white', + }, +}); diff --git a/src/icon/Icon.tsx b/src/icon/Icon.tsx new file mode 100644 index 0000000..7cbb4f0 --- /dev/null +++ b/src/icon/Icon.tsx @@ -0,0 +1,29 @@ +import React, { useMemo } from 'react'; +import { Text } from 'react-native'; +import { useThemedStyle, useOverrideComponent } from '../hooks'; +import { DEFAULT_SIZE, ICON_SETS } from './constants'; +import { stylesCreator } from './styles'; + +import type { IconProps } from './types'; + +const Icon = ({ overrides, name, size = DEFAULT_SIZE, color }: IconProps) => { + //#region variables + const iconChar = useMemo(() => ICON_SETS[name], [name]); + //#endregion + + //#region styles + const styles = useThemedStyle(stylesCreator, size, color); + //#endregion + + //#region override components + const [RootView, RootViewProps] = useOverrideComponent( + Text, + styles.container, + overrides?.container + ); + //#endregion + + return {iconChar}; +}; + +export default Icon; diff --git a/src/icon/constants.ts b/src/icon/constants.ts new file mode 100644 index 0000000..6bf66d0 --- /dev/null +++ b/src/icon/constants.ts @@ -0,0 +1,34 @@ +const DEFAULT_SIZE = 24; + +const ICON_SETS = { + alert: '', + 'arrow-down': '', + 'arrow-left': '', + 'arrow-right': '', + 'arrow-up': '', + blank: '', + check: '', + 'check-indeterminate': '', + 'chevron-down': '', + 'chevron-left': '', + 'chevron-right': '', + 'chevron-up': '', + 'delete-alt': '', + delete: '', + filter: '', + grab: '', + hide: '', + menu: '', + overflow: '', + plus: '', + search: '', + show: '', + spinner: '', + 'triangle-down': '', + 'triangle-left': '', + 'triangle-right': '', + 'triangle-up': '', + upload: '', +}; + +export { DEFAULT_SIZE, ICON_SETS }; diff --git a/src/icon/index.ts b/src/icon/index.ts new file mode 100644 index 0000000..d60fa18 --- /dev/null +++ b/src/icon/index.ts @@ -0,0 +1,3 @@ +export { default } from './Icon'; +export { ICON_SETS } from './constants'; +export type { NAME } from './types'; diff --git a/src/icon/styles.ts b/src/icon/styles.ts new file mode 100644 index 0000000..7e10d65 --- /dev/null +++ b/src/icon/styles.ts @@ -0,0 +1,13 @@ +import { createStyles } from '../themes'; +import type { IconOverrides } from './types'; + +export const stylesCreator = createStyles( + (theme, size, color) => ({ + container: { + color: color ?? theme.colors.contentPrimary, + fontFamily: 'baseui-icons', + fontSize: size, + // lineHeight: size, + }, + }) +); diff --git a/src/icon/types.d.ts b/src/icon/types.d.ts new file mode 100644 index 0000000..21db023 --- /dev/null +++ b/src/icon/types.d.ts @@ -0,0 +1,35 @@ +import type { TextProps } from 'react-native'; +import type { Override } from '../types'; +import type { ICON_SETS } from './constants'; + +export type NAME = keyof typeof ICON_SETS; + +export interface IconOverrides { + [key: string]: Override; + container?: Override; +} + +export interface IconProps { + /** + * Defines the icon overrides. + * @default undefined + */ + overrides?: IconOverrides; + + /** + * Defines the icon name. + */ + name: NAME; + + /** + * Defines the icon size. + * @default 24 + */ + size?: number; + + /** + * Defines the icon color. + * @default {contentPrimary} + */ + color?: string; +} diff --git a/storybook/.eslintcache b/storybook/.eslintcache index 628892d..74896b4 100644 --- a/storybook/.eslintcache +++ b/storybook/.eslintcache @@ -1 +1 @@ -[{"/Users/gorhom/Desktop/projects/base-ui/storybook/src/index.web.ts":"1","/Users/gorhom/Desktop/projects/base-ui/storybook/src/App.tsx":"2","/Users/gorhom/Desktop/projects/base-ui/storybook/src/stories.ts":"3","/Users/gorhom/Desktop/projects/base-ui/storybook/src/decorators/withThemeProvider.tsx":"4","/Users/gorhom/Desktop/projects/base-ui/storybook/src/decorators/withCenterView.tsx":"5"},{"size":250,"mtime":1609335802703,"results":"6","hashOfConfig":"7"},{"size":669,"mtime":1609335802702,"results":"8","hashOfConfig":"7"},{"size":92,"mtime":1609335802709,"results":"9","hashOfConfig":"7"},{"size":1453,"mtime":1609336413286,"results":"10","hashOfConfig":"7"},{"size":714,"mtime":1609336413286,"results":"11","hashOfConfig":"7"},{"filePath":"12","messages":"13","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},"lwujbe",{"filePath":"14","messages":"15","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"16","messages":"17","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"18","messages":"19","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"20","messages":"21","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},"/Users/gorhom/Desktop/projects/base-ui/storybook/src/index.web.ts",[],"/Users/gorhom/Desktop/projects/base-ui/storybook/src/App.tsx",[],"/Users/gorhom/Desktop/projects/base-ui/storybook/src/stories.ts",[],"/Users/gorhom/Desktop/projects/base-ui/storybook/src/decorators/withThemeProvider.tsx",[],"/Users/gorhom/Desktop/projects/base-ui/storybook/src/decorators/withCenterView.tsx",[]] \ No newline at end of file +[{"/Users/gorhom/Desktop/projects/base-ui/storybook/src/index.web.ts":"1","/Users/gorhom/Desktop/projects/base-ui/storybook/src/App.tsx":"2","/Users/gorhom/Desktop/projects/base-ui/storybook/src/stories.ts":"3","/Users/gorhom/Desktop/projects/base-ui/storybook/src/decorators/withThemeProvider.tsx":"4","/Users/gorhom/Desktop/projects/base-ui/storybook/src/decorators/withCenterView.tsx":"5"},{"size":250,"mtime":1609336918990,"results":"6","hashOfConfig":"7"},{"size":669,"mtime":1609336918989,"results":"8","hashOfConfig":"7"},{"size":130,"mtime":1609336919002,"results":"9","hashOfConfig":"7"},{"size":1453,"mtime":1609336919003,"results":"10","hashOfConfig":"7"},{"size":714,"mtime":1609336919003,"results":"11","hashOfConfig":"7"},{"filePath":"12","messages":"13","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},"lwujbe",{"filePath":"14","messages":"15","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"16","messages":"17","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"18","messages":"19","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"20","messages":"21","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},"/Users/gorhom/Desktop/projects/base-ui/storybook/src/index.web.ts",[],"/Users/gorhom/Desktop/projects/base-ui/storybook/src/App.tsx",[],"/Users/gorhom/Desktop/projects/base-ui/storybook/src/stories.ts",[],"/Users/gorhom/Desktop/projects/base-ui/storybook/src/decorators/withThemeProvider.tsx",[],"/Users/gorhom/Desktop/projects/base-ui/storybook/src/decorators/withCenterView.tsx",[]] \ No newline at end of file diff --git a/storybook/android/app/src/main/assets/fonts/baseui-icons.ttf b/storybook/android/app/src/main/assets/fonts/baseui-icons.ttf new file mode 100644 index 0000000..dcd0135 Binary files /dev/null and b/storybook/android/app/src/main/assets/fonts/baseui-icons.ttf differ diff --git a/storybook/config-overrides.js b/storybook/config-overrides.js index 95d2424..f69a8bc 100644 --- a/storybook/config-overrides.js +++ b/storybook/config-overrides.js @@ -8,8 +8,8 @@ const { override, } = require('customize-cra'); const { plugins } = require('./babel.config'); -const path = require('path'); +const path = require('path'); const root = path.resolve(__dirname, '../'); module.exports = override( @@ -18,6 +18,11 @@ module.exports = override( include: path.resolve(root, 'src'), use: 'babel-loader', }), + addWebpackModuleRule({ + test: /\.ttf$/, + loader: 'url-loader', + include: root, + }), fixBabelImports('module-resolver', { alias: { '^react-native$': 'react-native-web', diff --git a/storybook/ios/BaseUI.xcodeproj/project.pbxproj b/storybook/ios/BaseUI.xcodeproj/project.pbxproj index 3e7008d..c523122 100644 --- a/storybook/ios/BaseUI.xcodeproj/project.pbxproj +++ b/storybook/ios/BaseUI.xcodeproj/project.pbxproj @@ -10,6 +10,7 @@ 13B07FBC1A68108700A75B9A /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB01A68108700A75B9A /* AppDelegate.m */; }; 13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB51A68108700A75B9A /* Images.xcassets */; }; 13B07FC11A68108700A75B9A /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB71A68108700A75B9A /* main.m */; }; + 328A1894776B45C99B75DC17 /* baseui-icons.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 3DE1D295F5D34401B5399710 /* baseui-icons.ttf */; }; 7FFEBF27F9CF2916B112EA20 /* libPods-BaseUI.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 41B4ACA92271CFB897139A62 /* libPods-BaseUI.a */; }; 81AB9BB82411601600AC10FF /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */; }; /* End PBXBuildFile section */ @@ -23,6 +24,7 @@ 13B07FB51A68108700A75B9A /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = baseui/Images.xcassets; sourceTree = ""; }; 13B07FB61A68108700A75B9A /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = baseui/Info.plist; sourceTree = ""; }; 13B07FB71A68108700A75B9A /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = baseui/main.m; sourceTree = ""; }; + 3DE1D295F5D34401B5399710 /* baseui-icons.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "baseui-icons.ttf"; path = "../../fonts/baseui-icons.ttf"; sourceTree = ""; }; 41B4ACA92271CFB897139A62 /* libPods-BaseUI.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-BaseUI.a"; sourceTree = BUILT_PRODUCTS_DIR; }; 4858BC91746B3EDE5547268E /* libPods-baseui-tvOSTests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-baseui-tvOSTests.a"; sourceTree = BUILT_PRODUCTS_DIR; }; 735E6227338D85D8C5535D0E /* Pods-BaseUI.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-BaseUI.release.xcconfig"; path = "Target Support Files/Pods-BaseUI/Pods-BaseUI.release.xcconfig"; sourceTree = ""; }; @@ -61,6 +63,14 @@ name = baseui; sourceTree = ""; }; + 14D954F18CCB41A2A35B2A72 /* Resources */ = { + isa = PBXGroup; + children = ( + 3DE1D295F5D34401B5399710 /* baseui-icons.ttf */, + ); + name = Resources; + sourceTree = ""; + }; 2D16E6871FA4F8E400B85C8A /* Frameworks */ = { isa = PBXGroup; children = ( @@ -89,6 +99,7 @@ 83CBBA001A601CBA00E9B192 /* Products */, 2D16E6871FA4F8E400B85C8A /* Frameworks */, 87AA3D022473CA70578A3B56 /* Pods */, + 14D954F18CCB41A2A35B2A72 /* Resources */, ); indentWidth = 2; sourceTree = ""; @@ -176,6 +187,7 @@ files = ( 81AB9BB82411601600AC10FF /* LaunchScreen.storyboard in Resources */, 13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */, + 328A1894776B45C99B75DC17 /* baseui-icons.ttf in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/storybook/ios/baseui/Info.plist b/storybook/ios/baseui/Info.plist index a15bb3d..5eb9760 100644 --- a/storybook/ios/baseui/Info.plist +++ b/storybook/ios/baseui/Info.plist @@ -38,7 +38,7 @@ NSLocationWhenInUseUsageDescription - + UILaunchStoryboardName LaunchScreen UIRequiredDeviceCapabilities @@ -51,5 +51,9 @@ UIViewControllerBasedStatusBarAppearance + UIAppFonts + + baseui-icons.ttf + diff --git a/storybook/react-native.config.js b/storybook/react-native.config.js new file mode 100644 index 0000000..e8076d8 --- /dev/null +++ b/storybook/react-native.config.js @@ -0,0 +1,7 @@ +module.exports = { + project: { + ios: {}, + android: {}, // grouped into "project" + }, + assets: ['../fonts'], // stays the same +}; diff --git a/storybook/src/stories.ts b/storybook/src/stories.ts index 8026856..5b04658 100644 --- a/storybook/src/stories.ts +++ b/storybook/src/stories.ts @@ -1,2 +1,3 @@ import '../../src/button/Button.stories'; import '../../src/typography/Typography.stories'; +import '../../src/icon/Icon.stories';