@tamagui/web 1.74.21 → 1.75.0

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 (47) hide show
  1. package/dist/cjs/createComponent.js +15 -11
  2. package/dist/cjs/createComponent.js.map +1 -1
  3. package/dist/cjs/createComponent.native.js +13 -14
  4. package/dist/cjs/createComponent.native.js.map +1 -1
  5. package/dist/cjs/helpers/ThemeManager.js +2 -2
  6. package/dist/cjs/helpers/ThemeManager.js.map +1 -1
  7. package/dist/cjs/helpers/ThemeManager.native.js +2 -2
  8. package/dist/cjs/helpers/ThemeManager.native.js.map +1 -1
  9. package/dist/cjs/hooks/useTheme.js +17 -14
  10. package/dist/cjs/hooks/useTheme.js.map +1 -1
  11. package/dist/cjs/hooks/useTheme.native.js +17 -14
  12. package/dist/cjs/hooks/useTheme.native.js.map +1 -1
  13. package/dist/cjs/internalWithTheme.js +29 -0
  14. package/dist/cjs/internalWithTheme.js.map +6 -0
  15. package/dist/cjs/internalWithTheme.native.js +30 -0
  16. package/dist/cjs/internalWithTheme.native.js.map +6 -0
  17. package/dist/esm/createComponent.js +12 -8
  18. package/dist/esm/createComponent.js.map +1 -1
  19. package/dist/esm/createComponent.native.js +10 -11
  20. package/dist/esm/createComponent.native.js.map +1 -1
  21. package/dist/esm/helpers/ThemeManager.js +2 -2
  22. package/dist/esm/helpers/ThemeManager.js.map +1 -1
  23. package/dist/esm/helpers/ThemeManager.native.js +2 -2
  24. package/dist/esm/helpers/ThemeManager.native.js.map +1 -1
  25. package/dist/esm/hooks/useTheme.js +18 -22
  26. package/dist/esm/hooks/useTheme.js.map +1 -1
  27. package/dist/esm/hooks/useTheme.native.js +18 -22
  28. package/dist/esm/hooks/useTheme.native.js.map +1 -1
  29. package/dist/esm/internalWithTheme.js +11 -0
  30. package/dist/esm/internalWithTheme.js.map +6 -0
  31. package/dist/esm/internalWithTheme.native.js +11 -0
  32. package/dist/esm/internalWithTheme.native.js.map +6 -0
  33. package/package.json +9 -9
  34. package/src/createComponent.tsx +16 -31
  35. package/src/helpers/ThemeManager.tsx +6 -3
  36. package/src/hooks/useTheme.tsx +33 -37
  37. package/src/internalWithTheme.tsx +16 -0
  38. package/src/setupHooks.ts +2 -0
  39. package/types/componentProvider.d.ts +3 -0
  40. package/types/createComponent.d.ts.map +1 -1
  41. package/types/helpers/ThemeManager.d.ts +1 -1
  42. package/types/helpers/ThemeManager.d.ts.map +1 -1
  43. package/types/hooks/useTheme.d.ts.map +1 -1
  44. package/types/internalWithTheme.d.ts +4 -0
  45. package/types/internalWithTheme.d.ts.map +1 -0
  46. package/types/setupHooks.d.ts +2 -1
  47. package/types/setupHooks.d.ts.map +1 -1
@@ -1,12 +1,5 @@
1
1
  import { isClient, isIos, isServer } from "@tamagui/constants";
2
- import {
3
- useContext,
4
- useEffect,
5
- useLayoutEffect,
6
- useMemo,
7
- useRef,
8
- useState
9
- } from "react";
2
+ import { useContext, useEffect, useLayoutEffect, useMemo, useRef, useState } from "react";
10
3
  import { getConfig } from "../config";
11
4
  import { getVariable } from "../createVariable";
12
5
  import { createProxy } from "../helpers/createProxy";
