react-native-unistyles 3.0.0-alpha.8 → 3.0.0-beta.1
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/LICENSE +1 -1
- package/README.md +30 -41
- package/Unistyles.podspec +1 -1
- package/android/CMakeLists.txt +22 -45
- package/android/build.gradle +16 -5
- package/android/src/main/cxx/NativeUnistylesModule.cpp +71 -0
- package/android/src/main/cxx/NativeUnistylesModule.h +42 -0
- package/android/src/main/cxx/cpp-adapter.cpp +8 -86
- package/android/src/main/java/com/unistyles/Equatable.kt +61 -0
- package/android/src/main/java/com/unistyles/NativePlatform+android.kt +294 -0
- package/android/src/main/java/com/unistyles/NativePlatform+insets.kt +152 -0
- package/android/src/main/java/com/unistyles/NativePlatform+listener.kt +59 -0
- package/android/src/main/java/com/unistyles/UnistylesModule.kt +51 -0
- package/android/src/main/java/com/unistyles/UnistylesPackage.kt +16 -14
- package/cxx/NativePlatform.h +11 -0
- package/cxx/common/Constants.h +3 -0
- package/cxx/common/Helpers.h +116 -5
- package/cxx/core/HostStyle.cpp +7 -2
- package/cxx/core/HostStyle.h +1 -1
- package/cxx/core/StyleSheet.h +0 -1
- package/cxx/core/Unistyle.h +8 -11
- package/cxx/core/UnistyleData.h +5 -3
- package/cxx/core/UnistyleWrapper.h +108 -13
- package/cxx/core/UnistylesCommitHook.cpp +14 -18
- package/cxx/core/UnistylesCommitHook.h +6 -11
- package/cxx/core/UnistylesCommitShadowNode.h +13 -0
- package/cxx/core/UnistylesMountHook.cpp +28 -0
- package/cxx/core/UnistylesMountHook.h +27 -0
- package/cxx/core/UnistylesRegistry.cpp +109 -48
- package/cxx/core/UnistylesRegistry.h +11 -10
- package/cxx/core/UnistylesState.cpp +29 -8
- package/cxx/core/UnistylesState.h +5 -2
- package/cxx/hybridObjects/HybridNavigationBar.cpp +0 -4
- package/cxx/hybridObjects/HybridNavigationBar.h +3 -4
- package/cxx/hybridObjects/HybridShadowRegistry.cpp +18 -11
- package/cxx/hybridObjects/HybridStatusBar.cpp +0 -4
- package/cxx/hybridObjects/HybridStatusBar.h +3 -4
- package/cxx/hybridObjects/HybridStyleSheet.cpp +145 -19
- package/cxx/hybridObjects/HybridStyleSheet.h +27 -5
- package/cxx/hybridObjects/HybridUnistylesRuntime.cpp +78 -11
- package/cxx/hybridObjects/HybridUnistylesRuntime.h +17 -3
- package/cxx/parser/Parser.cpp +211 -128
- package/cxx/parser/Parser.h +7 -6
- package/cxx/shadowTree/ShadowLeafUpdate.h +3 -1
- package/cxx/shadowTree/ShadowTrafficController.h +71 -0
- package/cxx/shadowTree/ShadowTreeManager.cpp +28 -19
- package/cxx/shadowTree/ShadowTreeManager.h +3 -2
- package/ios/Equatable.swift +2 -1
- package/ios/Extensions.swift +3 -1
- package/ios/NativePlatform+ios.swift +34 -9
- package/ios/NativePlatform+keyboard.swift +83 -0
- package/ios/NativePlatformListener+ios.swift +36 -24
- package/ios/Unistyles.h +1 -0
- package/ios/UnistylesModuleOnLoad.h +8 -2
- package/ios/UnistylesModuleOnLoad.mm +9 -1
- package/lib/commonjs/components/Display.js +18 -0
- package/lib/commonjs/components/Display.js.map +1 -0
- package/lib/commonjs/components/Hide.js +18 -0
- package/lib/commonjs/components/Hide.js.map +1 -0
- package/lib/commonjs/components/Pressable.js +74 -0
- package/lib/commonjs/components/Pressable.js.map +1 -0
- package/lib/commonjs/components/Pressable.web.js +115 -0
- package/lib/commonjs/components/Pressable.web.js.map +1 -0
- package/lib/commonjs/components/index.js +27 -0
- package/lib/commonjs/components/index.js.map +1 -0
- package/lib/commonjs/core/createUnistylesComponent.js +79 -0
- package/lib/commonjs/core/createUnistylesComponent.js.map +1 -0
- package/lib/commonjs/core/createUnistylesComponent.native.js +82 -0
- package/lib/commonjs/core/createUnistylesComponent.native.js.map +1 -0
- package/lib/commonjs/core/getBoundArgs.js +18 -0
- package/lib/commonjs/core/getBoundArgs.js.map +1 -0
- package/lib/commonjs/core/getId.js +9 -0
- package/lib/commonjs/core/getId.js.map +1 -0
- package/lib/commonjs/core/index.js +27 -0
- package/lib/commonjs/core/index.js.map +1 -0
- package/lib/commonjs/hooks/index.js +13 -0
- package/lib/commonjs/hooks/index.js.map +1 -0
- package/lib/commonjs/hooks/useMedia.js +59 -0
- package/lib/commonjs/hooks/useMedia.js.map +1 -0
- package/lib/commonjs/hooks/useMedia.web.js +43 -0
- package/lib/commonjs/hooks/useMedia.web.js.map +1 -0
- package/lib/commonjs/index.js +28 -11
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/mq.js +31 -18
- package/lib/commonjs/mq.js.map +1 -1
- package/lib/commonjs/specs/NativePlatform/NativePlatform.nitro.js +1 -0
- package/lib/commonjs/specs/NativePlatform/NativePlatform.nitro.js.map +1 -1
- package/lib/commonjs/specs/NavigtionBar/index.js +0 -15
- package/lib/commonjs/specs/NavigtionBar/index.js.map +1 -1
- package/lib/commonjs/specs/ShadowRegistry/index.js +11 -8
- package/lib/commonjs/specs/ShadowRegistry/index.js.map +1 -1
- package/lib/commonjs/specs/StatusBar/index.js +0 -5
- package/lib/commonjs/specs/StatusBar/index.js.map +1 -1
- package/lib/commonjs/specs/StyleSheet/index.js +1 -0
- package/lib/commonjs/specs/StyleSheet/index.js.map +1 -1
- package/lib/commonjs/specs/TurboUnistyles/NativeTurboUnistyles.js +1 -2
- package/lib/commonjs/specs/TurboUnistyles/NativeTurboUnistyles.js.map +1 -1
- package/lib/commonjs/specs/UnistylesRuntime/index.js +0 -2
- package/lib/commonjs/specs/UnistylesRuntime/index.js.map +1 -1
- package/lib/commonjs/specs/index.js +7 -0
- package/lib/commonjs/specs/index.js.map +1 -1
- package/lib/commonjs/specs/index.web.js +0 -7
- package/lib/commonjs/specs/index.web.js.map +1 -1
- package/lib/commonjs/types/stylesheet.js.map +1 -1
- package/lib/commonjs/utils.js +26 -0
- package/lib/commonjs/utils.js.map +1 -0
- package/lib/commonjs/web/convert/index.js +27 -24
- package/lib/commonjs/web/convert/index.js.map +1 -1
- package/lib/commonjs/web/convert/object/boxShadow.js +59 -0
- package/lib/commonjs/web/convert/object/boxShadow.js.map +1 -0
- package/lib/commonjs/web/convert/object/filter.js +42 -0
- package/lib/commonjs/web/convert/object/filter.js.map +1 -0
- package/lib/commonjs/web/convert/object/index.js +39 -0
- package/lib/commonjs/web/convert/object/index.js.map +1 -0
- package/lib/commonjs/web/convert/object/objectStyle.js +56 -0
- package/lib/commonjs/web/convert/object/objectStyle.js.map +1 -0
- package/lib/commonjs/web/convert/object/transform.js +27 -0
- package/lib/commonjs/web/convert/object/transform.js.map +1 -0
- package/lib/commonjs/web/convert/pseudo.js +10 -0
- package/lib/commonjs/web/convert/pseudo.js.map +1 -0
- package/lib/commonjs/web/convert/{boxShadow.js → shadow/boxShadow.js} +22 -37
- package/lib/commonjs/web/convert/shadow/boxShadow.js.map +1 -0
- package/lib/commonjs/web/convert/shadow/getShadowBreakpoints.js +38 -0
- package/lib/commonjs/web/convert/shadow/getShadowBreakpoints.js.map +1 -0
- package/lib/commonjs/web/convert/shadow/index.js +28 -0
- package/lib/commonjs/web/convert/shadow/index.js.map +1 -0
- package/lib/commonjs/web/convert/{textShadow.js → shadow/textShadow.js} +21 -35
- package/lib/commonjs/web/convert/shadow/textShadow.js.map +1 -0
- package/lib/commonjs/web/convert/style.js +11 -7
- package/lib/commonjs/web/convert/style.js.map +1 -1
- package/lib/commonjs/web/convert/types.js.map +1 -1
- package/lib/commonjs/web/convert/utils.js +8 -4
- package/lib/commonjs/web/convert/utils.js.map +1 -1
- package/lib/commonjs/web/create.js +35 -67
- package/lib/commonjs/web/create.js.map +1 -1
- package/lib/commonjs/web/index.js +18 -7
- package/lib/commonjs/web/index.js.map +1 -1
- package/lib/commonjs/web/listener.js +61 -0
- package/lib/commonjs/web/listener.js.map +1 -0
- package/lib/commonjs/web/mock.js +2 -12
- package/lib/commonjs/web/mock.js.map +1 -1
- package/lib/commonjs/web/registry.js +154 -19
- package/lib/commonjs/web/registry.js.map +1 -1
- package/lib/commonjs/web/runtime.js +22 -13
- package/lib/commonjs/web/runtime.js.map +1 -1
- package/lib/commonjs/web/shadowRegistry.js +143 -0
- package/lib/commonjs/web/shadowRegistry.js.map +1 -0
- package/lib/commonjs/web/state.js +31 -72
- package/lib/commonjs/web/state.js.map +1 -1
- package/lib/commonjs/web/utils/common.js +39 -0
- package/lib/commonjs/web/utils/common.js.map +1 -0
- package/lib/commonjs/web/utils/index.js +28 -0
- package/lib/commonjs/web/utils/index.js.map +1 -0
- package/lib/commonjs/web/utils/unistyle.js +77 -0
- package/lib/commonjs/web/utils/unistyle.js.map +1 -0
- package/lib/commonjs/web/{variants/getVariants.js → variants.js} +2 -2
- package/lib/commonjs/web/variants.js.map +1 -0
- package/lib/module/components/Display.js +13 -0
- package/lib/module/components/Display.js.map +1 -0
- package/lib/module/components/Hide.js +13 -0
- package/lib/module/components/Hide.js.map +1 -0
- package/lib/module/components/Pressable.js +68 -0
- package/lib/module/components/Pressable.js.map +1 -0
- package/lib/module/components/Pressable.web.js +109 -0
- package/lib/module/components/Pressable.web.js.map +1 -0
- package/lib/module/components/index.js +6 -0
- package/lib/module/components/index.js.map +1 -0
- package/lib/module/core/createUnistylesComponent.js +72 -0
- package/lib/module/core/createUnistylesComponent.js.map +1 -0
- package/lib/module/core/createUnistylesComponent.native.js +75 -0
- package/lib/module/core/createUnistylesComponent.native.js.map +1 -0
- package/lib/module/core/getBoundArgs.js +13 -0
- package/lib/module/core/getBoundArgs.js.map +1 -0
- package/lib/module/core/getId.js +4 -0
- package/lib/module/core/getId.js.map +1 -0
- package/lib/module/core/index.js +6 -0
- package/lib/module/core/index.js.map +1 -0
- package/lib/module/hooks/index.js +4 -0
- package/lib/module/hooks/index.js.map +1 -0
- package/lib/module/hooks/useMedia.js +54 -0
- package/lib/module/hooks/useMedia.js.map +1 -0
- package/lib/module/hooks/useMedia.web.js +38 -0
- package/lib/module/hooks/useMedia.web.js.map +1 -0
- package/lib/module/index.js +2 -9
- package/lib/module/index.js.map +1 -1
- package/lib/module/mq.js +27 -17
- package/lib/module/mq.js.map +1 -1
- package/lib/module/specs/NativePlatform/NativePlatform.nitro.js +1 -0
- package/lib/module/specs/NativePlatform/NativePlatform.nitro.js.map +1 -1
- package/lib/module/specs/NavigtionBar/index.js +0 -10
- package/lib/module/specs/NavigtionBar/index.js.map +1 -1
- package/lib/module/specs/ShadowRegistry/index.js +11 -8
- package/lib/module/specs/ShadowRegistry/index.js.map +1 -1
- package/lib/module/specs/StatusBar/index.js +1 -6
- package/lib/module/specs/StatusBar/index.js.map +1 -1
- package/lib/module/specs/StyleSheet/index.js +1 -0
- package/lib/module/specs/StyleSheet/index.js.map +1 -1
- package/lib/module/specs/TurboUnistyles/NativeTurboUnistyles.js +1 -2
- package/lib/module/specs/TurboUnistyles/NativeTurboUnistyles.js.map +1 -1
- package/lib/module/specs/UnistylesRuntime/index.js +0 -2
- package/lib/module/specs/UnistylesRuntime/index.js.map +1 -1
- package/lib/module/specs/index.js +2 -1
- package/lib/module/specs/index.js.map +1 -1
- package/lib/module/specs/index.web.js +0 -1
- package/lib/module/specs/index.web.js.map +1 -1
- package/lib/module/types/stylesheet.js.map +1 -1
- package/lib/module/utils.js +21 -0
- package/lib/module/utils.js.map +1 -0
- package/lib/module/web/convert/index.js +23 -20
- package/lib/module/web/convert/index.js.map +1 -1
- package/lib/module/web/convert/object/boxShadow.js +54 -0
- package/lib/module/web/convert/object/boxShadow.js.map +1 -0
- package/lib/module/web/convert/object/filter.js +37 -0
- package/lib/module/web/convert/object/filter.js.map +1 -0
- package/lib/module/web/convert/object/index.js +6 -0
- package/lib/module/web/convert/object/index.js.map +1 -0
- package/lib/module/web/convert/object/objectStyle.js +51 -0
- package/lib/module/web/convert/object/objectStyle.js.map +1 -0
- package/lib/module/web/convert/object/transform.js +22 -0
- package/lib/module/web/convert/object/transform.js.map +1 -0
- package/lib/module/web/convert/pseudo.js +5 -0
- package/lib/module/web/convert/pseudo.js.map +1 -0
- package/lib/module/web/convert/shadow/boxShadow.js +57 -0
- package/lib/module/web/convert/shadow/boxShadow.js.map +1 -0
- package/lib/module/web/convert/shadow/getShadowBreakpoints.js +33 -0
- package/lib/module/web/convert/shadow/getShadowBreakpoints.js.map +1 -0
- package/lib/module/web/convert/shadow/index.js +5 -0
- package/lib/module/web/convert/shadow/index.js.map +1 -0
- package/lib/module/web/convert/shadow/textShadow.js +54 -0
- package/lib/module/web/convert/shadow/textShadow.js.map +1 -0
- package/lib/module/web/convert/style.js +11 -7
- package/lib/module/web/convert/style.js.map +1 -1
- package/lib/module/web/convert/types.js.map +1 -1
- package/lib/module/web/convert/utils.js +5 -3
- package/lib/module/web/convert/utils.js.map +1 -1
- package/lib/module/web/create.js +37 -69
- package/lib/module/web/create.js.map +1 -1
- package/lib/module/web/index.js +9 -3
- package/lib/module/web/index.js.map +1 -1
- package/lib/module/web/listener.js +57 -0
- package/lib/module/web/listener.js.map +1 -0
- package/lib/module/web/mock.js +1 -11
- package/lib/module/web/mock.js.map +1 -1
- package/lib/module/web/registry.js +155 -20
- package/lib/module/web/registry.js.map +1 -1
- package/lib/module/web/runtime.js +23 -14
- package/lib/module/web/runtime.js.map +1 -1
- package/lib/module/web/shadowRegistry.js +139 -0
- package/lib/module/web/shadowRegistry.js.map +1 -0
- package/lib/module/web/state.js +32 -73
- package/lib/module/web/state.js.map +1 -1
- package/lib/module/web/utils/common.js +28 -0
- package/lib/module/web/utils/common.js.map +1 -0
- package/lib/module/web/utils/index.js +5 -0
- package/lib/module/web/utils/index.js.map +1 -0
- package/lib/module/web/utils/unistyle.js +65 -0
- package/lib/module/web/utils/unistyle.js.map +1 -0
- package/lib/module/web/{variants/getVariants.js → variants.js} +2 -2
- package/lib/module/web/variants.js.map +1 -0
- package/lib/typescript/src/components/Display.d.ts +7 -0
- package/lib/typescript/src/components/Display.d.ts.map +1 -0
- package/lib/typescript/src/components/Hide.d.ts +7 -0
- package/lib/typescript/src/components/Hide.d.ts.map +1 -0
- package/lib/typescript/src/components/Pressable.d.ts +8 -0
- package/lib/typescript/src/components/Pressable.d.ts.map +1 -0
- package/lib/typescript/src/components/Pressable.web.d.ts +14 -0
- package/lib/typescript/src/components/Pressable.web.d.ts.map +1 -0
- package/lib/typescript/src/components/index.d.ts +4 -0
- package/lib/typescript/src/components/index.d.ts.map +1 -0
- package/lib/typescript/src/core/createUnistylesComponent.d.ts +8 -0
- package/lib/typescript/src/core/createUnistylesComponent.d.ts.map +1 -0
- package/lib/typescript/src/core/createUnistylesComponent.native.d.ts +8 -0
- package/lib/typescript/src/core/createUnistylesComponent.native.d.ts.map +1 -0
- package/lib/typescript/src/core/getBoundArgs.d.ts +2 -0
- package/lib/typescript/src/core/getBoundArgs.d.ts.map +1 -0
- package/lib/typescript/src/core/getId.d.ts +2 -0
- package/lib/typescript/src/core/getId.d.ts.map +1 -0
- package/lib/typescript/src/core/index.d.ts +4 -0
- package/lib/typescript/src/core/index.d.ts.map +1 -0
- package/lib/typescript/src/hooks/index.d.ts +2 -0
- package/lib/typescript/src/hooks/index.d.ts.map +1 -0
- package/lib/typescript/src/hooks/useMedia.d.ts +6 -0
- package/lib/typescript/src/hooks/useMedia.d.ts.map +1 -0
- package/lib/typescript/src/hooks/useMedia.web.d.ts +6 -0
- package/lib/typescript/src/hooks/useMedia.web.d.ts.map +1 -0
- package/lib/typescript/src/index.d.ts +3 -0
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/mq.d.ts +8 -0
- package/lib/typescript/src/mq.d.ts.map +1 -1
- package/lib/typescript/src/specs/NativePlatform/NativePlatform.nitro.d.ts +8 -6
- package/lib/typescript/src/specs/NativePlatform/NativePlatform.nitro.d.ts.map +1 -1
- package/lib/typescript/src/specs/NavigtionBar/UnistylesNavigationBar.nitro.d.ts +0 -1
- package/lib/typescript/src/specs/NavigtionBar/UnistylesNavigationBar.nitro.d.ts.map +1 -1
- package/lib/typescript/src/specs/NavigtionBar/index.d.ts +1 -10
- package/lib/typescript/src/specs/NavigtionBar/index.d.ts.map +1 -1
- package/lib/typescript/src/specs/ShadowRegistry/index.d.ts +4 -4
- package/lib/typescript/src/specs/ShadowRegistry/index.d.ts.map +1 -1
- package/lib/typescript/src/specs/ShadowRegistry/types.d.ts +4 -0
- package/lib/typescript/src/specs/ShadowRegistry/types.d.ts.map +1 -1
- package/lib/typescript/src/specs/StatusBar/UnistylesStatusBar.nitro.d.ts +0 -1
- package/lib/typescript/src/specs/StatusBar/UnistylesStatusBar.nitro.d.ts.map +1 -1
- package/lib/typescript/src/specs/StatusBar/index.d.ts +2 -4
- package/lib/typescript/src/specs/StatusBar/index.d.ts.map +1 -1
- package/lib/typescript/src/specs/StyleSheet/UnistylesStyleSheet.nitro.d.ts +3 -1
- package/lib/typescript/src/specs/StyleSheet/UnistylesStyleSheet.nitro.d.ts.map +1 -1
- package/lib/typescript/src/specs/StyleSheet/index.d.ts +5 -3
- package/lib/typescript/src/specs/StyleSheet/index.d.ts.map +1 -1
- package/lib/typescript/src/specs/UnistylesRuntime/UnistylesRuntime.nitro.d.ts +1 -1
- package/lib/typescript/src/specs/UnistylesRuntime/UnistylesRuntime.nitro.d.ts.map +1 -1
- package/lib/typescript/src/specs/UnistylesRuntime/index.d.ts +4 -2
- package/lib/typescript/src/specs/UnistylesRuntime/index.d.ts.map +1 -1
- package/lib/typescript/src/specs/index.d.ts +4 -2
- package/lib/typescript/src/specs/index.d.ts.map +1 -1
- package/lib/typescript/src/specs/index.web.d.ts +0 -2
- package/lib/typescript/src/specs/index.web.d.ts.map +1 -1
- package/lib/typescript/src/types/breakpoints.d.ts +11 -11
- package/lib/typescript/src/types/breakpoints.d.ts.map +1 -1
- package/lib/typescript/src/types/common.d.ts +2 -0
- package/lib/typescript/src/types/common.d.ts.map +1 -1
- package/lib/typescript/src/types/index.d.ts +2 -2
- package/lib/typescript/src/types/index.d.ts.map +1 -1
- package/lib/typescript/src/types/stylesheet.d.ts +6 -4
- package/lib/typescript/src/types/stylesheet.d.ts.map +1 -1
- package/lib/typescript/src/types/variants.d.ts +4 -1
- package/lib/typescript/src/types/variants.d.ts.map +1 -1
- package/lib/typescript/src/utils.d.ts +2 -0
- package/lib/typescript/src/utils.d.ts.map +1 -0
- package/lib/typescript/src/web/convert/index.d.ts +1 -2
- package/lib/typescript/src/web/convert/index.d.ts.map +1 -1
- package/lib/typescript/src/web/convert/object/boxShadow.d.ts +9 -0
- package/lib/typescript/src/web/convert/object/boxShadow.d.ts.map +1 -0
- package/lib/typescript/src/web/convert/object/filter.d.ts +3 -0
- package/lib/typescript/src/web/convert/object/filter.d.ts.map +1 -0
- package/lib/typescript/src/web/convert/object/index.d.ts +4 -0
- package/lib/typescript/src/web/convert/object/index.d.ts.map +1 -0
- package/lib/typescript/src/web/convert/object/objectStyle.d.ts +5 -0
- package/lib/typescript/src/web/convert/object/objectStyle.d.ts.map +1 -0
- package/lib/typescript/src/web/convert/object/transform.d.ts +3 -0
- package/lib/typescript/src/web/convert/object/transform.d.ts.map +1 -0
- package/lib/typescript/src/web/convert/pseudo.d.ts +6 -0
- package/lib/typescript/src/web/convert/pseudo.d.ts.map +1 -0
- package/lib/typescript/src/web/convert/shadow/boxShadow.d.ts +8 -0
- package/lib/typescript/src/web/convert/shadow/boxShadow.d.ts.map +1 -0
- package/lib/typescript/src/web/convert/shadow/getShadowBreakpoints.d.ts +2 -0
- package/lib/typescript/src/web/convert/shadow/getShadowBreakpoints.d.ts.map +1 -0
- package/lib/typescript/src/web/convert/shadow/index.d.ts +3 -0
- package/lib/typescript/src/web/convert/shadow/index.d.ts.map +1 -0
- package/lib/typescript/src/web/convert/shadow/textShadow.d.ts +8 -0
- package/lib/typescript/src/web/convert/shadow/textShadow.d.ts.map +1 -0
- package/lib/typescript/src/web/convert/style.d.ts +1 -2
- package/lib/typescript/src/web/convert/style.d.ts.map +1 -1
- package/lib/typescript/src/web/convert/types.d.ts +7 -1
- package/lib/typescript/src/web/convert/types.d.ts.map +1 -1
- package/lib/typescript/src/web/convert/utils.d.ts +8 -4
- package/lib/typescript/src/web/convert/utils.d.ts.map +1 -1
- package/lib/typescript/src/web/create.d.ts +215 -1221
- package/lib/typescript/src/web/create.d.ts.map +1 -1
- package/lib/typescript/src/web/index.d.ts +223 -1222
- package/lib/typescript/src/web/index.d.ts.map +1 -1
- package/lib/typescript/src/web/{listener/listener.d.ts → listener.d.ts} +5 -2
- package/lib/typescript/src/web/listener.d.ts.map +1 -0
- package/lib/typescript/src/web/mock.d.ts +0 -9
- package/lib/typescript/src/web/mock.d.ts.map +1 -1
- package/lib/typescript/src/web/registry.d.ts +18 -6
- package/lib/typescript/src/web/registry.d.ts.map +1 -1
- package/lib/typescript/src/web/runtime.d.ts +6 -5
- package/lib/typescript/src/web/runtime.d.ts.map +1 -1
- package/lib/typescript/src/web/shadowRegistry.d.ts +17 -0
- package/lib/typescript/src/web/shadowRegistry.d.ts.map +1 -0
- package/lib/typescript/src/web/state.d.ts +3 -9
- package/lib/typescript/src/web/state.d.ts.map +1 -1
- package/lib/typescript/src/web/utils/common.d.ts +8 -0
- package/lib/typescript/src/web/utils/common.d.ts.map +1 -0
- package/lib/typescript/src/web/utils/index.d.ts +3 -0
- package/lib/typescript/src/web/utils/index.d.ts.map +1 -0
- package/lib/typescript/src/web/utils/unistyle.d.ts +19 -0
- package/lib/typescript/src/web/utils/unistyle.d.ts.map +1 -0
- package/lib/typescript/src/web/{variants/getVariants.d.ts → variants.d.ts} +2 -2
- package/lib/typescript/src/web/variants.d.ts.map +1 -0
- package/nitrogen/generated/android/c++/JColorScheme.hpp +2 -2
- package/nitrogen/generated/android/c++/JFunc_void_UnistylesNativeMiniRuntime.hpp +57 -0
- package/nitrogen/generated/android/c++/JFunc_void_std__vector_UnistyleDependency__UnistylesNativeMiniRuntime.hpp +69 -0
- package/nitrogen/generated/android/c++/JHybridNativePlatformSpec.cpp +35 -34
- package/nitrogen/generated/android/c++/JHybridNativePlatformSpec.hpp +15 -6
- package/nitrogen/generated/android/c++/JOrientation.hpp +2 -2
- package/nitrogen/generated/android/c++/JUnistyleDependency.hpp +5 -2
- package/nitrogen/generated/android/c++/JUnistylesNativeMiniRuntime.hpp +9 -7
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/unistyles/ColorScheme.kt +5 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/unistyles/Dimensions.kt +1 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/unistyles/{Func_void_std__vector_UnistyleDependency_.kt → Func_void_UnistylesNativeMiniRuntime.kt} +6 -5
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/unistyles/Func_void_std__vector_UnistyleDependency__UnistylesNativeMiniRuntime.kt +46 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/unistyles/HybridNativePlatformSpec.kt +25 -13
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/unistyles/Insets.kt +1 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/unistyles/Orientation.kt +5 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/unistyles/UnistyleDependency.kt +6 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/unistyles/UnistylesNativeMiniRuntime.kt +3 -1
- package/nitrogen/generated/android/unistyles+autolinking.cmake +13 -1
- package/nitrogen/generated/android/unistyles+autolinking.gradle +2 -0
- package/nitrogen/generated/android/{UnistylesOnLoad.cpp → unistylesOnLoad.cpp} +6 -4
- package/nitrogen/generated/android/{UnistylesOnLoad.hpp → unistylesOnLoad.hpp} +1 -1
- package/nitrogen/generated/ios/Unistyles+autolinking.rb +6 -4
- package/nitrogen/generated/ios/Unistyles-Swift-Cxx-Bridge.cpp +25 -0
- package/nitrogen/generated/ios/Unistyles-Swift-Cxx-Bridge.hpp +73 -38
- package/nitrogen/generated/ios/Unistyles-Swift-Cxx-Umbrella.hpp +1 -30
- package/nitrogen/generated/ios/c++/HybridNativePlatformSpecSwift.hpp +8 -8
- package/nitrogen/generated/ios/swift/HybridNativePlatformSpec.swift +4 -16
- package/nitrogen/generated/ios/swift/HybridNativePlatformSpecCxx.swift +156 -115
- package/nitrogen/generated/ios/swift/UnistyleDependency.swift +4 -0
- package/nitrogen/generated/ios/swift/UnistylesNativeMiniRuntime.swift +16 -5
- package/nitrogen/generated/shared/c++/ColorScheme.hpp +2 -2
- package/nitrogen/generated/shared/c++/HybridNativePlatformSpec.cpp +2 -2
- package/nitrogen/generated/shared/c++/HybridNativePlatformSpec.hpp +6 -3
- package/nitrogen/generated/shared/c++/HybridUnistylesNavigationBarSpec.cpp +0 -1
- package/nitrogen/generated/shared/c++/HybridUnistylesNavigationBarSpec.hpp +3 -1
- package/nitrogen/generated/shared/c++/HybridUnistylesRuntimeSpec.cpp +1 -0
- package/nitrogen/generated/shared/c++/HybridUnistylesRuntimeSpec.hpp +5 -0
- package/nitrogen/generated/shared/c++/HybridUnistylesShadowRegistrySpec.hpp +3 -0
- package/nitrogen/generated/shared/c++/HybridUnistylesStatusBarSpec.cpp +0 -1
- package/nitrogen/generated/shared/c++/HybridUnistylesStatusBarSpec.hpp +3 -1
- package/nitrogen/generated/shared/c++/HybridUnistylesStyleSheetSpec.cpp +2 -1
- package/nitrogen/generated/shared/c++/HybridUnistylesStyleSheetSpec.hpp +10 -4
- package/nitrogen/generated/shared/c++/Orientation.hpp +2 -2
- package/nitrogen/generated/shared/c++/UnistyleDependency.hpp +2 -1
- package/nitrogen/generated/shared/c++/UnistylesCxxMiniRuntime.hpp +10 -9
- package/nitrogen/generated/shared/c++/UnistylesNativeMiniRuntime.hpp +9 -8
- package/package.json +24 -37
- package/plugin/common.js +27 -2
- package/plugin/import.js +29 -3
- package/plugin/index.js +104 -15
- package/plugin/ref.js +58 -44
- package/plugin/style.js +443 -9
- package/plugin/stylesheet.js +10 -3
- package/src/components/Display.tsx +12 -0
- package/src/components/Hide.tsx +12 -0
- package/src/components/Pressable.tsx +89 -0
- package/src/components/Pressable.web.tsx +129 -0
- package/src/components/index.ts +3 -0
- package/src/core/createUnistylesComponent.native.tsx +83 -0
- package/src/core/createUnistylesComponent.tsx +84 -0
- package/src/core/getBoundArgs.ts +15 -0
- package/src/core/getId.ts +1 -0
- package/src/core/index.ts +3 -0
- package/src/hooks/index.ts +1 -0
- package/src/hooks/useMedia.ts +64 -0
- package/src/hooks/useMedia.web.ts +47 -0
- package/src/index.ts +3 -12
- package/src/mq.ts +33 -15
- package/src/specs/NativePlatform/NativePlatform.nitro.ts +8 -6
- package/src/specs/NavigtionBar/UnistylesNavigationBar.nitro.ts +0 -1
- package/src/specs/NavigtionBar/index.ts +1 -25
- package/src/specs/ShadowRegistry/index.ts +17 -12
- package/src/specs/ShadowRegistry/types.ts +6 -2
- package/src/specs/StatusBar/UnistylesStatusBar.nitro.ts +0 -1
- package/src/specs/StatusBar/index.ts +2 -12
- package/src/specs/StyleSheet/UnistylesStyleSheet.nitro.ts +4 -1
- package/src/specs/StyleSheet/index.ts +7 -3
- package/src/specs/TurboUnistyles/NativeTurboUnistyles.ts +1 -2
- package/src/specs/UnistylesRuntime/UnistylesRuntime.nitro.ts +2 -2
- package/src/specs/UnistylesRuntime/index.ts +4 -3
- package/src/specs/index.ts +6 -2
- package/src/specs/index.web.ts +0 -4
- package/src/types/breakpoints.ts +25 -13
- package/src/types/common.ts +2 -0
- package/src/types/index.ts +2 -2
- package/src/types/stylesheet.ts +7 -5
- package/src/types/variants.ts +7 -1
- package/src/utils.ts +22 -0
- package/src/web/convert/index.ts +24 -24
- package/src/web/convert/object/boxShadow.ts +55 -0
- package/src/web/convert/object/filter.ts +39 -0
- package/src/web/convert/object/index.ts +3 -0
- package/src/web/convert/object/objectStyle.ts +69 -0
- package/src/web/convert/object/transform.ts +24 -0
- package/src/web/convert/pseudo.ts +137 -0
- package/src/web/convert/shadow/boxShadow.ts +50 -0
- package/src/web/convert/shadow/getShadowBreakpoints.ts +34 -0
- package/src/web/convert/shadow/index.ts +2 -0
- package/src/web/convert/shadow/textShadow.ts +48 -0
- package/src/web/convert/style.ts +61 -10
- package/src/web/convert/types.ts +8 -1
- package/src/web/convert/utils.ts +13 -7
- package/src/web/create.ts +35 -83
- package/src/web/index.ts +9 -4
- package/src/web/listener.ts +65 -0
- package/src/web/mock.ts +1 -12
- package/src/web/registry.ts +202 -28
- package/src/web/runtime.ts +29 -18
- package/src/web/shadowRegistry.ts +149 -0
- package/src/web/state.ts +52 -87
- package/src/web/utils/common.ts +45 -0
- package/src/web/utils/index.ts +2 -0
- package/src/web/utils/unistyle.ts +94 -0
- package/src/web/{variants/getVariants.ts → variants.ts} +2 -2
- package/android/src/main/cxx/helpers.cpp +0 -105
- package/android/src/main/cxx/helpers.h +0 -16
- package/android/src/main/cxx/platform.cpp +0 -170
- package/android/src/main/cxx/platform.h +0 -20
- package/lib/commonjs/web/convert/boxShadow.js.map +0 -1
- package/lib/commonjs/web/convert/breakpoint.js +0 -25
- package/lib/commonjs/web/convert/breakpoint.js.map +0 -1
- package/lib/commonjs/web/convert/shadow.js +0 -68
- package/lib/commonjs/web/convert/shadow.js.map +0 -1
- package/lib/commonjs/web/convert/textShadow.js.map +0 -1
- package/lib/commonjs/web/convert/transform.js +0 -72
- package/lib/commonjs/web/convert/transform.js.map +0 -1
- package/lib/commonjs/web/listener/index.js +0 -13
- package/lib/commonjs/web/listener/index.js.map +0 -1
- package/lib/commonjs/web/listener/listener.js +0 -36
- package/lib/commonjs/web/listener/listener.js.map +0 -1
- package/lib/commonjs/web/mq.js +0 -23
- package/lib/commonjs/web/mq.js.map +0 -1
- package/lib/commonjs/web/pseudo.js +0 -11
- package/lib/commonjs/web/pseudo.js.map +0 -1
- package/lib/commonjs/web/utils.js +0 -78
- package/lib/commonjs/web/utils.js.map +0 -1
- package/lib/commonjs/web/variants/getVariants.js.map +0 -1
- package/lib/commonjs/web/variants/index.js +0 -28
- package/lib/commonjs/web/variants/index.js.map +0 -1
- package/lib/commonjs/web/variants/useVariants.js +0 -75
- package/lib/commonjs/web/variants/useVariants.js.map +0 -1
- package/lib/module/web/convert/boxShadow.js +0 -72
- package/lib/module/web/convert/boxShadow.js.map +0 -1
- package/lib/module/web/convert/breakpoint.js +0 -20
- package/lib/module/web/convert/breakpoint.js.map +0 -1
- package/lib/module/web/convert/shadow.js +0 -63
- package/lib/module/web/convert/shadow.js.map +0 -1
- package/lib/module/web/convert/textShadow.js +0 -68
- package/lib/module/web/convert/textShadow.js.map +0 -1
- package/lib/module/web/convert/transform.js +0 -67
- package/lib/module/web/convert/transform.js.map +0 -1
- package/lib/module/web/listener/index.js +0 -4
- package/lib/module/web/listener/index.js.map +0 -1
- package/lib/module/web/listener/listener.js +0 -31
- package/lib/module/web/listener/listener.js.map +0 -1
- package/lib/module/web/mq.js +0 -17
- package/lib/module/web/mq.js.map +0 -1
- package/lib/module/web/pseudo.js +0 -6
- package/lib/module/web/pseudo.js.map +0 -1
- package/lib/module/web/utils.js +0 -65
- package/lib/module/web/utils.js.map +0 -1
- package/lib/module/web/variants/getVariants.js.map +0 -1
- package/lib/module/web/variants/index.js +0 -5
- package/lib/module/web/variants/index.js.map +0 -1
- package/lib/module/web/variants/useVariants.js +0 -70
- package/lib/module/web/variants/useVariants.js.map +0 -1
- package/lib/typescript/example/App.d.ts +0 -4
- package/lib/typescript/example/App.d.ts.map +0 -1
- package/lib/typescript/example/Typography.d.ts +0 -11
- package/lib/typescript/example/Typography.d.ts.map +0 -1
- package/lib/typescript/example/unistyles.d.ts +0 -63
- package/lib/typescript/example/unistyles.d.ts.map +0 -1
- package/lib/typescript/expo-example/App.d.ts +0 -4
- package/lib/typescript/expo-example/App.d.ts.map +0 -1
- package/lib/typescript/expo-example/unistyles.d.ts +0 -63
- package/lib/typescript/expo-example/unistyles.d.ts.map +0 -1
- package/lib/typescript/src/web/convert/boxShadow.d.ts +0 -3
- package/lib/typescript/src/web/convert/boxShadow.d.ts.map +0 -1
- package/lib/typescript/src/web/convert/breakpoint.d.ts +0 -3
- package/lib/typescript/src/web/convert/breakpoint.d.ts.map +0 -1
- package/lib/typescript/src/web/convert/shadow.d.ts +0 -2
- package/lib/typescript/src/web/convert/shadow.d.ts.map +0 -1
- package/lib/typescript/src/web/convert/textShadow.d.ts +0 -3
- package/lib/typescript/src/web/convert/textShadow.d.ts.map +0 -1
- package/lib/typescript/src/web/convert/transform.d.ts +0 -5
- package/lib/typescript/src/web/convert/transform.d.ts.map +0 -1
- package/lib/typescript/src/web/listener/index.d.ts +0 -2
- package/lib/typescript/src/web/listener/index.d.ts.map +0 -1
- package/lib/typescript/src/web/listener/listener.d.ts.map +0 -1
- package/lib/typescript/src/web/mq.d.ts +0 -4
- package/lib/typescript/src/web/mq.d.ts.map +0 -1
- package/lib/typescript/src/web/pseudo.d.ts +0 -4
- package/lib/typescript/src/web/pseudo.d.ts.map +0 -1
- package/lib/typescript/src/web/utils.d.ts +0 -20
- package/lib/typescript/src/web/utils.d.ts.map +0 -1
- package/lib/typescript/src/web/variants/getVariants.d.ts.map +0 -1
- package/lib/typescript/src/web/variants/index.d.ts +0 -3
- package/lib/typescript/src/web/variants/index.d.ts.map +0 -1
- package/lib/typescript/src/web/variants/useVariants.d.ts +0 -3
- package/lib/typescript/src/web/variants/useVariants.d.ts.map +0 -1
- package/nitrogen/generated/android/c++/JFunc_void_std__vector_UnistyleDependency_.hpp +0 -60
- package/plugin/__tests__/dependencies.spec.js +0 -438
- package/plugin/__tests__/ref.spec.js +0 -1181
- package/plugin/__tests__/stylesheet.spec.js +0 -489
- package/src/web/convert/boxShadow.ts +0 -72
- package/src/web/convert/breakpoint.ts +0 -21
- package/src/web/convert/shadow.ts +0 -68
- package/src/web/convert/textShadow.ts +0 -69
- package/src/web/convert/transform.ts +0 -89
- package/src/web/listener/index.ts +0 -1
- package/src/web/listener/listener.ts +0 -33
- package/src/web/mq.ts +0 -19
- package/src/web/pseudo.ts +0 -11
- package/src/web/utils.ts +0 -95
- package/src/web/variants/index.ts +0 -2
- package/src/web/variants/useVariants.ts +0 -79
- /package/nitrogen/generated/android/{UnistylesOnLoad.kt → unistylesOnLoad.kt} +0 -0
package/plugin/style.js
CHANGED
@@ -1,33 +1,99 @@
|
|
1
|
-
function getStyleMetadata(t, node, dynamicFunction = null) {
|
1
|
+
function getStyleMetadata(t, node, dynamicFunction = null, state) {
|
2
2
|
// {styles.container}
|
3
3
|
if (t.isMemberExpression(node)) {
|
4
|
+
const members = t.isMemberExpression(node.object)
|
5
|
+
? [node.object.object.name, node.object.property.name, node.property.name]
|
6
|
+
: [node.object.name, node.property.name]
|
7
|
+
|
4
8
|
return [
|
5
9
|
{
|
6
|
-
|
7
|
-
|
8
|
-
dynamicFunction
|
10
|
+
members: members.filter(Boolean),
|
11
|
+
inlineStyle: undefined,
|
12
|
+
dynamicFunction,
|
13
|
+
conditionalExpression: undefined,
|
14
|
+
logicalExpression: undefined
|
9
15
|
}
|
10
16
|
]
|
11
17
|
}
|
12
18
|
|
13
19
|
// [styles.container]
|
14
20
|
if (t.isArrayExpression(node)) {
|
15
|
-
return node.elements.flatMap(element => getStyleMetadata(t, element))
|
21
|
+
return node.elements.flatMap(element => getStyleMetadata(t, element, null, state))
|
16
22
|
}
|
17
23
|
|
18
24
|
// [...styles.container]
|
19
25
|
if (t.isSpreadElement(node)) {
|
20
|
-
return getStyleMetadata(t, node.argument)
|
26
|
+
return getStyleMetadata(t, node.argument, null, state)
|
21
27
|
}
|
22
28
|
|
23
29
|
// {{ ...styles.container }}
|
24
30
|
if (t.isObjectExpression(node)) {
|
25
|
-
return node
|
31
|
+
return node
|
32
|
+
.properties
|
33
|
+
.flatMap(prop => {
|
34
|
+
// handle inline styles
|
35
|
+
if (t.isObjectProperty(prop)) {
|
36
|
+
return [{
|
37
|
+
members: [],
|
38
|
+
inlineStyle: t.objectExpression([prop]),
|
39
|
+
dynamicFunction: undefined,
|
40
|
+
conditionalExpression: undefined,
|
41
|
+
logicalExpression: undefined
|
42
|
+
}]
|
43
|
+
}
|
44
|
+
|
45
|
+
return getStyleMetadata(t, prop.argument, null, state)
|
46
|
+
})
|
47
|
+
.filter(Boolean)
|
26
48
|
}
|
27
49
|
|
28
50
|
// {styles.container(arg1, arg2)}
|
29
51
|
if (t.isCallExpression(node)) {
|
30
|
-
return getStyleMetadata(t, node.callee, node)
|
52
|
+
return getStyleMetadata(t, node.callee, node, state)
|
53
|
+
}
|
54
|
+
|
55
|
+
if (t.isIdentifier(node)) {
|
56
|
+
return [{
|
57
|
+
members: [node.name],
|
58
|
+
inlineStyle: undefined,
|
59
|
+
dynamicFunction: undefined,
|
60
|
+
conditionalExpression: undefined,
|
61
|
+
logicalExpression: undefined
|
62
|
+
}]
|
63
|
+
}
|
64
|
+
|
65
|
+
if (t.isConditionalExpression(node)) {
|
66
|
+
return [{
|
67
|
+
members: [],
|
68
|
+
inlineStyle: undefined,
|
69
|
+
dynamicFunction: undefined,
|
70
|
+
conditionalExpression: node,
|
71
|
+
logicalExpression: undefined
|
72
|
+
}]
|
73
|
+
}
|
74
|
+
|
75
|
+
if (t.isArrowFunctionExpression(node)) {
|
76
|
+
return getStyleMetadata(t, node.body, node, state)
|
77
|
+
}
|
78
|
+
|
79
|
+
// {condition && styles.container}
|
80
|
+
if (t.isLogicalExpression(node)) {
|
81
|
+
return [{
|
82
|
+
members: [],
|
83
|
+
inlineStyle: undefined,
|
84
|
+
dynamicFunction: undefined,
|
85
|
+
conditionalExpression: undefined,
|
86
|
+
logicalExpression: node
|
87
|
+
}]
|
88
|
+
}
|
89
|
+
|
90
|
+
// only when pressable is used
|
91
|
+
if (t.isBlockStatement(node) && state.file.shouldIncludePressable) {
|
92
|
+
const returnStatement = node.body.find(t.isReturnStatement)
|
93
|
+
|
94
|
+
return returnStatement
|
95
|
+
? getStyleMetadata(t, returnStatement.argument, null, state)
|
96
|
+
: []
|
31
97
|
}
|
32
98
|
|
33
99
|
return []
|
@@ -41,7 +107,375 @@ function getStyleAttribute(t, path) {
|
|
41
107
|
)
|
42
108
|
}
|
43
109
|
|
110
|
+
function styleAttributeToArray(t, path) {
|
111
|
+
const styleAttribute = getStyleAttribute(t, path)
|
112
|
+
|
113
|
+
// {{...style.container, ...style.container}}
|
114
|
+
if (t.isObjectExpression(styleAttribute.value.expression)) {
|
115
|
+
const properties = styleAttribute.value.expression.properties
|
116
|
+
.map(property => t.isSpreadElement(property)
|
117
|
+
? property.argument
|
118
|
+
: t.objectExpression([property])
|
119
|
+
)
|
120
|
+
|
121
|
+
styleAttribute.value.expression = t.arrayExpression(properties)
|
122
|
+
|
123
|
+
return
|
124
|
+
}
|
125
|
+
|
126
|
+
// [{...style.container, ...style.container}]
|
127
|
+
if (t.isArrayExpression(styleAttribute.value.expression)) {
|
128
|
+
const properties = styleAttribute.value.expression.elements
|
129
|
+
.flatMap(property => {
|
130
|
+
if (t.isSpreadElement(property)) {
|
131
|
+
return property.argument
|
132
|
+
}
|
133
|
+
return property
|
134
|
+
})
|
135
|
+
|
136
|
+
styleAttribute.value.expression = t.arrayExpression(properties)
|
137
|
+
|
138
|
+
return
|
139
|
+
}
|
140
|
+
|
141
|
+
styleAttribute.value.expression = t.arrayExpression([styleAttribute.value.expression])
|
142
|
+
}
|
143
|
+
|
144
|
+
function metadataToRawStyle(t, metadata, styleExpression) {
|
145
|
+
const expressions = []
|
146
|
+
|
147
|
+
metadata.forEach(meta => {
|
148
|
+
if (meta.inlineStyle) {
|
149
|
+
return meta.inlineStyle.properties.forEach(prop => {
|
150
|
+
if (t.isObjectProperty(prop)) {
|
151
|
+
expressions.push(t.objectExpression([prop]))
|
152
|
+
}
|
153
|
+
})
|
154
|
+
}
|
155
|
+
|
156
|
+
if (meta.members.length > 0) {
|
157
|
+
return expressions.push(t.memberExpression(...meta.members.map(member => t.identifier(member))))
|
158
|
+
}
|
159
|
+
|
160
|
+
if (meta.logicalExpression) {
|
161
|
+
const expression = t.cloneNode(meta.logicalExpression)
|
162
|
+
|
163
|
+
if (t.isIdentifier(expression.left)) {
|
164
|
+
if (t.isCallExpression(expression.right)) {
|
165
|
+
expression.right = expression.right.callee
|
166
|
+
}
|
167
|
+
|
168
|
+
expressions.push(expression)
|
169
|
+
}
|
170
|
+
}
|
171
|
+
|
172
|
+
if (meta.conditionalExpression) {
|
173
|
+
const expression = t.cloneNode(meta.conditionalExpression)
|
174
|
+
|
175
|
+
if (t.isCallExpression(expression.alternate)) {
|
176
|
+
expression.alternate = expression.alternate.callee
|
177
|
+
}
|
178
|
+
|
179
|
+
if (t.isCallExpression(expression.consequent)) {
|
180
|
+
expression.consequent = expression.consequent.callee
|
181
|
+
}
|
182
|
+
|
183
|
+
expressions.push(expression)
|
184
|
+
}
|
185
|
+
})
|
186
|
+
|
187
|
+
if (t.isArrowFunctionExpression(styleExpression) && styleExpression.params.length === 1) {
|
188
|
+
return t.jsxAttribute(
|
189
|
+
t.jsxIdentifier('rawStyle'),
|
190
|
+
t.jsxExpressionContainer(
|
191
|
+
t.arrowFunctionExpression(styleExpression.params, t.arrayExpression([
|
192
|
+
...expressions
|
193
|
+
])
|
194
|
+
))
|
195
|
+
)
|
196
|
+
}
|
197
|
+
|
198
|
+
return t.jsxAttribute(
|
199
|
+
t.jsxIdentifier('rawStyle'),
|
200
|
+
t.jsxExpressionContainer(t.arrayExpression([
|
201
|
+
...expressions
|
202
|
+
]))
|
203
|
+
)
|
204
|
+
}
|
205
|
+
|
206
|
+
function wrapInGetBoundArgs(t, toWrap, extraArgs) {
|
207
|
+
const expression = t.callExpression(
|
208
|
+
t.identifier('getBoundArgs'),
|
209
|
+
[toWrap]
|
210
|
+
)
|
211
|
+
|
212
|
+
return t.callExpression(
|
213
|
+
t.memberExpression(expression, t.identifier('bind')),
|
214
|
+
[t.identifier('undefined'), ...extraArgs].filter(Boolean)
|
215
|
+
)
|
216
|
+
}
|
217
|
+
|
218
|
+
function handlePressableFromMemberExpression(t, path, metadata, wrapInArrowFunction) {
|
219
|
+
let expression = undefined
|
220
|
+
let args = []
|
221
|
+
|
222
|
+
const members = metadata.at(0).members
|
223
|
+
|
224
|
+
if (members) {
|
225
|
+
expression = members.slice(1).reduce(
|
226
|
+
(acc, property) => t.memberExpression(acc, t.identifier(property)),
|
227
|
+
t.identifier(members[0]))
|
228
|
+
}
|
229
|
+
|
230
|
+
if (t.isMemberExpression(metadata.at(0))) {
|
231
|
+
expression = metadata.at(0)
|
232
|
+
}
|
233
|
+
|
234
|
+
if (t.isCallExpression(metadata.at(0))) {
|
235
|
+
expression = metadata.at(0).callee
|
236
|
+
args = metadata.at(0).arguments
|
237
|
+
}
|
238
|
+
|
239
|
+
if (!expression) {
|
240
|
+
return
|
241
|
+
}
|
242
|
+
|
243
|
+
const bindCall = wrapInGetBoundArgs(t , expression, wrapInArrowFunction ? [t.identifier("state")] : args)
|
244
|
+
|
245
|
+
if (t.isCallExpression(metadata.at(0))) {
|
246
|
+
return bindCall
|
247
|
+
}
|
248
|
+
|
249
|
+
if (!wrapInArrowFunction) {
|
250
|
+
return t.conditionalExpression(
|
251
|
+
t.binaryExpression(
|
252
|
+
"===",
|
253
|
+
t.unaryExpression(
|
254
|
+
"typeof",
|
255
|
+
expression
|
256
|
+
),
|
257
|
+
t.stringLiteral("function")
|
258
|
+
),
|
259
|
+
bindCall,
|
260
|
+
expression
|
261
|
+
)
|
262
|
+
}
|
263
|
+
|
264
|
+
// state => typeof style.pressable === 'function'
|
265
|
+
// ? getBoundArgs(style.pressable).bind(undefined, state)
|
266
|
+
// : style.pressable
|
267
|
+
return t.arrowFunctionExpression(
|
268
|
+
[t.identifier("state")],
|
269
|
+
t.conditionalExpression(
|
270
|
+
t.binaryExpression(
|
271
|
+
"===",
|
272
|
+
t.unaryExpression(
|
273
|
+
"typeof",
|
274
|
+
expression
|
275
|
+
),
|
276
|
+
t.stringLiteral("function")
|
277
|
+
),
|
278
|
+
bindCall,
|
279
|
+
expression
|
280
|
+
)
|
281
|
+
)
|
282
|
+
}
|
283
|
+
|
284
|
+
function handlePressableArgs(t, path, styleExpression, metadata, parentWrapper, wrapper, index) {
|
285
|
+
if (t.isObjectExpression(wrapper)) {
|
286
|
+
return
|
287
|
+
}
|
288
|
+
|
289
|
+
if (t.isMemberExpression(wrapper) && t.isArrayExpression(parentWrapper)) {
|
290
|
+
parentWrapper.elements[index] = handlePressableFromMemberExpression(t, path, [metadata[index]])
|
291
|
+
|
292
|
+
return
|
293
|
+
}
|
294
|
+
|
295
|
+
if (t.isMemberExpression(wrapper) && !t.isArrayExpression(parentWrapper)) {
|
296
|
+
parentWrapper = handlePressableFromMemberExpression(t, path, metadata)
|
297
|
+
|
298
|
+
return
|
299
|
+
}
|
300
|
+
|
301
|
+
if (t.isLogicalExpression(wrapper)) {
|
302
|
+
if (t.isIdentifier(wrapper.left) && t.isMemberExpression(wrapper.right)) {
|
303
|
+
parentWrapper.elements[index].right = handlePressableFromMemberExpression(t, path, [parentWrapper.elements[index].right])
|
304
|
+
|
305
|
+
return
|
306
|
+
}
|
307
|
+
|
308
|
+
return
|
309
|
+
}
|
310
|
+
|
311
|
+
if (t.isConditionalExpression(wrapper) && t.isArrayExpression(parentWrapper)) {
|
312
|
+
if (t.isMemberExpression(wrapper.alternate) || t.isCallExpression(wrapper.alternate)) {
|
313
|
+
parentWrapper.elements[index].alternate = handlePressableFromMemberExpression(t, path, [parentWrapper.elements[index].alternate])
|
314
|
+
}
|
315
|
+
|
316
|
+
if (t.isMemberExpression(wrapper.consequent) || t.isCallExpression(wrapper.consequent)) {
|
317
|
+
parentWrapper.elements[index].consequent = handlePressableFromMemberExpression(t, path, [parentWrapper.elements[index].consequent])
|
318
|
+
}
|
319
|
+
|
320
|
+
return
|
321
|
+
}
|
322
|
+
|
323
|
+
if (t.isConditionalExpression(wrapper) && !t.isArrayExpression(parentWrapper)) {
|
324
|
+
if (t.isMemberExpression(wrapper.alternate) || t.isCallExpression(wrapper.alternate)) {
|
325
|
+
parentWrapper.alternate = handlePressableFromMemberExpression(t, path, [parentWrapper.alternate])
|
326
|
+
}
|
327
|
+
|
328
|
+
if (t.isMemberExpression(wrapper.consequent) || t.isCallExpression(wrapper.consequent)) {
|
329
|
+
parentWrapper.consequent = handlePressableFromMemberExpression(t, path, [parentWrapper.consequent])
|
330
|
+
}
|
331
|
+
|
332
|
+
return
|
333
|
+
}
|
334
|
+
|
335
|
+
const pressableArgs = t.isCallExpression(wrapper)
|
336
|
+
? wrapper.arguments
|
337
|
+
: wrapper.argument.arguments
|
338
|
+
const callee = t.isCallExpression(wrapper)
|
339
|
+
? wrapper.callee
|
340
|
+
: wrapper.argument.callee
|
341
|
+
|
342
|
+
const getBoundArgsCall = t.callExpression(
|
343
|
+
t.identifier('getBoundArgs'),
|
344
|
+
[callee]
|
345
|
+
)
|
346
|
+
const bindCall = t.callExpression(
|
347
|
+
t.memberExpression(getBoundArgsCall, t.identifier('bind')),
|
348
|
+
[t.identifier('undefined'), ...pressableArgs]
|
349
|
+
)
|
350
|
+
|
351
|
+
if (t.isCallExpression(wrapper) && t.isArrayExpression(parentWrapper)) {
|
352
|
+
parentWrapper.elements[index] = bindCall
|
353
|
+
|
354
|
+
return
|
355
|
+
}
|
356
|
+
|
357
|
+
if (t.isCallExpression(wrapper)) {
|
358
|
+
styleExpression.body = bindCall
|
359
|
+
}
|
360
|
+
}
|
361
|
+
|
362
|
+
function handlePressable(t, path, styleAttr, metadata, state) {
|
363
|
+
// add variants
|
364
|
+
if (state.file.hasVariants) {
|
365
|
+
const variants = t.jsxAttribute(
|
366
|
+
t.jsxIdentifier('variants'),
|
367
|
+
t.jsxExpressionContainer(t.identifier('__uni__variants'))
|
368
|
+
)
|
369
|
+
|
370
|
+
path.node.openingElement.attributes.push(variants)
|
371
|
+
}
|
372
|
+
|
373
|
+
// add raw C++ style as prop to be bound
|
374
|
+
path.node.openingElement.attributes.push(metadataToRawStyle(t, metadata, styleAttr.value.expression))
|
375
|
+
|
376
|
+
const styleExpression = styleAttr.value.expression
|
377
|
+
|
378
|
+
// {style.pressable}
|
379
|
+
if (t.isMemberExpression(styleExpression)) {
|
380
|
+
styleAttr.value.expression = handlePressableFromMemberExpression(t, path, metadata, true)
|
381
|
+
|
382
|
+
return
|
383
|
+
}
|
384
|
+
|
385
|
+
// {style.pressable(1, 2)}
|
386
|
+
if (t.isCallExpression(styleExpression)) {
|
387
|
+
// user already called dynamic function
|
388
|
+
const expression = t.callExpression(
|
389
|
+
t.identifier('getBoundArgs'),
|
390
|
+
[styleExpression.callee]
|
391
|
+
)
|
392
|
+
const bindCall = t.callExpression(
|
393
|
+
t.memberExpression(expression, t.identifier('bind')),
|
394
|
+
[t.identifier('undefined'), ...styleExpression.arguments]
|
395
|
+
)
|
396
|
+
|
397
|
+
path.node.openingElement.attributes = path.node.openingElement.attributes.map(attribute => {
|
398
|
+
if (attribute.name.name === "style") {
|
399
|
+
attribute.value.expression = t.arrowFunctionExpression([], bindCall)
|
400
|
+
}
|
401
|
+
|
402
|
+
return attribute
|
403
|
+
})
|
404
|
+
|
405
|
+
return
|
406
|
+
}
|
407
|
+
|
408
|
+
// {() => style.pressable(1, 2)}
|
409
|
+
if (t.isArrowFunctionExpression(styleExpression) && styleExpression.params.length === 0) {
|
410
|
+
let parentWrapper = t.isBlockStatement(styleExpression.body)
|
411
|
+
? styleExpression.body.body.find(node => t.isReturnStatement(node))
|
412
|
+
: styleExpression.body
|
413
|
+
|
414
|
+
if (t.isMemberExpression(parentWrapper)) {
|
415
|
+
return
|
416
|
+
}
|
417
|
+
|
418
|
+
if (t.isArrayExpression(parentWrapper)) {
|
419
|
+
return parentWrapper.elements.forEach((wrapper, index) => handlePressableArgs(t, path, styleExpression, metadata, parentWrapper, wrapper, index))
|
420
|
+
}
|
421
|
+
|
422
|
+
if (t.isReturnStatement(parentWrapper)) {
|
423
|
+
parentWrapper = parentWrapper.argument
|
424
|
+
|
425
|
+
return handlePressableArgs(t, path, styleExpression, metadata, parentWrapper, parentWrapper)
|
426
|
+
}
|
427
|
+
|
428
|
+
const pressableArgs = t.isCallExpression(parentWrapper)
|
429
|
+
? parentWrapper.arguments
|
430
|
+
: parentWrapper.argument.arguments
|
431
|
+
const callee = t.isCallExpression(parentWrapper)
|
432
|
+
? parentWrapper.callee
|
433
|
+
: parentWrapper.argument.callee
|
434
|
+
const getBoundArgsCall = t.callExpression(
|
435
|
+
t.identifier('getBoundArgs'),
|
436
|
+
[callee]
|
437
|
+
)
|
438
|
+
const bindCall = t.callExpression(
|
439
|
+
t.memberExpression(getBoundArgsCall, t.identifier('bind')),
|
440
|
+
[t.identifier('undefined'), ...pressableArgs]
|
441
|
+
)
|
442
|
+
|
443
|
+
if (t.isCallExpression(parentWrapper)) {
|
444
|
+
styleExpression.body = bindCall
|
445
|
+
|
446
|
+
return
|
447
|
+
}
|
448
|
+
|
449
|
+
if (parentWrapper) {
|
450
|
+
parentWrapper.argument = bindCall
|
451
|
+
}
|
452
|
+
|
453
|
+
return
|
454
|
+
}
|
455
|
+
|
456
|
+
// {state => style.pressable(state, 1, 2)}
|
457
|
+
if (t.isArrowFunctionExpression(styleExpression) && styleExpression.params.length > 0) {
|
458
|
+
// user used state with custom args we need to getBoundArgs
|
459
|
+
// detect between arrow function with body and arrow function
|
460
|
+
let parentWrapper = t.isBlockStatement(styleExpression.body)
|
461
|
+
? styleExpression.body.body.find(node => t.isReturnStatement(node))
|
462
|
+
: styleExpression.body
|
463
|
+
|
464
|
+
if (t.isArrayExpression(parentWrapper)) {
|
465
|
+
return parentWrapper.elements.forEach((wrapper, index) => handlePressableArgs(t, path, styleExpression, metadata, parentWrapper, wrapper, index))
|
466
|
+
}
|
467
|
+
|
468
|
+
if (t.isReturnStatement(parentWrapper)) {
|
469
|
+
parentWrapper = parentWrapper.argument
|
470
|
+
}
|
471
|
+
|
472
|
+
handlePressableArgs(t, path, styleExpression, metadata, parentWrapper, parentWrapper)
|
473
|
+
}
|
474
|
+
}
|
475
|
+
|
44
476
|
module.exports = {
|
45
477
|
getStyleMetadata,
|
46
|
-
getStyleAttribute
|
478
|
+
getStyleAttribute,
|
479
|
+
styleAttributeToArray,
|
480
|
+
handlePressable
|
47
481
|
}
|
package/plugin/stylesheet.js
CHANGED
@@ -14,7 +14,8 @@ const UnistyleDependency = {
|
|
14
14
|
PixelRatio: 10,
|
15
15
|
FontScale: 11,
|
16
16
|
StatusBar: 12,
|
17
|
-
NavigationBar: 13
|
17
|
+
NavigationBar: 13,
|
18
|
+
Ime: 14
|
18
19
|
}
|
19
20
|
|
20
21
|
function stringToUniqueId(str) {
|
@@ -43,7 +44,7 @@ function isUnistylesStyleSheet(t, path, state) {
|
|
43
44
|
|
44
45
|
function addStyleSheetTag(t, path, state) {
|
45
46
|
const callee = path.get('callee')
|
46
|
-
const uniqueId = stringToUniqueId(state.filename) + ++state.file.tagNumber
|
47
|
+
const uniqueId = stringToUniqueId(state.filename.replace(state.cwd, '')) + ++state.file.tagNumber
|
47
48
|
|
48
49
|
callee.container.arguments.push(t.numericLiteral(uniqueId))
|
49
50
|
}
|
@@ -100,7 +101,8 @@ function analyzeDependencies(t, state, name, unistyleObj, themeName, rtName) {
|
|
100
101
|
|
101
102
|
return
|
102
103
|
}
|
103
|
-
case '
|
104
|
+
case 'isPortrait':
|
105
|
+
case 'isLandscape': {
|
104
106
|
dependencies.push(UnistyleDependency.Orientation)
|
105
107
|
|
106
108
|
return
|
@@ -110,6 +112,11 @@ function analyzeDependencies(t, state, name, unistyleObj, themeName, rtName) {
|
|
110
112
|
|
111
113
|
return
|
112
114
|
}
|
115
|
+
case 'ime': {
|
116
|
+
dependencies.push(UnistyleDependency.Ime)
|
117
|
+
|
118
|
+
return
|
119
|
+
}
|
113
120
|
case 'insets': {
|
114
121
|
dependencies.push(UnistyleDependency.Insets)
|
115
122
|
|
@@ -0,0 +1,12 @@
|
|
1
|
+
import React, { type PropsWithChildren } from 'react'
|
2
|
+
import { useMedia } from '../hooks'
|
3
|
+
|
4
|
+
type DisplayProps = { mq: symbol } & PropsWithChildren
|
5
|
+
|
6
|
+
export const Display: React.FunctionComponent<DisplayProps> = ({ children, ...props }) => {
|
7
|
+
const { isVisible } = useMedia(props)
|
8
|
+
|
9
|
+
return isVisible
|
10
|
+
? children
|
11
|
+
: null
|
12
|
+
}
|
@@ -0,0 +1,12 @@
|
|
1
|
+
import React, { type PropsWithChildren } from 'react'
|
2
|
+
import { useMedia } from '../hooks'
|
3
|
+
|
4
|
+
type HideProps = { mq: symbol } & PropsWithChildren
|
5
|
+
|
6
|
+
export const Hide: React.FunctionComponent<HideProps> = ({ children, ...props }) => {
|
7
|
+
const { isVisible } = useMedia(props)
|
8
|
+
|
9
|
+
return !isVisible
|
10
|
+
? children
|
11
|
+
: null
|
12
|
+
}
|
@@ -0,0 +1,89 @@
|
|
1
|
+
import React, { forwardRef, useRef } from 'react'
|
2
|
+
import { Pressable as NativePressableReactNative, type PressableStateCallbackType } from 'react-native'
|
3
|
+
import type { PressableProps as Props, View } from 'react-native'
|
4
|
+
import { UnistylesShadowRegistry } from '../specs'
|
5
|
+
import { getId } from '../core'
|
6
|
+
|
7
|
+
type PressableProps = Props & {
|
8
|
+
rawStyle?: Array<any> | ((event: PressableStateCallbackType) => Array<any>)
|
9
|
+
variants?: Record<string, string | boolean>
|
10
|
+
}
|
11
|
+
|
12
|
+
export const Pressable = forwardRef<View, PressableProps>(({ variants, style, rawStyle, ...props }, passedRef) => {
|
13
|
+
const storedRef = useRef<View | null>()
|
14
|
+
|
15
|
+
return (
|
16
|
+
<NativePressableReactNative
|
17
|
+
{...props}
|
18
|
+
ref={ref => {
|
19
|
+
storedRef.current = ref
|
20
|
+
const styleResult = typeof style === 'function'
|
21
|
+
? style({ pressed: false })
|
22
|
+
: style
|
23
|
+
const fnArgs = typeof styleResult === 'function'
|
24
|
+
// @ts-expect-error - this is hidden from TS
|
25
|
+
? styleResult.getBoundArgs()
|
26
|
+
: Array.isArray(styleResult)
|
27
|
+
? styleResult
|
28
|
+
// @ts-expect-error - this is hidden from TS
|
29
|
+
.map(style => typeof style === 'function' ? style.getBoundArgs() : [])
|
30
|
+
: []
|
31
|
+
|
32
|
+
if (typeof passedRef === 'object' && passedRef !== null) {
|
33
|
+
passedRef.current = ref
|
34
|
+
}
|
35
|
+
|
36
|
+
const returnFn = typeof passedRef === 'function'
|
37
|
+
? passedRef(ref)
|
38
|
+
: () => {}
|
39
|
+
const unistyles = typeof rawStyle === 'function'
|
40
|
+
? rawStyle({ pressed: false })
|
41
|
+
: (rawStyle ?? [])
|
42
|
+
|
43
|
+
// @ts-expect-error - this is hidden from TS
|
44
|
+
UnistylesShadowRegistry.add(ref, unistyles, variants, Array.isArray(styleResult) ? fnArgs : [fnArgs])
|
45
|
+
|
46
|
+
return () => {
|
47
|
+
// @ts-expect-error - this is hidden from TS
|
48
|
+
UnistylesShadowRegistry.remove(ref)
|
49
|
+
|
50
|
+
if (typeof returnFn === 'function') {
|
51
|
+
returnFn()
|
52
|
+
}
|
53
|
+
}
|
54
|
+
}}
|
55
|
+
style={state => {
|
56
|
+
const styleResult = typeof style === 'function'
|
57
|
+
? style(state)
|
58
|
+
: style
|
59
|
+
const fnArgs = typeof styleResult === 'function'
|
60
|
+
// @ts-expect-error - this is hidden from TS
|
61
|
+
? styleResult.getBoundArgs()
|
62
|
+
: Array.isArray(styleResult)
|
63
|
+
? styleResult
|
64
|
+
// @ts-expect-error - this is hidden from TS
|
65
|
+
.map(style => typeof style === 'function' ? style.getBoundArgs() : [])
|
66
|
+
: []
|
67
|
+
const pressId = getId()
|
68
|
+
const unistyles = typeof rawStyle === 'function'
|
69
|
+
? rawStyle(state)
|
70
|
+
: (rawStyle ?? [])
|
71
|
+
|
72
|
+
if (storedRef.current) {
|
73
|
+
// @ts-expect-error - this is hidden from TS
|
74
|
+
UnistylesShadowRegistry.remove(storedRef.current)
|
75
|
+
// @ts-expect-error - this is hidden from TS
|
76
|
+
UnistylesShadowRegistry.add(storedRef.current, unistyles, variants, Array.isArray(styleResult) ? fnArgs : [fnArgs], pressId)
|
77
|
+
}
|
78
|
+
|
79
|
+
return typeof styleResult === 'function'
|
80
|
+
// @ts-expect-error - this is hidden from TS
|
81
|
+
? styleResult(pressId)
|
82
|
+
: Array.isArray(styleResult)
|
83
|
+
// @ts-expect-error - this is hidden from TS
|
84
|
+
? styleResult.map(style => typeof style === 'function' ? style(pressId) : style)
|
85
|
+
: styleResult
|
86
|
+
}}
|
87
|
+
/>
|
88
|
+
)
|
89
|
+
})
|