tamagui 1.2.8 → 1.2.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (85) hide show
  1. package/dist/esm/createTamagui.mjs +62 -0
  2. package/dist/esm/createTamagui.mjs.map +7 -0
  3. package/dist/esm/helpers/inputHelpers.mjs +40 -0
  4. package/dist/esm/helpers/inputHelpers.mjs.map +7 -0
  5. package/dist/esm/index.mjs +165 -0
  6. package/dist/esm/index.mjs.map +7 -0
  7. package/dist/esm/lib/linear-gradient.native.mjs +2 -0
  8. package/dist/esm/lib/linear-gradient.native.mjs.map +7 -0
  9. package/dist/esm/linear-gradient.mjs +2 -0
  10. package/dist/esm/linear-gradient.mjs.map +7 -0
  11. package/dist/esm/setup.mjs +24 -0
  12. package/dist/esm/setup.mjs.map +7 -0
  13. package/dist/esm/viewTypes.mjs +1 -0
  14. package/dist/esm/viewTypes.mjs.map +7 -0
  15. package/dist/esm/views/Anchor.mjs +37 -0
  16. package/dist/esm/views/Anchor.mjs.map +7 -0
  17. package/dist/esm/views/EnsureFlexed.mjs +18 -0
  18. package/dist/esm/views/EnsureFlexed.mjs.map +7 -0
  19. package/dist/esm/views/Fieldset.mjs +18 -0
  20. package/dist/esm/views/Fieldset.mjs.map +7 -0
  21. package/dist/esm/views/Form.mjs +9 -0
  22. package/dist/esm/views/Form.mjs.map +7 -0
  23. package/dist/esm/views/Grid.mjs +43 -0
  24. package/dist/esm/views/Grid.mjs.map +7 -0
  25. package/dist/esm/views/Group.mjs +137 -0
  26. package/dist/esm/views/Group.mjs.map +7 -0
  27. package/dist/esm/views/Input.mjs +48 -0
  28. package/dist/esm/views/Input.mjs.map +7 -0
  29. package/dist/esm/views/Layouts.mjs +51 -0
  30. package/dist/esm/views/Layouts.mjs.map +7 -0
  31. package/dist/esm/views/Skeleton.mjs +39 -0
  32. package/dist/esm/views/Skeleton.mjs.map +7 -0
  33. package/dist/esm/views/Spinner.mjs +29 -0
  34. package/dist/esm/views/Spinner.mjs.map +7 -0
  35. package/dist/esm/views/TamaguiProvider.mjs +10 -0
  36. package/dist/esm/views/TamaguiProvider.mjs.map +7 -0
  37. package/dist/esm/views/TamaguiProvider.server.mjs +6 -0
  38. package/dist/esm/views/TamaguiProvider.server.mjs.map +7 -0
  39. package/dist/esm/views/TextArea.mjs +24 -0
  40. package/dist/esm/views/TextArea.mjs.map +7 -0
  41. package/dist/esm/views/VisuallyHidden.mjs +37 -0
  42. package/dist/esm/views/VisuallyHidden.mjs.map +7 -0
  43. package/dist/jsx/createTamagui.mjs +62 -0
  44. package/dist/jsx/createTamagui.mjs.map +7 -0
  45. package/dist/jsx/helpers/inputHelpers.mjs +40 -0
  46. package/dist/jsx/helpers/inputHelpers.mjs.map +7 -0
  47. package/dist/jsx/index.mjs +165 -0
  48. package/dist/jsx/index.mjs.map +7 -0
  49. package/dist/jsx/lib/linear-gradient.native.mjs +2 -0
  50. package/dist/jsx/lib/linear-gradient.native.mjs.map +7 -0
  51. package/dist/jsx/linear-gradient.mjs +2 -0
  52. package/dist/jsx/linear-gradient.mjs.map +7 -0
  53. package/dist/jsx/setup.mjs +24 -0
  54. package/dist/jsx/setup.mjs.map +7 -0
  55. package/dist/jsx/viewTypes.mjs +1 -0
  56. package/dist/jsx/viewTypes.mjs.map +7 -0
  57. package/dist/jsx/views/Anchor.mjs +32 -0
  58. package/dist/jsx/views/Anchor.mjs.map +7 -0
  59. package/dist/jsx/views/EnsureFlexed.mjs +18 -0
  60. package/dist/jsx/views/EnsureFlexed.mjs.map +7 -0
  61. package/dist/jsx/views/Fieldset.mjs +18 -0
  62. package/dist/jsx/views/Fieldset.mjs.map +7 -0
  63. package/dist/jsx/views/Form.mjs +9 -0
  64. package/dist/jsx/views/Form.mjs.map +7 -0
  65. package/dist/jsx/views/Grid.mjs +34 -0
  66. package/dist/jsx/views/Grid.mjs.map +7 -0
  67. package/dist/jsx/views/Group.mjs +128 -0
  68. package/dist/jsx/views/Group.mjs.map +7 -0
  69. package/dist/jsx/views/Input.mjs +48 -0
  70. package/dist/jsx/views/Input.mjs.map +7 -0
  71. package/dist/jsx/views/Layouts.mjs +51 -0
  72. package/dist/jsx/views/Layouts.mjs.map +7 -0
  73. package/dist/jsx/views/Skeleton.mjs +35 -0
  74. package/dist/jsx/views/Skeleton.mjs.map +7 -0
  75. package/dist/jsx/views/Spinner.mjs +28 -0
  76. package/dist/jsx/views/Spinner.mjs.map +7 -0
  77. package/dist/jsx/views/TamaguiProvider.mjs +9 -0
  78. package/dist/jsx/views/TamaguiProvider.mjs.map +7 -0
  79. package/dist/jsx/views/TamaguiProvider.server.mjs +6 -0
  80. package/dist/jsx/views/TamaguiProvider.server.mjs.map +7 -0
  81. package/dist/jsx/views/TextArea.mjs +24 -0
  82. package/dist/jsx/views/TextArea.mjs.map +7 -0
  83. package/dist/jsx/views/VisuallyHidden.mjs +37 -0
  84. package/dist/jsx/views/VisuallyHidden.mjs.map +7 -0
  85. package/package.json +46 -46
