react-native-unistyles 3.0.0-alpha.3 → 3.0.0-alpha.31
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/README.md +7 -0
- package/android/CMakeLists.txt +12 -21
- package/cxx/common/Constants.h +3 -0
- package/cxx/common/Helpers.h +118 -5
- package/cxx/core/HostStyle.cpp +12 -8
- package/cxx/core/HostStyle.h +4 -0
- package/cxx/core/StyleSheet.h +0 -2
- package/cxx/core/StyleSheetRegistry.cpp +10 -13
- package/cxx/core/StyleSheetRegistry.h +4 -4
- package/cxx/core/Unistyle.h +7 -10
- package/cxx/core/UnistyleData.h +23 -0
- package/cxx/core/UnistyleWrapper.h +61 -12
- package/cxx/core/UnistylesCommitHook.cpp +14 -15
- 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 +25 -0
- package/cxx/core/UnistylesRegistry.cpp +104 -89
- package/cxx/core/UnistylesRegistry.h +16 -13
- package/cxx/core/UnistylesState.cpp +29 -11
- package/cxx/core/UnistylesState.h +5 -2
- package/cxx/hybridObjects/HybridShadowRegistry.cpp +15 -13
- package/cxx/hybridObjects/HybridStyleSheet.cpp +136 -46
- package/cxx/hybridObjects/HybridStyleSheet.h +23 -5
- package/cxx/hybridObjects/HybridUnistylesRuntime.cpp +51 -8
- package/cxx/hybridObjects/HybridUnistylesRuntime.h +12 -1
- package/cxx/parser/Parser.cpp +236 -165
- package/cxx/parser/Parser.h +11 -14
- package/cxx/shadowTree/ShadowLeafUpdate.h +2 -1
- package/cxx/shadowTree/ShadowTrafficController.h +60 -0
- package/cxx/shadowTree/ShadowTreeManager.cpp +17 -17
- package/cxx/shadowTree/ShadowTreeManager.h +3 -2
- package/ios/Equatable.swift +2 -1
- package/ios/NativePlatform+ios.swift +21 -5
- package/ios/NativePlatform+keyboard.swift +83 -0
- package/ios/NativePlatformListener+ios.swift +36 -23
- package/ios/Unistyles.h +1 -0
- package/ios/UnistylesModuleOnLoad.h +13 -2
- package/ios/UnistylesModuleOnLoad.mm +9 -1
- package/lib/commonjs/core/createUnistylesComponent.js +18 -0
- package/lib/commonjs/core/createUnistylesComponent.js.map +1 -0
- package/lib/commonjs/core/createUnistylesComponent.native.js +46 -0
- package/lib/commonjs/core/createUnistylesComponent.native.js.map +1 -0
- package/lib/commonjs/core/index.js +27 -0
- package/lib/commonjs/core/index.js.map +1 -0
- package/lib/commonjs/core/useBreakpoint.js +22 -0
- package/lib/commonjs/core/useBreakpoint.js.map +1 -0
- package/lib/commonjs/core/useBreakpoint.native.js +24 -0
- package/lib/commonjs/core/useBreakpoint.native.js.map +1 -0
- package/lib/commonjs/core/useTheme.js +22 -0
- package/lib/commonjs/core/useTheme.js.map +1 -0
- package/lib/commonjs/core/useTheme.native.js +24 -0
- package/lib/commonjs/core/useTheme.native.js.map +1 -0
- package/lib/commonjs/global.js +3 -0
- package/lib/commonjs/index.js +23 -11
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/mq.js +1 -4
- package/lib/commonjs/mq.js.map +2 -1
- package/lib/commonjs/specs/NativePlatform/NativePlatform.nitro.js +1 -0
- package/lib/commonjs/specs/NativePlatform/NativePlatform.nitro.js.map +2 -1
- package/lib/commonjs/specs/NativePlatform/index.js.map +1 -1
- package/lib/commonjs/specs/NavigtionBar/index.js +1 -1
- package/lib/commonjs/specs/NavigtionBar/index.js.map +1 -1
- package/lib/commonjs/specs/ShadowRegistry/index.js +7 -6
- package/lib/commonjs/specs/ShadowRegistry/index.js.map +1 -1
- package/lib/commonjs/specs/ShadowRegistry/types.js +3 -0
- package/lib/commonjs/specs/StatusBar/index.js +1 -1
- package/lib/commonjs/specs/StatusBar/index.js.map +1 -1
- package/lib/commonjs/specs/StyleSheet/UnistylesStyleSheet.nitro.js +2 -4
- package/lib/commonjs/specs/StyleSheet/UnistylesStyleSheet.nitro.js.map +1 -1
- package/lib/commonjs/specs/StyleSheet/index.js +1 -0
- package/lib/commonjs/specs/StyleSheet/index.js.map +2 -1
- package/lib/commonjs/specs/UnistylesRuntime/index.js +1 -1
- 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 +1 -1
- package/lib/commonjs/specs/index.web.js.map +2 -1
- package/lib/commonjs/specs/types.js +10 -10
- package/lib/commonjs/specs/types.js.map +1 -0
- package/lib/commonjs/types/accessibility.js +1 -1
- package/lib/commonjs/types/accessibility.js.map +1 -0
- package/lib/commonjs/types/common.js +3 -0
- package/lib/commonjs/types/stylesheet.js.map +1 -1
- package/lib/commonjs/types/variants.js.map +1 -1
- package/lib/commonjs/web/convert/boxShadow.js +74 -0
- package/lib/commonjs/web/convert/boxShadow.js.map +2 -0
- package/lib/commonjs/web/convert/index.js +68 -0
- package/lib/commonjs/web/convert/index.js.map +2 -0
- package/lib/commonjs/web/convert/module.d.js +2 -0
- package/lib/commonjs/web/convert/module.d.js.map +1 -0
- package/lib/commonjs/web/convert/pseudo.js +10 -0
- package/lib/commonjs/web/convert/pseudo.js.map +2 -0
- package/lib/commonjs/web/convert/shadow.js +64 -0
- package/lib/commonjs/web/convert/shadow.js.map +1 -0
- package/lib/commonjs/web/convert/style.js +93 -0
- package/lib/commonjs/web/convert/style.js.map +2 -0
- package/lib/commonjs/web/convert/textShadow.js +73 -0
- package/lib/commonjs/web/convert/textShadow.js.map +1 -0
- package/lib/commonjs/web/convert/transform.js +72 -0
- package/lib/commonjs/web/convert/transform.js.map +2 -0
- package/lib/commonjs/web/convert/types.js +9 -0
- package/lib/commonjs/web/convert/types.js.map +1 -0
- package/lib/commonjs/web/convert/utils.js +54 -0
- package/lib/commonjs/web/convert/utils.js.map +2 -0
- package/lib/commonjs/web/create.js +48 -0
- package/lib/commonjs/web/create.js.map +1 -0
- package/lib/commonjs/web/index.js +60 -0
- package/lib/commonjs/web/index.js.map +1 -0
- package/lib/commonjs/web/listener.js +35 -0
- package/lib/commonjs/web/listener.js.map +1 -0
- package/lib/commonjs/web/mock.js +28 -0
- package/lib/commonjs/web/mock.js.map +1 -0
- package/lib/commonjs/web/mq.js +23 -0
- package/lib/commonjs/web/mq.js.map +1 -0
- package/lib/commonjs/web/registry.js +183 -0
- package/lib/commonjs/web/registry.js.map +2 -0
- package/lib/commonjs/web/runtime.js +167 -0
- package/lib/commonjs/web/runtime.js.map +2 -0
- package/lib/commonjs/web/shadowRegistry.js +114 -0
- package/lib/commonjs/web/shadowRegistry.js.map +2 -0
- package/lib/commonjs/web/state.js +69 -0
- package/lib/commonjs/web/state.js.map +2 -0
- package/lib/commonjs/web/utils/common.js +92 -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 +82 -0
- package/lib/commonjs/web/utils/unistyle.js.map +2 -0
- package/lib/commonjs/web/variants/getVariants.js +39 -0
- package/lib/commonjs/web/variants/getVariants.js.map +2 -0
- package/lib/commonjs/web/variants/index.js +28 -0
- package/lib/commonjs/web/variants/index.js.map +1 -0
- package/lib/commonjs/web/variants/useVariants.js +58 -0
- package/lib/commonjs/web/variants/useVariants.js.map +2 -0
- package/lib/module/common.js.map +1 -1
- package/lib/module/core/createUnistylesComponent.js +12 -0
- package/lib/module/core/createUnistylesComponent.js.map +1 -0
- package/lib/module/core/createUnistylesComponent.native.js +39 -0
- package/lib/module/core/createUnistylesComponent.native.js.map +1 -0
- package/lib/module/core/index.js +6 -0
- package/lib/module/core/index.js.map +1 -0
- package/lib/module/core/useBreakpoint.js +17 -0
- package/lib/module/core/useBreakpoint.js.map +1 -0
- package/lib/module/core/useBreakpoint.native.js +19 -0
- package/lib/module/core/useBreakpoint.native.js.map +2 -0
- package/lib/module/core/useTheme.js +17 -0
- package/lib/module/core/useTheme.js.map +1 -0
- package/lib/module/core/useTheme.native.js +19 -0
- package/lib/module/core/useTheme.native.js.map +1 -0
- package/lib/module/global.js +1 -1
- package/lib/module/global.js.map +1 -0
- package/lib/module/index.js +1 -9
- package/lib/module/index.js.map +1 -1
- package/lib/module/mq.js +1 -4
- package/lib/module/mq.js.map +2 -1
- package/lib/module/specs/NativePlatform/NativePlatform.nitro.js +1 -0
- package/lib/module/specs/NativePlatform/NativePlatform.nitro.js.map +2 -1
- package/lib/module/specs/NavigtionBar/UnistylesNavigationBar.nitro.js.map +1 -1
- package/lib/module/specs/NavigtionBar/index.js +1 -1
- package/lib/module/specs/NavigtionBar/index.js.map +1 -1
- package/lib/module/specs/ShadowRegistry/ShadowRegistry.nitro.js.map +1 -0
- package/lib/module/specs/ShadowRegistry/index.js +7 -6
- package/lib/module/specs/ShadowRegistry/index.js.map +1 -1
- package/lib/module/specs/ShadowRegistry/types.js +2 -0
- package/lib/module/specs/ShadowRegistry/types.js.map +1 -1
- package/lib/module/specs/StatusBar/UnistylesStatusBar.nitro.js.map +1 -0
- package/lib/module/specs/StatusBar/index.js +1 -1
- package/lib/module/specs/StatusBar/index.js.map +1 -1
- package/lib/module/specs/StyleSheet/UnistylesStyleSheet.nitro.js +1 -1
- package/lib/module/specs/StyleSheet/UnistylesStyleSheet.nitro.js.map +1 -1
- package/lib/module/specs/StyleSheet/index.js +1 -0
- package/lib/module/specs/StyleSheet/index.js.map +2 -1
- package/lib/module/specs/UnistylesRuntime/UnistylesRuntime.nitro.js.map +1 -1
- package/lib/module/specs/UnistylesRuntime/index.js +1 -1
- package/lib/module/specs/UnistylesRuntime/index.js.map +2 -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 +1 -1
- package/lib/module/specs/index.web.js.map +2 -1
- package/lib/module/specs/types.js.map +1 -0
- package/lib/module/types/accessibility.js +1 -1
- package/lib/module/types/accessibility.js.map +1 -0
- package/lib/module/types/breakpoints.js.map +1 -1
- package/lib/module/types/common.js +1 -1
- package/lib/module/types/common.js.map +1 -0
- package/lib/module/types/core.js.map +1 -0
- package/lib/module/types/index.js.map +2 -1
- package/lib/module/types/stylesheet.js.map +1 -1
- package/lib/module/types/variants.js.map +1 -0
- package/lib/module/web/convert/boxShadow.js +72 -0
- package/lib/module/web/convert/boxShadow.js.map +1 -0
- package/lib/module/web/convert/index.js +69 -0
- package/lib/module/web/convert/index.js.map +1 -0
- package/lib/module/web/convert/module.d.js +2 -0
- package/lib/module/web/convert/module.d.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.js +63 -0
- package/lib/module/web/convert/shadow.js.map +1 -0
- package/lib/module/web/convert/style.js +88 -0
- package/lib/module/web/convert/style.js.map +1 -0
- package/lib/module/web/convert/textShadow.js +65 -0
- package/lib/module/web/convert/textShadow.js.map +2 -0
- package/lib/module/web/convert/transform.js +67 -0
- package/lib/module/web/convert/transform.js.map +1 -0
- package/lib/module/web/convert/types.js +5 -0
- package/lib/module/web/convert/types.js.map +1 -0
- package/lib/module/web/convert/utils.js +42 -0
- package/lib/module/web/convert/utils.js.map +2 -0
- package/lib/module/web/create.js +39 -0
- package/lib/module/web/create.js.map +2 -0
- package/lib/module/web/index.js +25 -0
- package/lib/module/web/index.js.map +1 -0
- package/lib/module/web/listener.js +31 -0
- package/lib/module/web/listener.js.map +2 -0
- package/lib/module/web/mock.js +24 -0
- package/lib/module/web/mock.js.map +1 -0
- package/lib/module/web/mq.js +17 -0
- package/lib/module/web/mq.js.map +1 -0
- package/lib/module/web/registry.js +179 -0
- package/lib/module/web/registry.js.map +1 -0
- package/lib/module/web/runtime.js +163 -0
- package/lib/module/web/runtime.js.map +1 -0
- package/lib/module/web/shadowRegistry.js +118 -0
- package/lib/module/web/shadowRegistry.js.map +1 -0
- package/lib/module/web/state.js +65 -0
- package/lib/module/web/state.js.map +2 -0
- package/lib/module/web/utils/common.js +78 -0
- package/lib/module/web/utils/common.js.map +2 -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 +69 -0
- package/lib/module/web/utils/unistyle.js.map +2 -0
- package/lib/module/web/variants/getVariants.js +34 -0
- package/lib/module/web/variants/getVariants.js.map +1 -0
- package/lib/module/web/variants/index.js +5 -0
- package/lib/module/web/variants/index.js.map +1 -0
- package/lib/module/web/variants/useVariants.js +53 -0
- package/lib/module/web/variants/useVariants.js.map +1 -0
- package/lib/typescript/src/core/createUnistylesComponent.d.ts +6 -0
- package/lib/typescript/src/core/createUnistylesComponent.d.ts.map +1 -0
- package/lib/typescript/src/core/createUnistylesComponent.native.d.ts +6 -0
- package/lib/typescript/src/core/createUnistylesComponent.native.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/core/useBreakpoint.d.ts +2 -0
- package/lib/typescript/src/core/useBreakpoint.d.ts.map +1 -0
- package/lib/typescript/src/core/useBreakpoint.native.d.ts +2 -0
- package/lib/typescript/src/core/useBreakpoint.native.d.ts.map +1 -0
- package/lib/typescript/src/core/useTheme.d.ts +3 -0
- package/lib/typescript/src/core/useTheme.d.ts.map +1 -0
- package/lib/typescript/src/core/useTheme.native.d.ts +3 -0
- package/lib/typescript/src/core/useTheme.native.d.ts.map +1 -0
- package/lib/typescript/src/index.d.ts +2 -0
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/specs/NativePlatform/NativePlatform.nitro.d.ts +6 -2
- package/lib/typescript/src/specs/NativePlatform/NativePlatform.nitro.d.ts.map +1 -1
- package/lib/typescript/src/specs/NavigtionBar/index.d.ts +5 -0
- package/lib/typescript/src/specs/NavigtionBar/index.d.ts.map +1 -1
- package/lib/typescript/src/specs/ShadowRegistry/index.d.ts +3 -3
- package/lib/typescript/src/specs/ShadowRegistry/index.d.ts.map +1 -1
- package/lib/typescript/src/specs/StatusBar/index.d.ts +5 -0
- 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 +3 -1
- package/lib/typescript/src/specs/StyleSheet/index.d.ts.map +1 -1
- package/lib/typescript/src/specs/UnistylesRuntime/UnistylesRuntime.nitro.d.ts +0 -1
- package/lib/typescript/src/specs/UnistylesRuntime/UnistylesRuntime.nitro.d.ts.map +1 -1
- package/lib/typescript/src/specs/UnistylesRuntime/index.d.ts +3 -1
- 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 +1 -1
- 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/index.d.ts +1 -1
- 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/web/convert/boxShadow.d.ts +8 -0
- package/lib/typescript/src/web/convert/boxShadow.d.ts.map +1 -0
- package/lib/typescript/src/web/convert/index.d.ts +3 -0
- package/lib/typescript/src/web/convert/index.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.d.ts.map +1 -0
- package/lib/typescript/src/web/convert/style.d.ts +2 -0
- package/lib/typescript/src/web/convert/style.d.ts.map +1 -0
- package/lib/typescript/src/web/convert/textShadow.d.ts +8 -0
- package/lib/typescript/src/web/convert/textShadow.d.ts.map +1 -0
- package/lib/typescript/src/web/convert/transform.d.ts +4 -0
- package/lib/typescript/src/web/convert/transform.d.ts.map +1 -0
- package/lib/typescript/{web → src/web}/convert/types.d.ts +1 -1
- package/lib/typescript/src/web/convert/types.d.ts.map +1 -0
- package/lib/typescript/src/web/convert/utils.d.ts.map +1 -0
- package/lib/typescript/src/web/create.d.ts +1443 -0
- package/lib/typescript/{web → src/web}/create.d.ts.map +1 -1
- package/lib/typescript/src/web/index.d.ts +1459 -0
- package/lib/typescript/{web → src/web}/index.d.ts.map +1 -1
- package/lib/typescript/{web/listener → src/web}/listener.d.ts +3 -2
- package/lib/typescript/src/web/listener.d.ts.map +1 -0
- package/lib/typescript/src/web/mock.d.ts +5 -0
- package/lib/typescript/src/web/mock.d.ts.map +1 -0
- package/lib/typescript/src/web/mq.d.ts +8 -0
- package/lib/typescript/src/web/mq.d.ts.map +1 -0
- package/lib/typescript/src/web/registry.d.ts +28 -0
- package/lib/typescript/src/web/registry.d.ts.map +1 -0
- package/lib/typescript/{web → src/web}/runtime.d.ts +9 -9
- package/lib/typescript/src/web/runtime.d.ts.map +1 -0
- package/lib/typescript/src/web/shadowRegistry.d.ts +16 -0
- package/lib/typescript/src/web/shadowRegistry.d.ts.map +1 -0
- package/lib/typescript/src/web/state.d.ts +18 -0
- package/lib/typescript/src/web/state.d.ts.map +1 -0
- package/lib/typescript/{web/utils.d.ts → src/web/utils/common.d.ts} +8 -9
- 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 +20 -0
- package/lib/typescript/src/web/utils/unistyle.d.ts.map +1 -0
- package/lib/typescript/src/web/variants/getVariants.d.ts +3 -0
- package/lib/typescript/src/web/variants/getVariants.d.ts.map +1 -0
- package/lib/typescript/src/web/variants/index.d.ts +3 -0
- package/lib/typescript/src/web/variants/index.d.ts.map +1 -0
- package/lib/typescript/src/web/variants/useVariants.d.ts +3 -0
- package/lib/typescript/src/web/variants/useVariants.d.ts.map +1 -0
- package/nitrogen/generated/android/c++/JColorScheme.hpp +1 -1
- package/nitrogen/generated/android/c++/JFunc_void.hpp +48 -0
- package/nitrogen/generated/android/c++/JFunc_void_std__vector_UnistyleDependency_.hpp +8 -8
- package/nitrogen/generated/android/c++/JHybridNativePlatformSpec.cpp +31 -22
- package/nitrogen/generated/android/c++/JHybridNativePlatformSpec.hpp +8 -3
- package/nitrogen/generated/android/c++/JOrientation.hpp +1 -1
- package/nitrogen/generated/android/c++/JUnistyleDependency.hpp +4 -1
- package/nitrogen/generated/android/c++/JUnistylesNativeMiniRuntime.hpp +9 -7
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/unistyles/Func_void.kt +45 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/unistyles/HybridNativePlatformSpec.kt +25 -5
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/unistyles/UnistyleDependency.kt +2 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/unistyles/UnistylesNativeMiniRuntime.kt +2 -1
- package/nitrogen/generated/android/unistyles+autolinking.cmake +13 -1
- package/nitrogen/generated/android/{UnistylesOnLoad.cpp → unistylesOnLoad.cpp} +4 -2
- package/nitrogen/generated/android/{UnistylesOnLoad.hpp → unistylesOnLoad.hpp} +1 -1
- package/nitrogen/generated/ios/Unistyles+autolinking.rb +5 -3
- package/nitrogen/generated/ios/Unistyles-Swift-Cxx-Bridge.cpp +25 -0
- package/nitrogen/generated/ios/Unistyles-Swift-Cxx-Bridge.hpp +53 -31
- package/nitrogen/generated/ios/Unistyles-Swift-Cxx-Umbrella.hpp +0 -29
- package/nitrogen/generated/ios/c++/HybridNativePlatformSpecSwift.hpp +7 -1
- package/nitrogen/generated/ios/swift/HybridNativePlatformSpec.swift +3 -13
- package/nitrogen/generated/ios/swift/HybridNativePlatformSpecCxx.swift +167 -104
- 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 -0
- package/nitrogen/generated/shared/c++/HybridNativePlatformSpec.hpp +5 -0
- package/nitrogen/generated/shared/c++/HybridUnistylesNavigationBarSpec.hpp +3 -0
- package/nitrogen/generated/shared/c++/HybridUnistylesRuntimeSpec.hpp +3 -0
- package/nitrogen/generated/shared/c++/HybridUnistylesShadowRegistrySpec.hpp +3 -0
- package/nitrogen/generated/shared/c++/HybridUnistylesStatusBarSpec.hpp +3 -0
- 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 +18 -30
- package/plugin/common.js +12 -1
- package/plugin/index.js +110 -23
- package/plugin/ref.js +64 -13
- package/plugin/style.js +82 -22
- package/plugin/stylesheet.js +53 -3
- package/plugin/variants.js +33 -0
- package/src/common.js +4 -0
- package/src/core/createUnistylesComponent.js +6 -0
- package/src/core/createUnistylesComponent.native.js +31 -0
- package/src/core/createUnistylesComponent.native.tsx +44 -0
- package/src/core/createUnistylesComponent.tsx +10 -0
- package/src/core/index.js +3 -0
- package/src/core/index.ts +3 -0
- package/src/core/useBreakpoint.js +14 -0
- package/src/core/useBreakpoint.native.js +16 -0
- package/src/core/useBreakpoint.native.ts +21 -0
- package/src/core/useBreakpoint.ts +18 -0
- package/src/core/useTheme.js +14 -0
- package/src/core/useTheme.native.js +16 -0
- package/src/core/useTheme.native.ts +22 -0
- package/src/core/useTheme.ts +19 -0
- package/src/global.js +1 -0
- package/src/index.js +3 -0
- package/src/index.ts +2 -12
- package/src/mq.js +38 -0
- package/src/specs/NativePlatform/NativePlatform.nitro.js +19 -0
- package/src/specs/NativePlatform/NativePlatform.nitro.ts +7 -3
- package/src/specs/NativePlatform/index.js +1 -0
- package/src/specs/NavigtionBar/UnistylesNavigationBar.nitro.js +1 -0
- package/src/specs/NavigtionBar/index.js +9 -0
- package/src/specs/NavigtionBar/index.ts +6 -1
- package/src/specs/ShadowRegistry/ShadowRegistry.nitro.js +1 -0
- package/src/specs/ShadowRegistry/index.js +26 -0
- package/src/specs/ShadowRegistry/index.ts +10 -9
- package/src/specs/ShadowRegistry/types.js +1 -0
- package/src/specs/StatusBar/UnistylesStatusBar.nitro.js +1 -0
- package/src/specs/StatusBar/index.js +25 -0
- package/src/specs/StatusBar/index.ts +6 -1
- package/src/specs/StyleSheet/UnistylesStyleSheet.nitro.js +1 -0
- package/src/specs/StyleSheet/UnistylesStyleSheet.nitro.ts +4 -1
- package/src/specs/StyleSheet/index.js +13 -0
- package/src/specs/StyleSheet/index.ts +6 -1
- package/src/specs/TurboUnistyles/NativeTurboUnistyles.js +2 -0
- package/src/specs/TurboUnistyles/index.js +1 -0
- package/src/specs/UnistylesRuntime/UnistylesRuntime.nitro.js +1 -0
- package/src/specs/UnistylesRuntime/UnistylesRuntime.nitro.ts +0 -1
- package/src/specs/UnistylesRuntime/index.js +20 -0
- package/src/specs/UnistylesRuntime/index.ts +4 -2
- package/src/specs/index.js +8 -0
- package/src/specs/index.ts +6 -2
- package/src/specs/index.web.js +2 -0
- package/src/specs/index.web.ts +1 -1
- package/src/specs/types.js +17 -0
- package/src/types/accessibility.js +30 -0
- package/src/types/breakpoints.js +1 -0
- package/src/types/breakpoints.ts +25 -13
- package/src/types/common.js +1 -0
- package/src/types/core.js +1 -0
- package/src/types/index.js +1 -0
- package/src/types/index.ts +1 -1
- package/src/types/stylesheet.js +2 -0
- package/src/types/stylesheet.ts +7 -5
- package/src/types/variants.js +1 -0
- package/src/types/variants.ts +7 -1
- package/src/web/convert/boxShadow.js +59 -0
- package/{web → src/web}/convert/boxShadow.ts +14 -15
- package/src/web/convert/index.js +56 -0
- package/{web → src/web}/convert/index.ts +8 -15
- package/src/web/convert/pseudo.js +131 -0
- package/src/web/convert/pseudo.ts +137 -0
- package/src/web/convert/shadow.js +50 -0
- package/src/web/convert/style.js +137 -0
- package/{web → src/web}/convert/style.ts +61 -10
- package/src/web/convert/textShadow.js +56 -0
- package/{web → src/web}/convert/textShadow.ts +13 -14
- package/src/web/convert/transform.js +65 -0
- package/{web → src/web}/convert/transform.ts +7 -8
- package/src/web/convert/types.js +2 -0
- package/{web → src/web}/convert/types.ts +1 -1
- package/src/web/convert/utils.js +39 -0
- package/src/web/create.js +36 -0
- package/src/web/create.ts +47 -0
- package/src/web/index.js +22 -0
- package/{web → src/web}/index.ts +3 -2
- package/src/web/listener.js +26 -0
- package/{web/listener → src/web}/listener.ts +3 -3
- package/src/web/mock.js +21 -0
- package/{web → src/web}/mock.ts +2 -12
- package/src/web/mq.js +14 -0
- package/{web → src/web}/mq.ts +1 -3
- package/src/web/registry.js +165 -0
- package/src/web/registry.ts +236 -0
- package/src/web/runtime.js +160 -0
- package/{web → src/web}/runtime.ts +21 -18
- package/src/web/shadowRegistry.js +96 -0
- package/src/web/shadowRegistry.ts +121 -0
- package/src/web/state.js +68 -0
- package/src/web/state.ts +94 -0
- package/src/web/utils/common.js +79 -0
- package/{web/utils.ts → src/web/utils/common.ts} +48 -36
- package/src/web/utils/index.js +2 -0
- package/src/web/utils/index.ts +2 -0
- package/src/web/utils/unistyle.js +72 -0
- package/src/web/utils/unistyle.ts +104 -0
- package/src/web/variants/getVariants.js +26 -0
- package/src/web/variants/getVariants.ts +42 -0
- package/src/web/variants/index.js +2 -0
- package/src/web/variants/index.ts +2 -0
- package/src/web/variants/useVariants.js +50 -0
- package/src/web/variants/useVariants.ts +65 -0
- package/lib/typescript/example/App.d.ts +0 -4
- package/lib/typescript/example/App.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/web/convert/boxShadow.d.ts +0 -3
- package/lib/typescript/web/convert/boxShadow.d.ts.map +0 -1
- package/lib/typescript/web/convert/breakpoint.d.ts +0 -3
- package/lib/typescript/web/convert/breakpoint.d.ts.map +0 -1
- package/lib/typescript/web/convert/index.d.ts +0 -4
- package/lib/typescript/web/convert/index.d.ts.map +0 -1
- package/lib/typescript/web/convert/shadow.d.ts.map +0 -1
- package/lib/typescript/web/convert/style.d.ts +0 -3
- package/lib/typescript/web/convert/style.d.ts.map +0 -1
- package/lib/typescript/web/convert/textShadow.d.ts +0 -3
- package/lib/typescript/web/convert/textShadow.d.ts.map +0 -1
- package/lib/typescript/web/convert/transform.d.ts +0 -5
- package/lib/typescript/web/convert/transform.d.ts.map +0 -1
- package/lib/typescript/web/convert/types.d.ts.map +0 -1
- package/lib/typescript/web/convert/utils.d.ts.map +0 -1
- package/lib/typescript/web/create.d.ts +0 -2449
- package/lib/typescript/web/index.d.ts +0 -2464
- package/lib/typescript/web/listener/index.d.ts +0 -2
- package/lib/typescript/web/listener/index.d.ts.map +0 -1
- package/lib/typescript/web/listener/listener.d.ts.map +0 -1
- package/lib/typescript/web/mock.d.ts +0 -14
- package/lib/typescript/web/mock.d.ts.map +0 -1
- package/lib/typescript/web/mq.d.ts +0 -4
- package/lib/typescript/web/mq.d.ts.map +0 -1
- package/lib/typescript/web/pseudo.d.ts +0 -4
- package/lib/typescript/web/pseudo.d.ts.map +0 -1
- package/lib/typescript/web/registry.d.ts +0 -12
- package/lib/typescript/web/registry.d.ts.map +0 -1
- package/lib/typescript/web/runtime.d.ts.map +0 -1
- package/lib/typescript/web/state.d.ts +0 -24
- package/lib/typescript/web/state.d.ts.map +0 -1
- package/lib/typescript/web/useVariants.d.ts +0 -3
- package/lib/typescript/web/useVariants.d.ts.map +0 -1
- package/lib/typescript/web/utils.d.ts.map +0 -1
- package/plugin/__tests__/dependencies.spec.js +0 -360
- package/plugin/__tests__/ref.spec.js +0 -991
- package/plugin/__tests__/stylesheet.spec.js +0 -396
- package/web/convert/breakpoint.ts +0 -21
- package/web/create.ts +0 -102
- package/web/listener/index.ts +0 -1
- package/web/pseudo.ts +0 -11
- package/web/registry.ts +0 -41
- package/web/state.ts +0 -148
- package/web/useVariants.ts +0 -99
- /package/lib/typescript/{web → src/web}/convert/shadow.d.ts +0 -0
- /package/lib/typescript/{web → src/web}/convert/utils.d.ts +0 -0
- /package/nitrogen/generated/android/{UnistylesOnLoad.kt → unistylesOnLoad.kt} +0 -0
- /package/{web → src/web}/convert/module.d.ts +0 -0
- /package/{web → src/web}/convert/shadow.ts +0 -0
- /package/{web → src/web}/convert/utils.ts +0 -0
package/cxx/parser/Parser.cpp
CHANGED
@@ -11,16 +11,16 @@ void parser::Parser::buildUnistyles(jsi::Runtime& rt, std::shared_ptr<StyleSheet
|
|
11
11
|
jsi::Object unwrappedStyleSheet = this->unwrapStyleSheet(rt, styleSheet);
|
12
12
|
|
13
13
|
helpers::enumerateJSIObject(rt, unwrappedStyleSheet, [&](const std::string& styleKey, jsi::Value& propertyValue){
|
14
|
-
helpers::assertThat(rt, propertyValue.isObject(), "
|
14
|
+
helpers::assertThat(rt, propertyValue.isObject(), "Unistyles: Style with name '" + styleKey + "' is not a function or object.");
|
15
15
|
|
16
16
|
jsi::Object styleValue = propertyValue.asObject(rt);
|
17
17
|
|
18
|
-
|
19
18
|
if (styleValue.isFunction(rt)) {
|
20
19
|
styleSheet->unistyles[styleKey] = std::make_shared<UnistyleDynamicFunction>(
|
21
20
|
UnistyleType::DynamicFunction,
|
22
21
|
styleKey,
|
23
|
-
styleValue
|
22
|
+
styleValue,
|
23
|
+
styleSheet
|
24
24
|
);
|
25
25
|
|
26
26
|
return;
|
@@ -29,7 +29,8 @@ void parser::Parser::buildUnistyles(jsi::Runtime& rt, std::shared_ptr<StyleSheet
|
|
29
29
|
styleSheet->unistyles[styleKey] = std::make_shared<Unistyle>(
|
30
30
|
UnistyleType::Object,
|
31
31
|
styleKey,
|
32
|
-
styleValue
|
32
|
+
styleValue,
|
33
|
+
styleSheet
|
33
34
|
);
|
34
35
|
});
|
35
36
|
}
|
@@ -45,7 +46,7 @@ jsi::Object parser::Parser::unwrapStyleSheet(jsi::Runtime& rt, std::shared_ptr<S
|
|
45
46
|
|
46
47
|
// StyleSheet is a function
|
47
48
|
auto& state = core::UnistylesRegistry::get().getState(rt);
|
48
|
-
auto theme = state.
|
49
|
+
auto theme = state.getCurrentJSTheme();
|
49
50
|
|
50
51
|
if (styleSheet->type == StyleSheetType::Themable) {
|
51
52
|
return styleSheet->rawValue
|
@@ -68,14 +69,14 @@ jsi::Object parser::Parser::unwrapStyleSheet(jsi::Runtime& rt, std::shared_ptr<S
|
|
68
69
|
void parser::Parser::parseUnistyles(jsi::Runtime& rt, std::shared_ptr<StyleSheet> styleSheet) {
|
69
70
|
for (const auto& [_, unistyle] : styleSheet->unistyles) {
|
70
71
|
if (unistyle->type == core::UnistyleType::Object) {
|
71
|
-
auto result = this->parseFirstLevel(rt, unistyle,
|
72
|
+
auto result = this->parseFirstLevel(rt, unistyle, std::nullopt);
|
72
73
|
|
73
74
|
unistyle->parsedStyle = std::move(result);
|
74
75
|
unistyle->seal();
|
75
76
|
}
|
76
77
|
|
77
78
|
if (unistyle->type == core::UnistyleType::DynamicFunction) {
|
78
|
-
auto hostFn = this->createDynamicFunctionProxy(rt, unistyle
|
79
|
+
auto hostFn = this->createDynamicFunctionProxy(rt, unistyle);
|
79
80
|
auto unistyleFn = std::dynamic_pointer_cast<UnistyleDynamicFunction>(unistyle);
|
80
81
|
|
81
82
|
// defer parsing dynamic functions
|
@@ -85,59 +86,108 @@ void parser::Parser::parseUnistyles(jsi::Runtime& rt, std::shared_ptr<StyleSheet
|
|
85
86
|
}
|
86
87
|
|
87
88
|
// rebuild all unistyles in StyleSheet that depends on variants
|
88
|
-
void parser::Parser::rebuildUnistylesWithVariants(jsi::Runtime& rt, std::shared_ptr<StyleSheet> styleSheet) {
|
89
|
+
void parser::Parser::rebuildUnistylesWithVariants(jsi::Runtime& rt, std::shared_ptr<StyleSheet> styleSheet, Variants& variants) {
|
89
90
|
for (const auto& [_, unistyle] : styleSheet->unistyles) {
|
90
91
|
if (!unistyle->dependsOn(UnistyleDependency::VARIANTS)) {
|
91
92
|
continue;
|
92
93
|
}
|
93
94
|
|
94
|
-
|
95
|
+
// todo skip dynamic functions
|
96
|
+
this->rebuildUnistyle(rt, styleSheet, unistyle, variants, std::nullopt);
|
95
97
|
}
|
96
98
|
}
|
97
99
|
|
98
100
|
// rebuild all unistyles that are affected by platform event
|
99
|
-
void parser::Parser::rebuildUnistylesInDependencyMap(jsi::Runtime& rt, DependencyMap& dependencyMap) {
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
101
|
+
void parser::Parser::rebuildUnistylesInDependencyMap(jsi::Runtime& rt, DependencyMap& dependencyMap, std::vector<std::shared_ptr<core::StyleSheet>> styleSheets) {
|
102
|
+
std::unordered_map<std::shared_ptr<StyleSheet>, jsi::Value> parsedStyleSheets{};
|
103
|
+
std::unordered_map<std::shared_ptr<core::Unistyle>, bool> parsedUnistyles{};
|
104
|
+
|
105
|
+
// parse all stylesheets that depends on changes
|
106
|
+
for (auto styleSheet : styleSheets) {
|
107
|
+
parsedStyleSheets.emplace(styleSheet, this->unwrapStyleSheet(rt, styleSheet));
|
108
|
+
}
|
109
|
+
|
110
|
+
// then parse all visible Unistyles
|
111
|
+
for (auto& [shadowNode, unistyles] : dependencyMap) {
|
112
|
+
auto styleSheet = unistyles.begin()->get()->unistyle->parent;
|
113
|
+
|
114
|
+
// stylesheet may be optional for exotic unistyles
|
115
|
+
if (styleSheet != nullptr && !parsedStyleSheets.contains(styleSheet)) {
|
116
|
+
parsedStyleSheets.emplace(styleSheet, this->unwrapStyleSheet(rt, styleSheet));
|
117
|
+
}
|
118
|
+
|
119
|
+
for (auto& unistyleData : unistyles) {
|
120
|
+
auto& unistyle = unistyleData->unistyle;
|
121
|
+
|
122
|
+
// for RN styles or inline styles, compute styles only once
|
123
|
+
if (unistyle->styleKey == helpers::EXOTIC_STYLE_KEY.c_str()) {
|
124
|
+
if (!unistyleData->parsedStyle.has_value()) {
|
125
|
+
unistyleData->parsedStyle = jsi::Value(rt, unistyle->rawValue).asObject(rt);
|
126
|
+
|
127
|
+
if (!parsedUnistyles.contains(unistyle)) {
|
128
|
+
parsedUnistyles.emplace(unistyle, true);
|
129
|
+
}
|
108
130
|
}
|
109
131
|
|
110
|
-
|
111
|
-
|
132
|
+
continue;
|
133
|
+
}
|
134
|
+
|
135
|
+
// reference Unistyles StyleSheet as we may mix them for one style
|
136
|
+
auto unistyleStyleSheet = unistyle->parent;
|
137
|
+
|
138
|
+
// we may hit now other StyleSheets that are referenced from affected nodes
|
139
|
+
if (unistyleStyleSheet != nullptr && !parsedStyleSheets.contains(unistyleStyleSheet)) {
|
140
|
+
parsedStyleSheets.emplace(unistyleStyleSheet, this->unwrapStyleSheet(rt, unistyleStyleSheet));
|
141
|
+
}
|
142
|
+
|
143
|
+
// StyleSheet might have styles that are not affected
|
144
|
+
if (!parsedStyleSheets[unistyleStyleSheet].asObject(rt).hasProperty(rt, unistyle->styleKey.c_str())) {
|
145
|
+
continue;
|
146
|
+
}
|
147
|
+
|
148
|
+
unistyle->rawValue = parsedStyleSheets[unistyleStyleSheet].asObject(rt).getProperty(rt, unistyle->styleKey.c_str()).asObject(rt);
|
149
|
+
this->rebuildUnistyle(rt, unistyleStyleSheet, unistyle, unistyleData->variants, unistyleData->dynamicFunctionMetadata);
|
150
|
+
unistyleData->parsedStyle = jsi::Value(rt, unistyle->parsedStyle.value()).asObject(rt);
|
151
|
+
|
152
|
+
if (!parsedUnistyles.contains(unistyle)) {
|
153
|
+
parsedUnistyles.emplace(unistyle, true);
|
154
|
+
}
|
155
|
+
}
|
156
|
+
}
|
157
|
+
|
158
|
+
// parse whatever left in StyleSheets
|
159
|
+
for (auto styleSheet : styleSheets) {
|
160
|
+
for (auto& [_, unistyle] : styleSheet->unistyles) {
|
161
|
+
if (!parsedUnistyles.contains(unistyle)) {
|
162
|
+
parsedUnistyles.emplace(unistyle, true);
|
163
|
+
unistyle->rawValue = parsedStyleSheets[styleSheet].asObject(rt).getProperty(rt, unistyle->styleKey.c_str()).asObject(rt);
|
164
|
+
this->rebuildUnistyle(rt, styleSheet, unistyle, {}, std::nullopt);
|
112
165
|
}
|
113
166
|
}
|
114
167
|
}
|
115
168
|
}
|
116
169
|
|
117
170
|
// rebuild single unistyle
|
118
|
-
void parser::Parser::rebuildUnistyle(jsi::Runtime& rt, std::shared_ptr<StyleSheet> styleSheet, Unistyle::Shared unistyle) {
|
171
|
+
void parser::Parser::rebuildUnistyle(jsi::Runtime& rt, std::shared_ptr<StyleSheet> styleSheet, Unistyle::Shared unistyle, const Variants& variants, std::optional<std::vector<folly::dynamic>> metadata) {
|
119
172
|
if (unistyle->type == core::UnistyleType::Object) {
|
120
|
-
auto result = this->parseFirstLevel(rt, unistyle,
|
173
|
+
auto result = this->parseFirstLevel(rt, unistyle, variants);
|
121
174
|
|
122
175
|
unistyle->parsedStyle = std::move(result);
|
123
176
|
}
|
124
177
|
|
125
178
|
// for functions we need to call memoized function
|
126
179
|
// with last know arguments and parse it with new theme and mini runtime
|
127
|
-
if (unistyle->type == core::UnistyleType::DynamicFunction) {
|
180
|
+
if (unistyle->type == core::UnistyleType::DynamicFunction && metadata.has_value()) {
|
128
181
|
auto unistyleFn = std::dynamic_pointer_cast<UnistyleDynamicFunction>(unistyle);
|
129
|
-
auto maybeMetadata = unistyleFn->dynamicFunctionMetadata;
|
130
|
-
|
131
|
-
helpers::assertThat(rt, maybeMetadata.has_value(), "Your dynamic function '" + unistyleFn->styleKey + "' has no metadata and can't be processed.");
|
132
182
|
|
133
183
|
// convert arguments to jsi::Value
|
134
|
-
auto
|
184
|
+
auto dynamicFunctionMetadata = metadata.value();
|
135
185
|
std::vector<jsi::Value> args{};
|
136
|
-
|
137
|
-
args.reserve(3);
|
138
186
|
|
139
|
-
|
140
|
-
|
187
|
+
args.reserve(dynamicFunctionMetadata.size());
|
188
|
+
|
189
|
+
for (int i = 0; i < dynamicFunctionMetadata.size(); i++) {
|
190
|
+
folly::dynamic& arg = dynamicFunctionMetadata.at(i);
|
141
191
|
|
142
192
|
args.emplace_back(jsi::valueFromDynamic(rt, arg));
|
143
193
|
}
|
@@ -145,96 +195,37 @@ void parser::Parser::rebuildUnistyle(jsi::Runtime& rt, std::shared_ptr<StyleShee
|
|
145
195
|
const jsi::Value *argStart = args.data();
|
146
196
|
|
147
197
|
// call cached function with memoized arguments
|
148
|
-
auto functionResult = unistyleFn->
|
198
|
+
auto functionResult = unistyleFn->rawValue
|
199
|
+
.asFunction(rt)
|
200
|
+
.call(rt, argStart, dynamicFunctionMetadata.size())
|
201
|
+
.asObject(rt);
|
149
202
|
|
150
203
|
unistyleFn->unprocessedValue = std::move(functionResult);
|
151
|
-
unistyleFn->parsedStyle = this->parseFirstLevel(rt, unistyleFn,
|
204
|
+
unistyleFn->parsedStyle = this->parseFirstLevel(rt, unistyleFn, variants);
|
152
205
|
}
|
153
206
|
}
|
154
207
|
|
155
208
|
// convert dependency map to shadow tree updates
|
156
|
-
|
209
|
+
void parser::Parser::rebuildShadowLeafUpdates(core::DependencyMap& dependencyMap) {
|
157
210
|
shadow::ShadowLeafUpdates updates;
|
211
|
+
auto& registry = core::UnistylesRegistry::get();
|
158
212
|
auto& rt = this->_unistylesRuntime->getRuntime();
|
159
213
|
|
160
|
-
for (const auto& [
|
161
|
-
|
162
|
-
for (const auto& unistyle : unistyles) {
|
163
|
-
auto rawProps = this->parseStylesToShadowTreeStyles(rt, unistyle->parsedStyle.value());
|
164
|
-
|
165
|
-
if (updates.contains(shadowNode)) {
|
166
|
-
updates[shadowNode].emplace_back(std::move(rawProps));
|
167
|
-
|
168
|
-
continue;
|
169
|
-
}
|
214
|
+
for (const auto& [shadowNode, unistyles] : dependencyMap) {
|
215
|
+
auto rawProps = this->parseStylesToShadowTreeStyles(rt, unistyles);
|
170
216
|
|
171
|
-
|
172
|
-
}
|
173
|
-
}
|
217
|
+
updates.emplace(shadowNode, std::move(rawProps));
|
174
218
|
}
|
175
219
|
|
176
|
-
|
177
|
-
}
|
178
|
-
|
179
|
-
// convert jsi::Value arguments to folly::dynamic
|
180
|
-
std::vector<folly::dynamic> parser::Parser::parseDynamicFunctionArguments(jsi::Runtime& rt, size_t count, const jsi::Value* arguments) {
|
181
|
-
std::vector<folly::dynamic> parsedArgument{};
|
182
|
-
|
183
|
-
parsedArgument.reserve(3);
|
184
|
-
|
185
|
-
for (size_t i = 0; i < count; i++) {
|
186
|
-
auto& arg = arguments[i];
|
187
|
-
|
188
|
-
if (arg.isBool()) {
|
189
|
-
parsedArgument.push_back(folly::dynamic(arg.asBool()));
|
190
|
-
|
191
|
-
continue;
|
192
|
-
}
|
193
|
-
|
194
|
-
if (arg.isNumber()) {
|
195
|
-
parsedArgument.push_back(folly::dynamic(arg.asNumber()));
|
196
|
-
|
197
|
-
continue;
|
198
|
-
}
|
199
|
-
|
200
|
-
if (arg.isString()) {
|
201
|
-
parsedArgument.push_back(folly::dynamic(arg.asString(rt).utf8(rt)));
|
202
|
-
|
203
|
-
continue;
|
204
|
-
}
|
205
|
-
|
206
|
-
if (arg.isUndefined()) {
|
207
|
-
parsedArgument.push_back(folly::dynamic());
|
208
|
-
|
209
|
-
continue;
|
210
|
-
}
|
211
|
-
|
212
|
-
if (arg.isNull()) {
|
213
|
-
parsedArgument.push_back(folly::dynamic(nullptr));
|
214
|
-
|
215
|
-
continue;
|
216
|
-
}
|
217
|
-
|
218
|
-
if (!arg.isObject()) {
|
219
|
-
continue;;
|
220
|
-
}
|
220
|
+
registry.trafficController.setUpdates(rt, updates);
|
221
221
|
|
222
|
-
|
223
|
-
|
224
|
-
// allow arrays and objects too
|
225
|
-
if (!argObj.isFunction(rt) && !argObj.isArrayBuffer(rt)) {
|
226
|
-
parsedArgument.push_back(jsi::dynamicFromValue(rt, arg));
|
227
|
-
|
228
|
-
continue;
|
229
|
-
}
|
230
|
-
}
|
231
|
-
|
232
|
-
return parsedArgument;
|
222
|
+
// this is required, we need to indicate that there are new changes
|
223
|
+
registry.trafficController.resumeUnistylesTraffic();
|
233
224
|
}
|
234
225
|
|
235
226
|
// first level of StyleSheet, we can expect here different properties than on second level
|
236
227
|
// eg. variants, compoundVariants, mq, breakpoints etc.
|
237
|
-
jsi::Object parser::Parser::parseFirstLevel(jsi::Runtime& rt, Unistyle::Shared unistyle, Variants
|
228
|
+
jsi::Object parser::Parser::parseFirstLevel(jsi::Runtime& rt, Unistyle::Shared unistyle, std::optional<Variants> variants) {
|
238
229
|
// for objects - we simply operate on them
|
239
230
|
// for functions we need to work on the unprocessed result (object)
|
240
231
|
auto& style = unistyle->type == core::UnistyleType::Object
|
@@ -293,6 +284,18 @@ jsi::Object parser::Parser::parseFirstLevel(jsi::Runtime& rt, Unistyle::Shared u
|
|
293
284
|
return;
|
294
285
|
}
|
295
286
|
|
287
|
+
if (propertyName == "boxShadow" && propertyValueObject.isArray(rt)) {
|
288
|
+
parsedStyle.setProperty(rt, jsi::PropNameID::forUtf8(rt, propertyName), parseBoxShadow(rt, unistyle, propertyValueObject));
|
289
|
+
|
290
|
+
return;
|
291
|
+
}
|
292
|
+
|
293
|
+
if (propertyName == "filter" && propertyValueObject.isArray(rt)) {
|
294
|
+
parsedStyle.setProperty(rt, jsi::PropNameID::forUtf8(rt, propertyName), parseFilters(rt, unistyle, propertyValueObject));
|
295
|
+
|
296
|
+
return;
|
297
|
+
}
|
298
|
+
|
296
299
|
if (propertyName == "fontVariant" && propertyValueObject.isArray(rt)) {
|
297
300
|
parsedStyle.setProperty(rt, jsi::PropNameID::forUtf8(rt, propertyName), propertyValue);
|
298
301
|
|
@@ -316,20 +319,16 @@ jsi::Object parser::Parser::parseFirstLevel(jsi::Runtime& rt, Unistyle::Shared u
|
|
316
319
|
|
317
320
|
parsedStyle.setProperty(rt, jsi::PropNameID::forUtf8(rt, propertyName), this->parseSecondLevel(rt, unistyle, valueFromBreakpoint));
|
318
321
|
});
|
319
|
-
|
320
|
-
if (shouldParseVariants) {
|
321
|
-
unistyle->addDependency(UnistyleDependency::VARIANTS);
|
322
|
-
}
|
323
322
|
|
324
|
-
if (shouldParseVariants && !variants.empty()) {
|
323
|
+
if (shouldParseVariants && variants.has_value() && !variants.value().empty()) {
|
325
324
|
auto propertyValueObject = style.getProperty(rt, "variants").asObject(rt);
|
326
|
-
auto parsedVariant = this->parseVariants(rt, unistyle, propertyValueObject, variants);
|
325
|
+
auto parsedVariant = this->parseVariants(rt, unistyle, propertyValueObject, variants.value());
|
327
326
|
|
328
327
|
helpers::mergeJSIObjects(rt, parsedStyle, parsedVariant);
|
329
328
|
|
330
329
|
if (shouldParseCompoundVariants) {
|
331
330
|
auto compoundVariants = style.getProperty(rt, "compoundVariants").asObject(rt);
|
332
|
-
auto parsedCompoundVariants = this->parseCompoundVariants(rt, unistyle, compoundVariants, variants);
|
331
|
+
auto parsedCompoundVariants = this->parseCompoundVariants(rt, unistyle, compoundVariants, variants.value());
|
333
332
|
|
334
333
|
helpers::mergeJSIObjects(rt, parsedStyle, parsedCompoundVariants);
|
335
334
|
}
|
@@ -339,14 +338,14 @@ jsi::Object parser::Parser::parseFirstLevel(jsi::Runtime& rt, Unistyle::Shared u
|
|
339
338
|
}
|
340
339
|
|
341
340
|
// function replaces original user dynamic function with additional logic to memoize arguments
|
342
|
-
jsi::Function parser::Parser::createDynamicFunctionProxy(jsi::Runtime& rt, Unistyle::Shared unistyle
|
341
|
+
jsi::Function parser::Parser::createDynamicFunctionProxy(jsi::Runtime& rt, Unistyle::Shared unistyle) {
|
343
342
|
auto unistylesRuntime = this->_unistylesRuntime;
|
344
343
|
|
345
344
|
return jsi::Function::createFromHostFunction(
|
346
345
|
rt,
|
347
346
|
jsi::PropNameID::forUtf8(rt, unistyle->styleKey),
|
348
347
|
1,
|
349
|
-
[this, unistylesRuntime, unistyle
|
348
|
+
[this, unistylesRuntime, unistyle](jsi::Runtime& rt, const jsi::Value& thisVal, const jsi::Value* args, size_t count) {
|
350
349
|
auto thisObject = thisVal.asObject(rt);
|
351
350
|
auto parser = parser::Parser(unistylesRuntime);
|
352
351
|
|
@@ -356,25 +355,38 @@ jsi::Function parser::Parser::createDynamicFunctionProxy(jsi::Runtime& rt, Unist
|
|
356
355
|
// memoize metadata to call it later
|
357
356
|
auto unistyleFn = std::dynamic_pointer_cast<UnistyleDynamicFunction>(unistyle);
|
358
357
|
|
359
|
-
unistyleFn->dynamicFunctionMetadata = core::DynamicFunctionMetadata{
|
360
|
-
count,
|
361
|
-
this->parseDynamicFunctionArguments(rt, count, args)
|
362
|
-
};
|
363
|
-
|
364
358
|
unistyleFn->unprocessedValue = jsi::Value(rt, result).asObject(rt);
|
359
|
+
|
360
|
+
jsi::Value rawVariants = thisObject.hasProperty(rt, helpers::STYLE_VARIANTS.c_str())
|
361
|
+
? thisObject.getProperty(rt, helpers::STYLE_VARIANTS.c_str())
|
362
|
+
: jsi::Value::undefined();
|
363
|
+
std::optional<Variants> variants = rawVariants.isUndefined()
|
364
|
+
? std::nullopt
|
365
|
+
: std::optional<Variants>(helpers::variantsToPairs(rt, rawVariants.asObject(rt)));
|
366
|
+
|
365
367
|
unistyleFn->parsedStyle = this->parseFirstLevel(rt, unistyleFn, variants);
|
366
368
|
unistyleFn->seal();
|
367
369
|
|
368
|
-
|
370
|
+
// include dependencies for createUnistylesComponent
|
371
|
+
jsi::Object style = jsi::Value(rt, unistyleFn->parsedStyle.value()).asObject(rt);
|
372
|
+
|
373
|
+
helpers::defineHiddenProperty(rt, style, helpers::STYLE_DEPENDENCIES, helpers::dependenciesToJSIArray(rt, unistyle->dependencies));
|
374
|
+
|
375
|
+
// update shadow leaf updates to indicate newest changes
|
376
|
+
auto& registry = core::UnistylesRegistry::get();
|
377
|
+
|
378
|
+
registry.shadowLeafUpdateFromUnistyle(rt, unistyle);
|
379
|
+
|
380
|
+
return style;
|
369
381
|
});
|
370
382
|
}
|
371
383
|
|
372
384
|
// function convert babel generated dependencies to C++ dependencies
|
373
385
|
std::vector<UnistyleDependency> parser::Parser::parseDependencies(jsi::Runtime &rt, jsi::Object&& dependencies) {
|
374
|
-
helpers::assertThat(rt, dependencies.isArray(rt), "
|
386
|
+
helpers::assertThat(rt, dependencies.isArray(rt), "Unistyles: Babel transform is invalid - unexpected type for dependencies.");
|
375
387
|
|
376
388
|
std::vector<UnistyleDependency> parsedDependencies{};
|
377
|
-
|
389
|
+
|
378
390
|
parsedDependencies.reserve(5);
|
379
391
|
|
380
392
|
helpers::iterateJSIArray(rt, dependencies.asArray(rt), [&](size_t i, jsi::Value& value){
|
@@ -388,12 +400,8 @@ std::vector<UnistyleDependency> parser::Parser::parseDependencies(jsi::Runtime &
|
|
388
400
|
|
389
401
|
// eg. [{ scale: 2 }, { translateX: 100 }]
|
390
402
|
jsi::Value parser::Parser::parseTransforms(jsi::Runtime& rt, Unistyle::Shared unistyle, jsi::Object& obj) {
|
391
|
-
if (!obj.isArray(rt)) {
|
392
|
-
return jsi::Value::undefined();
|
393
|
-
}
|
394
|
-
|
395
403
|
std::vector<jsi::Value> parsedTransforms{};
|
396
|
-
|
404
|
+
|
397
405
|
parsedTransforms.reserve(2);
|
398
406
|
|
399
407
|
helpers::iterateJSIArray(rt, obj.asArray(rt), [&](size_t i, jsi::Value& value){
|
@@ -421,6 +429,67 @@ jsi::Value parser::Parser::parseTransforms(jsi::Runtime& rt, Unistyle::Shared un
|
|
421
429
|
return result;
|
422
430
|
}
|
423
431
|
|
432
|
+
// eg [{offsetX: 5, offsetY: 5, blurRadius: 5, spreadDistance: 0, color: ‘rgba(255, 0, 0, 0.5)’}]
|
433
|
+
jsi::Value parser::Parser::parseBoxShadow(jsi::Runtime &rt, Unistyle::Shared unistyle, jsi::Object &obj) {
|
434
|
+
std::vector<jsi::Value> parsedBoxShadows{};
|
435
|
+
|
436
|
+
parsedBoxShadows.reserve(2);
|
437
|
+
|
438
|
+
helpers::iterateJSIArray(rt, obj.asArray(rt), [&](size_t i, jsi::Value& value){
|
439
|
+
if (!value.isObject()) {
|
440
|
+
return;
|
441
|
+
}
|
442
|
+
|
443
|
+
auto parsedResult = this->parseSecondLevel(rt, unistyle, value);
|
444
|
+
|
445
|
+
parsedBoxShadows.emplace_back(std::move(parsedResult));
|
446
|
+
});
|
447
|
+
|
448
|
+
// create jsi::Array result with correct box shadows
|
449
|
+
jsi::Array result = jsi::Array(rt, parsedBoxShadows.size());
|
450
|
+
|
451
|
+
for (size_t i = 0; i < parsedBoxShadows.size(); i++) {
|
452
|
+
result.setValueAtIndex(rt, i, parsedBoxShadows[i]);
|
453
|
+
}
|
454
|
+
|
455
|
+
return result;
|
456
|
+
}
|
457
|
+
|
458
|
+
// eg. [{ brightness: 0.5 }, { opacity: 0.25 }]
|
459
|
+
jsi::Value parser::Parser::parseFilters(jsi::Runtime &rt, Unistyle::Shared unistyle, jsi::Object &obj) {
|
460
|
+
std::vector<jsi::Value> parsedFilters{};
|
461
|
+
|
462
|
+
parsedFilters.reserve(2);
|
463
|
+
|
464
|
+
helpers::iterateJSIArray(rt, obj.asArray(rt), [&](size_t i, jsi::Value& value){
|
465
|
+
if (!value.isObject()) {
|
466
|
+
return;
|
467
|
+
}
|
468
|
+
|
469
|
+
auto parsedResult = this->parseSecondLevel(rt, unistyle, value);
|
470
|
+
|
471
|
+
// take only one filter per object
|
472
|
+
jsi::Array propertyNames = parsedResult.asObject(rt).getPropertyNames(rt);
|
473
|
+
size_t length = propertyNames.size(rt);
|
474
|
+
|
475
|
+
// ignore no filters
|
476
|
+
if (length == 0) {
|
477
|
+
return;
|
478
|
+
}
|
479
|
+
|
480
|
+
parsedFilters.emplace_back(std::move(parsedResult));
|
481
|
+
});
|
482
|
+
|
483
|
+
// create jsi::Array result with correct filters
|
484
|
+
jsi::Array result = jsi::Array(rt, parsedFilters.size());
|
485
|
+
|
486
|
+
for (size_t i = 0; i < parsedFilters.size(); i++) {
|
487
|
+
result.setValueAtIndex(rt, i, parsedFilters[i]);
|
488
|
+
}
|
489
|
+
|
490
|
+
return result;
|
491
|
+
}
|
492
|
+
|
424
493
|
// find value based on breakpoints and mq
|
425
494
|
jsi::Value parser::Parser::getValueFromBreakpoints(jsi::Runtime& rt, Unistyle::Shared unistyle, jsi::Object& obj) {
|
426
495
|
auto& registry = core::UnistylesRegistry::get();
|
@@ -442,7 +511,7 @@ jsi::Value parser::Parser::getValueFromBreakpoints(jsi::Runtime& rt, Unistyle::S
|
|
442
511
|
auto propertyName = propertyNames.getValueAtIndex(rt, i).asString(rt).utf8(rt);
|
443
512
|
auto propertyValue = obj.getProperty(rt, propertyName.c_str());
|
444
513
|
auto mq = core::UnistylesMQ{propertyName};
|
445
|
-
|
514
|
+
|
446
515
|
if (mq.isMQ()) {
|
447
516
|
unistyle->addDependency(UnistyleDependency::BREAKPOINTS);
|
448
517
|
}
|
@@ -455,11 +524,11 @@ jsi::Value parser::Parser::getValueFromBreakpoints(jsi::Runtime& rt, Unistyle::S
|
|
455
524
|
|
456
525
|
// check orientation breakpoints if user didn't register own breakpoint
|
457
526
|
bool hasOrientationBreakpoint = obj.hasProperty(rt, currentOrientation);
|
458
|
-
|
527
|
+
|
459
528
|
if (hasOrientationBreakpoint) {
|
460
529
|
unistyle->addDependency(UnistyleDependency::BREAKPOINTS);
|
461
530
|
}
|
462
|
-
|
531
|
+
|
463
532
|
if (!hasBreakpoints && hasOrientationBreakpoint) {
|
464
533
|
return obj.getProperty(rt, currentOrientation);
|
465
534
|
}
|
@@ -467,7 +536,7 @@ jsi::Value parser::Parser::getValueFromBreakpoints(jsi::Runtime& rt, Unistyle::S
|
|
467
536
|
if (!currentBreakpoint.has_value()) {
|
468
537
|
return jsi::Value::undefined();
|
469
538
|
}
|
470
|
-
|
539
|
+
|
471
540
|
unistyle->addDependency(UnistyleDependency::BREAKPOINTS);
|
472
541
|
|
473
542
|
// if you're still here it means that there is no
|
@@ -513,7 +582,7 @@ jsi::Object parser::Parser::parseVariants(jsi::Runtime& rt, Unistyle::Shared uni
|
|
513
582
|
: std::nullopt;
|
514
583
|
|
515
584
|
// we've got a match, but we need to check some condition
|
516
|
-
auto styles = this->getStylesForVariant(rt, groupValue.asObject(rt), selectedVariant);
|
585
|
+
auto styles = this->getStylesForVariant(rt, groupName, groupValue.asObject(rt), selectedVariant, variants);
|
517
586
|
|
518
587
|
// oops, invalid variant
|
519
588
|
if (styles.isUndefined() || !styles.isObject()) {
|
@@ -529,13 +598,19 @@ jsi::Object parser::Parser::parseVariants(jsi::Runtime& rt, Unistyle::Shared uni
|
|
529
598
|
}
|
530
599
|
|
531
600
|
// helpers function to support 'default' variants
|
532
|
-
jsi::Value parser::Parser::getStylesForVariant(jsi::Runtime& rt, jsi::Object&& groupValue, std::optional<std::string> selectedVariant) {
|
601
|
+
jsi::Value parser::Parser::getStylesForVariant(jsi::Runtime& rt, const std::string groupName, jsi::Object&& groupValue, std::optional<std::string> selectedVariant, Variants& variants) {
|
533
602
|
// if there is no value, let's try 'default'
|
534
603
|
auto selectedVariantKey = selectedVariant.has_value()
|
535
604
|
? selectedVariant.value().c_str()
|
536
605
|
: "default";
|
606
|
+
auto hasKey = groupValue.hasProperty(rt, selectedVariantKey);
|
537
607
|
|
538
|
-
if (
|
608
|
+
if (!hasKey || !selectedVariant.has_value()) {
|
609
|
+
// for no key, add 'default' selection to variants map
|
610
|
+
variants.emplace_back(groupName, selectedVariantKey);
|
611
|
+
}
|
612
|
+
|
613
|
+
if (hasKey) {
|
539
614
|
return groupValue.getProperty(rt, selectedVariantKey);
|
540
615
|
}
|
541
616
|
|
@@ -575,28 +650,20 @@ bool parser::Parser::shouldApplyCompoundVariants(jsi::Runtime& rt, const Variant
|
|
575
650
|
return false;
|
576
651
|
}
|
577
652
|
|
578
|
-
jsi::Array propertyNames = compoundVariant.getPropertyNames(rt);
|
579
|
-
size_t length = propertyNames.size(rt);
|
580
|
-
size_t allConditions = compoundVariant.hasProperty(rt, "styles")
|
581
|
-
? length - 1
|
582
|
-
: length;
|
583
|
-
|
584
|
-
if (allConditions != variants.size()) {
|
585
|
-
return false;
|
586
|
-
}
|
587
|
-
|
588
653
|
for (auto it = variants.cbegin(); it != variants.cend(); ++it) {
|
589
654
|
auto variantKey = it->first;
|
590
655
|
auto variantValue = it->second;
|
591
656
|
|
592
657
|
if (!compoundVariant.hasProperty(rt, variantKey.c_str())) {
|
593
|
-
|
658
|
+
continue;
|
594
659
|
}
|
595
660
|
|
596
661
|
auto property = compoundVariant.getProperty(rt, variantKey.c_str());
|
597
662
|
auto propertyName = property.isBool()
|
598
663
|
? (property.asBool() ? "true" : "false")
|
599
|
-
: property.
|
664
|
+
: property.isString()
|
665
|
+
? property.asString(rt).utf8(rt)
|
666
|
+
: "";
|
600
667
|
|
601
668
|
if (propertyName != variantValue) {
|
602
669
|
return false;
|
@@ -674,35 +741,39 @@ jsi::Value parser::Parser::parseSecondLevel(jsi::Runtime &rt, Unistyle::Shared u
|
|
674
741
|
return parsedStyle;
|
675
742
|
}
|
676
743
|
|
677
|
-
//
|
678
|
-
|
679
|
-
|
744
|
+
// convert unistyles to folly with int colors
|
745
|
+
folly::dynamic parser::Parser::parseStylesToShadowTreeStyles(jsi::Runtime& rt, const std::vector<std::shared_ptr<UnistyleData>>& unistyles) {
|
746
|
+
jsi::Object convertedStyles = jsi::Object(rt);
|
747
|
+
auto& state = core::UnistylesRegistry::get().getState(rt);
|
680
748
|
|
681
|
-
|
682
|
-
|
683
|
-
|
749
|
+
for (const auto& unistyleData : unistyles) {
|
750
|
+
// this can happen for exotic stylesheets
|
751
|
+
if (!unistyleData->parsedStyle.has_value()) {
|
752
|
+
unistyleData->parsedStyle = jsi::Value(rt, unistyleData->unistyle->rawValue).asObject(rt);
|
684
753
|
}
|
685
754
|
|
686
|
-
|
687
|
-
|
688
|
-
|
689
|
-
|
690
|
-
}
|
755
|
+
helpers::enumerateJSIObject(rt, unistyleData->parsedStyle.value(), [&](const std::string& propertyName, jsi::Value& propertyValue){
|
756
|
+
if (this->isColor(propertyName)) {
|
757
|
+
return convertedStyles.setProperty(rt, propertyName.c_str(), jsi::Value(state.parseColor(propertyValue)));
|
758
|
+
}
|
691
759
|
|
692
|
-
|
693
|
-
|
694
|
-
|
695
|
-
});
|
760
|
+
convertedStyles.setProperty(rt, propertyName.c_str(), propertyValue);
|
761
|
+
});
|
762
|
+
}
|
696
763
|
|
697
|
-
return
|
764
|
+
return jsi::dynamicFromValue(rt, std::move(convertedStyles));
|
698
765
|
}
|
699
766
|
|
700
|
-
|
701
|
-
RawProps parser::Parser::parseStylesToShadowTreeStyles(jsi::Runtime& rt, jsi::Object& styles) {
|
767
|
+
folly::dynamic parser::Parser::parseUnistyleToShadowTreeStyles(jsi::Runtime& rt, const Unistyle::Shared unistyle) {
|
702
768
|
jsi::Object convertedStyles = jsi::Object(rt);
|
703
769
|
auto& state = core::UnistylesRegistry::get().getState(rt);
|
704
770
|
|
705
|
-
|
771
|
+
// can happen for exotic styles
|
772
|
+
if (!unistyle->parsedStyle.has_value()) {
|
773
|
+
unistyle->parsedStyle = jsi::Value(rt, unistyle->rawValue).asObject(rt);
|
774
|
+
}
|
775
|
+
|
776
|
+
helpers::enumerateJSIObject(rt, unistyle->parsedStyle.value(), [&](const std::string& propertyName, jsi::Value& propertyValue){
|
706
777
|
if (this->isColor(propertyName)) {
|
707
778
|
return convertedStyles.setProperty(rt, propertyName.c_str(), jsi::Value(state.parseColor(propertyValue)));
|
708
779
|
}
|
@@ -710,7 +781,7 @@ RawProps parser::Parser::parseStylesToShadowTreeStyles(jsi::Runtime& rt, jsi::Ob
|
|
710
781
|
convertedStyles.setProperty(rt, propertyName.c_str(), propertyValue);
|
711
782
|
});
|
712
783
|
|
713
|
-
return
|
784
|
+
return jsi::dynamicFromValue(rt, std::move(convertedStyles));
|
714
785
|
}
|
715
786
|
|
716
787
|
// check is styleKey contains color
|