@tamagui/web 3.0.5 → 3.0.6

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.
Files changed (33) hide show
  1. package/dist/cjs/_withNativeStyle.cjs +37 -20
  2. package/dist/cjs/_withNativeStyle.native.cjs +37 -20
  3. package/dist/cjs/_withNativeStyle.native.js +37 -20
  4. package/dist/cjs/_withNativeStyle.native.js.map +1 -1
  5. package/dist/cjs/helpers/getSplitStyles.cjs +2 -1
  6. package/dist/cjs/helpers/getSplitStyles.native.cjs +2 -1
  7. package/dist/cjs/helpers/getSplitStyles.native.js +2 -1
  8. package/dist/cjs/helpers/getSplitStyles.native.js.map +1 -1
  9. package/dist/cjs/helpers/nativeStyleEngine.cjs +67 -121
  10. package/dist/cjs/helpers/nativeStyleEngine.native.cjs +66 -161
  11. package/dist/cjs/helpers/nativeStyleEngine.native.js +66 -161
  12. package/dist/cjs/helpers/nativeStyleEngine.native.js.map +1 -1
  13. package/dist/esm/_withNativeStyle.mjs +38 -21
  14. package/dist/esm/_withNativeStyle.mjs.map +1 -1
  15. package/dist/esm/_withNativeStyle.native.js +38 -21
  16. package/dist/esm/_withNativeStyle.native.js.map +1 -1
  17. package/dist/esm/helpers/getSplitStyles.mjs +2 -1
  18. package/dist/esm/helpers/getSplitStyles.mjs.map +1 -1
  19. package/dist/esm/helpers/getSplitStyles.native.js +2 -1
  20. package/dist/esm/helpers/getSplitStyles.native.js.map +1 -1
  21. package/dist/esm/helpers/nativeStyleEngine.mjs +66 -121
  22. package/dist/esm/helpers/nativeStyleEngine.mjs.map +1 -1
  23. package/dist/esm/helpers/nativeStyleEngine.native.js +65 -161
  24. package/dist/esm/helpers/nativeStyleEngine.native.js.map +1 -1
  25. package/package.json +17 -17
  26. package/src/_withNativeStyle.tsx +67 -31
  27. package/src/helpers/getSplitStyles.tsx +3 -0
  28. package/src/helpers/nativeStyleEngine.ts +95 -162
  29. package/types/_withNativeStyle.d.ts +4 -3
  30. package/types/_withNativeStyle.d.ts.map +1 -1
  31. package/types/helpers/getSplitStyles.d.ts.map +1 -1
  32. package/types/helpers/nativeStyleEngine.d.ts +19 -6
  33. package/types/helpers/nativeStyleEngine.d.ts.map +1 -1
