react-native-css 3.0.7 → 3.1.0-rc.0
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/CHANGELOG.md +21 -0
- package/dist/commonjs/babel/import-plugin.js +9 -3
- package/dist/commonjs/babel/import-plugin.js.map +1 -1
- package/dist/commonjs/babel/react-native-web.js +16 -3
- package/dist/commonjs/babel/react-native-web.js.map +1 -1
- package/dist/commonjs/babel/react-native.js +7 -2
- package/dist/commonjs/babel/react-native.js.map +1 -1
- package/dist/commonjs/compiler/atRules.js +35 -0
- package/dist/commonjs/compiler/atRules.js.map +1 -1
- package/dist/commonjs/compiler/compiler.js +29 -27
- package/dist/commonjs/compiler/compiler.js.map +1 -1
- package/dist/commonjs/compiler/container-query.js +6 -1
- package/dist/commonjs/compiler/container-query.js.map +1 -1
- package/dist/commonjs/compiler/declarations.js +102 -61
- package/dist/commonjs/compiler/declarations.js.map +1 -1
- package/dist/commonjs/compiler/lightningcss-loader.js +11 -8
- package/dist/commonjs/compiler/lightningcss-loader.js.map +1 -1
- package/dist/commonjs/compiler/media-query.js +16 -6
- package/dist/commonjs/compiler/media-query.js.map +1 -1
- package/dist/commonjs/compiler/selector-builder.js +13 -3
- package/dist/commonjs/compiler/selector-builder.js.map +1 -1
- package/dist/commonjs/components/ImageBackground.js +2 -6
- package/dist/commonjs/components/ImageBackground.js.map +1 -1
- package/dist/commonjs/components/KeyboardAvoidingView.js +2 -3
- package/dist/commonjs/components/KeyboardAvoidingView.js.map +1 -1
- package/dist/commonjs/components/index.cjs +46 -1
- package/dist/commonjs/components/index.cjs.map +1 -1
- package/dist/commonjs/jest/index.js +1 -1
- package/dist/commonjs/jest/index.js.map +1 -1
- package/dist/commonjs/metro/cache-version.js +43 -0
- package/dist/commonjs/metro/cache-version.js.map +1 -0
- package/dist/commonjs/metro/index.js +2 -0
- package/dist/commonjs/metro/index.js.map +1 -1
- package/dist/commonjs/metro/metro-transformer.js +1 -1
- package/dist/commonjs/metro/metro-transformer.js.map +1 -1
- package/dist/commonjs/metro/typescript.js +26 -6
- package/dist/commonjs/metro/typescript.js.map +1 -1
- package/dist/commonjs/native/api.js +12 -8
- package/dist/commonjs/native/api.js.map +1 -1
- package/dist/commonjs/native/conditions/attributes.js +16 -9
- package/dist/commonjs/native/conditions/attributes.js.map +1 -1
- package/dist/commonjs/native/conditions/container-query.js +11 -11
- package/dist/commonjs/native/conditions/container-query.js.map +1 -1
- package/dist/commonjs/native/conditions/media-query.js +1 -1
- package/dist/commonjs/native/conditions/media-query.js.map +1 -1
- package/dist/commonjs/native/react/interaction.js +10 -5
- package/dist/commonjs/native/react/interaction.js.map +1 -1
- package/dist/commonjs/native/react/rules.js +12 -5
- package/dist/commonjs/native/react/rules.js.map +1 -1
- package/dist/commonjs/native/react/useNativeCss.js +48 -12
- package/dist/commonjs/native/react/useNativeCss.js.map +1 -1
- package/dist/commonjs/native/react/usePassthrough.js +5 -2
- package/dist/commonjs/native/react/usePassthrough.js.map +1 -1
- package/dist/commonjs/native/reactivity.js +32 -22
- package/dist/commonjs/native/reactivity.js.map +1 -1
- package/dist/commonjs/native/reanimated.js +15 -3
- package/dist/commonjs/native/reanimated.js.map +1 -1
- package/dist/commonjs/native/styles/functions/color-mix.js +43 -29
- package/dist/commonjs/native/styles/functions/color-mix.js.map +1 -1
- package/dist/commonjs/native/styles/functions/filters.js +14 -1
- package/dist/commonjs/native/styles/functions/filters.js.map +1 -1
- package/dist/commonjs/native/styles/functions/numeric-functions.js +4 -3
- package/dist/commonjs/native/styles/functions/numeric-functions.js.map +1 -1
- package/dist/commonjs/native/styles/functions/string-functions.js +16 -1
- package/dist/commonjs/native/styles/functions/string-functions.js.map +1 -1
- package/dist/commonjs/native/styles/functions/transform-functions.js +5 -4
- package/dist/commonjs/native/styles/functions/transform-functions.js.map +1 -1
- package/dist/commonjs/native/styles/index.js +95 -12
- package/dist/commonjs/native/styles/index.js.map +1 -1
- package/dist/commonjs/native/styles/resolve.js +10 -6
- package/dist/commonjs/native/styles/resolve.js.map +1 -1
- package/dist/commonjs/native/styles/scale-factor.js +13 -0
- package/dist/commonjs/native/styles/scale-factor.js.map +1 -0
- package/dist/commonjs/native/styles/shorthands/animation.js +6 -3
- package/dist/commonjs/native/styles/shorthands/animation.js.map +1 -1
- package/dist/commonjs/native/styles/shorthands/index.js +11 -0
- package/dist/commonjs/native/styles/shorthands/index.js.map +1 -1
- package/dist/commonjs/native/styles/shorthands/logical-border-width.js +22 -0
- package/dist/commonjs/native/styles/shorthands/logical-border-width.js.map +1 -0
- package/dist/commonjs/native/styles/variables.js +55 -43
- package/dist/commonjs/native/styles/variables.js.map +1 -1
- package/dist/commonjs/native-internal/style-collection.js +1 -1
- package/dist/commonjs/native-internal/style-collection.js.map +1 -1
- package/dist/commonjs/utilities/dot-notation.types.js +4 -0
- package/dist/commonjs/utilities/style-descriptor.js +4 -9
- package/dist/commonjs/utilities/style-descriptor.js.map +1 -1
- package/dist/commonjs/web/api.js +1 -1
- package/dist/commonjs/web/api.js.map +1 -1
- package/dist/commonjs/web/assign-style.js +4 -1
- package/dist/commonjs/web/assign-style.js.map +1 -1
- package/dist/module/babel/import-plugin.js +11 -5
- package/dist/module/babel/import-plugin.js.map +1 -1
- package/dist/module/babel/react-native-web.js +16 -4
- package/dist/module/babel/react-native-web.js.map +1 -1
- package/dist/module/babel/react-native.js +7 -2
- package/dist/module/babel/react-native.js.map +1 -1
- package/dist/module/compiler/atRules.js +33 -0
- package/dist/module/compiler/atRules.js.map +1 -1
- package/dist/module/compiler/compiler.js +30 -28
- package/dist/module/compiler/compiler.js.map +1 -1
- package/dist/module/compiler/container-query.js +6 -1
- package/dist/module/compiler/container-query.js.map +1 -1
- package/dist/module/compiler/declarations.js +102 -61
- package/dist/module/compiler/declarations.js.map +1 -1
- package/dist/module/compiler/lightningcss-loader.js +10 -8
- package/dist/module/compiler/lightningcss-loader.js.map +1 -1
- package/dist/module/compiler/media-query.js +16 -6
- package/dist/module/compiler/media-query.js.map +1 -1
- package/dist/module/compiler/selector-builder.js +13 -3
- package/dist/module/compiler/selector-builder.js.map +1 -1
- package/dist/module/components/ImageBackground.js +2 -6
- package/dist/module/components/ImageBackground.js.map +1 -1
- package/dist/module/components/KeyboardAvoidingView.js +2 -3
- package/dist/module/components/KeyboardAvoidingView.js.map +1 -1
- package/dist/module/components/index.cjs +46 -1
- package/dist/module/components/index.cjs.map +1 -1
- package/dist/module/jest/index.js +1 -1
- package/dist/module/jest/index.js.map +1 -1
- package/dist/module/metro/cache-version.js +39 -0
- package/dist/module/metro/cache-version.js.map +1 -0
- package/dist/module/metro/index.js +2 -0
- package/dist/module/metro/index.js.map +1 -1
- package/dist/module/metro/metro-transformer.js +1 -1
- package/dist/module/metro/metro-transformer.js.map +1 -1
- package/dist/module/metro/typescript.js +26 -6
- package/dist/module/metro/typescript.js.map +1 -1
- package/dist/module/native/api.js +14 -10
- package/dist/module/native/api.js.map +1 -1
- package/dist/module/native/conditions/attributes.js +16 -9
- package/dist/module/native/conditions/attributes.js.map +1 -1
- package/dist/module/native/conditions/container-query.js +11 -11
- package/dist/module/native/conditions/container-query.js.map +1 -1
- package/dist/module/native/conditions/media-query.js +1 -1
- package/dist/module/native/conditions/media-query.js.map +1 -1
- package/dist/module/native/react/interaction.js +10 -5
- package/dist/module/native/react/interaction.js.map +1 -1
- package/dist/module/native/react/rules.js +13 -6
- package/dist/module/native/react/rules.js.map +1 -1
- package/dist/module/native/react/useNativeCss.js +49 -13
- package/dist/module/native/react/useNativeCss.js.map +1 -1
- package/dist/module/native/react/usePassthrough.js +5 -2
- package/dist/module/native/react/usePassthrough.js.map +1 -1
- package/dist/module/native/reactivity.js +32 -22
- package/dist/module/native/reactivity.js.map +1 -1
- package/dist/module/native/reanimated.js +15 -3
- package/dist/module/native/reanimated.js.map +1 -1
- package/dist/module/native/styles/functions/color-mix.js +43 -29
- package/dist/module/native/styles/functions/color-mix.js.map +1 -1
- package/dist/module/native/styles/functions/filters.js +12 -0
- package/dist/module/native/styles/functions/filters.js.map +1 -1
- package/dist/module/native/styles/functions/numeric-functions.js +4 -3
- package/dist/module/native/styles/functions/numeric-functions.js.map +1 -1
- package/dist/module/native/styles/functions/string-functions.js +13 -0
- package/dist/module/native/styles/functions/string-functions.js.map +1 -1
- package/dist/module/native/styles/functions/transform-functions.js +5 -4
- package/dist/module/native/styles/functions/transform-functions.js.map +1 -1
- package/dist/module/native/styles/index.js +95 -12
- package/dist/module/native/styles/index.js.map +1 -1
- package/dist/module/native/styles/resolve.js +10 -6
- package/dist/module/native/styles/resolve.js.map +1 -1
- package/dist/module/native/styles/scale-factor.js +9 -0
- package/dist/module/native/styles/scale-factor.js.map +1 -0
- package/dist/module/native/styles/shorthands/animation.js +6 -3
- package/dist/module/native/styles/shorthands/animation.js.map +1 -1
- package/dist/module/native/styles/shorthands/index.js +1 -0
- package/dist/module/native/styles/shorthands/index.js.map +1 -1
- package/dist/module/native/styles/shorthands/logical-border-width.js +18 -0
- package/dist/module/native/styles/shorthands/logical-border-width.js.map +1 -0
- package/dist/module/native/styles/variables.js +55 -43
- package/dist/module/native/styles/variables.js.map +1 -1
- package/dist/module/native-internal/style-collection.js +1 -1
- package/dist/module/native-internal/style-collection.js.map +1 -1
- package/dist/module/utilities/dot-notation.types.js +2 -0
- package/dist/module/utilities/style-descriptor.js +4 -9
- package/dist/module/utilities/style-descriptor.js.map +1 -1
- package/dist/module/web/api.js +1 -1
- package/dist/module/web/api.js.map +1 -1
- package/dist/module/web/assign-style.js +4 -1
- package/dist/module/web/assign-style.js.map +1 -1
- package/dist/typescript/commonjs/src/babel/import-plugin.d.ts.map +1 -1
- package/dist/typescript/commonjs/src/babel/react-native-web.d.ts +2 -1
- package/dist/typescript/commonjs/src/babel/react-native-web.d.ts.map +1 -1
- package/dist/typescript/commonjs/src/babel/react-native.d.ts.map +1 -1
- package/dist/typescript/commonjs/src/compiler/atRules.d.ts +4 -1
- package/dist/typescript/commonjs/src/compiler/atRules.d.ts.map +1 -1
- package/dist/typescript/commonjs/src/compiler/compiler.d.ts.map +1 -1
- package/dist/typescript/commonjs/src/compiler/declarations.d.ts +2 -2
- package/dist/typescript/commonjs/src/compiler/declarations.d.ts.map +1 -1
- package/dist/typescript/commonjs/src/compiler/lightningcss-loader.d.ts.map +1 -1
- package/dist/typescript/commonjs/src/compiler/media-query.d.ts +1 -1
- package/dist/typescript/commonjs/src/compiler/media-query.d.ts.map +1 -1
- package/dist/typescript/commonjs/src/compiler/selector-builder.d.ts.map +1 -1
- package/dist/typescript/commonjs/src/components/ImageBackground.d.ts.map +1 -1
- package/dist/typescript/commonjs/src/components/KeyboardAvoidingView.d.ts.map +1 -1
- package/dist/typescript/commonjs/src/components/react-native-safe-area-context.native.d.ts +1 -1
- package/dist/typescript/commonjs/src/components/react-native-safe-area-context.native.d.ts.map +1 -1
- package/dist/typescript/commonjs/src/metro/cache-version.d.ts +8 -0
- package/dist/typescript/commonjs/src/metro/cache-version.d.ts.map +1 -0
- package/dist/typescript/commonjs/src/metro/index.d.ts.map +1 -1
- package/dist/typescript/commonjs/src/metro/metro-transformer.d.ts +5 -3
- package/dist/typescript/commonjs/src/metro/metro-transformer.d.ts.map +1 -1
- package/dist/typescript/commonjs/src/metro/typescript.d.ts.map +1 -1
- package/dist/typescript/commonjs/src/native/api.d.ts +4 -8
- package/dist/typescript/commonjs/src/native/api.d.ts.map +1 -1
- package/dist/typescript/commonjs/src/native/conditions/container-query.d.ts.map +1 -1
- package/dist/typescript/commonjs/src/native/react/interaction.d.ts +1 -1
- package/dist/typescript/commonjs/src/native/react/interaction.d.ts.map +1 -1
- package/dist/typescript/commonjs/src/native/react/rules.d.ts.map +1 -1
- package/dist/typescript/commonjs/src/native/react/useNativeCss.d.ts.map +1 -1
- package/dist/typescript/commonjs/src/native/react/usePassthrough.d.ts.map +1 -1
- package/dist/typescript/commonjs/src/native/reactivity.d.ts +7 -3
- package/dist/typescript/commonjs/src/native/reactivity.d.ts.map +1 -1
- package/dist/typescript/commonjs/src/native/reanimated.d.ts.map +1 -1
- package/dist/typescript/commonjs/src/native/styles/functions/color-mix.d.ts.map +1 -1
- package/dist/typescript/commonjs/src/native/styles/functions/filters.d.ts +2 -0
- package/dist/typescript/commonjs/src/native/styles/functions/filters.d.ts.map +1 -1
- package/dist/typescript/commonjs/src/native/styles/functions/numeric-functions.d.ts.map +1 -1
- package/dist/typescript/commonjs/src/native/styles/functions/string-functions.d.ts +2 -0
- package/dist/typescript/commonjs/src/native/styles/functions/string-functions.d.ts.map +1 -1
- package/dist/typescript/commonjs/src/native/styles/functions/transform-functions.d.ts.map +1 -1
- package/dist/typescript/commonjs/src/native/styles/index.d.ts +2 -2
- package/dist/typescript/commonjs/src/native/styles/index.d.ts.map +1 -1
- package/dist/typescript/commonjs/src/native/styles/resolve.d.ts +1 -0
- package/dist/typescript/commonjs/src/native/styles/resolve.d.ts.map +1 -1
- package/dist/typescript/commonjs/src/native/styles/scale-factor.d.ts +2 -0
- package/dist/typescript/commonjs/src/native/styles/scale-factor.d.ts.map +1 -0
- package/dist/typescript/commonjs/src/native/styles/shorthands/animation.d.ts.map +1 -1
- package/dist/typescript/commonjs/src/native/styles/shorthands/index.d.ts +1 -0
- package/dist/typescript/commonjs/src/native/styles/shorthands/index.d.ts.map +1 -1
- package/dist/typescript/commonjs/src/native/styles/shorthands/logical-border-width.d.ts +4 -0
- package/dist/typescript/commonjs/src/native/styles/shorthands/logical-border-width.d.ts.map +1 -0
- package/dist/typescript/commonjs/src/native/styles/variables.d.ts.map +1 -1
- package/dist/typescript/commonjs/src/native-internal/variables.d.ts +1 -1
- package/dist/typescript/commonjs/src/native-internal/variables.d.ts.map +1 -1
- package/dist/typescript/commonjs/src/runtime.types.d.ts +11 -6
- package/dist/typescript/commonjs/src/runtime.types.d.ts.map +1 -1
- package/dist/typescript/commonjs/src/utilities/dot-notation.types.d.ts +2 -1
- package/dist/typescript/commonjs/src/utilities/dot-notation.types.d.ts.map +1 -1
- package/dist/typescript/commonjs/src/utilities/style-descriptor.d.ts +1 -1
- package/dist/typescript/commonjs/src/utilities/style-descriptor.d.ts.map +1 -1
- package/dist/typescript/commonjs/src/web/api.d.ts +5 -5
- package/dist/typescript/commonjs/src/web/api.d.ts.map +1 -1
- package/dist/typescript/commonjs/src/web/assign-style.d.ts.map +1 -1
- package/dist/typescript/module/src/babel/import-plugin.d.ts +1 -1
- package/dist/typescript/module/src/babel/import-plugin.d.ts.map +1 -1
- package/dist/typescript/module/src/babel/react-native-web.d.ts +2 -1
- package/dist/typescript/module/src/babel/react-native-web.d.ts.map +1 -1
- package/dist/typescript/module/src/babel/react-native.d.ts.map +1 -1
- package/dist/typescript/module/src/compiler/atRules.d.ts +6 -3
- package/dist/typescript/module/src/compiler/atRules.d.ts.map +1 -1
- package/dist/typescript/module/src/compiler/compiler.d.ts +2 -2
- package/dist/typescript/module/src/compiler/compiler.d.ts.map +1 -1
- package/dist/typescript/module/src/compiler/compiler.types.d.ts +1 -1
- package/dist/typescript/module/src/compiler/compiler.types.d.ts.map +1 -1
- package/dist/typescript/module/src/compiler/container-query.d.ts +2 -2
- package/dist/typescript/module/src/compiler/container-query.d.ts.map +1 -1
- package/dist/typescript/module/src/compiler/declarations.d.ts +4 -4
- package/dist/typescript/module/src/compiler/declarations.d.ts.map +1 -1
- package/dist/typescript/module/src/compiler/index.d.ts +2 -2
- package/dist/typescript/module/src/compiler/index.d.ts.map +1 -1
- package/dist/typescript/module/src/compiler/inline-variables.d.ts +1 -1
- package/dist/typescript/module/src/compiler/inline-variables.d.ts.map +1 -1
- package/dist/typescript/module/src/compiler/keyframes.d.ts +2 -2
- package/dist/typescript/module/src/compiler/keyframes.d.ts.map +1 -1
- package/dist/typescript/module/src/compiler/lightningcss-loader.d.ts.map +1 -1
- package/dist/typescript/module/src/compiler/media-query.d.ts +3 -3
- package/dist/typescript/module/src/compiler/media-query.d.ts.map +1 -1
- package/dist/typescript/module/src/compiler/pseudo-elements.d.ts +1 -1
- package/dist/typescript/module/src/compiler/pseudo-elements.d.ts.map +1 -1
- package/dist/typescript/module/src/compiler/selector-builder.d.ts +1 -1
- package/dist/typescript/module/src/compiler/selector-builder.d.ts.map +1 -1
- package/dist/typescript/module/src/compiler/selectors.d.ts +2 -2
- package/dist/typescript/module/src/compiler/selectors.d.ts.map +1 -1
- package/dist/typescript/module/src/compiler/stylesheet.d.ts +1 -1
- package/dist/typescript/module/src/compiler/stylesheet.d.ts.map +1 -1
- package/dist/typescript/module/src/components/ImageBackground.d.ts.map +1 -1
- package/dist/typescript/module/src/components/KeyboardAvoidingView.d.ts.map +1 -1
- package/dist/typescript/module/src/components/index.d.ts +16 -16
- package/dist/typescript/module/src/components/index.d.ts.map +1 -1
- package/dist/typescript/module/src/components/react-native-safe-area-context.native.d.ts +1 -1
- package/dist/typescript/module/src/components/react-native-safe-area-context.native.d.ts.map +1 -1
- package/dist/typescript/module/src/metro/cache-version.d.ts +8 -0
- package/dist/typescript/module/src/metro/cache-version.d.ts.map +1 -0
- package/dist/typescript/module/src/metro/index.d.ts +1 -1
- package/dist/typescript/module/src/metro/index.d.ts.map +1 -1
- package/dist/typescript/module/src/metro/metro-transformer.d.ts +6 -4
- package/dist/typescript/module/src/metro/metro-transformer.d.ts.map +1 -1
- package/dist/typescript/module/src/metro/typescript.d.ts.map +1 -1
- package/dist/typescript/module/src/native/api.d.ts +5 -9
- package/dist/typescript/module/src/native/api.d.ts.map +1 -1
- package/dist/typescript/module/src/native/conditions/attributes.d.ts +1 -1
- package/dist/typescript/module/src/native/conditions/attributes.d.ts.map +1 -1
- package/dist/typescript/module/src/native/conditions/container-query.d.ts +2 -2
- package/dist/typescript/module/src/native/conditions/container-query.d.ts.map +1 -1
- package/dist/typescript/module/src/native/conditions/guards.d.ts +2 -2
- package/dist/typescript/module/src/native/conditions/guards.d.ts.map +1 -1
- package/dist/typescript/module/src/native/conditions/index.d.ts +3 -3
- package/dist/typescript/module/src/native/conditions/index.d.ts.map +1 -1
- package/dist/typescript/module/src/native/conditions/media-query.d.ts +1 -1
- package/dist/typescript/module/src/native/conditions/media-query.d.ts.map +1 -1
- package/dist/typescript/module/src/native/index.d.ts +3 -3
- package/dist/typescript/module/src/native/index.d.ts.map +1 -1
- package/dist/typescript/module/src/native/react/interaction.d.ts +2 -2
- package/dist/typescript/module/src/native/react/interaction.d.ts.map +1 -1
- package/dist/typescript/module/src/native/react/rules.d.ts +2 -2
- package/dist/typescript/module/src/native/react/rules.d.ts.map +1 -1
- package/dist/typescript/module/src/native/react/useNativeCss.d.ts +4 -4
- package/dist/typescript/module/src/native/react/useNativeCss.d.ts.map +1 -1
- package/dist/typescript/module/src/native/react/usePassthrough.d.ts +1 -1
- package/dist/typescript/module/src/native/react/usePassthrough.d.ts.map +1 -1
- package/dist/typescript/module/src/native/reactivity.d.ts +7 -3
- package/dist/typescript/module/src/native/reactivity.d.ts.map +1 -1
- package/dist/typescript/module/src/native/reanimated.d.ts.map +1 -1
- package/dist/typescript/module/src/native/styles/calculate-props.d.ts +2 -2
- package/dist/typescript/module/src/native/styles/calculate-props.d.ts.map +1 -1
- package/dist/typescript/module/src/native/styles/functions/animation-timing.d.ts +1 -1
- package/dist/typescript/module/src/native/styles/functions/animation-timing.d.ts.map +1 -1
- package/dist/typescript/module/src/native/styles/functions/calc.d.ts +1 -1
- package/dist/typescript/module/src/native/styles/functions/calc.d.ts.map +1 -1
- package/dist/typescript/module/src/native/styles/functions/color-mix.d.ts +1 -1
- package/dist/typescript/module/src/native/styles/functions/color-mix.d.ts.map +1 -1
- package/dist/typescript/module/src/native/styles/functions/filters.d.ts +3 -1
- package/dist/typescript/module/src/native/styles/functions/filters.d.ts.map +1 -1
- package/dist/typescript/module/src/native/styles/functions/index.d.ts +8 -8
- package/dist/typescript/module/src/native/styles/functions/index.d.ts.map +1 -1
- package/dist/typescript/module/src/native/styles/functions/numeric-functions.d.ts +1 -1
- package/dist/typescript/module/src/native/styles/functions/numeric-functions.d.ts.map +1 -1
- package/dist/typescript/module/src/native/styles/functions/platform-functions.d.ts +1 -1
- package/dist/typescript/module/src/native/styles/functions/platform-functions.d.ts.map +1 -1
- package/dist/typescript/module/src/native/styles/functions/string-functions.d.ts +3 -1
- package/dist/typescript/module/src/native/styles/functions/string-functions.d.ts.map +1 -1
- package/dist/typescript/module/src/native/styles/functions/transform-functions.d.ts +1 -1
- package/dist/typescript/module/src/native/styles/functions/transform-functions.d.ts.map +1 -1
- package/dist/typescript/module/src/native/styles/index.d.ts +7 -7
- package/dist/typescript/module/src/native/styles/index.d.ts.map +1 -1
- package/dist/typescript/module/src/native/styles/line-height.d.ts +1 -1
- package/dist/typescript/module/src/native/styles/line-height.d.ts.map +1 -1
- package/dist/typescript/module/src/native/styles/resolve.d.ts +4 -3
- package/dist/typescript/module/src/native/styles/resolve.d.ts.map +1 -1
- package/dist/typescript/module/src/native/styles/scale-factor.d.ts +2 -0
- package/dist/typescript/module/src/native/styles/scale-factor.d.ts.map +1 -0
- package/dist/typescript/module/src/native/styles/shorthands/_handler.d.ts +1 -1
- package/dist/typescript/module/src/native/styles/shorthands/_handler.d.ts.map +1 -1
- package/dist/typescript/module/src/native/styles/shorthands/animation.d.ts +2 -2
- package/dist/typescript/module/src/native/styles/shorthands/animation.d.ts.map +1 -1
- package/dist/typescript/module/src/native/styles/shorthands/border.d.ts +1 -1
- package/dist/typescript/module/src/native/styles/shorthands/border.d.ts.map +1 -1
- package/dist/typescript/module/src/native/styles/shorthands/box-shadow.d.ts +1 -1
- package/dist/typescript/module/src/native/styles/shorthands/box-shadow.d.ts.map +1 -1
- package/dist/typescript/module/src/native/styles/shorthands/index.d.ts +6 -5
- package/dist/typescript/module/src/native/styles/shorthands/index.d.ts.map +1 -1
- package/dist/typescript/module/src/native/styles/shorthands/logical-border-width.d.ts +4 -0
- package/dist/typescript/module/src/native/styles/shorthands/logical-border-width.d.ts.map +1 -0
- package/dist/typescript/module/src/native/styles/shorthands/text-shadow.d.ts +1 -1
- package/dist/typescript/module/src/native/styles/shorthands/text-shadow.d.ts.map +1 -1
- package/dist/typescript/module/src/native/styles/shorthands/transform.d.ts +1 -1
- package/dist/typescript/module/src/native/styles/shorthands/transform.d.ts.map +1 -1
- package/dist/typescript/module/src/native/styles/units.d.ts +1 -1
- package/dist/typescript/module/src/native/styles/units.d.ts.map +1 -1
- package/dist/typescript/module/src/native/styles/variables.d.ts +2 -2
- package/dist/typescript/module/src/native/styles/variables.d.ts.map +1 -1
- package/dist/typescript/module/src/native-internal/index.d.ts +3 -3
- package/dist/typescript/module/src/native-internal/index.d.ts.map +1 -1
- package/dist/typescript/module/src/native-internal/root.d.ts +1 -1
- package/dist/typescript/module/src/native-internal/root.d.ts.map +1 -1
- package/dist/typescript/module/src/native-internal/style-collection.d.ts +2 -2
- package/dist/typescript/module/src/native-internal/style-collection.d.ts.map +1 -1
- package/dist/typescript/module/src/native-internal/variables.d.ts +2 -2
- package/dist/typescript/module/src/native-internal/variables.d.ts.map +1 -1
- package/dist/typescript/module/src/runtime.d.ts +1 -1
- package/dist/typescript/module/src/runtime.d.ts.map +1 -1
- package/dist/typescript/module/src/runtime.native.d.ts +1 -1
- package/dist/typescript/module/src/runtime.native.d.ts.map +1 -1
- package/dist/typescript/module/src/runtime.types.d.ts +11 -6
- package/dist/typescript/module/src/runtime.types.d.ts.map +1 -1
- package/dist/typescript/module/src/utilities/dot-notation.types.d.ts +2 -1
- package/dist/typescript/module/src/utilities/dot-notation.types.d.ts.map +1 -1
- package/dist/typescript/module/src/utilities/index.d.ts +3 -3
- package/dist/typescript/module/src/utilities/index.d.ts.map +1 -1
- package/dist/typescript/module/src/utilities/specificity.d.ts +2 -2
- package/dist/typescript/module/src/utilities/specificity.d.ts.map +1 -1
- package/dist/typescript/module/src/utilities/style-descriptor.d.ts +1 -1
- package/dist/typescript/module/src/utilities/style-descriptor.d.ts.map +1 -1
- package/dist/typescript/module/src/web/api.d.ts +5 -5
- package/dist/typescript/module/src/web/api.d.ts.map +1 -1
- package/dist/typescript/module/src/web/assign-style.d.ts.map +1 -1
- package/dist/typescript/module/src/web/index.d.ts +3 -3
- package/dist/typescript/module/src/web/index.d.ts.map +1 -1
- package/node/babel.mjs +4 -0
- package/node/compiler.mjs +2 -0
- package/node/metro.mjs +2 -0
- package/package.json +61 -27
- package/src/babel/import-plugin.ts +15 -4
- package/src/babel/react-native-web.ts +32 -3
- package/src/babel/react-native.ts +7 -1
- package/src/compiler/atRules.ts +44 -0
- package/src/compiler/compiler.ts +59 -46
- package/src/compiler/container-query.ts +8 -3
- package/src/compiler/declarations.ts +189 -100
- package/src/compiler/lightningcss-loader.ts +16 -15
- package/src/compiler/media-query.ts +20 -9
- package/src/compiler/selector-builder.ts +29 -3
- package/src/components/ImageBackground.tsx +2 -6
- package/src/components/KeyboardAvoidingView.tsx +2 -3
- package/src/components/index.cts +46 -1
- package/src/jest/index.ts +1 -1
- package/src/metro/cache-version.ts +48 -0
- package/src/metro/index.ts +2 -0
- package/src/metro/metro-transformer.ts +9 -6
- package/src/metro/typescript.ts +53 -6
- package/src/native/api.tsx +20 -14
- package/src/native/conditions/attributes.ts +26 -9
- package/src/native/conditions/container-query.ts +11 -9
- package/src/native/conditions/media-query.ts +1 -1
- package/src/native/react/interaction.ts +11 -6
- package/src/native/react/rules.ts +13 -5
- package/src/native/react/useNativeCss.ts +54 -14
- package/src/native/react/usePassthrough.ts +3 -2
- package/src/native/reactivity.ts +42 -24
- package/src/native/reanimated.ts +24 -5
- package/src/native/styles/functions/color-mix.ts +45 -39
- package/src/native/styles/functions/filters.ts +14 -0
- package/src/native/styles/functions/numeric-functions.ts +7 -6
- package/src/native/styles/functions/string-functions.ts +18 -0
- package/src/native/styles/functions/transform-functions.ts +5 -4
- package/src/native/styles/index.ts +100 -13
- package/src/native/styles/resolve.ts +15 -11
- package/src/native/styles/scale-factor.ts +6 -0
- package/src/native/styles/shorthands/animation.ts +8 -2
- package/src/native/styles/shorthands/index.ts +1 -0
- package/src/native/styles/shorthands/logical-border-width.ts +32 -0
- package/src/native/styles/variables.ts +48 -38
- package/src/native-internal/style-collection.ts +1 -1
- package/src/runtime.types.ts +17 -15
- package/src/utilities/dot-notation.types.ts +4 -3
- package/src/utilities/style-descriptor.ts +11 -16
- package/src/web/api.tsx +6 -11
- package/src/web/assign-style.ts +2 -1
- package/types.d.ts +0 -20
- package/dist/commonjs/compiler/inheritance.test.js +0 -78
- package/dist/commonjs/compiler/inheritance.test.js.map +0 -1
- package/dist/module/compiler/inheritance.test.js +0 -78
- package/dist/module/compiler/inheritance.test.js.map +0 -1
- package/dist/typescript/commonjs/.config/eslint.config.d.mts +0 -3
- package/dist/typescript/commonjs/.config/eslint.config.d.mts.map +0 -1
- package/dist/typescript/commonjs/eslint.config.d.mts +0 -2
- package/dist/typescript/commonjs/eslint.config.d.mts.map +0 -1
- package/dist/typescript/commonjs/example/app.config.d.ts +0 -4
- package/dist/typescript/commonjs/example/app.config.d.ts.map +0 -1
- package/dist/typescript/commonjs/example/index.d.ts +0 -2
- package/dist/typescript/commonjs/example/index.d.ts.map +0 -1
- package/dist/typescript/commonjs/example/metro.config.d.ts +0 -3
- package/dist/typescript/commonjs/example/metro.config.d.ts.map +0 -1
- package/dist/typescript/commonjs/example/postcss.config.d.mts +0 -7
- package/dist/typescript/commonjs/example/postcss.config.d.mts.map +0 -1
- package/dist/typescript/commonjs/example/src/App.d.ts +0 -3
- package/dist/typescript/commonjs/example/src/App.d.ts.map +0 -1
- package/dist/typescript/commonjs/src/compiler/inheritance.test.d.ts +0 -2
- package/dist/typescript/commonjs/src/compiler/inheritance.test.d.ts.map +0 -1
- package/dist/typescript/module/.config/eslint.config.d.mts +0 -3
- package/dist/typescript/module/.config/eslint.config.d.mts.map +0 -1
- package/dist/typescript/module/eslint.config.d.mts +0 -2
- package/dist/typescript/module/eslint.config.d.mts.map +0 -1
- package/dist/typescript/module/example/app.config.d.ts +0 -4
- package/dist/typescript/module/example/app.config.d.ts.map +0 -1
- package/dist/typescript/module/example/index.d.ts +0 -2
- package/dist/typescript/module/example/index.d.ts.map +0 -1
- package/dist/typescript/module/example/metro.config.d.ts +0 -3
- package/dist/typescript/module/example/metro.config.d.ts.map +0 -1
- package/dist/typescript/module/example/postcss.config.d.mts +0 -7
- package/dist/typescript/module/example/postcss.config.d.mts.map +0 -1
- package/dist/typescript/module/example/src/App.d.ts +0 -3
- package/dist/typescript/module/example/src/App.d.ts.map +0 -1
- package/dist/typescript/module/src/compiler/inheritance.test.d.ts +0 -2
- package/dist/typescript/module/src/compiler/inheritance.test.d.ts.map +0 -1
- package/src/compiler/inheritance.test.ts +0 -121
|
@@ -260,7 +260,12 @@ function parseComponents(
|
|
|
260
260
|
? // [data-*] are turned into `dataSet` queries
|
|
261
261
|
["d", toRNProperty(component.name.replace("data-", ""))]
|
|
262
262
|
: // Everything else is turned into `attribute` queries
|
|
263
|
-
[
|
|
263
|
+
[
|
|
264
|
+
"a",
|
|
265
|
+
component.name.startsWith("aria-")
|
|
266
|
+
? component.name
|
|
267
|
+
: toRNProperty(component.name),
|
|
268
|
+
];
|
|
264
269
|
if (component.operation) {
|
|
265
270
|
let operator: AttrSelectorOperator | undefined;
|
|
266
271
|
switch (component.operation.operator) {
|
|
@@ -289,6 +294,15 @@ function parseComponents(
|
|
|
289
294
|
if (operator) {
|
|
290
295
|
// Append the operator onto the attribute query
|
|
291
296
|
attributeQuery.push(operator, component.operation.value);
|
|
297
|
+
if (
|
|
298
|
+
component.operation.caseSensitivity === "ascii-case-insensitive"
|
|
299
|
+
) {
|
|
300
|
+
attributeQuery.push("i");
|
|
301
|
+
} else if (
|
|
302
|
+
component.operation.caseSensitivity === "explicit-case-sensitive"
|
|
303
|
+
) {
|
|
304
|
+
attributeQuery.push("s");
|
|
305
|
+
}
|
|
292
306
|
}
|
|
293
307
|
}
|
|
294
308
|
getAttributeQuery(ref).push(attributeQuery);
|
|
@@ -311,7 +325,7 @@ function parseComponents(
|
|
|
311
325
|
getAttributeQuery(ref).unshift([
|
|
312
326
|
"a",
|
|
313
327
|
"className",
|
|
314
|
-
"
|
|
328
|
+
"~=",
|
|
315
329
|
component.name,
|
|
316
330
|
]);
|
|
317
331
|
} else {
|
|
@@ -464,11 +478,23 @@ function parseIsWhereComponents(
|
|
|
464
478
|
? // [data-*] are turned into `dataSet` queries
|
|
465
479
|
["d", toRNProperty(component.name.replace("data-", ""))]
|
|
466
480
|
: // Everything else is turned into `attribute` queries
|
|
467
|
-
[
|
|
481
|
+
[
|
|
482
|
+
"a",
|
|
483
|
+
component.name.startsWith("aria-")
|
|
484
|
+
? component.name
|
|
485
|
+
: toRNProperty(component.name),
|
|
486
|
+
];
|
|
468
487
|
if (component.operation) {
|
|
469
488
|
const operator = operatorMap[component.operation.operator];
|
|
470
489
|
// Append the operator onto the attribute query
|
|
471
490
|
attributeQuery.push(operator, component.operation.value);
|
|
491
|
+
if (component.operation.caseSensitivity === "ascii-case-insensitive") {
|
|
492
|
+
attributeQuery.push("i");
|
|
493
|
+
} else if (
|
|
494
|
+
component.operation.caseSensitivity === "explicit-case-sensitive"
|
|
495
|
+
) {
|
|
496
|
+
attributeQuery.push("s");
|
|
497
|
+
}
|
|
472
498
|
}
|
|
473
499
|
queries ??= [{ specificity: [] }];
|
|
474
500
|
for (const query of queries) {
|
|
@@ -12,12 +12,8 @@ import {
|
|
|
12
12
|
import { copyComponentProperties } from "./copyComponentProperties";
|
|
13
13
|
|
|
14
14
|
const mapping: StyledConfiguration<typeof RNImageBackground> = {
|
|
15
|
-
className:
|
|
16
|
-
|
|
17
|
-
nativeStyleMapping: {
|
|
18
|
-
backgroundColor: true,
|
|
19
|
-
},
|
|
20
|
-
},
|
|
15
|
+
className: "style",
|
|
16
|
+
imageClassName: "imageStyle",
|
|
21
17
|
};
|
|
22
18
|
|
|
23
19
|
export const ImageBackground = copyComponentProperties(
|
|
@@ -12,9 +12,8 @@ import {
|
|
|
12
12
|
import { copyComponentProperties } from "./copyComponentProperties";
|
|
13
13
|
|
|
14
14
|
const mapping: StyledConfiguration<typeof RNKeyboardAvoidingView> = {
|
|
15
|
-
className:
|
|
16
|
-
|
|
17
|
-
},
|
|
15
|
+
className: "style",
|
|
16
|
+
contentContainerClassName: "contentContainerStyle",
|
|
18
17
|
};
|
|
19
18
|
|
|
20
19
|
export const KeyboardAvoidingView = copyComponentProperties(
|
package/src/components/index.cts
CHANGED
|
@@ -90,7 +90,7 @@ module.exports = {
|
|
|
90
90
|
return require("react-native").TouchableNativeFeedback;
|
|
91
91
|
},
|
|
92
92
|
get TouchableWithoutFeedback() {
|
|
93
|
-
return require("
|
|
93
|
+
return require("./TouchableWithoutFeedback").TouchableWithoutFeedback;
|
|
94
94
|
},
|
|
95
95
|
get VirtualizedSectionList() {
|
|
96
96
|
return require("react-native").VirtualizedSectionList;
|
|
@@ -260,4 +260,49 @@ module.exports = {
|
|
|
260
260
|
get VirtualViewMode() {
|
|
261
261
|
return require("react-native").VirtualViewMode;
|
|
262
262
|
},
|
|
263
|
+
get EventEmitter() {
|
|
264
|
+
return require("react-native").EventEmitter;
|
|
265
|
+
},
|
|
266
|
+
get unstable_NativeText() {
|
|
267
|
+
return require("react-native").unstable_NativeText;
|
|
268
|
+
},
|
|
269
|
+
get unstable_NativeView() {
|
|
270
|
+
return require("react-native").unstable_NativeView;
|
|
271
|
+
},
|
|
272
|
+
get unstable_VirtualArray() {
|
|
273
|
+
return require("react-native").unstable_VirtualArray;
|
|
274
|
+
},
|
|
275
|
+
get unstable_createVirtualCollectionView() {
|
|
276
|
+
return require("react-native").unstable_createVirtualCollectionView;
|
|
277
|
+
},
|
|
278
|
+
get unstable_VirtualColumn() {
|
|
279
|
+
return require("react-native").unstable_VirtualColumn;
|
|
280
|
+
},
|
|
281
|
+
get unstable_VirtualColumnGenerator() {
|
|
282
|
+
return require("react-native").unstable_VirtualColumnGenerator;
|
|
283
|
+
},
|
|
284
|
+
get unstable_VirtualRow() {
|
|
285
|
+
return require("react-native").unstable_VirtualRow;
|
|
286
|
+
},
|
|
287
|
+
get unstable_getScrollParent() {
|
|
288
|
+
return require("react-native").unstable_getScrollParent;
|
|
289
|
+
},
|
|
290
|
+
get unstable_DEFAULT_INITIAL_NUM_TO_RENDER() {
|
|
291
|
+
return require("react-native").unstable_DEFAULT_INITIAL_NUM_TO_RENDER;
|
|
292
|
+
},
|
|
293
|
+
get NativeComponentRegistry() {
|
|
294
|
+
return require("react-native").NativeComponentRegistry;
|
|
295
|
+
},
|
|
296
|
+
get ReactNativeVersion() {
|
|
297
|
+
return require("react-native").ReactNativeVersion;
|
|
298
|
+
},
|
|
299
|
+
get useAnimatedValueXY() {
|
|
300
|
+
return require("react-native").useAnimatedValueXY;
|
|
301
|
+
},
|
|
302
|
+
get useAnimatedColor() {
|
|
303
|
+
return require("react-native").useAnimatedColor;
|
|
304
|
+
},
|
|
305
|
+
get usePressability() {
|
|
306
|
+
return require("react-native").usePressability;
|
|
307
|
+
},
|
|
263
308
|
};
|
package/src/jest/index.ts
CHANGED
|
@@ -21,7 +21,7 @@ export const testID = "react-native-css";
|
|
|
21
21
|
beforeEach(() => {
|
|
22
22
|
StyleCollection.styles.clear();
|
|
23
23
|
dimensions.set(Dimensions.get("window"));
|
|
24
|
-
Appearance.setColorScheme(
|
|
24
|
+
Appearance.setColorScheme("unspecified");
|
|
25
25
|
colorScheme.set(null);
|
|
26
26
|
});
|
|
27
27
|
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { createHash } from "node:crypto";
|
|
2
|
+
import { readdirSync, readFileSync } from "node:fs";
|
|
3
|
+
import { dirname, join, relative } from "node:path";
|
|
4
|
+
|
|
5
|
+
import type { CompilerOptions } from "../compiler";
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Expo's supervising worker bypasses a custom worker's getCacheKey hook.
|
|
9
|
+
* Put the engine fingerprint in Metro's top level cacheVersion instead so
|
|
10
|
+
* both supervised and direct workers invalidate compiled CSS after an update.
|
|
11
|
+
*/
|
|
12
|
+
export function getCacheVersion(
|
|
13
|
+
cacheVersion: string | undefined,
|
|
14
|
+
options: CompilerOptions | undefined,
|
|
15
|
+
) {
|
|
16
|
+
const root = dirname(__dirname);
|
|
17
|
+
const hash = createHash("sha256");
|
|
18
|
+
|
|
19
|
+
function visit(directory: string) {
|
|
20
|
+
for (const entry of readdirSync(directory, { withFileTypes: true }).sort(
|
|
21
|
+
(a, b) => (a.name < b.name ? -1 : a.name > b.name ? 1 : 0),
|
|
22
|
+
)) {
|
|
23
|
+
const file = join(directory, entry.name);
|
|
24
|
+
if (entry.isDirectory()) {
|
|
25
|
+
if (!["__tests__", "__fixtures__", "__mocks__"].includes(entry.name)) {
|
|
26
|
+
visit(file);
|
|
27
|
+
}
|
|
28
|
+
} else if (
|
|
29
|
+
entry.isFile() &&
|
|
30
|
+
/\.[cm]?[jt]sx?$/.test(entry.name) &&
|
|
31
|
+
!/\.d\.[cm]?ts$/.test(entry.name) &&
|
|
32
|
+
!/\.(test|spec)\.[cm]?[jt]sx?$/.test(entry.name)
|
|
33
|
+
) {
|
|
34
|
+
// Relative names keep identical installations independent of location.
|
|
35
|
+
hash.update(relative(root, file).split("\\").join("/"));
|
|
36
|
+
hash.update("\0");
|
|
37
|
+
hash.update(readFileSync(file));
|
|
38
|
+
hash.update("\0");
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
// Cover transitive engine helpers as well as the transformer itself. Maps,
|
|
44
|
+
// declarations, and tests do not affect the generated application code.
|
|
45
|
+
visit(root);
|
|
46
|
+
hash.update(JSON.stringify(options ?? {}));
|
|
47
|
+
return `${cacheVersion ?? ""}:react-native-css:${hash.digest("hex")}`;
|
|
48
|
+
}
|
package/src/metro/index.ts
CHANGED
|
@@ -4,6 +4,7 @@ import { versions } from "node:process";
|
|
|
4
4
|
import type { MetroConfig } from "metro-config";
|
|
5
5
|
|
|
6
6
|
import { type CompilerOptions } from "../compiler";
|
|
7
|
+
import { getCacheVersion } from "./cache-version";
|
|
7
8
|
import { nativeResolver, webResolver } from "./resolver";
|
|
8
9
|
import { setupTypeScript } from "./typescript";
|
|
9
10
|
|
|
@@ -47,6 +48,7 @@ export function withReactNativeCSS<
|
|
|
47
48
|
|
|
48
49
|
return {
|
|
49
50
|
...config,
|
|
51
|
+
cacheVersion: getCacheVersion(config.cacheVersion, options),
|
|
50
52
|
transformerPath: require.resolve("./metro-transformer"),
|
|
51
53
|
transformer: {
|
|
52
54
|
...config.transformer,
|
|
@@ -2,24 +2,27 @@ import { unstable_transformerPath } from "@expo/metro-config";
|
|
|
2
2
|
import type {
|
|
3
3
|
JsTransformerConfig,
|
|
4
4
|
JsTransformOptions,
|
|
5
|
-
TransformResponse,
|
|
6
5
|
} from "metro-transform-worker";
|
|
7
6
|
|
|
8
7
|
import { compile, type CompilerOptions } from "../compiler";
|
|
9
8
|
import { getNativeInjectionCode } from "./injection-code";
|
|
10
9
|
|
|
10
|
+
type TransformResponse = Awaited<
|
|
11
|
+
ReturnType<typeof import("metro-transform-worker").transform>
|
|
12
|
+
>;
|
|
13
|
+
|
|
11
14
|
const worker =
|
|
12
15
|
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
13
16
|
require(unstable_transformerPath) as typeof import("metro-transform-worker");
|
|
14
17
|
|
|
15
18
|
export async function transform(
|
|
16
|
-
config: JsTransformerConfig
|
|
19
|
+
config: JsTransformerConfig & {
|
|
20
|
+
reactNativeCSS?: CompilerOptions | undefined;
|
|
21
|
+
},
|
|
17
22
|
projectRoot: string,
|
|
18
23
|
filePath: string,
|
|
19
24
|
data: Buffer,
|
|
20
|
-
options: JsTransformOptions
|
|
21
|
-
reactNativeCSS?: CompilerOptions | undefined;
|
|
22
|
-
},
|
|
25
|
+
options: JsTransformOptions,
|
|
23
26
|
): Promise<TransformResponse> {
|
|
24
27
|
const isCss = options.type !== "asset" && /\.(s?css|sass)$/.test(filePath);
|
|
25
28
|
|
|
@@ -37,7 +40,7 @@ export async function transform(
|
|
|
37
40
|
const css = cssFile.output[0].data.css.code.toString();
|
|
38
41
|
|
|
39
42
|
const productionJS = compile(css, {
|
|
40
|
-
...
|
|
43
|
+
...config.reactNativeCSS,
|
|
41
44
|
filename: filePath,
|
|
42
45
|
projectRoot: projectRoot,
|
|
43
46
|
}).stylesheet();
|
package/src/metro/typescript.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
/* eslint-disable */
|
|
2
2
|
import { existsSync, readFileSync, writeFileSync } from "fs";
|
|
3
|
+
import { dirname, relative, resolve } from "node:path";
|
|
3
4
|
|
|
4
5
|
import { CommentArray, parse, stringify } from "comment-json";
|
|
5
6
|
|
|
@@ -16,11 +17,17 @@ export function setupTypeScript(
|
|
|
16
17
|
}
|
|
17
18
|
|
|
18
19
|
const configFileName = ts.findConfigFile(
|
|
19
|
-
"
|
|
20
|
+
resolve("."),
|
|
20
21
|
ts.sys.fileExists,
|
|
21
22
|
"tsconfig.json",
|
|
22
23
|
);
|
|
23
24
|
|
|
25
|
+
if (!configFileName) return;
|
|
26
|
+
|
|
27
|
+
const configDirectory = dirname(resolve(configFileName));
|
|
28
|
+
const environmentFile = resolve(envPath);
|
|
29
|
+
const relativeEnvironmentFile = relative(configDirectory, environmentFile);
|
|
30
|
+
|
|
24
31
|
const userConfig = parse(
|
|
25
32
|
readFileSync(configFileName, {
|
|
26
33
|
encoding: "utf-8",
|
|
@@ -30,7 +37,8 @@ export function setupTypeScript(
|
|
|
30
37
|
if (
|
|
31
38
|
typeof userConfig !== "object" ||
|
|
32
39
|
!userConfig ||
|
|
33
|
-
Array.isArray(userConfig)
|
|
40
|
+
Array.isArray(userConfig) ||
|
|
41
|
+
Object.prototype.toString.call(userConfig) !== "[object Object]"
|
|
34
42
|
) {
|
|
35
43
|
return;
|
|
36
44
|
}
|
|
@@ -48,25 +56,64 @@ export function setupTypeScript(
|
|
|
48
56
|
output.push(`Created ${cyan(envPath)}`);
|
|
49
57
|
}
|
|
50
58
|
|
|
51
|
-
userConfig.include ??= new CommentArray(envPath);
|
|
52
59
|
if (
|
|
53
60
|
Array.isArray(userConfig.include) &&
|
|
54
|
-
!
|
|
61
|
+
!(
|
|
62
|
+
Array.isArray(userConfig.files) &&
|
|
63
|
+
userConfig.files.includes(relativeEnvironmentFile)
|
|
64
|
+
) &&
|
|
65
|
+
!userConfig.include.includes(relativeEnvironmentFile)
|
|
55
66
|
) {
|
|
56
|
-
userConfig.include.push(
|
|
67
|
+
userConfig.include.push(relativeEnvironmentFile);
|
|
57
68
|
updatedConfig = true;
|
|
58
69
|
output.push(
|
|
59
70
|
`Updated ${configFileName} to include the ${cyan(envPath)} file`,
|
|
60
71
|
);
|
|
61
72
|
}
|
|
62
73
|
|
|
74
|
+
// Resolve inheritance on a copy so comments and the user's own settings survive.
|
|
75
|
+
const effectiveConfig = ts.parseJsonConfigFileContent(
|
|
76
|
+
JSON.parse(JSON.stringify(userConfig)),
|
|
77
|
+
ts.sys,
|
|
78
|
+
configDirectory,
|
|
79
|
+
{},
|
|
80
|
+
resolve(configFileName),
|
|
81
|
+
);
|
|
82
|
+
if (
|
|
83
|
+
!effectiveConfig.fileNames.some(
|
|
84
|
+
(file: string) => resolve(file) === environmentFile,
|
|
85
|
+
)
|
|
86
|
+
) {
|
|
87
|
+
// A files entry can include the declaration even when inherited include or
|
|
88
|
+
// exclude settings omit it. Preserve the original implicit include as well.
|
|
89
|
+
if (
|
|
90
|
+
effectiveConfig.raw.include === undefined &&
|
|
91
|
+
effectiveConfig.raw.files === undefined
|
|
92
|
+
) {
|
|
93
|
+
userConfig.include = new CommentArray("**/*");
|
|
94
|
+
}
|
|
95
|
+
userConfig.files ??= new CommentArray(
|
|
96
|
+
...(effectiveConfig.raw.files || []),
|
|
97
|
+
);
|
|
98
|
+
if (
|
|
99
|
+
Array.isArray(userConfig.files) &&
|
|
100
|
+
!userConfig.files.includes(relativeEnvironmentFile)
|
|
101
|
+
) {
|
|
102
|
+
userConfig.files.push(relativeEnvironmentFile);
|
|
103
|
+
updatedConfig = true;
|
|
104
|
+
output.push(
|
|
105
|
+
`Updated ${configFileName} to include the ${cyan(envPath)} file`,
|
|
106
|
+
);
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
|
|
63
110
|
if (updatedConfig) {
|
|
64
111
|
writeFileSync(configFileName, stringify(userConfig, null, 2));
|
|
65
112
|
}
|
|
66
113
|
|
|
67
114
|
if (output.length) {
|
|
68
115
|
console.log(
|
|
69
|
-
`${cyan(bold("
|
|
116
|
+
`${cyan(bold("Nativewind"))} made the following changes to your project to support TypeScript:\n - ${output.join("\n - ")}`,
|
|
70
117
|
);
|
|
71
118
|
}
|
|
72
119
|
} catch {}
|
package/src/native/api.tsx
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/* eslint-disable */
|
|
2
|
-
import { useContext, useState, type ComponentType } from "react";
|
|
3
|
-
import { Appearance } from "react-native";
|
|
2
|
+
import { useContext, useEffect, useState, type ComponentType } from "react";
|
|
3
|
+
import { Appearance, type ViewStyle } from "react-native";
|
|
4
4
|
|
|
5
5
|
import type { StyleDescriptor } from "react-native-css/compiler";
|
|
6
6
|
import { VariableContext } from "react-native-css/native-internal";
|
|
@@ -9,12 +9,14 @@ import type {
|
|
|
9
9
|
ColorScheme,
|
|
10
10
|
Props,
|
|
11
11
|
ReactComponent,
|
|
12
|
+
Styled,
|
|
12
13
|
StyledConfiguration,
|
|
13
14
|
StyledOptions,
|
|
14
15
|
} from "../runtime.types";
|
|
15
16
|
import { mappingToConfig, useNativeCss } from "./react/useNativeCss";
|
|
16
17
|
import { usePassthrough } from "./react/usePassthrough";
|
|
17
18
|
import {
|
|
19
|
+
cleanupEffect,
|
|
18
20
|
colorScheme as colorSchemeObs,
|
|
19
21
|
VAR_SYMBOL,
|
|
20
22
|
type Effect,
|
|
@@ -40,12 +42,9 @@ const defaultMapping: StyledConfiguration<ComponentType<{ style: unknown }>> = {
|
|
|
40
42
|
* @param baseComponent
|
|
41
43
|
* @param mapping
|
|
42
44
|
*/
|
|
43
|
-
export const styled =
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
>(
|
|
47
|
-
baseComponent: C,
|
|
48
|
-
mapping: M = defaultMapping as M,
|
|
45
|
+
export const styled: Styled = (
|
|
46
|
+
baseComponent: ReactComponent<any>,
|
|
47
|
+
mapping: StyledConfiguration<any> = defaultMapping,
|
|
49
48
|
options?: StyledOptions,
|
|
50
49
|
) => {
|
|
51
50
|
let component: any;
|
|
@@ -73,7 +72,7 @@ export const colorScheme: ColorScheme = {
|
|
|
73
72
|
return colorSchemeObs.get() ?? Appearance.getColorScheme() ?? "light";
|
|
74
73
|
},
|
|
75
74
|
set(value) {
|
|
76
|
-
return colorSchemeObs.set(value);
|
|
75
|
+
return colorSchemeObs.set(value === "unspecified" ? null : value);
|
|
77
76
|
},
|
|
78
77
|
};
|
|
79
78
|
|
|
@@ -97,28 +96,35 @@ export function useNativeVariable(name: string) {
|
|
|
97
96
|
}
|
|
98
97
|
|
|
99
98
|
const inheritedVariables = useContext(VariableContext);
|
|
100
|
-
const [
|
|
99
|
+
const [, forceUpdate] = useState(0);
|
|
100
|
+
const [effect] = useState(() => {
|
|
101
101
|
const effect: Effect = {
|
|
102
102
|
observers: new Set(),
|
|
103
|
-
run: () =>
|
|
103
|
+
run: () => forceUpdate((state) => state + 1),
|
|
104
104
|
};
|
|
105
105
|
|
|
106
106
|
const get: Getter = (observable) => observable.get(effect);
|
|
107
107
|
|
|
108
|
-
return
|
|
108
|
+
return Object.assign(effect, { get });
|
|
109
109
|
});
|
|
110
110
|
|
|
111
|
+
useEffect(() => {
|
|
112
|
+
// React StrictMode replays setup after cleanup without another render.
|
|
113
|
+
if (effect.observers.size === 0) forceUpdate((state) => state + 1);
|
|
114
|
+
return () => cleanupEffect(effect);
|
|
115
|
+
}, [effect]);
|
|
116
|
+
cleanupEffect(effect);
|
|
111
117
|
return resolveValue([{}, "var", [name]], effect.get, { inheritedVariables });
|
|
112
118
|
}
|
|
113
119
|
|
|
114
120
|
/**
|
|
115
121
|
* @deprecated Use `<VariableContextProvider />` instead.
|
|
116
122
|
*/
|
|
117
|
-
export function vars(variables: Record<string, StyleDescriptor>) {
|
|
123
|
+
export function vars(variables: Record<string, StyleDescriptor>): ViewStyle {
|
|
118
124
|
return Object.assign(
|
|
119
125
|
{ [VAR_SYMBOL]: "inline" },
|
|
120
126
|
Object.fromEntries(
|
|
121
127
|
Object.entries(variables).map(([k, v]) => [k.replace(/^--/, ""), v]),
|
|
122
128
|
),
|
|
123
|
-
);
|
|
129
|
+
) as ViewStyle;
|
|
124
130
|
}
|
|
@@ -11,7 +11,7 @@ export function testAttributes(
|
|
|
11
11
|
}
|
|
12
12
|
|
|
13
13
|
function testAttribute(
|
|
14
|
-
[type, prop, operator, testValue]: AttributeQuery,
|
|
14
|
+
[type, prop, operator, testValue, caseSensitivity]: AttributeQuery,
|
|
15
15
|
props: Record<string, unknown> | undefined | null,
|
|
16
16
|
guards: RenderGuard[],
|
|
17
17
|
) {
|
|
@@ -32,21 +32,38 @@ function testAttribute(
|
|
|
32
32
|
return value !== undefined && value !== null && value !== false;
|
|
33
33
|
}
|
|
34
34
|
|
|
35
|
+
if (operator === "!") return !value;
|
|
36
|
+
if (value === undefined || value === null || testValue === undefined)
|
|
37
|
+
return false;
|
|
38
|
+
|
|
39
|
+
if (
|
|
40
|
+
typeof value !== "string" &&
|
|
41
|
+
typeof value !== "number" &&
|
|
42
|
+
typeof value !== "boolean"
|
|
43
|
+
)
|
|
44
|
+
return false;
|
|
45
|
+
let actual = String(value);
|
|
46
|
+
if (caseSensitivity === "i") {
|
|
47
|
+
// CSS attribute flags fold ASCII letters only, not Unicode characters.
|
|
48
|
+
actual = actual.replace(/[A-Z]/g, (letter) => letter.toLowerCase());
|
|
49
|
+
testValue = testValue.replace(/[A-Z]/g, (letter) => letter.toLowerCase());
|
|
50
|
+
}
|
|
51
|
+
|
|
35
52
|
switch (operator) {
|
|
36
|
-
case "!":
|
|
37
|
-
return !value;
|
|
38
53
|
case "=":
|
|
39
|
-
return
|
|
54
|
+
return actual === testValue;
|
|
40
55
|
case "~=":
|
|
41
|
-
return
|
|
56
|
+
return (
|
|
57
|
+
testValue !== "" && actual.split(/[\t\n\f\r ]+/).includes(testValue)
|
|
58
|
+
);
|
|
42
59
|
case "|=":
|
|
43
|
-
return testValue
|
|
60
|
+
return actual === testValue || actual.startsWith(testValue + "-");
|
|
44
61
|
case "^=":
|
|
45
|
-
return testValue &&
|
|
62
|
+
return testValue !== "" && actual.startsWith(testValue);
|
|
46
63
|
case "$=":
|
|
47
|
-
return testValue &&
|
|
64
|
+
return testValue !== "" && actual.endsWith(testValue);
|
|
48
65
|
case "*=":
|
|
49
|
-
return testValue &&
|
|
66
|
+
return testValue !== "" && actual.includes(testValue);
|
|
50
67
|
default:
|
|
51
68
|
operator satisfies never;
|
|
52
69
|
return false;
|
|
@@ -16,7 +16,7 @@ import {
|
|
|
16
16
|
type ContainerContextValue,
|
|
17
17
|
type Getter,
|
|
18
18
|
} from "../reactivity";
|
|
19
|
-
|
|
19
|
+
import { testAttributes } from "./attributes";
|
|
20
20
|
import type { RenderGuard } from "./guards";
|
|
21
21
|
|
|
22
22
|
export const DEFAULT_CONTAINER_NAME = "c:___default___";
|
|
@@ -47,15 +47,17 @@ export function testContainerQuery(
|
|
|
47
47
|
return false;
|
|
48
48
|
}
|
|
49
49
|
|
|
50
|
-
//
|
|
51
|
-
//
|
|
52
|
-
|
|
50
|
+
// Ancestor snapshots have their own context guard. Their attributes must not
|
|
51
|
+
// be compared with this descendant's props by the ordinary attribute guards.
|
|
52
|
+
if (query.a && !testAttributes(query.a, container.props, [])) {
|
|
53
|
+
return false;
|
|
54
|
+
}
|
|
53
55
|
|
|
54
|
-
if (query.m && !testContainerMediaCondition(query.m, container, get)) {
|
|
56
|
+
if (query.m && !testContainerMediaCondition(query.m, container.key, get)) {
|
|
55
57
|
return false;
|
|
56
58
|
}
|
|
57
59
|
|
|
58
|
-
if (query.p && !testContainerPseudoCondition(query.p, container, get)) {
|
|
60
|
+
if (query.p && !testContainerPseudoCondition(query.p, container.key, get)) {
|
|
59
61
|
return false;
|
|
60
62
|
}
|
|
61
63
|
|
|
@@ -119,11 +121,11 @@ function testContainerMediaCondition(
|
|
|
119
121
|
case ">":
|
|
120
122
|
return left > right;
|
|
121
123
|
case ">=":
|
|
122
|
-
return left
|
|
124
|
+
return left >= right;
|
|
123
125
|
case "<":
|
|
124
|
-
return left
|
|
126
|
+
return left < right;
|
|
125
127
|
case "<=":
|
|
126
|
-
return left
|
|
128
|
+
return left <= right;
|
|
127
129
|
default:
|
|
128
130
|
condition[0] satisfies never;
|
|
129
131
|
return false;
|
|
@@ -39,7 +39,7 @@ function testComparison(mediaQuery: MediaCondition, get: Getter): Boolean {
|
|
|
39
39
|
|
|
40
40
|
switch (mediaQuery[1]) {
|
|
41
41
|
case "dir":
|
|
42
|
-
return (I18nManager.isRTL
|
|
42
|
+
return value === (I18nManager.isRTL ? "rtl" : "ltr");
|
|
43
43
|
case "hover":
|
|
44
44
|
return true;
|
|
45
45
|
case "platform":
|
|
@@ -11,7 +11,7 @@ import {
|
|
|
11
11
|
|
|
12
12
|
const mainCache = new WeakMap<
|
|
13
13
|
WeakKey,
|
|
14
|
-
WeakMap<Function, (event: any) => void
|
|
14
|
+
Map<InteractionType, WeakMap<Function, (event: any) => void>>
|
|
15
15
|
>();
|
|
16
16
|
|
|
17
17
|
type Handler = (event: unknown) => void;
|
|
@@ -40,14 +40,19 @@ const defaultHandlers: Record<InteractionType, Handler> = {
|
|
|
40
40
|
export function getInteractionHandler(
|
|
41
41
|
weakKey: WeakKey,
|
|
42
42
|
type: InteractionType,
|
|
43
|
-
handler
|
|
43
|
+
handler?: Handler | null,
|
|
44
44
|
) {
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
45
|
+
handler ??= defaultHandlers[type];
|
|
46
|
+
let interactions = mainCache.get(weakKey);
|
|
47
|
+
if (!interactions) {
|
|
48
|
+
interactions = new Map();
|
|
49
|
+
mainCache.set(weakKey, interactions);
|
|
49
50
|
}
|
|
50
51
|
|
|
52
|
+
// A caller may reuse one callback for events that update opposite states.
|
|
53
|
+
let cache = interactions.get(type);
|
|
54
|
+
if (!cache) interactions.set(type, (cache = new WeakMap()));
|
|
55
|
+
|
|
51
56
|
let cached = cache.get(handler);
|
|
52
57
|
if (!cached) {
|
|
53
58
|
cached = (event: any) => {
|
|
@@ -8,6 +8,7 @@ import type { RenderGuard } from "../conditions/guards";
|
|
|
8
8
|
import { getDeepPath } from "../objects";
|
|
9
9
|
import {
|
|
10
10
|
activeFamily,
|
|
11
|
+
cleanupEffect,
|
|
11
12
|
containerLayoutFamily,
|
|
12
13
|
focusFamily,
|
|
13
14
|
hoverFamily,
|
|
@@ -30,6 +31,7 @@ export function updateRules(
|
|
|
30
31
|
forceUpdate = false,
|
|
31
32
|
isRerender = true,
|
|
32
33
|
): ComponentState {
|
|
34
|
+
cleanupEffect(state.ruleEffect);
|
|
33
35
|
const guards: RenderGuard[] = [];
|
|
34
36
|
const rules = new Set<StyleRule | InlineVariable | VariableContextValue>();
|
|
35
37
|
if (forceUpdate) {
|
|
@@ -144,13 +146,19 @@ export function updateRules(
|
|
|
144
146
|
containers = {
|
|
145
147
|
...inheritedContainers,
|
|
146
148
|
// This container becomes the default container
|
|
147
|
-
[DEFAULT_CONTAINER_NAME]:
|
|
149
|
+
[DEFAULT_CONTAINER_NAME]: {
|
|
150
|
+
key: state.ruleEffectGetter,
|
|
151
|
+
props: currentProps,
|
|
152
|
+
},
|
|
148
153
|
};
|
|
149
154
|
}
|
|
150
155
|
|
|
151
156
|
// This this component as the named container
|
|
152
157
|
for (const name of rule.c) {
|
|
153
|
-
containers![name] =
|
|
158
|
+
containers![name] = {
|
|
159
|
+
key: state.ruleEffectGetter,
|
|
160
|
+
props: currentProps,
|
|
161
|
+
};
|
|
154
162
|
}
|
|
155
163
|
|
|
156
164
|
// Enable hover/active/focus/layout handlers
|
|
@@ -212,14 +220,14 @@ export function updateRules(
|
|
|
212
220
|
};
|
|
213
221
|
}
|
|
214
222
|
|
|
215
|
-
if (usesVariables || variables) {
|
|
223
|
+
if (usesVariables || variables || inlineVariables.size) {
|
|
216
224
|
rules.add(inheritedVariables);
|
|
217
225
|
|
|
218
226
|
if (inlineVariables.size) {
|
|
219
227
|
variables = Object.assign(
|
|
220
228
|
{},
|
|
221
|
-
variables,
|
|
222
229
|
inheritedVariables,
|
|
230
|
+
variables,
|
|
223
231
|
...Array.from(inlineVariables),
|
|
224
232
|
{ [VAR_SYMBOL]: true },
|
|
225
233
|
);
|
|
@@ -243,7 +251,7 @@ export function updateRules(
|
|
|
243
251
|
}
|
|
244
252
|
|
|
245
253
|
// Remove this component from the old observer
|
|
246
|
-
state.stylesObs?.
|
|
254
|
+
state.stylesObs?.unsubscribe(state.styleEffect);
|
|
247
255
|
|
|
248
256
|
return {
|
|
249
257
|
...state,
|