@tamagui/web 1.88.17 → 1.88.19

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 (49) hide show
  1. package/dist/cjs/createComponent.js +3 -2
  2. package/dist/cjs/createComponent.js.map +1 -1
  3. package/dist/cjs/createComponent.native.js +3 -2
  4. package/dist/cjs/createComponent.native.js.map +1 -1
  5. package/dist/cjs/helpers/getSplitStyles.js +191 -183
  6. package/dist/cjs/helpers/getSplitStyles.js.map +1 -1
  7. package/dist/cjs/helpers/getSplitStyles.native.js +217 -212
  8. package/dist/cjs/helpers/getSplitStyles.native.js.map +1 -1
  9. package/dist/cjs/helpers/getVariantExtras.js +5 -7
  10. package/dist/cjs/helpers/getVariantExtras.js.map +1 -1
  11. package/dist/cjs/helpers/getVariantExtras.native.js +5 -7
  12. package/dist/cjs/helpers/getVariantExtras.native.js.map +1 -1
  13. package/dist/cjs/index.js +1 -0
  14. package/dist/cjs/index.js.map +1 -1
  15. package/dist/cjs/index.native.js +2 -0
  16. package/dist/cjs/index.native.js.map +1 -1
  17. package/dist/esm/createComponent.js +3 -2
  18. package/dist/esm/createComponent.js.map +1 -1
  19. package/dist/esm/createComponent.mjs +4 -3
  20. package/dist/esm/createComponent.native.js +3 -2
  21. package/dist/esm/createComponent.native.js.map +1 -1
  22. package/dist/esm/helpers/getSplitStyles.js +191 -183
  23. package/dist/esm/helpers/getSplitStyles.js.map +1 -1
  24. package/dist/esm/helpers/getSplitStyles.mjs +181 -175
  25. package/dist/esm/helpers/getSplitStyles.native.js +217 -212
  26. package/dist/esm/helpers/getSplitStyles.native.js.map +1 -1
  27. package/dist/esm/helpers/getVariantExtras.js +5 -7
  28. package/dist/esm/helpers/getVariantExtras.js.map +1 -1
  29. package/dist/esm/helpers/getVariantExtras.mjs +3 -4
  30. package/dist/esm/helpers/getVariantExtras.native.js +5 -7
  31. package/dist/esm/helpers/getVariantExtras.native.js.map +1 -1
  32. package/dist/esm/index.js +2 -0
  33. package/dist/esm/index.js.map +1 -1
  34. package/dist/esm/index.mjs +2 -2
  35. package/dist/esm/index.native.js +2 -0
  36. package/dist/esm/index.native.js.map +1 -1
  37. package/package.json +10 -10
  38. package/src/createComponent.tsx +4 -3
  39. package/src/helpers/getSplitStyles.tsx +87 -78
  40. package/src/helpers/getVariantExtras.tsx +6 -10
  41. package/src/index.ts +1 -0
  42. package/src/types.tsx +13 -0
  43. package/types/createComponent.d.ts.map +1 -1
  44. package/types/helpers/getSplitStyles.d.ts.map +1 -1
  45. package/types/helpers/getVariantExtras.d.ts.map +1 -1
  46. package/types/index.d.ts +1 -1
  47. package/types/index.d.ts.map +1 -1
  48. package/types/types.d.ts +11 -0
  49. package/types/types.d.ts.map +1 -1