@@ -22,10 +22,11 @@ var __copyProps = (to, from, except, desc) => {
22
22
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
23
23
  var nativeStyleEngine_exports = {};
24
24
  __export(nativeStyleEngine_exports, {
25
+ createNativeStyleLinkState: () => createNativeStyleLinkState,
25
26
  flushNativeStyleLinks: () => flushNativeStyleLinks,
26
27
  getNativeStyleEngine: () => getNativeStyleEngine,
27
28
  getNativeStyleEngineCacheStats: () => getNativeStyleEngineCacheStats,
28
- linkNativeStyleMapping: () => linkNativeStyleMapping,
29
+ linkNativeStyleHost: () => linkNativeStyleHost,
29
30
  nativeTextInputColorProps: () => nativeTextInputColorProps,
30
31
  normalizeNativeStyle: () => normalizeNativeStyle,
31
32
  queueNativeViewState: () => queueNativeViewState,
@@ -177,11 +178,10 @@ function syncTableState(compiled, stateName, theme) {
177
178
  }
178
179
  function setNativeStyleEngine(next) {
179
180
  if (engine !== next) {
180
- settleReleases();
181
181
  compiledMappings.clear();
182
182
  scopeMappings.clear();
183
- pendingLinks = [];
184
- unlinkedPending = 0;
183
+ pendingHosts = [];
184
+ pendingStates = [];
185
185
  }
186
186
  engine = next;
187
187
  if (next) {
@@ -223,7 +223,7 @@ function updateNativeStyleScope(scopeId, stateName, theme) {
223
223
  if (linked) {
224
224
  var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;
225
225
  try {
226
- for (var _iterator = linked.keys()[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
226
+ for (var _iterator = linked[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
227
227
  var compiled = _step.value;
228
228
  syncTableState(compiled, stateName, theme);
229
229
  }
@@ -247,179 +247,84 @@ function updateNativeStyleScope(scopeId, stateName, theme) {
247
247
  }
248
248
  function removeNativeStyleScope(scopeId) {
249
249
  if (!scopeStates.delete(scopeId)) return;
250
+ queueMicrotask(function() {
251
+ if (!scopeStates.has(scopeId)) scopeMappings.delete(scopeId);
252
+ });
250
253
  engine === null || engine === void 0 ? void 0 : engine.removeScope(scopeId);
251
254
  }
252
255
  function resolveNativeStyleMapping(mapping, stateName, theme) {
253
256
  return resolveCompiledMapping(getCompiledMapping(mapping), stateName, theme).renderProps;
254
257
  }
255
- var pendingLinks = [];
256
- var unlinkedPending = 0;
257
- function trackScopeMapping(link, delta) {
258
- var linked = scopeMappings.get(link.scopeId);
259
- if (!linked) scopeMappings.set(link.scopeId, linked = /* @__PURE__ */ new Map());
260
- var _linked_get;
261
- var count = ((_linked_get = linked.get(link.compiled)) !== null && _linked_get !== void 0 ? _linked_get : 0) + delta;
262
- if (count) {
263
- linked.set(link.compiled, count);
264
- } else {
265
- linked.delete(link.compiled);
266
- if (!linked.size) scopeMappings.delete(link.scopeId);
267
- }
258
+ function createNativeStyleLinkState(mapping, scopeId, stateName, theme) {
259
+ return {
260
+ mapping,
261
+ scopeId,
262
+ stateName,
263
+ theme
264
+ };
265
+ }
266
+ var pendingHosts = [];
267
+ var pendingStates = [];
268
+ var maxPendingHosts = 4096;
269
+ var idleFlushQueued = false;
270
+ function idleFlush() {
271
+ idleFlushQueued = false;
272
+ flushNativeStyleLinks();
273
+ }
274
+ function addScopeMapping(scopeId, compiled) {
275
+ var linked = scopeMappings.get(scopeId);
276
+ if (!linked) scopeMappings.set(scopeId, linked = /* @__PURE__ */ new Set());
277
+ linked.add(compiled);
268
278
  }
269
279
  function flushNativeStyleLinks() {
270
- settleReleases();
271
- if (!pendingLinks.length) return;
272
- var links = pendingLinks;
273
- pendingLinks = [];
274
- unlinkedPending = 0;
280
+ if (!pendingHosts.length) return;
281
+ var hosts = pendingHosts;
282
+ var states = pendingStates;
283
+ pendingHosts = [];
284
+ pendingStates = [];
275
285
  if (!engine) return;
276
- var live = links.filter(function(link2) {
277
- return link2.id === 0;
278
- });
279
- if (!live.length) return;
280
- var refs = [];
281
- var tableIds = [];
282
- var scopeIndexes = [];
286
+ var tableIds = new Array(hosts.length);
287
+ var scopeIndexes = new Array(hosts.length);
283
288
  var scopes = [];
284
- var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;
285
- try {
286
- for (var _iterator = live[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
287
- var link = _step.value;
288
- var scopeIndex = scopes.indexOf(link.scopeId);
289
- if (scopeIndex === -1) scopeIndex = scopes.push(link.scopeId) - 1;
290
- refs.push(link.ref);
291
- tableIds.push(link.compiled.tableId);
292
- scopeIndexes.push(scopeIndex);
289
+ var last;
290
+ var tableId = 0;
291
+ var scopeIndex = 0;
292
+ for (var i = 0; i < hosts.length; i++) {
293
+ var state = states[i];
294
+ if (state !== last) {
295
+ last = state;
296
+ var compiled = getCompiledMapping(state.mapping);
297
+ syncTableState(compiled, state.stateName, state.theme);
298
+ addScopeMapping(state.scopeId, compiled);
299
+ tableId = compiled.tableId;
300
+ scopeIndex = scopes.indexOf(state.scopeId);
301
+ if (scopeIndex === -1) scopeIndex = scopes.push(state.scopeId) - 1;
293
302
  }
294
- } catch (err) {
295
- _didIteratorError = true;
296
- _iteratorError = err;
297
- } finally {
298
- try {
299
- if (!_iteratorNormalCompletion && _iterator.return != null) {
300
- _iterator.return();
301
- }
302
- } finally {
303
- if (_didIteratorError) {
304
- throw _iteratorError;
305
- }
306
- }
307
- }
308
- var firstId = engine.linkTables(refs, tableIds, scopeIndexes, scopes);
309
- for (var i = 0; i < live.length; i++) {
310
- var link1 = live[i];
311
- link1.id = firstId + i;
312
- link1.owner = engine;
313
- link1.ref = null;
314
- trackScopeMapping(link1, 1);
303
+ tableIds[i] = tableId;
304
+ scopeIndexes[i] = scopeIndex;
315
305
  }
306
+ engine.linkTables(hosts, tableIds, scopeIndexes, scopes);
316
307
  }
317
- var releases = /* @__PURE__ */ new Map();
318
- var settleQueued = false;
319
- function settleReleases() {
320
- settleQueued = false;
321
- if (!releases.size) return;
322
- var settling = [...releases.values()];
323
- releases.clear();
324
- var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;
325
- try {
326
- for (var _iterator = settling[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
327
- var release = _step.value;
328
- release.settle();
329
- }
330
- } catch (err) {
331
- _didIteratorError = true;
332
- _iteratorError = err;
333
- } finally {
334
- try {
335
- if (!_iteratorNormalCompletion && _iterator.return != null) {
336
- _iterator.return();
337
- }
338
- } finally {
339
- if (_didIteratorError) {
340
- throw _iteratorError;
341
- }
342
- }
343
- }
344
- }
345
- function releasable(ref, compiled, scopeId, id, settle) {
346
- var handle = {
347
- id,
348
- unlink: function() {
349
- var prior = releases.get(ref);
350
- if (prior && prior.handle !== handle) prior.settle();
351
- releases.set(ref, {
352
- compiled,
353
- scopeId,
354
- handle,
355
- settle
356
- });
357
- if (!settleQueued) {
358
- settleQueued = true;
359
- queueMicrotask(settleReleases);
360
- }
361
- }
362
- };
363
- return handle;
364
- }
365
- function linkNativeStyleMapping(ref, mapping, scopeId, stateName, theme) {
366
- if (!engine) return null;
367
- var compiled = getCompiledMapping(mapping);
368
- var scopeState = scopeStates.get(scopeId);
369
- var stale = scopeState && (scopeState.name !== stateName || scopeState.theme !== theme);
370
- var kept = releases.get(ref);
371
- if (kept) {
372
- releases.delete(ref);
373
- if (!stale && kept.compiled === compiled && kept.scopeId === scopeId) return kept.handle;
374
- kept.settle();
308
+ function linkNativeStyleHost(host, state) {
309
+ if (!engine) return;
310
+ var live = scopeStates.get(state.scopeId);
311
+ if (live && (live.name !== state.stateName || live.theme !== state.theme)) {
312
+ var compiled = getCompiledMapping(state.mapping);
313
+ syncTableState(compiled, live.name, live.theme);
314
+ addScopeMapping(state.scopeId, compiled);
315
+ engine.link(host, compiled.tableId, state.scopeId, true);
316
+ return;
375
317
  }
376
- if (stale) {
377
- syncTableState(compiled, scopeState.name, scopeState.theme);
378
- var handle = engine.link(ref, compiled.tableId, scopeId, true);
379
- if (!handle) return null;
380
- var link = {
381
- ref: null,
382
- compiled,
383
- scopeId,
384
- id: handle.id,
385
- owner: engine
386
- };
387
- trackScopeMapping(link, 1);
388
- return releasable(ref, compiled, scopeId, handle.id, function() {
389
- if (link.id === -1) return;
390
- link.id = -1;
391
- if (link.owner === engine) trackScopeMapping(link, -1);
392
- handle.unlink();
393
- });
318
+ pendingHosts.push(host);
319
+ pendingStates.push(state);
320
+ if (pendingHosts.length >= maxPendingHosts && !idleFlushQueued) {
321
+ idleFlushQueued = true;
322
+ requestIdleCallback(idleFlush);
394
323
  }
395
- syncTableState(compiled, stateName, theme);
396
- var link1 = {
397
- ref,
398
- compiled,
399
- scopeId,
400
- id: 0,
401
- owner: null
402
- };
403
- pendingLinks.push(link1);
404
- return releasable(ref, compiled, scopeId, 0, function() {
405
- var id = link1.id;
406
- if (id === -1) return;
407
- link1.id = -1;
408
- link1.ref = null;
409
- if (id > 0) {
410
- if (link1.owner === engine) trackScopeMapping(link1, -1);
411
- link1.owner.unlink(id);
412
- } else if (++unlinkedPending > 512 && unlinkedPending * 2 > pendingLinks.length) {
413
- pendingLinks = pendingLinks.filter(function(pending2) {
414
- return pending2.id === 0;
415
- });
416
- unlinkedPending = 0;
417
- }
418
- });
419
324
  }
420
325
  var getNativeStyleEngineCacheStats = function() {
421
326
  var active = new Set([...scopeMappings.values()].flatMap(function(linked) {
422
- return [...linked.keys()];
327
+ return [...linked];
423
328
  }));
424
329
  return {
425
330
  mappings: compiledMappings.size,
@@ -1 +1 @@
1
- {"version":3,"file":"nativeStyleEngine.native.js","names":[],"sources":["cjs/helpers/nativeStyleEngine.native.js"],"sourcesContent":["\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar nativeStyleEngine_exports = {};\n__export(nativeStyleEngine_exports, {\n flushNativeStyleLinks: () => flushNativeStyleLinks,\n getNativeStyleEngine: () => getNativeStyleEngine,\n getNativeStyleEngineCacheStats: () => getNativeStyleEngineCacheStats,\n linkNativeStyleMapping: () => linkNativeStyleMapping,\n nativeTextInputColorProps: () => nativeTextInputColorProps,\n normalizeNativeStyle: () => normalizeNativeStyle,\n queueNativeViewState: () => queueNativeViewState,\n removeNativeStyleScope: () => removeNativeStyleScope,\n resolveNativeStyleMapping: () => resolveNativeStyleMapping,\n setNativeStyleEngine: () => setNativeStyleEngine,\n setNativeStyleEngineFlushListener: () => setNativeStyleEngineFlushListener,\n updateNativeStyleLink: () => updateNativeStyleLink,\n updateNativeStyleScope: () => updateNativeStyleScope\n});\nmodule.exports = __toCommonJS(nativeStyleEngine_exports);\nvar import_createVariable = require(\"../createVariable\");\nvar nativeTextInputColorProps = {\n placeholderTextColor: \"placeholderTextColor\",\n selectionColor: \"selectionColor\",\n cursorColor: \"cursorColor\",\n selectionHandleColor: \"selectionHandleColor\"\n};\nvar nativeOutlineProps = [\n \"outlineStyle\",\n \"outlineWidth\",\n \"outlineColor\",\n \"outlineOffset\"\n];\nvar nativeIntrinsicSizeProps = [\n \"width\",\n \"height\",\n \"minWidth\",\n \"minHeight\",\n \"maxWidth\",\n \"maxHeight\"\n];\nfunction normalizeNativeStyle(style) {\n var reset = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : false;\n var next;\n if (style.outlineStyle === \"none\") {\n next = {\n ...style\n };\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = nativeOutlineProps[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var key = _step.value;\n if (reset) {\n next[key] = null;\n } else {\n delete next[key];\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n }\n var _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = void 0;\n try {\n for (var _iterator1 = nativeIntrinsicSizeProps[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true) {\n var key1 = _step1.value;\n var value = style[key1];\n if (value === \"max-content\" || value === \"min-content\" || value === \"fit-content\") {\n next || (next = {\n ...style\n });\n if (reset) {\n next[key1] = null;\n } else {\n delete next[key1];\n }\n }\n }\n } catch (err) {\n _didIteratorError1 = true;\n _iteratorError1 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion1 && _iterator1.return != null) {\n _iterator1.return();\n }\n } finally {\n if (_didIteratorError1) {\n throw _iteratorError1;\n }\n }\n }\n return next !== null && next !== void 0 ? next : style;\n}\nvar engine = null;\nvar scopeStates = /* @__PURE__ */ new Map();\nvar mappingKeys = /* @__PURE__ */ new WeakMap();\nvar compiledMappings = /* @__PURE__ */ new Map();\nvar scopeMappings = /* @__PURE__ */ new Map();\nvar nextTableId = 1;\nfunction getCompiledMapping(mapping) {\n var key = mappingKeys.get(mapping);\n if (!key) {\n key = JSON.stringify(Object.keys(mapping).sort().map(function(styleKey) {\n return [\n styleKey,\n mapping[styleKey]\n ];\n }));\n mappingKeys.set(mapping, key);\n }\n var compiled = compiledMappings.get(key);\n if (!compiled) {\n compiled = {\n mapping,\n states: /* @__PURE__ */ new Map(),\n tableId: nextTableId++,\n sent: /* @__PURE__ */ new Map()\n };\n if (compiledMappings.size >= 1e4) {\n compiledMappings.clear();\n }\n compiledMappings.set(key, compiled);\n }\n return compiled;\n}\nfunction resolveCompiledMapping(compiled, stateName, theme) {\n var cached = compiled.states.get(stateName);\n if ((cached === null || cached === void 0 ? void 0 : cached.theme) === theme) return cached;\n var renderProps = {};\n for (var styleKey in compiled.mapping) {\n var value = theme[compiled.mapping[styleKey]];\n renderProps[styleKey] = value === void 0 ? null : (0, import_createVariable.getVariableValue)(value);\n }\n renderProps = normalizeNativeStyle(renderProps, true);\n var _engine_processStyleColors;\n var nativeProps = (_engine_processStyleColors = engine === null || engine === void 0 ? void 0 : engine.processStyleColors(renderProps)) !== null && _engine_processStyleColors !== void 0 ? _engine_processStyleColors : renderProps;\n if (compiled.states.size >= 1e4) {\n compiled.states.clear();\n }\n var resolved = {\n theme,\n renderProps,\n nativeProps\n };\n compiled.states.set(stateName, resolved);\n return resolved;\n}\nfunction syncTableState(compiled, stateName, theme) {\n var resolved = resolveCompiledMapping(compiled, stateName, theme);\n if (compiled.sent.get(stateName) === resolved) return;\n compiled.sent.set(stateName, resolved);\n engine.setTableState(compiled.tableId, stateName, resolved.nativeProps);\n}\nfunction setNativeStyleEngine(next) {\n if (engine !== next) {\n settleReleases();\n compiledMappings.clear();\n scopeMappings.clear();\n pendingLinks = [];\n unlinkedPending = 0;\n }\n engine = next;\n if (next) {\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = scopeStates[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var [scopeId, state] = _step.value;\n next.setStateName(state.name, scopeId);\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n }\n}\nfunction getNativeStyleEngine() {\n return engine;\n}\nfunction updateNativeStyleScope(scopeId, stateName, theme) {\n var previous = scopeStates.get(scopeId);\n if ((previous === null || previous === void 0 ? void 0 : previous.name) === stateName && previous.theme === theme) return;\n flushNativeStyleLinks();\n scopeStates.set(scopeId, {\n name: stateName,\n theme\n });\n if (engine) {\n var linked = scopeMappings.get(scopeId);\n if (linked) {\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = linked.keys()[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var compiled = _step.value;\n syncTableState(compiled, stateName, theme);\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n }\n }\n engine === null || engine === void 0 ? void 0 : engine.setStateName(stateName, scopeId);\n}\nfunction removeNativeStyleScope(scopeId) {\n if (!scopeStates.delete(scopeId)) return;\n engine === null || engine === void 0 ? void 0 : engine.removeScope(scopeId);\n}\nfunction resolveNativeStyleMapping(mapping, stateName, theme) {\n return resolveCompiledMapping(getCompiledMapping(mapping), stateName, theme).renderProps;\n}\nvar pendingLinks = [];\nvar unlinkedPending = 0;\nfunction trackScopeMapping(link, delta) {\n var linked = scopeMappings.get(link.scopeId);\n if (!linked) scopeMappings.set(link.scopeId, linked = /* @__PURE__ */ new Map());\n var _linked_get;\n var count = ((_linked_get = linked.get(link.compiled)) !== null && _linked_get !== void 0 ? _linked_get : 0) + delta;\n if (count) {\n linked.set(link.compiled, count);\n } else {\n linked.delete(link.compiled);\n if (!linked.size) scopeMappings.delete(link.scopeId);\n }\n}\nfunction flushNativeStyleLinks() {\n settleReleases();\n if (!pendingLinks.length) return;\n var links = pendingLinks;\n pendingLinks = [];\n unlinkedPending = 0;\n if (!engine) return;\n var live = links.filter(function(link2) {\n return link2.id === 0;\n });\n if (!live.length) return;\n var refs = [];\n var tableIds = [];\n var scopeIndexes = [];\n var scopes = [];\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = live[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var link = _step.value;\n var scopeIndex = scopes.indexOf(link.scopeId);\n if (scopeIndex === -1) scopeIndex = scopes.push(link.scopeId) - 1;\n refs.push(link.ref);\n tableIds.push(link.compiled.tableId);\n scopeIndexes.push(scopeIndex);\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n var firstId = engine.linkTables(refs, tableIds, scopeIndexes, scopes);\n for (var i = 0; i < live.length; i++) {\n var link1 = live[i];\n link1.id = firstId + i;\n link1.owner = engine;\n link1.ref = null;\n trackScopeMapping(link1, 1);\n }\n}\nvar releases = /* @__PURE__ */ new Map();\nvar settleQueued = false;\nfunction settleReleases() {\n settleQueued = false;\n if (!releases.size) return;\n var settling = [\n ...releases.values()\n ];\n releases.clear();\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = settling[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var release = _step.value;\n release.settle();\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n}\nfunction releasable(ref, compiled, scopeId, id, settle) {\n var handle = {\n id,\n unlink: function() {\n var prior = releases.get(ref);\n if (prior && prior.handle !== handle) prior.settle();\n releases.set(ref, {\n compiled,\n scopeId,\n handle,\n settle\n });\n if (!settleQueued) {\n settleQueued = true;\n queueMicrotask(settleReleases);\n }\n }\n };\n return handle;\n}\nfunction linkNativeStyleMapping(ref, mapping, scopeId, stateName, theme) {\n if (!engine) return null;\n var compiled = getCompiledMapping(mapping);\n var scopeState = scopeStates.get(scopeId);\n var stale = scopeState && (scopeState.name !== stateName || scopeState.theme !== theme);\n var kept = releases.get(ref);\n if (kept) {\n releases.delete(ref);\n if (!stale && kept.compiled === compiled && kept.scopeId === scopeId) return kept.handle;\n kept.settle();\n }\n if (stale) {\n syncTableState(compiled, scopeState.name, scopeState.theme);\n var handle = engine.link(ref, compiled.tableId, scopeId, true);\n if (!handle) return null;\n var link = {\n ref: null,\n compiled,\n scopeId,\n id: handle.id,\n owner: engine\n };\n trackScopeMapping(link, 1);\n return releasable(ref, compiled, scopeId, handle.id, function() {\n if (link.id === -1) return;\n link.id = -1;\n if (link.owner === engine) trackScopeMapping(link, -1);\n handle.unlink();\n });\n }\n syncTableState(compiled, stateName, theme);\n var link1 = {\n ref,\n compiled,\n scopeId,\n id: 0,\n owner: null\n };\n pendingLinks.push(link1);\n return releasable(ref, compiled, scopeId, 0, function() {\n var id = link1.id;\n if (id === -1) return;\n link1.id = -1;\n link1.ref = null;\n if (id > 0) {\n if (link1.owner === engine) trackScopeMapping(link1, -1);\n link1.owner.unlink(id);\n } else if (++unlinkedPending > 512 && unlinkedPending * 2 > pendingLinks.length) {\n pendingLinks = pendingLinks.filter(function(pending2) {\n return pending2.id === 0;\n });\n unlinkedPending = 0;\n }\n });\n}\nvar getNativeStyleEngineCacheStats = function() {\n var active = new Set([\n ...scopeMappings.values()\n ].flatMap(function(linked) {\n return [\n ...linked.keys()\n ];\n }));\n return {\n mappings: compiledMappings.size,\n activeMappings: active.size,\n states: [\n .../* @__PURE__ */ new Set([\n ...compiledMappings.values(),\n ...active\n ])\n ].reduce(function(total, compiled) {\n return total + compiled.states.size;\n }, 0)\n };\n};\nvar pending = null;\nvar flushListener = null;\nfunction setNativeStyleEngineFlushListener(cb) {\n flushListener = cb;\n}\nfunction updateNativeStyleLink(ref, host) {\n if (ref.nativeLink) {\n ref.nativeLink.unlink();\n ref.nativeLink = null;\n }\n ref.nativePushedKeys = void 0;\n if (host && engine && ref.nativeStyleUpdate) {\n ref.nativeLink = engine.link(host, {});\n }\n}\nfunction queueNativeViewState(entry) {\n if (!engine) return;\n if (!pending) {\n pending = [];\n queueMicrotask(function() {\n var entries = pending;\n pending = null;\n engine === null || engine === void 0 ? void 0 : engine.applyViewStates(entries);\n flushListener === null || flushListener === void 0 ? void 0 : flushListener(entries);\n });\n }\n pending.push(entry);\n}\n//# sourceMappingURL=nativeStyleEngine.js.map\n"],"mappings":"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"}
1
+ {"version":3,"file":"nativeStyleEngine.native.js","names":[],"sources":["cjs/helpers/nativeStyleEngine.native.js"],"sourcesContent":["\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar nativeStyleEngine_exports = {};\n__export(nativeStyleEngine_exports, {\n createNativeStyleLinkState: () => createNativeStyleLinkState,\n flushNativeStyleLinks: () => flushNativeStyleLinks,\n getNativeStyleEngine: () => getNativeStyleEngine,\n getNativeStyleEngineCacheStats: () => getNativeStyleEngineCacheStats,\n linkNativeStyleHost: () => linkNativeStyleHost,\n nativeTextInputColorProps: () => nativeTextInputColorProps,\n normalizeNativeStyle: () => normalizeNativeStyle,\n queueNativeViewState: () => queueNativeViewState,\n removeNativeStyleScope: () => removeNativeStyleScope,\n resolveNativeStyleMapping: () => resolveNativeStyleMapping,\n setNativeStyleEngine: () => setNativeStyleEngine,\n setNativeStyleEngineFlushListener: () => setNativeStyleEngineFlushListener,\n updateNativeStyleLink: () => updateNativeStyleLink,\n updateNativeStyleScope: () => updateNativeStyleScope\n});\nmodule.exports = __toCommonJS(nativeStyleEngine_exports);\nvar import_createVariable = require(\"../createVariable\");\nvar nativeTextInputColorProps = {\n placeholderTextColor: \"placeholderTextColor\",\n selectionColor: \"selectionColor\",\n cursorColor: \"cursorColor\",\n selectionHandleColor: \"selectionHandleColor\"\n};\nvar nativeOutlineProps = [\n \"outlineStyle\",\n \"outlineWidth\",\n \"outlineColor\",\n \"outlineOffset\"\n];\nvar nativeIntrinsicSizeProps = [\n \"width\",\n \"height\",\n \"minWidth\",\n \"minHeight\",\n \"maxWidth\",\n \"maxHeight\"\n];\nfunction normalizeNativeStyle(style) {\n var reset = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : false;\n var next;\n if (style.outlineStyle === \"none\") {\n next = {\n ...style\n };\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = nativeOutlineProps[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var key = _step.value;\n if (reset) {\n next[key] = null;\n } else {\n delete next[key];\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n }\n var _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = void 0;\n try {\n for (var _iterator1 = nativeIntrinsicSizeProps[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true) {\n var key1 = _step1.value;\n var value = style[key1];\n if (value === \"max-content\" || value === \"min-content\" || value === \"fit-content\") {\n next || (next = {\n ...style\n });\n if (reset) {\n next[key1] = null;\n } else {\n delete next[key1];\n }\n }\n }\n } catch (err) {\n _didIteratorError1 = true;\n _iteratorError1 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion1 && _iterator1.return != null) {\n _iterator1.return();\n }\n } finally {\n if (_didIteratorError1) {\n throw _iteratorError1;\n }\n }\n }\n return next !== null && next !== void 0 ? next : style;\n}\nvar engine = null;\nvar scopeStates = /* @__PURE__ */ new Map();\nvar mappingKeys = /* @__PURE__ */ new WeakMap();\nvar compiledMappings = /* @__PURE__ */ new Map();\nvar scopeMappings = /* @__PURE__ */ new Map();\nvar nextTableId = 1;\nfunction getCompiledMapping(mapping) {\n var key = mappingKeys.get(mapping);\n if (!key) {\n key = JSON.stringify(Object.keys(mapping).sort().map(function(styleKey) {\n return [\n styleKey,\n mapping[styleKey]\n ];\n }));\n mappingKeys.set(mapping, key);\n }\n var compiled = compiledMappings.get(key);\n if (!compiled) {\n compiled = {\n mapping,\n states: /* @__PURE__ */ new Map(),\n tableId: nextTableId++,\n sent: /* @__PURE__ */ new Map()\n };\n if (compiledMappings.size >= 1e4) {\n compiledMappings.clear();\n }\n compiledMappings.set(key, compiled);\n }\n return compiled;\n}\nfunction resolveCompiledMapping(compiled, stateName, theme) {\n var cached = compiled.states.get(stateName);\n if ((cached === null || cached === void 0 ? void 0 : cached.theme) === theme) return cached;\n var renderProps = {};\n for (var styleKey in compiled.mapping) {\n var value = theme[compiled.mapping[styleKey]];\n renderProps[styleKey] = value === void 0 ? null : (0, import_createVariable.getVariableValue)(value);\n }\n renderProps = normalizeNativeStyle(renderProps, true);\n var _engine_processStyleColors;\n var nativeProps = (_engine_processStyleColors = engine === null || engine === void 0 ? void 0 : engine.processStyleColors(renderProps)) !== null && _engine_processStyleColors !== void 0 ? _engine_processStyleColors : renderProps;\n if (compiled.states.size >= 1e4) {\n compiled.states.clear();\n }\n var resolved = {\n theme,\n renderProps,\n nativeProps\n };\n compiled.states.set(stateName, resolved);\n return resolved;\n}\nfunction syncTableState(compiled, stateName, theme) {\n var resolved = resolveCompiledMapping(compiled, stateName, theme);\n if (compiled.sent.get(stateName) === resolved) return;\n compiled.sent.set(stateName, resolved);\n engine.setTableState(compiled.tableId, stateName, resolved.nativeProps);\n}\nfunction setNativeStyleEngine(next) {\n if (engine !== next) {\n compiledMappings.clear();\n scopeMappings.clear();\n pendingHosts = [];\n pendingStates = [];\n }\n engine = next;\n if (next) {\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = scopeStates[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var [scopeId, state] = _step.value;\n next.setStateName(state.name, scopeId);\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n }\n}\nfunction getNativeStyleEngine() {\n return engine;\n}\nfunction updateNativeStyleScope(scopeId, stateName, theme) {\n var previous = scopeStates.get(scopeId);\n if ((previous === null || previous === void 0 ? void 0 : previous.name) === stateName && previous.theme === theme) return;\n flushNativeStyleLinks();\n scopeStates.set(scopeId, {\n name: stateName,\n theme\n });\n if (engine) {\n var linked = scopeMappings.get(scopeId);\n if (linked) {\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = linked[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var compiled = _step.value;\n syncTableState(compiled, stateName, theme);\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n }\n }\n engine === null || engine === void 0 ? void 0 : engine.setStateName(stateName, scopeId);\n}\nfunction removeNativeStyleScope(scopeId) {\n if (!scopeStates.delete(scopeId)) return;\n queueMicrotask(function() {\n if (!scopeStates.has(scopeId)) scopeMappings.delete(scopeId);\n });\n engine === null || engine === void 0 ? void 0 : engine.removeScope(scopeId);\n}\nfunction resolveNativeStyleMapping(mapping, stateName, theme) {\n return resolveCompiledMapping(getCompiledMapping(mapping), stateName, theme).renderProps;\n}\nfunction createNativeStyleLinkState(mapping, scopeId, stateName, theme) {\n return {\n mapping,\n scopeId,\n stateName,\n theme\n };\n}\nvar pendingHosts = [];\nvar pendingStates = [];\nvar maxPendingHosts = 4096;\nvar idleFlushQueued = false;\nfunction idleFlush() {\n idleFlushQueued = false;\n flushNativeStyleLinks();\n}\nfunction addScopeMapping(scopeId, compiled) {\n var linked = scopeMappings.get(scopeId);\n if (!linked) scopeMappings.set(scopeId, linked = /* @__PURE__ */ new Set());\n linked.add(compiled);\n}\nfunction flushNativeStyleLinks() {\n if (!pendingHosts.length) return;\n var hosts = pendingHosts;\n var states = pendingStates;\n pendingHosts = [];\n pendingStates = [];\n if (!engine) return;\n var tableIds = new Array(hosts.length);\n var scopeIndexes = new Array(hosts.length);\n var scopes = [];\n var last;\n var tableId = 0;\n var scopeIndex = 0;\n for (var i = 0; i < hosts.length; i++) {\n var state = states[i];\n if (state !== last) {\n last = state;\n var compiled = getCompiledMapping(state.mapping);\n syncTableState(compiled, state.stateName, state.theme);\n addScopeMapping(state.scopeId, compiled);\n tableId = compiled.tableId;\n scopeIndex = scopes.indexOf(state.scopeId);\n if (scopeIndex === -1) scopeIndex = scopes.push(state.scopeId) - 1;\n }\n tableIds[i] = tableId;\n scopeIndexes[i] = scopeIndex;\n }\n engine.linkTables(hosts, tableIds, scopeIndexes, scopes);\n}\nfunction linkNativeStyleHost(host, state) {\n if (!engine) return;\n var live = scopeStates.get(state.scopeId);\n if (live && (live.name !== state.stateName || live.theme !== state.theme)) {\n var compiled = getCompiledMapping(state.mapping);\n syncTableState(compiled, live.name, live.theme);\n addScopeMapping(state.scopeId, compiled);\n engine.link(host, compiled.tableId, state.scopeId, true);\n return;\n }\n pendingHosts.push(host);\n pendingStates.push(state);\n if (pendingHosts.length >= maxPendingHosts && !idleFlushQueued) {\n idleFlushQueued = true;\n requestIdleCallback(idleFlush);\n }\n}\nvar getNativeStyleEngineCacheStats = function() {\n var active = new Set([\n ...scopeMappings.values()\n ].flatMap(function(linked) {\n return [\n ...linked\n ];\n }));\n return {\n mappings: compiledMappings.size,\n activeMappings: active.size,\n states: [\n .../* @__PURE__ */ new Set([\n ...compiledMappings.values(),\n ...active\n ])\n ].reduce(function(total, compiled) {\n return total + compiled.states.size;\n }, 0)\n };\n};\nvar pending = null;\nvar flushListener = null;\nfunction setNativeStyleEngineFlushListener(cb) {\n flushListener = cb;\n}\nfunction updateNativeStyleLink(ref, host) {\n if (ref.nativeLink) {\n ref.nativeLink.unlink();\n ref.nativeLink = null;\n }\n ref.nativePushedKeys = void 0;\n if (host && engine && ref.nativeStyleUpdate) {\n ref.nativeLink = engine.link(host, {});\n }\n}\nfunction queueNativeViewState(entry) {\n if (!engine) return;\n if (!pending) {\n pending = [];\n queueMicrotask(function() {\n var entries = pending;\n pending = null;\n engine === null || engine === void 0 ? void 0 : engine.applyViewStates(entries);\n flushListener === null || flushListener === void 0 ? void 0 : flushListener(entries);\n });\n }\n pending.push(entry);\n}\n//# sourceMappingURL=nativeStyleEngine.js.map\n"],"mappings":"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"}
@@ -2,7 +2,7 @@ import { setRef } from "@tamagui/compose-refs";
2
2
  import { isAndroid, isIos } from "@tamagui/constants";
3
3
  import { use } from "react";
4
4
  import { _withStableStyle } from "./_withStableStyle.mjs";
5
- import { getNativeStyleEngine, linkNativeStyleMapping, resolveNativeStyleMapping } from "./helpers/nativeStyleEngine.mjs";
5
+ import { createNativeStyleLinkState, getNativeStyleEngine, linkNativeStyleHost, resolveNativeStyleMapping } from "./helpers/nativeStyleEngine.mjs";
6
6
  import { ThemeStateContext, getThemeState } from "./hooks/useThemeState.mjs";
7
7
  import { hooks } from "./setupHooks.mjs";
8
8
  import { jsx } from "react/jsx-runtime";
@@ -29,13 +29,26 @@ const _withNativeStyle = (Component, baseStyle, themeStyleKeys, host) => {
29
29
  ...baseStyle,
30
30
  ...typeof baseStyle.fontWeight === "number" && { fontWeight: String(baseStyle.fontWeight) }
31
31
  } : baseStyle;
32
- const styles = /* @__PURE__ */ new Map();
33
- const hostTextStyles = /* @__PURE__ */ new Map();
32
+ const entries = /* @__PURE__ */ new Map();
33
+ const createEntry = () => {
34
+ const entry = {
35
+ style: [baseStyle, null],
36
+ hostTextStyle: [hostTextBase, null],
37
+ stateName: "",
38
+ theme: null,
39
+ state: null,
40
+ ref: (node) => {
41
+ if (node) linkHost(node, entry.state);
42
+ }
43
+ };
44
+ return entry;
45
+ };
34
46
  const ScopeContext = ThemeStateContext;
35
47
  const engineOf = getNativeStyleEngine;
36
48
  const scopeState = getThemeState;
37
49
  const resolve = resolveNativeStyleMapping;
38
- const linkMapping = linkNativeStyleMapping;
50
+ const linkState = createNativeStyleLinkState;
51
+ const linkHost = linkNativeStyleHost;
39
52
  const assignRef = setRef;
40
53
  const render = (props, key) => {
41
54
  const scopeId = use(ScopeContext);
@@ -57,28 +70,32 @@ const _withNativeStyle = (Component, baseStyle, themeStyleKeys, host) => {
57
70
  const { name, theme } = themeState;
58
71
  const asHostText = HostText && !inText;
59
72
  const Rendered = asHostText ? HostText : Component;
60
- const cache = asHostText ? hostTextStyles : styles;
61
- let style = cache.get(scopeId);
62
- if (!style) {
63
- style = [asHostText ? hostTextBase : baseStyle, null];
64
- cache.set(scopeId, style);
73
+ let entry = entries.get(scopeId);
74
+ if (!entry) {
75
+ entry = createEntry();
76
+ entries.set(scopeId, entry);
65
77
  }
66
- style[1] = resolve(themeStyleKeys, name, theme);
78
+ if (entry.stateName !== name || entry.theme !== theme) {
79
+ const themed = resolve(themeStyleKeys, name, theme);
80
+ entry.style[1] = themed;
81
+ entry.hostTextStyle[1] = themed;
82
+ entry.stateName = name;
83
+ entry.theme = theme;
84
+ entry.state = linkState(themeStyleKeys, scopeId, name, theme);
85
+ }
86
+ const style = asHostText ? entry.hostTextStyle : entry.style;
67
87
  const wrapped = resetsText || asHostText && mayRenderText(rest.children);
88
+ const state = entry.state;
89
+ const hostRef = ref == null ? entry.ref : (node) => {
90
+ if (!node) return assignRef(ref, null);
91
+ linkHost(node, state);
92
+ if (typeof ref === "function") return ref(node);
93
+ assignRef(ref, node);
94
+ };
68
95
  const element = /* @__PURE__ */ jsx(Rendered, {
69
96
  ...asHostText && hostTextProps,
70
97
  ...rest,
71
- ref: (node) => {
72
- let refCleanup;
73
- if (typeof ref === "function") refCleanup = ref(node);
74
- else assignRef(ref, node);
75
- const link = linkMapping(node, themeStyleKeys, scopeId, name, theme);
76
- return () => {
77
- link?.unlink();
78
- if (typeof refCleanup === "function") refCleanup();
79
- else assignRef(ref, null);
80
- };
81
- },
98
+ ref: hostRef,
82
99
  style
83
100
  }, wrapped ? void 0 : key);
84
101
  if (!wrapped) return element;
@@ -1 +1 @@
1
- {"version":3,"file":"_withNativeStyle.js","names":[],"sources":["esm/_withNativeStyle.js"],"sourcesContent":["import { setRef } from \"@tamagui/compose-refs\";\nimport { isAndroid, isIos } from \"@tamagui/constants\";\nimport { use } from \"react\";\nimport { _withStableStyle } from \"./_withStableStyle\";\nimport {\n getNativeStyleEngine,\n linkNativeStyleMapping,\n resolveNativeStyleMapping\n} from \"./helpers/nativeStyleEngine\";\nimport { getThemeState, ThemeStateContext } from \"./hooks/useThemeState\";\nimport { hooks } from \"./setupHooks\";\nimport { jsx } from \"react/jsx-runtime\";\nconst hostTextProps = {\n accessible: isAndroid ? false : isIos ? true : void 0,\n allowFontScaling: true,\n ellipsizeMode: \"tail\"\n};\nconst _withNativeStyle = (Component, baseStyle, themeStyleKeys, host) => {\n const Fallback = _withStableStyle(\n Component,\n (theme) => {\n const themedStyle = {};\n for (const styleKey in themeStyleKeys) {\n themedStyle[styleKey] = theme[themeStyleKeys[styleKey]]?.get();\n }\n return [baseStyle, themedStyle];\n },\n true,\n false\n );\n const baseViews = host ? hooks.getBaseViews?.() : void 0;\n const TextAncestor = baseViews?.TextAncestor;\n const TextAncestorProvider = TextAncestor?.Provider;\n const HostText = host === \"text\" && !(\"userSelect\" in baseStyle) && !(\"verticalAlign\" in baseStyle) ? baseViews?.NativeText : void 0;\n const hostTextBase = HostText ? {\n overflow: \"hidden\",\n ...baseStyle,\n ...typeof baseStyle.fontWeight === \"number\" && {\n fontWeight: String(baseStyle.fontWeight)\n }\n } : baseStyle;\n const styles = /* @__PURE__ */ new Map();\n const hostTextStyles = /* @__PURE__ */ new Map();\n const ScopeContext = ThemeStateContext;\n const engineOf = getNativeStyleEngine;\n const scopeState = getThemeState;\n const resolve = resolveNativeStyleMapping;\n const linkMapping = linkNativeStyleMapping;\n const assignRef = setRef;\n const render = (props, key) => {\n const scopeId = use(ScopeContext);\n const inText = TextAncestor ? use(TextAncestor) : false;\n const themeState = scopeId && engineOf() ? scopeState(scopeId) : void 0;\n const resetsText = inText && host === \"view\";\n if (!themeState) {\n return resetsText ? /* @__PURE__ */ jsx(TextAncestorProvider, { value: false, children: /* @__PURE__ */ jsx(Fallback, { ...props }) }, key) : /* @__PURE__ */ jsx(Fallback, { ...props }, key);\n }\n let rest = props;\n if (props._expressions !== void 0) {\n const { _expressions: _ignoredExpressions, ...withoutExpressions } = props;\n rest = withoutExpressions;\n }\n const ref = props.ref;\n const { name, theme } = themeState;\n const asHostText = HostText && !inText;\n const Rendered = asHostText ? HostText : Component;\n const cache = asHostText ? hostTextStyles : styles;\n let style = cache.get(scopeId);\n if (!style) {\n style = [asHostText ? hostTextBase : baseStyle, null];\n cache.set(scopeId, style);\n }\n style[1] = resolve(themeStyleKeys, name, theme);\n const wrapped = resetsText || asHostText && mayRenderText(rest.children);\n const element = /* @__PURE__ */ jsx(\n Rendered,\n {\n ...asHostText && hostTextProps,\n ...rest,\n ref: (node) => {\n let refCleanup;\n if (typeof ref === \"function\") refCleanup = ref(node);\n else assignRef(ref, node);\n const link = linkMapping(node, themeStyleKeys, scopeId, name, theme);\n return () => {\n link?.unlink();\n if (typeof refCleanup === \"function\") refCleanup();\n else assignRef(ref, null);\n };\n },\n style\n },\n wrapped ? void 0 : key\n );\n if (!wrapped) return element;\n return /* @__PURE__ */ jsx(TextAncestorProvider, { value: !resetsText, children: element }, key);\n };\n const NativeStyleView = (props) => render(props);\n NativeStyleView.inline = (element) => render(element.props, element.key);\n return NativeStyleView;\n};\nfunction mayRenderText(children) {\n if (children == null) return false;\n if (Array.isArray(children) && children.length <= 3) {\n return children.some((child) => child != null && typeof child === \"object\");\n }\n return typeof children === \"object\";\n}\nexport {\n _withNativeStyle\n};\n//# sourceMappingURL=_withNativeStyle.js.map\n"],"mappings":"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"}
1
+ {"version":3,"file":"_withNativeStyle.js","names":[],"sources":["esm/_withNativeStyle.js"],"sourcesContent":["import { setRef } from \"@tamagui/compose-refs\";\nimport { isAndroid, isIos } from \"@tamagui/constants\";\nimport { use } from \"react\";\nimport { _withStableStyle } from \"./_withStableStyle\";\nimport {\n createNativeStyleLinkState,\n getNativeStyleEngine,\n linkNativeStyleHost,\n resolveNativeStyleMapping\n} from \"./helpers/nativeStyleEngine\";\nimport { getThemeState, ThemeStateContext } from \"./hooks/useThemeState\";\nimport { hooks } from \"./setupHooks\";\nimport { jsx } from \"react/jsx-runtime\";\nconst hostTextProps = {\n accessible: isAndroid ? false : isIos ? true : void 0,\n allowFontScaling: true,\n ellipsizeMode: \"tail\"\n};\nconst _withNativeStyle = (Component, baseStyle, themeStyleKeys, host) => {\n const Fallback = _withStableStyle(\n Component,\n (theme) => {\n const themedStyle = {};\n for (const styleKey in themeStyleKeys) {\n themedStyle[styleKey] = theme[themeStyleKeys[styleKey]]?.get();\n }\n return [baseStyle, themedStyle];\n },\n true,\n false\n );\n const baseViews = host ? hooks.getBaseViews?.() : void 0;\n const TextAncestor = baseViews?.TextAncestor;\n const TextAncestorProvider = TextAncestor?.Provider;\n const HostText = host === \"text\" && !(\"userSelect\" in baseStyle) && !(\"verticalAlign\" in baseStyle) ? baseViews?.NativeText : void 0;\n const hostTextBase = HostText ? {\n overflow: \"hidden\",\n ...baseStyle,\n ...typeof baseStyle.fontWeight === \"number\" && {\n fontWeight: String(baseStyle.fontWeight)\n }\n } : baseStyle;\n const entries = /* @__PURE__ */ new Map();\n const createEntry = () => {\n const entry = {\n style: [baseStyle, null],\n hostTextStyle: [hostTextBase, null],\n stateName: \"\",\n theme: null,\n state: null,\n ref: (node) => {\n if (node) linkHost(node, entry.state);\n }\n };\n return entry;\n };\n const ScopeContext = ThemeStateContext;\n const engineOf = getNativeStyleEngine;\n const scopeState = getThemeState;\n const resolve = resolveNativeStyleMapping;\n const linkState = createNativeStyleLinkState;\n const linkHost = linkNativeStyleHost;\n const assignRef = setRef;\n const render = (props, key) => {\n const scopeId = use(ScopeContext);\n const inText = TextAncestor ? use(TextAncestor) : false;\n const themeState = scopeId && engineOf() ? scopeState(scopeId) : void 0;\n const resetsText = inText && host === \"view\";\n if (!themeState) {\n return resetsText ? /* @__PURE__ */ jsx(TextAncestorProvider, { value: false, children: /* @__PURE__ */ jsx(Fallback, { ...props }) }, key) : /* @__PURE__ */ jsx(Fallback, { ...props }, key);\n }\n let rest = props;\n if (props._expressions !== void 0) {\n const { _expressions: _ignoredExpressions, ...withoutExpressions } = props;\n rest = withoutExpressions;\n }\n const ref = props.ref;\n const { name, theme } = themeState;\n const asHostText = HostText && !inText;\n const Rendered = asHostText ? HostText : Component;\n let entry = entries.get(scopeId);\n if (!entry) {\n entry = createEntry();\n entries.set(scopeId, entry);\n }\n if (entry.stateName !== name || entry.theme !== theme) {\n const themed = resolve(themeStyleKeys, name, theme);\n entry.style[1] = themed;\n entry.hostTextStyle[1] = themed;\n entry.stateName = name;\n entry.theme = theme;\n entry.state = linkState(themeStyleKeys, scopeId, name, theme);\n }\n const style = asHostText ? entry.hostTextStyle : entry.style;\n const wrapped = resetsText || asHostText && mayRenderText(rest.children);\n const state = entry.state;\n const hostRef = ref == null ? entry.ref : (node) => {\n if (!node) return assignRef(ref, null);\n linkHost(node, state);\n if (typeof ref === \"function\") return ref(node);\n assignRef(ref, node);\n };\n const element = /* @__PURE__ */ jsx(\n Rendered,\n {\n ...asHostText && hostTextProps,\n ...rest,\n ref: hostRef,\n style\n },\n wrapped ? void 0 : key\n );\n if (!wrapped) return element;\n return /* @__PURE__ */ jsx(TextAncestorProvider, { value: !resetsText, children: element }, key);\n };\n const NativeStyleView = (props) => render(props);\n NativeStyleView.inline = (element) => render(element.props, element.key);\n return NativeStyleView;\n};\nfunction mayRenderText(children) {\n if (children == null) return false;\n if (Array.isArray(children) && children.length <= 3) {\n return children.some((child) => child != null && typeof child === \"object\");\n }\n return typeof children === \"object\";\n}\nexport {\n _withNativeStyle\n};\n//# sourceMappingURL=_withNativeStyle.js.map\n"],"mappings":"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"}
@@ -3,7 +3,7 @@ import { setRef } from "@tamagui/compose-refs";
3
3
  import { isAndroid, isIos } from "@tamagui/constants";
4
4
  import { use } from "react";
5
5
  import { _withStableStyle } from "./_withStableStyle.native.js";
6
- import { getNativeStyleEngine, linkNativeStyleMapping, resolveNativeStyleMapping } from "./helpers/nativeStyleEngine.native.js";
6
+ import { createNativeStyleLinkState, getNativeStyleEngine, linkNativeStyleHost, resolveNativeStyleMapping } from "./helpers/nativeStyleEngine.native.js";
7
7
  import { ThemeStateContext, getThemeState } from "./hooks/useThemeState.native.js";
8
8
  import { hooks } from "./setupHooks.native.js";
9
9
 
@@ -31,13 +31,26 @@ var _withNativeStyle = function(Component, baseStyle, themeStyleKeys, host) {
31
31
  ...baseStyle,
32
32
  ...typeof baseStyle.fontWeight === "number" && { fontWeight: String(baseStyle.fontWeight) }
33
33
  } : baseStyle;
34
- var styles = /* @__PURE__ */ new Map();
35
- var hostTextStyles = /* @__PURE__ */ new Map();
34
+ var entries = /* @__PURE__ */ new Map();
35
+ var createEntry = function() {
36
+ var entry = {
37
+ style: [baseStyle, null],
38
+ hostTextStyle: [hostTextBase, null],
39
+ stateName: "",
40
+ theme: null,
41
+ state: null,
42
+ ref: function(node) {
43
+ if (node) linkHost(node, entry.state);
44
+ }
45
+ };
46
+ return entry;
47
+ };
36
48
  var ScopeContext = ThemeStateContext;
37
49
  var engineOf = getNativeStyleEngine;
38
50
  var scopeState = getThemeState;
39
51
  var resolve = resolveNativeStyleMapping;
40
- var linkMapping = linkNativeStyleMapping;
52
+ var linkState = createNativeStyleLinkState;
53
+ var linkHost = linkNativeStyleHost;
41
54
  var assignRef = setRef;
42
55
  var render = function(props, key) {
43
56
  var scopeId = use(ScopeContext);
@@ -59,28 +72,32 @@ var _withNativeStyle = function(Component, baseStyle, themeStyleKeys, host) {
59
72
  var { name, theme } = themeState;
60
73
  var asHostText = HostText && !inText;
61
74
  var Rendered = asHostText ? HostText : Component;
62
- var cache = asHostText ? hostTextStyles : styles;
63
- var style = cache.get(scopeId);
64
- if (!style) {
65
- style = [asHostText ? hostTextBase : baseStyle, null];
66
- cache.set(scopeId, style);
75
+ var entry = entries.get(scopeId);
76
+ if (!entry) {
77
+ entry = createEntry();
78
+ entries.set(scopeId, entry);
67
79
  }
68
- style[1] = resolve(themeStyleKeys, name, theme);
80
+ if (entry.stateName !== name || entry.theme !== theme) {
81
+ var themed = resolve(themeStyleKeys, name, theme);
82
+ entry.style[1] = themed;
83
+ entry.hostTextStyle[1] = themed;
84
+ entry.stateName = name;
85
+ entry.theme = theme;
86
+ entry.state = linkState(themeStyleKeys, scopeId, name, theme);
87
+ }
88
+ var style = asHostText ? entry.hostTextStyle : entry.style;
69
89
  var wrapped = resetsText || asHostText && mayRenderText(rest.children);
90
+ var state = entry.state;
91
+ var hostRef = ref == null ? entry.ref : function(node) {
92
+ if (!node) return assignRef(ref, null);
93
+ linkHost(node, state);
94
+ if (typeof ref === "function") return ref(node);
95
+ assignRef(ref, node);
96
+ };
70
97
  var element = /* @__PURE__ */ jsx(Rendered, {
71
98
  ...asHostText && hostTextProps,
72
99
  ...rest,
73
- ref: function(node) {
74
- var refCleanup;
75
- if (typeof ref === "function") refCleanup = ref(node);
76
- else assignRef(ref, node);
77
- var link = linkMapping(node, themeStyleKeys, scopeId, name, theme);
78
- return function() {
79
- link === null || link === void 0 ? void 0 : link.unlink();
80
- if (typeof refCleanup === "function") refCleanup();
81
- else assignRef(ref, null);
82
- };
83
- },
100
+ ref: hostRef,
84
101
  style
85
102
  }, wrapped ? void 0 : key);
86
103
  if (!wrapped) return element;