@tamagui/button 1.26.0 → 1.27.0-1684163004699

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.
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/Button.test.tsx"],
4
- "mappings": "AAAA,QAAQ,IAAI,iBAAiB;AAE7B,SAAS,+BAA+B;AACxC,SAA0B,qBAAqB;AAE/C,SAAS,UAAU,QAAQ,YAAY;AAIvC,MAAM,OAAO,cAAc,wBAAwB,CAAC;AAEpD,SAAS,UAAU,MAAM;AACvB,OAAK,OAAO,MAAM;AAChB,WAAO,IAAI,EAAE,WAAW;AAAA,EAC1B,CAAC;AAWH,CAAC;",
4
+ "mappings": "AAAA,QAAQ,IAAI,iBAAiB;AAE7B,SAAS,+BAA+B;AACxC,SAAS,qBAAqB;AAC9B,SAAS,UAAU,QAAQ,YAAY;AAEvC,MAAM,OAAO,cAAc,wBAAwB,CAAC;AAEpD,SAAS,UAAU,MAAM;AACvB,OAAK,OAAO,MAAM;AAChB,WAAO,IAAI,EAAE,WAAW;AAAA,EAC1B,CAAC;AAWH,CAAC;",
5
5
  "names": []
6
6
  }
@@ -0,0 +1,5 @@
1
+ import { Button } from "./Button";
2
+ export {
3
+ Button
4
+ };
5
+ //# sourceMappingURL=base.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/base.ts"],
4
+ "mappings": "AACA,SAAS,cAAc;",
5
+ "names": []
6
+ }
@@ -3,29 +3,26 @@ import { createContextScope } from "@tamagui/create-context";
3
3
  import { getFontSize } from "@tamagui/font-size";
4
4
  import { getButtonSized } from "@tamagui/get-button-sized";
5
5
  import { useGetThemedIcon } from "@tamagui/helpers-tamagui";
6
- import { ThemeableStack } from "@tamagui/stacks";
7
- import { SizableText, wrapChildrenInText } from "@tamagui/text";
6
+ import { wrapChildrenInText } from "@tamagui/text";
8
7
  import {
9
8
  ButtonNestingContext,
9
+ getConfig,
10
10
  getVariableValue,
11
11
  isRSC,
12
12
  spacedChildren,
13
13
  styled,
14
- useProps,
14
+ useMediaPropsActive,
15
15
  withStaticProperties
16
16
  } from "@tamagui/web";
