@tamagui/core 1.0.1-beta.152 → 1.0.1-beta.155

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 (56) hide show
  1. package/dist/cjs/createComponent.js +13 -11
  2. package/dist/cjs/createComponent.js.map +2 -2
  3. package/dist/cjs/helpers/getSplitStyles.js.map +1 -1
  4. package/dist/cjs/helpers/getStylesAtomic.js.map +1 -1
  5. package/dist/cjs/helpers/getThemeCSSRules.js +2 -1
  6. package/dist/cjs/helpers/getThemeCSSRules.js.map +2 -2
  7. package/dist/cjs/helpers/mergeTransform.js.map +1 -1
  8. package/dist/cjs/styled.js +5 -4
  9. package/dist/cjs/styled.js.map +2 -2
  10. package/dist/esm/createComponent.js +14 -12
  11. package/dist/esm/createComponent.js.map +2 -2
  12. package/dist/esm/helpers/getSplitStyles.js.map +1 -1
  13. package/dist/esm/helpers/getStylesAtomic.js.map +1 -1
  14. package/dist/esm/helpers/getThemeCSSRules.js +2 -1
  15. package/dist/esm/helpers/getThemeCSSRules.js.map +2 -2
  16. package/dist/esm/helpers/mergeTransform.js.map +1 -1
  17. package/dist/esm/styled.js +5 -4
  18. package/dist/esm/styled.js.map +2 -2
  19. package/package.json +11 -11
  20. package/src/createComponent.tsx +17 -14
  21. package/src/helpers/getSplitStyles.tsx +1 -1
  22. package/src/helpers/getStylesAtomic.ts +1 -1
  23. package/src/helpers/getThemeCSSRules.ts +2 -2
  24. package/src/helpers/mergeTransform.ts +1 -1
  25. package/src/styled.tsx +5 -5
  26. package/types/helpers/getSplitStyles.d.ts +1 -1
  27. package/types/helpers/getStylesAtomic.d.ts +1 -1
  28. package/types/helpers/mergeTransform.d.ts +1 -1
  29. package/dist/cjs/conf.js +0 -70
  30. package/dist/cjs/conf.js.map +0 -7
  31. package/dist/cjs/createComponent.server.js +0 -431
  32. package/dist/cjs/createComponent.server.js.map +0 -7
  33. package/dist/cjs/helpers/cssHash.js +0 -51
  34. package/dist/cjs/helpers/cssHash.js.map +0 -7
  35. package/dist/cjs/helpers/useAnimationDriver.js +0 -2
  36. package/dist/cjs/helpers/useAnimationDriver.js.map +0 -7
  37. package/dist/cjs/hooks/useAnimationDriver.js +0 -2
  38. package/dist/cjs/hooks/useAnimationDriver.js.map +0 -7
  39. package/dist/cjs/hooks/useFeatures.js +0 -89
  40. package/dist/cjs/hooks/useFeatures.js.map +0 -7
  41. package/dist/cjs/hooks/useServerContext.js +0 -21
  42. package/dist/cjs/hooks/useServerContext.js.map +0 -7
  43. package/dist/esm/conf.js +0 -39
  44. package/dist/esm/conf.js.map +0 -7
  45. package/dist/esm/createComponent.server.js +0 -408
  46. package/dist/esm/createComponent.server.js.map +0 -7
  47. package/dist/esm/helpers/cssHash.js +0 -27
  48. package/dist/esm/helpers/cssHash.js.map +0 -7
  49. package/dist/esm/helpers/useAnimationDriver.js +0 -1
  50. package/dist/esm/helpers/useAnimationDriver.js.map +0 -7
  51. package/dist/esm/hooks/useAnimationDriver.js +0 -1
  52. package/dist/esm/hooks/useAnimationDriver.js.map +0 -7
  53. package/dist/esm/hooks/useFeatures.js +0 -62
  54. package/dist/esm/hooks/useFeatures.js.map +0 -7
  55. package/dist/esm/hooks/useServerContext.js +0 -4
  56. package/dist/esm/hooks/useServerContext.js.map +0 -7
