@tamagui/core 1.0.0-alpha.32 → 1.0.0-alpha.39

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 (50) hide show
  1. package/dist/cjs/helpers/fixNativeShadow.native.js +23 -19
  2. package/dist/cjs/helpers/fixNativeShadow.native.js.map +2 -2
  3. package/dist/esm/constants/platform.js +2 -1
  4. package/dist/esm/constants/platform.js.map +1 -1
  5. package/dist/esm/createComponent.js +23 -19
  6. package/dist/esm/createComponent.js.map +1 -1
  7. package/dist/esm/createTamagui.js +2 -1
  8. package/dist/esm/createTamagui.js.map +1 -1
  9. package/dist/esm/helpers/createPropMapper.js +10 -8
  10. package/dist/esm/helpers/createPropMapper.js.map +1 -1
  11. package/dist/esm/helpers/extendStaticConfig.js +3 -2
  12. package/dist/esm/helpers/extendStaticConfig.js.map +1 -1
  13. package/dist/esm/helpers/fixNativeShadow.native.js +23 -19
  14. package/dist/esm/helpers/fixNativeShadow.native.js.map +2 -2
  15. package/dist/esm/helpers/getStylesAtomic.js +2 -1
  16. package/dist/esm/helpers/getStylesAtomic.js.map +1 -1
  17. package/dist/esm/helpers/isTamaguiElement.js +2 -1
  18. package/dist/esm/helpers/isTamaguiElement.js.map +1 -1
  19. package/dist/esm/helpers/themeable.js +1 -1
  20. package/dist/esm/helpers/themeable.js.map +1 -1
  21. package/dist/esm/hooks/useMedia.js +5 -3
  22. package/dist/esm/hooks/useMedia.js.map +1 -1
  23. package/dist/esm/hooks/usePressable.js +2 -1
  24. package/dist/esm/hooks/usePressable.js.map +1 -1
  25. package/dist/esm/hooks/useTheme.js +3 -2
  26. package/dist/esm/hooks/useTheme.js.map +1 -1
  27. package/dist/esm/views/TextAncestorContext.js +2 -1
  28. package/dist/esm/views/TextAncestorContext.js.map +1 -1
  29. package/dist/esm/views/Theme.js +2 -1
  30. package/dist/esm/views/Theme.js.map +1 -1
  31. package/dist/esm/views/ThemeManagerContext.js +2 -1
  32. package/dist/esm/views/ThemeManagerContext.js.map +1 -1
  33. package/dist/jsx/constants/platform.js +2 -1
  34. package/dist/jsx/createComponent.js +23 -19
  35. package/dist/jsx/createTamagui.js +2 -1
  36. package/dist/jsx/helpers/createPropMapper.js +10 -8
  37. package/dist/jsx/helpers/extendStaticConfig.js +3 -2
  38. package/dist/jsx/helpers/fixNativeShadow.native.js +23 -19
  39. package/dist/jsx/helpers/getStylesAtomic.js +2 -1
  40. package/dist/jsx/helpers/isTamaguiElement.js +2 -1
  41. package/dist/jsx/helpers/themeable.js +1 -1
  42. package/dist/jsx/hooks/useMedia.js +5 -3
  43. package/dist/jsx/hooks/usePressable.js +2 -1
  44. package/dist/jsx/hooks/useTheme.js +3 -2
  45. package/dist/jsx/views/TextAncestorContext.js +2 -1
  46. package/dist/jsx/views/Theme.js +2 -1
  47. package/dist/jsx/views/ThemeManagerContext.js +2 -1
  48. package/package.json +6 -9
  49. package/types/helpers/fixNativeShadow.native.d.ts +1 -1
  50. package/types/helpers/fixNativeShadow.native.d.ts.map +1 -1
