@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.
Files changed (140) hide show
  1. package/coverage/coverage-final.json +8 -5
  2. package/lib/cjs/_chunks/{Dx-JjEWA.js → CAyGJuk1.js} +27 -1
  3. package/lib/cjs/_chunks/{Dx-JjEWA.js.map → CAyGJuk1.js.map} +1 -1
  4. package/lib/cjs/_chunks/DiJl2cva.js +49 -0
  5. package/lib/cjs/_chunks/DiJl2cva.js.map +1 -0
  6. package/lib/cjs/components/Button/index.js +1 -1
  7. package/lib/cjs/components/Button/index.js.map +1 -1
  8. package/lib/cjs/components/Button/interface/index.js +12 -0
  9. package/lib/cjs/components/Button/interface/index.js.map +1 -1
  10. package/lib/cjs/components/ConfigProvider/ConfigProvider.js +15 -0
  11. package/lib/cjs/components/ConfigProvider/ConfigProvider.js.map +1 -0
  12. package/lib/cjs/components/ConfigProvider/hooks/ConfigCache/ConfigCache.js +147 -0
  13. package/lib/cjs/components/ConfigProvider/hooks/ConfigCache/ConfigCache.js.map +1 -0
  14. package/lib/cjs/components/ConfigProvider/hooks/ConfigCache/index.js +10 -0
  15. package/lib/cjs/components/ConfigProvider/hooks/ConfigCache/index.js.map +1 -0
  16. package/lib/cjs/components/ConfigProvider/hooks/ConfigCache/interface.js +3 -0
  17. package/lib/cjs/components/ConfigProvider/hooks/ConfigCache/interface.js.map +1 -0
  18. package/lib/cjs/components/ConfigProvider/hooks/ConfigContext/ConfigContext.js +10 -0
  19. package/lib/cjs/components/ConfigProvider/hooks/ConfigContext/ConfigContext.js.map +1 -0
  20. package/lib/cjs/components/ConfigProvider/hooks/themeToken/useThemeToken.js +24 -0
  21. package/lib/cjs/components/ConfigProvider/hooks/themeToken/useThemeToken.js.map +1 -0
  22. package/lib/cjs/components/ConfigProvider/index.js +17 -0
  23. package/lib/cjs/components/ConfigProvider/index.js.map +1 -0
  24. package/lib/cjs/components/ConfigProvider/interface/index.js +3 -0
  25. package/lib/cjs/components/ConfigProvider/interface/index.js.map +1 -0
  26. package/lib/cjs/components/Popover/component.js +1 -1
  27. package/lib/cjs/components/Popover/hook.js +1 -1
  28. package/lib/cjs/components/Popover/index.js +4 -4
  29. package/lib/cjs/components/Popover/index.js.map +1 -1
  30. package/lib/cjs/components/Switch/index.js +8 -6
  31. package/lib/cjs/components/Switch/index.js.map +1 -1
  32. package/lib/cjs/components/Switch/interface/index.js +2 -2
  33. package/lib/cjs/components/Switch/interface/index.js.map +1 -1
  34. package/lib/cjs/index.js +7 -1
  35. package/lib/cjs/index.js.map +1 -1
  36. package/lib/esm/_chunks/{Bm4Re-8r.js → BHmvJnIm.js} +25 -2
  37. package/lib/esm/_chunks/{Bm4Re-8r.js.map → BHmvJnIm.js.map} +1 -1
  38. package/lib/esm/_chunks/Br6Ked0G.js +46 -0
  39. package/lib/esm/_chunks/Br6Ked0G.js.map +1 -0
  40. package/lib/esm/components/Button/index.js +1 -1
  41. package/lib/esm/components/Button/index.js.map +1 -1
  42. package/lib/esm/components/Button/interface/index.js +11 -0
  43. package/lib/esm/components/Button/interface/index.js.map +1 -1
  44. package/lib/esm/components/ConfigProvider/ConfigProvider.js +7 -0
  45. package/lib/esm/components/ConfigProvider/ConfigProvider.js.map +1 -0
  46. package/lib/esm/components/ConfigProvider/hooks/ConfigCache/ConfigCache.js +145 -0
  47. package/lib/esm/components/ConfigProvider/hooks/ConfigCache/ConfigCache.js.map +1 -0
  48. package/lib/esm/components/ConfigProvider/hooks/ConfigCache/index.js +4 -0
  49. package/lib/esm/components/ConfigProvider/hooks/ConfigCache/index.js.map +1 -0
  50. package/lib/esm/components/ConfigProvider/hooks/ConfigCache/interface.js +2 -0
  51. package/lib/esm/components/ConfigProvider/hooks/ConfigCache/interface.js.map +1 -0
  52. package/lib/esm/components/ConfigProvider/hooks/ConfigContext/ConfigContext.js +8 -0
  53. package/lib/esm/components/ConfigProvider/hooks/ConfigContext/ConfigContext.js.map +1 -0
  54. package/lib/esm/components/ConfigProvider/hooks/themeToken/useThemeToken.js +22 -0
  55. package/lib/esm/components/ConfigProvider/hooks/themeToken/useThemeToken.js.map +1 -0
  56. package/lib/esm/components/ConfigProvider/index.js +12 -0
  57. package/lib/esm/components/ConfigProvider/index.js.map +1 -0
  58. package/lib/esm/components/ConfigProvider/interface/index.js +2 -0
  59. package/lib/esm/components/ConfigProvider/interface/index.js.map +1 -0
  60. package/lib/esm/components/Popover/component.js +1 -1
  61. package/lib/esm/components/Popover/hook.js +1 -1
  62. package/lib/esm/components/Popover/index.js +4 -4
  63. package/lib/esm/components/Popover/index.js.map +1 -1
  64. package/lib/esm/components/Switch/index.js +9 -7
  65. package/lib/esm/components/Switch/index.js.map +1 -1
  66. package/lib/esm/components/Switch/interface/index.js +3 -3
  67. package/lib/esm/components/Switch/interface/index.js.map +1 -1
  68. package/lib/esm/index.js +5 -1
  69. package/lib/esm/index.js.map +1 -1
  70. package/lib/types/src/components/Button/index.d.ts +4 -0
  71. package/lib/types/src/components/Button/interface/index.d.ts +11 -0
  72. package/lib/types/src/components/ConfigProvider/ConfigProvider.d.ts +4 -0
  73. package/lib/types/src/components/ConfigProvider/hooks/ConfigCache/ConfigCache.d.ts +22 -0
  74. package/lib/types/src/components/ConfigProvider/hooks/ConfigCache/index.d.ts +1 -0
  75. package/lib/types/src/components/ConfigProvider/hooks/ConfigCache/interface.d.ts +36 -0
  76. package/lib/types/src/components/ConfigProvider/hooks/ConfigContext/ConfigContext.d.ts +5 -0
  77. package/lib/types/src/components/ConfigProvider/hooks/themeToken/useThemeToken.d.ts +8 -0
  78. package/lib/types/src/components/ConfigProvider/index.d.ts +3 -0
  79. package/lib/types/src/components/ConfigProvider/interface/index.d.ts +27 -0
  80. package/lib/types/src/components/Popover/component.d.ts +13 -0
  81. package/lib/types/src/components/Popover/hook.d.ts +66 -0
  82. package/lib/types/src/components/Popover/index.d.ts +4 -0
  83. package/lib/types/src/components/Popover/interface/index.d.ts +13 -0
  84. package/lib/types/src/components/Popover/manifest.d.ts +3 -0
  85. package/lib/types/src/components/Switch/index.d.ts +7 -0
  86. package/lib/types/src/components/Switch/interface/index.d.ts +11 -0
  87. package/lib/types/src/index.d.ts +5 -0
  88. package/package.json +8 -4
  89. package/rollup.config.js +25 -25
  90. package/src/components/Button/demo/index.jsx +50 -0
  91. package/src/components/Button/demo/index.tsx +50 -0
  92. package/src/components/Button/doc/index.mdx +18 -0
  93. package/src/components/Button/index.tsx +0 -1
  94. package/src/components/Button/interface/index.ts +17 -29
  95. package/src/components/Button/test/index.bench.tsx +18 -0
  96. package/src/components/Button/test/index.test.tsx +9 -0
  97. package/src/components/ConfigProvider/ConfigProvider.tsx +48 -0
  98. package/src/components/ConfigProvider/demo/base.jsx +114 -0
  99. package/src/components/ConfigProvider/demo/index.jsx +50 -0
  100. package/src/components/ConfigProvider/demo/index.tsx +50 -0
  101. package/src/components/ConfigProvider/demo/token.jsx +8 -0
  102. package/src/components/ConfigProvider/doc/index.mdx +22 -0
  103. package/src/components/ConfigProvider/doc/token.mdx +7 -0
  104. package/src/components/ConfigProvider/hooks/ConfigCache/ConfigCache.ts +115 -0
  105. package/src/components/ConfigProvider/hooks/ConfigCache/index.ts +1 -0
  106. package/src/components/ConfigProvider/hooks/ConfigCache/interface.ts +38 -0
  107. package/src/components/ConfigProvider/hooks/ConfigContext/ConfigContext.ts +9 -0
  108. package/src/components/ConfigProvider/hooks/themeToken/useThemeToken.ts +33 -0
  109. package/src/components/ConfigProvider/index.ts +4 -0
  110. package/src/components/ConfigProvider/interface/index.ts +28 -0
  111. package/src/components/ConfigProvider/test/index.bench.tsx +18 -0
  112. package/src/components/ConfigProvider/test/index.test.tsx +9 -0
  113. package/src/components/Popover/demo/{base.jsx → index.tsx} +2 -2
  114. package/src/components/Popover/doc/index.mdx +21 -15
  115. package/src/components/Popover/index.tsx +3 -3
  116. package/src/components/Switch/demo/{base.jsx → index.tsx} +9 -6
  117. package/src/components/Switch/doc/index.mdx +14 -12
  118. package/src/components/Switch/index.tsx +9 -6
  119. package/src/components/Switch/interface/index.ts +3 -3
  120. package/src/components/Switch/test/index.bench.tsx +2 -5
  121. package/src/components/Switch/test/index.test.tsx +11 -23
  122. package/src/index.ts +2 -1
  123. package/tsconfig.json +2 -2
  124. package/lib/cjs/components/Button/common/index.js +0 -11
  125. package/lib/cjs/components/Button/common/index.js.map +0 -1
  126. package/lib/cjs/components/Button/rn/index.js +0 -25
  127. package/lib/cjs/components/Button/rn/index.js.map +0 -1
  128. package/lib/cjs/index.d.ts +0 -37
  129. package/lib/cjs/index.d.ts.map +0 -1
  130. package/lib/cjs/utils/hook.js +0 -3
  131. package/lib/cjs/utils/hook.js.map +0 -1
  132. package/lib/esm/components/Button/common/index.js +0 -9
  133. package/lib/esm/components/Button/common/index.js.map +0 -1
  134. package/lib/esm/components/Button/rn/index.js +0 -21
  135. package/lib/esm/components/Button/rn/index.js.map +0 -1
  136. package/lib/esm/utils/hook.js +0 -2
  137. package/lib/esm/utils/hook.js.map +0 -1
  138. package/src/components/Button/common/index.ts +0 -6
  139. package/src/components/Button/rn/index.tsx +0 -20
  140. 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,2 @@
