@tamagui/core 1.0.0-beta.189 → 1.0.0-beta.207

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 (113) hide show
  1. package/dist/cjs/constants/pseudos.js +37 -0
  2. package/dist/cjs/constants/pseudos.js.map +7 -0
  3. package/dist/cjs/createComponent.js +45 -45
  4. package/dist/cjs/createComponent.js.map +2 -2
  5. package/dist/cjs/createShallowUpdate.js +1 -0
  6. package/dist/cjs/createShallowUpdate.js.map +7 -0
  7. package/dist/cjs/defaultComponentState.js +0 -30
  8. package/dist/cjs/defaultComponentState.js.map +3 -3
  9. package/dist/cjs/devtools.js +32 -0
  10. package/dist/cjs/devtools.js.map +7 -0
  11. package/dist/cjs/helpers/RNComponents.js +34 -0
  12. package/dist/cjs/helpers/RNComponents.js.map +7 -0
  13. package/dist/cjs/helpers/createMediaStyle.js +2 -0
  14. package/dist/cjs/helpers/createMediaStyle.js.map +2 -2
  15. package/dist/cjs/helpers/createPropMapper.js.map +1 -1
  16. package/dist/cjs/helpers/createShallowUpdate.js +51 -0
  17. package/dist/cjs/helpers/createShallowUpdate.js.map +7 -0
  18. package/dist/cjs/helpers/createTamaguiProvider.js +1 -5
  19. package/dist/cjs/helpers/createTamaguiProvider.js.map +2 -2
  20. package/dist/cjs/helpers/getSplitStyles.js +7 -7
  21. package/dist/cjs/helpers/getSplitStyles.js.map +2 -2
  22. package/dist/cjs/helpers/insertStyleRule.js +6 -5
  23. package/dist/cjs/helpers/insertStyleRule.js.map +2 -2
  24. package/dist/cjs/hooks/useFeatures.js +11 -6
  25. package/dist/cjs/hooks/useFeatures.js.map +2 -2
  26. package/dist/cjs/styled.js +2 -12
  27. package/dist/cjs/styled.js.map +2 -2
  28. package/dist/cjs/tamagui-base.css +8 -0
  29. package/dist/cjs/tamagui-base.css.map +7 -0
  30. package/dist/cjs/types-rnw.js.map +1 -1
  31. package/dist/cjs/types.js.map +1 -1
  32. package/dist/cjs/views/Stack.js.map +2 -2
  33. package/dist/cjs/views/Text.js.map +2 -2
  34. package/dist/cjs/views/Theme.js +4 -1
  35. package/dist/cjs/views/Theme.js.map +2 -2
  36. package/dist/esm/constants/pseudos.js +18 -0
  37. package/dist/esm/constants/pseudos.js.map +7 -0
  38. package/dist/esm/createComponent.js +43 -43
  39. package/dist/esm/createComponent.js.map +2 -2
  40. package/dist/esm/createShallowUpdate.js +1 -0
  41. package/dist/esm/createShallowUpdate.js.map +7 -0
  42. package/dist/esm/defaultComponentState.js +0 -11
  43. package/dist/esm/defaultComponentState.js.map +3 -3
  44. package/dist/esm/devtools.js +14 -0
  45. package/dist/esm/devtools.js.map +7 -0
  46. package/dist/esm/helpers/RNComponents.js +12 -0
  47. package/dist/esm/helpers/RNComponents.js.map +7 -0
  48. package/dist/esm/helpers/createMediaStyle.js +2 -0
  49. package/dist/esm/helpers/createMediaStyle.js.map +2 -2
  50. package/dist/esm/helpers/createPropMapper.js.map +1 -1
  51. package/dist/esm/helpers/createShallowUpdate.js +19 -0
  52. package/dist/esm/helpers/createShallowUpdate.js.map +7 -0
  53. package/dist/esm/helpers/createTamaguiProvider.js +1 -4
  54. package/dist/esm/helpers/createTamaguiProvider.js.map +2 -2
  55. package/dist/esm/helpers/getSplitStyles.js +7 -7
  56. package/dist/esm/helpers/getSplitStyles.js.map +2 -2
  57. package/dist/esm/helpers/insertStyleRule.js +6 -5
  58. package/dist/esm/helpers/insertStyleRule.js.map +2 -2
  59. package/dist/esm/hooks/useFeatures.js +17 -11
  60. package/dist/esm/hooks/useFeatures.js.map +2 -2
  61. package/dist/esm/styled.js +1 -8
  62. package/dist/esm/styled.js.map +2 -2
  63. package/dist/esm/tamagui-base.css +8 -0
  64. package/dist/esm/tamagui-base.css.map +7 -0
  65. package/dist/esm/views/Stack.js.map +2 -2
  66. package/dist/esm/views/Text.js.map +2 -2
  67. package/dist/esm/views/Theme.js +4 -1
  68. package/dist/esm/views/Theme.js.map +2 -2
  69. package/dist/jsx/constants/pseudos.js +17 -0
  70. package/dist/jsx/createComponent.js +39 -40
  71. package/dist/jsx/createShallowUpdate.js +0 -0
  72. package/dist/jsx/defaultComponentState.js +0 -11
  73. package/dist/jsx/devtools.js +13 -0
  74. package/dist/jsx/helpers/RNComponents.js +11 -0
  75. package/dist/jsx/helpers/createMediaStyle.js +2 -0
  76. package/dist/jsx/helpers/createShallowUpdate.js +18 -0
  77. package/dist/jsx/helpers/createTamaguiProvider.js +1 -2
  78. package/dist/jsx/helpers/getSplitStyles.js +7 -7
  79. package/dist/jsx/helpers/insertStyleRule.js +6 -5
  80. package/dist/jsx/hooks/useFeatures.js +17 -11
  81. package/dist/jsx/styled.js +1 -8
  82. package/dist/jsx/tamagui-base.css +7 -0
  83. package/dist/jsx/views/Theme.js +4 -1
  84. package/package.json +6 -6
  85. package/types/createComponent.d.ts +5 -6
  86. package/types/createComponent.d.ts.map +1 -1
  87. package/types/defaultComponentState.d.ts +0 -12
  88. package/types/defaultComponentState.d.ts.map +1 -1
  89. package/types/helpers/RNComponents.d.ts +2 -0
  90. package/types/helpers/RNComponents.d.ts.map +1 -0
  91. package/types/helpers/createMediaStyle.d.ts.map +1 -1
  92. package/types/helpers/createPropMapper.d.ts +1 -1
  93. package/types/helpers/createPropMapper.d.ts.map +1 -1
  94. package/types/helpers/createShallowUpdate.d.ts +4 -0
  95. package/types/helpers/createShallowUpdate.d.ts.map +1 -0
  96. package/types/helpers/createTamaguiProvider.d.ts +1 -1
  97. package/types/helpers/createTamaguiProvider.d.ts.map +1 -1
  98. package/types/helpers/getSplitStyles.d.ts +2 -3
  99. package/types/helpers/getSplitStyles.d.ts.map +1 -1
  100. package/types/helpers/insertStyleRule.d.ts.map +1 -1
  101. package/types/hooks/useFeatures.d.ts +3 -4
  102. package/types/hooks/useFeatures.d.ts.map +1 -1
  103. package/types/styled.d.ts +3 -7
  104. package/types/styled.d.ts.map +1 -1
  105. package/types/types-rnw.d.ts +0 -5
  106. package/types/types-rnw.d.ts.map +1 -1
  107. package/types/types.d.ts +61 -62
  108. package/types/types.d.ts.map +1 -1
  109. package/types/views/Stack.d.ts +2 -2
  110. package/types/views/Stack.d.ts.map +1 -1
  111. package/types/views/Text.d.ts +2 -2
  112. package/types/views/Text.d.ts.map +1 -1
  113. package/types/views/Theme.d.ts.map +1 -1
@@ -0,0 +1,37 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __export = (target, all) => {
6
+ for (var name in all)
7
+ __defProp(target, name, { get: all[name], enumerable: true });
8
+ };
9
+ var __copyProps = (to, from, except, desc) => {
10
+ if (from && typeof from === "object" || typeof from === "function") {
11
+ for (let key of __getOwnPropNames(from))
12
+ if (!__hasOwnProp.call(to, key) && key !== except)
13
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
+ }
15
+ return to;
16
+ };
17
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
+ var pseudos_exports = {};
19
+ __export(pseudos_exports, {
20
+ pseudos: () => pseudos
21
+ });
22
+ module.exports = __toCommonJS(pseudos_exports);
23
+ const pseudos = {
24
+ focusStyle: {
25
+ name: "focus",
26
+ priority: 3
27
+ },
28
+ pressStyle: {
29
+ name: "active",
30
+ priority: 2
31
+ },
32
+ hoverStyle: {
33
+ name: "hover",
34
+ priority: 1
35
+ }
36
+ };
37
+ //# sourceMappingURL=pseudos.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/constants/pseudos.ts"],
4
+ "sourcesContent": ["export const pseudos = {\n focusStyle: {\n name: 'focus',\n priority: 3,\n },\n pressStyle: {\n name: 'active',\n priority: 2,\n },\n hoverStyle: {\n name: 'hover',\n priority: 1,\n },\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAO,MAAM,UAAU;AAAA,EACrB,YAAY;AAAA,IACV,MAAM;AAAA,IACN,UAAU;AAAA,EACZ;AAAA,EACA,YAAY;AAAA,IACV,MAAM;AAAA,IACN,UAAU;AAAA,EACZ;AAAA,EACA,YAAY;AAAA,IACV,MAAM;AAAA,IACN,UAAU;AAAA,EACZ;AACF;",
6
+ "names": []
7
+ }
@@ -53,6 +53,7 @@ __export(createComponent_exports, {
53
53
  AbsoluteFill: () => AbsoluteFill,
54
54
  Spacer: () => Spacer,
55
55
  createComponent: () => createComponent,
56
+ defaultComponentState: () => defaultComponentState,
56
57
  mouseUps: () => mouseUps,
57
58
  spacedChildren: () => spacedChildren
58
59
  });
