@tamagui/web 1.105.1 → 1.105.3

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 (192) hide show
  1. package/dist/cjs/config.js +7 -1
  2. package/dist/cjs/config.js.map +1 -1
  3. package/dist/cjs/config.native.js +11 -1
  4. package/dist/cjs/config.native.js.map +2 -2
  5. package/dist/cjs/createComponent.js +16 -11
  6. package/dist/cjs/createComponent.js.map +1 -1
  7. package/dist/cjs/createComponent.native.js +16 -14
  8. package/dist/cjs/createComponent.native.js.map +2 -2
  9. package/dist/cjs/createTamagui.js +3 -3
  10. package/dist/cjs/createTamagui.js.map +1 -1
  11. package/dist/cjs/createTamagui.native.js +4 -3
  12. package/dist/cjs/createTamagui.native.js.map +2 -2
  13. package/dist/cjs/helpers/createMediaStyle.js +1 -1
  14. package/dist/cjs/helpers/createMediaStyle.js.map +1 -1
  15. package/dist/cjs/helpers/createMediaStyle.native.js +1 -1
  16. package/dist/cjs/helpers/createMediaStyle.native.js.map +2 -2
  17. package/dist/cjs/helpers/createShallowSetState.js +1 -1
  18. package/dist/cjs/helpers/createShallowSetState.native.js +1 -1
  19. package/dist/cjs/helpers/createShallowSetState.native.js.map +1 -1
  20. package/dist/cjs/helpers/expandStyle.js +2 -2
  21. package/dist/cjs/helpers/expandStyle.js.map +1 -1
  22. package/dist/cjs/helpers/expandStyle.native.js +1 -1
  23. package/dist/cjs/helpers/expandStyle.native.js.map +1 -1
  24. package/dist/cjs/helpers/getSplitStyles.js +35 -18
  25. package/dist/cjs/helpers/getSplitStyles.js.map +1 -1
  26. package/dist/cjs/helpers/getSplitStyles.native.js +25 -17
  27. package/dist/cjs/helpers/getSplitStyles.native.js.map +2 -2
  28. package/dist/cjs/helpers/getThemeCSSRules.js +7 -6
  29. package/dist/cjs/helpers/getThemeCSSRules.js.map +1 -1
  30. package/dist/cjs/helpers/log.js +9 -2
  31. package/dist/cjs/helpers/log.js.map +1 -1
  32. package/dist/cjs/helpers/log.native.js +10 -4
  33. package/dist/cjs/helpers/log.native.js.map +2 -2
  34. package/dist/cjs/helpers/propMapper.js +4 -3
  35. package/dist/cjs/helpers/propMapper.js.map +1 -1
  36. package/dist/cjs/helpers/propMapper.native.js +4 -3
  37. package/dist/cjs/helpers/propMapper.native.js.map +2 -2
  38. package/dist/cjs/hooks/useDisableSSR.js +1 -1
  39. package/dist/cjs/hooks/useDisableSSR.js.map +1 -1
  40. package/dist/cjs/hooks/useDisableSSR.native.js +1 -1
  41. package/dist/cjs/hooks/useDisableSSR.native.js.map +2 -2
  42. package/dist/cjs/hooks/useMedia.js +23 -7
  43. package/dist/cjs/hooks/useMedia.js.map +1 -1
  44. package/dist/cjs/hooks/useMedia.native.js +44 -7
  45. package/dist/cjs/hooks/useMedia.native.js.map +2 -2
  46. package/dist/cjs/hooks/useTheme.js +12 -5
  47. package/dist/cjs/hooks/useTheme.js.map +1 -1
  48. package/dist/cjs/hooks/useTheme.native.js +19 -8
  49. package/dist/cjs/hooks/useTheme.native.js.map +2 -2
  50. package/dist/cjs/views/TamaguiProvider.js +3 -3
  51. package/dist/cjs/views/TamaguiProvider.js.map +1 -1
  52. package/dist/cjs/views/TamaguiProvider.native.js +3 -3
  53. package/dist/cjs/views/TamaguiProvider.native.js.map +2 -2
  54. package/dist/cjs/views/ThemeProvider.js +2 -2
  55. package/dist/cjs/views/ThemeProvider.js.map +1 -1
  56. package/dist/cjs/views/ThemeProvider.native.js +2 -2
  57. package/dist/cjs/views/ThemeProvider.native.js.map +2 -2
  58. package/dist/cjs/views/html.js +1 -0
  59. package/dist/cjs/views/html.js.map +6 -0
  60. package/dist/cjs/views/html.native.js +2 -0
  61. package/dist/cjs/views/html.native.js.map +6 -0
  62. package/dist/esm/config.js +7 -1
  63. package/dist/esm/config.js.map +1 -1
  64. package/dist/esm/config.mjs +8 -2
  65. package/dist/esm/config.mjs.map +1 -1
  66. package/dist/esm/config.native.js +10 -1
  67. package/dist/esm/config.native.js.map +2 -2
  68. package/dist/esm/createComponent.js +20 -11
  69. package/dist/esm/createComponent.js.map +1 -1
  70. package/dist/esm/createComponent.mjs +16 -10
  71. package/dist/esm/createComponent.mjs.map +1 -1
  72. package/dist/esm/createComponent.native.js +16 -14
  73. package/dist/esm/createComponent.native.js.map +2 -2
  74. package/dist/esm/createTamagui.js +3 -3
  75. package/dist/esm/createTamagui.js.map +1 -1
  76. package/dist/esm/createTamagui.mjs +3 -3
  77. package/dist/esm/createTamagui.mjs.map +1 -1
  78. package/dist/esm/createTamagui.native.js +4 -3
  79. package/dist/esm/createTamagui.native.js.map +2 -2
  80. package/dist/esm/helpers/createMediaStyle.js +2 -2
  81. package/dist/esm/helpers/createMediaStyle.js.map +1 -1
  82. package/dist/esm/helpers/createMediaStyle.mjs +2 -2
  83. package/dist/esm/helpers/createMediaStyle.mjs.map +1 -1
  84. package/dist/esm/helpers/createMediaStyle.native.js +2 -2
  85. package/dist/esm/helpers/createMediaStyle.native.js.map +2 -2
  86. package/dist/esm/helpers/createShallowSetState.js +1 -1
  87. package/dist/esm/helpers/createShallowSetState.mjs +1 -1
  88. package/dist/esm/helpers/createShallowSetState.mjs.map +1 -1
  89. package/dist/esm/helpers/createShallowSetState.native.js +1 -1
  90. package/dist/esm/helpers/createShallowSetState.native.js.map +1 -1
  91. package/dist/esm/helpers/expandStyle.js +2 -2
  92. package/dist/esm/helpers/expandStyle.js.map +1 -1
  93. package/dist/esm/helpers/expandStyle.mjs +2 -2
  94. package/dist/esm/helpers/expandStyle.mjs.map +1 -1
  95. package/dist/esm/helpers/expandStyle.native.js +1 -1
  96. package/dist/esm/helpers/expandStyle.native.js.map +1 -1
  97. package/dist/esm/helpers/getSplitStyles.js +35 -18
  98. package/dist/esm/helpers/getSplitStyles.js.map +1 -1
  99. package/dist/esm/helpers/getSplitStyles.mjs +29 -19
  100. package/dist/esm/helpers/getSplitStyles.mjs.map +1 -1
  101. package/dist/esm/helpers/getSplitStyles.native.js +25 -17
  102. package/dist/esm/helpers/getSplitStyles.native.js.map +2 -2
  103. package/dist/esm/helpers/getThemeCSSRules.js +7 -5
  104. package/dist/esm/helpers/getThemeCSSRules.js.map +1 -1
  105. package/dist/esm/helpers/getThemeCSSRules.mjs +7 -5
  106. package/dist/esm/helpers/getThemeCSSRules.mjs.map +1 -1
  107. package/dist/esm/helpers/log.js +9 -2
  108. package/dist/esm/helpers/log.js.map +1 -1
  109. package/dist/esm/helpers/log.mjs +9 -1
  110. package/dist/esm/helpers/log.mjs.map +1 -1
  111. package/dist/esm/helpers/log.native.js +10 -4
  112. package/dist/esm/helpers/log.native.js.map +2 -2
  113. package/dist/esm/helpers/propMapper.js +4 -3
  114. package/dist/esm/helpers/propMapper.js.map +1 -1
  115. package/dist/esm/helpers/propMapper.mjs +8 -8
  116. package/dist/esm/helpers/propMapper.mjs.map +1 -1
  117. package/dist/esm/helpers/propMapper.native.js +4 -3
  118. package/dist/esm/helpers/propMapper.native.js.map +2 -2
  119. package/dist/esm/hooks/useDisableSSR.js +2 -2
  120. package/dist/esm/hooks/useDisableSSR.js.map +1 -1
  121. package/dist/esm/hooks/useDisableSSR.mjs +2 -2
  122. package/dist/esm/hooks/useDisableSSR.mjs.map +1 -1
  123. package/dist/esm/hooks/useDisableSSR.native.js +2 -2
  124. package/dist/esm/hooks/useDisableSSR.native.js.map +2 -2
  125. package/dist/esm/hooks/useMedia.js +24 -8
  126. package/dist/esm/hooks/useMedia.js.map +1 -1
  127. package/dist/esm/hooks/useMedia.mjs +22 -11
  128. package/dist/esm/hooks/useMedia.mjs.map +1 -1
  129. package/dist/esm/hooks/useMedia.native.js +43 -8
  130. package/dist/esm/hooks/useMedia.native.js.map +2 -2
  131. package/dist/esm/hooks/useTheme.js +13 -6
  132. package/dist/esm/hooks/useTheme.js.map +1 -1
  133. package/dist/esm/hooks/useTheme.mjs +12 -5
  134. package/dist/esm/hooks/useTheme.mjs.map +1 -1
  135. package/dist/esm/hooks/useTheme.native.js +20 -9
  136. package/dist/esm/hooks/useTheme.native.js.map +2 -2
  137. package/dist/esm/views/TamaguiProvider.js +3 -2
  138. package/dist/esm/views/TamaguiProvider.js.map +1 -1
  139. package/dist/esm/views/TamaguiProvider.mjs +3 -2
  140. package/dist/esm/views/TamaguiProvider.mjs.map +1 -1
  141. package/dist/esm/views/TamaguiProvider.native.js +3 -2
  142. package/dist/esm/views/TamaguiProvider.native.js.map +2 -2
  143. package/dist/esm/views/ThemeProvider.js +2 -1
  144. package/dist/esm/views/ThemeProvider.js.map +1 -1
  145. package/dist/esm/views/ThemeProvider.mjs +2 -1
  146. package/dist/esm/views/ThemeProvider.mjs.map +1 -1
  147. package/dist/esm/views/ThemeProvider.native.js +2 -1
  148. package/dist/esm/views/ThemeProvider.native.js.map +2 -2
  149. package/dist/esm/views/html.js +1 -0
  150. package/dist/esm/views/html.js.map +6 -0
  151. package/dist/esm/views/html.mjs +2 -0
  152. package/dist/esm/views/html.mjs.map +1 -0
  153. package/dist/esm/views/html.native.js +1 -0
  154. package/dist/esm/views/html.native.js.map +6 -0
  155. package/package.json +11 -11
  156. package/src/config.ts +14 -0
  157. package/src/createComponent.tsx +25 -19
  158. package/src/createTamagui.ts +5 -3
  159. package/src/helpers/createMediaStyle.ts +2 -2
  160. package/src/helpers/createShallowSetState.tsx +1 -1
  161. package/src/helpers/expandStyle.ts +3 -3
  162. package/src/helpers/getSplitStyles.tsx +45 -15
  163. package/src/helpers/getThemeCSSRules.ts +7 -5
  164. package/src/helpers/log.ts +12 -5
  165. package/src/helpers/propMapper.ts +4 -3
  166. package/src/hooks/useDisableSSR.tsx +2 -2
  167. package/src/hooks/useMedia.tsx +32 -7
  168. package/src/hooks/useTheme.tsx +21 -4
  169. package/src/types.tsx +92 -15
  170. package/src/views/TamaguiProvider.tsx +7 -2
  171. package/src/views/ThemeProvider.tsx +6 -1
  172. package/types/config.d.ts +2 -1
  173. package/types/config.d.ts.map +1 -1
  174. package/types/createComponent.d.ts.map +1 -1
  175. package/types/createTamagui.d.ts.map +1 -1
  176. package/types/helpers/expandStyle.d.ts.map +1 -1
  177. package/types/helpers/getSplitStyles.d.ts.map +1 -1
  178. package/types/helpers/getThemeCSSRules.d.ts.map +1 -1
  179. package/types/helpers/log.d.ts.map +1 -1
  180. package/types/helpers/propMapper.d.ts.map +1 -1
  181. package/types/hooks/useConfiguration.d.ts +2 -41
  182. package/types/hooks/useConfiguration.d.ts.map +1 -1
  183. package/types/hooks/useMedia.d.ts +3 -1
  184. package/types/hooks/useMedia.d.ts.map +1 -1
  185. package/types/hooks/useTheme.d.ts.map +1 -1
  186. package/types/types.d.ts +82 -12
  187. package/types/types.d.ts.map +1 -1
  188. package/types/views/TamaguiProvider.d.ts.map +1 -1
  189. package/types/views/ThemeProvider.d.ts +1 -0
  190. package/types/views/ThemeProvider.d.ts.map +1 -1
  191. package/types/views/html.d.ts +1 -0
  192. package/types/views/html.d.ts.map +1 -0
