@tamagui/web 1.55.1 → 1.56.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 (88) hide show
  1. package/dist/cjs/config.js +1 -1
  2. package/dist/cjs/config.js.map +1 -1
  3. package/dist/cjs/createComponent.js +79 -21
  4. package/dist/cjs/createComponent.js.map +2 -2
  5. package/dist/cjs/helpers/createMediaStyle.js +47 -39
  6. package/dist/cjs/helpers/createMediaStyle.js.map +1 -1
  7. package/dist/cjs/helpers/createShallowSetState.js +6 -4
  8. package/dist/cjs/helpers/createShallowSetState.js.map +1 -1
  9. package/dist/cjs/helpers/getGroupPropParts.js +41 -0
  10. package/dist/cjs/helpers/getGroupPropParts.js.map +6 -0
  11. package/dist/cjs/helpers/getSplitStyles.js +49 -18
  12. package/dist/cjs/helpers/getSplitStyles.js.map +2 -2
  13. package/dist/cjs/helpers/insertStyleRule.js +9 -2
  14. package/dist/cjs/helpers/insertStyleRule.js.map +1 -1
  15. package/dist/cjs/helpers/matchMedia.js +1 -0
  16. package/dist/cjs/helpers/matchMedia.js.map +1 -1
  17. package/dist/cjs/helpers/matchMedia.native.js +1 -0
  18. package/dist/cjs/helpers/matchMedia.native.js.map +1 -1
  19. package/dist/cjs/helpers/normalizeColor.js +10 -23
  20. package/dist/cjs/helpers/normalizeColor.js.map +2 -2
  21. package/dist/cjs/hooks/useMedia.js +31 -3
  22. package/dist/cjs/hooks/useMedia.js.map +1 -1
  23. package/dist/cjs/index.js +0 -2
  24. package/dist/cjs/index.js.map +1 -1
  25. package/dist/cjs/views/Slot.js +4 -11
  26. package/dist/cjs/views/Slot.js.map +1 -1
  27. package/dist/esm/config.js +1 -1
  28. package/dist/esm/config.js.map +1 -1
  29. package/dist/esm/createComponent.js +85 -24
  30. package/dist/esm/createComponent.js.map +2 -2
  31. package/dist/esm/helpers/createMediaStyle.js +47 -39
  32. package/dist/esm/helpers/createMediaStyle.js.map +1 -1
  33. package/dist/esm/helpers/createShallowSetState.js +4 -3
  34. package/dist/esm/helpers/createShallowSetState.js.map +1 -1
  35. package/dist/esm/helpers/getGroupPropParts.js +17 -0
  36. package/dist/esm/helpers/getGroupPropParts.js.map +6 -0
  37. package/dist/esm/helpers/getSplitStyles.js +50 -18
  38. package/dist/esm/helpers/getSplitStyles.js.map +2 -2
  39. package/dist/esm/helpers/insertStyleRule.js +9 -2
  40. package/dist/esm/helpers/insertStyleRule.js.map +1 -1
  41. package/dist/esm/helpers/matchMedia.js +1 -0
  42. package/dist/esm/helpers/matchMedia.js.map +1 -1
  43. package/dist/esm/helpers/matchMedia.native.js +1 -0
  44. package/dist/esm/helpers/matchMedia.native.js.map +1 -1
  45. package/dist/esm/helpers/normalizeColor.js +9 -11
  46. package/dist/esm/helpers/normalizeColor.js.map +2 -2
  47. package/dist/esm/hooks/useMedia.js +29 -3
  48. package/dist/esm/hooks/useMedia.js.map +1 -1
  49. package/dist/esm/index.js +0 -1
  50. package/dist/esm/index.js.map +1 -1
  51. package/dist/esm/views/Slot.js +3 -9
  52. package/dist/esm/views/Slot.js.map +1 -1
  53. package/package.json +9 -10
  54. package/src/config.ts +1 -1
  55. package/src/createComponent.tsx +102 -25
  56. package/src/helpers/createMediaStyle.ts +59 -45
  57. package/src/helpers/createShallowSetState.tsx +2 -2
  58. package/src/helpers/getGroupPropParts.ts +14 -0
  59. package/src/helpers/getSplitStyles.tsx +60 -24
  60. package/src/helpers/insertStyleRule.tsx +17 -5
  61. package/src/helpers/matchMedia.native.ts +1 -0
  62. package/src/helpers/matchMedia.ts +1 -0
  63. package/src/helpers/normalizeColor.ts +9 -9
  64. package/src/hooks/useMedia.tsx +34 -3
  65. package/src/index.ts +0 -1
  66. package/src/types.tsx +44 -7
  67. package/src/views/Slot.tsx +2 -8
  68. package/types/createComponent.d.ts.map +1 -1
  69. package/types/helpers/createMediaStyle.d.ts +1 -1
  70. package/types/helpers/createMediaStyle.d.ts.map +1 -1
  71. package/types/helpers/createShallowSetState.d.ts +1 -0
  72. package/types/helpers/createShallowSetState.d.ts.map +1 -1
  73. package/types/helpers/getGroupPropParts.d.ts +6 -0
  74. package/types/helpers/getGroupPropParts.d.ts.map +1 -0
  75. package/types/helpers/getSplitStyles.d.ts.map +1 -1
  76. package/types/helpers/insertStyleRule.d.ts.map +1 -1
  77. package/types/helpers/matchMedia.d.ts.map +1 -1
  78. package/types/helpers/matchMedia.native.d.ts.map +1 -1
  79. package/types/helpers/normalizeColor.d.ts +1 -154
  80. package/types/helpers/normalizeColor.d.ts.map +1 -1
  81. package/types/hooks/useMedia.d.ts +6 -1
  82. package/types/hooks/useMedia.d.ts.map +1 -1
  83. package/types/index.d.ts +0 -1
  84. package/types/index.d.ts.map +1 -1
  85. package/types/types.d.ts +39 -5
  86. package/types/types.d.ts.map +1 -1
  87. package/types/views/Slot.d.ts +0 -1
  88. package/types/views/Slot.d.ts.map +1 -1