@@ -66,14 +67,24 @@ var import_constants = require("./constants/constants");
66
67
  var import_platform = require("./constants/platform");
67
68
  var import_rnw = require("./constants/rnw");
68
69
  var import_createVariable = require("./createVariable");
69
- var import_defaultComponentState = require("./defaultComponentState");
70
+ var import_createShallowUpdate = require("./helpers/createShallowUpdate");
70
71
  var import_extendStaticConfig = require("./helpers/extendStaticConfig");
71
72
  var import_getSplitStyles = require("./helpers/getSplitStyles");
73
+ var import_insertStyleRule = require("./helpers/insertStyleRule");
72
74
  var import_wrapThemeManagerContext = require("./helpers/wrapThemeManagerContext");
73
75
  var import_useFeatures = require("./hooks/useFeatures");
74
76
  var import_usePressable = require("./hooks/usePressable");
75
77
  var import_useTheme = require("./hooks/useTheme");
76
78
  var import_TextAncestorContext = require("./views/TextAncestorContext");
79
+ import_react.default["keep"];
80
+ const defaultComponentState = {
81
+ hover: false,
82
+ press: false,
83
+ pressIn: false,
84
+ focus: false,
85
+ mounted: false,
86
+ animation: null
87
+ };
77
88
  const mouseUps = /* @__PURE__ */ new Set();
