@tamagui/web 2.4.1 → 2.4.2
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/.turbo/turbo-build.log +1 -1
- package/dist/cjs/helpers/wrapStyleTags.cjs +35 -11
- package/dist/cjs/helpers/wrapStyleTags.native.js.map +1 -1
- package/dist/esm/helpers/wrapStyleTags.mjs +35 -11
- package/dist/esm/helpers/wrapStyleTags.mjs.map +1 -1
- package/package.json +13 -13
- package/src/helpers/wrapStyleTags.tsx +63 -20
- package/types/helpers/wrapStyleTags.d.ts.map +1 -1
package/.turbo/turbo-build.log
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
$ tamagui-build
|
|
2
|
-
built @tamagui/web in
|
|
2
|
+
built @tamagui/web in 2178 ms
|
|
@@ -27,16 +27,40 @@ __export(wrapStyleTags_exports, {
|
|
|
27
27
|
module.exports = __toCommonJS(wrapStyleTags_exports);
|
|
28
28
|
var import_helpers = require("@tamagui/helpers");
|
|
29
29
|
var import_jsx_runtime = require("react/jsx-runtime");
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
30
|
+
const styleTagCache = /* @__PURE__ */new Map();
|
|
31
|
+
let clearStyleTagCacheQueued = false;
|
|
32
|
+
function queueStyleTagCacheClear() {
|
|
33
|
+
if (clearStyleTagCacheQueued) return;
|
|
34
|
+
clearStyleTagCacheQueued = true;
|
|
35
|
+
queueMicrotask(() => {
|
|
36
|
+
styleTagCache.clear();
|
|
37
|
+
clearStyleTagCacheQueued = false;
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
function getCachedStyleTag(styleObject) {
|
|
41
|
+
const identifier = styleObject[import_helpers.StyleObjectIdentifier];
|
|
42
|
+
const rules = styleObject[import_helpers.StyleObjectRules];
|
|
43
|
+
const cached = styleTagCache.get(identifier);
|
|
44
|
+
if (cached && cached.len === rules.length && cached.first === rules[0] && cached.last === rules[rules.length - 1]) return cached.element;
|
|
45
|
+
const element = /* @__PURE__ */(0, import_jsx_runtime.jsx)("style", {
|
|
46
|
+
href: `t_${identifier}`,
|
|
47
|
+
precedence: "default",
|
|
48
|
+
suppressHydrationWarning: true,
|
|
49
|
+
children: rules.join("\n")
|
|
50
|
+
}, identifier);
|
|
51
|
+
styleTagCache.set(identifier, {
|
|
52
|
+
element,
|
|
53
|
+
len: rules.length,
|
|
54
|
+
first: rules[0],
|
|
55
|
+
last: rules[rules.length - 1]
|
|
41
56
|
});
|
|
57
|
+
return element;
|
|
58
|
+
}
|
|
59
|
+
function getStyleTags(styles) {
|
|
60
|
+
if (styles.length) {
|
|
61
|
+
queueStyleTagCacheClear();
|
|
62
|
+
return /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_jsx_runtime.Fragment, {
|
|
63
|
+
children: styles.map(getCachedStyleTag)
|
|
64
|
+
});
|
|
65
|
+
}
|
|
42
66
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["to","__toCommonJS","mod","__copyProps","__defProp","value","wrapStyleTags_exports","__export","getStyleTags","module","exports","require","styles"],"sources":["../../../src/helpers/wrapStyleTags.tsx"],"sourcesContent":[null],"mappings":";;;;;;;;;;;;;;;;;;EAAA;EAAA,OAAAA,EAAA;AAAA;AAAA,IAAAC,YAAA,GAAAC,GAAA,IAAAC,WAAA,CAAAC,SAAA;EAAAC,KAAA;AAAA,IAAAH,GAAA;AAAA,IAAAI,qBAAA;
|
|
1
|
+
{"version":3,"names":["to","__toCommonJS","mod","__copyProps","__defProp","value","wrapStyleTags_exports","__export","getStyleTags","module","exports","require","styles"],"sources":["../../../src/helpers/wrapStyleTags.tsx"],"sourcesContent":[null],"mappings":";;;;;;;;;;;;;;;;;;EAAA;EAAA,OAAAA,EAAA;AAAA;AAAA,IAAAC,YAAA,GAAAC,GAAA,IAAAC,WAAA,CAAAC,SAAA;EAAAC,KAAA;AAAA,IAAAH,GAAA;AAAA,IAAAI,qBAAA;AACAC,QAAA,CAAAD,qBAAwD;EAAAE,YAAA,EAAAA,CAAA,KAAAA;AAAA;AA0CpDC,MAAA,CAAAC,OAAA,GAAAT,YAAA,CAAAK,qBAAA;AArCJK,OAAM,oBAAgB;AAUtBA,OAAI;AAEJ,SAASH,aAAAI,MAAA","ignoreList":[]}
|
|
@@ -1,17 +1,41 @@
|
|
|
1
1
|
import { StyleObjectIdentifier, StyleObjectRules } from "@tamagui/helpers";
|
|
2
2
|
import { Fragment, jsx } from "react/jsx-runtime";
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
3
|
+
const styleTagCache = /* @__PURE__ */new Map();
|
|
4
|
+
let clearStyleTagCacheQueued = false;
|
|
5
|
+
function queueStyleTagCacheClear() {
|
|
6
|
+
if (clearStyleTagCacheQueued) return;
|
|
7
|
+
clearStyleTagCacheQueued = true;
|
|
8
|
+
queueMicrotask(() => {
|
|
9
|
+
styleTagCache.clear();
|
|
10
|
+
clearStyleTagCacheQueued = false;
|
|
11
|
+
});
|
|
12
|
+
}
|
|
13
|
+
function getCachedStyleTag(styleObject) {
|
|
14
|
+
const identifier = styleObject[StyleObjectIdentifier];
|
|
15
|
+
const rules = styleObject[StyleObjectRules];
|
|
16
|
+
const cached = styleTagCache.get(identifier);
|
|
17
|
+
if (cached && cached.len === rules.length && cached.first === rules[0] && cached.last === rules[rules.length - 1]) return cached.element;
|
|
18
|
+
const element = /* @__PURE__ */jsx("style", {
|
|
19
|
+
href: `t_${identifier}`,
|
|
20
|
+
precedence: "default",
|
|
21
|
+
suppressHydrationWarning: true,
|
|
22
|
+
children: rules.join("\n")
|
|
23
|
+
}, identifier);
|
|
24
|
+
styleTagCache.set(identifier, {
|
|
25
|
+
element,
|
|
26
|
+
len: rules.length,
|
|
27
|
+
first: rules[0],
|
|
28
|
+
last: rules[rules.length - 1]
|
|
14
29
|
});
|
|
30
|
+
return element;
|
|
31
|
+
}
|
|
32
|
+
function getStyleTags(styles) {
|
|
33
|
+
if (styles.length) {
|
|
34
|
+
queueStyleTagCacheClear();
|
|
35
|
+
return /* @__PURE__ */jsx(Fragment, {
|
|
36
|
+
children: styles.map(getCachedStyleTag)
|
|
37
|
+
});
|
|
38
|
+
}
|
|
15
39
|
}
|
|
16
40
|
export { getStyleTags };
|
|
17
41
|
//# sourceMappingURL=wrapStyleTags.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["StyleObjectIdentifier","StyleObjectRules","Fragment","jsx","
|
|
1
|
+
{"version":3,"names":["StyleObjectIdentifier","StyleObjectRules","Fragment","jsx","styleTagCache","Map","clearStyleTagCacheQueued","queueStyleTagCacheClear","queueMicrotask","clear","getCachedStyleTag","styleObject","identifier","rules","cached","get","len","length","first","last","element","href","precedence","suppressHydrationWarning","children","join","set","getStyleTags","styles","map"],"sources":["wrapStyleTags.mjs"],"sourcesContent":["import { StyleObjectIdentifier, StyleObjectRules } from \"@tamagui/helpers\";\nimport { Fragment, jsx } from \"react/jsx-runtime\";\n\nconst styleTagCache = /* @__PURE__ */ new Map();\nlet clearStyleTagCacheQueued = false;\nfunction queueStyleTagCacheClear() {\n\tif (clearStyleTagCacheQueued) return;\n\tclearStyleTagCacheQueued = true;\n\tqueueMicrotask(() => {\n\t\tstyleTagCache.clear();\n\t\tclearStyleTagCacheQueued = false;\n\t});\n}\nfunction getCachedStyleTag(styleObject) {\n\tconst identifier = styleObject[StyleObjectIdentifier];\n\tconst rules = styleObject[StyleObjectRules];\n\tconst cached = styleTagCache.get(identifier);\n\tif (cached && cached.len === rules.length && cached.first === rules[0] && cached.last === rules[rules.length - 1]) return cached.element;\n\tconst element = /* @__PURE__ */ jsx(\"style\", {\n\t\thref: `t_${identifier}`,\n\t\tprecedence: \"default\",\n\t\tsuppressHydrationWarning: true,\n\t\tchildren: rules.join(\"\\n\")\n\t}, identifier);\n\tstyleTagCache.set(identifier, {\n\t\telement,\n\t\tlen: rules.length,\n\t\tfirst: rules[0],\n\t\tlast: rules[rules.length - 1]\n\t});\n\treturn element;\n}\nfunction getStyleTags(styles) {\n\tif (styles.length) {\n\t\tqueueStyleTagCacheClear();\n\t\treturn /* @__PURE__ */ jsx(Fragment, { children: styles.map(getCachedStyleTag) });\n\t}\n}\n\nexport { getStyleTags };"],"mappings":"AAAA,SAASA,qBAAqB,EAAEC,gBAAgB,QAAQ,kBAAkB;AAC1E,SAASC,QAAQ,EAAEC,GAAG,QAAQ,mBAAmB;AAEjD,MAAMC,aAAa,GAAG,eAAgB,IAAIC,GAAG,CAAC,CAAC;AAC/C,IAAIC,wBAAwB,GAAG,KAAK;AACpC,SAASC,uBAAuBA,CAAA,EAAG;EAClC,IAAID,wBAAwB,EAAE;EAC9BA,wBAAwB,GAAG,IAAI;EAC/BE,cAAc,CAAC,MAAM;IACpBJ,aAAa,CAACK,KAAK,CAAC,CAAC;IACrBH,wBAAwB,GAAG,KAAK;EACjC,CAAC,CAAC;AACH;AACA,SAASI,iBAAiBA,CAACC,WAAW,EAAE;EACvC,MAAMC,UAAU,GAAGD,WAAW,CAACX,qBAAqB,CAAC;EACrD,MAAMa,KAAK,GAAGF,WAAW,CAACV,gBAAgB,CAAC;EAC3C,MAAMa,MAAM,GAAGV,aAAa,CAACW,GAAG,CAACH,UAAU,CAAC;EAC5C,IAAIE,MAAM,IAAIA,MAAM,CAACE,GAAG,KAAKH,KAAK,CAACI,MAAM,IAAIH,MAAM,CAACI,KAAK,KAAKL,KAAK,CAAC,CAAC,CAAC,IAAIC,MAAM,CAACK,IAAI,KAAKN,KAAK,CAACA,KAAK,CAACI,MAAM,GAAG,CAAC,CAAC,EAAE,OAAOH,MAAM,CAACM,OAAO;EACxI,MAAMA,OAAO,GAAG,eAAgBjB,GAAG,CAAC,OAAO,EAAE;IAC5CkB,IAAI,EAAE,KAAKT,UAAU,EAAE;IACvBU,UAAU,EAAE,SAAS;IACrBC,wBAAwB,EAAE,IAAI;IAC9BC,QAAQ,EAAEX,KAAK,CAACY,IAAI,CAAC,IAAI;EAC1B,CAAC,EAAEb,UAAU,CAAC;EACdR,aAAa,CAACsB,GAAG,CAACd,UAAU,EAAE;IAC7BQ,OAAO;IACPJ,GAAG,EAAEH,KAAK,CAACI,MAAM;IACjBC,KAAK,EAAEL,KAAK,CAAC,CAAC,CAAC;IACfM,IAAI,EAAEN,KAAK,CAACA,KAAK,CAACI,MAAM,GAAG,CAAC;EAC7B,CAAC,CAAC;EACF,OAAOG,OAAO;AACf;AACA,SAASO,YAAYA,CAACC,MAAM,EAAE;EAC7B,IAAIA,MAAM,CAACX,MAAM,EAAE;IAClBV,uBAAuB,CAAC,CAAC;IACzB,OAAO,eAAgBJ,GAAG,CAACD,QAAQ,EAAE;MAAEsB,QAAQ,EAAEI,MAAM,CAACC,GAAG,CAACnB,iBAAiB;IAAE,CAAC,CAAC;EAClF;AACD;AAEA,SAASiB,YAAY","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tamagui/web",
|
|
3
|
-
"version": "2.4.
|
|
3
|
+
"version": "2.4.2",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Nate Wienert"
|
|
@@ -51,20 +51,20 @@
|
|
|
51
51
|
"test:web": "vitest --typecheck --run"
|
|
52
52
|
},
|
|
53
53
|
"dependencies": {
|
|
54
|
-
"@tamagui/compose-refs": "2.4.
|
|
55
|
-
"@tamagui/constants": "2.4.
|
|
56
|
-
"@tamagui/helpers": "2.4.
|
|
57
|
-
"@tamagui/is-equal-shallow": "2.4.
|
|
58
|
-
"@tamagui/native": "2.4.
|
|
59
|
-
"@tamagui/normalize-css-color": "2.4.
|
|
60
|
-
"@tamagui/timer": "2.4.
|
|
61
|
-
"@tamagui/types": "2.4.
|
|
62
|
-
"@tamagui/use-did-finish-ssr": "2.4.
|
|
63
|
-
"@tamagui/use-event": "2.4.
|
|
64
|
-
"@tamagui/use-force-update": "2.4.
|
|
54
|
+
"@tamagui/compose-refs": "2.4.2",
|
|
55
|
+
"@tamagui/constants": "2.4.2",
|
|
56
|
+
"@tamagui/helpers": "2.4.2",
|
|
57
|
+
"@tamagui/is-equal-shallow": "2.4.2",
|
|
58
|
+
"@tamagui/native": "2.4.2",
|
|
59
|
+
"@tamagui/normalize-css-color": "2.4.2",
|
|
60
|
+
"@tamagui/timer": "2.4.2",
|
|
61
|
+
"@tamagui/types": "2.4.2",
|
|
62
|
+
"@tamagui/use-did-finish-ssr": "2.4.2",
|
|
63
|
+
"@tamagui/use-event": "2.4.2",
|
|
64
|
+
"@tamagui/use-force-update": "2.4.2"
|
|
65
65
|
},
|
|
66
66
|
"devDependencies": {
|
|
67
|
-
"@tamagui/build": "2.4.
|
|
67
|
+
"@tamagui/build": "2.4.2",
|
|
68
68
|
"@testing-library/react": "^16.1.0",
|
|
69
69
|
"csstype": "^3.0.10",
|
|
70
70
|
"react": ">=19",
|
|
@@ -1,31 +1,74 @@
|
|
|
1
|
+
import type { ReactNode } from 'react'
|
|
1
2
|
import { StyleObjectIdentifier, StyleObjectRules } from '@tamagui/helpers'
|
|
2
3
|
import type { StyleObject } from '../types'
|
|
3
4
|
|
|
4
5
|
// turns out this is pretty slow, creating a bunch of extra tags...
|
|
5
6
|
|
|
7
|
+
const styleTagCache = new Map<
|
|
8
|
+
string,
|
|
9
|
+
{
|
|
10
|
+
element: ReactNode
|
|
11
|
+
len: number
|
|
12
|
+
first: string | undefined
|
|
13
|
+
last: string | undefined
|
|
14
|
+
}
|
|
15
|
+
>()
|
|
16
|
+
|
|
17
|
+
let clearStyleTagCacheQueued = false
|
|
18
|
+
|
|
19
|
+
function queueStyleTagCacheClear() {
|
|
20
|
+
if (clearStyleTagCacheQueued) return
|
|
21
|
+
|
|
22
|
+
clearStyleTagCacheQueued = true
|
|
23
|
+
queueMicrotask(() => {
|
|
24
|
+
styleTagCache.clear()
|
|
25
|
+
clearStyleTagCacheQueued = false
|
|
26
|
+
})
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
function getCachedStyleTag(styleObject: StyleObject) {
|
|
30
|
+
const identifier = styleObject[StyleObjectIdentifier]
|
|
31
|
+
const rules = styleObject[StyleObjectRules]
|
|
32
|
+
const cached = styleTagCache.get(identifier)
|
|
33
|
+
|
|
34
|
+
if (
|
|
35
|
+
cached &&
|
|
36
|
+
cached.len === rules.length &&
|
|
37
|
+
cached.first === rules[0] &&
|
|
38
|
+
cached.last === rules[rules.length - 1]
|
|
39
|
+
) {
|
|
40
|
+
return cached.element
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
const element = (
|
|
44
|
+
<style
|
|
45
|
+
key={identifier}
|
|
46
|
+
// @ts-ignore
|
|
47
|
+
href={`t_${identifier}`}
|
|
48
|
+
// @ts-ignore
|
|
49
|
+
precedence="default"
|
|
50
|
+
// we remove after first render in favor of inserting to a global stylesheet (faster)
|
|
51
|
+
suppressHydrationWarning
|
|
52
|
+
>
|
|
53
|
+
{rules.join('\n')}
|
|
54
|
+
</style>
|
|
55
|
+
)
|
|
56
|
+
|
|
57
|
+
styleTagCache.set(identifier, {
|
|
58
|
+
element,
|
|
59
|
+
len: rules.length,
|
|
60
|
+
first: rules[0],
|
|
61
|
+
last: rules[rules.length - 1],
|
|
62
|
+
})
|
|
63
|
+
|
|
64
|
+
return element
|
|
65
|
+
}
|
|
66
|
+
|
|
6
67
|
export function getStyleTags(styles: StyleObject[]) {
|
|
7
68
|
if (process.env.TAMAGUI_TARGET !== 'native') {
|
|
8
69
|
if (styles.length) {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
{styles.map((styleObject) => {
|
|
12
|
-
const identifier = styleObject[StyleObjectIdentifier]
|
|
13
|
-
return (
|
|
14
|
-
<style
|
|
15
|
-
key={identifier}
|
|
16
|
-
// @ts-ignore
|
|
17
|
-
href={`t_${identifier}`}
|
|
18
|
-
// @ts-ignore
|
|
19
|
-
precedence="default"
|
|
20
|
-
// we remove after first render in favor of inserting to a global stylesheet (faster)
|
|
21
|
-
suppressHydrationWarning
|
|
22
|
-
>
|
|
23
|
-
{styleObject[StyleObjectRules].join('\n')}
|
|
24
|
-
</style>
|
|
25
|
-
)
|
|
26
|
-
})}
|
|
27
|
-
</>
|
|
28
|
-
)
|
|
70
|
+
queueStyleTagCacheClear()
|
|
71
|
+
return <>{styles.map(getCachedStyleTag)}</>
|
|
29
72
|
}
|
|
30
73
|
}
|
|
31
74
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wrapStyleTags.d.ts","sourceRoot":"","sources":["../../src/helpers/wrapStyleTags.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"wrapStyleTags.d.ts","sourceRoot":"","sources":["../../src/helpers/wrapStyleTags.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAgE3C,wBAAgB,YAAY,CAAC,MAAM,EAAE,WAAW,EAAE,uDAOjD"}
|