tamagui 1.0.0-alpha.2 → 1.0.0-alpha.3
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/_jsx/views/Button.js +1 -1
- package/_jsx/views/Hoverable.js +1 -1
- package/_jsx/views/HoverablePopover.js +1 -1
- package/_jsx/views/LinearGradient.js +1 -1
- package/_jsx/views/Popover/PopoverProvider.js +1 -1
- package/_jsx/views/SizableText.js +3 -5
- package/dist/index.cjs +7 -9
- package/dist/index.cjs.map +2 -2
- package/dist/views/Button.js +1 -1
- package/dist/views/Button.js.map +1 -1
- package/dist/views/Hoverable.js +1 -1
- package/dist/views/Hoverable.js.map +1 -1
- package/dist/views/HoverablePopover.js +1 -1
- package/dist/views/HoverablePopover.js.map +1 -1
- package/dist/views/LinearGradient.js +1 -1
- package/dist/views/LinearGradient.js.map +1 -1
- package/dist/views/Popover/PopoverProvider.js +1 -1
- package/dist/views/Popover/PopoverProvider.js.map +1 -1
- package/dist/views/SizableText.js +3 -5
- package/dist/views/SizableText.js.map +2 -2
- package/package.json +2 -2
package/_jsx/views/Button.js
CHANGED
|
@@ -2,7 +2,7 @@ import { themeable } from "@tamagui/core";
|
|
|
2
2
|
import React, { forwardRef } from "react";
|
|
3
3
|
import { InteractiveFrame } from "./InteractiveFrame";
|
|
4
4
|
import { SizableText } from "./SizableText";
|
|
5
|
-
React["
|
|
5
|
+
React["createElement"];
|
|
6
6
|
const Button = InteractiveFrame.extractable(themeable(forwardRef(({
|
|
7
7
|
children,
|
|
8
8
|
icon,
|
package/_jsx/views/Hoverable.js
CHANGED
|
@@ -3,7 +3,7 @@ var __name = (target, value) => __defProp(target, "name", { value, configurable:
|
|
|
3
3
|
import { isWeb } from "@tamagui/core";
|
|
4
4
|
import React, { forwardRef, useEffect, useImperativeHandle, useState } from "react";
|
|
5
5
|
import { useDebounce } from "../hooks/useDebounce";
|
|
6
|
-
React["
|
|
6
|
+
React["createElement"];
|
|
7
7
|
const Hoverable = forwardRef(({
|
|
8
8
|
onPressIn,
|
|
9
9
|
onPressOut,
|
|
@@ -4,7 +4,7 @@ import React, { forwardRef, useImperativeHandle, useRef, useState } from "react"
|
|
|
4
4
|
import { useDebounce } from "../hooks/useDebounce";
|
|
5
5
|
import { Hoverable } from "./Hoverable";
|
|
6
6
|
import { Popover } from "./Popover/Popover";
|
|
7
|
-
React["
|
|
7
|
+
React["createElement"];
|
|
8
8
|
const HoverablePopover = forwardRef(({ trigger, delay = 0, children, allowHoverOnContent, disableUntilSettled, ...props }, ref) => {
|
|
9
9
|
const hoverableRef = useRef(null);
|
|
10
10
|
const [isActive, set] = useState(false);
|
|
@@ -4,7 +4,7 @@ import { Stack, useIsomorphicLayoutEffect } from "@tamagui/core";
|
|
|
4
4
|
import React, { useState } from "react";
|
|
5
5
|
import { normalizeColor } from "../helpers/normalizeColor";
|
|
6
6
|
import { useLayout } from "../hooks/useLayout";
|
|
7
|
-
React["
|
|
7
|
+
React["createElement"];
|
|
8
8
|
const LinearGradient = Stack.extractable(({ colors = [], locations, start, end, ...props }) => {
|
|
9
9
|
const [gradientColors, setGradientColors] = useState([]);
|
|
10
10
|
const [pseudoAngle, setPseudoAngle] = useState(0);
|
|
@@ -3,7 +3,7 @@ var __name = (target, value) => __defProp(target, "name", { value, configurable:
|
|
|
3
3
|
import { SSRProvider } from "@react-aria/ssr";
|
|
4
4
|
import { OverlayProvider } from "@react-native-aria/overlays";
|
|
5
5
|
import * as React from "react";
|
|
6
|
-
React["
|
|
6
|
+
React["createElement"];
|
|
7
7
|
const PopoverProvider = /* @__PURE__ */ __name((props) => {
|
|
8
8
|
return <SSRProvider><OverlayProvider>{props.children}</OverlayProvider></SSRProvider>;
|
|
9
9
|
}, "PopoverProvider");
|
|
@@ -5,11 +5,9 @@ const SizableText = styled(Text, {
|
|
|
5
5
|
"...size": (val, { tokens, props }) => {
|
|
6
6
|
const family = typeof props.fontFamily === "string" ? props.fontFamily : props.fontFamily instanceof Variable ? props.fontFamily.val : props.fontFamily || "$body";
|
|
7
7
|
const font = tokens.font[family];
|
|
8
|
-
if (
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
return {};
|
|
12
|
-
}
|
|
8
|
+
if (!font) {
|
|
9
|
+
console.warn("\u26A0\uFE0F no font found", { family, fontTokens: Object.keys(tokens.font), val });
|
|
10
|
+
return {};
|
|
13
11
|
}
|
|
14
12
|
const fontFamily = font.family;
|
|
15
13
|
const fontSize = props.fontSize || font.size[val];
|
package/dist/index.cjs
CHANGED
|
@@ -468,11 +468,9 @@ var SizableText = (0, import_core8.styled)(import_core8.Text, {
|
|
|
468
468
|
"...size": (val, { tokens, props }) => {
|
|
469
469
|
const family = typeof props.fontFamily === "string" ? props.fontFamily : props.fontFamily instanceof import_core8.Variable ? props.fontFamily.val : props.fontFamily || "$body";
|
|
470
470
|
const font = tokens.font[family];
|
|
471
|
-
if (
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
return {};
|
|
475
|
-
}
|
|
471
|
+
if (!font) {
|
|
472
|
+
console.warn("\u26A0\uFE0F no font found", { family, fontTokens: Object.keys(tokens.font), val });
|
|
473
|
+
return {};
|
|
476
474
|
}
|
|
477
475
|
const fontFamily = font.family;
|
|
478
476
|
const fontSize = props.fontSize || font.size[val];
|
|
@@ -500,7 +498,7 @@ var SizableText = (0, import_core8.styled)(import_core8.Text, {
|
|
|
500
498
|
});
|
|
501
499
|
|
|
502
500
|
// src/views/Button.tsx
|
|
503
|
-
import_react5.default["
|
|
501
|
+
import_react5.default["createElement"];
|
|
504
502
|
var Button = InteractiveFrame.extractable((0, import_core9.themeable)((0, import_react5.forwardRef)((_a, ref) => {
|
|
505
503
|
var _b = _a, {
|
|
506
504
|
children,
|
|
@@ -635,7 +633,7 @@ __name(Grid, "Grid");
|
|
|
635
633
|
// src/views/Hoverable.tsx
|
|
636
634
|
var import_core14 = __toModule(require("@tamagui/core"));
|
|
637
635
|
var import_react7 = __toModule(require("react"));
|
|
638
|
-
import_react7.default["
|
|
636
|
+
import_react7.default["createElement"];
|
|
639
637
|
var Hoverable = (0, import_react7.forwardRef)(({
|
|
640
638
|
onPressIn,
|
|
641
639
|
onPressOut,
|
|
@@ -1269,7 +1267,7 @@ PopoverMain.Content = PopoverContent;
|
|
|
1269
1267
|
var Popover = PopoverMain;
|
|
1270
1268
|
|
|
1271
1269
|
// src/views/HoverablePopover.tsx
|
|
1272
|
-
import_react18.default["
|
|
1270
|
+
import_react18.default["createElement"];
|
|
1273
1271
|
var HoverablePopover = (0, import_react18.forwardRef)((_a, ref) => {
|
|
1274
1272
|
var _b = _a, { trigger, delay = 0, children, allowHoverOnContent, disableUntilSettled } = _b, props = __objRest(_b, ["trigger", "delay", "children", "allowHoverOnContent", "disableUntilSettled"]);
|
|
1275
1273
|
const hoverableRef = (0, import_react18.useRef)(null);
|
|
@@ -1399,7 +1397,7 @@ var processColor = /* @__PURE__ */ __name((color) => {
|
|
|
1399
1397
|
}, "processColor");
|
|
1400
1398
|
|
|
1401
1399
|
// src/views/LinearGradient.tsx
|
|
1402
|
-
import_react19.default["
|
|
1400
|
+
import_react19.default["createElement"];
|
|
1403
1401
|
var LinearGradient = import_core17.Stack.extractable((_a) => {
|
|
1404
1402
|
var _b = _a, { colors = [], locations, start, end } = _b, props = __objRest(_b, ["colors", "locations", "start", "end"]);
|
|
1405
1403
|
const [gradientColors, setGradientColors] = (0, import_react19.useState)([]);
|
package/dist/index.cjs.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/index.ts", "../src/hooks/useDebounce.ts", "../src/hooks/useLayout.tsx", "../src/hooks/useSafeAreaInsets.ts", "../src/hooks/useKeyboardDismissable.tsx", "../src/views/BlurView.tsx", "../src/views/Stacks.tsx", "../src/views/Box.tsx", "../src/views/Button.tsx", "../src/views/InteractiveFrame.tsx", "../src/views/SizableText.tsx", "../src/views/Circle.tsx", "../src/views/Separator.tsx", "../src/views/Form.tsx", "../src/views/Grid.tsx", "../src/views/Hoverable.tsx", "../src/views/HoverablePopover.tsx", "../src/views/Popover/Popover.tsx", "../src/hooks/useControllableState.ts", "../src/views/Overlay.tsx", "../src/views/ExitAnimationContext.ts", "../src/views/Popper.tsx", "../src/views/Transitions/PresenceTransition.tsx", "../src/views/Transitions/Transition.tsx", "../src/views/Popover/PopoverArrow.tsx", "../src/views/Popover/PopoverContent.tsx", "../src/views/Popover/PopoverContext.tsx", "../src/views/InteractiveContainer.tsx", "../src/views/Layouts.tsx", "../src/views/LinearGradient.tsx", "../src/helpers/normalizeColor.tsx", "../src/views/Modal.tsx", "../src/helpers/prevent.tsx", "../src/views/Paragraph.tsx", "../src/views/Popover/PopoverProvider.tsx", "../src/views/Table.tsx", "../src/views/Headings.tsx", "../src/views/Toast.tsx", "../src/views/EnsureFlexed.tsx", "../src/views/Tooltip.tsx", "../src/views/TouchableOpacity.tsx", "../src/views/VisuallyHidden.tsx"],
|
|
4
|
-
"sourcesContent": ["export * from '@tamagui/helpers'\nexport * from '@tamagui/core'\n\nexport * from './viewTypes'\n\nexport * from './hooks/useDebounce'\nexport * from './hooks/useLayout'\nexport * from './hooks/useSafeAreaInsets'\nexport * from './hooks/useKeyboardDismissable'\n\nexport * from './views/BlurView'\nexport * from './views/Box'\nexport * from './views/Button'\nexport * from './views/Circle'\nexport * from './views/Separator'\nexport * from './views/Form'\nexport * from './views/Grid'\nexport * from './views/Hoverable'\nexport * from './views/HoverablePopover'\nexport * from './views/InteractiveContainer'\nexport * from './views/Layouts'\nexport * from './views/LinearGradient'\nexport * from './views/Modal'\nexport * from './views/Paragraph'\nexport * from './views/SizableText'\nexport * from './views/Popover/Popover'\nexport * from './views/Popover/PopoverProvider'\nexport * from './views/Stacks'\nexport * from './views/Table'\nexport * from './views/Headings'\nexport * from './views/Toast'\nexport * from './views/EnsureFlexed'\nexport * from './views/Tooltip'\nexport * from './views/TouchableOpacity'\nexport * from './views/Transitions'\nexport * from './views/VisuallyHidden'\n\nexport * from './helpers/prevent'\n", "import { useEffect, useMemo, useRef, useState } from 'react'\n\ntype DebounceSettings = {\n leading?: boolean\n}\n\nexport function debounce<A extends Function>(\n func: A,\n wait?: number,\n leading?: boolean\n): A & {\n cancel: Function\n} {\n let timeout: any\n let isCancelled\n function debounced() {\n isCancelled = false\n // @ts-ignore\n let context = this\n let args = arguments\n if (leading && !timeout) {\n func.apply(context, args)\n }\n clearTimeout(timeout)\n timeout = setTimeout(function () {\n timeout = null\n if (!leading && !isCancelled) {\n func.apply(context, args)\n }\n isCancelled = false\n }, wait)\n }\n debounced.cancel = () => {\n isCancelled = true\n }\n return debounced as any\n}\n\nconst defaultOpts = { leading: false }\n\nexport function useDebounce<\n A extends (...args: any) => any | undefined | null,\n DebouncedFn extends A & {\n cancel: () => void\n }\n>(fn: A, wait: number, options: DebounceSettings = defaultOpts, mountArgs: any[] = []): DebouncedFn {\n const dbEffect = useRef<DebouncedFn | null>(null)\n\n useEffect(() => {\n return () => {\n dbEffect.current?.cancel()\n }\n }, [])\n\n return useMemo(() => {\n dbEffect.current = debounce(fn, wait, options.leading) as unknown as DebouncedFn\n return dbEffect.current\n }, [options.leading, ...mountArgs])\n}\n\n/**\n * Returns a value once it stops changing after \"amt\" time.\n * Note: you may need to memo or this will keep re-rendering\n */\nexport function useDebounceValue<A>(val: A, amt = 0): A {\n const [state, setState] = useState(val)\n\n useEffect(() => {\n let tm = setTimeout(() => {\n setState((prev) => {\n if (prev === val) return prev\n return val\n })\n }, amt)\n\n return () => {\n clearTimeout(tm)\n }\n }, [val])\n\n return state\n}\n", "import { isWeb, useIsomorphicLayoutEffect } from '@tamagui/core'\nimport { useRef, useState } from 'react'\nimport { LayoutChangeEvent, LayoutRectangle } from 'react-native'\n\nexport const useLayout = (props: { stateless?: boolean; onLayout?: (rect: LayoutChangeEvent) => void } = {}) => {\n const [layout, setLayout] = useState<LayoutRectangle | null>(null)\n\n if (!isWeb) {\n return {\n layout,\n onLayout: props.onLayout,\n }\n }\n\n const ref = useRef<any>(null)\n\n useIsomorphicLayoutEffect(() => {\n const node = ref.current\n if (!node) return\n // let hasUpdatedOnce = false\n let last: LayoutRectangle | null = null\n\n const getNextAndCallback = (rect: LayoutRectangle) => {\n let next\n const width = Math.max(1, Math.round(rect.width))\n const height = Math.max(1, Math.round(rect.height))\n // don't set new layout state unless the layout has actually changed\n if (!last || width !== last.width || height !== last.height) {\n next = { width, height }\n }\n if (next) {\n // @ts-expect-error\n props.onLayout?.({ nativeEvent: { layout: next } })\n last = next\n return next\n }\n return last\n }\n\n const update = (rect: LayoutRectangle) => {\n if (props.stateless) {\n getNextAndCallback(rect)\n } else {\n setLayout((p) => getNextAndCallback(rect))\n }\n }\n\n const ro = new ResizeObserver(([{ contentRect }] = []) => {\n update(contentRect)\n })\n ro.observe(node)\n\n return () => {\n ro.disconnect()\n }\n }, [ref])\n\n return {\n layout,\n ref,\n }\n}\n", "export { useSafeAreaInsets } from 'react-native-safe-area-context'\n", "// forked from NativeBase\n// The MIT License (MIT)\n\n// Copyright (c) 2021 GeekyAnts India Pvt Ltd\n\n// Permission is hereby granted, free of charge, to any person obtaining a copy of\n// this software and associated documentation files (the \"Software\"), to deal in\n// the Software without restriction, including without limitation the rights to\n// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\n// the Software, and to permit persons to whom the Software is furnished to do so,\n// subject to the following conditions:\n\n// The above copyright notice and this permission notice shall be included in all\n// copies or substantial portions of the Software.\n\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\n// FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\n// COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\n// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\n// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nimport { isWeb } from '@tamagui/core'\nimport { useEffect } from 'react'\nimport { BackHandler } from 'react-native'\n\ntype IParams = {\n enabled?: boolean\n callback: () => any\n}\n\nlet keyboardDismissHandlers: Array<() => any> = []\nexport const keyboardDismissHandlerManager = {\n push: (handler: () => any) => {\n keyboardDismissHandlers.push(handler)\n return () => {\n keyboardDismissHandlers = keyboardDismissHandlers.filter((h) => h !== handler)\n }\n },\n length: () => keyboardDismissHandlers.length,\n pop: () => {\n return keyboardDismissHandlers.pop()\n },\n}\n\nexport const useKeyboardDismissable = ({ enabled, callback }: IParams) => {\n useEffect(() => {\n let cleanupFn = () => {}\n if (enabled) {\n cleanupFn = keyboardDismissHandlerManager.push(callback)\n } else {\n cleanupFn()\n }\n return () => {\n cleanupFn()\n }\n }, [enabled, callback])\n\n useBackHandler({ enabled, callback })\n}\n\nconst callbackOnEscape = (callback) => (e) => {\n if (e.key === 'Escape') {\n if (\n !(document.activeElement instanceof HTMLInputElement) &&\n !(document.activeElement instanceof HTMLTextAreaElement)\n ) {\n e.preventDefault()\n e.stopPropagation()\n callback()\n }\n }\n}\n\nexport function useBackHandler({ enabled, callback }: IParams) {\n useEffect(() => {\n let backHandler = () => {\n callback()\n return true\n }\n const keyHandler = callbackOnEscape(callback)\n if (enabled) {\n BackHandler.addEventListener('hardwareBackPress', backHandler)\n if (isWeb) {\n window.addEventListener('keydown', keyHandler)\n }\n } else {\n BackHandler.removeEventListener('hardwareBackPress', backHandler)\n }\n return () => {\n BackHandler.removeEventListener('hardwareBackPress', backHandler)\n if (isWeb) {\n window.removeEventListener('keydown', keyHandler)\n }\n }\n }, [enabled, callback])\n}\n", "import { StackProps } from '@tamagui/core'\nimport React from 'react'\n\nimport { YStack } from './Stacks'\n\nexport type BlurViewProps = StackProps & {\n blurAmount?: number // 0 - 100\n blurRadius?: number\n fallbackBackgroundColor?: string\n blurType?:\n | 'xlight'\n | 'light'\n | 'dark'\n // iOS 13+ only\n | 'chromeMaterial'\n | 'material'\n | 'thickMaterial'\n | 'thinMaterial'\n | 'ultraThinMaterial'\n | 'chromeMaterialDark'\n | 'materialDark'\n | 'thickMaterialDark'\n | 'thinMaterialDark'\n | 'ultraThinMaterialDark'\n | 'chromeMaterialLight'\n | 'materialLight'\n | 'thickMaterialLight'\n | 'thinMaterialLight'\n | 'ultraThinMaterialLight'\n // tvOS and iOS 10+ only\n | 'regular'\n | 'prominent'\n // tvOS only\n | 'extraDark'\n downsampleFactor?: number\n}\n\nexport function BlurView({\n children,\n borderRadius,\n fallbackBackgroundColor,\n blurRadius = 20,\n blurType,\n downsampleFactor,\n ...props\n}: BlurViewProps) {\n return (\n // @ts-ignore\n <YStack position=\"relative\" borderRadius={borderRadius} {...props}>\n <div\n // fallback for safari but non customizable\n className=\"backdrop-filter\"\n style={{\n position: 'absolute',\n width: '100%',\n height: '100%',\n backdropFilter: `blur(${blurRadius}px)`,\n // @ts-ignore\n borderRadius,\n zIndex: -1,\n pointerEvents: 'none',\n }}\n />\n {children}\n </YStack>\n )\n}\n", "import { isVariable } from '@tamagui/core'\nimport { Stack, styled } from '@tamagui/core'\n\nexport const YStack = styled(Stack, {\n flexDirection: 'column',\n\n variants: {\n fullscreen: {\n true: {\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n },\n },\n\n elevation: {\n '...size': (size, { tokens, theme }) => {\n const token = tokens.size[size]\n const [height, shadowRadius] = (() => {\n if (isVariable(token)) {\n return [+token.val / 3, +token.val / 2] as const\n }\n return [size / 3, size / 2] as const\n })()\n const shadow = {\n shadowColor: theme.shadowColor,\n shadowRadius,\n shadowOffset: { height, width: 0 },\n }\n return shadow\n },\n },\n },\n})\n\nexport const XStack = styled(YStack, {\n flexDirection: 'row',\n})\n\nexport const ZStack = styled(\n YStack,\n {\n position: 'relative',\n },\n {\n neverFlatten: true,\n isZStack: true,\n }\n)\n", "import { styled } from '@tamagui/core'\n\nimport { YStack } from './Stacks'\n\nexport const Box = styled(YStack, {\n backgroundColor: '$bg2',\n elevation: '$1',\n})\n", "import { TextProps, ThemeableProps, themeable } from '@tamagui/core'\nimport React, { forwardRef } from 'react'\n\nimport { InteractiveFrame, InteractiveFrameProps } from './InteractiveFrame'\nimport { SizableText } from './SizableText'\n\n// bugfix esbuild strips react jsx: 'preserve'\nReact['keep']\n\nexport type ButtonProps = InteractiveFrameProps &\n ThemeableProps & {\n textProps?: Omit<TextProps, 'children'>\n noTextWrap?: boolean\n icon?: JSX.Element | null\n iconAfter?: JSX.Element | null\n }\n\nexport const Button = InteractiveFrame.extractable(\n themeable(\n forwardRef(\n (\n {\n children,\n icon,\n iconAfter,\n space,\n textProps,\n noTextWrap,\n elevation,\n theme: themeName,\n size,\n ...props\n }: ButtonProps,\n ref\n ) => {\n return (\n <InteractiveFrame size={size} space={space ?? size ?? '$2'} ref={ref as any} {...props}>\n {icon}\n {noTextWrap ? (\n children\n ) : !children ? null : textProps ? (\n // flex shrink = 1, flex grow = 0 makes buttons shrink properly in native\n <SizableText\n color=\"$color2\"\n flexGrow={0}\n flexShrink={1}\n ellipse\n size={size}\n {...textProps}\n >\n {children}\n </SizableText>\n ) : (\n <SizableText size={size} color=\"$color2\" flexGrow={0} flexShrink={1} ellipse>\n {children}\n </SizableText>\n )}\n {iconAfter}\n </InteractiveFrame>\n )\n }\n )\n )\n)\n", "import { GetProps, Variable } from '@tamagui/core'\nimport { styled } from '@tamagui/core'\n\nimport { XStack } from './Stacks'\n\n// for use in button-like things\n\nexport const InteractiveFrame = styled(XStack, {\n hitSlop: {\n top: 5,\n left: 5,\n right: 5,\n bottom: 5,\n },\n\n borderRadius: '$1',\n paddingVertical: '$2',\n paddingHorizontal: '$3',\n backgroundColor: '$bg2',\n justifyContent: 'center',\n alignItems: 'center',\n cursor: 'pointer',\n flexWrap: 'nowrap',\n flexDirection: 'row',\n flexShrink: 1,\n\n hoverStyle: {\n backgroundColor: '$bg3',\n },\n\n pressStyle: {\n backgroundColor: '$bg4',\n },\n\n variants: {\n size: {\n '...size': (val = '4', { tokens, props }) => {\n const sizeIndex = Object.keys(tokens.size).indexOf(val)\n const size = tokens.size[sizeIndex] ?? tokens.size[val] ?? val\n const px = Math.round(+(size instanceof Variable ? size.val : size) * 0.8)\n const py = Math.round(+(size instanceof Variable ? size.val : size) * 0.33)\n return {\n paddingHorizontal: px,\n paddingVertical: py,\n borderRadius: py * 0.5,\n }\n },\n },\n\n disabled: {\n true: {\n // TODO enabling this messes up types for some reason\n // pointerEvents: 'none',\n opacity: 0.5,\n hoverStyle: {\n backgroundColor: '$bg',\n },\n },\n },\n\n active: {\n true: {\n backgroundColor: '$bg3',\n },\n },\n\n transparent: {\n true: {\n backgroundColor: 'transparent',\n },\n },\n\n chromeless: {\n true: {\n backgroundColor: 'transparent',\n borderColor: 'transparent',\n shadowColor: 'transparent',\n // this would be a breaking change...\n // hoverStyle: {\n // backgroundColor: 'transparent',\n // },\n },\n },\n },\n})\n\nexport type InteractiveFrameProps = GetProps<typeof InteractiveFrame>\n", "import { GetProps, Text, Variable, styled } from '@tamagui/core'\n\nexport const SizableText = styled(Text, {\n variants: {\n size: {\n // TODO this should be ...fontSize type not working\n '...size': (val, { tokens, props }) => {\n const family = (\n typeof props.fontFamily === 'string'\n ? props.fontFamily\n : props.fontFamily instanceof Variable\n ? props.fontFamily.val\n : props.fontFamily || '$body'\n ) as any\n const font = tokens.font[family]\n if (process.env.NODE_ENV === 'development') {\n if (!font) {\n console.warn('\u26A0\uFE0F no font found', { family, fontTokens: Object.keys(tokens.font), val })\n return {}\n }\n }\n const fontFamily = font.family\n const fontSize = props.fontSize || font.size[val]\n const lineHeight = props.lineHeight || font.lineHeight[val]\n const fontWeight = props.fontWeight || font.weight[val]\n const letterSpacing = props.letterSpacing || font.letterSpacing[val]\n if (fontSize instanceof Variable) {\n return {\n fontFamily,\n fontWeight,\n letterSpacing,\n fontSize,\n lineHeight,\n }\n }\n const fs = +val\n // TODO can have props.sizeLineHeight\n const lh = +val * (Math.log(Math.max(1.6, val)) * 0.01 + 1.1)\n return {\n fontSize: fs,\n lineHeight: lh,\n }\n },\n },\n },\n})\n\nexport type SizableTextProps = GetProps<typeof SizableText>\n", "import { Stack, styled } from '@tamagui/core'\n\nexport const Circle = styled(Stack, {\n alignItems: 'center',\n justifyContent: 'center',\n borderRadius: 100_000_000,\n overflow: 'hidden',\n\n variants: {\n size: {\n '...size': (size, { tokens }) => {\n return {\n width: tokens.size[size] ?? size,\n height: tokens.size[size] ?? size,\n }\n },\n },\n },\n})\n\n// test types\n// const a = <Circle size={100} />\n// const b = <Circle size=\"sm\" />\n// const c = <Circle size=\"nope\" />\n", "import { Stack, styled } from '@tamagui/core'\n\nexport const Separator = styled(Stack, {\n backgroundColor: '$borderColor',\n opacity: 1,\n height: 1,\n\n variants: {\n vertical: {\n true: {\n height: 'auto',\n width: 1,\n alignSelf: 'stretch',\n flex: 0,\n },\n },\n },\n})\n", "import { Stack, styled } from '@tamagui/core'\nimport { TextInput } from 'react-native'\n\nexport const Form = styled(Stack, {\n tag: 'form',\n})\n\n// TODO\n// @ts-ignore\nexport const Input = styled(TextInput, {\n paddingVertical: '$2',\n paddingHorizontal: '$4',\n fontSize: '$4',\n})\n\n// TODO\n// @ts-ignore\nexport const TextArea = styled(TextInput, {\n multiline: true,\n numberOfLines: 4,\n\n paddingVertical: '$2',\n paddingHorizontal: '$4',\n fontSize: '$4',\n})\n\n// TODO\n// type AutocompleteType =\n// | 'cc-csc'\n// | 'cc-exp'\n// | 'cc-exp-month'\n// | 'cc-exp-year'\n// | 'cc-number'\n// | 'email'\n// | 'name'\n// | 'password'\n// | 'postal-code'\n// | 'street-address'\n// | 'tel'\n// | 'username'\n// | 'off'\n", "import { isWeb } from '@tamagui/core'\nimport React from 'react'\n\nimport { XStack } from './Stacks'\n\nexport type GridProps = {\n children?: any\n itemMinWidth?: number\n gap?: any\n columns?: number\n}\n\nexport function Grid({ children, columns, itemMinWidth = 200, gap }: GridProps) {\n if (isWeb) {\n return (\n <div\n style={{\n gap,\n display: 'grid',\n justifyContent: 'stretch',\n // gridTemplateRows: 'repeat(4, 1fr)',\n gridTemplateColumns: `repeat( auto-fit, minmax(${itemMinWidth}px, 1fr) )`,\n // gridTemplateColumns: '1fr 1fr',\n }}\n >\n {children}\n </div>\n )\n }\n\n const childrenList = React.Children.toArray(children)\n\n return (\n <XStack alignItems=\"center\" justifyContent=\"center\" flexWrap=\"wrap\">\n {childrenList.map((child, i) => {\n if (!child) {\n return null\n }\n\n // index key bad\n return (\n <XStack key={i} flex={1} minWidth={itemMinWidth} marginRight={gap} marginBottom={gap}>\n {child}\n </XStack>\n )\n })}\n </XStack>\n )\n}\n", "import { isWeb } from '@tamagui/core'\nimport React, { forwardRef, useEffect, useImperativeHandle, useState } from 'react'\n\nimport { useDebounce } from '../hooks/useDebounce'\n\n// bugfix esbuild strips react jsx: 'preserve'\nReact['keep']\n\ntype SpanProps = React.DOMAttributes<HTMLSpanElement>\n\nexport type HoverableProps = {\n children?: any\n disableUntilSettled?: boolean\n hoverDelay?: number\n onHoverIn?: () => void\n onHoverOut?: () => void\n onPressIn?: SpanProps['onMouseDown']\n onPressOut?: SpanProps['onClick']\n}\n\nexport type HoverableHandle = {\n close: () => void\n}\n\nexport const Hoverable = forwardRef<HoverableHandle, HoverableProps>(\n (\n {\n onPressIn,\n onPressOut,\n onHoverIn,\n onHoverOut,\n disableUntilSettled,\n hoverDelay = 0,\n children,\n }: HoverableProps,\n ref\n ) => {\n if (!isWeb) {\n return children\n }\n\n const [isActive, set] = useState(false)\n const setOffSlow = useDebounce(() => set(false), hoverDelay / 2) // math.min(a bit less than in)\n const setOnSlow = useDebounce(() => set(true), hoverDelay)\n const cancelAll = () => {\n setOnSlow.cancel()\n setOffSlow.cancel()\n }\n\n useImperativeHandle(ref, () => ({\n close: () => {\n set(false)\n },\n }))\n\n useEffect(() => {\n if (isActive) {\n onHoverIn?.()\n } else {\n onHoverOut?.()\n }\n }, [isActive])\n\n const setOff = () => {\n cancelAll()\n setOffSlow()\n }\n const setOn = () => {\n cancelAll()\n setOnSlow()\n }\n\n return (\n <span\n ref={ref as any}\n style={{\n display: 'contents',\n }}\n onMouseEnter={setOn}\n onMouseLeave={setOff}\n onMouseMove={disableUntilSettled ? setOn : undefined}\n onMouseDown={onPressIn}\n onClick={onPressOut}\n >\n {children}\n </span>\n )\n }\n)\n", "import { isTouchDevice } from '@tamagui/core'\nimport React, { forwardRef, useImperativeHandle, useRef, useState } from 'react'\nimport { Pressable } from 'react-native'\n\nimport { useDebounce } from '../hooks/useDebounce'\nimport { Hoverable, HoverableHandle } from './Hoverable'\nimport { Popover } from './Popover/Popover'\nimport { IPopoverProps } from './Popover/types'\n\n// bugfix esbuild strips react jsx: 'preserve'\nReact['keep']\n\nexport type HoverablePopoverHandle = {\n close: () => void\n}\n\nexport type HoverablePopoverProps = IPopoverProps & {\n delay?: number\n // fallbackToPress?: boolean\n allowHoverOnContent?: boolean\n disableUntilSettled?: boolean\n}\n\nexport const HoverablePopover = forwardRef<HoverablePopoverHandle, HoverablePopoverProps>(\n ({ trigger, delay = 0, children, allowHoverOnContent, disableUntilSettled, ...props }, ref) => {\n const hoverableRef = useRef<HoverableHandle>(null)\n const [isActive, set] = useState(false)\n\n // these are debounced only to allow jump betewen target/trigger\n // ..and to make content trigger faster than trigger\n // todo subtract from inner delay\n const setOffSlow = useDebounce(() => set(false), allowHoverOnContent ? 20 : 0)\n const setOnSlow = useDebounce(() => set(true), allowHoverOnContent ? 40 : 0)\n const cancelAll = () => {\n setOnSlow.cancel()\n setOffSlow.cancel()\n }\n\n const setOff = () => {\n cancelAll()\n setOffSlow()\n }\n const setOn = () => {\n cancelAll()\n setOnSlow()\n }\n\n useImperativeHandle(ref, () => ({\n close: () => {\n cancelAll()\n set(false)\n hoverableRef.current?.close()\n },\n }))\n\n // if (isTouchDevice && !fallbackToPress) {\n // return trigger(null as any, { open: false })\n // }\n\n return (\n <Popover\n isOpen={isActive}\n {...props}\n trigger={(triggerProps, state) => {\n return (\n <Hoverable\n ref={hoverableRef}\n disableUntilSettled={disableUntilSettled}\n onHoverIn={setOn}\n onHoverOut={setOff}\n hoverDelay={delay}\n >\n {trigger(triggerProps, state)}\n </Hoverable>\n )\n }}\n >\n {(openProps) => {\n const childrenElements = typeof children === 'function' ? children(openProps) : children\n return (\n <Popover.Content>\n {allowHoverOnContent ? (\n <Hoverable onHoverIn={setOn} onHoverOut={setOff}>\n {childrenElements}\n </Hoverable>\n ) : (\n childrenElements\n )}\n </Popover.Content>\n )\n }}\n </Popover>\n )\n }\n)\n\n// {isTouchDevice && fallbackToPress ? (\n// children\n// ) : allowHoverOnContent ? (\n// <Hoverable onActive={setOn} onInactive={setOff}>\n// {children}\n// </Hoverable>\n// ) : (\n// children\n// )}\n\n// const HoverOrToggle = (props: {\n// fallbackToPress?: boolean\n// onActive?: () => void\n// onInactive?: () => void\n// children?: any\n// }) => {\n// return (\n// <Hoverable onHoverIn={onActive} onHoverOut={onInactive}>\n// {children}\n// </Hoverable>\n// )\n\n// // // TODO causes SSR issues\n// // if (isTouchDevice) {\n// // const [isOn, setIsOn] = useState(false)\n// // if (!fallbackToPress) {\n// // return children\n// // }\n// // return (\n// // <Pressable\n// // onPress={() => {\n// // setIsOn((x) => {\n// // const next = !x\n// // next ? onActive?.() : onInactive?.()\n// // return next\n// // })\n// // }}\n// // >\n// // {children}\n// // </Pressable>\n// // )\n// // } else {\n// // return (\n// // <Hoverable onHoverIn={onActive} onHoverOut={onInactive}>\n// // {children}\n// // </Hoverable>\n// // )\n// // }\n// }\n", "// forked from NativeBase\n// The MIT License (MIT)\n\n// Copyright (c) 2021 GeekyAnts India Pvt Ltd\n\n// Permission is hereby granted, free of charge, to any person obtaining a copy of\n// this software and associated documentation files (the \"Software\"), to deal in\n// the Software without restriction, including without limitation the rights to\n// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\n// the Software, and to permit persons to whom the Software is furnished to do so,\n// subject to the following conditions:\n\n// The above copyright notice and this permission notice shall be included in all\n// copies or substantial portions of the Software.\n\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\n// FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\n// COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\n// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\n// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nimport { useId } from '@react-aria/utils'\nimport { FocusScope } from '@react-native-aria/focus'\nimport React, { forwardRef, memo } from 'react'\nimport { StyleSheet, View } from 'react-native'\n\nimport { useControllableState } from '../../hooks/useControllableState'\nimport { Overlay } from '../Overlay'\nimport { Popper } from '../Popper'\nimport { PresenceTransition } from '../Transitions/PresenceTransition'\nimport { PopoverArrow } from './PopoverArrow'\nimport { PopoverContent } from './PopoverContent'\nimport { PopoverContext } from './PopoverContext'\nimport type { IPopoverProps } from './types'\n\ninterface PopoverI extends React.FunctionComponent<IPopoverProps> {\n Arrow: typeof PopoverArrow\n Content: typeof PopoverContent\n}\n\nconst PopoverMain = memo(\n forwardRef(\n (\n {\n onOpen,\n trigger,\n onClose,\n isOpen: isOpenProp,\n children,\n defaultIsOpen,\n initialFocusRef,\n finalFocusRef,\n trapFocus = true,\n onChangeOpen,\n ...props\n }: IPopoverProps,\n ref: any\n ) => {\n const triggerRef = React.useRef(null)\n const [isOpen, setIsOpen] = useControllableState({\n value: isOpenProp,\n defaultValue: defaultIsOpen,\n onChange: (value) => {\n onChangeOpen?.(value)\n value ? onOpen && onOpen() : onClose && onClose()\n },\n })\n\n const [bodyMounted, setBodyMounted] = React.useState(false)\n const [headerMounted, setHeaderMounted] = React.useState(false)\n\n const popoverContentId = `${useId()}-content`\n const headerId = `${popoverContentId}-header`\n const bodyId = `${popoverContentId}-body`\n\n const handleOpen = React.useCallback(() => {\n setIsOpen(true)\n }, [setIsOpen])\n\n const updatedTrigger = () => {\n return trigger(\n {\n ref: triggerRef,\n onPress: handleOpen,\n 'aria-expanded': isOpen ? true : false,\n 'aria-controls': isOpen ? popoverContentId : undefined,\n 'aria-haspopup': true,\n },\n { open: isOpen }\n )\n }\n\n const handleClose = () => {\n setIsOpen(false)\n }\n\n const childrenElements = typeof children === 'function' ? children({ open: isOpen }) : children\n\n return (\n <>\n <View style={{ display: 'none' }} ref={ref}></View>\n {updatedTrigger()}\n <Overlay isOpen={isOpen} onRequestClose={handleClose} useRNModalOnAndroid>\n <PresenceTransition\n initial={{ opacity: 0 }}\n animate={{ opacity: 1, transition: { duration: 150 } }}\n exit={{ opacity: 0, scale: 0.95, transition: { duration: 100 } }}\n visible={isOpen}\n style={StyleSheet.absoluteFill}\n >\n <Popper onClose={handleClose} triggerRef={triggerRef} {...props}>\n {/* <AbsoluteYStack\n fullscreen\n pointerEvents=\"auto\"\n backgroundColor=\"rgba(0,0,0,0.1)\"\n onPress={handleClose}\n /> */}\n <PopoverContext.Provider\n value={{\n onClose: handleClose,\n initialFocusRef,\n finalFocusRef,\n popoverContentId,\n bodyId,\n headerId,\n headerMounted,\n bodyMounted,\n setBodyMounted,\n setHeaderMounted,\n }}\n >\n <FocusScope contain={trapFocus} restoreFocus autoFocus>\n {childrenElements}\n </FocusScope>\n </PopoverContext.Provider>\n </Popper>\n </PresenceTransition>\n </Overlay>\n </>\n )\n }\n )\n) as any as PopoverI\n\nPopoverMain.Arrow = PopoverArrow\nPopoverMain.Content = PopoverContent\n\nexport const Popover = PopoverMain as PopoverI\n", "// forked from NativeBase\n// The MIT License (MIT)\n\n// Copyright (c) 2021 GeekyAnts India Pvt Ltd\n\n// Permission is hereby granted, free of charge, to any person obtaining a copy of\n// this software and associated documentation files (the \"Software\"), to deal in\n// the Software without restriction, including without limitation the rights to\n// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\n// the Software, and to permit persons to whom the Software is furnished to do so,\n// subject to the following conditions:\n\n// The above copyright notice and this permission notice shall be included in all\n// copies or substantial portions of the Software.\n\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\n// FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\n// COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\n// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\n// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nimport React from 'react'\n\nexport function useControllableProp<T>(prop: T | undefined, state: T) {\n const { current: isControlled } = React.useRef(prop !== undefined)\n const value = isControlled && typeof prop !== 'undefined' ? prop : state\n return [isControlled, value] as const\n}\n\nexport interface UseControllableStateProps<T> {\n /**\n * The value to used in controlled mode\n */\n value?: T\n /**\n * The initial value to be used, in uncontrolled mode\n */\n defaultValue?: T | (() => T)\n /**\n * The callback fired when the value changes\n */\n onChange?: (value: T) => void\n /**\n * The component name (for warnings)\n */\n name?: string\n}\n\n/**\n * React hook for using controlling component state.\n * @param props\n */\nexport function useControllableState<T>(props: UseControllableStateProps<T>) {\n const { value: valueProp, defaultValue, onChange } = props\n\n const [valueState, setValue] = React.useState(defaultValue as T)\n const isControlled = valueProp !== undefined\n\n const value = isControlled ? (valueProp as T) : valueState\n\n const updateValue = React.useCallback(\n (next: any) => {\n const nextValue = typeof next === 'function' ? next(value) : next\n if (!isControlled) {\n setValue(nextValue)\n }\n onChange && onChange(nextValue)\n },\n [isControlled, onChange, value]\n )\n\n return [value, updateValue] as [T, React.Dispatch<React.SetStateAction<T>>]\n}\n", "// forked from NativeBase\n// The MIT License (MIT)\n\n// Copyright (c) 2021 GeekyAnts India Pvt Ltd\n\n// Permission is hereby granted, free of charge, to any person obtaining a copy of\n// this software and associated documentation files (the \"Software\"), to deal in\n// the Software without restriction, including without limitation the rights to\n// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\n// the Software, and to permit persons to whom the Software is furnished to do so,\n// subject to the following conditions:\n\n// The above copyright notice and this permission notice shall be included in all\n// copies or substantial portions of the Software.\n\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\n// FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\n// COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\n// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\n// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nimport { OverlayContainer } from '@react-native-aria/overlays'\nimport React from 'react'\nimport { Platform } from 'react-native'\nimport { Modal } from 'react-native'\n\nimport { useKeyboardDismissable } from '../hooks/useKeyboardDismissable'\nimport { ExitAnimationContext } from './ExitAnimationContext'\n\n// import { ExitAnimationContext } from './ExitAnimationContext';\n\ninterface IOverlayProps {\n isOpen?: boolean\n children?: any\n // We use RN modal on android if needed as it supports shifting accessiblity focus to the opened view. IOS automatically shifts focus if an absolutely placed view appears in front.\n useRNModalOnAndroid?: boolean\n onRequestClose?: (() => any) | undefined\n isKeyboardDismissable?: boolean\n}\n\nexport function Overlay({\n children,\n isOpen,\n useRNModalOnAndroid = false,\n isKeyboardDismissable = true,\n onRequestClose,\n}: IOverlayProps) {\n const [exited, setExited] = React.useState(!isOpen)\n\n useKeyboardDismissable({\n enabled: isOpen && isKeyboardDismissable,\n callback: onRequestClose ? onRequestClose : () => {},\n })\n\n if (exited && !isOpen) {\n return null\n }\n\n // Android handles multiple Modal in RN and is better for accessibility as it shifts accessibility focus on mount, however it may not needed in case of tooltips, toast where one doesn't need to shift accessibility focus\n if (Platform.OS === 'android' && useRNModalOnAndroid) {\n return (\n <ExitAnimationContext.Provider value={{ exited, setExited }}>\n <Modal transparent visible={true} onRequestClose={onRequestClose}>\n {children}\n </Modal>\n </ExitAnimationContext.Provider>\n )\n }\n\n // Since OverlayContainer mounts children in NativeBaseProvider using Context, we need to pass the context by wrapping children\n return (\n <OverlayContainer>\n <ExitAnimationContext.Provider value={{ exited, setExited }}>{children}</ExitAnimationContext.Provider>\n </OverlayContainer>\n )\n}\n", "// forked from NativeBase\n// The MIT License (MIT)\n\n// Copyright (c) 2021 GeekyAnts India Pvt Ltd\n\n// Permission is hereby granted, free of charge, to any person obtaining a copy of\n// this software and associated documentation files (the \"Software\"), to deal in\n// the Software without restriction, including without limitation the rights to\n// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\n// the Software, and to permit persons to whom the Software is furnished to do so,\n// subject to the following conditions:\n\n// The above copyright notice and this permission notice shall be included in all\n// copies or substantial portions of the Software.\n\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\n// FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\n// COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\n// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\n// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nimport { createContext } from 'react'\n\nexport const ExitAnimationContext = createContext({\n exited: true,\n setExited: (_exited: boolean) => {},\n})\n", "// forked from NativeBase\n// The MIT License (MIT)\n\n// Copyright (c) 2021 GeekyAnts India Pvt Ltd\n\n// Permission is hereby granted, free of charge, to any person obtaining a copy of\n// this software and associated documentation files (the \"Software\"), to deal in\n// the Software without restriction, including without limitation the rights to\n// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\n// the Software, and to permit persons to whom the Software is furnished to do so,\n// subject to the following conditions:\n\n// The above copyright notice and this permission notice shall be included in all\n// copies or substantial portions of the Software.\n\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\n// FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\n// COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\n// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\n// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nimport { useOverlayPosition } from '@react-native-aria/overlays'\nimport { StackProps } from '@tamagui/core'\nimport type { ReactElement, RefObject } from 'react'\nimport React, { createContext, useContext, useEffect, useRef } from 'react'\nimport { StyleSheet, View, ViewStyle } from 'react-native'\n\nimport { YStack } from './Stacks'\n\nexport type IPopoverArrowProps = {\n height?: any\n width?: any\n children?: any\n color?: any\n style?: any\n}\n\nexport type IPlacement =\n | 'top'\n | 'bottom'\n | 'left'\n | 'right'\n | 'top left'\n | 'top right'\n | 'bottom left'\n | 'bottom right'\n | 'right top'\n | 'right bottom'\n | 'left top'\n | 'left bottom'\n\nexport type IPopperProps = {\n shouldFlip?: boolean\n crossOffset?: number\n offset?: number\n children: React.ReactNode\n shouldOverlapWithTrigger?: boolean\n trigger?: ReactElement | RefObject<any>\n placement?: IPlacement\n}\n\nexport type IArrowStyles = {\n placement?: string\n height?: number\n width?: number\n}\n\nexport type IScrollContentStyle = {\n placement?: string\n arrowHeight: number\n arrowWidth: number\n}\n\nconst defaultArrowHeight = 15\nconst defaultArrowWidth = 15\n\nconst getDiagonalLength = (height: number, width: number) => {\n return Math.pow(height * height + width * width, 0.5)\n}\n\ntype PopperContext = IPopperProps & {\n triggerRef: any\n onClose: any\n setOverlayRef?: (overlayRef: any) => void\n}\n\nconst PopperContext = createContext<PopperContext | null>(null)\n\nexport const Popper = (\n props: IPopperProps & {\n triggerRef: any\n onClose: any\n setOverlayRef?: (overlayRef: any) => void\n }\n) => {\n return <PopperContext.Provider value={props}>{props.children}</PopperContext.Provider>\n}\n\nconst PopperContent = React.forwardRef(({ children, style, ...rest }: any, ref: any) => {\n const context = useContext(PopperContext) || ({} as any)\n const {\n triggerRef,\n shouldFlip,\n crossOffset,\n offset,\n placement: placementProp,\n onClose,\n shouldOverlapWithTrigger,\n setOverlayRef,\n } = context\n const overlayRef = useRef(null)\n // const { top } = useSafeAreaInsets();\n const { overlayProps, rendered, arrowProps, placement } = useOverlayPosition({\n targetRef: triggerRef,\n overlayRef,\n shouldFlip: shouldFlip,\n crossOffset: crossOffset,\n isOpen: true,\n offset: offset,\n placement: placementProp as any,\n containerPadding: 0,\n onClose: onClose,\n shouldOverlapWithTrigger,\n })\n\n let restElements: React.ReactNode[] = []\n let arrowElement: React.ReactElement | null = null\n\n useEffect(() => {\n setOverlayRef && setOverlayRef(overlayRef)\n }, [overlayRef, setOverlayRef])\n\n // Might have performance impact if there are a lot of siblings!\n // Shouldn't be an issue with popovers since it would have atmost 2. Arrow and Content.\n React.Children.forEach(children, (child) => {\n if (\n React.isValidElement(child) &&\n // @ts-ignore\n child.type.displayName === 'PopperArrow'\n ) {\n arrowElement = React.cloneElement(child, {\n // @ts-ignore\n arrowProps,\n actualPlacement: placement,\n })\n } else {\n restElements.push(child)\n }\n })\n\n let arrowHeight = 0\n let arrowWidth = 0\n\n if (arrowElement) {\n arrowHeight = defaultArrowHeight\n arrowWidth = defaultArrowWidth\n //@ts-ignore\n if (arrowElement.props.height) {\n //@ts-ignore\n arrowHeight = arrowElement.props.height\n }\n //@ts-ignore\n if (arrowElement.props.width) {\n //@ts-ignore\n arrowWidth = arrowElement.props.width\n }\n }\n\n const containerStyle = React.useMemo(\n () =>\n getContainerStyle({\n placement,\n arrowHeight,\n arrowWidth,\n }),\n [arrowHeight, arrowWidth, placement]\n )\n\n // TODO move this over to snack views\n const overlayStyle = React.useMemo(\n () =>\n StyleSheet.create({\n overlay: {\n ...overlayProps.style,\n // To handle translucent android StatusBar\n // marginTop: Platform.select({ android: top, default: 0 }),\n opacity: rendered ? 1 : 0,\n position: 'absolute',\n },\n }),\n [rendered, overlayProps.style]\n )\n\n return (\n <View ref={overlayRef} collapsable={false} style={overlayStyle.overlay}>\n {arrowElement}\n <View style={StyleSheet.flatten([containerStyle, style])} {...rest} ref={ref}>\n {restElements}\n </View>\n </View>\n )\n})\n\n// This is an internal implementation of PopoverArrow\nexport type PopperArrowProps = StackProps\n\n// TODO fix types\nconst PopperArrow = React.forwardRef(\n (\n {\n height = defaultArrowHeight,\n width = defaultArrowWidth,\n\n //@ts-ignore - Will be passed by React.cloneElement from PopperContent\n arrowProps,\n //@ts-ignore - Will be passed by React.cloneElement from PopperContent\n actualPlacement,\n style,\n borderColor = '#52525b',\n backgroundColor = 'black',\n ...rest\n }: PopperArrowProps,\n ref: any\n ) => {\n const additionalStyles = React.useMemo(\n // @ts-ignore\n () => getArrowStyles({ placement: actualPlacement, height, width }),\n [actualPlacement, height, width]\n )\n\n // @ts-ignore\n let triangleStyle: ViewStyle = React.useMemo(\n () => ({\n position: 'absolute',\n width,\n height,\n }),\n [width, height]\n )\n\n let arrowStyles = React.useMemo(\n // @ts-ignore\n () => [arrowProps.style, triangleStyle, additionalStyles, style],\n // @ts-ignore\n [triangleStyle, additionalStyles, arrowProps.style, style]\n )\n\n return (\n // @ts-ignore TODO\n <YStack\n ref={ref}\n style={arrowStyles}\n borderColor={borderColor}\n backgroundColor={backgroundColor}\n zIndex={1}\n {...rest}\n />\n )\n }\n)\n\nconst getArrowStyles = (props: IArrowStyles) => {\n let additionalStyles: any = {\n transform: [],\n }\n\n const diagonalLength = getDiagonalLength(defaultArrowHeight, defaultArrowHeight)\n\n if (props.placement === 'top' && props.width) {\n additionalStyles.transform.push({ translateX: -props.width / 2 })\n additionalStyles.transform.push({ rotate: '45deg' })\n additionalStyles.bottom = Math.ceil((diagonalLength - defaultArrowHeight) / 2)\n additionalStyles.borderBottomWidth = 1\n additionalStyles.borderRightWidth = 1\n }\n\n if (props.placement === 'bottom' && props.width) {\n additionalStyles.transform.push({ translateX: -props.width / 2 })\n additionalStyles.transform.push({ rotate: '45deg' })\n additionalStyles.top = Math.ceil((diagonalLength - defaultArrowHeight) / 2)\n additionalStyles.borderTopWidth = 1\n additionalStyles.borderLeftWidth = 1\n }\n\n if (props.placement === 'left' && props.height) {\n additionalStyles.transform.push({ translateY: -props.height / 2 })\n additionalStyles.transform.push({ rotate: '45deg' })\n additionalStyles.right = Math.ceil((diagonalLength - defaultArrowHeight) / 2)\n additionalStyles.borderTopWidth = 1\n additionalStyles.borderRightWidth = 1\n }\n\n if (props.placement === 'right' && props.height) {\n additionalStyles.transform.push({ translateY: -props.height / 2 })\n additionalStyles.transform.push({ rotate: '45deg' })\n additionalStyles.left = Math.ceil((diagonalLength - defaultArrowHeight) / 2)\n additionalStyles.borderBottomWidth = 1\n additionalStyles.borderLeftWidth = 1\n }\n\n return additionalStyles\n}\n\nconst getContainerStyle = ({ placement, arrowHeight }: IScrollContentStyle) => {\n const diagonalLength = getDiagonalLength(arrowHeight, arrowHeight) / 2\n if (placement === 'top') {\n return { marginBottom: diagonalLength }\n }\n if (placement === 'bottom') {\n return { marginTop: diagonalLength }\n }\n if (placement === 'left') {\n return { marginRight: diagonalLength }\n }\n if (placement === 'right') {\n return { marginLeft: diagonalLength }\n }\n return {}\n}\n\nPopperArrow.displayName = 'PopperArrow'\nPopper.Content = PopperContent\nPopper.Arrow = PopperArrow\n", "// forked from NativeBase\n// The MIT License (MIT)\n\n// Copyright (c) 2021 GeekyAnts India Pvt Ltd\n\n// Permission is hereby granted, free of charge, to any person obtaining a copy of\n// this software and associated documentation files (the \"Software\"), to deal in\n// the Software without restriction, including without limitation the rights to\n// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\n// the Software, and to permit persons to whom the Software is furnished to do so,\n// subject to the following conditions:\n\n// The above copyright notice and this permission notice shall be included in all\n// copies or substantial portions of the Software.\n\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\n// FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\n// COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\n// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\n// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nimport React, { forwardRef, memo } from 'react'\n\nimport { ExitAnimationContext } from '../ExitAnimationContext'\nimport { Transition } from './Transition'\nimport type { IPresenceTransitionProps } from './types'\n\nexport const PresenceTransition = memo(\n forwardRef(({ visible = false, onTransitionComplete, ...rest }: IPresenceTransitionProps, ref: any) => {\n const [animationExited, setAnimationExited] = React.useState(!visible)\n\n const { setExited } = React.useContext(ExitAnimationContext)\n\n if (!visible && animationExited) {\n return null\n }\n\n return (\n <Transition\n visible={visible}\n onTransitionComplete={(state) => {\n if (state === 'exited') {\n setAnimationExited(true)\n setExited(true)\n } else {\n setAnimationExited(false)\n setExited(false)\n }\n onTransitionComplete && onTransitionComplete(state)\n }}\n {...rest}\n ref={ref}\n />\n )\n })\n)\n", "// forked from NativeBase\n// The MIT License (MIT)\n\n// Copyright (c) 2021 GeekyAnts India Pvt Ltd\n\n// Permission is hereby granted, free of charge, to any person obtaining a copy of\n// this software and associated documentation files (the \"Software\"), to deal in\n// the Software without restriction, including without limitation the rights to\n// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\n// the Software, and to permit persons to whom the Software is furnished to do so,\n// subject to the following conditions:\n\n// The above copyright notice and this permission notice shall be included in all\n// copies or substantial portions of the Software.\n\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\n// FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\n// COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\n// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\n// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nimport React, { forwardRef, useEffect, useMemo, useRef } from 'react'\nimport { Animated } from 'react-native'\n\nimport type { ISupportedTransitions, ITransitionConfig, ITransitionProps } from './types'\n\nconst transformStylesMap = {\n translateY: true,\n translateX: true,\n scale: true,\n scaleX: true,\n scaleY: true,\n rotate: true,\n}\n\nconst defaultStyles = {\n opacity: 1,\n translateY: 0,\n translateX: 0,\n scale: 1,\n scaleX: 1,\n scaleY: 1,\n rotate: '0deg',\n}\n\nconst getAnimatedStyles = (animateValue: any) => (initial: ISupportedTransitions, to: ISupportedTransitions) => {\n const styles: any = {\n transform: [],\n }\n for (let key in initial) {\n if (key === 'transition') {\n continue\n }\n\n if (key in transformStylesMap) {\n styles.transform?.push({\n [key]: animateValue.interpolate({\n inputRange: [0, 1],\n outputRange: [(initial as any)[key], (to as any)[key]],\n }),\n } as any)\n } else {\n styles[key] = animateValue.interpolate({\n inputRange: [0, 1],\n outputRange: [(initial as any)[key], (to as any)[key]],\n })\n }\n }\n\n return styles\n}\n\nconst defaultTransitionConfig: ITransitionConfig = {\n type: 'timing',\n useNativeDriver: true,\n duration: 250,\n delay: 0,\n}\n\nexport const Transition = forwardRef(\n (\n {\n children,\n onTransitionComplete,\n visible = false,\n initial,\n animate,\n exit,\n style,\n as,\n ...rest\n }: ITransitionProps,\n ref: any\n ) => {\n const animateValue = useRef(new Animated.Value(0)).current\n\n const Component = useMemo(() => {\n if (as) {\n return Animated.createAnimatedComponent(as)\n }\n return Animated.View\n }, [as])\n\n const [animationState, setAnimationState] = React.useState(visible ? 'entering' : 'exited')\n\n const prevVisible = useRef(visible)\n\n useEffect(\n function startEntryTransition() {\n const entryTransition = {\n ...defaultTransitionConfig,\n ...animate?.transition,\n }\n\n if (visible) {\n Animated.sequence([\n // @ts-ignore - delay is present in defaultTransitionConfig\n Animated.delay(entryTransition.delay),\n Animated[entryTransition.type ?? 'timing'](animateValue, {\n toValue: 1,\n useNativeDriver: true,\n ...entryTransition,\n }),\n ]).start(() => {\n setAnimationState('entered')\n })\n }\n },\n [visible, onTransitionComplete, animateValue, animate]\n )\n\n useEffect(() => {\n // Exit request\n if (prevVisible.current !== visible && !visible) {\n setAnimationState('exiting')\n }\n prevVisible.current = visible\n }, [visible])\n\n useEffect(\n function startExitTransition() {\n const exitTransition = {\n ...defaultTransitionConfig,\n ...exit?.transition,\n }\n\n if (animationState === 'exiting') {\n Animated.sequence([\n // @ts-ignore - delay is present in defaultTransitionConfig\n Animated.delay(exitTransition.delay),\n Animated[exitTransition.type ?? 'timing'](animateValue, {\n toValue: 0,\n useNativeDriver: true,\n ...exitTransition,\n }),\n ]).start(() => {\n setAnimationState('exited')\n })\n }\n },\n [exit, onTransitionComplete, setAnimationState, animationState, animateValue]\n )\n\n // If exit animation is present and state is exiting, we replace 'initial' with 'exit' animation\n initial =\n animationState === 'exiting' && exit ? { ...defaultStyles, ...exit } : { ...defaultStyles, ...initial }\n\n animate = { ...defaultStyles, ...animate }\n\n const styles = useMemo(() => {\n return [\n getAnimatedStyles(animateValue)(initial as ISupportedTransitions, animate as ISupportedTransitions),\n style,\n ]\n }, [animateValue, initial, animate, style])\n\n useEffect(() => {\n if (animationState === 'exited') {\n onTransitionComplete && onTransitionComplete('exited')\n } else if (animationState === 'entered') {\n onTransitionComplete && onTransitionComplete('entered')\n }\n }, [animationState, onTransitionComplete])\n\n return (\n <Component\n pointerEvents=\"box-none\"\n // https://github.com/facebook/react-native/issues/23090#issuecomment-710803743\n needsOffscreenAlphaCompositing\n style={styles}\n ref={ref}\n {...rest}\n >\n {children}\n </Component>\n )\n }\n)\n", "// forked from NativeBase\n// The MIT License (MIT)\n\n// Copyright (c) 2021 GeekyAnts India Pvt Ltd\n\n// Permission is hereby granted, free of charge, to any person obtaining a copy of\n// this software and associated documentation files (the \"Software\"), to deal in\n// the Software without restriction, including without limitation the rights to\n// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\n// the Software, and to permit persons to whom the Software is furnished to do so,\n// subject to the following conditions:\n\n// The above copyright notice and this permission notice shall be included in all\n// copies or substantial portions of the Software.\n\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\n// FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\n// COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\n// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\n// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nimport React from 'react'\n\nimport { Popper, PopperArrowProps } from '../Popper'\n\nexport const PopoverArrow = React.forwardRef((props: PopperArrowProps, ref: any) => {\n return <Popper.Arrow {...props} ref={ref} />\n})\n\nPopoverArrow.displayName = 'PopoverArrow'\n", "// forked from NativeBase\n// The MIT License (MIT)\n\n// Copyright (c) 2021 GeekyAnts India Pvt Ltd\n\n// Permission is hereby granted, free of charge, to any person obtaining a copy of\n// this software and associated documentation files (the \"Software\"), to deal in\n// the Software without restriction, including without limitation the rights to\n// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\n// the Software, and to permit persons to whom the Software is furnished to do so,\n// subject to the following conditions:\n\n// The above copyright notice and this permission notice shall be included in all\n// copies or substantial portions of the Software.\n\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\n// FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\n// COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\n// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\n// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nimport React, { useEffect } from 'react'\nimport { Platform } from 'react-native'\n\nimport { useKeyboardDismissable } from '../../hooks/useKeyboardDismissable'\nimport { Popper } from '../Popper'\nimport { YStack } from '../Stacks'\nimport { PopoverContext } from './PopoverContext'\nimport type { IPopoverContentProps } from './types'\n\nexport const PopoverContent = React.forwardRef((props: IPopoverContentProps, ref: any) => {\n const {\n onClose,\n initialFocusRef,\n finalFocusRef,\n popoverContentId,\n headerMounted,\n bodyMounted,\n bodyId,\n headerId,\n } = React.useContext(PopoverContext)\n\n useEffect(() => {\n const finalFocusRefCurrentVal = finalFocusRef?.current\n if (initialFocusRef && initialFocusRef.current) {\n initialFocusRef.current.focus()\n }\n\n return () => {\n if (finalFocusRefCurrentVal) {\n finalFocusRefCurrentVal.focus()\n }\n }\n }, [finalFocusRef, initialFocusRef])\n\n useKeyboardDismissable({\n enabled: true,\n callback: onClose,\n })\n\n const accessibilityProps =\n Platform.OS === 'web'\n ? ({\n accessibilityRole: 'dialog',\n 'aria-labelledby': headerMounted ? headerId : undefined,\n 'aria-describedby': bodyMounted ? bodyId : undefined,\n } as any)\n : {}\n\n return (\n <Popper.Content nativeID={popoverContentId} {...accessibilityProps} ref={ref}>\n {/* @ts-ignore TODO */}\n <YStack {...props}>{props.children}</YStack>\n </Popper.Content>\n )\n})\n\nPopoverContent.displayName = 'PopoverContent'\n", "// forked from NativeBase\n// The MIT License (MIT)\n\n// Copyright (c) 2021 GeekyAnts India Pvt Ltd\n\n// Permission is hereby granted, free of charge, to any person obtaining a copy of\n// this software and associated documentation files (the \"Software\"), to deal in\n// the Software without restriction, including without limitation the rights to\n// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\n// the Software, and to permit persons to whom the Software is furnished to do so,\n// subject to the following conditions:\n\n// The above copyright notice and this permission notice shall be included in all\n// copies or substantial portions of the Software.\n\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\n// FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\n// COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\n// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\n// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nimport React, { RefObject } from 'react'\n\nexport const PopoverContext = React.createContext({\n onClose: () => {},\n initialFocusRef: { current: null } as RefObject<any> | undefined,\n finalFocusRef: { current: null } as RefObject<any> | undefined,\n popoverContentId: undefined as string | undefined,\n headerId: undefined as string | undefined,\n bodyId: undefined as string | undefined,\n setHeaderMounted: (() => {}) as any,\n setBodyMounted: (() => {}) as any,\n headerMounted: false,\n bodyMounted: false,\n})\n", "import { Stack, StackProps, styled } from '@tamagui/core'\n\n// TODO merge w InteractiveFrame\n\nexport const InteractiveContainer = styled(Stack, {\n flexDirection: 'row',\n borderWidth: 1,\n borderColor: '$borderColor',\n overflow: 'hidden',\n borderRadius: '$2',\n hoverStyle: {\n borderColor: '$borderColor2',\n },\n})\n", "import { Stack, styled } from '@tamagui/core'\n\nexport const Section = styled(Stack, {\n tag: 'section',\n flexDirection: 'column',\n accessibilityRole: 'summary',\n})\n\nexport const Article = styled(Stack, {\n tag: 'article',\n flexDirection: 'column',\n})\n\nexport const Main = styled(Stack, {\n tag: 'main',\n flexDirection: 'column',\n})\n\nexport const Header = styled(Stack, {\n tag: 'header',\n accessibilityRole: 'header',\n flexDirection: 'column',\n})\n\nexport const Aside = styled(Stack, {\n tag: 'aside',\n flexDirection: 'column',\n // accessibilityRole: 'complementary',\n})\n\nexport const Footer = styled(Stack, {\n tag: 'footer',\n flexDirection: 'column',\n // accessibilityRole: 'contentinfo',\n})\n\nexport const Nav = styled(Stack, {\n tag: 'nav',\n flexDirection: 'column',\n // accessibilityRole: 'navigation',\n})\n", "import { Stack, useIsomorphicLayoutEffect } from '@tamagui/core'\nimport React, { ReactElement, useState } from 'react'\n\nimport { normalizeColor } from '../helpers/normalizeColor'\nimport { useLayout } from '../hooks/useLayout'\nimport { NativeLinearGradientPoint, NativeLinearGradientProps } from './NativeLinearGradientProps'\n\n// bugfix esbuild strips react jsx: 'preserve'\nReact['keep']\n\nexport const LinearGradient = Stack.extractable(\n ({ colors = [], locations, start, end, ...props }: NativeLinearGradientProps): ReactElement => {\n const [gradientColors, setGradientColors] = useState<string[]>([])\n const [pseudoAngle, setPseudoAngle] = useState<number>(0)\n const layoutProps = useLayout()\n const { width = 1, height = 1 } = layoutProps.layout ?? {}\n\n useIsomorphicLayoutEffect(() => {\n const getControlPoints = (): NativeLinearGradientPoint[] => {\n let correctedStart: NativeLinearGradientPoint = [0, 0]\n if (Array.isArray(start)) {\n correctedStart = [start[0] != null ? start[0] : 0.0, start[1] != null ? start[1] : 0.0]\n }\n let correctedEnd: NativeLinearGradientPoint = [0.0, 1.0]\n if (Array.isArray(end)) {\n correctedEnd = [end[0] != null ? end[0] : 0.0, end[1] != null ? end[1] : 1.0]\n }\n return [correctedStart, correctedEnd]\n }\n\n const [start_, end_] = getControlPoints()\n start_[0] *= width\n end_[0] *= width\n start_[1] *= height\n end_[1] *= height\n const py = end_[1] - start_[1]\n const px = end_[0] - start_[0]\n\n setPseudoAngle(90 + (Math.atan2(py, px) * 180) / Math.PI)\n }, [width, height, start, end])\n\n useIsomorphicLayoutEffect(() => {\n const nextGradientColors = colors.map((color, index): string => {\n const hexColor = normalizeColor(color)\n let output = hexColor\n if (locations && locations[index]) {\n const location = Math.max(0, Math.min(1, locations[index]))\n // Convert 0...1 to 0...100\n const percentage = location * 100\n output += ` ${percentage}%`\n }\n return output || ''\n })\n\n setGradientColors(nextGradientColors)\n }, [colors, locations])\n\n const colorStyle = gradientColors.join(',')\n const backgroundImage = `linear-gradient(${pseudoAngle}deg, ${colorStyle})`\n // TODO(Bacon): In the future we could consider adding `backgroundRepeat: \"no-repeat\"`. For more\n // browser support.\n return (\n <Stack\n {...props}\n {...layoutProps}\n style={[\n props.style,\n // @ts-ignore: [ts] Property 'backgroundImage' does not exist on type 'ViewStyle'.\n { backgroundImage },\n ]}\n />\n )\n }\n)\n", "import normalizeCSSColor from 'normalize-css-color'\n\nexport const normalizeColor = (color?: number | string, opacity = 1): void | string => {\n if (color == null) return\n if (typeof color === 'string' && isWebColor(color)) {\n return color\n }\n const colorInt = processColor(color)\n if (colorInt != null) {\n const r = (colorInt >> 16) & 255\n const g = (colorInt >> 8) & 255\n const b = colorInt & 255\n const a = ((colorInt >> 24) & 255) / 255\n const alpha = (a * opacity).toFixed(2)\n return `rgba(${r},${g},${b},${alpha})`\n }\n}\n\nconst isWebColor = (color: string): boolean =>\n color === 'currentcolor' ||\n color === 'currentColor' ||\n color === 'inherit' ||\n color.indexOf('var(') === 0\n\nconst processColor = (color?: string | number): number | undefined => {\n if (color === undefined || color === null) {\n return color\n }\n // convert number and hex\n let int32Color = normalizeCSSColor(color)\n if (int32Color === undefined || int32Color === null) {\n return undefined\n }\n // @ts-ignore\n int32Color = ((int32Color << 24) | (int32Color >>> 8)) >>> 0\n // @ts-ignore\n return int32Color\n}\n", "import {\n AnimatedStack,\n AnimatedStackProps,\n Theme,\n isTouchDevice,\n isWeb,\n styled,\n useThemeName,\n} from '@tamagui/core'\nimport React, { useLayoutEffect } from 'react'\nimport { Modal as ModalNative, ModalProps as ModalPropsReact } from 'react-native'\n\nimport { prevent } from '../helpers/prevent'\nimport { useDebounceValue } from '../hooks/useDebounce'\nimport { YStack } from './Stacks'\n\nexport type ModalProps = Omit<ModalPropsReact, 'children'> &\n AnimatedStackProps & {\n visible?: boolean\n overlayBackground?: string\n overlayDismisses?: boolean\n children?: any | ((isOpen?: boolean) => any)\n }\n\nexport const Modal = (props: ModalProps) => {\n const {\n // modal specific props\n visible = true,\n animationType = 'slide', // keep this only for native for now\n onRequestClose,\n onShow,\n // ios specific\n presentationStyle,\n transparent = isWeb,\n supportedOrientations,\n onDismiss,\n onOrientationChange,\n // android specific\n hardwareAccelerated,\n statusBarTranslucent,\n // overlay\n overlayBackground = 'rgba(0,0,0,0.5)',\n overlayDismisses,\n // children\n children,\n height,\n width,\n minHeight,\n minWidth,\n maxWidth,\n maxHeight,\n velocity,\n animation,\n ...rest\n } = props\n\n // only shared between both\n const modalProps: ModalPropsReact = {\n transparent,\n visible,\n onRequestClose,\n onShow,\n presentationStyle,\n supportedOrientations,\n onDismiss,\n onOrientationChange,\n hardwareAccelerated,\n statusBarTranslucent,\n }\n\n const themeName = useThemeName()\n const finalChildren = typeof children === 'function' ? children(visible) : children\n\n if (isWeb) {\n const pointerEvents = visible ? 'auto' : 'none'\n const modalVisible = useDebounceValue(visible, visible ? 200 : 0)\n\n useLayoutEffect(() => {\n if (visible) {\n document.body.classList.add('modal-open')\n return () => {\n document.body.classList.remove('modal-open')\n }\n }\n }, [visible])\n\n // this fixes page getting stuck at top, at the expense of a flicker\n if (isTouchDevice) {\n useLayoutEffect(() => {\n if (visible) {\n return () => {\n const og = document.body.style.display\n setTimeout(() => {\n document.body.style.display = 'none'\n setTimeout(() => {\n document.body.style.display = og\n }, 0)\n })\n }\n }\n }, [visible])\n }\n\n return (\n <ModalNative {...modalProps} visible={modalVisible}>\n <Theme name={themeName}>\n <YStack\n position=\"absolute\"\n ref={preventFormFocusBug as any}\n fullscreen\n pointerEvents={pointerEvents}\n backgroundColor={visible ? overlayBackground : 'transparent'}\n alignItems=\"center\"\n justifyContent=\"center\"\n onPressOut={overlayDismisses ? onRequestClose : undefined}\n onPress={onDismiss}\n >\n <AnimatedStack\n {...{\n height,\n width,\n minHeight,\n minWidth,\n maxWidth,\n maxHeight,\n velocity,\n pointerEvents,\n animateState: modalVisible ? 'in' : 'out',\n animation,\n }}\n >\n <ModalYStack onPress={prevent} pointerEvents={pointerEvents} {...rest}>\n {finalChildren}\n </ModalYStack>\n </AnimatedStack>\n </YStack>\n </Theme>\n </ModalNative>\n )\n }\n\n return (\n <ModalNative animationType={animationType} {...modalProps}>\n <Theme name={themeName}>\n <YStack flex={1} {...rest} backgroundColor=\"$bg\">\n {finalChildren}\n </YStack>\n </Theme>\n </ModalNative>\n )\n}\n\nexport const ModalYStack = styled(YStack, {\n backgroundColor: '$bg',\n borderRadius: 12,\n alignItems: 'center',\n position: 'relative',\n shadowColor: '$shadowColor',\n shadowRadius: 20,\n shadowOffset: { height: 10, width: 0 },\n flex: 1,\n maxHeight: '100%',\n})\n\nfunction preventFormFocusBug(node: any) {\n for (const child of Array.from(document.body.children)) {\n if (child.contains(node)) {\n const preventFormFocusBug = (e) => e.stopPropagation()\n child.addEventListener('mousedown', preventFormFocusBug, true)\n }\n }\n}\n", "export const prevent = (e) => [e.preventDefault(), e.stopPropagation()]\n", "import { PropTypes, styled } from '@tamagui/core'\n\nimport { SizableText } from './SizableText'\n\nexport const Paragraph = styled(SizableText, {\n fontFamily: '$body',\n color: '$color',\n size: '$4',\n})\n\nexport type ParagraphProps = PropTypes<typeof Paragraph>\n", "import { SSRProvider } from '@react-aria/ssr'\nimport { OverlayProvider } from '@react-native-aria/overlays'\nimport * as React from 'react'\n\n// bugfix esbuild strips react\nReact['keep']\n\nexport const PopoverProvider = (props: { children?: any }) => {\n return (\n <SSRProvider>\n <OverlayProvider>{props.children}</OverlayProvider>\n </SSRProvider>\n )\n}\n", "import { Stack, StackProps, Text, TextProps, styled } from '@tamagui/core'\n\nexport const Table = styled(Stack, {\n tag: 'table',\n})\n\nexport const TableRow = styled(Stack, {\n tag: 'tr',\n alignSelf: 'stretch', // minWidth: 100%\n flex: 1,\n})\n\nexport const TableHead = styled(Stack, {\n tag: 'thead',\n flexDirection: 'row',\n alignSelf: 'stretch',\n flex: 1,\n borderBottomColor: '#eee',\n borderBottomWidth: 1,\n})\n\nexport const TableHeadCell = styled(Stack, {\n tag: 'th',\n display: 'table-head',\n flexDirection: 'row',\n})\n\nexport const TableHeadText = styled(Text, {\n backgroundColor: 'rgba(0,0,0,0.05)',\n padding: 2,\n paddingHorizontal: 8,\n marginLeft: -8,\n borderRadius: 10,\n maxWidth: '100%',\n ellipse: true,\n fontSize: 12,\n})\n\nexport type TableCellProps = StackProps & TextProps\n\nexport const TableCell = styled(Stack, {\n flex: 1,\n alignSelf: 'stretch',\n alignItems: 'center',\n tag: 'td',\n display: 'table-cell',\n // borderBottomWidth: 1,\n // borderBottomColor: '$borderColor',\n paddingVertical: '$3',\n paddingHorizontal: '$2',\n})\n", "import { styled } from '@tamagui/core'\n\nimport { Paragraph } from './Paragraph'\n\nexport const Title = styled(Paragraph, {\n fontFamily: '$title',\n fontWeight: '700',\n size: '$8',\n})\n\nexport const H1 = styled(Title, {\n fontFamily: '$title',\n accessibilityRole: 'header',\n size: '$10',\n})\n\nexport const H2 = styled(Title, {\n fontFamily: '$title',\n accessibilityRole: 'header',\n size: '$9',\n})\n\nexport const H3 = styled(Title, {\n fontFamily: '$title',\n accessibilityRole: 'header',\n size: '$6',\n fontWeight: '700',\n})\n\nexport const H4 = styled(Title, {\n fontFamily: '$title',\n accessibilityRole: 'header',\n size: '$5',\n})\n\nexport const H5 = styled(Title, {\n fontFamily: '$title',\n accessibilityRole: 'header',\n size: '$4',\n color: '$color2',\n fontWeight: '600',\n})\n\nexport const H6 = styled(Title, {\n fontFamily: '$title',\n accessibilityRole: 'header',\n size: '$4',\n color: '$color3',\n fontWeight: '600',\n})\n", "import { AnimatedStack, Text, isWeb } from '@tamagui/core'\nimport { useForceUpdate } from '@tamagui/core'\nimport React, { memo, useCallback, useEffect, useRef } from 'react'\nimport { createPortal } from 'react-dom'\n\nimport { YStack } from './Stacks'\n\nexport type ToastOptions = {\n duration?: number\n type?: 'info' | 'success' | 'error'\n}\n\nlet clear = () => {}\n\nlet show: (content: any, options?: ToastOptions) => void = (content) => {\n console.warn('Note:', content)\n}\n\nexport const Toast = {\n clear,\n show: (content: any, options?: ToastOptions) => show(content, options),\n error: (content: any, options?: Omit<ToastOptions, 'type'>) =>\n show(content, { ...options, type: 'error' }),\n success: (content: any, options?: Omit<ToastOptions, 'type'>) =>\n show(content, { ...options, type: 'success' }),\n}\n\nif (typeof window !== 'undefined') {\n window['Toast'] = Toast\n}\n\nexport const ToastRoot = memo(function ToastRoot() {\n const forceUpdate = useForceUpdate()\n const stateRef = useRef({\n show: false,\n content: '',\n type: 'info',\n timeout: null,\n })\n const setState = (x: any) => {\n stateRef.current = x\n forceUpdate()\n }\n\n useEffect(() => {\n return () => {\n clearTimeout(stateRef.current.timeout ?? 0)\n }\n }, [])\n\n clear = () => {\n setState({ show: false, content: '' })\n }\n\n show = useCallback(\n (content: any, { duration = 3000, type = 'info' }: ToastOptions = {}) => {\n clearTimeout(stateRef.current.timeout ?? 0)\n const timeout = setTimeout(() => {\n setState({\n show: false,\n content: '',\n type,\n timeout: null,\n })\n }, duration)\n setState({\n show: true,\n content,\n type,\n timeout,\n })\n },\n [stateRef]\n )\n\n const state = stateRef.current\n\n const contents = (\n <YStack\n position=\"absolute\"\n pointerEvents=\"none\"\n fullscreen\n alignItems=\"center\"\n justifyContent=\"flex-end\"\n zIndex={10000000000}\n padding=\"5%\"\n >\n {state.show && !!state.content && (\n <AnimatedStack>\n <YStack\n backgroundColor={\n // TODO theme\n state.type === 'info'\n ? 'rgba(100, 140, 100, 0.95)'\n : state.type === 'success'\n ? 'rgba(20,180,120,0.95)'\n : 'rgba(190,60,60, 0.95)'\n }\n shadowColor=\"rgba(0,0,0,0.35)\"\n shadowOffset={{ height: 10, width: 0 }}\n shadowRadius={40}\n borderRadius={12}\n paddingHorizontal={18}\n paddingVertical={12}\n >\n <Text color=\"#fff\" fontSize={18} fontWeight=\"600\">\n {state.content}\n </Text>\n </YStack>\n </AnimatedStack>\n )}\n </YStack>\n )\n\n const portalEl = document.getElementById('toasts')\n\n if (isWeb && portalEl) {\n return createPortal(contents, portalEl)\n }\n\n return contents\n})\n", "import { Text, styled } from '@tamagui/core'\n\n// expands flex elements when they should push a far as they \"want\" naturally\n\nexport const EnsureFlexed = styled(Text, {\n opacity: 0,\n lineHeight: 0,\n height: 0,\n display: 'flex',\n fontSize: 200,\n children: `wwwwwwwwwwwwwwwwwww`,\n pointerEvents: 'none',\n})\n", "import { StackProps, Text, Theme, isTouchDevice } from '@tamagui/core'\nimport React from 'react'\n\nimport { HoverablePopover, HoverablePopoverProps } from './HoverablePopover'\nimport { Paragraph } from './Paragraph'\nimport { YStack } from './Stacks'\n\nexport type TooltipProps = Omit<HoverablePopoverProps, 'trigger'> & {\n contents?: string | any\n tooltipFrameProps?: Omit<StackProps, 'children'>\n}\n\nexport const Tooltip = ({ contents, tooltipFrameProps, ...props }: TooltipProps) => {\n // this causes ssr issues\n // if (isTouchDevice) {\n // // TODO optionally have it show something on tap\n // return <>{props.children}</>\n // }\n return (\n <HoverablePopover\n placement=\"bottom\"\n delay={200}\n disableUntilSettled\n {...props}\n trigger={(triggerProps) =>\n React.isValidElement(props.children) ? (\n React.cloneElement(props.children, triggerProps)\n ) : (\n // TODO validate works on native (see Hero <Tooltip /> font)\n <Text fontFamily=\"inherit\" fontSize=\"inherit\" {...triggerProps}>\n {props.children}\n </Text>\n )\n }\n >\n {({ open }) => {\n return open ? (\n <Theme name=\"dark\">\n <YStack\n margin={10}\n backgroundColor=\"$bg2\"\n paddingHorizontal=\"$2\"\n paddingVertical=\"$2\"\n maxWidth={400}\n borderRadius=\"$2\"\n shadowColor=\"$shadowColor\"\n shadowRadius={2}\n shadowOffset={{ height: 2, width: 0 }}\n {...tooltipFrameProps}\n >\n <Paragraph textAlign=\"center\" fontSize={14} color=\"$color\">\n {contents}\n </Paragraph>\n </YStack>\n </Theme>\n ) : null\n }}\n </HoverablePopover>\n )\n}\n", "import React from 'react'\nimport { useState } from 'react'\nimport { Pressable, PressableProps } from 'react-native'\n\nimport { YStack } from './Stacks'\n\nexport const TouchableOpacity = (props: PressableProps) => {\n const [isPressed, setIsPressed] = useState(false)\n\n return (\n <YStack opacity={isPressed ? 0.5 : 1}>\n <Pressable\n {...props}\n onPressIn={combineFns(() => setIsPressed(true), props.onPressIn)}\n onPress={combineFns(() => setIsPressed(false), props.onPress)}\n onPressOut={combineFns(() => setIsPressed(false), props.onPressOut)}\n />\n </YStack>\n )\n}\n\nconst combineFns = (...fns: any[]) => {\n return (...args: any[]) => {\n for (const fn of fns) {\n if (typeof fn === 'function') {\n fn(...args)\n }\n }\n }\n}\n", "import { Stack, styled } from '@tamagui/core'\n\nexport const VisuallyHidden = styled(Stack, {\n position: 'absolute',\n width: 1,\n height: 1,\n margin: -1,\n zIndex: -10000,\n overflow: 'hidden',\n opacity: 0.0001,\n pointerEvents: 'none',\n})\n\n// @tamgui/core checks for this in spacing\nVisuallyHidden['isVisuallyHidden'] = true\n"],
|
|
5
|
-
"mappings": "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",
|
|
4
|
+
"sourcesContent": ["export * from '@tamagui/helpers'\nexport * from '@tamagui/core'\n\nexport * from './viewTypes'\n\nexport * from './hooks/useDebounce'\nexport * from './hooks/useLayout'\nexport * from './hooks/useSafeAreaInsets'\nexport * from './hooks/useKeyboardDismissable'\n\nexport * from './views/BlurView'\nexport * from './views/Box'\nexport * from './views/Button'\nexport * from './views/Circle'\nexport * from './views/Separator'\nexport * from './views/Form'\nexport * from './views/Grid'\nexport * from './views/Hoverable'\nexport * from './views/HoverablePopover'\nexport * from './views/InteractiveContainer'\nexport * from './views/Layouts'\nexport * from './views/LinearGradient'\nexport * from './views/Modal'\nexport * from './views/Paragraph'\nexport * from './views/SizableText'\nexport * from './views/Popover/Popover'\nexport * from './views/Popover/PopoverProvider'\nexport * from './views/Stacks'\nexport * from './views/Table'\nexport * from './views/Headings'\nexport * from './views/Toast'\nexport * from './views/EnsureFlexed'\nexport * from './views/Tooltip'\nexport * from './views/TouchableOpacity'\nexport * from './views/Transitions'\nexport * from './views/VisuallyHidden'\n\nexport * from './helpers/prevent'\n", "import { useEffect, useMemo, useRef, useState } from 'react'\n\ntype DebounceSettings = {\n leading?: boolean\n}\n\nexport function debounce<A extends Function>(\n func: A,\n wait?: number,\n leading?: boolean\n): A & {\n cancel: Function\n} {\n let timeout: any\n let isCancelled\n function debounced() {\n isCancelled = false\n // @ts-ignore\n let context = this\n let args = arguments\n if (leading && !timeout) {\n func.apply(context, args)\n }\n clearTimeout(timeout)\n timeout = setTimeout(function () {\n timeout = null\n if (!leading && !isCancelled) {\n func.apply(context, args)\n }\n isCancelled = false\n }, wait)\n }\n debounced.cancel = () => {\n isCancelled = true\n }\n return debounced as any\n}\n\nconst defaultOpts = { leading: false }\n\nexport function useDebounce<\n A extends (...args: any) => any | undefined | null,\n DebouncedFn extends A & {\n cancel: () => void\n }\n>(fn: A, wait: number, options: DebounceSettings = defaultOpts, mountArgs: any[] = []): DebouncedFn {\n const dbEffect = useRef<DebouncedFn | null>(null)\n\n useEffect(() => {\n return () => {\n dbEffect.current?.cancel()\n }\n }, [])\n\n return useMemo(() => {\n dbEffect.current = debounce(fn, wait, options.leading) as unknown as DebouncedFn\n return dbEffect.current\n }, [options.leading, ...mountArgs])\n}\n\n/**\n * Returns a value once it stops changing after \"amt\" time.\n * Note: you may need to memo or this will keep re-rendering\n */\nexport function useDebounceValue<A>(val: A, amt = 0): A {\n const [state, setState] = useState(val)\n\n useEffect(() => {\n let tm = setTimeout(() => {\n setState((prev) => {\n if (prev === val) return prev\n return val\n })\n }, amt)\n\n return () => {\n clearTimeout(tm)\n }\n }, [val])\n\n return state\n}\n", "import { isWeb, useIsomorphicLayoutEffect } from '@tamagui/core'\nimport { useRef, useState } from 'react'\nimport { LayoutChangeEvent, LayoutRectangle } from 'react-native'\n\nexport const useLayout = (props: { stateless?: boolean; onLayout?: (rect: LayoutChangeEvent) => void } = {}) => {\n const [layout, setLayout] = useState<LayoutRectangle | null>(null)\n\n if (!isWeb) {\n return {\n layout,\n onLayout: props.onLayout,\n }\n }\n\n const ref = useRef<any>(null)\n\n useIsomorphicLayoutEffect(() => {\n const node = ref.current\n if (!node) return\n // let hasUpdatedOnce = false\n let last: LayoutRectangle | null = null\n\n const getNextAndCallback = (rect: LayoutRectangle) => {\n let next\n const width = Math.max(1, Math.round(rect.width))\n const height = Math.max(1, Math.round(rect.height))\n // don't set new layout state unless the layout has actually changed\n if (!last || width !== last.width || height !== last.height) {\n next = { width, height }\n }\n if (next) {\n // @ts-expect-error\n props.onLayout?.({ nativeEvent: { layout: next } })\n last = next\n return next\n }\n return last\n }\n\n const update = (rect: LayoutRectangle) => {\n if (props.stateless) {\n getNextAndCallback(rect)\n } else {\n setLayout((p) => getNextAndCallback(rect))\n }\n }\n\n const ro = new ResizeObserver(([{ contentRect }] = []) => {\n update(contentRect)\n })\n ro.observe(node)\n\n return () => {\n ro.disconnect()\n }\n }, [ref])\n\n return {\n layout,\n ref,\n }\n}\n", "export { useSafeAreaInsets } from 'react-native-safe-area-context'\n", "// forked from NativeBase\n// The MIT License (MIT)\n\n// Copyright (c) 2021 GeekyAnts India Pvt Ltd\n\n// Permission is hereby granted, free of charge, to any person obtaining a copy of\n// this software and associated documentation files (the \"Software\"), to deal in\n// the Software without restriction, including without limitation the rights to\n// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\n// the Software, and to permit persons to whom the Software is furnished to do so,\n// subject to the following conditions:\n\n// The above copyright notice and this permission notice shall be included in all\n// copies or substantial portions of the Software.\n\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\n// FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\n// COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\n// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\n// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nimport { isWeb } from '@tamagui/core'\nimport { useEffect } from 'react'\nimport { BackHandler } from 'react-native'\n\ntype IParams = {\n enabled?: boolean\n callback: () => any\n}\n\nlet keyboardDismissHandlers: Array<() => any> = []\nexport const keyboardDismissHandlerManager = {\n push: (handler: () => any) => {\n keyboardDismissHandlers.push(handler)\n return () => {\n keyboardDismissHandlers = keyboardDismissHandlers.filter((h) => h !== handler)\n }\n },\n length: () => keyboardDismissHandlers.length,\n pop: () => {\n return keyboardDismissHandlers.pop()\n },\n}\n\nexport const useKeyboardDismissable = ({ enabled, callback }: IParams) => {\n useEffect(() => {\n let cleanupFn = () => {}\n if (enabled) {\n cleanupFn = keyboardDismissHandlerManager.push(callback)\n } else {\n cleanupFn()\n }\n return () => {\n cleanupFn()\n }\n }, [enabled, callback])\n\n useBackHandler({ enabled, callback })\n}\n\nconst callbackOnEscape = (callback) => (e) => {\n if (e.key === 'Escape') {\n if (\n !(document.activeElement instanceof HTMLInputElement) &&\n !(document.activeElement instanceof HTMLTextAreaElement)\n ) {\n e.preventDefault()\n e.stopPropagation()\n callback()\n }\n }\n}\n\nexport function useBackHandler({ enabled, callback }: IParams) {\n useEffect(() => {\n let backHandler = () => {\n callback()\n return true\n }\n const keyHandler = callbackOnEscape(callback)\n if (enabled) {\n BackHandler.addEventListener('hardwareBackPress', backHandler)\n if (isWeb) {\n window.addEventListener('keydown', keyHandler)\n }\n } else {\n BackHandler.removeEventListener('hardwareBackPress', backHandler)\n }\n return () => {\n BackHandler.removeEventListener('hardwareBackPress', backHandler)\n if (isWeb) {\n window.removeEventListener('keydown', keyHandler)\n }\n }\n }, [enabled, callback])\n}\n", "import { StackProps } from '@tamagui/core'\nimport React from 'react'\n\nimport { YStack } from './Stacks'\n\nexport type BlurViewProps = StackProps & {\n blurAmount?: number // 0 - 100\n blurRadius?: number\n fallbackBackgroundColor?: string\n blurType?:\n | 'xlight'\n | 'light'\n | 'dark'\n // iOS 13+ only\n | 'chromeMaterial'\n | 'material'\n | 'thickMaterial'\n | 'thinMaterial'\n | 'ultraThinMaterial'\n | 'chromeMaterialDark'\n | 'materialDark'\n | 'thickMaterialDark'\n | 'thinMaterialDark'\n | 'ultraThinMaterialDark'\n | 'chromeMaterialLight'\n | 'materialLight'\n | 'thickMaterialLight'\n | 'thinMaterialLight'\n | 'ultraThinMaterialLight'\n // tvOS and iOS 10+ only\n | 'regular'\n | 'prominent'\n // tvOS only\n | 'extraDark'\n downsampleFactor?: number\n}\n\nexport function BlurView({\n children,\n borderRadius,\n fallbackBackgroundColor,\n blurRadius = 20,\n blurType,\n downsampleFactor,\n ...props\n}: BlurViewProps) {\n return (\n // @ts-ignore\n <YStack position=\"relative\" borderRadius={borderRadius} {...props}>\n <div\n // fallback for safari but non customizable\n className=\"backdrop-filter\"\n style={{\n position: 'absolute',\n width: '100%',\n height: '100%',\n backdropFilter: `blur(${blurRadius}px)`,\n // @ts-ignore\n borderRadius,\n zIndex: -1,\n pointerEvents: 'none',\n }}\n />\n {children}\n </YStack>\n )\n}\n", "import { isVariable } from '@tamagui/core'\nimport { Stack, styled } from '@tamagui/core'\n\nexport const YStack = styled(Stack, {\n flexDirection: 'column',\n\n variants: {\n fullscreen: {\n true: {\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n },\n },\n\n elevation: {\n '...size': (size, { tokens, theme }) => {\n const token = tokens.size[size]\n const [height, shadowRadius] = (() => {\n if (isVariable(token)) {\n return [+token.val / 3, +token.val / 2] as const\n }\n return [size / 3, size / 2] as const\n })()\n const shadow = {\n shadowColor: theme.shadowColor,\n shadowRadius,\n shadowOffset: { height, width: 0 },\n }\n return shadow\n },\n },\n },\n})\n\nexport const XStack = styled(YStack, {\n flexDirection: 'row',\n})\n\nexport const ZStack = styled(\n YStack,\n {\n position: 'relative',\n },\n {\n neverFlatten: true,\n isZStack: true,\n }\n)\n", "import { styled } from '@tamagui/core'\n\nimport { YStack } from './Stacks'\n\nexport const Box = styled(YStack, {\n backgroundColor: '$bg2',\n elevation: '$1',\n})\n", "import { TextProps, ThemeableProps, themeable } from '@tamagui/core'\nimport React, { forwardRef } from 'react'\n\nimport { InteractiveFrame, InteractiveFrameProps } from './InteractiveFrame'\nimport { SizableText } from './SizableText'\n\n// bugfix esbuild strips react jsx: 'preserve'\nReact['createElement']\n\nexport type ButtonProps = InteractiveFrameProps &\n ThemeableProps & {\n textProps?: Omit<TextProps, 'children'>\n noTextWrap?: boolean\n icon?: JSX.Element | null\n iconAfter?: JSX.Element | null\n }\n\nexport const Button = InteractiveFrame.extractable(\n themeable(\n forwardRef(\n (\n {\n children,\n icon,\n iconAfter,\n space,\n textProps,\n noTextWrap,\n elevation,\n theme: themeName,\n size,\n ...props\n }: ButtonProps,\n ref\n ) => {\n return (\n <InteractiveFrame size={size} space={space ?? size ?? '$2'} ref={ref as any} {...props}>\n {icon}\n {noTextWrap ? (\n children\n ) : !children ? null : textProps ? (\n // flex shrink = 1, flex grow = 0 makes buttons shrink properly in native\n <SizableText\n color=\"$color2\"\n flexGrow={0}\n flexShrink={1}\n ellipse\n size={size}\n {...textProps}\n >\n {children}\n </SizableText>\n ) : (\n <SizableText size={size} color=\"$color2\" flexGrow={0} flexShrink={1} ellipse>\n {children}\n </SizableText>\n )}\n {iconAfter}\n </InteractiveFrame>\n )\n }\n )\n )\n)\n", "import { GetProps, Variable } from '@tamagui/core'\nimport { styled } from '@tamagui/core'\n\nimport { XStack } from './Stacks'\n\n// for use in button-like things\n\nexport const InteractiveFrame = styled(XStack, {\n hitSlop: {\n top: 5,\n left: 5,\n right: 5,\n bottom: 5,\n },\n\n borderRadius: '$1',\n paddingVertical: '$2',\n paddingHorizontal: '$3',\n backgroundColor: '$bg2',\n justifyContent: 'center',\n alignItems: 'center',\n cursor: 'pointer',\n flexWrap: 'nowrap',\n flexDirection: 'row',\n flexShrink: 1,\n\n hoverStyle: {\n backgroundColor: '$bg3',\n },\n\n pressStyle: {\n backgroundColor: '$bg4',\n },\n\n variants: {\n size: {\n '...size': (val = '4', { tokens, props }) => {\n const sizeIndex = Object.keys(tokens.size).indexOf(val)\n const size = tokens.size[sizeIndex] ?? tokens.size[val] ?? val\n const px = Math.round(+(size instanceof Variable ? size.val : size) * 0.8)\n const py = Math.round(+(size instanceof Variable ? size.val : size) * 0.33)\n return {\n paddingHorizontal: px,\n paddingVertical: py,\n borderRadius: py * 0.5,\n }\n },\n },\n\n disabled: {\n true: {\n // TODO enabling this messes up types for some reason\n // pointerEvents: 'none',\n opacity: 0.5,\n hoverStyle: {\n backgroundColor: '$bg',\n },\n },\n },\n\n active: {\n true: {\n backgroundColor: '$bg3',\n },\n },\n\n transparent: {\n true: {\n backgroundColor: 'transparent',\n },\n },\n\n chromeless: {\n true: {\n backgroundColor: 'transparent',\n borderColor: 'transparent',\n shadowColor: 'transparent',\n // this would be a breaking change...\n // hoverStyle: {\n // backgroundColor: 'transparent',\n // },\n },\n },\n },\n})\n\nexport type InteractiveFrameProps = GetProps<typeof InteractiveFrame>\n", "import { GetProps, Text, Variable, styled } from '@tamagui/core'\n\nexport const SizableText = styled(Text, {\n variants: {\n size: {\n // TODO this should be ...fontSize type not working\n '...size': (val, { tokens, props }) => {\n const family = (\n typeof props.fontFamily === 'string'\n ? props.fontFamily\n : props.fontFamily instanceof Variable\n ? props.fontFamily.val\n : props.fontFamily || '$body'\n ) as any\n const font = tokens.font[family]\n if (!font) {\n console.warn('\u26A0\uFE0F no font found', { family, fontTokens: Object.keys(tokens.font), val })\n return {}\n }\n const fontFamily = font.family\n const fontSize = props.fontSize || font.size[val]\n const lineHeight = props.lineHeight || font.lineHeight[val]\n const fontWeight = props.fontWeight || font.weight[val]\n const letterSpacing = props.letterSpacing || font.letterSpacing[val]\n if (fontSize instanceof Variable) {\n return {\n fontFamily,\n fontWeight,\n letterSpacing,\n fontSize,\n lineHeight,\n }\n }\n const fs = +val\n // TODO can have props.sizeLineHeight\n const lh = +val * (Math.log(Math.max(1.6, val)) * 0.01 + 1.1)\n return {\n fontSize: fs,\n lineHeight: lh,\n }\n },\n },\n },\n})\n\nexport type SizableTextProps = GetProps<typeof SizableText>\n", "import { Stack, styled } from '@tamagui/core'\n\nexport const Circle = styled(Stack, {\n alignItems: 'center',\n justifyContent: 'center',\n borderRadius: 100_000_000,\n overflow: 'hidden',\n\n variants: {\n size: {\n '...size': (size, { tokens }) => {\n return {\n width: tokens.size[size] ?? size,\n height: tokens.size[size] ?? size,\n }\n },\n },\n },\n})\n\n// test types\n// const a = <Circle size={100} />\n// const b = <Circle size=\"sm\" />\n// const c = <Circle size=\"nope\" />\n", "import { Stack, styled } from '@tamagui/core'\n\nexport const Separator = styled(Stack, {\n backgroundColor: '$borderColor',\n opacity: 1,\n height: 1,\n\n variants: {\n vertical: {\n true: {\n height: 'auto',\n width: 1,\n alignSelf: 'stretch',\n flex: 0,\n },\n },\n },\n})\n", "import { Stack, styled } from '@tamagui/core'\nimport { TextInput } from 'react-native'\n\nexport const Form = styled(Stack, {\n tag: 'form',\n})\n\n// TODO\n// @ts-ignore\nexport const Input = styled(TextInput, {\n paddingVertical: '$2',\n paddingHorizontal: '$4',\n fontSize: '$4',\n})\n\n// TODO\n// @ts-ignore\nexport const TextArea = styled(TextInput, {\n multiline: true,\n numberOfLines: 4,\n\n paddingVertical: '$2',\n paddingHorizontal: '$4',\n fontSize: '$4',\n})\n\n// TODO\n// type AutocompleteType =\n// | 'cc-csc'\n// | 'cc-exp'\n// | 'cc-exp-month'\n// | 'cc-exp-year'\n// | 'cc-number'\n// | 'email'\n// | 'name'\n// | 'password'\n// | 'postal-code'\n// | 'street-address'\n// | 'tel'\n// | 'username'\n// | 'off'\n", "import { isWeb } from '@tamagui/core'\nimport React from 'react'\n\nimport { XStack } from './Stacks'\n\nexport type GridProps = {\n children?: any\n itemMinWidth?: number\n gap?: any\n columns?: number\n}\n\nexport function Grid({ children, columns, itemMinWidth = 200, gap }: GridProps) {\n if (isWeb) {\n return (\n <div\n style={{\n gap,\n display: 'grid',\n justifyContent: 'stretch',\n // gridTemplateRows: 'repeat(4, 1fr)',\n gridTemplateColumns: `repeat( auto-fit, minmax(${itemMinWidth}px, 1fr) )`,\n // gridTemplateColumns: '1fr 1fr',\n }}\n >\n {children}\n </div>\n )\n }\n\n const childrenList = React.Children.toArray(children)\n\n return (\n <XStack alignItems=\"center\" justifyContent=\"center\" flexWrap=\"wrap\">\n {childrenList.map((child, i) => {\n if (!child) {\n return null\n }\n\n // index key bad\n return (\n <XStack key={i} flex={1} minWidth={itemMinWidth} marginRight={gap} marginBottom={gap}>\n {child}\n </XStack>\n )\n })}\n </XStack>\n )\n}\n", "import { isWeb } from '@tamagui/core'\nimport React, { forwardRef, useEffect, useImperativeHandle, useState } from 'react'\n\nimport { useDebounce } from '../hooks/useDebounce'\n\n// bugfix esbuild strips react jsx: 'preserve'\nReact['createElement']\n\ntype SpanProps = React.DOMAttributes<HTMLSpanElement>\n\nexport type HoverableProps = {\n children?: any\n disableUntilSettled?: boolean\n hoverDelay?: number\n onHoverIn?: () => void\n onHoverOut?: () => void\n onPressIn?: SpanProps['onMouseDown']\n onPressOut?: SpanProps['onClick']\n}\n\nexport type HoverableHandle = {\n close: () => void\n}\n\nexport const Hoverable = forwardRef<HoverableHandle, HoverableProps>(\n (\n {\n onPressIn,\n onPressOut,\n onHoverIn,\n onHoverOut,\n disableUntilSettled,\n hoverDelay = 0,\n children,\n }: HoverableProps,\n ref\n ) => {\n if (!isWeb) {\n return children\n }\n\n const [isActive, set] = useState(false)\n const setOffSlow = useDebounce(() => set(false), hoverDelay / 2) // math.min(a bit less than in)\n const setOnSlow = useDebounce(() => set(true), hoverDelay)\n const cancelAll = () => {\n setOnSlow.cancel()\n setOffSlow.cancel()\n }\n\n useImperativeHandle(ref, () => ({\n close: () => {\n set(false)\n },\n }))\n\n useEffect(() => {\n if (isActive) {\n onHoverIn?.()\n } else {\n onHoverOut?.()\n }\n }, [isActive])\n\n const setOff = () => {\n cancelAll()\n setOffSlow()\n }\n const setOn = () => {\n cancelAll()\n setOnSlow()\n }\n\n return (\n <span\n ref={ref as any}\n style={{\n display: 'contents',\n }}\n onMouseEnter={setOn}\n onMouseLeave={setOff}\n onMouseMove={disableUntilSettled ? setOn : undefined}\n onMouseDown={onPressIn}\n onClick={onPressOut}\n >\n {children}\n </span>\n )\n }\n)\n", "import { isTouchDevice } from '@tamagui/core'\nimport React, { forwardRef, useImperativeHandle, useRef, useState } from 'react'\nimport { Pressable } from 'react-native'\n\nimport { useDebounce } from '../hooks/useDebounce'\nimport { Hoverable, HoverableHandle } from './Hoverable'\nimport { Popover } from './Popover/Popover'\nimport { IPopoverProps } from './Popover/types'\n\n// bugfix esbuild strips react jsx: 'preserve'\nReact['createElement']\n\nexport type HoverablePopoverHandle = {\n close: () => void\n}\n\nexport type HoverablePopoverProps = IPopoverProps & {\n delay?: number\n // fallbackToPress?: boolean\n allowHoverOnContent?: boolean\n disableUntilSettled?: boolean\n}\n\nexport const HoverablePopover = forwardRef<HoverablePopoverHandle, HoverablePopoverProps>(\n ({ trigger, delay = 0, children, allowHoverOnContent, disableUntilSettled, ...props }, ref) => {\n const hoverableRef = useRef<HoverableHandle>(null)\n const [isActive, set] = useState(false)\n\n // these are debounced only to allow jump betewen target/trigger\n // ..and to make content trigger faster than trigger\n // todo subtract from inner delay\n const setOffSlow = useDebounce(() => set(false), allowHoverOnContent ? 20 : 0)\n const setOnSlow = useDebounce(() => set(true), allowHoverOnContent ? 40 : 0)\n const cancelAll = () => {\n setOnSlow.cancel()\n setOffSlow.cancel()\n }\n\n const setOff = () => {\n cancelAll()\n setOffSlow()\n }\n const setOn = () => {\n cancelAll()\n setOnSlow()\n }\n\n useImperativeHandle(ref, () => ({\n close: () => {\n cancelAll()\n set(false)\n hoverableRef.current?.close()\n },\n }))\n\n // if (isTouchDevice && !fallbackToPress) {\n // return trigger(null as any, { open: false })\n // }\n\n return (\n <Popover\n isOpen={isActive}\n {...props}\n trigger={(triggerProps, state) => {\n return (\n <Hoverable\n ref={hoverableRef}\n disableUntilSettled={disableUntilSettled}\n onHoverIn={setOn}\n onHoverOut={setOff}\n hoverDelay={delay}\n >\n {trigger(triggerProps, state)}\n </Hoverable>\n )\n }}\n >\n {(openProps) => {\n const childrenElements = typeof children === 'function' ? children(openProps) : children\n return (\n <Popover.Content>\n {allowHoverOnContent ? (\n <Hoverable onHoverIn={setOn} onHoverOut={setOff}>\n {childrenElements}\n </Hoverable>\n ) : (\n childrenElements\n )}\n </Popover.Content>\n )\n }}\n </Popover>\n )\n }\n)\n\n// {isTouchDevice && fallbackToPress ? (\n// children\n// ) : allowHoverOnContent ? (\n// <Hoverable onActive={setOn} onInactive={setOff}>\n// {children}\n// </Hoverable>\n// ) : (\n// children\n// )}\n\n// const HoverOrToggle = (props: {\n// fallbackToPress?: boolean\n// onActive?: () => void\n// onInactive?: () => void\n// children?: any\n// }) => {\n// return (\n// <Hoverable onHoverIn={onActive} onHoverOut={onInactive}>\n// {children}\n// </Hoverable>\n// )\n\n// // // TODO causes SSR issues\n// // if (isTouchDevice) {\n// // const [isOn, setIsOn] = useState(false)\n// // if (!fallbackToPress) {\n// // return children\n// // }\n// // return (\n// // <Pressable\n// // onPress={() => {\n// // setIsOn((x) => {\n// // const next = !x\n// // next ? onActive?.() : onInactive?.()\n// // return next\n// // })\n// // }}\n// // >\n// // {children}\n// // </Pressable>\n// // )\n// // } else {\n// // return (\n// // <Hoverable onHoverIn={onActive} onHoverOut={onInactive}>\n// // {children}\n// // </Hoverable>\n// // )\n// // }\n// }\n", "// forked from NativeBase\n// The MIT License (MIT)\n\n// Copyright (c) 2021 GeekyAnts India Pvt Ltd\n\n// Permission is hereby granted, free of charge, to any person obtaining a copy of\n// this software and associated documentation files (the \"Software\"), to deal in\n// the Software without restriction, including without limitation the rights to\n// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\n// the Software, and to permit persons to whom the Software is furnished to do so,\n// subject to the following conditions:\n\n// The above copyright notice and this permission notice shall be included in all\n// copies or substantial portions of the Software.\n\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\n// FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\n// COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\n// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\n// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nimport { useId } from '@react-aria/utils'\nimport { FocusScope } from '@react-native-aria/focus'\nimport React, { forwardRef, memo } from 'react'\nimport { StyleSheet, View } from 'react-native'\n\nimport { useControllableState } from '../../hooks/useControllableState'\nimport { Overlay } from '../Overlay'\nimport { Popper } from '../Popper'\nimport { PresenceTransition } from '../Transitions/PresenceTransition'\nimport { PopoverArrow } from './PopoverArrow'\nimport { PopoverContent } from './PopoverContent'\nimport { PopoverContext } from './PopoverContext'\nimport type { IPopoverProps } from './types'\n\ninterface PopoverI extends React.FunctionComponent<IPopoverProps> {\n Arrow: typeof PopoverArrow\n Content: typeof PopoverContent\n}\n\nconst PopoverMain = memo(\n forwardRef(\n (\n {\n onOpen,\n trigger,\n onClose,\n isOpen: isOpenProp,\n children,\n defaultIsOpen,\n initialFocusRef,\n finalFocusRef,\n trapFocus = true,\n onChangeOpen,\n ...props\n }: IPopoverProps,\n ref: any\n ) => {\n const triggerRef = React.useRef(null)\n const [isOpen, setIsOpen] = useControllableState({\n value: isOpenProp,\n defaultValue: defaultIsOpen,\n onChange: (value) => {\n onChangeOpen?.(value)\n value ? onOpen && onOpen() : onClose && onClose()\n },\n })\n\n const [bodyMounted, setBodyMounted] = React.useState(false)\n const [headerMounted, setHeaderMounted] = React.useState(false)\n\n const popoverContentId = `${useId()}-content`\n const headerId = `${popoverContentId}-header`\n const bodyId = `${popoverContentId}-body`\n\n const handleOpen = React.useCallback(() => {\n setIsOpen(true)\n }, [setIsOpen])\n\n const updatedTrigger = () => {\n return trigger(\n {\n ref: triggerRef,\n onPress: handleOpen,\n 'aria-expanded': isOpen ? true : false,\n 'aria-controls': isOpen ? popoverContentId : undefined,\n 'aria-haspopup': true,\n },\n { open: isOpen }\n )\n }\n\n const handleClose = () => {\n setIsOpen(false)\n }\n\n const childrenElements = typeof children === 'function' ? children({ open: isOpen }) : children\n\n return (\n <>\n <View style={{ display: 'none' }} ref={ref}></View>\n {updatedTrigger()}\n <Overlay isOpen={isOpen} onRequestClose={handleClose} useRNModalOnAndroid>\n <PresenceTransition\n initial={{ opacity: 0 }}\n animate={{ opacity: 1, transition: { duration: 150 } }}\n exit={{ opacity: 0, scale: 0.95, transition: { duration: 100 } }}\n visible={isOpen}\n style={StyleSheet.absoluteFill}\n >\n <Popper onClose={handleClose} triggerRef={triggerRef} {...props}>\n {/* <AbsoluteYStack\n fullscreen\n pointerEvents=\"auto\"\n backgroundColor=\"rgba(0,0,0,0.1)\"\n onPress={handleClose}\n /> */}\n <PopoverContext.Provider\n value={{\n onClose: handleClose,\n initialFocusRef,\n finalFocusRef,\n popoverContentId,\n bodyId,\n headerId,\n headerMounted,\n bodyMounted,\n setBodyMounted,\n setHeaderMounted,\n }}\n >\n <FocusScope contain={trapFocus} restoreFocus autoFocus>\n {childrenElements}\n </FocusScope>\n </PopoverContext.Provider>\n </Popper>\n </PresenceTransition>\n </Overlay>\n </>\n )\n }\n )\n) as any as PopoverI\n\nPopoverMain.Arrow = PopoverArrow\nPopoverMain.Content = PopoverContent\n\nexport const Popover = PopoverMain as PopoverI\n", "// forked from NativeBase\n// The MIT License (MIT)\n\n// Copyright (c) 2021 GeekyAnts India Pvt Ltd\n\n// Permission is hereby granted, free of charge, to any person obtaining a copy of\n// this software and associated documentation files (the \"Software\"), to deal in\n// the Software without restriction, including without limitation the rights to\n// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\n// the Software, and to permit persons to whom the Software is furnished to do so,\n// subject to the following conditions:\n\n// The above copyright notice and this permission notice shall be included in all\n// copies or substantial portions of the Software.\n\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\n// FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\n// COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\n// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\n// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nimport React from 'react'\n\nexport function useControllableProp<T>(prop: T | undefined, state: T) {\n const { current: isControlled } = React.useRef(prop !== undefined)\n const value = isControlled && typeof prop !== 'undefined' ? prop : state\n return [isControlled, value] as const\n}\n\nexport interface UseControllableStateProps<T> {\n /**\n * The value to used in controlled mode\n */\n value?: T\n /**\n * The initial value to be used, in uncontrolled mode\n */\n defaultValue?: T | (() => T)\n /**\n * The callback fired when the value changes\n */\n onChange?: (value: T) => void\n /**\n * The component name (for warnings)\n */\n name?: string\n}\n\n/**\n * React hook for using controlling component state.\n * @param props\n */\nexport function useControllableState<T>(props: UseControllableStateProps<T>) {\n const { value: valueProp, defaultValue, onChange } = props\n\n const [valueState, setValue] = React.useState(defaultValue as T)\n const isControlled = valueProp !== undefined\n\n const value = isControlled ? (valueProp as T) : valueState\n\n const updateValue = React.useCallback(\n (next: any) => {\n const nextValue = typeof next === 'function' ? next(value) : next\n if (!isControlled) {\n setValue(nextValue)\n }\n onChange && onChange(nextValue)\n },\n [isControlled, onChange, value]\n )\n\n return [value, updateValue] as [T, React.Dispatch<React.SetStateAction<T>>]\n}\n", "// forked from NativeBase\n// The MIT License (MIT)\n\n// Copyright (c) 2021 GeekyAnts India Pvt Ltd\n\n// Permission is hereby granted, free of charge, to any person obtaining a copy of\n// this software and associated documentation files (the \"Software\"), to deal in\n// the Software without restriction, including without limitation the rights to\n// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\n// the Software, and to permit persons to whom the Software is furnished to do so,\n// subject to the following conditions:\n\n// The above copyright notice and this permission notice shall be included in all\n// copies or substantial portions of the Software.\n\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\n// FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\n// COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\n// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\n// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nimport { OverlayContainer } from '@react-native-aria/overlays'\nimport React from 'react'\nimport { Platform } from 'react-native'\nimport { Modal } from 'react-native'\n\nimport { useKeyboardDismissable } from '../hooks/useKeyboardDismissable'\nimport { ExitAnimationContext } from './ExitAnimationContext'\n\n// import { ExitAnimationContext } from './ExitAnimationContext';\n\ninterface IOverlayProps {\n isOpen?: boolean\n children?: any\n // We use RN modal on android if needed as it supports shifting accessiblity focus to the opened view. IOS automatically shifts focus if an absolutely placed view appears in front.\n useRNModalOnAndroid?: boolean\n onRequestClose?: (() => any) | undefined\n isKeyboardDismissable?: boolean\n}\n\nexport function Overlay({\n children,\n isOpen,\n useRNModalOnAndroid = false,\n isKeyboardDismissable = true,\n onRequestClose,\n}: IOverlayProps) {\n const [exited, setExited] = React.useState(!isOpen)\n\n useKeyboardDismissable({\n enabled: isOpen && isKeyboardDismissable,\n callback: onRequestClose ? onRequestClose : () => {},\n })\n\n if (exited && !isOpen) {\n return null\n }\n\n // Android handles multiple Modal in RN and is better for accessibility as it shifts accessibility focus on mount, however it may not needed in case of tooltips, toast where one doesn't need to shift accessibility focus\n if (Platform.OS === 'android' && useRNModalOnAndroid) {\n return (\n <ExitAnimationContext.Provider value={{ exited, setExited }}>\n <Modal transparent visible={true} onRequestClose={onRequestClose}>\n {children}\n </Modal>\n </ExitAnimationContext.Provider>\n )\n }\n\n // Since OverlayContainer mounts children in NativeBaseProvider using Context, we need to pass the context by wrapping children\n return (\n <OverlayContainer>\n <ExitAnimationContext.Provider value={{ exited, setExited }}>{children}</ExitAnimationContext.Provider>\n </OverlayContainer>\n )\n}\n", "// forked from NativeBase\n// The MIT License (MIT)\n\n// Copyright (c) 2021 GeekyAnts India Pvt Ltd\n\n// Permission is hereby granted, free of charge, to any person obtaining a copy of\n// this software and associated documentation files (the \"Software\"), to deal in\n// the Software without restriction, including without limitation the rights to\n// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\n// the Software, and to permit persons to whom the Software is furnished to do so,\n// subject to the following conditions:\n\n// The above copyright notice and this permission notice shall be included in all\n// copies or substantial portions of the Software.\n\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\n// FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\n// COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\n// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\n// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nimport { createContext } from 'react'\n\nexport const ExitAnimationContext = createContext({\n exited: true,\n setExited: (_exited: boolean) => {},\n})\n", "// forked from NativeBase\n// The MIT License (MIT)\n\n// Copyright (c) 2021 GeekyAnts India Pvt Ltd\n\n// Permission is hereby granted, free of charge, to any person obtaining a copy of\n// this software and associated documentation files (the \"Software\"), to deal in\n// the Software without restriction, including without limitation the rights to\n// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\n// the Software, and to permit persons to whom the Software is furnished to do so,\n// subject to the following conditions:\n\n// The above copyright notice and this permission notice shall be included in all\n// copies or substantial portions of the Software.\n\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\n// FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\n// COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\n// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\n// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nimport { useOverlayPosition } from '@react-native-aria/overlays'\nimport { StackProps } from '@tamagui/core'\nimport type { ReactElement, RefObject } from 'react'\nimport React, { createContext, useContext, useEffect, useRef } from 'react'\nimport { StyleSheet, View, ViewStyle } from 'react-native'\n\nimport { YStack } from './Stacks'\n\nexport type IPopoverArrowProps = {\n height?: any\n width?: any\n children?: any\n color?: any\n style?: any\n}\n\nexport type IPlacement =\n | 'top'\n | 'bottom'\n | 'left'\n | 'right'\n | 'top left'\n | 'top right'\n | 'bottom left'\n | 'bottom right'\n | 'right top'\n | 'right bottom'\n | 'left top'\n | 'left bottom'\n\nexport type IPopperProps = {\n shouldFlip?: boolean\n crossOffset?: number\n offset?: number\n children: React.ReactNode\n shouldOverlapWithTrigger?: boolean\n trigger?: ReactElement | RefObject<any>\n placement?: IPlacement\n}\n\nexport type IArrowStyles = {\n placement?: string\n height?: number\n width?: number\n}\n\nexport type IScrollContentStyle = {\n placement?: string\n arrowHeight: number\n arrowWidth: number\n}\n\nconst defaultArrowHeight = 15\nconst defaultArrowWidth = 15\n\nconst getDiagonalLength = (height: number, width: number) => {\n return Math.pow(height * height + width * width, 0.5)\n}\n\ntype PopperContext = IPopperProps & {\n triggerRef: any\n onClose: any\n setOverlayRef?: (overlayRef: any) => void\n}\n\nconst PopperContext = createContext<PopperContext | null>(null)\n\nexport const Popper = (\n props: IPopperProps & {\n triggerRef: any\n onClose: any\n setOverlayRef?: (overlayRef: any) => void\n }\n) => {\n return <PopperContext.Provider value={props}>{props.children}</PopperContext.Provider>\n}\n\nconst PopperContent = React.forwardRef(({ children, style, ...rest }: any, ref: any) => {\n const context = useContext(PopperContext) || ({} as any)\n const {\n triggerRef,\n shouldFlip,\n crossOffset,\n offset,\n placement: placementProp,\n onClose,\n shouldOverlapWithTrigger,\n setOverlayRef,\n } = context\n const overlayRef = useRef(null)\n // const { top } = useSafeAreaInsets();\n const { overlayProps, rendered, arrowProps, placement } = useOverlayPosition({\n targetRef: triggerRef,\n overlayRef,\n shouldFlip: shouldFlip,\n crossOffset: crossOffset,\n isOpen: true,\n offset: offset,\n placement: placementProp as any,\n containerPadding: 0,\n onClose: onClose,\n shouldOverlapWithTrigger,\n })\n\n let restElements: React.ReactNode[] = []\n let arrowElement: React.ReactElement | null = null\n\n useEffect(() => {\n setOverlayRef && setOverlayRef(overlayRef)\n }, [overlayRef, setOverlayRef])\n\n // Might have performance impact if there are a lot of siblings!\n // Shouldn't be an issue with popovers since it would have atmost 2. Arrow and Content.\n React.Children.forEach(children, (child) => {\n if (\n React.isValidElement(child) &&\n // @ts-ignore\n child.type.displayName === 'PopperArrow'\n ) {\n arrowElement = React.cloneElement(child, {\n // @ts-ignore\n arrowProps,\n actualPlacement: placement,\n })\n } else {\n restElements.push(child)\n }\n })\n\n let arrowHeight = 0\n let arrowWidth = 0\n\n if (arrowElement) {\n arrowHeight = defaultArrowHeight\n arrowWidth = defaultArrowWidth\n //@ts-ignore\n if (arrowElement.props.height) {\n //@ts-ignore\n arrowHeight = arrowElement.props.height\n }\n //@ts-ignore\n if (arrowElement.props.width) {\n //@ts-ignore\n arrowWidth = arrowElement.props.width\n }\n }\n\n const containerStyle = React.useMemo(\n () =>\n getContainerStyle({\n placement,\n arrowHeight,\n arrowWidth,\n }),\n [arrowHeight, arrowWidth, placement]\n )\n\n // TODO move this over to snack views\n const overlayStyle = React.useMemo(\n () =>\n StyleSheet.create({\n overlay: {\n ...overlayProps.style,\n // To handle translucent android StatusBar\n // marginTop: Platform.select({ android: top, default: 0 }),\n opacity: rendered ? 1 : 0,\n position: 'absolute',\n },\n }),\n [rendered, overlayProps.style]\n )\n\n return (\n <View ref={overlayRef} collapsable={false} style={overlayStyle.overlay}>\n {arrowElement}\n <View style={StyleSheet.flatten([containerStyle, style])} {...rest} ref={ref}>\n {restElements}\n </View>\n </View>\n )\n})\n\n// This is an internal implementation of PopoverArrow\nexport type PopperArrowProps = StackProps\n\n// TODO fix types\nconst PopperArrow = React.forwardRef(\n (\n {\n height = defaultArrowHeight,\n width = defaultArrowWidth,\n\n //@ts-ignore - Will be passed by React.cloneElement from PopperContent\n arrowProps,\n //@ts-ignore - Will be passed by React.cloneElement from PopperContent\n actualPlacement,\n style,\n borderColor = '#52525b',\n backgroundColor = 'black',\n ...rest\n }: PopperArrowProps,\n ref: any\n ) => {\n const additionalStyles = React.useMemo(\n // @ts-ignore\n () => getArrowStyles({ placement: actualPlacement, height, width }),\n [actualPlacement, height, width]\n )\n\n // @ts-ignore\n let triangleStyle: ViewStyle = React.useMemo(\n () => ({\n position: 'absolute',\n width,\n height,\n }),\n [width, height]\n )\n\n let arrowStyles = React.useMemo(\n // @ts-ignore\n () => [arrowProps.style, triangleStyle, additionalStyles, style],\n // @ts-ignore\n [triangleStyle, additionalStyles, arrowProps.style, style]\n )\n\n return (\n // @ts-ignore TODO\n <YStack\n ref={ref}\n style={arrowStyles}\n borderColor={borderColor}\n backgroundColor={backgroundColor}\n zIndex={1}\n {...rest}\n />\n )\n }\n)\n\nconst getArrowStyles = (props: IArrowStyles) => {\n let additionalStyles: any = {\n transform: [],\n }\n\n const diagonalLength = getDiagonalLength(defaultArrowHeight, defaultArrowHeight)\n\n if (props.placement === 'top' && props.width) {\n additionalStyles.transform.push({ translateX: -props.width / 2 })\n additionalStyles.transform.push({ rotate: '45deg' })\n additionalStyles.bottom = Math.ceil((diagonalLength - defaultArrowHeight) / 2)\n additionalStyles.borderBottomWidth = 1\n additionalStyles.borderRightWidth = 1\n }\n\n if (props.placement === 'bottom' && props.width) {\n additionalStyles.transform.push({ translateX: -props.width / 2 })\n additionalStyles.transform.push({ rotate: '45deg' })\n additionalStyles.top = Math.ceil((diagonalLength - defaultArrowHeight) / 2)\n additionalStyles.borderTopWidth = 1\n additionalStyles.borderLeftWidth = 1\n }\n\n if (props.placement === 'left' && props.height) {\n additionalStyles.transform.push({ translateY: -props.height / 2 })\n additionalStyles.transform.push({ rotate: '45deg' })\n additionalStyles.right = Math.ceil((diagonalLength - defaultArrowHeight) / 2)\n additionalStyles.borderTopWidth = 1\n additionalStyles.borderRightWidth = 1\n }\n\n if (props.placement === 'right' && props.height) {\n additionalStyles.transform.push({ translateY: -props.height / 2 })\n additionalStyles.transform.push({ rotate: '45deg' })\n additionalStyles.left = Math.ceil((diagonalLength - defaultArrowHeight) / 2)\n additionalStyles.borderBottomWidth = 1\n additionalStyles.borderLeftWidth = 1\n }\n\n return additionalStyles\n}\n\nconst getContainerStyle = ({ placement, arrowHeight }: IScrollContentStyle) => {\n const diagonalLength = getDiagonalLength(arrowHeight, arrowHeight) / 2\n if (placement === 'top') {\n return { marginBottom: diagonalLength }\n }\n if (placement === 'bottom') {\n return { marginTop: diagonalLength }\n }\n if (placement === 'left') {\n return { marginRight: diagonalLength }\n }\n if (placement === 'right') {\n return { marginLeft: diagonalLength }\n }\n return {}\n}\n\nPopperArrow.displayName = 'PopperArrow'\nPopper.Content = PopperContent\nPopper.Arrow = PopperArrow\n", "// forked from NativeBase\n// The MIT License (MIT)\n\n// Copyright (c) 2021 GeekyAnts India Pvt Ltd\n\n// Permission is hereby granted, free of charge, to any person obtaining a copy of\n// this software and associated documentation files (the \"Software\"), to deal in\n// the Software without restriction, including without limitation the rights to\n// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\n// the Software, and to permit persons to whom the Software is furnished to do so,\n// subject to the following conditions:\n\n// The above copyright notice and this permission notice shall be included in all\n// copies or substantial portions of the Software.\n\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\n// FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\n// COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\n// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\n// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nimport React, { forwardRef, memo } from 'react'\n\nimport { ExitAnimationContext } from '../ExitAnimationContext'\nimport { Transition } from './Transition'\nimport type { IPresenceTransitionProps } from './types'\n\nexport const PresenceTransition = memo(\n forwardRef(({ visible = false, onTransitionComplete, ...rest }: IPresenceTransitionProps, ref: any) => {\n const [animationExited, setAnimationExited] = React.useState(!visible)\n\n const { setExited } = React.useContext(ExitAnimationContext)\n\n if (!visible && animationExited) {\n return null\n }\n\n return (\n <Transition\n visible={visible}\n onTransitionComplete={(state) => {\n if (state === 'exited') {\n setAnimationExited(true)\n setExited(true)\n } else {\n setAnimationExited(false)\n setExited(false)\n }\n onTransitionComplete && onTransitionComplete(state)\n }}\n {...rest}\n ref={ref}\n />\n )\n })\n)\n", "// forked from NativeBase\n// The MIT License (MIT)\n\n// Copyright (c) 2021 GeekyAnts India Pvt Ltd\n\n// Permission is hereby granted, free of charge, to any person obtaining a copy of\n// this software and associated documentation files (the \"Software\"), to deal in\n// the Software without restriction, including without limitation the rights to\n// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\n// the Software, and to permit persons to whom the Software is furnished to do so,\n// subject to the following conditions:\n\n// The above copyright notice and this permission notice shall be included in all\n// copies or substantial portions of the Software.\n\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\n// FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\n// COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\n// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\n// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nimport React, { forwardRef, useEffect, useMemo, useRef } from 'react'\nimport { Animated } from 'react-native'\n\nimport type { ISupportedTransitions, ITransitionConfig, ITransitionProps } from './types'\n\nconst transformStylesMap = {\n translateY: true,\n translateX: true,\n scale: true,\n scaleX: true,\n scaleY: true,\n rotate: true,\n}\n\nconst defaultStyles = {\n opacity: 1,\n translateY: 0,\n translateX: 0,\n scale: 1,\n scaleX: 1,\n scaleY: 1,\n rotate: '0deg',\n}\n\nconst getAnimatedStyles = (animateValue: any) => (initial: ISupportedTransitions, to: ISupportedTransitions) => {\n const styles: any = {\n transform: [],\n }\n for (let key in initial) {\n if (key === 'transition') {\n continue\n }\n\n if (key in transformStylesMap) {\n styles.transform?.push({\n [key]: animateValue.interpolate({\n inputRange: [0, 1],\n outputRange: [(initial as any)[key], (to as any)[key]],\n }),\n } as any)\n } else {\n styles[key] = animateValue.interpolate({\n inputRange: [0, 1],\n outputRange: [(initial as any)[key], (to as any)[key]],\n })\n }\n }\n\n return styles\n}\n\nconst defaultTransitionConfig: ITransitionConfig = {\n type: 'timing',\n useNativeDriver: true,\n duration: 250,\n delay: 0,\n}\n\nexport const Transition = forwardRef(\n (\n {\n children,\n onTransitionComplete,\n visible = false,\n initial,\n animate,\n exit,\n style,\n as,\n ...rest\n }: ITransitionProps,\n ref: any\n ) => {\n const animateValue = useRef(new Animated.Value(0)).current\n\n const Component = useMemo(() => {\n if (as) {\n return Animated.createAnimatedComponent(as)\n }\n return Animated.View\n }, [as])\n\n const [animationState, setAnimationState] = React.useState(visible ? 'entering' : 'exited')\n\n const prevVisible = useRef(visible)\n\n useEffect(\n function startEntryTransition() {\n const entryTransition = {\n ...defaultTransitionConfig,\n ...animate?.transition,\n }\n\n if (visible) {\n Animated.sequence([\n // @ts-ignore - delay is present in defaultTransitionConfig\n Animated.delay(entryTransition.delay),\n Animated[entryTransition.type ?? 'timing'](animateValue, {\n toValue: 1,\n useNativeDriver: true,\n ...entryTransition,\n }),\n ]).start(() => {\n setAnimationState('entered')\n })\n }\n },\n [visible, onTransitionComplete, animateValue, animate]\n )\n\n useEffect(() => {\n // Exit request\n if (prevVisible.current !== visible && !visible) {\n setAnimationState('exiting')\n }\n prevVisible.current = visible\n }, [visible])\n\n useEffect(\n function startExitTransition() {\n const exitTransition = {\n ...defaultTransitionConfig,\n ...exit?.transition,\n }\n\n if (animationState === 'exiting') {\n Animated.sequence([\n // @ts-ignore - delay is present in defaultTransitionConfig\n Animated.delay(exitTransition.delay),\n Animated[exitTransition.type ?? 'timing'](animateValue, {\n toValue: 0,\n useNativeDriver: true,\n ...exitTransition,\n }),\n ]).start(() => {\n setAnimationState('exited')\n })\n }\n },\n [exit, onTransitionComplete, setAnimationState, animationState, animateValue]\n )\n\n // If exit animation is present and state is exiting, we replace 'initial' with 'exit' animation\n initial =\n animationState === 'exiting' && exit ? { ...defaultStyles, ...exit } : { ...defaultStyles, ...initial }\n\n animate = { ...defaultStyles, ...animate }\n\n const styles = useMemo(() => {\n return [\n getAnimatedStyles(animateValue)(initial as ISupportedTransitions, animate as ISupportedTransitions),\n style,\n ]\n }, [animateValue, initial, animate, style])\n\n useEffect(() => {\n if (animationState === 'exited') {\n onTransitionComplete && onTransitionComplete('exited')\n } else if (animationState === 'entered') {\n onTransitionComplete && onTransitionComplete('entered')\n }\n }, [animationState, onTransitionComplete])\n\n return (\n <Component\n pointerEvents=\"box-none\"\n // https://github.com/facebook/react-native/issues/23090#issuecomment-710803743\n needsOffscreenAlphaCompositing\n style={styles}\n ref={ref}\n {...rest}\n >\n {children}\n </Component>\n )\n }\n)\n", "// forked from NativeBase\n// The MIT License (MIT)\n\n// Copyright (c) 2021 GeekyAnts India Pvt Ltd\n\n// Permission is hereby granted, free of charge, to any person obtaining a copy of\n// this software and associated documentation files (the \"Software\"), to deal in\n// the Software without restriction, including without limitation the rights to\n// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\n// the Software, and to permit persons to whom the Software is furnished to do so,\n// subject to the following conditions:\n\n// The above copyright notice and this permission notice shall be included in all\n// copies or substantial portions of the Software.\n\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\n// FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\n// COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\n// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\n// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nimport React from 'react'\n\nimport { Popper, PopperArrowProps } from '../Popper'\n\nexport const PopoverArrow = React.forwardRef((props: PopperArrowProps, ref: any) => {\n return <Popper.Arrow {...props} ref={ref} />\n})\n\nPopoverArrow.displayName = 'PopoverArrow'\n", "// forked from NativeBase\n// The MIT License (MIT)\n\n// Copyright (c) 2021 GeekyAnts India Pvt Ltd\n\n// Permission is hereby granted, free of charge, to any person obtaining a copy of\n// this software and associated documentation files (the \"Software\"), to deal in\n// the Software without restriction, including without limitation the rights to\n// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\n// the Software, and to permit persons to whom the Software is furnished to do so,\n// subject to the following conditions:\n\n// The above copyright notice and this permission notice shall be included in all\n// copies or substantial portions of the Software.\n\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\n// FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\n// COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\n// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\n// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nimport React, { useEffect } from 'react'\nimport { Platform } from 'react-native'\n\nimport { useKeyboardDismissable } from '../../hooks/useKeyboardDismissable'\nimport { Popper } from '../Popper'\nimport { YStack } from '../Stacks'\nimport { PopoverContext } from './PopoverContext'\nimport type { IPopoverContentProps } from './types'\n\nexport const PopoverContent = React.forwardRef((props: IPopoverContentProps, ref: any) => {\n const {\n onClose,\n initialFocusRef,\n finalFocusRef,\n popoverContentId,\n headerMounted,\n bodyMounted,\n bodyId,\n headerId,\n } = React.useContext(PopoverContext)\n\n useEffect(() => {\n const finalFocusRefCurrentVal = finalFocusRef?.current\n if (initialFocusRef && initialFocusRef.current) {\n initialFocusRef.current.focus()\n }\n\n return () => {\n if (finalFocusRefCurrentVal) {\n finalFocusRefCurrentVal.focus()\n }\n }\n }, [finalFocusRef, initialFocusRef])\n\n useKeyboardDismissable({\n enabled: true,\n callback: onClose,\n })\n\n const accessibilityProps =\n Platform.OS === 'web'\n ? ({\n accessibilityRole: 'dialog',\n 'aria-labelledby': headerMounted ? headerId : undefined,\n 'aria-describedby': bodyMounted ? bodyId : undefined,\n } as any)\n : {}\n\n return (\n <Popper.Content nativeID={popoverContentId} {...accessibilityProps} ref={ref}>\n {/* @ts-ignore TODO */}\n <YStack {...props}>{props.children}</YStack>\n </Popper.Content>\n )\n})\n\nPopoverContent.displayName = 'PopoverContent'\n", "// forked from NativeBase\n// The MIT License (MIT)\n\n// Copyright (c) 2021 GeekyAnts India Pvt Ltd\n\n// Permission is hereby granted, free of charge, to any person obtaining a copy of\n// this software and associated documentation files (the \"Software\"), to deal in\n// the Software without restriction, including without limitation the rights to\n// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\n// the Software, and to permit persons to whom the Software is furnished to do so,\n// subject to the following conditions:\n\n// The above copyright notice and this permission notice shall be included in all\n// copies or substantial portions of the Software.\n\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\n// FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\n// COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\n// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\n// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nimport React, { RefObject } from 'react'\n\nexport const PopoverContext = React.createContext({\n onClose: () => {},\n initialFocusRef: { current: null } as RefObject<any> | undefined,\n finalFocusRef: { current: null } as RefObject<any> | undefined,\n popoverContentId: undefined as string | undefined,\n headerId: undefined as string | undefined,\n bodyId: undefined as string | undefined,\n setHeaderMounted: (() => {}) as any,\n setBodyMounted: (() => {}) as any,\n headerMounted: false,\n bodyMounted: false,\n})\n", "import { Stack, StackProps, styled } from '@tamagui/core'\n\n// TODO merge w InteractiveFrame\n\nexport const InteractiveContainer = styled(Stack, {\n flexDirection: 'row',\n borderWidth: 1,\n borderColor: '$borderColor',\n overflow: 'hidden',\n borderRadius: '$2',\n hoverStyle: {\n borderColor: '$borderColor2',\n },\n})\n", "import { Stack, styled } from '@tamagui/core'\n\nexport const Section = styled(Stack, {\n tag: 'section',\n flexDirection: 'column',\n accessibilityRole: 'summary',\n})\n\nexport const Article = styled(Stack, {\n tag: 'article',\n flexDirection: 'column',\n})\n\nexport const Main = styled(Stack, {\n tag: 'main',\n flexDirection: 'column',\n})\n\nexport const Header = styled(Stack, {\n tag: 'header',\n accessibilityRole: 'header',\n flexDirection: 'column',\n})\n\nexport const Aside = styled(Stack, {\n tag: 'aside',\n flexDirection: 'column',\n // accessibilityRole: 'complementary',\n})\n\nexport const Footer = styled(Stack, {\n tag: 'footer',\n flexDirection: 'column',\n // accessibilityRole: 'contentinfo',\n})\n\nexport const Nav = styled(Stack, {\n tag: 'nav',\n flexDirection: 'column',\n // accessibilityRole: 'navigation',\n})\n", "import { Stack, useIsomorphicLayoutEffect } from '@tamagui/core'\nimport React, { ReactElement, useState } from 'react'\n\nimport { normalizeColor } from '../helpers/normalizeColor'\nimport { useLayout } from '../hooks/useLayout'\nimport { NativeLinearGradientPoint, NativeLinearGradientProps } from './NativeLinearGradientProps'\n\n// bugfix esbuild strips react jsx: 'preserve'\nReact['createElement']\n\nexport const LinearGradient = Stack.extractable(\n ({ colors = [], locations, start, end, ...props }: NativeLinearGradientProps): ReactElement => {\n const [gradientColors, setGradientColors] = useState<string[]>([])\n const [pseudoAngle, setPseudoAngle] = useState<number>(0)\n const layoutProps = useLayout()\n const { width = 1, height = 1 } = layoutProps.layout ?? {}\n\n useIsomorphicLayoutEffect(() => {\n const getControlPoints = (): NativeLinearGradientPoint[] => {\n let correctedStart: NativeLinearGradientPoint = [0, 0]\n if (Array.isArray(start)) {\n correctedStart = [start[0] != null ? start[0] : 0.0, start[1] != null ? start[1] : 0.0]\n }\n let correctedEnd: NativeLinearGradientPoint = [0.0, 1.0]\n if (Array.isArray(end)) {\n correctedEnd = [end[0] != null ? end[0] : 0.0, end[1] != null ? end[1] : 1.0]\n }\n return [correctedStart, correctedEnd]\n }\n\n const [start_, end_] = getControlPoints()\n start_[0] *= width\n end_[0] *= width\n start_[1] *= height\n end_[1] *= height\n const py = end_[1] - start_[1]\n const px = end_[0] - start_[0]\n\n setPseudoAngle(90 + (Math.atan2(py, px) * 180) / Math.PI)\n }, [width, height, start, end])\n\n useIsomorphicLayoutEffect(() => {\n const nextGradientColors = colors.map((color, index): string => {\n const hexColor = normalizeColor(color)\n let output = hexColor\n if (locations && locations[index]) {\n const location = Math.max(0, Math.min(1, locations[index]))\n // Convert 0...1 to 0...100\n const percentage = location * 100\n output += ` ${percentage}%`\n }\n return output || ''\n })\n\n setGradientColors(nextGradientColors)\n }, [colors, locations])\n\n const colorStyle = gradientColors.join(',')\n const backgroundImage = `linear-gradient(${pseudoAngle}deg, ${colorStyle})`\n // TODO(Bacon): In the future we could consider adding `backgroundRepeat: \"no-repeat\"`. For more\n // browser support.\n return (\n <Stack\n {...props}\n {...layoutProps}\n style={[\n props.style,\n // @ts-ignore: [ts] Property 'backgroundImage' does not exist on type 'ViewStyle'.\n { backgroundImage },\n ]}\n />\n )\n }\n)\n", "import normalizeCSSColor from 'normalize-css-color'\n\nexport const normalizeColor = (color?: number | string, opacity = 1): void | string => {\n if (color == null) return\n if (typeof color === 'string' && isWebColor(color)) {\n return color\n }\n const colorInt = processColor(color)\n if (colorInt != null) {\n const r = (colorInt >> 16) & 255\n const g = (colorInt >> 8) & 255\n const b = colorInt & 255\n const a = ((colorInt >> 24) & 255) / 255\n const alpha = (a * opacity).toFixed(2)\n return `rgba(${r},${g},${b},${alpha})`\n }\n}\n\nconst isWebColor = (color: string): boolean =>\n color === 'currentcolor' ||\n color === 'currentColor' ||\n color === 'inherit' ||\n color.indexOf('var(') === 0\n\nconst processColor = (color?: string | number): number | undefined => {\n if (color === undefined || color === null) {\n return color\n }\n // convert number and hex\n let int32Color = normalizeCSSColor(color)\n if (int32Color === undefined || int32Color === null) {\n return undefined\n }\n // @ts-ignore\n int32Color = ((int32Color << 24) | (int32Color >>> 8)) >>> 0\n // @ts-ignore\n return int32Color\n}\n", "import {\n AnimatedStack,\n AnimatedStackProps,\n Theme,\n isTouchDevice,\n isWeb,\n styled,\n useThemeName,\n} from '@tamagui/core'\nimport React, { useLayoutEffect } from 'react'\nimport { Modal as ModalNative, ModalProps as ModalPropsReact } from 'react-native'\n\nimport { prevent } from '../helpers/prevent'\nimport { useDebounceValue } from '../hooks/useDebounce'\nimport { YStack } from './Stacks'\n\nexport type ModalProps = Omit<ModalPropsReact, 'children'> &\n AnimatedStackProps & {\n visible?: boolean\n overlayBackground?: string\n overlayDismisses?: boolean\n children?: any | ((isOpen?: boolean) => any)\n }\n\nexport const Modal = (props: ModalProps) => {\n const {\n // modal specific props\n visible = true,\n animationType = 'slide', // keep this only for native for now\n onRequestClose,\n onShow,\n // ios specific\n presentationStyle,\n transparent = isWeb,\n supportedOrientations,\n onDismiss,\n onOrientationChange,\n // android specific\n hardwareAccelerated,\n statusBarTranslucent,\n // overlay\n overlayBackground = 'rgba(0,0,0,0.5)',\n overlayDismisses,\n // children\n children,\n height,\n width,\n minHeight,\n minWidth,\n maxWidth,\n maxHeight,\n velocity,\n animation,\n ...rest\n } = props\n\n // only shared between both\n const modalProps: ModalPropsReact = {\n transparent,\n visible,\n onRequestClose,\n onShow,\n presentationStyle,\n supportedOrientations,\n onDismiss,\n onOrientationChange,\n hardwareAccelerated,\n statusBarTranslucent,\n }\n\n const themeName = useThemeName()\n const finalChildren = typeof children === 'function' ? children(visible) : children\n\n if (isWeb) {\n const pointerEvents = visible ? 'auto' : 'none'\n const modalVisible = useDebounceValue(visible, visible ? 200 : 0)\n\n useLayoutEffect(() => {\n if (visible) {\n document.body.classList.add('modal-open')\n return () => {\n document.body.classList.remove('modal-open')\n }\n }\n }, [visible])\n\n // this fixes page getting stuck at top, at the expense of a flicker\n if (isTouchDevice) {\n useLayoutEffect(() => {\n if (visible) {\n return () => {\n const og = document.body.style.display\n setTimeout(() => {\n document.body.style.display = 'none'\n setTimeout(() => {\n document.body.style.display = og\n }, 0)\n })\n }\n }\n }, [visible])\n }\n\n return (\n <ModalNative {...modalProps} visible={modalVisible}>\n <Theme name={themeName}>\n <YStack\n position=\"absolute\"\n ref={preventFormFocusBug as any}\n fullscreen\n pointerEvents={pointerEvents}\n backgroundColor={visible ? overlayBackground : 'transparent'}\n alignItems=\"center\"\n justifyContent=\"center\"\n onPressOut={overlayDismisses ? onRequestClose : undefined}\n onPress={onDismiss}\n >\n <AnimatedStack\n {...{\n height,\n width,\n minHeight,\n minWidth,\n maxWidth,\n maxHeight,\n velocity,\n pointerEvents,\n animateState: modalVisible ? 'in' : 'out',\n animation,\n }}\n >\n <ModalYStack onPress={prevent} pointerEvents={pointerEvents} {...rest}>\n {finalChildren}\n </ModalYStack>\n </AnimatedStack>\n </YStack>\n </Theme>\n </ModalNative>\n )\n }\n\n return (\n <ModalNative animationType={animationType} {...modalProps}>\n <Theme name={themeName}>\n <YStack flex={1} {...rest} backgroundColor=\"$bg\">\n {finalChildren}\n </YStack>\n </Theme>\n </ModalNative>\n )\n}\n\nexport const ModalYStack = styled(YStack, {\n backgroundColor: '$bg',\n borderRadius: 12,\n alignItems: 'center',\n position: 'relative',\n shadowColor: '$shadowColor',\n shadowRadius: 20,\n shadowOffset: { height: 10, width: 0 },\n flex: 1,\n maxHeight: '100%',\n})\n\nfunction preventFormFocusBug(node: any) {\n for (const child of Array.from(document.body.children)) {\n if (child.contains(node)) {\n const preventFormFocusBug = (e) => e.stopPropagation()\n child.addEventListener('mousedown', preventFormFocusBug, true)\n }\n }\n}\n", "export const prevent = (e) => [e.preventDefault(), e.stopPropagation()]\n", "import { PropTypes, styled } from '@tamagui/core'\n\nimport { SizableText } from './SizableText'\n\nexport const Paragraph = styled(SizableText, {\n fontFamily: '$body',\n color: '$color',\n size: '$4',\n})\n\nexport type ParagraphProps = PropTypes<typeof Paragraph>\n", "import { SSRProvider } from '@react-aria/ssr'\nimport { OverlayProvider } from '@react-native-aria/overlays'\nimport * as React from 'react'\n\n// bugfix esbuild strips react\nReact['createElement']\n\nexport const PopoverProvider = (props: { children?: any }) => {\n return (\n <SSRProvider>\n <OverlayProvider>{props.children}</OverlayProvider>\n </SSRProvider>\n )\n}\n", "import { Stack, StackProps, Text, TextProps, styled } from '@tamagui/core'\n\nexport const Table = styled(Stack, {\n tag: 'table',\n})\n\nexport const TableRow = styled(Stack, {\n tag: 'tr',\n alignSelf: 'stretch', // minWidth: 100%\n flex: 1,\n})\n\nexport const TableHead = styled(Stack, {\n tag: 'thead',\n flexDirection: 'row',\n alignSelf: 'stretch',\n flex: 1,\n borderBottomColor: '#eee',\n borderBottomWidth: 1,\n})\n\nexport const TableHeadCell = styled(Stack, {\n tag: 'th',\n display: 'table-head',\n flexDirection: 'row',\n})\n\nexport const TableHeadText = styled(Text, {\n backgroundColor: 'rgba(0,0,0,0.05)',\n padding: 2,\n paddingHorizontal: 8,\n marginLeft: -8,\n borderRadius: 10,\n maxWidth: '100%',\n ellipse: true,\n fontSize: 12,\n})\n\nexport type TableCellProps = StackProps & TextProps\n\nexport const TableCell = styled(Stack, {\n flex: 1,\n alignSelf: 'stretch',\n alignItems: 'center',\n tag: 'td',\n display: 'table-cell',\n // borderBottomWidth: 1,\n // borderBottomColor: '$borderColor',\n paddingVertical: '$3',\n paddingHorizontal: '$2',\n})\n", "import { styled } from '@tamagui/core'\n\nimport { Paragraph } from './Paragraph'\n\nexport const Title = styled(Paragraph, {\n fontFamily: '$title',\n fontWeight: '700',\n size: '$8',\n})\n\nexport const H1 = styled(Title, {\n fontFamily: '$title',\n accessibilityRole: 'header',\n size: '$10',\n})\n\nexport const H2 = styled(Title, {\n fontFamily: '$title',\n accessibilityRole: 'header',\n size: '$9',\n})\n\nexport const H3 = styled(Title, {\n fontFamily: '$title',\n accessibilityRole: 'header',\n size: '$6',\n fontWeight: '700',\n})\n\nexport const H4 = styled(Title, {\n fontFamily: '$title',\n accessibilityRole: 'header',\n size: '$5',\n})\n\nexport const H5 = styled(Title, {\n fontFamily: '$title',\n accessibilityRole: 'header',\n size: '$4',\n color: '$color2',\n fontWeight: '600',\n})\n\nexport const H6 = styled(Title, {\n fontFamily: '$title',\n accessibilityRole: 'header',\n size: '$4',\n color: '$color3',\n fontWeight: '600',\n})\n", "import { AnimatedStack, Text, isWeb } from '@tamagui/core'\nimport { useForceUpdate } from '@tamagui/core'\nimport React, { memo, useCallback, useEffect, useRef } from 'react'\nimport { createPortal } from 'react-dom'\n\nimport { YStack } from './Stacks'\n\nexport type ToastOptions = {\n duration?: number\n type?: 'info' | 'success' | 'error'\n}\n\nlet clear = () => {}\n\nlet show: (content: any, options?: ToastOptions) => void = (content) => {\n console.warn('Note:', content)\n}\n\nexport const Toast = {\n clear,\n show: (content: any, options?: ToastOptions) => show(content, options),\n error: (content: any, options?: Omit<ToastOptions, 'type'>) =>\n show(content, { ...options, type: 'error' }),\n success: (content: any, options?: Omit<ToastOptions, 'type'>) =>\n show(content, { ...options, type: 'success' }),\n}\n\nif (typeof window !== 'undefined') {\n window['Toast'] = Toast\n}\n\nexport const ToastRoot = memo(function ToastRoot() {\n const forceUpdate = useForceUpdate()\n const stateRef = useRef({\n show: false,\n content: '',\n type: 'info',\n timeout: null,\n })\n const setState = (x: any) => {\n stateRef.current = x\n forceUpdate()\n }\n\n useEffect(() => {\n return () => {\n clearTimeout(stateRef.current.timeout ?? 0)\n }\n }, [])\n\n clear = () => {\n setState({ show: false, content: '' })\n }\n\n show = useCallback(\n (content: any, { duration = 3000, type = 'info' }: ToastOptions = {}) => {\n clearTimeout(stateRef.current.timeout ?? 0)\n const timeout = setTimeout(() => {\n setState({\n show: false,\n content: '',\n type,\n timeout: null,\n })\n }, duration)\n setState({\n show: true,\n content,\n type,\n timeout,\n })\n },\n [stateRef]\n )\n\n const state = stateRef.current\n\n const contents = (\n <YStack\n position=\"absolute\"\n pointerEvents=\"none\"\n fullscreen\n alignItems=\"center\"\n justifyContent=\"flex-end\"\n zIndex={10000000000}\n padding=\"5%\"\n >\n {state.show && !!state.content && (\n <AnimatedStack>\n <YStack\n backgroundColor={\n // TODO theme\n state.type === 'info'\n ? 'rgba(100, 140, 100, 0.95)'\n : state.type === 'success'\n ? 'rgba(20,180,120,0.95)'\n : 'rgba(190,60,60, 0.95)'\n }\n shadowColor=\"rgba(0,0,0,0.35)\"\n shadowOffset={{ height: 10, width: 0 }}\n shadowRadius={40}\n borderRadius={12}\n paddingHorizontal={18}\n paddingVertical={12}\n >\n <Text color=\"#fff\" fontSize={18} fontWeight=\"600\">\n {state.content}\n </Text>\n </YStack>\n </AnimatedStack>\n )}\n </YStack>\n )\n\n const portalEl = document.getElementById('toasts')\n\n if (isWeb && portalEl) {\n return createPortal(contents, portalEl)\n }\n\n return contents\n})\n", "import { Text, styled } from '@tamagui/core'\n\n// expands flex elements when they should push a far as they \"want\" naturally\n\nexport const EnsureFlexed = styled(Text, {\n opacity: 0,\n lineHeight: 0,\n height: 0,\n display: 'flex',\n fontSize: 200,\n children: `wwwwwwwwwwwwwwwwwww`,\n pointerEvents: 'none',\n})\n", "import { StackProps, Text, Theme, isTouchDevice } from '@tamagui/core'\nimport React from 'react'\n\nimport { HoverablePopover, HoverablePopoverProps } from './HoverablePopover'\nimport { Paragraph } from './Paragraph'\nimport { YStack } from './Stacks'\n\nexport type TooltipProps = Omit<HoverablePopoverProps, 'trigger'> & {\n contents?: string | any\n tooltipFrameProps?: Omit<StackProps, 'children'>\n}\n\nexport const Tooltip = ({ contents, tooltipFrameProps, ...props }: TooltipProps) => {\n // this causes ssr issues\n // if (isTouchDevice) {\n // // TODO optionally have it show something on tap\n // return <>{props.children}</>\n // }\n return (\n <HoverablePopover\n placement=\"bottom\"\n delay={200}\n disableUntilSettled\n {...props}\n trigger={(triggerProps) =>\n React.isValidElement(props.children) ? (\n React.cloneElement(props.children, triggerProps)\n ) : (\n // TODO validate works on native (see Hero <Tooltip /> font)\n <Text fontFamily=\"inherit\" fontSize=\"inherit\" {...triggerProps}>\n {props.children}\n </Text>\n )\n }\n >\n {({ open }) => {\n return open ? (\n <Theme name=\"dark\">\n <YStack\n margin={10}\n backgroundColor=\"$bg2\"\n paddingHorizontal=\"$2\"\n paddingVertical=\"$2\"\n maxWidth={400}\n borderRadius=\"$2\"\n shadowColor=\"$shadowColor\"\n shadowRadius={2}\n shadowOffset={{ height: 2, width: 0 }}\n {...tooltipFrameProps}\n >\n <Paragraph textAlign=\"center\" fontSize={14} color=\"$color\">\n {contents}\n </Paragraph>\n </YStack>\n </Theme>\n ) : null\n }}\n </HoverablePopover>\n )\n}\n", "import React from 'react'\nimport { useState } from 'react'\nimport { Pressable, PressableProps } from 'react-native'\n\nimport { YStack } from './Stacks'\n\nexport const TouchableOpacity = (props: PressableProps) => {\n const [isPressed, setIsPressed] = useState(false)\n\n return (\n <YStack opacity={isPressed ? 0.5 : 1}>\n <Pressable\n {...props}\n onPressIn={combineFns(() => setIsPressed(true), props.onPressIn)}\n onPress={combineFns(() => setIsPressed(false), props.onPress)}\n onPressOut={combineFns(() => setIsPressed(false), props.onPressOut)}\n />\n </YStack>\n )\n}\n\nconst combineFns = (...fns: any[]) => {\n return (...args: any[]) => {\n for (const fn of fns) {\n if (typeof fn === 'function') {\n fn(...args)\n }\n }\n }\n}\n", "import { Stack, styled } from '@tamagui/core'\n\nexport const VisuallyHidden = styled(Stack, {\n position: 'absolute',\n width: 1,\n height: 1,\n margin: -1,\n zIndex: -10000,\n overflow: 'hidden',\n opacity: 0.0001,\n pointerEvents: 'none',\n})\n\n// @tamgui/core checks for this in spacing\nVisuallyHidden['isVisuallyHidden'] = true\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
package/dist/views/Button.js
CHANGED
|
@@ -2,7 +2,7 @@ import { themeable } from "@tamagui/core";
|
|
|
2
2
|
import React, { forwardRef } from "react";
|
|
3
3
|
import { InteractiveFrame } from "./InteractiveFrame";
|
|
4
4
|
import { SizableText } from "./SizableText";
|
|
5
|
-
React["
|
|
5
|
+
React["createElement"];
|
|
6
6
|
const Button = InteractiveFrame.extractable(themeable(forwardRef(({
|
|
7
7
|
children,
|
|
8
8
|
icon,
|
package/dist/views/Button.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/views/Button.tsx"],
|
|
4
|
-
"sourcesContent": ["import { TextProps, ThemeableProps, themeable } from '@tamagui/core'\nimport React, { forwardRef } from 'react'\n\nimport { InteractiveFrame, InteractiveFrameProps } from './InteractiveFrame'\nimport { SizableText } from './SizableText'\n\n// bugfix esbuild strips react jsx: 'preserve'\nReact['
|
|
4
|
+
"sourcesContent": ["import { TextProps, ThemeableProps, themeable } from '@tamagui/core'\nimport React, { forwardRef } from 'react'\n\nimport { InteractiveFrame, InteractiveFrameProps } from './InteractiveFrame'\nimport { SizableText } from './SizableText'\n\n// bugfix esbuild strips react jsx: 'preserve'\nReact['createElement']\n\nexport type ButtonProps = InteractiveFrameProps &\n ThemeableProps & {\n textProps?: Omit<TextProps, 'children'>\n noTextWrap?: boolean\n icon?: JSX.Element | null\n iconAfter?: JSX.Element | null\n }\n\nexport const Button = InteractiveFrame.extractable(\n themeable(\n forwardRef(\n (\n {\n children,\n icon,\n iconAfter,\n space,\n textProps,\n noTextWrap,\n elevation,\n theme: themeName,\n size,\n ...props\n }: ButtonProps,\n ref\n ) => {\n return (\n <InteractiveFrame size={size} space={space ?? size ?? '$2'} ref={ref as any} {...props}>\n {icon}\n {noTextWrap ? (\n children\n ) : !children ? null : textProps ? (\n // flex shrink = 1, flex grow = 0 makes buttons shrink properly in native\n <SizableText\n color=\"$color2\"\n flexGrow={0}\n flexShrink={1}\n ellipse\n size={size}\n {...textProps}\n >\n {children}\n </SizableText>\n ) : (\n <SizableText size={size} color=\"$color2\" flexGrow={0} flexShrink={1} ellipse>\n {children}\n </SizableText>\n )}\n {iconAfter}\n </InteractiveFrame>\n )\n }\n )\n )\n)\n"],
|
|
5
5
|
"mappings": "AAAA;AACA;AAEA;AACA;AAGA,MAAM;AAUC,MAAM,SAAS,iBAAiB,YACrC,UACE,WACE,CACE;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,OAAO;AAAA,EACP;AAAA,KACG;AAAA,GAEL,QACG;AACH,SACE,oCAAC,kBAAD;AAAA,IAAkB;AAAA,IAAY,OAAO,SAAS,QAAQ;AAAA,IAAM;AAAA,OAAqB;AAAA,KAC9E,MACA,aACC,WACE,CAAC,WAAW,OAAO,YAErB,oCAAC,aAAD;AAAA,IACE,OAAM;AAAA,IACN,UAAU;AAAA,IACV,YAAY;AAAA,IACZ,SAAO;AAAA,IACP;AAAA,OACI;AAAA,KAEH,YAGH,oCAAC,aAAD;AAAA,IAAa;AAAA,IAAY,OAAM;AAAA,IAAU,UAAU;AAAA,IAAG,YAAY;AAAA,IAAG,SAAO;AAAA,KACzE,WAGJ;AAAA;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
package/dist/views/Hoverable.js
CHANGED
|
@@ -3,7 +3,7 @@ var __name = (target, value) => __defProp(target, "name", { value, configurable:
|
|
|
3
3
|
import { isWeb } from "@tamagui/core";
|
|
4
4
|
import React, { forwardRef, useEffect, useImperativeHandle, useState } from "react";
|
|
5
5
|
import { useDebounce } from "../hooks/useDebounce";
|
|
6
|
-
React["
|
|
6
|
+
React["createElement"];
|
|
7
7
|
const Hoverable = forwardRef(({
|
|
8
8
|
onPressIn,
|
|
9
9
|
onPressOut,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/views/Hoverable.tsx"],
|
|
4
|
-
"sourcesContent": ["import { isWeb } from '@tamagui/core'\nimport React, { forwardRef, useEffect, useImperativeHandle, useState } from 'react'\n\nimport { useDebounce } from '../hooks/useDebounce'\n\n// bugfix esbuild strips react jsx: 'preserve'\nReact['
|
|
4
|
+
"sourcesContent": ["import { isWeb } from '@tamagui/core'\nimport React, { forwardRef, useEffect, useImperativeHandle, useState } from 'react'\n\nimport { useDebounce } from '../hooks/useDebounce'\n\n// bugfix esbuild strips react jsx: 'preserve'\nReact['createElement']\n\ntype SpanProps = React.DOMAttributes<HTMLSpanElement>\n\nexport type HoverableProps = {\n children?: any\n disableUntilSettled?: boolean\n hoverDelay?: number\n onHoverIn?: () => void\n onHoverOut?: () => void\n onPressIn?: SpanProps['onMouseDown']\n onPressOut?: SpanProps['onClick']\n}\n\nexport type HoverableHandle = {\n close: () => void\n}\n\nexport const Hoverable = forwardRef<HoverableHandle, HoverableProps>(\n (\n {\n onPressIn,\n onPressOut,\n onHoverIn,\n onHoverOut,\n disableUntilSettled,\n hoverDelay = 0,\n children,\n }: HoverableProps,\n ref\n ) => {\n if (!isWeb) {\n return children\n }\n\n const [isActive, set] = useState(false)\n const setOffSlow = useDebounce(() => set(false), hoverDelay / 2) // math.min(a bit less than in)\n const setOnSlow = useDebounce(() => set(true), hoverDelay)\n const cancelAll = () => {\n setOnSlow.cancel()\n setOffSlow.cancel()\n }\n\n useImperativeHandle(ref, () => ({\n close: () => {\n set(false)\n },\n }))\n\n useEffect(() => {\n if (isActive) {\n onHoverIn?.()\n } else {\n onHoverOut?.()\n }\n }, [isActive])\n\n const setOff = () => {\n cancelAll()\n setOffSlow()\n }\n const setOn = () => {\n cancelAll()\n setOnSlow()\n }\n\n return (\n <span\n ref={ref as any}\n style={{\n display: 'contents',\n }}\n onMouseEnter={setOn}\n onMouseLeave={setOff}\n onMouseMove={disableUntilSettled ? setOn : undefined}\n onMouseDown={onPressIn}\n onClick={onPressOut}\n >\n {children}\n </span>\n )\n }\n)\n"],
|
|
5
5
|
"mappings": ";;AAAA;AACA;AAEA;AAGA,MAAM;AAkBC,MAAM,YAAY,WACvB,CACE;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,aAAa;AAAA,EACb;AAAA,GAEF,QACG;AACH,MAAI,CAAC,OAAO;AACV,WAAO;AAAA;AAGT,QAAM,CAAC,UAAU,OAAO,SAAS;AACjC,QAAM,aAAa,YAAY,MAAM,IAAI,QAAQ,aAAa;AAC9D,QAAM,YAAY,YAAY,MAAM,IAAI,OAAO;AAC/C,QAAM,YAAY,6BAAM;AACtB,cAAU;AACV,eAAW;AAAA,KAFK;AAKlB,sBAAoB,KAAK,MAAO;AAAA,IAC9B,OAAO,MAAM;AACX,UAAI;AAAA;AAAA;AAIR,YAAU,MAAM;AACd,QAAI,UAAU;AACZ;AAAA,WACK;AACL;AAAA;AAAA,KAED,CAAC;AAEJ,QAAM,SAAS,6BAAM;AACnB;AACA;AAAA,KAFa;AAIf,QAAM,QAAQ,6BAAM;AAClB;AACA;AAAA,KAFY;AAKd,SACE,oCAAC,QAAD;AAAA,IACE;AAAA,IACA,OAAO;AAAA,MACL,SAAS;AAAA;AAAA,IAEX,cAAc;AAAA,IACd,cAAc;AAAA,IACd,aAAa,sBAAsB,QAAQ;AAAA,IAC3C,aAAa;AAAA,IACb,SAAS;AAAA,KAER;AAAA;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -4,7 +4,7 @@ import React, { forwardRef, useImperativeHandle, useRef, useState } from "react"
|
|
|
4
4
|
import { useDebounce } from "../hooks/useDebounce";
|
|
5
5
|
import { Hoverable } from "./Hoverable";
|
|
6
6
|
import { Popover } from "./Popover/Popover";
|
|
7
|
-
React["
|
|
7
|
+
React["createElement"];
|
|
8
8
|
const HoverablePopover = forwardRef(({ trigger, delay = 0, children, allowHoverOnContent, disableUntilSettled, ...props }, ref) => {
|
|
9
9
|
const hoverableRef = useRef(null);
|
|
10
10
|
const [isActive, set] = useState(false);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/views/HoverablePopover.tsx"],
|
|
4
|
-
"sourcesContent": ["import { isTouchDevice } from '@tamagui/core'\nimport React, { forwardRef, useImperativeHandle, useRef, useState } from 'react'\nimport { Pressable } from 'react-native'\n\nimport { useDebounce } from '../hooks/useDebounce'\nimport { Hoverable, HoverableHandle } from './Hoverable'\nimport { Popover } from './Popover/Popover'\nimport { IPopoverProps } from './Popover/types'\n\n// bugfix esbuild strips react jsx: 'preserve'\nReact['
|
|
4
|
+
"sourcesContent": ["import { isTouchDevice } from '@tamagui/core'\nimport React, { forwardRef, useImperativeHandle, useRef, useState } from 'react'\nimport { Pressable } from 'react-native'\n\nimport { useDebounce } from '../hooks/useDebounce'\nimport { Hoverable, HoverableHandle } from './Hoverable'\nimport { Popover } from './Popover/Popover'\nimport { IPopoverProps } from './Popover/types'\n\n// bugfix esbuild strips react jsx: 'preserve'\nReact['createElement']\n\nexport type HoverablePopoverHandle = {\n close: () => void\n}\n\nexport type HoverablePopoverProps = IPopoverProps & {\n delay?: number\n // fallbackToPress?: boolean\n allowHoverOnContent?: boolean\n disableUntilSettled?: boolean\n}\n\nexport const HoverablePopover = forwardRef<HoverablePopoverHandle, HoverablePopoverProps>(\n ({ trigger, delay = 0, children, allowHoverOnContent, disableUntilSettled, ...props }, ref) => {\n const hoverableRef = useRef<HoverableHandle>(null)\n const [isActive, set] = useState(false)\n\n // these are debounced only to allow jump betewen target/trigger\n // ..and to make content trigger faster than trigger\n // todo subtract from inner delay\n const setOffSlow = useDebounce(() => set(false), allowHoverOnContent ? 20 : 0)\n const setOnSlow = useDebounce(() => set(true), allowHoverOnContent ? 40 : 0)\n const cancelAll = () => {\n setOnSlow.cancel()\n setOffSlow.cancel()\n }\n\n const setOff = () => {\n cancelAll()\n setOffSlow()\n }\n const setOn = () => {\n cancelAll()\n setOnSlow()\n }\n\n useImperativeHandle(ref, () => ({\n close: () => {\n cancelAll()\n set(false)\n hoverableRef.current?.close()\n },\n }))\n\n // if (isTouchDevice && !fallbackToPress) {\n // return trigger(null as any, { open: false })\n // }\n\n return (\n <Popover\n isOpen={isActive}\n {...props}\n trigger={(triggerProps, state) => {\n return (\n <Hoverable\n ref={hoverableRef}\n disableUntilSettled={disableUntilSettled}\n onHoverIn={setOn}\n onHoverOut={setOff}\n hoverDelay={delay}\n >\n {trigger(triggerProps, state)}\n </Hoverable>\n )\n }}\n >\n {(openProps) => {\n const childrenElements = typeof children === 'function' ? children(openProps) : children\n return (\n <Popover.Content>\n {allowHoverOnContent ? (\n <Hoverable onHoverIn={setOn} onHoverOut={setOff}>\n {childrenElements}\n </Hoverable>\n ) : (\n childrenElements\n )}\n </Popover.Content>\n )\n }}\n </Popover>\n )\n }\n)\n\n// {isTouchDevice && fallbackToPress ? (\n// children\n// ) : allowHoverOnContent ? (\n// <Hoverable onActive={setOn} onInactive={setOff}>\n// {children}\n// </Hoverable>\n// ) : (\n// children\n// )}\n\n// const HoverOrToggle = (props: {\n// fallbackToPress?: boolean\n// onActive?: () => void\n// onInactive?: () => void\n// children?: any\n// }) => {\n// return (\n// <Hoverable onHoverIn={onActive} onHoverOut={onInactive}>\n// {children}\n// </Hoverable>\n// )\n\n// // // TODO causes SSR issues\n// // if (isTouchDevice) {\n// // const [isOn, setIsOn] = useState(false)\n// // if (!fallbackToPress) {\n// // return children\n// // }\n// // return (\n// // <Pressable\n// // onPress={() => {\n// // setIsOn((x) => {\n// // const next = !x\n// // next ? onActive?.() : onInactive?.()\n// // return next\n// // })\n// // }}\n// // >\n// // {children}\n// // </Pressable>\n// // )\n// // } else {\n// // return (\n// // <Hoverable onHoverIn={onActive} onHoverOut={onInactive}>\n// // {children}\n// // </Hoverable>\n// // )\n// // }\n// }\n"],
|
|
5
5
|
"mappings": ";;AACA;AAGA;AACA;AACA;AAIA,MAAM;AAaC,MAAM,mBAAmB,WAC9B,CAAC,EAAE,SAAS,QAAQ,GAAG,UAAU,qBAAqB,wBAAwB,SAAS,QAAQ;AAC7F,QAAM,eAAe,OAAwB;AAC7C,QAAM,CAAC,UAAU,OAAO,SAAS;AAKjC,QAAM,aAAa,YAAY,MAAM,IAAI,QAAQ,sBAAsB,KAAK;AAC5E,QAAM,YAAY,YAAY,MAAM,IAAI,OAAO,sBAAsB,KAAK;AAC1E,QAAM,YAAY,6BAAM;AACtB,cAAU;AACV,eAAW;AAAA,KAFK;AAKlB,QAAM,SAAS,6BAAM;AACnB;AACA;AAAA,KAFa;AAIf,QAAM,QAAQ,6BAAM;AAClB;AACA;AAAA,KAFY;AAKd,sBAAoB,KAAK,MAAO;AAAA,IAC9B,OAAO,MAAM;AACX;AACA,UAAI;AACJ,mBAAa,SAAS;AAAA;AAAA;AAQ1B,SACE,oCAAC,SAAD;AAAA,IACE,QAAQ;AAAA,OACJ;AAAA,IACJ,SAAS,CAAC,cAAc,UAAU;AAChC,aACE,oCAAC,WAAD;AAAA,QACE,KAAK;AAAA,QACL;AAAA,QACA,WAAW;AAAA,QACX,YAAY;AAAA,QACZ,YAAY;AAAA,SAEX,QAAQ,cAAc;AAAA;AAAA,KAK5B,CAAC,cAAc;AACd,UAAM,mBAAmB,OAAO,aAAa,aAAa,SAAS,aAAa;AAChF,WACE,oCAAC,QAAQ,SAAT,MACG,sBACC,oCAAC,WAAD;AAAA,MAAW,WAAW;AAAA,MAAO,YAAY;AAAA,OACtC,oBAGH;AAAA;AAAA;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -4,7 +4,7 @@ import { Stack, useIsomorphicLayoutEffect } from "@tamagui/core";
|
|
|
4
4
|
import React, { useState } from "react";
|
|
5
5
|
import { normalizeColor } from "../helpers/normalizeColor";
|
|
6
6
|
import { useLayout } from "../hooks/useLayout";
|
|
7
|
-
React["
|
|
7
|
+
React["createElement"];
|
|
8
8
|
const LinearGradient = Stack.extractable(({ colors = [], locations, start, end, ...props }) => {
|
|
9
9
|
const [gradientColors, setGradientColors] = useState([]);
|
|
10
10
|
const [pseudoAngle, setPseudoAngle] = useState(0);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/views/LinearGradient.tsx"],
|
|
4
|
-
"sourcesContent": ["import { Stack, useIsomorphicLayoutEffect } from '@tamagui/core'\nimport React, { ReactElement, useState } from 'react'\n\nimport { normalizeColor } from '../helpers/normalizeColor'\nimport { useLayout } from '../hooks/useLayout'\nimport { NativeLinearGradientPoint, NativeLinearGradientProps } from './NativeLinearGradientProps'\n\n// bugfix esbuild strips react jsx: 'preserve'\nReact['
|
|
4
|
+
"sourcesContent": ["import { Stack, useIsomorphicLayoutEffect } from '@tamagui/core'\nimport React, { ReactElement, useState } from 'react'\n\nimport { normalizeColor } from '../helpers/normalizeColor'\nimport { useLayout } from '../hooks/useLayout'\nimport { NativeLinearGradientPoint, NativeLinearGradientProps } from './NativeLinearGradientProps'\n\n// bugfix esbuild strips react jsx: 'preserve'\nReact['createElement']\n\nexport const LinearGradient = Stack.extractable(\n ({ colors = [], locations, start, end, ...props }: NativeLinearGradientProps): ReactElement => {\n const [gradientColors, setGradientColors] = useState<string[]>([])\n const [pseudoAngle, setPseudoAngle] = useState<number>(0)\n const layoutProps = useLayout()\n const { width = 1, height = 1 } = layoutProps.layout ?? {}\n\n useIsomorphicLayoutEffect(() => {\n const getControlPoints = (): NativeLinearGradientPoint[] => {\n let correctedStart: NativeLinearGradientPoint = [0, 0]\n if (Array.isArray(start)) {\n correctedStart = [start[0] != null ? start[0] : 0.0, start[1] != null ? start[1] : 0.0]\n }\n let correctedEnd: NativeLinearGradientPoint = [0.0, 1.0]\n if (Array.isArray(end)) {\n correctedEnd = [end[0] != null ? end[0] : 0.0, end[1] != null ? end[1] : 1.0]\n }\n return [correctedStart, correctedEnd]\n }\n\n const [start_, end_] = getControlPoints()\n start_[0] *= width\n end_[0] *= width\n start_[1] *= height\n end_[1] *= height\n const py = end_[1] - start_[1]\n const px = end_[0] - start_[0]\n\n setPseudoAngle(90 + (Math.atan2(py, px) * 180) / Math.PI)\n }, [width, height, start, end])\n\n useIsomorphicLayoutEffect(() => {\n const nextGradientColors = colors.map((color, index): string => {\n const hexColor = normalizeColor(color)\n let output = hexColor\n if (locations && locations[index]) {\n const location = Math.max(0, Math.min(1, locations[index]))\n // Convert 0...1 to 0...100\n const percentage = location * 100\n output += ` ${percentage}%`\n }\n return output || ''\n })\n\n setGradientColors(nextGradientColors)\n }, [colors, locations])\n\n const colorStyle = gradientColors.join(',')\n const backgroundImage = `linear-gradient(${pseudoAngle}deg, ${colorStyle})`\n // TODO(Bacon): In the future we could consider adding `backgroundRepeat: \"no-repeat\"`. For more\n // browser support.\n return (\n <Stack\n {...props}\n {...layoutProps}\n style={[\n props.style,\n // @ts-ignore: [ts] Property 'backgroundImage' does not exist on type 'ViewStyle'.\n { backgroundImage },\n ]}\n />\n )\n }\n)\n"],
|
|
5
5
|
"mappings": ";;AAAA;AACA;AAEA;AACA;AAIA,MAAM;AAEC,MAAM,iBAAiB,MAAM,YAClC,CAAC,EAAE,SAAS,IAAI,WAAW,OAAO,QAAQ,YAAqD;AAC7F,QAAM,CAAC,gBAAgB,qBAAqB,SAAmB;AAC/D,QAAM,CAAC,aAAa,kBAAkB,SAAiB;AACvD,QAAM,cAAc;AACpB,QAAM,EAAE,QAAQ,GAAG,SAAS,MAAM,YAAY,UAAU;AAExD,4BAA0B,MAAM;AAC9B,UAAM,mBAAmB,6BAAmC;AAC1D,UAAI,iBAA4C,CAAC,GAAG;AACpD,UAAI,MAAM,QAAQ,QAAQ;AACxB,yBAAiB,CAAC,MAAM,MAAM,OAAO,MAAM,KAAK,GAAK,MAAM,MAAM,OAAO,MAAM,KAAK;AAAA;AAErF,UAAI,eAA0C,CAAC,GAAK;AACpD,UAAI,MAAM,QAAQ,MAAM;AACtB,uBAAe,CAAC,IAAI,MAAM,OAAO,IAAI,KAAK,GAAK,IAAI,MAAM,OAAO,IAAI,KAAK;AAAA;AAE3E,aAAO,CAAC,gBAAgB;AAAA,OATD;AAYzB,UAAM,CAAC,QAAQ,QAAQ;AACvB,WAAO,MAAM;AACb,SAAK,MAAM;AACX,WAAO,MAAM;AACb,SAAK,MAAM;AACX,UAAM,KAAK,KAAK,KAAK,OAAO;AAC5B,UAAM,KAAK,KAAK,KAAK,OAAO;AAE5B,mBAAe,KAAM,KAAK,MAAM,IAAI,MAAM,MAAO,KAAK;AAAA,KACrD,CAAC,OAAO,QAAQ,OAAO;AAE1B,4BAA0B,MAAM;AAC9B,UAAM,qBAAqB,OAAO,IAAI,CAAC,OAAO,UAAkB;AAC9D,YAAM,WAAW,eAAe;AAChC,UAAI,SAAS;AACb,UAAI,aAAa,UAAU,QAAQ;AACjC,cAAM,WAAW,KAAK,IAAI,GAAG,KAAK,IAAI,GAAG,UAAU;AAEnD,cAAM,aAAa,WAAW;AAC9B,kBAAU,IAAI;AAAA;AAEhB,aAAO,UAAU;AAAA;AAGnB,sBAAkB;AAAA,KACjB,CAAC,QAAQ;AAEZ,QAAM,aAAa,eAAe,KAAK;AACvC,QAAM,kBAAkB,mBAAmB,mBAAmB;AAG9D,SACE,oCAAC,OAAD;AAAA,OACM;AAAA,OACA;AAAA,IACJ,OAAO;AAAA,MACL,MAAM;AAAA,MAEN,EAAE;AAAA;AAAA;AAAA;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -3,7 +3,7 @@ var __name = (target, value) => __defProp(target, "name", { value, configurable:
|
|
|
3
3
|
import { SSRProvider } from "@react-aria/ssr";
|
|
4
4
|
import { OverlayProvider } from "@react-native-aria/overlays";
|
|
5
5
|
import * as React from "react";
|
|
6
|
-
React["
|
|
6
|
+
React["createElement"];
|
|
7
7
|
const PopoverProvider = /* @__PURE__ */ __name((props) => {
|
|
8
8
|
return /* @__PURE__ */ React.createElement(SSRProvider, null, /* @__PURE__ */ React.createElement(OverlayProvider, null, props.children));
|
|
9
9
|
}, "PopoverProvider");
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/views/Popover/PopoverProvider.tsx"],
|
|
4
|
-
"sourcesContent": ["import { SSRProvider } from '@react-aria/ssr'\nimport { OverlayProvider } from '@react-native-aria/overlays'\nimport * as React from 'react'\n\n// bugfix esbuild strips react\nReact['
|
|
4
|
+
"sourcesContent": ["import { SSRProvider } from '@react-aria/ssr'\nimport { OverlayProvider } from '@react-native-aria/overlays'\nimport * as React from 'react'\n\n// bugfix esbuild strips react\nReact['createElement']\n\nexport const PopoverProvider = (props: { children?: any }) => {\n return (\n <SSRProvider>\n <OverlayProvider>{props.children}</OverlayProvider>\n </SSRProvider>\n )\n}\n"],
|
|
5
5
|
"mappings": ";;AAAA;AACA;AACA;AAGA,MAAM;AAEC,MAAM,kBAAkB,wBAAC,UAA8B;AAC5D,SACE,oCAAC,aAAD,MACE,oCAAC,iBAAD,MAAkB,MAAM;AAAA,GAHC;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -5,11 +5,9 @@ const SizableText = styled(Text, {
|
|
|
5
5
|
"...size": (val, { tokens, props }) => {
|
|
6
6
|
const family = typeof props.fontFamily === "string" ? props.fontFamily : props.fontFamily instanceof Variable ? props.fontFamily.val : props.fontFamily || "$body";
|
|
7
7
|
const font = tokens.font[family];
|
|
8
|
-
if (
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
return {};
|
|
12
|
-
}
|
|
8
|
+
if (!font) {
|
|
9
|
+
console.warn("\u26A0\uFE0F no font found", { family, fontTokens: Object.keys(tokens.font), val });
|
|
10
|
+
return {};
|
|
13
11
|
}
|
|
14
12
|
const fontFamily = font.family;
|
|
15
13
|
const fontSize = props.fontSize || font.size[val];
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/views/SizableText.tsx"],
|
|
4
|
-
"sourcesContent": ["import { GetProps, Text, Variable, styled } from '@tamagui/core'\n\nexport const SizableText = styled(Text, {\n variants: {\n size: {\n // TODO this should be ...fontSize type not working\n '...size': (val, { tokens, props }) => {\n const family = (\n typeof props.fontFamily === 'string'\n ? props.fontFamily\n : props.fontFamily instanceof Variable\n ? props.fontFamily.val\n : props.fontFamily || '$body'\n ) as any\n const font = tokens.font[family]\n if (
|
|
5
|
-
"mappings": "AAAA;AAEO,MAAM,cAAc,OAAO,MAAM;AAAA,EACtC,UAAU;AAAA,IACR,MAAM;AAAA,MAEJ,WAAW,CAAC,KAAK,EAAE,QAAQ,YAAY;AACrC,cAAM,SACJ,OAAO,MAAM,eAAe,WACxB,MAAM,aACN,MAAM,sBAAsB,WAC5B,MAAM,WAAW,MACjB,MAAM,cAAc;AAE1B,cAAM,OAAO,OAAO,KAAK;AACzB,YAAI,
|
|
4
|
+
"sourcesContent": ["import { GetProps, Text, Variable, styled } from '@tamagui/core'\n\nexport const SizableText = styled(Text, {\n variants: {\n size: {\n // TODO this should be ...fontSize type not working\n '...size': (val, { tokens, props }) => {\n const family = (\n typeof props.fontFamily === 'string'\n ? props.fontFamily\n : props.fontFamily instanceof Variable\n ? props.fontFamily.val\n : props.fontFamily || '$body'\n ) as any\n const font = tokens.font[family]\n if (!font) {\n console.warn('\u26A0\uFE0F no font found', { family, fontTokens: Object.keys(tokens.font), val })\n return {}\n }\n const fontFamily = font.family\n const fontSize = props.fontSize || font.size[val]\n const lineHeight = props.lineHeight || font.lineHeight[val]\n const fontWeight = props.fontWeight || font.weight[val]\n const letterSpacing = props.letterSpacing || font.letterSpacing[val]\n if (fontSize instanceof Variable) {\n return {\n fontFamily,\n fontWeight,\n letterSpacing,\n fontSize,\n lineHeight,\n }\n }\n const fs = +val\n // TODO can have props.sizeLineHeight\n const lh = +val * (Math.log(Math.max(1.6, val)) * 0.01 + 1.1)\n return {\n fontSize: fs,\n lineHeight: lh,\n }\n },\n },\n },\n})\n\nexport type SizableTextProps = GetProps<typeof SizableText>\n"],
|
|
5
|
+
"mappings": "AAAA;AAEO,MAAM,cAAc,OAAO,MAAM;AAAA,EACtC,UAAU;AAAA,IACR,MAAM;AAAA,MAEJ,WAAW,CAAC,KAAK,EAAE,QAAQ,YAAY;AACrC,cAAM,SACJ,OAAO,MAAM,eAAe,WACxB,MAAM,aACN,MAAM,sBAAsB,WAC5B,MAAM,WAAW,MACjB,MAAM,cAAc;AAE1B,cAAM,OAAO,OAAO,KAAK;AACzB,YAAI,CAAC,MAAM;AACT,kBAAQ,KAAK,8BAAoB,EAAE,QAAQ,YAAY,OAAO,KAAK,OAAO,OAAO;AACjF,iBAAO;AAAA;AAET,cAAM,aAAa,KAAK;AACxB,cAAM,WAAW,MAAM,YAAY,KAAK,KAAK;AAC7C,cAAM,aAAa,MAAM,cAAc,KAAK,WAAW;AACvD,cAAM,aAAa,MAAM,cAAc,KAAK,OAAO;AACnD,cAAM,gBAAgB,MAAM,iBAAiB,KAAK,cAAc;AAChE,YAAI,oBAAoB,UAAU;AAChC,iBAAO;AAAA,YACL;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA;AAAA;AAGJ,cAAM,KAAK,CAAC;AAEZ,cAAM,KAAK,CAAC,MAAO,MAAK,IAAI,KAAK,IAAI,KAAK,QAAQ,OAAO;AACzD,eAAO;AAAA,UACL,UAAU;AAAA,UACV,YAAY;AAAA;AAAA;AAAA;AAAA;AAAA;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "tamagui",
|
|
3
|
-
"version": "1.0.0-alpha.
|
|
3
|
+
"version": "1.0.0-alpha.3",
|
|
4
4
|
"sideEffects": [
|
|
5
5
|
"*.css"
|
|
6
6
|
],
|
|
@@ -40,5 +40,5 @@
|
|
|
40
40
|
"@types/node": "^16.11.9",
|
|
41
41
|
"@types/react": "^17.0.35"
|
|
42
42
|
},
|
|
43
|
-
"gitHead": "
|
|
43
|
+
"gitHead": "79c58dff688caa316a82d9ee0c684bc50d5fbe4f"
|
|
44
44
|
}
|