@xhsreds/reds-rn-next 0.0.2-beta20240708190837 → 0.0.2
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/coverage/coverage-final.json +8 -5
- package/lib/cjs/_chunks/{Dx-JjEWA.js → CAyGJuk1.js} +27 -1
- package/lib/cjs/_chunks/{Dx-JjEWA.js.map → CAyGJuk1.js.map} +1 -1
- package/lib/cjs/_chunks/DiJl2cva.js +49 -0
- package/lib/cjs/_chunks/DiJl2cva.js.map +1 -0
- package/lib/cjs/components/Button/index.js +1 -1
- package/lib/cjs/components/Button/index.js.map +1 -1
- package/lib/cjs/components/Button/interface/index.js +12 -0
- package/lib/cjs/components/Button/interface/index.js.map +1 -1
- package/lib/cjs/components/ConfigProvider/ConfigProvider.js +15 -0
- package/lib/cjs/components/ConfigProvider/ConfigProvider.js.map +1 -0
- package/lib/cjs/components/ConfigProvider/hooks/ConfigCache/ConfigCache.js +147 -0
- package/lib/cjs/components/ConfigProvider/hooks/ConfigCache/ConfigCache.js.map +1 -0
- package/lib/cjs/components/ConfigProvider/hooks/ConfigCache/index.js +10 -0
- package/lib/cjs/components/ConfigProvider/hooks/ConfigCache/index.js.map +1 -0
- package/lib/cjs/components/ConfigProvider/hooks/ConfigCache/interface.js +3 -0
- package/lib/cjs/components/ConfigProvider/hooks/ConfigCache/interface.js.map +1 -0
- package/lib/cjs/components/ConfigProvider/hooks/ConfigContext/ConfigContext.js +10 -0
- package/lib/cjs/components/ConfigProvider/hooks/ConfigContext/ConfigContext.js.map +1 -0
- package/lib/cjs/components/ConfigProvider/hooks/themeToken/useThemeToken.js +24 -0
- package/lib/cjs/components/ConfigProvider/hooks/themeToken/useThemeToken.js.map +1 -0
- package/lib/cjs/components/ConfigProvider/index.js +17 -0
- package/lib/cjs/components/ConfigProvider/index.js.map +1 -0
- package/lib/cjs/components/ConfigProvider/interface/index.js +3 -0
- package/lib/cjs/components/ConfigProvider/interface/index.js.map +1 -0
- package/lib/cjs/components/Popover/component.js +1 -1
- package/lib/cjs/components/Popover/hook.js +1 -1
- package/lib/cjs/components/Popover/index.js +4 -4
- package/lib/cjs/components/Popover/index.js.map +1 -1
- package/lib/cjs/components/Switch/index.js +8 -6
- package/lib/cjs/components/Switch/index.js.map +1 -1
- package/lib/cjs/components/Switch/interface/index.js +2 -2
- package/lib/cjs/components/Switch/interface/index.js.map +1 -1
- package/lib/cjs/index.js +7 -1
- package/lib/cjs/index.js.map +1 -1
- package/lib/esm/_chunks/{Bm4Re-8r.js → BHmvJnIm.js} +25 -2
- package/lib/esm/_chunks/{Bm4Re-8r.js.map → BHmvJnIm.js.map} +1 -1
- package/lib/esm/_chunks/Br6Ked0G.js +46 -0
- package/lib/esm/_chunks/Br6Ked0G.js.map +1 -0
- package/lib/esm/components/Button/index.js +1 -1
- package/lib/esm/components/Button/index.js.map +1 -1
- package/lib/esm/components/Button/interface/index.js +11 -0
- package/lib/esm/components/Button/interface/index.js.map +1 -1
- package/lib/esm/components/ConfigProvider/ConfigProvider.js +7 -0
- package/lib/esm/components/ConfigProvider/ConfigProvider.js.map +1 -0
- package/lib/esm/components/ConfigProvider/hooks/ConfigCache/ConfigCache.js +145 -0
- package/lib/esm/components/ConfigProvider/hooks/ConfigCache/ConfigCache.js.map +1 -0
- package/lib/esm/components/ConfigProvider/hooks/ConfigCache/index.js +4 -0
- package/lib/esm/components/ConfigProvider/hooks/ConfigCache/index.js.map +1 -0
- package/lib/esm/components/ConfigProvider/hooks/ConfigCache/interface.js +2 -0
- package/lib/esm/components/ConfigProvider/hooks/ConfigCache/interface.js.map +1 -0
- package/lib/esm/components/ConfigProvider/hooks/ConfigContext/ConfigContext.js +8 -0
- package/lib/esm/components/ConfigProvider/hooks/ConfigContext/ConfigContext.js.map +1 -0
- package/lib/esm/components/ConfigProvider/hooks/themeToken/useThemeToken.js +22 -0
- package/lib/esm/components/ConfigProvider/hooks/themeToken/useThemeToken.js.map +1 -0
- package/lib/esm/components/ConfigProvider/index.js +12 -0
- package/lib/esm/components/ConfigProvider/index.js.map +1 -0
- package/lib/esm/components/ConfigProvider/interface/index.js +2 -0
- package/lib/esm/components/ConfigProvider/interface/index.js.map +1 -0
- package/lib/esm/components/Popover/component.js +1 -1
- package/lib/esm/components/Popover/hook.js +1 -1
- package/lib/esm/components/Popover/index.js +4 -4
- package/lib/esm/components/Popover/index.js.map +1 -1
- package/lib/esm/components/Switch/index.js +9 -7
- package/lib/esm/components/Switch/index.js.map +1 -1
- package/lib/esm/components/Switch/interface/index.js +3 -3
- package/lib/esm/components/Switch/interface/index.js.map +1 -1
- package/lib/esm/index.js +5 -1
- package/lib/esm/index.js.map +1 -1
- package/lib/types/src/components/Button/index.d.ts +4 -0
- package/lib/types/src/components/Button/interface/index.d.ts +11 -0
- package/lib/types/src/components/ConfigProvider/ConfigProvider.d.ts +4 -0
- package/lib/types/src/components/ConfigProvider/hooks/ConfigCache/ConfigCache.d.ts +22 -0
- package/lib/types/src/components/ConfigProvider/hooks/ConfigCache/index.d.ts +1 -0
- package/lib/types/src/components/ConfigProvider/hooks/ConfigCache/interface.d.ts +36 -0
- package/lib/types/src/components/ConfigProvider/hooks/ConfigContext/ConfigContext.d.ts +5 -0
- package/lib/types/src/components/ConfigProvider/hooks/themeToken/useThemeToken.d.ts +8 -0
- package/lib/types/src/components/ConfigProvider/index.d.ts +3 -0
- package/lib/types/src/components/ConfigProvider/interface/index.d.ts +27 -0
- package/lib/types/src/components/Popover/component.d.ts +13 -0
- package/lib/types/src/components/Popover/hook.d.ts +66 -0
- package/lib/types/src/components/Popover/index.d.ts +4 -0
- package/lib/types/src/components/Popover/interface/index.d.ts +13 -0
- package/lib/types/src/components/Popover/manifest.d.ts +3 -0
- package/lib/types/src/components/Switch/index.d.ts +7 -0
- package/lib/types/src/components/Switch/interface/index.d.ts +11 -0
- package/lib/types/src/index.d.ts +5 -0
- package/package.json +8 -4
- package/rollup.config.js +25 -25
- package/src/components/Button/demo/index.jsx +50 -0
- package/src/components/Button/demo/index.tsx +50 -0
- package/src/components/Button/doc/index.mdx +18 -0
- package/src/components/Button/index.tsx +0 -1
- package/src/components/Button/interface/index.ts +17 -29
- package/src/components/Button/test/index.bench.tsx +18 -0
- package/src/components/Button/test/index.test.tsx +9 -0
- package/src/components/ConfigProvider/ConfigProvider.tsx +48 -0
- package/src/components/ConfigProvider/demo/base.jsx +114 -0
- package/src/components/ConfigProvider/demo/index.jsx +50 -0
- package/src/components/ConfigProvider/demo/index.tsx +50 -0
- package/src/components/ConfigProvider/demo/token.jsx +8 -0
- package/src/components/ConfigProvider/doc/index.mdx +22 -0
- package/src/components/ConfigProvider/doc/token.mdx +7 -0
- package/src/components/ConfigProvider/hooks/ConfigCache/ConfigCache.ts +115 -0
- package/src/components/ConfigProvider/hooks/ConfigCache/index.ts +1 -0
- package/src/components/ConfigProvider/hooks/ConfigCache/interface.ts +38 -0
- package/src/components/ConfigProvider/hooks/ConfigContext/ConfigContext.ts +9 -0
- package/src/components/ConfigProvider/hooks/themeToken/useThemeToken.ts +33 -0
- package/src/components/ConfigProvider/index.ts +4 -0
- package/src/components/ConfigProvider/interface/index.ts +28 -0
- package/src/components/ConfigProvider/test/index.bench.tsx +18 -0
- package/src/components/ConfigProvider/test/index.test.tsx +9 -0
- package/src/components/Popover/demo/{base.jsx → index.tsx} +2 -2
- package/src/components/Popover/doc/index.mdx +21 -15
- package/src/components/Popover/index.tsx +3 -3
- package/src/components/Switch/demo/{base.jsx → index.tsx} +9 -6
- package/src/components/Switch/doc/index.mdx +14 -12
- package/src/components/Switch/index.tsx +9 -6
- package/src/components/Switch/interface/index.ts +3 -3
- package/src/components/Switch/test/index.bench.tsx +2 -5
- package/src/components/Switch/test/index.test.tsx +11 -23
- package/src/index.ts +2 -1
- package/tsconfig.json +2 -2
- package/lib/cjs/components/Button/common/index.js +0 -11
- package/lib/cjs/components/Button/common/index.js.map +0 -1
- package/lib/cjs/components/Button/rn/index.js +0 -25
- package/lib/cjs/components/Button/rn/index.js.map +0 -1
- package/lib/cjs/index.d.ts +0 -37
- package/lib/cjs/index.d.ts.map +0 -1
- package/lib/cjs/utils/hook.js +0 -3
- package/lib/cjs/utils/hook.js.map +0 -1
- package/lib/esm/components/Button/common/index.js +0 -9
- package/lib/esm/components/Button/common/index.js.map +0 -1
- package/lib/esm/components/Button/rn/index.js +0 -21
- package/lib/esm/components/Button/rn/index.js.map +0 -1
- package/lib/esm/utils/hook.js +0 -2
- package/lib/esm/utils/hook.js.map +0 -1
- package/src/components/Button/common/index.ts +0 -6
- package/src/components/Button/rn/index.tsx +0 -20
- package/src/utils/hook.ts +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ConfigContext.js","sources":["../../../../../../src/components/ConfigProvider/hooks/ConfigContext/ConfigContext.ts"],"sourcesContent":["import { createContext } from \"react\";\n\nexport interface IConfigProviderContext {\n id: string;\n}\n\nexport const ConfigProviderContext = createContext<IConfigProviderContext>({\n id: \"root\",\n});\n"],"names":["ConfigProviderContext","createContext","id"],"mappings":";;AAMaA,IAAAA,qCAAwBC,aAAsC,CAAA;AACzEC,EAAAA,EAAI,EAAA,MAAA;AACN,CAAC;;;;"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { useContext } from 'react';
|
|
2
|
+
import { configCache } from '../ConfigCache/ConfigCache.js';
|
|
3
|
+
import { ConfigProviderContext } from '../ConfigContext/ConfigContext.js';
|
|
4
|
+
import '../../../../_chunks/BHmvJnIm.js';
|
|
5
|
+
import '@xhs/reds-token-next';
|
|
6
|
+
|
|
7
|
+
var useThemeColor = function useThemeColor(component) {
|
|
8
|
+
var id = useContext(ConfigProviderContext).id;
|
|
9
|
+
var themeColor = new Proxy({}, {
|
|
10
|
+
get: function get(_, key) {
|
|
11
|
+
if (configCache.getColorModeById(id) === "dark") {
|
|
12
|
+
return component ? configCache.getDarkTokenByIdAndComponent(id, component) : configCache.getDarkTokenById(id, key);
|
|
13
|
+
} else {
|
|
14
|
+
return component ? configCache.getLightTokenByIdAndComponent(id, component) : configCache.getLightTokenById(id, key);
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
return themeColor;
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
export { useThemeColor };
|
|
22
|
+
//# sourceMappingURL=useThemeToken.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useThemeToken.js","sources":["../../../../../../src/components/ConfigProvider/hooks/themeToken/useThemeToken.ts"],"sourcesContent":["import { useContext } from \"react\";\nimport { configCache } from \"../ConfigCache\";\nimport { ConfigProviderContext } from \"../ConfigContext/ConfigContext\";\nimport { ThemeColor, ColorMode, LightToken, DarkToken, Component } from \"../ConfigCache/interface\";\n\nexport interface IThemeInstance {\n colorMode: ColorMode;\n}\nexport interface MyProxyConstructor {\n new <T, H extends Record<string, unknown>>(target: T, handler: ProxyHandler<H>): H;\n}\n\nexport const useThemeColor = (component?: Component) => {\n const id = useContext(ConfigProviderContext).id;\n const themeColor: ThemeColor = new (Proxy as MyProxyConstructor)(\n {},\n {\n get(this: IThemeInstance, _, key: LightToken | DarkToken) {\n if (configCache.getColorModeById(id) === \"dark\") {\n return component\n ? configCache.getDarkTokenByIdAndComponent(id, component)\n : configCache.getDarkTokenById(id, key);\n } else {\n return component\n ? configCache.getLightTokenByIdAndComponent(id, component)\n : configCache.getLightTokenById(id, key);\n }\n },\n },\n );\n\n return themeColor;\n};\n"],"names":["useThemeColor","component","id","useContext","ConfigProviderContext","themeColor","Proxy","get","_","key","configCache","getColorModeById","getDarkTokenByIdAndComponent","getDarkTokenById","getLightTokenByIdAndComponent","getLightTokenById"],"mappings":";;;;;;IAYaA,aAAA,GAAgB,SAAhBA,aAAAA,CAAiBC,SAA0B,EAAA;AAChD,EAAA,IAAAC,EAAA,GAAKC,UAAW,CAAAC,qBAAqB,CAAE,CAAAF,EAAA,CAAA;AAC7C,EAAA,IAAMG,aAAyB,IAAKC,KAAA,CAClC,EAAC,EACD;AACEC,IAAAA,GAAA,EAAAA,SAAAA,GAAAA,CAA0BC,GAAGC,GAA6B,EAAA;MACxD,IAAIC,WAAY,CAAAC,gBAAA,CAAiBT,EAAE,CAAA,KAAM,MAAQ,EAAA;AACxC,QAAA,OAAAD,SAAA,GACHS,YAAYE,4BAA6B,CAAAV,EAAA,EAAID,SAAS,CACtD,GAAAS,WAAA,CAAYG,gBAAiB,CAAAX,EAAA,EAAIO,GAAG,CAAA,CAAA;AAC1C,OAAO,MAAA;AACE,QAAA,OAAAR,SAAA,GACHS,YAAYI,6BAA8B,CAAAZ,EAAA,EAAID,SAAS,CACvD,GAAAS,WAAA,CAAYK,iBAAkB,CAAAb,EAAA,EAAIO,GAAG,CAAA,CAAA;AAC3C,OAAA;AACF,KAAA;AACF,GACF,CAAA,CAAA;AAEO,EAAA,OAAAJ,UAAA,CAAA;AACT;;;;"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { C as ConfigProvider } from '../../_chunks/Br6Ked0G.js';
|
|
2
|
+
export { useThemeColor } from './hooks/themeToken/useThemeToken.js';
|
|
3
|
+
import '../../_chunks/BHmvJnIm.js';
|
|
4
|
+
import './hooks/ConfigCache/ConfigCache.js';
|
|
5
|
+
import '@xhs/reds-token-next';
|
|
6
|
+
import './hooks/ConfigContext/ConfigContext.js';
|
|
7
|
+
import 'react';
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
export { ConfigProvider as default };
|
|
12
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { b as _objectWithoutProperties, _ as _objectSpread2 } from '../../_chunks/
|
|
1
|
+
import { b as _objectWithoutProperties, _ as _objectSpread2 } from '../../_chunks/BHmvJnIm.js';
|
|
2
2
|
import { useRef } from 'react';
|
|
3
3
|
import { Platform } from 'react-native';
|
|
4
4
|
import { useFloating as useFloating$1, shift, limitShift, flip, offset, arrow } from '@floating-ui/react-native';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { a as _slicedToArray, _ as _objectSpread2 } from '../../_chunks/
|
|
1
|
+
import { a as _slicedToArray, _ as _objectSpread2 } from '../../_chunks/BHmvJnIm.js';
|
|
2
2
|
import React, { useState, useMemo, useEffect, isValidElement, cloneElement } from 'react';
|
|
3
3
|
import { TouchableWithoutFeedback, View, Text } from 'react-native';
|
|
4
4
|
import { ModalWrapper, Arrow } from './component.js';
|
|
@@ -108,9 +108,9 @@ var index = (function (_ref) {
|
|
|
108
108
|
})
|
|
109
109
|
}, /* @__PURE__ */React.createElement(Text, {
|
|
110
110
|
style: {
|
|
111
|
-
fontWeight: typography.
|
|
112
|
-
fontSize: typography.
|
|
113
|
-
lineHeight: typography.
|
|
111
|
+
fontWeight: typography.B2LooseFontWeight,
|
|
112
|
+
fontSize: typography.B2LooseFontSize,
|
|
113
|
+
lineHeight: typography.B2LooseLineHeight,
|
|
114
114
|
color: popoverStyle.color
|
|
115
115
|
}
|
|
116
116
|
}, content), /* @__PURE__ */React.createElement(Arrow, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../src/components/Popover/index.tsx"],"sourcesContent":["import React, { useState, useMemo, cloneElement, isValidElement, useEffect } from \"react\";\nimport { Text, View, TouchableWithoutFeedback } from \"react-native\";\nimport { RedsPopover } from \"./interface/index\";\nimport { ModalWrapper, Arrow } from \"./component\";\nimport { useFloating } from \"./hook\";\nimport { typography } from \"@xhs/reds-token-next\";\n\nexport default ({\n mode = \"light\",\n opacity = 0,\n content,\n children,\n placement = \"top\",\n closeOnClickAgain = true,\n trigger = \"click\",\n zIndex = 1000,\n visible: defaultVisible = false,\n onVisibleChange,\n}: RedsPopover) => {\n const [visible, setVisible] = useState(defaultVisible);\n const needModal = useMemo(() => opacity !== 0, [opacity]);\n const {\n setArrowRef,\n setFloatingRef,\n setReferenceRef,\n setOffsetParentRef,\n floatingStyles,\n arrowStyles,\n onReferenceLayout,\n onFloatingLayout,\n } = useFloating({\n placement,\n needModal,\n });\n useEffect(() => {\n onVisibleChange?.(visible);\n }, [visible]);\n\n const popoverStyle = useMemo(() => {\n return mode === \"light\"\n ? {\n backgroundColor: \"#303034FC\",\n color: \"#FFFFFF\",\n }\n : {\n backgroundColor: \"#FFFFFFFC\",\n color: \"#000000\",\n };\n }, [mode]);\n\n return (\n <>\n {React.Children.map(children, (child, index) => {\n if (index === 0 && isValidElement(child)) {\n return (\n <TouchableWithoutFeedback\n onPress={() => {\n if (trigger === \"click\") {\n if (closeOnClickAgain) {\n setVisible(!visible);\n } else {\n setVisible(true);\n }\n }\n }}\n onPressIn={() => {\n trigger === \"touch\" && setVisible(true);\n }}\n onPressOut={() => {\n trigger === \"touch\" && setVisible(false);\n }}\n >\n {cloneElement<any>(child, {\n ref: setReferenceRef,\n collapsable: false,\n onLayout: onReferenceLayout,\n })}\n {/* <Text>131</Text> */}\n </TouchableWithoutFeedback>\n );\n }\n return child;\n })}\n <ModalWrapper\n needModal={needModal}\n visible={visible}\n ref={setOffsetParentRef}\n setVisible={setVisible}\n opacity={opacity}\n >\n {visible && (\n <View\n collapsable={false}\n ref={setFloatingRef}\n onLayout={onFloatingLayout}\n style={{\n ...floatingStyles,\n backgroundColor: popoverStyle.backgroundColor,\n paddingHorizontal: 12,\n paddingVertical: 7,\n maxWidth: 280,\n borderRadius: 12,\n zIndex,\n shadowColor: \"#000000\",\n shadowOffset: { width: 0, height: 1 },\n shadowOpacity: 0.1,\n shadowRadius: 4,\n elevation: 2,\n }}\n >\n <Text\n style={{\n fontWeight: typography.
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../src/components/Popover/index.tsx"],"sourcesContent":["import React, { useState, useMemo, cloneElement, isValidElement, useEffect } from \"react\";\nimport { Text, View, TouchableWithoutFeedback } from \"react-native\";\nimport { RedsPopover } from \"./interface/index\";\nimport { ModalWrapper, Arrow } from \"./component\";\nimport { useFloating } from \"./hook\";\nimport { typography } from \"@xhs/reds-token-next\";\n\nexport default ({\n mode = \"light\",\n opacity = 0,\n content,\n children,\n placement = \"top\",\n closeOnClickAgain = true,\n trigger = \"click\",\n zIndex = 1000,\n visible: defaultVisible = false,\n onVisibleChange,\n}: RedsPopover) => {\n const [visible, setVisible] = useState(defaultVisible);\n const needModal = useMemo(() => opacity !== 0, [opacity]);\n const {\n setArrowRef,\n setFloatingRef,\n setReferenceRef,\n setOffsetParentRef,\n floatingStyles,\n arrowStyles,\n onReferenceLayout,\n onFloatingLayout,\n } = useFloating({\n placement,\n needModal,\n });\n useEffect(() => {\n onVisibleChange?.(visible);\n }, [visible]);\n\n const popoverStyle = useMemo(() => {\n return mode === \"light\"\n ? {\n backgroundColor: \"#303034FC\",\n color: \"#FFFFFF\",\n }\n : {\n backgroundColor: \"#FFFFFFFC\",\n color: \"#000000\",\n };\n }, [mode]);\n\n return (\n <>\n {React.Children.map(children, (child, index) => {\n if (index === 0 && isValidElement(child)) {\n return (\n <TouchableWithoutFeedback\n onPress={() => {\n if (trigger === \"click\") {\n if (closeOnClickAgain) {\n setVisible(!visible);\n } else {\n setVisible(true);\n }\n }\n }}\n onPressIn={() => {\n trigger === \"touch\" && setVisible(true);\n }}\n onPressOut={() => {\n trigger === \"touch\" && setVisible(false);\n }}\n >\n {cloneElement<any>(child, {\n ref: setReferenceRef,\n collapsable: false,\n onLayout: onReferenceLayout,\n })}\n {/* <Text>131</Text> */}\n </TouchableWithoutFeedback>\n );\n }\n return child;\n })}\n <ModalWrapper\n needModal={needModal}\n visible={visible}\n ref={setOffsetParentRef}\n setVisible={setVisible}\n opacity={opacity}\n >\n {visible && (\n <View\n collapsable={false}\n ref={setFloatingRef}\n onLayout={onFloatingLayout}\n style={{\n ...floatingStyles,\n backgroundColor: popoverStyle.backgroundColor,\n paddingHorizontal: 12,\n paddingVertical: 7,\n maxWidth: 280,\n borderRadius: 12,\n zIndex,\n shadowColor: \"#000000\",\n shadowOffset: { width: 0, height: 1 },\n shadowOpacity: 0.1,\n shadowRadius: 4,\n elevation: 2,\n }}\n >\n <Text\n style={{\n fontWeight: typography.B2LooseFontWeight,\n fontSize: typography.B2LooseFontSize,\n lineHeight: typography.B2LooseLineHeight,\n color: popoverStyle.color,\n }}\n >\n {content}\n </Text>\n <Arrow ref={setArrowRef} style={{ ...arrowStyles }} color={popoverStyle.backgroundColor}></Arrow>\n </View>\n )}\n </ModalWrapper>\n </>\n );\n};\n"],"names":["_ref","_ref$mode","mode","_ref$opacity","opacity","content","children","_ref$placement","placement","_ref$closeOnClickAgai","closeOnClickAgain","_ref$trigger","trigger","_ref$zIndex","zIndex","_ref$visible","visible","defaultVisible","onVisibleChange","_useState","useState","_useState2","_slicedToArray","setVisible","needModal","useMemo","_useFloating","useFloating","setArrowRef","setFloatingRef","setReferenceRef","setOffsetParentRef","floatingStyles","arrowStyles","onReferenceLayout","onFloatingLayout","useEffect","popoverStyle","backgroundColor","color","React","Children","map","child","index","isValidElement","createElement","TouchableWithoutFeedback","onPress","onPressIn","onPressOut","cloneElement","ref","collapsable","onLayout","ModalWrapper","View","style","_objectSpread","paddingHorizontal","paddingVertical","maxWidth","borderRadius","shadowColor","shadowOffset","width","height","shadowOpacity","shadowRadius","elevation","Text","fontWeight","typography","B2LooseFontWeight","fontSize","B2LooseFontSize","lineHeight","B2LooseLineHeight","Arrow"],"mappings":"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"}
|
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
import { a as _slicedToArray } from '../../_chunks/
|
|
1
|
+
import { a as _slicedToArray } from '../../_chunks/BHmvJnIm.js';
|
|
2
2
|
import React, { useState, useRef, useMemo, useEffect } from 'react';
|
|
3
3
|
import { StyleSheet, Animated, TouchableWithoutFeedback, View } from 'react-native';
|
|
4
4
|
import { defaultProps } from './interface/index.js';
|
|
5
|
-
import {
|
|
5
|
+
import { alwaysColor } from '@xhs/reds-token-next';
|
|
6
6
|
|
|
7
7
|
var Switch = function Switch(_ref) {
|
|
8
|
-
var
|
|
8
|
+
var isOn = _ref.value,
|
|
9
9
|
defaultValue = _ref.defaultValue,
|
|
10
10
|
onChange = _ref.onChange,
|
|
11
11
|
onClick = _ref.onClick,
|
|
12
12
|
trackOnColor = _ref.trackOnColor,
|
|
13
13
|
trackOffColor = _ref.trackOffColor;
|
|
14
|
-
var isControlled =
|
|
14
|
+
var isControlled = isOn !== void 0;
|
|
15
15
|
var _useState = useState(defaultValue),
|
|
16
16
|
_useState2 = _slicedToArray(_useState, 2),
|
|
17
17
|
value = _useState2[0],
|
|
@@ -24,14 +24,16 @@ var Switch = function Switch(_ref) {
|
|
|
24
24
|
});
|
|
25
25
|
}, []);
|
|
26
26
|
useEffect(function () {
|
|
27
|
-
isControlled && setValue(cValue);
|
|
28
27
|
onChange === null || onChange === void 0 || onChange(!!value);
|
|
29
28
|
Animated.timing(animatedValue, {
|
|
30
29
|
toValue: value ? 18 : 2,
|
|
31
30
|
duration: 200,
|
|
32
31
|
useNativeDriver: true
|
|
33
32
|
}).start();
|
|
34
|
-
}, [value
|
|
33
|
+
}, [value]);
|
|
34
|
+
useEffect(function () {
|
|
35
|
+
isControlled && setValue(isOn);
|
|
36
|
+
}, [isOn]);
|
|
35
37
|
var toggleSwitch = function toggleSwitch(e) {
|
|
36
38
|
onClick === null || onClick === void 0 || onClick(e);
|
|
37
39
|
!isControlled && setValue(function (v) {
|
|
@@ -67,7 +69,7 @@ var styles = StyleSheet.create({
|
|
|
67
69
|
width: 20,
|
|
68
70
|
height: 20,
|
|
69
71
|
borderRadius: 10,
|
|
70
|
-
backgroundColor:
|
|
72
|
+
backgroundColor: alwaysColor.White,
|
|
71
73
|
justifyContent: "center",
|
|
72
74
|
alignItems: "center",
|
|
73
75
|
position: "absolute",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../src/components/Switch/index.tsx"],"sourcesContent":["import React, { useState, useRef, useEffect, useMemo } from \"react\";\nimport { View, TouchableWithoutFeedback, StyleSheet, Animated, GestureResponderEvent } from \"react-native\";\nimport { RedsSwitch, defaultProps } from \"./interface/index\";\nimport {
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../src/components/Switch/index.tsx"],"sourcesContent":["import React, { useState, useRef, useEffect, useMemo } from \"react\";\nimport { View, TouchableWithoutFeedback, StyleSheet, Animated, GestureResponderEvent } from \"react-native\";\nimport { RedsSwitch, defaultProps } from \"./interface/index\";\nimport { alwaysColor } from \"@xhs/reds-token-next\";\n\nconst Switch = ({ value: isOn, defaultValue, onChange, onClick, trackOnColor, trackOffColor }: RedsSwitch) => {\n const isControlled = isOn !== undefined;\n const [value, setValue] = useState(defaultValue);\n\n const animatedValue = useRef(new Animated.Value(defaultValue ? 18 : 2)).current;\n\n const thumbTranslateX = useMemo(() => animatedValue.interpolate({ inputRange: [2, 18], outputRange: [2, 18] }), []);\n\n useEffect(() => {\n onChange?.(!!value);\n Animated.timing(animatedValue, {\n toValue: value ? 18 : 2,\n duration: 200,\n useNativeDriver: true,\n }).start();\n }, [value]);\n\n useEffect(() => {\n isControlled && setValue(isOn);\n }, [isOn]);\n\n const toggleSwitch = (e: GestureResponderEvent) => {\n onClick?.(e);\n !isControlled && setValue((v) => !v);\n };\n\n return (\n <TouchableWithoutFeedback onPress={(e) => toggleSwitch(e)}>\n <View style={[styles.switchContainer, { backgroundColor: value ? trackOnColor : trackOffColor }]}>\n <Animated.View style={[styles.thumb, { transform: [{ translateX: thumbTranslateX }] }]}></Animated.View>\n </View>\n </TouchableWithoutFeedback>\n );\n};\n\nSwitch.defaultProps = defaultProps;\n\nconst styles = StyleSheet.create({\n switchContainer: {\n width: 40,\n height: 24,\n borderRadius: 15,\n justifyContent: \"center\",\n alignItems: \"center\",\n },\n thumb: {\n width: 20,\n height: 20,\n borderRadius: 10,\n backgroundColor: alwaysColor.White,\n justifyContent: \"center\",\n alignItems: \"center\",\n position: \"absolute\",\n left: 0,\n },\n});\n\nexport default Switch;\n"],"names":["Switch","_ref","isOn","value","defaultValue","onChange","onClick","trackOnColor","trackOffColor","isControlled","_useState","useState","_useState2","_slicedToArray","setValue","animatedValue","useRef","Animated","Value","current","thumbTranslateX","useMemo","interpolate","inputRange","outputRange","useEffect","timing","toValue","duration","useNativeDriver","start","toggleSwitch","e","v","TouchableWithoutFeedback","onPress","React","createElement","View","style","styles","switchContainer","backgroundColor","thumb","transform","translateX","defaultProps","StyleSheet","create","width","height","borderRadius","justifyContent","alignItems","alwaysColor","White","position","left"],"mappings":"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"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { lightColor } from '@xhs/reds-token-next';
|
|
2
2
|
|
|
3
3
|
var defaultProps = {
|
|
4
4
|
defaultValue: false,
|
|
5
5
|
disabled: false,
|
|
6
6
|
onClick: function onClick(event) {},
|
|
7
7
|
onChange: function onChange(value) {},
|
|
8
|
-
trackOnColor:
|
|
9
|
-
trackOffColor:
|
|
8
|
+
trackOnColor: lightColor.Primary,
|
|
9
|
+
trackOffColor: lightColor.Fill2
|
|
10
10
|
};
|
|
11
11
|
|
|
12
12
|
export { defaultProps };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../../src/components/Switch/interface/index.ts"],"sourcesContent":["import { GestureResponderEvent } from \"react-native\";\nimport {
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../../src/components/Switch/interface/index.ts"],"sourcesContent":["import { GestureResponderEvent } from \"react-native\";\nimport { lightColor } from \"@xhs/reds-token-next\";\n\nexport interface RedsSwitch {\n value?: boolean;\n defaultValue?: boolean;\n disabled?: boolean;\n onClick?: (event: GestureResponderEvent) => void;\n onChange?: (value: boolean) => void;\n trackOnColor?: string;\n trackOffColor?: string;\n}\n\nexport const defaultProps: RedsSwitch = {\n defaultValue: false,\n disabled: false,\n onClick: (event: GestureResponderEvent) => {},\n onChange: (value: boolean) => {},\n trackOnColor: lightColor.Primary,\n trackOffColor: lightColor.Fill2,\n};\n"],"names":["defaultProps","defaultValue","disabled","onClick","event","onChange","value","trackOnColor","lightColor","Primary","trackOffColor","Fill2"],"mappings":";;AAaO,IAAMA,YAA2B,GAAA;AACtCC,EAAAA,YAAc,EAAA,KAAA;AACdC,EAAAA,QAAU,EAAA,KAAA;AACVC,EAAAA,OAAA,EAAS,SAAAA,OAAAA,CAACC,KAAiC,EAAA,EAAC;AAC5CC,EAAAA,QAAA,EAAU,SAAAA,QAAAA,CAACC,KAAmB,EAAA,EAAC;EAC/BC,cAAcC,UAAW,CAAAC,OAAA;EACzBC,eAAeF,UAAW,CAAAG,KAAAA;AAC5B;;;;"}
|
package/lib/esm/index.js
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
export { default as Button } from './components/Button/index.js';
|
|
2
2
|
export { default as Popover } from './components/Popover/index.js';
|
|
3
3
|
export { default as Switch } from './components/Switch/index.js';
|
|
4
|
-
|
|
4
|
+
export { C as ConfigProvider } from './_chunks/Br6Ked0G.js';
|
|
5
|
+
export { useThemeColor } from './components/ConfigProvider/hooks/themeToken/useThemeToken.js';
|
|
6
|
+
import './_chunks/BHmvJnIm.js';
|
|
5
7
|
import 'react';
|
|
6
8
|
import 'react-native';
|
|
7
9
|
import './components/Popover/component.js';
|
|
@@ -9,4 +11,6 @@ import './components/Popover/hook.js';
|
|
|
9
11
|
import '@floating-ui/react-native';
|
|
10
12
|
import '@xhs/reds-token-next';
|
|
11
13
|
import './components/Switch/interface/index.js';
|
|
14
|
+
import './components/ConfigProvider/hooks/ConfigCache/ConfigCache.js';
|
|
15
|
+
import './components/ConfigProvider/hooks/ConfigContext/ConfigContext.js';
|
|
12
16
|
//# sourceMappingURL=index.js.map
|
package/lib/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { GestureResponderEvent } from "react-native";
|
|
2
|
+
export interface RedsButton {
|
|
3
|
+
value?: boolean;
|
|
4
|
+
defaultValue?: boolean;
|
|
5
|
+
disabled?: boolean;
|
|
6
|
+
onClick?: (event: GestureResponderEvent) => void;
|
|
7
|
+
onChange?: (value: boolean) => void;
|
|
8
|
+
trackOnColor?: string;
|
|
9
|
+
trackOffColor?: string;
|
|
10
|
+
}
|
|
11
|
+
export declare const defaultProps: RedsButton;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { IConfigCache, Component, LightToken, DarkToken } from "./interface";
|
|
2
|
+
declare class ConfigCache {
|
|
3
|
+
configCache: Record<string, IConfigCache>;
|
|
4
|
+
multipleConfigurations: boolean;
|
|
5
|
+
constructor({ id, themeCache }: IConfigCache);
|
|
6
|
+
addNewConfigCache({ id, themeCache, parentId }: IConfigCache): void;
|
|
7
|
+
updateColorMode({ id, colorMode }: {
|
|
8
|
+
id: string;
|
|
9
|
+
colorMode: "light" | "dark";
|
|
10
|
+
}): void;
|
|
11
|
+
getColorModeById(id: string): import("./interface").ColorMode;
|
|
12
|
+
getTokenById(id: string, tokenType: "lightColor" | "darkColor" | "alwaysColor", key: LightToken | DarkToken): any;
|
|
13
|
+
getLightTokenById(id: string, key: LightToken | DarkToken): any;
|
|
14
|
+
getDarkTokenById(id: string, key: LightToken | DarkToken): any;
|
|
15
|
+
getAlwaysTokenById(id: string, key: LightToken | DarkToken): any;
|
|
16
|
+
getTokenByIdAndComponent(id: string, tokenType: "lightColor" | "darkColor" | "alwaysColor", component: Component): any;
|
|
17
|
+
getLightTokenByIdAndComponent(id: string, component: Component): any;
|
|
18
|
+
getDarkTokenByIdAndComponent(id: string, component: Component): any;
|
|
19
|
+
getAlwaysTokenByIdAndComponent(id: string, component: Component): any;
|
|
20
|
+
}
|
|
21
|
+
export declare const configCache: ConfigCache;
|
|
22
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./ConfigCache";
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { lightColor, darkColor, typography } from "@xhs/reds-token-next";
|
|
2
|
+
type ValueOf<T> = T[keyof T];
|
|
3
|
+
export type LightToken = keyof typeof lightColor;
|
|
4
|
+
export type DarkToken = keyof typeof darkColor;
|
|
5
|
+
export type TypographyToken = keyof typeof typography;
|
|
6
|
+
export type ThemeColor = {
|
|
7
|
+
[key in LightToken | DarkToken]: ValueOf<typeof lightColor | typeof darkColor>;
|
|
8
|
+
};
|
|
9
|
+
export type ColorMode = "light" | "dark";
|
|
10
|
+
export type Component = "Button" | "Popover";
|
|
11
|
+
export type ComponentColor = {
|
|
12
|
+
[key in Component]: ThemeColor;
|
|
13
|
+
};
|
|
14
|
+
type ComponentsToken = {
|
|
15
|
+
[K in Component]?: {
|
|
16
|
+
lightColor?: Record<string, string>;
|
|
17
|
+
darkColor?: Record<string, string>;
|
|
18
|
+
alwaysColor?: Record<string, string>;
|
|
19
|
+
};
|
|
20
|
+
};
|
|
21
|
+
export interface IThemeCache {
|
|
22
|
+
token?: {
|
|
23
|
+
lightColor: Record<string, string>;
|
|
24
|
+
darkColor: Record<string, string>;
|
|
25
|
+
alwaysColor: Record<string, string>;
|
|
26
|
+
components?: ComponentsToken;
|
|
27
|
+
};
|
|
28
|
+
colorMode: ColorMode;
|
|
29
|
+
inherit?: boolean;
|
|
30
|
+
}
|
|
31
|
+
export interface IConfigCache {
|
|
32
|
+
id: string;
|
|
33
|
+
themeCache: IThemeCache;
|
|
34
|
+
parentId: string;
|
|
35
|
+
}
|
|
36
|
+
export {};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { ThemeColor, ColorMode, Component } from "../ConfigCache/interface";
|
|
2
|
+
export interface IThemeInstance {
|
|
3
|
+
colorMode: ColorMode;
|
|
4
|
+
}
|
|
5
|
+
export interface MyProxyConstructor {
|
|
6
|
+
new <T, H extends Record<string, unknown>>(target: T, handler: ProxyHandler<H>): H;
|
|
7
|
+
}
|
|
8
|
+
export declare const useThemeColor: (component?: Component) => ThemeColor;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
type ColorMode = "light" | "dark";
|
|
3
|
+
type Component = "Button" | "Popover";
|
|
4
|
+
type ComponentsToken = {
|
|
5
|
+
[K in Component]?: {
|
|
6
|
+
lightColor?: Record<string, string>;
|
|
7
|
+
darkColor?: Record<string, string>;
|
|
8
|
+
alwaysColor?: Record<string, string>;
|
|
9
|
+
};
|
|
10
|
+
};
|
|
11
|
+
interface IThemeConfig {
|
|
12
|
+
token?: {
|
|
13
|
+
lightColor?: Record<string, string>;
|
|
14
|
+
darkColor?: Record<string, string>;
|
|
15
|
+
alwaysColor?: Record<string, string>;
|
|
16
|
+
components?: ComponentsToken;
|
|
17
|
+
};
|
|
18
|
+
inherit?: boolean;
|
|
19
|
+
colorMode?: ColorMode;
|
|
20
|
+
}
|
|
21
|
+
export interface ConfigProviderProps {
|
|
22
|
+
id?: string;
|
|
23
|
+
children: React.ReactNode;
|
|
24
|
+
theme?: IThemeConfig;
|
|
25
|
+
parentId?: string;
|
|
26
|
+
}
|
|
27
|
+
export {};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import React, { ReactNode } from "react";
|
|
2
|
+
import { Modal, View } from "react-native";
|
|
3
|
+
export declare const ModalWrapper: React.ForwardRefExoticComponent<{
|
|
4
|
+
needModal?: boolean | undefined;
|
|
5
|
+
visible: boolean;
|
|
6
|
+
children: ReactNode;
|
|
7
|
+
setVisible: (value: boolean) => any;
|
|
8
|
+
opacity?: number | undefined;
|
|
9
|
+
} & React.RefAttributes<Modal>>;
|
|
10
|
+
export declare const Arrow: React.ForwardRefExoticComponent<{
|
|
11
|
+
style: any;
|
|
12
|
+
color: string;
|
|
13
|
+
} & React.RefAttributes<View>>;
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import type { LayoutChangeEvent } from "react-native";
|
|
3
|
+
export declare const useFloating: ({ placement, needModal }: {
|
|
4
|
+
placement: "top" | "bottom";
|
|
5
|
+
needModal: boolean;
|
|
6
|
+
}) => {
|
|
7
|
+
update: () => void;
|
|
8
|
+
scrollProps: {
|
|
9
|
+
onScroll: (event: {
|
|
10
|
+
nativeEvent: {
|
|
11
|
+
contentOffset: {
|
|
12
|
+
x: number;
|
|
13
|
+
y: number;
|
|
14
|
+
};
|
|
15
|
+
};
|
|
16
|
+
}) => void;
|
|
17
|
+
scrollEventThrottle: 16;
|
|
18
|
+
};
|
|
19
|
+
placement: import("@floating-ui/react-native").Placement;
|
|
20
|
+
strategy: import("@floating-ui/react-native").Strategy;
|
|
21
|
+
x: number;
|
|
22
|
+
y: number;
|
|
23
|
+
setFloatingRef: <T>(ref: T) => void;
|
|
24
|
+
setReferenceRef: <T_1>(ref: T_1) => void;
|
|
25
|
+
setOffsetParentRef: import("react").MutableRefObject<any>;
|
|
26
|
+
setArrowRef: import("react").MutableRefObject<null>;
|
|
27
|
+
onReferenceLayout: (event: {
|
|
28
|
+
nativeEvent: {
|
|
29
|
+
layout: {
|
|
30
|
+
x: any;
|
|
31
|
+
y: any;
|
|
32
|
+
};
|
|
33
|
+
};
|
|
34
|
+
}) => void;
|
|
35
|
+
onFloatingLayout: (event: LayoutChangeEvent) => void;
|
|
36
|
+
refs: {
|
|
37
|
+
reference: import("react").MutableRefObject<any>;
|
|
38
|
+
floating: import("react").MutableRefObject<any>;
|
|
39
|
+
offsetParent: import("react").MutableRefObject<any>;
|
|
40
|
+
setReference: (node: any) => void;
|
|
41
|
+
setFloating: (node: any) => void;
|
|
42
|
+
setOffsetParent: (node: any) => void;
|
|
43
|
+
};
|
|
44
|
+
elements: {
|
|
45
|
+
reference: any;
|
|
46
|
+
floating: any;
|
|
47
|
+
offsetParent: any;
|
|
48
|
+
};
|
|
49
|
+
middlewareData: import("@floating-ui/react-native").MiddlewareData;
|
|
50
|
+
floatingStyles: {
|
|
51
|
+
position: "absolute";
|
|
52
|
+
top: number;
|
|
53
|
+
left: number;
|
|
54
|
+
} | {
|
|
55
|
+
opacity: number;
|
|
56
|
+
position: "absolute";
|
|
57
|
+
top: number;
|
|
58
|
+
left: number;
|
|
59
|
+
};
|
|
60
|
+
arrowStyles: {
|
|
61
|
+
position: string;
|
|
62
|
+
left: number | null;
|
|
63
|
+
top: number;
|
|
64
|
+
transform: string;
|
|
65
|
+
};
|
|
66
|
+
};
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { RedsPopover } from "./interface/index";
|
|
3
|
+
declare const _default: ({ mode, opacity, content, children, placement, closeOnClickAgain, trigger, zIndex, visible: defaultVisible, onVisibleChange, }: RedsPopover) => React.JSX.Element;
|
|
4
|
+
export default _default;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { ReactNode } from "react";
|
|
2
|
+
export interface RedsPopover {
|
|
3
|
+
visible?: boolean;
|
|
4
|
+
placement?: "top" | "bottom";
|
|
5
|
+
content?: string;
|
|
6
|
+
opacity?: number;
|
|
7
|
+
mode?: "light" | "dark";
|
|
8
|
+
children?: ReactNode;
|
|
9
|
+
closeOnClickAgain?: boolean;
|
|
10
|
+
trigger?: "click" | "touch";
|
|
11
|
+
zIndex?: number;
|
|
12
|
+
onVisibleChange?: (v: boolean) => void;
|
|
13
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { RedsSwitch } from "./interface/index";
|
|
3
|
+
declare const Switch: {
|
|
4
|
+
({ value: isOn, defaultValue, onChange, onClick, trackOnColor, trackOffColor }: RedsSwitch): React.JSX.Element;
|
|
5
|
+
defaultProps: RedsSwitch;
|
|
6
|
+
};
|
|
7
|
+
export default Switch;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { GestureResponderEvent } from "react-native";
|
|
2
|
+
export interface RedsSwitch {
|
|
3
|
+
value?: boolean;
|
|
4
|
+
defaultValue?: boolean;
|
|
5
|
+
disabled?: boolean;
|
|
6
|
+
onClick?: (event: GestureResponderEvent) => void;
|
|
7
|
+
onChange?: (value: boolean) => void;
|
|
8
|
+
trackOnColor?: string;
|
|
9
|
+
trackOffColor?: string;
|
|
10
|
+
}
|
|
11
|
+
export declare const defaultProps: RedsSwitch;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import Button from "./components/Button";
|
|
2
|
+
import Popover from "./components/Popover";
|
|
3
|
+
import Switch from "./components/Switch";
|
|
4
|
+
import ConfigProvider, { useThemeColor } from "./components/ConfigProvider";
|
|
5
|
+
export { Button, Popover, Switch, ConfigProvider, useThemeColor };
|
package/package.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@xhsreds/reds-rn-next",
|
|
3
|
-
"version": "0.0.2
|
|
3
|
+
"version": "0.0.2",
|
|
4
4
|
"author": "贾斌(呀哈) <jiabin@xiaohongshu.com>",
|
|
5
5
|
"license": "ISC",
|
|
6
6
|
"dependencies": {
|
|
7
7
|
"@floating-ui/react-native": "~0.10.6",
|
|
8
8
|
"dayjs": "^1.10.7",
|
|
9
|
-
"@xhs/reds-token-next": "0.0.
|
|
9
|
+
"@xhs/reds-token-next": "0.0.2"
|
|
10
10
|
},
|
|
11
11
|
"peerDependencies": {
|
|
12
12
|
"react": "~18.2.0",
|
|
@@ -27,7 +27,11 @@
|
|
|
27
27
|
"test": "vitest --coverage",
|
|
28
28
|
"bench": "vitest bench --outputJson benchmarks/out.json",
|
|
29
29
|
"clear": "rm -rf ./node_modules && rm -rf ./lib",
|
|
30
|
-
"build": "rm -rf ./lib/* && rollup -c",
|
|
31
|
-
"
|
|
30
|
+
"build": "rm -rf ./lib/* && rollup -c && npm run build:types",
|
|
31
|
+
"build:types": "tsc --declaration --emitDeclarationOnly -p ./tsconfig.json --outDir lib/types",
|
|
32
|
+
"watch": "concurrently -c 'auto' \"npm:watch:*\" ",
|
|
33
|
+
"watch:component": "rollup -c -w",
|
|
34
|
+
"watch:types": "tsc --declaration --emitDeclarationOnly -p ./tsconfig.json --outDir lib/types -w",
|
|
35
|
+
"watch:mainfest": "pnpm --filter @xhs/reds-common run watch:rn"
|
|
32
36
|
}
|
|
33
37
|
}
|