@@ -1,26 +1,26 @@
1
1
  import { isWeb } from '@tamagui/constants'
2
- import * as NCC from '@tamagui/normalize-css-color'
2
+ import { normalizeCSSColor, rgba } from '@tamagui/normalize-css-color'
3
3
 
4
- export const rgba = NCC.rgba
5
- export const names = NCC.names
4
+ export { rgba } from '@tamagui/normalize-css-color'
6
5
 
7
6
  export const normalizeColor = (color?: string | null, opacity?: number) => {
8
7
  if (!color) return
9
8
  if (color[0] === '$') return color
10
9
  if (isWeb && opacity === 1) return color
11
- const colorProcessed = NCC.normalizeCSSColor(color)
12
- if (typeof colorProcessed === 'number') {
10
+ const colorProcessed = normalizeCSSColor(color)
11
+ if (colorProcessed != null) {
13
12
  const { r, g, b, a } = rgba(colorProcessed)
14
- const o = +(opacity ?? a ?? 1)
13
+ const o = opacity ?? a ?? 1
15
14
  const alpha = o.toFixed(2)
16
15
  return `rgba(${r},${g},${b},${alpha})`
17
16
  }
17
+ if (process.env.NODE_ENV === 'development') {
18
+ console.warn(`Unknown color value: ${color}`)
19
+ }
18
20
  if (process.env.TAMAGUI_TARGET === 'native') {
19
- if (process.env.NODE_ENV === 'development') {
20
- console.warn(`Unknown color value: ${color}`)
21
- }
22
21
  // avoids errors
23
22
  return
24
23
  }
24
+ // on web pass it through could be a var or something
25
25
  return color
26
26
  }
@@ -113,7 +113,7 @@ export function setupMediaListeners() {
113
113
  unlisten()
114
114
 
115
115
  for (const key in mediaQueryConfig) {
116
- const str = mediaObjectToString(mediaQueryConfig[key])
116
+ const str = mediaObjectToString(mediaQueryConfig[key], key)
117
117
  const getMatch = () => matchMedia(str)
118
118
  const match = getMatch()
119
119
  if (!match) {
@@ -331,11 +331,17 @@ function camelToHyphen(str: string) {
331
331
  return str.replace(/[A-Z]/g, (m) => `-${m.toLowerCase()}`).toLowerCase()
332
332
  }
333
333
 
334
- export function mediaObjectToString(query: string | MediaQueryObject) {
334
+ const cache = new WeakMap<any, string>()
335
+ const cachedMediaKeyToQuery: Record<string, string> = {}
336
+
337
+ export function mediaObjectToString(query: string | MediaQueryObject, key?: string) {
335
338
  if (typeof query === 'string') {
336
339
  return query
337
340
  }
338
- return Object.entries(query)
341
+ if (cache.has(query)) {
342
+ return cache.get(query)!
343
+ }
344
+ const res = Object.entries(query)
339
345
  .map(([feature, value]) => {
340
346
  feature = camelToHyphen(feature)
341
347
  if (typeof value === 'string') {
@@ -347,4 +353,29 @@ export function mediaObjectToString(query: string | MediaQueryObject) {
347
353
  return `(${feature}: ${value})`
348
354
  })
349
355
  .join(' and ')
356
+ if (key) {
357
+ cachedMediaKeyToQuery[key] = res
358
+ }
359
+ cache.set(query, res)
360
+ return res
361
+ }
362
+
363
+ export function mediaKeyToQuery(key: string) {
364
+ return cachedMediaKeyToQuery[key] || mediaObjectToString(mediaQueryConfig[key], key)
365
+ }
366
+
367
+ export function mediaKeyMatch(
368
+ key: string,
369
+ dimensions: { width: number; height: number }
370
+ ) {
371
+ const mediaQueries = mediaQueryConfig[key]
372
+ const result = Object.keys(mediaQueries).every((query) => {
373
+ const expectedVal = +mediaQueries[query]
374
+ const isMax = query.startsWith('max')
375
+ const isWidth = query.endsWith('Width')
376
+ const givenVal = dimensions[isWidth ? 'width' : 'height']
377
+ // if not max then min
378
+ return isMax ? givenVal < expectedVal : givenVal > expectedVal
379
+ })
380
+ return result
350
381
  }
package/src/index.ts CHANGED
@@ -75,7 +75,6 @@ export * from './views/FontLanguage'
75
75
  export * from './views/TamaguiProvider'
76
76
  export * from './views/AnimationDriverProvider'
77
77
 
78
- export * from '@tamagui/use-force-update'
79
78
  export * from '@tamagui/use-did-finish-ssr'
80
79
  export * from '@tamagui/use-event'
81
80
  export * from '@tamagui/compose-refs'
package/src/types.tsx CHANGED
@@ -75,9 +75,16 @@ export type TamaguiComponentPropsBase = {
75
75
 
76
76
  /**
77
77
  * Marks this component as a group for use in styling children based on parents named group
78
+ * See: https://tamagui.dev/docs/intro/props
78
79
  */
79
80
  group?: GroupNames
80
81
 
82
+ /**
83
+ * Works only alongside group, when children of the group are using container based sizing on native you can hide them until parent is measured.
84
+ * See: https://tamagui.dev/docs/intro/props
85
+ */
86
+ untilMeasured?: 'hide' | 'show'
87
+
81
88
  /**
82
89
  * Equivalent to "name" property on styled() for automatically applying a theme
83
90
  */
@@ -168,23 +175,50 @@ export type ComponentContextI = {
168
175
  groups: GroupContextType
169
176
  }
170
177
 
178
+ type ComponentGroupEvent = {
179
+ pseudo?: PseudoGroupState
180
+ layout?: LayoutValue
181
+ }
182
+
171
183
  // this object must stay referentially the same always to avoid every component re-rendering
172
184
  // instead `state` is mutated and only used on initial mount, after that emit/subscribe
173
185
  export type GroupContextType = {
174
186
  emit: GroupStateListener
175
187
  subscribe: (cb: GroupStateListener) => DisposeFn
176
- state: Record<string, GroupState>
188
+ state: Record<string, ComponentGroupEvent>
177
189
  }
178
190
 
179
- export type GroupStateListener = (name: string, state: GroupState) => void
191
+ export type GroupStateListener = (name: string, state: ComponentGroupEvent) => void
180
192
 
181
- // could just be TamaguiComponentState likely
182
- type GroupState = {
193
+ type PseudoGroupState = {
183
194
  hover?: boolean
184
195
  press?: boolean
185
196
  focus?: boolean
186
197
  }
187
198
 
199
+ // could just be TamaguiComponentState likely
200
+ export type GroupState = {
201
+ pseudo?: PseudoGroupState
202
+ media?: Record<MediaQueryKey, boolean>
203
+ }
204
+
205
+ export type LayoutEvent = {
206
+ nativeEvent: {
207
+ layout: LayoutValue
208
+ target: any
209
+ }
210
+ timeStamp: number
211
+ }
212
+
213
+ type LayoutValue = {
214
+ x: number
215
+ y: number
216
+ width: number
217
+ height: number
218
+ left: number
219
+ top: number
220
+ }
221
+
188
222
  export type DisposeFn = () => void
189
223
 
190
224
  export type ConfigListener = (conf: TamaguiInternalConfig) => void
@@ -709,8 +743,6 @@ export type ThemeMediaKeys<TK extends keyof Themes = keyof Themes> =
709
743
 
710
744
  export type PlatformMediaKeys = `$platform-${AllPlatforms}`
711
745
 
712
- type UndefinedPlaceholder = { __undefined: true }
713
-
714
746
  export interface TypeOverride {
715
747
  groupNames(): 1
716
748
  }
@@ -719,11 +751,13 @@ export type GroupNames = ReturnType<TypeOverride['groupNames']> extends 1
719
751
  ? never
720
752
  : ReturnType<TypeOverride['groupNames']>
721
753
 
722
- type ParentMediaStates = 'hovered' | 'pressed' | 'focused'
754
+ type ParentMediaStates = 'hover' | 'press' | 'focus'
723
755
 
724
756
  export type GroupMediaKeys =
725
757
  | `$group-${GroupNames}`
726
758
  | `$group-${GroupNames}-${ParentMediaStates}`
759
+ | `$group-${GroupNames}-${MediaQueryKey}`
760
+ | `$group-${GroupNames}-${MediaQueryKey}-${ParentMediaStates}`
727
761
 
728
762
  export type MediaProps<A> = {
729
763
  [key in MediaPropKeys | GroupMediaKeys | ThemeMediaKeys | PlatformMediaKeys]?: A
@@ -736,6 +770,7 @@ export type MediaQueries = {
736
770
  export interface MediaQueryList {
737
771
  addListener(listener?: any): void
738
772
  removeListener(listener?: any): void
773
+ match?: (query: string, dimensions: { width: number; height: number }) => boolean
739
774
  matches: boolean
740
775
  }
741
776
 
@@ -1752,6 +1787,7 @@ export type TamaguiComponentState = {
1752
1787
  style?: any
1753
1788
  avoidClasses?: boolean
1754
1789
  }
1790
+ // for groups:
1755
1791
  group?: Record<string, GroupState>
1756
1792
  }
1757
1793
 
@@ -1882,6 +1918,7 @@ export type GetStyleResult = {
1882
1918
  hasMedia: boolean | string[]
1883
1919
  dynamicThemeAccess?: boolean
1884
1920
  pseudoGroups?: Set<string>
1921
+ mediaGroups?: Set<string>
1885
1922
  }
1886
1923
 
1887
1924
  export type ClassNamesObject = Record<string, string>
@@ -2,6 +2,7 @@
2
2
 
3
3
  import { composeRefs } from '@tamagui/compose-refs'
4
4
  import { isWeb } from '@tamagui/constants'
5
+ import { composeEventHandlers } from '@tamagui/helpers'
5
6
  import { Children, ReactNode, cloneElement, forwardRef, isValidElement } from 'react'
6
7
 
7
8
  /* -------------------------------------------------------------------------------------------------
@@ -77,7 +78,7 @@ function mergeSlotProps(child: any, slotProps: Record<string, any>) {
77
78
  const isHandler = handleRegex.test(propName)
78
79
  // if it's a handler, modify the override by composing the base handler
79
80
  if (isHandler) {
80
- overrideProps[propName] = mergeEvent(childPropValue, slotPropValue)
81
+ overrideProps[propName] = composeEventHandlers(childPropValue, slotPropValue)
81
82
  }
82
83
  // if it's `style`, we merge them
83
84
  else if (propName === 'style') {
@@ -91,10 +92,3 @@ function mergeSlotProps(child: any, slotProps: Record<string, any>) {
91
92
  }
92
93
 
93
94
  const handleRegex = /^on[A-Z]/
94
-
95
- export function mergeEvent(a?: Function, b?: Function) {
96
- return (...args: unknown[]) => {
97
- a?.(...args)
98
- b?.(...args)
99
- }
100
- }
@@ -1 +1 @@
1
- {"version":3,"file":"createComponent.d.ts","sourceRoot":"","sources":["../src/createComponent.tsx"],"names":[],"mappings":"AAIA,OAAO,KAaN,MAAM,OAAO,CAAA;AAcd,OAAO,EACL,SAAS,EAGT,cAAc,EACd,UAAU,EACV,WAAW,EACX,UAAU,EACV,YAAY,EACZ,gBAAgB,EAEhB,qBAAqB,EACrB,cAAc,EAEd,SAAS,EAGV,MAAM,SAAS,CAAA;AAQhB,eAAO,MAAM,qBAAqB,EAAE,qBAMnC,CAAA;AAoBD,eAAO,MAAM,QAAQ,eAAsB,CAAA;AAmB3C,wBAAgB,eAAe,CAC7B,kBAAkB,SAAS,UAAU,GAAG,SAAS,GAAG,EAAE,EACtD,GAAG,GAAG,cAAc,EACpB,SAAS,GAAG,KAAK,EACjB,YAAY,EAAE,YAAY,4DA++B3B;AAGD,wBAAgB,QAAQ,CAAC,KAAK,EAAE;IAAE,QAAQ,CAAC,EAAE,GAAG,CAAA;CAAE,OAEjD;AAMD,eAAO,MAAM,MAAM,0DA8CjB,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,mBAkGxD"}
1
+ {"version":3,"file":"createComponent.d.ts","sourceRoot":"","sources":["../src/createComponent.tsx"],"names":[],"mappings":"AAIA,OAAO,KAaN,MAAM,OAAO,CAAA;AAiBd,OAAO,EAEL,SAAS,EAIT,cAAc,EACd,UAAU,EACV,WAAW,EACX,UAAU,EACV,YAAY,EACZ,gBAAgB,EAEhB,qBAAqB,EACrB,cAAc,EAEd,SAAS,EAGV,MAAM,SAAS,CAAA;AAQhB,eAAO,MAAM,qBAAqB,EAAE,qBAMnC,CAAA;AAoBD,eAAO,MAAM,QAAQ,eAAsB,CAAA;AAmB3C,wBAAgB,eAAe,CAC7B,kBAAkB,SAAS,UAAU,GAAG,SAAS,GAAG,EAAE,EACtD,GAAG,GAAG,cAAc,EACpB,SAAS,GAAG,KAAK,EACjB,YAAY,EAAE,YAAY,4DAyiC3B;AAGD,wBAAgB,QAAQ,CAAC,KAAK,EAAE;IAAE,QAAQ,CAAC,EAAE,GAAG,CAAA;CAAE,OAEjD;AAMD,eAAO,MAAM,MAAM,0DA8CjB,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,mBAkGxD"}
@@ -1,4 +1,4 @@
1
1
  import type { MediaQueries, MediaStyleObject, StyleObject } from '../types';
2
2
  export declare const MEDIA_SEP = "_";
3
- export declare const createMediaStyle: ({ property, identifier, rules }: StyleObject, mediaKey: string, mediaQueries: MediaQueries, negate?: boolean, priority?: number) => MediaStyleObject;
3
+ export declare const createMediaStyle: (styleObject: StyleObject, mediaKeyIn: string, mediaQueries: MediaQueries, negate?: boolean, priority?: number) => MediaStyleObject;
4
4
  //# sourceMappingURL=createMediaStyle.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"createMediaStyle.d.ts","sourceRoot":"","sources":["../../src/helpers/createMediaStyle.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAI3E,eAAO,MAAM,SAAS,MAAM,CAAA;AAS5B,eAAO,MAAM,gBAAgB,oCACM,WAAW,YAClC,MAAM,gBACF,YAAY,WACjB,OAAO,aACL,MAAM,KAChB,gBAwFF,CAAA"}
1
+ {"version":3,"file":"createMediaStyle.d.ts","sourceRoot":"","sources":["../../src/helpers/createMediaStyle.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAK3E,eAAO,MAAM,SAAS,MAAM,CAAA;AAS5B,eAAO,MAAM,gBAAgB,gBACd,WAAW,cACZ,MAAM,gBACJ,YAAY,WACjB,OAAO,aACL,MAAM,KAChB,gBAqGF,CAAA"}
@@ -1,4 +1,5 @@
1
1
  import React from 'react';
2
2
  import { TamaguiComponentState } from '../types';
3
3
  export declare function createShallowSetState<State extends TamaguiComponentState>(setter: React.Dispatch<React.SetStateAction<State>>): (next: Partial<State>) => void;
4
+ export declare function mergeIfNotShallowEqual(prev: any, next: any): any;
4
5
  //# sourceMappingURL=createShallowSetState.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"createShallowSetState.d.ts","sourceRoot":"","sources":["../../src/helpers/createShallowSetState.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAA;AAEhD,wBAAgB,qBAAqB,CAAC,KAAK,SAAS,qBAAqB,EACvE,MAAM,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,UAErC,QAAQ,KAAK,CAAC,UAC7B"}
1
+ {"version":3,"file":"createShallowSetState.d.ts","sourceRoot":"","sources":["../../src/helpers/createShallowSetState.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAA;AAEhD,wBAAgB,qBAAqB,CAAC,KAAK,SAAS,qBAAqB,EACvE,MAAM,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,UAErC,QAAQ,KAAK,CAAC,UAC7B;AAED,wBAAgB,sBAAsB,CAAC,IAAI,KAAA,EAAE,IAAI,KAAA,OAOhD"}
@@ -0,0 +1,6 @@
1
+ export declare function getGroupPropParts(groupProp: string): {
2
+ name: string;
3
+ pseudo: string;
4
+ media: string | undefined;
5
+ };
6
+ //# sourceMappingURL=getGroupPropParts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getGroupPropParts.d.ts","sourceRoot":"","sources":["../../src/helpers/getGroupPropParts.ts"],"names":[],"mappings":"AAEA,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM;;;;EAWlD"}
@@ -1 +1 @@
1
- {"version":3,"file":"getSplitStyles.d.ts","sourceRoot":"","sources":["../../src/helpers/getSplitStyles.tsx"],"names":[],"mappings":"AAiCA,OAAO,KAAK,EAEV,iBAAiB,EACjB,SAAS,EACT,cAAc,EACd,aAAa,EAMb,eAAe,EACf,YAAY,EAEZ,qBAAqB,EAErB,cAAc,EACd,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,KACd,cAAc,CAAA;AAEnB,eAAO,MAAM,UAAU,MAAM,CAAA;AAuB7B,eAAO,MAAM,cAAc,EAAE,aA6mC5B,CAAA;AAqDD,eAAO,MAAM,WAAW,eACV,aAAa,UACjB,MAAM,WACL,MAAM,wBACO,OAAO,KAC5B,cAuBF,CAAA;AA0BD,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,EAMb,eAAe,EACf,YAAY,EAEZ,qBAAqB,EAErB,cAAc,EACd,WAAW,EAEZ,MAAM,UAAU,CAAA;AAyBjB,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;AAuB7B,eAAO,MAAM,cAAc,EAAE,aA6oC5B,CAAA;AAqDD,eAAO,MAAM,WAAW,eACV,aAAa,UACjB,MAAM,WACL,MAAM,wBACO,OAAO,KAC5B,cAuBF,CAAA;AA0BD,eAAO,MAAM,cAAc,EAAE,aAQ5B,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"insertStyleRule.d.ts","sourceRoot":"","sources":["../../src/helpers/insertStyleRule.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAEV,aAAa,EACb,aAAa,EAEb,YAAY,EACb,MAAM,UAAU,CAAA;AAIjB,eAAO,MAAM,kBAAkB,IAAK,CAAA;AAEpC,eAAO,MAAM,eAAe,8BAAqB,CAAA;AACjD,eAAO,MAAM,WAAW,gBAAgC,CAAA;AACxD,eAAO,MAAM,gBAAgB,UAA2B,CAAA;AAiCxD,wBAAgB,qBAAqB,SAkBpC;AAID,wBAAgB,aAAa,CAC3B,aAAa,UAAQ,EACrB,MAAM,CAAC,EAAE,YAAY,GACpB,aAAa,GAAG,SAAS,CA8B3B;AAiOD,wBAAgB,WAAW,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,uBAS9D;AAED,wBAAgB,gBAAgB,CAAC,aAAa,EAAE,aAAa,QAgC5D;AAED,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,MAAM,WAOxD"}
1
+ {"version":3,"file":"insertStyleRule.d.ts","sourceRoot":"","sources":["../../src/helpers/insertStyleRule.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAEV,aAAa,EACb,aAAa,EAEb,YAAY,EACb,MAAM,UAAU,CAAA;AAQjB,eAAO,MAAM,kBAAkB,IAAK,CAAA;AAEpC,eAAO,MAAM,eAAe,8BAAqB,CAAA;AACjD,eAAO,MAAM,WAAW,gBAAgC,CAAA;AACxD,eAAO,MAAM,gBAAgB,UAA2B,CAAA;AA6BxD,wBAAgB,qBAAqB,SAkBpC;AAID,wBAAgB,aAAa,CAC3B,aAAa,UAAQ,EACrB,MAAM,CAAC,EAAE,YAAY,GACpB,aAAa,GAAG,SAAS,CA8B3B;AAiOD,wBAAgB,WAAW,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,uBAS9D;AAED,wBAAgB,gBAAgB,CAAC,aAAa,EAAE,aAAa,QAgC5D;AAED,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,MAAM,WAmBxD"}
@@ -1 +1 @@
1
- {"version":3,"file":"matchMedia.d.ts","sourceRoot":"","sources":["../../src/helpers/matchMedia.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AAErD,eAAO,MAAM,UAAU,6GACqD,CAAA;AAE5E,iBAAS,kBAAkB,CAAC,CAAC,EAAE,MAAM,GAAG,cAAc,CAMrD;AAED,wBAAgB,eAAe,CAAC,CAAC,EAAE,UAAU,QAE5C"}
1
+ {"version":3,"file":"matchMedia.d.ts","sourceRoot":"","sources":["../../src/helpers/matchMedia.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AAErD,eAAO,MAAM,UAAU,6GACqD,CAAA;AAE5E,iBAAS,kBAAkB,CAAC,CAAC,EAAE,MAAM,GAAG,cAAc,CAOrD;AAED,wBAAgB,eAAe,CAAC,CAAC,EAAE,UAAU,QAE5C"}
@@ -1 +1 @@
1
- {"version":3,"file":"matchMedia.native.d.ts","sourceRoot":"","sources":["../../src/helpers/matchMedia.native.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAkB,MAAM,UAAU,CAAA;AAIrD,eAAO,MAAM,UAAU,EAAE,UAAiD,CAAA;AAa1E,wBAAgB,eAAe,CAAC,CAAC,EAAE,UAAU,QAI5C"}
1
+ {"version":3,"file":"matchMedia.native.d.ts","sourceRoot":"","sources":["../../src/helpers/matchMedia.native.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAkB,MAAM,UAAU,CAAA;AAIrD,eAAO,MAAM,UAAU,EAAE,UAAiD,CAAA;AAc1E,wBAAgB,eAAe,CAAC,CAAC,EAAE,UAAU,QAI5C"}
@@ -1,156 +1,3 @@
1
- import * as NCC from '@tamagui/normalize-css-color';
2
- export declare const rgba: typeof NCC.rgba;
3
- export declare const names: {
4
- transparent: number;
5
- aliceblue: number;
6
- antiquewhite: number;
7
- aqua: number;
8
- aquamarine: number;
9
- azure: number;
10
- beige: number;
11
- bisque: number;
12
- black: number;
13
- blanchedalmond: number;
14
- blue: number;
15
- blueviolet: number;
16
- brown: number;
17
- burlywood: number;
18
- burntsienna: number;
19
- cadetblue: number;
20
- chartreuse: number;
21
- chocolate: number;
22
- coral: number;
23
- cornflowerblue: number;
24
- cornsilk: number;
25
- crimson: number;
26
- cyan: number;
27
- darkblue: number;
28
- darkcyan: number;
29
- darkgoldenrod: number;
30
- darkgray: number;
31
- darkgreen: number;
32
- darkgrey: number;
33
- darkkhaki: number;
34
- darkmagenta: number;
35
- darkolivegreen: number;
36
- darkorange: number;
37
- darkorchid: number;
38
- darkred: number;
39
- darksalmon: number;
40
- darkseagreen: number;
41
- darkslateblue: number;
42
- darkslategray: number;
43
- darkslategrey: number;
44
- darkturquoise: number;
45
- darkviolet: number;
46
- deeppink: number;
47
- deepskyblue: number;
48
- dimgray: number;
49
- dimgrey: number;
50
- dodgerblue: number;
51
- firebrick: number;
52
- floralwhite: number;
53
- forestgreen: number;
54
- fuchsia: number;
55
- gainsboro: number;
56
- ghostwhite: number;
57
- gold: number;
58
- goldenrod: number;
59
- gray: number;
60
- green: number;
61
- greenyellow: number;
62
- grey: number;
63
- honeydew: number;
64
- hotpink: number;
65
- indianred: number;
66
- indigo: number;
67
- ivory: number;
68
- khaki: number;
69
- lavender: number;
70
- lavenderblush: number;
71
- lawngreen: number;
72
- lemonchiffon: number;
73
- lightblue: number;
74
- lightcoral: number;
75
- lightcyan: number;
76
- lightgoldenrodyellow: number;
77
- lightgray: number;
78
- lightgreen: number;
79
- lightgrey: number;
80
- lightpink: number;
81
- lightsalmon: number;
82
- lightseagreen: number;
83
- lightskyblue: number;
84
- lightslategray: number;
85
- lightslategrey: number;
86
- lightsteelblue: number;
87
- lightyellow: number;
88
- lime: number;
89
- limegreen: number;
90
- linen: number;
91
- magenta: number;
92
- maroon: number;
93
- mediumaquamarine: number;
94
- mediumblue: number;
95
- mediumorchid: number;
96
- mediumpurple: number;
97
- mediumseagreen: number;
98
- mediumslateblue: number;
99
- mediumspringgreen: number;
100
- mediumturquoise: number;
101
- mediumvioletred: number;
102
- midnightblue: number;
103
- mintcream: number;
104
- mistyrose: number;
105
- moccasin: number;
106
- navajowhite: number;
107
- navy: number;
108
- oldlace: number;
109
- olive: number;
110
- olivedrab: number;
111
- orange: number;
112
- orangered: number;
113
- orchid: number;
114
- palegoldenrod: number;
115
- palegreen: number;
116
- paleturquoise: number;
117
- palevioletred: number;
118
- papayawhip: number;
119
- peachpuff: number;
120
- peru: number;
121
- pink: number;
122
- plum: number;
123
- powderblue: number;
124
- purple: number;
125
- rebeccapurple: number;
126
- red: number;
127
- rosybrown: number;
128
- royalblue: number;
129
- saddlebrown: number;
130
- salmon: number;
131
- sandybrown: number;
132
- seagreen: number;
133
- seashell: number;
134
- sienna: number;
135
- silver: number;
136
- skyblue: number;
137
- slateblue: number;
138
- slategray: number;
139
- slategrey: number;
140
- snow: number;
141
- springgreen: number;
142
- steelblue: number;
143
- tan: number;
144
- teal: number;
145
- thistle: number;
146
- tomato: number;
147
- turquoise: number;
148
- violet: number;
149
- wheat: number;
150
- white: number;
151
- whitesmoke: number;
152
- yellow: number;
153
- yellowgreen: number;
154
- };
1
+ export { rgba } from '@tamagui/normalize-css-color';
155
2
  export declare const normalizeColor: (color?: string | null, opacity?: number) => string | undefined;
156
3
  //# sourceMappingURL=normalizeColor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"normalizeColor.d.ts","sourceRoot":"","sources":["../../src/helpers/normalizeColor.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,GAAG,MAAM,8BAA8B,CAAA;AAEnD,eAAO,MAAM,IAAI,iBAAW,CAAA;AAC5B,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAAY,CAAA;AAE9B,eAAO,MAAM,cAAc,WAAY,MAAM,GAAG,IAAI,YAAY,MAAM,uBAmBrE,CAAA"}
1
+ {"version":3,"file":"normalizeColor.d.ts","sourceRoot":"","sources":["../../src/helpers/normalizeColor.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,IAAI,EAAE,MAAM,8BAA8B,CAAA;AAEnD,eAAO,MAAM,cAAc,WAAY,MAAM,GAAG,IAAI,YAAY,MAAM,uBAoBrE,CAAA"}
@@ -35,6 +35,11 @@ export declare function useMediaPropsActive<A extends Object>(props: A, opts?: {
35
35
  };
36
36
  export declare const getMediaImportanceIfMoreImportant: (mediaKey: string, key: string, importancesUsed: Record<string, number>, isSizeMedia: boolean) => number | null;
37
37
  export declare function mergeMediaByImportance(onto: Record<string, any>, mediaKey: string, key: string, value: any, importancesUsed: Record<string, number>, isSizeMedia: boolean, importanceBump?: number): boolean;
38
- export declare function mediaObjectToString(query: string | MediaQueryObject): string;
38
+ export declare function mediaObjectToString(query: string | MediaQueryObject, key?: string): string;
39
+ export declare function mediaKeyToQuery(key: string): string;
40
+ export declare function mediaKeyMatch(key: string, dimensions: {
41
+ width: number;
42
+ height: number;
43
+ }): boolean;
39
44
  export {};
40
45
  //# sourceMappingURL=useMedia.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useMedia.d.ts","sourceRoot":"","sources":["../../src/hooks/useMedia.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,EACV,YAAY,EACZ,aAAa,EACb,gBAAgB,EAChB,eAAe,EACf,qBAAqB,EACtB,MAAM,UAAU,CAAA;AAEjB,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;AAE1C,eAAO,MAAM,UAAU,QAAS,MAAM,YAKL,CAAA;AAIjC,eAAO,MAAM,oBAAoB,uBAEhC,CAAA;AAOD,eAAO,MAAM,qBAAqB,QAAS,MAAM,WAchD,CAAA;AAID,eAAO,MAAM,cAAc,WAAY,qBAAqB,SAc3D,CAAA;AAaD,wBAAgB,mBAAmB,SA+BlC;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,qBAAqB,QAM9D;AAiBD,KAAK,aAAa,GAAG;KAClB,GAAG,IAAI,aAAa,GAAG,OAAO;CAChC,CAAA;AAED,KAAK,WAAW,GAAG;IACjB,OAAO,EAAE,OAAO,CAAA;IAChB,IAAI,EAAE,aAAa,EAAE,CAAA;CACtB,CAAA;AAID,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,WAAW,6BAEhE;AAYD,wBAAgB,QAAQ,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,aAAa,CA6CjD;AAED;;;;;;;;;KASK;AACL,wBAAgB,mBAAmB,CAAC,CAAC,SAAS,MAAM,EAClD,KAAK,EAAE,CAAC,EACR,IAAI,CAAC,EAAE;IAAE,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAAE,GACpC;KAEA,GAAG,IAAI,MAAM,CAAC,SAAS,IAAI,MAAM,EAAE,GAAG,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC;CACjE,CAsCA;AAED,eAAO,MAAM,iCAAiC,aAClC,MAAM,OACX,MAAM,mBACM,OAAO,MAAM,EAAE,MAAM,CAAC,eAC1B,OAAO,kBAQrB,CAAA;AAED,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACzB,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,GAAG,EACV,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EACvC,WAAW,EAAE,OAAO,EACpB,cAAc,CAAC,EAAE,MAAM,WAiBxB;AAMD,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,gBAAgB,UAgBnE"}
1
+ {"version":3,"file":"useMedia.d.ts","sourceRoot":"","sources":["../../src/hooks/useMedia.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,EACV,YAAY,EACZ,aAAa,EACb,gBAAgB,EAChB,eAAe,EACf,qBAAqB,EACtB,MAAM,UAAU,CAAA;AAEjB,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;AAE1C,eAAO,MAAM,UAAU,QAAS,MAAM,YAKL,CAAA;AAIjC,eAAO,MAAM,oBAAoB,uBAEhC,CAAA;AAOD,eAAO,MAAM,qBAAqB,QAAS,MAAM,WAchD,CAAA;AAID,eAAO,MAAM,cAAc,WAAY,qBAAqB,SAc3D,CAAA;AAaD,wBAAgB,mBAAmB,SA+BlC;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,qBAAqB,QAM9D;AAiBD,KAAK,aAAa,GAAG;KAClB,GAAG,IAAI,aAAa,GAAG,OAAO;CAChC,CAAA;AAED,KAAK,WAAW,GAAG;IACjB,OAAO,EAAE,OAAO,CAAA;IAChB,IAAI,EAAE,aAAa,EAAE,CAAA;CACtB,CAAA;AAID,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,WAAW,6BAEhE;AAYD,wBAAgB,QAAQ,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,aAAa,CA6CjD;AAED;;;;;;;;;KASK;AACL,wBAAgB,mBAAmB,CAAC,CAAC,SAAS,MAAM,EAClD,KAAK,EAAE,CAAC,EACR,IAAI,CAAC,EAAE;IAAE,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAAE,GACpC;KAEA,GAAG,IAAI,MAAM,CAAC,SAAS,IAAI,MAAM,EAAE,GAAG,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC;CACjE,CAsCA;AAED,eAAO,MAAM,iCAAiC,aAClC,MAAM,OACX,MAAM,mBACM,OAAO,MAAM,EAAE,MAAM,CAAC,eAC1B,OAAO,kBAQrB,CAAA;AAED,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACzB,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,GAAG,EACV,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EACvC,WAAW,EAAE,OAAO,EACpB,cAAc,CAAC,EAAE,MAAM,WAiBxB;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"}
package/types/index.d.ts CHANGED
@@ -52,7 +52,6 @@ export * from './views/ThemeProvider';
52
52
  export * from './views/FontLanguage';
53
53
  export * from './views/TamaguiProvider';
54
54
  export * from './views/AnimationDriverProvider';
55
- export * from '@tamagui/use-force-update';
56
55
  export * from '@tamagui/use-did-finish-ssr';
57
56
  export * from '@tamagui/use-event';
58
57
  export * from '@tamagui/compose-refs';
@@ -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,cAAc,SAAS,CAAA;AACvB,cAAc,qBAAqB,CAAA;AAEnC,OAAO,EACL,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,sBAAsB,CAAA;AACpC,cAAc,8BAA8B,CAAA;AAC5C,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,gCAAgC,CAAA;AAE9C,OAAO,EACL,cAAc,EACd,UAAU,EACV,QAAQ,EACR,QAAQ,EACR,mBAAmB,EACnB,mBAAmB,EACnB,gBAAgB,GACjB,MAAM,kBAAkB,CAAA;AACzB,cAAc,kBAAkB,CAAA;AAChC,cAAc,sBAAsB,CAAA;AACpC,cAAc,kBAAkB,CAAA;AAChC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,0BAA0B,CAAA;AACxC,cAAc,kBAAkB,CAAA;AAEhC,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,iCAAiC,CAAA;AAE/C,cAAc,2BAA2B,CAAA;AACzC,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,cAAc,SAAS,CAAA;AACvB,cAAc,qBAAqB,CAAA;AAEnC,OAAO,EACL,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,sBAAsB,CAAA;AACpC,cAAc,8BAA8B,CAAA;AAC5C,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,gCAAgC,CAAA;AAE9C,OAAO,EACL,cAAc,EACd,UAAU,EACV,QAAQ,EACR,QAAQ,EACR,mBAAmB,EACnB,mBAAmB,EACnB,gBAAgB,GACjB,MAAM,kBAAkB,CAAA;AACzB,cAAc,kBAAkB,CAAA;AAChC,cAAc,sBAAsB,CAAA;AACpC,cAAc,kBAAkB,CAAA;AAChC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,0BAA0B,CAAA;AACxC,cAAc,kBAAkB,CAAA;AAEhC,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,iCAAiC,CAAA;AAE/C,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
@@ -46,8 +46,14 @@ export type TamaguiComponentPropsBase = {
46
46
  theme?: ThemeName | null;
47
47
  /**
48
48
  * Marks this component as a group for use in styling children based on parents named group
49
+ * See: https://tamagui.dev/docs/intro/props
49
50
  */
50
51
  group?: GroupNames;
52
+ /**
53
+ * Works only alongside group, when children of the group are using container based sizing on native you can hide them until parent is measured.
54
+ * See: https://tamagui.dev/docs/intro/props
55
+ */
56
+ untilMeasured?: 'hide' | 'show';
51
57
  /**
52
58
  * Equivalent to "name" property on styled() for automatically applying a theme
53
59
  */
@@ -114,17 +120,40 @@ export type ComponentContextI = {
114
120
  animationDriver: AnimationDriver | null;
115
121
  groups: GroupContextType;
116
122
  };
123
+ type ComponentGroupEvent = {
124
+ pseudo?: PseudoGroupState;
125
+ layout?: LayoutValue;
126
+ };
117
127
  export type GroupContextType = {
118
128
  emit: GroupStateListener;
119
129
  subscribe: (cb: GroupStateListener) => DisposeFn;
120
- state: Record<string, GroupState>;
130
+ state: Record<string, ComponentGroupEvent>;
121
131
  };
122
- export type GroupStateListener = (name: string, state: GroupState) => void;
123
- type GroupState = {
132
+ export type GroupStateListener = (name: string, state: ComponentGroupEvent) => void;
133
+ type PseudoGroupState = {
124
134
  hover?: boolean;
125
135
  press?: boolean;
126
136
  focus?: boolean;
127
137
  };
138
+ export type GroupState = {
139
+ pseudo?: PseudoGroupState;
140
+ media?: Record<MediaQueryKey, boolean>;
141
+ };
142
+ export type LayoutEvent = {
143
+ nativeEvent: {
144
+ layout: LayoutValue;
145
+ target: any;
146
+ };
147
+ timeStamp: number;
148
+ };
149
+ type LayoutValue = {
150
+ x: number;
151
+ y: number;
152
+ width: number;
153
+ height: number;
154
+ left: number;
155
+ top: number;
156
+ };
128
157
  export type DisposeFn = () => void;
129
158
  export type ConfigListener = (conf: TamaguiInternalConfig) => void;
130
159
  export type VariableVal = number | string | Variable | VariableValGeneric;
@@ -470,8 +499,8 @@ export interface TypeOverride {
470
499
  groupNames(): 1;
471
500
  }
472
501
  export type GroupNames = ReturnType<TypeOverride['groupNames']> extends 1 ? never : ReturnType<TypeOverride['groupNames']>;
473
- type ParentMediaStates = 'hovered' | 'pressed' | 'focused';
474
- export type GroupMediaKeys = `$group-${GroupNames}` | `$group-${GroupNames}-${ParentMediaStates}`;
502
+ type ParentMediaStates = 'hover' | 'press' | 'focus';
503
+ export type GroupMediaKeys = `$group-${GroupNames}` | `$group-${GroupNames}-${ParentMediaStates}` | `$group-${GroupNames}-${MediaQueryKey}` | `$group-${GroupNames}-${MediaQueryKey}-${ParentMediaStates}`;
475
504
  export type MediaProps<A> = {
476
505
  [key in MediaPropKeys | GroupMediaKeys | ThemeMediaKeys | PlatformMediaKeys]?: A;
477
506
  };
@@ -481,6 +510,10 @@ export type MediaQueries = {
481
510
  export interface MediaQueryList {
482
511
  addListener(listener?: any): void;
483
512
  removeListener(listener?: any): void;
513
+ match?: (query: string, dimensions: {
514
+ width: number;
515
+ height: number;
516
+ }) => boolean;
484
517
  matches: boolean;
485
518
  }
486
519
  export type MatchMedia = (query: string) => MediaQueryList;
@@ -981,6 +1014,7 @@ export type GetStyleResult = {
981
1014
  hasMedia: boolean | string[];
982
1015
  dynamicThemeAccess?: boolean;
983
1016
  pseudoGroups?: Set<string>;
1017
+ mediaGroups?: Set<string>;
984
1018
  };
985
1019
  export type ClassNamesObject = Record<string, string>;
986
1020
  export type TamaguiComponentEvents = {