@tamagui/web
Advanced tools
Comparing version 1.89.30 to 1.90.0
@@ -580,3 +580,4 @@ var __defProp = Object.defineProperty; | ||
x: 0, | ||
y: 0 | ||
y: 0, | ||
borderRadius: 0 | ||
}, lowercaseHyphenate = (match) => `-${match.toLowerCase()}`, hyphenate = (str) => str.replace(/[A-Z]/g, lowercaseHyphenate), mergeTransform = (obj, key, val, backwards = !1) => { | ||
@@ -583,0 +584,0 @@ typeof obj.transform != "string" && (obj.transform ||= [], obj.transform[backwards ? "unshift" : "push"]({ |
@@ -222,7 +222,3 @@ "use strict"; | ||
})), !(shouldPassThrough && (passDownProp(viewProps, keyInit, valInit, isMediaOrPseudo1), !isVariant)) && !(!styleProps.noSkip && keyInit in import_skipProps.skipProps)) { | ||
if ((isText || isInput) && valInit && (keyInit === "fontFamily" || keyInit === shorthands.fontFamily) && valInit in conf.fontsParsed && (styleState.fontFamily = valInit), isValidStyleKeyInit && !variants && valInit !== "unset" && (valInitType === "number" || valInitType === "string" && valInit[0] !== "$")) { | ||
var _styleState2; | ||
(_styleState2 = styleState).style || (_styleState2.style = {}), styleState.style[keyInit] = valInit; | ||
continue; | ||
} | ||
(isText || isInput) && valInit && (keyInit === "fontFamily" || keyInit === shorthands.fontFamily) && valInit in conf.fontsParsed && (styleState.fontFamily = valInit); | ||
var avoidPropMap = isMediaOrPseudo1 || !isVariant && !isValidStyleKeyInit, expanded = avoidPropMap ? null : (0, import_propMapper.propMapper)(keyInit, valInit, styleState); | ||
@@ -440,3 +436,3 @@ if (!avoidPropMap) { | ||
for (var subKey in mediaStyle) { | ||
var _styleState3; | ||
var _styleState2; | ||
if (subKey === "space") { | ||
@@ -446,3 +442,3 @@ space = valInit.space; | ||
} | ||
(_styleState3 = styleState).style || (_styleState3.style = {}), (0, import_useMedia.mergeMediaByImportance)(styleState.style, mediaKeyShort, subKey, mediaStyle[subKey], usedKeys, mediaState[mediaKeyShort], importanceBump), key === "fontFamily" && (styleState.fontFamily = mediaStyle.fontFamily); | ||
(_styleState2 = styleState).style || (_styleState2.style = {}), (0, import_useMedia.mergeMediaByImportance)(styleState.style, mediaKeyShort, subKey, mediaStyle[subKey], usedKeys, mediaState[mediaKeyShort], importanceBump), key === "fontFamily" && (styleState.fontFamily = mediaStyle.fontFamily); | ||
} | ||
@@ -490,4 +486,4 @@ } | ||
else { | ||
var _styleState4; | ||
(_styleState4 = styleState).style || (_styleState4.style = {}), Object.assign(styleState.style, style1); | ||
var _styleState3; | ||
(_styleState3 = styleState).style || (_styleState3.style = {}), Object.assign(styleState.style, style1); | ||
} | ||
@@ -509,4 +505,4 @@ } | ||
if (styleState.style && ((0, import_expandStyles.fixStyles)(styleState.style), import_constants.isWeb && !staticConfig.isReactNative && (0, import_getStylesAtomic.styleToCSS)(styleState.style)), styleState.transforms) { | ||
var _styleState5; | ||
(_styleState5 = styleState).style || (_styleState5.style = {}), Object.entries(styleState.transforms).sort(function(param, param1) { | ||
var _styleState4; | ||
(_styleState4 = styleState).style || (_styleState4.style = {}), Object.entries(styleState.transforms).sort(function(param, param1) { | ||
var _param = _sliced_to_array(param, 1), a = _param[0], _param1 = _sliced_to_array(param1, 1), b = _param1[0]; | ||
@@ -527,4 +523,4 @@ return a.localeCompare(b); | ||
for (var key3 in parentSplitStyles.style) { | ||
var _styleState6; | ||
key3 in classNames || styleState.style && key3 in styleState.style || ((_styleState6 = styleState).style || (_styleState6.style = {}), styleState.style[key3] = parentSplitStyles.style[key3]); | ||
var _styleState5; | ||
key3 in classNames || styleState.style && key3 in styleState.style || ((_styleState5 = styleState).style || (_styleState5.style = {}), styleState.style[key3] = parentSplitStyles.style[key3]); | ||
} | ||
@@ -686,3 +682,4 @@ } | ||
x: 0, | ||
y: 0 | ||
y: 0, | ||
borderRadius: 0 | ||
}, lowercaseHyphenate = function(match) { | ||
@@ -689,0 +686,0 @@ return "-".concat(match.toLowerCase()); |
@@ -28,3 +28,3 @@ var __defProp = Object.defineProperty; | ||
styleState.fontFamily || styleState.curProps.fontFamily || styleState.conf.defaultFont | ||
); | ||
), font = fonts[fontFamily] || fonts[styleState.conf.defaultFont]; | ||
return { | ||
@@ -35,3 +35,3 @@ fonts, | ||
fontFamily, | ||
font: fonts[fontFamily] || fonts[styleState.conf.defaultFont], | ||
font, | ||
// TODO do this in splitstlye | ||
@@ -38,0 +38,0 @@ // we avoid passing in default props for media queries because that would confuse things like SizableText.size: |
@@ -92,3 +92,3 @@ "use strict"; | ||
context != null && context.language && (fonts = getFontsForLanguage(conf.fontsParsed, context.language)); | ||
var fontFamily = (0, import_createVariable.getVariableValue)(styleState.fontFamily || styleState.curProps.fontFamily || styleState.conf.defaultFont), next = { | ||
var fontFamily = (0, import_createVariable.getVariableValue)(styleState.fontFamily || styleState.curProps.fontFamily || styleState.conf.defaultFont), font = fonts[fontFamily] || fonts[styleState.conf.defaultFont], next = { | ||
fonts, | ||
@@ -98,3 +98,3 @@ tokens: conf.tokensParsed, | ||
fontFamily, | ||
font: fonts[fontFamily] || fonts[styleState.conf.defaultFont], | ||
font, | ||
// TODO do this in splitstlye | ||
@@ -101,0 +101,0 @@ // we avoid passing in default props for media queries because that would confuse things like SizableText.size: |
@@ -49,4 +49,3 @@ var __defProp = Object.defineProperty; | ||
} | ||
let shouldReturn = !1; | ||
if (styleProps.disableExpandShorthands || key in conf.shorthands && (shouldReturn = !0, key = conf.shorthands[key]), value && (value[0] === "$" ? value = getTokenForKey(key, value, styleProps.resolveValues, styleState) : (0, import_createVariable.isVariable)(value) && (value = resolveVariableValue(key, value, styleProps.resolveValues))), shouldReturn || value != null) { | ||
if (styleProps.disableExpandShorthands || key in conf.shorthands && (key = conf.shorthands[key]), value && (value[0] === "$" ? value = getTokenForKey(key, value, styleProps.resolveValues, styleState) : (0, import_createVariable.isVariable)(value) && (value = resolveVariableValue(key, value, styleProps.resolveValues))), value != null) { | ||
const result = (styleProps.noExpand ? null : (0, import_expandStyle.expandStyle)(key, value)) || [ | ||
@@ -53,0 +52,0 @@ [key, value] |
@@ -115,4 +115,3 @@ "use strict"; | ||
} | ||
var shouldReturn = !1; | ||
if (styleProps.disableExpandShorthands || key in conf.shorthands && (shouldReturn = !0, key = conf.shorthands[key]), value && (value[0] === "$" ? value = getTokenForKey(key, value, styleProps.resolveValues, styleState) : (0, import_createVariable.isVariable)(value) && (value = resolveVariableValue(key, value, styleProps.resolveValues))), shouldReturn || value != null) { | ||
if (styleProps.disableExpandShorthands || key in conf.shorthands && (key = conf.shorthands[key]), value && (value[0] === "$" ? value = getTokenForKey(key, value, styleProps.resolveValues, styleState) : (0, import_createVariable.isVariable)(value) && (value = resolveVariableValue(key, value, styleProps.resolveValues))), value != null) { | ||
var result = (styleProps.noExpand ? null : (0, import_expandStyle.expandStyle)(key, value)) || [ | ||
@@ -119,0 +118,0 @@ [ |
@@ -606,3 +606,4 @@ import { | ||
x: 0, | ||
y: 0 | ||
y: 0, | ||
borderRadius: 0 | ||
}, lowercaseHyphenate = (match) => `-${match.toLowerCase()}`, hyphenate = (str) => str.replace(/[A-Z]/g, lowercaseHyphenate), mergeTransform = (obj, key, val, backwards = !1) => { | ||
@@ -609,0 +610,0 @@ typeof obj.transform != "string" && (obj.transform ||= [], obj.transform[backwards ? "unshift" : "push"]({ |
@@ -218,7 +218,3 @@ import { currentPlatform, isAndroid, isClient, isServer, isWeb, useIsomorphicLayoutEffect } from "@tamagui/constants"; | ||
})), !(shouldPassThrough && (passDownProp(viewProps, keyInit, valInit, isMediaOrPseudo1), !isVariant)) && !(!styleProps.noSkip && keyInit in skipProps)) { | ||
if ((isText || isInput) && valInit && (keyInit === "fontFamily" || keyInit === shorthands.fontFamily) && valInit in conf.fontsParsed && (styleState.fontFamily = valInit), isValidStyleKeyInit && !variants && valInit !== "unset" && (valInitType === "number" || valInitType === "string" && valInit[0] !== "$")) { | ||
var _styleState2; | ||
(_styleState2 = styleState).style || (_styleState2.style = {}), styleState.style[keyInit] = valInit; | ||
continue; | ||
} | ||
(isText || isInput) && valInit && (keyInit === "fontFamily" || keyInit === shorthands.fontFamily) && valInit in conf.fontsParsed && (styleState.fontFamily = valInit); | ||
var avoidPropMap = isMediaOrPseudo1 || !isVariant && !isValidStyleKeyInit, expanded = avoidPropMap ? null : propMapper(keyInit, valInit, styleState); | ||
@@ -436,3 +432,3 @@ if (!avoidPropMap) { | ||
for (var subKey in mediaStyle) { | ||
var _styleState3; | ||
var _styleState2; | ||
if (subKey === "space") { | ||
@@ -442,3 +438,3 @@ space = valInit.space; | ||
} | ||
(_styleState3 = styleState).style || (_styleState3.style = {}), mergeMediaByImportance(styleState.style, mediaKeyShort, subKey, mediaStyle[subKey], usedKeys, mediaState[mediaKeyShort], importanceBump), key === "fontFamily" && (styleState.fontFamily = mediaStyle.fontFamily); | ||
(_styleState2 = styleState).style || (_styleState2.style = {}), mergeMediaByImportance(styleState.style, mediaKeyShort, subKey, mediaStyle[subKey], usedKeys, mediaState[mediaKeyShort], importanceBump), key === "fontFamily" && (styleState.fontFamily = mediaStyle.fontFamily); | ||
} | ||
@@ -486,4 +482,4 @@ } | ||
else { | ||
var _styleState4; | ||
(_styleState4 = styleState).style || (_styleState4.style = {}), Object.assign(styleState.style, style1); | ||
var _styleState3; | ||
(_styleState3 = styleState).style || (_styleState3.style = {}), Object.assign(styleState.style, style1); | ||
} | ||
@@ -505,4 +501,4 @@ } | ||
if (styleState.style && (fixStyles(styleState.style), isWeb && !staticConfig.isReactNative && styleToCSS(styleState.style)), styleState.transforms) { | ||
var _styleState5; | ||
(_styleState5 = styleState).style || (_styleState5.style = {}), Object.entries(styleState.transforms).sort(function(param, param1) { | ||
var _styleState4; | ||
(_styleState4 = styleState).style || (_styleState4.style = {}), Object.entries(styleState.transforms).sort(function(param, param1) { | ||
var _param = _sliced_to_array(param, 1), a = _param[0], _param1 = _sliced_to_array(param1, 1), b = _param1[0]; | ||
@@ -523,4 +519,4 @@ return a.localeCompare(b); | ||
for (var key3 in parentSplitStyles.style) { | ||
var _styleState6; | ||
key3 in classNames || styleState.style && key3 in styleState.style || ((_styleState6 = styleState).style || (_styleState6.style = {}), styleState.style[key3] = parentSplitStyles.style[key3]); | ||
var _styleState5; | ||
key3 in classNames || styleState.style && key3 in styleState.style || ((_styleState5 = styleState).style || (_styleState5.style = {}), styleState.style[key3] = parentSplitStyles.style[key3]); | ||
} | ||
@@ -682,3 +678,4 @@ } | ||
x: 0, | ||
y: 0 | ||
y: 0, | ||
borderRadius: 0 | ||
}, lowercaseHyphenate = function(match) { | ||
@@ -685,0 +682,0 @@ return "-".concat(match.toLowerCase()); |
@@ -8,3 +8,3 @@ import { getVariableValue } from "../createVariable"; | ||
styleState.fontFamily || styleState.curProps.fontFamily || styleState.conf.defaultFont | ||
); | ||
), font = fonts[fontFamily] || fonts[styleState.conf.defaultFont]; | ||
return { | ||
@@ -15,3 +15,3 @@ fonts, | ||
fontFamily, | ||
font: fonts[fontFamily] || fonts[styleState.conf.defaultFont], | ||
font, | ||
// TODO do this in splitstlye | ||
@@ -18,0 +18,0 @@ // we avoid passing in default props for media queries because that would confuse things like SizableText.size: |
@@ -71,3 +71,3 @@ import { getVariableValue } from "../createVariable"; | ||
context != null && context.language && (fonts = getFontsForLanguage(conf.fontsParsed, context.language)); | ||
var fontFamily = getVariableValue(styleState.fontFamily || styleState.curProps.fontFamily || styleState.conf.defaultFont), next = { | ||
var fontFamily = getVariableValue(styleState.fontFamily || styleState.curProps.fontFamily || styleState.conf.defaultFont), font = fonts[fontFamily] || fonts[styleState.conf.defaultFont], next = { | ||
fonts, | ||
@@ -77,3 +77,3 @@ tokens: conf.tokensParsed, | ||
fontFamily, | ||
font: fonts[fontFamily] || fonts[styleState.conf.defaultFont], | ||
font, | ||
// TODO do this in splitstlye | ||
@@ -80,0 +80,0 @@ // we avoid passing in default props for media queries because that would confuse things like SizableText.size: |
@@ -36,4 +36,3 @@ import "@tamagui/constants"; | ||
} | ||
let shouldReturn = !1; | ||
if (styleProps.disableExpandShorthands || key in conf.shorthands && (shouldReturn = !0, key = conf.shorthands[key]), value && (value[0] === "$" ? value = getTokenForKey(key, value, styleProps.resolveValues, styleState) : isVariable(value) && (value = resolveVariableValue(key, value, styleProps.resolveValues))), shouldReturn || value != null) { | ||
if (styleProps.disableExpandShorthands || key in conf.shorthands && (key = conf.shorthands[key]), value && (value[0] === "$" ? value = getTokenForKey(key, value, styleProps.resolveValues, styleState) : isVariable(value) && (value = resolveVariableValue(key, value, styleProps.resolveValues))), value != null) { | ||
const result = (styleProps.noExpand ? null : expandStyle(key, value)) || [ | ||
@@ -40,0 +39,0 @@ [key, value] |
@@ -101,4 +101,3 @@ import { isAndroid } from "@tamagui/constants"; | ||
} | ||
var shouldReturn = !1; | ||
if (styleProps.disableExpandShorthands || key in conf.shorthands && (shouldReturn = !0, key = conf.shorthands[key]), value && (value[0] === "$" ? value = getTokenForKey(key, value, styleProps.resolveValues, styleState) : isVariable(value) && (value = resolveVariableValue(key, value, styleProps.resolveValues))), shouldReturn || value != null) { | ||
if (styleProps.disableExpandShorthands || key in conf.shorthands && (key = conf.shorthands[key]), value && (value[0] === "$" ? value = getTokenForKey(key, value, styleProps.resolveValues, styleState) : isVariable(value) && (value = resolveVariableValue(key, value, styleProps.resolveValues))), value != null) { | ||
var result = (styleProps.noExpand ? null : expandStyle(key, value)) || [ | ||
@@ -105,0 +104,0 @@ [ |
{ | ||
"name": "@tamagui/web", | ||
"version": "1.89.30", | ||
"version": "1.90.0", | ||
"source": "src/index.ts", | ||
@@ -30,11 +30,11 @@ "main": "dist/cjs", | ||
"dependencies": { | ||
"@tamagui/compose-refs": "1.89.30", | ||
"@tamagui/constants": "1.89.30", | ||
"@tamagui/helpers": "1.89.30", | ||
"@tamagui/normalize-css-color": "1.89.30", | ||
"@tamagui/timer": "1.89.30", | ||
"@tamagui/types": "1.89.30", | ||
"@tamagui/use-did-finish-ssr": "1.89.30", | ||
"@tamagui/use-event": "1.89.30", | ||
"@tamagui/use-force-update": "1.89.30", | ||
"@tamagui/compose-refs": "1.90.0", | ||
"@tamagui/constants": "1.90.0", | ||
"@tamagui/helpers": "1.90.0", | ||
"@tamagui/normalize-css-color": "1.90.0", | ||
"@tamagui/timer": "1.90.0", | ||
"@tamagui/types": "1.90.0", | ||
"@tamagui/use-did-finish-ssr": "1.90.0", | ||
"@tamagui/use-event": "1.90.0", | ||
"@tamagui/use-force-update": "1.90.0", | ||
"react": "^18.2.0", | ||
@@ -44,3 +44,3 @@ "react-dom": "^18.2.0" | ||
"devDependencies": { | ||
"@tamagui/build": "1.89.30", | ||
"@tamagui/build": "1.90.0", | ||
"@testing-library/react": "^14.0.0", | ||
@@ -47,0 +47,0 @@ "csstype": "^3.0.10", |
@@ -45,3 +45,2 @@ import { isAndroid } from '@tamagui/constants' | ||
const subProps = styleStateIn.styleProps.fallbackProps || subPropsIn | ||
const styleState = subProps | ||
@@ -58,3 +57,2 @@ ? new Proxy(styleStateIn, { | ||
// prettier-ignore | ||
if ( | ||
@@ -66,3 +64,2 @@ process.env.NODE_ENV === 'development' && | ||
) { | ||
// prettier-ignore | ||
console.warn( | ||
@@ -86,8 +83,5 @@ `Warning: no fontFamily "${fontFamily}" found in config: ${Object.keys( | ||
let shouldReturn = false | ||
// handle shorthands | ||
if (!styleProps.disableExpandShorthands) { | ||
if (key in conf.shorthands) { | ||
shouldReturn = true | ||
key = conf.shorthands[key] | ||
@@ -105,11 +99,9 @@ } | ||
if (shouldReturn || value != null) { | ||
if (value != null) { | ||
const result = (styleProps.noExpand ? null : expandStyle(key, value)) || [ | ||
[key, value], | ||
] | ||
if (key === 'fontFamily' && lastFontFamilyToken) { | ||
fontFamilyCache.set(result, lastFontFamilyToken) | ||
} | ||
return result | ||
@@ -116,0 +108,0 @@ } |
@@ -8,3 +8,3 @@ /// <reference types="react" /> | ||
export declare const Configuration: { | ||
(props: ConfigurationProps): JSX.Element; | ||
(props: ConfigurationProps): import("react/jsx-runtime").JSX.Element; | ||
displayName: string; | ||
@@ -11,0 +11,0 @@ }; |
@@ -1,7 +0,6 @@ | ||
/// <reference types="react" /> | ||
import type { FontLanguageProps } from './FontLanguage.types'; | ||
export declare const FontLanguage: { | ||
({ children, ...props }: FontLanguageProps): JSX.Element; | ||
({ children, ...props }: FontLanguageProps): import("react/jsx-runtime").JSX.Element; | ||
displayName: string; | ||
}; | ||
//# sourceMappingURL=FontLanguage.d.ts.map |
@@ -1,7 +0,6 @@ | ||
/// <reference types="react" /> | ||
import type { FontLanguageProps } from './FontLanguage.types'; | ||
export declare const FontLanguage: { | ||
({ children, ...props }: FontLanguageProps): JSX.Element; | ||
({ children, ...props }: FontLanguageProps): import("react/jsx-runtime").JSX.Element; | ||
displayName: string; | ||
}; | ||
//# sourceMappingURL=FontLanguage.native.d.ts.map |
@@ -9,3 +9,3 @@ import type { ReactNode } from 'react'; | ||
children: ReactNode; | ||
}): JSX.Element; | ||
}): import("react/jsx-runtime").JSX.Element; | ||
displayName: string; | ||
@@ -12,0 +12,0 @@ }; |
@@ -1,4 +0,3 @@ | ||
/// <reference types="react" /> | ||
import type { TamaguiProviderProps } from '../types'; | ||
export declare function TamaguiProvider({ children, disableInjectCSS, config, ...themePropsProvider }: TamaguiProviderProps): JSX.Element; | ||
export declare function TamaguiProvider({ children, disableInjectCSS, config, ...themePropsProvider }: TamaguiProviderProps): import("react/jsx-runtime").JSX.Element; | ||
export declare namespace TamaguiProvider { | ||
@@ -5,0 +4,0 @@ var displayName: string; |
@@ -1,2 +0,1 @@ | ||
/// <reference types="react" /> | ||
export type ThemeProviderProps = { | ||
@@ -10,3 +9,3 @@ className?: string; | ||
}; | ||
export declare const ThemeProvider: (props: ThemeProviderProps) => JSX.Element; | ||
export declare const ThemeProvider: (props: ThemeProviderProps) => import("react/jsx-runtime").JSX.Element; | ||
//# sourceMappingURL=ThemeProvider.d.ts.map |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
2521172
1114
43336
+ Added@tamagui/compose-refs@1.90.0(transitive)
+ Added@tamagui/constants@1.90.0(transitive)
+ Added@tamagui/helpers@1.90.0(transitive)
+ Added@tamagui/normalize-css-color@1.90.0(transitive)
+ Added@tamagui/simple-hash@1.90.0(transitive)
+ Added@tamagui/timer@1.90.0(transitive)
+ Added@tamagui/types@1.90.0(transitive)
+ Added@tamagui/use-did-finish-ssr@1.90.0(transitive)
+ Added@tamagui/use-event@1.90.0(transitive)
+ Added@tamagui/use-force-update@1.90.0(transitive)
- Removed@tamagui/compose-refs@1.89.30(transitive)
- Removed@tamagui/constants@1.89.30(transitive)
- Removed@tamagui/helpers@1.89.30(transitive)
- Removed@tamagui/normalize-css-color@1.89.30(transitive)
- Removed@tamagui/simple-hash@1.89.30(transitive)
- Removed@tamagui/timer@1.89.30(transitive)
- Removed@tamagui/types@1.89.30(transitive)
- Removed@tamagui/use-did-finish-ssr@1.89.30(transitive)
- Removed@tamagui/use-event@1.89.30(transitive)
- Removed@tamagui/use-force-update@1.89.30(transitive)
Updated@tamagui/compose-refs@1.90.0
Updated@tamagui/constants@1.90.0
Updated@tamagui/helpers@1.90.0
Updated@tamagui/timer@1.90.0
Updated@tamagui/types@1.90.0
Updated@tamagui/use-event@1.90.0