@tamagui/switch 1.69.3 → 1.71.0

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 (39) hide show
  1. package/dist/cjs/Switch.js +6 -5
  2. package/dist/cjs/Switch.js.map +1 -1
  3. package/dist/cjs/Switch.native.js +6 -5
  4. package/dist/cjs/Switch.native.js.map +1 -1
  5. package/dist/cjs/createSwitch.js +29 -20
  6. package/dist/cjs/createSwitch.js.map +1 -1
  7. package/dist/cjs/createSwitch.native.js +29 -20
  8. package/dist/cjs/createSwitch.native.js.map +1 -1
  9. package/dist/cjs/index.js +1 -2
  10. package/dist/cjs/index.js.map +1 -1
  11. package/dist/cjs/index.native.js +1 -2
  12. package/dist/cjs/index.native.js.map +1 -1
  13. package/dist/esm/Switch.js +6 -5
  14. package/dist/esm/Switch.js.map +1 -1
  15. package/dist/esm/createSwitch.js +29 -21
  16. package/dist/esm/createSwitch.js.map +1 -1
  17. package/dist/esm/index.js +1 -2
  18. package/dist/esm/index.js.map +1 -1
  19. package/dist/jsx/Switch.js +6 -5
  20. package/dist/jsx/Switch.js.map +1 -1
  21. package/dist/jsx/Switch.native.js +6 -5
  22. package/dist/jsx/Switch.native.js.map +1 -1
  23. package/dist/jsx/createSwitch.js +26 -22
  24. package/dist/jsx/createSwitch.js.map +1 -1
  25. package/dist/jsx/createSwitch.native.js +26 -22
  26. package/dist/jsx/createSwitch.native.js.map +1 -1
  27. package/dist/jsx/index.js +1 -2
  28. package/dist/jsx/index.js.map +1 -1
  29. package/dist/jsx/index.native.js +1 -2
  30. package/dist/jsx/index.native.js.map +1 -1
  31. package/package.json +11 -11
  32. package/src/Switch.tsx +7 -5
  33. package/src/createSwitch.tsx +27 -39
  34. package/src/index.ts +0 -1
  35. package/types/Switch.d.ts +7 -3
  36. package/types/Switch.d.ts.map +1 -1
  37. package/types/createSwitch.d.ts +2 -2
  38. package/types/createSwitch.d.ts.map +1 -1
  39. package/types/index.d.ts.map +1 -1
@@ -13,6 +13,9 @@ const SwitchThumb = styled(ThemeableStack, {
13
13
  borderRadius: 1e3
14
14
  }
15
15
  },
