@tamagui/toggle-group 2.7.7 → 3.0.0-beta.643.1

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 (78) hide show
  1. package/dist/cjs/Toggle.cjs +65 -130
  2. package/dist/cjs/Toggle.native.cjs +100 -0
  3. package/dist/cjs/Toggle.native.js +75 -136
  4. package/dist/cjs/Toggle.native.js.map +1 -1
  5. package/dist/cjs/ToggleGroup.cjs +158 -211
  6. package/dist/cjs/ToggleGroup.native.cjs +208 -0
  7. package/dist/cjs/ToggleGroup.native.js +173 -225
  8. package/dist/cjs/ToggleGroup.native.js.map +1 -1
  9. package/dist/cjs/context.cjs +19 -20
  10. package/dist/cjs/context.native.cjs +37 -0
  11. package/dist/cjs/context.native.js +20 -20
  12. package/dist/cjs/context.native.js.map +1 -1
  13. package/dist/cjs/index.cjs +15 -18
  14. package/dist/cjs/index.native.cjs +29 -0
  15. package/dist/cjs/index.native.js +15 -17
  16. package/dist/cjs/index.native.js.map +1 -1
  17. package/dist/cjs/types.cjs +10 -11
  18. package/dist/cjs/types.native.cjs +19 -0
  19. package/dist/cjs/types.native.js +10 -10
  20. package/dist/cjs/types.native.js.map +1 -1
  21. package/dist/esm/Toggle.mjs +53 -104
  22. package/dist/esm/Toggle.mjs.map +1 -1
  23. package/dist/esm/Toggle.native.js +61 -115
  24. package/dist/esm/Toggle.native.js.map +1 -1
  25. package/dist/esm/ToggleGroup.mjs +145 -188
  26. package/dist/esm/ToggleGroup.mjs.map +1 -1
  27. package/dist/esm/ToggleGroup.native.js +160 -203
  28. package/dist/esm/ToggleGroup.native.js.map +1 -1
  29. package/dist/esm/context.mjs +5 -3
  30. package/dist/esm/context.mjs.map +1 -1
  31. package/dist/esm/context.native.js +6 -4
  32. package/dist/esm/context.native.js.map +1 -1
  33. package/dist/esm/index.js +4 -3
  34. package/dist/esm/index.mjs +4 -3
  35. package/dist/esm/index.native.js +4 -3
  36. package/dist/esm/types.mjs +0 -2
  37. package/dist/esm/types.native.js +0 -2
  38. package/dist/jsx/Toggle.mjs +53 -104
  39. package/dist/jsx/Toggle.mjs.map +1 -1
  40. package/dist/jsx/Toggle.native.cjs +100 -0
  41. package/dist/jsx/Toggle.native.js +75 -136
  42. package/dist/jsx/Toggle.native.js.map +1 -1
  43. package/dist/jsx/ToggleGroup.mjs +145 -188
  44. package/dist/jsx/ToggleGroup.mjs.map +1 -1
  45. package/dist/jsx/ToggleGroup.native.cjs +208 -0
  46. package/dist/jsx/ToggleGroup.native.js +173 -225
  47. package/dist/jsx/ToggleGroup.native.js.map +1 -1
  48. package/dist/jsx/context.mjs +5 -3
  49. package/dist/jsx/context.mjs.map +1 -1
  50. package/dist/jsx/context.native.cjs +37 -0
  51. package/dist/jsx/context.native.js +20 -20
  52. package/dist/jsx/context.native.js.map +1 -1
  53. package/dist/jsx/index.js +4 -3
  54. package/dist/jsx/index.mjs +4 -3
  55. package/dist/jsx/index.native.cjs +29 -0
  56. package/dist/jsx/index.native.js +15 -17
  57. package/dist/jsx/index.native.js.map +1 -1
  58. package/dist/jsx/types.mjs +0 -2
  59. package/dist/jsx/types.native.cjs +19 -0
  60. package/dist/jsx/types.native.js +10 -10
  61. package/dist/jsx/types.native.js.map +1 -1
  62. package/package.json +16 -15
  63. package/src/Toggle.tsx +27 -66
  64. package/src/ToggleGroup.tsx +13 -10
  65. package/types/Toggle.d.ts +45 -49
  66. package/types/Toggle.d.ts.map +1 -1
  67. package/types/ToggleGroup.d.ts +26 -87
  68. package/types/ToggleGroup.d.ts.map +1 -1
  69. package/types/context.d.ts +1 -1
  70. package/types/context.d.ts.map +1 -1
  71. package/dist/esm/index.js.map +0 -1
  72. package/dist/esm/index.mjs.map +0 -1
  73. package/dist/esm/index.native.js.map +0 -1
  74. package/dist/esm/types.mjs.map +0 -1
  75. package/dist/esm/types.native.js.map +0 -1
  76. package/dist/jsx/index.js.map +0 -1
  77. package/dist/jsx/index.mjs.map +0 -1
  78. package/dist/jsx/types.mjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"names":["jsx","_jsx","composeEventHandlers","useControllableState","styled","View","React","context","NAME","ToggleFrame","name","render","variants","unstyled","false","size","alignItems","justifyContent","display","backgroundColor","borderColor","borderWidth","margin","hoverStyle","pressStyle","focusVisibleStyle","outlineColor","outlineWidth","outlineStyle","zIndex","...size","val","param","tokens","width","height",":number","defaultActiveStyle","true","focusStyle","defaultVariants","process","env","TAMAGUI_HEADLESS","accept","activeStyle","Toggle","forwardRef","Toggle2","props","forwardedRef","active","activeProp","defaultActive","onActiveChange","activeTheme","buttonProps","setActive","prop","onChange","defaultProp","_props_onPress","theme","disabled","ref","onPress","prev"],"sources":["../../src/Toggle.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"Toggle.native.js","names":[],"sources":["esm/Toggle.native.js"],"sourcesContent":["import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { createRefComponent } from \"@tamagui/compose-refs\";\nimport { composeEventHandlers } from \"@tamagui/helpers\";\nimport { resolveSizeToken } from \"@tamagui/size\";\nimport { useControllableState } from \"@tamagui/use-controllable-state\";\nimport { styled, View } from \"@tamagui/web\";\nimport * as React from \"react\";\nimport { context } from \"./context\";\nvar NAME = \"Toggle\";\nvar ToggleFrame = styled(View, {\n displayName: NAME,\n render: \"button\",\n context,\n size: true,\n alignItems: \"center\",\n justifyContent: \"center\",\n display: \"flex\",\n variants: {\n size: {\n number: function(val) {\n return {\n width: val,\n height: val\n };\n },\n Size: function(val, param) {\n var { tokens } = param;\n if (!val) return;\n var sizeToken = resolveSizeToken(val, \"size\");\n var size = typeof sizeToken === \"number\" ? sizeToken : tokens.size[sizeToken];\n return {\n width: size,\n height: size\n };\n }\n },\n defaultActiveStyle: {\n true: {}\n }\n }\n}, {\n accept: {\n activeStyle: \"style\"\n }\n});\nvar Toggle = createRefComponent(function Toggle2(props, forwardedRef) {\n var { active: activeProp, activeStyle, defaultActive = false, onActiveChange, activeTheme, ...buttonProps } = props;\n var [active = false, setActive] = useControllableState({\n prop: activeProp,\n onChange: onActiveChange,\n defaultProp: defaultActive\n });\n var _props_onPress;\n return /* @__PURE__ */ _jsx(ToggleFrame, {\n theme: activeTheme !== null && activeTheme !== void 0 ? activeTheme : null,\n \"aria-pressed\": active,\n \"data-state\": active ? \"on\" : \"off\",\n \"data-disabled\": props.disabled ? \"\" : void 0,\n ...active && !activeStyle && {\n defaultActiveStyle: true\n },\n ...buttonProps,\n ...active && activeStyle ? activeStyle : void 0,\n ref: forwardedRef,\n onPress: composeEventHandlers((_props_onPress = props.onPress) !== null && _props_onPress !== void 0 ? _props_onPress : void 0, function() {\n if (!props.disabled) {\n setActive(function(prev) {\n return !prev;\n });\n }\n })\n });\n});\nexport {\n Toggle,\n ToggleFrame\n};\n//# sourceMappingURL=Toggle.js.map\n"],"mappings":";;;;;;;;;;AAQA,IAAI,OAAO;AACX,IAAI,cAAc,OAAO,MAAM;CAC7B,aAAa;CACb,QAAQ;CACR;CACA,MAAM;CACN,YAAY;CACZ,gBAAgB;CAChB,SAAS;CACT,UAAU;EACR,MAAM;GACJ,QAAQ,SAAS,KAAK;IACpB,OAAO;KACL,OAAO;KACP,QAAQ;IACV;GACF;GACA,MAAM,SAAS,KAAK,OAAO;IACzB,IAAI,EAAE,WAAW;IACjB,IAAI,CAAC,KAAK;IACV,IAAI,YAAY,iBAAiB,KAAK,MAAM;IAC5C,IAAI,OAAO,OAAO,cAAc,WAAW,YAAY,OAAO,KAAK;IACnE,OAAO;KACL,OAAO;KACP,QAAQ;IACV;GACF;EACF;EACA,oBAAoB,EAClB,MAAM,CAAC,EACT;CACF;AACF,GAAG,EACD,QAAQ,EACN,aAAa,QACf,EACF,CAAC;AACD,IAAI,SAAS,mBAAmB,SAAS,QAAQ,OAAO,cAAc;CACpE,IAAI,EAAE,QAAQ,YAAY,aAAa,gBAAgB,OAAO,gBAAgB,aAAa,GAAG,gBAAgB;CAC9G,IAAI,CAAC,SAAS,OAAO,aAAa,qBAAqB;EACrD,MAAM;EACN,UAAU;EACV,aAAa;CACf,CAAC;CACD,IAAI;CACJ,OAAuB,oBAAK,aAAa;EACvC,OAAO,gBAAgB,QAAQ,gBAAgB,KAAK,IAAI,cAAc;EACtE,gBAAgB;EAChB,cAAc,SAAS,OAAO;EAC9B,iBAAiB,MAAM,WAAW,KAAK,KAAK;EAC5C,GAAG,UAAU,CAAC,eAAe,EAC3B,oBAAoB,KACtB;EACA,GAAG;EACH,GAAG,UAAU,cAAc,cAAc,KAAK;EAC9C,KAAK;EACL,SAAS,sBAAsB,iBAAiB,MAAM,aAAa,QAAQ,mBAAmB,KAAK,IAAI,iBAAiB,KAAK,GAAG,WAAW;GACzI,IAAI,CAAC,MAAM,UAAU;IACnB,UAAU,SAAS,MAAM;KACvB,OAAO,CAAC;IACV,CAAC;GACH;EACF,CAAC;CACH,CAAC;AACH,CAAC"}
