react-native-unistyles 3.0.0-alpha.4 → 3.0.0-alpha.41
Sign up to get free protection for your applications and to get access to all the features.
- package/README.md +7 -0
- package/Unistyles.podspec +1 -1
- package/android/CMakeLists.txt +22 -45
- package/android/build.gradle +16 -5
- package/android/src/main/cxx/NativeUnistylesModule.cpp +71 -0
- package/android/src/main/cxx/NativeUnistylesModule.h +42 -0
- package/android/src/main/cxx/cpp-adapter.cpp +8 -86
- package/android/src/main/java/com/unistyles/Equatable.kt +61 -0
- package/android/src/main/java/com/unistyles/NativePlatform+android.kt +294 -0
- package/android/src/main/java/com/unistyles/NativePlatform+insets.kt +152 -0
- package/android/src/main/java/com/unistyles/NativePlatform+listener.kt +59 -0
- package/android/src/main/java/com/unistyles/UnistylesModule.kt +51 -0
- package/android/src/main/java/com/unistyles/UnistylesPackage.kt +16 -14
- package/cxx/NativePlatform.h +11 -0
- package/cxx/common/Constants.h +4 -0
- package/cxx/common/Helpers.h +140 -5
- package/cxx/core/HostStyle.cpp +10 -6
- package/cxx/core/HostStyle.h +4 -0
- package/cxx/core/StyleSheet.h +0 -2
- package/cxx/core/StyleSheetRegistry.cpp +9 -17
- package/cxx/core/StyleSheetRegistry.h +3 -4
- package/cxx/core/Unistyle.h +8 -11
- package/cxx/core/UnistyleData.h +24 -0
- package/cxx/core/UnistyleWrapper.h +108 -13
- package/cxx/core/UnistylesCommitHook.cpp +14 -15
- package/cxx/core/UnistylesCommitHook.h +6 -11
- package/cxx/core/UnistylesCommitShadowNode.h +13 -0
- package/cxx/core/UnistylesMountHook.cpp +28 -0
- package/cxx/core/UnistylesMountHook.h +27 -0
- package/cxx/core/UnistylesRegistry.cpp +123 -83
- package/cxx/core/UnistylesRegistry.h +16 -14
- package/cxx/core/UnistylesState.cpp +29 -8
- package/cxx/core/UnistylesState.h +5 -2
- package/cxx/hybridObjects/HybridNavigationBar.cpp +0 -4
- package/cxx/hybridObjects/HybridNavigationBar.h +3 -4
- package/cxx/hybridObjects/HybridShadowRegistry.cpp +19 -11
- package/cxx/hybridObjects/HybridStatusBar.cpp +0 -4
- package/cxx/hybridObjects/HybridStatusBar.h +3 -4
- package/cxx/hybridObjects/HybridStyleSheet.cpp +154 -23
- package/cxx/hybridObjects/HybridStyleSheet.h +27 -5
- package/cxx/hybridObjects/HybridUnistylesRuntime.cpp +96 -14
- package/cxx/hybridObjects/HybridUnistylesRuntime.h +19 -3
- package/cxx/parser/Parser.cpp +249 -177
- package/cxx/parser/Parser.h +12 -15
- package/cxx/shadowTree/ShadowLeafUpdate.h +3 -1
- package/cxx/shadowTree/ShadowTrafficController.h +71 -0
- package/cxx/shadowTree/ShadowTreeManager.cpp +28 -19
- package/cxx/shadowTree/ShadowTreeManager.h +3 -2
- package/ios/Equatable.swift +2 -1
- package/ios/Extensions.swift +3 -1
- package/ios/NativePlatform+ios.swift +34 -9
- package/ios/NativePlatform+keyboard.swift +83 -0
- package/ios/NativePlatformListener+ios.swift +36 -24
- package/ios/Unistyles.h +1 -0
- package/ios/UnistylesModuleOnLoad.h +8 -2
- package/ios/UnistylesModuleOnLoad.mm +9 -1
- package/lib/commonjs/components/Display.js +18 -0
- package/lib/commonjs/components/Display.js.map +1 -0
- package/lib/commonjs/components/Hide.js +18 -0
- package/lib/commonjs/components/Hide.js.map +1 -0
- package/lib/commonjs/components/index.js +20 -0
- package/lib/commonjs/components/index.js.map +1 -0
- package/lib/commonjs/components/useMedia.js +59 -0
- package/lib/commonjs/components/useMedia.js.map +1 -0
- package/lib/commonjs/components/useMedia.web.js +43 -0
- package/lib/commonjs/components/useMedia.web.js.map +1 -0
- package/lib/commonjs/core/createUnistylesComponent.js +79 -0
- package/lib/commonjs/core/createUnistylesComponent.js.map +1 -0
- package/lib/commonjs/core/createUnistylesComponent.native.js +82 -0
- package/lib/commonjs/core/createUnistylesComponent.native.js.map +1 -0
- package/lib/commonjs/core/index.js +13 -0
- package/lib/commonjs/core/index.js.map +1 -0
- package/lib/commonjs/index.js +21 -11
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/mq.js +25 -12
- package/lib/commonjs/mq.js.map +1 -1
- package/lib/commonjs/specs/NativePlatform/NativePlatform.nitro.js +1 -0
- package/lib/commonjs/specs/NativePlatform/NativePlatform.nitro.js.map +1 -1
- package/lib/commonjs/specs/NavigtionBar/index.js +0 -15
- package/lib/commonjs/specs/NavigtionBar/index.js.map +1 -1
- package/lib/commonjs/specs/ShadowRegistry/index.js +10 -6
- package/lib/commonjs/specs/ShadowRegistry/index.js.map +1 -1
- package/lib/commonjs/specs/StatusBar/index.js +0 -5
- package/lib/commonjs/specs/StatusBar/index.js.map +1 -1
- package/lib/commonjs/specs/StyleSheet/index.js +1 -0
- package/lib/commonjs/specs/StyleSheet/index.js.map +1 -1
- package/lib/commonjs/specs/UnistylesRuntime/index.js +1 -3
- 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/types/stylesheet.js.map +1 -1
- package/lib/commonjs/utils.js +26 -0
- package/lib/commonjs/utils.js.map +1 -0
- package/lib/commonjs/web/convert/index.js +79 -0
- package/lib/commonjs/web/convert/index.js.map +1 -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/object/boxShadow.js +59 -0
- package/lib/commonjs/web/convert/object/boxShadow.js.map +1 -0
- package/lib/commonjs/web/convert/object/filter.js +42 -0
- package/lib/commonjs/web/convert/object/filter.js.map +1 -0
- package/lib/commonjs/web/convert/object/index.js +39 -0
- package/lib/commonjs/web/convert/object/index.js.map +1 -0
- package/lib/commonjs/web/convert/object/objectStyle.js +56 -0
- package/lib/commonjs/web/convert/object/objectStyle.js.map +1 -0
- package/lib/commonjs/web/convert/object/transform.js +27 -0
- package/lib/commonjs/web/convert/object/transform.js.map +1 -0
- package/lib/commonjs/web/convert/pseudo.js +10 -0
- package/lib/commonjs/web/convert/pseudo.js.map +1 -0
- package/lib/commonjs/web/convert/shadow/boxShadow.js +62 -0
- package/lib/commonjs/web/convert/shadow/boxShadow.js.map +1 -0
- package/lib/commonjs/web/convert/shadow/getShadowBreakpoints.js +38 -0
- package/lib/commonjs/web/convert/shadow/getShadowBreakpoints.js.map +1 -0
- package/lib/commonjs/web/convert/shadow/index.js +28 -0
- package/lib/commonjs/web/convert/shadow/index.js.map +1 -0
- package/lib/commonjs/web/convert/shadow/textShadow.js +59 -0
- package/lib/commonjs/web/convert/shadow/textShadow.js.map +1 -0
- package/lib/commonjs/web/convert/style.js +93 -0
- package/lib/commonjs/web/convert/style.js.map +1 -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 +59 -0
- package/lib/commonjs/web/convert/utils.js.map +1 -0
- package/lib/commonjs/web/create.js +49 -0
- package/lib/commonjs/web/create.js.map +1 -0
- package/lib/commonjs/web/index.js +60 -0
- package/lib/commonjs/web/index.js.map +1 -0
- package/lib/commonjs/web/listener.js +61 -0
- package/lib/commonjs/web/listener.js.map +1 -0
- package/lib/commonjs/web/mock.js +27 -0
- package/lib/commonjs/web/mock.js.map +1 -0
- package/lib/commonjs/web/registry.js +172 -0
- package/lib/commonjs/web/registry.js.map +1 -0
- package/lib/commonjs/web/runtime.js +173 -0
- package/lib/commonjs/web/runtime.js.map +1 -0
- package/lib/commonjs/web/shadowRegistry.js +142 -0
- package/lib/commonjs/web/shadowRegistry.js.map +1 -0
- package/lib/commonjs/web/state.js +73 -0
- package/lib/commonjs/web/state.js.map +1 -0
- package/lib/commonjs/web/utils/common.js +39 -0
- package/lib/commonjs/web/utils/common.js.map +1 -0
- package/lib/commonjs/web/utils/index.js +28 -0
- package/lib/commonjs/web/utils/index.js.map +1 -0
- package/lib/commonjs/web/utils/unistyle.js +85 -0
- package/lib/commonjs/web/utils/unistyle.js.map +1 -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 +59 -0
- package/lib/commonjs/web/variants/useVariants.js.map +1 -0
- package/lib/module/components/Display.js +13 -0
- package/lib/module/components/Display.js.map +1 -0
- package/lib/module/components/Hide.js +13 -0
- package/lib/module/components/Hide.js.map +1 -0
- package/lib/module/components/index.js +5 -0
- package/lib/module/components/index.js.map +1 -0
- package/lib/module/components/useMedia.js +54 -0
- package/lib/module/components/useMedia.js.map +1 -0
- package/lib/module/components/useMedia.web.js +38 -0
- package/lib/module/components/useMedia.web.js.map +1 -0
- package/lib/module/core/createUnistylesComponent.js +72 -0
- package/lib/module/core/createUnistylesComponent.js.map +1 -0
- package/lib/module/core/createUnistylesComponent.native.js +75 -0
- package/lib/module/core/createUnistylesComponent.native.js.map +1 -0
- package/lib/module/core/index.js +4 -0
- package/lib/module/core/index.js.map +1 -0
- package/lib/module/index.js +2 -9
- package/lib/module/index.js.map +1 -1
- package/lib/module/mq.js +21 -11
- package/lib/module/mq.js.map +1 -1
- package/lib/module/specs/NativePlatform/NativePlatform.nitro.js +1 -0
- package/lib/module/specs/NativePlatform/NativePlatform.nitro.js.map +1 -1
- package/lib/module/specs/NavigtionBar/index.js +0 -10
- package/lib/module/specs/NavigtionBar/index.js.map +1 -1
- package/lib/module/specs/ShadowRegistry/index.js +10 -6
- package/lib/module/specs/ShadowRegistry/index.js.map +1 -1
- package/lib/module/specs/StatusBar/index.js +1 -6
- package/lib/module/specs/StatusBar/index.js.map +1 -1
- package/lib/module/specs/StyleSheet/index.js +1 -0
- package/lib/module/specs/StyleSheet/index.js.map +1 -1
- package/lib/module/specs/UnistylesRuntime/index.js +1 -3
- 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 +1 -1
- package/lib/module/types/stylesheet.js.map +1 -1
- package/lib/module/utils.js +21 -0
- package/lib/module/utils.js.map +1 -0
- package/lib/module/web/convert/index.js +74 -0
- package/lib/module/web/convert/index.js.map +1 -0
- package/lib/module/web/convert/module.d.js +2 -0
- package/lib/module/web/convert/module.d.js.map +1 -0
- package/lib/module/web/convert/object/boxShadow.js +54 -0
- package/lib/module/web/convert/object/boxShadow.js.map +1 -0
- package/lib/module/web/convert/object/filter.js +37 -0
- package/lib/module/web/convert/object/filter.js.map +1 -0
- package/lib/module/web/convert/object/index.js +6 -0
- package/lib/module/web/convert/object/index.js.map +1 -0
- package/lib/module/web/convert/object/objectStyle.js +51 -0
- package/lib/module/web/convert/object/objectStyle.js.map +1 -0
- package/lib/module/web/convert/object/transform.js +22 -0
- package/lib/module/web/convert/object/transform.js.map +1 -0
- package/lib/module/web/convert/pseudo.js +5 -0
- package/lib/module/web/convert/pseudo.js.map +1 -0
- package/lib/module/web/convert/shadow/boxShadow.js +57 -0
- package/lib/module/web/convert/shadow/boxShadow.js.map +1 -0
- package/lib/module/web/convert/shadow/getShadowBreakpoints.js +33 -0
- package/lib/module/web/convert/shadow/getShadowBreakpoints.js.map +1 -0
- package/lib/module/web/convert/shadow/index.js +5 -0
- package/lib/module/web/convert/shadow/index.js.map +1 -0
- package/lib/module/web/convert/shadow/textShadow.js +54 -0
- package/lib/module/web/convert/shadow/textShadow.js.map +1 -0
- package/lib/module/web/convert/style.js +88 -0
- package/lib/module/web/convert/style.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 +45 -0
- package/lib/module/web/convert/utils.js.map +1 -0
- package/lib/module/web/create.js +44 -0
- package/lib/module/web/create.js.map +1 -0
- package/lib/module/web/index.js +26 -0
- package/lib/module/web/index.js.map +1 -0
- package/lib/module/web/listener.js +57 -0
- package/lib/module/web/listener.js.map +1 -0
- package/lib/module/web/mock.js +23 -0
- package/lib/module/web/mock.js.map +1 -0
- package/lib/module/web/registry.js +168 -0
- package/lib/module/web/registry.js.map +1 -0
- package/lib/module/web/runtime.js +169 -0
- package/lib/module/web/runtime.js.map +1 -0
- package/lib/module/web/shadowRegistry.js +138 -0
- package/lib/module/web/shadowRegistry.js.map +1 -0
- package/lib/module/web/state.js +69 -0
- package/lib/module/web/state.js.map +1 -0
- package/lib/module/web/utils/common.js +28 -0
- package/lib/module/web/utils/common.js.map +1 -0
- package/lib/module/web/utils/index.js +5 -0
- package/lib/module/web/utils/index.js.map +1 -0
- package/lib/module/web/utils/unistyle.js +72 -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 +1 -0
- package/lib/module/web/variants/index.js +5 -0
- package/lib/module/web/variants/index.js.map +1 -0
- package/lib/module/web/variants/useVariants.js +54 -0
- package/lib/module/web/variants/useVariants.js.map +1 -0
- package/lib/typescript/src/components/Display.d.ts +7 -0
- package/lib/typescript/src/components/Display.d.ts.map +1 -0
- package/lib/typescript/src/components/Hide.d.ts +7 -0
- package/lib/typescript/src/components/Hide.d.ts.map +1 -0
- package/lib/typescript/src/components/index.d.ts +3 -0
- package/lib/typescript/src/components/index.d.ts.map +1 -0
- package/lib/typescript/src/components/useMedia.d.ts +6 -0
- package/lib/typescript/src/components/useMedia.d.ts.map +1 -0
- package/lib/typescript/src/components/useMedia.web.d.ts +6 -0
- package/lib/typescript/src/components/useMedia.web.d.ts.map +1 -0
- package/lib/typescript/src/core/createUnistylesComponent.d.ts +8 -0
- package/lib/typescript/src/core/createUnistylesComponent.d.ts.map +1 -0
- package/lib/typescript/src/core/createUnistylesComponent.native.d.ts +8 -0
- package/lib/typescript/src/core/createUnistylesComponent.native.d.ts.map +1 -0
- package/lib/typescript/src/core/index.d.ts +2 -0
- package/lib/typescript/src/core/index.d.ts.map +1 -0
- package/lib/typescript/src/index.d.ts +3 -0
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/mq.d.ts +8 -0
- package/lib/typescript/src/mq.d.ts.map +1 -1
- package/lib/typescript/src/specs/NativePlatform/NativePlatform.nitro.d.ts +7 -5
- package/lib/typescript/src/specs/NativePlatform/NativePlatform.nitro.d.ts.map +1 -1
- package/lib/typescript/src/specs/NavigtionBar/UnistylesNavigationBar.nitro.d.ts +0 -1
- package/lib/typescript/src/specs/NavigtionBar/UnistylesNavigationBar.nitro.d.ts.map +1 -1
- package/lib/typescript/src/specs/NavigtionBar/index.d.ts +1 -10
- package/lib/typescript/src/specs/NavigtionBar/index.d.ts.map +1 -1
- package/lib/typescript/src/specs/ShadowRegistry/index.d.ts +4 -4
- package/lib/typescript/src/specs/ShadowRegistry/index.d.ts.map +1 -1
- package/lib/typescript/src/specs/ShadowRegistry/types.d.ts +3 -0
- package/lib/typescript/src/specs/ShadowRegistry/types.d.ts.map +1 -1
- package/lib/typescript/src/specs/StatusBar/UnistylesStatusBar.nitro.d.ts +0 -1
- package/lib/typescript/src/specs/StatusBar/UnistylesStatusBar.nitro.d.ts.map +1 -1
- package/lib/typescript/src/specs/StatusBar/index.d.ts +2 -4
- package/lib/typescript/src/specs/StatusBar/index.d.ts.map +1 -1
- package/lib/typescript/src/specs/StyleSheet/UnistylesStyleSheet.nitro.d.ts +3 -1
- package/lib/typescript/src/specs/StyleSheet/UnistylesStyleSheet.nitro.d.ts.map +1 -1
- package/lib/typescript/src/specs/StyleSheet/index.d.ts +3 -1
- package/lib/typescript/src/specs/StyleSheet/index.d.ts.map +1 -1
- package/lib/typescript/src/specs/UnistylesRuntime/UnistylesRuntime.nitro.d.ts +1 -1
- package/lib/typescript/src/specs/UnistylesRuntime/UnistylesRuntime.nitro.d.ts.map +1 -1
- package/lib/typescript/src/specs/UnistylesRuntime/index.d.ts +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/common.d.ts +1 -0
- package/lib/typescript/src/types/common.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/utils.d.ts +2 -0
- package/lib/typescript/src/utils.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/object/boxShadow.d.ts +9 -0
- package/lib/typescript/src/web/convert/object/boxShadow.d.ts.map +1 -0
- package/lib/typescript/src/web/convert/object/filter.d.ts +3 -0
- package/lib/typescript/src/web/convert/object/filter.d.ts.map +1 -0
- package/lib/typescript/src/web/convert/object/index.d.ts +4 -0
- package/lib/typescript/src/web/convert/object/index.d.ts.map +1 -0
- package/lib/typescript/src/web/convert/object/objectStyle.d.ts +5 -0
- package/lib/typescript/src/web/convert/object/objectStyle.d.ts.map +1 -0
- package/lib/typescript/src/web/convert/object/transform.d.ts +3 -0
- package/lib/typescript/src/web/convert/object/transform.d.ts.map +1 -0
- package/lib/typescript/src/web/convert/pseudo.d.ts +6 -0
- package/lib/typescript/src/web/convert/pseudo.d.ts.map +1 -0
- package/lib/typescript/src/web/convert/shadow/boxShadow.d.ts +8 -0
- package/lib/typescript/src/web/convert/shadow/boxShadow.d.ts.map +1 -0
- package/lib/typescript/src/web/convert/shadow/getShadowBreakpoints.d.ts +2 -0
- package/lib/typescript/src/web/convert/shadow/getShadowBreakpoints.d.ts.map +1 -0
- package/lib/typescript/src/web/convert/shadow/index.d.ts +3 -0
- package/lib/typescript/src/web/convert/shadow/index.d.ts.map +1 -0
- package/lib/typescript/src/web/convert/shadow/textShadow.d.ts +8 -0
- package/lib/typescript/src/web/convert/shadow/textShadow.d.ts.map +1 -0
- package/lib/typescript/src/web/convert/style.d.ts +2 -0
- package/lib/typescript/src/web/convert/style.d.ts.map +1 -0
- package/lib/typescript/{web → src/web}/convert/types.d.ts +8 -2
- package/lib/typescript/src/web/convert/types.d.ts.map +1 -0
- package/lib/typescript/src/web/convert/utils.d.ts +12 -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 +5 -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/registry.d.ts +24 -0
- package/lib/typescript/src/web/registry.d.ts.map +1 -0
- package/lib/typescript/{web → src/web}/runtime.d.ts +11 -10
- package/lib/typescript/src/web/runtime.d.ts.map +1 -0
- package/lib/typescript/src/web/shadowRegistry.d.ts +17 -0
- package/lib/typescript/src/web/shadowRegistry.d.ts.map +1 -0
- package/lib/typescript/src/web/state.d.ts +18 -0
- package/lib/typescript/src/web/state.d.ts.map +1 -0
- package/lib/typescript/src/web/utils/common.d.ts +8 -0
- package/lib/typescript/src/web/utils/common.d.ts.map +1 -0
- package/lib/typescript/src/web/utils/index.d.ts +3 -0
- package/lib/typescript/src/web/utils/index.d.ts.map +1 -0
- package/lib/typescript/src/web/utils/unistyle.d.ts +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_UnistylesNativeMiniRuntime.hpp +57 -0
- package/nitrogen/generated/android/c++/JFunc_void_std__vector_UnistyleDependency__UnistylesNativeMiniRuntime.hpp +69 -0
- package/nitrogen/generated/android/c++/JHybridNativePlatformSpec.cpp +35 -34
- package/nitrogen/generated/android/c++/JHybridNativePlatformSpec.hpp +15 -6
- package/nitrogen/generated/android/c++/JOrientation.hpp +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/Dimensions.kt +1 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/unistyles/{Func_void_std__vector_UnistyleDependency_.kt → Func_void_UnistylesNativeMiniRuntime.kt} +6 -5
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/unistyles/Func_void_std__vector_UnistyleDependency__UnistylesNativeMiniRuntime.kt +46 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/unistyles/HybridNativePlatformSpec.kt +25 -13
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/unistyles/Insets.kt +1 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/unistyles/UnistyleDependency.kt +2 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/unistyles/UnistylesNativeMiniRuntime.kt +3 -1
- package/nitrogen/generated/android/unistyles+autolinking.cmake +13 -1
- package/nitrogen/generated/android/unistyles+autolinking.gradle +2 -0
- package/nitrogen/generated/android/{UnistylesOnLoad.cpp → unistylesOnLoad.cpp} +6 -4
- package/nitrogen/generated/android/{UnistylesOnLoad.hpp → unistylesOnLoad.hpp} +1 -1
- package/nitrogen/generated/ios/Unistyles+autolinking.rb +6 -4
- package/nitrogen/generated/ios/Unistyles-Swift-Cxx-Bridge.cpp +25 -0
- package/nitrogen/generated/ios/Unistyles-Swift-Cxx-Bridge.hpp +73 -38
- package/nitrogen/generated/ios/Unistyles-Swift-Cxx-Umbrella.hpp +1 -30
- package/nitrogen/generated/ios/c++/HybridNativePlatformSpecSwift.hpp +8 -8
- package/nitrogen/generated/ios/swift/HybridNativePlatformSpec.swift +4 -16
- package/nitrogen/generated/ios/swift/HybridNativePlatformSpecCxx.swift +156 -115
- package/nitrogen/generated/ios/swift/UnistyleDependency.swift +4 -0
- package/nitrogen/generated/ios/swift/UnistylesNativeMiniRuntime.swift +16 -5
- package/nitrogen/generated/shared/c++/ColorScheme.hpp +2 -2
- package/nitrogen/generated/shared/c++/HybridNativePlatformSpec.cpp +2 -2
- package/nitrogen/generated/shared/c++/HybridNativePlatformSpec.hpp +6 -3
- package/nitrogen/generated/shared/c++/HybridUnistylesNavigationBarSpec.cpp +0 -1
- package/nitrogen/generated/shared/c++/HybridUnistylesNavigationBarSpec.hpp +3 -1
- package/nitrogen/generated/shared/c++/HybridUnistylesRuntimeSpec.cpp +1 -0
- package/nitrogen/generated/shared/c++/HybridUnistylesRuntimeSpec.hpp +5 -0
- package/nitrogen/generated/shared/c++/HybridUnistylesShadowRegistrySpec.hpp +3 -0
- package/nitrogen/generated/shared/c++/HybridUnistylesStatusBarSpec.cpp +0 -1
- package/nitrogen/generated/shared/c++/HybridUnistylesStatusBarSpec.hpp +3 -1
- package/nitrogen/generated/shared/c++/HybridUnistylesStyleSheetSpec.cpp +2 -1
- package/nitrogen/generated/shared/c++/HybridUnistylesStyleSheetSpec.hpp +10 -4
- package/nitrogen/generated/shared/c++/Orientation.hpp +2 -2
- package/nitrogen/generated/shared/c++/UnistyleDependency.hpp +2 -1
- package/nitrogen/generated/shared/c++/UnistylesCxxMiniRuntime.hpp +10 -9
- package/nitrogen/generated/shared/c++/UnistylesNativeMiniRuntime.hpp +9 -8
- package/package.json +20 -30
- package/plugin/common.js +31 -3
- package/plugin/index.js +107 -18
- package/plugin/ref.js +140 -14
- package/plugin/style.js +208 -22
- package/plugin/stylesheet.js +53 -3
- package/plugin/variants.js +33 -0
- package/src/components/Display.tsx +12 -0
- package/src/components/Hide.tsx +12 -0
- package/src/components/index.ts +2 -0
- package/src/components/useMedia.ts +64 -0
- package/src/components/useMedia.web.ts +47 -0
- package/src/core/createUnistylesComponent.native.tsx +83 -0
- package/src/core/createUnistylesComponent.tsx +84 -0
- package/src/core/index.ts +1 -0
- package/src/index.ts +3 -12
- package/src/mq.ts +27 -9
- package/src/specs/NativePlatform/NativePlatform.nitro.ts +7 -5
- package/src/specs/NavigtionBar/UnistylesNavigationBar.nitro.ts +0 -1
- package/src/specs/NavigtionBar/index.ts +1 -25
- package/src/specs/ShadowRegistry/index.ts +16 -10
- package/src/specs/ShadowRegistry/types.ts +4 -1
- package/src/specs/StatusBar/UnistylesStatusBar.nitro.ts +0 -1
- package/src/specs/StatusBar/index.ts +2 -12
- package/src/specs/StyleSheet/UnistylesStyleSheet.nitro.ts +4 -1
- package/src/specs/StyleSheet/index.ts +6 -1
- package/src/specs/UnistylesRuntime/UnistylesRuntime.nitro.ts +1 -1
- package/src/specs/UnistylesRuntime/index.ts +5 -4
- package/src/specs/index.ts +6 -2
- package/src/specs/index.web.ts +1 -1
- package/src/types/breakpoints.ts +25 -13
- package/src/types/common.ts +1 -0
- package/src/types/index.ts +1 -1
- package/src/types/stylesheet.ts +7 -5
- package/src/types/variants.ts +7 -1
- package/src/utils.ts +22 -0
- package/{web → src/web}/convert/index.ts +25 -25
- package/src/web/convert/object/boxShadow.ts +55 -0
- package/src/web/convert/object/filter.ts +39 -0
- package/src/web/convert/object/index.ts +3 -0
- package/src/web/convert/object/objectStyle.ts +69 -0
- package/src/web/convert/object/transform.ts +24 -0
- package/src/web/convert/pseudo.ts +137 -0
- package/src/web/convert/shadow/boxShadow.ts +50 -0
- package/src/web/convert/shadow/getShadowBreakpoints.ts +34 -0
- package/src/web/convert/shadow/index.ts +2 -0
- package/src/web/convert/shadow/textShadow.ts +48 -0
- package/{web → src/web}/convert/style.ts +61 -10
- package/{web → src/web}/convert/types.ts +9 -2
- package/{web → src/web}/convert/utils.ts +11 -5
- package/src/web/create.ts +48 -0
- package/{web → src/web}/index.ts +4 -3
- package/src/web/listener.ts +63 -0
- package/{web → src/web}/mock.ts +3 -14
- package/src/web/registry.ts +215 -0
- package/{web → src/web}/runtime.ts +32 -21
- package/src/web/shadowRegistry.ts +145 -0
- package/src/web/state.ts +94 -0
- package/src/web/utils/common.ts +45 -0
- package/src/web/utils/index.ts +2 -0
- package/src/web/utils/unistyle.ts +108 -0
- package/src/web/variants/getVariants.ts +42 -0
- package/src/web/variants/index.ts +2 -0
- package/src/web/variants/useVariants.ts +65 -0
- package/android/src/main/cxx/helpers.cpp +0 -105
- package/android/src/main/cxx/helpers.h +0 -16
- package/android/src/main/cxx/platform.cpp +0 -170
- package/android/src/main/cxx/platform.h +0 -20
- package/lib/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 +0 -2
- 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 +0 -8
- 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 +0 -18
- package/lib/typescript/web/utils.d.ts.map +0 -1
- package/nitrogen/generated/android/c++/JFunc_void_std__vector_UnistyleDependency_.hpp +0 -60
- package/plugin/__tests__/dependencies.spec.js +0 -360
- package/plugin/__tests__/ref.spec.js +0 -991
- package/plugin/__tests__/stylesheet.spec.js +0 -396
- package/web/convert/boxShadow.ts +0 -72
- package/web/convert/breakpoint.ts +0 -21
- package/web/convert/shadow.ts +0 -68
- package/web/convert/textShadow.ts +0 -69
- package/web/convert/transform.ts +0 -89
- package/web/create.ts +0 -102
- package/web/listener/index.ts +0 -1
- package/web/listener/listener.ts +0 -33
- package/web/mq.ts +0 -19
- 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/web/utils.ts +0 -95
- /package/nitrogen/generated/android/{UnistylesOnLoad.kt → unistylesOnLoad.kt} +0 -0
- /package/{web → src/web}/convert/module.d.ts +0 -0
@@ -0,0 +1,169 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
import { UnistyleDependency } from '../specs/NativePlatform';
|
4
|
+
import { ColorScheme, Orientation } from '../specs/types';
|
5
|
+
import { WebContentSizeCategory } from '../types';
|
6
|
+
import { UnistylesListener } from './listener';
|
7
|
+
import { NavigationBar, StatusBar } from './mock';
|
8
|
+
import { UnistylesState } from './state';
|
9
|
+
import { isServer, schemeToTheme } from './utils';
|
10
|
+
class UnistylesRuntimeBuilder {
|
11
|
+
lightMedia = this.getLightMedia();
|
12
|
+
darkMedia = this.getDarkMedia();
|
13
|
+
getLightMedia() {
|
14
|
+
if (isServer()) {
|
15
|
+
return null;
|
16
|
+
}
|
17
|
+
if (!this.lightMedia) {
|
18
|
+
this.lightMedia = window.matchMedia('(prefers-color-scheme: light)');
|
19
|
+
}
|
20
|
+
return this.lightMedia;
|
21
|
+
}
|
22
|
+
getDarkMedia() {
|
23
|
+
if (isServer()) {
|
24
|
+
return null;
|
25
|
+
}
|
26
|
+
if (!this.darkMedia) {
|
27
|
+
this.darkMedia = window.matchMedia('(prefers-color-scheme: dark)');
|
28
|
+
}
|
29
|
+
return this.darkMedia;
|
30
|
+
}
|
31
|
+
get colorScheme() {
|
32
|
+
switch (true) {
|
33
|
+
case this.getLightMedia()?.matches:
|
34
|
+
return ColorScheme.Light;
|
35
|
+
case this.getDarkMedia()?.matches:
|
36
|
+
return ColorScheme.Dark;
|
37
|
+
default:
|
38
|
+
return ColorScheme.Unspecified;
|
39
|
+
}
|
40
|
+
}
|
41
|
+
get themeName() {
|
42
|
+
if (UnistylesState.hasAdaptiveThemes) {
|
43
|
+
return schemeToTheme(this.colorScheme);
|
44
|
+
}
|
45
|
+
return UnistylesState.themeName;
|
46
|
+
}
|
47
|
+
get contentSizeCategory() {
|
48
|
+
return WebContentSizeCategory.Unspecified;
|
49
|
+
}
|
50
|
+
get breakpoints() {
|
51
|
+
return UnistylesState.breakpoints ?? {};
|
52
|
+
}
|
53
|
+
get breakpoint() {
|
54
|
+
return UnistylesState.breakpoint;
|
55
|
+
}
|
56
|
+
get orientation() {
|
57
|
+
if (isServer()) {
|
58
|
+
return Orientation.Portrait;
|
59
|
+
}
|
60
|
+
return screen.orientation.type.includes('portrait') ? Orientation.Portrait : Orientation.Landscape;
|
61
|
+
}
|
62
|
+
get theme() {
|
63
|
+
return this.getTheme(this.themeName);
|
64
|
+
}
|
65
|
+
get pixelRatio() {
|
66
|
+
return isServer() ? 1 : window.devicePixelRatio;
|
67
|
+
}
|
68
|
+
get screen() {
|
69
|
+
if (isServer()) {
|
70
|
+
return {
|
71
|
+
width: 0,
|
72
|
+
height: 0
|
73
|
+
};
|
74
|
+
}
|
75
|
+
return {
|
76
|
+
width: window.innerWidth,
|
77
|
+
height: window.innerHeight
|
78
|
+
};
|
79
|
+
}
|
80
|
+
get fontScale() {
|
81
|
+
return 1;
|
82
|
+
}
|
83
|
+
get insets() {
|
84
|
+
return {
|
85
|
+
top: 0,
|
86
|
+
bottom: 0,
|
87
|
+
left: 0,
|
88
|
+
right: 0,
|
89
|
+
ime: 0
|
90
|
+
};
|
91
|
+
}
|
92
|
+
get statusBar() {
|
93
|
+
return StatusBar;
|
94
|
+
}
|
95
|
+
get rtl() {
|
96
|
+
return isServer() ? true : document.documentElement.dir === 'rtl';
|
97
|
+
}
|
98
|
+
get hasAdaptiveThemes() {
|
99
|
+
return UnistylesState.hasAdaptiveThemes;
|
100
|
+
}
|
101
|
+
get navigationBar() {
|
102
|
+
return NavigationBar;
|
103
|
+
}
|
104
|
+
get miniRuntime() {
|
105
|
+
return {
|
106
|
+
colorScheme: this.colorScheme,
|
107
|
+
themeName: this.themeName,
|
108
|
+
contentSizeCategory: this.contentSizeCategory,
|
109
|
+
breakpoint: this.breakpoint,
|
110
|
+
isLandscape: this.orientation === Orientation.Landscape,
|
111
|
+
isPortrait: this.orientation === Orientation.Portrait,
|
112
|
+
pixelRatio: this.pixelRatio,
|
113
|
+
screen: this.screen,
|
114
|
+
fontScale: this.fontScale,
|
115
|
+
insets: this.insets,
|
116
|
+
statusBar: {
|
117
|
+
width: this.statusBar.width,
|
118
|
+
height: this.statusBar.height
|
119
|
+
},
|
120
|
+
navigationBar: {
|
121
|
+
width: this.navigationBar.width,
|
122
|
+
height: this.navigationBar.height
|
123
|
+
},
|
124
|
+
rtl: this.rtl,
|
125
|
+
hasAdaptiveThemes: this.hasAdaptiveThemes
|
126
|
+
};
|
127
|
+
}
|
128
|
+
setTheme = themeName => {
|
129
|
+
if (themeName === UnistylesRuntime.themeName) {
|
130
|
+
return;
|
131
|
+
}
|
132
|
+
UnistylesState.themeName = themeName;
|
133
|
+
UnistylesListener.emitChange(UnistyleDependency.Theme);
|
134
|
+
UnistylesListener.emitChange(UnistyleDependency.ThemeName);
|
135
|
+
};
|
136
|
+
setAdaptiveThemes = isEnabled => {
|
137
|
+
UnistylesState.hasAdaptiveThemes = isEnabled;
|
138
|
+
if (!isEnabled) {
|
139
|
+
return;
|
140
|
+
}
|
141
|
+
this.setTheme(schemeToTheme(UnistylesRuntime.colorScheme));
|
142
|
+
};
|
143
|
+
setRootViewBackgroundColor = color => {
|
144
|
+
if (isServer()) {
|
145
|
+
return;
|
146
|
+
}
|
147
|
+
document.documentElement.style.backgroundColor = color;
|
148
|
+
};
|
149
|
+
setImmersiveMode = () => {};
|
150
|
+
updateTheme = (themeName, updater) => {
|
151
|
+
const oldTheme = UnistylesState.themes.get(themeName);
|
152
|
+
if (!oldTheme) {
|
153
|
+
throw new Error(`🦄 Theme "${themeName}" is not registered!`);
|
154
|
+
}
|
155
|
+
UnistylesState.themes.set(themeName, updater(oldTheme));
|
156
|
+
};
|
157
|
+
getTheme = (themeName = this.themeName) => {
|
158
|
+
if (!themeName) {
|
159
|
+
throw new Error('🦄 No theme selected!');
|
160
|
+
}
|
161
|
+
const theme = UnistylesState.themes.get(themeName);
|
162
|
+
if (!theme) {
|
163
|
+
throw new Error(`🦄 Theme "${this.themeName}" is not registered!`);
|
164
|
+
}
|
165
|
+
return theme;
|
166
|
+
};
|
167
|
+
}
|
168
|
+
export const UnistylesRuntime = new UnistylesRuntimeBuilder();
|
169
|
+
//# sourceMappingURL=runtime.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"names":["UnistyleDependency","ColorScheme","Orientation","WebContentSizeCategory","UnistylesListener","NavigationBar","StatusBar","UnistylesState","isServer","schemeToTheme","UnistylesRuntimeBuilder","lightMedia","getLightMedia","darkMedia","getDarkMedia","window","matchMedia","colorScheme","matches","Light","Dark","Unspecified","themeName","hasAdaptiveThemes","contentSizeCategory","breakpoints","breakpoint","orientation","Portrait","screen","type","includes","Landscape","theme","getTheme","pixelRatio","devicePixelRatio","width","height","innerWidth","innerHeight","fontScale","insets","top","bottom","left","right","ime","statusBar","rtl","document","documentElement","dir","navigationBar","miniRuntime","isLandscape","isPortrait","setTheme","UnistylesRuntime","emitChange","Theme","ThemeName","setAdaptiveThemes","isEnabled","setRootViewBackgroundColor","color","style","backgroundColor","setImmersiveMode","updateTheme","updater","oldTheme","themes","get","Error","set"],"sourceRoot":"../../../src","sources":["web/runtime.ts"],"mappings":"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","ignoreList":[]}
|
@@ -0,0 +1,138 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
import { convertUnistyles } from './convert';
|
4
|
+
import { UnistylesListener } from './listener';
|
5
|
+
import { UnistylesRegistry } from './registry';
|
6
|
+
import { deepMergeObjects } from '../utils';
|
7
|
+
import { equal, extractSecrets, extractUnistyleDependencies, isInDocument } from './utils';
|
8
|
+
import { getVariants } from './variants';
|
9
|
+
class UnistylesShadowRegistryBuilder {
|
10
|
+
// MOCKS
|
11
|
+
name = 'UnistylesShadowRegistry';
|
12
|
+
__type = 'web';
|
13
|
+
equals = () => true;
|
14
|
+
toString = () => 'UnistylesShadowRegistry';
|
15
|
+
dispose = () => {};
|
16
|
+
// END MOCKS
|
17
|
+
|
18
|
+
resultsMap = new Map();
|
19
|
+
hashMap = new Map();
|
20
|
+
classNamesMap = new Map();
|
21
|
+
add = (ref, _style, _variants, _args) => {
|
22
|
+
// Style is not provided
|
23
|
+
if (!_style) {
|
24
|
+
return;
|
25
|
+
}
|
26
|
+
|
27
|
+
// Ref is unmounted, remove style tags from the document
|
28
|
+
if (ref === null) {
|
29
|
+
const secrets = extractSecrets(_style);
|
30
|
+
secrets.forEach(({
|
31
|
+
__uni__refs
|
32
|
+
}) => {
|
33
|
+
__uni__refs.forEach(ref => {
|
34
|
+
if (isInDocument(ref)) {
|
35
|
+
return;
|
36
|
+
}
|
37
|
+
const oldResult = this.resultsMap.get(ref);
|
38
|
+
this.resultsMap.delete(ref);
|
39
|
+
this.classNamesMap.delete(ref);
|
40
|
+
if (oldResult) {
|
41
|
+
UnistylesRegistry.remove(oldResult);
|
42
|
+
}
|
43
|
+
});
|
44
|
+
});
|
45
|
+
return;
|
46
|
+
}
|
47
|
+
|
48
|
+
// Ref is not an HTMLElement
|
49
|
+
if (!(ref instanceof HTMLElement)) {
|
50
|
+
return;
|
51
|
+
}
|
52
|
+
const styles = _style.filter(style => Object.keys(style ?? {}).some(key => key.startsWith('__uni__')));
|
53
|
+
|
54
|
+
// No unistyles
|
55
|
+
if (styles.length === 0) {
|
56
|
+
return;
|
57
|
+
}
|
58
|
+
const parsedStyles = styles.flatMap((style, styleIndex) => extractSecrets(style).map(secret => {
|
59
|
+
const {
|
60
|
+
__uni__key,
|
61
|
+
__uni__stylesheet,
|
62
|
+
__uni__variants,
|
63
|
+
__uni__args = [],
|
64
|
+
__uni__refs
|
65
|
+
} = secret;
|
66
|
+
const newComputedStylesheet = UnistylesRegistry.getComputedStylesheet(__uni__stylesheet);
|
67
|
+
const style = newComputedStylesheet[__uni__key];
|
68
|
+
const variants = _variants && Object.keys(_variants).length > 0 ? _variants : __uni__variants;
|
69
|
+
const args = _args[styleIndex] ? _args[styleIndex] : __uni__args;
|
70
|
+
const result = typeof style === 'function' ? style(...args) : style;
|
71
|
+
const {
|
72
|
+
variantsResult
|
73
|
+
} = Object.fromEntries(getVariants({
|
74
|
+
variantsResult: result
|
75
|
+
}, variants));
|
76
|
+
const resultWithVariants = deepMergeObjects(result, variantsResult ?? {});
|
77
|
+
const dependencies = extractUnistyleDependencies(resultWithVariants);
|
78
|
+
if (typeof __uni__stylesheet === 'function') {
|
79
|
+
// Add dependencies from dynamic styles to stylesheet
|
80
|
+
UnistylesRegistry.addDependenciesToStylesheet(__uni__stylesheet, dependencies);
|
81
|
+
}
|
82
|
+
__uni__refs.add(ref);
|
83
|
+
const dispose = UnistylesListener.addListeners(extractUnistyleDependencies(resultWithVariants), () => {
|
84
|
+
const hash = this.hashMap.get(ref);
|
85
|
+
|
86
|
+
// Dispose listener if there is no hash
|
87
|
+
if (!hash) {
|
88
|
+
dispose();
|
89
|
+
return;
|
90
|
+
}
|
91
|
+
const newComputedStyleSheet = UnistylesRegistry.getComputedStylesheet(__uni__stylesheet);
|
92
|
+
const newValue = newComputedStyleSheet[__uni__key];
|
93
|
+
const result = typeof newValue === 'function' ? newValue(...args) : newValue;
|
94
|
+
const {
|
95
|
+
variantsResult
|
96
|
+
} = Object.fromEntries(getVariants({
|
97
|
+
variantsResult: result
|
98
|
+
}, variants));
|
99
|
+
const resultWithVariants = deepMergeObjects(result, variantsResult ?? {});
|
100
|
+
UnistylesRegistry.applyStyles(hash, convertUnistyles(resultWithVariants));
|
101
|
+
});
|
102
|
+
return resultWithVariants;
|
103
|
+
}));
|
104
|
+
const combinedStyles = deepMergeObjects(...parsedStyles);
|
105
|
+
const oldStyles = this.resultsMap.get(ref);
|
106
|
+
if (equal(combinedStyles, oldStyles)) {
|
107
|
+
return;
|
108
|
+
}
|
109
|
+
const oldClassNames = this.classNamesMap.get(ref);
|
110
|
+
|
111
|
+
// Remove old styles
|
112
|
+
if (oldStyles) {
|
113
|
+
UnistylesRegistry.remove(oldStyles);
|
114
|
+
}
|
115
|
+
|
116
|
+
// Remove old classnames from the ref
|
117
|
+
oldClassNames?.forEach(className => ref.classList.remove(className));
|
118
|
+
this.resultsMap.set(ref, combinedStyles);
|
119
|
+
const {
|
120
|
+
hash,
|
121
|
+
existingHash
|
122
|
+
} = UnistylesRegistry.add(combinedStyles);
|
123
|
+
const injectedClassNames = combinedStyles?._web?._classNames ?? [];
|
124
|
+
const newClassNames = (Array.isArray(injectedClassNames) ? injectedClassNames : [injectedClassNames]).concat(hash);
|
125
|
+
this.classNamesMap.set(ref, newClassNames);
|
126
|
+
// Add new classnames to the ref
|
127
|
+
ref.classList.add(...newClassNames);
|
128
|
+
|
129
|
+
// If it is new hash add it to the map to use for the listener
|
130
|
+
if (!existingHash) {
|
131
|
+
this.hashMap.set(ref, hash);
|
132
|
+
}
|
133
|
+
return newClassNames;
|
134
|
+
};
|
135
|
+
remove = () => {};
|
136
|
+
}
|
137
|
+
export const UnistylesShadowRegistry = new UnistylesShadowRegistryBuilder();
|
138
|
+
//# sourceMappingURL=shadowRegistry.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"names":["convertUnistyles","UnistylesListener","UnistylesRegistry","deepMergeObjects","equal","extractSecrets","extractUnistyleDependencies","isInDocument","getVariants","UnistylesShadowRegistryBuilder","name","__type","equals","toString","dispose","resultsMap","Map","hashMap","classNamesMap","add","ref","_style","_variants","_args","secrets","forEach","__uni__refs","oldResult","get","delete","remove","HTMLElement","styles","filter","style","Object","keys","some","key","startsWith","length","parsedStyles","flatMap","styleIndex","map","secret","__uni__key","__uni__stylesheet","__uni__variants","__uni__args","newComputedStylesheet","getComputedStylesheet","variants","args","result","variantsResult","fromEntries","resultWithVariants","dependencies","addDependenciesToStylesheet","addListeners","hash","newComputedStyleSheet","newValue","applyStyles","combinedStyles","oldStyles","oldClassNames","className","classList","set","existingHash","injectedClassNames","_web","_classNames","newClassNames","Array","isArray","concat","UnistylesShadowRegistry"],"sourceRoot":"../../../src","sources":["web/shadowRegistry.ts"],"mappings":"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","ignoreList":[]}
|
@@ -0,0 +1,69 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
import { UnistylesRuntime } from './runtime';
|
4
|
+
import { isServer, schemeToTheme } from './utils';
|
5
|
+
import { UnistylesListener } from './listener';
|
6
|
+
import { UnistyleDependency } from '../specs/NativePlatform';
|
7
|
+
class UnistylesStateBuilder {
|
8
|
+
themes = new Map();
|
9
|
+
matchingBreakpoints = new Map();
|
10
|
+
get breakpoint() {
|
11
|
+
const [currentBreakpoint] = Array.from(this.matchingBreakpoints).reverse().find(([_key, value]) => value) ?? [];
|
12
|
+
return currentBreakpoint;
|
13
|
+
}
|
14
|
+
hasAdaptiveThemes = false;
|
15
|
+
init = config => {
|
16
|
+
this.initThemes(config.themes);
|
17
|
+
this.initBreakpoints(config.breakpoints);
|
18
|
+
this.initSettings(config.settings);
|
19
|
+
if (isServer()) {
|
20
|
+
return;
|
21
|
+
}
|
22
|
+
UnistylesListener.initListeners();
|
23
|
+
};
|
24
|
+
initThemes = (themes = {}) => {
|
25
|
+
Object.entries(themes).forEach(([themeName, theme]) => {
|
26
|
+
this.themes.set(themeName, theme);
|
27
|
+
});
|
28
|
+
};
|
29
|
+
initSettings = settings => {
|
30
|
+
this.hasAdaptiveThemes = settings?.adaptiveThemes ?? false;
|
31
|
+
const themeNames = Array.from(this.themes.keys());
|
32
|
+
|
33
|
+
// Single theme + no settings
|
34
|
+
if (!settings?.adaptiveThemes && !settings?.initialTheme && themeNames.length === 1) {
|
35
|
+
this.themeName = themeNames[0];
|
36
|
+
return;
|
37
|
+
}
|
38
|
+
|
39
|
+
// No settings
|
40
|
+
if (!settings?.adaptiveThemes && !settings?.initialTheme) {
|
41
|
+
throw new Error('🦄 You need to specify either "initialTheme" or "adaptiveThemes" in your config');
|
42
|
+
}
|
43
|
+
|
44
|
+
// Adaptive themes
|
45
|
+
if (settings.adaptiveThemes) {
|
46
|
+
this.themeName = schemeToTheme(UnistylesRuntime.colorScheme);
|
47
|
+
return;
|
48
|
+
}
|
49
|
+
|
50
|
+
// Initial theme
|
51
|
+
this.themeName = typeof settings.initialTheme === 'function' ? settings.initialTheme() : settings.initialTheme;
|
52
|
+
};
|
53
|
+
initBreakpoints = (breakpoints = {}) => {
|
54
|
+
this.breakpoints = breakpoints;
|
55
|
+
Object.entries(breakpoints).sort(([, a], [, b]) => a - b).forEach(([breakpoint, value]) => {
|
56
|
+
if (isServer()) {
|
57
|
+
return;
|
58
|
+
}
|
59
|
+
const mediaQuery = window.matchMedia(`(min-width: ${value}px)`);
|
60
|
+
this.matchingBreakpoints.set(breakpoint, mediaQuery.matches);
|
61
|
+
mediaQuery.addEventListener('change', event => {
|
62
|
+
this.matchingBreakpoints.set(breakpoint, event.matches);
|
63
|
+
UnistylesListener.emitChange(UnistyleDependency.Breakpoints);
|
64
|
+
});
|
65
|
+
});
|
66
|
+
};
|
67
|
+
}
|
68
|
+
export const UnistylesState = new UnistylesStateBuilder();
|
69
|
+
//# sourceMappingURL=state.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"names":["UnistylesRuntime","isServer","schemeToTheme","UnistylesListener","UnistyleDependency","UnistylesStateBuilder","themes","Map","matchingBreakpoints","breakpoint","currentBreakpoint","Array","from","reverse","find","_key","value","hasAdaptiveThemes","init","config","initThemes","initBreakpoints","breakpoints","initSettings","settings","initListeners","Object","entries","forEach","themeName","theme","set","adaptiveThemes","themeNames","keys","initialTheme","length","Error","colorScheme","sort","a","b","mediaQuery","window","matchMedia","matches","addEventListener","event","emitChange","Breakpoints","UnistylesState"],"sourceRoot":"../../../src","sources":["web/state.ts"],"mappings":"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","ignoreList":[]}
|
@@ -0,0 +1,28 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
export const reduceObject = (obj, reducer) => Object.fromEntries(Object.entries(obj).map(([key, value]) => [key, reducer(value, key)]));
|
4
|
+
export const keyInObject = (obj, key) => key in obj;
|
5
|
+
export const isServer = () => typeof window === 'undefined';
|
6
|
+
export const warn = message => console.warn(`🦄 [react-native-unistyles] ${message}`);
|
7
|
+
export const equal = (a, b) => {
|
8
|
+
if (Object.is(a, b)) {
|
9
|
+
return true;
|
10
|
+
}
|
11
|
+
if (typeof a !== 'object' || a === null || typeof b !== 'object' || b === null) {
|
12
|
+
return false;
|
13
|
+
}
|
14
|
+
const keysA = Object.keys(a);
|
15
|
+
if (keysA.length !== Object.keys(b).length) {
|
16
|
+
return false;
|
17
|
+
}
|
18
|
+
return keysA.every(key => Object.is(a[key], b[key]) && Object.prototype.hasOwnProperty.call(b, key));
|
19
|
+
};
|
20
|
+
export const generateHash = value => {
|
21
|
+
const str = JSON.stringify(value);
|
22
|
+
let hasher = 5381;
|
23
|
+
let length = str.length;
|
24
|
+
while (length--) hasher = hasher * 33 ^ str.charCodeAt(length);
|
25
|
+
return `unistyles-${(hasher >>> 0).toString(36)}`;
|
26
|
+
};
|
27
|
+
export const hyphenate = propertyName => propertyName.replace(/[A-Z]/g, m => `-${m.toLowerCase()}`);
|
28
|
+
//# sourceMappingURL=common.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"names":["reduceObject","obj","reducer","Object","fromEntries","entries","map","key","value","keyInObject","isServer","window","warn","message","console","equal","a","b","is","keysA","keys","length","every","prototype","hasOwnProperty","call","generateHash","str","JSON","stringify","hasher","charCodeAt","toString","hyphenate","propertyName","replace","m","toLowerCase"],"sourceRoot":"../../../../src","sources":["web/utils/common.ts"],"mappings":";;AAAA,OAAO,MAAMA,YAAY,GAAGA,CACxBC,GAAS,EACTC,OAA+D,KAC9DC,MAAM,CAACC,WAAW,CAACD,MAAM,CAACE,OAAO,CAACJ,GAAG,CAAC,CAACK,GAAG,CAAC,CAAC,CAACC,GAAG,EAAEC,KAAK,CAAC,KAAK,CAACD,GAAG,EAAEL,OAAO,CAACM,KAAK,EAAsBD,GAAG,CAAC,CAAC,CAAC,CAAoC;AAErJ,OAAO,MAAME,WAAW,GAAGA,CAAgCR,GAAM,EAAEM,GAAgB,KAAqBA,GAAG,IAAIN,GAAG;AAElH,OAAO,MAAMS,QAAQ,GAAGA,CAAA,KAAM,OAAOC,MAAM,KAAK,WAAW;AAE3D,OAAO,MAAMC,IAAI,GAAIC,OAAe,IAAKC,OAAO,CAACF,IAAI,CAAC,+BAA+BC,OAAO,EAAE,CAAC;AAE/F,OAAO,MAAME,KAAK,GAAGA,CAAIC,CAAI,EAAEC,CAAI,KAAK;EACpC,IAAId,MAAM,CAACe,EAAE,CAACF,CAAC,EAAEC,CAAC,CAAC,EAAE;IACjB,OAAO,IAAI;EACf;EAEA,IACI,OAAOD,CAAC,KAAK,QAAQ,IAClBA,CAAC,KAAK,IAAI,IACV,OAAOC,CAAC,KAAK,QAAQ,IACrBA,CAAC,KAAK,IAAI,EACf;IACE,OAAO,KAAK;EAChB;EAEA,MAAME,KAAK,GAAGhB,MAAM,CAACiB,IAAI,CAACJ,CAAC,CAAmB;EAE9C,IAAIG,KAAK,CAACE,MAAM,KAAKlB,MAAM,CAACiB,IAAI,CAACH,CAAC,CAAC,CAACI,MAAM,EAAE;IACxC,OAAO,KAAK;EAChB;EAEA,OAAOF,KAAK,CAACG,KAAK,CAACf,GAAG,IAAIJ,MAAM,CAACe,EAAE,CAACF,CAAC,CAACT,GAAG,CAAC,EAAEU,CAAC,CAACV,GAAG,CAAC,CAAC,IAAIJ,MAAM,CAACoB,SAAS,CAACC,cAAc,CAACC,IAAI,CAACR,CAAC,EAAEV,GAAG,CAAC,CAAC;AACxG,CAAC;AAED,OAAO,MAAMmB,YAAY,GAAIlB,KAAU,IAAK;EACxC,MAAMmB,GAAG,GAAGC,IAAI,CAACC,SAAS,CAACrB,KAAK,CAAC;EACjC,IAAIsB,MAAM,GAAG,IAAI;EACjB,IAAIT,MAAM,GAAGM,GAAG,CAACN,MAAM;EAEvB,OAAOA,MAAM,EAAE,EAAES,MAAM,GAAIA,MAAM,GAAG,EAAE,GAAIH,GAAG,CAACI,UAAU,CAACV,MAAM,CAAC;EAEhE,OAAO,aAAa,CAACS,MAAM,KAAK,CAAC,EAAEE,QAAQ,CAAC,EAAE,CAAC,EAAE;AACrD,CAAC;AAED,OAAO,MAAMC,SAAS,GAAIC,YAAoB,IAAKA,YAAY,CAACC,OAAO,CAAC,QAAQ,EAAGC,CAAS,IAAK,IAAIA,CAAC,CAACC,WAAW,CAAC,CAAC,EAAE,CAAC","ignoreList":[]}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../../../src","sources":["web/utils/index.ts"],"mappings":";;AAAA,cAAc,UAAU;AACxB,cAAc,YAAY","ignoreList":[]}
|
@@ -0,0 +1,72 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
import { ColorScheme, Orientation } from '../../specs/types';
|
4
|
+
import { isUnistylesMq, parseMq } from '../../mq';
|
5
|
+
import { UnistylesState } from '../state';
|
6
|
+
import { keyInObject, reduceObject } from './common';
|
7
|
+
export const schemeToTheme = scheme => {
|
8
|
+
switch (scheme) {
|
9
|
+
case ColorScheme.Dark:
|
10
|
+
return 'dark';
|
11
|
+
case ColorScheme.Light:
|
12
|
+
default:
|
13
|
+
return 'light';
|
14
|
+
}
|
15
|
+
};
|
16
|
+
export const hexToRGBA = (hex, opacity) => hex.replace('#', '').split(/(?=(?:..)*$)/).map(x => parseInt(x, 16)).filter(num => !isNaN(num)).reduce((acc, color) => `${acc}${color},`, 'rgba(').concat(`${opacity})`);
|
17
|
+
export const assignSecrets = (object, secrets) => {
|
18
|
+
// @ts-expect-error - assign secrets to object
|
19
|
+
object[`__uni__secrets__${Math.random().toString(16).slice(2)}`] = secrets;
|
20
|
+
return object;
|
21
|
+
};
|
22
|
+
export const extractSecrets = object => {
|
23
|
+
const secrets = Object.entries(object).reduce((acc, [key, value]) => {
|
24
|
+
if (key.startsWith('__uni__secrets__')) {
|
25
|
+
acc.push(value);
|
26
|
+
}
|
27
|
+
return acc;
|
28
|
+
}, []);
|
29
|
+
return secrets;
|
30
|
+
};
|
31
|
+
export const getStyles = values => {
|
32
|
+
const returnValue = {};
|
33
|
+
Object.defineProperties(returnValue, reduceObject(values, value => ({
|
34
|
+
value,
|
35
|
+
enumerable: false,
|
36
|
+
configurable: true
|
37
|
+
})));
|
38
|
+
return returnValue;
|
39
|
+
};
|
40
|
+
export const isInDocument = element => document.body.contains(element);
|
41
|
+
export const extractMediaQueryValue = query => {
|
42
|
+
const [_, px] = query.match(/(\d+)px/) ?? [];
|
43
|
+
if (!px) {
|
44
|
+
return undefined;
|
45
|
+
}
|
46
|
+
const value = Number(px);
|
47
|
+
return isNaN(value) ? undefined : value;
|
48
|
+
};
|
49
|
+
export const getMediaQuery = query => {
|
50
|
+
if (Object.values(Orientation).includes(query)) {
|
51
|
+
return `(orientation: ${query})`;
|
52
|
+
}
|
53
|
+
if (isUnistylesMq(query)) {
|
54
|
+
const {
|
55
|
+
minWidth,
|
56
|
+
maxWidth,
|
57
|
+
minHeight,
|
58
|
+
maxHeight
|
59
|
+
} = parseMq(query);
|
60
|
+
return [minWidth ? `(min-width: ${minWidth}px)` : undefined, maxWidth ? `(max-width: ${maxWidth}px)` : undefined, minHeight ? `(min-height: ${minHeight}px)` : undefined, maxHeight ? `(max-height: ${maxHeight}px)` : undefined].filter(Boolean).join(' and ');
|
61
|
+
}
|
62
|
+
const minWidth = UnistylesState.breakpoints && keyInObject(UnistylesState.breakpoints, query) ? UnistylesState.breakpoints[query] : undefined;
|
63
|
+
return `(min-width: ${minWidth ?? 0}px)`;
|
64
|
+
};
|
65
|
+
export const extractUnistyleDependencies = value => {
|
66
|
+
if (!value) {
|
67
|
+
return [];
|
68
|
+
}
|
69
|
+
const dependencies = keyInObject(value, 'uni__dependencies') ? value.uni__dependencies : [];
|
70
|
+
return Array.isArray(dependencies) ? dependencies : [];
|
71
|
+
};
|
72
|
+
//# sourceMappingURL=unistyle.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"names":["ColorScheme","Orientation","isUnistylesMq","parseMq","UnistylesState","keyInObject","reduceObject","schemeToTheme","scheme","Dark","Light","hexToRGBA","hex","opacity","replace","split","map","x","parseInt","filter","num","isNaN","reduce","acc","color","concat","assignSecrets","object","secrets","Math","random","toString","slice","extractSecrets","Object","entries","key","value","startsWith","push","getStyles","values","returnValue","defineProperties","enumerable","configurable","isInDocument","element","document","body","contains","extractMediaQueryValue","query","_","px","match","undefined","Number","getMediaQuery","includes","minWidth","maxWidth","minHeight","maxHeight","Boolean","join","breakpoints","extractUnistyleDependencies","dependencies","uni__dependencies","Array","isArray"],"sourceRoot":"../../../../src","sources":["web/utils/unistyle.ts"],"mappings":"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","ignoreList":[]}
|
@@ -0,0 +1,34 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
import { deepMergeObjects } from '../../utils';
|
4
|
+
const hasVariants = value => 'variants' in value[1];
|
5
|
+
export const getVariants = (styles, selectedVariants) => {
|
6
|
+
return Object.entries(styles).filter(hasVariants).filter(([_key, {
|
7
|
+
variants
|
8
|
+
}]) => Object.keys(variants).some(variant => variant in variants)).map(([key, {
|
9
|
+
variants,
|
10
|
+
compoundVariants = []
|
11
|
+
}]) => {
|
12
|
+
const variantStyles = Object.entries(variants).flatMap(([variant, styles]) => {
|
13
|
+
const selectedVariant = selectedVariants[variant];
|
14
|
+
const selectedVariantStyles = styles[selectedVariant] ?? styles['default'];
|
15
|
+
if (!selectedVariantStyles) {
|
16
|
+
return [];
|
17
|
+
}
|
18
|
+
return selectedVariantStyles;
|
19
|
+
});
|
20
|
+
const compoundVariantStyles = compoundVariants.flatMap(compoundVariant => {
|
21
|
+
const {
|
22
|
+
styles,
|
23
|
+
...conditions
|
24
|
+
} = compoundVariant;
|
25
|
+
if (Object.entries(conditions).some(([variant, value]) => String(selectedVariants[variant]) !== String(value))) {
|
26
|
+
return [];
|
27
|
+
}
|
28
|
+
return styles;
|
29
|
+
});
|
30
|
+
const mergedVariantStyles = deepMergeObjects(...variantStyles, ...compoundVariantStyles);
|
31
|
+
return [key, mergedVariantStyles];
|
32
|
+
});
|
33
|
+
};
|
34
|
+
//# sourceMappingURL=getVariants.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"names":["deepMergeObjects","hasVariants","value","getVariants","styles","selectedVariants","Object","entries","filter","_key","variants","keys","some","variant","map","key","compoundVariants","variantStyles","flatMap","selectedVariant","selectedVariantStyles","compoundVariantStyles","compoundVariant","conditions","String","mergedVariantStyles"],"sourceRoot":"../../../../src","sources":["web/variants/getVariants.ts"],"mappings":";;AACA,SAASA,gBAAgB,QAAQ,aAAa;AAQ9C,MAAMC,WAAW,GAAsBC,KAAkB,IAAgD,UAAU,IAAIA,KAAK,CAAC,CAAC,CAAC;AAE/H,OAAO,MAAMC,WAAW,GAAGA,CAACC,MAAyC,EAAEC,gBAAqC,KAAK;EAC7G,OAAOC,MAAM,CAACC,OAAO,CAACH,MAAM,CAAC,CACxBI,MAAM,CAACP,WAAW,CAAC,CACnBO,MAAM,CAAC,CAAC,CAACC,IAAI,EAAE;IAAEC;EAAS,CAAC,CAAC,KAAKJ,MAAM,CAACK,IAAI,CAACD,QAAQ,CAAC,CAACE,IAAI,CAACC,OAAO,IAAIA,OAAO,IAAIH,QAAQ,CAAC,CAAC,CAC5FI,GAAG,CAAC,CAAC,CAACC,GAAG,EAAE;IAAEL,QAAQ;IAAEM,gBAAgB,GAAG;EAAG,CAAC,CAAC,KAAK;IACjD,MAAMC,aAAa,GAAGX,MAAM,CAACC,OAAO,CAACG,QAAQ,CAAC,CAACQ,OAAO,CAAC,CAAC,CAACL,OAAO,EAAET,MAAM,CAAC,KAAK;MAC1E,MAAMe,eAAe,GAAGd,gBAAgB,CAACQ,OAAO,CAAC;MACjD,MAAMO,qBAAqB,GAAGhB,MAAM,CAACe,eAAe,CAAC,IAAIf,MAAM,CAAC,SAAS,CAAC;MAE1E,IAAI,CAACgB,qBAAqB,EAAE;QACxB,OAAO,EAAE;MACb;MAEA,OAAOA,qBAAqB;IAChC,CAAC,CAAC;IAEF,MAAMC,qBAAqB,GAAGL,gBAAgB,CAACE,OAAO,CAACI,eAAe,IAAI;MACtE,MAAM;QAAElB,MAAM;QAAE,GAAGmB;MAAW,CAAC,GAAGD,eAAe;MAEjD,IAAIhB,MAAM,CAACC,OAAO,CAACgB,UAAU,CAAC,CAACX,IAAI,CAAC,CAAC,CAACC,OAAO,EAAEX,KAAK,CAAC,KAAKsB,MAAM,CAACnB,gBAAgB,CAACQ,OAAO,CAAC,CAAC,KAAKW,MAAM,CAACtB,KAAK,CAAC,CAAC,EAAE;QAC5G,OAAO,EAAE;MACb;MAEA,OAAOE,MAAM;IACjB,CAAC,CAAC;IAEF,MAAMqB,mBAAmB,GAAGzB,gBAAgB,CAAC,GAAGiB,aAAa,EAAE,GAAGI,qBAAqB,CAAC;IAExF,OAAO,CAACN,GAAG,EAAEU,mBAAmB,CAAC;EACrC,CAAC,CAAC;AACV,CAAC","ignoreList":[]}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../../../src","sources":["web/variants/index.ts"],"mappings":";;AAAA,cAAc,eAAe;AAC7B,cAAc,eAAe","ignoreList":[]}
|
@@ -0,0 +1,54 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
import { useMemo, useRef, useState } from 'react';
|
4
|
+
import { equal, keyInObject, reduceObject } from '../utils';
|
5
|
+
import { getVariants } from './getVariants';
|
6
|
+
export const createUseVariants = (styles, setSelectedVariants) => {
|
7
|
+
const useVariants = selectedVariants => {
|
8
|
+
const [selectedVariantStylesMap] = useState(() => new Map());
|
9
|
+
const lastSelectedVariantsRef = useRef();
|
10
|
+
// Variable that determines if variants have changed and we need to recalculate styles
|
11
|
+
const variantsChanged = !equal(lastSelectedVariantsRef.current, selectedVariants);
|
12
|
+
if (variantsChanged) {
|
13
|
+
lastSelectedVariantsRef.current = selectedVariants;
|
14
|
+
setSelectedVariants(selectedVariants);
|
15
|
+
}
|
16
|
+
const combinedVariantStyles = useMemo(() => {
|
17
|
+
const result = getVariants(styles, selectedVariants);
|
18
|
+
result.forEach(([key, value]) => {
|
19
|
+
selectedVariantStylesMap.set(key, value);
|
20
|
+
});
|
21
|
+
return result;
|
22
|
+
}, [lastSelectedVariantsRef.current]);
|
23
|
+
combinedVariantStyles.forEach(([key]) => {
|
24
|
+
const styleEntry = styles[key];
|
25
|
+
if (!styleEntry) {
|
26
|
+
return;
|
27
|
+
}
|
28
|
+
const selectedVariantStyles = selectedVariantStylesMap.get(key);
|
29
|
+
Object.defineProperties(styleEntry, reduceObject(selectedVariantStyles ?? {}, value => ({
|
30
|
+
value,
|
31
|
+
enumerable: false,
|
32
|
+
configurable: true
|
33
|
+
})));
|
34
|
+
|
35
|
+
// Add __uni__variants to static styles
|
36
|
+
Object.keys(styleEntry).forEach(key => {
|
37
|
+
if (!key.startsWith('__uni__secrets__')) {
|
38
|
+
return;
|
39
|
+
}
|
40
|
+
const secret = keyInObject(styleEntry, key) ? styleEntry[key] : undefined;
|
41
|
+
if (!secret) {
|
42
|
+
return;
|
43
|
+
}
|
44
|
+
Object.defineProperty(secret, '__uni__variants', {
|
45
|
+
value: selectedVariants
|
46
|
+
});
|
47
|
+
});
|
48
|
+
});
|
49
|
+
};
|
50
|
+
Object.defineProperty(styles, 'useVariants', {
|
51
|
+
value: useVariants
|
52
|
+
});
|
53
|
+
};
|
54
|
+
//# sourceMappingURL=useVariants.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"names":["useMemo","useRef","useState","equal","keyInObject","reduceObject","getVariants","createUseVariants","styles","setSelectedVariants","useVariants","selectedVariants","selectedVariantStylesMap","Map","lastSelectedVariantsRef","variantsChanged","current","combinedVariantStyles","result","forEach","key","value","set","styleEntry","selectedVariantStyles","get","Object","defineProperties","enumerable","configurable","keys","startsWith","secret","undefined","defineProperty"],"sourceRoot":"../../../../src","sources":["web/variants/useVariants.ts"],"mappings":";;AAAA,SAASA,OAAO,EAAEC,MAAM,EAAEC,QAAQ,QAAQ,OAAO;AAEjD,SAASC,KAAK,EAAEC,WAAW,EAAEC,YAAY,QAAQ,UAAU;AAC3D,SAASC,WAAW,QAAQ,eAAe;AAE3C,OAAO,MAAMC,iBAAiB,GAAGA,CAACC,MAAyC,EAAEC,mBAA4D,KAAK;EAC1I,MAAMC,WAAW,GAAIC,gBAAqC,IAAK;IAC3D,MAAM,CAACC,wBAAwB,CAAC,GAAGV,QAAQ,CAAC,MAAM,IAAIW,GAAG,CAA8B,CAAC,CAAC;IACzF,MAAMC,uBAAuB,GAAGb,MAAM,CAAsB,CAAC;IAC7D;IACA,MAAMc,eAAe,GAAG,CAACZ,KAAK,CAACW,uBAAuB,CAACE,OAAO,EAAEL,gBAAgB,CAAC;IAEjF,IAAII,eAAe,EAAE;MACjBD,uBAAuB,CAACE,OAAO,GAAGL,gBAAgB;MAClDF,mBAAmB,CAACE,gBAAgB,CAAC;IACzC;IAEA,MAAMM,qBAAqB,GAAGjB,OAAO,CAAC,MAAM;MACxC,MAAMkB,MAAM,GAAGZ,WAAW,CAACE,MAAM,EAAEG,gBAAgB,CAAC;MAEpDO,MAAM,CAACC,OAAO,CAAC,CAAC,CAACC,GAAG,EAAEC,KAAK,CAAC,KAAK;QAC7BT,wBAAwB,CAACU,GAAG,CAACF,GAAG,EAAEC,KAAK,CAAC;MAC5C,CAAC,CAAC;MAEF,OAAOH,MAAM;IACjB,CAAC,EAAE,CAACJ,uBAAuB,CAACE,OAAO,CAAC,CAAC;IAErCC,qBAAqB,CAACE,OAAO,CAAC,CAAC,CAACC,GAAG,CAAC,KAAK;MACrC,MAAMG,UAAU,GAAGf,MAAM,CAACY,GAAG,CAAC;MAE9B,IAAI,CAACG,UAAU,EAAE;QACb;MACJ;MAEA,MAAMC,qBAAqB,GAAGZ,wBAAwB,CAACa,GAAG,CAACL,GAAG,CAAC;MAE/DM,MAAM,CAACC,gBAAgB,CAACJ,UAAU,EAAElB,YAAY,CAACmB,qBAAqB,IAAI,CAAC,CAAC,EAAEH,KAAK,KAAK;QACpFA,KAAK;QACLO,UAAU,EAAE,KAAK;QACjBC,YAAY,EAAE;MAClB,CAAC,CAAC,CAAC,CAAC;;MAEJ;MACAH,MAAM,CAACI,IAAI,CAACP,UAAU,CAAC,CAACJ,OAAO,CAACC,GAAG,IAAI;QACnC,IAAI,CAACA,GAAG,CAACW,UAAU,CAAC,kBAAkB,CAAC,EAAE;UACrC;QACJ;QAEA,MAAMC,MAAM,GAAG5B,WAAW,CAACmB,UAAU,EAAEH,GAAG,CAAC,GAAGG,UAAU,CAACH,GAAG,CAAC,GAAGa,SAAS;QAEzE,IAAI,CAACD,MAAM,EAAE;UACT;QACJ;QAEAN,MAAM,CAACQ,cAAc,CAACF,MAAM,EAAE,iBAAiB,EAAE;UAC7CX,KAAK,EAAEV;QACX,CAAC,CAAC;MACN,CAAC,CAAC;IACN,CAAC,CAAC;EACN,CAAC;EAEDe,MAAM,CAACQ,cAAc,CAAC1B,MAAM,EAAE,aAAa,EAAE;IACzCa,KAAK,EAAEX;EACX,CAAC,CAAC;AACN,CAAC","ignoreList":[]}
|