@@ -1,431 +0,0 @@
1
- "use strict";
2
- var __create = Object.create;
3
- var __defProp = Object.defineProperty;
4
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
- var __getOwnPropNames = Object.getOwnPropertyNames;
6
- var __getProtoOf = Object.getPrototypeOf;
7
- var __hasOwnProp = Object.prototype.hasOwnProperty;
8
- var __export = (target, all) => {
9
- for (var name in all)
10
- __defProp(target, name, { get: all[name], enumerable: true });
11
- };
12
- var __copyProps = (to, from, except, desc) => {
13
- if (from && typeof from === "object" || typeof from === "function") {
14
- for (let key of __getOwnPropNames(from))
15
- if (!__hasOwnProp.call(to, key) && key !== except)
16
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
- }
18
- return to;
19
- };
20
- 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));
21
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
22
- var createComponent_server_exports = {};
23
- __export(createComponent_server_exports, {
24
- Spacer: () => Spacer,
25
- Unspaced: () => Unspaced,
26
- accessibilityRoleToWebRole: () => accessibilityRoleToWebRole,
27
- createComponent: () => createComponent,
28
- mouseUps: () => mouseUps,
29
- processIDRefList: () => processIDRefList,
30
- spacedChildren: () => spacedChildren
31
- });
32
- module.exports = __toCommonJS(createComponent_server_exports);
33
- var import_helpers = require("@tamagui/helpers");
34
- var import_use_force_update = require("@tamagui/use-force-update");
35
- var import_react = __toESM(require("react"));
36
- var import_react_native = require("react-native");
37
- var import_conf = require("./conf");
38
- var import_constants = require("./constants/constants");
39
- var import_platform = require("./constants/platform");
40
- var import_FontLanguageContext = require("./contexts/FontLanguageContext");
41
- var import_TextAncestorContext = require("./contexts/TextAncestorContext");
42
- var import_extendStaticConfig = require("./helpers/extendStaticConfig");
43
- var import_getSplitStyles = require("./helpers/getSplitStyles");
44
- var import_mergeProps = require("./helpers/mergeProps");
45
- var import_proxyThemeVariables = require("./helpers/proxyThemeVariables");
46
- var import_useTheme = require("./hooks/useTheme");
47
- const import_meta = {};
48
- import_react.default["keep"];
49
- const isRSC = import_meta.env.SSR;
50
- const defaultComponentState = Object.freeze({
51
- hover: false,
52
- press: false,
53
- pressIn: false,
54
- focus: false,
55
- mounted: false,
56
- animation: null
57
- });
58
- const mouseUps = /* @__PURE__ */ new Set();
59
- if (typeof document !== "undefined") {
60
- const cancelTouches = () => {
61
- mouseUps.forEach((x) => x());
62
- mouseUps.clear();
63
- };
64
- document.addEventListener("mouseup", cancelTouches);
65
- document.addEventListener("touchend", cancelTouches);
66
- document.addEventListener("touchcancel", cancelTouches);
67
- }
68
- function mergeShorthands({ defaultProps }, { shorthands }) {
69
- for (const key in defaultProps) {
70
- defaultProps[shorthands[key] || key] = defaultProps[key];
71
- }
72
- }
73
- let initialTheme;
74
- let config;
75
- function createComponent(configIn, ParentComponent) {
76
- const staticConfig = (() => {
77
- const next = (0, import_extendStaticConfig.extendStaticConfig)(configIn, ParentComponent);
78
- if ("parsed" in next) {
79
- return next;
80
- } else {
81
- return (0, import_extendStaticConfig.parseStaticConfig)(next);
82
- }
83
- })();
84
- const defaultComponentClassName = `is_${staticConfig.componentName}`;
85
- let tamaguiConfig;
86
- let AnimatedText;
87
- let AnimatedView;
88
- let avoidClasses = true;
89
- let defaultNativeStyle;
90
- let defaultNativeStyleSheet;
91
- let tamaguiDefaultProps;
92
- let initialSplitStyles;
93
- const component = (0, import_react.forwardRef)((propsIn, forwardedRef) => {
94
- let props;
95
- if (tamaguiDefaultProps && !propsIn.asChild) {
96
- props = (0, import_mergeProps.mergeProps)(tamaguiDefaultProps, propsIn)[0];
97
- } else {
98
- props = propsIn;
99
- }
100
- const { Component, isText, isZStack } = staticConfig;
101
- const componentName = props.componentName || staticConfig.componentName;
102
- const componentClassName = props.asChild ? "" : props.componentName ? `is_${props.componentName}` : defaultComponentClassName;
103
- if (process.env.NODE_ENV === "development") {
104
- if (props["debug"]) {
105
- const name = `${componentName || (Component == null ? void 0 : Component.displayName) || (Component == null ? void 0 : Component.name) || "[Unnamed Component]"}`;
106
- const banner = `${name} ${propsIn["data-is"] || ""}`;
107
- console.group(`%c \u{1F41B} ${banner}`, "background: yellow;");
108
- console.log("props", propsIn);
109
- if (props["debug"] === "break") {
110
- debugger;
111
- }
112
- }
113
- }
114
- const forceUpdate = (0, import_use_force_update.useForceUpdate)();
115
- config = config || (0, import_conf.getConfig)();
116
- const theme = (0, import_useTheme.useTheme)(props.theme, componentName, props, forceUpdate);
117
- const states = isRSC ? [defaultComponentState, null] : (0, import_react.useState)(defaultComponentState);
118
- const state = propsIn.forceStyle ? { ...states[0], [propsIn.forceStyle]: true } : states[0];
119
- const shouldAvoidClasses = !!(props.animation && avoidClasses);
120
- const shouldForcePseudo = !!propsIn.forceStyle;
121
- const hasTextAncestor = !!(import_platform.isWeb && isText ? (0, import_react.useContext)(import_TextAncestorContext.TextAncestorContext) : false);
122
- const splitStyleState = !shouldAvoidClasses && !shouldForcePseudo ? {
123
- ...state,
124
- hasTextAncestor,
125
- dynamicStylesInline: true
126
- } : {
127
- ...state,
128
- noClassNames: true,
129
- dynamicStylesInline: true,
130
- hasTextAncestor,
131
- resolveVariablesAs: "value"
132
- };
133
- const languageContext = isRSC ? null : (0, import_react.useContext)(import_FontLanguageContext.FontLanguageContext);
134
- const splitStyles = (0, import_getSplitStyles.useSplitStyles)(props, staticConfig, theme, splitStyleState, props.asChild ? null : initialSplitStyles == null ? void 0 : initialSplitStyles.classNames, languageContext || void 0, props["debug"]);
135
- console.log("hi2");
136
- return propsIn.children;
137
- });
138
- if (staticConfig.componentName) {
139
- component.displayName = staticConfig.componentName;
140
- }
141
- (0, import_conf.onConfiguredOnce)((conf) => {
142
- if (isRSC)
143
- return;
144
- if (process.env.IS_STATIC === "is_static")
145
- return;
146
- tamaguiConfig = conf;
147
- mergeShorthands(staticConfig, tamaguiConfig);
148
- if (tamaguiConfig.animations) {
149
- avoidClasses = !!tamaguiConfig.animations.avoidClasses;
150
- AnimatedText = tamaguiConfig.animations.Text;
151
- AnimatedView = tamaguiConfig.animations.View;
152
- }
153
- initialTheme = initialTheme || (0, import_proxyThemeVariables.proxyThemeVariables)(conf.themes[conf.defaultTheme || Object.keys(conf.themes)[0]]);
154
- config = (0, import_conf.getConfig)();
155
- let defaultPropsIn = staticConfig.defaultProps || {};
156
- const parentNames = [...staticConfig.parentNames || [], staticConfig.componentName];
157
- if (config.defaultProps && parentNames && staticConfig.componentName) {
158
- defaultPropsIn = mergeConfigDefaultProps(staticConfig.componentName, defaultPropsIn, config.defaultProps, parentNames, conf);
159
- }
160
- const debug = true ? defaultPropsIn["debug"] : false;
161
- if (process.env.NODE_ENV === "development" && debug === "break") {
162
- debugger;
163
- }
164
- const [parentProps, parentClassNames] = (0, import_mergeProps.mergeProps)(defaultPropsIn, {}, true);
165
- initialSplitStyles = (0, import_getSplitStyles.insertSplitStyles)(parentProps, staticConfig, initialTheme, {
166
- mounted: true,
167
- hover: false,
168
- press: false,
169
- pressIn: false,
170
- focus: false,
171
- resolveVariablesAs: "both",
172
- keepVariantsAsProps: true
173
- }, void 0, void 0, debug);
174
- const [defaults, defaultsClassnames] = (0, import_mergeProps.mergeProps)(component.defaultProps, initialSplitStyles.viewProps, true);
175
- initialSplitStyles.classNames = {
176
- ...parentClassNames,
177
- ...defaultsClassnames,
178
- ...initialSplitStyles.classNames
179
- };
180
- defaultNativeStyle = {};
181
- const validStyles2 = staticConfig.validStyles || import_helpers.stylePropsView;
182
- if (!import_platform.isWeb) {
183
- for (const key in staticConfig.defaultProps) {
184
- const val = staticConfig.defaultProps[key];
185
- if (import_helpers.validPseudoKeys[key])
186
- continue;
187
- if (typeof val === "string" && val[0] === "$" || !validStyles2[key]) {
188
- defaults[key] = val;
189
- } else {
190
- defaultNativeStyle[key] = val;
191
- }
192
- }
193
- }
194
- defaultNativeStyleSheet = import_react_native.StyleSheet.create({
195
- base: defaultNativeStyle
196
- });
197
- if (Object.keys(defaults).length) {
198
- tamaguiDefaultProps = defaults;
199
- }
200
- if (process.env.NODE_ENV === "development" && debug) {
201
- if (process.env.IS_STATIC !== "is_static") {
202
- console.log(`\u{1F41B} [${staticConfig.componentName || "Component"}]`, {
203
- staticConfig,
204
- initialSplitStyles,
205
- tamaguiDefaultProps,
206
- defaultNativeStyle,
207
- defaults,
208
- defaultPropsIn
209
- });
210
- }
211
- }
212
- });
213
- let res = component;
214
- if (configIn.memo) {
215
- res = (0, import_react.memo)(res);
216
- }
217
- res.staticConfig = {
218
- validStyles: staticConfig.validStyles || import_helpers.stylePropsView,
219
- ...staticConfig
220
- };
221
- res.extractable = (Component, conf) => {
222
- Component.staticConfig = (0, import_extendStaticConfig.extendStaticConfig)({
223
- Component,
224
- ...conf,
225
- neverFlatten: true,
226
- isExtractable: true,
227
- defaultProps: {
228
- ...Component.defaultProps,
229
- ...conf == null ? void 0 : conf.defaultProps
230
- }
231
- }, res);
232
- return Component;
233
- };
234
- return res;
235
- }
236
- const Unspaced = (props) => {
237
- return props.children;
238
- };
239
- Unspaced["isUnspaced"] = true;
240
- const Spacer = createComponent({
241
- memo: true,
242
- componentName: "Spacer",
243
- validStyles: import_helpers.validStyles,
244
- defaultProps: {
245
- ...import_constants.stackDefaultStyles,
246
- size: true
247
- },
248
- variants: {
249
- size: {
250
- "...size": (size, { tokens }) => {
251
- size = size == true ? "$true" : size;
252
- const sizePx = tokens.space[size] ?? size;
253
- return {
254
- width: sizePx,
255
- height: sizePx,
256
- minWidth: sizePx,
257
- minHeight: sizePx
258
- };
259
- }
260
- },
261
- flex: {
262
- true: {
263
- flexGrow: 1
264
- }
265
- },
266
- direction: {
267
- horizontal: {
268
- height: 0,
269
- minHeight: 0
270
- },
271
- vertical: {
272
- width: 0,
273
- minWidth: 0
274
- },
275
- both: {}
276
- }
277
- },
278
- defaultVariants: {
279
- direction: "both"
280
- }
281
- });
282
- function spacedChildren({
283
- isZStack,
284
- children,
285
- space,
286
- direction,
287
- spaceFlex,
288
- separator
289
- }) {
290
- const hasSpace = !!(space || spaceFlex);
291
- const hasSeparator = !(separator === void 0 || separator === null);
292
- if (!hasSpace && !hasSeparator && !isZStack) {
293
- return children;
294
- }
295
- const childrenList = import_react.Children.toArray(children);
296
- if (childrenList.length <= 1 && !isZStack) {
297
- return childrenList;
298
- }
299
- const final = [];
300
- for (const [index, child] of childrenList.entries()) {
301
- const isEmpty = child === null || child === void 0 || Array.isArray(child) && child.length === 0;
302
- if (isEmpty || !child || child["key"] && !isZStack) {
303
- final.push(child);
304
- } else {
305
- final.push(/* @__PURE__ */ import_react.default.createElement(import_react.Fragment, {
306
- key: index
307
- }, isZStack ? /* @__PURE__ */ import_react.default.createElement(AbsoluteFill, null, child) : child));
308
- }
309
- if (isUnspaced(child) && index === 0) {
310
- continue;
311
- }
312
- if (isZStack) {
313
- continue;
314
- }
315
- const next = childrenList[index + 1];
316
- if (next && !isUnspaced(next)) {
317
- if (separator) {
318
- if (hasSpace) {
319
- final.push(createSpacer({
320
- key: `_${index}_before_sep_spacer`,
321
- direction,
322
- space,
323
- spaceFlex
324
- }));
325
- }
326
- final.push(import_react.default.isValidElement(separator) ? import_react.default.cloneElement(separator, { key: `sep_${index}` }) : separator);
327
- if (hasSpace) {
328
- final.push(createSpacer({
329
- key: `_${index}_after_sep_spacer`,
330
- direction,
331
- space,
332
- spaceFlex
333
- }));
334
- }
335
- } else {
336
- final.push(createSpacer({
337
- key: `_${index}_spacer`,
338
- direction,
339
- space,
340
- spaceFlex
341
- }));
342
- }
343
- }
344
- }
345
- return final;
346
- }
347
- function createSpacer({ key, direction, space, spaceFlex }) {
348
- return /* @__PURE__ */ import_react.default.createElement(Spacer, {
349
- key,
350
- size: space,
351
- direction,
352
- ...spaceFlex && {
353
- flex: spaceFlex
354
- }
355
- });
356
- }
357
- function isUnspaced(child) {
358
- var _a, _b;
359
- return ((_a = child == null ? void 0 : child["type"]) == null ? void 0 : _a["isVisuallyHidden"]) || ((_b = child == null ? void 0 : child["type"]) == null ? void 0 : _b["isUnspaced"]);
360
- }
361
- function AbsoluteFill(props) {
362
- return /* @__PURE__ */ import_react.default.createElement(import_react_native.View, {
363
- pointerEvents: "box-none",
364
- style: import_react_native.StyleSheet.absoluteFill
365
- }, props.children);
366
- }
367
- function processIDRefList(idRefList) {
368
- return Array.isArray(idRefList) ? idRefList.join(" ") : idRefList;
369
- }
370
- const accessibilityRoleToWebRole = {
371
- adjustable: "slider",
372
- button: "button",
373
- header: "heading",
374
- image: "img",
375
- imagebutton: null,
376
- keyboardkey: null,
377
- label: null,
378
- link: "link",
379
- none: "presentation",
380
- search: "search",
381
- summary: "region",
382
- text: null
383
- };
384
- function addPseudoToStyles(styles, initialPseudos, pseudos, name, force = false) {
385
- const pseudoStyle = pseudos[name];
386
- const shouldNestObject = import_platform.isWeb && name !== "enterStyle" && name !== "exitStyle";
387
- const defaultPseudoStyle = initialPseudos[name];
388
- const style = defaultPseudoStyle ? { ...defaultPseudoStyle, ...pseudoStyle } : pseudoStyle;
389
- if (style) {
390
- styles.push(shouldNestObject && !force ? { [name]: style } : style);
391
- }
392
- }
393
- const DefaultProps = /* @__PURE__ */ new Map();
394
- function mergeConfigDefaultProps(name, props, configDefaults, parentNames, conf) {
395
- const len = parentNames.length;
396
- let prev;
397
- for (let i = 0; i < len; i++) {
398
- const n = parentNames[i];
399
- if (!n)
400
- continue;
401
- if (DefaultProps.has(n)) {
402
- prev = DefaultProps.get(n);
403
- continue;
404
- }
405
- const props2 = configDefaults[n];
406
- if (!props2) {
407
- if (prev) {
408
- DefaultProps.set(n, prev);
409
- }
410
- continue;
411
- }
412
- prev = (0, import_mergeProps.mergeProps)(prev || {}, props2, false, conf.inverseShorthands)[0];
413
- DefaultProps.set(n, prev);
414
- }
415
- const ourDefaultsMerged = DefaultProps.get(name);
416
- if (ourDefaultsMerged) {
417
- return (0, import_mergeProps.mergeProps)(props, ourDefaultsMerged, false, conf.inverseShorthands)[0];
418
- }
419
- return props;
420
- }
421
- // Annotate the CommonJS export names for ESM import in node:
422
- 0 && (module.exports = {
423
- Spacer,
424
- Unspaced,
425
- accessibilityRoleToWebRole,
426
- createComponent,
427
- mouseUps,
428
- processIDRefList,
429
- spacedChildren
430
- });
431
- //# sourceMappingURL=createComponent.server.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/createComponent.server.tsx"],
4
- "sourcesContent": ["/* eslint-disable react-hooks/rules-of-hooks */\nimport {\n composeEventHandlers,\n stylePropsView,\n validPseudoKeys,\n validStyles,\n} from '@tamagui/helpers'\nimport {\n useElementLayout,\n useMergeRefs,\n usePlatformMethods,\n useResponderEvents,\n} from '@tamagui/rnw'\nimport { useForceUpdate } from '@tamagui/use-force-update'\nimport React, {\n Children,\n Fragment,\n createElement,\n forwardRef,\n memo,\n useCallback,\n useContext,\n useRef,\n useState,\n} from 'react'\nimport { StyleSheet, Text, View, ViewStyle } from 'react-native'\n\nimport { getConfig, onConfiguredOnce } from './conf'\nimport { stackDefaultStyles } from './constants/constants'\nimport { isClient, isWeb, useIsomorphicLayoutEffect } from './constants/platform'\nimport { FontLanguageContext } from './contexts/FontLanguageContext'\nimport { TextAncestorContext } from './contexts/TextAncestorContext'\nimport { assignNativePropsToWeb } from './helpers/assignNativePropsToWeb'\nimport { getReturnVariablesAs } from './helpers/createPropMapper'\nimport { createShallowUpdate } from './helpers/createShallowUpdate'\nimport { extendStaticConfig, parseStaticConfig } from './helpers/extendStaticConfig'\nimport { SplitStyleResult, insertSplitStyles, useSplitStyles } from './helpers/getSplitStyles'\nimport { getAllSelectors } from './helpers/insertStyleRule'\nimport { mergeProps } from './helpers/mergeProps'\nimport { proxyThemeVariables } from './helpers/proxyThemeVariables'\nimport { useFeatures } from './hooks/useFeatures'\nimport { mediaState } from './hooks/useMedia'\nimport { usePressable } from './hooks/usePressable'\nimport { getThemeManager, useTheme } from './hooks/useTheme'\nimport {\n SpaceDirection,\n SpaceTokens,\n SpacerProps,\n StaticConfig,\n StaticConfigParsed,\n StylableComponent,\n TamaguiComponent,\n TamaguiComponentState,\n TamaguiConfig,\n TamaguiElement,\n TamaguiInternalConfig,\n UseAnimationHook,\n} from './types'\nimport { usePressability } from './vendor/Pressability'\nimport { Slot, mergeEvent } from './views/Slot'\nimport { wrapThemeManagerContext } from './views/Theme'\n\nReact['keep']\n\n// @ts-ignore\nconst isRSC = import.meta.env.SSR\n\nconst defaultComponentState: TamaguiComponentState = Object.freeze({\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 const cancelTouches = () => {\n mouseUps.forEach((x) => x())\n mouseUps.clear()\n }\n document.addEventListener('mouseup', cancelTouches)\n document.addEventListener('touchend', cancelTouches)\n document.addEventListener('touchcancel', cancelTouches)\n}\n\n// mutates\nfunction mergeShorthands({ defaultProps }: StaticConfigParsed, { shorthands }: TamaguiConfig) {\n // they are defined in correct order already { ...parent, ...child }\n for (const key in defaultProps) {\n defaultProps[shorthands[key] || key] = defaultProps[key]\n }\n}\n\nlet initialTheme: any\nlet config: TamaguiInternalConfig\n\nexport function createComponent<\n ComponentPropTypes extends Object = {},\n Ref = TamaguiElement,\n BaseProps = never\n>(configIn: Partial<StaticConfig> | StaticConfigParsed, ParentComponent?: StylableComponent) {\n const staticConfig = (() => {\n const next = extendStaticConfig(configIn, ParentComponent)\n if ('parsed' in next) {\n return next\n } else {\n return parseStaticConfig(next)\n }\n })()\n\n const defaultComponentClassName = `is_${staticConfig.componentName}`\n let tamaguiConfig: TamaguiInternalConfig\n let AnimatedText: any\n let AnimatedView: any\n let avoidClasses = true\n let defaultNativeStyle: any\n let defaultNativeStyleSheet: StyleSheet.NamedStyles<{ base: {} }>\n let tamaguiDefaultProps: any\n let initialSplitStyles: SplitStyleResult\n\n // see onConfiguredOnce below which attaches a name then to this component\n const component = forwardRef<Ref, ComponentPropTypes>((propsIn: any, forwardedRef) => {\n // React inserts default props after your props for some reason...\n // order important so we do loops, you can't just spread because JS does weird things\n let props: any\n if (tamaguiDefaultProps && !propsIn.asChild) {\n props = mergeProps(tamaguiDefaultProps, propsIn)[0]\n } else {\n props = propsIn\n }\n\n const { Component, isText, isZStack } = staticConfig\n const componentName = props.componentName || staticConfig.componentName\n const componentClassName = props.asChild\n ? ''\n : props.componentName\n ? `is_${props.componentName}`\n : defaultComponentClassName\n\n if (process.env.NODE_ENV === 'development') {\n if (props['debug']) {\n const name = `${\n componentName || Component?.displayName || Component?.name || '[Unnamed Component]'\n }`\n const banner = `${name} ${propsIn['data-is'] || ''}`\n // eslint-disable-next-line no-console\n console.group(`%c \uD83D\uDC1B ${banner}`, 'background: yellow;')\n // eslint-disable-next-line no-console\n console.log('props', propsIn)\n // eslint-disable-next-line no-console\n // console.log('ref', hostRef, '(click to view)')\n if (props['debug'] === 'break') {\n // eslint-disable-next-line no-debugger\n debugger\n }\n }\n }\n\n const forceUpdate = useForceUpdate()\n config = config || getConfig()\n const theme = useTheme(props.theme, componentName, props, forceUpdate)\n\n const states = isRSC\n ? ([defaultComponentState, null as any] as [\n TamaguiComponentState,\n React.Dispatch<React.SetStateAction<TamaguiComponentState>>\n ])\n : useState<TamaguiComponentState>(defaultComponentState)\n const state = propsIn.forceStyle ? { ...states[0], [propsIn.forceStyle]: true } : states[0]\n\n const shouldAvoidClasses = !!(props.animation && avoidClasses)\n const shouldForcePseudo = !!propsIn.forceStyle\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const hasTextAncestor = !!(isWeb && isText ? useContext(TextAncestorContext) : false)\n const splitStyleState =\n !shouldAvoidClasses && !shouldForcePseudo\n ? {\n ...state,\n hasTextAncestor,\n dynamicStylesInline: true,\n }\n : ({\n ...state,\n noClassNames: true,\n dynamicStylesInline: true,\n hasTextAncestor,\n resolveVariablesAs: 'value',\n } as const)\n\n const languageContext = isRSC ? null : useContext(FontLanguageContext)\n\n const splitStyles = useSplitStyles(\n props,\n staticConfig,\n theme,\n splitStyleState,\n props.asChild ? null : initialSplitStyles?.classNames,\n languageContext || undefined,\n props['debug']\n )\n\n console.log('hi2')\n\n return propsIn.children\n })\n\n if (staticConfig.componentName) {\n component.displayName = staticConfig.componentName\n }\n\n // Once configuration is run and all components are registered\n // get default props + className and analyze styles\n onConfiguredOnce((conf) => {\n if (isRSC) return\n // in static mode we just use these to lookup configuration\n // ... we likely want this? need to test\n if (process.env.IS_STATIC === 'is_static') return\n\n tamaguiConfig = conf\n\n // do this to make sure shorthands don't duplicate with.. longhands\n mergeShorthands(staticConfig, tamaguiConfig)\n\n if (tamaguiConfig.animations) {\n avoidClasses = !!tamaguiConfig.animations.avoidClasses\n AnimatedText = tamaguiConfig.animations.Text\n AnimatedView = tamaguiConfig.animations.View\n }\n\n initialTheme =\n initialTheme ||\n proxyThemeVariables(conf.themes[conf.defaultTheme || Object.keys(conf.themes)[0]])\n\n // adds in user defined default props\n config = getConfig()\n\n let defaultPropsIn = staticConfig.defaultProps || {}\n\n // because we run createTamagui after styled() defs, have to do some work here\n // gather defaults props one time and merge downwards\n // find last unprocessed and process\n const parentNames = [...(staticConfig.parentNames || []), staticConfig.componentName]\n\n if (config.defaultProps && parentNames && staticConfig.componentName) {\n defaultPropsIn = mergeConfigDefaultProps(\n staticConfig.componentName,\n defaultPropsIn,\n config.defaultProps,\n parentNames,\n conf\n )\n }\n\n const debug = true ? defaultPropsIn['debug'] : false\n\n if (process.env.NODE_ENV === 'development' && debug === 'break') {\n // eslint-disable-next-line no-debugger\n debugger\n }\n\n // remove all classNames\n const [parentProps, parentClassNames] = mergeProps(defaultPropsIn, {}, true)\n\n initialSplitStyles = insertSplitStyles(\n parentProps,\n staticConfig,\n initialTheme,\n {\n mounted: true,\n hover: false,\n press: false,\n pressIn: false,\n focus: false,\n resolveVariablesAs: 'both',\n keepVariantsAsProps: true,\n },\n undefined,\n undefined,\n debug\n )\n\n // must preserve prop order\n // leave out className because we handle that already with initialSplitStyles.classNames\n // otherwise it confuses variant functions getting className props\n const [defaults, defaultsClassnames] = mergeProps(\n component.defaultProps as any,\n initialSplitStyles.viewProps,\n true\n // conf.inverseShorthands\n )\n\n // avoid passing className props to variants\n initialSplitStyles.classNames = {\n ...parentClassNames,\n ...defaultsClassnames,\n ...initialSplitStyles.classNames,\n }\n\n defaultNativeStyle = {}\n\n const validStyles = staticConfig.validStyles || stylePropsView\n\n // split - keep variables on props to be processed using theme values at runtime (native)\n if (!isWeb) {\n for (const key in staticConfig.defaultProps) {\n const val = staticConfig.defaultProps[key]\n if (validPseudoKeys[key]) continue\n if ((typeof val === 'string' && val[0] === '$') || !validStyles[key]) {\n defaults[key] = val\n } else {\n defaultNativeStyle[key] = val\n }\n }\n }\n\n defaultNativeStyleSheet = StyleSheet.create({\n base: defaultNativeStyle,\n })\n\n if (Object.keys(defaults).length) {\n tamaguiDefaultProps = defaults\n }\n\n // add debug logs\n if (process.env.NODE_ENV === 'development' && debug) {\n if (process.env.IS_STATIC !== 'is_static') {\n // eslint-disable-next-line no-console\n console.log(`\uD83D\uDC1B [${staticConfig.componentName || 'Component'}]`, {\n staticConfig,\n initialSplitStyles,\n tamaguiDefaultProps,\n defaultNativeStyle,\n defaults,\n defaultPropsIn,\n })\n }\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: staticConfig.validStyles || stylePropsView,\n ...staticConfig,\n }\n\n // res.extractable HoC\n res.extractable = (Component: any, conf?: Partial<StaticConfig>) => {\n Component.staticConfig = extendStaticConfig(\n {\n Component,\n ...conf,\n neverFlatten: true,\n isExtractable: true,\n defaultProps: {\n ...Component.defaultProps,\n ...conf?.defaultProps,\n },\n },\n res\n )\n return Component\n }\n\n return res\n}\n\n// for elements to avoid spacing\nexport const Unspaced = (props: { children?: any }) => {\n return props.children\n}\nUnspaced['isUnspaced'] = true\n\n// dont used styled() here to avoid circular deps\n// keep inline to avoid circular deps\n\nexport const Spacer = createComponent<SpacerProps>({\n memo: true,\n componentName: 'Spacer',\n validStyles,\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.space[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 flexGrow: 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 both: {},\n },\n },\n\n defaultVariants: {\n direction: 'both',\n },\n})\n\nexport type SpacedChildrenProps = {\n isZStack?: boolean\n children?: React.ReactNode\n space?: SpaceTokens | number | null\n spaceFlex?: boolean | number\n direction?: SpaceDirection\n separator?: React.ReactNode\n}\n\nexport function spacedChildren({\n isZStack,\n children,\n space,\n direction,\n spaceFlex,\n separator,\n}: SpacedChildrenProps) {\n const hasSpace = !!(space || spaceFlex)\n const hasSeparator = !(separator === undefined || separator === null)\n if (!hasSpace && !hasSeparator && !isZStack) {\n return children\n }\n const childrenList = Children.toArray(children)\n if (childrenList.length <= 1 && !isZStack) {\n return childrenList\n }\n const final: React.ReactNode[] = []\n for (const [index, child] of childrenList.entries()) {\n const isEmpty =\n child === null || child === undefined || (Array.isArray(child) && child.length === 0)\n\n // push them all, but wrap some in Fragment\n if (isEmpty || !child || (child['key'] && !isZStack)) {\n final.push(child)\n } else {\n final.push(\n <Fragment key={index}>{isZStack ? <AbsoluteFill>{child}</AbsoluteFill> : child}</Fragment>\n )\n }\n\n // first child unspaced avoid insert space\n if (isUnspaced(child) && index === 0) {\n continue\n }\n\n // no spacing on ZStack\n if (isZStack) {\n continue\n }\n\n const next = childrenList[index + 1]\n\n if (next && !isUnspaced(next)) {\n if (separator) {\n if (hasSpace) {\n final.push(\n createSpacer({\n key: `_${index}_before_sep_spacer`,\n direction,\n space,\n spaceFlex,\n })\n )\n }\n final.push(\n React.isValidElement(separator)\n ? React.cloneElement(separator, { key: `sep_${index}` })\n : separator\n )\n if (hasSpace) {\n final.push(\n createSpacer({\n key: `_${index}_after_sep_spacer`,\n direction,\n space,\n spaceFlex,\n })\n )\n }\n } else {\n final.push(\n createSpacer({\n key: `_${index}_spacer`,\n direction,\n space,\n spaceFlex,\n })\n )\n }\n }\n }\n\n return final\n}\n\ntype CreateSpacerProps = SpacedChildrenProps & { key: string }\n\nfunction createSpacer({ key, direction, space, spaceFlex }: CreateSpacerProps) {\n return (\n <Spacer\n key={key}\n size={space}\n direction={direction}\n {...(spaceFlex && {\n flex: spaceFlex,\n })}\n />\n )\n}\n\nfunction isUnspaced(child: React.ReactNode) {\n // console.log('unspaced?', child, getMedia())\n return child?.['type']?.['isVisuallyHidden'] || child?.['type']?.['isUnspaced']\n}\n\nfunction AbsoluteFill(props: { children?: any }) {\n return (\n <View pointerEvents=\"box-none\" style={StyleSheet.absoluteFill}>\n {props.children}\n </View>\n )\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\nexport function processIDRefList(idRefList: string | Array<string>): string {\n return Array.isArray(idRefList) ? idRefList.join(' ') : idRefList\n}\n\nexport const accessibilityRoleToWebRole = {\n adjustable: 'slider',\n button: 'button',\n header: 'heading',\n image: 'img',\n imagebutton: null,\n keyboardkey: null,\n label: null,\n link: 'link',\n none: 'presentation',\n search: 'search',\n summary: 'region',\n text: null,\n}\n\nfunction addPseudoToStyles(\n styles: any[],\n initialPseudos: SplitStyleResult['pseudos'],\n pseudos: any,\n name: string,\n force = false\n) {\n // on web use pseudo object { hoverStyle } to keep specificity with concatClassName\n const pseudoStyle = pseudos[name]\n const shouldNestObject = isWeb && name !== 'enterStyle' && name !== 'exitStyle'\n const defaultPseudoStyle = initialPseudos[name]\n const style = defaultPseudoStyle ? { ...defaultPseudoStyle, ...pseudoStyle } : pseudoStyle\n if (style) {\n styles.push(shouldNestObject && !force ? { [name]: style } : style)\n }\n}\n\nconst DefaultProps = new Map()\n\nfunction mergeConfigDefaultProps(\n name: string,\n props: Record<string, any>,\n configDefaults: Record<string, Object>,\n parentNames: (string | undefined)[],\n conf: TamaguiInternalConfig\n) {\n const len = parentNames.length\n let prev\n\n for (let i = 0; i < len; i++) {\n const n = parentNames[i]\n if (!n) continue\n if (DefaultProps.has(n)) {\n prev = DefaultProps.get(n)\n continue\n }\n const props = configDefaults[n]\n if (!props) {\n if (prev) {\n DefaultProps.set(n, prev)\n }\n continue\n }\n prev = mergeProps(prev || {}, props, false, conf.inverseShorthands)[0]\n DefaultProps.set(n, prev)\n }\n\n // overwrite the user defined defaults on top of internal defined defaults\n const ourDefaultsMerged = DefaultProps.get(name)\n if (ourDefaultsMerged) {\n return mergeProps(props, ourDefaultsMerged, false, conf.inverseShorthands)[0]\n }\n return props\n}\n"],
5
- "mappings": "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",
6
- "names": []
7
- }
@@ -1,51 +0,0 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
9
- };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
16
- return to;
17
- };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
- var cssHash_exports = {};
20
- __export(cssHash_exports, {
21
- cssHash: () => cssHash
22
- });
23
- module.exports = __toCommonJS(cssHash_exports);
24
- var import_helpers = require("@tamagui/helpers");
25
- function cssHash(val, maxLen = 10) {
26
- if (val.length < maxLen) {
27
- let res = "";
28
- for (let i = 0; i < val.length; i++) {
29
- const char = val[i];
30
- if (specials[char]) {
31
- res += specials[char];
32
- } else {
33
- res += validCSS.test(char) ? char : "_" + char.charCodeAt(0).toString();
34
- }
35
- }
36
- return res;
37
- }
38
- return (0, import_helpers.simpleHash)(val);
39
- }
40
- const validCSS = /[a-z0-9]/i;
41
- const specials = {
42
- ".": "dot",
43
- ",": "_",
44
- "%": "pct",
45
- "-": "neg"
46
- };
47
- // Annotate the CommonJS export names for ESM import in node:
48
- 0 && (module.exports = {
49
- cssHash
50
- });
51
- //# sourceMappingURL=cssHash.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/helpers/cssHash.ts"],
4
- "sourcesContent": ["import { simpleHash } from '@tamagui/helpers'\n\n// not sure it's worth the extra weight, could be dev time though\n// affordances for simple values\nexport function cssHash(val: string, maxLen = 10) {\n if (val.length < maxLen) {\n let res = ''\n for (let i = 0; i < val.length; i++) {\n const char = val[i]\n if (specials[char]) {\n res += specials[char]\n } else {\n res += validCSS.test(char) ? char : '_' + char.charCodeAt(0).toString()\n }\n }\n return res\n }\n return simpleHash(val)\n}\n\nconst validCSS = /[a-z0-9]/i\n\nconst specials = {\n '.': 'dot',\n ',': '_',\n '%': 'pct',\n '-': 'neg',\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,qBAA2B;AAIpB,SAAS,QAAQ,KAAa,SAAS,IAAI;AAChD,MAAI,IAAI,SAAS,QAAQ;AACvB,QAAI,MAAM;AACV,aAAS,IAAI,GAAG,IAAI,IAAI,QAAQ,KAAK;AACnC,YAAM,OAAO,IAAI;AACjB,UAAI,SAAS,OAAO;AAClB,eAAO,SAAS;AAAA,MAClB,OAAO;AACL,eAAO,SAAS,KAAK,IAAI,IAAI,OAAO,MAAM,KAAK,WAAW,CAAC,EAAE,SAAS;AAAA,MACxE;AAAA,IACF;AACA,WAAO;AAAA,EACT;AACA,aAAO,2BAAW,GAAG;AACvB;AAEA,MAAM,WAAW;AAEjB,MAAM,WAAW;AAAA,EACf,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AACP;",
6
- "names": []
7
- }
@@ -1,2 +0,0 @@
1
- "use strict";
2
- //# sourceMappingURL=useAnimationDriver.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": [],
4
- "sourcesContent": [],
5
- "mappings": "",
6
- "names": []
7
- }
@@ -1,2 +0,0 @@
1
- "use strict";
2
- //# sourceMappingURL=useAnimationDriver.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": [],
4
- "sourcesContent": [],
5
- "mappings": "",
6
- "names": []
7
- }
@@ -1,89 +0,0 @@
1
- "use strict";
2
- var __create = Object.create;
3
- var __defProp = Object.defineProperty;
4
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
- var __getOwnPropNames = Object.getOwnPropertyNames;
6
- var __getProtoOf = Object.getPrototypeOf;
7
- var __hasOwnProp = Object.prototype.hasOwnProperty;
8
- var __export = (target, all) => {
9
- for (var name in all)
10
- __defProp(target, name, { get: all[name], enumerable: true });
11
- };
12
- var __copyProps = (to, from, except, desc) => {
13
- if (from && typeof from === "object" || typeof from === "function") {
14
- for (let key of __getOwnPropNames(from))
15
- if (!__hasOwnProp.call(to, key) && key !== except)
16
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
- }
18
- return to;
19
- };
20
- 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));
21
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
22
- var useFeatures_exports = {};
23
- __export(useFeatures_exports, {
24
- useFeatures: () => useFeatures
25
- });
26
- module.exports = __toCommonJS(useFeatures_exports);
27
- var import_react = __toESM(require("react"));
28
- var import_platform = require("../constants/platform");
29
- var import_useMedia = require("./useMedia");
30
- const createDefinition = ({
31
- Component,
32
- propNames
33
- }) => ({
34
- isEnabled: (props) => propNames.some((name) => !!props[name]),
35
- Component
36
- });
37
- let featureDefinitions = null;
38
- const useFeatures = (props, utils) => {
39
- if (!featureDefinitions) {
40
- featureDefinitions = loadFeatures();
41
- }
42
- const elements = [];
43
- const enabled = {};
44
- for (const name in featureDefinitions) {
45
- const { isEnabled, Component } = featureDefinitions[name];
46
- if (isEnabled(props) && Component) {
47
- enabled[name] = true;
48
- elements.push(/* @__PURE__ */ import_react.default.createElement(Component, {
49
- key: name,
50
- ...props,
51
- _utils: utils
52
- }));
53
- }
54
- }
55
- return {
56
- elements,
57
- enabled
58
- };
59
- };
60
- function loadFeatures() {
61
- return {
62
- mediaQuery: loadMediaQueryFeature()
63
- };
64
- }
65
- function loadMediaQueryFeature() {
66
- const mediaPropNames = Object.keys(import_useMedia.mediaState);
67
- return createDefinition({
68
- Component: (props) => {
69
- const mediaKeys = mediaPropNames.filter((x) => x in props);
70
- (0, import_platform.useIsomorphicLayoutEffect)(() => {
71
- for (const key of mediaKeys) {
72
- (0, import_useMedia.addMediaQueryListener)(key, props._utils.forceUpdate);
73
- }
74
- return () => {
75
- for (const key of mediaKeys) {
76
- (0, import_useMedia.removeMediaQueryListener)(key, props._utils.forceUpdate);
77
- }
78
- };
79
- }, [mediaKeys.join(",")]);
80
- return null;
81
- },
82
- propNames: mediaPropNames
83
- });
84
- }
85
- // Annotate the CommonJS export names for ESM import in node:
86
- 0 && (module.exports = {
87
- useFeatures
88
- });
89
- //# sourceMappingURL=useFeatures.js.map