@@ -1,209 +1,166 @@
1
+ import { createRefComponent } from "@tamagui/compose-refs";
1
2
  import { isWeb } from "@tamagui/constants";
2
3
  import { registerFocusable } from "@tamagui/focusable";
3
4
  import { withStaticProperties } from "@tamagui/helpers";
4
5
  import { RovingFocusGroup } from "@tamagui/roving-focus";
5
6
  import { useControllableState } from "@tamagui/use-controllable-state";
6
7
  import { useDirection } from "@tamagui/use-direction";
7
- import { createStyledContext, styled, View } from "@tamagui/web";
8
+ import { View, createStyledContext, createStyledHOC, styled } from "@tamagui/web";
8
9
  import React from "react";
9
10
  import { Toggle, ToggleFrame } from "./Toggle.mjs";
10
- import { context as ToggleContext } from "./context.mjs";
11
+ import { context } from "./context.mjs";
11
12
  import { jsx } from "react/jsx-runtime";
13
+
12
14
  const TOGGLE_GROUP_NAME = "ToggleGroup";
13
15
  const TOGGLE_GROUP_ITEM_NAME = "ToggleGroupItem";
14
16
  const TOGGLE_GROUP_CONTEXT = "ToggleGroup";
15
- const {
16
- Provider: ToggleGroupItemProvider
17
- } = createStyledContext();
18
- const {
19
- Provider: ToggleGroupContext,
20
- useStyledContext: useToggleGroupContext
21
- } = createStyledContext({});
22
- const ToggleGroupItem = ToggleFrame.styleable((props, forwardedRef) => {
23
- const valueContext = useToggleGroupValueContext(props.__scopeToggleGroup);
24
- const context = useToggleGroupContext(props.__scopeToggleGroup);
25
- const toggleContext = ToggleContext.useStyledContext(props.__scopeToggleGroup);
26
- const active = valueContext?.value.includes(props.value);
27
- const color = props.color || toggleContext.color;
28
- const disabled = context.disabled || props.disabled || false;
29
- const inner = /* @__PURE__ */jsx(ToggleGroupItemImpl, {
30
- ref: forwardedRef,
31
- tabIndex: disabled ? -1 : 0,
32
- ...props,
33
- active,
34
- disabled
35
- });
36
- return /* @__PURE__ */jsx(ToggleGroupItemProvider, {
37
- scope: props.__scopeToggleGroup,
38
- children: /* @__PURE__ */jsx(ToggleContext.Provider, {
39
- color,
40
- active,
41
- children: context.rovingFocus ? /* @__PURE__ */jsx(RovingFocusGroup.Item, {
42
- asChild: "except-style",
43
- __scopeRovingFocusGroup: props.__scopeToggleGroup || TOGGLE_GROUP_CONTEXT,
44
- focusable: !disabled,
45
- active,
46
- children: inner
47
- }) : inner
48
- })
49
- });
17
+ const { Provider: ToggleGroupItemProvider } = createStyledContext();
18
+ const { Provider: ToggleGroupContext, useStyledContext: useToggleGroupContext } = createStyledContext({});
19
+ const ToggleGroupItem = createStyledHOC(ToggleFrame, (props, forwardedRef) => {
20
+ const valueContext = useToggleGroupValueContext(props.__scopeToggleGroup);
21
+ const context$1 = useToggleGroupContext(props.__scopeToggleGroup);
22
+ const toggleContext = context.useStyledContext(props.__scopeToggleGroup);
23
+ const active = valueContext?.value.includes(props.value);
24
+ const color = props.color || toggleContext.color;
25
+ const disabled = context$1.disabled || props.disabled || false;
26
+ const inner = /* @__PURE__ */ jsx(ToggleGroupItemImpl, {
27
+ ref: forwardedRef,
28
+ tabIndex: disabled ? -1 : 0,
29
+ ...props,
30
+ active,
31
+ disabled
32
+ });
33
+ return /* @__PURE__ */ jsx(ToggleGroupItemProvider, {
34
+ scope: props.__scopeToggleGroup,
35
+ children: /* @__PURE__ */ jsx(context.Provider, {
36
+ color,
37
+ active,
38
+ children: context$1.rovingFocus ? /* @__PURE__ */ jsx(RovingFocusGroup.Item, {
39
+ asChild: "except-style",
40
+ __scopeRovingFocusGroup: props.__scopeToggleGroup || TOGGLE_GROUP_CONTEXT,
41
+ tabIndex: disabled ? -1 : 0,
42
+ active,
43
+ children: inner
44
+ }) : inner
45
+ })
46
+ });
50
47
  });
51
48
  ToggleGroupItem.displayName = TOGGLE_GROUP_ITEM_NAME;
52
- const ToggleGroupItemImpl = React.forwardRef((props, forwardedRef) => {
53
- const {
54
- __scopeToggleGroup,
55
- value,
56
- ...itemProps
57
- } = props;
58
- const valueContext = useToggleGroupValueContext(__scopeToggleGroup);
59
- const singleProps = {
60
- "aria-pressed": void 0
61
- };
62
- const typeProps = valueContext.type === "single" ? singleProps : void 0;
63
- return /* @__PURE__ */jsx(Toggle, {
64
- ...typeProps,
65
- ...itemProps,
66
- ref: forwardedRef,
67
- onActiveChange: pressed => {
68
- if (pressed) {
69
- valueContext.onItemActivate(value);
70
- } else {
71
- valueContext.onItemDeactivate(value);
72
- }
73
- }
74
- });
75
- });
76
- const ToggleGroup = withStaticProperties(React.forwardRef((props, forwardedRef) => {
77
- const {
78
- type,
79
- ...toggleGroupProps
80
- } = props;
81
- if (!isWeb) {
82
- React.useEffect(() => {
83
- if (!props.id) return;
84
- return registerFocusable(props.id, {
85
- focus: () => {}
86
- });
87
- }, [props.id]);
88
- }
89
- if (type === "single") {
90
- const singleProps = toggleGroupProps;
91
- return /* @__PURE__ */jsx(ToggleGroupImplSingle, {
92
- ...singleProps,
93
- ref: forwardedRef
94
- });
95
- }
96
- if (type === "multiple") {
97
- const multipleProps = toggleGroupProps;
98
- return /* @__PURE__ */jsx(ToggleGroupImplMultiple, {
99
- ...multipleProps,
100
- ref: forwardedRef
101
- });
102
- }
103
- throw new Error(`Missing prop \`type\` expected on \`${TOGGLE_GROUP_NAME}\``);
104
- }), {
105
- Item: ToggleGroupItem
49
+ const ToggleGroupItemImpl = createRefComponent((props, forwardedRef) => {
50
+ const { __scopeToggleGroup, value, ...itemProps } = props;
51
+ const valueContext = useToggleGroupValueContext(__scopeToggleGroup);
52
+ const singleProps = { "aria-pressed": void 0 };
53
+ const typeProps = valueContext.type === "single" ? singleProps : void 0;
54
+ return /* @__PURE__ */ jsx(Toggle, {
55
+ ...typeProps,
56
+ ...itemProps,
57
+ ref: forwardedRef,
58
+ onActiveChange: (pressed) => {
59
+ if (pressed) {
60
+ valueContext.onItemActivate(value);
61
+ } else {
62
+ valueContext.onItemDeactivate(value);
63
+ }
64
+ }
65
+ });
106
66
  });
67
+ const ToggleGroup = withStaticProperties(createRefComponent((props, forwardedRef) => {
68
+ const { type, ...toggleGroupProps } = props;
69
+ if (!isWeb) {
70
+ React.useEffect(() => {
71
+ if (!props.id) return;
72
+ return registerFocusable(props.id, { focus: () => {} });
73
+ }, [props.id]);
74
+ }
75
+ if (type === "single") {
76
+ const singleProps = toggleGroupProps;
77
+ return /* @__PURE__ */ jsx(ToggleGroupImplSingle, {
78
+ ...singleProps,
79
+ ref: forwardedRef
80
+ });
81
+ }
82
+ if (type === "multiple") {
83
+ const multipleProps = toggleGroupProps;
84
+ return /* @__PURE__ */ jsx(ToggleGroupImplMultiple, {
85
+ ...multipleProps,
86
+ ref: forwardedRef
87
+ });
88
+ }
89
+ throw new Error(`Missing prop \`type\` expected on \`${TOGGLE_GROUP_NAME}\``);
90
+ }), { Item: ToggleGroupItem });
107
91
  ToggleGroup.displayName = TOGGLE_GROUP_NAME;
108
- const {
109
- Provider: ToggleGroupValueProvider,
110
- useStyledContext: useToggleGroupValueContext
111
- } = createStyledContext();
112
- const ToggleGroupImplSingle = React.forwardRef((props, forwardedRef) => {
113
- const {
114
- value: valueProp,
115
- defaultValue,
116
- onValueChange = () => {},
117
- disableDeactivation = false,
118
- children,
119
- ...toggleGroupSingleProps
120
- } = props;
121
- const [value, setValue] = useControllableState({
122
- prop: valueProp,
123
- defaultProp: defaultValue,
124
- onChange: onValueChange
125
- });
126
- return /* @__PURE__ */jsx(ToggleGroupValueProvider, {
127
- scope: props.__scopeToggleGroup,
128
- type: "single",
129
- value: value ? [value] : [],
130
- defaultValue: value,
131
- onItemActivate: setValue,
132
- onItemDeactivate: React.useCallback(() => disableDeactivation ? null : setValue(""), [setValue, disableDeactivation]),
133
- children: /* @__PURE__ */jsx(ToggleGroupImpl, {
134
- ...toggleGroupSingleProps,
135
- ref: forwardedRef,
136
- children
137
- })
138
- });
139
- });
140
- const ToggleGroupImplMultiple = React.forwardRef((props, forwardedRef) => {
141
- const {
142
- value: valueProp,
143
- defaultValue,
144
- onValueChange = () => {},
145
- disableDeactivation,
146
- children,
147
- ...toggleGroupMultipleProps
148
- } = props;
149
- const [value = [], setValue] = useControllableState({
150
- prop: valueProp,
151
- defaultProp: defaultValue,
152
- onChange: onValueChange
153
- });
154
- const handleButtonActivate = React.useCallback(itemValue => setValue((prevValue = []) => [...prevValue, itemValue]), [setValue]);
155
- const handleButtonDeactivate = React.useCallback(itemValue => setValue((prevValue = []) => prevValue.filter(value2 => value2 !== itemValue)), [setValue]);
156
- return /* @__PURE__ */jsx(ToggleGroupValueProvider, {
157
- scope: props.__scopeToggleGroup,
158
- type: "multiple",
159
- value,
160
- defaultValue: value,
161
- onItemActivate: handleButtonActivate,
162
- onItemDeactivate: handleButtonDeactivate,
163
- children: /* @__PURE__ */jsx(ToggleGroupImpl, {
164
- ...toggleGroupMultipleProps,
165
- ref: forwardedRef,
166
- children
167
- })
168
- });
92
+ const { Provider: ToggleGroupValueProvider, useStyledContext: useToggleGroupValueContext } = createStyledContext();
93
+ const ToggleGroupImplSingle = createRefComponent((props, forwardedRef) => {
94
+ const { value: valueProp, defaultValue, onValueChange = () => {}, disableDeactivation = false, children, ...toggleGroupSingleProps } = props;
95
+ const [value, setValue] = useControllableState({
96
+ prop: valueProp,
97
+ defaultProp: defaultValue,
98
+ onChange: onValueChange
99
+ });
100
+ return /* @__PURE__ */ jsx(ToggleGroupValueProvider, {
101
+ scope: props.__scopeToggleGroup,
102
+ type: "single",
103
+ value: value ? [value] : [],
104
+ defaultValue: value,
105
+ onItemActivate: setValue,
106
+ onItemDeactivate: React.useCallback(() => disableDeactivation ? null : setValue(""), [setValue, disableDeactivation]),
107
+ children: /* @__PURE__ */ jsx(ToggleGroupImpl, {
108
+ ...toggleGroupSingleProps,
109
+ ref: forwardedRef,
110
+ children
111
+ })
112
+ });
169
113
  });
170
- const ToggleGroupFrame = styled(View, {
171
- name: TOGGLE_GROUP_NAME
114
+ const ToggleGroupImplMultiple = createRefComponent((props, forwardedRef) => {
115
+ const { value: valueProp, defaultValue, onValueChange = () => {}, disableDeactivation, children, ...toggleGroupMultipleProps } = props;
116
+ const [value = [], setValue] = useControllableState({
117
+ prop: valueProp,
118
+ defaultProp: defaultValue,
119
+ onChange: onValueChange
120
+ });
121
+ const handleButtonActivate = React.useCallback((itemValue) => setValue((prevValue = []) => [...prevValue, itemValue]), [setValue]);
122
+ const handleButtonDeactivate = React.useCallback((itemValue) => setValue((prevValue = []) => prevValue.filter((value2) => value2 !== itemValue)), [setValue]);
123
+ return /* @__PURE__ */ jsx(ToggleGroupValueProvider, {
124
+ scope: props.__scopeToggleGroup,
125
+ type: "multiple",
126
+ value,
127
+ defaultValue: value,
128
+ onItemActivate: handleButtonActivate,
129
+ onItemDeactivate: handleButtonDeactivate,
130
+ children: /* @__PURE__ */ jsx(ToggleGroupImpl, {
131
+ ...toggleGroupMultipleProps,
132
+ ref: forwardedRef,
133
+ children
134
+ })
135
+ });
172
136
  });
173
- const ToggleGroupImpl = ToggleGroupFrame.styleable((props, forwardedRef) => {
174
- const {
175
- __scopeToggleGroup,
176
- disabled = false,
177
- orientation = "horizontal",
178
- dir,
179
- rovingFocus = true,
180
- loop = true,
181
- color,
182
- ...toggleGroupProps
183
- } = props;
184
- const direction = useDirection(dir);
185
- const content = /* @__PURE__ */jsx(ToggleGroupFrame, {
186
- role: "group",
187
- ref: forwardedRef,
188
- "data-disabled": disabled ? "" : void 0,
189
- ...toggleGroupProps
190
- });
191
- return /* @__PURE__ */jsx(ToggleGroupContext, {
192
- scope: __scopeToggleGroup,
193
- rovingFocus,
194
- disabled,
195
- children: /* @__PURE__ */jsx(ToggleContext.Provider, {
196
- color,
197
- children: rovingFocus ? /* @__PURE__ */jsx(RovingFocusGroup, {
198
- asChild: "except-style",
199
- __scopeRovingFocusGroup: __scopeToggleGroup || TOGGLE_GROUP_CONTEXT,
200
- orientation,
201
- dir: direction,
202
- loop,
203
- children: content
204
- }) : content
205
- })
206
- });
137
+ const ToggleGroupFrame = styled(View, { displayName: TOGGLE_GROUP_NAME });
138
+ const ToggleGroupImpl = createStyledHOC(ToggleGroupFrame, (props, forwardedRef) => {
139
+ const { __scopeToggleGroup, disabled = false, orientation = "horizontal", dir, rovingFocus = true, loop = true, color, ...toggleGroupProps } = props;
140
+ const direction = useDirection(dir);
141
+ const content = /* @__PURE__ */ jsx(ToggleGroupFrame, {
142
+ role: "group",
143
+ ref: forwardedRef,
144
+ "data-disabled": disabled ? "" : void 0,
145
+ ...toggleGroupProps
146
+ });
147
+ return /* @__PURE__ */ jsx(ToggleGroupContext, {
148
+ scope: __scopeToggleGroup,
149
+ rovingFocus,
150
+ disabled,
151
+ children: /* @__PURE__ */ jsx(context.Provider, {
152
+ color,
153
+ children: rovingFocus ? /* @__PURE__ */ jsx(RovingFocusGroup, {
154
+ asChild: "except-style",
155
+ __scopeRovingFocusGroup: __scopeToggleGroup || TOGGLE_GROUP_CONTEXT,
156
+ orientation,
157
+ dir: direction,
158
+ loop,
159
+ children: content
160
+ }) : content
161
+ })
162
+ });
207
163
  });
164
+
208
165
  export { ToggleGroup };
209
166
  //# sourceMappingURL=ToggleGroup.mjs.map
@@ -1 +1 @@
1
- {"version":3,"names":["isWeb","registerFocusable","withStaticProperties","RovingFocusGroup","useControllableState","useDirection","createStyledContext","styled","View","React","Toggle","ToggleFrame","context","ToggleContext","jsx","TOGGLE_GROUP_NAME","TOGGLE_GROUP_ITEM_NAME","TOGGLE_GROUP_CONTEXT","Provider","ToggleGroupItemProvider","ToggleGroupContext","useStyledContext","useToggleGroupContext","ToggleGroupItem","styleable","props","forwardedRef","valueContext","useToggleGroupValueContext","__scopeToggleGroup","toggleContext","active","value","includes","color","disabled","inner","ToggleGroupItemImpl","ref","tabIndex","scope","children","rovingFocus","Item","asChild","__scopeRovingFocusGroup","focusable","displayName","forwardRef","itemProps","singleProps","typeProps","type","onActiveChange","pressed","onItemActivate","onItemDeactivate","ToggleGroup","toggleGroupProps","useEffect","id","focus","ToggleGroupImplSingle","multipleProps","ToggleGroupImplMultiple","Error","ToggleGroupValueProvider","valueProp","defaultValue","onValueChange","disableDeactivation","toggleGroupSingleProps","setValue","prop","defaultProp","onChange","useCallback","ToggleGroupImpl","toggleGroupMultipleProps","handleButtonActivate","itemValue","prevValue","handleButtonDeactivate","filter","value2","ToggleGroupFrame","name","orientation","dir","loop","direction","content","role"],"sources":["../../src/ToggleGroup.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"ToggleGroup.js","names":["context","ToggleContext"],"sources":["esm/ToggleGroup.js"],"sourcesContent":["import { createRefComponent } from \"@tamagui/compose-refs\";\nimport { isWeb } from \"@tamagui/constants\";\nimport { registerFocusable } from \"@tamagui/focusable\";\nimport { withStaticProperties } from \"@tamagui/helpers\";\nimport { RovingFocusGroup } from \"@tamagui/roving-focus\";\nimport { useControllableState } from \"@tamagui/use-controllable-state\";\nimport { useDirection } from \"@tamagui/use-direction\";\nimport { createStyledHOC, createStyledContext, styled, View } from \"@tamagui/web\";\nimport React from \"react\";\nimport { Toggle, ToggleFrame } from \"./Toggle\";\nimport { context as ToggleContext } from \"./context\";\nimport { jsx } from \"react/jsx-runtime\";\nconst TOGGLE_GROUP_NAME = \"ToggleGroup\";\nconst TOGGLE_GROUP_ITEM_NAME = \"ToggleGroupItem\";\nconst TOGGLE_GROUP_CONTEXT = \"ToggleGroup\";\nconst { Provider: ToggleGroupItemProvider } = createStyledContext();\nconst { Provider: ToggleGroupContext, useStyledContext: useToggleGroupContext } = createStyledContext({});\nconst ToggleGroupItem = createStyledHOC(\n ToggleFrame,\n (props, forwardedRef) => {\n const valueContext = useToggleGroupValueContext(props.__scopeToggleGroup);\n const context = useToggleGroupContext(props.__scopeToggleGroup);\n const toggleContext = ToggleContext.useStyledContext(props.__scopeToggleGroup);\n const active = valueContext?.value.includes(props.value);\n const color = props.color || toggleContext.color;\n const disabled = context.disabled || props.disabled || false;\n const inner = /* @__PURE__ */ jsx(\n ToggleGroupItemImpl,\n {\n ref: forwardedRef,\n tabIndex: disabled ? -1 : 0,\n ...props,\n active,\n disabled\n }\n );\n return /* @__PURE__ */ jsx(ToggleGroupItemProvider, { scope: props.__scopeToggleGroup, children: /* @__PURE__ */ jsx(ToggleContext.Provider, { color, active, children: context.rovingFocus ? /* @__PURE__ */ jsx(\n RovingFocusGroup.Item,\n {\n asChild: \"except-style\",\n __scopeRovingFocusGroup: props.__scopeToggleGroup || TOGGLE_GROUP_CONTEXT,\n tabIndex: disabled ? -1 : 0,\n active,\n children: inner\n }\n ) : inner }) });\n }\n);\nToggleGroupItem.displayName = TOGGLE_GROUP_ITEM_NAME;\nconst ToggleGroupItemImpl = createRefComponent((props, forwardedRef) => {\n const { __scopeToggleGroup, value, ...itemProps } = props;\n const valueContext = useToggleGroupValueContext(__scopeToggleGroup);\n const singleProps = { \"aria-pressed\": void 0 };\n const typeProps = valueContext.type === \"single\" ? singleProps : void 0;\n return /* @__PURE__ */ jsx(\n Toggle,\n {\n ...typeProps,\n ...itemProps,\n ref: forwardedRef,\n onActiveChange: (pressed) => {\n if (pressed) {\n valueContext.onItemActivate(value);\n } else {\n valueContext.onItemDeactivate(value);\n }\n }\n }\n );\n});\nconst ToggleGroup = withStaticProperties(\n createRefComponent(\n (props, forwardedRef) => {\n const { type, ...toggleGroupProps } = props;\n if (!isWeb) {\n React.useEffect(() => {\n if (!props.id) return;\n return registerFocusable(props.id, {\n focus: () => {\n }\n });\n }, [props.id]);\n }\n if (type === \"single\") {\n const singleProps = toggleGroupProps;\n return /* @__PURE__ */ jsx(ToggleGroupImplSingle, { ...singleProps, ref: forwardedRef });\n }\n if (type === \"multiple\") {\n const multipleProps = toggleGroupProps;\n return /* @__PURE__ */ jsx(ToggleGroupImplMultiple, { ...multipleProps, ref: forwardedRef });\n }\n throw new Error(`Missing prop \\`type\\` expected on \\`${TOGGLE_GROUP_NAME}\\``);\n }\n ),\n {\n Item: ToggleGroupItem\n }\n);\nToggleGroup.displayName = TOGGLE_GROUP_NAME;\nconst {\n Provider: ToggleGroupValueProvider,\n useStyledContext: useToggleGroupValueContext\n} = createStyledContext();\nconst ToggleGroupImplSingle = createRefComponent((props, forwardedRef) => {\n const {\n value: valueProp,\n defaultValue,\n onValueChange = () => {\n },\n disableDeactivation = false,\n children,\n ...toggleGroupSingleProps\n } = props;\n const [value, setValue] = useControllableState({\n prop: valueProp,\n defaultProp: defaultValue,\n onChange: onValueChange\n });\n return /* @__PURE__ */ jsx(\n ToggleGroupValueProvider,\n {\n scope: props.__scopeToggleGroup,\n type: \"single\",\n value: value ? [value] : [],\n defaultValue: value,\n onItemActivate: setValue,\n onItemDeactivate: React.useCallback(\n () => disableDeactivation ? null : setValue(\"\"),\n [setValue, disableDeactivation]\n ),\n children: /* @__PURE__ */ jsx(ToggleGroupImpl, { ...toggleGroupSingleProps, ref: forwardedRef, children })\n }\n );\n});\nconst ToggleGroupImplMultiple = createRefComponent((props, forwardedRef) => {\n const {\n value: valueProp,\n defaultValue,\n onValueChange = () => {\n },\n disableDeactivation,\n children,\n ...toggleGroupMultipleProps\n } = props;\n const [value = [], setValue] = useControllableState({\n prop: valueProp,\n defaultProp: defaultValue,\n onChange: onValueChange\n });\n const handleButtonActivate = React.useCallback(\n (itemValue) => setValue((prevValue = []) => [...prevValue, itemValue]),\n [setValue]\n );\n const handleButtonDeactivate = React.useCallback(\n (itemValue) => setValue((prevValue = []) => prevValue.filter((value2) => value2 !== itemValue)),\n [setValue]\n );\n return /* @__PURE__ */ jsx(\n ToggleGroupValueProvider,\n {\n scope: props.__scopeToggleGroup,\n type: \"multiple\",\n value,\n defaultValue: value,\n onItemActivate: handleButtonActivate,\n onItemDeactivate: handleButtonDeactivate,\n children: /* @__PURE__ */ jsx(ToggleGroupImpl, { ...toggleGroupMultipleProps, ref: forwardedRef, children })\n }\n );\n});\nconst ToggleGroupFrame = styled(View, {\n displayName: TOGGLE_GROUP_NAME\n});\nconst ToggleGroupImpl = createStyledHOC(\n ToggleGroupFrame,\n (props, forwardedRef) => {\n const {\n __scopeToggleGroup,\n disabled = false,\n orientation = \"horizontal\",\n dir,\n rovingFocus = true,\n loop = true,\n color,\n ...toggleGroupProps\n } = props;\n const direction = useDirection(dir);\n const content = /* @__PURE__ */ jsx(\n ToggleGroupFrame,\n {\n role: \"group\",\n ref: forwardedRef,\n \"data-disabled\": disabled ? \"\" : void 0,\n ...toggleGroupProps\n }\n );\n return /* @__PURE__ */ jsx(\n ToggleGroupContext,\n {\n scope: __scopeToggleGroup,\n rovingFocus,\n disabled,\n children: /* @__PURE__ */ jsx(ToggleContext.Provider, { color, children: rovingFocus ? /* @__PURE__ */ jsx(\n RovingFocusGroup,\n {\n asChild: \"except-style\",\n __scopeRovingFocusGroup: __scopeToggleGroup || TOGGLE_GROUP_CONTEXT,\n orientation,\n dir: direction,\n loop,\n children: content\n }\n ) : content })\n }\n );\n }\n);\nexport {\n ToggleGroup\n};\n//# sourceMappingURL=ToggleGroup.js.map\n"],"mappings":"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"}