@@ -2,6 +2,7 @@ import { getVariableValue } from "../createVariable.mjs";
2
2
  function getVariantExtras(styleState) {
3
3
  const {
4
4
  curProps,
5
+ props,
5
6
  conf,
6
7
  context,
7
8
  theme
@@ -17,12 +18,10 @@ function getVariantExtras(styleState) {
17
18
  font: fonts[fontFamily] || fonts[styleState.conf.defaultFont],
18
19
  // TODO do this in splitstlye
19
20
  // we avoid passing in default props for media queries because that would confuse things like SizableText.size:
20
- props: new Proxy(curProps, {
21
+ props: new Proxy(props, {
21
22
  // handles shorthands
22
23
  get(target, key) {
23
- const shorthand = conf.inverseShorthands[key];
24
- if (shorthand && Reflect.has(target, shorthand)) return Reflect.get(target, shorthand);
25
- if (Reflect.has(target, key)) return Reflect.get(target, key);
24
+ for (const tryKey of [key, conf.inverseShorthands[key]]) if (tryKey) return Reflect.has(curProps, tryKey) ? Reflect.get(curProps, tryKey) : Reflect.get(target, tryKey);
26
25
  }
27
26
  })
28
27
  };
@@ -21,7 +21,7 @@ __export(getVariantExtras_exports, {
21
21
  module.exports = __toCommonJS(getVariantExtras_exports);
22
22
  var import_createVariable = require("../createVariable");
23
23
  function getVariantExtras(styleState) {
24
- const { curProps, conf, context, theme } = styleState;
24
+ const { curProps, props, conf, context, theme } = styleState;
25
25
  let fonts = conf.fontsParsed;
26
26
  context != null && context.language && (fonts = getFontsForLanguage(conf.fontsParsed, context.language));
27
27
  const fontFamily = (0, import_createVariable.getVariableValue)(
@@ -35,14 +35,12 @@ function getVariantExtras(styleState) {
35
35
  font: fonts[fontFamily] || fonts[styleState.conf.defaultFont],
36
36
  // TODO do this in splitstlye
37
37
  // we avoid passing in default props for media queries because that would confuse things like SizableText.size:
38
- props: new Proxy(curProps, {
38
+ props: new Proxy(props, {
39
39
  // handles shorthands
40
40
  get(target, key) {
41
- const shorthand = conf.inverseShorthands[key];
42
- if (shorthand && Reflect.has(target, shorthand))
43
- return Reflect.get(target, shorthand);
44
- if (Reflect.has(target, key))
45
- return Reflect.get(target, key);
41
+ for (const tryKey of [key, conf.inverseShorthands[key]])
42
+ if (tryKey)
43
+ return Reflect.has(curProps, tryKey) ? Reflect.get(curProps, tryKey) : Reflect.get(target, tryKey);
46
44
  }
47
45
  })
48
46
  };
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/helpers/getVariantExtras.tsx"],
4
- "mappings": ";;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,4BAAiC;AAI1B,SAAS,iBAAiB,YAA2B;AAC1D,QAAM,EAAE,UAAU,MAAM,SAAS,MAAM,IAAI;AAC3C,MAAI,QAAQ,KAAK;AACjB,EAAI,2BAAS,aACX,QAAQ,oBAAoB,KAAK,aAAa,QAAQ,QAAQ;AAIhE,QAAM,iBAAa;AAAA,IACjB,WAAW,cAAc,WAAW,SAAS,cAAc,WAAW,KAAK;AAAA,EAC7E;AA0BA,SAxBa;AAAA,IACX;AAAA,IACA,QAAQ,KAAK;AAAA,IACb;AAAA,IACA;AAAA,IACA,MAAM,MAAM,UAAU,KAAK,MAAM,WAAW,KAAK,WAAY;AAAA;AAAA;AAAA,IAG7D,OAAO,IAAI,MAAM,UAAU;AAAA;AAAA,MAEzB,IAAI,QAAQ,KAAK;AACf,cAAM,YAAY,KAAK,kBAAkB,GAAU;AAGnD,YAAI,aAAa,QAAQ,IAAI,QAAQ,SAAS;AAC5C,iBAAO,QAAQ,IAAI,QAAQ,SAAS;AAEtC,YAAI,QAAQ,IAAI,QAAQ,GAAG;AACzB,iBAAO,QAAQ,IAAI,QAAQ,GAAG;AAAA,MAElC;AAAA,IACF,CAAC;AAAA,EACH;AAGF;AAEA,MAAM,oBAAoB,oBAAI,QAAQ;AAE/B,SAAS,oBAAoB,OAAqB,UAA+B;AACtF,MAAI,kBAAkB,IAAI,QAAQ;AAChC,WAAO,kBAAkB,IAAI,QAAQ;AAEvC,QAAM,OAAO;AAAA,IACX,GAAG;AAAA,IACH,GAAG,OAAO;AAAA,MACR,OAAO,QAAQ,QAAQ,EAAE,IAAI,CAAC,CAAC,MAAM,IAAI,MAAM;AAC7C,YAAI,SAAS;AACX,iBAAO,CAAC;AAEV,cAAM,UAAU,IAAI,IAAI,IAAI,IAAI;AAChC,eAAO,CAAC,IAAI,IAAI,IAAI,MAAM,OAAO,CAAC;AAAA,MACpC,CAAC;AAAA,IACH;AAAA,EACF;AACA,2BAAkB,IAAI,UAAU,IAAI,GAC7B;AACT;",
4
+ "mappings": ";;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,4BAAiC;AAI1B,SAAS,iBAAiB,YAA2B;AAC1D,QAAM,EAAE,UAAU,OAAO,MAAM,SAAS,MAAM,IAAI;AAClD,MAAI,QAAQ,KAAK;AACjB,EAAI,2BAAS,aACX,QAAQ,oBAAoB,KAAK,aAAa,QAAQ,QAAQ;AAIhE,QAAM,iBAAa;AAAA,IACjB,WAAW,cAAc,WAAW,SAAS,cAAc,WAAW,KAAK;AAAA,EAC7E;AAsBA,SApBa;AAAA,IACX;AAAA,IACA,QAAQ,KAAK;AAAA,IACb;AAAA,IACA;AAAA,IACA,MAAM,MAAM,UAAU,KAAK,MAAM,WAAW,KAAK,WAAY;AAAA;AAAA;AAAA,IAG7D,OAAO,IAAI,MAAM,OAAO;AAAA;AAAA,MAEtB,IAAI,QAAQ,KAAK;AACf,mBAAW,UAAU,CAAC,KAAK,KAAK,kBAAkB,GAAU,CAAC;AAC3D,cAAK;AACL,mBAAI,QAAQ,IAAI,UAAU,MAAM,IAAU,QAAQ,IAAI,UAAU,MAAM,IAC/D,QAAQ,IAAI,QAAQ,MAAM;AAAA,MAErC;AAAA,IACF,CAAC;AAAA,EACH;AAGF;AAEA,MAAM,oBAAoB,oBAAI,QAAQ;AAE/B,SAAS,oBAAoB,OAAqB,UAA+B;AACtF,MAAI,kBAAkB,IAAI,QAAQ;AAChC,WAAO,kBAAkB,IAAI,QAAQ;AAEvC,QAAM,OAAO;AAAA,IACX,GAAG;AAAA,IACH,GAAG,OAAO;AAAA,MACR,OAAO,QAAQ,QAAQ,EAAE,IAAI,CAAC,CAAC,MAAM,IAAI,MAAM;AAC7C,YAAI,SAAS;AACX,iBAAO,CAAC;AAEV,cAAM,UAAU,IAAI,IAAI,IAAI,IAAI;AAChC,eAAO,CAAC,IAAI,IAAI,IAAI,MAAM,OAAO,CAAC;AAAA,MACpC,CAAC;AAAA,IACH;AAAA,EACF;AACA,2BAAkB,IAAI,UAAU,IAAI,GAC7B;AACT;",
5
5
  "names": []
6
6
  }
package/dist/esm/index.js CHANGED
@@ -47,6 +47,7 @@ export * from "./internalWithTheme";
47
47
  import {
48
48
  configureMedia,
49
49
  mediaState,
50
+ mediaKeyMatch,
50
51
  useMedia,
51
52
  getMedia,
52
53
  mediaObjectToString,
@@ -81,6 +82,7 @@ export {
81
82
  getToken,
82
83
  getTokenValue,
83
84
  getTokens,
85
+ mediaKeyMatch,
84
86
  mediaObjectToString,
85
87
  mediaQueryConfig,
86
88
  mediaState,
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/index.ts"],
4
- "mappings": "AAAA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AAKd,cAAc;AAEd;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAEP,cAAc;AAEd,cAAc;AAEd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AAEd;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AAEd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AAEd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AAEd,cAAc;",
4
+ "mappings": "AAAA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AAKd,cAAc;AAEd;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAEP,cAAc;AAEd,cAAc;AAEd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AAEd;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AAEd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AAEd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AAEd,cAAc;",
5
5
  "names": []
6
6
  }
@@ -36,7 +36,7 @@ export * from "./helpers/themeable.mjs";
36
36
  export * from "./helpers/themes.mjs";
37
37
  export * from "./helpers/createShallowSetState.mjs";
38
38
  export * from "./internalWithTheme.mjs";
39
- import { configureMedia, mediaState, useMedia, getMedia, mediaObjectToString, mediaQueryConfig } from "./hooks/useMedia.mjs";
39
+ import { configureMedia, mediaState, mediaKeyMatch, useMedia, getMedia, mediaObjectToString, mediaQueryConfig } from "./hooks/useMedia.mjs";
40
40
  export * from "./hooks/useTheme.mjs";
41
41
  export * from "./hooks/useThemeName.mjs";
42
42
  export * from "./hooks/useConfiguration.mjs";
@@ -58,4 +58,4 @@ export * from "@tamagui/compose-refs";
58
58
  export * from "@tamagui/helpers";
59
59
  export * from "@tamagui/constants";
60
60
  export * from "./setupHooks.mjs";
61
- export { configureMedia, getConfig, getMedia, getThemes, getToken, getTokenValue, getTokens, mediaObjectToString, mediaQueryConfig, mediaState, setupDev, updateConfig, useMedia };
61
+ export { configureMedia, getConfig, getMedia, getThemes, getToken, getTokenValue, getTokens, mediaKeyMatch, mediaObjectToString, mediaQueryConfig, mediaState, setupDev, updateConfig, useMedia };
@@ -22,6 +22,7 @@ __export(src_exports, {
22
22
  getToken: () => import_config.getToken,
23
23
  getTokenValue: () => import_config.getTokenValue,
24
24
  getTokens: () => import_config.getTokens,
25
+ mediaKeyMatch: () => import_useMedia.mediaKeyMatch,
25
26
  mediaObjectToString: () => import_useMedia.mediaObjectToString,
26
27
  mediaQueryConfig: () => import_useMedia.mediaQueryConfig,
27
28
  mediaState: () => import_useMedia.mediaState,
@@ -99,6 +100,7 @@ __reExport(src_exports, require("./setupHooks"), module.exports);
99
100
  getToken,
100
101
  getTokenValue,
101
102
  getTokens,
103
+ mediaKeyMatch,
102
104
  mediaObjectToString,
103
105
  mediaQueryConfig,
104
106
  mediaState,
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/index.ts"],
4
- "mappings": ";;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,wBAAc,sBAAd;AACA,wBAAc,8BADd;AAEA,wBAAc,+BAFd;AAGA,wBAAc,0BAHd;AAIA,wBAAc,4BAJd;AAKA,wBAAc,yBALd;AAMA,wBAAc,2BANd;AAOA,wBAAc,6BAPd;AAQA,wBAAc,8BARd;AASA,wBAAc,yBATd;AAUA,wBAAc,qBAVd;AAWA,wBAAc,+BAXd;AAgBA,wBAAc,gCAhBd;AAkBA,oBAQO;AAEP,wBAAc,kCA5Bd;AA8BA,wBAAc,wCA9Bd;AAgCA,wBAAc,0CAhCd;AAiCA,wBAAc,mCAjCd;AAkCA,wBAAc,uCAlCd;AAmCA,wBAAc,qCAnCd;AAoCA,wBAAc,iCApCd;AAqCA,wBAAc,4CArCd;AAsCA,wBAAc,qCAtCd;AAuCA,wBAAc,sCAvCd;AAwCA,wBAAc,uCAxCd;AAyCA,wBAAc,uCAzCd;AA0CA,wBAAc,yCA1Cd;AA2CA,wBAAc,uCA3Cd;AA4CA,wBAAc,iCA5Cd;AA6CA,wBAAc,iCA7Cd;AA8CA,wBAAc,qCA9Cd;AA+CA,wBAAc,0CA/Cd;AAgDA,wBAAc,0CAhDd;AAiDA,wBAAc,wCAjDd;AAkDA,wBAAc,gCAlDd;AAmDA,wBAAc,6BAnDd;AAoDA,wBAAc,4CApDd;AAqDA,wBAAc,gCArDd;AAuDA,sBAOO;AACP,wBAAc,6BA/Dd;AAgEA,wBAAc,iCAhEd;AAiEA,wBAAc,qCAjEd;AAkEA,wBAAc,qCAlEd;AAmEA,wBAAc,6BAnEd;AAoEA,wBAAc,qCApEd;AAsEA,wBAAc,yBAtEd;AAuEA,wBAAc,0BAvEd;AAwEA,wBAAc,yBAxEd;AAyEA,wBAAc,yBAzEd;AA0EA,wBAAc,0BA1Ed;AA2EA,wBAAc,kCA3Ed;AA4EA,wBAAc,iCA5Ed;AA6EA,wBAAc,oCA7Ed;AA8EA,wBAAc,kCA9Ed;AAgFA,wBAAc,wCAhFd;AAiFA,wBAAc,+BAjFd;AAkFA,wBAAc,kCAlFd;AAmFA,wBAAc,6BAnFd;AAoFA,wBAAc,+BApFd;AAsFA,wBAAc,yBAtFd;",
4
+ "mappings": ";;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,wBAAc,sBAAd;AACA,wBAAc,8BADd;AAEA,wBAAc,+BAFd;AAGA,wBAAc,0BAHd;AAIA,wBAAc,4BAJd;AAKA,wBAAc,yBALd;AAMA,wBAAc,2BANd;AAOA,wBAAc,6BAPd;AAQA,wBAAc,8BARd;AASA,wBAAc,yBATd;AAUA,wBAAc,qBAVd;AAWA,wBAAc,+BAXd;AAgBA,wBAAc,gCAhBd;AAkBA,oBAQO;AAEP,wBAAc,kCA5Bd;AA8BA,wBAAc,wCA9Bd;AAgCA,wBAAc,0CAhCd;AAiCA,wBAAc,mCAjCd;AAkCA,wBAAc,uCAlCd;AAmCA,wBAAc,qCAnCd;AAoCA,wBAAc,iCApCd;AAqCA,wBAAc,4CArCd;AAsCA,wBAAc,qCAtCd;AAuCA,wBAAc,sCAvCd;AAwCA,wBAAc,uCAxCd;AAyCA,wBAAc,uCAzCd;AA0CA,wBAAc,yCA1Cd;AA2CA,wBAAc,uCA3Cd;AA4CA,wBAAc,iCA5Cd;AA6CA,wBAAc,iCA7Cd;AA8CA,wBAAc,qCA9Cd;AA+CA,wBAAc,0CA/Cd;AAgDA,wBAAc,0CAhDd;AAiDA,wBAAc,wCAjDd;AAkDA,wBAAc,gCAlDd;AAmDA,wBAAc,6BAnDd;AAoDA,wBAAc,4CApDd;AAqDA,wBAAc,gCArDd;AAuDA,sBAQO;AACP,wBAAc,6BAhEd;AAiEA,wBAAc,iCAjEd;AAkEA,wBAAc,qCAlEd;AAmEA,wBAAc,qCAnEd;AAoEA,wBAAc,6BApEd;AAqEA,wBAAc,qCArEd;AAuEA,wBAAc,yBAvEd;AAwEA,wBAAc,0BAxEd;AAyEA,wBAAc,yBAzEd;AA0EA,wBAAc,yBA1Ed;AA2EA,wBAAc,0BA3Ed;AA4EA,wBAAc,kCA5Ed;AA6EA,wBAAc,iCA7Ed;AA8EA,wBAAc,oCA9Ed;AA+EA,wBAAc,kCA/Ed;AAiFA,wBAAc,wCAjFd;AAkFA,wBAAc,+BAlFd;AAmFA,wBAAc,kCAnFd;AAoFA,wBAAc,6BApFd;AAqFA,wBAAc,+BArFd;AAuFA,wBAAc,yBAvFd;",
5
5
  "names": []
6
6
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tamagui/web",
3
- "version": "1.88.17",
3
+ "version": "1.88.19",
4
4
  "source": "src/index.ts",
5
5
  "main": "dist/cjs",
6
6
  "module": "dist/esm",
@@ -27,19 +27,19 @@
27
27
  "reset.css"
28
28
  ],
29
29
  "dependencies": {
30
- "@tamagui/compose-refs": "1.88.17",
31
- "@tamagui/constants": "1.88.17",
32
- "@tamagui/helpers": "1.88.17",
33
- "@tamagui/normalize-css-color": "1.88.17",
34
- "@tamagui/timer": "1.88.17",
35
- "@tamagui/use-did-finish-ssr": "1.88.17",
36
- "@tamagui/use-event": "1.88.17",
37
- "@tamagui/use-force-update": "1.88.17",
30
+ "@tamagui/compose-refs": "1.88.19",
31
+ "@tamagui/constants": "1.88.19",
32
+ "@tamagui/helpers": "1.88.19",
33
+ "@tamagui/normalize-css-color": "1.88.19",
34
+ "@tamagui/timer": "1.88.19",
35
+ "@tamagui/use-did-finish-ssr": "1.88.19",
36
+ "@tamagui/use-event": "1.88.19",
37
+ "@tamagui/use-force-update": "1.88.19",
38
38
  "react": "^18.2.0",
39
39
  "react-dom": "^18.2.0"
40
40
  },
41
41
  "devDependencies": {
42
- "@tamagui/build": "1.88.17",
42
+ "@tamagui/build": "1.88.19",
43
43
  "@testing-library/react": "^14.0.0",
44
44
  "csstype": "^3.0.10",
45
45
  "typescript": "^5.3.3",
@@ -599,10 +599,10 @@ export function createComponent<
599
599
  // HOOK 14 (-1 if no animation, -1 if disableSSR, -1 if no context, -1 if production)
600
600
  const mediaState = useMedia(stateRef, componentContext)
601
601
 
602
- if (process.env.NODE_ENV === 'development' && time) time`media`
603
-
604
602
  setDidGetVariableValue(false)
605
603
 
604
+ if (process.env.NODE_ENV === 'development' && time) time`media`
605
+
606
606
  const resolveValues =
607
607
  // if HOC + mounted + has animation prop, resolve as value so it passes non-variable to child
608
608
  (isAnimated && !supportsCSSVars) ||
@@ -1280,8 +1280,9 @@ export function createComponent<
1280
1280
  }
1281
1281
  } catch {
1282
1282
  // RN can run into PayloadTooLargeError: request entity too large
1283
+ } finally {
1284
+ console.groupEnd()
1283
1285
  }
1284
- console.groupEnd()
1285
1286
  }
1286
1287
  if (debugProp === 'break') {
1287
1288
  // biome-ignore lint/suspicious/noDebugger: ok
@@ -175,7 +175,8 @@ export const getSplitStyles: StyleSplitter = (
175
175
  const mediaState = styleProps.mediaState || globalMediaState
176
176
  const usedKeys: Record<string, number> = {}
177
177
  const shouldDoClasses = acceptsClassName && isWeb && !styleProps.noClassNames
178
- const rulesToInsert: RulesToInsert = []
178
+ const rulesToInsert: RulesToInsert =
179
+ process.env.TAMAGUI_TARGET === 'native' ? (undefined as any) : []
179
180
  const classNames: ClassNamesObject = {}
180
181
  // we need to gather these specific to each media query / pseudo
181
182
  // value is [hash, val], so ["-jnjad-asdnjk", "scaleX(1) rotate(10deg)"]
@@ -188,14 +189,14 @@ export const getSplitStyles: StyleSplitter = (
188
189
  let pseudoGroups: Set<string> | undefined
189
190
  let mediaGroups: Set<string> | undefined
190
191
  let style: ViewStyleWithPseudos = {}
191
- let className = (props.className as string) ?? '' // existing classNames
192
+ let className = (props.className as string) || '' // existing classNames
192
193
  let mediaStylesSeen = 0
193
194
 
194
195
  /**
195
196
  * Not the biggest fan of creating an object but it is a nice API
196
197
  */
197
198
  const styleState: GetStyleState = {
198
- curProps: { ...props },
199
+ curProps: {},
199
200
  classNames,
200
201
  conf,
201
202
  props,
@@ -230,11 +231,6 @@ export const getSplitStyles: StyleSplitter = (
230
231
  }
231
232
 
232
233
  for (const keyOg in props) {
233
- if (process.env.NODE_ENV === 'development') {
234
- // we leave open some verbose logs to log each prop details
235
- console.groupEnd()
236
- }
237
-
238
234
  let keyInit = keyOg
239
235
  let valInit = props[keyOg]
240
236
 
@@ -303,55 +299,59 @@ export const getSplitStyles: StyleSplitter = (
303
299
  }
304
300
  }
305
301
 
306
- styleState.curProps[keyInit] = valInit
302
+ if (valInit !== props[keyInit]) {
303
+ styleState.curProps[keyInit] = valInit
304
+ }
307
305
 
308
306
  if (process.env.TAMAGUI_TARGET === 'native') {
309
- if (!isAndroid) {
310
- // only works in android
311
- if (keyInit === 'elevationAndroid') continue
312
- }
307
+ if (!isValidStyleKeyInit) {
308
+ if (!isAndroid) {
309
+ // only works in android
310
+ if (keyInit === 'elevationAndroid') continue
311
+ }
313
312
 
314
- // map userSelect to native prop
315
- if (keyInit === 'userSelect') {
316
- keyInit = 'selectable'
317
- valInit = valInit === 'none' ? false : true
318
- } else if (keyInit === 'role') {
319
- viewProps['accessibilityRole'] = accessibilityWebRoleToNativeRole[
320
- valInit
321
- ] as GetStyleResult['viewProps']['AccessibilityRole']
322
- continue
323
- } else if (keyInit.startsWith('aria-')) {
324
- if (webToNativeAccessibilityDirectMap[keyInit]) {
325
- const nativeA11yProp = webToNativeAccessibilityDirectMap[keyInit]
326
- if (keyInit === 'aria-hidden') {
327
- // accessibilityElementsHidden only works with ios, RN version >0.71.1 support aria-hidden which works for both ios/android
328
- viewProps['aria-hidden'] = valInit
329
- }
330
- viewProps[nativeA11yProp] = valInit
313
+ // map userSelect to native prop
314
+ if (keyInit === 'userSelect') {
315
+ keyInit = 'selectable'
316
+ valInit = valInit === 'none' ? false : true
317
+ } else if (keyInit === 'role') {
318
+ viewProps['accessibilityRole'] = accessibilityWebRoleToNativeRole[
319
+ valInit
320
+ ] as GetStyleResult['viewProps']['AccessibilityRole']
331
321
  continue
332
- }
333
- if (nativeAccessibilityValue[keyInit]) {
334
- let field = nativeAccessibilityValue[keyInit]
335
- if (viewProps['accessibilityValue']) {
336
- viewProps['accessibilityValue'][field] = valInit
337
- } else {
338
- viewProps['accessibilityValue'] = {
339
- [field]: valInit,
322
+ } else if (keyInit.startsWith('aria-')) {
323
+ if (webToNativeAccessibilityDirectMap[keyInit]) {
324
+ const nativeA11yProp = webToNativeAccessibilityDirectMap[keyInit]
325
+ if (keyInit === 'aria-hidden') {
326
+ // accessibilityElementsHidden only works with ios, RN version >0.71.1 support aria-hidden which works for both ios/android
327
+ viewProps['aria-hidden'] = valInit
340
328
  }
329
+ viewProps[nativeA11yProp] = valInit
330
+ continue
341
331
  }
342
- } else if (nativeAccessibilityState[keyInit]) {
343
- let field = nativeAccessibilityState[keyInit]
344
- if (viewProps['accessibilityState']) {
345
- viewProps['accessibilityState'][field] = valInit
346
- } else {
347
- viewProps['accessibilityState'] = {
348
- [field]: valInit,
332
+ if (nativeAccessibilityValue[keyInit]) {
333
+ let field = nativeAccessibilityValue[keyInit]
334
+ if (viewProps['accessibilityValue']) {
335
+ viewProps['accessibilityValue'][field] = valInit
336
+ } else {
337
+ viewProps['accessibilityValue'] = {
338
+ [field]: valInit,
339
+ }
340
+ }
341
+ } else if (nativeAccessibilityState[keyInit]) {
342
+ let field = nativeAccessibilityState[keyInit]
343
+ if (viewProps['accessibilityState']) {
344
+ viewProps['accessibilityState'][field] = valInit
345
+ } else {
346
+ viewProps['accessibilityState'] = {
347
+ [field]: valInit,
348
+ }
349
349
  }
350
350
  }
351
+ continue
352
+ } else if (keyInit.startsWith('data-')) {
353
+ continue
351
354
  }
352
- continue
353
- } else if (keyInit.startsWith('data-')) {
354
- continue
355
355
  }
356
356
  }
357
357
 
@@ -362,9 +362,11 @@ export const getSplitStyles: StyleSplitter = (
362
362
  continue
363
363
  }
364
364
 
365
- if (keyInit.startsWith('_style') && isObj(valInit)) {
366
- Object.assign(styleState.style, valInit)
367
- continue
365
+ if (!isValidStyleKeyInit) {
366
+ if (keyInit.startsWith('_style') && isObj(valInit)) {
367
+ Object.assign(styleState.style, valInit)
368
+ continue
369
+ }
368
370
  }
369
371
 
370
372
  if (process.env.TAMAGUI_TARGET === 'web') {
@@ -498,9 +500,9 @@ export const getSplitStyles: StyleSplitter = (
498
500
  let isMediaOrPseudo = Boolean(isMedia || isPseudo)
499
501
 
500
502
  const isStyleProp =
503
+ isValidStyleKeyInit ||
501
504
  isMediaOrPseudo ||
502
505
  (isVariant && !styleProps.noExpand) ||
503
- isValidStyleKeyInit ||
504
506
  isShorthand
505
507
 
506
508
  if (
@@ -529,11 +531,6 @@ export const getSplitStyles: StyleSplitter = (
529
531
  const shouldPassThrough = shouldPassProp || isHOCShouldPassThrough
530
532
 
531
533
  if (process.env.NODE_ENV === 'development' && debug === 'verbose') {
532
- // fix native group nesting issues
533
- console.groupEnd()
534
- console.groupEnd()
535
- // fix native group nesting issues
536
-
537
534
  console.groupCollapsed(
538
535
  ` 🔑 ${keyOg}${keyInit !== keyOg ? ` (shorthand for ${keyInit})` : ''} ${
539
536
  shouldPassThrough ? '(pass)' : ''
@@ -611,14 +608,14 @@ export const getSplitStyles: StyleSplitter = (
611
608
  }
612
609
 
613
610
  const avoidPropMap = isMediaOrPseudo || (!isVariant && !isValidStyleKeyInit)
611
+ const expanded = avoidPropMap ? null : propMapper(keyInit, valInit, styleState)
614
612
 
615
- const expanded = avoidPropMap
616
- ? ([[keyInit, valInit]] as const)
617
- : propMapper(keyInit, valInit, styleState)
618
-
619
- const next = getPropMappedFontFamily(expanded)
620
- if (next) {
621
- styleState.fontFamily = next
613
+ if (!avoidPropMap) {
614
+ if (!expanded) continue
615
+ const next = getPropMappedFontFamily(expanded)
616
+ if (next) {
617
+ styleState.fontFamily = next
618
+ }
622
619
  }
623
620
 
624
621
  if (process.env.NODE_ENV === 'development' && debug === 'verbose') {
@@ -647,9 +644,19 @@ export const getSplitStyles: StyleSplitter = (
647
644
  console.groupEnd()
648
645
  }
649
646
 
650
- if (!expanded) continue
647
+ let key = keyInit
648
+ let val = valInit
649
+ const max = expanded ? expanded.length : 1
650
+
651
+ // before we just made an array if avoidPropMap, but to avoid making extra arrays in a perf sensitive area
652
+ // now we do this part more imperatively. saves making a nested array for each prop key on every component
653
+ for (let i = 0; i < max; i++) {
654
+ if (expanded) {
655
+ const [k, v] = expanded[i]
656
+ key = k
657
+ val = v
658
+ }
651
659
 
652
- for (const [key, val] of expanded) {
653
660
  if (val == null) continue
654
661
  if (key in usedKeys) continue
655
662
 
@@ -769,7 +776,11 @@ export const getSplitStyles: StyleSplitter = (
769
776
 
770
777
  if (isDisabled) {
771
778
  const defaultValues = animatableDefaults[pkey]
772
- if (defaultValues != null && !(pkey in usedKeys)) {
779
+ if (
780
+ defaultValues != null &&
781
+ !(pkey in usedKeys) &&
782
+ !(pkey in styleState.style)
783
+ ) {
773
784
  mergeStyle(styleState, pkey, defaultValues)
774
785
  }
775
786
  } else {
@@ -1016,8 +1027,8 @@ export const getSplitStyles: StyleSplitter = (
1016
1027
  }
1017
1028
 
1018
1029
  if (process.env.NODE_ENV === 'development' && debug === 'verbose') {
1019
- console.groupCollapsed(` ✔️ expand complete`, keyInit)
1020
1030
  try {
1031
+ log(` ✔️ expand complete`, keyInit)
1021
1032
  log('style', { ...style })
1022
1033
  log('transforms', { ...transforms })
1023
1034
  log('viewProps', { ...viewProps })
@@ -1028,11 +1039,6 @@ export const getSplitStyles: StyleSplitter = (
1028
1039
  }
1029
1040
  } // end prop loop
1030
1041
 
1031
- if (process.env.NODE_ENV === 'development') {
1032
- // we leave open some verbose logs to log each prop details
1033
- console.groupEnd()
1034
- }
1035
-
1036
1042
  // style prop after:
1037
1043
 
1038
1044
  // merge after the prop loop - this way pseudos apply and set usedKeys and then this wont clobber them
@@ -1407,12 +1413,15 @@ const useInsertEffectCompat = isWeb
1407
1413
  ? useInsertionEffect || useIsomorphicLayoutEffect
1408
1414
  : () => {}
1409
1415
 
1410
- export const useSplitStyles: StyleSplitter = (...args) => {
1411
- const res = getSplitStyles(...args)
1416
+ // perf: ...args a bit expensive on native
1417
+ export const useSplitStyles: StyleSplitter = (a, b, c, d, e, f, g, h, i, j) => {
1418
+ const res = getSplitStyles(a, b, c, d, e, f, g, h, i, j)
1412
1419
 
1413
- useInsertEffectCompat(() => {
1414
- insertStyleRules(res.rulesToInsert)
1415
- }, [res.rulesToInsert])
1420
+ if (process.env.TAMAGUI_TARGET !== 'native') {
1421
+ useInsertEffectCompat(() => {
1422
+ insertStyleRules(res.rulesToInsert)
1423
+ }, [res.rulesToInsert])
1424
+ }
1416
1425
 
1417
1426
  return res
1418
1427
  }
@@ -3,7 +3,7 @@ import type { GenericFonts, GetStyleState } from '../types'
3
3
  import type { LanguageContextType } from '../views/FontLanguage.types'
4
4
 
5
5
  export function getVariantExtras(styleState: GetStyleState) {
6
- const { curProps, conf, context, theme } = styleState
6
+ const { curProps, props, conf, context, theme } = styleState
7
7
  let fonts = conf.fontsParsed
8
8
  if (context?.language) {
9
9
  fonts = getFontsForLanguage(conf.fontsParsed, context.language)
@@ -22,17 +22,13 @@ export function getVariantExtras(styleState: GetStyleState) {
22
22
  font: fonts[fontFamily] || fonts[styleState.conf.defaultFont!],
23
23
  // TODO do this in splitstlye
24
24
  // we avoid passing in default props for media queries because that would confuse things like SizableText.size:
25
- props: new Proxy(curProps, {
25
+ props: new Proxy(props, {
26
26
  // handles shorthands
27
27
  get(target, key) {
28
- const shorthand = conf.inverseShorthands[key as any]
29
- // shorthands before longhand because a styled() with longhand combined with inline shorthand
30
- // shorthand will always be the overriding key
31
- if (shorthand && Reflect.has(target, shorthand)) {
32
- return Reflect.get(target, shorthand)
33
- }
34
- if (Reflect.has(target, key)) {
35
- return Reflect.get(target, key)
28
+ for (const tryKey of [key, conf.inverseShorthands[key as any]]) {
29
+ if (!tryKey) continue
30
+ if (Reflect.has(curProps, tryKey)) return Reflect.get(curProps, tryKey)
31
+ return Reflect.get(target, tryKey)
36
32
  }
37
33
  },
38
34
  }),
package/src/index.ts CHANGED
@@ -56,6 +56,7 @@ export * from './internalWithTheme'
56
56
  export {
57
57
  configureMedia,
58
58
  mediaState,
59
+ mediaKeyMatch,
59
60
  useMedia,
60
61
  getMedia,
61
62
  mediaObjectToString,
package/src/types.tsx CHANGED
@@ -540,6 +540,19 @@ type GenericTamaguiSettings = {
540
540
  */
541
541
  fastSchemeChange?: boolean
542
542
 
543
+ /**
544
+ * By default Tamagui won't accept anything except for style props inside all parent style
545
+ * selectors or pseudo style selectors (like $sm, $platform-ios, or hoverStyle).
546
+ *
547
+ * But it does support taking any property inside of these attributes, historically, and it
548
+ * can be useful especially on native where props like maxFontSizeMultiplier or minimumFontScale
549
+ * should be style props but aren't.
550
+ *
551
+ * On the web, in the future, we aim to enable a full 0-runtime mode which would enforce the default
552
+ * "style" setting here. But if you're willing to accept that it maybe slow, set to "all" for more power
553
+ */
554
+ // subStyleProps?: 'style' | 'all'
555
+
543
556
  /**
544
557
  * On Web, this allows changing the behavior of container groups which by default uses
545
558
  * `container-type: inline-size`.
@@ -1 +1 @@
1
- {"version":3,"file":"createComponent.d.ts","sourceRoot":"","sources":["../src/createComponent.tsx"],"names":[],"mappings":"AAIA,OAAO,KAYN,MAAM,OAAO,CAAA;AAuBd,OAAO,KAAK,EAEV,SAAS,EAMT,cAAc,EACd,UAAU,EACV,WAAW,EACX,gBAAgB,EAChB,kBAAkB,EAElB,YAAY,EAEZ,gBAAgB,EAEhB,cAAc,EAMf,MAAM,SAAS,CAAA;AAiBhB,eAAO,MAAM,QAAQ,eAAsB,CAAA;AA6D3C,wBAAgB,eAAe,CAC7B,kBAAkB,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,EAAE,EACnD,GAAG,SAAS,cAAc,GAAG,cAAc,EAC3C,SAAS,GAAG,KAAK,EACjB,UAAU,SAAS,MAAM,GAAG,KAAK,EACjC,YAAY,EAAE,YAAY,wEAqsC3B;AAsBD,wBAAgB,QAAQ,CAAC,KAAK,EAAE;IAAE,QAAQ,CAAC,EAAE,GAAG,CAAA;CAAE,OAEjD;yBAFe,QAAQ;;;AAkBxB,eAAO,MAAM,MAAM,yFA0CjB,CAAA;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC1B,KAAK,CAAC,EAAE,UAAU,CAAA;IAClB,SAAS,CAAC,EAAE,OAAO,GAAG,MAAM,CAAA;IAC5B,SAAS,CAAC,EAAE,cAAc,GAAG,OAAO,CAAA;IACpC,SAAS,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC3B,KAAK,CAAC,EAAE,SAAS,CAAA;CAClB,CAAA;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,mBAAmB,mBAiGxD"}
1
+ {"version":3,"file":"createComponent.d.ts","sourceRoot":"","sources":["../src/createComponent.tsx"],"names":[],"mappings":"AAIA,OAAO,KAYN,MAAM,OAAO,CAAA;AAuBd,OAAO,KAAK,EAEV,SAAS,EAMT,cAAc,EACd,UAAU,EACV,WAAW,EACX,gBAAgB,EAChB,kBAAkB,EAElB,YAAY,EAEZ,gBAAgB,EAEhB,cAAc,EAMf,MAAM,SAAS,CAAA;AAiBhB,eAAO,MAAM,QAAQ,eAAsB,CAAA;AA6D3C,wBAAgB,eAAe,CAC7B,kBAAkB,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,EAAE,EACnD,GAAG,SAAS,cAAc,GAAG,cAAc,EAC3C,SAAS,GAAG,KAAK,EACjB,UAAU,SAAS,MAAM,GAAG,KAAK,EACjC,YAAY,EAAE,YAAY,wEAssC3B;AAsBD,wBAAgB,QAAQ,CAAC,KAAK,EAAE;IAAE,QAAQ,CAAC,EAAE,GAAG,CAAA;CAAE,OAEjD;yBAFe,QAAQ;;;AAkBxB,eAAO,MAAM,MAAM,yFA0CjB,CAAA;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC1B,KAAK,CAAC,EAAE,UAAU,CAAA;IAClB,SAAS,CAAC,EAAE,OAAO,GAAG,MAAM,CAAA;IAC5B,SAAS,CAAC,EAAE,cAAc,GAAG,OAAO,CAAA;IACpC,SAAS,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC3B,KAAK,CAAC,EAAE,SAAS,CAAA;CAClB,CAAA;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,mBAAmB,mBAiGxD"}
@@ -1 +1 @@
1
- {"version":3,"file":"getSplitStyles.d.ts","sourceRoot":"","sources":["../../src/helpers/getSplitStyles.tsx"],"names":[],"mappings":"AAmCA,OAAO,KAAK,EAEV,iBAAiB,EACjB,SAAS,EACT,cAAc,EACd,aAAa,EAOb,eAAe,EACf,YAAY,EAGZ,cAAc,EACd,WAAW,EAEZ,MAAM,UAAU,CAAA;AACjB,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAA;AA6BhF,MAAM,MAAM,WAAW,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAA;AAE3D,MAAM,MAAM,gBAAgB,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAA;AAMhE,KAAK,aAAa,GAAG,CACnB,KAAK,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,EAC7B,YAAY,EAAE,YAAY,EAC1B,KAAK,EAAE,WAAW,EAClB,SAAS,EAAE,MAAM,EACjB,cAAc,EAAE,qBAAqB,EACrC,UAAU,EAAE,eAAe,EAC3B,iBAAiB,CAAC,EAAE,cAAc,GAAG,IAAI,EACzC,OAAO,CAAC,EAAE,iBAAiB,EAE3B,WAAW,CAAC,EAAE,MAAM,EACpB,KAAK,CAAC,EAAE,SAAS,KACd,cAAc,CAAA;AAEnB,eAAO,MAAM,UAAU,MAAM,CAAA;AA8B7B,eAAO,MAAM,cAAc,EAAE,aAupC5B,CAAA;AA2DD,eAAO,MAAM,WAAW,eACV,aAAa,UACjB,MAAM,WACL,MAAM,wBACO,OAAO,KAC5B,cA2BF,CAAA;AAOD,eAAO,MAAM,cAAc,EAAE,aAQ5B,CAAA"}
1
+ {"version":3,"file":"getSplitStyles.d.ts","sourceRoot":"","sources":["../../src/helpers/getSplitStyles.tsx"],"names":[],"mappings":"AAmCA,OAAO,KAAK,EAEV,iBAAiB,EACjB,SAAS,EACT,cAAc,EACd,aAAa,EAOb,eAAe,EACf,YAAY,EAGZ,cAAc,EACd,WAAW,EAEZ,MAAM,UAAU,CAAA;AACjB,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAA;AA6BhF,MAAM,MAAM,WAAW,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAA;AAE3D,MAAM,MAAM,gBAAgB,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAA;AAMhE,KAAK,aAAa,GAAG,CACnB,KAAK,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,EAC7B,YAAY,EAAE,YAAY,EAC1B,KAAK,EAAE,WAAW,EAClB,SAAS,EAAE,MAAM,EACjB,cAAc,EAAE,qBAAqB,EACrC,UAAU,EAAE,eAAe,EAC3B,iBAAiB,CAAC,EAAE,cAAc,GAAG,IAAI,EACzC,OAAO,CAAC,EAAE,iBAAiB,EAE3B,WAAW,CAAC,EAAE,MAAM,EACpB,KAAK,CAAC,EAAE,SAAS,KACd,cAAc,CAAA;AAEnB,eAAO,MAAM,UAAU,MAAM,CAAA;AA8B7B,eAAO,MAAM,cAAc,EAAE,aA6pC5B,CAAA;AA2DD,eAAO,MAAM,WAAW,eACV,aAAa,UACjB,MAAM,WACL,MAAM,wBACO,OAAO,KAC5B,cA2BF,CAAA;AAQD,eAAO,MAAM,cAAc,EAAE,aAU5B,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"getVariantExtras.d.ts","sourceRoot":"","sources":["../../src/helpers/getVariantExtras.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAC3D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAA;AAEtE,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,aAAa,OAqCzD;AAID,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,mBAAmB,OAkBrF"}
1
+ {"version":3,"file":"getVariantExtras.d.ts","sourceRoot":"","sources":["../../src/helpers/getVariantExtras.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAC3D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAA;AAEtE,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,aAAa,OAiCzD;AAID,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,mBAAmB,OAkBrF"}
package/types/index.d.ts CHANGED
@@ -38,7 +38,7 @@ export * from './helpers/themeable';
38
38
  export * from './helpers/themes';
39
39
  export * from './helpers/createShallowSetState';
40
40
  export * from './internalWithTheme';
41
- export { configureMedia, mediaState, useMedia, getMedia, mediaObjectToString, mediaQueryConfig, } from './hooks/useMedia';
41
+ export { configureMedia, mediaState, mediaKeyMatch, useMedia, getMedia, mediaObjectToString, mediaQueryConfig, } from './hooks/useMedia';
42
42
  export * from './hooks/useTheme';
43
43
  export * from './hooks/useThemeName';
44
44
  export * from './hooks/useConfiguration';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAA;AACzB,cAAc,mBAAmB,CAAA;AACjC,cAAc,oBAAoB,CAAA;AAClC,cAAc,eAAe,CAAA;AAC7B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,cAAc,CAAA;AAC5B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,kBAAkB,CAAA;AAChC,cAAc,mBAAmB,CAAA;AACjC,cAAc,cAAc,CAAA;AAC5B,cAAc,UAAU,CAAA;AACxB,cAAc,oBAAoB,CAAA;AAElC,mBAAmB,SAAS,CAAA;AAC5B,mBAAmB,+BAA+B,CAAA;AAElD,cAAc,qBAAqB,CAAA;AAEnC,OAAO,EACL,QAAQ,EACR,SAAS,EACT,SAAS,EACT,SAAS,EACT,YAAY,EACZ,QAAQ,EACR,aAAa,GACd,MAAM,UAAU,CAAA;AAEjB,cAAc,uBAAuB,CAAA;AAErC,cAAc,6BAA6B,CAAA;AAE3C,cAAc,+BAA+B,CAAA;AAC7C,cAAc,wBAAwB,CAAA;AACtC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,0BAA0B,CAAA;AACxC,cAAc,sBAAsB,CAAA;AACpC,cAAc,iCAAiC,CAAA;AAC/C,cAAc,0BAA0B,CAAA;AACxC,cAAc,2BAA2B,CAAA;AACzC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,4BAA4B,CAAA;AAC1C,cAAc,8BAA8B,CAAA;AAC5C,cAAc,4BAA4B,CAAA;AAC1C,cAAc,sBAAsB,CAAA;AACpC,cAAc,sBAAsB,CAAA;AACpC,cAAc,0BAA0B,CAAA;AACxC,cAAc,+BAA+B,CAAA;AAC7C,cAAc,+BAA+B,CAAA;AAC7C,cAAc,6BAA6B,CAAA;AAC3C,cAAc,qBAAqB,CAAA;AACnC,cAAc,kBAAkB,CAAA;AAChC,cAAc,iCAAiC,CAAA;AAC/C,cAAc,qBAAqB,CAAA;AAEnC,OAAO,EACL,cAAc,EACd,UAAU,EACV,QAAQ,EACR,QAAQ,EACR,mBAAmB,EACnB,gBAAgB,GACjB,MAAM,kBAAkB,CAAA;AACzB,cAAc,kBAAkB,CAAA;AAChC,cAAc,sBAAsB,CAAA;AACpC,cAAc,0BAA0B,CAAA;AACxC,cAAc,0BAA0B,CAAA;AACxC,cAAc,kBAAkB,CAAA;AAChC,cAAc,0BAA0B,CAAA;AAExC,cAAc,cAAc,CAAA;AAC5B,cAAc,eAAe,CAAA;AAC7B,cAAc,cAAc,CAAA;AAC5B,cAAc,cAAc,CAAA;AAC5B,cAAc,eAAe,CAAA;AAC7B,cAAc,uBAAuB,CAAA;AACrC,cAAc,sBAAsB,CAAA;AACpC,cAAc,yBAAyB,CAAA;AACvC,cAAc,uBAAuB,CAAA;AAErC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,oBAAoB,CAAA;AAClC,cAAc,uBAAuB,CAAA;AACrC,cAAc,kBAAkB,CAAA;AAChC,cAAc,oBAAoB,CAAA;AAElC,cAAc,cAAc,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAA;AACzB,cAAc,mBAAmB,CAAA;AACjC,cAAc,oBAAoB,CAAA;AAClC,cAAc,eAAe,CAAA;AAC7B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,cAAc,CAAA;AAC5B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,kBAAkB,CAAA;AAChC,cAAc,mBAAmB,CAAA;AACjC,cAAc,cAAc,CAAA;AAC5B,cAAc,UAAU,CAAA;AACxB,cAAc,oBAAoB,CAAA;AAElC,mBAAmB,SAAS,CAAA;AAC5B,mBAAmB,+BAA+B,CAAA;AAElD,cAAc,qBAAqB,CAAA;AAEnC,OAAO,EACL,QAAQ,EACR,SAAS,EACT,SAAS,EACT,SAAS,EACT,YAAY,EACZ,QAAQ,EACR,aAAa,GACd,MAAM,UAAU,CAAA;AAEjB,cAAc,uBAAuB,CAAA;AAErC,cAAc,6BAA6B,CAAA;AAE3C,cAAc,+BAA+B,CAAA;AAC7C,cAAc,wBAAwB,CAAA;AACtC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,0BAA0B,CAAA;AACxC,cAAc,sBAAsB,CAAA;AACpC,cAAc,iCAAiC,CAAA;AAC/C,cAAc,0BAA0B,CAAA;AACxC,cAAc,2BAA2B,CAAA;AACzC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,4BAA4B,CAAA;AAC1C,cAAc,8BAA8B,CAAA;AAC5C,cAAc,4BAA4B,CAAA;AAC1C,cAAc,sBAAsB,CAAA;AACpC,cAAc,sBAAsB,CAAA;AACpC,cAAc,0BAA0B,CAAA;AACxC,cAAc,+BAA+B,CAAA;AAC7C,cAAc,+BAA+B,CAAA;AAC7C,cAAc,6BAA6B,CAAA;AAC3C,cAAc,qBAAqB,CAAA;AACnC,cAAc,kBAAkB,CAAA;AAChC,cAAc,iCAAiC,CAAA;AAC/C,cAAc,qBAAqB,CAAA;AAEnC,OAAO,EACL,cAAc,EACd,UAAU,EACV,aAAa,EACb,QAAQ,EACR,QAAQ,EACR,mBAAmB,EACnB,gBAAgB,GACjB,MAAM,kBAAkB,CAAA;AACzB,cAAc,kBAAkB,CAAA;AAChC,cAAc,sBAAsB,CAAA;AACpC,cAAc,0BAA0B,CAAA;AACxC,cAAc,0BAA0B,CAAA;AACxC,cAAc,kBAAkB,CAAA;AAChC,cAAc,0BAA0B,CAAA;AAExC,cAAc,cAAc,CAAA;AAC5B,cAAc,eAAe,CAAA;AAC7B,cAAc,cAAc,CAAA;AAC5B,cAAc,cAAc,CAAA;AAC5B,cAAc,eAAe,CAAA;AAC7B,cAAc,uBAAuB,CAAA;AACrC,cAAc,sBAAsB,CAAA;AACpC,cAAc,yBAAyB,CAAA;AACvC,cAAc,uBAAuB,CAAA;AAErC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,oBAAoB,CAAA;AAClC,cAAc,uBAAuB,CAAA;AACrC,cAAc,kBAAkB,CAAA;AAChC,cAAc,oBAAoB,CAAA;AAElC,cAAc,cAAc,CAAA"}
package/types/types.d.ts CHANGED
@@ -340,6 +340,17 @@ type GenericTamaguiSettings = {
340
340
  * Then this feature is safe to turn on and will significantly speed up dark/light re-renders.
341
341
  */
342
342
  fastSchemeChange?: boolean;
343
+ /**
344
+ * By default Tamagui won't accept anything except for style props inside all parent style
345
+ * selectors or pseudo style selectors (like $sm, $platform-ios, or hoverStyle).
346
+ *
347
+ * But it does support taking any property inside of these attributes, historically, and it
348
+ * can be useful especially on native where props like maxFontSizeMultiplier or minimumFontScale
349
+ * should be style props but aren't.
350
+ *
351
+ * On the web, in the future, we aim to enable a full 0-runtime mode which would enforce the default
352
+ * "style" setting here. But if you're willing to accept that it maybe slow, set to "all" for more power
353
+ */
343
354
  /**
344
355
  * On Web, this allows changing the behavior of container groups which by default uses
345
356
  * `container-type: inline-size`.