@tamagui/tabs 1.61.2 → 1.62.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.
@@ -0,0 +1,244 @@
1
+ import { createContextScope } from "@tamagui/create-context";
2
+ import { getButtonSized } from "@tamagui/get-button-sized";
3
+ import { Group, useGroupItem } from "@tamagui/group";
4
+ import { RovingFocusGroup, createRovingFocusGroupScope } from "@tamagui/roving-focus";
5
+ import { SizableStack, ThemeableStack } from "@tamagui/stacks";
6
+ import { useControllableState } from "@tamagui/use-controllable-state";
7
+ import { useDirection } from "@tamagui/use-direction";
8
+ import {
9
+ Theme,
10
+ composeEventHandlers,
11
+ composeRefs,
12
+ isWeb,
13
+ styled,
14
+ useEvent,
15
+ withStaticProperties
16
+ } from "@tamagui/web";
17
+ import * as React from "react";
18
+ const TAB_LIST_NAME = "TabsList", TabsListFrame = styled(Group, {
19
+ name: TAB_LIST_NAME,
20
+ focusable: !0
21
+ }), TabsList = TabsListFrame.extractable(
22
+ React.forwardRef(
23
+ (props, forwardedRef) => {
24
+ const { __scopeTabs, loop = !0, children, ...listProps } = props, context = useTabsContext(TAB_LIST_NAME, __scopeTabs), rovingFocusGroupScope = useRovingFocusGroupScope(__scopeTabs);
25
+ return <RovingFocusGroup
26
+ asChild="except-style"
27
+ orientation={context.orientation}
28
+ dir={context.dir}
29
+ loop={loop}
30
+ {...rovingFocusGroupScope}
31
+ ><TabsListFrame
32
+ role="tablist"
33
+ aria-orientation={context.orientation}
34
+ ref={forwardedRef}
35
+ orientation={context.orientation}
36
+ {...listProps}
37
+ >{children}</TabsListFrame></RovingFocusGroup>;
38
+ }
39
+ )
40
+ );
41
+ TabsList.displayName = TAB_LIST_NAME;
42
+ const TRIGGER_NAME = "TabsTrigger", TabsTriggerFrame = styled(ThemeableStack, {
43
+ name: TRIGGER_NAME,
44
+ justifyContent: "center",
45
+ alignItems: "center",
46
+ flexWrap: "nowrap",
47
+ flexDirection: "row",
48
+ cursor: "pointer",
49
+ focusable: !0,
50
+ userSelect: "none",
51
+ variants: {
52
+ size: {
53
+ "...size": getButtonSized
54
+ },
55
+ disabled: {
56
+ true: {
57
+ pointerEvents: "none"
58
+ }
59
+ },
60
+ unstyled: {
61
+ false: {
62
+ backgroundColor: "$background",
63
+ pressStyle: {
64
+ backgroundColor: "$backgroundPress"
65
+ },
66
+ hoverStyle: {
67
+ backgroundColor: "$backgroundHover"
68
+ },
69
+ focusStyle: {
70
+ backgroundColor: "$backgroundFocus"
71
+ }
72
+ }
73
+ }
74
+ },
75
+ defaultVariants: {
76
+ unstyled: !1
77
+ }
78
+ }), TabsTrigger = TabsTriggerFrame.extractable(
79
+ React.forwardRef(
80
+ (props, forwardedRef) => {
81
+ const {
82
+ __scopeTabs,
83
+ value,
84
+ disabled = !1,
85
+ onInteraction,
86
+ ...triggerProps
87
+ } = props, context = useTabsContext(TRIGGER_NAME, __scopeTabs), rovingFocusGroupScope = useRovingFocusGroupScope(__scopeTabs), triggerId = makeTriggerId(context.baseId, value), contentId = makeContentId(context.baseId, value), isSelected = value === context.value, [layout, setLayout] = React.useState(null), triggerRef = React.useRef(null), groupItemProps = useGroupItem({ disabled });
88
+ return React.useEffect(() => (context.registerTrigger(), () => context.unregisterTrigger()), []), React.useEffect(() => {
89
+ if (!triggerRef.current || !isWeb)
90
+ return;
91
+ function getTriggerSize() {
92
+ triggerRef.current && setLayout({
93
+ width: triggerRef.current.offsetWidth,
94
+ height: triggerRef.current.offsetHeight,
95
+ x: triggerRef.current.offsetLeft,
96
+ y: triggerRef.current.offsetTop
97
+ });
98
+ }
99
+ getTriggerSize();
100
+ const observer = new ResizeObserver(getTriggerSize);
101
+ return observer.observe(triggerRef.current), () => {
102
+ triggerRef.current && observer.unobserve(triggerRef.current);
103
+ };
104
+ }, [context.triggersCount]), React.useEffect(() => {
105
+ isSelected && layout && onInteraction?.("select", layout);
106
+ }, [isSelected, value, layout]), <Theme name={isSelected ? "active" : null}><RovingFocusGroup.Item
107
+ asChild="except-style"
108
+ {...rovingFocusGroupScope}
109
+ focusable={!disabled}
110
+ active={isSelected}
111
+ ><TabsTriggerFrame
112
+ onLayout={(event) => {
113
+ isWeb || setLayout(event.nativeEvent.layout);
114
+ }}
115
+ onHoverIn={composeEventHandlers(props.onHoverIn, () => {
116
+ layout && onInteraction?.("hover", layout);
117
+ })}
118
+ onHoverOut={composeEventHandlers(props.onHoverOut, () => {
119
+ onInteraction?.("hover", null);
120
+ })}
121
+ role="tab"
122
+ aria-selected={isSelected}
123
+ aria-controls={contentId}
124
+ data-state={isSelected ? "active" : "inactive"}
125
+ data-disabled={disabled ? "" : void 0}
126
+ disabled={disabled}
127
+ id={triggerId}
128
+ size={context.size}
129
+ {...groupItemProps}
130
+ {...triggerProps}
131
+ ref={composeRefs(forwardedRef, triggerRef)}
132
+ onPress={composeEventHandlers(props.onPress ?? void 0, (event) => {
133
+ const webChecks = !isWeb || event.button === 0 && event.ctrlKey === !1;
134
+ !disabled && !isSelected && webChecks ? context.onChange(value) : event.preventDefault();
135
+ })}
136
+ {...isWeb && {
137
+ type: "button",
138
+ onKeyDown: composeEventHandlers(
139
+ props.onKeyDown,
140
+ (event) => {
141
+ [" ", "Enter"].includes(event.key) && (context.onChange(value), event.preventDefault());
142
+ }
143
+ ),
144
+ onFocus: composeEventHandlers(props.onFocus, (event) => {
145
+ layout && onInteraction?.("focus", layout);
146
+ const isAutomaticActivation = context.activationMode !== "manual";
147
+ !isSelected && !disabled && isAutomaticActivation && context.onChange(value);
148
+ }),
149
+ onBlur: composeEventHandlers(props.onFocus, () => {
150
+ onInteraction?.("focus", null);
151
+ })
152
+ }}
153
+ /></RovingFocusGroup.Item></Theme>;
154
+ }
155
+ )
156
+ );
157
+ TabsTrigger.displayName = TRIGGER_NAME;
158
+ const CONTENT_NAME = "TabsContent", TabsContentFrame = styled(ThemeableStack, {
159
+ name: CONTENT_NAME
160
+ }), TabsContent = TabsContentFrame.extractable(
161
+ React.forwardRef(
162
+ (props, forwardedRef) => {
163
+ const { __scopeTabs, value, forceMount, children, ...contentProps } = props, context = useTabsContext(CONTENT_NAME, __scopeTabs), isSelected = value === context.value, show = forceMount || isSelected, triggerId = makeTriggerId(context.baseId, value), contentId = makeContentId(context.baseId, value);
164
+ return show ? <TabsContentFrame
165
+ key={value}
166
+ data-state={isSelected ? "active" : "inactive"}
167
+ data-orientation={context.orientation}
168
+ role="tabpanel"
169
+ aria-labelledby={triggerId}
170
+ hidden={!show}
171
+ id={contentId}
172
+ tabIndex={0}
173
+ {...contentProps}
174
+ ref={forwardedRef}
175
+ >{children}</TabsContentFrame> : null;
176
+ }
177
+ )
178
+ );
179
+ TabsContent.displayName = CONTENT_NAME;
180
+ const TABS_NAME = "Tabs", [createTabsContext, createTabsScope] = createContextScope(TABS_NAME, [
181
+ createRovingFocusGroupScope
182
+ ]), useRovingFocusGroupScope = createRovingFocusGroupScope(), [TabsProvider, useTabsContext] = createTabsContext(TABS_NAME), TabsFrame = styled(SizableStack, {
183
+ name: TABS_NAME
184
+ }), Tabs = withStaticProperties(
185
+ TabsFrame.extractable(
186
+ React.forwardRef(
187
+ (props, forwardedRef) => {
188
+ const {
189
+ __scopeTabs,
190
+ value: valueProp,
191
+ onValueChange,
192
+ defaultValue,
193
+ orientation = "horizontal",
194
+ dir,
195
+ activationMode = "automatic",
196
+ size = "$true",
197
+ ...tabsProps
198
+ } = props, direction = useDirection(dir), [value, setValue] = useControllableState({
199
+ prop: valueProp,
200
+ onChange: onValueChange,
201
+ defaultProp: defaultValue ?? ""
202
+ }), [triggersCount, setTriggersCount] = React.useState(0), registerTrigger = useEvent(() => setTriggersCount((v) => v + 1)), unregisterTrigger = useEvent(() => setTriggersCount((v) => v - 1));
203
+ return <TabsProvider
204
+ scope={__scopeTabs}
205
+ baseId={React.useId()}
206
+ value={value}
207
+ onChange={setValue}
208
+ orientation={orientation}
209
+ dir={direction}
210
+ activationMode={activationMode}
211
+ size={size}
212
+ registerTrigger={registerTrigger}
213
+ triggersCount={triggersCount}
214
+ unregisterTrigger={unregisterTrigger}
215
+ ><TabsFrame
216
+ direction={direction}
217
+ data-orientation={orientation}
218
+ {...tabsProps}
219
+ ref={forwardedRef}
220
+ /></TabsProvider>;
221
+ }
222
+ )
223
+ ),
224
+ {
225
+ List: TabsList,
226
+ /**
227
+ * @deprecated Use Tabs.Tab instead
228
+ */
229
+ Trigger: TabsTrigger,
230
+ Tab: TabsTrigger,
231
+ Content: TabsContent
232
+ }
233
+ );
234
+ Tabs.displayName = TABS_NAME;
235
+ function makeTriggerId(baseId, value) {
236
+ return `${baseId}-trigger-${value}`;
237
+ }
238
+ function makeContentId(baseId, value) {
239
+ return `${baseId}-content-${value}`;
240
+ }
241
+ export {
242
+ Tabs
243
+ };
244
+ //# sourceMappingURL=Tabs.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/Tabs.tsx"],
4
+ "mappings": "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",
5
+ "names": []
6
+ }
@@ -0,0 +1,2 @@
1
+ export * from "./Tabs";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/index.ts"],
4
+ "mappings": "AAAA,cAAc;",
5
+ "names": []
6
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tamagui/tabs",
3
- "version": "1.61.2",
3
+ "version": "1.62.0",
4
4
  "sideEffects": false,
