react-native-unistyles 3.0.0-alpha.3 → 3.0.0-alpha.30
Sign up to get free protection for your applications and to get access to all the features.
- 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 +17 -16
- package/cxx/core/UnistylesCommitHook.h +7 -11
- package/cxx/core/UnistylesCommitShadowNode.h +13 -0
- package/cxx/core/UnistylesMountHook.cpp +26 -0
- package/cxx/core/UnistylesMountHook.h +24 -0
- package/cxx/core/UnistylesRegistry.cpp +85 -88
- 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 +144 -46
- package/cxx/hybridObjects/HybridStyleSheet.h +23 -4
- package/cxx/hybridObjects/HybridUnistylesRuntime.cpp +51 -8
- package/cxx/hybridObjects/HybridUnistylesRuntime.h +12 -1
- package/cxx/parser/Parser.cpp +209 -176
- package/cxx/parser/Parser.h +10 -14
- package/cxx/shadowTree/ShadowLeafUpdate.h +1 -1
- package/cxx/shadowTree/ShadowTrafficController.h +37 -0
- package/cxx/shadowTree/ShadowTreeManager.cpp +16 -15
- package/cxx/shadowTree/ShadowTreeManager.h +2 -1
- 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 +11 -1
- package/lib/commonjs/common.js.map +1 -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 +45 -0
- package/lib/commonjs/core/createUnistylesComponent.native.js.map +2 -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 +2 -0
- package/lib/commonjs/core/useTheme.js +22 -0
- package/lib/commonjs/core/useTheme.js.map +2 -0
- package/lib/commonjs/core/useTheme.native.js +24 -0
- package/lib/commonjs/core/useTheme.native.js.map +2 -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 +6 -4
- package/lib/commonjs/specs/NativePlatform/NativePlatform.nitro.js.map +1 -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/ShadowRegistry.nitro.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/UnistylesStatusBar.nitro.js.map +1 -1
- package/lib/commonjs/specs/StatusBar/index.js +1 -1
- package/lib/commonjs/specs/StatusBar/index.js.map +2 -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 +1 -1
- package/lib/commonjs/specs/TurboUnistyles/NativeTurboUnistyles.js +1 -3
- package/lib/commonjs/specs/TurboUnistyles/NativeTurboUnistyles.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/types.js.map +1 -0
- package/lib/commonjs/types/accessibility.js +9 -9
- package/lib/commonjs/types/accessibility.js.map +1 -1
- package/lib/commonjs/types/common.js +3 -0
- package/lib/commonjs/types/core.js.map +1 -1
- package/lib/commonjs/types/index.js.map +2 -1
- package/lib/commonjs/types/stylesheet.js +1 -2
- package/lib/commonjs/types/stylesheet.js.map +1 -1
- package/lib/commonjs/web/convert/boxShadow.js +77 -0
- package/lib/commonjs/web/convert/boxShadow.js.map +1 -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 +68 -0
- package/lib/commonjs/web/convert/shadow.js.map +2 -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 +70 -0
- package/lib/commonjs/web/convert/textShadow.js.map +2 -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 +2 -0
- package/lib/commonjs/web/listener.js +35 -0
- package/lib/commonjs/web/listener.js.map +2 -0
- package/lib/commonjs/web/mock.js +28 -0
- package/lib/commonjs/web/mock.js.map +2 -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 +90 -0
- package/lib/commonjs/web/utils/common.js.map +2 -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 +1 -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/core/createUnistylesComponent.js +11 -0
- package/lib/module/core/createUnistylesComponent.js.map +2 -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 +2 -0
- package/lib/module/core/useTheme.native.js +19 -0
- package/lib/module/core/useTheme.native.js.map +2 -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/NativePlatform/index.js.map +1 -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 +2 -1
- package/lib/module/specs/ShadowRegistry/ShadowRegistry.nitro.js.map +1 -1
- package/lib/module/specs/ShadowRegistry/index.js +7 -6
- package/lib/module/specs/ShadowRegistry/index.js.map +2 -1
- package/lib/module/specs/ShadowRegistry/types.js +2 -0
- package/lib/module/specs/ShadowRegistry/types.js.map +1 -0
- package/lib/module/specs/StatusBar/UnistylesStatusBar.nitro.js.map +1 -1
- package/lib/module/specs/StatusBar/index.js +1 -1
- 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 +2 -1
- package/lib/module/specs/TurboUnistyles/NativeTurboUnistyles.js.map +2 -1
- package/lib/module/specs/UnistylesRuntime/UnistylesRuntime.nitro.js.map +1 -0
- package/lib/module/specs/UnistylesRuntime/index.js +1 -1
- 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 +1 -1
- package/lib/module/specs/index.web.js.map +2 -1
- package/lib/module/specs/types.js +10 -10
- package/lib/module/specs/types.js.map +1 -1
- 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 -0
- 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 -1
- 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 +2 -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 +2 -0
- package/lib/module/web/convert/shadow.js +59 -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 +68 -0
- package/lib/module/web/convert/textShadow.js.map +1 -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 +1 -0
- package/lib/module/web/create.js +43 -0
- package/lib/module/web/create.js.map +1 -0
- package/lib/module/web/index.js +25 -0
- package/lib/module/web/index.js.map +2 -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 +2 -0
- package/lib/module/web/mq.js +17 -0
- package/lib/module/web/mq.js.map +1 -0
- package/lib/module/web/registry.js +181 -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 +80 -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 +69 -0
- package/lib/module/web/utils/unistyle.js.map +1 -0
- package/lib/module/web/variants/getVariants.js +34 -0
- package/lib/module/web/variants/getVariants.js.map +2 -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 +2 -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,98 @@ 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() && !unistyleData->parsedStyle.has_value()) {
|
124
|
+
unistyleData->parsedStyle = jsi::Value(rt, unistyle->rawValue).asObject(rt);
|
125
|
+
|
126
|
+
if (!parsedUnistyles.contains(unistyle)) {
|
127
|
+
parsedUnistyles.emplace(unistyle, true);
|
108
128
|
}
|
109
129
|
|
110
|
-
|
111
|
-
|
130
|
+
continue;
|
131
|
+
}
|
132
|
+
|
133
|
+
// StyleSheet might have styles that are not affected
|
134
|
+
if (!parsedStyleSheets[styleSheet].asObject(rt).hasProperty(rt, unistyle->styleKey.c_str())) {
|
135
|
+
continue;
|
136
|
+
}
|
137
|
+
|
138
|
+
unistyle->rawValue = parsedStyleSheets[styleSheet].asObject(rt).getProperty(rt, unistyle->styleKey.c_str()).asObject(rt);
|
139
|
+
this->rebuildUnistyle(rt, styleSheet, unistyle, unistyleData->variants, unistyleData->dynamicFunctionMetadata);
|
140
|
+
unistyleData->parsedStyle = jsi::Value(rt, unistyle->parsedStyle.value()).asObject(rt);
|
141
|
+
|
142
|
+
if (!parsedUnistyles.contains(unistyle)) {
|
143
|
+
parsedUnistyles.emplace(unistyle, true);
|
144
|
+
}
|
145
|
+
}
|
146
|
+
}
|
147
|
+
|
148
|
+
// parse whatever left in StyleSheets
|
149
|
+
for (auto styleSheet : styleSheets) {
|
150
|
+
for (auto& [_, unistyle] : styleSheet->unistyles) {
|
151
|
+
if (!parsedUnistyles.contains(unistyle)) {
|
152
|
+
parsedUnistyles.emplace(unistyle, true);
|
153
|
+
unistyle->rawValue = parsedStyleSheets[styleSheet].asObject(rt).getProperty(rt, unistyle->styleKey.c_str()).asObject(rt);
|
154
|
+
this->rebuildUnistyle(rt, styleSheet, unistyle, {}, std::nullopt);
|
112
155
|
}
|
113
156
|
}
|
114
157
|
}
|
115
158
|
}
|
116
159
|
|
117
160
|
// rebuild single unistyle
|
118
|
-
void parser::Parser::rebuildUnistyle(jsi::Runtime& rt, std::shared_ptr<StyleSheet> styleSheet, Unistyle::Shared unistyle) {
|
161
|
+
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
162
|
if (unistyle->type == core::UnistyleType::Object) {
|
120
|
-
auto result = this->parseFirstLevel(rt, unistyle,
|
163
|
+
auto result = this->parseFirstLevel(rt, unistyle, variants);
|
121
164
|
|
122
165
|
unistyle->parsedStyle = std::move(result);
|
123
166
|
}
|
124
167
|
|
125
168
|
// for functions we need to call memoized function
|
126
169
|
// with last know arguments and parse it with new theme and mini runtime
|
127
|
-
if (unistyle->type == core::UnistyleType::DynamicFunction) {
|
170
|
+
if (unistyle->type == core::UnistyleType::DynamicFunction && metadata.has_value()) {
|
128
171
|
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
172
|
|
133
173
|
// convert arguments to jsi::Value
|
134
|
-
auto
|
174
|
+
auto dynamicFunctionMetadata = metadata.value();
|
135
175
|
std::vector<jsi::Value> args{};
|
136
|
-
|
137
|
-
args.reserve(3);
|
138
176
|
|
139
|
-
|
140
|
-
|
177
|
+
args.reserve(dynamicFunctionMetadata.size());
|
178
|
+
|
179
|
+
for (int i = 0; i < dynamicFunctionMetadata.size(); i++) {
|
180
|
+
folly::dynamic& arg = dynamicFunctionMetadata.at(i);
|
141
181
|
|
142
182
|
args.emplace_back(jsi::valueFromDynamic(rt, arg));
|
143
183
|
}
|
@@ -145,96 +185,34 @@ void parser::Parser::rebuildUnistyle(jsi::Runtime& rt, std::shared_ptr<StyleShee
|
|
145
185
|
const jsi::Value *argStart = args.data();
|
146
186
|
|
147
187
|
// call cached function with memoized arguments
|
148
|
-
auto functionResult = unistyleFn->
|
188
|
+
auto functionResult = unistyleFn->rawValue
|
189
|
+
.asFunction(rt)
|
190
|
+
.call(rt, argStart, dynamicFunctionMetadata.size())
|
191
|
+
.asObject(rt);
|
149
192
|
|
150
193
|
unistyleFn->unprocessedValue = std::move(functionResult);
|
151
|
-
unistyleFn->parsedStyle = this->parseFirstLevel(rt, unistyleFn,
|
194
|
+
unistyleFn->parsedStyle = this->parseFirstLevel(rt, unistyleFn, variants);
|
152
195
|
}
|
153
196
|
}
|
154
197
|
|
155
198
|
// convert dependency map to shadow tree updates
|
156
|
-
|
199
|
+
void parser::Parser::rebuildShadowLeafUpdates(core::DependencyMap& dependencyMap) {
|
157
200
|
shadow::ShadowLeafUpdates updates;
|
201
|
+
auto& registry = core::UnistylesRegistry::get();
|
158
202
|
auto& rt = this->_unistylesRuntime->getRuntime();
|
159
203
|
|
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));
|
204
|
+
for (const auto& [shadowNode, unistyles] : dependencyMap) {
|
205
|
+
auto rawProps = this->parseStylesToShadowTreeStyles(rt, unistyles);
|
167
206
|
|
168
|
-
|
169
|
-
}
|
170
|
-
|
171
|
-
updates.emplace(shadowNode, std::vector<RawProps>{std::move(rawProps)});
|
172
|
-
}
|
173
|
-
}
|
207
|
+
updates.emplace(shadowNode, std::move(rawProps));
|
174
208
|
}
|
175
209
|
|
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
|
-
}
|
221
|
-
|
222
|
-
auto argObj = arg.asObject(rt);
|
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;
|
210
|
+
registry.trafficController._unistylesUpdates[&rt] = std::move(updates);
|
233
211
|
}
|
234
212
|
|
235
213
|
// first level of StyleSheet, we can expect here different properties than on second level
|
236
214
|
// eg. variants, compoundVariants, mq, breakpoints etc.
|
237
|
-
jsi::Object parser::Parser::parseFirstLevel(jsi::Runtime& rt, Unistyle::Shared unistyle, Variants
|
215
|
+
jsi::Object parser::Parser::parseFirstLevel(jsi::Runtime& rt, Unistyle::Shared unistyle, std::optional<Variants> variants) {
|
238
216
|
// for objects - we simply operate on them
|
239
217
|
// for functions we need to work on the unprocessed result (object)
|
240
218
|
auto& style = unistyle->type == core::UnistyleType::Object
|
@@ -293,6 +271,18 @@ jsi::Object parser::Parser::parseFirstLevel(jsi::Runtime& rt, Unistyle::Shared u
|
|
293
271
|
return;
|
294
272
|
}
|
295
273
|
|
274
|
+
if (propertyName == "boxShadow" && propertyValueObject.isArray(rt)) {
|
275
|
+
parsedStyle.setProperty(rt, jsi::PropNameID::forUtf8(rt, propertyName), parseBoxShadow(rt, unistyle, propertyValueObject));
|
276
|
+
|
277
|
+
return;
|
278
|
+
}
|
279
|
+
|
280
|
+
if (propertyName == "filter" && propertyValueObject.isArray(rt)) {
|
281
|
+
parsedStyle.setProperty(rt, jsi::PropNameID::forUtf8(rt, propertyName), parseFilters(rt, unistyle, propertyValueObject));
|
282
|
+
|
283
|
+
return;
|
284
|
+
}
|
285
|
+
|
296
286
|
if (propertyName == "fontVariant" && propertyValueObject.isArray(rt)) {
|
297
287
|
parsedStyle.setProperty(rt, jsi::PropNameID::forUtf8(rt, propertyName), propertyValue);
|
298
288
|
|
@@ -316,20 +306,16 @@ jsi::Object parser::Parser::parseFirstLevel(jsi::Runtime& rt, Unistyle::Shared u
|
|
316
306
|
|
317
307
|
parsedStyle.setProperty(rt, jsi::PropNameID::forUtf8(rt, propertyName), this->parseSecondLevel(rt, unistyle, valueFromBreakpoint));
|
318
308
|
});
|
319
|
-
|
320
|
-
if (shouldParseVariants) {
|
321
|
-
unistyle->addDependency(UnistyleDependency::VARIANTS);
|
322
|
-
}
|
323
309
|
|
324
|
-
if (shouldParseVariants && !variants.empty()) {
|
310
|
+
if (shouldParseVariants && variants.has_value() && !variants.value().empty()) {
|
325
311
|
auto propertyValueObject = style.getProperty(rt, "variants").asObject(rt);
|
326
|
-
auto parsedVariant = this->parseVariants(rt, unistyle, propertyValueObject, variants);
|
312
|
+
auto parsedVariant = this->parseVariants(rt, unistyle, propertyValueObject, variants.value());
|
327
313
|
|
328
314
|
helpers::mergeJSIObjects(rt, parsedStyle, parsedVariant);
|
329
315
|
|
330
316
|
if (shouldParseCompoundVariants) {
|
331
317
|
auto compoundVariants = style.getProperty(rt, "compoundVariants").asObject(rt);
|
332
|
-
auto parsedCompoundVariants = this->parseCompoundVariants(rt, unistyle, compoundVariants, variants);
|
318
|
+
auto parsedCompoundVariants = this->parseCompoundVariants(rt, unistyle, compoundVariants, variants.value());
|
333
319
|
|
334
320
|
helpers::mergeJSIObjects(rt, parsedStyle, parsedCompoundVariants);
|
335
321
|
}
|
@@ -339,14 +325,14 @@ jsi::Object parser::Parser::parseFirstLevel(jsi::Runtime& rt, Unistyle::Shared u
|
|
339
325
|
}
|
340
326
|
|
341
327
|
// function replaces original user dynamic function with additional logic to memoize arguments
|
342
|
-
jsi::Function parser::Parser::createDynamicFunctionProxy(jsi::Runtime& rt, Unistyle::Shared unistyle
|
328
|
+
jsi::Function parser::Parser::createDynamicFunctionProxy(jsi::Runtime& rt, Unistyle::Shared unistyle) {
|
343
329
|
auto unistylesRuntime = this->_unistylesRuntime;
|
344
330
|
|
345
331
|
return jsi::Function::createFromHostFunction(
|
346
332
|
rt,
|
347
333
|
jsi::PropNameID::forUtf8(rt, unistyle->styleKey),
|
348
334
|
1,
|
349
|
-
[this, unistylesRuntime, unistyle
|
335
|
+
[this, unistylesRuntime, unistyle](jsi::Runtime& rt, const jsi::Value& thisVal, const jsi::Value* args, size_t count) {
|
350
336
|
auto thisObject = thisVal.asObject(rt);
|
351
337
|
auto parser = parser::Parser(unistylesRuntime);
|
352
338
|
|
@@ -356,25 +342,33 @@ jsi::Function parser::Parser::createDynamicFunctionProxy(jsi::Runtime& rt, Unist
|
|
356
342
|
// memoize metadata to call it later
|
357
343
|
auto unistyleFn = std::dynamic_pointer_cast<UnistyleDynamicFunction>(unistyle);
|
358
344
|
|
359
|
-
unistyleFn->dynamicFunctionMetadata = core::DynamicFunctionMetadata{
|
360
|
-
count,
|
361
|
-
this->parseDynamicFunctionArguments(rt, count, args)
|
362
|
-
};
|
363
|
-
|
364
345
|
unistyleFn->unprocessedValue = jsi::Value(rt, result).asObject(rt);
|
346
|
+
|
347
|
+
jsi::Value rawVariants = thisObject.hasProperty(rt, helpers::STYLE_VARIANTS.c_str())
|
348
|
+
? thisObject.getProperty(rt, helpers::STYLE_VARIANTS.c_str())
|
349
|
+
: jsi::Value::undefined();
|
350
|
+
std::optional<Variants> variants = rawVariants.isUndefined()
|
351
|
+
? std::nullopt
|
352
|
+
: std::optional<Variants>(helpers::variantsToPairs(rt, rawVariants.asObject(rt)));
|
353
|
+
|
365
354
|
unistyleFn->parsedStyle = this->parseFirstLevel(rt, unistyleFn, variants);
|
366
355
|
unistyleFn->seal();
|
367
356
|
|
368
|
-
|
357
|
+
// include dependencies for createUnistylesComponent
|
358
|
+
jsi::Object style = jsi::Value(rt, unistyleFn->parsedStyle.value()).asObject(rt);
|
359
|
+
|
360
|
+
helpers::defineHiddenProperty(rt, style, helpers::STYLE_DEPENDENCIES, helpers::dependenciesToJSIArray(rt, unistyle->dependencies));
|
361
|
+
|
362
|
+
return style;
|
369
363
|
});
|
370
364
|
}
|
371
365
|
|
372
366
|
// function convert babel generated dependencies to C++ dependencies
|
373
367
|
std::vector<UnistyleDependency> parser::Parser::parseDependencies(jsi::Runtime &rt, jsi::Object&& dependencies) {
|
374
|
-
helpers::assertThat(rt, dependencies.isArray(rt), "
|
368
|
+
helpers::assertThat(rt, dependencies.isArray(rt), "Unistyles: Babel transform is invalid - unexpected type for dependencies.");
|
375
369
|
|
376
370
|
std::vector<UnistyleDependency> parsedDependencies{};
|
377
|
-
|
371
|
+
|
378
372
|
parsedDependencies.reserve(5);
|
379
373
|
|
380
374
|
helpers::iterateJSIArray(rt, dependencies.asArray(rt), [&](size_t i, jsi::Value& value){
|
@@ -388,12 +382,8 @@ std::vector<UnistyleDependency> parser::Parser::parseDependencies(jsi::Runtime &
|
|
388
382
|
|
389
383
|
// eg. [{ scale: 2 }, { translateX: 100 }]
|
390
384
|
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
385
|
std::vector<jsi::Value> parsedTransforms{};
|
396
|
-
|
386
|
+
|
397
387
|
parsedTransforms.reserve(2);
|
398
388
|
|
399
389
|
helpers::iterateJSIArray(rt, obj.asArray(rt), [&](size_t i, jsi::Value& value){
|
@@ -421,6 +411,67 @@ jsi::Value parser::Parser::parseTransforms(jsi::Runtime& rt, Unistyle::Shared un
|
|
421
411
|
return result;
|
422
412
|
}
|
423
413
|
|
414
|
+
// eg [{offsetX: 5, offsetY: 5, blurRadius: 5, spreadDistance: 0, color: ‘rgba(255, 0, 0, 0.5)’}]
|
415
|
+
jsi::Value parser::Parser::parseBoxShadow(jsi::Runtime &rt, Unistyle::Shared unistyle, jsi::Object &obj) {
|
416
|
+
std::vector<jsi::Value> parsedBoxShadows{};
|
417
|
+
|
418
|
+
parsedBoxShadows.reserve(2);
|
419
|
+
|
420
|
+
helpers::iterateJSIArray(rt, obj.asArray(rt), [&](size_t i, jsi::Value& value){
|
421
|
+
if (!value.isObject()) {
|
422
|
+
return;
|
423
|
+
}
|
424
|
+
|
425
|
+
auto parsedResult = this->parseSecondLevel(rt, unistyle, value);
|
426
|
+
|
427
|
+
parsedBoxShadows.emplace_back(std::move(parsedResult));
|
428
|
+
});
|
429
|
+
|
430
|
+
// create jsi::Array result with correct box shadows
|
431
|
+
jsi::Array result = jsi::Array(rt, parsedBoxShadows.size());
|
432
|
+
|
433
|
+
for (size_t i = 0; i < parsedBoxShadows.size(); i++) {
|
434
|
+
result.setValueAtIndex(rt, i, parsedBoxShadows[i]);
|
435
|
+
}
|
436
|
+
|
437
|
+
return result;
|
438
|
+
}
|
439
|
+
|
440
|
+
// eg. [{ brightness: 0.5 }, { opacity: 0.25 }]
|
441
|
+
jsi::Value parser::Parser::parseFilters(jsi::Runtime &rt, Unistyle::Shared unistyle, jsi::Object &obj) {
|
442
|
+
std::vector<jsi::Value> parsedFilters{};
|
443
|
+
|
444
|
+
parsedFilters.reserve(2);
|
445
|
+
|
446
|
+
helpers::iterateJSIArray(rt, obj.asArray(rt), [&](size_t i, jsi::Value& value){
|
447
|
+
if (!value.isObject()) {
|
448
|
+
return;
|
449
|
+
}
|
450
|
+
|
451
|
+
auto parsedResult = this->parseSecondLevel(rt, unistyle, value);
|
452
|
+
|
453
|
+
// take only one filter per object
|
454
|
+
jsi::Array propertyNames = parsedResult.asObject(rt).getPropertyNames(rt);
|
455
|
+
size_t length = propertyNames.size(rt);
|
456
|
+
|
457
|
+
// ignore no filters
|
458
|
+
if (length == 0) {
|
459
|
+
return;
|
460
|
+
}
|
461
|
+
|
462
|
+
parsedFilters.emplace_back(std::move(parsedResult));
|
463
|
+
});
|
464
|
+
|
465
|
+
// create jsi::Array result with correct filters
|
466
|
+
jsi::Array result = jsi::Array(rt, parsedFilters.size());
|
467
|
+
|
468
|
+
for (size_t i = 0; i < parsedFilters.size(); i++) {
|
469
|
+
result.setValueAtIndex(rt, i, parsedFilters[i]);
|
470
|
+
}
|
471
|
+
|
472
|
+
return result;
|
473
|
+
}
|
474
|
+
|
424
475
|
// find value based on breakpoints and mq
|
425
476
|
jsi::Value parser::Parser::getValueFromBreakpoints(jsi::Runtime& rt, Unistyle::Shared unistyle, jsi::Object& obj) {
|
426
477
|
auto& registry = core::UnistylesRegistry::get();
|
@@ -442,7 +493,7 @@ jsi::Value parser::Parser::getValueFromBreakpoints(jsi::Runtime& rt, Unistyle::S
|
|
442
493
|
auto propertyName = propertyNames.getValueAtIndex(rt, i).asString(rt).utf8(rt);
|
443
494
|
auto propertyValue = obj.getProperty(rt, propertyName.c_str());
|
444
495
|
auto mq = core::UnistylesMQ{propertyName};
|
445
|
-
|
496
|
+
|
446
497
|
if (mq.isMQ()) {
|
447
498
|
unistyle->addDependency(UnistyleDependency::BREAKPOINTS);
|
448
499
|
}
|
@@ -455,11 +506,11 @@ jsi::Value parser::Parser::getValueFromBreakpoints(jsi::Runtime& rt, Unistyle::S
|
|
455
506
|
|
456
507
|
// check orientation breakpoints if user didn't register own breakpoint
|
457
508
|
bool hasOrientationBreakpoint = obj.hasProperty(rt, currentOrientation);
|
458
|
-
|
509
|
+
|
459
510
|
if (hasOrientationBreakpoint) {
|
460
511
|
unistyle->addDependency(UnistyleDependency::BREAKPOINTS);
|
461
512
|
}
|
462
|
-
|
513
|
+
|
463
514
|
if (!hasBreakpoints && hasOrientationBreakpoint) {
|
464
515
|
return obj.getProperty(rt, currentOrientation);
|
465
516
|
}
|
@@ -467,7 +518,7 @@ jsi::Value parser::Parser::getValueFromBreakpoints(jsi::Runtime& rt, Unistyle::S
|
|
467
518
|
if (!currentBreakpoint.has_value()) {
|
468
519
|
return jsi::Value::undefined();
|
469
520
|
}
|
470
|
-
|
521
|
+
|
471
522
|
unistyle->addDependency(UnistyleDependency::BREAKPOINTS);
|
472
523
|
|
473
524
|
// if you're still here it means that there is no
|
@@ -513,7 +564,7 @@ jsi::Object parser::Parser::parseVariants(jsi::Runtime& rt, Unistyle::Shared uni
|
|
513
564
|
: std::nullopt;
|
514
565
|
|
515
566
|
// we've got a match, but we need to check some condition
|
516
|
-
auto styles = this->getStylesForVariant(rt, groupValue.asObject(rt), selectedVariant);
|
567
|
+
auto styles = this->getStylesForVariant(rt, groupName, groupValue.asObject(rt), selectedVariant, variants);
|
517
568
|
|
518
569
|
// oops, invalid variant
|
519
570
|
if (styles.isUndefined() || !styles.isObject()) {
|
@@ -529,13 +580,19 @@ jsi::Object parser::Parser::parseVariants(jsi::Runtime& rt, Unistyle::Shared uni
|
|
529
580
|
}
|
530
581
|
|
531
582
|
// helpers function to support 'default' variants
|
532
|
-
jsi::Value parser::Parser::getStylesForVariant(jsi::Runtime& rt, jsi::Object&& groupValue, std::optional<std::string> selectedVariant) {
|
583
|
+
jsi::Value parser::Parser::getStylesForVariant(jsi::Runtime& rt, const std::string groupName, jsi::Object&& groupValue, std::optional<std::string> selectedVariant, Variants& variants) {
|
533
584
|
// if there is no value, let's try 'default'
|
534
585
|
auto selectedVariantKey = selectedVariant.has_value()
|
535
586
|
? selectedVariant.value().c_str()
|
536
587
|
: "default";
|
588
|
+
auto hasKey = groupValue.hasProperty(rt, selectedVariantKey);
|
537
589
|
|
538
|
-
if (
|
590
|
+
if (!hasKey || !selectedVariant.has_value()) {
|
591
|
+
// for no key, add 'default' selection to variants map
|
592
|
+
variants.emplace_back(groupName, selectedVariantKey);
|
593
|
+
}
|
594
|
+
|
595
|
+
if (hasKey) {
|
539
596
|
return groupValue.getProperty(rt, selectedVariantKey);
|
540
597
|
}
|
541
598
|
|
@@ -575,28 +632,20 @@ bool parser::Parser::shouldApplyCompoundVariants(jsi::Runtime& rt, const Variant
|
|
575
632
|
return false;
|
576
633
|
}
|
577
634
|
|
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
635
|
for (auto it = variants.cbegin(); it != variants.cend(); ++it) {
|
589
636
|
auto variantKey = it->first;
|
590
637
|
auto variantValue = it->second;
|
591
638
|
|
592
639
|
if (!compoundVariant.hasProperty(rt, variantKey.c_str())) {
|
593
|
-
|
640
|
+
continue;
|
594
641
|
}
|
595
642
|
|
596
643
|
auto property = compoundVariant.getProperty(rt, variantKey.c_str());
|
597
644
|
auto propertyName = property.isBool()
|
598
645
|
? (property.asBool() ? "true" : "false")
|
599
|
-
: property.
|
646
|
+
: property.isString()
|
647
|
+
? property.asString(rt).utf8(rt)
|
648
|
+
: "";
|
600
649
|
|
601
650
|
if (propertyName != variantValue) {
|
602
651
|
return false;
|
@@ -674,41 +723,25 @@ jsi::Value parser::Parser::parseSecondLevel(jsi::Runtime &rt, Unistyle::Shared u
|
|
674
723
|
return parsedStyle;
|
675
724
|
}
|
676
725
|
|
677
|
-
//
|
678
|
-
|
679
|
-
Variants pairs{};
|
680
|
-
|
681
|
-
helpers::enumerateJSIObject(rt, variants, [&](const std::string& variantName, jsi::Value& variantValue){
|
682
|
-
if (variantValue.isUndefined() || variantValue.isNull()) {
|
683
|
-
return;
|
684
|
-
}
|
685
|
-
|
686
|
-
if (variantValue.isBool()) {
|
687
|
-
pairs.emplace_back(std::make_pair(variantName, variantValue.asBool() ? "true" : "false"));
|
688
|
-
|
689
|
-
return;
|
690
|
-
}
|
691
|
-
|
692
|
-
if (variantValue.isString()) {
|
693
|
-
pairs.emplace_back(std::make_pair(variantName, variantValue.asString(rt).utf8(rt)));
|
694
|
-
}
|
695
|
-
});
|
696
|
-
|
697
|
-
return pairs;
|
698
|
-
}
|
699
|
-
|
700
|
-
// convert jsi::Object to RawValue with int colors
|
701
|
-
RawProps parser::Parser::parseStylesToShadowTreeStyles(jsi::Runtime& rt, jsi::Object& styles) {
|
726
|
+
// convert unistyles to RawValue with int colors
|
727
|
+
RawProps parser::Parser::parseStylesToShadowTreeStyles(jsi::Runtime& rt, const std::vector<std::shared_ptr<UnistyleData>>& unistyles) {
|
702
728
|
jsi::Object convertedStyles = jsi::Object(rt);
|
703
729
|
auto& state = core::UnistylesRegistry::get().getState(rt);
|
704
730
|
|
705
|
-
|
706
|
-
if (
|
707
|
-
|
731
|
+
for (const auto& unistyleData : unistyles) {
|
732
|
+
if (!unistyleData->parsedStyle.has_value()) {
|
733
|
+
// todo this something happens with large dataset, debug it
|
734
|
+
continue;
|
708
735
|
}
|
709
736
|
|
710
|
-
|
711
|
-
|
737
|
+
helpers::enumerateJSIObject(rt, unistyleData->parsedStyle.value(), [&](const std::string& propertyName, jsi::Value& propertyValue){
|
738
|
+
if (this->isColor(propertyName)) {
|
739
|
+
return convertedStyles.setProperty(rt, propertyName.c_str(), jsi::Value(state.parseColor(propertyValue)));
|
740
|
+
}
|
741
|
+
|
742
|
+
convertedStyles.setProperty(rt, propertyName.c_str(), propertyValue);
|
743
|
+
});
|
744
|
+
}
|
712
745
|
|
713
746
|
return RawProps(rt, std::move(convertedStyles));
|
714
747
|
}
|
package/cxx/parser/Parser.h
CHANGED
@@ -17,36 +17,32 @@ using namespace facebook;
|
|
17
17
|
using namespace margelo::nitro::unistyles::core;
|
18
18
|
|
19
19
|
using Variants = std::vector<std::pair<std::string, std::string>>;
|
20
|
-
using DependencyMap = std::unordered_map<
|
21
|
-
std::shared_ptr<core::StyleSheet>,
|
22
|
-
std::unordered_map<const ShadowNodeFamily*, std::vector<core::Unistyle::Shared>>
|
23
|
-
>;
|
24
20
|
|
25
21
|
struct Parser {
|
26
22
|
Parser(std::shared_ptr<HybridUnistylesRuntime> unistylesRuntime): _unistylesRuntime{unistylesRuntime} {}
|
27
23
|
|
28
24
|
void buildUnistyles(jsi::Runtime& rt, std::shared_ptr<StyleSheet> styleSheet);
|
29
25
|
void parseUnistyles(jsi::Runtime& rt, std::shared_ptr<StyleSheet> styleSheet);
|
30
|
-
|
31
|
-
void
|
32
|
-
void
|
33
|
-
shadow::ShadowLeafUpdates dependencyMapToShadowLeafUpdates(DependencyMap& dependencyMap);
|
26
|
+
void rebuildUnistylesWithVariants(jsi::Runtime& rt, std::shared_ptr<StyleSheet> styleSheet, Variants& variants);
|
27
|
+
void rebuildUnistylesInDependencyMap(jsi::Runtime& rt, core::DependencyMap& dependencyMap, std::vector<std::shared_ptr<core::StyleSheet>> styleSheets);
|
28
|
+
void rebuildShadowLeafUpdates(core::DependencyMap& dependencyMap);
|
34
29
|
|
35
30
|
private:
|
36
|
-
void rebuildUnistyle(jsi::Runtime& rt, std::shared_ptr<StyleSheet> styleSheet, Unistyle::Shared unistyle);
|
31
|
+
void rebuildUnistyle(jsi::Runtime& rt, std::shared_ptr<StyleSheet> styleSheet, Unistyle::Shared unistyle, const Variants& variants, std::optional<std::vector<folly::dynamic>>);
|
37
32
|
jsi::Object unwrapStyleSheet(jsi::Runtime& rt, std::shared_ptr<StyleSheet> styleSheet);
|
38
|
-
jsi::Object parseFirstLevel(jsi::Runtime& rt, Unistyle::Shared unistyle, Variants
|
33
|
+
jsi::Object parseFirstLevel(jsi::Runtime& rt, Unistyle::Shared unistyle, std::optional<Variants> variants);
|
39
34
|
jsi::Value parseSecondLevel(jsi::Runtime& rt, Unistyle::Shared unistyle, jsi::Value& nestedObject);
|
40
|
-
jsi::Function createDynamicFunctionProxy(jsi::Runtime& rt, Unistyle::Shared unistyle
|
41
|
-
std::vector<folly::dynamic> parseDynamicFunctionArguments(jsi::Runtime& rt, size_t count, const jsi::Value* arguments);
|
35
|
+
jsi::Function createDynamicFunctionProxy(jsi::Runtime& rt, Unistyle::Shared unistyle);
|
42
36
|
std::vector<UnistyleDependency> parseDependencies(jsi::Runtime &rt, jsi::Object&& dependencies);
|
43
37
|
jsi::Value parseTransforms(jsi::Runtime& rt, Unistyle::Shared unistyle, jsi::Object& obj);
|
38
|
+
jsi::Value parseBoxShadow(jsi::Runtime& rt, Unistyle::Shared unistyle, jsi::Object& obj);
|
39
|
+
jsi::Value parseFilters(jsi::Runtime& rt, Unistyle::Shared unistyle, jsi::Object& obj);
|
44
40
|
jsi::Value getValueFromBreakpoints(jsi::Runtime& rt, Unistyle::Shared unistyle, jsi::Object& obj);
|
45
41
|
jsi::Object parseVariants(jsi::Runtime& rt, Unistyle::Shared unistyle, jsi::Object& obj, Variants& variants);
|
46
|
-
jsi::Value getStylesForVariant(jsi::Runtime& rt, jsi::Object&& groupValue, std::optional<std::string> selectedVariant);
|
42
|
+
jsi::Value getStylesForVariant(jsi::Runtime& rt, const std::string groupName, jsi::Object&& groupValue, std::optional<std::string> selectedVariant, Variants& variants);
|
47
43
|
jsi::Object parseCompoundVariants(jsi::Runtime& rt, Unistyle::Shared unistyle, jsi::Object& obj, Variants& variants);
|
48
44
|
bool shouldApplyCompoundVariants(jsi::Runtime& rt, const Variants& variants, jsi::Object& compoundVariant);
|
49
|
-
RawProps parseStylesToShadowTreeStyles(jsi::Runtime& rt,
|
45
|
+
RawProps parseStylesToShadowTreeStyles(jsi::Runtime& rt, const std::vector<std::shared_ptr<UnistyleData>>& unistyles);
|
50
46
|
bool isColor(const std::string& propertyName);
|
51
47
|
|
52
48
|
std::shared_ptr<HybridUnistylesRuntime> _unistylesRuntime;
|