@tamagui/core 1.0.0-alpha.57 → 1.0.0-alpha.62
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.
- package/dist/cjs/createComponent.js +16 -17
- package/dist/cjs/createComponent.js.map +2 -2
- package/dist/cjs/createTamagui.js +1 -1
- package/dist/cjs/createTamagui.js.map +2 -2
- package/dist/cjs/createVariable.js +7 -2
- package/dist/cjs/createVariable.js.map +2 -2
- package/dist/cjs/helpers/createPropMapper.js +17 -18
- package/dist/cjs/helpers/createPropMapper.js.map +2 -2
- package/dist/cjs/helpers/getSplitStyles.js +4 -1
- package/dist/cjs/helpers/getSplitStyles.js.map +2 -2
- package/dist/cjs/hooks/useTheme.js +1 -1
- package/dist/cjs/hooks/useTheme.js.map +2 -2
- package/dist/cjs/tamagui-base.css +8 -0
- package/dist/cjs/tamagui-base.css.map +7 -0
- package/dist/cjs/views/AbsoluteFullscreen.js +38 -0
- package/dist/cjs/views/AbsoluteFullscreen.js.map +7 -0
- package/dist/cjs/views/AbsoluteFullscreen.native.js +1 -0
- package/dist/cjs/views/AbsoluteFullscreen.native.js.map +7 -0
- package/dist/esm/createComponent.js +16 -17
- package/dist/esm/createComponent.js.map +2 -2
- package/dist/esm/createTamagui.js +2 -2
- package/dist/esm/createTamagui.js.map +2 -2
- package/dist/esm/createVariable.js +7 -2
- package/dist/esm/createVariable.js.map +2 -2
- package/dist/esm/helpers/createPropMapper.js +18 -19
- package/dist/esm/helpers/createPropMapper.js.map +2 -2
- package/dist/esm/helpers/getSplitStyles.js +4 -1
- package/dist/esm/helpers/getSplitStyles.js.map +2 -2
- package/dist/esm/hooks/useTheme.js +2 -2
- package/dist/esm/hooks/useTheme.js.map +2 -2
- package/dist/esm/tamagui-base.css +8 -0
- package/dist/esm/tamagui-base.css.map +7 -0
- package/dist/esm/views/AbsoluteFullscreen.js +14 -0
- package/dist/esm/views/AbsoluteFullscreen.js.map +7 -0
- package/dist/esm/views/AbsoluteFullscreen.native.js +1 -0
- package/dist/esm/views/AbsoluteFullscreen.native.js.map +7 -0
- package/dist/jsx/createComponent.js +15 -18
- package/dist/jsx/createTamagui.js +2 -2
- package/dist/jsx/createVariable.js +7 -2
- package/dist/jsx/helpers/createPropMapper.js +18 -19
- package/dist/jsx/helpers/getSplitStyles.js +4 -1
- package/dist/jsx/hooks/useTheme.js +2 -2
- package/dist/jsx/tamagui-base.css +7 -0
- package/dist/jsx/views/AbsoluteFullscreen.js +13 -0
- package/dist/jsx/views/AbsoluteFullscreen.native.js +0 -0
- package/package.json +9 -6
- package/types/createComponent.d.ts +3 -0
- package/types/createComponent.d.ts.map +1 -1
- package/types/createTamagui.d.ts.map +1 -1
- package/types/createVariable.d.ts +3 -1
- package/types/createVariable.d.ts.map +1 -1
- package/types/helpers/getSplitStyles.d.ts +1 -1
- package/types/helpers/getSplitStyles.d.ts.map +1 -1
|
@@ -4,7 +4,7 @@ import { useForceUpdate } from "@tamagui/use-force-update";
|
|
|
4
4
|
import { useContext, useEffect, useMemo, useRef, useState } from "react";
|
|
5
5
|
import { GET_DEFAULT_THEME } from "../constants/constants";
|
|
6
6
|
import { useIsomorphicLayoutEffect } from "../constants/platform";
|
|
7
|
-
import {
|
|
7
|
+
import { isVariable } from "../createVariable";
|
|
8
8
|
import { ThemeContext } from "../views/ThemeContext";
|
|
9
9
|
import { ThemeManagerContext } from "../views/ThemeManagerContext";
|
|
10
10
|
const areEqualSets = /* @__PURE__ */ __name((a, b) => {
|
|
@@ -76,7 +76,7 @@ const useTheme = /* @__PURE__ */ __name(() => {
|
|
|
76
76
|
console.warn(`No theme value "${String(key)}" in`, activeTheme, themes);
|
|
77
77
|
return null;
|
|
78
78
|
}
|
|
79
|
-
if (!(val
|
|
79
|
+
if (!isVariable(val)) {
|
|
80
80
|
console.warn("Non variable!", val);
|
|
81
81
|
}
|
|
82
82
|
if (val.name !== key) {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/hooks/useTheme.tsx"],
|
|
4
|
-
"sourcesContent": ["import { useForceUpdate } from '@tamagui/use-force-update'\nimport React, { useContext, useEffect, useMemo, useRef, useState } from 'react'\n\nimport { GET_DEFAULT_THEME } from '../constants/constants'\nimport { useIsomorphicLayoutEffect } from '../constants/platform'\nimport {
|
|
5
|
-
"mappings": ";;AAAA;AACA;AAEA;AACA;AACA;AAEA;AACA;AAQA,MAAM,eAAe,wBAAC,GAAgB,MAAmB;AACvD,MAAI,EAAE,SAAS,EAAE;AAAM,WAAO;AAC9B,aAAW,OAAO,GAAG;AACnB,QAAI,CAAC,EAAE,IAAI,MAAM;AACf,aAAO;AAAA;AAAA;AAGX,SAAO;AAAA,GAPY;AAUd,MAAM,eAAe,wBAAC,SAA6B;AACxD,QAAM,SAAS,WAAW;AAC1B,QAAM,CAAC,MAAM,WAAW,SAAS,OAAO;AAExC,4BAA0B,MAAM;AAC9B,WAAO,OAAO,cAAc,CAAC,MAAM,YAAY;AAC7C,cAAQ,8BAAM,UAAS,QAAQ,aAAa;AAAA;AAAA,KAE7C,CAAC;AAEJ,SAAO,QAAQ;AAAA,GAVW;AAarB,MAAM,sBAAsB,6BAAM;AACvC,SAAO,WAAW,cAAc;AAAA,GADC;AAI5B,MAAM,WAAW,6BAAmB;AA3C3C;AA4CE,QAAM,cAAc;AACpB,QAAM,UAAU,WAAW;AAC3B,QAAM,SAAS,WAAW,iBAAiB;AAE3C,QAAM,QAAQ;AACd,MAAI,CAAC,MAAM,SAAS;AAClB,UAAM,UAAU;AAAA,MACd,MAAM;AAAA,MACN,MAAM,oBAAI;AAAA,MACV,aAAa;AAAA;AAAA;AAGjB,QAAM,QAAQ,cAAc;AAG5B,4BAA0B,MAAM;AAC9B,UAAM,KAAK,MAAM;AACjB,OAAG,cAAc;AACjB,UAAM,MAAM,QAAQ,KAAK,IAAI,GAAG;AAChC,QAAI,CAAC,OAAO,CAAC,aAAa,GAAG,MAAM,MAAM;AACvC,cAAQ,MAAM,GAAG,MAAM,GAAG;AAAA;AAAA;AAI9B,YAAU,MAAM;AACd,WAAO,QAAQ,SAAS,MAAM,QAAQ,MAAM;AAAA,KAC3C;AAEH,QAAM,QAAS,oBAAQ,OAAO,OAAO,QAAQ,QAAQ,OAAO,UAA7C,YAAuD,OAAO,UAA9D,YAAuE;AAEtF,SAAO,QACL,MAAM;AACJ,WAAO,IAAI,MAAM,OAAO;AAAA,MACtB,IAAI,GAAG,KAAa;AAClB,cAAM,OAAO,QAAQ;AACrB,YAAI,CAAC,MAAM;AACT,iBAAO,QAAQ,IAAI,GAAG;AAAA;AAExB,YAAI,cAAc,OAAO;AACzB,YAAI,CAAC,aAAa;AAChB,cAAI,QAAQ,IAAI,aAAa,QAAQ;AACnC,oBAAQ,MAAM,oBAAoB,MAAM,SAAS,QAAQ;AAAA;AAE3D,wBAAc;AAAA;AAEhB,cAAM,MAAM,YAAY;AACxB,YAAI,QAAQ,IAAI,aAAa,eAAe;AAC1C,cAAI,OAAO,QAAQ,aAAa;AAC9B,oBAAQ,KAAK,mBAAmB,OAAO,YAAY,aAAa;AAChE,mBAAO;AAAA;AAET,cAAI,
|
|
4
|
+
"sourcesContent": ["import { useForceUpdate } from '@tamagui/use-force-update'\nimport React, { useContext, useEffect, useMemo, useRef, useState } from 'react'\n\nimport { GET_DEFAULT_THEME } from '../constants/constants'\nimport { useIsomorphicLayoutEffect } from '../constants/platform'\nimport { isVariable } from '../createVariable'\nimport { ThemeName, ThemeObject } from '../types'\nimport { ThemeContext } from '../views/ThemeContext'\nimport { ThemeManagerContext } from '../views/ThemeManagerContext'\n\ntype UseThemeState = {\n uuid: Object\n keys: Set<string>\n isRendering: boolean\n}\n\nconst areEqualSets = (a: Set<string>, b: Set<string>) => {\n if (a.size !== b.size) return false\n for (const val in a) {\n if (!b.has(val)) {\n return false\n }\n }\n return true\n}\n\nexport const useThemeName = (opts?: { parent?: true }) => {\n const parent = useContext(ThemeManagerContext)\n const [name, setName] = useState(parent.name)\n\n useIsomorphicLayoutEffect(() => {\n return parent.onChangeTheme((next, manager) => {\n setName(opts?.parent ? manager.parentName : next)\n })\n }, [parent])\n\n return name || 'light'\n}\n\nexport const useDefaultThemeName = () => {\n return useContext(ThemeContext)[GET_DEFAULT_THEME] as any as ThemeName\n}\n\nexport const useTheme = (): ThemeObject => {\n const forceUpdate = useForceUpdate()\n const manager = useContext(ThemeManagerContext)\n const themes = useContext(ThemeContext) || {}\n\n const state = useRef() as React.MutableRefObject<UseThemeState>\n if (!state.current) {\n state.current = {\n uuid: {},\n keys: new Set(),\n isRendering: true,\n }\n }\n state.current.isRendering = true\n\n // track usage\n useIsomorphicLayoutEffect(() => {\n const st = state.current\n st.isRendering = false\n const cur = manager.keys.get(st.uuid)\n if (!cur || !areEqualSets(st.keys, cur)) {\n manager.track(st.uuid, st.keys)\n }\n })\n\n useEffect(() => {\n return manager.onUpdate(state.current.uuid, forceUpdate)\n }, [])\n\n const theme = (manager.name ? themes[manager.name] : themes.light) ?? themes.light ?? {}\n\n return useMemo(\n () => {\n return new Proxy(theme, {\n get(_, key: string) {\n const name = manager.name\n if (!name) {\n return Reflect.get(_, key)\n }\n let activeTheme = themes[name]\n if (!activeTheme) {\n if (process.env.NODE_ENV !== 'test') {\n console.error('No theme by name', name, 'only:', themes, 'keeping current theme')\n }\n activeTheme = theme\n }\n const val = activeTheme[key]\n if (process.env.NODE_ENV === 'development') {\n if (typeof val === 'undefined') {\n console.warn(`No theme value \"${String(key)}\" in`, activeTheme, themes)\n return null\n }\n if (!isVariable(val)) {\n console.warn('Non variable!', val)\n }\n if (val.name !== key) {\n console.warn('Non-matching name for variable to key', key, val.name)\n }\n }\n if (state.current.isRendering) {\n state.current.keys.add(key)\n }\n return val\n },\n })\n },\n [\n /* if concurrent mode wanted put manager.name here */\n ]\n )\n}\n"],
|
|
5
|
+
"mappings": ";;AAAA;AACA;AAEA;AACA;AACA;AAEA;AACA;AAQA,MAAM,eAAe,wBAAC,GAAgB,MAAmB;AACvD,MAAI,EAAE,SAAS,EAAE;AAAM,WAAO;AAC9B,aAAW,OAAO,GAAG;AACnB,QAAI,CAAC,EAAE,IAAI,MAAM;AACf,aAAO;AAAA;AAAA;AAGX,SAAO;AAAA,GAPY;AAUd,MAAM,eAAe,wBAAC,SAA6B;AACxD,QAAM,SAAS,WAAW;AAC1B,QAAM,CAAC,MAAM,WAAW,SAAS,OAAO;AAExC,4BAA0B,MAAM;AAC9B,WAAO,OAAO,cAAc,CAAC,MAAM,YAAY;AAC7C,cAAQ,8BAAM,UAAS,QAAQ,aAAa;AAAA;AAAA,KAE7C,CAAC;AAEJ,SAAO,QAAQ;AAAA,GAVW;AAarB,MAAM,sBAAsB,6BAAM;AACvC,SAAO,WAAW,cAAc;AAAA,GADC;AAI5B,MAAM,WAAW,6BAAmB;AA3C3C;AA4CE,QAAM,cAAc;AACpB,QAAM,UAAU,WAAW;AAC3B,QAAM,SAAS,WAAW,iBAAiB;AAE3C,QAAM,QAAQ;AACd,MAAI,CAAC,MAAM,SAAS;AAClB,UAAM,UAAU;AAAA,MACd,MAAM;AAAA,MACN,MAAM,oBAAI;AAAA,MACV,aAAa;AAAA;AAAA;AAGjB,QAAM,QAAQ,cAAc;AAG5B,4BAA0B,MAAM;AAC9B,UAAM,KAAK,MAAM;AACjB,OAAG,cAAc;AACjB,UAAM,MAAM,QAAQ,KAAK,IAAI,GAAG;AAChC,QAAI,CAAC,OAAO,CAAC,aAAa,GAAG,MAAM,MAAM;AACvC,cAAQ,MAAM,GAAG,MAAM,GAAG;AAAA;AAAA;AAI9B,YAAU,MAAM;AACd,WAAO,QAAQ,SAAS,MAAM,QAAQ,MAAM;AAAA,KAC3C;AAEH,QAAM,QAAS,oBAAQ,OAAO,OAAO,QAAQ,QAAQ,OAAO,UAA7C,YAAuD,OAAO,UAA9D,YAAuE;AAEtF,SAAO,QACL,MAAM;AACJ,WAAO,IAAI,MAAM,OAAO;AAAA,MACtB,IAAI,GAAG,KAAa;AAClB,cAAM,OAAO,QAAQ;AACrB,YAAI,CAAC,MAAM;AACT,iBAAO,QAAQ,IAAI,GAAG;AAAA;AAExB,YAAI,cAAc,OAAO;AACzB,YAAI,CAAC,aAAa;AAChB,cAAI,QAAQ,IAAI,aAAa,QAAQ;AACnC,oBAAQ,MAAM,oBAAoB,MAAM,SAAS,QAAQ;AAAA;AAE3D,wBAAc;AAAA;AAEhB,cAAM,MAAM,YAAY;AACxB,YAAI,QAAQ,IAAI,aAAa,eAAe;AAC1C,cAAI,OAAO,QAAQ,aAAa;AAC9B,oBAAQ,KAAK,mBAAmB,OAAO,YAAY,aAAa;AAChE,mBAAO;AAAA;AAET,cAAI,CAAC,WAAW,MAAM;AACpB,oBAAQ,KAAK,iBAAiB;AAAA;AAEhC,cAAI,IAAI,SAAS,KAAK;AACpB,oBAAQ,KAAK,yCAAyC,KAAK,IAAI;AAAA;AAAA;AAGnE,YAAI,MAAM,QAAQ,aAAa;AAC7B,gBAAM,QAAQ,KAAK,IAAI;AAAA;AAEzB,eAAO;AAAA;AAAA;AAAA,KAIb;AAAA,GAlEoB;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { styled } from "../styled";
|
|
2
|
+
import { Stack } from "./Stack";
|
|
3
|
+
const AbsoluteFullscreen = styled(Stack, {
|
|
4
|
+
position: "absolute",
|
|
5
|
+
top: 0,
|
|
6
|
+
left: 0,
|
|
7
|
+
right: 0,
|
|
8
|
+
bottom: 0
|
|
9
|
+
});
|
|
10
|
+
globalThis["TamaguiAbsoluteFullscreen"] = AbsoluteFullscreen;
|
|
11
|
+
export {
|
|
12
|
+
AbsoluteFullscreen
|
|
13
|
+
};
|
|
14
|
+
//# sourceMappingURL=AbsoluteFullscreen.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/views/AbsoluteFullscreen.tsx"],
|
|
4
|
+
"sourcesContent": ["import { styled } from '../styled'\nimport { Stack } from './Stack'\n\nexport const AbsoluteFullscreen = styled(Stack, {\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n})\n\nglobalThis['TamaguiAbsoluteFullscreen'] = AbsoluteFullscreen\n"],
|
|
5
|
+
"mappings": "AAAA;AACA;AAEO,MAAM,qBAAqB,OAAO,OAAO;AAAA,EAC9C,UAAU;AAAA,EACV,KAAK;AAAA,EACL,MAAM;AAAA,EACN,OAAO;AAAA,EACP,QAAQ;AAAA;AAGV,WAAW,+BAA+B;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
//# sourceMappingURL=AbsoluteFullscreen.native.js.map
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
var __defProp = Object.defineProperty;
|
|
2
2
|
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
3
|
+
import "./tamagui-base.css";
|
|
3
4
|
import { concatClassName, stylePropsView } from "@tamagui/helpers";
|
|
4
5
|
import { useForceUpdate } from "@tamagui/use-force-update";
|
|
5
6
|
import {
|
|
@@ -330,22 +331,26 @@ function createComponent(configIn) {
|
|
|
330
331
|
viewProps["debug"] = true;
|
|
331
332
|
console.log("\u{1F95A} props in:", props);
|
|
332
333
|
console.log("\u{1F95A} props out:", viewProps, (_a = viewProps.className) == null ? void 0 : _a.split(" "));
|
|
333
|
-
console.log("\u{1F95A} etc:", { shouldAttach, ViewComponent, viewProps, styles, pseudos, content, childEls
|
|
334
|
-
if (
|
|
334
|
+
console.log("\u{1F95A} etc:", { shouldAttach, ViewComponent, viewProps, styles, pseudos, content, childEls });
|
|
335
|
+
if (typeof window !== "undefined") {
|
|
335
336
|
console.log("\u{1F95A} component info", { staticConfig, tamaguiConfig });
|
|
337
|
+
}
|
|
336
338
|
}
|
|
337
339
|
}
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
340
|
+
if (features.length) {
|
|
341
|
+
return <>
|
|
342
|
+
{features}
|
|
343
|
+
{content}
|
|
344
|
+
</>;
|
|
345
|
+
}
|
|
346
|
+
return content;
|
|
342
347
|
});
|
|
343
348
|
onConfiguredOnce((conf) => {
|
|
344
349
|
var _a;
|
|
345
350
|
const shouldDebug = (_a = staticConfig.defaultProps) == null ? void 0 : _a.debug;
|
|
346
351
|
tamaguiConfig = conf;
|
|
347
352
|
initialTheme = conf.themes[conf.defaultTheme || Object.keys(conf.themes)[0]];
|
|
348
|
-
const { classNames, pseudos, style, viewProps } = getSplitStyles(staticConfig.defaultProps, staticConfig, initialTheme
|
|
353
|
+
const { classNames, pseudos, style, viewProps } = getSplitStyles(staticConfig.defaultProps, staticConfig, initialTheme);
|
|
349
354
|
if (isWeb) {
|
|
350
355
|
if (classNames) {
|
|
351
356
|
defaultsClassName += classNames + " ";
|
|
@@ -438,7 +443,7 @@ function spacedChildren({
|
|
|
438
443
|
continue;
|
|
439
444
|
}
|
|
440
445
|
const key = `${(_a = child == null ? void 0 : child["key"]) != null ? _a : index}`;
|
|
441
|
-
next.push(<Fragment key={key}>{isZStack ? <
|
|
446
|
+
next.push(<Fragment key={key}>{isZStack ? <AbsoluteFill>{child}</AbsoluteFill> : child}</Fragment>);
|
|
442
447
|
if ((_b = child == null ? void 0 : child["type"]) == null ? void 0 : _b["isVisuallyHidden"]) {
|
|
443
448
|
continue;
|
|
444
449
|
}
|
|
@@ -451,17 +456,9 @@ function spacedChildren({
|
|
|
451
456
|
return next;
|
|
452
457
|
}
|
|
453
458
|
__name(spacedChildren, "spacedChildren");
|
|
454
|
-
const
|
|
455
|
-
const sheet = StyleSheet.create({
|
|
456
|
-
fullscreen: {
|
|
457
|
-
position: "absolute",
|
|
458
|
-
top: 0,
|
|
459
|
-
left: 0,
|
|
460
|
-
right: 0,
|
|
461
|
-
bottom: 0
|
|
462
|
-
}
|
|
463
|
-
});
|
|
459
|
+
const AbsoluteFill = /* @__PURE__ */ __name((props) => isWeb ? <div className="tamagui-absolute-fill">{props.children}</div> : <View style={StyleSheet.absoluteFill}>{props.child}</View>, "AbsoluteFill");
|
|
464
460
|
export {
|
|
461
|
+
AbsoluteFill,
|
|
465
462
|
Spacer,
|
|
466
463
|
createComponent,
|
|
467
464
|
mouseUps,
|
|
@@ -4,7 +4,7 @@ import { getStyleRules } from "@tamagui/helpers";
|
|
|
4
4
|
import { configListeners, getHasConfigured, setConfig } from "./conf";
|
|
5
5
|
import { PREFIX } from "./constants/constants";
|
|
6
6
|
import { isWeb } from "./constants/platform";
|
|
7
|
-
import { Variable, createVariable } from "./createVariable";
|
|
7
|
+
import { Variable, createVariable, isVariable } from "./createVariable";
|
|
8
8
|
import { createTamaguiProvider } from "./helpers/createTamaguiProvider";
|
|
9
9
|
import { configureMedia } from "./hooks/useMedia";
|
|
10
10
|
const createdConfigs = /* @__PURE__ */ new WeakMap();
|
|
@@ -145,7 +145,7 @@ const parseTokens = /* @__PURE__ */ __name((tokens) => {
|
|
|
145
145
|
}, "parseTokens");
|
|
146
146
|
function ensureThemeVariable(theme, key) {
|
|
147
147
|
const val = theme[key];
|
|
148
|
-
if (!(val
|
|
148
|
+
if (!isVariable(val)) {
|
|
149
149
|
theme[key] = createVariable({
|
|
150
150
|
name: key,
|
|
151
151
|
val
|
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
var __defProp = Object.defineProperty;
|
|
2
2
|
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
3
|
+
var _a;
|
|
3
4
|
import { isWeb } from "./constants/platform";
|
|
5
|
+
const IS_VARIABLE_SYMBOL = "__isVariable__";
|
|
4
6
|
class Variable {
|
|
5
7
|
constructor({ val, name }) {
|
|
6
|
-
this
|
|
8
|
+
this[_a] = true;
|
|
9
|
+
this.val = isVariable(val) ? val.val : val;
|
|
7
10
|
this.name = name;
|
|
8
11
|
this.variable = isWeb ? `var(--${name})` : this.val;
|
|
9
12
|
}
|
|
@@ -12,12 +15,14 @@ class Variable {
|
|
|
12
15
|
}
|
|
13
16
|
}
|
|
14
17
|
__name(Variable, "Variable");
|
|
18
|
+
_a = IS_VARIABLE_SYMBOL;
|
|
15
19
|
const createVariable = /* @__PURE__ */ __name((props) => new Variable(props), "createVariable");
|
|
16
20
|
function isVariable(v) {
|
|
17
|
-
return v instanceof Variable;
|
|
21
|
+
return v instanceof Variable || v && v[IS_VARIABLE_SYMBOL];
|
|
18
22
|
}
|
|
19
23
|
__name(isVariable, "isVariable");
|
|
20
24
|
export {
|
|
25
|
+
IS_VARIABLE_SYMBOL,
|
|
21
26
|
Variable,
|
|
22
27
|
createVariable,
|
|
23
28
|
isVariable
|
|
@@ -2,7 +2,7 @@ var __defProp = Object.defineProperty;
|
|
|
2
2
|
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
3
3
|
import { getTamagui } from "../conf";
|
|
4
4
|
import { isWeb } from "../constants/platform";
|
|
5
|
-
import {
|
|
5
|
+
import { isVariable } from "../createVariable";
|
|
6
6
|
import { isObj } from "./isObj";
|
|
7
7
|
const createPropMapper = /* @__PURE__ */ __name((c) => {
|
|
8
8
|
const variants = c.variants;
|
|
@@ -40,7 +40,7 @@ const createPropMapper = /* @__PURE__ */ __name((c) => {
|
|
|
40
40
|
shouldReturn = true;
|
|
41
41
|
value = getToken(key, value, conf, theme, fontFamily);
|
|
42
42
|
}
|
|
43
|
-
if (value
|
|
43
|
+
if (isVariable(value)) {
|
|
44
44
|
shouldReturn = true;
|
|
45
45
|
value = value.variable;
|
|
46
46
|
}
|
|
@@ -57,7 +57,7 @@ const resolveTokens = /* @__PURE__ */ __name((input, conf, theme, fontFamily) =>
|
|
|
57
57
|
for (const rKey in input) {
|
|
58
58
|
const fKey = conf.shorthands[rKey] || rKey;
|
|
59
59
|
const val = input[rKey];
|
|
60
|
-
if (val
|
|
60
|
+
if (isVariable(val)) {
|
|
61
61
|
res[fKey] = val.variable;
|
|
62
62
|
} else if (typeof val === "string") {
|
|
63
63
|
const fVal = val[0] === "$" ? getToken(fKey, val, conf, theme, fontFamily) : val;
|
|
@@ -71,41 +71,36 @@ const resolveTokens = /* @__PURE__ */ __name((input, conf, theme, fontFamily) =>
|
|
|
71
71
|
}
|
|
72
72
|
if (process.env.NODE_ENV === "development") {
|
|
73
73
|
if (((_a = res[fKey]) == null ? void 0 : _a[0]) === "$") {
|
|
74
|
-
console.warn(
|
|
74
|
+
console.warn(`\u26A0\uFE0F Missing token in theme ${theme.name}:`, fKey, res[fKey]);
|
|
75
75
|
}
|
|
76
76
|
}
|
|
77
77
|
}
|
|
78
78
|
return res;
|
|
79
79
|
}, "resolveTokens");
|
|
80
80
|
const getToken = /* @__PURE__ */ __name((key, value, { tokensParsed, themeParsed }, theme, fontFamily = "$body") => {
|
|
81
|
-
var _a, _b, _c, _d, _e
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
} else {
|
|
86
|
-
if (value && value[0] === "$") {
|
|
87
|
-
return ((_a = theme[`${value.slice(1)}`]) == null ? void 0 : _a.val) || ((_b = themeParsed[value]) == null ? void 0 : _b.val);
|
|
88
|
-
}
|
|
89
|
-
}
|
|
81
|
+
var _a, _b, _c, _d, _e;
|
|
82
|
+
const tokenVal = themeParsed[value];
|
|
83
|
+
if (tokenVal) {
|
|
84
|
+
return isWeb && tokenVal.variable ? tokenVal.variable : tokenVal.val;
|
|
90
85
|
}
|
|
91
86
|
let valOrVar;
|
|
92
87
|
if (key === "fontFamily") {
|
|
93
|
-
valOrVar = ((
|
|
88
|
+
valOrVar = ((_a = tokensParsed.font[value]) == null ? void 0 : _a.family) || value;
|
|
94
89
|
}
|
|
95
90
|
if (key === "fontSize") {
|
|
96
|
-
valOrVar = ((
|
|
91
|
+
valOrVar = ((_b = tokensParsed.font[fontFamily]) == null ? void 0 : _b.size[value]) || value;
|
|
97
92
|
}
|
|
98
93
|
if (key === "lineHeight") {
|
|
99
|
-
valOrVar = ((
|
|
94
|
+
valOrVar = ((_c = tokensParsed.font[fontFamily]) == null ? void 0 : _c.lineHeight[value]) || value;
|
|
100
95
|
}
|
|
101
96
|
if (key === "letterSpacing") {
|
|
102
|
-
valOrVar = ((
|
|
97
|
+
valOrVar = ((_d = tokensParsed.font[fontFamily]) == null ? void 0 : _d.letterSpacing[value]) || value;
|
|
103
98
|
}
|
|
104
99
|
if (key === "fontWeight") {
|
|
105
|
-
valOrVar = ((
|
|
100
|
+
valOrVar = ((_e = tokensParsed.font[fontFamily]) == null ? void 0 : _e.weight[value]) || value;
|
|
106
101
|
}
|
|
107
102
|
if (typeof valOrVar !== "undefined") {
|
|
108
|
-
if (valOrVar
|
|
103
|
+
if (isVariable(valOrVar)) {
|
|
109
104
|
return valOrVar.variable;
|
|
110
105
|
} else {
|
|
111
106
|
return valOrVar;
|
|
@@ -128,6 +123,10 @@ const getToken = /* @__PURE__ */ __name((key, value, { tokensParsed, themeParsed
|
|
|
128
123
|
if (spaceVar) {
|
|
129
124
|
return spaceVar.variable;
|
|
130
125
|
}
|
|
126
|
+
if (value && value[0] === "$") {
|
|
127
|
+
console.warn(`\u26A0\uFE0F Missing token in theme ${theme.name}:`, value);
|
|
128
|
+
return null;
|
|
129
|
+
}
|
|
131
130
|
return value;
|
|
132
131
|
}, "getToken");
|
|
133
132
|
const tokenCategories = {
|
|
@@ -13,7 +13,7 @@ import { createMediaStyle } from "./createMediaStyle";
|
|
|
13
13
|
import { fixNativeShadow } from "./fixNativeShadow";
|
|
14
14
|
import { getStylesAtomic } from "./getStylesAtomic";
|
|
15
15
|
import { insertStyleRule } from "./insertStyleRule";
|
|
16
|
-
const getSplitStyles = /* @__PURE__ */ __name((props, staticConfig, theme
|
|
16
|
+
const getSplitStyles = /* @__PURE__ */ __name((props, staticConfig, theme) => {
|
|
17
17
|
const validStyleProps = staticConfig.isText ? stylePropsText : validStyles;
|
|
18
18
|
const viewProps = {};
|
|
19
19
|
const style = [];
|
|
@@ -63,6 +63,9 @@ const getSplitStyles = /* @__PURE__ */ __name((props, staticConfig, theme, isSpl
|
|
|
63
63
|
}
|
|
64
64
|
const out = staticConfig.propMapper(keyInit, valInit, theme, props);
|
|
65
65
|
const expanded = out === true || !out ? [[keyInit, valInit]] : Object.entries(out);
|
|
66
|
+
if (props["debug"]) {
|
|
67
|
+
console.log("wut", keyInit, valInit, out);
|
|
68
|
+
}
|
|
66
69
|
for (const [key, val] of expanded) {
|
|
67
70
|
const keyFirstChar = key[0];
|
|
68
71
|
if (key === "style" || keyFirstChar === "_" && key.startsWith("_style")) {
|
|
@@ -4,7 +4,7 @@ import { useForceUpdate } from "@tamagui/use-force-update";
|
|
|
4
4
|
import { useContext, useEffect, useMemo, useRef, useState } from "react";
|
|
5
5
|
import { GET_DEFAULT_THEME } from "../constants/constants";
|
|
6
6
|
import { useIsomorphicLayoutEffect } from "../constants/platform";
|
|
7
|
-
import {
|
|
7
|
+
import { isVariable } from "../createVariable";
|
|
8
8
|
import { ThemeContext } from "../views/ThemeContext";
|
|
9
9
|
import { ThemeManagerContext } from "../views/ThemeManagerContext";
|
|
10
10
|
const areEqualSets = /* @__PURE__ */ __name((a, b) => {
|
|
@@ -76,7 +76,7 @@ const useTheme = /* @__PURE__ */ __name(() => {
|
|
|
76
76
|
console.warn(`No theme value "${String(key)}" in`, activeTheme, themes);
|
|
77
77
|
return null;
|
|
78
78
|
}
|
|
79
|
-
if (!(val
|
|
79
|
+
if (!isVariable(val)) {
|
|
80
80
|
console.warn("Non variable!", val);
|
|
81
81
|
}
|
|
82
82
|
if (val.name !== key) {
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { styled } from "../styled";
|
|
2
|
+
import { Stack } from "./Stack";
|
|
3
|
+
const AbsoluteFullscreen = styled(Stack, {
|
|
4
|
+
position: "absolute",
|
|
5
|
+
top: 0,
|
|
6
|
+
left: 0,
|
|
7
|
+
right: 0,
|
|
8
|
+
bottom: 0
|
|
9
|
+
});
|
|
10
|
+
globalThis["TamaguiAbsoluteFullscreen"] = AbsoluteFullscreen;
|
|
11
|
+
export {
|
|
12
|
+
AbsoluteFullscreen
|
|
13
|
+
};
|
|
File without changes
|
package/package.json
CHANGED
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tamagui/core",
|
|
3
|
-
"version": "1.0.0-alpha.
|
|
3
|
+
"version": "1.0.0-alpha.62",
|
|
4
4
|
"source": "src/index.ts",
|
|
5
5
|
"main": "dist/cjs",
|
|
6
6
|
"module": "dist/esm",
|
|
7
7
|
"typings": "types",
|
|
8
|
+
"sideEffects": [
|
|
9
|
+
"*.css"
|
|
10
|
+
],
|
|
8
11
|
"scripts": {
|
|
9
12
|
"build": "tamagui-build",
|
|
10
13
|
"watch": "tamagui-build --watch"
|
|
@@ -14,10 +17,10 @@
|
|
|
14
17
|
"dist"
|
|
15
18
|
],
|
|
16
19
|
"dependencies": {
|
|
17
|
-
"@tamagui/helpers": "^1.0.0-alpha.
|
|
20
|
+
"@tamagui/helpers": "^1.0.0-alpha.58",
|
|
18
21
|
"@tamagui/ow": "^0.28.1",
|
|
19
|
-
"@tamagui/use-debounce": "^1.0.0-alpha.
|
|
20
|
-
"@tamagui/use-force-update": "^1.0.0-alpha.
|
|
22
|
+
"@tamagui/use-debounce": "^1.0.0-alpha.58",
|
|
23
|
+
"@tamagui/use-force-update": "^1.0.0-alpha.58",
|
|
21
24
|
"react": "*",
|
|
22
25
|
"react-dom": "*"
|
|
23
26
|
},
|
|
@@ -25,7 +28,7 @@
|
|
|
25
28
|
"react-native-web": "*"
|
|
26
29
|
},
|
|
27
30
|
"devDependencies": {
|
|
28
|
-
"@tamagui/build": "^1.0.0-alpha.
|
|
31
|
+
"@tamagui/build": "^1.0.0-alpha.58",
|
|
29
32
|
"@types/react": "^17.0.35",
|
|
30
33
|
"csstype": "^3.0.10",
|
|
31
34
|
"esbuild": "^0.13.12",
|
|
@@ -35,5 +38,5 @@
|
|
|
35
38
|
"publishConfig": {
|
|
36
39
|
"access": "public"
|
|
37
40
|
},
|
|
38
|
-
"gitHead": "
|
|
41
|
+
"gitHead": "76f3b735226bdb7feffb53e3c8e3fd34392b6a10"
|
|
39
42
|
}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import './tamagui-base.css';
|
|
1
3
|
import { ViewStyle } from 'react-native';
|
|
2
4
|
import { StaticComponent, StaticConfig, StaticConfigParsed } from './types';
|
|
3
5
|
export declare const mouseUps: Set<Function>;
|
|
@@ -13,5 +15,6 @@ export declare function spacedChildren({ isZStack, children, space, flexDirectio
|
|
|
13
15
|
space?: any;
|
|
14
16
|
flexDirection?: ViewStyle['flexDirection'];
|
|
15
17
|
}): any;
|
|
18
|
+
export declare const AbsoluteFill: (props: any) => JSX.Element;
|
|
16
19
|
export {};
|
|
17
20
|
//# sourceMappingURL=createComponent.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createComponent.d.ts","sourceRoot":"","sources":["../src/createComponent.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"createComponent.d.ts","sourceRoot":"","sources":["../src/createComponent.tsx"],"names":[],"mappings":";AAAA,OAAO,oBAAoB,CAAA;AAe3B,OAAO,EAA0B,SAAS,EAAE,MAAM,cAAc,CAAA;AAYhE,OAAO,EAEL,eAAe,EACf,YAAY,EACZ,kBAAkB,EAEnB,MAAM,SAAS,CAAA;AAGhB,eAAO,MAAM,QAAQ,eAAsB,CAAA;AAS3C,aAAK,YAAY,GAAG,EAAE,CAAA;AAuBtB,wBAAgB,eAAe,CAAC,kBAAkB,SAAS,MAAM,GAAG,YAAY,EAC9E,QAAQ,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,kBAAkB,sEAodrD;AAOD,eAAO,MAAM,MAAM;;;iCAyBjB,CAAA;AAEF,wBAAgB,cAAc,CAAC,EAC7B,QAAQ,EACR,QAAQ,EACR,KAAK,EACL,aAAa,GACd,EAAE;IACD,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,QAAQ,EAAE,GAAG,CAAA;IACb,KAAK,CAAC,EAAE,GAAG,CAAA;IACX,aAAa,CAAC,EAAE,SAAS,CAAC,eAAe,CAAC,CAAA;CAC3C,OA0CA;AAED,eAAO,MAAM,YAAY,UAAW,GAAG,gBAKpC,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createTamagui.d.ts","sourceRoot":"","sources":["../src/createTamagui.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,QAAQ,
|
|
1
|
+
{"version":3,"file":"createTamagui.d.ts","sourceRoot":"","sources":["../src/createTamagui.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,QAAQ,EAA8B,MAAM,kBAAkB,CAAA;AAGvE,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EACpB,aAAa,EACb,qBAAqB,EACrB,oBAAoB,EACrB,MAAM,SAAS,CAAA;AAEhB,oBAAY,kBAAkB,GAAG,oBAAoB,GAEnD,OAAO,CAAC,IAAI,CAAC,oBAAoB,EAAE,QAAQ,GAAG,QAAQ,CAAC,CAAC,GAAG;IACzD,MAAM,EAAE,oBAAoB,CAAC,QAAQ,CAAC,CAAA;IACtC,MAAM,EAAE;QACN,CAAC,GAAG,EAAE,MAAM,GAAG;YACb,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,QAAQ,CAAA;SAC1C,CAAA;KACF,CAAA;IAED,uBAAuB,CAAC,EAAE,aAAa,EAAE,CAAA;CAC1C,CAAA;AAIH,wBAAgB,aAAa,CAAC,IAAI,SAAS,kBAAkB,EAC3D,MAAM,EAAE,IAAI,GACX,IAAI,SAAS,mBAAmB,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC,GACnE,qBAAqB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GACjC,OAAO,CAyIV"}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
+
export declare const IS_VARIABLE_SYMBOL = "__isVariable__";
|
|
1
2
|
export declare class Variable {
|
|
3
|
+
[IS_VARIABLE_SYMBOL]: boolean;
|
|
2
4
|
name: string;
|
|
3
5
|
val: string | number;
|
|
4
6
|
variable: string | number;
|
|
@@ -6,7 +8,7 @@ export declare class Variable {
|
|
|
6
8
|
toString(): string;
|
|
7
9
|
}
|
|
8
10
|
declare type VariableIn = {
|
|
9
|
-
val: string | number;
|
|
11
|
+
val: string | number | Variable;
|
|
10
12
|
name: string;
|
|
11
13
|
};
|
|
12
14
|
export declare const createVariable: (props: VariableIn) => Variable;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createVariable.d.ts","sourceRoot":"","sources":["../src/createVariable.ts"],"names":[],"mappings":"AAEA,qBAAa,QAAQ;
|
|
1
|
+
{"version":3,"file":"createVariable.d.ts","sourceRoot":"","sources":["../src/createVariable.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,kBAAkB,mBAAmB,CAAA;AAElD,qBAAa,QAAQ;IAInB,CAAC,kBAAkB,CAAC,UAAO;IAE3B,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;IACpB,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAA;gBAEb,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,UAAU;IAOrC,QAAQ;CAGT;AAED,aAAK,UAAU,GAAG;IAAE,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,QAAQ,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAA;AAEnE,eAAO,MAAM,cAAc,UAAW,UAAU,aAAwB,CAAA;AAExE,wBAAgB,UAAU,CAAC,CAAC,EAAE,QAAQ,GAAG,GAAG,GAAG,CAAC,IAAI,QAAQ,CAE3D"}
|
|
@@ -3,7 +3,7 @@ import { StaticConfigParsed, ThemeObject } from '../types';
|
|
|
3
3
|
export declare type SplitStyles = ReturnType<typeof getSplitStyles>;
|
|
4
4
|
export declare const getSplitStyles: (props: {
|
|
5
5
|
[key: string]: any;
|
|
6
|
-
}, staticConfig: StaticConfigParsed, theme: ThemeObject
|
|
6
|
+
}, staticConfig: StaticConfigParsed, theme: ThemeObject) => {
|
|
7
7
|
viewProps: Record<string, any>;
|
|
8
8
|
style: any[];
|
|
9
9
|
pseudos: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getSplitStyles.d.ts","sourceRoot":"","sources":["../../src/helpers/getSplitStyles.tsx"],"names":[],"mappings":"AAOA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAIxC,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAM1D,oBAAY,WAAW,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAA;AAI3D,eAAO,MAAM,cAAc;;iBAEX,kBAAkB,SACzB,WAAW;;;;;;;;
|
|
1
|
+
{"version":3,"file":"getSplitStyles.d.ts","sourceRoot":"","sources":["../../src/helpers/getSplitStyles.tsx"],"names":[],"mappings":"AAOA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAIxC,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAM1D,oBAAY,WAAW,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAA;AAI3D,eAAO,MAAM,cAAc;;iBAEX,kBAAkB,SACzB,WAAW;;;;;;;;CAyInB,CAAA"}
|