@@ -48,7 +41,7 @@ const useTheme = (props = emptyProps) => {
48
41
 
49
42
  If this is intended and you are using Tamagui without any themes, you can disable this warning by setting the environment variable TAMAGUI_DISABLE_NO_THEME_WARNING=1`
50
43
  );
51
- const themeProxied = useMemo(() => !themeManager || !state?.theme ? {} : getThemeProxied(state, props.deopt, themeManager, keys.current, props.debug), [state, themeManager, props.deopt, props.debug]);
44
+ const themeProxied = useMemo(() => !themeManager || !state?.theme ? {} : getThemeProxied(state, props.deopt, themeManager, keys.current, props.debug), [state?.theme, themeManager, props.deopt, props.debug]);
52
45
  return process.env.NODE_ENV === "development" && props.debug === "verbose" && (console.groupCollapsed(" \u{1F539} useTheme =>", state?.name), console.info("returning state", changedThemeState, "from props", props), console.groupEnd()), [changedThemeState, themeProxied];
53
46
  };
54
47
  function getThemeProxied({ theme, name, scheme }, deopt = !1, themeManager, keys, debug) {
@@ -152,17 +145,20 @@ const activeThemeManagers = /* @__PURE__ */ new Set(), useChangeThemeEffect = (p
152
145
  isNewTheme && themeManager && activeThemeManagers.add(themeManager), (isNewTheme || getShouldUpdateTheme(themeManager)) && setThemeState(createState);
153
146
  const selfListenerDispose = themeManager.onChangeTheme((_a, _b, forced) => {
154
147
  forced && setThemeState((prev) => createState(prev, !0));
155
- }), disposeChangeListener = parentManager?.onChangeTheme((name, manager) => {
156
- const force = shouldUpdate?.() || props.deopt || props["disable-child-theme"], shouldTryUpdate = force ?? !!(keys?.length || isNewTheme);
157
- process.env.NODE_ENV === "development" && props.debug && console.info(" \u{1F538} onChange", themeManager.id, {
158
- force,
159
- shouldTryUpdate,
160
- props,
161
- name,
162
- manager,
163
- keys
164
- }), shouldTryUpdate && setThemeState(createState);
165
- }, themeManager.id);
148
+ }), disposeChangeListener = parentManager?.onChangeTheme(
149
+ (name, manager, forced) => {
150
+ const force = forced || shouldUpdate?.() || props.deopt || props["disable-child-theme"], shouldTryUpdate = force ?? !!(keys?.length || isNewTheme);
151
+ process.env.NODE_ENV === "development" && props.debug && console.info(" \u{1F538} onChange", themeManager.id, {
152
+ force,
153
+ shouldTryUpdate,
154
+ props,
155
+ name,
156
+ manager,
157
+ keys
158
+ }), shouldTryUpdate && setThemeState(createState);
159
+ },
160
+ themeManager.id
161
+ );
166
162
  return () => {
167
163
  selfListenerDispose(), disposeChangeListener?.(), activeThemeManagers.delete(themeManager);
168
164
  };
@@ -195,14 +191,14 @@ const activeThemeManagers = /* @__PURE__ */ new Set(), useChangeThemeEffect = (p
195
191
  themeManager
196
192
  };
197
193
  function createState(prev, force = !1) {
198
- if (prev && shouldUpdate?.() === !1)
194
+ if (prev && shouldUpdate?.() === !1 && !force)
199
195
  return prev;
200
196
  let themeManager2 = parentManager, state2;
201
197
  if (getHasThemeUpdatingProps(props)) {
202
198
  const getNewThemeManager = () => new ThemeManager(props, isRoot ? "root" : parentManager);
203
199
  if (prev?.themeManager) {
204
200
  themeManager2 = prev.themeManager;
205
- const forceChange = !!keys?.length, next = themeManager2.getState(props, parentManager), nextState = getShouldUpdateTheme(
201
+ const forceChange = force || !!keys?.length, next = themeManager2.getState(props, parentManager), nextState = getShouldUpdateTheme(
206
202
  themeManager2,
207
203
  next,
208
204
  prev.state,
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/hooks/useTheme.tsx"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": ["_", "themeManager", "state", "isNewTheme", "mounted", "inversed"]
6
6
  }
@@ -0,0 +1,11 @@
1
+ import { useMemo } from "react";
2
+ import { useTheme } from "./hooks/useTheme";
3
+ import { jsx } from "react/jsx-runtime";
4
+ const internalWithTheme = (Component, styleProvider, memoArgs) => (props) => {
5
+ const theme = useTheme();
6
+ return /* @__PURE__ */ jsx(Component, { style: useMemo(() => styleProvider(theme), memoArgs), ...props });
7
+ };
8
+ export {
9
+ internalWithTheme
10
+ };
11
+ //# sourceMappingURL=internalWithTheme.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/internalWithTheme.tsx"],
4
+ "mappings": "AAAA,SAAS,eAAe;AAExB,SAAS,gBAAgB;AAWd;AAPJ,MAAM,oBAAoB,CAC/B,WACA,eACA,aAEO,CAAC,UAAU;AAChB,QAAM,QAAQ,SAAS;AACvB,SAAO,oBAAC,aAAU,OAAO,QAAQ,MAAM,cAAc,KAAK,GAAG,QAAQ,GAAI,GAAG,OAAO;AACrF;",
5
+ "names": []
6
+ }
@@ -0,0 +1,11 @@
1
+ import { useMemo } from "react";
2
+ import { useTheme } from "./hooks/useTheme";
3
+ import { jsx } from "react/jsx-runtime";
4
+ const internalWithTheme = (Component, styleProvider, memoArgs) => (props) => {
5
+ const theme = useTheme();
6
+ return /* @__PURE__ */ jsx(Component, { style: useMemo(() => styleProvider(theme), memoArgs), ...props });
7
+ };
8
+ export {
9
+ internalWithTheme
10
+ };
11
+ //# sourceMappingURL=internalWithTheme.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/internalWithTheme.tsx"],
4
+ "mappings": "AAAA,SAAS,eAAe;AAExB,SAAS,gBAAgB;AAWd;AAPJ,MAAM,oBAAoB,CAC/B,WACA,eACA,aAEO,CAAC,UAAU;AAChB,QAAM,QAAQ,SAAS;AACvB,SAAO,oBAAC,aAAU,OAAO,QAAQ,MAAM,cAAc,KAAK,GAAG,QAAQ,GAAI,GAAG,OAAO;AACrF;",
5
+ "names": []
6
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tamagui/web",
3
- "version": "1.74.21",
3
+ "version": "1.75.0",
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.74.21",
31
- "@tamagui/constants": "1.74.21",
32
- "@tamagui/helpers": "1.74.21",
33
- "@tamagui/normalize-css-color": "1.74.21",
34
- "@tamagui/timer": "1.74.21",
35
- "@tamagui/use-did-finish-ssr": "1.74.21",
36
- "@tamagui/use-force-update": "1.74.21"
30
+ "@tamagui/compose-refs": "1.75.0",
31
+ "@tamagui/constants": "1.75.0",
32
+ "@tamagui/helpers": "1.75.0",
33
+ "@tamagui/normalize-css-color": "1.75.0",
34
+ "@tamagui/timer": "1.75.0",
35
+ "@tamagui/use-did-finish-ssr": "1.75.0",
36
+ "@tamagui/use-force-update": "1.75.0"
37
37
  },
38
38
  "peerDependencies": {
39
39
  "react": "*"
40
40
  },
41
41
  "devDependencies": {
42
- "@tamagui/build": "1.74.21",
42
+ "@tamagui/build": "1.75.0",
43
43
  "@testing-library/react": "^14.0.0",
44
44
  "csstype": "^3.0.10",
45
45
  "react": "^18.2.0",
@@ -507,16 +507,13 @@ export function createComponent<
507
507
  componentName,
508
508
  disable: disableTheme,
509
509
  shallow: stateRef.current.themeShallow,
510
- // if this returns undefined it defers to the keys tracking, so its only used to force either updates or no updates
511
- shouldUpdate: () => {
512
- return (
513
- // when we use $theme- styles we need to force it to re-render on theme changes (this can be optimized likely)
514
- stateRef.current.isListeningToTheme
515
- )
516
- },
517
510
  debug: debugProp,
518
511
  }
519
512
 
513
+ if (typeof stateRef.current.isListeningToTheme === 'boolean') {
514
+ themeStateProps.shouldUpdate = () => stateRef.current.isListeningToTheme
515
+ }
516
+
520
517
  // on native we optimize theme changes if fastSchemeChange is enabled, otherwise deopt
521
518
  if (process.env.TAMAGUI_TARGET === 'native') {
522
519
  themeStateProps.deopt = willBeAnimated
@@ -1144,34 +1141,22 @@ export function createComponent<
1144
1141
 
1145
1142
  if (process.env.NODE_ENV === 'development' && time) time`spaced-as-child`
1146
1143
 
1147
- // perf - unwrap View
1148
- if (
1149
- // in test mode disable perf unwrapping so react-testing-library finds Text properly
1150
- process.env.NODE_ENV !== 'test' &&
1151
- process.env.TAMAGUI_TARGET === 'native' &&
1152
- (elementType === BaseText || elementType === BaseView)
1153
- ) {
1154
- if (process.env.TAMAGUI_OPTIMIZE_NATIVE_VIEWS) {
1155
- // further optimize by not even caling elementType.render
1156
- viewProps.children = content
1157
- content = createElement(
1158
- elementType === BaseText ? 'RCTText' : 'RCTView',
1159
- viewProps
1160
- )
1161
- } else {
1162
- // instead of rendering a whole sub component, just grab the contents directly
1163
- // we could further improve this performance by actually just doing this ourselves
1164
- viewProps.children = content
1165
- content = elementType.render(viewProps, viewProps.ref)
1166
- }
1144
+ let useChildrenResult: any
1145
+ if (hooks.useChildren) {
1146
+ useChildrenResult = hooks.useChildren(
1147
+ elementType,
1148
+ content,
1149
+ viewProps,
1150
+ events,
1151
+ staticConfig
1152
+ )
1153
+ }
1154
+ if (useChildrenResult) {
1155
+ content = useChildrenResult
1167
1156
  } else {
1168
1157
  content = createElement(elementType, viewProps, content)
1169
1158
  }
1170
1159
 
1171
- if (hooks.useChildren) {
1172
- content = hooks.useChildren?.(content, viewProps, events, staticConfig)
1173
- }
1174
-
1175
1160
  if (process.env.NODE_ENV === 'development' && time) time`create-element`
1176
1161
 
1177
1162
  // must override context so siblings don't clobber initial state
@@ -74,13 +74,15 @@ export class ThemeManager {
74
74
  shouldNotify = true
75
75
  ) {
76
76
  this.props = props
77
+
77
78
  if (props.forceTheme) {
78
79
  this.state.theme = props.forceTheme
79
80
  this.state.name = props.name || ''
80
- return true
81
+ this.updateState(this.state, true)
82
+ return this.state
81
83
  }
82
- const nextState = this.getStateIfChanged(props)
83
84
 
85
+ const nextState = this.getStateIfChanged(props)
84
86
  if (nextState) {
85
87
  this.updateState(nextState, shouldNotify)
86
88
  return nextState
@@ -200,7 +202,7 @@ function getState(
200
202
 
201
203
  if (baseManager?.state.isComponent) {
202
204
  // remove component name
203
- baseName = baseName.replace(/_[A-Z][a-z]+/, '')
205
+ baseName = baseName.replace(/_[A-Z][A-Za-z]+/, '')
204
206
  }
205
207
 
206
208
  const nextName = props.reset ? baseName : props.name || ''
@@ -262,6 +264,7 @@ function getState(
262
264
  const moreSpecific = `${prefix}_${nextName}_${componentName}`
263
265
  componentPotentials.unshift(moreSpecific)
264
266
  }
267
+
265
268
  potentials = [...componentPotentials, ...potentials, ...allComponentThemes]
266
269
  }
267
270
 
@@ -1,13 +1,5 @@
1
1
  import { isClient, isIos, isServer } from '@tamagui/constants'
2
- import {
3
- useContext,
4
- useEffect,
5
- useId,
6
- useLayoutEffect,
7
- useMemo,
8
- useRef,
9
- useState,
10
- } from 'react'
2
+ import { useContext, useEffect, useLayoutEffect, useMemo, useRef, useState } from 'react'
11
3
 
12
4
  import { getConfig } from '../config'
13
5
  import { Variable, getVariable } from '../createVariable'
@@ -133,7 +125,7 @@ export const useThemeWithState = (
133
125
  return {}
134
126
  }
135
127
  return getThemeProxied(state, props.deopt, themeManager, keys.current, props.debug)
136
- }, [state, themeManager, props.deopt, props.debug])
128
+ }, [state?.theme, themeManager, props.deopt, props.debug])
137
129
 
138
130
  if (process.env.NODE_ENV === 'development' && props.debug === 'verbose') {
139
131
  console.groupCollapsed(' 🔹 useTheme =>', state?.name)
@@ -353,32 +345,36 @@ export const useChangeThemeEffect = (
353
345
  }
354
346
  })
355
347
 
356
- const disposeChangeListener = parentManager?.onChangeTheme((name, manager) => {
357
- const force =
358
- shouldUpdate?.() ||
359
- props.deopt ||
360
- // this fixes themeable() not updating with the new fastSchemeChange setting
361
- (process.env.TAMAGUI_TARGET === 'native'
362
- ? props['disable-child-theme']
363
- : undefined)
364
-
365
- const shouldTryUpdate = force ?? Boolean(keys?.length || isNewTheme)
366
-
367
- if (process.env.NODE_ENV === 'development' && props.debug) {
368
- console.info(` 🔸 onChange`, themeManager.id, {
369
- force,
370
- shouldTryUpdate,
371
- props,
372
- name,
373
- manager,
374
- keys,
375
- })
376
- }
348
+ const disposeChangeListener = parentManager?.onChangeTheme(
349
+ (name, manager, forced) => {
350
+ const force =
351
+ forced ||
352
+ shouldUpdate?.() ||
353
+ props.deopt ||
354
+ // this fixes themeable() not updating with the new fastSchemeChange setting
355
+ (process.env.TAMAGUI_TARGET === 'native'
356
+ ? props['disable-child-theme']
357
+ : undefined)
358
+
359
+ const shouldTryUpdate = force ?? Boolean(keys?.length || isNewTheme)
360
+
361
+ if (process.env.NODE_ENV === 'development' && props.debug) {
362
+ console.info(` 🔸 onChange`, themeManager.id, {
363
+ force,
364
+ shouldTryUpdate,
365
+ props,
366
+ name,
367
+ manager,
368
+ keys,
369
+ })
370
+ }
377
371
 
378
- if (shouldTryUpdate) {
379
- setThemeState(createState)
380
- }
381
- }, themeManager.id)
372
+ if (shouldTryUpdate) {
373
+ setThemeState(createState)
374
+ }
375
+ },
376
+ themeManager.id
377
+ )
382
378
 
383
379
  return () => {
384
380
  selfListenerDispose()
@@ -428,7 +424,7 @@ export const useChangeThemeEffect = (
428
424
  }
429
425
 
430
426
  function createState(prev?: ChangedThemeResponse, force = false): ChangedThemeResponse {
431
- if (prev && shouldUpdate?.() === false) {
427
+ if (prev && shouldUpdate?.() === false && !force) {
432
428
  return prev
433
429
  }
434
430
 
@@ -451,7 +447,7 @@ export const useChangeThemeEffect = (
451
447
  // at all anymore. this forces updates onChangeTheme for all dynamic style accessed components
452
448
  // which is correct, potentially in the future we can avoid forceChange and just know to
453
449
  // update if keys.length is set + onChangeTheme called
454
- const forceChange = Boolean(keys?.length)
450
+ const forceChange = force || Boolean(keys?.length)
455
451
  const next = themeManager.getState(props, parentManager)
456
452
  const nextState = getShouldUpdateTheme(
457
453
  themeManager,
@@ -0,0 +1,16 @@
1
+ import { useMemo } from 'react'
2
+
3
+ import { useTheme } from './hooks/useTheme'
4
+
5
+ /** internal: this is for tamagui babel plugin usage only */
6
+
7
+ export const internalWithTheme = (
8
+ Component: any,
9
+ styleProvider: any,
10
+ memoArgs: string[]
11
+ ) => {
12
+ return (props) => {
13
+ const theme = useTheme()
14
+ return <Component style={useMemo(() => styleProvider(theme), memoArgs)} {...props} />
15
+ }
16
+ }
package/src/setupHooks.ts CHANGED
@@ -31,6 +31,7 @@ type InternalHooks = {
31
31
  ) => any
32
32
 
33
33
  useChildren?: (
34
+ elementType: any,
34
35
  children: any,
35
36
  viewProps: Record<string, any>,
36
37
  events: TamaguiComponentEvents | null,
@@ -40,5 +41,6 @@ type InternalHooks = {
40
41
  getBaseViews?: () => {
41
42
  View: any
42
43
  Text: any
44
+ TextAncestor: any
43
45
  }
44
46
  }
@@ -0,0 +1,3 @@
1
+ /// <reference types="react" />
2
+ export declare const internalWithTheme: (Component: any, styleProvider: any) => (props: any) => JSX.Element;
3
+ //# sourceMappingURL=componentProvider.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"createComponent.d.ts","sourceRoot":"","sources":["../src/createComponent.tsx"],"names":[],"mappings":"AAIA,OAAO,KAaN,MAAM,OAAO,CAAA;AAsBd,OAAO,EAEL,SAAS,EAKT,cAAc,EACd,UAAU,EACV,WAAW,EACX,UAAU,EACV,YAAY,EAEZ,gBAAgB,EAGhB,cAAc,EAEd,SAAS,EAKV,MAAM,SAAS,CAAA;AAoBhB,eAAO,MAAM,QAAQ,eAAsB,CAAA;AA6D3C,wBAAgB,eAAe,CAC7B,kBAAkB,SAAS,UAAU,GAAG,SAAS,GAAG,EAAE,EACtD,GAAG,GAAG,cAAc,EACpB,SAAS,GAAG,KAAK,EACjB,YAAY,EAAE,YAAY,8DAysC3B;AAsBD,wBAAgB,QAAQ,CAAC,KAAK,EAAE;IAAE,QAAQ,CAAC,EAAE,GAAG,CAAA;CAAE,OAEjD;AAiBD,eAAO,MAAM,MAAM,4DAqCjB,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,CAAA;IAC1B,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,KAaN,MAAM,OAAO,CAAA;AAsBd,OAAO,EAEL,SAAS,EAKT,cAAc,EACd,UAAU,EACV,WAAW,EACX,UAAU,EACV,YAAY,EAEZ,gBAAgB,EAGhB,cAAc,EAEd,SAAS,EAKV,MAAM,SAAS,CAAA;AAoBhB,eAAO,MAAM,QAAQ,eAAsB,CAAA;AA6D3C,wBAAgB,eAAe,CAC7B,kBAAkB,SAAS,UAAU,GAAG,SAAS,GAAG,EAAE,EACtD,GAAG,GAAG,cAAc,EACpB,SAAS,GAAG,KAAK,EACjB,YAAY,EAAE,YAAY,8DA0rC3B;AAsBD,wBAAgB,QAAQ,CAAC,KAAK,EAAE;IAAE,QAAQ,CAAC,EAAE,GAAG,CAAA;CAAE,OAEjD;AAiBD,eAAO,MAAM,MAAM,4DAqCjB,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,CAAA;IAC1B,SAAS,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC3B,KAAK,CAAC,EAAE,SAAS,CAAA;CAClB,CAAA;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,mBAAmB,mBAiGxD"}
@@ -25,7 +25,7 @@ export declare class ThemeManager {
25
25
  constructor(props?: ThemeProps, parentManager?: ThemeManager | 'root' | null | undefined);
26
26
  updateStateFromProps(props?: ThemeProps & {
27
27
  forceTheme?: ThemeParsed;
28
- }, shouldNotify?: boolean): true | ThemeManagerState | undefined;
28
+ }, shouldNotify?: boolean): ThemeManagerState | undefined;
29
29
  updateState(nextState: ThemeManagerState, shouldNotify?: boolean): void;
30
30
  getStateIfChanged(props?: ThemeProps, state?: ThemeManagerState | null, parentManager?: ThemeManager | null): ThemeManagerState | null | undefined;
31
31
  getStateShouldChange(nextState: ThemeManagerState | null, state?: ThemeManagerState | null): boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"ThemeManager.d.ts","sourceRoot":"","sources":["../../src/helpers/ThemeManager.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AAE/D,KAAK,aAAa,GAAG,CACnB,IAAI,EAAE,MAAM,GAAG,IAAI,EACnB,YAAY,EAAE,YAAY,EAC1B,MAAM,EAAE,OAAO,KACZ,IAAI,CAAA;AAET,MAAM,MAAM,mBAAmB,GAAG;IAChC,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,aAAa,CAAC,EAAE,YAAY,GAAG,IAAI,CAAA;IACnC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,KAAK,CAAC,EAAE,GAAG,CAAA;IACX,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB,CAAA;AAED,MAAM,MAAM,iBAAiB,GAAG;IAC9B,IAAI,EAAE,MAAM,CAAA;IACZ,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,KAAK,CAAC,EAAE,WAAW,GAAG,IAAI,CAAA;IAC1B,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,MAAM,CAAC,EAAE,WAAW,CAAA;CACrB,CAAA;AAID,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,UAAU,gCAEzD;AAID,qBAAa,YAAY;IAOd,KAAK,EAAE,UAAU;IAN1B,EAAE,SAAQ;IACV,cAAc,qBAA2B;IACzC,aAAa,EAAE,YAAY,GAAG,IAAI,CAAO;IACzC,KAAK,EAAE,iBAAiB,CAAa;gBAG5B,KAAK,GAAE,UAAe,EAC7B,aAAa,CAAC,EAAE,YAAY,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS;IA0B1D,oBAAoB,CAClB,KAAK,GAAE,UAAU,GAAG;QAAE,UAAU,CAAC,EAAE,WAAW,CAAA;KAAqB,EACnE,YAAY,UAAO;IAgBrB,WAAW,CAAC,SAAS,EAAE,iBAAiB,EAAE,YAAY,UAAO;IAc7D,iBAAiB,CACf,KAAK,aAAa,EAClB,KAAK,GAAE,iBAAiB,GAAG,IAAiB,EAC5C,aAAa,sBAAqB;IAapC,oBAAoB,CAClB,SAAS,EAAE,iBAAiB,GAAG,IAAI,EACnC,KAAK,GAAE,iBAAiB,GAAG,IAAiB;IAQ9C,QAAQ,CAAC,KAAK,aAAa,EAAE,aAAa,sBAAqB;IAO/D,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,IAAI,CAAO;IACnC,IAAI,OAAO,gBAMV;IAED,MAAM,CAAC,MAAM,UAAQ;IAIrB,aAAa,CAAC,EAAE,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE,MAAM;CAalD;AAiKD,KAAK,iBAAiB,GAAG,YAAY,GAAG,SAAS,CAAA;AAKjD,wBAAgB,WAAW,CAAC,YAAY,CAAC,EAAE,YAAY,GAAG,IAAI,uDAY7D"}
1
+ {"version":3,"file":"ThemeManager.d.ts","sourceRoot":"","sources":["../../src/helpers/ThemeManager.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AAE/D,KAAK,aAAa,GAAG,CACnB,IAAI,EAAE,MAAM,GAAG,IAAI,EACnB,YAAY,EAAE,YAAY,EAC1B,MAAM,EAAE,OAAO,KACZ,IAAI,CAAA;AAET,MAAM,MAAM,mBAAmB,GAAG;IAChC,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,aAAa,CAAC,EAAE,YAAY,GAAG,IAAI,CAAA;IACnC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,KAAK,CAAC,EAAE,GAAG,CAAA;IACX,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB,CAAA;AAED,MAAM,MAAM,iBAAiB,GAAG;IAC9B,IAAI,EAAE,MAAM,CAAA;IACZ,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,KAAK,CAAC,EAAE,WAAW,GAAG,IAAI,CAAA;IAC1B,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,MAAM,CAAC,EAAE,WAAW,CAAA;CACrB,CAAA;AAID,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,UAAU,gCAEzD;AAID,qBAAa,YAAY;IAOd,KAAK,EAAE,UAAU;IAN1B,EAAE,SAAQ;IACV,cAAc,qBAA2B;IACzC,aAAa,EAAE,YAAY,GAAG,IAAI,CAAO;IACzC,KAAK,EAAE,iBAAiB,CAAa;gBAG5B,KAAK,GAAE,UAAe,EAC7B,aAAa,CAAC,EAAE,YAAY,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS;IA0B1D,oBAAoB,CAClB,KAAK,GAAE,UAAU,GAAG;QAAE,UAAU,CAAC,EAAE,WAAW,CAAA;KAAqB,EACnE,YAAY,UAAO;IAkBrB,WAAW,CAAC,SAAS,EAAE,iBAAiB,EAAE,YAAY,UAAO;IAc7D,iBAAiB,CACf,KAAK,aAAa,EAClB,KAAK,GAAE,iBAAiB,GAAG,IAAiB,EAC5C,aAAa,sBAAqB;IAapC,oBAAoB,CAClB,SAAS,EAAE,iBAAiB,GAAG,IAAI,EACnC,KAAK,GAAE,iBAAiB,GAAG,IAAiB;IAQ9C,QAAQ,CAAC,KAAK,aAAa,EAAE,aAAa,sBAAqB;IAO/D,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,IAAI,CAAO;IACnC,IAAI,OAAO,gBAMV;IAED,MAAM,CAAC,MAAM,UAAQ;IAIrB,aAAa,CAAC,EAAE,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE,MAAM;CAalD;AAkKD,KAAK,iBAAiB,GAAG,YAAY,GAAG,SAAS,CAAA;AAKjD,wBAAgB,WAAW,CAAC,YAAY,CAAC,EAAE,YAAY,GAAG,IAAI,uDAY7D"}
@@ -1 +1 @@
1
- {"version":3,"file":"useTheme.d.ts","sourceRoot":"","sources":["../../src/hooks/useTheme.tsx"],"names":[],"mappings":"AAYA,OAAO,EAAE,QAAQ,EAAe,MAAM,mBAAmB,CAAA;AAGzD,OAAO,EACL,YAAY,EACZ,iBAAiB,EAElB,MAAM,yBAAyB,CAAA;AAEhC,OAAO,KAAK,EACV,SAAS,EACT,WAAW,EACX,UAAU,EACV,sBAAsB,EACtB,WAAW,EACX,kBAAkB,EACnB,MAAM,UAAU,CAAA;AAGjB,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,GACvB,MAAM,GAAG,MAAM,GACf,OAAO,CAAC,CAAA;CACjB,CAAA;AAED,MAAM,MAAM,cAAc,GAAG;KAC1B,GAAG,IAAI,MAAM,WAAW,GAAG,aAAa,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;CAC5D,CAAA;AAED,eAAO,MAAM,QAAQ,WAAW,UAAU,mBAIzC,CAAA;AAED,eAAO,MAAM,iBAAiB,UACrB,sBAAsB,KAC5B,CAAC,oBAAoB,EAAE,WAAW,CAuDpC,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,CAmGhB;AAeD,eAAO,MAAM,mBAAmB,mBAA0B,CAAA;AAE1D,eAAO,MAAM,oBAAoB,UACxB,sBAAsB,2BAEtB,MAAM,EAAE,iBACA,MAAM,OAAO,GAAG,SAAS,KACvC,oBA8QF,CAAA"}
1
+ {"version":3,"file":"useTheme.d.ts","sourceRoot":"","sources":["../../src/hooks/useTheme.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,QAAQ,EAAe,MAAM,mBAAmB,CAAA;AAGzD,OAAO,EACL,YAAY,EACZ,iBAAiB,EAElB,MAAM,yBAAyB,CAAA;AAEhC,OAAO,KAAK,EACV,SAAS,EACT,WAAW,EACX,UAAU,EACV,sBAAsB,EACtB,WAAW,EACX,kBAAkB,EACnB,MAAM,UAAU,CAAA;AAGjB,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,GACvB,MAAM,GAAG,MAAM,GACf,OAAO,CAAC,CAAA;CACjB,CAAA;AAED,MAAM,MAAM,cAAc,GAAG;KAC1B,GAAG,IAAI,MAAM,WAAW,GAAG,aAAa,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;CAC5D,CAAA;AAED,eAAO,MAAM,QAAQ,WAAW,UAAU,mBAIzC,CAAA;AAED,eAAO,MAAM,iBAAiB,UACrB,sBAAsB,KAC5B,CAAC,oBAAoB,EAAE,WAAW,CAuDpC,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,CAmGhB;AAeD,eAAO,MAAM,mBAAmB,mBAA0B,CAAA;AAE1D,eAAO,MAAM,oBAAoB,UACxB,sBAAsB,2BAEtB,MAAM,EAAE,iBACA,MAAM,OAAO,GAAG,SAAS,KACvC,oBAkRF,CAAA"}
@@ -0,0 +1,4 @@
1
+ /// <reference types="react" />
2
+ /** internal: this is for tamagui babel plugin usage only */
3
+ export declare const internalWithTheme: (Component: any, styleProvider: any, memoArgs: string[]) => (props: any) => JSX.Element;
4
+ //# sourceMappingURL=internalWithTheme.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"internalWithTheme.d.ts","sourceRoot":"","sources":["../src/internalWithTheme.tsx"],"names":[],"mappings":";AAIA,4DAA4D;AAE5D,eAAO,MAAM,iBAAiB,cACjB,GAAG,iBACC,GAAG,YACR,MAAM,EAAE,gCAMnB,CAAA"}
@@ -5,10 +5,11 @@ export declare function setupHooks(next: InternalHooks): void;
5
5
  type InternalHooks = {
6
6
  usePropsTransform?: (elementType: any, props: Record<string, any>, hostRef: RefObject<TamaguiElement>) => any;
7
7
  useEvents?: (viewProps: Record<string, any>, events: TamaguiComponentEvents | null, splitStyles: GetStyleResult, setStateShallow: (next: Partial<TamaguiComponentState>) => void, staticConfig: StaticConfig) => any;
8
- useChildren?: (children: any, viewProps: Record<string, any>, events: TamaguiComponentEvents | null, staticConfig: StaticConfig) => any;
8
+ useChildren?: (elementType: any, children: any, viewProps: Record<string, any>, events: TamaguiComponentEvents | null, staticConfig: StaticConfig) => any;
9
9
  getBaseViews?: () => {
10
10
  View: any;
11
11
  Text: any;
12
+ TextAncestor: any;
12
13
  };
13
14
  };
14
15
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"setupHooks.d.ts","sourceRoot":"","sources":["../src/setupHooks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAEjC,OAAO,EACL,cAAc,EACd,YAAY,EACZ,sBAAsB,EACtB,qBAAqB,EACrB,cAAc,EACf,MAAM,SAAS,CAAA;AAEhB,eAAO,MAAM,KAAK,EAAE,aAAkB,CAAA;AAGtC,wBAAgB,UAAU,CAAC,IAAI,EAAE,aAAa,QAE7C;AAED,KAAK,aAAa,GAAG;IACnB,iBAAiB,CAAC,EAAE,CAClB,WAAW,EAAE,GAAG,EAChB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC1B,OAAO,EAAE,SAAS,CAAC,cAAc,CAAC,KAC/B,GAAG,CAAA;IAER,SAAS,CAAC,EAAE,CACV,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC9B,MAAM,EAAE,sBAAsB,GAAG,IAAI,EACrC,WAAW,EAAE,cAAc,EAC3B,eAAe,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,qBAAqB,CAAC,KAAK,IAAI,EAC/D,YAAY,EAAE,YAAY,KACvB,GAAG,CAAA;IAER,WAAW,CAAC,EAAE,CACZ,QAAQ,EAAE,GAAG,EACb,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC9B,MAAM,EAAE,sBAAsB,GAAG,IAAI,EACrC,YAAY,EAAE,YAAY,KACvB,GAAG,CAAA;IAER,YAAY,CAAC,EAAE,MAAM;QACnB,IAAI,EAAE,GAAG,CAAA;QACT,IAAI,EAAE,GAAG,CAAA;KACV,CAAA;CACF,CAAA"}
1
+ {"version":3,"file":"setupHooks.d.ts","sourceRoot":"","sources":["../src/setupHooks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAEjC,OAAO,EACL,cAAc,EACd,YAAY,EACZ,sBAAsB,EACtB,qBAAqB,EACrB,cAAc,EACf,MAAM,SAAS,CAAA;AAEhB,eAAO,MAAM,KAAK,EAAE,aAAkB,CAAA;AAGtC,wBAAgB,UAAU,CAAC,IAAI,EAAE,aAAa,QAE7C;AAED,KAAK,aAAa,GAAG;IACnB,iBAAiB,CAAC,EAAE,CAClB,WAAW,EAAE,GAAG,EAChB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC1B,OAAO,EAAE,SAAS,CAAC,cAAc,CAAC,KAC/B,GAAG,CAAA;IAER,SAAS,CAAC,EAAE,CACV,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC9B,MAAM,EAAE,sBAAsB,GAAG,IAAI,EACrC,WAAW,EAAE,cAAc,EAC3B,eAAe,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,qBAAqB,CAAC,KAAK,IAAI,EAC/D,YAAY,EAAE,YAAY,KACvB,GAAG,CAAA;IAER,WAAW,CAAC,EAAE,CACZ,WAAW,EAAE,GAAG,EAChB,QAAQ,EAAE,GAAG,EACb,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC9B,MAAM,EAAE,sBAAsB,GAAG,IAAI,EACrC,YAAY,EAAE,YAAY,KACvB,GAAG,CAAA;IAER,YAAY,CAAC,EAAE,MAAM;QACnB,IAAI,EAAE,GAAG,CAAA;QACT,IAAI,EAAE,GAAG,CAAA;QACT,YAAY,EAAE,GAAG,CAAA;KAClB,CAAA;CACF,CAAA"}