react-native-unistyles 3.0.0-alpha.3 → 3.0.0-alpha.30
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 +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
|
@@ -9,28 +9,25 @@ double HybridStyleSheet::getHairlineWidth() {
|
|
|
9
9
|
return nearestPixel / pixelRatio;
|
|
10
10
|
}
|
|
11
11
|
|
|
12
|
-
double HybridStyleSheet::
|
|
12
|
+
double HybridStyleSheet::getUnid() {
|
|
13
13
|
return this->__unid;
|
|
14
14
|
}
|
|
15
15
|
|
|
16
|
-
jsi::Value HybridStyleSheet::create(jsi::Runtime
|
|
17
|
-
|
|
16
|
+
jsi::Value HybridStyleSheet::create(jsi::Runtime& rt, const jsi::Value &thisVal, const jsi::Value *arguments, size_t count) {
|
|
17
|
+
if (count == 1) {
|
|
18
|
+
helpers::assertThat(rt, count == 2, "Unistyles is not initialized correctly. Please add babel plugin to your babel config.");
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
// second argument is hidden, so validation is perfectly fine
|
|
22
|
+
helpers::assertThat(rt, count == 2, "StyleSheet.create expected to be called with one argument.");
|
|
18
23
|
helpers::assertThat(rt, arguments[0].isObject(), "StyleSheet.create expected to be called with object or function.");
|
|
19
24
|
|
|
20
25
|
auto thisStyleSheet = thisVal.asObject(rt);
|
|
21
26
|
auto& registry = core::UnistylesRegistry::get();
|
|
22
|
-
|
|
23
|
-
// this might happen only when hot reloading
|
|
24
|
-
if (this->__unid != -1) {
|
|
25
|
-
auto registeredStyleSheet = registry.getStyleSheetById(this->__unid);
|
|
26
|
-
auto style = std::make_shared<core::HostStyle>(registeredStyleSheet, this->_unistylesRuntime);
|
|
27
|
-
auto styleHostObject = jsi::Object::createFromHostObject(rt, style);
|
|
28
|
-
|
|
29
|
-
return styleHostObject;
|
|
30
|
-
}
|
|
27
|
+
int unid = arguments[1].asNumber();
|
|
31
28
|
|
|
32
29
|
jsi::Object rawStyleSheet = arguments[0].asObject(rt);
|
|
33
|
-
auto registeredStyleSheet = registry.addStyleSheetFromValue(rt, std::move(rawStyleSheet));
|
|
30
|
+
auto registeredStyleSheet = registry.addStyleSheetFromValue(rt, std::move(rawStyleSheet), unid);
|
|
34
31
|
|
|
35
32
|
this->__unid = registeredStyleSheet->tag;
|
|
36
33
|
|
|
@@ -49,36 +46,47 @@ jsi::Value HybridStyleSheet::configure(jsi::Runtime &rt, const jsi::Value &thisV
|
|
|
49
46
|
helpers::assertThat(rt, count == 1, "StyleSheet.configure expected to be called with one argument.");
|
|
50
47
|
helpers::assertThat(rt, arguments[0].isObject(), "StyleSheet.configure expected to be called with object.");
|
|
51
48
|
|
|
52
|
-
// create new state
|
|
53
49
|
auto config = arguments[0].asObject(rt);
|
|
54
|
-
auto& registry = core::UnistylesRegistry::get();
|
|
55
|
-
|
|
56
|
-
registry.createState(rt);
|
|
57
50
|
|
|
58
51
|
helpers::enumerateJSIObject(rt, config, [&](const std::string& propertyName, jsi::Value& propertyValue){
|
|
59
52
|
if (propertyName == "settings") {
|
|
60
|
-
helpers::assertThat(rt, propertyValue.isObject(), "settings must be an object.");
|
|
53
|
+
helpers::assertThat(rt, propertyValue.isObject(), "StyleSheet.configure's settings must be an object.");
|
|
61
54
|
|
|
62
55
|
return this->parseSettings(rt, propertyValue.asObject(rt));
|
|
63
56
|
}
|
|
64
57
|
|
|
65
58
|
if (propertyName == "breakpoints") {
|
|
66
|
-
helpers::assertThat(rt, propertyValue.isObject(), "breakpoints must be an object.");
|
|
59
|
+
helpers::assertThat(rt, propertyValue.isObject(), "StyleSheet.configure's breakpoints must be an object.");
|
|
67
60
|
|
|
68
61
|
return this->parseBreakpoints(rt, propertyValue.asObject(rt));
|
|
69
62
|
}
|
|
70
63
|
|
|
71
64
|
if (propertyName == "themes") {
|
|
72
|
-
helpers::assertThat(rt, propertyValue.isObject(), "themes must be an object.");
|
|
65
|
+
helpers::assertThat(rt, propertyValue.isObject(), "StyleSheet.configure's themes must be an object.");
|
|
73
66
|
|
|
74
67
|
return this->parseThemes(rt, propertyValue.asObject(rt));
|
|
75
68
|
}
|
|
76
69
|
|
|
77
|
-
helpers::assertThat(rt, false, "received unexpected key: '" + std::string(propertyName) + "'.");
|
|
70
|
+
helpers::assertThat(rt, false, "StyleSheet.configure received unexpected key: '" + std::string(propertyName) + "'.");
|
|
78
71
|
});
|
|
79
72
|
|
|
80
73
|
verifyAndSelectTheme(rt);
|
|
74
|
+
|
|
75
|
+
auto& state = core::UnistylesRegistry::get().getState(rt);
|
|
76
|
+
|
|
77
|
+
state.hasUserConfig = true;
|
|
78
|
+
|
|
79
|
+
return jsi::Value::undefined();
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
jsi::Value HybridStyleSheet::init(jsi::Runtime &rt, const jsi::Value &thisVal, const jsi::Value *arguments, size_t count) {
|
|
83
|
+
// create new state
|
|
84
|
+
auto& registry = core::UnistylesRegistry::get();
|
|
85
|
+
|
|
86
|
+
registry.createState(rt);
|
|
87
|
+
|
|
81
88
|
loadExternalMethods(thisVal, rt);
|
|
89
|
+
registerHooks(rt);
|
|
82
90
|
|
|
83
91
|
return jsi::Value::undefined();
|
|
84
92
|
}
|
|
@@ -88,7 +96,7 @@ void HybridStyleSheet::parseSettings(jsi::Runtime &rt, jsi::Object settings) {
|
|
|
88
96
|
|
|
89
97
|
helpers::enumerateJSIObject(rt, settings, [&](const std::string& propertyName, jsi::Value& propertyValue){
|
|
90
98
|
if (propertyName == "adaptiveThemes") {
|
|
91
|
-
helpers::assertThat(rt, propertyValue.isBool(), "adaptiveThemes
|
|
99
|
+
helpers::assertThat(rt, propertyValue.isBool(), "StyleSheet.configure's adaptiveThemes must be of boolean type.");
|
|
92
100
|
|
|
93
101
|
registry.setPrefersAdaptiveThemes(rt, propertyValue.asBool());
|
|
94
102
|
|
|
@@ -97,31 +105,31 @@ void HybridStyleSheet::parseSettings(jsi::Runtime &rt, jsi::Object settings) {
|
|
|
97
105
|
|
|
98
106
|
if (propertyName == "initialTheme") {
|
|
99
107
|
if (propertyValue.isObject()) {
|
|
100
|
-
helpers::assertThat(rt, propertyValue.asObject(rt).isFunction(rt), "initialTheme
|
|
108
|
+
helpers::assertThat(rt, propertyValue.asObject(rt).isFunction(rt), "StyleSheet.configure's initialTheme must be either a string or a function.");
|
|
101
109
|
|
|
102
110
|
auto result = propertyValue.asObject(rt).asFunction(rt).call(rt);
|
|
103
111
|
|
|
104
|
-
helpers::assertThat(rt, result.isString(), "initialTheme resolved from function is not a string. Please check your initialTheme function.");
|
|
112
|
+
helpers::assertThat(rt, result.isString(), "StyleSheet.configure's initialTheme resolved from function is not a string. Please check your initialTheme function.");
|
|
105
113
|
|
|
106
114
|
return registry.setInitialThemeName(rt, result.asString(rt).utf8(rt));
|
|
107
115
|
}
|
|
108
116
|
|
|
109
|
-
helpers::assertThat(rt, propertyValue.isString(), "initialTheme
|
|
117
|
+
helpers::assertThat(rt, propertyValue.isString(), "StyleSheet.configure's initialTheme must be either a string or a function.");
|
|
110
118
|
|
|
111
119
|
registry.setInitialThemeName(rt, propertyValue.asString(rt).utf8(rt));
|
|
112
120
|
|
|
113
121
|
return;
|
|
114
122
|
}
|
|
115
123
|
|
|
116
|
-
helpers::assertThat(rt, false, "settings received unexpected key: '" + std::string(propertyName) + "'");
|
|
124
|
+
helpers::assertThat(rt, false, "StyleSheet.configure's settings received unexpected key: '" + std::string(propertyName) + "'");
|
|
117
125
|
});
|
|
118
126
|
}
|
|
119
127
|
|
|
120
128
|
void HybridStyleSheet::parseBreakpoints(jsi::Runtime &rt, jsi::Object breakpoints){
|
|
121
129
|
helpers::Breakpoints sortedBreakpoints = helpers::jsiBreakpointsToVecPairs(rt, std::move(breakpoints));
|
|
122
130
|
|
|
123
|
-
helpers::assertThat(rt, sortedBreakpoints.size() > 0, "
|
|
124
|
-
helpers::assertThat(rt, sortedBreakpoints.front().second == 0, "first breakpoint must start from 0.");
|
|
131
|
+
helpers::assertThat(rt, sortedBreakpoints.size() > 0, "StyleSheet.configure's breakpoints can't be empty.");
|
|
132
|
+
helpers::assertThat(rt, sortedBreakpoints.front().second == 0, "StyleSheet.configure's first breakpoint must start from 0.");
|
|
125
133
|
|
|
126
134
|
auto& registry = core::UnistylesRegistry::get();
|
|
127
135
|
auto& state = registry.getState(rt);
|
|
@@ -134,13 +142,12 @@ void HybridStyleSheet::parseThemes(jsi::Runtime &rt, jsi::Object themes) {
|
|
|
134
142
|
auto& registry = core::UnistylesRegistry::get();
|
|
135
143
|
|
|
136
144
|
helpers::enumerateJSIObject(rt, themes, [&](const std::string& propertyName, jsi::Value& propertyValue){
|
|
137
|
-
helpers::assertThat(rt, propertyValue.isObject(), "registered theme '" + propertyName + "' must be an object.");
|
|
145
|
+
helpers::assertThat(rt, propertyValue.isObject(), "StyleSheet.configure's registered theme '" + propertyName + "' must be an object.");
|
|
138
146
|
|
|
139
|
-
registry.registerTheme(rt, propertyName, propertyValue
|
|
147
|
+
registry.registerTheme(rt, propertyName, propertyValue);
|
|
140
148
|
});
|
|
141
149
|
}
|
|
142
150
|
|
|
143
|
-
|
|
144
151
|
void HybridStyleSheet::verifyAndSelectTheme(jsi::Runtime &rt) {
|
|
145
152
|
auto& state = core::UnistylesRegistry::get().getState(rt);
|
|
146
153
|
|
|
@@ -152,7 +159,7 @@ void HybridStyleSheet::verifyAndSelectTheme(jsi::Runtime &rt) {
|
|
|
152
159
|
|
|
153
160
|
// user tries to enable adaptive themes, but didn't register both 'light' and 'dark' themes
|
|
154
161
|
if (prefersAdaptiveThemes && !hasAdaptiveThemes) {
|
|
155
|
-
helpers::assertThat(rt, false, "
|
|
162
|
+
helpers::assertThat(rt, false, "Unistyles: You're trying to enable adaptiveThemes, but you didn't register both 'light' and 'dark' themes.");
|
|
156
163
|
}
|
|
157
164
|
|
|
158
165
|
// user didn't select initial theme nor can have adaptive themes, and registered more than 1 theme
|
|
@@ -176,14 +183,14 @@ void HybridStyleSheet::verifyAndSelectTheme(jsi::Runtime &rt) {
|
|
|
176
183
|
// user selected both initial theme and adaptive themes
|
|
177
184
|
// we should throw an error as these options are mutually exclusive
|
|
178
185
|
if (hasInitialTheme && hasAdaptiveThemes) {
|
|
179
|
-
helpers::assertThat(rt, false, "
|
|
186
|
+
helpers::assertThat(rt, false, "Unistyles: You're trying to set initial theme and enable adaptiveThemes, but these options are mutually exclusive.");
|
|
180
187
|
}
|
|
181
188
|
|
|
182
189
|
// user only selected initial theme
|
|
183
190
|
// validate if following theme exist
|
|
184
191
|
std::string selectedTheme = state.getInitialTheme().value();
|
|
185
192
|
|
|
186
|
-
helpers::assertThat(rt, state.hasTheme(selectedTheme), "
|
|
193
|
+
helpers::assertThat(rt, state.hasTheme(selectedTheme), "Unistyles: You're trying to select theme '" + selectedTheme + "' but it wasn't registered.");
|
|
187
194
|
|
|
188
195
|
state.setTheme(selectedTheme);
|
|
189
196
|
}
|
|
@@ -202,18 +209,18 @@ void HybridStyleSheet::setThemeFromColorScheme(jsi::Runtime& rt) {
|
|
|
202
209
|
|
|
203
210
|
return;
|
|
204
211
|
default:
|
|
205
|
-
throw std::runtime_error("
|
|
212
|
+
throw std::runtime_error("Unistyles: Unable to set adaptive theme as your device doesn't support it.");
|
|
206
213
|
}
|
|
207
214
|
}
|
|
208
215
|
|
|
209
216
|
void HybridStyleSheet::loadExternalMethods(const jsi::Value& thisValue, jsi::Runtime& rt) {
|
|
210
217
|
auto jsMethods = thisValue.getObject(rt).getProperty(rt, "jsMethods");
|
|
211
218
|
|
|
212
|
-
helpers::assertThat(rt, jsMethods.isObject(), "
|
|
219
|
+
helpers::assertThat(rt, jsMethods.isObject(), "Unistyles: Can't find jsMethods.");
|
|
213
220
|
|
|
214
221
|
auto maybeProcessColorFn = jsMethods.asObject(rt).getProperty(rt, "processColor");
|
|
215
222
|
|
|
216
|
-
helpers::assertThat(rt, maybeProcessColorFn.isObject(), "
|
|
223
|
+
helpers::assertThat(rt, maybeProcessColorFn.isObject(), "Unistyles: Can't load processColor function from JS.");
|
|
217
224
|
|
|
218
225
|
auto processColorFn = maybeProcessColorFn.asObject(rt).asFunction(rt);
|
|
219
226
|
auto& registry = core::UnistylesRegistry::get();
|
|
@@ -222,19 +229,110 @@ void HybridStyleSheet::loadExternalMethods(const jsi::Value& thisValue, jsi::Run
|
|
|
222
229
|
state.registerProcessColorFunction(std::move(processColorFn));
|
|
223
230
|
}
|
|
224
231
|
|
|
225
|
-
void HybridStyleSheet::
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
232
|
+
void HybridStyleSheet::registerHooks(jsi::Runtime& rt) {
|
|
233
|
+
this->_unistylesCommitHook = std::make_shared<core::UnistylesCommitHook>(this->_uiManager, rt);
|
|
234
|
+
this->_unistylesMountHook = std::make_shared<core::UnistylesMountHook>(this->_uiManager);
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
void HybridStyleSheet::onPlatformDependenciesChange(std::vector<UnistyleDependency> unistylesDependencies) {
|
|
238
|
+
if (this->_unistylesRuntime == nullptr) {
|
|
239
|
+
return;
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
this->_unistylesRuntime->runOnJSThread([this, unistylesDependencies](jsi::Runtime& rt){
|
|
243
|
+
auto& registry = core::UnistylesRegistry::get();
|
|
244
|
+
auto parser = parser::Parser(this->_unistylesRuntime);
|
|
245
|
+
auto dependencies = std::move(unistylesDependencies);
|
|
246
|
+
|
|
247
|
+
// re-compute new breakpoint
|
|
248
|
+
auto dimensionsIt = std::find(dependencies.begin(), dependencies.end(), UnistyleDependency::DIMENSIONS);
|
|
249
|
+
|
|
250
|
+
if (dimensionsIt != dependencies.end()) {
|
|
251
|
+
registry.getState(rt).computeCurrentBreakpoint(this->_unistylesRuntime->getScreen().width);
|
|
252
|
+
}
|
|
230
253
|
|
|
231
|
-
|
|
254
|
+
// check if color scheme changed and then if Unistyles state depend on it (adaptive themes)
|
|
255
|
+
auto colorSchemeIt = std::find(dependencies.begin(), dependencies.end(), UnistyleDependency::COLORSCHEME);
|
|
256
|
+
auto hasNewColorScheme = colorSchemeIt != dependencies.end();
|
|
257
|
+
|
|
258
|
+
// in a later step, we will rebuild only Unistyles with mounted StyleSheets
|
|
259
|
+
// however, user may have StyleSheets with components that haven't mounted yet
|
|
260
|
+
// we need to rebuild all dependent StyleSheets as well
|
|
261
|
+
auto dependentStyleSheets = registry.getStyleSheetsToRefresh(rt, hasNewColorScheme, dependencies.size() > 1);
|
|
262
|
+
|
|
263
|
+
if (hasNewColorScheme) {
|
|
264
|
+
this->_unistylesRuntime->includeDependenciesForColorSchemeChange(dependencies);
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
auto dependencyMap = registry.buildDependencyMap(rt, dependencies);
|
|
268
|
+
|
|
269
|
+
if (dependencyMap.size() == 0) {
|
|
270
|
+
this->notifyJSListeners(dependencies);
|
|
271
|
+
|
|
272
|
+
return;
|
|
273
|
+
}
|
|
274
|
+
|
|
275
|
+
parser.rebuildUnistylesInDependencyMap(rt, dependencyMap, dependentStyleSheets);
|
|
276
|
+
|
|
277
|
+
this->notifyJSListeners(dependencies);
|
|
278
|
+
|
|
279
|
+
// this is required, otherwise shadow tree will ignore Unistyles commit
|
|
280
|
+
registry.trafficController.setHasUnistylesCommit(true);
|
|
281
|
+
parser.rebuildShadowLeafUpdates(dependencyMap);
|
|
282
|
+
|
|
283
|
+
shadow::ShadowTreeManager::updateShadowTree(rt, registry.trafficController._unistylesUpdates[&rt]);
|
|
284
|
+
});
|
|
285
|
+
}
|
|
286
|
+
|
|
287
|
+
void HybridStyleSheet::onImeChange() {
|
|
288
|
+
if (this->_unistylesRuntime == nullptr) {
|
|
232
289
|
return;
|
|
233
290
|
}
|
|
234
291
|
|
|
235
|
-
|
|
292
|
+
this->_unistylesRuntime->runOnJSThread([this](jsi::Runtime& rt){
|
|
293
|
+
auto& registry = core::UnistylesRegistry::get();
|
|
294
|
+
auto parser = parser::Parser(this->_unistylesRuntime);
|
|
295
|
+
|
|
296
|
+
std::vector<UnistyleDependency> dependencies{UnistyleDependency::IME};
|
|
297
|
+
|
|
298
|
+
this->notifyJSListeners(dependencies);
|
|
299
|
+
|
|
300
|
+
auto dependencyMap = registry.buildDependencyMap(rt, dependencies);
|
|
301
|
+
|
|
302
|
+
if (dependencyMap.size() == 0) {
|
|
303
|
+
return;
|
|
304
|
+
}
|
|
305
|
+
|
|
306
|
+
parser.rebuildUnistylesInDependencyMap(rt, dependencyMap, {});
|
|
307
|
+
|
|
308
|
+
// this is required, otherwise shadow tree will ignore Unistyles commit
|
|
309
|
+
registry.trafficController.setHasUnistylesCommit(true);
|
|
310
|
+
parser.rebuildShadowLeafUpdates(dependencyMap);
|
|
311
|
+
|
|
312
|
+
shadow::ShadowTreeManager::updateShadowTree(rt, registry.trafficController._unistylesUpdates[&rt]);
|
|
313
|
+
});
|
|
314
|
+
}
|
|
315
|
+
|
|
316
|
+
void HybridStyleSheet::notifyJSListeners(std::vector<UnistyleDependency>& dependencies) {
|
|
317
|
+
if (dependencies.size() > 0) {
|
|
318
|
+
std::for_each(this->_changeListeners.begin(), this->_changeListeners.end(), [&](auto& listener){
|
|
319
|
+
(*listener)(dependencies);
|
|
320
|
+
});
|
|
321
|
+
}
|
|
322
|
+
}
|
|
323
|
+
|
|
324
|
+
std::function<void ()> HybridStyleSheet::addChangeListener(const std::function<void (const std::vector<UnistyleDependency>&)>& onChanged) {
|
|
325
|
+
auto listener = std::make_unique<std::function<void(std::vector<UnistyleDependency>&)>>(onChanged);
|
|
236
326
|
|
|
237
|
-
|
|
327
|
+
this->_changeListeners.push_back(std::move(listener));
|
|
238
328
|
|
|
239
|
-
|
|
329
|
+
return [this, listenerPtr = this->_changeListeners.back().get()](){
|
|
330
|
+
auto it = std::find_if(this->_changeListeners.begin(), this->_changeListeners.end(), [listenerPtr](auto& ptr) {
|
|
331
|
+
return ptr.get() == listenerPtr;
|
|
332
|
+
});
|
|
333
|
+
|
|
334
|
+
if (it != this->_changeListeners.end()) {
|
|
335
|
+
this->_changeListeners.erase(it);
|
|
336
|
+
}
|
|
337
|
+
};
|
|
240
338
|
}
|
|
@@ -11,19 +11,26 @@
|
|
|
11
11
|
#include "Parser.h"
|
|
12
12
|
#include "ShadowTreeManager.h"
|
|
13
13
|
#include "UnistylesCommitHook.h"
|
|
14
|
+
#include "UnistylesMountHook.h"
|
|
14
15
|
|
|
15
16
|
using namespace margelo::nitro::unistyles;
|
|
16
17
|
using namespace facebook::react;
|
|
17
18
|
|
|
18
19
|
struct HybridStyleSheet: public HybridUnistylesStyleSheetSpec {
|
|
19
20
|
HybridStyleSheet(std::shared_ptr<HybridUnistylesRuntime> unistylesRuntime, std::shared_ptr<UIManager> uiManager)
|
|
20
|
-
: HybridObject(TAG), _unistylesRuntime{unistylesRuntime} {
|
|
21
|
-
this->_unistylesCommitHook = std::make_shared<core::UnistylesCommitHook>(uiManager, unistylesRuntime);
|
|
21
|
+
: HybridObject(TAG), _unistylesRuntime{unistylesRuntime}, _uiManager{uiManager} {
|
|
22
22
|
this->_unistylesRuntime->registerPlatformListener(
|
|
23
23
|
std::bind(&HybridStyleSheet::onPlatformDependenciesChange, this, std::placeholders::_1)
|
|
24
24
|
);
|
|
25
|
+
this->_unistylesRuntime->registerImeListener(
|
|
26
|
+
std::bind(&HybridStyleSheet::onImeChange, this)
|
|
27
|
+
);
|
|
25
28
|
}
|
|
26
29
|
|
|
30
|
+
~HybridStyleSheet() {
|
|
31
|
+
this->_unistylesRuntime->unregisterPlatformListeners();
|
|
32
|
+
}
|
|
33
|
+
|
|
27
34
|
jsi::Value create(jsi::Runtime& rt,
|
|
28
35
|
const jsi::Value& thisValue,
|
|
29
36
|
const jsi::Value* args,
|
|
@@ -32,19 +39,25 @@ struct HybridStyleSheet: public HybridUnistylesStyleSheetSpec {
|
|
|
32
39
|
const jsi::Value& thisValue,
|
|
33
40
|
const jsi::Value* args,
|
|
34
41
|
size_t count);
|
|
42
|
+
jsi::Value init(jsi::Runtime& rt,
|
|
43
|
+
const jsi::Value& thisValue,
|
|
44
|
+
const jsi::Value* args,
|
|
45
|
+
size_t count);
|
|
35
46
|
|
|
36
47
|
void loadHybridMethods() override {
|
|
37
48
|
HybridUnistylesStyleSheetSpec::loadHybridMethods();
|
|
38
49
|
|
|
39
50
|
registerHybrids(this, [](Prototype& prototype) {
|
|
51
|
+
prototype.registerRawHybridMethod("init", 1, &HybridStyleSheet::init);
|
|
40
52
|
prototype.registerRawHybridMethod("create", 1, &HybridStyleSheet::create);
|
|
41
53
|
prototype.registerRawHybridMethod("configure", 1, &HybridStyleSheet::configure);
|
|
42
54
|
});
|
|
43
55
|
};
|
|
44
56
|
|
|
45
57
|
double getHairlineWidth() override;
|
|
46
|
-
double
|
|
47
|
-
|
|
58
|
+
double getUnid() override;
|
|
59
|
+
std::function<void ()> addChangeListener(const std::function<void (const std::vector<UnistyleDependency> &)>& onChanged) override;
|
|
60
|
+
|
|
48
61
|
private:
|
|
49
62
|
void parseSettings(jsi::Runtime& rt, jsi::Object settings);
|
|
50
63
|
void parseBreakpoints(jsi::Runtime& rt, jsi::Object breakpoints);
|
|
@@ -52,10 +65,16 @@ private:
|
|
|
52
65
|
void verifyAndSelectTheme(jsi::Runtime &rt);
|
|
53
66
|
void setThemeFromColorScheme(jsi::Runtime& rt);
|
|
54
67
|
void loadExternalMethods(const jsi::Value& thisValue, jsi::Runtime& rt);
|
|
68
|
+
void registerHooks(jsi::Runtime& rt);
|
|
55
69
|
void onPlatformDependenciesChange(std::vector<UnistyleDependency> dependencies);
|
|
70
|
+
void onImeChange();
|
|
71
|
+
void notifyJSListeners(std::vector<UnistyleDependency>& dependencies);
|
|
56
72
|
|
|
57
73
|
double __unid = -1;
|
|
74
|
+
std::vector<std::unique_ptr<const std::function<void(std::vector<UnistyleDependency>&)>>> _changeListeners{};
|
|
58
75
|
std::shared_ptr<HybridUnistylesRuntime> _unistylesRuntime;
|
|
59
76
|
std::shared_ptr<core::UnistylesCommitHook> _unistylesCommitHook;
|
|
77
|
+
std::shared_ptr<core::UnistylesMountHook> _unistylesMountHook;
|
|
78
|
+
std::shared_ptr<UIManager> _uiManager;
|
|
60
79
|
};
|
|
61
80
|
|
|
@@ -58,7 +58,7 @@ double HybridUnistylesRuntime::getFontScale() {
|
|
|
58
58
|
};
|
|
59
59
|
|
|
60
60
|
void HybridUnistylesRuntime::setTheme(const std::string &themeName) {
|
|
61
|
-
helpers::assertThat(*_rt, !this->getHasAdaptiveThemes(), "You're trying to set theme to: '" + themeName + "', but adaptiveThemes are enabled.");
|
|
61
|
+
helpers::assertThat(*_rt, !this->getHasAdaptiveThemes(), "Unistyles: You're trying to set theme to: '" + themeName + "', but adaptiveThemes are enabled.");
|
|
62
62
|
|
|
63
63
|
auto& state = core::UnistylesRegistry::get().getState(*_rt);
|
|
64
64
|
|
|
@@ -71,7 +71,7 @@ void HybridUnistylesRuntime::setAdaptiveThemes(bool isEnabled) {
|
|
|
71
71
|
|
|
72
72
|
std::vector<UnistyleDependency> changedDependencies{};
|
|
73
73
|
|
|
74
|
-
changedDependencies.reserve(
|
|
74
|
+
changedDependencies.reserve(3);
|
|
75
75
|
|
|
76
76
|
bool hadAdaptiveThemes = this->getHasAdaptiveThemes();
|
|
77
77
|
|
|
@@ -92,6 +92,11 @@ void HybridUnistylesRuntime::setAdaptiveThemes(bool isEnabled) {
|
|
|
92
92
|
|
|
93
93
|
// if user enabled adaptive themes, then we need to make sure
|
|
94
94
|
// we selected theme based on color scheme
|
|
95
|
+
this->calculateNewThemeAndDependencies(changedDependencies);
|
|
96
|
+
this->_onDependenciesChange(changedDependencies);
|
|
97
|
+
};
|
|
98
|
+
|
|
99
|
+
void HybridUnistylesRuntime::calculateNewThemeAndDependencies(std::vector<UnistyleDependency>& changedDependencies) {
|
|
95
100
|
auto& state = core::UnistylesRegistry::get().getState(*_rt);
|
|
96
101
|
auto colorScheme = this->getColorScheme();
|
|
97
102
|
auto currentThemeName = this->getThemeName();
|
|
@@ -105,9 +110,25 @@ void HybridUnistylesRuntime::setAdaptiveThemes(bool isEnabled) {
|
|
|
105
110
|
|
|
106
111
|
state.setTheme(nextTheme);
|
|
107
112
|
}
|
|
113
|
+
}
|
|
108
114
|
|
|
109
|
-
|
|
110
|
-
|
|
115
|
+
jsi::Value HybridUnistylesRuntime::getTheme(jsi::Runtime &rt, const jsi::Value &thisValue, const jsi::Value *args, size_t count) {
|
|
116
|
+
helpers::assertThat(rt, count <= 1, "UnistylesRuntime.getTheme expected to be called with 0 or 1 argument.");
|
|
117
|
+
|
|
118
|
+
auto& state = core::UnistylesRegistry::get().getState(*_rt);
|
|
119
|
+
|
|
120
|
+
if (count == 1) {
|
|
121
|
+
helpers::assertThat(rt, args[0].isString(), "UnistylesRuntime.getTheme expected to be called with string.");
|
|
122
|
+
|
|
123
|
+
auto themeName = args[0].asString(rt).utf8(rt);
|
|
124
|
+
|
|
125
|
+
helpers::assertThat(rt, state.hasTheme(themeName), "Unistyles: You're trying to get theme '" + themeName + "' but it wasn't registered.");
|
|
126
|
+
|
|
127
|
+
return state.getJSThemeByName(themeName);
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
return state.getCurrentJSTheme();
|
|
131
|
+
}
|
|
111
132
|
|
|
112
133
|
jsi::Value HybridUnistylesRuntime::updateTheme(jsi::Runtime &rt, const jsi::Value &thisValue, const jsi::Value *args, size_t count) {
|
|
113
134
|
helpers::assertThat(rt, count == 2, "UnistylesRuntime.updateTheme expected to be called with 2 arguments.");
|
|
@@ -117,7 +138,7 @@ jsi::Value HybridUnistylesRuntime::updateTheme(jsi::Runtime &rt, const jsi::Valu
|
|
|
117
138
|
auto& registry = core::UnistylesRegistry::get();
|
|
118
139
|
auto themeName = args[0].asString(rt).utf8(rt);
|
|
119
140
|
|
|
120
|
-
helpers::assertThat(rt, args[1].asObject(rt).isFunction(rt), "second argument
|
|
141
|
+
helpers::assertThat(rt, args[1].asObject(rt).isFunction(rt), "UnistylesRuntime.updateTheme expected second argument to be a function.");
|
|
121
142
|
|
|
122
143
|
registry.updateTheme(rt, themeName, args[1].asObject(rt).asFunction(rt));
|
|
123
144
|
|
|
@@ -155,7 +176,6 @@ UnistylesCxxMiniRuntime HybridUnistylesRuntime::getMiniRuntime() {
|
|
|
155
176
|
UnistylesCxxMiniRuntime cxxMiniRuntime{
|
|
156
177
|
this->getThemeName(),
|
|
157
178
|
this->getBreakpoint(),
|
|
158
|
-
nativeMiniRuntime.orientation,
|
|
159
179
|
this->getHasAdaptiveThemes(),
|
|
160
180
|
nativeMiniRuntime.colorScheme,
|
|
161
181
|
nativeMiniRuntime.screen,
|
|
@@ -165,7 +185,9 @@ UnistylesCxxMiniRuntime HybridUnistylesRuntime::getMiniRuntime() {
|
|
|
165
185
|
nativeMiniRuntime.fontScale,
|
|
166
186
|
nativeMiniRuntime.rtl,
|
|
167
187
|
nativeMiniRuntime.statusBar,
|
|
168
|
-
nativeMiniRuntime.navigationBar
|
|
188
|
+
nativeMiniRuntime.navigationBar,
|
|
189
|
+
nativeMiniRuntime.isPortrait,
|
|
190
|
+
nativeMiniRuntime.isLandscape
|
|
169
191
|
};
|
|
170
192
|
|
|
171
193
|
return cxxMiniRuntime;
|
|
@@ -178,7 +200,6 @@ jsi::Value HybridUnistylesRuntime::getMiniRuntimeAsValue(jsi::Runtime& rt) {
|
|
|
178
200
|
// auto generated by nitro, but can't be accessed due to static inline function
|
|
179
201
|
obj.setProperty(rt, "themeName", JSIConverter<std::optional<std::string>>::toJSI(rt, miniRuntime.themeName));
|
|
180
202
|
obj.setProperty(rt, "breakpoint", JSIConverter<std::optional<std::string>>::toJSI(rt, miniRuntime.breakpoint));
|
|
181
|
-
obj.setProperty(rt, "orientation", JSIConverter<Orientation>::toJSI(rt, miniRuntime.orientation));
|
|
182
203
|
obj.setProperty(rt, "hasAdaptiveThemes", JSIConverter<bool>::toJSI(rt, miniRuntime.hasAdaptiveThemes));
|
|
183
204
|
obj.setProperty(rt, "colorScheme", JSIConverter<ColorScheme>::toJSI(rt, miniRuntime.colorScheme));
|
|
184
205
|
obj.setProperty(rt, "screen", JSIConverter<Dimensions>::toJSI(rt, miniRuntime.screen));
|
|
@@ -189,6 +210,8 @@ jsi::Value HybridUnistylesRuntime::getMiniRuntimeAsValue(jsi::Runtime& rt) {
|
|
|
189
210
|
obj.setProperty(rt, "rtl", JSIConverter<bool>::toJSI(rt, miniRuntime.rtl));
|
|
190
211
|
obj.setProperty(rt, "statusBar", JSIConverter<Dimensions>::toJSI(rt, miniRuntime.statusBar));
|
|
191
212
|
obj.setProperty(rt, "navigationBar", JSIConverter<Dimensions>::toJSI(rt, miniRuntime.navigationBar));
|
|
213
|
+
obj.setProperty(rt, "isPortrait", JSIConverter<bool>::toJSI(rt, miniRuntime.isPortrait));
|
|
214
|
+
obj.setProperty(rt, "isLandscape", JSIConverter<bool>::toJSI(rt, miniRuntime.isLandscape));
|
|
192
215
|
|
|
193
216
|
return obj;
|
|
194
217
|
}
|
|
@@ -201,3 +224,23 @@ void HybridUnistylesRuntime::registerPlatformListener(const std::function<void(s
|
|
|
201
224
|
this->_nativePlatform.registerPlatformListener(listener);
|
|
202
225
|
this->_onDependenciesChange = listener;
|
|
203
226
|
}
|
|
227
|
+
|
|
228
|
+
void HybridUnistylesRuntime::registerImeListener(const std::function<void()>& listener) {
|
|
229
|
+
this->_nativePlatform.registerImeListener(listener);
|
|
230
|
+
}
|
|
231
|
+
|
|
232
|
+
void HybridUnistylesRuntime::unregisterPlatformListeners() {
|
|
233
|
+
this->_nativePlatform.unregisterPlatformListeners();
|
|
234
|
+
}
|
|
235
|
+
|
|
236
|
+
void HybridUnistylesRuntime::includeDependenciesForColorSchemeChange(std::vector<UnistyleDependency>& deps) {
|
|
237
|
+
auto& registry = core::UnistylesRegistry::get();
|
|
238
|
+
auto& state = registry.getState(*this->_rt);
|
|
239
|
+
|
|
240
|
+
// ignore color scheme changes if user has no adaptive themes
|
|
241
|
+
if (!state.hasAdaptiveThemes()) {
|
|
242
|
+
return;
|
|
243
|
+
}
|
|
244
|
+
|
|
245
|
+
this->calculateNewThemeAndDependencies(deps);
|
|
246
|
+
}
|
|
@@ -13,8 +13,13 @@
|
|
|
13
13
|
namespace margelo::nitro::unistyles {
|
|
14
14
|
|
|
15
15
|
struct HybridUnistylesRuntime: public HybridUnistylesRuntimeSpec {
|
|
16
|
-
HybridUnistylesRuntime(Unistyles::HybridNativePlatformSpecCxx nativePlatform, jsi::Runtime& rt
|
|
16
|
+
HybridUnistylesRuntime(Unistyles::HybridNativePlatformSpecCxx nativePlatform, jsi::Runtime& rt, std::function<void(std::function<void(jsi::Runtime&)>&&)> runOnJSThread)
|
|
17
|
+
: HybridObject(TAG), _nativePlatform{nativePlatform}, _rt{&rt}, runOnJSThread(std::move(runOnJSThread)) {}
|
|
17
18
|
|
|
19
|
+
jsi::Value getTheme(jsi::Runtime& rt,
|
|
20
|
+
const jsi::Value& thisValue,
|
|
21
|
+
const jsi::Value* args,
|
|
22
|
+
size_t count);
|
|
18
23
|
jsi::Value updateTheme(jsi::Runtime& rt,
|
|
19
24
|
const jsi::Value& thisValue,
|
|
20
25
|
const jsi::Value* args,
|
|
@@ -32,6 +37,7 @@ struct HybridUnistylesRuntime: public HybridUnistylesRuntimeSpec {
|
|
|
32
37
|
HybridUnistylesRuntimeSpec::loadHybridMethods();
|
|
33
38
|
|
|
34
39
|
registerHybrids(this, [](Prototype& prototype) {
|
|
40
|
+
prototype.registerRawHybridMethod("getTheme", 1, &HybridUnistylesRuntime::getTheme);
|
|
35
41
|
prototype.registerRawHybridMethod("updateTheme", 1, &HybridUnistylesRuntime::updateTheme);
|
|
36
42
|
prototype.registerRawHybridMethod("createHybridStatusBar", 0, &HybridUnistylesRuntime::createHybridStatusBar);
|
|
37
43
|
prototype.registerRawHybridMethod("createHybridNavigationBar", 0, &HybridUnistylesRuntime::createHybridNavigationBar);
|
|
@@ -50,6 +56,8 @@ struct HybridUnistylesRuntime: public HybridUnistylesRuntimeSpec {
|
|
|
50
56
|
double getPixelRatio() override;
|
|
51
57
|
double getFontScale() override;
|
|
52
58
|
void registerPlatformListener(const std::function<void(std::vector<UnistyleDependency>)>& listener);
|
|
59
|
+
void registerImeListener(const std::function<void()>& listener);
|
|
60
|
+
void unregisterPlatformListeners();
|
|
53
61
|
|
|
54
62
|
void setTheme(const std::string &themeName) override;
|
|
55
63
|
void setAdaptiveThemes(bool isEnabled) override;
|
|
@@ -58,6 +66,9 @@ struct HybridUnistylesRuntime: public HybridUnistylesRuntimeSpec {
|
|
|
58
66
|
UnistylesCxxMiniRuntime getMiniRuntime() override;
|
|
59
67
|
jsi::Value getMiniRuntimeAsValue(jsi::Runtime& rt);
|
|
60
68
|
jsi::Runtime& getRuntime();
|
|
69
|
+
void includeDependenciesForColorSchemeChange(std::vector<UnistyleDependency>& deps);
|
|
70
|
+
void calculateNewThemeAndDependencies(std::vector<UnistyleDependency>& deps);
|
|
71
|
+
std::function<void(std::function<void(jsi::Runtime&)>&&)> runOnJSThread;
|
|
61
72
|
|
|
62
73
|
private:
|
|
63
74
|
jsi::Runtime* _rt;
|