package/src/types.tsx CHANGED
@@ -264,8 +264,7 @@ export type CreateTamaguiConfig<
264
264
  E extends GenericAnimations = GenericAnimations,
265
265
  F extends GenericFonts = GenericFonts,
266
266
  G extends OnlyAllowShorthandsSetting = OnlyAllowShorthandsSetting,
267
- H extends DefaultFontSetting = DefaultFontSetting,
268
- I extends GenericTamaguiSettings = GenericTamaguiSettings,
267
+ H extends GenericTamaguiSettings = GenericTamaguiSettings,
269
268
  > = {
270
269
  fonts: RemoveLanguagePostfixes<F>
271
270
  fontLanguages: GetLanguagePostfixes<F> extends never
@@ -282,8 +281,7 @@ export type CreateTamaguiConfig<
282
281
  media: D
283
282
  animations: AnimationDriver<E>
284
283
  onlyAllowShorthands: G
285
- defaultFont: H
286
- settings: I
284
+ settings: H
287
285
  }
288
286
 
289
287
  type GetLanguagePostfix<Set> = Set extends string
@@ -310,7 +308,7 @@ type GetLanguagePostfixes<F extends GenericFonts> = GetLanguagePostfix<keyof F>
310
308
  // body_en: any
311
309
  // }>['fonts']
312
310
 
