@tamagui/element 2.7.7 → 3.0.0-beta.637.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/dist/cjs/getWebElement.cjs +22 -25
- package/dist/cjs/getWebElement.native.cjs +42 -0
- package/dist/cjs/getWebElement.native.js +27 -29
- package/dist/cjs/getWebElement.native.js.map +1 -1
- package/dist/cjs/index.cjs +10 -11
- package/dist/cjs/index.native.cjs +36 -0
- package/dist/cjs/index.native.js +17 -17
- package/dist/cjs/index.native.js.map +1 -1
- package/dist/cjs/types.cjs +10 -11
- package/dist/cjs/types.native.cjs +19 -0
- package/dist/cjs/types.native.js +10 -10
- package/dist/cjs/types.native.js.map +1 -1
- package/dist/cjs/useNativeRef.cjs +31 -37
- package/dist/cjs/useNativeRef.native.cjs +53 -0
- package/dist/cjs/useNativeRef.native.js +31 -36
- package/dist/cjs/useNativeRef.native.js.map +1 -1
- package/dist/cjs/useWebRef.cjs +24 -32
- package/dist/cjs/useWebRef.native.cjs +42 -0
- package/dist/cjs/useWebRef.native.js +24 -31
- package/dist/cjs/useWebRef.native.js.map +1 -1
- package/dist/esm/getWebElement.mjs +8 -7
- package/dist/esm/getWebElement.mjs.map +1 -1
- package/dist/esm/getWebElement.native.js +13 -12
- package/dist/esm/getWebElement.native.js.map +1 -1
- package/dist/esm/index.js +7 -5
- package/dist/esm/index.mjs +7 -5
- package/dist/esm/index.native.js +7 -3
- package/dist/esm/index.native.js.map +1 -1
- package/dist/esm/types.mjs +0 -2
- package/dist/esm/types.native.js +0 -2
- package/dist/esm/useNativeRef.mjs +14 -12
- package/dist/esm/useNativeRef.mjs.map +1 -1
- package/dist/esm/useNativeRef.native.js +14 -12
- package/dist/esm/useNativeRef.native.js.map +1 -1
- package/dist/esm/useWebRef.mjs +8 -6
- package/dist/esm/useWebRef.mjs.map +1 -1
- package/dist/esm/useWebRef.native.js +8 -6
- package/dist/esm/useWebRef.native.js.map +1 -1
- package/package.json +8 -8
- package/types/getWebElement.d.ts +13 -0
- package/types/index.d.ts +5 -0
- package/types/index.native.d.ts +5 -0
- package/types/types.d.ts +29 -0
- package/types/useNativeRef.d.ts +31 -0
- package/types/useWebRef.d.ts +19 -0
- package/dist/esm/index.js.map +0 -1
- package/dist/esm/index.mjs.map +0 -1
- package/dist/esm/types.mjs.map +0 -1
- package/dist/esm/types.native.js.map +0 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tamagui/element",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "3.0.0-beta.637.1",
|
|
4
4
|
"files": [
|
|
5
5
|
"src",
|
|
6
6
|
"types",
|
|
@@ -10,15 +10,15 @@
|
|
|
10
10
|
"sideEffects": false,
|
|
11
11
|
"main": "dist/cjs",
|
|
12
12
|
"module": "dist/esm",
|
|
13
|
-
"types": "./
|
|
13
|
+
"types": "./types/index.d.ts",
|
|
14
14
|
"exports": {
|
|
15
15
|
"./package.json": "./package.json",
|
|
16
16
|
".": {
|
|
17
17
|
"react-native": {
|
|
18
|
-
"types": "./
|
|
18
|
+
"types": "./types/index.native.d.ts",
|
|
19
19
|
"default": "./dist/esm/index.native.js"
|
|
20
20
|
},
|
|
21
|
-
"types": "./
|
|
21
|
+
"types": "./types/index.d.ts",
|
|
22
22
|
"browser": "./dist/esm/index.mjs",
|
|
23
23
|
"module": "./dist/esm/index.mjs",
|
|
24
24
|
"import": "./dist/esm/index.mjs",
|
|
@@ -30,16 +30,16 @@
|
|
|
30
30
|
"access": "public"
|
|
31
31
|
},
|
|
32
32
|
"scripts": {
|
|
33
|
-
"build": "tamagui-build
|
|
34
|
-
"watch": "tamagui-build --
|
|
33
|
+
"build": "tamagui-build",
|
|
34
|
+
"watch": "tamagui-build --watch",
|
|
35
35
|
"clean": "tamagui-build clean",
|
|
36
36
|
"clean:build": "tamagui-build clean:build"
|
|
37
37
|
},
|
|
38
38
|
"dependencies": {
|
|
39
|
-
"@tamagui/compose-refs": "
|
|
39
|
+
"@tamagui/compose-refs": "3.0.0-beta.637.1"
|
|
40
40
|
},
|
|
41
41
|
"devDependencies": {
|
|
42
|
-
"@tamagui/build": "
|
|
42
|
+
"@tamagui/build": "3.0.0-beta.637.1"
|
|
43
43
|
},
|
|
44
44
|
"peerDependencies": {
|
|
45
45
|
"react": "*"
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { TamaguiElement } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* Narrows a TamaguiElement to an HTMLElement, with optional generic for further casting.
|
|
4
|
+
* Throws if the element is not an instanceof HTMLElement.
|
|
5
|
+
*
|
|
6
|
+
* @example
|
|
7
|
+
* ```tsx
|
|
8
|
+
* const el = getWebElement(ref.current) // HTMLElement
|
|
9
|
+
* const input = getWebElement<HTMLInputElement>(ref.current) // HTMLInputElement
|
|
10
|
+
* ```
|
|
11
|
+
*/
|
|
12
|
+
export declare function getWebElement<T extends HTMLElement = HTMLElement>(element: TamaguiElement | null | undefined): T;
|
|
13
|
+
//# sourceMappingURL=getWebElement.d.ts.map
|
package/types/index.d.ts
ADDED
package/types/types.d.ts
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { View } from 'react-native';
|
|
2
|
+
type MeasureOnSuccessCallback = (x: number, y: number, width: number, height: number, pageX: number, pageY: number) => void;
|
|
3
|
+
type MeasureInWindowOnSuccessCallback = (x: number, y: number, width: number, height: number) => void;
|
|
4
|
+
type MeasureLayoutOnSuccessCallback = (left: number, top: number, width: number, height: number) => void;
|
|
5
|
+
/**
|
|
6
|
+
* Methods added to element refs that work across web and native.
|
|
7
|
+
* On web these are added at runtime to HTMLElements.
|
|
8
|
+
* On native these exist on View already.
|
|
9
|
+
*/
|
|
10
|
+
export interface TamaguiElementMethods {
|
|
11
|
+
measure(callback: MeasureOnSuccessCallback): void;
|
|
12
|
+
measureInWindow(callback: MeasureInWindowOnSuccessCallback): void;
|
|
13
|
+
measureLayout(relativeToNativeNode: View | HTMLElement, onSuccess: MeasureLayoutOnSuccessCallback, onFail?: () => void): void;
|
|
14
|
+
focus(): void;
|
|
15
|
+
blur(): void;
|
|
16
|
+
}
|
|
17
|
+
export type TamaguiElement = (HTMLElement & TamaguiElementMethods) | View;
|
|
18
|
+
/**
|
|
19
|
+
* Web-specific element type that extends HTMLElement with Tamagui methods.
|
|
20
|
+
* Use this when you need an HTMLElement ref in web-only code.
|
|
21
|
+
*/
|
|
22
|
+
export type TamaguiWebElement<T extends HTMLElement = HTMLElement> = T & TamaguiElementMethods;
|
|
23
|
+
/**
|
|
24
|
+
* Native-specific element type (View).
|
|
25
|
+
* Use this when you need a View ref in native-only code.
|
|
26
|
+
*/
|
|
27
|
+
export type TamaguiNativeElement = View;
|
|
28
|
+
export {};
|
|
29
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import type { TextInput } from 'react-native';
|
|
3
|
+
/**
|
|
4
|
+
* Creates a ref for native-only code that properly types to View.
|
|
5
|
+
* Returns both ref and composedRef for component usage.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```tsx
|
|
9
|
+
* const { ref, composedRef } = useNativeRef(forwardedRef)
|
|
10
|
+
* // ref.current is typed as View
|
|
11
|
+
* ```
|
|
12
|
+
*/
|
|
13
|
+
export declare function useNativeRef(forwardedRef?: React.ForwardedRef<any>): {
|
|
14
|
+
ref: React.RefObject<import("react-native").View | null>;
|
|
15
|
+
composedRef: (node: import("react-native").View | null) => void;
|
|
16
|
+
};
|
|
17
|
+
/**
|
|
18
|
+
* Creates a ref for native TextInput components.
|
|
19
|
+
* Returns both ref and composedRef for component usage.
|
|
20
|
+
*
|
|
21
|
+
* @example
|
|
22
|
+
* ```tsx
|
|
23
|
+
* const { ref, composedRef } = useNativeInputRef(forwardedRef)
|
|
24
|
+
* // ref.current is typed as TextInput
|
|
25
|
+
* ```
|
|
26
|
+
*/
|
|
27
|
+
export declare function useNativeInputRef(forwardedRef?: React.ForwardedRef<any>): {
|
|
28
|
+
ref: React.RefObject<TextInput | null>;
|
|
29
|
+
composedRef: (node: TextInput | null) => void;
|
|
30
|
+
};
|
|
31
|
+
//# sourceMappingURL=useNativeRef.d.ts.map
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import type { TamaguiElement } from './types';
|
|
3
|
+
/**
|
|
4
|
+
* Creates a ref for web-only code that properly types to HTMLElement.
|
|
5
|
+
* Useful when you need to access HTMLElement-specific properties (like selectionStart)
|
|
6
|
+
* that aren't available on the cross-platform TamaguiElement type.
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```tsx
|
|
10
|
+
* const { ref, composedRef } = useWebRef<HTMLInputElement>(forwardedRef)
|
|
11
|
+
* // ref.current is typed as HTMLInputElement
|
|
12
|
+
* // composedRef is for passing to components
|
|
13
|
+
* ```
|
|
14
|
+
*/
|
|
15
|
+
export declare function useWebRef<T extends TamaguiElement | HTMLElement>(forwardedRef?: React.ForwardedRef<any>): {
|
|
16
|
+
ref: React.RefObject<T | null>;
|
|
17
|
+
composedRef: (node: T | null) => void;
|
|
18
|
+
};
|
|
19
|
+
//# sourceMappingURL=useWebRef.d.ts.map
|
package/dist/esm/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"AAAA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc","ignoreList":[]}
|
package/dist/esm/index.mjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"AAAA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc","ignoreList":[]}
|
package/dist/esm/types.mjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":[],"sourcesContent":[],"mappings":"","ignoreList":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":[],"sourcesContent":[],"mappings":"","ignoreList":[]}
|