78
89
  if (typeof document !== "undefined") {
79
90
  document.addEventListener("mouseup", () => {
@@ -81,19 +92,6 @@ if (typeof document !== "undefined") {
81
92
  mouseUps.clear();
82
93
  });
83
94
  }
84
- function createShallowUpdate(setter) {
85
- return (next) => {
86
- setter((prev) => {
87
- for (const key in next) {
88
- if (prev[key] !== next[key]) {
89
- return __spreadValues(__spreadValues({}, prev), next);
90
- }
91
- }
92
- return prev;
93
- });
94
- };
95
- }
96
- __name(createShallowUpdate, "createShallowUpdate");
97
95
  function createComponent(configIn) {
98
96
  let staticConfig;
99
97
  if ("parsed" in configIn) {
@@ -107,13 +105,13 @@ function createComponent(configIn) {
107
105
  let tamaguiConfig;
108
106
  let AnimatedText;
109
107
  let AnimatedView;
110
- let avoidClasses = false;
108
+ let avoidClasses = true;
111
109
  let defaultPseudos = {};
112
110
  let defaultNativeStyle;
113
111
  let defaultNativeStyleSheet = null;
114
112
  let defaultsClassName = null;
115
113
  let initialTheme;
116
- let splitStyleResult = null;
114
+ let defaultSplitStyleResult = null;
117
115
  function addPseudoToStyles(styles, name, pseudos) {
118
116
  const pseudoStyle = pseudos[name];
119
117
  if (pseudoStyle) {
@@ -136,14 +134,15 @@ function createComponent(configIn) {
136
134
  }
137
135
  const forceUpdate = (0, import_use_force_update.useForceUpdate)();
138
136
  const theme = (0, import_useTheme.useTheme)(props.theme, componentName, props, forceUpdate);
139
- const [state, set_] = (0, import_react.useState)(import_defaultComponentState.defaultComponentState);
140
- const setStateShallow = createShallowUpdate(set_);
141
- const shouldAvoidClasses = !!(state.animation && avoidClasses);
142
- const splitInfo = (0, import_getSplitStyles.getSplitStyles)(props, staticConfig, theme, shouldAvoidClasses ? __spreadProps(__spreadValues({}, state), { noClassNames: true, resolveVariablesAs: "value" }) : state, defaultsClassName);
143
- const { viewProps: viewPropsIn, pseudos, medias, style, classNames } = splitInfo;
137
+ const [state, set_] = (0, import_react.useState)(defaultComponentState);
138
+ const setStateShallow = (0, import_createShallowUpdate.createShallowUpdate)(set_);
139
+ const shouldAvoidClasses = !!(props.animation && avoidClasses);
140
+ const splitStyles = (0, import_getSplitStyles.getSplitStyles)(props, staticConfig, theme, shouldAvoidClasses ? __spreadProps(__spreadValues({}, state), { noClassNames: true, resolveVariablesAs: "value" }) : state, shouldAvoidClasses ? null : defaultsClassName);
141
+ const { viewProps: viewPropsIn, pseudos, medias, style, classNames } = splitStyles;
144
142
  const useAnimations = (_a = tamaguiConfig.animations) == null ? void 0 : _a.useAnimations;
145
143
  const isAnimated = !!(useAnimations && props.animation);
146
- const styleWithPseudos = props.animation ? merge(__spreadValues(__spreadValues({}, defaultNativeStyle), style), state.hover && pseudos.hoverStyle, state.press && pseudos.pressStyle, state.focus && pseudos.focusStyle, ...Object.values(medias)) : null;
144
+ const hasEnterStyle = !!props.enterStyle;
145
+ const styleWithPseudos = props.animation ? merge(__spreadValues(__spreadValues({}, defaultNativeStyle), style), state.hover && pseudos.hoverStyle, state.press && pseudos.pressStyle, state.focus && pseudos.focusStyle, hasEnterStyle && !state.mounted && pseudos.enterStyle, ...Object.values(medias)) : null;
147
146
  const features = (0, import_useFeatures.useFeatures)(props, {
148
147
  forceUpdate,
149
148
  setStateShallow,
@@ -243,7 +242,6 @@ function createComponent(configIn) {
243
242
  }
244
243
  const hasTextAncestor = import_platform.isWeb ? (0, import_react.useContext)(import_TextAncestorContext.TextAncestorContext) : false;
245
244
  const hostRef = (0, import_react.useRef)(null);
246
- const hasEnterStyle = !!props.enterStyle;
247
245
  const internal = (0, import_react.useRef)();
248
246
  if (!internal.current) {
249
247
  internal.current = {
@@ -333,10 +331,11 @@ function createComponent(configIn) {
333
331
  const className = classList.join(" ");
334
332
  if (process.env.NODE_ENV === "development") {
335
333
  if (props["debug"]) {
336
- console.log(" \xBB className", { isStringElement, pseudos, state, defaultsClassName, classNames, propsClassName: props.className, style, classList, className: className.trim().split(" "), themeClassName: theme.className });
334
+ console.log(" \xBB className", { isStringElement, pseudos, state, defaultsClassName, classNames, propsClassName: props.className, style, classList, className: className.trim().split(" "), themeClassName: theme.className, values: Object.fromEntries(Object.entries(classNames).map(([k, v]) => [v, (0, import_insertStyleRule.getAllSelectors)()[v]])) });
337
335
  }
338
336
  }
339
337
  viewProps.className = className;
338
+ viewProps.style = animationStyles;
340
339
  } else {
341
340
  viewProps.style = styles;
342
341
  }
@@ -454,22 +453,6 @@ function createComponent(configIn) {
454
453
  }) : {
455
454
  disabled: true
456
455
  });
457
- if (events) {
458
- if (!isStringElement) {
459
- Object.assign(viewProps, pressProps);
460
- } else {
461
- Object.assign(viewProps, events);
462
- }
463
- if (import_platform.isWeb && isHoverable) {
464
- childEls = /* @__PURE__ */ import_react.default.createElement("span", {
465
- style: {
466
- display: "contents"
467
- },
468
- onMouseEnter: events.onMouseEnter,
469
- onMouseLeave: events.onMouseLeave
470
- }, children);
471
- }
472
- }
473
456
  let content;
474
457
  if (import_platform.isWeb) {
475
458
  if (staticConfig.isReactNativeWeb) {
@@ -485,11 +468,28 @@ function createComponent(configIn) {
485
468
  }
486
469
  }
487
470
  }
471
+ if (events) {
472
+ if (!isStringElement) {
473
+ Object.assign(viewProps, pressProps);
474
+ } else {
475
+ Object.assign(viewProps, events);
476
+ }
477
+ }
488
478
  content = (0, import_react.createElement)(ViewComponent, viewProps, childEls);
479
+ if (import_platform.isWeb && events && attachHover) {
480
+ content = /* @__PURE__ */ import_react.default.createElement("span", {
481
+ className: "tui_Hoverable",
482
+ style: {
483
+ display: "contents"
484
+ },
485
+ onMouseEnter: events.onMouseEnter,
486
+ onMouseLeave: events.onMouseLeave
487
+ }, content);
488
+ }
489
489
  if (process.env.NODE_ENV === "development") {
490
490
  if (props["debug"]) {
491
491
  viewProps["debug"] = true;
492
- console.log(" \xBB ", __spreadValues({ propsIn: __spreadValues({}, props), propsOut: __spreadValues({}, viewProps), animationStyles, isStringElement, classNamesIn: (_d = props.className) == null ? void 0 : _d.split(" "), classNamesOut: (_e = viewProps.className) == null ? void 0 : _e.split(" "), pressProps, events, shouldAttach, ViewComponent, viewProps, state, styles, pseudos, content, childEls, shouldAvoidClasses, animation: props.animation, style, defaultNativeStyle, splitStyleResult }, typeof window !== "undefined" ? { theme, themeState: theme.__state, themeClassName: theme.className, staticConfig, tamaguiConfig } : null));
492
+ console.log(" \xBB ", __spreadValues({ propsIn: __spreadValues({}, props), propsOut: __spreadValues({}, viewProps), state, styleWithPseudos, splitStyles, defaultsClassName, animationStyles, isStringElement, classNamesIn: (_d = props.className) == null ? void 0 : _d.split(" "), classNamesOut: (_e = viewProps.className) == null ? void 0 : _e.split(" "), pressProps, events, shouldAttach, ViewComponent, viewProps, styles, pseudos, content, childEls, shouldAvoidClasses, avoidClasses, animation: props.animation, style, defaultNativeStyle, defaultSplitStyleResult }, typeof window !== "undefined" ? { theme, themeState: theme.__state, themeClassName: theme.className, staticConfig, tamaguiConfig } : null));
493
493
  }
494
494
  }
495
495
  if (features.length) {
@@ -505,11 +505,11 @@ function createComponent(configIn) {
505
505
  AnimatedText = (_c = tamaguiConfig.animations) == null ? void 0 : _c.Text;
506
506
  AnimatedView = (_d = tamaguiConfig == null ? void 0 : tamaguiConfig.animations) == null ? void 0 : _d.View;
507
507
  initialTheme = conf.themes[conf.defaultTheme || Object.keys(conf.themes)[0]];
508
- splitStyleResult = (0, import_getSplitStyles.getSplitStyles)(staticConfig.defaultProps, staticConfig, initialTheme, {
508
+ defaultSplitStyleResult = (0, import_getSplitStyles.getSplitStyles)(staticConfig.defaultProps, staticConfig, initialTheme, {
509
509
  mounted: true,
510
- resolveVariablesAs: "variable"
510
+ resolveVariablesAs: "both"
511
511
  });
512
- const { classNames, pseudos, style, viewProps } = splitStyleResult;
512
+ const { classNames, pseudos, style, viewProps } = defaultSplitStyleResult;
513
513
  if (import_platform.isWeb) {
514
514
  defaultsClassName = classNames;
515
515
  }
@@ -525,7 +525,7 @@ function createComponent(configIn) {
525
525
  component.displayName = staticConfig.componentName;
526
526
  component.defaultProps = __spreadValues(__spreadValues({}, viewProps), component.defaultProps);
527
527
  if (process.env.NODE_ENV === "development" && shouldDebug && process.env.IS_STATIC !== "is_static") {
528
- console.log(`\u{1F41B} [${staticConfig.componentName || "Component"}]`, __spreadValues({ staticConfig }, splitStyleResult));
528
+ console.log(`\u{1F41B} [${staticConfig.componentName || "Component"}]`, __spreadValues({ staticConfig }, defaultSplitStyleResult));
529
529
  }
530
530
  });
531
531
  let res = component;
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/createComponent.tsx"],
4
- "sourcesContent": ["import { stylePropsView } from '@tamagui/helpers'\nimport { useForceUpdate } from '@tamagui/use-force-update'\nimport React, {\n Children,\n Fragment,\n createElement,\n forwardRef,\n memo,\n useCallback,\n useContext,\n useEffect,\n useRef,\n useState,\n} from 'react'\nimport { StyleSheet, Text, View, ViewStyle } from 'react-native'\n\nimport { onConfiguredOnce } from './conf'\nimport { stackDefaultStyles } from './constants/constants'\nimport { isAndroid, isTouchDevice, isWeb } from './constants/platform'\nimport { rnw } from './constants/rnw'\nimport { isVariable } from './createVariable'\nimport { ComponentState, defaultComponentState } from './defaultComponentState'\nimport { extendStaticConfig, parseStaticConfig } from './helpers/extendStaticConfig'\nimport {\n ClassNamesObject,\n PseudoStyles,\n SplitStyleResult,\n getSplitStyles,\n} from './helpers/getSplitStyles'\nimport { wrapThemeManagerContext } from './helpers/wrapThemeManagerContext'\nimport { useFeatures } from './hooks/useFeatures'\nimport { usePressable } from './hooks/usePressable'\nimport { getThemeManagerIfChanged, useTheme } from './hooks/useTheme'\nimport {\n SpaceTokens,\n StackProps,\n StaticComponent,\n StaticConfig,\n StaticConfigParsed,\n TamaguiInternalConfig,\n UseAnimationHook,\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\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<ComponentPropTypes extends Object = DefaultProps, Ref = View>(\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, componentName } = staticConfig\n const componentClassName = `is_${componentName}`\n const validStyleProps = validStyles || stylePropsView\n\n // split out default styles vs props so we can assign it to component.defaultProps\n let tamaguiConfig: TamaguiInternalConfig\n let AnimatedText: any\n let AnimatedView: any\n let avoidClasses = false\n\n // web uses className, native uses style\n let defaultPseudos: PseudoStyles = {}\n let defaultNativeStyle: any\n let defaultNativeStyleSheet: StyleSheet.NamedStyles<{ base: {} }> | null = null\n let defaultsClassName: ClassNamesObject | null = null\n let initialTheme: any\n let splitStyleResult: SplitStyleResult | null = null\n\n function addPseudoToStyles(styles: any[], name: string, pseudos: any) {\n // on web use pseudo object { hoverStyle } to keep specificity with concatClassName\n const pseudoStyle = pseudos[name]\n if (pseudoStyle) {\n styles.push(isWeb ? { [name]: pseudoStyle } : pseudoStyle)\n }\n const defaultPseudoStyle = defaultPseudos[name]\n if (defaultPseudoStyle) {\n styles.push(isWeb ? { [name]: defaultPseudoStyle } : defaultPseudoStyle)\n }\n }\n\n // see onConfiguredOnce below which attaches a name then to this component\n const component = forwardRef<Ref, ComponentPropTypes>((props: any, forwardedRef) => {\n if (process.env.NODE_ENV === 'development') {\n if (props['debug']) {\n // prettier-ignore\n console.warn(componentName || Component?.displayName || Component?.name || '[Unnamed Component]', ' debug prop on:', { props: Object.entries(props) })\n if (props['debug'] === 'break') debugger\n }\n }\n\n const forceUpdate = useForceUpdate()\n const theme = useTheme(props.theme, componentName, props, forceUpdate)\n const [state, set_] = useState<ComponentState>(defaultComponentState)\n const setStateShallow = createShallowUpdate(set_)\n\n const shouldAvoidClasses = !!(state.animation && avoidClasses)\n const splitInfo = getSplitStyles(\n props,\n staticConfig,\n theme,\n shouldAvoidClasses ? { ...state, noClassNames: true, resolveVariablesAs: 'value' } : state,\n defaultsClassName\n )\n\n const { viewProps: viewPropsIn, pseudos, medias, style, classNames } = splitInfo\n const useAnimations = tamaguiConfig.animations?.useAnimations as UseAnimationHook | undefined\n const isAnimated = !!(useAnimations && props.animation)\n\n const styleWithPseudos = props.animation\n ? merge(\n { ...defaultNativeStyle, ...style },\n state.hover && pseudos.hoverStyle,\n state.press && pseudos.pressStyle,\n state.focus && pseudos.focusStyle,\n ...Object.values(medias)\n )\n : null\n\n const features = useFeatures(props, {\n forceUpdate,\n setStateShallow,\n useAnimations,\n state,\n style: styleWithPseudos,\n pseudos,\n })\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 nativeID,\n\n accessible,\n accessibilityRole,\n\n // android\n collapsable,\n focusable,\n\n // ignore from here on out\n theme: _themeProp,\n // @ts-ignore\n defaultVariants,\n\n // TODO feature load layout hook\n onLayout,\n ...viewPropsRest\n } = viewPropsIn\n\n let viewProps: StackProps = viewPropsRest\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 const hasEnterStyle = !!props.enterStyle\n\n // isMounted\n const internal = useRef<{ isMounted: boolean }>()\n if (!internal.current) {\n internal.current = {\n isMounted: true,\n }\n }\n useEffect(() => {\n if (hasEnterStyle) {\n // we need to use state to properly have mounted go from false => true\n setStateShallow({\n mounted: true,\n })\n }\n internal.current!.isMounted = true\n return () => {\n mouseUps.delete(unPress)\n internal.current!.isMounted = false\n }\n }, [])\n\n if (nativeID) {\n viewProps.id = nativeID\n }\n\n if (isAndroid) {\n if (collapsable) viewProps.collapsable = collapsable\n if (focusable) viewProps.focusable = focusable\n }\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 // get the right component\n const isTaggable = !Component || typeof Component === 'string'\n\n // default to tag, fallback to component (when both strings)\n const element = isWeb ? (isTaggable ? tag || Component : Component) : Component\n const BaseTextComponent = !isWeb ? Text : element || 'span'\n const BaseViewComponent = !isWeb ? View : element || (hasTextAncestor ? 'span' : 'div')\n let ViewComponent = isText\n ? (isAnimated ? AnimatedText || Text : null) || BaseTextComponent\n : (isAnimated ? AnimatedView || View : null) || BaseViewComponent\n\n ViewComponent = Component || ViewComponent\n\n let styles: any[]\n\n const isStringElement = typeof ViewComponent === 'string'\n const animationStyles = state.animation ? state.animation.style : null\n\n if (isStringElement && shouldAvoidClasses) {\n styles = {\n ...defaultNativeStyle,\n ...animationStyles,\n ...medias,\n }\n } else {\n styles = [\n isWeb ? null : defaultNativeStyleSheet ? (defaultNativeStyleSheet.base as ViewStyle) : null,\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 animationStyles ? animationStyles : style,\n medias,\n ]\n if (!animationStyles) {\n state.hover && addPseudoToStyles(styles, 'hoverStyle', pseudos)\n state.focus && addPseudoToStyles(styles, 'focusStyle', pseudos)\n state.press && addPseudoToStyles(styles, 'pressStyle', pseudos)\n }\n }\n\n // TODO i think can still render this first part using reanimated\n // that way we get some of the classnames we probably want here (componentName/font/etc)\n // can just remove && !shouldAvoidClasses and add in a viewProps.style = styles in isWeb\n\n if (isWeb) {\n // const hasntSetInitialAnimationState = props.animation && !state.animation\n // const disableInsertStyles = hasntSetInitialAnimationState || shouldAvoidClasses || false\n // const stylesClassNames = useStylesAsClassname(\n // Array.isArray(styles) ? styles : [styles],\n // disableInsertStyles,\n // props.debug\n // )\n if (!shouldAvoidClasses) {\n const fontFamilyName = isText\n ? props.fontFamily || staticConfig.defaultProps.fontFamily\n : null\n const fontFamily =\n fontFamilyName && fontFamilyName[0] === '$' ? fontFamilyName.slice(1) : null\n const classList = [\n componentName ? componentClassName : '',\n fontFamily ? `font_${fontFamily}` : '',\n theme.className,\n classNames ? Object.values(classNames).join(' ') : '',\n ]\n\n // TODO restore this to isText classList\n // hasTextAncestor === true && cssText.textHasAncestor,\n // TODO MOVE TO VARIANTS [number] [any]\n // numberOfLines != null && numberOfLines > 1 && cssText.textMultiLine,\n\n const className = classList.join(' ')\n if (process.env.NODE_ENV === 'development') {\n if (props['debug']) {\n // prettier-ignore\n console.log(' \u00BB className', { isStringElement, pseudos, state, defaultsClassName, classNames, propsClassName: props.className, style, classList, className: className.trim().split(' '), themeClassName: theme.className })\n }\n }\n viewProps.className = className\n } else {\n viewProps.style = styles\n }\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\n if (!isAnimated) {\n // @ts-ignore\n viewProps.ref = setRef\n } else {\n if (forwardedRef) {\n // @ts-ignore\n viewProps.ref = forwardedRef\n }\n }\n\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 // @ts-ignore\n viewProps.ref = forwardedRef\n }\n }\n\n // TODO need to loop active variants and see if they have matchin pseudos and apply as well\n const attachPress = !!((pseudos && pseudos.pressStyle) || onPress || onPressOut || onPressIn)\n const isHoverable = isWeb && !isTouchDevice\n const attachHover =\n isHoverable &&\n !!((pseudos && pseudos.hoverStyle) || onHoverIn || onHoverOut || onMouseEnter || onMouseLeave)\n const pressEventKey = isStringElement ? 'onClick' : 'onPress'\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 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 'onHoverIn' in props ||\n 'onHoverOut' in props ||\n 'onMouseEnter' in props ||\n 'onMouseLeave' in props))\n\n const unPress = useCallback(() => {\n if (!internal.current!.isMounted) return\n setStateShallow({\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 ...(isHoverable && {\n onMouseEnter: attachHover\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 setStateShallow(next)\n }\n onHoverIn?.(e)\n onMouseEnter?.(e)\n }\n : undefined,\n onMouseLeave: attachHover\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 setStateShallow(next)\n }\n onHoverOut?.(e)\n onMouseLeave?.(e)\n }\n : undefined,\n }),\n onMouseDown: attachPress\n ? (e) => {\n setStateShallow({\n press: true,\n pressIn: true,\n })\n onPressIn?.(e)\n onMouseDown?.(e)\n }\n : null,\n [pressEventKey]: attachPress\n ? (e) => {\n // this caused issue with next.js passing href\n // e.preventDefault()\n onPress?.(e)\n unPress()\n onPressOut?.(e)\n }\n : null,\n }\n : null\n\n let childEls = !children\n ? children\n : wrapThemeManagerContext(\n spacedChildren({\n children,\n space,\n flexDirection: props.flexDirection || staticConfig.defaultProps?.flexDirection,\n isZStack: isZStack,\n }),\n getThemeManagerIfChanged(theme)\n )\n\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 events\n ? {\n disabled,\n ...(hitSlop && {\n hitSlop,\n }),\n onPressIn: events.onMouseDown,\n onPressOut: events.onPressOut,\n onPress: events[pressEventKey],\n }\n : {\n disabled: true,\n }\n )\n\n if (events) {\n if (!isStringElement) {\n Object.assign(viewProps, pressProps)\n } else {\n Object.assign(viewProps, events)\n }\n if (isWeb && isHoverable) {\n childEls = (\n <span\n style={{\n display: 'contents',\n }}\n onMouseEnter={events.onMouseEnter}\n onMouseLeave={events.onMouseLeave}\n >\n {children}\n </span>\n )\n }\n }\n\n let content: any\n\n // replicate react-native-web's `createElement`\n if (isWeb) {\n if (staticConfig.isReactNativeWeb) {\n viewProps.dataSet = {\n ...viewProps.dataSet,\n className: viewProps.className,\n }\n } else {\n const rnProps = rnw.createDOMProps(viewProps)\n const className =\n rnProps.className && rnProps.className !== viewProps.className\n ? `${rnProps.className} ${viewProps.className}`\n : viewProps.className\n\n // additive\n Object.assign(viewProps, rnProps)\n\n // we already handle Text/View properly\n if (className) {\n viewProps.className = className\n }\n }\n }\n\n content = createElement(ViewComponent, viewProps, childEls)\n\n if (process.env.NODE_ENV === 'development') {\n if (props['debug']) {\n viewProps['debug'] = true\n // prettier-ignore\n console.log(' \u00BB ', { propsIn: { ...props }, propsOut: { ...viewProps }, animationStyles, isStringElement, classNamesIn: props.className?.split(' '), classNamesOut: viewProps.className?.split(' '), pressProps, events, shouldAttach, ViewComponent, viewProps, state, styles, pseudos, content, childEls, shouldAvoidClasses, animation: props.animation, style, defaultNativeStyle, splitStyleResult, ...(typeof window !== 'undefined' ? { theme, themeState: theme.__state, themeClassName: theme.className, staticConfig, tamaguiConfig } : null) })\n }\n }\n\n if (features.length) {\n return (\n <>\n {features}\n {content}\n </>\n )\n }\n\n return content\n })\n\n // Once configuration is run and all components are registered\n // get default props + className and analyze styles\n onConfiguredOnce((conf) => {\n const shouldDebug = staticConfig.defaultProps?.debug\n tamaguiConfig = conf\n avoidClasses = !!tamaguiConfig.animations?.avoidClasses\n AnimatedText = tamaguiConfig.animations?.Text\n AnimatedView = tamaguiConfig?.animations?.View\n initialTheme = conf.themes[conf.defaultTheme || Object.keys(conf.themes)[0]]\n splitStyleResult = getSplitStyles(staticConfig.defaultProps, staticConfig, initialTheme, {\n mounted: true,\n resolveVariablesAs: 'variable',\n })\n\n const { classNames, pseudos, style, viewProps } = splitStyleResult\n\n if (isWeb) {\n defaultsClassName = classNames\n }\n\n // for use in animations + native\n defaultPseudos = pseudos\n defaultNativeStyle = {}\n for (const key in style) {\n const v = style[key]\n defaultNativeStyle[key] = isVariable(v) ? v.val : v\n }\n defaultNativeStyleSheet = StyleSheet.create({\n base: defaultNativeStyle,\n })\n\n component.displayName = staticConfig.componentName\n\n // @ts-ignore\n component.defaultProps = {\n ...viewProps,\n ...component.defaultProps,\n }\n\n // prettier-ignore\n if (process.env.NODE_ENV === 'development' && shouldDebug && process.env.IS_STATIC !== 'is_static') {\n // prettier-ignore\n console.log(`\uD83D\uDC1B [${staticConfig.componentName || 'Component'}]`, { staticConfig, ...splitStyleResult })\n }\n })\n\n let res: StaticComponent<ComponentPropTypes, {}, Ref> = component as any\n\n if (configIn.memo) {\n res = memo(res) as any\n }\n\n res['staticConfig'] = {\n validStyles: validStyleProps,\n ...staticConfig,\n }\n\n // res.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\n// dont used styled() here to avoid circular deps\n// keep inline to avoid circular deps\n\nexport const Spacer = createComponent<\n Omit<StackProps, 'flex' | 'direction'> & {\n size?: number | SpaceTokens\n flex?: boolean | number\n direction?: 'horizontal' | 'vertical'\n }\n>({\n memo: true,\n defaultProps: {\n ...stackDefaultStyles,\n size: true,\n },\n variants: {\n size: {\n '...size': (size, { tokens }) => {\n size = size == true ? '$true' : size\n const sizePx = tokens.size[size] ?? size\n return {\n width: sizePx,\n height: sizePx,\n minWidth: sizePx,\n minHeight: sizePx,\n }\n },\n },\n\n flex: {\n true: {\n flex: 1,\n },\n },\n\n direction: {\n horizontal: {\n height: 0,\n minHeight: 0,\n },\n vertical: {\n width: 0,\n minWidth: 0,\n },\n },\n },\n})\n\nexport function spacedChildren({\n isZStack,\n children,\n space,\n flexDirection,\n spaceFlex,\n}: {\n isZStack?: boolean\n children: any\n space?: any\n spaceFlex?: boolean | number\n flexDirection?: ViewStyle['flexDirection']\n}) {\n const childrenList = Children.toArray(children)\n const len = childrenList.length\n if (len === 1) {\n return childrenList\n }\n const next: any[] = []\n for (const [index, child] of childrenList.entries()) {\n if (child === null || child === undefined) {\n continue\n }\n\n if (!child || (child['key'] && !isZStack)) {\n next.push(child)\n } else {\n next.push(\n <Fragment key={index}>{isZStack ? <AbsoluteFill>{child}</AbsoluteFill> : child}</Fragment>\n )\n }\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={`_${index}_spacer`}\n direction={\n flexDirection === 'row' || flexDirection === 'row-reverse' ? 'horizontal' : 'vertical'\n }\n size={space}\n {...(spaceFlex && {\n flex: spaceFlex,\n })}\n />\n )\n }\n }\n }\n return next\n}\n\n// TODO this can be removed likey for bundle size, didnt help reanimated fix as i thought\nconst merge = (...styles: (ViewStyle | null | false | undefined)[]) => {\n // ensure transforms get merged without duplicates:\n // so if you have a:\n // transform: [{ scale: 1 }]\n // rest[0]:\n // transform: [{ scale: 1.1 }]\n // it gets properly merged so that rest[0] overwrites a\n if (!styles[0]) return // never happens\n const res: ViewStyle = {}\n\n const len = styles.length\n for (let i = len - 1; i >= 0; i--) {\n const cur = styles[i]\n if (!cur) continue\n\n for (const key in cur) {\n const val = cur[key]\n if (key !== 'transform') {\n if (!(key in res)) {\n res[key] = val\n }\n continue\n }\n if (!res.transform) {\n res.transform = val\n continue\n }\n // transform\n for (const t of val) {\n const tkey = Object.keys(t)[0]\n if (res.transform.find((existing) => tkey in existing)) {\n continue\n }\n res.transform.push(t)\n }\n }\n }\n\n return res\n}\n\nexport const AbsoluteFill = (props: any) =>\n isWeb ? (\n <div\n style={{\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n }}\n >\n {props.children}\n </div>\n ) : (\n <View style={StyleSheet.absoluteFill}>{props.child}</View>\n )\n\n// this can be done with CSS entirely right?\n// const shouldWrapTextAncestor = isWeb && isText && !hasTextAncestor\n// if (shouldWrapTextAncestor) {\n// // from react-native-web\n// content = createElement(TextAncestorContext.Provider, { value: true }, content)\n// }\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import { stylePropsView } from '@tamagui/helpers'\nimport { useForceUpdate } from '@tamagui/use-force-update'\nimport React, {\n Children,\n Fragment,\n createElement,\n forwardRef,\n memo,\n useCallback,\n useContext,\n useEffect,\n useRef,\n useState,\n} from 'react'\nimport { StyleSheet, Text, View, ViewStyle } from 'react-native'\n\nimport { onConfiguredOnce } from './conf'\nimport { stackDefaultStyles } from './constants/constants'\nimport { isAndroid, isTouchDevice, isWeb } from './constants/platform'\nimport { rnw } from './constants/rnw'\nimport { isVariable } from './createVariable'\nimport { createShallowUpdate } from './helpers/createShallowUpdate'\nimport { extendStaticConfig, parseStaticConfig } from './helpers/extendStaticConfig'\nimport {\n ClassNamesObject,\n PseudoStyles,\n SplitStyleResult,\n getSplitStyles,\n} from './helpers/getSplitStyles'\nimport { getAllSelectors } from './helpers/insertStyleRule'\nimport { wrapThemeManagerContext } from './helpers/wrapThemeManagerContext'\nimport { useFeatures } from './hooks/useFeatures'\nimport { usePressable } from './hooks/usePressable'\nimport { getThemeManagerIfChanged, useTheme } from './hooks/useTheme'\nimport {\n SpaceTokens,\n StackProps,\n StaticConfig,\n StaticConfigParsed,\n TamaguiComponent,\n TamaguiComponentState,\n TamaguiInternalConfig,\n UseAnimationHook,\n} from './types'\nimport { TextAncestorContext } from './views/TextAncestorContext'\n\nReact['keep']\n\nexport const defaultComponentState: TamaguiComponentState = {\n hover: false,\n press: false,\n pressIn: false,\n focus: false,\n // only used by enterStyle\n mounted: false,\n animation: null,\n}\n\nexport const mouseUps = new Set<Function>()\nif (typeof document !== 'undefined') {\n document.addEventListener('mouseup', () => {\n mouseUps.forEach((x) => x())\n mouseUps.clear()\n })\n}\n\nexport function createComponent<\n ComponentPropTypes extends Object = {},\n Ref = View,\n BaseProps = never\n>(configIn: Partial<StaticConfig> | StaticConfigParsed) {\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, componentName } = staticConfig\n const componentClassName = `is_${componentName}`\n const validStyleProps = validStyles || stylePropsView\n\n // split out default styles vs props so we can assign it to component.defaultProps\n let tamaguiConfig: TamaguiInternalConfig\n let AnimatedText: any\n let AnimatedView: any\n let avoidClasses = true\n\n // web uses className, native uses style\n let defaultPseudos: PseudoStyles = {}\n let defaultNativeStyle: any\n let defaultNativeStyleSheet: StyleSheet.NamedStyles<{ base: {} }> | null = null\n let defaultsClassName: ClassNamesObject | null = null\n let initialTheme: any\n let defaultSplitStyleResult: SplitStyleResult | null = null\n\n function addPseudoToStyles(styles: any[], name: string, pseudos: any) {\n // on web use pseudo object { hoverStyle } to keep specificity with concatClassName\n const pseudoStyle = pseudos[name]\n if (pseudoStyle) {\n styles.push(isWeb ? { [name]: pseudoStyle } : pseudoStyle)\n }\n const defaultPseudoStyle = defaultPseudos[name]\n if (defaultPseudoStyle) {\n styles.push(isWeb ? { [name]: defaultPseudoStyle } : defaultPseudoStyle)\n }\n }\n\n // see onConfiguredOnce below which attaches a name then to this component\n const component = forwardRef<Ref, ComponentPropTypes>((props: any, forwardedRef) => {\n if (process.env.NODE_ENV === 'development') {\n if (props['debug']) {\n // prettier-ignore\n console.warn(componentName || Component?.displayName || Component?.name || '[Unnamed Component]', ' debug prop on:', { props: Object.entries(props) })\n if (props['debug'] === 'break') debugger\n }\n }\n\n const forceUpdate = useForceUpdate()\n const theme = useTheme(props.theme, componentName, props, forceUpdate)\n const [state, set_] = useState<TamaguiComponentState>(defaultComponentState)\n const setStateShallow = createShallowUpdate(set_)\n\n const shouldAvoidClasses = !!(props.animation && avoidClasses)\n const splitStyles = getSplitStyles(\n props,\n staticConfig,\n theme,\n shouldAvoidClasses ? { ...state, noClassNames: true, resolveVariablesAs: 'value' } : state,\n shouldAvoidClasses ? null : defaultsClassName\n )\n\n const { viewProps: viewPropsIn, pseudos, medias, style, classNames } = splitStyles\n const useAnimations = tamaguiConfig.animations?.useAnimations as UseAnimationHook | undefined\n const isAnimated = !!(useAnimations && props.animation)\n const hasEnterStyle = !!props.enterStyle\n\n const styleWithPseudos = props.animation\n ? merge(\n { ...defaultNativeStyle, ...style },\n state.hover && pseudos.hoverStyle,\n state.press && pseudos.pressStyle,\n state.focus && pseudos.focusStyle,\n hasEnterStyle && !state.mounted && pseudos.enterStyle,\n ...Object.values(medias)\n )\n : null\n\n const features = useFeatures(props, {\n forceUpdate,\n setStateShallow,\n useAnimations,\n state,\n style: styleWithPseudos,\n pseudos,\n })\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 nativeID,\n\n accessible,\n accessibilityRole,\n\n // android\n collapsable,\n focusable,\n\n // ignore from here on out\n theme: _themeProp,\n // @ts-ignore\n defaultVariants,\n\n // TODO feature load layout hook\n onLayout,\n ...viewPropsRest\n } = viewPropsIn\n\n let viewProps: StackProps = viewPropsRest\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 // isMounted\n const internal = useRef<{ isMounted: boolean }>()\n if (!internal.current) {\n internal.current = {\n isMounted: true,\n }\n }\n useEffect(() => {\n if (hasEnterStyle) {\n // we need to use state to properly have mounted go from false => true\n setStateShallow({\n mounted: true,\n })\n }\n internal.current!.isMounted = true\n return () => {\n mouseUps.delete(unPress)\n internal.current!.isMounted = false\n }\n }, [])\n\n if (nativeID) {\n viewProps.id = nativeID\n }\n\n if (isAndroid) {\n if (collapsable) viewProps.collapsable = collapsable\n if (focusable) viewProps.focusable = focusable\n }\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 // get the right component\n const isTaggable = !Component || typeof Component === 'string'\n\n // default to tag, fallback to component (when both strings)\n const element = isWeb ? (isTaggable ? tag || Component : Component) : Component\n const BaseTextComponent = !isWeb ? Text : element || 'span'\n const BaseViewComponent = !isWeb ? View : element || (hasTextAncestor ? 'span' : 'div')\n let ViewComponent = isText\n ? (isAnimated ? AnimatedText || Text : null) || BaseTextComponent\n : (isAnimated ? AnimatedView || View : null) || BaseViewComponent\n\n ViewComponent = Component || ViewComponent\n\n let styles: any[]\n\n const isStringElement = typeof ViewComponent === 'string'\n const animationStyles = state.animation ? state.animation.style : null\n\n if (isStringElement && shouldAvoidClasses) {\n styles = {\n ...defaultNativeStyle,\n ...animationStyles,\n ...medias,\n }\n } else {\n styles = [\n isWeb ? null : defaultNativeStyleSheet ? (defaultNativeStyleSheet.base as ViewStyle) : null,\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 animationStyles ? animationStyles : style,\n medias,\n ]\n if (!animationStyles) {\n state.hover && addPseudoToStyles(styles, 'hoverStyle', pseudos)\n state.focus && addPseudoToStyles(styles, 'focusStyle', pseudos)\n state.press && addPseudoToStyles(styles, 'pressStyle', pseudos)\n }\n }\n\n // TODO i think can still render this first part using reanimated\n // that way we get some of the classnames we probably want here (componentName/font/etc)\n // can just remove && !shouldAvoidClasses and add in a viewProps.style = styles in isWeb\n\n if (isWeb) {\n // const hasntSetInitialAnimationState = props.animation && !state.animation\n // const disableInsertStyles = hasntSetInitialAnimationState || shouldAvoidClasses || false\n // const stylesClassNames = useStylesAsClassname(\n // Array.isArray(styles) ? styles : [styles],\n // disableInsertStyles,\n // props.debug\n // )\n if (!shouldAvoidClasses) {\n const fontFamilyName = isText\n ? props.fontFamily || staticConfig.defaultProps.fontFamily\n : null\n const fontFamily =\n fontFamilyName && fontFamilyName[0] === '$' ? fontFamilyName.slice(1) : null\n const classList = [\n componentName ? componentClassName : '',\n fontFamily ? `font_${fontFamily}` : '',\n theme.className,\n classNames ? Object.values(classNames).join(' ') : '',\n ]\n\n // TODO restore this to isText classList\n // hasTextAncestor === true && cssText.textHasAncestor,\n // TODO MOVE TO VARIANTS [number] [any]\n // numberOfLines != null && numberOfLines > 1 && cssText.textMultiLine,\n\n const className = classList.join(' ')\n if (process.env.NODE_ENV === 'development') {\n if (props['debug']) {\n // prettier-ignore\n console.log(' \u00BB className', { isStringElement, pseudos, state, defaultsClassName, classNames, propsClassName: props.className, style, classList, className: className.trim().split(' '), themeClassName: theme.className, values: Object.fromEntries(Object.entries(classNames).map(([k, v]) => [v, getAllSelectors()[v]])) })\n }\n }\n viewProps.className = className\n viewProps.style = animationStyles\n } else {\n viewProps.style = styles\n }\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\n if (!isAnimated) {\n // @ts-ignore\n viewProps.ref = setRef\n } else {\n if (forwardedRef) {\n // @ts-ignore\n viewProps.ref = forwardedRef\n }\n }\n\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 // @ts-ignore\n viewProps.ref = forwardedRef\n }\n }\n\n // TODO need to loop active variants and see if they have matchin pseudos and apply as well\n const attachPress = !!((pseudos && pseudos.pressStyle) || onPress || onPressOut || onPressIn)\n const isHoverable = isWeb && !isTouchDevice\n const attachHover =\n isHoverable &&\n !!((pseudos && pseudos.hoverStyle) || onHoverIn || onHoverOut || onMouseEnter || onMouseLeave)\n const pressEventKey = isStringElement ? 'onClick' : 'onPress'\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 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 'onHoverIn' in props ||\n 'onHoverOut' in props ||\n 'onMouseEnter' in props ||\n 'onMouseLeave' in props))\n\n const unPress = useCallback(() => {\n if (!internal.current!.isMounted) return\n setStateShallow({\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 ...(isHoverable && {\n onMouseEnter: attachHover\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 setStateShallow(next)\n }\n onHoverIn?.(e)\n onMouseEnter?.(e)\n }\n : undefined,\n onMouseLeave: attachHover\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 setStateShallow(next)\n }\n onHoverOut?.(e)\n onMouseLeave?.(e)\n }\n : undefined,\n }),\n onMouseDown: attachPress\n ? (e) => {\n setStateShallow({\n press: true,\n pressIn: true,\n })\n onPressIn?.(e)\n onMouseDown?.(e)\n }\n : null,\n [pressEventKey]: attachPress\n ? (e) => {\n // this caused issue with next.js passing href\n // e.preventDefault()\n onPress?.(e)\n unPress()\n onPressOut?.(e)\n }\n : null,\n }\n : null\n\n let childEls = !children\n ? children\n : wrapThemeManagerContext(\n spacedChildren({\n children,\n space,\n flexDirection: props.flexDirection || staticConfig.defaultProps?.flexDirection,\n isZStack: isZStack,\n }),\n getThemeManagerIfChanged(theme)\n )\n\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 events\n ? {\n disabled,\n ...(hitSlop && {\n hitSlop,\n }),\n onPressIn: events.onMouseDown,\n onPressOut: events.onPressOut,\n onPress: events[pressEventKey],\n }\n : {\n disabled: true,\n }\n )\n\n let content: any\n\n // replicate react-native-web's `createElement`\n if (isWeb) {\n if (staticConfig.isReactNativeWeb) {\n viewProps.dataSet = {\n ...viewProps.dataSet,\n className: viewProps.className,\n }\n } else {\n const rnProps = rnw.createDOMProps(viewProps)\n const className =\n rnProps.className && rnProps.className !== viewProps.className\n ? `${rnProps.className} ${viewProps.className}`\n : viewProps.className\n\n // additive\n Object.assign(viewProps, rnProps)\n\n // we already handle Text/View properly\n if (className) {\n viewProps.className = className\n }\n }\n }\n\n if (events) {\n if (!isStringElement) {\n Object.assign(viewProps, pressProps)\n } else {\n Object.assign(viewProps, events)\n }\n }\n\n content = createElement(ViewComponent, viewProps, childEls)\n\n if (isWeb && events && attachHover) {\n content = (\n <span\n className=\"tui_Hoverable\"\n style={{\n display: 'contents',\n }}\n onMouseEnter={events.onMouseEnter}\n onMouseLeave={events.onMouseLeave}\n >\n {content}\n </span>\n )\n }\n\n if (process.env.NODE_ENV === 'development') {\n if (props['debug']) {\n viewProps['debug'] = true\n // prettier-ignore\n console.log(' \u00BB ', { propsIn: { ...props }, propsOut: { ...viewProps }, state, styleWithPseudos, splitStyles, defaultsClassName, animationStyles, isStringElement, classNamesIn: props.className?.split(' '), classNamesOut: viewProps.className?.split(' '), pressProps, events, shouldAttach, ViewComponent, viewProps, styles, pseudos, content, childEls, shouldAvoidClasses, avoidClasses, animation: props.animation, style, defaultNativeStyle, defaultSplitStyleResult, ...(typeof window !== 'undefined' ? { theme, themeState: theme.__state, themeClassName: theme.className, staticConfig, tamaguiConfig } : null) })\n }\n }\n\n if (features.length) {\n return (\n <>\n {features}\n {content}\n </>\n )\n }\n\n return content\n })\n\n // Once configuration is run and all components are registered\n // get default props + className and analyze styles\n onConfiguredOnce((conf) => {\n const shouldDebug = staticConfig.defaultProps?.debug\n tamaguiConfig = conf\n avoidClasses = !!tamaguiConfig.animations?.avoidClasses\n AnimatedText = tamaguiConfig.animations?.Text\n AnimatedView = tamaguiConfig?.animations?.View\n initialTheme = conf.themes[conf.defaultTheme || Object.keys(conf.themes)[0]]\n defaultSplitStyleResult = getSplitStyles(\n staticConfig.defaultProps,\n staticConfig,\n initialTheme,\n {\n mounted: true,\n resolveVariablesAs: 'both',\n }\n )\n\n const { classNames, pseudos, style, viewProps } = defaultSplitStyleResult\n\n if (isWeb) {\n defaultsClassName = classNames\n }\n\n // for use in animations + native\n defaultPseudos = pseudos\n defaultNativeStyle = {}\n for (const key in style) {\n const v = style[key]\n defaultNativeStyle[key] = isVariable(v) ? v.val : v\n }\n defaultNativeStyleSheet = StyleSheet.create({\n base: defaultNativeStyle,\n })\n\n component.displayName = staticConfig.componentName\n\n // @ts-ignore\n component.defaultProps = {\n ...viewProps,\n ...component.defaultProps,\n }\n\n // prettier-ignore\n if (process.env.NODE_ENV === 'development' && shouldDebug && process.env.IS_STATIC !== 'is_static') {\n // prettier-ignore\n console.log(`\uD83D\uDC1B [${staticConfig.componentName || 'Component'}]`, { staticConfig, ...defaultSplitStyleResult })\n }\n })\n\n let res: TamaguiComponent<ComponentPropTypes, Ref, BaseProps> = component as any\n\n if (configIn.memo) {\n res = memo(res) as any\n }\n\n res['staticConfig'] = {\n validStyles: validStyleProps,\n ...staticConfig,\n }\n\n // res.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\n// dont used styled() here to avoid circular deps\n// keep inline to avoid circular deps\n\nexport const Spacer = createComponent<\n Omit<StackProps, 'flex' | 'direction'> & {\n size?: number | SpaceTokens\n flex?: boolean | number\n direction?: 'horizontal' | 'vertical'\n }\n>({\n memo: true,\n defaultProps: {\n ...stackDefaultStyles,\n size: true,\n },\n variants: {\n size: {\n '...size': (size, { tokens }) => {\n size = size == true ? '$true' : size\n const sizePx = tokens.size[size] ?? size\n return {\n width: sizePx,\n height: sizePx,\n minWidth: sizePx,\n minHeight: sizePx,\n }\n },\n },\n\n flex: {\n true: {\n flex: 1,\n },\n },\n\n direction: {\n horizontal: {\n height: 0,\n minHeight: 0,\n },\n vertical: {\n width: 0,\n minWidth: 0,\n },\n },\n },\n})\n\nexport function spacedChildren({\n isZStack,\n children,\n space,\n flexDirection,\n spaceFlex,\n}: {\n isZStack?: boolean\n children: any\n space?: any\n spaceFlex?: boolean | number\n flexDirection?: ViewStyle['flexDirection']\n}) {\n const childrenList = Children.toArray(children)\n const len = childrenList.length\n if (len === 1) {\n return childrenList\n }\n const next: any[] = []\n for (const [index, child] of childrenList.entries()) {\n if (child === null || child === undefined) {\n continue\n }\n\n if (!child || (child['key'] && !isZStack)) {\n next.push(child)\n } else {\n next.push(\n <Fragment key={index}>{isZStack ? <AbsoluteFill>{child}</AbsoluteFill> : child}</Fragment>\n )\n }\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={`_${index}_spacer`}\n direction={\n flexDirection === 'row' || flexDirection === 'row-reverse' ? 'horizontal' : 'vertical'\n }\n size={space}\n {...(spaceFlex && {\n flex: spaceFlex,\n })}\n />\n )\n }\n }\n }\n return next\n}\n\n// TODO this can be removed likey for bundle size, didnt help reanimated fix as i thought\nconst merge = (...styles: (ViewStyle | null | false | undefined)[]) => {\n // ensure transforms get merged without duplicates:\n // so if you have a:\n // transform: [{ scale: 1 }]\n // rest[0]:\n // transform: [{ scale: 1.1 }]\n // it gets properly merged so that rest[0] overwrites a\n if (!styles[0]) return // never happens\n const res: ViewStyle = {}\n\n const len = styles.length\n for (let i = len - 1; i >= 0; i--) {\n const cur = styles[i]\n if (!cur) continue\n\n for (const key in cur) {\n const val = cur[key]\n if (key !== 'transform') {\n if (!(key in res)) {\n res[key] = val\n }\n continue\n }\n if (!res.transform) {\n res.transform = val\n continue\n }\n // transform\n for (const t of val) {\n const tkey = Object.keys(t)[0]\n if (res.transform.find((existing) => tkey in existing)) {\n continue\n }\n res.transform.push(t)\n }\n }\n }\n\n return res\n}\n\nexport const AbsoluteFill = (props: any) =>\n isWeb ? (\n <div\n style={\n {\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n } as any\n }\n >\n {props.children}\n </div>\n ) : (\n <View style={StyleSheet.absoluteFill}>{props.child}</View>\n )\n\n// this can be done with CSS entirely right?\n// const shouldWrapTextAncestor = isWeb && isText && !hasTextAncestor\n// if (shouldWrapTextAncestor) {\n// // from react-native-web\n// content = createElement(TextAncestorContext.Provider, { value: true }, content)\n// }\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=createShallowUpdate.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": [],
4
+ "sourcesContent": [],
5
+ "mappings": "",
6
+ "names": []
7
+ }
@@ -1,31 +1 @@
1
- var __defProp = Object.defineProperty;
2
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
- var __getOwnPropNames = Object.getOwnPropertyNames;
4
- var __hasOwnProp = Object.prototype.hasOwnProperty;
5
- var __export = (target, all) => {
6
- for (var name in all)
7
- __defProp(target, name, { get: all[name], enumerable: true });
8
- };
9
- var __copyProps = (to, from, except, desc) => {
10
- if (from && typeof from === "object" || typeof from === "function") {
11
- for (let key of __getOwnPropNames(from))
12
- if (!__hasOwnProp.call(to, key) && key !== except)
13
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
- }
15
- return to;
16
- };
17
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
- var defaultComponentState_exports = {};
19
- __export(defaultComponentState_exports, {
20
- defaultComponentState: () => defaultComponentState
21
- });
22
- module.exports = __toCommonJS(defaultComponentState_exports);
23
- const defaultComponentState = {
24
- hover: false,
25
- press: false,
26
- pressIn: false,
27
- focus: false,
28
- mounted: false,
29
- animation: null
30
- };
31
1
  //# sourceMappingURL=defaultComponentState.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../src/defaultComponentState.tsx"],
4
- "sourcesContent": ["export type ComponentState = typeof defaultComponentState\n\nexport const defaultComponentState = {\n hover: false,\n press: false,\n pressIn: false,\n focus: false,\n // only used by enterStyle\n mounted: false,\n animation: null as null | {\n style?: any\n avoidClasses?: boolean\n },\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAEO,MAAM,wBAAwB;AAAA,EACnC,OAAO;AAAA,EACP,OAAO;AAAA,EACP,SAAS;AAAA,EACT,OAAO;AAAA,EAEP,SAAS;AAAA,EACT,WAAW;AAIb;",
3
+ "sources": [],
4
+ "sourcesContent": [],
5
+ "mappings": "",
6
6
  "names": []
7
7
  }
@@ -0,0 +1,32 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __defProps = Object.defineProperties;
3
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
4
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
7
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
8
+ var __spreadValues = (a, b) => {
9
+ for (var prop in b || (b = {}))
10
+ if (__hasOwnProp.call(b, prop))
11
+ __defNormalProp(a, prop, b[prop]);
12
+ if (__getOwnPropSymbols)
13
+ for (var prop of __getOwnPropSymbols(b)) {
14
+ if (__propIsEnum.call(b, prop))
15
+ __defNormalProp(a, prop, b[prop]);
16
+ }
17
+ return a;
18
+ };
19
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
20
+ var import_conf = require("./conf");
21
+ var import_insertStyleRule = require("./helpers/insertStyleRule");
22
+ (0, import_conf.onConfiguredOnce)((conf) => {
23
+ if (globalThis["Tamagui"]) {
24
+ return;
25
+ }
26
+ globalThis["Tamagui"] = __spreadProps(__spreadValues({}, conf), {
27
+ get insertedCSS() {
28
+ return import_insertStyleRule.insertedSelectors;
29
+ }
30
+ });
31
+ });
32
+ //# sourceMappingURL=devtools.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/devtools.ts"],
4
+ "sourcesContent": ["import { onConfiguredOnce } from './conf'\nimport { insertedSelectors } from './helpers/insertStyleRule'\n\nonConfiguredOnce((conf) => {\n if (globalThis['Tamagui']) {\n return\n }\n globalThis['Tamagui'] = {\n ...conf,\n get insertedCSS() {\n return insertedSelectors\n },\n }\n})\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;AAAA,kBAAiC;AACjC,6BAAkC;AAElC,kCAAiB,CAAC,SAAS;AACzB,MAAI,WAAW,YAAY;AACzB;AAAA,EACF;AACA,aAAW,aAAa,iCACnB,OADmB;AAAA,QAElB,cAAc;AAChB,aAAO;AAAA,IACT;AAAA,EACF;AACF,CAAC;",
6
+ "names": []
7
+ }
@@ -0,0 +1,34 @@
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getProtoOf = Object.getPrototypeOf;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all)
9
+ __defProp(target, name, { get: all[name], enumerable: true });
10
+ };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from))
14
+ if (!__hasOwnProp.call(to, key) && key !== except)
15
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
+ }
17
+ return to;
18
+ };
19
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, mod));
20
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
21
+ var RNComponents_exports = {};
22
+ __export(RNComponents_exports, {
23
+ RNComponents: () => RNComponents
24
+ });
25
+ module.exports = __toCommonJS(RNComponents_exports);
26
+ var ReactNative = __toESM(require("react-native"));
27
+ const RNComponents = /* @__PURE__ */ new WeakMap();
28
+ for (const key of ["Image", "TextInput", "Text", "View"]) {
29
+ const val = ReactNative[key];
30
+ if (val && typeof val === "object") {
31
+ RNComponents.set(val, true);
32
+ }
33
+ }
34
+ //# sourceMappingURL=RNComponents.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/helpers/RNComponents.tsx"],
4
+ "sourcesContent": ["import * as ReactNative from 'react-native'\n\n// bye bye tree shaking... but only way to properly detect react-native components...\n// also neither rnw nor react support tree shaking atm\nexport const RNComponents = new WeakMap()\n\n// I was looping over all of them, but casuses deprecation warnings and there's only a few\n// we realistically support - lets whitelist rather than blacklist\nfor (const key of ['Image', 'TextInput', 'Text', 'View']) {\n const val = ReactNative[key]\n if (val && typeof val === 'object') {\n RNComponents.set(val, true)\n }\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kBAA6B;AAItB,MAAM,eAAe,oBAAI,QAAQ;AAIxC,WAAW,OAAO,CAAC,SAAS,aAAa,QAAQ,MAAM,GAAG;AACxD,QAAM,MAAM,YAAY;AACxB,MAAI,OAAO,OAAO,QAAQ,UAAU;AAClC,iBAAa,IAAI,KAAK,IAAI;AAAA,EAC5B;AACF;",
6
+ "names": []
7
+ }
@@ -35,6 +35,8 @@ const createMediaStyle = /* @__PURE__ */ __name(({ identifier, rules }, mediaKey
35
35
  const mediaSelector = (0, import_useMedia.mediaObjectToString)(mediaQueries[mediaKey]);
36
36
  const mediaQuery = `${screenStr} and ${mediaSelector}`;
37
37
  const styleInner = rules[0].replace(identifier, nextIdentifier);
38
+ if (styleInner.includes("2:r;"))
39
+ debugger;
38
40
  let styleRule = "";
39
41
  if (styleInner.includes("@media")) {
40
42
  styleRule = styleInner.replace("{", ` and ${mediaQuery} {`);
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/helpers/createMediaStyle.ts"],
4
- "sourcesContent": ["import { StyleObject } from '@tamagui/helpers'\n\nimport { mediaObjectToString } from '../hooks/useMedia'\nimport { MediaQueries } from '../types'\n\n// TODO have this be used by extractMediaStyle in tamagui static\n// not synced to static/constants for now\nexport const MEDIA_SEP = '_'\n\nexport const createMediaStyle = (\n { identifier, rules }: StyleObject,\n mediaKey: string,\n mediaQueries: MediaQueries,\n negate?: boolean,\n importance?: number\n) => {\n const mediaKeys = Object.keys(mediaQueries)\n const importance_ = Math.max(\n 0,\n importance == undefined ? mediaKeys.indexOf(mediaKey) : importance || 0\n )\n const precendencePrefix = new Array(importance_ + 1).fill(':root').join('')\n const negKey = negate ? '0' : ''\n const ogPrefix = identifier.slice(0, identifier.indexOf('-') + 1)\n const nextIdentifier = `${identifier.replace(\n ogPrefix,\n `${ogPrefix}${MEDIA_SEP}${mediaKey}${negKey}${MEDIA_SEP}`\n )}`\n const screenStr = negate ? 'not all' : 'screen'\n const mediaSelector = mediaObjectToString(mediaQueries[mediaKey])\n const mediaQuery = `${screenStr} and ${mediaSelector}`\n const styleInner = rules[0].replace(identifier, nextIdentifier)\n // combines media queries if they already exist\n let styleRule = ''\n if (styleInner.includes('@media')) {\n // combine\n styleRule = styleInner.replace('{', ` and ${mediaQuery} {`)\n } else {\n styleRule = `@media ${mediaQuery} { ${precendencePrefix} ${styleInner} }`\n }\n return {\n styleRule,\n identifier: nextIdentifier,\n }\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,sBAAoC;AAK7B,MAAM,YAAY;AAElB,MAAM,mBAAmB,wBAC9B,EAAE,YAAY,SACd,UACA,cACA,QACA,eACG;AACH,QAAM,YAAY,OAAO,KAAK,YAAY;AAC1C,QAAM,cAAc,KAAK,IACvB,GACA,cAAc,SAAY,UAAU,QAAQ,QAAQ,IAAI,cAAc,CACxE;AACA,QAAM,oBAAoB,IAAI,MAAM,cAAc,CAAC,EAAE,KAAK,OAAO,EAAE,KAAK,EAAE;AAC1E,QAAM,SAAS,SAAS,MAAM;AAC9B,QAAM,WAAW,WAAW,MAAM,GAAG,WAAW,QAAQ,GAAG,IAAI,CAAC;AAChE,QAAM,iBAAiB,GAAG,WAAW,QACnC,UACA,GAAG,WAAW,YAAY,WAAW,SAAS,WAChD;AACA,QAAM,YAAY,SAAS,YAAY;AACvC,QAAM,gBAAgB,yCAAoB,aAAa,SAAS;AAChE,QAAM,aAAa,GAAG,iBAAiB;AACvC,QAAM,aAAa,MAAM,GAAG,QAAQ,YAAY,cAAc;AAE9D,MAAI,YAAY;AAChB,MAAI,WAAW,SAAS,QAAQ,GAAG;AAEjC,gBAAY,WAAW,QAAQ,KAAK,QAAQ,cAAc;AAAA,EAC5D,OAAO;AACL,gBAAY,UAAU,gBAAgB,qBAAqB;AAAA,EAC7D;AACA,SAAO;AAAA,IACL;AAAA,IACA,YAAY;AAAA,EACd;AACF,GAnCgC;",
4
+ "sourcesContent": ["import { StyleObject } from '@tamagui/helpers'\n\nimport { mediaObjectToString } from '../hooks/useMedia'\nimport { MediaQueries } from '../types'\n\n// TODO have this be used by extractMediaStyle in tamagui static\n// not synced to static/constants for now\nexport const MEDIA_SEP = '_'\n\nexport const createMediaStyle = (\n { identifier, rules }: StyleObject,\n mediaKey: string,\n mediaQueries: MediaQueries,\n negate?: boolean,\n importance?: number\n) => {\n const mediaKeys = Object.keys(mediaQueries)\n const importance_ = Math.max(\n 0,\n importance == undefined ? mediaKeys.indexOf(mediaKey) : importance || 0\n )\n const precendencePrefix = new Array(importance_ + 1).fill(':root').join('')\n const negKey = negate ? '0' : ''\n const ogPrefix = identifier.slice(0, identifier.indexOf('-') + 1)\n const nextIdentifier = `${identifier.replace(\n ogPrefix,\n `${ogPrefix}${MEDIA_SEP}${mediaKey}${negKey}${MEDIA_SEP}`\n )}`\n const screenStr = negate ? 'not all' : 'screen'\n const mediaSelector = mediaObjectToString(mediaQueries[mediaKey])\n const mediaQuery = `${screenStr} and ${mediaSelector}`\n const styleInner = rules[0].replace(identifier, nextIdentifier)\n if (styleInner.includes('2:r;')) debugger\n // combines media queries if they already exist\n let styleRule = ''\n if (styleInner.includes('@media')) {\n // combine\n styleRule = styleInner.replace('{', ` and ${mediaQuery} {`)\n } else {\n styleRule = `@media ${mediaQuery} { ${precendencePrefix} ${styleInner} }`\n }\n return {\n styleRule,\n identifier: nextIdentifier,\n }\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,sBAAoC;AAK7B,MAAM,YAAY;AAElB,MAAM,mBAAmB,wBAC9B,EAAE,YAAY,SACd,UACA,cACA,QACA,eACG;AACH,QAAM,YAAY,OAAO,KAAK,YAAY;AAC1C,QAAM,cAAc,KAAK,IACvB,GACA,cAAc,SAAY,UAAU,QAAQ,QAAQ,IAAI,cAAc,CACxE;AACA,QAAM,oBAAoB,IAAI,MAAM,cAAc,CAAC,EAAE,KAAK,OAAO,EAAE,KAAK,EAAE;AAC1E,QAAM,SAAS,SAAS,MAAM;AAC9B,QAAM,WAAW,WAAW,MAAM,GAAG,WAAW,QAAQ,GAAG,IAAI,CAAC;AAChE,QAAM,iBAAiB,GAAG,WAAW,QACnC,UACA,GAAG,WAAW,YAAY,WAAW,SAAS,WAChD;AACA,QAAM,YAAY,SAAS,YAAY;AACvC,QAAM,gBAAgB,yCAAoB,aAAa,SAAS;AAChE,QAAM,aAAa,GAAG,iBAAiB;AACvC,QAAM,aAAa,MAAM,GAAG,QAAQ,YAAY,cAAc;AAC9D,MAAI,WAAW,SAAS,MAAM;AAAG;AAEjC,MAAI,YAAY;AAChB,MAAI,WAAW,SAAS,QAAQ,GAAG;AAEjC,gBAAY,WAAW,QAAQ,KAAK,QAAQ,cAAc;AAAA,EAC5D,OAAO;AACL,gBAAY,UAAU,gBAAgB,qBAAqB;AAAA,EAC7D;AACA,SAAO;AAAA,IACL;AAAA,IACA,YAAY;AAAA,EACd;AACF,GApCgC;",
6
6
  "names": []
7
7
  }