313
- type ConfProps<A, B, C, D, E, F, G, H, I> = {
311
+ type ConfProps<A, B, C, D, E, F, G, I> = {
314
312
  tokens?: A
315
313
  themes?: B
316
314
  shorthands?: C
@@ -318,7 +316,6 @@ type ConfProps<A, B, C, D, E, F, G, H, I> = {
318
316
  animations?: E extends AnimationConfig ? AnimationDriver<E> : undefined
319
317
  fonts?: F
320
318
  onlyAllowShorthands?: G
321
- defaultFont?: H
322
319
  settings?: I
323
320
  }
324
321
 
@@ -348,8 +345,7 @@ export type InferTamaguiConfig<Conf> = Conf extends ConfProps<
348
345
  infer E,
349
346
  infer F,
350
347
  infer G,
351
- infer H,
352
- infer I
348
+ infer H
353
349
  >
354
350
  ? TamaguiInternalConfig<
355
351
  A extends GenericTokens ? A : EmptyTokens,
@@ -359,8 +355,7 @@ export type InferTamaguiConfig<Conf> = Conf extends ConfProps<
359
355
  E extends GenericAnimations ? E : EmptyAnimations,
360
356
  F extends GenericFonts ? F : EmptyFonts,
361
357
  G extends OnlyAllowShorthandsSetting ? G : OnlyAllowShorthandsSetting,
362
- H extends DefaultFontSetting ? H : DefaultFontSetting,
363
- I extends GenericTamaguiSettings ? I : EmptyTamaguiSettings
358
+ H extends GenericTamaguiSettings ? H : EmptyTamaguiSettings
364
359
  >
365
360
  : unknown
366
361
 
@@ -490,7 +485,7 @@ type AllowedStyleValuesSetting =
490
485
 
491
486
  type AutocompleteSpecificTokensSetting = boolean | 'except-special'
492
487
 
493
- type GenericTamaguiSettings = {
488
+ export interface GenericTamaguiSettings {
494
489
  /**
495
490
  * When true, flexBasis will be set to 0 when flex is positive. This will be
496
491
  * the default in v2 of Tamagui alongside an alternative mode for web compat.
@@ -597,6 +592,81 @@ type GenericTamaguiSettings = {
597
592
  | 'revert'
598
593
  | 'revert-layer'
599
594
  | 'unset'
595
+
596
+ /**
597
+ * Only allow shorthands when enabled. Recommended to be true to avoid having
598
+ * two ways to style the same property.
599
+ */
600
+ onlyAllowShorthands?: OnlyAllowShorthandsSetting
601
+
602
+ /**
603
+ * Define a default font, for better types and default font on Text
604
+ */
605
+ defaultFont?: string
606
+
607
+ /**
608
+ * Web-only: define CSS text-selection styles
609
+ */
610
+ selectionStyles?: (theme: Record<string, string>) => null | {
611
+ backgroundColor?: any
612
+ color?: any
613
+ }
614
+
615
+ /**
616
+ * If building a non-server rendered app, set this to true.
617
+ *
618
+ * For SSR compatibility on the web, Tamagui will render once with the settings
619
+ * from `mediaQueryDefaultActive` set for all media queries. Then, it will render
620
+ * again after the initial render using the proper media query values. This is so that
621
+ * hydration will match perfectly with the server.
622
+ *
623
+ * Setting disableSSR will avoid this second render by setting the media query state
624
+ * to the actual browser dimensions on initial load. This is only useful for client-only
625
+ * apps.
626
+ *
627
+ */
628
+ disableSSR?: boolean
629
+
630
+ /**
631
+ * Disable inserting a theme class in the DOM or context, allowing you to manually place it higher.
632
+ * For custom use cases like integration with next-theme.
633
+ */
634
+ disableRootThemeClass?: boolean
635
+
636
+ /**
637
+ * For the first render, determines which media queries are true, this only
638
+ * affects things on native or on web if you disableSSR, as otherwise Tamagui
639
+ * relies on CSS to avoid the need for re-rendering on first render.
640
+ */
641
+ mediaQueryDefaultActive?: Record<string, boolean>
642
+
643
+ /**
644
+ * What's between each CSS style rule, set to "\n" to be easier to read
645
+ * @default "\n" when NODE_ENV=development, "" otherwise
646
+ */
647
+ cssStyleSeparator?: string
648
+
649
+ /**
650
+ * (Advanced) on the web, tamagui treats `dark` and `light` themes as special
651
+ * and generates extra CSS to avoid having to re-render the entire page. this
652
+ * CSS relies on specificity hacks that multiply by your sub-themes. this sets
653
+ * the maxiumum number of nested dark/light themes you can do defaults to 3
654
+ * for a balance, but can be higher if you nest them deeply.
655
+ */
656
+ maxDarkLightNesting?: number
657
+
658
+ /**
659
+ * Adds @media(prefers-color-scheme) media queries for dark/light, must be set
660
+ * true if you are supporting system preference for light and dark mode themes
661
+ */
662
+ shouldAddPrefersColorThemes?: boolean
663
+
664
+ /**
665
+ * If you want to style your <body> tag to use themes, you must place the
666
+ * theme className onto the body element. This will do so. Otherwise, Tamagui
667
+ * will place the className onto the element rendered by the TamaguiProvider
668
+ */
669
+ themeClassNameOnRoot?: boolean
600
670
  }
601
671
 
602
672
  export type TamaguiSettings = TamaguiConfig['settings']
@@ -626,6 +696,7 @@ export type CreateTamaguiProps = {
626
696
  /**
627
697
  * Define a default font, for better types and default font on Text
628
698
  */
699
+ /** @deprecated moved into settings sub-object */
629
700
  defaultFont?: string
630
701
 
631
702
  /**
@@ -649,12 +720,14 @@ export type CreateTamaguiProps = {
649
720
  * apps.
650
721
  *
651
722
  */
723
+ /** @deprecated moved into settings sub-object */
652
724
  disableSSR?: boolean
653
725
 
654
726
  /**
655
727
  * Disable inserting a theme class in the DOM or context, allowing you to manually place it higher.
656
728
  * For custom use cases like integration with next-theme.
657
729
  */
730
+ /** @deprecated moved into settings sub-object */
658
731
  disableRootThemeClass?: boolean
659
732
 
660
733
  defaultProps?: Record<string, any> & {
@@ -665,10 +738,12 @@ export type CreateTamaguiProps = {
665
738
 
666
739
  // for the first render, determines which media queries are true
667
740
  // useful for SSR
741
+ /** @deprecated moved into settings sub-object */
668
742
  mediaQueryDefaultActive?: Record<string, boolean>
669
743
 
670
744
  // what's between each CSS style rule, set to "\n" to be easier to read
671
745
  // defaults: "\n" when NODE_ENV=development, "" otherwise
746
+ /** @deprecated moved into settings sub-object */
672
747
  cssStyleSeparator?: string
673
748
 
674
749
  // (Advanced)
@@ -677,17 +752,21 @@ export type CreateTamaguiProps = {
677
752
  // this CSS relies on specificity hacks that multiply by your sub-themes.
678
753
  // this sets the maxiumum number of nested dark/light themes you can do
679
754
  // defaults to 3 for a balance, but can be higher if you nest them deeply.
755
+ /** @deprecated moved into settings sub-object */
680
756
  maxDarkLightNesting?: number
681
757
 
682
758
  // adds @media(prefers-color-scheme) media queries for dark/light
759
+ /** @deprecated moved into settings sub-object */
683
760
  shouldAddPrefersColorThemes?: boolean
684
761
 
685
762
  // only if you put the theme classname on the html element we have to generate diff
763
+ /** @deprecated moved into settings sub-object */
686
764
  themeClassNameOnRoot?: boolean
687
765
 
688
766
  /**
689
767
  * Only allow shorthands when enabled
690
768
  */
769
+ /** @deprecated moved into settings sub-object */
691
770
  onlyAllowShorthands?: OnlyAllowShorthandsSetting
692
771
  }
693
772
 
@@ -706,10 +785,9 @@ export type TamaguiInternalConfig<
706
785
  E extends GenericAnimations = GenericAnimations,
707
786
  F extends GenericFonts = GenericFonts,
708
787
  G extends OnlyAllowShorthandsSetting = OnlyAllowShorthandsSetting,
709
- H extends DefaultFontSetting = DefaultFontSetting,
710
788
  I extends GenericTamaguiSettings = GenericTamaguiSettings,
711
789
  > = Omit<CreateTamaguiProps, keyof GenericTamaguiConfig> &
712
- Omit<CreateTamaguiConfig<A, B, C, D, E, F, G, H, I>, 'tokens'> & {
790
+ Omit<CreateTamaguiConfig<A, B, C, D, E, F, G, I>, 'tokens'> & {
713
791
  // TODO need to make it this but this breaks types, revisit
714
792
  // animations: E //AnimationDriver<E>
715
793
  // with $ prefixes for fast lookups (one time cost at startup vs every render)
@@ -722,7 +800,6 @@ export type TamaguiInternalConfig<
722
800
  parsed: boolean
723
801
  inverseShorthands: Record<string, string>
724
802
  reactNative?: any
725
- defaultFont?: H
726
803
  fontSizeTokens: Set<string>
727
804
  specificTokens: Record<string, Variable>
728
805
  settings: Omit<GenericTamaguiSettings, keyof I> & I
@@ -1045,7 +1122,7 @@ export type Token =
1045
1122
  export type ColorStyleProp = ThemeValueFallbackColor | ColorTokens
1046
1123
 
1047
1124
  // fonts
1048
- type DefaultFont = TamaguiConfig['defaultFont']
1125
+ type DefaultFont = TamaguiSettings['defaultFont']
1049
1126
 
1050
1127
  export type Fonts = DefaultFont extends string
1051
1128
  ? TamaguiConfig['fonts'][DefaultFont]
@@ -5,6 +5,7 @@ import { useDidHydrateOnceRoot } from '../hooks/useDidHydrateOnce'
5
5
  import { setupMediaListeners } from '../hooks/useMedia'
6
6
  import type { TamaguiProviderProps } from '../types'
7
7
  import { ThemeProvider } from './ThemeProvider'
8
+ import { getSetting } from '../config'
8
9
 
9
10
  export function TamaguiProvider({
10
11
  children,
@@ -39,8 +40,12 @@ export function TamaguiProvider({
39
40
  <UnmountedClassName>
40
41
  <ComponentContext.Provider animationDriver={config?.animations}>
41
42
  <ThemeProvider
42
- themeClassNameOnRoot={themeClassNameOnRoot ?? config?.themeClassNameOnRoot}
43
- disableRootThemeClass={disableRootThemeClass ?? config?.disableRootThemeClass}
43
+ themeClassNameOnRoot={
44
+ themeClassNameOnRoot ?? getSetting('themeClassNameOnRoot')
45
+ }
46
+ disableRootThemeClass={
47
+ disableRootThemeClass ?? getSetting('disableRootThemeClass')
48
+ }
44
49
  defaultTheme={defaultTheme ?? (config ? Object.keys(config.themes)[0] : '')}
45
50
  reset={reset}
46
51
  className={className}
@@ -3,11 +3,13 @@ import { useLayoutEffect } from 'react'
3
3
 
4
4
  import { THEME_CLASSNAME_PREFIX } from '../constants/constants'
5
5
  import { Theme } from './Theme'
6
+ import { getSetting } from '../config'
6
7
 
7
8
  export type ThemeProviderProps = {
8
9
  className?: string
9
10
  defaultTheme: string
10
11
  disableRootThemeClass?: boolean
12
+ /** @deprecated moved to createTamagui({ settings: { disableRootThemeClass } }) */
11
13
  themeClassNameOnRoot?: boolean
12
14
  children?: any
13
15
  reset?: boolean
@@ -19,7 +21,10 @@ export const ThemeProvider = (props: ThemeProviderProps) => {
19
21
  useLayoutEffect(() => {
20
22
  if (props.disableRootThemeClass) return
21
23
  const cn = `${THEME_CLASSNAME_PREFIX}${props.defaultTheme}`
22
- const target = props.themeClassNameOnRoot ? document.documentElement : document.body
24
+ const target =
25
+ props.themeClassNameOnRoot ?? getSetting('themeClassNameOnRoot')
26
+ ? document.documentElement
27
+ : document.body
23
28
  target.classList.add(cn)
24
29
  return () => {
25
30
  target.classList.remove(cn)
package/types/config.d.ts CHANGED
@@ -1,4 +1,5 @@
1
- import type { ConfigListener, TamaguiInternalConfig, Token, Tokens, TokensMerged } from './types';
1
+ import type { ConfigListener, GenericTamaguiSettings, TamaguiInternalConfig, Token, Tokens, TokensMerged } from './types';
2
+ export declare const getSetting: <Key extends keyof GenericTamaguiSettings>(key: Key) => GenericTamaguiSettings[Key];
2
3
  export declare const setConfig: (next: TamaguiInternalConfig) => void;
3
4
  export declare const setConfigFont: (name: string, font: any, fontParsed: any) => void;
4
5
  export declare const getConfig: () => TamaguiInternalConfig;
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,cAAc,EACd,qBAAqB,EACrB,KAAK,EACL,MAAM,EACN,YAAY,EACb,MAAM,SAAS,CAAA;AAIhB,eAAO,MAAM,SAAS,SAAU,qBAAqB,SAEpD,CAAA;AAED,eAAO,MAAM,aAAa,SAAU,MAAM,QAAQ,GAAG,cAAc,GAAG,SAMrE,CAAA;AAED,eAAO,MAAM,SAAS,6BASrB,CAAA;AAGD,wBAAgB,SAAS,CAAC,CAAC,EAAE,YAAY,QAExC;AAED,eAAO,MAAM,SAAS,mBAEnB;IACD;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB,KAAQ,YAQR,CAAA;AAED,eAAO,MAAM,cAAc,UAAW,KAAK,UAAU,MAAM,MAAM,6CAShE,CAAA;AAED,eAAO,MAAM,QAAQ,UAAW,KAAK,UAAU,MAAM,MAAM,+BAG1D,CAAA;AAED,eAAO,MAAM,aAAa,UAAW,KAAK,GAAG,OAAO,GAAG,MAAM,UAAU,MAAM,MAAM,QAGlF,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,SAAS,mBAvCnB;IACD;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB,KAAQ,YAkCyB,CAAA;AAElC,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;CAAqB,CAAA;AAE3C,eAAO,MAAM,eAAe,qBAA4B,CAAA;AAExD,eAAO,MAAM,gBAAgB,OAAQ,cAAc,SAMlD,CAAA;AAED,eAAO,MAAM,YAAY,QAAS,MAAM,SAAS,GAAG,SAGnD,CAAA;AAGD,eAAO,MAAM,OAAO,SAAU,MAAM,4DAQnC,CAAA;AAED,KAAK,SAAS,GAAG;IACf,UAAU,CAAC,EACP,OAAO,GACP;QACE,GAAG,CAAC,EAAE,MAAM,CAAA;QACZ,KAAK,CAAC,EAAE,MAAM,CAAA;KACf,CAAA;CACN,CAAA;AAED,eAAO,IAAI,SAAS,EAAE,SAAS,GAAG,SAAS,CAAA;AAE3C,wBAAgB,QAAQ,CAAC,IAAI,EAAE,SAAS,QAIvC"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,cAAc,EACd,sBAAsB,EACtB,qBAAqB,EACrB,KAAK,EACL,MAAM,EACN,YAAY,EACb,MAAM,SAAS,CAAA;AAIhB,eAAO,MAAM,UAAU,GAAI,GAAG,SAAS,MAAM,sBAAsB,OAC5D,GAAG,KACP,sBAAsB,CAAC,GAAG,CAS5B,CAAA;AAED,eAAO,MAAM,SAAS,SAAU,qBAAqB,SAEpD,CAAA;AAED,eAAO,MAAM,aAAa,SAAU,MAAM,QAAQ,GAAG,cAAc,GAAG,SAMrE,CAAA;AAED,eAAO,MAAM,SAAS,6BASrB,CAAA;AAGD,wBAAgB,SAAS,CAAC,CAAC,EAAE,YAAY,QAExC;AAED,eAAO,MAAM,SAAS,mBAEnB;IACD;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB,KAAQ,YAQR,CAAA;AAED,eAAO,MAAM,cAAc,UAAW,KAAK,UAAU,MAAM,MAAM,6CAShE,CAAA;AAED,eAAO,MAAM,QAAQ,UAAW,KAAK,UAAU,MAAM,MAAM,+BAG1D,CAAA;AAED,eAAO,MAAM,aAAa,UAAW,KAAK,GAAG,OAAO,GAAG,MAAM,UAAU,MAAM,MAAM,QAGlF,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,SAAS,mBAvCnB;IACD;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB,KAAQ,YAkCyB,CAAA;AAElC,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;CAAqB,CAAA;AAE3C,eAAO,MAAM,eAAe,qBAA4B,CAAA;AAExD,eAAO,MAAM,gBAAgB,OAAQ,cAAc,SAMlD,CAAA;AAED,eAAO,MAAM,YAAY,QAAS,MAAM,SAAS,GAAG,SAGnD,CAAA;AAGD,eAAO,MAAM,OAAO,SAAU,MAAM,4DAQnC,CAAA;AAED,KAAK,SAAS,GAAG;IACf,UAAU,CAAC,EACP,OAAO,GACP;QACE,GAAG,CAAC,EAAE,MAAM,CAAA;QACZ,KAAK,CAAC,EAAE,MAAM,CAAA;KACf,CAAA;CACN,CAAA;AAED,eAAO,IAAI,SAAS,EAAE,SAAS,GAAG,SAAS,CAAA;AAE3C,wBAAgB,QAAQ,CAAC,IAAI,EAAE,SAAS,QAIvC"}
@@ -1 +1 @@
1
- {"version":3,"file":"createComponent.d.ts","sourceRoot":"","sources":["../src/createComponent.tsx"],"names":[],"mappings":"AAQA,OAAO,KAYN,MAAM,OAAO,CAAA;AA0Bd,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAA;AAG/E,OAAO,KAAK,EACV,iBAAiB,EACjB,SAAS,EAKT,cAAc,EACd,UAAU,EACV,WAAW,EACX,gBAAgB,EAChB,kBAAkB,EAClB,UAAU,EACV,YAAY,EAEZ,gBAAgB,EAChB,wBAAwB,EACxB,cAAc,EACd,qBAAqB,EACrB,SAAS,EAIV,MAAM,SAAS,CAAA;AAchB,KAAK,iBAAiB,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,qBAAqB,CAAC,CAAC,CAAA;AAEpF,eAAO,MAAM,kBAAkB,wBAA+B,CAAA;AAkE9D,eAAO,MAAM,iBAAiB,UACrB,UAAU,GAAG,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,+BACtB,iBAAiB,gBAChC,YAAY,UAClB,qBAAqB;;;;;;;;;;;;;;;;;;;CA+M9B,CAAA;AAuBD,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,wEAmlC3B;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,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,KAAK,CAAC,EAAE,SAAS,CAAA;CAClB,CAAA;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,mBAAmB,mBA+FxD;AAwDD,eAAO,MAAM,UAAU,UAAW,GAAG,QAQpC,CAAA;AAED,eAAO,MAAM,uBAAuB,uFAOjC;IACD,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,eAAe,EAAE,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,qBAAqB,CAAC,GAAG,SAAS,KAAK,IAAI,CAAA;IAC5E,YAAY,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IAC1B,WAAW,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IACzB,gBAAgB,EAAE,iBAAiB,CAAA;IACnC,KAAK,EAAE,qBAAqB,CAAA;CAC7B,4CAqCA,CAAA"}
1
+ {"version":3,"file":"createComponent.d.ts","sourceRoot":"","sources":["../src/createComponent.tsx"],"names":[],"mappings":"AAQA,OAAO,KAYN,MAAM,OAAO,CAAA;AA+Bd,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAA;AAG/E,OAAO,KAAK,EACV,iBAAiB,EACjB,SAAS,EAKT,cAAc,EACd,UAAU,EACV,WAAW,EACX,gBAAgB,EAChB,kBAAkB,EAClB,UAAU,EACV,YAAY,EAEZ,gBAAgB,EAChB,wBAAwB,EACxB,cAAc,EACd,qBAAqB,EACrB,SAAS,EAIV,MAAM,SAAS,CAAA;AAchB,KAAK,iBAAiB,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,qBAAqB,CAAC,CAAC,CAAA;AAEpF,eAAO,MAAM,kBAAkB,wBAA+B,CAAA;AAkE9D,eAAO,MAAM,iBAAiB,UACrB,UAAU,GAAG,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,+BACtB,iBAAiB,gBAChC,YAAY,UAClB,qBAAqB;;;;;;;;;;;;;;;;;;;CA+M9B,CAAA;AAuBD,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,wEA+lC3B;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,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,KAAK,CAAC,EAAE,SAAS,CAAA;CAClB,CAAA;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,mBAAmB,mBA+FxD;AA6CD,eAAO,MAAM,UAAU,UAAW,GAAG,QAQpC,CAAA;AAED,eAAO,MAAM,uBAAuB,uFAOjC;IACD,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,eAAe,EAAE,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,qBAAqB,CAAC,GAAG,SAAS,KAAK,IAAI,CAAA;IAC5E,YAAY,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IAC1B,WAAW,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IACzB,gBAAgB,EAAE,iBAAiB,CAAA;IACnC,KAAK,EAAE,qBAAqB,CAAA;CAC7B,4CAqCA,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"createTamagui.d.ts","sourceRoot":"","sources":["../src/createTamagui.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EACV,kBAAkB,EAKlB,kBAAkB,EAMnB,MAAM,SAAS,CAAA;AAKhB,wBAAgB,aAAa,CAAC,IAAI,SAAS,kBAAkB,EAC3D,QAAQ,EAAE,IAAI,GACb,kBAAkB,CAAC,IAAI,CAAC,CAwQ1B"}
1
+ {"version":3,"file":"createTamagui.d.ts","sourceRoot":"","sources":["../src/createTamagui.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EACV,kBAAkB,EAKlB,kBAAkB,EAMnB,MAAM,SAAS,CAAA;AAKhB,wBAAgB,aAAa,CAAC,IAAI,SAAS,kBAAkB,EAC3D,QAAQ,EAAE,IAAI,GACb,kBAAkB,CAAC,IAAI,CAAC,CA0Q1B"}
@@ -1 +1 @@
1
- {"version":3,"file":"expandStyle.d.ts","sourceRoot":"","sources":["../../src/helpers/expandStyle.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAa/C,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,eAAe,CA+CpE"}
1
+ {"version":3,"file":"expandStyle.d.ts","sourceRoot":"","sources":["../../src/helpers/expandStyle.ts"],"names":[],"mappings":"AAAA;;;GAGG;AASH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAQ/C,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,eAAe,CA+CpE"}
@@ -1 +1 @@
1
- {"version":3,"file":"getSplitStyles.d.ts","sourceRoot":"","sources":["../../src/helpers/getSplitStyles.tsx"],"names":[],"mappings":"AAgCA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAA;AAChF,OAAO,KAAK,EAEV,iBAAiB,EACjB,SAAS,EACT,cAAc,EACd,aAAa,EAOb,eAAe,EACf,YAAY,EAGZ,SAAS,EACT,WAAW,EAEZ,MAAM,UAAU,CAAA;AAsBjB,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,EACjB,wBAAwB,CAAC,EAAE,OAAO,KAC/B,cAAc,CAAA;AAEnB,eAAO,MAAM,UAAU,MAAM,CAAA;AA8B7B,eAAO,MAAM,cAAc,EAAE,aA+uC5B,CAAA;AAgED,eAAO,MAAM,WAAW,eACV,aAAa,UACjB,MAAM,WACL,MAAM,wBACO,OAAO,KAC5B,SA2BF,CAAA;AAQD,eAAO,MAAM,cAAc,EAAE,aAa5B,CAAA"}
1
+ {"version":3,"file":"getSplitStyles.d.ts","sourceRoot":"","sources":["../../src/helpers/getSplitStyles.tsx"],"names":[],"mappings":"AAgCA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAA;AAChF,OAAO,KAAK,EAEV,iBAAiB,EACjB,SAAS,EACT,cAAc,EACd,aAAa,EAOb,eAAe,EACf,YAAY,EAGZ,SAAS,EACT,WAAW,EAEZ,MAAM,UAAU,CAAA;AAwBjB,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,EACjB,wBAAwB,CAAC,EAAE,OAAO,KAC/B,cAAc,CAAA;AAEnB,eAAO,MAAM,UAAU,MAAM,CAAA;AA8B7B,eAAO,MAAM,cAAc,EAAE,aAuvC5B,CAAA;AAgED,eAAO,MAAM,WAAW,eACV,aAAa,UACjB,MAAM,WACL,MAAM,wBACO,OAAO,KAC5B,SA2BF,CAAA;AAQD,eAAO,MAAM,cAAc,EAAE,aAa5B,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"getThemeCSSRules.d.ts","sourceRoot":"","sources":["../../src/helpers/getThemeCSSRules.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAG/D,wBAAgB,gBAAgB,CAAC,KAAK,EAAE;IACtC,MAAM,EAAE,kBAAkB,CAAA;IAC1B,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,EAAE,WAAW,CAAA;IAClB,KAAK,EAAE,MAAM,EAAE,CAAA;IACf,YAAY,CAAC,EAAE,OAAO,CAAA;CACvB,YAkKA"}
1
+ {"version":3,"file":"getThemeCSSRules.d.ts","sourceRoot":"","sources":["../../src/helpers/getThemeCSSRules.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAI/D,wBAAgB,gBAAgB,CAAC,KAAK,EAAE;IACtC,MAAM,EAAE,kBAAkB,CAAA;IAC1B,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,EAAE,WAAW,CAAA;IAClB,KAAK,EAAE,MAAM,EAAE,CAAA;IACf,YAAY,CAAC,EAAE,OAAO,CAAA;CACvB,YAmKA"}
@@ -1 +1 @@
1
- {"version":3,"file":"log.d.ts","sourceRoot":"","sources":["../../src/helpers/log.ts"],"names":[],"mappings":"AAAA,wBAAgB,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,QAQjC"}
1
+ {"version":3,"file":"log.d.ts","sourceRoot":"","sources":["../../src/helpers/log.ts"],"names":[],"mappings":"AAEA,wBAAgB,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,QAajC"}
@@ -1 +1 @@
1
- {"version":3,"file":"propMapper.d.ts","sourceRoot":"","sources":["../../src/helpers/propMapper.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EACV,aAAa,EACb,UAAU,EACV,iBAAiB,EAEjB,qBAAqB,EAEtB,MAAM,UAAU,CAAA;AAQjB,eAAO,MAAM,UAAU,EAAE,UAiFxB,CAAA;AAgGD,wBAAgB,+BAA+B,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,qBAAqB,sBAkBtF;AAMD,eAAO,MAAM,uBAAuB,cAAe,GAAG,QAErD,CAAA;AAoJD,eAAO,MAAM,cAAc,QACpB,MAAM,SACJ,MAAM,aACF,iBAAiB,0BAChB,OAAO,CAAC,aAAa,CAAC,QAqGnC,CAAA"}
1
+ {"version":3,"file":"propMapper.d.ts","sourceRoot":"","sources":["../../src/helpers/propMapper.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EACV,aAAa,EACb,UAAU,EACV,iBAAiB,EAEjB,qBAAqB,EAEtB,MAAM,UAAU,CAAA;AAQjB,eAAO,MAAM,UAAU,EAAE,UAkFxB,CAAA;AAgGD,wBAAgB,+BAA+B,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,qBAAqB,sBAkBtF;AAMD,eAAO,MAAM,uBAAuB,cAAe,GAAG,QAErD,CAAA;AAoJD,eAAO,MAAM,cAAc,QACpB,MAAM,SACJ,MAAM,aACF,iBAAiB,0BAChB,OAAO,CAAC,aAAa,CAAC,QAqGnC,CAAA"}
@@ -7,6 +7,7 @@ export declare const useConfiguration: () => {
7
7
  language: import("../views/FontLanguage.types").LanguageContextType | null;
8
8
  unset?: import("..").BaseStyleProps;
9
9
  reactNative?: any;
10
+ defaultFont?: string;
10
11
  selectionStyles?: (theme: Record<string, string>) => null | {
11
12
  backgroundColor?: any;
12
13
  color?: any;
@@ -54,47 +55,7 @@ export declare const useConfiguration: () => {
54
55
  };
55
56
  };
56
57
  onlyAllowShorthands: boolean | undefined;
57
- defaultFont: string | undefined;
58
- settings: {
59
- styleCompat?: "react-native";
60
- allowedStyleValues?: (boolean | "strict" | "somewhat-strict" | "strict-web" | "somewhat-strict-web") | {
61
- space?: "number" | (boolean | "strict" | "somewhat-strict" | "strict-web" | "somewhat-strict-web") | "percent";
62
- size?: "number" | (boolean | "strict" | "somewhat-strict" | "strict-web" | "somewhat-strict-web") | "percent";
63
- radius?: "number" | (boolean | "strict" | "somewhat-strict" | "strict-web" | "somewhat-strict-web");
64
- zIndex?: "number" | (boolean | "strict" | "somewhat-strict" | "strict-web" | "somewhat-strict-web");
65
- color?: (boolean | "strict" | "somewhat-strict" | "strict-web" | "somewhat-strict-web") | "named";
66
- };
67
- autocompleteSpecificTokens?: boolean | "except-special";
68
- mediaPropOrder?: boolean;
69
- fastSchemeChange?: boolean;
70
- webContainerType?: "normal" | "size" | "inline-size" | "inherit" | "initial" | "revert" | "revert-layer" | "unset";
71
- } & Omit<{
72
- styleCompat?: "react-native";
73
- allowedStyleValues?: (boolean | "strict" | "somewhat-strict" | "strict-web" | "somewhat-strict-web") | {
74
- space?: "number" | (boolean | "strict" | "somewhat-strict" | "strict-web" | "somewhat-strict-web") | "percent";
75
- size?: "number" | (boolean | "strict" | "somewhat-strict" | "strict-web" | "somewhat-strict-web") | "percent";
76
- radius?: "number" | (boolean | "strict" | "somewhat-strict" | "strict-web" | "somewhat-strict-web");
77
- zIndex?: "number" | (boolean | "strict" | "somewhat-strict" | "strict-web" | "somewhat-strict-web");
78
- color?: (boolean | "strict" | "somewhat-strict" | "strict-web" | "somewhat-strict-web") | "named";
79
- };
80
- autocompleteSpecificTokens?: boolean | "except-special";
81
- mediaPropOrder?: boolean;
82
- fastSchemeChange?: boolean;
83
- webContainerType?: "normal" | "size" | "inline-size" | "inherit" | "initial" | "revert" | "revert-layer" | "unset";
84
- }, keyof {
85
- styleCompat?: "react-native";
86
- allowedStyleValues?: (boolean | "strict" | "somewhat-strict" | "strict-web" | "somewhat-strict-web") | {
87
- space?: "number" | (boolean | "strict" | "somewhat-strict" | "strict-web" | "somewhat-strict-web") | "percent";
88
- size?: "number" | (boolean | "strict" | "somewhat-strict" | "strict-web" | "somewhat-strict-web") | "percent";
89
- radius?: "number" | (boolean | "strict" | "somewhat-strict" | "strict-web" | "somewhat-strict-web");
90
- zIndex?: "number" | (boolean | "strict" | "somewhat-strict" | "strict-web" | "somewhat-strict-web");
91
- color?: (boolean | "strict" | "somewhat-strict" | "strict-web" | "somewhat-strict-web") | "named";
92
- };
93
- autocompleteSpecificTokens?: boolean | "except-special";
94
- mediaPropOrder?: boolean;
95
- fastSchemeChange?: boolean;
96
- webContainerType?: "normal" | "size" | "inline-size" | "inherit" | "initial" | "revert" | "revert-layer" | "unset";
97
- }>;
58
+ settings: import("..").GenericTamaguiSettings & Omit<import("..").GenericTamaguiSettings, keyof import("..").GenericTamaguiSettings>;
98
59
  tokens: Omit<{
99
60
  [x: string]: {
100
61
  [x: string]: import("..").Variable<any> | import("..").Variable<string> | import("..").Variable<number> | import("..").Variable<import("..").VariableValGeneric>;
@@ -1 +1 @@
1
- {"version":3,"file":"useConfiguration.d.ts","sourceRoot":"","sources":["../../src/hooks/useConfiguration.tsx"],"names":[],"mappings":"AAKA,eAAO,MAAM,gBAAgB;;;;;;;;;;uBASgwiB,CAAC;aAAe,CAAC;;;;aAA43B,CAAC;YAAqB,CAAC;cAAsB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CADvtkB,CAAA"}
1
+ {"version":3,"file":"useConfiguration.d.ts","sourceRoot":"","sources":["../../src/hooks/useConfiguration.tsx"],"names":[],"mappings":"AAKA,eAAO,MAAM,gBAAgB;;;;;;;;;;;uBAS4wnB,CAAC;aAAe,CAAC;;;;aAAo+B,CAAC;YAAqB,CAAC;cAAsB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAD30pB,CAAA"}
@@ -1,4 +1,4 @@
1
- import type { ComponentContextI, DebugProp, IsMediaType, MediaQueries, MediaQueryObject, MediaQueryState, TamaguiInternalConfig, UseMediaState } from '../types';
1
+ import type { ComponentContextI, DebugProp, IsMediaType, LayoutEvent, MediaQueries, MediaQueryObject, MediaQueryState, TamaguiInternalConfig, UseMediaState } from '../types';
2
2
  export declare let mediaState: MediaQueryState;
3
3
  export declare const mediaQueryConfig: MediaQueries;
4
4
  export declare const getMedia: () => MediaQueryState;
@@ -17,6 +17,8 @@ type MediaState = {
17
17
  };
18
18
  export declare function setMediaShouldUpdate(ref: any, props: MediaState): WeakMap<any, MediaState>;
19
19
  export declare function useMedia(uidIn?: any, componentContext?: ComponentContextI, debug?: DebugProp): UseMediaState;
20
+ export declare function _dmt(val: boolean): void;
21
+ export declare function getMediaState(mediaGroups: Set<string>, layout: LayoutEvent['nativeEvent']['layout']): Record<string, boolean>;
20
22
  export declare const getMediaImportanceIfMoreImportant: (mediaKey: string, key: string, importancesUsed: Record<string, number>, isSizeMedia: boolean) => number | null;
21
23
  export declare function mediaObjectToString(query: string | MediaQueryObject, key?: string): string;
22
24
  export declare function mediaKeyToQuery(key: string): string;
@@ -1 +1 @@
1
- {"version":3,"file":"useMedia.d.ts","sourceRoot":"","sources":["../../src/hooks/useMedia.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EACV,iBAAiB,EACjB,SAAS,EACT,WAAW,EACX,YAAY,EACZ,gBAAgB,EAChB,eAAe,EACf,qBAAqB,EACrB,aAAa,EACd,MAAM,UAAU,CAAA;AAGjB,eAAO,IAAI,UAAU,EAAE,eAmBN,CAAA;AAEjB,eAAO,MAAM,gBAAgB,EAAE,YAAiB,CAAA;AAEhD,eAAO,MAAM,QAAQ,uBAAmB,CAAA;AAExC,eAAO,MAAM,SAAS,aAAoB,CAAA;AAI1C,eAAO,MAAM,UAAU,QAAS,MAAM,KAAG,WAOxC,CAAA;AAUD,eAAO,MAAM,qBAAqB,QAAS,MAAM,WAchD,CAAA;AAMD,eAAO,MAAM,cAAc,WAAY,qBAAqB,SAiB3D,CAAA;AAaD,wBAAgB,mBAAmB,SAiClC;AAkBD,KAAK,cAAc,GAAG;IACpB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CACnB,CAAA;AAED,KAAK,UAAU,GAAG;IAChB,IAAI,CAAC,EAAE,cAAc,CAAA;IACrB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAA;CACtC,CAAA;AAID,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,UAAU,4BAK/D;AAcD,wBAAgB,QAAQ,CACtB,KAAK,CAAC,EAAE,GAAG,EACX,gBAAgB,CAAC,EAAE,iBAAiB,EACpC,KAAK,CAAC,EAAE,SAAS,GAChB,aAAa,CA6Ef;AAED,eAAO,MAAM,iCAAiC,aAClC,MAAM,OACX,MAAM,mBACM,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,eAC1B,OAAO,kBAQrB,CAAA;AASD,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,gBAAgB,EAAE,GAAG,CAAC,EAAE,MAAM,UAwBjF;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,UAE1C;AAED,wBAAgB,aAAa,CAC3B,GAAG,EAAE,MAAM,EACX,UAAU,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,WAY9C"}
1
+ {"version":3,"file":"useMedia.d.ts","sourceRoot":"","sources":["../../src/hooks/useMedia.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EACV,iBAAiB,EACjB,SAAS,EACT,WAAW,EACX,WAAW,EACX,YAAY,EACZ,gBAAgB,EAChB,eAAe,EACf,qBAAqB,EACrB,aAAa,EACd,MAAM,UAAU,CAAA;AAGjB,eAAO,IAAI,UAAU,EAAE,eAmBN,CAAA;AAEjB,eAAO,MAAM,gBAAgB,EAAE,YAAiB,CAAA;AAEhD,eAAO,MAAM,QAAQ,uBAAmB,CAAA;AAExC,eAAO,MAAM,SAAS,aAAoB,CAAA;AAI1C,eAAO,MAAM,UAAU,QAAS,MAAM,KAAG,WAOxC,CAAA;AAUD,eAAO,MAAM,qBAAqB,QAAS,MAAM,WAchD,CAAA;AAMD,eAAO,MAAM,cAAc,WAAY,qBAAqB,SAkB3D,CAAA;AAaD,wBAAgB,mBAAmB,SAiClC;AAkBD,KAAK,cAAc,GAAG;IACpB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CACnB,CAAA;AAED,KAAK,UAAU,GAAG;IAChB,IAAI,CAAC,EAAE,cAAc,CAAA;IACrB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAA;CACtC,CAAA;AAID,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,UAAU,4BAK/D;AAcD,wBAAgB,QAAQ,CACtB,KAAK,CAAC,EAAE,GAAG,EACX,gBAAgB,CAAC,EAAE,iBAAiB,EACpC,KAAK,CAAC,EAAE,SAAS,GAChB,aAAa,CA6Ef;AAID,wBAAgB,IAAI,CAAC,GAAG,EAAE,OAAO,QAEhC;AAED,wBAAgB,aAAa,CAC3B,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,EACxB,MAAM,EAAE,WAAW,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,2BAc7C;AAED,eAAO,MAAM,iCAAiC,aAClC,MAAM,OACX,MAAM,mBACM,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,eAC1B,OAAO,kBAOrB,CAAA;AASD,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,gBAAgB,EAAE,GAAG,CAAC,EAAE,MAAM,UAwBjF;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,UAE1C;AAED,wBAAgB,aAAa,CAC3B,GAAG,EAAE,MAAM,EACX,UAAU,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,WAY9C"}
@@ -1 +1 @@
1
- {"version":3,"file":"useTheme.d.ts","sourceRoot":"","sources":["../../src/hooks/useTheme.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAEjD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAChE,OAAO,EAAE,YAAY,EAA4B,MAAM,yBAAyB,CAAA;AAGhF,OAAO,KAAK,EACV,SAAS,EACT,WAAW,EACX,UAAU,EACV,MAAM,EACN,sBAAsB,EACtB,WAAW,EACX,kBAAkB,EACnB,MAAM,UAAU,CAAA;AAEjB,MAAM,MAAM,oBAAoB,GAAG;IACjC,KAAK,CAAC,EAAE,iBAAiB,CAAA;IACzB,YAAY,CAAC,EAAE,YAAY,GAAG,IAAI,CAAA;IAClC,UAAU,EAAE,OAAO,CAAA;IAGnB,QAAQ,CAAC,EAAE,IAAI,GAAG,OAAO,CAAA;IACzB,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB,CAAA;AAcD,MAAM,MAAM,aAAa,CAAC,GAAG,IAAI,GAAG,GAAG;IACrC;;;;;;;;;OASG;IACH,GAAG,EAAE,CACH,QAAQ,CAAC,EAAE,KAAK,KAEd,MAAM,GACN,CAAC,GAAG,SAAS,QAAQ,CAAC,MAAM,CAAC,CAAC,GAC1B,CAAC,SAAS,kBAAkB,GAC1B,GAAG,GACH,OAAO,CAAC,CAAC,EAAE,QAAQ,CAAC,GACtB,GAAG,SAAS,WAAW,GACrB,MAAM,GAAG,MAAM,GACf,OAAO,CAAC,CAAA;CACnB,CAAA;AAED,MAAM,MAAM,cAAc,GAAG;KAC1B,GAAG,IAAI,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,GAAG,aAAa,CAC/D,GAAG,SAAS,MAAM,WAAW,GAAG,WAAW,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,CACjE;CACF,GAAG;KAED,GAAG,IAAI,MAAM,GAAG,EAAE,CAAC,CAAC,EAAE,aAAa,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;CACpD,CAAA;AAYD,eAAO,MAAM,QAAQ,WAAW,UAAU,KAG1B,cACf,CAAA;AAED,eAAO,MAAM,iBAAiB,UACrB,sBAAsB,KAC5B,CAAC,oBAAoB,EAAE,WAAW,CA8DpC,CAAA;AAED,wBAAgB,eAAe,CAC7B,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,iBAAiB,EAC1C,KAAK,UAAQ,EACb,YAAY,CAAC,EAAE,YAAY,EAC3B,IAAI,CAAC,EAAE,MAAM,EAAE,EACf,KAAK,CAAC,EAAE,SAAS,GAChB,cAAc,CA0GhB;AAeD,eAAO,MAAM,mBAAmB,mBAA0B,CAAA;AAO1D,eAAO,MAAM,eAAe,OAAQ,MAAM,6BAEzC,CAAA;AASD,eAAO,MAAM,oBAAoB,UACxB,sBAAsB,2BAEtB,MAAM,EAAE,iBACA,MAAM,OAAO,GAAG,SAAS,KACvC,oBA8RF,CAAA"}
1
+ {"version":3,"file":"useTheme.d.ts","sourceRoot":"","sources":["../../src/hooks/useTheme.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAEjD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAChE,OAAO,EAAE,YAAY,EAA4B,MAAM,yBAAyB,CAAA;AAGhF,OAAO,KAAK,EACV,SAAS,EACT,WAAW,EACX,UAAU,EACV,MAAM,EACN,sBAAsB,EACtB,WAAW,EACX,kBAAkB,EACnB,MAAM,UAAU,CAAA;AAEjB,MAAM,MAAM,oBAAoB,GAAG;IACjC,KAAK,CAAC,EAAE,iBAAiB,CAAA;IACzB,YAAY,CAAC,EAAE,YAAY,GAAG,IAAI,CAAA;IAClC,UAAU,EAAE,OAAO,CAAA;IAGnB,QAAQ,CAAC,EAAE,IAAI,GAAG,OAAO,CAAA;IACzB,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB,CAAA;AAcD,MAAM,MAAM,aAAa,CAAC,GAAG,IAAI,GAAG,GAAG;IACrC;;;;;;;;;OASG;IACH,GAAG,EAAE,CACH,QAAQ,CAAC,EAAE,KAAK,KAEd,MAAM,GACN,CAAC,GAAG,SAAS,QAAQ,CAAC,MAAM,CAAC,CAAC,GAC1B,CAAC,SAAS,kBAAkB,GAC1B,GAAG,GACH,OAAO,CAAC,CAAC,EAAE,QAAQ,CAAC,GACtB,GAAG,SAAS,WAAW,GACrB,MAAM,GAAG,MAAM,GACf,OAAO,CAAC,CAAA;CACnB,CAAA;AAED,MAAM,MAAM,cAAc,GAAG;KAC1B,GAAG,IAAI,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,GAAG,aAAa,CAC/D,GAAG,SAAS,MAAM,WAAW,GAAG,WAAW,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,CACjE;CACF,GAAG;KAED,GAAG,IAAI,MAAM,GAAG,EAAE,CAAC,CAAC,EAAE,aAAa,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;CACpD,CAAA;AAYD,eAAO,MAAM,QAAQ,WAAW,UAAU,KAG1B,cACf,CAAA;AAED,eAAO,MAAM,iBAAiB,UACrB,sBAAsB,KAC5B,CAAC,oBAAoB,EAAE,WAAW,CA8DpC,CAAA;AAED,wBAAgB,eAAe,CAC7B,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,iBAAiB,EAC1C,KAAK,UAAQ,EACb,YAAY,CAAC,EAAE,YAAY,EAC3B,IAAI,CAAC,EAAE,MAAM,EAAE,EACf,KAAK,CAAC,EAAE,SAAS,GAChB,cAAc,CA0GhB;AAeD,eAAO,MAAM,mBAAmB,mBAA0B,CAAA;AAO1D,eAAO,MAAM,eAAe,OAAQ,MAAM,6BAEzC,CAAA;AAsBD,eAAO,MAAM,oBAAoB,UACxB,sBAAsB,2BAEtB,MAAM,EAAE,iBACA,MAAM,OAAO,GAAG,SAAS,KACvC,oBAkSF,CAAA"}
package/types/types.d.ts CHANGED
@@ -170,8 +170,7 @@ export interface TamaguiCustomConfig {
170
170
  export interface TamaguiConfig extends Omit<GenericTamaguiConfig, keyof TamaguiCustomConfig>, TamaguiCustomConfig {
171
171
  }
172
172
  type OnlyAllowShorthandsSetting = boolean | undefined;
173
- type DefaultFontSetting = string | undefined;
174
- export type CreateTamaguiConfig<A extends GenericTokens, B extends GenericThemes, C extends GenericShorthands = GenericShorthands, D extends GenericMedia = GenericMedia, E extends GenericAnimations = GenericAnimations, F extends GenericFonts = GenericFonts, G extends OnlyAllowShorthandsSetting = OnlyAllowShorthandsSetting, H extends DefaultFontSetting = DefaultFontSetting, I extends GenericTamaguiSettings = GenericTamaguiSettings> = {
173
+ export type CreateTamaguiConfig<A extends GenericTokens, B extends GenericThemes, C extends GenericShorthands = GenericShorthands, D extends GenericMedia = GenericMedia, E extends GenericAnimations = GenericAnimations, F extends GenericFonts = GenericFonts, G extends OnlyAllowShorthandsSetting = OnlyAllowShorthandsSetting, H extends GenericTamaguiSettings = GenericTamaguiSettings> = {
175
174
  fonts: RemoveLanguagePostfixes<F>;
176
175
  fontLanguages: GetLanguagePostfixes<F> extends never ? string[] : GetLanguagePostfixes<F>[];
177
176
  tokens: A;
@@ -184,8 +183,7 @@ export type CreateTamaguiConfig<A extends GenericTokens, B extends GenericThemes
184
183
  media: D;
185
184
  animations: AnimationDriver<E>;
186
185
  onlyAllowShorthands: G;
187
- defaultFont: H;
188
- settings: I;
186
+ settings: H;
189
187
  };
190
188
  type GetLanguagePostfix<Set> = Set extends string ? Set extends `${string}_${infer Postfix}` ? Postfix : never : never;
191
189
  type OmitLanguagePostfix<Set> = Set extends string ? Set extends `${infer Prefix}_${string}` ? Prefix : Set : never;
@@ -193,7 +191,7 @@ type RemoveLanguagePostfixes<F extends GenericFonts> = {
193
191
  [Key in OmitLanguagePostfix<keyof F>]: F[Key];
194
192
  };
195
193
  type GetLanguagePostfixes<F extends GenericFonts> = GetLanguagePostfix<keyof F>;
196
- type ConfProps<A, B, C, D, E, F, G, H, I> = {
194
+ type ConfProps<A, B, C, D, E, F, G, I> = {
197
195
  tokens?: A;
198
196
  themes?: B;
199
197
  shorthands?: C;
@@ -201,7 +199,6 @@ type ConfProps<A, B, C, D, E, F, G, H, I> = {
201
199
  animations?: E extends AnimationConfig ? AnimationDriver<E> : undefined;
202
200
  fonts?: F;
203
201
  onlyAllowShorthands?: G;
204
- defaultFont?: H;
205
202
  settings?: I;
206
203
  };
207
204
  type EmptyTokens = {
@@ -220,7 +217,7 @@ type EmptyTamaguiSettings = {
220
217
  allowedStyleValues: false;
221
218
  autocompleteSpecificTokens: 'except-special';
222
219
  };
223
- export type InferTamaguiConfig<Conf> = Conf extends ConfProps<infer A, infer B, infer C, infer D, infer E, infer F, infer G, infer H, infer I> ? TamaguiInternalConfig<A extends GenericTokens ? A : EmptyTokens, B extends GenericThemes ? B : EmptyThemes, C extends GenericShorthands ? C : EmptyShorthands, D extends GenericMedia ? D : EmptyMedia, E extends GenericAnimations ? E : EmptyAnimations, F extends GenericFonts ? F : EmptyFonts, G extends OnlyAllowShorthandsSetting ? G : OnlyAllowShorthandsSetting, H extends DefaultFontSetting ? H : DefaultFontSetting, I extends GenericTamaguiSettings ? I : EmptyTamaguiSettings> : unknown;
220
+ export type InferTamaguiConfig<Conf> = Conf extends ConfProps<infer A, infer B, infer C, infer D, infer E, infer F, infer G, infer H> ? TamaguiInternalConfig<A extends GenericTokens ? A : EmptyTokens, B extends GenericThemes ? B : EmptyThemes, C extends GenericShorthands ? C : EmptyShorthands, D extends GenericMedia ? D : EmptyMedia, E extends GenericAnimations ? E : EmptyAnimations, F extends GenericFonts ? F : EmptyFonts, G extends OnlyAllowShorthandsSetting ? G : OnlyAllowShorthandsSetting, H extends GenericTamaguiSettings ? H : EmptyTamaguiSettings> : unknown;
224
221
  export type GenericTamaguiConfig = CreateTamaguiConfig<GenericTokens, GenericThemes, GenericShorthands, GenericMedia, GenericAnimations, GenericFonts>;
225
222
  type NonSubThemeNames<A extends string | number> = A extends `${string}_${string}` ? never : A;
226
223
  type BaseThemeDefinitions = TamaguiConfig['themes'][NonSubThemeNames<keyof TamaguiConfig['themes']>];
@@ -288,7 +285,7 @@ type AllowedStyleValuesSettingPerCategory = {
288
285
  };
289
286
  type AllowedStyleValuesSetting = AllowedValueSettingBase | AllowedStyleValuesSettingPerCategory;
290
287
  type AutocompleteSpecificTokensSetting = boolean | 'except-special';
291
- type GenericTamaguiSettings = {
288
+ export interface GenericTamaguiSettings {
292
289
  /**
293
290
  * When true, flexBasis will be set to 0 when flex is positive. This will be
294
291
  * the default in v2 of Tamagui alongside an alternative mode for web compat.
@@ -379,7 +376,72 @@ type GenericTamaguiSettings = {
379
376
  * default uses `container-type: inline-size`.
380
377
  */
381
378
  webContainerType?: 'normal' | 'size' | 'inline-size' | 'inherit' | 'initial' | 'revert' | 'revert-layer' | 'unset';
382
- };
379
+ /**
380
+ * Only allow shorthands when enabled. Recommended to be true to avoid having
381
+ * two ways to style the same property.
382
+ */
383
+ onlyAllowShorthands?: OnlyAllowShorthandsSetting;
384
+ /**
385
+ * Define a default font, for better types and default font on Text
386
+ */
387
+ defaultFont?: string;
388
+ /**
389
+ * Web-only: define CSS text-selection styles
390
+ */
391
+ selectionStyles?: (theme: Record<string, string>) => null | {
392
+ backgroundColor?: any;
393
+ color?: any;
394
+ };
395
+ /**
396
+ * If building a non-server rendered app, set this to true.
397
+ *
398
+ * For SSR compatibility on the web, Tamagui will render once with the settings
399
+ * from `mediaQueryDefaultActive` set for all media queries. Then, it will render
400
+ * again after the initial render using the proper media query values. This is so that
401
+ * hydration will match perfectly with the server.
402
+ *
403
+ * Setting disableSSR will avoid this second render by setting the media query state
404
+ * to the actual browser dimensions on initial load. This is only useful for client-only
405
+ * apps.
406
+ *
407
+ */
408
+ disableSSR?: boolean;
409
+ /**
410
+ * Disable inserting a theme class in the DOM or context, allowing you to manually place it higher.
411
+ * For custom use cases like integration with next-theme.
412
+ */
413
+ disableRootThemeClass?: boolean;
414
+ /**
415
+ * For the first render, determines which media queries are true, this only
416
+ * affects things on native or on web if you disableSSR, as otherwise Tamagui
417
+ * relies on CSS to avoid the need for re-rendering on first render.
418
+ */
419
+ mediaQueryDefaultActive?: Record<string, boolean>;
420
+ /**
421
+ * What's between each CSS style rule, set to "\n" to be easier to read
422
+ * @default "\n" when NODE_ENV=development, "" otherwise
423
+ */
424
+ cssStyleSeparator?: string;
425
+ /**
426
+ * (Advanced) on the web, tamagui treats `dark` and `light` themes as special
427
+ * and generates extra CSS to avoid having to re-render the entire page. this
428
+ * CSS relies on specificity hacks that multiply by your sub-themes. this sets
429
+ * the maxiumum number of nested dark/light themes you can do defaults to 3
430
+ * for a balance, but can be higher if you nest them deeply.
431
+ */
432
+ maxDarkLightNesting?: number;
433
+ /**
434
+ * Adds @media(prefers-color-scheme) media queries for dark/light, must be set
435
+ * true if you are supporting system preference for light and dark mode themes
436
+ */
437
+ shouldAddPrefersColorThemes?: boolean;
438
+ /**
439
+ * If you want to style your <body> tag to use themes, you must place the
440
+ * theme className onto the body element. This will do so. Otherwise, Tamagui
441
+ * will place the className onto the element rendered by the TamaguiProvider
442
+ */
443
+ themeClassNameOnRoot?: boolean;
444
+ }
383
445
  export type TamaguiSettings = TamaguiConfig['settings'];
384
446
  export type BaseStyleProps = {
385
447
  [Key in keyof TextStylePropsBase]?: TextStyle[Key] | GetThemeValueForKey<Key>;
@@ -403,6 +465,7 @@ export type CreateTamaguiProps = {
403
465
  /**
404
466
  * Define a default font, for better types and default font on Text
405
467
  */
468
+ /** @deprecated moved into settings sub-object */
406
469
  defaultFont?: string;
407
470
  /**
408
471
  * Web-only: define text-selection CSS
@@ -424,25 +487,33 @@ export type CreateTamaguiProps = {
424
487
  * apps.
425
488
  *
426
489
  */
490
+ /** @deprecated moved into settings sub-object */
427
491
  disableSSR?: boolean;
428
492
  /**
429
493
  * Disable inserting a theme class in the DOM or context, allowing you to manually place it higher.
430
494
  * For custom use cases like integration with next-theme.
431
495
  */
496
+ /** @deprecated moved into settings sub-object */
432
497
  disableRootThemeClass?: boolean;
433
498
  defaultProps?: Record<string, any> & {
434
499
  Stack?: StackProps;
435
500
  Text?: TextProps;
436
501
  Spacer?: SpacerProps;
437
502
  };
503
+ /** @deprecated moved into settings sub-object */
438
504
  mediaQueryDefaultActive?: Record<string, boolean>;
505
+ /** @deprecated moved into settings sub-object */
439
506
  cssStyleSeparator?: string;
507
+ /** @deprecated moved into settings sub-object */
440
508
  maxDarkLightNesting?: number;
509
+ /** @deprecated moved into settings sub-object */
441
510
  shouldAddPrefersColorThemes?: boolean;
511
+ /** @deprecated moved into settings sub-object */
442
512
  themeClassNameOnRoot?: boolean;
443
513
  /**
444
514
  * Only allow shorthands when enabled
445
515
  */
516
+ /** @deprecated moved into settings sub-object */
446
517
  onlyAllowShorthands?: OnlyAllowShorthandsSetting;
447
518
  };
448
519
  export type GetCSS = (opts?: {
@@ -450,7 +521,7 @@ export type GetCSS = (opts?: {
450
521
  exclude?: 'themes' | 'design-system' | null;
451
522
  sinceLastCall?: boolean;
452
523
  }) => string;
453
- export type TamaguiInternalConfig<A extends GenericTokens = GenericTokens, B extends GenericThemes = GenericThemes, C extends GenericShorthands = GenericShorthands, D extends GenericMedia = GenericMedia, E extends GenericAnimations = GenericAnimations, F extends GenericFonts = GenericFonts, G extends OnlyAllowShorthandsSetting = OnlyAllowShorthandsSetting, H extends DefaultFontSetting = DefaultFontSetting, I extends GenericTamaguiSettings = GenericTamaguiSettings> = Omit<CreateTamaguiProps, keyof GenericTamaguiConfig> & Omit<CreateTamaguiConfig<A, B, C, D, E, F, G, H, I>, 'tokens'> & {
524
+ export type TamaguiInternalConfig<A extends GenericTokens = GenericTokens, B extends GenericThemes = GenericThemes, C extends GenericShorthands = GenericShorthands, D extends GenericMedia = GenericMedia, E extends GenericAnimations = GenericAnimations, F extends GenericFonts = GenericFonts, G extends OnlyAllowShorthandsSetting = OnlyAllowShorthandsSetting, I extends GenericTamaguiSettings = GenericTamaguiSettings> = Omit<CreateTamaguiProps, keyof GenericTamaguiConfig> & Omit<CreateTamaguiConfig<A, B, C, D, E, F, G, I>, 'tokens'> & {
454
525
  tokens: Tokenify<A>;
455
526
  tokensParsed: Tokenify<A>;
456
527
  themeConfig: any;
@@ -460,7 +531,6 @@ export type TamaguiInternalConfig<A extends GenericTokens = GenericTokens, B ext
460
531
  parsed: boolean;
461
532
  inverseShorthands: Record<string, string>;
462
533
  reactNative?: any;
463
- defaultFont?: H;
464
534
  fontSizeTokens: Set<string>;
465
535
  specificTokens: Record<string, Variable>;
466
536
  settings: Omit<GenericTamaguiSettings, keyof I> & I;
@@ -592,7 +662,7 @@ export type Token = NonSpecificTokens | (TamaguiSettings extends {
592
662
  autocompleteSpecificTokens: false;
593
663
  } ? never : SpecificTokens);
594
664
  export type ColorStyleProp = ThemeValueFallbackColor | ColorTokens;
595
- type DefaultFont = TamaguiConfig['defaultFont'];
665
+ type DefaultFont = TamaguiSettings['defaultFont'];
596
666
  export type Fonts = DefaultFont extends string ? TamaguiConfig['fonts'][DefaultFont] : never;
597
667
  export type Font = ParseFont<Fonts>;
598
668
  export type GetTokenFontKeysFor<A extends 'size' | 'weight' | 'letterSpacing' | 'family' | 'lineHeight' | 'transform' | 'style' | 'color'> = keyof TamaguiConfig['fonts']['body'][A];