16
+ checked: {
17
+ true: {}
18
+ },
16
19
  size: {
17
20
  "...size": (val) => {
18
21
  const size = getSwitchHeight(val);
@@ -28,21 +31,19 @@ const SwitchThumb = styled(ThemeableStack, {
28
31
  }
29
32
  }), getSwitchHeight = (val) => Math.round(getVariableValue(getSize(val)) * 0.65), getSwitchWidth = (val) => getSwitchHeight(val) * 2, SwitchFrame = styled(YStack, {
30
33
  name: "Switch",
31
- tag: "button",
32
34
  context: SwitchContext,
33
35
  variants: {
34
36
  unstyled: {
35
37
  false: {
36
38
  size: "$true",
37
39
  borderRadius: 1e3,
38
- borderWidth: 2,
39
- borderColor: "transparent",
40
40
  backgroundColor: "$background",
41
+ borderWidth: 2,
42
+ borderColor: "$background",
41
43
  focusStyle: {
42
- borderColor: "$borderColorFocus",
43
44
  outlineColor: "$borderColorFocus",
44
45
  outlineStyle: "solid",
45
- outlineWidth: 1
46
+ outlineWidth: 2
46
47
  }
47
48
  }
48
49
  },
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/Switch.tsx"],
4
- "mappings": "AAAA,SAAqB,kBAAkB,cAAc;AACrD,SAAS,eAAe;AACxB,SAAS,gBAAgB,cAAc;AAEvC,SAAS,qBAAqB;AAEvB,MAAM,cAAc,OAAO,gBAAgB;AAAA,EAChD,MAAM;AAAA,EACN,SAAS;AAAA,EAET,UAAU;AAAA,IACR,UAAU;AAAA,MACR,OAAO;AAAA,QACL,MAAM;AAAA,QACN,iBAAiB;AAAA,QACjB,cAAc;AAAA,MAChB;AAAA,IACF;AAAA,IAEA,MAAM;AAAA,MACJ,WAAW,CAAC,QAAQ;AAClB,cAAM,OAAO,gBAAgB,GAAG;AAChC,eAAO;AAAA,UACL,QAAQ;AAAA,UACR,OAAO;AAAA,QACT;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAAA,EAEA,iBAAiB;AAAA,IACf,UAAU;AAAA,EACZ;AACF,CAAC,GAEK,kBAAkB,CAAC,QACvB,KAAK,MAAM,iBAAiB,QAAQ,GAAG,CAAC,IAAI,IAAI,GAE5C,iBAAiB,CAAC,QAAoB,gBAAgB,GAAG,IAAI,GAEtD,cAAc,OAAO,QAAQ;AAAA,EACxC,MAAM;AAAA,EACN,KAAK;AAAA,EACL,SAAS;AAAA,EAET,UAAU;AAAA,IACR,UAAU;AAAA,MACR,OAAO;AAAA,QACL,MAAM;AAAA,QACN,cAAc;AAAA,QACd,aAAa;AAAA,QACb,aAAa;AAAA,QACb,iBAAiB;AAAA,QAEjB,YAAY;AAAA,UACV,aAAa;AAAA,UACb,cAAc;AAAA,UACd,cAAc;AAAA,UACd,cAAc;AAAA,QAChB;AAAA,MACF;AAAA,IACF;AAAA,IAEA,SAAS;AAAA,MACP,MAAM,CAAC;AAAA,IACT;AAAA,IAEA,YAAY;AAAA,MACV,WAAW,MAAM;AAAA,IACnB;AAAA,IAEA,MAAM;AAAA,MACJ,WAAW,CAAC,QAAQ;AAClB,cAAM,SAAS,gBAAgB,GAAG,IAAI,GAChC,QAAQ,eAAe,GAAG,IAAI;AACpC,eAAO;AAAA,UACL;AAAA,UACA,WAAW;AAAA,UACX;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAAA,EAEA,iBAAiB;AAAA,IACf,UAAU;AAAA,EACZ;AACF,CAAC;",
4
+ "mappings": "AAAA,SAAqB,kBAAkB,cAAc;AACrD,SAAS,eAAe;AACxB,SAAS,gBAAgB,cAAc;AAEvC,SAAS,qBAAqB;AAEvB,MAAM,cAAc,OAAO,gBAAgB;AAAA,EAChD,MAAM;AAAA,EACN,SAAS;AAAA,EAET,UAAU;AAAA,IACR,UAAU;AAAA,MACR,OAAO;AAAA,QACL,MAAM;AAAA,QACN,iBAAiB;AAAA,QACjB,cAAc;AAAA,MAChB;AAAA,IACF;AAAA,IAEA,SAAS;AAAA,MACP,MAAM,CAAC;AAAA,IACT;AAAA,IAEA,MAAM;AAAA,MACJ,WAAW,CAAC,QAAQ;AAClB,cAAM,OAAO,gBAAgB,GAAG;AAChC,eAAO;AAAA,UACL,QAAQ;AAAA,UACR,OAAO;AAAA,QACT;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAAA,EAEA,iBAAiB;AAAA,IACf,UAAU;AAAA,EACZ;AACF,CAAC,GAEK,kBAAkB,CAAC,QACvB,KAAK,MAAM,iBAAiB,QAAQ,GAAG,CAAC,IAAI,IAAI,GAE5C,iBAAiB,CAAC,QAAoB,gBAAgB,GAAG,IAAI,GAEtD,cAAc,OAAO,QAAQ;AAAA,EACxC,MAAM;AAAA,EACN,SAAS;AAAA,EAET,UAAU;AAAA,IACR,UAAU;AAAA,MACR,OAAO;AAAA,QACL,MAAM;AAAA,QACN,cAAc;AAAA,QACd,iBAAiB;AAAA,QACjB,aAAa;AAAA,QACb,aAAa;AAAA,QAEb,YAAY;AAAA,UACV,cAAc;AAAA,UACd,cAAc;AAAA,UACd,cAAc;AAAA,QAChB;AAAA,MACF;AAAA,IACF;AAAA,IAEA,SAAS;AAAA,MACP,MAAM,CAAC;AAAA,IACT;AAAA,IAEA,YAAY;AAAA,MACV,WAAW,MAAM;AAAA,IACnB;AAAA,IAEA,MAAM;AAAA,MACJ,WAAW,CAAC,QAAQ;AAClB,cAAM,SAAS,gBAAgB,GAAG,IAAI,GAChC,QAAQ,eAAe,GAAG,IAAI;AACpC,eAAO;AAAA,UACL;AAAA,UACA,WAAW;AAAA,UACX;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAAA,EAEA,iBAAiB;AAAA,IACf,UAAU;AAAA,EACZ;AACF,CAAC;",
5
5
  "names": []
6
6
  }
@@ -13,6 +13,9 @@ const SwitchThumb = styled(ThemeableStack, {
13
13
  borderRadius: 1e3
14
14
  }
15
15
  },
16
+ checked: {
17
+ true: {}
18
+ },
16
19
  size: {
17
20
  "...size": (val) => {
18
21
  const size = getSwitchHeight(val);
@@ -28,21 +31,19 @@ const SwitchThumb = styled(ThemeableStack, {
28
31
  }
29
32
  }), getSwitchHeight = (val) => Math.round(getVariableValue(getSize(val)) * 0.65), getSwitchWidth = (val) => getSwitchHeight(val) * 2, SwitchFrame = styled(YStack, {
30
33
  name: "Switch",
31
- tag: "button",
32
34
  context: SwitchContext,
33
35
  variants: {
34
36
  unstyled: {
35
37
  false: {
36
38
  size: "$true",
37
39
  borderRadius: 1e3,
38
- borderWidth: 2,
39
- borderColor: "transparent",
40
40
  backgroundColor: "$background",
41
+ borderWidth: 2,
42
+ borderColor: "$background",
41
43
  focusStyle: {
42
- borderColor: "$borderColorFocus",
43
44
  outlineColor: "$borderColorFocus",
44
45
  outlineStyle: "solid",
45
- outlineWidth: 1
46
+ outlineWidth: 2
46
47
  }
47
48
  }
48
49
  },
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/Switch.tsx"],
4
- "mappings": "AAAA,SAAqB,kBAAkB,cAAc;AACrD,SAAS,eAAe;AACxB,SAAS,gBAAgB,cAAc;AAEvC,SAAS,qBAAqB;AAEvB,MAAM,cAAc,OAAO,gBAAgB;AAAA,EAChD,MAAM;AAAA,EACN,SAAS;AAAA,EAET,UAAU;AAAA,IACR,UAAU;AAAA,MACR,OAAO;AAAA,QACL,MAAM;AAAA,QACN,iBAAiB;AAAA,QACjB,cAAc;AAAA,MAChB;AAAA,IACF;AAAA,IAEA,MAAM;AAAA,MACJ,WAAW,CAAC,QAAQ;AAClB,cAAM,OAAO,gBAAgB,GAAG;AAChC,eAAO;AAAA,UACL,QAAQ;AAAA,UACR,OAAO;AAAA,QACT;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAAA,EAEA,iBAAiB;AAAA,IACf,UAAU;AAAA,EACZ;AACF,CAAC,GAEK,kBAAkB,CAAC,QACvB,KAAK,MAAM,iBAAiB,QAAQ,GAAG,CAAC,IAAI,IAAI,GAE5C,iBAAiB,CAAC,QAAoB,gBAAgB,GAAG,IAAI,GAEtD,cAAc,OAAO,QAAQ;AAAA,EACxC,MAAM;AAAA,EACN,KAAK;AAAA,EACL,SAAS;AAAA,EAET,UAAU;AAAA,IACR,UAAU;AAAA,MACR,OAAO;AAAA,QACL,MAAM;AAAA,QACN,cAAc;AAAA,QACd,aAAa;AAAA,QACb,aAAa;AAAA,QACb,iBAAiB;AAAA,QAEjB,YAAY;AAAA,UACV,aAAa;AAAA,UACb,cAAc;AAAA,UACd,cAAc;AAAA,UACd,cAAc;AAAA,QAChB;AAAA,MACF;AAAA,IACF;AAAA,IAEA,SAAS;AAAA,MACP,MAAM,CAAC;AAAA,IACT;AAAA,IAEA,YAAY;AAAA,MACV,WAAW,MAAM;AAAA,IACnB;AAAA,IAEA,MAAM;AAAA,MACJ,WAAW,CAAC,QAAQ;AAClB,cAAM,SAAS,gBAAgB,GAAG,IAAI,GAChC,QAAQ,eAAe,GAAG,IAAI;AACpC,eAAO;AAAA,UACL;AAAA,UACA,WAAW;AAAA,UACX;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAAA,EAEA,iBAAiB;AAAA,IACf,UAAU;AAAA,EACZ;AACF,CAAC;",
4
+ "mappings": "AAAA,SAAqB,kBAAkB,cAAc;AACrD,SAAS,eAAe;AACxB,SAAS,gBAAgB,cAAc;AAEvC,SAAS,qBAAqB;AAEvB,MAAM,cAAc,OAAO,gBAAgB;AAAA,EAChD,MAAM;AAAA,EACN,SAAS;AAAA,EAET,UAAU;AAAA,IACR,UAAU;AAAA,MACR,OAAO;AAAA,QACL,MAAM;AAAA,QACN,iBAAiB;AAAA,QACjB,cAAc;AAAA,MAChB;AAAA,IACF;AAAA,IAEA,SAAS;AAAA,MACP,MAAM,CAAC;AAAA,IACT;AAAA,IAEA,MAAM;AAAA,MACJ,WAAW,CAAC,QAAQ;AAClB,cAAM,OAAO,gBAAgB,GAAG;AAChC,eAAO;AAAA,UACL,QAAQ;AAAA,UACR,OAAO;AAAA,QACT;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAAA,EAEA,iBAAiB;AAAA,IACf,UAAU;AAAA,EACZ;AACF,CAAC,GAEK,kBAAkB,CAAC,QACvB,KAAK,MAAM,iBAAiB,QAAQ,GAAG,CAAC,IAAI,IAAI,GAE5C,iBAAiB,CAAC,QAAoB,gBAAgB,GAAG,IAAI,GAEtD,cAAc,OAAO,QAAQ;AAAA,EACxC,MAAM;AAAA,EACN,SAAS;AAAA,EAET,UAAU;AAAA,IACR,UAAU;AAAA,MACR,OAAO;AAAA,QACL,MAAM;AAAA,QACN,cAAc;AAAA,QACd,iBAAiB;AAAA,QACjB,aAAa;AAAA,QACb,aAAa;AAAA,QAEb,YAAY;AAAA,UACV,cAAc;AAAA,UACd,cAAc;AAAA,UACd,cAAc;AAAA,QAChB;AAAA,MACF;AAAA,IACF;AAAA,IAEA,SAAS;AAAA,MACP,MAAM,CAAC;AAAA,IACT;AAAA,IAEA,YAAY;AAAA,MACV,WAAW,MAAM;AAAA,IACnB;AAAA,IAEA,MAAM;AAAA,MACJ,WAAW,CAAC,QAAQ;AAClB,cAAM,SAAS,gBAAgB,GAAG,IAAI,GAChC,QAAQ,eAAe,GAAG,IAAI;AACpC,eAAO;AAAA,UACL;AAAA,UACA,WAAW;AAAA,UACX;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAAA,EAEA,iBAAiB;AAAA,IACf,UAAU;AAAA,EACZ;AACF,CAAC;",
5
5
  "names": []
6
6
  }
@@ -1,14 +1,13 @@
1
1
  import { useComposedRefs } from "@tamagui/compose-refs";
2
2
  import {
3
3
  composeEventHandlers,
4
- getVariableValue,
5
4
  isWeb,
6
5
  useProps,
7
6
  withStaticProperties
8
7
  } from "@tamagui/core";
9
8
  import { registerFocusable } from "@tamagui/focusable";
10
- import { getSize } from "@tamagui/get-token";
11
9
  import { useLabelContext } from "@tamagui/label";
10
+ import { YStack } from "@tamagui/stacks";
12
11
  import { useControllableState } from "@tamagui/use-controllable-state";
13
12
  import { usePrevious } from "@tamagui/use-previous";
14
13
  import * as React from "react";
@@ -19,9 +18,9 @@ import {
19
18
  import { SwitchFrame as DefaultSwitchFrame, SwitchThumb } from "./Switch";
20
19
  import { SwitchContext } from "./SwitchContext";
21
20
  function createSwitch({
21
+ disableActiveTheme,
22
22
  Frame = DefaultSwitchFrame,
23
- Thumb = SwitchThumb,
24
- acceptsUnstyled
23
+ Thumb = SwitchThumb
25
24
  }) {
26
25
  process.env.NODE_ENV === "development" && (Frame !== DefaultSwitchFrame && Frame.staticConfig.context && console.warn(
27
26
  "Warning: createSwitch() needs to control context to pass checked state from Frame to Thumb, any custom context passed will be overridden."
@@ -42,11 +41,14 @@ function createSwitch({
42
41
  {...unstyled === !1 && {
43
42
  unstyled: !1,
44
43
  size: sizeProp ?? sizeContext ?? "$true",
45
- theme: checked ? "active" : null
44
+ ...!disableActiveTheme && {
45
+ theme: checked ? "active" : null
46
+ }
46
47
  }}
47
48
  data-state={getState(checked)}
48
49
  data-disabled={disabled ? "" : void 0}
49
50
  alignSelf={initialChecked ? "flex-end" : "flex-start"}
51
+ checked={checked}
50
52
  x={x}
51
53
  {...thumbProps}
52
54
  onLayout={composeEventHandlers(
@@ -61,7 +63,12 @@ function createSwitch({
61
63
  );
62
64
  }), SwitchComponent = Frame.extractable(
63
65
  React.forwardRef(function(propsIn, forwardedRef) {
64
- const styledContext = React.useContext(SwitchContext), props = useProps(propsIn), {
66
+ const styledContext = React.useContext(SwitchContext), props = useProps(propsIn, {
67
+ noNormalize: !0,
68
+ noExpand: !0,
69
+ resolveValues: "none",
70
+ forComponent: Frame
71
+ }), {
65
72
  labeledBy: ariaLabelledby,
66
73
  name,
67
74
  checked: checkedProp,
@@ -76,12 +83,7 @@ function createSwitch({
76
83
  nativeProps,
77
84
  children,
78
85
  ...switchProps
79
- } = props, leftBorderWidth = (() => {
80
- let _;
81
- for (const key in switchProps)
82
- (key === "borderWidth" || key === "borderLeftWidth") && (_ = switchProps[key]);
83
- return Frame === DefaultSwitchFrame && acceptsUnstyled && _ == null && unstyled === !1 && (_ = 2), typeof _ == "string" && (_ = getVariableValue(getSize(_))), typeof _ == "number" ? _ : 0;
84
- })(), native = Array.isArray(nativeProp) ? nativeProp : [nativeProp], shouldRenderMobileNative = !isWeb && nativeProp === !0 || !isWeb && native.includes("mobile") || native.includes("android") && Platform.OS === "android" || native.includes("ios") && Platform.OS === "ios", [button, setButton] = React.useState(null), composedRefs = useComposedRefs(forwardedRef, (node) => setButton(node)), labelId = useLabelContext(button), labelledBy = ariaLabelledby || labelId, hasConsumerStoppedPropagationRef = React.useRef(!1), isFormControl = isWeb ? button ? !!button.closest("form") : !0 : !1, [frameWidth, setFrameWidth] = React.useState(0), [checked = !1, setChecked] = useControllableState({
86
+ } = props, native = Array.isArray(nativeProp) ? nativeProp : [nativeProp], shouldRenderMobileNative = !isWeb && nativeProp === !0 || !isWeb && native.includes("mobile") || native.includes("android") && Platform.OS === "android" || native.includes("ios") && Platform.OS === "ios", [button, setButton] = React.useState(null), composedRefs = useComposedRefs(forwardedRef, (node) => setButton(node)), labelId = useLabelContext(button), labelledBy = ariaLabelledby || labelId, hasConsumerStoppedPropagationRef = React.useRef(!1), isFormControl = isWeb ? button ? !!button.closest("form") : !0 : !1, [frameWidth, setFrameWidth] = React.useState(0), [checked = !1, setChecked] = useControllableState({
85
87
  prop: checkedProp,
86
88
  defaultProp: defaultChecked || !1,
87
89
  onChange: onCheckedChange,
@@ -107,9 +109,12 @@ function createSwitch({
107
109
  size={size}
108
110
  checked={checked}
109
111
  disabled={disabled}
110
- frameWidth={frameWidth ? frameWidth - leftBorderWidth * 2 : 0}
111
- theme={checked ? "active" : null}
112
+ frameWidth={frameWidth}
112
113
  themeShallow
114
+ {...!disableActiveTheme && {
115
+ theme: checked ? "active" : null,
116
+ themeShallow: !0
117
+ }}
113
118
  role="switch"
114
119
  aria-checked={checked}
115
120
  aria-labelledby={labelledBy}
@@ -123,14 +128,13 @@ function createSwitch({
123
128
  onPress={composeEventHandlers(props.onPress, (event) => {
124
129
  setChecked((prevChecked) => !prevChecked), isWeb && isFormControl && (hasConsumerStoppedPropagationRef.current = event.isPropagationStopped(), hasConsumerStoppedPropagationRef.current || event.stopPropagation());
125
130
  })}
126
- onLayout={composeEventHandlers(
127
- // @ts-ignore
128
- props.onLayout,
129
- (e) => {
130
- setFrameWidth(e.nativeEvent.layout.width);
131
- }
132
- )}
133
- >{typeof children == "function" ? children(checked) : children}</Frame>
131
+ ><YStack
132
+ alignSelf="stretch"
133
+ flex={1}
134
+ onLayout={(e) => {
135
+ setFrameWidth(e.nativeEvent.layout.width);
136
+ }}
137
+ >{typeof children == "function" ? children(checked) : children}</YStack></Frame>
134
138
  {isWeb && isFormControl && <BubbleInput
135
139
  control={button}
136
140
  bubbles={!hasConsumerStoppedPropagationRef.current}
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/createSwitch.tsx"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": []
6
6
  }
@@ -1,14 +1,13 @@
1
1
  import { useComposedRefs } from "@tamagui/compose-refs";
2
2
  import {
3
3
  composeEventHandlers,
4
- getVariableValue,
5
4
  isWeb,
6
5
  useProps,
7
6
  withStaticProperties
8
7
  } from "@tamagui/core";
9
8
  import { registerFocusable } from "@tamagui/focusable";
10
- import { getSize } from "@tamagui/get-token";
11
9
  import { useLabelContext } from "@tamagui/label";
10
+ import { YStack } from "@tamagui/stacks";
12
11
  import { useControllableState } from "@tamagui/use-controllable-state";
13
12
  import { usePrevious } from "@tamagui/use-previous";
14
13
  import * as React from "react";
@@ -19,9 +18,9 @@ import {
19
18
  import { SwitchFrame as DefaultSwitchFrame, SwitchThumb } from "./Switch";
20
19
  import { SwitchContext } from "./SwitchContext";
21
20
  function createSwitch({
21
+ disableActiveTheme,
22
22
  Frame = DefaultSwitchFrame,
23
- Thumb = SwitchThumb,
24
- acceptsUnstyled
23
+ Thumb = SwitchThumb
25
24
  }) {
26
25
  process.env.NODE_ENV === "development" && (Frame !== DefaultSwitchFrame && Frame.staticConfig.context && console.warn(
27
26
  "Warning: createSwitch() needs to control context to pass checked state from Frame to Thumb, any custom context passed will be overridden."
@@ -42,11 +41,14 @@ function createSwitch({
42
41
  {...unstyled === !1 && {
43
42
  unstyled: !1,
44
43
  size: sizeProp ?? sizeContext ?? "$true",
45
- theme: checked ? "active" : null
44
+ ...!disableActiveTheme && {
45
+ theme: checked ? "active" : null
46
+ }
46
47
  }}
47
48
  data-state={getState(checked)}
48
49
  data-disabled={disabled ? "" : void 0}
49
50
  alignSelf={initialChecked ? "flex-end" : "flex-start"}
51
+ checked={checked}
50
52
  x={x}
51
53
  {...thumbProps}
52
54
  onLayout={composeEventHandlers(
@@ -61,7 +63,12 @@ function createSwitch({
61
63
  );
62
64
  }), SwitchComponent = Frame.extractable(
63
65
  React.forwardRef(function(propsIn, forwardedRef) {
64
- const styledContext = React.useContext(SwitchContext), props = useProps(propsIn), {
66
+ const styledContext = React.useContext(SwitchContext), props = useProps(propsIn, {
67
+ noNormalize: !0,
68
+ noExpand: !0,
69
+ resolveValues: "none",
70
+ forComponent: Frame
71
+ }), {
65
72
  labeledBy: ariaLabelledby,
66
73
  name,
67
74
  checked: checkedProp,
@@ -76,12 +83,7 @@ function createSwitch({
76
83
  nativeProps,
77
84
  children,
78
85
  ...switchProps
79
- } = props, leftBorderWidth = (() => {
80
- let _;
81
- for (const key in switchProps)
82
- (key === "borderWidth" || key === "borderLeftWidth") && (_ = switchProps[key]);
83
- return Frame === DefaultSwitchFrame && acceptsUnstyled && _ == null && unstyled === !1 && (_ = 2), typeof _ == "string" && (_ = getVariableValue(getSize(_))), typeof _ == "number" ? _ : 0;
84
- })(), native = Array.isArray(nativeProp) ? nativeProp : [nativeProp], shouldRenderMobileNative = !isWeb && nativeProp === !0 || !isWeb && native.includes("mobile") || native.includes("android") && Platform.OS === "android" || native.includes("ios") && Platform.OS === "ios", [button, setButton] = React.useState(null), composedRefs = useComposedRefs(forwardedRef, (node) => setButton(node)), labelId = useLabelContext(button), labelledBy = ariaLabelledby || labelId, hasConsumerStoppedPropagationRef = React.useRef(!1), isFormControl = isWeb ? button ? !!button.closest("form") : !0 : !1, [frameWidth, setFrameWidth] = React.useState(0), [checked = !1, setChecked] = useControllableState({
86
+ } = props, native = Array.isArray(nativeProp) ? nativeProp : [nativeProp], shouldRenderMobileNative = !isWeb && nativeProp === !0 || !isWeb && native.includes("mobile") || native.includes("android") && Platform.OS === "android" || native.includes("ios") && Platform.OS === "ios", [button, setButton] = React.useState(null), composedRefs = useComposedRefs(forwardedRef, (node) => setButton(node)), labelId = useLabelContext(button), labelledBy = ariaLabelledby || labelId, hasConsumerStoppedPropagationRef = React.useRef(!1), isFormControl = isWeb ? button ? !!button.closest("form") : !0 : !1, [frameWidth, setFrameWidth] = React.useState(0), [checked = !1, setChecked] = useControllableState({
85
87
  prop: checkedProp,
86
88
  defaultProp: defaultChecked || !1,
87
89
  onChange: onCheckedChange,
@@ -107,9 +109,12 @@ function createSwitch({
107
109
  size={size}
108
110
  checked={checked}
109
111
  disabled={disabled}
110
- frameWidth={frameWidth ? frameWidth - leftBorderWidth * 2 : 0}
111
- theme={checked ? "active" : null}
112
+ frameWidth={frameWidth}
112
113
  themeShallow
114
+ {...!disableActiveTheme && {
115
+ theme: checked ? "active" : null,
116
+ themeShallow: !0
117
+ }}
113
118
  role="switch"
114
119
  aria-checked={checked}
115
120
  aria-labelledby={labelledBy}
@@ -123,14 +128,13 @@ function createSwitch({
123
128
  onPress={composeEventHandlers(props.onPress, (event) => {
124
129
  setChecked((prevChecked) => !prevChecked), isWeb && isFormControl && (hasConsumerStoppedPropagationRef.current = event.isPropagationStopped(), hasConsumerStoppedPropagationRef.current || event.stopPropagation());
125
130
  })}
126
- onLayout={composeEventHandlers(
127
- // @ts-ignore
128
- props.onLayout,
129
- (e) => {
130
- setFrameWidth(e.nativeEvent.layout.width);
131
- }
132
- )}
133
- >{typeof children == "function" ? children(checked) : children}</Frame>
131
+ ><YStack
132
+ alignSelf="stretch"
133
+ flex={1}
134
+ onLayout={(e) => {
135
+ setFrameWidth(e.nativeEvent.layout.width);
136
+ }}
137
+ >{typeof children == "function" ? children(checked) : children}</YStack></Frame>
134
138
  {isWeb && isFormControl && <BubbleInput
135
139
  control={button}
136
140
  bubbles={!hasConsumerStoppedPropagationRef.current}
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/createSwitch.tsx"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": []
6
6
  }
package/dist/jsx/index.js CHANGED
@@ -4,8 +4,7 @@ export * from "./Switch";
4
4
  export * from "./createSwitch";
5
5
  const Switch = createSwitch({
6
6
  Frame: SwitchFrame,
7
- Thumb: SwitchThumb,
8
- acceptsUnstyled: !0
7
+ Thumb: SwitchThumb
9
8
  });
10
9
  export {
11
10
  Switch
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/index.ts"],
4
- "mappings": "AAAA,SAAS,oBAAoB;AAC7B,SAAS,aAAa,mBAAmB;AAEzC,cAAc;AACd,cAAc;AAEP,MAAM,SAAS,aAAa;AAAA,EACjC,OAAO;AAAA,EACP,OAAO;AAAA,EACP,iBAAiB;AACnB,CAAC;",
4
+ "mappings": "AAAA,SAAS,oBAAoB;AAC7B,SAAS,aAAa,mBAAmB;AAEzC,cAAc;AACd,cAAc;AAEP,MAAM,SAAS,aAAa;AAAA,EACjC,OAAO;AAAA,EACP,OAAO;AACT,CAAC;",
5
5
  "names": []
6
6
  }
@@ -4,8 +4,7 @@ export * from "./Switch";
4
4
  export * from "./createSwitch";
5
5
  const Switch = createSwitch({
6
6
  Frame: SwitchFrame,
7
- Thumb: SwitchThumb,
8
- acceptsUnstyled: !0
7
+ Thumb: SwitchThumb
9
8
  });
10
9
  export {
11
10
  Switch
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/index.ts"],
4
- "mappings": "AAAA,SAAS,oBAAoB;AAC7B,SAAS,aAAa,mBAAmB;AAEzC,cAAc;AACd,cAAc;AAEP,MAAM,SAAS,aAAa;AAAA,EACjC,OAAO;AAAA,EACP,OAAO;AAAA,EACP,iBAAiB;AACnB,CAAC;",
4
+ "mappings": "AAAA,SAAS,oBAAoB;AAC7B,SAAS,aAAa,mBAAmB;AAEzC,cAAc;AACd,cAAc;AAEP,MAAM,SAAS,aAAa;AAAA,EACjC,OAAO;AAAA,EACP,OAAO;AACT,CAAC;",
5
5
  "names": []
6
6
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tamagui/switch",
3
- "version": "1.69.3",
3
+ "version": "1.71.0",
4
4
  "sideEffects": [
5
5
  "*.css"
6
6
  ],
@@ -31,22 +31,22 @@
31
31
  }
32
32
  },
33
33
  "dependencies": {
34
- "@tamagui/compose-refs": "1.69.3",
35
- "@tamagui/core": "1.69.3",
36
- "@tamagui/create-context": "1.69.3",
37
- "@tamagui/focusable": "1.69.3",
38
- "@tamagui/get-token": "1.69.3",
39
- "@tamagui/label": "1.69.3",
40
- "@tamagui/stacks": "1.69.3",
41
- "@tamagui/use-controllable-state": "1.69.3",
42
- "@tamagui/use-previous": "1.69.3"
34
+ "@tamagui/compose-refs": "1.71.0",
35
+ "@tamagui/core": "1.71.0",
36
+ "@tamagui/create-context": "1.71.0",
37
+ "@tamagui/focusable": "1.71.0",
38
+ "@tamagui/get-token": "1.71.0",
39
+ "@tamagui/label": "1.71.0",
40
+ "@tamagui/stacks": "1.71.0",
41
+ "@tamagui/use-controllable-state": "1.71.0",
42
+ "@tamagui/use-previous": "1.71.0"
43
43
  },
44
44
  "peerDependencies": {
45
45
  "react": "*",
46
46
  "react-native": "*"
47
47
  },
48
48
  "devDependencies": {
49
- "@tamagui/build": "1.69.3",
49
+ "@tamagui/build": "1.71.0",
50
50
  "react": "^18.2.0",
51
51
  "react-native": "^0.72.1"
52
52
  },
package/src/Switch.tsx CHANGED
@@ -17,6 +17,10 @@ export const SwitchThumb = styled(ThemeableStack, {
17
17
  },
18
18
  },
19
19
 
20
+ checked: {
21
+ true: {},
22
+ },
23
+
20
24
  size: {
21
25
  '...size': (val) => {
22
26
  const size = getSwitchHeight(val)
@@ -40,7 +44,6 @@ const getSwitchWidth = (val: SizeTokens) => getSwitchHeight(val) * 2
40
44
 
41
45
  export const SwitchFrame = styled(YStack, {
42
46
  name: 'Switch',
43
- tag: 'button',
44
47
  context: SwitchContext,
45
48
 
46
49
  variants: {
@@ -48,15 +51,14 @@ export const SwitchFrame = styled(YStack, {
48
51
  false: {
49
52
  size: '$true',
50
53
  borderRadius: 1000,
51
- borderWidth: 2,
52
- borderColor: 'transparent',
53
54
  backgroundColor: '$background',
55
+ borderWidth: 2,
56
+ borderColor: '$background',
54
57
 
55
58
  focusStyle: {
56
- borderColor: '$borderColorFocus',
57
59
  outlineColor: '$borderColorFocus',
58
60
  outlineStyle: 'solid',
59
- outlineWidth: 1,
61
+ outlineWidth: 2,
60
62
  },
61
63
  },
62
64
  },
@@ -14,6 +14,7 @@ import {
14
14
  import { registerFocusable } from '@tamagui/focusable'
15
15
  import { getSize } from '@tamagui/get-token'
16
16
  import { useLabelContext } from '@tamagui/label'
17
+ import { YStack } from '@tamagui/stacks'
17
18
  import { useControllableState } from '@tamagui/use-controllable-state'
18
19
  import { usePrevious } from '@tamagui/use-previous'
19
20
  import * as React from 'react'
@@ -60,13 +61,13 @@ type SwitchThumbComponent = TamaguiComponentExpectingVariants<
60
61
  >
61
62
 
62
63
  export function createSwitch<F extends SwitchComponent, T extends SwitchThumbComponent>({
64
+ disableActiveTheme,
63
65
  Frame = DefaultSwitchFrame as any,
64
66
  Thumb = SwitchThumb as any,
65
- acceptsUnstyled,
66
67
  }: {
68
+ disableActiveTheme?: boolean
67
69
  Frame?: F
68
70
  Thumb?: T
69
- acceptsUnstyled?: boolean
70
71
  }) {
71
72
  if (process.env.NODE_ENV === 'development') {
72
73
  if (Frame !== DefaultSwitchFrame && Frame.staticConfig.context) {
@@ -106,11 +107,14 @@ export function createSwitch<F extends SwitchComponent, T extends SwitchThumbCom
106
107
  {...(unstyled === false && {
107
108
  unstyled: false,
108
109
  size: sizeProp ?? sizeContext ?? '$true',
109
- theme: checked ? 'active' : null,
110
+ ...(!disableActiveTheme && {
111
+ theme: checked ? 'active' : null,
112
+ }),
110
113
  })}
111
114
  data-state={getState(checked)}
112
115
  data-disabled={disabled ? '' : undefined}
113
116
  alignSelf={initialChecked ? 'flex-end' : 'flex-start'}
117
+ checked={checked}
114
118
  x={x}
115
119
  {...thumbProps}
116
120
  // @ts-ignore
@@ -129,7 +133,12 @@ export function createSwitch<F extends SwitchComponent, T extends SwitchThumbCom
129
133
  forwardedRef
130
134
  ) {
131
135
  const styledContext = React.useContext(SwitchContext)
132
- const props = useProps(propsIn)
136
+ const props = useProps(propsIn, {
137
+ noNormalize: true,
138
+ noExpand: true,
139
+ resolveValues: 'none',
140
+ forComponent: Frame,
141
+ })
133
142
  const {
134
143
  labeledBy: ariaLabelledby,
135
144
  name,
@@ -147,30 +156,6 @@ export function createSwitch<F extends SwitchComponent, T extends SwitchThumbCom
147
156
  ...switchProps
148
157
  } = props
149
158
 
150
- const leftBorderWidth = (() => {
151
- let _: any = undefined
152
- for (const key in switchProps) {
153
- if (key === 'borderWidth' || key === 'borderLeftWidth') {
154
- _ = switchProps[key]
155
- }
156
- }
157
- if (
158
- Frame === DefaultSwitchFrame &&
159
- acceptsUnstyled &&
160
- _ == undefined &&
161
- unstyled === false
162
- ) {
163
- _ = 2 // default we use for styled
164
- }
165
- if (typeof _ === 'string') {
166
- _ = getVariableValue(getSize(_))
167
- }
168
- if (typeof _ === 'number') {
169
- return _
170
- }
171
- return 0
172
- })()
173
-
174
159
  const native = Array.isArray(nativeProp) ? nativeProp : [nativeProp]
175
160
 
176
161
  const shouldRenderMobileNative =
@@ -230,9 +215,12 @@ export function createSwitch<F extends SwitchComponent, T extends SwitchThumbCom
230
215
  size={size}
231
216
  checked={checked}
232
217
  disabled={disabled}
233
- frameWidth={frameWidth ? frameWidth - leftBorderWidth * 2 : 0}
234
- theme={checked ? 'active' : null}
218
+ frameWidth={frameWidth}
235
219
  themeShallow
220
+ {...(!disableActiveTheme && {
221
+ theme: checked ? 'active' : null,
222
+ themeShallow: true,
223
+ })}
236
224
  role="switch"
237
225
  aria-checked={checked}
238
226
  aria-labelledby={labelledBy}
@@ -255,16 +243,16 @@ export function createSwitch<F extends SwitchComponent, T extends SwitchThumbCom
255
243
  if (!hasConsumerStoppedPropagationRef.current) event.stopPropagation()
256
244
  }
257
245
  })}
258
- onLayout={composeEventHandlers(
259
- // @ts-ignore
260
- props.onLayout,
261
- (e) => {
262
- // @ts-ignore
263
- setFrameWidth(e.nativeEvent.layout.width)
264
- }
265
- )}
266
246
  >
267
- {typeof children === 'function' ? children(checked) : children}
247
+ <YStack
248
+ alignSelf="stretch"
249
+ flex={1}
250
+ onLayout={(e) => {
251
+ setFrameWidth(e.nativeEvent.layout.width)
252
+ }}
253
+ >
254
+ {typeof children === 'function' ? children(checked) : children}
255
+ </YStack>
268
256
  </Frame>
269
257
  {isWeb && isFormControl && (
270
258
  <BubbleInput
package/src/index.ts CHANGED
@@ -7,5 +7,4 @@ export * from './createSwitch'
7
7
  export const Switch = createSwitch({
8
8
  Frame: SwitchFrame,
9
9
  Thumb: SwitchThumb,
10
- acceptsUnstyled: true,
11
10
  })