react-native-unistyles 3.0.0-alpha.8 → 3.0.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +1 -1
- package/README.md +30 -41
- package/Unistyles.podspec +1 -1
- package/android/CMakeLists.txt +22 -45
- package/android/build.gradle +16 -5
- package/android/src/main/cxx/NativeUnistylesModule.cpp +71 -0
- package/android/src/main/cxx/NativeUnistylesModule.h +42 -0
- package/android/src/main/cxx/cpp-adapter.cpp +8 -86
- package/android/src/main/java/com/unistyles/Equatable.kt +61 -0
- package/android/src/main/java/com/unistyles/NativePlatform+android.kt +294 -0
- package/android/src/main/java/com/unistyles/NativePlatform+insets.kt +152 -0
- package/android/src/main/java/com/unistyles/NativePlatform+listener.kt +59 -0
- package/android/src/main/java/com/unistyles/UnistylesModule.kt +51 -0
- package/android/src/main/java/com/unistyles/UnistylesPackage.kt +16 -14
- package/cxx/NativePlatform.h +11 -0
- package/cxx/common/Constants.h +3 -0
- package/cxx/common/Helpers.h +116 -5
- package/cxx/core/HostStyle.cpp +7 -2
- package/cxx/core/HostStyle.h +1 -1
- package/cxx/core/StyleSheet.h +0 -1
- package/cxx/core/Unistyle.h +8 -11
- package/cxx/core/UnistyleData.h +5 -3
- package/cxx/core/UnistyleWrapper.h +108 -13
- package/cxx/core/UnistylesCommitHook.cpp +14 -18
- package/cxx/core/UnistylesCommitHook.h +6 -11
- package/cxx/core/UnistylesCommitShadowNode.h +13 -0
- package/cxx/core/UnistylesMountHook.cpp +28 -0
- package/cxx/core/UnistylesMountHook.h +27 -0
- package/cxx/core/UnistylesRegistry.cpp +109 -48
- package/cxx/core/UnistylesRegistry.h +11 -10
- package/cxx/core/UnistylesState.cpp +29 -8
- package/cxx/core/UnistylesState.h +5 -2
- package/cxx/hybridObjects/HybridNavigationBar.cpp +0 -4
- package/cxx/hybridObjects/HybridNavigationBar.h +3 -4
- package/cxx/hybridObjects/HybridShadowRegistry.cpp +18 -11
- package/cxx/hybridObjects/HybridStatusBar.cpp +0 -4
- package/cxx/hybridObjects/HybridStatusBar.h +3 -4
- package/cxx/hybridObjects/HybridStyleSheet.cpp +145 -19
- package/cxx/hybridObjects/HybridStyleSheet.h +27 -5
- package/cxx/hybridObjects/HybridUnistylesRuntime.cpp +78 -11
- package/cxx/hybridObjects/HybridUnistylesRuntime.h +17 -3
- package/cxx/parser/Parser.cpp +211 -128
- package/cxx/parser/Parser.h +7 -6
- package/cxx/shadowTree/ShadowLeafUpdate.h +3 -1
- package/cxx/shadowTree/ShadowTrafficController.h +71 -0
- package/cxx/shadowTree/ShadowTreeManager.cpp +28 -19
- package/cxx/shadowTree/ShadowTreeManager.h +3 -2
- package/ios/Equatable.swift +2 -1
- package/ios/Extensions.swift +3 -1
- package/ios/NativePlatform+ios.swift +34 -9
- package/ios/NativePlatform+keyboard.swift +83 -0
- package/ios/NativePlatformListener+ios.swift +36 -24
- package/ios/Unistyles.h +1 -0
- package/ios/UnistylesModuleOnLoad.h +8 -2
- package/ios/UnistylesModuleOnLoad.mm +9 -1
- package/lib/commonjs/components/Display.js +18 -0
- package/lib/commonjs/components/Display.js.map +1 -0
- package/lib/commonjs/components/Hide.js +18 -0
- package/lib/commonjs/components/Hide.js.map +1 -0
- package/lib/commonjs/components/Pressable.js +74 -0
- package/lib/commonjs/components/Pressable.js.map +1 -0
- package/lib/commonjs/components/Pressable.web.js +115 -0
- package/lib/commonjs/components/Pressable.web.js.map +1 -0
- package/lib/commonjs/components/index.js +27 -0
- package/lib/commonjs/components/index.js.map +1 -0
- package/lib/commonjs/core/createUnistylesComponent.js +79 -0
- package/lib/commonjs/core/createUnistylesComponent.js.map +1 -0
- package/lib/commonjs/core/createUnistylesComponent.native.js +82 -0
- package/lib/commonjs/core/createUnistylesComponent.native.js.map +1 -0
- package/lib/commonjs/core/getBoundArgs.js +18 -0
- package/lib/commonjs/core/getBoundArgs.js.map +1 -0
- package/lib/commonjs/core/getId.js +9 -0
- package/lib/commonjs/core/getId.js.map +1 -0
- package/lib/commonjs/core/index.js +27 -0
- package/lib/commonjs/core/index.js.map +1 -0
- package/lib/commonjs/hooks/index.js +13 -0
- package/lib/commonjs/hooks/index.js.map +1 -0
- package/lib/commonjs/hooks/useMedia.js +59 -0
- package/lib/commonjs/hooks/useMedia.js.map +1 -0
- package/lib/commonjs/hooks/useMedia.web.js +43 -0
- package/lib/commonjs/hooks/useMedia.web.js.map +1 -0
- package/lib/commonjs/index.js +28 -11
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/mq.js +31 -18
- package/lib/commonjs/mq.js.map +1 -1
- package/lib/commonjs/specs/NativePlatform/NativePlatform.nitro.js +1 -0
- package/lib/commonjs/specs/NativePlatform/NativePlatform.nitro.js.map +1 -1
- package/lib/commonjs/specs/NavigtionBar/index.js +0 -15
- package/lib/commonjs/specs/NavigtionBar/index.js.map +1 -1
- package/lib/commonjs/specs/ShadowRegistry/index.js +11 -8
- package/lib/commonjs/specs/ShadowRegistry/index.js.map +1 -1
- package/lib/commonjs/specs/StatusBar/index.js +0 -5
- package/lib/commonjs/specs/StatusBar/index.js.map +1 -1
- package/lib/commonjs/specs/StyleSheet/index.js +1 -0
- package/lib/commonjs/specs/StyleSheet/index.js.map +1 -1
- package/lib/commonjs/specs/TurboUnistyles/NativeTurboUnistyles.js +1 -2
- package/lib/commonjs/specs/TurboUnistyles/NativeTurboUnistyles.js.map +1 -1
- package/lib/commonjs/specs/UnistylesRuntime/index.js +0 -2
- package/lib/commonjs/specs/UnistylesRuntime/index.js.map +1 -1
- package/lib/commonjs/specs/index.js +7 -0
- package/lib/commonjs/specs/index.js.map +1 -1
- package/lib/commonjs/specs/index.web.js +0 -7
- package/lib/commonjs/specs/index.web.js.map +1 -1
- package/lib/commonjs/types/stylesheet.js.map +1 -1
- package/lib/commonjs/utils.js +26 -0
- package/lib/commonjs/utils.js.map +1 -0
- package/lib/commonjs/web/convert/index.js +27 -24
- package/lib/commonjs/web/convert/index.js.map +1 -1
- package/lib/commonjs/web/convert/object/boxShadow.js +59 -0
- package/lib/commonjs/web/convert/object/boxShadow.js.map +1 -0
- package/lib/commonjs/web/convert/object/filter.js +42 -0
- package/lib/commonjs/web/convert/object/filter.js.map +1 -0
- package/lib/commonjs/web/convert/object/index.js +39 -0
- package/lib/commonjs/web/convert/object/index.js.map +1 -0
- package/lib/commonjs/web/convert/object/objectStyle.js +56 -0
- package/lib/commonjs/web/convert/object/objectStyle.js.map +1 -0
- package/lib/commonjs/web/convert/object/transform.js +27 -0
- package/lib/commonjs/web/convert/object/transform.js.map +1 -0
- package/lib/commonjs/web/convert/pseudo.js +10 -0
- package/lib/commonjs/web/convert/pseudo.js.map +1 -0
- package/lib/commonjs/web/convert/{boxShadow.js → shadow/boxShadow.js} +22 -37
- package/lib/commonjs/web/convert/shadow/boxShadow.js.map +1 -0
- package/lib/commonjs/web/convert/shadow/getShadowBreakpoints.js +38 -0
- package/lib/commonjs/web/convert/shadow/getShadowBreakpoints.js.map +1 -0
- package/lib/commonjs/web/convert/shadow/index.js +28 -0
- package/lib/commonjs/web/convert/shadow/index.js.map +1 -0
- package/lib/commonjs/web/convert/{textShadow.js → shadow/textShadow.js} +21 -35
- package/lib/commonjs/web/convert/shadow/textShadow.js.map +1 -0
- package/lib/commonjs/web/convert/style.js +11 -7
- package/lib/commonjs/web/convert/style.js.map +1 -1
- package/lib/commonjs/web/convert/types.js.map +1 -1
- package/lib/commonjs/web/convert/utils.js +8 -4
- package/lib/commonjs/web/convert/utils.js.map +1 -1
- package/lib/commonjs/web/create.js +35 -67
- package/lib/commonjs/web/create.js.map +1 -1
- package/lib/commonjs/web/index.js +18 -7
- package/lib/commonjs/web/index.js.map +1 -1
- package/lib/commonjs/web/listener.js +61 -0
- package/lib/commonjs/web/listener.js.map +1 -0
- package/lib/commonjs/web/mock.js +2 -12
- package/lib/commonjs/web/mock.js.map +1 -1
- package/lib/commonjs/web/registry.js +154 -19
- package/lib/commonjs/web/registry.js.map +1 -1
- package/lib/commonjs/web/runtime.js +22 -13
- package/lib/commonjs/web/runtime.js.map +1 -1
- package/lib/commonjs/web/shadowRegistry.js +143 -0
- package/lib/commonjs/web/shadowRegistry.js.map +1 -0
- package/lib/commonjs/web/state.js +31 -72
- package/lib/commonjs/web/state.js.map +1 -1
- package/lib/commonjs/web/utils/common.js +39 -0
- package/lib/commonjs/web/utils/common.js.map +1 -0
- package/lib/commonjs/web/utils/index.js +28 -0
- package/lib/commonjs/web/utils/index.js.map +1 -0
- package/lib/commonjs/web/utils/unistyle.js +77 -0
- package/lib/commonjs/web/utils/unistyle.js.map +1 -0
- package/lib/commonjs/web/{variants/getVariants.js → variants.js} +2 -2
- package/lib/commonjs/web/variants.js.map +1 -0
- package/lib/module/components/Display.js +13 -0
- package/lib/module/components/Display.js.map +1 -0
- package/lib/module/components/Hide.js +13 -0
- package/lib/module/components/Hide.js.map +1 -0
- package/lib/module/components/Pressable.js +68 -0
- package/lib/module/components/Pressable.js.map +1 -0
- package/lib/module/components/Pressable.web.js +109 -0
- package/lib/module/components/Pressable.web.js.map +1 -0
- package/lib/module/components/index.js +6 -0
- package/lib/module/components/index.js.map +1 -0
- package/lib/module/core/createUnistylesComponent.js +72 -0
- package/lib/module/core/createUnistylesComponent.js.map +1 -0
- package/lib/module/core/createUnistylesComponent.native.js +75 -0
- package/lib/module/core/createUnistylesComponent.native.js.map +1 -0
- package/lib/module/core/getBoundArgs.js +13 -0
- package/lib/module/core/getBoundArgs.js.map +1 -0
- package/lib/module/core/getId.js +4 -0
- package/lib/module/core/getId.js.map +1 -0
- package/lib/module/core/index.js +6 -0
- package/lib/module/core/index.js.map +1 -0
- package/lib/module/hooks/index.js +4 -0
- package/lib/module/hooks/index.js.map +1 -0
- package/lib/module/hooks/useMedia.js +54 -0
- package/lib/module/hooks/useMedia.js.map +1 -0
- package/lib/module/hooks/useMedia.web.js +38 -0
- package/lib/module/hooks/useMedia.web.js.map +1 -0
- package/lib/module/index.js +2 -9
- package/lib/module/index.js.map +1 -1
- package/lib/module/mq.js +27 -17
- package/lib/module/mq.js.map +1 -1
- package/lib/module/specs/NativePlatform/NativePlatform.nitro.js +1 -0
- package/lib/module/specs/NativePlatform/NativePlatform.nitro.js.map +1 -1
- package/lib/module/specs/NavigtionBar/index.js +0 -10
- package/lib/module/specs/NavigtionBar/index.js.map +1 -1
- package/lib/module/specs/ShadowRegistry/index.js +11 -8
- package/lib/module/specs/ShadowRegistry/index.js.map +1 -1
- package/lib/module/specs/StatusBar/index.js +1 -6
- package/lib/module/specs/StatusBar/index.js.map +1 -1
- package/lib/module/specs/StyleSheet/index.js +1 -0
- package/lib/module/specs/StyleSheet/index.js.map +1 -1
- package/lib/module/specs/TurboUnistyles/NativeTurboUnistyles.js +1 -2
- package/lib/module/specs/TurboUnistyles/NativeTurboUnistyles.js.map +1 -1
- package/lib/module/specs/UnistylesRuntime/index.js +0 -2
- package/lib/module/specs/UnistylesRuntime/index.js.map +1 -1
- package/lib/module/specs/index.js +2 -1
- package/lib/module/specs/index.js.map +1 -1
- package/lib/module/specs/index.web.js +0 -1
- package/lib/module/specs/index.web.js.map +1 -1
- package/lib/module/types/stylesheet.js.map +1 -1
- package/lib/module/utils.js +21 -0
- package/lib/module/utils.js.map +1 -0
- package/lib/module/web/convert/index.js +23 -20
- package/lib/module/web/convert/index.js.map +1 -1
- package/lib/module/web/convert/object/boxShadow.js +54 -0
- package/lib/module/web/convert/object/boxShadow.js.map +1 -0
- package/lib/module/web/convert/object/filter.js +37 -0
- package/lib/module/web/convert/object/filter.js.map +1 -0
- package/lib/module/web/convert/object/index.js +6 -0
- package/lib/module/web/convert/object/index.js.map +1 -0
- package/lib/module/web/convert/object/objectStyle.js +51 -0
- package/lib/module/web/convert/object/objectStyle.js.map +1 -0
- package/lib/module/web/convert/object/transform.js +22 -0
- package/lib/module/web/convert/object/transform.js.map +1 -0
- package/lib/module/web/convert/pseudo.js +5 -0
- package/lib/module/web/convert/pseudo.js.map +1 -0
- package/lib/module/web/convert/shadow/boxShadow.js +57 -0
- package/lib/module/web/convert/shadow/boxShadow.js.map +1 -0
- package/lib/module/web/convert/shadow/getShadowBreakpoints.js +33 -0
- package/lib/module/web/convert/shadow/getShadowBreakpoints.js.map +1 -0
- package/lib/module/web/convert/shadow/index.js +5 -0
- package/lib/module/web/convert/shadow/index.js.map +1 -0
- package/lib/module/web/convert/shadow/textShadow.js +54 -0
- package/lib/module/web/convert/shadow/textShadow.js.map +1 -0
- package/lib/module/web/convert/style.js +11 -7
- package/lib/module/web/convert/style.js.map +1 -1
- package/lib/module/web/convert/types.js.map +1 -1
- package/lib/module/web/convert/utils.js +5 -3
- package/lib/module/web/convert/utils.js.map +1 -1
- package/lib/module/web/create.js +37 -69
- package/lib/module/web/create.js.map +1 -1
- package/lib/module/web/index.js +9 -3
- package/lib/module/web/index.js.map +1 -1
- package/lib/module/web/listener.js +57 -0
- package/lib/module/web/listener.js.map +1 -0
- package/lib/module/web/mock.js +1 -11
- package/lib/module/web/mock.js.map +1 -1
- package/lib/module/web/registry.js +155 -20
- package/lib/module/web/registry.js.map +1 -1
- package/lib/module/web/runtime.js +23 -14
- package/lib/module/web/runtime.js.map +1 -1
- package/lib/module/web/shadowRegistry.js +139 -0
- package/lib/module/web/shadowRegistry.js.map +1 -0
- package/lib/module/web/state.js +32 -73
- package/lib/module/web/state.js.map +1 -1
- package/lib/module/web/utils/common.js +28 -0
- package/lib/module/web/utils/common.js.map +1 -0
- package/lib/module/web/utils/index.js +5 -0
- package/lib/module/web/utils/index.js.map +1 -0
- package/lib/module/web/utils/unistyle.js +65 -0
- package/lib/module/web/utils/unistyle.js.map +1 -0
- package/lib/module/web/{variants/getVariants.js → variants.js} +2 -2
- package/lib/module/web/variants.js.map +1 -0
- package/lib/typescript/src/components/Display.d.ts +7 -0
- package/lib/typescript/src/components/Display.d.ts.map +1 -0
- package/lib/typescript/src/components/Hide.d.ts +7 -0
- package/lib/typescript/src/components/Hide.d.ts.map +1 -0
- package/lib/typescript/src/components/Pressable.d.ts +8 -0
- package/lib/typescript/src/components/Pressable.d.ts.map +1 -0
- package/lib/typescript/src/components/Pressable.web.d.ts +14 -0
- package/lib/typescript/src/components/Pressable.web.d.ts.map +1 -0
- package/lib/typescript/src/components/index.d.ts +4 -0
- package/lib/typescript/src/components/index.d.ts.map +1 -0
- package/lib/typescript/src/core/createUnistylesComponent.d.ts +8 -0
- package/lib/typescript/src/core/createUnistylesComponent.d.ts.map +1 -0
- package/lib/typescript/src/core/createUnistylesComponent.native.d.ts +8 -0
- package/lib/typescript/src/core/createUnistylesComponent.native.d.ts.map +1 -0
- package/lib/typescript/src/core/getBoundArgs.d.ts +2 -0
- package/lib/typescript/src/core/getBoundArgs.d.ts.map +1 -0
- package/lib/typescript/src/core/getId.d.ts +2 -0
- package/lib/typescript/src/core/getId.d.ts.map +1 -0
- package/lib/typescript/src/core/index.d.ts +4 -0
- package/lib/typescript/src/core/index.d.ts.map +1 -0
- package/lib/typescript/src/hooks/index.d.ts +2 -0
- package/lib/typescript/src/hooks/index.d.ts.map +1 -0
- package/lib/typescript/src/hooks/useMedia.d.ts +6 -0
- package/lib/typescript/src/hooks/useMedia.d.ts.map +1 -0
- package/lib/typescript/src/hooks/useMedia.web.d.ts +6 -0
- package/lib/typescript/src/hooks/useMedia.web.d.ts.map +1 -0
- package/lib/typescript/src/index.d.ts +3 -0
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/mq.d.ts +8 -0
- package/lib/typescript/src/mq.d.ts.map +1 -1
- package/lib/typescript/src/specs/NativePlatform/NativePlatform.nitro.d.ts +8 -6
- package/lib/typescript/src/specs/NativePlatform/NativePlatform.nitro.d.ts.map +1 -1
- package/lib/typescript/src/specs/NavigtionBar/UnistylesNavigationBar.nitro.d.ts +0 -1
- package/lib/typescript/src/specs/NavigtionBar/UnistylesNavigationBar.nitro.d.ts.map +1 -1
- package/lib/typescript/src/specs/NavigtionBar/index.d.ts +1 -10
- package/lib/typescript/src/specs/NavigtionBar/index.d.ts.map +1 -1
- package/lib/typescript/src/specs/ShadowRegistry/index.d.ts +4 -4
- package/lib/typescript/src/specs/ShadowRegistry/index.d.ts.map +1 -1
- package/lib/typescript/src/specs/ShadowRegistry/types.d.ts +4 -0
- package/lib/typescript/src/specs/ShadowRegistry/types.d.ts.map +1 -1
- package/lib/typescript/src/specs/StatusBar/UnistylesStatusBar.nitro.d.ts +0 -1
- package/lib/typescript/src/specs/StatusBar/UnistylesStatusBar.nitro.d.ts.map +1 -1
- package/lib/typescript/src/specs/StatusBar/index.d.ts +2 -4
- package/lib/typescript/src/specs/StatusBar/index.d.ts.map +1 -1
- package/lib/typescript/src/specs/StyleSheet/UnistylesStyleSheet.nitro.d.ts +3 -1
- package/lib/typescript/src/specs/StyleSheet/UnistylesStyleSheet.nitro.d.ts.map +1 -1
- package/lib/typescript/src/specs/StyleSheet/index.d.ts +5 -3
- package/lib/typescript/src/specs/StyleSheet/index.d.ts.map +1 -1
- package/lib/typescript/src/specs/UnistylesRuntime/UnistylesRuntime.nitro.d.ts +1 -1
- package/lib/typescript/src/specs/UnistylesRuntime/UnistylesRuntime.nitro.d.ts.map +1 -1
- package/lib/typescript/src/specs/UnistylesRuntime/index.d.ts +4 -2
- package/lib/typescript/src/specs/UnistylesRuntime/index.d.ts.map +1 -1
- package/lib/typescript/src/specs/index.d.ts +4 -2
- package/lib/typescript/src/specs/index.d.ts.map +1 -1
- package/lib/typescript/src/specs/index.web.d.ts +0 -2
- package/lib/typescript/src/specs/index.web.d.ts.map +1 -1
- package/lib/typescript/src/types/breakpoints.d.ts +11 -11
- package/lib/typescript/src/types/breakpoints.d.ts.map +1 -1
- package/lib/typescript/src/types/common.d.ts +2 -0
- package/lib/typescript/src/types/common.d.ts.map +1 -1
- package/lib/typescript/src/types/index.d.ts +2 -2
- package/lib/typescript/src/types/index.d.ts.map +1 -1
- package/lib/typescript/src/types/stylesheet.d.ts +6 -4
- package/lib/typescript/src/types/stylesheet.d.ts.map +1 -1
- package/lib/typescript/src/types/variants.d.ts +4 -1
- package/lib/typescript/src/types/variants.d.ts.map +1 -1
- package/lib/typescript/src/utils.d.ts +2 -0
- package/lib/typescript/src/utils.d.ts.map +1 -0
- package/lib/typescript/src/web/convert/index.d.ts +1 -2
- package/lib/typescript/src/web/convert/index.d.ts.map +1 -1
- package/lib/typescript/src/web/convert/object/boxShadow.d.ts +9 -0
- package/lib/typescript/src/web/convert/object/boxShadow.d.ts.map +1 -0
- package/lib/typescript/src/web/convert/object/filter.d.ts +3 -0
- package/lib/typescript/src/web/convert/object/filter.d.ts.map +1 -0
- package/lib/typescript/src/web/convert/object/index.d.ts +4 -0
- package/lib/typescript/src/web/convert/object/index.d.ts.map +1 -0
- package/lib/typescript/src/web/convert/object/objectStyle.d.ts +5 -0
- package/lib/typescript/src/web/convert/object/objectStyle.d.ts.map +1 -0
- package/lib/typescript/src/web/convert/object/transform.d.ts +3 -0
- package/lib/typescript/src/web/convert/object/transform.d.ts.map +1 -0
- package/lib/typescript/src/web/convert/pseudo.d.ts +6 -0
- package/lib/typescript/src/web/convert/pseudo.d.ts.map +1 -0
- package/lib/typescript/src/web/convert/shadow/boxShadow.d.ts +8 -0
- package/lib/typescript/src/web/convert/shadow/boxShadow.d.ts.map +1 -0
- package/lib/typescript/src/web/convert/shadow/getShadowBreakpoints.d.ts +2 -0
- package/lib/typescript/src/web/convert/shadow/getShadowBreakpoints.d.ts.map +1 -0
- package/lib/typescript/src/web/convert/shadow/index.d.ts +3 -0
- package/lib/typescript/src/web/convert/shadow/index.d.ts.map +1 -0
- package/lib/typescript/src/web/convert/shadow/textShadow.d.ts +8 -0
- package/lib/typescript/src/web/convert/shadow/textShadow.d.ts.map +1 -0
- package/lib/typescript/src/web/convert/style.d.ts +1 -2
- package/lib/typescript/src/web/convert/style.d.ts.map +1 -1
- package/lib/typescript/src/web/convert/types.d.ts +7 -1
- package/lib/typescript/src/web/convert/types.d.ts.map +1 -1
- package/lib/typescript/src/web/convert/utils.d.ts +8 -4
- package/lib/typescript/src/web/convert/utils.d.ts.map +1 -1
- package/lib/typescript/src/web/create.d.ts +215 -1221
- package/lib/typescript/src/web/create.d.ts.map +1 -1
- package/lib/typescript/src/web/index.d.ts +223 -1222
- package/lib/typescript/src/web/index.d.ts.map +1 -1
- package/lib/typescript/src/web/{listener/listener.d.ts → listener.d.ts} +5 -2
- package/lib/typescript/src/web/listener.d.ts.map +1 -0
- package/lib/typescript/src/web/mock.d.ts +0 -9
- package/lib/typescript/src/web/mock.d.ts.map +1 -1
- package/lib/typescript/src/web/registry.d.ts +18 -6
- package/lib/typescript/src/web/registry.d.ts.map +1 -1
- package/lib/typescript/src/web/runtime.d.ts +6 -5
- package/lib/typescript/src/web/runtime.d.ts.map +1 -1
- package/lib/typescript/src/web/shadowRegistry.d.ts +17 -0
- package/lib/typescript/src/web/shadowRegistry.d.ts.map +1 -0
- package/lib/typescript/src/web/state.d.ts +3 -9
- package/lib/typescript/src/web/state.d.ts.map +1 -1
- package/lib/typescript/src/web/utils/common.d.ts +8 -0
- package/lib/typescript/src/web/utils/common.d.ts.map +1 -0
- package/lib/typescript/src/web/utils/index.d.ts +3 -0
- package/lib/typescript/src/web/utils/index.d.ts.map +1 -0
- package/lib/typescript/src/web/utils/unistyle.d.ts +19 -0
- package/lib/typescript/src/web/utils/unistyle.d.ts.map +1 -0
- package/lib/typescript/src/web/{variants/getVariants.d.ts → variants.d.ts} +2 -2
- package/lib/typescript/src/web/variants.d.ts.map +1 -0
- package/nitrogen/generated/android/c++/JColorScheme.hpp +2 -2
- package/nitrogen/generated/android/c++/JFunc_void_UnistylesNativeMiniRuntime.hpp +57 -0
- package/nitrogen/generated/android/c++/JFunc_void_std__vector_UnistyleDependency__UnistylesNativeMiniRuntime.hpp +69 -0
- package/nitrogen/generated/android/c++/JHybridNativePlatformSpec.cpp +35 -34
- package/nitrogen/generated/android/c++/JHybridNativePlatformSpec.hpp +15 -6
- package/nitrogen/generated/android/c++/JOrientation.hpp +2 -2
- package/nitrogen/generated/android/c++/JUnistyleDependency.hpp +5 -2
- package/nitrogen/generated/android/c++/JUnistylesNativeMiniRuntime.hpp +9 -7
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/unistyles/ColorScheme.kt +5 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/unistyles/Dimensions.kt +1 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/unistyles/{Func_void_std__vector_UnistyleDependency_.kt → Func_void_UnistylesNativeMiniRuntime.kt} +6 -5
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/unistyles/Func_void_std__vector_UnistyleDependency__UnistylesNativeMiniRuntime.kt +46 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/unistyles/HybridNativePlatformSpec.kt +25 -13
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/unistyles/Insets.kt +1 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/unistyles/Orientation.kt +5 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/unistyles/UnistyleDependency.kt +6 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/unistyles/UnistylesNativeMiniRuntime.kt +3 -1
- package/nitrogen/generated/android/unistyles+autolinking.cmake +13 -1
- package/nitrogen/generated/android/unistyles+autolinking.gradle +2 -0
- package/nitrogen/generated/android/{UnistylesOnLoad.cpp → unistylesOnLoad.cpp} +6 -4
- package/nitrogen/generated/android/{UnistylesOnLoad.hpp → unistylesOnLoad.hpp} +1 -1
- package/nitrogen/generated/ios/Unistyles+autolinking.rb +6 -4
- package/nitrogen/generated/ios/Unistyles-Swift-Cxx-Bridge.cpp +25 -0
- package/nitrogen/generated/ios/Unistyles-Swift-Cxx-Bridge.hpp +73 -38
- package/nitrogen/generated/ios/Unistyles-Swift-Cxx-Umbrella.hpp +1 -30
- package/nitrogen/generated/ios/c++/HybridNativePlatformSpecSwift.hpp +8 -8
- package/nitrogen/generated/ios/swift/HybridNativePlatformSpec.swift +4 -16
- package/nitrogen/generated/ios/swift/HybridNativePlatformSpecCxx.swift +156 -115
- package/nitrogen/generated/ios/swift/UnistyleDependency.swift +4 -0
- package/nitrogen/generated/ios/swift/UnistylesNativeMiniRuntime.swift +16 -5
- package/nitrogen/generated/shared/c++/ColorScheme.hpp +2 -2
- package/nitrogen/generated/shared/c++/HybridNativePlatformSpec.cpp +2 -2
- package/nitrogen/generated/shared/c++/HybridNativePlatformSpec.hpp +6 -3
- package/nitrogen/generated/shared/c++/HybridUnistylesNavigationBarSpec.cpp +0 -1
- package/nitrogen/generated/shared/c++/HybridUnistylesNavigationBarSpec.hpp +3 -1
- package/nitrogen/generated/shared/c++/HybridUnistylesRuntimeSpec.cpp +1 -0
- package/nitrogen/generated/shared/c++/HybridUnistylesRuntimeSpec.hpp +5 -0
- package/nitrogen/generated/shared/c++/HybridUnistylesShadowRegistrySpec.hpp +3 -0
- package/nitrogen/generated/shared/c++/HybridUnistylesStatusBarSpec.cpp +0 -1
- package/nitrogen/generated/shared/c++/HybridUnistylesStatusBarSpec.hpp +3 -1
- package/nitrogen/generated/shared/c++/HybridUnistylesStyleSheetSpec.cpp +2 -1
- package/nitrogen/generated/shared/c++/HybridUnistylesStyleSheetSpec.hpp +10 -4
- package/nitrogen/generated/shared/c++/Orientation.hpp +2 -2
- package/nitrogen/generated/shared/c++/UnistyleDependency.hpp +2 -1
- package/nitrogen/generated/shared/c++/UnistylesCxxMiniRuntime.hpp +10 -9
- package/nitrogen/generated/shared/c++/UnistylesNativeMiniRuntime.hpp +9 -8
- package/package.json +24 -37
- package/plugin/common.js +27 -2
- package/plugin/import.js +29 -3
- package/plugin/index.js +104 -15
- package/plugin/ref.js +58 -44
- package/plugin/style.js +443 -9
- package/plugin/stylesheet.js +10 -3
- package/src/components/Display.tsx +12 -0
- package/src/components/Hide.tsx +12 -0
- package/src/components/Pressable.tsx +89 -0
- package/src/components/Pressable.web.tsx +129 -0
- package/src/components/index.ts +3 -0
- package/src/core/createUnistylesComponent.native.tsx +83 -0
- package/src/core/createUnistylesComponent.tsx +84 -0
- package/src/core/getBoundArgs.ts +15 -0
- package/src/core/getId.ts +1 -0
- package/src/core/index.ts +3 -0
- package/src/hooks/index.ts +1 -0
- package/src/hooks/useMedia.ts +64 -0
- package/src/hooks/useMedia.web.ts +47 -0
- package/src/index.ts +3 -12
- package/src/mq.ts +33 -15
- package/src/specs/NativePlatform/NativePlatform.nitro.ts +8 -6
- package/src/specs/NavigtionBar/UnistylesNavigationBar.nitro.ts +0 -1
- package/src/specs/NavigtionBar/index.ts +1 -25
- package/src/specs/ShadowRegistry/index.ts +17 -12
- package/src/specs/ShadowRegistry/types.ts +6 -2
- package/src/specs/StatusBar/UnistylesStatusBar.nitro.ts +0 -1
- package/src/specs/StatusBar/index.ts +2 -12
- package/src/specs/StyleSheet/UnistylesStyleSheet.nitro.ts +4 -1
- package/src/specs/StyleSheet/index.ts +7 -3
- package/src/specs/TurboUnistyles/NativeTurboUnistyles.ts +1 -2
- package/src/specs/UnistylesRuntime/UnistylesRuntime.nitro.ts +2 -2
- package/src/specs/UnistylesRuntime/index.ts +4 -3
- package/src/specs/index.ts +6 -2
- package/src/specs/index.web.ts +0 -4
- package/src/types/breakpoints.ts +25 -13
- package/src/types/common.ts +2 -0
- package/src/types/index.ts +2 -2
- package/src/types/stylesheet.ts +7 -5
- package/src/types/variants.ts +7 -1
- package/src/utils.ts +22 -0
- package/src/web/convert/index.ts +24 -24
- package/src/web/convert/object/boxShadow.ts +55 -0
- package/src/web/convert/object/filter.ts +39 -0
- package/src/web/convert/object/index.ts +3 -0
- package/src/web/convert/object/objectStyle.ts +69 -0
- package/src/web/convert/object/transform.ts +24 -0
- package/src/web/convert/pseudo.ts +137 -0
- package/src/web/convert/shadow/boxShadow.ts +50 -0
- package/src/web/convert/shadow/getShadowBreakpoints.ts +34 -0
- package/src/web/convert/shadow/index.ts +2 -0
- package/src/web/convert/shadow/textShadow.ts +48 -0
- package/src/web/convert/style.ts +61 -10
- package/src/web/convert/types.ts +8 -1
- package/src/web/convert/utils.ts +13 -7
- package/src/web/create.ts +35 -83
- package/src/web/index.ts +9 -4
- package/src/web/listener.ts +65 -0
- package/src/web/mock.ts +1 -12
- package/src/web/registry.ts +202 -28
- package/src/web/runtime.ts +29 -18
- package/src/web/shadowRegistry.ts +149 -0
- package/src/web/state.ts +52 -87
- package/src/web/utils/common.ts +45 -0
- package/src/web/utils/index.ts +2 -0
- package/src/web/utils/unistyle.ts +94 -0
- package/src/web/{variants/getVariants.ts → variants.ts} +2 -2
- package/android/src/main/cxx/helpers.cpp +0 -105
- package/android/src/main/cxx/helpers.h +0 -16
- package/android/src/main/cxx/platform.cpp +0 -170
- package/android/src/main/cxx/platform.h +0 -20
- package/lib/commonjs/web/convert/boxShadow.js.map +0 -1
- package/lib/commonjs/web/convert/breakpoint.js +0 -25
- package/lib/commonjs/web/convert/breakpoint.js.map +0 -1
- package/lib/commonjs/web/convert/shadow.js +0 -68
- package/lib/commonjs/web/convert/shadow.js.map +0 -1
- package/lib/commonjs/web/convert/textShadow.js.map +0 -1
- package/lib/commonjs/web/convert/transform.js +0 -72
- package/lib/commonjs/web/convert/transform.js.map +0 -1
- package/lib/commonjs/web/listener/index.js +0 -13
- package/lib/commonjs/web/listener/index.js.map +0 -1
- package/lib/commonjs/web/listener/listener.js +0 -36
- package/lib/commonjs/web/listener/listener.js.map +0 -1
- package/lib/commonjs/web/mq.js +0 -23
- package/lib/commonjs/web/mq.js.map +0 -1
- package/lib/commonjs/web/pseudo.js +0 -11
- package/lib/commonjs/web/pseudo.js.map +0 -1
- package/lib/commonjs/web/utils.js +0 -78
- package/lib/commonjs/web/utils.js.map +0 -1
- package/lib/commonjs/web/variants/getVariants.js.map +0 -1
- package/lib/commonjs/web/variants/index.js +0 -28
- package/lib/commonjs/web/variants/index.js.map +0 -1
- package/lib/commonjs/web/variants/useVariants.js +0 -75
- package/lib/commonjs/web/variants/useVariants.js.map +0 -1
- package/lib/module/web/convert/boxShadow.js +0 -72
- package/lib/module/web/convert/boxShadow.js.map +0 -1
- package/lib/module/web/convert/breakpoint.js +0 -20
- package/lib/module/web/convert/breakpoint.js.map +0 -1
- package/lib/module/web/convert/shadow.js +0 -63
- package/lib/module/web/convert/shadow.js.map +0 -1
- package/lib/module/web/convert/textShadow.js +0 -68
- package/lib/module/web/convert/textShadow.js.map +0 -1
- package/lib/module/web/convert/transform.js +0 -67
- package/lib/module/web/convert/transform.js.map +0 -1
- package/lib/module/web/listener/index.js +0 -4
- package/lib/module/web/listener/index.js.map +0 -1
- package/lib/module/web/listener/listener.js +0 -31
- package/lib/module/web/listener/listener.js.map +0 -1
- package/lib/module/web/mq.js +0 -17
- package/lib/module/web/mq.js.map +0 -1
- package/lib/module/web/pseudo.js +0 -6
- package/lib/module/web/pseudo.js.map +0 -1
- package/lib/module/web/utils.js +0 -65
- package/lib/module/web/utils.js.map +0 -1
- package/lib/module/web/variants/getVariants.js.map +0 -1
- package/lib/module/web/variants/index.js +0 -5
- package/lib/module/web/variants/index.js.map +0 -1
- package/lib/module/web/variants/useVariants.js +0 -70
- package/lib/module/web/variants/useVariants.js.map +0 -1
- package/lib/typescript/example/App.d.ts +0 -4
- package/lib/typescript/example/App.d.ts.map +0 -1
- package/lib/typescript/example/Typography.d.ts +0 -11
- package/lib/typescript/example/Typography.d.ts.map +0 -1
- package/lib/typescript/example/unistyles.d.ts +0 -63
- package/lib/typescript/example/unistyles.d.ts.map +0 -1
- package/lib/typescript/expo-example/App.d.ts +0 -4
- package/lib/typescript/expo-example/App.d.ts.map +0 -1
- package/lib/typescript/expo-example/unistyles.d.ts +0 -63
- package/lib/typescript/expo-example/unistyles.d.ts.map +0 -1
- package/lib/typescript/src/web/convert/boxShadow.d.ts +0 -3
- package/lib/typescript/src/web/convert/boxShadow.d.ts.map +0 -1
- package/lib/typescript/src/web/convert/breakpoint.d.ts +0 -3
- package/lib/typescript/src/web/convert/breakpoint.d.ts.map +0 -1
- package/lib/typescript/src/web/convert/shadow.d.ts +0 -2
- package/lib/typescript/src/web/convert/shadow.d.ts.map +0 -1
- package/lib/typescript/src/web/convert/textShadow.d.ts +0 -3
- package/lib/typescript/src/web/convert/textShadow.d.ts.map +0 -1
- package/lib/typescript/src/web/convert/transform.d.ts +0 -5
- package/lib/typescript/src/web/convert/transform.d.ts.map +0 -1
- package/lib/typescript/src/web/listener/index.d.ts +0 -2
- package/lib/typescript/src/web/listener/index.d.ts.map +0 -1
- package/lib/typescript/src/web/listener/listener.d.ts.map +0 -1
- package/lib/typescript/src/web/mq.d.ts +0 -4
- package/lib/typescript/src/web/mq.d.ts.map +0 -1
- package/lib/typescript/src/web/pseudo.d.ts +0 -4
- package/lib/typescript/src/web/pseudo.d.ts.map +0 -1
- package/lib/typescript/src/web/utils.d.ts +0 -20
- package/lib/typescript/src/web/utils.d.ts.map +0 -1
- package/lib/typescript/src/web/variants/getVariants.d.ts.map +0 -1
- package/lib/typescript/src/web/variants/index.d.ts +0 -3
- package/lib/typescript/src/web/variants/index.d.ts.map +0 -1
- package/lib/typescript/src/web/variants/useVariants.d.ts +0 -3
- package/lib/typescript/src/web/variants/useVariants.d.ts.map +0 -1
- package/nitrogen/generated/android/c++/JFunc_void_std__vector_UnistyleDependency_.hpp +0 -60
- package/plugin/__tests__/dependencies.spec.js +0 -438
- package/plugin/__tests__/ref.spec.js +0 -1181
- package/plugin/__tests__/stylesheet.spec.js +0 -489
- package/src/web/convert/boxShadow.ts +0 -72
- package/src/web/convert/breakpoint.ts +0 -21
- package/src/web/convert/shadow.ts +0 -68
- package/src/web/convert/textShadow.ts +0 -69
- package/src/web/convert/transform.ts +0 -89
- package/src/web/listener/index.ts +0 -1
- package/src/web/listener/listener.ts +0 -33
- package/src/web/mq.ts +0 -19
- package/src/web/pseudo.ts +0 -11
- package/src/web/utils.ts +0 -95
- package/src/web/variants/index.ts +0 -2
- package/src/web/variants/useVariants.ts +0 -79
- /package/nitrogen/generated/android/{UnistylesOnLoad.kt → unistylesOnLoad.kt} +0 -0
@@ -1,32 +1,167 @@
|
|
1
1
|
"use strict";
|
2
2
|
|
3
|
-
import {
|
4
|
-
import {
|
5
|
-
import {
|
3
|
+
import { UnistylesRuntime } from './runtime';
|
4
|
+
import { extractMediaQueryValue, keyInObject, getMediaQuery, generateHash, extractUnistyleDependencies } from './utils';
|
5
|
+
import { UnistylesListener } from './listener';
|
6
|
+
import { convertUnistyles } from './convert';
|
6
7
|
class UnistylesRegistryBuilder {
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
if (
|
15
|
-
const
|
8
|
+
stylesheets = new Map();
|
9
|
+
stylesCounter = new Map();
|
10
|
+
#styleTag = null;
|
11
|
+
disposeListenersMap = new Map();
|
12
|
+
dependenciesMap = new Map();
|
13
|
+
get styleTag() {
|
14
|
+
const tag = this.#styleTag;
|
15
|
+
if (!tag) {
|
16
|
+
const newTag = document.createElement('style');
|
17
|
+
newTag.id = 'unistyles-web';
|
18
|
+
this.#styleTag = newTag;
|
19
|
+
document.head.appendChild(newTag);
|
20
|
+
return newTag;
|
21
|
+
}
|
22
|
+
return tag;
|
23
|
+
}
|
24
|
+
getComputedStylesheet = stylesheet => {
|
25
|
+
if (typeof stylesheet !== 'function') {
|
26
|
+
return stylesheet;
|
27
|
+
}
|
28
|
+
const computedStylesheet = this.stylesheets.get(stylesheet);
|
29
|
+
if (computedStylesheet) {
|
30
|
+
return computedStylesheet;
|
31
|
+
}
|
32
|
+
const createdStylesheet = stylesheet(UnistylesRuntime.theme, UnistylesRuntime.miniRuntime);
|
33
|
+
const dependencies = Object.values(createdStylesheet).flatMap(value => extractUnistyleDependencies(value));
|
34
|
+
this.addDependenciesToStylesheet(stylesheet, dependencies);
|
35
|
+
this.stylesheets.set(stylesheet, createdStylesheet);
|
36
|
+
return createdStylesheet;
|
37
|
+
};
|
38
|
+
addDependenciesToStylesheet = (stylesheet, dependencies) => {
|
39
|
+
this.disposeListenersMap.get(stylesheet)?.();
|
40
|
+
const dependenciesMap = this.dependenciesMap.get(stylesheet) ?? new Set(dependencies);
|
41
|
+
dependencies.forEach(dependency => dependenciesMap.add(dependency));
|
42
|
+
const dispose = UnistylesListener.addStylesheetListeners(Array.from(dependenciesMap), () => {
|
43
|
+
const newComputedStylesheet = stylesheet(UnistylesRuntime.theme, UnistylesRuntime.miniRuntime);
|
44
|
+
this.stylesheets.set(stylesheet, newComputedStylesheet);
|
45
|
+
});
|
46
|
+
this.dependenciesMap.set(stylesheet, dependenciesMap);
|
47
|
+
this.disposeListenersMap.set(stylesheet, dispose);
|
48
|
+
};
|
49
|
+
add = value => {
|
50
|
+
const hash = generateHash(value);
|
51
|
+
const existingCounter = this.stylesCounter.get(hash);
|
52
|
+
if (!existingCounter || existingCounter.size === 0) {
|
53
|
+
const counter = new Set();
|
54
|
+
counter.add(value);
|
55
|
+
this.stylesCounter.set(hash, counter);
|
56
|
+
this.applyStyles(hash, convertUnistyles(value));
|
16
57
|
return {
|
17
|
-
|
18
|
-
|
58
|
+
hash,
|
59
|
+
existingHash: false
|
19
60
|
};
|
20
61
|
}
|
62
|
+
existingCounter.add(value);
|
21
63
|
return {
|
22
|
-
|
23
|
-
|
64
|
+
hash,
|
65
|
+
existingHash: true
|
24
66
|
};
|
25
67
|
};
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
68
|
+
applyStyles = (hash, styles) => {
|
69
|
+
Object.entries(styles).forEach(([key, value]) => {
|
70
|
+
if (!this.styleTag.sheet) {
|
71
|
+
return;
|
72
|
+
}
|
73
|
+
if (typeof value === 'object' && !key.startsWith('_')) {
|
74
|
+
const mediaQuery = getMediaQuery(key);
|
75
|
+
const cssRules = Array.from(this.styleTag.sheet.cssRules);
|
76
|
+
let queryRule = cssRules.find(rule => {
|
77
|
+
if (!(rule instanceof CSSMediaRule)) {
|
78
|
+
return false;
|
79
|
+
}
|
80
|
+
return rule.media.item(0)?.includes(mediaQuery);
|
81
|
+
}) ?? null;
|
82
|
+
if (!queryRule) {
|
83
|
+
const mediaQueryValue = extractMediaQueryValue(mediaQuery);
|
84
|
+
const ruleIndex = mediaQueryValue ? cssRules.reduce((acc, rule, ruleIndex) => {
|
85
|
+
if (!(rule instanceof CSSMediaRule)) {
|
86
|
+
return acc;
|
87
|
+
}
|
88
|
+
const ruleMediaQueryValue = extractMediaQueryValue(rule.conditionText);
|
89
|
+
if (ruleMediaQueryValue === undefined) {
|
90
|
+
return;
|
91
|
+
}
|
92
|
+
return ruleMediaQueryValue > mediaQueryValue ? ruleIndex : acc;
|
93
|
+
}, cssRules.length) : undefined;
|
94
|
+
queryRule = this.styleTag.sheet.cssRules.item(this.styleTag.sheet.insertRule(`@media ${mediaQuery} {.${hash} {}}`, ruleIndex));
|
95
|
+
}
|
96
|
+
if (queryRule instanceof CSSMediaRule) {
|
97
|
+
Object.entries(value).forEach(([mqKey, mqValue]) => {
|
98
|
+
this.applyRule({
|
99
|
+
hash,
|
100
|
+
key: mqKey,
|
101
|
+
value: mqValue,
|
102
|
+
sheet: queryRule
|
103
|
+
});
|
104
|
+
});
|
105
|
+
}
|
106
|
+
return;
|
107
|
+
}
|
108
|
+
|
109
|
+
// Pseudo
|
110
|
+
if (typeof value === 'object') {
|
111
|
+
Object.entries(value).forEach(([pseudoKey, pseudoValue]) => {
|
112
|
+
this.applyRule({
|
113
|
+
hash: `${hash}${key.replace('_', ':')}`,
|
114
|
+
key: pseudoKey,
|
115
|
+
value: pseudoValue,
|
116
|
+
sheet: this.styleTag.sheet
|
117
|
+
});
|
118
|
+
});
|
119
|
+
return;
|
120
|
+
}
|
121
|
+
this.applyRule({
|
122
|
+
hash,
|
123
|
+
key,
|
124
|
+
value,
|
125
|
+
sheet: this.styleTag.sheet
|
126
|
+
});
|
127
|
+
});
|
128
|
+
};
|
129
|
+
applyRule = ({
|
130
|
+
hash,
|
131
|
+
key,
|
132
|
+
value,
|
133
|
+
sheet
|
134
|
+
}) => {
|
135
|
+
let rule = Array.from(sheet.cssRules).find(rule => {
|
136
|
+
if (!(rule instanceof CSSStyleRule)) {
|
137
|
+
return false;
|
138
|
+
}
|
139
|
+
|
140
|
+
// In unistyles pseudos are prefixed with ':' but in css some of them are prefixed with '::'
|
141
|
+
return rule.selectorText.replace('::', ':').includes(hash);
|
142
|
+
}) ?? null;
|
143
|
+
if (!rule) {
|
144
|
+
rule = sheet.cssRules.item(sheet.insertRule(`.${hash} {}`));
|
145
|
+
}
|
146
|
+
if (!(rule instanceof CSSStyleRule) || !keyInObject(rule.style, key)) {
|
147
|
+
return;
|
148
|
+
}
|
149
|
+
rule.style[key] = value;
|
150
|
+
};
|
151
|
+
remove = value => {
|
152
|
+
const hash = generateHash(value);
|
153
|
+
const existingStyles = this.stylesCounter.get(hash);
|
154
|
+
if (!existingStyles) {
|
155
|
+
return;
|
156
|
+
}
|
157
|
+
existingStyles.delete(value);
|
158
|
+
if (existingStyles.size === 0) {
|
159
|
+
const ruleIndex = Array.from(this.styleTag.sheet?.cssRules ?? []).findIndex(rule => rule.cssText.includes(`.${hash}`));
|
160
|
+
if (ruleIndex === -1) {
|
161
|
+
return;
|
162
|
+
}
|
163
|
+
this.styleTag.sheet?.deleteRule(ruleIndex);
|
164
|
+
}
|
30
165
|
};
|
31
166
|
}
|
32
167
|
export const UnistylesRegistry = new UnistylesRegistryBuilder();
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["
|
1
|
+
{"version":3,"names":["UnistylesRuntime","extractMediaQueryValue","keyInObject","getMediaQuery","generateHash","extractUnistyleDependencies","UnistylesListener","convertUnistyles","UnistylesRegistryBuilder","stylesheets","Map","stylesCounter","styleTag","disposeListenersMap","dependenciesMap","tag","newTag","document","createElement","id","head","appendChild","getComputedStylesheet","stylesheet","computedStylesheet","get","createdStylesheet","theme","miniRuntime","dependencies","Object","values","flatMap","value","addDependenciesToStylesheet","set","Set","forEach","dependency","add","dispose","addStylesheetListeners","Array","from","newComputedStylesheet","hash","existingCounter","size","counter","applyStyles","existingHash","styles","entries","key","sheet","startsWith","mediaQuery","cssRules","queryRule","find","rule","CSSMediaRule","media","item","includes","mediaQueryValue","ruleIndex","reduce","acc","ruleMediaQueryValue","conditionText","undefined","length","insertRule","mqKey","mqValue","applyRule","pseudoKey","pseudoValue","replace","CSSStyleRule","selectorText","style","remove","existingStyles","delete","findIndex","cssText","deleteRule","UnistylesRegistry"],"sourceRoot":"../../../src","sources":["web/registry.ts"],"mappings":"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","ignoreList":[]}
|
@@ -6,7 +6,7 @@ import { WebContentSizeCategory } from '../types';
|
|
6
6
|
import { UnistylesListener } from './listener';
|
7
7
|
import { NavigationBar, StatusBar } from './mock';
|
8
8
|
import { UnistylesState } from './state';
|
9
|
-
import {
|
9
|
+
import { error, isServer, schemeToTheme } from './utils';
|
10
10
|
class UnistylesRuntimeBuilder {
|
11
11
|
lightMedia = this.getLightMedia();
|
12
12
|
darkMedia = this.getDarkMedia();
|
@@ -39,11 +39,17 @@ class UnistylesRuntimeBuilder {
|
|
39
39
|
}
|
40
40
|
}
|
41
41
|
get themeName() {
|
42
|
+
if (UnistylesState.hasAdaptiveThemes) {
|
43
|
+
return schemeToTheme(this.colorScheme);
|
44
|
+
}
|
42
45
|
return UnistylesState.themeName;
|
43
46
|
}
|
44
47
|
get contentSizeCategory() {
|
45
48
|
return WebContentSizeCategory.Unspecified;
|
46
49
|
}
|
50
|
+
get breakpoints() {
|
51
|
+
return UnistylesState.breakpoints ?? {};
|
52
|
+
}
|
47
53
|
get breakpoint() {
|
48
54
|
return UnistylesState.breakpoint;
|
49
55
|
}
|
@@ -54,14 +60,7 @@ class UnistylesRuntimeBuilder {
|
|
54
60
|
return screen.orientation.type.includes('portrait') ? Orientation.Portrait : Orientation.Landscape;
|
55
61
|
}
|
56
62
|
get theme() {
|
57
|
-
|
58
|
-
throw new Error('🦄 No theme selected!');
|
59
|
-
}
|
60
|
-
const theme = UnistylesState.themes.get(this.themeName);
|
61
|
-
if (!theme) {
|
62
|
-
throw new Error(`🦄 Theme "${this.themeName}" is not registered!`);
|
63
|
-
}
|
64
|
-
return theme;
|
63
|
+
return this.getTheme(this.themeName);
|
65
64
|
}
|
66
65
|
get pixelRatio() {
|
67
66
|
return isServer() ? 1 : window.devicePixelRatio;
|
@@ -108,7 +107,8 @@ class UnistylesRuntimeBuilder {
|
|
108
107
|
themeName: this.themeName,
|
109
108
|
contentSizeCategory: this.contentSizeCategory,
|
110
109
|
breakpoint: this.breakpoint,
|
111
|
-
|
110
|
+
isLandscape: this.orientation === Orientation.Landscape,
|
111
|
+
isPortrait: this.orientation === Orientation.Portrait,
|
112
112
|
pixelRatio: this.pixelRatio,
|
113
113
|
screen: this.screen,
|
114
114
|
fontScale: this.fontScale,
|
@@ -126,6 +126,9 @@ class UnistylesRuntimeBuilder {
|
|
126
126
|
};
|
127
127
|
}
|
128
128
|
setTheme = themeName => {
|
129
|
+
if (this.hasAdaptiveThemes) {
|
130
|
+
throw error(`You're trying to set theme to: '${themeName}', but adaptiveThemes are enabled.`);
|
131
|
+
}
|
129
132
|
if (themeName === UnistylesRuntime.themeName) {
|
130
133
|
return;
|
131
134
|
}
|
@@ -140,21 +143,27 @@ class UnistylesRuntimeBuilder {
|
|
140
143
|
}
|
141
144
|
this.setTheme(schemeToTheme(UnistylesRuntime.colorScheme));
|
142
145
|
};
|
143
|
-
setRootViewBackgroundColor =
|
146
|
+
setRootViewBackgroundColor = color => {
|
144
147
|
if (isServer()) {
|
145
148
|
return;
|
146
149
|
}
|
147
|
-
document.documentElement.style.backgroundColor =
|
150
|
+
document.documentElement.style.backgroundColor = color;
|
148
151
|
};
|
149
152
|
setImmersiveMode = () => {};
|
150
153
|
updateTheme = (themeName, updater) => {
|
151
154
|
const oldTheme = UnistylesState.themes.get(themeName);
|
152
155
|
if (!oldTheme) {
|
153
|
-
throw
|
156
|
+
throw error(`Unistyles: You're trying to update theme "${themeName}" but it wasn't registered.`);
|
154
157
|
}
|
155
158
|
UnistylesState.themes.set(themeName, updater(oldTheme));
|
156
159
|
};
|
157
|
-
|
160
|
+
getTheme = (themeName = this.themeName) => {
|
161
|
+
const theme = UnistylesState.themes.get(themeName ?? '');
|
162
|
+
if (!themeName || !theme) {
|
163
|
+
throw error(`You're trying to get theme "${themeName}" but it wasn't registered.`);
|
164
|
+
}
|
165
|
+
return theme;
|
166
|
+
};
|
158
167
|
}
|
159
168
|
export const UnistylesRuntime = new UnistylesRuntimeBuilder();
|
160
169
|
//# sourceMappingURL=runtime.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["UnistyleDependency","ColorScheme","Orientation","WebContentSizeCategory","UnistylesListener","NavigationBar","StatusBar","UnistylesState","
|
1
|
+
{"version":3,"names":["UnistyleDependency","ColorScheme","Orientation","WebContentSizeCategory","UnistylesListener","NavigationBar","StatusBar","UnistylesState","error","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","set"],"sourceRoot":"../../../src","sources":["web/runtime.ts"],"mappings":"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","ignoreList":[]}
|
@@ -0,0 +1,139 @@
|
|
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, styles, _variants, _args) => {
|
22
|
+
// Styles are not provided
|
23
|
+
if (!styles) {
|
24
|
+
return;
|
25
|
+
}
|
26
|
+
|
27
|
+
// Ref is unmounted, remove style tags from the document
|
28
|
+
if (ref === null) {
|
29
|
+
const secrets = extractSecrets(styles);
|
30
|
+
if (secrets) {
|
31
|
+
secrets.__uni__refs.forEach(ref => {
|
32
|
+
if (isInDocument(ref)) {
|
33
|
+
return;
|
34
|
+
}
|
35
|
+
const oldResult = this.resultsMap.get(ref);
|
36
|
+
this.resultsMap.delete(ref);
|
37
|
+
this.classNamesMap.delete(ref);
|
38
|
+
if (oldResult) {
|
39
|
+
UnistylesRegistry.remove(oldResult);
|
40
|
+
}
|
41
|
+
});
|
42
|
+
}
|
43
|
+
return;
|
44
|
+
}
|
45
|
+
|
46
|
+
// Ref is not an HTMLElement
|
47
|
+
if (!(ref instanceof HTMLElement)) {
|
48
|
+
return;
|
49
|
+
}
|
50
|
+
const parsedStyles = styles.flat().flatMap((unistyleStyle, styleIndex) => {
|
51
|
+
if (!unistyleStyle) {
|
52
|
+
return [];
|
53
|
+
}
|
54
|
+
const secrets = extractSecrets(unistyleStyle);
|
55
|
+
|
56
|
+
// Regular style
|
57
|
+
if (!secrets) {
|
58
|
+
return unistyleStyle;
|
59
|
+
}
|
60
|
+
const {
|
61
|
+
__uni__key,
|
62
|
+
__uni__stylesheet,
|
63
|
+
__uni__variants,
|
64
|
+
__uni__args = [],
|
65
|
+
__uni__refs
|
66
|
+
} = secrets;
|
67
|
+
const newComputedStylesheet = UnistylesRegistry.getComputedStylesheet(__uni__stylesheet);
|
68
|
+
const style = newComputedStylesheet[__uni__key];
|
69
|
+
const variants = _variants && Object.keys(_variants).length > 0 ? _variants : __uni__variants;
|
70
|
+
const args = _args[styleIndex] && _args[styleIndex].length > 0 ? _args[styleIndex] : __uni__args;
|
71
|
+
const result = typeof style === 'function' ? style(...args) : style;
|
72
|
+
const {
|
73
|
+
variantsResult
|
74
|
+
} = Object.fromEntries(getVariants({
|
75
|
+
variantsResult: result
|
76
|
+
}, variants));
|
77
|
+
const resultWithVariants = deepMergeObjects(result, variantsResult ?? {});
|
78
|
+
const dependencies = extractUnistyleDependencies(resultWithVariants);
|
79
|
+
if (typeof __uni__stylesheet === 'function') {
|
80
|
+
// Add dependencies from dynamic styles to stylesheet
|
81
|
+
UnistylesRegistry.addDependenciesToStylesheet(__uni__stylesheet, dependencies);
|
82
|
+
}
|
83
|
+
__uni__refs.add(ref);
|
84
|
+
const dispose = UnistylesListener.addListeners(extractUnistyleDependencies(resultWithVariants), () => {
|
85
|
+
const hash = this.hashMap.get(ref);
|
86
|
+
|
87
|
+
// Dispose listener if there is no hash
|
88
|
+
if (!hash) {
|
89
|
+
dispose();
|
90
|
+
return;
|
91
|
+
}
|
92
|
+
const newComputedStyleSheet = UnistylesRegistry.getComputedStylesheet(__uni__stylesheet);
|
93
|
+
const newValue = newComputedStyleSheet[__uni__key];
|
94
|
+
const result = typeof newValue === 'function' ? newValue(...args) : newValue;
|
95
|
+
const {
|
96
|
+
variantsResult
|
97
|
+
} = Object.fromEntries(getVariants({
|
98
|
+
variantsResult: result
|
99
|
+
}, variants));
|
100
|
+
const resultWithVariants = deepMergeObjects(result, variantsResult ?? {});
|
101
|
+
UnistylesRegistry.applyStyles(hash, convertUnistyles(resultWithVariants));
|
102
|
+
});
|
103
|
+
return resultWithVariants;
|
104
|
+
});
|
105
|
+
const combinedStyles = deepMergeObjects(...parsedStyles);
|
106
|
+
const oldStyles = this.resultsMap.get(ref);
|
107
|
+
if (equal(combinedStyles, oldStyles)) {
|
108
|
+
return;
|
109
|
+
}
|
110
|
+
const oldClassNames = this.classNamesMap.get(ref);
|
111
|
+
|
112
|
+
// Remove old styles
|
113
|
+
if (oldStyles) {
|
114
|
+
UnistylesRegistry.remove(oldStyles);
|
115
|
+
}
|
116
|
+
|
117
|
+
// Remove old classnames from the ref
|
118
|
+
oldClassNames?.forEach(className => ref.classList.remove(className));
|
119
|
+
this.resultsMap.set(ref, combinedStyles);
|
120
|
+
const {
|
121
|
+
hash,
|
122
|
+
existingHash
|
123
|
+
} = UnistylesRegistry.add(combinedStyles);
|
124
|
+
const injectedClassNames = combinedStyles?._web?._classNames ?? [];
|
125
|
+
const newClassNames = (Array.isArray(injectedClassNames) ? injectedClassNames : [injectedClassNames]).concat(hash);
|
126
|
+
this.classNamesMap.set(ref, newClassNames);
|
127
|
+
// Add new classnames to the ref
|
128
|
+
ref.classList.add(...newClassNames);
|
129
|
+
|
130
|
+
// If it is new hash add it to the map to use for the listener
|
131
|
+
if (!existingHash) {
|
132
|
+
this.hashMap.set(ref, hash);
|
133
|
+
}
|
134
|
+
return newClassNames;
|
135
|
+
};
|
136
|
+
remove = () => {};
|
137
|
+
}
|
138
|
+
export const UnistylesShadowRegistry = new UnistylesShadowRegistryBuilder();
|
139
|
+
//# 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","styles","_variants","_args","secrets","__uni__refs","forEach","oldResult","get","delete","remove","HTMLElement","parsedStyles","flat","flatMap","unistyleStyle","styleIndex","__uni__key","__uni__stylesheet","__uni__variants","__uni__args","newComputedStylesheet","getComputedStylesheet","style","variants","Object","keys","length","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":[]}
|
package/lib/module/web/state.js
CHANGED
@@ -1,20 +1,24 @@
|
|
1
1
|
"use strict";
|
2
2
|
|
3
|
-
import { createElement, createRef } from 'react';
|
4
3
|
import { UnistylesRuntime } from './runtime';
|
5
|
-
import { isServer, schemeToTheme } from './utils';
|
4
|
+
import { error, isServer, schemeToTheme } from './utils';
|
6
5
|
import { UnistylesListener } from './listener';
|
7
6
|
import { UnistyleDependency } from '../specs/NativePlatform';
|
8
7
|
class UnistylesStateBuilder {
|
9
|
-
isSSR = isServer();
|
10
|
-
tags = [];
|
11
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
|
+
}
|
12
14
|
hasAdaptiveThemes = false;
|
13
15
|
init = config => {
|
14
16
|
this.initThemes(config.themes);
|
15
17
|
this.initBreakpoints(config.breakpoints);
|
16
|
-
|
17
|
-
|
18
|
+
if (config.settings) {
|
19
|
+
this.initSettings(config.settings);
|
20
|
+
}
|
21
|
+
if (isServer()) {
|
18
22
|
return;
|
19
23
|
}
|
20
24
|
UnistylesListener.initListeners();
|
@@ -26,92 +30,47 @@ class UnistylesStateBuilder {
|
|
26
30
|
};
|
27
31
|
initSettings = settings => {
|
28
32
|
this.hasAdaptiveThemes = settings?.adaptiveThemes ?? false;
|
29
|
-
|
30
|
-
|
31
|
-
// Single theme + no settings
|
32
|
-
if (!settings?.adaptiveThemes && !settings?.initialTheme && themeNames.length === 1) {
|
33
|
-
this.themeName = themeNames[0];
|
34
|
-
return;
|
35
|
-
}
|
36
|
-
|
37
|
-
// No settings
|
38
|
-
if (!settings?.adaptiveThemes && !settings?.initialTheme) {
|
39
|
-
throw new Error('🦄 You need to specify either "initialTheme" or "adaptiveThemes" in your config');
|
33
|
+
if (settings.initialTheme && settings.adaptiveThemes) {
|
34
|
+
throw error('You\'re trying to set initial theme and enable adaptiveThemes, but these options are mutually exclusive.');
|
40
35
|
}
|
41
36
|
|
42
37
|
// Adaptive themes
|
43
38
|
if (settings.adaptiveThemes) {
|
39
|
+
if (!this.themes.get('light') || !this.themes.get('dark')) {
|
40
|
+
throw error(`You're trying to enable adaptiveThemes, but you didn't register both 'light' and 'dark' themes.`);
|
41
|
+
}
|
44
42
|
this.themeName = schemeToTheme(UnistylesRuntime.colorScheme);
|
45
43
|
return;
|
46
44
|
}
|
47
|
-
|
48
|
-
|
49
|
-
|
45
|
+
if (settings.initialTheme) {
|
46
|
+
const initialTheme = typeof settings.initialTheme === 'function' ? settings.initialTheme() : settings.initialTheme;
|
47
|
+
if (!this.themes.get(initialTheme)) {
|
48
|
+
throw error(`You're trying to select theme "${initialTheme}" but it wasn't registered.`);
|
49
|
+
}
|
50
|
+
this.themeName = initialTheme;
|
51
|
+
}
|
50
52
|
};
|
51
53
|
initBreakpoints = (breakpoints = {}) => {
|
52
|
-
const breakpointsMap = new Map();
|
53
54
|
this.breakpoints = breakpoints;
|
54
|
-
Object.entries(breakpoints)
|
55
|
+
const breakpointsEntries = Object.entries(breakpoints);
|
56
|
+
if (breakpointsEntries.length === 0) {
|
57
|
+
throw error('StyleSheet.configure\'s breakpoints can\'t be empty.');
|
58
|
+
}
|
59
|
+
if (breakpointsEntries?.[0]?.[1] !== 0) {
|
60
|
+
throw error('StyleSheet.configure\'s first breakpoint must start from 0.');
|
61
|
+
}
|
62
|
+
breakpointsEntries.sort(([, a], [, b]) => a - b).forEach(([breakpoint, value]) => {
|
55
63
|
if (isServer()) {
|
56
64
|
return;
|
57
65
|
}
|
58
66
|
const mediaQuery = window.matchMedia(`(min-width: ${value}px)`);
|
59
|
-
|
60
|
-
if (mediaQuery.matches) {
|
61
|
-
this.breakpoint = breakpoint;
|
62
|
-
}
|
67
|
+
this.matchingBreakpoints.set(breakpoint, mediaQuery.matches);
|
63
68
|
mediaQuery.addEventListener('change', event => {
|
64
|
-
|
65
|
-
const [currentBreakpoint] = Array.from(breakpointsMap).find(([, mq]) => mq.matches) ?? [];
|
66
|
-
if (currentBreakpoint) {
|
67
|
-
this.breakpoint = currentBreakpoint;
|
68
|
-
UnistylesListener.emitChange(UnistyleDependency.Breakpoints);
|
69
|
-
}
|
70
|
-
return;
|
71
|
-
}
|
72
|
-
this.breakpoint = breakpoint;
|
69
|
+
this.matchingBreakpoints.set(breakpoint, event.matches);
|
73
70
|
UnistylesListener.emitChange(UnistyleDependency.Breakpoints);
|
74
71
|
});
|
75
72
|
});
|
76
73
|
};
|
77
|
-
createTag() {
|
78
|
-
if (!this.isSSR) {
|
79
|
-
const tag = document.createElement('style');
|
80
|
-
document.head.appendChild(tag);
|
81
|
-
return tag;
|
82
|
-
}
|
83
|
-
const tagRef = new Proxy(/*#__PURE__*/createRef(), {
|
84
|
-
set: (target, prop, value) => {
|
85
|
-
// When ref is assigned
|
86
|
-
if ('textContent' in value) {
|
87
|
-
value.textContent = tag.textContent;
|
88
|
-
}
|
89
|
-
return Reflect.set(target, prop, value);
|
90
|
-
}
|
91
|
-
});
|
92
|
-
const tagElement = /*#__PURE__*/createElement('style', {
|
93
|
-
ref: tagRef,
|
94
|
-
key: this.tags.length
|
95
|
-
}, '');
|
96
|
-
const tag = new Proxy({
|
97
|
-
textContent: ''
|
98
|
-
}, {
|
99
|
-
set: (target, prop, value) => {
|
100
|
-
if (prop !== 'textContent') {
|
101
|
-
return false;
|
102
|
-
}
|
103
|
-
|
104
|
-
// When css is updated
|
105
|
-
target.textContent = value;
|
106
|
-
if (tagRef.current) {
|
107
|
-
tagRef.current.textContent = value;
|
108
|
-
}
|
109
|
-
return true;
|
110
|
-
}
|
111
|
-
});
|
112
|
-
this.tags.push(tagElement);
|
113
|
-
return tag;
|
114
|
-
}
|
115
74
|
}
|
116
75
|
export const UnistylesState = new UnistylesStateBuilder();
|
117
76
|
//# sourceMappingURL=state.js.map
|