@@ -0,0 +1,137 @@
1
+ import { jsx } from "react/jsx-runtime";
2
+ import {
3
+ getConfig,
4
+ getExpandedShorthands,
5
+ getTokens,
6
+ getVariableValue,
7
+ isTamaguiElement,
8
+ mergeProps,
9
+ spacedChildren,
10
+ styled,
11
+ useMediaPropsActive
12
+ } from "@tamagui/core";
13
+ import { ThemeableStack } from "@tamagui/stacks";
14
+ import React, { Children, forwardRef, isValidElement } from "react";
15
+ import { ScrollView } from "react-native";
16
+ const GroupFrame = styled(ThemeableStack, {
17
+ name: "GroupFrame",
18
+ backgroundColor: "$background",
19
+ y: 0,
20
+ variants: {
21
+ size: (val, { tokens }) => {
22
+ const borderRadius = tokens.radius[val] ?? val ?? tokens.radius["$true"];
23
+ return {
24
+ borderRadius
25
+ };
26
+ }
27
+ },
28
+ defaultVariants: {
29
+ size: "$true"
30
+ }
31
+ });
32
+ function createGroup(verticalDefault) {
33
+ return forwardRef((props, ref) => {
34
+ const activeProps = useMediaPropsActive(props);
35
+ const {
36
+ children: childrenProp,
37
+ space,
38
+ size = "$true",
39
+ spaceDirection,
40
+ separator,
41
+ scrollable,
42
+ vertical = verticalDefault,
43
+ disabled: disabledProp,
44
+ disablePassBorderRadius: disablePassBorderRadiusProp,
45
+ borderRadius,
46
+ ...restProps
47
+ } = getExpandedShorthands(activeProps);
48
+ const radius = borderRadius ?? (size ? getVariableValue(getTokens().radius[size]) - 1 : void 0);
49
+ const hasRadius = radius !== void 0;
50
+ const disablePassBorderRadius = disablePassBorderRadiusProp ?? !hasRadius;
51
+ const childrens = Children.toArray(childrenProp);
52
+ const children = childrens.map((child, i) => {
53
+ if (!isValidElement(child))
54
+ return child;
55
+ const disabled = child.props.disabled ?? disabledProp;
56
+ const isFirst = i === 0;
57
+ const isLast = i === childrens.length - 1;
58
+ const radiusStyles = disablePassBorderRadius ? null : {
59
+ borderTopLeftRadius: 0,
60
+ borderTopRightRadius: 0,
61
+ borderBottomLeftRadius: 0,
62
+ borderBottomRightRadius: 0,
63
+ ...hasRadius && {
64
+ ...isFirst && !vertical && {
65
+ borderTopLeftRadius: radius,
66
+ borderBottomLeftRadius: radius
67
+ },
68
+ ...isFirst && vertical && {
69
+ borderTopLeftRadius: radius,
70
+ borderTopRightRadius: radius
71
+ },
72
+ ...isLast && !vertical && {
73
+ borderTopRightRadius: radius,
74
+ borderBottomRightRadius: radius
75
+ },
76
+ ...isLast && vertical && {
77
+ borderBottomLeftRadius: radius,
78
+ borderBottomRightRadius: radius
79
+ }
80
+ }
81
+ };
82
+ const props2 = {
83
+ disabled,
84
+ ...isTamaguiElement(child) ? radiusStyles : { style: radiusStyles }
85
+ };
86
+ return cloneElementWithPropOrder(child, props2);
87
+ });
88
+ return /* @__PURE__ */ jsx(
89
+ GroupFrame,
90
+ {
91
+ ref,
92
+ size,
93
+ flexDirection: !vertical ? "row" : "column",
94
+ borderRadius,
95
+ ...restProps,
96
+ children: wrapScroll(
97
+ activeProps,
98
+ spacedChildren({
99
+ direction: spaceDirection,
100
+ separator,
101
+ space,
102
+ children
103
+ })
104
+ )
105
+ }
106
+ );
107
+ });
108
+ }
109
+ const YGroup = createGroup(true);
110
+ const XGroup = createGroup(false);
111
+ const wrapScroll = ({ scrollable, vertical, showScrollIndicator = false }, children) => {
112
+ if (scrollable)
113
+ return /* @__PURE__ */ jsx(
114
+ ScrollView,
115
+ {
116
+ ...vertical && {
117
+ showsVerticalScrollIndicator: showScrollIndicator
118
+ },
119
+ ...!vertical && {
120
+ horizontal: true,
121
+ showsHorizontalScrollIndicator: showScrollIndicator
122
+ },
123
+ children
124
+ }
125
+ );
126
+ return children;
127
+ };
128
+ const cloneElementWithPropOrder = (child, props) => {
129
+ const next = mergeProps(child.props, props, false, getConfig().shorthands)[0];
130
+ return React.cloneElement({ ...child, props: null }, next);
131
+ };
132
+ export {
133
+ GroupFrame,
134
+ XGroup,
135
+ YGroup
136
+ };
137
+ //# sourceMappingURL=Group.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/views/Group.tsx"],
4
+ "sourcesContent": ["import {\n GetProps,\n TamaguiElement,\n getConfig,\n getExpandedShorthands,\n getTokens,\n getVariableValue,\n isTamaguiElement,\n mergeProps,\n spacedChildren,\n styled,\n useMediaPropsActive,\n} from '@tamagui/core'\nimport { ThemeableStack } from '@tamagui/stacks'\nimport React, { Children, forwardRef, isValidElement } from 'react'\nimport { ScrollView } from 'react-native'\n\nexport const GroupFrame = styled(ThemeableStack, {\n name: 'GroupFrame',\n backgroundColor: '$background',\n y: 0,\n\n variants: {\n size: (val, { tokens }) => {\n const borderRadius = tokens.radius[val] ?? val ?? tokens.radius['$true']\n return {\n borderRadius,\n }\n },\n } as const,\n\n defaultVariants: {\n size: '$true',\n },\n})\n\nexport type GroupProps = GetProps<typeof GroupFrame> & {\n scrollable?: boolean\n /**\n * @default false\n */\n showScrollIndicator?: boolean\n disabled?: boolean\n vertical?: boolean\n disablePassBorderRadius?: boolean\n}\n\nfunction createGroup(verticalDefault: boolean) {\n return forwardRef<TamaguiElement, GroupProps>((props, ref) => {\n const activeProps = useMediaPropsActive(props)\n\n const {\n children: childrenProp,\n space,\n size = '$true',\n spaceDirection,\n separator,\n scrollable,\n vertical = verticalDefault,\n disabled: disabledProp,\n disablePassBorderRadius: disablePassBorderRadiusProp,\n borderRadius,\n ...restProps\n } = getExpandedShorthands(activeProps)\n\n const radius =\n borderRadius ?? (size ? getVariableValue(getTokens().radius[size]) - 1 : undefined)\n\n const hasRadius = radius !== undefined\n const disablePassBorderRadius = disablePassBorderRadiusProp ?? !hasRadius\n const childrens = Children.toArray(childrenProp)\n const children = childrens.map((child, i) => {\n if (!isValidElement(child)) return child\n const disabled = child.props.disabled ?? disabledProp\n\n const isFirst = i === 0\n const isLast = i === childrens.length - 1\n\n const radiusStyles = disablePassBorderRadius\n ? null\n : {\n borderTopLeftRadius: 0,\n borderTopRightRadius: 0,\n borderBottomLeftRadius: 0,\n borderBottomRightRadius: 0,\n ...(hasRadius && {\n ...(isFirst &&\n !vertical && {\n borderTopLeftRadius: radius,\n borderBottomLeftRadius: radius,\n }),\n ...(isFirst &&\n vertical && {\n borderTopLeftRadius: radius,\n borderTopRightRadius: radius,\n }),\n ...(isLast &&\n !vertical && {\n borderTopRightRadius: radius,\n borderBottomRightRadius: radius,\n }),\n ...(isLast &&\n vertical && {\n borderBottomLeftRadius: radius,\n borderBottomRightRadius: radius,\n }),\n }),\n }\n\n const props = {\n disabled,\n ...(isTamaguiElement(child) ? radiusStyles : { style: radiusStyles }),\n }\n\n return cloneElementWithPropOrder(child, props)\n })\n\n return (\n <GroupFrame\n ref={ref}\n size={size}\n flexDirection={!vertical ? 'row' : 'column'}\n borderRadius={borderRadius}\n {...restProps}\n >\n {wrapScroll(\n activeProps,\n spacedChildren({\n direction: spaceDirection,\n separator,\n space,\n children,\n })\n )}\n </GroupFrame>\n )\n })\n}\n\nexport const YGroup = createGroup(true)\nexport const XGroup = createGroup(false)\n\nconst wrapScroll = (\n { scrollable, vertical, showScrollIndicator = false }: GroupProps,\n children: any\n) => {\n if (scrollable)\n return (\n <ScrollView\n {...(vertical && {\n showsVerticalScrollIndicator: showScrollIndicator,\n })}\n {...(!vertical && {\n horizontal: true,\n showsHorizontalScrollIndicator: showScrollIndicator,\n })}\n >\n {children}\n </ScrollView>\n )\n return children\n}\n\nconst cloneElementWithPropOrder = (child: any, props: Object) => {\n const next = mergeProps(child.props, props, false, getConfig().shorthands)[0]\n return React.cloneElement({ ...child, props: null }, next)\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["props"]
7
+ }
@@ -0,0 +1,48 @@
1
+ import { setupReactNative, styled } from "@tamagui/core";
2
+ import { focusableInputHOC } from "@tamagui/focusable";
3
+ import { TextInput } from "react-native";
4
+ import { inputSizeVariant } from "../helpers/inputHelpers";
5
+ setupReactNative({
6
+ TextInput
7
+ });
8
+ const InputFrame = styled(
9
+ TextInput,
10
+ {
11
+ name: "Input",
12
+ fontFamily: "$body",
13
+ borderWidth: 1,
14
+ outlineWidth: 0,
15
+ color: "$color",
16
+ focusable: true,
17
+ borderColor: "$borderColor",
18
+ backgroundColor: "$background",
19
+ placeholderTextColor: "$placeholderColor",
20
+ // this fixes a flex bug where it overflows container
21
+ minWidth: 0,
22
+ hoverStyle: {
23
+ borderColor: "$borderColorHover"
24
+ },
25
+ focusStyle: {
26
+ borderColor: "$borderColorFocus",
27
+ borderWidth: 2,
28
+ marginHorizontal: -1
29
+ },
30
+ variants: {
31
+ size: {
32
+ "...size": inputSizeVariant
33
+ }
34
+ },
35
+ defaultVariants: {
36
+ size: "$true"
37
+ }
38
+ },
39
+ {
40
+ isInput: true
41
+ }
42
+ );
43
+ const Input = focusableInputHOC(InputFrame);
44
+ export {
45
+ Input,
46
+ InputFrame
47
+ };
48
+ //# sourceMappingURL=Input.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/views/Input.tsx"],
4
+ "sourcesContent": ["import { GetProps, setupReactNative, styled } from '@tamagui/core'\nimport { focusableInputHOC } from '@tamagui/focusable'\nimport { TextInput } from 'react-native'\n\nimport { inputSizeVariant } from '../helpers/inputHelpers'\n\nsetupReactNative({\n TextInput,\n})\n\nexport const InputFrame = styled(\n TextInput,\n {\n name: 'Input',\n fontFamily: '$body',\n borderWidth: 1,\n outlineWidth: 0,\n color: '$color',\n focusable: true,\n borderColor: '$borderColor',\n backgroundColor: '$background',\n placeholderTextColor: '$placeholderColor',\n\n // this fixes a flex bug where it overflows container\n minWidth: 0,\n\n hoverStyle: {\n borderColor: '$borderColorHover',\n },\n\n focusStyle: {\n borderColor: '$borderColorFocus',\n borderWidth: 2,\n marginHorizontal: -1,\n },\n\n variants: {\n size: {\n '...size': inputSizeVariant,\n },\n } as const,\n\n defaultVariants: {\n size: '$true',\n },\n },\n {\n isInput: true,\n }\n)\n\nexport type InputProps = GetProps<typeof InputFrame>\n\nexport const Input = focusableInputHOC(InputFrame)\n"],
5
+ "mappings": "AAAA,SAAmB,kBAAkB,cAAc;AACnD,SAAS,yBAAyB;AAClC,SAAS,iBAAiB;AAE1B,SAAS,wBAAwB;AAEjC,iBAAiB;AAAA,EACf;AACF,CAAC;AAEM,MAAM,aAAa;AAAA,EACxB;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,cAAc;AAAA,IACd,OAAO;AAAA,IACP,WAAW;AAAA,IACX,aAAa;AAAA,IACb,iBAAiB;AAAA,IACjB,sBAAsB;AAAA;AAAA,IAGtB,UAAU;AAAA,IAEV,YAAY;AAAA,MACV,aAAa;AAAA,IACf;AAAA,IAEA,YAAY;AAAA,MACV,aAAa;AAAA,MACb,aAAa;AAAA,MACb,kBAAkB;AAAA,IACpB;AAAA,IAEA,UAAU;AAAA,MACR,MAAM;AAAA,QACJ,WAAW;AAAA,MACb;AAAA,IACF;AAAA,IAEA,iBAAiB;AAAA,MACf,MAAM;AAAA,IACR;AAAA,EACF;AAAA,EACA;AAAA,IACE,SAAS;AAAA,EACX;AACF;AAIO,MAAM,QAAQ,kBAAkB,UAAU;",
6
+ "names": []
7
+ }
@@ -0,0 +1,51 @@
1
+ import { Stack, styled } from "@tamagui/core";
2
+ const Section = styled(Stack, {
3
+ name: "Section",
4
+ tag: "section",
5
+ flexDirection: "column",
6
+ accessibilityRole: "summary"
7
+ });
8
+ const Article = styled(Stack, {
9
+ name: "Article",
10
+ tag: "article",
11
+ flexDirection: "column"
12
+ });
13
+ const Main = styled(Stack, {
14
+ name: "Main",
15
+ tag: "main",
16
+ flexDirection: "column"
17
+ });
18
+ const Header = styled(Stack, {
19
+ name: "Header",
20
+ tag: "header",
21
+ accessibilityRole: "header",
22
+ flexDirection: "column"
23
+ });
24
+ const Aside = styled(Stack, {
25
+ name: "Aside",
26
+ tag: "aside",
27
+ flexDirection: "column"
28
+ // accessibilityRole: 'complementary',
29
+ });
30
+ const Footer = styled(Stack, {
31
+ name: "Footer",
32
+ tag: "footer",
33
+ flexDirection: "column"
34
+ // accessibilityRole: 'contentinfo',
35
+ });
36
+ const Nav = styled(Stack, {
37
+ name: "Nav",
38
+ tag: "nav",
39
+ flexDirection: "column"
40
+ // accessibilityRole: 'navigation',
41
+ });
42
+ export {
43
+ Article,
44
+ Aside,
45
+ Footer,
46
+ Header,
47
+ Main,
48
+ Nav,
49
+ Section
50
+ };
51
+ //# sourceMappingURL=Layouts.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/views/Layouts.tsx"],
4
+ "sourcesContent": ["import { Stack, styled } from '@tamagui/core'\n\nexport const Section = styled(Stack, {\n name: 'Section',\n tag: 'section',\n flexDirection: 'column',\n accessibilityRole: 'summary',\n})\n\nexport const Article = styled(Stack, {\n name: 'Article',\n tag: 'article',\n flexDirection: 'column',\n})\n\nexport const Main = styled(Stack, {\n name: 'Main',\n tag: 'main',\n flexDirection: 'column',\n})\n\nexport const Header = styled(Stack, {\n name: 'Header',\n tag: 'header',\n accessibilityRole: 'header',\n flexDirection: 'column',\n})\n\nexport const Aside = styled(Stack, {\n name: 'Aside',\n tag: 'aside',\n flexDirection: 'column',\n // accessibilityRole: 'complementary',\n})\n\nexport const Footer = styled(Stack, {\n name: 'Footer',\n tag: 'footer',\n flexDirection: 'column',\n // accessibilityRole: 'contentinfo',\n})\n\nexport const Nav = styled(Stack, {\n name: 'Nav',\n tag: 'nav',\n flexDirection: 'column',\n // accessibilityRole: 'navigation',\n})\n"],
5
+ "mappings": "AAAA,SAAS,OAAO,cAAc;AAEvB,MAAM,UAAU,OAAO,OAAO;AAAA,EACnC,MAAM;AAAA,EACN,KAAK;AAAA,EACL,eAAe;AAAA,EACf,mBAAmB;AACrB,CAAC;AAEM,MAAM,UAAU,OAAO,OAAO;AAAA,EACnC,MAAM;AAAA,EACN,KAAK;AAAA,EACL,eAAe;AACjB,CAAC;AAEM,MAAM,OAAO,OAAO,OAAO;AAAA,EAChC,MAAM;AAAA,EACN,KAAK;AAAA,EACL,eAAe;AACjB,CAAC;AAEM,MAAM,SAAS,OAAO,OAAO;AAAA,EAClC,MAAM;AAAA,EACN,KAAK;AAAA,EACL,mBAAmB;AAAA,EACnB,eAAe;AACjB,CAAC;AAEM,MAAM,QAAQ,OAAO,OAAO;AAAA,EACjC,MAAM;AAAA,EACN,KAAK;AAAA,EACL,eAAe;AAAA;AAEjB,CAAC;AAEM,MAAM,SAAS,OAAO,OAAO;AAAA,EAClC,MAAM;AAAA,EACN,KAAK;AAAA,EACL,eAAe;AAAA;AAEjB,CAAC;AAEM,MAAM,MAAM,OAAO,OAAO;AAAA,EAC/B,MAAM;AAAA,EACN,KAAK;AAAA,EACL,eAAe;AAAA;AAEjB,CAAC;",
6
+ "names": []
7
+ }
@@ -0,0 +1,39 @@
1
+ import { jsx, jsxs } from "react/jsx-runtime";
2
+ import { styled } from "@tamagui/core";
3
+ import { LinearGradient } from "@tamagui/linear-gradient";
4
+ import { YStack } from "@tamagui/stacks";
5
+ import { forwardRef } from "react";
6
+ import { VisuallyHidden } from "./VisuallyHidden";
7
+ const SkeletonFrame = styled(YStack, {
8
+ name: "Skeleton",
9
+ backgroundColor: "$backgroundHover",
10
+ overflow: "hidden",
11
+ position: "relative"
12
+ });
13
+ const Skeleton = SkeletonFrame.extractable(
14
+ forwardRef(({ children, ...props }, ref) => {
15
+ return /* @__PURE__ */ jsxs(SkeletonFrame, { ref, ...props, children: [
16
+ /* @__PURE__ */ jsx(SkeletonShine, {}),
17
+ /* @__PURE__ */ jsx(VisuallyHidden, { preserveDimensions: true, children })
18
+ ] });
19
+ })
20
+ );
21
+ const SkeletonShine = (props) => {
22
+ return /* @__PURE__ */ jsx(
23
+ LinearGradient,
24
+ {
25
+ position: "absolute",
26
+ top: 0,
27
+ bottom: 0,
28
+ width: "25%",
29
+ colors: ["$background", "$color"],
30
+ ...props
31
+ }
32
+ );
33
+ };
34
+ export {
35
+ Skeleton,
36
+ SkeletonFrame,
37
+ SkeletonShine
38
+ };
39
+ //# sourceMappingURL=Skeleton.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/views/Skeleton.tsx"],
4
+ "sourcesContent": ["import { GetProps, TamaguiElement, styled } from '@tamagui/core'\nimport { LinearGradient, LinearGradientProps } from '@tamagui/linear-gradient'\nimport { YStack } from '@tamagui/stacks'\nimport { forwardRef } from 'react'\n\nimport { VisuallyHidden } from './VisuallyHidden'\n\nexport const SkeletonFrame = styled(YStack, {\n name: 'Skeleton',\n backgroundColor: '$backgroundHover',\n overflow: 'hidden',\n position: 'relative',\n})\n\nexport type SkeletonProps = GetProps<typeof SkeletonFrame>\n\nexport const Skeleton = SkeletonFrame.extractable(\n forwardRef<TamaguiElement>(({ children, ...props }: SkeletonProps, ref) => {\n return (\n <SkeletonFrame ref={ref} {...props}>\n <SkeletonShine />\n <VisuallyHidden preserveDimensions>{children}</VisuallyHidden>\n </SkeletonFrame>\n )\n })\n)\n\nexport const SkeletonShine = (props: LinearGradientProps) => {\n return (\n <LinearGradient\n position=\"absolute\"\n top={0}\n bottom={0}\n width=\"25%\"\n colors={['$background', '$color']}\n {...props}\n />\n )\n}\n"],
5
+ "mappings": "AAmBM,SACE,KADF;AAnBN,SAAmC,cAAc;AACjD,SAAS,sBAA2C;AACpD,SAAS,cAAc;AACvB,SAAS,kBAAkB;AAE3B,SAAS,sBAAsB;AAExB,MAAM,gBAAgB,OAAO,QAAQ;AAAA,EAC1C,MAAM;AAAA,EACN,iBAAiB;AAAA,EACjB,UAAU;AAAA,EACV,UAAU;AACZ,CAAC;AAIM,MAAM,WAAW,cAAc;AAAA,EACpC,WAA2B,CAAC,EAAE,UAAU,GAAG,MAAM,GAAkB,QAAQ;AACzE,WACE,qBAAC,iBAAc,KAAW,GAAG,OAC3B;AAAA,0BAAC,iBAAc;AAAA,MACf,oBAAC,kBAAe,oBAAkB,MAAE,UAAS;AAAA,OAC/C;AAAA,EAEJ,CAAC;AACH;AAEO,MAAM,gBAAgB,CAAC,UAA+B;AAC3D,SACE;AAAA,IAAC;AAAA;AAAA,MACC,UAAS;AAAA,MACT,KAAK;AAAA,MACL,QAAQ;AAAA,MACR,OAAM;AAAA,MACN,QAAQ,CAAC,eAAe,QAAQ;AAAA,MAC/B,GAAG;AAAA;AAAA,EACN;AAEJ;",
6
+ "names": []
7
+ }
@@ -0,0 +1,29 @@
1
+ import { jsx } from "react/jsx-runtime";
2
+ import {
3
+ themeable,
4
+ useTheme,
5
+ variableToString
6
+ } from "@tamagui/core";
7
+ import { YStack } from "@tamagui/stacks";
8
+ import * as React from "react";
9
+ import { ActivityIndicator } from "react-native";
10
+ const Spinner = YStack.extractable(
11
+ themeable(
12
+ React.forwardRef((props, ref) => {
13
+ const { size, color: colorProp, ...stackProps } = props;
14
+ const theme = useTheme();
15
+ let color = colorProp;
16
+ if (color && color[0] === "$") {
17
+ color = variableToString(theme[color]);
18
+ }
19
+ return /* @__PURE__ */ jsx(YStack, { ref, ...stackProps, children: /* @__PURE__ */ jsx(ActivityIndicator, { size, color }) });
20
+ }),
21
+ {
22
+ componentName: "Spinner"
23
+ }
24
+ )
25
+ );
26
+ export {
27
+ Spinner
28
+ };
29
+ //# sourceMappingURL=Spinner.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/views/Spinner.tsx"],
4
+ "sourcesContent": ["import {\n ColorTokens,\n TamaguiElement,\n ThemeTokens,\n themeable,\n useTheme,\n variableToString,\n} from '@tamagui/core'\nimport { YStack, YStackProps } from '@tamagui/stacks'\nimport * as React from 'react'\nimport { ActivityIndicator } from 'react-native'\n\nexport type SpinnerProps = Omit<YStackProps, 'children'> & {\n size?: 'small' | 'large'\n color?: (ColorTokens | ThemeTokens | (string & {})) | null\n}\n\nexport const Spinner: React.ForwardRefExoticComponent<\n SpinnerProps & React.RefAttributes<any>\n> = YStack.extractable(\n themeable(\n React.forwardRef<TamaguiElement>((props: SpinnerProps, ref) => {\n const { size, color: colorProp, ...stackProps } = props\n const theme = useTheme()\n let color = colorProp as string\n if (color && color[0] === '$') {\n color = variableToString(theme[color])\n }\n return (\n <YStack ref={ref} {...stackProps}>\n <ActivityIndicator size={size} color={color} />\n </YStack>\n )\n }),\n {\n componentName: 'Spinner',\n },\n ),\n) as any\n"],
5
+ "mappings": "AA8BU;AA9BV;AAAA,EAIE;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAS,cAA2B;AACpC,YAAY,WAAW;AACvB,SAAS,yBAAyB;AAO3B,MAAM,UAET,OAAO;AAAA,EACT;AAAA,IACE,MAAM,WAA2B,CAAC,OAAqB,QAAQ;AAC7D,YAAM,EAAE,MAAM,OAAO,WAAW,GAAG,WAAW,IAAI;AAClD,YAAM,QAAQ,SAAS;AACvB,UAAI,QAAQ;AACZ,UAAI,SAAS,MAAM,CAAC,MAAM,KAAK;AAC7B,gBAAQ,iBAAiB,MAAM,KAAK,CAAC;AAAA,MACvC;AACA,aACE,oBAAC,UAAO,KAAW,GAAG,YACpB,8BAAC,qBAAkB,MAAY,OAAc,GAC/C;AAAA,IAEJ,CAAC;AAAA,IACD;AAAA,MACE,eAAe;AAAA,IACjB;AAAA,EACF;AACF;",
6
+ "names": []
7
+ }
@@ -0,0 +1,10 @@
1
+ import { jsx } from "react/jsx-runtime";
2
+ import { TamaguiProvider as OGProvider, isRSC } from "@tamagui/core";
3
+ import { PortalProvider } from "@tamagui/portal";
4
+ const TamaguiProvider = isRSC ? OGProvider : ({ children, ...props }) => {
5
+ return /* @__PURE__ */ jsx(OGProvider, { ...props, children: /* @__PURE__ */ jsx(PortalProvider, { shouldAddRootHost: true, children }) });
6
+ };
7
+ export {
8
+ TamaguiProvider
9
+ };
10
+ //# sourceMappingURL=TamaguiProvider.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/views/TamaguiProvider.tsx"],
4
+ "sourcesContent": ["import type { TamaguiProviderProps } from '@tamagui/core'\nimport { TamaguiProvider as OGProvider, isRSC } from '@tamagui/core'\nimport { PortalProvider } from '@tamagui/portal'\n\nexport const TamaguiProvider = isRSC\n ? OGProvider\n : ({ children, ...props }: TamaguiProviderProps) => {\n return (\n <OGProvider {...props}>\n <PortalProvider shouldAddRootHost>{children}</PortalProvider>\n </OGProvider>\n )\n }\n"],
5
+ "mappings": "AASU;AARV,SAAS,mBAAmB,YAAY,aAAa;AACrD,SAAS,sBAAsB;AAExB,MAAM,kBAAkB,QAC3B,aACA,CAAC,EAAE,UAAU,GAAG,MAAM,MAA4B;AAChD,SACE,oBAAC,cAAY,GAAG,OACd,8BAAC,kBAAe,mBAAiB,MAAE,UAAS,GAC9C;AAEJ;",
6
+ "names": []
7
+ }
@@ -0,0 +1,6 @@
1
+ import { TamaguiProvider as OGProvider } from "@tamagui/core";
2
+ const TamaguiProvider = OGProvider;
3
+ export {
4
+ TamaguiProvider
5
+ };
6
+ //# sourceMappingURL=TamaguiProvider.server.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/views/TamaguiProvider.server.tsx"],
4
+ "sourcesContent": ["import { TamaguiProvider as OGProvider } from '@tamagui/core'\n\nexport const TamaguiProvider = OGProvider\n"],
5
+ "mappings": "AAAA,SAAS,mBAAmB,kBAAkB;AAEvC,MAAM,kBAAkB;",
6
+ "names": []
7
+ }
@@ -0,0 +1,24 @@
1
+ import { styled } from "@tamagui/core";
2
+ import { focusableInputHOC } from "@tamagui/focusable";
3
+ import { textAreaSizeVariant } from "../helpers/inputHelpers";
4
+ import { InputFrame } from "./Input";
5
+ const TextAreaFrame = styled(InputFrame, {
6
+ name: "TextArea",
7
+ multiline: true,
8
+ numberOfLines: 4,
9
+ height: "auto",
10
+ variants: {
11
+ size: {
12
+ "...size": textAreaSizeVariant
13
+ }
14
+ },
15
+ defaultVariants: {
16
+ size: "$true"
17
+ }
18
+ });
19
+ const TextArea = focusableInputHOC(TextAreaFrame);
20
+ export {
21
+ TextArea,
22
+ TextAreaFrame
23
+ };
24
+ //# sourceMappingURL=TextArea.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/views/TextArea.tsx"],
4
+ "sourcesContent": ["import { GetProps, styled } from '@tamagui/core'\nimport { focusableInputHOC } from '@tamagui/focusable'\n\nimport { textAreaSizeVariant } from '../helpers/inputHelpers'\nimport { InputFrame } from './Input'\n\nexport const TextAreaFrame = styled(InputFrame, {\n name: 'TextArea',\n multiline: true,\n numberOfLines: 4,\n height: 'auto',\n\n variants: {\n size: {\n '...size': textAreaSizeVariant,\n },\n } as const,\n\n defaultVariants: {\n size: '$true',\n },\n})\n\nexport type TextAreaProps = GetProps<typeof TextArea>\n\nexport const TextArea = focusableInputHOC(TextAreaFrame)\n"],
5
+ "mappings": "AAAA,SAAmB,cAAc;AACjC,SAAS,yBAAyB;AAElC,SAAS,2BAA2B;AACpC,SAAS,kBAAkB;AAEpB,MAAM,gBAAgB,OAAO,YAAY;AAAA,EAC9C,MAAM;AAAA,EACN,WAAW;AAAA,EACX,eAAe;AAAA,EACf,QAAQ;AAAA,EAER,UAAU;AAAA,IACR,MAAM;AAAA,MACJ,WAAW;AAAA,IACb;AAAA,EACF;AAAA,EAEA,iBAAiB;AAAA,IACf,MAAM;AAAA,EACR;AACF,CAAC;AAIM,MAAM,WAAW,kBAAkB,aAAa;",
6
+ "names": []
7
+ }
@@ -0,0 +1,37 @@
1
+ import { Stack, styled } from "@tamagui/core";
2
+ const VisuallyHidden = styled(Stack, {
3
+ position: "absolute",
4
+ width: 1,
5
+ height: 1,
6
+ margin: -1,
7
+ zIndex: -1e4,
8
+ overflow: "hidden",
9
+ opacity: 1e-8,
10
+ pointerEvents: "none",
11
+ variants: {
12
+ preserveDimensions: {
13
+ true: {
14
+ position: "relative",
15
+ width: "auto",
16
+ height: "auto"
17
+ }
18
+ },
19
+ visible: {
20
+ true: {
21
+ position: "relative",
22
+ width: "auto",
23
+ height: "auto",
24
+ margin: 0,
25
+ zIndex: 1,
26
+ overflow: "visible",
27
+ opacity: 1,
28
+ pointerEvents: "auto"
29
+ }
30
+ }
31
+ }
32
+ });
33
+ VisuallyHidden["isVisuallyHidden"] = true;
34
+ export {
35
+ VisuallyHidden
36
+ };
37
+ //# sourceMappingURL=VisuallyHidden.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/views/VisuallyHidden.tsx"],
4
+ "sourcesContent": ["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.00000001,\n pointerEvents: 'none',\n\n variants: {\n preserveDimensions: {\n true: {\n position: 'relative',\n width: 'auto',\n height: 'auto',\n },\n } as const,\n\n visible: {\n true: {\n position: 'relative',\n width: 'auto',\n height: 'auto',\n margin: 0,\n zIndex: 1,\n overflow: 'visible',\n opacity: 1,\n pointerEvents: 'auto',\n },\n } as const,\n },\n})\n\n// @tamgui/core checks for this in spacing\nVisuallyHidden['isVisuallyHidden'] = true\n"],
5
+ "mappings": "AAAA,SAAS,OAAO,cAAc;AAEvB,MAAM,iBAAiB,OAAO,OAAO;AAAA,EAC1C,UAAU;AAAA,EACV,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,UAAU;AAAA,EACV,SAAS;AAAA,EACT,eAAe;AAAA,EAEf,UAAU;AAAA,IACR,oBAAoB;AAAA,MAClB,MAAM;AAAA,QACJ,UAAU;AAAA,QACV,OAAO;AAAA,QACP,QAAQ;AAAA,MACV;AAAA,IACF;AAAA,IAEA,SAAS;AAAA,MACP,MAAM;AAAA,QACJ,UAAU;AAAA,QACV,OAAO;AAAA,QACP,QAAQ;AAAA,QACR,QAAQ;AAAA,QACR,QAAQ;AAAA,QACR,UAAU;AAAA,QACV,SAAS;AAAA,QACT,eAAe;AAAA,MACjB;AAAA,IACF;AAAA,EACF;AACF,CAAC;AAGD,eAAe,kBAAkB,IAAI;",
6
+ "names": []
7
+ }
@@ -0,0 +1,62 @@
1
+ import { createTamagui as createTamaguiCore } from "@tamagui/core";
2
+ const createTamagui = process.env.NODE_ENV !== "development" ? createTamaguiCore : (conf) => {
3
+ const sizeTokenKeys = [
4
+ "$0",
5
+ "$1",
6
+ "$2",
7
+ "$3",
8
+ "$4",
9
+ "$5",
10
+ "$6",
11
+ "$7",
12
+ "$8",
13
+ "$9",
14
+ "$10",
15
+ "$true"
16
+ ];
17
+ const hasKeys = (expectedKeys, obj) => {
18
+ return expectedKeys.every((k) => typeof obj[k] !== "undefined");
19
+ };
20
+ const tamaguiConfig = createTamaguiCore(conf);
21
+ for (const name of ["size", "space"]) {
22
+ const tokenSet = tamaguiConfig.tokensParsed[name];
23
+ if (!tokenSet) {
24
+ throw new Error(
25
+ `Expected tokens for "${name}" in ${Object.keys(
26
+ tamaguiConfig.tokensParsed
27
+ ).join(", ")}`
28
+ );
29
+ }
30
+ if (!hasKeys(sizeTokenKeys, tokenSet)) {
31
+ throw new Error(`
32
+ createTamagui() missing definition for expected tokens.${name}:
33
+
34
+ Received: ${Object.keys(tokenSet).join(", ")}
35
+
36
+ Expected: ${sizeTokenKeys.join(", ")}
37
+
38
+ `);
39
+ }
40
+ }
41
+ const expected = Object.keys(tamaguiConfig.tokensParsed.size);
42
+ for (const name of ["radius", "zIndex"]) {
43
+ const tokenSet = tamaguiConfig.tokensParsed[name];
44
+ const received = Object.keys(tokenSet);
45
+ const hasSomeOverlap = received.some((rk) => expected.includes(rk));
46
+ if (!hasSomeOverlap) {
47
+ throw new Error(`
48
+ createTamagui() invalid tokens.${name}:
49
+
50
+ Received: ${received.join(", ")}
51
+
52
+ Expected a subset of: ${expected.join(", ")}
53
+
54
+ `);
55
+ }
56
+ }
57
+ return tamaguiConfig;
58
+ };
59
+ export {
60
+ createTamagui
61
+ };
62
+ //# sourceMappingURL=createTamagui.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/createTamagui.ts"],
4
+ "sourcesContent": ["import { createTamagui as createTamaguiCore } from '@tamagui/core'\n\n/**\n * Adds some helpful validation at dev time only for `tamagui` specifically\n **/\n\nexport const createTamagui: typeof createTamaguiCore =\n process.env.NODE_ENV !== 'development'\n ? createTamaguiCore\n : (conf) => {\n const sizeTokenKeys = [\n '$0',\n '$1',\n '$2',\n '$3',\n '$4',\n '$5',\n '$6',\n '$7',\n '$8',\n '$9',\n '$10',\n '$true',\n ]\n\n const hasKeys = (expectedKeys: string[], obj: Record<any, any>) => {\n return expectedKeys.every((k) => typeof obj[k] !== 'undefined')\n }\n\n const tamaguiConfig = createTamaguiCore(conf)\n\n // size and space should be fully defined\n for (const name of ['size', 'space'] as const) {\n const tokenSet = tamaguiConfig.tokensParsed[name]\n if (!tokenSet) {\n throw new Error(\n `Expected tokens for \"${name}\" in ${Object.keys(\n tamaguiConfig.tokensParsed,\n ).join(', ')}`,\n )\n }\n if (!hasKeys(sizeTokenKeys, tokenSet)) {\n throw new Error(`\ncreateTamagui() missing definition for expected tokens.${name}:\n\nReceived: ${Object.keys(tokenSet).join(', ')}\n\nExpected: ${sizeTokenKeys.join(', ')}\n\n`)\n }\n }\n\n // others must define subset of size tokens\n const expected = Object.keys(tamaguiConfig.tokensParsed.size)\n for (const name of ['radius', 'zIndex'] as const) {\n const tokenSet = tamaguiConfig.tokensParsed[name]\n const received = Object.keys(tokenSet)\n const hasSomeOverlap = received.some((rk) => expected.includes(rk))\n if (!hasSomeOverlap) {\n throw new Error(`\ncreateTamagui() invalid tokens.${name}:\n\nReceived: ${received.join(', ')}\n\nExpected a subset of: ${expected.join(', ')}\n\n`)\n }\n }\n\n return tamaguiConfig\n }\n"],
5
+ "mappings": "AAAA,SAAS,iBAAiB,yBAAyB;AAM5C,MAAM,gBACX,QAAQ,IAAI,aAAa,gBACrB,oBACA,CAAC,SAAS;AACR,QAAM,gBAAgB;AAAA,IACpB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAEA,QAAM,UAAU,CAAC,cAAwB,QAA0B;AACjE,WAAO,aAAa,MAAM,CAAC,MAAM,OAAO,IAAI,CAAC,MAAM,WAAW;AAAA,EAChE;AAEA,QAAM,gBAAgB,kBAAkB,IAAI;AAG5C,aAAW,QAAQ,CAAC,QAAQ,OAAO,GAAY;AAC7C,UAAM,WAAW,cAAc,aAAa,IAAI;AAChD,QAAI,CAAC,UAAU;AACb,YAAM,IAAI;AAAA,QACR,wBAAwB,YAAY,OAAO;AAAA,UACzC,cAAc;AAAA,QAChB,EAAE,KAAK,IAAI;AAAA,MACb;AAAA,IACF;AACA,QAAI,CAAC,QAAQ,eAAe,QAAQ,GAAG;AACrC,YAAM,IAAI,MAAM;AAAA,yDAC6B;AAAA;AAAA,YAE7C,OAAO,KAAK,QAAQ,EAAE,KAAK,IAAI;AAAA;AAAA,YAE/B,cAAc,KAAK,IAAI;AAAA;AAAA,CAElC;AAAA,IACS;AAAA,EACF;AAGA,QAAM,WAAW,OAAO,KAAK,cAAc,aAAa,IAAI;AAC5D,aAAW,QAAQ,CAAC,UAAU,QAAQ,GAAY;AAChD,UAAM,WAAW,cAAc,aAAa,IAAI;AAChD,UAAM,WAAW,OAAO,KAAK,QAAQ;AACrC,UAAM,iBAAiB,SAAS,KAAK,CAAC,OAAO,SAAS,SAAS,EAAE,CAAC;AAClE,QAAI,CAAC,gBAAgB;AACnB,YAAM,IAAI,MAAM;AAAA,iCACK;AAAA;AAAA,YAErB,SAAS,KAAK,IAAI;AAAA;AAAA,wBAEN,SAAS,KAAK,IAAI;AAAA;AAAA,CAEzC;AAAA,IACS;AAAA,EACF;AAEA,SAAO;AACT;",
6
+ "names": []
7
+ }
@@ -0,0 +1,40 @@
1
+ import { getVariableValue, isWeb } from "@tamagui/core";
2
+ import { getButtonSized } from "@tamagui/get-button-sized";
3
+ import { getFontSized } from "@tamagui/get-font-sized";
4
+ import { stepTokenUpOrDown } from "@tamagui/get-size";
5
+ const inputSizeVariant = (val = "$true", extras) => {
6
+ if (extras.props.multiline || extras.props.numberOfLines > 1) {
7
+ return textAreaSizeVariant(val, extras);
8
+ }
9
+ const buttonStyles = getButtonSized(val, extras);
10
+ const paddingHorizontal = stepTokenUpOrDown("space", val, -1, [2]);
11
+ const fontStyle = getFontSized(val, extras);
12
+ if (!isWeb && fontStyle) {
13
+ delete fontStyle["lineHeight"];
14
+ }
15
+ return {
16
+ ...fontStyle,
17
+ ...buttonStyles,
18
+ paddingHorizontal
19
+ };
20
+ };
21
+ const textAreaSizeVariant = (val = "$true", extras) => {
22
+ const { props } = extras;
23
+ const buttonStyles = getButtonSized(val, extras);
24
+ const fontStyle = getFontSized(val, extras);
25
+ const height = props.numberOfLines ? (props.numberOfLines || 1) * getVariableValue(fontStyle.lineHeight) : "auto";
26
+ const paddingVertical = stepTokenUpOrDown("space", val, -2, [2]);
27
+ const paddingHorizontal = stepTokenUpOrDown("space", val, -1, [2]);
28
+ return {
29
+ ...buttonStyles,
30
+ ...fontStyle,
31
+ paddingVertical,
32
+ paddingHorizontal,
33
+ height
34
+ };
35
+ };
36
+ export {
37
+ inputSizeVariant,
38
+ textAreaSizeVariant
39
+ };
40
+ //# sourceMappingURL=inputHelpers.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/helpers/inputHelpers.tsx"],
4
+ "sourcesContent": ["import { SizeVariantSpreadFunction, getVariableValue, isWeb } from '@tamagui/core'\nimport { getButtonSized } from '@tamagui/get-button-sized'\nimport { getFontSized } from '@tamagui/get-font-sized'\nimport { stepTokenUpOrDown } from '@tamagui/get-size'\n\nexport const inputSizeVariant: SizeVariantSpreadFunction<any> = (\n val = '$true',\n extras\n) => {\n if (extras.props.multiline || extras.props.numberOfLines > 1) {\n return textAreaSizeVariant(val, extras)\n }\n const buttonStyles = getButtonSized(val, extras)\n const paddingHorizontal = stepTokenUpOrDown('space', val, -1, [2])\n const fontStyle = getFontSized(val, extras)\n // lineHeight messes up input on native\n if (!isWeb && fontStyle) {\n delete fontStyle['lineHeight']\n }\n return {\n ...fontStyle,\n ...buttonStyles,\n paddingHorizontal,\n }\n}\n\nexport const textAreaSizeVariant: SizeVariantSpreadFunction<any> = (\n val = '$true',\n extras\n) => {\n const { props } = extras\n const buttonStyles = getButtonSized(val, extras)\n const fontStyle = getFontSized(val, extras)!\n const height = props.numberOfLines\n ? (props.numberOfLines || 1) * getVariableValue(fontStyle.lineHeight)\n : 'auto'\n const paddingVertical = stepTokenUpOrDown('space', val, -2, [2])\n const paddingHorizontal = stepTokenUpOrDown('space', val, -1, [2])\n return {\n ...buttonStyles,\n ...fontStyle,\n paddingVertical,\n paddingHorizontal,\n height,\n }\n}\n"],
5
+ "mappings": "AAAA,SAAoC,kBAAkB,aAAa;AACnE,SAAS,sBAAsB;AAC/B,SAAS,oBAAoB;AAC7B,SAAS,yBAAyB;AAE3B,MAAM,mBAAmD,CAC9D,MAAM,SACN,WACG;AACH,MAAI,OAAO,MAAM,aAAa,OAAO,MAAM,gBAAgB,GAAG;AAC5D,WAAO,oBAAoB,KAAK,MAAM;AAAA,EACxC;AACA,QAAM,eAAe,eAAe,KAAK,MAAM;AAC/C,QAAM,oBAAoB,kBAAkB,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC;AACjE,QAAM,YAAY,aAAa,KAAK,MAAM;AAE1C,MAAI,CAAC,SAAS,WAAW;AACvB,WAAO,UAAU,YAAY;AAAA,EAC/B;AACA,SAAO;AAAA,IACL,GAAG;AAAA,IACH,GAAG;AAAA,IACH;AAAA,EACF;AACF;AAEO,MAAM,sBAAsD,CACjE,MAAM,SACN,WACG;AACH,QAAM,EAAE,MAAM,IAAI;AAClB,QAAM,eAAe,eAAe,KAAK,MAAM;AAC/C,QAAM,YAAY,aAAa,KAAK,MAAM;AAC1C,QAAM,SAAS,MAAM,iBAChB,MAAM,iBAAiB,KAAK,iBAAiB,UAAU,UAAU,IAClE;AACJ,QAAM,kBAAkB,kBAAkB,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC;AAC/D,QAAM,oBAAoB,kBAAkB,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC;AACjE,SAAO;AAAA,IACL,GAAG;AAAA,IACH,GAAG;AAAA,IACH;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;",
6
+ "names": []
7
+ }