5
5
  "source": "src/index.ts",
6
6
  "types": "./types/index.d.ts",
@@ -25,21 +25,21 @@
25
25
  }
26
26
  },
27
27
  "dependencies": {
28
- "@tamagui/create-context": "1.61.2",
29
- "@tamagui/get-button-sized": "1.61.2",
30
- "@tamagui/group": "1.61.2",
31
- "@tamagui/roving-focus": "1.61.2",
32
- "@tamagui/stacks": "1.61.2",
33
- "@tamagui/use-controllable-state": "1.61.2",
34
- "@tamagui/use-direction": "1.61.2",
35
- "@tamagui/web": "1.61.2"
28
+ "@tamagui/create-context": "1.62.0",
29
+ "@tamagui/get-button-sized": "1.62.0",
30
+ "@tamagui/group": "1.62.0",
31
+ "@tamagui/roving-focus": "1.62.0",
32
+ "@tamagui/stacks": "1.62.0",
33
+ "@tamagui/use-controllable-state": "1.62.0",
34
+ "@tamagui/use-direction": "1.62.0",
35
+ "@tamagui/web": "1.62.0"
36
36
  },
37
37
  "peerDependencies": {
38
38
  "react": "*",
39
39
  "react-dom": "*"
40
40
  },
41
41
  "devDependencies": {
42
- "@tamagui/build": "1.61.2",
42
+ "@tamagui/build": "1.62.0",
43
43
  "react": "^18.2.0",
44
44
  "react-dom": "^18.2.0"
45
45
  },