17
+ import { useCallback, useContext, useEffect, useState } from "react";
17
18
  import {
18
- forwardRef,
19
- useCallback,
20
- useContext,
21
- useEffect,
22
- useState
23
- } from "react";
24
- const BUTTON_NAME = "Button";
25
- const ButtonFrame = styled(ThemeableStack, {
19
+ BUTTON_ICON_NAME,
20
+ BUTTON_NAME,
21
+ BUTTON_TEXT_NAME,
22
+ Button as BaseButton
23
+ } from "./Button";
24
+ const ButtonFrame = styled(BaseButton, {
26
25
  name: BUTTON_NAME,
27
- tag: "button",
28
- focusable: true,
29
26
  variants: {
30
27
  unstyled: {
31
28
  false: {
@@ -39,15 +36,11 @@ const ButtonFrame = styled(ThemeableStack, {
39
36
  pressTheme: true,
40
37
  backgrounded: true,
41
38
  borderWidth: 1,
42
- borderColor: "transparent",
39
+ borderColor: "$borderColor",
43
40
  pressStyle: {
44
- borderColor: "transparent"
45
- },
46
- hoverStyle: {
47
- borderColor: "transparent"
41
+ borderColor: "$borderColorPress"
48
42
  },
49
43
  focusStyle: {
50
- borderColor: "$borderColorFocus",
51
44
  outlineColor: "$borderColorFocus",
52
45
  outlineStyle: "solid",
53
46
  outlineWidth: 2
@@ -74,8 +67,9 @@ const ButtonFrame = styled(ThemeableStack, {
74
67
  unstyled: false
75
68
  }
76
69
  });
77
- const BUTTON_TEXT_NAME = "ButtonText";
78
- const ButtonTextFrame = styled(SizableText, {
70
+ const [createButtonContext, createButtonScope] = createContextScope(BUTTON_NAME);
71
+ const [ButtonProvider, useButtonContext] = createButtonContext("Button");
72
+ const ButtonTextFrame = styled(BaseButton.Text, {
79
73
  name: BUTTON_TEXT_NAME,
80
74
  variants: {
81
75
  unstyled: {
@@ -94,21 +88,16 @@ const ButtonTextFrame = styled(SizableText, {
94
88
  unstyled: false
95
89
  }
96
90
  });
97
- const [createButtonContext, createButtonScope] = createContextScope("Button");
98
- const [ButtonProvider, useButtonContext] = createButtonContext("Button");
99
- const ButtonTextComponent = ButtonTextFrame.extractable(
100
- forwardRef(
101
- (props, ref) => {
102
- const context = useButtonContext(BUTTON_TEXT_NAME, props.__scopeButton);
103
- useEffect(() => {
104
- const unregister = context.registerButtonText();
105
- return () => unregister();
106
- }, [context.registerButtonText]);
107
- return /* @__PURE__ */ jsx(ButtonTextFrame, { size: props.size ?? context.size, ...props, ref });
108
- }
109
- )
91
+ const ButtonText = ButtonTextFrame.styleable(
92
+ (props, ref) => {
93
+ const context = useButtonContext(BUTTON_TEXT_NAME, props.__scopeButton);
94
+ useEffect(() => {
95
+ const unregister = context.registerButtonText();
96
+ return () => unregister();
97
+ }, [context.registerButtonText]);
98
+ return /* @__PURE__ */ jsx(ButtonTextFrame, { ref, color: context.color, size: context.size, ...props, children: props.children });
99
+ }
110
100
  );
111
- const BUTTON_ICON_NAME = "ButtonIcon";
112
101
  const ButtonIcon = (props) => {
113
102
  const { children, scaleIcon = 1 } = props;
114
103
  const context = useButtonContext(BUTTON_ICON_NAME, props.__scopeButton);
@@ -118,42 +107,39 @@ const ButtonIcon = (props) => {
118
107
  const getThemedIcon = useGetThemedIcon({ size: iconSize, color });
119
108
  return getThemedIcon(children);
120
109
  };
121
- const ButtonComponent = ButtonFrame.styleable(function Button(props, ref) {
122
- const { props: buttonProps } = useButton(props);
123
- const [buttonTextCount, setButtonTextCount] = useState(0);
124
- const registerButtonText = useCallback(() => {
125
- setButtonTextCount((prev) => prev + 1);
126
- return () => setButtonTextCount((prev) => prev - 1);
127
- }, [setButtonTextCount]);
128
- const hasTextComponent = buttonTextCount > 0;
129
- return /* @__PURE__ */ jsx(
130
- ButtonProvider,
131
- {
132
- scope: props.__scopeButton,
133
- color: props.color,
134
- hasTextComponent,
135
- size: props.size ?? "$true",
136
- registerButtonText,
137
- children: /* @__PURE__ */ jsx(ButtonFrame, { ...hasTextComponent ? props : buttonProps, ref })
138
- }
139
- );
140
- });
141
- const buttonStaticConfig = {
142
- inlineProps: /* @__PURE__ */ new Set([
143
- // text props go here (can't really optimize them, but we never fully extract button anyway)
144
- // may be able to remove this entirely, as the compiler / runtime have gotten better
145
- "color",
146
- "fontWeight",
147
- "fontSize",
148
- "fontFamily",
149
- "fontStyle",
150
- "letterSpacing",
151
- "textAlign",
152
- "unstyled"
153
- ])
154
- };
155
- const Button2 = withStaticProperties(ButtonComponent, {
156
- Text: ButtonTextComponent,
110
+ const ButtonComponent = ButtonFrame.styleable(
111
+ (props, ref) => {
112
+ const buttonApi = props.forceButtonApi ?? getConfig().buttonApi ?? "mixed";
113
+ const { props: buttonProps } = useButton(props);
114
+ const [buttonTextCount, setButtonTextCount] = useState(0);
115
+ const registerButtonText = useCallback(() => {
116
+ if (buttonApi === "simple") {
117
+ console.warn(
118
+ "You are using Button.Text with simple button API. Either remove Button.Text or use either `buttonApi: composable` or `mixed` in your tamagui config."
119
+ );
120
+ }
121
+ if (buttonApi === "composable")
122
+ return () => {
123
+ };
124
+ setButtonTextCount((prev) => prev + 1);
125
+ return () => setButtonTextCount((prev) => prev - 1);
126
+ }, [setButtonTextCount]);
127
+ const usesComposableApi = buttonApi === "composable" || buttonApi === "mixed" && buttonTextCount > 0;
128
+ return /* @__PURE__ */ jsx(
129
+ ButtonProvider,
130
+ {
131
+ scope: props.__scopeButton,
132
+ size: props.size ?? "$true",
133
+ color: props.color,
134
+ usesComposableApi,
135
+ registerButtonText,
136
+ children: /* @__PURE__ */ jsx(ButtonFrame, { unstyled: props.unstyled ?? false, ref, ...buttonProps })
137
+ }
138
+ );
139
+ }
140
+ );
141
+ const Button = withStaticProperties(ButtonComponent, {
142
+ Text: ButtonText,
157
143
  Icon: ButtonIcon
158
144
  });
159
145
  function useButton(propsIn, { Text = ButtonTextFrame } = { Text: ButtonTextFrame }) {
@@ -176,12 +162,12 @@ function useButton(propsIn, { Text = ButtonTextFrame } = { Text: ButtonTextFrame
176
162
  fontFamily,
177
163
  fontStyle,
178
164
  textAlign,
165
+ unstyled = false,
179
166
  textProps,
180
167
  ...rest
181
168
  } = propsIn;
182
- const hasUnstyled = typeof propsIn.unstyled !== "undefined";
183
169
  const isNested = isRSC ? false : useContext(ButtonNestingContext);
184
- const propsActive = useProps(propsIn);
170
+ const propsActive = useMediaPropsActive(propsIn);
185
171
  const size = propsActive.size || "$true";
186
172
  const iconSize = (typeof size === "number" ? size * 0.5 : getFontSize(size)) * scaleIcon;
187
173
  const getThemedIcon = useGetThemedIcon({ size: iconSize, color });
@@ -190,8 +176,8 @@ function useButton(propsIn, { Text = ButtonTextFrame } = { Text: ButtonTextFrame
190
176
  const contents = wrapChildrenInText(
191
177
  Text,
192
178
  propsActive,
193
- Text === ButtonTextFrame && hasUnstyled ? {
194
- unstyled: propsIn.unstyled
179
+ Text === ButtonTextFrame ? {
180
+ unstyled
195
181
  } : void 0
196
182
  );
197
183
  const inner = spacedChildren({
@@ -226,12 +212,26 @@ function useButton(propsIn, { Text = ButtonTextFrame } = { Text: ButtonTextFrame
226
212
  props
227
213
  };
228
214
  }
215
+ const buttonStaticConfig = {
216
+ inlineProps: /* @__PURE__ */ new Set([
217
+ // text props go here (can't really optimize them, but we never fully extract button anyway)
218
+ // may be able to remove this entirely, as the compiler / runtime have gotten better
219
+ "color",
220
+ "fontWeight",
221
+ "fontSize",
222
+ "fontFamily",
223
+ "fontStyle",
224
+ "letterSpacing",
225
+ "textAlign",
226
+ "unstyled"
227
+ ])
228
+ };
229
229
  export {
230
- Button2 as Button,
230
+ Button,
231
231
  ButtonFrame,
232
232
  ButtonTextFrame as ButtonText,
233
233
  buttonStaticConfig,
234
234
  createButtonScope,
235
235
  useButton
236
236
  };
237
- //# sourceMappingURL=Button.mjs.map
237
+ //# sourceMappingURL=themed.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/themed.tsx"],
4
+ "mappings": "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",
5
+ "names": []
6
+ }
@@ -1,4 +1,3 @@
1
- import { createContextScope } from "@tamagui/create-context";
2
1
  import { getFontSize } from "@tamagui/font-size";
3
2
  import { getButtonSized } from "@tamagui/get-button-sized";
4
3
  import { useGetThemedIcon } from "@tamagui/helpers-tamagui";
@@ -6,6 +5,7 @@ import { ThemeableStack } from "@tamagui/stacks";
6
5
  import { SizableText, wrapChildrenInText } from "@tamagui/text";
7
6
  import {
8
7
  ButtonNestingContext,
8
+ createStyledContext,
9
9
  getVariableValue,
10
10
  isRSC,
11
11
  spacedChildren,
@@ -13,17 +13,15 @@ import {
13
13
  useProps,
14
14
  withStaticProperties
15
15
  } from "@tamagui/web";
16
- import {
17
- forwardRef,
18
- useCallback,
19
- useContext,
20
- useEffect,
21
- useState
22
- } from "react";
16
+ import { useContext } from "react";
17
+ const ButtonContext = createStyledContext({
18
+ size: "$true"
19
+ });
23
20
  const BUTTON_NAME = "Button";
24
21
  const ButtonFrame = styled(ThemeableStack, {
25
22
  name: BUTTON_NAME,
26
23
  tag: "button",
24
+ context: ButtonContext,
27
25
  focusable: true,
28
26
  variants: {
29
27
  unstyled: {
@@ -38,15 +36,11 @@ const ButtonFrame = styled(ThemeableStack, {
38
36
  pressTheme: true,
39
37
  backgrounded: true,
40
38
  borderWidth: 1,
41
- borderColor: "transparent",
39
+ borderColor: "$borderColor",
42
40
  pressStyle: {
43
- borderColor: "transparent"
44
- },
45
- hoverStyle: {
46
- borderColor: "transparent"
41
+ borderColor: "$borderColorPress"
47
42
  },
48
43
  focusStyle: {
49
- borderColor: "$borderColorFocus",
50
44
  outlineColor: "$borderColorFocus",
51
45
  outlineStyle: "solid",
52
46
  outlineWidth: 2
@@ -73,9 +67,9 @@ const ButtonFrame = styled(ThemeableStack, {
73
67
  unstyled: false
74
68
  }
75
69
  });
76
- const BUTTON_TEXT_NAME = "ButtonText";
77
- const ButtonTextFrame = styled(SizableText, {
78
- name: BUTTON_TEXT_NAME,
70
+ const ButtonText = styled(SizableText, {
71
+ name: "ButtonText",
72
+ context: ButtonContext,
79
73
  variants: {
80
74
  unstyled: {
81
75
  false: {
@@ -93,45 +87,16 @@ const ButtonTextFrame = styled(SizableText, {
93
87
  unstyled: false
94
88
  }
95
89
  });
96
- const [createButtonContext, createButtonScope] = createContextScope("Button");
97
- const [ButtonProvider, useButtonContext] = createButtonContext("Button");
98
- const ButtonTextComponent = ButtonTextFrame.extractable(
99
- forwardRef(
100
- (props, ref) => {
101
- const context = useButtonContext(BUTTON_TEXT_NAME, props.__scopeButton);
102
- useEffect(() => {
103
- const unregister = context.registerButtonText();
104
- return () => unregister();
105
- }, [context.registerButtonText]);
106
- return <ButtonTextFrame size={props.size ?? context.size} {...props} ref={ref} />;
107
- }
108
- )
109
- );
110
- const BUTTON_ICON_NAME = "ButtonIcon";
111
90
  const ButtonIcon = (props) => {
112
91
  const { children, scaleIcon = 1 } = props;
113
- const context = useButtonContext(BUTTON_ICON_NAME, props.__scopeButton);
114
- const size = context.size;
115
- const color = context.color;
92
+ const { size, color } = useContext(ButtonContext);
116
93
  const iconSize = (typeof size === "number" ? size * 0.5 : getFontSize(size)) * scaleIcon;
117
94
  const getThemedIcon = useGetThemedIcon({ size: iconSize, color });
118
95
  return getThemedIcon(children);
119
96
  };
120
97
  const ButtonComponent = ButtonFrame.styleable(function Button(props, ref) {
121
98
  const { props: buttonProps } = useButton(props);
122
- const [buttonTextCount, setButtonTextCount] = useState(0);
123
- const registerButtonText = useCallback(() => {
124
- setButtonTextCount((prev) => prev + 1);
125
- return () => setButtonTextCount((prev) => prev - 1);
126
- }, [setButtonTextCount]);
127
- const hasTextComponent = buttonTextCount > 0;
128
- return <ButtonProvider
129
- scope={props.__scopeButton}
130
- color={props.color}
131
- hasTextComponent={hasTextComponent}
132
- size={props.size ?? "$true"}
133
- registerButtonText={registerButtonText}
134
- ><ButtonFrame {...hasTextComponent ? props : buttonProps} ref={ref} /></ButtonProvider>;
99
+ return <ButtonFrame {...buttonProps} ref={ref} />;
135
100
  });
136
101
  const buttonStaticConfig = {
137
102
  inlineProps: /* @__PURE__ */ new Set([
@@ -148,10 +113,10 @@ const buttonStaticConfig = {
148
113
  ])
149
114
  };
150
115
  const Button2 = withStaticProperties(ButtonComponent, {
151
- Text: ButtonTextComponent,
116
+ Text: ButtonText,
152
117
  Icon: ButtonIcon
153
118
  });
154
- function useButton(propsIn, { Text = ButtonTextFrame } = { Text: ButtonTextFrame }) {
119
+ function useButton(propsIn, { Text = ButtonText } = { Text: ButtonText }) {
155
120
  const {
156
121
  children,
157
122
  icon,
@@ -185,7 +150,7 @@ function useButton(propsIn, { Text = ButtonTextFrame } = { Text: ButtonTextFrame
185
150
  const contents = wrapChildrenInText(
186
151
  Text,
187
152
  propsActive,
188
- Text === ButtonTextFrame && hasUnstyled ? {
153
+ Text === ButtonText && hasUnstyled ? {
189
154
  unstyled: propsIn.unstyled
190
155
  } : void 0
191
156
  );
@@ -223,10 +188,11 @@ function useButton(propsIn, { Text = ButtonTextFrame } = { Text: ButtonTextFrame
223
188
  }
224
189
  export {
225
190
  Button2 as Button,
191
+ ButtonContext,
226
192
  ButtonFrame,
227
- ButtonTextFrame as ButtonText,
193
+ ButtonIcon,
194
+ ButtonText,
228
195
  buttonStaticConfig,
229
- createButtonScope,
230
196
  useButton
231
197
  };
232
198
  //# sourceMappingURL=Button.js.map
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/Button.tsx"],
4
- "mappings": "AACA,SAAS,0BAA0B;AACnC,SAAS,mBAAmB;AAC5B,SAAS,sBAAsB;AAC/B,SAAoB,wBAAwB;AAC5C,SAAS,sBAAsB;AAC/B,SAAS,aAA+B,0BAA0B;AAClE;AAAA,EACE;AAAA,EAKA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP;AAAA,EAEE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAoCP,MAAM,cAAc;AAEpB,MAAM,cAAc,OAAO,gBAAgB;AAAA,EACzC,MAAM;AAAA,EACN,KAAK;AAAA,EACL,WAAW;AAAA,EAEX,UAAU;AAAA,IACR,UAAU;AAAA,MACR,OAAO;AAAA,QACL,MAAM;AAAA,QACN,gBAAgB;AAAA,QAChB,YAAY;AAAA,QACZ,UAAU;AAAA,QACV,eAAe;AAAA,QACf,QAAQ;AAAA,QACR,YAAY;AAAA,QACZ,YAAY;AAAA,QACZ,cAAc;AAAA,QACd,aAAa;AAAA,QACb,aAAa;AAAA,QAEb,YAAY;AAAA,UACV,aAAa;AAAA,QACf;AAAA,QAEA,YAAY;AAAA,UACV,aAAa;AAAA,QACf;AAAA,QAEA,YAAY;AAAA,UACV,aAAa;AAAA,UACb,cAAc;AAAA,UACd,cAAc;AAAA,UACd,cAAc;AAAA,QAChB;AAAA,MACF;AAAA,IACF;AAAA,IAEA,MAAM;AAAA,MACJ,WAAW;AAAA,IACb;AAAA,IAEA,QAAQ;AAAA,MACN,MAAM;AAAA,QACJ,YAAY;AAAA,UACV,iBAAiB;AAAA,QACnB;AAAA,MACF;AAAA,IACF;AAAA,IAEA,UAAU;AAAA,MACR,MAAM;AAAA,QACJ,eAAe;AAAA,MACjB;AAAA,IACF;AAAA,EACF;AAAA,EAEA,iBAAiB;AAAA,IACf,UAAU;AAAA,EACZ;AACF,CAAC;AAED,MAAM,mBAAmB;AACzB,MAAM,kBAAkB,OAAO,aAAa;AAAA,EAC1C,MAAM;AAAA,EAEN,UAAU;AAAA,IACR,UAAU;AAAA,MACR,OAAO;AAAA,QACL,YAAY;AAAA,QACZ,QAAQ;AAAA;AAAA,QAER,UAAU;AAAA,QACV,YAAY;AAAA,QACZ,SAAS;AAAA,QACT,OAAO;AAAA,MACT;AAAA,IACF;AAAA,EACF;AAAA,EAEA,iBAAiB;AAAA,IACf,UAAU;AAAA,EACZ;AACF,CAAC;AAGD,MAAM,CAAC,qBAAqB,iBAAiB,IAAI,mBAAmB,QAAQ;AAW5E,MAAM,CAAC,gBAAgB,gBAAgB,IACrC,oBAAwC,QAAQ;AAElD,MAAM,sBAAsB,gBAAgB;AAAA,EAC1C;AAAA,IACE,CAAC,OAAO,QAAQ;AACd,YAAM,UAAU,iBAAiB,kBAAkB,MAAM,aAAa;AAEtE,gBAAU,MAAM;AACd,cAAM,aAAa,QAAQ,mBAAmB;AAC9C,eAAO,MAAM,WAAW;AAAA,MAC1B,GAAG,CAAC,QAAQ,kBAAkB,CAAC;AAE/B,aAAO,CAAC,gBAAgB,MAAM,MAAM,QAAQ,QAAQ,UAAU,OAAO,KAAK,KAAK;AAAA,IACjF;AAAA,EACF;AACF;AAEA,MAAM,mBAAmB;AAEzB,MAAM,aAAa,CACjB,UAIG;AACH,QAAM,EAAE,UAAU,YAAY,EAAE,IAAI;AACpC,QAAM,UAAU,iBAAiB,kBAAkB,MAAM,aAAa;AAEtE,QAAM,OAAO,QAAQ;AACrB,QAAM,QAAQ,QAAQ;AAEtB,QAAM,YAAY,OAAO,SAAS,WAAW,OAAO,MAAM,YAAY,IAAI,KAAK;AAC/E,QAAM,gBAAgB,iBAAiB,EAAE,MAAM,UAAU,MAAM,CAAC;AAChE,SAAO,cAAc,QAAQ;AAC/B;AAEA,MAAM,kBAAkB,YAAY,UAAoC,SAAS,OAC/E,OACA,KACA;AACA,QAAM,EAAE,OAAO,YAAY,IAAI,UAAU,KAAK;AAC9C,QAAM,CAAC,iBAAiB,kBAAkB,IAAI,SAAS,CAAC;AAExD,QAAM,qBAAqB,YAAY,MAAM;AAC3C,uBAAmB,CAAC,SAAS,OAAO,CAAC;AACrC,WAAO,MAAM,mBAAmB,CAAC,SAAS,OAAO,CAAC;AAAA,EACpD,GAAG,CAAC,kBAAkB,CAAC;AAEvB,QAAM,mBAAmB,kBAAkB;AAE3C,SACE,CAAC;AAAA,IACC,OAAO,MAAM;AAAA,IACb,OAAO,MAAM;AAAA,IACb,kBAAkB;AAAA,IAClB,MAAM,MAAM,QAAQ;AAAA,IACpB,oBAAoB;AAAA,GAEpB,CAAC,gBAAiB,mBAAmB,QAAQ,aAAc,KAAK,KAAK,EACvE,EARC;AAUL,CAAC;AAED,MAAM,qBAAqB;AAAA,EACzB,aAAa,oBAAI,IAAI;AAAA;AAAA;AAAA,IAGnB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AACH;AAEA,MAAMA,UAAS,qBAAqB,iBAAiB;AAAA,EACnD,MAAM;AAAA,EACN,MAAM;AACR,CAAC;AAED,SAAS,UACP,SACA,EAAE,OAAO,gBAAgB,IAAmB,EAAE,MAAM,gBAAgB,GACpE;AAEA,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,OAAO;AAAA,IACP;AAAA,IACA;AAAA,IACA,YAAY;AAAA,IACZ,aAAa;AAAA,IACb;AAAA;AAAA,IAGA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IAEA,GAAG;AAAA,EACL,IAAI;AAEJ,QAAM,cAAc,OAAO,QAAQ,aAAa;AAChD,QAAM,WAAW,QAAQ,QAAQ,WAAW,oBAAoB;AAChE,QAAM,cAAc,SAAS,OAAO;AACpC,QAAM,OAAO,YAAY,QAAQ;AACjC,QAAM,YAAY,OAAO,SAAS,WAAW,OAAO,MAAM,YAAY,IAAI,KAAK;AAC/E,QAAM,gBAAgB,iBAAiB,EAAE,MAAM,UAAU,MAAM,CAAC;AAChE,QAAM,CAAC,YAAY,eAAe,IAAI,CAAC,MAAM,SAAS,EAAE,IAAI,aAAa;AACzE,QAAM,YAAY,YAAY,SAAS,iBAAiB,QAAQ,IAAI;AACpE,QAAM,WAAW;AAAA,IACf;AAAA,IACA;AAAA,IACA,SAAS,mBAAmB,cACxB;AAAA,MACE,UAAU,QAAQ;AAAA,IACpB,IACA;AAAA,EACN;AACA,QAAM,QAAQ,eAAe;AAAA;AAAA,IAE3B,OAAO;AAAA,IACP;AAAA,IACA;AAAA,IACA,WACE,YAAY,kBAAkB,YAC9B,YAAY,kBAAkB,mBAC1B,aACA;AAAA,IACN,UAAU,CAAC,YAAY,GAAG,UAAU,eAAe;AAAA,EACrD,CAAC;AAGD,QAAM,MAAM,WACR;AAAA;AAAA;AAAA,IAGF,QAAQ,sBAAsB,SAC5B,MACA;AAAA;AAEJ,QAAM,QAAQ;AAAA,IACZ,GAAI,YAAY,YAAY;AAAA;AAAA,MAE1B,WAAW;AAAA;AAAA,MAEX,YAAY;AAAA,QACV,aAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,IACA,GAAG;AAAA,IACH,UAAU,QACR,QAEA,CAAC,qBAAqB,SAAS,OAAO,OAAO,MAAM,EAAlD,qBAAqB;AAAA,EAE1B;AAEA,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;",
4
+ "mappings": "AAAA,SAAS,mBAAmB;AAC5B,SAAS,sBAAsB;AAC/B,SAAS,wBAAwB;AACjC,SAAS,sBAAsB;AAC/B,SAAS,aAA+B,0BAA0B;AAClE;AAAA,EACE;AAAA,EAKA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAA4B,kBAAkB;AAEvC,MAAM,gBAAgB,oBAG1B;AAAA,EACD,MAAM;AACR,CAAC;AAoCD,MAAM,cAAc;AAEpB,MAAM,cAAc,OAAO,gBAAgB;AAAA,EACzC,MAAM;AAAA,EACN,KAAK;AAAA,EACL,SAAS;AAAA,EACT,WAAW;AAAA,EAEX,UAAU;AAAA,IACR,UAAU;AAAA,MACR,OAAO;AAAA,QACL,MAAM;AAAA,QACN,gBAAgB;AAAA,QAChB,YAAY;AAAA,QACZ,UAAU;AAAA,QACV,eAAe;AAAA,QACf,QAAQ;AAAA,QACR,YAAY;AAAA,QACZ,YAAY;AAAA,QACZ,cAAc;AAAA,QACd,aAAa;AAAA,QACb,aAAa;AAAA,QAEb,YAAY;AAAA,UACV,aAAa;AAAA,QACf;AAAA,QAEA,YAAY;AAAA,UACV,cAAc;AAAA,UACd,cAAc;AAAA,UACd,cAAc;AAAA,QAChB;AAAA,MACF;AAAA,IACF;AAAA,IAEA,MAAM;AAAA,MACJ,WAAW;AAAA,IACb;AAAA,IAEA,QAAQ;AAAA,MACN,MAAM;AAAA,QACJ,YAAY;AAAA,UACV,iBAAiB;AAAA,QACnB;AAAA,MACF;AAAA,IACF;AAAA,IAEA,UAAU;AAAA,MACR,MAAM;AAAA,QACJ,eAAe;AAAA,MACjB;AAAA,IACF;AAAA,EACF;AAAA,EAEA,iBAAiB;AAAA,IACf,UAAU;AAAA,EACZ;AACF,CAAC;AAED,MAAM,aAAa,OAAO,aAAa;AAAA,EACrC,MAAM;AAAA,EACN,SAAS;AAAA,EAET,UAAU;AAAA,IACR,UAAU;AAAA,MACR,OAAO;AAAA,QACL,YAAY;AAAA,QACZ,QAAQ;AAAA;AAAA,QAER,UAAU;AAAA,QACV,YAAY;AAAA,QACZ,SAAS;AAAA,QACT,OAAO;AAAA,MACT;AAAA,IACF;AAAA,EACF;AAAA,EAEA,iBAAiB;AAAA,IACf,UAAU;AAAA,EACZ;AACF,CAAC;AAED,MAAM,aAAa,CAAC,UAA6D;AAC/E,QAAM,EAAE,UAAU,YAAY,EAAE,IAAI;AACpC,QAAM,EAAE,MAAM,MAAM,IAAI,WAAW,aAAa;AAChD,QAAM,YAAY,OAAO,SAAS,WAAW,OAAO,MAAM,YAAY,IAAI,KAAK;AAC/E,QAAM,gBAAgB,iBAAiB,EAAE,MAAM,UAAU,MAAM,CAAC;AAChE,SAAO,cAAc,QAAQ;AAC/B;AAEA,MAAM,kBAAkB,YAAY,UAAuB,SAAS,OAAO,OAAO,KAAK;AACrF,QAAM,EAAE,OAAO,YAAY,IAAI,UAAU,KAAK;AAC9C,SAAO,CAAC,gBAAgB,aAAa,KAAK,KAAK;AACjD,CAAC;AAKD,MAAM,qBAAqB;AAAA,EACzB,aAAa,oBAAI,IAAI;AAAA;AAAA;AAAA,IAGnB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AACH;AAEA,MAAMA,UAAS,qBAAqB,iBAAiB;AAAA,EACnD,MAAM;AAAA,EACN,MAAM;AACR,CAAC;AAKD,SAAS,UACP,SACA,EAAE,OAAO,WAAW,IAAmB,EAAE,MAAM,WAAW,GAC1D;AAEA,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,OAAO;AAAA,IACP;AAAA,IACA;AAAA,IACA,YAAY;AAAA,IACZ,aAAa;AAAA,IACb;AAAA;AAAA,IAGA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IAEA,GAAG;AAAA,EACL,IAAI;AAEJ,QAAM,cAAc,OAAO,QAAQ,aAAa;AAChD,QAAM,WAAW,QAAQ,QAAQ,WAAW,oBAAoB;AAChE,QAAM,cAAc,SAAS,OAAO;AACpC,QAAM,OAAO,YAAY,QAAQ;AACjC,QAAM,YAAY,OAAO,SAAS,WAAW,OAAO,MAAM,YAAY,IAAI,KAAK;AAC/E,QAAM,gBAAgB,iBAAiB,EAAE,MAAM,UAAU,MAAM,CAAC;AAChE,QAAM,CAAC,YAAY,eAAe,IAAI,CAAC,MAAM,SAAS,EAAE,IAAI,aAAa;AACzE,QAAM,YAAY,YAAY,SAAS,iBAAiB,QAAQ,IAAI;AACpE,QAAM,WAAW;AAAA,IACf;AAAA,IACA;AAAA,IACA,SAAS,cAAc,cACnB;AAAA,MACE,UAAU,QAAQ;AAAA,IACpB,IACA;AAAA,EACN;AAEA,QAAM,QAAQ,eAAe;AAAA;AAAA,IAE3B,OAAO;AAAA,IACP;AAAA,IACA;AAAA,IACA,WACE,YAAY,kBAAkB,YAC9B,YAAY,kBAAkB,mBAC1B,aACA;AAAA,IACN,UAAU,CAAC,YAAY,GAAG,UAAU,eAAe;AAAA,EACrD,CAAC;AAGD,QAAM,MAAM,WACR;AAAA;AAAA;AAAA,IAGF,QAAQ,sBAAsB,SAC5B,MACA;AAAA;AAEJ,QAAM,QAAQ;AAAA,IACZ,GAAI,YAAY,YAAY;AAAA;AAAA,MAE1B,WAAW;AAAA;AAAA,MAEX,YAAY;AAAA,QACV,aAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,IACA,GAAG;AAAA,IACH,UAAU,QACR,QAEA,CAAC,qBAAqB,SAAS,OAAO,OAAO,MAAM,EAAlD,qBAAqB;AAAA,EAE1B;AAEA,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;",
5
5
  "names": ["Button"]
6
6
  }
@@ -1,4 +1,3 @@
1
- import { createContextScope } from "@tamagui/create-context";
2
1
  import { getFontSize } from "@tamagui/font-size";
3
2
  import { getButtonSized } from "@tamagui/get-button-sized";
4
3
  import { useGetThemedIcon } from "@tamagui/helpers-tamagui";
@@ -6,6 +5,7 @@ import { ThemeableStack } from "@tamagui/stacks";
6
5
  import { SizableText, wrapChildrenInText } from "@tamagui/text";
7
6
  import {
8
7
  ButtonNestingContext,
8
+ createStyledContext,
9
9
  getVariableValue,
10
10
  isRSC,
11
11
  spacedChildren,
@@ -13,17 +13,15 @@ import {
13
13
  useProps,
14
14
  withStaticProperties
15
15
  } from "@tamagui/web";
16
- import {
17
- forwardRef,
18
- useCallback,
19
- useContext,
20
- useEffect,
21
- useState
22
- } from "react";
16
+ import { useContext } from "react";
17
+ const ButtonContext = createStyledContext({
18
+ size: "$true"
19
+ });
23
20
  const BUTTON_NAME = "Button";
24
21
  const ButtonFrame = styled(ThemeableStack, {
25
22
  name: BUTTON_NAME,
26
23
  tag: "button",
24
+ context: ButtonContext,
27
25
  focusable: true,
28
26
  variants: {
29
27
  unstyled: {
@@ -38,15 +36,11 @@ const ButtonFrame = styled(ThemeableStack, {
38
36
  pressTheme: true,
39
37
  backgrounded: true,
40
38
  borderWidth: 1,
41
- borderColor: "transparent",
39
+ borderColor: "$borderColor",
42
40
  pressStyle: {
43
- borderColor: "transparent"
44
- },
45
- hoverStyle: {
46
- borderColor: "transparent"
41
+ borderColor: "$borderColorPress"
47
42
  },
48
43
  focusStyle: {
49
- borderColor: "$borderColorFocus",
50
44
  outlineColor: "$borderColorFocus",
51
45
  outlineStyle: "solid",
52
46
  outlineWidth: 2
@@ -73,9 +67,9 @@ const ButtonFrame = styled(ThemeableStack, {
73
67
  unstyled: false
74
68
  }
75
69
  });
76
- const BUTTON_TEXT_NAME = "ButtonText";
77
- const ButtonTextFrame = styled(SizableText, {
78
- name: BUTTON_TEXT_NAME,
70
+ const ButtonText = styled(SizableText, {
71
+ name: "ButtonText",
72
+ context: ButtonContext,
79
73
  variants: {
80
74
  unstyled: {
81
75
  false: {
@@ -93,45 +87,16 @@ const ButtonTextFrame = styled(SizableText, {
93
87
  unstyled: false
94
88
  }
95
89
  });
96
- const [createButtonContext, createButtonScope] = createContextScope("Button");
97
- const [ButtonProvider, useButtonContext] = createButtonContext("Button");
98
- const ButtonTextComponent = ButtonTextFrame.extractable(
99
- forwardRef(
100
- (props, ref) => {
101
- const context = useButtonContext(BUTTON_TEXT_NAME, props.__scopeButton);
102
- useEffect(() => {
103
- const unregister = context.registerButtonText();
104
- return () => unregister();
105
- }, [context.registerButtonText]);
106
- return <ButtonTextFrame size={props.size ?? context.size} {...props} ref={ref} />;
107
- }
108
- )
109
- );
110
- const BUTTON_ICON_NAME = "ButtonIcon";
111
90
  const ButtonIcon = (props) => {
112
91
  const { children, scaleIcon = 1 } = props;
113
- const context = useButtonContext(BUTTON_ICON_NAME, props.__scopeButton);
114
- const size = context.size;
115
- const color = context.color;
92
+ const { size, color } = useContext(ButtonContext);
116
93
  const iconSize = (typeof size === "number" ? size * 0.5 : getFontSize(size)) * scaleIcon;
117
94
  const getThemedIcon = useGetThemedIcon({ size: iconSize, color });
118
95
  return getThemedIcon(children);
119
96
  };
120
97
  const ButtonComponent = ButtonFrame.styleable(function Button(props, ref) {
121
98
  const { props: buttonProps } = useButton(props);
122
- const [buttonTextCount, setButtonTextCount] = useState(0);
123
- const registerButtonText = useCallback(() => {
124
- setButtonTextCount((prev) => prev + 1);
125
- return () => setButtonTextCount((prev) => prev - 1);
126
- }, [setButtonTextCount]);
127
- const hasTextComponent = buttonTextCount > 0;
128
- return <ButtonProvider
129
- scope={props.__scopeButton}
130
- color={props.color}
131
- hasTextComponent={hasTextComponent}
132
- size={props.size ?? "$true"}
133
- registerButtonText={registerButtonText}
134
- ><ButtonFrame {...hasTextComponent ? props : buttonProps} ref={ref} /></ButtonProvider>;
99
+ return <ButtonFrame {...buttonProps} ref={ref} />;
135
100
  });
136
101
  const buttonStaticConfig = {
137
102
  inlineProps: /* @__PURE__ */ new Set([
@@ -148,10 +113,10 @@ const buttonStaticConfig = {
148
113
  ])
149
114
  };
150
115
  const Button2 = withStaticProperties(ButtonComponent, {
151
- Text: ButtonTextComponent,
116
+ Text: ButtonText,
152
117
  Icon: ButtonIcon
153
118
  });
154
- function useButton(propsIn, { Text = ButtonTextFrame } = { Text: ButtonTextFrame }) {
119
+ function useButton(propsIn, { Text = ButtonText } = { Text: ButtonText }) {
155
120
  const {
156
121
  children,
157
122
  icon,
@@ -185,7 +150,7 @@ function useButton(propsIn, { Text = ButtonTextFrame } = { Text: ButtonTextFrame
185
150
  const contents = wrapChildrenInText(
186
151
  Text,
187
152
  propsActive,
188
- Text === ButtonTextFrame && hasUnstyled ? {
153
+ Text === ButtonText && hasUnstyled ? {
189
154
  unstyled: propsIn.unstyled
190
155
  } : void 0
191
156
  );
@@ -223,10 +188,11 @@ function useButton(propsIn, { Text = ButtonTextFrame } = { Text: ButtonTextFrame
223
188
  }
224
189
  export {
225
190
  Button2 as Button,
191
+ ButtonContext,
226
192
  ButtonFrame,
227
- ButtonTextFrame as ButtonText,
193
+ ButtonIcon,
194
+ ButtonText,
228
195
  buttonStaticConfig,
229
- createButtonScope,
230
196
  useButton
231
197
  };
232
198
  //# sourceMappingURL=Button.mjs.map
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/Button.tsx"],
4
- "mappings": "AACA,SAAS,0BAA0B;AACnC,SAAS,mBAAmB;AAC5B,SAAS,sBAAsB;AAC/B,SAAoB,wBAAwB;AAC5C,SAAS,sBAAsB;AAC/B,SAAS,aAA+B,0BAA0B;AAClE;AAAA,EACE;AAAA,EAKA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP;AAAA,EAEE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAoCP,MAAM,cAAc;AAEpB,MAAM,cAAc,OAAO,gBAAgB;AAAA,EACzC,MAAM;AAAA,EACN,KAAK;AAAA,EACL,WAAW;AAAA,EAEX,UAAU;AAAA,IACR,UAAU;AAAA,MACR,OAAO;AAAA,QACL,MAAM;AAAA,QACN,gBAAgB;AAAA,QAChB,YAAY;AAAA,QACZ,UAAU;AAAA,QACV,eAAe;AAAA,QACf,QAAQ;AAAA,QACR,YAAY;AAAA,QACZ,YAAY;AAAA,QACZ,cAAc;AAAA,QACd,aAAa;AAAA,QACb,aAAa;AAAA,QAEb,YAAY;AAAA,UACV,aAAa;AAAA,QACf;AAAA,QAEA,YAAY;AAAA,UACV,aAAa;AAAA,QACf;AAAA,QAEA,YAAY;AAAA,UACV,aAAa;AAAA,UACb,cAAc;AAAA,UACd,cAAc;AAAA,UACd,cAAc;AAAA,QAChB;AAAA,MACF;AAAA,IACF;AAAA,IAEA,MAAM;AAAA,MACJ,WAAW;AAAA,IACb;AAAA,IAEA,QAAQ;AAAA,MACN,MAAM;AAAA,QACJ,YAAY;AAAA,UACV,iBAAiB;AAAA,QACnB;AAAA,MACF;AAAA,IACF;AAAA,IAEA,UAAU;AAAA,MACR,MAAM;AAAA,QACJ,eAAe;AAAA,MACjB;AAAA,IACF;AAAA,EACF;AAAA,EAEA,iBAAiB;AAAA,IACf,UAAU;AAAA,EACZ;AACF,CAAC;AAED,MAAM,mBAAmB;AACzB,MAAM,kBAAkB,OAAO,aAAa;AAAA,EAC1C,MAAM;AAAA,EAEN,UAAU;AAAA,IACR,UAAU;AAAA,MACR,OAAO;AAAA,QACL,YAAY;AAAA,QACZ,QAAQ;AAAA;AAAA,QAER,UAAU;AAAA,QACV,YAAY;AAAA,QACZ,SAAS;AAAA,QACT,OAAO;AAAA,MACT;AAAA,IACF;AAAA,EACF;AAAA,EAEA,iBAAiB;AAAA,IACf,UAAU;AAAA,EACZ;AACF,CAAC;AAGD,MAAM,CAAC,qBAAqB,iBAAiB,IAAI,mBAAmB,QAAQ;AAW5E,MAAM,CAAC,gBAAgB,gBAAgB,IACrC,oBAAwC,QAAQ;AAElD,MAAM,sBAAsB,gBAAgB;AAAA,EAC1C;AAAA,IACE,CAAC,OAAO,QAAQ;AACd,YAAM,UAAU,iBAAiB,kBAAkB,MAAM,aAAa;AAEtE,gBAAU,MAAM;AACd,cAAM,aAAa,QAAQ,mBAAmB;AAC9C,eAAO,MAAM,WAAW;AAAA,MAC1B,GAAG,CAAC,QAAQ,kBAAkB,CAAC;AAE/B,aAAO,CAAC,gBAAgB,MAAM,MAAM,QAAQ,QAAQ,UAAU,OAAO,KAAK,KAAK;AAAA,IACjF;AAAA,EACF;AACF;AAEA,MAAM,mBAAmB;AAEzB,MAAM,aAAa,CACjB,UAIG;AACH,QAAM,EAAE,UAAU,YAAY,EAAE,IAAI;AACpC,QAAM,UAAU,iBAAiB,kBAAkB,MAAM,aAAa;AAEtE,QAAM,OAAO,QAAQ;AACrB,QAAM,QAAQ,QAAQ;AAEtB,QAAM,YAAY,OAAO,SAAS,WAAW,OAAO,MAAM,YAAY,IAAI,KAAK;AAC/E,QAAM,gBAAgB,iBAAiB,EAAE,MAAM,UAAU,MAAM,CAAC;AAChE,SAAO,cAAc,QAAQ;AAC/B;AAEA,MAAM,kBAAkB,YAAY,UAAoC,SAAS,OAC/E,OACA,KACA;AACA,QAAM,EAAE,OAAO,YAAY,IAAI,UAAU,KAAK;AAC9C,QAAM,CAAC,iBAAiB,kBAAkB,IAAI,SAAS,CAAC;AAExD,QAAM,qBAAqB,YAAY,MAAM;AAC3C,uBAAmB,CAAC,SAAS,OAAO,CAAC;AACrC,WAAO,MAAM,mBAAmB,CAAC,SAAS,OAAO,CAAC;AAAA,EACpD,GAAG,CAAC,kBAAkB,CAAC;AAEvB,QAAM,mBAAmB,kBAAkB;AAE3C,SACE,CAAC;AAAA,IACC,OAAO,MAAM;AAAA,IACb,OAAO,MAAM;AAAA,IACb,kBAAkB;AAAA,IAClB,MAAM,MAAM,QAAQ;AAAA,IACpB,oBAAoB;AAAA,GAEpB,CAAC,gBAAiB,mBAAmB,QAAQ,aAAc,KAAK,KAAK,EACvE,EARC;AAUL,CAAC;AAED,MAAM,qBAAqB;AAAA,EACzB,aAAa,oBAAI,IAAI;AAAA;AAAA;AAAA,IAGnB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AACH;AAEA,MAAMA,UAAS,qBAAqB,iBAAiB;AAAA,EACnD,MAAM;AAAA,EACN,MAAM;AACR,CAAC;AAED,SAAS,UACP,SACA,EAAE,OAAO,gBAAgB,IAAmB,EAAE,MAAM,gBAAgB,GACpE;AAEA,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,OAAO;AAAA,IACP;AAAA,IACA;AAAA,IACA,YAAY;AAAA,IACZ,aAAa;AAAA,IACb;AAAA;AAAA,IAGA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IAEA,GAAG;AAAA,EACL,IAAI;AAEJ,QAAM,cAAc,OAAO,QAAQ,aAAa;AAChD,QAAM,WAAW,QAAQ,QAAQ,WAAW,oBAAoB;AAChE,QAAM,cAAc,SAAS,OAAO;AACpC,QAAM,OAAO,YAAY,QAAQ;AACjC,QAAM,YAAY,OAAO,SAAS,WAAW,OAAO,MAAM,YAAY,IAAI,KAAK;AAC/E,QAAM,gBAAgB,iBAAiB,EAAE,MAAM,UAAU,MAAM,CAAC;AAChE,QAAM,CAAC,YAAY,eAAe,IAAI,CAAC,MAAM,SAAS,EAAE,IAAI,aAAa;AACzE,QAAM,YAAY,YAAY,SAAS,iBAAiB,QAAQ,IAAI;AACpE,QAAM,WAAW;AAAA,IACf;AAAA,IACA;AAAA,IACA,SAAS,mBAAmB,cACxB;AAAA,MACE,UAAU,QAAQ;AAAA,IACpB,IACA;AAAA,EACN;AACA,QAAM,QAAQ,eAAe;AAAA;AAAA,IAE3B,OAAO;AAAA,IACP;AAAA,IACA;AAAA,IACA,WACE,YAAY,kBAAkB,YAC9B,YAAY,kBAAkB,mBAC1B,aACA;AAAA,IACN,UAAU,CAAC,YAAY,GAAG,UAAU,eAAe;AAAA,EACrD,CAAC;AAGD,QAAM,MAAM,WACR;AAAA;AAAA;AAAA,IAGF,QAAQ,sBAAsB,SAC5B,MACA;AAAA;AAEJ,QAAM,QAAQ;AAAA,IACZ,GAAI,YAAY,YAAY;AAAA;AAAA,MAE1B,WAAW;AAAA;AAAA,MAEX,YAAY;AAAA,QACV,aAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,IACA,GAAG;AAAA,IACH,UAAU,QACR,QAEA,CAAC,qBAAqB,SAAS,OAAO,OAAO,MAAM,EAAlD,qBAAqB;AAAA,EAE1B;AAEA,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;",
4
+ "mappings": "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",
5
5
  "names": ["Button"]
6
6
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/Button.test.tsx"],
4
- "mappings": "AAAA,QAAQ,IAAI,iBAAiB;AAE7B,SAAS,+BAA+B;AACxC,SAA0B,qBAAqB;AAE/C,SAAS,UAAU,QAAQ,YAAY;AAIvC,MAAM,OAAO,cAAc,wBAAwB,CAAC;AAEpD,SAAS,UAAU,MAAM;AACvB,OAAK,OAAO,MAAM;AAChB,WAAO,IAAI,EAAE,WAAW;AAAA,EAC1B,CAAC;AAWH,CAAC;",
4
+ "mappings": "AAAA,QAAQ,IAAI,iBAAiB;AAE7B,SAAS,+BAA+B;AACxC,SAAS,qBAAqB;AAC9B,SAAS,UAAU,QAAQ,YAAY;AAEvC,MAAM,OAAO,cAAc,wBAAwB,CAAC;AAEpD,SAAS,UAAU,MAAM;AACvB,OAAK,OAAO,MAAM;AAChB,WAAO,IAAI,EAAE,WAAW;AAAA,EAC1B,CAAC;AAWH,CAAC;",
5
5
  "names": []
6
6
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/Button.test.tsx"],
4
- "mappings": "AAAA,QAAQ,IAAI,iBAAiB;AAE7B,SAAS,+BAA+B;AACxC,SAA0B,qBAAqB;AAE/C,SAAS,UAAU,QAAQ,YAAY;AAIvC,MAAM,OAAO,cAAc,wBAAwB,CAAC;AAEpD,SAAS,UAAU,MAAM;AACvB,OAAK,OAAO,MAAM;AAChB,WAAO,IAAI,EAAE,WAAW;AAAA,EAC1B,CAAC;AAWH,CAAC;",
4
+ "mappings": "AAAA,QAAQ,IAAI,iBAAiB;AAE7B,SAAS,+BAA+B;AACxC,SAAS,qBAAqB;AAC9B,SAAS,UAAU,QAAQ,YAAY;AAEvC,MAAM,OAAO,cAAc,wBAAwB,CAAC;AAEpD,SAAS,UAAU,MAAM;AACvB,OAAK,OAAO,MAAM;AAChB,WAAO,IAAI,EAAE,WAAW;AAAA,EAC1B,CAAC;AAWH,CAAC;",
5
5
  "names": []
6
6
  }
@@ -0,0 +1,5 @@
1
+ import { Button } from "./Button";
2
+ export {
3
+ Button
4
+ };
5
+ //# sourceMappingURL=base.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/base.ts"],
4
+ "mappings": "AACA,SAAS,cAAc;",
5
+ "names": []
6
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/base.ts"],
4
+ "mappings": "AACA,SAAS,cAAc;",
5
+ "names": []
6
+ }