1
+
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -1,4 +1,4 @@
1
- import { _ as _objectSpread2 } from '../../_chunks/Bm4Re-8r.js';
1
+ import { _ as _objectSpread2 } from '../../_chunks/BHmvJnIm.js';
2
2
  import React, { forwardRef } from 'react';
3
3
  import { Modal, Pressable, View } from 'react-native';
4
4
 
@@ -1,4 +1,4 @@
1
- import { b as _objectWithoutProperties, _ as _objectSpread2 } from '../../_chunks/Bm4Re-8r.js';
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/Bm4Re-8r.js';
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.Body.B2Loose.Weight,
112
- fontSize: typography.Body.B2Loose.Size,
113
- lineHeight: typography.Body.B2Loose.Line,
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.Body.B2Loose.Weight,\n fontSize: typography.Body.B2Loose.Size,\n lineHeight: typography.Body.B2Loose.Line,\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","Body","B2Loose","Weight","fontSize","Size","lineHeight","Line","Arrow"],"mappings":"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"}
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/Bm4Re-8r.js';
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 { color } from '@xhs/reds-token-next';
5
+ import { alwaysColor } from '@xhs/reds-token-next';
6
6
 
7
7
  var Switch = function Switch(_ref) {
8
- var cValue = _ref.value,
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 = cValue !== void 0;
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, cValue]);
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: color.always.Neutral.White,
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 { color } from \"@xhs/reds-token-next\";\n\nconst Switch = ({ value: cValue, defaultValue, onChange, onClick, trackOnColor, trackOffColor }: RedsSwitch) => {\n const isControlled = cValue !== 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 isControlled && setValue(cValue);\n onChange?.(!!value);\n Animated.timing(animatedValue, {\n toValue: value ? 18 : 2,\n duration: 200,\n useNativeDriver: true,\n }).start();\n }, [value, cValue]);\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: color.always.Neutral.White,\n justifyContent: \"center\",\n alignItems: \"center\",\n position: \"absolute\",\n left: 0,\n },\n});\n\nexport default Switch;\n"],"names":["Switch","_ref","cValue","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","color","always","Neutral","White","position","left"],"mappings":"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"}
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 { color } from '@xhs/reds-token-next';
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: color.light.Primary.Primary,
9
- trackOffColor: color.light.Fills.Fill2
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 { color } 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: color.light.Primary.Primary,\n trackOffColor: color.light.Fills.Fill2,\n};\n"],"names":["defaultProps","defaultValue","disabled","onClick","event","onChange","value","trackOnColor","color","light","Primary","trackOffColor","Fills","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;AAC/BC,EAAAA,YAAA,EAAcC,KAAM,CAAAC,KAAA,CAAMC,OAAQ,CAAAA,OAAA;AAClCC,EAAAA,aAAA,EAAeH,KAAM,CAAAC,KAAA,CAAMG,KAAM,CAAAC,KAAAA;AACnC;;;;"}
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
- import './_chunks/Bm4Re-8r.js';
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
@@ -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,4 @@
1
+ import React from "react";
2
+ import { View } from "react-native";
3
+ declare const _default: React.ForwardRefExoticComponent<React.RefAttributes<View>>;
4
+ export default _default;
@@ -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,4 @@
1
+ /// <reference types="react" />
2
+ import { ConfigProviderProps } from "./interface";
3
+ declare const ConfigProvider: (props: ConfigProviderProps) => import("react").JSX.Element;
4
+ export default ConfigProvider;
@@ -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,5 @@
1
+ /// <reference types="react" />
2
+ export interface IConfigProviderContext {
3
+ id: string;
4
+ }
5
+ export declare const ConfigProviderContext: import("react").Context<IConfigProviderContext>;
@@ -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,3 @@
1
+ import * as ConfigProvider from "./ConfigProvider";
2
+ export { useThemeColor } from "./hooks/themeToken/useThemeToken";
3
+ export default ConfigProvider;
@@ -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,3 @@
1
+ interface RedPopoverPorps {
2
+ visable: boolean;
3
+ }
@@ -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-beta20240708190837",
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.1"
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
- "watch": "rollup -c -w"
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
  }