@@ -9,27 +9,31 @@ var __export = (target, all) => {
9
9
  __export(exports, {
10
10
  fixNativeShadow: () => fixNativeShadow
11
11
  });
12
- const matchRgba = /rgba\(\s*([\d\.]{1,})\s*,\s*([\d\.]{1,})\s*,\s*([\d\.]{1,})\s*,\s*([\d\.]{1,})\s*\)$/;
12
+ const matchRgbaHsla = /(rgba|hsla)\(\s*([\d\.]{1,}%?)\s*,\s*([\d\.]{1,}%?)\s*,\s*([\d\.]{1,}%?)\s*,\s*([\d\.]{1,})\s*\)$/;
13
13
  function fixNativeShadow(props) {
14
- if (props.shadowColor) {
15
- if (!!!("shadowOffset" in props)) {
16
- props.shadowOffset = {
17
- width: 0,
18
- height: 0
19
- };
20
- }
21
- if (!!!("shadowOpacity" in props)) {
22
- const c = `${props.shadowColor}`;
23
- if (c[0] === "r" && c[3] === "a") {
24
- const [_, r, g, b, a] = c.match(matchRgba) || [];
25
- if (typeof a !== "string") {
26
- console.warn("non valid rgba", c);
27
- return props;
28
- }
29
- props.shadowColor = `rgb(${r},${g},${b})`;
30
- props.shadowOpacity = +a;
31
- }
14
+ if (!props.shadowColor) {
15
+ return;
16
+ }
17
+ if (!props.shadowOffset) {
18
+ props.shadowOffset = {
19
+ width: 0,
20
+ height: 0
21
+ };
22
+ }
23
+ if ("shadowOpacity" in props) {
24
+ return;
25
+ }
26
+ const c = `${props.shadowColor}`;
27
+ if ((c[0] === "r" || c[0] === "h") && c[3] === "a") {
28
+ const [_, type, _1, _2, _3, a] = c.match(matchRgbaHsla) || [];
29
+ if (typeof a !== "string") {
30
+ console.warn("invalid", c, type);
31
+ return;
32
32
  }
33
+ props.shadowColor = `${type.replace("a", "")}(${_1},${_2},${_3})`;
34
+ props.shadowOpacity = +a;
35
+ } else {
36
+ props.shadowOpacity = 1;
33
37
  }
34
38
  }
35
39
  __name(fixNativeShadow, "fixNativeShadow");
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/helpers/fixNativeShadow.native.tsx"],
4
- "sourcesContent": ["const matchRgba =\n /rgba\\(\\s*([\\d\\.]{1,})\\s*,\\s*([\\d\\.]{1,})\\s*,\\s*([\\d\\.]{1,})\\s*,\\s*([\\d\\.]{1,})\\s*\\)$/\n\nexport function fixNativeShadow(props: any) {\n if (props.shadowColor) {\n if (!!!('shadowOffset' in props)) {\n // fixes some broken shadows\n props.shadowOffset = {\n width: 0,\n height: 0,\n }\n }\n if (!!!('shadowOpacity' in props)) {\n const c = `${props.shadowColor}`\n // react native has issues sometimes with rgba()\n if (c[0] === 'r' && c[3] === 'a') {\n const [_, r, g, b, a] = c.match(matchRgba) || []\n if (typeof a !== 'string') {\n console.warn('non valid rgba', c)\n return props\n }\n props.shadowColor = `rgb(${r},${g},${b})`\n props.shadowOpacity = +a\n }\n }\n }\n}\n"],
5
- "mappings": ";;;;;;;;AAAA;AAAA;AAAA;AAAA,MAAM,YACJ;AAEK,yBAAyB,OAAY;AAC1C,MAAI,MAAM,aAAa;AACrB,QAAI,CAAC,CAAC,CAAE,mBAAkB,QAAQ;AAEhC,YAAM,eAAe;AAAA,QACnB,OAAO;AAAA,QACP,QAAQ;AAAA;AAAA;AAGZ,QAAI,CAAC,CAAC,CAAE,oBAAmB,QAAQ;AACjC,YAAM,IAAI,GAAG,MAAM;AAEnB,UAAI,EAAE,OAAO,OAAO,EAAE,OAAO,KAAK;AAChC,cAAM,CAAC,GAAG,GAAG,GAAG,GAAG,KAAK,EAAE,MAAM,cAAc;AAC9C,YAAI,OAAO,MAAM,UAAU;AACzB,kBAAQ,KAAK,kBAAkB;AAC/B,iBAAO;AAAA;AAET,cAAM,cAAc,OAAO,KAAK,KAAK;AACrC,cAAM,gBAAgB,CAAC;AAAA;AAAA;AAAA;AAAA;AAnBf;",
4
+ "sourcesContent": ["const matchRgbaHsla =\n /(rgba|hsla)\\(\\s*([\\d\\.]{1,}%?)\\s*,\\s*([\\d\\.]{1,}%?)\\s*,\\s*([\\d\\.]{1,}%?)\\s*,\\s*([\\d\\.]{1,})\\s*\\)$/\n\nexport function fixNativeShadow(props: any) {\n if (!props.shadowColor) {\n return\n }\n if (!props.shadowOffset) {\n // fixes some broken shadows\n props.shadowOffset = {\n width: 0,\n height: 0,\n }\n }\n if ('shadowOpacity' in props) {\n return\n }\n const c = `${props.shadowColor}`\n // react native has issues sometimes with rgba()\n // supports rgba + hsla\n if ((c[0] === 'r' || c[0] === 'h') && c[3] === 'a') {\n const [_, type, _1, _2, _3, a] = c.match(matchRgbaHsla) || []\n if (typeof a !== 'string') {\n console.warn('invalid', c, type)\n return\n }\n props.shadowColor = `${type.replace('a', '')}(${_1},${_2},${_3})`\n props.shadowOpacity = +a\n } else {\n props.shadowOpacity = 1\n }\n}\n"],
5
+ "mappings": ";;;;;;;;AAAA;AAAA;AAAA;AAAA,MAAM,gBACJ;AAEK,yBAAyB,OAAY;AAC1C,MAAI,CAAC,MAAM,aAAa;AACtB;AAAA;AAEF,MAAI,CAAC,MAAM,cAAc;AAEvB,UAAM,eAAe;AAAA,MACnB,OAAO;AAAA,MACP,QAAQ;AAAA;AAAA;AAGZ,MAAI,mBAAmB,OAAO;AAC5B;AAAA;AAEF,QAAM,IAAI,GAAG,MAAM;AAGnB,MAAK,GAAE,OAAO,OAAO,EAAE,OAAO,QAAQ,EAAE,OAAO,KAAK;AAClD,UAAM,CAAC,GAAG,MAAM,IAAI,IAAI,IAAI,KAAK,EAAE,MAAM,kBAAkB;AAC3D,QAAI,OAAO,MAAM,UAAU;AACzB,cAAQ,KAAK,WAAW,GAAG;AAC3B;AAAA;AAEF,UAAM,cAAc,GAAG,KAAK,QAAQ,KAAK,OAAO,MAAM,MAAM;AAC5D,UAAM,gBAAgB,CAAC;AAAA,SAClB;AACL,UAAM,gBAAgB;AAAA;AAAA;AA1BV;",
6
6
  "names": []
7
7
  }
@@ -1,6 +1,7 @@
1
+ var _a;
1
2
  import { useEffect, useLayoutEffect } from "react";
2
3
  import { Platform } from "react-native";
3
- const isWeb = process.env.TAMAGUI_TARGET === "web" ? true : Platform?.OS === "web";
4
+ const isWeb = process.env.TAMAGUI_TARGET === "web" ? true : ((_a = Platform) == null ? void 0 : _a.OS) === "web";
4
5
  const isSSR = isWeb && typeof window === "undefined";
5
6
  const useIsomorphicLayoutEffect = isSSR ? useEffect : useLayoutEffect;
6
7
  const isChrome = typeof navigator !== "undefined" && /Chrome/.test(navigator.userAgent || "");
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../src/constants/platform.ts"],
4
4
  "sourcesContent": ["import { useEffect, useLayoutEffect } from 'react'\nimport { Platform } from 'react-native'\n\nexport const isWeb = process.env.TAMAGUI_TARGET === 'web' ? true : Platform?.OS === 'web'\nexport const isSSR = isWeb && typeof window === 'undefined'\nexport const useIsomorphicLayoutEffect = isSSR ? useEffect : useLayoutEffect\nexport const isChrome = typeof navigator !== 'undefined' && /Chrome/.test(navigator.userAgent || '')\nexport const supportsTouchWeb = typeof window !== 'undefined' && 'ontouchstart' in window\nexport const isTouchDevice = !isWeb || supportsTouchWeb\nexport const isWebIOS =\n isWeb &&\n typeof navigator !== 'undefined' &&\n (/iPad|iPhone|iPod/.test(navigator.platform) ||\n (navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1)) &&\n !window['MSStream']\n"],
5
- "mappings": "AAAA;AACA;AAEO,MAAM,QAAQ,QAAQ,IAAI,mBAAmB,QAAQ,OAAO,UAAU,OAAO;AAC7E,MAAM,QAAQ,SAAS,OAAO,WAAW;AACzC,MAAM,4BAA4B,QAAQ,YAAY;AACtD,MAAM,WAAW,OAAO,cAAc,eAAe,SAAS,KAAK,UAAU,aAAa;AAC1F,MAAM,mBAAmB,OAAO,WAAW,eAAe,kBAAkB;AAC5E,MAAM,gBAAgB,CAAC,SAAS;AAChC,MAAM,WACX,SACA,OAAO,cAAc,eACpB,oBAAmB,KAAK,UAAU,aAChC,UAAU,aAAa,cAAc,UAAU,iBAAiB,MACnE,CAAC,OAAO;",
5
+ "mappings": "AAAA;AAAA;AACA;AAEO,MAAM,QAAQ,QAAQ,IAAI,mBAAmB,QAAQ,OAAO,uCAAU,QAAO;AAC7E,MAAM,QAAQ,SAAS,OAAO,WAAW;AACzC,MAAM,4BAA4B,QAAQ,YAAY;AACtD,MAAM,WAAW,OAAO,cAAc,eAAe,SAAS,KAAK,UAAU,aAAa;AAC1F,MAAM,mBAAmB,OAAO,WAAW,eAAe,kBAAkB;AAC5E,MAAM,gBAAgB,CAAC,SAAS;AAChC,MAAM,WACX,SACA,OAAO,cAAc,eACpB,oBAAmB,KAAK,UAAU,aAChC,UAAU,aAAa,cAAc,UAAU,iBAAiB,MACnE,CAAC,OAAO;",
6
6
  "names": []
7
7
  }
@@ -58,13 +58,14 @@ function createComponent(configIn) {
58
58
  staticConfig = parseStaticConfig(configIn);
59
59
  }
60
60
  const { Component, validStyles, isText, isZStack } = staticConfig;
61
- const validStyleProps = validStyles ?? stylePropsView;
61
+ const validStyleProps = validStyles != null ? validStyles : stylePropsView;
62
62
  let defaultProps = null;
63
63
  let tamaguiConfig;
64
64
  let defaultsStyle;
65
65
  let defaultsClassName = "";
66
66
  let initialTheme;
67
67
  const component = forwardRef((props, forwardedRef) => {
68
+ var _a;
68
69
  const forceUpdate = useForceUpdate();
69
70
  const features = useFeatures(props, { forceUpdate });
70
71
  const theme = useTheme();
@@ -233,7 +234,7 @@ function createComponent(configIn) {
233
234
  ...!isWeb && {
234
235
  onPressOut: (e) => {
235
236
  unPress();
236
- onPressOut?.(e);
237
+ onPressOut == null ? void 0 : onPressOut(e);
237
238
  }
238
239
  },
239
240
  ...isWeb && !isTouchDevice && {
@@ -248,8 +249,8 @@ function createComponent(configIn) {
248
249
  if (Object.keys(next).length) {
249
250
  set(next);
250
251
  }
251
- onHoverIn?.(e);
252
- onMouseEnter?.(e);
252
+ onHoverIn == null ? void 0 : onHoverIn(e);
253
+ onMouseEnter == null ? void 0 : onMouseEnter(e);
253
254
  } : void 0,
254
255
  onMouseLeave: attachHover || attachPress ? (e) => {
255
256
  let next = {};
@@ -264,8 +265,8 @@ function createComponent(configIn) {
264
265
  if (Object.keys(next).length) {
265
266
  set(next);
266
267
  }
267
- onHoverOut?.(e);
268
- onMouseLeave?.(e);
268
+ onHoverOut == null ? void 0 : onHoverOut(e);
269
+ onMouseLeave == null ? void 0 : onMouseLeave(e);
269
270
  } : void 0
270
271
  },
271
272
  onMouseDown: attachPress ? (e) => {
@@ -273,14 +274,14 @@ function createComponent(configIn) {
273
274
  press: true,
274
275
  pressIn: true
275
276
  });
276
- onPressIn?.(e);
277
- onMouseDown?.(e);
277
+ onPressIn == null ? void 0 : onPressIn(e);
278
+ onMouseDown == null ? void 0 : onMouseDown(e);
278
279
  } : onPressIn,
279
280
  onClick: attachPress ? (e) => {
280
- onPress?.(e);
281
- onClick?.(e);
281
+ onPress == null ? void 0 : onPress(e);
282
+ onClick == null ? void 0 : onClick(e);
282
283
  unPress();
283
- onPressOut?.(e);
284
+ onPressOut == null ? void 0 : onPressOut(e);
284
285
  } : onPressOut
285
286
  } : null;
286
287
  if (events) {
@@ -300,7 +301,7 @@ function createComponent(configIn) {
300
301
  const childEls = spacedChildren({
301
302
  children,
302
303
  space,
303
- flexDirection: props.flexDirection || defaultProps?.flexDirection,
304
+ flexDirection: props.flexDirection || (defaultProps == null ? void 0 : defaultProps.flexDirection),
304
305
  isZStack
305
306
  });
306
307
  let content;
@@ -322,7 +323,7 @@ function createComponent(configIn) {
322
323
  viewProps["debug"] = true;
323
324
  console.log("\u{1F95A} props in:", props);
324
325
  console.log("\u{1F95A} props out:", viewProps);
325
- console.log(props.onClick?.toString());
326
+ console.log((_a = props.onClick) == null ? void 0 : _a.toString());
326
327
  console.log("\u{1F95A} etc:", { shouldAttach, ViewComponent, viewProps, styles, pseudos, content, childEls });
327
328
  if (isWeb) {
328
329
  console.log("\u{1F95A} component info", { staticConfig, tamaguiConfig });
@@ -332,6 +333,7 @@ function createComponent(configIn) {
332
333
  return /* @__PURE__ */ React.createElement(React.Fragment, null, features, content);
333
334
  });
334
335
  onConfiguredOnce((conf) => {
336
+ var _a;
335
337
  tamaguiConfig = conf;
336
338
  initialTheme = conf.themes[conf.defaultTheme || Object.keys(conf.themes)[0]];
337
339
  const next = getSplitStyles(staticConfig.defaultProps, staticConfig, initialTheme, true);
@@ -351,7 +353,7 @@ function createComponent(configIn) {
351
353
  ...component.defaultProps
352
354
  };
353
355
  if (process.env.NODE_ENV === "development") {
354
- if (staticConfig.defaultProps?.debug) {
356
+ if ((_a = staticConfig.defaultProps) == null ? void 0 : _a.debug) {
355
357
  console.log("tamagui debug component:", next, defaultsClassName, component.defaultProps);
356
358
  }
357
359
  }
@@ -367,7 +369,7 @@ function createComponent(configIn) {
367
369
  neverFlatten: true,
368
370
  defaultProps: {
369
371
  ...Component2.defaultProps,
370
- ...conf?.defaultProps
372
+ ...conf == null ? void 0 : conf.defaultProps
371
373
  }
372
374
  });
373
375
  return Component2;
@@ -384,10 +386,11 @@ const Spacer = createComponent({
384
386
  variants: {
385
387
  size: {
386
388
  "...size": (size, { tokens }) => {
389
+ var _a, _b;
387
390
  size = size == true ? "$true" : size;
388
391
  return {
389
- width: tokens.size[size] ?? size,
390
- height: tokens.size[size] ?? size
392
+ width: (_a = tokens.size[size]) != null ? _a : size,
393
+ height: (_b = tokens.size[size]) != null ? _b : size
391
394
  };
392
395
  }
393
396
  },
@@ -407,6 +410,7 @@ function spacedChildren({
407
410
  space,
408
411
  flexDirection
409
412
  }) {
413
+ var _a, _b;
410
414
  if (!space && !isZStack) {
411
415
  return children;
412
416
  }
@@ -420,11 +424,11 @@ function spacedChildren({
420
424
  if (child === null || child === void 0) {
421
425
  continue;
422
426
  }
423
- const key = `${child?.["key"] ?? index}`;
427
+ const key = `${(_a = child == null ? void 0 : child["key"]) != null ? _a : index}`;
424
428
  next.push(/* @__PURE__ */ React.createElement(Fragment, {
425
429
  key
426
430
  }, isZStack ? /* @__PURE__ */ React.createElement(Absolute, null, child) : child));
427
- if (child?.["type"]?.["isVisuallyHidden"]) {
431
+ if ((_b = child == null ? void 0 : child["type"]) == null ? void 0 : _b["isVisuallyHidden"]) {
428
432
  continue;
429
433
  }
430
434
  if (index !== len - 1) {
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../src/createComponent.tsx"],
4
4
  "sourcesContent": ["import { concatClassName, stylePropsView } from '@tamagui/helpers'\nimport { useForceUpdate } from '@tamagui/use-force-update'\nimport React, {\n Children,\n Fragment,\n createElement,\n forwardRef,\n useCallback,\n useContext,\n useEffect,\n useRef,\n useState,\n} from 'react'\nimport { StyleSheet, Text, View, ViewStyle } from 'react-native'\n\nimport { stackDefaultStyles } from './constants/constants'\nimport { isTouchDevice, isWeb } from './constants/platform'\nimport { rnw } from './constants/rnw'\nimport { onConfiguredOnce } from './createTamagui'\nimport { addStylesUsingClassname, useStylesAsClassname } from './helpers/addStylesUsingClassname'\nimport { extendStaticConfig, parseStaticConfig } from './helpers/extendStaticConfig'\nimport { getSplitStyles } from './helpers/getSplitStyles'\nimport { useFeatures } from './hooks/useFeatures'\nimport { usePressable } from './hooks/usePressable'\nimport { useTheme } from './hooks/useTheme'\nimport {\n SpaceTokens,\n StaticComponent,\n StaticConfig,\n StaticConfigParsed,\n TamaguiInternalConfig,\n} from './types'\nimport { TextAncestorContext } from './views/TextAncestorContext'\n\nexport const mouseUps = new Set<Function>()\n\nif (typeof document !== 'undefined') {\n document.addEventListener('mouseup', () => {\n mouseUps.forEach((x) => x())\n mouseUps.clear()\n })\n}\n\ntype DefaultProps = {}\n\nconst defaultComponentState = {\n hover: false,\n press: false,\n pressIn: false,\n}\n\ntype ComponentState = typeof defaultComponentState\n\nfunction createShallowUpdate(setter: React.Dispatch<React.SetStateAction<ComponentState>>) {\n return (next: Partial<ComponentState>) => {\n setter((prev) => {\n for (const key in next) {\n if (prev[key] !== next[key]) {\n return { ...prev, ...next }\n }\n }\n return prev\n })\n }\n}\n\nexport function createComponent<A extends Object = DefaultProps>(\n configIn: Partial<StaticConfig> | StaticConfigParsed\n) {\n let staticConfig: StaticConfigParsed\n if ('parsed' in configIn) {\n staticConfig = configIn\n } else {\n staticConfig = parseStaticConfig(configIn)\n }\n\n const { Component, validStyles, isText, isZStack } = staticConfig\n const validStyleProps = validStyles ?? stylePropsView\n\n // split out default styles vs props so we can assign it to component.defaultProps\n let defaultProps = null as any\n let tamaguiConfig: TamaguiInternalConfig\n\n // web uses className, native uses style\n let defaultsStyle: any\n let defaultsClassName = ''\n let initialTheme: any\n\n // see onConfiguredOnce below which attaches a name then to this component\n\n const component = forwardRef<View, A>((props: any, forwardedRef) => {\n const forceUpdate = useForceUpdate()\n const features = useFeatures(props, { forceUpdate })\n const theme = useTheme()\n const [state, set_] = useState<ComponentState>(defaultComponentState)\n const set = createShallowUpdate(set_)\n\n // from react-native-web\n if (process.env.NODE_ENV === 'development' && !isText && isWeb) {\n Children.toArray(props.children).forEach((item) => {\n if (typeof item === 'string') {\n console.error(`Unexpected text node: ${item}. A text node cannot be a child of a <View>.`)\n }\n })\n }\n\n const hasTextAncestor = isWeb ? useContext(TextAncestorContext) : false\n const hostRef = useRef(null)\n\n const {\n viewProps: viewPropsIn,\n pseudos,\n style,\n classNames,\n } = getSplitStyles(props, staticConfig, theme)\n\n const {\n tag,\n hitSlop,\n children,\n pointerEvents,\n onPress,\n onPressIn,\n onPressOut,\n onHoverIn,\n onHoverOut,\n space,\n disabled,\n onMouseEnter,\n onMouseLeave,\n hrefAttrs,\n onMoveShouldSetResponder,\n onMoveShouldSetResponderCapture,\n onResponderEnd,\n onResponderGrant,\n onResponderMove,\n onResponderReject,\n onResponderRelease,\n onResponderStart,\n onResponderTerminate,\n onResponderTerminationRequest,\n onScrollShouldSetResponder,\n onScrollShouldSetResponderCapture,\n onSelectionChangeShouldSetResponder,\n onSelectionChangeShouldSetResponderCapture,\n onStartShouldSetResponder,\n onStartShouldSetResponderCapture,\n onMouseDown,\n onClick,\n\n accessible,\n accessibilityRole,\n\n // TODO feature load layout hook\n onLayout,\n ...viewProps\n } = viewPropsIn\n\n if (!isWeb) {\n if (accessible) viewProps.accessible = accessible\n if (accessibilityRole) viewProps.accessibilityRole = accessibilityRole\n }\n\n if (isWeb) {\n // from react-native-web\n rnw.useResponderEvents(hostRef, {\n onMoveShouldSetResponder,\n onMoveShouldSetResponderCapture,\n onResponderEnd,\n onResponderGrant,\n onResponderMove,\n onResponderReject,\n onResponderRelease,\n onResponderStart,\n onResponderTerminate,\n onResponderTerminationRequest,\n onScrollShouldSetResponder,\n onScrollShouldSetResponderCapture,\n onSelectionChangeShouldSetResponder,\n onSelectionChangeShouldSetResponderCapture,\n onStartShouldSetResponder,\n onStartShouldSetResponderCapture,\n })\n }\n\n // hasEverHadEvents prevents repareting if you remove onPress or similar...\n const internal = useRef<{ isMounted: boolean; hasEverHadEvents?: boolean }>()\n if (!internal.current) {\n internal.current = {\n isMounted: true,\n }\n }\n\n useEffect(() => {\n internal.current!.isMounted = true\n return () => {\n mouseUps.delete(unPress)\n internal.current!.isMounted = false\n }\n }, [])\n\n // element\n const element = isWeb\n ? !Component || typeof Component === 'string'\n ? // default to tag, fallback to component (when both strings)\n tag || Component\n : Component\n : Component\n const ReactView = !isWeb ? View : element || (hasTextAncestor ? 'span' : 'div')\n const ReactText = !isWeb ? Text : element || 'span'\n const ViewComponent = isText ? ReactText : ReactView\n\n // styles\n const isHovering = !isTouchDevice && !disabled && pseudos && state.hover\n const isPressing = !disabled && pseudos && state.press\n\n const styles = [\n // parity w react-native-web, only for text in text\n // TODO this should be able to be done w css to replicate after extraction:\n // (.text .text { display: inline-flex; }) (but if they set display we'd need stronger precendence)\n // isText && hasTextAncestor && isWeb ? { display: 'inline-flex' } : null,\n style,\n isHovering ? pseudos.hoverStyle || null : null,\n isPressing ? pseudos.pressStyle || null : null,\n ]\n\n if (isWeb) {\n const stylesClassNames = useStylesAsClassname(styles)\n const classList = isText\n ? [\n defaultsClassName,\n // hasTextAncestor === true && cssText.textHasAncestor,\n // TODO MOVE TO VARIANTS [number] [any]\n // numberOfLines != null && numberOfLines > 1 && cssText.textMultiLine,\n classNames,\n stylesClassNames,\n props.className,\n ]\n : [defaultsClassName, props.className, classNames, stylesClassNames]\n\n // @ts-ignore we are optimizing using arguments\n const className = concatClassName(...classList)\n if (process.env.NODE_ENV === 'development') {\n if (props['debug']) {\n // prettier-ignore\n console.log('\uD83E\uDD5A className', { style, styles, classList, stylesClassNames, className })\n }\n }\n viewProps.className = className\n } else {\n viewProps.style = styles\n }\n\n if (pointerEvents) {\n viewProps.pointerEvents = pointerEvents\n }\n\n if (isWeb) {\n // from react-native-web\n const platformMethodsRef = rnw.usePlatformMethods(viewProps)\n const setRef = rnw.useMergeRefs(hostRef, platformMethodsRef, forwardedRef)\n viewProps.ref = setRef\n if (props.href != null && hrefAttrs != null) {\n const { download, rel, target } = hrefAttrs\n if (download != null) {\n viewProps.download = download\n }\n if (rel != null) {\n viewProps.rel = rel\n }\n if (typeof target === 'string') {\n viewProps.target = target.charAt(0) !== '_' ? '_' + target : target\n }\n }\n } else {\n if (forwardedRef) {\n viewProps.ref = forwardedRef\n }\n }\n\n const attachPress = !!(\n (pseudos && pseudos.pressStyle) ||\n onPress ||\n onPressOut ||\n onPressIn ||\n onClick\n )\n const attachHover =\n isWeb &&\n !isTouchDevice &&\n !!((pseudos && pseudos.hoverStyle) || onHoverIn || onHoverOut || onMouseEnter || onMouseLeave)\n\n // check presence to prevent reparenting bugs, allows for onPress={x ? function : undefined} usage\n // while avoiding reparenting...\n // once proper reparenting is supported, we can remove this and use that...\n const shouldAttach =\n internal.current.hasEverHadEvents ||\n attachPress ||\n attachHover ||\n 'pressStyle' in props ||\n 'onPress' in props ||\n 'onPressIn' in props ||\n 'onPressOut' in props ||\n (isWeb &&\n ('hoverStyle' in props ||\n 'onClick' in props ||\n 'onHoverIn' in props ||\n 'onHoverOut' in props ||\n 'onMouseEnter' in props ||\n 'onMouseLeave' in props))\n\n // never remove events as we wrap in a div (for now, may be able to remove..)\n if (shouldAttach) {\n internal.current.hasEverHadEvents = true\n }\n\n const unPress = useCallback(() => {\n if (!internal.current!.isMounted) return\n set({\n press: false,\n pressIn: false,\n })\n }, [])\n\n const events = shouldAttach\n ? {\n ...(!isWeb && {\n // non web\n onPressOut: (e) => {\n unPress()\n onPressOut?.(e)\n },\n }),\n ...(isWeb &&\n !isTouchDevice && {\n onMouseEnter:\n attachHover || attachPress\n ? (e) => {\n let next: Partial<typeof state> = {}\n if (attachHover) {\n next.hover = true\n }\n if (state.pressIn) {\n next.press = true\n }\n if (Object.keys(next).length) {\n set(next)\n }\n onHoverIn?.(e)\n onMouseEnter?.(e)\n }\n : undefined,\n onMouseLeave:\n attachHover || attachPress\n ? (e) => {\n let next: Partial<typeof state> = {}\n mouseUps.add(unPress)\n if (attachHover) {\n next.hover = false\n }\n if (state.pressIn) {\n next.press = false\n next.pressIn = false\n }\n if (Object.keys(next).length) {\n set(next)\n }\n onHoverOut?.(e)\n onMouseLeave?.(e)\n }\n : undefined,\n }),\n onMouseDown: attachPress\n ? (e) => {\n set({\n press: true,\n pressIn: true,\n })\n onPressIn?.(e)\n onMouseDown?.(e)\n }\n : (onPressIn as any),\n onClick: attachPress\n ? (e) => {\n // this caused issue with next.js passing href\n // e.preventDefault()\n onPress?.(e)\n onClick?.(e)\n unPress()\n onPressOut?.(e)\n }\n : (onPressOut as any),\n }\n : null\n\n if (events) {\n if (typeof ViewComponent !== 'string') {\n // TODO once we do the above we can then rely entirely on pressStyle returned here isntead of above pressStyle logic\n const [pressProps] = usePressable({\n disabled,\n hitSlop,\n onPressIn: events.onMouseDown,\n onPressOut: events.onPressOut,\n onPress: events.onClick,\n })\n Object.assign(viewProps, pressProps)\n } else {\n Object.assign(viewProps, events)\n }\n }\n\n const childEls = spacedChildren({\n children,\n space,\n flexDirection: props.flexDirection || defaultProps?.flexDirection,\n isZStack: isZStack,\n })\n\n let content: any\n\n // replicate react-native-web's `createElement`\n if (isWeb && rnw) {\n const domProps = rnw.createDOMProps(viewProps)\n const className =\n domProps.className && domProps.className !== viewProps.className\n ? `${domProps.className} ${viewProps.className}`\n : viewProps.className\n Object.assign(viewProps, domProps)\n viewProps.className = className\n content = createElement(ViewComponent, viewProps, childEls)\n } else {\n content = createElement(ViewComponent, viewProps, childEls)\n }\n\n const shouldWrapTextAncestor = isWeb && isText && !hasTextAncestor\n if (shouldWrapTextAncestor) {\n // from react-native-web\n // @ts-ignore\n content = createElement(TextAncestorContext.Provider, { value: true }, content)\n }\n\n if (process.env.NODE_ENV === 'development') {\n if (props['debug']) {\n viewProps['debug'] = true\n console.log('\uD83E\uDD5A props in:', props)\n console.log('\uD83E\uDD5A props out:', viewProps)\n console.log(props.onClick?.toString())\n // prettier-ignore\n console.log('\uD83E\uDD5A etc:', { shouldAttach, ViewComponent, viewProps, styles, pseudos, content, childEls })\n // only on browser because node expands it huge\n if (isWeb) {\n console.log('\uD83E\uDD5A component info', { staticConfig, tamaguiConfig })\n }\n }\n }\n\n return (\n <>\n {features}\n {content}\n </>\n )\n })\n\n // Once configuration is run and all components are registered\n // get default props + className and analyze styles\n onConfiguredOnce((conf) => {\n tamaguiConfig = conf\n initialTheme = conf.themes[conf.defaultTheme || Object.keys(conf.themes)[0]]\n const next = getSplitStyles(staticConfig.defaultProps, staticConfig, initialTheme, true)\n if (isWeb) {\n if (next.classNames) {\n defaultsClassName += next.classNames + ' '\n }\n defaultsClassName += addStylesUsingClassname([next.style, next.pseudos])\n } else {\n if (!hasWarnedOnce) {\n hasWarnedOnce = true\n console.log('\u26A0\uFE0F TODO account for default styles for media queries')\n }\n }\n // @ts-ignore\n component.defaultProps = {\n ...next.viewProps,\n ...component.defaultProps,\n }\n if (process.env.NODE_ENV === 'development') {\n if (staticConfig.defaultProps?.debug) {\n console.log('tamagui debug component:', next, defaultsClassName, component.defaultProps)\n }\n }\n })\n\n component['staticConfig'] = {\n validStyles: validStyleProps,\n ...staticConfig,\n }\n\n const res = component as any as StaticComponent<A, void>\n\n // add extractable HoC\n res['extractable'] = (Component: any, conf?: StaticConfig) => {\n Component['staticConfig'] = extendStaticConfig(res, {\n ...conf,\n neverFlatten: true,\n defaultProps: {\n ...Component.defaultProps,\n ...conf?.defaultProps,\n },\n })\n return Component\n }\n\n return res\n}\n\nlet hasWarnedOnce = false\n\n// dont used styled() here to avoid circular deps\n// keep inline to avoid circular deps\n\nexport const Spacer = createComponent<{ size?: number | SpaceTokens; flex?: boolean | number }>({\n defaultProps: {\n ...stackDefaultStyles,\n size: true,\n },\n variants: {\n size: {\n '...size': (size, { tokens }) => {\n size = size == true ? '$true' : size\n return {\n width: tokens.size[size] ?? size,\n height: tokens.size[size] ?? size,\n }\n },\n },\n\n direction: {\n horizontal: {\n height: 0,\n },\n vertical: {\n width: 0,\n },\n },\n },\n})\n\nexport function spacedChildren({\n isZStack,\n children,\n space,\n flexDirection,\n}: {\n isZStack?: boolean\n children: any\n space?: any\n flexDirection?: ViewStyle['flexDirection']\n}) {\n if (!space && !isZStack) {\n return children\n }\n const childrenList = Children.toArray(children)\n const len = childrenList.length\n if (len === 1) {\n return children\n }\n const next: any[] = []\n for (const [index, child] of childrenList.entries()) {\n if (child === null || child === undefined) {\n continue\n }\n\n const key = `${child?.['key'] ?? index}`\n\n next.push(<Fragment key={key}>{isZStack ? <Absolute>{child}</Absolute> : child}</Fragment>)\n\n // allows for custom visually hidden components that dont insert spacing\n if (child?.['type']?.['isVisuallyHidden']) {\n continue\n }\n\n if (index !== len - 1) {\n if (space) {\n next.push(\n <Spacer\n key={`${key}_spacer`}\n // @ts-ignore TODO\n direction={\n flexDirection === 'row' || flexDirection === 'row-reverse' ? 'horizontal' : 'vertical'\n }\n size={space}\n />\n )\n }\n }\n }\n return next\n}\n\n// for now not so \"tamagui-y\"\nconst Absolute = ({ children }) => <View style={sheet.fullscreen}>{children}</View>\nconst sheet = StyleSheet.create({\n fullscreen: {\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n },\n})\n"],
5
- "mappings": "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",
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -31,6 +31,7 @@ function createTamagui(config) {
31
31
  defaultActive: config.mediaQueryDefaultActive
32
32
  });
33
33
  const themeConfig = (() => {
34
+ var _a;
34
35
  let cssRules = [];
35
36
  const varsByValue = new Map();
36
37
  if (isWeb) {
@@ -68,7 +69,7 @@ function createTamagui(config) {
68
69
  for (const themeKey in theme) {
69
70
  if (isWeb) {
70
71
  const val = theme[themeKey];
71
- const varName = val instanceof Variable ? val.name : varsByValue[val]?.name;
72
+ const varName = val instanceof Variable ? val.name : (_a = varsByValue[val]) == null ? void 0 : _a.name;
72
73
  vars += `--${themeKey}:${varName ? `var(--${varName});` : `${val}`};`;
73
74
  }
74
75
  ensureThemeVariable(theme, themeKey);
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../src/createTamagui.ts"],
4
4
  "sourcesContent": ["import { getStyleRules } from '@tamagui/helpers'\n\nimport { isWeb } from './constants/platform'\nimport { Variable, createVariable } from './createVariable'\nimport { createTamaguiProvider } from './helpers/createTamaguiProvider'\nimport { configureMedia } from './hooks/useMedia'\nimport {\n CreateTamaguiConfig,\n GenericTamaguiConfig,\n MediaQueryKey,\n TamaguiInternalConfig,\n TamaguiProviderProps,\n} from './types'\n\nexport type CreateTamaguiProps = TamaguiProviderProps &\n // we omit and re-declare it because we need to allow instantation types to be flexible\n // user then re-defines the types after createTamagui returns the typed object they want\n Omit<GenericTamaguiConfig, 'themes'> & {\n themes: {\n [key: string]: {\n [key: string]: string | number | Variable\n }\n }\n // for ssr/native, will default to active\n mediaQueryDefaultActive?: MediaQueryKey[]\n }\n\nlet conf: TamaguiInternalConfig | null\n\nexport const getHasConfigured = () => !!conf\n\nexport const getTamagui = () => conf!\nexport const getTokens = () => conf!.tokensParsed\nexport const getThemes = () => conf!.themes\n\ntype ConfigListener = (conf: TamaguiInternalConfig) => void\nconst configListeners = new Set<ConfigListener>()\nexport const onConfiguredOnce = (cb: ConfigListener) => {\n if (conf) {\n cb(conf)\n } else {\n configListeners.add(cb)\n }\n}\n\nconst PREFIX = `theme--`\n\nexport function createTamagui<Conf extends CreateTamaguiProps>(\n config: Conf\n): Conf extends CreateTamaguiConfig<infer A, infer B, infer C, infer D>\n ? TamaguiInternalConfig<A, B, C, D>\n : unknown {\n // config is re-run by the @tamagui/static, dont double validate\n // but cheap to check and not much downside just returning here if parsed\n if (config['parsed']) {\n return config as any\n }\n\n // test env loads a few times as it runs diff tests\n if (conf) {\n console.warn('Called createTamagui twice! Should never do so')\n // throw new Error(`#000 createTamagui called twice`)\n }\n\n configureMedia({\n queries: config.media as any,\n defaultActive: config.mediaQueryDefaultActive,\n })\n\n const themeConfig = (() => {\n let cssRules: string[] = []\n const varsByValue = new Map<string, Variable>()\n\n if (isWeb) {\n // tokens\n let tokenRule = `:root {`\n const addVar = (v: Variable) => {\n varsByValue[v.val] = v\n const rule = `--${v.name}:${typeof v.val === 'number' ? `${v.val}px` : v.val};`\n tokenRule += rule\n }\n\n for (const key in config.tokens) {\n for (const skey in config.tokens[key]) {\n const val = config.tokens[key][skey]\n if (key === 'font') {\n for (const fkey in val) {\n if (fkey === 'family') {\n addVar(val[fkey])\n } else {\n for (const fskey in val[fkey]) {\n addVar(val[fkey][fskey])\n }\n }\n }\n } else {\n addVar(val)\n }\n }\n }\n cssRules.push(`${tokenRule}\\n}`)\n }\n\n // themes\n for (const themeName in config.themes) {\n // to allow using the same theme with diff names, be sure we don't mutate!\n const theme = { ...config.themes[themeName] }\n config.themes[themeName] = theme\n\n let vars = ''\n\n for (const themeKey in theme) {\n if (isWeb) {\n const val = theme[themeKey]\n // TODO sanity check is necessary\n const varName = val instanceof Variable ? val.name : varsByValue[val]?.name\n vars += `--${themeKey}:${varName ? `var(--${varName});` : `${val}`};`\n }\n\n // make sure properly names theme variables\n ensureThemeVariable(theme, themeKey)\n }\n\n if (isWeb) {\n const [themeClassName, parentName] = themeName.includes('-')\n ? themeName.split('-')\n : [themeName, '']\n // tiny hack for now assuming light/dark are typical parentName\n const oppositeName = parentName === 'dark' ? 'light' : 'dark'\n const cssParentSel = parentName ? `.${PREFIX}${parentName}` : ''\n const cssChildSel = `.${PREFIX}${themeClassName}`\n const cssSel = `${cssParentSel} ${cssChildSel}`\n // we need to force specificity\n const cssRule = `${cssSel}, .${PREFIX}${oppositeName} ${cssSel} {\\n${vars}\\n}`\n cssRules.push(cssRule)\n }\n }\n\n varsByValue.clear()\n Object.freeze(cssRules)\n\n return {\n cssRules,\n css: cssRules.join('\\n'),\n }\n })()\n\n // faster lookups token keys become $keys to match input\n const tokensParsed: any = parseTokens(config.tokens)\n\n // we could do this above in theme loop\n // all themes should match key and we just need variable name\n // TODO once w react native we'd want to have a reverse lookup back to value\n const themeParsed: any = {}\n const firstKey = Object.keys(config.themes)[0]\n for (const key in config.themes[firstKey]) {\n // themeParsed[`$${key}`] = config.themes[firstKey][key]\n const val = config.themes[firstKey][key].val\n themeParsed[`$${key}`] = new Variable({ val, name: key })\n }\n\n const next: TamaguiInternalConfig = {\n // @ts-ignore\n shorthands: {},\n ...config,\n Provider: createTamaguiProvider({\n defaultTheme: 'light',\n ...config,\n }),\n themeConfig,\n themeParsed,\n tokensParsed,\n parsed: true,\n getCSS() {\n return `${themeConfig.css}\\n${[...getStyleRules()].join('\\n')}`\n },\n }\n conf = next\n\n if (configListeners.size) {\n configListeners.forEach((cb) => cb(next))\n configListeners.clear()\n }\n\n // @ts-expect-error\n return next\n}\n\nexport function getThemeParentClassName(themeName?: string | null) {\n return `theme-parent ${themeName ? `${PREFIX}${themeName}` : ''}`\n}\n\nconst parseTokens = (tokens: any) => {\n const res: any = {}\n for (const key in tokens) {\n res[key] = {}\n if (key === 'font') {\n for (const family in tokens.font) {\n const obj = {}\n res.font[`$${family}`] = obj\n for (const attrKey in tokens.font[family]) {\n const attr = tokens.font[family][attrKey]\n if (attrKey === 'family') {\n obj[attrKey] = attr\n continue\n }\n obj[attrKey] = Object.keys(attr).reduce((acc, cur) => {\n acc[`$${cur}`] = attr[cur]\n return acc\n }, {})\n }\n }\n continue\n }\n for (const skey in tokens[key]) {\n res[key][`$${skey}`] = tokens[key][skey]\n }\n }\n\n return res\n}\n\n// mutates, freeze after\n// shared by createTamagui so extracted here\nfunction ensureThemeVariable(theme: any, key: string) {\n const val = theme[key]\n if (!(val instanceof Variable)) {\n theme[key] = createVariable({\n name: key,\n val,\n })\n } else {\n if (val.name !== key) {\n // rename to theme name\n theme[key] = createVariable({\n name: key,\n val: val.val,\n })\n }\n }\n}\n"],
5
- "mappings": ";;AAAA;AAEA;AACA;AACA;AACA;AAsBA,IAAI;AAEG,MAAM,mBAAmB,6BAAM,CAAC,CAAC,MAAR;AAEzB,MAAM,aAAa,6BAAM,MAAN;AACnB,MAAM,YAAY,6BAAM,KAAM,cAAZ;AAClB,MAAM,YAAY,6BAAM,KAAM,QAAZ;AAGzB,MAAM,kBAAkB,IAAI;AACrB,MAAM,mBAAmB,wBAAC,OAAuB;AACtD,MAAI,MAAM;AACR,OAAG;AAAA,SACE;AACL,oBAAgB,IAAI;AAAA;AAAA,GAJQ;AAQhC,MAAM,SAAS;AAER,uBACL,QAGU;AAGV,MAAI,OAAO,WAAW;AACpB,WAAO;AAAA;AAIT,MAAI,MAAM;AACR,YAAQ,KAAK;AAAA;AAIf,iBAAe;AAAA,IACb,SAAS,OAAO;AAAA,IAChB,eAAe,OAAO;AAAA;AAGxB,QAAM,cAAe,OAAM;AACzB,QAAI,WAAqB;AACzB,UAAM,cAAc,IAAI;AAExB,QAAI,OAAO;AAET,UAAI,YAAY;AAChB,YAAM,SAAS,wBAAC,MAAgB;AAC9B,oBAAY,EAAE,OAAO;AACrB,cAAM,OAAO,KAAK,EAAE,QAAQ,OAAO,EAAE,QAAQ,WAAW,GAAG,EAAE,UAAU,EAAE;AACzE,qBAAa;AAAA,SAHA;AAMf,iBAAW,OAAO,OAAO,QAAQ;AAC/B,mBAAW,QAAQ,OAAO,OAAO,MAAM;AACrC,gBAAM,MAAM,OAAO,OAAO,KAAK;AAC/B,cAAI,QAAQ,QAAQ;AAClB,uBAAW,QAAQ,KAAK;AACtB,kBAAI,SAAS,UAAU;AACrB,uBAAO,IAAI;AAAA,qBACN;AACL,2BAAW,SAAS,IAAI,OAAO;AAC7B,yBAAO,IAAI,MAAM;AAAA;AAAA;AAAA;AAAA,iBAIlB;AACL,mBAAO;AAAA;AAAA;AAAA;AAIb,eAAS,KAAK,GAAG;AAAA;AAAA;AAInB,eAAW,aAAa,OAAO,QAAQ;AAErC,YAAM,QAAQ,KAAK,OAAO,OAAO;AACjC,aAAO,OAAO,aAAa;AAE3B,UAAI,OAAO;AAEX,iBAAW,YAAY,OAAO;AAC5B,YAAI,OAAO;AACT,gBAAM,MAAM,MAAM;AAElB,gBAAM,UAAU,eAAe,WAAW,IAAI,OAAO,YAAY,MAAM;AACvE,kBAAQ,KAAK,YAAY,UAAU,SAAS,cAAc,GAAG;AAAA;AAI/D,4BAAoB,OAAO;AAAA;AAG7B,UAAI,OAAO;AACT,cAAM,CAAC,gBAAgB,cAAc,UAAU,SAAS,OACpD,UAAU,MAAM,OAChB,CAAC,WAAW;AAEhB,cAAM,eAAe,eAAe,SAAS,UAAU;AACvD,cAAM,eAAe,aAAa,IAAI,SAAS,eAAe;AAC9D,cAAM,cAAc,IAAI,SAAS;AACjC,cAAM,SAAS,GAAG,gBAAgB;AAElC,cAAM,UAAU,GAAG,YAAY,SAAS,gBAAgB;AAAA,EAAa;AAAA;AACrE,iBAAS,KAAK;AAAA;AAAA;AAIlB,gBAAY;AACZ,WAAO,OAAO;AAEd,WAAO;AAAA,MACL;AAAA,MACA,KAAK,SAAS,KAAK;AAAA;AAAA;AAKvB,QAAM,eAAoB,YAAY,OAAO;AAK7C,QAAM,cAAmB;AACzB,QAAM,WAAW,OAAO,KAAK,OAAO,QAAQ;AAC5C,aAAW,OAAO,OAAO,OAAO,WAAW;AAEzC,UAAM,MAAM,OAAO,OAAO,UAAU,KAAK;AACzC,gBAAY,IAAI,SAAS,IAAI,SAAS,EAAE,KAAK,MAAM;AAAA;AAGrD,QAAM,OAA8B;AAAA,IAElC,YAAY;AAAA,OACT;AAAA,IACH,UAAU,sBAAsB;AAAA,MAC9B,cAAc;AAAA,SACX;AAAA;AAAA,IAEL;AAAA,IACA;AAAA,IACA;AAAA,IACA,QAAQ;AAAA,IACR,SAAS;AACP,aAAO,GAAG,YAAY;AAAA,EAAQ,CAAC,GAAG,iBAAiB,KAAK;AAAA;AAAA;AAG5D,SAAO;AAEP,MAAI,gBAAgB,MAAM;AACxB,oBAAgB,QAAQ,CAAC,OAAO,GAAG;AACnC,oBAAgB;AAAA;AAIlB,SAAO;AAAA;AA1IO;AA6IT,iCAAiC,WAA2B;AACjE,SAAO,gBAAgB,YAAY,GAAG,SAAS,cAAc;AAAA;AAD/C;AAIhB,MAAM,cAAc,wBAAC,WAAgB;AACnC,QAAM,MAAW;AACjB,aAAW,OAAO,QAAQ;AACxB,QAAI,OAAO;AACX,QAAI,QAAQ,QAAQ;AAClB,iBAAW,UAAU,OAAO,MAAM;AAChC,cAAM,MAAM;AACZ,YAAI,KAAK,IAAI,YAAY;AACzB,mBAAW,WAAW,OAAO,KAAK,SAAS;AACzC,gBAAM,OAAO,OAAO,KAAK,QAAQ;AACjC,cAAI,YAAY,UAAU;AACxB,gBAAI,WAAW;AACf;AAAA;AAEF,cAAI,WAAW,OAAO,KAAK,MAAM,OAAO,CAAC,KAAK,QAAQ;AACpD,gBAAI,IAAI,SAAS,KAAK;AACtB,mBAAO;AAAA,aACN;AAAA;AAAA;AAGP;AAAA;AAEF,eAAW,QAAQ,OAAO,MAAM;AAC9B,UAAI,KAAK,IAAI,UAAU,OAAO,KAAK;AAAA;AAAA;AAIvC,SAAO;AAAA,GA3BW;AAgCpB,6BAA6B,OAAY,KAAa;AACpD,QAAM,MAAM,MAAM;AAClB,MAAI,CAAE,gBAAe,WAAW;AAC9B,UAAM,OAAO,eAAe;AAAA,MAC1B,MAAM;AAAA,MACN;AAAA;AAAA,SAEG;AACL,QAAI,IAAI,SAAS,KAAK;AAEpB,YAAM,OAAO,eAAe;AAAA,QAC1B,MAAM;AAAA,QACN,KAAK,IAAI;AAAA;AAAA;AAAA;AAAA;AAZR;",
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -9,6 +9,7 @@ const createPropMapper = /* @__PURE__ */ __name((c) => {
9
9
  let variantsParsed;
10
10
  const defaultProps = c.defaultProps || {};
11
11
  return (key, value, theme, props) => {
12
+ var _a, _b;
12
13
  const conf = getTamagui();
13
14
  if (!conf) {
14
15
  console.trace("no conf! err");
@@ -18,9 +19,9 @@ const createPropMapper = /* @__PURE__ */ __name((c) => {
18
19
  variantsParsed = parseVariants(variants, conf);
19
20
  }
20
21
  let fontFamily = props.fontFamily || defaultProps.fontFamily || "$body";
21
- const variant = variantsParsed?.[key];
22
+ const variant = variantsParsed == null ? void 0 : variantsParsed[key];
22
23
  if (variant && typeof value !== "undefined") {
23
- const val = value === true ? variant["$true"] || variant["true"] : variant[value] ?? variant["..."] ?? value;
24
+ const val = value === true ? variant["$true"] || variant["true"] : (_b = (_a = variant[value]) != null ? _a : variant["..."]) != null ? _b : value;
24
25
  const res = typeof val === "function" ? val(value, { tokens: conf.tokensParsed, theme, props }) : isObj(val) ? { ...val } : val;
25
26
  if (isObj(res)) {
26
27
  resolveTokens(res, conf, theme, fontFamily);
@@ -64,30 +65,31 @@ const resolveTokens = /* @__PURE__ */ __name((res, conf, theme, fontFamily) => {
64
65
  }
65
66
  }, "resolveTokens");
66
67
  const getToken = /* @__PURE__ */ __name((key, value, { tokensParsed, themeParsed }, theme, fontFamily = "$body") => {
68
+ var _a, _b, _c, _d, _e, _f, _g;
67
69
  if (themeParsed[value]) {
68
70
  if (isWeb && themeParsed[value].variable) {
69
71
  return themeParsed[value].variable;
70
72
  } else {
71
73
  if (value && value[0] === "$") {
72
- return theme[`${value.slice(1)}`]?.val || themeParsed[value]?.val;
74
+ return ((_a = theme[`${value.slice(1)}`]) == null ? void 0 : _a.val) || ((_b = themeParsed[value]) == null ? void 0 : _b.val);
73
75
  }
74
76
  }
75
77
  }
76
78
  let valOrVar;
77
79
  if (key === "fontFamily") {
78
- valOrVar = tokensParsed.font[value]?.family || value;
80
+ valOrVar = ((_c = tokensParsed.font[value]) == null ? void 0 : _c.family) || value;
79
81
  }
80
82
  if (key === "fontSize") {
81
- valOrVar = tokensParsed.font[fontFamily]?.size[value] || value;
83
+ valOrVar = ((_d = tokensParsed.font[fontFamily]) == null ? void 0 : _d.size[value]) || value;
82
84
  }
83
85
  if (key === "lineHeight") {
84
- valOrVar = tokensParsed.font[fontFamily]?.lineHeight[value] || value;
86
+ valOrVar = ((_e = tokensParsed.font[fontFamily]) == null ? void 0 : _e.lineHeight[value]) || value;
85
87
  }
86
88
  if (key === "letterSpacing") {
87
- valOrVar = tokensParsed.font[fontFamily]?.letterSpacing[value] || value;
89
+ valOrVar = ((_f = tokensParsed.font[fontFamily]) == null ? void 0 : _f.letterSpacing[value]) || value;
88
90
  }
89
91
  if (key === "fontWeight") {
90
- valOrVar = tokensParsed.font[fontFamily]?.weight[value] || value;
92
+ valOrVar = ((_g = tokensParsed.font[fontFamily]) == null ? void 0 : _g.weight[value]) || value;
91
93
  }
92
94
  if (typeof valOrVar !== "undefined") {
93
95
  if (valOrVar instanceof Variable) {
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../src/helpers/createPropMapper.ts"],
4
4
  "sourcesContent": ["import { isWeb } from '../constants/platform'\nimport { getTamagui } from '../createTamagui'\nimport { Variable } from '../createVariable'\nimport { StaticConfig, TamaguiInternalConfig } from '../types'\nimport { isObj } from './isObj'\n\nexport const createPropMapper = (c: StaticConfig) => {\n const variants = c.variants\n let variantsParsed\n const defaultProps = c.defaultProps || {}\n\n return (key: string, value: any, theme: any, props: any) => {\n const conf = getTamagui()\n if (!conf) {\n console.trace('no conf! err')\n return\n }\n if (variants && !variantsParsed) {\n variantsParsed = parseVariants(variants, conf)\n }\n\n // handled here because we need to resolve this off tokens, its the only one-off like this\n let fontFamily = props.fontFamily || defaultProps.fontFamily || '$body'\n\n // expand variants\n const variant = variantsParsed?.[key]\n if (variant && typeof value !== 'undefined') {\n const val =\n value === true\n ? variant['$true'] || variant['true']\n : variant[value] ?? variant['...'] ?? value\n\n const res =\n typeof val === 'function'\n ? val(value, { tokens: conf.tokensParsed, theme, props })\n : isObj(val)\n ? { ...val }\n : val\n\n if (isObj(res)) {\n resolveTokens(res, conf, theme, fontFamily)\n }\n\n return res\n }\n\n let shouldReturn = false\n\n // handle shorthands\n if (conf.shorthands[key]) {\n shouldReturn = true\n key = conf.shorthands[key]\n }\n\n if (value && value[0] === '$') {\n shouldReturn = true\n value = getToken(key, value, conf, theme, fontFamily)\n }\n\n if (value instanceof Variable) {\n shouldReturn = true\n value = value.variable\n }\n\n if (shouldReturn) {\n return {\n [key]: value,\n }\n }\n }\n}\n\nconst resolveTokens = (res: any, conf: TamaguiInternalConfig, theme: any, fontFamily: any) => {\n for (const rKey in res) {\n const fKey = conf.shorthands[rKey] || rKey\n const val = res[rKey]\n if (val instanceof Variable) {\n res[fKey] = val.variable\n } else if (typeof val === 'string') {\n const fVal = val[0] === '$' ? getToken(fKey, val, conf, theme, fontFamily) : val\n res[fKey] = fVal\n } else {\n if (isObj(val)) {\n // for things like shadowOffset which is a sub-object\n resolveTokens(val, conf, theme, fontFamily)\n }\n // nullish values cant be tokens so need no exrta parsing\n }\n }\n}\n\nconst getToken = (\n key: string,\n value: string,\n { tokensParsed, themeParsed }: TamaguiInternalConfig,\n theme: any,\n fontFamily: string | undefined = '$body'\n) => {\n if (themeParsed[value]) {\n if (isWeb && themeParsed[value].variable) {\n return themeParsed[value].variable\n } else {\n if (value && value[0] === '$') {\n return theme[`${value.slice(1)}`]?.val || themeParsed[value]?.val\n }\n }\n }\n let valOrVar: any\n if (key === 'fontFamily') {\n valOrVar = tokensParsed.font[value]?.family || value\n }\n if (key === 'fontSize') {\n valOrVar = tokensParsed.font[fontFamily]?.size[value] || value\n }\n if (key === 'lineHeight') {\n valOrVar = tokensParsed.font[fontFamily]?.lineHeight[value] || value\n }\n if (key === 'letterSpacing') {\n valOrVar = tokensParsed.font[fontFamily]?.letterSpacing[value] || value\n }\n if (key === 'fontWeight') {\n valOrVar = tokensParsed.font[fontFamily]?.weight[value] || value\n }\n if (typeof valOrVar !== 'undefined') {\n if (valOrVar instanceof Variable) {\n return valOrVar.variable\n } else {\n return valOrVar\n }\n }\n for (const cat in tokenCategories) {\n if (tokenCategories[cat][key]) {\n const res = tokensParsed[cat][value]\n if (res) {\n return res.variable\n } else {\n const themeVar = themeParsed[value]\n if (themeVar) {\n return themeVar.variable\n }\n }\n }\n }\n const spaceVar = tokensParsed.space[value]\n if (spaceVar) {\n return spaceVar.variable\n }\n return value\n}\n\n// just specificy the least costly, all else go to `space` (most keys - we can exclude)\nconst tokenCategories = {\n size: {\n width: true,\n height: true,\n minWidth: true,\n minHeight: true,\n maxWidth: true,\n maxHeight: true,\n },\n color: {\n color: true,\n backgroundColor: true,\n borderColor: true,\n borderBottomColor: true,\n borderTopColor: true,\n borderLeftColor: true,\n borderRightColor: true,\n },\n}\n\n// turns variant spreads into individual lookups\nfunction parseVariants(variants: any, conf: TamaguiInternalConfig) {\n return Object.keys(variants).reduce((acc, key) => {\n acc[key] = Object.keys(variants[key]).reduce((vacc, vkey) => {\n const variantVal = variants[key][vkey]\n if (vkey.startsWith('...')) {\n // set the default one at '...' for easy fallback on non-exact-variant-match\n vacc['...'] = variantVal\n const tokenKey = vkey.slice(3)\n const tokens = conf.tokens[tokenKey]\n for (const tkey in tokens) {\n vacc[`$${tkey}`] = variantVal\n }\n } else {\n vacc[vkey] = variantVal\n }\n return vacc\n }, {})\n return acc\n }, {})\n}\n"],
5
- "mappings": "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",
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -2,6 +2,7 @@ var __defProp = Object.defineProperty;
2
2
  var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
3
  import { createPropMapper } from "./createPropMapper";
4
4
  function extendStaticConfig(Component, config = {}) {
5
+ var _a, _b;
5
6
  const parent = Component || {};
6
7
  if (!parent.staticConfig) {
7
8
  parent.staticConfig = {
@@ -28,8 +29,8 @@ function extendStaticConfig(Component, config = {}) {
28
29
  isZStack: config.isZStack || parent.staticConfig.isZStack,
29
30
  variants,
30
31
  isText: config.isText || parent.staticConfig.isText || false,
31
- neverFlatten: config.neverFlatten ?? parent.staticConfig.neverFlatten,
32
- ensureOverriddenProp: config.ensureOverriddenProp ?? parent.staticConfig.ensureOverriddenProp,
32
+ neverFlatten: (_a = config.neverFlatten) != null ? _a : parent.staticConfig.neverFlatten,
33
+ ensureOverriddenProp: (_b = config.ensureOverriddenProp) != null ? _b : parent.staticConfig.ensureOverriddenProp,
33
34
  validStyles: config.validStyles ? {
34
35
  ...parent.staticConfig.validStyles,
35
36
  ...config.validStyles
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../src/helpers/extendStaticConfig.ts"],
4
4
  "sourcesContent": ["import React from 'react'\n\nimport { StaticComponent, StaticConfig, StaticConfigParsed } from '../types'\nimport { createPropMapper } from './createPropMapper'\n\nexport function extendStaticConfig(\n // can be undefined when loading with @tamagui/fake-react-native\n // could be fixed a bit cleaner\n Component?: StaticComponent | React.Component<any>,\n config: StaticConfig = {}\n): StaticConfigParsed | null {\n const parent = (Component || {}) as any\n if (!parent.staticConfig) {\n // if no static config, we are extending an external component\n parent.staticConfig = {\n Component,\n }\n }\n\n const variants = {\n ...parent.staticConfig.variants,\n }\n\n // merge variants without clobbering previous... can we tho (typed??\n if (config.variants) {\n for (const key in config.variants) {\n if (variants[key]) {\n variants[key] = {\n ...variants[key],\n ...config.variants[key],\n }\n } else {\n variants[key] = config.variants[key]\n }\n }\n }\n\n return parseStaticConfig({\n ...parent.staticConfig,\n isZStack: config.isZStack || parent.staticConfig.isZStack,\n variants,\n isText: config.isText || parent.staticConfig.isText || false,\n neverFlatten: config.neverFlatten ?? parent.staticConfig.neverFlatten,\n ensureOverriddenProp: config.ensureOverriddenProp ?? parent.staticConfig.ensureOverriddenProp,\n validStyles: config.validStyles\n ? {\n ...parent.staticConfig.validStyles,\n ...config.validStyles,\n }\n : parent.staticConfig.validStyles,\n validPropsExtra: {\n ...parent.staticConfig.validPropsExtra,\n ...config.validPropsExtra,\n },\n defaultProps: {\n ...parent.staticConfig.defaultProps,\n ...config.defaultProps,\n },\n })\n}\n\nexport const parseStaticConfig = (config: StaticConfig): StaticConfigParsed => {\n return {\n ...config,\n parsed: true,\n propMapper: createPropMapper(config),\n }\n}\n"],
5
- "mappings": ";;AAGA;AAEO,4BAGL,WACA,SAAuB,IACI;AAC3B,QAAM,SAAU,aAAa;AAC7B,MAAI,CAAC,OAAO,cAAc;AAExB,WAAO,eAAe;AAAA,MACpB;AAAA;AAAA;AAIJ,QAAM,WAAW;AAAA,OACZ,OAAO,aAAa;AAAA;AAIzB,MAAI,OAAO,UAAU;AACnB,eAAW,OAAO,OAAO,UAAU;AACjC,UAAI,SAAS,MAAM;AACjB,iBAAS,OAAO;AAAA,aACX,SAAS;AAAA,aACT,OAAO,SAAS;AAAA;AAAA,aAEhB;AACL,iBAAS,OAAO,OAAO,SAAS;AAAA;AAAA;AAAA;AAKtC,SAAO,kBAAkB;AAAA,OACpB,OAAO;AAAA,IACV,UAAU,OAAO,YAAY,OAAO,aAAa;AAAA,IACjD;AAAA,IACA,QAAQ,OAAO,UAAU,OAAO,aAAa,UAAU;AAAA,IACvD,cAAc,OAAO,gBAAgB,OAAO,aAAa;AAAA,IACzD,sBAAsB,OAAO,wBAAwB,OAAO,aAAa;AAAA,IACzE,aAAa,OAAO,cAChB;AAAA,SACK,OAAO,aAAa;AAAA,SACpB,OAAO;AAAA,QAEZ,OAAO,aAAa;AAAA,IACxB,iBAAiB;AAAA,SACZ,OAAO,aAAa;AAAA,SACpB,OAAO;AAAA;AAAA,IAEZ,cAAc;AAAA,SACT,OAAO,aAAa;AAAA,SACpB,OAAO;AAAA;AAAA;AAAA;AAnDA;AAwDT,MAAM,oBAAoB,wBAAC,WAA6C;AAC7E,SAAO;AAAA,OACF;AAAA,IACH,QAAQ;AAAA,IACR,YAAY,iBAAiB;AAAA;AAAA,GAJA;",
5
+ "mappings": ";;AAGA;AAEO,4BAGL,WACA,SAAuB,IACI;AAV7B;AAWE,QAAM,SAAU,aAAa;AAC7B,MAAI,CAAC,OAAO,cAAc;AAExB,WAAO,eAAe;AAAA,MACpB;AAAA;AAAA;AAIJ,QAAM,WAAW;AAAA,OACZ,OAAO,aAAa;AAAA;AAIzB,MAAI,OAAO,UAAU;AACnB,eAAW,OAAO,OAAO,UAAU;AACjC,UAAI,SAAS,MAAM;AACjB,iBAAS,OAAO;AAAA,aACX,SAAS;AAAA,aACT,OAAO,SAAS;AAAA;AAAA,aAEhB;AACL,iBAAS,OAAO,OAAO,SAAS;AAAA;AAAA;AAAA;AAKtC,SAAO,kBAAkB;AAAA,OACpB,OAAO;AAAA,IACV,UAAU,OAAO,YAAY,OAAO,aAAa;AAAA,IACjD;AAAA,IACA,QAAQ,OAAO,UAAU,OAAO,aAAa,UAAU;AAAA,IACvD,cAAc,aAAO,iBAAP,YAAuB,OAAO,aAAa;AAAA,IACzD,sBAAsB,aAAO,yBAAP,YAA+B,OAAO,aAAa;AAAA,IACzE,aAAa,OAAO,cAChB;AAAA,SACK,OAAO,aAAa;AAAA,SACpB,OAAO;AAAA,QAEZ,OAAO,aAAa;AAAA,IACxB,iBAAiB;AAAA,SACZ,OAAO,aAAa;AAAA,SACpB,OAAO;AAAA;AAAA,IAEZ,cAAc;AAAA,SACT,OAAO,aAAa;AAAA,SACpB,OAAO;AAAA;AAAA;AAAA;AAnDA;AAwDT,MAAM,oBAAoB,wBAAC,WAA6C;AAC7E,SAAO;AAAA,OACF;AAAA,IACH,QAAQ;AAAA,IACR,YAAY,iBAAiB;AAAA;AAAA,GAJA;",
6
6
  "names": []
7
7
  }
@@ -1,26 +1,30 @@
1
1
  var __defProp = Object.defineProperty;
2
2
  var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
- const matchRgba = /rgba\(\s*([\d\.]{1,})\s*,\s*([\d\.]{1,})\s*,\s*([\d\.]{1,})\s*,\s*([\d\.]{1,})\s*\)$/;
3
+ const matchRgbaHsla = /(rgba|hsla)\(\s*([\d\.]{1,}%?)\s*,\s*([\d\.]{1,}%?)\s*,\s*([\d\.]{1,}%?)\s*,\s*([\d\.]{1,})\s*\)$/;
4
4
  function fixNativeShadow(props) {
5
- if (props.shadowColor) {
6
- if (!!!("shadowOffset" in props)) {
7
- props.shadowOffset = {
8
- width: 0,
9
- height: 0
10
- };
11
- }
12
- if (!!!("shadowOpacity" in props)) {
13
- const c = `${props.shadowColor}`;
14
- if (c[0] === "r" && c[3] === "a") {
15
- const [_, r, g, b, a] = c.match(matchRgba) || [];
16
- if (typeof a !== "string") {
17
- console.warn("non valid rgba", c);
18
- return props;
19
- }
20
- props.shadowColor = `rgb(${r},${g},${b})`;
21
- props.shadowOpacity = +a;
22
- }
5
+ if (!props.shadowColor) {
6
+ return;
7
+ }
8
+ if (!props.shadowOffset) {
9
+ props.shadowOffset = {
10
+ width: 0,
11
+ height: 0
12
+ };
13
+ }
14
+ if ("shadowOpacity" in props) {
15
+ return;
16
+ }
17
+ const c = `${props.shadowColor}`;
18
+ if ((c[0] === "r" || c[0] === "h") && c[3] === "a") {
19
+ const [_, type, _1, _2, _3, a] = c.match(matchRgbaHsla) || [];
20
+ if (typeof a !== "string") {
21
+ console.warn("invalid", c, type);
22
+ return;
23
23
  }
24
+ props.shadowColor = `${type.replace("a", "")}(${_1},${_2},${_3})`;
25
+ props.shadowOpacity = +a;
26
+ } else {
27
+ props.shadowOpacity = 1;
24
28
  }
25
29
  }
26
30
  __name(fixNativeShadow, "fixNativeShadow");
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/helpers/fixNativeShadow.native.tsx"],
4
- "sourcesContent": ["const matchRgba =\n /rgba\\(\\s*([\\d\\.]{1,})\\s*,\\s*([\\d\\.]{1,})\\s*,\\s*([\\d\\.]{1,})\\s*,\\s*([\\d\\.]{1,})\\s*\\)$/\n\nexport function fixNativeShadow(props: any) {\n if (props.shadowColor) {\n if (!!!('shadowOffset' in props)) {\n // fixes some broken shadows\n props.shadowOffset = {\n width: 0,\n height: 0,\n }\n }\n if (!!!('shadowOpacity' in props)) {\n const c = `${props.shadowColor}`\n // react native has issues sometimes with rgba()\n if (c[0] === 'r' && c[3] === 'a') {\n const [_, r, g, b, a] = c.match(matchRgba) || []\n if (typeof a !== 'string') {\n console.warn('non valid rgba', c)\n return props\n }\n props.shadowColor = `rgb(${r},${g},${b})`\n props.shadowOpacity = +a\n }\n }\n }\n}\n"],
5
- "mappings": ";;AAAA,MAAM,YACJ;AAEK,yBAAyB,OAAY;AAC1C,MAAI,MAAM,aAAa;AACrB,QAAI,CAAC,CAAC,CAAE,mBAAkB,QAAQ;AAEhC,YAAM,eAAe;AAAA,QACnB,OAAO;AAAA,QACP,QAAQ;AAAA;AAAA;AAGZ,QAAI,CAAC,CAAC,CAAE,oBAAmB,QAAQ;AACjC,YAAM,IAAI,GAAG,MAAM;AAEnB,UAAI,EAAE,OAAO,OAAO,EAAE,OAAO,KAAK;AAChC,cAAM,CAAC,GAAG,GAAG,GAAG,GAAG,KAAK,EAAE,MAAM,cAAc;AAC9C,YAAI,OAAO,MAAM,UAAU;AACzB,kBAAQ,KAAK,kBAAkB;AAC/B,iBAAO;AAAA;AAET,cAAM,cAAc,OAAO,KAAK,KAAK;AACrC,cAAM,gBAAgB,CAAC;AAAA;AAAA;AAAA;AAAA;AAnBf;",
4
+ "sourcesContent": ["const matchRgbaHsla =\n /(rgba|hsla)\\(\\s*([\\d\\.]{1,}%?)\\s*,\\s*([\\d\\.]{1,}%?)\\s*,\\s*([\\d\\.]{1,}%?)\\s*,\\s*([\\d\\.]{1,})\\s*\\)$/\n\nexport function fixNativeShadow(props: any) {\n if (!props.shadowColor) {\n return\n }\n if (!props.shadowOffset) {\n // fixes some broken shadows\n props.shadowOffset = {\n width: 0,\n height: 0,\n }\n }\n if ('shadowOpacity' in props) {\n return\n }\n const c = `${props.shadowColor}`\n // react native has issues sometimes with rgba()\n // supports rgba + hsla\n if ((c[0] === 'r' || c[0] === 'h') && c[3] === 'a') {\n const [_, type, _1, _2, _3, a] = c.match(matchRgbaHsla) || []\n if (typeof a !== 'string') {\n console.warn('invalid', c, type)\n return\n }\n props.shadowColor = `${type.replace('a', '')}(${_1},${_2},${_3})`\n props.shadowOpacity = +a\n } else {\n props.shadowOpacity = 1\n }\n}\n"],
5
+ "mappings": ";;AAAA,MAAM,gBACJ;AAEK,yBAAyB,OAAY;AAC1C,MAAI,CAAC,MAAM,aAAa;AACtB;AAAA;AAEF,MAAI,CAAC,MAAM,cAAc;AAEvB,UAAM,eAAe;AAAA,MACnB,OAAO;AAAA,MACP,QAAQ;AAAA;AAAA;AAGZ,MAAI,mBAAmB,OAAO;AAC5B;AAAA;AAEF,QAAM,IAAI,GAAG,MAAM;AAGnB,MAAK,GAAE,OAAO,OAAO,EAAE,OAAO,QAAQ,EAAE,OAAO,KAAK;AAClD,UAAM,CAAC,GAAG,MAAM,IAAI,IAAI,IAAI,KAAK,EAAE,MAAM,kBAAkB;AAC3D,QAAI,OAAO,MAAM,UAAU;AACzB,cAAQ,KAAK,WAAW,GAAG;AAC3B;AAAA;AAEF,UAAM,cAAc,GAAG,KAAK,QAAQ,KAAK,OAAO,MAAM,MAAM;AAC5D,UAAM,gBAAgB,CAAC;AAAA,SAClB;AACL,UAAM,gBAAgB;AAAA;AAAA;AA1BV;",
6
6
  "names": []
7
7
  }
@@ -34,12 +34,13 @@ function getStylesAtomic(style, avoidCollection = false) {
34
34
  __name(getStylesAtomic, "getStylesAtomic");
35
35
  const importantRegex = /\!important*/g;
36
36
  function getAtomicStyle(style, pseudo, avoidCollection) {
37
+ var _a;
37
38
  if (style == null || typeof style !== "object") {
38
39
  throw new Error(`Wrong style type: "${typeof style}": ${style}`);
39
40
  }
40
41
  for (const key in borderDefaults) {
41
42
  if (key in style) {
42
- style[borderDefaults[key]] = style[borderDefaults[key]] ?? "solid";
43
+ style[borderDefaults[key]] = (_a = style[borderDefaults[key]]) != null ? _a : "solid";
43
44
  }
44
45
  }
45
46
  const all = generateStyle(style);
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../src/helpers/getStylesAtomic.ts"],
4
4
  "sourcesContent": ["import { AllRules } from '@tamagui/helpers'\nimport type { StyleObject } from '@tamagui/helpers'\nimport { ViewStyle } from 'react-native'\n\nimport { pseudos } from '../constants/pseudos'\nimport { rnw } from '../constants/rnw'\n\nconst generateStyle = (style: any) => {\n const { atomic, createCompileableStyle, createReactDOMStyle, i18Style } = rnw\n return {\n ...atomic(createCompileableStyle(createReactDOMStyle(i18Style(style)))),\n }\n}\n\nconst borderDefaults = {\n borderWidth: 'borderStyle',\n borderBottomWidth: 'borderBottomStyle',\n borderTopWidth: 'borderTopStyle',\n borderLeftWidth: 'borderLeftStyle',\n borderRightWidth: 'borderRightStyle',\n}\n\nexport function getStylesAtomic(style: any, avoidCollection = false) {\n const styles: { [key: string]: ViewStyle } = {\n base: {},\n }\n // split pseudos\n for (const key in style) {\n if (!!pseudos[key]) {\n styles[key] = style[key]\n } else {\n styles.base[key] = style[key]\n }\n }\n return Object.keys(styles)\n .map((key) => {\n return getAtomicStyle(styles[key], pseudos[key], avoidCollection)\n })\n .flat()\n}\n\nconst importantRegex = /\\!important*/g\n\nfunction getAtomicStyle(\n style: ViewStyle,\n pseudo?: { name: string; priority: number },\n avoidCollection?: boolean\n): StyleObject[] {\n if (style == null || typeof style !== 'object') {\n throw new Error(`Wrong style type: \"${typeof style}\": ${style}`)\n }\n\n // why is this diff from react-native-web!? need to figure out\n for (const key in borderDefaults) {\n if (key in style) {\n style[borderDefaults[key]] = style[borderDefaults[key]] ?? 'solid'\n }\n }\n\n const all = generateStyle(style)\n return Object.keys(all).map((key) => {\n const val = all[key]\n const hash = val.identifier.slice(`${val.identifier}`.lastIndexOf('-') + 1)\n // pseudos have a `--` to be easier to find with concatClassNames\n const psuedoPrefix = pseudo ? `-${pseudo.name}-` : ''\n const identifier = `_${val.property}-${psuedoPrefix}${hash}`\n const className = `.${identifier}`\n const rules = val.rules.map((rule) => {\n if (pseudo) {\n const psuedoPrefixSelect = [...Array(pseudo.priority)].map(() => ':root').join('') + ' '\n let res = rule\n .replace(`.${val.identifier}`, `${psuedoPrefixSelect} ${className}`)\n .replace('{', `:${pseudo.name}{`)\n\n if (pseudo.name === 'hover') {\n // hover styles need to be conditional\n // perhaps this can be generalized but for now lets just shortcut\n // and hardcode for hover styles, if we need to later we can\n // WEIRD SYNTAX, SEE:\n // https://stackoverflow.com/questions/40532204/media-query-for-devices-supporting-hover\n res = `@media not all and (hover: none) { ${res} }`\n }\n return res\n }\n return rule.replace(`.${val.identifier}`, className).replace(importantRegex, '')\n })\n\n if (!avoidCollection) {\n if (rules.length > 1) {\n console.warn('have never seen more than one, verifying')\n }\n AllRules.add(rules[0])\n }\n\n const result: StyleObject = {\n property: val.property,\n value: val.value,\n identifier,\n className,\n rules,\n }\n return result\n })\n}\n"],
5
- "mappings": ";;AAAA;AAIA;AACA;AAEA,MAAM,gBAAgB,wBAAC,UAAe;AACpC,QAAM,EAAE,QAAQ,wBAAwB,qBAAqB,aAAa;AAC1E,SAAO;AAAA,OACF,OAAO,uBAAuB,oBAAoB,SAAS;AAAA;AAAA,GAH5C;AAOtB,MAAM,iBAAiB;AAAA,EACrB,aAAa;AAAA,EACb,mBAAmB;AAAA,EACnB,gBAAgB;AAAA,EAChB,iBAAiB;AAAA,EACjB,kBAAkB;AAAA;AAGb,yBAAyB,OAAY,kBAAkB,OAAO;AACnE,QAAM,SAAuC;AAAA,IAC3C,MAAM;AAAA;AAGR,aAAW,OAAO,OAAO;AACvB,QAAI,CAAC,CAAC,QAAQ,MAAM;AAClB,aAAO,OAAO,MAAM;AAAA,WACf;AACL,aAAO,KAAK,OAAO,MAAM;AAAA;AAAA;AAG7B,SAAO,OAAO,KAAK,QAChB,IAAI,CAAC,QAAQ;AACZ,WAAO,eAAe,OAAO,MAAM,QAAQ,MAAM;AAAA,KAElD;AAAA;AAhBW;AAmBhB,MAAM,iBAAiB;AAEvB,wBACE,OACA,QACA,iBACe;AACf,MAAI,SAAS,QAAQ,OAAO,UAAU,UAAU;AAC9C,UAAM,IAAI,MAAM,sBAAsB,OAAO,WAAW;AAAA;AAI1D,aAAW,OAAO,gBAAgB;AAChC,QAAI,OAAO,OAAO;AAChB,YAAM,eAAe,QAAQ,MAAM,eAAe,SAAS;AAAA;AAAA;AAI/D,QAAM,MAAM,cAAc;AAC1B,SAAO,OAAO,KAAK,KAAK,IAAI,CAAC,QAAQ;AACnC,UAAM,MAAM,IAAI;AAChB,UAAM,OAAO,IAAI,WAAW,MAAM,GAAG,IAAI,aAAa,YAAY,OAAO;AAEzE,UAAM,eAAe,SAAS,IAAI,OAAO,UAAU;AACnD,UAAM,aAAa,IAAI,IAAI,YAAY,eAAe;AACtD,UAAM,YAAY,IAAI;AACtB,UAAM,QAAQ,IAAI,MAAM,IAAI,CAAC,SAAS;AACpC,UAAI,QAAQ;AACV,cAAM,qBAAqB,CAAC,GAAG,MAAM,OAAO,WAAW,IAAI,MAAM,SAAS,KAAK,MAAM;AACrF,YAAI,MAAM,KACP,QAAQ,IAAI,IAAI,cAAc,GAAG,sBAAsB,aACvD,QAAQ,KAAK,IAAI,OAAO;AAE3B,YAAI,OAAO,SAAS,SAAS;AAM3B,gBAAM,sCAAsC;AAAA;AAE9C,eAAO;AAAA;AAET,aAAO,KAAK,QAAQ,IAAI,IAAI,cAAc,WAAW,QAAQ,gBAAgB;AAAA;AAG/E,QAAI,CAAC,iBAAiB;AACpB,UAAI,MAAM,SAAS,GAAG;AACpB,gBAAQ,KAAK;AAAA;AAEf,eAAS,IAAI,MAAM;AAAA;AAGrB,UAAM,SAAsB;AAAA,MAC1B,UAAU,IAAI;AAAA,MACd,OAAO,IAAI;AAAA,MACX;AAAA,MACA;AAAA,MACA;AAAA;AAEF,WAAO;AAAA;AAAA;AA1DF;",
5
+ "mappings": ";;AAAA;AAIA;AACA;AAEA,MAAM,gBAAgB,wBAAC,UAAe;AACpC,QAAM,EAAE,QAAQ,wBAAwB,qBAAqB,aAAa;AAC1E,SAAO;AAAA,OACF,OAAO,uBAAuB,oBAAoB,SAAS;AAAA;AAAA,GAH5C;AAOtB,MAAM,iBAAiB;AAAA,EACrB,aAAa;AAAA,EACb,mBAAmB;AAAA,EACnB,gBAAgB;AAAA,EAChB,iBAAiB;AAAA,EACjB,kBAAkB;AAAA;AAGb,yBAAyB,OAAY,kBAAkB,OAAO;AACnE,QAAM,SAAuC;AAAA,IAC3C,MAAM;AAAA;AAGR,aAAW,OAAO,OAAO;AACvB,QAAI,CAAC,CAAC,QAAQ,MAAM;AAClB,aAAO,OAAO,MAAM;AAAA,WACf;AACL,aAAO,KAAK,OAAO,MAAM;AAAA;AAAA;AAG7B,SAAO,OAAO,KAAK,QAChB,IAAI,CAAC,QAAQ;AACZ,WAAO,eAAe,OAAO,MAAM,QAAQ,MAAM;AAAA,KAElD;AAAA;AAhBW;AAmBhB,MAAM,iBAAiB;AAEvB,wBACE,OACA,QACA,iBACe;AA/CjB;AAgDE,MAAI,SAAS,QAAQ,OAAO,UAAU,UAAU;AAC9C,UAAM,IAAI,MAAM,sBAAsB,OAAO,WAAW;AAAA;AAI1D,aAAW,OAAO,gBAAgB;AAChC,QAAI,OAAO,OAAO;AAChB,YAAM,eAAe,QAAQ,YAAM,eAAe,UAArB,YAA8B;AAAA;AAAA;AAI/D,QAAM,MAAM,cAAc;AAC1B,SAAO,OAAO,KAAK,KAAK,IAAI,CAAC,QAAQ;AACnC,UAAM,MAAM,IAAI;AAChB,UAAM,OAAO,IAAI,WAAW,MAAM,GAAG,IAAI,aAAa,YAAY,OAAO;AAEzE,UAAM,eAAe,SAAS,IAAI,OAAO,UAAU;AACnD,UAAM,aAAa,IAAI,IAAI,YAAY,eAAe;AACtD,UAAM,YAAY,IAAI;AACtB,UAAM,QAAQ,IAAI,MAAM,IAAI,CAAC,SAAS;AACpC,UAAI,QAAQ;AACV,cAAM,qBAAqB,CAAC,GAAG,MAAM,OAAO,WAAW,IAAI,MAAM,SAAS,KAAK,MAAM;AACrF,YAAI,MAAM,KACP,QAAQ,IAAI,IAAI,cAAc,GAAG,sBAAsB,aACvD,QAAQ,KAAK,IAAI,OAAO;AAE3B,YAAI,OAAO,SAAS,SAAS;AAM3B,gBAAM,sCAAsC;AAAA;AAE9C,eAAO;AAAA;AAET,aAAO,KAAK,QAAQ,IAAI,IAAI,cAAc,WAAW,QAAQ,gBAAgB;AAAA;AAG/E,QAAI,CAAC,iBAAiB;AACpB,UAAI,MAAM,SAAS,GAAG;AACpB,gBAAQ,KAAK;AAAA;AAEf,eAAS,IAAI,MAAM;AAAA;AAGrB,UAAM,SAAsB;AAAA,MAC1B,UAAU,IAAI;AAAA,MACd,OAAO,IAAI;AAAA,MACX;AAAA,MACA;AAAA,MACA;AAAA;AAEF,WAAO;AAAA;AAAA;AA1DF;",
6
6
  "names": []
7
7
  }